mfe-index/app/doxa-maps/plugin-studio/plugin-studio.js

352 lines
169 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(function(){"use strict";/**
* @vue/shared v3.5.42
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/function Ps(e){const t=Object.create(null);for(const s of e.split(","))t[s]=1;return s=>s in t}const U={},it=[],$e=()=>{},Co=()=>!1,Bt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Wt=e=>e.startsWith("onUpdate:"),Z=Object.assign,Rs=(e,t)=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)},Hi=Object.prototype.hasOwnProperty,D=(e,t)=>Hi.call(e,t),A=Array.isArray,qe=e=>vt(e)==="[object Map]",qt=e=>vt(e)==="[object Set]",To=e=>vt(e)==="[object Date]",R=e=>typeof e=="function",G=e=>typeof e=="string",me=e=>typeof e=="symbol",V=e=>e!==null&&typeof e=="object",Oo=e=>(V(e)||R(e))&&R(e.then)&&R(e.catch),Ao=Object.prototype.toString,vt=e=>Ao.call(e),Di=e=>vt(e).slice(8,-1),Gt=e=>vt(e)==="[object Object]",Ns=e=>G(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,mt=Ps(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Xt=e=>{const t=Object.create(null);return s=>t[s]||(t[s]=e(s))},Fi=/-\w/g,oe=Xt(e=>e.replace(Fi,t=>t.slice(1).toUpperCase())),ji=/\B([A-Z])/g,be=Xt(e=>e.replace(ji,"-$1").toLowerCase()),Yt=Xt(e=>e.charAt(0).toUpperCase()+e.slice(1)),Is=Xt(e=>e?`on${Yt(e)}`:""),He=(e,t)=>!Object.is(e,t),Jt=(e,...t)=>{for(let s=0;s<e.length;s++)e[s](...t)},Mo=(e,t,s,o=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:s})},Hs=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Po=e=>{const t=G(e)?Number(e):NaN;return isNaN(t)?e:t};let Ro;const Zt=()=>Ro||(Ro=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function xt(e){if(A(e)){const t={};for(let s=0;s<e.length;s++){const o=e[s],n=G(o)?Ui(o):xt(o);if(n)for(const i in n)t[i]=n[i]}return t}else if(G(e)||V(e))return e}const Vi=/;(?![^(]*\))/g,zi=/:([^]+)/,Ki=/\/\*[^]*?\*\//g;function Ui(e){const t={};return e.replace(Ki,"").split(Vi).forEach(s=>{if(s){const o=s.split(zi);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function _e(e){let t="";if(G(e))t=e;else if(A(e))for(let s=0;s<e.length;s++){const o=_e(e[s]);o&&(t+=o+" ")}else if(V(e))for(const s in e)e[s]&&(t+=s+" ");return t.trim()}const Bi=Ps("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly");function No(e){return!!e||e===""}function Wi(e,t){if(e.length!==t.length)return!1;let s=!0;for(let o=0;s&&o<e.length;o++)s=Qt(e[o],t[o]);return s}function Io(e,t){if(e.size!==t.size)return!1;const s=Array.from(t),o=new Uint8Array(s.length);for(const n of e){let i=-1;for(let l=0;l<s.length;l++)if(!o[l]&&Qt(n,s[l])){i=l;break}if(i<0)return!1;o[i]=1}return!0}function Qt(e,t){if(e===t)return!0;let s=To(e),o=To(t);if(s||o)return s&&o?e.getTime()===t.getTime():!1;if(s=me(e),o=me(t),s||o)return e===t;if(s=A(e),o=A(t),s||o)return s&&o?Wi(e,t):!1;if(s=V(e),o=V(t),s||o){if(!s||!o)return!1;if(s=qe(e),o=qe(t),s||o||(s=qt(e),o=qt(t),s||o))return s&&o?Io(e,t):!1;const n=Object.keys(e).length,i=Object.keys(t).length;if(n!==i)return!1;for(const l in e){const r=e.hasOwnProperty(l),a=t.hasOwnProperty(l);if(r&&!a||!r&&a||!Qt(e[l],t[l]))return!1}}return String(e)===String(t)}const Ho=e=>!!(e&&e.__v_isRef===!0),M=e=>G(e)?e:e==null?"":A(e)||V(e)&&(e.toString===Ao||!R(e.toString))?Ho(e)?M(e.value):JSON.stringify(e,Do,2):String(e),Do=(e,t)=>Ho(t)?Do(e,t.value):qe(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((s,[o,n],i)=>(s[Ds(o,i)+" =>"]=n,s),{})}:qt(t)?{[`Set(${t.size})`]:[...t.values()].map(s=>Ds(s))}:me(t)?Ds(t):V(t)&&!A(t)&&!Gt(t)?String(t):t,Ds=(e,t="")=>{var s;return me(e)?`Symbol(${(s=e.description)!=null?s:t})`:e};/**
* @vue/reactivity v3.5.42
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/let ne;class qi{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&ne&&(ne.active?(this.parent=ne,this.index=(ne.scopes||(ne.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,s;if(this.scopes){const o=this.scopes.slice();for(t=0,s=o.length;t<s;t++)o[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){const n=this.scopes.slice();for(t=0,s=n.length;t<s;t++)n[t].resume()}const o=this.effects.slice();for(t=0,s=o.length;t<s;t++)o[t].resume()}}run(t){if(this._active){const s=ne;try{return ne=this,t()}finally{ne=s}}}on(){++this._on===1&&(this.prevScope=ne,ne=this)}off(){if(this._on>0&&--this._on===0){if(ne===this)ne=this.prevScope;else{let t=ne;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let s,o;for(s=0,o=this.effects.length;s<o;s++)this.effects[s].stop();for(this.effects.length=0,s=0,o=this.cleanups.length;s<o;s++)this.cleanups[s]();if(this.cleanups.length=0,this.scopes){const n=this.scopes.slice();for(s=0,o=n.length;s<o;s++)n[s].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const n=this.parent.scopes.pop();n&&n!==this&&(this.parent.scopes[this.index]=n,n.index=this.index)}this.parent=void 0}}}function Gi(){return ne}let W;const Fs=new WeakSet;class Fo{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,ne&&(ne.active?ne.effects.push(this):this.flags&=-2)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Fs.has(this)&&(Fs.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||Vo(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,Wo(this),zo(this);const t=W,s=xe;W=this,xe=!0;try{return this.fn()}finally{Ko(this),W=t,xe=s,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)Ks(t);this.deps=this.depsTail=void 0,Wo(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Fs.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){zs(this)&&this.run()}get dirty(){return zs(this)}}let jo=0,yt,wt;function Vo(e,t=!1){if(e.flags|=8,t){e.next=wt,wt=e;return}e.next=yt,yt=e}function js(){jo++}function Vs(){if(--jo>0)return;if(wt){let t=wt;for(wt=void 0;t;){const s=t.next;t.next=void 0,t.flags&=-9,t=s}}let e;for(;yt;){let t=yt;for(yt=void 0;t;){const s=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=s}}if(e)throw e}function zo(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Ko(e){let t,s=e.depsTail,o=s;for(;o;){const n=o.prevDep;o.version===-1?(o===s&&(s=n),Ks(o),Xi(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=n}e.deps=t,e.depsTail=s}function zs(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Uo(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Uo(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===$t)||(e.globalVersion=$t,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!zs(e))))return;e.flags|=2;const t=e.dep,s=W,o=xe;W=e,xe=!0;try{zo(e);const n=e.fn(e._value);(t.version===0||He(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(n){throw t.version++,n}finally{W=s,xe=o,Ko(e),e.flags&=-3}}function Ks(e,t=!1){const{dep:s,prevSub:o,nextSub:n}=e;if(o&&(o.nextSub=n,e.prevSub=void 0),n&&(n.prevSub=o,e.nextSub=void 0),s.subs===e&&(s.subs=o,!o&&s.computed)){s.computed.flags&=-5;for(let i=s.computed.deps;i;i=i.nextDep)Ks(i,!0)}!t&&!--s.sc&&s.map&&s.map.delete(s.key)}function Xi(e){const{prevDep:t,nextDep:s}=e;t&&(t.nextDep=s,e.prevDep=void 0),s&&(s.prevDep=t,e.nextDep=void 0)}let xe=!0;const Bo=[];function Se(){Bo.push(xe),xe=!1}function Le(){const e=Bo.pop();xe=e===void 0?!0:e}function Wo(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const s=W;W=void 0;try{t()}finally{W=s}}}let $t=0;class Yi{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 qo{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(!W||!xe||W===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==W)s=this.activeLink=new Yi(W,this),W.deps?(s.prevDep=W.depsTail,W.depsTail.nextDep=s,W.depsTail=s):W.deps=W.depsTail=s,Go(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const o=s.nextDep;o.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=o),s.prevDep=W.depsTail,s.nextDep=void 0,W.depsTail.nextDep=s,W.depsTail=s,W.deps===s&&(W.deps=o)}return s}trigger(t){this.version++,$t++,this.notify(t)}notify(t){js();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{Vs()}}}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 o=t.deps;o;o=o.nextDep)Go(o)}const s=e.dep.subs;s!==e&&(e.prevSub=s,s&&(s.nextSub=e)),e.dep.subs=e}}const Us=new WeakMap,Je=Symbol(""),Bs=Symbol(""),_t=Symbol("");function re(e,t,s){if(xe&&W){let o=Us.get(e);o||Us.set(e,o=new Map);let n=o.get(s);n||(o.set(s,n=new qo),n.map=o,n.key=s),n.track()}}function De(e,t,s,o,n,i){const l=Us.get(e);if(!l){$t++;return}const r=a=>{a&&a.trigger()};if(js(),t==="clear")l.forEach(r);else{const a=A(e),f=a&&Ns(s);if(a&&s==="length"){const p=Number(o);l.forEach((h,y)=>{(y==="length"||y===_t||!me(y)&&y>=p)&&r(h)})}else switch((s!==void 0||l.has(void 0))&&r(l.get(s)),f&&r(l.get(_t)),t){case"add":a?f&&r(l.get("length")):(r(l.get(Je)),qe(e)&&r(l.get(Bs)));break;case"delete":a||(r(l.get(Je)),qe(e)&&r(l.get(Bs)));break;case"set":qe(e)&&r(l.get(Je));break}}Vs()}function lt(e){const t=F(e);return t===e?t:(re(t,"iterate",_t),ye(e)?t:t.map(je))}function es(e){return re(e=F(e),"iterate",_t),e}function Ee(e,t){return Ge(e)?rt(Ze(e)?je(t):t):je(t)}const Ji={__proto__:null,[Symbol.iterator](){return Ws(this,Symbol.iterator,e=>Ee(this,e))},concat(...e){return lt(this).concat(...e.map(t=>A(t)?lt(t):t))},entries(){return Ws(this,"entries",e=>(e[1]=Ee(this,e[1]),e))},every(e,t){return Fe(this,"every",e,t,void 0,arguments)},filter(e,t){return Fe(this,"filter",e,t,s=>s.map(o=>Ee(this,o)),arguments)},find(e,t){return Fe(this,"find",e,t,s=>Ee(this,s),arguments)},findIndex(e,t){return Fe(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Fe(this,"findLast",e,t,s=>Ee(this,s),arguments)},findLastIndex(e,t){return Fe(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Fe(this,"forEach",e,t,void 0,arguments)},includes(...e){return qs(this,"includes",e)},indexOf(...e){return qs(this,"indexOf",e)},join(e){return lt(this).join(e)},lastIndexOf(...e){return qs(this,"lastIndexOf",e)},map(e,t){return Fe(this,"map",e,t,void 0,arguments)},pop(){return St(this,"pop")},push(...e){return St(this,"push",e)},reduce(e,...t){return Xo(this,"reduce",e,t)},reduceRight(e,...t){return Xo(this,"reduceRight",e,t)},shift(){return St(this,"shift")},some(e,t){return Fe(this,"some",e,t,void 0,arguments)},splice(...e){return St(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 St(this,"unshift",e)},values(){return Ws(this,"values",e=>Ee(this,e))}};function Ws(e,t,s){const o=es(e),n=o[t]();return o!==e&&!ye(e)&&(n._next=n.next,n.next=()=>{const i=n._next();return i.done||(i.value=s(i.value)),i}),n}const Zi=Array.prototype;function Fe(e,t,s,o,n,i){const l=es(e),r=l!==e&&!ye(e),a=l[t];if(a!==Zi[t]){const h=a.apply(e,i);return r?je(h):h}let f=s;l!==e&&(r?f=function(h,y){return s.call(this,Ee(e,h),y,e)}:s.length>2&&(f=function(h,y){return s.call(this,h,y,e)}));const p=a.call(l,f,o);return r&&n?n(p):p}function Xo(e,t,s,o){const n=es(e),i=n!==e&&!ye(e);let l=s,r=!1;n!==e&&(i?(r=o.length===0,l=function(f,p,h){return r&&(r=!1,f=Ee(e,f)),s.call(this,f,Ee(e,p),h,e)}):s.length>3&&(l=function(f,p,h){return s.call(this,f,p,h,e)}));const a=n[t](l,...o);return r?Ee(e,a):a}function qs(e,t,s){const o=F(e);re(o,"iterate",_t);const n=o[t](...s);return(n===-1||n===!1)&&Js(s[0])?(s[0]=F(s[0]),o[t](...s)):n}function St(e,t,s=[]){Se(),js();const o=F(e)[t].apply(e,s);return Vs(),Le(),o}const Qi=Ps("__proto__,__v_isRef,__isVue"),Yo=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(me));function el(e){me(e)||(e=String(e));const t=F(this);return re(t,"has",e),t.hasOwnProperty(e)}class Jo{constructor(t=!1,s=!1){this._isReadonly=t,this._isShallow=s}get(t,s,o){if(s==="__v_skip")return t.__v_skip;const n=this._isReadonly,i=this._isShallow;if(s==="__v_isReactive")return!n;if(s==="__v_isReadonly")return n;if(s==="__v_isShallow")return i;if(s==="__v_raw")return o===(n?i?on:sn:i?tn:en).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const l=A(t);if(!n){let a;if(l&&(a=Ji[s]))return a;if(s==="hasOwnProperty")return el}const r=Reflect.get(t,s,ae(t)?t:o);if((me(s)?Yo.has(s):Qi(s))||(n||re(t,"get",s),i))return r;if(ae(r)){const a=l&&Ns(s)?r:r.value;return n&&V(a)?Ys(a):a}return V(r)?n?Ys(r):Xs(r):r}}class Zo extends Jo{constructor(t=!1){super(!1,t)}set(t,s,o,n){let i=t[s];const l=A(t)&&Ns(s);if(!this._isShallow){const f=Ge(i);if(!ye(o)&&!Ge(o)&&(i=F(i),o=F(o)),!l&&ae(i)&&!ae(o))return f||(i.value=o),!0}const r=l?Number(s)<t.length:D(t,s),a=Reflect.set(t,s,o,ae(t)?t:n);return t===F(n)&&a&&(r?He(o,i)&&De(t,"set",s,o):De(t,"add",s,o)),a}deleteProperty(t,s){const o=D(t,s);t[s];const n=Reflect.deleteProperty(t,s);return n&&o&&De(t,"delete",s,void 0),n}has(t,s){const o=Reflect.has(t,s);return(!me(s)||!Yo.has(s))&&re(t,"has",s),o}ownKeys(t){return re(t,"iterate",A(t)?"length":Je),Reflect.ownKeys(t)}}class Qo extends Jo{constructor(t=!1){super(!0,t)}set(t,s){return!0}deleteProperty(t,s){return!0}}const tl=new Zo,sl=new Qo,ol=new Zo(!0),nl=new Qo(!0),Gs=e=>e,ts=e=>Reflect.getPrototypeOf(e);function il(e,t,s){return function(...o){const n=this.__v_raw,i=F(n),l=qe(i),r=e==="entries"||e===Symbol.iterator&&l,a=e==="keys"&&l,f=n[e](...o),p=s?Gs:t?rt:je;return!t&&re(i,"iterate",a?Bs:Je),Z(Object.create(f),{next(){const{value:h,done:y}=f.next();return y?{value:h,done:y}:{value:r?[p(h[0]),p(h[1])]:p(h),done:y}}})}}function ss(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function ll(e,t){const s={get(n){const i=this.__v_raw,l=F(i),r=F(n);e||(He(n,r)&&re(l,"get",n),re(l,"get",r));const{has:a}=ts(l),f=t?Gs:e?rt:je;if(a.call(l,n))return f(i.get(n));if(a.call(l,r))return f(i.get(r));i!==l&&i.get(n)},get size(){const n=this.__v_raw;return!e&&re(F(n),"iterate",Je),n.size},has(n){const i=this.__v_raw,l=F(i),r=F(n);return e||(He(n,r)&&re(l,"has",n),re(l,"has",r)),n===r?i.has(n):i.has(n)||i.has(r)},forEach(n,i){const l=this,r=l.__v_raw,a=F(r),f=t?Gs:e?rt:je;return!e&&re(a,"iterate",Je),r.forEach((p,h)=>n.call(i,f(p),f(h),l))}};return Z(s,e?{add:ss("add"),set:ss("set"),delete:ss("delete"),clear:ss("clear")}:{add(n){const i=F(this),l=ts(i),r=F(n),a=!t&&!ye(n)&&!Ge(n)?r:n;return l.has.call(i,a)||He(n,a)&&l.has.call(i,n)||He(r,a)&&l.has.call(i,r)||(i.add(a),De(i,"add",a,a)),this},set(n,i){!t&&!ye(i)&&!Ge(i)&&(i=F(i));const l=F(this),{has:r,get:a}=ts(l);let f=r.call(l,n);f||(n=F(n),f=r.call(l,n));const p=a.call(l,n);return l.set(n,i),f?He(i,p)&&De(l,"set",n,i):De(l,"add",n,i),this},delete(n){const i=F(this),{has:l,get:r}=ts(i);let a=l.call(i,n);a||(n=F(n),a=l.call(i,n)),r&&r.call(i,n);const f=i.delete(n);return a&&De(i,"delete",n,void 0),f},clear(){const n=F(this),i=n.size!==0,l=n.clear();return i&&De(n,"clear",void 0,void 0),l}}),["keys","values","entries",Symbol.iterator].forEach(n=>{s[n]=il(n,e,t)}),s}function os(e,t){const s=ll(e,t);return(o,n,i)=>n==="__v_isReactive"?!e:n==="__v_isReadonly"?e:n==="__v_raw"?o:Reflect.get(D(s,n)&&n in o?s:o,n,i)}const rl={get:os(!1,!1)},al={get:os(!1,!0)},cl={get:os(!0,!1)},dl={get:os(!0,!0)},en=new WeakMap,tn=new WeakMap,sn=new WeakMap,on=new WeakMap;function pl(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Xs(e){return Ge(e)?e:ns(e,!1,tl,rl,en)}function fl(e){return ns(e,!1,ol,al,tn)}function Ys(e){return ns(e,!0,sl,cl,sn)}function zd(e){return ns(e,!0,nl,dl,on)}function ns(e,t,s,o,n){if(!V(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const i=n.get(e);if(i)return i;const l=pl(Di(e));if(l===0)return e;const r=new Proxy(e,l===2?o:s);return n.set(e,r),r}function Ze(e){return Ge(e)?Ze(e.__v_raw):!!(e&&e.__v_isReactive)}function Ge(e){return!!(e&&e.__v_isReadonly)}function ye(e){return!!(e&&e.__v_isShallow)}function Js(e){return e?!!e.__v_raw:!1}function F(e){const t=e&&e.__v_raw;return t?F(t):e}function ul(e){return!D(e,"__v_skip")&&Object.isExtensible(e)&&Mo(e,"__v_skip",!0),e}const je=e=>V(e)?Xs(e):e,rt=e=>V(e)?Ys(e):e;function ae(e){return e?e.__v_isRef===!0:!1}function nn(e){return ae(e)?e.value:e}const hl={get:(e,t,s)=>t==="__v_raw"?e:nn(Reflect.get(e,t,s)),set:(e,t,s,o)=>{const n=e[t];return ae(n)&&!ae(s)?(n.value=s,!0):Reflect.set(e,t,s,o)}};function ln(e){return Ze(e)?e:new Proxy(e,hl)}class gl{constructor(t,s,o){this.fn=t,this.setter=s,this._value=void 0,this.dep=new qo(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=$t-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&W!==this)return Vo(this,!0),!0}get value(){const t=this.dep.track();return Uo(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function bl(e,t,s=!1){let o,n;return R(e)?o=e:(o=e.get,n=e.set),new gl(o,n,s)}const is={},ls=new WeakMap;let Qe;function vl(e,t=!1,s=Qe){if(s){let o=ls.get(s);o||ls.set(s,o=[]),o.push(e)}}function ml(e,t,s=U){const{immediate:o,deep:n,once:i,scheduler:l,augmentJob:r,call:a}=s,f=O=>n?O:ye(O)||n===!1||n===0?Ve(O,1):Ve(O);let p,h,y,S,j=!1,N=!1;if(ae(e)?(h=()=>e.value,j=ye(e)):Ze(e)?(h=()=>f(e),j=!0):A(e)?(N=!0,j=e.some(O=>Ze(O)||ye(O)),h=()=>e.map(O=>{if(ae(O))return O.value;if(Ze(O))return f(O);if(R(O))return a?a(O,2):O()})):R(e)?t?h=a?()=>a(e,2):e:h=()=>{if(y){Se();try{y()}finally{Le()}}const O=Qe;Qe=p;try{return a?a(e,3,[S]):e(S)}finally{Qe=O}}:h=$e,t&&n){const O=h,se=n===!0?1/0:n;h=()=>Ve(O(),se)}const ee=Gi(),Y=()=>{p.stop(),ee&&ee.active&&Rs(ee.effects,p)};if(i&&t){const O=t;t=(...se)=>{const Ae=O(...se);return Y(),Ae}}let H=N?new Array(e.length).fill(is):is;const z=O=>{if(!(!(p.flags&1)||!p.dirty&&!O))if(t){const se=p.run();if(O||n||j||(N?se.some((Ae,Me)=>He(Ae,H[Me])):He(se,H))){y&&y();const Ae=Qe;Qe=p;try{const Me=[se,H===is?void 0:N&&H[0]===is?[]:H,S];H=se,a?a(t,3,Me):t(...Me)}finally{Qe=Ae}}}else p.run()};return r&&r(z),p=new Fo(h),p.scheduler=l?()=>l(z,!1):z,S=O=>vl(O,!1,p),y=p.onStop=()=>{const O=ls.get(p);if(O){if(a)a(O,4);else for(const se of O)se();ls.delete(p)}},t?o?z(!0):H=p.run():l?l(z.bind(null,!0),!0):p.run(),Y.pause=p.pause.bind(p),Y.resume=p.resume.bind(p),Y.stop=Y,Y}function Ve(e,t=1/0,s){if(t<=0||!V(e)||e.__v_skip||(s=s||new Map,(s.get(e)||0)>=t))return e;if(s.set(e,t),t--,ae(e))Ve(e.value,t,s);else if(A(e))for(let o=0;o<e.length;o++)Ve(e[o],t,s);else if(qt(e)||qe(e))e.forEach(o=>{Ve(o,t,s)});else if(Gt(e)){for(const o in e)Ve(e[o],t,s);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&Ve(e[o],t,s)}return e}/**
* @vue/runtime-core v3.5.42
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/const Lt=[];let Zs=!1;function Kd(e,...t){if(Zs)return;Zs=!0,Se();const s=Lt.length?Lt[Lt.length-1].component:null,o=s&&s.appContext.config.warnHandler,n=xl();if(o)at(o,s,11,[e+t.map(i=>{var l,r;return(r=(l=i.toString)==null?void 0:l.call(i))!=null?r:JSON.stringify(i)}).join(""),s&&s.proxy,n.map(({vnode:i})=>`at <${ri(s,i.type)}>`).join(`
`),n]);else{const i=[`[Vue warn]: ${e}`,...t];n.length&&i.push(`
`,...yl(n)),console.warn(...i)}Le(),Zs=!1}function xl(){let e=Lt[Lt.length-1];if(!e)return[];const t=[];for(;e;){const s=t[0];s&&s.vnode===e?s.recurseCount++:t.push({vnode:e,recurseCount:0});const o=e.component&&e.component.parent;e=o&&o.vnode}return t}function yl(e){const t=[];return e.forEach((s,o)=>{t.push(...o===0?[]:[`
`],...wl(s))}),t}function wl({vnode:e,recurseCount:t}){const s=t>0?`... (${t} recursive calls)`:"",o=e.component?e.component.parent==null:!1,n=` at <${ri(e.component,e.type,o)}`,i=">"+s;return e.props?[n,...$l(e.props),i]:[n+i]}function $l(e){const t=[],s=Object.keys(e);return s.slice(0,3).forEach(o=>{t.push(...rn(o,e[o]))}),s.length>3&&t.push(" ..."),t}function rn(e,t,s){return G(t)?(t=JSON.stringify(t),s?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?s?t:[`${e}=${t}`]:ae(t)?(t=rn(e,F(t.value),!0),s?t:[`${e}=Ref<`,t,">"]):R(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=F(t),s?t:[`${e}=`,t])}function at(e,t,s,o){try{return o?e(...o):e()}catch(n){rs(n,t,s)}}function we(e,t,s,o){if(R(e)){const n=at(e,t,s,o);return n&&Oo(n)&&n.catch(i=>{rs(i,t,s)}),n}if(A(e)){const n=[];for(let i=0;i<e.length;i++)n.push(we(e[i],t,s,o));return n}}function rs(e,t,s,o=!0){const n=t?t.vnode:null,{errorHandler:i,throwUnhandledErrorInProduction:l}=t&&t.appContext.config||U;if(t){let r=t.parent;const a=t.proxy,f=`https://vuejs.org/error-reference/#runtime-${s}`;for(;r;){const p=r.ec;if(p){for(let h=0;h<p.length;h++)if(p[h](e,a,f)===!1)return}r=r.parent}if(i){Se(),at(i,null,10,[e,a,f]),Le();return}}_l(e,s,n,o,l)}function _l(e,t,s,o=!0,n=!1){if(n)throw e;console.error(e)}const de=[];let ke=-1;const ct=[];let Xe=null,dt=0;const an=Promise.resolve();let as=null;function cn(e){const t=as||an;return e?t.then(this?e.bind(this):e):t}function Sl(e){let t=ke+1,s=de.length;for(;t<s;){const o=t+s>>>1,n=de[o],i=Et(n);i<e||i===e&&n.flags&2?t=o+1:s=o}return t}function Qs(e){if(!(e.flags&1)){const t=Et(e),s=de[de.length-1];!s||!(e.flags&2)&&t>=Et(s)?de.push(e):de.splice(Sl(t),0,e),e.flags|=1,dn()}}function dn(){as||(as=an.then(un))}function Ll(e){if(!A(e))Xe&&e.id===-1?Xe.splice(dt+1,0,e):e.flags&1||(ct.push(e),e.flags|=1);else for(let t=0;t<e.length;t++)ct.push(e[t]);dn()}function pn(e,t,s=ke+1){for(;s<de.length;s++){const o=de[s];if(o&&o.flags&2){if(e&&o.id!==e.uid)continue;de.splice(s,1),s--,o.flags&4&&(o.flags&=-2),o(),o.flags&4||(o.flags&=-2)}}}function fn(e){if(ct.length){const t=[...new Set(ct)].sort((s,o)=>Et(s)-Et(o));if(ct.length=0,Xe){for(let s=0;s<t.length;s++)Xe.push(t[s]);return}for(Xe=t,dt=0;dt<Xe.length;dt++){const s=Xe[dt];s.flags&4&&(s.flags&=-2),s.flags&8||s(),s.flags&=-2}Xe=null,dt=0}}const Et=e=>e.id==null?e.flags&2?-1:1/0:e.id;function un(e){try{for(ke=0;ke<de.length;ke++){const t=de[ke];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),at(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;ke<de.length;ke++){const t=de[ke];t&&(t.flags&=-2)}ke=-1,de.length=0,fn(),as=null,(de.length||ct.length)&&un()}}let ie=null,hn=null;function cs(e){const t=ie;return ie=e,hn=e&&e.type.__scopeId||null,t}function pt(e,t=ie,s){if(!t||e._n)return e;const o=(...n)=>{o._d&&Zn(-1);const i=cs(t),l=Ue.length;let r;try{r=e(...n)}finally{for(let a=Ue.length;a>l;a--)ho();cs(i),o._d&&Zn(1)}return r};return o._n=!0,o._c=!0,o._d=!0,o}function ds(e,t){if(ie===null)return e;const s=$s(ie),o=e.dirs||(e.dirs=[]);for(let n=0;n<t.length;n++){let[i,l,r,a=U]=t[n];i&&(R(i)&&(i={mounted:i,updated:i}),i.deep&&Ve(l),o.push({dir:i,instance:s,value:l,oldValue:void 0,arg:r,modifiers:a}))}return e}function et(e,t,s,o){const n=e.dirs,i=t&&t.dirs;for(let l=0;l<n.length;l++){const r=n[l];i&&(r.oldValue=i[l].value);let a=r.dir[o];a&&(Se(),we(a,s,8,[e.el,r,e,t]),Le())}}function El(e,t){if(ce){let s=ce.provides;const o=ce.parent&&ce.parent.provides;o===s&&(s=ce.provides=Object.create(o)),s[e]=t}}function kt(e,t,s=!1){const o=ti();if(o||ut){let n=ut?ut._context.provides:o?o.parent==null||o.ce?o.vnode.appContext&&o.vnode.appContext.provides:o.parent.provides:void 0;if(n&&e in n)return n[e];if(arguments.length>1)return s&&R(t)?t.call(o&&o.proxy):t}}const kl=Symbol.for("v-scx"),Cl=()=>kt(kl);function eo(e,t,s){return gn(e,t,s)}function gn(e,t,s=U){const{immediate:o,deep:n,flush:i,once:l}=s,r=Z({},s),a=t&&o||!t&&i!=="post";let f;if(It){if(i==="sync"){const S=Cl();f=S.__watcherHandles||(S.__watcherHandles=[])}else if(!a){const S=()=>{};return S.stop=$e,S.resume=$e,S.pause=$e,S}}const p=ce;r.call=(S,j,N)=>we(S,p,j,N);let h=!1;i==="post"?r.scheduler=S=>{ue(S,p&&p.suspense)}:i!=="sync"&&(h=!0,r.scheduler=(S,j)=>{j?S():Qs(S)}),r.augmentJob=S=>{t&&(S.flags|=4),h&&(S.flags|=2,p&&(S.id=p.uid,S.i=p))};const y=ml(e,t,r);return It&&(f?f.push(y):a&&y()),y}function Tl(e,t,s){const o=this.proxy,n=G(e)?e.includes(".")?bn(o,e):()=>o[e]:e.bind(o,o);let i;R(t)?i=t:(i=t.handler,s=t);const l=Nt(this),r=gn(n,i.bind(o),s);return l(),r}function bn(e,t){const s=t.split(".");return()=>{let o=e;for(let n=0;n<s.length&&o;n++)o=o[s[n]];return o}}const Ol=Symbol("_vte"),ps=e=>e.__isTeleport,to=Symbol("_leaveCb");function Al(e){let t=e[0];if(e.length>1){for(const s of e)if(s.type!==Ce){t=s;break}}return t}function vn(e){if(!oo(e))return ps(e.type)&&e.children?Al(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:s}=e;if(s){if(t&16)return s[0];if(t&32&&R(s.default))return s.default()}}function so(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const s=e.component.subTree;so(ps(s.type)&&vn(s)||s,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function fs(e,t){return R(e)?Z({name:e.name},t,{setup:e}):e}function mn(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function xn(e,t){let s;return!!((s=Object.getOwnPropertyDescriptor(e,t))&&!s.configurable)}const us=new WeakMap;function Ct(e,t,s,o,n=!1){if(A(e)){e.forEach((N,ee)=>Ct(N,t&&(A(t)?t[ee]:t),s,o,n));return}if(ft(o)&&!n){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&Ct(e,t,s,o.component.subTree);return}const i=o.shapeFlag&4?$s(o.component):o.el,l=n?null:i,{i:r,r:a}=e,f=t&&t.r,p=r.refs===U?r.refs={}:r.refs,h=r.setupState,y=F(h),S=h===U?Co:N=>xn(p,N)?!1:D(y,N),j=(N,ee)=>!(ee&&xn(p,ee));if(f!=null&&f!==a){if(yn(t),G(f))p[f]=null,S(f)&&(h[f]=null);else if(ae(f)){const N=t;j(f,N.k)&&(f.value=null),N.k&&(p[N.k]=null)}}if(R(a))at(a,r,12,[l,p]);else{const N=G(a),ee=ae(a);if(N||ee){const Y=()=>{if(e.f){const H=N?S(a)?h[a]:p[a]:j()||!e.k?a.value:p[e.k];if(n)A(H)&&Rs(H,i);else if(A(H))H.includes(i)||H.push(i);else if(N)p[a]=[i],S(a)&&(h[a]=p[a]);else{const z=[i];j(a,e.k)&&(a.value=z),e.k&&(p[e.k]=z)}}else N?(p[a]=l,S(a)&&(h[a]=l)):ee&&(j(a,e.k)&&(a.value=l),e.k&&(p[e.k]=l))};if(l){const H=()=>{Y(),us.delete(e)};H.id=-1,us.set(e,H),ue(H,s)}else yn(e),Y()}}}function yn(e){const t=us.get(e);t&&(t.flags|=8,us.delete(e))}Zt().requestIdleCallback,Zt().cancelIdleCallback;const ft=e=>!!e.type.__asyncLoader,oo=e=>e.type.__isKeepAlive;function Ml(e,t){wn(e,"a",t)}function Pl(e,t){wn(e,"da",t)}function wn(e,t,s=ce){const o=e.__wdc||(e.__wdc=()=>{let n=s;for(;n;){if(n.isDeactivated)return;n=n.parent}return e()});if(hs(t,o,s),s){let n=s.parent;for(;n&&n.parent;)oo(n.parent.vnode)&&Rl(o,t,s,n),n=n.parent}}function Rl(e,t,s,o){const n=hs(t,e,o,!0);_n(()=>{Rs(o[t],n)},s)}function hs(e,t,s=ce,o=!1){if(s){const n=s[e]||(s[e]=[]),i=t.__weh||(t.__weh=(...l)=>{Se();const r=Nt(s),a=we(t,s,e,l);return r(),Le(),a});return o?n.unshift(i):n.push(i),i}}const ze=e=>(t,s=ce)=>{(!It||e==="sp")&&hs(e,(...o)=>t(...o),s)},Nl=ze("bm"),$n=ze("m"),Il=ze("bu"),Hl=ze("u"),Dl=ze("bum"),_n=ze("um"),Fl=ze("sp"),jl=ze("rtg"),Vl=ze("rtc");function zl(e,t=ce){hs("ec",e,t)}const Kl="components";function Sn(e,t){return Bl(Kl,e,!0,t)||e}const Ul=Symbol.for("v-ndc");function Bl(e,t,s=!0,o=!1){const n=ie||ce;if(n){const i=n.type;{const r=li(i,!1);if(r&&(r===t||r===oe(t)||r===Yt(oe(t))))return i}const l=Ln(n[e]||i[e],t)||Ln(n.appContext[e],t);return!l&&o?i:l}}function Ln(e,t){return e&&(e[t]||e[oe(t)]||e[Yt(oe(t))])}function Ke(e,t,s,o){let n;const i=s,l=A(e);if(l||G(e)){const r=l&&Ze(e);let a=!1,f=!1;r&&(a=!ye(e),f=Ge(e),e=es(e)),n=new Array(e.length);for(let p=0,h=e.length;p<h;p++)n[p]=t(a?f?rt(je(e[p])):je(e[p]):e[p],p,void 0,i)}else if(typeof e=="number"){n=new Array(e);for(let r=0;r<e;r++)n[r]=t(r+1,r,void 0,i)}else if(V(e))if(e[Symbol.iterator])n=Array.from(e,(r,a)=>t(r,a,void 0,i));else{const r=Object.keys(e);n=new Array(r.length);for(let a=0,f=r.length;a<f;a++){const p=r[a];n[a]=t(e[p],p,a,i)}}else n=[];return n}function Tt(e,t,s,o,n,i){if(s==null&&(s={}),ie.ce||ie.parent&&ft(ie.parent)&&ie.parent.ce){const f=i!=null&&s.key==null?Z({},s,{key:i}):s,p=Object.keys(f).length>0;return t!=="default"&&(f.name=t),E(),ms(X,null,[ve("slot",f,o)],p?-2:64)}let l=e[t];l&&l._c&&(l._d=!1);const r=Ue.length;E();let a;try{const f=l&&En(l(s)),p=s.key||i||f&&f.key;a=ms(X,{key:(p&&!me(p)?p:`_${t}`)+(!f&&o?"_fb":"")},f||(o?o():[]),f&&e._===1?64:-2)}catch(f){for(let p=Ue.length;p>r;p--)ho();throw f}finally{l&&l._c&&(l._d=!0)}return a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),a}function En(e){return e.some(t=>go(t)?!(t.type===Ce||t.type===X&&!En(t.children)):!0)?e:null}const no=e=>e?oi(e)?$s(e):no(e.parent):null,Ot=Z(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=>no(e.parent),$root:e=>no(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>On(e),$forceUpdate:e=>e.f||(e.f=()=>{Qs(e.update)}),$nextTick:e=>e.n||(e.n=cn.bind(e.proxy)),$watch:e=>Tl.bind(e)}),io=(e,t)=>e!==U&&!e.__isScriptSetup&&D(e,t),Wl={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:s,setupState:o,data:n,props:i,accessCache:l,type:r,appContext:a}=e;if(t[0]!=="$"){const y=l[t];if(y!==void 0)switch(y){case 1:return o[t];case 2:return n[t];case 4:return s[t];case 3:return i[t]}else{if(io(o,t))return l[t]=1,o[t];if(n!==U&&D(n,t))return l[t]=2,n[t];if(D(i,t))return l[t]=3,i[t];if(s!==U&&D(s,t))return l[t]=4,s[t];lo&&(l[t]=0)}}const f=Ot[t];let p,h;if(f)return t==="$attrs"&&re(e.attrs,"get",""),f(e);if((p=r.__cssModules)&&(p=p[t]))return p;if(s!==U&&D(s,t))return l[t]=4,s[t];if(h=a.config.globalProperties,D(h,t))return h[t]},set({_:e},t,s){const{data:o,setupState:n,ctx:i}=e;return io(n,t)?(n[t]=s,!0):o!==U&&D(o,t)?(o[t]=s,!0):D(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=s,!0)},has({_:{data:e,setupState:t,accessCache:s,ctx:o,appContext:n,props:i,type:l}},r){let a;return!!(s[r]||e!==U&&r[0]!=="$"&&D(e,r)||io(t,r)||D(i,r)||D(o,r)||D(Ot,r)||D(n.config.globalProperties,r)||(a=l.__cssModules)&&a[r])},defineProperty(e,t,s){return s.get!=null?e._.accessCache[t]=0:D(s,"value")&&this.set(e,t,s.value,null),Reflect.defineProperty(e,t,s)}};function kn(e){return A(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}let lo=!0;function ql(e){const t=On(e),s=e.proxy,o=e.ctx;lo=!1,t.beforeCreate&&Cn(t.beforeCreate,e,"bc");const{data:n,computed:i,methods:l,watch:r,provide:a,inject:f,created:p,beforeMount:h,mounted:y,beforeUpdate:S,updated:j,activated:N,deactivated:ee,beforeDestroy:Y,beforeUnmount:H,destroyed:z,unmounted:O,render:se,renderTracked:Ae,renderTriggered:Me,errorCaptured:Ye,serverPrefetch:Cs,expose:st,inheritAttrs:Vt,components:Ts,directives:Os,filters:Eo}=t;if(f&&Gl(f,o,null),l)for(const J in l){const q=l[J];R(q)&&(o[J]=q.bind(s))}if(n){const J=n.call(s,s);V(J)&&(e.data=Xs(J))}if(lo=!0,i)for(const J in i){const q=i[J],ot=R(q)?q.bind(s,s):R(q.get)?q.get.bind(s,s):$e,As=!R(q)&&R(q.set)?q.set.bind(s):$e,nt=Ar({get:ot,set:As});Object.defineProperty(o,J,{enumerable:!0,configurable:!0,get:()=>nt.value,set:Pe=>nt.value=Pe})}if(r)for(const J in r)Tn(r[J],o,s,J);if(a){const J=R(a)?a.call(s):a;Reflect.ownKeys(J).forEach(q=>{El(q,J[q])})}p&&Cn(p,e,"c");function fe(J,q){A(q)?q.forEach(ot=>J(ot.bind(s))):q&&J(q.bind(s))}if(fe(Nl,h),fe($n,y),fe(Il,S),fe(Hl,j),fe(Ml,N),fe(Pl,ee),fe(zl,Ye),fe(Vl,Ae),fe(jl,Me),fe(Dl,H),fe(_n,O),fe(Fl,Cs),A(st))if(st.length){const J=e.exposed||(e.exposed={});st.forEach(q=>{Object.defineProperty(J,q,{get:()=>s[q],set:ot=>s[q]=ot,enumerable:!0})})}else e.exposed||(e.exposed={});se&&e.render===$e&&(e.render=se),Vt!=null&&(e.inheritAttrs=Vt),Ts&&(e.components=Ts),Os&&(e.directives=Os),Cs&&mn(e)}function Gl(e,t,s=$e){A(e)&&(e=ro(e));for(const o in e){const n=e[o];let i;V(n)?"default"in n?i=kt(n.from||o,n.default,!0):i=kt(n.from||o):i=kt(n),ae(i)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>i.value,set:l=>i.value=l}):t[o]=i}}function Cn(e,t,s){we(A(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,s)}function Tn(e,t,s,o){let n=o.includes(".")?bn(s,o):()=>s[o];if(G(e)){const i=t[e];R(i)&&eo(n,i)}else if(R(e))eo(n,e.bind(s));else if(V(e))if(A(e))e.forEach(i=>Tn(i,t,s,o));else{const i=R(e.handler)?e.handler.bind(s):t[e.handler];R(i)&&eo(n,i,e)}}function On(e){const t=e.type,{mixins:s,extends:o}=t,{mixins:n,optionsCache:i,config:{optionMergeStrategies:l}}=e.appContext,r=i.get(t);let a;return r?a=r:!n.length&&!s&&!o?a=t:(a={},n.length&&n.forEach(f=>gs(a,f,l,!0)),gs(a,t,l)),V(t)&&i.set(t,a),a}function gs(e,t,s,o=!1){const{mixins:n,extends:i}=t;i&&gs(e,i,s,!0),n&&n.forEach(l=>gs(e,l,s,!0));for(const l in t)if(!(o&&l==="expose")){const r=Xl[l]||s&&s[l];e[l]=r?r(e[l],t[l]):t[l]}return e}const Xl={data:An,props:Mn,emits:Mn,methods:At,computed:At,beforeCreate:pe,created:pe,beforeMount:pe,mounted:pe,beforeUpdate:pe,updated:pe,beforeDestroy:pe,beforeUnmount:pe,destroyed:pe,unmounted:pe,activated:pe,deactivated:pe,errorCaptured:pe,serverPrefetch:pe,components:At,directives:At,watch:Jl,provide:An,inject:Yl};function An(e,t){return t?e?function(){return Z(R(e)?e.call(this,this):e,R(t)?t.call(this,this):t)}:t:e}function Yl(e,t){return At(ro(e),ro(t))}function ro(e){if(A(e)){const t={};for(let s=0;s<e.length;s++)t[e[s]]=e[s];return t}return e}function pe(e,t){return e?[...new Set([].concat(e,t))]:t}function At(e,t){return e?Z(Object.create(null),e,t):t}function Mn(e,t){return e?A(e)&&A(t)?[...new Set([...e,...t])]:Z(Object.create(null),kn(e),kn(t??{})):t}function Jl(e,t){if(!e)return t;if(!t)return e;const s=Z(Object.create(null),e);for(const o in t)s[o]=pe(e[o],t[o]);return s}function Pn(){return{app:null,config:{isNativeTag:Co,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 Zl=0;function Ql(e,t){return function(o,n=null){R(o)||(o=Z({},o)),n!=null&&!V(n)&&(n=null);const i=Pn(),l=new WeakSet,r=[];let a=!1;const f=i.app={_uid:Zl++,_component:o,_props:n,_container:null,_context:i,_instance:null,version:Mr,get config(){return i.config},set config(p){},use(p,...h){return l.has(p)||(p&&R(p.install)?(l.add(p),p.install(f,...h)):R(p)&&(l.add(p),p(f,...h))),f},mixin(p){return i.mixins.includes(p)||i.mixins.push(p),f},component(p,h){return h?(i.components[p]=h,f):i.components[p]},directive(p,h){return h?(i.directives[p]=h,f):i.directives[p]},mount(p,h,y){if(!a){const S=f._ceVNode||ve(o,n);return S.appContext=i,y===!0?y="svg":y===!1&&(y=void 0),e(S,p,y),a=!0,f._container=p,p.__vue_app__=f,$s(S.component)}},onUnmount(p){r.push(p)},unmount(){a&&(we(r,f._instance,16),e(null,f._container),delete f._container.__vue_app__)},provide(p,h){return i.provides[p]=h,f},runWithContext(p){const h=ut;ut=f;try{return p()}finally{ut=h}}};return f}}let ut=null;const er=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${oe(t)}Modifiers`]||e[`${be(t)}Modifiers`];function tr(e,t,...s){if(e.isUnmounted)return;const o=e.vnode.props||U;let n=s;const i=t.startsWith("update:"),l=i&&er(o,t.slice(7));l&&(l.trim&&(n=s.map(p=>G(p)?p.trim():p)),l.number&&(n=n.map(Hs)));let r,a=o[r=Is(t)]||o[r=Is(oe(t))];!a&&i&&(a=o[r=Is(be(t))]),a&&we(a,e,6,n);const f=o[r+"Once"];if(f){if(!e.emitted)e.emitted={};else if(e.emitted[r])return;e.emitted[r]=!0,we(f,e,6,n)}}const sr=new WeakMap;function Rn(e,t,s=!1){const o=s?sr:t.emitsCache,n=o.get(e);if(n!==void 0)return n;const i=e.emits;let l={},r=!1;if(!R(e)){const a=f=>{const p=Rn(f,t,!0);p&&(r=!0,Z(l,p))};!s&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!i&&!r?(V(e)&&o.set(e,null),null):(A(i)?i.forEach(a=>l[a]=null):Z(l,i),V(e)&&o.set(e,l),l)}function bs(e,t){return!e||!Bt(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),D(e,t[0].toLowerCase()+t.slice(1))||D(e,be(t))||D(e,t))}function Ud(){}function Nn(e){const{type:t,vnode:s,proxy:o,withProxy:n,propsOptions:[i],slots:l,attrs:r,emit:a,render:f,renderCache:p,props:h,data:y,setupState:S,ctx:j,inheritAttrs:N}=e,ee=cs(e);let Y,H;try{if(s.shapeFlag&4){const O=n||o,se=O;Y=Te(f.call(se,O,p,h,S,y,j)),H=r}else{const O=t;Y=Te(O.length>1?O(h,{attrs:r,slots:l,emit:a}):O(h,null)),H=t.props?r:or(r)}}catch(O){Ue.length=0,rs(O,e,1),Y=ve(Ce)}let z=Y;if(H&&N!==!1){const O=Object.keys(H),{shapeFlag:se}=z;O.length&&se&7&&(i&&O.some(Wt)&&(H=nr(H,i)),z=ht(z,H,!1,!0))}if(s.dirs&&(z=ht(z,null,!1,!0),z.dirs=z.dirs?z.dirs.concat(s.dirs):s.dirs),s.transition){const O=ps(z.type)&&vn(z)||z;so(O,s.transition)}return Y=z,cs(ee),Y}const or=e=>{let t;for(const s in e)(s==="class"||s==="style"||Bt(s))&&((t||(t={}))[s]=e[s]);return t},nr=(e,t)=>{const s={};for(const o in e)(!Wt(o)||!(o.slice(9)in t))&&(s[o]=e[o]);return s};function ir(e,t,s){const{props:o,children:n,component:i}=e,{props:l,children:r,patchFlag:a}=t,f=i.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&a>=0){if(a&1024)return!0;if(a&16)return o?In(o,l,f):!!l;if(a&8){const p=t.dynamicProps;for(let h=0;h<p.length;h++){const y=p[h];if(Hn(l,o,y)&&!bs(f,y))return!0}}}else return(n||r)&&(!r||!r.$stable)?!0:o===l?!1:o?l?In(o,l,f):!0:!!l;return!1}function In(e,t,s){const o=Object.keys(t);if(o.length!==Object.keys(e).length)return!0;for(let n=0;n<o.length;n++){const i=o[n];if(Hn(t,e,i)&&!bs(s,i))return!0}return!1}function Hn(e,t,s){const o=e[s],n=t[s];return s==="style"&&V(o)&&V(n)?!Qt(o,n):o!==n}function lr({vnode:e,parent:t,suspense:s},o){for(;t;){const n=t.subTree;if(n.suspense&&n.suspense.activeBranch===e&&(n.suspense.vnode.el=n.el=o,e=n),n===e)(e=t.vnode).el=o,t=t.parent;else break}s&&s.activeBranch===e&&(s.vnode.el=o)}const Dn={},Fn=()=>Object.create(Dn),jn=e=>Object.getPrototypeOf(e)===Dn;function rr(e,t,s,o=!1){const n={},i=Fn();e.propsDefaults=Object.create(null),Vn(e,t,n,i);for(const l in e.propsOptions[0])l in n||(n[l]=void 0);s?e.props=o?n:fl(n):e.type.props?e.props=n:e.props=i,e.attrs=i}function ar(e,t,s,o){const{props:n,attrs:i,vnode:{patchFlag:l}}=e,r=F(n),[a]=e.propsOptions;let f=!1;if((o||l>0)&&!(l&16)){if(l&8){const p=e.vnode.dynamicProps;for(let h=0;h<p.length;h++){let y=p[h];if(bs(e.emitsOptions,y))continue;const S=t[y];if(a)if(D(i,y))S!==i[y]&&(i[y]=S,f=!0);else{const j=oe(y);n[j]=ao(a,r,j,S,e,!1)}else S!==i[y]&&(i[y]=S,f=!0)}}}else{Vn(e,t,n,i)&&(f=!0);let p;for(const h in r)(!t||!D(t,h)&&((p=be(h))===h||!D(t,p)))&&(a?s&&(s[h]!==void 0||s[p]!==void 0)&&(n[h]=ao(a,r,h,void 0,e,!0)):delete n[h]);if(i!==r)for(const h in i)(!t||!D(t,h))&&(delete i[h],f=!0)}f&&De(e.attrs,"set","")}function Vn(e,t,s,o){const[n,i]=e.propsOptions;let l=!1,r;if(t)for(let a in t){if(mt(a))continue;const f=t[a];let p;n&&D(n,p=oe(a))?!i||!i.includes(p)?s[p]=f:(r||(r={}))[p]=f:bs(e.emitsOptions,a)||(!(a in o)||f!==o[a])&&(o[a]=f,l=!0)}if(i){const a=F(s),f=r||U;for(let p=0;p<i.length;p++){const h=i[p];s[h]=ao(n,a,h,f[h],e,!D(f,h))}}return l}function ao(e,t,s,o,n,i){const l=e[s];if(l!=null){const r=D(l,"default");if(r&&o===void 0){const a=l.default;if(l.type!==Function&&!l.skipFactory&&R(a)){const{propsDefaults:f}=n;if(s in f)o=f[s];else{const p=Nt(n);o=f[s]=a.call(null,t),p()}}else o=a;n.ce&&n.ce._setProp(s,o)}l[0]&&(i&&!r?o=!1:l[1]&&(o===""||o===be(s))&&(o=!0))}return o}const cr=new WeakMap;function zn(e,t,s=!1){const o=s?cr:t.propsCache,n=o.get(e);if(n)return n;const i=e.props,l={},r=[];let a=!1;if(!R(e)){const p=h=>{a=!0;const[y,S]=zn(h,t,!0);Z(l,y),S&&r.push(...S)};!s&&t.mixins.length&&t.mixins.forEach(p),e.extends&&p(e.extends),e.mixins&&e.mixins.forEach(p)}if(!i&&!a)return V(e)&&o.set(e,it),it;if(A(i))for(let p=0;p<i.length;p++){const h=oe(i[p]);Kn(h)&&(l[h]=U)}else if(i)for(const p in i){const h=oe(p);if(Kn(h)){const y=i[p],S=l[h]=A(y)||R(y)?{type:y}:Z({},y),j=S.type;let N=!1,ee=!0;if(A(j))for(let Y=0;Y<j.length;++Y){const H=j[Y],z=R(H)&&H.name;if(z==="Boolean"){N=!0;break}else z==="String"&&(ee=!1)}else N=R(j)&&j.name==="Boolean";S[0]=N,S[1]=ee,(N||D(S,"default"))&&r.push(h)}}const f=[l,r];return V(e)&&o.set(e,f),f}function Kn(e){return e[0]!=="$"&&!mt(e)}const co=e=>e==="_"||e==="_ctx"||e==="$stable",po=e=>A(e)?e.map(Te):[Te(e)],dr=(e,t,s)=>{if(t._n)return t;const o=pt((...n)=>po(t(...n)),s);return o._c=!1,o},Un=(e,t,s)=>{const o=e._ctx;for(const n in e){if(co(n))continue;const i=e[n];if(R(i))t[n]=dr(n,i,o);else if(i!=null){const l=po(i);t[n]=()=>l}}},Bn=(e,t)=>{const s=po(t);e.slots.default=()=>s},Wn=(e,t,s)=>{for(const o in t)(s||!co(o))&&(e[o]=t[o])},pr=(e,t,s)=>{const o=e.slots=Fn();if(e.vnode.shapeFlag&32){const n=t._;n?(Wn(o,t,s),s&&Mo(o,"_",n,!0)):Un(t,o)}else t&&Bn(e,t)},fr=(e,t,s)=>{const{vnode:o,slots:n}=e;let i=!0,l=U;if(o.shapeFlag&32){const r=t._;r?s&&r===1?i=!1:Wn(n,t,s):(i=!t.$stable,Un(t,n)),l=t}else t&&(Bn(e,t),l={default:1});if(i)for(const r in n)!co(r)&&l[r]==null&&delete n[r]},ue=vr;function ur(e){return hr(e)}function hr(e,t){const s=Zt();s.__VUE__=!0;const{insert:o,remove:n,patchProp:i,createElement:l,createText:r,createComment:a,setText:f,setElementText:p,parentNode:h,nextSibling:y,setScopeId:S=$e,insertStaticContent:j}=e,N=(c,d,u,m=null,v=null,g=null,$=void 0,w=null,x=!!d.dynamicChildren)=>{if(c===d)return;c&&!Pt(c,d)&&(m=Ms(c),Pe(c,v,g,!0),c=null),d.patchFlag===-2&&(x=!1,d.dynamicChildren=null);const{type:b,ref:T,shapeFlag:_}=d;switch(b){case vs:ee(c,d,u,m);break;case Ce:Y(c,d,u,m);break;case uo:c==null&&H(d,u,m,$);break;case X:Ts(c,d,u,m,v,g,$,w,x);break;default:_&1?se(c,d,u,m,v,g,$,w,x):_&6?Os(c,d,u,m,v,g,$,w,x):(_&64||_&128)&&b.process(c,d,u,m,v,g,$,w,x,Kt)}T!=null&&v?Ct(T,c&&c.ref,g,d||c,!d):T==null&&c&&c.ref!=null&&Ct(c.ref,null,g,c,!0)},ee=(c,d,u,m)=>{if(c==null)o(d.el=r(d.children),u,m);else{const v=d.el=c.el;d.children!==c.children&&f(v,d.children)}},Y=(c,d,u,m)=>{c==null?o(d.el=a(d.children||""),u,m):d.el=c.el},H=(c,d,u,m)=>{[c.el,c.anchor]=j(c.children,d,u,m,c.el,c.anchor)},z=({el:c,anchor:d},u,m)=>{let v;for(;c&&c!==d;)v=y(c),o(c,u,m),c=v;o(d,u,m)},O=({el:c,anchor:d})=>{let u;for(;c&&c!==d;)u=y(c),n(c),c=u;n(d)},se=(c,d,u,m,v,g,$,w,x)=>{if(d.type==="svg"?$="svg":d.type==="math"&&($="mathml"),c==null)Ae(d,u,m,v,g,$,w,x);else{const b=c.el&&c.el._isVueCE?c.el:null;try{b&&b._beginPatch(),Cs(c,d,v,g,$,w,x)}finally{b&&b._endPatch()}}},Ae=(c,d,u,m,v,g,$,w)=>{let x,b;const{props:T,shapeFlag:_,transition:C,dirs:P}=c;if(x=c.el=l(c.type,g,T&&T.is,T),_&8?p(x,c.children):_&16&&Ye(c.children,x,null,m,v,fo(c,g),$,w),P&&et(c,null,m,"created"),Me(x,c,c.scopeId,$,m),T){for(const B in T)B!=="value"&&!mt(B)&&i(x,B,null,T[B],g,m);"value"in T&&i(x,"value",null,T.value,g),(b=T.onVnodeBeforeMount)&&Oe(b,m,c)}P&&et(c,null,m,"beforeMount");const I=gr(v,C);I&&C.beforeEnter(x),o(x,d,u),((b=T&&T.onVnodeMounted)||I||P)&&ue(()=>{try{b&&Oe(b,m,c),I&&C.enter(x),P&&et(c,null,m,"mounted")}finally{}},v)},Me=(c,d,u,m,v)=>{if(u&&S(c,u),m)for(let g=0;g<m.length;g++)S(c,m[g]);if(v){let g=v.subTree;if(d===g||Jn(g.type)&&(g.ssContent===d||g.ssFallback===d)){const $=v.vnode;Me(c,$,$.scopeId,$.slotScopeIds,v.parent)}}},Ye=(c,d,u,m,v,g,$,w,x=0)=>{for(let b=x;b<c.length;b++){const T=c[b]=w?Be(c[b]):Te(c[b]);N(null,T,d,u,m,v,g,$,w)}},Cs=(c,d,u,m,v,g,$)=>{const w=d.el=c.el;let{patchFlag:x,dynamicChildren:b,dirs:T}=d;x|=c.patchFlag&16;const _=c.props||U,C=d.props||U;let P;if(u&&tt(u,!1),(P=C.onVnodeBeforeUpdate)&&Oe(P,u,d,c),T&&et(d,c,u,"beforeUpdate"),u&&tt(u,!0),b&&(!c.dynamicChildren||c.dynamicChildren.length!==b.length)&&(x=0,$=!1,b=null),(_.innerHTML&&C.innerHTML==null||_.textContent&&C.textContent==null)&&p(w,""),b?st(c.dynamicChildren,b,w,u,m,fo(d,v),g):$||q(c,d,w,null,u,m,fo(d,v),g,!1),x>0){if(x&16)Vt(w,_,C,u,v);else if(x&2&&_.class!==C.class&&i(w,"class",null,C.class,v),x&4&&i(w,"style",_.style,C.style,v),x&8){const I=d.dynamicProps;for(let B=0;B<I.length;B++){const K=I[B],te=_[K],le=C[K];(le!==te||K==="value")&&i(w,K,te,le,v,u)}}x&1&&c.children!==d.children&&p(w,d.children)}else!$&&b==null&&Vt(w,_,C,u,v);((P=C.onVnodeUpdated)||T)&&ue(()=>{P&&Oe(P,u,d,c),T&&et(d,c,u,"updated")},m)},st=(c,d,u,m,v,g,$)=>{for(let w=0;w<d.length;w++){const x=c[w],b=d[w],T=x.el&&(x.type===X||!Pt(x,b)||x.shapeFlag&198)?h(x.el):u;N(x,b,T,null,m,v,g,$,!0)}},Vt=(c,d,u,m,v)=>{if(d!==u){if(d!==U)for(const g in d)!mt(g)&&!(g in u)&&i(c,g,d[g],null,v,m);for(const g in u){if(mt(g))continue;const $=u[g],w=d[g];$!==w&&g!=="value"&&i(c,g,w,$,v,m)}"value"in u&&i(c,"value",d.value,u.value,v)}},Ts=(c,d,u,m,v,g,$,w,x)=>{const b=d.el=c?c.el:r(""),T=d.anchor=c?c.anchor:r("");let{patchFlag:_,dynamicChildren:C,slotScopeIds:P}=d;P&&(w=w?w.concat(P):P),c==null?(o(b,u,m),o(T,u,m),Ye(d.children||[],u,T,v,g,$,w,x)):_>0&&_&64&&C&&c.dynamicChildren&&c.dynamicChildren.length===C.length?(st(c.dynamicChildren,C,u,v,g,$,w),(d.key!=null||v&&d===v.subTree)&&qn(c,d,!0)):q(c,d,u,T,v,g,$,w,x)},Os=(c,d,u,m,v,g,$,w,x)=>{d.slotScopeIds=w,c==null?d.shapeFlag&512?v.ctx.activate(d,u,m,$,x):Eo(d,u,m,v,g,$,x):Ai(c,d,x)},Eo=(c,d,u,m,v,g,$)=>{const w=c.component=_r(c,m,v);if(oo(c)&&(w.ctx.renderer=Kt),Sr(w,!1,$),w.asyncDep){if(v&&v.registerDep(w,fe,$),!c.el){const x=w.subTree=ve(Ce);Y(null,x,d,u),c.placeholder=x.el}}else fe(w,c,d,u,v,g,$)},Ai=(c,d,u)=>{const m=d.component=c.component;if(ir(c,d,u))if(m.asyncDep&&!m.asyncResolved){J(m,d,u);return}else m.next=d,m.update();else d.el=c.el,m.vnode=d},fe=(c,d,u,m,v,g,$)=>{const w=()=>{if(c.isMounted){let{next:_,bu:C,u:P,parent:I,vnode:B}=c;{const Ne=Gn(c);if(Ne){_&&(_.el=B.el,J(c,_,$)),Ne.asyncDep.then(()=>{ue(()=>{c.isUnmounted||b()},v)});return}}let K=_,te;tt(c,!1),_?(_.el=B.el,J(c,_,$)):_=B,C&&Jt(C),(te=_.props&&_.props.onVnodeBeforeUpdate)&&Oe(te,I,_,B),tt(c,!0);const le=Nn(c),Re=c.subTree;c.subTree=le,N(Re,le,h(Re.el),Ms(Re),c,v,g),_.el=le.el,K===null&&lr(c,le.el),P&&ue(P,v),(te=_.props&&_.props.onVnodeUpdated)&&ue(()=>Oe(te,I,_,B),v)}else{let _;const{el:C,props:P}=d,{bm:I,m:B,parent:K,root:te,type:le}=c,Re=ft(d);tt(c,!1),I&&Jt(I),!Re&&(_=P&&P.onVnodeBeforeMount)&&Oe(_,K,d),tt(c,!0);{te.ce&&te.ce._hasShadowRoot()&&te.ce._injectChildStyle(le,c.parent?c.parent.type:void 0);const Ne=c.subTree=Nn(c);N(null,Ne,u,m,c,v,g),d.el=Ne.el}if(B&&ue(B,v),!Re&&(_=P&&P.onVnodeMounted)){const Ne=d;ue(()=>Oe(_,K,Ne),v)}(d.shapeFlag&256||K&&ft(K.vnode)&&K.vnode.shapeFlag&256)&&c.a&&ue(c.a,v),c.isMounted=!0,d=u=m=null}};c.scope.on();const x=c.effect=new Fo(w);c.scope.off();const b=c.update=x.run.bind(x),T=c.job=x.runIfDirty.bind(x);T.i=c,T.id=c.uid,x.scheduler=()=>Qs(T),tt(c,!0),b()},J=(c,d,u)=>{d.component=c;const m=c.vnode.props;c.vnode=d,c.next=null,ar(c,d.props,m,u),fr(c,d.children,u),Se(),pn(c),Le()},q=(c,d,u,m,v,g,$,w,x=!1)=>{const b=c&&c.children,T=c?c.shapeFlag:0,_=d.children,{patchFlag:C,shapeFlag:P}=d;if(C>0){if(C&128){As(b,_,u,m,v,g,$,w,x);return}else if(C&256){ot(b,_,u,m,v,g,$,w,x);return}}P&8?(T&16&&zt(b,v,g),_!==b&&p(u,_)):T&16?P&16?As(b,_,u,m,v,g,$,w,x):zt(b,v,g,!0):(T&8&&p(u,""),P&16&&Ye(_,u,m,v,g,$,w,x))},ot=(c,d,u,m,v,g,$,w,x)=>{c=c||it,d=d||it;const b=c.length,T=d.length,_=Math.min(b,T);let C;for(C=0;C<_;C++){const P=d[C]=x?Be(d[C]):Te(d[C]);N(c[C],P,u,null,v,g,$,w,x)}b>T?zt(c,v,g,!0,!1,_):Ye(d,u,m,v,g,$,w,x,_)},As=(c,d,u,m,v,g,$,w,x)=>{let b=0;const T=d.length;let _=c.length-1,C=T-1;for(;b<=_&&b<=C;){const P=c[b],I=d[b]=x?Be(d[b]):Te(d[b]);if(Pt(P,I))N(P,I,u,null,v,g,$,w,x);else break;b++}for(;b<=_&&b<=C;){const P=c[_],I=d[C]=x?Be(d[C]):Te(d[C]);if(Pt(P,I))N(P,I,u,null,v,g,$,w,x);else break;_--,C--}if(b>_){if(b<=C){const P=C+1,I=P<T?d[P].el:m;for(;b<=C;)N(null,d[b]=x?Be(d[b]):Te(d[b]),u,I,v,g,$,w,x),b++}}else if(b>C)for(;b<=_;)Pe(c[b],v,g,!0),b++;else{const P=b,I=b,B=new Map;for(b=I;b<=C;b++){const ge=d[b]=x?Be(d[b]):Te(d[b]);ge.key!=null&&B.set(ge.key,b)}let K,te=0;const le=C-I+1;let Re=!1,Ne=0;const Ut=new Array(le);for(b=0;b<le;b++)Ut[b]=0;for(b=P;b<=_;b++){const ge=c[b];if(te>=le){Pe(ge,v,g,!0);continue}let Ie;if(ge.key!=null)Ie=B.get(ge.key);else for(K=I;K<=C;K++)if(Ut[K-I]===0&&Pt(ge,d[K])){Ie=K;break}Ie===void 0?Pe(ge,v,g,!0):(Ut[Ie-I]=b+1,Ie>=Ne?Ne=Ie:Re=!0,N(ge,d[Ie],u,null,v,g,$,w,x),te++)}const Ri=Re?br(Ut):it;for(K=Ri.length-1,b=le-1;b>=0;b--){const ge=I+b,Ie=d[ge],Ni=d[ge+1],Ii=ge+1<T?Ni.el||Yn(Ni):m;Ut[b]===0?N(null,Ie,u,Ii,v,g,$,w,x):Re&&(K<0||b!==Ri[K]?nt(Ie,u,Ii,2):K--)}}},nt=(c,d,u,m,v=null)=>{const{el:g,type:$,transition:w,children:x,shapeFlag:b}=c;if(b&6){nt(c.component.subTree,d,u,m);return}if(b&128){c.suspense.move(d,u,m);return}if(b&64){$.move(c,d,u,Kt);return}if($===X){o(g,d,u);for(let _=0;_<x.length;_++)nt(x[_],d,u,m);o(c.anchor,d,u);return}if($===uo){z(c,d,u);return}if(m!==2&&b&1&&w)if(m===0)w.persisted&&!g[to]?o(g,d,u):(w.beforeEnter(g),o(g,d,u),ue(()=>w.enter(g),v));else{const{leave:_,delayLeave:C,afterLeave:P}=w,I=()=>{c.ctx.isUnmounted?n(g):o(g,d,u)},B=()=>{const K=g._isLeaving||!!g[to];g._isLeaving&&g[to](!0),w.persisted&&!K?I():_(g,()=>{I(),P&&P()})};C?C(g,I,B):B()}else o(g,d,u)},Pe=(c,d,u,m=!1,v=!1)=>{const{type:g,props:$,ref:w,children:x,dynamicChildren:b,shapeFlag:T,patchFlag:_,dirs:C,cacheIndex:P,memo:I}=c;if(_===-2&&(v=!1),w!=null&&(Se(),Ct(w,null,u,c,!0),Le()),P!=null&&(d.renderCache[P]=void 0),T&256){d.ctx.deactivate(c);return}const B=T&1&&C,K=!ft(c);let te;if(K&&(te=$&&$.onVnodeBeforeUnmount)&&Oe(te,d,c),T&6)jd(c.component,u,m);else{if(T&128){c.suspense.unmount(u,m);return}B&&et(c,null,d,"beforeUnmount"),T&64?c.type.remove(c,d,u,Kt,m):b&&!b.hasOnce&&(g!==X||_>0&&_&64)?zt(b,d,u,!1,!0):(g===X&&_&384||!v&&T&16)&&zt(x,d,u),m&&Mi(c)}const le=I!=null&&P==null;(K&&(te=$&&$.onVnodeUnmounted)||B||le)&&ue(()=>{te&&Oe(te,d,c),B&&et(c,null,d,"unmounted"),le&&(c.el=null)},u)},Mi=c=>{const{type:d,el:u,anchor:m,transition:v}=c;if(d===X){Fd(u,m);return}if(d===uo){O(c);return}const g=()=>{n(u),v&&!v.persisted&&v.afterLeave&&v.afterLeave()};if(c.shapeFlag&1&&v&&!v.persisted){const{leave:$,delayLeave:w}=v,x=()=>$(u,g);w?w(c.el,g,x):x()}else g()},Fd=(c,d)=>{let u;for(;c!==d;)u=y(c),n(c),c=u;n(d)},jd=(c,d,u)=>{const{bum:m,scope:v,job:g,subTree:$,um:w,m:x,a:b}=c;Xn(x),Xn(b),m&&Jt(m),v.stop(),g&&(g.flags|=8,Pe($,c,d,u)),w&&ue(w,d),ue(()=>{c.isUnmounted=!0},d)},zt=(c,d,u,m=!1,v=!1,g=0)=>{for(let $=g;$<c.length;$++)Pe(c[$],d,u,m,v)},Ms=c=>{if(c.shapeFlag&6)return Ms(c.component.subTree);if(c.shapeFlag&128)return c.suspense.next();const d=y(c.anchor||c.el),u=d&&d[Ol];return u?y(u):d};let ko=!1;const Pi=(c,d,u)=>{let m;c==null?d._vnode&&(Pe(d._vnode,null,null,!0),m=d._vnode.component):N(d._vnode||null,c,d,null,null,null,u),d._vnode=c,ko||(ko=!0,pn(m),fn(),ko=!1)},Kt={p:N,um:Pe,m:nt,r:Mi,mt:Eo,mc:Ye,pc:q,pbc:st,n:Ms,o:e};return{render:Pi,hydrate:void 0,createApp:Ql(Pi)}}function fo({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 tt({effect:e,job:t},s){s?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function gr(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function qn(e,t,s=!1){const o=e.children,n=t.children;if(A(o)&&A(n))for(let i=0;i<o.length;i++){const l=o[i];let r=n[i];r.shapeFlag&1&&!r.dynamicChildren&&((r.patchFlag<=0||r.patchFlag===32)&&(r=n[i]=Be(n[i]),r.el=l.el),!s&&r.patchFlag!==-2&&qn(l,r)),r.type===vs&&(r.patchFlag===-1&&(r=n[i]=Be(r)),r.el=l.el),r.type===Ce&&!r.el&&(r.el=l.el)}}function br(e){const t=e.slice(),s=[0];let o,n,i,l,r;const a=e.length;for(o=0;o<a;o++){const f=e[o];if(f!==0){if(n=s[s.length-1],e[n]<f){t[o]=n,s.push(o);continue}for(i=0,l=s.length-1;i<l;)r=i+l>>1,e[s[r]]<f?i=r+1:l=r;f<e[s[i]]&&(i>0&&(t[o]=s[i-1]),s[i]=o)}}for(i=s.length,l=s[i-1];i-- >0;)s[i]=l,l=t[l];return s}function Gn(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Gn(t)}function Xn(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function Yn(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?Yn(t.subTree):null}const Jn=e=>e.__isSuspense;function vr(e,t){t&&t.pendingBranch?A(e)?t.effects.push(...e):t.effects.push(e):Ll(e)}const X=Symbol.for("v-fgt"),vs=Symbol.for("v-txt"),Ce=Symbol.for("v-cmt"),uo=Symbol.for("v-stc"),Ue=[];let he=null;function E(e=!1){Ue.push(he=e?null:[])}function ho(){Ue.pop(),he=Ue[Ue.length-1]||null}let Mt=1;function Zn(e,t=!1){Mt+=e,e<0&&he&&t&&(he.hasOnce=!0)}function Qn(e){return e.dynamicChildren=Mt>0?he||it:null,ho(),Mt>0&&he&&he.push(e),e}function k(e,t,s,o,n,i){return Qn(L(e,t,s,o,n,i,!0))}function ms(e,t,s,o,n){return Qn(ve(e,t,s,o,n,!0))}function go(e){return e?e.__v_isVNode===!0:!1}function Pt(e,t){return e.type===t.type&&e.key===t.key}const ei=({key:e})=>e??null,xs=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?G(e)||ae(e)||R(e)?{i:ie,r:e,k:t,f:!!s}:e:null);function L(e,t=null,s=null,o=0,n=null,i=e===X?0:1,l=!1,r=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ei(t),ref:t&&xs(t),scopeId:hn,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:i,patchFlag:o,dynamicProps:n,dynamicChildren:null,appContext:null,ctx:ie};return r?(ys(a,s),i&128&&e.normalize(a)):s&&(a.shapeFlag|=G(s)?8:16),Mt>0&&!l&&he&&(a.patchFlag>0||i&6)&&a.patchFlag!==32&&he.push(a),a}const ve=mr;function mr(e,t=null,s=null,o=0,n=null,i=!1){if((!e||e===Ul)&&(e=Ce),go(e)){const r=ht(e,t,!0);return s&&ys(r,s),Mt>0&&!i&&he&&(r.shapeFlag&6?he[he.indexOf(e)]=r:he.push(r)),r.patchFlag=-2,r}if(Or(e)&&(e=e.__vccOpts),t){t=xr(t);let{class:r,style:a}=t;r&&!G(r)&&(t.class=_e(r)),V(a)&&(Js(a)&&!A(a)&&(a=Z({},a)),t.style=xt(a))}const l=G(e)?1:Jn(e)?128:ps(e)?64:V(e)?4:R(e)?2:0;return L(e,t,s,o,n,l,i,!0)}function xr(e){return e?Js(e)||jn(e)?Z({},e):e:null}function ht(e,t,s=!1,o=!1){const{props:n,ref:i,patchFlag:l,children:r,transition:a}=e,f=t?yr(n||{},t):n,p={__v_isVNode:!0,__v_skip:!0,type:e.type,props:f,key:f&&ei(f),ref:t&&t.ref?s&&i?A(i)?i.concat(xs(t)):[i,xs(t)]:xs(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:r,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==X?l===-1?16:l|16:l,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&ht(e.ssContent),ssFallback:e.ssFallback&&ht(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&o&&so(p,a.clone(p)),p}function gt(e=" ",t=0){return ve(vs,null,e,t)}function Q(e="",t=!1){return t?(E(),ms(Ce,null,e)):ve(Ce,null,e)}function Te(e){return e==null||typeof e=="boolean"?ve(Ce):A(e)?ve(X,null,e.slice()):go(e)?Be(e):ve(vs,null,String(e))}function Be(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:ht(e)}function ys(e,t){let s=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(A(t))s=16;else if(typeof t=="object")if(o&65){const n=t.default;n&&(n._c&&(n._d=!1),ys(e,n()),n._c&&(n._d=!0));return}else{s=32;const n=t._;!n&&!jn(t)?t._ctx=ie:n===3&&ie&&(ie.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(R(t)){if(o&65){ys(e,{default:t});return}t={default:t,_ctx:ie},s=32}else t=String(t),o&64?(s=16,t=[gt(t)]):s=8;e.children=t,e.shapeFlag|=s}function yr(...e){const t={};for(let s=0;s<e.length;s++){const o=e[s];for(const n in o)if(n==="class")t.class!==o.class&&(t.class=_e([t.class,o.class]));else if(n==="style")t.style=xt([t.style,o.style]);else if(Bt(n)){const i=t[n],l=o[n];l&&i!==l&&!(A(i)&&i.includes(l))?t[n]=i?[].concat(i,l):l:l==null&&i==null&&!Wt(n)&&(t[n]=l)}else n!==""&&(t[n]=o[n])}return t}function Oe(e,t,s,o=null){we(e,t,7,[s,o])}const wr=Pn();let $r=0;function _r(e,t,s){const o=e.type,n=(t?t.appContext:e.appContext)||wr,i={uid:$r++,vnode:e,type:o,parent:t,appContext:n,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new qi(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(n.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:zn(o,n),emitsOptions:Rn(o,n),emit:null,emitted:null,propsDefaults:U,inheritAttrs:o.inheritAttrs,ctx:U,data:U,props:U,attrs:U,slots:U,refs:U,setupState:U,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 i.ctx={_:i},i.root=t?t.root:i,i.emit=tr.bind(null,i),e.ce&&e.ce(i),i}let ce=null;const ti=()=>ce||ie;let ws,Rt;{const e=Zt(),t=(s,o)=>{let n;return(n=e[s])||(n=e[s]=[]),n.push(o),i=>{n.length>1?n.forEach(l=>l(i)):n[0](i)}};ws=t("__VUE_INSTANCE_SETTERS__",s=>ce=s),Rt=t("__VUE_SSR_SETTERS__",s=>It=s)}const Nt=e=>{const t=ce;return ws(e),e.scope.on(),()=>{e.scope.off(),ws(t)}},si=()=>{ce&&ce.scope.off(),ws(null)};function oi(e){return e.vnode.shapeFlag&4}let It=!1;function Sr(e,t=!1,s=!1){t&&Rt(t);const{props:o,children:n}=e.vnode,i=oi(e);rr(e,o,i,t),pr(e,n,s||t);const l=i?Lr(e,t):void 0;return t&&Rt(!1),l}function Lr(e,t){const s=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Wl);const{setup:o}=s;if(o){Se();const n=e.setupContext=o.length>1?kr(e):null,i=Nt(e),l=at(o,e,0,[e.props,n]),r=Oo(l);if(Le(),i(),(r||e.sp)&&!ft(e)&&mn(e),r){if(l.then(si,si),t)return l.then(a=>{Rt(!0);try{ni(e,a,t)}finally{Rt(!1)}}).catch(a=>{rs(a,e,0)});e.asyncDep=l}else ni(e,l)}else ii(e)}function ni(e,t,s){R(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:V(t)&&(e.setupState=ln(t)),ii(e)}function ii(e,t,s){const o=e.type;e.render||(e.render=o.render||$e);{const n=Nt(e);Se();try{ql(e)}finally{Le(),n()}}}const Er={get(e,t){return re(e,"get",""),e[t]}};function kr(e){const t=s=>{e.exposed=s||{}};return{attrs:new Proxy(e.attrs,Er),slots:e.slots,emit:e.emit,expose:t}}function $s(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(ln(ul(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in Ot)return Ot[s](e)},has(t,s){return s in t||s in Ot}})):e.proxy}const Cr=/(?:^|[-_])\w/g,Tr=e=>e.replace(Cr,t=>t.toUpperCase()).replace(/[-_]/g,"");function li(e,t=!0){return R(e)?e.displayName||e.name:e.name||t&&e.__name}function ri(e,t,s=!1){let o=li(t);if(!o&&t.__file){const n=t.__file.match(/([^/\\]+)\.\w+$/);n&&(o=n[1])}if(!o&&e){const n=i=>{for(const l in i)if(i[l]===t)return l};o=n(e.components)||e.parent&&n(e.parent.type.components)||n(e.appContext.components)}return o?Tr(o):s?"App":"Anonymous"}function Or(e){return R(e)&&"__vccOpts"in e}const Ar=(e,t)=>bl(e,t,It),Mr="3.5.42";/**
* @vue/runtime-dom v3.5.42
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/let bo;const ai=typeof window<"u"&&window.trustedTypes;if(ai)try{bo=ai.createPolicy("vue",{createHTML:e=>e})}catch{}const ci=bo?e=>bo.createHTML(e):e=>e,Pr="http://www.w3.org/2000/svg",Rr="http://www.w3.org/1998/Math/MathML",We=typeof document<"u"?document:null,di=We&&We.createElement("template"),Nr={insert:(e,t,s)=>{t.insertBefore(e,s||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,s,o)=>{const n=t==="svg"?We.createElementNS(Pr,e):t==="mathml"?We.createElementNS(Rr,e):s?We.createElement(e,{is:s}):We.createElement(e);return e==="select"&&o&&o.multiple!=null&&n.setAttribute("multiple",o.multiple),n},createText:e=>We.createTextNode(e),createComment:e=>We.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>We.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,s,o,n,i){const l=s?s.previousSibling:t.lastChild;if(n&&(n===i||n.nextSibling))for(;t.insertBefore(n.cloneNode(!0),s),!(n===i||!(n=n.nextSibling)););else{di.innerHTML=ci(o==="svg"?`<svg>${e}</svg>`:o==="mathml"?`<math>${e}</math>`:e);const r=di.content;if(o==="svg"||o==="mathml"){const a=r.firstChild;for(;a.firstChild;)r.appendChild(a.firstChild);r.removeChild(a)}t.insertBefore(r,s)}return[l?l.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}},Ir=Symbol("_vtc");function Hr(e,t,s){const o=e[Ir];o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}const _s=Symbol("_vod"),pi=Symbol("_vsh"),vo={name:"show",beforeMount(e,{value:t},{transition:s}){e[_s]=e.style.display==="none"?"":e.style.display,s&&t?s.beforeEnter(e):Ht(e,t)},mounted(e,{value:t},{transition:s}){s&&t&&s.enter(e)},updated(e,{value:t,oldValue:s},{transition:o}){!t!=!s&&(o?t?(o.beforeEnter(e),Ht(e,!0),o.enter(e)):o.leave(e,()=>{Ht(e,!1)}):Ht(e,t))},beforeUnmount(e,{value:t}){Ht(e,t)}};function Ht(e,t){e.style.display=t?e[_s]:"none",e[pi]=!t}const Dr=Symbol(""),Fr=/(?:^|;)\s*display\s*:/;function jr(e,t,s){const o=e.style,n=G(s);let i=!1;if(s&&!n){if(t)if(G(t))for(const l of t.split(";")){const r=l.slice(0,l.indexOf(":")).trim();s[r]==null&&Dt(o,r,"")}else for(const l in t)s[l]==null&&Dt(o,l,"");for(const l in s){l==="display"&&(i=!0);const r=s[l];r!=null?zr(e,l,!G(t)&&t?t[l]:void 0,r)||Dt(o,l,r):Dt(o,l,"")}}else if(n){if(t!==s){const l=o[Dr];l&&(s+=";"+l),o.cssText=s,i=Fr.test(s)}}else t&&e.removeAttribute("style");_s in e&&(e[_s]=i?o.display:"",e[pi]&&(o.display="none"))}const Ss=/\s*!important$/;function Dt(e,t,s){if(A(s))s.forEach(o=>Dt(e,t,o));else if(s==null&&(s=""),t.startsWith("--"))Ss.test(s)?e.setProperty(t,s.replace(Ss,""),"important"):e.setProperty(t,s);else{const o=Vr(e,t);Ss.test(s)?e.setProperty(be(o),s.replace(Ss,""),"important"):e[o]=s}}const fi=["Webkit","Moz","ms"],mo={};function Vr(e,t){const s=mo[t];if(s)return s;let o=oe(t);if(o!=="filter"&&o in e)return mo[t]=o;o=Yt(o);for(let n=0;n<fi.length;n++){const i=fi[n]+o;if(i in e)return mo[t]=i}return t}function zr(e,t,s,o){return e.tagName==="TEXTAREA"&&(t==="width"||t==="height")&&G(o)&&s===o}const ui="http://www.w3.org/1999/xlink";function hi(e,t,s,o,n,i=Bi(t)){o&&t.startsWith("xlink:")?s==null?e.removeAttributeNS(ui,t.slice(6,t.length)):e.setAttributeNS(ui,t,s):s==null||i&&!No(s)?e.removeAttribute(t):e.setAttribute(t,i?"":me(s)?String(s):s)}function gi(e,t,s,o,n){if(t==="innerHTML"||t==="textContent"){s!=null&&(e[t]=t==="innerHTML"?ci(s):s);return}const i=e.tagName;if(t==="value"&&i!=="PROGRESS"&&!i.includes("-")){const r=i==="OPTION"?e.getAttribute("value")||"":e.value,a=s==null?e.type==="checkbox"?"on":"":String(s);(r!==a||!("_value"in e))&&(e.value=a),s==null&&e.removeAttribute(t),e._value=s;return}let l=!1;if(s===""||s==null){const r=typeof e[t];r==="boolean"?s=No(s):s==null&&r==="string"?(s="",l=!0):r==="number"&&(s=0,l=!0)}try{e[t]=s}catch{}l&&e.removeAttribute(n||t)}function bt(e,t,s,o){e.addEventListener(t,s,o)}function Kr(e,t,s,o){e.removeEventListener(t,s,o)}const bi=Symbol("_vei");function Ur(e,t,s,o,n=null){const i=e[bi]||(e[bi]={}),l=i[t];if(o&&l)l.value=o;else{const[r,a]=qr(t);if(o){const f=i[t]=Yr(o,n);bt(e,r,f,a)}else l&&(Kr(e,r,l,a),i[t]=void 0)}}const Br=/(Once|Passive|Capture)$/,Wr=/^on:?(?:Once|Passive|Capture)$/;function qr(e){let t,s;for(;(s=e.match(Br))&&!Wr.test(e);)t||(t={}),e=e.slice(0,e.length-s[1].length),t[s[1].toLowerCase()]=!0;return[e[2]===":"?e.slice(3):be(e.slice(2)),t]}let xo=0;const Gr=Promise.resolve(),Xr=()=>xo||(Gr.then(()=>xo=0),xo=Date.now());function Yr(e,t){const s=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=s.attached)return;const n=s.value;if(A(n)){const i=o.stopImmediatePropagation;o.stopImmediatePropagation=()=>{i.call(o),o._stopped=!0};const l=n.slice(),r=[o];for(let a=0;a<l.length&&!o._stopped;a++){const f=l[a];f&&we(f,t,5,r)}}else we(n,t,5,[o])};return s.value=e,s.attached=Xr(),s}const vi=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Jr=(e,t,s,o,n,i)=>{const l=n==="svg";t==="class"?Hr(e,o,l):t==="style"?jr(e,s,o):Bt(t)?Wt(t)||Ur(e,t,s,o,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Zr(e,t,o,l))?(gi(e,t,o),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&hi(e,t,o,l,i,t!=="value")):e._isVueCE&&(Qr(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!G(o)))?gi(e,oe(t),o,i,t):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),hi(e,t,o,l))};function Zr(e,t,s,o){if(o)return!!(t==="innerHTML"||t==="textContent"||t in e&&vi(t)&&R(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 n=e.tagName;if(n==="IMG"||n==="VIDEO"||n==="CANVAS"||n==="SOURCE")return!1}return vi(t)&&G(s)?!1:t in e}function Qr(e,t){const s=e._def.props;if(!s)return!1;const o=oe(t);return Array.isArray(s)?s.some(n=>oe(n)===o):Object.keys(s).some(n=>oe(n)===o)}const mi={};function ea(e,t,s){let o=fs(e,t);Gt(o)&&(o=Z({},o,t));class n extends yo{constructor(l){super(o,l,s)}}return n.def=o,n}const ta=typeof HTMLElement<"u"?HTMLElement:class{};class yo extends ta{constructor(t,s={},o=_i){super(),this._def=t,this._props=s,this._createApp=o,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&o!==_i?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(Z({},t.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;!this.shadowRoot&&!this._resolved&&this._parseSlots(),this._connected=!0;let t=this;for(;t=t&&(t.assignedSlot||t.parentNode||t.host);)if(t instanceof yo){this._parent=t;break}this._instance||(this._resolved?this._mount(this._def):t&&t._pendingResolve?this._pendingResolve=t._pendingResolve.then(()=>{if(this._pendingResolve=void 0,this.isConnected)return this._resolveDef()}):this._resolveDef())}_setParent(t=this._parent){t&&(this._instance.parent=t._instance,this._inheritParentContext(t))}_inheritParentContext(t=this._parent){t&&this._app&&Object.setPrototypeOf(this._app._context.provides,t._instance.provides)}disconnectedCallback(){this._connected=!1,cn(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(t){for(const s of t)this._setAttr(s.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let o=0;o<this.attributes.length;o++)this._setAttr(this.attributes[o].name);this._ob=new MutationObserver(this._processMutations.bind(this)),this._ob.observe(this,{attributes:!0});const t=(o,n=!1)=>{this._resolved=!0,this._pendingResolve=void 0;const{props:i,styles:l}=o;let r;if(i&&!A(i))for(const a in i){const f=i[a];(f===Number||f&&f.type===Number)&&(a in this._props&&(this._props[a]=Po(this._props[a])),(r||(r=Object.create(null)))[oe(a)]=!0)}this._numberProps=r,this._resolveProps(o),this.shadowRoot&&this._applyStyles(l),this._mount(o)},s=this._def.__asyncLoader;if(s)return this._pendingResolve=s().then(o=>{o.configureApp=this._def.configureApp,t(this._def=o,!0)}),this._pendingResolve;t(this._def)}_mount(t){this._app=this._createApp(t),this._inheritParentContext(),t.configureApp&&t.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const s=this._instance&&this._instance.exposed;if(s)for(const o in s)D(this,o)||Object.defineProperty(this,o,{get:()=>nn(s[o])})}_resolveProps(t){const{props:s}=t,o=A(s)?s:Object.keys(s||{});for(const n of Object.keys(this))n[0]!=="_"&&o.includes(n)&&this._setProp(n,this[n]);for(const n of o.map(oe))Object.defineProperty(this,n,{get(){return this._getProp(n)},set(i){this._setProp(n,i,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const s=this.hasAttribute(t);let o=s?this.getAttribute(t):mi;const n=oe(t);s&&this._numberProps&&this._numberProps[n]&&(o=Po(o)),this._setProp(n,o,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,s,o=!0,n=!1){if(s!==this._props[t]&&(this._dirty=!0,s===mi?delete this._props[t]:(this._props[t]=s,t==="key"&&this._app&&(this._app._ceVNode.key=s)),n&&this._instance&&this._update(),o)){const i=this._ob;i&&(this._processMutations(i.takeRecords()),i.disconnect()),s===!0?this.setAttribute(be(t),""):typeof s=="string"||typeof s=="number"?this.setAttribute(be(t),s+""):s||this.removeAttribute(be(t)),i&&i.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),aa(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const s=ve(this._def,Z(t,this._props));return this._instance||(s.ce=o=>{this._instance=o,o.ce=this,o.isCE=!0;const n=(i,l)=>{this.dispatchEvent(new CustomEvent(i,Gt(l[0])?Z({detail:l},l[0]):{detail:l}))};o.emit=(i,...l)=>{n(i,l),be(i)!==i&&n(be(i),l)},this._setParent()}),s}_applyStyles(t,s,o){if(!t)return;if(s){if(s===this._def||this._styleChildren.has(s))return;this._styleChildren.add(s)}const n=this._nonce,i=this.shadowRoot,l=o?this._getStyleAnchor(o)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(i);let r=null;for(let a=t.length-1;a>=0;a--){const f=document.createElement("style");n&&f.setAttribute("nonce",n),f.textContent=t[a],i.insertBefore(f,r||l),r=f,a===0&&(o||this._styleAnchors.set(this._def,f),s&&this._styleAnchors.set(s,f))}}_getStyleAnchor(t){if(!t)return null;const s=this._styleAnchors.get(t);return s&&s.parentNode===this.shadowRoot?s:(s&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let s=0;s<t.childNodes.length;s++){const o=t.childNodes[s];if(!(o instanceof HTMLStyleElement))return o}return null}_parseSlots(){const t=this._slots={};let s;for(;s=this.firstChild;){const o=s.nodeType===1&&s.getAttribute("slot")||"default";(t[o]||(t[o]=[])).push(s),this.removeChild(s)}}_renderSlots(){const t=this._getSlots(),s=this._instance.type.__scopeId;for(let o=0;o<t.length;o++){const n=t[o],i=n.getAttribute("name")||"default",l=this._slots[i],r=n.parentNode;if(l)for(const a of l){if(s&&a.nodeType===1){const f=s+"-s",p=document.createTreeWalker(a,1);a.setAttribute(f,"");let h;for(;h=p.nextNode();)h.setAttribute(f,"")}r.insertBefore(a,n)}else for(;n.firstChild;)r.insertBefore(n.firstChild,n);r.removeChild(n)}}_getSlots(){const t=[this];this._teleportTargets&&t.push(...this._teleportTargets);const s=new Set;for(const o of t){const n=o.querySelectorAll("slot");for(let i=0;i<n.length;i++)s.add(n[i])}return Array.from(s)}_injectChildStyle(t,s){this._applyStyles(t.styles,t,s)}_beginPatch(){this._patching=!0,this._dirty=!1}_endPatch(){this._patching=!1,this._dirty&&this._instance&&this._update()}_hasShadowRoot(){return this._def.shadowRoot!==!1}_removeChildStyle(t){}}const xi=e=>{const t=e.props["onUpdate:modelValue"]||!1;return A(t)?s=>Jt(t,s):t};function sa(e){e.target.composing=!0}function yi(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Ls=Symbol("_assign"),Es=Symbol("_initialValue");function wo(e,t,s){return t&&(e=e.trim()),s&&(e=Hs(e)),e}const oa={created(e,{modifiers:{lazy:t,trim:s,number:o}},n){e.parentNode&&(e.type==="text"?e[Es]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Es]=e.defaultValue.replace(/\r\n?/g,`
`))),e[Ls]=xi(n);const i=o||n.props&&n.props.type==="number";bt(e,t?"change":"input",l=>{l.target.composing||e[Ls](wo(e.value,s,i))}),(s||i)&&bt(e,"change",()=>{e.value=wo(e.value,s,i)}),t||(bt(e,"compositionstart",sa),bt(e,"compositionend",yi),bt(e,"change",yi))},mounted(e,{value:t,modifiers:{trim:s,number:o}}){const n=t??"",i=e[Es];delete e[Es],i!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==i?e[Ls](wo(e.value,s,o)):e.value=n},beforeUpdate(e,{value:t,oldValue:s,modifiers:{lazy:o,trim:n,number:i}},l){if(e[Ls]=xi(l),e.composing)return;const r=(i||e.type==="number")&&!/^0\d/.test(e.value)?Hs(e.value):e.value,a=t??"";if(r===a)return;const f=e.getRootNode();(f instanceof Document||f instanceof ShadowRoot)&&f.activeElement===e&&e.type!=="range"&&(o&&t===s||n&&e.value.trim()===a)||(e.value=a)}},na=["ctrl","shift","alt","meta"],ia={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)=>na.some(s=>e[`${s}Key`]&&!t.includes(s))},la=(e,t)=>{if(!e)return e;const s=e._withMods||(e._withMods={}),o=t.join(".");return s[o]||(s[o]=(n,...i)=>{for(let l=0;l<t.length;l++){const r=ia[t[l]];if(r&&r(n,t))return}return e(n,...i)})},ra=Z({patchProp:Jr},Nr);let wi;function $i(){return wi||(wi=ur(ra))}const aa=(...e)=>{$i().render(...e)},_i=(...e)=>{const t=$i().createApp(...e),{mount:s}=t;return t.mount=o=>{const n=da(o);if(!n)return;const i=t._component;!R(i)&&!i.render&&!i.template&&(i.template=n.innerHTML),n.nodeType===1&&(n.textContent="");const l=s(n,!1,ca(n));return n instanceof Element&&(n.removeAttribute("v-cloak"),n.setAttribute("data-v-app","")),l},t};function ca(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function da(e){return G(e)?document.querySelector(e):e}const pa={title:"استوديو الإضافات",navLabel:"الإضافات حسب القدرة",countLabel:"{bundles} حزمة · {elements} إضافة مدرجة هنا",changeLanguage:"تغيير اللغة",copyEmbed:"نسخ رمز التضمين",copy:"نسخ",copied:"تم النسخ",scriptEmbed:"تضمين عبر سكربت",loading:"جارٍ تحميل {name}…",couldNotLoad:"تعذّر تحميل {name}.",chooseElement:"اختر إضافة من القائمة.",filterPlaceholder:"تصفية الإضافات",collapseAll:"طي الكل",noMatch:"لا توجد إضافة تطابق «{query}».",openSection:"فتح {cap}، {label}",part:"جزء",noStandalone:"بلا صفحة مستقلة",cap5:"هيكل التطبيق",cap4:"مركّب",cap3:"متعدد العروض",cap2:"إعداد مسبق",cap1:"مفرد",toggleList:"إظهار القائمة أو إخفاؤها",openViews:"فتح قائمة العروض",expandList:"توسيع القائمة",collapseList:"طي القائمة",collapse:"طي",partOf:"جزء من {name}، غير منشور بمفرده"},fa={title:"Plugin-Studio",navLabel:"Plugins nach Fähigkeit",countLabel:"{bundles} Bundles · {elements} Plugins hier aufgeführt",changeLanguage:"Sprache ändern",copyEmbed:"Einbettung kopieren",copy:"Kopieren",copied:"Kopiert",scriptEmbed:"Skript-Einbettung",loading:"{name} wird geladen…",couldNotLoad:"{name} konnte nicht geladen werden.",chooseElement:"Wählen Sie ein Plugin aus der Liste.",filterPlaceholder:"Plugins filtern",collapseAll:"Alle einklappen",noMatch:"Kein Plugin entspricht „{query}“.",openSection:"{cap} öffnen, {label}",part:"Teil",noStandalone:"keine eigene Seite",cap5:"App-Shell",cap4:"Komposit",cap3:"Mehrfachansicht",cap2:"Voreinstellung",cap1:"Einzeln",toggleList:"Liste ein-/ausblenden",openViews:"Ansichtsliste öffnen",expandList:"Liste ausklappen",collapseList:"Liste einklappen",collapse:"Einklappen",partOf:"Teil von {name}, nicht eigenständig veröffentlicht"},ua={title:"Plugin Studio",navLabel:"Plugins by capability",countLabel:"{bundles} bundles · {elements} plugins listed here",changeLanguage:"Change language",copyEmbed:"Copy embed",copy:"Copy",copied:"Copied",scriptEmbed:"Script embed",loading:"Loading {name}…",couldNotLoad:"Could not load {name}.",chooseElement:"Choose a plugin from the list.",filterPlaceholder:"Filter plugins",collapseAll:"Collapse all",noMatch:"No plugin matches “{query}”.",openSection:"Open {cap}, {label}",part:"part",noStandalone:"no standalone page",cap5:"App shell",cap4:"Composite",cap3:"Multi-view",cap2:"Preset",cap1:"Single",toggleList:"Toggle list",openViews:"Open the list of views",expandList:"Expand list",collapseList:"Collapse list",collapse:"Collapse",partOf:"part of {name}, not published on its own"},ha={title:"Estudio de plugins",navLabel:"Plugins por capacidad",countLabel:"{bundles} paquetes · {elements} plugins listados aquí",changeLanguage:"Cambiar idioma",copyEmbed:"Copiar código de inserción",copy:"Copiar",copied:"Copiado",scriptEmbed:"Inserción por script",loading:"Cargando {name}…",couldNotLoad:"No se pudo cargar {name}.",chooseElement:"Elija un plugin de la lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Contraer todo",noMatch:"Ningún plugin coincide con «{query}».",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sin página propia",cap5:"Contenedor de aplicación",cap4:"Compuesto",cap3:"Multivista",cap2:"Preajuste",cap1:"Individual",toggleList:"Mostrar u ocultar la lista",openViews:"Abrir la lista de vistas",expandList:"Expandir la lista",collapseList:"Contraer la lista",collapse:"Contraer",partOf:"parte de {name}, no publicada por separado"},ga={title:"Studio de plugins",navLabel:"Plugins par capacité",countLabel:"{bundles} paquets · {elements} plugins listés ici",changeLanguage:"Changer de langue",copyEmbed:"Copier le code d’intégration",copy:"Copier",copied:"Copié",scriptEmbed:"Intégration par script",loading:"Chargement de {name}…",couldNotLoad:"Impossible de charger {name}.",chooseElement:"Choisissez un plugin dans la liste.",filterPlaceholder:"Filtrer les plugins",collapseAll:"Tout replier",noMatch:"Aucun plugin ne correspond à « {query} ».",openSection:"Ouvrir {cap}, {label}",part:"partie",noStandalone:"pas de page autonome",cap5:"Coquille d’application",cap4:"Composite",cap3:"Multivue",cap2:"Préréglage",cap1:"Simple",toggleList:"Afficher ou masquer la liste",openViews:"Ouvrir la liste des vues",expandList:"Déplier la liste",collapseList:"Replier la liste",collapse:"Replier",partOf:"partie de {name}, non publiée seule"},ba={title:"प्लगइन स्टूडियो",navLabel:"क्षमता के अनुसार प्लगइन",countLabel:"{bundles} बंडल · यहाँ {elements} प्लगइन सूचीबद्ध",changeLanguage:"भाषा बदलें",copyEmbed:"एम्बेड कोड कॉपी करें",copy:"कॉपी करें",copied:"कॉपी हो गया",scriptEmbed:"स्क्रिप्ट एम्बेड",loading:"{name} लोड हो रहा है…",couldNotLoad:"{name} लोड नहीं हो सका।",chooseElement:"सूची से कोई प्लगइन चुनें।",filterPlaceholder:"प्लगइन फ़िल्टर करें",collapseAll:"सभी संक्षिप्त करें",noMatch:"“{query}” से कोई प्लगइन मेल नहीं खाता।",openSection:"{cap} खोलें, {label}",part:"भाग",noStandalone:"कोई अलग पेज नहीं",cap5:"ऐप शेल",cap4:"संयुक्त",cap3:"बहु-दृश्य",cap2:"प्रीसेट",cap1:"एकल",toggleList:"सूची दिखाएँ या छिपाएँ",openViews:"दृश्यों की सूची खोलें",expandList:"सूची फैलाएँ",collapseList:"सूची संक्षिप्त करें",collapse:"संक्षिप्त करें",partOf:"{name} का भाग, अलग से प्रकाशित नहीं"},va={title:"Studio dei plugin",navLabel:"Plugin per capacità",countLabel:"{bundles} pacchetti · {elements} plugin elencati qui",changeLanguage:"Cambia lingua",copyEmbed:"Copia codice di incorporamento",copy:"Copia",copied:"Copiato",scriptEmbed:"Incorporamento tramite script",loading:"Caricamento di {name}…",couldNotLoad:"Impossibile caricare {name}.",chooseElement:"Scegli un plugin dall’elenco.",filterPlaceholder:"Filtra i plugin",collapseAll:"Comprimi tutto",noMatch:"Nessun plugin corrisponde a «{query}».",openSection:"Apri {cap}, {label}",part:"parte",noStandalone:"nessuna pagina propria",cap5:"Shell dell’app",cap4:"Composito",cap3:"Multivista",cap2:"Preimpostato",cap1:"Singolo",toggleList:"Mostra o nascondi l’elenco",openViews:"Apri l’elenco delle viste",expandList:"Espandi l’elenco",collapseList:"Comprimi l’elenco",collapse:"Comprimi",partOf:"parte di {name}, non pubblicata da sola"},ma={title:"Estúdio de plugins",navLabel:"Plugins por capacidade",countLabel:"{bundles} pacotes · {elements} plugins listados aqui",changeLanguage:"Mudar idioma",copyEmbed:"Copiar código de incorporação",copy:"Copiar",copied:"Copiado",scriptEmbed:"Incorporação por script",loading:"Carregando {name}…",couldNotLoad:"Não foi possível carregar {name}.",chooseElement:"Escolha um plugin na lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Recolher tudo",noMatch:"Nenhum plugin corresponde a “{query}”.",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sem página própria",cap5:"Shell do aplicativo",cap4:"Composto",cap3:"Multivisualização",cap2:"Predefinição",cap1:"Único",toggleList:"Mostrar ou ocultar a lista",openViews:"Abrir a lista de visualizações",expandList:"Expandir a lista",collapseList:"Recolher a lista",collapse:"Recolher",partOf:"parte de {name}, não publicada separadamente"},xa={title:"Studio de pluginuri",navLabel:"Pluginuri după capacitate",countLabel:"{bundles} pachete · {elements} pluginuri listate aici",changeLanguage:"Schimbă limba",copyEmbed:"Copiază codul de încorporare",copy:"Copiază",copied:"Copiat",scriptEmbed:"Încorporare prin script",loading:"Se încarcă {name}…",couldNotLoad:"{name} nu a putut fi încărcat.",chooseElement:"Alegeți un plugin din listă.",filterPlaceholder:"Filtrează pluginurile",collapseAll:"Restrânge tot",noMatch:"Niciun plugin nu corespunde cu „{query}”.",openSection:"Deschide {cap}, {label}",part:"parte",noStandalone:"fără pagină proprie",cap5:"Cadru de aplicație",cap4:"Compus",cap3:"Vizualizări multiple",cap2:"Presetat",cap1:"Simplu",toggleList:"Afișează sau ascunde lista",openViews:"Deschide lista de vizualizări",expandList:"Extinde lista",collapseList:"Restrânge lista",collapse:"Restrânge",partOf:"parte din {name}, nepublicată separat"},ya={title:"Студия плагинов",navLabel:"Плагины по возможностям",countLabel:"Здесь: пакетов {bundles} · плагинов {elements}",changeLanguage:"Сменить язык",copyEmbed:"Скопировать код встраивания",copy:"Копировать",copied:"Скопировано",scriptEmbed:"Встраивание через скрипт",loading:"Загрузка {name}…",couldNotLoad:"Не удалось загрузить {name}.",chooseElement:"Выберите плагин из списка.",filterPlaceholder:"Фильтр плагинов",collapseAll:"Свернуть всё",noMatch:"Нет плагинов, соответствующих «{query}».",openSection:"Открыть {cap}, {label}",part:"часть",noStandalone:"нет отдельной страницы",cap5:"Оболочка приложения",cap4:"Составной",cap3:"Несколько видов",cap2:"Предустановка",cap1:"Одиночный",toggleList:"Показать или скрыть список",openViews:"Открыть список представлений",expandList:"Развернуть список",collapseList:"Свернуть список",collapse:"Свернуть",partOf:"часть {name}, не публикуется отдельно"},wa={title:"插件工作室",navLabel:"按能力分类的插件",countLabel:"此处列出 {bundles} 个包 · {elements} 个插件",changeLanguage:"切换语言",copyEmbed:"复制嵌入代码",copy:"复制",copied:"已复制",scriptEmbed:"脚本嵌入",loading:"正在加载 {name}…",couldNotLoad:"无法加载 {name}。",chooseElement:"请从列表中选择一个插件。",filterPlaceholder:"筛选插件",collapseAll:"全部折叠",noMatch:"没有与“{query}”匹配的插件。",openSection:"打开 {cap},{label}",part:"部分",noStandalone:"无独立页面",cap5:"应用外壳",cap4:"组合",cap3:"多视图",cap2:"预设",cap1:"单一",toggleList:"显示或隐藏列表",openViews:"打开视图列表",expandList:"展开列表",collapseList:"折叠列表",collapse:"折叠",partOf:"{name} 的一部分,不单独发布"};function $o(e,t){const s=t||$a(e);$n(()=>{var r;const o=ti();if(!o)return;const n=(r=o.proxy)==null?void 0:r.$el;if(!n)return;const i=n.getRootNode();if(!(i instanceof ShadowRoot)||i.querySelector(`style[data-shadow-styles="${s}"]`))return;const l=document.createElement("style");l.setAttribute("data-shadow-styles",s),l.textContent=e,i.appendChild(l)})}function $a(e){let t=0;for(let s=0;s<e.length;s++)t=(t<<5)-t+e.charCodeAt(s),t|=0;return"s"+Math.abs(t).toString(36)}const Si={menu:'<line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/>',map:'<polygon points="3 6 9 3 15 6 21 3 21 18 15 21 9 18 3 21"/><line x1="9" y1="3" x2="9" y2="18"/><line x1="15" y1="6" x2="15" y2="21"/>',globe:'<circle cx="12" cy="12" r="9"/><path d="M3 12h18"/><path d="M12 3a15 15 0 0 1 0 18a15 15 0 0 1 0-18"/>',heart:'<path d="M19 14c1.5-1.5 3-3.5 3-5.5A4.5 4.5 0 0 0 12 6a4.5 4.5 0 0 0-10 2.5C2 10.5 3.5 12.5 5 14l7 7Z"/>',prayer:'<path d="M12 4.2c-.9 1.4-1.9 2.6-2.9 3.8-1 1.2-1.6 2.6-1.6 4.2v3.3c0 1.3.7 2.4 1.8 3 .5.3 1.1-.1 1.1-.7"/><path d="M12 4.2c.9 1.4 1.9 2.6 2.9 3.8 1 1.2 1.6 2.6 1.6 4.2v3.3c0 1.3-.7 2.4-1.8 3-.5.3-1.1-.1-1.1-.7"/><path d="M12 4.2V17"/>',list:'<line x1="8" y1="6" x2="21" y2="6"/><line x1="8" y1="12" x2="21" y2="12"/><line x1="8" y1="18" x2="21" y2="18"/><circle cx="4" cy="6" r="1"/><circle cx="4" cy="12" r="1"/><circle cx="4" cy="18" r="1"/>',users:'<path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.9"/><path d="M16 3.1a4 4 0 0 1 0 7.8"/>',flag:'<path d="M4 15s1-1 4-1 5 2 8 2 4-1 4-1V4s-1 1-4 1-5-2-8-2-4 1-4 1z"/><line x1="4" y1="22" x2="4" y2="15"/>',target:'<circle cx="12" cy="12" r="9"/><circle cx="12" cy="12" r="5"/><circle cx="12" cy="12" r="1"/>',pin:'<path d="M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0z"/><circle cx="12" cy="10" r="3"/>',monitor:'<rect x="2" y="3" width="20" height="14" rx="2"/><line x1="8" y1="21" x2="16" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/>',chart:'<line x1="18" y1="20" x2="18" y2="10"/><line x1="12" y1="20" x2="12" y2="4"/><line x1="6" y1="20" x2="6" y2="14"/>',layers:'<polygon points="12 2 2 7 12 12 22 7 12 2"/><polyline points="2 17 12 22 22 17"/><polyline points="2 12 12 17 22 12"/>',flask:'<path d="M9 3h6v5l5 11a2 2 0 0 1-2 3H6a2 2 0 0 1-2-3l5-11z"/><line x1="9" y1="3" x2="15" y2="3"/><line x1="6" y1="15" x2="18" y2="15"/>',share:'<circle cx="18" cy="5" r="3"/><circle cx="6" cy="12" r="3"/><circle cx="18" cy="19" r="3"/><line x1="8.6" y1="13.5" x2="15.4" y2="17.5"/><line x1="15.4" y1="6.5" x2="8.6" y2="10.5"/>',beaker:'<path d="M6 3h12"/><path d="M8 3v7l-3 8a2 2 0 0 0 2 3h10a2 2 0 0 0 2-3l-3-8V3"/>',chevron:'<polyline points="9 18 15 12 9 6"/>',grid:'<rect x="3" y="3" width="7" height="7"/><rect x="14" y="3" width="7" height="7"/><rect x="14" y="14" width="7" height="7"/><rect x="3" y="14" width="7" height="7"/>',tree:'<rect x="9" y="3" width="6" height="5" rx="1"/><rect x="2" y="16" width="6" height="5" rx="1"/><rect x="16" y="16" width="6" height="5" rx="1"/><path d="M12 8v4M5 16v-2h14v2"/>',dots:'<circle cx="12" cy="5" r="1.5"/><circle cx="12" cy="12" r="1.5"/><circle cx="12" cy="19" r="1.5"/>',embed:'<polyline points="9 7 4 12 9 17"/><polyline points="15 7 20 12 15 17"/>',send:'<path d="M21 3 L3 10.5 L9.5 13.5 L12.5 20 Z"/><line x1="21" y1="3" x2="9.5" y2="13.5"/>',poster:'<rect x="4" y="3" width="16" height="18" rx="2"/><circle cx="12" cy="10" r="2.5"/><path d="M8 17h8"/>',search:'<circle cx="10.5" cy="10.5" r="7.5"/><line x1="15.8" y1="15.8" x2="20.5" y2="20.5"/>',book:'<path d="M12 6.5C12 6.5 9.5 4.5 4 4.5v13C9.5 17.5 12 19.5 12 19.5"/><path d="M12 6.5C12 6.5 14.5 4.5 20 4.5v13C14.5 17.5 12 19.5 12 19.5"/>',wifi:'<path d="M3.5 9a13 13 0 0 1 17 0"/><path d="M6.8 12.4a8.5 8.5 0 0 1 10.4 0"/><path d="M10 15.7a4 4 0 0 1 4 0"/><circle cx="12" cy="19" r="1"/>'};function Li(e,t=""){const s=Si[e]||Si.map;return`<svg class="ic ${t}" viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">${s}</svg>`}const _a=".vtl{position:absolute;top:0;right:0;bottom:0;left:0;display:grid!important;grid-template-rows:auto 1fr;height:100%;width:100%;min-height:420px;background:#f3f3f1;color:#3b463d;font-family:Public Sans,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased;--vtl-accent:#92b195;--vtl-border:#d1d4cd;--vtl-elevated:#ffffff;--vtl-accented:#d1d4cd;--vtl-muted:#6d766e;--vtl-rail:256px}.vtl.no-header{grid-template-rows:1fr}.vtl-top{flex:0 0 auto;display:flex;align-items:center;gap:10px;box-sizing:border-box;min-height:64px;padding:8px 16px;border-bottom:1px solid var(--vtl-border);background:#fff}.vtl-menu{display:none;font:16px/1 system-ui;color:#3b463d;background:#d1d4cd;border:1px solid #d1d4cd;border-radius:8px;padding:5px 10px;cursor:pointer}.vtl-fab{position:absolute;z-index:15;left:calc(12px + env(safe-area-inset-left));bottom:calc(12px + env(safe-area-inset-bottom));width:44px;height:44px;display:flex;align-items:center;justify-content:center;font:18px/1 system-ui;color:#3b463d;background:#fff;border:1px solid var(--vtl-border);border-radius:50%;box-shadow:0 2px 10px #0000002e;cursor:pointer}.vtl-fab:hover{background:#d1d4cd}.vtl-fab:focus-visible{outline:2px solid var(--vtl-accent);outline-offset:2px}.vtl-menu:hover{background:#d1d4cd}.vtl-brand{display:inline-flex;align-items:center}.vtl-brand:empty{display:none}.vtl-title{font-size:15px;font-weight:600;letter-spacing:-.01em;color:#3b463d}.vtl-meta{color:var(--vtl-muted);font-size:12px;margin-left:auto;display:inline-flex;align-items:center;gap:8px}.vtl-body{min-height:0;position:relative;display:flex}.vtl-nav{position:absolute;top:0;bottom:0;left:0;z-index:5;width:256px;box-sizing:border-box;overflow-y:auto;overflow-x:hidden;border-right:1px solid var(--vtl-border);padding:12px 12px 20px;background:#fff;scrollbar-width:thin;scrollbar-color:#c4c8c0 transparent;contain:layout paint;transform:translate(0);transition:transform .2s cubic-bezier(.4,0,.2,1);will-change:transform}.vtl-nav::-webkit-scrollbar{width:8px;height:8px}.vtl-nav::-webkit-scrollbar-track{background:transparent}.vtl-nav::-webkit-scrollbar-thumb{background:#c4c8c0;border-radius:8px}.vtl-nav::-webkit-scrollbar-thumb:hover{background:#9aa197}.vtl-collapse{display:flex;align-items:center;gap:8px;width:100%;box-sizing:border-box;margin:0 0 8px;padding:7px 10px;border:1px solid var(--vtl-border);border-radius:8px;background:#d1d4cd;color:var(--vtl-muted);font:inherit;font-size:12px;cursor:pointer}.vtl-collapse:hover{background:var(--vtl-accented);color:#3b463d}.vtl-collapse:focus-visible{outline:2px solid var(--vtl-accent);outline-offset:-2px}.vtl-collapse-ic{flex:0 0 auto;display:inline-flex;transition:transform .16s ease;transform:rotate(180deg)}.vtl-collapse-ic svg{width:16px;height:16px}.vtl-collapse-tx{white-space:nowrap}.vtl-grp{margin-bottom:2px}.vtl-grp+.vtl-grp{margin-top:8px;padding-top:8px;border-top:1px solid var(--vtl-border)}.vtl-tier{width:100%;padding:8px 8px 6px;display:flex;align-items:center;gap:8px;box-sizing:border-box}.vtl-tier-btn{border:0;background:none;color:inherit;font:inherit;cursor:pointer;text-align:left;border-radius:8px}.vtl-tier-btn:hover{background:var(--vtl-accented)}.vtl-tier-btn:focus-visible{outline:2px solid var(--vtl-accent);outline-offset:-2px}.vtl-tier-ic{flex:0 0 auto;display:inline-flex;color:var(--vtl-muted)}.vtl-tier-ic svg{width:15px;height:15px}.vtl-cap{font:700 10px/1 system-ui;letter-spacing:.4px;color:#052e16;background:var(--vtl-accent);border-radius:999px;padding:3px 7px}.vtl-tl{font-weight:600;font-size:11px;letter-spacing:.03em;text-transform:uppercase;color:var(--vtl-muted)}.vtl-td{color:#6b6b6b;font-size:11px;margin-left:auto}.vtl-chev{margin-left:auto;display:inline-flex;color:var(--vtl-muted);transition:transform .16s ease}.vtl-chev svg{width:15px;height:15px}.vtl-chev.open{transform:rotate(90deg)}.vtl-rows{display:flex;flex-direction:column;gap:1px}.vtl-tab{display:flex;align-items:center;gap:11px;width:100%;min-height:48px;text-align:left;border:0;background:none;color:var(--vtl-muted);padding:8px 12px;cursor:pointer;border-radius:var(--vtl-radius,8px);font:inherit;margin:0;transition:background .13s ease,color .13s ease}.vtl-tab:hover{background:var(--vtl-accented);color:#3b463d}.vtl-tab:focus-visible{outline:2px solid var(--vtl-accent);outline-offset:-2px}.vtl-tab.active{background:var(--vtl-accented);color:#3b463d;font-weight:500}.vtl-tab.active .vtl-tab-ic{color:var(--vtl-accent)}.vtl-tab-ic{flex:0 0 auto;display:inline-flex;color:var(--vtl-muted)}.vtl-tab-ic svg{width:20px;height:20px}.vtl-tab-emoji{font-size:17px;line-height:1;flex:0 0 auto}.vtl-tab-fallback{display:none;flex:0 0 auto;width:20px;height:20px;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--vtl-muted);background:var(--vtl-accented);border-radius:6px}.vtl-tab.active .vtl-tab-fallback{color:var(--vtl-accent)}.vtl-tab-text{display:flex;flex-direction:column;min-width:0}.vtl-tab-label{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}.vtl-tab-badge{font:600 9px/1 system-ui;letter-spacing:.3px;text-transform:uppercase;color:var(--vtl-accent);border:1px solid var(--vtl-accent);border-radius:var(--vtl-radius,8px);padding:2px 5px}.vtl-tab-sub{font-size:11px;color:#6b6b6b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vtl-tab-sub code{font-family:ui-monospace,Menlo,monospace}.vtl-tab.active .vtl-tab-sub{color:var(--vtl-muted)}.vtl-main{position:absolute;top:0;bottom:0;right:0;left:256px;min-width:0;display:flex;flex-direction:column}.vtl-content{flex:1 1 auto;position:relative;min-height:0}.vtl-host{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;--profile-min-h:0}.vtl-host-slot{position:relative;min-height:100%}.vtl-host-slot>*{min-height:0;max-height:none}.vtl-host-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;color:var(--dx-muted, #6d766e);font-size:13px;padding:20px}.vtl-host-hint.err{color:#f87171}.vtl-host-hint small{color:var(--dx-muted, #6d766e)}.vtl.rail-collapsed .vtl-nav{transform:translate(-184px)}.vtl.rail-collapsed .vtl-main{left:72px}.vtl.rail-collapsed .vtl-collapse{padding-left:184px;justify-content:flex-start}.vtl.rail-collapsed .vtl-collapse-ic{transform:rotate(0)}.vtl.rail-collapsed .vtl-collapse-tx{display:none}.vtl.rail-collapsed .vtl-tab{padding-left:188px;gap:0}.vtl.rail-collapsed .vtl-tab-text{display:none}.vtl.rail-collapsed .vtl-tab-emoji{font-size:19px}.vtl.rail-collapsed .vtl-tab-fallback{display:inline-flex}.vtl.rail-collapsed .vtl-tier{padding-left:196px}.vtl.rail-collapsed .vtl-tl,.vtl.rail-collapsed .vtl-td,.vtl.rail-collapsed .vtl-cap,.vtl.rail-collapsed .vtl-chev{display:none}.vtl.rail-collapsed .vtl-grp+.vtl-grp{margin-top:6px;padding-top:6px}@media (max-width: 760px){.vtl-top{min-height:56px}.vtl-menu{display:inline-block}.vtl-meta{display:none}.vtl-nav{z-index:20;width:256px;box-shadow:0 0 28px #0000008c;transform:translate(-100%)}.vtl.nav-open .vtl-nav{transform:translate(0);z-index:1000}.vtl-main{left:0}.vtl.rail-collapsed .vtl-nav{transform:translate(-100%)}.vtl.rail-collapsed.nav-open .vtl-nav{transform:translate(0)}.vtl.rail-collapsed .vtl-main{left:0}.vtl.rail-collapsed .vtl-collapse{padding-left:10px;justify-content:flex-start}.vtl.rail-collapsed .vtl-collapse-ic{transform:rotate(180deg)}.vtl.rail-collapsed .vtl-collapse-tx{display:inline}.vtl.rail-collapsed .vtl-tab{padding-left:10px;gap:11px}.vtl.rail-collapsed .vtl-tab-text{display:flex}.vtl.rail-collapsed .vtl-tab-fallback{display:none}.vtl.rail-collapsed .vtl-tier{padding-left:8px}.vtl.rail-collapsed .vtl-tl,.vtl.rail-collapsed .vtl-td,.vtl.rail-collapsed .vtl-cap,.vtl.rail-collapsed .vtl-chev{display:inline}}.vtl:dir(rtl) .vtl-nav{left:auto;right:0;border-right:0;border-left:1px solid var(--vtl-border)}.vtl:dir(rtl) .vtl-main{left:0;right:256px}.vtl:dir(rtl) .vtl-tab,.vtl:dir(rtl) .vtl-tier-btn{text-align:right}.vtl:dir(rtl) .vtl-meta,.vtl:dir(rtl) .vtl-td,.vtl:dir(rtl) .vtl-chev{margin-left:0;margin-right:auto}.vtl:dir(rtl) .vtl-chev:not(.open){transform:scaleX(-1)}.vtl:dir(rtl) .vtl-collapse-ic svg{transform:scaleX(-1)}.vtl:dir(rtl) .vtl-fab{left:auto;right:calc(12px + env(safe-area-inset-right))}.vtl.rail-collapsed:dir(rtl) .vtl-nav{transform:translate(184px)}.vtl.rail-collapsed:dir(rtl) .vtl-main{left:0;right:72px}.vtl.rail-collapsed:dir(rtl) .vtl-collapse{padding-left:10px;padding-right:184px}.vtl.rail-collapsed:dir(rtl) .vtl-tab{padding-left:12px;padding-right:188px}.vtl.rail-collapsed:dir(rtl) .vtl-tier{padding-left:8px;padding-right:196px}@media (max-width: 760px){.vtl:dir(rtl) .vtl-nav{transform:translate(100%)}.vtl.nav-open:dir(rtl) .vtl-nav{transform:translate(0)}.vtl:dir(rtl) .vtl-main,.vtl.rail-collapsed:dir(rtl) .vtl-main{left:0;right:0}.vtl.rail-collapsed:dir(rtl) .vtl-nav{transform:translate(100%)}.vtl.rail-collapsed.nav-open:dir(rtl) .vtl-nav{transform:translate(0)}.vtl.rail-collapsed:dir(rtl) .vtl-collapse{padding-left:10px;padding-right:10px}.vtl.rail-collapsed:dir(rtl) .vtl-tab{padding-left:12px;padding-right:10px}.vtl.rail-collapsed:dir(rtl) .vtl-tier{padding-left:8px;padding-right:8px}}",_o=(e,t)=>{const s=e.__vccOpts||e;for(const[o,n]of t)s[o]=n;return s},Ft={};function Sa(e){return e?(Ft[e]||(Ft[e]=new Promise((t,s)=>{const o=document.createElement("script");o.src=e,o.onload=()=>t(),o.onerror=()=>{delete Ft[e],s(new Error("failed to load "+e))},document.head.appendChild(o)})),Ft[e]):Promise.resolve()}function La(e,t=5e3){return typeof customElements>"u"||customElements.get(e)?Promise.resolve():customElements.whenDefined?Promise.race([customElements.whenDefined(e),new Promise((s,o)=>setTimeout(()=>o(new Error("timeout waiting for <"+e+">")),t))]):Promise.resolve()}const Ea=`
/* STRUCTURAL DISPLAY — the !important is deliberate, not a hack. This layout's display mode is
load-bearing: it CANNOT function as a block. As a library/ (high-bar) component it ships across
all 5 deployment methods, and a host (app-shell direct-mount, WordPress, mobile webview) may force
its own inline display onto the element. Declaring it non-overridable is the correct contract.
grid-template-rows: auto 1fr = header takes its natural height, .vtl-body gets a DEFINITE
remaining track — no dependence on in-flow children (nav/main are absolute for the rail slide). */
.vtl { position:absolute; inset:0; display:grid !important; grid-template-rows:auto 1fr; height:100%; width:100%; min-height:420px; background:#f3f3f1; color:#3b463d; font-family:'Public Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif; -webkit-font-smoothing:antialiased; --vtl-accent:#92b195; --vtl-border:#d1d4cd; --vtl-elevated:#ffffff; --vtl-accented:#d1d4cd; --vtl-muted:#6d766e; --vtl-rail:256px; }
/* HEADER-OFF (header=false, e.g. the cap-5 doxa-maps-spa): the .vtl-top element is NOT rendered, so
.vtl-body becomes the ONLY grid child and auto-places into row 1 — the auto row — which has no
content to size it and collapses to 0 (the 1fr row sits empty) → the same 0-height black screen.
With no header there is only one region, so declare a single 1fr row and the body fills. */
.vtl.no-header { grid-template-rows:1fr; }
/* MATERIAL APP BAR = 64px desktop / 56px mobile (2026-09-21), was 51px from 11px padding.
Stated as an explicit min-height rather than left to padding arithmetic, so the number a
reader sees is the number that renders. min-height keeps a wrapping title from clipping.
★ box-sizing:border-box IS LOAD-BEARING HERE. Without it this element is content-box, so
min-height:64px MEASURED 81px live: 64 + 16px vertical padding + 1px border. A height stated
in a comment is worth nothing if the box model adds to it — measure the rendered value, do not
trust the declaration. (Found exactly that way: the probe read 81 against a 64 target.)
THIS RULE EXISTS TWICE (VTL_SHADOW_CSS and the scoped style block); keep them identical. */
.vtl-top { flex:0 0 auto; display:flex; align-items:center; gap:10px; box-sizing:border-box; min-height:64px; padding:8px 16px; border-bottom:1px solid var(--vtl-border); background:#ffffff; }
.vtl-menu { display:none; font:16px/1 system-ui; color:#3b463d; background:#d1d4cd; border:1px solid #d1d4cd; border-radius:8px; padding:5px 10px; cursor:pointer; }
/* Headerless-mobile drawer opener. Only ever rendered when narrow AND header-off AND the drawer is
shut, so it cannot appear in any layout that already has a working toggle. z-index sits ABOVE the
content but BELOW the drawer (.vtl-nav is z-index:20) so the drawer covers it when it slides in.
44px is the minimum comfortable touch target; the safe-area insets keep it clear of an iOS home
indicator and a notch in landscape. */
.vtl-fab { position:absolute; z-index:15; left:calc(12px + env(safe-area-inset-left)); bottom:calc(12px + env(safe-area-inset-bottom)); width:44px; height:44px; display:flex; align-items:center; justify-content:center; font:18px/1 system-ui; color:#3b463d; background:#ffffff; border:1px solid var(--vtl-border); border-radius:50%; box-shadow:0 2px 10px rgba(0,0,0,.18); cursor:pointer; }
.vtl-fab:hover { background:#d1d4cd; }
.vtl-fab:focus-visible { outline:2px solid var(--vtl-accent); outline-offset:2px; }
.vtl-menu:hover { background:#d1d4cd; }
.vtl-brand { display:inline-flex; align-items:center; }
.vtl-brand:empty { display:none; }
.vtl-title { font-size:15px; font-weight:600; letter-spacing:-0.01em; color:#3b463d; }
.vtl-meta { color:var(--vtl-muted); font-size:12px; margin-left:auto; display:inline-flex; align-items:center; gap:8px; }
/* GRID ROWS, not flex (BUG-EMBEDDED-PLUGIN-STUDIO-BLACK-SCREEN). The collapsible-rail design makes
.vtl-nav and .vtl-main position:absolute (so the rail slides by transform without reflowing the
heavy map sibling). That leaves .vtl-body with NO in-flow children → ZERO intrinsic height, so it
could only fill via flex:1 from a flex parent. A host that forces display:block on .vtl (the
app-shell direct-mounts cap-5 elements that way) made that flex inert → .vtl-body collapsed to 0
→ black screen. The auto/1fr grid on .vtl gives this row a DEFINITE height by construction, so
it no longer depends on the parent's display mode NOR on in-flow children. Header-off
(header=false) still works: the auto row collapses to 0 and 1fr takes the full height. */
.vtl-body { min-height:0; position:relative; display:flex; }
.vtl-nav { position:absolute; top:0; bottom:0; left:0; z-index:5; width:256px; box-sizing:border-box; overflow-y:auto; overflow-x:hidden; border-right:1px solid var(--vtl-border); padding:12px 12px 20px; background:#ffffff; scrollbar-width:thin; scrollbar-color:#c4c8c0 transparent; contain:layout paint; transform:translateX(0); transition:transform .2s cubic-bezier(.4,0,.2,1); will-change:transform; }
/* Thin OVERLAY scrollbar: transparent track so the bar costs no visual space and sits flush to
the nav edge; low-contrast thumb that darkens on hover. Matches the research-dashboard rails. */
.vtl-nav::-webkit-scrollbar { width:8px; height:8px; }
.vtl-nav::-webkit-scrollbar-track { background:transparent; }
.vtl-nav::-webkit-scrollbar-thumb { background:#c4c8c0; border-radius:8px; }
.vtl-nav::-webkit-scrollbar-thumb:hover { background:#9aa197; }
.vtl-collapse { display:flex; align-items:center; gap:8px; width:100%; box-sizing:border-box; margin:0 0 8px; padding:7px 10px; border:1px solid var(--vtl-border); border-radius:8px; background:#d1d4cd; color:var(--vtl-muted); font:inherit; font-size:12px; cursor:pointer; }
.vtl-collapse:hover { background:var(--vtl-accented); color:#3b463d; }
.vtl-collapse:focus-visible { outline:2px solid var(--vtl-accent); outline-offset:-2px; }
.vtl-collapse-ic { flex:0 0 auto; display:inline-flex; transition:transform .16s ease; transform:rotate(180deg); }
.vtl-collapse-ic svg { width:16px; height:16px; }
.vtl-collapse-tx { white-space:nowrap; }
.vtl-grp { margin-bottom:2px; }
.vtl-grp + .vtl-grp { margin-top:8px; padding-top:8px; border-top:1px solid var(--vtl-border); }
.vtl-tier { width:100%; padding:8px 8px 6px; display:flex; align-items:center; gap:8px; box-sizing:border-box; }
.vtl-tier-btn { border:0; background:none; color:inherit; font:inherit; cursor:pointer; text-align:left; border-radius:8px; }
.vtl-tier-btn:hover { background:var(--vtl-accented); }
.vtl-tier-btn:focus-visible { outline:2px solid var(--vtl-accent); outline-offset:-2px; }
.vtl-tier-ic { flex:0 0 auto; display:inline-flex; color:var(--vtl-muted); }
.vtl-tier-ic svg { width:15px; height:15px; }
.vtl-cap { font:700 10px/1 system-ui; letter-spacing:.4px; color:#052e16; background:var(--vtl-accent); border-radius:999px; padding:3px 7px; }
.vtl-tl { font-weight:600; font-size:11px; letter-spacing:.03em; text-transform:uppercase; color:var(--vtl-muted); }
.vtl-td { color:#6b6b6b; font-size:11px; margin-left:auto; }
.vtl-chev { margin-left:auto; display:inline-flex; color:var(--vtl-muted); transition:transform .16s ease; }
.vtl-chev svg { width:15px; height:15px; }
.vtl-chev.open { transform:rotate(90deg); }
.vtl-rows { display:flex; flex-direction:column; gap:1px; }
/* MATERIAL NAV-ROW METRICS (2026-09-21). Driver: "people are used to the YouTube layout, Google
layout is just way better. We do not need to create custom styles people are not used to."
Measured before this change: 44px rows with an 8px radius.
min-height:48px the Material list-item height. min-height, not height, so a wrapping
label still grows instead of clipping.
border-radius var(--vtl-radius,8px) — SUPERSEDED THE FULL PILL (2026-09-23).
The 999px stadium above was a real instruction ("imitate the YouTube
active row") and it shipped. The Driver then measured it against the
rest of the product and reversed it: "the roundedness of the tabs is a
little bit too round because there is nowhere else in the app that has
that same roundedness. Even the collapse button is not that round...
it looks more material UI to have a more rounded tab than a less
circular tab." He is right on the facts — .vtl-collapse is 8px, the
filter toggles in @map/components/search are 8px, and 8px is already
the most common radius in this file. A 999px radius on a 48px row is a
stadium, which is why it reads as foreign beside everything else.
★ DO NOT "RESTORE" THE PILL on the strength of the YouTube rationale
above — that rationale is kept because it is true history, not because
it is current. The 48px Material row height is unaffected and stays.
NOT VENDORED: the card's law is to imitate the metrics in our own CSS, never to add Quasar or
MUI. Same clone-dont-edit rule the library follows everywhere else.
THIS RULE EXISTS TWICE (VTL_SHADOW_CSS and the scoped style block) and the two copies must stay
byte-identical — edit both or neither. */
.vtl-tab { display:flex; align-items:center; gap:11px; width:100%; min-height:48px; text-align:left; border:0; background:none; color:var(--vtl-muted); padding:8px 12px; cursor:pointer; border-radius:var(--vtl-radius,8px); font:inherit; margin:0; transition:background .13s ease,color .13s ease; }
.vtl-tab:hover { background:var(--vtl-accented); color:#3b463d; }
.vtl-tab:focus-visible { outline:2px solid var(--vtl-accent); outline-offset:-2px; }
.vtl-tab.active { background:var(--vtl-accented); color:#3b463d; font-weight:500; }
.vtl-tab.active .vtl-tab-ic { color:var(--vtl-accent); }
.vtl-tab-ic { flex:0 0 auto; display:inline-flex; color:var(--vtl-muted); }
.vtl-tab-ic svg { width:20px; height:20px; }
.vtl-tab-emoji { font-size:17px; line-height:1; flex:0 0 auto; }
.vtl-tab-fallback { display:none; flex:0 0 auto; width:20px; height:20px; align-items:center; justify-content:center; font-size:12px; font-weight:600; color:var(--vtl-muted); background:var(--vtl-accented); border-radius:6px; }
.vtl-tab.active .vtl-tab-fallback { color:var(--vtl-accent); }
.vtl-tab-text { display:flex; flex-direction:column; min-width:0; }
.vtl-tab-label { font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:flex; align-items:center; gap:6px; }
.vtl-tab-badge { font:600 9px/1 system-ui; letter-spacing:.3px; text-transform:uppercase; color:var(--vtl-accent); border:1px solid var(--vtl-accent); border-radius:var(--vtl-radius,8px); padding:2px 5px; }
.vtl-tab-sub { font-size:11px; color:#6b6b6b; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.vtl-tab-sub code { font-family:ui-monospace,Menlo,monospace; }
.vtl-tab.active .vtl-tab-sub { color:var(--vtl-muted); }
.vtl-main { position:absolute; top:0; bottom:0; right:0; left:256px; min-width:0; display:flex; flex-direction:column; }
/* ★ contain:layout, NOT layout paint (BUG-STILL-CANNOT-SCROLL-DOWN-TO-THE-GRID, measured
2026-09-22). layout is the half that does the work the rail collapse needs — it isolates this
subtree so sliding the rail never reflows a heavy mounted map. paint additionally CLIPS the
subtree to this box, which silently swallowed every pixel a scroll-stack composite rendered below
one viewport. The clipping now belongs to .vtl-host, which owns a real scrollbar, so the content
is both contained AND reachable. Dropping paint costs the collapse nothing: paint never
contributed reflow isolation, only clipping. */
.vtl-content { flex:1 1 auto; position:relative; min-height:0; }
/* ★ NO containment AT ALL on .vtl-content (BUG-FULLSCREEN-MODALS-UNDERSIZED-INSIDE-THE-CAP5-SHELL,
measured 2026-09-23). contain:paint was dropped earlier for the scroll bug; contain:layout
stayed -- but LAYOUT containment ALSO makes this element the containing block for every
position:fixed descendant (CSS Containment spec), so all six modal scrims hosted in the shell
(PosterDialog, DataTable .dt-scrim, LegendTools .lt-overlay, SemanticTreeLegend export
backdrop, both poster-wall .modal-scrim) resolved inset:0 to the CONTENT PANE: measured, a
fixed inset:0 probe here read x=256 w=1184 on a 1440 viewport, leaving the 256px nav rail
uncovered and CLICKABLE behind an open modal. Visibly almost right, interactively wrong.
The perf rationale it was kept for does not hold: when the nav collapses, this element's own
width changes, and a width change re-lays-out the subtree with or without containment. */
/* ★ THE PANE OWNS THE SCROLL (BUG-STILL-CANNOT-SCROLL-DOWN-TO-THE-GRID). Measured in the cap-5
shell: the dashboard-plus-grid composite mounted here reported scrollHeight 3380 / clientHeight
769 — 2611px of real, mounted, populated content (the people-groups grid, h=2586) that NO element
could scroll to, because this box was position:absolute; inset:0 with the default
overflow:visible. The document itself measured scrollHeight 900 === clientHeight 900, so a
wheel gesture anywhere had nothing to move and the page simply sat still.
THIS IS A HOST GAP, NOT A PLUGIN BUG. The same composite is PERFECT standalone (document
2960/900, wheel scrolls to 2060, grid reachable) because its generated leaf sets
body{overflow-y:auto} — the document owns the scroll there. In this shell the pane is pinned to
viewport height and no ancestor scrolls, so the layout must own it. generate-tree.mjs keeps cap-5
leaves fixed-viewport on the reasoning that "any scroll-stack it hosts is its OWN iframe leaf" —
but the studio documents "there is NO iframe mode": every tab mounts its REAL custom element
directly into this pane. So the scroll has to land here.
WHY THIS IS SAFE FOR THE FIXED-VIEWPORT MAP TABS, which are the majority. A map element ships
position:absolute; inset:0 (or height:100%) and therefore fills this box exactly:
scrollHeight === clientHeight, so auto yields NO scrollbar and NOTHING changes for them. Only a
pane whose content genuinely exceeds one viewport — i.e. a StackLayout scroll-stack, which is the
composite that is meant to scroll — gets one. auto is load-bearing; scroll would paint a dead
scrollbar on all 19 map tabs.
overscroll-behavior:contain stops a wheel that bottoms out here from chaining to the document. */
.vtl-host { position:absolute; inset:0; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; --profile-min-h:0; }
/* The slot is the element's mount point. It must NOT be position:absolute; inset:0 any more: that
pinned it to the pane's height and re-created the exact trap one level down — an absolutely
positioned child cannot grow a scroll container. min-height:100% keeps a fixed-viewport map
filling the pane (the behaviour absolute-inset gave it) while letting a taller scroll-stack
composite push the pane's scrollHeight past its clientHeight, which is what produces the
scrollbar. */
.vtl-host-slot { position:relative; min-height:100%; }
/* ★ THE dvh FLOOR, NEUTRALISED FOR HOSTED ELEMENTS (measured 2026-09-22 in the studio, same layout
shape). A hosted map ships .profile-loader { height:100%; min-height:100dvh }, and the two resolve
against DIFFERENT bases: height:100% against this pane, min-height:100dvh against the VIEWPORT.
Wherever the pane is shorter than the viewport (any header/toolbar chrome above it), the floor
wins, the element overflows by exactly that chrome height, and the overflow-y:auto above then
correctly paints a scrollbar on a fixed-viewport map that should never have one.
The floor is DELIBERATE and must stay in the element (standalone it prevents a collapse to 0
against an auto-height body). It is only wrong HERE, against a definite shorter pane. A genuine
scroll-stack composite is unaffected: it exceeds the pane on its own content, not on this floor. */
.vtl-host-slot > * { min-height:0; max-height:none; }
.vtl-host-hint { position:absolute; inset:0; display:grid; place-items:center; text-align:center; color:var(--dx-muted, #6d766e); font-size:13px; padding:20px; }
.vtl-host-hint.err { color:#f87171; }
.vtl-host-hint small { color:var(--dx-muted, #6d766e); }
/* MATERIAL MINI-VARIANT RAIL = 72px (2026-09-21), up from 60px.
★ THE COLLAPSE IS A TRANSLATE, NOT A WIDTH CHANGE — so FOUR numbers are coupled and must move
together, which is precisely where a partial edit would break the layout:
nav translate -184px the 256px rail slides left, leaving 256-184 = 72px visible
main left 72px the content pane starts exactly where the rail ends
collapse pad 184px pushes the toggle's icon into the 72px strip that stays on screen
tab pad 188px the same for each row's icon (4px more, matching the old 196/200 pair)
Change one without the others and the icons drift out of the visible strip or the content
overlaps the rail. Old values were -196 / 60 / 196 / 200.
THIS BLOCK EXISTS TWICE (VTL_SHADOW_CSS and the scoped style block); keep them byte-identical. */
.vtl.rail-collapsed .vtl-nav { transform:translateX(-184px); }
.vtl.rail-collapsed .vtl-main { left:72px; }
.vtl.rail-collapsed .vtl-collapse { padding-left:184px; justify-content:flex-start; }
.vtl.rail-collapsed .vtl-collapse-ic { transform:rotate(0deg); }
.vtl.rail-collapsed .vtl-collapse-tx { display:none; }
.vtl.rail-collapsed .vtl-tab { padding-left:188px; gap:0; }
.vtl.rail-collapsed .vtl-tab-text { display:none; }
.vtl.rail-collapsed .vtl-tab-emoji { font-size:19px; }
.vtl.rail-collapsed .vtl-tab-fallback { display:inline-flex; }
.vtl.rail-collapsed .vtl-tier { padding-left:196px; }
.vtl.rail-collapsed .vtl-tl, .vtl.rail-collapsed .vtl-td, .vtl.rail-collapsed .vtl-cap, .vtl.rail-collapsed .vtl-chev { display:none; }
.vtl.rail-collapsed .vtl-grp + .vtl-grp { margin-top:6px; padding-top:6px; }
@media (max-width: 760px) {
/* Material app bar is 56px on mobile, 64px on desktop — the desktop value is set above. */
.vtl-top { min-height:56px; }
.vtl-menu { display:inline-block; }
.vtl-meta { display:none; }
/* MOBILE = the SAME composited-transform model, taken to its full-off-canvas extreme: a full-width
drawer that slides in/out via transform (never a layout property), so opening/closing the drawer
never reflows the content. Content is full-width (left:0) and stays put; the drawer floats over it. */
.vtl-nav { z-index:20; width:256px; box-shadow:0 0 28px rgba(0,0,0,.55); transform:translateX(-100%); }
/* OPEN DRAWER ABOVE THE PLUGIN'S OWN LAYERS. Mounted content shares this stacking context, and
plugins raise their chrome (the research dashboard's filter bar is z-index:55), so at z-index 20
the open drawer had a plugin's filter row painted across it — measured 2026-09-25 at 390px.
Only while OPEN on a phone: that is when the drawer is the one thing you can use, and desktop
and plugin modal scrims keep their existing order. */
.vtl.nav-open .vtl-nav { transform:translateX(0); z-index:1000; }
.vtl-main { left:0; }
/* The desktop slim-rail collapse has no meaning on a phone — reconcileForWidth() clears railCollapsed
at this width, but neutralize its CSS too (belt-and-suspenders) so a full labelled drawer always
shows: no partial slide, no icon-column padding, labels/sections visible. */
.vtl.rail-collapsed .vtl-nav { transform:translateX(-100%); }
.vtl.rail-collapsed.nav-open .vtl-nav { transform:translateX(0); }
.vtl.rail-collapsed .vtl-main { left:0; }
.vtl.rail-collapsed .vtl-collapse { padding-left:10px; justify-content:flex-start; }
.vtl.rail-collapsed .vtl-collapse-ic { transform:rotate(180deg); }
.vtl.rail-collapsed .vtl-collapse-tx { display:inline; }
.vtl.rail-collapsed .vtl-tab { padding-left:10px; gap:11px; }
.vtl.rail-collapsed .vtl-tab-text { display:flex; }
.vtl.rail-collapsed .vtl-tab-fallback { display:none; }
.vtl.rail-collapsed .vtl-tier { padding-left:8px; }
.vtl.rail-collapsed .vtl-tl, .vtl.rail-collapsed .vtl-td, .vtl.rail-collapsed .vtl-cap, .vtl.rail-collapsed .vtl-chev { display:inline; }
}
/* ★ RIGHT-TO-LEFT (ar). THIS BLOCK EXISTS TWICE (VTL_SHADOW_CSS and the scoped style block); keep them
byte-identical. Everything above is written in PHYSICAL terms (left:0 rail, left:256px content,
translateX(-…) slides), so an Arabic shell kept the rail on the left with LTR geometry (reported by
studio for cell E, 2026-09-25). These are ADDITIVE overrides scoped by :dir(rtl), so an LTR consumer
matches none of them and renders exactly as before. :dir() follows the dir attribute through the
shadow boundary, so either a consumer setting dir="rtl" on the layout or an RTL host page flips it.
translateX has no logical form, which is why this is a mirror block rather than logical properties. */
.vtl:dir(rtl) .vtl-nav { left:auto; right:0; border-right:0; border-left:1px solid var(--vtl-border); }
.vtl:dir(rtl) .vtl-main { left:0; right:256px; }
.vtl:dir(rtl) .vtl-tab, .vtl:dir(rtl) .vtl-tier-btn { text-align:right; }
.vtl:dir(rtl) .vtl-meta, .vtl:dir(rtl) .vtl-td, .vtl:dir(rtl) .vtl-chev { margin-left:0; margin-right:auto; }
.vtl:dir(rtl) .vtl-chev:not(.open) { transform:scaleX(-1); }
.vtl:dir(rtl) .vtl-collapse-ic svg { transform:scaleX(-1); }
.vtl:dir(rtl) .vtl-fab { left:auto; right:calc(12px + env(safe-area-inset-right)); }
.vtl.rail-collapsed:dir(rtl) .vtl-nav { transform:translateX(184px); }
.vtl.rail-collapsed:dir(rtl) .vtl-main { left:0; right:72px; }
.vtl.rail-collapsed:dir(rtl) .vtl-collapse { padding-left:10px; padding-right:184px; }
.vtl.rail-collapsed:dir(rtl) .vtl-tab { padding-left:12px; padding-right:188px; }
.vtl.rail-collapsed:dir(rtl) .vtl-tier { padding-left:8px; padding-right:196px; }
@media (max-width: 760px) {
.vtl:dir(rtl) .vtl-nav { transform:translateX(100%); }
.vtl.nav-open:dir(rtl) .vtl-nav { transform:translateX(0); }
.vtl:dir(rtl) .vtl-main, .vtl.rail-collapsed:dir(rtl) .vtl-main { left:0; right:0; }
.vtl.rail-collapsed:dir(rtl) .vtl-nav { transform:translateX(100%); }
.vtl.rail-collapsed.nav-open:dir(rtl) .vtl-nav { transform:translateX(0); }
.vtl.rail-collapsed:dir(rtl) .vtl-collapse { padding-left:10px; padding-right:10px; }
.vtl.rail-collapsed:dir(rtl) .vtl-tab { padding-left:12px; padding-right:10px; }
.vtl.rail-collapsed:dir(rtl) .vtl-tier { padding-left:8px; padding-right:8px; }
}
`,ka=fs({name:"VerticalTabsLayout",props:{active:{type:String,default:""},title:{type:String,default:""},items:{type:Array,default:()=>[]},groups:{type:Array,default:()=>[]},navLabel:{type:String,default:"Sections"},labels:{type:Object,default:()=>({})},initialNavOpen:{type:Boolean,default:!0},header:{type:Boolean,default:!0},initialRailCollapsed:{type:Boolean,default:!1}},emits:["update:active"],setup(){$o(Ea,"vertical-tabs-layout")},data(){return{navOpen:this.initialNavOpen,railCollapsed:this.initialRailCollapsed,_tabEls:{},folderOverride:{},narrow:!1,_mql:null,_onMedia:null,activatedKeys:{},hostState:{},hostError:{},_hostSlots:{},_hostMounted:{}}},computed:{railShown(){return this.narrow?this.navOpen:!0},allRows(){if(this.groups&&this.groups.length){const e=[];for(const t of this.groups)for(const s of t.rows||[])e.push(s);return e}return this.items},orderedKeys(){return this.allRows.map(e=>e.key)},elementRows(){return this.allRows.filter(e=>e&&e.element)},mountedElementRows(){return this.elementRows.filter(e=>this.activatedKeys[e.key])}},watch:{active:{immediate:!0,handler(e){this.activateElement(e)}}},mounted(){try{window.matchMedia&&(this._mql=window.matchMedia("(max-width: 760px)"),this.narrow=this._mql.matches,this.reconcileForWidth(),this._onMedia=e=>{this.narrow=e.matches,this.reconcileForWidth()},this._mql.addEventListener?this._mql.addEventListener("change",this._onMedia):this._mql.addListener&&this._mql.addListener(this._onMedia))}catch{}this.$nextTick(()=>this.activateElement(this.active))},beforeUnmount(){try{this._mql&&this._onMedia&&(this._mql.removeEventListener?this._mql.removeEventListener("change",this._onMedia):this._mql.removeListener&&this._mql.removeListener(this._onMedia))}catch{}this._mql=null,this._onMedia=null},methods:{registerTab(e,t){t&&(this._tabEls[e]=t)},isNarrow(){return this.narrow},reconcileForWidth(){this.narrow?(this.navOpen=!1,this.railCollapsed=!1):this.navOpen=!0},label(e){const t={toggleList:"Toggle list",openViews:"Open the list of views",expandList:"Expand list",collapseList:"Collapse list",collapse:"Collapse"};return this.labels&&this.labels[e]||t[e]},expandRail(){!this.narrow&&this.railCollapsed&&(this.railCollapsed=!1)},toggleRail(){this.narrow?this.navOpen=!this.navOpen:this.railCollapsed=!this.railCollapsed},setHostSlot(e,t){t&&(this._hostSlots[e]=t,this.$nextTick(()=>this.mountHostElement(e)))},activateElement(e){!e||!this.elementRows.find(s=>s.key===e)||(this.activatedKeys[e]||(this.activatedKeys={...this.activatedKeys,[e]:!0},this.hostState={...this.hostState,[e]:"loading"}),this.$nextTick(()=>this.mountHostElement(e)))},mountHostElement(e){if(this._hostMounted[e])return;const t=this.elementRows.find(o=>o.key===e),s=this._hostSlots[e];!t||!s||(this._hostMounted[e]=!0,this.hostState={...this.hostState,[e]:"loading"},Sa(t.src).then(()=>La(t.element)).then(()=>{s.innerHTML="";const o=document.createElement(t.element),n=t.attrs||{};for(const i in n){const l=n[i],r=l!=null&&typeof l=="object"?JSON.stringify(l):String(l);try{o[i]=l}catch{}try{o.setAttribute(i,r)}catch{}}o.style.cssText="display:block;position:absolute;inset:0;width:100%;height:100%;",s.appendChild(o),this.hostState={...this.hostState,[e]:"ready"}}).catch(o=>{this._hostMounted[e]=!1,this.hostState={...this.hostState,[e]:"error"},this.hostError={...this.hostError,[e]:o&&o.message||String(o)}}))},iconSvg(e){return e?Li(e):""},initial(e){const t=(e||"").trim();return t?t.charAt(0).toUpperCase():"•"},isFolderClosed(e){const t=this.folderOverride[e.key];return t!=null?!t:e.open!==!0},toggleFolder(e){const t=this.folderOverride[e],s=(this.groups||[]).find(n=>n.key===e),o=t??(s&&s.open===!0);this.folderOverride={...this.folderOverride,[e]:!o}},pick(e){this.$emit("update:active",e),this.narrow&&(this.navOpen=!1)},onKey(e){const t=this.orderedKeys;if(!t.length)return;const s=t.indexOf(this.active);let o=-1;if(e.key==="ArrowDown"||e.key==="ArrowRight")o=(s+1)%t.length;else if(e.key==="ArrowUp"||e.key==="ArrowLeft")o=(s-1+t.length)%t.length;else if(e.key==="Home")o=0;else if(e.key==="End")o=t.length-1;else return;e.preventDefault();const n=t[o];this.pick(n),this.$nextTick(()=>{const i=this._tabEls[n];i&&i.focus&&i.focus()})}}}),Ca={key:0,class:"vtl-top"},Ta=["aria-expanded","aria-label"],Oa={class:"vtl-brand"},Aa={class:"vtl-title"},Ma={class:"vtl-meta"},Pa=["aria-expanded","aria-label"],Ra={class:"vtl-body"},Na=["aria-label","aria-hidden","role","aria-orientation"],Ia=["aria-expanded","aria-label"],Ha=["innerHTML"],Da={class:"vtl-collapse-tx"},Fa=["aria-expanded","onClick"],ja={key:0,class:"vtl-cap"},Va={class:"vtl-tl"},za={key:1,class:"vtl-td"},Ka=["innerHTML"],Ua={key:1,class:"vtl-tier"},Ba={key:0,class:"vtl-cap"},Wa={class:"vtl-tl"},qa={key:1,class:"vtl-td"},Ga={class:"vtl-rows"},Xa=["aria-selected","tabindex","onClick"],Ya=["innerHTML"],Ja={key:1,class:"vtl-tab-emoji","aria-hidden":"true"},Za={key:2,class:"vtl-tab-fallback","aria-hidden":"true"},Qa={class:"vtl-tab-text"},ec={class:"vtl-tab-label"},tc={key:0,class:"vtl-tab-badge"},sc={key:0,class:"vtl-tab-sub"},oc=["innerHTML"],nc=["aria-selected","tabindex","onClick"],ic=["innerHTML"],lc={key:1,class:"vtl-tab-emoji","aria-hidden":"true"},rc={key:2,class:"vtl-tab-fallback","aria-hidden":"true"},ac={class:"vtl-tab-text"},cc={class:"vtl-tab-label"},dc={key:0,class:"vtl-tab-sub"},pc={class:"vtl-main"},fc={class:"vtl-content"},uc=["hidden"],hc={key:0,class:"vtl-host-hint"},gc={key:1,class:"vtl-host-hint err"};function bc(e,t,s,o,n,i){return E(),k("div",{class:_e(["vtl",{"nav-open":e.navOpen,"rail-collapsed":e.railCollapsed,"no-header":!e.header}])},[e.header?(E(),k("header",Ca,[L("button",{class:"vtl-menu",type:"button","aria-expanded":String(e.navOpen),onClick:t[0]||(t[0]=l=>e.navOpen=!e.navOpen),"aria-label":e.label("toggleList")},"☰",8,Ta),L("span",Oa,[Tt(e.$slots,"brand")]),L("b",Aa,M(e.title),1),L("span",Ma,[Tt(e.$slots,"meta")])])):Q("",!0),e.narrow&&!e.header&&!e.navOpen?(E(),k("button",{key:1,class:"vtl-fab",type:"button","aria-expanded":String(e.navOpen),onClick:t[1]||(t[1]=l=>e.navOpen=!0),"aria-label":e.label("openViews")},"☰",8,Pa)):Q("",!0),L("div",Ra,[L("nav",{class:"vtl-nav","aria-label":e.navLabel,"aria-hidden":String(!e.railShown),role:e.$slots.rail?null:"tablist","aria-orientation":e.$slots.rail?null:"vertical"},[L("button",{type:"button",class:"vtl-collapse","aria-expanded":String(!e.railCollapsed),"aria-label":e.railCollapsed?e.label("expandList"):e.label("collapseList"),onClick:t[2]||(t[2]=(...l)=>e.toggleRail&&e.toggleRail(...l))},[L("span",{class:"vtl-collapse-ic","aria-hidden":"true",innerHTML:e.iconSvg("chevron")},null,8,Ha),L("span",Da,M(e.label("collapse")),1)],8,Ia),e.$slots.rail?Tt(e.$slots,"rail",{collapsed:e.railCollapsed&&!e.narrow,expand:e.expandRail,pick:e.pick},void 0,void 0,0):e.groups&&e.groups.length?(E(!0),k(X,{key:1},Ke(e.groups,l=>(E(),k("div",{class:"vtl-grp",key:l.key},[l.folder?(E(),k("button",{key:0,type:"button",class:"vtl-tier vtl-tier-btn","aria-expanded":String(!e.isFolderClosed(l)),onClick:r=>e.toggleFolder(l.key)},[l.badge?(E(),k("span",ja,M(l.badge),1)):Q("",!0),L("span",Va,M(l.label),1),l.count!=null?(E(),k("span",za,M(l.count),1)):Q("",!0),L("span",{class:_e(["vtl-chev",{open:!e.isFolderClosed(l)}]),"aria-hidden":"true",innerHTML:e.iconSvg("chevron")},null,10,Ka)],8,Fa)):(E(),k("div",Ua,[l.badge?(E(),k("span",Ba,M(l.badge),1)):Q("",!0),L("span",Wa,M(l.label),1),l.count!=null?(E(),k("span",qa,M(l.count),1)):Q("",!0)])),ds(L("div",Ga,[(E(!0),k(X,null,Ke(l.rows,r=>(E(),k("button",{key:r.key,type:"button",role:"tab",class:_e(["vtl-tab",{active:r.key===e.active}]),"aria-selected":String(r.key===e.active),tabindex:r.key===e.active?0:-1,ref_for:!0,ref:a=>e.registerTab(r.key,a),onClick:a=>e.pick(r.key),onKeydown:t[3]||(t[3]=a=>e.onKey(a))},[r.icon?(E(),k("span",{key:0,class:"vtl-tab-ic","aria-hidden":"true",innerHTML:e.iconSvg(r.icon)},null,8,Ya)):r.emoji?(E(),k("span",Ja,M(r.emoji),1)):(E(),k("span",Za,M(e.initial(r.label)),1)),L("span",Qa,[L("span",ec,[gt(M(r.label),1),r.badge?(E(),k("span",tc,M(r.badge),1)):Q("",!0)]),r.sub?(E(),k("span",sc,[L("span",{innerHTML:r.sub},null,8,oc)])):Q("",!0)])],42,Xa))),128))],512),[[vo,!l.folder||!e.isFolderClosed(l)]])]))),128)):(E(!0),k(X,{key:2},Ke(e.items,l=>(E(),k("button",{key:l.key,type:"button",role:"tab",class:_e(["vtl-tab",{active:l.key===e.active}]),"aria-selected":String(l.key===e.active),tabindex:l.key===e.active?0:-1,ref_for:!0,ref:r=>e.registerTab(l.key,r),onClick:r=>e.pick(l.key),onKeydown:t[4]||(t[4]=r=>e.onKey(r))},[l.icon?(E(),k("span",{key:0,class:"vtl-tab-ic","aria-hidden":"true",innerHTML:e.iconSvg(l.icon)},null,8,ic)):l.emoji?(E(),k("span",lc,M(l.emoji),1)):(E(),k("span",rc,M(e.initial(l.label)),1)),L("span",ac,[L("span",cc,M(l.label),1),l.sub?(E(),k("span",dc,M(l.sub),1)):Q("",!0)])],42,nc))),128))],8,Na),L("main",pc,[e.header?Tt(e.$slots,"toolbar",{},void 0,void 0,0):Q("",!0),L("div",fc,[(E(!0),k(X,null,Ke(e.mountedElementRows,l=>ds((E(),k("section",{key:l.key,class:"vtl-host",hidden:l.key!==e.active},[L("div",{class:"vtl-host-slot",ref_for:!0,ref:r=>e.setHostSlot(l.key,r)},null,512),e.hostState[l.key]==="loading"?(E(),k("div",hc,"Loading "+M(l.label)+"…",1)):e.hostState[l.key]==="error"?(E(),k("div",gc,[gt(" Could not load "+M(l.label)+".",1),t[5]||(t[5]=L("br",null,null,-1)),L("small",null,M(e.hostError[l.key]),1)])):Q("",!0)],8,uc)),[[vo,l.key===e.active]])),128)),Tt(e.$slots,"default")])])])],2)}const vc=_o(ka,[["render",bc],["styles",[_a]]]),mc='.st{display:flex;flex-direction:column;margin:0 -12px}.st-bar{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:6px;padding:8px 12px;background:#fff}.st-find{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:6px;height:30px;padding:0 8px;border:1px solid #d1d4cd;border-radius:8px;background:#f3f3f1;color:#6d766e}.st-find:focus-within{border-color:#92b195;background:#fff}.st-find-ic{display:inline-flex}.st-find-ic svg{width:14px;height:14px}.st-find-in{flex:1 1 auto;min-width:0;border:0;outline:0;background:none;font:inherit;font-size:13px;color:#3b463d}.st-tool{flex:0 0 auto;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:8px;background:none;color:#6d766e;cursor:pointer}.st-tool:hover{background:#f3f3f1;color:#3b463d}.st-tool:focus-visible{outline:2px solid #92b195;outline-offset:-2px}.st-tool svg{width:16px;height:16px}.st-tree{display:flex;flex-direction:column;padding:0 0 8px;outline:0}.st-row{position:relative;display:flex;align-items:center;gap:6px;height:28px;box-sizing:border-box;padding-block:0;padding-inline:calc(8px + var(--st-depth) * 14px) 10px;font-size:13px;color:#3b463d;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;outline:0}.st-row:hover{background:#f3f3f1}.st-row:focus-visible{box-shadow:inset 0 0 0 1px #92b195}.st-row.active{background:#92b1953d}.st-row.active:after{content:"";position:absolute;inset-inline-start:0;top:4px;bottom:4px;width:3px;border-start-end-radius:3px;border-end-end-radius:3px;background:#92b195}.st-row.alias.active{background:#92b1951f}.st-sec{position:sticky;top:46px;z-index:2;height:30px;margin-top:6px;background:#fff;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#6d766e;border-top:1px solid #eceee9}.st-sec:first-child{margin-top:0;border-top:0}.st-sec:hover{background:#fff;color:#3b463d}.st-cap{flex:0 0 auto;font:700 10px/1 system-ui,sans-serif;letter-spacing:.3px;padding:3px 6px;border-radius:999px;background:#92b195;color:#1d2a1f}.st-sec-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.st-twisty,.st-twisty-sp{flex:0 0 16px;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;color:#6d766e}.st-twisty svg{width:14px;height:14px;transition:transform .12s ease}.st-row[aria-expanded=true]>.st-twisty svg{transform:rotate(90deg)}.st:dir(rtl) .st-twisty svg{transform:scaleX(-1)}.st:dir(rtl) .st-row[aria-expanded=true]>.st-twisty svg{transform:rotate(90deg)}.st-ic{flex:0 0 16px;display:inline-flex;color:#6d766e}.st-ic svg{width:16px;height:16px}.st-row.active .st-ic{color:#5f8a63}.st-label{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.st-desc{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;font:11px/1 ui-monospace,Menlo,monospace;color:#8a928b}.st-part{flex:0 0 auto;font:600 9px/1 system-ui,sans-serif;text-transform:uppercase;letter-spacing:.3px;padding:2px 4px;border:1px solid #92b195;border-radius:4px;color:#5f8a63}.st-count{flex:0 0 auto;margin-inline-start:auto;min-width:18px;text-align:right;font-size:11px;font-weight:500;letter-spacing:0;color:#6d766e}.st-guide{position:absolute;top:0;bottom:0;inset-inline-start:calc(15px + var(--st-g) * 14px);border-inline-start:1px solid #dfe2db;pointer-events:none}.st-row:hover>.st-guide{border-inline-start-color:#c4c8c0}.st-empty{margin:12px;font-size:13px;color:#6d766e}.st-activity{display:flex;flex-direction:column;gap:4px}.st-act{position:relative;display:flex;align-items:center;justify-content:center;width:48px;height:44px;margin-inline-start:172px;padding:0;border:0;border-radius:10px;background:none;color:#6d766e;cursor:pointer}.st-act:hover,.st-act.active{background:#f3f3f1;color:#3b463d}.st-act:focus-visible{outline:2px solid #92b195;outline-offset:-2px}.st-act-ic{display:inline-flex}.st-act-ic svg{width:20px;height:20px}.st-act-n{position:absolute;right:6px;bottom:5px;font:700 9px/1 system-ui,sans-serif;color:#5f8a63}',xc='.st { display:flex; flex-direction:column; margin:0 -12px; }.st-bar { position:sticky; top:0; z-index:3; display:flex; align-items:center; gap:6px; padding:8px 12px 8px; background:#ffffff; }.st-find { flex:1 1 auto; min-width:0; display:flex; align-items:center; gap:6px; height:30px; padding:0 8px; border:1px solid #d1d4cd; border-radius:8px; background:#f3f3f1; color:#6d766e; }.st-find:focus-within { border-color:#92b195; background:#ffffff; }.st-find-ic { display:inline-flex; } .st-find-ic svg { width:14px; height:14px; }.st-find-in { flex:1 1 auto; min-width:0; border:0; outline:0; background:none; font:inherit; font-size:13px; color:#3b463d; }.st-tool { flex:0 0 auto; width:30px; height:30px; display:inline-flex; align-items:center; justify-content:center; padding:0; border:0; border-radius:8px; background:none; color:#6d766e; cursor:pointer; }.st-tool:hover { background:#f3f3f1; color:#3b463d; } .st-tool:focus-visible { outline:2px solid #92b195; outline-offset:-2px; }.st-tool svg { width:16px; height:16px; }.st-tree { display:flex; flex-direction:column; padding:0 0 8px; outline:0; }.st-row { position:relative; display:flex; align-items:center; gap:6px; height:28px; box-sizing:border-box; padding-block:0; padding-inline:calc(8px + var(--st-depth) * 14px) 10px; font-size:13px; color:#3b463d; cursor:pointer; white-space:nowrap; user-select:none; outline:0; }.st-row:hover { background:#f3f3f1; }.st-row:focus-visible { box-shadow:inset 0 0 0 1px #92b195; }.st-row.active { background:rgba(146,177,149,.24); }.st-row.active::after { content:""; position:absolute; inset-inline-start:0; top:4px; bottom:4px; width:3px; border-start-end-radius:3px; border-end-end-radius:3px; background:#92b195; }.st-row.alias.active { background:rgba(146,177,149,.12); }.st-sec { position:sticky; top:46px; z-index:2; height:30px; margin-top:6px; background:#ffffff; font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:#6d766e; border-top:1px solid #eceee9; }.st-sec:first-child { margin-top:0; border-top:0; }.st-sec:hover { background:#ffffff; color:#3b463d; }.st-cap { flex:0 0 auto; font:700 10px/1 system-ui,sans-serif; letter-spacing:.3px; padding:3px 6px; border-radius:999px; background:#92b195; color:#1d2a1f; }.st-sec-label { flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; }.st-twisty, .st-twisty-sp { flex:0 0 16px; width:16px; height:16px; display:inline-flex; align-items:center; justify-content:center; color:#6d766e; }.st-twisty svg { width:14px; height:14px; transition:transform .12s ease; }.st-row[aria-expanded="true"] > .st-twisty svg { transform:rotate(90deg); }.st:dir(rtl) .st-twisty svg { transform:scaleX(-1); } .st:dir(rtl) .st-row[aria-expanded="true"] > .st-twisty svg { transform:rotate(90deg); }.st-ic { flex:0 0 16px; display:inline-flex; color:#6d766e; } .st-ic svg { width:16px; height:16px; }.st-row.active .st-ic { color:#5f8a63; }.st-label { flex:0 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; }.st-desc { flex:1 1 0; min-width:0; overflow:hidden; text-overflow:ellipsis; font:11px/1 ui-monospace,Menlo,monospace; color:#8a928b; }.st-part { flex:0 0 auto; font:600 9px/1 system-ui,sans-serif; text-transform:uppercase; letter-spacing:.3px; padding:2px 4px; border:1px solid #92b195; border-radius:4px; color:#5f8a63; }.st-count { flex:0 0 auto; margin-inline-start:auto; min-width:18px; text-align:right; font-size:11px; font-weight:500; letter-spacing:0; color:#6d766e; }.st-guide { position:absolute; top:0; bottom:0; inset-inline-start:calc(15px + var(--st-g) * 14px); border-inline-start:1px solid #dfe2db; pointer-events:none; }.st-row:hover > .st-guide { border-inline-start-color:#c4c8c0; }.st-empty { margin:12px; font-size:13px; color:#6d766e; }.st-activity { display:flex; flex-direction:column; gap:4px; }.st-act { position:relative; display:flex; align-items:center; justify-content:center; width:48px; height:44px; margin-inline-start:172px; padding:0; border:0; border-radius:10px; background:none; color:#6d766e; cursor:pointer; }.st-act:hover, .st-act.active { background:#f3f3f1; color:#3b463d; }.st-act:focus-visible { outline:2px solid #92b195; outline-offset:-2px; }.st-act-ic { display:inline-flex; } .st-act-ic svg { width:20px; height:20px; }.st-act-n { position:absolute; right:6px; bottom:5px; font:700 9px/1 system-ui,sans-serif; color:#5f8a63; }',yc='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="3"/><line x1="8.5" y1="12" x2="15.5" y2="12"/></svg>',wc={filterPlaceholder:"Filter plugins",collapseAll:"Collapse all",noMatch:"No plugin matches “{query}”.",treeLabel:"Plugins by capability",openSection:"Open {cap}, {label}",part:"part"},$c='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 6 15 12 9 18"/></svg>',_c=fs({name:"StudioTree",props:{sections:{type:Array,default:()=>[]},active:{type:String,default:""},collapsed:{type:Boolean,default:!1},pick:{type:Function,default:null},expand:{type:Function,default:null},strings:{type:Object,default:()=>({})}},emits:["select"],setup(){$o(xc,"studio-tree")},data(){const e=this.readState();return{query:"",focusId:"",secClosed:e.sec||{},nodeOpen:e.node||{},chev:$c,collapseAllSvg:yc}},computed:{byId(){const e=new Map;for(const t of this.sections)for(const s of t.nodes)e.set(s.id,s);return e},q(){return this.query.trim().toLowerCase()},kept(){if(!this.q)return null;const e=new Set;for(const t of this.sections)for(const s of t.nodes){if(!(s.label.toLowerCase().includes(this.q)||String(s.desc||"").toLowerCase().includes(this.q)))continue;e.add(s.id);let n=s.parent;for(;n;)e.add(n),n=this.byId.get(n)&&this.byId.get(n).parent}return e},visible(){const e=[];for(const t of this.sections){const s=this.kept?t.nodes.filter(o=>this.kept.has(o.id)):t.nodes;if(!(this.kept&&!s.length)&&(e.push({id:"sec:"+t.id,section:!0,sectionId:t.id,level:1,depth:0,expandable:!0,cap:t.cap,label:t.label,title:t.title||"",count:t.nodes.filter(o=>o.depth===0).length}),!(!this.kept&&this.secClosed[t.id])))for(const o of s)!this.kept&&!this.ancestorsOpen(o)||e.push({...o,sectionId:t.id,level:o.depth+2,expandable:!!o.kids,alias:o.depth>0})}return e},activeSectionId(){for(const e of this.sections)if(e.nodes.some(t=>t.depth===0&&t.target===this.active))return e.id;return""}},watch:{active:{handler(){this.reveal()},immediate:!0},sections(){this.reveal()},query(e){e&&this.visible.length&&(this.focusId=this.visible[0].id)}},methods:{svg(e){return e?Li(e):""},str(e,t){let s=this.strings[e]||wc[e]||e;if(t)for(const o in t)s=s.split("{"+o+"}").join(String(t[o]));return s},storageKey(){return"dx-studio-tree:"+(typeof location<"u"&&location.pathname||"")},readState(){try{return JSON.parse(window.localStorage.getItem(this.storageKey())||"{}")||{}}catch{return{}}},saveState(){try{window.localStorage.setItem(this.storageKey(),JSON.stringify({sec:this.secClosed,node:this.nodeOpen}))}catch{}},ancestorsOpen(e){let t=e.parent;for(;t;){if(!this.nodeOpen[t])return!1;t=this.byId.get(t)&&this.byId.get(t).parent}return!0},isOpen(e){return this.kept?!0:e.section?!this.secClosed[e.sectionId]:!!this.nodeOpen[e.id]},setOpen(e,t){e.section?this.secClosed={...this.secClosed,[e.sectionId]:!t}:this.nodeOpen={...this.nodeOpen,[e.id]:t},this.saveState()},toggle(e){e.expandable&&this.setOpen(e,!this.isOpen(e))},collapseAll(){this.nodeOpen={},this.saveState();const e=this.visible.find(t=>!t.section&&t.target===this.active&&t.depth===0);e&&(this.focusId=e.id)},rowClass(e){return{"st-row":!0,"st-sec":!!e.section,active:!e.section&&e.target===this.active,alias:!!e.alias}},setRow(e,t){this._rows||(this._rows={}),t?this._rows[e]=t:delete this._rows[e]},activate(e){if(e.section){this.toggle(e);return}e.expandable&&!this.isOpen(e)&&this.setOpen(e,!0),e.target&&(this.pick?this.pick(e.target):this.$emit("select",e.target))},onRowClick(e){this.focusId=e.id,this.activate(e)},focusRow(e){e&&(this.focusId=e,this.$nextTick(()=>{const t=this._rows&&this._rows[e];t&&(t.focus({preventScroll:!0}),t.scrollIntoView({block:"nearest"}))}))},onTreeKey(e){const t=this.visible;if(!t.length)return;const s=Math.max(0,t.findIndex(i=>i.id===this.focusId)),o=t[s],n=i=>i.section?"":i.parent||"sec:"+i.sectionId;switch(e.key){case"ArrowDown":this.focusRow((t[s+1]||o).id);break;case"ArrowUp":this.focusRow((t[s-1]||o).id);break;case"Home":this.focusRow(t[0].id);break;case"End":this.focusRow(t[t.length-1].id);break;case"ArrowRight":if(!o.expandable)break;this.isOpen(o)?t[s+1]&&t[s+1].level>o.level&&this.focusRow(t[s+1].id):this.setOpen(o,!0);break;case"ArrowLeft":o.expandable&&this.isOpen(o)&&!this.kept?this.setOpen(o,!1):this.focusRow(n(o));break;case"Enter":case" ":this.activate(o);break;default:if(e.key.length===1&&/\S/.test(e.key)&&!e.ctrlKey&&!e.metaKey&&!e.altKey){const i=e.key.toLowerCase(),r=t.slice(s+1).concat(t.slice(0,s+1)).find(a=>String(a.label).toLowerCase().startsWith(i));r&&this.focusRow(r.id);break}return}e.preventDefault()},onFindKey(e){e.key==="Escape"?(this.query="",e.preventDefault()):e.key==="ArrowDown"&&this.visible.length&&(this.focusRow(this.visible[0].id),e.preventDefault())},reveal(){if(!this.active||!this.sections.length)return;let e=null;for(const t of this.sections)if(e=t.nodes.find(s=>s.depth===0&&s.target===this.active),e){this.secClosed[t.id]&&(this.secClosed={...this.secClosed,[t.id]:!1},this.saveState());break}e&&((!this.focusId||!this.byId.has(this.focusId)||this.byId.get(this.focusId).target!==this.active)&&(this.focusId=e.id),this.$nextTick(()=>{const t=this._rows&&this._rows[e.id];t&&t.scrollIntoView&&t.scrollIntoView({block:"nearest"})}))},openSectionFromActivity(e){this.secClosed[e]&&(this.secClosed={...this.secClosed,[e]:!1},this.saveState()),this.expand&&this.expand(),this.$nextTick(()=>this.focusRow("sec:"+e))}}}),Sc={key:0,class:"st-activity"},Lc=["aria-label","onClick"],Ec=["innerHTML"],kc={class:"st-act-n","aria-hidden":"true"},Cc={key:1,class:"st"},Tc={class:"st-bar"},Oc={class:"st-find"},Ac=["innerHTML"],Mc=["placeholder","aria-label"],Pc=["aria-label","title"],Rc=["innerHTML"],Nc=["aria-label"],Ic=["aria-level","aria-expanded","aria-selected","tabindex","title","onClick","onFocus"],Hc=["innerHTML"],Dc={class:"st-cap"},Fc={class:"st-sec-label"},jc={class:"st-count"},Vc=["innerHTML","onClick"],zc={key:1,class:"st-twisty-sp","aria-hidden":"true"},Kc=["innerHTML"],Uc={class:"st-label"},Bc={key:2,class:"st-part"},Wc={class:"st-desc"},qc={key:3,class:"st-count"},Gc={key:0,class:"st-empty"};function Xc(e,t,s,o,n,i){return e.collapsed?(E(),k("div",Sc,[(E(!0),k(X,null,Ke(e.sections,l=>(E(),k("button",{key:l.id,type:"button",class:_e(["st-act",{active:l.id===e.activeSectionId}]),"aria-label":e.str("openSection",{cap:"CAP "+l.cap,label:l.label}),onClick:r=>e.openSectionFromActivity(l.id)},[L("span",{class:"st-act-ic","aria-hidden":"true",innerHTML:e.svg(l.icon)},null,8,Ec),L("span",kc,M(l.cap),1)],10,Lc))),128))])):(E(),k("div",Cc,[L("div",Tc,[L("label",Oc,[L("span",{class:"st-find-ic","aria-hidden":"true",innerHTML:e.svg("search")},null,8,Ac),ds(L("input",{ref:"find",type:"search",class:"st-find-in","onUpdate:modelValue":t[0]||(t[0]=l=>e.query=l),placeholder:e.str("filterPlaceholder"),"aria-label":e.str("filterPlaceholder"),onKeydown:t[1]||(t[1]=(...l)=>e.onFindKey&&e.onFindKey(...l))},null,40,Mc),[[oa,e.query]])]),L("button",{type:"button",class:"st-tool","aria-label":e.str("collapseAll"),title:e.str("collapseAll"),onClick:t[2]||(t[2]=(...l)=>e.collapseAll&&e.collapseAll(...l))},[L("span",{"aria-hidden":"true",innerHTML:e.collapseAllSvg},null,8,Rc)],8,Pc)]),L("div",{class:"st-tree",role:"tree","aria-label":e.str("treeLabel"),onKeydown:t[3]||(t[3]=(...l)=>e.onTreeKey&&e.onTreeKey(...l))},[(E(!0),k(X,null,Ke(e.visible,l=>(E(),k("div",{key:l.id,ref_for:!0,ref:r=>e.setRow(l.id,r),role:"treeitem","aria-level":l.level,"aria-expanded":l.expandable?String(e.isOpen(l)):null,"aria-selected":l.section?null:String(l.target===e.active),tabindex:l.id===e.focusId?0:-1,class:_e(e.rowClass(l)),style:xt({"--st-depth":l.depth}),title:l.title||null,onClick:r=>e.onRowClick(l),onFocus:r=>e.focusId=l.id},[l.section?(E(),k(X,{key:0},[L("span",{class:"st-twisty","aria-hidden":"true",innerHTML:e.chev},null,8,Hc),L("span",Dc,"CAP "+M(l.cap),1),L("span",Fc,M(l.label),1),L("span",jc,M(l.count),1)],64)):(E(),k(X,{key:1},[(E(!0),k(X,null,Ke(l.depth,r=>(E(),k("span",{key:r,class:"st-guide",style:xt({"--st-g":r-1}),"aria-hidden":"true"},null,4))),128)),l.expandable?(E(),k("span",{key:0,class:"st-twisty","aria-hidden":"true",innerHTML:e.chev,onClick:la(r=>e.toggle(l),["stop"])},null,8,Vc)):(E(),k("span",zc)),L("span",{class:"st-ic","aria-hidden":"true",innerHTML:e.svg(l.icon)},null,8,Kc),L("span",Uc,M(l.label),1),l.part?(E(),k("span",Bc,M(e.str("part")),1)):Q("",!0),L("span",Wc,M(l.desc),1),l.expandable?(E(),k("span",qc,M(l.kids),1)):Q("",!0)],64))],46,Ic))),128)),e.query&&!e.visible.length?(E(),k("p",Gc,M(e.str("noMatch",{query:e.query})),1)):Q("",!0)],40,Nc)]))}const Yc=_o(_c,[["render",Xc],["styles",[mc]]]),So=[{code:"en",name:"English",nativeName:"English",flag:"🇺🇸"},{code:"es",name:"Spanish",nativeName:"Español",flag:"🇪🇸"},{code:"fr",name:"French",nativeName:"Français",flag:"🇫🇷"},{code:"pt",name:"Portuguese",nativeName:"Português",flag:"🇵🇹"},{code:"ar",name:"Arabic",nativeName:"العربية",flag:"🇸🇦",dir:"rtl"},{code:"ru",name:"Russian",nativeName:"Русский",flag:"🇷🇺"},{code:"de",name:"German",nativeName:"Deutsch",flag:"🇩🇪",hideFromSwitcher:!0},{code:"hi",name:"Hindi",nativeName:"हिन्दी",flag:"🇮🇳",hideFromSwitcher:!0}],Jc=So.filter(e=>!e.hideFromSwitcher);function Zc(e){return So.find(t=>t.code===e)}function Ei(e){const t=String(e||"").split("-")[0].toLowerCase();return So.some(s=>s.code===t)?t:"en"}const ki="doxa-maps:locale";function Qc(){try{const e=localStorage.getItem(ki);if(e)return Ei(e)}catch{}return Ei(navigator==null?void 0:navigator.language)}function ed(e){try{localStorage.setItem(ki,e)}catch{}}const td=":host{display:block;position:relative;height:var(--plugin-studio-height, 85vh);min-height:480px}:host([hidden]){display:none}.ps-logo{display:inline-flex;align-items:center}.ps-logo svg{display:block}.ps-count{color:#6d766e}.ps-locale{position:relative;display:inline-flex}.ps-locale-btn{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:12px;padding:4px 9px;border:1px solid #d1d4cd;border-radius:8px;background:#d1d4cd;color:#3b463d;cursor:pointer}.ps-locale-btn:hover{background:#d1d4cd}.ps-flag{font-size:13px;line-height:1}.ps-locale-name{max-width:11ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ps-dots{color:#6d766e}.ps-locale-menu{position:absolute;top:100%;right:0;margin-top:4px;z-index:30;min-width:180px;list-style:none;padding:6px;border:1px solid #d1d4cd;border-radius:10px;background:#fff;box-shadow:0 12px 32px #00000080;max-height:320px;overflow:auto}.ps-locale-opt{display:flex;align-items:center;gap:8px;width:100%;text-align:left;font:inherit;font-size:13px;padding:7px 9px;border:0;border-radius:7px;background:none;color:#3b463d;cursor:pointer}.ps-locale-opt:hover,.ps-locale-opt.active{background:#d1d4cd;color:#3b463d}.ps-locale-opt.active .ps-locale-name{color:#92b195}.ps-locale-en{margin-left:auto;font-size:11px;color:#6d766e}.ps-toolbar{display:flex;flex-direction:column;gap:8px;padding:10px 12px 0}.ps-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ps-bar-t{flex:1 1 auto;min-width:0}.ps-bar-t b{font-size:15px;color:#3b463d}.ps-bar-sub{display:block;font-size:12px;color:#6d766e}.ps-btn{font:inherit;font-size:12px;padding:5px 10px;border:1px solid #d1d4cd;border-radius:8px;background:#d1d4cd;color:#3b463d;cursor:pointer;white-space:nowrap}.ps-btn:hover{background:#d1d4cd}.ps-embed{display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid #d1d4cd;border-radius:8px;background:#f3f3f1}.ps-embed label{font-size:12px;color:#6d766e;display:flex;justify-content:space-between;align-items:center}.ps-embed textarea{width:100%;height:58px;font:11px/1.35 ui-monospace,Menlo,monospace;border:1px solid #d1d4cd;border-radius:6px;background:#fff;color:#3b463d;padding:6px;resize:vertical}.ps-stage{position:absolute;top:10px;right:12px;bottom:12px;left:12px;border:1px solid #d1d4cd;border-radius:10px;overflow:hidden;background:#f3f3f1}.ps-pane{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;--profile-min-h: 0}.ps-slot{position:relative;min-height:100%}.ps-slot>*{min-height:0;max-height:none}.ps-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;color:#6d766e;font-size:13px;padding:20px}.ps-hint.err{color:#f87171}.ps-hint small{color:#6d766e}",sd=`
:host { display:block; position:relative; height:var(--plugin-studio-height, 85vh); min-height:480px; }
:host([hidden]) { display:none; }
.ps-logo { display:inline-flex; align-items:center; }
.ps-logo svg { display:block; }
.ps-count { color:#6d766e; }
.ps-locale { position:relative; display:inline-flex; }
.ps-locale-btn { display:inline-flex; align-items:center; gap:6px; font:inherit; font-size:12px; padding:4px 9px; border:1px solid #d1d4cd; border-radius:8px; background:#d1d4cd; color:#3b463d; cursor:pointer; }
.ps-locale-btn:hover { background:#d1d4cd; }
.ps-flag { font-size:13px; line-height:1; }
.ps-locale-name { max-width:11ch; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ps-dots { color:#6d766e; }
.ps-locale-menu { position:absolute; top:100%; right:0; margin-top:4px; z-index:30; min-width:180px; list-style:none; padding:6px; border:1px solid #d1d4cd; border-radius:10px; background:#ffffff; box-shadow:0 12px 32px rgba(0,0,0,.5); max-height:320px; overflow:auto; }
.ps-locale-opt { display:flex; align-items:center; gap:8px; width:100%; text-align:left; font:inherit; font-size:13px; padding:7px 9px; border:0; border-radius:7px; background:none; color:#3b463d; cursor:pointer; }
.ps-locale-opt:hover { background:#d1d4cd; color:#3b463d; }
.ps-locale-opt.active { background:#d1d4cd; color:#3b463d; }
.ps-locale-opt.active .ps-locale-name { color:#92b195; }
.ps-locale-en { margin-left:auto; font-size:11px; color:#6d766e; }
.ps-toolbar { display:flex; flex-direction:column; gap:8px; padding:10px 12px 0; }
.ps-bar { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.ps-bar-t { flex:1 1 auto; min-width:0; }
.ps-bar-t b { font-size:15px; color:#3b463d; }
.ps-bar-sub { display:block; font-size:12px; color:#6d766e; }
.ps-btn { font:inherit; font-size:12px; padding:5px 10px; border:1px solid #d1d4cd; border-radius:8px; background:#d1d4cd; color:#3b463d; cursor:pointer; white-space:nowrap; }
.ps-btn:hover { background:#d1d4cd; }
.ps-embed { display:flex; flex-direction:column; gap:6px; padding:8px; border:1px solid #d1d4cd; border-radius:8px; background:#f3f3f1; }
.ps-embed label { font-size:12px; color:#6d766e; display:flex; justify-content:space-between; align-items:center; }
.ps-embed textarea { width:100%; height:58px; font:11px/1.35 ui-monospace,Menlo,monospace; border:1px solid #d1d4cd; border-radius:6px; background:#ffffff; color:#3b463d; padding:6px; resize:vertical; }
.ps-stage { position:absolute; inset:10px 12px 12px; border:1px solid #d1d4cd; border-radius:10px; overflow:hidden; background:#f3f3f1; }
/* ★ THE PANE OWNS THE SCROLL (BUG-STILL-CANNOT-SCROLL-DOWN-TO-THE-GRID, measured 2026-09-22).
A scroll-stack composite (dashboard-plus-grid: an 88svh dashboard band + the people-groups grid
below it) mounted here measured scrollHeight 3380 / clientHeight 769 — 2611px of real, mounted,
populated content that NO element could scroll to, because this pane was position:absolute;
inset:0 with the default overflow:visible inside a .ps-stage that is overflow:hidden.
Document scrollHeight was 900, exactly === clientHeight, so a wheel gesture had nothing to move.
The identical composite is PERFECT standalone (document 2960/900, wheel reaches 2060) because its
generated leaf gives the DOCUMENT the scroll — a host that pins the pane to viewport height has
to own that scroll itself.
auto, not scroll: only a pane whose content really exceeds its box gets a scrollbar, so the map
tabs stay scrollbar-free (see the dvh floor note below, which is what makes that true). */
.ps-pane { position:absolute; inset:0; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; --profile-min-h:0; }
/* NOT absolute-inset: that pinned the mount point to the pane's height and re-created the same trap
one level down (an absolutely positioned child cannot grow a scroll container). min-height:100%
keeps a fixed-viewport map filling the pane while letting a taller composite grow it. */
.ps-slot { position:relative; min-height:100%; }
/* ★ THE dvh FLOOR, NEUTRALISED FOR HOSTED ELEMENTS (measured 2026-09-22, caught by the regression
check on this very fix — my first version of the rule above was WRONG about this).
I claimed a fixed-viewport map "fills this box exactly, so auto is a no-op for it". It is not.
doxa-research-map ships .profile-loader { height:100%; min-height:100dvh }, and those two resolve
against DIFFERENT bases: height:100% against the pane (769px here, because the pane sits inside a
.ps-stage inset by the studio chrome), min-height:100dvh against the VIEWPORT (900px). The floor
wins, the element is 131px taller than its container, and overflow:auto then correctly reported a
scrollbar on a map tab that should never have one — a real regression my reasoning had ruled out.
The dvh floor is deliberate and must stay for the STANDALONE leaf, where it fixes the opposite
bug (BUG-UPG100-NESTED-ELEMENTS-ZERO-HEIGHT: min-height:100% against a body with no definite
height collapses to 0). It is only wrong HERE, where the pane is a definite box shorter than the
viewport. So neutralise it on the hosted subtree rather than editing the map: a direct child of a
studio pane is bounded by the PANE. A taller-than-viewport scroll-stack composite is unaffected —
it grows past this floor on its own content, which is what makes the grid reachable.
★ AND --profile-min-h:0 ON THE PANE, which is the half that actually does the work. Sizing the
host is NOT enough, and measuring proved it: the host correctly became 769px while the pane still
overflowed by exactly 131px, because .profile-loader lives INSIDE the map's SHADOW ROOT at
min-height:100dvh and a host-page SELECTOR cannot reach into a shadow tree. Inherited properties
CAN, so ProfileLoader.vue now reads min-height:var(--profile-min-h, 100dvh) and this pane sets it
to 0 — the floor keeps its default everywhere else, including every standalone leaf where it
still fixes BUG-UPG100.
★ NOT overflow:clip, which I tried first and MEASURED as wrong: it bounded the map (good) but
ALSO bounded the scroll-stack composite, whose host box is the pane height while its content is
3380px — so the grid became unreachable again and the gate went straight back to 0px scrolled.
One blanket rule cannot serve both; the variable targets the actual culprit instead. */
.ps-slot > * { min-height:0; max-height:none; }
.ps-hint { position:absolute; inset:0; display:grid; place-items:center; text-align:center; color:#6d766e; font-size:13px; padding:20px; }
.ps-hint.err { color:#f87171; }
.ps-hint small { color:#6d766e; }
`,od={5:"App shell · nested-mfe-spa",4:"Composite element",3:"Multi-view element",2:"Preset element",1:"Single element"},Ci={"nested-mfe-spa":0,"nested-elements-mfe":1,monolithic:2,parameterized:3,single:4},nd=e=>Ci[e]!=null?5-Ci[e]:1,id={5:"nested-mfe-spa",4:"nested-elements-mfe",3:"monolithic",2:"parameterized",1:"single"},Lo={5:"monitor",4:"tree",3:"layers",2:"grid",1:"embed"},Ti=new Set(["doxa-research-map","doxa-simple-map","cities-internet-map","gospel-resources-map","my-upg-100-list-map","doxa-map","doxa-maps-spa","dashboard-plus-grid","research-dashboard-map","demo-map","all-people-groups","country-posters-map","key-cities-map","research-map-plus-grid"]),Oi=new Set(["big-picture"]),ks={};for(const[e,t]of Object.entries(Object.assign({"../../library/i18n/locales/ar/studio.json":pa,"../../library/i18n/locales/de/studio.json":fa,"../../library/i18n/locales/en/studio.json":ua,"../../library/i18n/locales/es/studio.json":ha,"../../library/i18n/locales/fr/studio.json":ga,"../../library/i18n/locales/hi/studio.json":ba,"../../library/i18n/locales/it/studio.json":va,"../../library/i18n/locales/pt/studio.json":ma,"../../library/i18n/locales/ro/studio.json":xa,"../../library/i18n/locales/ru/studio.json":ya,"../../library/i18n/locales/zh/studio.json":wa}))){const s=e.match(/locales\/([^/]+)\/studio\.json$/);s&&(ks[s[1]]=t)}const ld={"doxa-maps-spa/doxa-maps-spa":"Research Gallery"},jt={};function rd(e,t){return jt[e]||(jt[e]=new Promise((s,o)=>{const n=document.createElement("script");n.src=e,(/^\/plugin-designs\//.test(e)||/\/index\.js(\?|$)/.test(e))&&(n.type="module"),n.onload=()=>s(),n.onerror=()=>{delete jt[e],o(new Error("failed to load "+e))},document.head.appendChild(n)})),jt[e]}function ad(e,t){return typeof customElements>"u"||customElements.get(e)?Promise.resolve():Promise.race([customElements.whenDefined(e),new Promise((s,o)=>setTimeout(()=>{customElements.get(e)||o(new Error("<"+e+"> never registered (bundle loaded but defined no element)"))},15e3))])}const cd=fs({name:"PluginStudio",inheritAttrs:!1,components:{VerticalTabsLayout:vc,StudioTree:Yc},props:{treeBase:{type:String,default:""},profileConfig:{type:[String,Object],default:""},provider:{type:String,default:""},heading:{type:String,default:""},tokenUrl:{type:String,default:""},tk:{type:String,default:""}},setup(){return $o(sd,"plugin-studio"),{injectedBase:kt("psTreeBase","")}},data(){return{activeKey:"",embedOpen:!1,locale:Qc(),localeOpen:!1,switcherLangs:Jc,rows:[],manifestBundles:[]}},computed:{cfg(){let e=this.profileConfig;if(typeof e=="string")try{e=e?JSON.parse(e):{}}catch{e={}}return e&&typeof e=="object"?e:{}},base(){const e=(this.treeBase||this.cfg.treeBase||this.injectedBase||"").trim();return e?e.replace(/\/+$/,"")+"/":""},flatRows(){return this.rows},groups(){const e={};for(const t of this.rows)(e[t.cap]=e[t.cap]||[]).push(t);return[5,4,3,2,1].filter(t=>e[t]&&e[t].length).map(t=>({cap:t,label:od[t]||"capability "+t,rows:e[t]}))},treeSections(){const e=new Map(this.compositionTrees.map(t=>[t.nodes[0].selects,t]));return this.groups.map(t=>{const s=[];for(const o of t.rows){const n=e.get(o.key);if(s.push({id:o.key,parent:"",depth:0,label:o.label,desc:o.tag,icon:o.icon,target:o.key,kids:n?n.nodes[0].kids:0,title:o.label+" · <"+o.tag+"> · CAP "+o.cap+" "+this.tr("cap"+o.cap)}),!n)continue;const i=l=>l===0?o.key:o.key+">"+l;for(const l of n.nodes.slice(1))s.push({id:i(l.id),parent:i(l.ancestors[l.ancestors.length-1]),depth:l.depth,label:l.label,part:!!l.part,target:l.selects||"",icon:l.part?"dots":Lo[l.cap]||"embed",desc:l.part?this.tr("noStandalone"):"cap "+l.cap+" · "+l.tag,kids:l.kids||0,title:l.part?l.label+" · "+this.tr("partOf",{name:o.label}):l.label+" · <"+l.tag+"> · CAP "+l.cap+" "+this.tr("cap"+l.cap)})}return{id:"cap-"+t.cap,cap:t.cap,label:this.tr("cap"+t.cap),title:this.tr("cap"+t.cap)+" · "+(id[t.cap]||""),icon:Lo[t.cap]||"embed",nodes:s}})},compositionTrees(){const e=[],t=(s,o,n,i,l)=>{const r=this.manifestBundles.find(y=>y.bundle===s.bundle),a=s.cap>=4&&r&&r.composes||[],f=[],p=[],h=new Set;for(const y of a){const S=this.resolveRef(y,s.bundle);if(!S){p.push(y);continue}S.key===s.key||h.has(S.key)||(h.add(S.key),f.push(S))}f.sort((y,S)=>S.cap-y.cap||y.label.localeCompare(S.label));for(const y of f){const S={id:i.length,label:y.label,tag:y.tag,cap:y.cap,selects:y.key,depth:o+1,ancestors:l,kids:0};i.push(S);const j=i.length;n.has(y.key)||t(y,o+1,new Set([...n,y.key]),i,[...l,S.id]),S.kids=i.filter((N,ee)=>ee>=j&&N.depth===o+2).length}for(const y of p)i.push({id:i.length,label:y,part:!0,selects:s.key,depth:o+1,ancestors:l,kids:0})};for(const s of this.manifestBundles){if(!s.composes||!s.composes.length||Oi.has(s.bundle))continue;const o=this.rows.find(i=>i.bundle===s.bundle);if(!o)continue;const n=[{id:0,label:o.label,tag:o.tag,cap:o.cap,selects:o.key,depth:0,ancestors:[]}];t(o,0,new Set([o.key]),n,[0]),n[0].kids=n.filter(i=>i.depth===1).length,n.length>1&&e.push({bundle:s.bundle,nodes:n})}return e},active(){return this.rows.find(e=>e.key===this.activeKey)||null},countLabel(){const e=new Set(this.rows.map(t=>t.bundle)).size;return this.tr("countLabel",{bundles:e,elements:this.rows.length})},activeLang(){return Zc(this.locale)||{code:this.locale,flag:"🌐",nativeName:this.locale}},uiDir(){return(this.activeLang&&this.activeLang.dir)==="rtl"?"rtl":"ltr"}},mounted(){this.loadManifest()},methods:{tr(e,t){const s=(this.locale||"en").split("-")[0];let o=(ks[this.locale]||{})[e]||(ks[s]||{})[e]||(ks.en||{})[e]||e;if(t)for(const n in t)o=o.split("{"+n+"}").join(String(t[n]));return o},resolveRef(e,t){return t&&this.rows.find(s=>s.key===t+"/"+e)||this.rows.find(s=>s.key===e)||this.rows.find(s=>s.tag===e)||this.rows.find(s=>s.bundle===e)||null},setSlot(e,t){t&&(this._slots=Object.assign(this._slots||{},{[e]:t}))},setLocale(e){this.locale=e,this.localeOpen=!1,ed(e);try{const t=this.active,s=this._slots&&this._slots[this.activeKey],o=s&&s.firstElementChild;if(o&&o.setAttribute&&t){const n={profile:t.profile,instanceId:"ps-"+this.activeKey.replace(/\//g,"-"),locale:e};(this.tk||this.cfg.tk)&&(n.tk=this.tk||this.cfg.tk),o.setAttribute("profile-config",JSON.stringify(n))}}catch{}},resolve(e){const t=String(e);if(/^(https?:)?\/\//.test(t)||t.startsWith("/"))return t;const s=t.replace(/^\.\//,"");return this.base?this.base.replace(/\/+$/,"")+"/"+s:"../"+s},loadManifest(){const e=s=>{this.manifestBundles=s&&s.bundles||[],this.rows=this.rowsFromManifest(s),this.route()},t=typeof window<"u"&&window.__psBaked||null;if(typeof fetch=="function"&&typeof location<"u"&&location.protocol!=="file:"){const s=this.base?this.resolve("manifest.json"):"../manifest.json";fetch(s,{cache:"no-cache"}).then(o=>o.ok?o.json():null).then(o=>e(o||t||{bundles:[]})).catch(()=>e(t||{bundles:[]}))}else e(t||{bundles:[]})},rowsFromManifest(e){const t=[];for(const s of e.bundles||[])if(!(s.bundle==="plugin-studio"||Oi.has(s.bundle)))for(const o of s.profiles||[]){const n=s.elements&&s.elements.length?s.elements:null,i=(o.element&&(!n||n.includes(o.element))?o.element:null)||n&&n[0]||o.element||s.bundle,l=nd(o.type||"single"),r=Ti.has(i)||Ti.has(s.bundle);t.push({key:s.bundle+"/"+o.profile,bundle:s.bundle,label:ld[s.bundle+"/"+o.profile]||o.profile,profile:o.profile,tag:i,cap:l,icon:Lo[l]||"embed",description:o.description||"",heavy:r,bundleJs:s.scriptUrl||s.bundle+"/"+s.bundle+".js",embed:o.embed&&o.embed.script||"",mounted:!1,state:"idle",error:""})}return t.sort((s,o)=>o.cap-s.cap||s.bundle.localeCompare(o.bundle)||s.label.localeCompare(o.label)),t},route(){const e=(typeof location<"u"&&location.hash||"").replace(/^#\/?/,"");if(e&&this.rows.some(s=>s.key===e)){this.select(e);return}const t=this.readLastTab();if(t&&this.rows.some(s=>s.key===t)){this.select(t);return}this.rows.length&&this.select(this.rows[0].key)},storageKey(){return"dx-studio-tab:"+(typeof location<"u"&&location.pathname||"")},readLastTab(){try{return window.localStorage.getItem(this.storageKey())||""}catch{return""}},writeLastTab(e){try{window.localStorage.setItem(this.storageKey(),e)}catch{}},select(e){if(!this.rows.some(o=>o.key===e))return;const t=this.activeKey;if(this.activeKey=e,this.embedOpen=!1,t&&t!==e){const o=this.rows.find(n=>n.key===t);o&&o.heavy&&o.mounted&&this.releaseRow(o)}const s=this.rows.find(o=>o.key===e);s&&(this.writeLastTab(e),s.mounted||this.$nextTick(()=>{this.activeKey===s.key&&this.mountElement(s)}))},releaseRow(e){try{const t=this._slots&&this._slots[e.key];t&&(t.innerHTML="")}catch{}this._slots&&delete this._slots[e.key],e.mounted=!1,e.state="idle",e.error=""},mountElement(e){e.mounted=!0,e.state="loading";const t=this.resolve(e.bundleJs);rd(t).then(()=>ad(e.tag)).then(()=>{try{if(e.heavy&&this.activeKey!==e.key){e.mounted=!1,e.state="idle";return}const s=this._slots&&this._slots[e.key];if(!s){e.state="error",e.error="no slot";return}s.innerHTML="";const o=document.createElement(e.tag),n={profile:e.profile,instanceId:"ps-"+e.key.replace(/\//g,"-"),locale:this.locale};(this.tk||this.cfg.tk)&&(n.tk=this.tk||this.cfg.tk),(this.tokenUrl||this.cfg.tokenUrl)&&(n.tokenUrl=this.tokenUrl||this.cfg.tokenUrl);const i=this.provider||this.cfg.provider;(i==="maplibre"||i==="mapbox")&&(n.provider=i),this.base&&(n.treeBase=this.base),o.setAttribute("profile-config",JSON.stringify(n)),this.base&&o.setAttribute("tree-base",this.base.replace(/\/+$/,"")),o.style.cssText="display:block;position:absolute;inset:0;width:100%;height:100%;",s.appendChild(o),e.state="ready"}catch(s){e.state="error",e.error="mount failed: "+(s&&s.message||String(s))}}).catch(s=>{e.state="error",e.error=s&&s.message||String(s)})},copyText(e,t){const s=()=>{const o=t.textContent;t.textContent=this.tr("copied"),setTimeout(()=>{t.textContent=o},1200)};if(navigator.clipboard&&navigator.clipboard.writeText)navigator.clipboard.writeText(e).then(s,()=>{});else try{const o=document.createElement("textarea");o.value=e,document.body.appendChild(o),o.select(),document.execCommand("copy"),document.body.removeChild(o),s()}catch{}}}}),dd={class:"ps-count"},pd={class:"ps-locale"},fd=["aria-expanded","aria-label"],ud={class:"ps-flag"},hd={class:"ps-locale-name"},gd={key:0,class:"ps-locale-menu",role:"listbox"},bd=["aria-selected"],vd=["onClick"],md={class:"ps-flag"},xd={class:"ps-locale-name"},yd={class:"ps-locale-en"},wd={key:0,class:"ps-toolbar"},$d={class:"ps-bar"},_d={class:"ps-bar-t"},Sd={class:"ps-bar-sub"},Ld={key:0},Ed=["aria-expanded"],kd={key:0,class:"ps-embed"},Cd=["value"],Td={class:"ps-stage"},Od=["hidden"],Ad={key:0,class:"ps-hint"},Md={key:1,class:"ps-hint err"},Pd={key:0,class:"ps-hint"};function Rd(e,t,s,o,n,i){const l=Sn("StudioTree"),r=Sn("VerticalTabsLayout");return E(),ms(r,{title:e.heading||e.tr("title"),dir:e.uiDir,"nav-label":e.tr("navLabel"),labels:{toggleList:e.tr("toggleList"),openViews:e.tr("openViews"),expandList:e.tr("expandList"),collapseList:e.tr("collapseList"),collapse:e.tr("collapse")},header:!0,active:e.activeKey,"onUpdate:active":e.select},{rail:pt(({collapsed:a,expand:f,pick:p})=>[ve(l,{sections:e.treeSections,active:e.activeKey,collapsed:a,expand:f,pick:p,strings:{filterPlaceholder:e.tr("filterPlaceholder"),collapseAll:e.tr("collapseAll"),noMatch:e.tr("noMatch"),treeLabel:e.tr("navLabel"),openSection:e.tr("openSection"),part:e.tr("part")}},null,8,["sections","active","collapsed","expand","pick","strings"])]),brand:pt(()=>[...t[3]||(t[3]=[L("span",{class:"ps-logo","aria-hidden":"true"},[L("svg",{viewBox:"0 0 24 24",width:"22",height:"22",fill:"none",stroke:"#92b195","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[L("path",{d:"M10 3v3M14 3v3M7 6h10v5a5 5 0 0 1-10 0V6Z"}),L("path",{d:"M12 16v5"})])],-1)])]),meta:pt(()=>[L("span",dd,M(e.countLabel),1),L("span",pd,[L("button",{type:"button",class:"ps-locale-btn","aria-expanded":String(e.localeOpen),"aria-label":e.tr("changeLanguage"),onClick:t[0]||(t[0]=a=>e.localeOpen=!e.localeOpen)},[L("span",ud,M(e.activeLang.flag),1),L("span",hd,M(e.activeLang.nativeName),1),t[4]||(t[4]=L("span",{class:"ps-dots","aria-hidden":"true"},"⋮",-1))],8,fd),e.localeOpen?(E(),k("ul",gd,[(E(!0),k(X,null,Ke(e.switcherLangs,a=>(E(),k("li",{key:a.code,role:"option","aria-selected":String(a.code===e.locale)},[L("button",{type:"button",class:_e(["ps-locale-opt",{active:a.code===e.locale}]),onClick:f=>e.setLocale(a.code)},[L("span",md,M(a.flag),1),L("span",xd,M(a.nativeName),1),L("span",yd,M(a.name),1)],10,vd)],8,bd))),128))])):Q("",!0)])]),toolbar:pt(()=>[e.active?(E(),k("div",wd,[L("div",$d,[L("div",_d,[L("b",null,M(e.active.label),1),L("span",Sd,[gt(M(e.active.bundle)+" · <"+M(e.active.tag)+">",1),e.active.description?(E(),k("span",Ld," · "+M(e.active.description),1)):Q("",!0)])]),e.active.embed?(E(),k("button",{key:0,type:"button",class:"ps-btn","aria-expanded":String(e.embedOpen),onClick:t[1]||(t[1]=a=>e.embedOpen=!e.embedOpen)},M(e.tr("copyEmbed")),9,Ed)):Q("",!0)]),e.embedOpen&&e.active.embed?(E(),k("div",kd,[L("label",null,[gt(M(e.tr("scriptEmbed"))+" ",1),L("button",{type:"button",class:"ps-btn",onClick:t[2]||(t[2]=a=>e.copyText(e.active.embed,a.target))},M(e.tr("copy")),1)]),L("textarea",{readonly:"",value:e.active.embed},null,8,Cd)])):Q("",!0)])):Q("",!0)]),default:pt(()=>[L("div",Td,[(E(!0),k(X,null,Ke(e.flatRows,a=>ds((E(),k("section",{key:a.key,class:"ps-pane",hidden:a.key!==e.activeKey},[!a.heavy||a.key===e.activeKey?(E(),k(X,{key:0},[L("div",{class:"ps-slot",ref_for:!0,ref:f=>e.setSlot(a.key,f)},null,512),a.state==="loading"?(E(),k("div",Ad,M(e.tr("loading",{name:a.label})),1)):a.state==="error"?(E(),k("div",Md,[gt(M(e.tr("couldNotLoad",{name:a.label})),1),t[5]||(t[5]=L("br",null,null,-1)),L("small",null,M(a.error),1)])):Q("",!0)],64)):Q("",!0)],8,Od)),[[vo,a.key===e.activeKey]])),128)),e.activeKey?Q("",!0):(E(),k("div",Pd,M(e.tr("chooseElement")),1))])]),_:1},8,["title","dir","nav-label","labels","active","onUpdate:active"])}const Nd=_o(cd,[["render",Rd],["styles",[td]]]);function Id(){try{const e=typeof document<"u"&&document.currentScript&&document.currentScript.src||"";return e?e.replace(/[^/]+\/[^/]+$/,"").replace(/\/+$/,"")+"/":""}catch{return""}}const Hd=Id(),Dd=ea(Nd,{configureApp(e){e.provide("psTreeBase",Hd)}});typeof customElements<"u"&&!customElements.get("plugin-studio")&&customElements.define("plugin-studio",Dd)})();