nuxt-devtools-observatory 0.1.14 → 0.1.15
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 +55 -46
- package/client/dist/assets/index-B1qWBxxI.js +17 -0
- package/client/dist/assets/index-XYlDyaMH.css +1 -0
- package/client/dist/index.html +2 -2
- package/client/src/views/ProvideInjectGraph.vue +89 -11
- package/dist/module.json +1 -1
- package/package.json +1 -1
- package/client/dist/assets/index-Cs2LyjO_.js +0 -17
- package/client/dist/assets/index-P76p-0dT.css +0 -1
package/README.md
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
Nuxt DevTools extension providing five missing observability features:
|
|
4
4
|
|
|
5
5
|
- **useFetch Dashboard** — central view of all async data calls, cache keys, waterfall timeline
|
|
6
|
-
- **provide/inject Graph** — interactive tree showing the full injection topology
|
|
7
|
-
- **Composable Tracker** — live view of active composables,
|
|
6
|
+
- **provide/inject Graph** — interactive tree showing the full injection topology, value inspection, scope labels, shadow detection, and missing-provider warnings
|
|
7
|
+
- **Composable Tracker** — live view of active composables, reactive state, change history, leak detection, inline value editing, and reverse lookup
|
|
8
8
|
- **Render Heatmap** — component tree colour-coded by render frequency and duration, with per-render timeline, route filtering, and persistent-component accuracy fixes
|
|
9
9
|
- **Transition Tracker** — live timeline of every `<Transition>` lifecycle event with phase, duration, and cancellation state
|
|
10
10
|
|
|
@@ -45,7 +45,7 @@ transforms are skipped entirely — zero runtime overhead.
|
|
|
45
45
|
|
|
46
46
|
### useFetch Dashboard
|
|
47
47
|
|
|
48
|
-
[](https://github.com/victorlmneves/nuxt-devtools-observatory/blob/main/docs/screenshots/fetch-dashboard.png)
|
|
49
49
|
|
|
50
50
|
A Vite plugin wraps `useFetch` / `useAsyncData` calls with a thin shim that records:
|
|
51
51
|
|
|
@@ -58,56 +58,78 @@ client over the HMR WebSocket.
|
|
|
58
58
|
|
|
59
59
|
### provide/inject Graph
|
|
60
60
|
|
|
61
|
-
[](https://github.com/victorlmneves/nuxt-devtools-observatory/blob/main/docs/screenshots/provide-inject-graph.png)
|
|
62
62
|
|
|
63
63
|
A Vite plugin wraps `provide()` and `inject()` calls with annotated versions that
|
|
64
64
|
carry file and line metadata. At runtime, a `findProvider()` function walks
|
|
65
65
|
`instance.parent` chains to identify which ancestor provided each key.
|
|
66
|
-
Any `inject()` that resolves to `undefined` is flagged immediately.
|
|
66
|
+
Any `inject()` that resolves to `undefined` is flagged immediately as a red node.
|
|
67
67
|
|
|
68
|
-
|
|
69
|
-
missing providers as red nodes. Clickable keys display their associated value; deep
|
|
70
|
-
object expand/collapse is under active development.
|
|
71
|
-
|
|
72
|
-
**Known gaps:**
|
|
68
|
+
The panel provides:
|
|
73
69
|
|
|
74
|
-
-
|
|
75
|
-
|
|
76
|
-
-
|
|
77
|
-
|
|
78
|
-
-
|
|
79
|
-
|
|
70
|
+
- **Interactive SVG graph** — component tree with curved edges; nodes colour-coded by
|
|
71
|
+
role (teal = provides, blue = both, grey = injects, red = missing provider)
|
|
72
|
+
- **Value inspection** — each provided key shows an inline preview (e.g. `{ user, isLoggedIn }`)
|
|
73
|
+
with a `view` button to expand the full JSON for complex objects
|
|
74
|
+
- **Scope labels** — every provided key carries a `global`, `layout`, or `component`
|
|
75
|
+
badge derived from the providing component's position in the tree
|
|
76
|
+
- **Shadow detection** — when a child component re-provides a key already provided by
|
|
77
|
+
an ancestor, the entry is flagged with an amber warning and a `shadowed` filter button
|
|
78
|
+
appears in the toolbar
|
|
79
|
+
- **Consumer list** — each provided key shows which components inject it, with chip badges
|
|
80
|
+
- **Missing-provider warnings** — unresolved `inject()` calls are shown with a red
|
|
81
|
+
`no provider` badge and the component node turns red in the graph
|
|
82
|
+
- **Filter by key** — per-key filter buttons in the toolbar narrow the graph to only
|
|
83
|
+
components involved with a specific key
|
|
84
|
+
- **Search** — free-text search across component names and key names
|
|
85
|
+
- **Jump to editor** — clicking `open ↗` in the detail panel header opens the selected
|
|
86
|
+
component's source file in the configured editor
|
|
80
87
|
|
|
81
88
|
### Composable Tracker
|
|
82
89
|
|
|
83
|
-
[](https://github.com/victorlmneves/nuxt-devtools-observatory/blob/main/docs/screenshots/composable-tracker.png)
|
|
84
91
|
|
|
85
92
|
A Vite plugin detects all `useXxx()` calls matching Vue's naming convention and
|
|
86
|
-
wraps them with a tracking
|
|
93
|
+
wraps them with a tracking shim (`__trackComposable`) that:
|
|
87
94
|
|
|
88
95
|
1. Temporarily replaces `window.setInterval`/`clearInterval` during setup to capture
|
|
89
96
|
any intervals started inside the composable
|
|
90
|
-
2.
|
|
91
|
-
3. Snapshots returned `ref` and `
|
|
92
|
-
|
|
97
|
+
2. Tracks new Vue effects (watchers) added to the component scope during setup
|
|
98
|
+
3. Snapshots returned `ref`, `computed`, and `reactive` values for the live state panel,
|
|
99
|
+
keeping live references so values update in real time without polling
|
|
100
|
+
4. Detects shared (global) state by comparing object identity across multiple instances
|
|
101
|
+
of the same composable — keys backed by the same reference are marked as global
|
|
102
|
+
5. Records a change history (capped at 50 events) via `watchEffect`, capturing which
|
|
103
|
+
key changed, its new value, and a `performance.now()` timestamp
|
|
104
|
+
6. Flags any watcher or interval still active after `onUnmounted` fires as a **leak**
|
|
105
|
+
|
|
106
|
+
The panel provides:
|
|
93
107
|
|
|
94
|
-
**
|
|
95
|
-
|
|
96
|
-
|
|
108
|
+
- **Filtering** by status (all / mounted / unmounted / leaks only) and free-text search
|
|
109
|
+
across composable name, source file, ref key names, and ref values
|
|
110
|
+
- **Inline ref chip preview** — up to three reactive values shown on the card without
|
|
111
|
+
expanding, with distinct styling for `ref`, `computed`, and `reactive` types
|
|
112
|
+
- **Global state badges** — keys shared across instances are highlighted in amber with
|
|
113
|
+
a `global` badge and an explanatory banner when expanded
|
|
114
|
+
- **Change history** — a scrollable log of the last 50 value mutations with key, new
|
|
115
|
+
value, and relative timestamp
|
|
116
|
+
- **Lifecycle summary** — shows whether `onMounted`/`onUnmounted` were registered and
|
|
117
|
+
whether watchers and intervals were properly cleaned up
|
|
118
|
+
- **Reverse lookup** — clicking any ref key opens a panel listing every other composable
|
|
119
|
+
instance that exposes a key with the same name, with its composable name, file, and route
|
|
120
|
+
- **Inline value editing** — writable `ref` values have an `edit` button; clicking opens
|
|
121
|
+
a JSON textarea that applies the new value directly to the live ref in the running app
|
|
122
|
+
- **Jump to editor** — an `open ↗` button in the context section opens the composable's
|
|
123
|
+
source file in the configured editor
|
|
97
124
|
|
|
98
125
|
**Known gaps:**
|
|
99
126
|
|
|
100
|
-
-
|
|
101
|
-
-
|
|
102
|
-
- No value change history or timeline — values show current state only
|
|
103
|
-
- No global-vs-local state distinction on composable entries
|
|
104
|
-
- No search or filter by composable name or reactive value
|
|
105
|
-
- No reverse lookup: clicking a value does not yet reveal which components consume it
|
|
106
|
-
- No inline value editing for live testing without recompiling
|
|
127
|
+
- Reverse lookup matches by key name only, not by object identity
|
|
128
|
+
- Search does not look inside nested `reactive` object properties
|
|
107
129
|
|
|
108
130
|
### Render Heatmap
|
|
109
131
|
|
|
110
|
-
[](https://github.com/victorlmneves/nuxt-devtools-observatory/blob/main/docs/screenshots/render-heatmap.png)
|
|
111
133
|
|
|
112
134
|
Uses Vue's built-in `renderTriggered` mixin hook and `app.config.performance = true`.
|
|
113
135
|
Accurate duration is measured by bracketing each `beforeMount`/`mounted` and
|
|
@@ -159,7 +181,7 @@ The panel provides:
|
|
|
159
181
|
|
|
160
182
|
### Transition Tracker
|
|
161
183
|
|
|
162
|
-
[](https://github.com/victorlmneves/nuxt-devtools-observatory/blob/main/docs/screenshots/transition-tracker.png)
|
|
163
185
|
|
|
164
186
|
A Vite plugin intercepts `import ... from 'vue'` in user code and serves a virtual
|
|
165
187
|
proxy module that overrides the `Transition` export with an instrumented wrapper.
|
|
@@ -202,19 +224,6 @@ const result = useMyComposable()
|
|
|
202
224
|
|
|
203
225
|
## Roadmap
|
|
204
226
|
|
|
205
|
-
The following improvements are planned across the three main panels. Contributions
|
|
206
|
-
are welcome — see [Development](#development) below.
|
|
207
|
-
|
|
208
|
-
### provide/inject Graph
|
|
209
|
-
|
|
210
|
-
- [ ] Clickable key → expand/collapse deep object values
|
|
211
|
-
- [ ] Group components sharing the same key with an occurrence count badge
|
|
212
|
-
- [ ] Inline value preview (e.g. `{ user: {…}, isLoggedIn: true }`) before expanding
|
|
213
|
-
- [ ] Scope label on provider nodes: global / layout / component-scoped
|
|
214
|
-
- [ ] Warning when a child overrides a key already provided by an ancestor
|
|
215
|
-
- [ ] Filter panel by key or component name
|
|
216
|
-
- [ ] Jump-to-component shortcut from graph nodes
|
|
217
|
-
|
|
218
227
|
### Composable Tracker
|
|
219
228
|
|
|
220
229
|
- [ ] Reverse lookup by object identity rather than key name only
|
|
@@ -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 In(e){const t=Object.create(null);for(const s of e.split(","))t[s]=1;return s=>s in t}const ve={},Kt=[],lt=()=>{},Ro=()=>!1,qs=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Pn=e=>e.startsWith("onUpdate:"),$e=Object.assign,Fn=(e,t)=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)},ti=Object.prototype.hasOwnProperty,pe=(e,t)=>ti.call(e,t),Z=Array.isArray,Wt=e=>ws(e)==="[object Map]",Js=e=>ws(e)==="[object Set]",Yn=e=>ws(e)==="[object Date]",ne=e=>typeof e=="function",ye=e=>typeof e=="string",it=e=>typeof e=="symbol",he=e=>e!==null&&typeof e=="object",jo=e=>(he(e)||ne(e))&&ne(e.then)&&ne(e.catch),Do=Object.prototype.toString,ws=e=>Do.call(e),si=e=>ws(e).slice(8,-1),Ho=e=>ws(e)==="[object Object]",Ln=e=>ye(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,rs=In(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Gs=e=>{const t=Object.create(null);return(s=>t[s]||(t[s]=e(s)))},ni=/-\w/g,Je=Gs(e=>e.replace(ni,t=>t.slice(1).toUpperCase())),oi=/\B([A-Z])/g,Rt=Gs(e=>e.replace(oi,"-$1").toLowerCase()),Vo=Gs(e=>e.charAt(0).toUpperCase()+e.slice(1)),rn=Gs(e=>e?`on${Vo(e)}`:""),ot=(e,t)=>!Object.is(e,t),As=(e,...t)=>{for(let s=0;s<e.length;s++)e[s](...t)},Uo=(e,t,s,n=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:s})},Ys=e=>{const t=parseFloat(e);return isNaN(t)?e:t},li=e=>{const t=ye(e)?Number(e):NaN;return isNaN(t)?e:t};let Qn;const Qs=()=>Qn||(Qn=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ce(e){if(Z(e)){const t={};for(let s=0;s<e.length;s++){const n=e[s],o=ye(n)?ci(n):Ce(n);if(o)for(const l in o)t[l]=o[l]}return t}else if(ye(e)||he(e))return e}const ii=/;(?![^(]*\))/g,ri=/:([^]+)/,ai=/\/\*[^]*?\*\//g;function ci(e){const t={};return e.replace(ai,"").split(ii).forEach(s=>{if(s){const n=s.split(ri);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function se(e){let t="";if(ye(e))t=e;else if(Z(e))for(let s=0;s<e.length;s++){const n=se(e[s]);n&&(t+=n+" ")}else if(he(e))for(const s in e)e[s]&&(t+=s+" ");return t.trim()}const ui="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",di=In(ui);function Bo(e){return!!e||e===""}function fi(e,t){if(e.length!==t.length)return!1;let s=!0;for(let n=0;s&&n<e.length;n++)s=$s(e[n],t[n]);return s}function $s(e,t){if(e===t)return!0;let s=Yn(e),n=Yn(t);if(s||n)return s&&n?e.getTime()===t.getTime():!1;if(s=it(e),n=it(t),s||n)return e===t;if(s=Z(e),n=Z(t),s||n)return s&&n?fi(e,t):!1;if(s=he(e),n=he(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),c=t.hasOwnProperty(r);if(a&&!c||!a&&c||!$s(e[r],t[r]))return!1}}return String(e)===String(t)}function pi(e,t){return e.findIndex(s=>$s(s,t))}const Ko=e=>!!(e&&e.__v_isRef===!0),b=e=>ye(e)?e:e==null?"":Z(e)||he(e)&&(e.toString===Do||!ne(e.toString))?Ko(e)?b(e.value):JSON.stringify(e,Wo,2):String(e),Wo=(e,t)=>Ko(t)?Wo(e,t.value):Wt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((s,[n,o],l)=>(s[an(n,l)+" =>"]=o,s),{})}:Js(t)?{[`Set(${t.size})`]:[...t.values()].map(s=>an(s))}:it(t)?an(t):he(t)&&!Z(t)&&!Ho(t)?String(t):t,an=(e,t="")=>{var s;return it(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 He;class hi{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=He,!t&&He&&(this.index=(He.scopes||(He.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=He;try{return He=this,t()}finally{He=s}}}on(){++this._on===1&&(this.prevScope=He,He=this)}off(){this._on>0&&--this._on===0&&(He=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 vi(){return He}let me;const cn=new WeakSet;class zo{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,He&&He.active&&He.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,cn.has(this)&&(cn.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||Jo(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,Xn(this),Go(this);const t=me,s=Ge;me=this,Ge=!0;try{return this.fn()}finally{Yo(this),me=t,Ge=s,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)jn(t);this.deps=this.depsTail=void 0,Xn(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?cn.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){_n(this)&&this.run()}get dirty(){return _n(this)}}let qo=0,as,cs;function Jo(e,t=!1){if(e.flags|=8,t){e.next=cs,cs=e;return}e.next=as,as=e}function Nn(){qo++}function Rn(){if(--qo>0)return;if(cs){let t=cs;for(cs=void 0;t;){const s=t.next;t.next=void 0,t.flags&=-9,t=s}}let e;for(;as;){let t=as;for(as=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 Go(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Yo(e){let t,s=e.depsTail,n=s;for(;n;){const o=n.prevDep;n.version===-1?(n===s&&(s=o),jn(n),mi(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=o}e.deps=t,e.depsTail=s}function _n(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Qo(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Qo(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===vs)||(e.globalVersion=vs,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!_n(e))))return;e.flags|=2;const t=e.dep,s=me,n=Ge;me=e,Ge=!0;try{Go(e);const o=e.fn(e._value);(t.version===0||ot(o,e._value))&&(e.flags|=128,e._value=o,t.version++)}catch(o){throw t.version++,o}finally{me=s,Ge=n,Yo(e),e.flags&=-3}}function jn(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)jn(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 Ge=!0;const Xo=[];function pt(){Xo.push(Ge),Ge=!1}function ht(){const e=Xo.pop();Ge=e===void 0?!0:e}function Xn(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const s=me;me=void 0;try{t()}finally{me=s}}}let vs=0;class gi{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 Dn{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(!me||!Ge||me===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==me)s=this.activeLink=new gi(me,this),me.deps?(s.prevDep=me.depsTail,me.depsTail.nextDep=s,me.depsTail=s):me.deps=me.depsTail=s,Zo(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=me.depsTail,s.nextDep=void 0,me.depsTail.nextDep=s,me.depsTail=s,me.deps===s&&(me.deps=n)}return s}trigger(t){this.version++,vs++,this.notify(t)}notify(t){Nn();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{Rn()}}}function Zo(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)Zo(n)}const s=e.dep.subs;s!==e&&(e.prevSub=s,s&&(s.nextSub=e)),e.dep.subs=e}}const bn=new WeakMap,Pt=Symbol(""),yn=Symbol(""),ms=Symbol("");function Te(e,t,s){if(Ge&&me){let n=bn.get(e);n||bn.set(e,n=new Map);let o=n.get(s);o||(n.set(s,o=new Dn),o.map=n,o.key=s),o.track()}}function dt(e,t,s,n,o,l){const r=bn.get(e);if(!r){vs++;return}const a=c=>{c&&c.trigger()};if(Nn(),t==="clear")r.forEach(a);else{const c=Z(e),v=c&&Ln(s);if(c&&s==="length"){const d=Number(n);r.forEach((g,M)=>{(M==="length"||M===ms||!it(M)&&M>=d)&&a(g)})}else switch((s!==void 0||r.has(void 0))&&a(r.get(s)),v&&a(r.get(ms)),t){case"add":c?v&&a(r.get("length")):(a(r.get(Pt)),Wt(e)&&a(r.get(yn)));break;case"delete":c||(a(r.get(Pt)),Wt(e)&&a(r.get(yn)));break;case"set":Wt(e)&&a(r.get(Pt));break}}Rn()}function Dt(e){const t=de(e);return t===e?t:(Te(t,"iterate",ms),ze(e)?t:t.map(Ye))}function Xs(e){return Te(e=de(e),"iterate",ms),e}function st(e,t){return vt(e)?Gt(Ft(e)?Ye(t):t):Ye(t)}const _i={__proto__:null,[Symbol.iterator](){return un(this,Symbol.iterator,e=>st(this,e))},concat(...e){return Dt(this).concat(...e.map(t=>Z(t)?Dt(t):t))},entries(){return un(this,"entries",e=>(e[1]=st(this,e[1]),e))},every(e,t){return rt(this,"every",e,t,void 0,arguments)},filter(e,t){return rt(this,"filter",e,t,s=>s.map(n=>st(this,n)),arguments)},find(e,t){return rt(this,"find",e,t,s=>st(this,s),arguments)},findIndex(e,t){return rt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return rt(this,"findLast",e,t,s=>st(this,s),arguments)},findLastIndex(e,t){return rt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return rt(this,"forEach",e,t,void 0,arguments)},includes(...e){return dn(this,"includes",e)},indexOf(...e){return dn(this,"indexOf",e)},join(e){return Dt(this).join(e)},lastIndexOf(...e){return dn(this,"lastIndexOf",e)},map(e,t){return rt(this,"map",e,t,void 0,arguments)},pop(){return ts(this,"pop")},push(...e){return ts(this,"push",e)},reduce(e,...t){return Zn(this,"reduce",e,t)},reduceRight(e,...t){return Zn(this,"reduceRight",e,t)},shift(){return ts(this,"shift")},some(e,t){return rt(this,"some",e,t,void 0,arguments)},splice(...e){return ts(this,"splice",e)},toReversed(){return Dt(this).toReversed()},toSorted(e){return Dt(this).toSorted(e)},toSpliced(...e){return Dt(this).toSpliced(...e)},unshift(...e){return ts(this,"unshift",e)},values(){return un(this,"values",e=>st(this,e))}};function un(e,t,s){const n=Xs(e),o=n[t]();return n!==e&&!ze(e)&&(o._next=o.next,o.next=()=>{const l=o._next();return l.done||(l.value=s(l.value)),l}),o}const bi=Array.prototype;function rt(e,t,s,n,o,l){const r=Xs(e),a=r!==e&&!ze(e),c=r[t];if(c!==bi[t]){const g=c.apply(e,l);return a?Ye(g):g}let v=s;r!==e&&(a?v=function(g,M){return s.call(this,st(e,g),M,e)}:s.length>2&&(v=function(g,M){return s.call(this,g,M,e)}));const d=c.call(r,v,n);return a&&o?o(d):d}function Zn(e,t,s,n){const o=Xs(e),l=o!==e&&!ze(e);let r=s,a=!1;o!==e&&(l?(a=n.length===0,r=function(v,d,g){return a&&(a=!1,v=st(e,v)),s.call(this,v,st(e,d),g,e)}):s.length>3&&(r=function(v,d,g){return s.call(this,v,d,g,e)}));const c=o[t](r,...n);return a?st(e,c):c}function dn(e,t,s){const n=de(e);Te(n,"iterate",ms);const o=n[t](...s);return(o===-1||o===!1)&&Bn(s[0])?(s[0]=de(s[0]),n[t](...s)):o}function ts(e,t,s=[]){pt(),Nn();const n=de(e)[t].apply(e,s);return Rn(),ht(),n}const yi=In("__proto__,__v_isRef,__isVue"),el=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(it));function xi(e){it(e)||(e=String(e));const t=de(this);return Te(t,"has",e),t.hasOwnProperty(e)}class tl{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?Ai:ll:l?ol:nl).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const r=Z(t);if(!o){let c;if(r&&(c=_i[s]))return c;if(s==="hasOwnProperty")return xi}const a=Reflect.get(t,s,Ee(t)?t:n);if((it(s)?el.has(s):yi(s))||(o||Te(t,"get",s),l))return a;if(Ee(a)){const c=r&&Ln(s)?a:a.value;return o&&he(c)?wn(c):c}return he(a)?o?wn(a):Vn(a):a}}class sl extends tl{constructor(t=!1){super(!1,t)}set(t,s,n,o){let l=t[s];const r=Z(t)&&Ln(s);if(!this._isShallow){const v=vt(l);if(!ze(n)&&!vt(n)&&(l=de(l),n=de(n)),!r&&Ee(l)&&!Ee(n))return v||(l.value=n),!0}const a=r?Number(s)<t.length:pe(t,s),c=Reflect.set(t,s,n,Ee(t)?t:o);return t===de(o)&&(a?ot(n,l)&&dt(t,"set",s,n):dt(t,"add",s,n)),c}deleteProperty(t,s){const n=pe(t,s);t[s];const o=Reflect.deleteProperty(t,s);return o&&n&&dt(t,"delete",s,void 0),o}has(t,s){const n=Reflect.has(t,s);return(!it(s)||!el.has(s))&&Te(t,"has",s),n}ownKeys(t){return Te(t,"iterate",Z(t)?"length":Pt),Reflect.ownKeys(t)}}class wi extends tl{constructor(t=!1){super(!0,t)}set(t,s){return!0}deleteProperty(t,s){return!0}}const $i=new sl,Ci=new wi,ki=new sl(!0);const xn=e=>e,Ms=e=>Reflect.getPrototypeOf(e);function Si(e,t,s){return function(...n){const o=this.__v_raw,l=de(o),r=Wt(l),a=e==="entries"||e===Symbol.iterator&&r,c=e==="keys"&&r,v=o[e](...n),d=s?xn:t?Gt:Ye;return!t&&Te(l,"iterate",c?yn:Pt),$e(Object.create(v),{next(){const{value:g,done:M}=v.next();return M?{value:g,done:M}:{value:a?[d(g[0]),d(g[1])]:d(g),done:M}}})}}function Es(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Ti(e,t){const s={get(o){const l=this.__v_raw,r=de(l),a=de(o);e||(ot(o,a)&&Te(r,"get",o),Te(r,"get",a));const{has:c}=Ms(r),v=t?xn:e?Gt:Ye;if(c.call(r,o))return v(l.get(o));if(c.call(r,a))return v(l.get(a));l!==r&&l.get(o)},get size(){const o=this.__v_raw;return!e&&Te(de(o),"iterate",Pt),o.size},has(o){const l=this.__v_raw,r=de(l),a=de(o);return e||(ot(o,a)&&Te(r,"has",o),Te(r,"has",a)),o===a?l.has(o):l.has(o)||l.has(a)},forEach(o,l){const r=this,a=r.__v_raw,c=de(a),v=t?xn:e?Gt:Ye;return!e&&Te(c,"iterate",Pt),a.forEach((d,g)=>o.call(l,v(d),v(g),r))}};return $e(s,e?{add:Es("add"),set:Es("set"),delete:Es("delete"),clear:Es("clear")}:{add(o){const l=de(this),r=Ms(l),a=de(o),c=!t&&!ze(o)&&!vt(o)?a:o;return r.has.call(l,c)||ot(o,c)&&r.has.call(l,o)||ot(a,c)&&r.has.call(l,a)||(l.add(c),dt(l,"add",c,c)),this},set(o,l){!t&&!ze(l)&&!vt(l)&&(l=de(l));const r=de(this),{has:a,get:c}=Ms(r);let v=a.call(r,o);v||(o=de(o),v=a.call(r,o));const d=c.call(r,o);return r.set(o,l),v?ot(l,d)&&dt(r,"set",o,l):dt(r,"add",o,l),this},delete(o){const l=de(this),{has:r,get:a}=Ms(l);let c=r.call(l,o);c||(o=de(o),c=r.call(l,o)),a&&a.call(l,o);const v=l.delete(o);return c&&dt(l,"delete",o,void 0),v},clear(){const o=de(this),l=o.size!==0,r=o.clear();return l&&dt(o,"clear",void 0,void 0),r}}),["keys","values","entries",Symbol.iterator].forEach(o=>{s[o]=Si(o,e,t)}),s}function Hn(e,t){const s=Ti(e,t);return(n,o,l)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?n:Reflect.get(pe(s,o)&&o in n?s:n,o,l)}const Mi={get:Hn(!1,!1)},Ei={get:Hn(!1,!0)},Oi={get:Hn(!0,!1)};const nl=new WeakMap,ol=new WeakMap,ll=new WeakMap,Ai=new WeakMap;function Ii(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Pi(e){return e.__v_skip||!Object.isExtensible(e)?0:Ii(si(e))}function Vn(e){return vt(e)?e:Un(e,!1,$i,Mi,nl)}function Fi(e){return Un(e,!1,ki,Ei,ol)}function wn(e){return Un(e,!0,Ci,Oi,ll)}function Un(e,t,s,n,o){if(!he(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const l=Pi(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 Ft(e){return vt(e)?Ft(e.__v_raw):!!(e&&e.__v_isReactive)}function vt(e){return!!(e&&e.__v_isReadonly)}function ze(e){return!!(e&&e.__v_isShallow)}function Bn(e){return e?!!e.__v_raw:!1}function de(e){const t=e&&e.__v_raw;return t?de(t):e}function Li(e){return!pe(e,"__v_skip")&&Object.isExtensible(e)&&Uo(e,"__v_skip",!0),e}const Ye=e=>he(e)?Vn(e):e,Gt=e=>he(e)?wn(e):e;function Ee(e){return e?e.__v_isRef===!0:!1}function re(e){return Ni(e,!1)}function Ni(e,t){return Ee(e)?e:new Ri(e,t)}class Ri{constructor(t,s){this.dep=new Dn,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=s?t:de(t),this._value=s?t:Ye(t),this.__v_isShallow=s}get value(){return this.dep.track(),this._value}set value(t){const s=this._rawValue,n=this.__v_isShallow||ze(t)||vt(t);t=n?t:de(t),ot(t,s)&&(this._rawValue=t,this._value=n?t:Ye(t),this.dep.trigger())}}function xt(e){return Ee(e)?e.value:e}const ji={get:(e,t,s)=>t==="__v_raw"?e:xt(Reflect.get(e,t,s)),set:(e,t,s,n)=>{const o=e[t];return Ee(o)&&!Ee(s)?(o.value=s,!0):Reflect.set(e,t,s,n)}};function il(e){return Ft(e)?e:new Proxy(e,ji)}class Di{constructor(t,s,n){this.fn=t,this.setter=s,this._value=void 0,this.dep=new Dn(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=vs-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&me!==this)return Jo(this,!0),!0}get value(){const t=this.dep.track();return Qo(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Hi(e,t,s=!1){let n,o;return ne(e)?n=e:(n=e.get,o=e.set),new Di(n,o,s)}const Os={},Ns=new WeakMap;let Et;function Vi(e,t=!1,s=Et){if(s){let n=Ns.get(s);n||Ns.set(s,n=[]),n.push(e)}}function Ui(e,t,s=ve){const{immediate:n,deep:o,once:l,scheduler:r,augmentJob:a,call:c}=s,v=E=>o?E:ze(E)||o===!1||o===0?ft(E,1):ft(E);let d,g,M,y,x=!1,N=!1;if(Ee(e)?(g=()=>e.value,x=ze(e)):Ft(e)?(g=()=>v(e),x=!0):Z(e)?(N=!0,x=e.some(E=>Ft(E)||ze(E)),g=()=>e.map(E=>{if(Ee(E))return E.value;if(Ft(E))return v(E);if(ne(E))return c?c(E,2):E()})):ne(e)?t?g=c?()=>c(e,2):e:g=()=>{if(M){pt();try{M()}finally{ht()}}const E=Et;Et=d;try{return c?c(e,3,[y]):e(y)}finally{Et=E}}:g=lt,t&&o){const E=g,R=o===!0?1/0:o;g=()=>ft(E(),R)}const J=vi(),Y=()=>{d.stop(),J&&J.active&&Fn(J.effects,d)};if(l&&t){const E=t;t=(...R)=>{E(...R),Y()}}let B=N?new Array(e.length).fill(Os):Os;const I=E=>{if(!(!(d.flags&1)||!d.dirty&&!E))if(t){const R=d.run();if(o||x||(N?R.some((ue,H)=>ot(ue,B[H])):ot(R,B))){M&&M();const ue=Et;Et=d;try{const H=[R,B===Os?void 0:N&&B[0]===Os?[]:B,y];B=R,c?c(t,3,H):t(...H)}finally{Et=ue}}}else d.run()};return a&&a(I),d=new zo(g),d.scheduler=r?()=>r(I,!1):I,y=E=>Vi(E,!1,d),M=d.onStop=()=>{const E=Ns.get(d);if(E){if(c)c(E,4);else for(const R of E)R();Ns.delete(d)}},t?n?I(!0):B=d.run():r?r(I.bind(null,!0),!0):d.run(),Y.pause=d.pause.bind(d),Y.resume=d.resume.bind(d),Y.stop=Y,Y}function ft(e,t=1/0,s){if(t<=0||!he(e)||e.__v_skip||(s=s||new Map,(s.get(e)||0)>=t))return e;if(s.set(e,t),t--,Ee(e))ft(e.value,t,s);else if(Z(e))for(let n=0;n<e.length;n++)ft(e[n],t,s);else if(Js(e)||Wt(e))e.forEach(n=>{ft(n,t,s)});else if(Ho(e)){for(const n in e)ft(e[n],t,s);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&ft(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 Cs(e,t,s,n){try{return n?e(...n):e()}catch(o){Zs(o,t,s)}}function Qe(e,t,s,n){if(ne(e)){const o=Cs(e,t,s,n);return o&&jo(o)&&o.catch(l=>{Zs(l,t,s)}),o}if(Z(e)){const o=[];for(let l=0;l<e.length;l++)o.push(Qe(e[l],t,s,n));return o}}function Zs(e,t,s,n=!0){const o=t?t.vnode:null,{errorHandler:l,throwUnhandledErrorInProduction:r}=t&&t.appContext.config||ve;if(t){let a=t.parent;const c=t.proxy,v=`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,c,v)===!1)return}a=a.parent}if(l){pt(),Cs(l,null,10,[e,c,v]),ht();return}}Bi(e,s,o,n,r)}function Bi(e,t,s,n=!0,o=!1){if(o)throw e;console.error(e)}const Pe=[];let et=-1;const zt=[];let bt=null,Bt=0;const rl=Promise.resolve();let Rs=null;function al(e){const t=Rs||rl;return e?t.then(this?e.bind(this):e):t}function Ki(e){let t=et+1,s=Pe.length;for(;t<s;){const n=t+s>>>1,o=Pe[n],l=gs(o);l<e||l===e&&o.flags&2?t=n+1:s=n}return t}function Kn(e){if(!(e.flags&1)){const t=gs(e),s=Pe[Pe.length-1];!s||!(e.flags&2)&&t>=gs(s)?Pe.push(e):Pe.splice(Ki(t),0,e),e.flags|=1,cl()}}function cl(){Rs||(Rs=rl.then(dl))}function Wi(e){Z(e)?zt.push(...e):bt&&e.id===-1?bt.splice(Bt+1,0,e):e.flags&1||(zt.push(e),e.flags|=1),cl()}function eo(e,t,s=et+1){for(;s<Pe.length;s++){const n=Pe[s];if(n&&n.flags&2){if(e&&n.id!==e.uid)continue;Pe.splice(s,1),s--,n.flags&4&&(n.flags&=-2),n(),n.flags&4||(n.flags&=-2)}}}function ul(e){if(zt.length){const t=[...new Set(zt)].sort((s,n)=>gs(s)-gs(n));if(zt.length=0,bt){bt.push(...t);return}for(bt=t,Bt=0;Bt<bt.length;Bt++){const s=bt[Bt];s.flags&4&&(s.flags&=-2),s.flags&8||s(),s.flags&=-2}bt=null,Bt=0}}const gs=e=>e.id==null?e.flags&2?-1:1/0:e.id;function dl(e){try{for(et=0;et<Pe.length;et++){const t=Pe[et];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),Cs(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;et<Pe.length;et++){const t=Pe[et];t&&(t.flags&=-2)}et=-1,Pe.length=0,ul(),Rs=null,(Pe.length||zt.length)&&dl()}}let We=null,fl=null;function js(e){const t=We;return We=e,fl=e&&e.type.__scopeId||null,t}function Ds(e,t=We,s){if(!t||e._n)return e;const n=(...o)=>{n._d&&Us(-1);const l=js(t);let r;try{r=e(...o)}finally{js(l),n._d&&Us(1)}return r};return n._n=!0,n._c=!0,n._d=!0,n}function Lt(e,t){if(We===null)return e;const s=on(We),n=e.dirs||(e.dirs=[]);for(let o=0;o<t.length;o++){let[l,r,a,c=ve]=t[o];l&&(ne(l)&&(l={mounted:l,updated:l}),l.deep&&ft(r),n.push({dir:l,instance:s,value:r,oldValue:void 0,arg:a,modifiers:c}))}return e}function kt(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 c=a.dir[n];c&&(pt(),Qe(c,s,8,[e.el,a,e,t]),ht())}}function zi(e,t){if(Le){let s=Le.provides;const n=Le.parent&&Le.parent.provides;n===s&&(s=Le.provides=Object.create(n)),s[e]=t}}function Is(e,t,s=!1){const n=Wl();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&&ne(t)?t.call(n&&n.proxy):t}}const qi=Symbol.for("v-scx"),Ji=()=>Is(qi);function yt(e,t,s){return pl(e,t,s)}function pl(e,t,s=ve){const{immediate:n,deep:o,flush:l,once:r}=s,a=$e({},s),c=t&&n||!t&&l!=="post";let v;if(ys){if(l==="sync"){const y=Ji();v=y.__watcherHandles||(y.__watcherHandles=[])}else if(!c){const y=()=>{};return y.stop=lt,y.resume=lt,y.pause=lt,y}}const d=Le;a.call=(y,x,N)=>Qe(y,d,x,N);let g=!1;l==="post"?a.scheduler=y=>{De(y,d&&d.suspense)}:l!=="sync"&&(g=!0,a.scheduler=(y,x)=>{x?y():Kn(y)}),a.augmentJob=y=>{t&&(y.flags|=4),g&&(y.flags|=2,d&&(y.id=d.uid,y.i=d))};const M=Ui(e,t,a);return ys&&(v?v.push(M):c&&M()),M}function Gi(e,t,s){const n=this.proxy,o=ye(e)?e.includes(".")?hl(n,e):()=>n[e]:e.bind(n,n);let l;ne(t)?l=t:(l=t.handler,s=t);const r=ks(this),a=pl(o,l.bind(n),s);return r(),a}function hl(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 Yi=Symbol("_vte"),vl=e=>e.__isTeleport,tt=Symbol("_leaveCb"),ss=Symbol("_enterCb");function Qi(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return $l(()=>{e.isMounted=!0}),Cl(()=>{e.isUnmounting=!0}),e}const Ke=[Function,Array],ml={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Ke,onEnter:Ke,onAfterEnter:Ke,onEnterCancelled:Ke,onBeforeLeave:Ke,onLeave:Ke,onAfterLeave:Ke,onLeaveCancelled:Ke,onBeforeAppear:Ke,onAppear:Ke,onAfterAppear:Ke,onAppearCancelled:Ke},gl=e=>{const t=e.subTree;return t.component?gl(t.component):t},Xi={name:"BaseTransition",props:ml,setup(e,{slots:t}){const s=Wl(),n=Qi();return()=>{const o=t.default&&yl(t.default(),!0);if(!o||!o.length)return;const l=_l(o),r=de(e),{mode:a}=r;if(n.isLeaving)return fn(l);const c=to(l);if(!c)return fn(l);let v=$n(c,r,n,s,g=>v=g);c.type!==Fe&&_s(c,v);let d=s.subTree&&to(s.subTree);if(d&&d.type!==Fe&&!At(d,c)&&gl(s).type!==Fe){let g=$n(d,r,n,s);if(_s(d,g),a==="out-in"&&c.type!==Fe)return n.isLeaving=!0,g.afterLeave=()=>{n.isLeaving=!1,s.job.flags&8||s.update(),delete g.afterLeave,d=void 0},fn(l);a==="in-out"&&c.type!==Fe?g.delayLeave=(M,y,x)=>{const N=bl(n,d);N[String(d.key)]=d,M[tt]=()=>{y(),M[tt]=void 0,delete v.delayedLeave,d=void 0},v.delayedLeave=()=>{x(),delete v.delayedLeave,d=void 0}}:d=void 0}else d&&(d=void 0);return l}}};function _l(e){let t=e[0];if(e.length>1){for(const s of e)if(s.type!==Fe){t=s;break}}return t}const Zi=Xi;function bl(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 $n(e,t,s,n,o){const{appear:l,mode:r,persisted:a=!1,onBeforeEnter:c,onEnter:v,onAfterEnter:d,onEnterCancelled:g,onBeforeLeave:M,onLeave:y,onAfterLeave:x,onLeaveCancelled:N,onBeforeAppear:J,onAppear:Y,onAfterAppear:B,onAppearCancelled:I}=t,E=String(e.key),R=bl(s,e),ue=(C,oe)=>{C&&Qe(C,n,9,oe)},H=(C,oe)=>{const w=oe[1];ue(C,oe),Z(C)?C.every(m=>m.length<=1)&&w():C.length<=1&&w()},O={mode:r,persisted:a,beforeEnter(C){let oe=c;if(!s.isMounted)if(l)oe=J||c;else return;C[tt]&&C[tt](!0);const w=R[E];w&&At(e,w)&&w.el[tt]&&w.el[tt](),ue(oe,[C])},enter(C){if(R[E]===e)return;let oe=v,w=d,m=g;if(!s.isMounted)if(l)oe=Y||v,w=B||d,m=I||g;else return;let _=!1;C[ss]=le=>{_||(_=!0,le?ue(m,[C]):ue(w,[C]),O.delayedLeave&&O.delayedLeave(),C[ss]=void 0)};const G=C[ss].bind(null,!1);oe?H(oe,[C,G]):G()},leave(C,oe){const w=String(e.key);if(C[ss]&&C[ss](!0),s.isUnmounting)return oe();ue(M,[C]);let m=!1;C[tt]=G=>{m||(m=!0,oe(),G?ue(N,[C]):ue(x,[C]),C[tt]=void 0,R[w]===e&&delete R[w])};const _=C[tt].bind(null,!1);R[w]=e,y?H(y,[C,_]):_()},clone(C){const oe=$n(C,t,s,n,o);return o&&o(oe),oe}};return O}function fn(e){if(en(e))return e=wt(e),e.children=null,e}function to(e){if(!en(e))return vl(e.type)&&e.children?_l(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&&ne(s.default))return s.default()}}function _s(e,t){e.shapeFlag&6&&e.component?(e.transition=t,_s(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 yl(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===ae?(r.patchFlag&128&&o++,n=n.concat(yl(r.children,t,a))):(t||r.type!==Fe)&&n.push(a!=null?wt(r,{key:a}):r)}if(o>1)for(let l=0;l<n.length;l++)n[l].patchFlag=-2;return n}function Nt(e,t){return ne(e)?$e({name:e.name},t,{setup:e}):e}function xl(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function so(e,t){let s;return!!((s=Object.getOwnPropertyDescriptor(e,t))&&!s.configurable)}const Hs=new WeakMap;function us(e,t,s,n,o=!1){if(Z(e)){e.forEach((N,J)=>us(N,t&&(Z(t)?t[J]:t),s,n,o));return}if(ds(n)&&!o){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&us(e,t,s,n.component.subTree);return}const l=n.shapeFlag&4?on(n.component):n.el,r=o?null:l,{i:a,r:c}=e,v=t&&t.r,d=a.refs===ve?a.refs={}:a.refs,g=a.setupState,M=de(g),y=g===ve?Ro:N=>so(d,N)?!1:pe(M,N),x=(N,J)=>!(J&&so(d,J));if(v!=null&&v!==c){if(no(t),ye(v))d[v]=null,y(v)&&(g[v]=null);else if(Ee(v)){const N=t;x(v,N.k)&&(v.value=null),N.k&&(d[N.k]=null)}}if(ne(c))Cs(c,a,12,[r,d]);else{const N=ye(c),J=Ee(c);if(N||J){const Y=()=>{if(e.f){const B=N?y(c)?g[c]:d[c]:x()||!e.k?c.value:d[e.k];if(o)Z(B)&&Fn(B,l);else if(Z(B))B.includes(l)||B.push(l);else if(N)d[c]=[l],y(c)&&(g[c]=d[c]);else{const I=[l];x(c,e.k)&&(c.value=I),e.k&&(d[e.k]=I)}}else N?(d[c]=r,y(c)&&(g[c]=r)):J&&(x(c,e.k)&&(c.value=r),e.k&&(d[e.k]=r))};if(r){const B=()=>{Y(),Hs.delete(e)};B.id=-1,Hs.set(e,B),De(B,s)}else no(e),Y()}}}function no(e){const t=Hs.get(e);t&&(t.flags|=8,Hs.delete(e))}Qs().requestIdleCallback;Qs().cancelIdleCallback;const ds=e=>!!e.type.__asyncLoader,en=e=>e.type.__isKeepAlive;function er(e,t){wl(e,"a",t)}function tr(e,t){wl(e,"da",t)}function wl(e,t,s=Le){const n=e.__wdc||(e.__wdc=()=>{let o=s;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(tn(t,n,s),s){let o=s.parent;for(;o&&o.parent;)en(o.parent.vnode)&&sr(n,t,s,o),o=o.parent}}function sr(e,t,s,n){const o=tn(t,e,n,!0);kl(()=>{Fn(n[t],o)},s)}function tn(e,t,s=Le,n=!1){if(s){const o=s[e]||(s[e]=[]),l=t.__weh||(t.__weh=(...r)=>{pt();const a=ks(s),c=Qe(t,s,e,r);return a(),ht(),c});return n?o.unshift(l):o.push(l),l}}const mt=e=>(t,s=Le)=>{(!ys||e==="sp")&&tn(e,(...n)=>t(...n),s)},nr=mt("bm"),$l=mt("m"),or=mt("bu"),lr=mt("u"),Cl=mt("bum"),kl=mt("um"),ir=mt("sp"),rr=mt("rtg"),ar=mt("rtc");function cr(e,t=Le){tn("ec",e,t)}const ur=Symbol.for("v-ndc");function be(e,t,s,n){let o;const l=s,r=Z(e);if(r||ye(e)){const a=r&&Ft(e);let c=!1,v=!1;a&&(c=!ze(e),v=vt(e),e=Xs(e)),o=new Array(e.length);for(let d=0,g=e.length;d<g;d++)o[d]=t(c?v?Gt(Ye(e[d])):Ye(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(he(e))if(e[Symbol.iterator])o=Array.from(e,(a,c)=>t(a,c,void 0,l));else{const a=Object.keys(e);o=new Array(a.length);for(let c=0,v=a.length;c<v;c++){const d=a[c];o[c]=t(e[d],d,c,l)}}else o=[];return o}const Cn=e=>e?zl(e)?on(e):Cn(e.parent):null,fs=$e(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=>Cn(e.parent),$root:e=>Cn(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Tl(e),$forceUpdate:e=>e.f||(e.f=()=>{Kn(e.update)}),$nextTick:e=>e.n||(e.n=al.bind(e.proxy)),$watch:e=>Gi.bind(e)}),pn=(e,t)=>e!==ve&&!e.__isScriptSetup&&pe(e,t),dr={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:s,setupState:n,data:o,props:l,accessCache:r,type:a,appContext:c}=e;if(t[0]!=="$"){const M=r[t];if(M!==void 0)switch(M){case 1:return n[t];case 2:return o[t];case 4:return s[t];case 3:return l[t]}else{if(pn(n,t))return r[t]=1,n[t];if(o!==ve&&pe(o,t))return r[t]=2,o[t];if(pe(l,t))return r[t]=3,l[t];if(s!==ve&&pe(s,t))return r[t]=4,s[t];kn&&(r[t]=0)}}const v=fs[t];let d,g;if(v)return t==="$attrs"&&Te(e.attrs,"get",""),v(e);if((d=a.__cssModules)&&(d=d[t]))return d;if(s!==ve&&pe(s,t))return r[t]=4,s[t];if(g=c.config.globalProperties,pe(g,t))return g[t]},set({_:e},t,s){const{data:n,setupState:o,ctx:l}=e;return pn(o,t)?(o[t]=s,!0):n!==ve&&pe(n,t)?(n[t]=s,!0):pe(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 c;return!!(s[a]||e!==ve&&a[0]!=="$"&&pe(e,a)||pn(t,a)||pe(l,a)||pe(n,a)||pe(fs,a)||pe(o.config.globalProperties,a)||(c=r.__cssModules)&&c[a])},defineProperty(e,t,s){return s.get!=null?e._.accessCache[t]=0:pe(s,"value")&&this.set(e,t,s.value,null),Reflect.defineProperty(e,t,s)}};function oo(e){return Z(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}let kn=!0;function fr(e){const t=Tl(e),s=e.proxy,n=e.ctx;kn=!1,t.beforeCreate&&lo(t.beforeCreate,e,"bc");const{data:o,computed:l,methods:r,watch:a,provide:c,inject:v,created:d,beforeMount:g,mounted:M,beforeUpdate:y,updated:x,activated:N,deactivated:J,beforeDestroy:Y,beforeUnmount:B,destroyed:I,unmounted:E,render:R,renderTracked:ue,renderTriggered:H,errorCaptured:O,serverPrefetch:C,expose:oe,inheritAttrs:w,components:m,directives:_,filters:G}=t;if(v&&pr(v,n,null),r)for(const j in r){const X=r[j];ne(X)&&(n[j]=X.bind(s))}if(o){const j=o.call(s,s);he(j)&&(e.data=Vn(j))}if(kn=!0,l)for(const j in l){const X=l[j],ge=ne(X)?X.bind(s,s):ne(X.get)?X.get.bind(s,s):lt,_e=!ne(X)&&ne(X.set)?X.set.bind(s):lt,Oe=ie({get:ge,set:_e});Object.defineProperty(n,j,{enumerable:!0,configurable:!0,get:()=>Oe.value,set:Ne=>Oe.value=Ne})}if(a)for(const j in a)Sl(a[j],n,s,j);if(c){const j=ne(c)?c.call(s):c;Reflect.ownKeys(j).forEach(X=>{zi(X,j[X])})}d&&lo(d,e,"c");function ce(j,X){Z(X)?X.forEach(ge=>j(ge.bind(s))):X&&j(X.bind(s))}if(ce(nr,g),ce($l,M),ce(or,y),ce(lr,x),ce(er,N),ce(tr,J),ce(cr,O),ce(ar,ue),ce(rr,H),ce(Cl,B),ce(kl,E),ce(ir,C),Z(oe))if(oe.length){const j=e.exposed||(e.exposed={});oe.forEach(X=>{Object.defineProperty(j,X,{get:()=>s[X],set:ge=>s[X]=ge,enumerable:!0})})}else e.exposed||(e.exposed={});R&&e.render===lt&&(e.render=R),w!=null&&(e.inheritAttrs=w),m&&(e.components=m),_&&(e.directives=_),C&&xl(e)}function pr(e,t,s=lt){Z(e)&&(e=Sn(e));for(const n in e){const o=e[n];let l;he(o)?"default"in o?l=Is(o.from||n,o.default,!0):l=Is(o.from||n):l=Is(o),Ee(l)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>l.value,set:r=>l.value=r}):t[n]=l}}function lo(e,t,s){Qe(Z(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,s)}function Sl(e,t,s,n){let o=n.includes(".")?hl(s,n):()=>s[n];if(ye(e)){const l=t[e];ne(l)&&yt(o,l)}else if(ne(e))yt(o,e.bind(s));else if(he(e))if(Z(e))e.forEach(l=>Sl(l,t,s,n));else{const l=ne(e.handler)?e.handler.bind(s):t[e.handler];ne(l)&&yt(o,l,e)}}function Tl(e){const t=e.type,{mixins:s,extends:n}=t,{mixins:o,optionsCache:l,config:{optionMergeStrategies:r}}=e.appContext,a=l.get(t);let c;return a?c=a:!o.length&&!s&&!n?c=t:(c={},o.length&&o.forEach(v=>Vs(c,v,r,!0)),Vs(c,t,r)),he(t)&&l.set(t,c),c}function Vs(e,t,s,n=!1){const{mixins:o,extends:l}=t;l&&Vs(e,l,s,!0),o&&o.forEach(r=>Vs(e,r,s,!0));for(const r in t)if(!(n&&r==="expose")){const a=hr[r]||s&&s[r];e[r]=a?a(e[r],t[r]):t[r]}return e}const hr={data:io,props:ro,emits:ro,methods:is,computed:is,beforeCreate:Ie,created:Ie,beforeMount:Ie,mounted:Ie,beforeUpdate:Ie,updated:Ie,beforeDestroy:Ie,beforeUnmount:Ie,destroyed:Ie,unmounted:Ie,activated:Ie,deactivated:Ie,errorCaptured:Ie,serverPrefetch:Ie,components:is,directives:is,watch:mr,provide:io,inject:vr};function io(e,t){return t?e?function(){return $e(ne(e)?e.call(this,this):e,ne(t)?t.call(this,this):t)}:t:e}function vr(e,t){return is(Sn(e),Sn(t))}function Sn(e){if(Z(e)){const t={};for(let s=0;s<e.length;s++)t[e[s]]=e[s];return t}return e}function Ie(e,t){return e?[...new Set([].concat(e,t))]:t}function is(e,t){return e?$e(Object.create(null),e,t):t}function ro(e,t){return e?Z(e)&&Z(t)?[...new Set([...e,...t])]:$e(Object.create(null),oo(e),oo(t??{})):t}function mr(e,t){if(!e)return t;if(!t)return e;const s=$e(Object.create(null),e);for(const n in t)s[n]=Ie(e[n],t[n]);return s}function Ml(){return{app:null,config:{isNativeTag:Ro,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 gr=0;function _r(e,t){return function(n,o=null){ne(n)||(n=$e({},n)),o!=null&&!he(o)&&(o=null);const l=Ml(),r=new WeakSet,a=[];let c=!1;const v=l.app={_uid:gr++,_component:n,_props:o,_container:null,_context:l,_instance:null,version:Yr,get config(){return l.config},set config(d){},use(d,...g){return r.has(d)||(d&&ne(d.install)?(r.add(d),d.install(v,...g)):ne(d)&&(r.add(d),d(v,...g))),v},mixin(d){return l.mixins.includes(d)||l.mixins.push(d),v},component(d,g){return g?(l.components[d]=g,v):l.components[d]},directive(d,g){return g?(l.directives[d]=g,v):l.directives[d]},mount(d,g,M){if(!c){const y=v._ceVNode||ke(n,o);return y.appContext=l,M===!0?M="svg":M===!1&&(M=void 0),e(y,d,M),c=!0,v._container=d,d.__vue_app__=v,on(y.component)}},onUnmount(d){a.push(d)},unmount(){c&&(Qe(a,v._instance,16),e(null,v._container),delete v._container.__vue_app__)},provide(d,g){return l.provides[d]=g,v},runWithContext(d){const g=qt;qt=v;try{return d()}finally{qt=g}}};return v}}let qt=null;const br=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Je(t)}Modifiers`]||e[`${Rt(t)}Modifiers`];function yr(e,t,...s){if(e.isUnmounted)return;const n=e.vnode.props||ve;let o=s;const l=t.startsWith("update:"),r=l&&br(n,t.slice(7));r&&(r.trim&&(o=s.map(d=>ye(d)?d.trim():d)),r.number&&(o=s.map(Ys)));let a,c=n[a=rn(t)]||n[a=rn(Je(t))];!c&&l&&(c=n[a=rn(Rt(t))]),c&&Qe(c,e,6,o);const v=n[a+"Once"];if(v){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,Qe(v,e,6,o)}}const xr=new WeakMap;function El(e,t,s=!1){const n=s?xr:t.emitsCache,o=n.get(e);if(o!==void 0)return o;const l=e.emits;let r={},a=!1;if(!ne(e)){const c=v=>{const d=El(v,t,!0);d&&(a=!0,$e(r,d))};!s&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!l&&!a?(he(e)&&n.set(e,null),null):(Z(l)?l.forEach(c=>r[c]=null):$e(r,l),he(e)&&n.set(e,r),r)}function sn(e,t){return!e||!qs(t)?!1:(t=t.slice(2).replace(/Once$/,""),pe(e,t[0].toLowerCase()+t.slice(1))||pe(e,Rt(t))||pe(e,t))}function ao(e){const{type:t,vnode:s,proxy:n,withProxy:o,propsOptions:[l],slots:r,attrs:a,emit:c,render:v,renderCache:d,props:g,data:M,setupState:y,ctx:x,inheritAttrs:N}=e,J=js(e);let Y,B;try{if(s.shapeFlag&4){const E=o||n,R=E;Y=nt(v.call(R,E,d,g,y,M,x)),B=a}else{const E=t;Y=nt(E.length>1?E(g,{attrs:a,slots:r,emit:c}):E(g,null)),B=t.props?a:wr(a)}}catch(E){ps.length=0,Zs(E,e,1),Y=ke(Fe)}let I=Y;if(B&&N!==!1){const E=Object.keys(B),{shapeFlag:R}=I;E.length&&R&7&&(l&&E.some(Pn)&&(B=$r(B,l)),I=wt(I,B,!1,!0))}return s.dirs&&(I=wt(I,null,!1,!0),I.dirs=I.dirs?I.dirs.concat(s.dirs):s.dirs),s.transition&&_s(I,s.transition),Y=I,js(J),Y}const wr=e=>{let t;for(const s in e)(s==="class"||s==="style"||qs(s))&&((t||(t={}))[s]=e[s]);return t},$r=(e,t)=>{const s={};for(const n in e)(!Pn(n)||!(n.slice(9)in t))&&(s[n]=e[n]);return s};function Cr(e,t,s){const{props:n,children:o,component:l}=e,{props:r,children:a,patchFlag:c}=t,v=l.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&c>=0){if(c&1024)return!0;if(c&16)return n?co(n,r,v):!!r;if(c&8){const d=t.dynamicProps;for(let g=0;g<d.length;g++){const M=d[g];if(Ol(r,n,M)&&!sn(v,M))return!0}}}else return(o||a)&&(!a||!a.$stable)?!0:n===r?!1:n?r?co(n,r,v):!0:!!r;return!1}function co(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(Ol(t,e,l)&&!sn(s,l))return!0}return!1}function Ol(e,t,s){const n=e[s],o=t[s];return s==="style"&&he(n)&&he(o)?!$s(n,o):n!==o}function kr({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 Al={},Il=()=>Object.create(Al),Pl=e=>Object.getPrototypeOf(e)===Al;function Sr(e,t,s,n=!1){const o={},l=Il();e.propsDefaults=Object.create(null),Fl(e,t,o,l);for(const r in e.propsOptions[0])r in o||(o[r]=void 0);s?e.props=n?o:Fi(o):e.type.props?e.props=o:e.props=l,e.attrs=l}function Tr(e,t,s,n){const{props:o,attrs:l,vnode:{patchFlag:r}}=e,a=de(o),[c]=e.propsOptions;let v=!1;if((n||r>0)&&!(r&16)){if(r&8){const d=e.vnode.dynamicProps;for(let g=0;g<d.length;g++){let M=d[g];if(sn(e.emitsOptions,M))continue;const y=t[M];if(c)if(pe(l,M))y!==l[M]&&(l[M]=y,v=!0);else{const x=Je(M);o[x]=Tn(c,a,x,y,e,!1)}else y!==l[M]&&(l[M]=y,v=!0)}}}else{Fl(e,t,o,l)&&(v=!0);let d;for(const g in a)(!t||!pe(t,g)&&((d=Rt(g))===g||!pe(t,d)))&&(c?s&&(s[g]!==void 0||s[d]!==void 0)&&(o[g]=Tn(c,a,g,void 0,e,!0)):delete o[g]);if(l!==a)for(const g in l)(!t||!pe(t,g))&&(delete l[g],v=!0)}v&&dt(e.attrs,"set","")}function Fl(e,t,s,n){const[o,l]=e.propsOptions;let r=!1,a;if(t)for(let c in t){if(rs(c))continue;const v=t[c];let d;o&&pe(o,d=Je(c))?!l||!l.includes(d)?s[d]=v:(a||(a={}))[d]=v:sn(e.emitsOptions,c)||(!(c in n)||v!==n[c])&&(n[c]=v,r=!0)}if(l){const c=de(s),v=a||ve;for(let d=0;d<l.length;d++){const g=l[d];s[g]=Tn(o,c,g,v[g],e,!pe(v,g))}}return r}function Tn(e,t,s,n,o,l){const r=e[s];if(r!=null){const a=pe(r,"default");if(a&&n===void 0){const c=r.default;if(r.type!==Function&&!r.skipFactory&&ne(c)){const{propsDefaults:v}=o;if(s in v)n=v[s];else{const d=ks(o);n=v[s]=c.call(null,t),d()}}else n=c;o.ce&&o.ce._setProp(s,n)}r[0]&&(l&&!a?n=!1:r[1]&&(n===""||n===Rt(s))&&(n=!0))}return n}const Mr=new WeakMap;function Ll(e,t,s=!1){const n=s?Mr:t.propsCache,o=n.get(e);if(o)return o;const l=e.props,r={},a=[];let c=!1;if(!ne(e)){const d=g=>{c=!0;const[M,y]=Ll(g,t,!0);$e(r,M),y&&a.push(...y)};!s&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}if(!l&&!c)return he(e)&&n.set(e,Kt),Kt;if(Z(l))for(let d=0;d<l.length;d++){const g=Je(l[d]);uo(g)&&(r[g]=ve)}else if(l)for(const d in l){const g=Je(d);if(uo(g)){const M=l[d],y=r[g]=Z(M)||ne(M)?{type:M}:$e({},M),x=y.type;let N=!1,J=!0;if(Z(x))for(let Y=0;Y<x.length;++Y){const B=x[Y],I=ne(B)&&B.name;if(I==="Boolean"){N=!0;break}else I==="String"&&(J=!1)}else N=ne(x)&&x.name==="Boolean";y[0]=N,y[1]=J,(N||pe(y,"default"))&&a.push(g)}}const v=[r,a];return he(e)&&n.set(e,v),v}function uo(e){return e[0]!=="$"&&!rs(e)}const Wn=e=>e==="_"||e==="_ctx"||e==="$stable",zn=e=>Z(e)?e.map(nt):[nt(e)],Er=(e,t,s)=>{if(t._n)return t;const n=Ds((...o)=>zn(t(...o)),s);return n._c=!1,n},Nl=(e,t,s)=>{const n=e._ctx;for(const o in e){if(Wn(o))continue;const l=e[o];if(ne(l))t[o]=Er(o,l,n);else if(l!=null){const r=zn(l);t[o]=()=>r}}},Rl=(e,t)=>{const s=zn(t);e.slots.default=()=>s},jl=(e,t,s)=>{for(const n in t)(s||!Wn(n))&&(e[n]=t[n])},Or=(e,t,s)=>{const n=e.slots=Il();if(e.vnode.shapeFlag&32){const o=t._;o?(jl(n,t,s),s&&Uo(n,"_",o,!0)):Nl(t,n)}else t&&Rl(e,t)},Ar=(e,t,s)=>{const{vnode:n,slots:o}=e;let l=!0,r=ve;if(n.shapeFlag&32){const a=t._;a?s&&a===1?l=!1:jl(o,t,s):(l=!t.$stable,Nl(t,o)),r=t}else t&&(Rl(e,t),r={default:1});if(l)for(const a in o)!Wn(a)&&r[a]==null&&delete o[a]},De=Nr;function Ir(e){return Pr(e)}function Pr(e,t){const s=Qs();s.__VUE__=!0;const{insert:n,remove:o,patchProp:l,createElement:r,createText:a,createComment:c,setText:v,setElementText:d,parentNode:g,nextSibling:M,setScopeId:y=lt,insertStaticContent:x}=e,N=(u,h,$,L=null,A=null,P=null,K=void 0,V=null,D=!!h.dynamicChildren)=>{if(u===h)return;u&&!At(u,h)&&(L=$t(u),Ne(u,A,P,!0),u=null),h.patchFlag===-2&&(D=!1,h.dynamicChildren=null);const{type:F,ref:Q,shapeFlag:W}=h;switch(F){case nn:J(u,h,$,L);break;case Fe:Y(u,h,$,L);break;case Ps:u==null&&B(h,$,L,K);break;case ae:m(u,h,$,L,A,P,K,V,D);break;default:W&1?R(u,h,$,L,A,P,K,V,D):W&6?_(u,h,$,L,A,P,K,V,D):(W&64||W&128)&&F.process(u,h,$,L,A,P,K,V,D,ee)}Q!=null&&A?us(Q,u&&u.ref,P,h||u,!h):Q==null&&u&&u.ref!=null&&us(u.ref,null,P,u,!0)},J=(u,h,$,L)=>{if(u==null)n(h.el=a(h.children),$,L);else{const A=h.el=u.el;h.children!==u.children&&v(A,h.children)}},Y=(u,h,$,L)=>{u==null?n(h.el=c(h.children||""),$,L):h.el=u.el},B=(u,h,$,L)=>{[u.el,u.anchor]=x(u.children,h,$,L,u.el,u.anchor)},I=({el:u,anchor:h},$,L)=>{let A;for(;u&&u!==h;)A=M(u),n(u,$,L),u=A;n(h,$,L)},E=({el:u,anchor:h})=>{let $;for(;u&&u!==h;)$=M(u),o(u),u=$;o(h)},R=(u,h,$,L,A,P,K,V,D)=>{if(h.type==="svg"?K="svg":h.type==="math"&&(K="mathml"),u==null)ue(h,$,L,A,P,K,V,D);else{const F=u.el&&u.el._isVueCE?u.el:null;try{F&&F._beginPatch(),C(u,h,A,P,K,V,D)}finally{F&&F._endPatch()}}},ue=(u,h,$,L,A,P,K,V)=>{let D,F;const{props:Q,shapeFlag:W,transition:f,dirs:p}=u;if(D=u.el=r(u.type,P,Q&&Q.is,Q),W&8?d(D,u.children):W&16&&O(u.children,D,null,L,A,hn(u,P),K,V),p&&kt(u,null,L,"created"),H(D,u,u.scopeId,K,L),Q){for(const q in Q)q!=="value"&&!rs(q)&&l(D,q,null,Q[q],P,L);"value"in Q&&l(D,"value",null,Q.value,P),(F=Q.onVnodeBeforeMount)&&Ze(F,L,u)}p&&kt(u,null,L,"beforeMount");const k=Fr(A,f);k&&f.beforeEnter(D),n(D,h,$),((F=Q&&Q.onVnodeMounted)||k||p)&&De(()=>{F&&Ze(F,L,u),k&&f.enter(D),p&&kt(u,null,L,"mounted")},A)},H=(u,h,$,L,A)=>{if($&&y(u,$),L)for(let P=0;P<L.length;P++)y(u,L[P]);if(A){let P=A.subTree;if(h===P||Ul(P.type)&&(P.ssContent===h||P.ssFallback===h)){const K=A.vnode;H(u,K,K.scopeId,K.slotScopeIds,A.parent)}}},O=(u,h,$,L,A,P,K,V,D=0)=>{for(let F=D;F<u.length;F++){const Q=u[F]=V?ut(u[F]):nt(u[F]);N(null,Q,h,$,L,A,P,K,V)}},C=(u,h,$,L,A,P,K)=>{const V=h.el=u.el;let{patchFlag:D,dynamicChildren:F,dirs:Q}=h;D|=u.patchFlag&16;const W=u.props||ve,f=h.props||ve;let p;if($&&St($,!1),(p=f.onVnodeBeforeUpdate)&&Ze(p,$,h,u),Q&&kt(h,u,$,"beforeUpdate"),$&&St($,!0),(W.innerHTML&&f.innerHTML==null||W.textContent&&f.textContent==null)&&d(V,""),F?oe(u.dynamicChildren,F,V,$,L,hn(h,A),P):K||X(u,h,V,null,$,L,hn(h,A),P,!1),D>0){if(D&16)w(V,W,f,$,A);else if(D&2&&W.class!==f.class&&l(V,"class",null,f.class,A),D&4&&l(V,"style",W.style,f.style,A),D&8){const k=h.dynamicProps;for(let q=0;q<k.length;q++){const U=k[q],z=W[U],fe=f[U];(fe!==z||U==="value")&&l(V,U,z,fe,A,$)}}D&1&&u.children!==h.children&&d(V,h.children)}else!K&&F==null&&w(V,W,f,$,A);((p=f.onVnodeUpdated)||Q)&&De(()=>{p&&Ze(p,$,h,u),Q&&kt(h,u,$,"updated")},L)},oe=(u,h,$,L,A,P,K)=>{for(let V=0;V<h.length;V++){const D=u[V],F=h[V],Q=D.el&&(D.type===ae||!At(D,F)||D.shapeFlag&198)?g(D.el):$;N(D,F,Q,null,L,A,P,K,!0)}},w=(u,h,$,L,A)=>{if(h!==$){if(h!==ve)for(const P in h)!rs(P)&&!(P in $)&&l(u,P,h[P],null,A,L);for(const P in $){if(rs(P))continue;const K=$[P],V=h[P];K!==V&&P!=="value"&&l(u,P,V,K,A,L)}"value"in $&&l(u,"value",h.value,$.value,A)}},m=(u,h,$,L,A,P,K,V,D)=>{const F=h.el=u?u.el:a(""),Q=h.anchor=u?u.anchor:a("");let{patchFlag:W,dynamicChildren:f,slotScopeIds:p}=h;p&&(V=V?V.concat(p):p),u==null?(n(F,$,L),n(Q,$,L),O(h.children||[],$,Q,A,P,K,V,D)):W>0&&W&64&&f&&u.dynamicChildren&&u.dynamicChildren.length===f.length?(oe(u.dynamicChildren,f,$,A,P,K,V),(h.key!=null||A&&h===A.subTree)&&Dl(u,h,!0)):X(u,h,$,Q,A,P,K,V,D)},_=(u,h,$,L,A,P,K,V,D)=>{h.slotScopeIds=V,u==null?h.shapeFlag&512?A.ctx.activate(h,$,L,K,D):G(h,$,L,A,P,K,D):le(u,h,D)},G=(u,h,$,L,A,P,K)=>{const V=u.component=Kr(u,L,A);if(en(u)&&(V.ctx.renderer=ee),Wr(V,!1,K),V.asyncDep){if(A&&A.registerDep(V,ce,K),!u.el){const D=V.subTree=ke(Fe);Y(null,D,h,$),u.placeholder=D.el}}else ce(V,u,h,$,A,P,K)},le=(u,h,$)=>{const L=h.component=u.component;if(Cr(u,h,$))if(L.asyncDep&&!L.asyncResolved){j(L,h,$);return}else L.next=h,L.update();else h.el=u.el,L.vnode=h},ce=(u,h,$,L,A,P,K)=>{const V=()=>{if(u.isMounted){let{next:W,bu:f,u:p,parent:k,vnode:q}=u;{const Be=Hl(u);if(Be){W&&(W.el=q.el,j(u,W,K)),Be.asyncDep.then(()=>{De(()=>{u.isUnmounted||F()},A)});return}}let U=W,z;St(u,!1),W?(W.el=q.el,j(u,W,K)):W=q,f&&As(f),(z=W.props&&W.props.onVnodeBeforeUpdate)&&Ze(z,k,W,q),St(u,!0);const fe=ao(u),xe=u.subTree;u.subTree=fe,N(xe,fe,g(xe.el),$t(xe),u,A,P),W.el=fe.el,U===null&&kr(u,fe.el),p&&De(p,A),(z=W.props&&W.props.onVnodeUpdated)&&De(()=>Ze(z,k,W,q),A)}else{let W;const{el:f,props:p}=h,{bm:k,m:q,parent:U,root:z,type:fe}=u,xe=ds(h);St(u,!1),k&&As(k),!xe&&(W=p&&p.onVnodeBeforeMount)&&Ze(W,U,h),St(u,!0);{z.ce&&z.ce._hasShadowRoot()&&z.ce._injectChildStyle(fe,u.parent?u.parent.type:void 0);const Be=u.subTree=ao(u);N(null,Be,$,L,u,A,P),h.el=Be.el}if(q&&De(q,A),!xe&&(W=p&&p.onVnodeMounted)){const Be=h;De(()=>Ze(W,U,Be),A)}(h.shapeFlag&256||U&&ds(U.vnode)&&U.vnode.shapeFlag&256)&&u.a&&De(u.a,A),u.isMounted=!0,h=$=L=null}};u.scope.on();const D=u.effect=new zo(V);u.scope.off();const F=u.update=D.run.bind(D),Q=u.job=D.runIfDirty.bind(D);Q.i=u,Q.id=u.uid,D.scheduler=()=>Kn(Q),St(u,!0),F()},j=(u,h,$)=>{h.component=u;const L=u.vnode.props;u.vnode=h,u.next=null,Tr(u,h.props,L,$),Ar(u,h.children,$),pt(),eo(u),ht()},X=(u,h,$,L,A,P,K,V,D=!1)=>{const F=u&&u.children,Q=u?u.shapeFlag:0,W=h.children,{patchFlag:f,shapeFlag:p}=h;if(f>0){if(f&128){_e(F,W,$,L,A,P,K,V,D);return}else if(f&256){ge(F,W,$,L,A,P,K,V,D);return}}p&8?(Q&16&&Xe(F,A,P),W!==F&&d($,W)):Q&16?p&16?_e(F,W,$,L,A,P,K,V,D):Xe(F,A,P,!0):(Q&8&&d($,""),p&16&&O(W,$,L,A,P,K,V,D))},ge=(u,h,$,L,A,P,K,V,D)=>{u=u||Kt,h=h||Kt;const F=u.length,Q=h.length,W=Math.min(F,Q);let f;for(f=0;f<W;f++){const p=h[f]=D?ut(h[f]):nt(h[f]);N(u[f],p,$,null,A,P,K,V,D)}F>Q?Xe(u,A,P,!0,!1,W):O(h,$,L,A,P,K,V,D,W)},_e=(u,h,$,L,A,P,K,V,D)=>{let F=0;const Q=h.length;let W=u.length-1,f=Q-1;for(;F<=W&&F<=f;){const p=u[F],k=h[F]=D?ut(h[F]):nt(h[F]);if(At(p,k))N(p,k,$,null,A,P,K,V,D);else break;F++}for(;F<=W&&F<=f;){const p=u[W],k=h[f]=D?ut(h[f]):nt(h[f]);if(At(p,k))N(p,k,$,null,A,P,K,V,D);else break;W--,f--}if(F>W){if(F<=f){const p=f+1,k=p<Q?h[p].el:L;for(;F<=f;)N(null,h[F]=D?ut(h[F]):nt(h[F]),$,k,A,P,K,V,D),F++}}else if(F>f)for(;F<=W;)Ne(u[F],A,P,!0),F++;else{const p=F,k=F,q=new Map;for(F=k;F<=f;F++){const Ae=h[F]=D?ut(h[F]):nt(h[F]);Ae.key!=null&&q.set(Ae.key,F)}let U,z=0;const fe=f-k+1;let xe=!1,Be=0;const Ct=new Array(fe);for(F=0;F<fe;F++)Ct[F]=0;for(F=p;F<=W;F++){const Ae=u[F];if(z>=fe){Ne(Ae,A,P,!0);continue}let Ve;if(Ae.key!=null)Ve=q.get(Ae.key);else for(U=k;U<=f;U++)if(Ct[U-k]===0&&At(Ae,h[U])){Ve=U;break}Ve===void 0?Ne(Ae,A,P,!0):(Ct[Ve-k]=F+1,Ve>=Be?Be=Ve:xe=!0,N(Ae,h[Ve],$,null,A,P,K,V,D),z++)}const gt=xe?Lr(Ct):Kt;for(U=gt.length-1,F=fe-1;F>=0;F--){const Ae=k+F,Ve=h[Ae],Zt=h[Ae+1],es=Ae+1<Q?Zt.el||Vl(Zt):L;Ct[F]===0?N(null,Ve,$,es,A,P,K,V,D):xe&&(U<0||F!==gt[U]?Oe(Ve,$,es,2):U--)}}},Oe=(u,h,$,L,A=null)=>{const{el:P,type:K,transition:V,children:D,shapeFlag:F}=u;if(F&6){Oe(u.component.subTree,h,$,L);return}if(F&128){u.suspense.move(h,$,L);return}if(F&64){K.move(u,h,$,ee);return}if(K===ae){n(P,h,$);for(let W=0;W<D.length;W++)Oe(D[W],h,$,L);n(u.anchor,h,$);return}if(K===Ps){I(u,h,$);return}if(L!==2&&F&1&&V)if(L===0)V.beforeEnter(P),n(P,h,$),De(()=>V.enter(P),A);else{const{leave:W,delayLeave:f,afterLeave:p}=V,k=()=>{u.ctx.isUnmounted?o(P):n(P,h,$)},q=()=>{P._isLeaving&&P[tt](!0),W(P,()=>{k(),p&&p()})};f?f(P,k,q):q()}else n(P,h,$)},Ne=(u,h,$,L=!1,A=!1)=>{const{type:P,props:K,ref:V,children:D,dynamicChildren:F,shapeFlag:Q,patchFlag:W,dirs:f,cacheIndex:p}=u;if(W===-2&&(A=!1),V!=null&&(pt(),us(V,null,$,u,!0),ht()),p!=null&&(h.renderCache[p]=void 0),Q&256){h.ctx.deactivate(u);return}const k=Q&1&&f,q=!ds(u);let U;if(q&&(U=K&&K.onVnodeBeforeUnmount)&&Ze(U,h,u),Q&6)we(u.component,$,L);else{if(Q&128){u.suspense.unmount($,L);return}k&&kt(u,null,h,"beforeUnmount"),Q&64?u.type.remove(u,h,$,ee,L):F&&!F.hasOnce&&(P!==ae||W>0&&W&64)?Xe(F,h,$,!1,!0):(P===ae&&W&384||!A&&Q&16)&&Xe(D,h,$),L&&Re(u)}(q&&(U=K&&K.onVnodeUnmounted)||k)&&De(()=>{U&&Ze(U,h,u),k&&kt(u,null,h,"unmounted")},$)},Re=u=>{const{type:h,el:$,anchor:L,transition:A}=u;if(h===ae){qe($,L);return}if(h===Ps){E(u);return}const P=()=>{o($),A&&!A.persisted&&A.afterLeave&&A.afterLeave()};if(u.shapeFlag&1&&A&&!A.persisted){const{leave:K,delayLeave:V}=A,D=()=>K($,P);V?V(u.el,P,D):D()}else P()},qe=(u,h)=>{let $;for(;u!==h;)$=M(u),o(u),u=$;o(h)},we=(u,h,$)=>{const{bum:L,scope:A,job:P,subTree:K,um:V,m:D,a:F}=u;fo(D),fo(F),L&&As(L),A.stop(),P&&(P.flags|=8,Ne(K,u,h,$)),V&&De(V,h),De(()=>{u.isUnmounted=!0},h)},Xe=(u,h,$,L=!1,A=!1,P=0)=>{for(let K=P;K<u.length;K++)Ne(u[K],h,$,L,A)},$t=u=>{if(u.shapeFlag&6)return $t(u.component.subTree);if(u.shapeFlag&128)return u.suspense.next();const h=M(u.anchor||u.el),$=h&&h[Yi];return $?M($):h};let jt=!1;const Ts=(u,h,$)=>{let L;u==null?h._vnode&&(Ne(h._vnode,null,null,!0),L=h._vnode.component):N(h._vnode||null,u,h,null,null,null,$),h._vnode=u,jt||(jt=!0,eo(L),ul(),jt=!1)},ee={p:N,um:Ne,m:Oe,r:Re,mt:G,mc:O,pc:X,pbc:oe,n:$t,o:e};return{render:Ts,hydrate:void 0,createApp:_r(Ts)}}function hn({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 St({effect:e,job:t},s){s?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Fr(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Dl(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]=ut(o[l]),a.el=r.el),!s&&a.patchFlag!==-2&&Dl(r,a)),a.type===nn&&(a.patchFlag===-1&&(a=o[l]=ut(a)),a.el=r.el),a.type===Fe&&!a.el&&(a.el=r.el)}}function Lr(e){const t=e.slice(),s=[0];let n,o,l,r,a;const c=e.length;for(n=0;n<c;n++){const v=e[n];if(v!==0){if(o=s[s.length-1],e[o]<v){t[n]=o,s.push(n);continue}for(l=0,r=s.length-1;l<r;)a=l+r>>1,e[s[a]]<v?l=a+1:r=a;v<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 Hl(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Hl(t)}function fo(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function Vl(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?Vl(t.subTree):null}const Ul=e=>e.__isSuspense;function Nr(e,t){t&&t.pendingBranch?Z(e)?t.effects.push(...e):t.effects.push(e):Wi(e)}const ae=Symbol.for("v-fgt"),nn=Symbol.for("v-txt"),Fe=Symbol.for("v-cmt"),Ps=Symbol.for("v-stc"),ps=[];let Ue=null;function S(e=!1){ps.push(Ue=e?null:[])}function Rr(){ps.pop(),Ue=ps[ps.length-1]||null}let bs=1;function Us(e,t=!1){bs+=e,e<0&&Ue&&t&&(Ue.hasOnce=!0)}function Bl(e){return e.dynamicChildren=bs>0?Ue||Kt:null,Rr(),bs>0&&Ue&&Ue.push(e),e}function T(e,t,s,n,o,l){return Bl(i(e,t,s,n,o,l,!0))}function Ot(e,t,s,n,o){return Bl(ke(e,t,s,n,o,!0))}function Bs(e){return e?e.__v_isVNode===!0:!1}function At(e,t){return e.type===t.type&&e.key===t.key}const Kl=({key:e})=>e??null,Fs=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?ye(e)||Ee(e)||ne(e)?{i:We,r:e,k:t,f:!!s}:e:null);function i(e,t=null,s=null,n=0,o=null,l=e===ae?0:1,r=!1,a=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Kl(t),ref:t&&Fs(t),scopeId:fl,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:We};return a?(qn(c,s),l&128&&e.normalize(c)):s&&(c.shapeFlag|=ye(s)?8:16),bs>0&&!r&&Ue&&(c.patchFlag>0||l&6)&&c.patchFlag!==32&&Ue.push(c),c}const ke=jr;function jr(e,t=null,s=null,n=0,o=null,l=!1){if((!e||e===ur)&&(e=Fe),Bs(e)){const a=wt(e,t,!0);return s&&qn(a,s),bs>0&&!l&&Ue&&(a.shapeFlag&6?Ue[Ue.indexOf(e)]=a:Ue.push(a)),a.patchFlag=-2,a}if(Gr(e)&&(e=e.__vccOpts),t){t=Dr(t);let{class:a,style:c}=t;a&&!ye(a)&&(t.class=se(a)),he(c)&&(Bn(c)&&!Z(c)&&(c=$e({},c)),t.style=Ce(c))}const r=ye(e)?1:Ul(e)?128:vl(e)?64:he(e)?4:ne(e)?2:0;return i(e,t,s,n,o,r,l,!0)}function Dr(e){return e?Bn(e)||Pl(e)?$e({},e):e:null}function wt(e,t,s=!1,n=!1){const{props:o,ref:l,patchFlag:r,children:a,transition:c}=e,v=t?Vr(o||{},t):o,d={__v_isVNode:!0,__v_skip:!0,type:e.type,props:v,key:v&&Kl(v),ref:t&&t.ref?s&&l?Z(l)?l.concat(Fs(t)):[l,Fs(t)]:Fs(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!==ae?r===-1?16:r|16:r,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&wt(e.ssContent),ssFallback:e.ssFallback&&wt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&n&&_s(d,c.clone(d)),d}function Me(e=" ",t=0){return ke(nn,null,e,t)}function Hr(e,t){const s=ke(Ps,null,e);return s.staticCount=t,s}function te(e="",t=!1){return t?(S(),Ot(Fe,null,e)):ke(Fe,null,e)}function nt(e){return e==null||typeof e=="boolean"?ke(Fe):Z(e)?ke(ae,null,e.slice()):Bs(e)?ut(e):ke(nn,null,String(e))}function ut(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:wt(e)}function qn(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),qn(e,o()),o._c&&(o._d=!0));return}else{s=32;const o=t._;!o&&!Pl(t)?t._ctx=We:o===3&&We&&(We.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else ne(t)?(t={default:t,_ctx:We},s=32):(t=String(t),n&64?(s=16,t=[Me(t)]):s=8);e.children=t,e.shapeFlag|=s}function Vr(...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=se([t.class,n.class]));else if(o==="style")t.style=Ce([t.style,n.style]);else if(qs(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 Ze(e,t,s,n=null){Qe(e,t,7,[s,n])}const Ur=Ml();let Br=0;function Kr(e,t,s){const n=e.type,o=(t?t.appContext:e.appContext)||Ur,l={uid:Br++,vnode:e,type:n,parent:t,appContext:o,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new hi(!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:Ll(n,o),emitsOptions:El(n,o),emit:null,emitted:null,propsDefaults:ve,inheritAttrs:n.inheritAttrs,ctx:ve,data:ve,props:ve,attrs:ve,slots:ve,refs:ve,setupState:ve,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=yr.bind(null,l),e.ce&&e.ce(l),l}let Le=null;const Wl=()=>Le||We;let Ks,Mn;{const e=Qs(),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)}};Ks=t("__VUE_INSTANCE_SETTERS__",s=>Le=s),Mn=t("__VUE_SSR_SETTERS__",s=>ys=s)}const ks=e=>{const t=Le;return Ks(e),e.scope.on(),()=>{e.scope.off(),Ks(t)}},po=()=>{Le&&Le.scope.off(),Ks(null)};function zl(e){return e.vnode.shapeFlag&4}let ys=!1;function Wr(e,t=!1,s=!1){t&&Mn(t);const{props:n,children:o}=e.vnode,l=zl(e);Sr(e,n,l,t),Or(e,o,s||t);const r=l?zr(e,t):void 0;return t&&Mn(!1),r}function zr(e,t){const s=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,dr);const{setup:n}=s;if(n){pt();const o=e.setupContext=n.length>1?Jr(e):null,l=ks(e),r=Cs(n,e,0,[e.props,o]),a=jo(r);if(ht(),l(),(a||e.sp)&&!ds(e)&&xl(e),a){if(r.then(po,po),t)return r.then(c=>{ho(e,c)}).catch(c=>{Zs(c,e,0)});e.asyncDep=r}else ho(e,r)}else ql(e)}function ho(e,t,s){ne(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:he(t)&&(e.setupState=il(t)),ql(e)}function ql(e,t,s){const n=e.type;e.render||(e.render=n.render||lt);{const o=ks(e);pt();try{fr(e)}finally{ht(),o()}}}const qr={get(e,t){return Te(e,"get",""),e[t]}};function Jr(e){const t=s=>{e.exposed=s||{}};return{attrs:new Proxy(e.attrs,qr),slots:e.slots,emit:e.emit,expose:t}}function on(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(il(Li(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in fs)return fs[s](e)},has(t,s){return s in t||s in fs}})):e.proxy}function Gr(e){return ne(e)&&"__vccOpts"in e}const ie=(e,t)=>Hi(e,t,ys);function Se(e,t,s){try{Us(-1);const n=arguments.length;return n===2?he(t)&&!Z(t)?Bs(t)?ke(e,null,[t]):ke(e,t):ke(e,null,t):(n>3?s=Array.prototype.slice.call(arguments,2):n===3&&Bs(s)&&(s=[s]),ke(e,t,s))}finally{Us(1)}}const Yr="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 En;const vo=typeof window<"u"&&window.trustedTypes;if(vo)try{En=vo.createPolicy("vue",{createHTML:e=>e})}catch{}const Jl=En?e=>En.createHTML(e):e=>e,Qr="http://www.w3.org/2000/svg",Xr="http://www.w3.org/1998/Math/MathML",ct=typeof document<"u"?document:null,mo=ct&&ct.createElement("template"),Zr={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"?ct.createElementNS(Qr,e):t==="mathml"?ct.createElementNS(Xr,e):s?ct.createElement(e,{is:s}):ct.createElement(e);return e==="select"&&n&&n.multiple!=null&&o.setAttribute("multiple",n.multiple),o},createText:e=>ct.createTextNode(e),createComment:e=>ct.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ct.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{mo.innerHTML=Jl(n==="svg"?`<svg>${e}</svg>`:n==="mathml"?`<math>${e}</math>`:e);const a=mo.content;if(n==="svg"||n==="mathml"){const c=a.firstChild;for(;c.firstChild;)a.appendChild(c.firstChild);a.removeChild(c)}t.insertBefore(a,s)}return[r?r.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}},_t="transition",ns="animation",xs=Symbol("_vtc"),Gl={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},ea=$e({},ml,Gl),ta=e=>(e.displayName="Transition",e.props=ea,e),On=ta((e,{slots:t})=>Se(Zi,sa(e),t)),Tt=(e,t=[])=>{Z(e)?e.forEach(s=>s(...t)):e&&e(...t)},go=e=>e?Z(e)?e.some(t=>t.length>1):e.length>1:!1;function sa(e){const t={};for(const m in e)m in Gl||(t[m]=e[m]);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:c=l,appearActiveClass:v=r,appearToClass:d=a,leaveFromClass:g=`${s}-leave-from`,leaveActiveClass:M=`${s}-leave-active`,leaveToClass:y=`${s}-leave-to`}=e,x=na(o),N=x&&x[0],J=x&&x[1],{onBeforeEnter:Y,onEnter:B,onEnterCancelled:I,onLeave:E,onLeaveCancelled:R,onBeforeAppear:ue=Y,onAppear:H=B,onAppearCancelled:O=I}=t,C=(m,_,G,le)=>{m._enterCancelled=le,Mt(m,_?d:a),Mt(m,_?v:r),G&&G()},oe=(m,_)=>{m._isLeaving=!1,Mt(m,g),Mt(m,y),Mt(m,M),_&&_()},w=m=>(_,G)=>{const le=m?H:B,ce=()=>C(_,m,G);Tt(le,[_,ce]),_o(()=>{Mt(_,m?c:l),at(_,m?d:a),go(le)||bo(_,n,N,ce)})};return $e(t,{onBeforeEnter(m){Tt(Y,[m]),at(m,l),at(m,r)},onBeforeAppear(m){Tt(ue,[m]),at(m,c),at(m,v)},onEnter:w(!1),onAppear:w(!0),onLeave(m,_){m._isLeaving=!0;const G=()=>oe(m,_);at(m,g),m._enterCancelled?(at(m,M),wo(m)):(wo(m),at(m,M)),_o(()=>{m._isLeaving&&(Mt(m,g),at(m,y),go(E)||bo(m,n,J,G))}),Tt(E,[m,G])},onEnterCancelled(m){C(m,!1,void 0,!0),Tt(I,[m])},onAppearCancelled(m){C(m,!0,void 0,!0),Tt(O,[m])},onLeaveCancelled(m){oe(m),Tt(R,[m])}})}function na(e){if(e==null)return null;if(he(e))return[vn(e.enter),vn(e.leave)];{const t=vn(e);return[t,t]}}function vn(e){return li(e)}function at(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.add(s)),(e[xs]||(e[xs]=new Set)).add(t)}function Mt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.remove(n));const s=e[xs];s&&(s.delete(t),s.size||(e[xs]=void 0))}function _o(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let oa=0;function bo(e,t,s,n){const o=e._endId=++oa,l=()=>{o===e._endId&&n()};if(s!=null)return setTimeout(l,s);const{type:r,timeout:a,propCount:c}=la(e,t);if(!r)return n();const v=r+"end";let d=0;const g=()=>{e.removeEventListener(v,M),l()},M=y=>{y.target===e&&++d>=c&&g()};setTimeout(()=>{d<c&&g()},a+1),e.addEventListener(v,M)}function la(e,t){const s=window.getComputedStyle(e),n=x=>(s[x]||"").split(", "),o=n(`${_t}Delay`),l=n(`${_t}Duration`),r=yo(o,l),a=n(`${ns}Delay`),c=n(`${ns}Duration`),v=yo(a,c);let d=null,g=0,M=0;t===_t?r>0&&(d=_t,g=r,M=l.length):t===ns?v>0&&(d=ns,g=v,M=c.length):(g=Math.max(r,v),d=g>0?r>v?_t:ns:null,M=d?d===_t?l.length:c.length:0);const y=d===_t&&/\b(?:transform|all)(?:,|$)/.test(n(`${_t}Property`).toString());return{type:d,timeout:g,propCount:M,hasTransform:y}}function yo(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((s,n)=>xo(s)+xo(e[n])))}function xo(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function wo(e){return(e?e.ownerDocument:document).body.offsetHeight}function ia(e,t,s){const n=e[xs];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}const $o=Symbol("_vod"),ra=Symbol("_vsh"),aa=Symbol(""),ca=/(?:^|;)\s*display\s*:/;function ua(e,t,s){const n=e.style,o=ye(s);let l=!1;if(s&&!o){if(t)if(ye(t))for(const r of t.split(";")){const a=r.slice(0,r.indexOf(":")).trim();s[a]==null&&Ls(n,a,"")}else for(const r in t)s[r]==null&&Ls(n,r,"");for(const r in s)r==="display"&&(l=!0),Ls(n,r,s[r])}else if(o){if(t!==s){const r=n[aa];r&&(s+=";"+r),n.cssText=s,l=ca.test(s)}}else t&&e.removeAttribute("style");$o in e&&(e[$o]=l?n.display:"",e[ra]&&(n.display="none"))}const Co=/\s*!important$/;function Ls(e,t,s){if(Z(s))s.forEach(n=>Ls(e,t,n));else if(s==null&&(s=""),t.startsWith("--"))e.setProperty(t,s);else{const n=da(e,t);Co.test(s)?e.setProperty(Rt(n),s.replace(Co,""),"important"):e[n]=s}}const ko=["Webkit","Moz","ms"],mn={};function da(e,t){const s=mn[t];if(s)return s;let n=Je(t);if(n!=="filter"&&n in e)return mn[t]=n;n=Vo(n);for(let o=0;o<ko.length;o++){const l=ko[o]+n;if(l in e)return mn[t]=l}return t}const So="http://www.w3.org/1999/xlink";function To(e,t,s,n,o,l=di(t)){n&&t.startsWith("xlink:")?s==null?e.removeAttributeNS(So,t.slice(6,t.length)):e.setAttributeNS(So,t,s):s==null||l&&!Bo(s)?e.removeAttribute(t):e.setAttribute(t,l?"":it(s)?String(s):s)}function Mo(e,t,s,n,o){if(t==="innerHTML"||t==="textContent"){s!=null&&(e[t]=t==="innerHTML"?Jl(s):s);return}const l=e.tagName;if(t==="value"&&l!=="PROGRESS"&&!l.includes("-")){const a=l==="OPTION"?e.getAttribute("value")||"":e.value,c=s==null?e.type==="checkbox"?"on":"":String(s);(a!==c||!("_value"in e))&&(e.value=c),s==null&&e.removeAttribute(t),e._value=s;return}let r=!1;if(s===""||s==null){const a=typeof e[t];a==="boolean"?s=Bo(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 It(e,t,s,n){e.addEventListener(t,s,n)}function fa(e,t,s,n){e.removeEventListener(t,s,n)}const Eo=Symbol("_vei");function pa(e,t,s,n,o=null){const l=e[Eo]||(e[Eo]={}),r=l[t];if(n&&r)r.value=n;else{const[a,c]=ha(t);if(n){const v=l[t]=ga(n,o);It(e,a,v,c)}else r&&(fa(e,a,r,c),l[t]=void 0)}}const Oo=/(?:Once|Passive|Capture)$/;function ha(e){let t;if(Oo.test(e)){t={};let n;for(;n=e.match(Oo);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):Rt(e.slice(2)),t]}let gn=0;const va=Promise.resolve(),ma=()=>gn||(va.then(()=>gn=0),gn=Date.now());function ga(e,t){const s=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=s.attached)return;Qe(_a(n,s.value),t,5,[n])};return s.value=e,s.attached=ma(),s}function _a(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 Ao=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,ba=(e,t,s,n,o,l)=>{const r=o==="svg";t==="class"?ia(e,n,r):t==="style"?ua(e,s,n):qs(t)?Pn(t)||pa(e,t,s,n,l):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):ya(e,t,n,r))?(Mo(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&To(e,t,n,r,l,t!=="value")):e._isVueCE&&(xa(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!ye(n)))?Mo(e,Je(t),n,l,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),To(e,t,n,r))};function ya(e,t,s,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Ao(t)&&ne(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 Ao(t)&&ye(s)?!1:t in e}function xa(e,t){const s=e._def.props;if(!s)return!1;const n=Je(t);return Array.isArray(s)?s.some(o=>Je(o)===n):Object.keys(s).some(o=>Je(o)===n)}const Ws=e=>{const t=e.props["onUpdate:modelValue"]||!1;return Z(t)?s=>As(t,s):t};function wa(e){e.target.composing=!0}function Io(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Jt=Symbol("_assign");function Po(e,t,s){return t&&(e=e.trim()),s&&(e=Ys(e)),e}const Yt={created(e,{modifiers:{lazy:t,trim:s,number:n}},o){e[Jt]=Ws(o);const l=n||o.props&&o.props.type==="number";It(e,t?"change":"input",r=>{r.target.composing||e[Jt](Po(e.value,s,l))}),(s||l)&&It(e,"change",()=>{e.value=Po(e.value,s,l)}),t||(It(e,"compositionstart",wa),It(e,"compositionend",Io),It(e,"change",Io))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:s,modifiers:{lazy:n,trim:o,number:l}},r){if(e[Jt]=Ws(r),e.composing)return;const a=(l||e.type==="number")&&!/^0\d/.test(e.value)?Ys(e.value):e.value,c=t??"";a!==c&&(document.activeElement===e&&e.type!=="range"&&(n&&t===s||o&&e.value.trim()===c)||(e.value=c))}},$a={deep:!0,created(e,{value:t,modifiers:{number:s}},n){const o=Js(t);It(e,"change",()=>{const l=Array.prototype.filter.call(e.options,r=>r.selected).map(r=>s?Ys(zs(r)):zs(r));e[Jt](e.multiple?o?new Set(l):l:l[0]),e._assigning=!0,al(()=>{e._assigning=!1})}),e[Jt]=Ws(n)},mounted(e,{value:t}){Fo(e,t)},beforeUpdate(e,t,s){e[Jt]=Ws(s)},updated(e,{value:t}){e._assigning||Fo(e,t)}};function Fo(e,t){const s=e.multiple,n=Z(t);if(!(s&&!n&&!Js(t))){for(let o=0,l=e.options.length;o<l;o++){const r=e.options[o],a=zs(r);if(s)if(n){const c=typeof a;c==="string"||c==="number"?r.selected=t.some(v=>String(v)===String(a)):r.selected=pi(t,a)>-1}else r.selected=t.has(a);else if($s(zs(r),t)){e.selectedIndex!==o&&(e.selectedIndex=o);return}}!s&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function zs(e){return"_value"in e?e._value:e.value}const Ca=["ctrl","shift","alt","meta"],ka={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)=>Ca.some(s=>e[`${s}Key`]&&!t.includes(s))},os=(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=ka[t[r]];if(a&&a(o,t))return}return e(o,...l)}))},Sa=$e({patchProp:ba},Zr);let Lo;function Ta(){return Lo||(Lo=Ir(Sa))}const Ma=((...e)=>{const t=Ta().createApp(...e),{mount:s}=t;return t.mount=n=>{const o=Oa(n);if(!o)return;const l=t._component;!ne(l)&&!l.render&&!l.template&&(l.template=o.innerHTML),o.nodeType===1&&(o.textContent="");const r=s(o,!1,Ea(o));return o instanceof Element&&(o.removeAttribute("v-cloak"),o.setAttribute("data-v-app","")),r},t});function Ea(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Oa(e){return ye(e)?document.querySelector(e):e}const Aa=500,Yl=re([]),Ql=re({provides:[],injects:[]}),Jn=re([]),Xl=re([]),Zl=re([]),ei=re(!1);let No=!1,Qt="*";function ls(e){return e?e.map(t=>({...t})):[]}function Ia(e){return e?e.map(t=>({...t})):[]}function Pa(){if(typeof document>"u")return"";if(document.referrer)try{return new URL(document.referrer).origin}catch{}return""}function An(){var e;Qt&&((e=window.top)==null||e.postMessage({type:"observatory:request"},Qt))}function Fa(e){var s;if(((s=e.data)==null?void 0:s.type)!=="observatory:snapshot"||!Qt||e.origin!==Qt)return;const t=e.data.data;Yl.value=ls(t.fetch),Ql.value=t.provideInject?{provides:ls(t.provideInject.provides),injects:ls(t.provideInject.injects)}:{provides:[],injects:[]},Jn.value=ls(t.composables),Xl.value=Ia(t.renders),Zl.value=ls(t.transitions),ei.value=!0}function La(){No||typeof window>"u"||(No=!0,Qt=Pa(),window.addEventListener("message",Fa),window.setInterval(An,Aa),An())}function hs(){return Qt}function Na(){Jn.value=[]}function Ss(){return La(),{fetch:Yl,provideInject:Ql,composables:Jn,renders:Xl,transitions:Zl,connected:ei,refresh:An,clearComposables:Na}}const Ra={class:"view"},ja={class:"stats-row"},Da={class:"stat-card"},Ha={class:"stat-val"},Va={class:"stat-card"},Ua={class:"stat-val",style:{color:"var(--teal)"}},Ba={class:"stat-card"},Ka={class:"stat-val",style:{color:"var(--amber)"}},Wa={class:"stat-card"},za={class:"stat-val",style:{color:"var(--red)"}},qa={class:"toolbar"},Ja={class:"split"},Ga={class:"table-wrap"},Ya={class:"data-table"},Qa=["onClick"],Xa={class:"mono",style:{"font-size":"11px",color:"var(--text2)"}},Za=["title"],ec={class:"muted text-sm"},tc={class:"mono text-sm"},sc={style:{height:"4px",background:"var(--bg2)","border-radius":"2px",overflow:"hidden"}},nc={key:0},oc={colspan:"7",style:{"text-align":"center",color:"var(--text3)",padding:"24px"}},lc={key:0,class:"detail-panel"},ic={class:"detail-header"},rc={class:"mono bold",style:{"font-size":"12px"}},ac={class:"flex gap-2"},cc={class:"meta-grid"},uc={class:"muted text-sm"},dc={class:"mono text-sm",style:{"word-break":"break-all"}},fc={class:"payload-box"},pc={class:"mono text-sm muted"},hc={key:1,class:"detail-empty"},vc={class:"waterfall"},mc={class:"waterfall-header"},gc={key:0,class:"waterfall-body"},_c={class:"mono muted text-sm",style:{width:"140px",overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap","flex-shrink":"0"}},bc={class:"wf-track"},yc={class:"mono muted text-sm",style:{width:"44px","text-align":"right","flex-shrink":"0"}},xc=Nt({__name:"FetchDashboard",setup(e){const{fetch:t,connected:s}=Ss(),n=re("all"),o=re(""),l=re(null),r=re(!0),a=ie(()=>{const I=[...t.value].sort((R,ue)=>R.startTime-ue.startTime),E=Math.min(...I.map(R=>R.startTime),0);return I.map(R=>({...R,startOffset:Math.max(0,Math.round(R.startTime-E))}))}),c=ie(()=>a.value.find(I=>I.id===l.value)??null),v=ie(()=>({ok:a.value.filter(I=>I.status==="ok").length,pending:a.value.filter(I=>I.status==="pending").length,error:a.value.filter(I=>I.status==="error").length})),d=ie(()=>a.value.filter(I=>{if(n.value!=="all"&&I.status!==n.value)return!1;const E=o.value.toLowerCase();return!(E&&!I.key.toLowerCase().includes(E)&&!I.url.toLowerCase().includes(E))})),g=ie(()=>{if(!c.value)return[];const I=c.value;return[["url",I.url],["status",I.status],["origin",I.origin],["duration",I.ms!=null?`${I.ms}ms`:"—"],["size",I.size?B(I.size):"—"],["cached",I.cached?"yes":"no"]]}),M=ie(()=>{if(!c.value)return"";const I=c.value.payload;if(I===void 0)return"(no payload captured yet)";try{return JSON.stringify(I,null,2)}catch{return String(I)}});function y(I){return{ok:"badge-ok",error:"badge-err",pending:"badge-warn",cached:"badge-gray"}[I]??"badge-gray"}function x(I){return{ok:"var(--teal)",error:"var(--red)",pending:"var(--amber)",cached:"var(--border)"}[I]??"var(--border)"}function N(I){const E=Math.max(...a.value.filter(R=>R.ms).map(R=>R.ms),1);return I.ms!=null?Math.max(4,Math.round(I.ms/E*100)):4}function J(I){const E=Math.max(...a.value.map(R=>R.startOffset+(R.ms??0)),1);return Math.round(I.startOffset/E*100)}function Y(I){const E=Math.max(...a.value.map(R=>R.startOffset+(R.ms??0)),1);return I.ms!=null?Math.round(I.ms/E*100):2}function B(I){return I<1024?`${I}B`:`${(I/1024).toFixed(1)}KB`}return(I,E)=>(S(),T("div",Ra,[i("div",ja,[i("div",Da,[E[7]||(E[7]=i("div",{class:"stat-label"},"total",-1)),i("div",Ha,b(a.value.length),1)]),i("div",Va,[E[8]||(E[8]=i("div",{class:"stat-label"},"success",-1)),i("div",Ua,b(v.value.ok),1)]),i("div",Ba,[E[9]||(E[9]=i("div",{class:"stat-label"},"pending",-1)),i("div",Ka,b(v.value.pending),1)]),i("div",Wa,[E[10]||(E[10]=i("div",{class:"stat-label"},"error",-1)),i("div",za,b(v.value.error),1)])]),i("div",qa,[i("button",{class:se({active:n.value==="all"}),onClick:E[0]||(E[0]=R=>n.value="all")},"all",2),i("button",{class:se({"danger-active":n.value==="error"}),onClick:E[1]||(E[1]=R=>n.value="error")},"errors",2),i("button",{class:se({active:n.value==="pending"}),onClick:E[2]||(E[2]=R=>n.value="pending")},"pending",2),i("button",{class:se({active:n.value==="cached"}),onClick:E[3]||(E[3]=R=>n.value="cached")},"cached",2),Lt(i("input",{"onUpdate:modelValue":E[4]||(E[4]=R=>o.value=R),type:"search",placeholder:"search key or url…",style:{"max-width":"240px","margin-left":"auto"}},null,512),[[Yt,o.value]])]),i("div",Ja,[i("div",Ga,[i("table",Ya,[E[11]||(E[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(ae,null,be(d.value,R=>{var ue;return S(),T("tr",{key:R.id,class:se({selected:((ue=c.value)==null?void 0:ue.id)===R.id}),onClick:H=>l.value=R.id},[i("td",null,[i("span",Xa,b(R.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:R.url},b(R.url),9,Za)]),i("td",null,[i("span",{class:se(["badge",y(R.status)])},b(R.status),3)]),i("td",null,[i("span",{class:se(["badge",R.origin==="ssr"?"badge-info":"badge-gray"])},b(R.origin),3)]),i("td",ec,b(R.size?B(R.size):"—"),1),i("td",tc,b(R.ms!=null?`${R.ms}ms`:"—"),1),i("td",null,[i("div",sc,[i("div",{style:Ce({width:`${N(R)}%`,background:x(R.status),height:"100%",borderRadius:"2px"})},null,4)])])],10,Qa)}),128)),d.value.length?te("",!0):(S(),T("tr",nc,[i("td",oc,b(xt(s)?"No fetches recorded yet.":"Waiting for connection to the Nuxt app…"),1)]))])])]),c.value?(S(),T("div",lc,[i("div",ic,[i("span",rc,b(c.value.key),1),i("div",ac,[i("button",{onClick:E[5]||(E[5]=R=>l.value=null)},"×")])]),i("div",cc,[(S(!0),T(ae,null,be(g.value,([R,ue])=>(S(),T(ae,{key:R},[i("span",uc,b(R),1),i("span",dc,b(ue),1)],64))),128))]),E[12]||(E[12]=i("div",{class:"section-label"},"payload",-1)),i("pre",fc,b(M.value),1),E[13]||(E[13]=i("div",{class:"section-label",style:{"margin-top":"10px"}},"source",-1)),i("div",pc,b(c.value.file)+":"+b(c.value.line),1)])):(S(),T("div",hc,"select a call to inspect"))]),i("div",vc,[i("div",mc,[E[14]||(E[14]=i("div",{class:"section-label",style:{"margin-top":"0","margin-bottom":"0"}},"waterfall",-1)),i("button",{class:se({active:r.value}),onClick:E[6]||(E[6]=R=>r.value=!r.value)},b(r.value?"hide":"show"),3)]),r.value?(S(),T("div",gc,[(S(!0),T(ae,null,be(a.value,R=>(S(),T("div",{key:R.id,class:"wf-row"},[i("span",_c,b(R.key),1),i("div",bc,[i("div",{class:"wf-bar",style:Ce({left:`${J(R)}%`,width:`${Math.max(2,Y(R))}%`,background:x(R.status)})},null,4)]),i("span",yc,b(R.ms!=null?`${R.ms}ms`:"—"),1)]))),128))])):te("",!0)])]))}}),Xt=(e,t)=>{const s=e.__vccOpts||e;for(const[n,o]of t)s[n]=o;return s},wc=Xt(xc,[["__scopeId","data-v-8c1465c0"]]),$c={class:"view"},Cc={class:"toolbar"},kc=["onClick"],Sc={class:"split"},Tc={class:"graph-area"},Mc={key:0,class:"canvas-stage"},Ec=["width","height","viewBox"],Oc=["d"],Ac=["onClick"],Ic={class:"mono node-label"},Pc={key:0,class:"badge badge-ok badge-xs"},Fc={key:1,class:"badge badge-err badge-xs"},Lc={key:1,class:"graph-empty"},Nc={key:0,class:"detail-panel"},Rc={class:"detail-header"},jc={class:"mono bold",style:{"font-size":"12px"}},Dc={key:0,class:"detail-section"},Hc={class:"section-label"},Vc={class:"detail-list"},Uc={class:"row-main"},Bc={class:"mono text-sm row-key"},Kc=["title"],Wc=["onClick"],zc={key:0,class:"row-warning"},qc={key:1,class:"row-consumers"},Jc={key:0,class:"muted text-sm"},Gc={key:2,class:"muted text-sm",style:{padding:"2px 0","font-size":"11px"}},Yc={key:3,class:"value-box"},Qc={class:"section-label"},Xc={class:"detail-list"},Zc={class:"mono text-sm row-key"},eu={key:0,class:"badge badge-ok"},tu={key:1,class:"badge badge-err"},su=["title"],nu={key:2,class:"muted text-sm",style:{"margin-top":"8px"}},ou={key:1,class:"detail-empty"},Ht=140,Vt=32,lu=72,Ut=18,iu=Nt({__name:"ProvideInjectGraph",setup(e){const{provideInject:t,connected:s}=Ss();function n(w){return w.injects.some(m=>!m.ok)?"var(--red)":w.type==="both"?"var(--blue)":w.type==="provider"?"var(--teal)":"var(--text3)"}function o(w,m){return m==="all"?!0:m==="warn"?w.injects.some(_=>!_.ok):m==="shadow"?w.provides.some(_=>_.isShadowing):w.provides.some(_=>_.key===m)||w.injects.some(_=>_.key===m)}function l(w,m){if(!m)return!0;const _=m.toLowerCase();return w.label.toLowerCase().includes(_)||w.componentName.toLowerCase().includes(_)||w.provides.some(G=>G.key.toLowerCase().includes(_))||w.injects.some(G=>G.key.toLowerCase().includes(_))}function r(w){let m=0;const _=[w];for(;_.length;){const G=_.pop();G.children.length===0?m++:_.push(...G.children)}return m}function a(w){if(typeof w=="string")return w;try{return JSON.stringify(w)}catch{return String(w)}}function c(w){return typeof w=="object"&&w!==null}function v(w){if(w===null)return"null";if(Array.isArray(w))return`Array(${w.length})`;if(typeof w=="object"){const m=Object.keys(w);return m.length?`{ ${m.join(", ")} }`:"{}"}return a(w)}function d(w){if(!c(w))return a(w);try{return JSON.stringify(w,null,2)}catch{return a(w)}}function g(w,m,_){return`${w}:${m}:${_}`}function M(w){return w.split("/").pop()??w}function y(w){var _;if(!w||w==="unknown")return;const m=hs();m&&((_=window.top)==null||_.postMessage({type:"observatory:open-in-editor",file:w},m))}function x(w){return String(w.componentUid)}const N=ie(()=>{const w=new Map,m=new Map;function _(j){const X=x(j),ge=w.get(X);if(ge)return ge;const _e={id:X,label:M(j.componentFile),componentName:j.componentName??M(j.componentFile),componentFile:j.componentFile,type:"consumer",provides:[],injects:[],children:[]};return w.set(X,_e),m.set(X,j.parentUid!==void 0?String(j.parentUid):null),_e}const G=new Map;for(const j of t.value.injects){const X=G.get(j.key)??[];X.push(j),G.set(j.key,X)}const le=new Map;for(const j of t.value.provides)le.set(j.componentUid,j.componentName);for(const j of t.value.injects)le.set(j.componentUid,j.componentName);for(const j of t.value.provides){const X=_(j),ge=G.get(j.key)??[];X.provides.push({key:j.key,val:v(j.valueSnapshot),raw:j.valueSnapshot,reactive:j.isReactive,complex:c(j.valueSnapshot),scope:j.scope??"component",isShadowing:j.isShadowing??!1,consumerUids:ge.map(_e=>_e.componentUid),consumerNames:ge.map(_e=>_e.componentName)})}for(const j of t.value.injects)_(j).injects.push({key:j.key,from:j.resolvedFromFile??null,fromName:j.resolvedFromUid!==void 0?le.get(j.resolvedFromUid)??null:null,ok:j.resolved});for(const j of w.values())j.injects.some(X=>!X.ok)?j.type="error":j.provides.length&&j.injects.length?j.type="both":j.provides.length?j.type="provider":j.type="consumer";const ce=[];for(const[j,X]of w.entries()){const ge=m.get(j),_e=ge?w.get(ge):void 0;_e?_e.children.push(X):ce.push(X)}return ce}),J=re("all"),Y=re(""),B=re(null),I=re(new Set);yt(B,()=>{I.value=new Set});function E(w){const m=new Set(I.value);m.has(w)?m.delete(w):m.add(w),I.value=m}const R=ie(()=>{const w=new Set,m=[...N.value];for(;m.length;){const _=m.pop();_.provides.forEach(G=>w.add(G.key)),_.injects.forEach(G=>w.add(G.key)),m.push(..._.children)}return[...w]}),ue=ie(()=>{function w(m){const _=[],G=[m];for(;G.length;){const ce=G.pop();_.push(ce);for(let j=ce.children.length-1;j>=0;j--)G.push(ce.children[j])}const le=new Map;for(let ce=_.length-1;ce>=0;ce--){const j=_[ce],X=j.children.map(_e=>le.get(_e)??null).filter(_e=>_e!==null);!(o(j,J.value)&&l(j,Y.value))&&!X.length?le.set(j,null):le.set(j,{...j,children:X})}return le.get(m)??null}return N.value.map(w).filter(Boolean)});yt([ue,B],([w,m])=>{if(!m)return;const _=new Set,G=[...w];for(;G.length;){const le=G.pop();_.add(le.id),G.push(...le.children)}_.has(m.id)||(B.value=null)});const H=ie(()=>{const w=[],m=Ut;let _=m;for(const G of ue.value){const le=[{node:G,depth:0,slotLeft:_,parentId:null}];for(;le.length;){const{node:j,depth:X,slotLeft:ge,parentId:_e}=le.pop(),Ne=r(j)*(Ht+Ut)-Ut;w.push({data:j,parentId:_e,x:Math.round(ge+Ne/2),y:Math.round(m+X*(Vt+lu)+Vt/2)});let Re=ge;const qe=[];for(const we of j.children){const Xe=r(we);qe.push({node:we,depth:X+1,slotLeft:Re,parentId:j.id}),Re+=Xe*(Ht+Ut)}for(let we=qe.length-1;we>=0;we--)le.push(qe[we])}const ce=r(G);_+=ce*(Ht+Ut)+Ut*2}return w}),O=ie(()=>H.value.reduce((w,m)=>Math.max(w,m.x+Ht/2+20),520)),C=ie(()=>H.value.reduce((w,m)=>Math.max(w,m.y+Vt/2+20),200)),oe=ie(()=>{const w=new Map(H.value.map(m=>[m.data.id,m]));return H.value.filter(m=>m.parentId!==null).map(m=>{const _=w.get(m.parentId);return{id:`${_.data.id}--${m.data.id}`,x1:_.x,y1:_.y+Vt/2,x2:m.x,y2:m.y-Vt/2}})});return(w,m)=>(S(),T("div",$c,[i("div",Cc,[i("button",{class:se({active:J.value==="all"}),onClick:m[0]||(m[0]=_=>J.value="all")},"all keys",2),(S(!0),T(ae,null,be(R.value,_=>(S(),T("button",{key:_,style:{"font-family":"var(--mono)"},class:se({active:J.value===_}),onClick:G=>J.value=_},b(_),11,kc))),128)),i("button",{style:{"margin-left":"auto"},class:se({"danger-active":J.value==="shadow"}),onClick:m[1]||(m[1]=_=>J.value=J.value==="shadow"?"all":"shadow")}," shadowed ",2),i("button",{class:se({"danger-active":J.value==="warn"}),onClick:m[2]||(m[2]=_=>J.value=J.value==="warn"?"all":"warn")}," warnings ",2),Lt(i("input",{"onUpdate:modelValue":m[3]||(m[3]=_=>Y.value=_),type:"search",placeholder:"search component or key…",style:{"max-width":"200px"}},null,512),[[Yt,Y.value]])]),i("div",Sc,[i("div",Tc,[m[6]||(m[6]=Hr('<div class="legend" data-v-0c07531b><span class="dot" style="background:var(--teal);" data-v-0c07531b></span><span data-v-0c07531b>provides</span><span class="dot" style="background:var(--blue);" data-v-0c07531b></span><span data-v-0c07531b>both</span><span class="dot" style="background:var(--text3);" data-v-0c07531b></span><span data-v-0c07531b>injects</span><span class="dot" style="background:var(--red);" data-v-0c07531b></span><span data-v-0c07531b>missing provider</span></div>',1)),H.value.length?(S(),T("div",Mc,[i("div",{class:"canvas-wrap",style:Ce({width:`${O.value}px`,height:`${C.value}px`})},[(S(),T("svg",{class:"edges-svg",width:O.value,height:C.value,viewBox:`0 0 ${O.value} ${C.value}`},[(S(!0),T(ae,null,be(oe.value,_=>(S(),T("path",{key:_.id,d:`M ${_.x1},${_.y1} C ${_.x1},${(_.y1+_.y2)/2} ${_.x2},${(_.y1+_.y2)/2} ${_.x2},${_.y2}`,class:"edge",fill:"none"},null,8,Oc))),128))],8,Ec)),(S(!0),T(ae,null,be(H.value,_=>{var G;return S(),T("div",{key:_.data.id,class:se(["graph-node",{"is-selected":((G=B.value)==null?void 0:G.id)===_.data.id}]),style:Ce({left:`${_.x-Ht/2}px`,top:`${_.y-Vt/2}px`,width:`${Ht}px`,"--node-color":n(_.data)}),onClick:le=>B.value=_.data},[i("span",{class:"node-dot",style:Ce({background:n(_.data)})},null,4),i("span",Ic,b(_.data.label),1),_.data.provides.length?(S(),T("span",Pc," +"+b(_.data.provides.length),1)):te("",!0),_.data.injects.some(le=>!le.ok)?(S(),T("span",Fc,"!")):te("",!0)],14,Ac)}),128))],4)])):(S(),T("div",Lc,b(xt(s)?"No components match the current provide/inject filter.":"Waiting for connection to the Nuxt app…"),1))]),B.value?(S(),T("div",Nc,[i("div",Rc,[i("span",jc,b(B.value.label),1),B.value.componentFile&&B.value.componentFile!=="unknown"?(S(),T("button",{key:0,class:"jump-btn",title:"Open in editor",onClick:m[4]||(m[4]=_=>y(B.value.componentFile))}," open ↗ ")):te("",!0),i("button",{onClick:m[5]||(m[5]=_=>B.value=null)},"×")]),B.value.provides.length?(S(),T("div",Dc,[i("div",Hc,"provides ("+b(B.value.provides.length)+")",1),i("div",Vc,[(S(!0),T(ae,null,be(B.value.provides,(_,G)=>(S(),T("div",{key:g(B.value.id,_.key,G),class:"provide-row"},[i("div",Uc,[i("span",Bc,b(_.key),1),i("span",{class:"mono text-sm muted row-value-preview",title:_.val},b(_.val),9,Kc),i("span",{class:se(["badge scope-badge",`scope-${_.scope}`])},b(_.scope),3),i("span",{class:se(["badge",_.reactive?"badge-ok":"badge-gray"])},b(_.reactive?"reactive":"static"),3),_.complex?(S(),T("button",{key:0,class:"row-toggle mono",onClick:le=>E(g(B.value.id,_.key,G))},b(I.value.has(g(B.value.id,_.key,G))?"hide":"view"),9,Wc)):te("",!0)]),_.isShadowing?(S(),T("div",zc,"shadows a parent provide with the same key")):te("",!0),_.consumerNames.length?(S(),T("div",qc,[m[7]||(m[7]=i("span",{class:"muted text-sm"},"used by:",-1)),(S(!0),T(ae,null,be(_.consumerNames,le=>(S(),T("span",{key:le,class:"consumer-chip mono"},b(le),1))),128)),_.consumerNames.length?te("",!0):(S(),T("span",Jc,"no consumers"))])):(S(),T("div",Gc,"no consumers detected")),_.complex&&I.value.has(g(B.value.id,_.key,G))?(S(),T("pre",Yc,b(d(_.raw)),1)):te("",!0)]))),128))])])):te("",!0),B.value.injects.length?(S(),T("div",{key:1,class:"detail-section",style:Ce({marginTop:B.value.provides.length?"10px":"0"})},[i("div",Qc,"injects ("+b(B.value.injects.length)+")",1),i("div",Xc,[(S(!0),T(ae,null,be(B.value.injects,_=>(S(),T("div",{key:_.key,class:se(["inject-row",{"inject-miss":!_.ok}])},[i("span",Zc,b(_.key),1),_.ok?(S(),T("span",eu,"resolved")):(S(),T("span",tu,"no provider")),i("span",{class:se(["mono text-sm row-from",_.fromName?"":"muted"]),title:_.from??"undefined"},b(_.fromName??_.from??"undefined"),11,su)],2))),128))])],4)):te("",!0),!B.value.provides.length&&!B.value.injects.length?(S(),T("div",nu," no provide/inject in this component ")):te("",!0)])):(S(),T("div",ou,b(xt(s)?"Click a node to inspect.":"Waiting for connection to the Nuxt app…"),1))])]))}}),ru=Xt(iu,[["__scopeId","data-v-0c07531b"]]),au={class:"view"},cu={class:"stats-row"},uu={class:"stat-card"},du={class:"stat-val"},fu={class:"stat-card"},pu={class:"stat-val",style:{color:"var(--teal)"}},hu={class:"stat-card"},vu={class:"stat-val",style:{color:"var(--red)"}},mu={class:"stat-card"},gu={class:"stat-val"},_u={class:"toolbar"},bu={class:"list"},yu=["onClick"],xu={class:"comp-header"},wu={class:"comp-identity"},$u={class:"comp-name mono"},Cu={class:"comp-file muted mono"},ku={class:"comp-meta"},Su={key:0,class:"badge badge-warn"},Tu={key:1,class:"badge badge-warn"},Mu={key:2,class:"badge badge-err"},Eu={key:3,class:"badge badge-ok"},Ou={key:4,class:"badge badge-gray"},Au={key:0,class:"refs-preview"},Iu=["title"],Pu={class:"ref-chip-key"},Fu={class:"ref-chip-val"},Lu={key:0,class:"ref-chip-shared-dot",title:"global"},Nu={key:0,class:"muted text-sm"},Ru={key:0,class:"leak-banner"},ju={key:1,class:"global-banner"},Du={key:2,class:"muted text-sm",style:{padding:"2px 0 6px"}},Hu=["title","onClick"],Vu={class:"mono text-sm ref-val"},Uu={key:0,class:"badge badge-amber text-xs"},Bu=["onClick"],Ku={class:"section-label",style:{"margin-top":"10px"}},Wu={class:"muted",style:{"font-weight":"400","text-transform":"none","letter-spacing":"0"}},zu={class:"history-list"},qu={class:"history-time mono muted"},Ju={class:"history-key mono"},Gu={class:"history-val mono"},Yu={key:0,class:"muted text-sm",style:{padding:"2px 0"}},Qu={class:"muted text-sm",style:{"min-width":"120px"}},Xu={class:"lc-row"},Zu={class:"mono text-sm"},ed={class:"lc-row"},td={class:"mono text-sm muted"},sd={class:"lc-row"},nd={class:"mono text-sm muted",style:{display:"flex","align-items":"center",gap:"6px"}},od=["onClick"],ld={class:"lc-row"},id={class:"mono text-sm muted"},rd={class:"lc-row"},ad={class:"mono text-sm"},cd={class:"lc-row"},ud={class:"mono text-sm"},dd={key:0,class:"muted text-sm",style:{padding:"16px 0"}},fd={key:0,class:"lookup-panel"},pd={class:"lookup-header"},hd={class:"mono text-sm"},vd={class:"muted text-sm"},md={key:0,class:"muted text-sm",style:{padding:"6px 0"}},gd={class:"mono text-sm"},_d={class:"muted text-sm"},bd={class:"muted text-sm",style:{"margin-left":"auto"}},yd={class:"edit-dialog"},xd={class:"edit-dialog-header"},wd={class:"mono"},$d={key:0,class:"edit-error text-sm"},Cd={class:"edit-actions"},kd=Nt({__name:"ComposableTracker",setup(e){const{composables:t,connected:s,clearComposables:n}=Ss();function o(){var O;const H=hs();H&&(n(),(O=window.top)==null||O.postMessage({type:"observatory:clear-composables"},H))}function l(H){if(H===null)return"null";if(H===void 0)return"undefined";if(typeof H=="string")return`"${H}"`;if(typeof H=="object")try{const O=JSON.stringify(H);return O.length>80?O.slice(0,80)+"…":O}catch{return String(H)}return String(H)}function r(H){return H.split("/").pop()??H}function a(H){var C;if(!H||H==="unknown")return;const O=hs();O&&((C=window.top)==null||C.postMessage({type:"observatory:open-in-editor",file:H},O))}const c=re("all"),v=re(""),d=re(null),g=ie(()=>t.value),M=ie(()=>({mounted:g.value.filter(H=>H.status==="mounted").length,leaks:g.value.filter(H=>H.leak).length})),y=ie(()=>g.value.filter(H=>{if(c.value==="leak"&&!H.leak||c.value==="mounted"&&H.status!=="mounted"||c.value==="unmounted"&&H.status!=="unmounted")return!1;const O=v.value.toLowerCase();if(O){const C=H.name.toLowerCase().includes(O),oe=H.componentFile.toLowerCase().includes(O),w=Object.keys(H.refs).some(_=>_.toLowerCase().includes(O)),m=Object.values(H.refs).some(_=>{try{return String(JSON.stringify(_.value)).toLowerCase().includes(O)}catch{return!1}});if(!C&&!oe&&!w&&!m)return!1}return!0}));function x(H){return[{label:"onMounted",ok:H.lifecycle.hasOnMounted,status:H.lifecycle.hasOnMounted?"registered":"not used"},{label:"onUnmounted",ok:H.lifecycle.hasOnUnmounted,status:H.lifecycle.hasOnUnmounted?"registered":"missing"},{label:"watchers cleaned",ok:H.lifecycle.watchersCleaned,status:H.lifecycle.watchersCleaned?"all stopped":"NOT stopped"},{label:"intervals cleared",ok:H.lifecycle.intervalsCleaned,status:H.lifecycle.intervalsCleaned?"all cleared":"NOT cleared"}]}function N(H){return H==="computed"?"badge-info":H==="reactive"?"badge-purple":"badge-gray"}const J=re(null),Y=ie(()=>{if(!J.value)return[];const H=J.value;return g.value.filter(O=>H in O.refs)});function B(H){J.value=J.value===H?null:H}const I=re(null),E=re("");function R(H,O,C){E.value="",I.value={id:H,key:O,rawValue:JSON.stringify(C,null,2)}}function ue(){var C;if(!I.value)return;let H;try{H=JSON.parse(I.value.rawValue),E.value=""}catch(oe){E.value=`Invalid JSON: ${oe.message}`;return}const O=hs();O&&((C=window.top)==null||C.postMessage({type:"observatory:edit-composable",id:I.value.id,key:I.value.key,value:H},O),I.value=null)}return(H,O)=>(S(),T("div",au,[i("div",cu,[i("div",uu,[O[11]||(O[11]=i("div",{class:"stat-label"},"total",-1)),i("div",du,b(g.value.length),1)]),i("div",fu,[O[12]||(O[12]=i("div",{class:"stat-label"},"mounted",-1)),i("div",pu,b(M.value.mounted),1)]),i("div",hu,[O[13]||(O[13]=i("div",{class:"stat-label"},"leaks",-1)),i("div",vu,b(M.value.leaks),1)]),i("div",mu,[O[14]||(O[14]=i("div",{class:"stat-label"},"instances",-1)),i("div",gu,b(g.value.length),1)])]),i("div",_u,[i("button",{class:se({active:c.value==="all"}),onClick:O[0]||(O[0]=C=>c.value="all")},"all",2),i("button",{class:se({active:c.value==="mounted"}),onClick:O[1]||(O[1]=C=>c.value="mounted")},"mounted",2),i("button",{class:se({"danger-active":c.value==="leak"}),onClick:O[2]||(O[2]=C=>c.value="leak")},"leaks only",2),i("button",{class:se({active:c.value==="unmounted"}),onClick:O[3]||(O[3]=C=>c.value="unmounted")},"unmounted",2),Lt(i("input",{"onUpdate:modelValue":O[4]||(O[4]=C=>v.value=C),type:"search",placeholder:"search name, file, or ref…",style:{"max-width":"220px","margin-left":"auto"}},null,512),[[Yt,v.value]]),i("button",{class:"clear-btn",title:"Clear session history",onClick:o},"clear")]),i("div",bu,[(S(!0),T(ae,null,be(y.value,C=>{var oe;return S(),T("div",{key:C.id,class:se(["comp-card",{leak:C.leak,expanded:d.value===C.id}]),onClick:w=>d.value=d.value===C.id?null:C.id},[i("div",xu,[i("div",wu,[i("span",$u,b(C.name),1),i("span",Cu,b(r(C.componentFile)),1)]),i("div",ku,[C.watcherCount>0&&!C.leak?(S(),T("span",Su,b(C.watcherCount)+"w",1)):te("",!0),C.intervalCount>0&&!C.leak?(S(),T("span",Tu,b(C.intervalCount)+"t",1)):te("",!0),C.leak?(S(),T("span",Mu,"leak")):C.status==="mounted"?(S(),T("span",Eu,"mounted")):(S(),T("span",Ou,"unmounted"))])]),Object.keys(C.refs).length?(S(),T("div",Au,[(S(!0),T(ae,null,be(Object.entries(C.refs).slice(0,3),([w,m])=>{var _,G,le;return S(),T("span",{key:w,class:se(["ref-chip",{"ref-chip--reactive":m.type==="reactive","ref-chip--computed":m.type==="computed","ref-chip--shared":(_=C.sharedKeys)==null?void 0:_.includes(w)}]),title:(G=C.sharedKeys)!=null&&G.includes(w)?"shared global state":""},[i("span",Pu,b(w),1),i("span",Fu,b(l(m.value)),1),(le=C.sharedKeys)!=null&&le.includes(w)?(S(),T("span",Lu)):te("",!0)],10,Iu)}),128)),Object.keys(C.refs).length>3?(S(),T("span",Nu," +"+b(Object.keys(C.refs).length-3)+" more ",1)):te("",!0)])):te("",!0),d.value===C.id?(S(),T("div",{key:1,class:"comp-detail",onClick:O[5]||(O[5]=os(()=>{},["stop"]))},[C.leak?(S(),T("div",Ru,b(C.leakReason),1)):te("",!0),(oe=C.sharedKeys)!=null&&oe.length?(S(),T("div",ju,[O[16]||(O[16]=i("span",{class:"global-dot"},null,-1)),i("span",null,[O[15]||(O[15]=i("strong",null,"global state",-1)),Me(" — "+b(C.sharedKeys.join(", "))+" "+b(C.sharedKeys.length===1?"is":"are")+" shared across all instances of "+b(C.name),1)])])):te("",!0),O[24]||(O[24]=i("div",{class:"section-label"},"reactive state",-1)),Object.keys(C.refs).length?te("",!0):(S(),T("div",Du," no tracked state returned ")),(S(!0),T(ae,null,be(Object.entries(C.refs),([w,m])=>{var _;return S(),T("div",{key:w,class:"ref-row"},[i("span",{class:"mono text-sm ref-key ref-key--clickable",title:`click to see all instances exposing '${w}'`,onClick:os(G=>B(w),["stop"])},b(w),9,Hu),i("span",Vu,b(l(m.value)),1),i("span",{class:se(["badge text-xs",N(m.type)])},b(m.type),3),(_=C.sharedKeys)!=null&&_.includes(w)?(S(),T("span",Uu,"global")):te("",!0),m.type==="ref"?(S(),T("button",{key:1,class:"edit-btn",title:"Edit value",onClick:os(G=>R(C.id,w,m.value),["stop"])}," edit ",8,Bu)):te("",!0)])}),128)),C.history&&C.history.length?(S(),T(ae,{key:3},[i("div",Ku,[O[17]||(O[17]=Me(" change history ",-1)),i("span",Wu," ("+b(C.history.length)+" events) ",1)]),i("div",zu,[(S(!0),T(ae,null,be([...C.history].reverse().slice(0,20),(w,m)=>(S(),T("div",{key:m,class:"history-row"},[i("span",qu,"+"+b((w.t/1e3).toFixed(2))+"s",1),i("span",Ju,b(w.key),1),i("span",Gu,b(l(w.value)),1)]))),128)),C.history.length>20?(S(),T("div",Yu," … "+b(C.history.length-20)+" earlier events ",1)):te("",!0)])],64)):te("",!0),O[25]||(O[25]=i("div",{class:"section-label",style:{"margin-top":"10px"}},"lifecycle",-1)),(S(!0),T(ae,null,be(x(C),w=>(S(),T("div",{key:w.label,class:"lc-row"},[i("span",{class:"lc-dot",style:Ce({background:w.ok?"var(--teal)":"var(--red)"})},null,4),i("span",Qu,b(w.label),1),i("span",{class:"text-sm",style:Ce({color:w.ok?"var(--teal)":"var(--red)"})},b(w.status),5)]))),128)),O[26]||(O[26]=i("div",{class:"section-label",style:{"margin-top":"10px"}},"context",-1)),i("div",Xu,[O[18]||(O[18]=i("span",{class:"muted text-sm",style:{"min-width":"120px"}},"component",-1)),i("span",Zu,b(r(C.componentFile)),1)]),i("div",ed,[O[19]||(O[19]=i("span",{class:"muted text-sm",style:{"min-width":"120px"}},"uid",-1)),i("span",td,b(C.componentUid),1)]),i("div",sd,[O[20]||(O[20]=i("span",{class:"muted text-sm",style:{"min-width":"120px"}},"defined in",-1)),i("span",nd,[Me(b(C.file)+":"+b(C.line)+" ",1),i("button",{class:"jump-btn",title:"Open in editor",onClick:os(w=>a(C.file),["stop"])},"open ↗",8,od)])]),i("div",ld,[O[21]||(O[21]=i("span",{class:"muted text-sm",style:{"min-width":"120px"}},"route",-1)),i("span",id,b(C.route),1)]),i("div",rd,[O[22]||(O[22]=i("span",{class:"muted text-sm",style:{"min-width":"120px"}},"watchers",-1)),i("span",ad,b(C.watcherCount),1)]),i("div",cd,[O[23]||(O[23]=i("span",{class:"muted text-sm",style:{"min-width":"120px"}},"intervals",-1)),i("span",ud,b(C.intervalCount),1)])])):te("",!0)],10,yu)}),128)),y.value.length?te("",!0):(S(),T("div",dd,b(xt(s)?"No composables recorded yet.":"Waiting for connection to the Nuxt app…"),1))]),ke(On,{name:"slide"},{default:Ds(()=>[J.value?(S(),T("div",fd,[i("div",pd,[i("span",hd,b(J.value),1),i("span",vd,"— "+b(Y.value.length)+" instance"+b(Y.value.length!==1?"s":""),1),i("button",{class:"clear-btn",style:{"margin-left":"auto"},onClick:O[6]||(O[6]=C=>J.value=null)},"✕")]),Y.value.length?te("",!0):(S(),T("div",md,"No mounted instances expose this key.")),(S(!0),T(ae,null,be(Y.value,C=>(S(),T("div",{key:C.id,class:"lookup-row"},[i("span",gd,b(C.name),1),i("span",_d,b(r(C.componentFile)),1),i("span",bd,b(C.route),1)]))),128))])):te("",!0)]),_:1}),ke(On,{name:"fade"},{default:Ds(()=>[I.value?(S(),T("div",{key:0,class:"edit-overlay",onClick:O[10]||(O[10]=os(C=>I.value=null,["self"]))},[i("div",yd,[i("div",xd,[O[27]||(O[27]=Me(" edit ",-1)),i("span",wd,b(I.value.key),1),i("button",{class:"clear-btn",style:{"margin-left":"auto"},onClick:O[7]||(O[7]=C=>I.value=null)},"✕")]),O[28]||(O[28]=i("p",{class:"muted text-sm",style:{padding:"4px 0 8px"}},[Me(" Value applied immediately to the live ref. Only "),i("span",{class:"mono"},"ref"),Me(" values are writable. ")],-1)),Lt(i("textarea",{"onUpdate:modelValue":O[8]||(O[8]=C=>I.value.rawValue=C),class:"edit-textarea",rows:"6",spellcheck:"false"},null,512),[[Yt,I.value.rawValue]]),E.value?(S(),T("div",$d,b(E.value),1)):te("",!0),i("div",Cd,[i("button",{onClick:ue},"apply"),i("button",{class:"clear-btn",onClick:O[9]||(O[9]=C=>I.value=null)},"cancel")])])])):te("",!0)]),_:1})]))}}),Sd=Xt(kd,[["__scopeId","data-v-47ca40b0"]]),Td={class:"view"},Md={class:"controls"},Ed={class:"mode-group"},Od={class:"threshold-group"},Ad=["min","max","step"],Id={class:"mono text-sm"},Pd=["value"],Fd={class:"stats-row"},Ld={class:"stat-card"},Nd={class:"stat-val"},Rd={class:"stat-card"},jd={class:"stat-val"},Dd={class:"stat-card"},Hd={class:"stat-val",style:{color:"var(--red)"}},Vd={class:"stat-card"},Ud={class:"stat-val"},Bd={class:"inspector"},Kd={class:"roots-panel"},Wd=["onClick"],zd={class:"root-copy"},qd={class:"root-label mono"},Jd={class:"root-sub muted mono"},Gd={class:"root-meta mono"},Yd={key:0,class:"detail-empty"},Qd={class:"tree-panel"},Xd={class:"tree-toolbar"},Zd=["value"],ef={class:"tree-frame"},tf={class:"tree-canvas"},sf={key:0,class:"detail-empty"},nf={class:"detail-panel"},of={class:"detail-header"},lf={class:"mono bold",style:{"font-size":"12px"}},rf={class:"detail-pill-row"},af={class:"detail-pill mono"},cf={class:"detail-pill mono muted"},uf={key:0,class:"detail-pill mono"},df={key:1,class:"detail-pill mono persistent"},ff={key:2,class:"detail-pill mono hydrated"},pf={class:"detail-pill mono"},hf={class:"meta-grid"},vf={class:"mono text-sm"},mf={class:"mono text-sm"},gf={class:"mono text-sm muted",style:{display:"flex","align-items":"center",gap:"6px"}},_f={class:"mono text-sm"},bf={class:"mono text-sm"},yf={class:"mono text-sm"},xf={class:"meta-grid"},wf={class:"mono text-sm"},$f={class:"mono text-sm"},Cf={class:"mono text-sm"},kf={class:"mono text-sm"},Sf={class:"mono text-sm"},Tf={class:"mono text-sm"},Mf={class:"mono text-sm"},Ef={key:0,class:"muted text-sm"},Of={class:"section-label",style:{"margin-top":"8px"}},Af={class:"muted",style:{"font-weight":"400","text-transform":"none","letter-spacing":"0"}},If={key:1,class:"muted text-sm"},Pf={key:2,class:"timeline-list"},Ff={class:"timeline-time mono muted"},Lf={class:"timeline-dur mono"},Nf={key:0,class:"timeline-trigger mono muted"},Rf={class:"timeline-route mono muted",style:{"margin-left":"auto"}},jf={key:0,class:"muted text-sm",style:{padding:"2px 0"}},Df={key:1,class:"detail-empty"},Hf=Nt({__name:"RenderHeatmap",setup(e){const t=Nt({name:"TreeNode",props:{node:Object,mode:String,threshold:Number,selected:String,expandedIds:Object},emits:["select","toggle"],setup(f,{emit:p}){function k(z){return f.mode==="count"?z.rerenders+z.mountCount:z.avgMs}function q(z){return k(z)>=f.threshold}function U(z){return{selected:f.selected===z.id,hot:q(z)}}return()=>{var Ve,Zt,es;const z=f.node,fe=((Ve=f.expandedIds)==null?void 0:Ve.has(z.id))??!1,xe=z.children.length>0,Be=f.mode==="count"?`${z.rerenders+z.mountCount}`:`${z.avgMs.toFixed(1)}ms`,Ct=f.mode==="count"?"renders":"avg",gt=[],Ae=(Zt=z.element)==null?void 0:Zt.toLowerCase();if(z.element&&z.element!==z.label&&!["div","span","p"].includes(Ae??"")&>.push(z.element),z.file!=="unknown"){const je=((es=z.file.split("/").pop())==null?void 0:es.replace(/\.vue$/i,""))??z.file;je!==z.label&&!gt.includes(je)&>.push(je)}return Se("div",{class:"tree-node"},[Se("div",{class:["tree-row",U(z)],style:{"--tree-depth":String(z.depth)},onClick:je=>{je.stopPropagation(),p("select",z)}},[Se("span",{class:"tree-rail","aria-hidden":"true"}),Se("button",{class:["tree-toggle",{empty:!xe}],disabled:!xe,onClick:je=>{je.stopPropagation(),xe&&p("toggle",z.id)}},xe?fe?"⌄":"›":""),Se("div",{class:"tree-copy"},[Se("span",{class:"tree-name mono",title:z.label},z.label),gt.length?Se("div",{class:"tree-badges"},gt.slice(0,1).map(je=>Se("span",{class:"tree-badge mono",title:je},je))):null]),Se("div",{class:"tree-metrics mono"},[z.isPersistent?Se("span",{class:"tree-persistent-pill",title:"Layout / persistent component — survives navigation"},"persistent"):null,z.isHydrationMount?Se("span",{class:"tree-hydration-pill",title:"First mount was SSR hydration — not a user-triggered render"},"hydrated"):null,Se("span",{class:"tree-metric-pill"},`${Be} ${Ct}`),z.file&&z.file!=="unknown"?Se("button",{class:"tree-jump-btn",title:`Open ${z.file} in editor`,onClick:je=>{je.stopPropagation(),D(z.file)}},"↗"):null])]),fe&&xe?Se("div",{class:"tree-children"},z.children.map(je=>Se(t,{node:je,mode:f.mode,threshold:f.threshold,selected:f.selected,expandedIds:f.expandedIds,onSelect:ln=>p("select",ln),onToggle:ln=>p("toggle",ln)}))):null])}}}),{renders:s,connected:n}=Ss(),o=re("count"),l=re(""),r=re(3),a=re(16),c=ie({get:()=>o.value==="count"?r.value:a.value,set:f=>{o.value==="count"?r.value=f:a.value=f}}),v=re(!1),d=re(!1),g=re(""),M=re(null),y=re(null),x=re(new Set),N=re([]),J=re(!1);function Y(f){var k;if(f.name&&f.name!=="unknown"&&!/^Component#\d+$/.test(f.name))return f.name;if(f.element)return f.element;const p=(k=f.file.split("/").pop())==null?void 0:k.replace(/\.vue$/i,"");return p&&p!=="unknown"?p:f.name&&f.name!=="unknown"?f.name:`Component#${f.uid}`}function B(f){return`${f.type}: ${f.key}`}function I(f){const p=new Map;for(const U of f)p.set(String(U.uid),{id:String(U.uid),label:Y(U),file:U.file,element:U.element,depth:0,path:[],rerenders:U.rerenders??0,mountCount:U.mountCount??1,avgMs:U.avgMs,triggers:U.triggers.map(B),timeline:U.timeline??[],children:[],parentId:U.parentUid!==void 0?String(U.parentUid):void 0,isPersistent:!!U.isPersistent,isHydrationMount:!!U.isHydrationMount,route:U.route??"/"});const k=[];for(const U of f){const z=p.get(String(U.uid));if(!z)continue;const fe=U.parentUid!==void 0?p.get(String(U.parentUid)):void 0;fe?(z.parentLabel=fe.label,fe.children.push(z)):k.push(z)}function q(U,z=[],fe=0){U.depth=fe,U.path=[...z,U.label],U.children.forEach(xe=>q(xe,U.path,fe+1))}return k.forEach(U=>q(U)),k}function E(f){const p=[];function k(q){p.push(q),q.children.forEach(k)}return f.forEach(k),p}function R(f){return 1+f.children.reduce((p,k)=>p+R(k),0)}function ue(f,p=new Set){return p.add(f.id),f.children.forEach(k=>ue(k,p)),p}function H(f,p,k=[]){const q=[...k,f.id];if(f.id===p)return q;for(const U of f.children){const z=H(U,p,q);if(z)return z}return null}function O(f){if(m(f))return f;for(const p of f.children){const k=O(p);if(k)return k}return null}function C(f){if(!f)return new Set;const p=new Set;function k(q){q.children.length>0&&(p.add(q.id),q.children.forEach(k))}return k(f),p}function oe(f,p){const k=C(f);if(!f||!p)return k;function q(U){const z=U.children.some(xe=>q(xe)),fe=_(U,p);return z&&k.add(U.id),fe||z}return q(f),k}function w(f){return o.value==="count"?f.rerenders+f.mountCount:f.avgMs}function m(f){return w(f)>=c.value}function _(f,p){if(!p)return!0;const k=p.toLowerCase();return f.label.toLowerCase().includes(k)||f.file.toLowerCase().includes(k)||f.path.some(q=>q.toLowerCase().includes(k))||f.triggers.some(q=>q.toLowerCase().includes(k))}function G(f,p){return p?_(f,p)||f.children.some(k=>G(k,p)):!0}function le(f){return m(f)||f.children.some(p=>le(p))}function ce(f){return!l.value||f.route===l.value?!0:f.timeline.some(p=>p.route===l.value)}function j(f){return ce(f)||f.children.some(p=>j(p))}function X(f,p){const k=G(f,p),q=!v.value||le(f),U=!l.value||j(f);return k&&q&&U}function ge(f,p){const k=f.children.map(fe=>ge(fe,p)).filter(fe=>fe!==null),q=!p||_(f,p)||k.length>0,U=!v.value||m(f)||k.length>0,z=!l.value||ce(f)||k.length>0;return!q||!U||!z?null:{...f,children:k}}const _e=ie(()=>d.value?N.value:s.value),Oe=ie(()=>I(_e.value)),Ne=ie(()=>new Map(Oe.value.map(f=>[f.id,f]))),Re=ie(()=>E(Oe.value)),qe=ie(()=>{const f=g.value.trim();return Oe.value.filter(p=>X(p,f))}),we=ie(()=>y.value?qe.value.find(f=>f.id===y.value)??Ne.value.get(y.value)??null:qe.value[0]??Oe.value[0]??null),Xe=ie(()=>{const f=g.value.trim();return we.value?ge(we.value,f):null}),$t=ie(()=>Xe.value?[Xe.value]:[]),jt=ie(()=>qe.value.map((f,p)=>({id:f.id,label:`App ${p+1}`,meta:`${R(f)} nodes`,root:f}))),Ts=ie(()=>{const f=new Set;for(const p of Re.value){p.route&&f.add(p.route);for(const k of p.timeline)k.route&&f.add(k.route)}return[...f].sort()}),ee=ie(()=>Re.value.find(f=>f.id===M.value)??null),Gn=ie(()=>Re.value.reduce((f,p)=>f+p.rerenders+p.mountCount,0)),u=ie(()=>Re.value.filter(f=>m(f)).length),h=ie(()=>{const f=Re.value.filter(p=>p.avgMs>0);return f.length?(f.reduce((p,k)=>p+k.avgMs,0)/f.length).toFixed(1):"0.0"});yt(Oe,f=>{if(!f.length){y.value=null,M.value=null,x.value=new Set,J.value=!1;return}const p=new Set(f.map(U=>U.id));(!y.value||!p.has(y.value))&&(y.value=f[0].id),M.value&&!Re.value.some(U=>U.id===M.value)&&(M.value=null);const k=new Set(Re.value.map(U=>U.id)),q=new Set([...x.value].filter(U=>k.has(U)));if(!J.value){x.value=C(we.value),J.value=!0;return}!g.value.trim()&&M.value&&we.value&&(H(we.value,M.value)??[]).forEach(z=>q.add(z)),x.value=q},{immediate:!0}),yt(g,f=>{if(!we.value)return;const p=f.trim();if(p){x.value=oe(we.value,p);return}if(M.value){const k=H(we.value,M.value);x.value=k?new Set(k):C(we.value);return}x.value=C(we.value)}),yt([v,c,o,qe],()=>{if(!v.value)return;const f=qe.value[0]??null;if(!f){M.value=null;return}const p=O(f);if(!p){M.value=null;return}y.value=f.id,M.value!==p.id&&(M.value=p.id),x.value=new Set(H(f,p.id)??[f.id])});function $(f){M.value=f.id;const p=Oe.value.find(k=>ue(k).has(f.id));p&&(y.value=p.id,x.value=new Set(H(p,f.id)??[p.id]))}function L(f){const p=new Set(x.value);p.has(f)?p.delete(f):p.add(f),x.value=p}function A(f){y.value=f.id,x.value=C(f),J.value=!0}function P(f){const p=f.target;g.value=(p==null?void 0:p.value)??""}function K(){if(d.value){d.value=!1,N.value=[];return}N.value=JSON.parse(JSON.stringify(s.value)),d.value=!0}function V(f){var p;return((p=f.split("/").pop())==null?void 0:p.replace(/\.vue$/i,""))??f}function D(f){var k;if(!f||f==="unknown")return;const p=hs();p&&((k=window.top)==null||k.postMessage({type:"observatory:open-in-editor",file:f},p))}function F(f){return f.path.join(" / ")}function Q(f){return f<1?"<1ms":`${f.toFixed(1)}ms`}function W(f){return`+${(f/1e3).toFixed(2)}s`}return(f,p)=>(S(),T("div",Td,[i("div",Md,[i("div",Ed,[i("button",{class:se({active:o.value==="count"}),onClick:p[0]||(p[0]=k=>o.value="count")},"render count",2),i("button",{class:se({active:o.value==="time"}),onClick:p[1]||(p[1]=k=>o.value="time")},"render time",2)]),i("div",Od,[p[7]||(p[7]=i("span",{class:"muted text-sm"},"threshold",-1)),Lt(i("input",{"onUpdate:modelValue":p[2]||(p[2]=k=>c.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,Ad),[[Yt,c.value,void 0,{number:!0}]]),i("span",Id,b(c.value)+b(o.value==="count"?"+ renders":"ms+"),1)]),i("button",{class:se({active:v.value}),onClick:p[3]||(p[3]=k=>v.value=!v.value)},"hot only",2),Lt(i("select",{"onUpdate:modelValue":p[4]||(p[4]=k=>l.value=k),class:"route-select mono text-sm",title:"Filter by route"},[p[8]||(p[8]=i("option",{value:""},"all routes",-1)),(S(!0),T(ae,null,be(Ts.value,k=>(S(),T("option",{key:k,value:k},b(k),9,Pd))),128))],512),[[$a,l.value]]),i("button",{class:se({active:d.value}),style:{"margin-left":"auto"},onClick:K},b(d.value?"unfreeze":"freeze snapshot"),3)]),i("div",Fd,[i("div",Ld,[p[9]||(p[9]=i("div",{class:"stat-label"},"components",-1)),i("div",Nd,b(Re.value.length),1)]),i("div",Rd,[p[10]||(p[10]=i("div",{class:"stat-label"},"total renders",-1)),i("div",jd,b(Gn.value),1)]),i("div",Dd,[p[11]||(p[11]=i("div",{class:"stat-label"},"hot",-1)),i("div",Hd,b(u.value),1)]),i("div",Vd,[p[12]||(p[12]=i("div",{class:"stat-label"},"avg time",-1)),i("div",Ud,b(h.value)+"ms",1)])]),i("div",Bd,[i("aside",Kd,[p[13]||(p[13]=i("div",{class:"panel-title"},"apps",-1)),(S(!0),T(ae,null,be(jt.value,k=>(S(),T("button",{key:k.id,class:se(["root-item",{active:y.value===k.id}]),onClick:q=>A(k.root)},[i("div",zd,[i("span",qd,b(k.label),1),i("span",Jd,b(k.root.label),1)]),i("span",Gd,b(k.meta),1)],10,Wd))),128)),jt.value.length?te("",!0):(S(),T("div",Yd,"no apps match"))]),i("section",Qd,[i("div",Xd,[i("input",{value:g.value,class:"search-input mono",placeholder:"Find components...",onInput:P},null,40,Zd)]),i("div",ef,[i("div",tf,[(S(!0),T(ae,null,be($t.value,k=>{var q;return S(),Ot(xt(t),{key:k.id,node:k,mode:o.value,threshold:c.value,selected:(q=ee.value)==null?void 0:q.id,"expanded-ids":x.value,onSelect:$,onToggle:L},null,8,["node","mode","threshold","selected","expanded-ids"])}),128))]),$t.value.length?te("",!0):(S(),T("div",sf,b(xt(n)?"No render activity recorded yet.":"Waiting for connection to the Nuxt app…"),1))])]),i("aside",nf,[ee.value?(S(),T(ae,{key:0},[i("div",of,[i("span",lf,b(ee.value.label),1),i("button",{onClick:p[5]||(p[5]=k=>M.value=null)},"×")]),i("div",rf,[i("span",af,b(ee.value.rerenders+ee.value.mountCount)+" render"+b(ee.value.rerenders+ee.value.mountCount!==1?"s":""),1),i("span",cf,b(ee.value.mountCount)+" mount"+b(ee.value.mountCount!==1?"s":""),1),ee.value.rerenders?(S(),T("span",uf,b(ee.value.rerenders)+" re-render"+b(ee.value.rerenders!==1?"s":""),1)):te("",!0),ee.value.isPersistent?(S(),T("span",df,"persistent")):te("",!0),ee.value.isHydrationMount?(S(),T("span",ff,"hydrated")):te("",!0),i("span",pf,b(ee.value.avgMs.toFixed(1))+"ms avg",1),i("span",{class:se(["detail-pill mono",{hot:m(ee.value)}])},b(m(ee.value)?"hot":"cool"),3)]),p[29]||(p[29]=i("div",{class:"section-label"},"identity",-1)),i("div",hf,[p[14]||(p[14]=i("span",{class:"muted text-sm"},"label",-1)),i("span",vf,b(ee.value.label),1),p[15]||(p[15]=i("span",{class:"muted text-sm"},"path",-1)),i("span",mf,b(F(ee.value)),1),p[16]||(p[16]=i("span",{class:"muted text-sm"},"file",-1)),i("span",gf,[Me(b(ee.value.file)+" ",1),ee.value.file&&ee.value.file!=="unknown"?(S(),T("button",{key:0,class:"jump-btn",title:"Open in editor",onClick:p[6]||(p[6]=k=>D(ee.value.file))}," open ↗ ")):te("",!0)]),p[17]||(p[17]=i("span",{class:"muted text-sm"},"file name",-1)),i("span",_f,b(V(ee.value.file)),1),p[18]||(p[18]=i("span",{class:"muted text-sm"},"parent",-1)),i("span",bf,b(ee.value.parentLabel??"none"),1),p[19]||(p[19]=i("span",{class:"muted text-sm"},"children",-1)),i("span",yf,b(ee.value.children.length),1)]),p[30]||(p[30]=i("div",{class:"section-label"},"rendering",-1)),i("div",xf,[p[20]||(p[20]=i("span",{class:"muted text-sm"},"total renders",-1)),i("span",wf,b(ee.value.rerenders+ee.value.mountCount),1),p[21]||(p[21]=i("span",{class:"muted text-sm"},"re-renders",-1)),i("span",$f,b(ee.value.rerenders),1),p[22]||(p[22]=i("span",{class:"muted text-sm"},"mounts",-1)),i("span",Cf,b(ee.value.mountCount),1),p[23]||(p[23]=i("span",{class:"muted text-sm"},"persistent",-1)),i("span",{class:"mono text-sm",style:Ce({color:ee.value.isPersistent?"var(--amber)":"inherit"})},b(ee.value.isPersistent?"yes — survives navigation":"no"),5),p[24]||(p[24]=i("span",{class:"muted text-sm"},"hydration mount",-1)),i("span",kf,b(ee.value.isHydrationMount?"yes — SSR hydrated":"no"),1),p[25]||(p[25]=i("span",{class:"muted text-sm"},"avg render time",-1)),i("span",Sf,b(ee.value.avgMs.toFixed(1))+"ms",1),p[26]||(p[26]=i("span",{class:"muted text-sm"},"threshold",-1)),i("span",Tf,b(c.value)+b(o.value==="count"?"+ renders":"ms+"),1),p[27]||(p[27]=i("span",{class:"muted text-sm"},"mode",-1)),i("span",Mf,b(o.value==="count"?"re-render count":"render time"),1)]),p[31]||(p[31]=i("div",{class:"section-label"},"triggers",-1)),(S(!0),T(ae,null,be(ee.value.triggers,k=>(S(),T("div",{key:k,class:"trigger-item mono text-sm"},b(k),1))),128)),ee.value.triggers.length?te("",!0):(S(),T("div",Ef,"no triggers recorded")),i("div",Of,[p[28]||(p[28]=Me(" render timeline ",-1)),i("span",Af," ("+b(ee.value.timeline.length)+") ",1)]),ee.value.timeline.length?(S(),T("div",Pf,[(S(!0),T(ae,null,be([...ee.value.timeline].reverse().slice(0,30),(k,q)=>(S(),T("div",{key:q,class:"timeline-row"},[i("span",{class:se(["timeline-kind mono",k.kind])},b(k.kind),3),i("span",Ff,b(W(k.t)),1),i("span",Lf,b(Q(k.durationMs)),1),k.triggerKey?(S(),T("span",Nf,b(k.triggerKey),1)):te("",!0),i("span",Rf,b(k.route),1)]))),128)),ee.value.timeline.length>30?(S(),T("div",jf," … "+b(ee.value.timeline.length-30)+" earlier events ",1)):te("",!0)])):(S(),T("div",If,"no timeline events yet"))],64)):(S(),T("div",Df,"click a component to inspect"))])])]))}}),Vf=Xt(Hf,[["__scopeId","data-v-6dbeb710"]]),Uf={class:"timeline-root"},Bf={class:"stats-row"},Kf={class:"stat-card"},Wf={class:"stat-val"},zf={class:"stat-card"},qf={class:"stat-val",style:{color:"var(--purple)"}},Jf={class:"stat-card"},Gf={class:"stat-val",style:{color:"var(--red)"}},Yf={class:"stat-card"},Qf={class:"stat-val"},Xf={class:"toolbar"},Zf={class:"filter-group"},ep={class:"content-area"},tp={class:"data-table"},sp=["onClick"],np={class:"mono",style:{"font-size":"11px","font-weight":"500"}},op={class:"mono",style:{"font-size":"11px",color:"var(--text2)"}},lp={class:"muted",style:{"font-size":"11px"}},ip={class:"bar-cell"},rp={class:"bar-track"},ap={key:0},cp={colspan:"6",style:{"text-align":"center",color:"var(--text3)",padding:"24px"}},up={key:0,class:"detail-panel"},dp={class:"panel-header"},fp={class:"panel-title"},pp={class:"panel-section"},hp={class:"panel-row"},vp={class:"panel-row"},mp={class:"panel-row"},gp={class:"panel-val mono"},_p={key:0,class:"panel-row"},bp={class:"panel-val mono"},yp={class:"panel-section"},xp={class:"panel-row"},wp={class:"panel-val mono"},$p={class:"panel-row"},Cp={class:"panel-val mono"},kp={class:"panel-row"},Sp={class:"panel-val mono",style:{"font-weight":"500"}},Tp={class:"panel-section"},Mp={class:"panel-row"},Ep={class:"panel-row"},Op={key:0,class:"cancel-notice"},Ap={key:1,class:"active-notice"},Ip=Nt({__name:"TransitionTimeline",setup(e){const{transitions:t,connected:s}=Ss(),n=re("all"),o=re(""),l=re(null),r=ie(()=>{let y=[...t.value];if(o.value){const x=o.value.toLowerCase();y=y.filter(N=>N.transitionName.toLowerCase().includes(x)||N.parentComponent.toLowerCase().includes(x))}return n.value==="cancelled"?y=y.filter(x=>x.cancelled||x.phase==="interrupted"):n.value==="active"?y=y.filter(x=>x.phase==="entering"||x.phase==="leaving"):n.value==="completed"&&(y=y.filter(x=>x.phase==="entered"||x.phase==="left")),y.sort((x,N)=>{const J=x.endTime??x.startTime;return(N.endTime??N.startTime)-J})}),a=ie(()=>({total:t.value.length,active:t.value.filter(y=>y.phase==="entering"||y.phase==="leaving").length,cancelled:t.value.filter(y=>y.cancelled||y.phase==="interrupted").length,avgMs:(()=>{const y=t.value.filter(x=>x.durationMs!==void 0);return y.length?Math.round(y.reduce((x,N)=>x+(N.durationMs??0),0)/y.length):0})()})),c=ie(()=>{const y=r.value;if(!y.length)return[];const x=y.reduce((Y,B)=>Math.min(Y,B.startTime),y[0].startTime),N=y.reduce((Y,B)=>Math.max(Y,B.endTime??B.startTime+400),0),J=Math.max(N-x,1);return y.map(Y=>({left:(Y.startTime-x)/J*100,width:((Y.endTime??Y.startTime+80)-Y.startTime)/J*100}))});function v(y){return y==="entering"||y==="leaving"?"#7f77dd":y==="entered"?"#1d9e75":y==="left"?"#378add":y==="enter-cancelled"||y==="leave-cancelled"?"#e24b4a":y==="interrupted"?"#e09a3a":"#888"}function d(y){return y==="entering"||y==="leaving"?"badge-purple":y==="entered"||y==="left"?"badge-ok":y.includes("cancelled")?"badge-err":y==="interrupted"?"badge-warn":"badge-gray"}function g(y){return y.appear?"✦ appear":y.direction==="enter"?"→ enter":"← leave"}function M(y){return y.appear?"var(--amber)":y.direction==="enter"?"var(--teal)":"var(--blue)"}return(y,x)=>(S(),T("div",Uf,[i("div",Bf,[i("div",Kf,[i("div",Wf,b(a.value.total),1),x[6]||(x[6]=i("div",{class:"stat-label"},"total",-1))]),i("div",zf,[i("div",qf,b(a.value.active),1),x[7]||(x[7]=i("div",{class:"stat-label"},"active",-1))]),i("div",Jf,[i("div",Gf,b(a.value.cancelled),1),x[8]||(x[8]=i("div",{class:"stat-label"},"cancelled",-1))]),i("div",Yf,[i("div",Qf,[Me(b(a.value.avgMs)+" ",1),x[9]||(x[9]=i("span",{class:"stat-unit"},"ms",-1))]),x[10]||(x[10]=i("div",{class:"stat-label"},"avg duration",-1))])]),i("div",Xf,[Lt(i("input",{"onUpdate:modelValue":x[0]||(x[0]=N=>o.value=N),type:"search",placeholder:"filter by name or component…",class:"search-input"},null,512),[[Yt,o.value]]),i("div",Zf,[i("button",{class:se({active:n.value==="all"}),onClick:x[1]||(x[1]=N=>n.value="all")},"All",2),i("button",{class:se({active:n.value==="active"}),onClick:x[2]||(x[2]=N=>n.value="active")},"Active",2),i("button",{class:se({active:n.value==="completed"}),onClick:x[3]||(x[3]=N=>n.value="completed")},"Completed",2),i("button",{class:se({active:n.value==="cancelled","danger-active":n.value==="cancelled"}),onClick:x[4]||(x[4]=N=>n.value="cancelled")}," Cancelled ",2)])]),i("div",ep,[i("div",{class:se(["table-pane",{"has-panel":l.value}])},[i("table",tp,[x[11]||(x[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(ae,null,be(r.value,(N,J)=>{var Y,B,I;return S(),T("tr",{key:N.id,class:se({selected:((Y=l.value)==null?void 0:Y.id)===N.id}),onClick:E=>{var R;return l.value=((R=l.value)==null?void 0:R.id)===N.id?null:N}},[i("td",null,[i("span",np,b(N.transitionName),1)]),i("td",null,[i("span",{class:"mono",style:Ce([{"font-size":"11px"},{color:M(N)}])},b(g(N)),5)]),i("td",null,[i("span",{class:se(["badge",d(N.phase)])},b(N.phase),3)]),i("td",op,b(N.durationMs!==void 0?N.durationMs+"ms":"—"),1),i("td",lp,b(N.parentComponent),1),i("td",ip,[i("div",rp,[i("div",{class:"bar-fill",style:Ce({left:((B=c.value[J])==null?void 0:B.left)+"%",width:Math.max(((I=c.value[J])==null?void 0:I.width)??1,1)+"%",background:v(N.phase),opacity:N.phase==="entering"||N.phase==="leaving"?"0.55":"1"})},null,4)])])],10,sp)}),128)),r.value.length?te("",!0):(S(),T("tr",ap,[i("td",cp,b(xt(s)?"No transitions recorded yet — trigger one on the page.":"Waiting for connection to the Nuxt app…"),1)]))])])],2),ke(On,{name:"panel-slide"},{default:Ds(()=>[l.value?(S(),T("aside",up,[i("div",dp,[i("span",fp,b(l.value.transitionName),1),i("button",{class:"close-btn",onClick:x[5]||(x[5]=N=>l.value=null)},"✕")]),i("div",pp,[i("div",hp,[x[12]||(x[12]=i("span",{class:"panel-key"},"Direction",-1)),i("span",{class:"panel-val",style:Ce({color:M(l.value)})},b(g(l.value)),5)]),i("div",vp,[x[13]||(x[13]=i("span",{class:"panel-key"},"Phase",-1)),i("span",{class:se(["badge",d(l.value.phase)])},b(l.value.phase),3)]),i("div",mp,[x[14]||(x[14]=i("span",{class:"panel-key"},"Component",-1)),i("span",gp,b(l.value.parentComponent),1)]),l.value.mode?(S(),T("div",_p,[x[15]||(x[15]=i("span",{class:"panel-key"},"Mode",-1)),i("span",bp,b(l.value.mode),1)])):te("",!0)]),i("div",yp,[x[19]||(x[19]=i("div",{class:"panel-section-title"},"Timing",-1)),i("div",xp,[x[16]||(x[16]=i("span",{class:"panel-key"},"Start",-1)),i("span",wp,b(l.value.startTime.toFixed(2))+"ms",1)]),i("div",$p,[x[17]||(x[17]=i("span",{class:"panel-key"},"End",-1)),i("span",Cp,b(l.value.endTime!==void 0?l.value.endTime.toFixed(2)+"ms":"—"),1)]),i("div",kp,[x[18]||(x[18]=i("span",{class:"panel-key"},"Duration",-1)),i("span",Sp,b(l.value.durationMs!==void 0?l.value.durationMs+"ms":l.value.phase==="interrupted"?"interrupted":"in progress"),1)])]),i("div",Tp,[x[22]||(x[22]=i("div",{class:"panel-section-title"},"Flags",-1)),i("div",Mp,[x[20]||(x[20]=i("span",{class:"panel-key"},"Appear",-1)),i("span",{class:"panel-val",style:Ce({color:l.value.appear?"var(--amber)":"var(--text3)"})},b(l.value.appear?"yes":"no"),5)]),i("div",Ep,[x[21]||(x[21]=i("span",{class:"panel-key"},"Cancelled",-1)),i("span",{class:"panel-val",style:Ce({color:l.value.cancelled?"var(--red)":"var(--text3)"})},b(l.value.cancelled?"yes":"no"),5)])]),l.value.cancelled?(S(),T("div",Op,[...x[23]||(x[23]=[Me(" 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),Me(" / ",-1),i("code",null,"onLeaveCancelled",-1),Me(" . ",-1)])])):te("",!0),l.value.phase==="entering"||l.value.phase==="leaving"?(S(),T("div",Ap,[...x[24]||(x[24]=[Me(" Transition is currently in progress. If it stays in this state longer than expected, the ",-1),i("code",null,"done()",-1),Me(" callback may not be getting called (JS-mode transition stall). ",-1)])])):te("",!0)])):te("",!0)]),_:1})])]))}}),Pp=Xt(Ip,[["__scopeId","data-v-da869dac"]]),Fp={id:"app-root"},Lp={class:"tabbar"},Np=["onClick"],Rp={class:"tab-icon"},jp={class:"tab-content"},Dp=Nt({__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=re(t[s]??"fetch"),o=[{id:"fetch",label:"useFetch",icon:"⬡"},{id:"provide",label:"provide/inject",icon:"⬡"},{id:"composable",label:"Composables",icon:"⬡"},{id:"heatmap",label:"Heatmap",icon:"⬡"},{id:"transitions",label:"Transitions",icon:"⬡"}];return(l,r)=>(S(),T("div",Fp,[i("nav",Lp,[r[0]||(r[0]=i("div",{class:"tabbar-brand"},"observatory",-1)),(S(),T(ae,null,be(o,a=>i("button",{key:a.id,class:se(["tab-btn",{active:n.value===a.id}]),onClick:c=>n.value=a.id},[i("span",Rp,b(a.icon),1),Me(" "+b(a.label),1)],10,Np)),64))]),i("main",jp,[n.value==="fetch"?(S(),Ot(wc,{key:0})):n.value==="provide"?(S(),Ot(ru,{key:1})):n.value==="composable"?(S(),Ot(Sd,{key:2})):n.value==="heatmap"?(S(),Ot(Vf,{key:3})):n.value==="transitions"?(S(),Ot(Pp,{key:4})):te("",!0)])]))}}),Hp=Xt(Dp,[["__scopeId","data-v-08e3ddb5"]]);Ma(Hp).mount("#app");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.view[data-v-8c1465c0]{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:12px;gap:10px}.stats-row[data-v-8c1465c0]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;flex-shrink:0}.toolbar[data-v-8c1465c0]{display:flex;align-items:center;gap:6px;flex-shrink:0;flex-wrap:wrap}.split[data-v-8c1465c0]{display:flex;gap:12px;flex:1;overflow:hidden;min-height:0}.table-wrap[data-v-8c1465c0]{flex:1;overflow:auto;border:.5px solid var(--border);border-radius:var(--radius-lg)}.detail-panel[data-v-8c1465c0]{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-8c1465c0]{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-8c1465c0]{display:flex;align-items:center;justify-content:space-between}.meta-grid[data-v-8c1465c0]{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:11px}.section-label[data-v-8c1465c0]{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.4px;color:var(--text3);margin-top:6px}.payload-box[data-v-8c1465c0]{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-8c1465c0]{flex-shrink:0;background:var(--bg3);border:.5px solid var(--border);border-radius:var(--radius-lg);padding:10px 12px}.waterfall-header[data-v-8c1465c0]{display:flex;align-items:center;justify-content:space-between;gap:8px}.waterfall-body[data-v-8c1465c0]{margin-top:6px}.wf-row[data-v-8c1465c0]{display:flex;align-items:center;gap:8px;margin-bottom:4px}.wf-track[data-v-8c1465c0]{flex:1;position:relative;height:8px;background:var(--bg2);border-radius:2px;overflow:hidden}.wf-bar[data-v-8c1465c0]{position:absolute;top:0;height:100%;border-radius:2px;opacity:.8}.view[data-v-0c07531b]{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:12px;gap:10px}.toolbar[data-v-0c07531b]{display:flex;align-items:center;gap:6px;flex-shrink:0;flex-wrap:wrap}.split[data-v-0c07531b]{display:flex;gap:12px;flex:1;overflow:hidden;min-height:0}.graph-area[data-v-0c07531b]{flex:1;overflow:auto;border:.5px solid var(--border);border-radius:var(--radius-lg);padding:12px;background:var(--bg3)}.legend[data-v-0c07531b]{display:flex;align-items:center;gap:12px;font-size:11px;color:var(--text2);margin-bottom:12px}.canvas-stage[data-v-0c07531b]{display:flex;justify-content:center;align-items:flex-start;min-width:100%}.dot[data-v-0c07531b]{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:2px}.canvas-wrap[data-v-0c07531b]{position:relative}.edges-svg[data-v-0c07531b]{position:absolute;top:0;left:0;pointer-events:none}.edge[data-v-0c07531b]{stroke:var(--border);stroke-width:1.5}.graph-node[data-v-0c07531b]{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-0c07531b]:hover{border-color:var(--text3)}.graph-node.is-selected[data-v-0c07531b]{border-color:var(--node-color);background:color-mix(in srgb,var(--node-color) 8%,transparent)}.node-dot[data-v-0c07531b]{width:7px;height:7px;border-radius:50%;flex-shrink:0}.node-label[data-v-0c07531b]{font-size:11px;flex:1;overflow:hidden;text-overflow:ellipsis}.badge-xs[data-v-0c07531b]{font-size:9px;padding:1px 4px}.detail-panel[data-v-0c07531b]{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-0c07531b]{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-0c07531b]{display:flex;align-items:center;justify-content:center;min-height:180px;color:var(--text3);font-size:12px}.detail-header[data-v-0c07531b]{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.section-label[data-v-0c07531b]{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.4px;color:var(--text3);margin:8px 0 5px}.detail-section[data-v-0c07531b]{display:flex;flex-direction:column;min-height:0}.detail-list[data-v-0c07531b]{display:flex;flex-direction:column;gap:3px;overflow:auto;max-height:220px;padding-right:2px}.provide-row[data-v-0c07531b]{display:flex;flex-direction:column;gap:4px;padding:5px 8px;background:var(--bg2);border-radius:var(--radius);margin-bottom:3px}.row-warning[data-v-0c07531b]{font-size:11px;color:var(--amber);padding:2px 0}.row-consumers[data-v-0c07531b]{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:2px 0}.consumer-chip[data-v-0c07531b]{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-0c07531b]{font-size:10px;padding:1px 6px;border-radius:4px}.scope-global[data-v-0c07531b]{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-0c07531b]{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-0c07531b]{background:var(--bg3);border:.5px solid var(--border);color:var(--text3)}.row-main[data-v-0c07531b]{display:flex;align-items:center;gap:8px;min-width:0}.row-key[data-v-0c07531b]{min-width:100px;color:var(--text2);flex-shrink:0}.row-value-preview[data-v-0c07531b]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-toggle[data-v-0c07531b]{padding:2px 8px;font-size:10px}.value-box[data-v-0c07531b]{font-family:var(--mono);font-size:11px;color:var(--text2);background:#0000001a;border-radius:var(--radius);padding:8px 10px;white-space:pre-wrap;word-break:break-word;overflow:auto;max-height:180px}.inject-row[data-v-0c07531b]{display:flex;align-items:center;gap:8px;padding:5px 8px;background:var(--bg2);border-radius:var(--radius);margin-bottom:3px}.row-from[data-v-0c07531b]{margin-left:auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inject-miss[data-v-0c07531b]{background:#e24b4a14}.jump-btn[data-v-0c07531b]{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-0c07531b]:hover{border-color:var(--teal);color:var(--teal);background:color-mix(in srgb,var(--teal) 8%,transparent)}.view[data-v-47ca40b0]{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:12px;gap:10px}.stats-row[data-v-47ca40b0]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;flex-shrink:0}.toolbar[data-v-47ca40b0]{display:flex;align-items:center;gap:6px;flex-shrink:0;flex-wrap:wrap}.clear-btn[data-v-47ca40b0]{color:var(--text3);border-color:var(--border);flex-shrink:0}.clear-btn[data-v-47ca40b0]:hover{color:var(--red);border-color:var(--red);background:transparent}.list[data-v-47ca40b0]{flex:1;overflow:auto;display:flex;flex-direction:column;gap:5px;min-height:0}.comp-card[data-v-47ca40b0]{background:var(--bg3);border:.5px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;flex-shrink:0}.comp-card[data-v-47ca40b0]:hover{border-color:var(--text3)}.comp-card.leak[data-v-47ca40b0]{border-left:2px solid var(--red);border-radius:0 var(--radius-lg) var(--radius-lg) 0}.comp-card.expanded[data-v-47ca40b0]{border-color:var(--purple)}.comp-header[data-v-47ca40b0]{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;gap:8px}.comp-identity[data-v-47ca40b0]{display:flex;align-items:baseline;gap:6px;min-width:0;flex:1}.comp-name[data-v-47ca40b0]{font-size:12px;font-weight:500;color:var(--text);flex-shrink:0}.comp-file[data-v-47ca40b0]{font-size:11px;color:var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.comp-meta[data-v-47ca40b0]{display:flex;align-items:center;gap:5px;flex-shrink:0}.refs-preview[data-v-47ca40b0]{display:flex;flex-wrap:wrap;gap:4px;padding:0 12px 8px;align-items:center}.ref-chip[data-v-47ca40b0]{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-47ca40b0]{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-47ca40b0]{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-47ca40b0]{color:var(--text2);flex-shrink:0}.ref-chip-val[data-v-47ca40b0]{color:var(--teal);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.comp-detail[data-v-47ca40b0]{padding:4px 12px 12px;border-top:.5px solid var(--border);display:flex;flex-direction:column;gap:3px}.leak-banner[data-v-47ca40b0]{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-47ca40b0]{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-47ca40b0]{display:flex;align-items:center;gap:8px;padding:3px 0}.ref-key[data-v-47ca40b0]{min-width:90px;color:var(--text2);flex-shrink:0}.ref-val[data-v-47ca40b0]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--teal)}.lc-row[data-v-47ca40b0]{display:flex;align-items:center;gap:8px;padding:2px 0}.lc-dot[data-v-47ca40b0]{width:6px;height:6px;border-radius:50%;flex-shrink:0}.ref-chip--shared[data-v-47ca40b0]{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-47ca40b0]{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--amber);flex-shrink:0;margin-left:1px}.global-banner[data-v-47ca40b0]{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-47ca40b0]{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--amber);flex-shrink:0;margin-top:3px}.badge-amber[data-v-47ca40b0]{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-47ca40b0]{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-47ca40b0]{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-47ca40b0]:last-child{border-bottom:none}.history-time[data-v-47ca40b0]{min-width:52px;color:var(--text3);flex-shrink:0}.history-key[data-v-47ca40b0]{min-width:80px;color:var(--text2);flex-shrink:0}.history-val[data-v-47ca40b0]{color:var(--amber);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.stat-card[data-v-47ca40b0]{background:var(--bg3);border:.5px solid var(--border);border-radius:var(--radius-lg);padding:10px 14px}.stat-label[data-v-47ca40b0]{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.4px;color:var(--text3);margin-bottom:4px}.stat-val[data-v-47ca40b0]{font-size:22px;font-weight:500;line-height:1;color:var(--text)}.ref-key--clickable[data-v-47ca40b0]{cursor:pointer;text-decoration:underline dotted var(--text3);text-underline-offset:2px}.ref-key--clickable[data-v-47ca40b0]:hover{color:var(--purple);text-decoration-color:var(--purple)}.edit-btn[data-v-47ca40b0]{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-47ca40b0]:hover{border-color:var(--purple);color:var(--purple);background:color-mix(in srgb,var(--purple) 8%,transparent)}.lookup-panel[data-v-47ca40b0]{flex-shrink:0;border:.5px solid var(--border);border-radius:var(--radius-lg);background:var(--bg3);overflow:hidden}.lookup-header[data-v-47ca40b0]{display:flex;align-items:center;gap:6px;padding:7px 12px;border-bottom:.5px solid var(--border);background:var(--bg2)}.lookup-row[data-v-47ca40b0]{display:flex;align-items:center;gap:8px;padding:5px 12px;border-bottom:.5px solid var(--border)}.lookup-row[data-v-47ca40b0]:last-child{border-bottom:none}.edit-overlay[data-v-47ca40b0]{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-47ca40b0]{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-47ca40b0]{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text2);margin-bottom:2px}.edit-textarea[data-v-47ca40b0]{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-47ca40b0]:focus{border-color:var(--purple)}.edit-error[data-v-47ca40b0]{color:var(--red);font-family:var(--mono)}.edit-actions[data-v-47ca40b0]{display:flex;gap:6px;padding-top:4px}.slide-enter-active[data-v-47ca40b0],.slide-leave-active[data-v-47ca40b0]{transition:opacity .15s,transform .15s}.slide-enter-from[data-v-47ca40b0],.slide-leave-to[data-v-47ca40b0]{opacity:0;transform:translateY(6px)}.fade-enter-active[data-v-47ca40b0],.fade-leave-active[data-v-47ca40b0]{transition:opacity .15s}.fade-enter-from[data-v-47ca40b0],.fade-leave-to[data-v-47ca40b0]{opacity:0}.jump-btn[data-v-47ca40b0]{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-47ca40b0]:hover{border-color:var(--teal);color:var(--teal);background:color-mix(in srgb,var(--teal) 8%,transparent)}.view[data-v-6dbeb710]{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:12px;gap:10px}.controls[data-v-6dbeb710]{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap}.mode-group[data-v-6dbeb710]{display:flex;gap:2px}.threshold-group[data-v-6dbeb710]{display:flex;align-items:center;gap:6px}.stats-row[data-v-6dbeb710]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;flex-shrink:0}.stat-sub[data-v-6dbeb710]{margin-top:4px;font-size:11px;color:var(--text3)}.inspector[data-v-6dbeb710]{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-6dbeb710],.tree-panel[data-v-6dbeb710],.detail-panel[data-v-6dbeb710]{border:.5px solid var(--border);border-radius:var(--radius-lg);background:var(--bg3);min-height:0}.roots-panel[data-v-6dbeb710],.detail-panel[data-v-6dbeb710]{display:flex;flex-direction:column;overflow:auto;padding:12px;gap:8px}.panel-title[data-v-6dbeb710]{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.4px;color:var(--text3)}.root-item[data-v-6dbeb710]{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-6dbeb710]{border-color:var(--teal);background:color-mix(in srgb,var(--teal) 16%,var(--bg2))}.root-label[data-v-6dbeb710]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.root-copy[data-v-6dbeb710]{display:flex;flex-direction:column;min-width:0}.root-sub[data-v-6dbeb710]{font-size:11px}.root-meta[data-v-6dbeb710]{color:var(--text3);font-size:11px}.tree-panel[data-v-6dbeb710]{display:flex;flex-direction:column;overflow:hidden}.tree-toolbar[data-v-6dbeb710]{padding:12px;border-bottom:.5px solid var(--border)}.search-input[data-v-6dbeb710]{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg2);color:var(--text)}.tree-frame[data-v-6dbeb710]{flex:1;min-height:0;overflow:auto;padding:12px}[data-v-6dbeb710] .tree-canvas{display:inline-block;min-width:100%;width:max-content}[data-v-6dbeb710] .tree-node{margin-bottom:4px}[data-v-6dbeb710] .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-6dbeb710] .tree-row:hover{background:var(--bg2)}[data-v-6dbeb710] .tree-row.selected{background:color-mix(in srgb,var(--teal) 12%,var(--bg2));border-color:var(--teal)}[data-v-6dbeb710] .tree-row.hot{box-shadow:inset 2px 0 0 var(--red)}[data-v-6dbeb710] .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-6dbeb710] .tree-toggle:disabled{cursor:default}[data-v-6dbeb710] .tree-toggle.empty{opacity:0}[data-v-6dbeb710] .tree-rail{display:block;width:2px;height:14px;border-radius:999px;background:color-mix(in srgb,var(--border) 75%,transparent)}[data-v-6dbeb710] .tree-copy{display:flex;align-items:center;min-width:0;gap:6px;overflow:hidden}[data-v-6dbeb710] .tree-name{font-size:12px;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis}[data-v-6dbeb710] .tree-badges{display:flex;gap:6px;flex-shrink:0;overflow:hidden}[data-v-6dbeb710] .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-6dbeb710] .tree-metrics{display:flex;align-items:center;min-width:92px;justify-content:flex-end;flex-shrink:0;gap:6px}[data-v-6dbeb710] .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-6dbeb710] .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-6dbeb710] .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-6dbeb710] .tree-children{margin-left:7px;padding-left:11px;border-left:1px solid color-mix(in srgb,var(--border) 72%,transparent)}.detail-empty[data-v-6dbeb710]{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text3);font-size:12px}.detail-header[data-v-6dbeb710]{display:flex;align-items:center;justify-content:space-between}.meta-grid[data-v-6dbeb710]{display:grid;grid-template-columns:auto 1fr;gap:4px 12px}.detail-pill-row[data-v-6dbeb710]{display:flex;flex-wrap:wrap;gap:6px}.detail-pill[data-v-6dbeb710]{border:1px solid var(--border);border-radius:999px;padding:4px 8px;background:var(--bg2);font-size:11px}.detail-pill.hot[data-v-6dbeb710]{border-color:color-mix(in srgb,var(--red) 50%,var(--border));color:var(--red)}.detail-pill.persistent[data-v-6dbeb710]{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-6dbeb710]{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-6dbeb710]{color:var(--text3);border-color:var(--border)}.section-label[data-v-6dbeb710]{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-6dbeb710]{background:var(--bg2);border-radius:var(--radius);padding:4px 8px;margin-bottom:3px;color:var(--text2)}[data-v-6dbeb710] .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-6dbeb710] .tree-row:hover .tree-jump-btn,[data-v-6dbeb710] .tree-row.selected .tree-jump-btn{display:inline-flex}[data-v-6dbeb710] .tree-jump-btn:hover{color:var(--teal)}.jump-btn[data-v-6dbeb710]{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-6dbeb710]:hover{border-color:var(--teal);color:var(--teal);background:color-mix(in srgb,var(--teal) 8%,transparent)}.route-select[data-v-6dbeb710]{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-6dbeb710]{display:flex;flex-direction:column;gap:1px;background:var(--bg2);border-radius:var(--radius);padding:4px 8px;max-height:200px;overflow-y:auto}.timeline-row[data-v-6dbeb710]{display:flex;align-items:center;gap:6px;padding:2px 0;font-size:11px;border-bottom:.5px solid var(--border);min-width:0}.timeline-row[data-v-6dbeb710]:last-child{border-bottom:none}.timeline-kind[data-v-6dbeb710]{flex-shrink:0;font-size:10px;font-weight:500;min-width:40px}.timeline-kind.mount[data-v-6dbeb710]{color:var(--teal)}.timeline-kind.update[data-v-6dbeb710]{color:var(--amber)}.timeline-time[data-v-6dbeb710]{flex-shrink:0;min-width:52px;color:var(--text3)}.timeline-dur[data-v-6dbeb710]{flex-shrink:0;min-width:38px;color:var(--text2)}.timeline-trigger[data-v-6dbeb710]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text3);flex:1;min-width:0}.timeline-route[data-v-6dbeb710]{flex-shrink:0;color:var(--text3);font-size:10px}@media(max-width:1180px){.inspector[data-v-6dbeb710]{grid-template-columns:minmax(200px,240px) minmax(0,1fr)}.detail-panel[data-v-6dbeb710]{grid-column:1 / -1;max-height:220px}}.timeline-root[data-v-da869dac]{display:flex;flex-direction:column;height:100%;overflow:hidden}.stats-row[data-v-da869dac]{display:flex;gap:10px;padding:12px 14px 0;flex-shrink:0}.stat-card[data-v-da869dac]{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-da869dac]{font-size:20px;font-weight:600;font-family:var(--mono);line-height:1.1}.stat-unit[data-v-da869dac]{font-size:12px;opacity:.6;margin-left:1px}.stat-label[data-v-da869dac]{font-size:10px;color:var(--text3);margin-top:2px;text-transform:uppercase;letter-spacing:.4px}.toolbar[data-v-da869dac]{display:flex;align-items:center;gap:8px;padding:10px 14px;flex-shrink:0;border-bottom:.5px solid var(--border)}.search-input[data-v-da869dac]{flex:1;max-width:260px}.filter-group[data-v-da869dac]{display:flex;gap:4px}.content-area[data-v-da869dac]{display:flex;flex:1;overflow:hidden;min-height:0}.table-pane[data-v-da869dac]{flex:1;overflow:hidden auto;min-width:0}.bar-cell[data-v-da869dac]{width:200px;padding:4px 8px}.bar-track[data-v-da869dac]{position:relative;height:8px;background:var(--bg2);border-radius:4px;overflow:hidden}.bar-fill[data-v-da869dac]{position:absolute;top:0;height:100%;min-width:3px;border-radius:4px;transition:width .15s}.detail-panel[data-v-da869dac]{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-da869dac]{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-da869dac]{font-family:var(--mono);font-size:13px;font-weight:500}.close-btn[data-v-da869dac]{border:none;background:transparent;color:var(--text3);font-size:11px;padding:2px 6px;cursor:pointer}.panel-section[data-v-da869dac]{padding:10px 14px 6px;border-bottom:.5px solid var(--border)}.panel-section-title[data-v-da869dac]{font-size:10px;font-weight:500;color:var(--text3);text-transform:uppercase;letter-spacing:.4px;margin-bottom:8px}.panel-row[data-v-da869dac]{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:3px 0;font-size:12px}.panel-key[data-v-da869dac]{color:var(--text3);flex-shrink:0}.panel-val[data-v-da869dac]{color:var(--text);text-align:right;word-break:break-all}.cancel-notice[data-v-da869dac],.active-notice[data-v-da869dac]{margin:10px 14px 0;font-size:11px;line-height:1.6;padding:8px 10px;border-radius:var(--radius)}.cancel-notice[data-v-da869dac]{background:#e24b4a1a;color:var(--red);border:.5px solid rgb(226 75 74 / 30%)}.active-notice[data-v-da869dac]{background:#7f77dd1a;color:var(--purple);border:.5px solid rgb(127 119 221 / 30%)}code[data-v-da869dac]{font-family:var(--mono);font-size:10px;background:#00000026;padding:1px 4px;border-radius:3px}.panel-slide-enter-active[data-v-da869dac],.panel-slide-leave-active[data-v-da869dac]{transition:transform .18s ease,opacity .18s ease}.panel-slide-enter-from[data-v-da869dac],.panel-slide-leave-to[data-v-da869dac]{transform:translate(12px);opacity:0}#app-root[data-v-08e3ddb5]{display:flex;flex-direction:column;height:100vh;overflow:hidden}.tabbar[data-v-08e3ddb5]{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-08e3ddb5]{font-size:11px;font-weight:500;color:var(--purple);letter-spacing:.5px;margin-right:12px;padding-bottom:8px}.tab-btn[data-v-08e3ddb5]{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-08e3ddb5]:hover{color:var(--text);background:transparent}.tab-btn.active[data-v-08e3ddb5]{color:var(--purple);border-bottom-color:var(--purple)}.tab-icon[data-v-08e3ddb5]{font-size:10px;opacity:.6}.tab-content[data-v-08e3ddb5]{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}
|