nuxt-devtools-observatory 0.1.12 → 0.1.14

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/LICENSE ADDED
@@ -0,0 +1,9 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Victor Neves
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
+
7
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/README.md CHANGED
@@ -5,7 +5,7 @@ Nuxt DevTools extension providing five missing observability features:
5
5
  - **useFetch Dashboard** — central view of all async data calls, cache keys, waterfall timeline
6
6
  - **provide/inject Graph** — interactive tree showing the full injection topology with missing-provider detection
7
7
  - **Composable Tracker** — live view of active composables, their reactive state, and leak detection
8
- - **Render Heatmap** — component tree colour-coded by render frequency and duration
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
 
11
11
  ## Installation
@@ -17,18 +17,18 @@ pnpm add nuxt-devtools-observatory
17
17
  ```ts
18
18
  // nuxt.config.ts
19
19
  export default defineNuxtConfig({
20
- modules: ['nuxt-devtools-observatory'],
21
-
22
- observatory: {
23
- fetchDashboard: true,
24
- provideInjectGraph: true,
25
- composableTracker: true,
26
- renderHeatmap: true,
27
- transitionTracker: true,
28
- heatmapThreshold: 5, // highlight components with 5+ renders
29
- },
30
-
31
- devtools: { enabled: true },
20
+ modules: ['nuxt-devtools-observatory'],
21
+
22
+ observatory: {
23
+ fetchDashboard: true,
24
+ provideInjectGraph: true,
25
+ composableTracker: true,
26
+ renderHeatmap: true,
27
+ transitionTracker: true,
28
+ heatmapThreshold: 5, // highlight components with 5+ renders
29
+ },
30
+
31
+ devtools: { enabled: true },
32
32
  })
33
33
  ```
34
34
 
@@ -45,7 +45,7 @@ transforms are skipped entirely — zero runtime overhead.
45
45
 
46
46
  ### useFetch Dashboard
47
47
 
48
- ![useFetch Dashboard](docs/screenshots/fetch-dashboard.png)
48
+ [![useFetch Dashboard](./docs/screenshots/fetch-dashboard.png)](./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,16 +58,29 @@ client over the HMR WebSocket.
58
58
 
59
59
  ### provide/inject Graph
60
60
 
61
- ![provide/inject Graph](docs/screenshots/provide-inject-graph.png)
61
+ [![provide/inject Graph](./docs/screenshots/provide-inject-graph.png)](./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
66
  Any `inject()` that resolves to `undefined` is flagged immediately.
67
67
 
68
+ **Current state:** The graph shows the full provider/injector topology and highlights
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:**
73
+
74
+ - No grouping or count badge when multiple components share the same key
75
+ - No inline value preview before expanding
76
+ - No scope label (global / layout / component-scoped) on provider nodes
77
+ - No warning when a child component overrides a key already provided by an ancestor
78
+ - No search or filter by key or component name
79
+ - No jump-to-component shortcut from a graph node
80
+
68
81
  ### Composable Tracker
69
82
 
70
- ![Composable Tracker](docs/screenshots/composable-tracker.png)
83
+ [![Composable Tracker](./docs/screenshots/composable-tracker.png)](./docs/screenshots/composable-tracker.png)
71
84
 
72
85
  A Vite plugin detects all `useXxx()` calls matching Vue's naming convention and
73
86
  wraps them with a tracking proxy that:
@@ -78,18 +91,75 @@ wraps them with a tracking proxy that:
78
91
  3. Snapshots returned `ref` and `computed` values for the live state panel
79
92
  4. Flags any watcher or interval still active after `onUnmounted` fires as a **leak**
80
93
 
94
+ **Current state:** `ref` and `computed` snapshots, watcher tracking, interval tracking,
95
+ and leak detection are all working. The panel shows active composable instances with
96
+ their current reactive values.
97
+
98
+ **Known gaps:**
99
+
100
+ - `reactive()` objects are not yet included in state snapshots
101
+ - No per-instance parent component/page link in the UI (tracking data exists but isn't surfaced)
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
107
+
81
108
  ### Render Heatmap
82
109
 
83
- ![Render Heatmap](docs/screenshots/render-heatmap.png)
110
+ [![Render Heatmap](./docs/screenshots/render-heatmap.png)](./docs/screenshots/render-heatmap.png)
84
111
 
85
112
  Uses Vue's built-in `renderTriggered` mixin hook and `app.config.performance = true`.
86
- A `PerformanceObserver` reads Vue's native `vue-component-render-start/end` marks for
87
- accurate duration measurement. Component bounding boxes are captured via `$el.getBoundingClientRect()`
88
- for the DOM overlay mode.
113
+ Accurate duration is measured by bracketing each `beforeMount`/`mounted` and
114
+ `beforeUpdate`/`updated` cycle with `performance.now()` timestamps.
115
+ Component bounding boxes are captured via `$el.getBoundingClientRect()` for the DOM
116
+ overlay mode.
117
+
118
+ Each `RenderEntry` carries a `timeline: RenderEvent[]` (capped at 100 events, newest
119
+ last). Every mount and update cycle appends an event recording:
120
+
121
+ - `kind` — `mount` or `update`
122
+ - `t` — `performance.now()` timestamp
123
+ - `durationMs` — measured render duration
124
+ - `triggerKey` — the reactive dep that caused the update (when `renderTriggered` fired
125
+ before `updated`), formatted as `type: key`
126
+ - `route` — the route path at the time of the render
127
+
128
+ A `route` field on each entry records which route the component was first seen on.
129
+ `setRoute()` is called by the plugin on every `router.afterEach` so new entries and
130
+ timeline events are always stamped with the correct path.
131
+
132
+ **Persistent component fix:** layout and persistent components (those that survive
133
+ `reset()` and are flagged `isPersistent: true`) previously inflated render counts on
134
+ every navigation because their `beforeMount`/`mounted` cycle fired again as Vue
135
+ re-attached them to the new page. The registry now detects this case and skips both
136
+ the duration recording and the timeline event for the navigation re-attach, while still
137
+ counting and recording genuine reactive updates that fire after navigation.
138
+
139
+ The panel provides:
140
+
141
+ - **Route filter** — a dropdown in the toolbar listing every route seen across all
142
+ component entries and timeline events; selecting one prunes the component tree to
143
+ only show components that were active on that route
144
+ - **Render timeline** — in the detail panel, the last 30 events for the selected
145
+ component showing kind, relative timestamp, duration, trigger key, and route
146
+ - **Trigger keys** — surfaced both in the existing triggers list and inline in each
147
+ timeline event
148
+ - **Persistent and hydration badges** — `isPersistent` and `isHydrationMount` shown
149
+ as pills in the tree row and the detail panel
150
+ - **Jump to editor** — every tree row shows an `↗` button on hover, and the detail
151
+ panel's identity section has an `open ↗` button; both call Vite's built-in
152
+ `/__open-in-editor` endpoint to open the component's source file in the configured
153
+ editor
154
+
155
+ **Known gaps:**
156
+
157
+ - The route filter shows components active on a route but cannot hide persistent
158
+ components (they appear on every route by definition)
89
159
 
90
160
  ### Transition Tracker
91
161
 
92
- ![Transition Tracker](docs/screenshots/transition-tracker.png)
162
+ [![Transition Tracker](./docs/screenshots/transition-tracker.png)](./docs/screenshots/transition-tracker.png)
93
163
 
94
164
  A Vite plugin intercepts `import ... from 'vue'` in user code and serves a virtual
95
165
  proxy module that overrides the `Transition` export with an instrumented wrapper.
@@ -100,13 +170,13 @@ entirely.
100
170
  The wrapper records every lifecycle phase without interfering with Vue's internal
101
171
  CSS/JS timing detection:
102
172
 
103
- | Hook | Phase recorded |
104
- |---|---|
105
- | `onBeforeEnter` | `entering` |
106
- | `onAfterEnter` | `entered` |
173
+ | Hook | Phase recorded |
174
+ | ------------------ | ----------------- |
175
+ | `onBeforeEnter` | `entering` |
176
+ | `onAfterEnter` | `entered` |
107
177
  | `onEnterCancelled` | `enter-cancelled` |
108
- | `onBeforeLeave` | `leaving` |
109
- | `onAfterLeave` | `left` |
178
+ | `onBeforeLeave` | `leaving` |
179
+ | `onAfterLeave` | `left` |
110
180
  | `onLeaveCancelled` | `leave-cancelled` |
111
181
 
112
182
  > `onEnter` / `onLeave` are intentionally **not** wrapped — Vue inspects their
@@ -130,6 +200,26 @@ const { data } = useFetch('/api/sensitive')
130
200
  const result = useMyComposable()
131
201
  ```
132
202
 
203
+ ## Roadmap
204
+
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
+ ### Composable Tracker
219
+
220
+ - [ ] Reverse lookup by object identity rather than key name only
221
+ - [ ] Deep search inside nested `reactive` object properties
222
+
133
223
  ## Development
134
224
 
135
225
  ```bash
@@ -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=[],nt=()=>{},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:"),xe=Object.assign,Ln=(e,t)=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)},ti=Object.prototype.hasOwnProperty,fe=(e,t)=>ti.call(e,t),X=Array.isArray,Wt=e=>xs(e)==="[object Map]",Js=e=>xs(e)==="[object Set]",Yn=e=>xs(e)==="[object Date]",oe=e=>typeof e=="function",be=e=>typeof e=="string",ot=e=>typeof e=="symbol",pe=e=>e!==null&&typeof e=="object",jo=e=>(pe(e)||oe(e))&&oe(e.then)&&oe(e.catch),Do=Object.prototype.toString,xs=e=>Do.call(e),si=e=>xs(e).slice(8,-1),Ho=e=>xs(e)==="[object Object]",Nn=e=>be(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,qe=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)}`:""),st=(e,t)=>!Object.is(e,t),Os=(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=be(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 we(e){if(X(e)){const t={};for(let s=0;s<e.length;s++){const n=e[s],o=be(n)?ci(n):we(n);if(o)for(const l in o)t[l]=o[l]}return t}else if(be(e)||pe(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 ne(e){let t="";if(be(e))t=e;else if(X(e))for(let s=0;s<e.length;s++){const n=ne(e[s]);n&&(t+=n+" ")}else if(pe(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=ws(e[n],t[n]);return s}function ws(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=ot(e),n=ot(t),s||n)return e===t;if(s=X(e),n=X(t),s||n)return s&&n?fi(e,t):!1;if(s=pe(e),n=pe(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||!ws(e[r],t[r]))return!1}}return String(e)===String(t)}function pi(e,t){return e.findIndex(s=>ws(s,t))}const Ko=e=>!!(e&&e.__v_isRef===!0),_=e=>be(e)?e:e==null?"":X(e)||pe(e)&&(e.toString===Do||!oe(e.toString))?Ko(e)?_(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))}:ot(t)?an(t):pe(t)&&!X(t)&&!Ho(t)?String(t):t,an=(e,t="")=>{var s;return ot(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 ge;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=ge,s=Je;ge=this,Je=!0;try{return this.fn()}finally{Yo(this),ge=t,Je=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 Fn(){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===hs)||(e.globalVersion=hs,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!_n(e))))return;e.flags|=2;const t=e.dep,s=ge,n=Je;ge=e,Je=!0;try{Go(e);const o=e.fn(e._value);(t.version===0||st(o,e._value))&&(e.flags|=128,e._value=o,t.version++)}catch(o){throw t.version++,o}finally{ge=s,Je=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 Je=!0;const Xo=[];function dt(){Xo.push(Je),Je=!1}function ft(){const e=Xo.pop();Je=e===void 0?!0:e}function Xn(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const s=ge;ge=void 0;try{t()}finally{ge=s}}}let hs=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(!ge||!Je||ge===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==ge)s=this.activeLink=new gi(ge,this),ge.deps?(s.prevDep=ge.depsTail,ge.depsTail.nextDep=s,ge.depsTail=s):ge.deps=ge.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=ge.depsTail,s.nextDep=void 0,ge.depsTail.nextDep=s,ge.depsTail=s,ge.deps===s&&(ge.deps=n)}return s}trigger(t){this.version++,hs++,this.notify(t)}notify(t){Fn();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(""),vs=Symbol("");function Se(e,t,s){if(Je&&ge){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 ct(e,t,s,n,o,l){const r=bn.get(e);if(!r){hs++;return}const a=c=>{c&&c.trigger()};if(Fn(),t==="clear")r.forEach(a);else{const c=X(e),m=c&&Nn(s);if(c&&s==="length"){const d=Number(n);r.forEach((g,M)=>{(M==="length"||M===vs||!ot(M)&&M>=d)&&a(g)})}else switch((s!==void 0||r.has(void 0))&&a(r.get(s)),m&&a(r.get(vs)),t){case"add":c?m&&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=ue(e);return t===e?t:(Se(t,"iterate",vs),ze(e)?t:t.map(Ge))}function Xs(e){return Se(e=ue(e),"iterate",vs),e}function et(e,t){return pt(e)?Gt(Lt(e)?Ge(t):t):Ge(t)}const _i={__proto__:null,[Symbol.iterator](){return un(this,Symbol.iterator,e=>et(this,e))},concat(...e){return Dt(this).concat(...e.map(t=>X(t)?Dt(t):t))},entries(){return un(this,"entries",e=>(e[1]=et(this,e[1]),e))},every(e,t){return lt(this,"every",e,t,void 0,arguments)},filter(e,t){return lt(this,"filter",e,t,s=>s.map(n=>et(this,n)),arguments)},find(e,t){return lt(this,"find",e,t,s=>et(this,s),arguments)},findIndex(e,t){return lt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return lt(this,"findLast",e,t,s=>et(this,s),arguments)},findLastIndex(e,t){return lt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return lt(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 lt(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 lt(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=>et(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 lt(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?Ge(g):g}let m=s;r!==e&&(a?m=function(g,M){return s.call(this,et(e,g),M,e)}:s.length>2&&(m=function(g,M){return s.call(this,g,M,e)}));const d=c.call(r,m,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(m,d,g){return a&&(a=!1,m=et(e,m)),s.call(this,m,et(e,d),g,e)}):s.length>3&&(r=function(m,d,g){return s.call(this,m,d,g,e)}));const c=o[t](r,...n);return a?et(e,c):c}function dn(e,t,s){const n=ue(e);Se(n,"iterate",vs);const o=n[t](...s);return(o===-1||o===!1)&&Bn(s[0])?(s[0]=ue(s[0]),n[t](...s)):o}function ts(e,t,s=[]){dt(),Fn();const n=ue(e)[t].apply(e,s);return Rn(),ft(),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(ot));function xi(e){ot(e)||(e=String(e));const t=ue(this);return Se(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=X(t);if(!o){let c;if(r&&(c=_i[s]))return c;if(s==="hasOwnProperty")return xi}const a=Reflect.get(t,s,Me(t)?t:n);if((ot(s)?el.has(s):yi(s))||(o||Se(t,"get",s),l))return a;if(Me(a)){const c=r&&Nn(s)?a:a.value;return o&&pe(c)?wn(c):c}return pe(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=X(t)&&Nn(s);if(!this._isShallow){const m=pt(l);if(!ze(n)&&!pt(n)&&(l=ue(l),n=ue(n)),!r&&Me(l)&&!Me(n))return m||(l.value=n),!0}const a=r?Number(s)<t.length:fe(t,s),c=Reflect.set(t,s,n,Me(t)?t:o);return t===ue(o)&&(a?st(n,l)&&ct(t,"set",s,n):ct(t,"add",s,n)),c}deleteProperty(t,s){const n=fe(t,s);t[s];const o=Reflect.deleteProperty(t,s);return o&&n&&ct(t,"delete",s,void 0),o}has(t,s){const n=Reflect.has(t,s);return(!ot(s)||!el.has(s))&&Se(t,"has",s),n}ownKeys(t){return Se(t,"iterate",X(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,Ts=e=>Reflect.getPrototypeOf(e);function Si(e,t,s){return function(...n){const o=this.__v_raw,l=ue(o),r=Wt(l),a=e==="entries"||e===Symbol.iterator&&r,c=e==="keys"&&r,m=o[e](...n),d=s?xn:t?Gt:Ge;return!t&&Se(l,"iterate",c?yn:Pt),xe(Object.create(m),{next(){const{value:g,done:M}=m.next();return M?{value:g,done:M}:{value:a?[d(g[0]),d(g[1])]:d(g),done:M}}})}}function Ms(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=ue(l),a=ue(o);e||(st(o,a)&&Se(r,"get",o),Se(r,"get",a));const{has:c}=Ts(r),m=t?xn:e?Gt:Ge;if(c.call(r,o))return m(l.get(o));if(c.call(r,a))return m(l.get(a));l!==r&&l.get(o)},get size(){const o=this.__v_raw;return!e&&Se(ue(o),"iterate",Pt),o.size},has(o){const l=this.__v_raw,r=ue(l),a=ue(o);return e||(st(o,a)&&Se(r,"has",o),Se(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=ue(a),m=t?xn:e?Gt:Ge;return!e&&Se(c,"iterate",Pt),a.forEach((d,g)=>o.call(l,m(d),m(g),r))}};return xe(s,e?{add:Ms("add"),set:Ms("set"),delete:Ms("delete"),clear:Ms("clear")}:{add(o){const l=ue(this),r=Ts(l),a=ue(o),c=!t&&!ze(o)&&!pt(o)?a:o;return r.has.call(l,c)||st(o,c)&&r.has.call(l,o)||st(a,c)&&r.has.call(l,a)||(l.add(c),ct(l,"add",c,c)),this},set(o,l){!t&&!ze(l)&&!pt(l)&&(l=ue(l));const r=ue(this),{has:a,get:c}=Ts(r);let m=a.call(r,o);m||(o=ue(o),m=a.call(r,o));const d=c.call(r,o);return r.set(o,l),m?st(l,d)&&ct(r,"set",o,l):ct(r,"add",o,l),this},delete(o){const l=ue(this),{has:r,get:a}=Ts(l);let c=r.call(l,o);c||(o=ue(o),c=r.call(l,o)),a&&a.call(l,o);const m=l.delete(o);return c&&ct(l,"delete",o,void 0),m},clear(){const o=ue(this),l=o.size!==0,r=o.clear();return l&&ct(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(fe(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 pt(e)?e:Un(e,!1,$i,Mi,nl)}function Li(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(!pe(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 Lt(e){return pt(e)?Lt(e.__v_raw):!!(e&&e.__v_isReactive)}function pt(e){return!!(e&&e.__v_isReadonly)}function ze(e){return!!(e&&e.__v_isShallow)}function Bn(e){return e?!!e.__v_raw:!1}function ue(e){const t=e&&e.__v_raw;return t?ue(t):e}function Ni(e){return!fe(e,"__v_skip")&&Object.isExtensible(e)&&Uo(e,"__v_skip",!0),e}const Ge=e=>pe(e)?Vn(e):e,Gt=e=>pe(e)?wn(e):e;function Me(e){return e?e.__v_isRef===!0:!1}function ae(e){return Fi(e,!1)}function Fi(e,t){return Me(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:ue(t),this._value=s?t:Ge(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)||pt(t);t=n?t:ue(t),st(t,s)&&(this._rawValue=t,this._value=n?t:Ge(t),this.dep.trigger())}}function yt(e){return Me(e)?e.value:e}const ji={get:(e,t,s)=>t==="__v_raw"?e:yt(Reflect.get(e,t,s)),set:(e,t,s,n)=>{const o=e[t];return Me(o)&&!Me(s)?(o.value=s,!0):Reflect.set(e,t,s,n)}};function il(e){return Lt(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=hs-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&ge!==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 oe(e)?n=e:(n=e.get,o=e.set),new Di(n,o,s)}const Es={},Fs=new WeakMap;let Et;function Vi(e,t=!1,s=Et){if(s){let n=Fs.get(s);n||Fs.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,m=E=>o?E:ze(E)||o===!1||o===0?ut(E,1):ut(E);let d,g,M,y,b=!1,A=!1;if(Me(e)?(g=()=>e.value,b=ze(e)):Lt(e)?(g=()=>m(e),b=!0):X(e)?(A=!0,b=e.some(E=>Lt(E)||ze(E)),g=()=>e.map(E=>{if(Me(E))return E.value;if(Lt(E))return m(E);if(oe(E))return c?c(E,2):E()})):oe(e)?t?g=c?()=>c(e,2):e:g=()=>{if(M){dt();try{M()}finally{ft()}}const E=Et;Et=d;try{return c?c(e,3,[y]):e(y)}finally{Et=E}}:g=nt,t&&o){const E=g,R=o===!0?1/0:o;g=()=>ut(E(),R)}const Q=vi(),K=()=>{d.stop(),Q&&Q.active&&Ln(Q.effects,d)};if(l&&t){const E=t;t=(...R)=>{E(...R),K()}}let G=A?new Array(e.length).fill(Es):Es;const F=E=>{if(!(!(d.flags&1)||!d.dirty&&!E))if(t){const R=d.run();if(o||b||(A?R.some((ie,H)=>st(ie,G[H])):st(R,G))){M&&M();const ie=Et;Et=d;try{const H=[R,G===Es?void 0:A&&G[0]===Es?[]:G,y];G=R,c?c(t,3,H):t(...H)}finally{Et=ie}}}else d.run()};return a&&a(F),d=new zo(g),d.scheduler=r?()=>r(F,!1):F,y=E=>Vi(E,!1,d),M=d.onStop=()=>{const E=Fs.get(d);if(E){if(c)c(E,4);else for(const R of E)R();Fs.delete(d)}},t?n?F(!0):G=d.run():r?r(F.bind(null,!0),!0):d.run(),K.pause=d.pause.bind(d),K.resume=d.resume.bind(d),K.stop=K,K}function ut(e,t=1/0,s){if(t<=0||!pe(e)||e.__v_skip||(s=s||new Map,(s.get(e)||0)>=t))return e;if(s.set(e,t),t--,Me(e))ut(e.value,t,s);else if(X(e))for(let n=0;n<e.length;n++)ut(e[n],t,s);else if(Js(e)||Wt(e))e.forEach(n=>{ut(n,t,s)});else if(Ho(e)){for(const n in e)ut(e[n],t,s);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&ut(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 $s(e,t,s,n){try{return n?e(...n):e()}catch(o){Zs(o,t,s)}}function Ye(e,t,s,n){if(oe(e)){const o=$s(e,t,s,n);return o&&jo(o)&&o.catch(l=>{Zs(l,t,s)}),o}if(X(e)){const o=[];for(let l=0;l<e.length;l++)o.push(Ye(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,m=`https://vuejs.org/error-reference/#runtime-${s}`;for(;a;){const d=a.ec;if(d){for(let g=0;g<d.length;g++)if(d[g](e,c,m)===!1)return}a=a.parent}if(l){dt(),$s(l,null,10,[e,c,m]),ft();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 Xe=-1;const zt=[];let _t=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=Xe+1,s=Pe.length;for(;t<s;){const n=t+s>>>1,o=Pe[n],l=ms(o);l<e||l===e&&o.flags&2?t=n+1:s=n}return t}function Kn(e){if(!(e.flags&1)){const t=ms(e),s=Pe[Pe.length-1];!s||!(e.flags&2)&&t>=ms(s)?Pe.push(e):Pe.splice(Ki(t),0,e),e.flags|=1,cl()}}function cl(){Rs||(Rs=rl.then(dl))}function Wi(e){X(e)?zt.push(...e):_t&&e.id===-1?_t.splice(Bt+1,0,e):e.flags&1||(zt.push(e),e.flags|=1),cl()}function eo(e,t,s=Xe+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)=>ms(s)-ms(n));if(zt.length=0,_t){_t.push(...t);return}for(_t=t,Bt=0;Bt<_t.length;Bt++){const s=_t[Bt];s.flags&4&&(s.flags&=-2),s.flags&8||s(),s.flags&=-2}_t=null,Bt=0}}const ms=e=>e.id==null?e.flags&2?-1:1/0:e.id;function dl(e){try{for(Xe=0;Xe<Pe.length;Xe++){const t=Pe[Xe];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),$s(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;Xe<Pe.length;Xe++){const t=Pe[Xe];t&&(t.flags&=-2)}Xe=-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 Nt(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&&(oe(l)&&(l={mounted:l,updated:l}),l.deep&&ut(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&&(dt(),Ye(c,s,8,[e.el,a,e,t]),ft())}}function zi(e,t){if(Ne){let s=Ne.provides;const n=Ne.parent&&Ne.parent.provides;n===s&&(s=Ne.provides=Object.create(n)),s[e]=t}}function As(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&&oe(t)?t.call(n&&n.proxy):t}}const qi=Symbol.for("v-scx"),Ji=()=>As(qi);function bt(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=xe({},s),c=t&&n||!t&&l!=="post";let m;if(bs){if(l==="sync"){const y=Ji();m=y.__watcherHandles||(y.__watcherHandles=[])}else if(!c){const y=()=>{};return y.stop=nt,y.resume=nt,y.pause=nt,y}}const d=Ne;a.call=(y,b,A)=>Ye(y,d,b,A);let g=!1;l==="post"?a.scheduler=y=>{De(y,d&&d.suspense)}:l!=="sync"&&(g=!0,a.scheduler=(y,b)=>{b?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 bs&&(m?m.push(M):c&&M()),M}function Gi(e,t,s){const n=this.proxy,o=be(e)?e.includes(".")?hl(n,e):()=>n[e]:e.bind(n,n);let l;oe(t)?l=t:(l=t.handler,s=t);const r=Cs(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,Ze=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=ue(e),{mode:a}=r;if(n.isLeaving)return fn(l);const c=to(l);if(!c)return fn(l);let m=$n(c,r,n,s,g=>m=g);c.type!==Le&&gs(c,m);let d=s.subTree&&to(s.subTree);if(d&&d.type!==Le&&!At(d,c)&&gl(s).type!==Le){let g=$n(d,r,n,s);if(gs(d,g),a==="out-in"&&c.type!==Le)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!==Le?g.delayLeave=(M,y,b)=>{const A=bl(n,d);A[String(d.key)]=d,M[Ze]=()=>{y(),M[Ze]=void 0,delete m.delayedLeave,d=void 0},m.delayedLeave=()=>{b(),delete m.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!==Le){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:m,onAfterEnter:d,onEnterCancelled:g,onBeforeLeave:M,onLeave:y,onAfterLeave:b,onLeaveCancelled:A,onBeforeAppear:Q,onAppear:K,onAfterAppear:G,onAppearCancelled:F}=t,E=String(e.key),R=bl(s,e),ie=($,T)=>{$&&Ye($,n,9,T)},H=($,T)=>{const C=T[1];ie($,T),X($)?$.every(h=>h.length<=1)&&C():$.length<=1&&C()},O={mode:r,persisted:a,beforeEnter($){let T=c;if(!s.isMounted)if(l)T=Q||c;else return;$[Ze]&&$[Ze](!0);const C=R[E];C&&At(e,C)&&C.el[Ze]&&C.el[Ze](),ie(T,[$])},enter($){if(R[E]===e)return;let T=m,C=d,h=g;if(!s.isMounted)if(l)T=K||m,C=G||d,h=F||g;else return;let W=!1;$[ss]=he=>{W||(W=!0,he?ie(h,[$]):ie(C,[$]),O.delayedLeave&&O.delayedLeave(),$[ss]=void 0)};const ee=$[ss].bind(null,!1);T?H(T,[$,ee]):ee()},leave($,T){const C=String(e.key);if($[ss]&&$[ss](!0),s.isUnmounting)return T();ie(M,[$]);let h=!1;$[Ze]=ee=>{h||(h=!0,T(),ee?ie(A,[$]):ie(b,[$]),$[Ze]=void 0,R[C]===e&&delete R[C])};const W=$[Ze].bind(null,!1);R[C]=e,y?H(y,[$,W]):W()},clone($){const T=$n($,t,s,n,o);return o&&o(T),T}};return O}function fn(e){if(en(e))return e=xt(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&&oe(s.default))return s.default()}}function gs(e,t){e.shapeFlag&6&&e.component?(e.transition=t,gs(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===ce?(r.patchFlag&128&&o++,n=n.concat(yl(r.children,t,a))):(t||r.type!==Le)&&n.push(a!=null?xt(r,{key:a}):r)}if(o>1)for(let l=0;l<n.length;l++)n[l].patchFlag=-2;return n}function Ft(e,t){return oe(e)?xe({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(X(e)){e.forEach((A,Q)=>us(A,t&&(X(t)?t[Q]: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,m=t&&t.r,d=a.refs===ve?a.refs={}:a.refs,g=a.setupState,M=ue(g),y=g===ve?Ro:A=>so(d,A)?!1:fe(M,A),b=(A,Q)=>!(Q&&so(d,Q));if(m!=null&&m!==c){if(no(t),be(m))d[m]=null,y(m)&&(g[m]=null);else if(Me(m)){const A=t;b(m,A.k)&&(m.value=null),A.k&&(d[A.k]=null)}}if(oe(c))$s(c,a,12,[r,d]);else{const A=be(c),Q=Me(c);if(A||Q){const K=()=>{if(e.f){const G=A?y(c)?g[c]:d[c]:b()||!e.k?c.value:d[e.k];if(o)X(G)&&Ln(G,l);else if(X(G))G.includes(l)||G.push(l);else if(A)d[c]=[l],y(c)&&(g[c]=d[c]);else{const F=[l];b(c,e.k)&&(c.value=F),e.k&&(d[e.k]=F)}}else A?(d[c]=r,y(c)&&(g[c]=r)):Q&&(b(c,e.k)&&(c.value=r),e.k&&(d[e.k]=r))};if(r){const G=()=>{K(),Hs.delete(e)};G.id=-1,Hs.set(e,G),De(G,s)}else no(e),K()}}}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=Ne){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(()=>{Ln(n[t],o)},s)}function tn(e,t,s=Ne,n=!1){if(s){const o=s[e]||(s[e]=[]),l=t.__weh||(t.__weh=(...r)=>{dt();const a=Cs(s),c=Ye(t,s,e,r);return a(),ft(),c});return n?o.unshift(l):o.push(l),l}}const ht=e=>(t,s=Ne)=>{(!bs||e==="sp")&&tn(e,(...n)=>t(...n),s)},nr=ht("bm"),$l=ht("m"),or=ht("bu"),lr=ht("u"),Cl=ht("bum"),kl=ht("um"),ir=ht("sp"),rr=ht("rtg"),ar=ht("rtc");function cr(e,t=Ne){tn("ec",e,t)}const ur=Symbol.for("v-ndc");function _e(e,t,s,n){let o;const l=s,r=X(e);if(r||be(e)){const a=r&&Lt(e);let c=!1,m=!1;a&&(c=!ze(e),m=pt(e),e=Xs(e)),o=new Array(e.length);for(let d=0,g=e.length;d<g;d++)o[d]=t(c?m?Gt(Ge(e[d])):Ge(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(pe(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,m=a.length;c<m;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=xe(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&&fe(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&&fe(o,t))return r[t]=2,o[t];if(fe(l,t))return r[t]=3,l[t];if(s!==ve&&fe(s,t))return r[t]=4,s[t];kn&&(r[t]=0)}}const m=fs[t];let d,g;if(m)return t==="$attrs"&&Se(e.attrs,"get",""),m(e);if((d=a.__cssModules)&&(d=d[t]))return d;if(s!==ve&&fe(s,t))return r[t]=4,s[t];if(g=c.config.globalProperties,fe(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&&fe(n,t)?(n[t]=s,!0):fe(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]!=="$"&&fe(e,a)||pn(t,a)||fe(l,a)||fe(n,a)||fe(fs,a)||fe(o.config.globalProperties,a)||(c=r.__cssModules)&&c[a])},defineProperty(e,t,s){return s.get!=null?e._.accessCache[t]=0:fe(s,"value")&&this.set(e,t,s.value,null),Reflect.defineProperty(e,t,s)}};function oo(e){return X(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:m,created:d,beforeMount:g,mounted:M,beforeUpdate:y,updated:b,activated:A,deactivated:Q,beforeDestroy:K,beforeUnmount:G,destroyed:F,unmounted:E,render:R,renderTracked:ie,renderTriggered:H,errorCaptured:O,serverPrefetch:$,expose:T,inheritAttrs:C,components:h,directives:W,filters:ee}=t;if(m&&pr(m,n,null),r)for(const Z in r){const le=r[Z];oe(le)&&(n[Z]=le.bind(s))}if(o){const Z=o.call(s,s);pe(Z)&&(e.data=Vn(Z))}if(kn=!0,l)for(const Z in l){const le=l[Z],me=oe(le)?le.bind(s,s):oe(le.get)?le.get.bind(s,s):nt,wt=!oe(le)&&oe(le.set)?le.set.bind(s):nt,Ce=re({get:me,set:wt});Object.defineProperty(n,Z,{enumerable:!0,configurable:!0,get:()=>Ce.value,set:Ee=>Ce.value=Ee})}if(a)for(const Z in a)Sl(a[Z],n,s,Z);if(c){const Z=oe(c)?c.call(s):c;Reflect.ownKeys(Z).forEach(le=>{zi(le,Z[le])})}d&&lo(d,e,"c");function D(Z,le){X(le)?le.forEach(me=>Z(me.bind(s))):le&&Z(le.bind(s))}if(D(nr,g),D($l,M),D(or,y),D(lr,b),D(er,A),D(tr,Q),D(cr,O),D(ar,ie),D(rr,H),D(Cl,G),D(kl,E),D(ir,$),X(T))if(T.length){const Z=e.exposed||(e.exposed={});T.forEach(le=>{Object.defineProperty(Z,le,{get:()=>s[le],set:me=>s[le]=me,enumerable:!0})})}else e.exposed||(e.exposed={});R&&e.render===nt&&(e.render=R),C!=null&&(e.inheritAttrs=C),h&&(e.components=h),W&&(e.directives=W),$&&xl(e)}function pr(e,t,s=nt){X(e)&&(e=Sn(e));for(const n in e){const o=e[n];let l;pe(o)?"default"in o?l=As(o.from||n,o.default,!0):l=As(o.from||n):l=As(o),Me(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){Ye(X(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(be(e)){const l=t[e];oe(l)&&bt(o,l)}else if(oe(e))bt(o,e.bind(s));else if(pe(e))if(X(e))e.forEach(l=>Sl(l,t,s,n));else{const l=oe(e.handler)?e.handler.bind(s):t[e.handler];oe(l)&&bt(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(m=>Vs(c,m,r,!0)),Vs(c,t,r)),pe(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 xe(oe(e)?e.call(this,this):e,oe(t)?t.call(this,this):t)}:t:e}function vr(e,t){return is(Sn(e),Sn(t))}function Sn(e){if(X(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?xe(Object.create(null),e,t):t}function ro(e,t){return e?X(e)&&X(t)?[...new Set([...e,...t])]:xe(Object.create(null),oo(e),oo(t??{})):t}function mr(e,t){if(!e)return t;if(!t)return e;const s=xe(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){oe(n)||(n=xe({},n)),o!=null&&!pe(o)&&(o=null);const l=Ml(),r=new WeakSet,a=[];let c=!1;const m=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&&oe(d.install)?(r.add(d),d.install(m,...g)):oe(d)&&(r.add(d),d(m,...g))),m},mixin(d){return l.mixins.includes(d)||l.mixins.push(d),m},component(d,g){return g?(l.components[d]=g,m):l.components[d]},directive(d,g){return g?(l.directives[d]=g,m):l.directives[d]},mount(d,g,M){if(!c){const y=m._ceVNode||$e(n,o);return y.appContext=l,M===!0?M="svg":M===!1&&(M=void 0),e(y,d,M),c=!0,m._container=d,d.__vue_app__=m,on(y.component)}},onUnmount(d){a.push(d)},unmount(){c&&(Ye(a,m._instance,16),e(null,m._container),delete m._container.__vue_app__)},provide(d,g){return l.provides[d]=g,m},runWithContext(d){const g=qt;qt=m;try{return d()}finally{qt=g}}};return m}}let qt=null;const br=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${qe(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=>be(d)?d.trim():d)),r.number&&(o=s.map(Ys)));let a,c=n[a=rn(t)]||n[a=rn(qe(t))];!c&&l&&(c=n[a=rn(Rt(t))]),c&&Ye(c,e,6,o);const m=n[a+"Once"];if(m){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,Ye(m,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(!oe(e)){const c=m=>{const d=El(m,t,!0);d&&(a=!0,xe(r,d))};!s&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!l&&!a?(pe(e)&&n.set(e,null),null):(X(l)?l.forEach(c=>r[c]=null):xe(r,l),pe(e)&&n.set(e,r),r)}function sn(e,t){return!e||!qs(t)?!1:(t=t.slice(2).replace(/Once$/,""),fe(e,t[0].toLowerCase()+t.slice(1))||fe(e,Rt(t))||fe(e,t))}function ao(e){const{type:t,vnode:s,proxy:n,withProxy:o,propsOptions:[l],slots:r,attrs:a,emit:c,render:m,renderCache:d,props:g,data:M,setupState:y,ctx:b,inheritAttrs:A}=e,Q=js(e);let K,G;try{if(s.shapeFlag&4){const E=o||n,R=E;K=tt(m.call(R,E,d,g,y,M,b)),G=a}else{const E=t;K=tt(E.length>1?E(g,{attrs:a,slots:r,emit:c}):E(g,null)),G=t.props?a:wr(a)}}catch(E){ps.length=0,Zs(E,e,1),K=$e(Le)}let F=K;if(G&&A!==!1){const E=Object.keys(G),{shapeFlag:R}=F;E.length&&R&7&&(l&&E.some(Pn)&&(G=$r(G,l)),F=xt(F,G,!1,!0))}return s.dirs&&(F=xt(F,null,!1,!0),F.dirs=F.dirs?F.dirs.concat(s.dirs):s.dirs),s.transition&&gs(F,s.transition),K=F,js(Q),K}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,m=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,m):!!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(m,M))return!0}}}else return(o||a)&&(!a||!a.$stable)?!0:n===r?!1:n?r?co(n,r,m):!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"&&pe(n)&&pe(o)?!ws(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),Ll(e,t,o,l);for(const r in e.propsOptions[0])r in o||(o[r]=void 0);s?e.props=n?o:Li(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=ue(o),[c]=e.propsOptions;let m=!1;if((n||r>0)&&!(r&16)){if(r&8){const d=e.vnode.dynamicProps;for(let g=0;g<d.length;g++){let M=d[g];if(sn(e.emitsOptions,M))continue;const y=t[M];if(c)if(fe(l,M))y!==l[M]&&(l[M]=y,m=!0);else{const b=qe(M);o[b]=Tn(c,a,b,y,e,!1)}else y!==l[M]&&(l[M]=y,m=!0)}}}else{Ll(e,t,o,l)&&(m=!0);let d;for(const g in a)(!t||!fe(t,g)&&((d=Rt(g))===g||!fe(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||!fe(t,g))&&(delete l[g],m=!0)}m&&ct(e.attrs,"set","")}function Ll(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 m=t[c];let d;o&&fe(o,d=qe(c))?!l||!l.includes(d)?s[d]=m:(a||(a={}))[d]=m:sn(e.emitsOptions,c)||(!(c in n)||m!==n[c])&&(n[c]=m,r=!0)}if(l){const c=ue(s),m=a||ve;for(let d=0;d<l.length;d++){const g=l[d];s[g]=Tn(o,c,g,m[g],e,!fe(m,g))}}return r}function Tn(e,t,s,n,o,l){const r=e[s];if(r!=null){const a=fe(r,"default");if(a&&n===void 0){const c=r.default;if(r.type!==Function&&!r.skipFactory&&oe(c)){const{propsDefaults:m}=o;if(s in m)n=m[s];else{const d=Cs(o);n=m[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 Nl(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(!oe(e)){const d=g=>{c=!0;const[M,y]=Nl(g,t,!0);xe(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 pe(e)&&n.set(e,Kt),Kt;if(X(l))for(let d=0;d<l.length;d++){const g=qe(l[d]);uo(g)&&(r[g]=ve)}else if(l)for(const d in l){const g=qe(d);if(uo(g)){const M=l[d],y=r[g]=X(M)||oe(M)?{type:M}:xe({},M),b=y.type;let A=!1,Q=!0;if(X(b))for(let K=0;K<b.length;++K){const G=b[K],F=oe(G)&&G.name;if(F==="Boolean"){A=!0;break}else F==="String"&&(Q=!1)}else A=oe(b)&&b.name==="Boolean";y[0]=A,y[1]=Q,(A||fe(y,"default"))&&a.push(g)}}const m=[r,a];return pe(e)&&n.set(e,m),m}function uo(e){return e[0]!=="$"&&!rs(e)}const Wn=e=>e==="_"||e==="_ctx"||e==="$stable",zn=e=>X(e)?e.map(tt):[tt(e)],Er=(e,t,s)=>{if(t._n)return t;const n=Ds((...o)=>zn(t(...o)),s);return n._c=!1,n},Fl=(e,t,s)=>{const n=e._ctx;for(const o in e){if(Wn(o))continue;const l=e[o];if(oe(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)):Fl(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,Fl(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=Fr;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:m,setElementText:d,parentNode:g,nextSibling:M,setScopeId:y=nt,insertStaticContent:b}=e,A=(u,v,x,N=null,I=null,P=null,B=void 0,V=null,j=!!v.dynamicChildren)=>{if(u===v)return;u&&!At(u,v)&&(N=$t(u),Ee(u,I,P,!0),u=null),v.patchFlag===-2&&(j=!1,v.dynamicChildren=null);const{type:L,ref:Y,shapeFlag:z}=v;switch(L){case nn:Q(u,v,x,N);break;case Le:K(u,v,x,N);break;case Is:u==null&&G(v,x,N,B);break;case ce:h(u,v,x,N,I,P,B,V,j);break;default:z&1?R(u,v,x,N,I,P,B,V,j):z&6?W(u,v,x,N,I,P,B,V,j):(z&64||z&128)&&L.process(u,v,x,N,I,P,B,V,j,te)}Y!=null&&I?us(Y,u&&u.ref,P,v||u,!v):Y==null&&u&&u.ref!=null&&us(u.ref,null,P,u,!0)},Q=(u,v,x,N)=>{if(u==null)n(v.el=a(v.children),x,N);else{const I=v.el=u.el;v.children!==u.children&&m(I,v.children)}},K=(u,v,x,N)=>{u==null?n(v.el=c(v.children||""),x,N):v.el=u.el},G=(u,v,x,N)=>{[u.el,u.anchor]=b(u.children,v,x,N,u.el,u.anchor)},F=({el:u,anchor:v},x,N)=>{let I;for(;u&&u!==v;)I=M(u),n(u,x,N),u=I;n(v,x,N)},E=({el:u,anchor:v})=>{let x;for(;u&&u!==v;)x=M(u),o(u),u=x;o(v)},R=(u,v,x,N,I,P,B,V,j)=>{if(v.type==="svg"?B="svg":v.type==="math"&&(B="mathml"),u==null)ie(v,x,N,I,P,B,V,j);else{const L=u.el&&u.el._isVueCE?u.el:null;try{L&&L._beginPatch(),$(u,v,I,P,B,V,j)}finally{L&&L._endPatch()}}},ie=(u,v,x,N,I,P,B,V)=>{let j,L;const{props:Y,shapeFlag:z,transition:f,dirs:p}=u;if(j=u.el=r(u.type,P,Y&&Y.is,Y),z&8?d(j,u.children):z&16&&O(u.children,j,null,N,I,hn(u,P),B,V),p&&kt(u,null,N,"created"),H(j,u,u.scopeId,B,N),Y){for(const J in Y)J!=="value"&&!rs(J)&&l(j,J,null,Y[J],P,N);"value"in Y&&l(j,"value",null,Y.value,P),(L=Y.onVnodeBeforeMount)&&Qe(L,N,u)}p&&kt(u,null,N,"beforeMount");const w=Lr(I,f);w&&f.beforeEnter(j),n(j,v,x),((L=Y&&Y.onVnodeMounted)||w||p)&&De(()=>{L&&Qe(L,N,u),w&&f.enter(j),p&&kt(u,null,N,"mounted")},I)},H=(u,v,x,N,I)=>{if(x&&y(u,x),N)for(let P=0;P<N.length;P++)y(u,N[P]);if(I){let P=I.subTree;if(v===P||Ul(P.type)&&(P.ssContent===v||P.ssFallback===v)){const B=I.vnode;H(u,B,B.scopeId,B.slotScopeIds,I.parent)}}},O=(u,v,x,N,I,P,B,V,j=0)=>{for(let L=j;L<u.length;L++){const Y=u[L]=V?at(u[L]):tt(u[L]);A(null,Y,v,x,N,I,P,B,V)}},$=(u,v,x,N,I,P,B)=>{const V=v.el=u.el;let{patchFlag:j,dynamicChildren:L,dirs:Y}=v;j|=u.patchFlag&16;const z=u.props||ve,f=v.props||ve;let p;if(x&&St(x,!1),(p=f.onVnodeBeforeUpdate)&&Qe(p,x,v,u),Y&&kt(v,u,x,"beforeUpdate"),x&&St(x,!0),(z.innerHTML&&f.innerHTML==null||z.textContent&&f.textContent==null)&&d(V,""),L?T(u.dynamicChildren,L,V,x,N,hn(v,I),P):B||le(u,v,V,null,x,N,hn(v,I),P,!1),j>0){if(j&16)C(V,z,f,x,I);else if(j&2&&z.class!==f.class&&l(V,"class",null,f.class,I),j&4&&l(V,"style",z.style,f.style,I),j&8){const w=v.dynamicProps;for(let J=0;J<w.length;J++){const U=w[J],q=z[U],de=f[U];(de!==q||U==="value")&&l(V,U,q,de,I,x)}}j&1&&u.children!==v.children&&d(V,v.children)}else!B&&L==null&&C(V,z,f,x,I);((p=f.onVnodeUpdated)||Y)&&De(()=>{p&&Qe(p,x,v,u),Y&&kt(v,u,x,"updated")},N)},T=(u,v,x,N,I,P,B)=>{for(let V=0;V<v.length;V++){const j=u[V],L=v[V],Y=j.el&&(j.type===ce||!At(j,L)||j.shapeFlag&198)?g(j.el):x;A(j,L,Y,null,N,I,P,B,!0)}},C=(u,v,x,N,I)=>{if(v!==x){if(v!==ve)for(const P in v)!rs(P)&&!(P in x)&&l(u,P,v[P],null,I,N);for(const P in x){if(rs(P))continue;const B=x[P],V=v[P];B!==V&&P!=="value"&&l(u,P,V,B,I,N)}"value"in x&&l(u,"value",v.value,x.value,I)}},h=(u,v,x,N,I,P,B,V,j)=>{const L=v.el=u?u.el:a(""),Y=v.anchor=u?u.anchor:a("");let{patchFlag:z,dynamicChildren:f,slotScopeIds:p}=v;p&&(V=V?V.concat(p):p),u==null?(n(L,x,N),n(Y,x,N),O(v.children||[],x,Y,I,P,B,V,j)):z>0&&z&64&&f&&u.dynamicChildren&&u.dynamicChildren.length===f.length?(T(u.dynamicChildren,f,x,I,P,B,V),(v.key!=null||I&&v===I.subTree)&&Dl(u,v,!0)):le(u,v,x,Y,I,P,B,V,j)},W=(u,v,x,N,I,P,B,V,j)=>{v.slotScopeIds=V,u==null?v.shapeFlag&512?I.ctx.activate(v,x,N,B,j):ee(v,x,N,I,P,B,j):he(u,v,j)},ee=(u,v,x,N,I,P,B)=>{const V=u.component=Kr(u,N,I);if(en(u)&&(V.ctx.renderer=te),Wr(V,!1,B),V.asyncDep){if(I&&I.registerDep(V,D,B),!u.el){const j=V.subTree=$e(Le);K(null,j,v,x),u.placeholder=j.el}}else D(V,u,v,x,I,P,B)},he=(u,v,x)=>{const N=v.component=u.component;if(Cr(u,v,x))if(N.asyncDep&&!N.asyncResolved){Z(N,v,x);return}else N.next=v,N.update();else v.el=u.el,N.vnode=v},D=(u,v,x,N,I,P,B)=>{const V=()=>{if(u.isMounted){let{next:z,bu:f,u:p,parent:w,vnode:J}=u;{const Be=Hl(u);if(Be){z&&(z.el=J.el,Z(u,z,B)),Be.asyncDep.then(()=>{De(()=>{u.isUnmounted||L()},I)});return}}let U=z,q;St(u,!1),z?(z.el=J.el,Z(u,z,B)):z=J,f&&Os(f),(q=z.props&&z.props.onVnodeBeforeUpdate)&&Qe(q,w,z,J),St(u,!0);const de=ao(u),ye=u.subTree;u.subTree=de,A(ye,de,g(ye.el),$t(ye),u,I,P),z.el=de.el,U===null&&kr(u,de.el),p&&De(p,I),(q=z.props&&z.props.onVnodeUpdated)&&De(()=>Qe(q,w,z,J),I)}else{let z;const{el:f,props:p}=v,{bm:w,m:J,parent:U,root:q,type:de}=u,ye=ds(v);St(u,!1),w&&Os(w),!ye&&(z=p&&p.onVnodeBeforeMount)&&Qe(z,U,v),St(u,!0);{q.ce&&q.ce._hasShadowRoot()&&q.ce._injectChildStyle(de,u.parent?u.parent.type:void 0);const Be=u.subTree=ao(u);A(null,Be,x,N,u,I,P),v.el=Be.el}if(J&&De(J,I),!ye&&(z=p&&p.onVnodeMounted)){const Be=v;De(()=>Qe(z,U,Be),I)}(v.shapeFlag&256||U&&ds(U.vnode)&&U.vnode.shapeFlag&256)&&u.a&&De(u.a,I),u.isMounted=!0,v=x=N=null}};u.scope.on();const j=u.effect=new zo(V);u.scope.off();const L=u.update=j.run.bind(j),Y=u.job=j.runIfDirty.bind(j);Y.i=u,Y.id=u.uid,j.scheduler=()=>Kn(Y),St(u,!0),L()},Z=(u,v,x)=>{v.component=u;const N=u.vnode.props;u.vnode=v,u.next=null,Tr(u,v.props,N,x),Ar(u,v.children,x),dt(),eo(u),ft()},le=(u,v,x,N,I,P,B,V,j=!1)=>{const L=u&&u.children,Y=u?u.shapeFlag:0,z=v.children,{patchFlag:f,shapeFlag:p}=v;if(f>0){if(f&128){wt(L,z,x,N,I,P,B,V,j);return}else if(f&256){me(L,z,x,N,I,P,B,V,j);return}}p&8?(Y&16&&vt(L,I,P),z!==L&&d(x,z)):Y&16?p&16?wt(L,z,x,N,I,P,B,V,j):vt(L,I,P,!0):(Y&8&&d(x,""),p&16&&O(z,x,N,I,P,B,V,j))},me=(u,v,x,N,I,P,B,V,j)=>{u=u||Kt,v=v||Kt;const L=u.length,Y=v.length,z=Math.min(L,Y);let f;for(f=0;f<z;f++){const p=v[f]=j?at(v[f]):tt(v[f]);A(u[f],p,x,null,I,P,B,V,j)}L>Y?vt(u,I,P,!0,!1,z):O(v,x,N,I,P,B,V,j,z)},wt=(u,v,x,N,I,P,B,V,j)=>{let L=0;const Y=v.length;let z=u.length-1,f=Y-1;for(;L<=z&&L<=f;){const p=u[L],w=v[L]=j?at(v[L]):tt(v[L]);if(At(p,w))A(p,w,x,null,I,P,B,V,j);else break;L++}for(;L<=z&&L<=f;){const p=u[z],w=v[f]=j?at(v[f]):tt(v[f]);if(At(p,w))A(p,w,x,null,I,P,B,V,j);else break;z--,f--}if(L>z){if(L<=f){const p=f+1,w=p<Y?v[p].el:N;for(;L<=f;)A(null,v[L]=j?at(v[L]):tt(v[L]),x,w,I,P,B,V,j),L++}}else if(L>f)for(;L<=z;)Ee(u[L],I,P,!0),L++;else{const p=L,w=L,J=new Map;for(L=w;L<=f;L++){const Ae=v[L]=j?at(v[L]):tt(v[L]);Ae.key!=null&&J.set(Ae.key,L)}let U,q=0;const de=f-w+1;let ye=!1,Be=0;const Ct=new Array(de);for(L=0;L<de;L++)Ct[L]=0;for(L=p;L<=z;L++){const Ae=u[L];if(q>=de){Ee(Ae,I,P,!0);continue}let Ve;if(Ae.key!=null)Ve=J.get(Ae.key);else for(U=w;U<=f;U++)if(Ct[U-w]===0&&At(Ae,v[U])){Ve=U;break}Ve===void 0?Ee(Ae,I,P,!0):(Ct[Ve-w]=L+1,Ve>=Be?Be=Ve:ye=!0,A(Ae,v[Ve],x,null,I,P,B,V,j),q++)}const mt=ye?Nr(Ct):Kt;for(U=mt.length-1,L=de-1;L>=0;L--){const Ae=w+L,Ve=v[Ae],Zt=v[Ae+1],es=Ae+1<Y?Zt.el||Vl(Zt):N;Ct[L]===0?A(null,Ve,x,es,I,P,B,V,j):ye&&(U<0||L!==mt[U]?Ce(Ve,x,es,2):U--)}}},Ce=(u,v,x,N,I=null)=>{const{el:P,type:B,transition:V,children:j,shapeFlag:L}=u;if(L&6){Ce(u.component.subTree,v,x,N);return}if(L&128){u.suspense.move(v,x,N);return}if(L&64){B.move(u,v,x,te);return}if(B===ce){n(P,v,x);for(let z=0;z<j.length;z++)Ce(j[z],v,x,N);n(u.anchor,v,x);return}if(B===Is){F(u,v,x);return}if(N!==2&&L&1&&V)if(N===0)V.beforeEnter(P),n(P,v,x),De(()=>V.enter(P),I);else{const{leave:z,delayLeave:f,afterLeave:p}=V,w=()=>{u.ctx.isUnmounted?o(P):n(P,v,x)},J=()=>{P._isLeaving&&P[Ze](!0),z(P,()=>{w(),p&&p()})};f?f(P,w,J):J()}else n(P,v,x)},Ee=(u,v,x,N=!1,I=!1)=>{const{type:P,props:B,ref:V,children:j,dynamicChildren:L,shapeFlag:Y,patchFlag:z,dirs:f,cacheIndex:p}=u;if(z===-2&&(I=!1),V!=null&&(dt(),us(V,null,x,u,!0),ft()),p!=null&&(v.renderCache[p]=void 0),Y&256){v.ctx.deactivate(u);return}const w=Y&1&&f,J=!ds(u);let U;if(J&&(U=B&&B.onVnodeBeforeUnmount)&&Qe(U,v,u),Y&6)Re(u.component,x,N);else{if(Y&128){u.suspense.unmount(x,N);return}w&&kt(u,null,v,"beforeUnmount"),Y&64?u.type.remove(u,v,x,te,N):L&&!L.hasOnce&&(P!==ce||z>0&&z&64)?vt(L,v,x,!1,!0):(P===ce&&z&384||!I&&Y&16)&&vt(j,v,x),N&&Oe(u)}(J&&(U=B&&B.onVnodeUnmounted)||w)&&De(()=>{U&&Qe(U,v,u),w&&kt(u,null,v,"unmounted")},x)},Oe=u=>{const{type:v,el:x,anchor:N,transition:I}=u;if(v===ce){Fe(x,N);return}if(v===Is){E(u);return}const P=()=>{o(x),I&&!I.persisted&&I.afterLeave&&I.afterLeave()};if(u.shapeFlag&1&&I&&!I.persisted){const{leave:B,delayLeave:V}=I,j=()=>B(x,P);V?V(u.el,P,j):j()}else P()},Fe=(u,v)=>{let x;for(;u!==v;)x=M(u),o(u),u=x;o(v)},Re=(u,v,x)=>{const{bum:N,scope:I,job:P,subTree:B,um:V,m:j,a:L}=u;fo(j),fo(L),N&&Os(N),I.stop(),P&&(P.flags|=8,Ee(B,u,v,x)),V&&De(V,v),De(()=>{u.isUnmounted=!0},v)},vt=(u,v,x,N=!1,I=!1,P=0)=>{for(let B=P;B<u.length;B++)Ee(u[B],v,x,N,I)},$t=u=>{if(u.shapeFlag&6)return $t(u.component.subTree);if(u.shapeFlag&128)return u.suspense.next();const v=M(u.anchor||u.el),x=v&&v[Yi];return x?M(x):v};let jt=!1;const Ss=(u,v,x)=>{let N;u==null?v._vnode&&(Ee(v._vnode,null,null,!0),N=v._vnode.component):A(v._vnode||null,u,v,null,null,null,x),v._vnode=u,jt||(jt=!0,eo(N),ul(),jt=!1)},te={p:A,um:Ee,m:Ce,r:Oe,mt:ee,mc:O,pc:le,pbc:T,n:$t,o:e};return{render:Ss,hydrate:void 0,createApp:_r(Ss)}}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 Lr(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Dl(e,t,s=!1){const n=e.children,o=t.children;if(X(n)&&X(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]=at(o[l]),a.el=r.el),!s&&a.patchFlag!==-2&&Dl(r,a)),a.type===nn&&(a.patchFlag===-1&&(a=o[l]=at(a)),a.el=r.el),a.type===Le&&!a.el&&(a.el=r.el)}}function Nr(e){const t=e.slice(),s=[0];let n,o,l,r,a;const c=e.length;for(n=0;n<c;n++){const m=e[n];if(m!==0){if(o=s[s.length-1],e[o]<m){t[n]=o,s.push(n);continue}for(l=0,r=s.length-1;l<r;)a=l+r>>1,e[s[a]]<m?l=a+1:r=a;m<e[s[l]]&&(l>0&&(t[n]=s[l-1]),s[l]=n)}}for(l=s.length,r=s[l-1];l-- >0;)s[l]=r,r=t[r];return s}function 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 Fr(e,t){t&&t.pendingBranch?X(e)?t.effects.push(...e):t.effects.push(e):Wi(e)}const ce=Symbol.for("v-fgt"),nn=Symbol.for("v-txt"),Le=Symbol.for("v-cmt"),Is=Symbol.for("v-stc"),ps=[];let Ue=null;function k(e=!1){ps.push(Ue=e?null:[])}function Rr(){ps.pop(),Ue=ps[ps.length-1]||null}let _s=1;function Us(e,t=!1){_s+=e,e<0&&Ue&&t&&(Ue.hasOnce=!0)}function Bl(e){return e.dynamicChildren=_s>0?Ue||Kt:null,Rr(),_s>0&&Ue&&Ue.push(e),e}function S(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($e(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,Ps=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?be(e)||Me(e)||oe(e)?{i:We,r:e,k:t,f:!!s}:e:null);function i(e,t=null,s=null,n=0,o=null,l=e===ce?0:1,r=!1,a=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Kl(t),ref:t&&Ps(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|=be(s)?8:16),_s>0&&!r&&Ue&&(c.patchFlag>0||l&6)&&c.patchFlag!==32&&Ue.push(c),c}const $e=jr;function jr(e,t=null,s=null,n=0,o=null,l=!1){if((!e||e===ur)&&(e=Le),Bs(e)){const a=xt(e,t,!0);return s&&qn(a,s),_s>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&&!be(a)&&(t.class=ne(a)),pe(c)&&(Bn(c)&&!X(c)&&(c=xe({},c)),t.style=we(c))}const r=be(e)?1:Ul(e)?128:vl(e)?64:pe(e)?4:oe(e)?2:0;return i(e,t,s,n,o,r,l,!0)}function Dr(e){return e?Bn(e)||Pl(e)?xe({},e):e:null}function xt(e,t,s=!1,n=!1){const{props:o,ref:l,patchFlag:r,children:a,transition:c}=e,m=t?Vr(o||{},t):o,d={__v_isVNode:!0,__v_skip:!0,type:e.type,props:m,key:m&&Kl(m),ref:t&&t.ref?s&&l?X(l)?l.concat(Ps(t)):[l,Ps(t)]:Ps(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!==ce?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&&xt(e.ssContent),ssFallback:e.ssFallback&&xt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&n&&gs(d,c.clone(d)),d}function Te(e=" ",t=0){return $e(nn,null,e,t)}function Hr(e,t){const s=$e(Is,null,e);return s.staticCount=t,s}function se(e="",t=!1){return t?(k(),Ot(Le,null,e)):$e(Le,null,e)}function tt(e){return e==null||typeof e=="boolean"?$e(Le):X(e)?$e(ce,null,e.slice()):Bs(e)?at(e):$e(nn,null,String(e))}function at(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:xt(e)}function qn(e,t){let s=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(X(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 oe(t)?(t={default:t,_ctx:We},s=32):(t=String(t),n&64?(s=16,t=[Te(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=ne([t.class,n.class]));else if(o==="style")t.style=we([t.style,n.style]);else if(qs(o)){const l=t[o],r=n[o];r&&l!==r&&!(X(l)&&l.includes(r))&&(t[o]=l?[].concat(l,r):r)}else o!==""&&(t[o]=n[o])}return t}function Qe(e,t,s,n=null){Ye(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:Nl(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 Ne=null;const Wl=()=>Ne||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=>Ne=s),Mn=t("__VUE_SSR_SETTERS__",s=>bs=s)}const Cs=e=>{const t=Ne;return Ks(e),e.scope.on(),()=>{e.scope.off(),Ks(t)}},po=()=>{Ne&&Ne.scope.off(),Ks(null)};function zl(e){return e.vnode.shapeFlag&4}let bs=!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){dt();const o=e.setupContext=n.length>1?Jr(e):null,l=Cs(e),r=$s(n,e,0,[e.props,o]),a=jo(r);if(ft(),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){oe(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:pe(t)&&(e.setupState=il(t)),ql(e)}function ql(e,t,s){const n=e.type;e.render||(e.render=n.render||nt);{const o=Cs(e);dt();try{fr(e)}finally{ft(),o()}}}const qr={get(e,t){return Se(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(Ni(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 oe(e)&&"__vccOpts"in e}const re=(e,t)=>Hi(e,t,bs);function ke(e,t,s){try{Us(-1);const n=arguments.length;return n===2?pe(t)&&!X(t)?Bs(t)?$e(e,null,[t]):$e(e,t):$e(e,null,t):(n>3?s=Array.prototype.slice.call(arguments,2):n===3&&Bs(s)&&(s=[s]),$e(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",rt=typeof document<"u"?document:null,mo=rt&&rt.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"?rt.createElementNS(Qr,e):t==="mathml"?rt.createElementNS(Xr,e):s?rt.createElement(e,{is:s}):rt.createElement(e);return e==="select"&&n&&n.multiple!=null&&o.setAttribute("multiple",n.multiple),o},createText:e=>rt.createTextNode(e),createComment:e=>rt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>rt.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]}},gt="transition",ns="animation",ys=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=xe({},ml,Gl),ta=e=>(e.displayName="Transition",e.props=ea,e),On=ta((e,{slots:t})=>ke(Zi,sa(e),t)),Tt=(e,t=[])=>{X(e)?e.forEach(s=>s(...t)):e&&e(...t)},go=e=>e?X(e)?e.some(t=>t.length>1):e.length>1:!1;function sa(e){const t={};for(const h in e)h in Gl||(t[h]=e[h]);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:m=r,appearToClass:d=a,leaveFromClass:g=`${s}-leave-from`,leaveActiveClass:M=`${s}-leave-active`,leaveToClass:y=`${s}-leave-to`}=e,b=na(o),A=b&&b[0],Q=b&&b[1],{onBeforeEnter:K,onEnter:G,onEnterCancelled:F,onLeave:E,onLeaveCancelled:R,onBeforeAppear:ie=K,onAppear:H=G,onAppearCancelled:O=F}=t,$=(h,W,ee,he)=>{h._enterCancelled=he,Mt(h,W?d:a),Mt(h,W?m:r),ee&&ee()},T=(h,W)=>{h._isLeaving=!1,Mt(h,g),Mt(h,y),Mt(h,M),W&&W()},C=h=>(W,ee)=>{const he=h?H:G,D=()=>$(W,h,ee);Tt(he,[W,D]),_o(()=>{Mt(W,h?c:l),it(W,h?d:a),go(he)||bo(W,n,A,D)})};return xe(t,{onBeforeEnter(h){Tt(K,[h]),it(h,l),it(h,r)},onBeforeAppear(h){Tt(ie,[h]),it(h,c),it(h,m)},onEnter:C(!1),onAppear:C(!0),onLeave(h,W){h._isLeaving=!0;const ee=()=>T(h,W);it(h,g),h._enterCancelled?(it(h,M),wo(h)):(wo(h),it(h,M)),_o(()=>{h._isLeaving&&(Mt(h,g),it(h,y),go(E)||bo(h,n,Q,ee))}),Tt(E,[h,ee])},onEnterCancelled(h){$(h,!1,void 0,!0),Tt(F,[h])},onAppearCancelled(h){$(h,!0,void 0,!0),Tt(O,[h])},onLeaveCancelled(h){T(h),Tt(R,[h])}})}function na(e){if(e==null)return null;if(pe(e))return[vn(e.enter),vn(e.leave)];{const t=vn(e);return[t,t]}}function vn(e){return li(e)}function it(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.add(s)),(e[ys]||(e[ys]=new Set)).add(t)}function Mt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.remove(n));const s=e[ys];s&&(s.delete(t),s.size||(e[ys]=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 m=r+"end";let d=0;const g=()=>{e.removeEventListener(m,M),l()},M=y=>{y.target===e&&++d>=c&&g()};setTimeout(()=>{d<c&&g()},a+1),e.addEventListener(m,M)}function la(e,t){const s=window.getComputedStyle(e),n=b=>(s[b]||"").split(", "),o=n(`${gt}Delay`),l=n(`${gt}Duration`),r=yo(o,l),a=n(`${ns}Delay`),c=n(`${ns}Duration`),m=yo(a,c);let d=null,g=0,M=0;t===gt?r>0&&(d=gt,g=r,M=l.length):t===ns?m>0&&(d=ns,g=m,M=c.length):(g=Math.max(r,m),d=g>0?r>m?gt:ns:null,M=d?d===gt?l.length:c.length:0);const y=d===gt&&/\b(?:transform|all)(?:,|$)/.test(n(`${gt}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[ys];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=be(s);let l=!1;if(s&&!o){if(t)if(be(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(X(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=qe(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?"":ot(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 m=l[t]=ga(n,o);It(e,a,m,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;Ye(_a(n,s.value),t,5,[n])};return s.value=e,s.attached=ma(),s}function _a(e,t){if(X(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)||!be(n)))?Mo(e,qe(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)&&oe(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)&&be(s)?!1:t in e}function xa(e,t){const s=e._def.props;if(!s)return!1;const n=qe(t);return Array.isArray(s)?s.some(o=>qe(o)===n):Object.keys(s).some(o=>qe(o)===n)}const Ws=e=>{const t=e.props["onUpdate:modelValue"]||!1;return X(t)?s=>Os(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}){Lo(e,t)},beforeUpdate(e,t,s){e[Jt]=Ws(s)},updated(e,{value:t}){e._assigning||Lo(e,t)}};function Lo(e,t){const s=e.multiple,n=X(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(m=>String(m)===String(a)):r.selected=pi(t,a)>-1}else r.selected=t.has(a);else if(ws(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=xe({patchProp:ba},Zr);let No;function Ta(){return No||(No=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;!oe(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 be(e)?document.querySelector(e):e}const Aa=500,Yl=ae([]),Ql=ae({provides:[],injects:[]}),Jn=ae([]),Xl=ae([]),Zl=ae([]),ei=ae(!1);let Fo=!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 La(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 Na(){Fo||typeof window>"u"||(Fo=!0,Qt=Pa(),window.addEventListener("message",La),window.setInterval(An,Aa),An())}function Ns(){return Qt}function Fa(){Jn.value=[]}function ks(){return Na(),{fetch:Yl,provideInject:Ql,composables:Jn,renders:Xl,transitions:Zl,connected:ei,refresh:An,clearComposables:Fa}}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=Ft({__name:"FetchDashboard",setup(e){const{fetch:t,connected:s}=ks(),n=ae("all"),o=ae(""),l=ae(null),r=ae(!0),a=re(()=>{const F=[...t.value].sort((R,ie)=>R.startTime-ie.startTime),E=Math.min(...F.map(R=>R.startTime),0);return F.map(R=>({...R,startOffset:Math.max(0,Math.round(R.startTime-E))}))}),c=re(()=>a.value.find(F=>F.id===l.value)??null),m=re(()=>({ok:a.value.filter(F=>F.status==="ok").length,pending:a.value.filter(F=>F.status==="pending").length,error:a.value.filter(F=>F.status==="error").length})),d=re(()=>a.value.filter(F=>{if(n.value!=="all"&&F.status!==n.value)return!1;const E=o.value.toLowerCase();return!(E&&!F.key.toLowerCase().includes(E)&&!F.url.toLowerCase().includes(E))})),g=re(()=>{if(!c.value)return[];const F=c.value;return[["url",F.url],["status",F.status],["origin",F.origin],["duration",F.ms!=null?`${F.ms}ms`:"—"],["size",F.size?G(F.size):"—"],["cached",F.cached?"yes":"no"]]}),M=re(()=>{if(!c.value)return"";const F=c.value.payload;if(F===void 0)return"(no payload captured yet)";try{return JSON.stringify(F,null,2)}catch{return String(F)}});function y(F){return{ok:"badge-ok",error:"badge-err",pending:"badge-warn",cached:"badge-gray"}[F]??"badge-gray"}function b(F){return{ok:"var(--teal)",error:"var(--red)",pending:"var(--amber)",cached:"var(--border)"}[F]??"var(--border)"}function A(F){const E=Math.max(...a.value.filter(R=>R.ms).map(R=>R.ms),1);return F.ms!=null?Math.max(4,Math.round(F.ms/E*100)):4}function Q(F){const E=Math.max(...a.value.map(R=>R.startOffset+(R.ms??0)),1);return Math.round(F.startOffset/E*100)}function K(F){const E=Math.max(...a.value.map(R=>R.startOffset+(R.ms??0)),1);return F.ms!=null?Math.round(F.ms/E*100):2}function G(F){return F<1024?`${F}B`:`${(F/1024).toFixed(1)}KB`}return(F,E)=>(k(),S("div",Ra,[i("div",ja,[i("div",Da,[E[7]||(E[7]=i("div",{class:"stat-label"},"total",-1)),i("div",Ha,_(a.value.length),1)]),i("div",Va,[E[8]||(E[8]=i("div",{class:"stat-label"},"success",-1)),i("div",Ua,_(m.value.ok),1)]),i("div",Ba,[E[9]||(E[9]=i("div",{class:"stat-label"},"pending",-1)),i("div",Ka,_(m.value.pending),1)]),i("div",Wa,[E[10]||(E[10]=i("div",{class:"stat-label"},"error",-1)),i("div",za,_(m.value.error),1)])]),i("div",qa,[i("button",{class:ne({active:n.value==="all"}),onClick:E[0]||(E[0]=R=>n.value="all")},"all",2),i("button",{class:ne({"danger-active":n.value==="error"}),onClick:E[1]||(E[1]=R=>n.value="error")},"errors",2),i("button",{class:ne({active:n.value==="pending"}),onClick:E[2]||(E[2]=R=>n.value="pending")},"pending",2),i("button",{class:ne({active:n.value==="cached"}),onClick:E[3]||(E[3]=R=>n.value="cached")},"cached",2),Nt(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,[(k(!0),S(ce,null,_e(d.value,R=>{var ie;return k(),S("tr",{key:R.id,class:ne({selected:((ie=c.value)==null?void 0:ie.id)===R.id}),onClick:H=>l.value=R.id},[i("td",null,[i("span",Xa,_(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},_(R.url),9,Za)]),i("td",null,[i("span",{class:ne(["badge",y(R.status)])},_(R.status),3)]),i("td",null,[i("span",{class:ne(["badge",R.origin==="ssr"?"badge-info":"badge-gray"])},_(R.origin),3)]),i("td",ec,_(R.size?G(R.size):"—"),1),i("td",tc,_(R.ms!=null?`${R.ms}ms`:"—"),1),i("td",null,[i("div",sc,[i("div",{style:we({width:`${A(R)}%`,background:b(R.status),height:"100%",borderRadius:"2px"})},null,4)])])],10,Qa)}),128)),d.value.length?se("",!0):(k(),S("tr",nc,[i("td",oc,_(yt(s)?"No fetches recorded yet.":"Waiting for connection to the Nuxt app…"),1)]))])])]),c.value?(k(),S("div",lc,[i("div",ic,[i("span",rc,_(c.value.key),1),i("div",ac,[i("button",{onClick:E[5]||(E[5]=R=>l.value=null)},"×")])]),i("div",cc,[(k(!0),S(ce,null,_e(g.value,([R,ie])=>(k(),S(ce,{key:R},[i("span",uc,_(R),1),i("span",dc,_(ie),1)],64))),128))]),E[12]||(E[12]=i("div",{class:"section-label"},"payload",-1)),i("pre",fc,_(M.value),1),E[13]||(E[13]=i("div",{class:"section-label",style:{"margin-top":"10px"}},"source",-1)),i("div",pc,_(c.value.file)+":"+_(c.value.line),1)])):(k(),S("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:ne({active:r.value}),onClick:E[6]||(E[6]=R=>r.value=!r.value)},_(r.value?"hide":"show"),3)]),r.value?(k(),S("div",gc,[(k(!0),S(ce,null,_e(a.value,R=>(k(),S("div",{key:R.id,class:"wf-row"},[i("span",_c,_(R.key),1),i("div",bc,[i("div",{class:"wf-bar",style:we({left:`${Q(R)}%`,width:`${Math.max(2,K(R))}%`,background:b(R.status)})},null,4)]),i("span",yc,_(R.ms!=null?`${R.ms}ms`:"—"),1)]))),128))])):se("",!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"},Lc={key:1,class:"badge badge-err badge-xs"},Nc={key:1,class:"graph-empty"},Fc={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=Ft({__name:"ProvideInjectGraph",setup(e){const{provideInject:t,connected:s}=ks();function n(T){return T.injects.some(C=>!C.ok)?"var(--red)":T.type==="both"?"var(--blue)":T.type==="provider"?"var(--teal)":"var(--text3)"}function o(T,C){return C==="all"?!0:C==="warn"?T.injects.some(h=>!h.ok):C==="shadow"?T.provides.some(h=>h.isShadowing):T.provides.some(h=>h.key===C)||T.injects.some(h=>h.key===C)}function l(T,C){if(!C)return!0;const h=C.toLowerCase();return T.label.toLowerCase().includes(h)||T.componentName.toLowerCase().includes(h)||T.provides.some(W=>W.key.toLowerCase().includes(h))||T.injects.some(W=>W.key.toLowerCase().includes(h))}function r(T){let C=0;const h=[T];for(;h.length;){const W=h.pop();W.children.length===0?C++:h.push(...W.children)}return C}function a(T){if(typeof T=="string")return T;try{return JSON.stringify(T)}catch{return String(T)}}function c(T){return typeof T=="object"&&T!==null}function m(T){if(T===null)return"null";if(Array.isArray(T))return`Array(${T.length})`;if(typeof T=="object"){const C=Object.keys(T);return C.length?`{ ${C.join(", ")} }`:"{}"}return a(T)}function d(T){if(!c(T))return a(T);try{return JSON.stringify(T,null,2)}catch{return a(T)}}function g(T,C,h){return`${T}:${C}:${h}`}function M(T){return T.split("/").pop()??T}function y(T){return String(T.componentUid)}const b=re(()=>{const T=new Map,C=new Map;function h(D){const Z=y(D),le=T.get(Z);if(le)return le;const me={id:Z,label:M(D.componentFile),componentName:D.componentName??M(D.componentFile),type:"consumer",provides:[],injects:[],children:[]};return T.set(Z,me),C.set(Z,D.parentUid!==void 0?String(D.parentUid):null),me}const W=new Map;for(const D of t.value.injects){const Z=W.get(D.key)??[];Z.push(D),W.set(D.key,Z)}const ee=new Map;for(const D of t.value.provides)ee.set(D.componentUid,D.componentName);for(const D of t.value.injects)ee.set(D.componentUid,D.componentName);for(const D of t.value.provides){const Z=h(D),le=W.get(D.key)??[];Z.provides.push({key:D.key,val:m(D.valueSnapshot),raw:D.valueSnapshot,reactive:D.isReactive,complex:c(D.valueSnapshot),scope:D.scope??"component",isShadowing:D.isShadowing??!1,consumerUids:le.map(me=>me.componentUid),consumerNames:le.map(me=>me.componentName)})}for(const D of t.value.injects)h(D).injects.push({key:D.key,from:D.resolvedFromFile??null,fromName:D.resolvedFromUid!==void 0?ee.get(D.resolvedFromUid)??null:null,ok:D.resolved});for(const D of T.values())D.injects.some(Z=>!Z.ok)?D.type="error":D.provides.length&&D.injects.length?D.type="both":D.provides.length?D.type="provider":D.type="consumer";const he=[];for(const[D,Z]of T.entries()){const le=C.get(D),me=le?T.get(le):void 0;me?me.children.push(Z):he.push(Z)}return he}),A=ae("all"),Q=ae(""),K=ae(null),G=ae(new Set);bt(K,()=>{G.value=new Set});function F(T){const C=new Set(G.value);C.has(T)?C.delete(T):C.add(T),G.value=C}const E=re(()=>{const T=new Set,C=[...b.value];for(;C.length;){const h=C.pop();h.provides.forEach(W=>T.add(W.key)),h.injects.forEach(W=>T.add(W.key)),C.push(...h.children)}return[...T]}),R=re(()=>{function T(C){const h=[],W=[C];for(;W.length;){const he=W.pop();h.push(he);for(let D=he.children.length-1;D>=0;D--)W.push(he.children[D])}const ee=new Map;for(let he=h.length-1;he>=0;he--){const D=h[he],Z=D.children.map(me=>ee.get(me)??null).filter(me=>me!==null);!(o(D,A.value)&&l(D,Q.value))&&!Z.length?ee.set(D,null):ee.set(D,{...D,children:Z})}return ee.get(C)??null}return b.value.map(T).filter(Boolean)});bt([R,K],([T,C])=>{if(!C)return;const h=new Set,W=[...T];for(;W.length;){const ee=W.pop();h.add(ee.id),W.push(...ee.children)}h.has(C.id)||(K.value=null)});const ie=re(()=>{const T=[],C=Ut;let h=C;for(const W of R.value){const ee=[{node:W,depth:0,slotLeft:h,parentId:null}];for(;ee.length;){const{node:D,depth:Z,slotLeft:le,parentId:me}=ee.pop(),Ce=r(D)*(Ht+Ut)-Ut;T.push({data:D,parentId:me,x:Math.round(le+Ce/2),y:Math.round(C+Z*(Vt+lu)+Vt/2)});let Ee=le;const Oe=[];for(const Fe of D.children){const Re=r(Fe);Oe.push({node:Fe,depth:Z+1,slotLeft:Ee,parentId:D.id}),Ee+=Re*(Ht+Ut)}for(let Fe=Oe.length-1;Fe>=0;Fe--)ee.push(Oe[Fe])}const he=r(W);h+=he*(Ht+Ut)+Ut*2}return T}),H=re(()=>ie.value.reduce((T,C)=>Math.max(T,C.x+Ht/2+20),520)),O=re(()=>ie.value.reduce((T,C)=>Math.max(T,C.y+Vt/2+20),200)),$=re(()=>{const T=new Map(ie.value.map(C=>[C.data.id,C]));return ie.value.filter(C=>C.parentId!==null).map(C=>{const h=T.get(C.parentId);return{id:`${h.data.id}--${C.data.id}`,x1:h.x,y1:h.y+Vt/2,x2:C.x,y2:C.y-Vt/2}})});return(T,C)=>(k(),S("div",$c,[i("div",Cc,[i("button",{class:ne({active:A.value==="all"}),onClick:C[0]||(C[0]=h=>A.value="all")},"all keys",2),(k(!0),S(ce,null,_e(E.value,h=>(k(),S("button",{key:h,style:{"font-family":"var(--mono)"},class:ne({active:A.value===h}),onClick:W=>A.value=h},_(h),11,kc))),128)),i("button",{style:{"margin-left":"auto"},class:ne({"danger-active":A.value==="shadow"}),onClick:C[1]||(C[1]=h=>A.value=A.value==="shadow"?"all":"shadow")}," shadowed ",2),i("button",{class:ne({"danger-active":A.value==="warn"}),onClick:C[2]||(C[2]=h=>A.value=A.value==="warn"?"all":"warn")}," warnings ",2),Nt(i("input",{"onUpdate:modelValue":C[3]||(C[3]=h=>Q.value=h),type:"search",placeholder:"search component or key…",style:{"max-width":"200px"}},null,512),[[Yt,Q.value]])]),i("div",Sc,[i("div",Tc,[C[5]||(C[5]=Hr('<div class="legend" data-v-f074866d><span class="dot" style="background:var(--teal);" data-v-f074866d></span><span data-v-f074866d>provides</span><span class="dot" style="background:var(--blue);" data-v-f074866d></span><span data-v-f074866d>both</span><span class="dot" style="background:var(--text3);" data-v-f074866d></span><span data-v-f074866d>injects</span><span class="dot" style="background:var(--red);" data-v-f074866d></span><span data-v-f074866d>missing provider</span></div>',1)),ie.value.length?(k(),S("div",Mc,[i("div",{class:"canvas-wrap",style:we({width:`${H.value}px`,height:`${O.value}px`})},[(k(),S("svg",{class:"edges-svg",width:H.value,height:O.value,viewBox:`0 0 ${H.value} ${O.value}`},[(k(!0),S(ce,null,_e($.value,h=>(k(),S("path",{key:h.id,d:`M ${h.x1},${h.y1} C ${h.x1},${(h.y1+h.y2)/2} ${h.x2},${(h.y1+h.y2)/2} ${h.x2},${h.y2}`,class:"edge",fill:"none"},null,8,Oc))),128))],8,Ec)),(k(!0),S(ce,null,_e(ie.value,h=>{var W;return k(),S("div",{key:h.data.id,class:ne(["graph-node",{"is-selected":((W=K.value)==null?void 0:W.id)===h.data.id}]),style:we({left:`${h.x-Ht/2}px`,top:`${h.y-Vt/2}px`,width:`${Ht}px`,"--node-color":n(h.data)}),onClick:ee=>K.value=h.data},[i("span",{class:"node-dot",style:we({background:n(h.data)})},null,4),i("span",Ic,_(h.data.label),1),h.data.provides.length?(k(),S("span",Pc," +"+_(h.data.provides.length),1)):se("",!0),h.data.injects.some(ee=>!ee.ok)?(k(),S("span",Lc,"!")):se("",!0)],14,Ac)}),128))],4)])):(k(),S("div",Nc,_(yt(s)?"No components match the current provide/inject filter.":"Waiting for connection to the Nuxt app…"),1))]),K.value?(k(),S("div",Fc,[i("div",Rc,[i("span",jc,_(K.value.label),1),i("button",{onClick:C[4]||(C[4]=h=>K.value=null)},"×")]),K.value.provides.length?(k(),S("div",Dc,[i("div",Hc,"provides ("+_(K.value.provides.length)+")",1),i("div",Vc,[(k(!0),S(ce,null,_e(K.value.provides,(h,W)=>(k(),S("div",{key:g(K.value.id,h.key,W),class:"provide-row"},[i("div",Uc,[i("span",Bc,_(h.key),1),i("span",{class:"mono text-sm muted row-value-preview",title:h.val},_(h.val),9,Kc),i("span",{class:ne(["badge scope-badge",`scope-${h.scope}`])},_(h.scope),3),i("span",{class:ne(["badge",h.reactive?"badge-ok":"badge-gray"])},_(h.reactive?"reactive":"static"),3),h.complex?(k(),S("button",{key:0,class:"row-toggle mono",onClick:ee=>F(g(K.value.id,h.key,W))},_(G.value.has(g(K.value.id,h.key,W))?"hide":"view"),9,Wc)):se("",!0)]),h.isShadowing?(k(),S("div",zc,"shadows a parent provide with the same key")):se("",!0),h.consumerNames.length?(k(),S("div",qc,[C[6]||(C[6]=i("span",{class:"muted text-sm"},"used by:",-1)),(k(!0),S(ce,null,_e(h.consumerNames,ee=>(k(),S("span",{key:ee,class:"consumer-chip mono"},_(ee),1))),128)),h.consumerNames.length?se("",!0):(k(),S("span",Jc,"no consumers"))])):(k(),S("div",Gc,"no consumers detected")),h.complex&&G.value.has(g(K.value.id,h.key,W))?(k(),S("pre",Yc,_(d(h.raw)),1)):se("",!0)]))),128))])])):se("",!0),K.value.injects.length?(k(),S("div",{key:1,class:"detail-section",style:we({marginTop:K.value.provides.length?"10px":"0"})},[i("div",Qc,"injects ("+_(K.value.injects.length)+")",1),i("div",Xc,[(k(!0),S(ce,null,_e(K.value.injects,h=>(k(),S("div",{key:h.key,class:ne(["inject-row",{"inject-miss":!h.ok}])},[i("span",Zc,_(h.key),1),h.ok?(k(),S("span",eu,"resolved")):(k(),S("span",tu,"no provider")),i("span",{class:ne(["mono text-sm row-from",h.fromName?"":"muted"]),title:h.from??"undefined"},_(h.fromName??h.from??"undefined"),11,su)],2))),128))])],4)):se("",!0),!K.value.provides.length&&!K.value.injects.length?(k(),S("div",nu," no provide/inject in this component ")):se("",!0)])):(k(),S("div",ou,_(yt(s)?"Click a node to inspect.":"Waiting for connection to the Nuxt app…"),1))])]))}}),ru=Xt(iu,[["__scopeId","data-v-f074866d"]]),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"},Lu={class:"ref-chip-val"},Nu={key:0,class:"ref-chip-shared-dot",title:"global"},Fu={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=Ft({__name:"ComposableTracker",setup(e){const{composables:t,connected:s,clearComposables:n}=ks();function o(){var O;const H=Ns();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 $;if(!H||H==="unknown")return;const O=Ns();O&&(($=window.top)==null||$.postMessage({type:"observatory:open-in-editor",file:H},O))}const c=ae("all"),m=ae(""),d=ae(null),g=re(()=>t.value),M=re(()=>({mounted:g.value.filter(H=>H.status==="mounted").length,leaks:g.value.filter(H=>H.leak).length})),y=re(()=>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=m.value.toLowerCase();if(O){const $=H.name.toLowerCase().includes(O),T=H.componentFile.toLowerCase().includes(O),C=Object.keys(H.refs).some(W=>W.toLowerCase().includes(O)),h=Object.values(H.refs).some(W=>{try{return String(JSON.stringify(W.value)).toLowerCase().includes(O)}catch{return!1}});if(!$&&!T&&!C&&!h)return!1}return!0}));function b(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 A(H){return H==="computed"?"badge-info":H==="reactive"?"badge-purple":"badge-gray"}const Q=ae(null),K=re(()=>{if(!Q.value)return[];const H=Q.value;return g.value.filter(O=>H in O.refs)});function G(H){Q.value=Q.value===H?null:H}const F=ae(null),E=ae("");function R(H,O,$){E.value="",F.value={id:H,key:O,rawValue:JSON.stringify($,null,2)}}function ie(){var $;if(!F.value)return;let H;try{H=JSON.parse(F.value.rawValue),E.value=""}catch(T){E.value=`Invalid JSON: ${T.message}`;return}const O=Ns();O&&(($=window.top)==null||$.postMessage({type:"observatory:edit-composable",id:F.value.id,key:F.value.key,value:H},O),F.value=null)}return(H,O)=>(k(),S("div",au,[i("div",cu,[i("div",uu,[O[11]||(O[11]=i("div",{class:"stat-label"},"total",-1)),i("div",du,_(g.value.length),1)]),i("div",fu,[O[12]||(O[12]=i("div",{class:"stat-label"},"mounted",-1)),i("div",pu,_(M.value.mounted),1)]),i("div",hu,[O[13]||(O[13]=i("div",{class:"stat-label"},"leaks",-1)),i("div",vu,_(M.value.leaks),1)]),i("div",mu,[O[14]||(O[14]=i("div",{class:"stat-label"},"instances",-1)),i("div",gu,_(g.value.length),1)])]),i("div",_u,[i("button",{class:ne({active:c.value==="all"}),onClick:O[0]||(O[0]=$=>c.value="all")},"all",2),i("button",{class:ne({active:c.value==="mounted"}),onClick:O[1]||(O[1]=$=>c.value="mounted")},"mounted",2),i("button",{class:ne({"danger-active":c.value==="leak"}),onClick:O[2]||(O[2]=$=>c.value="leak")},"leaks only",2),i("button",{class:ne({active:c.value==="unmounted"}),onClick:O[3]||(O[3]=$=>c.value="unmounted")},"unmounted",2),Nt(i("input",{"onUpdate:modelValue":O[4]||(O[4]=$=>m.value=$),type:"search",placeholder:"search name, file, or ref…",style:{"max-width":"220px","margin-left":"auto"}},null,512),[[Yt,m.value]]),i("button",{class:"clear-btn",title:"Clear session history",onClick:o},"clear")]),i("div",bu,[(k(!0),S(ce,null,_e(y.value,$=>{var T;return k(),S("div",{key:$.id,class:ne(["comp-card",{leak:$.leak,expanded:d.value===$.id}]),onClick:C=>d.value=d.value===$.id?null:$.id},[i("div",xu,[i("div",wu,[i("span",$u,_($.name),1),i("span",Cu,_(r($.componentFile)),1)]),i("div",ku,[$.watcherCount>0&&!$.leak?(k(),S("span",Su,_($.watcherCount)+"w",1)):se("",!0),$.intervalCount>0&&!$.leak?(k(),S("span",Tu,_($.intervalCount)+"t",1)):se("",!0),$.leak?(k(),S("span",Mu,"leak")):$.status==="mounted"?(k(),S("span",Eu,"mounted")):(k(),S("span",Ou,"unmounted"))])]),Object.keys($.refs).length?(k(),S("div",Au,[(k(!0),S(ce,null,_e(Object.entries($.refs).slice(0,3),([C,h])=>{var W,ee,he;return k(),S("span",{key:C,class:ne(["ref-chip",{"ref-chip--reactive":h.type==="reactive","ref-chip--computed":h.type==="computed","ref-chip--shared":(W=$.sharedKeys)==null?void 0:W.includes(C)}]),title:(ee=$.sharedKeys)!=null&&ee.includes(C)?"shared global state":""},[i("span",Pu,_(C),1),i("span",Lu,_(l(h.value)),1),(he=$.sharedKeys)!=null&&he.includes(C)?(k(),S("span",Nu)):se("",!0)],10,Iu)}),128)),Object.keys($.refs).length>3?(k(),S("span",Fu," +"+_(Object.keys($.refs).length-3)+" more ",1)):se("",!0)])):se("",!0),d.value===$.id?(k(),S("div",{key:1,class:"comp-detail",onClick:O[5]||(O[5]=os(()=>{},["stop"]))},[$.leak?(k(),S("div",Ru,_($.leakReason),1)):se("",!0),(T=$.sharedKeys)!=null&&T.length?(k(),S("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)),Te(" — "+_($.sharedKeys.join(", "))+" "+_($.sharedKeys.length===1?"is":"are")+" shared across all instances of "+_($.name),1)])])):se("",!0),O[24]||(O[24]=i("div",{class:"section-label"},"reactive state",-1)),Object.keys($.refs).length?se("",!0):(k(),S("div",Du," no tracked state returned ")),(k(!0),S(ce,null,_e(Object.entries($.refs),([C,h])=>{var W;return k(),S("div",{key:C,class:"ref-row"},[i("span",{class:"mono text-sm ref-key ref-key--clickable",title:`click to see all instances exposing '${C}'`,onClick:os(ee=>G(C),["stop"])},_(C),9,Hu),i("span",Vu,_(l(h.value)),1),i("span",{class:ne(["badge text-xs",A(h.type)])},_(h.type),3),(W=$.sharedKeys)!=null&&W.includes(C)?(k(),S("span",Uu,"global")):se("",!0),h.type==="ref"?(k(),S("button",{key:1,class:"edit-btn",title:"Edit value",onClick:os(ee=>R($.id,C,h.value),["stop"])}," edit ",8,Bu)):se("",!0)])}),128)),$.history&&$.history.length?(k(),S(ce,{key:3},[i("div",Ku,[O[17]||(O[17]=Te(" change history ",-1)),i("span",Wu," ("+_($.history.length)+" events) ",1)]),i("div",zu,[(k(!0),S(ce,null,_e([...$.history].reverse().slice(0,20),(C,h)=>(k(),S("div",{key:h,class:"history-row"},[i("span",qu,"+"+_((C.t/1e3).toFixed(2))+"s",1),i("span",Ju,_(C.key),1),i("span",Gu,_(l(C.value)),1)]))),128)),$.history.length>20?(k(),S("div",Yu," … "+_($.history.length-20)+" earlier events ",1)):se("",!0)])],64)):se("",!0),O[25]||(O[25]=i("div",{class:"section-label",style:{"margin-top":"10px"}},"lifecycle",-1)),(k(!0),S(ce,null,_e(b($),C=>(k(),S("div",{key:C.label,class:"lc-row"},[i("span",{class:"lc-dot",style:we({background:C.ok?"var(--teal)":"var(--red)"})},null,4),i("span",Qu,_(C.label),1),i("span",{class:"text-sm",style:we({color:C.ok?"var(--teal)":"var(--red)"})},_(C.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,_(r($.componentFile)),1)]),i("div",ed,[O[19]||(O[19]=i("span",{class:"muted text-sm",style:{"min-width":"120px"}},"uid",-1)),i("span",td,_($.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,[Te(_($.file)+":"+_($.line)+" ",1),i("button",{class:"jump-btn",title:"Open in editor",onClick:os(C=>a($.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,_($.route),1)]),i("div",rd,[O[22]||(O[22]=i("span",{class:"muted text-sm",style:{"min-width":"120px"}},"watchers",-1)),i("span",ad,_($.watcherCount),1)]),i("div",cd,[O[23]||(O[23]=i("span",{class:"muted text-sm",style:{"min-width":"120px"}},"intervals",-1)),i("span",ud,_($.intervalCount),1)])])):se("",!0)],10,yu)}),128)),y.value.length?se("",!0):(k(),S("div",dd,_(yt(s)?"No composables recorded yet.":"Waiting for connection to the Nuxt app…"),1))]),$e(On,{name:"slide"},{default:Ds(()=>[Q.value?(k(),S("div",fd,[i("div",pd,[i("span",hd,_(Q.value),1),i("span",vd,"— "+_(K.value.length)+" instance"+_(K.value.length!==1?"s":""),1),i("button",{class:"clear-btn",style:{"margin-left":"auto"},onClick:O[6]||(O[6]=$=>Q.value=null)},"✕")]),K.value.length?se("",!0):(k(),S("div",md,"No mounted instances expose this key.")),(k(!0),S(ce,null,_e(K.value,$=>(k(),S("div",{key:$.id,class:"lookup-row"},[i("span",gd,_($.name),1),i("span",_d,_(r($.componentFile)),1),i("span",bd,_($.route),1)]))),128))])):se("",!0)]),_:1}),$e(On,{name:"fade"},{default:Ds(()=>[F.value?(k(),S("div",{key:0,class:"edit-overlay",onClick:O[10]||(O[10]=os($=>F.value=null,["self"]))},[i("div",yd,[i("div",xd,[O[27]||(O[27]=Te(" edit ",-1)),i("span",wd,_(F.value.key),1),i("button",{class:"clear-btn",style:{"margin-left":"auto"},onClick:O[7]||(O[7]=$=>F.value=null)},"✕")]),O[28]||(O[28]=i("p",{class:"muted text-sm",style:{padding:"4px 0 8px"}},[Te(" Value applied immediately to the live ref. Only "),i("span",{class:"mono"},"ref"),Te(" values are writable. ")],-1)),Nt(i("textarea",{"onUpdate:modelValue":O[8]||(O[8]=$=>F.value.rawValue=$),class:"edit-textarea",rows:"6",spellcheck:"false"},null,512),[[Yt,F.value.rawValue]]),E.value?(k(),S("div",$d,_(E.value),1)):se("",!0),i("div",Cd,[i("button",{onClick:ie},"apply"),i("button",{class:"clear-btn",onClick:O[9]||(O[9]=$=>F.value=null)},"cancel")])])])):se("",!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"],Ld={class:"stats-row"},Nd={class:"stat-card"},Fd={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"},Lf={class:"timeline-time mono muted"},Nf={class:"timeline-dur mono"},Ff={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=Ft({__name:"RenderHeatmap",setup(e){const t=Ft({name:"TreeNode",props:{node:Object,mode:String,threshold:Number,selected:String,expandedIds:Object},emits:["select","toggle"],setup(f,{emit:p}){function w(q){return f.mode==="count"?q.rerenders+q.mountCount:q.avgMs}function J(q){return w(q)>=f.threshold}function U(q){return{selected:f.selected===q.id,hot:J(q)}}return()=>{var Ve,Zt,es;const q=f.node,de=((Ve=f.expandedIds)==null?void 0:Ve.has(q.id))??!1,ye=q.children.length>0,Be=f.mode==="count"?`${q.rerenders+q.mountCount}`:`${q.avgMs.toFixed(1)}ms`,Ct=f.mode==="count"?"renders":"avg",mt=[],Ae=(Zt=q.element)==null?void 0:Zt.toLowerCase();if(q.element&&q.element!==q.label&&!["div","span","p"].includes(Ae??"")&&mt.push(q.element),q.file!=="unknown"){const je=((es=q.file.split("/").pop())==null?void 0:es.replace(/\.vue$/i,""))??q.file;je!==q.label&&!mt.includes(je)&&mt.push(je)}return ke("div",{class:"tree-node"},[ke("div",{class:["tree-row",U(q)],style:{"--tree-depth":String(q.depth)},onClick:je=>{je.stopPropagation(),p("select",q)}},[ke("span",{class:"tree-rail","aria-hidden":"true"}),ke("button",{class:["tree-toggle",{empty:!ye}],disabled:!ye,onClick:je=>{je.stopPropagation(),ye&&p("toggle",q.id)}},ye?de?"⌄":"›":""),ke("div",{class:"tree-copy"},[ke("span",{class:"tree-name mono",title:q.label},q.label),mt.length?ke("div",{class:"tree-badges"},mt.slice(0,1).map(je=>ke("span",{class:"tree-badge mono",title:je},je))):null]),ke("div",{class:"tree-metrics mono"},[q.isPersistent?ke("span",{class:"tree-persistent-pill",title:"Layout / persistent component — survives navigation"},"persistent"):null,q.isHydrationMount?ke("span",{class:"tree-hydration-pill",title:"First mount was SSR hydration — not a user-triggered render"},"hydrated"):null,ke("span",{class:"tree-metric-pill"},`${Be} ${Ct}`),q.file&&q.file!=="unknown"?ke("button",{class:"tree-jump-btn",title:`Open ${q.file} in editor`,onClick:je=>{je.stopPropagation(),j(q.file)}},"↗"):null])]),de&&ye?ke("div",{class:"tree-children"},q.children.map(je=>ke(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}=ks(),o=ae("count"),l=ae(""),r=ae(3),a=ae(16),c=re({get:()=>o.value==="count"?r.value:a.value,set:f=>{o.value==="count"?r.value=f:a.value=f}}),m=ae(!1),d=ae(!1),g=ae(""),M=ae(null),y=ae(null),b=ae(new Set),A=ae([]),Q=ae(!1);function K(f){var w;if(f.name&&f.name!=="unknown"&&!/^Component#\d+$/.test(f.name))return f.name;if(f.element)return f.element;const p=(w=f.file.split("/").pop())==null?void 0:w.replace(/\.vue$/i,"");return p&&p!=="unknown"?p:f.name&&f.name!=="unknown"?f.name:`Component#${f.uid}`}function G(f){return`${f.type}: ${f.key}`}function F(f){const p=new Map;for(const U of f)p.set(String(U.uid),{id:String(U.uid),label:K(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(G),timeline:U.timeline??[],children:[],parentId:U.parentUid!==void 0?String(U.parentUid):void 0,isPersistent:!!U.isPersistent,isHydrationMount:!!U.isHydrationMount,route:U.route??"/"});const w=[];for(const U of f){const q=p.get(String(U.uid));if(!q)continue;const de=U.parentUid!==void 0?p.get(String(U.parentUid)):void 0;de?(q.parentLabel=de.label,de.children.push(q)):w.push(q)}function J(U,q=[],de=0){U.depth=de,U.path=[...q,U.label],U.children.forEach(ye=>J(ye,U.path,de+1))}return w.forEach(U=>J(U)),w}function E(f){const p=[];function w(J){p.push(J),J.children.forEach(w)}return f.forEach(w),p}function R(f){return 1+f.children.reduce((p,w)=>p+R(w),0)}function ie(f,p=new Set){return p.add(f.id),f.children.forEach(w=>ie(w,p)),p}function H(f,p,w=[]){const J=[...w,f.id];if(f.id===p)return J;for(const U of f.children){const q=H(U,p,J);if(q)return q}return null}function O(f){if(h(f))return f;for(const p of f.children){const w=O(p);if(w)return w}return null}function $(f){if(!f)return new Set;const p=new Set;function w(J){J.children.length>0&&(p.add(J.id),J.children.forEach(w))}return w(f),p}function T(f,p){const w=$(f);if(!f||!p)return w;function J(U){const q=U.children.some(ye=>J(ye)),de=W(U,p);return q&&w.add(U.id),de||q}return J(f),w}function C(f){return o.value==="count"?f.rerenders+f.mountCount:f.avgMs}function h(f){return C(f)>=c.value}function W(f,p){if(!p)return!0;const w=p.toLowerCase();return f.label.toLowerCase().includes(w)||f.file.toLowerCase().includes(w)||f.path.some(J=>J.toLowerCase().includes(w))||f.triggers.some(J=>J.toLowerCase().includes(w))}function ee(f,p){return p?W(f,p)||f.children.some(w=>ee(w,p)):!0}function he(f){return h(f)||f.children.some(p=>he(p))}function D(f){return!l.value||f.route===l.value?!0:f.timeline.some(p=>p.route===l.value)}function Z(f){return D(f)||f.children.some(p=>Z(p))}function le(f,p){const w=ee(f,p),J=!m.value||he(f),U=!l.value||Z(f);return w&&J&&U}function me(f,p){const w=f.children.map(de=>me(de,p)).filter(de=>de!==null),J=!p||W(f,p)||w.length>0,U=!m.value||h(f)||w.length>0,q=!l.value||D(f)||w.length>0;return!J||!U||!q?null:{...f,children:w}}const wt=re(()=>d.value?A.value:s.value),Ce=re(()=>F(wt.value)),Ee=re(()=>new Map(Ce.value.map(f=>[f.id,f]))),Oe=re(()=>E(Ce.value)),Fe=re(()=>{const f=g.value.trim();return Ce.value.filter(p=>le(p,f))}),Re=re(()=>y.value?Fe.value.find(f=>f.id===y.value)??Ee.value.get(y.value)??null:Fe.value[0]??Ce.value[0]??null),vt=re(()=>{const f=g.value.trim();return Re.value?me(Re.value,f):null}),$t=re(()=>vt.value?[vt.value]:[]),jt=re(()=>Fe.value.map((f,p)=>({id:f.id,label:`App ${p+1}`,meta:`${R(f)} nodes`,root:f}))),Ss=re(()=>{const f=new Set;for(const p of Oe.value){p.route&&f.add(p.route);for(const w of p.timeline)w.route&&f.add(w.route)}return[...f].sort()}),te=re(()=>Oe.value.find(f=>f.id===M.value)??null),Gn=re(()=>Oe.value.reduce((f,p)=>f+p.rerenders+p.mountCount,0)),u=re(()=>Oe.value.filter(f=>h(f)).length),v=re(()=>{const f=Oe.value.filter(p=>p.avgMs>0);return f.length?(f.reduce((p,w)=>p+w.avgMs,0)/f.length).toFixed(1):"0.0"});bt(Ce,f=>{if(!f.length){y.value=null,M.value=null,b.value=new Set,Q.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&&!Oe.value.some(U=>U.id===M.value)&&(M.value=null);const w=new Set(Oe.value.map(U=>U.id)),J=new Set([...b.value].filter(U=>w.has(U)));if(!Q.value){b.value=$(Re.value),Q.value=!0;return}!g.value.trim()&&M.value&&Re.value&&(H(Re.value,M.value)??[]).forEach(q=>J.add(q)),b.value=J},{immediate:!0}),bt(g,f=>{if(!Re.value)return;const p=f.trim();if(p){b.value=T(Re.value,p);return}if(M.value){const w=H(Re.value,M.value);b.value=w?new Set(w):$(Re.value);return}b.value=$(Re.value)}),bt([m,c,o,Fe],()=>{if(!m.value)return;const f=Fe.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),b.value=new Set(H(f,p.id)??[f.id])});function x(f){M.value=f.id;const p=Ce.value.find(w=>ie(w).has(f.id));p&&(y.value=p.id,b.value=new Set(H(p,f.id)??[p.id]))}function N(f){const p=new Set(b.value);p.has(f)?p.delete(f):p.add(f),b.value=p}function I(f){y.value=f.id,b.value=$(f),Q.value=!0}function P(f){const p=f.target;g.value=(p==null?void 0:p.value)??""}function B(){if(d.value){d.value=!1,A.value=[];return}A.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 j(f){var w;if(!f||f==="unknown")return;const p=Ns();p&&((w=window.top)==null||w.postMessage({type:"observatory:open-in-editor",file:f},p))}function L(f){return f.path.join(" / ")}function Y(f){return f<1?"<1ms":`${f.toFixed(1)}ms`}function z(f){return`+${(f/1e3).toFixed(2)}s`}return(f,p)=>(k(),S("div",Td,[i("div",Md,[i("div",Ed,[i("button",{class:ne({active:o.value==="count"}),onClick:p[0]||(p[0]=w=>o.value="count")},"render count",2),i("button",{class:ne({active:o.value==="time"}),onClick:p[1]||(p[1]=w=>o.value="time")},"render time",2)]),i("div",Od,[p[7]||(p[7]=i("span",{class:"muted text-sm"},"threshold",-1)),Nt(i("input",{"onUpdate:modelValue":p[2]||(p[2]=w=>c.value=w),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,_(c.value)+_(o.value==="count"?"+ renders":"ms+"),1)]),i("button",{class:ne({active:m.value}),onClick:p[3]||(p[3]=w=>m.value=!m.value)},"hot only",2),Nt(i("select",{"onUpdate:modelValue":p[4]||(p[4]=w=>l.value=w),class:"route-select mono text-sm",title:"Filter by route"},[p[8]||(p[8]=i("option",{value:""},"all routes",-1)),(k(!0),S(ce,null,_e(Ss.value,w=>(k(),S("option",{key:w,value:w},_(w),9,Pd))),128))],512),[[$a,l.value]]),i("button",{class:ne({active:d.value}),style:{"margin-left":"auto"},onClick:B},_(d.value?"unfreeze":"freeze snapshot"),3)]),i("div",Ld,[i("div",Nd,[p[9]||(p[9]=i("div",{class:"stat-label"},"components",-1)),i("div",Fd,_(Oe.value.length),1)]),i("div",Rd,[p[10]||(p[10]=i("div",{class:"stat-label"},"total renders",-1)),i("div",jd,_(Gn.value),1)]),i("div",Dd,[p[11]||(p[11]=i("div",{class:"stat-label"},"hot",-1)),i("div",Hd,_(u.value),1)]),i("div",Vd,[p[12]||(p[12]=i("div",{class:"stat-label"},"avg time",-1)),i("div",Ud,_(v.value)+"ms",1)])]),i("div",Bd,[i("aside",Kd,[p[13]||(p[13]=i("div",{class:"panel-title"},"apps",-1)),(k(!0),S(ce,null,_e(jt.value,w=>(k(),S("button",{key:w.id,class:ne(["root-item",{active:y.value===w.id}]),onClick:J=>I(w.root)},[i("div",zd,[i("span",qd,_(w.label),1),i("span",Jd,_(w.root.label),1)]),i("span",Gd,_(w.meta),1)],10,Wd))),128)),jt.value.length?se("",!0):(k(),S("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,[(k(!0),S(ce,null,_e($t.value,w=>{var J;return k(),Ot(yt(t),{key:w.id,node:w,mode:o.value,threshold:c.value,selected:(J=te.value)==null?void 0:J.id,"expanded-ids":b.value,onSelect:x,onToggle:N},null,8,["node","mode","threshold","selected","expanded-ids"])}),128))]),$t.value.length?se("",!0):(k(),S("div",sf,_(yt(n)?"No render activity recorded yet.":"Waiting for connection to the Nuxt app…"),1))])]),i("aside",nf,[te.value?(k(),S(ce,{key:0},[i("div",of,[i("span",lf,_(te.value.label),1),i("button",{onClick:p[5]||(p[5]=w=>M.value=null)},"×")]),i("div",rf,[i("span",af,_(te.value.rerenders+te.value.mountCount)+" render"+_(te.value.rerenders+te.value.mountCount!==1?"s":""),1),i("span",cf,_(te.value.mountCount)+" mount"+_(te.value.mountCount!==1?"s":""),1),te.value.rerenders?(k(),S("span",uf,_(te.value.rerenders)+" re-render"+_(te.value.rerenders!==1?"s":""),1)):se("",!0),te.value.isPersistent?(k(),S("span",df,"persistent")):se("",!0),te.value.isHydrationMount?(k(),S("span",ff,"hydrated")):se("",!0),i("span",pf,_(te.value.avgMs.toFixed(1))+"ms avg",1),i("span",{class:ne(["detail-pill mono",{hot:h(te.value)}])},_(h(te.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,_(te.value.label),1),p[15]||(p[15]=i("span",{class:"muted text-sm"},"path",-1)),i("span",mf,_(L(te.value)),1),p[16]||(p[16]=i("span",{class:"muted text-sm"},"file",-1)),i("span",gf,[Te(_(te.value.file)+" ",1),te.value.file&&te.value.file!=="unknown"?(k(),S("button",{key:0,class:"jump-btn",title:"Open in editor",onClick:p[6]||(p[6]=w=>j(te.value.file))}," open ↗ ")):se("",!0)]),p[17]||(p[17]=i("span",{class:"muted text-sm"},"file name",-1)),i("span",_f,_(V(te.value.file)),1),p[18]||(p[18]=i("span",{class:"muted text-sm"},"parent",-1)),i("span",bf,_(te.value.parentLabel??"none"),1),p[19]||(p[19]=i("span",{class:"muted text-sm"},"children",-1)),i("span",yf,_(te.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,_(te.value.rerenders+te.value.mountCount),1),p[21]||(p[21]=i("span",{class:"muted text-sm"},"re-renders",-1)),i("span",$f,_(te.value.rerenders),1),p[22]||(p[22]=i("span",{class:"muted text-sm"},"mounts",-1)),i("span",Cf,_(te.value.mountCount),1),p[23]||(p[23]=i("span",{class:"muted text-sm"},"persistent",-1)),i("span",{class:"mono text-sm",style:we({color:te.value.isPersistent?"var(--amber)":"inherit"})},_(te.value.isPersistent?"yes — survives navigation":"no"),5),p[24]||(p[24]=i("span",{class:"muted text-sm"},"hydration mount",-1)),i("span",kf,_(te.value.isHydrationMount?"yes — SSR hydrated":"no"),1),p[25]||(p[25]=i("span",{class:"muted text-sm"},"avg render time",-1)),i("span",Sf,_(te.value.avgMs.toFixed(1))+"ms",1),p[26]||(p[26]=i("span",{class:"muted text-sm"},"threshold",-1)),i("span",Tf,_(c.value)+_(o.value==="count"?"+ renders":"ms+"),1),p[27]||(p[27]=i("span",{class:"muted text-sm"},"mode",-1)),i("span",Mf,_(o.value==="count"?"re-render count":"render time"),1)]),p[31]||(p[31]=i("div",{class:"section-label"},"triggers",-1)),(k(!0),S(ce,null,_e(te.value.triggers,w=>(k(),S("div",{key:w,class:"trigger-item mono text-sm"},_(w),1))),128)),te.value.triggers.length?se("",!0):(k(),S("div",Ef,"no triggers recorded")),i("div",Of,[p[28]||(p[28]=Te(" render timeline ",-1)),i("span",Af," ("+_(te.value.timeline.length)+") ",1)]),te.value.timeline.length?(k(),S("div",Pf,[(k(!0),S(ce,null,_e([...te.value.timeline].reverse().slice(0,30),(w,J)=>(k(),S("div",{key:J,class:"timeline-row"},[i("span",{class:ne(["timeline-kind mono",w.kind])},_(w.kind),3),i("span",Lf,_(z(w.t)),1),i("span",Nf,_(Y(w.durationMs)),1),w.triggerKey?(k(),S("span",Ff,_(w.triggerKey),1)):se("",!0),i("span",Rf,_(w.route),1)]))),128)),te.value.timeline.length>30?(k(),S("div",jf," … "+_(te.value.timeline.length-30)+" earlier events ",1)):se("",!0)])):(k(),S("div",If,"no timeline events yet"))],64)):(k(),S("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=Ft({__name:"TransitionTimeline",setup(e){const{transitions:t,connected:s}=ks(),n=ae("all"),o=ae(""),l=ae(null),r=re(()=>{let y=[...t.value];if(o.value){const b=o.value.toLowerCase();y=y.filter(A=>A.transitionName.toLowerCase().includes(b)||A.parentComponent.toLowerCase().includes(b))}return n.value==="cancelled"?y=y.filter(b=>b.cancelled||b.phase==="interrupted"):n.value==="active"?y=y.filter(b=>b.phase==="entering"||b.phase==="leaving"):n.value==="completed"&&(y=y.filter(b=>b.phase==="entered"||b.phase==="left")),y.sort((b,A)=>{const Q=b.endTime??b.startTime;return(A.endTime??A.startTime)-Q})}),a=re(()=>({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(b=>b.durationMs!==void 0);return y.length?Math.round(y.reduce((b,A)=>b+(A.durationMs??0),0)/y.length):0})()})),c=re(()=>{const y=r.value;if(!y.length)return[];const b=y.reduce((K,G)=>Math.min(K,G.startTime),y[0].startTime),A=y.reduce((K,G)=>Math.max(K,G.endTime??G.startTime+400),0),Q=Math.max(A-b,1);return y.map(K=>({left:(K.startTime-b)/Q*100,width:((K.endTime??K.startTime+80)-K.startTime)/Q*100}))});function m(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,b)=>(k(),S("div",Uf,[i("div",Bf,[i("div",Kf,[i("div",Wf,_(a.value.total),1),b[6]||(b[6]=i("div",{class:"stat-label"},"total",-1))]),i("div",zf,[i("div",qf,_(a.value.active),1),b[7]||(b[7]=i("div",{class:"stat-label"},"active",-1))]),i("div",Jf,[i("div",Gf,_(a.value.cancelled),1),b[8]||(b[8]=i("div",{class:"stat-label"},"cancelled",-1))]),i("div",Yf,[i("div",Qf,[Te(_(a.value.avgMs)+" ",1),b[9]||(b[9]=i("span",{class:"stat-unit"},"ms",-1))]),b[10]||(b[10]=i("div",{class:"stat-label"},"avg duration",-1))])]),i("div",Xf,[Nt(i("input",{"onUpdate:modelValue":b[0]||(b[0]=A=>o.value=A),type:"search",placeholder:"filter by name or component…",class:"search-input"},null,512),[[Yt,o.value]]),i("div",Zf,[i("button",{class:ne({active:n.value==="all"}),onClick:b[1]||(b[1]=A=>n.value="all")},"All",2),i("button",{class:ne({active:n.value==="active"}),onClick:b[2]||(b[2]=A=>n.value="active")},"Active",2),i("button",{class:ne({active:n.value==="completed"}),onClick:b[3]||(b[3]=A=>n.value="completed")},"Completed",2),i("button",{class:ne({active:n.value==="cancelled","danger-active":n.value==="cancelled"}),onClick:b[4]||(b[4]=A=>n.value="cancelled")}," Cancelled ",2)])]),i("div",ep,[i("div",{class:ne(["table-pane",{"has-panel":l.value}])},[i("table",tp,[b[11]||(b[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,[(k(!0),S(ce,null,_e(r.value,(A,Q)=>{var K,G,F;return k(),S("tr",{key:A.id,class:ne({selected:((K=l.value)==null?void 0:K.id)===A.id}),onClick:E=>{var R;return l.value=((R=l.value)==null?void 0:R.id)===A.id?null:A}},[i("td",null,[i("span",np,_(A.transitionName),1)]),i("td",null,[i("span",{class:"mono",style:we([{"font-size":"11px"},{color:M(A)}])},_(g(A)),5)]),i("td",null,[i("span",{class:ne(["badge",d(A.phase)])},_(A.phase),3)]),i("td",op,_(A.durationMs!==void 0?A.durationMs+"ms":"—"),1),i("td",lp,_(A.parentComponent),1),i("td",ip,[i("div",rp,[i("div",{class:"bar-fill",style:we({left:((G=c.value[Q])==null?void 0:G.left)+"%",width:Math.max(((F=c.value[Q])==null?void 0:F.width)??1,1)+"%",background:m(A.phase),opacity:A.phase==="entering"||A.phase==="leaving"?"0.55":"1"})},null,4)])])],10,sp)}),128)),r.value.length?se("",!0):(k(),S("tr",ap,[i("td",cp,_(yt(s)?"No transitions recorded yet — trigger one on the page.":"Waiting for connection to the Nuxt app…"),1)]))])])],2),$e(On,{name:"panel-slide"},{default:Ds(()=>[l.value?(k(),S("aside",up,[i("div",dp,[i("span",fp,_(l.value.transitionName),1),i("button",{class:"close-btn",onClick:b[5]||(b[5]=A=>l.value=null)},"✕")]),i("div",pp,[i("div",hp,[b[12]||(b[12]=i("span",{class:"panel-key"},"Direction",-1)),i("span",{class:"panel-val",style:we({color:M(l.value)})},_(g(l.value)),5)]),i("div",vp,[b[13]||(b[13]=i("span",{class:"panel-key"},"Phase",-1)),i("span",{class:ne(["badge",d(l.value.phase)])},_(l.value.phase),3)]),i("div",mp,[b[14]||(b[14]=i("span",{class:"panel-key"},"Component",-1)),i("span",gp,_(l.value.parentComponent),1)]),l.value.mode?(k(),S("div",_p,[b[15]||(b[15]=i("span",{class:"panel-key"},"Mode",-1)),i("span",bp,_(l.value.mode),1)])):se("",!0)]),i("div",yp,[b[19]||(b[19]=i("div",{class:"panel-section-title"},"Timing",-1)),i("div",xp,[b[16]||(b[16]=i("span",{class:"panel-key"},"Start",-1)),i("span",wp,_(l.value.startTime.toFixed(2))+"ms",1)]),i("div",$p,[b[17]||(b[17]=i("span",{class:"panel-key"},"End",-1)),i("span",Cp,_(l.value.endTime!==void 0?l.value.endTime.toFixed(2)+"ms":"—"),1)]),i("div",kp,[b[18]||(b[18]=i("span",{class:"panel-key"},"Duration",-1)),i("span",Sp,_(l.value.durationMs!==void 0?l.value.durationMs+"ms":l.value.phase==="interrupted"?"interrupted":"in progress"),1)])]),i("div",Tp,[b[22]||(b[22]=i("div",{class:"panel-section-title"},"Flags",-1)),i("div",Mp,[b[20]||(b[20]=i("span",{class:"panel-key"},"Appear",-1)),i("span",{class:"panel-val",style:we({color:l.value.appear?"var(--amber)":"var(--text3)"})},_(l.value.appear?"yes":"no"),5)]),i("div",Ep,[b[21]||(b[21]=i("span",{class:"panel-key"},"Cancelled",-1)),i("span",{class:"panel-val",style:we({color:l.value.cancelled?"var(--red)":"var(--text3)"})},_(l.value.cancelled?"yes":"no"),5)])]),l.value.cancelled?(k(),S("div",Op,[...b[23]||(b[23]=[Te(" 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),Te(" / ",-1),i("code",null,"onLeaveCancelled",-1),Te(" . ",-1)])])):se("",!0),l.value.phase==="entering"||l.value.phase==="leaving"?(k(),S("div",Ap,[...b[24]||(b[24]=[Te(" Transition is currently in progress. If it stays in this state longer than expected, the ",-1),i("code",null,"done()",-1),Te(" callback may not be getting called (JS-mode transition stall). ",-1)])])):se("",!0)])):se("",!0)]),_:1})])]))}}),Pp=Xt(Ip,[["__scopeId","data-v-da869dac"]]),Lp={id:"app-root"},Np={class:"tabbar"},Fp=["onClick"],Rp={class:"tab-icon"},jp={class:"tab-content"},Dp=Ft({__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=ae(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)=>(k(),S("div",Lp,[i("nav",Np,[r[0]||(r[0]=i("div",{class:"tabbar-brand"},"observatory",-1)),(k(),S(ce,null,_e(o,a=>i("button",{key:a.id,class:ne(["tab-btn",{active:n.value===a.id}]),onClick:c=>n.value=a.id},[i("span",Rp,_(a.icon),1),Te(" "+_(a.label),1)],10,Fp)),64))]),i("main",jp,[n.value==="fetch"?(k(),Ot(wc,{key:0})):n.value==="provide"?(k(),Ot(ru,{key:1})):n.value==="composable"?(k(),Ot(Sd,{key:2})):n.value==="heatmap"?(k(),Ot(Vf,{key:3})):n.value==="transitions"?(k(),Ot(Pp,{key:4})):se("",!0)])]))}}),Hp=Xt(Dp,[["__scopeId","data-v-08e3ddb5"]]);Ma(Hp).mount("#app");