diff --git a/public/README.md b/public/README.md index 144f3177f..1aa42e601 100644 --- a/public/README.md +++ b/public/README.md @@ -2,7 +2,7 @@ This folder is GENERATED by `bun run build`; do not edit it by hand. It holds exactly one thing: -- **`dx-maps/`** — the output folder: 24 plugin bundles and 36 pages, self-contained. +- **`dx-maps/`** — the output folder: 25 plugin bundles and 37 pages, self-contained. Copy this one folder to any web host (or open it from disk) and it works. - `dx-maps/index.html` — the front page: the Plugin Studio, every plugin in one place. - `dx-maps//.js` — a plugin's bundle (a custom element; load it with a `\n\n" + "script": "\n\n\n\n" }, "instances": [ { @@ -1181,6 +1181,33 @@ } ] }, + { + "bundle": "rudder-voice", + "scriptUrl": "./rudder-voice/rudder-voice.js", + "output": "dx-maps/rudder-voice/rudder-voice.js", + "integrity": "sha384-ygcWKoVAImcBol0tmjxbdFMmgZpzITjrPt97BqNUPVXacNvhhoeiCgqiPHbSJVC9", + "elements": [ + "rudder-voice" + ], + "stage": "experimental", + "profiles": [ + { + "profile": "rudder-voice", + "stage": "experimental", + "file": "rudder-voice.vue", + "description": "A DESKTOP-target plugin (rudder-voice.meta.json \"targets\": [\"desktop\"]). The speech", + "element": "rudder-voice", + "type": "single", + "isMap": false, + "iframeUrl": "./rudder-voice/rudder-voice/index.html", + "scriptUrl": "./rudder-voice/rudder-voice.js", + "embed": { + "iframe": "", + "script": "\n\n" + } + } + ] + }, { "bundle": "stack-demo", "scriptUrl": "./stack-demo/stack-demo.js", diff --git a/public/dx-maps/gospel-internet/board/board/index.html b/public/dx-maps/gospel-internet/board/board/index.html index 7caac565d..6c0ff0c33 100644 --- a/public/dx-maps/gospel-internet/board/board/index.html +++ b/public/dx-maps/gospel-internet/board/board/index.html @@ -36,7 +36,7 @@ - + - + - + - + - + - + - + \n\n" + "script": "\n\n\n\n" }, "instances": [ { @@ -1181,6 +1181,33 @@ } ] }, + { + "bundle": "rudder-voice", + "scriptUrl": "./rudder-voice/rudder-voice.js", + "output": "dx-maps/rudder-voice/rudder-voice.js", + "integrity": "sha384-ygcWKoVAImcBol0tmjxbdFMmgZpzITjrPt97BqNUPVXacNvhhoeiCgqiPHbSJVC9", + "elements": [ + "rudder-voice" + ], + "stage": "experimental", + "profiles": [ + { + "profile": "rudder-voice", + "stage": "experimental", + "file": "rudder-voice.vue", + "description": "A DESKTOP-target plugin (rudder-voice.meta.json \"targets\": [\"desktop\"]). The speech", + "element": "rudder-voice", + "type": "single", + "isMap": false, + "iframeUrl": "./rudder-voice/rudder-voice/index.html", + "scriptUrl": "./rudder-voice/rudder-voice.js", + "embed": { + "iframe": "", + "script": "\n\n" + } + } + ] + }, { "bundle": "stack-demo", "scriptUrl": "./stack-demo/stack-demo.js", diff --git a/public/dx-maps/rudder-voice/rudder-voice.js b/public/dx-maps/rudder-voice/rudder-voice.js new file mode 100644 index 000000000..397ddf3af --- /dev/null +++ b/public/dx-maps/rudder-voice/rudder-voice.js @@ -0,0 +1,23 @@ +(function(){"use strict";/** +* @vue/shared v3.5.42 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function qn(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const G={},Ot=[],Ue=()=>{},Ds=()=>!1,cn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),an=e=>e.startsWith("onUpdate:"),ie=Object.assign,Xn=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},kr=Object.prototype.hasOwnProperty,$=(e,t)=>kr.call(e,t),I=Array.isArray,ct=e=>Vt(e)==="[object Map]",pt=e=>Vt(e)==="[object Set]",Fs=e=>Vt(e)==="[object Date]",N=e=>typeof e=="function",Q=e=>typeof e=="string",$e=e=>typeof e=="symbol",z=e=>e!==null&&typeof e=="object",js=e=>(z(e)||N(e))&&N(e.then)&&N(e.catch),Vs=Object.prototype.toString,Vt=e=>Vs.call(e),Nr=e=>Vt(e).slice(8,-1),un=e=>Vt(e)==="[object Object]",Yn=e=>Q(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Lt=qn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),fn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Dr=/-\w/g,ye=fn(e=>e.replace(Dr,t=>t.slice(1).toUpperCase())),Fr=/\B([A-Z])/g,Ee=fn(e=>e.replace(Fr,"-$1").toLowerCase()),Ls=fn(e=>e.charAt(0).toUpperCase()+e.slice(1)),Zn=fn(e=>e?`on${Ls(e)}`:""),Be=(e,t)=>!Object.is(e,t),dn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},hn=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Us=e=>{const t=Q(e)?Number(e):NaN;return isNaN(t)?e:t};let $s;const pn=()=>$s||($s=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function gn(e){if(I(e)){const t={};for(let n=0;n{if(n){const s=n.split(Vr);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function Ht(e){let t="";if(Q(e))t=e;else if(I(e))for(let n=0;nat(n,t))}const Ws=e=>!!(e&&e.__v_isRef===!0),ee=e=>Q(e)?e:e==null?"":I(e)||z(e)&&(e.toString===Vs||!N(e.toString))?Ws(e)?ee(e.value):JSON.stringify(e,zs,2):String(e),zs=(e,t)=>Ws(t)?zs(e,t.value):ct(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,i],r)=>(n[Qn(s,r)+" =>"]=i,n),{})}:pt(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Qn(n))}:$e(t)?Qn(t):z(t)&&!I(t)&&!un(t)?String(t):t,Qn=(e,t="")=>{var n;return $e(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.5.42 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let oe;class Kr{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&&oe&&(oe.active?(this.parent=oe,this.index=(oe.scopes||(oe.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes){const s=this.scopes.slice();for(t=0,n=s.length;t0&&--this._on===0){if(oe===this)oe=this.prevScope;else{let t=oe;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 n,s;for(n=0,s=this.effects.length;n0)return;if($t){let t=$t;for($t=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Ut;){let t=Ut;for(Ut=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(s){e||(e=s)}t=n}}if(e)throw e}function Xs(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Ys(e){let t,n=e.depsTail,s=n;for(;s;){const i=s.prevDep;s.version===-1?(s===n&&(n=i),is(s),zr(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=i}e.deps=t,e.depsTail=n}function ss(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Zs(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Zs(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Bt)||(e.globalVersion=Bt,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!ss(e))))return;e.flags|=2;const t=e.dep,n=X,s=Fe;X=e,Fe=!0;try{Xs(e);const i=e.fn(e._value);(t.version===0||Be(i,e._value))&&(e.flags|=128,e._value=i,t.version++)}catch(i){throw t.version++,i}finally{X=n,Fe=s,Ys(e),e.flags&=-3}}function is(e,t=!1){const{dep:n,prevSub:s,nextSub:i}=e;if(s&&(s.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=s,e.nextSub=void 0),n.subs===e&&(n.subs=s,!s&&n.computed)){n.computed.flags&=-5;for(let r=n.computed.deps;r;r=r.nextDep)is(r,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function zr(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Fe=!0;const Qs=[];function Ke(){Qs.push(Fe),Fe=!1}function We(){const e=Qs.pop();Fe=e===void 0?!0:e}function ei(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=X;X=void 0;try{t()}finally{X=n}}}let Bt=0;class Jr{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class rs{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(!X||!Fe||X===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==X)n=this.activeLink=new Jr(X,this),X.deps?(n.prevDep=X.depsTail,X.depsTail.nextDep=n,X.depsTail=n):X.deps=X.depsTail=n,ti(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const s=n.nextDep;s.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=s),n.prevDep=X.depsTail,n.nextDep=void 0,X.depsTail.nextDep=n,X.depsTail=n,X.deps===n&&(X.deps=s)}return n}trigger(t){this.version++,Bt++,this.notify(t)}notify(t){ts();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ns()}}}function ti(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let s=t.deps;s;s=s.nextDep)ti(s)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const os=new WeakMap,gt=Symbol(""),ls=Symbol(""),Kt=Symbol("");function ae(e,t,n){if(Fe&&X){let s=os.get(e);s||os.set(e,s=new Map);let i=s.get(n);i||(s.set(n,i=new rs),i.map=s,i.key=n),i.track()}}function Ze(e,t,n,s,i,r){const o=os.get(e);if(!o){Bt++;return}const l=c=>{c&&c.trigger()};if(ts(),t==="clear")o.forEach(l);else{const c=I(e),d=c&&Yn(n);if(c&&n==="length"){const f=Number(s);o.forEach((g,w)=>{(w==="length"||w===Kt||!$e(w)&&w>=f)&&l(g)})}else switch((n!==void 0||o.has(void 0))&&l(o.get(n)),d&&l(o.get(Kt)),t){case"add":c?d&&l(o.get("length")):(l(o.get(gt)),ct(e)&&l(o.get(ls)));break;case"delete":c||(l(o.get(gt)),ct(e)&&l(o.get(ls)));break;case"set":ct(e)&&l(o.get(gt));break}}ns()}function Pt(e){const t=H(e);return t===e?t:(ae(t,"iterate",Kt),Re(e)?t:t.map(je))}function mn(e){return ae(e=H(e),"iterate",Kt),e}function ze(e,t){return et(e)?Mt(mt(e)?je(t):t):je(t)}const Gr={__proto__:null,[Symbol.iterator](){return cs(this,Symbol.iterator,e=>ze(this,e))},concat(...e){return Pt(this).concat(...e.map(t=>I(t)?Pt(t):t))},entries(){return cs(this,"entries",e=>(e[1]=ze(this,e[1]),e))},every(e,t){return Qe(this,"every",e,t,void 0,arguments)},filter(e,t){return Qe(this,"filter",e,t,n=>n.map(s=>ze(this,s)),arguments)},find(e,t){return Qe(this,"find",e,t,n=>ze(this,n),arguments)},findIndex(e,t){return Qe(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Qe(this,"findLast",e,t,n=>ze(this,n),arguments)},findLastIndex(e,t){return Qe(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Qe(this,"forEach",e,t,void 0,arguments)},includes(...e){return as(this,"includes",e)},indexOf(...e){return as(this,"indexOf",e)},join(e){return Pt(this).join(e)},lastIndexOf(...e){return as(this,"lastIndexOf",e)},map(e,t){return Qe(this,"map",e,t,void 0,arguments)},pop(){return Wt(this,"pop")},push(...e){return Wt(this,"push",e)},reduce(e,...t){return ni(this,"reduce",e,t)},reduceRight(e,...t){return ni(this,"reduceRight",e,t)},shift(){return Wt(this,"shift")},some(e,t){return Qe(this,"some",e,t,void 0,arguments)},splice(...e){return Wt(this,"splice",e)},toReversed(){return Pt(this).toReversed()},toSorted(e){return Pt(this).toSorted(e)},toSpliced(...e){return Pt(this).toSpliced(...e)},unshift(...e){return Wt(this,"unshift",e)},values(){return cs(this,"values",e=>ze(this,e))}};function cs(e,t,n){const s=mn(e),i=s[t]();return s!==e&&!Re(e)&&(i._next=i.next,i.next=()=>{const r=i._next();return r.done||(r.value=n(r.value)),r}),i}const qr=Array.prototype;function Qe(e,t,n,s,i,r){const o=mn(e),l=o!==e&&!Re(e),c=o[t];if(c!==qr[t]){const g=c.apply(e,r);return l?je(g):g}let d=n;o!==e&&(l?d=function(g,w){return n.call(this,ze(e,g),w,e)}:n.length>2&&(d=function(g,w){return n.call(this,g,w,e)}));const f=c.call(o,d,s);return l&&i?i(f):f}function ni(e,t,n,s){const i=mn(e),r=i!==e&&!Re(e);let o=n,l=!1;i!==e&&(r?(l=s.length===0,o=function(d,f,g){return l&&(l=!1,d=ze(e,d)),n.call(this,d,ze(e,f),g,e)}):n.length>3&&(o=function(d,f,g){return n.call(this,d,f,g,e)}));const c=i[t](o,...s);return l?ze(e,c):c}function as(e,t,n){const s=H(e);ae(s,"iterate",Kt);const i=s[t](...n);return(i===-1||i===!1)&&hs(n[0])?(n[0]=H(n[0]),s[t](...n)):i}function Wt(e,t,n=[]){Ke(),ts();const s=H(e)[t].apply(e,n);return ns(),We(),s}const Xr=qn("__proto__,__v_isRef,__isVue"),si=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter($e));function Yr(e){$e(e)||(e=String(e));const t=H(this);return ae(t,"has",e),t.hasOwnProperty(e)}class ii{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,s){if(n==="__v_skip")return t.__v_skip;const i=this._isReadonly,r=this._isShallow;if(n==="__v_isReactive")return!i;if(n==="__v_isReadonly")return i;if(n==="__v_isShallow")return r;if(n==="__v_raw")return s===(i?r?ui:ai:r?ci:li).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const o=I(t);if(!i){let c;if(o&&(c=Gr[n]))return c;if(n==="hasOwnProperty")return Yr}const l=Reflect.get(t,n,le(t)?t:s);if(($e(n)?si.has(n):Xr(n))||(i||ae(t,"get",n),r))return l;if(le(l)){const c=o&&Yn(n)?l:l.value;return i&&z(c)?ds(c):c}return z(l)?i?ds(l):fs(l):l}}class ri extends ii{constructor(t=!1){super(!1,t)}set(t,n,s,i){let r=t[n];const o=I(t)&&Yn(n);if(!this._isShallow){const d=et(r);if(!Re(s)&&!et(s)&&(r=H(r),s=H(s)),!o&&le(r)&&!le(s))return d||(r.value=s),!0}const l=o?Number(n)e,_n=e=>Reflect.getPrototypeOf(e);function no(e,t,n){return function(...s){const i=this.__v_raw,r=H(i),o=ct(r),l=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,d=i[e](...s),f=n?us:t?Mt:je;return!t&&ae(r,"iterate",c?ls:gt),ie(Object.create(d),{next(){const{value:g,done:w}=d.next();return w?{value:g,done:w}:{value:l?[f(g[0]),f(g[1])]:f(g),done:w}}})}}function bn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function so(e,t){const n={get(i){const r=this.__v_raw,o=H(r),l=H(i);e||(Be(i,l)&&ae(o,"get",i),ae(o,"get",l));const{has:c}=_n(o),d=t?us:e?Mt:je;if(c.call(o,i))return d(r.get(i));if(c.call(o,l))return d(r.get(l));r!==o&&r.get(i)},get size(){const i=this.__v_raw;return!e&&ae(H(i),"iterate",gt),i.size},has(i){const r=this.__v_raw,o=H(r),l=H(i);return e||(Be(i,l)&&ae(o,"has",i),ae(o,"has",l)),i===l?r.has(i):r.has(i)||r.has(l)},forEach(i,r){const o=this,l=o.__v_raw,c=H(l),d=t?us:e?Mt:je;return!e&&ae(c,"iterate",gt),l.forEach((f,g)=>i.call(r,d(f),d(g),o))}};return ie(n,e?{add:bn("add"),set:bn("set"),delete:bn("delete"),clear:bn("clear")}:{add(i){const r=H(this),o=_n(r),l=H(i),c=!t&&!Re(i)&&!et(i)?l:i;return o.has.call(r,c)||Be(i,c)&&o.has.call(r,i)||Be(l,c)&&o.has.call(r,l)||(r.add(c),Ze(r,"add",c,c)),this},set(i,r){!t&&!Re(r)&&!et(r)&&(r=H(r));const o=H(this),{has:l,get:c}=_n(o);let d=l.call(o,i);d||(i=H(i),d=l.call(o,i));const f=c.call(o,i);return o.set(i,r),d?Be(r,f)&&Ze(o,"set",i,r):Ze(o,"add",i,r),this},delete(i){const r=H(this),{has:o,get:l}=_n(r);let c=o.call(r,i);c||(i=H(i),c=o.call(r,i)),l&&l.call(r,i);const d=r.delete(i);return c&&Ze(r,"delete",i,void 0),d},clear(){const i=H(this),r=i.size!==0,o=i.clear();return r&&Ze(i,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(i=>{n[i]=no(i,e,t)}),n}function vn(e,t){const n=so(e,t);return(s,i,r)=>i==="__v_isReactive"?!e:i==="__v_isReadonly"?e:i==="__v_raw"?s:Reflect.get($(n,i)&&i in s?n:s,i,r)}const io={get:vn(!1,!1)},ro={get:vn(!1,!0)},oo={get:vn(!0,!1)},lo={get:vn(!0,!0)},li=new WeakMap,ci=new WeakMap,ai=new WeakMap,ui=new WeakMap;function co(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function fs(e){return et(e)?e:yn(e,!1,Zr,io,li)}function ao(e){return yn(e,!1,eo,ro,ci)}function ds(e){return yn(e,!0,Qr,oo,ai)}function na(e){return yn(e,!0,to,lo,ui)}function yn(e,t,n,s,i){if(!z(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const r=i.get(e);if(r)return r;const o=co(Nr(e));if(o===0)return e;const l=new Proxy(e,o===2?s:n);return i.set(e,l),l}function mt(e){return et(e)?mt(e.__v_raw):!!(e&&e.__v_isReactive)}function et(e){return!!(e&&e.__v_isReadonly)}function Re(e){return!!(e&&e.__v_isShallow)}function hs(e){return e?!!e.__v_raw:!1}function H(e){const t=e&&e.__v_raw;return t?H(t):e}function uo(e){return!$(e,"__v_skip")&&Object.isExtensible(e)&&Hs(e,"__v_skip",!0),e}const je=e=>z(e)?fs(e):e,Mt=e=>z(e)?ds(e):e;function le(e){return e?e.__v_isRef===!0:!1}function te(e){return fo(e,!1)}function fo(e,t){return le(e)?e:new ho(e,t)}class ho{constructor(t,n){this.dep=new rs,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:H(t),this._value=n?t:je(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,s=this.__v_isShallow||Re(t)||et(t);t=s?t:H(t),Be(t,n)&&(this._rawValue=t,this._value=s?t:je(t),this.dep.trigger())}}function fi(e){return le(e)?e.value:e}const po={get:(e,t,n)=>t==="__v_raw"?e:fi(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const i=e[t];return le(i)&&!le(n)?(i.value=n,!0):Reflect.set(e,t,n,s)}};function di(e){return mt(e)?e:new Proxy(e,po)}class go{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new rs(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Bt-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&X!==this)return qs(this,!0),!0}get value(){const t=this.dep.track();return Zs(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function mo(e,t,n=!1){let s,i;return N(e)?s=e:(s=e.get,i=e.set),new go(s,i,n)}const xn={},wn=new WeakMap;let _t;function _o(e,t=!1,n=_t){if(n){let s=wn.get(n);s||wn.set(n,s=[]),s.push(e)}}function bo(e,t,n=G){const{immediate:s,deep:i,once:r,scheduler:o,augmentJob:l,call:c}=n,d=P=>i?P:Re(P)||i===!1||i===0?tt(P,1):tt(P);let f,g,w,E,V=!1,A=!1;if(le(e)?(g=()=>e.value,V=Re(e)):mt(e)?(g=()=>d(e),V=!0):I(e)?(A=!0,V=e.some(P=>mt(P)||Re(P)),g=()=>e.map(P=>{if(le(P))return P.value;if(mt(P))return d(P);if(N(P))return c?c(P,2):P()})):N(e)?t?g=c?()=>c(e,2):e:g=()=>{if(w){Ke();try{w()}finally{We()}}const P=_t;_t=f;try{return c?c(e,3,[E]):e(E)}finally{_t=P}}:g=Ue,t&&i){const P=g,Z=i===!0?1/0:i;g=()=>tt(P(),Z)}const Y=Wr(),J=()=>{f.stop(),Y&&Y.active&&Xn(Y.effects,f)};if(r&&t){const P=t;t=(...Z)=>{const me=P(...Z);return J(),me}}let F=A?new Array(e.length).fill(xn):xn;const U=P=>{if(!(!(f.flags&1)||!f.dirty&&!P))if(t){const Z=f.run();if(P||i||V||(A?Z.some((me,_e)=>Be(me,F[_e])):Be(Z,F))){w&&w();const me=_t;_t=f;try{const _e=[Z,F===xn?void 0:A&&F[0]===xn?[]:F,E];F=Z,c?c(t,3,_e):t(..._e)}finally{_t=me}}}else f.run()};return l&&l(U),f=new Js(g),f.scheduler=o?()=>o(U,!1):U,E=P=>_o(P,!1,f),w=f.onStop=()=>{const P=wn.get(f);if(P){if(c)c(P,4);else for(const Z of P)Z();wn.delete(f)}},t?s?U(!0):F=f.run():o?o(U.bind(null,!0),!0):f.run(),J.pause=f.pause.bind(f),J.resume=f.resume.bind(f),J.stop=J,J}function tt(e,t=1/0,n){if(t<=0||!z(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,le(e))tt(e.value,t,n);else if(I(e))for(let s=0;s{tt(s,t,n)});else if(un(e)){for(const s in e)tt(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&tt(e[s],t,n)}return e}/** +* @vue/runtime-core v3.5.42 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const zt=[];let ps=!1;function sa(e,...t){if(ps)return;ps=!0,Ke();const n=zt.length?zt[zt.length-1].component:null,s=n&&n.appContext.config.warnHandler,i=vo();if(s)It(s,n,11,[e+t.map(r=>{var o,l;return(l=(o=r.toString)==null?void 0:o.call(r))!=null?l:JSON.stringify(r)}).join(""),n&&n.proxy,i.map(({vnode:r})=>`at <${fr(n,r.type)}>`).join(` +`),i]);else{const r=[`[Vue warn]: ${e}`,...t];i.length&&r.push(` +`,...yo(i)),console.warn(...r)}We(),ps=!1}function vo(){let e=zt[zt.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const s=e.component&&e.component.parent;e=s&&s.vnode}return t}function yo(e){const t=[];return e.forEach((n,s)=>{t.push(...s===0?[]:[` +`],...xo(n))}),t}function xo({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",s=e.component?e.component.parent==null:!1,i=` at <${fr(e.component,e.type,s)}`,r=">"+n;return e.props?[i,...wo(e.props),r]:[i+r]}function wo(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(s=>{t.push(...hi(s,e[s]))}),n.length>3&&t.push(" ..."),t}function hi(e,t,n){return Q(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[`${e}=${t}`]:le(t)?(t=hi(e,H(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):N(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=H(t),n?t:[`${e}=`,t])}function It(e,t,n,s){try{return s?e(...s):e()}catch(i){Sn(i,t,n)}}function Ve(e,t,n,s){if(N(e)){const i=It(e,t,n,s);return i&&js(i)&&i.catch(r=>{Sn(r,t,n)}),i}if(I(e)){const i=[];for(let r=0;r>>1,i=de[s],r=Gt(i);r=Gt(n)?de.push(e):de.splice(Co(t),0,e),e.flags|=1,gi()}}function gi(){Cn||(Cn=pi.then(bi))}function To(e){if(!I(e))ut&&e.id===-1?ut.splice(Nt+1,0,e):e.flags&1||(kt.push(e),e.flags|=1);else for(let t=0;tGt(n)-Gt(s));if(kt.length=0,ut){for(let n=0;ne.id==null?e.flags&2?-1:1/0:e.id;function bi(e){try{for(Je=0;Je{s._d&&sr(-1);const r=Tn(t),o=yt.length;let l;try{l=e(...i)}finally{for(let c=yt.length;c>o;c--)nr();Tn(r),s._d&&sr(1)}return l};return s._n=!0,s._c=!0,s._d=!0,s}function ms(e,t){if(Oe===null)return e;const n=jn(Oe),s=e.dirs||(e.dirs=[]);for(let i=0;i1)return n&&N(t)?t.call(s&&s.proxy):t}}const Ro=Symbol.for("v-scx"),Oo=()=>An(Ro);function _s(e,t,n){return yi(e,t,n)}function yi(e,t,n=G){const{immediate:s,deep:i,flush:r,once:o}=n,l=ie({},n),c=t&&s||!t&&r!=="post";let d;if(sn){if(r==="sync"){const E=Oo();d=E.__watcherHandles||(E.__watcherHandles=[])}else if(!c){const E=()=>{};return E.stop=Ue,E.resume=Ue,E.pause=Ue,E}}const f=ge;l.call=(E,V,A)=>Ve(E,f,V,A);let g=!1;r==="post"?l.scheduler=E=>{xe(E,f&&f.suspense)}:r!=="sync"&&(g=!0,l.scheduler=(E,V)=>{V?E():gs(E)}),l.augmentJob=E=>{t&&(E.flags|=4),g&&(E.flags|=2,f&&(E.id=f.uid,E.i=f))};const w=bo(e,t,l);return sn&&(d?d.push(w):c&&w()),w}function Po(e,t,n){const s=this.proxy,i=Q(e)?e.includes(".")?xi(s,e):()=>s[e]:e.bind(s,s);let r;N(t)?r=t:(r=t.handler,n=t);const o=nn(this),l=yi(i,r.bind(s),n);return o(),l}function xi(e,t){const n=t.split(".");return()=>{let s=e;for(let i=0;ie.__isTeleport,bs=Symbol("_leaveCb");function Io(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==st){t=n;break}}return t}function wi(e){if(!ys(e))return En(e.type)&&e.children?Io(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&N(n.default))return n.default()}}function vs(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const n=e.component.subTree;vs(En(n.type)&&wi(n)||n,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function ko(e,t){return N(e)?ie({name:e.name},t,{setup:e}):e}function Si(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Ci(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}const Rn=new WeakMap;function qt(e,t,n,s,i=!1){if(I(e)){e.forEach((A,Y)=>qt(A,t&&(I(t)?t[Y]:t),n,s,i));return}if(Xt(s)&&!i){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&qt(e,t,n,s.component.subTree);return}const r=s.shapeFlag&4?jn(s.component):s.el,o=i?null:r,{i:l,r:c}=e,d=t&&t.r,f=l.refs===G?l.refs={}:l.refs,g=l.setupState,w=H(g),E=g===G?Ds:A=>Ci(f,A)?!1:$(w,A),V=(A,Y)=>!(Y&&Ci(f,Y));if(d!=null&&d!==c){if(Ti(t),Q(d))f[d]=null,E(d)&&(g[d]=null);else if(le(d)){const A=t;V(d,A.k)&&(d.value=null),A.k&&(f[A.k]=null)}}if(N(c))It(c,l,12,[o,f]);else{const A=Q(c),Y=le(c);if(A||Y){const J=()=>{if(e.f){const F=A?E(c)?g[c]:f[c]:V()||!e.k?c.value:f[e.k];if(i)I(F)&&Xn(F,r);else if(I(F))F.includes(r)||F.push(r);else if(A)f[c]=[r],E(c)&&(g[c]=f[c]);else{const U=[r];V(c,e.k)&&(c.value=U),e.k&&(f[e.k]=U)}}else A?(f[c]=o,E(c)&&(g[c]=o)):Y&&(V(c,e.k)&&(c.value=o),e.k&&(f[e.k]=o))};if(o){const F=()=>{J(),Rn.delete(e)};F.id=-1,Rn.set(e,F),xe(F,n)}else Ti(e),J()}}}function Ti(e){const t=Rn.get(e);t&&(t.flags|=8,Rn.delete(e))}pn().requestIdleCallback,pn().cancelIdleCallback;const Xt=e=>!!e.type.__asyncLoader,ys=e=>e.type.__isKeepAlive;function No(e,t){Ai(e,"a",t)}function Do(e,t){Ai(e,"da",t)}function Ai(e,t,n=ge){const s=e.__wdc||(e.__wdc=()=>{let i=n;for(;i;){if(i.isDeactivated)return;i=i.parent}return e()});if(On(t,s,n),n){let i=n.parent;for(;i&&i.parent;)ys(i.parent.vnode)&&Fo(s,t,n,i),i=i.parent}}function Fo(e,t,n,s){const i=On(t,e,s,!0);Oi(()=>{Xn(s[t],i)},n)}function On(e,t,n=ge,s=!1){if(n){const i=n[e]||(n[e]=[]),r=t.__weh||(t.__weh=(...o)=>{Ke();const l=nn(n),c=Ve(t,n,e,o);return l(),We(),c});return s?i.unshift(r):i.push(r),r}}const nt=e=>(t,n=ge)=>{(!sn||e==="sp")&&On(e,(...s)=>t(...s),n)},jo=nt("bm"),Ei=nt("m"),Vo=nt("bu"),Lo=nt("u"),Ri=nt("bum"),Oi=nt("um"),Ho=nt("sp"),Uo=nt("rtg"),$o=nt("rtc");function Bo(e,t=ge){On("ec",e,t)}const Ko=Symbol.for("v-ndc");function Pi(e,t,n,s){let i;const r=n,o=I(e);if(o||Q(e)){const l=o&&mt(e);let c=!1,d=!1;l&&(c=!Re(e),d=et(e),e=mn(e)),i=new Array(e.length);for(let f=0,g=e.length;ft(l,c,void 0,r));else{const l=Object.keys(e);i=new Array(l.length);for(let c=0,d=l.length;ce?cr(e)?jn(e):xs(e.parent):null,Yt=ie(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=>xs(e.parent),$root:e=>xs(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ni(e),$forceUpdate:e=>e.f||(e.f=()=>{gs(e.update)}),$nextTick:e=>e.n||(e.n=Jt.bind(e.proxy)),$watch:e=>Po.bind(e)}),ws=(e,t)=>e!==G&&!e.__isScriptSetup&&$(e,t),Wo={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:i,props:r,accessCache:o,type:l,appContext:c}=e;if(t[0]!=="$"){const w=o[t];if(w!==void 0)switch(w){case 1:return s[t];case 2:return i[t];case 4:return n[t];case 3:return r[t]}else{if(ws(s,t))return o[t]=1,s[t];if(i!==G&&$(i,t))return o[t]=2,i[t];if($(r,t))return o[t]=3,r[t];if(n!==G&&$(n,t))return o[t]=4,n[t];Ss&&(o[t]=0)}}const d=Yt[t];let f,g;if(d)return t==="$attrs"&&ae(e.attrs,"get",""),d(e);if((f=l.__cssModules)&&(f=f[t]))return f;if(n!==G&&$(n,t))return o[t]=4,n[t];if(g=c.config.globalProperties,$(g,t))return g[t]},set({_:e},t,n){const{data:s,setupState:i,ctx:r}=e;return ws(i,t)?(i[t]=n,!0):s!==G&&$(s,t)?(s[t]=n,!0):$(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:i,props:r,type:o}},l){let c;return!!(n[l]||e!==G&&l[0]!=="$"&&$(e,l)||ws(t,l)||$(r,l)||$(s,l)||$(Yt,l)||$(i.config.globalProperties,l)||(c=o.__cssModules)&&c[l])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:$(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Mi(e){return I(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Ss=!0;function zo(e){const t=Ni(e),n=e.proxy,s=e.ctx;Ss=!1,t.beforeCreate&&Ii(t.beforeCreate,e,"bc");const{data:i,computed:r,methods:o,watch:l,provide:c,inject:d,created:f,beforeMount:g,mounted:w,beforeUpdate:E,updated:V,activated:A,deactivated:Y,beforeDestroy:J,beforeUnmount:F,destroyed:U,unmounted:P,render:Z,renderTracked:me,renderTriggered:_e,errorCaptured:we,serverPrefetch:Me,expose:Ie,inheritAttrs:Xe,components:fe,directives:He,filters:be}=t;if(d&&Jo(d,s,null),o)for(const q in o){const K=o[q];N(K)&&(s[q]=K.bind(n))}if(i){const q=i.call(n,n);z(q)&&(e.data=fs(q))}if(Ss=!0,r)for(const q in r){const K=r[q],Ye=N(K)?K.bind(n,n):N(K.get)?K.get.bind(n,n):Ue,Ct=!N(K)&&N(K.set)?K.set.bind(n):Ue,lt=xt({get:Ye,set:Ct});Object.defineProperty(s,q,{enumerable:!0,configurable:!0,get:()=>lt.value,set:ne=>lt.value=ne})}if(l)for(const q in l)ki(l[q],s,n,q);if(c){const q=N(c)?c.call(n):c;Reflect.ownKeys(q).forEach(K=>{Eo(K,q[K])})}f&&Ii(f,e,"c");function ce(q,K){I(K)?K.forEach(Ye=>q(Ye.bind(n))):K&&q(K.bind(n))}if(ce(jo,g),ce(Ei,w),ce(Vo,E),ce(Lo,V),ce(No,A),ce(Do,Y),ce(Bo,we),ce($o,me),ce(Uo,_e),ce(Ri,F),ce(Oi,P),ce(Ho,Me),I(Ie))if(Ie.length){const q=e.exposed||(e.exposed={});Ie.forEach(K=>{Object.defineProperty(q,K,{get:()=>n[K],set:Ye=>n[K]=Ye,enumerable:!0})})}else e.exposed||(e.exposed={});Z&&e.render===Ue&&(e.render=Z),Xe!=null&&(e.inheritAttrs=Xe),fe&&(e.components=fe),He&&(e.directives=He),Me&&Si(e)}function Jo(e,t,n=Ue){I(e)&&(e=Cs(e));for(const s in e){const i=e[s];let r;z(i)?"default"in i?r=An(i.from||s,i.default,!0):r=An(i.from||s):r=An(i),le(r)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>r.value,set:o=>r.value=o}):t[s]=r}}function Ii(e,t,n){Ve(I(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function ki(e,t,n,s){let i=s.includes(".")?xi(n,s):()=>n[s];if(Q(e)){const r=t[e];N(r)&&_s(i,r)}else if(N(e))_s(i,e.bind(n));else if(z(e))if(I(e))e.forEach(r=>ki(r,t,n,s));else{const r=N(e.handler)?e.handler.bind(n):t[e.handler];N(r)&&_s(i,r,e)}}function Ni(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:i,optionsCache:r,config:{optionMergeStrategies:o}}=e.appContext,l=r.get(t);let c;return l?c=l:!i.length&&!n&&!s?c=t:(c={},i.length&&i.forEach(d=>Pn(c,d,o,!0)),Pn(c,t,o)),z(t)&&r.set(t,c),c}function Pn(e,t,n,s=!1){const{mixins:i,extends:r}=t;r&&Pn(e,r,n,!0),i&&i.forEach(o=>Pn(e,o,n,!0));for(const o in t)if(!(s&&o==="expose")){const l=Go[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const Go={data:Di,props:Fi,emits:Fi,methods:Zt,computed:Zt,beforeCreate:he,created:he,beforeMount:he,mounted:he,beforeUpdate:he,updated:he,beforeDestroy:he,beforeUnmount:he,destroyed:he,unmounted:he,activated:he,deactivated:he,errorCaptured:he,serverPrefetch:he,components:Zt,directives:Zt,watch:Xo,provide:Di,inject:qo};function Di(e,t){return t?e?function(){return ie(N(e)?e.call(this,this):e,N(t)?t.call(this,this):t)}:t:e}function qo(e,t){return Zt(Cs(e),Cs(t))}function Cs(e){if(I(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${ye(t)}Modifiers`]||e[`${Ee(t)}Modifiers`];function el(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||G;let i=n;const r=t.startsWith("update:"),o=r&&Qo(s,t.slice(7));o&&(o.trim&&(i=n.map(f=>Q(f)?f.trim():f)),o.number&&(i=i.map(hn)));let l,c=s[l=Zn(t)]||s[l=Zn(ye(t))];!c&&r&&(c=s[l=Zn(Ee(t))]),c&&Ve(c,e,6,i);const d=s[l+"Once"];if(d){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Ve(d,e,6,i)}}const tl=new WeakMap;function Vi(e,t,n=!1){const s=n?tl:t.emitsCache,i=s.get(e);if(i!==void 0)return i;const r=e.emits;let o={},l=!1;if(!N(e)){const c=d=>{const f=Vi(d,t,!0);f&&(l=!0,ie(o,f))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!r&&!l?(z(e)&&s.set(e,null),null):(I(r)?r.forEach(c=>o[c]=null):ie(o,r),z(e)&&s.set(e,o),o)}function Mn(e,t){return!e||!cn(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),$(e,t[0].toLowerCase()+t.slice(1))||$(e,Ee(t))||$(e,t))}function ia(){}function Li(e){const{type:t,vnode:n,proxy:s,withProxy:i,propsOptions:[r],slots:o,attrs:l,emit:c,render:d,renderCache:f,props:g,data:w,setupState:E,ctx:V,inheritAttrs:A}=e,Y=Tn(e);let J,F;try{if(n.shapeFlag&4){const P=i||s,Z=P;J=Ge(d.call(Z,P,f,g,E,w,V)),F=l}else{const P=t;J=Ge(P.length>1?P(g,{attrs:l,slots:o,emit:c}):P(g,null)),F=t.props?l:nl(l)}}catch(P){yt.length=0,Sn(P,e,1),J=Le(st)}let U=J;if(F&&A!==!1){const P=Object.keys(F),{shapeFlag:Z}=U;P.length&&Z&7&&(r&&P.some(an)&&(F=sl(F,r)),U=Ft(U,F,!1,!0))}if(n.dirs&&(U=Ft(U,null,!1,!0),U.dirs=U.dirs?U.dirs.concat(n.dirs):n.dirs),n.transition){const P=En(U.type)&&wi(U)||U;vs(P,n.transition)}return J=U,Tn(Y),J}const nl=e=>{let t;for(const n in e)(n==="class"||n==="style"||cn(n))&&((t||(t={}))[n]=e[n]);return t},sl=(e,t)=>{const n={};for(const s in e)(!an(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function il(e,t,n){const{props:s,children:i,component:r}=e,{props:o,children:l,patchFlag:c}=t,d=r.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?Hi(s,o,d):!!o;if(c&8){const f=t.dynamicProps;for(let g=0;gObject.create($i),Ki=e=>Object.getPrototypeOf(e)===$i;function ol(e,t,n,s=!1){const i={},r=Bi();e.propsDefaults=Object.create(null),Wi(e,t,i,r);for(const o in e.propsOptions[0])o in i||(i[o]=void 0);n?e.props=s?i:ao(i):e.type.props?e.props=i:e.props=r,e.attrs=r}function ll(e,t,n,s){const{props:i,attrs:r,vnode:{patchFlag:o}}=e,l=H(i),[c]=e.propsOptions;let d=!1;if((s||o>0)&&!(o&16)){if(o&8){const f=e.vnode.dynamicProps;for(let g=0;g{c=!0;const[w,E]=zi(g,t,!0);ie(o,w),E&&l.push(...E)};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!r&&!c)return z(e)&&s.set(e,Ot),Ot;if(I(r))for(let f=0;fe==="_"||e==="_ctx"||e==="$stable",Es=e=>I(e)?e.map(Ge):[Ge(e)],al=(e,t,n)=>{if(t._n)return t;const s=Ao((...i)=>Es(t(...i)),n);return s._c=!1,s},Gi=(e,t,n)=>{const s=e._ctx;for(const i in e){if(As(i))continue;const r=e[i];if(N(r))t[i]=al(i,r,s);else if(r!=null){const o=Es(r);t[i]=()=>o}}},qi=(e,t)=>{const n=Es(t);e.slots.default=()=>n},Xi=(e,t,n)=>{for(const s in t)(n||!As(s))&&(e[s]=t[s])},ul=(e,t,n)=>{const s=e.slots=Bi();if(e.vnode.shapeFlag&32){const i=t._;i?(Xi(s,t,n),n&&Hs(s,"_",i,!0)):Gi(t,s)}else t&&qi(e,t)},fl=(e,t,n)=>{const{vnode:s,slots:i}=e;let r=!0,o=G;if(s.shapeFlag&32){const l=t._;l?n&&l===1?r=!1:Xi(i,t,n):(r=!t.$stable,Gi(t,i)),o=t}else t&&(qi(e,t),o={default:1});if(r)for(const l in i)!As(l)&&o[l]==null&&delete i[l]},xe=ml;function dl(e){return hl(e)}function hl(e,t){const n=pn();n.__VUE__=!0;const{insert:s,remove:i,patchProp:r,createElement:o,createText:l,createComment:c,setText:d,setElementText:f,parentNode:g,nextSibling:w,setScopeId:E=Ue,insertStaticContent:V}=e,A=(a,u,h,v=null,_=null,m=null,C=void 0,S=null,x=!!u.dynamicChildren)=>{if(a===u)return;a&&!en(a,u)&&(v=Ce(a),ne(a,_,m,!0),a=null),u.patchFlag===-2&&(x=!1,u.dynamicChildren=null);const{type:b,ref:O,shapeFlag:T}=u;switch(b){case In:Y(a,u,h,v);break;case st:J(a,u,h,v);break;case kn:a==null&&F(u,h,v,C);break;case Pe:fe(a,u,h,v,_,m,C,S,x);break;default:T&1?Z(a,u,h,v,_,m,C,S,x):T&6?He(a,u,h,v,_,m,C,S,x):(T&64||T&128)&&b.process(a,u,h,v,_,m,C,S,x,Et)}O!=null&&_?qt(O,a&&a.ref,m,u||a,!u):O==null&&a&&a.ref!=null&&qt(a.ref,null,m,a,!0)},Y=(a,u,h,v)=>{if(a==null)s(u.el=l(u.children),h,v);else{const _=u.el=a.el;u.children!==a.children&&d(_,u.children)}},J=(a,u,h,v)=>{a==null?s(u.el=c(u.children||""),h,v):u.el=a.el},F=(a,u,h,v)=>{[a.el,a.anchor]=V(a.children,u,h,v,a.el,a.anchor)},U=({el:a,anchor:u},h,v)=>{let _;for(;a&&a!==u;)_=w(a),s(a,h,v),a=_;s(u,h,v)},P=({el:a,anchor:u})=>{let h;for(;a&&a!==u;)h=w(a),i(a),a=h;i(u)},Z=(a,u,h,v,_,m,C,S,x)=>{if(u.type==="svg"?C="svg":u.type==="math"&&(C="mathml"),a==null)me(u,h,v,_,m,C,S,x);else{const b=a.el&&a.el._isVueCE?a.el:null;try{b&&b._beginPatch(),Me(a,u,_,m,C,S,x)}finally{b&&b._endPatch()}}},me=(a,u,h,v,_,m,C,S)=>{let x,b;const{props:O,shapeFlag:T,transition:R,dirs:k}=a;if(x=a.el=o(a.type,m,O&&O.is,O),T&8?f(x,a.children):T&16&&we(a.children,x,null,v,_,Rs(a,m),C,S),k&&bt(a,null,v,"created"),_e(x,a,a.scopeId,C,v),O){for(const W in O)W!=="value"&&!Lt(W)&&r(x,W,null,O[W],m,v);"value"in O&&r(x,"value",null,O.value,m),(b=O.onVnodeBeforeMount)&&qe(b,v,a)}k&&bt(a,null,v,"beforeMount");const j=pl(_,R);j&&R.beforeEnter(x),s(x,u,h),((b=O&&O.onVnodeMounted)||j||k)&&xe(()=>{try{b&&qe(b,v,a),j&&R.enter(x),k&&bt(a,null,v,"mounted")}finally{}},_)},_e=(a,u,h,v,_)=>{if(h&&E(a,h),v)for(let m=0;m{for(let b=x;b{const S=u.el=a.el;let{patchFlag:x,dynamicChildren:b,dirs:O}=u;x|=a.patchFlag&16;const T=a.props||G,R=u.props||G;let k;if(h&&vt(h,!1),(k=R.onVnodeBeforeUpdate)&&qe(k,h,u,a),O&&bt(u,a,h,"beforeUpdate"),h&&vt(h,!0),b&&(!a.dynamicChildren||a.dynamicChildren.length!==b.length)&&(x=0,C=!1,b=null),(T.innerHTML&&R.innerHTML==null||T.textContent&&R.textContent==null)&&f(S,""),b?Ie(a.dynamicChildren,b,S,h,v,Rs(u,_),m):C||K(a,u,S,null,h,v,Rs(u,_),m,!1),x>0){if(x&16)Xe(S,T,R,h,_);else if(x&2&&T.class!==R.class&&r(S,"class",null,R.class,_),x&4&&r(S,"style",T.style,R.style,_),x&8){const j=u.dynamicProps;for(let W=0;W{k&&qe(k,h,u,a),O&&bt(u,a,h,"updated")},v)},Ie=(a,u,h,v,_,m,C)=>{for(let S=0;S{if(u!==h){if(u!==G)for(const m in u)!Lt(m)&&!(m in h)&&r(a,m,u[m],null,_,v);for(const m in h){if(Lt(m))continue;const C=h[m],S=u[m];C!==S&&m!=="value"&&r(a,m,S,C,_,v)}"value"in h&&r(a,"value",u.value,h.value,_)}},fe=(a,u,h,v,_,m,C,S,x)=>{const b=u.el=a?a.el:l(""),O=u.anchor=a?a.anchor:l("");let{patchFlag:T,dynamicChildren:R,slotScopeIds:k}=u;k&&(S=S?S.concat(k):k),a==null?(s(b,h,v),s(O,h,v),we(u.children||[],h,O,_,m,C,S,x)):T>0&&T&64&&R&&a.dynamicChildren&&a.dynamicChildren.length===R.length?(Ie(a.dynamicChildren,R,h,_,m,C,S),(u.key!=null||_&&u===_.subTree)&&Yi(a,u,!0)):K(a,u,h,O,_,m,C,S,x)},He=(a,u,h,v,_,m,C,S,x)=>{u.slotScopeIds=S,a==null?u.shapeFlag&512?_.ctx.activate(u,h,v,C,x):be(u,h,v,_,m,C,x):$n(a,u,x)},be=(a,u,h,v,_,m,C)=>{const S=a.component=Cl(a,v,_);if(ys(a)&&(S.ctx.renderer=Et),Al(S,!1,C),S.asyncDep){if(_&&_.registerDep(S,ce,C),!a.el){const x=S.subTree=Le(st);J(null,x,u,h),a.placeholder=x.el}}else ce(S,a,u,h,_,m,C)},$n=(a,u,h)=>{const v=u.component=a.component;if(il(a,u,h))if(v.asyncDep&&!v.asyncResolved){q(v,u,h);return}else v.next=u,v.update();else u.el=a.el,v.vnode=u},ce=(a,u,h,v,_,m,C)=>{const S=()=>{if(a.isMounted){let{next:T,bu:R,u:k,parent:j,vnode:W}=a;{const Ae=Zi(a);if(Ae){T&&(T.el=W.el,q(a,T,C)),Ae.asyncDep.then(()=>{xe(()=>{a.isUnmounted||b()},_)});return}}let B=T,se;vt(a,!1),T?(T.el=W.el,q(a,T,C)):T=W,R&&dn(R),(se=T.props&&T.props.onVnodeBeforeUpdate)&&qe(se,j,T,W),vt(a,!0);const re=Li(a),Te=a.subTree;a.subTree=re,A(Te,re,g(Te.el),Ce(Te),a,_,m),T.el=re.el,B===null&&rl(a,re.el),k&&xe(k,_),(se=T.props&&T.props.onVnodeUpdated)&&xe(()=>qe(se,j,T,W),_)}else{let T;const{el:R,props:k}=u,{bm:j,m:W,parent:B,root:se,type:re}=a,Te=Xt(u);vt(a,!1),j&&dn(j),!Te&&(T=k&&k.onVnodeBeforeMount)&&qe(T,B,u),vt(a,!0);{se.ce&&se.ce._hasShadowRoot()&&se.ce._injectChildStyle(re,a.parent?a.parent.type:void 0);const Ae=a.subTree=Li(a);A(null,Ae,h,v,a,_,m),u.el=Ae.el}if(W&&xe(W,_),!Te&&(T=k&&k.onVnodeMounted)){const Ae=u;xe(()=>qe(T,B,Ae),_)}(u.shapeFlag&256||B&&Xt(B.vnode)&&B.vnode.shapeFlag&256)&&a.a&&xe(a.a,_),a.isMounted=!0,u=h=v=null}};a.scope.on();const x=a.effect=new Js(S);a.scope.off();const b=a.update=x.run.bind(x),O=a.job=x.runIfDirty.bind(x);O.i=a,O.id=a.uid,x.scheduler=()=>gs(O),vt(a,!0),b()},q=(a,u,h)=>{u.component=a;const v=a.vnode.props;a.vnode=u,a.next=null,ll(a,u.props,v,h),fl(a,u.children,h),Ke(),mi(a),We()},K=(a,u,h,v,_,m,C,S,x=!1)=>{const b=a&&a.children,O=a?a.shapeFlag:0,T=u.children,{patchFlag:R,shapeFlag:k}=u;if(R>0){if(R&128){Ct(b,T,h,v,_,m,C,S,x);return}else if(R&256){Ye(b,T,h,v,_,m,C,S,x);return}}k&8?(O&16&&L(b,_,m),T!==b&&f(h,T)):O&16?k&16?Ct(b,T,h,v,_,m,C,S,x):L(b,_,m,!0):(O&8&&f(h,""),k&16&&we(T,h,v,_,m,C,S,x))},Ye=(a,u,h,v,_,m,C,S,x)=>{a=a||Ot,u=u||Ot;const b=a.length,O=u.length,T=Math.min(b,O);let R;for(R=0;RO?L(a,_,m,!0,!1,T):we(u,h,v,_,m,C,S,x,T)},Ct=(a,u,h,v,_,m,C,S,x)=>{let b=0;const O=u.length;let T=a.length-1,R=O-1;for(;b<=T&&b<=R;){const k=a[b],j=u[b]=x?rt(u[b]):Ge(u[b]);if(en(k,j))A(k,j,h,null,_,m,C,S,x);else break;b++}for(;b<=T&&b<=R;){const k=a[T],j=u[R]=x?rt(u[R]):Ge(u[R]);if(en(k,j))A(k,j,h,null,_,m,C,S,x);else break;T--,R--}if(b>T){if(b<=R){const k=R+1,j=kR)for(;b<=T;)ne(a[b],_,m,!0),b++;else{const k=b,j=b,W=new Map;for(b=j;b<=R;b++){const ve=u[b]=x?rt(u[b]):Ge(u[b]);ve.key!=null&&W.set(ve.key,b)}let B,se=0;const re=R-j+1;let Te=!1,Ae=0;const dt=new Array(re);for(b=0;b=re){ne(ve,_,m,!0);continue}let Ne;if(ve.key!=null)Ne=W.get(ve.key);else for(B=j;B<=R;B++)if(dt[B-j]===0&&en(ve,u[B])){Ne=B;break}Ne===void 0?ne(ve,_,m,!0):(dt[Ne-j]=b+1,Ne>=Ae?Ae=Ne:Te=!0,A(ve,u[Ne],h,null,_,m,C,S,x),se++)}const Kn=Te?gl(dt):Ot;for(B=Kn.length-1,b=re-1;b>=0;b--){const ve=j+b,Ne=u[ve],Wn=u[ve+1],zn=ve+1{const{el:m,type:C,transition:S,children:x,shapeFlag:b}=a;if(b&6){lt(a.component.subTree,u,h,v);return}if(b&128){a.suspense.move(u,h,v);return}if(b&64){C.move(a,u,h,Et);return}if(C===Pe){s(m,u,h);for(let T=0;TS.enter(m),_));else{const{leave:T,delayLeave:R,afterLeave:k}=S,j=()=>{a.ctx.isUnmounted?i(m):s(m,u,h)},W=()=>{const B=m._isLeaving||!!m[bs];m._isLeaving&&m[bs](!0),S.persisted&&!B?j():T(m,()=>{j(),k&&k()})};R?R(m,j,W):W()}else s(m,u,h)},ne=(a,u,h,v=!1,_=!1)=>{const{type:m,props:C,ref:S,children:x,dynamicChildren:b,shapeFlag:O,patchFlag:T,dirs:R,cacheIndex:k,memo:j}=a;if(T===-2&&(_=!1),S!=null&&(Ke(),qt(S,null,h,a,!0),We()),k!=null&&(u.renderCache[k]=void 0),O&256){u.ctx.deactivate(a);return}const W=O&1&&R,B=!Xt(a);let se;if(B&&(se=C&&C.onVnodeBeforeUnmount)&&qe(se,u,a),O&6)ke(a.component,h,v);else{if(O&128){a.suspense.unmount(h,v);return}W&&bt(a,null,u,"beforeUnmount"),O&64?a.type.remove(a,u,h,Et,v):b&&!b.hasOnce&&(m!==Pe||T>0&&T&64)?L(b,u,h,!1,!0):(m===Pe&&T&384||!_&&O&16)&&L(x,u,h),v&&jt(a)}const re=j!=null&&k==null;(B&&(se=C&&C.onVnodeUnmounted)||W||re)&&xe(()=>{se&&qe(se,u,a),W&&bt(a,null,u,"unmounted"),re&&(a.el=null)},h)},jt=a=>{const{type:u,el:h,anchor:v,transition:_}=a;if(u===Pe){Tt(h,v);return}if(u===kn){P(a);return}const m=()=>{i(h),_&&!_.persisted&&_.afterLeave&&_.afterLeave()};if(a.shapeFlag&1&&_&&!_.persisted){const{leave:C,delayLeave:S}=_,x=()=>C(h,m);S?S(a.el,m,x):x()}else m()},Tt=(a,u)=>{let h;for(;a!==u;)h=w(a),i(a),a=h;i(u)},ke=(a,u,h)=>{const{bum:v,scope:_,job:m,subTree:C,um:S,m:x,a:b}=a;Qi(x),Qi(b),v&&dn(v),_.stop(),m&&(m.flags|=8,ne(C,a,u,h)),S&&xe(S,u),xe(()=>{a.isUnmounted=!0},u)},L=(a,u,h,v=!1,_=!1,m=0)=>{for(let C=m;C{if(a.shapeFlag&6)return Ce(a.component.subTree);if(a.shapeFlag&128)return a.suspense.next();const u=w(a.anchor||a.el),h=u&&u[Mo];return h?w(h):u};let At=!1;const on=(a,u,h)=>{let v;a==null?u._vnode&&(ne(u._vnode,null,null,!0),v=u._vnode.component):A(u._vnode||null,a,u,null,null,null,h),u._vnode=a,At||(At=!0,mi(v),_i(),At=!1)},Et={p:A,um:ne,m:lt,r:jt,mt:be,mc:we,pc:K,pbc:Ie,n:Ce,o:e};return{render:on,hydrate:void 0,createApp:Zo(on)}}function Rs({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function vt({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function pl(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Yi(e,t,n=!1){const s=e.children,i=t.children;if(I(s)&&I(i))for(let r=0;r>1,e[n[l]]0&&(t[s]=n[r-1]),n[r]=s)}}for(r=n.length,o=n[r-1];r-- >0;)n[r]=o,o=t[o];return n}function Zi(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Zi(t)}function Qi(e){if(e)for(let t=0;te.__isSuspense;function ml(e,t){t&&t.pendingBranch?I(e)?t.effects.push(...e):t.effects.push(e):To(e)}const Pe=Symbol.for("v-fgt"),In=Symbol.for("v-txt"),st=Symbol.for("v-cmt"),kn=Symbol.for("v-stc"),yt=[];let Se=null;function ue(e=!1){yt.push(Se=e?null:[])}function nr(){yt.pop(),Se=yt[yt.length-1]||null}let Qt=1;function sr(e,t=!1){Qt+=e,e<0&&Se&&t&&(Se.hasOnce=!0)}function ir(e){return e.dynamicChildren=Qt>0?Se||Ot:null,nr(),Qt>0&&Se&&Se.push(e),e}function pe(e,t,n,s,i,r){return ir(M(e,t,n,s,i,r,!0))}function _l(e,t,n,s,i){return ir(Le(e,t,n,s,i,!0))}function rr(e){return e?e.__v_isVNode===!0:!1}function en(e,t){return e.type===t.type&&e.key===t.key}const or=({key:e})=>e??null,Nn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Q(e)||le(e)||N(e)?{i:Oe,r:e,k:t,f:!!n}:e:null);function M(e,t=null,n=null,s=0,i=null,r=e===Pe?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&or(t),ref:t&&Nn(t),scopeId:vi,slotScopeIds:null,children:n,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:r,patchFlag:s,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:Oe};return l?(Dn(c,n),r&128&&e.normalize(c)):n&&(c.shapeFlag|=Q(n)?8:16),Qt>0&&!o&&Se&&(c.patchFlag>0||r&6)&&c.patchFlag!==32&&Se.push(c),c}const Le=bl;function bl(e,t=null,n=null,s=0,i=null,r=!1){if((!e||e===Ko)&&(e=st),rr(e)){const l=Ft(e,t,!0);return n&&Dn(l,n),Qt>0&&!r&&Se&&(l.shapeFlag&6?Se[Se.indexOf(e)]=l:Se.push(l)),l.patchFlag=-2,l}if(kl(e)&&(e=e.__vccOpts),t){t=vl(t);let{class:l,style:c}=t;l&&!Q(l)&&(t.class=Ht(l)),z(c)&&(hs(c)&&!I(c)&&(c=ie({},c)),t.style=gn(c))}const o=Q(e)?1:tr(e)?128:En(e)?64:z(e)?4:N(e)?2:0;return M(e,t,n,s,i,o,r,!0)}function vl(e){return e?hs(e)||Ki(e)?ie({},e):e:null}function Ft(e,t,n=!1,s=!1){const{props:i,ref:r,patchFlag:o,children:l,transition:c}=e,d=t?xl(i||{},t):i,f={__v_isVNode:!0,__v_skip:!0,type:e.type,props:d,key:d&&or(d),ref:t&&t.ref?n&&r?I(r)?r.concat(Nn(t)):[r,Nn(t)]:Nn(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Pe?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ft(e.ssContent),ssFallback:e.ssFallback&&Ft(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&s&&vs(f,c.clone(f)),f}function ft(e=" ",t=0){return Le(In,null,e,t)}function yl(e,t){const n=Le(kn,null,e);return n.staticCount=t,n}function it(e="",t=!1){return t?(ue(),_l(st,null,e)):Le(st,null,e)}function Ge(e){return e==null||typeof e=="boolean"?Le(st):I(e)?Le(Pe,null,e.slice()):rr(e)?rt(e):Le(In,null,String(e))}function rt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ft(e)}function Dn(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(I(t))n=16;else if(typeof t=="object")if(s&65){const i=t.default;i&&(i._c&&(i._d=!1),Dn(e,i()),i._c&&(i._d=!0));return}else{n=32;const i=t._;!i&&!Ki(t)?t._ctx=Oe:i===3&&Oe&&(Oe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(N(t)){if(s&65){Dn(e,{default:t});return}t={default:t,_ctx:Oe},n=32}else t=String(t),s&64?(n=16,t=[ft(t)]):n=8;e.children=t,e.shapeFlag|=n}function xl(...e){const t={};for(let n=0;nge||Oe;let Fn,tn;{const e=pn(),t=(n,s)=>{let i;return(i=e[n])||(i=e[n]=[]),i.push(s),r=>{i.length>1?i.forEach(o=>o(r)):i[0](r)}};Fn=t("__VUE_INSTANCE_SETTERS__",n=>ge=n),tn=t("__VUE_SSR_SETTERS__",n=>sn=n)}const nn=e=>{const t=ge;return Fn(e),e.scope.on(),()=>{e.scope.off(),Fn(t)}},lr=()=>{ge&&ge.scope.off(),Fn(null)};function cr(e){return e.vnode.shapeFlag&4}let sn=!1;function Al(e,t=!1,n=!1){t&&tn(t);const{props:s,children:i}=e.vnode,r=cr(e);ol(e,s,r,t),ul(e,i,n||t);const o=r?El(e,t):void 0;return t&&tn(!1),o}function El(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Wo);const{setup:s}=n;if(s){Ke();const i=e.setupContext=s.length>1?Ol(e):null,r=nn(e),o=It(s,e,0,[e.props,i]),l=js(o);if(We(),r(),(l||e.sp)&&!Xt(e)&&Si(e),l){if(o.then(lr,lr),t)return o.then(c=>{tn(!0);try{ar(e,c,t)}finally{tn(!1)}}).catch(c=>{Sn(c,e,0)});e.asyncDep=o}else ar(e,o)}else ur(e)}function ar(e,t,n){N(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:z(t)&&(e.setupState=di(t)),ur(e)}function ur(e,t,n){const s=e.type;e.render||(e.render=s.render||Ue);{const i=nn(e);Ke();try{zo(e)}finally{We(),i()}}}const Rl={get(e,t){return ae(e,"get",""),e[t]}};function Ol(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Rl),slots:e.slots,emit:e.emit,expose:t}}function jn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(di(uo(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Yt)return Yt[n](e)},has(t,n){return n in t||n in Yt}})):e.proxy}const Pl=/(?:^|[-_])\w/g,Ml=e=>e.replace(Pl,t=>t.toUpperCase()).replace(/[-_]/g,"");function Il(e,t=!0){return N(e)?e.displayName||e.name:e.name||t&&e.__name}function fr(e,t,n=!1){let s=Il(t);if(!s&&t.__file){const i=t.__file.match(/([^/\\]+)\.\w+$/);i&&(s=i[1])}if(!s&&e){const i=r=>{for(const o in r)if(r[o]===t)return o};s=i(e.components)||e.parent&&i(e.parent.type.components)||i(e.appContext.components)}return s?Ml(s):n?"App":"Anonymous"}function kl(e){return N(e)&&"__vccOpts"in e}const xt=(e,t)=>mo(e,t,sn),Nl="3.5.42";/** +* @vue/runtime-dom v3.5.42 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Os;const dr=typeof window<"u"&&window.trustedTypes;if(dr)try{Os=dr.createPolicy("vue",{createHTML:e=>e})}catch{}const hr=Os?e=>Os.createHTML(e):e=>e,Dl="http://www.w3.org/2000/svg",Fl="http://www.w3.org/1998/Math/MathML",ot=typeof document<"u"?document:null,pr=ot&&ot.createElement("template"),jl={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const i=t==="svg"?ot.createElementNS(Dl,e):t==="mathml"?ot.createElementNS(Fl,e):n?ot.createElement(e,{is:n}):ot.createElement(e);return e==="select"&&s&&s.multiple!=null&&i.setAttribute("multiple",s.multiple),i},createText:e=>ot.createTextNode(e),createComment:e=>ot.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>ot.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,i,r){const o=n?n.previousSibling:t.lastChild;if(i&&(i===r||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),!(i===r||!(i=i.nextSibling)););else{pr.innerHTML=hr(s==="svg"?`${e}`:s==="mathml"?`${e}`:e);const l=pr.content;if(s==="svg"||s==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Vl=Symbol("_vtc");function Ll(e,t,n){const s=e[Vl];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const gr=Symbol("_vod"),Hl=Symbol("_vsh"),Ul=Symbol(""),$l=/(?:^|;)\s*display\s*:/;function Bl(e,t,n){const s=e.style,i=Q(n);let r=!1;if(n&&!i){if(t)if(Q(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();n[l]==null&&rn(s,l,"")}else for(const o in t)n[o]==null&&rn(s,o,"");for(const o in n){o==="display"&&(r=!0);const l=n[o];l!=null?Wl(e,o,!Q(t)&&t?t[o]:void 0,l)||rn(s,o,l):rn(s,o,"")}}else if(i){if(t!==n){const o=s[Ul];o&&(n+=";"+o),s.cssText=n,r=$l.test(n)}}else t&&e.removeAttribute("style");gr in e&&(e[gr]=r?s.display:"",e[Hl]&&(s.display="none"))}const Vn=/\s*!important$/;function rn(e,t,n){if(I(n))n.forEach(s=>rn(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))Vn.test(n)?e.setProperty(t,n.replace(Vn,""),"important"):e.setProperty(t,n);else{const s=Kl(e,t);Vn.test(n)?e.setProperty(Ee(s),n.replace(Vn,""),"important"):e[s]=n}}const mr=["Webkit","Moz","ms"],Ps={};function Kl(e,t){const n=Ps[t];if(n)return n;let s=ye(t);if(s!=="filter"&&s in e)return Ps[t]=s;s=Ls(s);for(let i=0;iMs||(Yl.then(()=>Ms=0),Ms=Date.now());function Ql(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;const i=n.value;if(I(i)){const r=s.stopImmediatePropagation;s.stopImmediatePropagation=()=>{r.call(s),s._stopped=!0};const o=i.slice(),l=[s];for(let c=0;ce.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,ec=(e,t,n,s,i,r)=>{const o=i==="svg";t==="class"?Ll(e,s,o):t==="style"?Bl(e,n,s):cn(t)?an(t)||Jl(e,t,n,s,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):tc(e,t,s,o))?(vr(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&br(e,t,s,o,r,t!=="value")):e._isVueCE&&(nc(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Q(s)))?vr(e,ye(t),s,r,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),br(e,t,s,o))};function tc(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&xr(t)&&N(n));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 i=e.tagName;if(i==="IMG"||i==="VIDEO"||i==="CANVAS"||i==="SOURCE")return!1}return xr(t)&&Q(n)?!1:t in e}function nc(e,t){const n=e._def.props;if(!n)return!1;const s=ye(t);return Array.isArray(n)?n.some(i=>ye(i)===s):Object.keys(n).some(i=>ye(i)===s)}const wr={};function sc(e,t,n){let s=ko(e,t);un(s)&&(s=ie({},s,t));class i extends Is{constructor(o){super(s,o,n)}}return i.def=s,i}const ic=typeof HTMLElement<"u"?HTMLElement:class{};class Is extends ic{constructor(t,n={},s=Rr){super(),this._def=t,this._props=n,this._createApp=s,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&&s!==Rr?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(ie({},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 Is){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,Jt(()=>{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 n of t)this._setAttr(n.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let s=0;s{this._resolved=!0,this._pendingResolve=void 0;const{props:r,styles:o}=s;let l;if(r&&!I(r))for(const c in r){const d=r[c];(d===Number||d&&d.type===Number)&&(c in this._props&&(this._props[c]=Us(this._props[c])),(l||(l=Object.create(null)))[ye(c)]=!0)}this._numberProps=l,this._resolveProps(s),this.shadowRoot&&this._applyStyles(o),this._mount(s)},n=this._def.__asyncLoader;if(n)return this._pendingResolve=n().then(s=>{s.configureApp=this._def.configureApp,t(this._def=s,!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 n=this._instance&&this._instance.exposed;if(n)for(const s in n)$(this,s)||Object.defineProperty(this,s,{get:()=>fi(n[s])})}_resolveProps(t){const{props:n}=t,s=I(n)?n:Object.keys(n||{});for(const i of Object.keys(this))i[0]!=="_"&&s.includes(i)&&this._setProp(i,this[i]);for(const i of s.map(ye))Object.defineProperty(this,i,{get(){return this._getProp(i)},set(r){this._setProp(i,r,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const n=this.hasAttribute(t);let s=n?this.getAttribute(t):wr;const i=ye(t);n&&this._numberProps&&this._numberProps[i]&&(s=Us(s)),this._setProp(i,s,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,n,s=!0,i=!1){if(n!==this._props[t]&&(this._dirty=!0,n===wr?delete this._props[t]:(this._props[t]=n,t==="key"&&this._app&&(this._app._ceVNode.key=n)),i&&this._instance&&this._update(),s)){const r=this._ob;r&&(this._processMutations(r.takeRecords()),r.disconnect()),n===!0?this.setAttribute(Ee(t),""):typeof n=="string"||typeof n=="number"?this.setAttribute(Ee(t),n+""):n||this.removeAttribute(Ee(t)),r&&r.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),ac(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const n=Le(this._def,ie(t,this._props));return this._instance||(n.ce=s=>{this._instance=s,s.ce=this,s.isCE=!0;const i=(r,o)=>{this.dispatchEvent(new CustomEvent(r,un(o[0])?ie({detail:o},o[0]):{detail:o}))};s.emit=(r,...o)=>{i(r,o),Ee(r)!==r&&i(Ee(r),o)},this._setParent()}),n}_applyStyles(t,n,s){if(!t)return;if(n){if(n===this._def||this._styleChildren.has(n))return;this._styleChildren.add(n)}const i=this._nonce,r=this.shadowRoot,o=s?this._getStyleAnchor(s)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(r);let l=null;for(let c=t.length-1;c>=0;c--){const d=document.createElement("style");i&&d.setAttribute("nonce",i),d.textContent=t[c],r.insertBefore(d,l||o),l=d,c===0&&(s||this._styleAnchors.set(this._def,d),n&&this._styleAnchors.set(n,d))}}_getStyleAnchor(t){if(!t)return null;const n=this._styleAnchors.get(t);return n&&n.parentNode===this.shadowRoot?n:(n&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let n=0;n{const t=e.props["onUpdate:modelValue"]||!1;return I(t)?n=>dn(t,n):t};function rc(e){e.target.composing=!0}function Sr(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const St=Symbol("_assign"),Hn=Symbol("_initialValue");function ks(e,t,n){return t&&(e=e.trim()),n&&(e=hn(e)),e}const oc={created(e,{modifiers:{lazy:t,trim:n,number:s}},i){e.parentNode&&(e.type==="text"?e[Hn]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Hn]=e.defaultValue.replace(/\r\n?/g,` +`))),e[St]=Ln(i);const r=s||i.props&&i.props.type==="number";wt(e,t?"change":"input",o=>{o.target.composing||e[St](ks(e.value,n,r))}),(n||r)&&wt(e,"change",()=>{e.value=ks(e.value,n,r)}),t||(wt(e,"compositionstart",rc),wt(e,"compositionend",Sr),wt(e,"change",Sr))},mounted(e,{value:t,modifiers:{trim:n,number:s}}){const i=t??"",r=e[Hn];delete e[Hn],r!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==r?e[St](ks(e.value,n,s)):e.value=i},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:i,number:r}},o){if(e[St]=Ln(o),e.composing)return;const l=(r||e.type==="number")&&!/^0\d/.test(e.value)?hn(e.value):e.value,c=t??"";if(l===c)return;const d=e.getRootNode();(d instanceof Document||d instanceof ShadowRoot)&&d.activeElement===e&&e.type!=="range"&&(s&&t===n||i&&e.value.trim()===c)||(e.value=c)}},Cr={deep:!0,created(e,{value:t,modifiers:{number:n}},s){e._modelValue=t,wt(e,"change",()=>{const i=Array.prototype.filter.call(e.options,c=>c.selected).map(c=>n?hn(Un(c)):Un(c)),r=e.multiple,o=r?pt(e._modelValue)?new Set(i):i:i[0],l=e._pendingValue=[r,r?I(o)?i.slice():i:o];try{e[St](o)}finally{Jt(()=>{e._pendingValue===l&&(e._pendingValue=void 0)})}}),e[St]=Ln(s)},mounted(e,{value:t}){Tr(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[St]=Ln(n)},updated(e,{value:t}){const n=e._pendingValue;e._pendingValue=void 0,(!n||n[0]!==e.multiple||!lc(t,n[1],n[0]))&&Tr(e,t)}};function lc(e,t,n){if(!n||I(e))return at(e,t);if(pt(e)){if(e.size!==t.length)return!1;for(const s of t)if(!e.has(s))return!1;return!0}return!1}function Tr(e,t){const n=e.multiple,s=I(t);if(!(n&&!s&&!pt(t))){for(let i=0,r=e.options.length;iString(d)===String(l)):o.selected=Br(t,l)>-1}else o.selected=t.has(l);else if(at(Un(o),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Un(e){return"_value"in e?e._value:e.value}const cc=ie({patchProp:ec},jl);let Ar;function Er(){return Ar||(Ar=dl(cc))}const ac=(...e)=>{Er().render(...e)},Rr=(...e)=>{const t=Er().createApp(...e),{mount:n}=t;return t.mount=s=>{const i=fc(s);if(!i)return;const r=t._component;!N(r)&&!r.render&&!r.template&&(r.template=i.innerHTML),i.nodeType===1&&(i.textContent="");const o=n(i,!1,uc(i));return i instanceof Element&&(i.removeAttribute("v-cloak"),i.setAttribute("data-v-app","")),o},t};function uc(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function fc(e){return Q(e)?document.querySelector(e):e}const dc=":host{display:block}.rudder{--bg: #0b0f14;--panel: #111823;--line: #1f2937;--text: #e5e7eb;--muted: #9ca3af;--accent: #38bdf8;--rec: #ef4444;--ok: #22c55e;--warn: #f59e0b;box-sizing:border-box;display:flex;flex-direction:column;gap:14px;min-height:480px;height:100%;padding:18px;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:15px}.rudder *,.rudder *:before,.rudder *:after{box-sizing:border-box}.top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:12px}.logo{font-size:30px;color:var(--accent);line-height:1}h1{margin:0;font-size:20px;letter-spacing:-.01em}.sub{margin:2px 0 0;color:var(--muted);font-size:12.5px}.status{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;font-size:13px;color:var(--muted);background:var(--panel)}.status .dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}.status[data-state=ready] .dot{background:var(--ok)}.status[data-state=starting] .dot,.status[data-state=connecting] .dot{background:var(--warn);animation:pulse 1.2s infinite}.status[data-state=error] .dot,.status[data-state=offline] .dot{background:var(--rec)}.rec .status .dot{background:var(--rec);animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.35}}.controls{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.mic{display:inline-flex;align-items:center;gap:10px;padding:12px 22px;border-radius:999px;border:1px solid var(--line);background:var(--accent);color:#04121c;font-weight:700;font-size:16px;cursor:pointer}.mic.on{background:var(--rec);color:#fff}.mic:disabled{opacity:.45;cursor:not-allowed}.mic:focus-visible,button:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mic-icon{font-size:14px}.meter{flex:1 1 140px;min-width:100px;height:8px;border-radius:4px;background:var(--panel);border:1px solid var(--line);overflow:hidden}.meter .fill{height:100%;background:linear-gradient(90deg,var(--ok),var(--warn),var(--rec));transition:width .12s linear}.lang{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}select{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:14px}.notice{margin:0;padding:10px 12px;border-radius:8px;border:1px solid var(--line);background:var(--panel);font-size:13.5px;line-height:1.45}.notice[data-kind=error]{border-color:#7f1d1d;background:#1f0f12}.notice[data-kind=warn]{border-color:#78350f;background:#1c140a}.notice[data-kind=ok]{border-color:#14532d;background:#0b1a11}.mics{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.mic-pick{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;flex:1 1 260px}.mic-pick select{flex:1;min-width:0}.small{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:7px 12px;cursor:pointer;font-size:13.5px}.small:disabled{opacity:.45;cursor:not-allowed}.small.ghost{background:transparent}.hint{margin:0;color:var(--muted);font-size:12.5px}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;color:#c4b5fd;overflow-wrap:anywhere}.compose{flex:1 1 auto;display:flex;flex-direction:column;gap:6px;min-height:260px}.draft{flex:1 1 auto;width:100%;min-height:240px;resize:vertical;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text);font:inherit;font-size:16px;line-height:1.6}.draft:focus{outline:2px solid var(--accent);outline-offset:1px}.draft::placeholder{color:#6b7280}.hearing{margin:0;min-height:1.5em;color:var(--accent);font-size:14px;overflow-wrap:anywhere}.hearing .tag{display:inline-block;margin-right:6px;padding:1px 7px;border-radius:999px;background:#0c2a3a;color:var(--accent);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.count{color:var(--muted);font-size:12.5px}.bottom{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.bottom button,.debug button{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px 14px;cursor:pointer;font-size:14px}.bottom button:disabled{opacity:.45;cursor:not-allowed}.bottom .ghost{background:transparent}.spacer{flex:1}.info-btn{margin-left:auto;background:transparent;border:1px solid var(--line);color:var(--muted);border-radius:999px;width:30px;height:30px;font-size:16px;cursor:pointer}.info-btn:hover,.info-btn[aria-expanded=true]{color:var(--accent);border-color:var(--accent)}.info{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:14px 16px;font-size:14px;line-height:1.55}.info h2{margin:0 0 6px;font-size:16px}.info p{margin:0 0 8px}.info ul{margin:0 0 8px;padding-left:18px}.info li{margin-bottom:6px}.info .fine{color:var(--muted);font-size:12.5px;margin:0}.debug{border:1px dashed var(--line);border-radius:10px;padding:12px;font-size:13px}.debug dl{display:grid;grid-template-columns:90px 1fr;gap:6px 10px;margin:0 0 10px}.debug dt{color:var(--muted)}.debug dd{margin:0;overflow-wrap:anywhere}",hc=(e,t)=>{const n=e.__vccOpts||e;for(const[s,i]of t)n[s]=i;return n},pc={class:"top"},gc=["aria-expanded"],mc=["data-state"],_c={key:0,class:"info"},bc={class:"controls"},vc=["disabled","aria-pressed","aria-label"],yc={class:"mic-icon","aria-hidden":"true"},xc={class:"meter","aria-hidden":"true"},wc={class:"lang"},Sc=["disabled"],Cc=["value"],Tc={class:"mics"},Ac={class:"mic-pick"},Ec=["disabled"],Rc={value:""},Oc=["value"],Pc=["disabled"],Mc=["disabled"],Ic=["data-kind"],kc={key:2,class:"notice","data-kind":"warn"},Nc={key:3,class:"notice","data-kind":"error"},Dc={key:4,class:"notice","data-kind":"warn"},Fc={key:5,class:"hint"},jc=["data-kind"],Vc={key:7,class:"notice","data-kind":"warn"},Lc={class:"compose"},Hc={class:"hearing","aria-live":"polite"},Uc={class:"bottom"},$c=["disabled"],Bc=["disabled"],Kc={class:"count"},Wc=["aria-expanded"],zc={key:8,class:"debug"},Jc={key:0},Or="rudder-voice:v1",Pr=700,Gc=sc(hc(Object.assign({inheritAttrs:!1},{__name:"rudder-voice",props:{profileConfig:{type:String,default:""}},setup(e){const t=e,n=xt(()=>{try{return t.profileConfig?JSON.parse(t.profileConfig):{}}catch{return{}}}),s=xt(()=>(n.value.apiBase||"/api/rudder").replace(/\/$/,"")),i=[["en-US","English (US)"],["en-GB","English (UK)"],["es-US","Spanish (US)"],["es-ES","Spanish (Spain)"],["fr-FR","French"],["de-DE","German"],["it-IT","Italian"],["pt-BR","Portuguese (Brazil)"],["nl-NL","Dutch"],["ru-RU","Russian"],["uk-UA","Ukrainian"],["tr-TR","Turkish"],["ar-AR","Arabic"],["hi-IN","Hindi"],["ja-JP","Japanese"],["ko-KR","Korean"],["vi-VN","Vietnamese"],["zh-CN","Mandarin"]];function r(){try{return JSON.parse(localStorage.getItem(Or)||"{}")}catch{return{}}}function o(){try{localStorage.setItem(Or,JSON.stringify({language:V.value,device:fe.value,draft:A.value}))}catch{}}const l=r(),c=te("connecting"),d=te(""),f=te(""),g=te(""),w=te(!1),E=te(!1),V=te(l.language||n.value.language||"en-US"),A=te(typeof l.draft=="string"?l.draft:Array.isArray(l.lines)?l.lines.map(y=>y.text).join(" "):""),Y=te(""),J=te(null),F=te(0),U=te(""),P=te("info"),Z=te(""),me=te(!1),_e=te(!1),we=te([]),Me=te([]),Ie=te([]),Xe=te(""),fe=te(l.device||""),He=te(!1),be=te(null),$n={bluetooth:"🎧",usb:"🔌",pci:"💻"};function ce(y){const p=[($n[y.bus]||"🎙")+" "+y.label];return y.muted?p.push("(muted)"):y.volume&&p.push("· "+y.volume),p.join(" ")}const q=xt(()=>Me.value.find(y=>y.default)),K=xt(()=>Me.value.find(y=>y.id===fe.value)||(fe.value?null:q.value));function Ye(y){y&&(Me.value=y.devices||[],Ie.value=y.offCards||[],Xe.value=y.error||"",fe.value&&!Me.value.some(p=>p.id===fe.value)&&(w.value||(ke("Your chosen microphone is no longer connected — using the system default instead.","warn"),fe.value="",o())))}async function Ct(){try{Ye(await(await fetch(s.value+"/devices")).json())}catch(y){Tt("devices fetch failed: "+y)}}async function lt(){if(!(He.value||w.value)){He.value=!0,be.value=null;try{be.value=await re("/test",{device:fe.value})}catch(y){be.value={ok:!1,verdict:String(y.message||y)}}finally{He.value=!1,F.value=0}}}let ne=null,jt=null;function Tt(y){we.value.push(new Date().toISOString().slice(11,23)+" "+y),we.value.length>200&&we.value.splice(0,we.value.length-200)}function ke(y,p="info"){U.value=y,P.value=p}let L=null,Ce=0;function At(){return!L||!A.value.endsWith(L.text)?!1:(L.start=A.value.length-L.text.length,!0)}function on(y){const p=J.value,D=p&&p.getRootNode().activeElement===p,De=p?p.selectionStart:0,Ns=p?p.selectionEnd:0,ln=!p||p.scrollHeight-p.scrollTop-p.clientHeight<32;A.value=y,o(),Jt(()=>{p&&(D&&p.setSelectionRange(Math.min(De,y.length),Math.min(Ns,y.length)),(ln||!D)&&(p.scrollTop=p.scrollHeight))})}const Et=y=>!y||/\s$/.test(y)?"":" ",Bn=y=>(y||"").trim().split(/\s+/).filter(Boolean),a=y=>(y||"").toLowerCase().replace(/[^\p{L}\p{N}']/gu,"");function u(y){const p=Bn(L.text),D=p[p.length-1]||"",De=y[Ce+L.shown-1],Ns=L.shown>0&&De!==void 0&&a(De)!==a(D)&&a(De).startsWith(a(D)),ln=A.value.lastIndexOf(L.text);ln>=0&&(L.start=ln);const Jn=L.start+L.text.length,Xc=ln>=0;if(Ns&&Xc&&D){let Rt=Jn-D.length;Rt>L.start&&A.value[Rt-1]===" "&&Rt--;const Yc=Jn-Rt,ht=J.value,Zc=ht&&ht.getRootNode().activeElement===ht,Ir=Gn=>Gn>=Jn?Gn-Yc:Gn>Rt?Rt:Gn,Qc=ht?Ir(ht.selectionStart):0,ea=ht?Ir(ht.selectionEnd):0;A.value=A.value.slice(0,Rt)+A.value.slice(Jn),Zc&&Jt(()=>ht.setSelectionRange(Qc,ea)),Ce+=L.shown-1}else Ce+=L.shown;L=null}function h(y,p){const D=y.join(" ");if(At()){const De=L.text.match(/^\s*/)[0];L.text=D?De+D:"",L.shown=y.length,on(A.value.slice(0,L.start)+L.text);return}L&&u(p),D&&(L={start:A.value.length,text:Et(A.value)+D,shown:y.length},on(A.value+L.text))}let v=0,_=null;const m=[];let C=null;function S(){v=Date.now()}function x(){S(),o()}function b(){return Date.now()-v{if(b())return O();const y=m.splice(0),p=_;_=null;for(const D of y)j(D);p!==null&&k(p)},Pr)}function T(y){if(b()||m.length){_=y,O();return}k(y)}function R(y){if(b()||m.length){m.push(y),_=null,O();return}j(y)}function k(y){const p=Bn(y);L&&!At()&&u(p),h(p.slice(Ce),p)}function j(y){const p=Bn(y);L&&!At()&&u(p),h(p.slice(Ce),p),L=null,Ce=0}function W(y){y&&(y.engine&&(c.value=y.engine),d.value=y.error||"",y.runtime&&(f.value=y.runtime),y.model&&(g.value=y.model),typeof y.recording=="boolean"&&(w.value=y.recording))}function B(){clearTimeout(jt);try{ne==null||ne.close()}catch{}ne=new window.EventSource(s.value+"/events"),ne.onopen=()=>Tt("events connected"),ne.onmessage=y=>{let p;try{p=JSON.parse(y.data)}catch{return}switch(p.type){case"status":W(p.status||p),p.engine==="error"&&ke(p.error||"Speech engine error","error"),p.engine==="ready"&&P.value!=="error"&&ke("");break;case"recording":w.value=!!p.recording,p.recording||(F.value=0,se());break;case"partial":Y.value+=p.text,T(Y.value);break;case"final":Y.value="",R(p.text);break;case"recovering":ke(p.message,"warn");break;case"recovered":ke(p.message,"ok"),setTimeout(()=>{P.value==="ok"&&ke("")},4e3);break;case"devices":Ye(p.devices);break;case"level":F.value=Math.min(1,(p.peak||0)*3);break;case"warning":ke(p.message,"warn");break;case"error":ke(p.message,"error"),Tt("engine error: "+p.message);break}},ne.onerror=()=>{c.value="offline",w.value=!1,Tt("events disconnected; retrying in 3s");try{ne.close()}catch{}jt=setTimeout(B,3e3)}}function se(){clearTimeout(C);const y=m.splice(0),p=_;_=null;for(const D of y)j(D);p!==null&&k(p),Y.value="",L=null,Ce=0,Ce=0}async function re(y,p){const D=await fetch(s.value+y,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(p||{})}),De=await D.json().catch(()=>({}));if(!D.ok)throw new Error(De.error||`HTTP ${D.status}`);return De}async function Te(){if(!E.value){E.value=!0;try{w.value?await re("/stop"):(ke(""),be.value=null,W(await re("/start",{language:V.value,device:fe.value})))}catch(y){ke(String(y.message||y),"error"),Tt("toggle failed: "+y)}finally{E.value=!1}}}const Ae=xt(()=>A.value.trim()?A.value.trim().split(/\s+/).length:0);async function dt(y,p){try{await navigator.clipboard.writeText(y)}catch{const D=document.createElement("textarea");D.value=y,document.body.appendChild(D),D.select();try{document.execCommand("copy")}catch{}D.remove()}Z.value=p,setTimeout(()=>{Z.value===p&&(Z.value="")},1500)}function Kn(){A.value.trim()&&!window.confirm("Clear the whole text box? This cannot be undone.")||(A.value="",Y.value="",L=null,o())}const ve=/\b([0-9a-f]{2}[:_]){5}[0-9a-f]{2}\b/gi;function Ne(){return Me.value.map((y,p)=>({mic:"mic "+(p+1),bus:y.bus,default:y.default,muted:y.muted,volume:y.volume,state:y.state}))}function Wn(){const y=navigator.userAgent;return/firefox/i.test(y)?"Firefox":/edg\//i.test(y)?"Edge":/chrom/i.test(y)?"Chromium-based":/safari/i.test(y)?"Safari":"other"}async function zn(){let y="(unreachable)",p="(unreachable)";try{y=await(await fetch(s.value+"/log")).text()}catch{}try{p=JSON.stringify(await(await fetch(s.value+"/status")).json(),null,2)}catch{}const D=["// RUDDER DEBUG REPORT — for a coding agent.","// Read the engine status and log below, find why transcription failed or misbehaved, and propose a fix","// in backend/rudder-engine/main.go or plugin-designs/rudder-voice/rudder-voice.vue. Do not guess:","// quote the log lines that prove the cause.","","== status ==",p,"== plugin ==",JSON.stringify({apiBase:s.value,draftChars:A.value.length,engine:c.value,recording:w.value,language:V.value,device:fe.value?"chosen mic":"(system default)",browser:Wn()},null,2),"== microphones ==",JSON.stringify({devices:Ne(),offCards:Ie.value.length,error:Xe.value,lastTest:be.value},null,2),"== client log ==",we.value.join(` +`),"== engine log ==",y].join(` +`).replace(ve,"XX:XX:XX:XX:XX:XX");dt(D,"debug")}function Mr(y){y.ctrlKey&&y.shiftKey&&y.code==="Space"&&(y.preventDefault(),Te())}Ei(()=>{B(),Ct(),window.addEventListener("keydown",Mr)}),Ri(()=>{clearTimeout(jt);try{ne==null||ne.close()}catch{}window.removeEventListener("keydown",Mr)});const qc=xt(()=>({connecting:"Connecting…",starting:"Loading speech model… (about 20 s the first time)",ready:w.value?"Listening":"Ready",error:"Engine error",offline:"Engine offline"})[c.value]||c.value);return(y,p)=>(ue(),pe("div",{class:Ht(["rudder",{rec:w.value}])},[M("header",pc,[p[8]||(p[8]=M("div",{class:"brand"},[M("span",{class:"logo","aria-hidden":"true"},"⎈"),M("div",null,[M("h1",null,"Rudder"),M("p",{class:"sub"},"Voice-to-text for vibe coders · private · runs on this computer · no internet")])],-1)),M("button",{class:"info-btn","aria-expanded":_e.value,title:"What is Rudder?","aria-label":"What is Rudder?",onClick:p[0]||(p[0]=D=>_e.value=!_e.value)},"ⓘ",8,gc),M("div",{class:"status","data-state":c.value,role:"status"},[p[7]||(p[7]=M("span",{class:"dot","aria-hidden":"true"},null,-1)),ft(ee(qc.value),1)],8,mc)]),_e.value?(ue(),pe("section",_c,[...p[9]||(p[9]=[yl('

What is Rudder?

A voice-to-text tool for vibe coders: talk to your agents instead of typing to them. Paste links, code and notes into the box while you talk; everything you say is added to the end, ready to copy into a chat.

  • Streaming. Words appear while you speak, and you can keep talking for as long as you like — an hour is fine. There is no time limit and nothing to wait for at the end.
  • Runs on your CPU. No graphics card needed. The model uses about 1 GB of memory and keeps up with normal speech on an ordinary laptop processor.
  • Private and offline. Your voice never leaves this computer. No account, no cloud, no telemetry — checked with a network tracer: zero connections while transcribing.
  • The model. NVIDIA Nemotron 3.5 ASR Streaming (0.6B), run by NVIDIA's open-source NeMo-Speech.cpp. It adds punctuation and capital letters by itself.
  • Why it lives in dx-maps. Rudder is a plugin like the maps: built in the Plugin Studio, tested in the browser, and shipped as a desktop app with its own local backend — proof that one dx-maps codebase can build desktop apps, not only maps.

Bluetooth headsets: Rudder switches them to their stable voice mode (CVSD), because the higher-quality mode (mSBC) kept dropping the mic after a few words.

',4)])])):it("",!0),M("section",bc,[M("button",{class:Ht(["mic",{on:w.value}]),disabled:E.value||c.value!=="ready","aria-pressed":w.value,"aria-label":w.value?"Stop recording":"Start recording",onClick:Te},[M("span",yc,ee(w.value?"■":"●"),1),ft(" "+ee(w.value?"Stop":"Record"),1)],10,vc),M("div",xc,[M("div",{class:"fill",style:gn({width:(F.value*100).toFixed(0)+"%"})},null,4)]),M("label",wc,[p[10]||(p[10]=M("span",null,"Language",-1)),ms(M("select",{"onUpdate:modelValue":p[1]||(p[1]=D=>V.value=D),disabled:w.value,onChange:o},[(ue(),pe(Pe,null,Pi(i,([D,De])=>M("option",{key:D,value:D},ee(De),9,Cc)),64))],40,Sc),[[Cr,V.value]])])]),M("section",Tc,[M("label",Ac,[p[11]||(p[11]=M("span",null,"Microphone",-1)),ms(M("select",{"onUpdate:modelValue":p[2]||(p[2]=D=>fe.value=D),disabled:w.value||He.value,onChange:p[3]||(p[3]=D=>{o(),be.value=null})},[M("option",Rc,"System default"+ee(q.value?" — "+q.value.label:""),1),(ue(!0),pe(Pe,null,Pi(Me.value,D=>(ue(),pe("option",{key:D.id,value:D.id},ee(ce(D)),9,Oc))),128))],40,Ec),[[Cr,fe.value]])]),M("button",{class:"small",disabled:He.value||w.value||c.value==="offline",onClick:lt},ee(He.value?"Testing… speak now":"Test mic"),9,Pc),M("button",{class:"small ghost",title:"Look for microphones again","aria-label":"Look for microphones again",disabled:w.value,onClick:Ct},"↻",8,Mc)]),be.value?(ue(),pe("p",{key:1,class:"notice","data-kind":be.value.ok?be.value.peak<.01?"warn":"ok":"error"},ee(be.value.ok?"✓ ":"✗ ")+ee(be.value.verdict),9,Ic)):it("",!0),K.value&&K.value.muted?(ue(),pe("p",kc,"“"+ee(K.value.label)+"” is muted in your system sound settings — Rudder won't hear anything until it's unmuted.",1)):it("",!0),Xe.value?(ue(),pe("p",Nc,ee(Xe.value),1)):!Me.value.length&&c.value!=="offline"?(ue(),pe("p",Dc,"No microphone found. Connect a headset or turn on your computer's microphone in Sound settings.")):it("",!0),Ie.value.length?(ue(),pe("p",Fc,"Also available but switched off in Sound settings: "+ee(Ie.value.join(", "))+". Turn it on there to use it here.",1)):it("",!0),U.value?(ue(),pe("p",{key:6,class:"notice","data-kind":P.value},ee(U.value),9,jc)):c.value==="offline"?(ue(),pe("p",Vc,[p[12]||(p[12]=ft(" The local speech engine isn't reachable at ",-1)),M("code",null,ee(s.value),1),p[13]||(p[13]=ft(". In the Plugin Studio it starts with ",-1)),p[14]||(p[14]=M("code",null,"bun run dev",-1)),p[15]||(p[15]=ft(" once built: ",-1)),p[16]||(p[16]=M("code",null,"cd backend/rudder-engine && go build -o ../bin/rudder-engine .",-1))])):it("",!0),M("section",Lc,[ms(M("textarea",{ref_key:"box",ref:J,"onUpdate:modelValue":p[4]||(p[4]=D=>A.value=D),class:"draft",spellcheck:"true","aria-label":"Your text. Type or paste here; everything Rudder hears is added to the end.",placeholder:"Type or paste here — and press Record (Ctrl+Shift+Space) to talk. Your words stream into the end of this box as you speak.",onInput:x,onKeydown:S},null,544),[[oc,A.value]]),M("p",Hc,[w.value?(ue(),pe(Pe,{key:0},[p[17]||(p[17]=M("span",{class:"tag"},"listening",-1)),p[18]||(p[18]=ft(" words appear at the end of the box as you speak — keep typing or pasting anywhere",-1))],64)):it("",!0)])]),M("footer",Uc,[M("button",{disabled:!A.value.trim(),onClick:p[5]||(p[5]=D=>dt(A.value,"all"))},ee(Z.value==="all"?"Copied ✓":"Copy all"),9,$c),M("button",{disabled:!A.value.trim()||w.value,onClick:Kn},"Clear",8,Bc),M("span",Kc,ee(Ae.value)+" "+ee(Ae.value===1?"word":"words"),1),p[19]||(p[19]=M("span",{class:"spacer"},null,-1)),M("button",{class:"ghost","aria-expanded":me.value,onClick:p[6]||(p[6]=D=>me.value=!me.value)},"🐞 Debug",8,Wc)]),me.value?(ue(),pe("section",zc,[M("dl",null,[p[20]||(p[20]=M("dt",null,"API",-1)),M("dd",null,[M("code",null,ee(s.value),1)]),p[21]||(p[21]=M("dt",null,"Runtime",-1)),M("dd",null,ee(f.value||"—"),1),p[22]||(p[22]=M("dt",null,"Model",-1)),M("dd",null,ee(g.value||"—"),1),p[23]||(p[23]=M("dt",null,"Engine",-1)),M("dd",null,[ft(ee(c.value),1),d.value?(ue(),pe("span",Jc," — "+ee(d.value),1)):it("",!0)])]),M("button",{onClick:zn},ee(Z.value==="debug"?"Copied ✓":"Copy debug report for an agent"),1)])):it("",!0)],2))}}),[["styles",[dc]]]));typeof customElements<"u"&&(customElements.get("rudder-voice")||customElements.define("rudder-voice",Gc))})(); diff --git a/public/dx-maps/rudder-voice/rudder-voice/index.html b/public/dx-maps/rudder-voice/rudder-voice/index.html new file mode 100644 index 000000000..bfeb6b430 --- /dev/null +++ b/public/dx-maps/rudder-voice/rudder-voice/index.html @@ -0,0 +1,214 @@ + + + + + + + + rudder-voice · rudder-voice + + + + + +
+
loading…
+ + + + + + + +