nuxt-devtools-observatory 0.1.25 → 0.1.28

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,6 +1,8 @@
1
- # nuxt-devtools-observatory
1
+ [![provide/inject Graph](https://github.com/victorlmneves/nuxt-devtools-observatory/blob/main/docs/public/nuxt-devtools-observatory-readme.png)](https://github.com/victorlmneves/nuxt-devtools-observatory/blob/main/docs/public/nuxt-devtools-observatory-readme.png)
2
2
 
3
- Nuxt DevTools extension providing five missing observability features:
3
+ # Nuxt DevTools Observatory
4
+
5
+ Nuxt DevTools module providing five missing observability features:
4
6
 
5
7
  - **useFetch Dashboard** — central view of all async data calls, cache keys, waterfall timeline
6
8
  - **provide/inject Graph** — interactive tree showing the full injection topology, value inspection, scope labels, shadow detection, and missing-provider warnings
@@ -8,6 +10,15 @@ Nuxt DevTools extension providing five missing observability features:
8
10
  - **Render Heatmap** — component tree colour-coded by render frequency and duration, with per-render timeline, route filtering, and persistent-component accuracy fixes
9
11
  - **Transition Tracker** — live timeline of every `<Transition>` lifecycle event with phase, duration, and cancellation state
10
12
 
13
+ ## Documentation website
14
+
15
+ An in-repo docs site is available in `docs/` (Docus + Nuxt Content).
16
+
17
+ - Run locally from repo root: `pnpm docs:dev`
18
+ - Production build: `pnpm docs:build`
19
+
20
+ Vercel deployment is configured to use `docs/` as the project root directory.
21
+
11
22
  ## Installation
12
23
 
13
24
  ```bash
@@ -24,9 +35,11 @@ You can configure all observability features and limits from your consuming proj
24
35
  - `composableTracker` (boolean) — Enable composable tracker
25
36
  - `renderHeatmap` (boolean) — Enable render heatmap
26
37
  - `transitionTracker` (boolean) — Enable transition tracker
38
+ - `composableNavigationMode` (string, 'route' | 'session') — Composable tracker mode: 'route' clears entries on page navigation (default), 'session' persists entries across navigation for historical inspection
27
39
  - `heatmapThresholdCount` (number) — Highlight components with N+ renders in heatmap
28
40
  - `heatmapThresholdTime` (number) — Highlight components with render time above this (ms)
29
41
  - `heatmapHideInternals` (boolean) — Hide node_modules and internal components in the render heatmap for a cleaner view
42
+ - `debugRpc` (boolean) — Enable RPC handshake debug logs in the Observatory iframe/host bridge (set via `OBSERVATORY_DEBUG_RPC`)
30
43
  - `maxFetchEntries` (number) — Max fetch entries to keep in memory
31
44
  - `maxPayloadBytes` (number) — Max payload size (bytes) per fetch entry
32
45
  - `maxTransitions` (number) — Max transition entries to keep in memory
@@ -48,9 +61,11 @@ export default defineNuxtConfig({
48
61
  composableTracker: true, // Enable composable tracker
49
62
  renderHeatmap: true, // Enable render heatmap
50
63
  transitionTracker: true, // Enable transition tracker
64
+ composableNavigationMode: 'route', // 'route' clears entries on navigation (default), 'session' persists across navigation
51
65
  heatmapThresholdCount: 5, // Highlight components with 5+ renders
52
66
  heatmapThresholdTime: 1600, // Highlight components with render time above this (ms)
53
67
  heatmapHideInternals: true, // Hide node_modules and internal components in the render heatmap
68
+ debugRpc: false, // Enable RPC handshake debug logs (useful for troubleshooting)
54
69
  maxFetchEntries: 200, // Max fetch entries to keep in memory
55
70
  maxPayloadBytes: 10000, // Max payload size (bytes) per fetch entry
56
71
  maxTransitions: 500, // Max transition entries to keep in memory
@@ -65,7 +80,7 @@ export default defineNuxtConfig({
65
80
 
66
81
  Open the Nuxt DevTools panel — five new tabs will appear.
67
82
 
68
- The DevTools client SPA runs on a dedicated Vite development server (port **4949**).
83
+ The DevTools client SPA is served same-origin via the Nuxt dev server at `/__observatory/`.
69
84
 
70
85
  ## How it works
71
86
 
@@ -136,22 +151,17 @@ wraps them with a tracking shim (`__trackComposable`) that:
136
151
 
137
152
  The panel provides:
138
153
 
139
- - **Filtering** by status (all / mounted / unmounted / leaks only) and free-text search
140
- across composable name, source file, ref key names, and ref values
141
- - **Inline ref chip preview** — up to three reactive values shown on the card without
142
- expanding, with distinct styling for `ref`, `computed`, and `reactive` types
143
- - **Global state badges** — keys shared across instances are highlighted in amber with
144
- a `global` badge and an explanatory banner when expanded
145
- - **Change history** — a scrollable log of the last 50 value mutations with key, new
146
- value, and relative timestamp
147
- - **Lifecycle summary** — shows whether `onMounted`/`onUnmounted` were registered and
148
- whether watchers and intervals were properly cleaned up
149
- - **Reverse lookup** — clicking any ref key opens a panel listing every other composable
150
- instance that exposes a key with the same name, with its composable name, file, and route
151
- - **Inline value editing** — writable `ref` values have an `edit` button; clicking opens
152
- a JSON textarea that applies the new value directly to the live ref in the running app
153
- - **Jump to editor** — an `open ↗` button in the context section opens the composable's
154
- source file in the configured editor
154
+ - **Navigation mode toggle** switch between 'route' mode (clears entries on navigation) and 'session' mode (persists entries across pages). In session mode, a "clear session" button appears to manually reset the history
155
+ - **Filtering** by status (all / mounted / unmounted / leaks only) and free-text search across composable name, source file, ref key names, and ref values
156
+ - **Recency-first ordering** — newest entries appear first, with layout-level composables pinned to the top (layout composables persist across page navigation)
157
+ - **Inline ref chip preview** — up to three reactive values shown on the card without expanding, with distinct styling for `ref`, `computed`, and `reactive` types
158
+ - **Collapsible ref values** — long objects and arrays automatically collapse with a chevron toggle to expand them inline in the detail view with full pretty-printed JSON
159
+ - **Global state badges** — keys shared across instances are highlighted in amber with a `global` badge and an explanatory banner when expanded
160
+ - **Change history** — a scrollable log of the last 50 value mutations with key, new value, and relative timestamp
161
+ - **Lifecycle summary** — shows whether `onMounted`/`onUnmounted` were registered and whether watchers and intervals were properly cleaned up
162
+ - **Reverse lookup** — clicking any ref key opens a panel listing every other composable instance that exposes a key with the same name, with its composable name, file, and route
163
+ - **Inline value editing** writable `ref` values have an `edit` button; clicking opens a JSON textarea that applies the new value directly to the live ref in the running app
164
+ - **Jump to editor** — an `open ↗` button in the context section opens the composable's source file in the configured editor
155
165
 
156
166
  **Known gaps:**
157
167
 
@@ -238,8 +248,8 @@ CSS/JS timing detection:
238
248
 
239
249
  The Transitions tab shows a live timeline with name, direction, phase, duration,
240
250
  parent component, and cancellation state for every transition fired on the page.
241
- Data is bridged from the Nuxt app (port 3000) to the Observatory SPA (port 4949)
242
- via `postMessage` since the two origins are cross-origin inside the DevTools iframe.
251
+ Data is bridged between host app and Observatory using Nuxt DevTools RPC + Vite WS
252
+ events (`observatory:snapshot` / `observatory:command`) on the same dev server origin.
243
253
 
244
254
  ## Opting out
245
255
 
@@ -272,6 +282,9 @@ pnpm dev
272
282
  # Run tests
273
283
  pnpm test
274
284
 
285
+ # Format + lint fixes
286
+ pnpm format
287
+
275
288
  # Build the module (client SPA + Nuxt module)
276
289
  pnpm build
277
290
  ```
@@ -287,7 +300,7 @@ src/
287
300
  │ ├── composable-transform.ts ← AST wraps useX() composables
288
301
  │ └── transition-transform.ts ← Virtual vue proxy — overrides Transition export
289
302
  ├── runtime/
290
- │ ├── plugin.ts ← Client runtime bootstrap + postMessage bridge
303
+ │ ├── plugin.ts ← Client runtime bootstrap + RPC/Vite WS bridge
291
304
  │ └── composables/
292
305
  │ ├── fetch-registry.ts ← Fetch tracking store + __devFetch shim
293
306
  │ ├── provide-inject-registry.ts ← Injection tracking + __devProvide/__devInject
@@ -0,0 +1,17 @@
1
+ (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))n(o);new MutationObserver(o=>{for(const l of o)if(l.type==="childList")for(const r of l.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&n(r)}).observe(document,{childList:!0,subtree:!0});function s(o){const l={};return o.integrity&&(l.integrity=o.integrity),o.referrerPolicy&&(l.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?l.credentials="include":o.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function n(o){if(o.ep)return;o.ep=!0;const l=s(o);fetch(o.href,l)}})();/**
2
+ * @vue/shared v3.5.30
3
+ * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
+ * @license MIT
5
+ **/function Vn(e){const t=Object.create(null);for(const s of e.split(","))t[s]=1;return s=>s in t}const _e={},Gt=[],rt=()=>{},Go=()=>!1,Zs=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Un=e=>e.startsWith("onUpdate:"),Te=Object.assign,Bn=(e,t)=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)},pi=Object.prototype.hasOwnProperty,me=(e,t)=>pi.call(e,t),Z=Array.isArray,Yt=e=>ks(e)==="[object Map]",en=e=>ks(e)==="[object Set]",ro=e=>ks(e)==="[object Date]",le=e=>typeof e=="function",Ce=e=>typeof e=="string",at=e=>typeof e=="symbol",ge=e=>e!==null&&typeof e=="object",Yo=e=>(ge(e)||le(e))&&le(e.then)&&le(e.catch),Xo=Object.prototype.toString,ks=e=>Xo.call(e),hi=e=>ks(e).slice(8,-1),Qo=e=>ks(e)==="[object Object]",Kn=e=>Ce(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,fs=Vn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),tn=e=>{const t=Object.create(null);return(s=>t[s]||(t[s]=e(s)))},vi=/-\w/g,Xe=tn(e=>e.replace(vi,t=>t.slice(1).toUpperCase())),mi=/\B([A-Z])/g,Vt=tn(e=>e.replace(mi,"-$1").toLowerCase()),Zo=tn(e=>e.charAt(0).toUpperCase()+e.slice(1)),pn=tn(e=>e?`on${Zo(e)}`:""),it=(e,t)=>!Object.is(e,t),Ps=(e,...t)=>{for(let s=0;s<e.length;s++)e[s](...t)},el=(e,t,s,n=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:s})},sn=e=>{const t=parseFloat(e);return isNaN(t)?e:t},gi=e=>{const t=Ce(e)?Number(e):NaN;return isNaN(t)?e:t};let ao;const nn=()=>ao||(ao=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ee(e){if(Z(e)){const t={};for(let s=0;s<e.length;s++){const n=e[s],o=Ce(n)?xi(n):Ee(n);if(o)for(const l in o)t[l]=o[l]}return t}else if(Ce(e)||ge(e))return e}const _i=/;(?![^(]*\))/g,bi=/:([^]+)/,yi=/\/\*[^]*?\*\//g;function xi(e){const t={};return e.replace(yi,"").split(_i).forEach(s=>{if(s){const n=s.split(bi);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function oe(e){let t="";if(Ce(e))t=e;else if(Z(e))for(let s=0;s<e.length;s++){const n=oe(e[s]);n&&(t+=n+" ")}else if(ge(e))for(const s in e)e[s]&&(t+=s+" ");return t.trim()}const wi="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",$i=Vn(wi);function tl(e){return!!e||e===""}function Ci(e,t){if(e.length!==t.length)return!1;let s=!0;for(let n=0;s&&n<e.length;n++)s=Ts(e[n],t[n]);return s}function Ts(e,t){if(e===t)return!0;let s=ro(e),n=ro(t);if(s||n)return s&&n?e.getTime()===t.getTime():!1;if(s=at(e),n=at(t),s||n)return e===t;if(s=Z(e),n=Z(t),s||n)return s&&n?Ci(e,t):!1;if(s=ge(e),n=ge(t),s||n){if(!s||!n)return!1;const o=Object.keys(e).length,l=Object.keys(t).length;if(o!==l)return!1;for(const r in e){const a=e.hasOwnProperty(r),u=t.hasOwnProperty(r);if(a&&!u||!a&&u||!Ts(e[r],t[r]))return!1}}return String(e)===String(t)}function Si(e,t){return e.findIndex(s=>Ts(s,t))}const sl=e=>!!(e&&e.__v_isRef===!0),b=e=>Ce(e)?e:e==null?"":Z(e)||ge(e)&&(e.toString===Xo||!le(e.toString))?sl(e)?b(e.value):JSON.stringify(e,nl,2):String(e),nl=(e,t)=>sl(t)?nl(e,t.value):Yt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((s,[n,o],l)=>(s[hn(n,l)+" =>"]=o,s),{})}:en(t)?{[`Set(${t.size})`]:[...t.values()].map(s=>hn(s))}:at(t)?hn(t):ge(t)&&!Z(t)&&!Qo(t)?String(t):t,hn=(e,t="")=>{var s;return at(e)?`Symbol(${(s=e.description)!=null?s:t})`:e};/**
6
+ * @vue/reactivity v3.5.30
7
+ * (c) 2018-present Yuxi (Evan) You and Vue contributors
8
+ * @license MIT
9
+ **/let We;class ki{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.__v_skip=!0,this.parent=We,!t&&We&&(this.index=(We.scopes||(We.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,s;if(this.scopes)for(t=0,s=this.scopes.length;t<s;t++)this.scopes[t].pause();for(t=0,s=this.effects.length;t<s;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,s;if(this.scopes)for(t=0,s=this.scopes.length;t<s;t++)this.scopes[t].resume();for(t=0,s=this.effects.length;t<s;t++)this.effects[t].resume()}}run(t){if(this._active){const s=We;try{return We=this,t()}finally{We=s}}}on(){++this._on===1&&(this.prevScope=We,We=this)}off(){this._on>0&&--this._on===0&&(We=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let s,n;for(s=0,n=this.effects.length;s<n;s++)this.effects[s].stop();for(this.effects.length=0,s=0,n=this.cleanups.length;s<n;s++)this.cleanups[s]();if(this.cleanups.length=0,this.scopes){for(s=0,n=this.scopes.length;s<n;s++)this.scopes[s].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const o=this.parent.scopes.pop();o&&o!==this&&(this.parent.scopes[this.index]=o,o.index=this.index)}this.parent=void 0}}}function Ti(){return We}let ye;const vn=new WeakSet;class ol{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,We&&We.active&&We.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,vn.has(this)&&(vn.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||il(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,co(this),rl(this);const t=ye,s=Qe;ye=this,Qe=!0;try{return this.fn()}finally{al(this),ye=t,Qe=s,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)qn(t);this.deps=this.depsTail=void 0,co(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?vn.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){Cn(this)&&this.run()}get dirty(){return Cn(this)}}let ll=0,ps,hs;function il(e,t=!1){if(e.flags|=8,t){e.next=hs,hs=e;return}e.next=ps,ps=e}function Wn(){ll++}function zn(){if(--ll>0)return;if(hs){let t=hs;for(hs=void 0;t;){const s=t.next;t.next=void 0,t.flags&=-9,t=s}}let e;for(;ps;){let t=ps;for(ps=void 0;t;){const s=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=s}}if(e)throw e}function rl(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function al(e){let t,s=e.depsTail,n=s;for(;n;){const o=n.prevDep;n.version===-1?(n===s&&(s=o),qn(n),Mi(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=o}e.deps=t,e.depsTail=s}function Cn(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(cl(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function cl(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===bs)||(e.globalVersion=bs,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Cn(e))))return;e.flags|=2;const t=e.dep,s=ye,n=Qe;ye=e,Qe=!0;try{rl(e);const o=e.fn(e._value);(t.version===0||it(o,e._value))&&(e.flags|=128,e._value=o,t.version++)}catch(o){throw t.version++,o}finally{ye=s,Qe=n,al(e),e.flags&=-3}}function qn(e,t=!1){const{dep:s,prevSub:n,nextSub:o}=e;if(n&&(n.nextSub=o,e.prevSub=void 0),o&&(o.prevSub=n,e.nextSub=void 0),s.subs===e&&(s.subs=n,!n&&s.computed)){s.computed.flags&=-5;for(let l=s.computed.deps;l;l=l.nextDep)qn(l,!0)}!t&&!--s.sc&&s.map&&s.map.delete(s.key)}function Mi(e){const{prevDep:t,nextDep:s}=e;t&&(t.nextDep=s,e.prevDep=void 0),s&&(s.prevDep=t,e.nextDep=void 0)}let Qe=!0;const ul=[];function vt(){ul.push(Qe),Qe=!1}function mt(){const e=ul.pop();Qe=e===void 0?!0:e}function co(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const s=ye;ye=void 0;try{t()}finally{ye=s}}}let bs=0;class Ei{constructor(t,s){this.sub=t,this.dep=s,this.version=s.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Jn{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!ye||!Qe||ye===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==ye)s=this.activeLink=new Ei(ye,this),ye.deps?(s.prevDep=ye.depsTail,ye.depsTail.nextDep=s,ye.depsTail=s):ye.deps=ye.depsTail=s,dl(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const n=s.nextDep;n.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=n),s.prevDep=ye.depsTail,s.nextDep=void 0,ye.depsTail.nextDep=s,ye.depsTail=s,ye.deps===s&&(ye.deps=n)}return s}trigger(t){this.version++,bs++,this.notify(t)}notify(t){Wn();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{zn()}}}function dl(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)dl(n)}const s=e.dep.subs;s!==e&&(e.prevSub=s,s&&(s.nextSub=e)),e.dep.subs=e}}const Sn=new WeakMap,Ft=Symbol(""),kn=Symbol(""),ys=Symbol("");function Ne(e,t,s){if(Qe&&ye){let n=Sn.get(e);n||Sn.set(e,n=new Map);let o=n.get(s);o||(n.set(s,o=new Jn),o.map=n,o.key=s),o.track()}}function pt(e,t,s,n,o,l){const r=Sn.get(e);if(!r){bs++;return}const a=u=>{u&&u.trigger()};if(Wn(),t==="clear")r.forEach(a);else{const u=Z(e),m=u&&Kn(s);if(u&&s==="length"){const d=Number(n);r.forEach((g,E)=>{(E==="length"||E===ys||!at(E)&&E>=d)&&a(g)})}else switch((s!==void 0||r.has(void 0))&&a(r.get(s)),m&&a(r.get(ys)),t){case"add":u?m&&a(r.get("length")):(a(r.get(Ft)),Yt(e)&&a(r.get(kn)));break;case"delete":u||(a(r.get(Ft)),Yt(e)&&a(r.get(kn)));break;case"set":Yt(e)&&a(r.get(Ft));break}}zn()}function Bt(e){const t=he(e);return t===e?t:(Ne(t,"iterate",ys),Ye(e)?t:t.map(Ze))}function on(e){return Ne(e=he(e),"iterate",ys),e}function ot(e,t){return gt(e)?es(jt(e)?Ze(t):t):Ze(t)}const Oi={__proto__:null,[Symbol.iterator](){return mn(this,Symbol.iterator,e=>ot(this,e))},concat(...e){return Bt(this).concat(...e.map(t=>Z(t)?Bt(t):t))},entries(){return mn(this,"entries",e=>(e[1]=ot(this,e[1]),e))},every(e,t){return ct(this,"every",e,t,void 0,arguments)},filter(e,t){return ct(this,"filter",e,t,s=>s.map(n=>ot(this,n)),arguments)},find(e,t){return ct(this,"find",e,t,s=>ot(this,s),arguments)},findIndex(e,t){return ct(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ct(this,"findLast",e,t,s=>ot(this,s),arguments)},findLastIndex(e,t){return ct(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ct(this,"forEach",e,t,void 0,arguments)},includes(...e){return gn(this,"includes",e)},indexOf(...e){return gn(this,"indexOf",e)},join(e){return Bt(this).join(e)},lastIndexOf(...e){return gn(this,"lastIndexOf",e)},map(e,t){return ct(this,"map",e,t,void 0,arguments)},pop(){return is(this,"pop")},push(...e){return is(this,"push",e)},reduce(e,...t){return uo(this,"reduce",e,t)},reduceRight(e,...t){return uo(this,"reduceRight",e,t)},shift(){return is(this,"shift")},some(e,t){return ct(this,"some",e,t,void 0,arguments)},splice(...e){return is(this,"splice",e)},toReversed(){return Bt(this).toReversed()},toSorted(e){return Bt(this).toSorted(e)},toSpliced(...e){return Bt(this).toSpliced(...e)},unshift(...e){return is(this,"unshift",e)},values(){return mn(this,"values",e=>ot(this,e))}};function mn(e,t,s){const n=on(e),o=n[t]();return n!==e&&!Ye(e)&&(o._next=o.next,o.next=()=>{const l=o._next();return l.done||(l.value=s(l.value)),l}),o}const Ai=Array.prototype;function ct(e,t,s,n,o,l){const r=on(e),a=r!==e&&!Ye(e),u=r[t];if(u!==Ai[t]){const g=u.apply(e,l);return a?Ze(g):g}let m=s;r!==e&&(a?m=function(g,E){return s.call(this,ot(e,g),E,e)}:s.length>2&&(m=function(g,E){return s.call(this,g,E,e)}));const d=u.call(r,m,n);return a&&o?o(d):d}function uo(e,t,s,n){const o=on(e),l=o!==e&&!Ye(e);let r=s,a=!1;o!==e&&(l?(a=n.length===0,r=function(m,d,g){return a&&(a=!1,m=ot(e,m)),s.call(this,m,ot(e,d),g,e)}):s.length>3&&(r=function(m,d,g){return s.call(this,m,d,g,e)}));const u=o[t](r,...n);return a?ot(e,u):u}function gn(e,t,s){const n=he(e);Ne(n,"iterate",ys);const o=n[t](...s);return(o===-1||o===!1)&&Qn(s[0])?(s[0]=he(s[0]),n[t](...s)):o}function is(e,t,s=[]){vt(),Wn();const n=he(e)[t].apply(e,s);return zn(),mt(),n}const Ii=Vn("__proto__,__v_isRef,__isVue"),fl=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(at));function Ni(e){at(e)||(e=String(e));const t=he(this);return Ne(t,"has",e),t.hasOwnProperty(e)}class pl{constructor(t=!1,s=!1){this._isReadonly=t,this._isShallow=s}get(t,s,n){if(s==="__v_skip")return t.__v_skip;const o=this._isReadonly,l=this._isShallow;if(s==="__v_isReactive")return!o;if(s==="__v_isReadonly")return o;if(s==="__v_isShallow")return l;if(s==="__v_raw")return n===(o?l?Bi:gl:l?ml:vl).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const r=Z(t);if(!o){let u;if(r&&(u=Oi[s]))return u;if(s==="hasOwnProperty")return Ni}const a=Reflect.get(t,s,Pe(t)?t:n);if((at(s)?fl.has(s):Ii(s))||(o||Ne(t,"get",s),l))return a;if(Pe(a)){const u=r&&Kn(s)?a:a.value;return o&&ge(u)?Mn(u):u}return ge(a)?o?Mn(a):Yn(a):a}}class hl extends pl{constructor(t=!1){super(!1,t)}set(t,s,n,o){let l=t[s];const r=Z(t)&&Kn(s);if(!this._isShallow){const m=gt(l);if(!Ye(n)&&!gt(n)&&(l=he(l),n=he(n)),!r&&Pe(l)&&!Pe(n))return m||(l.value=n),!0}const a=r?Number(s)<t.length:me(t,s),u=Reflect.set(t,s,n,Pe(t)?t:o);return t===he(o)&&(a?it(n,l)&&pt(t,"set",s,n):pt(t,"add",s,n)),u}deleteProperty(t,s){const n=me(t,s);t[s];const o=Reflect.deleteProperty(t,s);return o&&n&&pt(t,"delete",s,void 0),o}has(t,s){const n=Reflect.has(t,s);return(!at(s)||!fl.has(s))&&Ne(t,"has",s),n}ownKeys(t){return Ne(t,"iterate",Z(t)?"length":Ft),Reflect.ownKeys(t)}}class Li extends pl{constructor(t=!1){super(!0,t)}set(t,s){return!0}deleteProperty(t,s){return!0}}const Pi=new hl,Ri=new Li,Fi=new hl(!0);const Tn=e=>e,Is=e=>Reflect.getPrototypeOf(e);function ji(e,t,s){return function(...n){const o=this.__v_raw,l=he(o),r=Yt(l),a=e==="entries"||e===Symbol.iterator&&r,u=e==="keys"&&r,m=o[e](...n),d=s?Tn:t?es:Ze;return!t&&Ne(l,"iterate",u?kn:Ft),Te(Object.create(m),{next(){const{value:g,done:E}=m.next();return E?{value:g,done:E}:{value:a?[d(g[0]),d(g[1])]:d(g),done:E}}})}}function Ns(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Di(e,t){const s={get(o){const l=this.__v_raw,r=he(l),a=he(o);e||(it(o,a)&&Ne(r,"get",o),Ne(r,"get",a));const{has:u}=Is(r),m=t?Tn:e?es:Ze;if(u.call(r,o))return m(l.get(o));if(u.call(r,a))return m(l.get(a));l!==r&&l.get(o)},get size(){const o=this.__v_raw;return!e&&Ne(he(o),"iterate",Ft),o.size},has(o){const l=this.__v_raw,r=he(l),a=he(o);return e||(it(o,a)&&Ne(r,"has",o),Ne(r,"has",a)),o===a?l.has(o):l.has(o)||l.has(a)},forEach(o,l){const r=this,a=r.__v_raw,u=he(a),m=t?Tn:e?es:Ze;return!e&&Ne(u,"iterate",Ft),a.forEach((d,g)=>o.call(l,m(d),m(g),r))}};return Te(s,e?{add:Ns("add"),set:Ns("set"),delete:Ns("delete"),clear:Ns("clear")}:{add(o){const l=he(this),r=Is(l),a=he(o),u=!t&&!Ye(o)&&!gt(o)?a:o;return r.has.call(l,u)||it(o,u)&&r.has.call(l,o)||it(a,u)&&r.has.call(l,a)||(l.add(u),pt(l,"add",u,u)),this},set(o,l){!t&&!Ye(l)&&!gt(l)&&(l=he(l));const r=he(this),{has:a,get:u}=Is(r);let m=a.call(r,o);m||(o=he(o),m=a.call(r,o));const d=u.call(r,o);return r.set(o,l),m?it(l,d)&&pt(r,"set",o,l):pt(r,"add",o,l),this},delete(o){const l=he(this),{has:r,get:a}=Is(l);let u=r.call(l,o);u||(o=he(o),u=r.call(l,o)),a&&a.call(l,o);const m=l.delete(o);return u&&pt(l,"delete",o,void 0),m},clear(){const o=he(this),l=o.size!==0,r=o.clear();return l&&pt(o,"clear",void 0,void 0),r}}),["keys","values","entries",Symbol.iterator].forEach(o=>{s[o]=ji(o,e,t)}),s}function Gn(e,t){const s=Di(e,t);return(n,o,l)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?n:Reflect.get(me(s,o)&&o in n?s:n,o,l)}const Hi={get:Gn(!1,!1)},Vi={get:Gn(!1,!0)},Ui={get:Gn(!0,!1)};const vl=new WeakMap,ml=new WeakMap,gl=new WeakMap,Bi=new WeakMap;function Ki(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Wi(e){return e.__v_skip||!Object.isExtensible(e)?0:Ki(hi(e))}function Yn(e){return gt(e)?e:Xn(e,!1,Pi,Hi,vl)}function zi(e){return Xn(e,!1,Fi,Vi,ml)}function Mn(e){return Xn(e,!0,Ri,Ui,gl)}function Xn(e,t,s,n,o){if(!ge(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const l=Wi(e);if(l===0)return e;const r=o.get(e);if(r)return r;const a=new Proxy(e,l===2?n:s);return o.set(e,a),a}function jt(e){return gt(e)?jt(e.__v_raw):!!(e&&e.__v_isReactive)}function gt(e){return!!(e&&e.__v_isReadonly)}function Ye(e){return!!(e&&e.__v_isShallow)}function Qn(e){return e?!!e.__v_raw:!1}function he(e){const t=e&&e.__v_raw;return t?he(t):e}function qi(e){return!me(e,"__v_skip")&&Object.isExtensible(e)&&el(e,"__v_skip",!0),e}const Ze=e=>ge(e)?Yn(e):e,es=e=>ge(e)?Mn(e):e;function Pe(e){return e?e.__v_isRef===!0:!1}function ue(e){return _l(e,!1)}function Ji(e){return _l(e,!0)}function _l(e,t){return Pe(e)?e:new Gi(e,t)}class Gi{constructor(t,s){this.dep=new Jn,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=s?t:he(t),this._value=s?t:Ze(t),this.__v_isShallow=s}get value(){return this.dep.track(),this._value}set value(t){const s=this._rawValue,n=this.__v_isShallow||Ye(t)||gt(t);t=n?t:he(t),it(t,s)&&(this._rawValue=t,this._value=n?t:Ze(t),this.dep.trigger())}}function Yi(e){e.dep&&e.dep.trigger()}function Ct(e){return Pe(e)?e.value:e}const Xi={get:(e,t,s)=>t==="__v_raw"?e:Ct(Reflect.get(e,t,s)),set:(e,t,s,n)=>{const o=e[t];return Pe(o)&&!Pe(s)?(o.value=s,!0):Reflect.set(e,t,s,n)}};function bl(e){return jt(e)?e:new Proxy(e,Xi)}class Qi{constructor(t,s,n){this.fn=t,this.setter=s,this._value=void 0,this.dep=new Jn(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=bs-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&ye!==this)return il(this,!0),!0}get value(){const t=this.dep.track();return cl(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Zi(e,t,s=!1){let n,o;return le(e)?n=e:(n=e.get,o=e.set),new Qi(n,o,s)}const Ls={},Vs=new WeakMap;let At;function er(e,t=!1,s=At){if(s){let n=Vs.get(s);n||Vs.set(s,n=[]),n.push(e)}}function tr(e,t,s=_e){const{immediate:n,deep:o,once:l,scheduler:r,augmentJob:a,call:u}=s,m=M=>o?M:Ye(M)||o===!1||o===0?ht(M,1):ht(M);let d,g,E,$,y=!1,O=!1;if(Pe(e)?(g=()=>e.value,y=Ye(e)):jt(e)?(g=()=>m(e),y=!0):Z(e)?(O=!0,y=e.some(M=>jt(M)||Ye(M)),g=()=>e.map(M=>{if(Pe(M))return M.value;if(jt(M))return m(M);if(le(M))return u?u(M,2):M()})):le(e)?t?g=u?()=>u(e,2):e:g=()=>{if(E){vt();try{E()}finally{mt()}}const M=At;At=d;try{return u?u(e,3,[$]):e($)}finally{At=M}}:g=rt,t&&o){const M=g,j=o===!0?1/0:o;g=()=>ht(M(),j)}const W=Ti(),Y=()=>{d.stop(),W&&W.active&&Bn(W.effects,d)};if(l&&t){const M=t;t=(...j)=>{M(...j),Y()}}let D=O?new Array(e.length).fill(Ls):Ls;const ne=M=>{if(!(!(d.flags&1)||!d.dirty&&!M))if(t){const j=d.run();if(o||y||(O?j.some((V,ie)=>it(V,D[ie])):it(j,D))){E&&E();const V=At;At=d;try{const ie=[j,D===Ls?void 0:O&&D[0]===Ls?[]:D,$];D=j,u?u(t,3,ie):t(...ie)}finally{At=V}}}else d.run()};return a&&a(ne),d=new ol(g),d.scheduler=r?()=>r(ne,!1):ne,$=M=>er(M,!1,d),E=d.onStop=()=>{const M=Vs.get(d);if(M){if(u)u(M,4);else for(const j of M)j();Vs.delete(d)}},t?n?ne(!0):D=d.run():r?r(ne.bind(null,!0),!0):d.run(),Y.pause=d.pause.bind(d),Y.resume=d.resume.bind(d),Y.stop=Y,Y}function ht(e,t=1/0,s){if(t<=0||!ge(e)||e.__v_skip||(s=s||new Map,(s.get(e)||0)>=t))return e;if(s.set(e,t),t--,Pe(e))ht(e.value,t,s);else if(Z(e))for(let n=0;n<e.length;n++)ht(e[n],t,s);else if(en(e)||Yt(e))e.forEach(n=>{ht(n,t,s)});else if(Qo(e)){for(const n in e)ht(e[n],t,s);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&ht(e[n],t,s)}return e}/**
10
+ * @vue/runtime-core v3.5.30
11
+ * (c) 2018-present Yuxi (Evan) You and Vue contributors
12
+ * @license MIT
13
+ **/function Ms(e,t,s,n){try{return n?e(...n):e()}catch(o){ln(o,t,s)}}function et(e,t,s,n){if(le(e)){const o=Ms(e,t,s,n);return o&&Yo(o)&&o.catch(l=>{ln(l,t,s)}),o}if(Z(e)){const o=[];for(let l=0;l<e.length;l++)o.push(et(e[l],t,s,n));return o}}function ln(e,t,s,n=!0){const o=t?t.vnode:null,{errorHandler:l,throwUnhandledErrorInProduction:r}=t&&t.appContext.config||_e;if(t){let a=t.parent;const u=t.proxy,m=`https://vuejs.org/error-reference/#runtime-${s}`;for(;a;){const d=a.ec;if(d){for(let g=0;g<d.length;g++)if(d[g](e,u,m)===!1)return}a=a.parent}if(l){vt(),Ms(l,null,10,[e,u,m]),mt();return}}sr(e,s,o,n,r)}function sr(e,t,s,n=!0,o=!1){if(o)throw e;console.error(e)}const He=[];let st=-1;const Xt=[];let wt=null,Jt=0;const yl=Promise.resolve();let Us=null;function xl(e){const t=Us||yl;return e?t.then(this?e.bind(this):e):t}function nr(e){let t=st+1,s=He.length;for(;t<s;){const n=t+s>>>1,o=He[n],l=xs(o);l<e||l===e&&o.flags&2?t=n+1:s=n}return t}function Zn(e){if(!(e.flags&1)){const t=xs(e),s=He[He.length-1];!s||!(e.flags&2)&&t>=xs(s)?He.push(e):He.splice(nr(t),0,e),e.flags|=1,wl()}}function wl(){Us||(Us=yl.then(Cl))}function or(e){Z(e)?Xt.push(...e):wt&&e.id===-1?wt.splice(Jt+1,0,e):e.flags&1||(Xt.push(e),e.flags|=1),wl()}function fo(e,t,s=st+1){for(;s<He.length;s++){const n=He[s];if(n&&n.flags&2){if(e&&n.id!==e.uid)continue;He.splice(s,1),s--,n.flags&4&&(n.flags&=-2),n(),n.flags&4||(n.flags&=-2)}}}function $l(e){if(Xt.length){const t=[...new Set(Xt)].sort((s,n)=>xs(s)-xs(n));if(Xt.length=0,wt){wt.push(...t);return}for(wt=t,Jt=0;Jt<wt.length;Jt++){const s=wt[Jt];s.flags&4&&(s.flags&=-2),s.flags&8||s(),s.flags&=-2}wt=null,Jt=0}}const xs=e=>e.id==null?e.flags&2?-1:1/0:e.id;function Cl(e){try{for(st=0;st<He.length;st++){const t=He[st];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),Ms(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;st<He.length;st++){const t=He[st];t&&(t.flags&=-2)}st=-1,He.length=0,$l(),Us=null,(He.length||Xt.length)&&Cl()}}let Ge=null,Sl=null;function Bs(e){const t=Ge;return Ge=e,Sl=e&&e.type.__scopeId||null,t}function Ks(e,t=Ge,s){if(!t||e._n)return e;const n=(...o)=>{n._d&&qs(-1);const l=Bs(t);let r;try{r=e(...o)}finally{Bs(l),n._d&&qs(1)}return r};return n._n=!0,n._c=!0,n._d=!0,n}function Dt(e,t){if(Ge===null)return e;const s=dn(Ge),n=e.dirs||(e.dirs=[]);for(let o=0;o<t.length;o++){let[l,r,a,u=_e]=t[o];l&&(le(l)&&(l={mounted:l,updated:l}),l.deep&&ht(r),n.push({dir:l,instance:s,value:r,oldValue:void 0,arg:a,modifiers:u}))}return e}function Tt(e,t,s,n){const o=e.dirs,l=t&&t.dirs;for(let r=0;r<o.length;r++){const a=o[r];l&&(a.oldValue=l[r].value);let u=a.dir[n];u&&(vt(),et(u,s,8,[e.el,a,e,t]),mt())}}function lr(e,t){if(Ue){let s=Ue.provides;const n=Ue.parent&&Ue.parent.provides;n===s&&(s=Ue.provides=Object.create(n)),s[e]=t}}function Rs(e,t,s=!1){const n=oi();if(n||Qt){let o=Qt?Qt._context.provides:n?n.parent==null||n.ce?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides:void 0;if(o&&e in o)return o[e];if(arguments.length>1)return s&&le(t)?t.call(n&&n.proxy):t}}const ir=Symbol.for("v-scx"),rr=()=>Rs(ir);function $t(e,t,s){return kl(e,t,s)}function kl(e,t,s=_e){const{immediate:n,deep:o,flush:l,once:r}=s,a=Te({},s),u=t&&n||!t&&l!=="post";let m;if(Cs){if(l==="sync"){const $=rr();m=$.__watcherHandles||($.__watcherHandles=[])}else if(!u){const $=()=>{};return $.stop=rt,$.resume=rt,$.pause=rt,$}}const d=Ue;a.call=($,y,O)=>et($,d,y,O);let g=!1;l==="post"?a.scheduler=$=>{Ke($,d&&d.suspense)}:l!=="sync"&&(g=!0,a.scheduler=($,y)=>{y?$():Zn($)}),a.augmentJob=$=>{t&&($.flags|=4),g&&($.flags|=2,d&&($.id=d.uid,$.i=d))};const E=tr(e,t,a);return Cs&&(m?m.push(E):u&&E()),E}function ar(e,t,s){const n=this.proxy,o=Ce(e)?e.includes(".")?Tl(n,e):()=>n[e]:e.bind(n,n);let l;le(t)?l=t:(l=t.handler,s=t);const r=Es(this),a=kl(o,l.bind(n),s);return r(),a}function Tl(e,t){const s=t.split(".");return()=>{let n=e;for(let o=0;o<s.length&&n;o++)n=n[s[o]];return n}}const cr=Symbol("_vte"),Ml=e=>e.__isTeleport,nt=Symbol("_leaveCb"),rs=Symbol("_enterCb");function ur(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Rl(()=>{e.isMounted=!0}),Fl(()=>{e.isUnmounting=!0}),e}const Je=[Function,Array],El={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Je,onEnter:Je,onAfterEnter:Je,onEnterCancelled:Je,onBeforeLeave:Je,onLeave:Je,onAfterLeave:Je,onLeaveCancelled:Je,onBeforeAppear:Je,onAppear:Je,onAfterAppear:Je,onAppearCancelled:Je},Ol=e=>{const t=e.subTree;return t.component?Ol(t.component):t},dr={name:"BaseTransition",props:El,setup(e,{slots:t}){const s=oi(),n=ur();return()=>{const o=t.default&&Nl(t.default(),!0);if(!o||!o.length)return;const l=Al(o),r=he(e),{mode:a}=r;if(n.isLeaving)return _n(l);const u=po(l);if(!u)return _n(l);let m=En(u,r,n,s,g=>m=g);u.type!==Ve&&ws(u,m);let d=s.subTree&&po(s.subTree);if(d&&d.type!==Ve&&!Lt(d,u)&&Ol(s).type!==Ve){let g=En(d,r,n,s);if(ws(d,g),a==="out-in"&&u.type!==Ve)return n.isLeaving=!0,g.afterLeave=()=>{n.isLeaving=!1,s.job.flags&8||s.update(),delete g.afterLeave,d=void 0},_n(l);a==="in-out"&&u.type!==Ve?g.delayLeave=(E,$,y)=>{const O=Il(n,d);O[String(d.key)]=d,E[nt]=()=>{$(),E[nt]=void 0,delete m.delayedLeave,d=void 0},m.delayedLeave=()=>{y(),delete m.delayedLeave,d=void 0}}:d=void 0}else d&&(d=void 0);return l}}};function Al(e){let t=e[0];if(e.length>1){for(const s of e)if(s.type!==Ve){t=s;break}}return t}const fr=dr;function Il(e,t){const{leavingVNodes:s}=e;let n=s.get(t.type);return n||(n=Object.create(null),s.set(t.type,n)),n}function En(e,t,s,n,o){const{appear:l,mode:r,persisted:a=!1,onBeforeEnter:u,onEnter:m,onAfterEnter:d,onEnterCancelled:g,onBeforeLeave:E,onLeave:$,onAfterLeave:y,onLeaveCancelled:O,onBeforeAppear:W,onAppear:Y,onAfterAppear:D,onAppearCancelled:ne}=t,M=String(e.key),j=Il(s,e),V=(G,re)=>{G&&et(G,n,9,re)},ie=(G,re)=>{const A=re[1];V(G,re),Z(G)?G.every(_=>_.length<=1)&&A():G.length<=1&&A()},xe={mode:r,persisted:a,beforeEnter(G){let re=u;if(!s.isMounted)if(l)re=W||u;else return;G[nt]&&G[nt](!0);const A=j[M];A&&Lt(e,A)&&A.el[nt]&&A.el[nt](),V(re,[G])},enter(G){if(j[M]===e)return;let re=m,A=d,_=g;if(!s.isMounted)if(l)re=Y||m,A=D||d,_=ne||g;else return;let x=!1;G[rs]=ae=>{x||(x=!0,ae?V(_,[G]):V(A,[G]),xe.delayedLeave&&xe.delayedLeave(),G[rs]=void 0)};const J=G[rs].bind(null,!1);re?ie(re,[G,J]):J()},leave(G,re){const A=String(e.key);if(G[rs]&&G[rs](!0),s.isUnmounting)return re();V(E,[G]);let _=!1;G[nt]=J=>{_||(_=!0,re(),J?V(O,[G]):V(y,[G]),G[nt]=void 0,j[A]===e&&delete j[A])};const x=G[nt].bind(null,!1);j[A]=e,$?ie($,[G,x]):x()},clone(G){const re=En(G,t,s,n,o);return o&&o(re),re}};return xe}function _n(e){if(rn(e))return e=St(e),e.children=null,e}function po(e){if(!rn(e))return Ml(e.type)&&e.children?Al(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:s}=e;if(s){if(t&16)return s[0];if(t&32&&le(s.default))return s.default()}}function ws(e,t){e.shapeFlag&6&&e.component?(e.transition=t,ws(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Nl(e,t=!1,s){let n=[],o=0;for(let l=0;l<e.length;l++){let r=e[l];const a=s==null?r.key:String(s)+String(r.key!=null?r.key:l);r.type===de?(r.patchFlag&128&&o++,n=n.concat(Nl(r.children,t,a))):(t||r.type!==Ve)&&n.push(a!=null?St(r,{key:a}):r)}if(o>1)for(let l=0;l<n.length;l++)n[l].patchFlag=-2;return n}function Ht(e,t){return le(e)?Te({name:e.name},t,{setup:e}):e}function Ll(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function ho(e,t){let s;return!!((s=Object.getOwnPropertyDescriptor(e,t))&&!s.configurable)}const Ws=new WeakMap;function vs(e,t,s,n,o=!1){if(Z(e)){e.forEach((O,W)=>vs(O,t&&(Z(t)?t[W]:t),s,n,o));return}if(ms(n)&&!o){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&vs(e,t,s,n.component.subTree);return}const l=n.shapeFlag&4?dn(n.component):n.el,r=o?null:l,{i:a,r:u}=e,m=t&&t.r,d=a.refs===_e?a.refs={}:a.refs,g=a.setupState,E=he(g),$=g===_e?Go:O=>ho(d,O)?!1:me(E,O),y=(O,W)=>!(W&&ho(d,W));if(m!=null&&m!==u){if(vo(t),Ce(m))d[m]=null,$(m)&&(g[m]=null);else if(Pe(m)){const O=t;y(m,O.k)&&(m.value=null),O.k&&(d[O.k]=null)}}if(le(u))Ms(u,a,12,[r,d]);else{const O=Ce(u),W=Pe(u);if(O||W){const Y=()=>{if(e.f){const D=O?$(u)?g[u]:d[u]:y()||!e.k?u.value:d[e.k];if(o)Z(D)&&Bn(D,l);else if(Z(D))D.includes(l)||D.push(l);else if(O)d[u]=[l],$(u)&&(g[u]=d[u]);else{const ne=[l];y(u,e.k)&&(u.value=ne),e.k&&(d[e.k]=ne)}}else O?(d[u]=r,$(u)&&(g[u]=r)):W&&(y(u,e.k)&&(u.value=r),e.k&&(d[e.k]=r))};if(r){const D=()=>{Y(),Ws.delete(e)};D.id=-1,Ws.set(e,D),Ke(D,s)}else vo(e),Y()}}}function vo(e){const t=Ws.get(e);t&&(t.flags|=8,Ws.delete(e))}nn().requestIdleCallback;nn().cancelIdleCallback;const ms=e=>!!e.type.__asyncLoader,rn=e=>e.type.__isKeepAlive;function pr(e,t){Pl(e,"a",t)}function hr(e,t){Pl(e,"da",t)}function Pl(e,t,s=Ue){const n=e.__wdc||(e.__wdc=()=>{let o=s;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(an(t,n,s),s){let o=s.parent;for(;o&&o.parent;)rn(o.parent.vnode)&&vr(n,t,s,o),o=o.parent}}function vr(e,t,s,n){const o=an(t,e,n,!0);jl(()=>{Bn(n[t],o)},s)}function an(e,t,s=Ue,n=!1){if(s){const o=s[e]||(s[e]=[]),l=t.__weh||(t.__weh=(...r)=>{vt();const a=Es(s),u=et(t,s,e,r);return a(),mt(),u});return n?o.unshift(l):o.push(l),l}}const _t=e=>(t,s=Ue)=>{(!Cs||e==="sp")&&an(e,(...n)=>t(...n),s)},mr=_t("bm"),Rl=_t("m"),gr=_t("bu"),_r=_t("u"),Fl=_t("bum"),jl=_t("um"),br=_t("sp"),yr=_t("rtg"),xr=_t("rtc");function wr(e,t=Ue){an("ec",e,t)}const $r=Symbol.for("v-ndc");function $e(e,t,s,n){let o;const l=s,r=Z(e);if(r||Ce(e)){const a=r&&jt(e);let u=!1,m=!1;a&&(u=!Ye(e),m=gt(e),e=on(e)),o=new Array(e.length);for(let d=0,g=e.length;d<g;d++)o[d]=t(u?m?es(Ze(e[d])):Ze(e[d]):e[d],d,void 0,l)}else if(typeof e=="number"){o=new Array(e);for(let a=0;a<e;a++)o[a]=t(a+1,a,void 0,l)}else if(ge(e))if(e[Symbol.iterator])o=Array.from(e,(a,u)=>t(a,u,void 0,l));else{const a=Object.keys(e);o=new Array(a.length);for(let u=0,m=a.length;u<m;u++){const d=a[u];o[u]=t(e[d],d,u,l)}}else o=[];return o}const On=e=>e?li(e)?dn(e):On(e.parent):null,gs=Te(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>On(e.parent),$root:e=>On(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Hl(e),$forceUpdate:e=>e.f||(e.f=()=>{Zn(e.update)}),$nextTick:e=>e.n||(e.n=xl.bind(e.proxy)),$watch:e=>ar.bind(e)}),bn=(e,t)=>e!==_e&&!e.__isScriptSetup&&me(e,t),Cr={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:s,setupState:n,data:o,props:l,accessCache:r,type:a,appContext:u}=e;if(t[0]!=="$"){const E=r[t];if(E!==void 0)switch(E){case 1:return n[t];case 2:return o[t];case 4:return s[t];case 3:return l[t]}else{if(bn(n,t))return r[t]=1,n[t];if(o!==_e&&me(o,t))return r[t]=2,o[t];if(me(l,t))return r[t]=3,l[t];if(s!==_e&&me(s,t))return r[t]=4,s[t];An&&(r[t]=0)}}const m=gs[t];let d,g;if(m)return t==="$attrs"&&Ne(e.attrs,"get",""),m(e);if((d=a.__cssModules)&&(d=d[t]))return d;if(s!==_e&&me(s,t))return r[t]=4,s[t];if(g=u.config.globalProperties,me(g,t))return g[t]},set({_:e},t,s){const{data:n,setupState:o,ctx:l}=e;return bn(o,t)?(o[t]=s,!0):n!==_e&&me(n,t)?(n[t]=s,!0):me(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(l[t]=s,!0)},has({_:{data:e,setupState:t,accessCache:s,ctx:n,appContext:o,props:l,type:r}},a){let u;return!!(s[a]||e!==_e&&a[0]!=="$"&&me(e,a)||bn(t,a)||me(l,a)||me(n,a)||me(gs,a)||me(o.config.globalProperties,a)||(u=r.__cssModules)&&u[a])},defineProperty(e,t,s){return s.get!=null?e._.accessCache[t]=0:me(s,"value")&&this.set(e,t,s.value,null),Reflect.defineProperty(e,t,s)}};function mo(e){return Z(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}let An=!0;function Sr(e){const t=Hl(e),s=e.proxy,n=e.ctx;An=!1,t.beforeCreate&&go(t.beforeCreate,e,"bc");const{data:o,computed:l,methods:r,watch:a,provide:u,inject:m,created:d,beforeMount:g,mounted:E,beforeUpdate:$,updated:y,activated:O,deactivated:W,beforeDestroy:Y,beforeUnmount:D,destroyed:ne,unmounted:M,render:j,renderTracked:V,renderTriggered:ie,errorCaptured:xe,serverPrefetch:G,expose:re,inheritAttrs:A,components:_,directives:x,filters:J}=t;if(m&&kr(m,n,null),r)for(const v in r){const w=r[v];le(w)&&(n[v]=w.bind(s))}if(o){const v=o.call(s,s);ge(v)&&(e.data=Yn(v))}if(An=!0,l)for(const v in l){const w=l[v],fe=le(w)?w.bind(s,s):le(w.get)?w.get.bind(s,s):rt,K=!le(w)&&le(w.set)?w.set.bind(s):rt,pe=ce({get:fe,set:K});Object.defineProperty(n,v,{enumerable:!0,configurable:!0,get:()=>pe.value,set:we=>pe.value=we})}if(a)for(const v in a)Dl(a[v],n,s,v);if(u){const v=le(u)?u.call(s):u;Reflect.ownKeys(v).forEach(w=>{lr(w,v[w])})}d&&go(d,e,"c");function N(v,w){Z(w)?w.forEach(fe=>v(fe.bind(s))):w&&v(w.bind(s))}if(N(mr,g),N(Rl,E),N(gr,$),N(_r,y),N(pr,O),N(hr,W),N(wr,xe),N(xr,V),N(yr,ie),N(Fl,D),N(jl,M),N(br,G),Z(re))if(re.length){const v=e.exposed||(e.exposed={});re.forEach(w=>{Object.defineProperty(v,w,{get:()=>s[w],set:fe=>s[w]=fe,enumerable:!0})})}else e.exposed||(e.exposed={});j&&e.render===rt&&(e.render=j),A!=null&&(e.inheritAttrs=A),_&&(e.components=_),x&&(e.directives=x),G&&Ll(e)}function kr(e,t,s=rt){Z(e)&&(e=In(e));for(const n in e){const o=e[n];let l;ge(o)?"default"in o?l=Rs(o.from||n,o.default,!0):l=Rs(o.from||n):l=Rs(o),Pe(l)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>l.value,set:r=>l.value=r}):t[n]=l}}function go(e,t,s){et(Z(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,s)}function Dl(e,t,s,n){let o=n.includes(".")?Tl(s,n):()=>s[n];if(Ce(e)){const l=t[e];le(l)&&$t(o,l)}else if(le(e))$t(o,e.bind(s));else if(ge(e))if(Z(e))e.forEach(l=>Dl(l,t,s,n));else{const l=le(e.handler)?e.handler.bind(s):t[e.handler];le(l)&&$t(o,l,e)}}function Hl(e){const t=e.type,{mixins:s,extends:n}=t,{mixins:o,optionsCache:l,config:{optionMergeStrategies:r}}=e.appContext,a=l.get(t);let u;return a?u=a:!o.length&&!s&&!n?u=t:(u={},o.length&&o.forEach(m=>zs(u,m,r,!0)),zs(u,t,r)),ge(t)&&l.set(t,u),u}function zs(e,t,s,n=!1){const{mixins:o,extends:l}=t;l&&zs(e,l,s,!0),o&&o.forEach(r=>zs(e,r,s,!0));for(const r in t)if(!(n&&r==="expose")){const a=Tr[r]||s&&s[r];e[r]=a?a(e[r],t[r]):t[r]}return e}const Tr={data:_o,props:bo,emits:bo,methods:ds,computed:ds,beforeCreate:De,created:De,beforeMount:De,mounted:De,beforeUpdate:De,updated:De,beforeDestroy:De,beforeUnmount:De,destroyed:De,unmounted:De,activated:De,deactivated:De,errorCaptured:De,serverPrefetch:De,components:ds,directives:ds,watch:Er,provide:_o,inject:Mr};function _o(e,t){return t?e?function(){return Te(le(e)?e.call(this,this):e,le(t)?t.call(this,this):t)}:t:e}function Mr(e,t){return ds(In(e),In(t))}function In(e){if(Z(e)){const t={};for(let s=0;s<e.length;s++)t[e[s]]=e[s];return t}return e}function De(e,t){return e?[...new Set([].concat(e,t))]:t}function ds(e,t){return e?Te(Object.create(null),e,t):t}function bo(e,t){return e?Z(e)&&Z(t)?[...new Set([...e,...t])]:Te(Object.create(null),mo(e),mo(t??{})):t}function Er(e,t){if(!e)return t;if(!t)return e;const s=Te(Object.create(null),e);for(const n in t)s[n]=De(e[n],t[n]);return s}function Vl(){return{app:null,config:{isNativeTag:Go,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let Or=0;function Ar(e,t){return function(n,o=null){le(n)||(n=Te({},n)),o!=null&&!ge(o)&&(o=null);const l=Vl(),r=new WeakSet,a=[];let u=!1;const m=l.app={_uid:Or++,_component:n,_props:o,_container:null,_context:l,_instance:null,version:ca,get config(){return l.config},set config(d){},use(d,...g){return r.has(d)||(d&&le(d.install)?(r.add(d),d.install(m,...g)):le(d)&&(r.add(d),d(m,...g))),m},mixin(d){return l.mixins.includes(d)||l.mixins.push(d),m},component(d,g){return g?(l.components[d]=g,m):l.components[d]},directive(d,g){return g?(l.directives[d]=g,m):l.directives[d]},mount(d,g,E){if(!u){const $=m._ceVNode||Oe(n,o);return $.appContext=l,E===!0?E="svg":E===!1&&(E=void 0),e($,d,E),u=!0,m._container=d,d.__vue_app__=m,dn($.component)}},onUnmount(d){a.push(d)},unmount(){u&&(et(a,m._instance,16),e(null,m._container),delete m._container.__vue_app__)},provide(d,g){return l.provides[d]=g,m},runWithContext(d){const g=Qt;Qt=m;try{return d()}finally{Qt=g}}};return m}}let Qt=null;const Ir=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Xe(t)}Modifiers`]||e[`${Vt(t)}Modifiers`];function Nr(e,t,...s){if(e.isUnmounted)return;const n=e.vnode.props||_e;let o=s;const l=t.startsWith("update:"),r=l&&Ir(n,t.slice(7));r&&(r.trim&&(o=s.map(d=>Ce(d)?d.trim():d)),r.number&&(o=s.map(sn)));let a,u=n[a=pn(t)]||n[a=pn(Xe(t))];!u&&l&&(u=n[a=pn(Vt(t))]),u&&et(u,e,6,o);const m=n[a+"Once"];if(m){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,et(m,e,6,o)}}const Lr=new WeakMap;function Ul(e,t,s=!1){const n=s?Lr:t.emitsCache,o=n.get(e);if(o!==void 0)return o;const l=e.emits;let r={},a=!1;if(!le(e)){const u=m=>{const d=Ul(m,t,!0);d&&(a=!0,Te(r,d))};!s&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}return!l&&!a?(ge(e)&&n.set(e,null),null):(Z(l)?l.forEach(u=>r[u]=null):Te(r,l),ge(e)&&n.set(e,r),r)}function cn(e,t){return!e||!Zs(t)?!1:(t=t.slice(2).replace(/Once$/,""),me(e,t[0].toLowerCase()+t.slice(1))||me(e,Vt(t))||me(e,t))}function yo(e){const{type:t,vnode:s,proxy:n,withProxy:o,propsOptions:[l],slots:r,attrs:a,emit:u,render:m,renderCache:d,props:g,data:E,setupState:$,ctx:y,inheritAttrs:O}=e,W=Bs(e);let Y,D;try{if(s.shapeFlag&4){const M=o||n,j=M;Y=lt(m.call(j,M,d,g,$,E,y)),D=a}else{const M=t;Y=lt(M.length>1?M(g,{attrs:a,slots:r,emit:u}):M(g,null)),D=t.props?a:Pr(a)}}catch(M){_s.length=0,ln(M,e,1),Y=Oe(Ve)}let ne=Y;if(D&&O!==!1){const M=Object.keys(D),{shapeFlag:j}=ne;M.length&&j&7&&(l&&M.some(Un)&&(D=Rr(D,l)),ne=St(ne,D,!1,!0))}return s.dirs&&(ne=St(ne,null,!1,!0),ne.dirs=ne.dirs?ne.dirs.concat(s.dirs):s.dirs),s.transition&&ws(ne,s.transition),Y=ne,Bs(W),Y}const Pr=e=>{let t;for(const s in e)(s==="class"||s==="style"||Zs(s))&&((t||(t={}))[s]=e[s]);return t},Rr=(e,t)=>{const s={};for(const n in e)(!Un(n)||!(n.slice(9)in t))&&(s[n]=e[n]);return s};function Fr(e,t,s){const{props:n,children:o,component:l}=e,{props:r,children:a,patchFlag:u}=t,m=l.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&u>=0){if(u&1024)return!0;if(u&16)return n?xo(n,r,m):!!r;if(u&8){const d=t.dynamicProps;for(let g=0;g<d.length;g++){const E=d[g];if(Bl(r,n,E)&&!cn(m,E))return!0}}}else return(o||a)&&(!a||!a.$stable)?!0:n===r?!1:n?r?xo(n,r,m):!0:!!r;return!1}function xo(e,t,s){const n=Object.keys(t);if(n.length!==Object.keys(e).length)return!0;for(let o=0;o<n.length;o++){const l=n[o];if(Bl(t,e,l)&&!cn(s,l))return!0}return!1}function Bl(e,t,s){const n=e[s],o=t[s];return s==="style"&&ge(n)&&ge(o)?!Ts(n,o):n!==o}function jr({vnode:e,parent:t},s){for(;t;){const n=t.subTree;if(n.suspense&&n.suspense.activeBranch===e&&(n.el=e.el),n===e)(e=t.vnode).el=s,t=t.parent;else break}}const Kl={},Wl=()=>Object.create(Kl),zl=e=>Object.getPrototypeOf(e)===Kl;function Dr(e,t,s,n=!1){const o={},l=Wl();e.propsDefaults=Object.create(null),ql(e,t,o,l);for(const r in e.propsOptions[0])r in o||(o[r]=void 0);s?e.props=n?o:zi(o):e.type.props?e.props=o:e.props=l,e.attrs=l}function Hr(e,t,s,n){const{props:o,attrs:l,vnode:{patchFlag:r}}=e,a=he(o),[u]=e.propsOptions;let m=!1;if((n||r>0)&&!(r&16)){if(r&8){const d=e.vnode.dynamicProps;for(let g=0;g<d.length;g++){let E=d[g];if(cn(e.emitsOptions,E))continue;const $=t[E];if(u)if(me(l,E))$!==l[E]&&(l[E]=$,m=!0);else{const y=Xe(E);o[y]=Nn(u,a,y,$,e,!1)}else $!==l[E]&&(l[E]=$,m=!0)}}}else{ql(e,t,o,l)&&(m=!0);let d;for(const g in a)(!t||!me(t,g)&&((d=Vt(g))===g||!me(t,d)))&&(u?s&&(s[g]!==void 0||s[d]!==void 0)&&(o[g]=Nn(u,a,g,void 0,e,!0)):delete o[g]);if(l!==a)for(const g in l)(!t||!me(t,g))&&(delete l[g],m=!0)}m&&pt(e.attrs,"set","")}function ql(e,t,s,n){const[o,l]=e.propsOptions;let r=!1,a;if(t)for(let u in t){if(fs(u))continue;const m=t[u];let d;o&&me(o,d=Xe(u))?!l||!l.includes(d)?s[d]=m:(a||(a={}))[d]=m:cn(e.emitsOptions,u)||(!(u in n)||m!==n[u])&&(n[u]=m,r=!0)}if(l){const u=he(s),m=a||_e;for(let d=0;d<l.length;d++){const g=l[d];s[g]=Nn(o,u,g,m[g],e,!me(m,g))}}return r}function Nn(e,t,s,n,o,l){const r=e[s];if(r!=null){const a=me(r,"default");if(a&&n===void 0){const u=r.default;if(r.type!==Function&&!r.skipFactory&&le(u)){const{propsDefaults:m}=o;if(s in m)n=m[s];else{const d=Es(o);n=m[s]=u.call(null,t),d()}}else n=u;o.ce&&o.ce._setProp(s,n)}r[0]&&(l&&!a?n=!1:r[1]&&(n===""||n===Vt(s))&&(n=!0))}return n}const Vr=new WeakMap;function Jl(e,t,s=!1){const n=s?Vr:t.propsCache,o=n.get(e);if(o)return o;const l=e.props,r={},a=[];let u=!1;if(!le(e)){const d=g=>{u=!0;const[E,$]=Jl(g,t,!0);Te(r,E),$&&a.push(...$)};!s&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}if(!l&&!u)return ge(e)&&n.set(e,Gt),Gt;if(Z(l))for(let d=0;d<l.length;d++){const g=Xe(l[d]);wo(g)&&(r[g]=_e)}else if(l)for(const d in l){const g=Xe(d);if(wo(g)){const E=l[d],$=r[g]=Z(E)||le(E)?{type:E}:Te({},E),y=$.type;let O=!1,W=!0;if(Z(y))for(let Y=0;Y<y.length;++Y){const D=y[Y],ne=le(D)&&D.name;if(ne==="Boolean"){O=!0;break}else ne==="String"&&(W=!1)}else O=le(y)&&y.name==="Boolean";$[0]=O,$[1]=W,(O||me($,"default"))&&a.push(g)}}const m=[r,a];return ge(e)&&n.set(e,m),m}function wo(e){return e[0]!=="$"&&!fs(e)}const eo=e=>e==="_"||e==="_ctx"||e==="$stable",to=e=>Z(e)?e.map(lt):[lt(e)],Ur=(e,t,s)=>{if(t._n)return t;const n=Ks((...o)=>to(t(...o)),s);return n._c=!1,n},Gl=(e,t,s)=>{const n=e._ctx;for(const o in e){if(eo(o))continue;const l=e[o];if(le(l))t[o]=Ur(o,l,n);else if(l!=null){const r=to(l);t[o]=()=>r}}},Yl=(e,t)=>{const s=to(t);e.slots.default=()=>s},Xl=(e,t,s)=>{for(const n in t)(s||!eo(n))&&(e[n]=t[n])},Br=(e,t,s)=>{const n=e.slots=Wl();if(e.vnode.shapeFlag&32){const o=t._;o?(Xl(n,t,s),s&&el(n,"_",o,!0)):Gl(t,n)}else t&&Yl(e,t)},Kr=(e,t,s)=>{const{vnode:n,slots:o}=e;let l=!0,r=_e;if(n.shapeFlag&32){const a=t._;a?s&&a===1?l=!1:Xl(o,t,s):(l=!t.$stable,Gl(t,o)),r=t}else t&&(Yl(e,t),r={default:1});if(l)for(const a in o)!eo(a)&&r[a]==null&&delete o[a]},Ke=Gr;function Wr(e){return zr(e)}function zr(e,t){const s=nn();s.__VUE__=!0;const{insert:n,remove:o,patchProp:l,createElement:r,createText:a,createComment:u,setText:m,setElementText:d,parentNode:g,nextSibling:E,setScopeId:$=rt,insertStaticContent:y}=e,O=(c,p,C,R=null,I=null,L=null,U=void 0,H=null,F=!!p.dynamicChildren)=>{if(c===p)return;c&&!Lt(c,p)&&(R=Re(c),we(c,I,L,!0),c=null),p.patchFlag===-2&&(F=!1,p.dynamicChildren=null);const{type:P,ref:Q,shapeFlag:B}=p;switch(P){case un:W(c,p,C,R);break;case Ve:Y(c,p,C,R);break;case Fs:c==null&&D(p,C,R,U);break;case de:_(c,p,C,R,I,L,U,H,F);break;default:B&1?j(c,p,C,R,I,L,U,H,F):B&6?x(c,p,C,R,I,L,U,H,F):(B&64||B&128)&&P.process(c,p,C,R,I,L,U,H,F,bt)}Q!=null&&I?vs(Q,c&&c.ref,L,p||c,!p):Q==null&&c&&c.ref!=null&&vs(c.ref,null,L,c,!0)},W=(c,p,C,R)=>{if(c==null)n(p.el=a(p.children),C,R);else{const I=p.el=c.el;p.children!==c.children&&m(I,p.children)}},Y=(c,p,C,R)=>{c==null?n(p.el=u(p.children||""),C,R):p.el=c.el},D=(c,p,C,R)=>{[c.el,c.anchor]=y(c.children,p,C,R,c.el,c.anchor)},ne=({el:c,anchor:p},C,R)=>{let I;for(;c&&c!==p;)I=E(c),n(c,C,R),c=I;n(p,C,R)},M=({el:c,anchor:p})=>{let C;for(;c&&c!==p;)C=E(c),o(c),c=C;o(p)},j=(c,p,C,R,I,L,U,H,F)=>{if(p.type==="svg"?U="svg":p.type==="math"&&(U="mathml"),c==null)V(p,C,R,I,L,U,H,F);else{const P=c.el&&c.el._isVueCE?c.el:null;try{P&&P._beginPatch(),G(c,p,I,L,U,H,F)}finally{P&&P._endPatch()}}},V=(c,p,C,R,I,L,U,H)=>{let F,P;const{props:Q,shapeFlag:B,transition:X,dirs:te}=c;if(F=c.el=r(c.type,L,Q&&Q.is,Q),B&8?d(F,c.children):B&16&&xe(c.children,F,null,R,I,yn(c,L),U,H),te&&Tt(c,null,R,"created"),ie(F,c,c.scopeId,U,R),Q){for(const h in Q)h!=="value"&&!fs(h)&&l(F,h,null,Q[h],L,R);"value"in Q&&l(F,"value",null,Q.value,L),(P=Q.onVnodeBeforeMount)&&tt(P,R,c)}te&&Tt(c,null,R,"beforeMount");const f=qr(I,X);f&&X.beforeEnter(F),n(F,p,C),((P=Q&&Q.onVnodeMounted)||f||te)&&Ke(()=>{P&&tt(P,R,c),f&&X.enter(F),te&&Tt(c,null,R,"mounted")},I)},ie=(c,p,C,R,I)=>{if(C&&$(c,C),R)for(let L=0;L<R.length;L++)$(c,R[L]);if(I){let L=I.subTree;if(p===L||ti(L.type)&&(L.ssContent===p||L.ssFallback===p)){const U=I.vnode;ie(c,U,U.scopeId,U.slotScopeIds,I.parent)}}},xe=(c,p,C,R,I,L,U,H,F=0)=>{for(let P=F;P<c.length;P++){const Q=c[P]=H?ft(c[P]):lt(c[P]);O(null,Q,p,C,R,I,L,U,H)}},G=(c,p,C,R,I,L,U)=>{const H=p.el=c.el;let{patchFlag:F,dynamicChildren:P,dirs:Q}=p;F|=c.patchFlag&16;const B=c.props||_e,X=p.props||_e;let te;if(C&&Mt(C,!1),(te=X.onVnodeBeforeUpdate)&&tt(te,C,p,c),Q&&Tt(p,c,C,"beforeUpdate"),C&&Mt(C,!0),(B.innerHTML&&X.innerHTML==null||B.textContent&&X.textContent==null)&&d(H,""),P?re(c.dynamicChildren,P,H,C,R,yn(p,I),L):U||w(c,p,H,null,C,R,yn(p,I),L,!1),F>0){if(F&16)A(H,B,X,C,I);else if(F&2&&B.class!==X.class&&l(H,"class",null,X.class,I),F&4&&l(H,"style",B.style,X.style,I),F&8){const f=p.dynamicProps;for(let h=0;h<f.length;h++){const k=f[h],ee=B[k],q=X[k];(q!==ee||k==="value")&&l(H,k,ee,q,I,C)}}F&1&&c.children!==p.children&&d(H,p.children)}else!U&&P==null&&A(H,B,X,C,I);((te=X.onVnodeUpdated)||Q)&&Ke(()=>{te&&tt(te,C,p,c),Q&&Tt(p,c,C,"updated")},R)},re=(c,p,C,R,I,L,U)=>{for(let H=0;H<p.length;H++){const F=c[H],P=p[H],Q=F.el&&(F.type===de||!Lt(F,P)||F.shapeFlag&198)?g(F.el):C;O(F,P,Q,null,R,I,L,U,!0)}},A=(c,p,C,R,I)=>{if(p!==C){if(p!==_e)for(const L in p)!fs(L)&&!(L in C)&&l(c,L,p[L],null,I,R);for(const L in C){if(fs(L))continue;const U=C[L],H=p[L];U!==H&&L!=="value"&&l(c,L,H,U,I,R)}"value"in C&&l(c,"value",p.value,C.value,I)}},_=(c,p,C,R,I,L,U,H,F)=>{const P=p.el=c?c.el:a(""),Q=p.anchor=c?c.anchor:a("");let{patchFlag:B,dynamicChildren:X,slotScopeIds:te}=p;te&&(H=H?H.concat(te):te),c==null?(n(P,C,R),n(Q,C,R),xe(p.children||[],C,Q,I,L,U,H,F)):B>0&&B&64&&X&&c.dynamicChildren&&c.dynamicChildren.length===X.length?(re(c.dynamicChildren,X,C,I,L,U,H),(p.key!=null||I&&p===I.subTree)&&Ql(c,p,!0)):w(c,p,C,Q,I,L,U,H,F)},x=(c,p,C,R,I,L,U,H,F)=>{p.slotScopeIds=H,c==null?p.shapeFlag&512?I.ctx.activate(p,C,R,U,F):J(p,C,R,I,L,U,F):ae(c,p,F)},J=(c,p,C,R,I,L,U)=>{const H=c.component=na(c,R,I);if(rn(c)&&(H.ctx.renderer=bt),oa(H,!1,U),H.asyncDep){if(I&&I.registerDep(H,N,U),!c.el){const F=H.subTree=Oe(Ve);Y(null,F,p,C),c.placeholder=F.el}}else N(H,c,p,C,I,L,U)},ae=(c,p,C)=>{const R=p.component=c.component;if(Fr(c,p,C))if(R.asyncDep&&!R.asyncResolved){v(R,p,C);return}else R.next=p,R.update();else p.el=c.el,R.vnode=p},N=(c,p,C,R,I,L,U)=>{const H=()=>{if(c.isMounted){let{next:B,bu:X,u:te,parent:f,vnode:h}=c;{const be=Zl(c);if(be){B&&(B.el=h.el,v(c,B,U)),be.asyncDep.then(()=>{Ke(()=>{c.isUnmounted||P()},I)});return}}let k=B,ee;Mt(c,!1),B?(B.el=h.el,v(c,B,U)):B=h,X&&Ps(X),(ee=B.props&&B.props.onVnodeBeforeUpdate)&&tt(ee,f,B,h),Mt(c,!0);const q=yo(c),z=c.subTree;c.subTree=q,O(z,q,g(z.el),Re(z),c,I,L),B.el=q.el,k===null&&jr(c,q.el),te&&Ke(te,I),(ee=B.props&&B.props.onVnodeUpdated)&&Ke(()=>tt(ee,f,B,h),I)}else{let B;const{el:X,props:te}=p,{bm:f,m:h,parent:k,root:ee,type:q}=c,z=ms(p);Mt(c,!1),f&&Ps(f),!z&&(B=te&&te.onVnodeBeforeMount)&&tt(B,k,p),Mt(c,!0);{ee.ce&&ee.ce._hasShadowRoot()&&ee.ce._injectChildStyle(q,c.parent?c.parent.type:void 0);const be=c.subTree=yo(c);O(null,be,C,R,c,I,L),p.el=be.el}if(h&&Ke(h,I),!z&&(B=te&&te.onVnodeMounted)){const be=p;Ke(()=>tt(B,k,be),I)}(p.shapeFlag&256||k&&ms(k.vnode)&&k.vnode.shapeFlag&256)&&c.a&&Ke(c.a,I),c.isMounted=!0,p=C=R=null}};c.scope.on();const F=c.effect=new ol(H);c.scope.off();const P=c.update=F.run.bind(F),Q=c.job=F.runIfDirty.bind(F);Q.i=c,Q.id=c.uid,F.scheduler=()=>Zn(Q),Mt(c,!0),P()},v=(c,p,C)=>{p.component=c;const R=c.vnode.props;c.vnode=p,c.next=null,Hr(c,p.props,R,C),Kr(c,p.children,C),vt(),fo(c),mt()},w=(c,p,C,R,I,L,U,H,F=!1)=>{const P=c&&c.children,Q=c?c.shapeFlag:0,B=p.children,{patchFlag:X,shapeFlag:te}=p;if(X>0){if(X&128){K(P,B,C,R,I,L,U,H,F);return}else if(X&256){fe(P,B,C,R,I,L,U,H,F);return}}te&8?(Q&16&&Me(P,I,L),B!==P&&d(C,B)):Q&16?te&16?K(P,B,C,R,I,L,U,H,F):Me(P,I,L,!0):(Q&8&&d(C,""),te&16&&xe(B,C,R,I,L,U,H,F))},fe=(c,p,C,R,I,L,U,H,F)=>{c=c||Gt,p=p||Gt;const P=c.length,Q=p.length,B=Math.min(P,Q);let X;for(X=0;X<B;X++){const te=p[X]=F?ft(p[X]):lt(p[X]);O(c[X],te,C,null,I,L,U,H,F)}P>Q?Me(c,I,L,!0,!1,B):xe(p,C,R,I,L,U,H,F,B)},K=(c,p,C,R,I,L,U,H,F)=>{let P=0;const Q=p.length;let B=c.length-1,X=Q-1;for(;P<=B&&P<=X;){const te=c[P],f=p[P]=F?ft(p[P]):lt(p[P]);if(Lt(te,f))O(te,f,C,null,I,L,U,H,F);else break;P++}for(;P<=B&&P<=X;){const te=c[B],f=p[X]=F?ft(p[X]):lt(p[X]);if(Lt(te,f))O(te,f,C,null,I,L,U,H,F);else break;B--,X--}if(P>B){if(P<=X){const te=X+1,f=te<Q?p[te].el:R;for(;P<=X;)O(null,p[P]=F?ft(p[P]):lt(p[P]),C,f,I,L,U,H,F),P++}}else if(P>X)for(;P<=B;)we(c[P],I,L,!0),P++;else{const te=P,f=P,h=new Map;for(P=f;P<=X;P++){const je=p[P]=F?ft(p[P]):lt(p[P]);je.key!=null&&h.set(je.key,P)}let k,ee=0;const q=X-f+1;let z=!1,be=0;const Fe=new Array(q);for(P=0;P<q;P++)Fe[P]=0;for(P=te;P<=B;P++){const je=c[P];if(ee>=q){we(je,I,L,!0);continue}let Ae;if(je.key!=null)Ae=h.get(je.key);else for(k=f;k<=X;k++)if(Fe[k-f]===0&&Lt(je,p[k])){Ae=k;break}Ae===void 0?we(je,I,L,!0):(Fe[Ae-f]=P+1,Ae>=be?be=Ae:z=!0,O(je,p[Ae],C,null,I,L,U,H,F),ee++)}const Os=z?Jr(Fe):Gt;for(k=Os.length-1,P=q-1;P>=0;P--){const je=f+P,Ae=p[je],As=p[je+1],ls=je+1<Q?As.el||ei(As):R;Fe[P]===0?O(null,Ae,C,ls,I,L,U,H,F):z&&(k<0||P!==Os[k]?pe(Ae,C,ls,2):k--)}}},pe=(c,p,C,R,I=null)=>{const{el:L,type:U,transition:H,children:F,shapeFlag:P}=c;if(P&6){pe(c.component.subTree,p,C,R);return}if(P&128){c.suspense.move(p,C,R);return}if(P&64){U.move(c,p,C,bt);return}if(U===de){n(L,p,C);for(let B=0;B<F.length;B++)pe(F[B],p,C,R);n(c.anchor,p,C);return}if(U===Fs){ne(c,p,C);return}if(R!==2&&P&1&&H)if(R===0)H.beforeEnter(L),n(L,p,C),Ke(()=>H.enter(L),I);else{const{leave:B,delayLeave:X,afterLeave:te}=H,f=()=>{c.ctx.isUnmounted?o(L):n(L,p,C)},h=()=>{L._isLeaving&&L[nt](!0),B(L,()=>{f(),te&&te()})};X?X(L,f,h):h()}else n(L,p,C)},we=(c,p,C,R=!1,I=!1)=>{const{type:L,props:U,ref:H,children:F,dynamicChildren:P,shapeFlag:Q,patchFlag:B,dirs:X,cacheIndex:te}=c;if(B===-2&&(I=!1),H!=null&&(vt(),vs(H,null,C,c,!0),mt()),te!=null&&(p.renderCache[te]=void 0),Q&256){p.ctx.deactivate(c);return}const f=Q&1&&X,h=!ms(c);let k;if(h&&(k=U&&U.onVnodeBeforeUnmount)&&tt(k,p,c),Q&6)ke(c.component,C,R);else{if(Q&128){c.suspense.unmount(C,R);return}f&&Tt(c,null,p,"beforeUnmount"),Q&64?c.type.remove(c,p,C,bt,R):P&&!P.hasOnce&&(L!==de||B>0&&B&64)?Me(P,p,C,!1,!0):(L===de&&B&384||!I&&Q&16)&&Me(F,p,C),R&&Se(c)}(h&&(k=U&&U.onVnodeUnmounted)||f)&&Ke(()=>{k&&tt(k,p,c),f&&Tt(c,null,p,"unmounted")},C)},Se=c=>{const{type:p,el:C,anchor:R,transition:I}=c;if(p===de){qe(C,R);return}if(p===Fs){M(c);return}const L=()=>{o(C),I&&!I.persisted&&I.afterLeave&&I.afterLeave()};if(c.shapeFlag&1&&I&&!I.persisted){const{leave:U,delayLeave:H}=I,F=()=>U(C,L);H?H(c.el,L,F):F()}else L()},qe=(c,p)=>{let C;for(;c!==p;)C=E(c),o(c),c=C;o(p)},ke=(c,p,C)=>{const{bum:R,scope:I,job:L,subTree:U,um:H,m:F,a:P}=c;$o(F),$o(P),R&&Ps(R),I.stop(),L&&(L.flags|=8,we(U,c,p,C)),H&&Ke(H,p),Ke(()=>{c.isUnmounted=!0},p)},Me=(c,p,C,R=!1,I=!1,L=0)=>{for(let U=L;U<c.length;U++)we(c[U],p,C,R,I)},Re=c=>{if(c.shapeFlag&6)return Re(c.component.subTree);if(c.shapeFlag&128)return c.suspense.next();const p=E(c.anchor||c.el),C=p&&p[cr];return C?E(C):p};let Ut=!1;const os=(c,p,C)=>{let R;c==null?p._vnode&&(we(p._vnode,null,null,!0),R=p._vnode.component):O(p._vnode||null,c,p,null,null,null,C),p._vnode=c,Ut||(Ut=!0,fo(R),$l(),Ut=!1)},bt={p:O,um:we,m:pe,r:Se,mt:J,mc:xe,pc:w,pbc:re,n:Re,o:e};return{render:os,hydrate:void 0,createApp:Ar(os)}}function yn({type:e,props:t},s){return s==="svg"&&e==="foreignObject"||s==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:s}function Mt({effect:e,job:t},s){s?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function qr(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Ql(e,t,s=!1){const n=e.children,o=t.children;if(Z(n)&&Z(o))for(let l=0;l<n.length;l++){const r=n[l];let a=o[l];a.shapeFlag&1&&!a.dynamicChildren&&((a.patchFlag<=0||a.patchFlag===32)&&(a=o[l]=ft(o[l]),a.el=r.el),!s&&a.patchFlag!==-2&&Ql(r,a)),a.type===un&&(a.patchFlag===-1&&(a=o[l]=ft(a)),a.el=r.el),a.type===Ve&&!a.el&&(a.el=r.el)}}function Jr(e){const t=e.slice(),s=[0];let n,o,l,r,a;const u=e.length;for(n=0;n<u;n++){const m=e[n];if(m!==0){if(o=s[s.length-1],e[o]<m){t[n]=o,s.push(n);continue}for(l=0,r=s.length-1;l<r;)a=l+r>>1,e[s[a]]<m?l=a+1:r=a;m<e[s[l]]&&(l>0&&(t[n]=s[l-1]),s[l]=n)}}for(l=s.length,r=s[l-1];l-- >0;)s[l]=r,r=t[r];return s}function Zl(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Zl(t)}function $o(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function ei(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?ei(t.subTree):null}const ti=e=>e.__isSuspense;function Gr(e,t){t&&t.pendingBranch?Z(e)?t.effects.push(...e):t.effects.push(e):or(e)}const de=Symbol.for("v-fgt"),un=Symbol.for("v-txt"),Ve=Symbol.for("v-cmt"),Fs=Symbol.for("v-stc"),_s=[];let ze=null;function S(e=!1){_s.push(ze=e?null:[])}function Yr(){_s.pop(),ze=_s[_s.length-1]||null}let $s=1;function qs(e,t=!1){$s+=e,e<0&&ze&&t&&(ze.hasOnce=!0)}function si(e){return e.dynamicChildren=$s>0?ze||Gt:null,Yr(),$s>0&&ze&&ze.push(e),e}function T(e,t,s,n,o,l){return si(i(e,t,s,n,o,l,!0))}function Nt(e,t,s,n,o){return si(Oe(e,t,s,n,o,!0))}function Js(e){return e?e.__v_isVNode===!0:!1}function Lt(e,t){return e.type===t.type&&e.key===t.key}const ni=({key:e})=>e??null,js=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?Ce(e)||Pe(e)||le(e)?{i:Ge,r:e,k:t,f:!!s}:e:null);function i(e,t=null,s=null,n=0,o=null,l=e===de?0:1,r=!1,a=!1){const u={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ni(t),ref:t&&js(t),scopeId:Sl,slotScopeIds:null,children:s,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:l,patchFlag:n,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:Ge};return a?(so(u,s),l&128&&e.normalize(u)):s&&(u.shapeFlag|=Ce(s)?8:16),$s>0&&!r&&ze&&(u.patchFlag>0||l&6)&&u.patchFlag!==32&&ze.push(u),u}const Oe=Xr;function Xr(e,t=null,s=null,n=0,o=null,l=!1){if((!e||e===$r)&&(e=Ve),Js(e)){const a=St(e,t,!0);return s&&so(a,s),$s>0&&!l&&ze&&(a.shapeFlag&6?ze[ze.indexOf(e)]=a:ze.push(a)),a.patchFlag=-2,a}if(aa(e)&&(e=e.__vccOpts),t){t=Qr(t);let{class:a,style:u}=t;a&&!Ce(a)&&(t.class=oe(a)),ge(u)&&(Qn(u)&&!Z(u)&&(u=Te({},u)),t.style=Ee(u))}const r=Ce(e)?1:ti(e)?128:Ml(e)?64:ge(e)?4:le(e)?2:0;return i(e,t,s,n,o,r,l,!0)}function Qr(e){return e?Qn(e)||zl(e)?Te({},e):e:null}function St(e,t,s=!1,n=!1){const{props:o,ref:l,patchFlag:r,children:a,transition:u}=e,m=t?ea(o||{},t):o,d={__v_isVNode:!0,__v_skip:!0,type:e.type,props:m,key:m&&ni(m),ref:t&&t.ref?s&&l?Z(l)?l.concat(js(t)):[l,js(t)]:js(t):l,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==de?r===-1?16:r|16:r,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:u,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&St(e.ssContent),ssFallback:e.ssFallback&&St(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return u&&n&&ws(d,u.clone(d)),d}function Le(e=" ",t=0){return Oe(un,null,e,t)}function Zr(e,t){const s=Oe(Fs,null,e);return s.staticCount=t,s}function se(e="",t=!1){return t?(S(),Nt(Ve,null,e)):Oe(Ve,null,e)}function lt(e){return e==null||typeof e=="boolean"?Oe(Ve):Z(e)?Oe(de,null,e.slice()):Js(e)?ft(e):Oe(un,null,String(e))}function ft(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:St(e)}function so(e,t){let s=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(Z(t))s=16;else if(typeof t=="object")if(n&65){const o=t.default;o&&(o._c&&(o._d=!1),so(e,o()),o._c&&(o._d=!0));return}else{s=32;const o=t._;!o&&!zl(t)?t._ctx=Ge:o===3&&Ge&&(Ge.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else le(t)?(t={default:t,_ctx:Ge},s=32):(t=String(t),n&64?(s=16,t=[Le(t)]):s=8);e.children=t,e.shapeFlag|=s}function ea(...e){const t={};for(let s=0;s<e.length;s++){const n=e[s];for(const o in n)if(o==="class")t.class!==n.class&&(t.class=oe([t.class,n.class]));else if(o==="style")t.style=Ee([t.style,n.style]);else if(Zs(o)){const l=t[o],r=n[o];r&&l!==r&&!(Z(l)&&l.includes(r))&&(t[o]=l?[].concat(l,r):r)}else o!==""&&(t[o]=n[o])}return t}function tt(e,t,s,n=null){et(e,t,7,[s,n])}const ta=Vl();let sa=0;function na(e,t,s){const n=e.type,o=(t?t.appContext:e.appContext)||ta,l={uid:sa++,vnode:e,type:n,parent:t,appContext:o,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new ki(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(o.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Jl(n,o),emitsOptions:Ul(n,o),emit:null,emitted:null,propsDefaults:_e,inheritAttrs:n.inheritAttrs,ctx:_e,data:_e,props:_e,attrs:_e,slots:_e,refs:_e,setupState:_e,setupContext:null,suspense:s,suspenseId:s?s.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return l.ctx={_:l},l.root=t?t.root:l,l.emit=Nr.bind(null,l),e.ce&&e.ce(l),l}let Ue=null;const oi=()=>Ue||Ge;let Gs,Ln;{const e=nn(),t=(s,n)=>{let o;return(o=e[s])||(o=e[s]=[]),o.push(n),l=>{o.length>1?o.forEach(r=>r(l)):o[0](l)}};Gs=t("__VUE_INSTANCE_SETTERS__",s=>Ue=s),Ln=t("__VUE_SSR_SETTERS__",s=>Cs=s)}const Es=e=>{const t=Ue;return Gs(e),e.scope.on(),()=>{e.scope.off(),Gs(t)}},Co=()=>{Ue&&Ue.scope.off(),Gs(null)};function li(e){return e.vnode.shapeFlag&4}let Cs=!1;function oa(e,t=!1,s=!1){t&&Ln(t);const{props:n,children:o}=e.vnode,l=li(e);Dr(e,n,l,t),Br(e,o,s||t);const r=l?la(e,t):void 0;return t&&Ln(!1),r}function la(e,t){const s=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Cr);const{setup:n}=s;if(n){vt();const o=e.setupContext=n.length>1?ra(e):null,l=Es(e),r=Ms(n,e,0,[e.props,o]),a=Yo(r);if(mt(),l(),(a||e.sp)&&!ms(e)&&Ll(e),a){if(r.then(Co,Co),t)return r.then(u=>{So(e,u)}).catch(u=>{ln(u,e,0)});e.asyncDep=r}else So(e,r)}else ii(e)}function So(e,t,s){le(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ge(t)&&(e.setupState=bl(t)),ii(e)}function ii(e,t,s){const n=e.type;e.render||(e.render=n.render||rt);{const o=Es(e);vt();try{Sr(e)}finally{mt(),o()}}}const ia={get(e,t){return Ne(e,"get",""),e[t]}};function ra(e){const t=s=>{e.exposed=s||{}};return{attrs:new Proxy(e.attrs,ia),slots:e.slots,emit:e.emit,expose:t}}function dn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(bl(qi(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in gs)return gs[s](e)},has(t,s){return s in t||s in gs}})):e.proxy}function aa(e){return le(e)&&"__vccOpts"in e}const ce=(e,t)=>Zi(e,t,Cs);function Ie(e,t,s){try{qs(-1);const n=arguments.length;return n===2?ge(t)&&!Z(t)?Js(t)?Oe(e,null,[t]):Oe(e,t):Oe(e,null,t):(n>3?s=Array.prototype.slice.call(arguments,2):n===3&&Js(s)&&(s=[s]),Oe(e,t,s))}finally{qs(1)}}const ca="3.5.30";/**
14
+ * @vue/runtime-dom v3.5.30
15
+ * (c) 2018-present Yuxi (Evan) You and Vue contributors
16
+ * @license MIT
17
+ **/let Pn;const ko=typeof window<"u"&&window.trustedTypes;if(ko)try{Pn=ko.createPolicy("vue",{createHTML:e=>e})}catch{}const ri=Pn?e=>Pn.createHTML(e):e=>e,ua="http://www.w3.org/2000/svg",da="http://www.w3.org/1998/Math/MathML",dt=typeof document<"u"?document:null,To=dt&&dt.createElement("template"),fa={insert:(e,t,s)=>{t.insertBefore(e,s||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,s,n)=>{const o=t==="svg"?dt.createElementNS(ua,e):t==="mathml"?dt.createElementNS(da,e):s?dt.createElement(e,{is:s}):dt.createElement(e);return e==="select"&&n&&n.multiple!=null&&o.setAttribute("multiple",n.multiple),o},createText:e=>dt.createTextNode(e),createComment:e=>dt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>dt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,s,n,o,l){const r=s?s.previousSibling:t.lastChild;if(o&&(o===l||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),s),!(o===l||!(o=o.nextSibling)););else{To.innerHTML=ri(n==="svg"?`<svg>${e}</svg>`:n==="mathml"?`<math>${e}</math>`:e);const a=To.content;if(n==="svg"||n==="mathml"){const u=a.firstChild;for(;u.firstChild;)a.appendChild(u.firstChild);a.removeChild(u)}t.insertBefore(a,s)}return[r?r.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}},yt="transition",as="animation",Ss=Symbol("_vtc"),ai={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},pa=Te({},El,ai),ha=e=>(e.displayName="Transition",e.props=pa,e),Rn=ha((e,{slots:t})=>Ie(fr,va(e),t)),Et=(e,t=[])=>{Z(e)?e.forEach(s=>s(...t)):e&&e(...t)},Mo=e=>e?Z(e)?e.some(t=>t.length>1):e.length>1:!1;function va(e){const t={};for(const _ in e)_ in ai||(t[_]=e[_]);if(e.css===!1)return t;const{name:s="v",type:n,duration:o,enterFromClass:l=`${s}-enter-from`,enterActiveClass:r=`${s}-enter-active`,enterToClass:a=`${s}-enter-to`,appearFromClass:u=l,appearActiveClass:m=r,appearToClass:d=a,leaveFromClass:g=`${s}-leave-from`,leaveActiveClass:E=`${s}-leave-active`,leaveToClass:$=`${s}-leave-to`}=e,y=ma(o),O=y&&y[0],W=y&&y[1],{onBeforeEnter:Y,onEnter:D,onEnterCancelled:ne,onLeave:M,onLeaveCancelled:j,onBeforeAppear:V=Y,onAppear:ie=D,onAppearCancelled:xe=ne}=t,G=(_,x,J,ae)=>{_._enterCancelled=ae,Ot(_,x?d:a),Ot(_,x?m:r),J&&J()},re=(_,x)=>{_._isLeaving=!1,Ot(_,g),Ot(_,$),Ot(_,E),x&&x()},A=_=>(x,J)=>{const ae=_?ie:D,N=()=>G(x,_,J);Et(ae,[x,N]),Eo(()=>{Ot(x,_?u:l),ut(x,_?d:a),Mo(ae)||Oo(x,n,O,N)})};return Te(t,{onBeforeEnter(_){Et(Y,[_]),ut(_,l),ut(_,r)},onBeforeAppear(_){Et(V,[_]),ut(_,u),ut(_,m)},onEnter:A(!1),onAppear:A(!0),onLeave(_,x){_._isLeaving=!0;const J=()=>re(_,x);ut(_,g),_._enterCancelled?(ut(_,E),No(_)):(No(_),ut(_,E)),Eo(()=>{_._isLeaving&&(Ot(_,g),ut(_,$),Mo(M)||Oo(_,n,W,J))}),Et(M,[_,J])},onEnterCancelled(_){G(_,!1,void 0,!0),Et(ne,[_])},onAppearCancelled(_){G(_,!0,void 0,!0),Et(xe,[_])},onLeaveCancelled(_){re(_),Et(j,[_])}})}function ma(e){if(e==null)return null;if(ge(e))return[xn(e.enter),xn(e.leave)];{const t=xn(e);return[t,t]}}function xn(e){return gi(e)}function ut(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.add(s)),(e[Ss]||(e[Ss]=new Set)).add(t)}function Ot(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.remove(n));const s=e[Ss];s&&(s.delete(t),s.size||(e[Ss]=void 0))}function Eo(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let ga=0;function Oo(e,t,s,n){const o=e._endId=++ga,l=()=>{o===e._endId&&n()};if(s!=null)return setTimeout(l,s);const{type:r,timeout:a,propCount:u}=_a(e,t);if(!r)return n();const m=r+"end";let d=0;const g=()=>{e.removeEventListener(m,E),l()},E=$=>{$.target===e&&++d>=u&&g()};setTimeout(()=>{d<u&&g()},a+1),e.addEventListener(m,E)}function _a(e,t){const s=window.getComputedStyle(e),n=y=>(s[y]||"").split(", "),o=n(`${yt}Delay`),l=n(`${yt}Duration`),r=Ao(o,l),a=n(`${as}Delay`),u=n(`${as}Duration`),m=Ao(a,u);let d=null,g=0,E=0;t===yt?r>0&&(d=yt,g=r,E=l.length):t===as?m>0&&(d=as,g=m,E=u.length):(g=Math.max(r,m),d=g>0?r>m?yt:as:null,E=d?d===yt?l.length:u.length:0);const $=d===yt&&/\b(?:transform|all)(?:,|$)/.test(n(`${yt}Property`).toString());return{type:d,timeout:g,propCount:E,hasTransform:$}}function Ao(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((s,n)=>Io(s)+Io(e[n])))}function Io(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function No(e){return(e?e.ownerDocument:document).body.offsetHeight}function ba(e,t,s){const n=e[Ss];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}const Lo=Symbol("_vod"),ya=Symbol("_vsh"),xa=Symbol(""),wa=/(?:^|;)\s*display\s*:/;function $a(e,t,s){const n=e.style,o=Ce(s);let l=!1;if(s&&!o){if(t)if(Ce(t))for(const r of t.split(";")){const a=r.slice(0,r.indexOf(":")).trim();s[a]==null&&Ds(n,a,"")}else for(const r in t)s[r]==null&&Ds(n,r,"");for(const r in s)r==="display"&&(l=!0),Ds(n,r,s[r])}else if(o){if(t!==s){const r=n[xa];r&&(s+=";"+r),n.cssText=s,l=wa.test(s)}}else t&&e.removeAttribute("style");Lo in e&&(e[Lo]=l?n.display:"",e[ya]&&(n.display="none"))}const Po=/\s*!important$/;function Ds(e,t,s){if(Z(s))s.forEach(n=>Ds(e,t,n));else if(s==null&&(s=""),t.startsWith("--"))e.setProperty(t,s);else{const n=Ca(e,t);Po.test(s)?e.setProperty(Vt(n),s.replace(Po,""),"important"):e[n]=s}}const Ro=["Webkit","Moz","ms"],wn={};function Ca(e,t){const s=wn[t];if(s)return s;let n=Xe(t);if(n!=="filter"&&n in e)return wn[t]=n;n=Zo(n);for(let o=0;o<Ro.length;o++){const l=Ro[o]+n;if(l in e)return wn[t]=l}return t}const Fo="http://www.w3.org/1999/xlink";function jo(e,t,s,n,o,l=$i(t)){n&&t.startsWith("xlink:")?s==null?e.removeAttributeNS(Fo,t.slice(6,t.length)):e.setAttributeNS(Fo,t,s):s==null||l&&!tl(s)?e.removeAttribute(t):e.setAttribute(t,l?"":at(s)?String(s):s)}function Do(e,t,s,n,o){if(t==="innerHTML"||t==="textContent"){s!=null&&(e[t]=t==="innerHTML"?ri(s):s);return}const l=e.tagName;if(t==="value"&&l!=="PROGRESS"&&!l.includes("-")){const a=l==="OPTION"?e.getAttribute("value")||"":e.value,u=s==null?e.type==="checkbox"?"on":"":String(s);(a!==u||!("_value"in e))&&(e.value=u),s==null&&e.removeAttribute(t),e._value=s;return}let r=!1;if(s===""||s==null){const a=typeof e[t];a==="boolean"?s=tl(s):s==null&&a==="string"?(s="",r=!0):a==="number"&&(s=0,r=!0)}try{e[t]=s}catch{}r&&e.removeAttribute(o||t)}function Pt(e,t,s,n){e.addEventListener(t,s,n)}function Sa(e,t,s,n){e.removeEventListener(t,s,n)}const Ho=Symbol("_vei");function ka(e,t,s,n,o=null){const l=e[Ho]||(e[Ho]={}),r=l[t];if(n&&r)r.value=n;else{const[a,u]=Ta(t);if(n){const m=l[t]=Oa(n,o);Pt(e,a,m,u)}else r&&(Sa(e,a,r,u),l[t]=void 0)}}const Vo=/(?:Once|Passive|Capture)$/;function Ta(e){let t;if(Vo.test(e)){t={};let n;for(;n=e.match(Vo);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):Vt(e.slice(2)),t]}let $n=0;const Ma=Promise.resolve(),Ea=()=>$n||(Ma.then(()=>$n=0),$n=Date.now());function Oa(e,t){const s=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=s.attached)return;et(Aa(n,s.value),t,5,[n])};return s.value=e,s.attached=Ea(),s}function Aa(e,t){if(Z(t)){const s=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{s.call(e),e._stopped=!0},t.map(n=>o=>!o._stopped&&n&&n(o))}else return t}const Uo=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Ia=(e,t,s,n,o,l)=>{const r=o==="svg";t==="class"?ba(e,n,r):t==="style"?$a(e,s,n):Zs(t)?Un(t)||ka(e,t,s,n,l):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Na(e,t,n,r))?(Do(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&jo(e,t,n,r,l,t!=="value")):e._isVueCE&&(La(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Ce(n)))?Do(e,Xe(t),n,l,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),jo(e,t,n,r))};function Na(e,t,s,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Uo(t)&&le(s));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return Uo(t)&&Ce(s)?!1:t in e}function La(e,t){const s=e._def.props;if(!s)return!1;const n=Xe(t);return Array.isArray(s)?s.some(o=>Xe(o)===n):Object.keys(s).some(o=>Xe(o)===n)}const Ys=e=>{const t=e.props["onUpdate:modelValue"]||!1;return Z(t)?s=>Ps(t,s):t};function Pa(e){e.target.composing=!0}function Bo(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Zt=Symbol("_assign");function Ko(e,t,s){return t&&(e=e.trim()),s&&(e=sn(e)),e}const ts={created(e,{modifiers:{lazy:t,trim:s,number:n}},o){e[Zt]=Ys(o);const l=n||o.props&&o.props.type==="number";Pt(e,t?"change":"input",r=>{r.target.composing||e[Zt](Ko(e.value,s,l))}),(s||l)&&Pt(e,"change",()=>{e.value=Ko(e.value,s,l)}),t||(Pt(e,"compositionstart",Pa),Pt(e,"compositionend",Bo),Pt(e,"change",Bo))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:s,modifiers:{lazy:n,trim:o,number:l}},r){if(e[Zt]=Ys(r),e.composing)return;const a=(l||e.type==="number")&&!/^0\d/.test(e.value)?sn(e.value):e.value,u=t??"";a!==u&&(document.activeElement===e&&e.type!=="range"&&(n&&t===s||o&&e.value.trim()===u)||(e.value=u))}},Ra={deep:!0,created(e,{value:t,modifiers:{number:s}},n){const o=en(t);Pt(e,"change",()=>{const l=Array.prototype.filter.call(e.options,r=>r.selected).map(r=>s?sn(Xs(r)):Xs(r));e[Zt](e.multiple?o?new Set(l):l:l[0]),e._assigning=!0,xl(()=>{e._assigning=!1})}),e[Zt]=Ys(n)},mounted(e,{value:t}){Wo(e,t)},beforeUpdate(e,t,s){e[Zt]=Ys(s)},updated(e,{value:t}){e._assigning||Wo(e,t)}};function Wo(e,t){const s=e.multiple,n=Z(t);if(!(s&&!n&&!en(t))){for(let o=0,l=e.options.length;o<l;o++){const r=e.options[o],a=Xs(r);if(s)if(n){const u=typeof a;u==="string"||u==="number"?r.selected=t.some(m=>String(m)===String(a)):r.selected=Si(t,a)>-1}else r.selected=t.has(a);else if(Ts(Xs(r),t)){e.selectedIndex!==o&&(e.selectedIndex=o);return}}!s&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Xs(e){return"_value"in e?e._value:e.value}const Fa=["ctrl","shift","alt","meta"],ja={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Fa.some(s=>e[`${s}Key`]&&!t.includes(s))},Kt=(e,t)=>{if(!e)return e;const s=e._withMods||(e._withMods={}),n=t.join(".");return s[n]||(s[n]=((o,...l)=>{for(let r=0;r<t.length;r++){const a=ja[t[r]];if(a&&a(o,t))return}return e(o,...l)}))},Da=Te({patchProp:Ia},fa);let zo;function Ha(){return zo||(zo=Wr(Da))}const Va=((...e)=>{const t=Ha().createApp(...e),{mount:s}=t;return t.mount=n=>{const o=Ba(n);if(!o)return;const l=t._component;!le(l)&&!l.render&&!l.template&&(l.template=o.innerHTML),o.nodeType===1&&(o.textContent="");const r=s(o,!1,Ua(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),r},t});function Ua(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Ba(e){return Ce(e)?document.querySelector(e):e}let It;const cs=[];function ci(e){if(cs.push(e),!(typeof window>"u"))return window.__NUXT_DEVTOOLS__&&cs.forEach(t=>t(window.__NUXT_DEVTOOLS__)),Object.defineProperty(window,"__NUXT_DEVTOOLS__",{set(t){t&&cs.forEach(s=>s(t))},get(){return It.value},configurable:!0}),()=>{cs.splice(cs.indexOf(e),1)}}function ui(){It||(It=Ji(),ci(t));function e(){It&&Yi(It)}function t(s){It.value=s,s.host&&s.host.hooks.hook("host:update:reactivity",e)}return It}const Fn=ue([]),di=ue({provides:[],injects:[]}),Qs=ue([]),jn=ue([]),Dn=ue([]),fi=ue(!1),Rt=ue({}),Ka=typeof window<"u"&&new URLSearchParams(window.location.search).has("debugRpc");let qo=!1,ve=null,Jo=!1,Hs=null,xt=null;function kt(...e){Ka&&console.info("[observatory][rpc][iframe]",...e)}function us(e){return e?e.map(t=>({...t})):[]}function Wa(e){return e?e.map(t=>({...t})):[]}function Hn(e){var s;Fn.value=us(e.fetch),di.value=e.provideInject?{provides:us(e.provideInject.provides),injects:us(e.provideInject.injects)}:{provides:[],injects:[]},Qs.value=us(e.composables),jn.value=Wa(e.renders),Dn.value=us(e.transitions),Rt.value=e.features||{};const t=(s=Rt.value)==null?void 0:s.composableNavigationMode;xt&&t!==xt&&(Rt.value={...Rt.value||{},composableNavigationMode:xt},ve==null||ve.setComposableMode(xt).then(()=>ve==null?void 0:ve.requestSnapshot()).catch(n=>{kt("setComposableMode reconcile failed",n)})),xt&&t===xt&&(xt=null),fi.value=!0,Jo||(Jo=!0,kt("first snapshot received",{fetch:Fn.value.length,composables:Qs.value.length,renders:jn.value.length,transitions:Dn.value.length}))}function za(){if(qo)return;qo=!0;const e=ui(),t=()=>{if(!(!e.value||ve)){if(ve=e.value.devtools.extendClientRpc("observatory",{onSnapshot(s){Hn(s)}}),kt("RPC connected"),Hs){const s=Hs;Hs=null,ve.setComposableMode(s).catch(n=>{kt("setComposableMode failed (queued)",n)})}ve.getSnapshot().then(s=>{s&&Hn(s)}).catch(()=>{}),ve.requestSnapshot().catch(()=>{})}};t(),ci(()=>{t()})}function qa(){Qs.value=[],ve==null||ve.clearComposables().then(()=>ve==null?void 0:ve.requestSnapshot()).catch(e=>{kt("clearComposables failed",e)})}function Ja(e){if(xt=e,Rt.value={...Rt.value||{},composableNavigationMode:e},!ve){Hs=e,kt("setComposableMode queued",e);return}ve.setComposableMode(e).then(()=>ve==null?void 0:ve.requestSnapshot()).catch(t=>{kt("setComposableMode failed",t)})}function Ga(e,t,s){ve==null||ve.editComposableValue(e,t,s).catch(n=>{kt("editComposableValue failed",n)})}function no(e){var s,n;if(!e||e==="unknown")return;const t=(n=(s=ui().value)==null?void 0:s.devtools)==null?void 0:n.rpc;t!=null&&t.openInEditor&&t.openInEditor(e)}function ss(){return za(),{fetch:Fn,provideInject:di,composables:Qs,renders:jn,transitions:Dn,features:Rt,connected:fi,refresh:()=>{ve==null||ve.getSnapshot().then(t=>{t&&Hn(t)}).catch(()=>{}),ve==null||ve.requestSnapshot().catch(()=>{})},clearComposables:qa}}const Ya={class:"view"},Xa={class:"stats-row"},Qa={class:"stat-card"},Za={class:"stat-val"},ec={class:"stat-card"},tc={class:"stat-val",style:{color:"var(--teal)"}},sc={class:"stat-card"},nc={class:"stat-val",style:{color:"var(--amber)"}},oc={class:"stat-card"},lc={class:"stat-val",style:{color:"var(--red)"}},ic={class:"toolbar"},rc={class:"split"},ac={class:"table-wrap"},cc={class:"data-table"},uc=["onClick"],dc={class:"mono",style:{"font-size":"11px",color:"var(--text2)"}},fc=["title"],pc={class:"muted text-sm"},hc={class:"mono text-sm"},vc={style:{height:"4px",background:"var(--bg2)","border-radius":"2px",overflow:"hidden"}},mc={key:0},gc={colspan:"7",style:{"text-align":"center",color:"var(--text3)",padding:"24px"}},_c={key:0,class:"detail-panel"},bc={class:"detail-header"},yc={class:"mono bold",style:{"font-size":"12px"}},xc={class:"flex gap-2"},wc={class:"meta-grid"},$c={class:"muted text-sm"},Cc={class:"mono text-sm",style:{"word-break":"break-all"}},Sc={class:"payload-box"},kc={class:"mono text-sm muted"},Tc={key:1,class:"detail-empty"},Mc={class:"waterfall"},Ec={class:"waterfall-header"},Oc={key:0,class:"waterfall-body"},Ac={class:"mono muted text-sm",style:{width:"140px",overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap","flex-shrink":"0"}},Ic={class:"wf-track"},Nc={class:"mono muted text-sm",style:{width:"44px","text-align":"right","flex-shrink":"0"}},Lc=Ht({__name:"FetchDashboard",setup(e){const{fetch:t,connected:s}=ss(),n=ue("all"),o=ue(""),l=ue(null),r=ue(!0),a=ce(()=>{const M=[...t.value].sort((V,ie)=>V.startTime-ie.startTime),j=M.length>0?M[0].startTime:0;return M.map(V=>({...V,startOffset:Math.max(0,V.startTime-j)}))}),u=ce(()=>a.value.find(M=>M.id===l.value)??null),m=ce(()=>({ok:a.value.filter(M=>M.status==="ok"||M.status==="cached").length,pending:a.value.filter(M=>M.status==="pending").length,error:a.value.filter(M=>M.status==="error").length})),d=ce(()=>a.value.filter(M=>{if(n.value!=="all"&&M.status!==n.value)return!1;const j=o.value.toLowerCase();return!(j&&!M.key.toLowerCase().includes(j)&&!M.url.toLowerCase().includes(j))})),g=ce(()=>{if(!u.value)return[];const M=u.value;return[["url",M.url],["status",M.status],["origin",M.origin],["duration",M.ms!=null?`${M.ms}ms`:"—"],["size",M.size?ne(M.size):"—"],["cached",M.cached?"yes":"no"]]}),E=ce(()=>{if(!u.value)return"";const M=u.value.payload;if(M===void 0)return"(no payload captured yet)";try{return JSON.stringify(M,null,2)}catch{return String(M)}});function $(M){return{ok:"badge-ok",error:"badge-err",pending:"badge-warn",cached:"badge-gray"}[M]??"badge-gray"}function y(M){return{ok:"var(--teal)",error:"var(--red)",pending:"var(--amber)",cached:"var(--border)"}[M]??"var(--border)"}function O(M){const j=a.value.filter(ie=>ie.ms!=null).map(ie=>ie.ms),V=j.length>0?Math.max(...j,1):1;return M.ms!=null?Math.max(4,Math.round(M.ms/V*100)):4}function W(){const M=a.value.filter(V=>V.ms!=null);return M.length>0?Math.max(...M.map(V=>V.startOffset+V.ms),1):1}function Y(M){const j=W();return Math.min(98,Math.round(M.startOffset/j*100))}function D(M){if(M.ms==null)return 2;const j=W(),V=Y(M);return Math.min(100-V,Math.max(2,Math.round(M.ms/j*100)))}function ne(M){return M<1024?`${M}B`:`${(M/1024).toFixed(1)}KB`}return(M,j)=>(S(),T("div",Ya,[i("div",Xa,[i("div",Qa,[j[7]||(j[7]=i("div",{class:"stat-label"},"total",-1)),i("div",Za,b(a.value.length),1)]),i("div",ec,[j[8]||(j[8]=i("div",{class:"stat-label"},"success",-1)),i("div",tc,b(m.value.ok),1)]),i("div",sc,[j[9]||(j[9]=i("div",{class:"stat-label"},"pending",-1)),i("div",nc,b(m.value.pending),1)]),i("div",oc,[j[10]||(j[10]=i("div",{class:"stat-label"},"error",-1)),i("div",lc,b(m.value.error),1)])]),i("div",ic,[i("button",{class:oe({active:n.value==="all"}),onClick:j[0]||(j[0]=V=>n.value="all")},"all",2),i("button",{class:oe({"danger-active":n.value==="error"}),onClick:j[1]||(j[1]=V=>n.value="error")},"errors",2),i("button",{class:oe({active:n.value==="pending"}),onClick:j[2]||(j[2]=V=>n.value="pending")},"pending",2),i("button",{class:oe({active:n.value==="cached"}),onClick:j[3]||(j[3]=V=>n.value="cached")},"cached",2),Dt(i("input",{"onUpdate:modelValue":j[4]||(j[4]=V=>o.value=V),type:"search",placeholder:"search key or url…",style:{"max-width":"240px","margin-left":"auto"}},null,512),[[ts,o.value]])]),i("div",rc,[i("div",ac,[i("table",cc,[j[11]||(j[11]=i("thead",null,[i("tr",null,[i("th",null,"key"),i("th",null,"url"),i("th",null,"status"),i("th",null,"origin"),i("th",null,"size"),i("th",null,"time"),i("th",{style:{"min-width":"80px"}},"bar")])],-1)),i("tbody",null,[(S(!0),T(de,null,$e(d.value,V=>{var ie;return S(),T("tr",{key:V.id,class:oe({selected:((ie=u.value)==null?void 0:ie.id)===V.id}),onClick:xe=>l.value=V.id},[i("td",null,[i("span",dc,b(V.key),1)]),i("td",null,[i("span",{class:"mono",style:{"font-size":"11px","max-width":"200px",display:"block",overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"},title:V.url},b(V.url),9,fc)]),i("td",null,[i("span",{class:oe(["badge",$(V.status)])},b(V.status),3)]),i("td",null,[i("span",{class:oe(["badge",V.origin==="ssr"?"badge-info":"badge-gray"])},b(V.origin),3)]),i("td",pc,b(V.size?ne(V.size):"—"),1),i("td",hc,b(V.ms!=null?`${V.ms}ms`:"—"),1),i("td",null,[i("div",vc,[i("div",{style:Ee({width:`${O(V)}%`,background:y(V.status),height:"100%",borderRadius:"2px"})},null,4)])])],10,uc)}),128)),d.value.length?se("",!0):(S(),T("tr",mc,[i("td",gc,b(Ct(s)?"No fetches recorded yet.":"Waiting for connection to the Nuxt app…"),1)]))])])]),u.value?(S(),T("div",_c,[i("div",bc,[i("span",yc,b(u.value.key),1),i("div",xc,[i("button",{onClick:j[5]||(j[5]=V=>l.value=null)},"×")])]),i("div",wc,[(S(!0),T(de,null,$e(g.value,([V,ie])=>(S(),T(de,{key:V},[i("span",$c,b(V),1),i("span",Cc,b(ie),1)],64))),128))]),j[12]||(j[12]=i("div",{class:"section-label"},"payload",-1)),i("pre",Sc,b(E.value),1),j[13]||(j[13]=i("div",{class:"section-label",style:{"margin-top":"10px"}},"source",-1)),i("div",kc,b(u.value.file)+":"+b(u.value.line),1)])):(S(),T("div",Tc,"select a call to inspect"))]),i("div",Mc,[i("div",Ec,[j[14]||(j[14]=i("div",{class:"section-label",style:{"margin-top":"0","margin-bottom":"0"}},"waterfall",-1)),i("button",{class:oe({active:r.value}),onClick:j[6]||(j[6]=V=>r.value=!r.value)},b(r.value?"hide":"show"),3)]),r.value?(S(),T("div",Oc,[(S(!0),T(de,null,$e(a.value,V=>(S(),T("div",{key:V.id,class:"wf-row"},[i("span",Ac,b(V.key),1),i("div",Ic,[i("div",{class:"wf-bar",style:Ee({left:`${Y(V)}%`,width:`${Math.max(2,D(V))}%`,background:y(V.status)})},null,4)]),i("span",Nc,b(V.ms!=null?`${V.ms}ms`:"—"),1)]))),128))])):se("",!0)])]))}}),ns=(e,t)=>{const s=e.__vccOpts||e;for(const[n,o]of t)s[n]=o;return s},Pc=ns(Lc,[["__scopeId","data-v-18827ce2"]]),Rc={class:"view"},Fc={class:"toolbar"},jc=["onClick"],Dc={class:"split"},Hc={class:"graph-area"},Vc={key:0,class:"canvas-stage"},Uc=["width","height","viewBox"],Bc=["d"],Kc=["onClick"],Wc={class:"mono node-label"},zc={key:0,class:"badge badge-ok badge-xs"},qc={key:1,class:"badge badge-err badge-xs"},Jc={key:1,class:"graph-empty"},Gc={key:0,class:"detail-panel"},Yc={class:"detail-header"},Xc={class:"mono bold",style:{"font-size":"12px"}},Qc={key:0,class:"detail-section"},Zc={class:"section-label"},eu={class:"detail-list"},tu={class:"row-main"},su={class:"mono text-sm row-key"},nu=["title"],ou=["onClick"],lu={key:0,class:"row-warning"},iu={key:1,class:"row-consumers"},ru={key:0,class:"muted text-sm"},au={key:2,class:"muted text-sm",style:{padding:"2px 0","font-size":"11px"}},cu={key:3,class:"value-box"},uu={class:"section-label"},du={class:"detail-list"},fu={class:"mono text-sm row-key"},pu={key:0,class:"badge badge-ok"},hu={key:1,class:"badge badge-err"},vu=["title"],mu={key:2,class:"muted text-sm",style:{"margin-top":"8px"}},gu={key:1,class:"detail-empty"},Wt=140,zt=32,_u=72,qt=18,bu=Ht({__name:"ProvideInjectGraph",setup(e){const{provideInject:t,connected:s}=ss();function n(A){return A.injects.some(_=>!_.ok)?"var(--red)":A.type==="both"?"var(--blue)":A.type==="provider"?"var(--teal)":"var(--text3)"}function o(A,_){return _==="all"?!0:_==="warn"?A.injects.some(x=>!x.ok):_==="shadow"?A.provides.some(x=>x.isShadowing):A.provides.some(x=>x.key===_)||A.injects.some(x=>x.key===_)}function l(A,_){if(!_)return!0;const x=_.toLowerCase();return A.label.toLowerCase().includes(x)||A.componentName.toLowerCase().includes(x)||A.provides.some(J=>J.key.toLowerCase().includes(x))||A.injects.some(J=>J.key.toLowerCase().includes(x))}function r(A){let _=0;const x=[A];for(;x.length;){const J=x.pop();J.children.length===0?_++:x.push(...J.children)}return _}function a(A){if(typeof A=="string")return A;try{return JSON.stringify(A)}catch{return String(A)}}function u(A){return typeof A=="object"&&A!==null}function m(A){if(A===null)return"null";if(Array.isArray(A))return`Array(${A.length})`;if(typeof A=="object"){const _=Object.keys(A);return _.length?`{ ${_.join(", ")} }`:"{}"}return a(A)}function d(A){if(!u(A))return a(A);try{return JSON.stringify(A,null,2)}catch{return a(A)}}function g(A,_,x){return`${A}:${_}:${x}`}function E(A){return A.split("/").pop()??A}function $(A){no(A)}function y(A){return String(A.componentUid)}const O=ce(()=>{const A=new Map,_=new Map;function x(v){const w=y(v),fe=A.get(w);if(fe)return fe;const K={id:w,label:E(v.componentFile),componentName:v.componentName??E(v.componentFile),componentFile:v.componentFile,type:"consumer",provides:[],injects:[],children:[]};return A.set(w,K),_.set(w,v.parentUid!==void 0?String(v.parentUid):null),K}const J=new Map;for(const v of t.value.injects){const w=J.get(v.key)??[];w.push(v),J.set(v.key,w)}const ae=new Map;for(const v of t.value.provides)ae.set(v.componentUid,v.componentName);for(const v of t.value.injects)ae.set(v.componentUid,v.componentName);for(const v of t.value.provides){const w=x(v),fe=J.get(v.key)??[];w.provides.push({key:v.key,val:m(v.valueSnapshot),raw:v.valueSnapshot,reactive:v.isReactive,complex:u(v.valueSnapshot),scope:v.scope??"component",isShadowing:v.isShadowing??!1,consumerUids:fe.map(K=>K.componentUid),consumerNames:fe.map(K=>K.componentName)})}for(const v of t.value.injects)x(v).injects.push({key:v.key,from:v.resolvedFromFile??null,fromName:v.resolvedFromUid!==void 0?ae.get(v.resolvedFromUid)??null:null,ok:v.resolved});for(const v of A.values())v.injects.some(w=>!w.ok)?v.type="error":v.provides.length&&v.injects.length?v.type="both":v.provides.length?v.type="provider":v.type="consumer";const N=[];for(const[v,w]of A.entries()){const fe=_.get(v),K=fe?A.get(fe):void 0;K?K.children.push(w):N.push(w)}return N}),W=ue("all"),Y=ue(""),D=ue(null),ne=ue(new Set);$t(D,()=>{ne.value=new Set});function M(A){const _=new Set(ne.value);_.has(A)?_.delete(A):_.add(A),ne.value=_}const j=ce(()=>{const A=new Set,_=[...O.value];for(;_.length;){const x=_.pop();x.provides.forEach(J=>A.add(J.key)),x.injects.forEach(J=>A.add(J.key)),_.push(...x.children)}return[...A]}),V=ce(()=>{function A(_){const x=[],J=[_];for(;J.length;){const N=J.pop();x.push(N);for(let v=N.children.length-1;v>=0;v--)J.push(N.children[v])}const ae=new Map;for(let N=x.length-1;N>=0;N--){const v=x[N],w=v.children.map(K=>ae.get(K)??null).filter(K=>K!==null);!(o(v,W.value)&&l(v,Y.value))&&!w.length?ae.set(v,null):ae.set(v,{...v,children:w})}return ae.get(_)??null}return O.value.map(A).filter(Boolean)});$t([V,D],([A,_])=>{if(!_)return;const x=new Set,J=[...A];for(;J.length;){const ae=J.pop();x.add(ae.id),J.push(...ae.children)}x.has(_.id)||(D.value=null)});const ie=ce(()=>{const A=[],_=qt;let x=_;for(const J of V.value){const ae=[{node:J,depth:0,slotLeft:x,parentId:null}];for(;ae.length;){const{node:v,depth:w,slotLeft:fe,parentId:K}=ae.pop(),we=r(v)*(Wt+qt)-qt;A.push({data:v,parentId:K,x:Math.round(fe+we/2),y:Math.round(_+w*(zt+_u)+zt/2)});let Se=fe;const qe=[];for(const ke of v.children){const Me=r(ke);qe.push({node:ke,depth:w+1,slotLeft:Se,parentId:v.id}),Se+=Me*(Wt+qt)}for(let ke=qe.length-1;ke>=0;ke--)ae.push(qe[ke])}const N=r(J);x+=N*(Wt+qt)+qt*2}return A}),xe=ce(()=>ie.value.reduce((A,_)=>Math.max(A,_.x+Wt/2+20),520)),G=ce(()=>ie.value.reduce((A,_)=>Math.max(A,_.y+zt/2+20),200)),re=ce(()=>{const A=new Map(ie.value.map(_=>[_.data.id,_]));return ie.value.filter(_=>_.parentId!==null).map(_=>{const x=A.get(_.parentId);return{id:`${x.data.id}--${_.data.id}`,x1:x.x,y1:x.y+zt/2,x2:_.x,y2:_.y-zt/2}})});return(A,_)=>(S(),T("div",Rc,[i("div",Fc,[i("button",{class:oe({active:W.value==="all"}),onClick:_[0]||(_[0]=x=>W.value="all")},"all keys",2),(S(!0),T(de,null,$e(j.value,x=>(S(),T("button",{key:x,style:{"font-family":"var(--mono)"},class:oe({active:W.value===x}),onClick:J=>W.value=x},b(x),11,jc))),128)),i("button",{style:{"margin-left":"auto"},class:oe({"danger-active":W.value==="shadow"}),onClick:_[1]||(_[1]=x=>W.value=W.value==="shadow"?"all":"shadow")}," shadowed ",2),i("button",{class:oe({"danger-active":W.value==="warn"}),onClick:_[2]||(_[2]=x=>W.value=W.value==="warn"?"all":"warn")}," warnings ",2),Dt(i("input",{"onUpdate:modelValue":_[3]||(_[3]=x=>Y.value=x),type:"search",placeholder:"search component or key…",style:{"max-width":"200px"}},null,512),[[ts,Y.value]])]),i("div",Dc,[i("div",Hc,[_[6]||(_[6]=Zr('<div class="legend" data-v-14f40c78><span class="dot" style="background:var(--teal);" data-v-14f40c78></span><span data-v-14f40c78>provides</span><span class="dot" style="background:var(--blue);" data-v-14f40c78></span><span data-v-14f40c78>both</span><span class="dot" style="background:var(--text3);" data-v-14f40c78></span><span data-v-14f40c78>injects</span><span class="dot" style="background:var(--red);" data-v-14f40c78></span><span data-v-14f40c78>missing provider</span></div>',1)),ie.value.length?(S(),T("div",Vc,[i("div",{class:"canvas-wrap",style:Ee({width:`${xe.value}px`,height:`${G.value}px`})},[(S(),T("svg",{class:"edges-svg",width:xe.value,height:G.value,viewBox:`0 0 ${xe.value} ${G.value}`},[(S(!0),T(de,null,$e(re.value,x=>(S(),T("path",{key:x.id,d:`M ${x.x1},${x.y1} C ${x.x1},${(x.y1+x.y2)/2} ${x.x2},${(x.y1+x.y2)/2} ${x.x2},${x.y2}`,class:"edge",fill:"none"},null,8,Bc))),128))],8,Uc)),(S(!0),T(de,null,$e(ie.value,x=>{var J;return S(),T("div",{key:x.data.id,class:oe(["graph-node",{"is-selected":((J=D.value)==null?void 0:J.id)===x.data.id}]),style:Ee({left:`${x.x-Wt/2}px`,top:`${x.y-zt/2}px`,width:`${Wt}px`,"--node-color":n(x.data)}),onClick:ae=>D.value=x.data},[i("span",{class:"node-dot",style:Ee({background:n(x.data)})},null,4),i("span",Wc,b(x.data.label),1),x.data.provides.length?(S(),T("span",zc," +"+b(x.data.provides.length),1)):se("",!0),x.data.injects.some(ae=>!ae.ok)?(S(),T("span",qc,"!")):se("",!0)],14,Kc)}),128))],4)])):(S(),T("div",Jc,b(Ct(s)?"No components match the current provide/inject filter.":"Waiting for connection to the Nuxt app…"),1))]),D.value?(S(),T("div",Gc,[i("div",Yc,[i("span",Xc,b(D.value.label),1),D.value.componentFile&&D.value.componentFile!=="unknown"?(S(),T("button",{key:0,class:"jump-btn",title:"Open in editor",onClick:_[4]||(_[4]=x=>$(D.value.componentFile))}," open ↗ ")):se("",!0),i("button",{onClick:_[5]||(_[5]=x=>D.value=null)},"×")]),D.value.provides.length?(S(),T("div",Qc,[i("div",Zc,"provides ("+b(D.value.provides.length)+")",1),i("div",eu,[(S(!0),T(de,null,$e(D.value.provides,(x,J)=>(S(),T("div",{key:g(D.value.id,x.key,J),class:"provide-row"},[i("div",tu,[i("span",su,b(x.key),1),i("span",{class:"mono text-sm muted row-value-preview",title:x.val},b(x.val),9,nu),i("span",{class:oe(["badge scope-badge",`scope-${x.scope}`])},b(x.scope),3),i("span",{class:oe(["badge",x.reactive?"badge-ok":"badge-gray"])},b(x.reactive?"reactive":"static"),3),x.complex?(S(),T("button",{key:0,class:"row-toggle mono",onClick:ae=>M(g(D.value.id,x.key,J))},b(ne.value.has(g(D.value.id,x.key,J))?"hide":"view"),9,ou)):se("",!0)]),x.isShadowing?(S(),T("div",lu,"shadows a parent provide with the same key")):se("",!0),x.consumerNames.length?(S(),T("div",iu,[_[7]||(_[7]=i("span",{class:"muted text-sm"},"used by:",-1)),(S(!0),T(de,null,$e(x.consumerNames,ae=>(S(),T("span",{key:ae,class:"consumer-chip mono"},b(ae),1))),128)),x.consumerNames.length?se("",!0):(S(),T("span",ru,"no consumers"))])):(S(),T("div",au,"no consumers detected")),x.complex&&ne.value.has(g(D.value.id,x.key,J))?(S(),T("pre",cu,b(d(x.raw)),1)):se("",!0)]))),128))])])):se("",!0),D.value.injects.length?(S(),T("div",{key:1,class:"detail-section",style:Ee({marginTop:D.value.provides.length?"10px":"0"})},[i("div",uu,"injects ("+b(D.value.injects.length)+")",1),i("div",du,[(S(!0),T(de,null,$e(D.value.injects,x=>(S(),T("div",{key:x.key,class:oe(["inject-row",{"inject-miss":!x.ok}])},[i("span",fu,b(x.key),1),x.ok?(S(),T("span",pu,"resolved")):(S(),T("span",hu,"no provider")),i("span",{class:oe(["mono text-sm row-from",x.fromName?"":"muted"]),title:x.from??"undefined"},b(x.fromName??x.from??"undefined"),11,vu)],2))),128))])],4)):se("",!0),!D.value.provides.length&&!D.value.injects.length?(S(),T("div",mu," no provide/inject in this component ")):se("",!0)])):(S(),T("div",gu,b(Ct(s)?"Click a node to inspect.":"Waiting for connection to the Nuxt app…"),1))])]))}}),yu=ns(bu,[["__scopeId","data-v-14f40c78"]]),xu={class:"view"},wu={class:"stats-row"},$u={class:"stat-card"},Cu={class:"stat-val"},Su={class:"stat-card"},ku={class:"stat-val",style:{color:"var(--teal)"}},Tu={class:"stat-card"},Mu={class:"stat-val",style:{color:"var(--red)"}},Eu={class:"stat-card"},Ou={class:"stat-val"},Au={class:"toolbar"},Iu=["title"],Nu={class:"list"},Lu=["onClick"],Pu={class:"comp-header"},Ru={class:"comp-identity"},Fu={class:"comp-name mono"},ju={class:"comp-file muted mono"},Du={class:"comp-meta"},Hu={key:0,class:"badge badge-warn"},Vu={key:1,class:"badge badge-warn"},Uu={key:2,class:"badge badge-err"},Bu={key:3,class:"badge badge-ok"},Ku={key:4,class:"badge badge-gray"},Wu={key:0,class:"refs-preview"},zu=["title"],qu={class:"ref-chip-key"},Ju={class:"ref-chip-val"},Gu={key:0,class:"ref-chip-shared-dot",title:"global"},Yu={key:0,class:"muted text-sm"},Xu={key:0,class:"leak-banner"},Qu={key:1,class:"global-banner"},Zu={key:2,class:"muted text-sm",style:{padding:"2px 0 6px"}},ed=["title","onClick"],td={class:"ref-row-actions"},sd=["title","onClick"],nd={key:1,class:"badge badge-amber text-xs"},od=["onClick"],ld={class:"section-label",style:{"margin-top":"10px"}},id={class:"muted",style:{"font-weight":"400","text-transform":"none","letter-spacing":"0"}},rd={class:"history-list"},ad={class:"history-time mono muted"},cd={class:"history-key mono"},ud={class:"history-val mono"},dd={key:0,class:"muted text-sm",style:{padding:"2px 0"}},fd={class:"muted text-sm",style:{"min-width":"120px"}},pd={class:"lc-row"},hd={class:"mono text-sm"},vd={class:"lc-row"},md={class:"mono text-sm muted"},gd={class:"lc-row"},_d={class:"mono text-sm muted",style:{display:"flex","align-items":"center",gap:"6px"}},bd=["onClick"],yd={class:"lc-row"},xd={class:"mono text-sm muted"},wd={class:"lc-row"},$d={class:"mono text-sm"},Cd={class:"lc-row"},Sd={class:"mono text-sm"},kd={key:0,class:"muted text-sm",style:{padding:"16px 0"}},Td={key:0,class:"lookup-panel"},Md={class:"lookup-header"},Ed={class:"mono text-sm"},Od={class:"muted text-sm"},Ad={key:0,class:"muted text-sm",style:{padding:"6px 0"}},Id={class:"mono text-sm"},Nd={class:"muted text-sm"},Ld={class:"muted text-sm",style:{"margin-left":"auto"}},Pd={class:"edit-dialog"},Rd={class:"edit-dialog-header"},Fd={class:"mono"},jd={key:0,class:"edit-error text-sm"},Dd={class:"edit-actions"},Hd=Ht({__name:"ComposableTracker",setup(e){const{composables:t,connected:s,features:n,clearComposables:o}=ss(),l=ce(()=>{var N;return((N=n.value)==null?void 0:N.composableNavigationMode)==="session"?"session":"route"});function r(){const N=l.value==="route"?"session":"route";Ja(N)}function a(){o()}function u(N){if(N===null)return"null";if(N===void 0)return"undefined";if(typeof N=="string")return`"${N}"`;if(typeof N=="object")try{const v=JSON.stringify(N);return v.length>80?v.slice(0,80)+"…":v}catch{return String(N)}return String(N)}function m(N){if(N===null)return"null";if(N===void 0)return"undefined";if(typeof N=="string")return`"${N}"`;if(typeof N=="object")try{return JSON.stringify(N,null,2)}catch{return String(N)}return String(N)}function d(N){return N.split("/").pop()??N}function g(N){no(N)}const E=ue("all"),$=ue(""),y=ue(null),O=ce(()=>t.value),W=ce(()=>({mounted:O.value.filter(N=>N.status==="mounted").length,leaks:O.value.filter(N=>N.leak).length})),Y=ce(()=>{const v=[...O.value].reverse().filter(K=>{if(E.value==="leak"&&!K.leak||E.value==="mounted"&&K.status!=="mounted"||E.value==="unmounted"&&K.status!=="unmounted")return!1;const pe=$.value.toLowerCase();if(pe){const we=K.name.toLowerCase().includes(pe),Se=K.componentFile.toLowerCase().includes(pe),qe=Object.keys(K.refs).some(Me=>Me.toLowerCase().includes(pe)),ke=Object.values(K.refs).some(Me=>{try{return String(JSON.stringify(Me.value)).toLowerCase().includes(pe)}catch{return!1}});if(!we&&!Se&&!qe&&!ke)return!1}return!0}),w=[],fe=[];for(const K of v)K.isLayoutComposable?w.push(K):fe.push(K);return[...w,...fe]});function D(N){return[{label:"onMounted",ok:N.lifecycle.hasOnMounted,status:N.lifecycle.hasOnMounted?"registered":"not used"},{label:"onUnmounted",ok:N.lifecycle.hasOnUnmounted,status:N.lifecycle.hasOnUnmounted?"registered":"missing"},{label:"watchers cleaned",ok:N.lifecycle.watchersCleaned,status:N.lifecycle.watchersCleaned?"all stopped":"NOT stopped"},{label:"intervals cleared",ok:N.lifecycle.intervalsCleaned,status:N.lifecycle.intervalsCleaned?"all cleared":"NOT cleared"}]}function ne(N){return N==="computed"?"badge-info":N==="reactive"?"badge-purple":"badge-gray"}const M=ue(new Set);function j(N,v){return`${N}:${v}`}function V(N){if(N==null||typeof N!="object")return!1;try{return JSON.stringify(N).length>60}catch{return!1}}function ie(N,v){return M.value.has(j(N,v))}function xe(N,v){const w=j(N,v),fe=new Set(M.value);fe.has(w)?fe.delete(w):fe.add(w),M.value=fe}const G=ue(null),re=ce(()=>{if(!G.value)return[];const N=G.value;return O.value.filter(v=>N in v.refs)});function A(N){G.value=G.value===N?null:N}const _=ue(null),x=ue("");function J(N,v,w){x.value="",_.value={id:N,key:v,rawValue:JSON.stringify(w,null,2)}}function ae(){if(!_.value)return;let N;try{N=JSON.parse(_.value.rawValue),x.value=""}catch(v){x.value=`Invalid JSON: ${v.message}`;return}Ga(_.value.id,_.value.key,N),_.value=null}return(N,v)=>(S(),T("div",xu,[i("div",wu,[i("div",$u,[v[11]||(v[11]=i("div",{class:"stat-label"},"total",-1)),i("div",Cu,b(O.value.length),1)]),i("div",Su,[v[12]||(v[12]=i("div",{class:"stat-label"},"mounted",-1)),i("div",ku,b(W.value.mounted),1)]),i("div",Tu,[v[13]||(v[13]=i("div",{class:"stat-label"},"leaks",-1)),i("div",Mu,b(W.value.leaks),1)]),i("div",Eu,[v[14]||(v[14]=i("div",{class:"stat-label"},"instances",-1)),i("div",Ou,b(O.value.length),1)])]),i("div",Au,[i("button",{class:oe({active:E.value==="all"}),onClick:v[0]||(v[0]=w=>E.value="all")},"all",2),i("button",{class:oe({active:E.value==="mounted"}),onClick:v[1]||(v[1]=w=>E.value="mounted")},"mounted",2),i("button",{class:oe({"danger-active":E.value==="leak"}),onClick:v[2]||(v[2]=w=>E.value="leak")},"leaks only",2),i("button",{class:oe({active:E.value==="unmounted"}),onClick:v[3]||(v[3]=w=>E.value="unmounted")},"unmounted",2),i("button",{class:"mode-btn",title:`switch to ${l.value==="route"?"session":"route"} mode`,onClick:r}," mode: "+b(l.value),9,Iu),Dt(i("input",{"onUpdate:modelValue":v[4]||(v[4]=w=>$.value=w),type:"search",placeholder:"search name, file, or ref…",style:{"max-width":"220px","margin-left":"auto"}},null,512),[[ts,$.value]]),l.value==="session"?(S(),T("button",{key:0,class:"clear-btn",title:"Clear session history",onClick:a}," clear session ")):se("",!0)]),i("div",Nu,[(S(!0),T(de,null,$e(Y.value,w=>{var fe;return S(),T("div",{key:w.id,class:oe(["comp-card",{leak:w.leak,expanded:y.value===w.id}]),onClick:K=>y.value=y.value===w.id?null:w.id},[i("div",Pu,[i("div",Ru,[i("span",Fu,b(w.name),1),i("span",ju,b(d(w.componentFile)),1)]),i("div",Du,[w.watcherCount>0&&!w.leak?(S(),T("span",Hu,b(w.watcherCount)+"w",1)):se("",!0),w.intervalCount>0&&!w.leak?(S(),T("span",Vu,b(w.intervalCount)+"t",1)):se("",!0),w.leak?(S(),T("span",Uu,"leak")):w.status==="mounted"?(S(),T("span",Bu,"mounted")):(S(),T("span",Ku,"unmounted"))])]),Object.keys(w.refs).length?(S(),T("div",Wu,[(S(!0),T(de,null,$e(Object.entries(w.refs).slice(0,3),([K,pe])=>{var we,Se,qe;return S(),T("span",{key:K,class:oe(["ref-chip",{"ref-chip--reactive":pe.type==="reactive","ref-chip--computed":pe.type==="computed","ref-chip--shared":(we=w.sharedKeys)==null?void 0:we.includes(K)}]),title:(Se=w.sharedKeys)!=null&&Se.includes(K)?"shared global state":""},[i("span",qu,b(K),1),i("span",Ju,b(u(pe.value)),1),(qe=w.sharedKeys)!=null&&qe.includes(K)?(S(),T("span",Gu)):se("",!0)],10,zu)}),128)),Object.keys(w.refs).length>3?(S(),T("span",Yu," +"+b(Object.keys(w.refs).length-3)+" more ",1)):se("",!0)])):se("",!0),y.value===w.id?(S(),T("div",{key:1,class:"comp-detail",onClick:v[5]||(v[5]=Kt(()=>{},["stop"]))},[w.leak?(S(),T("div",Xu,b(w.leakReason),1)):se("",!0),(fe=w.sharedKeys)!=null&&fe.length?(S(),T("div",Qu,[v[16]||(v[16]=i("span",{class:"global-dot"},null,-1)),i("span",null,[v[15]||(v[15]=i("strong",null,"global state",-1)),Le(" — "+b(w.sharedKeys.join(", "))+" "+b(w.sharedKeys.length===1?"is":"are")+" shared across all instances of "+b(w.name),1)])])):se("",!0),v[24]||(v[24]=i("div",{class:"section-label"},"reactive state",-1)),Object.keys(w.refs).length?se("",!0):(S(),T("div",Zu," no tracked state returned ")),(S(!0),T(de,null,$e(Object.entries(w.refs),([K,pe])=>{var we;return S(),T("div",{key:K,class:"ref-row"},[i("span",{class:"mono text-sm ref-key ref-key--clickable",title:`click to see all instances exposing '${K}'`,onClick:Kt(Se=>A(K),["stop"])},b(K),9,ed),i("span",{class:oe(["mono text-sm ref-val",{"ref-val--full":V(pe.value)&&ie(w.id,K),"ref-val--collapsed":V(pe.value)&&!ie(w.id,K)}])},b(V(pe.value)&&!ie(w.id,K)?u(pe.value):m(pe.value)),3),i("div",td,[V(pe.value)?(S(),T("button",{key:0,class:"expand-btn",title:ie(w.id,K)?"Collapse":"Expand",onClick:Kt(Se=>xe(w.id,K),["stop"])},b(ie(w.id,K)?"▲":"▼"),9,sd)):se("",!0),i("span",{class:oe(["badge text-xs",ne(pe.type)])},b(pe.type),3),(we=w.sharedKeys)!=null&&we.includes(K)?(S(),T("span",nd,"global")):se("",!0),pe.type==="ref"?(S(),T("button",{key:2,class:"edit-btn",title:"Edit value",onClick:Kt(Se=>J(w.id,K,pe.value),["stop"])}," edit ",8,od)):se("",!0)])])}),128)),w.history&&w.history.length?(S(),T(de,{key:3},[i("div",ld,[v[17]||(v[17]=Le(" change history ",-1)),i("span",id," ("+b(w.history.length)+" events) ",1)]),i("div",rd,[(S(!0),T(de,null,$e([...w.history].reverse().slice(0,20),(K,pe)=>(S(),T("div",{key:pe,class:"history-row"},[i("span",ad,"+"+b((K.t/1e3).toFixed(2))+"s",1),i("span",cd,b(K.key),1),i("span",ud,b(u(K.value)),1)]))),128)),w.history.length>20?(S(),T("div",dd," … "+b(w.history.length-20)+" earlier events ",1)):se("",!0)])],64)):se("",!0),v[25]||(v[25]=i("div",{class:"section-label",style:{"margin-top":"10px"}},"lifecycle",-1)),(S(!0),T(de,null,$e(D(w),K=>(S(),T("div",{key:K.label,class:"lc-row"},[i("span",{class:"lc-dot",style:Ee({background:K.ok?"var(--teal)":"var(--red)"})},null,4),i("span",fd,b(K.label),1),i("span",{class:"text-sm",style:Ee({color:K.ok?"var(--teal)":"var(--red)"})},b(K.status),5)]))),128)),v[26]||(v[26]=i("div",{class:"section-label",style:{"margin-top":"10px"}},"context",-1)),i("div",pd,[v[18]||(v[18]=i("span",{class:"muted text-sm",style:{"min-width":"120px"}},"component",-1)),i("span",hd,b(d(w.componentFile)),1)]),i("div",vd,[v[19]||(v[19]=i("span",{class:"muted text-sm",style:{"min-width":"120px"}},"uid",-1)),i("span",md,b(w.componentUid),1)]),i("div",gd,[v[20]||(v[20]=i("span",{class:"muted text-sm",style:{"min-width":"120px"}},"defined in",-1)),i("span",_d,[Le(b(w.file)+":"+b(w.line)+" ",1),i("button",{class:"jump-btn",title:"Open in editor",onClick:Kt(K=>g(w.file),["stop"])},"open ↗",8,bd)])]),i("div",yd,[v[21]||(v[21]=i("span",{class:"muted text-sm",style:{"min-width":"120px"}},"route",-1)),i("span",xd,b(w.route),1)]),i("div",wd,[v[22]||(v[22]=i("span",{class:"muted text-sm",style:{"min-width":"120px"}},"watchers",-1)),i("span",$d,b(w.watcherCount),1)]),i("div",Cd,[v[23]||(v[23]=i("span",{class:"muted text-sm",style:{"min-width":"120px"}},"intervals",-1)),i("span",Sd,b(w.intervalCount),1)])])):se("",!0)],10,Lu)}),128)),Y.value.length?se("",!0):(S(),T("div",kd,b(Ct(s)?"No composables recorded yet.":"Waiting for connection to the Nuxt app…"),1))]),Oe(Rn,{name:"slide"},{default:Ks(()=>[G.value?(S(),T("div",Td,[i("div",Md,[i("span",Ed,b(G.value),1),i("span",Od,"— "+b(re.value.length)+" instance"+b(re.value.length!==1?"s":""),1),i("button",{class:"clear-btn",style:{"margin-left":"auto"},onClick:v[6]||(v[6]=w=>G.value=null)},"✕")]),re.value.length?se("",!0):(S(),T("div",Ad,"No mounted instances expose this key.")),(S(!0),T(de,null,$e(re.value,w=>(S(),T("div",{key:w.id,class:"lookup-row"},[i("span",Id,b(w.name),1),i("span",Nd,b(d(w.componentFile)),1),i("span",Ld,b(w.route),1)]))),128))])):se("",!0)]),_:1}),Oe(Rn,{name:"fade"},{default:Ks(()=>[_.value?(S(),T("div",{key:0,class:"edit-overlay",onClick:v[10]||(v[10]=Kt(w=>_.value=null,["self"]))},[i("div",Pd,[i("div",Rd,[v[27]||(v[27]=Le(" edit ",-1)),i("span",Fd,b(_.value.key),1),i("button",{class:"clear-btn",style:{"margin-left":"auto"},onClick:v[7]||(v[7]=w=>_.value=null)},"✕")]),v[28]||(v[28]=i("p",{class:"muted text-sm",style:{padding:"4px 0 8px"}},[Le(" Value applied immediately to the live ref. Only "),i("span",{class:"mono"},"ref"),Le(" values are writable. ")],-1)),Dt(i("textarea",{"onUpdate:modelValue":v[8]||(v[8]=w=>_.value.rawValue=w),class:"edit-textarea",rows:"6",spellcheck:"false"},null,512),[[ts,_.value.rawValue]]),x.value?(S(),T("div",jd,b(x.value),1)):se("",!0),i("div",Dd,[i("button",{onClick:ae},"apply"),i("button",{class:"clear-btn",onClick:v[9]||(v[9]=w=>_.value=null)},"cancel")])])])):se("",!0)]),_:1})]))}}),Vd=ns(Hd,[["__scopeId","data-v-01ed1c12"]]),Ud={class:"view"},Bd={class:"controls"},Kd={class:"mode-group"},Wd={class:"threshold-group"},zd=["min","max","step"],qd={class:"mono text-sm"},Jd=["value"],Gd={class:"stats-row"},Yd={class:"stat-card"},Xd={class:"stat-val"},Qd={class:"stat-card"},Zd={class:"stat-val"},ef={class:"stat-card"},tf={class:"stat-val",style:{color:"var(--red)"}},sf={class:"stat-card"},nf={class:"stat-val"},of={class:"inspector"},lf={class:"roots-panel"},rf=["onClick"],af={class:"root-copy"},cf={class:"root-label mono"},uf={class:"root-sub muted mono"},df={class:"root-meta mono"},ff={key:0,class:"detail-empty"},pf={class:"tree-panel"},hf={class:"tree-toolbar"},vf=["value"],mf={class:"tree-frame"},gf={class:"tree-canvas"},_f={key:0,class:"detail-empty"},bf={class:"detail-panel"},yf={class:"detail-header"},xf={class:"mono bold",style:{"font-size":"12px"}},wf={class:"detail-pill-row"},$f={class:"detail-pill mono"},Cf={class:"detail-pill mono muted"},Sf={key:0,class:"detail-pill mono"},kf={key:1,class:"detail-pill mono persistent"},Tf={key:2,class:"detail-pill mono hydrated"},Mf={class:"detail-pill mono"},Ef={class:"meta-grid"},Of={class:"mono text-sm"},Af={class:"mono text-sm"},If={class:"mono text-sm muted",style:{display:"flex","align-items":"center",gap:"6px"}},Nf={class:"mono text-sm"},Lf={class:"mono text-sm"},Pf={class:"mono text-sm"},Rf={class:"meta-grid"},Ff={class:"mono text-sm"},jf={class:"mono text-sm"},Df={class:"mono text-sm"},Hf={class:"mono text-sm"},Vf={class:"mono text-sm"},Uf={class:"mono text-sm"},Bf={class:"mono text-sm"},Kf={key:0,class:"muted text-sm"},Wf={class:"section-label",style:{"margin-top":"8px"}},zf={class:"muted",style:{"font-weight":"400","text-transform":"none","letter-spacing":"0"}},qf={key:1,class:"muted text-sm"},Jf={key:2,class:"timeline-list"},Gf={class:"timeline-time mono muted"},Yf={class:"timeline-dur mono"},Xf={key:0,class:"timeline-trigger mono muted"},Qf={class:"timeline-route mono muted",style:{"margin-left":"auto"}},Zf={key:0,class:"muted text-sm",style:{padding:"2px 0"}},ep={key:1,class:"detail-empty"},tp=Ht({__name:"RenderHeatmap",setup(e){const t=Ht({name:"TreeNode",props:{node:Object,mode:String,threshold:Number,selected:String,expandedIds:Object},emits:["select","toggle"],setup(f,{emit:h}){function k(z){return f.mode==="count"?z.rerenders+z.mountCount:z.avgMs}function ee(z){return k(z)>=f.threshold}function q(z){return{selected:f.selected===z.id,hot:ee(z)}}return()=>{var ls,lo,io;const z=f.node,be=((ls=f.expandedIds)==null?void 0:ls.has(z.id))??!1,Fe=z.children.length>0,Os=f.mode==="count"?`${z.rerenders+z.mountCount}`:`${z.avgMs.toFixed(1)}ms`,je=f.mode==="count"?"renders":"avg",Ae=[],As=(lo=z.element)==null?void 0:lo.toLowerCase();if(z.element&&z.element!==z.label&&!["div","span","p"].includes(As??"")&&Ae.push(z.element),z.file!=="unknown"){const Be=((io=z.file.split("/").pop())==null?void 0:io.replace(/\.vue$/i,""))??z.file;Be!==z.label&&!Ae.includes(Be)&&Ae.push(Be)}return Ie("div",{class:"tree-node"},[Ie("div",{class:["tree-row",q(z)],style:{"--tree-depth":String(z.depth)},onClick:Be=>{Be.stopPropagation(),h("select",z)}},[Ie("span",{class:"tree-rail","aria-hidden":"true"}),Ie("button",{class:["tree-toggle",{empty:!Fe}],disabled:!Fe,onClick:Be=>{Be.stopPropagation(),Fe&&h("toggle",z.id)}},Fe?be?"⌄":"›":""),Ie("div",{class:"tree-copy"},[Ie("span",{class:"tree-name mono",title:z.label},z.label),Ae.length?Ie("div",{class:"tree-badges"},Ae.slice(0,1).map(Be=>Ie("span",{class:"tree-badge mono",title:Be},Be))):null]),Ie("div",{class:"tree-metrics mono"},[z.isPersistent?Ie("span",{class:"tree-persistent-pill",title:"Layout / persistent component — survives navigation"},"persistent"):null,z.isHydrationMount?Ie("span",{class:"tree-hydration-pill",title:"First mount was SSR hydration — not a user-triggered render"},"hydrated"):null,Ie("span",{class:"tree-metric-pill"},`${Os} ${je}`),z.file&&z.file!=="unknown"?Ie("button",{class:"tree-jump-btn",title:`Open ${z.file} in editor`,onClick:Be=>{Be.stopPropagation(),Q(z.file)}},"↗"):null])]),be&&Fe?Ie("div",{class:"tree-children"},z.children.map(Be=>Ie(t,{node:Be,mode:f.mode,threshold:f.threshold,selected:f.selected,expandedIds:f.expandedIds,onSelect:fn=>h("select",fn),onToggle:fn=>h("toggle",fn)}))):null])}}}),{renders:s,connected:n}=ss(),o=ue("count"),l=ue(""),r="3",a="1600",u=ue(Number(r)),m=ue(Number(a)),d=ce({get:()=>o.value==="count"?u.value:m.value,set:f=>{o.value==="count"?u.value=f:m.value=f}}),g=ue(!1),E=ue(!1),$=ue(""),y=ue(null),O=ue(null),W=ue(new Set),Y=ue([]),D=ue(!1);function ne(f){var k;if(f.name&&f.name!=="unknown"&&!/^Component#\d+$/.test(f.name))return f.name;if(f.element)return f.element;const h=(k=f.file.split("/").pop())==null?void 0:k.replace(/\.vue$/i,"");return h&&h!=="unknown"?h:f.name&&f.name!=="unknown"?f.name:`Component#${f.uid}`}function M(f){return`${f.type}: ${f.key}`}function j(f){const h=new Map;for(const q of f)h.set(String(q.uid),{id:String(q.uid),label:ne(q),file:q.file,element:q.element,depth:0,path:[],rerenders:q.rerenders??0,mountCount:q.mountCount??1,avgMs:q.avgMs,triggers:q.triggers.map(M),timeline:q.timeline??[],children:[],parentId:q.parentUid!==void 0?String(q.parentUid):void 0,isPersistent:!!q.isPersistent,isHydrationMount:!!q.isHydrationMount,route:q.route??"/"});const k=[];for(const q of f){const z=h.get(String(q.uid));if(!z)continue;const be=q.parentUid!==void 0?h.get(String(q.parentUid)):void 0;be?(z.parentLabel=be.label,be.children.push(z)):k.push(z)}function ee(q,z=[],be=0){q.depth=be,q.path=[...z,q.label],q.children.forEach(Fe=>ee(Fe,q.path,be+1))}return k.forEach(q=>ee(q)),k}function V(f){const h=[];function k(ee){h.push(ee),ee.children.forEach(k)}return f.forEach(k),h}function ie(f){return 1+f.children.reduce((h,k)=>h+ie(k),0)}function xe(f,h=new Set){return h.add(f.id),f.children.forEach(k=>xe(k,h)),h}function G(f,h,k=[]){const ee=[...k,f.id];if(f.id===h)return ee;for(const q of f.children){const z=G(q,h,ee);if(z)return z}return null}function re(f){if(J(f))return f;for(const h of f.children){const k=re(h);if(k)return k}return null}function A(f){if(!f)return new Set;const h=new Set;function k(ee){ee.children.length>0&&(h.add(ee.id),ee.children.forEach(k))}return k(f),h}function _(f,h){const k=A(f);if(!f||!h)return k;function ee(q){const z=q.children.some(Fe=>ee(Fe)),be=ae(q,h);return z&&k.add(q.id),be||z}return ee(f),k}function x(f){return o.value==="count"?f.rerenders+f.mountCount:f.avgMs}function J(f){return x(f)>=d.value}function ae(f,h){if(!h)return!0;const k=h.toLowerCase();return f.label.toLowerCase().includes(k)||f.file.toLowerCase().includes(k)||f.path.some(ee=>ee.toLowerCase().includes(k))||f.triggers.some(ee=>ee.toLowerCase().includes(k))}function N(f,h){return h?ae(f,h)||f.children.some(k=>N(k,h)):!0}function v(f){return J(f)||f.children.some(h=>v(h))}function w(f){return!l.value||f.route===l.value?!0:f.timeline.some(h=>h.route===l.value)}function fe(f){return w(f)||f.children.some(h=>fe(h))}function K(f,h){const k=N(f,h),ee=!g.value||v(f),q=!l.value||fe(f);return k&&ee&&q}function pe(f,h){const k=f.children.map(be=>pe(be,h)).filter(be=>be!==null),ee=!h||ae(f,h)||k.length>0,q=!g.value||J(f)||k.length>0,z=!l.value||w(f)||k.length>0;return!ee||!q||!z?null:{...f,children:k}}const we=ce(()=>E.value?Y.value:s.value),Se=ce(()=>j(we.value)),qe=ce(()=>new Map(Se.value.map(f=>[f.id,f]))),ke=ce(()=>V(Se.value)),Me=ce(()=>{const f=$.value.trim();return Se.value.filter(h=>K(h,f))}),Re=ce(()=>O.value?Me.value.find(f=>f.id===O.value)??qe.value.get(O.value)??null:Me.value[0]??Se.value[0]??null),Ut=ce(()=>{const f=$.value.trim();return Re.value?pe(Re.value,f):null}),os=ce(()=>Ut.value?[Ut.value]:[]),bt=ce(()=>Me.value.map((f,h)=>({id:f.id,label:`App ${h+1}`,meta:`${ie(f)} nodes`,root:f}))),oo=ce(()=>{const f=new Set;for(const h of ke.value){h.route&&f.add(h.route);for(const k of h.timeline)k.route&&f.add(k.route)}return[...f].sort()}),c=ce(()=>ke.value.find(f=>f.id===y.value)??null),p=ce(()=>ke.value.reduce((f,h)=>f+h.rerenders+h.mountCount,0)),C=ce(()=>ke.value.filter(f=>J(f)).length),R=ce(()=>{const f=ke.value.filter(h=>h.avgMs>0);return f.length?(f.reduce((h,k)=>h+k.avgMs,0)/f.length).toFixed(1):"0.0"});$t(Se,f=>{if(!f.length){O.value=null,y.value=null,W.value=new Set,D.value=!1;return}const h=new Set(f.map(q=>q.id));(!O.value||!h.has(O.value))&&(O.value=f[0].id),y.value&&!ke.value.some(q=>q.id===y.value)&&(y.value=null);const k=new Set(ke.value.map(q=>q.id)),ee=new Set([...W.value].filter(q=>k.has(q)));if(!D.value){W.value=A(Re.value),D.value=!0;return}!$.value.trim()&&y.value&&Re.value&&(G(Re.value,y.value)??[]).forEach(z=>ee.add(z)),W.value=ee},{immediate:!0}),$t($,f=>{if(!Re.value)return;const h=f.trim();if(h){W.value=_(Re.value,h);return}if(y.value){const k=G(Re.value,y.value);W.value=k?new Set(k):A(Re.value);return}W.value=A(Re.value)}),$t([g,d,o,Me],()=>{if(!g.value)return;const f=Me.value[0]??null;if(!f){y.value=null;return}const h=re(f);if(!h){y.value=null;return}O.value=f.id,y.value!==h.id&&(y.value=h.id),W.value=new Set(G(f,h.id)??[f.id])});function I(f){y.value=f.id;const h=Se.value.find(k=>xe(k).has(f.id));h&&(O.value=h.id,W.value=new Set(G(h,f.id)??[h.id]))}function L(f){const h=new Set(W.value);h.has(f)?h.delete(f):h.add(f),W.value=h}function U(f){O.value=f.id,W.value=A(f),D.value=!0}function H(f){const h=f.target;$.value=(h==null?void 0:h.value)??""}function F(){if(E.value){E.value=!1,Y.value=[];return}Y.value=JSON.parse(JSON.stringify(s.value)),E.value=!0}function P(f){var h;return((h=f.split("/").pop())==null?void 0:h.replace(/\.vue$/i,""))??f}function Q(f){no(f)}function B(f){return f.path.join(" / ")}function X(f){return f<1?"<1ms":`${f.toFixed(1)}ms`}function te(f){return`+${(f/1e3).toFixed(2)}s`}return(f,h)=>(S(),T("div",Ud,[i("div",Bd,[i("div",Kd,[i("button",{class:oe({active:o.value==="count"}),onClick:h[0]||(h[0]=k=>o.value="count")},"render count",2),i("button",{class:oe({active:o.value==="time"}),onClick:h[1]||(h[1]=k=>o.value="time")},"render time",2)]),i("div",Wd,[h[7]||(h[7]=i("span",{class:"muted text-sm"},"threshold",-1)),Dt(i("input",{"onUpdate:modelValue":h[2]||(h[2]=k=>d.value=k),type:"range",min:o.value==="count"?2:4,max:o.value==="count"?20:100,step:o.value==="count"?1:4,style:{width:"90px"}},null,8,zd),[[ts,d.value,void 0,{number:!0}]]),i("span",qd,b(d.value)+b(o.value==="count"?"+ renders":"ms+"),1)]),i("button",{class:oe({active:g.value}),onClick:h[3]||(h[3]=k=>g.value=!g.value)},"hot only",2),Dt(i("select",{"onUpdate:modelValue":h[4]||(h[4]=k=>l.value=k),class:"route-select mono text-sm",title:"Filter by route"},[h[8]||(h[8]=i("option",{value:""},"all routes",-1)),(S(!0),T(de,null,$e(oo.value,k=>(S(),T("option",{key:k,value:k},b(k),9,Jd))),128))],512),[[Ra,l.value]]),i("button",{class:oe({active:E.value}),style:{"margin-left":"auto"},onClick:F},b(E.value?"unfreeze":"freeze snapshot"),3)]),i("div",Gd,[i("div",Yd,[h[9]||(h[9]=i("div",{class:"stat-label"},"components",-1)),i("div",Xd,b(ke.value.length),1)]),i("div",Qd,[h[10]||(h[10]=i("div",{class:"stat-label"},"total renders",-1)),i("div",Zd,b(p.value),1)]),i("div",ef,[h[11]||(h[11]=i("div",{class:"stat-label"},"hot",-1)),i("div",tf,b(C.value),1)]),i("div",sf,[h[12]||(h[12]=i("div",{class:"stat-label"},"avg time",-1)),i("div",nf,b(R.value)+"ms",1)])]),i("div",of,[i("aside",lf,[h[13]||(h[13]=i("div",{class:"panel-title"},"apps",-1)),(S(!0),T(de,null,$e(bt.value,k=>(S(),T("button",{key:k.id,class:oe(["root-item",{active:O.value===k.id}]),onClick:ee=>U(k.root)},[i("div",af,[i("span",cf,b(k.label),1),i("span",uf,b(k.root.label),1)]),i("span",df,b(k.meta),1)],10,rf))),128)),bt.value.length?se("",!0):(S(),T("div",ff,"no apps match"))]),i("section",pf,[i("div",hf,[i("input",{value:$.value,class:"search-input mono",placeholder:"Find components...",onInput:H},null,40,vf)]),i("div",mf,[i("div",gf,[(S(!0),T(de,null,$e(os.value,k=>{var ee;return S(),Nt(Ct(t),{key:k.id,node:k,mode:o.value,threshold:d.value,selected:(ee=c.value)==null?void 0:ee.id,"expanded-ids":W.value,onSelect:I,onToggle:L},null,8,["node","mode","threshold","selected","expanded-ids"])}),128))]),os.value.length?se("",!0):(S(),T("div",_f,b(Ct(n)?"No render activity recorded yet.":"Waiting for connection to the Nuxt app…"),1))])]),i("aside",bf,[c.value?(S(),T(de,{key:0},[i("div",yf,[i("span",xf,b(c.value.label),1),i("button",{onClick:h[5]||(h[5]=k=>y.value=null)},"×")]),i("div",wf,[i("span",$f,b(c.value.rerenders+c.value.mountCount)+" render"+b(c.value.rerenders+c.value.mountCount!==1?"s":""),1),i("span",Cf,b(c.value.mountCount)+" mount"+b(c.value.mountCount!==1?"s":""),1),c.value.rerenders?(S(),T("span",Sf,b(c.value.rerenders)+" re-render"+b(c.value.rerenders!==1?"s":""),1)):se("",!0),c.value.isPersistent?(S(),T("span",kf,"persistent")):se("",!0),c.value.isHydrationMount?(S(),T("span",Tf,"hydrated")):se("",!0),i("span",Mf,b(c.value.avgMs.toFixed(1))+"ms avg",1),i("span",{class:oe(["detail-pill mono",{hot:J(c.value)}])},b(J(c.value)?"hot":"cool"),3)]),h[29]||(h[29]=i("div",{class:"section-label"},"identity",-1)),i("div",Ef,[h[14]||(h[14]=i("span",{class:"muted text-sm"},"label",-1)),i("span",Of,b(c.value.label),1),h[15]||(h[15]=i("span",{class:"muted text-sm"},"path",-1)),i("span",Af,b(B(c.value)),1),h[16]||(h[16]=i("span",{class:"muted text-sm"},"file",-1)),i("span",If,[Le(b(c.value.file)+" ",1),c.value.file&&c.value.file!=="unknown"?(S(),T("button",{key:0,class:"jump-btn",title:"Open in editor",onClick:h[6]||(h[6]=k=>Q(c.value.file))}," open ↗ ")):se("",!0)]),h[17]||(h[17]=i("span",{class:"muted text-sm"},"file name",-1)),i("span",Nf,b(P(c.value.file)),1),h[18]||(h[18]=i("span",{class:"muted text-sm"},"parent",-1)),i("span",Lf,b(c.value.parentLabel??"none"),1),h[19]||(h[19]=i("span",{class:"muted text-sm"},"children",-1)),i("span",Pf,b(c.value.children.length),1)]),h[30]||(h[30]=i("div",{class:"section-label"},"rendering",-1)),i("div",Rf,[h[20]||(h[20]=i("span",{class:"muted text-sm"},"total renders",-1)),i("span",Ff,b(c.value.rerenders+c.value.mountCount),1),h[21]||(h[21]=i("span",{class:"muted text-sm"},"re-renders",-1)),i("span",jf,b(c.value.rerenders),1),h[22]||(h[22]=i("span",{class:"muted text-sm"},"mounts",-1)),i("span",Df,b(c.value.mountCount),1),h[23]||(h[23]=i("span",{class:"muted text-sm"},"persistent",-1)),i("span",{class:"mono text-sm",style:Ee({color:c.value.isPersistent?"var(--amber)":"inherit"})},b(c.value.isPersistent?"yes — survives navigation":"no"),5),h[24]||(h[24]=i("span",{class:"muted text-sm"},"hydration mount",-1)),i("span",Hf,b(c.value.isHydrationMount?"yes — SSR hydrated":"no"),1),h[25]||(h[25]=i("span",{class:"muted text-sm"},"avg render time",-1)),i("span",Vf,b(c.value.avgMs.toFixed(1))+"ms",1),h[26]||(h[26]=i("span",{class:"muted text-sm"},"threshold",-1)),i("span",Uf,b(d.value)+b(o.value==="count"?"+ renders":"ms+"),1),h[27]||(h[27]=i("span",{class:"muted text-sm"},"mode",-1)),i("span",Bf,b(o.value==="count"?"re-render count":"render time"),1)]),h[31]||(h[31]=i("div",{class:"section-label"},"triggers",-1)),(S(!0),T(de,null,$e(c.value.triggers,k=>(S(),T("div",{key:k,class:"trigger-item mono text-sm"},b(k),1))),128)),c.value.triggers.length?se("",!0):(S(),T("div",Kf,"no triggers recorded")),i("div",Wf,[h[28]||(h[28]=Le(" render timeline ",-1)),i("span",zf," ("+b(c.value.timeline.length)+") ",1)]),c.value.timeline.length?(S(),T("div",Jf,[(S(!0),T(de,null,$e([...c.value.timeline].reverse().slice(0,30),(k,ee)=>(S(),T("div",{key:ee,class:"timeline-row"},[i("span",{class:oe(["timeline-kind mono",k.kind])},b(k.kind),3),i("span",Gf,b(te(k.t)),1),i("span",Yf,b(X(k.durationMs)),1),k.triggerKey?(S(),T("span",Xf,b(k.triggerKey),1)):se("",!0),i("span",Qf,b(k.route),1)]))),128)),c.value.timeline.length>30?(S(),T("div",Zf," … "+b(c.value.timeline.length-30)+" earlier events ",1)):se("",!0)])):(S(),T("div",qf,"no timeline events yet"))],64)):(S(),T("div",ep,"click a component to inspect"))])])]))}}),sp=ns(tp,[["__scopeId","data-v-1e4353cd"]]),np={class:"timeline-root"},op={class:"stats-row"},lp={class:"stat-card"},ip={class:"stat-val"},rp={class:"stat-card"},ap={class:"stat-val",style:{color:"var(--purple)"}},cp={class:"stat-card"},up={class:"stat-val",style:{color:"var(--red)"}},dp={class:"stat-card"},fp={class:"stat-val"},pp={class:"toolbar"},hp={class:"filter-group"},vp={class:"content-area"},mp={class:"data-table"},gp=["onClick"],_p={class:"mono",style:{"font-size":"11px","font-weight":"500"}},bp={class:"mono",style:{"font-size":"11px",color:"var(--text2)"}},yp={class:"muted",style:{"font-size":"11px"}},xp={class:"bar-cell"},wp={class:"bar-track"},$p={key:0},Cp={colspan:"6",style:{"text-align":"center",color:"var(--text3)",padding:"24px"}},Sp={key:0,class:"detail-panel"},kp={class:"panel-header"},Tp={class:"panel-title"},Mp={class:"panel-section"},Ep={class:"panel-row"},Op={class:"panel-row"},Ap={class:"panel-row"},Ip={class:"panel-val mono"},Np={key:0,class:"panel-row"},Lp={class:"panel-val mono"},Pp={class:"panel-section"},Rp={class:"panel-row"},Fp={class:"panel-val mono"},jp={class:"panel-row"},Dp={class:"panel-val mono"},Hp={class:"panel-row"},Vp={class:"panel-val mono",style:{"font-weight":"500"}},Up={class:"panel-section"},Bp={class:"panel-row"},Kp={class:"panel-row"},Wp={key:0,class:"cancel-notice"},zp={key:1,class:"active-notice"},qp=Ht({__name:"TransitionTimeline",setup(e){const{transitions:t,connected:s}=ss(),n=ue("all"),o=ue(""),l=ue(null),r=ce(()=>{let $=[...t.value];if(o.value){const y=o.value.toLowerCase();$=$.filter(O=>O.transitionName.toLowerCase().includes(y)||O.parentComponent.toLowerCase().includes(y))}return n.value==="cancelled"?$=$.filter(y=>y.cancelled||y.phase==="interrupted"):n.value==="active"?$=$.filter(y=>y.phase==="entering"||y.phase==="leaving"):n.value==="completed"&&($=$.filter(y=>y.phase==="entered"||y.phase==="left")),$.sort((y,O)=>{const W=y.endTime??y.startTime;return(O.endTime??O.startTime)-W})}),a=ce(()=>({total:t.value.length,active:t.value.filter($=>$.phase==="entering"||$.phase==="leaving").length,cancelled:t.value.filter($=>$.cancelled||$.phase==="interrupted").length,avgMs:(()=>{const $=t.value.filter(y=>y.durationMs!==void 0);return $.length?Math.round($.reduce((y,O)=>y+(O.durationMs??0),0)/$.length):0})()})),u=ce(()=>{const $=r.value;if(!$.length)return[];const y=$.reduce((Y,D)=>Math.min(Y,D.startTime),$[0].startTime),O=$.reduce((Y,D)=>Math.max(Y,D.endTime??D.startTime+400),0),W=Math.max(O-y,1);return $.map(Y=>({left:(Y.startTime-y)/W*100,width:((Y.endTime??Y.startTime+80)-Y.startTime)/W*100}))});function m($){return $==="entering"||$==="leaving"?"#7f77dd":$==="entered"?"#1d9e75":$==="left"?"#378add":$==="enter-cancelled"||$==="leave-cancelled"?"#e24b4a":$==="interrupted"?"#e09a3a":"#888"}function d($){return $==="entering"||$==="leaving"?"badge-purple":$==="entered"||$==="left"?"badge-ok":$.includes("cancelled")?"badge-err":$==="interrupted"?"badge-warn":"badge-gray"}function g($){return $.appear?"✦ appear":$.direction==="enter"?"→ enter":"← leave"}function E($){return $.appear?"var(--amber)":$.direction==="enter"?"var(--teal)":"var(--blue)"}return($,y)=>(S(),T("div",np,[i("div",op,[i("div",lp,[i("div",ip,b(a.value.total),1),y[6]||(y[6]=i("div",{class:"stat-label"},"total",-1))]),i("div",rp,[i("div",ap,b(a.value.active),1),y[7]||(y[7]=i("div",{class:"stat-label"},"active",-1))]),i("div",cp,[i("div",up,b(a.value.cancelled),1),y[8]||(y[8]=i("div",{class:"stat-label"},"cancelled",-1))]),i("div",dp,[i("div",fp,[Le(b(a.value.avgMs)+" ",1),y[9]||(y[9]=i("span",{class:"stat-unit"},"ms",-1))]),y[10]||(y[10]=i("div",{class:"stat-label"},"avg duration",-1))])]),i("div",pp,[Dt(i("input",{"onUpdate:modelValue":y[0]||(y[0]=O=>o.value=O),type:"search",placeholder:"filter by name or component…",class:"search-input"},null,512),[[ts,o.value]]),i("div",hp,[i("button",{class:oe({active:n.value==="all"}),onClick:y[1]||(y[1]=O=>n.value="all")},"All",2),i("button",{class:oe({active:n.value==="active"}),onClick:y[2]||(y[2]=O=>n.value="active")},"Active",2),i("button",{class:oe({active:n.value==="completed"}),onClick:y[3]||(y[3]=O=>n.value="completed")},"Completed",2),i("button",{class:oe({active:n.value==="cancelled","danger-active":n.value==="cancelled"}),onClick:y[4]||(y[4]=O=>n.value="cancelled")}," Cancelled ",2)])]),i("div",vp,[i("div",{class:oe(["table-pane",{"has-panel":l.value}])},[i("table",mp,[y[11]||(y[11]=i("thead",null,[i("tr",null,[i("th",{style:{width:"110px"}},"NAME"),i("th",{style:{width:"80px"}},"DIR"),i("th",{style:{width:"90px"}},"PHASE"),i("th",{style:{width:"70px"}},"DURATION"),i("th",null,"COMPONENT"),i("th",null,"TIMELINE")])],-1)),i("tbody",null,[(S(!0),T(de,null,$e(r.value,(O,W)=>{var Y,D,ne;return S(),T("tr",{key:O.id,class:oe({selected:((Y=l.value)==null?void 0:Y.id)===O.id}),onClick:M=>{var j;return l.value=((j=l.value)==null?void 0:j.id)===O.id?null:O}},[i("td",null,[i("span",_p,b(O.transitionName),1)]),i("td",null,[i("span",{class:"mono",style:Ee([{"font-size":"11px"},{color:E(O)}])},b(g(O)),5)]),i("td",null,[i("span",{class:oe(["badge",d(O.phase)])},b(O.phase),3)]),i("td",bp,b(O.durationMs!==void 0?O.durationMs+"ms":"—"),1),i("td",yp,b(O.parentComponent),1),i("td",xp,[i("div",wp,[i("div",{class:"bar-fill",style:Ee({left:((D=u.value[W])==null?void 0:D.left)+"%",width:Math.max(((ne=u.value[W])==null?void 0:ne.width)??1,1)+"%",background:m(O.phase),opacity:O.phase==="entering"||O.phase==="leaving"?"0.55":"1"})},null,4)])])],10,gp)}),128)),r.value.length?se("",!0):(S(),T("tr",$p,[i("td",Cp,b(Ct(s)?"No transitions recorded yet — trigger one on the page.":"Waiting for connection to the Nuxt app…"),1)]))])])],2),Oe(Rn,{name:"panel-slide"},{default:Ks(()=>[l.value?(S(),T("aside",Sp,[i("div",kp,[i("span",Tp,b(l.value.transitionName),1),i("button",{class:"close-btn",onClick:y[5]||(y[5]=O=>l.value=null)},"✕")]),i("div",Mp,[i("div",Ep,[y[12]||(y[12]=i("span",{class:"panel-key"},"Direction",-1)),i("span",{class:"panel-val",style:Ee({color:E(l.value)})},b(g(l.value)),5)]),i("div",Op,[y[13]||(y[13]=i("span",{class:"panel-key"},"Phase",-1)),i("span",{class:oe(["badge",d(l.value.phase)])},b(l.value.phase),3)]),i("div",Ap,[y[14]||(y[14]=i("span",{class:"panel-key"},"Component",-1)),i("span",Ip,b(l.value.parentComponent),1)]),l.value.mode?(S(),T("div",Np,[y[15]||(y[15]=i("span",{class:"panel-key"},"Mode",-1)),i("span",Lp,b(l.value.mode),1)])):se("",!0)]),i("div",Pp,[y[19]||(y[19]=i("div",{class:"panel-section-title"},"Timing",-1)),i("div",Rp,[y[16]||(y[16]=i("span",{class:"panel-key"},"Start",-1)),i("span",Fp,b(l.value.startTime.toFixed(2))+"ms",1)]),i("div",jp,[y[17]||(y[17]=i("span",{class:"panel-key"},"End",-1)),i("span",Dp,b(l.value.endTime!==void 0?l.value.endTime.toFixed(2)+"ms":"—"),1)]),i("div",Hp,[y[18]||(y[18]=i("span",{class:"panel-key"},"Duration",-1)),i("span",Vp,b(l.value.durationMs!==void 0?l.value.durationMs+"ms":l.value.phase==="interrupted"?"interrupted":"in progress"),1)])]),i("div",Up,[y[22]||(y[22]=i("div",{class:"panel-section-title"},"Flags",-1)),i("div",Bp,[y[20]||(y[20]=i("span",{class:"panel-key"},"Appear",-1)),i("span",{class:"panel-val",style:Ee({color:l.value.appear?"var(--amber)":"var(--text3)"})},b(l.value.appear?"yes":"no"),5)]),i("div",Kp,[y[21]||(y[21]=i("span",{class:"panel-key"},"Cancelled",-1)),i("span",{class:"panel-val",style:Ee({color:l.value.cancelled?"var(--red)":"var(--text3)"})},b(l.value.cancelled?"yes":"no"),5)])]),l.value.cancelled?(S(),T("div",Wp,[...y[23]||(y[23]=[Le(" This transition was cancelled mid-flight. The element may be stuck in a partial animation state if the interruption was not handled with ",-1),i("code",null,"onEnterCancelled",-1),Le(" / ",-1),i("code",null,"onLeaveCancelled",-1),Le(" . ",-1)])])):se("",!0),l.value.phase==="entering"||l.value.phase==="leaving"?(S(),T("div",zp,[...y[24]||(y[24]=[Le(" Transition is currently in progress. If it stays in this state longer than expected, the ",-1),i("code",null,"done()",-1),Le(" callback may not be getting called (JS-mode transition stall). ",-1)])])):se("",!0)])):se("",!0)]),_:1})])]))}}),Jp=ns(qp,[["__scopeId","data-v-b3516416"]]),Gp={id:"app-root"},Yp={class:"tabbar"},Xp=["onClick"],Qp={class:"tab-icon"},Zp={class:"tab-content"},eh=Ht({__name:"App",setup(e){const t={fetch:"fetch",provide:"provide",composables:"composable",heatmap:"heatmap",transitions:"transitions"},s=window.location.pathname.split("/").filter(Boolean).pop()??"",n=ue(t[s]??"fetch"),{features:o}=ss(),l=ce(()=>{const r=o.value||{};return[r.fetchDashboard&&{id:"fetch",label:"useFetch",icon:"⬡"},r.provideInjectGraph&&{id:"provide",label:"provide/inject",icon:"⬡"},r.composableTracker&&{id:"composable",label:"Composables",icon:"⬡"},r.renderHeatmap&&{id:"heatmap",label:"Heatmap",icon:"⬡"},r.transitionTracker&&{id:"transitions",label:"Transitions",icon:"⬡"}].filter(a=>!!a)});return(r,a)=>(S(),T("div",Gp,[i("nav",Yp,[a[0]||(a[0]=i("div",{class:"tabbar-brand"},"observatory",-1)),(S(!0),T(de,null,$e(l.value,u=>(S(),T("button",{key:u.id,class:oe(["tab-btn",{active:n.value===u.id}]),onClick:m=>n.value=u.id},[i("span",Qp,b(u.icon),1),Le(" "+b(u.label),1)],10,Xp))),128))]),i("main",Zp,[n.value==="fetch"?(S(),Nt(Pc,{key:0})):n.value==="provide"?(S(),Nt(yu,{key:1})):n.value==="composable"?(S(),Nt(Vd,{key:2})):n.value==="heatmap"?(S(),Nt(sp,{key:3})):n.value==="transitions"?(S(),Nt(Jp,{key:4})):se("",!0)])]))}}),th=ns(eh,[["__scopeId","data-v-b91d81f3"]]);Va(th).mount("#app");
@@ -0,0 +1 @@
1
+ .view[data-v-18827ce2]{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:12px;gap:10px}.stats-row[data-v-18827ce2]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;flex-shrink:0}.toolbar[data-v-18827ce2]{display:flex;align-items:center;gap:6px;flex-shrink:0;flex-wrap:wrap}.split[data-v-18827ce2]{display:flex;gap:12px;flex:1;overflow:hidden;min-height:0}.table-wrap[data-v-18827ce2]{flex:1;overflow:auto;border:.5px solid var(--border);border-radius:var(--radius-lg)}.detail-panel[data-v-18827ce2]{width:280px;flex-shrink:0;display:flex;flex-direction:column;gap:8px;overflow:auto;border:.5px solid var(--border);border-radius:var(--radius-lg);padding:12px;background:var(--bg3)}.detail-empty[data-v-18827ce2]{width:280px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--text3);font-size:12px;border:.5px dashed var(--border);border-radius:var(--radius-lg)}.detail-header[data-v-18827ce2]{display:flex;align-items:center;justify-content:space-between}.meta-grid[data-v-18827ce2]{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:11px}.section-label[data-v-18827ce2]{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.4px;color:var(--text3);margin-top:6px;min-height:fit-content}.payload-box[data-v-18827ce2]{font-family:var(--mono);font-size:11px;color:var(--text2);background:var(--bg2);border-radius:var(--radius);padding:8px 10px;overflow:auto;white-space:pre;max-height:160px}.waterfall[data-v-18827ce2]{flex-shrink:0;background:var(--bg3);border:.5px solid var(--border);border-radius:var(--radius-lg);padding:10px 12px}.waterfall-header[data-v-18827ce2]{display:flex;align-items:center;justify-content:space-between;gap:8px}.waterfall-body[data-v-18827ce2]{margin-top:6px}.wf-row[data-v-18827ce2]{display:flex;align-items:center;gap:8px;margin-bottom:4px}.wf-track[data-v-18827ce2]{flex:1;position:relative;height:8px;background:var(--bg2);border-radius:2px;overflow:hidden}.wf-bar[data-v-18827ce2]{position:absolute;top:0;height:100%;border-radius:2px;opacity:.8}.view[data-v-14f40c78]{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:12px;gap:10px}.toolbar[data-v-14f40c78]{display:flex;align-items:center;gap:6px;flex-shrink:0;flex-wrap:wrap}.split[data-v-14f40c78]{display:flex;gap:12px;flex:1;overflow:hidden;min-height:0}.graph-area[data-v-14f40c78]{flex:1;overflow:auto;border:.5px solid var(--border);border-radius:var(--radius-lg);padding:12px;background:var(--bg3)}.legend[data-v-14f40c78]{display:flex;align-items:center;gap:12px;font-size:11px;color:var(--text2);margin-bottom:12px}.canvas-stage[data-v-14f40c78]{display:flex;justify-content:center;align-items:flex-start;min-width:100%}.dot[data-v-14f40c78]{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:2px}.canvas-wrap[data-v-14f40c78]{position:relative}.edges-svg[data-v-14f40c78]{position:absolute;top:0;left:0;pointer-events:none}.edge[data-v-14f40c78]{stroke:var(--border);stroke-width:1.5}.graph-node[data-v-14f40c78]{position:absolute;display:flex;align-items:center;gap:7px;padding:0 10px;height:32px;border-radius:var(--radius);border:.5px solid var(--border);background:var(--bg3);cursor:pointer;transition:border-color .12s,background .12s;overflow:hidden;box-sizing:border-box;white-space:nowrap}.graph-node[data-v-14f40c78]:hover{border-color:var(--text3)}.graph-node.is-selected[data-v-14f40c78]{border-color:var(--node-color);background:color-mix(in srgb,var(--node-color) 8%,transparent)}.node-dot[data-v-14f40c78]{width:7px;height:7px;border-radius:50%;flex-shrink:0}.node-label[data-v-14f40c78]{font-size:11px;flex:1;overflow:hidden;text-overflow:ellipsis}.badge-xs[data-v-14f40c78]{font-size:9px;padding:1px 4px}.detail-panel[data-v-14f40c78]{width:280px;flex-shrink:0;overflow:auto;border:.5px solid var(--border);border-radius:var(--radius-lg);padding:12px;background:var(--bg3);display:flex;flex-direction:column;gap:4px;min-height:0}.detail-empty[data-v-14f40c78]{width:280px;display:flex;align-items:center;justify-content:center;color:var(--text3);font-size:12px;border:.5px dashed var(--border);border-radius:var(--radius-lg);flex-shrink:0}.graph-empty[data-v-14f40c78]{display:flex;align-items:center;justify-content:center;min-height:180px;color:var(--text3);font-size:12px}.detail-header[data-v-14f40c78]{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.section-label[data-v-14f40c78]{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.4px;color:var(--text3);margin:8px 0 5px}.detail-section[data-v-14f40c78]{display:flex;flex-direction:column;min-height:0}.detail-list[data-v-14f40c78]{display:flex;flex-direction:column;gap:3px;overflow:auto;max-height:220px;padding-right:2px}.provide-row[data-v-14f40c78]{display:flex;flex-direction:column;gap:4px;padding:5px 8px;background:var(--bg2);border-radius:var(--radius);margin-bottom:3px}.row-warning[data-v-14f40c78]{font-size:11px;color:var(--amber);padding:2px 0}.row-consumers[data-v-14f40c78]{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:2px 0}.consumer-chip[data-v-14f40c78]{font-size:10px;padding:1px 6px;border-radius:4px;background:color-mix(in srgb,var(--blue) 10%,var(--bg3));border:.5px solid color-mix(in srgb,var(--blue) 30%,var(--border));color:var(--text2)}.scope-badge[data-v-14f40c78]{font-size:10px;padding:1px 6px;border-radius:4px}.scope-global[data-v-14f40c78]{background:color-mix(in srgb,var(--amber) 15%,transparent);border:.5px solid color-mix(in srgb,var(--amber) 40%,var(--border));color:color-mix(in srgb,var(--amber) 80%,var(--text))}.scope-layout[data-v-14f40c78]{background:color-mix(in srgb,var(--purple) 15%,transparent);border:.5px solid color-mix(in srgb,var(--purple) 40%,var(--border));color:color-mix(in srgb,var(--purple) 80%,var(--text))}.scope-component[data-v-14f40c78]{background:var(--bg3);border:.5px solid var(--border);color:var(--text3)}.row-main[data-v-14f40c78]{display:flex;align-items:center;gap:8px;min-width:0}.row-key[data-v-14f40c78]{min-width:100px;color:var(--text2);flex-shrink:0}.row-value-preview[data-v-14f40c78]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-toggle[data-v-14f40c78]{padding:2px 8px;font-size:10px}.value-box[data-v-14f40c78]{font-family:var(--mono);font-size:11px;color:var(--text2);background:#0000001a;border-radius:var(--radius);padding:8px 10px;white-space:pre-wrap;overflow-wrap:break-word;overflow:auto;max-height:180px}.inject-row[data-v-14f40c78]{display:flex;align-items:center;gap:8px;padding:5px 8px;background:var(--bg2);border-radius:var(--radius);margin-bottom:3px}.row-from[data-v-14f40c78]{margin-left:auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inject-miss[data-v-14f40c78]{background:#e24b4a14}.jump-btn[data-v-14f40c78]{font-size:10px;padding:1px 6px;border:.5px solid var(--border);border-radius:var(--radius);background:transparent;color:var(--text3);cursor:pointer;flex-shrink:0;font-family:var(--mono)}.jump-btn[data-v-14f40c78]:hover{border-color:var(--teal);color:var(--teal);background:color-mix(in srgb,var(--teal) 8%,transparent)}.view[data-v-01ed1c12]{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:12px;gap:10px}.stats-row[data-v-01ed1c12]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;flex-shrink:0}.toolbar[data-v-01ed1c12]{display:flex;align-items:center;gap:6px;flex-shrink:0;flex-wrap:wrap}.clear-btn[data-v-01ed1c12]{color:var(--text3);border-color:var(--border);flex-shrink:0}.clear-btn[data-v-01ed1c12]:hover{color:var(--red);border-color:var(--red);background:transparent}.mode-btn[data-v-01ed1c12]{border-color:color-mix(in srgb,var(--blue) 40%,var(--border));color:var(--blue)}.mode-btn[data-v-01ed1c12]:hover{border-color:var(--blue);background:color-mix(in srgb,var(--blue) 12%,transparent)}.list[data-v-01ed1c12]{flex:1;overflow:auto;display:flex;flex-direction:column;gap:5px;min-height:0}.comp-card[data-v-01ed1c12]{background:var(--bg3);border:.5px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;flex-shrink:0}.comp-card[data-v-01ed1c12]:hover{border-color:var(--text3)}.comp-card.leak[data-v-01ed1c12]{border-left:2px solid var(--red);border-radius:0 var(--radius-lg) var(--radius-lg) 0}.comp-card.expanded[data-v-01ed1c12]{border-color:var(--purple)}.comp-header[data-v-01ed1c12]{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;gap:8px}.comp-identity[data-v-01ed1c12]{display:flex;align-items:baseline;gap:6px;min-width:0;flex:1}.comp-name[data-v-01ed1c12]{font-size:12px;font-weight:500;color:var(--text);flex-shrink:0}.comp-file[data-v-01ed1c12]{font-size:11px;color:var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.comp-meta[data-v-01ed1c12]{display:flex;align-items:center;gap:5px;flex-shrink:0}.refs-preview[data-v-01ed1c12]{display:flex;flex-wrap:wrap;gap:4px;padding:0 12px 8px;align-items:center}.ref-chip[data-v-01ed1c12]{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:4px;background:var(--bg2);border:.5px solid var(--border);font-size:11px;font-family:var(--mono);max-width:220px;overflow:hidden}.ref-chip--reactive[data-v-01ed1c12]{border-color:color-mix(in srgb,var(--purple) 40%,var(--border));background:color-mix(in srgb,var(--purple) 8%,var(--bg2))}.ref-chip--computed[data-v-01ed1c12]{border-color:color-mix(in srgb,var(--blue) 40%,var(--border));background:color-mix(in srgb,var(--blue) 8%,var(--bg2))}.ref-chip-key[data-v-01ed1c12]{color:var(--text2);flex-shrink:0}.ref-chip-val[data-v-01ed1c12]{color:var(--teal);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.comp-detail[data-v-01ed1c12]{padding:4px 12px 12px;border-top:.5px solid var(--border);display:flex;flex-direction:column;gap:3px}.leak-banner[data-v-01ed1c12]{background:color-mix(in srgb,var(--red) 12%,transparent);border:.5px solid color-mix(in srgb,var(--red) 40%,var(--border));border-radius:var(--radius);padding:6px 10px;font-size:11px;color:var(--red);margin-bottom:6px;font-family:var(--mono)}.section-label[data-v-01ed1c12]{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.4px;color:var(--text3);margin-top:6px;margin-bottom:3px}.ref-row[data-v-01ed1c12]{display:flex;align-items:flex-start;gap:8px;padding:3px 0}.ref-key[data-v-01ed1c12]{min-width:90px;color:var(--text2);flex-shrink:0}.ref-val[data-v-01ed1c12]{flex:1;color:var(--teal);min-width:0}.ref-val--collapsed[data-v-01ed1c12]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ref-val--full[data-v-01ed1c12]{white-space:pre-wrap;word-break:break-all;line-height:1.5}.ref-row-actions[data-v-01ed1c12]{display:flex;align-items:center;gap:4px;flex-shrink:0}.expand-btn[data-v-01ed1c12]{font-size:9px;padding:1px 5px;border-radius:4px;border:.5px solid var(--border);background:var(--bg2);color:var(--text3);cursor:pointer;line-height:1.4;flex-shrink:0}.expand-btn[data-v-01ed1c12]:hover{border-color:var(--text3);color:var(--text)}.lc-row[data-v-01ed1c12]{display:flex;align-items:center;gap:8px;padding:2px 0}.lc-dot[data-v-01ed1c12]{width:6px;height:6px;border-radius:50%;flex-shrink:0}.ref-chip--shared[data-v-01ed1c12]{border-color:color-mix(in srgb,var(--amber) 50%,var(--border));background:color-mix(in srgb,var(--amber) 10%,var(--bg2))}.ref-chip-shared-dot[data-v-01ed1c12]{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--amber);flex-shrink:0;margin-left:1px}.global-banner[data-v-01ed1c12]{display:flex;align-items:flex-start;gap:8px;background:color-mix(in srgb,var(--amber) 10%,transparent);border:.5px solid color-mix(in srgb,var(--amber) 40%,var(--border));border-radius:var(--radius);padding:7px 10px;font-size:11px;color:var(--text2);margin-bottom:6px}.global-dot[data-v-01ed1c12]{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--amber);flex-shrink:0;margin-top:3px}.badge-amber[data-v-01ed1c12]{background:color-mix(in srgb,var(--amber) 15%,transparent);color:color-mix(in srgb,var(--amber) 80%,var(--text));border:.5px solid color-mix(in srgb,var(--amber) 40%,var(--border))}.history-list[data-v-01ed1c12]{display:flex;flex-direction:column;gap:1px;background:var(--bg2);border-radius:var(--radius);padding:4px 8px;max-height:180px;overflow-y:auto}.history-row[data-v-01ed1c12]{display:flex;align-items:center;gap:8px;padding:2px 0;font-size:11px;font-family:var(--mono);border-bottom:.5px solid var(--border)}.history-row[data-v-01ed1c12]:last-child{border-bottom:none}.history-time[data-v-01ed1c12]{min-width:52px;color:var(--text3);flex-shrink:0}.history-key[data-v-01ed1c12]{min-width:80px;color:var(--text2);flex-shrink:0}.history-val[data-v-01ed1c12]{color:var(--amber);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.stat-card[data-v-01ed1c12]{background:var(--bg3);border:.5px solid var(--border);border-radius:var(--radius-lg);padding:10px 14px}.stat-label[data-v-01ed1c12]{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.4px;color:var(--text3);margin-bottom:4px}.stat-val[data-v-01ed1c12]{font-size:22px;font-weight:500;line-height:1;color:var(--text)}.ref-key--clickable[data-v-01ed1c12]{cursor:pointer;text-decoration:underline dotted var(--text3);text-underline-offset:2px}.ref-key--clickable[data-v-01ed1c12]:hover{color:var(--purple);text-decoration-color:var(--purple)}.edit-btn[data-v-01ed1c12]{font-size:10px;padding:1px 6px;border-radius:var(--radius);border:.5px solid var(--border);background:transparent;color:var(--text3);cursor:pointer;margin-left:auto;flex-shrink:0;font-family:var(--mono)}.edit-btn[data-v-01ed1c12]:hover{border-color:var(--purple);color:var(--purple);background:color-mix(in srgb,var(--purple) 8%,transparent)}.lookup-panel[data-v-01ed1c12]{flex-shrink:0;border:.5px solid var(--border);border-radius:var(--radius-lg);background:var(--bg3);overflow:hidden}.lookup-header[data-v-01ed1c12]{display:flex;align-items:center;gap:6px;padding:7px 12px;border-bottom:.5px solid var(--border);background:var(--bg2)}.lookup-row[data-v-01ed1c12]{display:flex;align-items:center;gap:8px;padding:5px 12px;border-bottom:.5px solid var(--border)}.lookup-row[data-v-01ed1c12]:last-child{border-bottom:none}.edit-overlay[data-v-01ed1c12]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:100;display:flex;align-items:center;justify-content:center}.edit-dialog[data-v-01ed1c12]{background:var(--bg1, var(--bg2));border:.5px solid var(--border);border-radius:var(--radius-lg);padding:14px 16px;width:380px;max-width:92vw;display:flex;flex-direction:column;gap:6px;box-shadow:0 8px 32px #0000004d}.edit-dialog-header[data-v-01ed1c12]{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text2);margin-bottom:2px}.edit-textarea[data-v-01ed1c12]{width:100%;font-family:var(--mono);font-size:12px;padding:8px 10px;background:var(--bg2);border:.5px solid var(--border);border-radius:var(--radius);color:var(--text);resize:vertical;outline:none}.edit-textarea[data-v-01ed1c12]:focus{border-color:var(--purple)}.edit-error[data-v-01ed1c12]{color:var(--red);font-family:var(--mono)}.edit-actions[data-v-01ed1c12]{display:flex;gap:6px;padding-top:4px}.slide-enter-active[data-v-01ed1c12],.slide-leave-active[data-v-01ed1c12]{transition:opacity .15s,transform .15s}.slide-enter-from[data-v-01ed1c12],.slide-leave-to[data-v-01ed1c12]{opacity:0;transform:translateY(6px)}.fade-enter-active[data-v-01ed1c12],.fade-leave-active[data-v-01ed1c12]{transition:opacity .15s}.fade-enter-from[data-v-01ed1c12],.fade-leave-to[data-v-01ed1c12]{opacity:0}.jump-btn[data-v-01ed1c12]{font-size:10px;padding:1px 6px;border:.5px solid var(--border);border-radius:var(--radius);background:transparent;color:var(--text3);cursor:pointer;flex-shrink:0;font-family:var(--mono)}.jump-btn[data-v-01ed1c12]:hover{border-color:var(--teal);color:var(--teal);background:color-mix(in srgb,var(--teal) 8%,transparent)}.view[data-v-1e4353cd]{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:12px;gap:10px}.controls[data-v-1e4353cd]{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap}.mode-group[data-v-1e4353cd]{display:flex;gap:2px}.threshold-group[data-v-1e4353cd]{display:flex;align-items:center;gap:6px}.stats-row[data-v-1e4353cd]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;flex-shrink:0}.stat-sub[data-v-1e4353cd]{margin-top:4px;font-size:11px;color:var(--text3)}.inspector[data-v-1e4353cd]{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr) minmax(260px,320px);gap:12px;flex:1;min-height:0}.roots-panel[data-v-1e4353cd],.tree-panel[data-v-1e4353cd],.detail-panel[data-v-1e4353cd]{border:.5px solid var(--border);border-radius:var(--radius-lg);background:var(--bg3);min-height:0}.roots-panel[data-v-1e4353cd],.detail-panel[data-v-1e4353cd]{display:flex;flex-direction:column;overflow:auto;padding:12px;gap:8px}.panel-title[data-v-1e4353cd]{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.4px;color:var(--text3)}.root-item[data-v-1e4353cd]{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg2);color:var(--text);text-align:left}.root-item.active[data-v-1e4353cd]{border-color:var(--teal);background:color-mix(in srgb,var(--teal) 16%,var(--bg2))}.root-label[data-v-1e4353cd]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.root-copy[data-v-1e4353cd]{display:flex;flex-direction:column;min-width:0}.root-sub[data-v-1e4353cd]{font-size:11px}.root-meta[data-v-1e4353cd]{color:var(--text3);font-size:11px}.tree-panel[data-v-1e4353cd]{display:flex;flex-direction:column;overflow:hidden}.tree-toolbar[data-v-1e4353cd]{padding:12px;border-bottom:.5px solid var(--border)}.search-input[data-v-1e4353cd]{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg2);color:var(--text)}.tree-frame[data-v-1e4353cd]{flex:1;min-height:0;overflow:auto;padding:12px}[data-v-1e4353cd] .tree-canvas{display:inline-block;min-width:100%;width:max-content}[data-v-1e4353cd] .tree-node{margin-bottom:4px}[data-v-1e4353cd] .tree-row{display:grid;grid-template-columns:8px 18px minmax(0,1fr) auto;align-items:center;gap:6px;min-width:0;width:100%;padding:4px 8px;padding-left:calc(8px + (var(--tree-depth, 0) * 16px));border:1px solid transparent;border-radius:var(--radius);cursor:pointer;white-space:nowrap}[data-v-1e4353cd] .tree-row:hover{background:var(--bg2)}[data-v-1e4353cd] .tree-row.selected{background:color-mix(in srgb,var(--teal) 12%,var(--bg2));border-color:var(--teal)}[data-v-1e4353cd] .tree-row.hot{box-shadow:inset 2px 0 0 var(--red)}[data-v-1e4353cd] .tree-toggle{width:16px;height:16px;border:none;background:transparent;color:var(--text3);padding:0;font-size:14px;display:inline-flex;align-items:center;justify-content:center}[data-v-1e4353cd] .tree-toggle:disabled{cursor:default}[data-v-1e4353cd] .tree-toggle.empty{opacity:0}[data-v-1e4353cd] .tree-rail{display:block;width:2px;height:14px;border-radius:999px;background:color-mix(in srgb,var(--border) 75%,transparent)}[data-v-1e4353cd] .tree-copy{display:flex;align-items:center;min-width:0;gap:6px;overflow:hidden}[data-v-1e4353cd] .tree-name{font-size:12px;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis}[data-v-1e4353cd] .tree-badges{display:flex;gap:6px;flex-shrink:0;overflow:hidden}[data-v-1e4353cd] .tree-badge{border:1px solid var(--border);border-radius:999px;padding:2px 7px;font-size:10px;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}[data-v-1e4353cd] .tree-metrics{display:flex;align-items:center;min-width:92px;justify-content:flex-end;flex-shrink:0;gap:6px}[data-v-1e4353cd] .tree-metric-pill{display:inline-flex;align-items:center;justify-content:center;min-width:78px;padding:2px 8px;border:1px solid var(--border);border-radius:999px;background:var(--bg2);font-size:10px;color:var(--text3)}[data-v-1e4353cd] .tree-persistent-pill{display:inline-flex;align-items:center;padding:2px 8px;border:1px solid color-mix(in srgb,var(--amber) 55%,var(--border));border-radius:999px;background:color-mix(in srgb,var(--amber) 10%,var(--bg2));font-size:10px;color:color-mix(in srgb,var(--amber) 80%,var(--text))}[data-v-1e4353cd] .tree-hydration-pill{display:inline-flex;align-items:center;padding:2px 8px;border:1px solid color-mix(in srgb,var(--teal) 55%,var(--border));border-radius:999px;background:color-mix(in srgb,var(--teal) 10%,var(--bg2));font-size:10px;color:color-mix(in srgb,var(--teal) 80%,var(--text))}[data-v-1e4353cd] .tree-children{margin-left:7px;padding-left:11px;border-left:1px solid color-mix(in srgb,var(--border) 72%,transparent)}.detail-empty[data-v-1e4353cd]{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text3);font-size:12px}.detail-header[data-v-1e4353cd]{display:flex;align-items:center;justify-content:space-between}.meta-grid[data-v-1e4353cd]{display:grid;grid-template-columns:auto 1fr;gap:4px 12px}.detail-pill-row[data-v-1e4353cd]{display:flex;flex-wrap:wrap;gap:6px}.detail-pill[data-v-1e4353cd]{border:1px solid var(--border);border-radius:999px;padding:4px 8px;background:var(--bg2);font-size:11px}.detail-pill.hot[data-v-1e4353cd]{border-color:color-mix(in srgb,var(--red) 50%,var(--border));color:var(--red)}.detail-pill.persistent[data-v-1e4353cd]{border-color:color-mix(in srgb,var(--amber) 55%,var(--border));color:color-mix(in srgb,var(--amber) 80%,var(--text))}.detail-pill.hydrated[data-v-1e4353cd]{border-color:color-mix(in srgb,var(--teal) 55%,var(--border));color:color-mix(in srgb,var(--teal) 80%,var(--text))}.detail-pill.muted[data-v-1e4353cd]{color:var(--text3);border-color:var(--border)}.section-label[data-v-1e4353cd]{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.4px;color:var(--text3);margin-top:8px;margin-bottom:4px}.trigger-item[data-v-1e4353cd]{background:var(--bg2);border-radius:var(--radius);padding:4px 8px;margin-bottom:3px;color:var(--text2)}[data-v-1e4353cd] .tree-jump-btn{display:none;padding:0 4px;border:none;background:transparent;color:var(--text3);font-size:11px;cursor:pointer;line-height:1;flex-shrink:0}[data-v-1e4353cd] .tree-row:hover .tree-jump-btn,[data-v-1e4353cd] .tree-row.selected .tree-jump-btn{display:inline-flex}[data-v-1e4353cd] .tree-jump-btn:hover{color:var(--teal)}.jump-btn[data-v-1e4353cd]{font-size:10px;padding:1px 6px;border:.5px solid var(--border);border-radius:var(--radius);background:transparent;color:var(--text3);cursor:pointer;flex-shrink:0;font-family:var(--mono)}.jump-btn[data-v-1e4353cd]:hover{border-color:var(--teal);color:var(--teal);background:color-mix(in srgb,var(--teal) 8%,transparent)}.route-select[data-v-1e4353cd]{padding:3px 7px;border:.5px solid var(--border);border-radius:var(--radius);background:var(--bg2);color:var(--text);font-size:11px;cursor:pointer;max-width:140px}.timeline-list[data-v-1e4353cd]{display:flex;flex-direction:column;gap:1px;background:var(--bg2);border-radius:var(--radius);padding:4px 8px;max-height:200px;overflow-y:auto;min-height:fit-content}.timeline-row[data-v-1e4353cd]{display:flex;align-items:center;gap:6px;padding:2px 0;font-size:11px;border-bottom:.5px solid var(--border);min-width:0;min-height:fit-content}.timeline-row[data-v-1e4353cd]:last-child{border-bottom:none}.timeline-kind[data-v-1e4353cd]{flex-shrink:0;font-size:10px;font-weight:500;min-width:40px}.timeline-kind.mount[data-v-1e4353cd]{color:var(--teal)}.timeline-kind.update[data-v-1e4353cd]{color:var(--amber)}.timeline-time[data-v-1e4353cd]{flex-shrink:0;min-width:52px;color:var(--text3)}.timeline-dur[data-v-1e4353cd]{flex-shrink:0;min-width:38px;color:var(--text2)}.timeline-trigger[data-v-1e4353cd]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text3);flex:1;min-width:0}.timeline-route[data-v-1e4353cd]{flex-shrink:0;color:var(--text3);font-size:10px}@media(max-width:1180px){.inspector[data-v-1e4353cd]{grid-template-columns:minmax(200px,240px) minmax(0,1fr)}.detail-panel[data-v-1e4353cd]{grid-column:1 / -1;max-height:220px}}.timeline-root[data-v-b3516416]{display:flex;flex-direction:column;height:100%;overflow:hidden}.stats-row[data-v-b3516416]{display:flex;gap:10px;padding:12px 14px 0;flex-shrink:0}.stat-card[data-v-b3516416]{background:var(--bg2);border:.5px solid var(--border);border-radius:var(--radius);padding:8px 14px;min-width:72px;text-align:center}.stat-val[data-v-b3516416]{font-size:20px;font-weight:600;font-family:var(--mono);line-height:1.1}.stat-unit[data-v-b3516416]{font-size:12px;opacity:.6;margin-left:1px}.stat-label[data-v-b3516416]{font-size:10px;color:var(--text3);margin-top:2px;text-transform:uppercase;letter-spacing:.4px}.toolbar[data-v-b3516416]{display:flex;align-items:center;gap:8px;padding:10px 14px;flex-shrink:0;border-bottom:.5px solid var(--border)}.search-input[data-v-b3516416]{flex:1;max-width:260px}.filter-group[data-v-b3516416]{display:flex;gap:4px}.content-area[data-v-b3516416]{display:flex;flex:1;overflow:hidden;min-height:0}.table-pane[data-v-b3516416]{flex:1;overflow:hidden auto;min-width:0}.bar-cell[data-v-b3516416]{width:200px;padding:4px 8px}.bar-track[data-v-b3516416]{position:relative;height:8px;background:var(--bg2);border-radius:4px;overflow:hidden}.bar-fill[data-v-b3516416]{position:absolute;top:0;height:100%;min-width:3px;border-radius:4px;transition:width .15s}.detail-panel[data-v-b3516416]{width:260px;flex-shrink:0;border-left:.5px solid var(--border);overflow-y:auto;background:var(--bg3);padding:0 0 16px}.panel-header[data-v-b3516416]{display:flex;align-items:center;justify-content:space-between;padding:10px 14px 8px;border-bottom:.5px solid var(--border);position:sticky;top:0;background:var(--bg3);z-index:1}.panel-title[data-v-b3516416]{font-family:var(--mono);font-size:13px;font-weight:500}.close-btn[data-v-b3516416]{border:none;background:transparent;color:var(--text3);font-size:11px;padding:2px 6px;cursor:pointer}.panel-section[data-v-b3516416]{padding:10px 14px 6px;border-bottom:.5px solid var(--border)}.panel-section-title[data-v-b3516416]{font-size:10px;font-weight:500;color:var(--text3);text-transform:uppercase;letter-spacing:.4px;margin-bottom:8px}.panel-row[data-v-b3516416]{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:3px 0;font-size:12px}.panel-key[data-v-b3516416]{color:var(--text3);flex-shrink:0}.panel-val[data-v-b3516416]{color:var(--text);text-align:right;word-break:break-all}.cancel-notice[data-v-b3516416],.active-notice[data-v-b3516416]{margin:10px 14px 0;font-size:11px;line-height:1.6;padding:8px 10px;border-radius:var(--radius)}.cancel-notice[data-v-b3516416]{background:#e24b4a1a;color:var(--red);border:.5px solid rgb(226 75 74 / 30%)}.active-notice[data-v-b3516416]{background:#7f77dd1a;color:var(--purple);border:.5px solid rgb(127 119 221 / 30%)}code[data-v-b3516416]{font-family:var(--mono);font-size:10px;background:#00000026;padding:1px 4px;border-radius:3px}.panel-slide-enter-active[data-v-b3516416],.panel-slide-leave-active[data-v-b3516416]{transition:transform .18s ease,opacity .18s ease}.panel-slide-enter-from[data-v-b3516416],.panel-slide-leave-to[data-v-b3516416]{transform:translate(12px);opacity:0}#app-root[data-v-b91d81f3]{display:flex;flex-direction:column;height:100vh;overflow:hidden}.tabbar[data-v-b91d81f3]{display:flex;align-items:center;gap:2px;padding:8px 12px 0;border-bottom:.5px solid var(--border);background:var(--bg3);flex-shrink:0}.tabbar-brand[data-v-b91d81f3]{font-size:11px;font-weight:500;color:var(--purple);letter-spacing:.5px;margin-right:12px;padding-bottom:8px}.tab-btn[data-v-b91d81f3]{border:none;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--text3);font-size:12px;padding:6px 12px 8px;cursor:pointer;transition:color .12s,border-color .12s;display:flex;align-items:center;gap:5px}.tab-btn[data-v-b91d81f3]:hover{color:var(--text);background:transparent}.tab-btn.active[data-v-b91d81f3]{color:var(--purple);border-bottom-color:var(--purple)}.tab-icon[data-v-b91d81f3]{font-size:10px;opacity:.6}.tab-content[data-v-b91d81f3]{flex:1;overflow:hidden;display:flex;flex-direction:column}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:13px;line-height:1.5}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}button{font-family:var(--font);font-size:12px;cursor:pointer;border:.5px solid var(--border);background:transparent;color:var(--text2);padding:4px 10px;border-radius:var(--radius);transition:background .12s}button:hover{background:var(--bg2)}button:active{transform:scale(.98)}button.active{background:#7f77dd26;color:var(--purple);border-color:var(--purple)}button.danger-active{background:#e24b4a1f;color:var(--red);border-color:var(--red)}button.success-active{background:#1d9e751f;color:var(--teal);border-color:var(--teal)}input[type=text],input[type=search]{font-family:var(--font);font-size:12px;border:.5px solid var(--border);background:var(--bg2);color:var(--text);padding:5px 10px;border-radius:var(--radius);outline:none;width:100%}input[type=text]:focus,input[type=search]:focus{border-color:var(--purple);box-shadow:0 0 0 2px #7f77dd33}input[type=range]{accent-color:var(--purple);cursor:pointer}.mono{font-family:var(--mono)}.muted{color:var(--text3)}.text-sm{font-size:11px}.text-xs{font-size:10px}.bold{font-weight:500}.badge{display:inline-block;font-size:10px;font-weight:500;padding:2px 7px;border-radius:99px;white-space:nowrap}.badge-ok{background:#1d9e7526;color:var(--teal)}.badge-err{background:#e24b4a1f;color:var(--red)}.badge-warn{background:#ef9f2726;color:var(--amber)}.badge-info{background:#378add1f;color:var(--blue)}.badge-gray{background:var(--bg2);color:var(--text3);border:.5px solid var(--border)}.badge-purple{background:#7f77dd26;color:var(--purple)}.card{background:var(--bg3);border:.5px solid var(--border);border-radius:var(--radius-lg);padding:12px 14px}.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th{text-align:left;font-size:10px;font-weight:500;color:var(--text3);padding:6px 8px;border-bottom:.5px solid var(--border);text-transform:uppercase;letter-spacing:.4px;white-space:nowrap}.data-table td{padding:8px;border-bottom:.5px solid var(--border);color:var(--text);vertical-align:middle}.data-table tr:hover td{background:var(--bg2);cursor:pointer}.data-table tr.selected td{background:#7f77dd14}.stat-card{background:var(--bg2);border-radius:var(--radius);padding:10px 12px}.stat-label{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.4px;margin-bottom:3px}.stat-val{font-size:20px;font-weight:500}.flex{display:flex}.items-center{align-items:center}.gap-2{gap:8px}.gap-3{gap:12px}.flex-1{flex:1}.overflow-auto{overflow:auto}.p-3{padding:12px}.p-4{padding:16px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mt-2{margin-top:8px}
@@ -38,8 +38,8 @@
38
38
  body { font-family: var(--font); background: var(--bg); color: var(--text); font-size: 13px; }
39
39
  #app { height: 100vh; display: flex; flex-direction: column; }
40
40
  </style>
41
- <script type="module" crossorigin src="/assets/index-eSUuhYQ0.js"></script>
42
- <link rel="stylesheet" crossorigin href="/assets/index-1-H6UMCK.css">
41
+ <script type="module" crossorigin src="/__observatory/assets/index-DXCGQOSF.js"></script>
42
+ <link rel="stylesheet" crossorigin href="/__observatory/assets/index-htI4WwBU.css">
43
43
  </head>
44
44
  <body>
45
45
  <div id="app"></div>