@wyxos/vibe 3.0.2 → 3.0.3
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.
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { type Component } from 'vue';
|
|
2
2
|
import type { VibeViewerItem } from './viewer';
|
|
3
|
-
import type { VibeFullscreenStatusSlotProps, VibeGridStatusSlotProps, VibeSurfaceSlotProps } from './viewer-core/surfaceSlots';
|
|
3
|
+
import type { VibeEmptyStateSlotProps, VibeFullscreenStatusSlotProps, VibeGridStatusSlotProps, VibeSurfaceSlotProps } from './viewer-core/surfaceSlots';
|
|
4
4
|
type __VLS_Slots = {
|
|
5
5
|
'fullscreen-aside'?: (props: VibeSurfaceSlotProps) => unknown;
|
|
6
6
|
'fullscreen-header-actions'?: (props: VibeSurfaceSlotProps) => unknown;
|
|
7
7
|
'fullscreen-overlay'?: (props: VibeSurfaceSlotProps) => unknown;
|
|
8
8
|
'fullscreen-status'?: (props: VibeFullscreenStatusSlotProps) => unknown;
|
|
9
|
+
'empty-state'?: (props: VibeEmptyStateSlotProps) => unknown;
|
|
9
10
|
'grid-footer'?: () => unknown;
|
|
10
11
|
'grid-item-overlay'?: (props: {
|
|
11
12
|
active: boolean;
|
package/lib/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});let e=require(`vue`);var t=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},n=e=>e===``,r=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),i=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),a=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),o=e=>{let t=a(e);return t.charAt(0).toUpperCase()+t.slice(1)},s={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`},c=({name:a,iconNode:c,absoluteStrokeWidth:l,"absolute-stroke-width":u,strokeWidth:d,"stroke-width":f,size:p=s.width,color:m=s.stroke,...h},{slots:g})=>(0,e.h)(`svg`,{...s,...h,width:p,height:p,stroke:m,"stroke-width":n(l)||n(u)||l===!0||u===!0?Number(d||f||s[`stroke-width`])*24/Number(p):d||f||s[`stroke-width`],class:r(`lucide`,h.class,...a?[`lucide-${i(o(a))}-icon`,`lucide-${i(a)}`]:[`lucide-icon`]),...!g.default&&!t(h)&&{"aria-hidden":`true`}},[...c.map(t=>(0,e.h)(...t)),...g.default?[g.default()]:[]]),l=(t,n)=>(r,{slots:i,attrs:a})=>(0,e.h)(c,{...a,...r,iconNode:n,name:t},i),u=l(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]),d=l(`audio-lines`,[[`path`,{d:`M2 10v3`,key:`1fnikh`}],[`path`,{d:`M6 6v11`,key:`11sgs0`}],[`path`,{d:`M10 3v18`,key:`yhl04a`}],[`path`,{d:`M14 8v7`,key:`3a1oy3`}],[`path`,{d:`M18 5v13`,key:`123xd1`}],[`path`,{d:`M22 10v3`,key:`154ddg`}]]),f=l(`clapperboard`,[[`path`,{d:`m12.296 3.464 3.02 3.956`,key:`qash78`}],[`path`,{d:`M20.2 6 3 11l-.9-2.4c-.3-1.1.3-2.2 1.3-2.5l13.5-4c1.1-.3 2.2.3 2.5 1.3z`,key:`1h7j8b`}],[`path`,{d:`M3 11h18v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`,key:`4lm6w1`}],[`path`,{d:`m6.18 5.276 3.1 3.899`,key:`zjj9t3`}]]),p=l(`file`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}]]),m=l(`image-plus`,[[`path`,{d:`M16 5h6`,key:`1vod17`}],[`path`,{d:`M19 2v6`,key:`4bpg5p`}],[`path`,{d:`M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5`,key:`1ue2ih`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`,key:`1xmnt7`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}]]),h=l(`loader-circle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]),g=l(`pause`,[[`rect`,{x:`14`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`kaeet6`}],[`rect`,{x:`5`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`1wsw3u`}]]),_=l(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]),v=l(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]);function y(e,t=150){return x(e,e=>`${e.surface}|${e.occurrenceKey}|${e.url}|${e.kind}`,t)}function b(e,t=150){return x(e,e=>`${e.surface}|${e.occurrenceKey}|${e.url}`,t)}function x(e,t,n){let r=[],i=new Set,a=null;function o(e){let o=t(e);i.has(o)||(i.add(o),r.push(e),!a&&(a=setTimeout(()=>{s()},n)))}function s(){if(a&&=(clearTimeout(a),null),!r.length)return;let t=r.slice();r.length=0,i.clear(),e(t)}function c(){a&&=(clearTimeout(a),null),r.length=0,i.clear()}return{flush:s,report:o,stop:c}}var S={maxGlobal:10,maxPerDomain:4,maxVideoPerDomain:2};function C(e){return{maxGlobal:e?.maxGlobal??S.maxGlobal,maxPerDomain:e?.maxPerDomain??S.maxPerDomain,maxVideoPerDomain:e?.maxVideoPerDomain??S.maxVideoPerDomain}}function w(e){let t=new Map,n=new Map,r=C(e),i=0;function a(e){let r={...e,domain:E(e.url),enqueuedAt:i,id:`vibe-asset-load-${i+=1}`};return n.set(r.id,r),o(),{cancel(){(n.delete(r.id)||t.delete(r.id))&&o()},refresh(){o()},release(){(t.delete(r.id)||n.delete(r.id))&&o()}}}function o(){if(n.size===0)return;let e=[...n.values()].sort((e,t)=>{let n=T(e)-T(t);return n===0?e.enqueuedAt-t.enqueuedAt:n});for(let i of e){if(t.size>=r.maxGlobal)return;if(l(i)){n.delete(i.id),t.set(i.id,i);try{i.onGrant()}catch{t.delete(i.id)}}}}function s(){return{...r}}function c(e){r=C(e),o()}function l(e){let n=[...t.values()].filter(t=>t.domain===e.domain);return!(n.length>=r.maxPerDomain||e.assetType===`video`&&n.filter(e=>e.assetType===`video`).length>=r.maxVideoPerDomain)}return{getLimits:s,request:a,setLimits:c}}function T(e){try{let t=e.getPriority();return Number.isFinite(t)?t:1/0}catch{return 1/0}}function E(e){try{return new URL(e).hostname||`local`}catch{return`local`}}function D(e){return e instanceof HTMLElement&&[`INPUT`,`TEXTAREA`,`SELECT`].includes(e.tagName)}function O(e){return e instanceof HTMLElement&&!!e.closest(`[data-swipe-lock], input, textarea, select, a`)}var k=`__vibeOccurrenceKey`;function A(e){let t=e[k];return typeof t==`string`&&t.length>0?t:e.id}function j(e,t,n){let r=new Map,i=[],a=n;for(let e of t){let t=r.get(e.id),n=A(e);t?t.push(n):r.set(e.id,[n])}for(let t of e){let e=r.get(t.id)?.shift()??`vibe-occurrence-${a+=1}`;i.push(M(t,e))}return{items:i,nextSequence:a}}function M(e,t){return A(e)===t?e:{...e,[k]:t}}function N(){let t=(0,e.ref)(new Set),n=(0,e.ref)([]);function r(e){let r=P(e).filter(e=>!t.value.has(e));if(!r.length)return{ids:[]};let i=new Set(t.value);for(let e of r)i.add(e);return t.value=i,n.value=[...n.value,r],{ids:r}}function i(e){let n=P(e).filter(e=>t.value.has(e));if(!n.length)return{ids:[]};let r=new Set(t.value);for(let e of n)r.delete(e);return t.value=r,{ids:n}}function a(){if(!n.value.length)return null;let e=[...n.value],r=e.pop()??[];n.value=e;let i=r.filter(e=>t.value.has(e));if(!i.length)return{ids:[]};let a=new Set(t.value);for(let e of i)a.delete(e);return t.value=a,{ids:i}}function o(){!t.value.size&&!n.value.length||(t.value=new Set,n.value=[])}function s(){return Array.from(t.value)}return{clearRemoved:o,getRemovedIds:s,remove:r,removedIds:t,restore:i,undo:a}}function P(e){let t=Array.isArray(e)?e:[e];return Array.from(new Set(t.filter(e=>typeof e==`string`&&e.length>0)))}function F(e){return e.flatMap(e=>e.items)}function I(e,t){return t.size?e.filter(e=>!t.has(e.id)):e}function L(e,t){return I(e.items,t)}function R(e,t){return L(e,t).length}function z(e,t,n){if(n<0)return null;let r=0;for(let i of e){let e=L(i,t),a=r+e.length;if(n<a)return i.cursor;r=a}return null}function B(e,t,n){let r=[...e],i=r.findIndex(e=>e.cursor===t);return i>=0&&r.splice(i,1,n),r}function V(e,t,n){let r=j(e,t,n);return{items:r.items,nextSequence:r.nextSequence}}function H(e){return e===`filling`||e===`loading`||e===`reloading`}function U(e){return!e||!Number.isFinite(e)||e<1?25:Math.floor(e)}function W(e){return e??`__vibe_initial_cursor__`}function G(e,t,n){return Math.min(Math.max(e,t),n)}function K(e){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`}function q(e){let t=V(e.nextItems,e.previousItems,e.sequence);return{bucket:{cursor:e.cursor,items:t.items,nextCursor:e.nextCursor,previousCursor:e.previousCursor},nextSequence:t.nextSequence}}function J(e,t,n,r){if(!e.length)return r?null:{buckets:[],canceled:r,visibleCount:0};let i=t===`backward`?[...e].reverse():e;return{buckets:i,canceled:r,visibleCount:i.reduce((e,t)=>e+R(t,n),0)}}function ee(e){let t=q({cursor:e.initialState.cursor,nextCursor:e.initialState.nextCursor??null,nextItems:e.initialState.items,previousCursor:e.initialState.previousCursor??null,previousItems:[],sequence:e.sequence}),n=I(t.bucket.items,e.removedIds);return{activeIndex:G(e.initialState.activeIndex??0,0,Math.max(0,n.length-1)),buckets:[t.bucket],nextSequence:t.nextSequence}}function te(e,t){let n=e[G(t,0,Math.max(0,e.length-1))];return n?A(n):null}function ne(e,t,n=null){if(!e.length)return 0;let r=n?e.findIndex(e=>A(e)===n):-1;return r>=0?r:G(t,0,e.length-1)}function re(e,t,n){return e?R(e,t)<n:!1}var ie=1e3,ae=100;function oe(e,t=ie,n=250){return t+Math.max(0,e-1)*n}function se(e,t){return!Number.isFinite(e)||e==null||e<0?t:Math.floor(e)}function ce(){let t=(0,e.ref)(null),n=null,r=null,i=null;function a(e=!1){if(n&&=(clearInterval(n),null),r&&=(clearTimeout(r),null),t.value=null,e&&i){let e=i;i=null,e()}}async function o(e){a(!0),!(e<=0)&&(t.value=e,await new Promise(o=>{let s=Date.now(),c=!1,l=()=>{c||(c=!0,i=null,a(),o())};i=l;let u=()=>{let n=Math.max(0,e-(Date.now()-s));t.value=n,n<=0&&l()};n=setInterval(u,ae),r=setTimeout(l,e),u()}))}return{clear:a,remainingMs:t,wait:o}}function le(t){let n=(0,e.ref)([]),r=(0,e.ref)(0),i=(0,e.ref)([]),a=(0,e.ref)(null),o=(0,e.ref)(`idle`),s=(0,e.ref)(null),c=ce(),l=c.remainingMs,u=(0,e.ref)(null),d=(0,e.ref)(!1),f=(0,e.ref)(!0),p=new Set,m=null,h=null,g=0,_=0,v=(0,e.computed)(()=>se(t.fillDelayMs,ie)),y=(0,e.computed)(()=>se(t.fillDelayStepMs,250)),b=(0,e.computed)(()=>t.mode??`dynamic`),x=(0,e.computed)(()=>U(t.pageSize)),S=(0,e.computed)(()=>F(n.value)),C=(0,e.computed)(()=>I(S.value,t.removedIds.value)),w=(0,e.computed)(()=>r.value),T=(0,e.computed)(()=>H(o.value)||d.value),E=(0,e.computed)(()=>n.value[0]??null),D=(0,e.computed)(()=>n.value[n.value.length-1]??null),O=(0,e.computed)(()=>D.value?.nextCursor??null),k=(0,e.computed)(()=>E.value?.previousCursor??null),A=(0,e.computed)(()=>!!O.value),j=(0,e.computed)(()=>!!k.value),M=(0,e.computed)(()=>I(F(i.value),t.removedIds.value)),N=(0,e.computed)(()=>z(n.value,t.removedIds.value,w.value)),P=(0,e.computed)(()=>!C.value.length&&!T.value&&!!a.value);(0,e.watch)(()=>C.value.length,e=>{if(e===0){r.value=0;return}r.value>e-1&&(r.value=e-1)}),(0,e.watch)(()=>r.value,()=>{f.value&&ve()}),(0,e.onMounted)(()=>{t.resolve&&(we()||L())}),(0,e.onBeforeUnmount)(()=>{m?.abort(),m=null,c.clear(!0)});async function L(){h=L;let e=await Se({continueUntilFilled:b.value===`dynamic`,cursor:t.initialCursor??null,direction:`forward`,phase:`loading`});e&&(n.value=e.buckets,r.value=0,Y())}async function V(){if(!(!A.value||T.value)){if(b.value===`static`&&Ee(`trailing`))return xe(`trailing`);await ye(O.value)}}async function ae(){if(!(!j.value||T.value)){if(b.value===`static`&&Ee(`leading`))return xe(`leading`);await be(k.value)}}async function le(){if(P.value){if(n.value=[],r.value=0,i.value=[],a.value=null,o.value=`idle`,s.value=null,u.value=null,d.value=!1,p.clear(),m?.abort(),m=null,c.clear(!0),we()){Y();return}await L()}}async function ue(){if(P.value)return le();o.value!==`failed`||!h||(a.value=null,await h())}async function de(){if(!i.value.length)return d.value=!1,Y();n.value=[...n.value,...i.value],i.value=[],d.value=!1,Y()}function fe(e){let n=C.value;if(!n.length)return;let i=G(e,0,n.length-1);i!==r.value&&(r.value=i,t.emit(`update:activeIndex`,i))}function pe(e){f.value=e}function me(){g+=1,m?.abort(),m=null,c.clear(!0),p.clear(),a.value=null,s.value=null,u.value=null,i.value.length>0&&(n.value=[...n.value,...i.value],i.value=[]),d.value=!1,Y()}function he(){return te(C.value,w.value)}function ge(e=null){r.value=ne(C.value,w.value,e)}function _e(){i.value.length>0&&!M.value.length&&de()}async function ve(){!C.value.length||Te()||(j.value&&r.value<3&&await ae(),A.value&&r.value>=C.value.length-3&&await V())}async function ye(e){h=async()=>{await ye(e)};let t=await Se({continueUntilFilled:b.value===`dynamic`,cursor:e,direction:`forward`,phase:`loading`});if(t){if(t.canceled)return n.value=[...n.value,...t.buckets],i.value=[],d.value=!1,Y();if(i.value=t.buckets,!M.value.length)return n.value=[...n.value,...i.value],i.value=[],d.value=!1,Y();d.value=!0}}async function be(e){h=async()=>{await be(e)};let t=await Se({continueUntilFilled:b.value===`dynamic`,cursor:e,direction:`backward`,phase:`loading`});if(!t)return;let r=he();n.value=[...t.buckets,...n.value],ge(r),Y()}async function xe(e){if(h=async()=>{await xe(e)},!t.resolve)return;let r=e===`leading`?E.value:D.value;if(!r)return;let i=W(r.cursor);if(p.has(i))return;p.add(i),a.value=null,o.value=`reloading`,s.value=null,u.value=null;let c=++g,l=typeof AbortController>`u`?null:new AbortController;m=l;try{let e=await t.resolve({cursor:r.cursor,pageSize:x.value,signal:l?.signal});if(c!==g)return Y();let i=Ce({cursor:r.cursor,nextCursor:e.nextPage,nextItems:e.items,previousCursor:e.previousPage??null,previousItems:r.items}),a=he();n.value=B(n.value,r.cursor,i),ge(a),Y()}catch(e){if(K(e)||c!==g){Y();return}a.value=e instanceof Error?e.message:`The viewer could not load items.`,o.value=`failed`,s.value=null,u.value=null}finally{m===l&&(m=null),p.delete(i)}}async function Se(e){if(!t.resolve)return null;let n=++g,r=new Set,i=[],l=e.cursor,d=0;for(a.value=null,o.value=e.phase,s.value=null,u.value=null;;){if(n!==g)return J(i,e.direction,t.removedIds.value,!0);let f=W(l);if(r.has(f)||p.has(f))break;r.add(f),p.add(f);let h=typeof AbortController>`u`?null:new AbortController;m=h;try{let r=await t.resolve({cursor:l,pageSize:x.value,signal:h?.signal});if(n!==g)return J(i,e.direction,t.removedIds.value,!0);let a=Ce({cursor:l,nextCursor:r.nextPage,nextItems:r.items,previousCursor:r.previousPage??null,previousItems:[]});i.push(a);let f=i.reduce((e,n)=>e+R(n,t.removedIds.value),0),p=e.direction===`forward`?a.nextCursor:a.previousCursor;if(!e.continueUntilFilled||f>=x.value||!p)return{canceled:!1,buckets:e.direction===`backward`?[...i].reverse():i,visibleCount:f};o.value=`filling`,s.value=f,u.value=x.value,d+=1;let m=oe(d,v.value,y.value);if(await c.wait(m),n!==g)return J(i,e.direction,t.removedIds.value,!0);l=p}catch(r){return K(r)||n!==g?J(i,e.direction,t.removedIds.value,!0):(a.value=r instanceof Error?r.message:`The viewer could not load items.`,o.value=`failed`,s.value=null,u.value=null,null)}finally{m===h&&(m=null),p.delete(f)}}return J(i,e.direction,t.removedIds.value,!1)}function Ce(e){let t=q({cursor:e.cursor,nextCursor:e.nextCursor,nextItems:e.nextItems,previousCursor:e.previousCursor,previousItems:e.previousItems,sequence:_});return _=t.nextSequence,t.bucket}function Y(){o.value=`idle`,s.value=null,u.value=null,c.clear()}function we(){if(!t.initialState||!t.initialState.items.length)return!1;let e=ee({initialState:t.initialState,removedIds:t.removedIds.value,sequence:_});return n.value=e.buckets,r.value=e.activeIndex,_=e.nextSequence,a.value=null,i.value=[],d.value=!1,!0}function Te(){return o.value===`loading`&&n.value.length===0&&i.value.length===0}function Ee(e){return re(e===`leading`?E.value:D.value,t.removedIds.value,x.value)}return{activeIndex:w,canRetryInitialLoad:P,cancel:me,commitPendingAppend:de,currentCursor:N,errorMessage:a,fillCollectedCount:s,fillDelayRemainingMs:l,fillTargetCount:u,hasNextPage:A,hasPreviousPage:j,items:C,loading:T,mode:b,nextCursor:O,pendingAppendItems:M,phase:o,prefetchNextPage:V,prefetchPreviousPage:ae,previousCursor:k,retryInitialLoad:le,retry:ue,setActiveIndex:fe,setAutoPrefetchEnabled:pe,syncActiveIndexAfterVisibilityChange:ge,getActiveOccurrenceKey:he,maybeCommitPendingAppendWhenFilteredOut:_e}}function ue(t,n){let r=t,i=t,{clearRemoved:a,getRemovedIds:o,remove:s,removedIds:c,restore:l,undo:u}=N(),d=le({emit:n,fillDelayMs:i.fillDelayMs,fillDelayStepMs:i.fillDelayStepMs,initialCursor:i.initialCursor,initialState:i.initialState,mode:i.mode,pageSize:i.pageSize,removedIds:c,resolve:i.resolve}),f=!1,p=0,m=(0,e.ref)([]),h=(0,e.computed)(()=>typeof i.resolve==`function`),g=(0,e.computed)(()=>c.value.size?m.value.filter(e=>!c.value.has(e.id)):m.value),_=(0,e.computed)(()=>h.value?d.items.value:g.value),v=(0,e.computed)(()=>h.value?d.activeIndex.value:r.activeIndex??0),y=(0,e.computed)(()=>h.value?d.loading.value:r.loading??!1),b=(0,e.computed)(()=>h.value?d.hasNextPage.value:r.hasNextPage??!1),x=(0,e.computed)(()=>h.value?d.hasPreviousPage.value:r.hasPreviousPage??!1),S=(0,e.computed)(()=>c.value.size),C=(0,e.computed)(()=>r.paginationDetail??null);(0,e.watch)([()=>r.items,()=>i.resolve],([e,t])=>{!Array.isArray(e)||typeof t!=`function`||f||(f=!0,console.warn("[Vibe] `resolve` and `items` were both provided. `resolve` mode will be used."))},{immediate:!0}),(0,e.watch)(()=>r.items??[],e=>{if(h.value)return;let t=j(e,m.value,p);m.value=t.items,p=t.nextSequence},{deep:!0,immediate:!0});function w(e){let t=_.value;if(!t.length)return;let i=P(e,0,t.length-1);if(h.value){d.setActiveIndex(i);return}i!==(r.activeIndex??0)&&n(`update:activeIndex`,i)}function T(e){let t=k(),n=s(e);return n.ids.length?h.value?(d.maybeCommitPendingAppendWhenFilteredOut(),d.syncActiveIndexAfterVisibilityChange(t),n):(M(t),n):n}function E(e){let t=k(),n=l(e);return n.ids.length?h.value?(d.syncActiveIndexAfterVisibilityChange(t),n):(M(t),n):n}function D(){let e=k(),t=u();return t?.ids.length?h.value?(d.syncActiveIndexAfterVisibilityChange(e),t):(M(e),t):t}function O(){let e=k();if(a(),h.value){d.syncActiveIndexAfterVisibilityChange(e);return}M(e)}function k(){let e=_.value[P(v.value,0,Math.max(0,_.value.length-1))];return e?A(e):null}function M(e=null){if(!_.value.length)return;let t=e?_.value.findIndex(t=>A(t)===e):-1,i=t>=0?t:P(v.value,0,_.value.length-1);i!==(r.activeIndex??0)&&n(`update:activeIndex`,i)}function P(e,t,n){return Math.min(Math.max(e,t),n)}function F(){h.value&&d.cancel()}async function I(){if(h.value){await d.prefetchNextPage();return}y.value||typeof r.requestNextPage!=`function`||await r.requestNextPage()}async function L(){if(h.value){await d.prefetchPreviousPage();return}y.value||typeof r.requestPreviousPage!=`function`||await r.requestPreviousPage()}async function R(){h.value&&await d.retry()}return{activeIndex:v,canRetryInitialLoad:(0,e.computed)(()=>h.value?d.canRetryInitialLoad.value:!1),cancel:F,clearRemoved:O,commitPendingAppend:d.commitPendingAppend,currentCursor:(0,e.computed)(()=>h.value?d.currentCursor.value:null),errorMessage:(0,e.computed)(()=>h.value?d.errorMessage.value:null),fillCollectedCount:(0,e.computed)(()=>h.value?d.fillCollectedCount.value:null),fillDelayRemainingMs:(0,e.computed)(()=>h.value?d.fillDelayRemainingMs.value:null),fillTargetCount:(0,e.computed)(()=>h.value?d.fillTargetCount.value:null),getRemovedIds:o,hasNextPage:b,hasPreviousPage:x,isAutoMode:h,items:_,loading:y,loadNext:I,loadPrevious:L,mode:(0,e.computed)(()=>h.value?d.mode.value:null),nextCursor:(0,e.computed)(()=>h.value?d.nextCursor.value:null),paginationDetail:C,pendingAppendItems:d.pendingAppendItems,phase:(0,e.computed)(()=>h.value?d.phase.value:y.value?`loading`:`idle`),prefetchNextPage:h.value?d.prefetchNextPage:async()=>{y.value||typeof r.requestNextPage!=`function`||await r.requestNextPage()},prefetchPreviousPage:h.value?d.prefetchPreviousPage:async()=>{y.value||typeof r.requestPreviousPage!=`function`||await r.requestPreviousPage()},previousCursor:(0,e.computed)(()=>h.value?d.previousCursor.value:null),removedCount:S,remove:T,restore:E,retry:R,retryInitialLoad:d.retryInitialLoad,setActiveIndex:w,setAutoPrefetchEnabled:d.setAutoPrefetchEnabled,undo:D}}var de=1024;function fe(t,n){let r=ue(t,n),i=(0,e.ref)(0),a=(0,e.ref)(`list`),o=(0,e.ref)(0),s=(0,e.reactive)({activeIndex:0,currentCursor:null,errorMessage:null,fillCollectedCount:null,fillDelayRemainingMs:null,fillTargetCount:null,hasNextPage:!1,hasPreviousPage:!1,isAutoMode:!1,itemCount:0,loadState:`loaded`,mode:null,nextCursor:null,phase:`idle`,previousCursor:null,removedCount:0,surfaceMode:`list`}),c=(0,e.computed)(()=>i.value>=de),l=(0,e.computed)(()=>t.surfaceMode===`fullscreen`||t.surfaceMode===`list`),u=(0,e.computed)(()=>c.value?t.surfaceMode??a.value:`fullscreen`),d=(0,e.computed)(()=>c.value&&u.value===`fullscreen`);(0,e.watch)(()=>t.surfaceMode,(e,t)=>{e&&(a.value=e,c.value&&t===`fullscreen`&&e===`list`&&(o.value+=1))},{immediate:!0}),(0,e.watch)(c,(e,t)=>{e&&!t&&a.value===`list`&&(o.value+=1)}),(0,e.watch)([u,()=>r.pendingAppendItems.value.length],([e,t])=>{e===`list`||t<=0||r.commitPendingAppend()}),(0,e.watch)(u,e=>{r.setAutoPrefetchEnabled(e===`fullscreen`)},{immediate:!0}),(0,e.watchEffect)(()=>{s.activeIndex=r.activeIndex.value,s.currentCursor=r.currentCursor.value,s.errorMessage=r.errorMessage.value,s.fillCollectedCount=r.fillCollectedCount.value,s.fillDelayRemainingMs=r.fillDelayRemainingMs.value,s.fillTargetCount=r.fillTargetCount.value,s.hasNextPage=r.hasNextPage.value,s.hasPreviousPage=r.hasPreviousPage.value,s.isAutoMode=r.isAutoMode.value,s.itemCount=r.items.value.length,s.loadState=r.loading.value?`loading`:r.errorMessage.value?`failed`:`loaded`,s.mode=r.mode.value,s.nextCursor=r.nextCursor.value,s.phase=r.phase.value,s.previousCursor=r.previousCursor.value,s.removedCount=r.removedCount.value,s.surfaceMode=u.value}),(0,e.onMounted)(()=>{h(),window.addEventListener(`keydown`,m),window.addEventListener(`resize`,h)}),(0,e.onBeforeUnmount)(()=>{window.removeEventListener(`keydown`,m),window.removeEventListener(`resize`,h)});function f(e){r.setActiveIndex(e),c.value&&g(`fullscreen`)}function p(){if(c.value){if(l.value){u.value!==`list`&&n(`update:surfaceMode`,`list`);return}a.value=`list`,o.value+=1}}function m(e){e.defaultPrevented||e.key!==`Escape`||!c.value||u.value!==`fullscreen`||D(e.target)||(e.preventDefault(),p())}function h(){i.value=window.innerWidth||0}function g(e){if(l.value){t.surfaceMode!==e&&n(`update:surfaceMode`,e);return}a.value=e}return{...r,cancel:r.cancel,isDesktop:c,listRestoreToken:o,loadNext:r.loadNext,loadPrevious:r.loadPrevious,openFullscreen:f,returnToList:p,retry:r.retry,showBackToList:d,status:(0,e.readonly)(s),surfaceMode:u}}var pe={"data-testid":`vibe-media-bar`,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]`},me={class:`grid grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-3 border-t border-white/12 bg-black/70 px-4 py-3 backdrop-blur-[18px]`},he={class:`text-[0.76rem] font-bold uppercase tracking-[0.18em] text-[#f7f1ea]/74`},ge={class:`relative h-4 w-full`},_e=[`max`,`value`,`disabled`],ve={class:`text-[0.76rem] font-bold uppercase tracking-[0.18em] text-[#f7f1ea]/74`},ye=(0,e.defineComponent)({__name:`FullscreenMediaBar`,props:{currentTime:{},currentTimeLabel:{},duration:{},durationLabel:{},progress:{}},emits:[`seek-input`],setup(t,{emit:n}){let r=t,i=n;return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,pe,[(0,e.createElementVNode)(`div`,me,[(0,e.createElementVNode)(`span`,he,(0,e.toDisplayString)(r.currentTimeLabel),1),(0,e.createElementVNode)(`div`,ge,[n[1]||=(0,e.createElementVNode)(`div`,{class:`absolute inset-x-0 top-1/2 h-px -translate-y-1/2 bg-white/12`},null,-1),(0,e.createElementVNode)(`div`,{class:`absolute left-0 top-1/2 h-px -translate-y-1/2 bg-[#f7f1ea]`,style:(0,e.normalizeStyle)({width:`${r.progress}%`})},null,4),(0,e.createElementVNode)(`input`,{"data-swipe-lock":`true`,type:`range`,"aria-label":`Seek active media`,min:`0`,step:`0.1`,max:r.duration||1,value:r.currentTime,disabled:r.duration<=0,class:`vibe-media-slider absolute inset-0 z-10 h-4 w-full cursor-pointer bg-transparent disabled:cursor-default disabled:opacity-50`,onInput:n[0]||=e=>i(`seek-input`,e)},null,40,_e)]),(0,e.createElementVNode)(`span`,ve,(0,e.toDisplayString)(r.durationLabel),1)])]))}}),be={class:`pointer-events-none absolute inset-0 z-[3] flex flex-col justify-between p-[clamp(1.25rem,2.6vw,2.25rem)]`},xe={class:`grid gap-4`},Se={class:`flex min-h-11 items-center justify-between gap-4`},Ce={class:`min-w-0 flex flex-1 items-center gap-3`},Y={key:1,"data-testid":`vibe-title`,class:`m-0 truncate text-left text-[0.82rem] leading-none tracking-[-0.04em] min-[721px]:text-[1.2rem]`},we={class:`pointer-events-auto flex shrink-0 items-center gap-2`},Te={"data-testid":`vibe-pagination`,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]`},Ee={class:`whitespace-nowrap`},De={key:0,class:`whitespace-nowrap border-l border-white/12 pl-2 text-[#f7f1ea]/56 min-[721px]:pl-3`},Oe={key:0,class:`grid gap-2 max-[720px]:justify-items-start`},ke=(0,e.defineComponent)({__name:`FullscreenHeader`,props:{currentIndex:{},paginationDetail:{},showBackToList:{type:Boolean},showEndBadge:{type:Boolean},title:{},total:{}},emits:[`back-to-list`],setup(t,{emit:n}){let r=t,i=n;return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,be,[(0,e.createElementVNode)(`div`,xe,[(0,e.createElementVNode)(`div`,Se,[(0,e.createElementVNode)(`div`,Ce,[r.showBackToList?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:0,type:`button`,"data-testid":`vibe-back-to-list`,class:`pointer-events-auto inline-flex h-11 w-11 shrink-0 items-center justify-center border border-white/14 bg-black/40 text-[#f7f1ea]/78 backdrop-blur-[18px] transition hover:border-white/28 hover:bg-black/55`,"aria-label":`Back to list`,onClick:n[0]||=e=>i(`back-to-list`)},[(0,e.createVNode)((0,e.unref)(u),{class:`h-4 w-4 stroke-[2.2]`,"aria-hidden":`true`})])):(0,e.createCommentVNode)(``,!0),r.title?((0,e.openBlock)(),(0,e.createElementBlock)(`h2`,Y,(0,e.toDisplayString)(r.title),1)):(0,e.createCommentVNode)(``,!0)]),(0,e.createElementVNode)(`div`,we,[(0,e.createElementVNode)(`span`,Te,[(0,e.createElementVNode)(`span`,Ee,(0,e.toDisplayString)(r.currentIndex+1)+` / `+(0,e.toDisplayString)(r.total),1),r.paginationDetail?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,De,(0,e.toDisplayString)(r.paginationDetail),1)):(0,e.createCommentVNode)(``,!0)]),(0,e.renderSlot)(t.$slots,`actions`)])])]),r.showEndBadge?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Oe,[...n[1]||=[(0,e.createElementVNode)(`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)]])):(0,e.createCommentVNode)(``,!0)]))}});function Ae(e){if(!Number.isFinite(e)||e<=0)return`0:00`;let t=Math.floor(e),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60;return n>0?`${n}:${String(r).padStart(2,`0`)}:${String(i).padStart(2,`0`)}`:`${r}:${String(i).padStart(2,`0`)}`}function je(t){let n=!1;(0,e.watch)(t.enabled,async e=>{if(r(e),e){t.onResize(),await t.onEnable();return}t.onDisable()},{immediate:!0}),(0,e.onMounted)(()=>{t.onResize(),t.enabled.value&&t.onEnable()}),(0,e.onBeforeUnmount)(()=>{r(!1),t.onDisable()});function r(e){if(e&&!n){window.addEventListener(`resize`,t.onResize),window.addEventListener(`keydown`,t.onKeydown),n=!0;return}!e&&n&&(window.removeEventListener(`resize`,t.onResize),window.removeEventListener(`keydown`,t.onKeydown),n=!1)}}var Me={currentTime:0,duration:0,errorKind:null,paused:!0,ready:!1};function Ne(){return{...Me}}function Pe(e){return e.complete&&!!(e.currentSrc||e.getAttribute(`src`))}function Fe(e,t,n){e.currentTime=Number.isFinite(t.currentTime)?t.currentTime:0,e.duration=Number.isFinite(t.duration)?t.duration:0,e.paused=t.paused,n&&n!==`error`&&(e.errorKind=null),e.ready=Ie(t,n)}function Ie(e,t){return t===`error`||t===`loadstart`||t===`waiting`||t===`stalled`?!1:t===`canplay`||t===`canplaythrough`||t===`playing`?!0:e.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA}var Le=new Map;function Re(e){return e===`not-found`?`404`:`Load error`}function ze(e){return e===`generic`}function Be(e){let t=Le.get(e);if(t)return t;let n=Ve(e);return Le.set(e,n),n}async function Ve(e){if(!He(e))return`generic`;try{let t=await fetch(e,{method:`HEAD`});if(!t.ok&&t.status===404)return`not-found`}catch{return`generic`}return`generic`}function He(e){return/^(https?:\/\/|\/)/i.test(e)}function Ue(e){try{let t=e.play();t&&typeof t.catch==`function`&&t.catch(()=>{})}catch{}}function We(t){let n=(0,e.ref)({}),r=(0,e.ref)({}),i=(0,e.ref)({}),a=(0,e.ref)({}),o=new Map,s=new Map,c=new Set,l=(0,e.computed)(()=>t.activeItem.value?A(t.activeItem.value):null),u=(0,e.computed)(()=>t.activeMediaItem.value?A(t.activeMediaItem.value):null),d=(0,e.computed)(()=>{let e=new Map;for(let n of t.items.value)e.set(A(n),n);return e}),f=(0,e.computed)(()=>u.value?i.value[u.value]??Me:Me),p=(0,e.computed)(()=>u.value?f.value.duration:0),m=(0,e.computed)(()=>p.value<=0?0:Ge(f.value.currentTime/p.value*100,0,100)),h=(0,e.computed)(()=>l.value?M(l.value):null);(0,e.watch)(()=>l.value,async()=>{await b()}),(0,e.watch)(()=>t.itemCount.value,async()=>{await b()});function g(e,t){if(t instanceof HTMLVideoElement){o.set(e,t),B(e,t);return}o.delete(e)}function _(e,t){if(t instanceof HTMLAudioElement){s.set(e,t),B(e,t);return}s.delete(e)}function v(e,t){t instanceof HTMLImageElement&&Pe(t)&&(n.value[e]=!0,r.value[e]=null,G(e,t.currentSrc||t.src||q(e)))}function y(){R(),a.value={},r.value={},n.value={},i.value={},c.clear()}async function b(){if(!t.isEnabled.value){R();return}await(0,e.nextTick)();let n=l.value;for(let[e,t]of o.entries()){if(e!==n||i.value[e]?.errorKind){L(t,e);continue}t.muted=!0,t.loop=!1,t.playsInline=!0,Ue(t),B(e,t)}for(let[e,t]of s.entries()){if(e!==n||i.value[e]?.errorKind){L(t,e);continue}Ue(t),B(e,t)}}function x(e,t){let n=t.currentTarget instanceof HTMLMediaElement?t.currentTarget:t.target instanceof HTMLMediaElement?t.target:null;if(n){let r=i.value[e]?.ready??!1;B(e,n,t.type);let a=i.value[e]?.ready??!1;!r&&a&&G(e,n.currentSrc||n.src||q(e))}}function S(e,t){n.value[e]=!0,r.value[e]=null,G(e,t)}async function C(e,i){let a=K(e)??t.activeItem.value;n.value[e]=!1,r.value[e]=`generic`;let o=await Be(i);r.value[e]=o,a&&t.onAssetError?.({item:a,occurrenceKey:e,url:i,kind:o,surface:`fullscreen`})}async function w(e,n){let r=H(e),i=z(e),a=K(e)??t.activeMediaItem.value??t.activeItem.value;if(r){r.pause();try{r.currentTime=0}catch{}}i.currentTime=0,i.duration=0,i.paused=!0,i.ready=!1,i.errorKind=`generic`;let o=await Be(n);i.errorKind=o,a&&t.onAssetError?.({item:a,occurrenceKey:e,url:n,kind:o,surface:`fullscreen`})}function T(e,t,n){e.button!==0||Date.now()<n||W(o.get(t)??null)}function E(e,t,n){e.button!==0||Date.now()<n||W(H(t))}function D(e){let t=U(),n=u.value;if(!t||!n||!(e.target instanceof HTMLInputElement))return;let r=Number.parseFloat(e.target.value);if(!Number.isFinite(r))return;let i=Ge(r,0,p.value||0);V(n,i,t),t.currentTime=i}function O(e){return!!n.value[e]&&!r.value[e]}function k(e){return(i.value[e]?.ready??!1)&&!i.value[e]?.errorKind}function j(e){return e.url}function M(e){return r.value[e]??i.value[e]?.errorKind??null}function N(e){let t=M(e);return t?Re(t):null}function P(e){return ze(M(e))}function F(e){return`${e}:${a.value[e]??0}`}async function I(t){if(!P(t))return;n.value[t]=!1,r.value[t]=null;let i=z(t);i.currentTime=0,i.duration=0,i.paused=!0,i.ready=!1,i.errorKind=null;let o=H(t);o&&L(o,t),c.forEach(e=>{e.startsWith(`${t}|`)&&c.delete(e)}),a.value[t]=(a.value[t]??0)+1,await(0,e.nextTick)(),await b()}function L(e,t){e.pause();try{e.currentTime=0}catch{}B(t,e)}function R(){for(let[e,t]of o.entries())L(t,e);for(let[e,t]of s.entries())L(t,e)}function z(e){return i.value[e]||(i.value[e]=Ne()),i.value[e]}function B(e,t,n){Fe(z(e),t,n)}function V(e,t,n){let r=z(e);r.currentTime=t,r.duration=Number.isFinite(n.duration)?n.duration:r.duration,r.paused=n.paused}function H(e){return o.get(e)??s.get(e)??null}function U(){return u.value?H(u.value):null}function W(e){if(e){if(e.paused){Ue(e);return}e.pause()}}function G(e,n){let r=K(e)??t.activeMediaItem.value??t.activeItem.value;if(!r||!n)return;let i=`${e}|${n}`;c.has(i)||(c.add(i),t.onAssetLoad?.({item:r,occurrenceKey:e,surface:`fullscreen`,url:n}))}function K(e){return d.value.get(e)??null}function q(e){return K(e)?.url??null}return{activeAssetErrorKind:h,activeMediaDuration:p,activeMediaProgress:m,activeMediaState:f,getAssetErrorKind:M,getAssetErrorLabel:N,getAssetRenderKey:F,getImageSource:j,isImageReady:O,isMediaReady:k,canRetryAsset:P,mediaStates:i,onAudioCoverClick:E,onImageError:C,onImageLoad:S,onMediaError:w,onMediaEvent:x,onMediaSeekInput:D,onVideoClick:T,registerAudioElement:_,registerImageElement:v,registerVideoElement:g,resetMediaState:y,retryAsset:I,syncMediaPlayback:b}}function Ge(e,t,n){return Math.min(Math.max(e,t),n)}function Ke(e,t,n=2){return t<=0?{start:0,end:-1}:{start:Math.max(0,e-n),end:Math.min(t-1,e+n)}}function qe(e,t,n=2){let r=Ke(t,e.length,n);return r.end<r.start?[]:e.slice(r.start,r.end+1).map((e,t)=>({item:e,index:r.start+t}))}function Je(e,t,n,r,i){return{transform:`translate3d(0, ${(e-t)*n+r}px, 0)`,transition:i?`none`:`transform 320ms cubic-bezier(0.22, 1, 0.36, 1)`}}function Ye(t,n,r={}){let{activeIndex:i,canRetryInitialLoad:a,errorMessage:o,hasNextPage:s,items:c,loading:l,paginationDetail:u,retryInitialLoad:d,setActiveIndex:f}=ue(t,n),p=(0,e.ref)(null),m=(0,e.ref)(0),h=(0,e.ref)(!1),g=(0,e.ref)(1),_=r.enabled??(0,e.computed)(()=>!0),v=null,y=0,b=0,x=0,S=(0,e.computed)(()=>c.value.length===0?0:N(i.value,0,c.value.length-1)),C=(0,e.computed)(()=>c.value[S.value]??null),w=(0,e.computed)(()=>C.value?.type===`audio`||C.value?.type===`video`?C.value:null),T=We({items:c,activeItem:C,activeMediaItem:w,isEnabled:_,itemCount:(0,e.computed)(()=>c.value.length),onAssetError:r.onAssetError,onAssetLoad:r.onAssetLoad}),E=(0,e.computed)(()=>c.value.length>0&&S.value===c.value.length-1),k=(0,e.computed)(()=>c.value.length===0&&l.value?`Loading the first page`:l.value&&s.value?`Loading more items`:E.value&&!s.value&&!l.value?`End of feed`:null),A=(0,e.computed)(()=>Math.min(96,g.value*.15||96)),j=(0,e.computed)(()=>Ke(S.value,c.value.length)),M=(0,e.computed)(()=>qe(c.value,S.value));je({enabled:_,onDisable(){U(),T.resetMediaState()},onEnable(){return T.syncMediaPlayback()},onKeydown:G,onResize:P});function N(e,t,n){return Math.min(Math.max(e,t),n)}function P(){g.value=p.value?.clientHeight||window.innerHeight||1}function F(e){return c.value.length===0?!1:N(S.value+e,0,c.value.length-1)!==S.value}function I(e){if(c.value.length===0)return;let t=N(S.value+e,0,c.value.length-1);t!==S.value&&f(t)}function L(e){let t=e>0,n=e<0;return t&&!F(-1)||n&&!F(1)?e*.24:e}function R(e){!_.value||c.value.length===0||e.pointerType===`mouse`||O(e.target)||(v=e.pointerId,y=e.clientY,m.value=0,h.value=!0,p.value?.setPointerCapture?.(e.pointerId))}function z(e){!_.value||!h.value||v!==e.pointerId||(m.value=L(e.clientY-y))}function B(e){!_.value||v!==e.pointerId||(p.value?.releasePointerCapture?.(e.pointerId),H())}function V(e){!_.value||v!==e.pointerId||(p.value?.releasePointerCapture?.(e.pointerId),U())}function H(){Math.abs(m.value)>=A.value&&(x=Date.now()+250,I(m.value<0?1:-1)),U()}function U(){m.value=0,h.value=!1,v=null}function W(e){if(!_.value||c.value.length===0||h.value||O(e.target)||Math.abs(e.deltaY)<Math.max(Math.abs(e.deltaX),24))return;e.preventDefault();let t=Date.now();t<b||(b=t+400,I(e.deltaY>0?1:-1))}function G(e){!_.value||c.value.length===0||D(e.target)||((e.key===`ArrowDown`||e.key===`PageDown`)&&(e.preventDefault(),I(1)),(e.key===`ArrowUp`||e.key===`PageUp`)&&(e.preventDefault(),I(-1)))}function K(e,t){T.onVideoClick(e,t,x)}function q(e,t){T.onAudioCoverClick(e,t,x)}function J(e){T.onMediaSeekInput(e)}function ee(e){return e.type===`image`||e.type===`video`}function te(e){return e.type===`audio`}function ne(e){return Je(e,S.value,g.value,m.value,h.value)}return{activeItem:C,activeAssetErrorKind:T.activeAssetErrorKind,activeMediaDuration:T.activeMediaDuration,activeMediaItem:w,activeMediaProgress:T.activeMediaProgress,activeMediaState:T.activeMediaState,canRetryAsset:T.canRetryAsset,canRetryInitialLoad:a,errorMessage:o,getAssetErrorKind:T.getAssetErrorKind,getAssetErrorLabel:T.getAssetErrorLabel,getAssetRenderKey:T.getAssetRenderKey,formatPlaybackTime:Ae,getImageSource:T.getImageSource,getSlideStyle:ne,hasNextPage:s,isAtEnd:E,isAudio:te,isVisual:ee,items:c,loading:l,mediaStates:T.mediaStates,isImageReady:T.isImageReady,isMediaReady:T.isMediaReady,onAudioCoverClick:q,onImageError:T.onImageError,onImageLoad:T.onImageLoad,onMediaEvent:T.onMediaEvent,onMediaError:T.onMediaError,onMediaSeekInput:J,onPointerCancel:V,onPointerDown:R,onPointerMove:z,onPointerUp:B,onVideoClick:K,onWheel:W,registerAudioElement:T.registerAudioElement,registerImageElement:T.registerImageElement,registerVideoElement:T.registerVideoElement,renderedItems:M,renderedRange:j,resolvedActiveIndex:S,retryInitialLoad:d,retryAsset:T.retryAsset,stageRef:p,statusMessage:k,paginationDetail:u}}var Xe={image:m,video:f,audio:d,other:p},Ze={image:`Image`,video:`Video`,audio:`Audio`,other:`File`};function X(e){return Xe[e]}function Qe(e){return Ze[e]}function Z(t){if(!Array.isArray(t))return!1;for(let n of t){if(Array.isArray(n)){if(Z(n))return!0;continue}if(!(0,e.isVNode)(n)){if(typeof n==`string`){if(n.trim().length>0)return!0;continue}if(n!=null&&n!==!1)return!0;continue}if(!$e(n))return!0}return!1}function $e(t){return t.type===e.Comment?!0:t.type===e.Text?typeof t.children==`string`?t.children.trim().length===0:!0:t.type===e.Fragment?!Z(t.children):!1}var et={image:`bg-[radial-gradient(circle_at_top_center,rgba(251,191,36,0.4)_0,transparent_42%),linear-gradient(180deg,#120d08,#050507)]`,video:`bg-[radial-gradient(circle_at_top_center,rgba(56,189,248,0.38)_0,transparent_42%),linear-gradient(180deg,#07111c,#050608)]`,audio:`bg-[radial-gradient(circle_at_top_center,rgba(16,185,129,0.32)_0,transparent_42%),linear-gradient(180deg,#06120f,#040506)]`,other:`bg-[radial-gradient(circle_at_top_center,rgba(148,163,184,0.28)_0,transparent_42%),linear-gradient(180deg,#0d0c10,#040506)]`},tt={image:`bg-[radial-gradient(circle_at_center,rgba(251,191,36,0.4)_0,transparent_42%),linear-gradient(180deg,#120d08,#050507)]`,video:`bg-[radial-gradient(circle_at_center,rgba(56,189,248,0.38)_0,transparent_42%),linear-gradient(180deg,#07111c,#050608)]`,audio:`bg-[radial-gradient(circle_at_center,rgba(16,185,129,0.32)_0,transparent_42%),linear-gradient(180deg,#06120f,#040506)]`,other:`bg-[radial-gradient(circle_at_center,rgba(148,163,184,0.28)_0,transparent_42%),linear-gradient(180deg,#0d0c10,#040506)]`};function nt(e){return et[e]}function rt(e){return tt[e]}var it={class:`relative h-full min-h-0 overflow-hidden bg-[#05060a] text-[#f7f1ea]`},at={key:0,class:`relative h-full min-h-0`},ot=[`data-item-id`,`data-occurrence-key`,`data-index`,`data-active`,`aria-hidden`],st={key:0,"data-testid":`vibe-asset-spinner`,class:`pointer-events-none absolute inset-0 z-[2] grid place-items-center`},ct={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]`},lt=[`data-kind`],ut={class:`grid justify-items-center gap-4 border border-white/14 bg-black/45 px-8 py-7 text-center backdrop-blur-[18px]`},dt={class:`m-0 text-[0.82rem] font-bold uppercase tracking-[0.28em] text-[#f7f1ea]/70`},ft=[`onClick`],pt=[`src`,`alt`,`onLoad`,`onError`],mt=[`src`,`preload`,`onClick`,`onCanplay`,`onDurationchange`,`onError`,`onLoadstart`,`onLoadedmetadata`,`onPause`,`onPlay`,`onPlaying`,`onSeeking`,`onSeeked`,`onStalled`,`onTimeupdate`,`onWaiting`],ht={class:`relative grid aspect-square w-[clamp(320px,46vw,560px)] max-w-[calc(100vw-2.5rem)] place-items-center`},gt=[`aria-label`,`disabled`,`onClick`],_t={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]`},vt={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]`},yt={key:0,"data-testid":`vibe-asset-spinner`,class:`pointer-events-none absolute inset-0 z-[3] grid place-items-center`},bt={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]`},xt=[`data-kind`],St={class:`m-0 text-[0.82rem] font-bold uppercase tracking-[0.28em] text-[#f7f1ea]/70`},Ct=[`onClick`],wt=[`src`,`preload`,`onCanplay`,`onDurationchange`,`onError`,`onLoadstart`,`onLoadedmetadata`,`onPause`,`onPlay`,`onPlaying`,`onSeeking`,`onSeeked`,`onStalled`,`onTimeupdate`,`onWaiting`],Tt={key:2,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`},Et={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]`},Dt={key:0,class:`pointer-events-none absolute inset-0 z-[4]`},Ot={class:`h-full w-full`},kt={key:0,"data-testid":`vibe-fullscreen-aside`,class:`h-full min-h-0 overflow-hidden border-l border-white/10 bg-black/45 backdrop-blur-[18px]`},At={class:`h-full min-h-0 overflow-y-auto overscroll-y-contain`},jt={key:0,"data-testid":`vibe-fullscreen-aside`,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]`},Mt={class:`h-full min-h-0 overflow-y-auto overscroll-y-contain`},Nt=1280,Pt=2,Ft=(0,e.defineComponent)({__name:`FullscreenSurface`,props:{items:{},activeIndex:{default:0},fillDelayMs:{},fillDelayStepMs:{},initialState:{},loading:{type:Boolean,default:!1},hasNextPage:{type:Boolean,default:!1},mode:{},resolve:{},initialCursor:{},pageSize:{},assetLoadLimits:{},hasPreviousPage:{type:Boolean},paginationDetail:{default:null},requestNextPage:{},requestPreviousPage:{},showStatusBadges:{type:Boolean,default:!0},surfaceMode:{},active:{type:Boolean,default:!0},reportAssetError:{type:[Function,null],default:null},reportAssetLoad:{type:[Function,null],default:null},showBackToList:{type:Boolean,default:!1}},emits:[`back-to-list`,`update:activeIndex`],setup(t,{emit:n}){let r=t,i=(0,e.useSlots)(),a=n,o=Ye(r,(e,t)=>{a(`update:activeIndex`,t)},{enabled:(0,e.toRef)(r,`active`),onAssetError:r.reportAssetError??void 0,onAssetLoad:r.reportAssetLoad??void 0}),s=(0,e.ref)(typeof window>`u`?Nt:window.innerWidth||Nt),c=(0,e.computed)(()=>nt(o.activeItem.value?.type??`image`)),l=(0,e.computed)(()=>o.activeMediaItem.value&&!o.activeAssetErrorKind.value?`bottom-[5.8rem] max-[720px]:bottom-[7.4rem]`:`bottom-[1.8rem] max-[720px]:bottom-[1.3rem]`),u=(0,e.computed)(()=>!!o.activeMediaItem.value&&!o.activeAssetErrorKind.value),d=(0,e.computed)(()=>u.value?`pb-[5.75rem] max-[720px]:pb-[7rem]`:``),f=(0,e.computed)(()=>{let e=o.activeItem.value;return e?{hasNextPage:r.hasNextPage,index:o.resolvedActiveIndex.value,item:e,loading:r.loading,paginationDetail:r.paginationDetail,total:r.items.length}:null}),p=(0,e.computed)(()=>!f.value||!i[`fullscreen-header-actions`]?[]:i[`fullscreen-header-actions`](f.value)),m=(0,e.computed)(()=>!f.value||!i[`fullscreen-aside`]?[]:i[`fullscreen-aside`](f.value)),y=(0,e.computed)(()=>r.loading?r.items.length>0?`Loading more items`:`Loading the first page`:o.isAtEnd.value&&!r.hasNextPage&&!r.loading?`End of feed`:null),b=(0,e.computed)(()=>!r.showStatusBadges||!f.value||!y.value?null:{...f.value,kind:o.isAtEnd.value&&!o.hasNextPage.value&&!o.loading.value?`end`:`loading-more`,message:y.value}),x=(0,e.computed)(()=>!b.value||!i[`fullscreen-status`]?[]:i[`fullscreen-status`](b.value)),S=(0,e.computed)(()=>({gridTemplateColumns:T.value?`minmax(0, 1fr) 22rem`:`minmax(0, 1fr) 0rem`,transition:`grid-template-columns 320ms cubic-bezier(0.22, 1, 0.36, 1)`})),C=(0,e.computed)(()=>Z(p.value)),w=(0,e.computed)(()=>Z(m.value)),T=(0,e.computed)(()=>w.value&&s.value>=Nt),E=(0,e.computed)(()=>w.value&&!T.value),D=(0,e.computed)(()=>Z(x.value));(0,e.onMounted)(()=>{window.addEventListener(`resize`,R)}),(0,e.onBeforeUnmount)(()=>{window.removeEventListener(`resize`,R)});function O(e,t){let n=t.title?.trim();return n?`${e} ${n}`:`${e} ${Qe(t.type).toLowerCase()}`}function k(e,t){let n=L(t);return!P(e)||e!==o.resolvedActiveIndex.value||o.getAssetErrorKind(n)?!1:t.type===`image`?!o.isImageReady(n):t.type===`video`||t.type===`audio`?!o.isMediaReady(n):!1}function j(e){return o.getAssetErrorKind(L(e))}function M(e){return o.getAssetErrorLabel(L(e))??`Load error`}function N(e,t){return P(e)&&e===o.resolvedActiveIndex.value&&!!j(t)}function P(e){let t=o.resolvedActiveIndex.value;return r.active&&e>=t&&e<=t+Pt}function F(e,t){return P(e)?o.getImageSource(t):void 0}function I(e,t){return P(e)?t.url:void 0}function L(e){return A(e)}function R(){s.value=window.innerWidth||Nt}return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,it,[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`absolute inset-0 transition-[background] duration-200`,c.value])},null,2),(0,e.createElementVNode)(`div`,{class:`relative z-[1] grid h-full min-h-0`,style:(0,e.normalizeStyle)(S.value)},[(0,e.createElementVNode)(`div`,{ref:`viewer.stageRef`,"data-testid":`vibe-stage`,class:`relative h-full min-h-0 touch-none overflow-hidden`,onPointerdown:n[1]||=(...t)=>(0,e.unref)(o).onPointerDown&&(0,e.unref)(o).onPointerDown(...t),onPointermove:n[2]||=(...t)=>(0,e.unref)(o).onPointerMove&&(0,e.unref)(o).onPointerMove(...t),onPointerup:n[3]||=(...t)=>(0,e.unref)(o).onPointerUp&&(0,e.unref)(o).onPointerUp(...t),onPointercancel:n[4]||=(...t)=>(0,e.unref)(o).onPointerCancel&&(0,e.unref)(o).onPointerCancel(...t),onWheel:n[5]||=(...t)=>(0,e.unref)(o).onWheel&&(0,e.unref)(o).onWheel(...t)},[(0,e.unref)(o).items.value.length>0?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,at,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)((0,e.unref)(o).renderedItems.value,({item:r,index:i})=>((0,e.openBlock)(),(0,e.createElementBlock)(`article`,{key:L(r),"data-testid":`vibe-slide`,"data-item-id":r.id,"data-occurrence-key":L(r),"data-index":i,"data-active":i===(0,e.unref)(o).resolvedActiveIndex.value,"aria-hidden":i===(0,e.unref)(o).resolvedActiveIndex.value?`false`:`true`,class:(0,e.normalizeClass)([`absolute inset-0 flex h-full min-h-full items-center justify-center will-change-transform`,i===(0,e.unref)(o).resolvedActiveIndex.value?`pointer-events-auto`:`pointer-events-none`]),style:(0,e.normalizeStyle)((0,e.unref)(o).getSlideStyle(i))},[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`absolute inset-0 opacity-85`,(0,e.unref)(rt)(r.type)])},null,2),(0,e.unref)(o).isVisual(r)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,class:(0,e.normalizeClass)([`relative z-[1] flex h-full w-full items-center justify-center overflow-hidden`,i===(0,e.unref)(o).resolvedActiveIndex.value?d.value:``])},[k(i,r)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,st,[(0,e.createElementVNode)(`span`,ct,[(0,e.createVNode)((0,e.unref)(h),{class:`h-5 w-5 animate-spin stroke-[1.9] text-[#f7f1ea]/78`,"aria-hidden":`true`})])])):(0,e.createCommentVNode)(``,!0),N(i,r)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:1,"data-testid":`vibe-asset-error`,"data-kind":j(r),class:`grid h-full w-full place-items-center`},[(0,e.createElementVNode)(`div`,ut,[(0,e.createVNode)((0,e.unref)(v),{class:`h-7 w-7 stroke-[1.9] text-[#f7f1ea]/72`,"aria-hidden":`true`}),(0,e.createElementVNode)(`p`,dt,(0,e.toDisplayString)(M(r)),1),(0,e.unref)(o).canRetryAsset(L(r))?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:0,type:`button`,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`,onClick:(0,e.withModifiers)(t=>(0,e.unref)(o).retryAsset(L(r)),[`stop`])},` Retry `,8,ft)):(0,e.createCommentVNode)(``,!0)])],8,lt)):r.type===`image`?((0,e.openBlock)(),(0,e.createElementBlock)(`img`,{key:(0,e.unref)(o).getAssetRenderKey(L(r)),src:F(i,r),alt:r.title??``,draggable:`false`,class:(0,e.normalizeClass)([`block h-auto max-h-full w-auto max-w-full object-contain shadow-[0_40px_120px_-60px_rgba(0,0,0,0.9)] transition-opacity duration-300`,(0,e.unref)(o).isImageReady(L(r))?`opacity-100`:`opacity-0`]),ref_for:!0,ref:t=>(0,e.unref)(o).registerImageElement(L(r),t),onLoad:t=>(0,e.unref)(o).onImageLoad(L(r),r.url),onError:t=>(0,e.unref)(o).onImageError(L(r),r.url)},null,42,pt)):((0,e.openBlock)(),(0,e.createElementBlock)(`video`,{key:(0,e.unref)(o).getAssetRenderKey(L(r)),class:(0,e.normalizeClass)([`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`,(0,e.unref)(o).isMediaReady(L(r))?`opacity-100`:`opacity-0`]),playsinline:``,muted:``,src:I(i,r),preload:P(i)?`metadata`:`none`,ref_for:!0,ref:t=>(0,e.unref)(o).registerVideoElement(L(r),t),onClick:(0,e.withModifiers)(t=>(0,e.unref)(o).onVideoClick(t,L(r)),[`stop`]),onCanplay:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onDurationchange:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onError:t=>(0,e.unref)(o).onMediaError(L(r),r.url),onLoadstart:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onLoadedmetadata:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onPause:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onPlay:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onPlaying:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onSeeking:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onSeeked:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onStalled:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onTimeupdate:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onWaiting:t=>(0,e.unref)(o).onMediaEvent(L(r),t)},null,42,mt))],2)):(0,e.unref)(o).isAudio(r)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:1,class:(0,e.normalizeClass)([`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===(0,e.unref)(o).resolvedActiveIndex.value?d.value:``])},[(0,e.createElementVNode)(`div`,ht,[(0,e.createElementVNode)(`button`,{type:`button`,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]`,"aria-label":(0,e.unref)(o).mediaStates.value[L(r)]?.paused??!0?O(`Play`,r):O(`Pause`,r),disabled:!!j(r),onClick:t=>(0,e.unref)(o).onAudioCoverClick(t,L(r))},[n[6]||=(0,e.createElementVNode)(`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),n[7]||=(0,e.createElementVNode)(`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),(0,e.createElementVNode)(`span`,_t,[(0,e.renderSlot)(t.$slots,`item-icon`,{icon:(0,e.unref)(X)(r.type),item:r},()=>[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)((0,e.unref)(X)(r.type)),{class:`h-6 w-6 stroke-[1.9]`,"aria-hidden":`true`}))])]),(0,e.createElementVNode)(`span`,vt,[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)((0,e.unref)(o).mediaStates.value[L(r)]?.paused??!0?(0,e.unref)(_):(0,e.unref)(g)),{class:`h-4 w-4 stroke-2`,"aria-hidden":`true`}))])],8,gt),k(i,r)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,yt,[(0,e.createElementVNode)(`span`,bt,[(0,e.createVNode)((0,e.unref)(h),{class:`h-5 w-5 animate-spin stroke-[1.9] text-[#f7f1ea]/78`,"aria-hidden":`true`})])])):(0,e.createCommentVNode)(``,!0),j(r)?((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:1},[n[8]||=(0,e.createElementVNode)(`div`,{class:`pointer-events-none absolute inset-0 border border-white/8 bg-[radial-gradient(circle,rgba(239,68,68,0.12),transparent_66%)]`},null,-1),(0,e.createElementVNode)(`div`,{"data-testid":`vibe-asset-error`,"data-kind":j(r),class:`relative z-[1] grid justify-items-center gap-4`},[(0,e.createVNode)((0,e.unref)(v),{class:`h-7 w-7 stroke-[1.9] text-[#f7f1ea]/72`,"aria-hidden":`true`}),(0,e.createElementVNode)(`p`,St,(0,e.toDisplayString)(M(r)),1),(0,e.unref)(o).canRetryAsset(L(r))?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:0,type:`button`,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`,onClick:(0,e.withModifiers)(t=>(0,e.unref)(o).retryAsset(L(r)),[`stop`])},` Retry `,8,Ct)):(0,e.createCommentVNode)(``,!0)],8,xt)],64)):(0,e.createCommentVNode)(``,!0)]),((0,e.openBlock)(),(0,e.createElementBlock)(`audio`,{key:(0,e.unref)(o).getAssetRenderKey(L(r)),src:I(i,r),preload:P(i)?`metadata`:`none`,class:`pointer-events-none absolute h-px w-px opacity-0`,ref_for:!0,ref:t=>(0,e.unref)(o).registerAudioElement(L(r),t),onCanplay:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onDurationchange:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onError:t=>(0,e.unref)(o).onMediaError(L(r),r.url),onLoadstart:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onLoadedmetadata:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onPause:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onPlay:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onPlaying:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onSeeking:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onSeeked:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onStalled:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onTimeupdate:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onWaiting:t=>(0,e.unref)(o).onMediaEvent(L(r),t)},null,40,wt))],2)):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Tt,[(0,e.createElementVNode)(`div`,Et,[(0,e.renderSlot)(t.$slots,`item-icon`,{icon:(0,e.unref)(X)(r.type),item:r},()=>[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)((0,e.unref)(X)(r.type)),{class:`h-6 w-6 stroke-[1.9]`,"aria-hidden":`true`}))])])]))],14,ot))),128)),f.value&&i[`fullscreen-overlay`]?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Dt,[(0,e.createElementVNode)(`div`,Ot,[(0,e.renderSlot)(t.$slots,`fullscreen-overlay`,(0,e.normalizeProps)((0,e.guardReactiveProps)(f.value)))])])):(0,e.createCommentVNode)(``,!0),(0,e.unref)(o).activeItem.value?((0,e.openBlock)(),(0,e.createBlock)(ke,{key:1,"current-index":(0,e.unref)(o).resolvedActiveIndex.value,"pagination-detail":(0,e.unref)(o).paginationDetail.value,"show-back-to-list":r.showBackToList,"show-end-badge":r.showStatusBadges&&(0,e.unref)(o).isAtEnd.value&&!(0,e.unref)(o).hasNextPage.value&&!(0,e.unref)(o).loading.value,title:(0,e.unref)(o).activeItem.value.title??null,total:(0,e.unref)(o).items.value.length,onBackToList:n[0]||=e=>a(`back-to-list`)},(0,e.createSlots)({_:2},[C.value&&f.value?{name:`actions`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(t.$slots,`fullscreen-header-actions`,(0,e.normalizeProps)((0,e.guardReactiveProps)(f.value)))]),key:`0`}:void 0]),1032,[`current-index`,`pagination-detail`,`show-back-to-list`,`show-end-badge`,`title`,`total`])):(0,e.createCommentVNode)(``,!0),u.value?((0,e.openBlock)(),(0,e.createBlock)(ye,{key:2,"current-time":(0,e.unref)(o).activeMediaState.value.currentTime,"current-time-label":(0,e.unref)(o).formatPlaybackTime((0,e.unref)(o).activeMediaState.value.currentTime),duration:(0,e.unref)(o).activeMediaDuration.value,"duration-label":(0,e.unref)(o).formatPlaybackTime((0,e.unref)(o).activeMediaDuration.value),progress:(0,e.unref)(o).activeMediaProgress.value,onSeekInput:(0,e.unref)(o).onMediaSeekInput},null,8,[`current-time`,`current-time-label`,`duration`,`duration-label`,`progress`,`onSeekInput`])):(0,e.createCommentVNode)(``,!0),b.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:3,class:(0,e.normalizeClass)([`absolute left-1/2 z-[4] -translate-x-1/2`,l.value])},[D.value?(0,e.renderSlot)(t.$slots,`fullscreen-status`,(0,e.normalizeProps)((0,e.mergeProps)({key:0},b.value))):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:1,class:(0,e.normalizeClass)([`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`,b.value.kind===`end`?`border-amber-300/35 text-amber-200`:``])},(0,e.toDisplayString)(b.value.message),3))],2)):(0,e.createCommentVNode)(``,!0)])):(0,e.createCommentVNode)(``,!0)],544),(0,e.createVNode)(e.Transition,{"enter-active-class":`transform-gpu transition-all duration-320 ease-out`,"enter-from-class":`translate-x-full opacity-0`,"enter-to-class":`translate-x-0 opacity-100`,"leave-active-class":`transform-gpu transition-all duration-260 ease-in`,"leave-from-class":`translate-x-0 opacity-100`,"leave-to-class":`translate-x-full opacity-0`},{default:(0,e.withCtx)(()=>[T.value&&f.value?((0,e.openBlock)(),(0,e.createElementBlock)(`aside`,kt,[(0,e.createElementVNode)(`div`,At,[(0,e.renderSlot)(t.$slots,`fullscreen-aside`,(0,e.normalizeProps)((0,e.guardReactiveProps)(f.value)))])])):(0,e.createCommentVNode)(``,!0)]),_:3})],4),(0,e.createVNode)(e.Transition,{"enter-active-class":`transform-gpu transition-all duration-320 ease-out`,"enter-from-class":`translate-x-full opacity-0`,"enter-to-class":`translate-x-0 opacity-100`,"leave-active-class":`transform-gpu transition-all duration-260 ease-in`,"leave-from-class":`translate-x-0 opacity-100`,"leave-to-class":`translate-x-full opacity-0`},{default:(0,e.withCtx)(()=>[E.value&&f.value?((0,e.openBlock)(),(0,e.createElementBlock)(`aside`,jt,[(0,e.createElementVNode)(`div`,Mt,[(0,e.renderSlot)(t.$slots,`fullscreen-aside`,(0,e.normalizeProps)((0,e.guardReactiveProps)(f.value)))])])):(0,e.createCommentVNode)(``,!0)]),_:3})]))}}),It=1,Lt=.5;function Rt(e){if(e.type!==`image`&&e.type!==`video`)return{width:It,height:It,source:`fallback`};let t=e.preview?.width,n=e.preview?.height;if(Gt(t)&&Gt(n)){let r=Kt(e,t,n);return{width:r.width,height:r.height,source:`preview`}}if(Gt(e.width)&&Gt(e.height)){let t=Kt(e,e.width,e.height);return{width:t.width,height:t.height,source:`original`}}return{width:It,height:It,source:`fallback`}}function zt(e,t){return!e||e<=0||!t||t<=0?1:Math.max(1,Math.floor(e/t))}function Bt(e,t,n,r=0){if(!e||e<=0||!t||t<=0)return n;let i=typeof r==`number`&&r>0?r:0,a=e-Math.max(0,t-1)*i;return!a||a<=0?n:a/t}function Vt(e,t){let n=Rt(e);return n.height/n.width*t}function Ht(e,t){let n=Array.from({length:t.columnCount},()=>0),r=Array(e.length),i=Array(e.length),a=new Map,o=new Map,s=0;for(let c=0;c<e.length;c+=1){let l=e[c];o.set(A(l),c);let u=0;for(let e=1;e<n.length;e+=1)n[e]<n[u]&&(u=e);let d=u*(t.columnWidth+t.gapX),f=n[u],p=Vt(l,t.columnWidth);r[c]={x:d,y:f},i[c]=p,n[u]=f+p+t.gapY,s=Math.max(s,f+p);let m=Math.floor(f/t.bucketPx),h=Math.floor((f+p)/t.bucketPx);for(let e=m;e<=h;e+=1){let t=a.get(e);t?t.push(c):a.set(e,[c])}}return{positions:r,heights:i,buckets:a,contentHeight:s,indexById:o}}function Ut(e){if(e.itemCount<=0)return[];if(e.viewportHeight<=0)return Array.from({length:e.itemCount},(e,t)=>t);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=new Set;for(let t=r;t<=i;t+=1){let n=e.buckets.get(t);if(n)for(let e of n)a.add(e)}return Array.from(a).sort((e,t)=>e-t)}function Wt(e,t,n){let r=new Map;for(let i of e){let e=t.get(A(i));if(e==null)continue;let a=n[e];a&&r.set(A(i),a)}return r}function Gt(e){return typeof e==`number`&&Number.isFinite(e)&&e>0}function Kt(e,t,n){return e.type!==`image`||n/t>=Lt?{width:t,height:n}:{width:t,height:t}}var qt=300,Jt=600,Yt=40,Xt=400;function Zt(e,t){return t===`top`?[...e].reverse():e}function Qt(e){return e<=0?Jt:Jt+Math.min((e-1)*Yt,Xt)}function $t(e){let t=e.itemHeight>0?e.itemHeight:e.columnWidth;return e.direction===`top`?e.scrollTop-t:e.scrollTop+e.viewportHeight+t}function en(t){let n=(0,e.ref)(new Set),r=(0,e.ref)(new Set),i=(0,e.ref)(new Map),a=(0,e.ref)(new Map),o=(0,e.ref)(new Map),s=(0,e.ref)(new Map),c=(0,e.ref)(new Set),l=new Set,u=new Set;(0,e.watch)(t.visibleIndices,e=>{if(!e.length)return;let o=[];for(let r of e){let e=t.items.value[r]?A(t.items.value[r]):null;!e||!n.value.has(e)||l.has(e)||(l.add(e),o.push(e))}if(!o.length)return;let s=Zt(o,a.value.get(o[0])??`bottom`),c=new Map(i.value);for(let e=0;e<s.length;e+=1)c.set(s[e],Math.min(e*Yt,Xt));i.value=c,tn(()=>{let e=new Set(r.value);for(let t of o)e.add(t);r.value=e}),nn(()=>{let e=new Set(n.value);for(let t of o)e.delete(t);n.value=e,g(()=>{let e=new Set(r.value),t=new Map(i.value),n=new Map(a.value);for(let r of o)e.delete(r),t.delete(r),n.delete(r),l.delete(r);r.value=e,i.value=t,a.value=n},Qt(o.length))})},{flush:`post`}),(0,e.onBeforeUnmount)(()=>{for(let e of u)clearTimeout(e);u.clear()});function d(e,t=`bottom`){if(!e.length)return;let r=new Set(n.value),i=new Map(a.value);for(let n of e){let e=A(n);r.add(e),i.set(e,t)}n.value=r,a.value=i}function f(e,n,r=qt){if(!e.size)return;let i=new Map,a=[];for(let[r,o]of e.entries()){if(n?.has(r))continue;let e=t.indexById.value.get(r);if(e==null)continue;let s=t.positions.value[e];if(!s)continue;let c=o.x-s.x,l=o.y-s.y;!c&&!l||(i.set(r,{dx:c,dy:l}),a.push(r))}if(!i.size)return;o.value=i,c.value=new Set;let l=new Map(s.value);for(let e of a)l.set(e,r);s.value=l,tn(()=>{c.value=new Set(a),tn(()=>{o.value=new Map})}),g(()=>{c.value=new Set;let e=new Map(s.value);for(let t of a)e.delete(t);s.value=e},r)}function p(e){if(r.value.has(e))return`transform ${Jt}ms ease-out`;if(c.value.has(e))return`transform ${s.value.get(e)??qt}ms ease-out`}function m(e){if(!r.value.has(e))return;let t=i.value.get(e)??0;return t>0?`${t}ms`:void 0}function h(e){let r=t.items.value[e],i=t.positions.value[e]??{x:0,y:0},s=t.heights.value[e]??t.columnWidth.value,c=r?A(r):null,l=c?o.value.get(c)??{dx:0,dy:0}:{dx:0,dy:0},u=c?a.value.get(c)??`bottom`:`bottom`,d=c&&n.value.has(c)?$t({columnWidth:t.columnWidth.value,direction:u,itemHeight:s,scrollTop:t.scrollTop.value,viewportHeight:t.viewportHeight.value}):i.y;return`translate3d(${i.x+l.dx}px, ${d+l.dy}px, 0)`}function g(e,t){let n=setTimeout(()=>{u.delete(n),e()},t);u.add(n)}return{getCardTransform:h,getCardTransition:p,getCardTransitionDelay:m,markEnter:d,playFlipMoveAnimation:f}}function tn(e){if(typeof requestAnimationFrame==`function`){requestAnimationFrame(()=>e());return}setTimeout(e,0)}function nn(e){tn(()=>tn(e))}function rn(e,t){return e?.clientHeight||Math.round(e?.getBoundingClientRect().height??0)||window.innerHeight||t||1}function an(e,t,n){return e?.clientWidth||Math.round(e?.getBoundingClientRect().width??0)||window.innerWidth||t||n}function on(e,t,n,r){return(e?.scrollHeight??r)-(t+n)}function sn(e,t){return{height:`${e}px`,transform:`translate3d(0, ${t}px, 0)`}}var cn=250,ln=1e3;function un(t){let n=(0,e.ref)(!1),r=(0,e.ref)(!1),i=(0,e.ref)(0),a=(0,e.ref)(0),o=(0,e.ref)(!1),s=(0,e.ref)(!1),c=0,l=null;(0,e.onBeforeUnmount)(()=>{b()});function u(){let e=n.value;if(n.value=t.isAtBoundary(),!n.value){!o.value&&!s.value&&(r.value=!0);return}!e&&r.value&&h()}function d(e){if(!x(e)||!t.isAtBoundary())return;let n=Date.now();n<c||(c=n+cn,h())}function f(){if(!_())return;let e=t.requestPage.value;if(typeof e!=`function`)return;a.value=i.value,r.value=!1,o.value=!0,s.value=!0;let n;try{n=e()}catch{v();return}Promise.resolve(n).catch(()=>{}).finally(()=>{!t.loading.value&&s.value&&v()})}function p(e){!e&&s.value&&v()}function m(e){!s.value||e<=0||(s.value=!1,y(t.getAnimationLockMs(e)))}function h(){g()&&(i.value+=1)}function g(){return t.hasPage.value&&!t.loading.value&&!o.value&&typeof t.requestPage.value==`function`}function _(){return t.hasPage.value&&n.value&&i.value>a.value&&!t.loading.value&&!o.value&&typeof t.requestPage.value==`function`}function v(){s.value=!1,y(ln)}function y(e){b(),o.value=!0,l=setTimeout(()=>{l=null,o.value=!1},Math.max(0,e))}function b(){l&&=(clearTimeout(l),null)}function x(e){return t.direction===`top`?e.deltaY<0:e.deltaY>0}return{maybeRequestPage:f,onItemsMutated:m,onLoadingChange:p,onWheel:d,syncBoundary:u}}var dn=600,Q=24,$=16,fn=300,pn=200,mn=200,hn=200,gn=300,_n=24,vn=48,yn=500,bn=1e3;function xn(t){let n=(0,e.ref)(null),r=(0,e.ref)(0),i=(0,e.ref)(typeof window>`u`?0:window.innerHeight||0),a=(0,e.ref)(typeof window>`u`?0:window.innerWidth||fn),o=(0,e.ref)([]),s=(0,e.ref)([]),c=(0,e.ref)(new Map),l=(0,e.ref)(0),u=(0,e.ref)(new Map),d=(0,e.ref)(null),f=(0,e.computed)(()=>Math.max(fn,a.value-Q*2)),p=(0,e.computed)(()=>zt(f.value,fn)),m=(0,e.computed)(()=>Bt(f.value,p.value,fn,$)),h=(0,e.computed)(()=>Sn(t.activeIndex.value,0,Math.max(0,t.items.value.length-1))),g=(0,e.computed)(()=>Ut({itemCount:t.items.value.length,viewportHeight:i.value,scrollTop:r.value,overscanPx:pn,bucketPx:dn,buckets:c.value})),_=(0,e.computed)(()=>g.value.map(e=>({item:t.items.value[e],index:e}))),v=(0,e.computed)(()=>{let e=l.value+Q*2,t=d.value??0;return Math.max(e,t,i.value)+hn}),y=(0,e.computed)(()=>t.loading.value?t.items.value.length>0?`Loading more items`:`Loading the first page`:!t.hasNextPage.value&&t.items.value.length>0?`End of list`:null),b=(0,e.computed)(()=>`${h.value+1} / ${t.items.value.length}`),x=(0,e.computed)(()=>Math.max(0,i.value-_n*2)),S=(0,e.computed)(()=>v.value>i.value+1&&x.value>0),C=(0,e.computed)(()=>{if(!S.value)return 0;let e=i.value/v.value*x.value;return Math.min(x.value,Math.max(vn,e))}),w=(0,e.computed)(()=>{if(!S.value)return _n;let e=Math.max(0,v.value-i.value);return _n+Math.max(0,x.value-C.value)*(e>0?Sn(r.value/e,0,1):0)}),T=en({items:t.items,visibleIndices:g,positions:o,heights:s,indexById:u,columnWidth:m,scrollTop:r,viewportHeight:i}),E=un({direction:`top`,getAnimationLockMs(e){return Math.max(yn,Qt(e))+bn},hasPage:t.hasPreviousPage,isAtBoundary(){return r.value<=Q+$},loading:t.loading,requestPage:t.requestPreviousPage}),D=un({direction:`bottom`,getAnimationLockMs(e){return Qt(e)+bn},hasPage:t.hasNextPage,isAtBoundary(){return G()<=mn},loading:t.loading,requestPage:t.requestNextPage}),O=null,k=0,j=null,M=!1;(0,e.watch)([()=>t.items.value.map(e=>A(e)),p,m],async([n],[i=[]])=>{let a=Wt(t.items.value,u.value,o.value),s=new Set(i),c=t.items.value.filter(e=>!s.has(A(e))),l=n.length>i.length&&i.length>0&&n[0]!==i[0],d=l&&r.value>Q+$?t.items.value[h.value]:null,f=d?A(d):null;N(),c.length>0&&(T.markEnter(c,l?`top`:`bottom`),l?E.onItemsMutated(c.length):D.onItemsMutated(c.length)),T.playFlipMoveAnimation(a,new Set(c.map(e=>A(e))),l?yn:void 0),f?(await(0,e.nextTick)(),R(f,a)):t.active.value&&i.length>0&&B()},{immediate:!0}),(0,e.watch)([()=>t.pendingAppendItems.value.map(e=>A(e)),p,m,i],([e])=>{ee(),e.length&&(d.value=q([...t.items.value,...t.pendingAppendItems.value]),J())},{immediate:!0}),(0,e.watch)(()=>t.restoreToken.value,async()=>{await(0,e.nextTick)(),L(h.value,`center`)}),(0,e.watch)(()=>t.loading.value,async n=>{!n&&!t.pendingAppendItems.value.length&&!j&&!M&&(d.value=null),E.onLoadingChange(n),D.onLoadingChange(n),await(0,e.nextTick)()}),(0,e.onMounted)(async()=>{H(),await(0,e.nextTick)(),h.value>0?L(h.value,`center`):z(),E.syncBoundary(),D.syncBoundary(),typeof ResizeObserver<`u`?(O=new ResizeObserver(()=>{H()}),n.value&&O.observe(n.value)):window.addEventListener(`resize`,H)}),(0,e.onBeforeUnmount)(()=>{O?.disconnect(),O=null,window.removeEventListener(`resize`,H),ee(),k&&=(cancelAnimationFrame(k),0)});function N(){let e=Ht(t.items.value,{columnCount:p.value,columnWidth:m.value,gapX:$,gapY:$,bucketPx:dn});o.value=e.positions.map(e=>({x:e.x+Q,y:e.y+Q})),s.value=e.heights,c.value=e.buckets,l.value=e.contentHeight,u.value=e.indexById}function P(){t.active.value&&(r.value=n.value?.scrollTop??0,i.value=U(),E.syncBoundary(),D.syncBoundary(),V(),!B()&&(k||=requestAnimationFrame(()=>{k=0,z()})))}function F(e){t.active.value&&(E.onWheel(e),D.onWheel(e),V())}function I(e){let n=t.items.value[e],r=n?A(n):``;return{height:`${s.value[e]??m.value}px`,width:`${m.value}px`,transition:r?T.getCardTransition(r):void 0,transitionDelay:r?T.getCardTransitionDelay(r):void 0,transform:T.getCardTransform(e)}}function L(e,t){let a=n.value,c=o.value[e],l=s.value[e];if(!a||!c||!l)return;let u=a.scrollTop,d=Math.max(0,v.value-i.value);t===`center`?u=c.y-(i.value-l)/2:c.y<a.scrollTop?u=c.y-Q:c.y+l>a.scrollTop+i.value&&(u=c.y+l-i.value+Q),a.scrollTop=Sn(u,0,d),r.value=a.scrollTop,z()}function R(e,t){let i=n.value,a=t.get(e),s=u.value.get(e),c=s==null?null:o.value[s];if(!i||!a||!c)return;let l=c.y-a.y;i.scrollTop+=l,r.value=i.scrollTop}function z(){if(!g.value.length||B())return;let e=r.value+i.value/2,n=h.value,a=1/0;for(let t of g.value){let r=o.value[t],i=s.value[t];if(!r||!i)continue;let c=r.y+i/2,l=Math.abs(c-e);l<a&&(a=l,n=t)}t.setActiveIndex(n)}function B(){let e=r.value<=Q+$,n=G()<=mn;return e?(t.setActiveIndex(0),!0):n?(t.setActiveIndex(Math.max(0,t.items.value.length-1)),!0):!1}function V(){E.maybeRequestPage(),D.maybeRequestPage()}function H(){i.value=U(),a.value=W()}function U(){return rn(n.value,i.value)}function W(){return an(n.value,a.value,fn)}function G(){return on(n.value,r.value,i.value,v.value)}function K(){return sn(C.value,w.value)}function q(e){return e.length?Ht(e,{columnCount:p.value,columnWidth:m.value,gapX:$,gapY:$,bucketPx:dn}).contentHeight+Q*2:0}function J(){let n=t.commitPendingAppend.value;typeof n==`function`&&(j=setTimeout(async()=>{j=null,M=!0;try{if(!t.pendingAppendItems.value.length)return;await n(),await(0,e.nextTick)(),await(0,e.nextTick)()}finally{d.value=null,M=!1}},gn))}function ee(){j&&=(clearTimeout(j),null)}return{columnWidth:m,containerHeight:v,footerStatusMessage:y,getCardStyle:I,getScrollbarThumbStyle:K,onScroll:P,onWheel:F,paginationLabel:b,renderedItems:_,resolvedActiveIndex:h,scrollToIndex:L,showScrollbar:S,scrollViewportRef:n}}function Sn(e,t,n){return Math.min(Math.max(e,t),n)}function Cn(e){if(e)try{e.removeAttribute(`src`),e.src=``}catch{}}function wn(e){if(e){try{e.currentTime=0}catch{}e.pause();try{e.removeAttribute(`src`),e.load()}catch{}}}function Tn(e,t){if(t)return e.bottom>t.top&&e.top<t.bottom;let n=window.innerHeight||document.documentElement.clientHeight||0;return e.bottom>0&&e.top<n}function En(e){if(!e)return null;try{return new URL(e,window.location.href).href}catch{return e}}var Dn=/\.(avif|gif|jpe?g|png|svg|webp)(\?|#|$)/i,On=/\.(m4v|mov|mp4|mpeg|ogg|ogv|webm)(\?|#|$)/i;function kn(e){let t=e.preview?.url??e.url,n=Rt(e),r=e.title?.trim()||Qe(e.type);return e.type!==`image`&&e.type!==`video`?{kind:`fallback`,url:null,width:n.width,height:n.height,label:r}:jn(e,t)?{kind:`video`,url:t,width:n.width,height:n.height,label:r}:An(e,t)?{kind:`image`,url:t,width:n.width,height:n.height,label:r}:{kind:`fallback`,url:null,width:n.width,height:n.height,label:r}}function An(e,t){return e.type!==`image`||typeof t!=`string`?!1:Dn.test(t)||Mn(t)}function jn(e,t){return e.type===`video`&&typeof t==`string`&&On.test(t)}function Mn(e){return/^https?:\/\//i.test(e)}function Nn(e){let t=0;return{cancel(){t&&typeof cancelAnimationFrame==`function`&&(cancelAnimationFrame(t),t=0)},schedule(){if(typeof requestAnimationFrame!=`function`){e();return}t||=requestAnimationFrame(()=>{t=0,e()})}}}var Pn=[`aria-label`],Fn={key:0,"data-testid":`vibe-list-card-spinner`,class:`pointer-events-none absolute inset-0 z-[4] grid place-items-center bg-black/18`},In={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]`},Ln=[`src`,`alt`],Rn=[`src`],zn=[`data-kind`],Bn={class:`grid justify-items-center gap-3 px-4 text-center`},Vn={class:`text-[0.68rem] font-bold uppercase tracking-[0.22em] text-[#f7f1ea]/72`},Hn={key:4,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))]`},Un={class:`inline-flex h-14 w-14 items-center justify-center border border-white/16 bg-black/20`},Wn={class:`pointer-events-none absolute inset-0 z-[3]`},Gn=(0,e.defineComponent)({__name:`ListCard`,props:{active:{type:Boolean,default:!1},assetLoadQueue:{default:null},index:{default:0},item:{},reportAssetError:{type:[Function,null],default:null},reportAssetLoad:{type:[Function,null],default:null},surfaceActive:{type:Boolean,default:!0}},emits:[`open`],setup(t,{emit:n}){let r=t,i=n,a=(0,e.computed)(()=>kn(r.item)),o=(0,e.ref)(!1),s=(0,e.ref)(!1),c=(0,e.ref)(!1),l=(0,e.ref)(a.value.kind===`fallback`),u=(0,e.ref)(null),d=(0,e.ref)(null),f=(0,e.ref)(null),p=(0,e.ref)(null),m=(0,e.ref)(null),g=(0,e.ref)(a.value.kind===`fallback`),_=(0,e.computed)(()=>g.value?r.surfaceActive?o.value?a.value.url:null:a.value.url:null),y=(0,e.computed)(()=>r.surfaceActive&&o.value&&(a.value.kind===`image`||a.value.kind===`video`)&&!!a.value.url),b=(0,e.computed)(()=>a.value.kind===`image`&&!!_.value),x=(0,e.computed)(()=>a.value.kind===`video`&&!!_.value),S=(0,e.computed)(()=>!!u.value),C=(0,e.computed)(()=>ze(u.value)),T=(0,e.computed)(()=>y.value&&!u.value&&(!g.value||!l.value)),E=null,D=null,O=new Set,k=w(),j=Nn(()=>{r.surfaceActive&&(B(),I(),L())});(0,e.watch)([_,()=>a.value.kind],()=>{let e=a.value.kind===`fallback`;l.value=e,u.value=null,e&&(g.value=!0)}),(0,e.watch)(y,()=>{I()}),(0,e.watch)([o,l,_],()=>{L()}),(0,e.watch)(()=>r.surfaceActive,e=>{if(!e){z(),L();return}j.schedule()}),(0,e.onMounted)(()=>{if(!f.value||typeof IntersectionObserver>`u`){p.value=null,o.value=!0,I();return}p.value=f.value.closest(`[data-testid="vibe-list-scroll"]`),p.value?.addEventListener(`scroll`,j.schedule,{passive:!0}),E=new IntersectionObserver(e=>{for(let t of e)t.target===f.value&&(r.surfaceActive&&B(t),I(),L())},{root:p.value,threshold:[0,1]}),E.observe(f.value)}),(0,e.onBeforeUnmount)(()=>{R(),p.value?.removeEventListener(`scroll`,j.schedule),E?.disconnect(),E=null,j.cancel()});function M(){K(d.value)&&(l.value=!0,u.value=null,V(_.value??r.item.url),z())}async function N(){if(!K(d.value))return;let e=_.value??r.item.url;l.value=!1,u.value=`generic`;let t=await Be(e);u.value=t,r.reportAssetError?.({item:r.item,occurrenceKey:A(r.item),url:e,kind:t,surface:`grid`}),z()}function P(){K(m.value)&&(l.value=!0,u.value=null,V(_.value??r.item.url),z(),L())}function F(){K(m.value)&&(l.value=!1)}function I(){if(a.value.kind===`fallback`){R(!1);return}if(!r.surfaceActive){z();return}if(!y.value){R();return}if(g.value||D){D?.refresh();return}D=(r.assetLoadQueue??k).request({assetType:a.value.kind,getPriority:G,onGrant(){g.value=!0,l.value=!1,u.value=null},url:a.value.url??r.item.url})}function L(){let e=m.value;if(!(!e||a.value.kind!==`video`)){if(u.value){e.pause();return}if(_.value&&o.value&&l.value){e.muted=!0,e.loop=!0,e.playsInline=!0,Ue(e);return}try{e.currentTime=0}catch{}e.pause()}}function R(e=!0){g.value=a.value.kind===`fallback`,u.value=null,l.value=a.value.kind===`fallback`,e&&(U(),W()),z()}function z(){D?.release(),D=null}function B(e){let t=f.value;if(!t){o.value=!0;return}o.value=Tn(e?.boundingClientRect??t.getBoundingClientRect(),e?.rootBounds??p.value?.getBoundingClientRect()??null)}function V(e){if(!e)return;let t=A(r.item),n=`${t}|${e}`;O.has(n)||(O.add(n),r.reportAssetLoad?.({item:r.item,occurrenceKey:t,surface:`grid`,url:e}))}function H(){if(!C.value)return;let e=A(r.item);O.forEach(t=>{t.startsWith(`${e}|`)&&O.delete(t)}),u.value=null,l.value=!1,g.value=!1,z(),I()}function U(){Cn(d.value)}function W(){wn(m.value)}function G(){let e=f.value;if(!e)return 1/0;let t=e.getBoundingClientRect();if(p.value){let e=p.value.getBoundingClientRect(),n=e.top+e.height/2;return Math.abs((t.top+t.bottom)/2-n)}let n=window.innerHeight/2;return Math.abs((t.top+t.bottom)/2-n)}function K(e){let t=En(_.value);return!e||!t?!1:En(`currentSrc`in e&&e.currentSrc||e.getAttribute(`src`))===t}function q(){i(`open`)}function J(){s.value=!0}function ee(e){let t=e.relatedTarget;f.value&&t instanceof Node&&f.value.contains(t)||(s.value=!1)}return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{ref_key:`rootRef`,ref:f,"data-testid":`vibe-list-card-inner`,class:(0,e.normalizeClass)([`group relative h-full w-full overflow-hidden border bg-[#0a0b0f] text-[#f7f1ea] transition-[border-color,transform] duration-300`,r.active?`border-white/28`:`border-white/12 hover:border-white/24`]),onFocusin:J,onFocusout:ee,onPointerenter:n[0]||=e=>c.value=!0,onPointerleave:n[1]||=e=>c.value=!1},[(0,e.createElementVNode)(`button`,{type:`button`,"data-testid":`vibe-list-card-open`,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]`,"aria-label":r.item.title||`Open item ${r.index+1}`,onClick:q},null,8,Pn),T.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Fn,[(0,e.createElementVNode)(`span`,In,[(0,e.createVNode)((0,e.unref)(h),{class:`h-5 w-5 animate-spin stroke-[1.9] text-[#f7f1ea]/78`,"aria-hidden":`true`})])])):(0,e.createCommentVNode)(``,!0),b.value&&_.value&&!S.value?((0,e.openBlock)(),(0,e.createElementBlock)(`img`,{key:1,ref_key:`imageRef`,ref:d,src:_.value,alt:a.value.label,draggable:`false`,class:(0,e.normalizeClass)([`block h-full w-full object-cover transition-opacity duration-300`,l.value?`pointer-events-none opacity-100`:`pointer-events-none opacity-0`]),onLoad:M,onError:N},null,42,Ln)):x.value&&_.value&&!S.value?((0,e.openBlock)(),(0,e.createElementBlock)(`video`,{key:2,ref_key:`videoRef`,ref:m,src:_.value,muted:``,loop:``,playsinline:``,preload:`metadata`,class:(0,e.normalizeClass)([`block h-full w-full object-cover transition-opacity duration-300`,l.value?`pointer-events-none opacity-100`:`pointer-events-none opacity-0`]),onCanplay:P,onError:N,onLoadstart:F,onPlaying:P,onStalled:F,onWaiting:F},null,42,Rn)):S.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:3,"data-testid":`vibe-list-card-error`,"data-kind":u.value,class:`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))]`},[(0,e.createElementVNode)(`div`,Bn,[(0,e.createVNode)((0,e.unref)(v),{class:`h-6 w-6 stroke-[1.8] text-[#f7f1ea]/78`,"aria-hidden":`true`}),(0,e.createElementVNode)(`span`,Vn,(0,e.toDisplayString)((0,e.unref)(Re)(u.value)),1),C.value?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:0,type:`button`,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`,onClick:(0,e.withModifiers)(H,[`stop`])},` Retry `)):(0,e.createCommentVNode)(``,!0)])],8,zn)):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Hn,[(0,e.createElementVNode)(`div`,Un,[(0,e.renderSlot)(t.$slots,`item-icon`,{icon:(0,e.unref)(X)(r.item.type),item:r.item},()=>[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)((0,e.unref)(X)(r.item.type)),{class:`h-6 w-6 stroke-[1.8] text-[#f7f1ea]/78`,"aria-hidden":`true`}))])])])),(0,e.createElementVNode)(`div`,Wn,[(0,e.renderSlot)(t.$slots,`grid-item-overlay`,{active:r.active,focused:s.value,hovered:c.value,index:r.index,item:r.item,openFullscreen:q})])],34))}}),Kn={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)]`},qn={class:`pointer-events-none absolute inset-x-0 top-0 z-[2] flex justify-end p-6`},Jn={"data-testid":`vibe-pagination`,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]`},Yn={class:`whitespace-nowrap`},Xn={key:0,class:`whitespace-nowrap border-l border-white/12 pl-2 text-[#f7f1ea]/56 min-[721px]:pl-3`},Zn=[`data-active`,`data-index`,`data-item-id`,`data-occurrence-key`],Qn={key:0,class:`pointer-events-none absolute inset-y-0 right-0 z-[3] hidden w-8 min-[1024px]:block`},$n={key:1,class:`pointer-events-none absolute inset-x-0 bottom-0 z-[2] px-5 pb-5 sm:px-6`},er={class:`mx-auto flex w-full max-w-[1600px] justify-center`},tr={key:1,class:`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]`},nr=(0,e.defineComponent)({__name:`ListSurface`,props:{active:{type:Boolean,default:!0},activeIndex:{default:0},assetLoadQueue:{default:null},commitPendingAppend:{type:[Function,null],default:null},hasNextPage:{type:Boolean,default:!1},hasPreviousPage:{type:Boolean,default:!1},items:{},loading:{type:Boolean,default:!1},pendingAppendItems:{default:()=>[]},paginationDetail:{default:null},reportAssetError:{type:[Function,null],default:null},reportAssetLoad:{type:[Function,null],default:null},requestNextPage:{type:[Function,null],default:null},requestPreviousPage:{type:[Function,null],default:null},restoreToken:{},showStatusBadges:{type:Boolean,default:!0}},emits:[`open-fullscreen`,`update:activeIndex`],setup(t,{emit:n}){let r=t,i=(0,e.useSlots)(),a=n,o=xn({active:(0,e.toRef)(r,`active`),items:(0,e.toRef)(r,`items`),activeIndex:(0,e.toRef)(r,`activeIndex`),loading:(0,e.toRef)(r,`loading`),hasNextPage:(0,e.toRef)(r,`hasNextPage`),hasPreviousPage:(0,e.toRef)(r,`hasPreviousPage`),paginationDetail:(0,e.toRef)(r,`paginationDetail`),pendingAppendItems:(0,e.toRef)(r,`pendingAppendItems`),commitPendingAppend:(0,e.toRef)(r,`commitPendingAppend`),requestNextPage:(0,e.toRef)(r,`requestNextPage`),requestPreviousPage:(0,e.toRef)(r,`requestPreviousPage`),restoreToken:(0,e.toRef)(r,`restoreToken`),setActiveIndex(e){a(`update:activeIndex`,e)}}),s=(0,e.computed)(()=>r.loading?r.items.length>0?`Loading more items`:`Loading the first page`:!r.hasNextPage&&r.items.length>0?`End of list`:null),c=(0,e.computed)(()=>!r.showStatusBadges||!s.value?null:{activeIndex:o.resolvedActiveIndex.value,kind:r.loading?`loading-more`:`end`,loading:r.loading,message:s.value,paginationDetail:r.paginationDetail,total:r.items.length}),l=(0,e.computed)(()=>!c.value||!i[`grid-status`]?[]:i[`grid-status`](c.value)),u=(0,e.computed)(()=>Z(l.value));return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Kn,[(0,e.createElementVNode)(`div`,qn,[(0,e.createElementVNode)(`span`,Jn,[(0,e.createElementVNode)(`span`,Yn,(0,e.toDisplayString)((0,e.unref)(o).paginationLabel.value),1),r.paginationDetail?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,Xn,(0,e.toDisplayString)(r.paginationDetail),1)):(0,e.createCommentVNode)(``,!0)])]),(0,e.createElementVNode)(`div`,{ref:(0,e.unref)(o).scrollViewportRef,"data-testid":`vibe-list-scroll`,class:`h-full min-h-0 overflow-y-auto overflow-x-hidden [overflow-anchor:none] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden`,onScroll:n[0]||=(...t)=>(0,e.unref)(o).onScroll&&(0,e.unref)(o).onScroll(...t),onWheel:n[1]||=(...t)=>(0,e.unref)(o).onWheel&&(0,e.unref)(o).onWheel(...t)},[(0,e.createElementVNode)(`div`,{"data-testid":`vibe-list-content`,class:`relative`,style:(0,e.normalizeStyle)({height:`${(0,e.unref)(o).containerHeight.value}px`})},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)((0,e.unref)(o).renderedItems.value,({item:n,index:s})=>((0,e.openBlock)(),(0,e.createElementBlock)(`article`,{key:(0,e.unref)(A)(n),"data-testid":`vibe-list-card`,"data-active":s===(0,e.unref)(o).resolvedActiveIndex.value?`true`:`false`,"data-index":s,"data-item-id":n.id,"data-occurrence-key":(0,e.unref)(A)(n),class:`absolute will-change-transform`,style:(0,e.normalizeStyle)((0,e.unref)(o).getCardStyle(s))},[(0,e.createVNode)(Gn,{active:s===(0,e.unref)(o).resolvedActiveIndex.value,"asset-load-queue":r.assetLoadQueue,index:s,item:n,"report-asset-error":r.reportAssetError,"report-asset-load":r.reportAssetLoad,"surface-active":r.active,onOpen:e=>a(`open-fullscreen`,s)},(0,e.createSlots)({_:2},[i[`grid-item-overlay`]?{name:`grid-item-overlay`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`grid-item-overlay`,(0,e.mergeProps)({ref_for:!0},n))]),key:`0`}:void 0,i[`item-icon`]?{name:`item-icon`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`item-icon`,(0,e.mergeProps)({ref_for:!0},n))]),key:`1`}:void 0]),1032,[`active`,`asset-load-queue`,`index`,`item`,`report-asset-error`,`report-asset-load`,`surface-active`,`onOpen`])],12,Zn))),128))],4)],544),(0,e.unref)(o).showScrollbar.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Qn,[n[2]||=(0,e.createElementVNode)(`div`,{class:`absolute bottom-6 right-3 top-6 w-px bg-white/8`},null,-1),(0,e.createElementVNode)(`div`,{"data-testid":`vibe-list-scrollbar-thumb`,class:(0,e.normalizeClass)([`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`]),style:(0,e.normalizeStyle)((0,e.unref)(o).getScrollbarThumbStyle())},null,6)])):(0,e.createCommentVNode)(``,!0),i[`grid-footer`]?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,$n,[(0,e.createElementVNode)(`div`,er,[(0,e.renderSlot)(t.$slots,`grid-footer`)])])):(0,e.createCommentVNode)(``,!0),c.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:2,class:(0,e.normalizeClass)([`pointer-events-none absolute inset-x-0 bottom-0 z-[3] flex justify-center px-6`,i[`grid-footer`]?`pb-24`:`pb-6`])},[u.value?(0,e.renderSlot)(t.$slots,`grid-status`,(0,e.normalizeProps)((0,e.mergeProps)({key:0},c.value))):((0,e.openBlock)(),(0,e.createElementBlock)(`span`,tr,(0,e.toDisplayString)(c.value.message),1))],2)):(0,e.createCommentVNode)(``,!0)]))}}),rr=[`data-surface-mode`],ir={key:1,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`},ar={key:2,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`},or=[`data-visible`,`inert`],sr=[`data-visible`,`inert`],cr=(0,e.defineComponent)({name:`VibeLayout`,__name:`Layout`,props:{items:{},activeIndex:{},fillDelayMs:{},fillDelayStepMs:{},initialState:{},loading:{type:Boolean},hasNextPage:{type:Boolean},mode:{},resolve:{},initialCursor:{},pageSize:{},assetLoadLimits:{},hasPreviousPage:{type:Boolean},paginationDetail:{},requestNextPage:{},requestPreviousPage:{},showStatusBadges:{type:Boolean,default:!0},surfaceMode:{}},emits:[`asset-errors`,`asset-loads`,`update:activeIndex`,`update:surfaceMode`],setup(t,{expose:n,emit:r}){let i=t,a=(0,e.useSlots)(),o=r,s=w(i.assetLoadLimits),c=fe(i,o),l=y(e=>{o(`asset-errors`,e)}),u=b(e=>{o(`asset-loads`,e)});return(0,e.onBeforeUnmount)(()=>{l.stop(),u.stop()}),(0,e.watch)(()=>i.assetLoadLimits,e=>{s.setLimits(e)},{deep:!0}),n({cancel:c.cancel,clearRemoved:c.clearRemoved,getRemovedIds:c.getRemovedIds,loadNext:c.loadNext,loadPrevious:c.loadPrevious,remove:c.remove,restore:c.restore,retry:c.retry,status:c.status,undo:c.undo}),(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`section`,{"data-testid":`vibe`,"data-surface-mode":(0,e.unref)(c).surfaceMode.value,class:`relative h-full min-h-0 overflow-hidden bg-[#05060a] text-[#f7f1ea]`},[(0,e.unref)(c).canRetryInitialLoad.value?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:0,type:`button`,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`,onClick:n[0]||=(...t)=>(0,e.unref)(c).retryInitialLoad&&(0,e.unref)(c).retryInitialLoad(...t)},` Retry `)):(0,e.unref)(c).errorMessage.value&&(0,e.unref)(c).items.value.length>0?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,ir,(0,e.toDisplayString)((0,e.unref)(c).errorMessage.value),1)):(0,e.createCommentVNode)(``,!0),(0,e.unref)(c).items.value.length===0?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,ar,[(0,e.unref)(c).loading.value?((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:0},[(0,e.createVNode)((0,e.unref)(h),{class:`size-10 animate-spin text-[#f7f1ea]/82`,"aria-hidden":`true`}),n[1]||=(0,e.createElementVNode)(`p`,{class:`m-0 text-[0.9rem] font-semibold uppercase tracking-[0.22em] text-[#f7f1ea]/72`},` Loading... `,-1)],64)):((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:1},[n[2]||=(0,e.createElementVNode)(`p`,{class:`m-0 text-[0.78rem] font-bold uppercase tracking-[0.28em] text-[#f7f1ea]/68`},` Viewer ready `,-1),n[3]||=(0,e.createElementVNode)(`h2`,{class:`m-0 text-[clamp(2rem,4.4vw,3.6rem)] leading-[0.95] tracking-[-0.05em]`},` No items available `,-1),n[4]||=(0,e.createElementVNode)(`p`,{class:`m-0 text-[clamp(0.98rem,1.3vw,1.12rem)] leading-[1.8] text-[#f7f1ea]/70`},` Attach items to VibeLayout to turn this screen into the viewer. `,-1)],64))])):(0,e.unref)(c).isDesktop.value?((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:3},[(0,e.createVNode)(e.Transition,{appear:``,"enter-active-class":`transition-[opacity,transform] duration-300 ease-out`,"enter-from-class":`translate-y-3 opacity-0`,"enter-to-class":`translate-y-0 opacity-100`,"leave-active-class":`transition-[opacity,transform] duration-300 ease-out`,"leave-from-class":`translate-y-0 opacity-100`,"leave-to-class":`translate-y-3 opacity-0`},{default:(0,e.withCtx)(()=>[(0,e.withDirectives)((0,e.createElementVNode)(`div`,{"data-testid":`vibe-list-surface`,"data-visible":(0,e.unref)(c).surfaceMode.value===`list`?`true`:`false`,inert:(0,e.unref)(c).surfaceMode.value!==`list`,class:`absolute inset-0 z-[2]`},[(0,e.createVNode)(nr,{active:(0,e.unref)(c).surfaceMode.value===`list`,items:(0,e.unref)(c).items.value,"active-index":(0,e.unref)(c).activeIndex.value,"asset-load-queue":(0,e.unref)(s),loading:(0,e.unref)(c).loading.value,"has-next-page":(0,e.unref)(c).hasNextPage.value,"has-previous-page":(0,e.unref)(c).hasPreviousPage.value,"pending-append-items":(0,e.unref)(c).pendingAppendItems.value,"commit-pending-append":(0,e.unref)(c).commitPendingAppend,"pagination-detail":(0,e.unref)(c).paginationDetail.value,"report-asset-error":(0,e.unref)(l).report,"report-asset-load":(0,e.unref)(u).report,"request-next-page":(0,e.unref)(c).prefetchNextPage,"request-previous-page":(0,e.unref)(c).prefetchPreviousPage,"restore-token":(0,e.unref)(c).listRestoreToken.value,"show-status-badges":i.showStatusBadges!==!1,onOpenFullscreen:(0,e.unref)(c).openFullscreen,"onUpdate:activeIndex":(0,e.unref)(c).setActiveIndex},(0,e.createSlots)({_:2},[a[`grid-footer`]?{name:`grid-footer`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(t.$slots,`grid-footer`)]),key:`0`}:void 0,a[`grid-item-overlay`]?{name:`grid-item-overlay`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`grid-item-overlay`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`1`}:void 0,i.showStatusBadges!==!1&&a[`grid-status`]?{name:`grid-status`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`grid-status`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`2`}:void 0,a[`item-icon`]?{name:`item-icon`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`item-icon`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`3`}:void 0]),1032,[`active`,`items`,`active-index`,`asset-load-queue`,`loading`,`has-next-page`,`has-previous-page`,`pending-append-items`,`commit-pending-append`,`pagination-detail`,`report-asset-error`,`report-asset-load`,`request-next-page`,`request-previous-page`,`restore-token`,`show-status-badges`,`onOpenFullscreen`,`onUpdate:activeIndex`])],8,or),[[e.vShow,(0,e.unref)(c).surfaceMode.value===`list`]])]),_:3}),(0,e.createVNode)(e.Transition,{appear:``,"enter-active-class":`transition-[opacity,transform] duration-300 ease-out`,"enter-from-class":`-translate-y-3 opacity-0`,"enter-to-class":`translate-y-0 opacity-100`,"leave-active-class":`transition-[opacity,transform] duration-300 ease-out`,"leave-from-class":`translate-y-0 opacity-100`,"leave-to-class":`-translate-y-3 opacity-0`},{default:(0,e.withCtx)(()=>[(0,e.withDirectives)((0,e.createElementVNode)(`div`,{"data-testid":`vibe-fullscreen-surface`,"data-visible":(0,e.unref)(c).surfaceMode.value===`fullscreen`?`true`:`false`,inert:(0,e.unref)(c).surfaceMode.value!==`fullscreen`,class:`absolute inset-0 z-[3]`},[(0,e.createVNode)(Ft,{items:(0,e.unref)(c).items.value,active:(0,e.unref)(c).surfaceMode.value===`fullscreen`,"active-index":(0,e.unref)(c).activeIndex.value,loading:(0,e.unref)(c).loading.value,"has-next-page":(0,e.unref)(c).hasNextPage.value,"pagination-detail":(0,e.unref)(c).paginationDetail.value,"report-asset-error":(0,e.unref)(l).report,"report-asset-load":(0,e.unref)(u).report,"show-back-to-list":(0,e.unref)(c).showBackToList.value,"show-status-badges":i.showStatusBadges!==!1,onBackToList:(0,e.unref)(c).returnToList,"onUpdate:activeIndex":(0,e.unref)(c).setActiveIndex},(0,e.createSlots)({_:2},[a[`fullscreen-overlay`]?{name:`fullscreen-overlay`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`fullscreen-overlay`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`0`}:void 0,a[`fullscreen-aside`]?{name:`fullscreen-aside`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`fullscreen-aside`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`1`}:void 0,a[`fullscreen-header-actions`]?{name:`fullscreen-header-actions`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`fullscreen-header-actions`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`2`}:void 0,i.showStatusBadges!==!1&&a[`fullscreen-status`]?{name:`fullscreen-status`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`fullscreen-status`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`3`}:void 0,a[`item-icon`]?{name:`item-icon`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`item-icon`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`4`}:void 0]),1032,[`items`,`active`,`active-index`,`loading`,`has-next-page`,`pagination-detail`,`report-asset-error`,`report-asset-load`,`show-back-to-list`,`show-status-badges`,`onBackToList`,`onUpdate:activeIndex`])],8,sr),[[e.vShow,(0,e.unref)(c).surfaceMode.value===`fullscreen`]])]),_:3})],64)):((0,e.openBlock)(),(0,e.createBlock)(Ft,{key:4,items:(0,e.unref)(c).items.value,active:!0,"active-index":(0,e.unref)(c).activeIndex.value,loading:(0,e.unref)(c).loading.value,"has-next-page":(0,e.unref)(c).hasNextPage.value,"pagination-detail":(0,e.unref)(c).paginationDetail.value,"report-asset-error":(0,e.unref)(l).report,"report-asset-load":(0,e.unref)(u).report,"show-back-to-list":!1,"show-status-badges":i.showStatusBadges!==!1,onBackToList:(0,e.unref)(c).returnToList,"onUpdate:activeIndex":(0,e.unref)(c).setActiveIndex},(0,e.createSlots)({_:2},[a[`fullscreen-overlay`]?{name:`fullscreen-overlay`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`fullscreen-overlay`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`0`}:void 0,a[`fullscreen-aside`]?{name:`fullscreen-aside`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`fullscreen-aside`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`1`}:void 0,a[`fullscreen-header-actions`]?{name:`fullscreen-header-actions`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`fullscreen-header-actions`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`2`}:void 0,i.showStatusBadges!==!1&&a[`fullscreen-status`]?{name:`fullscreen-status`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`fullscreen-status`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`3`}:void 0,a[`item-icon`]?{name:`item-icon`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`item-icon`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`4`}:void 0]),1032,[`items`,`active-index`,`loading`,`has-next-page`,`pagination-detail`,`report-asset-error`,`report-asset-load`,`show-status-badges`,`onBackToList`,`onUpdate:activeIndex`]))],8,rr))}}),lr={install(e){e.component(`VibeLayout`,cr)}};exports.VibeLayout=cr,exports.VibePlugin=lr,exports.default=lr;
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});let e=require(`vue`);var t=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},n=e=>e===``,r=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),i=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),a=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),o=e=>{let t=a(e);return t.charAt(0).toUpperCase()+t.slice(1)},s={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`},c=({name:a,iconNode:c,absoluteStrokeWidth:l,"absolute-stroke-width":u,strokeWidth:d,"stroke-width":f,size:p=s.width,color:m=s.stroke,...h},{slots:g})=>(0,e.h)(`svg`,{...s,...h,width:p,height:p,stroke:m,"stroke-width":n(l)||n(u)||l===!0||u===!0?Number(d||f||s[`stroke-width`])*24/Number(p):d||f||s[`stroke-width`],class:r(`lucide`,h.class,...a?[`lucide-${i(o(a))}-icon`,`lucide-${i(a)}`]:[`lucide-icon`]),...!g.default&&!t(h)&&{"aria-hidden":`true`}},[...c.map(t=>(0,e.h)(...t)),...g.default?[g.default()]:[]]),l=(t,n)=>(r,{slots:i,attrs:a})=>(0,e.h)(c,{...a,...r,iconNode:n,name:t},i),u=l(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]),d=l(`audio-lines`,[[`path`,{d:`M2 10v3`,key:`1fnikh`}],[`path`,{d:`M6 6v11`,key:`11sgs0`}],[`path`,{d:`M10 3v18`,key:`yhl04a`}],[`path`,{d:`M14 8v7`,key:`3a1oy3`}],[`path`,{d:`M18 5v13`,key:`123xd1`}],[`path`,{d:`M22 10v3`,key:`154ddg`}]]),f=l(`clapperboard`,[[`path`,{d:`m12.296 3.464 3.02 3.956`,key:`qash78`}],[`path`,{d:`M20.2 6 3 11l-.9-2.4c-.3-1.1.3-2.2 1.3-2.5l13.5-4c1.1-.3 2.2.3 2.5 1.3z`,key:`1h7j8b`}],[`path`,{d:`M3 11h18v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`,key:`4lm6w1`}],[`path`,{d:`m6.18 5.276 3.1 3.899`,key:`zjj9t3`}]]),p=l(`file`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}]]),m=l(`image-plus`,[[`path`,{d:`M16 5h6`,key:`1vod17`}],[`path`,{d:`M19 2v6`,key:`4bpg5p`}],[`path`,{d:`M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5`,key:`1ue2ih`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`,key:`1xmnt7`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}]]),h=l(`loader-circle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]),g=l(`pause`,[[`rect`,{x:`14`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`kaeet6`}],[`rect`,{x:`5`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`1wsw3u`}]]),_=l(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]),v=l(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]);function y(e,t=150){return x(e,e=>`${e.surface}|${e.occurrenceKey}|${e.url}|${e.kind}`,t)}function b(e,t=150){return x(e,e=>`${e.surface}|${e.occurrenceKey}|${e.url}`,t)}function x(e,t,n){let r=[],i=new Set,a=null;function o(e){let o=t(e);i.has(o)||(i.add(o),r.push(e),!a&&(a=setTimeout(()=>{s()},n)))}function s(){if(a&&=(clearTimeout(a),null),!r.length)return;let t=r.slice();r.length=0,i.clear(),e(t)}function c(){a&&=(clearTimeout(a),null),r.length=0,i.clear()}return{flush:s,report:o,stop:c}}var S={maxGlobal:10,maxPerDomain:4,maxVideoPerDomain:2};function C(e){return{maxGlobal:e?.maxGlobal??S.maxGlobal,maxPerDomain:e?.maxPerDomain??S.maxPerDomain,maxVideoPerDomain:e?.maxVideoPerDomain??S.maxVideoPerDomain}}function w(e){let t=new Map,n=new Map,r=C(e),i=0;function a(e){let r={...e,domain:E(e.url),enqueuedAt:i,id:`vibe-asset-load-${i+=1}`};return n.set(r.id,r),o(),{cancel(){(n.delete(r.id)||t.delete(r.id))&&o()},refresh(){o()},release(){(t.delete(r.id)||n.delete(r.id))&&o()}}}function o(){if(n.size===0)return;let e=[...n.values()].sort((e,t)=>{let n=T(e)-T(t);return n===0?e.enqueuedAt-t.enqueuedAt:n});for(let i of e){if(t.size>=r.maxGlobal)return;if(l(i)){n.delete(i.id),t.set(i.id,i);try{i.onGrant()}catch{t.delete(i.id)}}}}function s(){return{...r}}function c(e){r=C(e),o()}function l(e){let n=[...t.values()].filter(t=>t.domain===e.domain);return!(n.length>=r.maxPerDomain||e.assetType===`video`&&n.filter(e=>e.assetType===`video`).length>=r.maxVideoPerDomain)}return{getLimits:s,request:a,setLimits:c}}function T(e){try{let t=e.getPriority();return Number.isFinite(t)?t:1/0}catch{return 1/0}}function E(e){try{return new URL(e).hostname||`local`}catch{return`local`}}function D(e){return e instanceof HTMLElement&&[`INPUT`,`TEXTAREA`,`SELECT`].includes(e.tagName)}function O(e){return e instanceof HTMLElement&&!!e.closest(`[data-swipe-lock], input, textarea, select, a`)}var k=`__vibeOccurrenceKey`;function A(e){let t=e[k];return typeof t==`string`&&t.length>0?t:e.id}function j(e,t,n){let r=new Map,i=[],a=n;for(let e of t){let t=r.get(e.id),n=A(e);t?t.push(n):r.set(e.id,[n])}for(let t of e){let e=r.get(t.id)?.shift()??`vibe-occurrence-${a+=1}`;i.push(M(t,e))}return{items:i,nextSequence:a}}function M(e,t){return A(e)===t?e:{...e,[k]:t}}function N(){let t=(0,e.ref)(new Set),n=(0,e.ref)([]);function r(e){let r=P(e).filter(e=>!t.value.has(e));if(!r.length)return{ids:[]};let i=new Set(t.value);for(let e of r)i.add(e);return t.value=i,n.value=[...n.value,r],{ids:r}}function i(e){let n=P(e).filter(e=>t.value.has(e));if(!n.length)return{ids:[]};let r=new Set(t.value);for(let e of n)r.delete(e);return t.value=r,{ids:n}}function a(){if(!n.value.length)return null;let e=[...n.value],r=e.pop()??[];n.value=e;let i=r.filter(e=>t.value.has(e));if(!i.length)return{ids:[]};let a=new Set(t.value);for(let e of i)a.delete(e);return t.value=a,{ids:i}}function o(){!t.value.size&&!n.value.length||(t.value=new Set,n.value=[])}function s(){return Array.from(t.value)}return{clearRemoved:o,getRemovedIds:s,remove:r,removedIds:t,restore:i,undo:a}}function P(e){let t=Array.isArray(e)?e:[e];return Array.from(new Set(t.filter(e=>typeof e==`string`&&e.length>0)))}function F(e){return e.flatMap(e=>e.items)}function I(e,t){return t.size?e.filter(e=>!t.has(e.id)):e}function L(e,t){return I(e.items,t)}function R(e,t){return L(e,t).length}function z(e,t,n){if(n<0)return null;let r=0;for(let i of e){let e=L(i,t),a=r+e.length;if(n<a)return i.cursor;r=a}return null}function B(e,t,n){let r=[...e],i=r.findIndex(e=>e.cursor===t);return i>=0&&r.splice(i,1,n),r}function V(e,t,n){let r=j(e,t,n);return{items:r.items,nextSequence:r.nextSequence}}function H(e){return e===`filling`||e===`loading`||e===`reloading`}function U(e){return!e||!Number.isFinite(e)||e<1?25:Math.floor(e)}function W(e){return e??`__vibe_initial_cursor__`}function G(e,t,n){return Math.min(Math.max(e,t),n)}function K(e){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`}function q(e){let t=V(e.nextItems,e.previousItems,e.sequence);return{bucket:{cursor:e.cursor,items:t.items,nextCursor:e.nextCursor,previousCursor:e.previousCursor},nextSequence:t.nextSequence}}function J(e,t,n,r){if(!e.length)return r?null:{buckets:[],canceled:r,visibleCount:0};let i=t===`backward`?[...e].reverse():e;return{buckets:i,canceled:r,visibleCount:i.reduce((e,t)=>e+R(t,n),0)}}function ee(e){let t=q({cursor:e.initialState.cursor,nextCursor:e.initialState.nextCursor??null,nextItems:e.initialState.items,previousCursor:e.initialState.previousCursor??null,previousItems:[],sequence:e.sequence}),n=I(t.bucket.items,e.removedIds);return{activeIndex:G(e.initialState.activeIndex??0,0,Math.max(0,n.length-1)),buckets:[t.bucket],nextSequence:t.nextSequence}}function te(e,t){let n=e[G(t,0,Math.max(0,e.length-1))];return n?A(n):null}function ne(e,t,n=null){if(!e.length)return 0;let r=n?e.findIndex(e=>A(e)===n):-1;return r>=0?r:G(t,0,e.length-1)}function re(e,t,n){return e?R(e,t)<n:!1}var ie=1e3,ae=100;function oe(e,t=ie,n=250){return t+Math.max(0,e-1)*n}function se(e,t){return!Number.isFinite(e)||e==null||e<0?t:Math.floor(e)}function ce(){let t=(0,e.ref)(null),n=null,r=null,i=null;function a(e=!1){if(n&&=(clearInterval(n),null),r&&=(clearTimeout(r),null),t.value=null,e&&i){let e=i;i=null,e()}}async function o(e){a(!0),!(e<=0)&&(t.value=e,await new Promise(o=>{let s=Date.now(),c=!1,l=()=>{c||(c=!0,i=null,a(),o())};i=l;let u=()=>{let n=Math.max(0,e-(Date.now()-s));t.value=n,n<=0&&l()};n=setInterval(u,ae),r=setTimeout(l,e),u()}))}return{clear:a,remainingMs:t,wait:o}}function le(t){let n=(0,e.ref)([]),r=(0,e.ref)(0),i=(0,e.ref)([]),a=(0,e.ref)(null),o=(0,e.ref)(`idle`),s=(0,e.ref)(null),c=ce(),l=c.remainingMs,u=(0,e.ref)(null),d=(0,e.ref)(!1),f=(0,e.ref)(!0),p=new Set,m=null,h=null,g=0,_=0,v=(0,e.computed)(()=>se(t.fillDelayMs,ie)),y=(0,e.computed)(()=>se(t.fillDelayStepMs,250)),b=(0,e.computed)(()=>t.mode??`dynamic`),x=(0,e.computed)(()=>U(t.pageSize)),S=(0,e.computed)(()=>F(n.value)),C=(0,e.computed)(()=>I(S.value,t.removedIds.value)),w=(0,e.computed)(()=>r.value),T=(0,e.computed)(()=>H(o.value)||d.value),E=(0,e.computed)(()=>n.value[0]??null),D=(0,e.computed)(()=>n.value[n.value.length-1]??null),O=(0,e.computed)(()=>D.value?.nextCursor??null),k=(0,e.computed)(()=>E.value?.previousCursor??null),A=(0,e.computed)(()=>!!O.value),j=(0,e.computed)(()=>!!k.value),M=(0,e.computed)(()=>I(F(i.value),t.removedIds.value)),N=(0,e.computed)(()=>z(n.value,t.removedIds.value,w.value)),P=(0,e.computed)(()=>!C.value.length&&!T.value&&!!a.value);(0,e.watch)(()=>C.value.length,e=>{if(e===0){r.value=0;return}r.value>e-1&&(r.value=e-1)}),(0,e.watch)(()=>r.value,()=>{f.value&&ve()}),(0,e.onMounted)(()=>{t.resolve&&(we()||L())}),(0,e.onBeforeUnmount)(()=>{m?.abort(),m=null,c.clear(!0)});async function L(){h=L;let e=await Se({continueUntilFilled:b.value===`dynamic`,cursor:t.initialCursor??null,direction:`forward`,phase:`loading`});e&&(n.value=e.buckets,r.value=0,Y())}async function V(){if(!(!A.value||T.value)){if(b.value===`static`&&Ee(`trailing`))return xe(`trailing`);await ye(O.value)}}async function ae(){if(!(!j.value||T.value)){if(b.value===`static`&&Ee(`leading`))return xe(`leading`);await be(k.value)}}async function le(){if(P.value){if(n.value=[],r.value=0,i.value=[],a.value=null,o.value=`idle`,s.value=null,u.value=null,d.value=!1,p.clear(),m?.abort(),m=null,c.clear(!0),we()){Y();return}await L()}}async function ue(){if(P.value)return le();o.value!==`failed`||!h||(a.value=null,await h())}async function de(){if(!i.value.length)return d.value=!1,Y();n.value=[...n.value,...i.value],i.value=[],d.value=!1,Y()}function fe(e){let n=C.value;if(!n.length)return;let i=G(e,0,n.length-1);i!==r.value&&(r.value=i,t.emit(`update:activeIndex`,i))}function pe(e){f.value=e}function me(){g+=1,m?.abort(),m=null,c.clear(!0),p.clear(),a.value=null,s.value=null,u.value=null,i.value.length>0&&(n.value=[...n.value,...i.value],i.value=[]),d.value=!1,Y()}function he(){return te(C.value,w.value)}function ge(e=null){r.value=ne(C.value,w.value,e)}function _e(){i.value.length>0&&!M.value.length&&de()}async function ve(){!C.value.length||Te()||(j.value&&r.value<3&&await ae(),A.value&&r.value>=C.value.length-3&&await V())}async function ye(e){h=async()=>{await ye(e)};let t=await Se({continueUntilFilled:b.value===`dynamic`,cursor:e,direction:`forward`,phase:`loading`});if(t){if(t.canceled)return n.value=[...n.value,...t.buckets],i.value=[],d.value=!1,Y();if(i.value=t.buckets,!M.value.length)return n.value=[...n.value,...i.value],i.value=[],d.value=!1,Y();d.value=!0}}async function be(e){h=async()=>{await be(e)};let t=await Se({continueUntilFilled:b.value===`dynamic`,cursor:e,direction:`backward`,phase:`loading`});if(!t)return;let r=he();n.value=[...t.buckets,...n.value],ge(r),Y()}async function xe(e){if(h=async()=>{await xe(e)},!t.resolve)return;let r=e===`leading`?E.value:D.value;if(!r)return;let i=W(r.cursor);if(p.has(i))return;p.add(i),a.value=null,o.value=`reloading`,s.value=null,u.value=null;let c=++g,l=typeof AbortController>`u`?null:new AbortController;m=l;try{let e=await t.resolve({cursor:r.cursor,pageSize:x.value,signal:l?.signal});if(c!==g)return Y();let i=Ce({cursor:r.cursor,nextCursor:e.nextPage,nextItems:e.items,previousCursor:e.previousPage??null,previousItems:r.items}),a=he();n.value=B(n.value,r.cursor,i),ge(a),Y()}catch(e){if(K(e)||c!==g){Y();return}a.value=e instanceof Error?e.message:`The viewer could not load items.`,o.value=`failed`,s.value=null,u.value=null}finally{m===l&&(m=null),p.delete(i)}}async function Se(e){if(!t.resolve)return null;let n=++g,r=new Set,i=[],l=e.cursor,d=0;for(a.value=null,o.value=e.phase,s.value=null,u.value=null;;){if(n!==g)return J(i,e.direction,t.removedIds.value,!0);let f=W(l);if(r.has(f)||p.has(f))break;r.add(f),p.add(f);let h=typeof AbortController>`u`?null:new AbortController;m=h;try{let r=await t.resolve({cursor:l,pageSize:x.value,signal:h?.signal});if(n!==g)return J(i,e.direction,t.removedIds.value,!0);let a=Ce({cursor:l,nextCursor:r.nextPage,nextItems:r.items,previousCursor:r.previousPage??null,previousItems:[]});i.push(a);let f=i.reduce((e,n)=>e+R(n,t.removedIds.value),0),p=e.direction===`forward`?a.nextCursor:a.previousCursor;if(!e.continueUntilFilled||f>=x.value||!p)return{canceled:!1,buckets:e.direction===`backward`?[...i].reverse():i,visibleCount:f};o.value=`filling`,s.value=f,u.value=x.value,d+=1;let m=oe(d,v.value,y.value);if(await c.wait(m),n!==g)return J(i,e.direction,t.removedIds.value,!0);l=p}catch(r){return K(r)||n!==g?J(i,e.direction,t.removedIds.value,!0):(a.value=r instanceof Error?r.message:`The viewer could not load items.`,o.value=`failed`,s.value=null,u.value=null,null)}finally{m===h&&(m=null),p.delete(f)}}return J(i,e.direction,t.removedIds.value,!1)}function Ce(e){let t=q({cursor:e.cursor,nextCursor:e.nextCursor,nextItems:e.nextItems,previousCursor:e.previousCursor,previousItems:e.previousItems,sequence:_});return _=t.nextSequence,t.bucket}function Y(){o.value=`idle`,s.value=null,u.value=null,c.clear()}function we(){if(!t.initialState||!t.initialState.items.length)return!1;let e=ee({initialState:t.initialState,removedIds:t.removedIds.value,sequence:_});return n.value=e.buckets,r.value=e.activeIndex,_=e.nextSequence,a.value=null,i.value=[],d.value=!1,!0}function Te(){return o.value===`loading`&&n.value.length===0&&i.value.length===0}function Ee(e){return re(e===`leading`?E.value:D.value,t.removedIds.value,x.value)}return{activeIndex:w,canRetryInitialLoad:P,cancel:me,commitPendingAppend:de,currentCursor:N,errorMessage:a,fillCollectedCount:s,fillDelayRemainingMs:l,fillTargetCount:u,hasNextPage:A,hasPreviousPage:j,items:C,loading:T,mode:b,nextCursor:O,pendingAppendItems:M,phase:o,prefetchNextPage:V,prefetchPreviousPage:ae,previousCursor:k,retryInitialLoad:le,retry:ue,setActiveIndex:fe,setAutoPrefetchEnabled:pe,syncActiveIndexAfterVisibilityChange:ge,getActiveOccurrenceKey:he,maybeCommitPendingAppendWhenFilteredOut:_e}}function ue(t,n){let r=t,i=t,{clearRemoved:a,getRemovedIds:o,remove:s,removedIds:c,restore:l,undo:u}=N(),d=le({emit:n,fillDelayMs:i.fillDelayMs,fillDelayStepMs:i.fillDelayStepMs,initialCursor:i.initialCursor,initialState:i.initialState,mode:i.mode,pageSize:i.pageSize,removedIds:c,resolve:i.resolve}),f=!1,p=0,m=(0,e.ref)([]),h=(0,e.computed)(()=>typeof i.resolve==`function`),g=(0,e.computed)(()=>c.value.size?m.value.filter(e=>!c.value.has(e.id)):m.value),_=(0,e.computed)(()=>h.value?d.items.value:g.value),v=(0,e.computed)(()=>h.value?d.activeIndex.value:r.activeIndex??0),y=(0,e.computed)(()=>h.value?d.loading.value:r.loading??!1),b=(0,e.computed)(()=>h.value?d.hasNextPage.value:r.hasNextPage??!1),x=(0,e.computed)(()=>h.value?d.hasPreviousPage.value:r.hasPreviousPage??!1),S=(0,e.computed)(()=>c.value.size),C=(0,e.computed)(()=>r.paginationDetail??null);(0,e.watch)([()=>r.items,()=>i.resolve],([e,t])=>{!Array.isArray(e)||typeof t!=`function`||f||(f=!0,console.warn("[Vibe] `resolve` and `items` were both provided. `resolve` mode will be used."))},{immediate:!0}),(0,e.watch)(()=>r.items??[],e=>{if(h.value)return;let t=j(e,m.value,p);m.value=t.items,p=t.nextSequence},{deep:!0,immediate:!0});function w(e){let t=_.value;if(!t.length)return;let i=P(e,0,t.length-1);if(h.value){d.setActiveIndex(i);return}i!==(r.activeIndex??0)&&n(`update:activeIndex`,i)}function T(e){let t=k(),n=s(e);return n.ids.length?h.value?(d.maybeCommitPendingAppendWhenFilteredOut(),d.syncActiveIndexAfterVisibilityChange(t),n):(M(t),n):n}function E(e){let t=k(),n=l(e);return n.ids.length?h.value?(d.syncActiveIndexAfterVisibilityChange(t),n):(M(t),n):n}function D(){let e=k(),t=u();return t?.ids.length?h.value?(d.syncActiveIndexAfterVisibilityChange(e),t):(M(e),t):t}function O(){let e=k();if(a(),h.value){d.syncActiveIndexAfterVisibilityChange(e);return}M(e)}function k(){let e=_.value[P(v.value,0,Math.max(0,_.value.length-1))];return e?A(e):null}function M(e=null){if(!_.value.length)return;let t=e?_.value.findIndex(t=>A(t)===e):-1,i=t>=0?t:P(v.value,0,_.value.length-1);i!==(r.activeIndex??0)&&n(`update:activeIndex`,i)}function P(e,t,n){return Math.min(Math.max(e,t),n)}function F(){h.value&&d.cancel()}async function I(){if(h.value){await d.prefetchNextPage();return}y.value||typeof r.requestNextPage!=`function`||await r.requestNextPage()}async function L(){if(h.value){await d.prefetchPreviousPage();return}y.value||typeof r.requestPreviousPage!=`function`||await r.requestPreviousPage()}async function R(){h.value&&await d.retry()}return{activeIndex:v,canRetryInitialLoad:(0,e.computed)(()=>h.value?d.canRetryInitialLoad.value:!1),cancel:F,clearRemoved:O,commitPendingAppend:d.commitPendingAppend,currentCursor:(0,e.computed)(()=>h.value?d.currentCursor.value:null),errorMessage:(0,e.computed)(()=>h.value?d.errorMessage.value:null),fillCollectedCount:(0,e.computed)(()=>h.value?d.fillCollectedCount.value:null),fillDelayRemainingMs:(0,e.computed)(()=>h.value?d.fillDelayRemainingMs.value:null),fillTargetCount:(0,e.computed)(()=>h.value?d.fillTargetCount.value:null),getRemovedIds:o,hasNextPage:b,hasPreviousPage:x,isAutoMode:h,items:_,loading:y,loadNext:I,loadPrevious:L,mode:(0,e.computed)(()=>h.value?d.mode.value:null),nextCursor:(0,e.computed)(()=>h.value?d.nextCursor.value:null),paginationDetail:C,pendingAppendItems:d.pendingAppendItems,phase:(0,e.computed)(()=>h.value?d.phase.value:y.value?`loading`:`idle`),prefetchNextPage:h.value?d.prefetchNextPage:async()=>{y.value||typeof r.requestNextPage!=`function`||await r.requestNextPage()},prefetchPreviousPage:h.value?d.prefetchPreviousPage:async()=>{y.value||typeof r.requestPreviousPage!=`function`||await r.requestPreviousPage()},previousCursor:(0,e.computed)(()=>h.value?d.previousCursor.value:null),removedCount:S,remove:T,restore:E,retry:R,retryInitialLoad:d.retryInitialLoad,setActiveIndex:w,setAutoPrefetchEnabled:d.setAutoPrefetchEnabled,undo:D}}var de=1024;function fe(t,n){let r=ue(t,n),i=(0,e.ref)(0),a=(0,e.ref)(`list`),o=(0,e.ref)(0),s=(0,e.reactive)({activeIndex:0,currentCursor:null,errorMessage:null,fillCollectedCount:null,fillDelayRemainingMs:null,fillTargetCount:null,hasNextPage:!1,hasPreviousPage:!1,isAutoMode:!1,itemCount:0,loadState:`loaded`,mode:null,nextCursor:null,phase:`idle`,previousCursor:null,removedCount:0,surfaceMode:`list`}),c=(0,e.computed)(()=>i.value>=de),l=(0,e.computed)(()=>t.surfaceMode===`fullscreen`||t.surfaceMode===`list`),u=(0,e.computed)(()=>c.value?t.surfaceMode??a.value:`fullscreen`),d=(0,e.computed)(()=>c.value&&u.value===`fullscreen`);(0,e.watch)(()=>t.surfaceMode,(e,t)=>{e&&(a.value=e,c.value&&t===`fullscreen`&&e===`list`&&(o.value+=1))},{immediate:!0}),(0,e.watch)(c,(e,t)=>{e&&!t&&a.value===`list`&&(o.value+=1)}),(0,e.watch)([u,()=>r.pendingAppendItems.value.length],([e,t])=>{e===`list`||t<=0||r.commitPendingAppend()}),(0,e.watch)(u,e=>{r.setAutoPrefetchEnabled(e===`fullscreen`)},{immediate:!0}),(0,e.watchEffect)(()=>{s.activeIndex=r.activeIndex.value,s.currentCursor=r.currentCursor.value,s.errorMessage=r.errorMessage.value,s.fillCollectedCount=r.fillCollectedCount.value,s.fillDelayRemainingMs=r.fillDelayRemainingMs.value,s.fillTargetCount=r.fillTargetCount.value,s.hasNextPage=r.hasNextPage.value,s.hasPreviousPage=r.hasPreviousPage.value,s.isAutoMode=r.isAutoMode.value,s.itemCount=r.items.value.length,s.loadState=r.loading.value?`loading`:r.errorMessage.value?`failed`:`loaded`,s.mode=r.mode.value,s.nextCursor=r.nextCursor.value,s.phase=r.phase.value,s.previousCursor=r.previousCursor.value,s.removedCount=r.removedCount.value,s.surfaceMode=u.value}),(0,e.onMounted)(()=>{h(),window.addEventListener(`keydown`,m),window.addEventListener(`resize`,h)}),(0,e.onBeforeUnmount)(()=>{window.removeEventListener(`keydown`,m),window.removeEventListener(`resize`,h)});function f(e){r.setActiveIndex(e),c.value&&g(`fullscreen`)}function p(){if(c.value){if(l.value){u.value!==`list`&&n(`update:surfaceMode`,`list`);return}a.value=`list`,o.value+=1}}function m(e){e.defaultPrevented||e.key!==`Escape`||!c.value||u.value!==`fullscreen`||D(e.target)||(e.preventDefault(),p())}function h(){i.value=window.innerWidth||0}function g(e){if(l.value){t.surfaceMode!==e&&n(`update:surfaceMode`,e);return}a.value=e}return{...r,cancel:r.cancel,isDesktop:c,listRestoreToken:o,loadNext:r.loadNext,loadPrevious:r.loadPrevious,openFullscreen:f,returnToList:p,retry:r.retry,showBackToList:d,status:(0,e.readonly)(s),surfaceMode:u}}var pe={"data-testid":`vibe-media-bar`,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]`},me={class:`grid grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-3 border-t border-white/12 bg-black/70 px-4 py-3 backdrop-blur-[18px]`},he={class:`text-[0.76rem] font-bold uppercase tracking-[0.18em] text-[#f7f1ea]/74`},ge={class:`relative h-4 w-full`},_e=[`max`,`value`,`disabled`],ve={class:`text-[0.76rem] font-bold uppercase tracking-[0.18em] text-[#f7f1ea]/74`},ye=(0,e.defineComponent)({__name:`FullscreenMediaBar`,props:{currentTime:{},currentTimeLabel:{},duration:{},durationLabel:{},progress:{}},emits:[`seek-input`],setup(t,{emit:n}){let r=t,i=n;return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,pe,[(0,e.createElementVNode)(`div`,me,[(0,e.createElementVNode)(`span`,he,(0,e.toDisplayString)(r.currentTimeLabel),1),(0,e.createElementVNode)(`div`,ge,[n[1]||=(0,e.createElementVNode)(`div`,{class:`absolute inset-x-0 top-1/2 h-px -translate-y-1/2 bg-white/12`},null,-1),(0,e.createElementVNode)(`div`,{class:`absolute left-0 top-1/2 h-px -translate-y-1/2 bg-[#f7f1ea]`,style:(0,e.normalizeStyle)({width:`${r.progress}%`})},null,4),(0,e.createElementVNode)(`input`,{"data-swipe-lock":`true`,type:`range`,"aria-label":`Seek active media`,min:`0`,step:`0.1`,max:r.duration||1,value:r.currentTime,disabled:r.duration<=0,class:`vibe-media-slider absolute inset-0 z-10 h-4 w-full cursor-pointer bg-transparent disabled:cursor-default disabled:opacity-50`,onInput:n[0]||=e=>i(`seek-input`,e)},null,40,_e)]),(0,e.createElementVNode)(`span`,ve,(0,e.toDisplayString)(r.durationLabel),1)])]))}}),be={class:`pointer-events-none absolute inset-0 z-[3] flex flex-col justify-between p-[clamp(1.25rem,2.6vw,2.25rem)]`},xe={class:`grid gap-4`},Se={class:`flex min-h-11 items-center justify-between gap-4`},Ce={class:`min-w-0 flex flex-1 items-center gap-3`},Y={key:1,"data-testid":`vibe-title`,class:`m-0 truncate text-left text-[0.82rem] leading-none tracking-[-0.04em] min-[721px]:text-[1.2rem]`},we={class:`pointer-events-auto flex shrink-0 items-center gap-2`},Te={"data-testid":`vibe-pagination`,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]`},Ee={class:`whitespace-nowrap`},De={key:0,class:`whitespace-nowrap border-l border-white/12 pl-2 text-[#f7f1ea]/56 min-[721px]:pl-3`},Oe={key:0,class:`grid gap-2 max-[720px]:justify-items-start`},ke=(0,e.defineComponent)({__name:`FullscreenHeader`,props:{currentIndex:{},paginationDetail:{},showBackToList:{type:Boolean},showEndBadge:{type:Boolean},title:{},total:{}},emits:[`back-to-list`],setup(t,{emit:n}){let r=t,i=n;return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,be,[(0,e.createElementVNode)(`div`,xe,[(0,e.createElementVNode)(`div`,Se,[(0,e.createElementVNode)(`div`,Ce,[r.showBackToList?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:0,type:`button`,"data-testid":`vibe-back-to-list`,class:`pointer-events-auto inline-flex h-11 w-11 shrink-0 items-center justify-center border border-white/14 bg-black/40 text-[#f7f1ea]/78 backdrop-blur-[18px] transition hover:border-white/28 hover:bg-black/55`,"aria-label":`Back to list`,onClick:n[0]||=e=>i(`back-to-list`)},[(0,e.createVNode)((0,e.unref)(u),{class:`h-4 w-4 stroke-[2.2]`,"aria-hidden":`true`})])):(0,e.createCommentVNode)(``,!0),r.title?((0,e.openBlock)(),(0,e.createElementBlock)(`h2`,Y,(0,e.toDisplayString)(r.title),1)):(0,e.createCommentVNode)(``,!0)]),(0,e.createElementVNode)(`div`,we,[(0,e.createElementVNode)(`span`,Te,[(0,e.createElementVNode)(`span`,Ee,(0,e.toDisplayString)(r.currentIndex+1)+` / `+(0,e.toDisplayString)(r.total),1),r.paginationDetail?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,De,(0,e.toDisplayString)(r.paginationDetail),1)):(0,e.createCommentVNode)(``,!0)]),(0,e.renderSlot)(t.$slots,`actions`)])])]),r.showEndBadge?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Oe,[...n[1]||=[(0,e.createElementVNode)(`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)]])):(0,e.createCommentVNode)(``,!0)]))}});function Ae(e){if(!Number.isFinite(e)||e<=0)return`0:00`;let t=Math.floor(e),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60;return n>0?`${n}:${String(r).padStart(2,`0`)}:${String(i).padStart(2,`0`)}`:`${r}:${String(i).padStart(2,`0`)}`}function je(t){let n=!1;(0,e.watch)(t.enabled,async e=>{if(r(e),e){t.onResize(),await t.onEnable();return}t.onDisable()},{immediate:!0}),(0,e.onMounted)(()=>{t.onResize(),t.enabled.value&&t.onEnable()}),(0,e.onBeforeUnmount)(()=>{r(!1),t.onDisable()});function r(e){if(e&&!n){window.addEventListener(`resize`,t.onResize),window.addEventListener(`keydown`,t.onKeydown),n=!0;return}!e&&n&&(window.removeEventListener(`resize`,t.onResize),window.removeEventListener(`keydown`,t.onKeydown),n=!1)}}var Me={currentTime:0,duration:0,errorKind:null,paused:!0,ready:!1};function Ne(){return{...Me}}function Pe(e){return e.complete&&!!(e.currentSrc||e.getAttribute(`src`))}function Fe(e,t,n){e.currentTime=Number.isFinite(t.currentTime)?t.currentTime:0,e.duration=Number.isFinite(t.duration)?t.duration:0,e.paused=t.paused,n&&n!==`error`&&(e.errorKind=null),e.ready=Ie(t,n)}function Ie(e,t){return t===`error`||t===`loadstart`||t===`waiting`||t===`stalled`?!1:t===`canplay`||t===`canplaythrough`||t===`playing`?!0:e.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA}var Le=new Map;function Re(e){return e===`not-found`?`404`:`Load error`}function ze(e){return e===`generic`}function Be(e){let t=Le.get(e);if(t)return t;let n=Ve(e);return Le.set(e,n),n}async function Ve(e){if(!He(e))return`generic`;try{let t=await fetch(e,{method:`HEAD`});if(!t.ok&&t.status===404)return`not-found`}catch{return`generic`}return`generic`}function He(e){return/^(https?:\/\/|\/)/i.test(e)}function Ue(e){try{let t=e.play();t&&typeof t.catch==`function`&&t.catch(()=>{})}catch{}}function We(t){let n=(0,e.ref)({}),r=(0,e.ref)({}),i=(0,e.ref)({}),a=(0,e.ref)({}),o=new Map,s=new Map,c=new Set,l=(0,e.computed)(()=>t.activeItem.value?A(t.activeItem.value):null),u=(0,e.computed)(()=>t.activeMediaItem.value?A(t.activeMediaItem.value):null),d=(0,e.computed)(()=>{let e=new Map;for(let n of t.items.value)e.set(A(n),n);return e}),f=(0,e.computed)(()=>u.value?i.value[u.value]??Me:Me),p=(0,e.computed)(()=>u.value?f.value.duration:0),m=(0,e.computed)(()=>p.value<=0?0:Ge(f.value.currentTime/p.value*100,0,100)),h=(0,e.computed)(()=>l.value?M(l.value):null);(0,e.watch)(()=>l.value,async()=>{await b()}),(0,e.watch)(()=>t.itemCount.value,async()=>{await b()});function g(e,t){if(t instanceof HTMLVideoElement){o.set(e,t),B(e,t);return}o.delete(e)}function _(e,t){if(t instanceof HTMLAudioElement){s.set(e,t),B(e,t);return}s.delete(e)}function v(e,t){t instanceof HTMLImageElement&&Pe(t)&&(n.value[e]=!0,r.value[e]=null,G(e,t.currentSrc||t.src||q(e)))}function y(){R(),a.value={},r.value={},n.value={},i.value={},c.clear()}async function b(){if(!t.isEnabled.value){R();return}await(0,e.nextTick)();let n=l.value;for(let[e,t]of o.entries()){if(e!==n||i.value[e]?.errorKind){L(t,e);continue}t.muted=!0,t.loop=!1,t.playsInline=!0,Ue(t),B(e,t)}for(let[e,t]of s.entries()){if(e!==n||i.value[e]?.errorKind){L(t,e);continue}Ue(t),B(e,t)}}function x(e,t){let n=t.currentTarget instanceof HTMLMediaElement?t.currentTarget:t.target instanceof HTMLMediaElement?t.target:null;if(n){let r=i.value[e]?.ready??!1;B(e,n,t.type);let a=i.value[e]?.ready??!1;!r&&a&&G(e,n.currentSrc||n.src||q(e))}}function S(e,t){n.value[e]=!0,r.value[e]=null,G(e,t)}async function C(e,i){let a=K(e)??t.activeItem.value;n.value[e]=!1,r.value[e]=`generic`;let o=await Be(i);r.value[e]=o,a&&t.onAssetError?.({item:a,occurrenceKey:e,url:i,kind:o,surface:`fullscreen`})}async function w(e,n){let r=H(e),i=z(e),a=K(e)??t.activeMediaItem.value??t.activeItem.value;if(r){r.pause();try{r.currentTime=0}catch{}}i.currentTime=0,i.duration=0,i.paused=!0,i.ready=!1,i.errorKind=`generic`;let o=await Be(n);i.errorKind=o,a&&t.onAssetError?.({item:a,occurrenceKey:e,url:n,kind:o,surface:`fullscreen`})}function T(e,t,n){e.button!==0||Date.now()<n||W(o.get(t)??null)}function E(e,t,n){e.button!==0||Date.now()<n||W(H(t))}function D(e){let t=U(),n=u.value;if(!t||!n||!(e.target instanceof HTMLInputElement))return;let r=Number.parseFloat(e.target.value);if(!Number.isFinite(r))return;let i=Ge(r,0,p.value||0);V(n,i,t),t.currentTime=i}function O(e){return!!n.value[e]&&!r.value[e]}function k(e){return(i.value[e]?.ready??!1)&&!i.value[e]?.errorKind}function j(e){return e.url}function M(e){return r.value[e]??i.value[e]?.errorKind??null}function N(e){let t=M(e);return t?Re(t):null}function P(e){return ze(M(e))}function F(e){return`${e}:${a.value[e]??0}`}async function I(t){if(!P(t))return;n.value[t]=!1,r.value[t]=null;let i=z(t);i.currentTime=0,i.duration=0,i.paused=!0,i.ready=!1,i.errorKind=null;let o=H(t);o&&L(o,t),c.forEach(e=>{e.startsWith(`${t}|`)&&c.delete(e)}),a.value[t]=(a.value[t]??0)+1,await(0,e.nextTick)(),await b()}function L(e,t){e.pause();try{e.currentTime=0}catch{}B(t,e)}function R(){for(let[e,t]of o.entries())L(t,e);for(let[e,t]of s.entries())L(t,e)}function z(e){return i.value[e]||(i.value[e]=Ne()),i.value[e]}function B(e,t,n){Fe(z(e),t,n)}function V(e,t,n){let r=z(e);r.currentTime=t,r.duration=Number.isFinite(n.duration)?n.duration:r.duration,r.paused=n.paused}function H(e){return o.get(e)??s.get(e)??null}function U(){return u.value?H(u.value):null}function W(e){if(e){if(e.paused){Ue(e);return}e.pause()}}function G(e,n){let r=K(e)??t.activeMediaItem.value??t.activeItem.value;if(!r||!n)return;let i=`${e}|${n}`;c.has(i)||(c.add(i),t.onAssetLoad?.({item:r,occurrenceKey:e,surface:`fullscreen`,url:n}))}function K(e){return d.value.get(e)??null}function q(e){return K(e)?.url??null}return{activeAssetErrorKind:h,activeMediaDuration:p,activeMediaProgress:m,activeMediaState:f,getAssetErrorKind:M,getAssetErrorLabel:N,getAssetRenderKey:F,getImageSource:j,isImageReady:O,isMediaReady:k,canRetryAsset:P,mediaStates:i,onAudioCoverClick:E,onImageError:C,onImageLoad:S,onMediaError:w,onMediaEvent:x,onMediaSeekInput:D,onVideoClick:T,registerAudioElement:_,registerImageElement:v,registerVideoElement:g,resetMediaState:y,retryAsset:I,syncMediaPlayback:b}}function Ge(e,t,n){return Math.min(Math.max(e,t),n)}function Ke(e,t,n=2){return t<=0?{start:0,end:-1}:{start:Math.max(0,e-n),end:Math.min(t-1,e+n)}}function qe(e,t,n=2){let r=Ke(t,e.length,n);return r.end<r.start?[]:e.slice(r.start,r.end+1).map((e,t)=>({item:e,index:r.start+t}))}function Je(e,t,n,r,i){return{transform:`translate3d(0, ${(e-t)*n+r}px, 0)`,transition:i?`none`:`transform 320ms cubic-bezier(0.22, 1, 0.36, 1)`}}function Ye(t,n,r={}){let{activeIndex:i,canRetryInitialLoad:a,errorMessage:o,hasNextPage:s,items:c,loading:l,paginationDetail:u,retryInitialLoad:d,setActiveIndex:f}=ue(t,n),p=(0,e.ref)(null),m=(0,e.ref)(0),h=(0,e.ref)(!1),g=(0,e.ref)(1),_=r.enabled??(0,e.computed)(()=>!0),v=null,y=0,b=0,x=0,S=(0,e.computed)(()=>c.value.length===0?0:N(i.value,0,c.value.length-1)),C=(0,e.computed)(()=>c.value[S.value]??null),w=(0,e.computed)(()=>C.value?.type===`audio`||C.value?.type===`video`?C.value:null),T=We({items:c,activeItem:C,activeMediaItem:w,isEnabled:_,itemCount:(0,e.computed)(()=>c.value.length),onAssetError:r.onAssetError,onAssetLoad:r.onAssetLoad}),E=(0,e.computed)(()=>c.value.length>0&&S.value===c.value.length-1),k=(0,e.computed)(()=>c.value.length===0&&l.value?`Loading the first page`:l.value&&s.value?`Loading more items`:E.value&&!s.value&&!l.value?`End of feed`:null),A=(0,e.computed)(()=>Math.min(96,g.value*.15||96)),j=(0,e.computed)(()=>Ke(S.value,c.value.length)),M=(0,e.computed)(()=>qe(c.value,S.value));je({enabled:_,onDisable(){U(),T.resetMediaState()},onEnable(){return T.syncMediaPlayback()},onKeydown:G,onResize:P});function N(e,t,n){return Math.min(Math.max(e,t),n)}function P(){g.value=p.value?.clientHeight||window.innerHeight||1}function F(e){return c.value.length===0?!1:N(S.value+e,0,c.value.length-1)!==S.value}function I(e){if(c.value.length===0)return;let t=N(S.value+e,0,c.value.length-1);t!==S.value&&f(t)}function L(e){let t=e>0,n=e<0;return t&&!F(-1)||n&&!F(1)?e*.24:e}function R(e){!_.value||c.value.length===0||e.pointerType===`mouse`||O(e.target)||(v=e.pointerId,y=e.clientY,m.value=0,h.value=!0,p.value?.setPointerCapture?.(e.pointerId))}function z(e){!_.value||!h.value||v!==e.pointerId||(m.value=L(e.clientY-y))}function B(e){!_.value||v!==e.pointerId||(p.value?.releasePointerCapture?.(e.pointerId),H())}function V(e){!_.value||v!==e.pointerId||(p.value?.releasePointerCapture?.(e.pointerId),U())}function H(){Math.abs(m.value)>=A.value&&(x=Date.now()+250,I(m.value<0?1:-1)),U()}function U(){m.value=0,h.value=!1,v=null}function W(e){if(!_.value||c.value.length===0||h.value||O(e.target)||Math.abs(e.deltaY)<Math.max(Math.abs(e.deltaX),24))return;e.preventDefault();let t=Date.now();t<b||(b=t+400,I(e.deltaY>0?1:-1))}function G(e){!_.value||c.value.length===0||D(e.target)||((e.key===`ArrowDown`||e.key===`PageDown`)&&(e.preventDefault(),I(1)),(e.key===`ArrowUp`||e.key===`PageUp`)&&(e.preventDefault(),I(-1)))}function K(e,t){T.onVideoClick(e,t,x)}function q(e,t){T.onAudioCoverClick(e,t,x)}function J(e){T.onMediaSeekInput(e)}function ee(e){return e.type===`image`||e.type===`video`}function te(e){return e.type===`audio`}function ne(e){return Je(e,S.value,g.value,m.value,h.value)}return{activeItem:C,activeAssetErrorKind:T.activeAssetErrorKind,activeMediaDuration:T.activeMediaDuration,activeMediaItem:w,activeMediaProgress:T.activeMediaProgress,activeMediaState:T.activeMediaState,canRetryAsset:T.canRetryAsset,canRetryInitialLoad:a,errorMessage:o,getAssetErrorKind:T.getAssetErrorKind,getAssetErrorLabel:T.getAssetErrorLabel,getAssetRenderKey:T.getAssetRenderKey,formatPlaybackTime:Ae,getImageSource:T.getImageSource,getSlideStyle:ne,hasNextPage:s,isAtEnd:E,isAudio:te,isVisual:ee,items:c,loading:l,mediaStates:T.mediaStates,isImageReady:T.isImageReady,isMediaReady:T.isMediaReady,onAudioCoverClick:q,onImageError:T.onImageError,onImageLoad:T.onImageLoad,onMediaEvent:T.onMediaEvent,onMediaError:T.onMediaError,onMediaSeekInput:J,onPointerCancel:V,onPointerDown:R,onPointerMove:z,onPointerUp:B,onVideoClick:K,onWheel:W,registerAudioElement:T.registerAudioElement,registerImageElement:T.registerImageElement,registerVideoElement:T.registerVideoElement,renderedItems:M,renderedRange:j,resolvedActiveIndex:S,retryInitialLoad:d,retryAsset:T.retryAsset,stageRef:p,statusMessage:k,paginationDetail:u}}var Xe={image:m,video:f,audio:d,other:p},Ze={image:`Image`,video:`Video`,audio:`Audio`,other:`File`};function X(e){return Xe[e]}function Qe(e){return Ze[e]}function Z(t){if(!Array.isArray(t))return!1;for(let n of t){if(Array.isArray(n)){if(Z(n))return!0;continue}if(!(0,e.isVNode)(n)){if(typeof n==`string`){if(n.trim().length>0)return!0;continue}if(n!=null&&n!==!1)return!0;continue}if(!$e(n))return!0}return!1}function $e(t){return t.type===e.Comment?!0:t.type===e.Text?typeof t.children==`string`?t.children.trim().length===0:!0:t.type===e.Fragment?!Z(t.children):!1}var et={image:`bg-[radial-gradient(circle_at_top_center,rgba(251,191,36,0.4)_0,transparent_42%),linear-gradient(180deg,#120d08,#050507)]`,video:`bg-[radial-gradient(circle_at_top_center,rgba(56,189,248,0.38)_0,transparent_42%),linear-gradient(180deg,#07111c,#050608)]`,audio:`bg-[radial-gradient(circle_at_top_center,rgba(16,185,129,0.32)_0,transparent_42%),linear-gradient(180deg,#06120f,#040506)]`,other:`bg-[radial-gradient(circle_at_top_center,rgba(148,163,184,0.28)_0,transparent_42%),linear-gradient(180deg,#0d0c10,#040506)]`},tt={image:`bg-[radial-gradient(circle_at_center,rgba(251,191,36,0.4)_0,transparent_42%),linear-gradient(180deg,#120d08,#050507)]`,video:`bg-[radial-gradient(circle_at_center,rgba(56,189,248,0.38)_0,transparent_42%),linear-gradient(180deg,#07111c,#050608)]`,audio:`bg-[radial-gradient(circle_at_center,rgba(16,185,129,0.32)_0,transparent_42%),linear-gradient(180deg,#06120f,#040506)]`,other:`bg-[radial-gradient(circle_at_center,rgba(148,163,184,0.28)_0,transparent_42%),linear-gradient(180deg,#0d0c10,#040506)]`};function nt(e){return et[e]}function rt(e){return tt[e]}var it={class:`relative h-full min-h-0 overflow-hidden bg-[#05060a] text-[#f7f1ea]`},at={key:0,class:`relative h-full min-h-0`},ot=[`data-item-id`,`data-occurrence-key`,`data-index`,`data-active`,`aria-hidden`],st={key:0,"data-testid":`vibe-asset-spinner`,class:`pointer-events-none absolute inset-0 z-[2] grid place-items-center`},ct={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]`},lt=[`data-kind`],ut={class:`grid justify-items-center gap-4 border border-white/14 bg-black/45 px-8 py-7 text-center backdrop-blur-[18px]`},dt={class:`m-0 text-[0.82rem] font-bold uppercase tracking-[0.28em] text-[#f7f1ea]/70`},ft=[`onClick`],pt=[`src`,`alt`,`onLoad`,`onError`],mt=[`src`,`preload`,`onClick`,`onCanplay`,`onDurationchange`,`onError`,`onLoadstart`,`onLoadedmetadata`,`onPause`,`onPlay`,`onPlaying`,`onSeeking`,`onSeeked`,`onStalled`,`onTimeupdate`,`onWaiting`],ht={class:`relative grid aspect-square w-[clamp(320px,46vw,560px)] max-w-[calc(100vw-2.5rem)] place-items-center`},gt=[`aria-label`,`disabled`,`onClick`],_t={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]`},vt={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]`},yt={key:0,"data-testid":`vibe-asset-spinner`,class:`pointer-events-none absolute inset-0 z-[3] grid place-items-center`},bt={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]`},xt=[`data-kind`],St={class:`m-0 text-[0.82rem] font-bold uppercase tracking-[0.28em] text-[#f7f1ea]/70`},Ct=[`onClick`],wt=[`src`,`preload`,`onCanplay`,`onDurationchange`,`onError`,`onLoadstart`,`onLoadedmetadata`,`onPause`,`onPlay`,`onPlaying`,`onSeeking`,`onSeeked`,`onStalled`,`onTimeupdate`,`onWaiting`],Tt={key:2,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`},Et={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]`},Dt={key:0,class:`pointer-events-none absolute inset-0 z-[4]`},Ot={class:`h-full w-full`},kt={key:0,"data-testid":`vibe-fullscreen-aside`,class:`h-full min-h-0 overflow-hidden border-l border-white/10 bg-black/45 backdrop-blur-[18px]`},At={class:`h-full min-h-0 overflow-y-auto overscroll-y-contain`},jt={key:0,"data-testid":`vibe-fullscreen-aside`,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]`},Mt={class:`h-full min-h-0 overflow-y-auto overscroll-y-contain`},Nt=1280,Pt=2,Ft=(0,e.defineComponent)({__name:`FullscreenSurface`,props:{items:{},activeIndex:{default:0},fillDelayMs:{},fillDelayStepMs:{},initialState:{},loading:{type:Boolean,default:!1},hasNextPage:{type:Boolean,default:!1},mode:{},resolve:{},initialCursor:{},pageSize:{},assetLoadLimits:{},hasPreviousPage:{type:Boolean},paginationDetail:{default:null},requestNextPage:{},requestPreviousPage:{},showStatusBadges:{type:Boolean,default:!0},surfaceMode:{},active:{type:Boolean,default:!0},reportAssetError:{type:[Function,null],default:null},reportAssetLoad:{type:[Function,null],default:null},showBackToList:{type:Boolean,default:!1}},emits:[`back-to-list`,`update:activeIndex`],setup(t,{emit:n}){let r=t,i=(0,e.useSlots)(),a=n,o=Ye(r,(e,t)=>{a(`update:activeIndex`,t)},{enabled:(0,e.toRef)(r,`active`),onAssetError:r.reportAssetError??void 0,onAssetLoad:r.reportAssetLoad??void 0}),s=(0,e.ref)(typeof window>`u`?Nt:window.innerWidth||Nt),c=(0,e.computed)(()=>nt(o.activeItem.value?.type??`image`)),l=(0,e.computed)(()=>o.activeMediaItem.value&&!o.activeAssetErrorKind.value?`bottom-[5.8rem] max-[720px]:bottom-[7.4rem]`:`bottom-[1.8rem] max-[720px]:bottom-[1.3rem]`),u=(0,e.computed)(()=>!!o.activeMediaItem.value&&!o.activeAssetErrorKind.value),d=(0,e.computed)(()=>u.value?`pb-[5.75rem] max-[720px]:pb-[7rem]`:``),f=(0,e.computed)(()=>{let e=o.activeItem.value;return e?{hasNextPage:r.hasNextPage,index:o.resolvedActiveIndex.value,item:e,loading:r.loading,paginationDetail:r.paginationDetail,total:r.items.length}:null}),p=(0,e.computed)(()=>!f.value||!i[`fullscreen-header-actions`]?[]:i[`fullscreen-header-actions`](f.value)),m=(0,e.computed)(()=>!f.value||!i[`fullscreen-aside`]?[]:i[`fullscreen-aside`](f.value)),y=(0,e.computed)(()=>r.loading?r.items.length>0?`Loading more items`:`Loading the first page`:o.isAtEnd.value&&!r.hasNextPage&&!r.loading?`End of feed`:null),b=(0,e.computed)(()=>!r.showStatusBadges||!f.value||!y.value?null:{...f.value,kind:o.isAtEnd.value&&!o.hasNextPage.value&&!o.loading.value?`end`:`loading-more`,message:y.value}),x=(0,e.computed)(()=>!b.value||!i[`fullscreen-status`]?[]:i[`fullscreen-status`](b.value)),S=(0,e.computed)(()=>({gridTemplateColumns:T.value?`minmax(0, 1fr) 22rem`:`minmax(0, 1fr) 0rem`,transition:`grid-template-columns 320ms cubic-bezier(0.22, 1, 0.36, 1)`})),C=(0,e.computed)(()=>Z(p.value)),w=(0,e.computed)(()=>Z(m.value)),T=(0,e.computed)(()=>w.value&&s.value>=Nt),E=(0,e.computed)(()=>w.value&&!T.value),D=(0,e.computed)(()=>Z(x.value));(0,e.onMounted)(()=>{window.addEventListener(`resize`,R)}),(0,e.onBeforeUnmount)(()=>{window.removeEventListener(`resize`,R)});function O(e,t){let n=t.title?.trim();return n?`${e} ${n}`:`${e} ${Qe(t.type).toLowerCase()}`}function k(e,t){let n=L(t);return!P(e)||e!==o.resolvedActiveIndex.value||o.getAssetErrorKind(n)?!1:t.type===`image`?!o.isImageReady(n):t.type===`video`||t.type===`audio`?!o.isMediaReady(n):!1}function j(e){return o.getAssetErrorKind(L(e))}function M(e){return o.getAssetErrorLabel(L(e))??`Load error`}function N(e,t){return P(e)&&e===o.resolvedActiveIndex.value&&!!j(t)}function P(e){let t=o.resolvedActiveIndex.value;return r.active&&e>=t&&e<=t+Pt}function F(e,t){return P(e)?o.getImageSource(t):void 0}function I(e,t){return P(e)?t.url:void 0}function L(e){return A(e)}function R(){s.value=window.innerWidth||Nt}return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,it,[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`absolute inset-0 transition-[background] duration-200`,c.value])},null,2),(0,e.createElementVNode)(`div`,{class:`relative z-[1] grid h-full min-h-0`,style:(0,e.normalizeStyle)(S.value)},[(0,e.createElementVNode)(`div`,{ref:`viewer.stageRef`,"data-testid":`vibe-stage`,class:`relative h-full min-h-0 touch-none overflow-hidden`,onPointerdown:n[1]||=(...t)=>(0,e.unref)(o).onPointerDown&&(0,e.unref)(o).onPointerDown(...t),onPointermove:n[2]||=(...t)=>(0,e.unref)(o).onPointerMove&&(0,e.unref)(o).onPointerMove(...t),onPointerup:n[3]||=(...t)=>(0,e.unref)(o).onPointerUp&&(0,e.unref)(o).onPointerUp(...t),onPointercancel:n[4]||=(...t)=>(0,e.unref)(o).onPointerCancel&&(0,e.unref)(o).onPointerCancel(...t),onWheel:n[5]||=(...t)=>(0,e.unref)(o).onWheel&&(0,e.unref)(o).onWheel(...t)},[(0,e.unref)(o).items.value.length>0?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,at,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)((0,e.unref)(o).renderedItems.value,({item:r,index:i})=>((0,e.openBlock)(),(0,e.createElementBlock)(`article`,{key:L(r),"data-testid":`vibe-slide`,"data-item-id":r.id,"data-occurrence-key":L(r),"data-index":i,"data-active":i===(0,e.unref)(o).resolvedActiveIndex.value,"aria-hidden":i===(0,e.unref)(o).resolvedActiveIndex.value?`false`:`true`,class:(0,e.normalizeClass)([`absolute inset-0 flex h-full min-h-full items-center justify-center will-change-transform`,i===(0,e.unref)(o).resolvedActiveIndex.value?`pointer-events-auto`:`pointer-events-none`]),style:(0,e.normalizeStyle)((0,e.unref)(o).getSlideStyle(i))},[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`absolute inset-0 opacity-85`,(0,e.unref)(rt)(r.type)])},null,2),(0,e.unref)(o).isVisual(r)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:0,class:(0,e.normalizeClass)([`relative z-[1] flex h-full w-full items-center justify-center overflow-hidden`,i===(0,e.unref)(o).resolvedActiveIndex.value?d.value:``])},[k(i,r)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,st,[(0,e.createElementVNode)(`span`,ct,[(0,e.createVNode)((0,e.unref)(h),{class:`h-5 w-5 animate-spin stroke-[1.9] text-[#f7f1ea]/78`,"aria-hidden":`true`})])])):(0,e.createCommentVNode)(``,!0),N(i,r)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:1,"data-testid":`vibe-asset-error`,"data-kind":j(r),class:`grid h-full w-full place-items-center`},[(0,e.createElementVNode)(`div`,ut,[(0,e.createVNode)((0,e.unref)(v),{class:`h-7 w-7 stroke-[1.9] text-[#f7f1ea]/72`,"aria-hidden":`true`}),(0,e.createElementVNode)(`p`,dt,(0,e.toDisplayString)(M(r)),1),(0,e.unref)(o).canRetryAsset(L(r))?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:0,type:`button`,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`,onClick:(0,e.withModifiers)(t=>(0,e.unref)(o).retryAsset(L(r)),[`stop`])},` Retry `,8,ft)):(0,e.createCommentVNode)(``,!0)])],8,lt)):r.type===`image`?((0,e.openBlock)(),(0,e.createElementBlock)(`img`,{key:(0,e.unref)(o).getAssetRenderKey(L(r)),src:F(i,r),alt:r.title??``,draggable:`false`,class:(0,e.normalizeClass)([`block h-auto max-h-full w-auto max-w-full object-contain shadow-[0_40px_120px_-60px_rgba(0,0,0,0.9)] transition-opacity duration-300`,(0,e.unref)(o).isImageReady(L(r))?`opacity-100`:`opacity-0`]),ref_for:!0,ref:t=>(0,e.unref)(o).registerImageElement(L(r),t),onLoad:t=>(0,e.unref)(o).onImageLoad(L(r),r.url),onError:t=>(0,e.unref)(o).onImageError(L(r),r.url)},null,42,pt)):((0,e.openBlock)(),(0,e.createElementBlock)(`video`,{key:(0,e.unref)(o).getAssetRenderKey(L(r)),class:(0,e.normalizeClass)([`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`,(0,e.unref)(o).isMediaReady(L(r))?`opacity-100`:`opacity-0`]),playsinline:``,muted:``,src:I(i,r),preload:P(i)?`metadata`:`none`,ref_for:!0,ref:t=>(0,e.unref)(o).registerVideoElement(L(r),t),onClick:(0,e.withModifiers)(t=>(0,e.unref)(o).onVideoClick(t,L(r)),[`stop`]),onCanplay:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onDurationchange:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onError:t=>(0,e.unref)(o).onMediaError(L(r),r.url),onLoadstart:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onLoadedmetadata:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onPause:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onPlay:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onPlaying:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onSeeking:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onSeeked:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onStalled:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onTimeupdate:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onWaiting:t=>(0,e.unref)(o).onMediaEvent(L(r),t)},null,42,mt))],2)):(0,e.unref)(o).isAudio(r)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:1,class:(0,e.normalizeClass)([`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===(0,e.unref)(o).resolvedActiveIndex.value?d.value:``])},[(0,e.createElementVNode)(`div`,ht,[(0,e.createElementVNode)(`button`,{type:`button`,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]`,"aria-label":(0,e.unref)(o).mediaStates.value[L(r)]?.paused??!0?O(`Play`,r):O(`Pause`,r),disabled:!!j(r),onClick:t=>(0,e.unref)(o).onAudioCoverClick(t,L(r))},[n[6]||=(0,e.createElementVNode)(`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),n[7]||=(0,e.createElementVNode)(`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),(0,e.createElementVNode)(`span`,_t,[(0,e.renderSlot)(t.$slots,`item-icon`,{icon:(0,e.unref)(X)(r.type),item:r},()=>[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)((0,e.unref)(X)(r.type)),{class:`h-6 w-6 stroke-[1.9]`,"aria-hidden":`true`}))])]),(0,e.createElementVNode)(`span`,vt,[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)((0,e.unref)(o).mediaStates.value[L(r)]?.paused??!0?(0,e.unref)(_):(0,e.unref)(g)),{class:`h-4 w-4 stroke-2`,"aria-hidden":`true`}))])],8,gt),k(i,r)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,yt,[(0,e.createElementVNode)(`span`,bt,[(0,e.createVNode)((0,e.unref)(h),{class:`h-5 w-5 animate-spin stroke-[1.9] text-[#f7f1ea]/78`,"aria-hidden":`true`})])])):(0,e.createCommentVNode)(``,!0),j(r)?((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:1},[n[8]||=(0,e.createElementVNode)(`div`,{class:`pointer-events-none absolute inset-0 border border-white/8 bg-[radial-gradient(circle,rgba(239,68,68,0.12),transparent_66%)]`},null,-1),(0,e.createElementVNode)(`div`,{"data-testid":`vibe-asset-error`,"data-kind":j(r),class:`relative z-[1] grid justify-items-center gap-4`},[(0,e.createVNode)((0,e.unref)(v),{class:`h-7 w-7 stroke-[1.9] text-[#f7f1ea]/72`,"aria-hidden":`true`}),(0,e.createElementVNode)(`p`,St,(0,e.toDisplayString)(M(r)),1),(0,e.unref)(o).canRetryAsset(L(r))?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:0,type:`button`,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`,onClick:(0,e.withModifiers)(t=>(0,e.unref)(o).retryAsset(L(r)),[`stop`])},` Retry `,8,Ct)):(0,e.createCommentVNode)(``,!0)],8,xt)],64)):(0,e.createCommentVNode)(``,!0)]),((0,e.openBlock)(),(0,e.createElementBlock)(`audio`,{key:(0,e.unref)(o).getAssetRenderKey(L(r)),src:I(i,r),preload:P(i)?`metadata`:`none`,class:`pointer-events-none absolute h-px w-px opacity-0`,ref_for:!0,ref:t=>(0,e.unref)(o).registerAudioElement(L(r),t),onCanplay:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onDurationchange:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onError:t=>(0,e.unref)(o).onMediaError(L(r),r.url),onLoadstart:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onLoadedmetadata:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onPause:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onPlay:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onPlaying:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onSeeking:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onSeeked:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onStalled:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onTimeupdate:t=>(0,e.unref)(o).onMediaEvent(L(r),t),onWaiting:t=>(0,e.unref)(o).onMediaEvent(L(r),t)},null,40,wt))],2)):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Tt,[(0,e.createElementVNode)(`div`,Et,[(0,e.renderSlot)(t.$slots,`item-icon`,{icon:(0,e.unref)(X)(r.type),item:r},()=>[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)((0,e.unref)(X)(r.type)),{class:`h-6 w-6 stroke-[1.9]`,"aria-hidden":`true`}))])])]))],14,ot))),128)),f.value&&i[`fullscreen-overlay`]?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Dt,[(0,e.createElementVNode)(`div`,Ot,[(0,e.renderSlot)(t.$slots,`fullscreen-overlay`,(0,e.normalizeProps)((0,e.guardReactiveProps)(f.value)))])])):(0,e.createCommentVNode)(``,!0),(0,e.unref)(o).activeItem.value?((0,e.openBlock)(),(0,e.createBlock)(ke,{key:1,"current-index":(0,e.unref)(o).resolvedActiveIndex.value,"pagination-detail":(0,e.unref)(o).paginationDetail.value,"show-back-to-list":r.showBackToList,"show-end-badge":r.showStatusBadges&&(0,e.unref)(o).isAtEnd.value&&!(0,e.unref)(o).hasNextPage.value&&!(0,e.unref)(o).loading.value,title:(0,e.unref)(o).activeItem.value.title??null,total:(0,e.unref)(o).items.value.length,onBackToList:n[0]||=e=>a(`back-to-list`)},(0,e.createSlots)({_:2},[C.value&&f.value?{name:`actions`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(t.$slots,`fullscreen-header-actions`,(0,e.normalizeProps)((0,e.guardReactiveProps)(f.value)))]),key:`0`}:void 0]),1032,[`current-index`,`pagination-detail`,`show-back-to-list`,`show-end-badge`,`title`,`total`])):(0,e.createCommentVNode)(``,!0),u.value?((0,e.openBlock)(),(0,e.createBlock)(ye,{key:2,"current-time":(0,e.unref)(o).activeMediaState.value.currentTime,"current-time-label":(0,e.unref)(o).formatPlaybackTime((0,e.unref)(o).activeMediaState.value.currentTime),duration:(0,e.unref)(o).activeMediaDuration.value,"duration-label":(0,e.unref)(o).formatPlaybackTime((0,e.unref)(o).activeMediaDuration.value),progress:(0,e.unref)(o).activeMediaProgress.value,onSeekInput:(0,e.unref)(o).onMediaSeekInput},null,8,[`current-time`,`current-time-label`,`duration`,`duration-label`,`progress`,`onSeekInput`])):(0,e.createCommentVNode)(``,!0),b.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:3,class:(0,e.normalizeClass)([`absolute left-1/2 z-[4] -translate-x-1/2`,l.value])},[D.value?(0,e.renderSlot)(t.$slots,`fullscreen-status`,(0,e.normalizeProps)((0,e.mergeProps)({key:0},b.value))):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:1,class:(0,e.normalizeClass)([`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`,b.value.kind===`end`?`border-amber-300/35 text-amber-200`:``])},(0,e.toDisplayString)(b.value.message),3))],2)):(0,e.createCommentVNode)(``,!0)])):(0,e.createCommentVNode)(``,!0)],544),(0,e.createVNode)(e.Transition,{"enter-active-class":`transform-gpu transition-all duration-320 ease-out`,"enter-from-class":`translate-x-full opacity-0`,"enter-to-class":`translate-x-0 opacity-100`,"leave-active-class":`transform-gpu transition-all duration-260 ease-in`,"leave-from-class":`translate-x-0 opacity-100`,"leave-to-class":`translate-x-full opacity-0`},{default:(0,e.withCtx)(()=>[T.value&&f.value?((0,e.openBlock)(),(0,e.createElementBlock)(`aside`,kt,[(0,e.createElementVNode)(`div`,At,[(0,e.renderSlot)(t.$slots,`fullscreen-aside`,(0,e.normalizeProps)((0,e.guardReactiveProps)(f.value)))])])):(0,e.createCommentVNode)(``,!0)]),_:3})],4),(0,e.createVNode)(e.Transition,{"enter-active-class":`transform-gpu transition-all duration-320 ease-out`,"enter-from-class":`translate-x-full opacity-0`,"enter-to-class":`translate-x-0 opacity-100`,"leave-active-class":`transform-gpu transition-all duration-260 ease-in`,"leave-from-class":`translate-x-0 opacity-100`,"leave-to-class":`translate-x-full opacity-0`},{default:(0,e.withCtx)(()=>[E.value&&f.value?((0,e.openBlock)(),(0,e.createElementBlock)(`aside`,jt,[(0,e.createElementVNode)(`div`,Mt,[(0,e.renderSlot)(t.$slots,`fullscreen-aside`,(0,e.normalizeProps)((0,e.guardReactiveProps)(f.value)))])])):(0,e.createCommentVNode)(``,!0)]),_:3})]))}}),It=1,Lt=.5;function Rt(e){if(e.type!==`image`&&e.type!==`video`)return{width:It,height:It,source:`fallback`};let t=e.preview?.width,n=e.preview?.height;if(Gt(t)&&Gt(n)){let r=Kt(e,t,n);return{width:r.width,height:r.height,source:`preview`}}if(Gt(e.width)&&Gt(e.height)){let t=Kt(e,e.width,e.height);return{width:t.width,height:t.height,source:`original`}}return{width:It,height:It,source:`fallback`}}function zt(e,t){return!e||e<=0||!t||t<=0?1:Math.max(1,Math.floor(e/t))}function Bt(e,t,n,r=0){if(!e||e<=0||!t||t<=0)return n;let i=typeof r==`number`&&r>0?r:0,a=e-Math.max(0,t-1)*i;return!a||a<=0?n:a/t}function Vt(e,t){let n=Rt(e);return n.height/n.width*t}function Ht(e,t){let n=Array.from({length:t.columnCount},()=>0),r=Array(e.length),i=Array(e.length),a=new Map,o=new Map,s=0;for(let c=0;c<e.length;c+=1){let l=e[c];o.set(A(l),c);let u=0;for(let e=1;e<n.length;e+=1)n[e]<n[u]&&(u=e);let d=u*(t.columnWidth+t.gapX),f=n[u],p=Vt(l,t.columnWidth);r[c]={x:d,y:f},i[c]=p,n[u]=f+p+t.gapY,s=Math.max(s,f+p);let m=Math.floor(f/t.bucketPx),h=Math.floor((f+p)/t.bucketPx);for(let e=m;e<=h;e+=1){let t=a.get(e);t?t.push(c):a.set(e,[c])}}return{positions:r,heights:i,buckets:a,contentHeight:s,indexById:o}}function Ut(e){if(e.itemCount<=0)return[];if(e.viewportHeight<=0)return Array.from({length:e.itemCount},(e,t)=>t);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=new Set;for(let t=r;t<=i;t+=1){let n=e.buckets.get(t);if(n)for(let e of n)a.add(e)}return Array.from(a).sort((e,t)=>e-t)}function Wt(e,t,n){let r=new Map;for(let i of e){let e=t.get(A(i));if(e==null)continue;let a=n[e];a&&r.set(A(i),a)}return r}function Gt(e){return typeof e==`number`&&Number.isFinite(e)&&e>0}function Kt(e,t,n){return e.type!==`image`||n/t>=Lt?{width:t,height:n}:{width:t,height:t}}var qt=300,Jt=600,Yt=40,Xt=400;function Zt(e,t){return t===`top`?[...e].reverse():e}function Qt(e){return e<=0?Jt:Jt+Math.min((e-1)*Yt,Xt)}function $t(e){let t=e.itemHeight>0?e.itemHeight:e.columnWidth;return e.direction===`top`?e.scrollTop-t:e.scrollTop+e.viewportHeight+t}function en(t){let n=(0,e.ref)(new Set),r=(0,e.ref)(new Set),i=(0,e.ref)(new Map),a=(0,e.ref)(new Map),o=(0,e.ref)(new Map),s=(0,e.ref)(new Map),c=(0,e.ref)(new Set),l=new Set,u=new Set;(0,e.watch)(t.visibleIndices,e=>{if(!e.length)return;let o=[];for(let r of e){let e=t.items.value[r]?A(t.items.value[r]):null;!e||!n.value.has(e)||l.has(e)||(l.add(e),o.push(e))}if(!o.length)return;let s=Zt(o,a.value.get(o[0])??`bottom`),c=new Map(i.value);for(let e=0;e<s.length;e+=1)c.set(s[e],Math.min(e*Yt,Xt));i.value=c,tn(()=>{let e=new Set(r.value);for(let t of o)e.add(t);r.value=e}),nn(()=>{let e=new Set(n.value);for(let t of o)e.delete(t);n.value=e,g(()=>{let e=new Set(r.value),t=new Map(i.value),n=new Map(a.value);for(let r of o)e.delete(r),t.delete(r),n.delete(r),l.delete(r);r.value=e,i.value=t,a.value=n},Qt(o.length))})},{flush:`post`}),(0,e.onBeforeUnmount)(()=>{for(let e of u)clearTimeout(e);u.clear()});function d(e,t=`bottom`){if(!e.length)return;let r=new Set(n.value),i=new Map(a.value);for(let n of e){let e=A(n);r.add(e),i.set(e,t)}n.value=r,a.value=i}function f(e,n,r=qt){if(!e.size)return;let i=new Map,a=[];for(let[r,o]of e.entries()){if(n?.has(r))continue;let e=t.indexById.value.get(r);if(e==null)continue;let s=t.positions.value[e];if(!s)continue;let c=o.x-s.x,l=o.y-s.y;!c&&!l||(i.set(r,{dx:c,dy:l}),a.push(r))}if(!i.size)return;o.value=i,c.value=new Set;let l=new Map(s.value);for(let e of a)l.set(e,r);s.value=l,tn(()=>{c.value=new Set(a),tn(()=>{o.value=new Map})}),g(()=>{c.value=new Set;let e=new Map(s.value);for(let t of a)e.delete(t);s.value=e},r)}function p(e){if(r.value.has(e))return`transform ${Jt}ms ease-out`;if(c.value.has(e))return`transform ${s.value.get(e)??qt}ms ease-out`}function m(e){if(!r.value.has(e))return;let t=i.value.get(e)??0;return t>0?`${t}ms`:void 0}function h(e){let r=t.items.value[e],i=t.positions.value[e]??{x:0,y:0},s=t.heights.value[e]??t.columnWidth.value,c=r?A(r):null,l=c?o.value.get(c)??{dx:0,dy:0}:{dx:0,dy:0},u=c?a.value.get(c)??`bottom`:`bottom`,d=c&&n.value.has(c)?$t({columnWidth:t.columnWidth.value,direction:u,itemHeight:s,scrollTop:t.scrollTop.value,viewportHeight:t.viewportHeight.value}):i.y;return`translate3d(${i.x+l.dx}px, ${d+l.dy}px, 0)`}function g(e,t){let n=setTimeout(()=>{u.delete(n),e()},t);u.add(n)}return{getCardTransform:h,getCardTransition:p,getCardTransitionDelay:m,markEnter:d,playFlipMoveAnimation:f}}function tn(e){if(typeof requestAnimationFrame==`function`){requestAnimationFrame(()=>e());return}setTimeout(e,0)}function nn(e){tn(()=>tn(e))}function rn(e,t){return e?.clientHeight||Math.round(e?.getBoundingClientRect().height??0)||window.innerHeight||t||1}function an(e,t,n){return e?.clientWidth||Math.round(e?.getBoundingClientRect().width??0)||window.innerWidth||t||n}function on(e,t,n,r){return(e?.scrollHeight??r)-(t+n)}function sn(e,t){return{height:`${e}px`,transform:`translate3d(0, ${t}px, 0)`}}var cn=250,ln=1e3;function un(t){let n=(0,e.ref)(!1),r=(0,e.ref)(!1),i=(0,e.ref)(0),a=(0,e.ref)(0),o=(0,e.ref)(!1),s=(0,e.ref)(!1),c=0,l=null;(0,e.onBeforeUnmount)(()=>{b()});function u(){let e=n.value;if(n.value=t.isAtBoundary(),!n.value){!o.value&&!s.value&&(r.value=!0);return}!e&&r.value&&h()}function d(e){if(!x(e)||!t.isAtBoundary())return;let n=Date.now();n<c||(c=n+cn,h())}function f(){if(!_())return;let e=t.requestPage.value;if(typeof e!=`function`)return;a.value=i.value,r.value=!1,o.value=!0,s.value=!0;let n;try{n=e()}catch{v();return}Promise.resolve(n).catch(()=>{}).finally(()=>{!t.loading.value&&s.value&&v()})}function p(e){!e&&s.value&&v()}function m(e){!s.value||e<=0||(s.value=!1,y(t.getAnimationLockMs(e)))}function h(){g()&&(i.value+=1)}function g(){return t.hasPage.value&&!t.loading.value&&!o.value&&typeof t.requestPage.value==`function`}function _(){return t.hasPage.value&&n.value&&i.value>a.value&&!t.loading.value&&!o.value&&typeof t.requestPage.value==`function`}function v(){s.value=!1,y(ln)}function y(e){b(),o.value=!0,l=setTimeout(()=>{l=null,o.value=!1},Math.max(0,e))}function b(){l&&=(clearTimeout(l),null)}function x(e){return t.direction===`top`?e.deltaY<0:e.deltaY>0}return{maybeRequestPage:f,onItemsMutated:m,onLoadingChange:p,onWheel:d,syncBoundary:u}}var dn=600,Q=24,$=16,fn=300,pn=200,mn=200,hn=200,gn=300,_n=24,vn=48,yn=500,bn=1e3;function xn(t){let n=(0,e.ref)(null),r=(0,e.ref)(0),i=(0,e.ref)(typeof window>`u`?0:window.innerHeight||0),a=(0,e.ref)(typeof window>`u`?0:window.innerWidth||fn),o=(0,e.ref)([]),s=(0,e.ref)([]),c=(0,e.ref)(new Map),l=(0,e.ref)(0),u=(0,e.ref)(new Map),d=(0,e.ref)(null),f=(0,e.computed)(()=>Math.max(fn,a.value-Q*2)),p=(0,e.computed)(()=>zt(f.value,fn)),m=(0,e.computed)(()=>Bt(f.value,p.value,fn,$)),h=(0,e.computed)(()=>Sn(t.activeIndex.value,0,Math.max(0,t.items.value.length-1))),g=(0,e.computed)(()=>Ut({itemCount:t.items.value.length,viewportHeight:i.value,scrollTop:r.value,overscanPx:pn,bucketPx:dn,buckets:c.value})),_=(0,e.computed)(()=>g.value.map(e=>({item:t.items.value[e],index:e}))),v=(0,e.computed)(()=>{let e=l.value+Q*2,t=d.value??0;return Math.max(e,t,i.value)+hn}),y=(0,e.computed)(()=>t.loading.value?t.items.value.length>0?`Loading more items`:`Loading the first page`:!t.hasNextPage.value&&t.items.value.length>0?`End of list`:null),b=(0,e.computed)(()=>`${h.value+1} / ${t.items.value.length}`),x=(0,e.computed)(()=>Math.max(0,i.value-_n*2)),S=(0,e.computed)(()=>v.value>i.value+1&&x.value>0),C=(0,e.computed)(()=>{if(!S.value)return 0;let e=i.value/v.value*x.value;return Math.min(x.value,Math.max(vn,e))}),w=(0,e.computed)(()=>{if(!S.value)return _n;let e=Math.max(0,v.value-i.value);return _n+Math.max(0,x.value-C.value)*(e>0?Sn(r.value/e,0,1):0)}),T=en({items:t.items,visibleIndices:g,positions:o,heights:s,indexById:u,columnWidth:m,scrollTop:r,viewportHeight:i}),E=un({direction:`top`,getAnimationLockMs(e){return Math.max(yn,Qt(e))+bn},hasPage:t.hasPreviousPage,isAtBoundary(){return r.value<=Q+$},loading:t.loading,requestPage:t.requestPreviousPage}),D=un({direction:`bottom`,getAnimationLockMs(e){return Qt(e)+bn},hasPage:t.hasNextPage,isAtBoundary(){return G()<=mn},loading:t.loading,requestPage:t.requestNextPage}),O=null,k=0,j=null,M=!1;(0,e.watch)([()=>t.items.value.map(e=>A(e)),p,m],async([n],[i=[]])=>{let a=Wt(t.items.value,u.value,o.value),s=new Set(i),c=t.items.value.filter(e=>!s.has(A(e))),l=n.length>i.length&&i.length>0&&n[0]!==i[0],d=l&&r.value>Q+$?t.items.value[h.value]:null,f=d?A(d):null;N(),c.length>0&&(T.markEnter(c,l?`top`:`bottom`),l?E.onItemsMutated(c.length):D.onItemsMutated(c.length)),T.playFlipMoveAnimation(a,new Set(c.map(e=>A(e))),l?yn:void 0),f?(await(0,e.nextTick)(),R(f,a)):t.active.value&&i.length>0&&B()},{immediate:!0}),(0,e.watch)([()=>t.pendingAppendItems.value.map(e=>A(e)),p,m,i],([e])=>{ee(),e.length&&(d.value=q([...t.items.value,...t.pendingAppendItems.value]),J())},{immediate:!0}),(0,e.watch)(()=>t.restoreToken.value,async()=>{await(0,e.nextTick)(),L(h.value,`center`)}),(0,e.watch)(()=>t.loading.value,async n=>{!n&&!t.pendingAppendItems.value.length&&!j&&!M&&(d.value=null),E.onLoadingChange(n),D.onLoadingChange(n),await(0,e.nextTick)()}),(0,e.onMounted)(async()=>{H(),await(0,e.nextTick)(),h.value>0?L(h.value,`center`):z(),E.syncBoundary(),D.syncBoundary(),typeof ResizeObserver<`u`?(O=new ResizeObserver(()=>{H()}),n.value&&O.observe(n.value)):window.addEventListener(`resize`,H)}),(0,e.onBeforeUnmount)(()=>{O?.disconnect(),O=null,window.removeEventListener(`resize`,H),ee(),k&&=(cancelAnimationFrame(k),0)});function N(){let e=Ht(t.items.value,{columnCount:p.value,columnWidth:m.value,gapX:$,gapY:$,bucketPx:dn});o.value=e.positions.map(e=>({x:e.x+Q,y:e.y+Q})),s.value=e.heights,c.value=e.buckets,l.value=e.contentHeight,u.value=e.indexById}function P(){t.active.value&&(r.value=n.value?.scrollTop??0,i.value=U(),E.syncBoundary(),D.syncBoundary(),V(),!B()&&(k||=requestAnimationFrame(()=>{k=0,z()})))}function F(e){t.active.value&&(E.onWheel(e),D.onWheel(e),V())}function I(e){let n=t.items.value[e],r=n?A(n):``;return{height:`${s.value[e]??m.value}px`,width:`${m.value}px`,transition:r?T.getCardTransition(r):void 0,transitionDelay:r?T.getCardTransitionDelay(r):void 0,transform:T.getCardTransform(e)}}function L(e,t){let a=n.value,c=o.value[e],l=s.value[e];if(!a||!c||!l)return;let u=a.scrollTop,d=Math.max(0,v.value-i.value);t===`center`?u=c.y-(i.value-l)/2:c.y<a.scrollTop?u=c.y-Q:c.y+l>a.scrollTop+i.value&&(u=c.y+l-i.value+Q),a.scrollTop=Sn(u,0,d),r.value=a.scrollTop,z()}function R(e,t){let i=n.value,a=t.get(e),s=u.value.get(e),c=s==null?null:o.value[s];if(!i||!a||!c)return;let l=c.y-a.y;i.scrollTop+=l,r.value=i.scrollTop}function z(){if(!g.value.length||B())return;let e=r.value+i.value/2,n=h.value,a=1/0;for(let t of g.value){let r=o.value[t],i=s.value[t];if(!r||!i)continue;let c=r.y+i/2,l=Math.abs(c-e);l<a&&(a=l,n=t)}t.setActiveIndex(n)}function B(){let e=r.value<=Q+$,n=G()<=mn;return e?(t.setActiveIndex(0),!0):n?(t.setActiveIndex(Math.max(0,t.items.value.length-1)),!0):!1}function V(){E.maybeRequestPage(),D.maybeRequestPage()}function H(){i.value=U(),a.value=W()}function U(){return rn(n.value,i.value)}function W(){return an(n.value,a.value,fn)}function G(){return on(n.value,r.value,i.value,v.value)}function K(){return sn(C.value,w.value)}function q(e){return e.length?Ht(e,{columnCount:p.value,columnWidth:m.value,gapX:$,gapY:$,bucketPx:dn}).contentHeight+Q*2:0}function J(){let n=t.commitPendingAppend.value;typeof n==`function`&&(j=setTimeout(async()=>{j=null,M=!0;try{if(!t.pendingAppendItems.value.length)return;await n(),await(0,e.nextTick)(),await(0,e.nextTick)()}finally{d.value=null,M=!1}},gn))}function ee(){j&&=(clearTimeout(j),null)}return{columnWidth:m,containerHeight:v,footerStatusMessage:y,getCardStyle:I,getScrollbarThumbStyle:K,onScroll:P,onWheel:F,paginationLabel:b,renderedItems:_,resolvedActiveIndex:h,scrollToIndex:L,showScrollbar:S,scrollViewportRef:n}}function Sn(e,t,n){return Math.min(Math.max(e,t),n)}function Cn(e){if(e)try{e.removeAttribute(`src`),e.src=``}catch{}}function wn(e){if(e){try{e.currentTime=0}catch{}e.pause();try{e.removeAttribute(`src`),e.load()}catch{}}}function Tn(e,t){if(t)return e.bottom>t.top&&e.top<t.bottom;let n=window.innerHeight||document.documentElement.clientHeight||0;return e.bottom>0&&e.top<n}function En(e){if(!e)return null;try{return new URL(e,window.location.href).href}catch{return e}}var Dn=/\.(avif|gif|jpe?g|png|svg|webp)(\?|#|$)/i,On=/\.(m4v|mov|mp4|mpeg|ogg|ogv|webm)(\?|#|$)/i;function kn(e){let t=e.preview?.url??e.url,n=Rt(e),r=e.title?.trim()||Qe(e.type);return e.type!==`image`&&e.type!==`video`?{kind:`fallback`,url:null,width:n.width,height:n.height,label:r}:jn(e,t)?{kind:`video`,url:t,width:n.width,height:n.height,label:r}:An(e,t)?{kind:`image`,url:t,width:n.width,height:n.height,label:r}:{kind:`fallback`,url:null,width:n.width,height:n.height,label:r}}function An(e,t){return e.type!==`image`||typeof t!=`string`?!1:Dn.test(t)||Mn(t)}function jn(e,t){return e.type===`video`&&typeof t==`string`&&On.test(t)}function Mn(e){return/^https?:\/\//i.test(e)}function Nn(e){let t=0;return{cancel(){t&&typeof cancelAnimationFrame==`function`&&(cancelAnimationFrame(t),t=0)},schedule(){if(typeof requestAnimationFrame!=`function`){e();return}t||=requestAnimationFrame(()=>{t=0,e()})}}}var Pn=[`aria-label`],Fn={key:0,"data-testid":`vibe-list-card-spinner`,class:`pointer-events-none absolute inset-0 z-[4] grid place-items-center bg-black/18`},In={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]`},Ln=[`src`,`alt`],Rn=[`src`],zn=[`data-kind`],Bn={class:`grid justify-items-center gap-3 px-4 text-center`},Vn={class:`text-[0.68rem] font-bold uppercase tracking-[0.22em] text-[#f7f1ea]/72`},Hn={key:4,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))]`},Un={class:`inline-flex h-14 w-14 items-center justify-center border border-white/16 bg-black/20`},Wn={class:`pointer-events-none absolute inset-0 z-[3]`},Gn=(0,e.defineComponent)({__name:`ListCard`,props:{active:{type:Boolean,default:!1},assetLoadQueue:{default:null},index:{default:0},item:{},reportAssetError:{type:[Function,null],default:null},reportAssetLoad:{type:[Function,null],default:null},surfaceActive:{type:Boolean,default:!0}},emits:[`open`],setup(t,{emit:n}){let r=t,i=n,a=(0,e.computed)(()=>kn(r.item)),o=(0,e.ref)(!1),s=(0,e.ref)(!1),c=(0,e.ref)(!1),l=(0,e.ref)(a.value.kind===`fallback`),u=(0,e.ref)(null),d=(0,e.ref)(null),f=(0,e.ref)(null),p=(0,e.ref)(null),m=(0,e.ref)(null),g=(0,e.ref)(a.value.kind===`fallback`),_=(0,e.computed)(()=>g.value?r.surfaceActive?o.value?a.value.url:null:a.value.url:null),y=(0,e.computed)(()=>r.surfaceActive&&o.value&&(a.value.kind===`image`||a.value.kind===`video`)&&!!a.value.url),b=(0,e.computed)(()=>a.value.kind===`image`&&!!_.value),x=(0,e.computed)(()=>a.value.kind===`video`&&!!_.value),S=(0,e.computed)(()=>!!u.value),C=(0,e.computed)(()=>ze(u.value)),T=(0,e.computed)(()=>y.value&&!u.value&&(!g.value||!l.value)),E=null,D=null,O=new Set,k=w(),j=Nn(()=>{r.surfaceActive&&(B(),I(),L())});(0,e.watch)([_,()=>a.value.kind],()=>{let e=a.value.kind===`fallback`;l.value=e,u.value=null,e&&(g.value=!0)}),(0,e.watch)(y,()=>{I()}),(0,e.watch)([o,l,_],()=>{L()}),(0,e.watch)(()=>r.surfaceActive,e=>{if(!e){z(),L();return}j.schedule()}),(0,e.onMounted)(()=>{if(!f.value||typeof IntersectionObserver>`u`){p.value=null,o.value=!0,I();return}p.value=f.value.closest(`[data-testid="vibe-list-scroll"]`),p.value?.addEventListener(`scroll`,j.schedule,{passive:!0}),E=new IntersectionObserver(e=>{for(let t of e)t.target===f.value&&(r.surfaceActive&&B(t),I(),L())},{root:p.value,threshold:[0,1]}),E.observe(f.value)}),(0,e.onBeforeUnmount)(()=>{R(),p.value?.removeEventListener(`scroll`,j.schedule),E?.disconnect(),E=null,j.cancel()});function M(){K(d.value)&&(l.value=!0,u.value=null,V(_.value??r.item.url),z())}async function N(){if(!K(d.value))return;let e=_.value??r.item.url;l.value=!1,u.value=`generic`;let t=await Be(e);u.value=t,r.reportAssetError?.({item:r.item,occurrenceKey:A(r.item),url:e,kind:t,surface:`grid`}),z()}function P(){K(m.value)&&(l.value=!0,u.value=null,V(_.value??r.item.url),z(),L())}function F(){K(m.value)&&(l.value=!1)}function I(){if(a.value.kind===`fallback`){R(!1);return}if(!r.surfaceActive){z();return}if(!y.value){R();return}if(g.value||D){D?.refresh();return}D=(r.assetLoadQueue??k).request({assetType:a.value.kind,getPriority:G,onGrant(){g.value=!0,l.value=!1,u.value=null},url:a.value.url??r.item.url})}function L(){let e=m.value;if(!(!e||a.value.kind!==`video`)){if(u.value){e.pause();return}if(_.value&&o.value&&l.value){e.muted=!0,e.loop=!0,e.playsInline=!0,Ue(e);return}try{e.currentTime=0}catch{}e.pause()}}function R(e=!0){g.value=a.value.kind===`fallback`,u.value=null,l.value=a.value.kind===`fallback`,e&&(U(),W()),z()}function z(){D?.release(),D=null}function B(e){let t=f.value;if(!t){o.value=!0;return}o.value=Tn(e?.boundingClientRect??t.getBoundingClientRect(),e?.rootBounds??p.value?.getBoundingClientRect()??null)}function V(e){if(!e)return;let t=A(r.item),n=`${t}|${e}`;O.has(n)||(O.add(n),r.reportAssetLoad?.({item:r.item,occurrenceKey:t,surface:`grid`,url:e}))}function H(){if(!C.value)return;let e=A(r.item);O.forEach(t=>{t.startsWith(`${e}|`)&&O.delete(t)}),u.value=null,l.value=!1,g.value=!1,z(),I()}function U(){Cn(d.value)}function W(){wn(m.value)}function G(){let e=f.value;if(!e)return 1/0;let t=e.getBoundingClientRect();if(p.value){let e=p.value.getBoundingClientRect(),n=e.top+e.height/2;return Math.abs((t.top+t.bottom)/2-n)}let n=window.innerHeight/2;return Math.abs((t.top+t.bottom)/2-n)}function K(e){let t=En(_.value);return!e||!t?!1:En(`currentSrc`in e&&e.currentSrc||e.getAttribute(`src`))===t}function q(){i(`open`)}function J(){s.value=!0}function ee(e){let t=e.relatedTarget;f.value&&t instanceof Node&&f.value.contains(t)||(s.value=!1)}return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{ref_key:`rootRef`,ref:f,"data-testid":`vibe-list-card-inner`,class:(0,e.normalizeClass)([`group relative h-full w-full overflow-hidden border bg-[#0a0b0f] text-[#f7f1ea] transition-[border-color,transform] duration-300`,r.active?`border-white/28`:`border-white/12 hover:border-white/24`]),onFocusin:J,onFocusout:ee,onPointerenter:n[0]||=e=>c.value=!0,onPointerleave:n[1]||=e=>c.value=!1},[(0,e.createElementVNode)(`button`,{type:`button`,"data-testid":`vibe-list-card-open`,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]`,"aria-label":r.item.title||`Open item ${r.index+1}`,onClick:q},null,8,Pn),T.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Fn,[(0,e.createElementVNode)(`span`,In,[(0,e.createVNode)((0,e.unref)(h),{class:`h-5 w-5 animate-spin stroke-[1.9] text-[#f7f1ea]/78`,"aria-hidden":`true`})])])):(0,e.createCommentVNode)(``,!0),b.value&&_.value&&!S.value?((0,e.openBlock)(),(0,e.createElementBlock)(`img`,{key:1,ref_key:`imageRef`,ref:d,src:_.value,alt:a.value.label,draggable:`false`,class:(0,e.normalizeClass)([`block h-full w-full object-cover transition-opacity duration-300`,l.value?`pointer-events-none opacity-100`:`pointer-events-none opacity-0`]),onLoad:M,onError:N},null,42,Ln)):x.value&&_.value&&!S.value?((0,e.openBlock)(),(0,e.createElementBlock)(`video`,{key:2,ref_key:`videoRef`,ref:m,src:_.value,muted:``,loop:``,playsinline:``,preload:`metadata`,class:(0,e.normalizeClass)([`block h-full w-full object-cover transition-opacity duration-300`,l.value?`pointer-events-none opacity-100`:`pointer-events-none opacity-0`]),onCanplay:P,onError:N,onLoadstart:F,onPlaying:P,onStalled:F,onWaiting:F},null,42,Rn)):S.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:3,"data-testid":`vibe-list-card-error`,"data-kind":u.value,class:`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))]`},[(0,e.createElementVNode)(`div`,Bn,[(0,e.createVNode)((0,e.unref)(v),{class:`h-6 w-6 stroke-[1.8] text-[#f7f1ea]/78`,"aria-hidden":`true`}),(0,e.createElementVNode)(`span`,Vn,(0,e.toDisplayString)((0,e.unref)(Re)(u.value)),1),C.value?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:0,type:`button`,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`,onClick:(0,e.withModifiers)(H,[`stop`])},` Retry `)):(0,e.createCommentVNode)(``,!0)])],8,zn)):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Hn,[(0,e.createElementVNode)(`div`,Un,[(0,e.renderSlot)(t.$slots,`item-icon`,{icon:(0,e.unref)(X)(r.item.type),item:r.item},()=>[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)((0,e.unref)(X)(r.item.type)),{class:`h-6 w-6 stroke-[1.8] text-[#f7f1ea]/78`,"aria-hidden":`true`}))])])])),(0,e.createElementVNode)(`div`,Wn,[(0,e.renderSlot)(t.$slots,`grid-item-overlay`,{active:r.active,focused:s.value,hovered:c.value,index:r.index,item:r.item,openFullscreen:q})])],34))}}),Kn={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)]`},qn={class:`pointer-events-none absolute inset-x-0 top-0 z-[2] flex justify-end p-6`},Jn={"data-testid":`vibe-pagination`,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]`},Yn={class:`whitespace-nowrap`},Xn={key:0,class:`whitespace-nowrap border-l border-white/12 pl-2 text-[#f7f1ea]/56 min-[721px]:pl-3`},Zn=[`data-active`,`data-index`,`data-item-id`,`data-occurrence-key`],Qn={key:0,class:`pointer-events-none absolute inset-y-0 right-0 z-[3] hidden w-8 min-[1024px]:block`},$n={key:1,class:`pointer-events-none absolute inset-x-0 bottom-0 z-[2] px-5 pb-5 sm:px-6`},er={class:`mx-auto flex w-full max-w-[1600px] justify-center`},tr={key:1,class:`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]`},nr=(0,e.defineComponent)({__name:`ListSurface`,props:{active:{type:Boolean,default:!0},activeIndex:{default:0},assetLoadQueue:{default:null},commitPendingAppend:{type:[Function,null],default:null},hasNextPage:{type:Boolean,default:!1},hasPreviousPage:{type:Boolean,default:!1},items:{},loading:{type:Boolean,default:!1},pendingAppendItems:{default:()=>[]},paginationDetail:{default:null},reportAssetError:{type:[Function,null],default:null},reportAssetLoad:{type:[Function,null],default:null},requestNextPage:{type:[Function,null],default:null},requestPreviousPage:{type:[Function,null],default:null},restoreToken:{},showStatusBadges:{type:Boolean,default:!0}},emits:[`open-fullscreen`,`update:activeIndex`],setup(t,{emit:n}){let r=t,i=(0,e.useSlots)(),a=n,o=xn({active:(0,e.toRef)(r,`active`),items:(0,e.toRef)(r,`items`),activeIndex:(0,e.toRef)(r,`activeIndex`),loading:(0,e.toRef)(r,`loading`),hasNextPage:(0,e.toRef)(r,`hasNextPage`),hasPreviousPage:(0,e.toRef)(r,`hasPreviousPage`),paginationDetail:(0,e.toRef)(r,`paginationDetail`),pendingAppendItems:(0,e.toRef)(r,`pendingAppendItems`),commitPendingAppend:(0,e.toRef)(r,`commitPendingAppend`),requestNextPage:(0,e.toRef)(r,`requestNextPage`),requestPreviousPage:(0,e.toRef)(r,`requestPreviousPage`),restoreToken:(0,e.toRef)(r,`restoreToken`),setActiveIndex(e){a(`update:activeIndex`,e)}}),s=(0,e.computed)(()=>r.loading?r.items.length>0?`Loading more items`:`Loading the first page`:!r.hasNextPage&&r.items.length>0?`End of list`:null),c=(0,e.computed)(()=>!r.showStatusBadges||!s.value?null:{activeIndex:o.resolvedActiveIndex.value,kind:r.loading?`loading-more`:`end`,loading:r.loading,message:s.value,paginationDetail:r.paginationDetail,total:r.items.length}),l=(0,e.computed)(()=>!c.value||!i[`grid-status`]?[]:i[`grid-status`](c.value)),u=(0,e.computed)(()=>Z(l.value));return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Kn,[(0,e.createElementVNode)(`div`,qn,[(0,e.createElementVNode)(`span`,Jn,[(0,e.createElementVNode)(`span`,Yn,(0,e.toDisplayString)((0,e.unref)(o).paginationLabel.value),1),r.paginationDetail?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,Xn,(0,e.toDisplayString)(r.paginationDetail),1)):(0,e.createCommentVNode)(``,!0)])]),(0,e.createElementVNode)(`div`,{ref:(0,e.unref)(o).scrollViewportRef,"data-testid":`vibe-list-scroll`,class:`h-full min-h-0 overflow-y-auto overflow-x-hidden [overflow-anchor:none] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden`,onScroll:n[0]||=(...t)=>(0,e.unref)(o).onScroll&&(0,e.unref)(o).onScroll(...t),onWheel:n[1]||=(...t)=>(0,e.unref)(o).onWheel&&(0,e.unref)(o).onWheel(...t)},[(0,e.createElementVNode)(`div`,{"data-testid":`vibe-list-content`,class:`relative`,style:(0,e.normalizeStyle)({height:`${(0,e.unref)(o).containerHeight.value}px`})},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)((0,e.unref)(o).renderedItems.value,({item:n,index:s})=>((0,e.openBlock)(),(0,e.createElementBlock)(`article`,{key:(0,e.unref)(A)(n),"data-testid":`vibe-list-card`,"data-active":s===(0,e.unref)(o).resolvedActiveIndex.value?`true`:`false`,"data-index":s,"data-item-id":n.id,"data-occurrence-key":(0,e.unref)(A)(n),class:`absolute will-change-transform`,style:(0,e.normalizeStyle)((0,e.unref)(o).getCardStyle(s))},[(0,e.createVNode)(Gn,{active:s===(0,e.unref)(o).resolvedActiveIndex.value,"asset-load-queue":r.assetLoadQueue,index:s,item:n,"report-asset-error":r.reportAssetError,"report-asset-load":r.reportAssetLoad,"surface-active":r.active,onOpen:e=>a(`open-fullscreen`,s)},(0,e.createSlots)({_:2},[i[`grid-item-overlay`]?{name:`grid-item-overlay`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`grid-item-overlay`,(0,e.mergeProps)({ref_for:!0},n))]),key:`0`}:void 0,i[`item-icon`]?{name:`item-icon`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`item-icon`,(0,e.mergeProps)({ref_for:!0},n))]),key:`1`}:void 0]),1032,[`active`,`asset-load-queue`,`index`,`item`,`report-asset-error`,`report-asset-load`,`surface-active`,`onOpen`])],12,Zn))),128))],4)],544),(0,e.unref)(o).showScrollbar.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Qn,[n[2]||=(0,e.createElementVNode)(`div`,{class:`absolute bottom-6 right-3 top-6 w-px bg-white/8`},null,-1),(0,e.createElementVNode)(`div`,{"data-testid":`vibe-list-scrollbar-thumb`,class:(0,e.normalizeClass)([`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`]),style:(0,e.normalizeStyle)((0,e.unref)(o).getScrollbarThumbStyle())},null,6)])):(0,e.createCommentVNode)(``,!0),i[`grid-footer`]?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,$n,[(0,e.createElementVNode)(`div`,er,[(0,e.renderSlot)(t.$slots,`grid-footer`)])])):(0,e.createCommentVNode)(``,!0),c.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:2,class:(0,e.normalizeClass)([`pointer-events-none absolute inset-x-0 bottom-0 z-[3] flex justify-center px-6`,i[`grid-footer`]?`pb-24`:`pb-6`])},[u.value?(0,e.renderSlot)(t.$slots,`grid-status`,(0,e.normalizeProps)((0,e.mergeProps)({key:0},c.value))):((0,e.openBlock)(),(0,e.createElementBlock)(`span`,tr,(0,e.toDisplayString)(c.value.message),1))],2)):(0,e.createCommentVNode)(``,!0)]))}}),rr=[`data-surface-mode`],ir={key:1,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`},ar={key:2,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`},or=[`data-visible`,`inert`],sr=[`data-visible`,`inert`],cr=(0,e.defineComponent)({name:`VibeLayout`,__name:`Layout`,props:{items:{},activeIndex:{},fillDelayMs:{},fillDelayStepMs:{},initialState:{},loading:{type:Boolean},hasNextPage:{type:Boolean},mode:{},resolve:{},initialCursor:{},pageSize:{},assetLoadLimits:{},hasPreviousPage:{type:Boolean},paginationDetail:{},requestNextPage:{},requestPreviousPage:{},showStatusBadges:{type:Boolean,default:!0},surfaceMode:{}},emits:[`asset-errors`,`asset-loads`,`update:activeIndex`,`update:surfaceMode`],setup(t,{expose:n,emit:r}){let i=t,a=(0,e.useSlots)(),o=r,s=w(i.assetLoadLimits),c=fe(i,o),l=y(e=>{o(`asset-errors`,e)}),u=b(e=>{o(`asset-loads`,e)});return(0,e.onBeforeUnmount)(()=>{l.stop(),u.stop()}),(0,e.watch)(()=>i.assetLoadLimits,e=>{s.setLimits(e)},{deep:!0}),n({cancel:c.cancel,clearRemoved:c.clearRemoved,getRemovedIds:c.getRemovedIds,loadNext:c.loadNext,loadPrevious:c.loadPrevious,remove:c.remove,restore:c.restore,retry:c.retry,status:c.status,undo:c.undo}),(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`section`,{"data-testid":`vibe`,"data-surface-mode":(0,e.unref)(c).surfaceMode.value,class:`relative h-full min-h-0 overflow-hidden bg-[#05060a] text-[#f7f1ea]`},[(0,e.unref)(c).canRetryInitialLoad.value&&!a[`empty-state`]?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:0,type:`button`,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`,onClick:n[0]||=(...t)=>(0,e.unref)(c).retryInitialLoad&&(0,e.unref)(c).retryInitialLoad(...t)},` Retry `)):(0,e.unref)(c).errorMessage.value&&(0,e.unref)(c).items.value.length>0?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,ir,(0,e.toDisplayString)((0,e.unref)(c).errorMessage.value),1)):(0,e.createCommentVNode)(``,!0),(0,e.unref)(c).items.value.length===0?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,ar,[a[`empty-state`]?(0,e.renderSlot)(t.$slots,`empty-state`,{key:0,canRetry:(0,e.unref)(c).canRetryInitialLoad.value,loading:(0,e.unref)(c).loading.value,retry:(0,e.unref)(c).retryInitialLoad}):(0,e.unref)(c).loading.value?((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:1},[(0,e.createVNode)((0,e.unref)(h),{class:`size-10 animate-spin text-[#f7f1ea]/82`,"aria-hidden":`true`}),n[1]||=(0,e.createElementVNode)(`p`,{class:`m-0 text-[0.9rem] font-semibold uppercase tracking-[0.22em] text-[#f7f1ea]/72`},` Loading... `,-1)],64)):((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:2},[n[2]||=(0,e.createElementVNode)(`p`,{class:`m-0 text-[0.78rem] font-bold uppercase tracking-[0.28em] text-[#f7f1ea]/68`},` Viewer ready `,-1),n[3]||=(0,e.createElementVNode)(`h2`,{class:`m-0 text-[clamp(2rem,4.4vw,3.6rem)] leading-[0.95] tracking-[-0.05em]`},` No items available `,-1),n[4]||=(0,e.createElementVNode)(`p`,{class:`m-0 text-[clamp(0.98rem,1.3vw,1.12rem)] leading-[1.8] text-[#f7f1ea]/70`},` Attach items to VibeLayout to turn this screen into the viewer. `,-1)],64))])):(0,e.unref)(c).isDesktop.value?((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:3},[(0,e.createVNode)(e.Transition,{appear:``,"enter-active-class":`transition-[opacity,transform] duration-300 ease-out`,"enter-from-class":`translate-y-3 opacity-0`,"enter-to-class":`translate-y-0 opacity-100`,"leave-active-class":`transition-[opacity,transform] duration-300 ease-out`,"leave-from-class":`translate-y-0 opacity-100`,"leave-to-class":`translate-y-3 opacity-0`},{default:(0,e.withCtx)(()=>[(0,e.withDirectives)((0,e.createElementVNode)(`div`,{"data-testid":`vibe-list-surface`,"data-visible":(0,e.unref)(c).surfaceMode.value===`list`?`true`:`false`,inert:(0,e.unref)(c).surfaceMode.value!==`list`,class:`absolute inset-0 z-[2]`},[(0,e.createVNode)(nr,{active:(0,e.unref)(c).surfaceMode.value===`list`,items:(0,e.unref)(c).items.value,"active-index":(0,e.unref)(c).activeIndex.value,"asset-load-queue":(0,e.unref)(s),loading:(0,e.unref)(c).loading.value,"has-next-page":(0,e.unref)(c).hasNextPage.value,"has-previous-page":(0,e.unref)(c).hasPreviousPage.value,"pending-append-items":(0,e.unref)(c).pendingAppendItems.value,"commit-pending-append":(0,e.unref)(c).commitPendingAppend,"pagination-detail":(0,e.unref)(c).paginationDetail.value,"report-asset-error":(0,e.unref)(l).report,"report-asset-load":(0,e.unref)(u).report,"request-next-page":(0,e.unref)(c).prefetchNextPage,"request-previous-page":(0,e.unref)(c).prefetchPreviousPage,"restore-token":(0,e.unref)(c).listRestoreToken.value,"show-status-badges":i.showStatusBadges!==!1,onOpenFullscreen:(0,e.unref)(c).openFullscreen,"onUpdate:activeIndex":(0,e.unref)(c).setActiveIndex},(0,e.createSlots)({_:2},[a[`grid-footer`]?{name:`grid-footer`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(t.$slots,`grid-footer`)]),key:`0`}:void 0,a[`grid-item-overlay`]?{name:`grid-item-overlay`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`grid-item-overlay`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`1`}:void 0,i.showStatusBadges!==!1&&a[`grid-status`]?{name:`grid-status`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`grid-status`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`2`}:void 0,a[`item-icon`]?{name:`item-icon`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`item-icon`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`3`}:void 0]),1032,[`active`,`items`,`active-index`,`asset-load-queue`,`loading`,`has-next-page`,`has-previous-page`,`pending-append-items`,`commit-pending-append`,`pagination-detail`,`report-asset-error`,`report-asset-load`,`request-next-page`,`request-previous-page`,`restore-token`,`show-status-badges`,`onOpenFullscreen`,`onUpdate:activeIndex`])],8,or),[[e.vShow,(0,e.unref)(c).surfaceMode.value===`list`]])]),_:3}),(0,e.createVNode)(e.Transition,{appear:``,"enter-active-class":`transition-[opacity,transform] duration-300 ease-out`,"enter-from-class":`-translate-y-3 opacity-0`,"enter-to-class":`translate-y-0 opacity-100`,"leave-active-class":`transition-[opacity,transform] duration-300 ease-out`,"leave-from-class":`translate-y-0 opacity-100`,"leave-to-class":`-translate-y-3 opacity-0`},{default:(0,e.withCtx)(()=>[(0,e.withDirectives)((0,e.createElementVNode)(`div`,{"data-testid":`vibe-fullscreen-surface`,"data-visible":(0,e.unref)(c).surfaceMode.value===`fullscreen`?`true`:`false`,inert:(0,e.unref)(c).surfaceMode.value!==`fullscreen`,class:`absolute inset-0 z-[3]`},[(0,e.createVNode)(Ft,{items:(0,e.unref)(c).items.value,active:(0,e.unref)(c).surfaceMode.value===`fullscreen`,"active-index":(0,e.unref)(c).activeIndex.value,loading:(0,e.unref)(c).loading.value,"has-next-page":(0,e.unref)(c).hasNextPage.value,"pagination-detail":(0,e.unref)(c).paginationDetail.value,"report-asset-error":(0,e.unref)(l).report,"report-asset-load":(0,e.unref)(u).report,"show-back-to-list":(0,e.unref)(c).showBackToList.value,"show-status-badges":i.showStatusBadges!==!1,onBackToList:(0,e.unref)(c).returnToList,"onUpdate:activeIndex":(0,e.unref)(c).setActiveIndex},(0,e.createSlots)({_:2},[a[`fullscreen-overlay`]?{name:`fullscreen-overlay`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`fullscreen-overlay`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`0`}:void 0,a[`fullscreen-aside`]?{name:`fullscreen-aside`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`fullscreen-aside`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`1`}:void 0,a[`fullscreen-header-actions`]?{name:`fullscreen-header-actions`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`fullscreen-header-actions`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`2`}:void 0,i.showStatusBadges!==!1&&a[`fullscreen-status`]?{name:`fullscreen-status`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`fullscreen-status`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`3`}:void 0,a[`item-icon`]?{name:`item-icon`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`item-icon`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`4`}:void 0]),1032,[`items`,`active`,`active-index`,`loading`,`has-next-page`,`pagination-detail`,`report-asset-error`,`report-asset-load`,`show-back-to-list`,`show-status-badges`,`onBackToList`,`onUpdate:activeIndex`])],8,sr),[[e.vShow,(0,e.unref)(c).surfaceMode.value===`fullscreen`]])]),_:3})],64)):((0,e.openBlock)(),(0,e.createBlock)(Ft,{key:4,items:(0,e.unref)(c).items.value,active:!0,"active-index":(0,e.unref)(c).activeIndex.value,loading:(0,e.unref)(c).loading.value,"has-next-page":(0,e.unref)(c).hasNextPage.value,"pagination-detail":(0,e.unref)(c).paginationDetail.value,"report-asset-error":(0,e.unref)(l).report,"report-asset-load":(0,e.unref)(u).report,"show-back-to-list":!1,"show-status-badges":i.showStatusBadges!==!1,onBackToList:(0,e.unref)(c).returnToList,"onUpdate:activeIndex":(0,e.unref)(c).setActiveIndex},(0,e.createSlots)({_:2},[a[`fullscreen-overlay`]?{name:`fullscreen-overlay`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`fullscreen-overlay`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`0`}:void 0,a[`fullscreen-aside`]?{name:`fullscreen-aside`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`fullscreen-aside`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`1`}:void 0,a[`fullscreen-header-actions`]?{name:`fullscreen-header-actions`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`fullscreen-header-actions`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`2`}:void 0,i.showStatusBadges!==!1&&a[`fullscreen-status`]?{name:`fullscreen-status`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`fullscreen-status`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`3`}:void 0,a[`item-icon`]?{name:`item-icon`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`item-icon`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`4`}:void 0]),1032,[`items`,`active-index`,`loading`,`has-next-page`,`pagination-detail`,`report-asset-error`,`report-asset-load`,`show-status-badges`,`onBackToList`,`onUpdate:activeIndex`]))],8,rr))}}),lr={install(e){e.component(`VibeLayout`,cr)}};exports.VibeLayout=cr,exports.VibePlugin=lr,exports.default=lr;
|
package/lib/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export declare const VibeLayout: import("vue").DefineSetupFnComponent<Record<str
|
|
|
8
8
|
'fullscreen-header-actions'?: (props: import("./components/viewer-core/surfaceSlots").VibeSurfaceSlotProps) => unknown;
|
|
9
9
|
'fullscreen-overlay'?: (props: import("./components/viewer-core/surfaceSlots").VibeSurfaceSlotProps) => unknown;
|
|
10
10
|
'fullscreen-status'?: (props: import("./components/viewer-core/surfaceSlots").VibeFullscreenStatusSlotProps) => unknown;
|
|
11
|
+
'empty-state'?: (props: import("./components/viewer-core/surfaceSlots").VibeEmptyStateSlotProps) => unknown;
|
|
11
12
|
'grid-footer'?: () => unknown;
|
|
12
13
|
'grid-item-overlay'?: (props: {
|
|
13
14
|
active: boolean;
|
package/lib/index.js
CHANGED
|
@@ -3070,15 +3070,20 @@ var vr = ["aria-label"], yr = {
|
|
|
3070
3070
|
"data-testid": "vibe",
|
|
3071
3071
|
"data-surface-mode": j(g).surfaceMode.value,
|
|
3072
3072
|
class: "relative h-full min-h-0 overflow-hidden bg-[#05060a] text-[#f7f1ea]"
|
|
3073
|
-
}, [j(g).canRetryInitialLoad.value ? (S(), s("button", {
|
|
3073
|
+
}, [j(g).canRetryInitialLoad.value && !p["empty-state"] ? (S(), s("button", {
|
|
3074
3074
|
key: 0,
|
|
3075
3075
|
type: "button",
|
|
3076
3076
|
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",
|
|
3077
3077
|
onClick: n[0] ||= (...e) => j(g).retryInitialLoad && j(g).retryInitialLoad(...e)
|
|
3078
|
-
}, " Retry ")) : j(g).errorMessage.value && j(g).items.value.length > 0 ? (S(), s("div", Hr, k(j(g).errorMessage.value), 1)) : o("", !0), j(g).items.value.length === 0 ? (S(), s("div", Ur, [
|
|
3078
|
+
}, " Retry ")) : j(g).errorMessage.value && j(g).items.value.length > 0 ? (S(), s("div", Hr, k(j(g).errorMessage.value), 1)) : o("", !0), j(g).items.value.length === 0 ? (S(), s("div", Ur, [p["empty-state"] ? D(e.$slots, "empty-state", {
|
|
3079
|
+
key: 0,
|
|
3080
|
+
canRetry: j(g).canRetryInitialLoad.value,
|
|
3081
|
+
loading: j(g).loading.value,
|
|
3082
|
+
retry: j(g).retryInitialLoad
|
|
3083
|
+
}) : j(g).loading.value ? (S(), s(t, { key: 1 }, [u(j(ne), {
|
|
3079
3084
|
class: "size-10 animate-spin text-[#f7f1ea]/82",
|
|
3080
3085
|
"aria-hidden": "true"
|
|
3081
|
-
}), n[1] ||= c("p", { class: "m-0 text-[0.9rem] font-semibold uppercase tracking-[0.22em] text-[#f7f1ea]/72" }, " Loading... ", -1)], 64)) : (S(), s(t, { key:
|
|
3086
|
+
}), n[1] ||= c("p", { class: "m-0 text-[0.9rem] font-semibold uppercase tracking-[0.22em] text-[#f7f1ea]/72" }, " Loading... ", -1)], 64)) : (S(), s(t, { key: 2 }, [
|
|
3082
3087
|
n[2] ||= c("p", { class: "m-0 text-[0.78rem] font-bold uppercase tracking-[0.28em] text-[#f7f1ea]/68" }, " Viewer ready ", -1),
|
|
3083
3088
|
n[3] ||= c("h2", { class: "m-0 text-[clamp(2rem,4.4vw,3.6rem)] leading-[0.95] tracking-[-0.05em]" }, " No items available ", -1),
|
|
3084
3089
|
n[4] ||= c("p", { class: "m-0 text-[clamp(0.98rem,1.3vw,1.12rem)] leading-[1.8] text-[#f7f1ea]/70" }, " Attach items to VibeLayout to turn this screen into the viewer. ", -1)
|