@wyxos/vibe 3.1.5 → 3.1.6

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 CHANGED
@@ -1,29 +1,47 @@
1
1
  # Vibe
2
2
 
3
- Vibe is a Vue 3 media viewer for large feeds of mixed image, video, audio, and other items.
3
+ Vibe is an opinionated Vue 3 mixed-media feed and viewer engine for large datasets.
4
4
 
5
- It ships two built-in surfaces:
5
+ It is built for apps that need a virtualized desktop feed, fullscreen browsing, library-owned paging, removals, retries, and asset-failure handling without stitching together a masonry grid, lightbox, and feed state by hand.
6
6
 
7
- - Desktop: a virtualized masonry grid that opens into fullscreen
8
- - Mobile and tablet: fullscreen only
7
+ ![Vibe desktop feed surface](./docs/readme-hero.jpg)
9
8
 
10
- The current `3.0.0` rebuild focuses on a strict item contract, library-owned loading, strong demo coverage, and a small customization surface.
9
+ [Live demo](https://vibe.wyxos.com/) · [In-app docs](https://vibe.wyxos.com/documentation)
11
10
 
12
- ## Install
11
+ ## Built for
12
+
13
+ Vibe is built for applications that browse large mixed-media collections and need feed state to stay coherent as items load, fail, disappear, and move between desktop and fullscreen surfaces.
14
+
15
+ It owns paging, fullscreen browsing, removals, retries, and asset-failure handling as part of one viewer model so those behaviors stay consistent under real feed pressure.
16
+
17
+ Vibe is hardened in production through [Atlas](https://github.com/wyxos/atlas) as a downstream consumer.
18
+
19
+ ## When Vibe fits
20
+
21
+ Use Vibe when your app needs:
22
+
23
+ - a large mixed-media feed of images, video, audio, and document-like items
24
+ - library-owned paging driven by opaque cursors
25
+ - a desktop masonry surface that opens into fullscreen
26
+ - fullscreen-first behavior on mobile and tablet
27
+ - built-in remove, restore, undo, retry, and asset-failure handling
28
+ - a small customization surface through slots instead of a headless rendering API
29
+
30
+ ## Quick start
31
+
32
+ Install the package and import the bundled stylesheet once:
13
33
 
14
34
  ```bash
15
35
  npm i @wyxos/vibe
16
36
  ```
17
37
 
18
- Import the bundled stylesheet once:
19
-
20
38
  ```ts
21
39
  import '@wyxos/vibe/style.css'
22
40
  ```
23
41
 
24
42
  Tailwind scanning is not required for the package UI.
25
43
 
26
- ## Plugin install
44
+ ### Plugin install
27
45
 
28
46
  The default export is the plugin:
29
47
 
@@ -41,7 +59,7 @@ createApp(App)
41
59
 
42
60
  That registers the global component as `VibeLayout`.
43
61
 
44
- ## Direct import
62
+ ### Direct import
45
63
 
46
64
  If you prefer local registration, import `VibeLayout` directly:
47
65
 
@@ -65,70 +83,11 @@ async function resolve({ cursor, pageSize }: VibeResolveParams): Promise<VibeRes
65
83
  </template>
66
84
  ```
67
85
 
68
- Optional pacing props:
69
-
70
- ```vue
71
- <VibeLayout
72
- :resolve="resolve"
73
- :fill-delay-ms="2000"
74
- :fill-delay-step-ms="1000"
75
- :show-end-badge="false"
76
- :show-status-badges="false"
77
- surface-mode="fullscreen"
78
- />
79
- ```
80
-
81
- - `fill-delay-ms`: base delay before the first chained fill request
82
- - `fill-delay-step-ms`: extra delay added for each additional chained fill request in the same fill cycle
83
- - defaults: `2000` and `1000`
84
- - `show-end-badge`: controls the fullscreen `End reached` badge when the feed is exhausted
85
- - `show-status-badges`: controls the built-in lifecycle status overlays in list and fullscreen
86
- - `surface-mode`: optionally lets the parent drive the desktop fullscreen/list surface explicitly
87
-
88
- Optional feed strategy:
89
-
90
- ```vue
91
- <VibeLayout
92
- :resolve="resolve"
93
- mode="dynamic"
94
- />
95
- ```
86
+ ## Core concepts
96
87
 
97
- - `dynamic` is the default
98
- - `static` reloads the current boundary cursor before advancing when the currently visible boundary page is underfilled
88
+ ### Item contract
99
89
 
100
- Optional seeded hydration:
101
-
102
- ```vue
103
- <VibeLayout
104
- :resolve="resolve"
105
- :initial-state="{
106
- cursor: 'page-10',
107
- items: restoredItems,
108
- nextCursor: 'page-11',
109
- previousCursor: 'page-9',
110
- activeIndex: 4,
111
- }"
112
- />
113
- ```
114
-
115
- - use `initialState` when the app already knows a restored slice of the feed
116
- - `resolve` is optional if you only need a seeded snapshot
117
- - when `resolve` is present, Vibe continues paging from the seeded cursors
118
-
119
- ## What Vibe does
120
-
121
- - Desktop masonry list with virtualization and staged page growth
122
- - Fullscreen viewer with swipe, wheel, keyboard, and custom media controls
123
- - Library-owned loading and pagination, optionally seeded from `initialState`
124
- - Remove, restore, and undo by item `id`
125
- - Grid customization through slots for icons, overlays, and footer UI
126
- - Built-in loading and preload error states, including explicit `404` when known
127
- - Built-in retry UI for non-404 asset failures in grid and fullscreen
128
-
129
- ## Item contract
130
-
131
- Vibe only requires a minimal item shape:
90
+ Vibe keeps the item contract deliberately small:
132
91
 
133
92
  ```ts
134
93
  type VibeViewerItem = {
@@ -136,25 +95,31 @@ type VibeViewerItem = {
136
95
  type: 'image' | 'video' | 'audio' | 'other'
137
96
  title?: string
138
97
  url: string
139
- width?: number
140
- height?: number
141
98
  preview?: {
142
99
  url: string
143
100
  width?: number
144
101
  height?: number
102
+ mediaType?: 'image' | 'video'
145
103
  }
104
+ healthCheck?: {
105
+ url: string
106
+ kind?: 'playback'
107
+ } | null
108
+ width?: number
109
+ height?: number
146
110
  [key: string]: unknown
147
111
  }
148
112
  ```
149
113
 
150
114
  Notes:
151
115
 
152
- - Grid mode prefers `preview.url`, then falls back to `url`
153
- - Fullscreen mode uses `url`
154
- - Grid layout prefers `preview.width/height`, then root `width/height`, then a square fallback tile
155
- - `other` is intentionally broad so the consuming app can layer its own subtypes and icon logic on top
116
+ - grid mode prefers `preview.url`, then falls back to `url`
117
+ - fullscreen mode uses `url`
118
+ - grid layout prefers preview dimensions, then root dimensions, then a square fallback tile
119
+ - `other` stays intentionally broad so the consuming app can layer its own file subtypes and icon logic on top
120
+ - `healthCheck` is optional and lets the app provide an explicit asset probe, for example when preview URLs are not enough to classify playback health reliably
156
121
 
157
- ## Loading
122
+ ### Resolve and feed state
158
123
 
159
124
  Use `resolve` when you want Vibe to own the paging loop:
160
125
 
@@ -162,6 +127,7 @@ Use `resolve` when you want Vibe to own the paging loop:
162
127
  type VibeResolveParams = {
163
128
  cursor: string | null
164
129
  pageSize: number
130
+ signal?: AbortSignal
165
131
  }
166
132
 
167
133
  type VibeResolveResult = {
@@ -171,25 +137,6 @@ type VibeResolveResult = {
171
137
  }
172
138
  ```
173
139
 
174
- ```vue
175
- <script setup lang="ts">
176
- import {
177
- VibeLayout,
178
- type VibeResolveParams,
179
- type VibeResolveResult,
180
- } from '@wyxos/vibe'
181
-
182
- async function resolve({ cursor, pageSize }: VibeResolveParams): Promise<VibeResolveResult> {
183
- const response = await fetch(`/api/feed?cursor=${cursor ?? ''}&pageSize=${pageSize}`)
184
- return await response.json()
185
- }
186
- </script>
187
-
188
- <template>
189
- <VibeLayout :resolve="resolve" />
190
- </template>
191
- ```
192
-
193
140
  Vibe owns:
194
141
 
195
142
  - loaded items
@@ -198,8 +145,11 @@ Vibe owns:
198
145
  - optional previous-page loading
199
146
  - duplicate cursor protection
200
147
  - initial retry state
148
+ - removal-aware feed navigation
149
+
150
+ ### Feed strategies
201
151
 
202
- Vibe also supports two feed strategies:
152
+ Vibe supports two feed strategies:
203
153
 
204
154
  - `dynamic`:
205
155
  - default behavior
@@ -213,7 +163,23 @@ Vibe also supports two feed strategies:
213
163
  - if it is, Vibe reloads that same cursor in place first
214
164
  - only once that boundary page is full again will the next edge hit advance to the next or previous cursor
215
165
 
216
- You can also seed the viewer from a known snapshot:
166
+ Example:
167
+
168
+ ```vue
169
+ <VibeLayout
170
+ :resolve="resolve"
171
+ mode="dynamic"
172
+ :page-size="25"
173
+ :fill-delay-ms="2000"
174
+ :fill-delay-step-ms="1000"
175
+ :show-end-badge="false"
176
+ :show-status-badges="false"
177
+ />
178
+ ```
179
+
180
+ ### Seeded hydration
181
+
182
+ Use `initialState` when the app already knows a restored slice of the feed and wants Vibe to hydrate from that snapshot immediately:
217
183
 
218
184
  ```vue
219
185
  <VibeLayout
@@ -228,58 +194,59 @@ You can also seed the viewer from a known snapshot:
228
194
  />
229
195
  ```
230
196
 
231
- ## Slots
197
+ Notes:
232
198
 
233
- `VibeLayout` exposes three customization slots:
199
+ - `resolve` is optional if you only need a seeded snapshot
200
+ - when `resolve` is present, Vibe continues paging from the seeded cursors
234
201
 
235
- ### `#item-icon`
202
+ ### Surface behavior
236
203
 
237
- Lets the app replace the fallback icon, especially useful for `other` items.
204
+ - desktop starts in the masonry list surface
205
+ - clicking a grid tile opens fullscreen
206
+ - `Escape` returns from fullscreen to the list on desktop
207
+ - mobile and tablet always force fullscreen
208
+ - grid uses preview assets and in-view loading
209
+ - fullscreen uses the original asset and shows a spinner until ready
238
210
 
239
- Slot props:
211
+ Common behavior props:
240
212
 
241
- - `item`
242
- - `icon`
213
+ - `surfaceMode`: lets the parent drive the desktop list/fullscreen surface explicitly
214
+ - `emptyStateMode`: controls whether empty states render inline, as a badge, or stay hidden
215
+ - `paginationDetail`: lets the parent attach app-owned cursor or page context to the built-in status UI
216
+ - `showDominantImageTone`, `loopFullscreenVideo`, `showEndBadge`, and `showStatusBadges`: tune the built-in fullscreen and status behavior without taking over the surfaces
243
217
 
244
- ```vue
245
- <VibeLayout :resolve="resolve">
246
- <template #item-icon="{ item, icon }">
247
- <component :is="item.type === 'other' ? MyCustomIcon : icon" />
248
- </template>
249
- </VibeLayout>
250
- ```
218
+ ## Customization
251
219
 
252
- ### `#grid-item-overlay`
220
+ ### Surface slots
253
221
 
254
- Desktop grid-only overlay content for reactions, menus, badges, and similar controls.
222
+ `VibeLayout` exposes a small set of app-owned surfaces instead of a headless render API:
255
223
 
256
- Slot props:
224
+ - `empty-state`
225
+ - `fullscreen-aside`
226
+ - `fullscreen-header-actions`
227
+ - `fullscreen-overlay`
228
+ - `fullscreen-status`
229
+ - `grid-footer`
230
+ - `grid-item-overlay`
231
+ - `grid-status`
232
+ - `item-icon`
257
233
 
258
- - `item`
259
- - `index`
260
- - `active`
261
- - `hovered`
262
- - `focused`
263
- - `openFullscreen`
234
+ Example:
264
235
 
265
236
  ```vue
266
237
  <VibeLayout :resolve="resolve">
238
+ <template #item-icon="{ item, icon }">
239
+ <component :is="item.type === 'other' ? MyCustomIcon : icon" />
240
+ </template>
241
+
267
242
  <template #grid-item-overlay="{ item, hovered }">
268
243
  <div v-if="hovered" class="absolute inset-x-0 bottom-0 p-3">
269
244
  <div class="pointer-events-auto bg-black/45 px-3 py-2 backdrop-blur">
270
- {{ item.title }}
245
+ Like {{ item.title }}
271
246
  </div>
272
247
  </div>
273
248
  </template>
274
- </VibeLayout>
275
- ```
276
249
 
277
- ### `#grid-footer`
278
-
279
- Desktop grid-only footer surface for app-owned status bars or controls.
280
-
281
- ```vue
282
- <VibeLayout :resolve="resolve">
283
250
  <template #grid-footer>
284
251
  <div class="bg-black/55 px-4 py-3 backdrop-blur">
285
252
  Custom footer UI
@@ -288,7 +255,7 @@ Desktop grid-only footer surface for app-owned status bars or controls.
288
255
  </VibeLayout>
289
256
  ```
290
257
 
291
- ## Exposed handle
258
+ ### Exposed handle
292
259
 
293
260
  Get a component ref and use `VibeHandle`:
294
261
 
@@ -332,9 +299,11 @@ type VibeStatus = {
332
299
  itemCount: number
333
300
  loadState: 'failed' | 'loaded' | 'loading'
334
301
  mode: 'dynamic' | 'static'
302
+ nextBoundaryLoadProgress: number
335
303
  nextCursor: string | null
336
304
  pageLoadingLocked: boolean
337
305
  phase: 'failed' | 'filling' | 'idle' | 'initializing' | 'loading' | 'refreshing'
306
+ previousBoundaryLoadProgress: number
338
307
  previousCursor: string | null
339
308
  removedCount: number
340
309
  removedIds: readonly string[]
@@ -351,10 +320,11 @@ vibe.value?.undo()
351
320
  vibe.value?.unlockPageLoading()
352
321
  console.log(vibe.value?.status.itemCount)
353
322
  console.log(vibe.value?.status.pageLoadingLocked)
323
+ console.log(vibe.value?.status.nextBoundaryLoadProgress)
354
324
  console.log(vibe.value?.status.removedIds)
355
325
  ```
356
326
 
357
- ## Events
327
+ ### Events
358
328
 
359
329
  `VibeLayout` emits:
360
330
 
@@ -420,15 +390,6 @@ Notes:
420
390
  - if the same item fails again later, it can emit again in a later batch
421
391
  - built-in Vibe error surfaces allow retrying `generic` failures, but not `not-found`
422
392
 
423
- ## Surface behavior
424
-
425
- - Desktop starts in the masonry grid
426
- - Clicking a grid tile opens fullscreen
427
- - `Escape` returns from fullscreen to grid on desktop
428
- - Mobile and tablet always force fullscreen
429
- - Grid uses preview assets and in-view loading
430
- - Fullscreen uses the original asset and shows a spinner until ready
431
-
432
393
  ## Local demo routes
433
394
 
434
395
  Run:
@@ -439,11 +400,11 @@ npm run dev
439
400
 
440
401
  Routes:
441
402
 
442
- - `/` clean default demo
443
- - `/documentation` in-app documentation
444
- - `/demo/dynamic-feed` dynamic feed fill-loop demo
445
- - `/demo/advanced-integration` advanced static integration demo
446
- - `/debug/fake-server` fake-server inspection route
403
+ - `/` - default feed surface
404
+ - `/documentation` - in-app documentation
405
+ - `/demo/dynamic-feed` - dynamic feed fill-loop demo
406
+ - `/demo/advanced-integration` - static feed, removals, and paging-lock demo
407
+ - `/debug/fake-server` - fake-server inspection route
447
408
 
448
409
  ## Local development
449
410
 
@@ -459,5 +420,5 @@ npm run test:e2e
459
420
  ## Notes
460
421
 
461
422
  - `lib/` is generated output
462
- - Source of truth is under `src/`
463
- - The package ships compiled CSS at `@wyxos/vibe/style.css`
423
+ - source of truth is under `src/`
424
+ - the package ships compiled CSS at `@wyxos/vibe/style.css`
package/lib/index.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});let e=require(`vue`);var t=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},n=e=>e===``,r=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),i=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),a=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),o=e=>{let t=a(e);return t.charAt(0).toUpperCase()+t.slice(1)},s={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`},c=({name:a,iconNode:c,absoluteStrokeWidth:l,"absolute-stroke-width":u,strokeWidth:d,"stroke-width":f,size:p=s.width,color:m=s.stroke,...h},{slots:g})=>(0,e.h)(`svg`,{...s,...h,width:p,height:p,stroke:m,"stroke-width":n(l)||n(u)||l===!0||u===!0?Number(d||f||s[`stroke-width`])*24/Number(p):d||f||s[`stroke-width`],class:r(`lucide`,h.class,...a?[`lucide-${i(o(a))}-icon`,`lucide-${i(a)}`]:[`lucide-icon`]),...!g.default&&!t(h)&&{"aria-hidden":`true`}},[...c.map(t=>(0,e.h)(...t)),...g.default?[g.default()]:[]]),l=(t,n)=>(r,{slots:i,attrs:a})=>(0,e.h)(c,{...a,...r,iconNode:n,name:t},i),u=l(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]),d=l(`audio-lines`,[[`path`,{d:`M2 10v3`,key:`1fnikh`}],[`path`,{d:`M6 6v11`,key:`11sgs0`}],[`path`,{d:`M10 3v18`,key:`yhl04a`}],[`path`,{d:`M14 8v7`,key:`3a1oy3`}],[`path`,{d:`M18 5v13`,key:`123xd1`}],[`path`,{d:`M22 10v3`,key:`154ddg`}]]),f=l(`clapperboard`,[[`path`,{d:`m12.296 3.464 3.02 3.956`,key:`qash78`}],[`path`,{d:`M20.2 6 3 11l-.9-2.4c-.3-1.1.3-2.2 1.3-2.5l13.5-4c1.1-.3 2.2.3 2.5 1.3z`,key:`1h7j8b`}],[`path`,{d:`M3 11h18v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`,key:`4lm6w1`}],[`path`,{d:`m6.18 5.276 3.1 3.899`,key:`zjj9t3`}]]),p=l(`file`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}]]),m=l(`image-plus`,[[`path`,{d:`M16 5h6`,key:`1vod17`}],[`path`,{d:`M19 2v6`,key:`4bpg5p`}],[`path`,{d:`M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5`,key:`1ue2ih`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`,key:`1xmnt7`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}]]),h=l(`loader-circle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]),g=l(`pause`,[[`rect`,{x:`14`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`kaeet6`}],[`rect`,{x:`5`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`1wsw3u`}]]),_=l(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]),v=l(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),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`}]]);function S(e,t=150){return w(e,e=>`${e.surface}|${e.occurrenceKey}|${e.url}|${e.kind}`,t)}function C(e,t=150){return w(e,e=>`${e.surface}|${e.occurrenceKey}|${e.url}`,t)}function w(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 T(e){return e instanceof HTMLElement&&[`INPUT`,`TEXTAREA`,`SELECT`].includes(e.tagName)}function E(e){return e instanceof HTMLElement&&!!e.closest(`[data-swipe-lock], input, textarea, select, a`)}function D(e){return e===`filling`||e===`initializing`||e===`loading`||e===`refreshing`}function O(e){return!e||!Number.isFinite(e)||e<1?25:Math.floor(e)}function k(e){return e??`__vibe_initial_cursor__`}function A(e,t,n){return Math.min(Math.max(e,t),n)}function j(){let t=(0,e.ref)(new Set),n=(0,e.ref)([]);function r(e){let r=M(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=M(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 M(e){let t=Array.isArray(e)?e:[e];return Array.from(new Set(t.filter(e=>typeof e==`string`&&e.length>0)))}var N=`__vibeOccurrenceKey`;function P(e){let t=e[N];return typeof t==`string`&&t.length>0?t:e.id}function F(e,t,n){let r=new Map,i=[],a=n;for(let e of t){let t=r.get(e.id),n=P(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(I(t,e))}return{items:i,nextSequence:a}}function I(e,t){return P(e)===t?e:{...e,[N]:t}}function L(e){return e.flatMap(e=>e.items)}function R(e,t){return t.size?e.filter(e=>!t.has(e.id)):e}function z(e,t){return R(e.items,t)}function B(e,t){return z(e,t).length}function V(e,t,n){if(n<0)return null;let r=0;for(let i of e){let e=z(i,t),a=r+e.length;if(n<a)return i.cursor;r=a}return null}function H(e,t,n){let r=[...e],i=r.findIndex(e=>e.cursor===t);return i>=0&&r.splice(i,1,n),r}function U(e,t,n){let r=F(e,t,n);return{items:r.items,nextSequence:r.nextSequence}}function ee(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 W(e){let t=U(e.nextItems,e.previousItems,e.sequence);return{bucket:{cursor:e.cursor,items:t.items,nextCursor:e.nextCursor,previousCursor:e.previousCursor},nextSequence:t.nextSequence}}function G(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+B(t,n),0)}}function K(e){let t=W({cursor:e.initialState.cursor,nextCursor:e.initialState.nextCursor??null,nextItems:e.initialState.items,previousCursor:e.initialState.previousCursor??null,previousItems:[],sequence:e.sequence}),n=R(t.bucket.items,e.removedIds);return{activeIndex:A(e.initialState.activeIndex??0,0,Math.max(0,n.length-1)),buckets:[t.bucket],nextSequence:t.nextSequence}}function q(e,t){let n=e[A(t,0,Math.max(0,e.length-1))];return n?P(n):null}function J(e,t,n=null){if(!e.length)return 0;let r=n?e.findIndex(e=>P(e)===n):-1;return r>=0?r:A(t,0,e.length-1)}function Y(e,t,n){return e?B(e,t)<n:!1}var te=2e3,ne=1e3,X=100;function re(e,t=te,n=ne){return t+Math.max(0,e-1)*n}function ie(e,t){return!Number.isFinite(e)||e==null||e<0?t:Math.floor(e)}function ae(){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,X),r=setTimeout(l,e),u()}))}return{clear:a,remainingMs:t,wait:o}}function oe(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=ae(),d=u.remainingMs,f=(0,e.ref)(null),p=(0,e.ref)(!1),m=(0,e.ref)(!0),h=(0,e.ref)(!1),g=new Set,_=null,v=null,y=0,b=0,x=(0,e.computed)(()=>ie(t.fillDelayMs,te)),S=(0,e.computed)(()=>ie(t.fillDelayStepMs,ne)),C=(0,e.computed)(()=>typeof t.resolve==`function`),w=(0,e.computed)(()=>t.mode??`dynamic`),T=(0,e.computed)(()=>O(t.pageSize)),E=(0,e.computed)(()=>L(r.value)),j=(0,e.computed)(()=>R(E.value,t.removedIds.value)),M=(0,e.computed)(()=>i.value),N=(0,e.computed)(()=>D(c.value)||p.value),F=(0,e.computed)(()=>se(r.value,t.removedIds.value)),I=(0,e.computed)(()=>ce(r.value,t.removedIds.value)),z=(0,e.computed)(()=>I.value?.nextCursor??null),U=(0,e.computed)(()=>o.value?null:F.value?.previousCursor??null),X=(0,e.computed)(()=>!!z.value),oe=(0,e.computed)(()=>!!U.value),le=(0,e.computed)(()=>C.value&&r.value.length>0),ue=(0,e.computed)(()=>R(L(a.value),t.removedIds.value)),de=(0,e.computed)(()=>V(r.value,t.removedIds.value,M.value)),fe=(0,e.computed)(()=>!j.value.length&&!N.value&&!!s.value);(0,e.watch)(()=>j.value.length,e=>{if(e===0){i.value=0;return}o.value&&=(Ie(),!1),i.value>e-1&&(i.value=e-1)}),(0,e.watch)(()=>i.value,()=>{m.value&&De()}),(0,e.onMounted)(()=>{Ne()||t.resolve&&pe()}),(0,e.onBeforeUnmount)(()=>{_?.abort(),_=null,u.clear(!0)});async function pe(){v=pe;let e=await je({continueUntilFilled:w.value===`dynamic`,cursor:t.initialCursor??null,direction:`forward`,phase:`initializing`});e&&(r.value=e.buckets,i.value=0,Z())}async function me(){if(!(h.value||N.value)){if(!X.value)return le.value?Ae(`trailing`):void 0;if(w.value===`static`&&Fe(`trailing`))return Ae(`trailing`);await Oe(z.value)}}async function he(){if(!(h.value||!oe.value||N.value)){if(w.value===`static`&&Fe(`leading`))return Ae(`leading`);await ke(U.value)}}async function ge(){if(fe.value){if(r.value=[],i.value=0,a.value=[],o.value=!1,s.value=null,c.value=C.value?`initializing`:`idle`,l.value=null,f.value=null,p.value=!1,g.clear(),_?.abort(),_=null,u.clear(!0),Ne()){Z();return}await pe()}}async function _e(){if(fe.value)return ge();h.value||c.value!==`failed`||!v||(s.value=null,await v())}async function ve(){if(!a.value.length)return p.value=!1,Z();r.value=[...r.value,...a.value],a.value=[],p.value=!1,Z()}function ye(e){let n=j.value;if(!n.length)return;let r=A(e,0,n.length-1);r!==i.value&&(i.value=r,t.emit(`update:activeIndex`,r))}function be(e){m.value=e}function xe(){h.value=!0,u.clear(!0)}function Se(){h.value=!1}function Ce(){y+=1,_?.abort(),_=null,u.clear(!0),g.clear(),s.value=null,l.value=null,f.value=null,a.value.length>0&&(r.value=[...r.value,...a.value],a.value=[]),p.value=!1,o.value=!1,Z()}function we(){return q(j.value,M.value)}function Te(e=null,t={}){if(j.value.length===0){i.value=0,!t.preserveTrailingPlaceholder&&r.value.length>0&&(o.value=!0);return}if(e){let t=j.value.findIndex(t=>P(t)===e);if(t>=0){i.value=t;return}}if(t.preserveTrailingPlaceholder&&i.value>=j.value.length){i.value=j.value.length;return}i.value=J(j.value,M.value,e)}function Ee(){a.value.length>0&&!ue.value.length&&ve()}async function De(){if(!(!m.value||Pe())){if(!j.value.length){X.value&&await me();return}oe.value&&i.value<3&&await he(),X.value&&i.value>=j.value.length-3&&await me()}}async function Oe(e){v=async()=>{await Oe(e)};let t=await je({continueUntilFilled:w.value===`dynamic`,cursor:e,direction:`forward`,phase:`loading`});if(t){if(t.canceled)return r.value=[...r.value,...t.buckets],a.value=[],p.value=!1,Z();if(a.value=t.buckets,!ue.value.length)return r.value=[...r.value,...a.value],a.value=[],p.value=!1,Z();p.value=!0}}async function ke(e){v=async()=>{await ke(e)};let t=await je({continueUntilFilled:w.value===`dynamic`,cursor:e,direction:`backward`,phase:`loading`});if(!t)return;let n=we();r.value=[...t.buckets,...r.value],Te(n),Z()}async function Ae(e){if(v=async()=>{await Ae(e)},!t.resolve)return;let n=e===`leading`?F.value:I.value;if(!n)return;let i=k(n.cursor);if(g.has(i))return;g.add(i),s.value=null,c.value=`refreshing`,l.value=null,f.value=null;let a=++y,o=typeof AbortController>`u`?null:new AbortController;_=o;try{let e=await t.resolve({cursor:n.cursor,pageSize:T.value,signal:o?.signal});if(a!==y)return Z();let i=Me({cursor:n.cursor,nextCursor:e.nextPage,nextItems:e.items,previousCursor:e.previousPage??null,previousItems:n.items}),s=we();r.value=H(r.value,n.cursor,i),Te(s),Z()}catch(e){if(ee(e)||a!==y){Z();return}s.value=e instanceof Error?e.message:`The viewer could not load items.`,c.value=`failed`,l.value=null,f.value=null}finally{_===o&&(_=null),g.delete(i)}}async function je(e){if(!t.resolve)return null;let n=++y,r=new Set,i=[],a=e.cursor,o=0;for(s.value=null,c.value=e.phase,l.value=null,f.value=null;;){if(n!==y)return G(i,e.direction,t.removedIds.value,!0);if(i.length>0&&h.value)return G(i,e.direction,t.removedIds.value,!1);let d=k(a);if(r.has(d)||g.has(d))break;r.add(d),g.add(d);let p=typeof AbortController>`u`?null:new AbortController;_=p;try{let r=await t.resolve({cursor:a,pageSize:T.value,signal:p?.signal});if(n!==y)return G(i,e.direction,t.removedIds.value,!0);let s=Me({cursor:a,nextCursor:r.nextPage,nextItems:r.items,previousCursor:r.previousPage??null,previousItems:[]});i.push(s);let d=i.reduce((e,n)=>e+B(n,t.removedIds.value),0),m=e.direction===`forward`?s.nextCursor:s.previousCursor;if(!e.continueUntilFilled||d>=T.value||!m)return{canceled:!1,buckets:e.direction===`backward`?[...i].reverse():i,visibleCount:d};if(h.value)return G(i,e.direction,t.removedIds.value,!1);c.value=`filling`,l.value=d,f.value=T.value,o+=1;let g=re(o,x.value,S.value);if(await u.wait(g),n!==y)return G(i,e.direction,t.removedIds.value,!0);a=m}catch(r){return ee(r)||n!==y?G(i,e.direction,t.removedIds.value,!0):(s.value=r instanceof Error?r.message:`The viewer could not load items.`,c.value=`failed`,l.value=null,f.value=null,null)}finally{_===p&&(_=null),g.delete(d)}}return G(i,e.direction,t.removedIds.value,!1)}function Me(e){let t=W({cursor:e.cursor,nextCursor:e.nextCursor,nextItems:e.nextItems,previousCursor:e.previousCursor,previousItems:e.previousItems,sequence:b});return b=t.nextSequence,t.bucket}function Z(){c.value=`idle`,l.value=null,f.value=null,u.clear()}function Ne(){if(!t.initialState||!t.initialState.items.length)return!1;let e=K({initialState:t.initialState,removedIds:t.removedIds.value,sequence:b});return r.value=e.buckets,i.value=e.activeIndex,b=e.nextSequence,o.value=!1,s.value=null,a.value=[],p.value=!1,!0}function Pe(){return c.value===`initializing`}function Fe(e){return Y(e===`leading`?F.value:I.value,t.removedIds.value,T.value)}function Ie(){let e=r.value.findIndex(e=>B(e,t.removedIds.value)>0);if(e<0)return;let n=e;for(let i=r.value.length-1;i>=e;--i)if(B(r.value[i],t.removedIds.value)>0){n=i;break}r.value=r.value.slice(e,n+1)}return{activeIndex:M,canRetryInitialLoad:fe,cancel:Ce,canRefreshTrailingBoundary:le,commitPendingAppend:ve,currentCursor:de,errorMessage:s,fillCollectedCount:l,fillDelayRemainingMs:d,fillTargetCount:f,hasNextPage:X,hasPreviousPage:oe,isAutoPrefetchEnabled:m,isPageLoadingLocked:h,items:j,lockPageLoading:xe,loading:N,mode:w,maybePrefetchAround:De,nextCursor:z,pendingAppendItems:ue,phase:c,prefetchNextPage:me,prefetchPreviousPage:he,previousCursor:U,retryInitialLoad:ge,retry:_e,setActiveIndex:ye,setAutoPrefetchEnabled:be,syncActiveIndexAfterVisibilityChange:Te,unlockPageLoading:Se,getActiveOccurrenceKey:we,maybeCommitPendingAppendWhenFilteredOut:Ee}}function se(e,t){return e.find(e=>B(e,t)>0)??e[0]??null}function ce(e,t){for(let n=e.length-1;n>=0;--n){let r=e[n];if(B(r,t)>0)return r}return e[e.length-1]??null}function le(t,n){let{clearRemoved:r,getRemovedIds:i,remove:a,removedIds:o,restore:s,undo:c}=j(),l=oe({emit:n,fillDelayMs:t.fillDelayMs,fillDelayStepMs:t.fillDelayStepMs,initialCursor:t.initialCursor,initialState:t.initialState,mode:t.mode,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(C(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&&l.maybePrefetchAround(),s):s}function b(e){let t=l.getActiveOccurrenceKey(),n=s(e);return n.ids.length&&l.syncActiveIndexAfterVisibilityChange(t),n}function x(){let e=l.getActiveOccurrenceKey(),t=c();return t?.ids.length&&l.syncActiveIndexAfterVisibilityChange(e),t}function S(){let e=l.getActiveOccurrenceKey();r(),l.syncActiveIndexAfterVisibilityChange(e)}function C(e,t,n){return Math.min(Math.max(e,t),n)}function w(){l.cancel()}async function T(){await l.prefetchNextPage()}async function E(){await l.prefetchPreviousPage()}async function D(){await l.retry()}return{activeIndex:d,canRefreshExhaustedNextPage:_,canRetryInitialLoad:l.canRetryInitialLoad,cancel:w,clearRemoved:S,commitPendingAppend:l.commitPendingAppend,currentCursor:l.currentCursor,errorMessage:l.errorMessage,fillCollectedCount:l.fillCollectedCount,fillDelayRemainingMs:l.fillDelayRemainingMs,fillTargetCount:l.fillTargetCount,getRemovedIds:i,hasNextPage:p,hasPreviousPage:m,isPageLoadingLocked:l.isPageLoadingLocked,items:u,lockPageLoading:l.lockPageLoading,loading:f,loadNext:T,loadPrevious:E,mode:l.mode,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:b,retry:D,retryInitialLoad:l.retryInitialLoad,setActiveIndex:v,setAutoPrefetchEnabled:l.setAutoPrefetchEnabled,undo:x,unlockPageLoading:l.unlockPageLoading}}var ue=1024;function de(t,n){let r=le(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,fillDelayRemainingMs:null,fillTargetCount:null,hasNextPage:!1,hasPreviousPage:!1,itemCount:0,loadState:`loaded`,mode:`dynamic`,nextBoundaryLoadProgress:0,nextCursor:null,pageLoadingLocked:!1,phase:`idle`,previousBoundaryLoadProgress:0,previousCursor:null,removedCount:0,removedIds:[],surfaceMode:`list`}),c=(0,e.computed)(()=>a.value>=ue),l=(0,e.computed)(()=>c.value?o.value:`fullscreen`),u=(0,e.computed)(()=>c.value&&l.value===`fullscreen`);(0,e.watch)(c,e=>{e&&h()}),(0,e.watch)(()=>t.surfaceMode,()=>{h()}),(0,e.watch)([l,()=>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)(l,e=>{r.setAutoPrefetchEnabled(e===`fullscreen`)},{immediate:!0}),(0,e.watchEffect)(()=>{s.activeIndex=r.activeIndex.value,s.currentCursor=r.currentCursor.value,s.errorMessage=r.errorMessage.value,s.fillCollectedCount=r.fillCollectedCount.value,s.fillDelayRemainingMs=r.fillDelayRemainingMs.value,s.fillTargetCount=r.fillTargetCount.value,s.hasNextPage=r.hasNextPage.value,s.hasPreviousPage=r.hasPreviousPage.value,s.itemCount=r.items.value.length,s.loadState=r.loading.value?`loading`:r.errorMessage.value?`failed`:`loaded`,s.mode=r.mode.value,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.removedCount=r.removedCount.value,s.removedIds=r.getRemovedIds(),s.surfaceMode=l.value}),(0,e.onMounted)(()=>{m(),h(),window.addEventListener(`keydown`,p),window.addEventListener(`resize`,m)}),(0,e.onBeforeUnmount)(()=>{window.removeEventListener(`keydown`,p),window.removeEventListener(`resize`,m)});function d(e){r.setActiveIndex(e),c.value&&o.value!==`fullscreen`&&(o.value=`fullscreen`,n(`update:surfaceMode`,`fullscreen`))}function f(){!c.value||o.value===`list`||(o.value=`list`,n(`update:surfaceMode`,`list`))}function p(e){e.defaultPrevented||e.key!==`Escape`||!c.value||l.value!==`fullscreen`||T(e.target)||(e.preventDefault(),f())}function m(){a.value=window.innerWidth||0}function h(){!c.value||!t.surfaceMode||t.surfaceMode===o.value||(o.value=t.surfaceMode)}function g(e){i.nextBoundaryLoadProgress=fe(e.nextBoundaryLoadProgress),i.previousBoundaryLoadProgress=fe(e.previousBoundaryLoadProgress)}return{...r,cancel:r.cancel,isDesktop:c,lockPageLoading:r.lockPageLoading,loadNext:r.loadNext,loadPrevious:r.loadPrevious,openFullscreen:d,returnToList:f,retry:r.retry,setBoundaryLoadProgress:g,showBackToList:u,status:(0,e.readonly)(s),surfaceMode:l,unlockPageLoading:r.unlockPageLoading}}function fe(e){return Math.min(Math.max(e,0),1)}var pe={"data-testid":`vibe-media-bar`,class:`absolute inset-x-0 bottom-0 z-[5] bg-[linear-gradient(180deg,transparent,rgba(0,0,0,0.42)_24%,rgba(0,0,0,0.78))] px-[clamp(1rem,2.6vw,2.25rem)] pt-4 pb-[1.15rem]`},me={class:`grid grid-cols-[auto_minmax(0,1fr)_auto_auto] items-center gap-3 border-t border-white/12 bg-black/70 px-4 py-3 backdrop-blur-[18px]`},he={class:`text-[0.76rem] font-bold uppercase tracking-[0.18em] text-[#f7f1ea]/74`},ge={class:`relative h-4 w-full`},_e=[`max`,`value`,`disabled`],ve={class:`text-[0.76rem] font-bold uppercase tracking-[0.18em] text-[#f7f1ea]/74`},ye=[`data-layout`],be={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]`},xe={class:`relative flex h-28 w-4 items-center justify-center`},Se=[`value`],Ce={class:`flex items-center gap-3`},we=[`aria-label`],Te={key:0,class:`relative h-4 w-24`},Ee=[`value`],De=(0,e.defineComponent)({__name:`FullscreenMediaBar`,props:{currentTime:{},currentTimeLabel:{},duration:{},durationLabel:{},muted:{type:Boolean},progress:{},volume:{},volumeControlLayout:{}},emits:[`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)(()=>g(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 h(){if(!s.value){i(`volume-toggle`);return}if(!o.value){o.value=!0;return}i(`volume-toggle`)}function g(e,t,n){return Math.min(Math.max(e,t),n)}return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,pe,[(0,e.createElementVNode)(`div`,me,[(0,e.createElementVNode)(`span`,he,(0,e.toDisplayString)(r.currentTimeLabel),1),(0,e.createElementVNode)(`div`,ge,[n[3]||=(0,e.createElementVNode)(`div`,{class:`absolute inset-x-0 top-1/2 h-px -translate-y-1/2 bg-white/12`},null,-1),(0,e.createElementVNode)(`div`,{class:`absolute left-0 top-1/2 h-px -translate-y-1/2 bg-[#f7f1ea]`,style:(0,e.normalizeStyle)({width:`${r.progress}%`})},null,4),(0,e.createElementVNode)(`input`,{"data-swipe-lock":`true`,type:`range`,"aria-label":`Seek active media`,min:`0`,step:`0.1`,max:r.duration||1,value:r.currentTime,disabled:r.duration<=0,class:`vibe-media-slider absolute inset-0 z-10 h-4 w-full cursor-pointer bg-transparent disabled:cursor-default disabled:opacity-50`,onInput:n[0]||=e=>i(`seek-input`,e)},null,40,_e)]),(0,e.createElementVNode)(`span`,ve,(0,e.toDisplayString)(r.durationLabel),1),(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`,be,[(0,e.createElementVNode)(`div`,xe,[n[4]||=(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[1]||=e=>i(`volume-input`,e)},null,40,Se)])])):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`div`,Ce,[(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:h},[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(u.value),{class:`h-4 w-4 stroke-[1.9]`,"aria-hidden":`true`}))],8,we),r.volumeControlLayout===`horizontal`?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Te,[n[5]||=(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[2]||=e=>i(`volume-input`,e)},null,40,Ee)])):(0,e.createCommentVNode)(``,!0)])],8,ye)])]))}}),Oe={class:`pointer-events-none absolute inset-0 z-[3] flex flex-col justify-between p-[clamp(1.25rem,2.6vw,2.25rem)]`},ke={class:`grid gap-4`},Ae={class:`flex min-h-11 items-center justify-between gap-4`},je={class:`min-w-0 flex flex-1 items-center gap-3`},Me={key:1,"data-testid":`vibe-title`,class:`m-0 truncate text-left text-[0.82rem] leading-none tracking-[-0.04em] min-[721px]:text-[1.2rem]`},Z={class:`pointer-events-auto flex shrink-0 items-center gap-2`},Ne={"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]`},Pe={class:`whitespace-nowrap`},Fe={key:1,class:`whitespace-nowrap border-l border-white/12 pl-2 text-[#f7f1ea]/56 min-[721px]:pl-3`},Ie={key:0,class:`grid gap-2 max-[720px]:justify-items-start`},Le=(0,e.defineComponent)({__name:`FullscreenHeader`,props:{currentIndex:{},loading:{type:Boolean},paginationDetail:{},showBackToList:{type:Boolean},showEndBadge:{type:Boolean},title:{},total:{}},emits:[`back-to-list`],setup(t,{emit:n}){let r=t,i=n;return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Oe,[(0,e.createElementVNode)(`div`,ke,[(0,e.createElementVNode)(`div`,Ae,[(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:`pointer-events-auto inline-flex h-11 w-11 shrink-0 items-center justify-center border border-white/14 bg-black/40 text-[#f7f1ea]/78 backdrop-blur-[18px] transition hover:border-white/28 hover:bg-black/55`,"aria-label":`Back to list`,onClick:n[0]||=e=>i(`back-to-list`)},[(0,e.createVNode)((0,e.unref)(u),{class:`h-4 w-4 stroke-[2.2]`,"aria-hidden":`true`})])):(0,e.createCommentVNode)(``,!0),r.title?((0,e.openBlock)(),(0,e.createElementBlock)(`h2`,Me,(0,e.toDisplayString)(r.title),1)):(0,e.createCommentVNode)(``,!0)]),(0,e.createElementVNode)(`div`,Z,[(0,e.createElementVNode)(`span`,Ne,[r.loading?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(h),{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`,Pe,(0,e.toDisplayString)(r.currentIndex+1)+` / `+(0,e.toDisplayString)(r.total),1),r.paginationDetail?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,Fe,(0,e.toDisplayString)(r.paginationDetail),1)):(0,e.createCommentVNode)(``,!0)]),(0,e.renderSlot)(t.$slots,`actions`)])])]),r.showEndBadge?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Ie,[...n[1]||=[(0,e.createElementVNode)(`span`,{class:`inline-flex items-center border border-amber-300/35 bg-black/40 px-4 py-3 text-[0.74rem] font-bold uppercase tracking-[0.2em] text-amber-200 backdrop-blur-[18px]`},` End reached `,-1)]])):(0,e.createCommentVNode)(``,!0)]))}}),Re={image:m,video:f,audio:d,other:p},ze={image:`Image`,video:`Video`,audio:`Audio`,other:`File`};function Be(e){return Re[e]}function Ve(e){return ze[e]}var He=1,Ue=2;function We(e){function t(e,t){let n=t.title?.trim();return n?`${e} ${n}`:`${e} ${Ve(t.type).toLowerCase()}`}function n(e){return P(e)}function r(t){let n=e.resolvedActiveIndex.value;return!!e.active.value&&t>=n-He&&t<=n+Ue}function i(t,i){let a=n(i);return!r(t)||t!==e.resolvedActiveIndex.value||e.viewer.getAssetErrorKind(a)?!1:i.type===`image`?!e.viewer.isImageReady(a):i.type===`video`||i.type===`audio`?!e.viewer.isMediaReady(a):!1}function a(t){return e.viewer.getAssetErrorKind(n(t))}function o(t){return e.viewer.getAssetErrorLabel(n(t))??`Load error`}function s(t,n){return r(t)&&t===e.resolvedActiveIndex.value&&!!a(n)}function c(t,n){return r(t)?e.viewer.getImageSource(n):void 0}function l(e,t){return r(e)?t.url:void 0}return{getAssetErrorKind:a,getAssetErrorLabel:o,getFullscreenImageSource:c,getFullscreenMediaSource:l,getItemKey:n,getMediaActionLabel:t,isAssetErrored:s,isAssetLoading:i,shouldPreloadSlideAsset:r}}function Ge(t){if(!Array.isArray(t))return!1;for(let n of t){if(Array.isArray(n)){if(Ge(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(!Ke(n))return!0}return!1}function Ke(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?!Ge(t.children):!1}var qe=`no items available`;function Je(t){let n=(0,e.computed)(()=>t.loading.value||t.itemCount.value>0||t.emptyStateMode.value===`hidden`?null:{loading:!!t.loading.value,message:qe,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)(()=>Ge(r.value)),showInlineEmptyState:(0,e.computed)(()=>n.value?.mode===`inline`)}}function Ye(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 Xe(e){return e.phase?e.phase:e.loading?e.itemCount>0?`loading`:`initializing`:`idle`}function Ze(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 Qe(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 $e={currentTime:0,duration:0,errorKind:null,muted:!1,paused:!0,ready:!1,volume:1};function et(){return{...$e}}function tt(e){return e.complete&&!!(e.currentSrc||e.getAttribute(`src`))}function nt(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=rt(t,n)}function rt(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 it=new Map;function at(e){return e===`not-found`?`404`:`Load error`}function ot(e){return e===`generic`}function st(e){return ct(e).then(e=>e??`generic`)}function ct(e){let t=it.get(e);if(t)return t;let n=lt(e);return it.set(e,n),n}async function lt(e){if(!ut(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 ut(e){return/^(https?:\/\/|\/)/i.test(e)}function dt(e){try{let t=e.play();t&&typeof t.catch==`function`&&t.catch(()=>{})}catch{}}function ft(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?P(t.activeItem.value):null),d=(0,e.computed)(()=>t.activeMediaItem.value?P(t.activeMediaItem.value):null),f=(0,e.computed)(()=>{let e=new Map;for(let n of t.items.value)e.set(P(n),n);return e}),p=(0,e.computed)(()=>d.value?i.value[d.value]??$e:$e),m=(0,e.computed)(()=>d.value?p.value.duration:0),h=(0,e.computed)(()=>m.value<=0?0:pt(p.value.currentTime/m.value*100,0,100)),g=(0,e.computed)(()=>u.value?F(u.value):null);(0,e.watch)(()=>u.value,async()=>{await x()}),(0,e.watch)(()=>t.itemCount.value,async()=>{await x()}),(0,e.watch)(()=>t.loopFullscreenVideo.value,async()=>{await x()});function _(e,t){if(t instanceof HTMLVideoElement){s.set(e,t),U(e,t);return}s.delete(e)}function v(e,t){if(t instanceof HTMLAudioElement){c.set(e,t),U(e,t);return}c.delete(e)}function y(e,t){t instanceof HTMLImageElement&&tt(t)&&(n.value[e]=!0,r.value[e]=null,J(e,t.currentSrc||t.src||te(e)))}function b(){V(),a.value={},r.value={},n.value={},o.value={},i.value={},l.clear()}async function x(){if(!t.isEnabled.value){V();return}await(0,e.nextTick)();let n=u.value;for(let[e,r]of s.entries()){if(e!==n||i.value[e]?.errorKind){B(r,e);continue}r.muted=!1,r.loop=t.loopFullscreenVideo.value,r.playsInline=!0,dt(r),U(e,r)}for(let[e,t]of c.entries()){if(e!==n||i.value[e]?.errorKind){B(t,e);continue}dt(t),U(e,t)}}function S(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;U(e,n,t.type);let a=i.value[e]?.ready??!1;!r&&a&&J(e,n.currentSrc||n.src||te(e))}}function C(e,t){n.value[e]=!0,r.value[e]=null,J(e,t)}async function w(e,i){let a=Y(e)??t.activeItem.value;n.value[e]=!1,r.value[e]=`generic`;let o=await st(i);r.value[e]=o,a&&t.onAssetError?.({item:a,occurrenceKey:e,url:i,kind:o,surface:`fullscreen`})}async function T(e,n){let r=G(e),i=H(e),a=Y(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 st(n);i.errorKind=o,a&&t.onAssetError?.({item:a,occurrenceKey:e,url:n,kind:o,surface:`fullscreen`})}function E(e,t,n){e.button!==0||Date.now()<n||q(s.get(t)??null)}function D(e,t,n){e.button!==0||Date.now()<n||q(G(t))}function O(e){let t=K(),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=pt(r,0,m.value||0);ee(n,i,t),t.currentTime=i}function k(e){let t=K(),n=d.value;if(!t||!n||!(e.target instanceof HTMLInputElement))return;let r=pt(Number.parseFloat(e.target.value),0,1);t.volume=r,t.muted=r<=0,r>0&&(o.value[n]=r),U(n,t)}function A(){let e=K(),t=d.value;!e||!t||(e.muted||e.volume<=0?(e.volume=W(t),e.muted=!1,o.value[t]=e.volume):(o.value[t]=e.volume,e.muted=!0),U(t,e))}function j(e){return!!n.value[e]&&!r.value[e]}function M(e){return(i.value[e]?.ready??!1)&&!i.value[e]?.errorKind}function N(e){return e.url}function F(e){return r.value[e]??i.value[e]?.errorKind??null}function I(e){let t=F(e);return t?at(t):null}function L(e){return ot(F(e))}function R(e){return`${e}:${a.value[e]??0}`}async function z(t){if(!L(t))return;n.value[t]=!1,r.value[t]=null;let i=H(t);i.currentTime=0,i.duration=0,i.paused=!0,i.ready=!1,i.errorKind=null;let o=G(t);o&&B(o,t),l.forEach(e=>{e.startsWith(`${t}|`)&&l.delete(e)}),a.value[t]=(a.value[t]??0)+1,await(0,e.nextTick)(),await x()}function B(e,t){e.pause();try{e.currentTime=0}catch{}U(t,e)}function V(){for(let[e,t]of s.entries())B(t,e);for(let[e,t]of c.entries())B(t,e)}function H(e){return i.value[e]||(i.value[e]=et()),i.value[e]}function U(e,t,n){nt(H(e),t,n),!t.muted&&t.volume>0&&(o.value[e]=t.volume)}function ee(e,t,n){let r=H(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 W(e){return pt(o.value[e]??1,0,1)}function G(e){return s.get(e)??c.get(e)??null}function K(){return d.value?G(d.value):null}function q(e){if(e){if(e.paused){dt(e);return}e.pause()}}function J(e,n){let r=Y(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 Y(e){return f.value.get(e)??null}function te(e){return Y(e)?.url??null}return{activeAssetErrorKind:g,activeMediaDuration:m,activeMediaProgress:h,activeMediaState:p,getAssetErrorKind:F,getAssetErrorLabel:I,getAssetRenderKey:R,getImageSource:N,isImageReady:j,isMediaReady:M,canRetryAsset:L,mediaStates:i,onAudioCoverClick:D,onImageError:w,onImageLoad:C,onMediaError:T,onMediaEvent:S,onMediaSeekInput:O,onMediaVolumeInput:k,onMediaVolumeToggle:A,onVideoClick:E,registerAudioElement:v,registerImageElement:y,registerVideoElement:_,resetMediaState:b,retryAsset:z,syncMediaPlayback:x}}function pt(e,t,n){return Math.min(Math.max(e,t),n)}function mt(e,t,n=2){return t<=0?{start:0,end:-1}:{start:Math.max(0,e-n),end:Math.min(t-1,e+n)}}function ht(e,t,n=2){let r=mt(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 gt(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 _t(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)(()=>Xe({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),D=ft({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)(()=>Ze({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)(()=>mt(S.value,i.value.length)),P=(0,e.computed)(()=>ht(i.value,S.value));Qe({enabled:_,onDisable(){W(),D.resetMediaState()},onEnable(){return D.syncMediaPlayback()},onKeydown:K,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`||E(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),ee())}function U(e){!_.value||v!==e.pointerId||(p.value?.releasePointerCapture?.(e.pointerId),W())}function ee(){Math.abs(m.value)>=M.value&&(x=Date.now()+250,R(m.value<0?1:-1)),W()}function W(){m.value=0,h.value=!1,v=null}function G(e){if(!_.value||i.value.length===0||h.value||E(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 K(e){!_.value||i.value.length===0||T(e.target)||((e.key===`ArrowDown`||e.key===`PageDown`)&&(e.preventDefault(),R(1)),(e.key===`ArrowUp`||e.key===`PageUp`)&&(e.preventDefault(),R(-1)))}function q(e,t){D.onVideoClick(e,t,x)}function J(e,t){D.onAudioCoverClick(e,t,x)}function Y(e){D.onMediaSeekInput(e)}function te(e){D.onMediaVolumeInput(e)}function ne(){D.onMediaVolumeToggle()}function X(e){return e.type===`image`||e.type===`video`}function re(e){return e.type===`audio`}function ie(e){return gt(e,S.value,g.value,m.value,h.value)}return{activeItem:C,activeAssetErrorKind:D.activeAssetErrorKind,activeMediaDuration:D.activeMediaDuration,activeMediaItem:w,activeMediaProgress:D.activeMediaProgress,activeMediaState:D.activeMediaState,canRetryAsset:D.canRetryAsset,canRetryInitialLoad:f,errorMessage:o,getAssetErrorKind:D.getAssetErrorKind,getAssetErrorLabel:D.getAssetErrorLabel,getAssetRenderKey:D.getAssetRenderKey,formatPlaybackTime:Ye,getImageSource:D.getImageSource,getSlideStyle:ie,hasNextPage:c,isAtEnd:O,isAudio:re,isVisual:X,items:i,loading:s,mediaStates:D.mediaStates,isImageReady:D.isImageReady,isMediaReady:D.isMediaReady,onAudioCoverClick:J,onImageError:D.onImageError,onImageLoad:D.onImageLoad,onMediaEvent:D.onMediaEvent,onMediaError:D.onMediaError,onMediaSeekInput:Y,onMediaVolumeInput:te,onMediaVolumeToggle:ne,onPointerCancel:U,onPointerDown:B,onPointerMove:V,onPointerUp:H,onVideoClick:q,onWheel:G,registerAudioElement:D.registerAudioElement,registerImageElement:D.registerImageElement,registerVideoElement:D.registerVideoElement,renderedItems:P,renderedRange:N,resolvedActiveIndex:S,retryInitialLoad:async()=>{},retryAsset:D.retryAsset,stageRef:p,statusKind:A,statusMessage:j,paginationDetail:u,phase:d}}var vt=`bg-[linear-gradient(180deg,#0a0b10,#05060a)]`,yt=`bg-[linear-gradient(180deg,#0b0c11,#06070b)]`,bt={image:!0,video:!0,audio:!0,other:!0};function xt(e){return bt[e],vt}function St(e){return bt[e],yt}function Ct(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:wt(Math.round(i/r)),g:wt(Math.round(a/r)),b:wt(Math.round(o/r))}}catch{return null}}function wt(e){return Math.min(235,Math.max(26,e))}function Tt(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=Ct(r);i&&(n.value[e]=i)}return{activeStageToneStyle:a,activeSlideToneStyle:o,updateFromImageElement:s}}var Et=[`data-surface`],Dt=[`data-surface`],Ot=(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,Et)):((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,Dt)])],16))}}),kt={class:`relative h-full min-h-0 overflow-hidden bg-[#05060a] text-[#f7f1ea]`},At={key:0,class:`relative h-full min-h-0`},jt=[`data-item-id`,`data-occurrence-key`,`data-index`,`data-active`,`aria-hidden`],Mt={key:0,"data-testid":`vibe-asset-spinner`,class:`pointer-events-none absolute inset-0 z-[2] grid place-items-center`},Nt={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]`},Pt=[`data-kind`],Ft={class:`grid justify-items-center gap-4 border border-white/14 bg-black/45 px-8 py-7 text-center backdrop-blur-[18px]`},It={class:`m-0 text-[0.82rem] font-bold uppercase tracking-[0.28em] text-[#f7f1ea]/70`},Lt=[`onClick`],Rt=[`src`,`alt`,`onLoad`,`onError`],zt=[`loop`,`src`,`preload`,`onClick`,`onCanplay`,`onDurationchange`,`onEnded`,`onError`,`onLoadstart`,`onLoadedmetadata`,`onPause`,`onPlay`,`onPlaying`,`onSeeking`,`onSeeked`,`onStalled`,`onTimeupdate`,`onWaiting`],Bt={class:`relative grid aspect-square w-[clamp(320px,46vw,560px)] max-w-[calc(100vw-2.5rem)] place-items-center`},Vt=[`aria-label`,`disabled`,`onClick`],Ht={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]`},Ut={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]`},Wt={key:0,"data-testid":`vibe-asset-spinner`,class:`pointer-events-none absolute inset-0 z-[3] grid place-items-center`},Gt={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]`},Kt=[`data-kind`],qt={class:`m-0 text-[0.82rem] font-bold uppercase tracking-[0.28em] text-[#f7f1ea]/70`},Jt=[`onClick`],Yt=[`src`,`preload`,`onCanplay`,`onDurationchange`,`onError`,`onLoadstart`,`onLoadedmetadata`,`onPause`,`onPlay`,`onPlaying`,`onSeeking`,`onSeeked`,`onStalled`,`onTimeupdate`,`onWaiting`],Xt={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`},Zt={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]`},Qt={key:0,"data-testid":`vibe-fullscreen-overlay`,class:`pointer-events-none absolute inset-0 z-[6]`},$t={class:`h-full w-full`},en={key:1,"data-testid":`vibe-forward-fill-placeholder`,class:`grid h-full min-h-0 place-items-center px-6 text-center`},tn={class:`grid justify-items-center gap-4 border border-white/14 bg-black/40 px-8 py-7 backdrop-blur-[18px]`},nn={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)]`},rn={class:`m-0 text-[0.78rem] font-bold uppercase tracking-[0.24em] text-[#f7f1ea]/72`},an={key:0,"data-testid":`vibe-fullscreen-aside`,class:`h-full min-h-0 overflow-hidden border-l border-white/10 bg-black/45 backdrop-blur-[18px]`},on={class:`h-full min-h-0 overflow-y-auto overscroll-y-contain`},sn={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]`},cn={class:`h-full min-h-0 overflow-y-auto overscroll-y-contain`},ln=1280,un=768,dn=(0,e.defineComponent)({__name:`FullscreenSurface`,props:{active:{type:Boolean,default:!0},activeIndex:{default:0},emptyStateMode:{default:`inline`},errorMessage:{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=_t(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`?ln:window.innerWidth||ln),c=We({active:(0,e.toRef)(r,`active`),resolvedActiveIndex:o.resolvedActiveIndex,viewer:o}),l=(0,e.computed)(()=>xt(o.activeItem.value?.type??`image`)),{activeSlideToneStyle:u,activeStageToneStyle:d,updateFromImageElement:f}=Tt({activeItem:o.activeItem,getItemKey:c.getItemKey,isImageReady:o.isImageReady,showDominantImageTone:(0,e.toRef)(r,`showDominantImageTone`)}),p=(0,e.computed)(()=>o.activeMediaItem.value&&!o.activeAssetErrorKind.value?`bottom-[5.8rem] max-[720px]:bottom-[7.4rem]`:`bottom-[1.8rem] max-[720px]:bottom-[1.3rem]`),m=(0,e.computed)(()=>!!o.activeMediaItem.value&&!o.activeAssetErrorKind.value),y=(0,e.computed)(()=>s.value<un?`vertical`:`horizontal`),b=(0,e.computed)(()=>m.value?`pb-[5.75rem] max-[720px]:pb-[7rem]`:``),x=(0,e.computed)(()=>r.activeIndex>=r.items.length&&(r.loading||r.hasNextPage)),S=(0,e.computed)(()=>r.hasNextPage?`Loading more items`:o.statusMessage.value??`Loading more items`),C=(0,e.computed)(()=>{let e=o.activeItem.value;return e?{hasNextPage:r.hasNextPage,index:o.resolvedActiveIndex.value,item:e,loading:r.loading,paginationDetail:r.paginationDetail,total:r.items.length}:null}),w=(0,e.computed)(()=>!C.value||!i[`fullscreen-header-actions`]?[]:i[`fullscreen-header-actions`](C.value)),T=(0,e.computed)(()=>!C.value||!i[`fullscreen-aside`]?[]:i[`fullscreen-aside`](C.value)),E=(0,e.computed)(()=>!r.showStatusBadges||!C.value||!o.statusKind.value||!o.statusMessage.value?null:{...C.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)(()=>({gridTemplateColumns:j.value?`minmax(0, 1fr) 22rem`:`minmax(0, 1fr) 0rem`,transition:`grid-template-columns 320ms cubic-bezier(0.22, 1, 0.36, 1)`})),k=(0,e.computed)(()=>Ge(w.value)),A=(0,e.computed)(()=>Ge(T.value)),j=(0,e.computed)(()=>A.value&&s.value>=ln),M=(0,e.computed)(()=>A.value&&!j.value),N=(0,e.computed)(()=>Ge(D.value)),{emptyStateProps:P,showBadgeEmptyState:F,showCustomEmptyState:I,showInlineEmptyState:L}=Je({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`,R)}),(0,e.onBeforeUnmount)(()=>{window.removeEventListener(`resize`,R)});function R(){s.value=window.innerWidth||ln}function z(e,t,n){o.onImageLoad(t,n);let r=e.currentTarget;r instanceof HTMLImageElement&&V(t,r)}function B(e,t){o.registerImageElement(e,t),t instanceof HTMLImageElement&&V(e,t)}function V(e,t){f(e,t)}function H(e,t){if(o.onMediaEvent(t,e),!r.loopFullscreenVideo)return;let n=e.currentTarget;if(!(n instanceof HTMLVideoElement))return;try{n.currentTime=0}catch{}let i=n.play();i&&typeof i.catch==`function`&&i.catch(()=>{})}return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,kt,[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`absolute inset-0 transition-[background] duration-200`,l.value]),style:(0,e.normalizeStyle)((0,e.unref)(d))},null,6),(0,e.createElementVNode)(`div`,{class:`relative z-[1] grid h-full min-h-0`,style:(0,e.normalizeStyle)(O.value)},[(0,e.createElementVNode)(`div`,{ref:`viewer.stageRef`,"data-testid":`vibe-stage`,class:`relative h-full min-h-0 touch-none overflow-hidden`,onPointerdown:n[1]||=(...t)=>(0,e.unref)(o).onPointerDown&&(0,e.unref)(o).onPointerDown(...t),onPointermove:n[2]||=(...t)=>(0,e.unref)(o).onPointerMove&&(0,e.unref)(o).onPointerMove(...t),onPointerup:n[3]||=(...t)=>(0,e.unref)(o).onPointerUp&&(0,e.unref)(o).onPointerUp(...t),onPointercancel:n[4]||=(...t)=>(0,e.unref)(o).onPointerCancel&&(0,e.unref)(o).onPointerCancel(...t),onWheel:n[5]||=(...t)=>(0,e.unref)(o).onWheel&&(0,e.unref)(o).onWheel(...t)},[(0,e.unref)(o).activeItem.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,At,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)((0,e.unref)(o).renderedItems.value,({item: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)(St)(i.type)]),style:(0,e.normalizeStyle)(a===(0,e.unref)(o).resolvedActiveIndex.value&&i.type===`image`?(0,e.unref)(u):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?b.value:``])},[(0,e.unref)(c).isAssetLoading(a,i)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Mt,[(0,e.createElementVNode)(`span`,Nt,[(0,e.createVNode)((0,e.unref)(h),{class:`h-5 w-5 animate-spin stroke-[1.9] text-[#f7f1ea]/78`,"aria-hidden":`true`})])])):(0,e.createCommentVNode)(``,!0),(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`,Ft,[(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`,It,(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,Lt)):(0,e.createCommentVNode)(``,!0)])],8,Pt)):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=>B((0,e.unref)(c).getItemKey(i),t),onLoad:t=>z(t,(0,e.unref)(c).getItemKey(i),i.url),onError:t=>(0,e.unref)(o).onImageError((0,e.unref)(c).getItemKey(i),i.url)},null,42,Rt)):((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).shouldPreloadSlideAsset(a)?`metadata`:`none`,ref_for:!0,ref:t=>(0,e.unref)(o).registerVideoElement((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:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onDurationchange:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onEnded:t=>H(t,(0,e.unref)(c).getItemKey(i)),onError:t=>(0,e.unref)(o).onMediaError((0,e.unref)(c).getItemKey(i),i.url),onLoadstart:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onLoadedmetadata:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onPause:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onPlay:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onPlaying:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onSeeking:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onSeeked:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onStalled:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onTimeupdate:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onWaiting:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t)},null,42,zt))],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?b.value:``])},[(0,e.createElementVNode)(`div`,Bt,[(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))},[n[6]||=(0,e.createElementVNode)(`span`,{class:`pointer-events-none absolute inset-0 border border-white/8 bg-[radial-gradient(circle,rgba(16,185,129,0.16),transparent_66%)]`},null,-1),n[7]||=(0,e.createElementVNode)(`span`,{class:`pointer-events-none absolute h-[clamp(220px,30vw,360px)] w-[clamp(220px,30vw,360px)] border border-white/8 bg-[radial-gradient(circle,rgba(255,255,255,0.08),transparent_62%)]`},null,-1),(0,e.createElementVNode)(`span`,Ht,[(0,e.renderSlot)(t.$slots,`item-icon`,{icon:(0,e.unref)(Be)(i.type),item:i},()=>[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)((0,e.unref)(Be)(i.type)),{class:`h-6 w-6 stroke-[1.9]`,"aria-hidden":`true`}))])]),(0,e.createElementVNode)(`span`,Ut,[((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,Vt),(0,e.unref)(c).isAssetLoading(a,i)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Wt,[(0,e.createElementVNode)(`span`,Gt,[(0,e.createVNode)((0,e.unref)(h),{class:`h-5 w-5 animate-spin stroke-[1.9] text-[#f7f1ea]/78`,"aria-hidden":`true`})])])):(0,e.createCommentVNode)(``,!0),(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`,qt,(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,Jt)):(0,e.createCommentVNode)(``,!0)],8,Kt)],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).shouldPreloadSlideAsset(a)?`metadata`:`none`,class:`pointer-events-none absolute h-px w-px opacity-0`,ref_for:!0,ref:t=>(0,e.unref)(o).registerAudioElement((0,e.unref)(c).getItemKey(i),t),onCanplay:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onDurationchange:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onError:t=>(0,e.unref)(o).onMediaError((0,e.unref)(c).getItemKey(i),i.url),onLoadstart:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onLoadedmetadata:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onPause:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onPlay:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onPlaying:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onSeeking:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onSeeked:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onStalled:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onTimeupdate:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onWaiting:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t)},null,40,Yt))],2)):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Xt,[(0,e.createElementVNode)(`div`,Zt,[(0,e.renderSlot)(t.$slots,`item-icon`,{icon:(0,e.unref)(Be)(i.type),item:i},()=>[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)((0,e.unref)(Be)(i.type)),{class:`h-6 w-6 stroke-[1.9]`,"aria-hidden":`true`}))])])]))],14,jt))),128)),C.value&&i[`fullscreen-overlay`]?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Qt,[(0,e.createElementVNode)(`div`,$t,[(0,e.renderSlot)(t.$slots,`fullscreen-overlay`,(0,e.normalizeProps)((0,e.guardReactiveProps)(C.value)))])])):(0,e.createCommentVNode)(``,!0),(0,e.unref)(o).activeItem.value?((0,e.openBlock)(),(0,e.createBlock)(Le,{key:1,"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,"show-end-badge":r.showEndBadge&&(0,e.unref)(o).isAtEnd.value&&!(0,e.unref)(o).hasNextPage.value&&!(0,e.unref)(o).loading.value,title:(0,e.unref)(o).activeItem.value.title??null,total:(0,e.unref)(o).items.value.length,onBackToList:n[0]||=e=>a(`back-to-list`)},(0,e.createSlots)({_:2},[k.value&&C.value?{name:`actions`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(t.$slots,`fullscreen-header-actions`,(0,e.normalizeProps)((0,e.guardReactiveProps)(C.value)))]),key:`0`}:void 0]),1032,[`current-index`,`loading`,`pagination-detail`,`show-back-to-list`,`show-end-badge`,`title`,`total`])):(0,e.createCommentVNode)(``,!0),m.value?((0,e.openBlock)(),(0,e.createBlock)(De,{key:2,"current-time":(0,e.unref)(o).activeMediaState.value.currentTime,"current-time-label":(0,e.unref)(o).formatPlaybackTime((0,e.unref)(o).activeMediaState.value.currentTime),duration:(0,e.unref)(o).activeMediaDuration.value,"duration-label":(0,e.unref)(o).formatPlaybackTime((0,e.unref)(o).activeMediaDuration.value),muted:(0,e.unref)(o).activeMediaState.value.muted,progress:(0,e.unref)(o).activeMediaProgress.value,volume:(0,e.unref)(o).activeMediaState.value.volume,"volume-control-layout":y.value,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`,`volume`,`volume-control-layout`,`onSeekInput`,`onVolumeInput`,`onVolumeToggle`])):(0,e.createCommentVNode)(``,!0),E.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:3,class:(0,e.normalizeClass)([`absolute left-1/2 z-[4] -translate-x-1/2`,p.value])},[N.value?(0,e.renderSlot)(t.$slots,`fullscreen-status`,(0,e.normalizeProps)((0,e.mergeProps)({key:0},E.value))):((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/14 bg-black/40 px-5 py-3 text-[0.75rem] font-bold uppercase tracking-[0.18em] text-[#f7f1ea]/74 backdrop-blur-[18px] max-[720px]:w-[calc(100%-2.5rem)] max-[720px]:justify-center`,E.value.kind===`end`?`border-amber-300/35 text-amber-200`:E.value.kind===`failed`?`border-rose-400/45 text-rose-100`:``])},(0,e.toDisplayString)(E.value.message),3))],2)):(0,e.createCommentVNode)(``,!0)])):x.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,en,[(0,e.createElementVNode)(`div`,tn,[(0,e.createElementVNode)(`span`,nn,[(0,e.createVNode)((0,e.unref)(h),{class:`h-5 w-5 animate-spin stroke-[1.9] text-[#f7f1ea]/78`,"aria-hidden":`true`})]),(0,e.createElementVNode)(`p`,rn,(0,e.toDisplayString)(S.value),1)])])):(0,e.unref)(L)&&(0,e.unref)(P)?((0,e.openBlock)(),(0,e.createBlock)(Ot,{key:2,message:(0,e.unref)(P).message,mode:(0,e.unref)(P).mode,surface:(0,e.unref)(P).surface},{default:(0,e.withCtx)(()=>[(0,e.unref)(I)?(0,e.renderSlot)(t.$slots,`empty-state`,(0,e.normalizeProps)((0,e.mergeProps)({key:0},(0,e.unref)(P)))):(0,e.createCommentVNode)(``,!0)]),_:3},8,[`message`,`mode`,`surface`])):(0,e.createCommentVNode)(``,!0),(0,e.unref)(F)&&(0,e.unref)(P)?((0,e.openBlock)(),(0,e.createBlock)(Ot,{key:3,message:(0,e.unref)(P).message,mode:(0,e.unref)(P).mode,surface:(0,e.unref)(P).surface},{default:(0,e.withCtx)(()=>[(0,e.unref)(I)?(0,e.renderSlot)(t.$slots,`empty-state`,(0,e.normalizeProps)((0,e.mergeProps)({key:0},(0,e.unref)(P)))):(0,e.createCommentVNode)(``,!0)]),_:3},8,[`message`,`mode`,`surface`])):(0,e.createCommentVNode)(``,!0)],544),(0,e.createVNode)(e.Transition,{"enter-active-class":`transform-gpu transition-all duration-320 ease-out`,"enter-from-class":`translate-x-full opacity-0`,"enter-to-class":`translate-x-0 opacity-100`,"leave-active-class":`transform-gpu transition-all duration-260 ease-in`,"leave-from-class":`translate-x-0 opacity-100`,"leave-to-class":`translate-x-full opacity-0`},{default:(0,e.withCtx)(()=>[j.value&&C.value?((0,e.openBlock)(),(0,e.createElementBlock)(`aside`,an,[(0,e.createElementVNode)(`div`,on,[(0,e.renderSlot)(t.$slots,`fullscreen-aside`,(0,e.normalizeProps)((0,e.guardReactiveProps)(C.value)))])])):(0,e.createCommentVNode)(``,!0)]),_:3})],4),(0,e.createVNode)(e.Transition,{"enter-active-class":`transform-gpu transition-all duration-320 ease-out`,"enter-from-class":`translate-x-full opacity-0`,"enter-to-class":`translate-x-0 opacity-100`,"leave-active-class":`transform-gpu transition-all duration-260 ease-in`,"leave-from-class":`translate-x-0 opacity-100`,"leave-to-class":`translate-x-full opacity-0`},{default:(0,e.withCtx)(()=>[M.value&&C.value?((0,e.openBlock)(),(0,e.createElementBlock)(`aside`,sn,[(0,e.createElementVNode)(`div`,cn,[(0,e.renderSlot)(t.$slots,`fullscreen-aside`,(0,e.normalizeProps)((0,e.guardReactiveProps)(C.value)))])])):(0,e.createCommentVNode)(``,!0)]),_:3})]))}}),fn=1,pn=.5;function mn(e){if(e.type!==`image`&&e.type!==`video`)return{width:fn,height:fn,source:`fallback`};let t=e.preview?.width,n=e.preview?.height;if(xn(t)&&xn(n)){let r=Sn(e,t,n);return{width:r.width,height:r.height,source:`preview`}}if(xn(e.width)&&xn(e.height)){let t=Sn(e,e.width,e.height);return{width:t.width,height:t.height,source:`original`}}return{width:fn,height:fn,source:`fallback`}}function hn(e,t){return!e||e<=0||!t||t<=0?1:Math.max(1,Math.floor(e/t))}function gn(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 _n(e,t){let n=mn(e);return n.height/n.width*t}function vn(e,t){let n=Array.from({length:t.columnCount},()=>0),r=Array(e.length),i=Array(e.length),a=new Map,o=new Map,s=0;for(let c=0;c<e.length;c+=1){let l=e[c];o.set(P(l),c);let u=0;for(let e=1;e<n.length;e+=1)n[e]<n[u]&&(u=e);let d=u*(t.columnWidth+t.gapX),f=n[u],p=_n(l,t.columnWidth);r[c]={x:d,y:f},i[c]=p,n[u]=f+p+t.gapY,s=Math.max(s,f+p);let m=Math.floor(f/t.bucketPx),h=Math.floor((f+p)/t.bucketPx);for(let e=m;e<=h;e+=1){let t=a.get(e);t?t.push(c):a.set(e,[c])}}return{positions:r,heights:i,buckets:a,contentHeight:s,indexById:o}}function yn(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 bn(e,t,n){let r=new Map;for(let i of e){let e=t.get(P(i));if(e==null)continue;let a=n[e];a&&r.set(P(i),a)}return r}function xn(e){return typeof e==`number`&&Number.isFinite(e)&&e>0}function Sn(e,t,n){return e.type!==`image`||n/t>=pn?{width:t,height:n}:{width:t,height:t}}var Cn=300,wn=600,Tn=40,En=300,Dn=400;function On(e,t){return t===`top`?[...e].reverse():e}function kn(e){return e<=0?wn:wn+Math.min((e-1)*Tn,Dn)}function An(){return En}function jn(e){let t=e.itemHeight>0?e.itemHeight:e.columnWidth;return e.direction===`top`?e.scrollTop-t:e.scrollTop+e.viewportHeight+t}function Mn(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]?P(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=On(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*Tn,Dn));i.value=c,Nn(()=>{let e=new Set(r.value);for(let t of o)e.add(t);r.value=e}),Pn(()=>{let e=new Set(n.value);for(let t of o)e.delete(t);n.value=e,x(()=>{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},kn(o.length))})},{flush:`post`}),(0,e.watch)(()=>t.items.value.map(e=>P(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,t=`bottom`){if(!e.length)return;let r=new Set(n.value),i=new Map(a.value);for(let n of e){let e=P(n);r.add(e),i.set(e,t)}n.value=r,a.value=i}function h(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=P(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,Nn(()=>{let e=new Set(s.value);for(let t of p)e.add(t);s.value=e}),x(()=>{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},En)}function g(e,n,r=Cn){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,Nn(()=>{u.value=new Set(a),Nn(()=>{c.value=new Map})}),x(()=>{u.value=new Set;let e=new Map(l.value);for(let t of a)e.delete(t);l.value=e},r)}function _(e){if(r.value.has(e))return`transform ${wn}ms ease-out`;if(u.value.has(e))return`transform ${l.value.get(e)??Cn}ms ease-out`}function v(e){if(!r.value.has(e))return;let t=i.value.get(e)??0;return t>0?`${t}ms`:void 0}function y(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?P(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)?jn({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 b(e){let n=P(e),r=o.value.get(n);if(!r)return{opacity:`0`,transform:`translate3d(0, 0, 0) scale(0.96)`,transition:`opacity ${En}ms ease-out, transform ${En}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 ${En}ms ease-out, transform ${En}ms ease-out`,width:`${t.columnWidth.value}px`}}function x(e,t){let n=setTimeout(()=>{f.delete(n),e()},t);f.add(n)}return{getCardTransform:y,getCardTransition:_,getCardTransitionDelay:v,getLeavingCardStyle:b,leavingItems:p,markEnter:m,markLeave:h,playFlipMoveAnimation:g}}function Nn(e){if(typeof requestAnimationFrame==`function`){requestAnimationFrame(()=>e());return}setTimeout(e,0)}function Pn(e){Nn(()=>Nn(e))}function Fn(e,t){return e?.clientHeight||Math.round(e?.getBoundingClientRect().height??0)||t||window.innerHeight||1}function In(e,t,n){return e?.clientWidth||Math.round(e?.getBoundingClientRect().width??0)||t||window.innerWidth||n}function Ln(e,t,n,r){return(e?.scrollHeight??r)-(t+n)}function Rn(e,t){return{height:`${e}px`,transform:`translate3d(0, ${t}px, 0)`}}var zn=250,Bn=1e3;function Vn(t){let n=(0,e.ref)(!1),r=(0,e.ref)(!1),i=(0,e.ref)(0),a=(0,e.ref)(0),o=(0,e.ref)(!1),s=(0,e.ref)(!1),c=0,l=null;(0,e.onBeforeUnmount)(()=>{b()});function u(){let e=n.value;if(n.value=t.isAtBoundary(),!n.value){!o.value&&!s.value&&(r.value=!0);return}!e&&r.value&&h()}function d(e){if(!x(e)||!t.isAtBoundary())return;let n=Date.now();n<c||(c=n+zn,h())}function f(){if(!_())return;let e=t.requestPage.value;if(typeof e!=`function`)return;a.value=i.value,r.value=!1,o.value=!0,s.value=!0;let n;try{n=e()}catch{v();return}Promise.resolve(n).catch(()=>{}).finally(()=>{!t.loading.value&&s.value&&v()})}function p(e){!e&&s.value&&v()}function m(e){!s.value||e<=0||(s.value=!1,y(t.getAnimationLockMs(e)))}function h(){g()&&(i.value+=1)}function g(){return t.hasPage.value&&!t.interactionLocked?.value&&!t.loading.value&&!o.value&&typeof t.requestPage.value==`function`}function _(){return t.hasPage.value&&n.value&&i.value>a.value&&!t.interactionLocked?.value&&!t.loading.value&&!o.value&&typeof t.requestPage.value==`function`}function v(){s.value=!1,y(Bn)}function y(e){b(),o.value=!0,l=setTimeout(()=>{l=null,o.value=!1},Math.max(0,e))}function b(){l&&=(clearTimeout(l),null)}function x(e){return t.direction===`top`?e.deltaY<0:e.deltaY>0}return{maybeRequestPage:f,onItemsMutated:m,onLoadingChange:p,onWheel:d,syncBoundary:u}}var Hn=600,Q=24,$=16,Un=300,Wn=200,Gn=200,Kn=Q+$,qn=200,Jn=300,Yn=24,Xn=48,Zn=500,Qn=1e3;function $n(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||Un),o=(0,e.ref)([]),s=(0,e.ref)([]),c=(0,e.ref)(new Map),l=(0,e.ref)(0),u=(0,e.ref)(new Map),d=(0,e.ref)(null),f=(0,e.ref)(null),p=(0,e.ref)(!1),m=(0,e.computed)(()=>Math.max(Un,a.value-Q*2)),h=(0,e.computed)(()=>hn(m.value,Un)),g=(0,e.computed)(()=>gn(m.value,h.value,Un,$)),_=(0,e.computed)(()=>er(t.activeIndex.value,0,Math.max(0,t.items.value.length-1))),v=(0,e.computed)(()=>yn({itemCount:t.items.value.length,viewportHeight:i.value,scrollTop:r.value,overscanPx:Wn,bucketPx:Hn,buckets:c.value})),y=(0,e.computed)(()=>v.value.map(e=>({item:t.items.value[e],index:e}))),b=(0,e.computed)(()=>{let e=l.value+Q*2,t=d.value??0;return Math.max(e,t,i.value)+qn}),x=(0,e.computed)(()=>t.hasNextPage.value||t.allowExhaustedNextPageRefresh.value),S=(0,e.computed)(()=>nr({active:t.active.value,maxScrollTop:X(),progressDistancePx:r.value,thresholdPx:Gn,triggerEnabled:x.value})),C=(0,e.computed)(()=>t.items.value.length>0?`${_.value+1} / ${t.items.value.length}`:`0 / 0`),w=(0,e.computed)(()=>tr({active:t.active.value,maxScrollTop:X(),progressDistancePx:r.value,thresholdPx:Kn,triggerEnabled:t.hasPreviousPage.value})),T=(0,e.computed)(()=>Math.max(0,i.value-Yn*2)),E=(0,e.computed)(()=>b.value>i.value+1&&T.value>0),D=(0,e.computed)(()=>{if(!E.value)return 0;let e=i.value/b.value*T.value;return Math.min(T.value,Math.max(Xn,e))}),O=(0,e.computed)(()=>{if(!E.value)return Yn;let e=Math.max(0,b.value-i.value);return Yn+Math.max(0,T.value-D.value)*(e>0?er(r.value/e,0,1):0)}),k=Mn({items:t.items,visibleIndices:v,positions:o,heights:s,indexById:u,columnWidth:g,scrollTop:r,viewportHeight:i}),A=Vn({direction:`top`,getAnimationLockMs(e){return Math.max(Zn,kn(e))+Qn},hasPage:t.hasPreviousPage,interactionLocked:p,isAtBoundary(){return r.value<=Kn},loading:t.loading,requestPage:t.requestPreviousPage}),j=Vn({direction:`bottom`,getAnimationLockMs(e){return kn(e)+Qn},hasPage:x,interactionLocked:p,isAtBoundary(){return ne()<=Gn},loading:t.loading,requestPage:t.requestNextPage}),M=null,N=0,F=null,I=null,L=!1;(0,e.watch)([()=>t.items.value,h,g],async([n],[i=[]])=>{let a=n.map(e=>P(e)),s=i??[],c=s.map(e=>P(e)),l=bn(s,u.value,o.value),d=ae(s),f=new Set(c),p=new Set(a),m=n.filter(e=>!f.has(P(e))),h=s.flatMap(e=>{let t=P(e);if(p.has(t))return[];let n=l.get(t),r=d.get(t);return!n||r==null?[]:[{height:r,item:e,position:n}]}),g=a.length>c.length&&c.length>0&&a[0]!==c[0],v=n.length===0&&s.length>0&&h.length>0&&r.value>0,y=h.length>0&&r.value>Q+$,b=g&&r.value>Q+$?n[_.value]:null,x=b?P(b):null;y&&W(An()+Qn),v&&ee(),R(),h.length>0&&k.markLeave(h),m.length>0&&(k.markEnter(m,g?`top`:`bottom`),g?A.onItemsMutated(m.length):j.onItemsMutated(m.length)),k.playFlipMoveAnimation(l,new Set(m.map(e=>P(e))),g?Zn:void 0),x?(await(0,e.nextTick)(),U(x,l)):t.active.value&&c.length>0&&K()},{immediate:!0}),(0,e.watch)([()=>t.pendingAppendItems.value.map(e=>P(e)),h,g,i],([e])=>{se(),e.length&&(d.value=ie([...t.items.value,...t.pendingAppendItems.value]),oe())},{immediate:!0}),(0,e.watch)(()=>t.active.value,async(t,a)=>{let o=n.value;if(!o)return;if(!t){f.value=o.scrollTop;return}if(a!==!1||f.value==null)return;await(0,e.nextTick)();let s=Math.max(0,b.value-i.value),c=er(f.value,0,s);o.scrollTop=c,r.value=c,A.syncBoundary(),j.syncBoundary()}),(0,e.watch)(()=>t.loading.value,async n=>{!n&&!t.pendingAppendItems.value.length&&!F&&!L&&(d.value=null),A.onLoadingChange(n),j.onLoadingChange(n),await(0,e.nextTick)()}),(0,e.onMounted)(async()=>{J(),await(0,e.nextTick)(),_.value>0?H(_.value,`center`):G(),A.syncBoundary(),j.syncBoundary(),typeof ResizeObserver<`u`?(M=new ResizeObserver(()=>{J()}),n.value&&M.observe(n.value)):window.addEventListener(`resize`,J)}),(0,e.onBeforeUnmount)(()=>{M?.disconnect(),M=null,window.removeEventListener(`resize`,J),se(),ce(),N&&=(cancelAnimationFrame(N),0)});function R(){let e=vn(t.items.value,{columnCount:h.value,columnWidth:g.value,gapX:$,gapY:$,bucketPx:Hn});o.value=e.positions.map(e=>({x:e.x+Q,y:e.y+Q})),s.value=e.heights,c.value=e.buckets,l.value=e.contentHeight,u.value=e.indexById}function z(){t.active.value&&(r.value=n.value?.scrollTop??0,i.value=Y(),A.syncBoundary(),j.syncBoundary(),q(),!K()&&(N||=requestAnimationFrame(()=>{N=0,G()})))}function B(e){t.active.value&&(A.onWheel(e),j.onWheel(e),q())}function V(e){let n=t.items.value[e],r=n?P(n):``;return{height:`${s.value[e]??g.value}px`,width:`${g.value}px`,transition:r?k.getCardTransition(r):void 0,transitionDelay:r?k.getCardTransitionDelay(r):void 0,transform:k.getCardTransform(e)}}function H(e,t){let a=n.value,c=o.value[e],l=s.value[e];if(!a||!c||!l)return;let u=a.scrollTop,d=Math.max(0,b.value-i.value);t===`center`?u=c.y-(i.value-l)/2:c.y<a.scrollTop?u=c.y-Q:c.y+l>a.scrollTop+i.value&&(u=c.y+l-i.value+Q),a.scrollTop=er(u,0,d),r.value=a.scrollTop,G()}function U(e,t){let i=n.value,a=t.get(e),s=u.value.get(e),c=s==null?null:o.value[s];if(!i||!a||!c)return;let l=c.y-a.y;i.scrollTop+=l,r.value=i.scrollTop}function ee(){let e=n.value;if(!e){r.value=0;return}e.scrollTop=0,r.value=0,A.syncBoundary(),j.syncBoundary()}function W(e){ce(),p.value=!0,I=setTimeout(()=>{I=null,p.value=!1},Math.max(0,e))}function G(){if(!v.value.length||K())return;let e=r.value+i.value/2,n=_.value,a=1/0;for(let t of v.value){let r=o.value[t],i=s.value[t];if(!r||!i)continue;let c=r.y+i/2,l=Math.abs(c-e);l<a&&(a=l,n=t)}t.setActiveIndex(n)}function K(){let e=r.value<=Kn,n=ne()<=Gn;return e?(t.setActiveIndex(0),!0):n?(t.setActiveIndex(Math.max(0,t.items.value.length-1)),!0):!1}function q(){A.maybeRequestPage(),j.maybeRequestPage()}function J(){i.value=Y(),a.value=te()}function Y(){return Fn(n.value,i.value)}function te(){return In(n.value,a.value,Un)}function ne(){return Ln(n.value,r.value,i.value,b.value)}function X(){let e=Math.max(n.value?.scrollHeight??0,b.value);return Math.max(0,e-i.value)}function re(){return Rn(D.value,O.value)}function ie(e){return e.length?vn(e,{columnCount:h.value,columnWidth:g.value,gapX:$,gapY:$,bucketPx:Hn}).contentHeight+Q*2:0}function ae(e){let t=new Map;for(let n of e){let e=P(n),r=u.value.get(e);if(r==null)continue;let i=s.value[r];i!=null&&t.set(e,i)}return t}function oe(){let n=t.commitPendingAppend.value;typeof n==`function`&&(F=setTimeout(async()=>{F=null,L=!0;try{if(!t.pendingAppendItems.value.length)return;await n(),await(0,e.nextTick)(),await(0,e.nextTick)()}finally{d.value=null,L=!1}},Jn))}function se(){F&&=(clearTimeout(F),null)}function ce(){I&&(clearTimeout(I),I=null,p.value=!1)}return{columnWidth:g,containerHeight:b,getCardStyle:V,getLeavingCardStyle:k.getLeavingCardStyle,getScrollbarThumbStyle:re,leavingItems:k.leavingItems,nextBoundaryLoadProgress:S,onScroll:z,onWheel:B,paginationLabel:C,previousBoundaryLoadProgress:w,renderedItems:y,resolvedActiveIndex:_,scrollToIndex:H,showScrollbar:E,scrollViewportRef:n}}function er(e,t,n){return Math.min(Math.max(e,t),n)}function tr(e){if(!e.active||!e.triggerEnabled)return 0;let t=Math.max(0,e.maxScrollTop-e.thresholdPx);return t<=0?1:er(1-(e.progressDistancePx-e.thresholdPx)/t,0,1)}function nr(e){if(!e.active||!e.triggerEnabled)return 0;let t=Math.max(0,e.maxScrollTop-e.thresholdPx);return t<=0?1:er(e.progressDistancePx/t,0,1)}function rr(e){if(e)try{e.removeAttribute(`src`),e.src=``}catch{}}function ir(e){if(e){try{e.currentTime=0}catch{}e.pause();try{e.removeAttribute(`src`),e.load()}catch{}}}function ar(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 or(e){if(!e)return null;try{return new URL(e,window.location.href).href}catch{return e}}var sr=/\.(avif|gif|jpe?g|png|svg|webp)(\?|#|$)/i,cr=/\.(m4v|mov|mp4|mpeg|ogg|ogv|webm)(\?|#|$)/i,lr=/^(?:(?:https?:)?\/\/[^/]+)?\/api\/files\/[^/?#]+\/(?:preview|downloaded)(?:\?|#|$)/i;function ur(e){let t=dr(e),n=t?.url,r=mn(e),i=e.title?.trim()||Ve(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`&&pr(e,n)?{kind:`video`,url:n,width:r.width,height:r.height,label:i}:typeof n==`string`&&fr(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 dr(e){return e.preview?.url?e.preview:typeof e.url!=`string`||e.url.trim()===``?null:{url:e.url}}function fr(e,t){return e.type!==`image`||typeof t!=`string`?!1:sr.test(t)||mr(t)}function pr(e,t){return e.type!==`video`||typeof t!=`string`?!1:cr.test(t)||hr(t)}function mr(e){return/^(https?:\/\/|\/\/|\/(?!\/)|\.{1,2}\/|blob:|data:)/i.test(e)}function hr(e){return lr.test(e)||/^blob:/i.test(e)||/^data:video\//i.test(e)}var gr={maxGlobal:10,maxPerDomain:4,maxVideoPerDomain:2};function _r(e=gr){let t=new Map,n=new Map,r=0;function i(e){let i={...e,domain:br(e.url),enqueuedAt:r,id:`vibe-asset-load-${r+=1}`};return n.set(i.id,i),a(),{cancel(){(n.delete(i.id)||t.delete(i.id))&&a()},refresh(){a()},release(){(t.delete(i.id)||n.delete(i.id))&&a()}}}function a(){if(n.size===0)return;let r=[...n.values()].sort((e,t)=>{let n=yr(e)-yr(t);return n===0?e.enqueuedAt-t.enqueuedAt:n});for(let i of r){if(t.size>=e.maxGlobal)return;if(o(i)){n.delete(i.id),t.set(i.id,i);try{i.onGrant()}catch{t.delete(i.id)}}}}function o(n){let r=[...t.values()].filter(e=>e.domain===n.domain);return!(r.length>=e.maxPerDomain||n.assetType===`video`&&r.filter(e=>e.assetType===`video`).length>=e.maxVideoPerDomain)}return{request:i}}var vr=_r();function yr(e){try{let t=e.getPriority();return Number.isFinite(t)?t:1/0}catch{return 1/0}}function br(e){try{return new URL(e).hostname||`local`}catch{return`local`}}function xr(t){let n=(0,e.ref)(null),r=(0,e.computed)(()=>{let e=typeof t.item.value.healthCheck?.url==`string`?or(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=vr.request({assetType:`probe`,getPriority:t.getPriority,onGrant(){let e=r.value;if(!e){l();return}let i=++a;ct(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:P(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 Sr=[`aria-label`],Cr={key:0,"data-testid":`vibe-list-card-spinner`,class:`pointer-events-none absolute inset-0 z-[4] grid place-items-center bg-black/18`},wr={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]`},Tr=[`src`,`alt`],Er=[`src`],Dr=[`data-kind`],Or={class:`grid justify-items-center gap-3 px-4 text-center`},kr={class:`text-[0.68rem] font-bold uppercase tracking-[0.22em] text-[#f7f1ea]/72`},Ar={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))]`},jr={class:`inline-flex h-14 w-14 items-center justify-center border border-white/16 bg-black/20`},Mr={class:`pointer-events-none absolute inset-0 z-[3]`},Nr=(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)(()=>ur(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),m=(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=xr({attachedAssetUrl:y,getPriority:W,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)(()=>ot(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`){m.value=null,o.value=!0,I();return}m.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:m.value,threshold:[0,1]}),O.observe(p.value)}),(0,e.onBeforeUnmount)(()=>{R(),C.release(),O?.disconnect(),O=null});function j(){G(f.value)&&(l.value=!0,d.value=null,V(y.value??r.item.url),z())}async function M(){if(!G(f.value))return;let e=y.value??r.item.url;l.value=!1,d.value=`generic`;let t=await st(e);d.value=t,r.reportAssetError?.({item:r.item,occurrenceKey:P(r.item),url:e,kind:t,surface:`grid`}),z()}function N(){G(g.value)&&(u.value=!0,l.value=!0,d.value=null,V(y.value??r.item.url),z(),L())}function F(){G(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=vr.request({assetType:a.value.kind,getPriority:W,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,dt(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(),ee()),z()}function z(){k?.release(),k=null}function B(e){let t=p.value;if(!t){o.value=!0;return}o.value=ar(e?.boundingClientRect??t.getBoundingClientRect(),e?.rootBounds??m.value?.getBoundingClientRect()??null)}function V(e){if(!e)return;let t=P(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=P(r.item);A.forEach(t=>{t.startsWith(`${e}|`)&&A.delete(t)}),d.value=null,l.value=!1,_.value=!1,z(),I()}function U(){rr(f.value)}function ee(){ir(g.value)}function W(){let e=p.value;if(!e)return 1/0;let t=e.getBoundingClientRect();if(m.value){let e=m.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 G(e){let t=or(y.value);return!e||!t?!1:or(`currentSrc`in e&&e.currentSrc||e.getAttribute(`src`))===t}function K(){i(`open`)}function q(){s.value=!0}function J(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:q,onFocusout:J,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:K},null,8,Sr),D.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Cr,[(0,e.createElementVNode)(`span`,wr,[(0,e.createVNode)((0,e.unref)(h),{class:`h-5 w-5 animate-spin stroke-[1.9] text-[#f7f1ea]/78`,"aria-hidden":`true`})])])):(0,e.createCommentVNode)(``,!0),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,Tr)):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:N,onError:M,onLoadstart:F,onPlaying:N,onStalled:F,onWaiting:F},null,42,Er)):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`,Or,[(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`,kr,(0,e.toDisplayString)((0,e.unref)(at)(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,Dr)):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Ar,[(0,e.createElementVNode)(`div`,jr,[(0,e.renderSlot)(t.$slots,`item-icon`,{icon:(0,e.unref)(Be)(r.item.type),item:r.item},()=>[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)((0,e.unref)(Be)(r.item.type)),{class:`h-6 w-6 stroke-[1.8] text-[#f7f1ea]/78`,"aria-hidden":`true`}))])])])),(0,e.createElementVNode)(`div`,Mr,[(0,e.renderSlot)(t.$slots,`grid-item-overlay`,{active:r.active,focused:s.value,hovered:c.value,index:r.index,item:r.item,openFullscreen:K})])],34))}}),Pr={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)]`},Fr={class:`pointer-events-none absolute inset-x-0 top-0 z-[2] flex justify-end p-6`},Ir={"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]`},Lr={class:`whitespace-nowrap`},Rr={key:0,class:`whitespace-nowrap border-l border-white/12 pl-2 text-[#f7f1ea]/56 min-[721px]:pl-3`},zr=[`data-active`,`data-index`,`data-item-id`,`data-occurrence-key`],Br=[`data-item-id`],Vr={key:0,class:`pointer-events-none absolute inset-y-0 right-0 z-[3] hidden w-8 min-[1024px]:block`},Hr={key:1,class:`pointer-events-none absolute inset-x-0 bottom-0 z-[2] px-5 pb-5 sm:px-6`},Ur={class:`mx-auto flex w-full max-w-[1600px] justify-center`},Wr=(0,e.defineComponent)({__name:`ListSurface`,props:{active:{type:Boolean,default:!0},activeIndex:{default:0},allowExhaustedNextPageRefresh:{type:Boolean,default:!1},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,{emit:n}){let r=t,i=(0,e.useSlots)(),a=n,o=$n({active:(0,e.toRef)(r,`active`),allowExhaustedNextPageRefresh:(0,e.toRef)(r,`allowExhaustedNextPageRefresh`),items:(0,e.toRef)(r,`items`),activeIndex:(0,e.toRef)(r,`activeIndex`),loading:(0,e.toRef)(r,`loading`),hasNextPage:(0,e.toRef)(r,`hasNextPage`),hasPreviousPage:(0,e.toRef)(r,`hasPreviousPage`),paginationDetail:(0,e.toRef)(r,`paginationDetail`),pendingAppendItems:(0,e.toRef)(r,`pendingAppendItems`),commitPendingAppend:(0,e.toRef)(r,`commitPendingAppend`),requestNextPage:(0,e.toRef)(r,`requestNextPage`),requestPreviousPage:(0,e.toRef)(r,`requestPreviousPage`),setActiveIndex(e){a(`update:activeIndex`,e)}}),s=(0,e.computed)(()=>Xe({itemCount:r.items.length,loading:r.loading,phase:r.phase})),c=(0,e.computed)(()=>Ze({errorMessage:r.errorMessage,hasItems:r.items.length>0,hasNextPage:r.hasNextPage,phase:s.value,surface:`grid`})),l=(0,e.computed)(()=>!r.showStatusBadges||!c.value?null:{activeIndex:o.resolvedActiveIndex.value,kind:c.value.kind,loading:r.loading,message:c.value.message,paginationDetail:r.paginationDetail,total:r.items.length}),u=(0,e.computed)(()=>!l.value||!i[`grid-status`]?[]:i[`grid-status`](l.value)),d=(0,e.computed)(()=>Ge(u.value)),f=(0,e.computed)(()=>r.items.length+o.leavingItems.value.length),{emptyStateProps:p,showBadgeEmptyState:m,showCustomEmptyState:h,showInlineEmptyState:g}=Je({emptyStateMode:(0,e.toRef)(r,`emptyStateMode`),itemCount:f,loading:(0,e.toRef)(r,`loading`),renderSlot:i[`empty-state`],surface:`grid`});return(0,e.watch)([o.nextBoundaryLoadProgress,o.previousBoundaryLoadProgress],([e,t])=>{a(`boundary-load-progress`,{nextBoundaryLoadProgress:e,previousBoundaryLoadProgress:t})},{immediate:!0}),(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Pr,[(0,e.createElementVNode)(`div`,Fr,[(0,e.createElementVNode)(`span`,Ir,[(0,e.createElementVNode)(`span`,Lr,(0,e.toDisplayString)((0,e.unref)(o).paginationLabel.value),1),r.paginationDetail?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,Rr,(0,e.toDisplayString)(r.paginationDetail),1)):(0,e.createCommentVNode)(``,!0)])]),(0,e.createElementVNode)(`div`,{ref:(0,e.unref)(o).scrollViewportRef,"data-testid":`vibe-list-scroll`,class:`h-full min-h-0 overflow-y-auto overflow-x-hidden [overflow-anchor:none] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden`,onScroll:n[0]||=(...t)=>(0,e.unref)(o).onScroll&&(0,e.unref)(o).onScroll(...t),onWheel:n[1]||=(...t)=>(0,e.unref)(o).onWheel&&(0,e.unref)(o).onWheel(...t)},[(0,e.createElementVNode)(`div`,{"data-testid":`vibe-list-content`,class:`relative`,style:(0,e.normalizeStyle)({height:`${(0,e.unref)(o).containerHeight.value}px`})},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)((0,e.unref)(o).renderedItems.value,({item:n,index:s})=>((0,e.openBlock)(),(0,e.createElementBlock)(`article`,{key:(0,e.unref)(P)(n),"data-testid":`vibe-list-card`,"data-active":s===(0,e.unref)(o).resolvedActiveIndex.value?`true`:`false`,"data-index":s,"data-item-id":n.id,"data-occurrence-key":(0,e.unref)(P)(n),class:`absolute will-change-transform`,style:(0,e.normalizeStyle)((0,e.unref)(o).getCardStyle(s))},[(0,e.createVNode)(Nr,{active:s===(0,e.unref)(o).resolvedActiveIndex.value,index:s,item:n,"report-asset-error":r.reportAssetError,"report-asset-load":r.reportAssetLoad,"surface-active":r.active,onOpen:e=>a(`open-fullscreen`,s)},(0,e.createSlots)({_:2},[i[`grid-item-overlay`]?{name:`grid-item-overlay`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`grid-item-overlay`,(0,e.mergeProps)({ref_for:!0},n))]),key:`0`}:void 0,i[`item-icon`]?{name:`item-icon`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`item-icon`,(0,e.mergeProps)({ref_for:!0},n))]),key:`1`}:void 0]),1032,[`active`,`index`,`item`,`report-asset-error`,`report-asset-load`,`surface-active`,`onOpen`])],12,zr))),128)),((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)((0,e.unref)(o).leavingItems.value,n=>((0,e.openBlock)(),(0,e.createElementBlock)(`article`,{key:`leaving-${(0,e.unref)(P)(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)(o).getLeavingCardStyle(n.item))},[(0,e.createVNode)(Nr,{active:!1,index:-1,item:n.item,"report-asset-error":r.reportAssetError,"report-asset-load":r.reportAssetLoad,"surface-active":!1},(0,e.createSlots)({_:2},[i[`item-icon`]?{name:`item-icon`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`item-icon`,(0,e.mergeProps)({ref_for:!0},n))]),key:`0`}:void 0]),1032,[`item`,`report-asset-error`,`report-asset-load`])],12,Br))),128)),(0,e.unref)(g)&&(0,e.unref)(p)?((0,e.openBlock)(),(0,e.createBlock)(Ot,{key:0,message:(0,e.unref)(p).message,mode:(0,e.unref)(p).mode,surface:(0,e.unref)(p).surface},{default:(0,e.withCtx)(()=>[(0,e.unref)(h)?(0,e.renderSlot)(t.$slots,`empty-state`,(0,e.normalizeProps)((0,e.mergeProps)({key:0},(0,e.unref)(p)))):(0,e.createCommentVNode)(``,!0)]),_:3},8,[`message`,`mode`,`surface`])):(0,e.createCommentVNode)(``,!0)],4)],544),(0,e.unref)(o).showScrollbar.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Vr,[n[2]||=(0,e.createElementVNode)(`div`,{class:`absolute bottom-6 right-3 top-6 w-px bg-white/8`},null,-1),(0,e.createElementVNode)(`div`,{"data-testid":`vibe-list-scrollbar-thumb`,class:(0,e.normalizeClass)([`absolute right-[0.625rem] w-1 bg-white/34 transition-[height,transform,background-color,opacity] duration-300 ease-out`,r.loading?`bg-white/52`:`bg-white/34`]),style:(0,e.normalizeStyle)((0,e.unref)(o).getScrollbarThumbStyle())},null,6)])):(0,e.createCommentVNode)(``,!0),i[`grid-footer`]?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Hr,[(0,e.createElementVNode)(`div`,Ur,[(0,e.renderSlot)(t.$slots,`grid-footer`)])])):(0,e.createCommentVNode)(``,!0),l.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:2,class:(0,e.normalizeClass)([`pointer-events-none absolute inset-x-0 bottom-0 z-[3] flex justify-center px-6`,i[`grid-footer`]?`pb-24`:`pb-6`])},[d.value?(0,e.renderSlot)(t.$slots,`grid-status`,(0,e.normalizeProps)((0,e.mergeProps)({key:0},l.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]`,l.value.kind===`end`?`border-amber-300/35 text-amber-200`:l.value.kind===`failed`?`border-rose-400/45 text-rose-100`:``])},(0,e.toDisplayString)(l.value.message),3))],2)):(0,e.createCommentVNode)(``,!0),(0,e.unref)(m)&&(0,e.unref)(p)?((0,e.openBlock)(),(0,e.createBlock)(Ot,{key:3,class:(0,e.normalizeClass)([`z-[3]`,i[`grid-footer`]?`pb-24`:`pb-6`]),message:(0,e.unref)(p).message,mode:(0,e.unref)(p).mode,surface:(0,e.unref)(p).surface},{default:(0,e.withCtx)(()=>[(0,e.unref)(h)?(0,e.renderSlot)(t.$slots,`empty-state`,(0,e.normalizeProps)((0,e.mergeProps)({key:0},(0,e.unref)(p)))):(0,e.createCommentVNode)(``,!0)]),_:3},8,[`class`,`message`,`mode`,`surface`])):(0,e.createCommentVNode)(``,!0)]))}}),Gr=[`data-surface-mode`],Kr={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`},qr=[`data-visible`,`inert`],Jr=[`data-visible`,`inert`],Yr={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`},Xr=(0,e.defineComponent)({name:`VibeLayout`,__name:`Layout`,props:{emptyStateMode:{},fillDelayMs:{},fillDelayStepMs:{},initialCursor:{},initialState:{},loopFullscreenVideo:{type:Boolean},mode:{},pageSize:{},paginationDetail:{},resolve:{type:Function},showDominantImageTone:{type:Boolean},showEndBadge:{type:Boolean},showStatusBadges:{type:Boolean},surfaceMode:{}},emits:[`asset-errors`,`asset-loads`,`update:activeIndex`,`update:surfaceMode`],setup(t,{expose:n,emit:r}){let i=t,a=(0,e.useSlots)(),o=r,s=de(i,o),c=S(e=>{o(`asset-errors`,e)}),l=C(e=>{o(`asset-loads`,e)});return(0,e.onBeforeUnmount)(()=>{c.stop(),l.stop()}),n({cancel:s.cancel,clearRemoved:s.clearRemoved,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`,Kr,(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)(Wr,{active:(0,e.unref)(s).surfaceMode.value===`list`,"allow-exhausted-next-page-refresh":(0,e.unref)(s).canRefreshExhaustedNextPage.value,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)(c).report,"report-asset-load":(0,e.unref)(l).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`,`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,qr),[[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)(dn,{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,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)(c).report,"report-asset-load":(0,e.unref)(l).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-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:`3`}: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:`4`}: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:`5`}:void 0]),1032,[`items`,`active`,`active-index`,`error-message`,`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`])],8,Jr),[[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.openBlock)(),(0,e.createElementBlock)(`div`,Yr,[(0,e.createVNode)((0,e.unref)(h),{class:`size-10 animate-spin text-[#f7f1ea]/82`,"aria-hidden":`true`}),n[1]||=(0,e.createElementVNode)(`p`,{class:`m-0 text-[0.9rem] font-semibold uppercase tracking-[0.22em] text-[#f7f1ea]/72`},` Loading... `,-1)])):((0,e.openBlock)(),(0,e.createBlock)(dn,{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,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)(c).report,"report-asset-load":(0,e.unref)(l).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-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:`3`}: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:`4`}: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:`5`}:void 0]),1032,[`items`,`active-index`,`error-message`,`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,Gr))}}),Zr={install(e){e.component(`VibeLayout`,Xr)}};exports.VibeLayout=Xr,exports.VibePlugin=Zr,exports.default=Zr;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});let e=require(`vue`);var t=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},n=e=>e===``,r=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),i=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),a=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),o=e=>{let t=a(e);return t.charAt(0).toUpperCase()+t.slice(1)},s={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`},c=({name:a,iconNode:c,absoluteStrokeWidth:l,"absolute-stroke-width":u,strokeWidth:d,"stroke-width":f,size:p=s.width,color:m=s.stroke,...h},{slots:g})=>(0,e.h)(`svg`,{...s,...h,width:p,height:p,stroke:m,"stroke-width":n(l)||n(u)||l===!0||u===!0?Number(d||f||s[`stroke-width`])*24/Number(p):d||f||s[`stroke-width`],class:r(`lucide`,h.class,...a?[`lucide-${i(o(a))}-icon`,`lucide-${i(a)}`]:[`lucide-icon`]),...!g.default&&!t(h)&&{"aria-hidden":`true`}},[...c.map(t=>(0,e.h)(...t)),...g.default?[g.default()]:[]]),l=(t,n)=>(r,{slots:i,attrs:a})=>(0,e.h)(c,{...a,...r,iconNode:n,name:t},i),u=l(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]),d=l(`audio-lines`,[[`path`,{d:`M2 10v3`,key:`1fnikh`}],[`path`,{d:`M6 6v11`,key:`11sgs0`}],[`path`,{d:`M10 3v18`,key:`yhl04a`}],[`path`,{d:`M14 8v7`,key:`3a1oy3`}],[`path`,{d:`M18 5v13`,key:`123xd1`}],[`path`,{d:`M22 10v3`,key:`154ddg`}]]),f=l(`clapperboard`,[[`path`,{d:`m12.296 3.464 3.02 3.956`,key:`qash78`}],[`path`,{d:`M20.2 6 3 11l-.9-2.4c-.3-1.1.3-2.2 1.3-2.5l13.5-4c1.1-.3 2.2.3 2.5 1.3z`,key:`1h7j8b`}],[`path`,{d:`M3 11h18v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`,key:`4lm6w1`}],[`path`,{d:`m6.18 5.276 3.1 3.899`,key:`zjj9t3`}]]),p=l(`file`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}]]),m=l(`image-plus`,[[`path`,{d:`M16 5h6`,key:`1vod17`}],[`path`,{d:`M19 2v6`,key:`4bpg5p`}],[`path`,{d:`M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5`,key:`1ue2ih`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`,key:`1xmnt7`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}]]),h=l(`loader-circle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]),g=l(`pause`,[[`rect`,{x:`14`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`kaeet6`}],[`rect`,{x:`5`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`1wsw3u`}]]),_=l(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]),v=l(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),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`}]]);function S(e,t=150){return w(e,e=>`${e.surface}|${e.occurrenceKey}|${e.url}|${e.kind}`,t)}function C(e,t=150){return w(e,e=>`${e.surface}|${e.occurrenceKey}|${e.url}`,t)}function w(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 T(e){return e instanceof HTMLElement&&[`INPUT`,`TEXTAREA`,`SELECT`].includes(e.tagName)}function E(e){return e instanceof HTMLElement&&!!e.closest(`[data-swipe-lock], input, textarea, select, a`)}function D(e){return e===`filling`||e===`initializing`||e===`loading`||e===`refreshing`}function O(e){return!e||!Number.isFinite(e)||e<1?25:Math.floor(e)}function k(e){return e??`__vibe_initial_cursor__`}function A(e,t,n){return Math.min(Math.max(e,t),n)}function j(){let t=(0,e.ref)(new Set),n=(0,e.ref)([]);function r(e){let r=M(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=M(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 M(e){let t=Array.isArray(e)?e:[e];return Array.from(new Set(t.filter(e=>typeof e==`string`&&e.length>0)))}var N=`__vibeOccurrenceKey`;function P(e){let t=e[N];return typeof t==`string`&&t.length>0?t:e.id}function F(e,t,n){let r=new Map,i=[],a=n;for(let e of t){let t=r.get(e.id),n=P(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(I(t,e))}return{items:i,nextSequence:a}}function I(e,t){return P(e)===t?e:{...e,[N]:t}}function L(e){return e.flatMap(e=>e.items)}function R(e,t){return t.size?e.filter(e=>!t.has(e.id)):e}function z(e,t){return R(e.items,t)}function B(e,t){return z(e,t).length}function V(e,t,n){if(n<0)return null;let r=0;for(let i of e){let e=z(i,t),a=r+e.length;if(n<a)return i.cursor;r=a}return null}function H(e,t,n){let r=[...e],i=r.findIndex(e=>e.cursor===t);return i>=0&&r.splice(i,1,n),r}function U(e,t,n){let r=F(e,t,n);return{items:r.items,nextSequence:r.nextSequence}}function ee(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 W(e){let t=U(e.nextItems,e.previousItems,e.sequence);return{bucket:{cursor:e.cursor,items:t.items,nextCursor:e.nextCursor,previousCursor:e.previousCursor},nextSequence:t.nextSequence}}function G(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+B(t,n),0)}}function K(e){let t=W({cursor:e.initialState.cursor,nextCursor:e.initialState.nextCursor??null,nextItems:e.initialState.items,previousCursor:e.initialState.previousCursor??null,previousItems:[],sequence:e.sequence}),n=R(t.bucket.items,e.removedIds);return{activeIndex:A(e.initialState.activeIndex??0,0,Math.max(0,n.length-1)),buckets:[t.bucket],nextSequence:t.nextSequence}}function q(e,t){let n=e[A(t,0,Math.max(0,e.length-1))];return n?P(n):null}function J(e,t,n=null){if(!e.length)return 0;let r=n?e.findIndex(e=>P(e)===n):-1;return r>=0?r:A(t,0,e.length-1)}function Y(e,t,n){return e?B(e,t)<n:!1}var te=2e3,ne=1e3,X=100;function re(e,t=te,n=ne){return t+Math.max(0,e-1)*n}function ie(e,t){return!Number.isFinite(e)||e==null||e<0?t:Math.floor(e)}function ae(){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,X),r=setTimeout(l,e),u()}))}return{clear:a,remainingMs:t,wait:o}}function oe(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=ae(),d=u.remainingMs,f=(0,e.ref)(null),p=(0,e.ref)(!1),m=(0,e.ref)(!0),h=(0,e.ref)(!1),g=new Set,_=null,v=null,y=0,b=0,x=(0,e.computed)(()=>ie(t.fillDelayMs,te)),S=(0,e.computed)(()=>ie(t.fillDelayStepMs,ne)),C=(0,e.computed)(()=>typeof t.resolve==`function`),w=(0,e.computed)(()=>t.mode??`dynamic`),T=(0,e.computed)(()=>O(t.pageSize)),E=(0,e.computed)(()=>L(r.value)),j=(0,e.computed)(()=>R(E.value,t.removedIds.value)),M=(0,e.computed)(()=>i.value),N=(0,e.computed)(()=>D(c.value)||p.value),F=(0,e.computed)(()=>se(r.value,t.removedIds.value)),I=(0,e.computed)(()=>ce(r.value,t.removedIds.value)),z=(0,e.computed)(()=>I.value?.nextCursor??null),U=(0,e.computed)(()=>o.value?null:F.value?.previousCursor??null),X=(0,e.computed)(()=>!!z.value),oe=(0,e.computed)(()=>!!U.value),le=(0,e.computed)(()=>C.value&&r.value.length>0),ue=(0,e.computed)(()=>R(L(a.value),t.removedIds.value)),de=(0,e.computed)(()=>V(r.value,t.removedIds.value,M.value)),fe=(0,e.computed)(()=>!j.value.length&&!N.value&&!!s.value);(0,e.watch)(()=>j.value.length,e=>{if(e===0){i.value=0;return}o.value&&=(Ie(),!1),i.value>e-1&&(i.value=e-1)}),(0,e.watch)(()=>i.value,()=>{m.value&&De()}),(0,e.onMounted)(()=>{Ne()||t.resolve&&pe()}),(0,e.onBeforeUnmount)(()=>{_?.abort(),_=null,u.clear(!0)});async function pe(){v=pe;let e=await je({continueUntilFilled:w.value===`dynamic`,cursor:t.initialCursor??null,direction:`forward`,phase:`initializing`});e&&(r.value=e.buckets,i.value=0,Z())}async function me(){if(!(h.value||N.value)){if(!X.value)return le.value?Ae(`trailing`):void 0;if(w.value===`static`&&Fe(`trailing`))return Ae(`trailing`);await Oe(z.value)}}async function he(){if(!(h.value||!oe.value||N.value)){if(w.value===`static`&&Fe(`leading`))return Ae(`leading`);await ke(U.value)}}async function ge(){if(fe.value){if(r.value=[],i.value=0,a.value=[],o.value=!1,s.value=null,c.value=C.value?`initializing`:`idle`,l.value=null,f.value=null,p.value=!1,g.clear(),_?.abort(),_=null,u.clear(!0),Ne()){Z();return}await pe()}}async function _e(){if(fe.value)return ge();h.value||c.value!==`failed`||!v||(s.value=null,await v())}async function ve(){if(!a.value.length)return p.value=!1,Z();r.value=[...r.value,...a.value],a.value=[],p.value=!1,Z()}function ye(e){let n=j.value;if(!n.length)return;let r=A(e,0,n.length-1);r!==i.value&&(i.value=r,t.emit(`update:activeIndex`,r))}function be(e){m.value=e}function xe(){h.value=!0,u.clear(!0)}function Se(){h.value=!1}function Ce(){y+=1,_?.abort(),_=null,u.clear(!0),g.clear(),s.value=null,l.value=null,f.value=null,a.value.length>0&&(r.value=[...r.value,...a.value],a.value=[]),p.value=!1,o.value=!1,Z()}function we(){return q(j.value,M.value)}function Te(e=null,t={}){if(j.value.length===0){i.value=0,!t.preserveTrailingPlaceholder&&r.value.length>0&&(o.value=!0);return}if(e){let t=j.value.findIndex(t=>P(t)===e);if(t>=0){i.value=t;return}}if(t.preserveTrailingPlaceholder&&i.value>=j.value.length){i.value=j.value.length;return}i.value=J(j.value,M.value,e)}function Ee(){a.value.length>0&&!ue.value.length&&ve()}async function De(){if(!(!m.value||Pe())){if(!j.value.length){X.value&&await me();return}oe.value&&i.value<3&&await he(),X.value&&i.value>=j.value.length-3&&await me()}}async function Oe(e){v=async()=>{await Oe(e)};let t=await je({continueUntilFilled:w.value===`dynamic`,cursor:e,direction:`forward`,phase:`loading`});if(t){if(t.canceled)return r.value=[...r.value,...t.buckets],a.value=[],p.value=!1,Z();if(a.value=t.buckets,!ue.value.length)return r.value=[...r.value,...a.value],a.value=[],p.value=!1,Z();p.value=!0}}async function ke(e){v=async()=>{await ke(e)};let t=await je({continueUntilFilled:w.value===`dynamic`,cursor:e,direction:`backward`,phase:`loading`});if(!t)return;let n=we();r.value=[...t.buckets,...r.value],Te(n),Z()}async function Ae(e){if(v=async()=>{await Ae(e)},!t.resolve)return;let n=e===`leading`?F.value:I.value;if(!n)return;let i=k(n.cursor);if(g.has(i))return;g.add(i),s.value=null,c.value=`refreshing`,l.value=null,f.value=null;let a=++y,o=typeof AbortController>`u`?null:new AbortController;_=o;try{let e=await t.resolve({cursor:n.cursor,pageSize:T.value,signal:o?.signal});if(a!==y)return Z();let i=Me({cursor:n.cursor,nextCursor:e.nextPage,nextItems:e.items,previousCursor:e.previousPage??null,previousItems:n.items}),s=we();r.value=H(r.value,n.cursor,i),Te(s),Z()}catch(e){if(ee(e)||a!==y){Z();return}s.value=e instanceof Error?e.message:`The viewer could not load items.`,c.value=`failed`,l.value=null,f.value=null}finally{_===o&&(_=null),g.delete(i)}}async function je(e){if(!t.resolve)return null;let n=++y,r=new Set,i=[],a=e.cursor,o=0;for(s.value=null,c.value=e.phase,l.value=null,f.value=null;;){if(n!==y)return G(i,e.direction,t.removedIds.value,!0);if(i.length>0&&h.value)return G(i,e.direction,t.removedIds.value,!1);let d=k(a);if(r.has(d)||g.has(d))break;r.add(d),g.add(d);let p=typeof AbortController>`u`?null:new AbortController;_=p;try{let r=await t.resolve({cursor:a,pageSize:T.value,signal:p?.signal});if(n!==y)return G(i,e.direction,t.removedIds.value,!0);let s=Me({cursor:a,nextCursor:r.nextPage,nextItems:r.items,previousCursor:r.previousPage??null,previousItems:[]});i.push(s);let d=i.reduce((e,n)=>e+B(n,t.removedIds.value),0),m=e.direction===`forward`?s.nextCursor:s.previousCursor;if(!e.continueUntilFilled||d>=T.value||!m)return{canceled:!1,buckets:e.direction===`backward`?[...i].reverse():i,visibleCount:d};if(h.value)return G(i,e.direction,t.removedIds.value,!1);c.value=`filling`,l.value=d,f.value=T.value,o+=1;let g=re(o,x.value,S.value);if(await u.wait(g),n!==y)return G(i,e.direction,t.removedIds.value,!0);a=m}catch(r){return ee(r)||n!==y?G(i,e.direction,t.removedIds.value,!0):(s.value=r instanceof Error?r.message:`The viewer could not load items.`,c.value=`failed`,l.value=null,f.value=null,null)}finally{_===p&&(_=null),g.delete(d)}}return G(i,e.direction,t.removedIds.value,!1)}function Me(e){let t=W({cursor:e.cursor,nextCursor:e.nextCursor,nextItems:e.nextItems,previousCursor:e.previousCursor,previousItems:e.previousItems,sequence:b});return b=t.nextSequence,t.bucket}function Z(){c.value=`idle`,l.value=null,f.value=null,u.clear()}function Ne(){if(!t.initialState||!t.initialState.items.length)return!1;let e=K({initialState:t.initialState,removedIds:t.removedIds.value,sequence:b});return r.value=e.buckets,i.value=e.activeIndex,b=e.nextSequence,o.value=!1,s.value=null,a.value=[],p.value=!1,!0}function Pe(){return c.value===`initializing`}function Fe(e){return Y(e===`leading`?F.value:I.value,t.removedIds.value,T.value)}function Ie(){let e=r.value.findIndex(e=>B(e,t.removedIds.value)>0);if(e<0)return;let n=e;for(let i=r.value.length-1;i>=e;--i)if(B(r.value[i],t.removedIds.value)>0){n=i;break}r.value=r.value.slice(e,n+1)}return{activeIndex:M,canRetryInitialLoad:fe,cancel:Ce,canRefreshTrailingBoundary:le,commitPendingAppend:ve,currentCursor:de,errorMessage:s,fillCollectedCount:l,fillDelayRemainingMs:d,fillTargetCount:f,hasNextPage:X,hasPreviousPage:oe,isAutoPrefetchEnabled:m,isPageLoadingLocked:h,items:j,lockPageLoading:xe,loading:N,mode:w,maybePrefetchAround:De,nextCursor:z,pendingAppendItems:ue,phase:c,prefetchNextPage:me,prefetchPreviousPage:he,previousCursor:U,retryInitialLoad:ge,retry:_e,setActiveIndex:ye,setAutoPrefetchEnabled:be,syncActiveIndexAfterVisibilityChange:Te,unlockPageLoading:Se,getActiveOccurrenceKey:we,maybeCommitPendingAppendWhenFilteredOut:Ee}}function se(e,t){return e.find(e=>B(e,t)>0)??e[0]??null}function ce(e,t){for(let n=e.length-1;n>=0;--n){let r=e[n];if(B(r,t)>0)return r}return e[e.length-1]??null}function le(t,n){let{clearRemoved:r,getRemovedIds:i,remove:a,removedIds:o,restore:s,undo:c}=j(),l=oe({emit:n,fillDelayMs:t.fillDelayMs,fillDelayStepMs:t.fillDelayStepMs,initialCursor:t.initialCursor,initialState:t.initialState,mode:t.mode,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(C(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&&l.maybePrefetchAround(),s):s}function b(e){let t=l.getActiveOccurrenceKey(),n=s(e);return n.ids.length&&l.syncActiveIndexAfterVisibilityChange(t),n}function x(){let e=l.getActiveOccurrenceKey(),t=c();return t?.ids.length&&l.syncActiveIndexAfterVisibilityChange(e),t}function S(){let e=l.getActiveOccurrenceKey();r(),l.syncActiveIndexAfterVisibilityChange(e)}function C(e,t,n){return Math.min(Math.max(e,t),n)}function w(){l.cancel()}async function T(){await l.prefetchNextPage()}async function E(){await l.prefetchPreviousPage()}async function D(){await l.retry()}return{activeIndex:d,canRefreshExhaustedNextPage:_,canRetryInitialLoad:l.canRetryInitialLoad,cancel:w,clearRemoved:S,commitPendingAppend:l.commitPendingAppend,currentCursor:l.currentCursor,errorMessage:l.errorMessage,fillCollectedCount:l.fillCollectedCount,fillDelayRemainingMs:l.fillDelayRemainingMs,fillTargetCount:l.fillTargetCount,getRemovedIds:i,hasNextPage:p,hasPreviousPage:m,isPageLoadingLocked:l.isPageLoadingLocked,items:u,lockPageLoading:l.lockPageLoading,loading:f,loadNext:T,loadPrevious:E,mode:l.mode,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:b,retry:D,retryInitialLoad:l.retryInitialLoad,setActiveIndex:v,setAutoPrefetchEnabled:l.setAutoPrefetchEnabled,undo:x,unlockPageLoading:l.unlockPageLoading}}var ue=1024;function de(t,n){let r=le(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,fillDelayRemainingMs:null,fillTargetCount:null,hasNextPage:!1,hasPreviousPage:!1,itemCount:0,loadState:`loaded`,mode:`dynamic`,nextBoundaryLoadProgress:0,nextCursor:null,pageLoadingLocked:!1,phase:`idle`,previousBoundaryLoadProgress:0,previousCursor:null,removedCount:0,removedIds:[],surfaceMode:`list`}),c=(0,e.computed)(()=>a.value>=ue),l=(0,e.computed)(()=>c.value?o.value:`fullscreen`),u=(0,e.computed)(()=>c.value&&l.value===`fullscreen`);(0,e.watch)(c,e=>{e&&h()}),(0,e.watch)(()=>t.surfaceMode,()=>{h()}),(0,e.watch)([l,()=>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)(l,e=>{r.setAutoPrefetchEnabled(e===`fullscreen`)},{immediate:!0}),(0,e.watchEffect)(()=>{s.activeIndex=r.activeIndex.value,s.currentCursor=r.currentCursor.value,s.errorMessage=r.errorMessage.value,s.fillCollectedCount=r.fillCollectedCount.value,s.fillDelayRemainingMs=r.fillDelayRemainingMs.value,s.fillTargetCount=r.fillTargetCount.value,s.hasNextPage=r.hasNextPage.value,s.hasPreviousPage=r.hasPreviousPage.value,s.itemCount=r.items.value.length,s.loadState=r.loading.value?`loading`:r.errorMessage.value?`failed`:`loaded`,s.mode=r.mode.value,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.removedCount=r.removedCount.value,s.removedIds=r.getRemovedIds(),s.surfaceMode=l.value}),(0,e.onMounted)(()=>{m(),h(),window.addEventListener(`keydown`,p),window.addEventListener(`resize`,m)}),(0,e.onBeforeUnmount)(()=>{window.removeEventListener(`keydown`,p),window.removeEventListener(`resize`,m)});function d(e){r.setActiveIndex(e),c.value&&o.value!==`fullscreen`&&(o.value=`fullscreen`,n(`update:surfaceMode`,`fullscreen`))}function f(){!c.value||o.value===`list`||(o.value=`list`,n(`update:surfaceMode`,`list`))}function p(e){e.defaultPrevented||e.key!==`Escape`||!c.value||l.value!==`fullscreen`||T(e.target)||(e.preventDefault(),f())}function m(){a.value=window.innerWidth||0}function h(){!c.value||!t.surfaceMode||t.surfaceMode===o.value||(o.value=t.surfaceMode)}function g(e){i.nextBoundaryLoadProgress=fe(e.nextBoundaryLoadProgress),i.previousBoundaryLoadProgress=fe(e.previousBoundaryLoadProgress)}return{...r,cancel:r.cancel,isDesktop:c,lockPageLoading:r.lockPageLoading,loadNext:r.loadNext,loadPrevious:r.loadPrevious,openFullscreen:d,returnToList:f,retry:r.retry,setBoundaryLoadProgress:g,showBackToList:u,status:(0,e.readonly)(s),surfaceMode:l,unlockPageLoading:r.unlockPageLoading}}function fe(e){return Math.min(Math.max(e,0),1)}var pe={"data-testid":`vibe-media-bar`,class:`absolute inset-x-0 bottom-0 z-[5] bg-[linear-gradient(180deg,transparent,rgba(0,0,0,0.42)_24%,rgba(0,0,0,0.78))] px-[clamp(1rem,2.6vw,2.25rem)] pt-4 pb-[1.15rem]`},me={class:`grid grid-cols-[auto_minmax(0,1fr)_auto_auto] items-center gap-3 border-t border-white/12 bg-black/70 px-4 py-3 backdrop-blur-[18px]`},he={class:`text-[0.76rem] font-bold uppercase tracking-[0.18em] text-[#f7f1ea]/74`},ge={class:`relative h-4 w-full`},_e=[`max`,`value`,`disabled`],ve={class:`text-[0.76rem] font-bold uppercase tracking-[0.18em] text-[#f7f1ea]/74`},ye=[`data-layout`],be={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]`},xe={class:`relative flex h-28 w-4 items-center justify-center`},Se=[`value`],Ce={class:`flex items-center gap-3`},we=[`aria-label`],Te={key:0,class:`relative h-4 w-24`},Ee=[`value`],De=(0,e.defineComponent)({__name:`FullscreenMediaBar`,props:{currentTime:{},currentTimeLabel:{},duration:{},durationLabel:{},muted:{type:Boolean},progress:{},volume:{},volumeControlLayout:{}},emits:[`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)(()=>g(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 h(){if(!s.value){i(`volume-toggle`);return}if(!o.value){o.value=!0;return}i(`volume-toggle`)}function g(e,t,n){return Math.min(Math.max(e,t),n)}return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,pe,[(0,e.createElementVNode)(`div`,me,[(0,e.createElementVNode)(`span`,he,(0,e.toDisplayString)(r.currentTimeLabel),1),(0,e.createElementVNode)(`div`,ge,[n[3]||=(0,e.createElementVNode)(`div`,{class:`absolute inset-x-0 top-1/2 h-px -translate-y-1/2 bg-white/12`},null,-1),(0,e.createElementVNode)(`div`,{class:`absolute left-0 top-1/2 h-px -translate-y-1/2 bg-[#f7f1ea]`,style:(0,e.normalizeStyle)({width:`${r.progress}%`})},null,4),(0,e.createElementVNode)(`input`,{"data-swipe-lock":`true`,type:`range`,"aria-label":`Seek active media`,min:`0`,step:`0.1`,max:r.duration||1,value:r.currentTime,disabled:r.duration<=0,class:`vibe-media-slider absolute inset-0 z-10 h-4 w-full cursor-pointer bg-transparent disabled:cursor-default disabled:opacity-50`,onInput:n[0]||=e=>i(`seek-input`,e)},null,40,_e)]),(0,e.createElementVNode)(`span`,ve,(0,e.toDisplayString)(r.durationLabel),1),(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`,be,[(0,e.createElementVNode)(`div`,xe,[n[4]||=(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[1]||=e=>i(`volume-input`,e)},null,40,Se)])])):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`div`,Ce,[(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:h},[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)(u.value),{class:`h-4 w-4 stroke-[1.9]`,"aria-hidden":`true`}))],8,we),r.volumeControlLayout===`horizontal`?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Te,[n[5]||=(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[2]||=e=>i(`volume-input`,e)},null,40,Ee)])):(0,e.createCommentVNode)(``,!0)])],8,ye)])]))}}),Oe={class:`pointer-events-none absolute inset-0 z-[3] flex flex-col justify-between p-[clamp(1.25rem,2.6vw,2.25rem)]`},ke={class:`grid gap-4`},Ae={class:`flex min-h-11 items-center justify-between gap-4`},je={class:`min-w-0 flex flex-1 items-center gap-3`},Me={key:1,"data-testid":`vibe-title`,class:`m-0 truncate text-left text-[0.82rem] leading-none tracking-[-0.04em] min-[721px]:text-[1.2rem]`},Z={class:`pointer-events-auto flex shrink-0 items-center gap-2`},Ne={"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]`},Pe={class:`whitespace-nowrap`},Fe={key:1,class:`whitespace-nowrap border-l border-white/12 pl-2 text-[#f7f1ea]/56 min-[721px]:pl-3`},Ie={key:0,class:`grid gap-2 max-[720px]:justify-items-start`},Le=(0,e.defineComponent)({__name:`FullscreenHeader`,props:{currentIndex:{},loading:{type:Boolean},paginationDetail:{},showBackToList:{type:Boolean},showEndBadge:{type:Boolean},title:{},total:{}},emits:[`back-to-list`],setup(t,{emit:n}){let r=t,i=n;return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Oe,[(0,e.createElementVNode)(`div`,ke,[(0,e.createElementVNode)(`div`,Ae,[(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:`pointer-events-auto inline-flex h-11 w-11 shrink-0 items-center justify-center border border-white/14 bg-black/40 text-[#f7f1ea]/78 backdrop-blur-[18px] transition hover:border-white/28 hover:bg-black/55`,"aria-label":`Back to list`,onClick:n[0]||=e=>i(`back-to-list`)},[(0,e.createVNode)((0,e.unref)(u),{class:`h-4 w-4 stroke-[2.2]`,"aria-hidden":`true`})])):(0,e.createCommentVNode)(``,!0),r.title?((0,e.openBlock)(),(0,e.createElementBlock)(`h2`,Me,(0,e.toDisplayString)(r.title),1)):(0,e.createCommentVNode)(``,!0)]),(0,e.createElementVNode)(`div`,Z,[(0,e.createElementVNode)(`span`,Ne,[r.loading?((0,e.openBlock)(),(0,e.createBlock)((0,e.unref)(h),{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`,Pe,(0,e.toDisplayString)(r.currentIndex+1)+` / `+(0,e.toDisplayString)(r.total),1),r.paginationDetail?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,Fe,(0,e.toDisplayString)(r.paginationDetail),1)):(0,e.createCommentVNode)(``,!0)]),(0,e.renderSlot)(t.$slots,`actions`)])])]),r.showEndBadge?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Ie,[...n[1]||=[(0,e.createElementVNode)(`span`,{class:`inline-flex items-center border border-amber-300/35 bg-black/40 px-4 py-3 text-[0.74rem] font-bold uppercase tracking-[0.2em] text-amber-200 backdrop-blur-[18px]`},` End reached `,-1)]])):(0,e.createCommentVNode)(``,!0)]))}}),Re={image:m,video:f,audio:d,other:p},ze={image:`Image`,video:`Video`,audio:`Audio`,other:`File`};function Be(e){return Re[e]}function Ve(e){return ze[e]}var He=1,Ue=2;function We(e){function t(e,t){let n=t.title?.trim();return n?`${e} ${n}`:`${e} ${Ve(t.type).toLowerCase()}`}function n(e){return P(e)}function r(t){let n=e.resolvedActiveIndex.value;return!!e.active.value&&t>=n-He&&t<=n+Ue}function i(t,i){let a=n(i);return!r(t)||t!==e.resolvedActiveIndex.value||e.viewer.getAssetErrorKind(a)?!1:i.type===`image`?!e.viewer.isImageReady(a):i.type===`video`||i.type===`audio`?!e.viewer.isMediaReady(a):!1}function a(t){return e.viewer.getAssetErrorKind(n(t))}function o(t){return e.viewer.getAssetErrorLabel(n(t))??`Load error`}function s(t,n){return r(t)&&t===e.resolvedActiveIndex.value&&!!a(n)}function c(t,n){return r(t)?e.viewer.getImageSource(n):void 0}function l(e,t){return r(e)?t.url:void 0}return{getAssetErrorKind:a,getAssetErrorLabel:o,getFullscreenImageSource:c,getFullscreenMediaSource:l,getItemKey:n,getMediaActionLabel:t,isAssetErrored:s,isAssetLoading:i,shouldPreloadSlideAsset:r}}function Ge(t){if(!Array.isArray(t))return!1;for(let n of t){if(Array.isArray(n)){if(Ge(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(!Ke(n))return!0}return!1}function Ke(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?!Ge(t.children):!1}var qe=`no items available`;function Je(t){let n=(0,e.computed)(()=>t.loading.value||t.itemCount.value>0||t.emptyStateMode.value===`hidden`?null:{loading:!!t.loading.value,message:qe,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)(()=>Ge(r.value)),showInlineEmptyState:(0,e.computed)(()=>n.value?.mode===`inline`)}}function Ye(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 Xe(e){return e.phase?e.phase:e.loading?e.itemCount>0?`loading`:`initializing`:`idle`}function Ze(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 Qe(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 $e={currentTime:0,duration:0,errorKind:null,muted:!1,paused:!0,ready:!1,volume:1};function et(){return{...$e}}function tt(e){return e.complete&&!!(e.currentSrc||e.getAttribute(`src`))}function nt(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=rt(t,n)}function rt(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 it=new Map;function at(e){return e===`not-found`?`404`:`Load error`}function ot(e){return e===`generic`}function st(e){return ct(e).then(e=>e??`generic`)}function ct(e){let t=it.get(e);if(t)return t;let n=lt(e);return it.set(e,n),n}async function lt(e){if(!ut(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 ut(e){return/^(https?:\/\/|\/)/i.test(e)}function dt(e){try{let t=e.play();t&&typeof t.catch==`function`&&t.catch(()=>{})}catch{}}function ft(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?P(t.activeItem.value):null),d=(0,e.computed)(()=>t.activeMediaItem.value?P(t.activeMediaItem.value):null),f=(0,e.computed)(()=>{let e=new Map;for(let n of t.items.value)e.set(P(n),n);return e}),p=(0,e.computed)(()=>d.value?i.value[d.value]??$e:$e),m=(0,e.computed)(()=>d.value?p.value.duration:0),h=(0,e.computed)(()=>m.value<=0?0:pt(p.value.currentTime/m.value*100,0,100)),g=(0,e.computed)(()=>u.value?F(u.value):null);(0,e.watch)(()=>u.value,async()=>{await x()}),(0,e.watch)(()=>t.itemCount.value,async()=>{await x()}),(0,e.watch)(()=>t.loopFullscreenVideo.value,async()=>{await x()});function _(e,t){if(t instanceof HTMLVideoElement){s.set(e,t),U(e,t);return}s.delete(e)}function v(e,t){if(t instanceof HTMLAudioElement){c.set(e,t),U(e,t);return}c.delete(e)}function y(e,t){t instanceof HTMLImageElement&&tt(t)&&(n.value[e]=!0,r.value[e]=null,J(e,t.currentSrc||t.src||te(e)))}function b(){V(),a.value={},r.value={},n.value={},o.value={},i.value={},l.clear()}async function x(){if(!t.isEnabled.value){V();return}await(0,e.nextTick)();let n=u.value;for(let[e,r]of s.entries()){if(e!==n||i.value[e]?.errorKind){B(r,e);continue}r.muted=!1,r.loop=t.loopFullscreenVideo.value,r.playsInline=!0,dt(r),U(e,r)}for(let[e,t]of c.entries()){if(e!==n||i.value[e]?.errorKind){B(t,e);continue}dt(t),U(e,t)}}function S(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;U(e,n,t.type);let a=i.value[e]?.ready??!1;!r&&a&&J(e,n.currentSrc||n.src||te(e))}}function C(e,t){n.value[e]=!0,r.value[e]=null,J(e,t)}async function w(e,i){let a=Y(e)??t.activeItem.value;n.value[e]=!1,r.value[e]=`generic`;let o=await st(i);r.value[e]=o,a&&t.onAssetError?.({item:a,occurrenceKey:e,url:i,kind:o,surface:`fullscreen`})}async function T(e,n){let r=G(e),i=H(e),a=Y(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 st(n);i.errorKind=o,a&&t.onAssetError?.({item:a,occurrenceKey:e,url:n,kind:o,surface:`fullscreen`})}function E(e,t,n){e.button!==0||Date.now()<n||q(s.get(t)??null)}function D(e,t,n){e.button!==0||Date.now()<n||q(G(t))}function O(e){let t=K(),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=pt(r,0,m.value||0);ee(n,i,t),t.currentTime=i}function k(e){let t=K(),n=d.value;if(!t||!n||!(e.target instanceof HTMLInputElement))return;let r=pt(Number.parseFloat(e.target.value),0,1);t.volume=r,t.muted=r<=0,r>0&&(o.value[n]=r),U(n,t)}function A(){let e=K(),t=d.value;!e||!t||(e.muted||e.volume<=0?(e.volume=W(t),e.muted=!1,o.value[t]=e.volume):(o.value[t]=e.volume,e.muted=!0),U(t,e))}function j(e){return!!n.value[e]&&!r.value[e]}function M(e){return(i.value[e]?.ready??!1)&&!i.value[e]?.errorKind}function N(e){return e.url}function F(e){return r.value[e]??i.value[e]?.errorKind??null}function I(e){let t=F(e);return t?at(t):null}function L(e){return ot(F(e))}function R(e){return`${e}:${a.value[e]??0}`}async function z(t){if(!L(t))return;n.value[t]=!1,r.value[t]=null;let i=H(t);i.currentTime=0,i.duration=0,i.paused=!0,i.ready=!1,i.errorKind=null;let o=G(t);o&&B(o,t),l.forEach(e=>{e.startsWith(`${t}|`)&&l.delete(e)}),a.value[t]=(a.value[t]??0)+1,await(0,e.nextTick)(),await x()}function B(e,t){e.pause();try{e.currentTime=0}catch{}U(t,e)}function V(){for(let[e,t]of s.entries())B(t,e);for(let[e,t]of c.entries())B(t,e)}function H(e){return i.value[e]||(i.value[e]=et()),i.value[e]}function U(e,t,n){nt(H(e),t,n),!t.muted&&t.volume>0&&(o.value[e]=t.volume)}function ee(e,t,n){let r=H(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 W(e){return pt(o.value[e]??1,0,1)}function G(e){return s.get(e)??c.get(e)??null}function K(){return d.value?G(d.value):null}function q(e){if(e){if(e.paused){dt(e);return}e.pause()}}function J(e,n){let r=Y(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 Y(e){return f.value.get(e)??null}function te(e){return Y(e)?.url??null}return{activeAssetErrorKind:g,activeMediaDuration:m,activeMediaProgress:h,activeMediaState:p,getAssetErrorKind:F,getAssetErrorLabel:I,getAssetRenderKey:R,getImageSource:N,isImageReady:j,isMediaReady:M,canRetryAsset:L,mediaStates:i,onAudioCoverClick:D,onImageError:w,onImageLoad:C,onMediaError:T,onMediaEvent:S,onMediaSeekInput:O,onMediaVolumeInput:k,onMediaVolumeToggle:A,onVideoClick:E,registerAudioElement:v,registerImageElement:y,registerVideoElement:_,resetMediaState:b,retryAsset:z,syncMediaPlayback:x}}function pt(e,t,n){return Math.min(Math.max(e,t),n)}function mt(e,t,n=2){return t<=0?{start:0,end:-1}:{start:Math.max(0,e-n),end:Math.min(t-1,e+n)}}function ht(e,t,n=2){let r=mt(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 gt(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 _t(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)(()=>Xe({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),D=ft({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)(()=>Ze({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)(()=>mt(S.value,i.value.length)),P=(0,e.computed)(()=>ht(i.value,S.value));Qe({enabled:_,onDisable(){W(),D.resetMediaState()},onEnable(){return D.syncMediaPlayback()},onKeydown:K,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`||E(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),ee())}function U(e){!_.value||v!==e.pointerId||(p.value?.releasePointerCapture?.(e.pointerId),W())}function ee(){Math.abs(m.value)>=M.value&&(x=Date.now()+250,R(m.value<0?1:-1)),W()}function W(){m.value=0,h.value=!1,v=null}function G(e){if(!_.value||i.value.length===0||h.value||E(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 K(e){!_.value||i.value.length===0||T(e.target)||((e.key===`ArrowDown`||e.key===`PageDown`)&&(e.preventDefault(),R(1)),(e.key===`ArrowUp`||e.key===`PageUp`)&&(e.preventDefault(),R(-1)))}function q(e,t){D.onVideoClick(e,t,x)}function J(e,t){D.onAudioCoverClick(e,t,x)}function Y(e){D.onMediaSeekInput(e)}function te(e){D.onMediaVolumeInput(e)}function ne(){D.onMediaVolumeToggle()}function X(e){return e.type===`image`||e.type===`video`}function re(e){return e.type===`audio`}function ie(e){return gt(e,S.value,g.value,m.value,h.value)}return{activeItem:C,activeAssetErrorKind:D.activeAssetErrorKind,activeMediaDuration:D.activeMediaDuration,activeMediaItem:w,activeMediaProgress:D.activeMediaProgress,activeMediaState:D.activeMediaState,canRetryAsset:D.canRetryAsset,canRetryInitialLoad:f,errorMessage:o,getAssetErrorKind:D.getAssetErrorKind,getAssetErrorLabel:D.getAssetErrorLabel,getAssetRenderKey:D.getAssetRenderKey,formatPlaybackTime:Ye,getImageSource:D.getImageSource,getSlideStyle:ie,hasNextPage:c,isAtEnd:O,isAudio:re,isVisual:X,items:i,loading:s,mediaStates:D.mediaStates,isImageReady:D.isImageReady,isMediaReady:D.isMediaReady,onAudioCoverClick:J,onImageError:D.onImageError,onImageLoad:D.onImageLoad,onMediaEvent:D.onMediaEvent,onMediaError:D.onMediaError,onMediaSeekInput:Y,onMediaVolumeInput:te,onMediaVolumeToggle:ne,onPointerCancel:U,onPointerDown:B,onPointerMove:V,onPointerUp:H,onVideoClick:q,onWheel:G,registerAudioElement:D.registerAudioElement,registerImageElement:D.registerImageElement,registerVideoElement:D.registerVideoElement,renderedItems:P,renderedRange:N,resolvedActiveIndex:S,retryInitialLoad:async()=>{},retryAsset:D.retryAsset,stageRef:p,statusKind:A,statusMessage:j,paginationDetail:u,phase:d}}var vt=`bg-[linear-gradient(180deg,#0a0b10,#05060a)]`,yt=`bg-[linear-gradient(180deg,#0b0c11,#06070b)]`,bt={image:!0,video:!0,audio:!0,other:!0};function xt(e){return bt[e],vt}function St(e){return bt[e],yt}function Ct(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:wt(Math.round(i/r)),g:wt(Math.round(a/r)),b:wt(Math.round(o/r))}}catch{return null}}function wt(e){return Math.min(235,Math.max(26,e))}function Tt(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=Ct(r);i&&(n.value[e]=i)}return{activeStageToneStyle:a,activeSlideToneStyle:o,updateFromImageElement:s}}var Et=[`data-surface`],Dt=[`data-surface`],Ot=(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,Et)):((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,Dt)])],16))}}),kt={class:`relative h-full min-h-0 overflow-hidden bg-[#05060a] text-[#f7f1ea]`},At={key:0,class:`relative h-full min-h-0`},jt=[`data-item-id`,`data-occurrence-key`,`data-index`,`data-active`,`aria-hidden`],Mt={key:0,"data-testid":`vibe-asset-spinner`,class:`pointer-events-none absolute inset-0 z-[2] grid place-items-center`},Nt={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]`},Pt=[`data-kind`],Ft={class:`grid justify-items-center gap-4 border border-white/14 bg-black/45 px-8 py-7 text-center backdrop-blur-[18px]`},It={class:`m-0 text-[0.82rem] font-bold uppercase tracking-[0.28em] text-[#f7f1ea]/70`},Lt=[`onClick`],Rt=[`src`,`alt`,`onLoad`,`onError`],zt=[`loop`,`src`,`preload`,`onClick`,`onCanplay`,`onDurationchange`,`onEnded`,`onError`,`onLoadstart`,`onLoadedmetadata`,`onPause`,`onPlay`,`onPlaying`,`onSeeking`,`onSeeked`,`onStalled`,`onTimeupdate`,`onWaiting`],Bt={class:`relative grid aspect-square w-[clamp(320px,46vw,560px)] max-w-[calc(100vw-2.5rem)] place-items-center`},Vt=[`aria-label`,`disabled`,`onClick`],Ht={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]`},Ut={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]`},Wt={key:0,"data-testid":`vibe-asset-spinner`,class:`pointer-events-none absolute inset-0 z-[3] grid place-items-center`},Gt={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]`},Kt=[`data-kind`],qt={class:`m-0 text-[0.82rem] font-bold uppercase tracking-[0.28em] text-[#f7f1ea]/70`},Jt=[`onClick`],Yt=[`src`,`preload`,`onCanplay`,`onDurationchange`,`onError`,`onLoadstart`,`onLoadedmetadata`,`onPause`,`onPlay`,`onPlaying`,`onSeeking`,`onSeeked`,`onStalled`,`onTimeupdate`,`onWaiting`],Xt={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`},Zt={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]`},Qt={key:0,"data-testid":`vibe-fullscreen-overlay`,class:`pointer-events-none absolute inset-0 z-[6]`},$t={class:`h-full w-full`},en={key:1,"data-testid":`vibe-forward-fill-placeholder`,class:`grid h-full min-h-0 place-items-center px-6 text-center`},tn={class:`grid justify-items-center gap-4 border border-white/14 bg-black/40 px-8 py-7 backdrop-blur-[18px]`},nn={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)]`},rn={class:`m-0 text-[0.78rem] font-bold uppercase tracking-[0.24em] text-[#f7f1ea]/72`},an={key:0,"data-testid":`vibe-fullscreen-aside`,class:`h-full min-h-0 overflow-hidden border-l border-white/10 bg-black/45 backdrop-blur-[18px]`},on={class:`h-full min-h-0 overflow-y-auto overscroll-y-contain`},sn={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]`},cn={class:`h-full min-h-0 overflow-y-auto overscroll-y-contain`},ln=1280,un=768,dn=(0,e.defineComponent)({__name:`FullscreenSurface`,props:{active:{type:Boolean,default:!0},activeIndex:{default:0},emptyStateMode:{default:`inline`},errorMessage:{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=_t(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`?ln:window.innerWidth||ln),c=We({active:(0,e.toRef)(r,`active`),resolvedActiveIndex:o.resolvedActiveIndex,viewer:o}),l=(0,e.computed)(()=>xt(o.activeItem.value?.type??`image`)),{activeSlideToneStyle:u,activeStageToneStyle:d,updateFromImageElement:f}=Tt({activeItem:o.activeItem,getItemKey:c.getItemKey,isImageReady:o.isImageReady,showDominantImageTone:(0,e.toRef)(r,`showDominantImageTone`)}),p=(0,e.computed)(()=>o.activeMediaItem.value&&!o.activeAssetErrorKind.value?`bottom-[5.8rem] max-[720px]:bottom-[7.4rem]`:`bottom-[1.8rem] max-[720px]:bottom-[1.3rem]`),m=(0,e.computed)(()=>!!o.activeMediaItem.value&&!o.activeAssetErrorKind.value),y=(0,e.computed)(()=>s.value<un?`vertical`:`horizontal`),b=(0,e.computed)(()=>m.value?`pb-[5.75rem] max-[720px]:pb-[7rem]`:``),x=(0,e.computed)(()=>r.activeIndex>=r.items.length&&(r.loading||r.hasNextPage)),S=(0,e.computed)(()=>r.hasNextPage?`Loading more items`:o.statusMessage.value??`Loading more items`),C=(0,e.computed)(()=>{let e=o.activeItem.value;return e?{hasNextPage:r.hasNextPage,index:o.resolvedActiveIndex.value,item:e,loading:r.loading,paginationDetail:r.paginationDetail,total:r.items.length}:null}),w=(0,e.computed)(()=>!C.value||!i[`fullscreen-header-actions`]?[]:i[`fullscreen-header-actions`](C.value)),T=(0,e.computed)(()=>!C.value||!i[`fullscreen-aside`]?[]:i[`fullscreen-aside`](C.value)),E=(0,e.computed)(()=>!r.showStatusBadges||!C.value||!o.statusKind.value||!o.statusMessage.value?null:{...C.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)(()=>({gridTemplateColumns:j.value?`minmax(0, 1fr) 22rem`:`minmax(0, 1fr) 0rem`,transition:`grid-template-columns 320ms cubic-bezier(0.22, 1, 0.36, 1)`})),k=(0,e.computed)(()=>Ge(w.value)),A=(0,e.computed)(()=>Ge(T.value)),j=(0,e.computed)(()=>A.value&&s.value>=ln),M=(0,e.computed)(()=>A.value&&!j.value),N=(0,e.computed)(()=>Ge(D.value)),{emptyStateProps:P,showBadgeEmptyState:F,showCustomEmptyState:I,showInlineEmptyState:L}=Je({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`,R)}),(0,e.onBeforeUnmount)(()=>{window.removeEventListener(`resize`,R)});function R(){s.value=window.innerWidth||ln}function z(e,t,n){o.onImageLoad(t,n);let r=e.currentTarget;r instanceof HTMLImageElement&&V(t,r)}function B(e,t){o.registerImageElement(e,t),t instanceof HTMLImageElement&&V(e,t)}function V(e,t){f(e,t)}function H(e,t){if(o.onMediaEvent(t,e),!r.loopFullscreenVideo)return;let n=e.currentTarget;if(!(n instanceof HTMLVideoElement))return;try{n.currentTime=0}catch{}let i=n.play();i&&typeof i.catch==`function`&&i.catch(()=>{})}return(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,kt,[(0,e.createElementVNode)(`div`,{class:(0,e.normalizeClass)([`absolute inset-0 transition-[background] duration-200`,l.value]),style:(0,e.normalizeStyle)((0,e.unref)(d))},null,6),(0,e.createElementVNode)(`div`,{class:`relative z-[1] grid h-full min-h-0`,style:(0,e.normalizeStyle)(O.value)},[(0,e.createElementVNode)(`div`,{ref:`viewer.stageRef`,"data-testid":`vibe-stage`,class:`relative h-full min-h-0 touch-none overflow-hidden`,onPointerdown:n[1]||=(...t)=>(0,e.unref)(o).onPointerDown&&(0,e.unref)(o).onPointerDown(...t),onPointermove:n[2]||=(...t)=>(0,e.unref)(o).onPointerMove&&(0,e.unref)(o).onPointerMove(...t),onPointerup:n[3]||=(...t)=>(0,e.unref)(o).onPointerUp&&(0,e.unref)(o).onPointerUp(...t),onPointercancel:n[4]||=(...t)=>(0,e.unref)(o).onPointerCancel&&(0,e.unref)(o).onPointerCancel(...t),onWheel:n[5]||=(...t)=>(0,e.unref)(o).onWheel&&(0,e.unref)(o).onWheel(...t)},[(0,e.unref)(o).activeItem.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,At,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)((0,e.unref)(o).renderedItems.value,({item: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)(St)(i.type)]),style:(0,e.normalizeStyle)(a===(0,e.unref)(o).resolvedActiveIndex.value&&i.type===`image`?(0,e.unref)(u):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?b.value:``])},[(0,e.unref)(c).isAssetLoading(a,i)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Mt,[(0,e.createElementVNode)(`span`,Nt,[(0,e.createVNode)((0,e.unref)(h),{class:`h-5 w-5 animate-spin stroke-[1.9] text-[#f7f1ea]/78`,"aria-hidden":`true`})])])):(0,e.createCommentVNode)(``,!0),(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`,Ft,[(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`,It,(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,Lt)):(0,e.createCommentVNode)(``,!0)])],8,Pt)):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=>B((0,e.unref)(c).getItemKey(i),t),onLoad:t=>z(t,(0,e.unref)(c).getItemKey(i),i.url),onError:t=>(0,e.unref)(o).onImageError((0,e.unref)(c).getItemKey(i),i.url)},null,42,Rt)):((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).shouldPreloadSlideAsset(a)?`metadata`:`none`,ref_for:!0,ref:t=>(0,e.unref)(o).registerVideoElement((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:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onDurationchange:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onEnded:t=>H(t,(0,e.unref)(c).getItemKey(i)),onError:t=>(0,e.unref)(o).onMediaError((0,e.unref)(c).getItemKey(i),i.url),onLoadstart:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onLoadedmetadata:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onPause:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onPlay:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onPlaying:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onSeeking:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onSeeked:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onStalled:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onTimeupdate:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onWaiting:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t)},null,42,zt))],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?b.value:``])},[(0,e.createElementVNode)(`div`,Bt,[(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))},[n[6]||=(0,e.createElementVNode)(`span`,{class:`pointer-events-none absolute inset-0 border border-white/8 bg-[radial-gradient(circle,rgba(16,185,129,0.16),transparent_66%)]`},null,-1),n[7]||=(0,e.createElementVNode)(`span`,{class:`pointer-events-none absolute h-[clamp(220px,30vw,360px)] w-[clamp(220px,30vw,360px)] border border-white/8 bg-[radial-gradient(circle,rgba(255,255,255,0.08),transparent_62%)]`},null,-1),(0,e.createElementVNode)(`span`,Ht,[(0,e.renderSlot)(t.$slots,`item-icon`,{icon:(0,e.unref)(Be)(i.type),item:i},()=>[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)((0,e.unref)(Be)(i.type)),{class:`h-6 w-6 stroke-[1.9]`,"aria-hidden":`true`}))])]),(0,e.createElementVNode)(`span`,Ut,[((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,Vt),(0,e.unref)(c).isAssetLoading(a,i)?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Wt,[(0,e.createElementVNode)(`span`,Gt,[(0,e.createVNode)((0,e.unref)(h),{class:`h-5 w-5 animate-spin stroke-[1.9] text-[#f7f1ea]/78`,"aria-hidden":`true`})])])):(0,e.createCommentVNode)(``,!0),(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`,qt,(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,Jt)):(0,e.createCommentVNode)(``,!0)],8,Kt)],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).shouldPreloadSlideAsset(a)?`metadata`:`none`,class:`pointer-events-none absolute h-px w-px opacity-0`,ref_for:!0,ref:t=>(0,e.unref)(o).registerAudioElement((0,e.unref)(c).getItemKey(i),t),onCanplay:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onDurationchange:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onError:t=>(0,e.unref)(o).onMediaError((0,e.unref)(c).getItemKey(i),i.url),onLoadstart:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onLoadedmetadata:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onPause:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onPlay:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onPlaying:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onSeeking:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onSeeked:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onStalled:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onTimeupdate:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t),onWaiting:t=>(0,e.unref)(o).onMediaEvent((0,e.unref)(c).getItemKey(i),t)},null,40,Yt))],2)):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Xt,[(0,e.createElementVNode)(`div`,Zt,[(0,e.renderSlot)(t.$slots,`item-icon`,{icon:(0,e.unref)(Be)(i.type),item:i},()=>[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)((0,e.unref)(Be)(i.type)),{class:`h-6 w-6 stroke-[1.9]`,"aria-hidden":`true`}))])])]))],14,jt))),128)),C.value&&i[`fullscreen-overlay`]?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Qt,[(0,e.createElementVNode)(`div`,$t,[(0,e.renderSlot)(t.$slots,`fullscreen-overlay`,(0,e.normalizeProps)((0,e.guardReactiveProps)(C.value)))])])):(0,e.createCommentVNode)(``,!0),(0,e.unref)(o).activeItem.value?((0,e.openBlock)(),(0,e.createBlock)(Le,{key:1,"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,"show-end-badge":r.showEndBadge&&(0,e.unref)(o).isAtEnd.value&&!(0,e.unref)(o).hasNextPage.value&&!(0,e.unref)(o).loading.value,title:(0,e.unref)(o).activeItem.value.title??null,total:(0,e.unref)(o).items.value.length,onBackToList:n[0]||=e=>a(`back-to-list`)},(0,e.createSlots)({_:2},[k.value&&C.value?{name:`actions`,fn:(0,e.withCtx)(()=>[(0,e.renderSlot)(t.$slots,`fullscreen-header-actions`,(0,e.normalizeProps)((0,e.guardReactiveProps)(C.value)))]),key:`0`}:void 0]),1032,[`current-index`,`loading`,`pagination-detail`,`show-back-to-list`,`show-end-badge`,`title`,`total`])):(0,e.createCommentVNode)(``,!0),m.value?((0,e.openBlock)(),(0,e.createBlock)(De,{key:2,"current-time":(0,e.unref)(o).activeMediaState.value.currentTime,"current-time-label":(0,e.unref)(o).formatPlaybackTime((0,e.unref)(o).activeMediaState.value.currentTime),duration:(0,e.unref)(o).activeMediaDuration.value,"duration-label":(0,e.unref)(o).formatPlaybackTime((0,e.unref)(o).activeMediaDuration.value),muted:(0,e.unref)(o).activeMediaState.value.muted,progress:(0,e.unref)(o).activeMediaProgress.value,volume:(0,e.unref)(o).activeMediaState.value.volume,"volume-control-layout":y.value,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`,`volume`,`volume-control-layout`,`onSeekInput`,`onVolumeInput`,`onVolumeToggle`])):(0,e.createCommentVNode)(``,!0),E.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:3,class:(0,e.normalizeClass)([`absolute left-1/2 z-[4] -translate-x-1/2`,p.value])},[N.value?(0,e.renderSlot)(t.$slots,`fullscreen-status`,(0,e.normalizeProps)((0,e.mergeProps)({key:0},E.value))):((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/14 bg-black/40 px-5 py-3 text-[0.75rem] font-bold uppercase tracking-[0.18em] text-[#f7f1ea]/74 backdrop-blur-[18px] max-[720px]:w-[calc(100%-2.5rem)] max-[720px]:justify-center`,E.value.kind===`end`?`border-amber-300/35 text-amber-200`:E.value.kind===`failed`?`border-rose-400/45 text-rose-100`:``])},(0,e.toDisplayString)(E.value.message),3))],2)):(0,e.createCommentVNode)(``,!0)])):x.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,en,[(0,e.createElementVNode)(`div`,tn,[(0,e.createElementVNode)(`span`,nn,[(0,e.createVNode)((0,e.unref)(h),{class:`h-5 w-5 animate-spin stroke-[1.9] text-[#f7f1ea]/78`,"aria-hidden":`true`})]),(0,e.createElementVNode)(`p`,rn,(0,e.toDisplayString)(S.value),1)])])):(0,e.unref)(L)&&(0,e.unref)(P)?((0,e.openBlock)(),(0,e.createBlock)(Ot,{key:2,message:(0,e.unref)(P).message,mode:(0,e.unref)(P).mode,surface:(0,e.unref)(P).surface},{default:(0,e.withCtx)(()=>[(0,e.unref)(I)?(0,e.renderSlot)(t.$slots,`empty-state`,(0,e.normalizeProps)((0,e.mergeProps)({key:0},(0,e.unref)(P)))):(0,e.createCommentVNode)(``,!0)]),_:3},8,[`message`,`mode`,`surface`])):(0,e.createCommentVNode)(``,!0),(0,e.unref)(F)&&(0,e.unref)(P)?((0,e.openBlock)(),(0,e.createBlock)(Ot,{key:3,message:(0,e.unref)(P).message,mode:(0,e.unref)(P).mode,surface:(0,e.unref)(P).surface},{default:(0,e.withCtx)(()=>[(0,e.unref)(I)?(0,e.renderSlot)(t.$slots,`empty-state`,(0,e.normalizeProps)((0,e.mergeProps)({key:0},(0,e.unref)(P)))):(0,e.createCommentVNode)(``,!0)]),_:3},8,[`message`,`mode`,`surface`])):(0,e.createCommentVNode)(``,!0)],544),(0,e.createVNode)(e.Transition,{"enter-active-class":`transform-gpu transition-all duration-320 ease-out`,"enter-from-class":`translate-x-full opacity-0`,"enter-to-class":`translate-x-0 opacity-100`,"leave-active-class":`transform-gpu transition-all duration-260 ease-in`,"leave-from-class":`translate-x-0 opacity-100`,"leave-to-class":`translate-x-full opacity-0`},{default:(0,e.withCtx)(()=>[j.value&&C.value?((0,e.openBlock)(),(0,e.createElementBlock)(`aside`,an,[(0,e.createElementVNode)(`div`,on,[(0,e.renderSlot)(t.$slots,`fullscreen-aside`,(0,e.normalizeProps)((0,e.guardReactiveProps)(C.value)))])])):(0,e.createCommentVNode)(``,!0)]),_:3})],4),(0,e.createVNode)(e.Transition,{"enter-active-class":`transform-gpu transition-all duration-320 ease-out`,"enter-from-class":`translate-x-full opacity-0`,"enter-to-class":`translate-x-0 opacity-100`,"leave-active-class":`transform-gpu transition-all duration-260 ease-in`,"leave-from-class":`translate-x-0 opacity-100`,"leave-to-class":`translate-x-full opacity-0`},{default:(0,e.withCtx)(()=>[M.value&&C.value?((0,e.openBlock)(),(0,e.createElementBlock)(`aside`,sn,[(0,e.createElementVNode)(`div`,cn,[(0,e.renderSlot)(t.$slots,`fullscreen-aside`,(0,e.normalizeProps)((0,e.guardReactiveProps)(C.value)))])])):(0,e.createCommentVNode)(``,!0)]),_:3})]))}}),fn=1,pn=.5;function mn(e){if(e.type!==`image`&&e.type!==`video`)return{width:fn,height:fn,source:`fallback`};let t=e.preview?.width,n=e.preview?.height;if(xn(t)&&xn(n)){let r=Sn(e,t,n);return{width:r.width,height:r.height,source:`preview`}}if(xn(e.width)&&xn(e.height)){let t=Sn(e,e.width,e.height);return{width:t.width,height:t.height,source:`original`}}return{width:fn,height:fn,source:`fallback`}}function hn(e,t){return!e||e<=0||!t||t<=0?1:Math.max(1,Math.floor(e/t))}function gn(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 _n(e,t){let n=mn(e);return n.height/n.width*t}function vn(e,t){let n=Array.from({length:t.columnCount},()=>0),r=Array(e.length),i=Array(e.length),a=new Map,o=new Map,s=0;for(let c=0;c<e.length;c+=1){let l=e[c];o.set(P(l),c);let u=0;for(let e=1;e<n.length;e+=1)n[e]<n[u]&&(u=e);let d=u*(t.columnWidth+t.gapX),f=n[u],p=_n(l,t.columnWidth);r[c]={x:d,y:f},i[c]=p,n[u]=f+p+t.gapY,s=Math.max(s,f+p);let m=Math.floor(f/t.bucketPx),h=Math.floor((f+p)/t.bucketPx);for(let e=m;e<=h;e+=1){let t=a.get(e);t?t.push(c):a.set(e,[c])}}return{positions:r,heights:i,buckets:a,contentHeight:s,indexById:o}}function yn(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 bn(e,t,n){let r=new Map;for(let i of e){let e=t.get(P(i));if(e==null)continue;let a=n[e];a&&r.set(P(i),a)}return r}function xn(e){return typeof e==`number`&&Number.isFinite(e)&&e>0}function Sn(e,t,n){return e.type!==`image`||n/t>=pn?{width:t,height:n}:{width:t,height:t}}var Cn=300,wn=600,Tn=40,En=300,Dn=400;function On(e,t){return t===`top`?[...e].reverse():e}function kn(e){return e<=0?wn:wn+Math.min((e-1)*Tn,Dn)}function An(){return En}function jn(e){let t=e.itemHeight>0?e.itemHeight:e.columnWidth;return e.direction===`top`?e.scrollTop-t:e.scrollTop+e.viewportHeight+t}function Mn(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]?P(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=On(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*Tn,Dn));i.value=c,Nn(()=>{let e=new Set(r.value);for(let t of o)e.add(t);r.value=e}),Pn(()=>{let e=new Set(n.value);for(let t of o)e.delete(t);n.value=e,x(()=>{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},kn(o.length))})},{flush:`post`}),(0,e.watch)(()=>t.items.value.map(e=>P(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,t=`bottom`){if(!e.length)return;let r=new Set(n.value),i=new Map(a.value);for(let n of e){let e=P(n);r.add(e),i.set(e,t)}n.value=r,a.value=i}function h(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=P(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,Nn(()=>{let e=new Set(s.value);for(let t of p)e.add(t);s.value=e}),x(()=>{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},En)}function g(e,n,r=Cn){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,Nn(()=>{u.value=new Set(a),Nn(()=>{c.value=new Map})}),x(()=>{u.value=new Set;let e=new Map(l.value);for(let t of a)e.delete(t);l.value=e},r)}function _(e){if(r.value.has(e))return`transform ${wn}ms ease-out`;if(u.value.has(e))return`transform ${l.value.get(e)??Cn}ms ease-out`}function v(e){if(!r.value.has(e))return;let t=i.value.get(e)??0;return t>0?`${t}ms`:void 0}function y(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?P(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)?jn({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 b(e){let n=P(e),r=o.value.get(n);if(!r)return{opacity:`0`,transform:`translate3d(0, 0, 0) scale(0.96)`,transition:`opacity ${En}ms ease-out, transform ${En}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 ${En}ms ease-out, transform ${En}ms ease-out`,width:`${t.columnWidth.value}px`}}function x(e,t){let n=setTimeout(()=>{f.delete(n),e()},t);f.add(n)}return{getCardTransform:y,getCardTransition:_,getCardTransitionDelay:v,getLeavingCardStyle:b,leavingItems:p,markEnter:m,markLeave:h,playFlipMoveAnimation:g}}function Nn(e){if(typeof requestAnimationFrame==`function`){requestAnimationFrame(()=>e());return}setTimeout(e,0)}function Pn(e){Nn(()=>Nn(e))}function Fn(e,t){return e?.clientHeight||Math.round(e?.getBoundingClientRect().height??0)||t||window.innerHeight||1}function In(e,t,n){return e?.clientWidth||Math.round(e?.getBoundingClientRect().width??0)||t||window.innerWidth||n}function Ln(e,t,n,r){return(e?.scrollHeight??r)-(t+n)}function Rn(e,t){return{height:`${e}px`,transform:`translate3d(0, ${t}px, 0)`}}var zn=250,Bn=1e3;function Vn(t){let n=(0,e.ref)(!1),r=(0,e.ref)(!1),i=(0,e.ref)(0),a=(0,e.ref)(0),o=(0,e.ref)(!1),s=(0,e.ref)(!1),c=0,l=null;(0,e.onBeforeUnmount)(()=>{b()});function u(){let e=n.value;if(n.value=t.isAtBoundary(),!n.value){!o.value&&!s.value&&(r.value=!0);return}!e&&r.value&&h()}function d(e){if(!x(e)||!t.isAtBoundary())return;let n=Date.now();n<c||(c=n+zn,h())}function f(){if(!_())return;let e=t.requestPage.value;if(typeof e!=`function`)return;a.value=i.value,r.value=!1,o.value=!0,s.value=!0;let n;try{n=e()}catch{v();return}Promise.resolve(n).catch(()=>{}).finally(()=>{!t.loading.value&&s.value&&v()})}function p(e){!e&&s.value&&v()}function m(e){!s.value||e<=0||(s.value=!1,y(t.getAnimationLockMs(e)))}function h(){g()&&(i.value+=1)}function g(){return t.hasPage.value&&!t.interactionLocked?.value&&!t.loading.value&&!o.value&&typeof t.requestPage.value==`function`}function _(){return t.hasPage.value&&n.value&&i.value>a.value&&!t.interactionLocked?.value&&!t.loading.value&&!o.value&&typeof t.requestPage.value==`function`}function v(){s.value=!1,y(Bn)}function y(e){b(),o.value=!0,l=setTimeout(()=>{l=null,o.value=!1},Math.max(0,e))}function b(){l&&=(clearTimeout(l),null)}function x(e){return t.direction===`top`?e.deltaY<0:e.deltaY>0}return{maybeRequestPage:f,onItemsMutated:m,onLoadingChange:p,onWheel:d,syncBoundary:u}}var Hn=600,Q=24,$=16,Un=300,Wn=200,Gn=200,Kn=Q+$,qn=200,Jn=300,Yn=24,Xn=48,Zn=500,Qn=1e3;function $n(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||Un),o=(0,e.ref)([]),s=(0,e.ref)([]),c=(0,e.ref)(new Map),l=(0,e.ref)(0),u=(0,e.ref)(new Map),d=(0,e.ref)(null),f=(0,e.ref)(null),p=(0,e.ref)(!1),m=(0,e.computed)(()=>Math.max(Un,a.value-Q*2)),h=(0,e.computed)(()=>hn(m.value,Un)),g=(0,e.computed)(()=>gn(m.value,h.value,Un,$)),_=(0,e.computed)(()=>er(t.activeIndex.value,0,Math.max(0,t.items.value.length-1))),v=(0,e.computed)(()=>yn({itemCount:t.items.value.length,viewportHeight:i.value,scrollTop:r.value,overscanPx:Wn,bucketPx:Hn,buckets:c.value})),y=(0,e.computed)(()=>v.value.map(e=>({item:t.items.value[e],index:e}))),b=(0,e.computed)(()=>{let e=l.value+Q*2,t=d.value??0;return Math.max(e,t,i.value)+qn}),x=(0,e.computed)(()=>t.hasNextPage.value||t.allowExhaustedNextPageRefresh.value),S=(0,e.computed)(()=>nr({active:t.active.value,maxScrollTop:X(),progressDistancePx:r.value,thresholdPx:Gn,triggerEnabled:x.value})),C=(0,e.computed)(()=>t.items.value.length>0?`${_.value+1} / ${t.items.value.length}`:`0 / 0`),w=(0,e.computed)(()=>tr({active:t.active.value,maxScrollTop:X(),progressDistancePx:r.value,thresholdPx:Kn,triggerEnabled:t.hasPreviousPage.value})),T=(0,e.computed)(()=>Math.max(0,i.value-Yn*2)),E=(0,e.computed)(()=>b.value>i.value+1&&T.value>0),D=(0,e.computed)(()=>{if(!E.value)return 0;let e=i.value/b.value*T.value;return Math.min(T.value,Math.max(Xn,e))}),O=(0,e.computed)(()=>{if(!E.value)return Yn;let e=Math.max(0,b.value-i.value);return Yn+Math.max(0,T.value-D.value)*(e>0?er(r.value/e,0,1):0)}),k=Mn({items:t.items,visibleIndices:v,positions:o,heights:s,indexById:u,columnWidth:g,scrollTop:r,viewportHeight:i}),A=Vn({direction:`top`,getAnimationLockMs(e){return Math.max(Zn,kn(e))+Qn},hasPage:t.hasPreviousPage,interactionLocked:p,isAtBoundary(){return r.value<=Kn},loading:t.loading,requestPage:t.requestPreviousPage}),j=Vn({direction:`bottom`,getAnimationLockMs(e){return kn(e)+Qn},hasPage:x,interactionLocked:p,isAtBoundary(){return ne()<=Gn},loading:t.loading,requestPage:t.requestNextPage}),M=null,N=0,F=null,I=null,L=!1;(0,e.watch)([()=>t.items.value,h,g],async([n],[i=[]])=>{let a=n.map(e=>P(e)),s=i??[],c=s.map(e=>P(e)),l=bn(s,u.value,o.value),d=ae(s),f=new Set(c),p=new Set(a),m=n.filter(e=>!f.has(P(e))),h=s.flatMap(e=>{let t=P(e);if(p.has(t))return[];let n=l.get(t),r=d.get(t);return!n||r==null?[]:[{height:r,item:e,position:n}]}),g=a.length>c.length&&c.length>0&&a[0]!==c[0],v=n.length===0&&s.length>0&&h.length>0&&r.value>0,y=h.length>0&&r.value>Q+$,b=g&&r.value>Q+$?n[_.value]:null,x=b?P(b):null;y&&W(An()+Qn),v&&ee(),R(),h.length>0&&k.markLeave(h),m.length>0&&(k.markEnter(m,g?`top`:`bottom`),g?A.onItemsMutated(m.length):j.onItemsMutated(m.length)),k.playFlipMoveAnimation(l,new Set(m.map(e=>P(e))),g?Zn:void 0),x?(await(0,e.nextTick)(),U(x,l)):t.active.value&&c.length>0&&K()},{immediate:!0}),(0,e.watch)([()=>t.pendingAppendItems.value.map(e=>P(e)),h,g,i],([e])=>{se(),e.length&&(d.value=ie([...t.items.value,...t.pendingAppendItems.value]),oe())},{immediate:!0}),(0,e.watch)(()=>t.active.value,async(t,a)=>{let o=n.value;if(!o)return;if(!t){f.value=o.scrollTop;return}if(a!==!1||f.value==null)return;await(0,e.nextTick)();let s=Math.max(0,b.value-i.value),c=er(f.value,0,s);o.scrollTop=c,r.value=c,A.syncBoundary(),j.syncBoundary()}),(0,e.watch)(()=>t.loading.value,async n=>{!n&&!t.pendingAppendItems.value.length&&!F&&!L&&(d.value=null),A.onLoadingChange(n),j.onLoadingChange(n),await(0,e.nextTick)()}),(0,e.onMounted)(async()=>{J(),await(0,e.nextTick)(),_.value>0?H(_.value,`center`):G(),A.syncBoundary(),j.syncBoundary(),typeof ResizeObserver<`u`?(M=new ResizeObserver(()=>{J()}),n.value&&M.observe(n.value)):window.addEventListener(`resize`,J)}),(0,e.onBeforeUnmount)(()=>{M?.disconnect(),M=null,window.removeEventListener(`resize`,J),se(),ce(),N&&=(cancelAnimationFrame(N),0)});function R(){let e=vn(t.items.value,{columnCount:h.value,columnWidth:g.value,gapX:$,gapY:$,bucketPx:Hn});o.value=e.positions.map(e=>({x:e.x+Q,y:e.y+Q})),s.value=e.heights,c.value=e.buckets,l.value=e.contentHeight,u.value=e.indexById}function z(){t.active.value&&(r.value=n.value?.scrollTop??0,i.value=Y(),A.syncBoundary(),j.syncBoundary(),q(),!K()&&(N||=requestAnimationFrame(()=>{N=0,G()})))}function B(e){t.active.value&&(A.onWheel(e),j.onWheel(e),q())}function V(e){let n=t.items.value[e],r=n?P(n):``;return{height:`${s.value[e]??g.value}px`,width:`${g.value}px`,transition:r?k.getCardTransition(r):void 0,transitionDelay:r?k.getCardTransitionDelay(r):void 0,transform:k.getCardTransform(e)}}function H(e,t){let a=n.value,c=o.value[e],l=s.value[e];if(!a||!c||!l)return;let u=a.scrollTop,d=Math.max(0,b.value-i.value);t===`center`?u=c.y-(i.value-l)/2:c.y<a.scrollTop?u=c.y-Q:c.y+l>a.scrollTop+i.value&&(u=c.y+l-i.value+Q),a.scrollTop=er(u,0,d),r.value=a.scrollTop,G()}function U(e,t){let i=n.value,a=t.get(e),s=u.value.get(e),c=s==null?null:o.value[s];if(!i||!a||!c)return;let l=c.y-a.y;i.scrollTop+=l,r.value=i.scrollTop}function ee(){let e=n.value;if(!e){r.value=0;return}e.scrollTop=0,r.value=0,A.syncBoundary(),j.syncBoundary()}function W(e){ce(),p.value=!0,I=setTimeout(()=>{I=null,p.value=!1},Math.max(0,e))}function G(){if(!v.value.length||K())return;let e=r.value+i.value/2,n=_.value,a=1/0;for(let t of v.value){let r=o.value[t],i=s.value[t];if(!r||!i)continue;let c=r.y+i/2,l=Math.abs(c-e);l<a&&(a=l,n=t)}t.setActiveIndex(n)}function K(){let e=r.value<=Kn,n=ne()<=Gn;return e?(t.setActiveIndex(0),!0):n?(t.setActiveIndex(Math.max(0,t.items.value.length-1)),!0):!1}function q(){A.maybeRequestPage(),j.maybeRequestPage()}function J(){i.value=Y(),a.value=te()}function Y(){return Fn(n.value,i.value)}function te(){return In(n.value,a.value,Un)}function ne(){return Ln(n.value,r.value,i.value,b.value)}function X(){let e=Math.max(n.value?.scrollHeight??0,b.value);return Math.max(0,e-i.value)}function re(){return Rn(D.value,O.value)}function ie(e){return e.length?vn(e,{columnCount:h.value,columnWidth:g.value,gapX:$,gapY:$,bucketPx:Hn}).contentHeight+Q*2:0}function ae(e){let t=new Map;for(let n of e){let e=P(n),r=u.value.get(e);if(r==null)continue;let i=s.value[r];i!=null&&t.set(e,i)}return t}function oe(){let n=t.commitPendingAppend.value;typeof n==`function`&&(F=setTimeout(async()=>{F=null,L=!0;try{if(!t.pendingAppendItems.value.length)return;await n(),await(0,e.nextTick)(),await(0,e.nextTick)()}finally{d.value=null,L=!1}},Jn))}function se(){F&&=(clearTimeout(F),null)}function ce(){I&&(clearTimeout(I),I=null,p.value=!1)}return{columnWidth:g,containerHeight:b,getCardStyle:V,getLeavingCardStyle:k.getLeavingCardStyle,getScrollbarThumbStyle:re,leavingItems:k.leavingItems,nextBoundaryLoadProgress:S,onScroll:z,onWheel:B,paginationLabel:C,previousBoundaryLoadProgress:w,renderedItems:y,resolvedActiveIndex:_,scrollToIndex:H,showScrollbar:E,scrollViewportRef:n}}function er(e,t,n){return Math.min(Math.max(e,t),n)}function tr(e){if(!e.active||!e.triggerEnabled)return 0;let t=Math.max(0,e.maxScrollTop-e.thresholdPx);return t<=0?1:er(1-(e.progressDistancePx-e.thresholdPx)/t,0,1)}function nr(e){if(!e.active||!e.triggerEnabled)return 0;let t=Math.max(0,e.maxScrollTop-e.thresholdPx);return t<=0?1:er(e.progressDistancePx/t,0,1)}function rr(e){if(e)try{e.removeAttribute(`src`),e.src=``}catch{}}function ir(e){if(e){try{e.currentTime=0}catch{}e.pause();try{e.removeAttribute(`src`),e.load()}catch{}}}function ar(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 or(e){if(!e)return null;try{return new URL(e,window.location.href).href}catch{return e}}var sr=/\.(avif|gif|jpe?g|png|svg|webp)(\?|#|$)/i,cr=/\.(m4v|mov|mp4|mpeg|ogg|ogv|webm)(\?|#|$)/i,lr=/^(?:(?:https?:)?\/\/[^/]+)?\/api\/files\/[^/?#]+\/(?:preview|downloaded)(?:\?|#|$)/i;function ur(e){let t=dr(e),n=t?.url,r=mn(e),i=e.title?.trim()||Ve(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`&&pr(e,n)?{kind:`video`,url:n,width:r.width,height:r.height,label:i}:typeof n==`string`&&fr(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 dr(e){return e.preview?.url?e.preview:typeof e.url!=`string`||e.url.trim()===``?null:{url:e.url}}function fr(e,t){return e.type!==`image`||typeof t!=`string`?!1:sr.test(t)||mr(t)}function pr(e,t){return e.type!==`video`||typeof t!=`string`?!1:cr.test(t)||hr(t)}function mr(e){return/^(https?:\/\/|\/\/|\/(?!\/)|\.{1,2}\/|blob:|data:)/i.test(e)}function hr(e){return lr.test(e)||/^blob:/i.test(e)||/^data:video\//i.test(e)}var gr={maxGlobal:10,maxPerDomain:4,maxVideoPerDomain:2};function _r(e=gr){let t=new Map,n=new Map,r=0;function i(e){let i={...e,domain:br(e.url),enqueuedAt:r,id:`vibe-asset-load-${r+=1}`};return n.set(i.id,i),a(),{cancel(){(n.delete(i.id)||t.delete(i.id))&&a()},refresh(){a()},release(){(t.delete(i.id)||n.delete(i.id))&&a()}}}function a(){if(n.size===0)return;let r=[...n.values()].sort((e,t)=>{let n=yr(e)-yr(t);return n===0?e.enqueuedAt-t.enqueuedAt:n});for(let i of r){if(t.size>=e.maxGlobal)return;if(o(i)){n.delete(i.id),t.set(i.id,i);try{i.onGrant()}catch{t.delete(i.id)}}}}function o(n){let r=[...t.values()].filter(e=>e.domain===n.domain);return!(r.length>=e.maxPerDomain||n.assetType===`video`&&r.filter(e=>e.assetType===`video`).length>=e.maxVideoPerDomain)}return{request:i}}var vr=_r();function yr(e){try{let t=e.getPriority();return Number.isFinite(t)?t:1/0}catch{return 1/0}}function br(e){try{return new URL(e).hostname||`local`}catch{return`local`}}function xr(t){let n=(0,e.ref)(null),r=(0,e.computed)(()=>{let e=typeof t.item.value.healthCheck?.url==`string`?or(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=vr.request({assetType:`probe`,getPriority:t.getPriority,onGrant(){let e=r.value;if(!e){l();return}let i=++a;ct(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:P(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 Sr=[`aria-label`],Cr={key:0,"data-testid":`vibe-list-card-spinner`,class:`pointer-events-none absolute inset-0 z-[4] grid place-items-center bg-black/18`},wr={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]`},Tr=[`src`,`alt`],Er=[`src`],Dr=[`data-kind`],Or={class:`grid justify-items-center gap-3 px-4 text-center`},kr={class:`text-[0.68rem] font-bold uppercase tracking-[0.22em] text-[#f7f1ea]/72`},Ar={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))]`},jr={class:`inline-flex h-14 w-14 items-center justify-center border border-white/16 bg-black/20`},Mr={class:`pointer-events-none absolute inset-0 z-[3]`},Nr=(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)(()=>ur(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),m=(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=xr({attachedAssetUrl:y,getPriority:W,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)(()=>ot(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`){m.value=null,o.value=!0,I();return}m.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:m.value,threshold:[0,1]}),O.observe(p.value)}),(0,e.onBeforeUnmount)(()=>{R(),C.release(),O?.disconnect(),O=null});function j(){G(f.value)&&(l.value=!0,d.value=null,V(y.value??r.item.url),z())}async function M(){if(!G(f.value))return;let e=y.value??r.item.url;l.value=!1,d.value=`generic`;let t=await st(e);d.value=t,r.reportAssetError?.({item:r.item,occurrenceKey:P(r.item),url:e,kind:t,surface:`grid`}),z()}function N(){G(g.value)&&(u.value=!0,l.value=!0,d.value=null,V(y.value??r.item.url),z(),L())}function F(){G(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=vr.request({assetType:a.value.kind,getPriority:W,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,dt(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(),ee()),z()}function z(){k?.release(),k=null}function B(e){let t=p.value;if(!t){o.value=!0;return}o.value=ar(e?.boundingClientRect??t.getBoundingClientRect(),e?.rootBounds??m.value?.getBoundingClientRect()??null)}function V(e){if(!e)return;let t=P(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=P(r.item);A.forEach(t=>{t.startsWith(`${e}|`)&&A.delete(t)}),d.value=null,l.value=!1,_.value=!1,z(),I()}function U(){rr(f.value)}function ee(){ir(g.value)}function W(){let e=p.value;if(!e)return 1/0;let t=e.getBoundingClientRect();if(m.value){let e=m.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 G(e){let t=or(y.value);return!e||!t?!1:or(`currentSrc`in e&&e.currentSrc||e.getAttribute(`src`))===t}function K(){i(`open`)}function q(){s.value=!0}function J(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:q,onFocusout:J,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:K},null,8,Sr),D.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Cr,[(0,e.createElementVNode)(`span`,wr,[(0,e.createVNode)((0,e.unref)(h),{class:`h-5 w-5 animate-spin stroke-[1.9] text-[#f7f1ea]/78`,"aria-hidden":`true`})])])):(0,e.createCommentVNode)(``,!0),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,Tr)):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:N,onError:M,onLoadstart:F,onPlaying:N,onStalled:F,onWaiting:F},null,42,Er)):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`,Or,[(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`,kr,(0,e.toDisplayString)((0,e.unref)(at)(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,Dr)):((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Ar,[(0,e.createElementVNode)(`div`,jr,[(0,e.renderSlot)(t.$slots,`item-icon`,{icon:(0,e.unref)(Be)(r.item.type),item:r.item},()=>[((0,e.openBlock)(),(0,e.createBlock)((0,e.resolveDynamicComponent)((0,e.unref)(Be)(r.item.type)),{class:`h-6 w-6 stroke-[1.8] text-[#f7f1ea]/78`,"aria-hidden":`true`}))])])])),(0,e.createElementVNode)(`div`,Mr,[(0,e.renderSlot)(t.$slots,`grid-item-overlay`,{active:r.active,focused:s.value,hovered:c.value,index:r.index,item:r.item,openFullscreen:K})])],34))}}),Pr={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)]`},Fr={class:`pointer-events-none absolute inset-x-0 top-0 z-[2] flex justify-end p-6`},Ir={"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]`},Lr={class:`whitespace-nowrap`},Rr={key:0,class:`whitespace-nowrap border-l border-white/12 pl-2 text-[#f7f1ea]/56 min-[721px]:pl-3`},zr=[`data-active`,`data-index`,`data-item-id`,`data-occurrence-key`],Br=[`data-item-id`],Vr={key:0,class:`pointer-events-none absolute inset-y-0 right-0 z-[3] hidden w-8 min-[1024px]:block`},Hr={key:1,class:`pointer-events-none absolute inset-x-0 bottom-0 z-[2] px-5 pb-5 sm:px-6`},Ur={class:`mx-auto flex w-full justify-center`},Wr=(0,e.defineComponent)({__name:`ListSurface`,props:{active:{type:Boolean,default:!0},activeIndex:{default:0},allowExhaustedNextPageRefresh:{type:Boolean,default:!1},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,{emit:n}){let r=t,i=(0,e.useSlots)(),a=n,o=$n({active:(0,e.toRef)(r,`active`),allowExhaustedNextPageRefresh:(0,e.toRef)(r,`allowExhaustedNextPageRefresh`),items:(0,e.toRef)(r,`items`),activeIndex:(0,e.toRef)(r,`activeIndex`),loading:(0,e.toRef)(r,`loading`),hasNextPage:(0,e.toRef)(r,`hasNextPage`),hasPreviousPage:(0,e.toRef)(r,`hasPreviousPage`),paginationDetail:(0,e.toRef)(r,`paginationDetail`),pendingAppendItems:(0,e.toRef)(r,`pendingAppendItems`),commitPendingAppend:(0,e.toRef)(r,`commitPendingAppend`),requestNextPage:(0,e.toRef)(r,`requestNextPage`),requestPreviousPage:(0,e.toRef)(r,`requestPreviousPage`),setActiveIndex(e){a(`update:activeIndex`,e)}}),s=(0,e.computed)(()=>Xe({itemCount:r.items.length,loading:r.loading,phase:r.phase})),c=(0,e.computed)(()=>Ze({errorMessage:r.errorMessage,hasItems:r.items.length>0,hasNextPage:r.hasNextPage,phase:s.value,surface:`grid`})),l=(0,e.computed)(()=>!r.showStatusBadges||!c.value?null:{activeIndex:o.resolvedActiveIndex.value,kind:c.value.kind,loading:r.loading,message:c.value.message,paginationDetail:r.paginationDetail,total:r.items.length}),u=(0,e.computed)(()=>!l.value||!i[`grid-status`]?[]:i[`grid-status`](l.value)),d=(0,e.computed)(()=>Ge(u.value)),f=(0,e.computed)(()=>r.items.length+o.leavingItems.value.length),{emptyStateProps:p,showBadgeEmptyState:m,showCustomEmptyState:h,showInlineEmptyState:g}=Je({emptyStateMode:(0,e.toRef)(r,`emptyStateMode`),itemCount:f,loading:(0,e.toRef)(r,`loading`),renderSlot:i[`empty-state`],surface:`grid`});return(0,e.watch)([o.nextBoundaryLoadProgress,o.previousBoundaryLoadProgress],([e,t])=>{a(`boundary-load-progress`,{nextBoundaryLoadProgress:e,previousBoundaryLoadProgress:t})},{immediate:!0}),(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Pr,[(0,e.createElementVNode)(`div`,Fr,[(0,e.createElementVNode)(`span`,Ir,[(0,e.createElementVNode)(`span`,Lr,(0,e.toDisplayString)((0,e.unref)(o).paginationLabel.value),1),r.paginationDetail?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,Rr,(0,e.toDisplayString)(r.paginationDetail),1)):(0,e.createCommentVNode)(``,!0)])]),(0,e.createElementVNode)(`div`,{ref:(0,e.unref)(o).scrollViewportRef,"data-testid":`vibe-list-scroll`,class:`h-full min-h-0 overflow-y-auto overflow-x-hidden [overflow-anchor:none] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden`,onScroll:n[0]||=(...t)=>(0,e.unref)(o).onScroll&&(0,e.unref)(o).onScroll(...t),onWheel:n[1]||=(...t)=>(0,e.unref)(o).onWheel&&(0,e.unref)(o).onWheel(...t)},[(0,e.createElementVNode)(`div`,{"data-testid":`vibe-list-content`,class:`relative`,style:(0,e.normalizeStyle)({height:`${(0,e.unref)(o).containerHeight.value}px`})},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)((0,e.unref)(o).renderedItems.value,({item:n,index:s})=>((0,e.openBlock)(),(0,e.createElementBlock)(`article`,{key:(0,e.unref)(P)(n),"data-testid":`vibe-list-card`,"data-active":s===(0,e.unref)(o).resolvedActiveIndex.value?`true`:`false`,"data-index":s,"data-item-id":n.id,"data-occurrence-key":(0,e.unref)(P)(n),class:`absolute will-change-transform`,style:(0,e.normalizeStyle)((0,e.unref)(o).getCardStyle(s))},[(0,e.createVNode)(Nr,{active:s===(0,e.unref)(o).resolvedActiveIndex.value,index:s,item:n,"report-asset-error":r.reportAssetError,"report-asset-load":r.reportAssetLoad,"surface-active":r.active,onOpen:e=>a(`open-fullscreen`,s)},(0,e.createSlots)({_:2},[i[`grid-item-overlay`]?{name:`grid-item-overlay`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`grid-item-overlay`,(0,e.mergeProps)({ref_for:!0},n))]),key:`0`}:void 0,i[`item-icon`]?{name:`item-icon`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`item-icon`,(0,e.mergeProps)({ref_for:!0},n))]),key:`1`}:void 0]),1032,[`active`,`index`,`item`,`report-asset-error`,`report-asset-load`,`surface-active`,`onOpen`])],12,zr))),128)),((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)((0,e.unref)(o).leavingItems.value,n=>((0,e.openBlock)(),(0,e.createElementBlock)(`article`,{key:`leaving-${(0,e.unref)(P)(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)(o).getLeavingCardStyle(n.item))},[(0,e.createVNode)(Nr,{active:!1,index:-1,item:n.item,"report-asset-error":r.reportAssetError,"report-asset-load":r.reportAssetLoad,"surface-active":!1},(0,e.createSlots)({_:2},[i[`item-icon`]?{name:`item-icon`,fn:(0,e.withCtx)(n=>[(0,e.renderSlot)(t.$slots,`item-icon`,(0,e.mergeProps)({ref_for:!0},n))]),key:`0`}:void 0]),1032,[`item`,`report-asset-error`,`report-asset-load`])],12,Br))),128)),(0,e.unref)(g)&&(0,e.unref)(p)?((0,e.openBlock)(),(0,e.createBlock)(Ot,{key:0,message:(0,e.unref)(p).message,mode:(0,e.unref)(p).mode,surface:(0,e.unref)(p).surface},{default:(0,e.withCtx)(()=>[(0,e.unref)(h)?(0,e.renderSlot)(t.$slots,`empty-state`,(0,e.normalizeProps)((0,e.mergeProps)({key:0},(0,e.unref)(p)))):(0,e.createCommentVNode)(``,!0)]),_:3},8,[`message`,`mode`,`surface`])):(0,e.createCommentVNode)(``,!0)],4)],544),(0,e.unref)(o).showScrollbar.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Vr,[n[2]||=(0,e.createElementVNode)(`div`,{class:`absolute bottom-6 right-3 top-6 w-px bg-white/8`},null,-1),(0,e.createElementVNode)(`div`,{"data-testid":`vibe-list-scrollbar-thumb`,class:(0,e.normalizeClass)([`absolute right-[0.625rem] w-1 bg-white/34 transition-[height,transform,background-color,opacity] duration-300 ease-out`,r.loading?`bg-white/52`:`bg-white/34`]),style:(0,e.normalizeStyle)((0,e.unref)(o).getScrollbarThumbStyle())},null,6)])):(0,e.createCommentVNode)(``,!0),i[`grid-footer`]?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,Hr,[(0,e.createElementVNode)(`div`,Ur,[(0,e.renderSlot)(t.$slots,`grid-footer`)])])):(0,e.createCommentVNode)(``,!0),l.value?((0,e.openBlock)(),(0,e.createElementBlock)(`div`,{key:2,class:(0,e.normalizeClass)([`pointer-events-none absolute inset-x-0 bottom-0 z-[3] flex justify-center px-6`,i[`grid-footer`]?`pb-24`:`pb-6`])},[d.value?(0,e.renderSlot)(t.$slots,`grid-status`,(0,e.normalizeProps)((0,e.mergeProps)({key:0},l.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]`,l.value.kind===`end`?`border-amber-300/35 text-amber-200`:l.value.kind===`failed`?`border-rose-400/45 text-rose-100`:``])},(0,e.toDisplayString)(l.value.message),3))],2)):(0,e.createCommentVNode)(``,!0),(0,e.unref)(m)&&(0,e.unref)(p)?((0,e.openBlock)(),(0,e.createBlock)(Ot,{key:3,class:(0,e.normalizeClass)([`z-[3]`,i[`grid-footer`]?`pb-24`:`pb-6`]),message:(0,e.unref)(p).message,mode:(0,e.unref)(p).mode,surface:(0,e.unref)(p).surface},{default:(0,e.withCtx)(()=>[(0,e.unref)(h)?(0,e.renderSlot)(t.$slots,`empty-state`,(0,e.normalizeProps)((0,e.mergeProps)({key:0},(0,e.unref)(p)))):(0,e.createCommentVNode)(``,!0)]),_:3},8,[`class`,`message`,`mode`,`surface`])):(0,e.createCommentVNode)(``,!0)]))}}),Gr=[`data-surface-mode`],Kr={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`},qr=[`data-visible`,`inert`],Jr=[`data-visible`,`inert`],Yr={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`},Xr=(0,e.defineComponent)({name:`VibeLayout`,__name:`Layout`,props:{emptyStateMode:{},fillDelayMs:{},fillDelayStepMs:{},initialCursor:{},initialState:{},loopFullscreenVideo:{type:Boolean},mode:{},pageSize:{},paginationDetail:{},resolve:{type:Function},showDominantImageTone:{type:Boolean},showEndBadge:{type:Boolean},showStatusBadges:{type:Boolean},surfaceMode:{}},emits:[`asset-errors`,`asset-loads`,`update:activeIndex`,`update:surfaceMode`],setup(t,{expose:n,emit:r}){let i=t,a=(0,e.useSlots)(),o=r,s=de(i,o),c=S(e=>{o(`asset-errors`,e)}),l=C(e=>{o(`asset-loads`,e)});return(0,e.onBeforeUnmount)(()=>{c.stop(),l.stop()}),n({cancel:s.cancel,clearRemoved:s.clearRemoved,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`,Kr,(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)(Wr,{active:(0,e.unref)(s).surfaceMode.value===`list`,"allow-exhausted-next-page-refresh":(0,e.unref)(s).canRefreshExhaustedNextPage.value,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)(c).report,"report-asset-load":(0,e.unref)(l).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`,`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,qr),[[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)(dn,{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,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)(c).report,"report-asset-load":(0,e.unref)(l).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-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:`3`}: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:`4`}: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:`5`}:void 0]),1032,[`items`,`active`,`active-index`,`error-message`,`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`])],8,Jr),[[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.openBlock)(),(0,e.createElementBlock)(`div`,Yr,[(0,e.createVNode)((0,e.unref)(h),{class:`size-10 animate-spin text-[#f7f1ea]/82`,"aria-hidden":`true`}),n[1]||=(0,e.createElementVNode)(`p`,{class:`m-0 text-[0.9rem] font-semibold uppercase tracking-[0.22em] text-[#f7f1ea]/72`},` Loading... `,-1)])):((0,e.openBlock)(),(0,e.createBlock)(dn,{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,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)(c).report,"report-asset-load":(0,e.unref)(l).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-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:`3`}: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:`4`}: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:`5`}:void 0]),1032,[`items`,`active-index`,`error-message`,`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,Gr))}}),Zr={install(e){e.component(`VibeLayout`,Xr)}};exports.VibeLayout=Xr,exports.VibePlugin=Zr,exports.default=Zr;
package/lib/index.js CHANGED
@@ -3487,7 +3487,7 @@ var si = ["aria-label"], ci = {
3487
3487
  }, Di = {
3488
3488
  key: 1,
3489
3489
  class: "pointer-events-none absolute inset-x-0 bottom-0 z-[2] px-5 pb-5 sm:px-6"
3490
- }, Oi = { class: "mx-auto flex w-full max-w-[1600px] justify-center" }, ki = /* @__PURE__ */ d({
3490
+ }, Oi = { class: "mx-auto flex w-full justify-center" }, ki = /* @__PURE__ */ d({
3491
3491
  __name: "ListSurface",
3492
3492
  props: {
3493
3493
  active: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wyxos/vibe",
3
- "version": "3.1.5",
3
+ "version": "3.1.6",
4
4
  "description": "A Vue 3 media viewer for large feeds of image, video, audio, and mixed-content items.",
5
5
  "keywords": [
6
6
  "vue",