nuxt-devtools-observatory 0.1.12 → 0.1.13

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