@wyxos/vibe 3.1.35 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +531 -309
- package/lib/components/CardRegion.vue.d.ts +15 -0
- package/lib/components/GalleryFooter.vue.d.ts +17 -0
- package/lib/components/GalleryScrollbar.vue.d.ts +9 -0
- package/lib/components/MasonryFeed.vue.d.ts +24 -0
- package/lib/components/MediaCard.vue.d.ts +35 -0
- package/lib/components/MediaControls.vue.d.ts +22 -0
- package/lib/components/ReelAutoAdvanceProgress.vue.d.ts +11 -0
- package/lib/components/ReelFeed.vue.d.ts +28 -0
- package/lib/components/ReelLayout.vue.d.ts +28 -0
- package/lib/components/VibeSurface.vue.d.ts +35 -0
- package/lib/core/autoScroll.d.ts +26 -0
- package/lib/core/autofill.d.ts +35 -0
- package/lib/core/backendAutofill.d.ts +5 -0
- package/lib/core/backendFill.d.ts +5 -0
- package/lib/core/createVibe.d.ts +2 -0
- package/lib/core/feed.d.ts +40 -0
- package/lib/core/fill.d.ts +29 -0
- package/lib/core/fillController.d.ts +28 -0
- package/lib/core/initialAutofill.d.ts +12 -0
- package/lib/core/initialRuntimeState.d.ts +3 -0
- package/lib/core/masonry.d.ts +37 -0
- package/lib/core/mediaAsset.d.ts +5 -0
- package/lib/core/mediaPreview.d.ts +3 -0
- package/lib/core/mediaType.d.ts +1 -0
- package/lib/core/options.d.ts +3 -0
- package/lib/core/page.d.ts +3 -0
- package/lib/core/reelAutoAdvance.d.ts +5 -0
- package/lib/core/reelInfoSheet.d.ts +3 -0
- package/lib/core/requestDelay.d.ts +24 -0
- package/lib/core/responsiveLayout.d.ts +13 -0
- package/lib/core/runtime.d.ts +23 -0
- package/lib/core/scrollbar.d.ts +15 -0
- package/lib/core/vibeRouting.d.ts +11 -0
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +3 -73
- package/lib/index.js +2587 -4959
- package/lib/style.css +1 -2
- package/lib/types.d.ts +323 -0
- package/package.json +13 -7
- package/lib/components/FullscreenFooter.vue.d.ts +0 -22
- package/lib/components/FullscreenForwardFillPlaceholder.vue.d.ts +0 -29
- package/lib/components/FullscreenHeader.vue.d.ts +0 -25
- package/lib/components/FullscreenMediaBar.vue.d.ts +0 -26
- package/lib/components/FullscreenSurface.vue.d.ts +0 -83
- package/lib/components/Layout.vue.d.ts +0 -48
- package/lib/components/ListCard.vue.d.ts +0 -44
- package/lib/components/ListSurface.vue.d.ts +0 -87
- package/lib/components/SurfaceEmptyState.vue.d.ts +0 -21
- package/lib/components/viewer-core/assetErrors.d.ts +0 -30
- package/lib/components/viewer-core/assetState.d.ts +0 -14
- package/lib/components/viewer-core/autoBuckets.d.ts +0 -24
- package/lib/components/viewer-core/autoResolveBucketFactory.d.ts +0 -15
- package/lib/components/viewer-core/autoResolveCursors.d.ts +0 -15
- package/lib/components/viewer-core/autoResolveFillUntil.d.ts +0 -47
- package/lib/components/viewer-core/autoResolveHelpers.d.ts +0 -20
- package/lib/components/viewer-core/autoResolveLoading.d.ts +0 -44
- package/lib/components/viewer-core/autoResolveState.d.ts +0 -72
- package/lib/components/viewer-core/dom.d.ts +0 -2
- package/lib/components/viewer-core/dominantImageTone.d.ts +0 -6
- package/lib/components/viewer-core/emptyVisiblePrefetch.d.ts +0 -18
- package/lib/components/viewer-core/fillDelay.d.ts +0 -10
- package/lib/components/viewer-core/fillProgress.d.ts +0 -12
- package/lib/components/viewer-core/format.d.ts +0 -1
- package/lib/components/viewer-core/fullscreenPreviews.d.ts +0 -8
- package/lib/components/viewer-core/itemIdentity.d.ts +0 -6
- package/lib/components/viewer-core/listCardAsset.d.ts +0 -4
- package/lib/components/viewer-core/listPreview.d.ts +0 -10
- package/lib/components/viewer-core/loadError.d.ts +0 -5
- package/lib/components/viewer-core/masonryBoundaryLock.d.ts +0 -5
- package/lib/components/viewer-core/masonryItemMutation.d.ts +0 -35
- package/lib/components/viewer-core/masonryLayout.d.ts +0 -64
- package/lib/components/viewer-core/masonryLayoutState.d.ts +0 -22
- package/lib/components/viewer-core/masonryPendingAppend.d.ts +0 -19
- package/lib/components/viewer-core/masonryScrollBehavior.d.ts +0 -37
- package/lib/components/viewer-core/masonryViewport.d.ts +0 -7
- package/lib/components/viewer-core/media.d.ts +0 -4
- package/lib/components/viewer-core/mediaPlayback.d.ts +0 -1
- package/lib/components/viewer-core/nativeVideoFullscreen.d.ts +0 -2
- package/lib/components/viewer-core/removalState.d.ts +0 -71
- package/lib/components/viewer-core/slotContent.d.ts +0 -2
- package/lib/components/viewer-core/surfaceSlots.d.ts +0 -33
- package/lib/components/viewer-core/surfaceStatus.d.ts +0 -18
- package/lib/components/viewer-core/theme.d.ts +0 -3
- package/lib/components/viewer-core/useActivation.d.ts +0 -8
- package/lib/components/viewer-core/useAssetLoadQueue.d.ts +0 -17
- package/lib/components/viewer-core/useAutoResolveSource.d.ts +0 -68
- package/lib/components/viewer-core/useController.d.ts +0 -98
- package/lib/components/viewer-core/useDataSource.d.ts +0 -99
- package/lib/components/viewer-core/useEdgeBoundary.d.ts +0 -18
- package/lib/components/viewer-core/useFullscreen.d.ts +0 -1
- package/lib/components/viewer-core/useFullscreenAssetEvents.d.ts +0 -24
- package/lib/components/viewer-core/useFullscreenDominantTone.d.ts +0 -12
- package/lib/components/viewer-core/useFullscreenPreloadController.d.ts +0 -18
- package/lib/components/viewer-core/useFullscreenSurfaceMedia.d.ts +0 -32
- package/lib/components/viewer-core/useListCardHealthCheck.d.ts +0 -20
- package/lib/components/viewer-core/useMasonryList.d.ts +0 -85
- package/lib/components/viewer-core/useMasonryMotion.d.ts +0 -76
- package/lib/components/viewer-core/useMedia.d.ts +0 -44
- package/lib/components/viewer-core/useSurfaceEmptyState.d.ts +0 -15
- package/lib/components/viewer-core/useVideoFullscreen.d.ts +0 -9
- package/lib/components/viewer-core/useViewer.d.ts +0 -78
- package/lib/components/viewer-core/virtualization.d.ts +0 -18
- package/lib/components/viewer.d.ts +0 -23
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(`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`}]]),d=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`}]]),f=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`}]]),p=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`}]]),m=l(`loader-circle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]),h=l(`maximize-2`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]),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`}]]),y=l(`volume-1`,[[`path`,{d:`M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z`,key:`uqj9uw`}],[`path`,{d:`M16 9a5 5 0 0 1 0 6`,key:`1q6k2b`}]]),b=l(`volume-2`,[[`path`,{d:`M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z`,key:`uqj9uw`}],[`path`,{d:`M16 9a5 5 0 0 1 0 6`,key:`1q6k2b`}],[`path`,{d:`M19.364 18.364a9 9 0 0 0 0-12.728`,key:`ijwkga`}]]),x=l(`volume-x`,[[`path`,{d:`M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z`,key:`uqj9uw`}],[`line`,{x1:`22`,x2:`16`,y1:`9`,y2:`15`,key:`1ewh16`}],[`line`,{x1:`16`,x2:`22`,y1:`9`,y2:`15`,key:`5ykzw1`}]]),S=l(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]);function C(e,t=150){return T(e,e=>`${e.surface}|${e.occurrenceKey}|${e.url}|${e.kind}`,t)}function w(e,t=150){return T(e,e=>`${e.surface}|${e.occurrenceKey}|${e.url}`,t)}function T(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}}function E(e){return e instanceof HTMLElement&&[`INPUT`,`TEXTAREA`,`SELECT`].includes(e.tagName)}function D(e){return e instanceof HTMLElement&&!!e.closest(`[data-swipe-lock], input, textarea, select, a`)}function O(e){return e===`filling`||e===`initializing`||e===`loading`||e===`refreshing`}function k(e){return!e||!Number.isFinite(e)||e<1?25:Math.floor(e)}function A(e){return e??`__vibe_initial_cursor__`}function j(e,t,n){return Math.min(Math.max(e,t),n)}var M=`__vibeOccurrenceKey`;function N(e){let t=e[M];return typeof t==`string`&&t.length>0?t:e.id}function P(e,t,n){let r=new Map,i=[],a=n;for(let e of t){let t=r.get(e.id),n=N(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(F(t,e))}return{items:i,nextSequence:a}}function F(e,t){return N(e)===t?e:{...e,[M]:t}}function I(){let t=(0,e.ref)(new Set),n=(0,e.ref)([]);function r(e){let r=L(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=L(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 L(e){let t=Array.isArray(e)?e:[e];return Array.from(new Set(t.filter(e=>typeof e==`string`&&e.length>0)))}function R(e){return e.flatMap(e=>e.items)}function z(e,t){return t.size?e.filter(e=>!t.has(e.id)):e}function B(e,t){return z(e.items,t)}function V(e,t){return B(e,t).length}function H(e,t,n){if(n<0)return null;let r=0;for(let i of e){let e=B(i,t),a=r+e.length;if(n<a)return i.cursor;r=a}return null}function U(e,t,n){let r=[...e],i=r.findIndex(e=>e.cursor===t);return i>=0&&r.splice(i,1,n),r}function W(e,t,n){let r=P(e,t,n);return{items:r.items,nextSequence:r.nextSequence}}function G(e,t,n){let r=new Map,i=e.map(e=>({item:e,matchIndex:null,occurrenceKey:null})),a=new Map,o=[],s=n;for(let[e,n]of t.entries()){let t=r.get(n.id),i={index:e,occurrenceKey:N(n)};t?t.push(i):r.set(n.id,[i])}for(let e of i){let t=r.get(e.item.id)?.shift();t&&(e.matchIndex=t.index,e.occurrenceKey=t.occurrenceKey)}for(let e of i){if(e.matchIndex!==null&&e.occurrenceKey){a.set(e.matchIndex,K(e.item,e.occurrenceKey));continue}let t=K(e.item,`vibe-occurrence-${s+=1}`);o.push(t)}let c=t.map((e,t)=>a.get(t)??e);return{insertedCount:o.length,items:[...c,...o],nextSequence:s}}function K(e,t){return N(e)===t?e:{...e,__vibeOccurrenceKey:t}}function q(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 J(e){let t=W(e.nextItems,e.previousItems,e.sequence);return{bucket:{cursor:e.cursor,items:t.items,nextCursor:e.nextCursor,nextCursorExhausted:e.nextCursorExhausted??!1,previousCursor:e.previousCursor},nextSequence:t.nextSequence}}function Y(e){let t=G(e.nextItems,e.previousItems,e.sequence);return{bucket:{cursor:e.cursor,items:t.items,nextCursor:e.nextCursor,nextCursorExhausted:e.nextCursorExhausted??!1,previousCursor:e.previousCursor},insertedCount:t.insertedCount,nextSequence:t.nextSequence}}function X(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+V(t,n),0)}}function ee(e){let t=J({cursor:e.initialState.cursor,nextCursor:e.initialState.nextCursor??null,nextCursorExhausted:!1,nextItems:e.initialState.items,previousCursor:e.initialState.previousCursor??null,previousItems:[],sequence:e.sequence}),n=z(t.bucket.items,e.removedIds);return{activeIndex:j(e.initialState.activeIndex??0,0,Math.max(0,n.length-1)),buckets:[t.bucket],nextSequence:t.nextSequence}}function te(e,t){let n=e[j(t,0,Math.max(0,e.length-1))];return n?N(n):null}function ne(e,t,n=null){if(!e.length)return 0;let r=n?e.findIndex(e=>N(e)===n):-1;return r>=0?r:j(t,0,e.length-1)}function re(e,t,n){return e?V(e,t)<n:!1}function ie(e){return t=>{let n=J({cursor:t.cursor,nextCursor:t.nextCursor,nextCursorExhausted:t.nextCursorExhausted??!1,nextItems:t.nextItems,previousCursor:t.previousCursor,previousItems:t.previousItems,sequence:e.getSequence()});return e.setSequence(n.nextSequence),n.bucket}}function ae(e,t){return e.find(e=>V(e,t)>0)??e[0]??null}function oe(e,t){for(let n=e.length-1;n>=0;--n){let r=e[n];if(V(r,t)>0)return r}return e[e.length-1]??null}function se(e){return!e?.nextCursor||!e.nextCursorExhausted?null:e.nextCursor}function ce(e,t,n,r){return t===void 0||n===null?e:e.map(e=>e.cursor!==t||e.nextCursor!==n?e:{...e,nextCursorExhausted:r})}function le(e,t,n){return n||e!==`forward`||t===null?{cursor:n,exhausted:!1}:{cursor:t,exhausted:!0}}function ue(e,t){if(t)return{cursor:t,exhausted:!1};let n=e.nextCursor??e.cursor;return{cursor:n,exhausted:!!n}}function de(e,t){let n=e.findIndex(e=>V(e,t)>0);if(n<0)return e;let r=n;for(let i=e.length-1;i>=n;--i)if(V(e[i],t)>0){r=i;break}return e.slice(n,r+1)}function fe(e){async function t(t){if(typeof t==`number`){await i(t);return}await a(`cursor`,()=>e.getHasNextPage()&&e.getNextCursor()!==t)}async function n(){e.getHasNextPage()||await e.refreshTrailingBoundaryBeforeEnd(),await a(`end`,()=>e.getHasNextPage())}function r(){e.isFillUntilActive.value=!1,e.fillMode.value=`idle`}async function i(t){let n=pe(t);n<=0||await a(`count`,()=>e.getHasNextPage()&&n>0,()=>{--n},n)}async function a(t,n,r=()=>{},i=null){if(!e.getResolve()||e.getIsManualPageLoadingLocked()||e.isFillUntilActive.value||e.getIsLoading()||!n())return;e.isFillUntilActive.value=!0,s(t,i),e.clearFillDelay(!0);let a=0;try{for(;n();){let t=e.getNextCursor();if(!t||!e.getHasNextPage()||!await o(t,e.getTrailingBoundaryBucket()?.cursor??null)||e.operationPhase.value===`failed`||(r(),e.fillCompletedCalls.value+=1,c(),l(),!n()))break;let i=e.getNextCursor();if(!i||!e.getHasNextPage()||(a+=1,e.operationPhase.value=`filling`,e.fillCollectedCount.value=e.getVisibleItemCount(),e.fillCursor.value=i,e.fillTargetCount.value=null,await e.waitFillDelay(e.getFillDelayMs(a)),!e.isFillUntilActive.value))break}}finally{e.isFillUntilActive.value=!1,e.fillCollectedCount.value=null,e.fillCursor.value=null,e.fillTargetCount.value=null,e.fillMode.value=`idle`,e.clearFillDelay(!0),e.operationPhase.value!==`failed`&&e.finishLoadPhase()}}async function o(t,n){e.setLastLoadAttempt(async()=>{await o(t,n)});let r=e.getResolve();if(!r)return!1;let i=A(t);if(e.inFlightCursors.has(i))return!1;let a=e.nextOperationId(),s=typeof AbortController>`u`?null:new AbortController;e.inFlightCursors.add(i),e.setActiveResolveController(s),e.errorMessage.value=null,e.operationPhase.value=`filling`,e.fillCollectedCount.value=e.getVisibleItemCount(),e.fillCursor.value=t,e.fillTargetCount.value=null,e.pendingAppendBuckets.value=[],e.isAwaitingAppendCommit.value=!1;try{let i=await r({cursor:t,pageSize:e.getPageSize(),signal:s?.signal});if(!e.getOperationIsCurrent(a))return e.finishLoadPhase(),!1;if(u(i.total),!i.items.length)return e.autoBuckets.value=i.nextPage?he(e.autoBuckets.value,n,t,i.nextPage):ce(e.autoBuckets.value,n,t,!0),c(),e.finishLoadPhase(),!0;let o=le(`forward`,t,i.nextPage);return e.autoBuckets.value=[...e.autoBuckets.value,e.createBucket({cursor:t,nextCursor:o.cursor,nextCursorExhausted:o.exhausted,nextItems:i.items,previousCursor:i.previousPage??null,previousItems:[]})],c(),e.finishLoadPhase(),!0}catch(t){return q(t)||!e.getOperationIsCurrent(a)?(e.finishLoadPhase(),!1):(e.errorMessage.value=t instanceof Error?t.message:`The viewer could not load items.`,e.operationPhase.value=`failed`,e.fillCollectedCount.value=null,e.fillCursor.value=null,e.fillTargetCount.value=null,!1)}finally{e.clearActiveResolveController(s),e.inFlightCursors.delete(i)}}function s(t,n){e.fillMode.value=t,e.fillCompletedCalls.value=0,e.fillLoadedCount.value=e.getLoadedItemCount(),e.fillProgress.value=n&&n>0?0:null,e.fillTargetCalls.value=n,e.fillTotalCount.value=null}function c(){e.fillLoadedCount.value=e.getLoadedItemCount()}function l(){if(e.fillMode.value===`count`){let t=e.fillTargetCalls.value;e.fillProgress.value=t&&t>0?me(e.fillCompletedCalls.value/t):null;return}if(e.fillMode.value===`end`){let t=e.fillTotalCount.value;if(t===null){e.fillProgress.value=null;return}e.fillProgress.value=t<=0?1:me(e.fillLoadedCount.value/t);return}e.fillProgress.value=null}function u(t){typeof t==`number`&&Number.isFinite(t)&&t>=0&&(e.fillTotalCount.value=Math.floor(t))}return{cancel:r,fillUntil:t,fillUntilEnd:n}}function pe(e){return Number.isFinite(e)&&e>0?Math.floor(e):0}function me(e){return Math.min(Math.max(e,0),1)}function he(e,t,n,r){return t===void 0?e:e.map(e=>e.cursor===t&&e.nextCursor===n?{...e,nextCursor:r,nextCursorExhausted:!1}:e)}function ge(e){async function t(t){let n=e.getResolve(),r=e.getBoundaryBucket(t);if(!n||!r)return null;let i=A(r.cursor);if(e.inFlightCursors.has(i))return null;e.inFlightCursors.add(i),e.errorMessage.value=null,e.operationPhase.value=`refreshing`,e.clearFillState();let a=e.nextOperationId(),o=typeof AbortController>`u`?null:new AbortController;e.setActiveResolveController(o);try{let i=await n({cursor:r.cursor,pageSize:e.getPageSize(),signal:o?.signal});if(!e.getOperationIsCurrent(a))return e.finishLoadPhase(),null;let s=ue(r,i.nextPage),c=Y({cursor:r.cursor,nextCursor:s.cursor,nextCursorExhausted:s.exhausted,nextItems:i.items,previousCursor:i.previousPage??null,previousItems:r.items,sequence:e.getSequence()});e.setSequence(c.nextSequence);let l=e.getActiveOccurrenceKey();return e.autoBuckets.value=U(e.autoBuckets.value,r.cursor,c.bucket),e.syncActiveIndexAfterVisibilityChange(l),e.finishLoadPhase(),{followCursor:t===`leading`?i.previousPage??null:i.nextPage,itemsInserted:c.insertedCount}}catch(t){return q(t)||!e.getOperationIsCurrent(a)?(e.finishLoadPhase(),null):(e.errorMessage.value=t instanceof Error?t.message:`The viewer could not load items.`,e.operationPhase.value=`failed`,e.clearFillState(),null)}finally{e.clearActiveResolveController(o),e.inFlightCursors.delete(i)}}async function n(t){let n=e.getResolve();if(!n)return null;let r=e.nextOperationId(),i=new Set,a=[],o=t.cursor,s=0;for(e.errorMessage.value=null,e.operationPhase.value=t.phase,e.clearFillState();;){if(!e.getOperationIsCurrent(r))return X(a,t.direction,e.removedIds.value,!0);if(a.length>0&&e.isManualPageLoadingLocked.value)return X(a,t.direction,e.removedIds.value,!1);let c=A(o);if(i.has(c)||e.inFlightCursors.has(c))break;i.add(c),e.inFlightCursors.add(c);let l=typeof AbortController>`u`?null:new AbortController;e.setActiveResolveController(l);try{let i=await n({cursor:o,pageSize:e.getPageSize(),signal:l?.signal});if(!e.getOperationIsCurrent(r))return X(a,t.direction,e.removedIds.value,!0);let c=le(t.direction,o,i.nextPage),u=e.createBucket({cursor:o,nextCursor:c.cursor,nextCursorExhausted:c.exhausted,nextItems:i.items,previousCursor:i.previousPage??null,previousItems:[]});a.push(u);let d=a.reduce((t,n)=>t+V(n,e.removedIds.value),0),f=t.direction===`forward`?u.nextCursorExhausted?null:u.nextCursor:u.previousCursor;if(!t.continueUntilFilled||d>=e.getPageSize()||!f)return e.fillCursor.value=null,X(a,t.direction,e.removedIds.value,!1);if(e.isManualPageLoadingLocked.value)return X(a,t.direction,e.removedIds.value,!1);if(e.operationPhase.value=`filling`,e.fillCollectedCount.value=d,e.fillCursor.value=f,e.fillTargetCount.value=e.getPageSize(),s+=1,await e.waitFillDelay(e.getFillDelayMs(s)),!e.getOperationIsCurrent(r))return X(a,t.direction,e.removedIds.value,!0);o=f}catch(n){return q(n)||!e.getOperationIsCurrent(r)?X(a,t.direction,e.removedIds.value,!0):(e.errorMessage.value=n instanceof Error?n.message:`The viewer could not load items.`,e.operationPhase.value=`failed`,e.clearFillState(),null)}finally{e.clearActiveResolveController(l),e.inFlightCursors.delete(c)}}return X(a,t.direction,e.removedIds.value,!1)}return{collectBuckets:n,reloadBoundaryBucket:t}}function _e(t){let n={fillCompletedCalls:(0,e.ref)(0),fillLoadedCount:(0,e.ref)(0),fillMode:(0,e.ref)(`idle`),fillProgress:(0,e.ref)(null),fillTargetCalls:(0,e.ref)(null),fillTotalCount:(0,e.ref)(null)};function r(){n.fillMode.value=`idle`,n.fillCompletedCalls.value=0,n.fillLoadedCount.value=t(),n.fillProgress.value=null,n.fillTargetCalls.value=null,n.fillTotalCount.value=null}return{refs:n,reset:r}}function ve(t){let n=null,r=!1,i=!1;function a(){n=null}function o(){i||r||(i=!0,(0,e.nextTick)().then(s))}async function s(){if(i=!1,c()){if(!t.hasNextPage.value){let e=l();if(n===e)return;n=e}r=!0;try{await t.prefetchNextPage()}finally{r=!1,c()&&o()}}}function c(){return!t.items.value.length&&!t.loading.value&&!t.isInitialLoading()&&!t.isPageLoadingLocked.value&&(t.hasNextPage.value||t.canRefreshTrailingBoundary.value)}function l(){let e=t.trailingBoundaryBucket.value;return[e?.cursor??``,e?.nextCursor??``,e?.items.map(e=>e.id).join(``)??``,t.removedIds.value.size].join(``)}return{resetRefreshAttempt:a,schedule:o}}var ye=2e3,be=1e3,xe=100;function Se(e,t=ye,n=be,r){let i=t+Math.max(0,e-1)*n;return!Number.isFinite(r)||r==null||r<0?i:Math.min(i,Math.floor(r))}function Ce(e,t){return!Number.isFinite(e)||e==null||e<0?t:Math.floor(e)}function we(e){if(!(!Number.isFinite(e)||e==null||e<0))return Math.floor(e)}function Te(){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,xe),r=setTimeout(l,e),u()}))}return{clear:a,remainingMs:t,wait:o}}function Ee(t){let n=!!t.initialState?.items.length,r=(0,e.ref)([]),i=(0,e.ref)(0),a=(0,e.ref)([]),o=(0,e.ref)(!1),s=(0,e.ref)(null),c=(0,e.ref)(!n&&typeof t.resolve==`function`?`initializing`:`idle`),l=(0,e.ref)(null),u=(0,e.ref)(null),d=Te(),f=d.remainingMs,p=(0,e.ref)(null),m=(0,e.ref)(!1),h=(0,e.ref)(!0),g=(0,e.ref)(!1),_=(0,e.ref)(!1),v=new Set,y=null,b=null,x=0,S=0,C=ie({getSequence:()=>S,setSequence:e=>{S=e}}),w=(0,e.computed)(()=>we(t.fillDelayMaxMs)),T=(0,e.computed)(()=>Ce(t.fillDelayMs,ye)),E=(0,e.computed)(()=>Ce(t.fillDelayStepMs,be)),D=(0,e.computed)(()=>typeof t.resolve==`function`),A=(0,e.computed)(()=>k(t.pageSize)),M=(0,e.computed)(()=>R(r.value)),P=_e(()=>M.value.length),F=(0,e.computed)(()=>z(M.value,t.removedIds.value)),I=(0,e.computed)(()=>i.value),L=(0,e.computed)(()=>O(c.value)||m.value),B=(0,e.computed)(()=>ae(r.value,t.removedIds.value)),V=(0,e.computed)(()=>oe(r.value,t.removedIds.value)),U=(0,e.computed)(()=>V.value?.nextCursor??null),W=(0,e.computed)(()=>o.value?null:B.value?.previousCursor??null),G=(0,e.computed)(()=>!!U.value&&V.value?.nextCursorExhausted!==!0),K=(0,e.computed)(()=>!!W.value),q=(0,e.computed)(()=>_.value||g.value),J=(0,e.computed)(()=>D.value&&!!V.value?.items.length),Y=(0,e.computed)(()=>z(R(a.value),t.removedIds.value)),X=(0,e.computed)(()=>H(r.value,t.removedIds.value,I.value)),le=(0,e.computed)(()=>!F.value.length&&!L.value&&!!s.value),ue=fe({autoBuckets:r,clearActiveResolveController(e){y===e&&(y=null)},clearFillDelay:e=>d.clear(e),createBucket:C,errorMessage:s,fillCollectedCount:l,fillCursor:u,fillTargetCount:p,...P.refs,finishLoadPhase:Z,getFillDelayMs:e=>Se(e,T.value,E.value,w.value),getHasNextPage:()=>G.value,getIsLoading:()=>L.value,getIsManualPageLoadingLocked:()=>_.value,getLoadedItemCount:()=>M.value.length,getNextCursor:()=>U.value,getOperationIsCurrent:e=>e===x,getPageSize:()=>A.value,getResolve:()=>t.resolve,getTrailingBoundaryBucket:()=>V.value,getVisibleItemCount:()=>F.value.length,inFlightCursors:v,isAwaitingAppendCommit:m,isFillUntilActive:g,nextOperationId:()=>++x,operationPhase:c,pendingAppendBuckets:a,refreshTrailingBoundaryBeforeEnd:async()=>{J.value&&(await xe(),await ke())},setActiveResolveController:e=>{y=e},setLastLoadAttempt:e=>{b=e},waitFillDelay:e=>d.wait(e)}),pe=ve({canRefreshTrailingBoundary:J,hasNextPage:G,isInitialLoading:qe,isPageLoadingLocked:q,items:F,loading:L,prefetchNextPage:xe,removedIds:t.removedIds,trailingBoundaryBucket:V}),me=ge({autoBuckets:r,clearActiveResolveController(e){y===e&&(y=null)},clearFillState:Ge,createBucket:C,errorMessage:s,fillCollectedCount:l,fillCursor:u,fillTargetCount:p,finishLoadPhase:Z,getActiveOccurrenceKey:Le,getBoundaryBucket:e=>e===`leading`?B.value:V.value,getFillDelayMs:e=>Se(e,T.value,E.value,w.value),getOperationIsCurrent:e=>e===x,getPageSize:()=>A.value,getResolve:()=>t.resolve,getSequence:()=>S,inFlightCursors:v,isManualPageLoadingLocked:_,nextOperationId:()=>++x,operationPhase:c,removedIds:t.removedIds,setActiveResolveController:e=>{y=e},setSequence:e=>{S=e},syncActiveIndexAfterVisibilityChange:Re,waitFillDelay:e=>d.wait(e)});(0,e.watch)(()=>F.value.length,e=>{if(e===0){i.value=0,pe.schedule();return}pe.resetRefreshAttempt(),o.value&&=(Ye(),!1),i.value>e-1&&(i.value=e-1)}),(0,e.watch)(()=>i.value,()=>{h.value&&Be()}),(0,e.onMounted)(()=>{Ke()||t.resolve&&he()}),(0,e.onBeforeUnmount)(()=>{y?.abort(),y=null,d.clear(!0)});async function he(){b=he;let e=await We({continueUntilFilled:!0,cursor:t.initialCursor??null,direction:`forward`,phase:`initializing`});e&&(r.value=e.buckets,i.value=0,Z())}async function xe(){if(q.value||L.value)return;let e=!F.value.length,t=V.value,n={commitImmediately:e,originCursor:t?.cursor??null},r=se(t);if(Je(`trailing`)){if(!J.value)return;let e=await Ue(`trailing`);e?.followCursor&&(e.itemsInserted===0||Je(`trailing`))&&await Ve(e.followCursor,n);return}if(r){if(t?.cursor===r){let e=await Ue(`trailing`);e?.followCursor&&e.itemsInserted===0&&await Ve(e.followCursor,n);return}await Ve(r,n);return}if(!G.value){let e=J.value?await Ue(`trailing`):null;e?.followCursor&&e.itemsInserted===0&&await Ve(e.followCursor,n);return}await Ve(U.value,n)}async function Ee(){if(!(q.value||!K.value||L.value)){if(Je(`leading`)){let e=await Ue(`leading`);e?.itemsInserted===0&&e.followCursor&&await He(e.followCursor);return}await He(W.value)}}async function De(){if(le.value){if(r.value=[],i.value=0,a.value=[],o.value=!1,s.value=null,c.value=D.value?`initializing`:`idle`,Ge(),P.reset(),m.value=!1,v.clear(),y?.abort(),y=null,d.clear(!0),Ke()){Z();return}await he()}}async function Oe(){if(le.value)return De();q.value||c.value!==`failed`||!b||(s.value=null,await b())}async function ke(){if(!a.value.length)return m.value=!1,Z();r.value=[...r.value,...a.value],a.value=[],m.value=!1,Z()}function Ae(e){let n=F.value;if(!n.length)return;let r=j(e,0,n.length-1);r!==i.value&&(i.value=r,t.emit(`update:activeIndex`,r))}function je(e){h.value=e,pe.schedule()}function Me(){_.value=!0,d.clear(!0)}function Ne(){_.value=!1,pe.schedule()}function Pe(){Ie(),s.value=null,Ge(),ue.cancel(),a.value.length>0&&(r.value=[...r.value,...a.value],a.value=[]),m.value=!1,o.value=!1,Z()}function Fe(){g.value&&(Ie(),Ge(),ue.cancel(),m.value=!1,Z())}function Ie(){x+=1,y?.abort(),y=null,d.clear(!0),v.clear()}function Le(){return te(F.value,I.value)}function Re(e=null,t={}){if(F.value.length===0){i.value=0,!t.preserveTrailingPlaceholder&&r.value.length>0&&(o.value=!0);return}if(e){let t=F.value.findIndex(t=>N(t)===e);if(t>=0){i.value=t;return}}if(t.preserveTrailingPlaceholder&&i.value>=F.value.length){i.value=F.value.length;return}i.value=ne(F.value,I.value,e)}function ze(){a.value.length>0&&(!Y.value.length||!F.value.length)&&ke()}async function Be(e=!0){if(!(!h.value||qe())){if(!F.value.length){(G.value||J.value)&&await xe();return}K.value&&i.value<3&&await Ee(),(G.value||e&&J.value)&&i.value>=F.value.length-3&&await xe()}}async function Ve(e,t={}){b=async()=>{await Ve(e,t)};let n=await We({continueUntilFilled:!0,cursor:e,direction:`forward`,phase:`loading`});if(n){if(!n.visibleCount)return r.value=ce(r.value,t.originCursor,e,!0),a.value=[],m.value=!1,Z();if(n.canceled)return r.value=[...r.value,...n.buckets],a.value=[],m.value=!1,Z();if(a.value=n.buckets,t.commitImmediately||!F.value.length||!Y.value.length)return r.value=[...r.value,...a.value],a.value=[],m.value=!1,Z();m.value=!0}}async function He(e){b=async()=>{await He(e)};let t=await We({continueUntilFilled:!0,cursor:e,direction:`backward`,phase:`loading`});if(!t)return;let n=Le();r.value=[...t.buckets,...r.value],Re(n),Z()}async function Ue(e){return b=async()=>{await Ue(e)},me.reloadBoundaryBucket(e)}function We(e){return me.collectBuckets(e)}function Z(){c.value=`idle`,Ge(),d.clear(),pe.schedule()}function Ge(){l.value=null,u.value=null,p.value=null}function Ke(){if(!t.initialState||!t.initialState.items.length)return!1;let e=ee({initialState:t.initialState,removedIds:t.removedIds.value,sequence:S});return r.value=e.buckets,i.value=e.activeIndex,S=e.nextSequence,o.value=!1,s.value=null,a.value=[],m.value=!1,!0}function qe(){return c.value===`initializing`}function Je(e){return re(e===`leading`?B.value:V.value,t.removedIds.value,A.value)}function Ye(){r.value=de(r.value,t.removedIds.value)}return{activeIndex:I,canRetryInitialLoad:le,cancel:Pe,cancelFill:Fe,canRefreshTrailingBoundary:J,commitPendingAppend:ke,currentCursor:X,errorMessage:s,fillCollectedCount:l,fillCursor:u,fillDelayRemainingMs:f,fillTargetCount:p,...P.refs,fillUntil:ue.fillUntil,fillUntilEnd:ue.fillUntilEnd,hasNextPage:G,hasPreviousPage:K,isAutoPrefetchEnabled:h,isPageLoadingLocked:q,items:F,lockPageLoading:Me,loading:L,maybePrefetchAround:Be,nextCursor:U,pendingAppendItems:Y,phase:c,prefetchNextPage:xe,prefetchPreviousPage:Ee,previousCursor:W,retryInitialLoad:De,retry:Oe,setActiveIndex:Ae,setAutoPrefetchEnabled:je,syncActiveIndexAfterVisibilityChange:Re,unlockPageLoading:Ne,getActiveOccurrenceKey:Le,maybeCommitPendingAppendWhenFilteredOut:ze}}function De(t,n){let{clearRemoved:r,getRemovedIds:i,remove:a,removedIds:o,restore:s,undo:c}=I(),l=Ee({emit:n,fillDelayMaxMs:t.fillDelayMaxMs,fillDelayMs:t.fillDelayMs,fillDelayStepMs:t.fillDelayStepMs,initialCursor:t.initialCursor,initialState:t.initialState,pageSize:t.pageSize,removedIds:o,resolve:t.resolve}),u=l.items,d=l.activeIndex,f=l.loading,p=l.hasNextPage,m=l.hasPreviousPage,h=(0,e.computed)(()=>o.value.size),g=(0,e.computed)(()=>t.paginationDetail??null),_=(0,e.computed)(()=>!l.hasNextPage.value&&l.canRefreshTrailingBoundary.value);function v(e){let t=u.value;t.length&&l.setActiveIndex(E(e,0,t.length-1))}function y(e){let t=l.getActiveOccurrenceKey(),n=u.value[d.value]??null,r=Array.isArray(e)?e:[e],i=!!(n&&r.includes(n.id)&&l.isAutoPrefetchEnabled.value&&d.value>=u.value.length-3),o=!!(n&&r.includes(n.id)&&l.hasNextPage.value&&d.value===u.value.length-1),s=a(e);return s.ids.length?(l.maybeCommitPendingAppendWhenFilteredOut(),l.syncActiveIndexAfterVisibilityChange(t,{preserveTrailingPlaceholder:o}),i&&b(),s):s}function b(){(0,e.nextTick)().then(()=>l.maybePrefetchAround(!1))}function x(e){let t=l.getActiveOccurrenceKey(),n=s(e);return n.ids.length&&l.syncActiveIndexAfterVisibilityChange(t),n}function S(){let e=l.getActiveOccurrenceKey(),t=c();return t?.ids.length&&l.syncActiveIndexAfterVisibilityChange(e),t}function C(){let e=l.getActiveOccurrenceKey();r(),l.syncActiveIndexAfterVisibilityChange(e)}function w(){return[...u.value]}function T(e){return u.value.find(t=>N(t)===e)??null}function E(e,t,n){return Math.min(Math.max(e,t),n)}function D(){l.cancel()}async function O(){await l.prefetchNextPage()}async function k(){await l.prefetchPreviousPage()}async function A(){await l.retry()}return{activeIndex:d,canRefreshExhaustedNextPage:_,canRetryInitialLoad:l.canRetryInitialLoad,cancel:D,cancelFill:l.cancelFill,clearRemoved:C,commitPendingAppend:l.commitPendingAppend,currentCursor:l.currentCursor,errorMessage:l.errorMessage,fillCollectedCount:l.fillCollectedCount,fillCompletedCalls:l.fillCompletedCalls,fillCursor:l.fillCursor,fillDelayRemainingMs:l.fillDelayRemainingMs,fillLoadedCount:l.fillLoadedCount,fillMode:l.fillMode,fillProgress:l.fillProgress,fillTargetCalls:l.fillTargetCalls,fillTargetCount:l.fillTargetCount,fillTotalCount:l.fillTotalCount,fillUntil:l.fillUntil,fillUntilEnd:l.fillUntilEnd,getItemByOccurrenceKey:T,getItems:w,getRemovedIds:i,hasNextPage:p,hasPreviousPage:m,isPageLoadingLocked:l.isPageLoadingLocked,items:u,lockPageLoading:l.lockPageLoading,loading:f,loadNext:O,loadPrevious:k,nextCursor:l.nextCursor,paginationDetail:g,pendingAppendItems:l.pendingAppendItems,phase:l.phase,prefetchNextPage:l.prefetchNextPage,prefetchPreviousPage:l.prefetchPreviousPage,previousCursor:l.previousCursor,removedCount:h,remove:y,restore:x,retry:A,retryInitialLoad:l.retryInitialLoad,setActiveIndex:v,setAutoPrefetchEnabled:l.setAutoPrefetchEnabled,undo:S,unlockPageLoading:l.unlockPageLoading}}var Oe=1024;function ke(t,n){let r=De(t,n),i=(0,e.reactive)({nextBoundaryLoadProgress:0,previousBoundaryLoadProgress:0}),a=(0,e.ref)(0),o=(0,e.ref)(`list`),s=(0,e.reactive)({activeIndex:0,currentCursor:null,errorMessage:null,fillCollectedCount:null,fillCompletedCalls:0,fillCursor:null,fillDelayRemainingMs:null,fillLoadedCount:0,fillMode:`idle`,fillProgress:null,fillTargetCalls:null,fillTargetCount:null,fillTotalCount:null,hasNextPage:!1,hasPreviousPage:!1,itemCount:0,itemsRevision:0,loadState:`loaded`,nextBoundaryLoadProgress:0,nextCursor:null,pageLoadingLocked:!1,phase:`idle`,previousBoundaryLoadProgress:0,previousCursor:null,removedCount:0,removedIds:[],removedRevision:0,surfaceMode:`list`}),c=(0,e.computed)(()=>a.value>=Oe),l=(0,e.ref)(0),u=(0,e.ref)(0),d=(0,e.computed)(()=>c.value?o.value:`fullscreen`),f=(0,e.computed)(()=>c.value&&d.value===`fullscreen`);(0,e.watch)(c,e=>{e&&_()}),(0,e.watch)(()=>t.surfaceMode,()=>{_()}),(0,e.watch)([d,()=>r.pendingAppendItems.value.length],([e,t])=>{e===`list`||t<=0||r.commitPendingAppend()}),(0,e.watch)([()=>r.items.value.length,()=>r.loading.value,()=>r.hasNextPage.value,()=>r.pendingAppendItems.value.length],([e,t,r,i])=>{!c.value||e>0||o.value===`list`||t||r||i>0||(o.value=`list`,n(`update:surfaceMode`,`list`))}),(0,e.watch)(d,e=>{r.setAutoPrefetchEnabled(e===`fullscreen`)},{immediate:!0}),(0,e.watch)(()=>r.items.value,e=>{l.value+=1,s.itemCount=e.length,s.itemsRevision=l.value},{immediate:!0}),(0,e.watch)(()=>r.getRemovedIds(),e=>{u.value+=1,s.removedCount=r.removedCount.value,s.removedIds=e,s.removedRevision=u.value},{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.fillCompletedCalls=r.fillCompletedCalls.value,s.fillCursor=r.fillCursor.value,s.fillDelayRemainingMs=r.fillDelayRemainingMs.value,s.fillLoadedCount=r.fillLoadedCount.value,s.fillMode=r.fillMode.value,s.fillProgress=r.fillProgress.value,s.fillTargetCalls=r.fillTargetCalls.value,s.fillTargetCount=r.fillTargetCount.value,s.fillTotalCount=r.fillTotalCount.value,s.hasNextPage=r.hasNextPage.value,s.hasPreviousPage=r.hasPreviousPage.value,s.loadState=r.loading.value?`loading`:r.errorMessage.value?`failed`:`loaded`,s.nextBoundaryLoadProgress=i.nextBoundaryLoadProgress,s.nextCursor=r.nextCursor.value,s.pageLoadingLocked=r.isPageLoadingLocked.value,s.phase=r.phase.value,s.previousBoundaryLoadProgress=i.previousBoundaryLoadProgress,s.previousCursor=r.previousCursor.value,s.surfaceMode=d.value}),(0,e.onMounted)(()=>{g(),_(),window.addEventListener(`keydown`,h),window.addEventListener(`resize`,g)}),(0,e.onBeforeUnmount)(()=>{window.removeEventListener(`keydown`,h),window.removeEventListener(`resize`,g)});function p(e){r.setActiveIndex(e),c.value&&o.value!==`fullscreen`&&(o.value=`fullscreen`,n(`update:surfaceMode`,`fullscreen`))}function m(){!c.value||o.value===`list`||(o.value=`list`,n(`update:surfaceMode`,`list`))}function h(e){e.defaultPrevented||e.key!==`Escape`||!c.value||d.value!==`fullscreen`||E(e.target)||(e.preventDefault(),m())}function g(){a.value=window.innerWidth||0}function _(){!c.value||!t.surfaceMode||t.surfaceMode===o.value||(o.value=t.surfaceMode)}function v(e){i.nextBoundaryLoadProgress=Ae(e.nextBoundaryLoadProgress),i.previousBoundaryLoadProgress=Ae(e.previousBoundaryLoadProgress)}return{...r,cancel:r.cancel,isDesktop:c,lockPageLoading:r.lockPageLoading,loadNext:r.loadNext,loadPrevious:r.loadPrevious,openFullscreen:p,returnToList:m,retry:r.retry,setBoundaryLoadProgress:v,showBackToList:f,status:(0,e.readonly)(s),surfaceMode:d,unlockPageLoading:r.unlockPageLoading}}function Ae(e){return Math.min(Math.max(e,0),1)}var je={"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]`},Ne={class:`text-[0.76rem] font-bold uppercase tracking-[0.18em] text-[#f7f1ea]/74`},Pe={class:`relative h-4 w-full`},Fe=[`max`,`value`,`disabled`],Ie={class:`flex items-center justify-end gap-3`},Le={class:`text-[0.76rem] font-bold uppercase tracking-[0.18em] text-[#f7f1ea]/74`},Re=[`data-layout`],ze={key:0,"data-testid":`vibe-media-volume-popover`,class:`absolute bottom-[calc(100%+0.8rem)] right-0 grid justify-items-center gap-3 border border-white/12 bg-black/82 px-3 py-4 shadow-[0_20px_50px_-20px_rgba(0,0,0,0.85)] backdrop-blur-[18px]`},Be={class:`relative flex h-28 w-4 items-center justify-center`},Ve=[`value`],He={class:`flex items-center gap-3`},Ue=[`aria-label`],We={key:0,class:`relative h-4 w-24`},Z=[`value`],Ge=(0,e.defineComponent)({__name:`FullscreenMediaBar`,props:{currentTime:{},currentTimeLabel:{},duration:{},durationLabel:{},muted:{type:Boolean},progress:{},showFullscreenControl:{type:Boolean,default:!1},volume:{},volumeControlLayout:{}},emits:[`fullscreen-request`,`seek-input`,`volume-input`,`volume-toggle`],setup(t,{emit:n}){let r=t,i=n,a=(0,e.ref)(null),o=(0,e.ref)(!1),s=(0,e.computed)(()=>r.volumeControlLayout===`vertical`),c=(0,e.computed)(()=>_(r.volume,0,1)),l=(0,e.computed)(()=>Math.round(c.value*100)),u=(0,e.computed)(()=>r.muted||c.value<=0?x:c.value<.5?y:b),d=(0,e.computed)(()=>r.muted||c.value<=0?`Unmute active media`:`Mute active media`),f=(0,e.computed)(()=>s.value&&!o.value?`Show volume controls`:d.value),p=(0,e.computed)(()=>r.volumeControlLayout===`vertical`?{height:`${l.value}%`}:{width:`${l.value}%`});(0,e.watch)(s,e=>{e||(o.value=!1)}),(0,e.onMounted)(()=>{document.addEventListener(`pointerdown`,m)}),(0,e.onBeforeUnmount)(()=>{document.removeEventListener(`pointerdown`,m)});function m(e){!s.value||!o.value||a.value&&e.target instanceof Node&&!a.value.contains(e.target)&&(o.value=!1)}function g(){if(!s.value){i(`volume-toggle`);return}if(!o.value){o.value=!0;return}i(`volume-toggle`)}function _(e,t,n){return Math.min(Math.max(e,t),n)}return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,je,[(0,e.createElementVNode)(`div`,Me,[(0,e.createElementVNode)(`span`,Ne,(0,e.toDisplayString)(r.currentTimeLabel),1),(0,e.createElementVNode)(`div`,Pe,[n[4]||=(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,Fe)]),(0,e.createElementVNode)(`div`,Ie,[(0,e.createElementVNode)(`span`,Le,(0,e.toDisplayString)(r.durationLabel),1),r.showFullscreenControl?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:0,type:`button`,"data-testid":`vibe-media-fullscreen-button`,class:`inline-flex h-10 w-10 items-center justify-center border border-white/14 bg-black/50 text-[#f7f1ea]/82 backdrop-blur-[18px] transition hover:border-white/28 hover:bg-black/65`,"aria-label":`Open active video fullscreen`,onClick:n[1]||=e=>i(`fullscreen-request`)},[(0,e.createVNode)((0,e.unref)(h),{class:`h-4 w-4 stroke-[1.9]`,"aria-hidden":`true`})])):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`div`,{ref_key:`rootRef`,ref:a,"data-testid":`vibe-media-volume`,"data-layout":r.volumeControlLayout,class:`relative flex items-center justify-end`},[s.value&&o.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,ze,[(0,e.createElementVNode)(`div`,Be,[n[5]||=(0,e.createElementVNode)(`div`,{class:`absolute bottom-0 left-1/2 h-full w-px -translate-x-1/2 bg-white/12`},null,-1),(0,e.createElementVNode)(`div`,{class:`absolute bottom-0 left-1/2 w-px -translate-x-1/2 bg-[#f7f1ea]`,style:(0,e.normalizeStyle)(p.value)},null,4),(0,e.createElementVNode)(`input`,{"data-testid":`vibe-media-volume-slider`,"data-swipe-lock":`true`,type:`range`,"aria-label":`Adjust active media volume`,min:`0`,max:`1`,step:`0.05`,value:c.value,class:`vibe-media-slider absolute left-1/2 top-1/2 h-4 w-28 -translate-x-1/2 -translate-y-1/2 -rotate-90 bg-transparent`,onInput:n[2]||=e=>i(`volume-input`,e)},null,40,Ve)])])):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`div`,He,[(0,e.createElementVNode)(`button`,{type:`button`,"data-testid":`vibe-media-volume-button`,"aria-label":f.value,class:`inline-flex h-10 w-10 items-center justify-center border border-white/14 bg-black/50 text-[#f7f1ea]/82 backdrop-blur-[18px] transition hover:border-white/28 hover:bg-black/65`,onClick:g},[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(u.value),{class:`h-4 w-4 stroke-[1.9]`,"aria-hidden":`true`}))],8,Ue),r.volumeControlLayout===`horizontal`?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,We,[n[6]||=(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)(p.value)},null,4),(0,e.createElementVNode)(`input`,{"data-testid":`vibe-media-volume-slider`,"data-swipe-lock":`true`,type:`range`,"aria-label":`Adjust active media volume`,min:`0`,max:`1`,step:`0.05`,value:c.value,class:`vibe-media-slider absolute inset-0 z-10 h-4 w-full cursor-pointer bg-transparent`,onInput:n[3]||=e=>i(`volume-input`,e)},null,40,Z)])):(0,e.createCommentVNode)(``,!0)])],8,Re)])])]))}}),Ke={"data-testid":`vibe-fullscreen-header`,class:`relative z-[3] shrink-0 border-b border-white/10 bg-[#05060a] px-3 py-2`},qe={class:`flex min-h-8 flex-wrap items-center justify-between gap-2`},Je={class:`min-w-0 flex flex-1 items-center gap-2`},Ye={key:1,"data-testid":`vibe-title`,class:`m-0 min-w-0 truncate text-left text-[0.82rem] leading-none text-[#f7f1ea]/88 min-[721px]:text-[0.92rem]`},Xe={class:`flex min-w-0 flex-wrap items-center justify-end gap-2`},Ze={"data-testid":`vibe-pagination`,class:`inline-flex h-8 shrink-0 items-center gap-2 whitespace-nowrap border border-white/12 bg-black/20 px-2.5 text-[0.68rem] font-semibold uppercase tracking-[0.1em] text-[#f7f1ea]/70`},Qe={class:`whitespace-nowrap`},$e={key:1,class:`whitespace-nowrap border-l border-white/12 pl-2 text-[#f7f1ea]/56`},et=(0,e.defineComponent)({__name:`FullscreenHeader`,props:{currentIndex:{},loading:{type:Boolean},paginationDetail:{},showBackToList:{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)(`header`,Ke,[(0,e.createElementVNode)(`div`,qe,[(0,e.createElementVNode)(`div`,Je,[r.showBackToList?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:0,type:`button`,"data-testid":`vibe-back-to-list`,class:`inline-flex h-8 w-8 shrink-0 items-center justify-center border border-white/12 bg-black/20 text-[#f7f1ea]/74 transition hover:border-white/24 hover:bg-white/6 hover:text-[#f7f1ea]`,"aria-label":`Exit viewer`,title:`Exit viewer`,onClick:n[0]||=e=>i(`back-to-list`)},[(0,e.createVNode)((0,e.unref)(S),{class:`h-3.5 w-3.5 stroke-[2.2]`,"aria-hidden":`true`})])):(0,e.createCommentVNode)(``,!0),r.title?((0,e.openBlock)(),(0,e.createElementBlock)(`h2`,Ye,(0,e.toDisplayString)(r.title),1)):(0,e.createCommentVNode)(``,!0)]),(0,e.createElementVNode)(`div`,Xe,[(0,e.createElementVNode)(`span`,Ze,[r.loading?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(m),{key:0,"data-testid":`vibe-pagination-spinner`,class:`h-3.5 w-3.5 animate-spin stroke-[1.9]`,"aria-hidden":`true`})):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`span`,Qe,(0,e.toDisplayString)(r.currentIndex+1)+` / `+(0,e.toDisplayString)(r.total),1),r.paginationDetail?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,$e,(0,e.toDisplayString)(r.paginationDetail),1)):(0,e.createCommentVNode)(``,!0)]),(0,e.renderSlot)(t.$slots,`actions`)])])]))}}),tt={"data-testid":`vibe-fullscreen-footer`,class:`relative z-[3] shrink-0 border-t border-white/10 bg-[#05060a] px-3 py-2`},nt={class:`grid gap-2`},rt={key:0,class:`flex flex-wrap items-center justify-center gap-2`},it={key:2,class:`inline-flex items-center border border-amber-300/35 bg-black/20 px-3 py-1.5 text-[0.68rem] font-semibold uppercase tracking-[0.12em] text-amber-200`},at=(0,e.defineComponent)({__name:`FullscreenFooter`,props:{showEndBadge:{type:Boolean},showStatus:{type:Boolean},statusKind:{},statusMessage:{}},setup(t){let n=t,r=(0,e.computed)(()=>n.statusKind===`end`?`border-amber-300/35 text-amber-200`:n.statusKind===`failed`?`border-rose-400/45 text-rose-100`:``);return(t,i)=>((0,e.openBlock)(),(0,e.createElementBlock)(`footer`,tt,[(0,e.createElementVNode)(`div`,nt,[(0,e.renderSlot)(t.$slots,`default`),n.showStatus||n.showEndBadge?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,rt,[n.showStatus&&t.$slots.status?(0,e.renderSlot)(t.$slots,`status`,{key:0}):n.showStatus?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:1,"data-testid":`vibe-fullscreen-status-badge`,class:(0,e.normalizeClass)([`inline-flex w-auto items-center border border-white/12 bg-black/20 px-3 py-1.5 text-[0.68rem] font-semibold uppercase tracking-[0.12em] text-[#f7f1ea]/74 max-[720px]:w-full max-[720px]:justify-center`,r.value])},(0,e.toDisplayString)(n.statusMessage),3)):(0,e.createCommentVNode)(``,!0),n.showEndBadge?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,it,` End reached `)):(0,e.createCommentVNode)(``,!0)])):(0,e.createCommentVNode)(``,!0)])]))}}),ot={image:p,video:d,audio:u,other:f},st={image:`Image`,video:`Video`,audio:`Audio`,other:`File`};function ct(e){return ot[e]}function lt(e){return st[e]}function ut(){let e=new Map,t=new Map,n=0;function r(r){let a={...r,enqueuedAt:n,id:`vibe-asset-load-${n+=1}`};return t.set(a.id,a),i(),{cancel(){(t.delete(a.id)||e.delete(a.id))&&i()},refresh(){i()},release(){(e.delete(a.id)||t.delete(a.id))&&i()}}}function i(){if(t.size===0)return;let n=[...t.values()].sort((e,t)=>{let n=ft(e)-ft(t);return n===0?e.enqueuedAt-t.enqueuedAt:n});for(let r of n){t.delete(r.id),e.set(r.id,r);try{r.onGrant()}catch{e.delete(r.id)}}}return{request:r}}var dt=ut();function ft(e){try{let t=e.getPriority();return Number.isFinite(t)?t:1/0}catch{return 1/0}}var pt=[0,1,2,3],mt={0:0,1:1,2:2,3:3};function ht(t){let n=(0,e.ref)({}),r=ut(),i=new Map,a=new Map,o=new Map,s=new Set;(0,e.watch)([t.active,t.items,t.resolvedActiveIndex],()=>{m()},{immediate:!0}),(0,e.getCurrentScope)()&&(0,e.onScopeDispose)(()=>{p()});function c(e){let t=l(e);return t===`loading`||t===`ready`}function l(e){if(!t.active.value)return`idle`;let r=_(e);return r?n.value[r.key]?t.isAssetReady(r.key,r.item)?`ready`:`loading`:i.has(r.key)?`queued`:`idle`:`idle`}function u(e,t){if(t instanceof HTMLImageElement){a.set(e,t),_t(t)&&f(e);return}a.delete(e)}function d(e,t){if(t instanceof HTMLMediaElement){o.set(e,t),vt(t)&&f(e);return}o.delete(e)}function f(e){let t=i.get(e);t&&(t.lease.release(),i.delete(e))}function p(){for(let e of i.values())e.lease.cancel();i.clear(),n.value={},v()}function m(){if(!t.active.value){p();return}let e=h(),s=new Map(e.map(e=>[e.key,e])),c=new Set(s.keys());for(let e of Object.keys(n.value))c.has(e)||y(e,!1);for(let[e,t]of i.entries()){let n=s.get(e);if(!n){t.lease.cancel(),i.delete(e);continue}t.index=n.index,t.item=n.item}for(let s of e){if(t.isAssetReady(s.key,s.item)){y(s.key,!0),f(s.key);continue}if(n.value[s.key]||i.has(s.key))continue;let e;e={...s,lease:r.request({assetType:s.item.type===`image`?`image`:`video`,getPriority:()=>g(e.index),onGrant:()=>{y(s.key,!0),(t.isAssetReady(s.key,s.item)||gt(s.key,a,o))&&f(s.key)},url:s.item.url})},i.set(s.key,e)}for(let e of i.values())e.lease.refresh();v()}function h(){let e=t.resolvedActiveIndex.value;return pt.map(t=>_(e+t)).filter(e=>!!e)}function g(e){return t.active.value?mt[e-t.resolvedActiveIndex.value]??1/0:1/0}function _(e){let n=t.items.value[e];return!n||!yt(n)?null:{index:e,item:n,key:t.getItemKey(n)}}function v(){let e=new Set(Object.keys(n.value));for(let n of s)e.has(n)||(b(n),t.onResetAssetState(n));s=e}function y(e,t){if(t){if(n.value[e])return;n.value={...n.value,[e]:!0};return}if(!n.value[e])return;let r={...n.value};delete r[e],n.value=r}function b(e){let t=a.get(e);if(t)try{t.removeAttribute(`src`),t.src=``}catch{}let n=o.get(e);if(n){try{n.currentTime=0}catch{}n.pause();try{n.removeAttribute(`src`),n.load()}catch{}}}return{clearPreloads:p,getSlidePreloadState:l,registerImageElement:u,registerMediaElement:d,settleAssetPreload:f,shouldAttachSlideAsset:c}}function gt(e,t,n){let r=t.get(e);if(r)return _t(r);let i=n.get(e);return i?vt(i):!1}function _t(e){return e.complete&&!!(e.currentSrc||e.getAttribute(`src`))}function vt(e){let t=typeof HTMLMediaElement>`u`?1:HTMLMediaElement.HAVE_METADATA;return e.readyState>=t}function yt(e){return e.type===`image`||e.type===`video`||e.type===`audio`}var bt=/\.(avif|gif|jpe?g|png|svg|webp)(\?|#|$)/i;function xt(e){let t=ht({active:e.active,getItemKey:r,isAssetReady:h,items:e.items,onResetAssetState:e.viewer.resetAssetState,resolvedActiveIndex:e.resolvedActiveIndex});function n(e,t){let n=t.title?.trim();return n?`${e} ${n}`:`${e} ${lt(t.type).toLowerCase()}`}function r(e){return N(e)}function i(e){return t.shouldAttachSlideAsset(e)}function a(e,t){return g(e,t)&&i(e)}function o(e){return t.getSlidePreloadState(e)}function s(t,n){let i=r(n),a=o(t);return a===`idle`||t!==e.resolvedActiveIndex.value||e.viewer.getAssetErrorKind(i)?!1:a!==`ready`}function c(t){return e.viewer.getAssetErrorKind(r(t))}function l(t){return e.viewer.getAssetErrorLabel(r(t))??`Load error`}function u(t,n){return o(t)!==`idle`&&t===e.resolvedActiveIndex.value&&!!c(n)}function d(t,n){return i(t)?e.viewer.getImageSource(n):void 0}function f(e){return i(e)?`metadata`:`none`}function p(e,t){return i(e)?t.url:void 0}function m(e){return e.type!==`audio`||!e.preview?.url?null:e.preview.mediaType===`image`||!e.preview.mediaType&&bt.test(e.preview.url)?e.preview.url:null}function h(t,n){return n.type===`image`?e.viewer.isImageReady(t):n.type===`video`||n.type===`audio`?e.viewer.isMediaReady(t):!1}function g(t,n){let i=e.items.value[t];return!!i&&r(i)===r(n)}return{getAssetErrorKind:c,getAssetErrorLabel:l,getFullscreenAudioCoverSource:m,getFullscreenImageSource:d,getFullscreenMediaPreload:f,getFullscreenMediaSource:p,getItemKey:r,getMediaActionLabel:n,getSlidePreloadState:o,isAssetErrored:u,isAssetLoading:s,registerImageElement:t.registerImageElement,registerMediaElement:t.registerMediaElement,settleAssetPreload:t.settleAssetPreload,shouldHandleSlideAssetEvent:a,shouldPreloadSlideAsset:i}}function Q(t){if(!Array.isArray(t))return!1;for(let n of t){if(Array.isArray(n)){if(Q(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(!St(n))return!0}return!1}function St(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?!Q(t.children):!1}var Ct=`no items available`;function wt(t){let n=(0,e.computed)(()=>t.loading.value||t.itemCount.value>0||t.emptyStateMode.value===`hidden`?null:{loading:!!t.loading.value,message:Ct,mode:t.emptyStateMode.value===`badge`?`badge`:`inline`,surface:t.surface,total:t.itemCount.value}),r=(0,e.computed)(()=>!n.value||!t.renderSlot?[]:t.renderSlot(n.value));return{emptyStateProps:n,showBadgeEmptyState:(0,e.computed)(()=>n.value?.mode===`badge`),showCustomEmptyState:(0,e.computed)(()=>Q(r.value)),showInlineEmptyState:(0,e.computed)(()=>n.value?.mode===`inline`)}}function Tt(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 Et(e){return e.phase?e.phase:e.loading?e.itemCount>0?`loading`:`initializing`:`idle`}function Dt(e){return e.phase===`failed`?{kind:`failed`,message:e.errorMessage??(e.hasItems?`The viewer could not load more items.`:`The viewer could not load items.`)}:e.phase===`initializing`?{kind:`initializing`,message:`Loading the first page`}:e.phase===`loading`?{kind:`loading-more`,message:e.hasItems?`Loading more items`:`Loading the first page`}:e.phase===`filling`?{kind:`filling`,message:`Filling the view`}:e.phase===`refreshing`?{kind:`refreshing`,message:!e.hasNextPage&&e.hasItems?e.surface===`grid`?`Refreshing the end of the list`:`Refreshing the end of the feed`:`Refreshing visible items`}:!e.hasItems||e.hasNextPage?null:{kind:`end`,message:e.surface===`grid`?`End of list`:`End of feed`}}function Ot(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 kt={currentTime:0,duration:0,errorKind:null,muted:!1,paused:!0,ready:!1,volume:1};function At(){return{...kt}}function jt(e){return e.complete&&!!(e.currentSrc||e.getAttribute(`src`))}function Mt(e,t,n){e.currentTime=Number.isFinite(t.currentTime)?t.currentTime:0,e.duration=Number.isFinite(t.duration)?t.duration:0,e.muted=t.muted,e.paused=t.paused,e.volume=Number.isFinite(t.volume)?t.volume:e.volume,n&&n!==`error`&&(e.errorKind=null),e.ready=Nt(t,n)}function Nt(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 Pt=new Map;function Ft(e){return e===`not-found`?`404`:`Load error`}function It(e){return e===`generic`}function Lt(e){return Rt(e).then(e=>e??`generic`)}function Rt(e){let t=Pt.get(e);if(t)return t;let n=zt(e);return Pt.set(e,n),n}async function zt(e){if(!Bt(e))return null;try{let t=await fetch(e,{method:`HEAD`});return t.ok?null:t.status===404?`not-found`:`generic`}catch{return`generic`}}function Bt(e){return/^(https?:\/\/|\/)/i.test(e)}function Vt(e){try{let t=e.play();t&&typeof t.catch==`function`&&t.catch(()=>{})}catch{}}function Ht(e){let t=typeof document>`u`?null:document;return typeof document<`u`&&typeof HTMLVideoElement<`u`&&e instanceof HTMLVideoElement&&(document.fullscreenElement===e||t?.webkitFullscreenElement===e)}function Ut(e){let t=e.requestFullscreen?.bind(e);if(t){let e=t();e&&typeof e.catch==`function`&&e.catch(()=>{});return}let n=e;if(n.webkitEnterFullscreen){n.webkitEnterFullscreen();return}n.webkitRequestFullscreen?.()}function Wt(t){let n=(0,e.ref)({}),r=(0,e.ref)({}),i=(0,e.ref)({}),a=(0,e.ref)({}),o=(0,e.ref)({}),s=new Map,c=new Map,l=new Set,u=(0,e.computed)(()=>t.activeItem.value?N(t.activeItem.value):null),d=(0,e.computed)(()=>t.activeMediaItem.value?N(t.activeMediaItem.value):null),f=(0,e.computed)(()=>{let e=new Map;for(let n of t.items.value)e.set(N(n),n);return e}),p=(0,e.computed)(()=>d.value?i.value[d.value]??kt:kt),m=(0,e.computed)(()=>d.value?p.value.duration:0),h=(0,e.computed)(()=>m.value<=0?0:Gt(p.value.currentTime/m.value*100,0,100)),g=(0,e.computed)(()=>u.value?I(u.value):null);(0,e.watch)(()=>u.value,async()=>{await S()}),(0,e.watch)(()=>t.itemCount.value,async()=>{await S()}),(0,e.watch)(()=>t.loopFullscreenVideo.value,async()=>{await S()});function _(e,t){if(t instanceof HTMLVideoElement){s.set(e,t),W(e,t);return}s.delete(e)}function v(e,t){if(t instanceof HTMLAudioElement){c.set(e,t),W(e,t);return}c.delete(e)}function y(e,t){t instanceof HTMLImageElement&&jt(t)&&(n.value[e]=!0,r.value[e]=null,X(e,t.currentSrc||t.src||te(e)))}function b(){H(),a.value={},r.value={},n.value={},o.value={},i.value={},l.clear()}function x(e){delete n.value[e],delete r.value[e],delete o.value[e],delete i.value[e],l.forEach(t=>{t.startsWith(`${e}|`)&&l.delete(t)})}async function S(){if(!t.isEnabled.value){H();return}await(0,e.nextTick)();let n=u.value;for(let[e,r]of s.entries()){if(e!==n||i.value[e]?.errorKind){V(r,e);continue}r.muted=!1,r.loop=t.loopFullscreenVideo.value,r.playsInline=!0,Vt(r),W(e,r)}for(let[e,t]of c.entries()){if(e!==n||i.value[e]?.errorKind){V(t,e);continue}Vt(t),W(e,t)}}function C(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;W(e,n,t.type);let a=i.value[e]?.ready??!1;!r&&a&&X(e,n.currentSrc||n.src||te(e))}}function w(e,t){n.value[e]=!0,r.value[e]=null,X(e,t)}async function T(e,i){let a=ee(e)??t.activeItem.value;n.value[e]=!1,r.value[e]=`generic`;let o=await Lt(i);r.value[e]=o,a&&t.onAssetError?.({item:a,occurrenceKey:e,url:i,kind:o,surface:`fullscreen`})}async function E(e,n){let r=q(e),i=U(e),a=ee(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 Lt(n);i.errorKind=o,a&&t.onAssetError?.({item:a,occurrenceKey:e,url:n,kind:o,surface:`fullscreen`})}function D(e,t,n){e.button!==0||Date.now()<n||Ht(e.currentTarget)||Y(s.get(t)??null)}function O(e,t,n){e.button!==0||Date.now()<n||Y(q(t))}function k(e){let t=J(),n=d.value;if(!t||!n||!(e.target instanceof HTMLInputElement))return;let r=Number.parseFloat(e.target.value);if(!Number.isFinite(r))return;let i=Gt(r,0,m.value||0);G(n,i,t),t.currentTime=i}function A(e){let t=J(),n=d.value;if(!t||!n||!(e.target instanceof HTMLInputElement))return;let r=Gt(Number.parseFloat(e.target.value),0,1);t.volume=r,t.muted=r<=0,r>0&&(o.value[n]=r),W(n,t)}function j(){let e=J(),t=d.value;!e||!t||(e.muted||e.volume<=0?(e.volume=K(t),e.muted=!1,o.value[t]=e.volume):(o.value[t]=e.volume,e.muted=!0),W(t,e))}function M(e){return!!n.value[e]&&!r.value[e]}function P(e){return(i.value[e]?.ready??!1)&&!i.value[e]?.errorKind}function F(e){return e.url}function I(e){return r.value[e]??i.value[e]?.errorKind??null}function L(e){let t=I(e);return t?Ft(t):null}function R(e){return It(I(e))}function z(e){return`${e}:${a.value[e]??0}`}async function B(t){if(!R(t))return;n.value[t]=!1,r.value[t]=null;let i=U(t);i.currentTime=0,i.duration=0,i.paused=!0,i.ready=!1,i.errorKind=null;let o=q(t);o&&V(o,t),l.forEach(e=>{e.startsWith(`${t}|`)&&l.delete(e)}),a.value[t]=(a.value[t]??0)+1,await(0,e.nextTick)(),await S()}function V(e,t){e.pause();try{e.currentTime=0}catch{}W(t,e)}function H(){for(let[e,t]of s.entries())V(t,e);for(let[e,t]of c.entries())V(t,e)}function U(e){return i.value[e]||(i.value[e]=At()),i.value[e]}function W(e,t,n){Mt(U(e),t,n),!t.muted&&t.volume>0&&(o.value[e]=t.volume)}function G(e,t,n){let r=U(e);r.currentTime=t,r.duration=Number.isFinite(n.duration)?n.duration:r.duration,r.muted=n.muted,r.paused=n.paused,r.volume=Number.isFinite(n.volume)?n.volume:r.volume}function K(e){return Gt(o.value[e]??1,0,1)}function q(e){return s.get(e)??c.get(e)??null}function J(){return d.value?q(d.value):null}function Y(e){if(e){if(e.paused){Vt(e);return}e.pause()}}function X(e,n){let r=ee(e)??t.activeMediaItem.value??t.activeItem.value;if(!r||!n)return;let i=`${e}|${n}`;l.has(i)||(l.add(i),t.onAssetLoad?.({item:r,occurrenceKey:e,surface:`fullscreen`,url:n}))}function ee(e){return f.value.get(e)??null}function te(e){return ee(e)?.url??null}return{activeAssetErrorKind:g,activeMediaDuration:m,activeMediaProgress:h,activeMediaState:p,getAssetErrorKind:I,getAssetErrorLabel:L,getAssetRenderKey:z,getImageSource:F,isImageReady:M,isMediaReady:P,canRetryAsset:R,mediaStates:i,onAudioCoverClick:O,onImageError:T,onImageLoad:w,onMediaError:E,onMediaEvent:C,onMediaSeekInput:k,onMediaVolumeInput:A,onMediaVolumeToggle:j,onVideoClick:D,registerAudioElement:v,registerImageElement:y,registerVideoElement:_,resetAssetState:x,resetMediaState:b,retryAsset:B,syncMediaPlayback:S}}function Gt(e,t,n){return Math.min(Math.max(e,t),n)}var Kt={backward:1,forward:3};function qt(e,t,n=Kt){return t<=0?{start:0,end:-1}:{start:Math.max(0,e-n.backward),end:Math.min(t-1,e+n.forward)}}function Jt(e,t,n=Kt){let r=qt(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 Yt(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 Xt(t,n,r={}){let i=(0,e.computed)(()=>t.items),a=(0,e.computed)(()=>t.activeIndex??0),o=(0,e.computed)(()=>t.errorMessage??null),s=(0,e.computed)(()=>t.loading??!1),c=(0,e.computed)(()=>t.hasNextPage??!1),l=(0,e.computed)(()=>t.loopFullscreenVideo??!0),u=(0,e.computed)(()=>t.paginationDetail??null),d=(0,e.computed)(()=>Et({itemCount:i.value.length,loading:s.value,phase:t.phase})),f=(0,e.computed)(()=>!1),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)(()=>i.value.length===0?0:F(a.value,0,i.value.length-1)),C=(0,e.computed)(()=>i.value[S.value]??null),w=(0,e.computed)(()=>C.value?.type===`audio`||C.value?.type===`video`?C.value:null),T=Wt({items:i,activeItem:C,activeMediaItem:w,isEnabled:_,itemCount:(0,e.computed)(()=>i.value.length),loopFullscreenVideo:l,onAssetError:r.onAssetError,onAssetLoad:r.onAssetLoad}),O=(0,e.computed)(()=>i.value.length>0&&S.value===i.value.length-1),k=(0,e.computed)(()=>Dt({errorMessage:o.value,hasItems:i.value.length>0,hasNextPage:c.value,phase:d.value,surface:`fullscreen`})),A=(0,e.computed)(()=>k.value?.kind??null),j=(0,e.computed)(()=>k.value?.message??null),M=(0,e.computed)(()=>Math.min(96,g.value*.15||96)),N=(0,e.computed)(()=>qt(S.value,i.value.length)),P=(0,e.computed)(()=>Jt(i.value,S.value));Ot({enabled:_,onDisable(){G(),T.resetMediaState()},onEnable(){return T.syncMediaPlayback()},onKeydown:q,onResize:I});function F(e,t,n){return Math.min(Math.max(e,t),n)}function I(){g.value=p.value?.clientHeight||window.innerHeight||1}function L(e){return i.value.length===0?!1:F(S.value+e,0,i.value.length-1)!==S.value}function R(e){if(i.value.length===0)return;let t=F(S.value+e,0,i.value.length-1);t!==S.value&&n(`update:activeIndex`,t)}function z(e){let t=e>0,n=e<0;return t&&!L(-1)||n&&!L(1)?e*.24:e}function B(e){!_.value||i.value.length===0||e.pointerType===`mouse`||D(e.target)||(v=e.pointerId,y=e.clientY,m.value=0,h.value=!0,p.value?.setPointerCapture?.(e.pointerId))}function V(e){!_.value||!h.value||v!==e.pointerId||(m.value=z(e.clientY-y))}function H(e){!_.value||v!==e.pointerId||(p.value?.releasePointerCapture?.(e.pointerId),W())}function U(e){!_.value||v!==e.pointerId||(p.value?.releasePointerCapture?.(e.pointerId),G())}function W(){Math.abs(m.value)>=M.value&&(x=Date.now()+250,R(m.value<0?1:-1)),G()}function G(){m.value=0,h.value=!1,v=null}function K(e){if(!_.value||i.value.length===0||h.value||D(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,R(e.deltaY>0?1:-1))}function q(e){!_.value||i.value.length===0||E(e.target)||((e.key===`ArrowDown`||e.key===`PageDown`)&&(e.preventDefault(),R(1)),(e.key===`ArrowUp`||e.key===`PageUp`)&&(e.preventDefault(),R(-1)))}function J(e,t){T.onVideoClick(e,t,x)}function Y(e,t){T.onAudioCoverClick(e,t,x)}function X(e){T.onMediaSeekInput(e)}function ee(e){T.onMediaVolumeInput(e)}function te(){T.onMediaVolumeToggle()}function ne(e){return e.type===`image`||e.type===`video`}function re(e){return e.type===`audio`}function ie(e){return Yt(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:f,errorMessage:o,getAssetErrorKind:T.getAssetErrorKind,getAssetErrorLabel:T.getAssetErrorLabel,getAssetRenderKey:T.getAssetRenderKey,formatPlaybackTime:Tt,getImageSource:T.getImageSource,getSlideStyle:ie,hasNextPage:c,isAtEnd:O,isAudio:re,isVisual:ne,items:i,loading:s,mediaStates:T.mediaStates,isImageReady:T.isImageReady,isMediaReady:T.isMediaReady,onAudioCoverClick:Y,onImageError:T.onImageError,onImageLoad:T.onImageLoad,onMediaEvent:T.onMediaEvent,onMediaError:T.onMediaError,onMediaSeekInput:X,onMediaVolumeInput:ee,onMediaVolumeToggle:te,onPointerCancel:U,onPointerDown:B,onPointerMove:V,onPointerUp:H,onVideoClick:J,onWheel:K,registerAudioElement:T.registerAudioElement,registerImageElement:T.registerImageElement,registerVideoElement:T.registerVideoElement,renderedItems:P,renderedRange:N,resolvedActiveIndex:S,resetAssetState:T.resetAssetState,retryInitialLoad:async()=>{},retryAsset:T.retryAsset,stageRef:p,statusKind:A,statusMessage:j,paginationDetail:u,phase:d}}var Zt=`bg-[linear-gradient(180deg,#0a0b10,#05060a)]`,Qt=`bg-[linear-gradient(180deg,#0b0c11,#06070b)]`,$t={image:!0,video:!0,audio:!0,other:!0};function en(e){return $t[e],Zt}function tn(e){return $t[e],Qt}function nn(e){function t(t,n){return e.fullscreenMedia.shouldHandleSlideAssetEvent(t,n)?e.fullscreenMedia.getItemKey(n):null}function n(n,r,i){let a=t(r,i);if(!a)return;e.fullscreenMedia.settleAssetPreload(a),e.viewer.onImageLoad(a,i.url);let o=n.currentTarget;o instanceof HTMLImageElement&&e.updateDominantToneFromImageElement(a,o)}async function r(n,r){let i=t(n,r);i&&(e.fullscreenMedia.settleAssetPreload(i),await e.viewer.onImageError(i,r.url))}function i(n,r,i){let a=t(n,r);return a?(e.viewer.onMediaEvent(a,i),a):null}async function a(n,r){let i=t(n,r);i&&(e.fullscreenMedia.settleAssetPreload(i),await e.viewer.onMediaError(i,r.url))}return{getHandledItemKey:t,onFullscreenImageError:r,onFullscreenImageLoad:n,onFullscreenMediaError:a,onFullscreenMediaEvent:i}}function rn(e){if(e.naturalWidth<=0||e.naturalHeight<=0)return null;let t=document.createElement(`canvas`),n=t.getContext(`2d`,{willReadFrequently:!0});if(!n)return null;t.width=24,t.height=24;try{n.drawImage(e,0,0,24,24);let{data:t}=n.getImageData(0,0,24,24),r=0,i=0,a=0,o=0;for(let e=0;e<t.length;e+=4){let n=t[e+3]/255;if(n<=.05)continue;let s=t[e],c=t[e+1],l=t[e+2],u=Math.max(s,c,l),d=n*(.65+(u===0?0:(u-Math.min(s,c,l))/u)*.7);r+=d,i+=s*d,a+=c*d,o+=l*d}return r<=0?null:{r:an(Math.round(i/r)),g:an(Math.round(a/r)),b:an(Math.round(o/r))}}catch{return null}}function an(e){return Math.min(235,Math.max(26,e))}function on(t){let n=(0,e.ref)({}),r=(0,e.computed)(()=>t.activeItem.value?t.getItemKey(t.activeItem.value):null),i=(0,e.computed)(()=>!t.showDominantImageTone.value||t.activeItem.value?.type!==`image`||!r.value||!t.isImageReady(r.value)?null:n.value[r.value]??null),a=(0,e.computed)(()=>{if(!i.value)return;let{r:e,g:t,b:n}=i.value;return{background:`radial-gradient(circle at top center, rgba(${e},${t},${n},0.34) 0%, transparent 44%), linear-gradient(180deg,#0a0b10,#05060a)`}}),o=(0,e.computed)(()=>{if(!i.value)return;let{r:e,g:t,b:n}=i.value;return{background:`radial-gradient(circle at center, rgba(${e},${t},${n},0.42) 0%, transparent 44%), linear-gradient(180deg,#0b0c11,#06070b)`}});(0,e.watch)(()=>t.showDominantImageTone.value,e=>{e||(n.value={})});function s(e,r){if(!t.showDominantImageTone.value)return;let i=rn(r);i&&(n.value[e]=i)}return{activeStageToneStyle:a,activeSlideToneStyle:o,updateFromImageElement:s}}function sn(e){let t=new Map;function n(e,n){if(n instanceof HTMLVideoElement){t.set(e,n);return}t.delete(e)}function r(){let n=e.activeItem.value,r=n?.type===`video`?t.get(e.getItemKey(n)):null;r&&Ut(r)}return{registerElement:n,request:r}}var cn={"data-testid":`vibe-forward-fill-placeholder`,class:`grid h-full min-h-0 place-items-center px-6 text-center`},ln={class:`grid w-full max-w-[22rem] justify-items-center gap-4 border border-white/14 bg-black/40 px-8 py-7 backdrop-blur-[18px]`},un={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)]`},dn={"data-testid":`vibe-forward-fill-message`,class:`m-0 text-[0.78rem] font-bold uppercase tracking-[0.24em] text-[#f7f1ea]/72`},fn={key:0,"data-testid":`vibe-forward-fill-progress`,class:`grid w-full gap-2`},pn={class:`flex items-center justify-between gap-4 text-[0.62rem] font-bold uppercase tracking-[0.16em] text-[#f7f1ea]/58`},mn={key:0},hn={key:0,class:`h-1 w-full overflow-hidden bg-white/10`},gn=(0,e.defineComponent)({__name:`FullscreenForwardFillPlaceholder`,props:{fillCollectedCount:{default:null},fillCompletedCalls:{default:0},fillLoadedCount:{default:0},fillMode:{default:`idle`},fillProgress:{default:null},fillTargetCalls:{default:null},fillTargetCount:{default:null},fillTotalCount:{default:null},hasNextPage:{type:Boolean,default:!1},phase:{default:null},statusMessage:{default:null}},setup(t){let n=t,r=(0,e.computed)(()=>n.phase===`filling`?n.statusMessage??`Filling the view`:n.hasNextPage?`Loading more items`:n.statusMessage??`Loading more items`),i=(0,e.computed)(()=>n.phase===`filling`||(n.fillMode??`idle`)!==`idle`),a=(0,e.computed)(()=>{if(!i.value)return null;let e=u(n.fillProgress);if(e!==null)return e;let t=l(n.fillCollectedCount),r=l(n.fillTargetCount);if(t!==null&&r!==null&&r>0)return d(t/r);let a=l(n.fillLoadedCount),o=l(n.fillTotalCount);return a!==null&&o!==null&&o>0?d(a/o):null}),o=(0,e.computed)(()=>{if(!i.value)return null;let e=l(n.fillCollectedCount),t=l(n.fillTargetCount);if(e!==null&&t!==null&&t>0)return`${e} / ${t} items`;let r=l(n.fillCompletedCalls)??0,a=l(n.fillTargetCalls);if(a!==null&&a>0)return`${r} / ${a} calls`;let o=l(n.fillLoadedCount)??0,s=l(n.fillTotalCount);return s===null?r>0?`${o} loaded / ${r} calls`:null:`${o} / ${s} loaded`}),s=(0,e.computed)(()=>a.value===null?null:`${Math.round(a.value*100)}%`),c=(0,e.computed)(()=>({width:`${(a.value??0)*100}%`}));function l(e){return typeof e==`number`&&Number.isFinite(e)&&e>=0?Math.floor(e):null}function u(e){return typeof e==`number`&&Number.isFinite(e)?d(e):null}function d(e){return Math.min(Math.max(e,0),1)}return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,cn,[(0,e.createElementVNode)(`div`,ln,[(0,e.createElementVNode)(`span`,un,[(0,e.createVNode)((0,e.unref)(m),{class:`h-5 w-5 animate-spin stroke-[1.9] text-[#f7f1ea]/78`,"aria-hidden":`true`})]),(0,e.createElementVNode)(`p`,dn,(0,e.toDisplayString)(r.value),1),o.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,fn,[(0,e.createElementVNode)(`div`,pn,[(0,e.createElementVNode)(`span`,null,(0,e.toDisplayString)(o.value),1),s.value?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,mn,(0,e.toDisplayString)(s.value),1)):(0,e.createCommentVNode)(``,!0)]),a.value===null?(0,e.createCommentVNode)(``,!0):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,hn,[(0,e.createElementVNode)(`span`,{"data-testid":`vibe-forward-fill-progress-bar`,class:`block h-full bg-[#f7f1ea]/58 transition-[width] duration-200`,style:(0,e.normalizeStyle)(c.value)},null,4)]))])):(0,e.createCommentVNode)(``,!0)])]))}}),_n=[`data-surface`],vn=[`data-surface`],yn=(0,e.defineComponent)({inheritAttrs:!1,__name:`SurfaceEmptyState`,props:{message:{},mode:{},surface:{}},setup(t){let n=(0,e.useAttrs)();return(r,i)=>t.mode===`inline`?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,(0,e.mergeProps)({key:0},(0,e.unref)(n),{"data-testid":`vibe-empty-state-inline`,"data-surface":t.surface,class:[`pointer-events-none absolute z-[4] text-center`,t.surface===`grid`?`inset-x-0 top-[clamp(6rem,22vh,11rem)] flex justify-center px-6`:`inset-0 grid place-items-center px-[clamp(2rem,4vw,3rem)] py-[clamp(2rem,4vw,3rem)]`]}),[(0,e.renderSlot)(r.$slots,`default`,{},()=>[(0,e.createElementVNode)(`p`,{class:(0,e.normalizeClass)([`m-0 text-[0.82rem] font-medium tracking-[0.08em]`,t.surface===`grid`?`text-[#f7f1ea]/58`:`text-[#f7f1ea]/64`])},(0,e.toDisplayString)(t.message),3)])],16,_n)):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,(0,e.mergeProps)({key:1},(0,e.unref)(n),{class:[`pointer-events-none absolute z-[4]`,t.surface===`grid`?`inset-x-0 bottom-0 flex justify-center px-6`:`bottom-[1.8rem] left-1/2 -translate-x-1/2 max-[720px]:bottom-[1.3rem]`]}),[(0,e.renderSlot)(r.$slots,`default`,{},()=>[(0,e.createElementVNode)(`span`,{"data-testid":`vibe-empty-state-badge`,"data-surface":t.surface,class:(0,e.normalizeClass)([`inline-flex items-center border border-white/14 backdrop-blur-[18px]`,t.surface===`grid`?`bg-black/55 px-4 py-3 text-[0.82rem] font-medium tracking-[0.08em] text-[#f7f1ea]/72`:`w-auto bg-black/40 px-5 py-3 text-[0.82rem] font-medium tracking-[0.08em] text-[#f7f1ea]/74 max-[720px]:w-[calc(100%-2.5rem)] max-[720px]:justify-center`])},(0,e.toDisplayString)(t.message),11,vn)])],16))}}),bn=1,xn=.5;function Sn(e){if(e.type!==`image`&&e.type!==`video`)return{width:bn,height:bn,source:`fallback`};let t=e.preview?.width,n=e.preview?.height;if(jn(t)&&jn(n)){let r=Mn(e,t,n);return{width:r.width,height:r.height,source:`preview`}}if(jn(e.width)&&jn(e.height)){let t=Mn(e,e.width,e.height);return{width:t.width,height:t.height,source:`original`}}return{width:bn,height:bn,source:`fallback`}}function Cn(e,t){return!e||e<=0||!t||t<=0?1:Math.max(1,Math.floor(e/t))}function wn(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 Tn(e,t){let n=Sn(e);return n.height/n.width*t}function En(e,t){let n=Array.from({length:t.columnCount},()=>0),r={positions:Array(e.length),heights:Array(e.length),buckets:new Map,contentHeight:0,indexById:new Map,columnHeights:n};return Dn(r,e,{...t,startIndex:0}),r}function Dn(e,t,n){for(let r=0;r<t.length;r+=1){let i=t[r],a=n.startIndex+r;e.indexById.set(N(i),a);let o=0;for(let t=1;t<e.columnHeights.length;t+=1)e.columnHeights[t]<e.columnHeights[o]&&(o=t);let s=o*(n.columnWidth+n.gapX),c=e.columnHeights[o],l=Tn(i,n.columnWidth);e.positions[a]={x:s+(n.positionOffsetX??0),y:c+(n.positionOffsetY??0)},e.heights[a]=l,e.columnHeights[o]=c+l+n.gapY,e.contentHeight=Math.max(e.contentHeight,c+l);let u=Math.floor(c/n.bucketPx),d=Math.floor((c+l)/n.bucketPx);for(let t=u;t<=d;t+=1){let n=e.buckets.get(t);n?e.buckets.set(t,[...n,a]):e.buckets.set(t,[a])}}return e}function On(e,t){let n=[...t.columnHeights],r=t.contentHeight;for(let i of e){let e=0;for(let t=1;t<n.length;t+=1)n[t]<n[e]&&(e=t);let a=n[e],o=Tn(i,t.columnWidth);n[e]=a+o+t.gapY,r=Math.max(r,a+o)}return r}function kn(e){return e.addedItems.length===0||e.removedItemCount>0||e.isPrepend||e.previousItems.length===0||e.layoutItemCount!==e.previousItems.length||e.columnHeights.length!==e.columnCount||e.currentItems.length!==e.previousItems.length+e.addedItems.length?!1:e.previousItems.every((t,n)=>N(t)===N(e.currentItems[n]))}function An(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 jn(e){return typeof e==`number`&&Number.isFinite(e)&&e>0}function Mn(e,t,n){return e.type!==`image`||n/t>=xn?{width:t,height:n}:{width:t,height:t}}var Nn=/\.(avif|gif|jpe?g|png|svg|webp)(\?|#|$)/i,Pn=/\.(m4v|mov|mp4|mpeg|ogg|ogv|webm)(\?|#|$)/i,Fn=/^(?:(?:https?:)?\/\/[^/]+)?\/api\/files\/[^/?#]+\/(?:preview|downloaded)(?:\?|#|$)/i;function In(e){let t=Ln(e),n=t?.url,r=Sn(e),i=e.title?.trim()||lt(e.type);return t?.mediaType===`video`&&typeof n==`string`?{kind:`video`,url:n,width:r.width,height:r.height,label:i}:t?.mediaType===`image`&&typeof n==`string`?{kind:`image`,url:n,width:r.width,height:r.height,label:i}:e.type!==`image`&&e.type!==`video`?{kind:`fallback`,url:null,width:r.width,height:r.height,label:i}:typeof n==`string`&&zn(e,n)?{kind:`video`,url:n,width:r.width,height:r.height,label:i}:typeof n==`string`&&Rn(e,n)?{kind:`image`,url:n,width:r.width,height:r.height,label:i}:{kind:`fallback`,url:null,width:r.width,height:r.height,label:i}}function Ln(e){return e.preview?.url?e.preview:typeof e.url!=`string`||e.url.trim()===``?null:{url:e.url}}function Rn(e,t){return e.type!==`image`||typeof t!=`string`?!1:Nn.test(t)||Bn(t)}function zn(e,t){return e.type!==`video`||typeof t!=`string`?!1:Pn.test(t)||Vn(t)}function Bn(e){return/^(https?:\/\/|\/\/|\/(?!\/)|\.{1,2}\/|blob:|data:)/i.test(e)}function Vn(e){return Fn.test(e)||/^blob:/i.test(e)||/^data:video\//i.test(e)}function Hn(e,t,n=2){return e.slice(t+1,t+1+n).map((e,n)=>({asset:In(e),index:t+n+1,item:e}))}var Un={class:`relative flex h-full min-h-0 flex-col overflow-hidden bg-[#05060a] text-[#f7f1ea]`},Wn={class:`relative z-[1] flex h-full min-h-0`},Gn={class:`relative flex min-h-0 min-w-0 flex-1 flex-col`},Kn={class:`relative min-h-0 flex-1`},qn={key:0,class:`relative h-full min-h-0`},Jn=[`data-item-id`,`data-occurrence-key`,`data-index`,`data-active`,`aria-hidden`],Yn={key:0,"data-testid":`vibe-asset-spinner`,class:`pointer-events-none absolute inset-0 z-[2] grid place-items-center`},Xn={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]`},Zn=[`data-kind`],Qn={class:`grid justify-items-center gap-4 border border-white/14 bg-black/45 px-8 py-7 text-center backdrop-blur-[18px]`},$n={class:`m-0 text-[0.82rem] font-bold uppercase tracking-[0.28em] text-[#f7f1ea]/70`},er=[`onClick`],tr=[`src`,`alt`,`onLoad`,`onError`],nr=[`loop`,`src`,`preload`,`onClick`,`onCanplay`,`onDurationchange`,`onEnded`,`onError`,`onLoadstart`,`onLoadedmetadata`,`onPause`,`onPlay`,`onPlaying`,`onSeeking`,`onSeeked`,`onStalled`,`onTimeupdate`,`onWaiting`],rr={class:`relative grid aspect-square w-[clamp(320px,46vw,560px)] max-w-[calc(100vw-2.5rem)] place-items-center`},ir=[`aria-label`,`disabled`,`onClick`],ar=[`src`,`alt`],or={key:1,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]`},sr={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]`},cr={key:0,"data-testid":`vibe-asset-spinner`,class:`pointer-events-none absolute inset-0 z-[3] grid place-items-center`},lr={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]`},ur=[`data-kind`],dr={class:`m-0 text-[0.82rem] font-bold uppercase tracking-[0.28em] text-[#f7f1ea]/70`},fr=[`onClick`],pr=[`src`,`preload`,`onCanplay`,`onDurationchange`,`onError`,`onLoadstart`,`onLoadedmetadata`,`onPause`,`onPlay`,`onPlaying`,`onSeeking`,`onSeeked`,`onStalled`,`onTimeupdate`,`onWaiting`],mr={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`},hr={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]`},gr={key:0,"data-testid":`vibe-fullscreen-overlay`,class:`pointer-events-none absolute inset-0 z-[6]`},_r={class:`h-full w-full`},vr={key:0,"data-testid":`vibe-fullscreen-aside-column`,class:`vibe-fullscreen-aside-column-shell relative h-full min-h-0 shrink-0 overflow-hidden`},yr={"data-testid":`vibe-fullscreen-aside`,class:`absolute inset-y-0 right-0 h-full min-h-0 w-[var(--vibe-fullscreen-aside-width,22rem)] overflow-hidden border-l border-white/10 bg-black/45 backdrop-blur-[18px]`},br={class:`h-full min-h-0 overflow-y-auto overscroll-y-contain`},xr={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]`},Sr={class:`h-full min-h-0 overflow-y-auto overscroll-y-contain`},Cr=1280,wr=768,Tr=(0,e.defineComponent)({__name:`FullscreenSurface`,props:{active:{type:Boolean,default:!0},activeIndex:{default:0},emptyStateMode:{default:`inline`},errorMessage:{default:null},fillCollectedCount:{default:null},fillCompletedCalls:{default:0},fillLoadedCount:{default:0},fillMode:{default:`idle`},fillProgress:{default:null},fillTargetCalls:{default:null},fillTargetCount:{default:null},fillTotalCount:{default:null},hasNextPage:{type:Boolean,default:!1},items:{},loading:{type:Boolean,default:!1},loopFullscreenVideo:{type:Boolean,default:!0},paginationDetail:{default:null},phase:{default:null},reportAssetError:{type:[Function,null],default:null},reportAssetLoad:{type:[Function,null],default:null},showDominantImageTone:{type:Boolean,default:!0},showBackToList:{type:Boolean,default:!1},showEndBadge:{type:Boolean,default:!0},showStatusBadges:{type:Boolean,default:!0}},emits:[`back-to-list`,`update:activeIndex`],setup(t,{emit:n}){let r=t,i=(0,e.useSlots)(),a=n,o=Xt(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`?Cr:window.innerWidth||Cr),c=xt({active:(0,e.toRef)(r,`active`),items:o.items,resolvedActiveIndex:o.resolvedActiveIndex,viewer:o}),l=sn({activeItem:o.activeItem,getItemKey:c.getItemKey}),u=(0,e.computed)(()=>en(o.activeItem.value?.type??`image`)),{activeSlideToneStyle:d,activeStageToneStyle:f,updateFromImageElement:p}=on({activeItem:o.activeItem,getItemKey:c.getItemKey,isImageReady:o.isImageReady,showDominantImageTone:(0,e.toRef)(r,`showDominantImageTone`)}),h=nn({fullscreenMedia:c,updateDominantToneFromImageElement:q,viewer:o}),y=(0,e.computed)(()=>!!o.activeMediaItem.value&&!o.activeAssetErrorKind.value),b=(0,e.computed)(()=>s.value<wr?`vertical`:`horizontal`),x=(0,e.computed)(()=>r.activeIndex>=r.items.length&&(r.loading||r.hasNextPage)),S=(0,e.computed)(()=>{let e=o.activeItem.value;return e?{hasNextPage:r.hasNextPage,index:o.resolvedActiveIndex.value,item:e,loading:r.loading,nextPreviews:Hn(o.items.value,o.resolvedActiveIndex.value),paginationDetail:r.paginationDetail,total:r.items.length}:null}),C=(0,e.computed)(()=>!S.value||!i[`fullscreen-header-actions`]?[]:i[`fullscreen-header-actions`](S.value)),w=(0,e.computed)(()=>!S.value||!i[`fullscreen-footer`]?[]:i[`fullscreen-footer`](S.value)),T=(0,e.computed)(()=>!S.value||!i[`fullscreen-aside`]?[]:i[`fullscreen-aside`](S.value)),E=(0,e.computed)(()=>!r.showStatusBadges||!S.value||!o.statusKind.value||!o.statusMessage.value?null:{...S.value,kind:o.statusKind.value,message:o.statusMessage.value}),D=(0,e.computed)(()=>!E.value||!i[`fullscreen-status`]?[]:i[`fullscreen-status`](E.value)),O=(0,e.computed)(()=>Q(C.value)),k=(0,e.computed)(()=>Q(T.value)),A=(0,e.computed)(()=>Q(w.value)),j=(0,e.computed)(()=>k.value&&s.value>=Cr),M=(0,e.computed)(()=>k.value&&!j.value),N=(0,e.computed)(()=>Q(D.value)),P=(0,e.computed)(()=>!!(o.activeItem.value&&(r.showBackToList||o.activeItem.value.title||o.items.value.length||O.value))),F=(0,e.computed)(()=>r.showEndBadge&&o.isAtEnd.value&&!o.hasNextPage.value&&!o.loading.value),I=(0,e.computed)(()=>A.value||!!E.value||F.value),L=(0,e.computed)(()=>y.value?`pb-[5.75rem] max-[720px]:pb-[7rem]`:``),{emptyStateProps:R,showBadgeEmptyState:z,showCustomEmptyState:B,showInlineEmptyState:V}=wt({emptyStateMode:(0,e.toRef)(r,`emptyStateMode`),itemCount:(0,e.computed)(()=>r.items.length),loading:(0,e.toRef)(r,`loading`),renderSlot:i[`empty-state`],surface:`fullscreen`});(0,e.onMounted)(()=>{window.addEventListener(`resize`,H)}),(0,e.onBeforeUnmount)(()=>{window.removeEventListener(`resize`,H)});function H(){s.value=window.innerWidth||Cr}function U(e,t){c.registerImageElement(e,t),o.registerImageElement(e,t),t instanceof HTMLImageElement&&q(e,t)}function W(e,t){c.registerMediaElement(e,t),o.registerVideoElement(e,t),l.registerElement(e,t)}function G(e,t){c.registerMediaElement(e,t),o.registerAudioElement(e,t)}function K(e,t,n){let r=h.onFullscreenMediaEvent(e,t,n),i=n.currentTarget,a=typeof HTMLMediaElement>`u`?1:HTMLMediaElement.HAVE_METADATA;r&&i instanceof HTMLMediaElement&&i.readyState>=a&&c.settleAssetPreload(r)}function q(e,t){p(e,t)}function J(e,t,n){let i=h.getHandledItemKey(t,n);if(!i||(o.onMediaEvent(i,e),!r.loopFullscreenVideo))return;let a=e.currentTarget;if(!(a instanceof HTMLVideoElement))return;try{a.currentTime=0}catch{}let s=a.play();s&&typeof s.catch==`function`&&s.catch(()=>{})}return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Un,[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`absolute inset-0 transition-[background] duration-200`,u.value]),style:(0,e.normalizeStyle)((0,e.unref)(f))},null,6),(0,e.createElementVNode)(`div`,Wn,[(0,e.createElementVNode)(`div`,Gn,[P.value?((0,e.openBlock)(),(0,e.createBlock)(et,{key:0,"current-index":(0,e.unref)(o).resolvedActiveIndex.value,loading:r.loading,"pagination-detail":(0,e.unref)(o).paginationDetail.value,"show-back-to-list":r.showBackToList,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},[O.value&&S.value?{name:`actions`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(t.$slots,`fullscreen-header-actions`,(0,e.normalizeProps)((0,e.guardReactiveProps)(S.value)))]),key:`0`}:void 0]),1032,[`current-index`,`loading`,`pagination-detail`,`show-back-to-list`,`title`,`total`])):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`div`,Kn,[(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).activeItem.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,qn,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)((0,e.unref)(o).renderedItems.value,({item:i,index:a})=>((0,e.openBlock)(),(0,e.createElementBlock)(`article`,{key:(0,e.unref)(c).getItemKey(i),"data-testid":`vibe-slide`,"data-item-id":i.id,"data-occurrence-key":(0,e.unref)(c).getItemKey(i),"data-index":a,"data-active":a===(0,e.unref)(o).resolvedActiveIndex.value,"aria-hidden":a===(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`,a===(0,e.unref)(o).resolvedActiveIndex.value?`pointer-events-auto`:`pointer-events-none`]),style:(0,e.normalizeStyle)((0,e.unref)(o).getSlideStyle(a))},[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`absolute inset-0 opacity-85`,(0,e.unref)(tn)(i.type)]),style:(0,e.normalizeStyle)(a===(0,e.unref)(o).resolvedActiveIndex.value&&i.type===`image`?(0,e.unref)(d):void 0)},null,6),(0,e.unref)(o).isVisual(i)?((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`,a===(0,e.unref)(o).resolvedActiveIndex.value?L.value:``])},[(0,e.unref)(c).isAssetLoading(a,i)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Yn,[(0,e.createElementVNode)(`span`,Xn,[(0,e.createVNode)((0,e.unref)(m),{class:`h-5 w-5 animate-spin stroke-[1.9] text-[#f7f1ea]/78`,"aria-hidden":`true`})])])):(0,e.createCommentVNode)(``,!0),(0,e.unref)(c).isAssetErrored(a,i)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:1,"data-testid":`vibe-asset-error`,"data-kind":(0,e.unref)(c).getAssetErrorKind(i),class:`grid h-full w-full place-items-center`},[(0,e.createElementVNode)(`div`,Qn,[(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`,$n,(0,e.toDisplayString)((0,e.unref)(c).getAssetErrorLabel(i)),1),(0,e.unref)(o).canRetryAsset((0,e.unref)(c).getItemKey(i))?((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((0,e.unref)(c).getItemKey(i)),[`stop`])},` Retry `,8,er)):(0,e.createCommentVNode)(``,!0)])],8,Zn)):i.type===`image`?((0,e.openBlock)(),(0,e.createElementBlock)(`img`,{key:(0,e.unref)(o).getAssetRenderKey((0,e.unref)(c).getItemKey(i)),src:(0,e.unref)(c).getFullscreenImageSource(a,i),alt:i.title??``,crossorigin:`anonymous`,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((0,e.unref)(c).getItemKey(i))?`opacity-100`:`opacity-0`]),ref_for:!0,ref:t=>U((0,e.unref)(c).getItemKey(i),t),onLoad:t=>(0,e.unref)(h).onFullscreenImageLoad(t,a,i),onError:t=>(0,e.unref)(h).onFullscreenImageError(a,i)},null,42,tr)):((0,e.openBlock)(),(0,e.createElementBlock)(`video`,{key:(0,e.unref)(o).getAssetRenderKey((0,e.unref)(c).getItemKey(i)),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((0,e.unref)(c).getItemKey(i))?`opacity-100`:`opacity-0`]),playsinline:``,loop:r.loopFullscreenVideo,src:(0,e.unref)(c).getFullscreenMediaSource(a,i),preload:(0,e.unref)(c).getFullscreenMediaPreload(a),ref_for:!0,ref:t=>W((0,e.unref)(c).getItemKey(i),t),onClick:(0,e.withModifiers)(t=>(0,e.unref)(o).onVideoClick(t,(0,e.unref)(c).getItemKey(i)),[`stop`]),onCanplay:e=>K(a,i,e),onDurationchange:e=>K(a,i,e),onEnded:e=>J(e,a,i),onError:t=>(0,e.unref)(h).onFullscreenMediaError(a,i),onLoadstart:e=>K(a,i,e),onLoadedmetadata:e=>K(a,i,e),onPause:e=>K(a,i,e),onPlay:e=>K(a,i,e),onPlaying:e=>K(a,i,e),onSeeking:e=>K(a,i,e),onSeeked:e=>K(a,i,e),onStalled:e=>K(a,i,e),onTimeupdate:e=>K(a,i,e),onWaiting:e=>K(a,i,e)},null,42,nr))],2)):(0,e.unref)(o).isAudio(i)?((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`,a===(0,e.unref)(o).resolvedActiveIndex.value?L.value:``])},[(0,e.createElementVNode)(`div`,rr,[(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[(0,e.unref)(c).getItemKey(i)]?.paused??!0?(0,e.unref)(c).getMediaActionLabel(`Play`,i):(0,e.unref)(c).getMediaActionLabel(`Pause`,i),disabled:!!(0,e.unref)(c).getAssetErrorKind(i),onClick:t=>(0,e.unref)(o).onAudioCoverClick(t,(0,e.unref)(c).getItemKey(i))},[(0,e.unref)(c).getFullscreenAudioCoverSource(i)?((0,e.openBlock)(),(0,e.createElementBlock)(`img`,{key:0,"data-testid":`vibe-fullscreen-audio-cover`,src:(0,e.unref)(c).getFullscreenAudioCoverSource(i)??void 0,alt:i.title??``,draggable:`false`,class:`pointer-events-none absolute inset-0 h-full w-full object-cover`},null,8,ar)):(0,e.createCommentVNode)(``,!0),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.unref)(c).getFullscreenAudioCoverSource(i)?(0,e.createCommentVNode)(``,!0):((0,e.openBlock)(),(0,e.createElementBlock)(`span`,or,[(0,e.renderSlot)(t.$slots,`item-icon`,{icon:(0,e.unref)(ct)(i.type),item:i},()=>[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)((0,e.unref)(ct)(i.type)),{class:`h-6 w-6 stroke-[1.9]`,"aria-hidden":`true`}))])])),(0,e.createElementVNode)(`span`,sr,[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)((0,e.unref)(o).mediaStates.value[(0,e.unref)(c).getItemKey(i)]?.paused??!0?(0,e.unref)(_):(0,e.unref)(g)),{class:`h-4 w-4 stroke-2`,"aria-hidden":`true`}))])],8,ir),(0,e.unref)(c).isAssetLoading(a,i)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,cr,[(0,e.createElementVNode)(`span`,lr,[(0,e.createVNode)((0,e.unref)(m),{class:`h-5 w-5 animate-spin stroke-[1.9] text-[#f7f1ea]/78`,"aria-hidden":`true`})])])):(0,e.createCommentVNode)(``,!0),(0,e.unref)(c).getAssetErrorKind(i)?((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":(0,e.unref)(c).getAssetErrorKind(i),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`,dr,(0,e.toDisplayString)((0,e.unref)(c).getAssetErrorLabel(i)),1),(0,e.unref)(o).canRetryAsset((0,e.unref)(c).getItemKey(i))?((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((0,e.unref)(c).getItemKey(i)),[`stop`])},` Retry `,8,fr)):(0,e.createCommentVNode)(``,!0)],8,ur)],64)):(0,e.createCommentVNode)(``,!0)]),((0,e.openBlock)(),(0,e.createElementBlock)(`audio`,{key:(0,e.unref)(o).getAssetRenderKey((0,e.unref)(c).getItemKey(i)),src:(0,e.unref)(c).getFullscreenMediaSource(a,i),preload:(0,e.unref)(c).getFullscreenMediaPreload(a),class:`pointer-events-none absolute h-px w-px opacity-0`,ref_for:!0,ref:t=>G((0,e.unref)(c).getItemKey(i),t),onCanplay:e=>K(a,i,e),onDurationchange:e=>K(a,i,e),onError:t=>(0,e.unref)(h).onFullscreenMediaError(a,i),onLoadstart:e=>K(a,i,e),onLoadedmetadata:e=>K(a,i,e),onPause:e=>K(a,i,e),onPlay:e=>K(a,i,e),onPlaying:e=>K(a,i,e),onSeeking:e=>K(a,i,e),onSeeked:e=>K(a,i,e),onStalled:e=>K(a,i,e),onTimeupdate:e=>K(a,i,e),onWaiting:e=>K(a,i,e)},null,40,pr))],2)):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,mr,[(0,e.createElementVNode)(`div`,hr,[(0,e.renderSlot)(t.$slots,`item-icon`,{icon:(0,e.unref)(ct)(i.type),item:i},()=>[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)((0,e.unref)(ct)(i.type)),{class:`h-6 w-6 stroke-[1.9]`,"aria-hidden":`true`}))])])]))],14,Jn))),128)),S.value&&i[`fullscreen-overlay`]?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,gr,[(0,e.createElementVNode)(`div`,_r,[(0,e.renderSlot)(t.$slots,`fullscreen-overlay`,(0,e.normalizeProps)((0,e.guardReactiveProps)(S.value)))])])):(0,e.createCommentVNode)(``,!0),y.value?((0,e.openBlock)(),(0,e.createBlock)(Ge,{key:1,"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),muted:(0,e.unref)(o).activeMediaState.value.muted,progress:(0,e.unref)(o).activeMediaProgress.value,"show-fullscreen-control":(0,e.unref)(o).activeMediaItem.value?.type===`video`,volume:(0,e.unref)(o).activeMediaState.value.volume,"volume-control-layout":b.value,onFullscreenRequest:(0,e.unref)(l).request,onSeekInput:(0,e.unref)(o).onMediaSeekInput,onVolumeInput:(0,e.unref)(o).onMediaVolumeInput,onVolumeToggle:(0,e.unref)(o).onMediaVolumeToggle},null,8,[`current-time`,`current-time-label`,`duration`,`duration-label`,`muted`,`progress`,`show-fullscreen-control`,`volume`,`volume-control-layout`,`onFullscreenRequest`,`onSeekInput`,`onVolumeInput`,`onVolumeToggle`])):(0,e.createCommentVNode)(``,!0)])):x.value?((0,e.openBlock)(),(0,e.createBlock)(gn,{key:1,"fill-collected-count":r.fillCollectedCount,"fill-completed-calls":r.fillCompletedCalls,"fill-loaded-count":r.fillLoadedCount,"fill-mode":r.fillMode,"fill-progress":r.fillProgress,"fill-target-calls":r.fillTargetCalls,"fill-target-count":r.fillTargetCount,"fill-total-count":r.fillTotalCount,"has-next-page":r.hasNextPage,phase:r.phase,"status-message":(0,e.unref)(o).statusMessage.value},null,8,[`fill-collected-count`,`fill-completed-calls`,`fill-loaded-count`,`fill-mode`,`fill-progress`,`fill-target-calls`,`fill-target-count`,`fill-total-count`,`has-next-page`,`phase`,`status-message`])):(0,e.unref)(V)&&(0,e.unref)(R)?((0,e.openBlock)(),(0,e.createBlock)(yn,{key:2,message:(0,e.unref)(R).message,mode:(0,e.unref)(R).mode,surface:(0,e.unref)(R).surface},{default:(0,e.withCtx)(()=>[(0,e.unref)(B)?(0,e.renderSlot)(t.$slots,`empty-state`,(0,e.normalizeProps)((0,e.mergeProps)({key:0},(0,e.unref)(R)))):(0,e.createCommentVNode)(``,!0)]),_:3},8,[`message`,`mode`,`surface`])):(0,e.createCommentVNode)(``,!0),(0,e.unref)(z)&&(0,e.unref)(R)?((0,e.openBlock)(),(0,e.createBlock)(yn,{key:3,message:(0,e.unref)(R).message,mode:(0,e.unref)(R).mode,surface:(0,e.unref)(R).surface},{default:(0,e.withCtx)(()=>[(0,e.unref)(B)?(0,e.renderSlot)(t.$slots,`empty-state`,(0,e.normalizeProps)((0,e.mergeProps)({key:0},(0,e.unref)(R)))):(0,e.createCommentVNode)(``,!0)]),_:3},8,[`message`,`mode`,`surface`])):(0,e.createCommentVNode)(``,!0)],544)]),I.value?((0,e.openBlock)(),(0,e.createBlock)(at,{key:1,"show-end-badge":F.value,"show-status":!!E.value,"status-kind":E.value?.kind??null,"status-message":E.value?.message??null},(0,e.createSlots)({default:(0,e.withCtx)(()=>[A.value&&S.value?(0,e.renderSlot)(t.$slots,`fullscreen-footer`,(0,e.normalizeProps)((0,e.mergeProps)({key:0},S.value))):(0,e.createCommentVNode)(``,!0)]),_:2},[N.value&&E.value?{name:`status`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(t.$slots,`fullscreen-status`,(0,e.normalizeProps)((0,e.guardReactiveProps)(E.value)))]),key:`0`}:void 0]),1032,[`show-end-badge`,`show-status`,`status-kind`,`status-message`])):(0,e.createCommentVNode)(``,!0)]),(0,e.createVNode)(e.Transition,{name:`vibe-fullscreen-aside-column`},{default:(0,e.withCtx)(()=>[j.value&&S.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,vr,[(0,e.createElementVNode)(`aside`,yr,[(0,e.createElementVNode)(`div`,br,[(0,e.renderSlot)(t.$slots,`fullscreen-aside`,(0,e.normalizeProps)((0,e.guardReactiveProps)(S.value)))])])])):(0,e.createCommentVNode)(``,!0)]),_:3})]),(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)(()=>[M.value&&S.value?((0,e.openBlock)(),(0,e.createElementBlock)(`aside`,xr,[(0,e.createElementVNode)(`div`,Sr,[(0,e.renderSlot)(t.$slots,`fullscreen-aside`,(0,e.normalizeProps)((0,e.guardReactiveProps)(S.value)))])])):(0,e.createCommentVNode)(``,!0)]),_:3})]))}});function Er(t){let n=(0,e.shallowRef)([]),r=(0,e.shallowRef)([]),i=(0,e.shallowRef)(new Map),a=(0,e.shallowRef)(0),o=(0,e.shallowRef)(new Map),s=(0,e.shallowRef)([]);function c(e,c,l){let u=En(e,{columnCount:c,columnWidth:l,gapX:t.gapPx,gapY:t.gapPx,bucketPx:t.bucketPx});n.value=u.positions.map(f),r.value=u.heights,i.value=u.buckets,a.value=u.contentHeight,o.value=u.indexById,s.value=u.columnHeights}function l(c,l,u,f){a.value=Dn(d(),c,{columnCount:u,columnWidth:f,gapX:t.gapPx,gapY:t.gapPx,bucketPx:t.bucketPx,startIndex:l,positionOffsetX:t.contentInsetPx,positionOffsetY:t.contentInsetPx}).contentHeight,(0,e.triggerRef)(n),(0,e.triggerRef)(r),(0,e.triggerRef)(i),(0,e.triggerRef)(o),(0,e.triggerRef)(s)}function u(e,t,r,i){return kn({addedItems:r.addedItems,columnCount:i,columnHeights:s.value,currentItems:e,isPrepend:r.isPrepend,layoutItemCount:n.value.length,previousItems:t,removedItemCount:r.removedItems.length})}function d(){return{positions:n.value,heights:r.value,buckets:i.value,contentHeight:a.value,indexById:o.value,columnHeights:s.value}}function f(e){return{x:e.x+t.contentInsetPx,y:e.y+t.contentInsetPx}}return{append:l,buckets:i,canAppend:u,columnHeights:s,contentHeight:a,heights:r,indexById:o,positions:n,rebuild:c}}var Dr=300,Or=600,kr=40,Ar=300,jr=400,Mr=300;function Nr(e,t){return t===`top`?[...e].reverse():e}function Pr(e){return e<=0?Or:Or+Math.min((e-1)*kr,jr)}function Fr(e,t,n=Mr){return e+t>n}function Ir(){return Ar}function Lr(e){let t=e.itemHeight>0?e.itemHeight:e.columnWidth;return e.direction===`top`?e.scrollTop-t:e.scrollTop+e.viewportHeight+t}function Rr(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 Set),c=(0,e.ref)(new Map),l=(0,e.ref)(new Map),u=(0,e.ref)(new Set),d=new Set,f=new Set,p=(0,e.computed)(()=>Array.from(o.value.values()));(0,e.watch)(t.visibleIndices,e=>{if(!e.length)return;let o=[];for(let r of e){let e=t.items.value[r]?N(t.items.value[r]):null;!e||!n.value.has(e)||d.has(e)||(d.add(e),o.push(e))}if(!o.length)return;let s=Nr(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*kr,jr));i.value=c,zr(()=>{let e=new Set(r.value);for(let t of o)e.add(t);r.value=e}),Br(()=>{let e=new Set(n.value);for(let t of o)e.delete(t);n.value=e,C(()=>{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),d.delete(r);r.value=e,i.value=t,a.value=n},Pr(o.length))})},{flush:`post`}),(0,e.watch)(()=>t.items.value.map(e=>N(e)),e=>{if(!e.length||!o.value.size)return;let t=new Set(e),n=null,r=null;for(let e of o.value.keys())t.has(e)&&(n||=new Map(o.value),r||=new Set(s.value),n.delete(e),r.delete(e));n&&(o.value=n),r&&(s.value=r)}),(0,e.onBeforeUnmount)(()=>{for(let e of f)clearTimeout(e);f.clear()});function m(e,r=`bottom`){if(!e.length)return;let i=Fr(n.value.size,e.length),o=i?new Set(t.visibleIndices.value):null,s=o?h(o):new Set(n.value),c=i?g(s):new Map(a.value);for(let n of e){let e=N(n),a=i?t.indexById.value.get(e):null;o&&(a==null||!o.has(a))||(s.add(e),c.set(e,r))}n.value=s,a.value=c}function h(e){let i=new Set;for(let r of e){let e=t.items.value[r],a=e?N(e):null;a&&n.value.has(a)&&i.add(a)}for(let e of d)n.value.has(e)&&i.add(e);for(let e of r.value)n.value.has(e)&&i.add(e);return i}function g(e){let t=new Map;for(let n of e){let e=a.value.get(n);e&&t.set(n,e)}return t}function _(e){if(!e.length)return;let t=new Map(o.value),c=new Set(n.value),l=new Set(r.value),u=new Map(i.value),f=new Map(a.value),p=[];for(let n of e){let e=N(n.item);p.push(e),t.set(e,n),c.delete(e),l.delete(e),u.delete(e),f.delete(e),d.delete(e)}o.value=t,n.value=c,r.value=l,i.value=u,a.value=f,zr(()=>{let e=new Set(s.value);for(let t of p)e.add(t);s.value=e}),C(()=>{let e=new Map(o.value),t=new Set(s.value);for(let n of p)e.delete(n),t.delete(n);o.value=e,s.value=t},Ar)}function v(e,n,r=Dr){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;c.value=i,u.value=new Set;let o=new Map(l.value);for(let e of a)o.set(e,r);l.value=o,zr(()=>{u.value=new Set(a),zr(()=>{c.value=new Map})}),C(()=>{u.value=new Set;let e=new Map(l.value);for(let t of a)e.delete(t);l.value=e},r)}function y(e){if(r.value.has(e))return`transform ${Or}ms ease-out`;if(u.value.has(e))return`transform ${l.value.get(e)??Dr}ms ease-out`}function b(e){if(!r.value.has(e))return;let t=i.value.get(e)??0;return t>0?`${t}ms`:void 0}function x(e){let r=t.items.value[e],i=t.positions.value[e]??{x:0,y:0},o=t.heights.value[e]??t.columnWidth.value,s=r?N(r):null,l=s?c.value.get(s)??{dx:0,dy:0}:{dx:0,dy:0},u=s?a.value.get(s)??`bottom`:`bottom`,d=s&&n.value.has(s)?Lr({columnWidth:t.columnWidth.value,direction:u,itemHeight:o,scrollTop:t.scrollTop.value,viewportHeight:t.viewportHeight.value}):i.y;return`translate3d(${i.x+l.dx}px, ${d+l.dy}px, 0)`}function S(e){let n=N(e),r=o.value.get(n);if(!r)return{opacity:`0`,transform:`translate3d(0, 0, 0) scale(0.96)`,transition:`opacity ${Ar}ms ease-out, transform ${Ar}ms ease-out`};let i=s.value.has(n);return{height:`${r.height}px`,opacity:i?`0`:`1`,transform:`translate3d(${r.position.x}px, ${r.position.y}px, 0) scale(${i?`0.96`:`1`})`,transition:`opacity ${Ar}ms ease-out, transform ${Ar}ms ease-out`,width:`${t.columnWidth.value}px`}}function C(e,t){let n=setTimeout(()=>{f.delete(n),e()},t);f.add(n)}return{getCardTransform:x,getCardTransition:y,getCardTransitionDelay:b,getLeavingCardStyle:S,leavingItems:p,markEnter:m,markLeave:_,playFlipMoveAnimation:v}}function zr(e){if(typeof requestAnimationFrame==`function`){requestAnimationFrame(()=>e());return}setTimeout(e,0)}function Br(e){zr(()=>zr(e))}function Vr(e,t){return e?.clientHeight||Math.round(e?.getBoundingClientRect().height??0)||t||window.innerHeight||1}function Hr(e,t,n){return e?.clientWidth||Math.round(e?.getBoundingClientRect().width??0)||t||window.innerWidth||n}function Ur(e,t,n,r){return Math.max(e?.scrollHeight??0,r)-(t+n)}function Wr(e,t){return{height:`${e}px`,transform:`translate3d(0, ${t}px, 0)`}}var Gr=24,Kr=48;function qr(t){let n=(0,e.ref)(0),r=0,i=0;function a(e){if(n.value=Qr(e),n.value<=0){s();return}o()}function o(){r||n.value<=0||!t.active.value||typeof requestAnimationFrame>`u`||(r=requestAnimationFrame(c))}function s(){r&&typeof cancelAnimationFrame<`u`&&cancelAnimationFrame(r),r=0,i=0}function c(e){if(r=0,!t.active.value||n.value<=0){s();return}let a=t.getViewport();if(a&&i>0){let r=Math.min(Math.max(0,e-i),250),o=n.value*r/1e3;a.scrollTop=$r(a.scrollTop+o,0,t.getMaxScrollTop()),t.onScroll()}i=e,o()}return{autoScroll:a,start:o,stop:s}}function Jr(e){if(!e.active||!e.triggerEnabled)return 0;let t=Math.max(0,e.maxScrollTop-e.thresholdPx);return t<=0?1:$r(1-(e.progressDistancePx-e.thresholdPx)/t,0,1)}function Yr(e){if(!e.active||!e.triggerEnabled)return 0;let t=Math.max(0,e.maxScrollTop-e.thresholdPx);return t<=0?1:$r(e.progressDistancePx/t,0,1)}function Xr(t){let n=(0,e.computed)(()=>Math.max(0,t.viewportHeight.value-Gr*2)),r=(0,e.computed)(()=>t.containerHeight.value>t.viewportHeight.value+1&&n.value>0),i=(0,e.computed)(()=>{if(!r.value)return 0;let e=t.viewportHeight.value/t.containerHeight.value*n.value;return Math.min(n.value,Math.max(Kr,e))}),a=(0,e.computed)(()=>{if(!r.value)return Gr;let e=Math.max(0,t.containerHeight.value-t.viewportHeight.value);return Gr+Math.max(0,n.value-i.value)*(e>0?$r(t.scrollTop.value/e,0,1):0)});return{getScrollbarThumbStyle:()=>Wr(i.value,a.value),showScrollbar:r}}function Zr(e){return typeof e==`number`&&Number.isFinite(e)?Math.max(0,e):0}function Qr(e){return Number.isFinite(e)?Math.max(0,e):0}function $r(e,t,n){return Math.min(Math.max(e,t),n)}var ei=250,ti=1e3;function ni(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,e.ref)(!1),l=0,u=null;(0,e.onBeforeUnmount)(()=>{S()});function d(e=`layout`){let i=n.value;if(n.value=t.isAtBoundary(),!n.value){(!o.value&&!s.value||e===`scroll`)&&(r.value=!0);return}if(!i&&r.value){if(e===`scroll`&&o.value){c.value=!0;return}g()}}function f(e){if(!C(e)||!t.isAtBoundary())return;let n=Date.now();if(!(n<l)){if(l=n+ei,o.value){c.value=!0;return}g()}}function p(){if(!v())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{y();return}Promise.resolve(n).catch(()=>{}).finally(()=>{!t.loading.value&&s.value&&y()})}function m(e){!e&&s.value&&y()}function h(e){!s.value||e<=0||(s.value=!1,b(t.getAnimationLockMs(e)))}function g(){_()&&(i.value+=1)}function _(){return t.hasPage.value&&!t.interactionLocked?.value&&!t.loading.value&&!o.value&&typeof t.requestPage.value==`function`}function v(){return t.hasPage.value&&n.value&&i.value>a.value&&!t.interactionLocked?.value&&!t.loading.value&&!o.value&&typeof t.requestPage.value==`function`}function y(){s.value=!1,b(ti)}function b(e){S(),o.value=!0,u=setTimeout(()=>{u=null,o.value=!1,x()},Math.max(0,e))}function x(){if(c.value){if(c.value=!1,!t.isAtBoundary()){s.value||(r.value=!0);return}n.value=!0,g(),p()}}function S(){u&&=(clearTimeout(u),null)}function C(e){return t.direction===`top`?e.deltaY<0:e.deltaY>0}return{maybeRequestPage:p,onItemsMutated:h,onLoadingChange:m,onWheel:f,syncBoundary:d}}function ri(){let t=(0,e.ref)(!1),n=null;(0,e.onBeforeUnmount)(()=>{i()});function r(e){i(),t.value=!0,n=setTimeout(()=>{n=null,t.value=!1},Math.max(0,e))}function i(){n&&(clearTimeout(n),n=null,t.value=!1)}return{clearBoundaryInteractionReleaseTimer:i,isBoundaryInteractionLocked:t,lockBoundaryInteraction:r}}function ii(e){let t=e.currentItems.map(e=>N(e)),n=e.previousItems.map(e=>N(e)),r=oi(e.previousItems,e.layoutIndexById,e.layoutHeights),i=si(e.previousItems,e.layoutIndexById,e.layoutPositions),a=new Set(n),o=new Set(t),s=e.currentItems.filter(e=>!a.has(N(e))),c=ai(e.previousItems,o,r,i),l=t.length>n.length&&n.length>0&&t[0]!==n[0],u=e.scrollTop>e.contentInsetPx+e.gapPx,d=l&&u?e.currentItems[e.activeIndex]:null;return{addedItems:s,anchorId:d?N(d):null,isPrepend:l,oldPositionsById:i,previousIds:n,removedItems:c,shouldLockBoundaryInteractionForRemoval:c.length>0&&u,shouldResetScrollForEmptyRemoval:e.currentItems.length===0&&e.previousItems.length>0&&c.length>0&&e.scrollTop>0}}function ai(e,t,n,r){return e.flatMap(e=>{let i=N(e);if(t.has(i))return[];let a=r.get(i),o=n.get(i);return a&&o!=null?[{height:o,item:e,position:a}]:[]})}function oi(e,t,n){let r=new Map;for(let i of e){let e=N(i),a=t.get(e),o=a==null?void 0:n[a];o!=null&&r.set(e,o)}return r}function si(e,t,n){let r=new Map;for(let i of e){let e=N(i),a=t.get(e),o=a==null?void 0:n[a];o&&r.set(e,o)}return r}function ci(t){let n=(0,e.ref)(null),r=(0,e.ref)(!1),i=null;function a(){s(),t.pendingAppendItems.value.length&&(n.value=l([...t.items.value,...t.pendingAppendItems.value]),c())}function o(e){!e&&!t.pendingAppendItems.value.length&&!i&&!r.value&&(n.value=null)}function s(){i&&=(clearTimeout(i),null)}function c(){let a=t.commitPendingAppend.value;typeof a==`function`&&(i=setTimeout(async()=>{i=null,r.value=!0;try{t.pendingAppendItems.value.length&&(await a(),await(0,e.nextTick)(),await(0,e.nextTick)())}finally{n.value=null,r.value=!1}},300))}function l(e){return e.length?t.pendingAppendItems.value.length&&t.columnHeights.value.length===t.columnCount.value?On(t.pendingAppendItems.value,{columnHeights:t.columnHeights.value,columnWidth:t.columnWidth.value,contentHeight:t.contentHeight.value,gapY:t.gapPx})+t.contentInsetPx*2:En(e,{bucketPx:t.bucketPx,columnCount:t.columnCount.value,columnWidth:t.columnWidth.value,gapX:t.gapPx,gapY:t.gapPx}).contentHeight+t.contentInsetPx*2:0}return{clearAppendCommitTimer:s,clearReservedHeightWhenIdle:o,refreshReservedContentHeight:a,reservedContentHeight:n}}var li=600,$=24,ui=16,di=300,fi=200,pi=0,mi=1,hi=$+ui,gi=200,_i=500,vi=1e3;function yi(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||di),o=Er({bucketPx:li,contentInsetPx:$,gapPx:ui}),{buckets:s,columnHeights:c,contentHeight:l,heights:u,indexById:d,positions:f}=o,p=(0,e.ref)(null),m=ri(),h=(0,e.computed)(()=>Math.max(di,a.value-$*2)),g=(0,e.computed)(()=>Cn(h.value,di)),_=(0,e.computed)(()=>wn(h.value,g.value,di,ui)),v=(0,e.computed)(()=>Zr(t.bottomLoadBufferPx.value)),y=(0,e.computed)(()=>bi(t.activeIndex.value,0,Math.max(0,t.items.value.length-1))),b=(0,e.computed)(()=>An({itemCount:t.items.value.length,viewportHeight:i.value,scrollTop:r.value,overscanPx:fi,bucketPx:li,buckets:s.value})),x=(0,e.computed)(()=>b.value.map(e=>({item:t.items.value[e],index:e}))),S=(0,e.computed)(()=>{let e=l.value+$*2,t=M.reservedContentHeight.value??0;return Math.max(e,t,i.value)+gi+v.value}),C=(0,e.computed)(()=>t.hasNextPage.value||t.allowExhaustedNextPageRefresh.value),w=(0,e.computed)(()=>Yr({active:t.active.value,maxScrollTop:Y(),progressDistancePx:r.value,thresholdPx:pi,triggerEnabled:C.value})),T=(0,e.computed)(()=>t.items.value.length>0?`${y.value+1} / ${t.items.value.length}`:`0 / 0`),E=(0,e.computed)(()=>Jr({active:t.active.value,maxScrollTop:Y(),progressDistancePx:r.value,thresholdPx:hi,triggerEnabled:t.hasPreviousPage.value})),D=Xr({containerHeight:S,scrollTop:r,viewportHeight:i}),O=Rr({items:t.items,visibleIndices:b,positions:f,heights:u,indexById:d,columnWidth:_,scrollTop:r,viewportHeight:i}),k=ni({direction:`top`,getAnimationLockMs(e){return Math.max(_i,Pr(e))+vi},hasPage:t.hasPreviousPage,interactionLocked:m.isBoundaryInteractionLocked,isAtBoundary(){return r.value<=hi},loading:t.loading,requestPage:t.requestPreviousPage}),A=ni({direction:`bottom`,getAnimationLockMs(e){return Pr(e)+vi},hasPage:C,interactionLocked:m.isBoundaryInteractionLocked,isAtBoundary(){return J()<=mi},loading:t.loading,requestPage:t.requestNextPage}),j=qr({active:t.active,getMaxScrollTop:Y,getViewport:()=>n.value,onScroll:I}),M=ci({bucketPx:li,columnHeights:c,columnCount:g,columnWidth:_,commitPendingAppend:t.commitPendingAppend,contentHeight:l,contentInsetPx:$,gapPx:ui,items:t.items,pendingAppendItems:t.pendingAppendItems}),P=null,F=0;(0,e.watch)([()=>t.items.value,g,_],async([n],[i=[]])=>{let a=ii({activeIndex:y.value,contentInsetPx:$,currentItems:n,gapPx:ui,layoutHeights:u.value,layoutIndexById:d.value,layoutPositions:f.value,previousItems:i??[],scrollTop:r.value});a.shouldLockBoundaryInteractionForRemoval&&m.lockBoundaryInteraction(Ir()+vi),a.shouldResetScrollForEmptyRemoval&&V();let s=i??[];o.canAppend(n,s,a,g.value)?o.append(a.addedItems,s.length,g.value,_.value):o.rebuild(n,g.value,_.value),a.removedItems.length>0&&O.markLeave(a.removedItems),a.addedItems.length>0&&(O.markEnter(a.addedItems,a.isPrepend?`top`:`bottom`),a.isPrepend?k.onItemsMutated(a.addedItems.length):A.onItemsMutated(a.addedItems.length)),O.playFlipMoveAnimation(a.oldPositionsById,new Set(a.addedItems.map(e=>N(e))),a.isPrepend?_i:void 0),a.anchorId?(await(0,e.nextTick)(),B(a.anchorId,a.oldPositionsById)):t.active.value&&a.previousIds.length>0&&U()},{immediate:!0}),(0,e.watch)([()=>t.pendingAppendItems.value.map(e=>N(e)),g,_,i],()=>M.refreshReservedContentHeight(),{immediate:!0}),(0,e.watch)(()=>t.active.value,async(t,a)=>{let o=n.value;if(!t){o&&(p.value=o.scrollTop),j.stop();return}if(j.start(),!o||a!==!1||p.value==null)return;await(0,e.nextTick)();let s=Math.max(0,S.value-i.value),c=bi(p.value,0,s);o.scrollTop=c,r.value=c,k.syncBoundary(),A.syncBoundary()}),(0,e.watch)(()=>t.loading.value,async t=>{M.clearReservedHeightWhenIdle(t),k.onLoadingChange(t),A.onLoadingChange(t),await(0,e.nextTick)()}),(0,e.onMounted)(async()=>{G(),await(0,e.nextTick)(),y.value>0?z(y.value,`center`):H(),k.syncBoundary(),A.syncBoundary(),typeof ResizeObserver<`u`?(P=new ResizeObserver(()=>{G()}),n.value&&P.observe(n.value)):window.addEventListener(`resize`,G)}),(0,e.onBeforeUnmount)(()=>{P?.disconnect(),P=null,window.removeEventListener(`resize`,G),M.clearAppendCommitTimer(),m.clearBoundaryInteractionReleaseTimer(),F&&=(cancelAnimationFrame(F),0),j.stop()});function I(){t.active.value&&(r.value=n.value?.scrollTop??0,i.value=K(),k.syncBoundary(`scroll`),A.syncBoundary(`scroll`),W(),!U()&&(F||=requestAnimationFrame(()=>{F=0,H()})))}function L(e){t.active.value&&(k.onWheel(e),A.onWheel(e),W())}function R(e){let n=t.items.value[e],r=n?N(n):``;return{height:`${u.value[e]??_.value}px`,width:`${_.value}px`,transition:r?O.getCardTransition(r):void 0,transitionDelay:r?O.getCardTransitionDelay(r):void 0,transform:O.getCardTransform(e)}}function z(e,t){let a=n.value,o=f.value[e],s=u.value[e];if(!a||!o||!s)return;let c=a.scrollTop,l=Math.max(0,S.value-i.value);t===`center`?c=o.y-(i.value-s)/2:o.y<a.scrollTop?c=o.y-$:o.y+s>a.scrollTop+i.value&&(c=o.y+s-i.value+$),a.scrollTop=bi(c,0,l),r.value=a.scrollTop,H()}function B(e,t){let i=n.value,a=t.get(e),o=d.value.get(e),s=o==null?null:f.value[o];if(!i||!a||!s)return;let c=s.y-a.y;i.scrollTop+=c,r.value=i.scrollTop}function V(){let e=n.value;if(!e){r.value=0;return}e.scrollTop=0,r.value=0,k.syncBoundary(),A.syncBoundary()}function H(){if(!b.value.length||U())return;let e=r.value+i.value/2,n=y.value,a=1/0;for(let t of b.value){let r=f.value[t],i=u.value[t];if(!r||!i)continue;let o=r.y+i/2,s=Math.abs(o-e);s<a&&(a=s,n=t)}t.setActiveIndex(n)}function U(){let e=r.value<=hi,n=J()<=mi;return e?(t.setActiveIndex(0),!0):n?(t.setActiveIndex(Math.max(0,t.items.value.length-1)),!0):!1}function W(){k.maybeRequestPage(),A.maybeRequestPage()}function G(){i.value=K(),a.value=q()}function K(){return Vr(n.value,i.value)}function q(){return Hr(n.value,a.value,di)}function J(){return Ur(n.value,r.value,i.value,S.value)}function Y(){let e=Math.max(n.value?.scrollHeight??0,S.value);return Math.max(0,e-i.value)}return{autoScroll:j.autoScroll,columnWidth:_,containerHeight:S,getCardStyle:R,getLeavingCardStyle:O.getLeavingCardStyle,getScrollbarThumbStyle:D.getScrollbarThumbStyle,leavingItems:O.leavingItems,nextBoundaryLoadProgress:w,onScroll:I,onWheel:L,paginationLabel:T,previousBoundaryLoadProgress:E,renderedItems:x,resolvedActiveIndex:y,scrollToIndex:z,showScrollbar:D.showScrollbar,scrollViewportRef:n}}function bi(e,t,n){return Math.min(Math.max(e,t),n)}function xi(e){if(e)try{e.removeAttribute(`src`),e.src=``}catch{}}function Si(e){if(e){try{e.currentTime=0}catch{}e.pause();try{e.removeAttribute(`src`),e.load()}catch{}}}function Ci(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 wi(e){if(!e)return null;try{return new URL(e,window.location.href).href}catch{return e}}function Ti(t){let n=(0,e.ref)(null),r=(0,e.computed)(()=>{let e=typeof t.item.value.healthCheck?.url==`string`?wi(t.item.value.healthCheck.url):null;return!e||e===t.attachedAssetUrl.value?null:e}),i=null,a=0,o=new Map;(0,e.watch)(r,(e,t)=>{e!==t&&(n.value=null,l(),a+=1)}),(0,e.watch)([r,t.surfaceActive,t.isInView,t.isReady,t.loadErrorKind],()=>{s()});function s(){let e=r.value;if(!e){l();return}if(!t.surfaceActive.value||!t.isInView.value||!t.isReady.value||t.loadErrorKind.value){l();return}if(o.has(e)){n.value=o.get(e)??null;return}if(i){i.refresh();return}i=dt.request({assetType:`probe`,getPriority:t.getPriority,onGrant(){let e=r.value;if(!e){l();return}let i=++a;Rt(e).then(s=>{if(!(i!==a||r.value!==e)){if(o.set(e,s??null),!s){n.value=null;return}n.value=s,t.reportAssetError?.({item:t.item.value,occurrenceKey:N(t.item.value),url:e,kind:s,surface:`grid`})}}).finally(()=>{i===a&&l()})},url:e})}function c(){let e=r.value;return!n.value||!e?!1:(o.delete(e),n.value=null,l(),s(),!0)}function l(){i?.release(),i=null}return{errorKind:n,release:l,retry:c}}var Ei=[`aria-label`],Di={key:0,"data-testid":`vibe-list-card-spinner`,class:`pointer-events-none absolute inset-0 z-[4] grid place-items-center bg-black/18`},Oi={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]`},ki=[`src`,`alt`],Ai=[`src`],ji=[`data-kind`],Mi={class:`grid justify-items-center gap-3 px-4 text-center`},Ni={class:`text-[0.68rem] font-bold uppercase tracking-[0.22em] text-[#f7f1ea]/72`},Pi={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))]`},Fi={class:`inline-flex h-14 w-14 items-center justify-center border border-white/16 bg-black/20`},Ii={class:`pointer-events-none absolute inset-0 z-[3]`},Li=(0,e.defineComponent)({__name:`ListCard`,props:{active:{type:Boolean,default:!1},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)(()=>In(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)(!1),d=(0,e.ref)(null),f=(0,e.ref)(null),p=(0,e.ref)(null),h=(0,e.ref)(null),g=(0,e.ref)(null),_=(0,e.ref)(a.value.kind===`fallback`),y=(0,e.computed)(()=>_.value?r.surfaceActive?o.value?a.value.url:null:a.value.url:null),b=(0,e.computed)(()=>r.surfaceActive&&o.value&&(a.value.kind===`image`||a.value.kind===`video`)&&!!a.value.url),x=(0,e.computed)(()=>a.value.kind===`image`&&!!y.value),S=(0,e.computed)(()=>a.value.kind===`video`&&!!y.value),C=Ti({attachedAssetUrl:y,getPriority:G,isInView:o,isReady:l,item:(0,e.computed)(()=>r.item),loadErrorKind:d,reportAssetError:r.reportAssetError,surfaceActive:(0,e.computed)(()=>r.surfaceActive)}),w=(0,e.computed)(()=>C.errorKind.value??d.value),T=(0,e.computed)(()=>!!w.value),E=(0,e.computed)(()=>It(w.value)),D=(0,e.computed)(()=>b.value&&!d.value&&(!_.value||!l.value)),O=null,k=null,A=new Set;(0,e.watch)([y,()=>a.value.kind],()=>{let e=a.value.kind===`fallback`;l.value=e,u.value=!1,d.value=null,e&&(_.value=!0)}),(0,e.watch)(b,()=>{I()}),(0,e.watch)([o,l,y],()=>{L()}),(0,e.watch)(()=>r.surfaceActive,e=>{if(!e){z(),L();return}requestAnimationFrame(()=>{B(),I(),L()})}),(0,e.onMounted)(()=>{if(!p.value||typeof IntersectionObserver>`u`){h.value=null,o.value=!0,I();return}h.value=p.value.closest(`[data-testid="vibe-list-scroll"]`),O=new IntersectionObserver(e=>{for(let t of e)t.target===p.value&&(r.surfaceActive&&B(t),I(),L())},{root:h.value,threshold:[0,1]}),O.observe(p.value)}),(0,e.onBeforeUnmount)(()=>{R(),C.release(),O?.disconnect(),O=null});function j(){K(f.value)&&(l.value=!0,d.value=null,V(y.value??r.item.url),z())}async function M(){if(!K(f.value))return;let e=y.value??r.item.url;l.value=!1,d.value=`generic`;let t=await Lt(e);d.value=t,r.reportAssetError?.({item:r.item,occurrenceKey:N(r.item),url:e,kind:t,surface:`grid`}),z()}function P(){K(g.value)&&(u.value=!0,l.value=!0,d.value=null,V(y.value??r.item.url),z(),L())}function F(){K(g.value)&&(u.value||(l.value=!1))}function I(){if(a.value.kind===`fallback`){R(!1);return}if(!r.surfaceActive){z();return}if(!b.value){R();return}if(_.value||k){k?.refresh();return}k=dt.request({assetType:a.value.kind,getPriority:G,onGrant(){_.value=!0,l.value=!1,d.value=null},url:a.value.url??r.item.url})}function L(){let e=g.value;if(!(!e||a.value.kind!==`video`)){if(w.value){e.pause();return}if(y.value&&o.value&&l.value){e.muted=!0,e.loop=!0,e.playsInline=!0,Vt(e);return}try{e.currentTime=0}catch{}e.pause()}}function R(e=!0){_.value=a.value.kind===`fallback`,d.value=null,l.value=a.value.kind===`fallback`,e&&(U(),W()),z()}function z(){k?.release(),k=null}function B(e){let t=p.value;if(!t){o.value=!0;return}o.value=Ci(e?.boundingClientRect??t.getBoundingClientRect(),e?.rootBounds??h.value?.getBoundingClientRect()??null)}function V(e){if(!e)return;let t=N(r.item),n=`${t}|${e}`;A.has(n)||(A.add(n),r.reportAssetLoad?.({item:r.item,occurrenceKey:t,surface:`grid`,url:e}))}function H(){if(!E.value||C.retry())return;let e=N(r.item);A.forEach(t=>{t.startsWith(`${e}|`)&&A.delete(t)}),d.value=null,l.value=!1,_.value=!1,z(),I()}function U(){xi(f.value)}function W(){Si(g.value)}function G(){let e=p.value;if(!e)return 1/0;let t=e.getBoundingClientRect();if(h.value){let e=h.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=wi(y.value);return!e||!t?!1:wi(`currentSrc`in e&&e.currentSrc||e.getAttribute(`src`))===t}function q(){i(`open`)}function J(){s.value=!0}function Y(e){let t=e.relatedTarget;p.value&&t instanceof Node&&p.value.contains(t)||(s.value=!1)}return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{ref_key:`rootRef`,ref:p,"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:Y,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,Ei),D.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Di,[(0,e.createElementVNode)(`span`,Oi,[(0,e.createVNode)((0,e.unref)(m),{class:`h-5 w-5 animate-spin stroke-[1.9] text-[#f7f1ea]/78`,"aria-hidden":`true`})])])):(0,e.createCommentVNode)(``,!0),x.value&&y.value&&!T.value?((0,e.openBlock)(),(0,e.createElementBlock)(`img`,{key:1,ref_key:`imageRef`,ref:f,src:y.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:j,onError:M},null,42,ki)):S.value&&y.value&&!T.value?((0,e.openBlock)(),(0,e.createElementBlock)(`video`,{key:2,ref_key:`videoRef`,ref:g,src:y.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:M,onLoadstart:F,onPlaying:P,onStalled:F,onWaiting:F},null,42,Ai)):T.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:3,"data-testid":`vibe-list-card-error`,"data-kind":w.value,class:`pointer-events-none relative z-[2] grid h-full w-full place-items-center bg-[radial-gradient(circle_at_center,rgba(239,68,68,0.12),transparent_65%),linear-gradient(180deg,rgba(255,255,255,0.04),rgba(255,255,255,0.02))]`},[(0,e.createElementVNode)(`div`,Mi,[(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`,Ni,(0,e.toDisplayString)((0,e.unref)(Ft)(w.value)),1),E.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,ji)):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Pi,[(0,e.createElementVNode)(`div`,Fi,[(0,e.renderSlot)(t.$slots,`item-icon`,{icon:(0,e.unref)(ct)(r.item.type),item:r.item},()=>[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)((0,e.unref)(ct)(r.item.type)),{class:`h-6 w-6 stroke-[1.8] text-[#f7f1ea]/78`,"aria-hidden":`true`}))])])])),(0,e.createElementVNode)(`div`,Ii,[(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))}}),Ri={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)]`},zi={class:`pointer-events-none absolute inset-x-0 top-0 z-[2] flex justify-end p-6`},Bi={"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]`},Vi={class:`whitespace-nowrap`},Hi={key:0,class:`whitespace-nowrap border-l border-white/12 pl-2 text-[#f7f1ea]/56 min-[721px]:pl-3`},Ui=[`data-active`,`data-index`,`data-item-id`,`data-occurrence-key`],Wi=[`data-item-id`],Gi={key:0,class:`pointer-events-none absolute inset-y-0 right-0 z-[3] hidden w-8 min-[1024px]:block`},Ki={key:1,class:`pointer-events-none absolute inset-x-0 bottom-0 z-[2] px-5 pb-5 sm:px-6`},qi={class:`mx-auto flex w-full justify-center`},Ji=(0,e.defineComponent)({__name:`ListSurface`,props:{active:{type:Boolean,default:!0},activeIndex:{default:0},allowExhaustedNextPageRefresh:{type:Boolean,default:!1},bottomLoadBufferPx:{default:100},commitPendingAppend:{type:[Function,null],default:null},emptyStateMode:{default:`inline`},errorMessage:{default:null},hasNextPage:{type:Boolean,default:!1},hasPreviousPage:{type:Boolean,default:!1},items:{},loading:{type:Boolean,default:!1},pendingAppendItems:{default:()=>[]},paginationDetail:{default:null},phase:{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},showStatusBadges:{type:Boolean,default:!0}},emits:[`boundary-load-progress`,`open-fullscreen`,`update:activeIndex`],setup(t,{expose:n,emit:r}){let i=t,a=(0,e.useSlots)(),o=r,s=yi({active:(0,e.toRef)(i,`active`),allowExhaustedNextPageRefresh:(0,e.toRef)(i,`allowExhaustedNextPageRefresh`),bottomLoadBufferPx:(0,e.toRef)(i,`bottomLoadBufferPx`),items:(0,e.toRef)(i,`items`),activeIndex:(0,e.toRef)(i,`activeIndex`),loading:(0,e.toRef)(i,`loading`),hasNextPage:(0,e.toRef)(i,`hasNextPage`),hasPreviousPage:(0,e.toRef)(i,`hasPreviousPage`),paginationDetail:(0,e.toRef)(i,`paginationDetail`),pendingAppendItems:(0,e.toRef)(i,`pendingAppendItems`),commitPendingAppend:(0,e.toRef)(i,`commitPendingAppend`),requestNextPage:(0,e.toRef)(i,`requestNextPage`),requestPreviousPage:(0,e.toRef)(i,`requestPreviousPage`),setActiveIndex(e){o(`update:activeIndex`,e)}});n({autoScroll:s.autoScroll});let c=(0,e.computed)(()=>Et({itemCount:i.items.length,loading:i.loading,phase:i.phase})),l=(0,e.computed)(()=>Dt({errorMessage:i.errorMessage,hasItems:i.items.length>0,hasNextPage:i.hasNextPage,phase:c.value,surface:`grid`})),u=(0,e.computed)(()=>!i.showStatusBadges||!l.value?null:{activeIndex:s.resolvedActiveIndex.value,kind:l.value.kind,loading:i.loading,message:l.value.message,paginationDetail:i.paginationDetail,total:i.items.length}),d=(0,e.computed)(()=>!u.value||!a[`grid-status`]?[]:a[`grid-status`](u.value)),f=(0,e.computed)(()=>Q(d.value)),p=(0,e.computed)(()=>i.items.length+s.leavingItems.value.length),{emptyStateProps:m,showBadgeEmptyState:h,showCustomEmptyState:g,showInlineEmptyState:_}=wt({emptyStateMode:(0,e.toRef)(i,`emptyStateMode`),itemCount:p,loading:(0,e.toRef)(i,`loading`),renderSlot:a[`empty-state`],surface:`grid`});return(0,e.watch)([s.nextBoundaryLoadProgress,s.previousBoundaryLoadProgress],([e,t])=>{o(`boundary-load-progress`,{nextBoundaryLoadProgress:e,previousBoundaryLoadProgress:t})},{immediate:!0}),(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Ri,[(0,e.createElementVNode)(`div`,zi,[(0,e.createElementVNode)(`span`,Bi,[(0,e.createElementVNode)(`span`,Vi,(0,e.toDisplayString)((0,e.unref)(s).paginationLabel.value),1),i.paginationDetail?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,Hi,(0,e.toDisplayString)(i.paginationDetail),1)):(0,e.createCommentVNode)(``,!0)])]),(0,e.createElementVNode)(`div`,{ref:(0,e.unref)(s).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)(s).onScroll&&(0,e.unref)(s).onScroll(...t),onWheel:n[1]||=(...t)=>(0,e.unref)(s).onWheel&&(0,e.unref)(s).onWheel(...t)},[(0,e.createElementVNode)(`div`,{"data-testid":`vibe-list-content`,class:`relative`,style:(0,e.normalizeStyle)({height:`${(0,e.unref)(s).containerHeight.value}px`})},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)((0,e.unref)(s).renderedItems.value,({item:n,index:r})=>((0,e.openBlock)(),(0,e.createElementBlock)(`article`,{key:(0,e.unref)(N)(n),"data-testid":`vibe-list-card`,"data-active":r===(0,e.unref)(s).resolvedActiveIndex.value?`true`:`false`,"data-index":r,"data-item-id":n.id,"data-occurrence-key":(0,e.unref)(N)(n),class:`absolute will-change-transform`,style:(0,e.normalizeStyle)((0,e.unref)(s).getCardStyle(r))},[(0,e.createVNode)(Li,{active:r===(0,e.unref)(s).resolvedActiveIndex.value,index:r,item:n,"report-asset-error":i.reportAssetError,"report-asset-load":i.reportAssetLoad,"surface-active":i.active,onOpen:e=>o(`open-fullscreen`,r)},(0,e.createSlots)({_:2},[a[`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,a[`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`,`index`,`item`,`report-asset-error`,`report-asset-load`,`surface-active`,`onOpen`])],12,Ui))),128)),((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)((0,e.unref)(s).leavingItems.value,n=>((0,e.openBlock)(),(0,e.createElementBlock)(`article`,{key:`leaving-${(0,e.unref)(N)(n.item)}`,"data-testid":`vibe-list-card-leaving`,"data-item-id":n.item.id,class:`pointer-events-none absolute z-[2] will-change-[opacity,transform]`,style:(0,e.normalizeStyle)((0,e.unref)(s).getLeavingCardStyle(n.item))},[(0,e.createVNode)(Li,{active:!1,index:-1,item:n.item,"report-asset-error":i.reportAssetError,"report-asset-load":i.reportAssetLoad,"surface-active":!1},(0,e.createSlots)({_:2},[a[`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:`0`}:void 0]),1032,[`item`,`report-asset-error`,`report-asset-load`])],12,Wi))),128)),(0,e.unref)(_)&&(0,e.unref)(m)?((0,e.openBlock)(),(0,e.createBlock)(yn,{key:0,message:(0,e.unref)(m).message,mode:(0,e.unref)(m).mode,surface:(0,e.unref)(m).surface},{default:(0,e.withCtx)(()=>[(0,e.unref)(g)?(0,e.renderSlot)(t.$slots,`empty-state`,(0,e.normalizeProps)((0,e.mergeProps)({key:0},(0,e.unref)(m)))):(0,e.createCommentVNode)(``,!0)]),_:3},8,[`message`,`mode`,`surface`])):(0,e.createCommentVNode)(``,!0)],4)],544),(0,e.unref)(s).showScrollbar.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Gi,[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`,i.loading?`bg-white/52`:`bg-white/34`]),style:(0,e.normalizeStyle)((0,e.unref)(s).getScrollbarThumbStyle())},null,6)])):(0,e.createCommentVNode)(``,!0),a[`grid-footer`]?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Ki,[(0,e.createElementVNode)(`div`,qi,[(0,e.renderSlot)(t.$slots,`grid-footer`)])])):(0,e.createCommentVNode)(``,!0),u.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`,a[`grid-footer`]?`pb-24`:`pb-6`])},[f.value?(0,e.renderSlot)(t.$slots,`grid-status`,(0,e.normalizeProps)((0,e.mergeProps)({key:0},u.value))):((0,e.openBlock)(),(0,e.createElementBlock)(`span`,{key:1,"data-testid":`vibe-grid-status-badge`,class:(0,e.normalizeClass)([`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]`,u.value.kind===`end`?`border-amber-300/35 text-amber-200`:u.value.kind===`failed`?`border-rose-400/45 text-rose-100`:``])},(0,e.toDisplayString)(u.value.message),3))],2)):(0,e.createCommentVNode)(``,!0),(0,e.unref)(h)&&(0,e.unref)(m)?((0,e.openBlock)(),(0,e.createBlock)(yn,{key:3,class:(0,e.normalizeClass)([`z-[3]`,a[`grid-footer`]?`pb-24`:`pb-6`]),message:(0,e.unref)(m).message,mode:(0,e.unref)(m).mode,surface:(0,e.unref)(m).surface},{default:(0,e.withCtx)(()=>[(0,e.unref)(g)?(0,e.renderSlot)(t.$slots,`empty-state`,(0,e.normalizeProps)((0,e.mergeProps)({key:0},(0,e.unref)(m)))):(0,e.createCommentVNode)(``,!0)]),_:3},8,[`class`,`message`,`mode`,`surface`])):(0,e.createCommentVNode)(``,!0)]))}}),Yi=[`data-surface-mode`],Xi={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`},Zi=[`data-visible`,`inert`],Qi=[`data-visible`,`inert`],$i={key:3,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`},ea=(0,e.defineComponent)({name:`VibeLayout`,__name:`Layout`,props:{bottomLoadBufferPx:{},emptyStateMode:{},fillDelayMaxMs:{},fillDelayMs:{},fillDelayStepMs:{},initialCursor:{},initialState:{},loopFullscreenVideo:{type:Boolean},pageSize:{},paginationDetail:{},resolve:{type:Function},showDominantImageTone:{type:Boolean},showEndBadge:{type:Boolean},showStatusBadges:{type:Boolean},surfaceMode:{}},emits:[`asset-errors`,`asset-loads`,`items-change`,`update:activeIndex`,`update:surfaceMode`],setup(t,{expose:n,emit:r}){let i=t,a=(0,e.useSlots)(),o=r,s=ke(i,o),c=(0,e.ref)(null),l=C(e=>{o(`asset-errors`,e)}),u=w(e=>{o(`asset-loads`,e)});(0,e.onBeforeUnmount)(()=>{l.stop(),u.stop()}),(0,e.watch)(()=>s.items.value,e=>{o(`items-change`,[...e])});function d(e){c.value?.autoScroll(e)}return n({autoScroll:d,cancel:s.cancel,cancelFill:s.cancelFill,clearRemoved:s.clearRemoved,fillUntil:s.fillUntil,fillUntilEnd:s.fillUntilEnd,getItemByOccurrenceKey:s.getItemByOccurrenceKey,getItems:s.getItems,getRemovedIds:s.getRemovedIds,lockPageLoading:s.lockPageLoading,loadNext:s.loadNext,loadPrevious:s.loadPrevious,remove:s.remove,restore:s.restore,retry:s.retry,status:s.status,undo:s.undo,unlockPageLoading:s.unlockPageLoading}),(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`section`,{"data-testid":`vibe`,"data-surface-mode":(0,e.unref)(s).surfaceMode.value,class:`relative h-full min-h-0 overflow-hidden bg-[#05060a] text-[#f7f1ea]`},[(0,e.unref)(s).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)(s).retryInitialLoad&&(0,e.unref)(s).retryInitialLoad(...t)},` Retry `)):(0,e.unref)(s).errorMessage.value&&(0,e.unref)(s).items.value.length>0?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Xi,(0,e.toDisplayString)((0,e.unref)(s).errorMessage.value),1)):(0,e.createCommentVNode)(``,!0),(0,e.unref)(s).isDesktop.value?((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:2},[(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)(s).surfaceMode.value===`list`?`true`:`false`,inert:(0,e.unref)(s).surfaceMode.value!==`list`,class:`absolute inset-0 z-[2]`},[(0,e.createVNode)(Ji,{ref_key:`listSurfaceRef`,ref:c,active:(0,e.unref)(s).surfaceMode.value===`list`,"allow-exhausted-next-page-refresh":(0,e.unref)(s).canRefreshExhaustedNextPage.value,"bottom-load-buffer-px":i.bottomLoadBufferPx,items:(0,e.unref)(s).items.value,"active-index":(0,e.unref)(s).activeIndex.value,"error-message":(0,e.unref)(s).errorMessage.value,loading:(0,e.unref)(s).loading.value,"has-next-page":(0,e.unref)(s).hasNextPage.value,"has-previous-page":(0,e.unref)(s).hasPreviousPage.value,"pending-append-items":(0,e.unref)(s).pendingAppendItems.value,phase:(0,e.unref)(s).phase.value,"commit-pending-append":(0,e.unref)(s).commitPendingAppend,"pagination-detail":(0,e.unref)(s).paginationDetail.value,"report-asset-error":(0,e.unref)(l).report,"report-asset-load":(0,e.unref)(u).report,"request-next-page":(0,e.unref)(s).prefetchNextPage,"request-previous-page":(0,e.unref)(s).prefetchPreviousPage,"empty-state-mode":i.emptyStateMode,"show-status-badges":i.showStatusBadges??!0,onBoundaryLoadProgress:(0,e.unref)(s).setBoundaryLoadProgress,onOpenFullscreen:(0,e.unref)(s).openFullscreen,"onUpdate:activeIndex":(0,e.unref)(s).setActiveIndex},(0,e.createSlots)({_:2},[a[`empty-state`]?{name:`empty-state`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`empty-state`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`0`}:void 0,a[`grid-footer`]?{name:`grid-footer`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(t.$slots,`grid-footer`)]),key:`1`}: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:`2`}:void 0,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:`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,[`active`,`allow-exhausted-next-page-refresh`,`bottom-load-buffer-px`,`items`,`active-index`,`error-message`,`loading`,`has-next-page`,`has-previous-page`,`pending-append-items`,`phase`,`commit-pending-append`,`pagination-detail`,`report-asset-error`,`report-asset-load`,`request-next-page`,`request-previous-page`,`empty-state-mode`,`show-status-badges`,`onBoundaryLoadProgress`,`onOpenFullscreen`,`onUpdate:activeIndex`])],8,Zi),[[e.vShow,(0,e.unref)(s).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)(s).surfaceMode.value===`fullscreen`?`true`:`false`,inert:(0,e.unref)(s).surfaceMode.value!==`fullscreen`,class:`absolute inset-0 z-[3]`},[(0,e.createVNode)(Tr,{items:(0,e.unref)(s).items.value,active:(0,e.unref)(s).surfaceMode.value===`fullscreen`,"active-index":(0,e.unref)(s).activeIndex.value,"error-message":(0,e.unref)(s).errorMessage.value,"fill-collected-count":(0,e.unref)(s).fillCollectedCount.value,"fill-completed-calls":(0,e.unref)(s).fillCompletedCalls.value,"fill-loaded-count":(0,e.unref)(s).fillLoadedCount.value,"fill-mode":(0,e.unref)(s).fillMode.value,"fill-progress":(0,e.unref)(s).fillProgress.value,"fill-target-calls":(0,e.unref)(s).fillTargetCalls.value,"fill-target-count":(0,e.unref)(s).fillTargetCount.value,"fill-total-count":(0,e.unref)(s).fillTotalCount.value,loading:(0,e.unref)(s).loading.value,"has-next-page":(0,e.unref)(s).hasNextPage.value,"pagination-detail":(0,e.unref)(s).paginationDetail.value,phase:(0,e.unref)(s).phase.value,"report-asset-error":(0,e.unref)(l).report,"report-asset-load":(0,e.unref)(u).report,"empty-state-mode":i.emptyStateMode,"loop-fullscreen-video":i.loopFullscreenVideo??!0,"show-dominant-image-tone":i.showDominantImageTone??!0,"show-end-badge":i.showEndBadge??!0,"show-status-badges":i.showStatusBadges??!0,"show-back-to-list":(0,e.unref)(s).showBackToList.value,onBackToList:(0,e.unref)(s).returnToList,"onUpdate:activeIndex":(0,e.unref)(s).setActiveIndex},(0,e.createSlots)({_:2},[a[`empty-state`]?{name:`empty-state`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`empty-state`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`0`}:void 0,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:`1`}: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:`2`}:void 0,a[`fullscreen-footer`]?{name:`fullscreen-footer`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`fullscreen-footer`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`3`}: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:`4`}:void 0,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:`5`}: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:`6`}:void 0]),1032,`items.active.active-index.error-message.fill-collected-count.fill-completed-calls.fill-loaded-count.fill-mode.fill-progress.fill-target-calls.fill-target-count.fill-total-count.loading.has-next-page.pagination-detail.phase.report-asset-error.report-asset-load.empty-state-mode.loop-fullscreen-video.show-dominant-image-tone.show-end-badge.show-status-badges.show-back-to-list.onBackToList.onUpdate:activeIndex`.split(`.`))],8,Qi),[[e.vShow,(0,e.unref)(s).surfaceMode.value===`fullscreen`]])]),_:3})],64)):(0,e.unref)(s).items.value.length===0&&(0,e.unref)(s).loading.value&&(0,e.unref)(s).phase.value===`initializing`?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,$i,[(0,e.createVNode)((0,e.unref)(m),{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)])):((0,e.openBlock)(),(0,e.createBlock)(Tr,{key:4,items:(0,e.unref)(s).items.value,active:!0,"active-index":(0,e.unref)(s).activeIndex.value,"error-message":(0,e.unref)(s).errorMessage.value,"fill-collected-count":(0,e.unref)(s).fillCollectedCount.value,"fill-completed-calls":(0,e.unref)(s).fillCompletedCalls.value,"fill-loaded-count":(0,e.unref)(s).fillLoadedCount.value,"fill-mode":(0,e.unref)(s).fillMode.value,"fill-progress":(0,e.unref)(s).fillProgress.value,"fill-target-calls":(0,e.unref)(s).fillTargetCalls.value,"fill-target-count":(0,e.unref)(s).fillTargetCount.value,"fill-total-count":(0,e.unref)(s).fillTotalCount.value,loading:(0,e.unref)(s).loading.value,"has-next-page":(0,e.unref)(s).hasNextPage.value,"pagination-detail":(0,e.unref)(s).paginationDetail.value,phase:(0,e.unref)(s).phase.value,"report-asset-error":(0,e.unref)(l).report,"report-asset-load":(0,e.unref)(u).report,"empty-state-mode":i.emptyStateMode,"loop-fullscreen-video":i.loopFullscreenVideo??!0,"show-dominant-image-tone":i.showDominantImageTone??!0,"show-end-badge":i.showEndBadge??!0,"show-status-badges":i.showStatusBadges??!0,"show-back-to-list":!1,onBackToList:(0,e.unref)(s).returnToList,"onUpdate:activeIndex":(0,e.unref)(s).setActiveIndex},(0,e.createSlots)({_:2},[a[`empty-state`]?{name:`empty-state`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`empty-state`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`0`}:void 0,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:`1`}: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:`2`}:void 0,a[`fullscreen-footer`]?{name:`fullscreen-footer`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`fullscreen-footer`,(0,e.normalizeProps)((0,e.guardReactiveProps)(n)))]),key:`3`}: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:`4`}:void 0,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:`5`}: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:`6`}:void 0]),1032,[`items`,`active-index`,`error-message`,`fill-collected-count`,`fill-completed-calls`,`fill-loaded-count`,`fill-mode`,`fill-progress`,`fill-target-calls`,`fill-target-count`,`fill-total-count`,`loading`,`has-next-page`,`pagination-detail`,`phase`,`report-asset-error`,`report-asset-load`,`empty-state-mode`,`loop-fullscreen-video`,`show-dominant-image-tone`,`show-end-badge`,`show-status-badges`,`onBackToList`,`onUpdate:activeIndex`]))],8,Yi))}}),ta={install(e){e.component(`VibeLayout`,ea)}};exports.VibeLayout=ea,exports.VibePlugin=ta,exports.default=ta;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`vue`);function t(e){return[e,...e.items]}function n(e,t){return Math.min(e.items.length,Math.max(0,t))}function r(e,r){return t(e)[n(e,r)]??e}function i(e,t){return`${String(e)}:${t}`}function a(e){return e.scrollHeight-e.scrollTop-e.clientHeight<=240}function o(e){let t=e.preview.width??e.width,n=e.preview.height??e.height;return!t||!n||t<=0||n<=0?1:n/t}function s(e){return e.reduce((t,n,r)=>n<e[t]?r:t,0)}function c(e){return Math.max(0,e.containerHeight)+Math.max(0,e.gap)}function l(e,t){let n=Math.max(0,t.overscan),r=t.scrollTop-n,i=t.scrollTop+Math.max(0,t.viewportHeight)+n;return e.reduce((e,t,n)=>(t.y+t.height>=r&&t.y<=i&&e.push(n),e),[])}function u(e,t,n){if(t<=0||e.length===0)return{columns:0,height:0,items:[]};let r=Math.max(0,n.gap),i=Number.isFinite(n.additionalHeight)?Math.max(0,n.additionalHeight??0):0,a=Math.max(1,n.minColumnWidth),c=Math.max(1,Math.floor((t+r)/(a+r))),l=(t-r*(c-1))/c,u=Array.from({length:c},()=>0),d=e.map(e=>{let t=s(u),n=l*o(e)+i,a={x:t*(l+r),y:u[t],width:l,height:n};return u[t]+=n+r,a});return{columns:c,height:Math.max(...u)-r,items:d}}function d(e,t,n){return Math.min(n,Math.max(t,e))}function f({contentSize:e,minimumThumbSize:t,scrollPosition:n,trackSize:r,viewportSize:i}){let a=Math.max(0,e),o=Math.max(0,r),s=Math.max(0,i),c=Math.max(0,a-s);if(!(c>0&&o>0))return{maximumScrollPosition:c,scrollable:!1,thumbOffset:0,thumbSize:o,thumbTravel:0};let l=d(s/a*o,Math.min(Math.max(0,t),o),o),u=Math.max(0,o-l);return{maximumScrollPosition:c,scrollable:!0,thumbOffset:u*(d(n,0,c)/c),thumbSize:l,thumbTravel:u}}var p=[`aria-hidden`],m=[`aria-controls`,`aria-valuemax`,`aria-valuenow`,`tabindex`],h=32,g=40,_=120,v=(0,e.defineComponent)({__name:`GalleryScrollbar`,props:{contentSize:{},controlsId:{},scrollElement:{},suspended:{type:Boolean}},setup(t){let n=t,r={maximumScrollPosition:0,scrollable:!1,thumbOffset:0,thumbSize:0,thumbTravel:0},i=(0,e.shallowRef)(null),a=(0,e.shallowRef)(r),o=(0,e.shallowRef)(!1),s=(0,e.shallowRef)(!1),c=(0,e.shallowRef)(!1),l=null,u=0,d=0,v=null,y=null,b=null,x=null,S=!1,C=null,w=(0,e.computed)(()=>a.value.scrollable&&!n.suspended),T=(0,e.computed)(()=>({height:`${a.value.thumbSize}px`,transform:`translate3d(0, ${a.value.thumbOffset}px, 0)`}));function E(){v!==null&&clearTimeout(v),v=setTimeout(()=>{v=null,o.value||(s.value=!1)},_)}function D(){s.value=!0,E()}function O(){let e=n.scrollElement,t=i.value;return!e||!t?r:f({contentSize:e.scrollHeight,minimumThumbSize:h,scrollPosition:e.scrollTop,trackSize:t.clientHeight,viewportSize:e.clientHeight})}function k(e){if(o.value&&e!==`scroll`){S=!0;return}if(o.value){let e=n.scrollElement;if(!e||a.value.maximumScrollPosition<=0)return;let t=Math.min(1,Math.max(0,e.scrollTop/a.value.maximumScrollPosition));a.value={...a.value,thumbOffset:a.value.thumbTravel*t};return}a.value=O(),!(c.value||y!==null)&&(y=requestAnimationFrame(()=>{y=null,c.value=!0}))}function A(){D(),k(`scroll`)}function j(e){let t=n.scrollElement;t&&(t.scrollTop=Math.min(a.value.maximumScrollPosition,Math.max(0,e)),k(`scroll`))}function M(e){if(!w.value||e.target!==e.currentTarget)return;let t=i.value;if(!t||a.value.thumbTravel<=0)return;e.preventDefault(),D();let n=e.clientY-t.getBoundingClientRect().top-a.value.thumbSize/2;j(Math.min(1,Math.max(0,n/a.value.thumbTravel))*a.value.maximumScrollPosition)}function N(e){w.value&&(e.preventDefault(),e.stopPropagation(),e.currentTarget.setPointerCapture?.(e.pointerId),l=e.pointerId,u=e.clientY,d=n.scrollElement?.scrollTop??0,o.value=!0,s.value=!0,v!==null&&clearTimeout(v),v=null)}function P(e){if(!o.value||e.pointerId!==l||(e.preventDefault(),a.value.thumbTravel<=0))return;let t=(e.clientY-u)/a.value.thumbTravel*a.value.maximumScrollPosition;j(d+t)}function F(e){!o.value||e.pointerId!==l||(e.currentTarget.releasePointerCapture?.(e.pointerId),l=null,o.value=!1,S&&(S=!1,k(`content`)),E())}function I(e){if(!w.value)return;let t=n.scrollElement?.clientHeight??0,r=n.scrollElement?.scrollTop??0,i=e.key===`ArrowUp`?r-g:e.key===`ArrowDown`?r+g:e.key===`PageUp`?r-t:e.key===`PageDown`?r+t:e.key===`Home`?0:e.key===`End`?a.value.maximumScrollPosition:null;i!==null&&(e.preventDefault(),D(),j(i))}function L(e){if(x?.disconnect(),!(typeof ResizeObserver>`u`)){x=new ResizeObserver(()=>k(`content`));for(let t of e.children)x.observe(t)}}return(0,e.watch)(()=>n.scrollElement,(t,n)=>{n?.removeEventListener(`scroll`,A),b?.disconnect(),b=null,x?.disconnect(),x=null,C?.disconnect(),C=null,t?.addEventListener(`scroll`,A,{passive:!0}),t&&typeof ResizeObserver<`u`&&(C=new ResizeObserver(()=>{D(),k(`resize`)}),C.observe(t),L(t)),t&&typeof MutationObserver<`u`&&(b=new MutationObserver(()=>{L(t),k(`content`)}),b.observe(t,{childList:!0})),(0,e.nextTick)(()=>k(`resize`))},{immediate:!0}),(0,e.watch)(()=>n.contentSize,()=>{(0,e.nextTick)(()=>k(`content`))}),(0,e.onBeforeUnmount)(()=>{n.scrollElement?.removeEventListener(`scroll`,A),b?.disconnect(),x?.disconnect(),C?.disconnect(),v!==null&&clearTimeout(v),y!==null&&cancelAnimationFrame(y)}),(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{ref_key:`trackElement`,ref:i,class:(0,e.normalizeClass)([`gallery-scrollbar`,{"gallery-scrollbar--dragging":o.value,"gallery-scrollbar--interacting":s.value,"gallery-scrollbar--ready":c.value,"gallery-scrollbar--visible":w.value}]),"aria-hidden":!w.value||void 0,onPointerdown:M},[(0,e.createElementVNode)(`div`,{class:`gallery-scrollbar-thumb`,"aria-controls":t.controlsId,"aria-label":`Media gallery scroll position`,"aria-orientation":`vertical`,"aria-valuemax":Math.round(a.value.maximumScrollPosition),"aria-valuemin":`0`,"aria-valuenow":Math.round(t.scrollElement?.scrollTop??0),role:`scrollbar`,style:(0,e.normalizeStyle)(T.value),tabindex:w.value?0:-1,onKeydown:I,onPointercancel:F,onPointerdown:N,onPointermove:P,onPointerup:F},null,44,m)],42,p))}}),y={key:0,class:`gallery-footer`},b={key:0,class:`load-more-status`,role:`status`},x=[`disabled`],S={key:2,class:`gallery-sentinel`,"aria-hidden":`true`},C={key:3,class:`end-feed`},w=[`disabled`],T=(0,e.defineComponent)({__name:`GalleryFooter`,props:{canRetryEnd:{type:Boolean},hasError:{type:Boolean},hasNext:{type:Boolean},infiniteScroll:{type:Boolean},isLoading:{type:Boolean},loadMoreLocked:{type:Boolean}},emits:[`loadMore`,`retryEnd`],setup(t,{emit:n}){let r=t,i=n;function a(){r.loadMoreLocked||(r.hasNext?i(`loadMore`):i(`retryEnd`))}return(n,r)=>t.hasNext||t.isLoading||t.hasError||t.canRetryEnd?((0,e.openBlock)(),(0,e.createElementBlock)(`footer`,y,[t.isLoading?((0,e.openBlock)(),(0,e.createElementBlock)(`p`,b,` Loading more… `)):t.hasError||t.hasNext&&(!t.infiniteScroll||t.loadMoreLocked)?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:1,"data-test":`load-more`,class:`load-more-button`,type:`button`,disabled:t.loadMoreLocked,onClick:a},(0,e.toDisplayString)(t.hasError?`Try again`:t.loadMoreLocked?`Loading paused`:`Load more`),9,x)):t.hasNext?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,S)):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,C,[r[1]||=(0,e.createElementVNode)(`p`,{class:`end-feed-message`,role:`status`},` You've reached the end. `,-1),(0,e.createElementVNode)(`button`,{"data-test":`retry-end`,class:`load-more-button`,type:`button`,disabled:t.loadMoreLocked,onClick:r[0]||=e=>n.$emit(`retryEnd`)},` Check for more `,8,w)]))])):(0,e.createCommentVNode)(``,!0)}}),E=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},D=e=>e===``,O=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),k=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()),j=e=>{let t=A(e);return t.charAt(0).toUpperCase()+t.slice(1)},M={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`},N=({name:t,iconNode:n,absoluteStrokeWidth:r,"absolute-stroke-width":i,strokeWidth:a,"stroke-width":o,size:s=M.width,color:c=M.stroke,...l},{slots:u})=>(0,e.h)(`svg`,{...M,...l,width:s,height:s,stroke:c,"stroke-width":D(r)||D(i)||r===!0||i===!0?Number(a||o||M[`stroke-width`])*24/Number(s):a||o||M[`stroke-width`],class:O(`lucide`,l.class,...t?[`lucide-${k(j(t))}-icon`,`lucide-${k(t)}`]:[`lucide-icon`]),...!u.default&&!E(l)&&{"aria-hidden":`true`}},[...n.map(t=>(0,e.h)(...t)),...u.default?[u.default()]:[]]),P=(t,n)=>(r,{slots:i,attrs:a})=>(0,e.h)(N,{...a,...r,iconNode:n,name:t},i),F=P(`chevron-left`,[[`path`,{d:`m15 18-6-6 6-6`,key:`1wnfg3`}]]),I=P(`chevron-right`,[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]),L=P(`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`}]]),R=P(`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`}]]),z=P(`volume-2`,[[`path`,{d:`M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z`,key:`uqj9uw`}],[`path`,{d:`M16 9a5 5 0 0 1 0 6`,key:`1q6k2b`}],[`path`,{d:`M19.364 18.364a9 9 0 0 0 0-12.728`,key:`ijwkga`}]]),B=P(`volume-x`,[[`path`,{d:`M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z`,key:`uqj9uw`}],[`line`,{x1:`22`,x2:`16`,y1:`9`,y2:`15`,key:`1ewh16`}],[`line`,{x1:`16`,x2:`22`,y1:`9`,y2:`15`,key:`5ykzw1`}]]),V={401:`Authentication required`,403:`Access forbidden`,404:`Preview not found`,419:`Session expired`,500:`Server error`};function H(e){return e.match(/\/demo-errors\/(401|403|404|419|500)\//)?.[1]??`Error`}function U(e){return V[H(e)]??`Preview unavailable`}var W=/\.(aac|flac|m4a|mp3|mp4|mov|ogg|opus|wav|webm)$/i;function G(e){try{return W.test(new URL(e).pathname)}catch{return W.test(e.split(`?`)[0]??e)}}var K=(0,e.defineComponent)({__name:`CardRegion`,props:{index:{},item:{},layout:{},loadedCount:{},mediaIndex:{},mediaSource:{},placement:{},region:{},total:{}},setup(i){let a=i,o=(0,e.computed)(()=>n(a.item,a.mediaIndex)),s=(0,e.computed)(()=>t(a.item)),c=(0,e.computed)(()=>r(a.item,o.value));return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:(0,e.normalizeClass)([`media-card-region`,`media-card-${i.placement}`]),style:(0,e.normalizeStyle)({height:`${i.region.height}px`}),onClick:n[0]||=(0,e.withModifiers)(()=>{},[`stop`]),onKeydown:n[1]||=(0,e.withModifiers)(()=>{},[`stop`])},[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(i.region.component),{index:i.index,item:i.item,layout:i.layout,"loaded-count":i.loadedCount,"media-count":s.value.length,"media-index":o.value,"media-item":c.value,"media-source":i.mediaSource??`preview`,total:i.total},null,8,[`index`,`item`,`layout`,`loaded-count`,`media-count`,`media-index`,`media-item`,`media-source`,`total`]))],38))}}),q=[`max`,`value`,`aria-valuetext`,`disabled`],ee={key:0,class:`media-controls-row`},te=[`aria-label`,`title`],ne={class:`media-controls-audio`},re=[`aria-label`,`title`],ie=[`value`,`aria-valuetext`],ae={class:`media-control-time`,"aria-live":`off`},oe=(0,e.defineComponent)({__name:`MediaControls`,props:{currentTime:{},duration:{},layout:{},muted:{type:Boolean},playing:{type:Boolean},volume:{}},emits:[`seek`,`toggleMute`,`togglePlayback`,`volumeChange`],setup(t,{emit:n}){let r=t,i=n;function a(e,t=1){return Number.isFinite(e)?Math.min(t,Math.max(0,e)):0}function o(e){let t=Math.floor(a(e,2**53-1)),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 s(e){return Number(e.target.value)}let c=(0,e.computed)(()=>Math.max(0,r.duration)),l=(0,e.computed)(()=>a(r.currentTime,c.value)),u=(0,e.computed)(()=>({"--media-range-progress":`${c.value>0?l.value/c.value*100:0}%`})),d=(0,e.computed)(()=>({"--media-range-progress":`${a(r.volume)*100}%`}));return(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:(0,e.normalizeClass)([`media-controls`,`media-controls--${t.layout}`]),"aria-label":`Video controls`,onClick:r[4]||=(0,e.withModifiers)(()=>{},[`stop`]),onDblclick:r[5]||=(0,e.withModifiers)(()=>{},[`stop`]),onKeydown:r[6]||=(0,e.withModifiers)(()=>{},[`stop`]),onWheel:r[7]||=(0,e.withModifiers)(()=>{},[`stop`])},[(0,e.createElementVNode)(`input`,{class:`media-control-range media-control-seek`,type:`range`,min:`0`,max:c.value||0,step:`0.1`,value:l.value,style:(0,e.normalizeStyle)(u.value),"aria-label":`Seek video`,"aria-valuetext":`${o(l.value)} of ${o(c.value)}`,disabled:c.value<=0,onInput:r[0]||=e=>i(`seek`,s(e))},null,44,q),t.layout===`reel`?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,ee,[(0,e.createElementVNode)(`button`,{type:`button`,class:`media-control-button media-control-playback`,"aria-label":t.playing?`Pause video`:`Play video`,title:t.playing?`Pause`:`Play`,onClick:r[1]||=e=>i(`togglePlayback`)},[t.playing?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(L),{key:0,size:18,fill:`currentColor`})):((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(R),{key:1,size:18,fill:`currentColor`}))],8,te),(0,e.createElementVNode)(`div`,ne,[(0,e.createElementVNode)(`button`,{type:`button`,class:`media-control-button`,"aria-label":t.muted?`Unmute video`:`Mute video`,title:t.muted?`Unmute`:`Mute`,onClick:r[2]||=e=>i(`toggleMute`)},[t.muted||t.volume===0?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(B),{key:0,size:18})):((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(z),{key:1,size:18}))],8,re),(0,e.createElementVNode)(`input`,{class:`media-control-range media-control-volume`,type:`range`,min:`0`,max:`1`,step:`0.05`,value:t.volume,style:(0,e.normalizeStyle)(d.value),"aria-label":`Video volume`,"aria-valuetext":`${Math.round(t.volume*100)} percent`,onInput:r[3]||=e=>i(`volumeChange`,s(e))},null,44,ie)]),(0,e.createElementVNode)(`output`,ae,(0,e.toDisplayString)(o(l.value))+` / `+(0,e.toDisplayString)(o(c.value)),1)])):(0,e.createCommentVNode)(``,!0)],34))}}),se=[`data-post-id`,`data-media-index`,`aria-busy`,`role`,`tabindex`],ce={class:`media-card-content`},le=[`data-media-direction`],ue=[`data-media-index`],de={key:0,"data-test":`media-loading`,class:`media-loading`,"aria-hidden":`true`},fe=[`aria-label`],pe={class:`media-error-code`},me=[`src`,`width`,`height`,`loop`,`muted`,`preload`],he=[`src`,`width`,`height`,`fetchpriority`],ge=[`aria-label`],_e=[`aria-label`],ve=[`aria-label`],ye=40,be=160,xe=24,Se=(0,e.defineComponent)({__name:`MediaCard`,props:{advanceOnMediaEnd:{type:Boolean},cardFooter:{},cardHeader:{},entering:{type:Boolean},fetchPriority:{},index:{},item:{},itemStyle:{},interactive:{type:Boolean},layout:{},loadedCount:{},mediaIndex:{},mediaSource:{},previewState:{},total:{}},emits:[`activate`,`ended`,`error`,`mediaChange`,`ready`],setup(i,{emit:a}){let o=i,s=null,c=0,l=!1,u=null,d=null,f=(0,e.shallowRef)(`next`),p=a;function m(e=!1,t=`pointer`){e&&p(`activate`,t)}let h=(0,e.computed)(()=>t(o.item)),g=(0,e.computed)(()=>n(o.item,o.mediaIndex)),_=(0,e.computed)(()=>r(o.item,g.value)),v=(0,e.computed)(()=>o.mediaSource===`original`?_.value.src:_.value.preview.src),y=(0,e.computed)(()=>o.mediaSource===`original`?_.value.width:_.value.preview.width),b=(0,e.computed)(()=>o.mediaSource===`original`?_.value.height:_.value.preview.height),x=(0,e.shallowRef)(null),S=(0,e.shallowRef)(0),C=(0,e.shallowRef)(0),w=(0,e.shallowRef)(!0),T=(0,e.shallowRef)(!1),E=(0,e.shallowRef)(1),D=1,O=(0,e.computed)(()=>o.interactive&&!!(o.cardHeader||o.cardFooter));function k(e){return e.detail===0?`keyboard`:`pointer`}function A(e,t){let n=h.value.length,r=(e+n)%n;r!==g.value&&(f.value=e<g.value?`previous`:`next`,p(`mediaChange`,r),t&&t.detail>0&&t.currentTarget?.blur())}function j(e,t,n){return t===1?e*16:t===2?e*n:e}function M(){c=0,l=!1,s!==null&&clearTimeout(s),s=null}function N(){s!==null&&clearTimeout(s),s=setTimeout(M,be)}function P(e){if(h.value.length<=1)return;let t=e.currentTarget?.clientWidth||1,n=j(e.deltaX,e.deltaMode,t);if(n===0||(e.preventDefault(),N(),l)||(c+=n,Math.abs(c)<xe))return;let r=Math.sign(c);c=0,l=!0,A(g.value+r)}function L(e){let t=e.touches[0];o.layout!==`reel`||!t||(u=t.clientX,d=t.clientY)}function R(e){let t=e.changedTouches[0];if(u===null||d===null||!t)return;let n=u-t.clientX,r=d-t.clientY;u=null,d=null,!(Math.abs(n)<=Math.abs(r))&&(Math.abs(n)<ye||A(g.value+Math.sign(n)))}let z=(0,e.computed)(()=>G(v.value));function B(e){o.layout===`reel`&&(e.stopPropagation(),V())}async function V(){if(x.value){if(T.value){x.value.pause();return}try{await x.value.play()}catch{T.value=!1}}}function W(e){return Number.isFinite(e)?Math.max(0,e):0}function q(e){let t=e?.currentTarget??x.value;t&&(S.value=W(t.currentTime),C.value=W(t.duration),w.value=t.muted,E.value=t.volume,t.volume>0&&(D=t.volume))}function ee(e){q(e),p(`ready`,g.value)}function te(){T.value=!1,p(`ended`,g.value)}function ne(e){let t=x.value;!t||!Number.isFinite(e)||(t.currentTime=Math.min(W(t.duration),Math.max(0,e)),S.value=t.currentTime)}function re(e){let t=x.value;if(!t||!Number.isFinite(e))return;let n=Math.min(1,Math.max(0,e));t.volume=n,t.muted=n===0,n>0&&(D=n),q()}function ie(){let e=x.value;e&&(e.muted&&e.volume===0&&(e.volume=D),e.muted=!e.muted,q())}return(0,e.onBeforeUnmount)(()=>{M()}),(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`article`,{"data-post-id":i.item.postId,"data-media-index":g.value,class:(0,e.normalizeClass)([`media-card`,{"media-card--entering":i.entering,"media-card--error":i.previewState===`error`}]),style:(0,e.normalizeStyle)(i.itemStyle),"aria-busy":i.previewState===`loading`,role:i.interactive&&!O.value?`button`:void 0,tabindex:i.interactive&&!O.value?0:void 0,onClick:n[11]||=e=>m(i.interactive&&!O.value,k(e)),onKeydown:[n[12]||=(0,e.withKeys)(e=>m(i.interactive&&!O.value,`keyboard`),[`enter`]),n[13]||=(0,e.withKeys)((0,e.withModifiers)(e=>m(i.interactive&&!O.value,`keyboard`),[`prevent`]),[`space`])]},[(0,e.createElementVNode)(`div`,ce,[i.cardHeader?((0,e.openBlock)(),(0,e.createBlock)(K,{key:0,index:i.index,item:i.item,layout:i.layout,"loaded-count":i.loadedCount,"media-index":g.value,"media-source":i.mediaSource,placement:`header`,region:i.cardHeader,total:i.total},null,8,[`index`,`item`,`layout`,`loaded-count`,`media-index`,`media-source`,`region`,`total`])):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`media-card-media`,{"media-card-media--carousel":i.layout===`reel`&&h.value.length>1}]),"data-media-direction":f.value,onWheel:P,onTouchstartPassive:L,onTouchendPassive:R},[(0,e.createVNode)(e.Transition,{name:`media-slide-${f.value}`},{default:(0,e.withCtx)(()=>[((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:`${i.item.postId}:${g.value}:${i.mediaSource??`preview`}`,class:`media-card-frame`,"data-media-index":g.value},[i.previewState===`loading`?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,de,[...n[14]||=[(0,e.createElementVNode)(`span`,{class:`media-loading-shimmer`},null,-1)]])):i.previewState===`error`?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:1,"data-test":`media-error`,class:`media-error`,role:`img`,"aria-label":`${(0,e.unref)(H)(v.value)} ${(0,e.unref)(U)(v.value)}`},[(0,e.createElementVNode)(`strong`,pe,(0,e.toDisplayString)((0,e.unref)(H)(v.value)),1),(0,e.createElementVNode)(`span`,null,(0,e.toDisplayString)((0,e.unref)(U)(v.value)),1)],8,fe)):(0,e.createCommentVNode)(``,!0),z.value?((0,e.openBlock)(),(0,e.createElementBlock)(`video`,{key:2,ref_key:`videoElement`,ref:x,class:(0,e.normalizeClass)([`media-preview`,{"media-preview--ready":i.previewState===`ready`,"media-preview--reel-video":i.layout===`reel`}]),src:v.value,width:y.value??void 0,height:b.value??void 0,autoplay:``,loop:!i.advanceOnMediaEnd,muted:w.value,playsinline:``,preload:i.fetchPriority===`high`?`auto`:`metadata`,onLoadedmetadata:ee,onDurationchange:q,onTimeupdate:q,onVolumechange:q,onPlaying:n[0]||=e=>T.value=!0,onPause:n[1]||=e=>T.value=!1,onEnded:te,onClick:B,onError:n[2]||=e=>t.$emit(`error`,g.value)},null,42,me)):((0,e.openBlock)(),(0,e.createElementBlock)(`img`,{key:3,class:(0,e.normalizeClass)([`media-preview`,{"media-preview--ready":i.previewState===`ready`}]),src:v.value,width:y.value??void 0,height:b.value??void 0,fetchpriority:i.fetchPriority,alt:``,decoding:`async`,loading:`eager`,onLoad:n[3]||=e=>t.$emit(`ready`,g.value),onError:n[4]||=e=>t.$emit(`error`,g.value)},null,42,he))],8,ue))]),_:1},8,[`name`]),z.value&&i.previewState===`ready`?((0,e.openBlock)(),(0,e.createBlock)(oe,{key:0,"current-time":S.value,duration:C.value,layout:i.layout,muted:w.value,playing:T.value,volume:E.value,onSeek:ne,onToggleMute:ie,onTogglePlayback:V,onVolumeChange:re},null,8,[`current-time`,`duration`,`layout`,`muted`,`playing`,`volume`])):(0,e.createCommentVNode)(``,!0),h.value.length>1?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:1,class:(0,e.normalizeClass)([`media-carousel-controls`,{"media-carousel-controls--persistent":i.layout===`reel`}]),"aria-label":`Media navigation`},[(0,e.createElementVNode)(`button`,{type:`button`,class:`media-carousel-control media-carousel-control--previous`,"aria-label":`Previous media for post ${i.item.postId}`,onClick:n[5]||=(0,e.withModifiers)(e=>A(g.value-1,e),[`stop`]),onKeydown:n[6]||=(0,e.withModifiers)(()=>{},[`stop`])},[(0,e.createVNode)((0,e.unref)(F),{size:20})],40,ge),(0,e.createElementVNode)(`button`,{type:`button`,class:`media-carousel-control media-carousel-control--next`,"aria-label":`Next media for post ${i.item.postId}`,onClick:n[7]||=(0,e.withModifiers)(e=>A(g.value+1,e),[`stop`]),onKeydown:n[8]||=(0,e.withModifiers)(()=>{},[`stop`])},[(0,e.createVNode)((0,e.unref)(I),{size:20})],40,_e)],2)):(0,e.createCommentVNode)(``,!0),O.value?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:2,class:`media-card-activator`,type:`button`,"aria-label":`Open post ${i.item.postId}`,onClick:n[9]||=(0,e.withModifiers)(e=>t.$emit(`activate`,k(e)),[`stop`]),onKeydown:n[10]||=(0,e.withModifiers)(()=>{},[`stop`])},null,40,ve)):(0,e.createCommentVNode)(``,!0)],42,le),i.cardFooter?((0,e.openBlock)(),(0,e.createBlock)(K,{key:1,index:i.index,item:i.item,layout:i.layout,"loaded-count":i.loadedCount,"media-index":g.value,"media-source":i.mediaSource,placement:`footer`,region:i.cardFooter,total:i.total},null,8,[`index`,`item`,`layout`,`loaded-count`,`media-index`,`media-source`,`region`,`total`])):(0,e.createCommentVNode)(``,!0)])],46,se))}}),Ce={class:`masonry-feed-shell`},we=[`aria-hidden`,`inert`],Te=240,Ee=6,De=12,Oe=800,ke=1.5,Ae=(0,e.defineComponent)({__name:`MasonryFeed`,props:{enteringPostIds:{},entryDelays:{},suspended:{type:Boolean},canRetryEnd:{type:Boolean},cardFooter:{},cardHeader:{},hasNext:{type:Boolean},infiniteScroll:{type:Boolean},isLoadingMore:{type:Boolean},items:{},loadMoreLocked:{type:Boolean},mediaIndices:{},nextPageError:{type:Boolean},previewStates:{},total:{}},emits:[`activate`,`error`,`loadMore`,`mediaChange`,`ready`,`retryEnd`],setup(t,{expose:n,emit:r}){let o=t,s=r,d=(0,e.shallowRef)(null),f=`vibe-masonry-${(0,e.useId)()}`,p=(0,e.shallowRef)(null),m=(0,e.shallowRef)(0),h=(0,e.shallowRef)(Ee),g=(0,e.shallowRef)(0),_=(0,e.shallowRef)(0),y=(0,e.shallowRef)(0),b=null,x=null,S=null,C=(0,e.computed)(()=>u(o.items,m.value,{additionalHeight:(o.cardHeader?.height??0)+(o.cardFooter?.height??0),gap:h.value,minColumnWidth:Te})),w=(0,e.computed)(()=>({height:`${C.value.height}px`})),E=(0,e.computed)(()=>{let e=Math.max(Oe,_.value*ke),t={scrollTop:g.value-y.value,viewportHeight:_.value},n=l(C.value.items,{...t,overscan:e}),r=new Set(l(C.value.items,{...t,overscan:0}));return n.flatMap(e=>{let t=o.items[e];return t?[{fetchPriority:r.has(e)?`high`:`low`,index:e,item:t}]:[]})});function D(e){let t=C.value.items[e],n=o.items[e]?.postId;if(!t)return{};let r=n!==void 0&&o.enteringPostIds.has(n)?c({containerHeight:C.value.height,gap:h.value}):0;return{"--masonry-entry-delay":`${n===void 0?0:o.entryDelays.get(n)??0}ms`,top:`${t.y}px`,left:`${t.x}px`,width:`${t.width}px`,height:`${t.height}px`,transform:`translate3d(0, ${r}px, 0)`}}function O(){let e=d.value;if(!e)return;g.value=e.scrollTop,_.value=e.clientHeight;let t=p.value;t&&(y.value=t.getBoundingClientRect().top-e.getBoundingClientRect().top+e.scrollTop)}function k(e){let t=e.ownerDocument.documentElement.clientWidth;m.value=e.clientWidth,h.value=Math.min(De,Math.max(Ee,t*.0075)),O()}function A(e){let t=e.currentTarget;t&&(g.value=t.scrollTop,!o.loadMoreLocked&&o.infiniteScroll&&a(t)&&s(`loadMore`))}function j(){let e=d.value;!o.loadMoreLocked&&e&&a(e)&&s(`loadMore`)}function M(){return d.value}return(0,e.watch)(p,e=>{b?.disconnect(),b=null,S!==null&&cancelAnimationFrame(S),e&&(k(e),!(typeof ResizeObserver>`u`)&&(b=new ResizeObserver(([t])=>{let n=t?.contentRect.width??e.clientWidth;Math.abs(n-m.value)<.5||(S=requestAnimationFrame(()=>{S=null,k(e)}))}),b.observe(e)))}),(0,e.watch)(d,e=>{x?.disconnect(),x=null,e&&(O(),!(typeof ResizeObserver>`u`)&&(x=new ResizeObserver(O),x.observe(e)))}),(0,e.onBeforeUnmount)(()=>{b?.disconnect(),x?.disconnect(),S!==null&&cancelAnimationFrame(S)}),n({getScrollElement:M,loadIfNearBottom:j}),(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Ce,[(0,e.createElementVNode)(`main`,{id:f,ref_key:`galleryElement`,ref:d,class:(0,e.normalizeClass)([`gallery-shell masonry-feed`,{"masonry-feed--suspended":t.suspended}]),"data-layout-mode":`masonry`,"aria-hidden":t.suspended||void 0,inert:t.suspended||void 0,onScrollPassive:A},[(0,e.createElementVNode)(`section`,{ref_key:`masonryElement`,ref:p,class:(0,e.normalizeClass)([`masonry`,{"masonry--ready":m.value>0}]),style:(0,e.normalizeStyle)(w.value),"aria-label":`Media gallery`},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(E.value,({fetchPriority:n,item:r,index:a})=>((0,e.openBlock)(),(0,e.createBlock)(Se,{key:r.postId,class:`masonry-item`,entering:t.enteringPostIds.has(r.postId),"fetch-priority":n,"card-footer":t.cardFooter,"card-header":t.cardHeader,index:a,item:r,"item-style":D(a),interactive:``,layout:`masonry`,"loaded-count":t.items.length,"media-index":t.mediaIndices.get(r.postId)??0,"preview-state":t.previewStates.get((0,e.unref)(i)(r.postId,t.mediaIndices.get(r.postId)??0))??`loading`,total:t.total,onActivate:e=>s(`activate`,r.postId,e),onMediaChange:e=>s(`mediaChange`,r.postId,e),onReady:e=>s(`ready`,r.postId,e),onError:e=>s(`error`,r.postId,e)},null,8,[`entering`,`fetch-priority`,`card-footer`,`card-header`,`index`,`item`,`item-style`,`loaded-count`,`media-index`,`preview-state`,`total`,`onActivate`,`onMediaChange`,`onReady`,`onError`]))),128))],6),(0,e.createVNode)(T,{"can-retry-end":t.canRetryEnd,"has-error":t.nextPageError,"has-next":t.hasNext,"infinite-scroll":t.infiniteScroll,"is-loading":t.isLoadingMore,"load-more-locked":t.loadMoreLocked,onLoadMore:r[0]||=e=>s(`loadMore`),onRetryEnd:r[1]||=e=>s(`retryEnd`)},null,8,[`can-retry-end`,`has-error`,`has-next`,`infinite-scroll`,`is-loading`,`load-more-locked`])],42,we),(0,e.createVNode)(v,{"content-size":C.value.height,"controls-id":f,"scroll-element":d.value,suspended:t.suspended},null,8,[`content-size`,`scroll-element`,`suspended`])]))}}),je=[`aria-label`],Me=(0,e.defineComponent)({__name:`ReelAutoAdvanceProgress`,props:{durationMs:{},label:{}},emits:[`complete`],setup(t,{emit:n}){let r=t,i=n,a=(0,e.computed)(()=>({"--vibe-reel-auto-advance-duration":`${r.durationMs}ms`}));return(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{class:`reel-auto-advance`,"data-test":`reel-auto-advance`,role:`timer`,"aria-label":t.label},[(0,e.createElementVNode)(`span`,{class:`reel-auto-advance-progress`,style:(0,e.normalizeStyle)(a.value),onAnimationend:r[0]||=e=>i(`complete`)},null,36)],8,je))}}),Ne=[`data-active-post-id`,`data-active-media-index`],Pe=2,Fe=(0,e.defineComponent)({__name:`ReelFeed`,props:{initialPostId:{},mediaSource:{},reelAutoAdvance:{},canRetryEnd:{type:Boolean},cardFooter:{},cardHeader:{},hasNext:{type:Boolean},infiniteScroll:{type:Boolean},isLoadingMore:{type:Boolean},items:{},loadMoreLocked:{type:Boolean},mediaIndices:{},nextPageError:{type:Boolean},previewStates:{},total:{}},emits:[`activeChange`,`error`,`loadMore`,`mediaChange`,`ready`,`retryEnd`],setup(n,{expose:o,emit:s}){let c=n,l=s,u=(0,e.shallowRef)(null),d=c.initialPostId===null||c.initialPostId===void 0?-1:c.items.findIndex(e=>e.postId===c.initialPostId),f=(0,e.shallowRef)(Math.max(0,d)),p=(0,e.shallowRef)(!1),m=0,h=null,g=null,_=null,v=(0,e.computed)(()=>({gridTemplateRows:`repeat(${c.items.length}, 100cqh)`})),y=(0,e.computed)(()=>{let e=Math.max(0,f.value-Pe),t=Math.min(c.items.length-1,f.value+Pe);return c.items.slice(e,t+1).map((t,n)=>({fetchPriority:e+n===f.value?`high`:`low`,index:e+n,item:t}))}),b=(0,e.computed)(()=>c.items[f.value]?.postId),x=(0,e.computed)(()=>c.items[f.value]),S=(0,e.computed)(()=>{let e=b.value;return e===void 0?0:c.mediaIndices.get(e)??0}),C=(0,e.computed)(()=>{let e=b.value;return e===void 0?`loading`:c.previewStates.get(i(e,S.value))??`loading`}),w=(0,e.computed)(()=>{let e=x.value;if(!e)return``;let t=r(e,S.value);return c.mediaSource===`original`?t.src:t.preview.src}),E=(0,e.computed)(()=>C.value===`ready`&&G(w.value)),D=(0,e.computed)(()=>[b.value,S.value,c.items.length,c.loadMoreLocked,c.reelAutoAdvance.enabled,c.reelAutoAdvance.includePostItems,c.reelAutoAdvance.intervalMs].join(`:`)),O=(0,e.computed)(()=>{let e=x.value,n=!!(e&&c.reelAutoAdvance.includePostItems&&S.value<t(e).length-1),r=c.reelAutoAdvance.intervalMs/1e3;return`Auto advance to the next ${n?`post item`:`post`} in ${r}s`}),k=(0,e.computed)(()=>c.reelAutoAdvance.enabled&&x.value!==void 0&&C.value!==`loading`&&!E.value);function A(e){return{gridRow:`${e+1}`}}function j(e){let t=m||e.clientHeight;return t<=0||c.items.length===0?0:Math.min(c.items.length-1,Math.max(0,Math.round(e.scrollTop/t)))}function M(e){let t=e.currentTarget;t&&(p.value||(f.value=j(t)),!c.loadMoreLocked&&c.infiniteScroll&&a(t)&&l(`loadMore`))}function N(){let e=u.value;e&&(I(!0),m=e.clientHeight,e.scrollTop=f.value*m,g!==null&&cancelAnimationFrame(g),g=requestAnimationFrame(()=>{e.scrollTop=f.value*e.clientHeight,m=e.clientHeight,g=null}),P())}function P(){_!==null&&clearTimeout(_),_=setTimeout(()=>{_=null;let e=u.value;e&&(m=e.clientHeight,e.scrollTop=f.value*m),I(!1)},120)}function F(){I(!0);let e=u.value;e&&(m=e.clientHeight,e.scrollTop=f.value*m),P()}function I(e){p.value=e,u.value?.toggleAttribute(`data-resizing`,e)}function L(){let e=u.value;!c.loadMoreLocked&&e&&a(e)&&l(`loadMore`)}function R(e){let n=x.value;if(!n)return!1;let r=t(n).length;if(r<=1)return!1;let i=(S.value+e+r)%r;return l(`mediaChange`,n.postId,i),!0}function z(e){let t=f.value+e;return!u.value||t<0||t>=c.items.length?!1:(V(t),!0)}function B(){return typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches}function V(e){let t=u.value;if(!t)return;let n=e*(m||t.clientHeight);if(f.value=e,!B()&&typeof t.scrollTo==`function`){t.scrollTo({behavior:`smooth`,top:n});return}t.scrollTop=n}function H(){if(!c.reelAutoAdvance.enabled)return;let e=x.value;if(!e)return;if(c.reelAutoAdvance.includePostItems&&S.value<t(e).length-1){l(`mediaChange`,e.postId,S.value+1);return}let n=f.value+1,r=c.items[n];if(!r){c.hasNext&&!c.loadMoreLocked&&l(`loadMore`);return}c.reelAutoAdvance.includePostItems&&(c.mediaIndices.get(r.postId)??0)!==0&&l(`mediaChange`,r.postId,0),V(n)}function U(e,t){!c.reelAutoAdvance.enabled||e!==b.value||t!==S.value||!E.value||H()}return(0,e.watch)(u,e=>{h?.disconnect(),h=null,e&&(m=e.clientHeight,!(typeof ResizeObserver>`u`)&&(h=new ResizeObserver(N),h.observe(e)))}),(0,e.watch)(()=>c.items.length,async t=>{f.value=Math.min(f.value,Math.max(0,t-1)),await(0,e.nextTick)(),N()}),(0,e.watch)(b,e=>{e!==void 0&&l(`activeChange`,e)},{immediate:!0}),(0,e.onMounted)(()=>{window.addEventListener(`resize`,F),window.addEventListener(`orientationchange`,F),d>=0&&(0,e.nextTick)(N)}),(0,e.onBeforeUnmount)(()=>{window.removeEventListener(`resize`,F),window.removeEventListener(`orientationchange`,F),h?.disconnect(),g!==null&&cancelAnimationFrame(g),_!==null&&clearTimeout(_)}),o({activeIndex:f,activePostId:b,changeActiveMedia:R,loadIfNearBottom:L,moveActivePost:z}),(t,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`main`,{class:(0,e.normalizeClass)([`reel-shell`,{"reel-shell--has-footer":!!n.cardFooter,"reel-shell--has-header":!!n.cardHeader}]),"data-layout-mode":`reel`},[n.cardHeader&&x.value?((0,e.openBlock)(),(0,e.createBlock)(K,{key:0,index:f.value,item:x.value,layout:`reel`,"loaded-count":n.items.length,"media-index":S.value,"media-source":n.mediaSource,placement:`header`,region:n.cardHeader,total:n.total},null,8,[`index`,`item`,`loaded-count`,`media-index`,`media-source`,`region`,`total`])):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`div`,{ref_key:`galleryElement`,ref:u,class:`gallery-shell reel-feed`,"data-active-post-id":b.value,"data-active-media-index":S.value,onScrollPassive:M},[(0,e.createElementVNode)(`section`,{class:`reel-track`,style:(0,e.normalizeStyle)(v.value),"aria-label":`Media gallery`},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(y.value,({fetchPriority:t,item:r,index:a})=>((0,e.openBlock)(),(0,e.createBlock)(Se,{key:r.postId,"advance-on-media-end":c.reelAutoAdvance.enabled&&a===f.value,class:`reel-item`,entering:!1,"fetch-priority":t,index:a,item:r,"item-style":A(a),layout:`reel`,"loaded-count":n.items.length,"media-index":n.mediaIndices.get(r.postId)??0,"media-source":n.mediaSource,"preview-state":n.previewStates.get((0,e.unref)(i)(r.postId,n.mediaIndices.get(r.postId)??0))??`loading`,total:n.total,onMediaChange:e=>l(`mediaChange`,r.postId,e),onEnded:e=>U(r.postId,e),onReady:e=>l(`ready`,r.postId,e),onError:e=>l(`error`,r.postId,e)},null,8,[`advance-on-media-end`,`fetch-priority`,`index`,`item`,`item-style`,`loaded-count`,`media-index`,`media-source`,`preview-state`,`total`,`onMediaChange`,`onEnded`,`onReady`,`onError`]))),128))],4),(0,e.createVNode)(T,{"can-retry-end":n.canRetryEnd,"has-error":n.nextPageError,"has-next":n.hasNext,"infinite-scroll":n.infiniteScroll,"is-loading":n.isLoadingMore,"load-more-locked":n.loadMoreLocked,onLoadMore:r[0]||=e=>l(`loadMore`),onRetryEnd:r[1]||=e=>l(`retryEnd`)},null,8,[`can-retry-end`,`has-error`,`has-next`,`infinite-scroll`,`is-loading`,`load-more-locked`])],40,Ne),n.cardFooter&&x.value?((0,e.openBlock)(),(0,e.createBlock)(K,{key:1,index:f.value,item:x.value,layout:`reel`,"loaded-count":n.items.length,"media-index":S.value,"media-source":n.mediaSource,placement:`footer`,region:n.cardFooter,total:n.total},null,8,[`index`,`item`,`loaded-count`,`media-index`,`media-source`,`region`,`total`])):(0,e.createCommentVNode)(``,!0),k.value?((0,e.openBlock)(),(0,e.createBlock)(Me,{key:D.value,"duration-ms":n.reelAutoAdvance.intervalMs,label:O.value,onComplete:H},null,8,[`duration-ms`,`label`])):(0,e.createCommentVNode)(``,!0)],2))}}),Ie=[`data-info-sheet-open`,`data-info-sheet-mode`],Le=[`aria-hidden`,`inert`],Re={key:0,class:`reel-info-sheet-layer`,"data-test":`reel-info-sheet`},ze=[`role`,`aria-modal`,`tabindex`,`data-active-post-id`],Be=(0,e.defineComponent)({__name:`ReelLayout`,props:{infoSheet:{},infoSheetEnabled:{type:Boolean},infoSheetOverlay:{type:Boolean},origin:{},initialPostId:{},mediaSource:{},reelAutoAdvance:{},canRetryEnd:{type:Boolean},cardFooter:{},cardHeader:{},hasNext:{type:Boolean},infiniteScroll:{type:Boolean},isLoadingMore:{type:Boolean},items:{},loadMoreLocked:{type:Boolean},mediaIndices:{},nextPageError:{type:Boolean},previewStates:{},total:{}},emits:[`activeChange`,`closeInfoSheet`,`error`,`loadMore`,`mediaChange`,`ready`,`retryEnd`],setup(n,{expose:i,emit:a}){let o=n,s=a,c=(0,e.shallowRef)(null),l=(0,e.shallowRef)(null),u=null,d=(0,e.computed)(()=>{let e=o.initialPostId===null||o.initialPostId===void 0?-1:o.items.findIndex(e=>e.postId===o.initialPostId);return Math.max(0,e)}),f=(0,e.computed)(()=>o.items[d.value]),p=(0,e.computed)(()=>{let e=f.value?.postId;return e===void 0?0:o.mediaIndices.get(e)??0}),m=(0,e.computed)(()=>!!(o.infoSheet&&o.infoSheetEnabled&&f.value)),h=(0,e.computed)(()=>{let e=f.value;return e?{close:g,index:d.value,item:e,layout:`reel`,loadedCount:o.items.length,mediaCount:t(e).length,mediaIndex:p.value,mediaItem:r(e,p.value),mediaSource:o.mediaSource??`preview`,origin:o.origin,total:o.total}:null});function g(){s(`closeInfoSheet`)}function _(e){return c.value?.changeActiveMedia(e)??!1}function v(){c.value?.loadIfNearBottom()}function y(e){return c.value?.moveActivePost(e)??!1}function b(e,t){s(`error`,e,t)}function x(e,t){s(`mediaChange`,e,t)}function S(e,t){s(`ready`,e,t)}return(0,e.watch)(()=>({overlay:o.infoSheetOverlay,visible:m.value}),async(t,n)=>{if(t.visible&&!n?.visible){u=document.activeElement instanceof HTMLElement?document.activeElement:null,t.overlay&&(await(0,e.nextTick)(),l.value?.focus({preventScroll:!0}));return}if(!t.visible&&n?.visible&&u?.isConnected){let t=u;u=null,await(0,e.nextTick)(),t.focus({preventScroll:!0})}}),(0,e.onBeforeUnmount)(()=>{u=null}),i({changeActiveMedia:_,loadIfNearBottom:v,moveActivePost:y}),(t,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`section`,{class:(0,e.normalizeClass)([`reel-layout`,`reel-layout--${n.infoSheetOverlay?`overlay`:`layout`}`]),"data-info-sheet-open":m.value||void 0,"data-info-sheet-mode":n.infoSheetOverlay?`overlay`:`layout`},[(0,e.createElementVNode)(`div`,{class:`reel-layout-main`,"aria-hidden":n.infoSheetOverlay&&m.value||void 0,inert:n.infoSheetOverlay&&m.value||void 0},[(0,e.createVNode)(Fe,{ref_key:`reelFeed`,ref:c,"can-retry-end":n.canRetryEnd,"card-footer":n.cardFooter,"card-header":n.cardHeader,"has-next":n.hasNext,"infinite-scroll":n.infiniteScroll,"initial-post-id":n.initialPostId,"is-loading-more":n.isLoadingMore,items:n.items,"load-more-locked":n.loadMoreLocked,"media-indices":n.mediaIndices,"media-source":n.mediaSource,"next-page-error":n.nextPageError,"preview-states":n.previewStates,"reel-auto-advance":n.reelAutoAdvance,total:n.total,onActiveChange:r[0]||=e=>s(`activeChange`,e),onError:b,onLoadMore:r[1]||=e=>s(`loadMore`),onMediaChange:x,onReady:S,onRetryEnd:r[2]||=e=>s(`retryEnd`)},null,8,[`can-retry-end`,`card-footer`,`card-header`,`has-next`,`infinite-scroll`,`initial-post-id`,`is-loading-more`,`items`,`load-more-locked`,`media-indices`,`media-source`,`next-page-error`,`preview-states`,`reel-auto-advance`,`total`])],8,Le),(0,e.createVNode)(e.Transition,{name:`vibe-info-sheet`},{default:(0,e.withCtx)(()=>[m.value&&n.infoSheet&&h.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Re,[(0,e.createElementVNode)(`aside`,{ref_key:`sheetElement`,ref:l,class:`reel-info-sheet`,role:n.infoSheetOverlay?`dialog`:`complementary`,"aria-label":`Reel information`,"aria-modal":n.infoSheetOverlay?`true`:void 0,tabindex:n.infoSheetOverlay?-1:void 0,"data-active-post-id":f.value?.postId},[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(n.infoSheet.component),(0,e.normalizeProps)((0,e.guardReactiveProps)(h.value)),null,16))],8,ze)])):(0,e.createCommentVNode)(``,!0)]),_:1})],10,Ie))}}),Ve={key:0,class:`gallery-shell`,role:`alert`},He={key:1,class:`gallery-shell`,role:`status`},Ue={key:2,class:`gallery-shell`},We=35,Ge=(0,e.defineComponent)({__name:`VibeSurface`,props:{canRetryEnd:{type:Boolean},cardFooter:{},cardHeader:{},reelInfoSheet:{},state:{}},emits:[`activeReelChange`,`closeReel`,`loadMore`,`openReel`,`reelInfoSheetChange`,`retryEnd`],setup(t,{expose:r,emit:a}){let o=t,s=a,c=(0,e.shallowRef)(null),l=(0,e.shallowRef)(null),u=(0,e.shallowRef)(null),d=(0,e.shallowRef)(null),f=(0,e.shallowRef)({}),p=(0,e.shallowRef)(!1),m=(0,e.shallowRef)(new Set),h=(0,e.shallowRef)(new Map),g=(0,e.shallowRef)(new Map),_=(0,e.shallowRef)(new Map),v=(0,e.shallowRef)(new Map),y=(0,e.computed)(()=>o.state.reelMediaSource===`original`?v.value:_.value),b=new Set(o.state.items.map(e=>e.postId)),x=null,S=null,C=!1;function w(){return typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches}function T(){x!==null&&cancelAnimationFrame(x),x=requestAnimationFrame(()=>{x=requestAnimationFrame(()=>{x=null,m.value=new Set})})}function E(e,t,n){let r=i(e,t);_.value.get(r)!==n&&(_.value=new Map(_.value).set(r,n))}function D(e,t,n){let r=i(e,t);v.value.get(r)!==n&&(v.value=new Map(v.value).set(r,n))}function O(e,t){E(e,t,`error`)}function k(e,t){E(e,t,`ready`)}function A(e,t){D(e,t,`error`)}function j(e,t){D(e,t,`ready`)}function M(e,t){if(o.state.reelMediaSource===`original`){A(e,t);return}O(e,t)}function N(e,t){if(o.state.reelMediaSource===`original`){j(e,t);return}k(e,t)}function P(e,t){let r=o.state.items.find(t=>t.postId===e);if(!r)return;let i=n(r,t);(g.value.get(e)??0)!==i&&(g.value=new Map(g.value).set(e,i))}async function F(){await(0,e.nextTick)(),(o.state.layout===`reel`||o.state.reelOrigin===`masonry`?l.value:c.value)?.loadIfNearBottom()}function I(e){return o.state.isLoading||o.state.items.length===0||o.state.layout!==`reel`&&o.state.reelOrigin!==`masonry`?!1:l.value?.changeActiveMedia?.(e)??!1}function L(e){return o.state.isLoading||o.state.items.length===0||o.state.layout!==`reel`&&o.state.reelOrigin!==`masonry`?!1:l.value?.moveActivePost?.(e)??!1}function R(){return o.state.layout!==`masonry`||o.state.reelOrigin===`masonry`?null:c.value?.getScrollElement?.()??null}function z(t,n){S=t,C=n===`keyboard`,f.value=H(t),s(`openReel`,t),(0,e.nextTick)(()=>u.value?.focus())}function B(e){let t=d.value?.querySelectorAll(`.masonry-feed [data-post-id]`)??[];return Array.from(t).find(t=>t.dataset.postId===String(e))??null}function V(e,t){let n=B(e),r=n?.querySelector(`.media-card-activator`)??n;r&&(r.classList.toggle(`media-card-focus-silent`,!t),t||r.addEventListener(`blur`,()=>{r.classList.remove(`media-card-focus-silent`)},{once:!0}),r?.focus({preventScroll:!0}))}function H(e){let t=d.value,n=B(e);if(t===null||n===null)return{};let r=t.getBoundingClientRect(),i=n.getBoundingClientRect();return{"--vibe-reel-origin-top":`${Math.max(0,i.top-r.top)}px`,"--vibe-reel-origin-right":`${Math.max(0,r.right-i.right)}px`,"--vibe-reel-origin-bottom":`${Math.max(0,r.bottom-i.bottom)}px`,"--vibe-reel-origin-left":`${Math.max(0,i.left-r.left)}px`}}function U(){o.state.reelOrigin===`masonry`&&(S??=o.state.activeReelPostId,p.value=!0,s(`closeReel`))}function W(){let t=S,n=C;p.value=!1,S=null,C=!1,f.value={},(0,e.nextTick)(()=>{t!==null&&V(t,n)})}function G(e){let t=o.state.layout===`reel`||o.state.reelOrigin===`masonry`;if(e.key===`Escape`&&o.state.reelOrigin===`masonry`){e.preventDefault(),U();return}if(e.key===`Escape`&&t&&o.state.reelInfoSheet.enabled){e.preventDefault(),s(`reelInfoSheetChange`,!1);return}if(e.defaultPrevented||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey||p.value||o.state.layout!==`reel`&&o.state.reelOrigin!==`masonry`)return;let n=e.target;if(n instanceof HTMLElement&&(n.isContentEditable||[`INPUT`,`SELECT`,`TEXTAREA`].includes(n.tagName)))return;let r=e.key===`ArrowLeft`?-1:e.key===`ArrowRight`?1:0;r!==0&&l.value?.changeActiveMedia?.(r)&&e.preventDefault()}return(0,e.watch)(()=>o.state.items.map(e=>e.postId),e=>{let t=e.filter(e=>!b.has(e));if(b=new Set(e),t.length===0||w())return;let n=new Map;e.forEach(e=>{let t=h.value.get(e);t!==void 0&&n.set(e,t)}),t.forEach((e,t)=>{n.set(e,t*We)}),h.value=n,m.value=new Set([...m.value,...t]),T()},{flush:`sync`}),(0,e.onMounted)(()=>window.addEventListener(`keydown`,G)),(0,e.onBeforeUnmount)(()=>{window.removeEventListener(`keydown`,G),x!==null&&cancelAnimationFrame(x)}),r({changeActiveReelMedia:I,getAutoScrollElement:R,loadIfNearBottom:F,moveActiveReelPost:L}),(n,r)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{ref_key:`surfaceElement`,ref:d,class:`vibe-surface`},[t.state.error?((0,e.openBlock)(),(0,e.createElementBlock)(`main`,Ve,[...r[10]||=[(0,e.createElementVNode)(`p`,{class:`gallery-status`},` Unable to load media. `,-1)]])):t.state.isLoading?((0,e.openBlock)(),(0,e.createElementBlock)(`main`,He,[...r[11]||=[(0,e.createElementVNode)(`p`,{class:`gallery-status`},` Loading media… `,-1)]])):t.state.items.length===0?((0,e.openBlock)(),(0,e.createElementBlock)(`main`,Ue,[...r[12]||=[(0,e.createElementVNode)(`p`,{class:`gallery-status`},` No media found. `,-1)]])):t.state.layout===`reel`?((0,e.openBlock)(),(0,e.createBlock)(Be,{key:3,ref_key:`reelRenderer`,ref:l,"can-retry-end":t.canRetryEnd,"has-next":t.state.next!==null,"card-footer":t.cardFooter,"card-header":t.cardHeader,"infinite-scroll":t.state.infiniteScroll,"is-loading-more":t.state.isLoadingMore,items:t.state.items,"load-more-locked":t.state.loadMoreLocked,"media-source":t.state.reelMediaSource,"media-indices":g.value,"initial-post-id":t.state.activeReelPostId,"info-sheet":t.reelInfoSheet,"info-sheet-enabled":t.state.reelInfoSheet.enabled,"info-sheet-overlay":t.state.reelInfoSheetOverlay,"next-page-error":!!t.state.nextPageError,origin:`reel`,"preview-states":y.value,"reel-auto-advance":t.state.reelAutoAdvance,total:t.state.total,onActiveChange:r[0]||=e=>s(`activeReelChange`,e),onCloseInfoSheet:r[1]||=e=>s(`reelInfoSheetChange`,!1),onError:M,onLoadMore:r[2]||=e=>s(`loadMore`),onMediaChange:P,onReady:N,onRetryEnd:r[3]||=e=>s(`retryEnd`)},null,8,[`can-retry-end`,`has-next`,`card-footer`,`card-header`,`infinite-scroll`,`is-loading-more`,`items`,`load-more-locked`,`media-source`,`media-indices`,`initial-post-id`,`info-sheet`,`info-sheet-enabled`,`info-sheet-overlay`,`next-page-error`,`preview-states`,`reel-auto-advance`,`total`])):((0,e.openBlock)(),(0,e.createElementBlock)(e.Fragment,{key:4},[(0,e.createVNode)(Ae,{ref_key:`masonryRenderer`,ref:c,"can-retry-end":t.canRetryEnd,"entering-post-ids":m.value,"entry-delays":h.value,"card-footer":t.cardFooter,"card-header":t.cardHeader,"has-next":t.state.next!==null,"infinite-scroll":t.state.infiniteScroll,"is-loading-more":t.state.isLoadingMore,items:t.state.items,"load-more-locked":t.state.loadMoreLocked,"media-indices":g.value,"next-page-error":!!t.state.nextPageError,"preview-states":_.value,suspended:t.state.reelOrigin===`masonry`||p.value,total:t.state.total,onActivate:z,onError:O,onLoadMore:r[4]||=e=>s(`loadMore`),onMediaChange:P,onReady:k,onRetryEnd:r[5]||=e=>s(`retryEnd`)},null,8,[`can-retry-end`,`entering-post-ids`,`entry-delays`,`card-footer`,`card-header`,`has-next`,`infinite-scroll`,`is-loading-more`,`items`,`load-more-locked`,`media-indices`,`next-page-error`,`preview-states`,`suspended`,`total`]),(0,e.createVNode)(e.Transition,{name:`vibe-reel-viewer`,onAfterLeave:W},{default:(0,e.withCtx)(()=>[t.state.reelOrigin===`masonry`?((0,e.openBlock)(),(0,e.createElementBlock)(`section`,{key:0,ref_key:`reelOverlay`,ref:u,class:`vibe-reel-overlay`,role:`dialog`,"aria-label":`Media viewer`,"aria-modal":`true`,tabindex:`-1`,style:(0,e.normalizeStyle)(f.value)},[(0,e.createVNode)(Be,{ref_key:`reelRenderer`,ref:l,"can-retry-end":t.canRetryEnd,"card-footer":t.cardFooter,"card-header":t.cardHeader,"has-next":t.state.next!==null,"infinite-scroll":t.state.infiniteScroll,"initial-post-id":t.state.activeReelPostId,"info-sheet":t.reelInfoSheet,"info-sheet-enabled":t.state.reelInfoSheet.enabled,"info-sheet-overlay":t.state.reelInfoSheetOverlay,"is-loading-more":t.state.isLoadingMore,items:t.state.items,"load-more-locked":t.state.loadMoreLocked,"media-indices":g.value,"media-source":`original`,"next-page-error":!!t.state.nextPageError,origin:`masonry`,"preview-states":v.value,"reel-auto-advance":t.state.reelAutoAdvance,total:t.state.total,onActiveChange:r[6]||=e=>s(`activeReelChange`,e),onCloseInfoSheet:r[7]||=e=>s(`reelInfoSheetChange`,!1),onError:A,onLoadMore:r[8]||=e=>s(`loadMore`),onMediaChange:P,onReady:j,onRetryEnd:r[9]||=e=>s(`retryEnd`)},null,8,[`can-retry-end`,`card-footer`,`card-header`,`has-next`,`infinite-scroll`,`initial-post-id`,`info-sheet`,`info-sheet-enabled`,`info-sheet-overlay`,`is-loading-more`,`items`,`load-more-locked`,`media-indices`,`next-page-error`,`preview-states`,`reel-auto-advance`,`total`])],4)):(0,e.createCommentVNode)(``,!0)]),_:1})],64))],512))}});function Ke(e){if(!e||typeof e!=`object`||!Array.isArray(e.items))throw TypeError(`Vibe loadPage must resolve to a page with an items array.`);if(e.next!==null&&typeof e.next!=`string`&&typeof e.next!=`number`)throw TypeError(`Vibe page next must be a string, number, or null.`);if(e.total!==void 0&&(!Number.isFinite(e.total)||e.total<0))throw TypeError(`Vibe page total must be a non-negative number when provided.`);return e}function J(e,t){let n=new Set(e.map(e=>e.postId));return[...e,...t.filter(e=>n.has(e.postId)?!1:(n.add(e.postId),!0))]}var qe=2e3,Je=1e4,Ye=250,Y={delayRemainingMs:null,nextRequestAt:null};function Xe(e,t){return e===void 0?t:Math.floor(e)}function Ze(e,t){for(let[n,r]of[[`delayStepMs`,e.delayStepMs],[`delayMaxMs`,e.delayMaxMs]])if(r!==void 0&&(!Number.isFinite(r)||r<0))throw TypeError(`Vibe ${t} ${n} must be a non-negative number.`)}function Qe(e,t={}){let n=Xe(t.delayStepMs,qe),r=Xe(t.delayMaxMs,Je);return Math.min(Math.max(0,e)*n,r)}function X(e){if(e==null||!Number.isFinite(e))return{...Y};let t=Math.max(0,Math.floor(e-Date.now()));return t>0?{delayRemainingMs:t,nextRequestAt:e}:{...Y}}async function $e({delayMs:e,onChange:t,signal:n}){if(n.aborted)throw new DOMException(`Aborted`,`AbortError`);if(e<=0){t({...Y});return}let r=Date.now()+e;t({delayRemainingMs:e,nextRequestAt:r}),await new Promise((i,a)=>{let o=!1,s=setInterval(f,Ye),c=setTimeout(()=>u(),e);function l(){clearInterval(s),clearTimeout(c),n.removeEventListener(`abort`,d),t({...Y})}function u(e){o||(o=!0,l(),e?a(e):i())}function d(){u(new DOMException(`Aborted`,`AbortError`))}function f(){let e=X(r);t(e),e.delayRemainingMs===null&&u()}n.addEventListener(`abort`,d,{once:!0})})}var et=class{interval=null;constructor(e){this.onChange=e}clear(){this.interval!==null&&clearInterval(this.interval),this.interval=null,this.onChange({...Y})}sync(e){this.clear();let t=X(e);this.onChange(t),t.delayRemainingMs!==null&&(this.interval=setInterval(()=>{let t=X(e);this.onChange(t),t.delayRemainingMs===null&&this.clear()},Ye))}};function tt(e){return`${typeof e}:${String(e)}`}function nt(e,t){if(!Number.isInteger(e)||e<=0)throw TypeError(`Vibe ${t} must be a positive integer.`)}function rt(e){if(!e)return;if(nt(e.pageSize,`autofill pageSize`),e.strategy===`frontend`){Ze(e,`frontend autofill`);let t=e.maxAdditionalPages;if(t!==void 0&&(!Number.isInteger(t)||t<0))throw TypeError(`Vibe autofill maxAdditionalPages must be a non-negative integer.`);return}if(!e.feedKey.trim())throw TypeError(`Vibe backend autofill requires a feedKey.`);let t=e.initialSession;if(t){if(t.feedKey!==e.feedKey)throw TypeError(`Vibe backend autofill initialSession feedKey must match autofill feedKey.`);if(t.pageSize!==e.pageSize)throw TypeError(`Vibe backend autofill initialSession pageSize must match autofill pageSize.`)}}function Z(e,t,n=!0){if(!e)return{cycleId:null,delayRemainingMs:null,enabled:!1,error:null,feedKey:null,missing:0,nextRequestAt:null,pageSize:null,received:0,requests:0,sequence:0,sessionId:null,status:`idle`,strategy:null};let r=e.strategy===`backend`?t??(n?e.initialSession:void 0):void 0,i=r?.received??0,a=X(r?.nextRequestAt);return{cycleId:r?.cycleId??null,...a,enabled:!0,error:r?.error??null,feedKey:e.strategy===`backend`?e.feedKey:null,missing:Math.max(0,e.pageSize-i),pageSize:e.pageSize,received:i,requests:r?.requests??0,sequence:r?.sequence??0,sessionId:r?.sessionId??null,status:r?r.status:`idle`,strategy:e.strategy}}function Q(e){return[`cancelling`,`filling`,`restoring`,`waiting`].includes(e.status)}async function it(e,t,n){let r=t.autofill;if(!Q(r)||!r.cycleId)return;let i={cycleId:r.cycleId,feedKey:r.feedKey??``,sessionId:r.sessionId};n(),r.status=`cancelling`;try{e?.strategy===`backend`&&await e.onCancel(i),r.error=null,r.status=`cancelled`}catch(e){throw r.error=e,r.status=`error`,e}}function at(e,t,n){return e?.strategy===`backend`&&t.feedKey===e.feedKey&&t.sessionId===n.sessionId}async function ot({existingItems:e,initialCursor:t,loadPage:n,maximumRequests:r,onDelayChange:i,onProgress:a,options:o,receivedOffset:s=0,requestOffset:c=0,signal:l}){let u=[],d=[...e],f=new Set,p=r??1+(o.maxAdditionalPages??10),m=t,h=t,g=0,_;for(;g<p;){let e=tt(m);if(f.has(e))throw Error(`Vibe autofill received a repeated cursor.`);f.add(e),await $e({delayMs:Qe(c+g,o),onChange:i,signal:l});let t=Ke(await n({cursor:m,signal:l}));g+=1;let r=J(d,t.items).slice(d.length);d.push(...r),u.push(...r),h=t.next,t.total!==void 0&&(_=t.total);let p={missing:Math.max(0,o.pageSize-s-u.length),next:h,received:s+u.length,requests:c+g};if(a(p),p.missing===0)return{...p,items:u,lastCursor:m,status:`complete`,total:_};if(h===null)return{...p,items:u,lastCursor:m,status:`exhausted`,total:_};m=h}return{items:u,lastCursor:m,missing:Math.max(0,o.pageSize-s-u.length),next:h,received:s+u.length,requests:c+g,status:`exhausted`,total:_}}var st=100;function $(e,t){if(!Number.isFinite(t)||t<=0)throw TypeError(`Vibe ${e} must be a positive number.`)}function ct(e,t,n){return Math.min(n,Math.max(t,e))}function lt(e){if(!e)return;let t=e.minSpeedPxPerSecond??20,n=e.maxSpeedPxPerSecond??240;if($(`autoScroll.minSpeedPxPerSecond`,t),$(`autoScroll.maxSpeedPxPerSecond`,n),t>n)throw TypeError(`Vibe autoScroll.minSpeedPxPerSecond cannot exceed maxSpeedPxPerSecond.`);e.speedPxPerSecond!==void 0&&$(`autoScroll.speedPxPerSecond`,e.speedPxPerSecond)}function ut(e){let t=e?.minSpeedPxPerSecond??20,n=e?.maxSpeedPxPerSecond??240;return{enabled:e?.enabled??!1,maxSpeedPxPerSecond:n,minSpeedPxPerSecond:t,paused:!1,speedPxPerSecond:ct(e?.speedPxPerSecond??80,t,n)}}var dt=class{frame=null;lastTimestamp=null;mounted=!1;constructor(e){this.options=e}mount(){this.mounted=!0,this.schedule()}destroy(){this.mounted=!1,this.cancelFrame()}setEnabled(e,t){t!==void 0&&this.setSpeed(t),this.options.state.enabled=e,this.options.state.paused=!1,this.lastTimestamp=null,e?this.schedule():this.cancelFrame()}setPaused(e){this.options.state.enabled&&(this.options.state.paused=e,this.lastTimestamp=null,e?this.cancelFrame():this.schedule())}setSpeed(e){$(`auto-scroll speed`,e);let t=this.options.state;t.speedPxPerSecond=ct(e,t.minSpeedPxPerSecond,t.maxSpeedPxPerSecond)}tick=e=>{this.frame=null;let t=this.options.state;if(!this.mounted||!t.enabled)return;let n=t.paused?null:this.options.getScrollElement();if(!n){this.lastTimestamp=null,this.schedule();return}if(this.lastTimestamp!==null){let r=Math.min(st,Math.max(0,e-this.lastTimestamp)),i=Math.max(0,n.scrollHeight-n.clientHeight);n.scrollTop=Math.min(i,n.scrollTop+t.speedPxPerSecond*r/1e3)}this.lastTimestamp=e,this.schedule()};schedule(){!this.mounted||!this.options.state.enabled||this.frame!==null||typeof requestAnimationFrame==`function`&&(this.frame=requestAnimationFrame(this.tick))}cancelFrame(){this.frame!==null&&typeof cancelAnimationFrame==`function`&&cancelAnimationFrame(this.frame),this.frame=null,this.lastTimestamp=null}};async function ft(e,t,n,r){let i=await e.onUnderfilled(n);if(!r())return;if(!i.sessionId.trim())throw TypeError(`Vibe backend autofill requires a sessionId.`);let a=Math.max(n.received,i.received??n.received);Object.assign(t.autofill,{...X(i.nextRequestAt),missing:Math.max(0,e.pageSize-a),received:a,sequence:i.sequence??0,sessionId:i.sessionId,status:`waiting`})}function pt(e,t){[`complete`,`exhausted`].includes(t.status)&&t.items&&(e.items=J(e.items,t.items)),t.next!==void 0&&(e.next=t.next),t.total!==void 0&&(e.total=t.total)}function mt(e,t,n){let r=t.autofill;return!at(e,n,r)||n.sequence<=r.sequence||[`cancelled`,`cancelling`].includes(r.status)||[`complete`,`exhausted`].includes(n.status)&&n.next===void 0?!1:(pt(t,n),Object.assign(r,X(n.status===`waiting`?n.nextRequestAt:null)),r.error=n.error??null,r.missing=Math.max(0,(r.pageSize??0)-n.received),r.received=n.received,n.requests!==void 0&&(r.requests=n.requests),r.sequence=n.sequence,r.status=n.status,!0)}function ht(e,t,n){return e?.strategy!==`backend`||n.feedKey!==e.feedKey||n.pageSize!==e.pageSize?!1:(t.autofill=Z(e,n),pt(t,n),!0)}var gt=1.5;function _t(e){let t=Math.min(e.screenWidth,e.screenHeight);if(t>0&&t<600)return!0;let n=Math.min(e.viewportWidth,e.viewportHeight),r=t>=n*gt;return!e.hasHover&&n>0&&n<600&&r}function vt(e){return _t(e)?`reel`:`masonry`}function yt(e){let t=e.ownerDocument.defaultView,n=e.ownerDocument.documentElement;return{hasHover:typeof t?.matchMedia==`function`&&t.matchMedia(`(hover: hover)`).matches,screenHeight:t?.screen.height??0,screenWidth:t?.screen.width??0,viewportHeight:n.clientHeight,viewportWidth:n.clientWidth}}function bt(e){return _t(yt(e))}function xt(e){return vt(yt(e))}async function St({cycleId:e,isCurrent:t,onLastCursor:n,options:r,signal:i,state:a}){let o=r.autofill;if(!o)return;let s=a.items.length;if(Object.assign(a.autofill,{missing:Math.max(0,o.pageSize-s),received:s,requests:1}),s>=o.pageSize){a.autofill.status=`complete`;return}if(o.strategy===`backend`){await ft(o,a,{cycleId:e,feedKey:o.feedKey,items:[...a.items],missing:o.pageSize-s,next:a.next,pageSize:o.pageSize,received:s,signal:i,total:a.total},t);return}if(!r.loadPage||a.next===null){a.autofill.status=`exhausted`;return}let c=await ot({existingItems:a.items,initialCursor:a.next,loadPage:r.loadPage,maximumRequests:o.maxAdditionalPages??10,onDelayChange:e=>{t()&&Object.assign(a.autofill,e)},onProgress:e=>{t()&&Object.assign(a.autofill,e,{status:`filling`})},options:o,receivedOffset:s,requestOffset:1,signal:i});t()&&(a.items=J(a.items,c.items),a.next=c.next,c.total!==void 0&&(a.total=c.total),n(c.lastCursor),Object.assign(a.autofill,{missing:c.missing,received:c.received,requests:c.requests,status:c.status}))}function Ct(e){return`pages`in e?{pages:e.pages}:{until:`end`}}function wt(e){return`${typeof e}:${String(e)}`}function Tt(e){if(!e||typeof e!=`object`)throw TypeError(`Vibe fill target must be an object.`);if(`pages`in e){if(!Number.isInteger(e.pages)||e.pages<=0)throw TypeError(`Vibe fill pages must be a positive integer.`);return{pages:e.pages}}if(`until`in e&&e.until===`end`)return{until:`end`};throw TypeError(`Vibe fill target must be { pages } or { until: 'end' }.`)}function Et(e){if(!e)return;if(e.strategy===`frontend`){Ze(e,`frontend fill`);return}if(!e.feedKey.trim())throw TypeError(`Vibe backend fill requires a feedKey.`);let t=e.initialSession;if(t){if(t.feedKey!==e.feedKey)throw TypeError(`Vibe backend fill initialSession feedKey must match fill feedKey.`);Tt(t.target)}}function Dt(e,t,n=!0){let r=e?.strategy===`backend`&&n?e.initialSession:void 0,i=t??r,a=X(i?.nextRequestAt);return{completedPages:i?.completedPages??0,cycleId:i?.cycleId??null,...a,enabled:!!e,error:i?.error??null,feedKey:e?.strategy===`backend`?e.feedKey:null,received:i?.received??0,sequence:i?.sequence??0,sessionId:i?.sessionId??null,status:i?.status??`idle`,strategy:e?.strategy??null,target:i?Ct(i.target):null}}function Ot(e){return[`cancelling`,`filling`,`restoring`,`waiting`].includes(e.status)}async function kt({existingItems:e,initialCursor:t,loadPage:n,onDelayChange:r,onProgress:i,options:a,signal:o,target:s}){let c=[],l=[...e],u=new Set,d=0,f=t,p=t,m=0,h;for(;p!==null;){let e=wt(f);if(u.has(e))throw Error(`Vibe fill received a repeated cursor.`);u.add(e),await $e({delayMs:Qe(d,a),onChange:r,signal:o});let t=Ke(await n({cursor:f,signal:o}));d+=1;let g=J(l,t.items).slice(l.length);if(l.push(...g),c.push(...g),m=c.length,p=t.next,t.total!==void 0&&(h=t.total),i({completedPages:d,next:p,received:m}),`pages`in s&&d>=s.pages)return{completedPages:d,items:c,lastCursor:f,next:p,received:m,status:`complete`,total:h};if(p===null)return{completedPages:d,items:c,lastCursor:f,next:p,received:m,status:`pages`in s?`exhausted`:`complete`,total:h};f=p}return{completedPages:d,items:c,lastCursor:f,next:null,received:m,status:`pages`in s?`exhausted`:`complete`,total:h}}async function At(e,t,n,r){let i=await e.onStart(n);if(r()){if(!i.sessionId.trim())throw TypeError(`Vibe backend fill requires a sessionId.`);Object.assign(t.fill,{...X(i.nextRequestAt),completedPages:i.completedPages??0,received:i.received??0,sequence:i.sequence??0,sessionId:i.sessionId,status:`waiting`})}}function jt(e,t,n){return e?.strategy===`backend`&&n.feedKey===e.feedKey&&n.sessionId===t.fill.sessionId}function Mt(e){return Number.isInteger(e.completedPages)&&e.completedPages>=0&&Number.isInteger(e.received)&&e.received>=0&&Number.isInteger(e.sequence)&&e.sequence>=0}function Nt(e,t){if(![`complete`,`exhausted`].includes(t.status))return!0;let n=e.fill.target;return!n||!Array.isArray(t.items)||t.next===void 0||t.lastCursor===void 0?!1:t.status===`exhausted`?`pages`in n&&t.completedPages<n.pages&&t.next===null:`pages`in n?t.completedPages===n.pages:t.next===null}function Pt(e,t,n){t.total!==void 0&&(e.total=t.total),[`complete`,`exhausted`].includes(t.status)&&(e.items=J(e.items,t.items??[]),e.next=t.next??null,n(t.lastCursor??null))}function Ft(e,t,n,r){return!jt(e,t,n)||!Mt(n)||n.sequence<=t.fill.sequence||[`cancelled`,`cancelling`].includes(t.fill.status)||!Nt(t,n)?!1:(Pt(t,n,r),Object.assign(t.fill,{...X(n.status===`waiting`?n.nextRequestAt:null),completedPages:n.completedPages,error:n.error??null,received:n.received,sequence:n.sequence,status:n.status}),!0)}function It(e,t,n,r){if(e?.strategy!==`backend`||n.feedKey!==e.feedKey)return!1;let i=t.fill;return t.fill=Dt(e,n),!Mt(n)||!Nt(t,n)?(t.fill=i,!1):(Pt(t,n,r),!0)}var Lt=class{abortController=null;cycle=0;delayCountdown;requestVersion=0;constructor(e){this.options=e,this.delayCountdown=new et(e=>{Object.assign(this.options.state.fill,e)}),this.syncBackendCountdown()}isActive(){return Ot(this.options.state.fill)}applyUpdate(e){let t=Ft(this.options.fill,this.options.state,e,this.options.onLastCursor);return t&&this.syncBackendCountdown(),t}restoreSession(e){let t=It(this.options.fill,this.options.state,e,this.options.onLastCursor);return t&&this.syncBackendCountdown(),t}async start(e){let t=this.options.fill;if(!t)throw Error(`Vibe fill is not configured.`);if(this.isActive())throw Error(`Vibe fill is already active.`);let n=Tt(e),r=`vibe-fill-${Date.now().toString(36)}-${++this.cycle}`;if(this.options.state.fill={...Dt(t,void 0,!1),cycleId:r,status:`filling`,target:n},this.options.state.next===null){this.options.state.fill.status=`pages`in n?`exhausted`:`complete`;return}let i=++this.requestVersion,a=new AbortController;this.abortController=a;try{t.strategy===`frontend`?await this.startFrontend(t,n,a,i):(await At(t,this.options.state,{cycleId:r,feedKey:t.feedKey,items:[...this.options.state.items],next:this.options.state.next,signal:a.signal,target:n,total:this.options.state.total},()=>this.isCurrent(i)),this.syncBackendCountdown())}catch(e){if(a.signal.aborted||!this.isCurrent(i))return;throw this.options.state.fill.error=e,this.options.state.fill.status=`error`,e}finally{this.isCurrent(i)&&(this.abortController=null,this.options.state.isLoadingMore=!1)}}async cancel(){let{fill:e,state:t}=this.options;if(!Ot(t.fill)||!t.fill.cycleId)return;let n={cycleId:t.fill.cycleId,feedKey:t.fill.feedKey??``,sessionId:t.fill.sessionId};t.fill.status=`cancelling`,this.delayCountdown.clear(),this.abortController?.abort(),this.requestVersion+=1,this.abortController=null,t.isLoadingMore=!1;try{e?.strategy===`backend`&&await e.onCancel(n),t.fill.error=null,t.fill.status=`cancelled`}catch(e){throw t.fill.error=e,t.fill.status=`error`,e}}reset(){this.abortLocalRequest(),this.delayCountdown.clear(),this.options.state.fill=Dt(this.options.fill,void 0,!1)}destroy(){this.abortLocalRequest(),this.delayCountdown.clear()}abortLocalRequest(){this.requestVersion+=1,this.abortController?.abort(),this.abortController=null,this.options.state.isLoadingMore=!1}isCurrent(e){return e===this.requestVersion&&![`cancelled`,`cancelling`].includes(this.options.state.fill.status)}async startFrontend(e,t,n,r){let i=this.options.loadPage;if(!i)throw Error(`Vibe frontend fill requires loadPage.`);let a=this.options.state;a.isLoadingMore=!0;let o=await kt({existingItems:a.items,initialCursor:a.next,loadPage:i,onDelayChange:e=>{this.isCurrent(r)&&Object.assign(a.fill,e)},onProgress:e=>{this.isCurrent(r)&&Object.assign(a.fill,e)},options:e,signal:n.signal,target:t});this.isCurrent(r)&&(a.items=J(a.items,o.items),a.next=o.next,o.total!==void 0&&(a.total=o.total),this.options.onLastCursor(o.lastCursor),Object.assign(a.fill,{completedPages:o.completedPages,received:o.received,status:o.status}))}syncBackendCountdown(){let e=this.options.state.fill;this.delayCountdown.sync(e.strategy===`backend`&&e.status===`waiting`?e.nextRequestAt:null)}};function Rt(e){if(!Number.isFinite(e)||e<=0)throw TypeError(`Vibe reelAutoAdvance.intervalMs must be a positive number.`)}function zt(e){e?.intervalMs!==void 0&&Rt(e.intervalMs)}function Bt(e){return{enabled:e?.enabled??!1,includePostItems:e?.includePostItems??!1,intervalMs:e?.intervalMs??5e3}}function Vt(e,t){if(typeof t==`boolean`){e.enabled=t;return}zt(t),t.enabled!==void 0&&(e.enabled=t.enabled),t.includePostItems!==void 0&&(e.includePostItems=t.includePostItems),t.intervalMs!==void 0&&(e.intervalMs=t.intervalMs)}function Ht(e){return{enabled:e?.enabled??!1}}function Ut(e,t,n){if(n&&!t)throw Error(`Vibe cannot enable reelInfoSheet without a configured component.`);e.enabled=n}function Wt(e,t){let n=e.initialPage;return{activeReelPostId:null,autoScroll:ut(e.autoScroll),autofill:Z(e.autofill),error:null,fill:Dt(e.fill),infiniteScroll:e.infiniteScroll??!0,isLoading:!n,isLoadingMore:!1,items:n?J([],n.items):[],layout:t===`reel`?`reel`:`masonry`,loadMoreLocked:!1,next:n?.next??null,nextPageError:null,reelAutoAdvance:Bt(e.reelAutoAdvance),reelInfoSheet:Ht(e.reelInfoSheet),reelInfoSheetOverlay:!1,reelMediaSource:`original`,reelOrigin:null,total:n?.total??null}}function Gt(e,t){if(t&&(!Number.isFinite(t.height)||t.height<=0))throw TypeError(`Vibe ${e} height must be a positive number.`)}function Kt(e){if(lt(e.autoScroll),Gt(`cardHeader`,e.cardHeader),Gt(`cardFooter`,e.cardFooter),rt(e.autofill),Et(e.fill),zt(e.reelAutoAdvance),!e.initialPage&&!e.loadPage)throw TypeError(`Vibe requires either initialPage or loadPage.`);if(e.initialPage?.next!==null&&!e.loadPage)throw TypeError(`Vibe requires loadPage when initialPage has a next cursor.`);if(e.fill?.strategy===`frontend`&&!e.loadPage)throw TypeError(`Vibe frontend fill requires loadPage.`);if(e.fill?.strategy===`backend`&&e.fill.initialSession&&!e.initialPage)throw TypeError(`Vibe backend fill restoration requires initialPage.`)}function qt(e){if(typeof e!=`string`)return e;if(typeof document>`u`)throw Error(`Vibe cannot resolve a selector without a document.`);let t=document.querySelector(e);if(!t)throw Error(`Vibe target not found: ${e}`);return t}var Jt=class{routedReelPostId=null;reelRouteIsActive=!1;constructor(e,t){this.options=e,this.state=t}syncFeed(){if(!this.options||!this.reelRouteIsActive)return;this.reelRouteIsActive=!1,this.routedReelPostId=null;let e=typeof this.options.feed==`function`?this.options.feed():this.options.feed;this.options.router.replace(e)}syncReel(e){if(!this.options)return;let t=this.state.items.findIndex(t=>t.postId===e),n=this.state.items[t];if(!n||this.reelRouteIsActive&&this.routedReelPostId===e)return;let r=this.options.reel({index:t,item:n,loadedCount:this.state.items.length,origin:this.state.reelOrigin??`reel`,total:this.state.total});if(r===null)return;let i=this.reelRouteIsActive?`replace`:`push`;this.reelRouteIsActive=!0,this.routedReelPostId=e,this.options.router[i](r)}};function Yt(e){return{activeReelPostId:e.activeReelPostId,autoScroll:{...e.autoScroll},autofill:{...e.autofill},error:e.error,fill:{...e.fill,target:e.fill.target?{...e.fill.target}:null},infiniteScroll:e.infiniteScroll,isLoading:e.isLoading,isLoadingMore:e.isLoadingMore,items:[...e.items],layout:e.layout,lifecycle:e.isLoading||e.isLoadingMore?`loading`:e.error||e.nextPageError?`error`:`loaded`,loadMoreLocked:e.loadMoreLocked,next:e.next,nextPageError:e.nextPageError,reelAutoAdvance:{...e.reelAutoAdvance},reelInfoSheet:{...e.reelInfoSheet},reelOrigin:e.reelOrigin,total:e.total}}var Xt=class{app=null;autoScroll;autofillDelayCountdown;autofillCycle=0;abortController=null;pendingRequest=null;requestVersion=0;resizeObserver=null;routing;fillController;surface=null;stopStateWatcher=null;target=null;layoutMode;lastLoadedCursor=null;state;constructor(t){this.options=t,Kt(t),this.layoutMode=t.layout??`masonry`,this.state=(0,e.reactive)(Wt(t,this.layoutMode)),this.autoScroll=new dt({getScrollElement:()=>this.surface?.getAutoScrollElement()??null,state:this.state.autoScroll}),this.autofillDelayCountdown=new et(e=>Object.assign(this.state.autofill,e)),this.syncAutofillCountdown(),this.fillController=new Lt({fill:t.fill,loadPage:t.loadPage,onLastCursor:e=>{this.lastLoadedCursor=e},state:this.state}),this.routing=new Jt(t.routing,this.state),this.startStateNotifications()}async mount(){if(this.app)throw Error(`Vibe is already mounted.`);this.startStateNotifications();let t=qt(this.options.target);this.target=t,this.startResponsiveLayout(),this.app=(0,e.createApp)(Ge,{canRetryEnd:!!this.options.loadPage,cardFooter:this.options.cardFooter,cardHeader:this.options.cardHeader,reelInfoSheet:this.options.reelInfoSheet,state:this.state,onActiveReelChange:e=>this.setActiveReelPost(e),onCloseReel:()=>this.closeMasonryReel(),onLoadMore:()=>{this.loadNext()},onOpenReel:e=>this.openMasonryReel(e),onReelInfoSheetChange:e=>this.setReelInfoSheet(e),onRetryEnd:()=>{this.retryEnd()}}),this.surface=this.app.mount(t),this.autoScroll.mount(),this.options.initialPage?this.options.autofill&&this.state.autofill.status===`idle`&&!this.fillController.isActive()&&await this.startInitialAutofill():await this.reload()}destroy(){this.autoScroll.destroy(),this.fillController.destroy(),this.cancelRequest(),this.stopResponsiveLayout(),this.stopStateWatcher?.(),this.stopStateWatcher=null,this.app?.unmount(),this.app=null,this.surface=null,this.target=null}getState(){return Yt(this.state)}nextReelMediaItem(){return this.surface?.changeActiveReelMedia(1)??!1}previousReelMediaItem(){return this.surface?.changeActiveReelMedia(-1)??!1}nextReelPost(){return this.surface?.moveActiveReelPost(1)??!1}previousReelPost(){return this.surface?.moveActiveReelPost(-1)??!1}pauseAutoScroll(){this.autoScroll.setPaused(!0)}resumeAutoScroll(){this.autoScroll.setPaused(!1)}setAutoScroll(e,t){this.autoScroll.setEnabled(e,t)}setAutoScrollSpeed(e){this.autoScroll.setSpeed(e)}applyAutofillUpdate(e){let t=mt(this.options.autofill,this.state,e);return t&&this.syncAutofillCountdown(),t}async cancelAutofill(){await it(this.options.autofill,this.state,()=>this.cancelRequest())}applyFillUpdate(e){return this.fillController.applyUpdate(e)}cancelFill(){return this.fillController.cancel()}async fill(e){if(this.pendingRequest||Q(this.state.autofill))throw Error(`Vibe cannot fill while another page operation is active.`);await this.fillController.start(e)}restoreAutofillSession(e){let t=ht(this.options.autofill,this.state,e);return t&&this.syncAutofillCountdown(),t}restoreFillSession(e){return this.fillController.restoreSession(e)}async loadNext(){if(this.pendingRequest)return this.pendingRequest;if(!this.state.loadMoreLocked&&!(Q(this.state.autofill)||this.fillController.isActive())&&!(this.state.next===null||!this.options.loadPage))return this.state.isLoadingMore=!0,this.state.nextPageError=null,this.startRequest(this.state.next,!0)}async reload(){if(!this.options.loadPage)throw Error(`Vibe cannot reload without loadPage.`);return Q(this.state.autofill)&&await this.cancelAutofill(),this.fillController.isActive()&&await this.cancelFill(),this.cancelRequest(),this.state.autofill=Z(this.options.autofill,void 0,!1),this.fillController.reset(),this.state.error=null,this.state.isLoading=!0,this.state.items=[],this.state.next=null,this.state.nextPageError=null,this.state.total=null,this.startRequest(null,!1)}async retryEnd(){if(this.pendingRequest)return this.pendingRequest;if(!this.state.loadMoreLocked&&!(Q(this.state.autofill)||this.fillController.isActive())&&!(this.state.next!==null||!this.options.loadPage))return this.state.isLoadingMore=!0,this.state.nextPageError=null,this.startRequest(this.lastLoadedCursor,!0)}setInfiniteScroll(t){this.state.infiniteScroll=t,t&&(0,e.nextTick)(()=>this.surface?.loadIfNearBottom())}setLoadMoreLocked(t){this.state.loadMoreLocked!==t&&(this.state.loadMoreLocked=t,!t&&this.state.infiniteScroll&&(0,e.nextTick)(()=>this.surface?.loadIfNearBottom()))}setReelAutoAdvance(e){Vt(this.state.reelAutoAdvance,e)}setReelInfoSheet(e){Ut(this.state.reelInfoSheet,this.options.reelInfoSheet,e)}setLayout(e){e!==this.layoutMode&&(this.layoutMode=e,e===`responsive`?this.handleResponsiveLayout():this.applyLayout(e))}applyLayout(e){e!==this.state.layout&&(e===`masonry`&&(this.state.activeReelPostId=null,this.routing.syncFeed()),this.state.reelOrigin=null,this.state.layout=e)}handleResponsiveLayout=()=>{if(!this.target)return;let e=xt(this.target);this.state.reelInfoSheetOverlay=bt(this.target),this.state.reelMediaSource=e===`reel`?`preview`:`original`,this.layoutMode===`responsive`&&this.applyLayout(e)};startResponsiveLayout(){if(!this.target)return;this.handleResponsiveLayout();let e=this.target.ownerDocument.defaultView;e?.addEventListener(`resize`,this.handleResponsiveLayout);let t=e?.ResizeObserver??globalThis.ResizeObserver;t!==void 0&&(this.resizeObserver=new t(this.handleResponsiveLayout),this.resizeObserver.observe(this.target))}stopResponsiveLayout(){this.target?.ownerDocument.defaultView?.removeEventListener(`resize`,this.handleResponsiveLayout),this.resizeObserver?.disconnect(),this.resizeObserver=null}closeMasonryReel(){this.state.reelOrigin===`masonry`&&(this.state.activeReelPostId=null,this.state.reelOrigin=null,this.routing.syncFeed())}openMasonryReel(e){this.state.layout===`masonry`&&this.state.items.some(t=>t.postId===e)&&(this.state.activeReelPostId=e,this.state.reelOrigin=`masonry`,this.routing.syncReel(e))}setActiveReelPost(e){this.state.layout!==`reel`&&this.state.reelOrigin!==`masonry`||(this.state.activeReelPostId=e,this.routing.syncReel(e))}cancelRequest(){this.autofillDelayCountdown.clear(),this.requestVersion+=1,this.abortController?.abort(),this.abortController=null,this.pendingRequest=null,this.state.isLoading=!1,this.state.isLoadingMore=!1}async fetchPage(e,t){let n=this.options.loadPage;if(!n)return;let r=++this.requestVersion,i=new AbortController,a=this.options.autofill,o=a?this.beginAutofillCycle():null,s=!1;this.abortController=i;try{if(a?.strategy===`frontend`){let o=await ot({existingItems:t?this.state.items:[],initialCursor:e,loadPage:n,onDelayChange:e=>{r===this.requestVersion&&Object.assign(this.state.autofill,e)},onProgress:e=>{r===this.requestVersion&&Object.assign(this.state.autofill,e,{status:`filling`})},options:a,signal:i.signal});if(r!==this.requestVersion)return;this.state.items=t?J(this.state.items,o.items):[...o.items],this.lastLoadedCursor=o.lastCursor,this.state.next=o.next,o.total!==void 0&&(this.state.total=o.total),Object.assign(this.state.autofill,{missing:o.missing,received:o.received,requests:o.requests,status:o.status});return}let c=Ke(await n({cursor:e,signal:i.signal}));if(r!==this.requestVersion)return;let l=t?this.state.items:[],u=J(l,c.items),d=u.length-l.length;if(this.state.items=u,this.lastLoadedCursor=e,this.state.next=c.next,c.total!==void 0&&(this.state.total=c.total),s=!0,a?.strategy===`backend`&&o){if(Object.assign(this.state.autofill,{missing:Math.max(0,a.pageSize-d),received:d,requests:1}),d>=a.pageSize){this.state.autofill.status=`complete`;return}await ft(a,this.state,{cycleId:o,feedKey:a.feedKey,items:u.slice(l.length),missing:a.pageSize-d,next:c.next,pageSize:a.pageSize,received:d,signal:i.signal,total:this.state.total},()=>r===this.requestVersion),this.syncAutofillCountdown()}}catch(e){if(i.signal.aborted||r!==this.requestVersion)return;a&&(this.state.autofill.error=e,this.state.autofill.status=`error`),s||(t?this.state.nextPageError=e:this.state.error=e)}finally{r===this.requestVersion&&(this.abortController=null,this.state.isLoading=!1,this.state.isLoadingMore=!1)}}beginAutofillCycle(){let e=this.options.autofill;if(!e)return``;this.autofillDelayCountdown.clear();let t=`vibe-autofill-${Date.now().toString(36)}-${++this.autofillCycle}`;return this.state.autofill={...Z(e,void 0,!1),cycleId:t,status:`filling`},t}syncAutofillCountdown(){let e=this.state.autofill;this.autofillDelayCountdown.sync(e.strategy===`backend`&&e.status===`waiting`?e.nextRequestAt:null)}startRequest(e,t){let n=this.fetchPage(e,t);return this.pendingRequest=n,n.finally(()=>{this.pendingRequest===n&&(this.pendingRequest=null)})}startInitialAutofill(){let e=++this.requestVersion,t=new AbortController,n=this.beginAutofillCycle();this.abortController=t,this.state.isLoadingMore=!0;let r=St({cycleId:n,isCurrent:()=>e===this.requestVersion,onLastCursor:e=>{this.lastLoadedCursor=e},options:this.options,signal:t.signal,state:this.state}).catch(n=>{t.signal.aborted||e!==this.requestVersion||(this.state.autofill.error=n,this.state.autofill.status=`error`,this.state.nextPageError=n)}).finally(()=>{e===this.requestVersion&&(this.syncAutofillCountdown(),this.abortController=null,this.state.isLoadingMore=!1,this.pendingRequest===r&&(this.pendingRequest=null))});return this.pendingRequest=r,r}startStateNotifications(){let t=this.options.onStateChange;!t||this.stopStateWatcher||(t(this.getState()),this.stopStateWatcher=(0,e.watch)(this.state,()=>t(this.getState()),{deep:!0,flush:`post`}))}};function Zt(e){return new Xt(e)}exports.createVibe=Zt;
|