nuxt-devtools-observatory 0.1.26 → 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
@@ -28,6 +39,7 @@ You can configure all observability features and limits from your consuming proj
28
39
  - `heatmapThresholdCount` (number) — Highlight components with N+ renders in heatmap
29
40
  - `heatmapThresholdTime` (number) — Highlight components with render time above this (ms)
30
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`)
31
43
  - `maxFetchEntries` (number) — Max fetch entries to keep in memory
32
44
  - `maxPayloadBytes` (number) — Max payload size (bytes) per fetch entry
33
45
  - `maxTransitions` (number) — Max transition entries to keep in memory
@@ -53,6 +65,7 @@ export default defineNuxtConfig({
53
65
  heatmapThresholdCount: 5, // Highlight components with 5+ renders
54
66
  heatmapThresholdTime: 1600, // Highlight components with render time above this (ms)
55
67
  heatmapHideInternals: true, // Hide node_modules and internal components in the render heatmap
68
+ debugRpc: false, // Enable RPC handshake debug logs (useful for troubleshooting)
56
69
  maxFetchEntries: 200, // Max fetch entries to keep in memory
57
70
  maxPayloadBytes: 10000, // Max payload size (bytes) per fetch entry
58
71
  maxTransitions: 500, // Max transition entries to keep in memory
@@ -67,7 +80,7 @@ export default defineNuxtConfig({
67
80
 
68
81
  Open the Nuxt DevTools panel — five new tabs will appear.
69
82
 
70
- 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/`.
71
84
 
72
85
  ## How it works
73
86
 
@@ -235,8 +248,8 @@ CSS/JS timing detection:
235
248
 
236
249
  The Transitions tab shows a live timeline with name, direction, phase, duration,
237
250
  parent component, and cancellation state for every transition fired on the page.
238
- Data is bridged from the Nuxt app (port 3000) to the Observatory SPA (port 4949)
239
- 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.
240
253
 
241
254
  ## Opting out
242
255
 
@@ -269,6 +282,9 @@ pnpm dev
269
282
  # Run tests
270
283
  pnpm test
271
284
 
285
+ # Format + lint fixes
286
+ pnpm format
287
+
272
288
  # Build the module (client SPA + Nuxt module)
273
289
  pnpm build
274
290
  ```
@@ -284,7 +300,7 @@ src/
284
300
  │ ├── composable-transform.ts ← AST wraps useX() composables
285
301
  │ └── transition-transform.ts ← Virtual vue proxy — overrides Transition export
286
302
  ├── runtime/
287
- │ ├── plugin.ts ← Client runtime bootstrap + postMessage bridge
303
+ │ ├── plugin.ts ← Client runtime bootstrap + RPC/Vite WS bridge
288
304
  │ └── composables/
289
305
  │ ├── fetch-registry.ts ← Fetch tracking store + __devFetch shim
290
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>
@@ -1,6 +1,6 @@
1
1
  <script setup lang="ts">
2
- import { ref, computed, onUnmounted } from 'vue'
3
- import { useObservatoryData, stopObservatoryPolling } from './stores/observatory'
2
+ import { ref, computed } from 'vue'
3
+ import { useObservatoryData } from './stores/observatory'
4
4
  import FetchDashboard from './views/FetchDashboard.vue'
5
5
  import ProvideInjectGraph from './views/ProvideInjectGraph.vue'
6
6
  import ComposableTracker from './views/ComposableTracker.vue'
@@ -20,10 +20,6 @@ const activeTab = ref(pathMap[segment] ?? 'fetch')
20
20
 
21
21
  const { features } = useObservatoryData()
22
22
 
23
- onUnmounted(() => {
24
- stopObservatoryPolling()
25
- })
26
-
27
23
  const tabs = computed(() => {
28
24
  const f = features.value || {}
29
25
  return [