doxa-maps/public/dx-maps/plugin-studio/plugin-studio.js
Doxa Maps d0939c0492 library: one embedScript for the app shells, replacing four private copies
DEDUP-AUDIT.md (measured today: 253 files, 31 cross-plugin duplicate clusters,
622 duplicated lines) ranks this tenth by raw cost and first by suitability. It
is the only cluster where the copies are identical in code, close over nothing,
and sit in two plugins with one owner between them.

loadScriptOnce (13 lines) and whenTagDefined (11) were byte-identical between
doxa-maps-spa and plugin-studio. deriveTreeBase (9) differed by ONE COMMENT LINE
and not one character of code -- drift in the documentation of a shared function,
which is its own argument for having one copy.

They are one concern, not three: load a bundle's script once, wait for its custom
element to register, and work out the tree base to load it from. That is what a
capability-5 app shell does to nest another plugin, and both plugins here ARE the
capability-5 shells. Any future shell needs the same three.

Verbatim move: no parameterisation, no behaviour change, callers import instead
of declaring. The comments travel with the code because each records a
measurement -- particularly the one explaining why onload is not a usable success
signal for a dev-server ES module.

ONE BEHAVIOUR CHANGE, AND IT IS AN IMPROVEMENT: the _loaded cache is now shared.
Two shells on one page previously kept separate caches and each loaded the same
bundle; the second now reuses the first's promise.

deriveTreeBase reads document.currentScript, so it is only valid AT MODULE
EVALUATION TIME. The call sites did not move -- both entries still call it at
module top level -- and the library file documents the constraint, because a
later call silently returns '' and every nested bundle URL would break.

Verified: both bundles build; each built file contains all three functions
exactly once and still derives currentScript; check:sri, check:series-isolation,
check:studio-rail and check:capability-derived all PASS.

library/utils/embedScript.js is the build owner's under rule 5B. The
plugin-designs and public/ changes are in the same commit because they import it
-- landing them apart breaks the build in between.
2026-09-28 07:07:33 +00:00

236 lines
227 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 jo(e){const t=Object.create(null);for(const o of e.split(","))t[o]=1;return o=>o in t}const B={},lt=[],ye=()=>{},Rn=()=>!1,Jt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Xt=e=>e.startsWith("onUpdate:"),Q=Object.assign,zo=(e,t)=>{const o=e.indexOf(t);o>-1&&e.splice(o,1)},sl=Object.prototype.hasOwnProperty,D=(e,t)=>sl.call(e,t),T=Array.isArray,Ge=e=>vt(e)==="[object Map]",Zt=e=>vt(e)==="[object Set]",Wn=e=>vt(e)==="[object Date]",O=e=>typeof e=="function",J=e=>typeof e=="string",_e=e=>typeof e=="symbol",W=e=>e!==null&&typeof e=="object",jn=e=>(W(e)||O(e))&&O(e.then)&&O(e.catch),zn=Object.prototype.toString,vt=e=>zn.call(e),il=e=>vt(e).slice(8,-1),Qt=e=>vt(e)==="[object Object]",Bo=e=>J(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,xt=jo(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),eo=e=>{const t=Object.create(null);return o=>t[o]||(t[o]=e(o))},ll=/-\w/g,ne=eo(e=>e.replace(ll,t=>t.slice(1).toUpperCase())),al=/\B([A-Z])/g,be=eo(e=>e.replace(al,"-$1").toLowerCase()),to=eo(e=>e.charAt(0).toUpperCase()+e.slice(1)),Ko=eo(e=>e?`on${to(e)}`:""),De=(e,t)=>!Object.is(e,t),oo=(e,...t)=>{for(let o=0;o<e.length;o++)e[o](...t)},Bn=(e,t,o,n=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:o})},Vo=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Kn=e=>{const t=J(e)?Number(e):NaN;return isNaN(t)?e:t};let Vn;const no=()=>Vn||(Vn=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function kt(e){if(T(e)){const t={};for(let o=0;o<e.length;o++){const n=e[o],s=J(n)?dl(n):kt(n);if(s)for(const i in s)t[i]=s[i]}return t}else if(J(e)||W(e))return e}const rl=/;(?![^(]*\))/g,cl=/:([^]+)/,pl=/\/\*[^]*?\*\//g;function dl(e){const t={};return e.replace(pl,"").split(rl).forEach(o=>{if(o){const n=o.split(cl);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function ge(e){let t="";if(J(e))t=e;else if(T(e))for(let o=0;o<e.length;o++){const n=ge(e[o]);n&&(t+=n+" ")}else if(W(e))for(const o in e)e[o]&&(t+=o+" ");return t.trim()}const ul=jo("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly");function qn(e){return!!e||e===""}function fl(e,t){if(e.length!==t.length)return!1;let o=!0;for(let n=0;o&&n<e.length;n++)o=so(e[n],t[n]);return o}function Gn(e,t){if(e.size!==t.size)return!1;const o=Array.from(t),n=new Uint8Array(o.length);for(const s of e){let i=-1;for(let l=0;l<o.length;l++)if(!n[l]&&so(s,o[l])){i=l;break}if(i<0)return!1;n[i]=1}return!0}function so(e,t){if(e===t)return!0;let o=Wn(e),n=Wn(t);if(o||n)return o&&n?e.getTime()===t.getTime():!1;if(o=_e(e),n=_e(t),o||n)return e===t;if(o=T(e),n=T(t),o||n)return o&&n?fl(e,t):!1;if(o=W(e),n=W(t),o||n){if(!o||!n)return!1;if(o=Ge(e),n=Ge(t),o||n||(o=Zt(e),n=Zt(t),o||n))return o&&n?Gn(e,t):!1;const s=Object.keys(e).length,i=Object.keys(t).length;if(s!==i)return!1;for(const l in e){const a=e.hasOwnProperty(l),r=t.hasOwnProperty(l);if(a&&!r||!a&&r||!so(e[l],t[l]))return!1}}return String(e)===String(t)}const Yn=e=>!!(e&&e.__v_isRef===!0),P=e=>J(e)?e:e==null?"":T(e)||W(e)&&(e.toString===zn||!O(e.toString))?Yn(e)?P(e.value):JSON.stringify(e,Jn,2):String(e),Jn=(e,t)=>Yn(t)?Jn(e,t.value):Ge(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((o,[n,s],i)=>(o[qo(n,i)+" =>"]=s,o),{})}:Zt(t)?{[`Set(${t.size})`]:[...t.values()].map(o=>qo(o))}:_e(t)?qo(t):W(t)&&!T(t)&&!Qt(t)?String(t):t,qo=(e,t="")=>{var o;return _e(e)?`Symbol(${(o=e.description)!=null?o:t})`:e};/**
* @vue/reactivity v3.5.42
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/let se;class gl{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&&se&&(se.active?(this.parent=se,this.index=(se.scopes||(se.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,o;if(this.scopes){const n=this.scopes.slice();for(t=0,o=n.length;t<o;t++)n[t].pause()}for(t=0,o=this.effects.length;t<o;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,o;if(this.scopes){const s=this.scopes.slice();for(t=0,o=s.length;t<o;t++)s[t].resume()}const n=this.effects.slice();for(t=0,o=n.length;t<o;t++)n[t].resume()}}run(t){if(this._active){const o=se;try{return se=this,t()}finally{se=o}}}on(){++this._on===1&&(this.prevScope=se,se=this)}off(){if(this._on>0&&--this._on===0){if(se===this)se=this.prevScope;else{let t=se;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 o,n;for(o=0,n=this.effects.length;o<n;o++)this.effects[o].stop();for(this.effects.length=0,o=0,n=this.cleanups.length;o<n;o++)this.cleanups[o]();if(this.cleanups.length=0,this.scopes){const s=this.scopes.slice();for(o=0,n=s.length;o<n;o++)s[o].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const s=this.parent.scopes.pop();s&&s!==this&&(this.parent.scopes[this.index]=s,s.index=this.index)}this.parent=void 0}}}function hl(){return se}let V;const Go=new WeakSet;class Xn{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,se&&(se.active?se.effects.push(this):this.flags&=-2)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Go.has(this)&&(Go.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||Qn(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,ss(this),es(this);const t=V,o=ve;V=this,ve=!0;try{return this.fn()}finally{ts(this),V=t,ve=o,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)Zo(t);this.deps=this.depsTail=void 0,ss(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Go.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){Xo(this)&&this.run()}get dirty(){return Xo(this)}}let Zn=0,yt,wt;function Qn(e,t=!1){if(e.flags|=8,t){e.next=wt,wt=e;return}e.next=yt,yt=e}function Yo(){Zn++}function Jo(){if(--Zn>0)return;if(wt){let t=wt;for(wt=void 0;t;){const o=t.next;t.next=void 0,t.flags&=-9,t=o}}let e;for(;yt;){let t=yt;for(yt=void 0;t;){const o=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=o}}if(e)throw e}function es(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function ts(e){let t,o=e.depsTail,n=o;for(;n;){const s=n.prevDep;n.version===-1?(n===o&&(o=s),Zo(n),$l(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=s}e.deps=t,e.depsTail=o}function Xo(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(os(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function os(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===St)||(e.globalVersion=St,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Xo(e))))return;e.flags|=2;const t=e.dep,o=V,n=ve;V=e,ve=!0;try{es(e);const s=e.fn(e._value);(t.version===0||De(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{V=o,ve=n,ts(e),e.flags&=-3}}function Zo(e,t=!1){const{dep:o,prevSub:n,nextSub:s}=e;if(n&&(n.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=n,e.nextSub=void 0),o.subs===e&&(o.subs=n,!n&&o.computed)){o.computed.flags&=-5;for(let i=o.computed.deps;i;i=i.nextDep)Zo(i,!0)}!t&&!--o.sc&&o.map&&o.map.delete(o.key)}function $l(e){const{prevDep:t,nextDep:o}=e;t&&(t.nextDep=o,e.prevDep=void 0),o&&(o.prevDep=t,e.nextDep=void 0)}let ve=!0;const ns=[];function we(){ns.push(ve),ve=!1}function Se(){const e=ns.pop();ve=e===void 0?!0:e}function ss(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const o=V;V=void 0;try{t()}finally{V=o}}}let St=0;class bl{constructor(t,o){this.sub=t,this.dep=o,this.version=o.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class is{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(!V||!ve||V===this.computed)return;let o=this.activeLink;if(o===void 0||o.sub!==V)o=this.activeLink=new bl(V,this),V.deps?(o.prevDep=V.depsTail,V.depsTail.nextDep=o,V.depsTail=o):V.deps=V.depsTail=o,ls(o);else if(o.version===-1&&(o.version=this.version,o.nextDep)){const n=o.nextDep;n.prevDep=o.prevDep,o.prevDep&&(o.prevDep.nextDep=n),o.prevDep=V.depsTail,o.nextDep=void 0,V.depsTail.nextDep=o,V.depsTail=o,V.deps===o&&(V.deps=n)}return o}trigger(t){this.version++,St++,this.notify(t)}notify(t){Yo();try{for(let o=this.subs;o;o=o.prevSub)o.sub.notify()&&o.sub.dep.notify()}finally{Jo()}}}function ls(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)ls(n)}const o=e.dep.subs;o!==e&&(e.prevSub=o,o&&(o.nextSub=e)),e.dep.subs=e}}const Qo=new WeakMap,Ze=Symbol(""),en=Symbol(""),Lt=Symbol("");function ae(e,t,o){if(ve&&V){let n=Qo.get(e);n||Qo.set(e,n=new Map);let s=n.get(o);s||(n.set(o,s=new is),s.map=n,s.key=o),s.track()}}function Ue(e,t,o,n,s,i){const l=Qo.get(e);if(!l){St++;return}const a=r=>{r&&r.trigger()};if(Yo(),t==="clear")l.forEach(a);else{const r=T(e),d=r&&Bo(o);if(r&&o==="length"){const p=Number(n);l.forEach((f,v)=>{(v==="length"||v===Lt||!_e(v)&&v>=p)&&a(f)})}else switch((o!==void 0||l.has(void 0))&&a(l.get(o)),d&&a(l.get(Lt)),t){case"add":r?d&&a(l.get("length")):(a(l.get(Ze)),Ge(e)&&a(l.get(en)));break;case"delete":r||(a(l.get(Ze)),Ge(e)&&a(l.get(en)));break;case"set":Ge(e)&&a(l.get(Ze));break}}Jo()}function at(e){const t=U(e);return t===e?t:(ae(t,"iterate",Lt),xe(e)?t:t.map(We))}function io(e){return ae(e=U(e),"iterate",Lt),e}function Le(e,t){return Ye(e)?rt(Qe(e)?We(t):t):We(t)}const ml={__proto__:null,[Symbol.iterator](){return tn(this,Symbol.iterator,e=>Le(this,e))},concat(...e){return at(this).concat(...e.map(t=>T(t)?at(t):t))},entries(){return tn(this,"entries",e=>(e[1]=Le(this,e[1]),e))},every(e,t){return Re(this,"every",e,t,void 0,arguments)},filter(e,t){return Re(this,"filter",e,t,o=>o.map(n=>Le(this,n)),arguments)},find(e,t){return Re(this,"find",e,t,o=>Le(this,o),arguments)},findIndex(e,t){return Re(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Re(this,"findLast",e,t,o=>Le(this,o),arguments)},findLastIndex(e,t){return Re(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Re(this,"forEach",e,t,void 0,arguments)},includes(...e){return on(this,"includes",e)},indexOf(...e){return on(this,"indexOf",e)},join(e){return at(this).join(e)},lastIndexOf(...e){return on(this,"lastIndexOf",e)},map(e,t){return Re(this,"map",e,t,void 0,arguments)},pop(){return Nt(this,"pop")},push(...e){return Nt(this,"push",e)},reduce(e,...t){return as(this,"reduce",e,t)},reduceRight(e,...t){return as(this,"reduceRight",e,t)},shift(){return Nt(this,"shift")},some(e,t){return Re(this,"some",e,t,void 0,arguments)},splice(...e){return Nt(this,"splice",e)},toReversed(){return at(this).toReversed()},toSorted(e){return at(this).toSorted(e)},toSpliced(...e){return at(this).toSpliced(...e)},unshift(...e){return Nt(this,"unshift",e)},values(){return tn(this,"values",e=>Le(this,e))}};function tn(e,t,o){const n=io(e),s=n[t]();return n!==e&&!xe(e)&&(s._next=s.next,s.next=()=>{const i=s._next();return i.done||(i.value=o(i.value)),i}),s}const _l=Array.prototype;function Re(e,t,o,n,s,i){const l=io(e),a=l!==e&&!xe(e),r=l[t];if(r!==_l[t]){const f=r.apply(e,i);return a?We(f):f}let d=o;l!==e&&(a?d=function(f,v){return o.call(this,Le(e,f),v,e)}:o.length>2&&(d=function(f,v){return o.call(this,f,v,e)}));const p=r.call(l,d,n);return a&&s?s(p):p}function as(e,t,o,n){const s=io(e),i=s!==e&&!xe(e);let l=o,a=!1;s!==e&&(i?(a=n.length===0,l=function(d,p,f){return a&&(a=!1,d=Le(e,d)),o.call(this,d,Le(e,p),f,e)}):o.length>3&&(l=function(d,p,f){return o.call(this,d,p,f,e)}));const r=s[t](l,...n);return a?Le(e,r):r}function on(e,t,o){const n=U(e);ae(n,"iterate",Lt);const s=n[t](...o);return(s===-1||s===!1)&&an(o[0])?(o[0]=U(o[0]),n[t](...o)):s}function Nt(e,t,o=[]){we(),Yo();const n=U(e)[t].apply(e,o);return Jo(),Se(),n}const vl=jo("__proto__,__v_isRef,__isVue"),rs=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(_e));function xl(e){_e(e)||(e=String(e));const t=U(this);return ae(t,"has",e),t.hasOwnProperty(e)}class cs{constructor(t=!1,o=!1){this._isReadonly=t,this._isShallow=o}get(t,o,n){if(o==="__v_skip")return t.__v_skip;const s=this._isReadonly,i=this._isShallow;if(o==="__v_isReactive")return!s;if(o==="__v_isReadonly")return s;if(o==="__v_isShallow")return i;if(o==="__v_raw")return n===(s?i?hs:gs:i?fs:us).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const l=T(t);if(!s){let r;if(l&&(r=ml[o]))return r;if(o==="hasOwnProperty")return xl}const a=Reflect.get(t,o,re(t)?t:n);if((_e(o)?rs.has(o):vl(o))||(s||ae(t,"get",o),i))return a;if(re(a)){const r=l&&Bo(o)?a:a.value;return s&&W(r)?ln(r):r}return W(a)?s?ln(a):sn(a):a}}class ps extends cs{constructor(t=!1){super(!1,t)}set(t,o,n,s){let i=t[o];const l=T(t)&&Bo(o);if(!this._isShallow){const d=Ye(i);if(!xe(n)&&!Ye(n)&&(i=U(i),n=U(n)),!l&&re(i)&&!re(n))return d||(i.value=n),!0}const a=l?Number(o)<t.length:D(t,o),r=Reflect.set(t,o,n,re(t)?t:s);return t===U(s)&&r&&(a?De(n,i)&&Ue(t,"set",o,n):Ue(t,"add",o,n)),r}deleteProperty(t,o){const n=D(t,o);t[o];const s=Reflect.deleteProperty(t,o);return s&&n&&Ue(t,"delete",o,void 0),s}has(t,o){const n=Reflect.has(t,o);return(!_e(o)||!rs.has(o))&&ae(t,"has",o),n}ownKeys(t){return ae(t,"iterate",T(t)?"length":Ze),Reflect.ownKeys(t)}}class ds extends cs{constructor(t=!1){super(!0,t)}set(t,o){return!0}deleteProperty(t,o){return!0}}const kl=new ps,yl=new ds,wl=new ps(!0),Sl=new ds(!0),nn=e=>e,lo=e=>Reflect.getPrototypeOf(e);function Ll(e,t,o){return function(...n){const s=this.__v_raw,i=U(s),l=Ge(i),a=e==="entries"||e===Symbol.iterator&&l,r=e==="keys"&&l,d=s[e](...n),p=o?nn:t?rt:We;return!t&&ae(i,"iterate",r?en:Ze),Q(Object.create(d),{next(){const{value:f,done:v}=d.next();return v?{value:f,done:v}:{value:a?[p(f[0]),p(f[1])]:p(f),done:v}}})}}function ao(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Nl(e,t){const o={get(s){const i=this.__v_raw,l=U(i),a=U(s);e||(De(s,a)&&ae(l,"get",s),ae(l,"get",a));const{has:r}=lo(l),d=t?nn:e?rt:We;if(r.call(l,s))return d(i.get(s));if(r.call(l,a))return d(i.get(a));i!==l&&i.get(s)},get size(){const s=this.__v_raw;return!e&&ae(U(s),"iterate",Ze),s.size},has(s){const i=this.__v_raw,l=U(i),a=U(s);return e||(De(s,a)&&ae(l,"has",s),ae(l,"has",a)),s===a?i.has(s):i.has(s)||i.has(a)},forEach(s,i){const l=this,a=l.__v_raw,r=U(a),d=t?nn:e?rt:We;return!e&&ae(r,"iterate",Ze),a.forEach((p,f)=>s.call(i,d(p),d(f),l))}};return Q(o,e?{add:ao("add"),set:ao("set"),delete:ao("delete"),clear:ao("clear")}:{add(s){const i=U(this),l=lo(i),a=U(s),r=!t&&!xe(s)&&!Ye(s)?a:s;return l.has.call(i,r)||De(s,r)&&l.has.call(i,s)||De(a,r)&&l.has.call(i,a)||(i.add(r),Ue(i,"add",r,r)),this},set(s,i){!t&&!xe(i)&&!Ye(i)&&(i=U(i));const l=U(this),{has:a,get:r}=lo(l);let d=a.call(l,s);d||(s=U(s),d=a.call(l,s));const p=r.call(l,s);return l.set(s,i),d?De(i,p)&&Ue(l,"set",s,i):Ue(l,"add",s,i),this},delete(s){const i=U(this),{has:l,get:a}=lo(i);let r=l.call(i,s);r||(s=U(s),r=l.call(i,s)),a&&a.call(i,s);const d=i.delete(s);return r&&Ue(i,"delete",s,void 0),d},clear(){const s=U(this),i=s.size!==0,l=s.clear();return i&&Ue(s,"clear",void 0,void 0),l}}),["keys","values","entries",Symbol.iterator].forEach(s=>{o[s]=Ll(s,e,t)}),o}function ro(e,t){const o=Nl(e,t);return(n,s,i)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?n:Reflect.get(D(o,s)&&s in n?o:n,s,i)}const Pl={get:ro(!1,!1)},Cl={get:ro(!1,!0)},El={get:ro(!0,!1)},Ml={get:ro(!0,!0)},us=new WeakMap,fs=new WeakMap,gs=new WeakMap,hs=new WeakMap;function Tl(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function sn(e){return Ye(e)?e:co(e,!1,kl,Pl,us)}function Al(e){return co(e,!1,wl,Cl,fs)}function ln(e){return co(e,!0,yl,El,gs)}function Id(e){return co(e,!0,Sl,Ml,hs)}function co(e,t,o,n,s){if(!W(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const i=s.get(e);if(i)return i;const l=Tl(il(e));if(l===0)return e;const a=new Proxy(e,l===2?n:o);return s.set(e,a),a}function Qe(e){return Ye(e)?Qe(e.__v_raw):!!(e&&e.__v_isReactive)}function Ye(e){return!!(e&&e.__v_isReadonly)}function xe(e){return!!(e&&e.__v_isShallow)}function an(e){return e?!!e.__v_raw:!1}function U(e){const t=e&&e.__v_raw;return t?U(t):e}function Ol(e){return!D(e,"__v_skip")&&Object.isExtensible(e)&&Bn(e,"__v_skip",!0),e}const We=e=>W(e)?sn(e):e,rt=e=>W(e)?ln(e):e;function re(e){return e?e.__v_isRef===!0:!1}function $s(e){return re(e)?e.value:e}const Fl={get:(e,t,o)=>t==="__v_raw"?e:$s(Reflect.get(e,t,o)),set:(e,t,o,n)=>{const s=e[t];return re(s)&&!re(o)?(s.value=o,!0):Reflect.set(e,t,o,n)}};function bs(e){return Qe(e)?e:new Proxy(e,Fl)}class Il{constructor(t,o,n){this.fn=t,this.setter=o,this._value=void 0,this.dep=new is(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=St-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!o,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&V!==this)return Qn(this,!0),!0}get value(){const t=this.dep.track();return os(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Hl(e,t,o=!1){let n,s;return O(e)?n=e:(n=e.get,s=e.set),new Il(n,s,o)}const po={},uo=new WeakMap;let et;function Dl(e,t=!1,o=et){if(o){let n=uo.get(o);n||uo.set(o,n=[]),n.push(e)}}function Ul(e,t,o=B){const{immediate:n,deep:s,once:i,scheduler:l,augmentJob:a,call:r}=o,d=M=>s?M:xe(M)||s===!1||s===0?je(M,1):je(M);let p,f,v,x,R=!1,F=!1;if(re(e)?(f=()=>e.value,R=xe(e)):Qe(e)?(f=()=>d(e),R=!0):T(e)?(F=!0,R=e.some(M=>Qe(M)||xe(M)),f=()=>e.map(M=>{if(re(M))return M.value;if(Qe(M))return d(M);if(O(M))return r?r(M,2):M()})):O(e)?t?f=r?()=>r(e,2):e:f=()=>{if(v){we();try{v()}finally{Se()}}const M=et;et=p;try{return r?r(e,3,[x]):e(x)}finally{et=M}}:f=ye,t&&s){const M=f,oe=s===!0?1/0:s;f=()=>je(M(),oe)}const ee=hl(),X=()=>{p.stop(),ee&&ee.active&&zo(ee.effects,p)};if(i&&t){const M=t;t=(...oe)=>{const Te=M(...oe);return X(),Te}}let H=F?new Array(e.length).fill(po):po;const j=M=>{if(!(!(p.flags&1)||!p.dirty&&!M))if(t){const oe=p.run();if(M||s||R||(F?oe.some((Te,Ae)=>De(Te,H[Ae])):De(oe,H))){v&&v();const Te=et;et=p;try{const Ae=[oe,H===po?void 0:F&&H[0]===po?[]:H,x];H=oe,r?r(t,3,Ae):t(...Ae)}finally{et=Te}}}else p.run()};return a&&a(j),p=new Xn(f),p.scheduler=l?()=>l(j,!1):j,x=M=>Dl(M,!1,p),v=p.onStop=()=>{const M=uo.get(p);if(M){if(r)r(M,4);else for(const oe of M)oe();uo.delete(p)}},t?n?j(!0):H=p.run():l?l(j.bind(null,!0),!0):p.run(),X.pause=p.pause.bind(p),X.resume=p.resume.bind(p),X.stop=X,X}function je(e,t=1/0,o){if(t<=0||!W(e)||e.__v_skip||(o=o||new Map,(o.get(e)||0)>=t))return e;if(o.set(e,t),t--,re(e))je(e.value,t,o);else if(T(e))for(let n=0;n<e.length;n++)je(e[n],t,o);else if(Zt(e)||Ge(e))e.forEach(n=>{je(n,t,o)});else if(Qt(e)){for(const n in e)je(e[n],t,o);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&je(e[n],t,o)}return e}/**
* @vue/runtime-core v3.5.42
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/const Pt=[];let rn=!1;function Hd(e,...t){if(rn)return;rn=!0,we();const o=Pt.length?Pt[Pt.length-1].component:null,n=o&&o.appContext.config.warnHandler,s=Rl();if(n)ct(n,o,11,[e+t.map(i=>{var l,a;return(a=(l=i.toString)==null?void 0:l.call(i))!=null?a:JSON.stringify(i)}).join(""),o&&o.proxy,s.map(({vnode:i})=>`at <${mi(o,i.type)}>`).join(`
`),s]);else{const i=[`[Vue warn]: ${e}`,...t];s.length&&i.push(`
`,...Wl(s)),console.warn(...i)}Se(),rn=!1}function Rl(){let e=Pt[Pt.length-1];if(!e)return[];const t=[];for(;e;){const o=t[0];o&&o.vnode===e?o.recurseCount++:t.push({vnode:e,recurseCount:0});const n=e.component&&e.component.parent;e=n&&n.vnode}return t}function Wl(e){const t=[];return e.forEach((o,n)=>{t.push(...n===0?[]:[`
`],...jl(o))}),t}function jl({vnode:e,recurseCount:t}){const o=t>0?`... (${t} recursive calls)`:"",n=e.component?e.component.parent==null:!1,s=` at <${mi(e.component,e.type,n)}`,i=">"+o;return e.props?[s,...zl(e.props),i]:[s+i]}function zl(e){const t=[],o=Object.keys(e);return o.slice(0,3).forEach(n=>{t.push(...ms(n,e[n]))}),o.length>3&&t.push(" ..."),t}function ms(e,t,o){return J(t)?(t=JSON.stringify(t),o?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?o?t:[`${e}=${t}`]:re(t)?(t=ms(e,U(t.value),!0),o?t:[`${e}=Ref<`,t,">"]):O(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=U(t),o?t:[`${e}=`,t])}function ct(e,t,o,n){try{return n?e(...n):e()}catch(s){fo(s,t,o)}}function ke(e,t,o,n){if(O(e)){const s=ct(e,t,o,n);return s&&jn(s)&&s.catch(i=>{fo(i,t,o)}),s}if(T(e)){const s=[];for(let i=0;i<e.length;i++)s.push(ke(e[i],t,o,n));return s}}function fo(e,t,o,n=!0){const s=t?t.vnode:null,{errorHandler:i,throwUnhandledErrorInProduction:l}=t&&t.appContext.config||B;if(t){let a=t.parent;const r=t.proxy,d=`https://vuejs.org/error-reference/#runtime-${o}`;for(;a;){const p=a.ec;if(p){for(let f=0;f<p.length;f++)if(p[f](e,r,d)===!1)return}a=a.parent}if(i){we(),ct(i,null,10,[e,r,d]),Se();return}}Bl(e,o,s,n,l)}function Bl(e,t,o,n=!0,s=!1){if(s)throw e;console.error(e)}const pe=[];let Ne=-1;const pt=[];let Je=null,dt=0;const _s=Promise.resolve();let go=null;function vs(e){const t=go||_s;return e?t.then(this?e.bind(this):e):t}function Kl(e){let t=Ne+1,o=pe.length;for(;t<o;){const n=t+o>>>1,s=pe[n],i=Ct(s);i<e||i===e&&s.flags&2?t=n+1:o=n}return t}function cn(e){if(!(e.flags&1)){const t=Ct(e),o=pe[pe.length-1];!o||!(e.flags&2)&&t>=Ct(o)?pe.push(e):pe.splice(Kl(t),0,e),e.flags|=1,xs()}}function xs(){go||(go=_s.then(ws))}function Vl(e){if(!T(e))Je&&e.id===-1?Je.splice(dt+1,0,e):e.flags&1||(pt.push(e),e.flags|=1);else for(let t=0;t<e.length;t++)pt.push(e[t]);xs()}function ks(e,t,o=Ne+1){for(;o<pe.length;o++){const n=pe[o];if(n&&n.flags&2){if(e&&n.id!==e.uid)continue;pe.splice(o,1),o--,n.flags&4&&(n.flags&=-2),n(),n.flags&4||(n.flags&=-2)}}}function ys(e){if(pt.length){const t=[...new Set(pt)].sort((o,n)=>Ct(o)-Ct(n));if(pt.length=0,Je){for(let o=0;o<t.length;o++)Je.push(t[o]);return}for(Je=t,dt=0;dt<Je.length;dt++){const o=Je[dt];o.flags&4&&(o.flags&=-2),o.flags&8||o(),o.flags&=-2}Je=null,dt=0}}const Ct=e=>e.id==null?e.flags&2?-1:1/0:e.id;function ws(e){try{for(Ne=0;Ne<pe.length;Ne++){const t=pe[Ne];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),ct(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;Ne<pe.length;Ne++){const t=pe[Ne];t&&(t.flags&=-2)}Ne=-1,pe.length=0,ys(),go=null,(pe.length||pt.length)&&ws()}}let ie=null,Ss=null;function ho(e){const t=ie;return ie=e,Ss=e&&e.type.__scopeId||null,t}function ut(e,t=ie,o){if(!t||e._n)return e;const n=(...s)=>{n._d&&ci(-1);const i=ho(t),l=Be.length;let a;try{a=e(...s)}finally{for(let r=Be.length;r>l;r--)yn();ho(i),n._d&&ci(1)}return a};return n._n=!0,n._c=!0,n._d=!0,n}function ft(e,t){if(ie===null)return e;const o=No(ie),n=e.dirs||(e.dirs=[]);for(let s=0;s<t.length;s++){let[i,l,a,r=B]=t[s];i&&(O(i)&&(i={mounted:i,updated:i}),i.deep&&je(l),n.push({dir:i,instance:o,value:l,oldValue:void 0,arg:a,modifiers:r}))}return e}function tt(e,t,o,n){const s=e.dirs,i=t&&t.dirs;for(let l=0;l<s.length;l++){const a=s[l];i&&(a.oldValue=i[l].value);let r=a.dir[n];r&&(we(),ke(r,o,8,[e.el,a,e,t]),Se())}}function ql(e,t){if(ce){let o=ce.provides;const n=ce.parent&&ce.parent.provides;n===o&&(o=ce.provides=Object.create(n)),o[e]=t}}function Et(e,t,o=!1){const n=ui();if(n||ht){let s=ht?ht._context.provides:n?n.parent==null||n.ce?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides:void 0;if(s&&e in s)return s[e];if(arguments.length>1)return o&&O(t)?t.call(n&&n.proxy):t}}const Gl=Symbol.for("v-scx"),Yl=()=>Et(Gl);function pn(e,t,o){return Ls(e,t,o)}function Ls(e,t,o=B){const{immediate:n,deep:s,flush:i,once:l}=o,a=Q({},o),r=t&&n||!t&&i!=="post";let d;if(Ut){if(i==="sync"){const x=Yl();d=x.__watcherHandles||(x.__watcherHandles=[])}else if(!r){const x=()=>{};return x.stop=ye,x.resume=ye,x.pause=ye,x}}const p=ce;a.call=(x,R,F)=>ke(x,p,R,F);let f=!1;i==="post"?a.scheduler=x=>{fe(x,p&&p.suspense)}:i!=="sync"&&(f=!0,a.scheduler=(x,R)=>{R?x():cn(x)}),a.augmentJob=x=>{t&&(x.flags|=4),f&&(x.flags|=2,p&&(x.id=p.uid,x.i=p))};const v=Ul(e,t,a);return Ut&&(d?d.push(v):r&&v()),v}function Jl(e,t,o){const n=this.proxy,s=J(e)?e.includes(".")?Ns(n,e):()=>n[e]:e.bind(n,n);let i;O(t)?i=t:(i=t.handler,o=t);const l=Dt(this),a=Ls(s,i.bind(n),o);return l(),a}function Ns(e,t){const o=t.split(".");return()=>{let n=e;for(let s=0;s<o.length&&n;s++)n=n[o[s]];return n}}const Xl=Symbol("_vte"),$o=e=>e.__isTeleport,dn=Symbol("_leaveCb");function Zl(e){let t=e[0];if(e.length>1){for(const o of e)if(o.type!==Ce){t=o;break}}return t}function Ps(e){if(!fn(e))return $o(e.type)&&e.children?Zl(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:o}=e;if(o){if(t&16)return o[0];if(t&32&&O(o.default))return o.default()}}function un(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const o=e.component.subTree;un($o(o.type)&&Ps(o)||o,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function bo(e,t){return O(e)?Q({name:e.name},t,{setup:e}):e}function Cs(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Es(e,t){let o;return!!((o=Object.getOwnPropertyDescriptor(e,t))&&!o.configurable)}const mo=new WeakMap;function Mt(e,t,o,n,s=!1){if(T(e)){e.forEach((F,ee)=>Mt(F,t&&(T(t)?t[ee]:t),o,n,s));return}if(gt(n)&&!s){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&Mt(e,t,o,n.component.subTree);return}const i=n.shapeFlag&4?No(n.component):n.el,l=s?null:i,{i:a,r}=e,d=t&&t.r,p=a.refs===B?a.refs={}:a.refs,f=a.setupState,v=U(f),x=f===B?Rn:F=>Es(p,F)?!1:D(v,F),R=(F,ee)=>!(ee&&Es(p,ee));if(d!=null&&d!==r){if(Ms(t),J(d))p[d]=null,x(d)&&(f[d]=null);else if(re(d)){const F=t;R(d,F.k)&&(d.value=null),F.k&&(p[F.k]=null)}}if(O(r))ct(r,a,12,[l,p]);else{const F=J(r),ee=re(r);if(F||ee){const X=()=>{if(e.f){const H=F?x(r)?f[r]:p[r]:R()||!e.k?r.value:p[e.k];if(s)T(H)&&zo(H,i);else if(T(H))H.includes(i)||H.push(i);else if(F)p[r]=[i],x(r)&&(f[r]=p[r]);else{const j=[i];R(r,e.k)&&(r.value=j),e.k&&(p[e.k]=j)}}else F?(p[r]=l,x(r)&&(f[r]=l)):ee&&(R(r,e.k)&&(r.value=l),e.k&&(p[e.k]=l))};if(l){const H=()=>{X(),mo.delete(e)};H.id=-1,mo.set(e,H),fe(H,o)}else Ms(e),X()}}}function Ms(e){const t=mo.get(e);t&&(t.flags|=8,mo.delete(e))}no().requestIdleCallback,no().cancelIdleCallback;const gt=e=>!!e.type.__asyncLoader,fn=e=>e.type.__isKeepAlive;function Ql(e,t){Ts(e,"a",t)}function ea(e,t){Ts(e,"da",t)}function Ts(e,t,o=ce){const n=e.__wdc||(e.__wdc=()=>{let s=o;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(_o(t,n,o),o){let s=o.parent;for(;s&&s.parent;)fn(s.parent.vnode)&&ta(n,t,o,s),s=s.parent}}function ta(e,t,o,n){const s=_o(t,e,n,!0);Os(()=>{zo(n[t],s)},o)}function _o(e,t,o=ce,n=!1){if(o){const s=o[e]||(o[e]=[]),i=t.__weh||(t.__weh=(...l)=>{we();const a=Dt(o),r=ke(t,o,e,l);return a(),Se(),r});return n?s.unshift(i):s.push(i),i}}const ze=e=>(t,o=ce)=>{(!Ut||e==="sp")&&_o(e,(...n)=>t(...n),o)},oa=ze("bm"),As=ze("m"),na=ze("bu"),sa=ze("u"),ia=ze("bum"),Os=ze("um"),la=ze("sp"),aa=ze("rtg"),ra=ze("rtc");function ca(e,t=ce){_o("ec",e,t)}const pa="components";function Fs(e,t){return ua(pa,e,!0,t)||e}const da=Symbol.for("v-ndc");function ua(e,t,o=!0,n=!1){const s=ie||ce;if(s){const i=s.type;{const a=bi(i,!1);if(a&&(a===t||a===ne(t)||a===to(ne(t))))return i}const l=Is(s[e]||i[e],t)||Is(s.appContext[e],t);return!l&&n?i:l}}function Is(e,t){return e&&(e[t]||e[ne(t)]||e[to(ne(t))])}function Pe(e,t,o,n){let s;const i=o,l=T(e);if(l||J(e)){const a=l&&Qe(e);let r=!1,d=!1;a&&(r=!xe(e),d=Ye(e),e=io(e)),s=new Array(e.length);for(let p=0,f=e.length;p<f;p++)s[p]=t(r?d?rt(We(e[p])):We(e[p]):e[p],p,void 0,i)}else if(typeof e=="number"){s=new Array(e);for(let a=0;a<e;a++)s[a]=t(a+1,a,void 0,i)}else if(W(e))if(e[Symbol.iterator])s=Array.from(e,(a,r)=>t(a,r,void 0,i));else{const a=Object.keys(e);s=new Array(a.length);for(let r=0,d=a.length;r<d;r++){const p=a[r];s[r]=t(e[p],p,r,i)}}else s=[];return s}function Tt(e,t,o,n,s,i){if(o==null&&(o={}),ie.ce||ie.parent&&gt(ie.parent)&&ie.parent.ce){const d=i!=null&&o.key==null?Q({},o,{key:i}):o,p=Object.keys(d).length>0;return t!=="default"&&(d.name=t),L(),yo(G,null,[me("slot",d,n)],p?-2:64)}let l=e[t];l&&l._c&&(l._d=!1);const a=Be.length;L();let r;try{const d=l&&Hs(l(o)),p=o.key||i||d&&d.key;r=yo(G,{key:(p&&!_e(p)?p:`_${t}`)+(!d&&n?"_fb":"")},d||(n?n():[]),d&&e._===1?64:-2)}catch(d){for(let p=Be.length;p>a;p--)yn();throw d}finally{l&&l._c&&(l._d=!0)}return r.scopeId&&(r.slotScopeIds=[r.scopeId+"-s"]),r}function Hs(e){return e.some(t=>wn(t)?!(t.type===Ce||t.type===G&&!Hs(t.children)):!0)?e:null}const gn=e=>e?gi(e)?No(e):gn(e.parent):null,At=Q(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=>gn(e.parent),$root:e=>gn(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ws(e),$forceUpdate:e=>e.f||(e.f=()=>{cn(e.update)}),$nextTick:e=>e.n||(e.n=vs.bind(e.proxy)),$watch:e=>Jl.bind(e)}),hn=(e,t)=>e!==B&&!e.__isScriptSetup&&D(e,t),fa={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:o,setupState:n,data:s,props:i,accessCache:l,type:a,appContext:r}=e;if(t[0]!=="$"){const v=l[t];if(v!==void 0)switch(v){case 1:return n[t];case 2:return s[t];case 4:return o[t];case 3:return i[t]}else{if(hn(n,t))return l[t]=1,n[t];if(s!==B&&D(s,t))return l[t]=2,s[t];if(D(i,t))return l[t]=3,i[t];if(o!==B&&D(o,t))return l[t]=4,o[t];$n&&(l[t]=0)}}const d=At[t];let p,f;if(d)return t==="$attrs"&&ae(e.attrs,"get",""),d(e);if((p=a.__cssModules)&&(p=p[t]))return p;if(o!==B&&D(o,t))return l[t]=4,o[t];if(f=r.config.globalProperties,D(f,t))return f[t]},set({_:e},t,o){const{data:n,setupState:s,ctx:i}=e;return hn(s,t)?(s[t]=o,!0):n!==B&&D(n,t)?(n[t]=o,!0):D(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=o,!0)},has({_:{data:e,setupState:t,accessCache:o,ctx:n,appContext:s,props:i,type:l}},a){let r;return!!(o[a]||e!==B&&a[0]!=="$"&&D(e,a)||hn(t,a)||D(i,a)||D(n,a)||D(At,a)||D(s.config.globalProperties,a)||(r=l.__cssModules)&&r[a])},defineProperty(e,t,o){return o.get!=null?e._.accessCache[t]=0:D(o,"value")&&this.set(e,t,o.value,null),Reflect.defineProperty(e,t,o)}};function Ds(e){return T(e)?e.reduce((t,o)=>(t[o]=null,t),{}):e}let $n=!0;function ga(e){const t=Ws(e),o=e.proxy,n=e.ctx;$n=!1,t.beforeCreate&&Us(t.beforeCreate,e,"bc");const{data:s,computed:i,methods:l,watch:a,provide:r,inject:d,created:p,beforeMount:f,mounted:v,beforeUpdate:x,updated:R,activated:F,deactivated:ee,beforeDestroy:X,beforeUnmount:H,destroyed:j,unmounted:M,render:oe,renderTracked:Te,renderTriggered:Ae,errorCaptured:Xe,serverPrefetch:Ho,expose:nt,inheritAttrs:Vt,components:Do,directives:Uo,filters:Dn}=t;if(d&&ha(d,n,null),l)for(const Z in l){const q=l[Z];O(q)&&(n[Z]=q.bind(o))}if(s){const Z=s.call(o,o);W(Z)&&(e.data=sn(Z))}if($n=!0,i)for(const Z in i){const q=i[Z],st=O(q)?q.bind(o,o):O(q.get)?q.get.bind(o,o):ye,Ro=!O(q)&&O(q.set)?q.set.bind(o):ye,it=Za({get:st,set:Ro});Object.defineProperty(n,Z,{enumerable:!0,configurable:!0,get:()=>it.value,set:Oe=>it.value=Oe})}if(a)for(const Z in a)Rs(a[Z],n,o,Z);if(r){const Z=O(r)?r.call(o):r;Reflect.ownKeys(Z).forEach(q=>{ql(q,Z[q])})}p&&Us(p,e,"c");function ue(Z,q){T(q)?q.forEach(st=>Z(st.bind(o))):q&&Z(q.bind(o))}if(ue(oa,f),ue(As,v),ue(na,x),ue(sa,R),ue(Ql,F),ue(ea,ee),ue(ca,Xe),ue(ra,Te),ue(aa,Ae),ue(ia,H),ue(Os,M),ue(la,Ho),T(nt))if(nt.length){const Z=e.exposed||(e.exposed={});nt.forEach(q=>{Object.defineProperty(Z,q,{get:()=>o[q],set:st=>o[q]=st,enumerable:!0})})}else e.exposed||(e.exposed={});oe&&e.render===ye&&(e.render=oe),Vt!=null&&(e.inheritAttrs=Vt),Do&&(e.components=Do),Uo&&(e.directives=Uo),Ho&&Cs(e)}function ha(e,t,o=ye){T(e)&&(e=bn(e));for(const n in e){const s=e[n];let i;W(s)?"default"in s?i=Et(s.from||n,s.default,!0):i=Et(s.from||n):i=Et(s),re(i)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>i.value,set:l=>i.value=l}):t[n]=i}}function Us(e,t,o){ke(T(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,o)}function Rs(e,t,o,n){let s=n.includes(".")?Ns(o,n):()=>o[n];if(J(e)){const i=t[e];O(i)&&pn(s,i)}else if(O(e))pn(s,e.bind(o));else if(W(e))if(T(e))e.forEach(i=>Rs(i,t,o,n));else{const i=O(e.handler)?e.handler.bind(o):t[e.handler];O(i)&&pn(s,i,e)}}function Ws(e){const t=e.type,{mixins:o,extends:n}=t,{mixins:s,optionsCache:i,config:{optionMergeStrategies:l}}=e.appContext,a=i.get(t);let r;return a?r=a:!s.length&&!o&&!n?r=t:(r={},s.length&&s.forEach(d=>vo(r,d,l,!0)),vo(r,t,l)),W(t)&&i.set(t,r),r}function vo(e,t,o,n=!1){const{mixins:s,extends:i}=t;i&&vo(e,i,o,!0),s&&s.forEach(l=>vo(e,l,o,!0));for(const l in t)if(!(n&&l==="expose")){const a=$a[l]||o&&o[l];e[l]=a?a(e[l],t[l]):t[l]}return e}const $a={data:js,props:zs,emits:zs,methods:Ot,computed:Ot,beforeCreate:de,created:de,beforeMount:de,mounted:de,beforeUpdate:de,updated:de,beforeDestroy:de,beforeUnmount:de,destroyed:de,unmounted:de,activated:de,deactivated:de,errorCaptured:de,serverPrefetch:de,components:Ot,directives:Ot,watch:ma,provide:js,inject:ba};function js(e,t){return t?e?function(){return Q(O(e)?e.call(this,this):e,O(t)?t.call(this,this):t)}:t:e}function ba(e,t){return Ot(bn(e),bn(t))}function bn(e){if(T(e)){const t={};for(let o=0;o<e.length;o++)t[e[o]]=e[o];return t}return e}function de(e,t){return e?[...new Set([].concat(e,t))]:t}function Ot(e,t){return e?Q(Object.create(null),e,t):t}function zs(e,t){return e?T(e)&&T(t)?[...new Set([...e,...t])]:Q(Object.create(null),Ds(e),Ds(t??{})):t}function ma(e,t){if(!e)return t;if(!t)return e;const o=Q(Object.create(null),e);for(const n in t)o[n]=de(e[n],t[n]);return o}function Bs(){return{app:null,config:{isNativeTag:Rn,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 _a=0;function va(e,t){return function(n,s=null){O(n)||(n=Q({},n)),s!=null&&!W(s)&&(s=null);const i=Bs(),l=new WeakSet,a=[];let r=!1;const d=i.app={_uid:_a++,_component:n,_props:s,_container:null,_context:i,_instance:null,version:Qa,get config(){return i.config},set config(p){},use(p,...f){return l.has(p)||(p&&O(p.install)?(l.add(p),p.install(d,...f)):O(p)&&(l.add(p),p(d,...f))),d},mixin(p){return i.mixins.includes(p)||i.mixins.push(p),d},component(p,f){return f?(i.components[p]=f,d):i.components[p]},directive(p,f){return f?(i.directives[p]=f,d):i.directives[p]},mount(p,f,v){if(!r){const x=d._ceVNode||me(n,s);return x.appContext=i,v===!0?v="svg":v===!1&&(v=void 0),e(x,p,v),r=!0,d._container=p,p.__vue_app__=d,No(x.component)}},onUnmount(p){a.push(p)},unmount(){r&&(ke(a,d._instance,16),e(null,d._container),delete d._container.__vue_app__)},provide(p,f){return i.provides[p]=f,d},runWithContext(p){const f=ht;ht=d;try{return p()}finally{ht=f}}};return d}}let ht=null;const xa=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${ne(t)}Modifiers`]||e[`${be(t)}Modifiers`];function ka(e,t,...o){if(e.isUnmounted)return;const n=e.vnode.props||B;let s=o;const i=t.startsWith("update:"),l=i&&xa(n,t.slice(7));l&&(l.trim&&(s=o.map(p=>J(p)?p.trim():p)),l.number&&(s=s.map(Vo)));let a,r=n[a=Ko(t)]||n[a=Ko(ne(t))];!r&&i&&(r=n[a=Ko(be(t))]),r&&ke(r,e,6,s);const d=n[a+"Once"];if(d){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,ke(d,e,6,s)}}const ya=new WeakMap;function Ks(e,t,o=!1){const n=o?ya:t.emitsCache,s=n.get(e);if(s!==void 0)return s;const i=e.emits;let l={},a=!1;if(!O(e)){const r=d=>{const p=Ks(d,t,!0);p&&(a=!0,Q(l,p))};!o&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}return!i&&!a?(W(e)&&n.set(e,null),null):(T(i)?i.forEach(r=>l[r]=null):Q(l,i),W(e)&&n.set(e,l),l)}function xo(e,t){return!e||!Jt(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 Dd(){}function Vs(e){const{type:t,vnode:o,proxy:n,withProxy:s,propsOptions:[i],slots:l,attrs:a,emit:r,render:d,renderCache:p,props:f,data:v,setupState:x,ctx:R,inheritAttrs:F}=e,ee=ho(e);let X,H;try{if(o.shapeFlag&4){const M=s||n,oe=M;X=Ee(d.call(oe,M,p,f,x,v,R)),H=a}else{const M=t;X=Ee(M.length>1?M(f,{attrs:a,slots:l,emit:r}):M(f,null)),H=t.props?a:wa(a)}}catch(M){Be.length=0,fo(M,e,1),X=me(Ce)}let j=X;if(H&&F!==!1){const M=Object.keys(H),{shapeFlag:oe}=j;M.length&&oe&7&&(i&&M.some(Xt)&&(H=Sa(H,i)),j=$t(j,H,!1,!0))}if(o.dirs&&(j=$t(j,null,!1,!0),j.dirs=j.dirs?j.dirs.concat(o.dirs):o.dirs),o.transition){const M=$o(j.type)&&Ps(j)||j;un(M,o.transition)}return X=j,ho(ee),X}const wa=e=>{let t;for(const o in e)(o==="class"||o==="style"||Jt(o))&&((t||(t={}))[o]=e[o]);return t},Sa=(e,t)=>{const o={};for(const n in e)(!Xt(n)||!(n.slice(9)in t))&&(o[n]=e[n]);return o};function La(e,t,o){const{props:n,children:s,component:i}=e,{props:l,children:a,patchFlag:r}=t,d=i.emitsOptions;if(t.dirs||t.transition)return!0;if(o&&r>=0){if(r&1024)return!0;if(r&16)return n?qs(n,l,d):!!l;if(r&8){const p=t.dynamicProps;for(let f=0;f<p.length;f++){const v=p[f];if(Gs(l,n,v)&&!xo(d,v))return!0}}}else return(s||a)&&(!a||!a.$stable)?!0:n===l?!1:n?l?qs(n,l,d):!0:!!l;return!1}function qs(e,t,o){const n=Object.keys(t);if(n.length!==Object.keys(e).length)return!0;for(let s=0;s<n.length;s++){const i=n[s];if(Gs(t,e,i)&&!xo(o,i))return!0}return!1}function Gs(e,t,o){const n=e[o],s=t[o];return o==="style"&&W(n)&&W(s)?!so(n,s):n!==s}function Na({vnode:e,parent:t,suspense:o},n){for(;t;){const s=t.subTree;if(s.suspense&&s.suspense.activeBranch===e&&(s.suspense.vnode.el=s.el=n,e=s),s===e)(e=t.vnode).el=n,t=t.parent;else break}o&&o.activeBranch===e&&(o.vnode.el=n)}const Ys={},Js=()=>Object.create(Ys),Xs=e=>Object.getPrototypeOf(e)===Ys;function Pa(e,t,o,n=!1){const s={},i=Js();e.propsDefaults=Object.create(null),Zs(e,t,s,i);for(const l in e.propsOptions[0])l in s||(s[l]=void 0);o?e.props=n?s:Al(s):e.type.props?e.props=s:e.props=i,e.attrs=i}function Ca(e,t,o,n){const{props:s,attrs:i,vnode:{patchFlag:l}}=e,a=U(s),[r]=e.propsOptions;let d=!1;if((n||l>0)&&!(l&16)){if(l&8){const p=e.vnode.dynamicProps;for(let f=0;f<p.length;f++){let v=p[f];if(xo(e.emitsOptions,v))continue;const x=t[v];if(r)if(D(i,v))x!==i[v]&&(i[v]=x,d=!0);else{const R=ne(v);s[R]=mn(r,a,R,x,e,!1)}else x!==i[v]&&(i[v]=x,d=!0)}}}else{Zs(e,t,s,i)&&(d=!0);let p;for(const f in a)(!t||!D(t,f)&&((p=be(f))===f||!D(t,p)))&&(r?o&&(o[f]!==void 0||o[p]!==void 0)&&(s[f]=mn(r,a,f,void 0,e,!0)):delete s[f]);if(i!==a)for(const f in i)(!t||!D(t,f))&&(delete i[f],d=!0)}d&&Ue(e.attrs,"set","")}function Zs(e,t,o,n){const[s,i]=e.propsOptions;let l=!1,a;if(t)for(let r in t){if(xt(r))continue;const d=t[r];let p;s&&D(s,p=ne(r))?!i||!i.includes(p)?o[p]=d:(a||(a={}))[p]=d:xo(e.emitsOptions,r)||(!(r in n)||d!==n[r])&&(n[r]=d,l=!0)}if(i){const r=U(o),d=a||B;for(let p=0;p<i.length;p++){const f=i[p];o[f]=mn(s,r,f,d[f],e,!D(d,f))}}return l}function mn(e,t,o,n,s,i){const l=e[o];if(l!=null){const a=D(l,"default");if(a&&n===void 0){const r=l.default;if(l.type!==Function&&!l.skipFactory&&O(r)){const{propsDefaults:d}=s;if(o in d)n=d[o];else{const p=Dt(s);n=d[o]=r.call(null,t),p()}}else n=r;s.ce&&s.ce._setProp(o,n)}l[0]&&(i&&!a?n=!1:l[1]&&(n===""||n===be(o))&&(n=!0))}return n}const Ea=new WeakMap;function Qs(e,t,o=!1){const n=o?Ea:t.propsCache,s=n.get(e);if(s)return s;const i=e.props,l={},a=[];let r=!1;if(!O(e)){const p=f=>{r=!0;const[v,x]=Qs(f,t,!0);Q(l,v),x&&a.push(...x)};!o&&t.mixins.length&&t.mixins.forEach(p),e.extends&&p(e.extends),e.mixins&&e.mixins.forEach(p)}if(!i&&!r)return W(e)&&n.set(e,lt),lt;if(T(i))for(let p=0;p<i.length;p++){const f=ne(i[p]);ei(f)&&(l[f]=B)}else if(i)for(const p in i){const f=ne(p);if(ei(f)){const v=i[p],x=l[f]=T(v)||O(v)?{type:v}:Q({},v),R=x.type;let F=!1,ee=!0;if(T(R))for(let X=0;X<R.length;++X){const H=R[X],j=O(H)&&H.name;if(j==="Boolean"){F=!0;break}else j==="String"&&(ee=!1)}else F=O(R)&&R.name==="Boolean";x[0]=F,x[1]=ee,(F||D(x,"default"))&&a.push(f)}}const d=[l,a];return W(e)&&n.set(e,d),d}function ei(e){return e[0]!=="$"&&!xt(e)}const _n=e=>e==="_"||e==="_ctx"||e==="$stable",vn=e=>T(e)?e.map(Ee):[Ee(e)],Ma=(e,t,o)=>{if(t._n)return t;const n=ut((...s)=>vn(t(...s)),o);return n._c=!1,n},ti=(e,t,o)=>{const n=e._ctx;for(const s in e){if(_n(s))continue;const i=e[s];if(O(i))t[s]=Ma(s,i,n);else if(i!=null){const l=vn(i);t[s]=()=>l}}},oi=(e,t)=>{const o=vn(t);e.slots.default=()=>o},ni=(e,t,o)=>{for(const n in t)(o||!_n(n))&&(e[n]=t[n])},Ta=(e,t,o)=>{const n=e.slots=Js();if(e.vnode.shapeFlag&32){const s=t._;s?(ni(n,t,o),o&&Bn(n,"_",s,!0)):ti(t,n)}else t&&oi(e,t)},Aa=(e,t,o)=>{const{vnode:n,slots:s}=e;let i=!0,l=B;if(n.shapeFlag&32){const a=t._;a?o&&a===1?i=!1:ni(s,t,o):(i=!t.$stable,ti(t,s)),l=t}else t&&(oi(e,t),l={default:1});if(i)for(const a in s)!_n(a)&&l[a]==null&&delete s[a]},fe=Da;function Oa(e){return Fa(e)}function Fa(e,t){const o=no();o.__VUE__=!0;const{insert:n,remove:s,patchProp:i,createElement:l,createText:a,createComment:r,setText:d,setElementText:p,parentNode:f,nextSibling:v,setScopeId:x=ye,insertStaticContent:R}=e,F=(c,u,g,m=null,b=null,h=null,w=void 0,y=null,k=!!u.dynamicChildren)=>{if(c===u)return;c&&!It(c,u)&&(m=Wo(c),Oe(c,b,h,!0),c=null),u.patchFlag===-2&&(k=!1,u.dynamicChildren=null);const{type:$,ref:E,shapeFlag:S}=u;switch($){case ko:ee(c,u,g,m);break;case Ce:X(c,u,g,m);break;case kn:c==null&&H(u,g,m,w);break;case G:Do(c,u,g,m,b,h,w,y,k);break;default:S&1?oe(c,u,g,m,b,h,w,y,k):S&6?Uo(c,u,g,m,b,h,w,y,k):(S&64||S&128)&&$.process(c,u,g,m,b,h,w,y,k,Gt)}E!=null&&b?Mt(E,c&&c.ref,h,u||c,!u):E==null&&c&&c.ref!=null&&Mt(c.ref,null,h,c,!0)},ee=(c,u,g,m)=>{if(c==null)n(u.el=a(u.children),g,m);else{const b=u.el=c.el;u.children!==c.children&&d(b,u.children)}},X=(c,u,g,m)=>{c==null?n(u.el=r(u.children||""),g,m):u.el=c.el},H=(c,u,g,m)=>{[c.el,c.anchor]=R(c.children,u,g,m,c.el,c.anchor)},j=({el:c,anchor:u},g,m)=>{let b;for(;c&&c!==u;)b=v(c),n(c,g,m),c=b;n(u,g,m)},M=({el:c,anchor:u})=>{let g;for(;c&&c!==u;)g=v(c),s(c),c=g;s(u)},oe=(c,u,g,m,b,h,w,y,k)=>{if(u.type==="svg"?w="svg":u.type==="math"&&(w="mathml"),c==null)Te(u,g,m,b,h,w,y,k);else{const $=c.el&&c.el._isVueCE?c.el:null;try{$&&$._beginPatch(),Ho(c,u,b,h,w,y,k)}finally{$&&$._endPatch()}}},Te=(c,u,g,m,b,h,w,y)=>{let k,$;const{props:E,shapeFlag:S,transition:C,dirs:A}=c;if(k=c.el=l(c.type,h,E&&E.is,E),S&8?p(k,c.children):S&16&&Xe(c.children,k,null,m,b,xn(c,h),w,y),A&&tt(c,null,m,"created"),Ae(k,c,c.scopeId,w,m),E){for(const K in E)K!=="value"&&!xt(K)&&i(k,K,null,E[K],h,m);"value"in E&&i(k,"value",null,E.value,h),($=E.onVnodeBeforeMount)&&Me($,m,c)}A&&tt(c,null,m,"beforeMount");const I=Ia(b,C);I&&C.beforeEnter(k),n(k,u,g),(($=E&&E.onVnodeMounted)||I||A)&&fe(()=>{try{$&&Me($,m,c),I&&C.enter(k),A&&tt(c,null,m,"mounted")}finally{}},b)},Ae=(c,u,g,m,b)=>{if(g&&x(c,g),m)for(let h=0;h<m.length;h++)x(c,m[h]);if(b){let h=b.subTree;if(u===h||ri(h.type)&&(h.ssContent===u||h.ssFallback===u)){const w=b.vnode;Ae(c,w,w.scopeId,w.slotScopeIds,b.parent)}}},Xe=(c,u,g,m,b,h,w,y,k=0)=>{for(let $=k;$<c.length;$++){const E=c[$]=y?Ve(c[$]):Ee(c[$]);F(null,E,u,g,m,b,h,w,y)}},Ho=(c,u,g,m,b,h,w)=>{const y=u.el=c.el;let{patchFlag:k,dynamicChildren:$,dirs:E}=u;k|=c.patchFlag&16;const S=c.props||B,C=u.props||B;let A;if(g&&ot(g,!1),(A=C.onVnodeBeforeUpdate)&&Me(A,g,u,c),E&&tt(u,c,g,"beforeUpdate"),g&&ot(g,!0),$&&(!c.dynamicChildren||c.dynamicChildren.length!==$.length)&&(k=0,w=!1,$=null),(S.innerHTML&&C.innerHTML==null||S.textContent&&C.textContent==null)&&p(y,""),$?nt(c.dynamicChildren,$,y,g,m,xn(u,b),h):w||q(c,u,y,null,g,m,xn(u,b),h,!1),k>0){if(k&16)Vt(y,S,C,g,b);else if(k&2&&S.class!==C.class&&i(y,"class",null,C.class,b),k&4&&i(y,"style",S.style,C.style,b),k&8){const I=u.dynamicProps;for(let K=0;K<I.length;K++){const z=I[K],te=S[z],le=C[z];(le!==te||z==="value")&&i(y,z,te,le,b,g)}}k&1&&c.children!==u.children&&p(y,u.children)}else!w&&$==null&&Vt(y,S,C,g,b);((A=C.onVnodeUpdated)||E)&&fe(()=>{A&&Me(A,g,u,c),E&&tt(u,c,g,"updated")},m)},nt=(c,u,g,m,b,h,w)=>{for(let y=0;y<u.length;y++){const k=c[y],$=u[y],E=k.el&&(k.type===G||!It(k,$)||k.shapeFlag&198)?f(k.el):g;F(k,$,E,null,m,b,h,w,!0)}},Vt=(c,u,g,m,b)=>{if(u!==g){if(u!==B)for(const h in u)!xt(h)&&!(h in g)&&i(c,h,u[h],null,b,m);for(const h in g){if(xt(h))continue;const w=g[h],y=u[h];w!==y&&h!=="value"&&i(c,h,y,w,b,m)}"value"in g&&i(c,"value",u.value,g.value,b)}},Do=(c,u,g,m,b,h,w,y,k)=>{const $=u.el=c?c.el:a(""),E=u.anchor=c?c.anchor:a("");let{patchFlag:S,dynamicChildren:C,slotScopeIds:A}=u;A&&(y=y?y.concat(A):A),c==null?(n($,g,m),n(E,g,m),Xe(u.children||[],g,E,b,h,w,y,k)):S>0&&S&64&&C&&c.dynamicChildren&&c.dynamicChildren.length===C.length?(nt(c.dynamicChildren,C,g,b,h,w,y),(u.key!=null||b&&u===b.subTree)&&si(c,u,!0)):q(c,u,g,E,b,h,w,y,k)},Uo=(c,u,g,m,b,h,w,y,k)=>{u.slotScopeIds=y,c==null?u.shapeFlag&512?b.ctx.activate(u,g,m,w,k):Dn(u,g,m,b,h,w,k):Zi(c,u,k)},Dn=(c,u,g,m,b,h,w)=>{const y=c.component=Ba(c,m,b);if(fn(c)&&(y.ctx.renderer=Gt),Ka(y,!1,w),y.asyncDep){if(b&&b.registerDep(y,ue,w),!c.el){const k=y.subTree=me(Ce);X(null,k,u,g),c.placeholder=k.el}}else ue(y,c,u,g,b,h,w)},Zi=(c,u,g)=>{const m=u.component=c.component;if(La(c,u,g))if(m.asyncDep&&!m.asyncResolved){Z(m,u,g);return}else m.next=u,m.update();else u.el=c.el,m.vnode=u},ue=(c,u,g,m,b,h,w)=>{const y=()=>{if(c.isMounted){let{next:S,bu:C,u:A,parent:I,vnode:K}=c;{const Ie=ii(c);if(Ie){S&&(S.el=K.el,Z(c,S,w)),Ie.asyncDep.then(()=>{fe(()=>{c.isUnmounted||$()},b)});return}}let z=S,te;ot(c,!1),S?(S.el=K.el,Z(c,S,w)):S=K,C&&oo(C),(te=S.props&&S.props.onVnodeBeforeUpdate)&&Me(te,I,S,K),ot(c,!0);const le=Vs(c),Fe=c.subTree;c.subTree=le,F(Fe,le,f(Fe.el),Wo(Fe),c,b,h),S.el=le.el,z===null&&Na(c,le.el),A&&fe(A,b),(te=S.props&&S.props.onVnodeUpdated)&&fe(()=>Me(te,I,S,K),b)}else{let S;const{el:C,props:A}=u,{bm:I,m:K,parent:z,root:te,type:le}=c,Fe=gt(u);ot(c,!1),I&&oo(I),!Fe&&(S=A&&A.onVnodeBeforeMount)&&Me(S,z,u),ot(c,!0);{te.ce&&te.ce._hasShadowRoot()&&te.ce._injectChildStyle(le,c.parent?c.parent.type:void 0);const Ie=c.subTree=Vs(c);F(null,Ie,g,m,c,b,h),u.el=Ie.el}if(K&&fe(K,b),!Fe&&(S=A&&A.onVnodeMounted)){const Ie=u;fe(()=>Me(S,z,Ie),b)}(u.shapeFlag&256||z&&gt(z.vnode)&&z.vnode.shapeFlag&256)&&c.a&&fe(c.a,b),c.isMounted=!0,u=g=m=null}};c.scope.on();const k=c.effect=new Xn(y);c.scope.off();const $=c.update=k.run.bind(k),E=c.job=k.runIfDirty.bind(k);E.i=c,E.id=c.uid,k.scheduler=()=>cn(E),ot(c,!0),$()},Z=(c,u,g)=>{u.component=c;const m=c.vnode.props;c.vnode=u,c.next=null,Ca(c,u.props,m,g),Aa(c,u.children,g),we(),ks(c),Se()},q=(c,u,g,m,b,h,w,y,k=!1)=>{const $=c&&c.children,E=c?c.shapeFlag:0,S=u.children,{patchFlag:C,shapeFlag:A}=u;if(C>0){if(C&128){Ro($,S,g,m,b,h,w,y,k);return}else if(C&256){st($,S,g,m,b,h,w,y,k);return}}A&8?(E&16&&qt($,b,h),S!==$&&p(g,S)):E&16?A&16?Ro($,S,g,m,b,h,w,y,k):qt($,b,h,!0):(E&8&&p(g,""),A&16&&Xe(S,g,m,b,h,w,y,k))},st=(c,u,g,m,b,h,w,y,k)=>{c=c||lt,u=u||lt;const $=c.length,E=u.length,S=Math.min($,E);let C;for(C=0;C<S;C++){const A=u[C]=k?Ve(u[C]):Ee(u[C]);F(c[C],A,g,null,b,h,w,y,k)}$>E?qt(c,b,h,!0,!1,S):Xe(u,g,m,b,h,w,y,k,S)},Ro=(c,u,g,m,b,h,w,y,k)=>{let $=0;const E=u.length;let S=c.length-1,C=E-1;for(;$<=S&&$<=C;){const A=c[$],I=u[$]=k?Ve(u[$]):Ee(u[$]);if(It(A,I))F(A,I,g,null,b,h,w,y,k);else break;$++}for(;$<=S&&$<=C;){const A=c[S],I=u[C]=k?Ve(u[C]):Ee(u[C]);if(It(A,I))F(A,I,g,null,b,h,w,y,k);else break;S--,C--}if($>S){if($<=C){const A=C+1,I=A<E?u[A].el:m;for(;$<=C;)F(null,u[$]=k?Ve(u[$]):Ee(u[$]),g,I,b,h,w,y,k),$++}}else if($>C)for(;$<=S;)Oe(c[$],b,h,!0),$++;else{const A=$,I=$,K=new Map;for($=I;$<=C;$++){const $e=u[$]=k?Ve(u[$]):Ee(u[$]);$e.key!=null&&K.set($e.key,$)}let z,te=0;const le=C-I+1;let Fe=!1,Ie=0;const Yt=new Array(le);for($=0;$<le;$++)Yt[$]=0;for($=A;$<=S;$++){const $e=c[$];if(te>=le){Oe($e,b,h,!0);continue}let He;if($e.key!=null)He=K.get($e.key);else for(z=I;z<=C;z++)if(Yt[z-I]===0&&It($e,u[z])){He=z;break}He===void 0?Oe($e,b,h,!0):(Yt[He-I]=$+1,He>=Ie?Ie=He:Fe=!0,F($e,u[He],g,null,b,h,w,y,k),te++)}const tl=Fe?Ha(Yt):lt;for(z=tl.length-1,$=le-1;$>=0;$--){const $e=I+$,He=u[$e],ol=u[$e+1],nl=$e+1<E?ol.el||ai(ol):m;Yt[$]===0?F(null,He,g,nl,b,h,w,y,k):Fe&&(z<0||$!==tl[z]?it(He,g,nl,2):z--)}}},it=(c,u,g,m,b=null)=>{const{el:h,type:w,transition:y,children:k,shapeFlag:$}=c;if($&6){it(c.component.subTree,u,g,m);return}if($&128){c.suspense.move(u,g,m);return}if($&64){w.move(c,u,g,Gt);return}if(w===G){n(h,u,g);for(let S=0;S<k.length;S++)it(k[S],u,g,m);n(c.anchor,u,g);return}if(w===kn){j(c,u,g);return}if(m!==2&&$&1&&y)if(m===0)y.persisted&&!h[dn]?n(h,u,g):(y.beforeEnter(h),n(h,u,g),fe(()=>y.enter(h),b));else{const{leave:S,delayLeave:C,afterLeave:A}=y,I=()=>{c.ctx.isUnmounted?s(h):n(h,u,g)},K=()=>{const z=h._isLeaving||!!h[dn];h._isLeaving&&h[dn](!0),y.persisted&&!z?I():S(h,()=>{I(),A&&A()})};C?C(h,I,K):K()}else n(h,u,g)},Oe=(c,u,g,m=!1,b=!1)=>{const{type:h,props:w,ref:y,children:k,dynamicChildren:$,shapeFlag:E,patchFlag:S,dirs:C,cacheIndex:A,memo:I}=c;if(S===-2&&(b=!1),y!=null&&(we(),Mt(y,null,g,c,!0),Se()),A!=null&&(u.renderCache[A]=void 0),E&256){u.ctx.deactivate(c);return}const K=E&1&&C,z=!gt(c);let te;if(z&&(te=w&&w.onVnodeBeforeUnmount)&&Me(te,u,c),E&6)Od(c.component,g,m);else{if(E&128){c.suspense.unmount(g,m);return}K&&tt(c,null,u,"beforeUnmount"),E&64?c.type.remove(c,u,g,Gt,m):$&&!$.hasOnce&&(h!==G||S>0&&S&64)?qt($,u,g,!1,!0):(h===G&&S&384||!b&&E&16)&&qt(k,u,g),m&&Qi(c)}const le=I!=null&&A==null;(z&&(te=w&&w.onVnodeUnmounted)||K||le)&&fe(()=>{te&&Me(te,u,c),K&&tt(c,null,u,"unmounted"),le&&(c.el=null)},g)},Qi=c=>{const{type:u,el:g,anchor:m,transition:b}=c;if(u===G){Ad(g,m);return}if(u===kn){M(c);return}const h=()=>{s(g),b&&!b.persisted&&b.afterLeave&&b.afterLeave()};if(c.shapeFlag&1&&b&&!b.persisted){const{leave:w,delayLeave:y}=b,k=()=>w(g,h);y?y(c.el,h,k):k()}else h()},Ad=(c,u)=>{let g;for(;c!==u;)g=v(c),s(c),c=g;s(u)},Od=(c,u,g)=>{const{bum:m,scope:b,job:h,subTree:w,um:y,m:k,a:$}=c;li(k),li($),m&&oo(m),b.stop(),h&&(h.flags|=8,Oe(w,c,u,g)),y&&fe(y,u),fe(()=>{c.isUnmounted=!0},u)},qt=(c,u,g,m=!1,b=!1,h=0)=>{for(let w=h;w<c.length;w++)Oe(c[w],u,g,m,b)},Wo=c=>{if(c.shapeFlag&6)return Wo(c.component.subTree);if(c.shapeFlag&128)return c.suspense.next();const u=v(c.anchor||c.el),g=u&&u[Xl];return g?v(g):u};let Un=!1;const el=(c,u,g)=>{let m;c==null?u._vnode&&(Oe(u._vnode,null,null,!0),m=u._vnode.component):F(u._vnode||null,c,u,null,null,null,g),u._vnode=c,Un||(Un=!0,ks(m),ys(),Un=!1)},Gt={p:F,um:Oe,m:it,r:Qi,mt:Dn,mc:Xe,pc:q,pbc:nt,n:Wo,o:e};return{render:el,hydrate:void 0,createApp:va(el)}}function xn({type:e,props:t},o){return o==="svg"&&e==="foreignObject"||o==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:o}function ot({effect:e,job:t},o){o?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ia(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function si(e,t,o=!1){const n=e.children,s=t.children;if(T(n)&&T(s))for(let i=0;i<n.length;i++){const l=n[i];let a=s[i];a.shapeFlag&1&&!a.dynamicChildren&&((a.patchFlag<=0||a.patchFlag===32)&&(a=s[i]=Ve(s[i]),a.el=l.el),!o&&a.patchFlag!==-2&&si(l,a)),a.type===ko&&(a.patchFlag===-1&&(a=s[i]=Ve(a)),a.el=l.el),a.type===Ce&&!a.el&&(a.el=l.el)}}function Ha(e){const t=e.slice(),o=[0];let n,s,i,l,a;const r=e.length;for(n=0;n<r;n++){const d=e[n];if(d!==0){if(s=o[o.length-1],e[s]<d){t[n]=s,o.push(n);continue}for(i=0,l=o.length-1;i<l;)a=i+l>>1,e[o[a]]<d?i=a+1:l=a;d<e[o[i]]&&(i>0&&(t[n]=o[i-1]),o[i]=n)}}for(i=o.length,l=o[i-1];i-- >0;)o[i]=l,l=t[l];return o}function ii(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:ii(t)}function li(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function ai(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?ai(t.subTree):null}const ri=e=>e.__isSuspense;function Da(e,t){t&&t.pendingBranch?T(e)?t.effects.push(...e):t.effects.push(e):Vl(e)}const G=Symbol.for("v-fgt"),ko=Symbol.for("v-txt"),Ce=Symbol.for("v-cmt"),kn=Symbol.for("v-stc"),Be=[];let he=null;function L(e=!1){Be.push(he=e?null:[])}function yn(){Be.pop(),he=Be[Be.length-1]||null}let Ft=1;function ci(e,t=!1){Ft+=e,e<0&&he&&t&&(he.hasOnce=!0)}function pi(e){return e.dynamicChildren=Ft>0?he||lt:null,yn(),Ft>0&&he&&he.push(e),e}function N(e,t,o,n,s,i){return pi(_(e,t,o,n,s,i,!0))}function yo(e,t,o,n,s){return pi(me(e,t,o,n,s,!0))}function wn(e){return e?e.__v_isVNode===!0:!1}function It(e,t){return e.type===t.type&&e.key===t.key}const di=({key:e})=>e??null,wo=({ref:e,ref_key:t,ref_for:o})=>(typeof e=="number"&&(e=""+e),e!=null?J(e)||re(e)||O(e)?{i:ie,r:e,k:t,f:!!o}:e:null);function _(e,t=null,o=null,n=0,s=null,i=e===G?0:1,l=!1,a=!1){const r={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&di(t),ref:t&&wo(t),scopeId:Ss,slotScopeIds:null,children:o,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:n,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:ie};return a?(So(r,o),i&128&&e.normalize(r)):o&&(r.shapeFlag|=J(o)?8:16),Ft>0&&!l&&he&&(r.patchFlag>0||i&6)&&r.patchFlag!==32&&he.push(r),r}const me=Ua;function Ua(e,t=null,o=null,n=0,s=null,i=!1){if((!e||e===da)&&(e=Ce),wn(e)){const a=$t(e,t,!0);return o&&So(a,o),Ft>0&&!i&&he&&(a.shapeFlag&6?he[he.indexOf(e)]=a:he.push(a)),a.patchFlag=-2,a}if(Xa(e)&&(e=e.__vccOpts),t){t=Ra(t);let{class:a,style:r}=t;a&&!J(a)&&(t.class=ge(a)),W(r)&&(an(r)&&!T(r)&&(r=Q({},r)),t.style=kt(r))}const l=J(e)?1:ri(e)?128:$o(e)?64:W(e)?4:O(e)?2:0;return _(e,t,o,n,s,l,i,!0)}function Ra(e){return e?an(e)||Xs(e)?Q({},e):e:null}function $t(e,t,o=!1,n=!1){const{props:s,ref:i,patchFlag:l,children:a,transition:r}=e,d=t?Wa(s||{},t):s,p={__v_isVNode:!0,__v_skip:!0,type:e.type,props:d,key:d&&di(d),ref:t&&t.ref?o&&i?T(i)?i.concat(wo(t)):[i,wo(t)]:wo(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==G?l===-1?16:l|16:l,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:r,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&$t(e.ssContent),ssFallback:e.ssFallback&&$t(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return r&&n&&un(p,r.clone(p)),p}function Ke(e=" ",t=0){return me(ko,null,e,t)}function Y(e="",t=!1){return t?(L(),yo(Ce,null,e)):me(Ce,null,e)}function Ee(e){return e==null||typeof e=="boolean"?me(Ce):T(e)?me(G,null,e.slice()):wn(e)?Ve(e):me(ko,null,String(e))}function Ve(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:$t(e)}function So(e,t){let o=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(T(t))o=16;else if(typeof t=="object")if(n&65){const s=t.default;s&&(s._c&&(s._d=!1),So(e,s()),s._c&&(s._d=!0));return}else{o=32;const s=t._;!s&&!Xs(t)?t._ctx=ie:s===3&&ie&&(ie.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(O(t)){if(n&65){So(e,{default:t});return}t={default:t,_ctx:ie},o=32}else t=String(t),n&64?(o=16,t=[Ke(t)]):o=8;e.children=t,e.shapeFlag|=o}function Wa(...e){const t={};for(let o=0;o<e.length;o++){const n=e[o];for(const s in n)if(s==="class")t.class!==n.class&&(t.class=ge([t.class,n.class]));else if(s==="style")t.style=kt([t.style,n.style]);else if(Jt(s)){const i=t[s],l=n[s];l&&i!==l&&!(T(i)&&i.includes(l))?t[s]=i?[].concat(i,l):l:l==null&&i==null&&!Xt(s)&&(t[s]=l)}else s!==""&&(t[s]=n[s])}return t}function Me(e,t,o,n=null){ke(e,t,7,[o,n])}const ja=Bs();let za=0;function Ba(e,t,o){const n=e.type,s=(t?t.appContext:e.appContext)||ja,i={uid:za++,vnode:e,type:n,parent:t,appContext:s,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new gl(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(s.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Qs(n,s),emitsOptions:Ks(n,s),emit:null,emitted:null,propsDefaults:B,inheritAttrs:n.inheritAttrs,ctx:B,data:B,props:B,attrs:B,slots:B,refs:B,setupState:B,setupContext:null,suspense:o,suspenseId:o?o.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=ka.bind(null,i),e.ce&&e.ce(i),i}let ce=null;const ui=()=>ce||ie;let Lo,Ht;{const e=no(),t=(o,n)=>{let s;return(s=e[o])||(s=e[o]=[]),s.push(n),i=>{s.length>1?s.forEach(l=>l(i)):s[0](i)}};Lo=t("__VUE_INSTANCE_SETTERS__",o=>ce=o),Ht=t("__VUE_SSR_SETTERS__",o=>Ut=o)}const Dt=e=>{const t=ce;return Lo(e),e.scope.on(),()=>{e.scope.off(),Lo(t)}},fi=()=>{ce&&ce.scope.off(),Lo(null)};function gi(e){return e.vnode.shapeFlag&4}let Ut=!1;function Ka(e,t=!1,o=!1){t&&Ht(t);const{props:n,children:s}=e.vnode,i=gi(e);Pa(e,n,i,t),Ta(e,s,o||t);const l=i?Va(e,t):void 0;return t&&Ht(!1),l}function Va(e,t){const o=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,fa);const{setup:n}=o;if(n){we();const s=e.setupContext=n.length>1?Ga(e):null,i=Dt(e),l=ct(n,e,0,[e.props,s]),a=jn(l);if(Se(),i(),(a||e.sp)&&!gt(e)&&Cs(e),a){if(l.then(fi,fi),t)return l.then(r=>{Ht(!0);try{hi(e,r,t)}finally{Ht(!1)}}).catch(r=>{fo(r,e,0)});e.asyncDep=l}else hi(e,l)}else $i(e)}function hi(e,t,o){O(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:W(t)&&(e.setupState=bs(t)),$i(e)}function $i(e,t,o){const n=e.type;e.render||(e.render=n.render||ye);{const s=Dt(e);we();try{ga(e)}finally{Se(),s()}}}const qa={get(e,t){return ae(e,"get",""),e[t]}};function Ga(e){const t=o=>{e.exposed=o||{}};return{attrs:new Proxy(e.attrs,qa),slots:e.slots,emit:e.emit,expose:t}}function No(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(bs(Ol(e.exposed)),{get(t,o){if(o in t)return t[o];if(o in At)return At[o](e)},has(t,o){return o in t||o in At}})):e.proxy}const Ya=/(?:^|[-_])\w/g,Ja=e=>e.replace(Ya,t=>t.toUpperCase()).replace(/[-_]/g,"");function bi(e,t=!0){return O(e)?e.displayName||e.name:e.name||t&&e.__name}function mi(e,t,o=!1){let n=bi(t);if(!n&&t.__file){const s=t.__file.match(/([^/\\]+)\.\w+$/);s&&(n=s[1])}if(!n&&e){const s=i=>{for(const l in i)if(i[l]===t)return l};n=s(e.components)||e.parent&&s(e.parent.type.components)||s(e.appContext.components)}return n?Ja(n):o?"App":"Anonymous"}function Xa(e){return O(e)&&"__vccOpts"in e}const Za=(e,t)=>Hl(e,t,Ut),Qa="3.5.42";/**
* @vue/runtime-dom v3.5.42
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/let Sn;const _i=typeof window<"u"&&window.trustedTypes;if(_i)try{Sn=_i.createPolicy("vue",{createHTML:e=>e})}catch{}const vi=Sn?e=>Sn.createHTML(e):e=>e,er="http://www.w3.org/2000/svg",tr="http://www.w3.org/1998/Math/MathML",qe=typeof document<"u"?document:null,xi=qe&&qe.createElement("template"),or={insert:(e,t,o)=>{t.insertBefore(e,o||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,o,n)=>{const s=t==="svg"?qe.createElementNS(er,e):t==="mathml"?qe.createElementNS(tr,e):o?qe.createElement(e,{is:o}):qe.createElement(e);return e==="select"&&n&&n.multiple!=null&&s.setAttribute("multiple",n.multiple),s},createText:e=>qe.createTextNode(e),createComment:e=>qe.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>qe.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,o,n,s,i){const l=o?o.previousSibling:t.lastChild;if(s&&(s===i||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),o),!(s===i||!(s=s.nextSibling)););else{xi.innerHTML=vi(n==="svg"?`<svg>${e}</svg>`:n==="mathml"?`<math>${e}</math>`:e);const a=xi.content;if(n==="svg"||n==="mathml"){const r=a.firstChild;for(;r.firstChild;)a.appendChild(r.firstChild);a.removeChild(r)}t.insertBefore(a,o)}return[l?l.nextSibling:t.firstChild,o?o.previousSibling:t.lastChild]}},nr=Symbol("_vtc");function sr(e,t,o){const n=e[nr];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):o?e.setAttribute("class",t):e.className=t}const Po=Symbol("_vod"),ki=Symbol("_vsh"),Ln={name:"show",beforeMount(e,{value:t},{transition:o}){e[Po]=e.style.display==="none"?"":e.style.display,o&&t?o.beforeEnter(e):Rt(e,t)},mounted(e,{value:t},{transition:o}){o&&t&&o.enter(e)},updated(e,{value:t,oldValue:o},{transition:n}){!t!=!o&&(n?t?(n.beforeEnter(e),Rt(e,!0),n.enter(e)):n.leave(e,()=>{Rt(e,!1)}):Rt(e,t))},beforeUnmount(e,{value:t}){Rt(e,t)}};function Rt(e,t){e.style.display=t?e[Po]:"none",e[ki]=!t}const ir=Symbol(""),lr=/(?:^|;)\s*display\s*:/;function ar(e,t,o){const n=e.style,s=J(o);let i=!1;if(o&&!s){if(t)if(J(t))for(const l of t.split(";")){const a=l.slice(0,l.indexOf(":")).trim();o[a]==null&&Wt(n,a,"")}else for(const l in t)o[l]==null&&Wt(n,l,"");for(const l in o){l==="display"&&(i=!0);const a=o[l];a!=null?cr(e,l,!J(t)&&t?t[l]:void 0,a)||Wt(n,l,a):Wt(n,l,"")}}else if(s){if(t!==o){const l=n[ir];l&&(o+=";"+l),n.cssText=o,i=lr.test(o)}}else t&&e.removeAttribute("style");Po in e&&(e[Po]=i?n.display:"",e[ki]&&(n.display="none"))}const Co=/\s*!important$/;function Wt(e,t,o){if(T(o))o.forEach(n=>Wt(e,t,n));else if(o==null&&(o=""),t.startsWith("--"))Co.test(o)?e.setProperty(t,o.replace(Co,""),"important"):e.setProperty(t,o);else{const n=rr(e,t);Co.test(o)?e.setProperty(be(n),o.replace(Co,""),"important"):e[n]=o}}const yi=["Webkit","Moz","ms"],Nn={};function rr(e,t){const o=Nn[t];if(o)return o;let n=ne(t);if(n!=="filter"&&n in e)return Nn[t]=n;n=to(n);for(let s=0;s<yi.length;s++){const i=yi[s]+n;if(i in e)return Nn[t]=i}return t}function cr(e,t,o,n){return e.tagName==="TEXTAREA"&&(t==="width"||t==="height")&&J(n)&&o===n}const wi="http://www.w3.org/1999/xlink";function Si(e,t,o,n,s,i=ul(t)){n&&t.startsWith("xlink:")?o==null?e.removeAttributeNS(wi,t.slice(6,t.length)):e.setAttributeNS(wi,t,o):o==null||i&&!qn(o)?e.removeAttribute(t):e.setAttribute(t,i?"":_e(o)?String(o):o)}function Li(e,t,o,n,s){if(t==="innerHTML"||t==="textContent"){o!=null&&(e[t]=t==="innerHTML"?vi(o):o);return}const i=e.tagName;if(t==="value"&&i!=="PROGRESS"&&!i.includes("-")){const a=i==="OPTION"?e.getAttribute("value")||"":e.value,r=o==null?e.type==="checkbox"?"on":"":String(o);(a!==r||!("_value"in e))&&(e.value=r),o==null&&e.removeAttribute(t),e._value=o;return}let l=!1;if(o===""||o==null){const a=typeof e[t];a==="boolean"?o=qn(o):o==null&&a==="string"?(o="",l=!0):a==="number"&&(o=0,l=!0)}try{e[t]=o}catch{}l&&e.removeAttribute(s||t)}function bt(e,t,o,n){e.addEventListener(t,o,n)}function pr(e,t,o,n){e.removeEventListener(t,o,n)}const Ni=Symbol("_vei");function dr(e,t,o,n,s=null){const i=e[Ni]||(e[Ni]={}),l=i[t];if(n&&l)l.value=n;else{const[a,r]=gr(t);if(n){const d=i[t]=br(n,s);bt(e,a,d,r)}else l&&(pr(e,a,l,r),i[t]=void 0)}}const ur=/(Once|Passive|Capture)$/,fr=/^on:?(?:Once|Passive|Capture)$/;function gr(e){let t,o;for(;(o=e.match(ur))&&!fr.test(e);)t||(t={}),e=e.slice(0,e.length-o[1].length),t[o[1].toLowerCase()]=!0;return[e[2]===":"?e.slice(3):be(e.slice(2)),t]}let Pn=0;const hr=Promise.resolve(),$r=()=>Pn||(hr.then(()=>Pn=0),Pn=Date.now());function br(e,t){const o=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=o.attached)return;const s=o.value;if(T(s)){const i=n.stopImmediatePropagation;n.stopImmediatePropagation=()=>{i.call(n),n._stopped=!0};const l=s.slice(),a=[n];for(let r=0;r<l.length&&!n._stopped;r++){const d=l[r];d&&ke(d,t,5,a)}}else ke(s,t,5,[n])};return o.value=e,o.attached=$r(),o}const Pi=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,mr=(e,t,o,n,s,i)=>{const l=s==="svg";t==="class"?sr(e,n,l):t==="style"?ar(e,o,n):Jt(t)?Xt(t)||dr(e,t,o,n,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):_r(e,t,n,l))?(Li(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Si(e,t,n,l,i,t!=="value")):e._isVueCE&&(vr(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!J(n)))?Li(e,ne(t),n,i,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),Si(e,t,n,l))};function _r(e,t,o,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Pi(t)&&O(o));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 s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return Pi(t)&&J(o)?!1:t in e}function vr(e,t){const o=e._def.props;if(!o)return!1;const n=ne(t);return Array.isArray(o)?o.some(s=>ne(s)===n):Object.keys(o).some(s=>ne(s)===n)}const Ci={};function xr(e,t,o){let n=bo(e,t);Qt(n)&&(n=Q({},n,t));class s extends Cn{constructor(l){super(n,l,o)}}return s.def=n,s}const kr=typeof HTMLElement<"u"?HTMLElement:class{};class Cn extends kr{constructor(t,o={},n=Fi){super(),this._def=t,this._props=o,this._createApp=n,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&&n!==Fi?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(Q({},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 Cn){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,vs(()=>{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 o of t)this._setAttr(o.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let n=0;n<this.attributes.length;n++)this._setAttr(this.attributes[n].name);this._ob=new MutationObserver(this._processMutations.bind(this)),this._ob.observe(this,{attributes:!0});const t=(n,s=!1)=>{this._resolved=!0,this._pendingResolve=void 0;const{props:i,styles:l}=n;let a;if(i&&!T(i))for(const r in i){const d=i[r];(d===Number||d&&d.type===Number)&&(r in this._props&&(this._props[r]=Kn(this._props[r])),(a||(a=Object.create(null)))[ne(r)]=!0)}this._numberProps=a,this._resolveProps(n),this.shadowRoot&&this._applyStyles(l),this._mount(n)},o=this._def.__asyncLoader;if(o)return this._pendingResolve=o().then(n=>{n.configureApp=this._def.configureApp,t(this._def=n,!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 o=this._instance&&this._instance.exposed;if(o)for(const n in o)D(this,n)||Object.defineProperty(this,n,{get:()=>$s(o[n])})}_resolveProps(t){const{props:o}=t,n=T(o)?o:Object.keys(o||{});for(const s of Object.keys(this))s[0]!=="_"&&n.includes(s)&&this._setProp(s,this[s]);for(const s of n.map(ne))Object.defineProperty(this,s,{get(){return this._getProp(s)},set(i){this._setProp(s,i,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const o=this.hasAttribute(t);let n=o?this.getAttribute(t):Ci;const s=ne(t);o&&this._numberProps&&this._numberProps[s]&&(n=Kn(n)),this._setProp(s,n,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,o,n=!0,s=!1){if(o!==this._props[t]&&(this._dirty=!0,o===Ci?delete this._props[t]:(this._props[t]=o,t==="key"&&this._app&&(this._app._ceVNode.key=o)),s&&this._instance&&this._update(),n)){const i=this._ob;i&&(this._processMutations(i.takeRecords()),i.disconnect()),o===!0?this.setAttribute(be(t),""):typeof o=="string"||typeof o=="number"?this.setAttribute(be(t),o+""):o||this.removeAttribute(be(t)),i&&i.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),Nr(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const o=me(this._def,Q(t,this._props));return this._instance||(o.ce=n=>{this._instance=n,n.ce=this,n.isCE=!0;const s=(i,l)=>{this.dispatchEvent(new CustomEvent(i,Qt(l[0])?Q({detail:l},l[0]):{detail:l}))};n.emit=(i,...l)=>{s(i,l),be(i)!==i&&s(be(i),l)},this._setParent()}),o}_applyStyles(t,o,n){if(!t)return;if(o){if(o===this._def||this._styleChildren.has(o))return;this._styleChildren.add(o)}const s=this._nonce,i=this.shadowRoot,l=n?this._getStyleAnchor(n)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(i);let a=null;for(let r=t.length-1;r>=0;r--){const d=document.createElement("style");s&&d.setAttribute("nonce",s),d.textContent=t[r],i.insertBefore(d,a||l),a=d,r===0&&(n||this._styleAnchors.set(this._def,d),o&&this._styleAnchors.set(o,d))}}_getStyleAnchor(t){if(!t)return null;const o=this._styleAnchors.get(t);return o&&o.parentNode===this.shadowRoot?o:(o&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let o=0;o<t.childNodes.length;o++){const n=t.childNodes[o];if(!(n instanceof HTMLStyleElement))return n}return null}_parseSlots(){const t=this._slots={};let o;for(;o=this.firstChild;){const n=o.nodeType===1&&o.getAttribute("slot")||"default";(t[n]||(t[n]=[])).push(o),this.removeChild(o)}}_renderSlots(){const t=this._getSlots(),o=this._instance.type.__scopeId;for(let n=0;n<t.length;n++){const s=t[n],i=s.getAttribute("name")||"default",l=this._slots[i],a=s.parentNode;if(l)for(const r of l){if(o&&r.nodeType===1){const d=o+"-s",p=document.createTreeWalker(r,1);r.setAttribute(d,"");let f;for(;f=p.nextNode();)f.setAttribute(d,"")}a.insertBefore(r,s)}else for(;s.firstChild;)a.insertBefore(s.firstChild,s);a.removeChild(s)}}_getSlots(){const t=[this];this._teleportTargets&&t.push(...this._teleportTargets);const o=new Set;for(const n of t){const s=n.querySelectorAll("slot");for(let i=0;i<s.length;i++)o.add(s[i])}return Array.from(o)}_injectChildStyle(t,o){this._applyStyles(t.styles,t,o)}_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 Ei=e=>{const t=e.props["onUpdate:modelValue"]||!1;return T(t)?o=>oo(t,o):t};function yr(e){e.target.composing=!0}function Mi(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Eo=Symbol("_assign"),Mo=Symbol("_initialValue");function En(e,t,o){return t&&(e=e.trim()),o&&(e=Vo(e)),e}const Mn={created(e,{modifiers:{lazy:t,trim:o,number:n}},s){e.parentNode&&(e.type==="text"?e[Mo]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Mo]=e.defaultValue.replace(/\r\n?/g,`
`))),e[Eo]=Ei(s);const i=n||s.props&&s.props.type==="number";bt(e,t?"change":"input",l=>{l.target.composing||e[Eo](En(e.value,o,i))}),(o||i)&&bt(e,"change",()=>{e.value=En(e.value,o,i)}),t||(bt(e,"compositionstart",yr),bt(e,"compositionend",Mi),bt(e,"change",Mi))},mounted(e,{value:t,modifiers:{trim:o,number:n}}){const s=t??"",i=e[Mo];delete e[Mo],i!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==i?e[Eo](En(e.value,o,n)):e.value=s},beforeUpdate(e,{value:t,oldValue:o,modifiers:{lazy:n,trim:s,number:i}},l){if(e[Eo]=Ei(l),e.composing)return;const a=(i||e.type==="number")&&!/^0\d/.test(e.value)?Vo(e.value):e.value,r=t??"";if(a===r)return;const d=e.getRootNode();(d instanceof Document||d instanceof ShadowRoot)&&d.activeElement===e&&e.type!=="range"&&(n&&t===o||s&&e.value.trim()===r)||(e.value=r)}},wr=["ctrl","shift","alt","meta"],Sr={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)=>wr.some(o=>e[`${o}Key`]&&!t.includes(o))},Ti=(e,t)=>{if(!e)return e;const o=e._withMods||(e._withMods={}),n=t.join(".");return o[n]||(o[n]=(s,...i)=>{for(let l=0;l<t.length;l++){const a=Sr[t[l]];if(a&&a(s,t))return}return e(s,...i)})},Lr=Q({patchProp:mr},or);let Ai;function Oi(){return Ai||(Ai=Oa(Lr))}const Nr=(...e)=>{Oi().render(...e)},Fi=(...e)=>{const t=Oi().createApp(...e),{mount:o}=t;return t.mount=n=>{const s=Cr(n);if(!s)return;const i=t._component;!O(i)&&!i.render&&!i.template&&(i.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const l=o(s,!1,Pr(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),l},t};function Pr(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Cr(e){return J(e)?document.querySelector(e):e}const Er={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:"مفرد",stageExperimental:"تجريبي","widget:rudder-voice/rudder-voice":"Rudder · تحويل الصوت إلى نص",toggleList:"إظهار القائمة أو إخفاؤها",openViews:"فتح قائمة العروض",expandList:"توسيع القائمة",collapseList:"طي القائمة",collapse:"طي",partOf:"جزء من {name}، غير منشور بمفرده",mapToken:"رمز الخريطة",mapboxToken:"رمز Mapbox",tokenPaste:"رمز Mapbox العام (pk.…)",tokenUrlLabel:"…أو رابط خدمة الرموز",tokenApply:"استخدام",tokenClear:"مسح",tokenStoredHere:"يُحفظ في هذا المتصفح فقط.",tokenSourceYours:"يُستخدم رمزك",tokenSourceUrl:"يُستخدم رمز من {url}",tokenSourceBuilt:"يُستخدم الرمز المضمَّن في هذه الصفحة",tokenSourceNone:"لا يوجد رمز Mapbox: لا يمكن تحميل خرائط Mapbox (خرائط MapLibre لا تحتاج رمزًا)",tokenSecret:"هذا رمز سري (sk.…). الصق رمزًا عامًا (pk.…): هذه الصفحة عامة.",tokenNotPk:"يبدأ رمز Mapbox العام بـ pk.",tokenUrlFailed:"تعذّر الحصول على رمز من هذا الرابط: {why}",settings:"الإعدادات",mapEngine:"محرّك الخرائط",engineDefault:"الافتراضي لكل خريطة",engineMapboxNote:"يحتاج إلى رمز",engineMaplibreNote:"لا يحتاج إلى رمز",tokenNotNeeded:"تم اختيار MapLibre: خرائطه لا تحتاج إلى رمز Mapbox",hideHeader:"إخفاء الشريط العلوي",showHeader:"إظهار الشريط العلوي",elementsCount:"{n} عناصر",elements:"عناصر"},Mr={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",stageExperimental:"Experimentell","widget:rudder-voice/rudder-voice":"Rudder · Sprache zu Text",toggleList:"Liste ein-/ausblenden",openViews:"Ansichtsliste öffnen",expandList:"Liste ausklappen",collapseList:"Liste einklappen",collapse:"Einklappen",partOf:"Teil von {name}, nicht eigenständig veröffentlicht",mapToken:"Karten-Token",mapboxToken:"Mapbox-Token",tokenPaste:"Öffentlicher Mapbox-Token (pk.…)",tokenUrlLabel:"…oder die URL eines Token-Dienstes",tokenApply:"Verwenden",tokenClear:"Löschen",tokenStoredHere:"Nur in diesem Browser gespeichert.",tokenSourceYours:"Ihr Token wird verwendet",tokenSourceUrl:"Token von {url} wird verwendet",tokenSourceBuilt:"Der in diese Seite eingebaute Token wird verwendet",tokenSourceNone:"Kein Mapbox-Token: Mapbox-Karten können nicht laden (MapLibre-Karten brauchen keinen)",tokenSecret:"Das ist ein geheimer Token (sk.…). Fügen Sie einen öffentlichen ein (pk.…): Diese Seite ist öffentlich.",tokenNotPk:"Ein öffentlicher Mapbox-Token beginnt mit pk.",tokenUrlFailed:"Von dieser URL kam kein Token: {why}",settings:"Einstellungen",mapEngine:"Karten-Engine",engineDefault:"Je Karte eigenes",engineMapboxNote:"braucht einen Token",engineMaplibreNote:"kein Token nötig",tokenNotNeeded:"MapLibre ist gewählt: Seine Karten brauchen keinen Mapbox-Token",hideHeader:"Kopfzeile ausblenden",showHeader:"Kopfzeile einblenden",elementsCount:"{n} Elemente",elements:"Elemente"},Tr={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",stageExperimental:"Experimental","widget:rudder-voice/rudder-voice":"Rudder · voice to text",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",mapToken:"Map token",mapboxToken:"Mapbox token",tokenPaste:"Mapbox public token (pk.…)",tokenUrlLabel:"…or the URL of a token service",tokenApply:"Use",tokenClear:"Clear",tokenStoredHere:"Kept in this browser only.",tokenSourceYours:"Using your token",tokenSourceUrl:"Using a token from {url}",tokenSourceBuilt:"Using the token built into this page",tokenSourceNone:"No Mapbox token: Mapbox maps cannot load (MapLibre maps need none)",tokenSecret:"That is a secret token (sk.…). Paste a public one (pk.…): this page is public.",tokenNotPk:"A Mapbox public token starts with pk.",tokenUrlFailed:"Could not get a token from that URL: {why}",settings:"Settings",mapEngine:"Map engine",engineDefault:"Each map’s own",engineMapboxNote:"needs a token",engineMaplibreNote:"no token needed",tokenNotNeeded:"MapLibre is selected: its maps need no Mapbox token",hideHeader:"Hide header",showHeader:"Show header",elementsCount:"{n} elements",elements:"elements"},Ar={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",stageExperimental:"Experimental","widget:rudder-voice/rudder-voice":"Rudder · voz a texto",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",mapToken:"Token del mapa",mapboxToken:"Token de Mapbox",tokenPaste:"Token público de Mapbox (pk.…)",tokenUrlLabel:"…o la URL de un servicio de tokens",tokenApply:"Usar",tokenClear:"Borrar",tokenStoredHere:"Se guarda solo en este navegador.",tokenSourceYours:"Usando tu token",tokenSourceUrl:"Usando un token de {url}",tokenSourceBuilt:"Usando el token integrado en esta página",tokenSourceNone:"Sin token de Mapbox: los mapas de Mapbox no cargan (los de MapLibre no lo necesitan)",tokenSecret:"Ese es un token secreto (sk.…). Pega uno público (pk.…): esta página es pública.",tokenNotPk:"Un token público de Mapbox empieza por pk.",tokenUrlFailed:"No se pudo obtener un token de esa URL: {why}",settings:"Ajustes",mapEngine:"Motor de mapas",engineDefault:"El de cada mapa",engineMapboxNote:"necesita un token",engineMaplibreNote:"no necesita token",tokenNotNeeded:"MapLibre está seleccionado: sus mapas no necesitan token de Mapbox",hideHeader:"Ocultar encabezado",showHeader:"Mostrar encabezado",elementsCount:"{n} elementos",elements:"elementos"},Or={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",stageExperimental:"Expérimental","widget:rudder-voice/rudder-voice":"Rudder · voix vers texte",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",mapToken:"Jeton de carte",mapboxToken:"Jeton Mapbox",tokenPaste:"Jeton public Mapbox (pk.…)",tokenUrlLabel:"…ou l’URL d’un service de jetons",tokenApply:"Utiliser",tokenClear:"Effacer",tokenStoredHere:"Conservé dans ce navigateur uniquement.",tokenSourceYours:"Votre jeton est utilisé",tokenSourceUrl:"Jeton obtenu de {url}",tokenSourceBuilt:"Jeton intégré à cette page",tokenSourceNone:"Aucun jeton Mapbox : les cartes Mapbox ne peuvent pas charger (MapLibre n’en a pas besoin)",tokenSecret:"C’est un jeton secret (sk.…). Collez un jeton public (pk.…) : cette page est publique.",tokenNotPk:"Un jeton public Mapbox commence par pk.",tokenUrlFailed:"Impossible d’obtenir un jeton depuis cette URL : {why}",settings:"Paramètres",mapEngine:"Moteur de carte",engineDefault:"Celui de chaque carte",engineMapboxNote:"nécessite un jeton",engineMaplibreNote:"aucun jeton requis",tokenNotNeeded:"MapLibre est sélectionné : ses cartes n’ont pas besoin de jeton Mapbox",hideHeader:"Masquer l'en-tête",showHeader:"Afficher l'en-tête",elementsCount:"{n} éléments",elements:"éléments"},Fr={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:"एकल",stageExperimental:"प्रायोगिक","widget:rudder-voice/rudder-voice":"Rudder · आवाज़ से टेक्स्ट",toggleList:"सूची दिखाएँ या छिपाएँ",openViews:"दृश्यों की सूची खोलें",expandList:"सूची फैलाएँ",collapseList:"सूची संक्षिप्त करें",collapse:"संक्षिप्त करें",partOf:"{name} का भाग, अलग से प्रकाशित नहीं",mapToken:"मानचित्र टोकन",mapboxToken:"Mapbox टोकन",tokenPaste:"Mapbox सार्वजनिक टोकन (pk.…)",tokenUrlLabel:"…या किसी टोकन सेवा का URL",tokenApply:"उपयोग करें",tokenClear:"साफ़ करें",tokenStoredHere:"केवल इसी ब्राउज़र में रखा जाता है।",tokenSourceYours:"आपका टोकन उपयोग हो रहा है",tokenSourceUrl:"{url} से टोकन उपयोग हो रहा है",tokenSourceBuilt:"इस पेज में बना टोकन उपयोग हो रहा है",tokenSourceNone:"कोई Mapbox टोकन नहीं: Mapbox मानचित्र लोड नहीं हो सकते (MapLibre को इसकी ज़रूरत नहीं)",tokenSecret:"यह एक गुप्त टोकन है (sk.…)। सार्वजनिक टोकन (pk.…) चिपकाएँ: यह पेज सार्वजनिक है।",tokenNotPk:"Mapbox सार्वजनिक टोकन pk. से शुरू होता है",tokenUrlFailed:"उस URL से टोकन नहीं मिल सका: {why}",settings:"सेटिंग्स",mapEngine:"मानचित्र इंजन",engineDefault:"हर मानचित्र का अपना",engineMapboxNote:"टोकन चाहिए",engineMaplibreNote:"टोकन की ज़रूरत नहीं",tokenNotNeeded:"MapLibre चुना गया है: इसके मानचित्रों को Mapbox टोकन नहीं चाहिए",hideHeader:"हेडर छिपाएँ",showHeader:"हेडर दिखाएँ",elementsCount:"{n} तत्व",elements:"तत्व"},Ir={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",stageExperimental:"Sperimentale","widget:rudder-voice/rudder-voice":"Rudder · voce in testo",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",mapToken:"Token mappa",mapboxToken:"Token Mapbox",tokenPaste:"Token pubblico Mapbox (pk.…)",tokenUrlLabel:"…o l’URL di un servizio di token",tokenApply:"Usa",tokenClear:"Cancella",tokenStoredHere:"Conservato solo in questo browser.",tokenSourceYours:"Uso il tuo token",tokenSourceUrl:"Uso un token da {url}",tokenSourceBuilt:"Uso il token integrato in questa pagina",tokenSourceNone:"Nessun token Mapbox: le mappe Mapbox non si caricano (MapLibre non ne ha bisogno)",tokenSecret:"Questo è un token segreto (sk.…). Incolla un token pubblico (pk.…): questa pagina è pubblica.",tokenNotPk:"Un token pubblico Mapbox inizia con pk.",tokenUrlFailed:"Impossibile ottenere un token da quell’URL: {why}",settings:"Impostazioni",mapEngine:"Motore mappe",engineDefault:"Quello di ogni mappa",engineMapboxNote:"richiede un token",engineMaplibreNote:"nessun token necessario",tokenNotNeeded:"MapLibre è selezionato: le sue mappe non richiedono un token Mapbox",hideHeader:"Nascondi intestazione",showHeader:"Mostra intestazione",elementsCount:"{n} elementi",elements:"elementi"},Hr={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",stageExperimental:"Experimental","widget:rudder-voice/rudder-voice":"Rudder · voz para texto",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",mapToken:"Token do mapa",mapboxToken:"Token do Mapbox",tokenPaste:"Token público do Mapbox (pk.…)",tokenUrlLabel:"…ou o URL de um serviço de tokens",tokenApply:"Usar",tokenClear:"Limpar",tokenStoredHere:"Guardado apenas neste navegador.",tokenSourceYours:"A usar o seu token",tokenSourceUrl:"A usar um token de {url}",tokenSourceBuilt:"A usar o token incorporado nesta página",tokenSourceNone:"Sem token do Mapbox: os mapas Mapbox não carregam (os MapLibre não precisam)",tokenSecret:"Esse é um token secreto (sk.…). Cole um público (pk.…): esta página é pública.",tokenNotPk:"Um token público do Mapbox começa por pk.",tokenUrlFailed:"Não foi possível obter um token desse URL: {why}",settings:"Definições",mapEngine:"Motor de mapas",engineDefault:"O de cada mapa",engineMapboxNote:"precisa de um token",engineMaplibreNote:"não precisa de token",tokenNotNeeded:"MapLibre está selecionado: os seus mapas não precisam de token do Mapbox",hideHeader:"Ocultar cabeçalho",showHeader:"Mostrar cabeçalho",elementsCount:"{n} elementos",elements:"elementos"},Dr={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",stageExperimental:"Experimental","widget:rudder-voice/rudder-voice":"Rudder · voce în text",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",mapToken:"Token hartă",mapboxToken:"Token Mapbox",tokenPaste:"Token public Mapbox (pk.…)",tokenUrlLabel:"…sau adresa URL a unui serviciu de tokenuri",tokenApply:"Folosește",tokenClear:"Șterge",tokenStoredHere:"Păstrat doar în acest browser.",tokenSourceYours:"Se folosește tokenul tău",tokenSourceUrl:"Se folosește un token de la {url}",tokenSourceBuilt:"Se folosește tokenul inclus în această pagină",tokenSourceNone:"Niciun token Mapbox: hărțile Mapbox nu se pot încărca (MapLibre nu are nevoie)",tokenSecret:"Acesta este un token secret (sk.…). Lipește unul public (pk.…): pagina este publică.",tokenNotPk:"Un token public Mapbox începe cu pk.",tokenUrlFailed:"Nu s-a putut obține un token de la acea adresă: {why}",settings:"Setări",mapEngine:"Motor hărți",engineDefault:"Al fiecărei hărți",engineMapboxNote:"necesită un token",engineMaplibreNote:"nu necesită token",tokenNotNeeded:"MapLibre este selectat: hărțile sale nu necesită token Mapbox",hideHeader:"Ascunde antetul",showHeader:"Afișează antetul",elementsCount:"{n} elemente",elements:"elemente"},Ur={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:"Одиночный",stageExperimental:"Экспериментальные","widget:rudder-voice/rudder-voice":"Rudder · голос в текст",toggleList:"Показать или скрыть список",openViews:"Открыть список представлений",expandList:"Развернуть список",collapseList:"Свернуть список",collapse:"Свернуть",partOf:"часть {name}, не публикуется отдельно",mapToken:"Токен карты",mapboxToken:"Токен Mapbox",tokenPaste:"Публичный токен Mapbox (pk.…)",tokenUrlLabel:"…или адрес службы токенов",tokenApply:"Применить",tokenClear:"Очистить",tokenStoredHere:"Хранится только в этом браузере.",tokenSourceYours:"Используется ваш токен",tokenSourceUrl:"Используется токен с {url}",tokenSourceBuilt:"Используется токен, встроенный в страницу",tokenSourceNone:"Нет токена Mapbox: карты Mapbox не загрузятся (MapLibre он не нужен)",tokenSecret:"Это секретный токен (sk.…). Вставьте публичный (pk.…): эта страница общедоступна.",tokenNotPk:"Публичный токен Mapbox начинается с pk.",tokenUrlFailed:"Не удалось получить токен по этому адресу: {why}",settings:"Настройки",mapEngine:"Движок карт",engineDefault:"Свой у каждой карты",engineMapboxNote:"нужен токен",engineMaplibreNote:"токен не нужен",tokenNotNeeded:"Выбран MapLibre: его картам не нужен токен Mapbox",hideHeader:"Скрыть заголовок",showHeader:"Показать заголовок",elementsCount:"{n} элементов",elements:"элементов"},Rr={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:"单一",stageExperimental:"实验性","widget:rudder-voice/rudder-voice":"Rudder · 语音转文字",toggleList:"显示或隐藏列表",openViews:"打开视图列表",expandList:"展开列表",collapseList:"折叠列表",collapse:"折叠",partOf:"{name} 的一部分,不单独发布",mapToken:"地图令牌",mapboxToken:"Mapbox 令牌",tokenPaste:"Mapbox 公开令牌 (pk.…)",tokenUrlLabel:"…或令牌服务的网址",tokenApply:"使用",tokenClear:"清除",tokenStoredHere:"仅保存在此浏览器中。",tokenSourceYours:"正在使用您的令牌",tokenSourceUrl:"正在使用来自 {url} 的令牌",tokenSourceBuilt:"正在使用此页面内置的令牌",tokenSourceNone:"没有 Mapbox 令牌:Mapbox 地图无法加载(MapLibre 地图不需要)",tokenSecret:"这是秘密令牌 (sk.…)。请粘贴公开令牌 (pk.…):此页面是公开的。",tokenNotPk:"Mapbox 公开令牌以 pk. 开头",tokenUrlFailed:"无法从该网址获取令牌:{why}",settings:"设置",mapEngine:"地图引擎",engineDefault:"各地图自身的",engineMapboxNote:"需要令牌",engineMaplibreNote:"无需令牌",tokenNotNeeded:"已选择 MapLibre:其地图无需 Mapbox 令牌",hideHeader:"隐藏标题栏",showHeader:"显示标题栏",elementsCount:"{n} 个元素",elements:"元素"};function Tn(e,t){const o=ui(),n=t||(o&&o.type&&o.type.__hmrId?"hmr-"+o.type.__hmrId:jr(e));As(()=>{var r;if(!o)return;const s=(r=o.proxy)==null?void 0:r.$el;if(!s)return;const i=s.getRootNode();if(!(i instanceof ShadowRoot))return;if(!i.querySelector('style[data-shadow-styles="reduced-motion"]')){const d=document.createElement("style");d.setAttribute("data-shadow-styles","reduced-motion"),d.textContent=Wr,i.appendChild(d)}const l=i.querySelector(`style[data-shadow-styles="${n}"]`);if(l){l.textContent!==e&&(l.textContent=e);return}const a=document.createElement("style");a.setAttribute("data-shadow-styles",n),a.textContent=e,i.appendChild(a)})}const Wr=`@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important;
}
}`;function jr(e){let t=0;for(let o=0;o<e.length;o++)t=(t<<5)-t+e.charCodeAt(o),t|=0;return"s"+Math.abs(t).toString(36)}const zr=Object.assign({"./locales/ar/grid.json":{search:"ابحث عن الشعوب…",hide_filters:"إخفاء عوامل التصفية",show_filters:"إظهار عوامل التصفية",total:"الإجمالي",showing:"المعروض",load_more:"عرض المزيد",full_profile:"الملف الكامل",wagf_region:"المنطقة",wagf_block:"كتلة التقارب",rop1:"الشعب",religion:"الدين",exact_filter:"تطابق تام",clear_all:"مسح الكل",loading:"جارٍ التحميل…",no_results:"لا توجد شعوب مطابقة لهذا التصفية.",type_to_search:"اكتب للبحث...",load_failed:"تعذّر تحميل بيانات الشعوب. هذه مشكلة اتصال، وليست مشكلة في التصفية.",search_people_or_countries:"ابحث عن الشعوب أو الدول…"},"./locales/ar/messages.json":{menuComingSoon:"القائمة قادمة قريباً",pinHint:{tapDot:"اضغط على نقطة ملوّنة — لا يزال هناك من يحتاج إلى الصلاة"},upg100WallHeading:"قائمتي UPG 100 — قوائم الصلاة والملصقات",upg100WallTag:"تعبئة للصلاة",upg100WallIntroA:"وزّع مهمة الصلاة في مجموعات من خمسين ومئة — كما أطعم يسوع الخمسة آلاف (لوقا ٩:١٤). كل ملصق هو قائمة من 100 يمكنك أن تصلي بها وتطبعها وتعلّقها على الحائط — مصلّيًا لأجلهم ",upg100WallIntroEmph:"باسم شعبهم",upg100WallIntroB:".",loadingNamed:"جارٍ تحميل {name}…",couldNotLoadNamed:"تعذّر تحميل {name}.",engineMissing:"لم يتم تحميل محرك الخرائط {engine}.",packetFailed:"فشل إنشاء الكُتيّب: {reason}",selectionPacketFailed:"فشل إنشاء كُتيّب التحديد: {reason}",posterOneTerritory:"الملصق يطبع منطقة واحدة في كل مرة — {count} محددة.",selectionPosterFailed:"فشل إنشاء ملصق التحديد: {reason}",mapUnavailable:"الخريطة غير متاحة",copied:"تم النسخ!",copyFailed:"فشل النسخ — اضغط Ctrl/Cmd-C",engineNotLoaded:"لم يتم تحميل محرك الخريطة",engineNotLoadedDetail:"لم يتم تحميل محرك الخريطة {engine}. القائمة ووسيلة الإيضاح غير متأثرتين."},"./locales/ar/poster.json":{export_poster:"تصدير الملصق",size:"الحجم",orientation:"الاتجاه",portrait:"طولي",landscape:"عرضي",dpi:"DPI",format:"الصيغة",png_raster:"PNG (نقطي)",pdf_raster:"PDF (نقطي على صفحة متجهية)",title:"العنوان",map_title:"عنوان الخريطة",subtitle:"العنوان الفرعي",slots:"العناصر",scale_bar:"شريط المقياس",north_arrow:"سهم الشمال",footer_attribution:"التذييل (الإسناد مطلوب)",cancel:"إلغاء",map_preview:"معاينة الخريطة",loading_snapshot:"جارٍ تحميل لقطة الخريطة…",preview_unavailable:"المعاينة غير متاحة"},"./locales/ar/search.json":{placeholder:"شعب، مكان، لغة، ديانة",placeholderNoPlaces:"شعب، لغة، ديانة (البحث عن الأماكن يتطلب رمز Mapbox)",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"},sections:{within:"ضمن {selection}",allData:"كل بيانات DOXA"},upg100Placeholder:"ابحث عن شعب أو قائمة UPG-100 أو منطقة…"},"./locales/de/grid.json":{search:"Volksgruppen suchen…",hide_filters:"Filter ausblenden",show_filters:"Filter anzeigen",total:"Gesamt",showing:"Angezeigt",load_more:"Mehr laden",full_profile:"Vollständiges Profil",wagf_region:"Region",wagf_block:"Affinitätsblock",rop1:"Volk",religion:"Religion",exact_filter:"Exakt",clear_all:"Alle löschen",loading:"Wird geladen…",no_results:"Keine Volksgruppen entsprechen diesem Filter.",type_to_search:"Zum Suchen tippen...",load_failed:"Die Daten konnten nicht geladen werden. Das ist ein Verbindungsproblem, nicht Ihr Filter.",search_people_or_countries:"Volksgruppen oder Länder suchen…"},"./locales/de/messages.json":{menuComingSoon:"Menü folgt in Kürze",pinHint:{tapDot:"Tippe auf einen farbigen Punkt — jemand braucht noch Gebet"},upg100WallHeading:"Meine UPG-100-Liste — Gebetslisten und Poster",upg100WallTag:"Gebetsmobilisierung",upg100WallIntroA:"Teilen Sie die Gebetsaufgabe in Gruppen zu fünfzig und hundert auf — so wie Jesus die 5.000 speiste (Lukas 9,14). Jedes Poster ist eine 100er-Liste, die Sie beten, drucken und an die Wand hängen können — und für sie ",upg100WallIntroEmph:"mit dem Namen ihrer Volksgruppe",upg100WallIntroB:" beten.",loadingNamed:"{name} wird geladen…",couldNotLoadNamed:"{name} konnte nicht geladen werden.",engineMissing:"Die Karten-Engine {engine} wurde nicht geladen.",packetFailed:"Heft fehlgeschlagen: {reason}",selectionPacketFailed:"Heft der Auswahl fehlgeschlagen: {reason}",posterOneTerritory:"Das Plakat druckt ein Gebiet auf einmal — {count} ausgewählt.",selectionPosterFailed:"Plakat der Auswahl fehlgeschlagen: {reason}",mapUnavailable:"Karte nicht verfügbar",copied:"Kopiert!",copyFailed:"Kopieren fehlgeschlagen — Strg/Cmd-C drücken",engineNotLoaded:"Karten-Engine nicht geladen",engineNotLoadedDetail:"Die Karten-Engine {engine} wurde nicht geladen. Liste und Legende sind nicht betroffen."},"./locales/de/poster.json":{export_poster:"Poster exportieren",size:"Größe",orientation:"Ausrichtung",portrait:"Hochformat",landscape:"Querformat",dpi:"DPI",format:"Format",png_raster:"PNG (Raster)",pdf_raster:"PDF (Raster auf Vektorseite)",title:"Titel",map_title:"Kartentitel",subtitle:"Untertitel",slots:"Elemente",scale_bar:"Maßstabsleiste",north_arrow:"Nordpfeil",footer_attribution:"Fußzeile (Quellenangabe erforderlich)",cancel:"Abbrechen",map_preview:"Kartenvorschau",loading_snapshot:"Kartenaufnahme wird geladen…",preview_unavailable:"Vorschau nicht verfügbar"},"./locales/de/search.json":{placeholder:"Volk, Ort, Sprache, Religion",placeholderNoPlaces:"Volk, Sprache, Religion (Ortssuche braucht ein Mapbox-Token)",labels:{people:"Volk:",place:"Ort:",language:"Sprache:",religion:"Religion:"},sections:{within:"Innerhalb {selection}",allData:"Alle DOXA-Daten"},kinds:{people:"Volk + Land",peopleGroup:"Volk",bloc:"Affinitätsblock",cluster:"Völkercluster",country:"Land",region:"Region",family:"Sprachfamilie",languageKind:"Sprache",dialect:"Dialekt",religionKind:"Religion"},upg100Placeholder:"Volksgruppe, UPG-100-Liste oder Region suchen…"},"./locales/en/grid.json":{search:"Search people groups…",hide_filters:"Hide Filters",show_filters:"Show Filters",total:"Total",showing:"Showing",load_more:"Load More",full_profile:"Full Profile",wagf_region:"Region",wagf_block:"Affinity Block",rop1:"People Group",religion:"Religion",exact_filter:"Exact",clear_all:"Clear All",loading:"Loading…",no_results:"No people groups match this filter.",type_to_search:"Type to search...",load_failed:"People-group data could not be loaded. This is a connection problem, not your filter.",search_people_or_countries:"Search people groups or countries…"},"./locales/en/messages.json":{menuComingSoon:"Menu coming soon",pinHint:{tapDot:"Tap a coloured dot — someone still needs prayer"},upg100WallHeading:"My UPG 100 List — Prayer Lists & Posters",upg100WallTag:"Prayer Mobilization",upg100WallIntroA:"Hand away the prayer task in clusters of fifties and hundreds — the way Jesus fed the 5,000 (Luke 9:14). Each poster is a 100-list you can pray, print, and put on a wall — praying for them ",upg100WallIntroEmph:"by their people group name",upg100WallIntroB:".",loadingNamed:"Loading {name}…",couldNotLoadNamed:"Could not load {name}.",engineMissing:"The {engine} map engine did not load.",packetFailed:"Packet failed: {reason}",selectionPacketFailed:"Selection packet failed: {reason}",posterOneTerritory:"Poster prints one territory at a time — {count} selected.",selectionPosterFailed:"Selection poster failed: {reason}",mapUnavailable:"Map unavailable",copied:"Copied!",copyFailed:"Copy failed — press Ctrl/Cmd-C",engineNotLoaded:"map engine not loaded",engineNotLoadedDetail:"The {engine} map engine did not load. The list and legend are unaffected."},"./locales/en/poster.json":{export_poster:"Export Poster",size:"Size",orientation:"Orientation",portrait:"Portrait",landscape:"Landscape",dpi:"DPI",format:"Format",png_raster:"PNG (raster)",pdf_raster:"PDF (raster on vector page)",title:"Title",map_title:"Map title",subtitle:"Subtitle",slots:"Slots",scale_bar:"Scale bar",north_arrow:"North arrow",footer_attribution:"Footer (attribution required)",cancel:"Cancel",map_preview:"map preview",loading_snapshot:"Loading map snapshot…",preview_unavailable:"preview unavailable"},"./locales/en/search.json":{placeholder:"People, place, language, religion",placeholderNoPlaces:"People, language, religion (place search needs a Mapbox token)",labels:{people:"People:",place:"Place:",language:"Language:",religion:"Religion:"},kinds:{people:"People Group + Country",peopleGroup:"People Group",bloc:"Affinity Block",cluster:"People Cluster",country:"Country",region:"Region",family:"Language Family",languageKind:"Language",dialect:"Dialect",religionKind:"Religion"},sections:{within:"Within {selection}",allData:"All DOXA Data"},upg100Placeholder:"Search people group, UPG-100 list, or region…"},"./locales/es/grid.json":{search:"Buscar pueblos…",hide_filters:"Ocultar filtros",show_filters:"Mostrar filtros",total:"Total",showing:"Mostrando",load_more:"Cargar más",full_profile:"Perfil completo",wagf_region:"Región",wagf_block:"Bloque de afinidad",rop1:"Pueblo",religion:"Religión",exact_filter:"Exacto",clear_all:"Borrar todo",loading:"Cargando…",no_results:"Ningún pueblo coincide con este filtro.",type_to_search:"Escribe para buscar...",load_failed:"No se pudieron cargar los datos de pueblos. Es un problema de conexión, no de tu filtro.",search_people_or_countries:"Buscar pueblos o países…"},"./locales/es/messages.json":{menuComingSoon:"Menú próximamente",pinHint:{tapDot:"Toca un punto de color: alguien todavía necesita oración"},upg100WallHeading:"Mi lista UPG 100 — Listas de oración y carteles",upg100WallTag:"Movilización de oración",upg100WallIntroA:"Reparte la tarea de la oración en grupos de cincuenta y de cien, como Jesús alimentó a los 5.000 (Lucas 9:14). Cada cartel es una lista de 100 que puedes orar, imprimir y poner en la pared — orando por ellos ",upg100WallIntroEmph:"por el nombre de su pueblo",upg100WallIntroB:".",loadingNamed:"Cargando {name}…",couldNotLoadNamed:"No se pudo cargar {name}.",engineMissing:"El motor de mapas {engine} no se cargó.",packetFailed:"Error al generar el cuadernillo: {reason}",selectionPacketFailed:"Error al generar el cuadernillo de la selección: {reason}",posterOneTerritory:"El cartel imprime un territorio a la vez: {count} seleccionados.",selectionPosterFailed:"Error al generar el cartel de la selección: {reason}",mapUnavailable:"Mapa no disponible",copied:"¡Copiado!",copyFailed:"Error al copiar: pulsa Ctrl/Cmd-C",engineNotLoaded:"motor de mapas no cargado",engineNotLoadedDetail:"El motor de mapas {engine} no se cargó. La lista y la leyenda no se ven afectadas."},"./locales/es/poster.json":{export_poster:"Exportar póster",size:"Tamaño",orientation:"Orientación",portrait:"Vertical",landscape:"Horizontal",dpi:"DPI",format:"Formato",png_raster:"PNG (ráster)",pdf_raster:"PDF (ráster en página vectorial)",title:"Título",map_title:"Título del mapa",subtitle:"Subtítulo",slots:"Elementos",scale_bar:"Barra de escala",north_arrow:"Flecha norte",footer_attribution:"Pie de página (atribución obligatoria)",cancel:"Cancelar",map_preview:"vista previa del mapa",loading_snapshot:"Cargando la captura del mapa…",preview_unavailable:"vista previa no disponible"},"./locales/es/search.json":{placeholder:"Pueblo, lugar, idioma, religión",placeholderNoPlaces:"Pueblo, idioma, religión (buscar lugares requiere un token de Mapbox)",labels:{people:"Pueblo:",place:"Lugar:",language:"Idioma:",religion:"Religión:"},kinds:{people:"Pueblo + país",peopleGroup:"Pueblo",bloc:"Bloque de afinidad",cluster:"Clúster de pueblos",country:"País",region:"Región",family:"Familia lingüística",languageKind:"Idioma",dialect:"Dialecto",religionKind:"Religión"},sections:{within:"Dentro de {selection}",allData:"Todos los datos DOXA"},upg100Placeholder:"Buscar pueblo, lista UPG-100 o región…"},"./locales/fr/grid.json":{search:"Rechercher des peuples…",hide_filters:"Masquer les filtres",show_filters:"Afficher les filtres",total:"Total",showing:"Affichage",load_more:"Charger plus",full_profile:"Profil complet",wagf_region:"Région",wagf_block:"Bloc d'affinité",rop1:"Peuple",religion:"Religion",exact_filter:"Exact",clear_all:"Tout effacer",loading:"Chargement…",no_results:"Aucun peuple ne correspond à ce filtre.",type_to_search:"Tapez pour rechercher...",load_failed:"Les données n’ont pas pu être chargées. C’est un problème de connexion, pas votre filtre.",search_people_or_countries:"Rechercher des peuples ou des pays…"},"./locales/fr/messages.json":{menuComingSoon:"Menu bientôt disponible",pinHint:{tapDot:"Touchez un point coloré — quelqu’un a encore besoin de prière"},upg100WallHeading:"Ma liste UPG 100 — Listes de prière et affiches",upg100WallTag:"Mobilisation pour la prière",upg100WallIntroA:"Répartissez la tâche de la prière par groupes de cinquante et de cent — comme Jésus a nourri les 5 000 (Luc 9:14). Chaque affiche est une liste de 100 que vous pouvez prier, imprimer et afficher au mur — en priant pour eux ",upg100WallIntroEmph:"par le nom de leur peuple",upg100WallIntroB:".",loadingNamed:"Chargement de {name}…",couldNotLoadNamed:"Impossible de charger {name}.",engineMissing:"Le moteur de carte {engine} ne s’est pas chargé.",packetFailed:"Échec du livret : {reason}",selectionPacketFailed:"Échec du livret de la sélection : {reason}",posterOneTerritory:"L’affiche imprime un territoire à la fois — {count} sélectionnés.",selectionPosterFailed:"Échec de l’affiche de la sélection : {reason}",mapUnavailable:"Carte indisponible",copied:"Copié !",copyFailed:"Échec de la copie — appuyez sur Ctrl/Cmd-C",engineNotLoaded:"moteur cartographique non chargé",engineNotLoadedDetail:"Le moteur cartographique {engine} ne s’est pas chargé. La liste et la légende ne sont pas affectées."},"./locales/fr/poster.json":{export_poster:"Exporter l'affiche",size:"Taille",orientation:"Orientation",portrait:"Portrait",landscape:"Paysage",dpi:"DPI",format:"Format",png_raster:"PNG (raster)",pdf_raster:"PDF (raster sur page vectorielle)",title:"Titre",map_title:"Titre de la carte",subtitle:"Sous-titre",slots:"Éléments",scale_bar:"Échelle",north_arrow:"Flèche du nord",footer_attribution:"Pied de page (attribution requise)",cancel:"Annuler",map_preview:"aperçu de la carte",loading_snapshot:"Chargement de l'instantané de la carte…",preview_unavailable:"aperçu indisponible"},"./locales/fr/search.json":{placeholder:"Peuple, lieu, langue, religion",placeholderNoPlaces:"Peuple, langue, religion (la recherche de lieux requiert un jeton Mapbox)",labels:{people:"Peuple :",place:"Lieu :",language:"Langue :",religion:"Religion :"},kinds:{people:"Peuple + pays",peopleGroup:"Peuple",bloc:"Bloc d'affinité",cluster:"Grappe de peuples",country:"Pays",region:"Région",family:"Famille linguistique",languageKind:"Langue",dialect:"Dialecte",religionKind:"Religion"},sections:{within:"Dans {selection}",allData:"Toutes les données DOXA"},upg100Placeholder:"Rechercher un peuple, une liste UPG-100 ou une région…"},"./locales/hi/grid.json":{search:"जनसमूह खोजें…",hide_filters:"फ़िल्टर छिपाएँ",show_filters:"फ़िल्टर दिखाएँ",total:"कुल",showing:"दिखा रहे हैं",load_more:"और देखें",full_profile:"पूरी प्रोफ़ाइल",wagf_region:"क्षेत्र",wagf_block:"समानता समूह",rop1:"जनसमूह",religion:"धर्म",exact_filter:"सटीक",clear_all:"सब हटाएँ",loading:"लोड हो रहा है…",no_results:"इस फ़िल्टर से कोई जनसमूह मेल नहीं खाता।",type_to_search:"खोजने के लिए लिखें...",load_failed:"जनसमूह डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, आपके फ़िल्टर की नहीं।",search_people_or_countries:"जनसमूह या देश खोजें…"},"./locales/hi/messages.json":{menuComingSoon:"मेनू शीघ्र आ रहा है",pinHint:{tapDot:"किसी रंगीन बिंदु पर टैप करें — किसी को अभी भी प्रार्थना की आवश्यकता है"},upg100WallHeading:"मेरी UPG 100 सूची — प्रार्थना सूचियाँ और पोस्टर",upg100WallTag:"प्रार्थना लामबंदी",upg100WallIntroA:"प्रार्थना के काम को पचास-पचास और सौ-सौ के समूहों में बाँटें — जैसे यीशु ने 5,000 लोगों को खिलाया (लूका 9:14)। हर पोस्टर 100 की एक सूची है जिसके लिए आप प्रार्थना कर सकते हैं, छाप सकते हैं और दीवार पर लगा सकते हैं — उनके लिए ",upg100WallIntroEmph:"उनके जनसमूह के नाम से",upg100WallIntroB:" प्रार्थना करते हुए।",loadingNamed:"{name} लोड हो रहा है…",couldNotLoadNamed:"{name} लोड नहीं हो सका।",engineMissing:"{engine} नक्शा इंजन लोड नहीं हुआ।",packetFailed:"पुस्तिका विफल: {reason}",selectionPacketFailed:"चयन की पुस्तिका विफल: {reason}",posterOneTerritory:"पोस्टर एक समय में एक क्षेत्र छापता है — {count} चयनित।",selectionPosterFailed:"चयन का पोस्टर विफल: {reason}",mapUnavailable:"मानचित्र अनुपलब्ध",copied:"कॉपी हो गया!",copyFailed:"कॉपी विफल — Ctrl/Cmd-C दबाएँ",engineNotLoaded:"मानचित्र इंजन लोड नहीं हुआ",engineNotLoadedDetail:"{engine} मानचित्र इंजन लोड नहीं हुआ। सूची और लेजेंड अप्रभावित हैं।"},"./locales/hi/poster.json":{export_poster:"पोस्टर निर्यात करें",size:"आकार",orientation:"अभिविन्यास",portrait:"पोर्ट्रेट",landscape:"लैंडस्केप",dpi:"DPI",format:"प्रारूप",png_raster:"PNG (रास्टर)",pdf_raster:"PDF (वेक्टर पृष्ठ पर रास्टर)",title:"शीर्षक",map_title:"मानचित्र शीर्षक",subtitle:"उपशीर्षक",slots:"स्लॉट",scale_bar:"स्केल बार",north_arrow:"उत्तर तीर",footer_attribution:"फ़ुटर (एट्रिब्यूशन आवश्यक)",cancel:"रद्द करें",map_preview:"मानचित्र पूर्वावलोकन",loading_snapshot:"मानचित्र स्नैपशॉट लोड हो रहा है…",preview_unavailable:"पूर्वावलोकन उपलब्ध नहीं"},"./locales/hi/search.json":{placeholder:"लोग, स्थान, भाषा, धर्म",placeholderNoPlaces:"लोग, भाषा, धर्म (स्थान खोज के लिए Mapbox टोकन चाहिए)",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"},sections:{within:"{selection} के भीतर",allData:"सभी DOXA डेटा"},kinds:{people:"जनसमूह + देश",peopleGroup:"जनसमूह",bloc:"समानता समूह",cluster:"जनसमूह क्लस्टर",country:"देश",region:"क्षेत्र",family:"भाषा परिवार",languageKind:"भाषा",dialect:"बोली",religionKind:"धर्म"},upg100Placeholder:"जनसमूह, UPG-100 सूची या क्षेत्र खोजें…"},"./locales/it/grid.json":{search:"Cerca popoli…",hide_filters:"Nascondi filtri",show_filters:"Mostra filtri",total:"Totale",showing:"Mostrati",load_more:"Carica altro",full_profile:"Profilo completo",wagf_region:"Regione",wagf_block:"Blocco di affinità",rop1:"Popolo",religion:"Religione",exact_filter:"Esatto",clear_all:"Cancella tutto",loading:"Caricamento…",no_results:"Nessun popolo corrisponde a questo filtro.",type_to_search:"Digita per cercare...",load_failed:"Impossibile caricare i dati dei popoli. È un problema di connessione, non del filtro.",search_people_or_countries:"Cerca popoli o paesi…"},"./locales/it/messages.json":{menuComingSoon:"Menu in arrivo",pinHint:{tapDot:"Tocca un punto colorato — qualcuno ha ancora bisogno di preghiera"},upg100WallHeading:"La mia lista UPG 100 — Liste di preghiera e poster",upg100WallTag:"Mobilitazione alla preghiera",upg100WallIntroA:"Distribuisci il compito della preghiera in gruppi di cinquanta e di cento — come Gesù sfamò i 5.000 (Luca 9:14). Ogni poster è una lista di 100 che puoi pregare, stampare e appendere al muro — pregando per loro ",upg100WallIntroEmph:"con il nome del loro popolo",upg100WallIntroB:".",loadingNamed:"Caricamento di {name}…",couldNotLoadNamed:"Impossibile caricare {name}.",engineMissing:"Il motore di mappa {engine} non è stato caricato.",packetFailed:"Libretto non riuscito: {reason}",selectionPacketFailed:"Libretto della selezione non riuscito: {reason}",posterOneTerritory:"Il manifesto stampa un territorio alla volta — {count} selezionati.",selectionPosterFailed:"Manifesto della selezione non riuscito: {reason}",mapUnavailable:"Mappa non disponibile",copied:"Copiato!",copyFailed:"Copia non riuscita — premi Ctrl/Cmd-C",engineNotLoaded:"motore di mappe non caricato",engineNotLoadedDetail:"Il motore di mappe {engine} non si è caricato. L’elenco e la legenda non sono interessati."},"./locales/it/poster.json":{export_poster:"Esporta poster",size:"Dimensione",orientation:"Orientamento",portrait:"Verticale",landscape:"Orizzontale",dpi:"DPI",format:"Formato",png_raster:"PNG (raster)",pdf_raster:"PDF (raster su pagina vettoriale)",title:"Titolo",map_title:"Titolo della mappa",subtitle:"Sottotitolo",slots:"Elementi",scale_bar:"Barra della scala",north_arrow:"Freccia nord",footer_attribution:"Piè di pagina (attribuzione obbligatoria)",cancel:"Annulla",map_preview:"anteprima della mappa",loading_snapshot:"Caricamento dell'istantanea della mappa…",preview_unavailable:"anteprima non disponibile"},"./locales/it/search.json":{placeholder:"Popolo, luogo, lingua, religione",placeholderNoPlaces:"Popolo, lingua, religione (la ricerca di luoghi richiede un token Mapbox)",labels:{people:"Popolo:",place:"Luogo:",language:"Lingua:",religion:"Religione:"},sections:{within:"In {selection}",allData:"Tutti i dati DOXA"},kinds:{people:"Popolo + paese",peopleGroup:"Popolo",bloc:"Blocco di affinità",cluster:"Cluster di popoli",country:"Paese",region:"Regione",family:"Famiglia linguistica",languageKind:"Lingua",dialect:"Dialetto",religionKind:"Religione"},upg100Placeholder:"Cerca popolo, elenco UPG-100 o regione…"},"./locales/pt/grid.json":{search:"Pesquisar povos…",hide_filters:"Ocultar filtros",show_filters:"Mostrar filtros",total:"Total",showing:"Mostrando",load_more:"Carregar mais",full_profile:"Perfil completo",wagf_region:"Região",wagf_block:"Bloco de afinidade",rop1:"Povo",religion:"Religião",exact_filter:"Exato",clear_all:"Limpar tudo",loading:"A carregar…",no_results:"Nenhum povo corresponde a este filtro.",type_to_search:"Escreva para pesquisar...",load_failed:"Não foi possível carregar os dados dos povos. É um problema de ligação, não do seu filtro.",search_people_or_countries:"Pesquisar povos ou países…"},"./locales/pt/messages.json":{menuComingSoon:"Menu em breve",pinHint:{tapDot:"Toque num ponto colorido — alguém ainda precisa de oração"},upg100WallHeading:"A minha lista UPG 100 — Listas de oração e cartazes",upg100WallTag:"Mobilização de oração",upg100WallIntroA:"Reparta a tarefa da oração em grupos de cinquenta e de cem — como Jesus alimentou os 5.000 (Lucas 9:14). Cada cartaz é uma lista de 100 que pode orar, imprimir e pôr na parede — orando por eles ",upg100WallIntroEmph:"pelo nome do seu povo",upg100WallIntroB:".",loadingNamed:"Carregando {name}…",couldNotLoadNamed:"Não foi possível carregar {name}.",engineMissing:"O motor de mapa {engine} não foi carregado.",packetFailed:"Falha ao gerar o caderno: {reason}",selectionPacketFailed:"Falha ao gerar o caderno da seleção: {reason}",posterOneTerritory:"O cartaz imprime um território de cada vez — {count} selecionados.",selectionPosterFailed:"Falha ao gerar o cartaz da seleção: {reason}",mapUnavailable:"Mapa indisponível",copied:"Copiado!",copyFailed:"Falha ao copiar — pressione Ctrl/Cmd-C",engineNotLoaded:"motor de mapas não carregado",engineNotLoadedDetail:"O motor de mapas {engine} não carregou. A lista e a legenda não são afetadas."},"./locales/pt/poster.json":{export_poster:"Exportar pôster",size:"Tamanho",orientation:"Orientação",portrait:"Retrato",landscape:"Paisagem",dpi:"DPI",format:"Formato",png_raster:"PNG (raster)",pdf_raster:"PDF (raster em página vetorial)",title:"Título",map_title:"Título do mapa",subtitle:"Subtítulo",slots:"Elementos",scale_bar:"Barra de escala",north_arrow:"Seta norte",footer_attribution:"Rodapé (atribuição obrigatória)",cancel:"Cancelar",map_preview:"pré-visualização do mapa",loading_snapshot:"Carregando o instantâneo do mapa…",preview_unavailable:"pré-visualização indisponível"},"./locales/pt/search.json":{placeholder:"Povo, local, língua, religião",placeholderNoPlaces:"Povo, língua, religião (a busca de locais requer um token do Mapbox)",labels:{people:"Povo:",place:"Local:",language:"Língua:",religion:"Religião:"},kinds:{people:"Povo + país",peopleGroup:"Povo",bloc:"Bloco de afinidade",cluster:"Agrupamento de povos",country:"País",region:"Região",family:"Família linguística",languageKind:"Idioma",dialect:"Dialeto",religionKind:"Religião"},sections:{within:"Dentro de {selection}",allData:"Todos os dados DOXA"},upg100Placeholder:"Procurar povo, lista UPG-100 ou região…"},"./locales/ro/grid.json":{search:"Caută popoare…",hide_filters:"Ascunde filtrele",show_filters:"Arată filtrele",total:"Total",showing:"Se afișează",load_more:"Încarcă mai mult",full_profile:"Profil complet",wagf_region:"Regiune",wagf_block:"Bloc de afinitate",rop1:"Popor",religion:"Religie",exact_filter:"Exact",clear_all:"Șterge tot",loading:"Se încarcă…",no_results:"Niciun popor nu corespunde acestui filtru.",type_to_search:"Scrie pentru a căuta...",load_failed:"Datele despre popoare nu au putut fi încărcate. Este o problemă de conexiune, nu a filtrului.",search_people_or_countries:"Caută popoare sau țări…"},"./locales/ro/messages.json":{menuComingSoon:"Meniu în curând",pinHint:{tapDot:"Atinge un punct colorat — cineva are încă nevoie de rugăciune"},upg100WallHeading:"Lista mea UPG 100 — Liste de rugăciune și afișe",upg100WallTag:"Mobilizare pentru rugăciune",upg100WallIntroA:"Împarte sarcina rugăciunii în grupuri de câte cincizeci și o sută — așa cum Isus a hrănit cei 5.000 (Luca 9:14). Fiecare afiș este o listă de 100 pe care o poți ruga, tipări și pune pe perete — rugându-te pentru ei ",upg100WallIntroEmph:"pe numele poporului lor",upg100WallIntroB:".",loadingNamed:"Se încarcă {name}…",couldNotLoadNamed:"Nu s-a putut încărca {name}.",engineMissing:"Motorul de hartă {engine} nu s-a încărcat.",packetFailed:"Broșura a eșuat: {reason}",selectionPacketFailed:"Broșura selecției a eșuat: {reason}",posterOneTerritory:"Afișul tipărește un teritoriu pe rând — {count} selectate.",selectionPosterFailed:"Afișul selecției a eșuat: {reason}",mapUnavailable:"Harta indisponibilă",copied:"Copiat!",copyFailed:"Copierea a eșuat — apasă Ctrl/Cmd-C",engineNotLoaded:"motorul de hărți nu s-a încărcat",engineNotLoadedDetail:"Motorul de hărți {engine} nu s-a încărcat. Lista și legenda nu sunt afectate."},"./locales/ro/poster.json":{export_poster:"Exportă posterul",size:"Dimensiune",orientation:"Orientare",portrait:"Portret",landscape:"Peisaj",dpi:"DPI",format:"Format",png_raster:"PNG (raster)",pdf_raster:"PDF (raster pe pagină vectorială)",title:"Titlu",map_title:"Titlul hărții",subtitle:"Subtitlu",slots:"Elemente",scale_bar:"Bară de scară",north_arrow:"Săgeata nord",footer_attribution:"Subsol (atribuire obligatorie)",cancel:"Anulează",map_preview:"previzualizare hartă",loading_snapshot:"Se încarcă instantaneul hărții…",preview_unavailable:"previzualizare indisponibilă"},"./locales/ro/search.json":{placeholder:"Popor, loc, limbă, religie",placeholderNoPlaces:"Popor, limbă, religie (căutarea locurilor necesită un token Mapbox)",labels:{people:"Popor:",place:"Loc:",language:"Limbă:",religion:"Religie:"},sections:{within:"În {selection}",allData:"Toate datele DOXA"},kinds:{people:"Popor + țară",peopleGroup:"Popor",bloc:"Bloc de afinitate",cluster:"Grup de popoare",country:"Țară",region:"Regiune",family:"Familie de limbi",languageKind:"Limbă",dialect:"Dialect",religionKind:"Religie"},upg100Placeholder:"Caută popor, listă UPG-100 sau regiune…"},"./locales/ru/grid.json":{search:"Поиск народов…",hide_filters:"Скрыть фильтры",show_filters:"Показать фильтры",total:"Всего",showing:"Показано",load_more:"Показать ещё",full_profile:"Полный профиль",wagf_region:"Регион",wagf_block:"Блок родства",rop1:"Народ",religion:"Религия",exact_filter:"Точное совпадение",clear_all:"Очистить всё",loading:"Загрузка…",no_results:"Нет народов, соответствующих этому фильтру.",type_to_search:"Введите для поиска...",load_failed:"Не удалось загрузить данные о народах. Это проблема соединения, а не фильтра.",search_people_or_countries:"Поиск народов или стран…"},"./locales/ru/messages.json":{menuComingSoon:"Меню скоро появится",pinHint:{tapDot:"Нажмите на цветную точку — кому-то всё ещё нужна молитва"},upg100WallHeading:"Мой список UPG 100 — молитвенные списки и плакаты",upg100WallTag:"Молитвенная мобилизация",upg100WallIntroA:"Разделите молитвенный труд на группы по пятьдесят и по сто — так Иисус накормил 5000 (Луки 9:14). Каждый плакат — это список из 100, о котором можно молиться, распечатать и повесить на стену, молясь о них ",upg100WallIntroEmph:"по имени их народа",upg100WallIntroB:".",loadingNamed:"Загрузка {name}…",couldNotLoadNamed:"Не удалось загрузить {name}.",engineMissing:"Картографический движок {engine} не загрузился.",packetFailed:"Не удалось создать буклет: {reason}",selectionPacketFailed:"Не удалось создать буклет выбора: {reason}",posterOneTerritory:"Плакат печатает по одной территории — выбрано {count}.",selectionPosterFailed:"Не удалось создать плакат выбора: {reason}",mapUnavailable:"Карта недоступна",copied:"Скопировано!",copyFailed:"Не удалось скопировать — нажмите Ctrl/Cmd-C",engineNotLoaded:"движок карты не загружен",engineNotLoadedDetail:"Движок карты {engine} не загрузился. Список и легенда не затронуты."},"./locales/ru/poster.json":{export_poster:"Экспорт плаката",size:"Размер",orientation:"Ориентация",portrait:"Портретная",landscape:"Альбомная",dpi:"DPI",format:"Формат",png_raster:"PNG (растр)",pdf_raster:"PDF (растр на векторной странице)",title:"Заголовок",map_title:"Заголовок карты",subtitle:"Подзаголовок",slots:"Элементы",scale_bar:"Масштабная линейка",north_arrow:"Указатель севера",footer_attribution:"Нижний колонтитул (указание источника обязательно)",cancel:"Отмена",map_preview:"предпросмотр карты",loading_snapshot:"Загрузка снимка карты…",preview_unavailable:"предпросмотр недоступен"},"./locales/ru/search.json":{placeholder:"Народ, место, язык, религия",placeholderNoPlaces:"Народ, язык, религия (для поиска мест нужен токен Mapbox)",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"},sections:{within:"В пределах {selection}",allData:"Все данные DOXA"},upg100Placeholder:"Поиск народа, списка UPG-100 или региона…"},"./locales/zh/grid.json":{search:"搜索民族…",hide_filters:"隐藏筛选",show_filters:"显示筛选",total:"总计",showing:"显示",load_more:"加载更多",full_profile:"完整档案",wagf_region:"区域",wagf_block:"亲缘板块",rop1:"民族",religion:"宗教",exact_filter:"精确",clear_all:"全部清除",loading:"加载中…",no_results:"没有符合此筛选条件的民族。",type_to_search:"输入以搜索...",load_failed:"无法加载民族数据。这是连接问题,而不是筛选问题。",search_people_or_countries:"搜索民族或国家…"},"./locales/zh/messages.json":{menuComingSoon:"菜单即将推出",pinHint:{tapDot:"点按一个彩色圆点——仍有人需要祷告"},upg100WallHeading:"我的 UPG 100 名單 — 禱告名單與海報",upg100WallTag:"禱告動員",upg100WallIntroA:"將禱告的工作分成五十人、一百人一組 — 就像耶穌餵飽五千人那樣(路加福音 9:14)。每一張海報都是一份 100 人名單,你可以為他們禱告、列印出來、貼在牆上 — ",upg100WallIntroEmph:"按著他們族群的名字",upg100WallIntroB:"為他們禱告。",loadingNamed:"正在加载{name}…",couldNotLoadNamed:"无法加载{name}。",engineMissing:"{engine} 地图引擎未能加载。",packetFailed:"祷告册生成失败:{reason}",selectionPacketFailed:"所选内容的祷告册生成失败:{reason}",posterOneTerritory:"海报一次只能打印一个区域——已选 {count} 个。",selectionPosterFailed:"所选内容的海报生成失败:{reason}",mapUnavailable:"地图不可用",copied:"已复制!",copyFailed:"复制失败——请按 Ctrl/Cmd-C",engineNotLoaded:"地图引擎未加载",engineNotLoadedDetail:"{engine} 地图引擎未能加载。列表和图例不受影响。"},"./locales/zh/poster.json":{export_poster:"导出海报",size:"尺寸",orientation:"方向",portrait:"纵向",landscape:"横向",dpi:"DPI",format:"格式",png_raster:"PNG(位图)",pdf_raster:"PDF(矢量页面上的位图)",title:"标题",map_title:"地图标题",subtitle:"副标题",slots:"元素",scale_bar:"比例尺",north_arrow:"指北针",footer_attribution:"页脚(必须署名)",cancel:"取消",map_preview:"地图预览",loading_snapshot:"正在加载地图快照…",preview_unavailable:"预览不可用"},"./locales/zh/search.json":{placeholder:"民族、地点、语言、宗教",placeholderNoPlaces:"民族、语言、宗教(地点搜索需要 Mapbox 令牌)",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"},sections:{within:"在 {selection} 之內",allData:"所有 DOXA 資料"},kinds:{people:"民族 + 国家",peopleGroup:"民族",bloc:"亲缘板块",cluster:"民族群",country:"国家",region:"区域",family:"语系",languageKind:"语言",dialect:"方言",religionKind:"宗教"},upg100Placeholder:"搜索民族、UPG-100 名单或区域…"}}),jt={};for(const[e,t]of Object.entries(zr)){const o=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!o)continue;const[,n,s]=o;jt[n]??(jt[n]={}),jt[n][s]=t}const Ii=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"];function Br(){try{const e=new URLSearchParams(window.location.search);return(e.get("lang")||e.get("locale")||"").split("-")[0].toLowerCase()}catch{return""}}function Kr(){var n;const e=Br();if(Ii.includes(e))return e;const o=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return Ii.includes(o)?o:"en"}const Vr="__DOXA_PAGE_LOCALE";function qr(){try{return typeof window<"u"&&window[Vr]||""}catch{return""}}function Gr(e,t){const o=s=>{let i=jt[s];for(const l of String(e).split(".")){if(!i||typeof i!="object")return;i=i[l]}return typeof i=="string"?i:void 0},n=qr()||Kr();return o(n)??o("en")}const Hi={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"/>',folder:'<path d="M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/>',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 Di(e,t=""){const o=Hi[e]||Hi.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">${o}</svg>`}const Yr=".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}}",An=(e,t)=>{const o=e.__vccOpts||e;for(const[n,s]of t)o[n]=s;return o},Jr=(e,t)=>Gr(e)||t,zt={};function Xr(e){return e?(zt[e]||(zt[e]=new Promise((t,o)=>{const n=document.createElement("script");n.src=e,n.onload=()=>t(),n.onerror=()=>{delete zt[e],o(new Error("failed to load "+e))},document.head.appendChild(n)})),zt[e]):Promise.resolve()}function Zr(e,t=5e3){return typeof customElements>"u"||customElements.get(e)?Promise.resolve():customElements.whenDefined?Promise.race([customElements.whenDefined(e),new Promise((o,n)=>setTimeout(()=>n(new Error("timeout waiting for <"+e+">")),t))]):Promise.resolve()}const Qr=`
.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; }
.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:#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; }
.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; }
.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; }
.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; inset: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; 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); }
.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) {
.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 rgba(0,0,0,.55); transform:translateX(-100%); }
.vtl.nav-open .vtl-nav { transform:translateX(0); z-index:1000; }
.vtl-main { left:0; }
.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; }
}
.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; }
}
`,ec=bo({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(){return Tn(Qr,"vertical-tabs-layout"),{T:Jr}},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 o of t.rows||[])e.push(o);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(o=>o.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(n=>n.key===e),o=this._hostSlots[e];!t||!o||(this._hostMounted[e]=!0,this.hostState={...this.hostState,[e]:"loading"},Xr(t.src).then(()=>Zr(t.element)).then(()=>{o.innerHTML="";const n=document.createElement(t.element),s=t.attrs||{};for(const i in s){const l=s[i],a=l!=null&&typeof l=="object"?JSON.stringify(l):String(l);try{n[i]=l}catch{}try{n.setAttribute(i,a)}catch{}}n.style.cssText="display:block;position:absolute;inset:0;width:100%;height:100%;",o.appendChild(n),this.hostState={...this.hostState,[e]:"ready"}}).catch(n=>{this._hostMounted[e]=!1,this.hostState={...this.hostState,[e]:"error"},this.hostError={...this.hostError,[e]:n&&n.message||String(n)}}))},iconSvg(e){return e?Di(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],o=(this.groups||[]).find(s=>s.key===e),n=t??(o&&o.open===!0);this.folderOverride={...this.folderOverride,[e]:!n}},pick(e){this.$emit("update:active",e),this.narrow&&(this.navOpen=!1)},onKey(e){const t=this.orderedKeys;if(!t.length)return;const o=t.indexOf(this.active);let n=-1;if(e.key==="ArrowDown"||e.key==="ArrowRight")n=(o+1)%t.length;else if(e.key==="ArrowUp"||e.key==="ArrowLeft")n=(o-1+t.length)%t.length;else if(e.key==="Home")n=0;else if(e.key==="End")n=t.length-1;else return;e.preventDefault();const s=t[n];this.pick(s),this.$nextTick(()=>{const i=this._tabEls[s];i&&i.focus&&i.focus()})}}}),tc={key:0,class:"vtl-top"},oc=["aria-expanded","aria-label"],nc={class:"vtl-brand"},sc={class:"vtl-title"},ic={class:"vtl-meta"},lc=["aria-expanded","aria-label"],ac={class:"vtl-body"},rc=["aria-label","aria-hidden","role","aria-orientation"],cc=["aria-expanded","aria-label"],pc=["innerHTML"],dc={class:"vtl-collapse-tx"},uc=["aria-expanded","onClick"],fc={key:0,class:"vtl-cap"},gc={class:"vtl-tl"},hc={key:1,class:"vtl-td"},$c=["innerHTML"],bc={key:1,class:"vtl-tier"},mc={key:0,class:"vtl-cap"},_c={class:"vtl-tl"},vc={key:1,class:"vtl-td"},xc={class:"vtl-rows"},kc=["aria-selected","tabindex","onClick"],yc=["innerHTML"],wc={key:1,class:"vtl-tab-emoji","aria-hidden":"true"},Sc={key:2,class:"vtl-tab-fallback","aria-hidden":"true"},Lc={class:"vtl-tab-text"},Nc={class:"vtl-tab-label"},Pc={key:0,class:"vtl-tab-badge"},Cc={key:0,class:"vtl-tab-sub"},Ec=["innerHTML"],Mc=["aria-selected","tabindex","onClick"],Tc=["innerHTML"],Ac={key:1,class:"vtl-tab-emoji","aria-hidden":"true"},Oc={key:2,class:"vtl-tab-fallback","aria-hidden":"true"},Fc={class:"vtl-tab-text"},Ic={class:"vtl-tab-label"},Hc={key:0,class:"vtl-tab-sub"},Dc={class:"vtl-main"},Uc={class:"vtl-content"},Rc=["hidden"],Wc={key:0,class:"vtl-host-hint"},jc={key:1,class:"vtl-host-hint err"};function zc(e,t,o,n,s,i){return L(),N("div",{class:ge(["vtl",{"nav-open":e.navOpen,"rail-collapsed":e.railCollapsed,"no-header":!e.header}])},[e.header?(L(),N("header",tc,[_("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,oc),_("span",nc,[Tt(e.$slots,"brand")]),_("b",sc,P(e.title),1),_("span",ic,[Tt(e.$slots,"meta")])])):Y("",!0),e.narrow&&!e.header&&!e.navOpen?(L(),N("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,lc)):Y("",!0),_("div",ac,[_("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"},[_("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))},[_("span",{class:"vtl-collapse-ic","aria-hidden":"true",innerHTML:e.iconSvg("chevron")},null,8,pc),_("span",dc,P(e.label("collapse")),1)],8,cc),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?(L(!0),N(G,{key:1},Pe(e.groups,l=>(L(),N("div",{class:"vtl-grp",key:l.key},[l.folder?(L(),N("button",{key:0,type:"button",class:"vtl-tier vtl-tier-btn","aria-expanded":String(!e.isFolderClosed(l)),onClick:a=>e.toggleFolder(l.key)},[l.badge?(L(),N("span",fc,P(l.badge),1)):Y("",!0),_("span",gc,P(l.label),1),l.count!=null?(L(),N("span",hc,P(l.count),1)):Y("",!0),_("span",{class:ge(["vtl-chev",{open:!e.isFolderClosed(l)}]),"aria-hidden":"true",innerHTML:e.iconSvg("chevron")},null,10,$c)],8,uc)):(L(),N("div",bc,[l.badge?(L(),N("span",mc,P(l.badge),1)):Y("",!0),_("span",_c,P(l.label),1),l.count!=null?(L(),N("span",vc,P(l.count),1)):Y("",!0)])),ft(_("div",xc,[(L(!0),N(G,null,Pe(l.rows,a=>(L(),N("button",{key:a.key,type:"button",role:"tab",class:ge(["vtl-tab",{active:a.key===e.active}]),"aria-selected":String(a.key===e.active),tabindex:a.key===e.active?0:-1,ref_for:!0,ref:r=>e.registerTab(a.key,r),onClick:r=>e.pick(a.key),onKeydown:t[3]||(t[3]=r=>e.onKey(r))},[a.icon?(L(),N("span",{key:0,class:"vtl-tab-ic","aria-hidden":"true",innerHTML:e.iconSvg(a.icon)},null,8,yc)):a.emoji?(L(),N("span",wc,P(a.emoji),1)):(L(),N("span",Sc,P(e.initial(a.label)),1)),_("span",Lc,[_("span",Nc,[Ke(P(a.label),1),a.badge?(L(),N("span",Pc,P(a.badge),1)):Y("",!0)]),a.sub?(L(),N("span",Cc,[_("span",{innerHTML:a.sub},null,8,Ec)])):Y("",!0)])],42,kc))),128))],512),[[Ln,!l.folder||!e.isFolderClosed(l)]])]))),128)):(L(!0),N(G,{key:2},Pe(e.items,l=>(L(),N("button",{key:l.key,type:"button",role:"tab",class:ge(["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:a=>e.registerTab(l.key,a),onClick:a=>e.pick(l.key),onKeydown:t[4]||(t[4]=a=>e.onKey(a))},[l.icon?(L(),N("span",{key:0,class:"vtl-tab-ic","aria-hidden":"true",innerHTML:e.iconSvg(l.icon)},null,8,Tc)):l.emoji?(L(),N("span",Ac,P(l.emoji),1)):(L(),N("span",Oc,P(e.initial(l.label)),1)),_("span",Fc,[_("span",Ic,P(l.label),1),l.sub?(L(),N("span",Hc,P(l.sub),1)):Y("",!0)])],42,Mc))),128))],8,rc),_("main",Dc,[e.header?Tt(e.$slots,"toolbar",{},void 0,void 0,0):Y("",!0),_("div",Uc,[(L(!0),N(G,null,Pe(e.mountedElementRows,l=>ft((L(),N("section",{key:l.key,class:"vtl-host",hidden:l.key!==e.active},[_("div",{class:"vtl-host-slot",ref_for:!0,ref:a=>e.setHostSlot(l.key,a)},null,512),e.hostState[l.key]==="loading"?(L(),N("div",Wc,P(e.T("messages.loadingNamed","Loading {name}…").replace("{name}",l.label)),1)):e.hostState[l.key]==="error"?(L(),N("div",jc,[Ke(P(e.T("messages.couldNotLoadNamed","Could not load {name}.").replace("{name}",l.label)),1),t[5]||(t[5]=_("br",null,null,-1)),_("small",null,P(e.hostError[l.key]),1)])):Y("",!0)],8,Rc)),[[Ln,l.key===e.active]])),128)),Tt(e.$slots,"default")])])])],2)}const Bc=An(ec,[["render",zc],["styles",[Yr]]]),Kc='.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}',Vc='.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; }',qc='<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>',Gc={filterPlaceholder:"Filter plugins",collapseAll:"Collapse all",noMatch:"No plugin matches “{query}”.",treeLabel:"Plugins by capability",openSection:"Open {cap}, {label}",part:"part"},Yc='<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>',On=e=>e.canonical!==void 0?!!e.canonical:e.depth===0,Jc=e=>e.canonical!==void 0?!e.canonical&&!e.folder:e.depth>0,Xc=bo({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(){Tn(Vc,"studio-tree")},data(){const e=this.readState();return{query:"",focusId:"",secClosed:e.sec||{},nodeOpen:e.node||{},chev:Yc,collapseAllSvg:qc}},computed:{byId(){const e=new Map;for(const t of this.sections)for(const o of t.nodes)e.set(o.id,o);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 o of t.nodes){if(!(o.label.toLowerCase().includes(this.q)||String(o.desc||"").toLowerCase().includes(this.q)))continue;e.add(o.id);let s=o.parent;for(;s;)e.add(s),s=this.byId.get(s)&&this.byId.get(s).parent}return e},visible(){const e=[];for(const t of this.sections){const o=this.kept?t.nodes.filter(n=>this.kept.has(n.id)):t.nodes;if(!(this.kept&&!o.length)&&(e.push({id:"sec:"+t.id,section:!0,sectionId:t.id,level:1,depth:0,expandable:!0,cap:t.cap,badge:t.badge||"CAP "+t.cap,label:t.label,title:t.title||"",count:t.nodes.filter(n=>n.depth===0).length}),!(!this.kept&&this.secClosed[t.id])))for(const n of o)!this.kept&&!this.ancestorsOpen(n)||e.push({...n,sectionId:t.id,level:n.depth+2,expandable:!!n.kids,alias:Jc(n)})}return e},activeSectionId(){for(const e of this.sections)if(e.nodes.some(t=>On(t)&&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?Di(e):""},str(e,t){let o=this.strings[e]||Gc[e]||e;if(t)for(const n in t)o=o.split("{"+n+"}").join(String(t[n]));return o},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&&On(t));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.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 o=Math.max(0,t.findIndex(i=>i.id===this.focusId)),n=t[o],s=i=>i.section?"":i.parent||"sec:"+i.sectionId;switch(e.key){case"ArrowDown":this.focusRow((t[o+1]||n).id);break;case"ArrowUp":this.focusRow((t[o-1]||n).id);break;case"Home":this.focusRow(t[0].id);break;case"End":this.focusRow(t[t.length-1].id);break;case"ArrowRight":if(!n.expandable)break;this.isOpen(n)?t[o+1]&&t[o+1].level>n.level&&this.focusRow(t[o+1].id):this.setOpen(n,!0);break;case"ArrowLeft":n.expandable&&this.isOpen(n)&&!this.kept?this.setOpen(n,!1):this.focusRow(s(n));break;case"Enter":case" ":this.activate(n);break;default:if(e.key.length===1&&/\S/.test(e.key)&&!e.ctrlKey&&!e.metaKey&&!e.altKey){const i=e.key.toLowerCase(),a=t.slice(o+1).concat(t.slice(0,o+1)).find(r=>String(r.label).toLowerCase().startsWith(i));a&&this.focusRow(a.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(o=>On(o)&&o.target===this.active),e){this.secClosed[t.id]&&(this.secClosed={...this.secClosed,[t.id]:!1},this.saveState());break}if(e)for(let t=e.parent;t;){const o=this.byId.get(t);if(!o)break;if(o.target===this.active&&!this.nodeOpen[t]){e=o;break}t=o.parent}if(e){let t=e.parent,o=!1;for(;t;)this.nodeOpen[t]||(this.nodeOpen={...this.nodeOpen,[t]:!0},o=!0),t=this.byId.get(t)&&this.byId.get(t).parent;o&&this.saveState()}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))}}}),Zc={key:0,class:"st-activity"},Qc=["aria-label","onClick"],ep=["innerHTML"],tp={class:"st-act-n","aria-hidden":"true"},op={key:1,class:"st"},np={class:"st-bar"},sp={class:"st-find"},ip=["innerHTML"],lp=["placeholder","aria-label"],ap=["aria-label","title"],rp=["innerHTML"],cp=["aria-label"],pp=["aria-level","aria-expanded","aria-selected","tabindex","title","onClick","onFocus"],dp=["innerHTML"],up={class:"st-cap"},fp={class:"st-sec-label"},gp={class:"st-count"},hp=["innerHTML","onClick"],$p={key:1,class:"st-twisty-sp","aria-hidden":"true"},bp=["innerHTML"],mp={class:"st-label"},_p={key:2,class:"st-part"},vp={class:"st-desc"},xp={key:3,class:"st-count"},kp={key:0,class:"st-empty"};function yp(e,t,o,n,s,i){return e.collapsed?(L(),N("div",Zc,[(L(!0),N(G,null,Pe(e.sections,l=>(L(),N("button",{key:l.id,type:"button",class:ge(["st-act",{active:l.id===e.activeSectionId}]),"aria-label":e.str("openSection",{cap:l.badge||"CAP "+l.cap,label:l.label}),onClick:a=>e.openSectionFromActivity(l.id)},[_("span",{class:"st-act-ic","aria-hidden":"true",innerHTML:e.svg(l.icon)},null,8,ep),_("span",tp,P(l.short||l.cap),1)],10,Qc))),128))])):(L(),N("div",op,[_("div",np,[_("label",sp,[_("span",{class:"st-find-ic","aria-hidden":"true",innerHTML:e.svg("search")},null,8,ip),ft(_("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,lp),[[Mn,e.query]])]),_("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))},[_("span",{"aria-hidden":"true",innerHTML:e.collapseAllSvg},null,8,rp)],8,ap)]),_("div",{class:"st-tree",role:"tree","aria-label":e.str("treeLabel"),onKeydown:t[3]||(t[3]=(...l)=>e.onTreeKey&&e.onTreeKey(...l))},[(L(!0),N(G,null,Pe(e.visible,l=>(L(),N("div",{key:l.id,ref_for:!0,ref:a=>e.setRow(l.id,a),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:ge(e.rowClass(l)),style:kt({"--st-depth":l.depth}),title:l.title||null,onClick:a=>e.onRowClick(l),onFocus:a=>e.focusId=l.id},[l.section?(L(),N(G,{key:0},[_("span",{class:"st-twisty","aria-hidden":"true",innerHTML:e.chev},null,8,dp),_("span",up,P(l.badge),1),_("span",fp,P(l.label),1),_("span",gp,P(l.count),1)],64)):(L(),N(G,{key:1},[(L(!0),N(G,null,Pe(l.depth,a=>(L(),N("span",{key:a,class:"st-guide",style:kt({"--st-g":a-1}),"aria-hidden":"true"},null,4))),128)),l.expandable?(L(),N("span",{key:0,class:"st-twisty","aria-hidden":"true",innerHTML:e.chev,onClick:Ti(a=>e.toggle(l),["stop"])},null,8,hp)):(L(),N("span",$p)),_("span",{class:"st-ic","aria-hidden":"true",innerHTML:e.svg(l.icon)},null,8,bp),_("span",mp,P(l.label),1),l.part?(L(),N("span",_p,P(e.str("part")),1)):Y("",!0),_("span",vp,P(l.desc),1),l.expandable?(L(),N("span",xp,P(l.kids),1)):Y("",!0)],64))],46,pp))),128)),e.query&&!e.visible.length?(L(),N("p",kp,P(e.str("noMatch",{query:e.query})),1)):Y("",!0)],40,cp)]))}const wp=An(Xc,[["render",yp],["styles",[Kc]]]),To=[{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},{code:"it",name:"Italian",nativeName:"Italiano",flag:"🇮🇹",hideFromSwitcher:!0},{code:"ro",name:"Romanian",nativeName:"Română",flag:"🇷🇴",hideFromSwitcher:!0},{code:"zh",name:"Chinese",nativeName:"中文",flag:"🇨🇳",hideFromSwitcher:!0}];To.filter(e=>!e.hideFromSwitcher);function Sp(e){return To.find(t=>t.code===e)}function Fn(e){const t=String(e||"").split("-")[0].toLowerCase();return To.some(o=>o.code===t)?t:"en"}const Ui="doxa-maps:locale";function Lp(){try{const e=localStorage.getItem(Ui);if(e)return Fn(e)}catch{}return Fn(navigator==null?void 0:navigator.language)}function Np(e){try{localStorage.setItem(Ui,e)}catch{}}const Ao="__doxaMapToken",Ri="doxa:map-token",Wi="__doxaMapTokenBridge",Bt=()=>{if(typeof window>"u")return"";const e=window[Ao];return typeof e=="string"?e:""};function ji(e){if(typeof window>"u")return"";zi();const t=typeof e=="string"?e.trim():"";if(!t||t===Bt())return Bt();window[Ao]=t;try{window.dispatchEvent(new CustomEvent(Ri,{detail:t}))}catch{}return t}function Pp(){var t;if(typeof window>"u")return;const e=Bt()||typeof window.MAP_TOKEN=="string"&&window.MAP_TOKEN;if(zi(),window[Ao]="",!((t=Object.getOwnPropertyDescriptor(window,"MAP_TOKEN"))!=null&&t.get))try{window.MAP_TOKEN=""}catch{}if(e)try{window.dispatchEvent(new CustomEvent(Ri,{detail:""}))}catch{}}function zi(){var t;if(typeof window>"u"||window[Wi]&&((t=Object.getOwnPropertyDescriptor(window,"MAP_TOKEN"))!=null&&t.get))return;const e=typeof window.MAP_TOKEN=="string"?window.MAP_TOKEN:"";e&&!Bt()&&(window[Ao]=e);try{Object.defineProperty(window,"MAP_TOKEN",{configurable:!0,get(){return Bt()},set(o){ji(o)}}),window[Wi]=!0}catch{}}const Kt={};function Bi(e,t){return Kt[e]||(Kt[e]=new Promise((o,n)=>{const s=document.createElement("script");s.src=e,(/^\/plugin-designs\//.test(e)||/\/index\.js(\?|$)/.test(e))&&(s.type="module"),s.onload=()=>o(),s.onerror=()=>{delete Kt[e],n(new Error("failed to load "+e))},document.head.appendChild(s)})),Kt[e]}function Ki(e,t){return typeof customElements>"u"||customElements.get(e)?Promise.resolve():Promise.race([customElements.whenDefined(e),new Promise((o,n)=>setTimeout(()=>{customElements.get(e)||n(new Error("<"+e+"> never registered (bundle loaded but defined no element)"))},15e3))])}function Cp(){try{const e=typeof document<"u"&&document.currentScript&&document.currentScript.src||"";return e?e.replace(/[^/]+\/[^/]+$/,"").replace(/\/+$/,"")+"/":""}catch{return""}}const Ep=":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}.vtl-top{position:relative;z-index:3}.vtl-body{isolation:isolate}.ps-token{position:relative;display:inline-flex}.ps-show-header{position:fixed;top:8px;inset-inline-end:8px;z-index:2147483000;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid #d1d4cd;border-radius:999px;background:#fffffff0;color:#3b463d;font:600 12px system-ui,sans-serif;cursor:pointer;box-shadow:0 4px 14px #0000002e}.ps-show-header:hover,.ps-show-header:focus-visible{background:#fff;outline:2px solid #92b195}.ps-token-dot{width:8px;height:8px;border-radius:50%;background:#b8bdb4}.ps-token-dot.is-yours,.ps-token-dot.is-url{background:#92b195}.ps-token-dot.is-built{background:#c9b36a}.ps-token-dot.is-none{background:#d27a6a}.ps-token-panel{position:absolute;top:100%;inset-inline-end:0;margin-top:4px;z-index:30;width:min(340px,90vw);display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid #d1d4cd;border-radius:10px;background:#fff;box-shadow:0 12px 32px #00000040;color:#3b463d;font-size:12px}.ps-token-label{display:flex;flex-direction:column;gap:4px}.ps-token-input{font:inherit;font-size:12px;padding:6px 8px;border:1px solid #d1d4cd;border-radius:7px;background:#f8f8f6;color:#3b463d;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.ps-token-row{display:flex;gap:8px}.ps-token-apply,.ps-token-clear{font:inherit;font-size:12px;padding:5px 12px;border-radius:7px;border:1px solid #d1d4cd;background:#d1d4cd;color:#3b463d;cursor:pointer}.ps-token-apply{background:#92b195;border-color:#92b195;color:#fff}.ps-token-apply:disabled{opacity:.6;cursor:progress}.ps-token-status{margin:0}.ps-token-head{margin:0;font-weight:600;font-size:12px}.ps-token-status.err{color:#b3412f}.ps-token-note{margin:0;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-token-btn .ps-locale-name{max-width:none}.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}",Oo="plugin-studio:mapbox-token",Fo="plugin-studio:mapbox-token-url",Vi="plugin-studio:header-hidden",qi="plugin-studio:map-provider";function mt(e){try{return typeof window<"u"&&window.localStorage.getItem(e)||""}catch{return""}}function _t(e,t){try{t?window.localStorage.setItem(e,t):window.localStorage.removeItem(e)}catch{}}const Mp=`
: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; }
.vtl-top { position:relative; z-index:3; }
.vtl-body { isolation:isolate; }
.ps-token { position:relative; display:inline-flex; }
.ps-show-header { position:fixed; top:8px; inset-inline-end:8px; z-index:2147483000; display:inline-flex; align-items:center; gap:6px; padding:6px 12px; border:1px solid #d1d4cd; border-radius:999px; background:rgba(255,255,255,.94); color:#3b463d; font:600 12px system-ui, sans-serif; cursor:pointer; box-shadow:0 4px 14px rgba(0,0,0,.18); }
.ps-show-header:hover, .ps-show-header:focus-visible { background:#ffffff; outline:2px solid #92b195; }
.ps-token-dot { width:8px; height:8px; border-radius:50%; background:#b8bdb4; }
.ps-token-dot.is-yours, .ps-token-dot.is-url { background:#92b195; }
.ps-token-dot.is-built { background:#c9b36a; }
.ps-token-dot.is-none { background:#d27a6a; }
.ps-token-panel { position:absolute; top:100%; inset-inline-end:0; margin-top:4px; z-index:30; width:min(340px, 90vw); display:flex; flex-direction:column; gap:8px; padding:12px; border:1px solid #d1d4cd; border-radius:10px; background:#ffffff; box-shadow:0 12px 32px rgba(0,0,0,.25); color:#3b463d; font-size:12px; }
.ps-token-label { display:flex; flex-direction:column; gap:4px; }
.ps-token-input { font:inherit; font-size:12px; padding:6px 8px; border:1px solid #d1d4cd; border-radius:7px; background:#f8f8f6; color:#3b463d; font-family:ui-monospace, SFMono-Regular, Menlo, monospace; }
.ps-token-row { display:flex; gap:8px; }
.ps-token-apply, .ps-token-clear { font:inherit; font-size:12px; padding:5px 12px; border-radius:7px; border:1px solid #d1d4cd; background:#d1d4cd; color:#3b463d; cursor:pointer; }
.ps-token-apply { background:#92b195; border-color:#92b195; color:#fff; }
.ps-token-apply:disabled { opacity:.6; cursor:progress; }
.ps-token-status { margin:0; }
.ps-token-head { margin:0; font-weight:600; font-size:12px; }
.ps-token-status.err { color:#b3412f; }
.ps-token-note { margin:0; 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-token-btn .ps-locale-name { max-width:none; }
.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; }
.ps-pane { position:absolute; inset: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; 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; }
`,Tp={5:"App shell · nested-mfe-spa",4:"Composite element",3:"Multi-view element",2:"Preset element",1:"Single element"},Gi={"nested-mfe-spa":0,"nested-elements-mfe":1,monolithic:2,parameterized:3,single:4},Ap=e=>Gi[e]!=null?5-Gi[e]:1,Op={5:"nested-mfe-spa",4:"nested-elements-mfe",3:"monolithic",2:"parameterized",1:"single"},In={5:"monitor",4:"tree",3:"layers",2:"grid",1:"embed"},Yi=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","gospel-internet-board"]),Ji=new Set(["big-picture"]),Io={};for(const[e,t]of Object.entries(Object.assign({"../../library/i18n/locales/ar/studio.json":Er,"../../library/i18n/locales/de/studio.json":Mr,"../../library/i18n/locales/en/studio.json":Tr,"../../library/i18n/locales/es/studio.json":Ar,"../../library/i18n/locales/fr/studio.json":Or,"../../library/i18n/locales/hi/studio.json":Fr,"../../library/i18n/locales/it/studio.json":Ir,"../../library/i18n/locales/pt/studio.json":Hr,"../../library/i18n/locales/ro/studio.json":Dr,"../../library/i18n/locales/ru/studio.json":Ur,"../../library/i18n/locales/zh/studio.json":Rr}))){const o=e.match(/locales\/([^/]+)\/studio\.json$/);o&&(Io[o[1]]=t)}const Xi={},Hn=e=>String(e).split(/[-_]+/).filter(Boolean).map(t=>t[0].toUpperCase()+t.slice(1)).join(" ");function Fp(e,t){const o=e+"/"+t.profile;if(Xi[o])return Xi[o];const n=typeof t.label=="string"?t.label.replace(/\s*\([^()]*\)\s*$/,"").trim():"";return n||(t.profile===e?Hn(e):Hn(e)+" · "+Hn(t.profile))}const Ip=`
[data-studio-widgets]{position:fixed;z-index:2147483647;display:flex;flex-direction:column;gap:10px;pointer-events:none}
[data-studio-widgets] > *{pointer-events:auto}
[data-studio-widgets="bottom-right"]{bottom:max(16px,env(safe-area-inset-bottom));right:max(16px,env(safe-area-inset-right));align-items:flex-end}
[data-studio-widgets="bottom-left"]{bottom:max(16px,env(safe-area-inset-bottom));left:max(16px,env(safe-area-inset-left));align-items:flex-start}
[data-studio-widgets="top-right"]{top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));align-items:flex-end}
[data-studio-widgets="top-left"]{top:max(16px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left));align-items:flex-start}
[data-widget]{display:flex;flex-direction:column;align-items:inherit;gap:10px}
[data-studio-widgets^="top"] [data-widget]{flex-direction:column-reverse}
[data-widget-panel]{display:none;position:relative;width:360px;max-width:calc(100vw - 32px);height:min(480px,calc(100vh - 110px));height:min(480px,calc(100dvh - 110px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));border-radius:16px;overflow:hidden;background:#0b0f14;box-shadow:0 12px 40px rgba(0,0,0,.35)}
[data-widget-panel][data-open]{display:block}
[data-widget-bubble]{position:relative;display:inline-flex;align-items:center;gap:8px;height:48px;max-width:min(360px,calc(100vw - 32px));padding:0 18px 0 14px;border:1px solid #334155;border-radius:999px;background:#0f172a;color:#e5e7eb;font:600 14px/1 system-ui,-apple-system,"Segoe UI",sans-serif;cursor:pointer;box-shadow:0 4px 16px rgba(0,0,0,.3)}
[data-widget-bubble]:focus-visible{outline:3px solid #7dd3fc;outline-offset:3px}
[data-wb-icon]{display:grid;place-items:center;flex:none;color:#38bdf8}
[data-wb-icon] svg,[data-wb-chev] svg{width:20px;height:20px;display:block}
[data-wb-text]{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
[data-widget-bubble][data-listening="true"]{width:min(300px,calc(100vw - 32px))}
[data-widget-bubble][data-listening="true"] [data-wb-text]{flex:1 1 auto}
[data-wb-dot],[data-wb-chev]{display:none;flex:none}
[data-wb-dot]{width:10px;height:10px;border-radius:50%;background:#ef4444}
[data-widget-bubble][aria-expanded="true"] [data-wb-chev]{display:block}
[data-widget-bubble][data-listening="true"]{border-color:#ef4444;background:#1f0f12;animation:studio-widget-pulse 1.4s ease-out infinite}
[data-widget-bubble][data-listening="true"] [data-wb-dot]{display:block}
[data-widget-bubble][data-listening="true"] [data-wb-icon]{color:#6b7280}
[data-widget-bubble][data-speaking="true"] [data-wb-icon]{color:#4ade80;animation:studio-widget-speak .5s ease-in-out infinite alternate}
@keyframes studio-widget-pulse{0%{box-shadow:0 0 0 0 rgba(239,68,68,.55)}70%{box-shadow:0 0 0 12px rgba(239,68,68,0)}100%{box-shadow:0 0 0 0 rgba(239,68,68,0)}}
@keyframes studio-widget-speak{from{transform:scale(1)}to{transform:scale(1.18)}}
@media (prefers-reduced-motion:reduce){[data-widget-bubble][data-listening="true"],[data-widget-bubble][data-speaking="true"] [data-wb-icon]{animation:none}}
@media (max-width:480px){
[data-studio-widgets^="bottom"]{bottom:max(8px,env(safe-area-inset-bottom))}
[data-studio-widgets$="right"]{right:max(8px,env(safe-area-inset-right))}
[data-studio-widgets$="left"]{left:max(8px,env(safe-area-inset-left))}
[data-widget-panel]{width:calc(100vw - 16px);max-width:none;height:60vh;height:60dvh}
[data-widget-bubble]{max-width:calc(100vw - 16px)}
}`,Hp='<span data-wb-dot aria-hidden="true"></span><span data-wb-icon>'+'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="9" y="2" width="6" height="12" rx="3"/><path d="M5 10v1a7 7 0 0 0 14 0v-1"/><path d="M12 18v4"/></svg>'+"</span><span data-wb-text></span><span data-wb-chev>"+'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" aria-hidden="true"><path d="M6 9l6 6 6-6"/></svg>'+"</span>",Dp=bo({name:"PluginStudio",inheritAttrs:!1,components:{VerticalTabsLayout:Bc,StudioTree:wp},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 Tn(Mp,"plugin-studio"),{injectedBase:Et("psTreeBase","")}},data(){return{activeKey:"",embedOpen:!1,locale:this.initialLocale(),localeOpen:!1,settingsOpen:!1,headerHidden:mt(Vi)==="1",engineOpen:!1,userProvider:mt(qi),tokenBusy:!1,tokenErr:"",tokenDraft:mt(Oo),urlDraft:mt(Fo),userTk:mt(Oo),userTokenUrl:mt(Fo),fetchedTk:"",bakedTk:"",hostProvider:"",switcherLangs:To,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:Tp[t]||"capability "+t,rows:e[t]}))},treeSections(){const e=new Map(this.compositionTrees.map(s=>[s.nodes[0].selects,s])),t=new Map;for(const s of this.rows)t.has(s.bundle)||t.set(s.bundle,[]),t.get(s.bundle).push(s);const o=[...t.entries()].map(([s,i])=>({bundle:s,rows:i,cap:Math.max(...i.map(l=>l.cap))}));return[5,4,3,2,1].map(s=>({cap:s,group:o.filter(i=>i.cap===s).sort((i,l)=>i.bundle.localeCompare(l.bundle))})).map(({cap:s,group:i})=>{if(!i.length)return null;const l=[],a=(r,d,p)=>{const f=e.get(r.key);if(l.push({id:r.key,parent:p,depth:d,label:r.label,desc:(r.stage==="production"?"":this.tr("stageExperimental")+" · ")+"cap "+r.cap+" · "+r.tag,icon:r.icon,target:r.key,canonical:!0,kids:f?f.nodes[0].kids:0,title:r.label+" · <"+r.tag+"> · CAP "+r.cap+" "+this.tr("cap"+r.cap)}),!f)return;const v=x=>x===0?r.key:r.key+">"+x;for(const x of f.nodes.slice(1))l.push({id:v(x.id),parent:v(x.ancestors[x.ancestors.length-1]),depth:d+x.depth,label:x.label,part:!!x.part,target:x.selects||"",canonical:!1,icon:x.part?"dots":In[x.cap]||"embed",desc:x.part?this.tr("noStandalone"):"cap "+x.cap+" · "+x.tag,kids:x.kids||0,title:x.part?x.label+" · "+this.tr("partOf",{name:r.label}):x.label+" · <"+x.tag+"> · CAP "+x.cap+" "+this.tr("cap"+x.cap)})};for(const r of i){const d=[...r.rows].sort((f,v)=>v.cap-f.cap||f.label.localeCompare(v.label));if(d.length===1){a(d[0],0,"");continue}const p="bundle:"+r.bundle;l.push({id:p,parent:"",depth:0,label:r.bundle,desc:this.tr("elementsCount",{n:d.length}),icon:"folder",target:d[0].key,canonical:!1,folder:!0,kids:d.length,title:r.bundle+" · plugin-designs/"+r.bundle+"/ · "+d.length+" "+this.tr("elements")});for(const f of d)a(f,1,p)}return{id:"cap-"+s,cap:s,label:this.tr("cap"+s),title:this.tr("cap"+s)+" · "+(Op[s]||""),icon:In[s]||"embed",nodes:l}}).filter(Boolean)},compositionTrees(){const e=[],t=(o,n,s,i,l)=>{const a=this.manifestBundles.find(v=>v.bundle===o.bundle),r=o.cap>=4&&a&&a.composes||[],d=[],p=[],f=new Set;for(const v of r){const x=this.resolveRef(v,o.bundle);if(!x){p.push(v);continue}x.key===o.key||f.has(x.key)||(f.add(x.key),d.push(x))}d.sort((v,x)=>x.cap-v.cap||v.label.localeCompare(x.label));for(const v of d){const x={id:i.length,label:v.label,tag:v.tag,cap:v.cap,selects:v.key,depth:n+1,ancestors:l,kids:0};i.push(x);const R=i.length;s.has(v.key)||t(v,n+1,new Set([...s,v.key]),i,[...l,x.id]),x.kids=i.filter((F,ee)=>ee>=R&&F.depth===n+2).length}for(const v of p)i.push({id:i.length,label:v,part:!0,selects:o.key,depth:n+1,ancestors:l,kids:0})};for(const o of this.manifestBundles){if(!o.composes||!o.composes.length||Ji.has(o.bundle))continue;const n=this.rows.find(i=>i.bundle===o.bundle);if(!n)continue;const s=[{id:0,label:n.label,tag:n.tag,cap:n.cap,selects:n.key,depth:0,ancestors:[]}];t(n,0,new Set([n.key]),s,[0]),s[0].kids=s.filter(i=>i.depth===1).length,s.length>1&&e.push({bundle:o.bundle,nodes:s})}return e},active(){return this.rows.find(e=>e.key===this.activeKey)||null},effectiveTk(){return this.userTk||this.fetchedTk||this.tk||this.cfg.tk||this.bakedTk||""},effectiveProvider(){const e=String(this.userProvider||this.provider||this.cfg.provider||"").toLowerCase().trim();return e==="maplibre"||e==="mapbox"?e:""},engines(){return[{id:"",label:this.tr("engineDefault"),note:""},{id:"mapbox",label:"Mapbox",note:this.tr("engineMapboxNote")},{id:"maplibre",label:"MapLibre",note:this.tr("engineMaplibreNote")}]},engineLabel(){return this.userProvider==="mapbox"?"Mapbox":this.userProvider==="maplibre"?"MapLibre":this.tr("engineDefault")},tokenSource(){return this.userTk?"yours":this.fetchedTk?"url":this.tk||this.cfg.tk||this.bakedTk?"built":"none"},tokenStatus(){return this.effectiveProvider==="maplibre"?this.tr("tokenNotNeeded"):this.tokenSource==="yours"?this.tr("tokenSourceYours"):this.tokenSource==="url"?this.tr("tokenSourceUrl",{url:this.userTokenUrl}):this.tokenSource==="built"?this.tr("tokenSourceBuilt"):this.tr("tokenSourceNone")},countLabel(){const e=new Set(this.rows.map(t=>t.bundle)).size;return this.tr("countLabel",{bundles:e,elements:this.rows.length})},activeLang(){return Sp(this.locale)||{code:this.locale,flag:"🌐",nativeName:this.locale}},uiDir(){return(this.activeLang&&this.activeLang.dir)==="rtl"?"rtl":"ltr"}},mounted(){this.bakedTk=typeof window<"u"&&window.MAP_TOKEN||"",this.hostProvider=typeof window<"u"&&typeof window.MAP_PROVIDER=="string"?window.MAP_PROVIDER:"",this.publishProvider(),this.userTk?this.publishToken():(this.userTokenUrl||this.tokenUrl||this.cfg.tokenUrl)&&this.fetchToken(this.userTokenUrl||this.tokenUrl||this.cfg.tokenUrl).then(e=>{e&&e!==this.fetchedTk&&(this.fetchedTk=e,this.publishToken(),this.remountPanes())}).catch(()=>{}),this.loadManifest()},methods:{async fetchToken(e){if(!/^https?:\/\//i.test(e))throw new Error("not an http(s) URL");let t;try{t=await fetch(e,{cache:"no-store",credentials:"same-origin"})}catch{throw new Error("the request was blocked or the server did not answer (cross-origin rules can do this)")}if(!t.ok)throw new Error("HTTP "+t.status);const o=(await t.text()).trim();let n=o;try{const s=JSON.parse(o);n=s&&(s.token||s.tk||s.accessToken)||(typeof s=="string"?s:"")}catch{}if(n=String(n||"").trim(),n.startsWith("sk."))throw new Error(this.tr("tokenSecret"));if(!n.startsWith("pk."))throw new Error(this.tr("tokenNotPk"));return n},async applyToken(){this.tokenErr="";const e=this.tokenDraft,t=this.urlDraft;if(e.startsWith("sk.")){this.tokenErr=this.tr("tokenSecret");return}if(e&&!e.startsWith("pk.")){this.tokenErr=this.tr("tokenNotPk");return}this.tokenBusy=!0;try{let o="";if(!e&&t)try{o=await this.fetchToken(t)}catch(n){this.tokenErr=this.tr("tokenUrlFailed",{why:n.message});return}this.userTk=e,this.userTokenUrl=e?"":t,this.fetchedTk=o,_t(Oo,this.userTk),_t(Fo,this.userTokenUrl),this.publishToken(),this.remountPanes(),this.settingsOpen=!1}finally{this.tokenBusy=!1}},setHeaderHidden(e){this.headerHidden=!!e,this.settingsOpen=!1,this.engineOpen=!1,this.localeOpen=!1,_t(Vi,e?"1":"")},setProvider(e){this.engineOpen=!1,e!==this.userProvider&&(this.userProvider=e,_t(qi,e),this.publishProvider(),this.remountPanes())},publishProvider(){typeof window>"u"||(this.effectiveProvider?window.MAP_PROVIDER=this.effectiveProvider:this.hostProvider?window.MAP_PROVIDER=this.hostProvider:"MAP_PROVIDER"in window&&delete window.MAP_PROVIDER)},clearToken(){this.tokenDraft="",this.urlDraft="",this.tokenErr="",this.userTk="",this.userTokenUrl="",this.fetchedTk="",_t(Oo,""),_t(Fo,""),this.publishToken(),this.remountPanes()},publishToken(){typeof window>"u"||(this.effectiveTk?(ji(this.effectiveTk),window.MAP_TOKEN!==this.effectiveTk&&(window.MAP_TOKEN=this.effectiveTk)):Pp())},remountPanes(){for(const t of this.rows)t.mounted&&this.releaseRow(t);const e=this.active;e&&this.$nextTick(()=>{this.activeKey===e.key&&this.mountElement(e)})},tr(e,t){const o=(this.locale||"en").split("-")[0];let n=(Io[this.locale]||{})[e]||(Io[o]||{})[e]||(Io.en||{})[e]||e;if(t)for(const s in t)n=n.split("{"+s+"}").join(String(t[s]));return n},resolveRef(e,t){return t&&this.rows.find(o=>o.key===t+"/"+e)||this.rows.find(o=>o.key===e)||this.rows.find(o=>o.tag===e)||this.rows.find(o=>o.bundle===e)||null},setSlot(e,t){t&&(this._slots=Object.assign(this._slots||{},{[e]:t}))},initialLocale(){let e=this.profileConfig;if(typeof e=="string")try{e=e?JSON.parse(e):{}}catch{e={}}let t="";try{const n=new URLSearchParams(window.location.search);t=n.get("lang")||n.get("locale")||""}catch{}const o=e&&(e.locale||e.lang)||t;return o?Fn(o):Lp()},paneConfig(e,t){const o={profile:e.profile,instanceId:"ps-"+e.key.replace(/\//g,"-"),locale:t};this.effectiveTk&&(o.tk=this.effectiveTk);const n=this.userTokenUrl||this.tokenUrl||this.cfg.tokenUrl;return n&&(o.tokenUrl=n),this.effectiveProvider&&(o.provider=this.effectiveProvider),this.base&&(o.treeBase=this.base),o},setLocale(e){this.locale=e,this.localeOpen=!1,Np(e);try{for(const t of this.rows){if(!t.mounted)continue;const o=this._slots&&this._slots[t.key],n=o&&o.firstElementChild;n&&n.setAttribute&&n.setAttribute("profile-config",JSON.stringify(this.paneConfig(t,e)))}}catch{}},resolve(e){const t=String(e);if(/^(https?:)?\/\//.test(t)||t.startsWith("/"))return t;const o=t.replace(/^\.\//,"");return this.base?this.base.replace(/\/+$/,"")+"/"+o:"../"+o},loadManifest(){const e=o=>{this.manifestBundles=o&&o.bundles||[],this.rows=this.rowsFromManifest(o),this.setupWidgets(),this.route()},t=typeof window<"u"&&window.__psBaked||null;if(typeof fetch=="function"&&typeof location<"u"&&location.protocol!=="file:"){const o=this.base?this.resolve("manifest.json"):"../manifest.json";fetch(o,{cache:"no-cache"}).then(n=>n.ok?n.json():null).then(n=>e(n||t||{bundles:[]})).catch(()=>e(t||{bundles:[]}))}else e(t||{bundles:[]})},rowsFromManifest(e){const t=[];for(const o of e.bundles||[])if(!(o.bundle==="plugin-studio"||Ji.has(o.bundle)))for(const n of o.profiles||[]){const s=o.elements&&o.elements.length?o.elements:null,i=(n.element&&(!s||s.includes(n.element))?n.element:null)||s&&s[0]||n.element||o.bundle,l=Ap(n.type||"single"),a=Yi.has(i)||Yi.has(o.bundle)||n.heavy===!0;t.push({key:o.bundle+"/"+n.profile,bundle:o.bundle,stage:o.stage==="production"?"production":"experimental",label:Fp(o.bundle,n),profile:n.profile,tag:i,cap:l,icon:In[l]||"embed",description:n.description||"",widget:n.widget&&["bottom-right","bottom-left","top-right","top-left"].includes(n.widget.corner)?n.widget.corner:"",heavy:a,bundleJs:o.scriptUrl||o.bundle+"/"+o.bundle+".js",embed:n.embed&&n.embed.script||"",mounted:!1,state:"idle",error:""})}return t.sort((o,n)=>n.cap-o.cap||o.bundle.localeCompare(n.bundle)||o.label.localeCompare(n.label)),t},route(){const e=(typeof location<"u"&&location.hash||"").replace(/^#\/?/,"");if(e&&this.rows.some(o=>o.key===e)){this.select(e);return}const t=this.readLastTab();if(t&&this.rows.some(o=>o.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(s=>s.key===e))return;const t=this.rows.find(s=>s.key===e);if(t&&t.widget){this.openWidget(t,!0);return}const o=this.activeKey;if(this.activeKey=e,this.embedOpen=!1,o&&o!==e){const s=this.rows.find(i=>i.key===o);s&&s.heavy&&s.mounted&&this.releaseRow(s)}const n=this.rows.find(s=>s.key===e);n&&(this.writeLastTab(e),n.mounted||this.$nextTick(()=>{this.activeKey===n.key&&this.mountElement(n)}))},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=""},widgetStore(){return window.__doxaStudioWidgets||(window.__doxaStudioWidgets={hosts:{},els:{}}),window.__doxaStudioWidgets},widgetHost(e){const t=this.widgetStore();if(!document.getElementById("studio-widget-css")){const n=document.createElement("style");n.id="studio-widget-css",n.textContent=Ip,document.head.appendChild(n)}if(t.hosts[e]&&t.hosts[e].isConnected)return t.hosts[e];const o=document.createElement("div");return o.setAttribute("data-studio-widgets",e),document.body.appendChild(o),t.hosts[e]=o,o},setupWidgets(){for(const e of this.rows.filter(t=>t.widget)){const t=this.widgetStore(),o=this.widgetHost(e.widget);let n=o.querySelector(`[data-widget="${e.key}"]`);if(!n){n=document.createElement("div"),n.setAttribute("data-widget",e.key);const i=document.createElement("div");i.setAttribute("data-widget-panel","");const l=document.createElement("button");l.type="button",l.setAttribute("data-widget-bubble","");const a="widget:"+e.key,r=this.tr(a);l.setAttribute("aria-label",r!==a?r:e.label),l.title=l.getAttribute("aria-label"),l.setAttribute("aria-expanded","false"),l.innerHTML=Hp,l.querySelector("[data-wb-text]").textContent=l.getAttribute("aria-label"),l.addEventListener("click",()=>this.openWidget(e,!i.hasAttribute("data-open"))),n.appendChild(i),n.appendChild(l),o.appendChild(n)}t.els[e.key]&&!n.querySelector(e.tag)&&n.querySelector("[data-widget-panel]").appendChild(t.els[e.key]);let s=!1;try{s=localStorage.getItem("plugin-studio:widget-open:"+e.key)==="1"}catch{}s&&this.openWidget(e,!0)}},openWidget(e,t){const n=this.widgetHost(e.widget).querySelector(`[data-widget="${e.key}"]`);if(!n){this.setupWidgets();return}const s=n.querySelector("[data-widget-panel]"),i=n.querySelector("[data-widget-bubble]");t?s.setAttribute("data-open",""):s.removeAttribute("data-open"),i.setAttribute("aria-expanded",t?"true":"false");try{localStorage.setItem("plugin-studio:widget-open:"+e.key,t?"1":"0")}catch{}const l=this.widgetStore();!t||l.els[e.key]||Bi(this.resolve(e.bundleJs)).then(()=>Ki(e.tag)).then(()=>{if(l.els[e.key])return;const a=document.createElement(e.tag);a.setAttribute("profile-config",JSON.stringify(this.paneConfig(e,this.locale))),a.setAttribute("variant","widget"),this.base&&a.setAttribute("tree-base",this.base.replace(/\/+$/,"")),a.style.cssText="display:block;position:absolute;inset:0;width:100%;height:100%;overflow-y:auto;overscroll-behavior:contain;";const r=n.querySelector("[data-widget-bubble]"),d=r.querySelector("[data-wb-text]");a.addEventListener("recording",p=>{const f=!!(Array.isArray(p.detail)?p.detail[0]:p.detail);r.setAttribute("data-listening",f?"true":"false"),f?d.textContent="":(r.setAttribute("data-speaking","false"),d.textContent=r.getAttribute("aria-label"))}),a.addEventListener("activity",p=>{const f=(Array.isArray(p.detail)?p.detail[0]:p.detail)||{};if(r.getAttribute("data-listening")!=="true")return;r.setAttribute("data-speaking",f.speaking?"true":"false");const v=f.words||"";d.textContent=v.length>34?"…"+v.slice(-33):v}),l.els[e.key]=a,s.appendChild(a)}).catch(a=>{s.textContent=a&&a.message||String(a)})},mountElement(e){e.mounted=!0,e.state="loading";const t=this.resolve(e.bundleJs);Bi(t).then(()=>Ki(e.tag)).then(()=>{try{if(e.heavy&&this.activeKey!==e.key){e.mounted=!1,e.state="idle";return}const o=this._slots&&this._slots[e.key];if(!o){e.state="error",e.error="no slot";return}o.innerHTML="";const n=document.createElement(e.tag);n.setAttribute("profile-config",JSON.stringify(this.paneConfig(e,this.locale))),this.base&&n.setAttribute("tree-base",this.base.replace(/\/+$/,"")),n.style.cssText="display:block;position:absolute;inset:0;width:100%;height:100%;",o.appendChild(n),e.state="ready"}catch(o){e.state="error",e.error="mount failed: "+(o&&o.message||String(o))}}).catch(o=>{e.state="error",e.error=o&&o.message||String(o)})},copyText(e,t){const o=()=>{const n=t.textContent;t.textContent=this.tr("copied"),setTimeout(()=>{t.textContent=n},1200)};if(navigator.clipboard&&navigator.clipboard.writeText)navigator.clipboard.writeText(e).then(o,()=>{});else try{const n=document.createElement("textarea");n.value=e,document.body.appendChild(n),n.select(),document.execCommand("copy"),document.body.removeChild(n),o()}catch{}}}}),Up={class:"ps-count"},Rp={class:"ps-locale"},Wp=["aria-expanded","aria-label"],jp={class:"ps-flag"},zp={class:"ps-locale-name"},Bp={key:0,class:"ps-locale-menu",role:"listbox"},Kp=["aria-selected"],Vp=["onClick"],qp={class:"ps-flag"},Gp={class:"ps-locale-name"},Yp={class:"ps-locale-en"},Jp={class:"ps-locale ps-engine"},Xp=["aria-expanded","aria-label","title"],Zp={class:"ps-locale-name"},Qp=["aria-label"],ed=["aria-selected"],td=["onClick"],od={class:"ps-locale-name"},nd={class:"ps-locale-en"},sd={class:"ps-token"},id=["aria-expanded","title"],ld={class:"ps-locale-name"},ad={class:"ps-token-head"},rd={class:"ps-token-label"},cd={class:"ps-token-label"},pd={class:"ps-token-row"},dd=["disabled"],ud={class:"ps-token-note"},fd=["title","aria-label"],gd={class:"ps-locale-name"},hd={key:0,class:"ps-toolbar"},$d={class:"ps-bar"},bd={class:"ps-bar-t"},md={class:"ps-bar-sub"},_d={key:0},vd=["aria-expanded"],xd={key:0,class:"ps-embed"},kd=["value"],yd=["title","aria-label"],wd={class:"ps-stage"},Sd=["hidden"],Ld={key:0,class:"ps-hint"},Nd={key:1,class:"ps-hint err"},Pd={key:0,class:"ps-hint"};function Cd(e,t,o,n,s,i){const l=Fs("StudioTree"),a=Fs("VerticalTabsLayout");return L(),yo(a,{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:!e.headerHidden,active:e.activeKey,"onUpdate:active":e.select},{rail:ut(({collapsed:r,expand:d,pick:p})=>[me(l,{sections:e.treeSections,active:e.activeKey,collapsed:r,expand:d,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:ut(()=>[...t[11]||(t[11]=[_("span",{class:"ps-logo","aria-hidden":"true"},[_("svg",{viewBox:"0 0 24 24",width:"22",height:"22",fill:"none",stroke:"#92b195","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[_("path",{d:"M10 3v3M14 3v3M7 6h10v5a5 5 0 0 1-10 0V6Z"}),_("path",{d:"M12 16v5"})])],-1)])]),meta:ut(()=>[_("span",Up,P(e.countLabel),1),_("span",Rp,[_("button",{type:"button",class:"ps-locale-btn","aria-expanded":String(e.localeOpen),"aria-label":e.tr("changeLanguage"),onClick:t[0]||(t[0]=r=>{e.localeOpen=!e.localeOpen,e.engineOpen=!1,e.settingsOpen=!1})},[_("span",jp,P(e.activeLang.flag),1),_("span",zp,P(e.activeLang.nativeName),1),t[12]||(t[12]=_("span",{class:"ps-dots","aria-hidden":"true"},"⋮",-1))],8,Wp),e.localeOpen?(L(),N("ul",Bp,[(L(!0),N(G,null,Pe(e.switcherLangs,r=>(L(),N("li",{key:r.code,role:"option","aria-selected":String(r.code===e.locale)},[_("button",{type:"button",class:ge(["ps-locale-opt",{active:r.code===e.locale}]),onClick:d=>e.setLocale(r.code)},[_("span",qp,P(r.flag),1),_("span",Gp,P(r.nativeName),1),_("span",Yp,P(r.name),1)],10,Vp)],8,Kp))),128))])):Y("",!0)]),_("span",Jp,[_("button",{type:"button",class:"ps-locale-btn","aria-expanded":String(e.engineOpen),"aria-label":e.tr("mapEngine"),title:e.tr("mapEngine"),onClick:t[1]||(t[1]=r=>{e.engineOpen=!e.engineOpen,e.localeOpen=!1,e.settingsOpen=!1})},[t[13]||(t[13]=_("span",{"aria-hidden":"true"},"🗺",-1)),_("span",Zp,P(e.engineLabel),1),t[14]||(t[14]=_("span",{class:"ps-dots","aria-hidden":"true"},"⋮",-1))],8,Xp),e.engineOpen?(L(),N("ul",{key:0,class:"ps-locale-menu",role:"listbox","aria-label":e.tr("mapEngine")},[(L(!0),N(G,null,Pe(e.engines,r=>(L(),N("li",{key:r.id||"default",role:"option","aria-selected":String(r.id===e.userProvider)},[_("button",{type:"button",class:ge(["ps-locale-opt",{active:r.id===e.userProvider}]),onClick:d=>e.setProvider(r.id)},[_("span",od,P(r.label),1),_("span",nd,P(r.note),1)],10,td)],8,ed))),128))],8,Qp)):Y("",!0)]),_("span",sd,[_("button",{type:"button",class:"ps-locale-btn ps-token-btn","aria-expanded":String(e.settingsOpen),title:e.tokenStatus,onClick:t[2]||(t[2]=r=>{e.settingsOpen=!e.settingsOpen,e.localeOpen=!1,e.engineOpen=!1})},[_("span",ld,P(e.tr("mapboxToken")),1),_("span",{class:ge(["ps-token-dot","is-"+e.tokenSource]),"aria-hidden":"true"},null,2)],8,id),e.settingsOpen?(L(),N("form",{key:0,class:"ps-token-panel",onSubmit:t[6]||(t[6]=Ti((...r)=>e.applyToken&&e.applyToken(...r),["prevent"]))},[_("p",ad,P(e.tr("mapToken")),1),_("label",rd,[Ke(P(e.tr("tokenPaste"))+" ",1),ft(_("input",{class:"ps-token-input","onUpdate:modelValue":t[3]||(t[3]=r=>e.tokenDraft=r),placeholder:"pk.eyJ…",autocomplete:"off",spellcheck:"false"},null,512),[[Mn,e.tokenDraft,void 0,{trim:!0}]])]),_("label",cd,[Ke(P(e.tr("tokenUrlLabel"))+" ",1),ft(_("input",{class:"ps-token-input","onUpdate:modelValue":t[4]||(t[4]=r=>e.urlDraft=r),type:"url",placeholder:"https://doxa.life/api/maps/token",autocomplete:"off",spellcheck:"false"},null,512),[[Mn,e.urlDraft,void 0,{trim:!0}]])]),_("div",pd,[_("button",{type:"submit",class:"ps-token-apply",disabled:e.tokenBusy},P(e.tr("tokenApply")),9,dd),_("button",{type:"button",class:"ps-token-clear",onClick:t[5]||(t[5]=(...r)=>e.clearToken&&e.clearToken(...r))},P(e.tr("tokenClear")),1)]),_("p",{class:ge(["ps-token-status",{err:!!e.tokenErr}]),role:"status"},P(e.tokenErr||e.tokenStatus),3),_("p",ud,P(e.tr("tokenStoredHere")),1)],32)):Y("",!0)]),_("button",{type:"button",class:"ps-locale-btn ps-hide-header",title:e.tr("hideHeader"),"aria-label":e.tr("hideHeader"),onClick:t[7]||(t[7]=r=>e.setHeaderHidden(!0))},[t[15]||(t[15]=_("span",{"aria-hidden":"true"},"⌃",-1)),_("span",gd,P(e.tr("hideHeader")),1)],8,fd)]),toolbar:ut(()=>[e.active?(L(),N("div",hd,[_("div",$d,[_("div",bd,[_("b",null,P(e.active.label),1),_("span",md,[Ke(P(e.active.bundle)+" · <"+P(e.active.tag)+">",1),e.active.description?(L(),N("span",_d," · "+P(e.active.description),1)):Y("",!0)])]),e.active.embed?(L(),N("button",{key:0,type:"button",class:"ps-btn","aria-expanded":String(e.embedOpen),onClick:t[8]||(t[8]=r=>e.embedOpen=!e.embedOpen)},P(e.tr("copyEmbed")),9,vd)):Y("",!0)]),e.embedOpen&&e.active.embed?(L(),N("div",xd,[_("label",null,[Ke(P(e.tr("scriptEmbed"))+" ",1),_("button",{type:"button",class:"ps-btn",onClick:t[9]||(t[9]=r=>e.copyText(e.active.embed,r.target))},P(e.tr("copy")),1)]),_("textarea",{readonly:"",value:e.active.embed},null,8,kd)])):Y("",!0)])):Y("",!0)]),default:ut(()=>[e.headerHidden?(L(),N("button",{key:0,type:"button",class:"ps-show-header",title:e.tr("showHeader"),"aria-label":e.tr("showHeader"),onClick:t[10]||(t[10]=r=>e.setHeaderHidden(!1))},[t[16]||(t[16]=_("span",{"aria-hidden":"true"},"⌄",-1)),Ke(" "+P(e.tr("showHeader")),1)],8,yd)):Y("",!0),_("div",wd,[(L(!0),N(G,null,Pe(e.flatRows,r=>ft((L(),N("section",{key:r.key,class:"ps-pane",hidden:r.key!==e.activeKey},[!r.heavy||r.key===e.activeKey?(L(),N(G,{key:0},[_("div",{class:"ps-slot",ref_for:!0,ref:d=>e.setSlot(r.key,d)},null,512),r.state==="loading"?(L(),N("div",Ld,P(e.tr("loading",{name:r.label})),1)):r.state==="error"?(L(),N("div",Nd,[Ke(P(e.tr("couldNotLoad",{name:r.label})),1),t[17]||(t[17]=_("br",null,null,-1)),_("small",null,P(r.error),1)])):Y("",!0)],64)):Y("",!0)],8,Sd)),[[Ln,r.key===e.activeKey]])),128)),e.activeKey?Y("",!0):(L(),N("div",Pd,P(e.tr("chooseElement")),1))])]),_:1},8,["title","dir","nav-label","labels","header","active","onUpdate:active"])}const Ed=An(Dp,[["render",Cd],["styles",[Ep]]]),Md=Cp(),Td=xr(Ed,{configureApp(e){e.provide("psTreeBase",Md)}});typeof customElements<"u"&&!customElements.get("plugin-studio")&&customElements.define("plugin-studio",Td)})();