sh3-server 0.13.3 → 0.13.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,22 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/tauri-backend-BNhKUiUG.js","assets/index-56jHh6nx.js"])))=>i.map(i=>d[i]);
2
- (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const a of s)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(s){const a={};return s.integrity&&(a.integrity=s.integrity),s.referrerPolicy&&(a.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?a.credentials="include":s.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(s){if(s.ep)return;s.ep=!0;const a=n(s);fetch(s.href,a)}})();const Cv="modulepreload",Tv=function(e){return"/"+e},pl={},yr=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),l=o?.nonce||o?.getAttribute("nonce");s=Promise.allSettled(n.map(c=>{if(c=Tv(c),c in pl)return;pl[c]=!0;const u=c.endsWith(".css"),d=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${d}`))return;const v=document.createElement("link");if(v.rel=u?"stylesheet":Cv,u||(v.as="script"),v.crossOrigin="",v.href=c,l&&v.setAttribute("nonce",l),document.head.appendChild(v),u)return new Promise((p,b)=>{v.addEventListener("load",p),v.addEventListener("error",()=>b(new Error(`Unable to preload CSS for ${c}`)))})}))}function a(o){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return s.then(o=>{for(const l of o||[])l.status==="rejected"&&a(l.reason);return t().catch(a)})},Rv=1,Pv=2,Ac=4,jv=8,Dv=16,zv=1,Cc=4,Lv=8,Mv=16,Ov=1,Nv=2,qv=4,Zi=1,Tc=2,Vv=4,Bv=8,_a="[",ya="[!",ml="[?",wa="]",Un={},Te=Symbol(),kt=Symbol("filename"),sr=Symbol("hmr"),Rc="http://www.w3.org/1999/xhtml",ps="http://www.w3.org/2000/svg",Qi="http://www.w3.org/1998/Math/MathML",Pc="@attach",jc=!1;var Pr=Array.isArray,Uv=Array.prototype.indexOf,wr=Array.prototype.includes,ka=Array.from,$s=Object.keys,Fn=Object.defineProperty,Wt=Object.getOwnPropertyDescriptor,Dc=Object.getOwnPropertyDescriptors,zc=Object.prototype,Fv=Array.prototype,xa=Object.getPrototypeOf,bl=Object.isExtensible,Hv=Object.prototype.hasOwnProperty;function ar(e){return typeof e=="function"}const xt=()=>{};function gl(e){return typeof e?.then=="function"}function Kv(e){return e()}function pi(e){for(var t=0;t<e.length;t++)e[t]()}function Lc(){var e,t,n=new Promise((r,s)=>{e=r,t=s});return{promise:n,resolve:e,reject:t}}function Wv(e,t,n=!1){return e===void 0?n?t():t:e}function Mc(e,t){if(Array.isArray(e))return e;if(t===void 0||!(Symbol.iterator in e))return Array.from(e);const n=[];for(const r of e)if(n.push(r),n.length===t)break;return n}function Yv(e,t){var n={};for(var r in e)t.includes(r)||(n[r]=e[r]);for(var s of Object.getOwnPropertySymbols(e))Object.propertyIsEnumerable.call(e,s)&&!t.includes(s)&&(n[s]=e[s]);return n}const Ze=2,Hn=4,ms=8,$i=1<<24,Yt=16,Zt=32,pn=64,mi=128,Ot=512,Be=1024,Je=2048,Qt=4096,ct=8192,mt=16384,gn=32768,bi=1<<25,$t=65536,ts=1<<17,Oc=1<<18,Rn=1<<19,Nc=1<<20,sn=1<<25,Kn=65536,gi=1<<21,kr=1<<22,En=1<<23,nt=Symbol("$state"),Sa=Symbol("legacy props"),Gv=Symbol(""),Xv=Symbol("proxy path"),Jv=Symbol("hmr anchor"),nn=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},$n=!!globalThis.document?.contentType&&globalThis.document.contentType.includes("xml"),qc=1,bs=3,_n=8,Vc=11;function Bc(e){throw new Error("https://svelte.dev/e/experimental_async_required")}function Zv(){throw new Error("https://svelte.dev/e/invalid_default_snippet")}function _l(){throw new Error("https://svelte.dev/e/invalid_snippet_arguments")}function jr(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function Qv(){throw new Error("https://svelte.dev/e/missing_context")}function $v(){throw new Error("https://svelte.dev/e/snippet_without_render_tag")}function eh(e){throw new Error("https://svelte.dev/e/store_invalid_shape")}function th(){throw new Error("https://svelte.dev/e/svelte_element_invalid_this_value")}function nh(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function rh(e,t){throw new Error("https://svelte.dev/e/component_api_changed")}function sh(e,t){throw new Error("https://svelte.dev/e/component_api_invalid_new")}function ah(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function ih(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function oh(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function lh(e){throw new Error("https://svelte.dev/e/effect_orphan")}function ch(){throw new Error("https://svelte.dev/e/effect_pending_outside_reaction")}function uh(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function dh(){throw new Error("https://svelte.dev/e/fork_discarded")}function fh(){throw new Error("https://svelte.dev/e/fork_timing")}function vh(){throw new Error("https://svelte.dev/e/get_abort_signal_outside_reaction")}function hh(){throw new Error("https://svelte.dev/e/hydration_failed")}function Uc(e){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}function ph(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function mh(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function bh(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function gh(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function _h(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}function yh(e,t){console.warn("https://svelte.dev/e/assignment_value_stale")}function wh(e,t){console.warn("https://svelte.dev/e/binding_property_non_reactive")}function kh(e){console.warn("https://svelte.dev/e/console_log_state")}function xh(){console.warn("https://svelte.dev/e/derived_inert")}function Sh(e,t){console.warn("https://svelte.dev/e/event_handler_invalid")}function Eh(e){console.warn("https://svelte.dev/e/hydratable_missing_but_expected")}function gs(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function Ih(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_binding")}function Ah(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_mutation")}function Ch(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function Fc(e){console.warn("https://svelte.dev/e/state_proxy_equality_mismatch")}function Th(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let te=!1;function Ce(e){te=e}let fe;function Ee(e){if(e===null)throw gs(),Un;return fe=e}function ft(){return Ee(It(fe))}function f(e){if(te){if(It(fe)!==null)throw gs(),Un;fe=e}}function Rh(e){te&&(fe=e.content)}function Gt(e=1){if(te){for(var t=e,n=fe;t--;)n=It(n);fe=n}}function Wn(e=!0){for(var t=0,n=fe;;){if(n.nodeType===_n){var r=n.data;if(r===wa){if(t===0)return n;t-=1}else(r===_a||r===ya||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var s=It(n);e&&n.remove(),n=s}}function eo(e){if(!e||e.nodeType!==_n)throw gs(),Un;return e.data}function Hc(e){return e===this.v}function Kc(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function Wc(e){return!Kc(e,this.v)}let Ph=!1;function jh(e){console.warn("https://svelte.dev/e/dynamic_void_element_content")}const Dh=[];function Yn(e,t=!1,n=!1){return Ns(e,new Map,"",Dh,null,n)}function Ns(e,t,n,r,s=null,a=!1){if(typeof e=="object"&&e!==null){var o=t.get(e);if(o!==void 0)return o;if(e instanceof Map)return new Map(e);if(e instanceof Set)return new Set(e);if(Pr(e)){var l=Array(e.length);t.set(e,l),s!==null&&t.set(s,l);for(var c=0;c<e.length;c+=1){var u=e[c];c in e&&(l[c]=Ns(u,t,n,r,null,a))}return l}if(xa(e)===zc){l={},t.set(e,l),s!==null&&t.set(s,l);for(var d of Object.keys(e))l[d]=Ns(e[d],t,n,r,null,a);return l}if(e instanceof Date)return structuredClone(e);if(typeof e.toJSON=="function"&&!a)return Ns(e.toJSON(),t,n,r,e)}if(e instanceof EventTarget)return e;try{return structuredClone(e)}catch{return e}}let tr=null;function Yc(e,t){const n=e.v;if(n===Te)return;const r=zh(e),s=be,a=e.wv>s.wv||s.wv===0,o=a?"color: CornflowerBlue; font-weight: bold":"color: grey; font-weight: normal";if(console.groupCollapsed(e.label?`%c${r}%c ${e.label}`:`%c${r}%c`,o,a?"font-weight: normal":o,typeof n=="object"&&n!==null&&nt in n?Yn(n,!0):n),r==="$derived"){const c=new Set(e.deps);for(const u of c)Yc(u)}if(e.created&&console.log(e.created),a&&e.updated)for(const c of e.updated.values())c.error&&console.log(c.error);if(t)for(var l of t.traces)console.log(l);console.groupEnd()}function zh(e){return e.f&(Ze|kr)?"$derived":e.label?.startsWith("$")?"store":"$state"}function Lh(e,t){var n=tr;try{tr={entries:new Map,reaction:be};var r=performance.now(),s=t(),a=(performance.now()-r).toFixed(2),o=ke(e);if(!xs())console.log(`${o} %cran outside of an effect (${a}ms)`,"color: grey");else if(tr.entries.size===0)console.log(`${o} %cno reactive dependencies (${a}ms)`,"color: grey");else{console.group(`${o} %c(${a}ms)`,"color: grey");var l=tr.entries;ke(()=>{for(const[c,u]of l)Yc(c,u)}),tr=null,console.groupEnd()}return s}finally{tr=n}}function Mh(e,t){return e.label=t,Gc(e.v,t),e}function Gc(e,t){return e?.[Xv]?.(t),e}function Oh(e){const t=new Error,n=Nh();return n.length===0?null:(n.unshift(`
3
- `),Fn(t,"stack",{value:n.join(`
4
- `)}),Fn(t,"name",{value:e}),t)}function Nh(){const e=Error.stackTraceLimit;Error.stackTraceLimit=1/0;const t=new Error().stack;if(Error.stackTraceLimit=e,!t)return[];const n=t.split(`
5
- `),r=[];for(let s=0;s<n.length;s++){const a=n[s],o=a.replaceAll("\\","/");if(a.trim()!=="Error"){if(a.includes("validate_each_keys"))return[];o.includes("svelte/src/internal")||o.includes("node_modules/.vite")||r.push(a)}}return r}let xe=null;function xr(e){xe=e}let qs=null;function qh(e,t,n,r,s,a){const o=qs;qs={type:t,file:n[kt],line:r,column:s,parent:o,...a};try{return e()}finally{qs=o}}let to=null;function yl(e){to=e}function Vh(){const e={};return[()=>(Xc(e)||Qv(),no(e)),t=>ro(e,t)]}function no(e){return Ea().get(e)}function ro(e,t){return Ea().set(e,t),t}function Xc(e){return Ea().has(e)}function Bh(){return Ea()}function re(e,t=!1,n){xe={p:xe,i:!1,c:null,e:null,s:e,x:null,r:ve,l:null}}function se(e){var t=xe,n=t.e;if(n!==null){t.e=null;for(var r of n)xu(r)}return e!==void 0&&(t.x=e),t.i=!0,xe=t.p,e??{}}function Jc(){return!0}function Ea(e){return xe===null&&jr(),xe.c??=new Map(Uh(xe)||void 0)}function Uh(e){let t=e.p;for(;t!==null;){const n=t.c;if(n!==null)return n;t=t.p}return null}let Ln=[];function Zc(){var e=Ln;Ln=[],pi(e)}function ut(e){if(Ln.length===0&&!hr){var t=Ln;queueMicrotask(()=>{t===Ln&&Zc()})}Ln.push(e)}function Fh(){for(;Ln.length>0;)Zc()}function Qc(e){var t=ve;if(t===null)return be.f|=En,e;if(!(t.f&gn)&&!(t.f&Hn))throw e;an(e,t)}function an(e,t){for(;t!==null;){if(t.f&mi){if(!(t.f&gn))throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const Hh=-7169;function je(e,t){e.f=e.f&Hh|t}function so(e){e.f&Ot||e.deps===null?je(e,Be):je(e,Qt)}function $c(e){if(e!==null)for(const t of e)!(t.f&Ze)||!(t.f&Kn)||(t.f^=Kn,$c(t.deps))}function eu(e,t,n){e.f&Je?t.add(e):e.f&Qt&&n.add(e),$c(e.deps),je(e,Be)}function tu(e,t,n){if(e==null)return t(void 0),xt;const r=ke(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}function Kh(e){let t;return tu(e,n=>t=n)(),t}let _i=!1,Wr=!1,yi=Symbol();function Wh(e,t,n){const r=n[t]??={store:null,source:Ca(void 0),unsubscribe:xt};if(r.store!==e&&!(yi in n))if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=xt;else{var s=!0;r.unsubscribe=tu(e,a=>{s?r.source.v=a:S(r.source,a)}),s=!1}return e&&yi in n?Kh(e):i(r.source)}function Yh(e,t,n){let r=n[t];return r&&r.store!==e&&(r.unsubscribe(),r.unsubscribe=xt),e}function nu(e,t){return Ia(e,t),t}function Gh(e,t){var n=e[t];n.store!==null&&nu(n.store,n.source.v)}function Xh(){const e={};function t(){Ct(()=>{for(var n in e)e[n].unsubscribe();Fn(e,yi,{enumerable:!1,value:!0})})}return[e,t]}function Ia(e,t){_i=!0;try{e.set(t)}finally{_i=!1}}function Jh(e,t,n){return Ia(e,n),t}function Zh(e,t,n=1){return Ia(e,t+n),t}function Qh(e,t,n=1){const r=t+n;return Ia(e,r),r}function $h(){Wr=!0}function ru(e){var t=Wr;try{return Wr=!1,[e(),Wr]}finally{Wr=t}}const vn=new Set;let me=null,lt=null,wi=null,hr=!1,ni=!1,cr=null,Vs=null;var wl=0;let ep=1;class Vt{id=ep++;current=new Map;previous=new Map;#e=new Set;#t=new Set;#n=new Set;#a=new Map;#s=new Map;#i=null;#r=[];#o=[];#l=new Set;#u=new Set;#c=new Map;#f=new Set;is_fork=!1;#h=!1;#v=new Set;#d(){return this.is_fork||this.#s.size>0}#g(){for(const r of this.#v)for(const s of r.#s.keys()){for(var t=!1,n=s;n.parent!==null;){if(this.#c.has(n)){t=!0;break}n=n.parent}if(!t)return!0}return!1}skip_effect(t){this.#c.has(t)||this.#c.set(t,{d:[],m:[]}),this.#f.delete(t)}unskip_effect(t,n=r=>this.schedule(r)){var r=this.#c.get(t);if(r){this.#c.delete(t);for(var s of r.d)je(s,Je),n(s);for(s of r.m)je(s,Qt),n(s)}this.#f.add(t)}#p(){if(wl++>1e3&&(vn.delete(this),tp()),!this.#d()){for(const l of this.#l)this.#u.delete(l),je(l,Je),this.schedule(l);for(const l of this.#u)je(l,Qt),this.schedule(l)}const t=this.#r;this.#r=[],this.apply();var n=cr=[],r=[],s=Vs=[];for(const l of t)try{this.#b(l,n,r)}catch(c){throw ou(l),c}if(me=null,s.length>0){var a=Vt.ensure();for(const l of s)a.schedule(l)}if(cr=null,Vs=null,this.#d()||this.#g()){this.#m(r),this.#m(n);for(const[l,c]of this.#c)iu(l,c)}else{this.#a.size===0&&vn.delete(this),this.#l.clear(),this.#u.clear();for(const l of this.#e)l(this);this.#e.clear(),kl(r),kl(n),this.#i?.resolve()}var o=me;if(this.#r.length>0){const l=o??=this;l.#r.push(...this.#r.filter(c=>!l.#r.includes(c)))}o!==null&&(vn.add(o),o.#p())}#b(t,n,r){t.f^=Be;for(var s=t.first;s!==null;){var a=s.f,o=(a&(Zt|pn))!==0,l=o&&(a&Be)!==0,c=l||(a&ct)!==0||this.#c.has(s);if(!c&&s.fn!==null){o?s.f^=Be:a&Hn?n.push(s):zr(s)&&(a&Yt&&this.#u.add(s),Xn(s));var u=s.first;if(u!==null){s=u;continue}}for(;s!==null;){var d=s.next;if(d!==null){s=d;break}s=s.parent}}}#m(t){for(var n=0;n<t.length;n+=1)eu(t[n],this.#l,this.#u)}capture(t,n,r=!1){t.v!==Te&&!this.previous.has(t)&&this.previous.set(t,t.v),t.f&En||(this.current.set(t,[n,r]),lt?.set(t,n)),this.is_fork||(t.v=n)}activate(){me=this}deactivate(){me=null,lt=null}flush(){try{ni=!0,me=this,this.#p()}finally{wl=0,wi=null,cr=null,Vs=null,ni=!1,me=null,lt=null,Nn.clear()}}discard(){for(const t of this.#t)t(this);this.#t.clear(),this.#n.clear(),vn.delete(this)}register_created_effect(t){this.#o.push(t)}#_(){for(const d of vn){var t=d.id<this.id,n=[];for(const[v,[p,b]]of this.current){if(d.current.has(v)){var r=d.current.get(v)[0];if(t&&p!==r)d.current.set(v,[p,b]);else continue}n.push(v)}var s=[...d.current.keys()].filter(v=>!this.current.has(v));if(s.length===0)t&&d.discard();else if(n.length>0){if(t)for(const v of this.#f)d.unskip_effect(v,p=>{p.f&(Yt|kr)?d.schedule(p):d.#m([p])});d.activate();var a=new Set,o=new Map;for(var l of n)su(l,s,a,o);o=new Map;var c=[...d.current.keys()].filter(v=>this.current.has(v)?this.current.get(v)[0]!==v:!0);for(const v of this.#o)!(v.f&(mt|ct|ts))&&ao(v,c,o)&&(v.f&(kr|Yt)?(je(v,Je),d.schedule(v)):d.#l.add(v));if(d.#r.length>0){d.apply();for(var u of d.#r)d.#b(u,[],[]);d.#r=[]}d.deactivate()}}for(const d of vn)d.#v.has(this)&&(d.#v.delete(this),d.#v.size===0&&!d.#d()&&(d.activate(),d.#p()))}increment(t,n){let r=this.#a.get(n)??0;if(this.#a.set(n,r+1),t){let s=this.#s.get(n)??0;this.#s.set(n,s+1)}}decrement(t,n,r){let s=this.#a.get(n)??0;if(s===1?this.#a.delete(n):this.#a.set(n,s-1),t){let a=this.#s.get(n)??0;a===1?this.#s.delete(n):this.#s.set(n,a-1)}this.#h||r||(this.#h=!0,ut(()=>{this.#h=!1,this.flush()}))}transfer_effects(t,n){for(const r of t)this.#l.add(r);for(const r of n)this.#u.add(r);t.clear(),n.clear()}oncommit(t){this.#e.add(t)}ondiscard(t){this.#t.add(t)}on_fork_commit(t){this.#n.add(t)}run_fork_commit_callbacks(){for(const t of this.#n)t(this);this.#n.clear()}settled(){return(this.#i??=Lc()).promise}static ensure(){if(me===null){const t=me=new Vt;ni||(vn.add(me),hr||ut(()=>{me===t&&t.flush()}))}return me}apply(){{lt=null;return}}schedule(t){if(wi=t,t.b?.is_pending&&t.f&(Hn|ms|$i)&&!(t.f&gn)){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var r=n.f;if(cr!==null&&n===ve&&(be===null||!(be.f&Ze))&&!_i)return;if(r&(pn|Zt)){if(!(r&Be))return;n.f^=Be}}this.#r.push(n)}}function An(e){var t=hr;hr=!0;try{var n;for(e&&(me!==null&&!me.is_fork&&me.flush(),n=e());;){if(Fh(),me===null)return n;me.flush()}}finally{hr=t}}function tp(){try{uh()}catch(e){an(e,wi)}}let hn=null;function kl(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&(mt|ct))&&zr(r)&&(hn=new Set,Xn(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Tu(r),hn?.size>0)){Nn.clear();for(const s of hn){if(s.f&(mt|ct))continue;const a=[s];let o=s.parent;for(;o!==null;)hn.has(o)&&(hn.delete(o),a.push(o)),o=o.parent;for(let l=a.length-1;l>=0;l--){const c=a[l];c.f&(mt|ct)||Xn(c)}}hn.clear()}}hn=null}}function su(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(const s of e.reactions){const a=s.f;a&Ze?su(s,t,n,r):a&(kr|Yt)&&!(a&Je)&&ao(s,t,r)&&(je(s,Je),io(s))}}function au(e,t){if(e.reactions!==null)for(const n of e.reactions){const r=n.f;r&Ze?au(n,t):r&ts&&(je(n,Je),t.add(n))}}function ao(e,t,n){const r=n.get(e);if(r!==void 0)return r;if(e.deps!==null)for(const s of e.deps){if(wr.call(t,s))return!0;if(s.f&Ze&&ao(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function io(e){me.schedule(e)}let ea=[];function np(){An(()=>{const e=ea;ea=[];for(const t of e)Sr(t)})}function rp(e){var t=Et(0),n=!0,r=void 0;return i(t),Eu(()=>{if(n){var s=lt;try{lt=null,r=e()}finally{lt=s}return}ea.length===0&&ut(np),ea.push(t)}),n=!1,r}function iu(e,t){if(!(e.f&Zt&&e.f&Be)){e.f&Je?t.d.push(e):e.f&Qt&&t.m.push(e),je(e,Be);for(var n=e.first;n!==null;)iu(n,t),n=n.next}}function ou(e){je(e,Be);for(var t=e.first;t!==null;)ou(t),t=t.next}function sp(e){Bc(),me!==null&&fh();var t=Vt.ensure();t.is_fork=!0,lt=new Map;var n=!1,r=t.settled();return An(e),{commit:async()=>{if(n){await r;return}vn.has(t)||dh(),n=!0,t.is_fork=!1;for(var[s,[a]]of t.current)s.v=a,s.wv=na();t.activate(),t.run_fork_commit_callbacks(),t.deactivate(),An(()=>{var o=new Set;for(var l of t.current.keys())au(l,o);pp(o),hu()}),t.flush(),await r},discard:()=>{for(var s of t.current.keys())s.wv=na();!n&&vn.has(t)&&t.discard()}}}function ap(e){let t=0,n=Et(0),r;return()=>{xs()&&(i(n),Ne(()=>(t===0&&(r=ke(()=>e(()=>Jr(n)))),t+=1,()=>{ut(()=>{t-=1,t===0&&(r?.(),r=void 0,Jr(n))})})))}}var ip=$t|Rn;function lu(e,t,n,r){new op(e,t,n,r)}class op{parent;is_pending=!1;transform_error;#e;#t=te?fe:null;#n;#a;#s;#i=null;#r=null;#o=null;#l=null;#u=0;#c=0;#f=!1;#h=new Set;#v=new Set;#d=null;#g=ap(()=>(this.#d=Et(this.#u),()=>{this.#d=null}));constructor(t,n,r,s){this.#e=t,this.#n=n,this.#a=a=>{var o=ve;o.b=this,o.f|=mi,r(a)},this.parent=ve.b,this.transform_error=s??this.parent?.transform_error??(a=>a),this.#s=dn(()=>{if(te){const a=this.#t;ft();const o=a.data===ya;if(a.data.startsWith(ml)){const c=JSON.parse(a.data.slice(ml.length));this.#b(c)}else o?this.#m():this.#p()}else this.#_()},ip),te&&(this.#e=fe)}#p(){try{this.#i=it(()=>this.#a(this.#e))}catch(t){this.error(t)}}#b(t){const n=this.#n.failed;n&&(this.#o=it(()=>{n(this.#e,()=>t,()=>()=>{})}))}#m(){const t=this.#n.pending;t&&(this.is_pending=!0,this.#r=it(()=>t(this.#e)),ut(()=>{var n=this.#l=document.createDocumentFragment(),r=$e();n.append(r),this.#i=this.#w(()=>it(()=>this.#a(r))),this.#c===0&&(this.#e.before(n),this.#l=null,qn(this.#r,()=>{this.#r=null}),this.#y(me))}))}#_(){try{if(this.is_pending=this.has_pending_snippet(),this.#c=0,this.#u=0,this.#i=it(()=>{this.#a(this.#e)}),this.#c>0){var t=this.#l=document.createDocumentFragment();mo(this.#i,t);const n=this.#n.pending;this.#r=it(()=>n(this.#e))}else this.#y(me)}catch(n){this.error(n)}}#y(t){this.is_pending=!1,t.transfer_effects(this.#h,this.#v)}defer_effect(t){eu(t,this.#h,this.#v)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#n.pending}#w(t){var n=ve,r=be,s=xe;st(this.#s),gt(this.#s),xr(this.#s.ctx);try{return Vt.ensure(),t()}catch(a){return Qc(a),null}finally{st(n),gt(r),xr(s)}}#k(t,n){if(!this.has_pending_snippet()){this.parent&&this.parent.#k(t,n);return}this.#c+=t,this.#c===0&&(this.#y(n),this.#r&&qn(this.#r,()=>{this.#r=null}),this.#l&&(this.#e.before(this.#l),this.#l=null))}update_pending_count(t,n){this.#k(t,n),this.#u+=t,!(!this.#d||this.#f)&&(this.#f=!0,ut(()=>{this.#f=!1,this.#d&&on(this.#d,this.#u)}))}get_effect_pending(){return this.#g(),i(this.#d)}error(t){if(!this.#n.onerror&&!this.#n.failed)throw t;me?.is_fork?(this.#i&&me.skip_effect(this.#i),this.#r&&me.skip_effect(this.#r),this.#o&&me.skip_effect(this.#o),me.on_fork_commit(()=>{this.#x(t)})):this.#x(t)}#x(t){this.#i&&(Ke(this.#i),this.#i=null),this.#r&&(Ke(this.#r),this.#r=null),this.#o&&(Ke(this.#o),this.#o=null),te&&(Ee(this.#t),Gt(),Ee(Wn()));var n=this.#n.onerror;let r=this.#n.failed;var s=!1,a=!1;const o=()=>{if(s){Th();return}s=!0,a&&_h(),this.#o!==null&&qn(this.#o,()=>{this.#o=null}),this.#w(()=>{this.#_()})},l=c=>{try{a=!0,n?.(c,o),a=!1}catch(u){an(u,this.#s&&this.#s.parent)}r&&(this.#o=this.#w(()=>{try{return it(()=>{var u=ve;u.b=this,u.f|=mi,r(this.#e,()=>c,()=>o)})}catch(u){return an(u,this.#s.parent),null}}))};ut(()=>{var c;try{c=this.transform_error(t)}catch(u){an(u,this.#s&&this.#s.parent);return}c!==null&&typeof c=="object"&&typeof c.then=="function"?c.then(l,u=>an(u,this.#s&&this.#s.parent)):l(c)})}}function lp(){ve===null&&ch();var e=ve.b;return e===null?0:e.get_effect_pending()}function _s(e,t,n,r){const s=ws;var a=e.filter(p=>!p.settled);if(n.length===0&&a.length===0){r(t.map(s));return}var o=ve,l=Aa(),c=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(p=>p.promise)):null;function u(p){l();try{r(p)}catch(b){o.f&mt||an(b,o)}Gn()}if(n.length===0){c.then(()=>u(t.map(s)));return}var d=ys();function v(){Promise.all(n.map(p=>uu(p))).then(p=>u([...t.map(s),...p])).catch(p=>an(p,o)).finally(()=>d())}c?c.then(()=>{l(),v(),Gn()}):v()}function cu(e,t){_s(e,[],[],t)}function Aa(){var e=ve,t=be,n=xe,r=me;return function(a=!0){st(e),gt(t),xr(n),a&&!(e.f&mt)&&(r?.activate(),r?.apply())}}async function cp(e){var t=Aa(),n=await e;return()=>(t(),n)}async function ki(e){var t=Xr;queueMicrotask(()=>{Xr===t&&Bs(null)});var n=await e;return()=>(Bs(t),queueMicrotask(()=>{Xr===t&&Bs(null)}),n)}async function*up(e){const t=e[Symbol.asyncIterator]?.()??e[Symbol.iterator]?.();if(t===void 0)throw new TypeError("value is not async iterable");let n=!1;try{for(;;){const{done:s,value:a}=(await ki(t.next()))();if(s){n=!0;break}var r=Xr;yield a,Bs(r)}}finally{if(!n&&t.return!==void 0)return(await ki(t.return()))().value}}function Gn(e=!0){st(null),gt(null),xr(null),e&&me?.deactivate()}function dp(e){const t=Aa(),n=ys();var r=ve,s=null;const a=u=>{s={error:u},Ei(r)||an(u,r)};var o=Promise.resolve(e[0]()).catch(a),l={promise:o,settled:!1},c=[l];o.finally(()=>{l.settled=!0,Gn()});for(const u of e.slice(1)){o=o.then(()=>{if(t(),s)throw s.error;if(Ei(r))throw nn;return u()}).catch(a);const d={promise:o,settled:!1};c.push(d),o.finally(()=>{d.settled=!0,Gn()})}return o.then(()=>Promise.resolve()).finally(()=>n()),c}function fp(e){return Promise.all(e.map(t=>t.promise))}function ys(){var e=ve,t=e.b,n=me,r=t.is_rendered();return t.update_pending_count(1,n),n.increment(r,e),(s=!1)=>{t.update_pending_count(-1,n),n.decrement(r,e,s)}}let Xr=null;function Bs(e){Xr=e}function ws(e){var t=Ze|Je;return ve!==null&&(ve.f|=Rn),{ctx:xe,deps:null,effects:null,equals:Hc,f:t,fn:e,reactions:null,rv:0,v:Te,wv:0,parent:ve,ac:null}}function uu(e,t,n){let r=ve;r===null&&nh();var s=void 0,a=Et(Te),o=!be,l=new Map;return Ip(()=>{var c=ve,u=Lc();s=u.promise;try{Promise.resolve(e()).then(u.resolve,u.reject).finally(Gn)}catch(b){u.reject(b),Gn()}var d=me;if(o){if(c.f&gn)var v=ys();if(r.b.is_rendered())l.get(d)?.reject(nn),l.delete(d);else{for(const b of l.values())b.reject(nn);l.clear()}l.set(d,u)}const p=(b,x=void 0)=>{if(v){var _=x===nn;v(_)}if(!(x===nn||c.f&mt)){if(d.activate(),x)a.f|=En,on(a,x);else{a.f&En&&(a.f^=En),on(a,b);for(const[y,k]of l){if(l.delete(y),y===d)break;k.reject(nn)}}d.deactivate()}};u.promise.then(p,b=>p(null,b||"unknown"))}),Ct(()=>{for(const c of l.values())c.reject(nn)}),new Promise(c=>{function u(d){function v(){d===s?c(a):u(s)}d.then(v,v)}u(s)})}function F(e){const t=ws(e);return ju(t),t}function oo(e){const t=ws(e);return t.equals=Wc,t}function vp(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)Ke(t[n])}}function lo(e){var t,n=ve,r=e.parent;if(!mn&&r!==null&&r.f&(mt|ct))return xh(),e.v;st(r);try{e.f&=~Kn,vp(e),t=Lu(e)}finally{st(n)}return t}function du(e){var t=lo(e);if(!e.equals(t)&&(e.wv=na(),(!me?.is_fork||e.deps===null)&&(me!==null?me.capture(e,t,!0):e.v=t,e.deps===null))){je(e,Be);return}mn||(lt!==null?(xs()||me?.is_fork)&&lt.set(e,t):so(e))}function hp(e){if(e.effects!==null)for(const t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(nn),t.teardown=xt,t.ac=null,ns(t,0),ho(t))}function fu(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&Xn(t)}let ta=new Set;const Nn=new Map;function pp(e){ta=e}let vu=!1;function Et(e,t){var n={f:0,v:e,reactions:null,equals:Hc,rv:0,wv:0};return n}function V(e,t){const n=Et(e);return ju(n),n}function Ca(e,t=!1,n=!0){const r=Et(e);return t||(r.equals=Wc),r}function mp(e,t){return S(e,ke(()=>i(e))),t}function S(e,t,n=!1){be!==null&&(!Kt||be.f&ts)&&Jc()&&be.f&(Ze|Yt|kr|ts)&&(Nt===null||!wr.call(Nt,e))&&gh();let r=n?oe(t):t;return on(e,r,Vs)}function on(e,t,n=null){if(!e.equals(t)){Nn.set(e,mn?t:e.v);var r=Vt.ensure();if(r.capture(e,t),e.f&Ze){const s=e;e.f&Je&&lo(s),lt===null&&so(s)}e.wv=na(),pu(e,Je,n),ve!==null&&ve.f&Be&&!(ve.f&(Zt|pn))&&(zt===null?Pp([e]):zt.push(e)),!r.is_fork&&ta.size>0&&!vu&&hu()}return t}function hu(){vu=!1;for(const e of ta)e.f&Be&&je(e,Qt),zr(e)&&Xn(e);ta.clear()}function Sr(e,t=1){var n=i(e),r=t===1?n++:n--;return S(e,n),r}function bp(e,t=1){var n=i(e);return S(e,t===1?++n:--n)}function Jr(e){S(e,e.v+1)}function pu(e,t,n){var r=e.reactions;if(r!==null)for(var s=r.length,a=0;a<s;a++){var o=r[a],l=o.f,c=(l&Je)===0;if(c&&je(o,t),l&Ze){var u=o;lt?.delete(u),l&Kn||(l&Ot&&(o.f|=Kn),pu(u,Qt,n))}else if(c){var d=o;l&Yt&&hn!==null&&hn.add(d),n!==null?n.push(d):io(d)}}}function oe(e){if(typeof e!="object"||e===null||nt in e)return e;const t=xa(e);if(t!==zc&&t!==Fv)return e;var n=new Map,r=Pr(e),s=V(0),a=Vn,o=l=>{if(Vn===a)return l();var c=be,u=Vn;gt(null),El(a);var d=l();return gt(c),El(u),d};return r&&n.set("length",V(e.length)),new Proxy(e,{defineProperty(l,c,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&mh();var d=n.get(c);return d===void 0?o(()=>{var v=V(u.value);return n.set(c,v),v}):S(d,u.value,!0),!0},deleteProperty(l,c){var u=n.get(c);if(u===void 0){if(c in l){const d=o(()=>V(Te));n.set(c,d),Jr(s)}}else S(u,Te),Jr(s);return!0},get(l,c,u){if(c===nt)return e;var d=n.get(c),v=c in l;if(d===void 0&&(!v||Wt(l,c)?.writable)&&(d=o(()=>{var b=oe(v?l[c]:Te),x=V(b);return x}),n.set(c,d)),d!==void 0){var p=i(d);return p===Te?void 0:p}return Reflect.get(l,c,u)},getOwnPropertyDescriptor(l,c){var u=Reflect.getOwnPropertyDescriptor(l,c);if(u&&"value"in u){var d=n.get(c);d&&(u.value=i(d))}else if(u===void 0){var v=n.get(c),p=v?.v;if(v!==void 0&&p!==Te)return{enumerable:!0,configurable:!0,value:p,writable:!0}}return u},has(l,c){if(c===nt)return!0;var u=n.get(c),d=u!==void 0&&u.v!==Te||Reflect.has(l,c);if(u!==void 0||ve!==null&&(!d||Wt(l,c)?.writable)){u===void 0&&(u=o(()=>{var p=d?oe(l[c]):Te,b=V(p);return b}),n.set(c,u));var v=i(u);if(v===Te)return!1}return d},set(l,c,u,d){var v=n.get(c),p=c in l;if(r&&c==="length")for(var b=u;b<v.v;b+=1){var x=n.get(b+"");x!==void 0?S(x,Te):b in l&&(x=o(()=>V(Te)),n.set(b+"",x))}if(v===void 0)(!p||Wt(l,c)?.writable)&&(v=o(()=>V(void 0)),S(v,oe(u)),n.set(c,v));else{p=v.v!==Te;var _=o(()=>oe(u));S(v,_)}var y=Reflect.getOwnPropertyDescriptor(l,c);if(y?.set&&y.set.call(d,u),!p){if(r&&typeof c=="string"){var k=n.get("length"),g=Number(c);Number.isInteger(g)&&g>=k.v&&S(k,g+1)}Jr(s)}return!0},ownKeys(l){i(s);var c=Reflect.ownKeys(l).filter(v=>{var p=n.get(v);return p===void 0||p.v!==Te});for(var[u,d]of n)d.v!==Te&&!(u in l)&&c.push(u);return c},setPrototypeOf(){bh()}})}function Er(e){try{if(e!==null&&typeof e=="object"&&nt in e)return e[nt]}catch{}return e}function mu(e,t){return Object.is(Er(e),Er(t))}function gp(e,t,n=!0){try{e===t!=(Er(e)===Er(t))&&Fc(n?"===":"!==")}catch{}return e===t===n}function _p(e,t,n=!0){return e==t!=(Er(e)==Er(t))&&Fc(),e==t===n}var xi,bu,co,gu,_u;function Si(){if(xi===void 0){xi=window,bu=document,co=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;gu=Wt(t,"firstChild").get,_u=Wt(t,"nextSibling").get,bl(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),bl(n)&&(n.__t=void 0)}}function $e(e=""){return document.createTextNode(e)}function Re(e){return gu.call(e)}function It(e){return _u.call(e)}function h(e,t){if(!te)return Re(e);var n=Re(fe);if(n===null)n=fe.appendChild($e());else if(t&&n.nodeType!==bs){var r=$e();return n?.before(r),Ee(r),r}return t&&Ta(n),Ee(n),n}function pe(e,t=!1){if(!te){var n=Re(e);return n instanceof Comment&&n.data===""?It(n):n}if(t){if(fe?.nodeType!==bs){var r=$e();return fe?.before(r),Ee(r),r}Ta(fe)}return fe}function w(e,t=1,n=!1){let r=te?fe:e;for(var s;t--;)s=r,r=It(r);if(!te)return r;if(n){if(r?.nodeType!==bs){var a=$e();return r===null?s?.after(a):r.before(a),Ee(a),a}Ta(r)}return Ee(r),r}function uo(e){e.textContent=""}function yu(){return!1}function Pn(e,t,n){let r=n?{is:n}:void 0;return document.createElementNS(t??Rc,e,r)}function yp(){return document.createDocumentFragment()}function wu(e=""){return document.createComment(e)}function wp(e,t,n=""){if(t.startsWith("xlink:")){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n);return}return e.setAttribute(t,n)}function Ta(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===bs;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function Dr(e,t){if(t){const n=document.body;e.autofocus=!0,ut(()=>{document.activeElement===n&&e.focus()})}}function fo(e){te&&Re(e)!==null&&uo(e)}let xl=!1;function ku(){xl||(xl=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function _t(e,t,n,r=!0){r&&n();for(var s of t)e.addEventListener(s,n);Ct(()=>{for(var a of t)e.removeEventListener(a,n)})}function jn(e){var t=be,n=ve;gt(null),st(null);try{return e()}finally{gt(t),st(n)}}function ks(e,t,n,r=n){e.addEventListener(t,()=>jn(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),ku()}function vo(e){ve===null&&(be===null&&lh(),oh()),mn&&ih()}function kp(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function yt(e,t){var n=ve;n!==null&&n.f&ct&&(e|=ct);var r={ctx:xe,deps:null,nodes:null,f:e|Je|Ot,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};me?.register_created_effect(r);var s=r;if(e&Hn)cr!==null?cr.push(r):Vt.ensure().schedule(r);else if(t!==null){try{Xn(r)}catch(o){throw Ke(r),o}s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&!(s.f&Rn)&&(s=s.first,e&Yt&&e&$t&&s!==null&&(s.f|=$t))}if(s!==null&&(s.parent=n,n!==null&&kp(s,n),be!==null&&be.f&Ze&&!(e&pn))){var a=be;(a.effects??=[]).push(s)}return r}function xs(){return be!==null&&!Kt}function Ct(e){const t=yt(ms,null);return je(t,Be),t.teardown=e,t}function Ae(e){vo();var t=ve.f,n=!be&&(t&Zt)!==0&&(t&gn)===0;if(n){var r=xe;(r.e??=[]).push(e)}else return xu(e)}function xu(e){return yt(Hn|Nc,e)}function Su(e){return vo(),yt(ms|Nc,e)}function Eu(e){return yt(ts,e)}function Ss(e){Vt.ensure();const t=yt(pn|Rn,e);return()=>{Ke(t)}}function xp(e){Vt.ensure();const t=yt(pn|Rn,e);return(n={})=>new Promise(r=>{n.outro?qn(t,()=>{Ke(t),r(void 0)}):(Ke(t),r(void 0))})}function At(e){return yt(Hn,e)}function Sp(e,t){var n=xe,r={effect:null,ran:!1,deps:e};n.l.$.push(r),r.effect=Ne(()=>{if(e(),!r.ran){r.ran=!0;var s=ve;try{st(s.parent),ke(t)}finally{st(s)}}})}function Ep(){var e=xe;Ne(()=>{for(var t of e.l.$){t.deps();var n=t.effect;n.f&Be&&n.deps!==null&&je(n,Qt),zr(n)&&Xn(n),t.ran=!1}})}function Ip(e){return yt(kr|Rn,e)}function Ne(e,t=0){return yt(ms|t,e)}function O(e,t=[],n=[],r=[]){_s(r,t,n,s=>{yt(ms,()=>e(...s.map(i)))})}function Ap(e,t=[],n=[],r=[]){if(n.length>0||r.length>0)var s=ys();_s(r,t,n,a=>{yt(Hn,()=>e(...a.map(i))),s&&s()})}function dn(e,t=0){var n=yt(Yt|t,e);return n}function Iu(e,t=0){var n=yt($i|t,e);return n}function it(e){return yt(Zt|Rn,e)}function Au(e){var t=e.teardown;if(t!==null){const n=mn,r=be;Sl(!0),gt(null);try{t.call(null)}finally{Sl(n),gt(r)}}}function ho(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&jn(()=>{s.abort(nn)});var r=n.next;n.f&pn?n.parent=null:Ke(n,t),n=r}}function Cp(e){for(var t=e.first;t!==null;){var n=t.next;t.f&Zt||Ke(t),t=n}}function Ke(e,t=!0){var n=!1;(t||e.f&Oc)&&e.nodes!==null&&e.nodes.end!==null&&(Cu(e.nodes.start,e.nodes.end),n=!0),je(e,bi),ho(e,t&&!n),ns(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const a of r)a.stop();Au(e),e.f^=bi,e.f|=mt;var s=e.parent;s!==null&&s.first!==null&&Tu(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Cu(e,t){for(;e!==null;){var n=e===t?null:It(e);e.remove(),e=n}}function Tu(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function qn(e,t,n=!0){var r=[];Ru(e,r,!0);var s=()=>{n&&Ke(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||s();for(var l of r)l.out(o)}else s()}function Ru(e,t,n){if(!(e.f&ct)){e.f^=ct;var r=e.nodes&&e.nodes.t;if(r!==null)for(const l of r)(l.is_global||n)&&t.push(l);for(var s=e.first;s!==null;){var a=s.next;if(!(s.f&pn)){var o=(s.f&$t)!==0||(s.f&Zt)!==0&&(e.f&Yt)!==0;Ru(s,t,o?n:!1)}s=a}}}function po(e){Pu(e,!0)}function Pu(e,t){if(e.f&ct){e.f^=ct,e.f&Be||(je(e,Je),Vt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&$t)!==0||(n.f&Zt)!==0;Pu(n,s?t:!1),n=r}var a=e.nodes&&e.nodes.t;if(a!==null)for(const o of a)(o.is_global||t)&&o.in()}}function Ei(e=ve){return(e.f&mt)!==0}function mo(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:It(n);t.append(n),n=s}}let ir=null;function Tp(e){var t=ir;try{if(ir=new Set,ke(e),t!==null)for(var n of ir)t.add(n);return ir}finally{ir=t}}function Rp(e){for(var t of Tp(e))on(t,t.v)}let Us=!1,mn=!1;function Sl(e){mn=e}let be=null,Kt=!1;function gt(e){be=e}let ve=null;function st(e){ve=e}let Nt=null;function ju(e){be!==null&&(Nt===null?Nt=[e]:Nt.push(e))}let ht=null,wt=0,zt=null;function Pp(e){zt=e}let Du=1,Mn=0,Vn=Mn;function El(e){Vn=e}function na(){return++Du}function zr(e){var t=e.f;if(t&Je)return!0;if(t&Ze&&(e.f&=~Kn),t&Qt){for(var n=e.deps,r=n.length,s=0;s<r;s++){var a=n[s];if(zr(a)&&du(a),a.wv>e.wv)return!0}t&Ot&&lt===null&&je(e,Be)}return!1}function zu(e,t,n=!0){var r=e.reactions;if(r!==null&&!(Nt!==null&&wr.call(Nt,e)))for(var s=0;s<r.length;s++){var a=r[s];a.f&Ze?zu(a,t,!1):t===a&&(n?je(a,Je):a.f&Be&&je(a,Qt),io(a))}}function Lu(e){var t=ht,n=wt,r=zt,s=be,a=Nt,o=xe,l=Kt,c=Vn,u=e.f;ht=null,wt=0,zt=null,be=u&(Zt|pn)?null:e,Nt=null,xr(e.ctx),Kt=!1,Vn=++Mn,e.ac!==null&&(jn(()=>{e.ac.abort(nn)}),e.ac=null);try{e.f|=gi;var d=e.fn,v=d();e.f|=gn;var p=e.deps,b=me?.is_fork;if(ht!==null){var x;if(b||ns(e,wt),p!==null&&wt>0)for(p.length=wt+ht.length,x=0;x<ht.length;x++)p[wt+x]=ht[x];else e.deps=p=ht;if(xs()&&e.f&Ot)for(x=wt;x<p.length;x++)(p[x].reactions??=[]).push(e)}else!b&&p!==null&&wt<p.length&&(ns(e,wt),p.length=wt);if(Jc()&&zt!==null&&!Kt&&p!==null&&!(e.f&(Ze|Qt|Je)))for(x=0;x<zt.length;x++)zu(zt[x],e);if(s!==null&&s!==e){if(Mn++,s.deps!==null)for(let _=0;_<n;_+=1)s.deps[_].rv=Mn;if(t!==null)for(const _ of t)_.rv=Mn;zt!==null&&(r===null?r=zt:r.push(...zt))}return e.f&En&&(e.f^=En),v}catch(_){return Qc(_)}finally{e.f^=gi,ht=t,wt=n,zt=r,be=s,Nt=a,xr(o),Kt=l,Vn=c}}function jp(e,t){let n=t.reactions;if(n!==null){var r=Uv.call(n,e);if(r!==-1){var s=n.length-1;s===0?n=t.reactions=null:(n[r]=n[s],n.pop())}}if(n===null&&t.f&Ze&&(ht===null||!wr.call(ht,t))){var a=t;a.f&Ot&&(a.f^=Ot,a.f&=~Kn),a.v!==Te&&so(a),hp(a),ns(a,0)}}function ns(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)jp(e,n[r])}function Xn(e){var t=e.f;if(!(t&mt)){je(e,Be);var n=ve,r=Us;ve=e,Us=!0;try{t&(Yt|$i)?Cp(e):ho(e),Au(e);var s=Lu(e);e.teardown=typeof s=="function"?s:null,e.wv=Du;var a;jc&&Ph&&e.f&Je&&e.deps}finally{Us=r,ve=n}}}async function Es(){await Promise.resolve(),An()}function Dp(){return Vt.ensure().settled()}function i(e){var t=e.f,n=(t&Ze)!==0;if(ir?.add(e),be!==null&&!Kt){var r=ve!==null&&(ve.f&mt)!==0;if(!r&&(Nt===null||!wr.call(Nt,e))){var s=be.deps;if(be.f&gi)e.rv<Mn&&(e.rv=Mn,ht===null&&s!==null&&s[wt]===e?wt++:ht===null?ht=[e]:ht.push(e));else{(be.deps??=[]).push(e);var a=e.reactions;a===null?e.reactions=[be]:wr.call(a,be)||a.push(be)}}}if(mn&&Nn.has(e))return Nn.get(e);if(n){var o=e;if(mn){var l=o.v;return(!(o.f&Be)&&o.reactions!==null||Ou(o))&&(l=lo(o)),Nn.set(o,l),l}var c=(o.f&Ot)===0&&!Kt&&be!==null&&(Us||(be.f&Ot)!==0),u=(o.f&gn)===0;zr(o)&&(c&&(o.f|=Ot),du(o)),c&&!u&&(fu(o),Mu(o))}if(lt?.has(e))return lt.get(e);if(e.f&En)throw e.v;return e.v}function Mu(e){if(e.f|=Ot,e.deps!==null)for(const t of e.deps)(t.reactions??=[]).push(e),t.f&Ze&&!(t.f&Ot)&&(fu(t),Mu(t))}function Ou(e){if(e.v===Te)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(Nn.has(t)||t.f&Ze&&Ou(t))return!0;return!1}function zp(e){return e&&i(e)}function ke(e){var t=Kt;try{return Kt=!0,e()}finally{Kt=t}}function bo(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if(nt in e)ra(e);else if(!Array.isArray(e))for(let t in e){const n=e[t];typeof n=="object"&&n&&nt in n&&ra(n)}}}function ra(e,t=new Set){if(typeof e=="object"&&e!==null&&!(e instanceof EventTarget)&&!t.has(e)){t.add(e),e instanceof Date&&e.getTime();for(let r in e)try{ra(e[r],t)}catch{}const n=xa(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){const r=Dc(n);for(let s in r){const a=r[s].get;if(a)try{a.call(e)}catch{}}}}}function Lp(e,t){if(Bc(),te){const n=window.__svelte?.h;if(n?.has(e))return n.get(e);Eh()}return t()}const Yr=Symbol("events"),Nu=new Set,Ii=new Set;function Mp(e){if(!te)return;e.removeAttribute("onload"),e.removeAttribute("onerror");const t=e.__e;t!==void 0&&(e.__e=void 0,queueMicrotask(()=>{e.isConnected&&e.dispatchEvent(t)}))}function qu(e,t,n,r={}){function s(a){if(r.capture||Ai.call(t,a),!a.cancelBubble)return jn(()=>n?.call(this,a))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?ut(()=>{t.addEventListener(e,s,r)}):t.addEventListener(e,s,r),s}function Me(e,t,n,r,s){var a={capture:r,passive:s},o=qu(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&Ct(()=>{t.removeEventListener(e,o,a)})}function U(e,t,n){(t[Yr]??={})[e]=n}function le(e){for(var t=0;t<e.length;t++)Nu.add(e[t]);for(var n of Ii)n(e)}let Il=null;function Ai(e){var t=this,n=t.ownerDocument,r=e.type,s=e.composedPath?.()||[],a=s[0]||e.target;Il=e;var o=0,l=Il===e&&e[Yr];if(l){var c=s.indexOf(l);if(c!==-1&&(t===document||t===window)){e[Yr]=t;return}var u=s.indexOf(t);if(u===-1)return;c<=u&&(o=c)}if(a=s[o]||e.target,a!==t){Fn(e,"currentTarget",{configurable:!0,get(){return a||n}});var d=be,v=ve;gt(null),st(null);try{for(var p,b=[];a!==null;){var x=a.assignedSlot||a.parentNode||a.host||null;try{var _=a[Yr]?.[r];_!=null&&(!a.disabled||e.target===a)&&_.call(a,e)}catch(y){p?b.push(y):p=y}if(e.cancelBubble||x===t||x===null)break;a=x}if(p){for(let y of b)queueMicrotask(()=>{throw y});throw p}}finally{e[Yr]=t,delete e.currentTarget,gt(d),st(v)}}}function Op(e,t,n,r,s,a=!1,o=!1){let l,c;try{l=e()}catch(u){c=u}if(typeof l!="function"&&(a||l!=null||c)){const u=r?.[kt];s?`${u}${s[0]}${s[1]}`:`${u}`;const d=n[0]?.eventPhase<Event.BUBBLING_PHASE?"capture":"";if(n[0]?.type+d,Sh(),c)throw c}l?.apply(t,n)}const Np=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function Vu(e){return Np?.createHTML(e)??e}function go(e){var t=Pn("template");return t.innerHTML=Vu(e.replaceAll("<!>","<!---->")),t.content}const qp=$n?"template":"TEMPLATE",Vp=$n?"script":"SCRIPT";function We(e,t){var n=ve;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function T(e,t){var n=(t&Zi)!==0,r=(t&Tc)!==0,s,a=!e.startsWith("<!>");return()=>{if(te)return We(fe,null),fe;s===void 0&&(s=go(a?e:"<!>"+e),n||(s=Re(s)));var o=r||co?document.importNode(s,!0):s.cloneNode(!0);if(n){var l=Re(o),c=o.lastChild;We(l,c)}else We(o,o);return o}}function Bu(e,t,n="svg"){var r=!e.startsWith("<!>"),s=(t&Zi)!==0,a=`<${n}>${r?e:"<!>"+e}</${n}>`,o;return()=>{if(te)return We(fe,null),fe;if(!o){var l=go(a),c=Re(l);if(s)for(o=document.createDocumentFragment();Re(c);)o.appendChild(Re(c));else o=Re(c)}var u=o.cloneNode(!0);if(s){var d=Re(u),v=u.lastChild;We(d,v)}else We(u,u);return u}}function _o(e,t){return Bu(e,t,"svg")}function Bp(e,t){return Bu(e,t,"math")}function Uu(e,t){var n=yp();for(var r of e){if(typeof r=="string"){n.append($e(r));continue}if(r===void 0||r[0][0]==="/"){n.append(wu(r?r[0].slice(3):""));continue}const[l,c,...u]=r,d=l==="svg"?ps:l==="math"?Qi:t;var s=Pn(l,d,c?.is);for(var a in c)wp(s,a,c[a]);if(u.length>0){var o=s.nodeName===qp?s.content:s;o.append(Uu(u,s.nodeName==="foreignObject"?void 0:d))}n.append(s)}return n}function Up(e,t){var n=(t&Zi)!==0,r=(t&Tc)!==0,s;return()=>{if(te)return We(fe,null),fe;if(s===void 0){const c=t&Vv?ps:t&Bv?Qi:void 0;s=Uu(e,c),n||(s=Re(s))}var a=r||co?document.importNode(s,!0):s.cloneNode(!0);if(n){var o=Re(a),l=a.lastChild;We(o,l)}else We(a,a);return a}}function Fp(e){return()=>Hp(e())}function Hp(e){if(te)return e;const t=e.nodeType===Vc,n=e.nodeName===Vp?[e]:e.querySelectorAll("script"),r=ve;for(const a of n){const o=Pn("script");for(var s of a.attributes)o.setAttribute(s.name,s.value);o.textContent=a.textContent,(t?e.firstChild===a:e===a)&&(r.nodes.start=o),(t?e.lastChild===a:e===a)&&(r.nodes.end=o),a.replaceWith(o)}return e}function Xt(e=""){if(!te){var t=$e(e+"");return We(t,t),t}var n=fe;return n.nodeType!==bs?(n.before(n=$e()),Ee(n)):Ta(n),We(n,n),n}function Xe(){if(te)return We(fe,null),fe;var e=document.createDocumentFragment(),t=document.createComment(""),n=$e();return e.append(t,n),We(t,n),e}function E(e,t){if(te){var n=ve;(!(n.f&gn)||n.nodes.end===null)&&(n.nodes.end=fe),ft();return}e!==null&&e.before(t)}function Kp(){if(te&&fe&&fe.nodeType===_n&&fe.textContent?.startsWith("$")){const e=fe.textContent.substring(1);return ft(),e}return(window.__svelte??={}).uid??=1,`c${window.__svelte.uid++}`}const Wp=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function Yp(e){return Wp.includes(e)||e.toLowerCase()==="!doctype"}function Gp(e){return e.endsWith("capture")&&e!=="gotpointercapture"&&e!=="lostpointercapture"}const Xp=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function Jp(e){return Xp.includes(e)}const Zp={formnovalidate:"formNoValidate",ismap:"isMap",nomodule:"noModule",playsinline:"playsInline",readonly:"readOnly",defaultvalue:"defaultValue",defaultchecked:"defaultChecked",srcobject:"srcObject",novalidate:"noValidate",allowfullscreen:"allowFullscreen",disablepictureinpicture:"disablePictureInPicture",disableremoteplayback:"disableRemotePlayback"};function Qp(e){return e=e.toLowerCase(),Zp[e]??e}const $p=["touchstart","touchmove"];function em(e){return $p.includes(e)}const tm=["textarea","script","style","title"];function nm(e){return tm.includes(e)}function Fu(e){return e?.replace(/\//g,"/​")}let sa=!0;function ur(e){sa=e}function L(e,t){var n=t==null?"":typeof t=="object"?`${t}`:t;n!==(e.__t??=e.nodeValue)&&(e.__t=n,e.nodeValue=`${n}`)}function Le(e,t){return Ku(e,t)}function Hu(e,t){Si(),t.intro=t.intro??!1;const n=t.target,r=te,s=fe;try{for(var a=Re(n);a&&(a.nodeType!==_n||a.data!==_a);)a=It(a);if(!a)throw Un;Ce(!0),Ee(a);const o=Ku(e,{...t,anchor:a});return Ce(!1),o}catch(o){if(o instanceof Error&&o.message.split(`
6
- `).some(l=>l.startsWith("https://svelte.dev/e/")))throw o;return o!==Un&&console.warn("Failed to hydrate: ",o),t.recover===!1&&hh(),Si(),uo(n),Ce(!1),Le(e,t)}finally{Ce(r),Ee(s)}}const Ms=new Map;function Ku(e,{target:t,anchor:n,props:r={},events:s,context:a,intro:o=!0,transformError:l}){Si();var c=void 0,u=xp(()=>{var d=n??t.appendChild($e());lu(d,{pending:()=>{}},b=>{re({});var x=xe;if(a&&(x.c=a),s&&(r.$$events=s),te&&We(b,null),sa=o,c=e(b,r)||{},sa=!0,te&&(ve.nodes.end=fe,fe===null||fe.nodeType!==_n||fe.data!==wa))throw gs(),Un;se()},l);var v=new Set,p=b=>{for(var x=0;x<b.length;x++){var _=b[x];if(!v.has(_)){v.add(_);var y=em(_);for(const m of[t,document]){var k=Ms.get(m);k===void 0&&(k=new Map,Ms.set(m,k));var g=k.get(_);g===void 0?(m.addEventListener(_,Ai,{passive:y}),k.set(_,1)):k.set(_,g+1)}}}};return p(ka(Nu)),Ii.add(p),()=>{for(var b of v)for(const y of[t,document]){var x=Ms.get(y),_=x.get(b);--_==0?(y.removeEventListener(b,Ai),x.delete(b),x.size===0&&Ms.delete(y)):x.set(b,_)}Ii.delete(p),d!==n&&d.parentNode?.removeChild(d)}});return Ci.set(c,u),c}let Ci=new WeakMap;function He(e,t){const n=Ci.get(e);return n?(Ci.delete(e),n(t)):Promise.resolve()}function rm(e){const t=e();t&&Yp(t)&&jh()}function sm(e){const t=e();t&&!(typeof t=="string")&&th()}function am(e,t){e!=null&&typeof e.subscribe!="function"&&eh()}function Wu(e){return e.toString=()=>($v(),""),e}class Lr{anchor;#e=new Map;#t=new Map;#n=new Map;#a=new Set;#s=!0;constructor(t,n=!0){this.anchor=t,this.#s=n}#i=t=>{if(this.#e.has(t)){var n=this.#e.get(t),r=this.#t.get(n);if(r)po(r),this.#a.delete(n);else{var s=this.#n.get(n);s&&(this.#t.set(n,s.effect),this.#n.delete(n),s.fragment.lastChild.remove(),this.anchor.before(s.fragment),r=s.effect)}for(const[a,o]of this.#e){if(this.#e.delete(a),a===t)break;const l=this.#n.get(o);l&&(Ke(l.effect),this.#n.delete(o))}for(const[a,o]of this.#t){if(a===n||this.#a.has(a))continue;const l=()=>{if(Array.from(this.#e.values()).includes(a)){var u=document.createDocumentFragment();mo(o,u),u.append($e()),this.#n.set(a,{effect:o,fragment:u})}else Ke(o);this.#a.delete(a),this.#t.delete(a)};this.#s||!r?(this.#a.add(a),qn(o,l,!1)):l()}}};#r=t=>{this.#e.delete(t);const n=Array.from(this.#e.values());for(const[r,s]of this.#n)n.includes(r)||(Ke(s.effect),this.#n.delete(r))};ensure(t,n){var r=me,s=yu();if(n&&!this.#t.has(t)&&!this.#n.has(t))if(s){var a=document.createDocumentFragment(),o=$e();a.append(o),this.#n.set(t,{effect:it(()=>n(o)),fragment:a})}else this.#t.set(t,it(()=>n(this.anchor)));if(this.#e.set(r,t),s){for(const[l,c]of this.#t)l===t?r.unskip_effect(c):r.skip_effect(c);for(const[l,c]of this.#n)l===t?r.unskip_effect(c.effect):r.skip_effect(c.effect);r.oncommit(this.#i),r.ondiscard(this.#r)}else te&&(this.anchor=fe),this.#i(r)}}function en(e,t,...n){var r=new Lr(e);dn(()=>{const s=t()??null;r.ensure(s,s&&(a=>s(a,...n)))},$t)}function im(e,t){const n=(r,...s)=>{var a=to;yl(e);try{return t(r,...s)}finally{yl(a)}};return Wu(n),n}function om(e){return(t,...n)=>{var r=e(...n),s;if(te)s=fe,ft();else{var a=r.render().trim(),o=go(a);s=Re(o),t.before(s)}const l=r.setup?.(s);We(s,s),typeof l=="function"&&Ct(l)}}function lm(){return be===null&&vh(),(be.ac??=new AbortController).signal}function yo(e){xe===null&&jr(),Ae(()=>{const t=ke(e);if(typeof t=="function")return t})}function wo(e){xe===null&&jr(),yo(()=>()=>ke(e))}function cm(e,t,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(e,{detail:t,bubbles:n,cancelable:r})}function um(){const e=xe;return e===null&&jr(),(t,n,r)=>{const s=e.s.$$events?.[t];if(s){const a=Pr(s)?s.slice():[s],o=cm(t,n,r);for(const l of a)l.call(e.x,o);return!o.defaultPrevented}return!0}}function dm(e){xe===null&&jr(),xe.l===null&&Uc(),Yu(xe).b.push(e)}function fm(e){xe===null&&jr(),xe.l===null&&Uc(),Yu(xe).a.push(e)}function Yu(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}const Gu=Object.freeze(Object.defineProperty({__proto__:null,afterUpdate:fm,beforeUpdate:dm,createContext:Vh,createEventDispatcher:um,createRawSnippet:om,flushSync:An,fork:sp,getAbortSignal:lm,getAllContexts:Bh,getContext:no,hasContext:Xc,hydratable:Lp,hydrate:Hu,mount:Le,onDestroy:wo,onMount:yo,setContext:ro,settled:Dp,tick:Es,unmount:He,untrack:ke},Symbol.toStringTag,{value:"Module"}));function vm(){return Symbol(Pc)}function Xu(e,t,n,r){return e!==t&&typeof t=="object"&&nt in t&&yh(n,Fu(r)),e}function hm(e,t,n,r,s){return Xu(n==="="?e[t]=r:n==="&&="?e[t]&&=r():n==="||="?e[t]||=r():n==="??="?e[t]??=r():null,ke(()=>e[t]),t,s)}async function pm(e,t,n,r,s){return Xu(n==="="?e[t]=await r:n==="&&="?e[t]&&=await r():n==="||="?e[t]||=await r():n==="??="?e[t]??=await r():null,ke(()=>e[t]),t,s)}var Al=new Map;function mm(e){var t=Al.get(e);if(t){for(const n of t)n.remove();Al.delete(e)}}function bm(e,t,n){return(...r)=>{const s=e(...r);var a=te?s:s.nodeType===Vc?s.firstChild:s;return Ju(a,t,n),s}}function gm(e,t,n){e.__svelte_meta={parent:qs,loc:{file:t,line:n[0],column:n[1]}},n[2]&&Ju(e.firstChild,t,n[2])}function Ju(e,t,n){for(var r=0,s=0;e&&r<n.length;){if(te&&e.nodeType===_n){var a=e;a.data[0]===_a?s+=1:a.data[0]===wa&&(s-=1)}s===0&&e.nodeType===qc&&gm(e,t,n[r++]),e=e.nextSibling}}function _m(e){const t=Et(e);function n(r,s){let a={},o={},l,c=!1,u=r;return dn(()=>{if(a!==(a=i(t))){if(l){for(var d in o)delete o[d];Ke(l)}l=it(()=>{u=u[Jv]??u,c&&ur(!1);var v=new.target?new a(u,s):a(u,s);v&&Object.defineProperties(o,Object.getOwnPropertyDescriptors(v)),c&&ur(!0)}),ve.nodes=l.nodes}},$t),c=!0,te&&(u=fe),o}return n[kt]=e[kt],n[sr]={fn:e,current:t,update:r=>{S(n[sr].current,r[sr].fn),r[sr].current=n[sr].current}},n}function ym(e){const t=xe?.function,n=xe?.p?.function;return{mutation:(r,s,a,o,l)=>{const c=s[0];if(Cl(e,c)||!n)return a;let u=e;for(let v=0;v<s.length-1;v++)if(u=u[s[v]],!u?.[nt])return a;const d=Fu(`${t[kt]}:${o}:${l}`);return Ah(c,d,r,n[kt]),a},binding:(r,s,a)=>{!Cl(e,r)&&n&&a()?.[nt]&&Ih(t[kt],r,s[kt],n[kt])}}}function Cl(e,t){const n=nt in e||Sa in e;return!!Wt(e,t)?.set||n&&t in e||!(t in e)}function wm(e){e&&sh(e[kt]??"a component",e.name)}function km(){const e=xe?.function;function t(n){rh(n,e[kt])}return{$destroy:()=>t("$destroy()"),$on:()=>t("$on(...)"),$set:()=>t("$set(...)")}}function xm(e,t,n=!1){vo();let r=!0,s=Te;Eu(()=>{try{var a=e()}catch(l){s=l;return}var o=Yn(a,!0,!0);ke(()=>{if(n){if(t(...o),!r){const l=Oh("$inspect(...)");l&&(console.groupCollapsed("stack trace"),console.log(l),console.groupEnd())}}else t(r?"init":"update",...o)}),r=!1}),Ne(()=>{try{e()}catch{}s!==Te&&(console.error(s),s=Te)})}function Sm(e,t=[],n=[],r){var s=te,a=null;if(s&&(ft(),a=Wn(!1)),n.length===0&&t.every(c=>c.settled)){r(e),s&&Ee(a);return}const o=ys();if(s){var l=fe;Ee(a)}_s(t,[],n,c=>{s&&(Ce(!0),Ee(l));try{for(const u of c)i(u);r(e,...c)}finally{s&&Ce(!1),o()}})}function Em(e,...t){(typeof e!="object"||!(e instanceof Node))&&_l();for(let n of t)typeof n!="function"&&_l()}const Tl=0,Rl=1,Im=2;function Am(e,t,n,r,s){te&&ft();var a=Te,o=Et(a),l=Et(a),c=new Lr(e);dn(()=>{var u=me;u.deactivate();var d=t();u.activate();var v=!1;let p=te&&gl(d)===(e.data===ya);if(p&&(Ee(Wn()),Ce(!1)),gl(d)){var b=Aa(),x=!1;const _=y=>{if(!v){x=!0,b(!1),Vt.ensure(),te&&Ce(!1);try{y()}finally{Gn(!1),hr||An()}}};d.then(y=>{_(()=>{on(o,y),c.ensure(Rl,r&&(k=>r(k,o)))})},y=>{_(()=>{if(on(l,y),c.ensure(Im,s&&(k=>s(k,l))),!s)throw l.v})}),te?c.ensure(Tl,n):ut(()=>{x||_(()=>{c.ensure(Tl,n)})})}else on(o,d),c.ensure(Rl,r&&(_=>r(_,o)));return p&&Ce(!0),()=>{v=!0}})}function H(e,t,n=!1){var r;te&&(r=fe,ft());var s=new Lr(e),a=n?$t:0;function o(l,c){if(te){var u=eo(r);if(l!==parseInt(u.substring(1))){var d=Wn();Ee(d),s.anchor=d,Ce(!1),s.ensure(l,c),Ce(!0);return}}s.ensure(l,c)}dn(()=>{var l=!1;t((c,u=0)=>{l=!0,o(u,c)}),l||o(-1,null)},a)}const Cm=Symbol("NaN");function Tm(e,t,n){te&&ft();var r=new Lr(e);dn(()=>{var s=t();s!==s&&(s=Cm),r.ensure(s,n)})}function Rm(e,t){te&&Ee(Re(e)),Ne(()=>{var n=t();for(var r in n){var s=n[r];s?e.style.setProperty(r,s):e.style.removeProperty(r)}})}function Bt(e,t){return t}function Pm(e,t,n){for(var r=[],s=t.length,a,o=t.length,l=0;l<s;l++){let v=t[l];qn(v,()=>{if(a){if(a.pending.delete(v),a.done.add(v),a.pending.size===0){var p=e.outrogroups;Ti(e,ka(a.done)),p.delete(a),p.size===0&&(e.outrogroups=null)}}else o-=1},!1)}if(o===0){var c=r.length===0&&n!==null;if(c){var u=n,d=u.parentNode;uo(d),d.append(u),e.items.clear()}Ti(e,t,!c)}else a={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(a)}function Ti(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(const o of e.pending.values())for(const l of o)r.add(e.items.get(l).e)}for(var s=0;s<t.length;s++){var a=t[s];if(r?.has(a)){a.f|=sn;const o=document.createDocumentFragment();mo(a,o)}else Ke(t[s],n)}}var Pl;function he(e,t,n,r,s,a=null){var o=e,l=new Map,c=(t&Ac)!==0;if(c){var u=e;o=te?Ee(Re(u)):u.appendChild($e())}te&&ft();var d=null,v=oo(()=>{var m=n();return Pr(m)?m:m==null?[]:ka(m)}),p,b=new Map,x=!0;function _(m){g.effect.f&mt||(g.pending.delete(m),g.fallback=d,jm(g,p,o,t,r),d!==null&&(p.length===0?d.f&sn?(d.f^=sn,Gr(d,null,o)):po(d):qn(d,()=>{d=null})))}function y(m){g.pending.delete(m)}var k=dn(()=>{p=i(v);var m=p.length;let I=!1;if(te){var P=eo(o)===ya;P!==(m===0)&&(o=Wn(),Ee(o),Ce(!1),I=!0)}for(var A=new Set,C=me,D=yu(),R=0;R<m;R+=1){te&&fe.nodeType===_n&&fe.data===wa&&(o=fe,I=!0,Ce(!1));var M=p[R],j=r(M,R),z=x?null:l.get(j);z?(z.v&&on(z.v,M),z.i&&on(z.i,R),D&&C.unskip_effect(z.e)):(z=Dm(l,x?o:Pl??=$e(),M,j,R,s,t,n),x||(z.e.f|=sn),l.set(j,z)),A.add(j)}if(m===0&&a&&!d&&(x?d=it(()=>a(o)):(d=it(()=>a(Pl??=$e())),d.f|=sn)),m>A.size&&ah(),te&&m>0&&Ee(Wn()),!x)if(b.set(C,A),D){for(const[B,N]of l)A.has(B)||C.skip_effect(N.e);C.oncommit(_),C.ondiscard(y)}else _(C);I&&Ce(!0),i(v)}),g={effect:k,items:l,pending:b,outrogroups:null,fallback:d};x=!1,te&&(o=fe)}function Fr(e){for(;e!==null&&!(e.f&Zt);)e=e.next;return e}function jm(e,t,n,r,s){var a=(r&jv)!==0,o=t.length,l=e.items,c=Fr(e.effect.first),u,d=null,v,p=[],b=[],x,_,y,k;if(a)for(k=0;k<o;k+=1)x=t[k],_=s(x,k),y=l.get(_).e,y.f&sn||(y.nodes?.a?.measure(),(v??=new Set).add(y));for(k=0;k<o;k+=1){if(x=t[k],_=s(x,k),y=l.get(_).e,e.outrogroups!==null)for(const M of e.outrogroups)M.pending.delete(y),M.done.delete(y);if(y.f&ct&&(po(y),a&&(y.nodes?.a?.unfix(),(v??=new Set).delete(y))),y.f&sn)if(y.f^=sn,y===c)Gr(y,null,n);else{var g=d?d.next:c;y===e.effect.last&&(e.effect.last=y.prev),y.prev&&(y.prev.next=y.next),y.next&&(y.next.prev=y.prev),kn(e,d,y),kn(e,y,g),Gr(y,g,n),d=y,p=[],b=[],c=Fr(d.next);continue}if(y!==c){if(u!==void 0&&u.has(y)){if(p.length<b.length){var m=b[0],I;d=m.prev;var P=p[0],A=p[p.length-1];for(I=0;I<p.length;I+=1)Gr(p[I],m,n);for(I=0;I<b.length;I+=1)u.delete(b[I]);kn(e,P.prev,A.next),kn(e,d,P),kn(e,A,m),c=m,d=A,k-=1,p=[],b=[]}else u.delete(y),Gr(y,c,n),kn(e,y.prev,y.next),kn(e,y,d===null?e.effect.first:d.next),kn(e,d,y),d=y;continue}for(p=[],b=[];c!==null&&c!==y;)(u??=new Set).add(c),b.push(c),c=Fr(c.next);if(c===null)continue}y.f&sn||p.push(y),d=y,c=Fr(y.next)}if(e.outrogroups!==null){for(const M of e.outrogroups)M.pending.size===0&&(Ti(e,ka(M.done)),e.outrogroups?.delete(M));e.outrogroups.size===0&&(e.outrogroups=null)}if(c!==null||u!==void 0){var C=[];if(u!==void 0)for(y of u)y.f&ct||C.push(y);for(;c!==null;)!(c.f&ct)&&c!==e.fallback&&C.push(c),c=Fr(c.next);var D=C.length;if(D>0){var R=r&Ac&&o===0?n:null;if(a){for(k=0;k<D;k+=1)C[k].nodes?.a?.measure();for(k=0;k<D;k+=1)C[k].nodes?.a?.fix()}Pm(e,C,R)}}a&&ut(()=>{if(v!==void 0)for(y of v)y.nodes?.a?.apply()})}function Dm(e,t,n,r,s,a,o,l){var c=o&Rv?o&Dv?Et(n):Ca(n,!1,!1):null,u=o&Pv?Et(s):null;return{v:c,i:u,e:it(()=>(a(t,c??n,u??s,l),()=>{e.delete(r)}))}}function Gr(e,t,n){if(e.nodes)for(var r=e.nodes.start,s=e.nodes.end,a=t&&!(t.f&sn)?t.nodes.start:n;r!==null;){var o=It(r);if(a.before(r),r===s)return;r=o}}function kn(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function zm(e,t,n=!1,r=!1,s=!1,a=!1){var o=e,l="";if(n){var c=e;te&&(o=Ee(Re(c)))}O(()=>{var u=ve;if(l===(l=t()??"")){te&&ft();return}if(n&&!te){u.nodes=null,c.innerHTML=l,l!==""&&We(Re(c),c.lastChild);return}if(u.nodes!==null&&(Cu(u.nodes.start,u.nodes.end),u.nodes=null),l!==""){if(te){fe.data;for(var d=ft(),v=d;d!==null&&(d.nodeType!==_n||d.data!=="");)v=d,d=It(d);if(d===null)throw gs(),Un;We(fe,v),o=Ee(d);return}var p=r?ps:s?Qi:void 0,b=Pn(r?"svg":s?"math":"template",p);b.innerHTML=l;var x=r||s?b:b.content;if(We(Re(x),x.lastChild),r||s)for(;Re(x);)o.before(Re(x));else o.before(x)}})}function Lm(e,t,n,r,s){te&&ft();var a=t.$$slots?.[n],o=!1;a===!0&&(a=t[n==="default"?"children":n],o=!0),a===void 0?s!==null&&s(e):a(e,o?()=>r:r)}function Mm(e){const t={};e.children&&(t.default=!0);for(const n in e.$$slots)t[n]=!0;return t}function Is(e,t,n){var r;te&&(r=fe,ft());var s=new Lr(e);dn(()=>{var a=t()??null;if(te){var o=eo(r),l=o===_a,c=a!==null;if(l!==c){var u=Wn();Ee(u),s.anchor=u,Ce(!1),s.ensure(a,a&&(d=>n(d,a))),Ce(!0);return}}s.ensure(a,a&&(d=>n(d,a)))},$t)}const Om=()=>performance.now(),rn={tick:e=>requestAnimationFrame(e),now:()=>Om(),tasks:new Set};function Zu(){const e=rn.now();rn.tasks.forEach(t=>{t.c(e)||(rn.tasks.delete(t),t.f())}),rn.tasks.size!==0&&rn.tick(Zu)}function Nm(e){let t;return rn.tasks.size===0&&rn.tick(Zu),{promise:new Promise(n=>{rn.tasks.add(t={c:e,f:n})}),abort(){rn.tasks.delete(t)}}}function aa(e,t){jn(()=>{e.dispatchEvent(new CustomEvent(t))})}function qm(e){if(e==="float")return"cssFloat";if(e==="offset")return"cssOffset";if(e.startsWith("--"))return e;const t=e.split("-");return t.length===1?t[0]:t[0]+t.slice(1).map(n=>n[0].toUpperCase()+n.slice(1)).join("")}function jl(e){const t={},n=e.split(";");for(const r of n){const[s,a]=r.split(":");if(!s||a===void 0)break;const o=qm(s.trim());t[o]=a.trim()}return t}const Vm=e=>e;let Qu=null;function Dl(e){Qu=e}function Bm(e,t,n){var r=Qu??ve,s=r.nodes,a,o,l,c=null;s.a??={element:e,measure(){a=this.element.getBoundingClientRect()},apply(){if(l?.abort(),o=this.element.getBoundingClientRect(),a.left!==o.left||a.right!==o.right||a.top!==o.top||a.bottom!==o.bottom){const u=t()(this.element,{from:a,to:o},n?.());l=ia(this.element,u,void 0,1,()=>{l?.abort(),l=void 0})}},fix(){if(!e.getAnimations().length){var{position:u,width:d,height:v}=getComputedStyle(e);if(u!=="absolute"&&u!=="fixed"){var p=e.style;c={position:p.position,width:p.width,height:p.height,transform:p.transform},p.position="absolute",p.width=d,p.height=v;var b=e.getBoundingClientRect();if(a.left!==b.left||a.top!==b.top){var x=`translate(${a.left-b.left}px, ${a.top-b.top}px)`;p.transform=p.transform?`${p.transform} ${x}`:x}}}},unfix(){if(c){var u=e.style;u.position=c.position,u.width=c.width,u.height=c.height,u.transform=c.transform}}},s.a.element=e}function Um(e,t,n,r){var s=(e&Ov)!==0,a=(e&Nv)!==0,o=s&&a,l=(e&qv)!==0,c=o?"both":s?"in":"out",u,d=t.inert,v=t.style.overflow,p,b;function x(){return jn(()=>u??=n()(t,r?.()??{},{direction:c}))}var _={is_global:l,in(){if(t.inert=d,!s){b?.abort(),b?.reset?.();return}a||p?.abort(),p=ia(t,x(),b,1,()=>{aa(t,"introend"),p?.abort(),p=u=void 0,t.style.overflow=v})},out(m){if(!a){m?.(),u=void 0;return}t.inert=!0,b=ia(t,x(),p,0,()=>{aa(t,"outroend"),m?.()})},stop:()=>{p?.abort(),b?.abort()}},y=ve;if((y.nodes.t??=[]).push(_),s&&sa){var k=l;if(!k){for(var g=y.parent;g&&g.f&$t;)for(;(g=g.parent)&&!(g.f&Yt););k=!g||(g.f&gn)!==0}k&&At(()=>{ke(()=>_.in())})}}function ia(e,t,n,r,s){var a=r===1;if(ar(t)){var o,l=!1;return ut(()=>{if(!l){var y=t({direction:a?"in":"out"});o=ia(e,y,n,r,s)}}),{abort:()=>{l=!0,o?.abort()},deactivate:()=>o.deactivate(),reset:()=>o.reset(),t:()=>o.t()}}if(n?.deactivate(),!t?.duration&&!t?.delay)return aa(e,a?"introstart":"outrostart"),s(),{abort:xt,deactivate:xt,reset:xt,t:()=>r};const{delay:c=0,css:u,tick:d,easing:v=Vm}=t;var p=[];if(a&&n===void 0&&(d&&d(0,1),u)){var b=jl(u(0,1));p.push(b,b)}var x=()=>1-r,_=e.animate(p,{duration:c,fill:"forwards"});return _.onfinish=()=>{_.cancel(),aa(e,a?"introstart":"outrostart");var y=n?.t()??1-r;n?.abort();var k=r-y,g=t.duration*Math.abs(k),m=[];if(g>0){var I=!1;if(u)for(var P=Math.ceil(g/16.666666666666668),A=0;A<=P;A+=1){var C=y+k*v(A/P),D=jl(u(C,1-C));m.push(D),I||=D.overflow==="hidden"}I&&(e.style.overflow="hidden"),x=()=>{var R=_.currentTime;return y+k*v(R/g)},d&&Nm(()=>{if(_.playState!=="running")return!1;var R=x();return d(R,1-R),!0})}_=e.animate(m,{duration:g,fill:"forwards"}),_.onfinish=()=>{x=()=>r,d?.(r,1-r),s()}},{abort:()=>{_&&(_.cancel(),_.effect=null,_.onfinish=xt)},deactivate:()=>{s=xt},reset:()=>{r===0&&d?.(1,0)},t:()=>x()}}function Fm(e,t,n,r,s,a){let o=te;te&&ft();var l=null;te&&fe.nodeType===qc&&(l=fe,ft());var c=te?fe:e,u=ve,d=new Lr(c,!1);dn(()=>{const v=t()||null;var p=s?s():n||v==="svg"?ps:void 0;if(v===null){d.ensure(null,null),ur(!0);return}return d.ensure(v,b=>{if(v){if(l=te?l:Pn(v,p),We(l,l),r){te&&nm(v)&&l.append(document.createComment(""));var x=te?Re(l):l.appendChild($e());te&&(x===null?Ce(!1):Ee(x)),Dl(u),r(l,x),Dl(null)}ve.nodes.end=l,b.before(l)}te&&Ee(b)}),ur(!0),()=>{v&&ur(!1)}},$t),Ct(()=>{ur(!0)}),o&&(Ce(!0),Ee(c))}function Hm(e,t){let n=null,r=te;var s;if(te){n=fe;for(var a=Re(document.head);a!==null&&(a.nodeType!==_n||a.data!==e);)a=It(a);if(a===null)Ce(!1);else{var o=It(a);a.remove(),Ee(o)}}te||(s=document.head.appendChild($e()));try{dn(()=>t(s),Oc|Rn)}finally{r&&(Ce(!0),Ee(n))}}function Km(e,t){At(()=>{var n=e.getRootNode(),r=n.host?n:n.head??n.ownerDocument.head;if(!r.querySelector("#"+t.hash)){const s=Pn("style");s.id=t.hash,s.textContent=t.code,r.appendChild(s)}})}function $u(e,t,n){At(()=>{var r=ke(()=>t(e,n?.())||{});if(n&&r?.update){var s=!1,a={};Ne(()=>{var o=n();bo(o),s&&Kc(a,o)&&(a=o,r.update(o))}),s=!0}if(r?.destroy)return()=>r.destroy()})}function ko(e,t){var n=void 0,r;Iu(()=>{n!==(n=t())&&(r&&(Ke(r),r=null),n&&(r=it(()=>{At(()=>n(e))})))})}const Wm=/[&"<]/g;function Ym(e,t){const n=String(e??""),r=Wm;r.lastIndex=0;let s="",a=0;for(;r.test(n);){const o=r.lastIndex-1,l=n[o];s+=n.substring(a,o)+(l==="&"?"&amp;":l==='"'?"&quot;":"&lt;"),a=o+1}return s+n.substring(a)}function ed(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t<s;t++)e[t]&&(n=ed(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function Gm(){for(var e,t,n=0,r="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=ed(e))&&(r&&(r+=" "),r+=t);return r}const zl={translate:new Map([[!0,"yes"],[!1,"no"]])};function Xm(e,t,n=!1){if(e==="hidden"&&t!=="until-found"&&(n=!0),t==null||!t&&n)return"";const r=Hv.call(zl,e)&&zl[e].get(t)||t,s=n?'=""':`="${Ym(r)}"`;return` ${e}${s}`}function td(e){return typeof e=="object"?Gm(e):e??""}const Ll=[...`
7
- \r\f \v\uFEFF`];function Jm(e,t,n){var r=e==null?"":""+e;if(t&&(r=r?r+" "+t:t),n){for(var s of Object.keys(n))if(n[s])r=r?r+" "+s:s;else if(r.length)for(var a=s.length,o=0;(o=r.indexOf(s,o))>=0;){var l=o+a;(o===0||Ll.includes(r[o-1]))&&(l===r.length||Ll.includes(r[l]))?r=(o===0?"":r.substring(0,o))+r.substring(l+1):o=l}}return r===""?null:r}function Ml(e,t=!1){var n=t?" !important;":";",r="";for(var s of Object.keys(e)){var a=e[s];a!=null&&a!==""&&(r+=" "+s+": "+a+n)}return r}function ri(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function Zm(e,t){if(t){var n="",r,s;if(Array.isArray(t)?(r=t[0],s=t[1]):r=t,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var a=!1,o=0,l=!1,c=[];r&&c.push(...Object.keys(r).map(ri)),s&&c.push(...Object.keys(s).map(ri));var u=0,d=-1;const _=e.length;for(var v=0;v<_;v++){var p=e[v];if(l?p==="/"&&e[v-1]==="*"&&(l=!1):a?a===p&&(a=!1):p==="/"&&e[v+1]==="*"?l=!0:p==='"'||p==="'"?a=p:p==="("?o++:p===")"&&o--,!l&&a===!1&&o===0){if(p===":"&&d===-1)d=v;else if(p===";"||v===_-1){if(d!==-1){var b=ri(e.substring(u,d).trim());if(!c.includes(b)){p!==";"&&v++;var x=e.substring(u,v).trim();n+=" "+x+";"}}u=v+1,d=-1}}}}return r&&(n+=Ml(r)),s&&(n+=Ml(s,!0)),n=n.trim(),n===""?null:n}return e==null?null:String(e)}function ce(e,t,n,r,s,a){var o=e.__className;if(te||o!==n||o===void 0){var l=Jm(n,r,a);(!te||l!==e.getAttribute("class"))&&(l==null?e.removeAttribute("class"):t?e.className=l:e.setAttribute("class",l)),e.__className=n}else if(a&&s!==a)for(var c in a){var u=!!a[c];(s==null||u!==!!s[c])&&e.classList.toggle(c,u)}return a}function si(e,t={},n,r){for(var s in n){var a=n[s];t[s]!==a&&(n[s]==null?e.style.removeProperty(s):e.style.setProperty(s,a,r))}}function Ye(e,t,n,r){var s=e.__style;if(te||s!==t){var a=Zm(t,r);(!te||a!==e.getAttribute("style"))&&(a==null?e.removeAttribute("style"):e.style.cssText=a),e.__style=t}else r&&(Array.isArray(r)?(si(e,n?.[0],r[0]),si(e,n?.[1],r[1],"important")):si(e,n,r));return r}function rs(e,t,n=!1){if(e.multiple){if(t==null)return;if(!Pr(t))return Ch();for(var r of e.options)r.selected=t.includes(Zr(r));return}for(r of e.options){var s=Zr(r);if(mu(s,t)){r.selected=!0;return}}(!n||t!==void 0)&&(e.selectedIndex=-1)}function xo(e){var t=new MutationObserver(()=>{rs(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),Ct(()=>{t.disconnect()})}function ss(e,t,n=t){var r=new WeakSet,s=!0;ks(e,"change",a=>{var o=a?"[selected]":":checked",l;if(e.multiple)l=[].map.call(e.querySelectorAll(o),Zr);else{var c=e.querySelector(o)??e.querySelector("option:not([disabled])");l=c&&Zr(c)}n(l),e.__value=l,me!==null&&r.add(me)}),At(()=>{var a=t();if(e===document.activeElement){var o=me;if(r.has(o))return}if(rs(e,a,s),s&&a===void 0){var l=e.querySelector(":checked");l!==null&&(a=Zr(l),n(a))}e.__value=a,s=!1}),xo(e)}function Zr(e){return"__value"in e?e.__value:e.value}const or=Symbol("class"),lr=Symbol("style"),nd=Symbol("is custom element"),rd=Symbol("is html"),Qm=$n?"link":"LINK",$m=$n?"input":"INPUT",eb=$n?"option":"OPTION",tb=$n?"select":"SELECT",nb=$n?"progress":"PROGRESS";function ge(e){if(te){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute("value")){var r=e.value;ne(e,"value",null),e.value=r}if(e.hasAttribute("checked")){var s=e.checked;ne(e,"checked",null),e.checked=s}}};e.__on_r=n,ut(n),ku()}}function as(e,t){var n=Ra(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==nb)||(e.value=t??"")}function So(e,t){var n=Ra(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function Eo(e,t){t?e.hasAttribute("selected")||e.setAttribute("selected",""):e.removeAttribute("selected")}function rb(e,t){const n=e.checked;e.defaultChecked=t,e.checked=n}function sb(e,t){const n=e.value;e.defaultValue=t,e.value=n}function ne(e,t,n,r){var s=Ra(e);te&&(s[t]=e.getAttribute(t),t==="src"||t==="srcset"||t==="href"&&e.nodeName===Qm)||s[t]!==(s[t]=n)&&(t==="loading"&&(e[Gv]=n),n==null?e.removeAttribute(t):typeof n!="string"&&Io(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function ab(e,t,n){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n)}function ib(e,t,n){var r=be,s=ve;let a=te;te&&Ce(!1),gt(null),st(null);try{t!=="style"&&(Ri.has(e.getAttribute("is")||e.nodeName)||!customElements||customElements.get(e.getAttribute("is")||e.nodeName.toLowerCase())?Io(e).includes(t):n&&typeof n=="object")?e[t]=n:ne(e,t,n==null?n:String(n))}finally{gt(r),st(s),a&&Ce(!0)}}function ob(e,t,n,r,s=!1,a=!1){if(te&&s&&e.nodeName===$m){var o=e,l=o.type==="checkbox"?"defaultChecked":"defaultValue";l in n||ge(o)}var c=Ra(e),u=c[nd],d=!c[rd];let v=te&&u;v&&Ce(!1);var p=t||{},b=e.nodeName===eb;for(var x in t)x in n||(n[x]=null);n.class?n.class=td(n.class):(r||n[or])&&(n.class=null),n[lr]&&(n.style??=null);var _=Io(e);for(const A in n){let C=n[A];if(b&&A==="value"&&C==null){e.value=e.__value="",p[A]=C;continue}if(A==="class"){var y=e.namespaceURI==="http://www.w3.org/1999/xhtml";ce(e,y,C,r,t?.[or],n[or]),p[A]=C,p[or]=n[or];continue}if(A==="style"){Ye(e,C,t?.[lr],n[lr]),p[A]=C,p[lr]=n[lr];continue}var k=p[A];if(!(C===k&&!(C===void 0&&e.hasAttribute(A)))){p[A]=C;var g=A[0]+A[1];if(g!=="$$")if(g==="on"){const D={},R="$$"+A;let M=A.slice(2);var m=Jp(M);if(Gp(M)&&(M=M.slice(0,-7),D.capture=!0),!m&&k){if(C!=null)continue;e.removeEventListener(M,p[R],D),p[R]=null}if(m)U(M,e,C),le([M]);else if(C!=null){let j=function(z){p[A].call(this,z)};p[R]=qu(M,e,j,D)}}else if(A==="style")ne(e,A,C);else if(A==="autofocus")Dr(e,!!C);else if(!u&&(A==="__value"||A==="value"&&C!=null))e.value=e.__value=C;else if(A==="selected"&&b)Eo(e,C);else{var I=A;d||(I=Qp(I));var P=I==="defaultValue"||I==="defaultChecked";if(C==null&&!u&&!P)if(c[A]=null,I==="value"||I==="checked"){let D=e;const R=t===void 0;if(I==="value"){let M=D.defaultValue;D.removeAttribute(I),D.defaultValue=M,D.value=D.__value=R?M:null}else{let M=D.defaultChecked;D.removeAttribute(I),D.defaultChecked=M,D.checked=R?M:!1}}else e.removeAttribute(A);else P||_.includes(I)&&(u||typeof C!="string")?(e[I]=C,I in c&&(c[I]=Te)):typeof C!="function"&&ne(e,I,C)}}}return v&&Ce(!0),p}function lb(e,t,n=[],r=[],s=[],a,o=!1,l=!1){_s(s,n,r,c=>{var u=void 0,d={},v=e.nodeName===tb,p=!1;if(Iu(()=>{var x=t(...c.map(i)),_=ob(e,u,x,a,o,l);p&&v&&"value"in x&&rs(e,x.value);for(let k of Object.getOwnPropertySymbols(d))x[k]||Ke(d[k]);for(let k of Object.getOwnPropertySymbols(x)){var y=x[k];k.description===Pc&&(!u||y!==u[k])&&(d[k]&&Ke(d[k]),d[k]=it(()=>ko(e,()=>y))),_[k]=y}u=_}),v){var b=e;At(()=>{rs(b,u.value,!0),xo(b)})}p=!0})}function Ra(e){return e.__attributes??={[nd]:e.nodeName.includes("-"),[rd]:e.namespaceURI===Rc}}var Ri=new Map;function Io(e){var t=e.getAttribute("is")||e.nodeName,n=Ri.get(t);if(n)return n;Ri.set(t,n=[]);for(var r,s=e,a=Element.prototype;a!==s;){r=Dc(s);for(var o in r)r[o].set&&n.push(o);s=xa(s)}return n}let ai=null;function sd(){if(ai===null){var e=Pn("select");e.innerHTML=Vu("<option><span>t</span></option>"),ai=e.firstChild?.firstChild?.nodeType===1}return ai}function cb(e,t){sd()&&ko(e,()=>()=>{const n=e.closest("select");if(!n)return;const r=new MutationObserver(s=>{var a=!1;for(const o of s){if(o.target===e)return;a||=!!o.target.parentElement?.closest("option")?.selected}a&&(e.replaceWith(e=e.cloneNode(!0)),t(e))});return r.observe(n,{childList:!0,characterData:!0,subtree:!0}),()=>{r.disconnect()}})}function ub(e,t){var n=te;sd()||(Ce(!1),e.textContent="",e.append(wu("")));try{t()}finally{n&&(te?f(e):(Ce(!0),Ee(e)))}}function db(e){_t(document,["focusin","focusout"],t=>{t&&t.type==="focusout"&&t.relatedTarget||e(document.activeElement)})}function Se(e,t,n=t){var r=new WeakSet;ks(e,"input",async s=>{var a=s?e.defaultValue:e.value;if(a=oi(e)?li(a):a,n(a),me!==null&&r.add(me),await Es(),a!==(a=t())){var o=e.selectionStart,l=e.selectionEnd,c=e.value.length;if(e.value=a??"",l!==null){var u=e.value.length;o===l&&l===c&&u>c?(e.selectionStart=u,e.selectionEnd=u):(e.selectionStart=o,e.selectionEnd=Math.min(l,u))}}}),(te&&e.defaultValue!==e.value||ke(t)==null&&e.value)&&(n(oi(e)?li(e.value):e.value),me!==null&&r.add(me)),Ne(()=>{var s=t();if(e===document.activeElement){var a=me;if(r.has(a))return}oi(e)&&s===li(e.value)||e.type==="date"&&!s&&!e.value||s!==e.value&&(e.value=s??"")})}const ii=new Set;function fb(e,t,n,r,s=r){var a=n.getAttribute("type")==="checkbox",o=e;let l=!1;if(t!==null)for(var c of t)o=o[c]??=[];o.push(n),ks(n,"change",()=>{var u=n.__value;a&&(u=Ol(o,u,n.checked)),s(u)},()=>s(a?[]:null)),Ne(()=>{var u=r();if(te&&n.defaultChecked!==n.checked){l=!0;return}a?(u=u||[],n.checked=u.includes(n.__value)):n.checked=mu(n.__value,u)}),Ct(()=>{var u=o.indexOf(n);u!==-1&&o.splice(u,1)}),ii.has(o)||(ii.add(o),ut(()=>{o.sort((u,d)=>u.compareDocumentPosition(d)===4?-1:1),ii.delete(o)})),ut(()=>{if(l){var u;if(a)u=Ol(o,u,n.checked);else{var d=o.find(v=>v.checked);u=d?.__value}s(u)}})}function Qr(e,t,n=t){ks(e,"change",r=>{var s=r?e.defaultChecked:e.checked;n(s)}),(te&&e.defaultChecked!==e.checked||ke(t)==null)&&n(e.checked),Ne(()=>{var r=t();e.checked=!!r})}function Ol(e,t,n){for(var r=new Set,s=0;s<e.length;s+=1)e[s].checked&&r.add(e[s].__value);return n||r.delete(t),Array.from(r)}function oi(e){var t=e.type;return t==="number"||t==="range"}function li(e){return e===""?null:+e}function vb(e,t,n=t){ks(e,"change",()=>{n(e.files)}),te&&e.files&&n(e.files),Ne(()=>{e.files=t()})}function Ao(e){for(var t=[],n=0;n<e.length;n+=1)t.push({start:e.start(n),end:e.end(n)});return t}function hb(e,t,n=t){var r,s,a=()=>{cancelAnimationFrame(r),e.paused||(r=requestAnimationFrame(a));var o=e.currentTime;s!==o&&n(s=o)};r=requestAnimationFrame(a),e.addEventListener("timeupdate",a),Ne(()=>{var o=Number(t());s!==o&&!isNaN(o)&&(e.currentTime=s=o)}),Ct(()=>{cancelAnimationFrame(r),e.removeEventListener("timeupdate",a)})}function pb(e,t){var n;_t(e,["loadedmetadata","progress","timeupdate","seeking"],()=>{var r=e.buffered;(!n||n.length!==r.length||n.some((s,a)=>r.start(a)!==s.start||r.end(a)!==s.end))&&(n=Ao(r),t(n))})}function mb(e,t){_t(e,["loadedmetadata"],()=>t(Ao(e.seekable)))}function bb(e,t){_t(e,["timeupdate"],()=>t(Ao(e.played)))}function gb(e,t){_t(e,["seeking","seeked"],()=>t(e.seeking))}function _b(e,t){_t(e,["timeupdate","ended"],()=>t(e.ended))}function yb(e,t){_t(e,["loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","emptied"],()=>t(e.readyState))}function wb(e,t,n=t){At(()=>{var r=Number(t());r!==e.playbackRate&&!isNaN(r)&&(e.playbackRate=r)}),At(()=>{_t(e,["ratechange"],()=>{n(e.playbackRate)})})}function kb(e,t,n=t){var r=t(),s=()=>{r!==e.paused&&n(r=e.paused)};_t(e,["play","pause","canplay"],s,r==null),At(()=>{(r=!!t())!==e.paused&&(r?e.pause():e.play().catch(a=>{throw n(r=!0),a}))})}function xb(e,t,n=t){var r=()=>{n(e.volume)};t()==null&&r(),_t(e,["volumechange"],r,!1),Ne(()=>{var s=Number(t());s!==e.volume&&!isNaN(s)&&(e.volume=s)})}function Sb(e,t,n=t){var r=()=>{n(e.muted)};t()==null&&r(),_t(e,["volumechange"],r,!1),Ne(()=>{var s=!!t();e.muted!==s&&(e.muted=s)})}function Eb(e){_t(window,["online","offline"],()=>{e(navigator.onLine)})}function Ib(e,t,n){var r=Wt(e,t);r&&r.set&&(e[t]=n,Ct(()=>{e[t]=null}))}class As{#e=new WeakMap;#t;#n;static entries=new WeakMap;constructor(t){this.#n=t}observe(t,n){var r=this.#e.get(t)||new Set;return r.add(n),this.#e.set(t,r),this.#a().observe(t,this.#n),()=>{var s=this.#e.get(t);s.delete(n),s.size===0&&(this.#e.delete(t),this.#t.unobserve(t))}}#a(){return this.#t??(this.#t=new ResizeObserver(t=>{for(var n of t){As.entries.set(n.target,n);for(var r of this.#e.get(n.target)||[])r(n)}}))}}var Ab=new As({box:"content-box"}),ad=new As({box:"border-box"}),Cb=new As({box:"device-pixel-content-box"});function Tb(e,t,n){var r=t==="contentRect"||t==="contentBoxSize"?Ab:t==="borderBoxSize"?ad:Cb,s=r.observe(e,a=>n(a[t]));Ct(s)}function Rb(e,t,n){var r=ad.observe(e,()=>n(e[t]));At(()=>(ke(()=>n(e[t])),r))}function Nl(e,t){return e===t||e?.[nt]===t}function Oe(e={},t,n,r){var s=xe.r,a=ve;return At(()=>{var o,l;return Ne(()=>{o=l,l=r?.()||[],ke(()=>{e!==n(...l)&&(t(e,...l),o&&Nl(n(...o),e)&&t(null,...o))})}),()=>{let c=a;for(;c!==s&&c.parent!==null&&c.parent.f&bi;)c=c.parent;const u=()=>{l&&Nl(n(...l),e)&&t(null,...l)},d=c.teardown;c.teardown=()=>{u(),d?.()}}}),e}function Pb(e,t,n,r=n){t.addEventListener("input",()=>{r(t[e])}),Ne(()=>{var s=n();if(t[e]!==s)if(s==null){var a=t[e];r(a)}else t[e]=s+""})}function jb(e,t,n,r,s){var a=()=>{r(n[e])};n.addEventListener(t,a),s?Ne(()=>{n[e]=s()}):a(),(n===document.body||n===window||n===document)&&Ct(()=>{n.removeEventListener(t,a)})}function Db(e,t){_t(e,["focus","blur"],()=>{t(e===document.activeElement)})}function zb(e,t,n=t){var r=e==="x",s=()=>jn(()=>{a=!0,clearTimeout(o),o=setTimeout(l,100),n(window[r?"scrollX":"scrollY"])});addEventListener("scroll",s,{passive:!0});var a=!1,o,l=()=>{a=!1},c=!0;Ne(()=>{var u=t();c?c=!1:!a&&u!=null&&(a=!0,clearTimeout(o),r?scrollTo(u,window.scrollY):scrollTo(window.scrollX,u),o=setTimeout(l,100))}),At(s),Ct(()=>{removeEventListener("scroll",s)})}function Lb(e,t){_t(window,["resize"],()=>jn(()=>t(window[e])))}function Mb(e){return function(...t){var n=t[0];n.isTrusted&&e?.apply(this,t)}}function Ob(e){return function(...t){var n=t[0];n.target===this&&e?.apply(this,t)}}function Nb(e){return function(...t){var n=t[0];return n.stopPropagation(),e?.apply(this,t)}}function qb(e){var t=!1;return function(...n){if(!t)return t=!0,e?.apply(this,n)}}function Vb(e){return function(...t){var n=t[0];return n.stopImmediatePropagation(),e?.apply(this,t)}}function Bb(e){return function(...t){var n=t[0];return n.preventDefault(),e?.apply(this,t)}}function Ub(e=!1){const t=xe,n=t.l.u;if(!n)return;let r=()=>bo(t.s);if(e){let s=0,a={};const o=ws(()=>{let l=!1;const c=t.s;for(const u in c)c[u]!==a[u]&&(a[u]=c[u],l=!0);return l&&s++,s});r=()=>i(o)}n.b.length&&Su(()=>{ql(t,r),pi(n.b)}),Ae(()=>{const s=ke(()=>n.m.map(Kv));return()=>{for(const a of s)typeof a=="function"&&a()}}),n.a.length&&Ae(()=>{ql(t,r),pi(n.a)})}function ql(e,t){if(e.l.s)for(const n of e.l.s)i(n);t()}function Fb(e){var t=Et(0);return function(){return arguments.length===1?(S(t,i(t)+1),arguments[0]):(i(t),e())}}function Hb(e,t){var n=e.$$events?.[t.type],r=Pr(n)?n.slice():n==null?[]:[n];for(var s of r)s.call(this,t)}function Kb(e,t,n){e.$$events||={},e.$$events[t]||=[],e.$$events[t].push(n)}function Wb(e){for(var t in e)t in this&&(this[t]=e[t])}function Yb(e,t=1){const n=e();return e(n+t),n}function Gb(e,t=1){const n=e()+t;return e(n),n}const Xb={get(e,t){if(!e.exclude.includes(t))return e.props[t]},set(e,t){return!1},getOwnPropertyDescriptor(e,t){if(!e.exclude.includes(t)&&t in e.props)return{enumerable:!0,configurable:!0,value:e.props[t]}},has(e,t){return e.exclude.includes(t)?!1:t in e.props},ownKeys(e){return Reflect.ownKeys(e.props).filter(t=>!e.exclude.includes(t))}};function Jb(e,t,n){return new Proxy({props:e,exclude:t},Xb)}const Zb={get(e,t){if(!e.exclude.includes(t))return i(e.version),t in e.special?e.special[t]():e.props[t]},set(e,t,n){if(!(t in e.special)){var r=ve;try{st(e.parent_effect),e.special[t]=J({get[t](){return e.props[t]}},t,Cc)}finally{st(r)}}return e.special[t](n),Sr(e.version),!0},getOwnPropertyDescriptor(e,t){if(!e.exclude.includes(t)&&t in e.props)return{enumerable:!0,configurable:!0,value:e.props[t]}},deleteProperty(e,t){return e.exclude.includes(t)||(e.exclude.push(t),Sr(e.version)),!0},has(e,t){return e.exclude.includes(t)?!1:t in e.props},ownKeys(e){return Reflect.ownKeys(e.props).filter(t=>!e.exclude.includes(t))}};function Qb(e,t){return new Proxy({props:e,exclude:t,special:{},version:Et(0),parent_effect:ve},Zb)}const $b={get(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(ar(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r)return r[t]}},set(e,t,n){let r=e.props.length;for(;r--;){let s=e.props[r];ar(s)&&(s=s());const a=Wt(s,t);if(a&&a.set)return a.set(n),!0}return!1},getOwnPropertyDescriptor(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(ar(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r){const s=Wt(r,t);return s&&!s.configurable&&(s.configurable=!0),s}}},has(e,t){if(t===nt||t===Sa)return!1;for(let n of e.props)if(ar(n)&&(n=n()),n!=null&&t in n)return!0;return!1},ownKeys(e){const t=[];for(let n of e.props)if(ar(n)&&(n=n()),!!n){for(const r in n)t.includes(r)||t.push(r);for(const r of Object.getOwnPropertySymbols(n))t.includes(r)||t.push(r)}return t}};function Cs(...e){return new Proxy({props:e},$b)}function J(e,t,n,r){var s=(n&Lv)!==0,a=(n&Mv)!==0,o=r,l=!0,c=()=>(l&&(l=!1,o=a?ke(r):r),o);let u;if(s){var d=nt in e||Sa in e;u=Wt(e,t)?.set??(d&&t in e?g=>e[t]=g:void 0)}var v,p=!1;s?[v,p]=ru(()=>e[t]):v=e[t],v===void 0&&r!==void 0&&(v=c(),u&&(ph(),u(v)));var b;if(b=()=>{var g=e[t];return g===void 0?c():(l=!0,g)},!(n&Cc))return b;if(u){var x=e.$$legacy;return function(g,m){return arguments.length>0?((!m||x||p)&&u(m?b():g),g):b()}}var _=!1,y=(n&zv?ws:oo)(()=>(_=!1,b()));s&&i(y);var k=ve;return function(g,m){if(arguments.length>0){const I=m?i(y):s?oe(g):g;return S(y,I),_=!0,o!==void 0&&(o=I),g}return mn&&_||k.f&mt?y.v:i(y)}}function eg(e,t,n,r,s,a){cu(t,()=>{var o=!1;to?.[kt],Ne(()=>{if(!o){var[l,c]=ru(n);if(!c){var u=r(),d=!1,v=Ne(()=>{d||l[u]});d=!0,v.deps===null&&(wh(),o=!0)}}})})}function tg(e){return new ng(e)}class ng{#e;#t;constructor(t){var n=new Map,r=(a,o)=>{var l=Ca(o,!1,!1);return n.set(a,l),l};const s=new Proxy({...t.props||{},$$events:{}},{get(a,o){return i(n.get(o)??r(o,Reflect.get(a,o)))},has(a,o){return o===Sa?!0:(i(n.get(o)??r(o,Reflect.get(a,o))),Reflect.has(a,o))},set(a,o,l){return S(n.get(o)??r(o,l),l),Reflect.set(a,o,l)}});this.#t=(t.hydrate?Hu:Le)(t.component,{target:t.target,anchor:t.anchor,props:s,context:t.context,intro:t.intro??!1,recover:t.recover,transformError:t.transformError}),(!t?.props?.$$host||t.sync===!1)&&An(),this.#e=s.$$events;for(const a of Object.keys(this.#t))a==="$set"||a==="$destroy"||a==="$on"||Fn(this,a,{get(){return this.#t[a]},set(o){this.#t[a]=o},enumerable:!0});this.#t.$set=a=>{Object.assign(s,a)},this.#t.$destroy=()=>{He(this.#t)}}$set(t){this.#t.$set(t)}$on(t,n){this.#e[t]=this.#e[t]||[];const r=(...s)=>n.call(this,...s);return this.#e[t].push(r),()=>{this.#e[t]=this.#e[t].filter(s=>s!==r)}}$destroy(){this.#t.$destroy()}}let id;typeof HTMLElement=="function"&&(id=class extends HTMLElement{$$ctor;$$s;$$c;$$cn=!1;$$d={};$$r=!1;$$p_d={};$$l={};$$l_u=new Map;$$me;$$shadowRoot=null;constructor(e,t,n){super(),this.$$ctor=e,this.$$s=t,n&&(this.$$shadowRoot=this.attachShadow(n))}addEventListener(e,t,n){if(this.$$l[e]=this.$$l[e]||[],this.$$l[e].push(t),this.$$c){const r=this.$$c.$on(e,t);this.$$l_u.set(t,r)}super.addEventListener(e,t,n)}removeEventListener(e,t,n){if(super.removeEventListener(e,t,n),this.$$c){const r=this.$$l_u.get(t);r&&(r(),this.$$l_u.delete(t))}}async connectedCallback(){if(this.$$cn=!0,!this.$$c){let e=function(r){return s=>{const a=Pn("slot");r!=="default"&&(a.name=r),E(s,a)}};if(await Promise.resolve(),!this.$$cn||this.$$c)return;const t={},n=rg(this);for(const r of this.$$s)r in n&&(r==="default"&&!this.$$d.children?(this.$$d.children=e(r),t.default=!0):t[r]=e(r));for(const r of this.attributes){const s=this.$$g_p(r.name);s in this.$$d||(this.$$d[s]=Fs(s,r.value,this.$$p_d,"toProp"))}for(const r in this.$$p_d)!(r in this.$$d)&&this[r]!==void 0&&(this.$$d[r]=this[r],delete this[r]);this.$$c=tg({component:this.$$ctor,target:this.$$shadowRoot||this,props:{...this.$$d,$$slots:t,$$host:this}}),this.$$me=Ss(()=>{Ne(()=>{this.$$r=!0;for(const r of $s(this.$$c)){if(!this.$$p_d[r]?.reflect)continue;this.$$d[r]=this.$$c[r];const s=Fs(r,this.$$d[r],this.$$p_d,"toAttribute");s==null?this.removeAttribute(this.$$p_d[r].attribute||r):this.setAttribute(this.$$p_d[r].attribute||r,s)}this.$$r=!1})});for(const r in this.$$l)for(const s of this.$$l[r]){const a=this.$$c.$on(r,s);this.$$l_u.set(s,a)}this.$$l={}}}attributeChangedCallback(e,t,n){this.$$r||(e=this.$$g_p(e),this.$$d[e]=Fs(e,n,this.$$p_d,"toProp"),this.$$c?.$set({[e]:this.$$d[e]}))}disconnectedCallback(){this.$$cn=!1,Promise.resolve().then(()=>{!this.$$cn&&this.$$c&&(this.$$c.$destroy(),this.$$me(),this.$$c=void 0)})}$$g_p(e){return $s(this.$$p_d).find(t=>this.$$p_d[t].attribute===e||!this.$$p_d[t].attribute&&t.toLowerCase()===e)||e}});function Fs(e,t,n,r){const s=n[e]?.type;if(t=s==="Boolean"&&typeof t!="boolean"?t!=null:t,!r||!n[e])return t;if(r==="toAttribute")switch(s){case"Object":case"Array":return t==null?null:JSON.stringify(t);case"Boolean":return t?"":null;case"Number":return t??null;default:return t}else switch(s){case"Object":case"Array":return t&&JSON.parse(t);case"Boolean":return t;case"Number":return t!=null?+t:t;default:return t}}function rg(e){const t={};return e.childNodes.forEach(n=>{t[n.slot||"default"]=!0}),t}function sg(e,t,n,r,s,a){let o=class extends id{constructor(){super(e,n,s),this.$$p_d=t}static get observedAttributes(){return $s(t).map(l=>(t[l].attribute||l).toLowerCase())}};return $s(t).forEach(l=>{Fn(o.prototype,l,{get(){return this.$$c&&l in this.$$c?this.$$c[l]:this.$$d[l]},set(c){c=Fs(l,c,t),this.$$d[l]=c;var u=this.$$c;if(u){var d=Wt(u,l)?.get;d?u[l]=c:u.$set({[l]:c})}}})}),r.forEach(l=>{Fn(o.prototype,l,{get(){return this.$$c?.[l]}})}),a&&(o=a(o)),e.element=o,o}function ag(e,...t){return ke(()=>{try{let n=!1;const r=[];for(const s of t)s&&typeof s=="object"&&nt in s?(r.push(Yn(s,!0)),n=!0):r.push(s);n&&(kh(e),console.log("%c[snapshot]","color: grey",...r))}catch{}}),t}const od=Object.freeze(Object.defineProperty({__proto__:null,CLASS:or,FILENAME:kt,HMR:sr,NAMESPACE_SVG:ps,STYLE:lr,aborted:Ei,action:$u,get active_effect(){return ve},add_legacy_event_listener:Kb,add_locations:bm,add_svelte_meta:qh,animation:Bm,append:E,append_styles:Km,apply:Op,assign:hm,assign_async:pm,async:Sm,async_derived:uu,attach:ko,attachment:vm,attr:Xm,attribute_effect:lb,autofocus:Dr,await:Am,bind_active_element:db,bind_buffered:pb,bind_checked:Qr,bind_content_editable:Pb,bind_current_time:hb,bind_element_size:Rb,bind_ended:_b,bind_files:vb,bind_focused:Db,bind_group:fb,bind_muted:Sb,bind_online:Eb,bind_paused:kb,bind_playback_rate:wb,bind_played:bb,bind_prop:Ib,bind_property:jb,bind_ready_state:yb,bind_resize_observer:Tb,bind_seekable:mb,bind_seeking:gb,bind_select_value:ss,bind_this:Oe,bind_value:Se,bind_volume:xb,bind_window_scroll:zb,bind_window_size:Lb,boundary:lu,bubble_event:Hb,check_target:wm,child:h,cleanup_styles:mm,clsx:td,comment:Xe,component:Is,create_custom_element:sg,create_ownership_validator:ym,css_props:Rm,customizable_select:ub,deep_read:ra,deep_read_state:bo,deferred_template_effect:Ap,delegate:le,delegated:U,derived:F,derived_safe_equal:oo,get document(){return bu},each:he,eager:rp,effect:At,effect_root:Ss,effect_tracking:xs,element:Fm,equals:_p,event:Me,exclude_from_object:Yv,fallback:Wv,first_child:pe,flush:An,for_await_track_reactivity_loss:up,from_html:T,from_mathml:Bp,from_svg:_o,from_tree:Up,get:i,head:Hm,hmr:_m,html:zm,hydrate_template:Rh,if:H,index:Bt,init:Ub,init_select:xo,inspect:xm,invalid_default_snippet:Zv,invalidate_inner_signals:Rp,invalidate_store:Gh,invoke_error_boundary:an,key:Tm,legacy_api:km,legacy_pre_effect:Sp,legacy_pre_effect_reset:Ep,legacy_rest_props:Qb,log_if_contains_state:ag,mark_store_binding:$h,mutable_source:Ca,mutate:mp,next:Gt,noop:xt,once:qb,pending:lp,pop:se,preventDefault:Bb,prevent_snippet_stringification:Wu,prop:J,props_id:Kp,proxy:oe,push:re,raf:rn,reactive_import:Fb,remove_input_defaults:ge,remove_textarea_child:fo,render_effect:Ne,replay_events:Mp,reset:f,rest_props:Jb,run:dp,run_after_blockers:cu,safe_get:zp,sanitize_slots:Mm,save:cp,select_option:rs,selectedcontent:cb,self:Ob,set:S,set_attribute:ne,set_checked:So,set_class:ce,set_custom_element_data:ib,set_default_checked:rb,set_default_value:sb,set_selected:Eo,set_style:Ye,set_text:L,set_value:as,set_xlink_attribute:ab,setup_stores:Xh,sibling:w,slot:Lm,snapshot:Yn,snippet:en,spread_props:Cs,state:V,stopImmediatePropagation:Vb,stopPropagation:Nb,store_get:Wh,store_mutate:Jh,store_set:nu,store_unsub:Yh,strict_equals:gp,tag:Mh,tag_proxy:Gc,template_effect:O,text:Xt,tick:Es,to_array:Mc,trace:Lh,track_reactivity_loss:ki,transition:Um,trusted:Mb,untrack:ke,update:Sr,update_legacy_props:Wb,update_pre:bp,update_pre_prop:Gb,update_pre_store:Qh,update_prop:Yb,update_store:Zh,user_effect:Ae,user_pre_effect:Su,validate_binding:eg,validate_dynamic_element_tag:sm,validate_snippet_args:Em,validate_store:am,validate_void_dynamic_element:rm,wait:fp,get window(){return xi},with_script:Fp,wrap_snippet:im},Symbol.toStringTag,{value:"Module"}));class Vl{#e=new Map;read(t){return this.#e.get(t)}write(t,n){this.#e.set(t,n)}delete(t){this.#e.delete(t)}list(){return[...this.#e.keys()]}}class Bl{#e;constructor(t){this.#e=t}read(t){if(typeof localStorage>"u")return;const n=localStorage.getItem(this.#e+t);if(n!=null)try{return JSON.parse(n)}catch{return}}write(t,n){if(!(typeof localStorage>"u"))try{localStorage.setItem(this.#e+t,JSON.stringify(n))}catch{}}delete(t){typeof localStorage>"u"||localStorage.removeItem(this.#e+t)}list(){if(typeof localStorage>"u")return[];const t=[];for(let n=0;n<localStorage.length;n++){const r=localStorage.key(n);r&&r.startsWith(this.#e)&&t.push(r.slice(this.#e.length))}return t}}const ig=["workspace","user"],Co="state:manage",tn={ephemeral:new Vl,session:new Vl,workspace:new Bl("sh3:workspace:"),user:new Bl("sh3:user:")},ci=new Map;let ui=!1;function og(e,t,n){ci.set(`${e}:${t}`,{zone:e,shardId:t,value:n}),!ui&&(ui=!0,queueMicrotask(()=>{ui=!1;for(const{zone:r,shardId:s,value:a}of ci.values())tn[r].write(s,a);ci.clear()}))}function Pa(e,t){const n={};for(const r of Object.keys(t)){const s=t[r],o=tn[r].read(e),l={...s,...o??{}},c=oe(l);n[r]=c,ig.includes(r)&&Ss(()=>{let u=!0;Ae(()=>{const d=Yn(c);if(u){u=!1;return}og(r,e,d)})})}return n}function Ul(e,t){tn[e]=t}function lg(e,t){return tn[e].read(t)}function Pi(e,t){tn[e].delete(t)}const cg="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(cg);const ug=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function dg(e){const t=document.activeElement;function n(){return Array.from(e.querySelectorAll(ug))}function r(s){if(s.key!=="Tab")return;const a=n();if(a.length===0){s.preventDefault();return}const o=a[0],l=a[a.length-1],c=document.activeElement;s.shiftKey&&(c===o||!e.contains(c))?(s.preventDefault(),l.focus()):!s.shiftKey&&(c===l||!e.contains(c))&&(s.preventDefault(),o.focus())}return e.addEventListener("keydown",r),queueMicrotask(()=>{(n()[0]??e).focus()}),()=>{e.removeEventListener("keydown",r),t&&document.contains(t)&&t.focus()}}var fg=T('<div class="modal-frame svelte-2tcvcm" role="presentation"><div class="modal-box svelte-2tcvcm" role="dialog" aria-modal="true" tabindex="-1"><!></div></div>');function vg(e,t){re(t,!0);let n;Ae(()=>{if(n)return dg(n)});function r(l){t.onBackdropClick&&l.target===l.currentTarget&&t.onBackdropClick()}var s=fg(),a=h(s),o=h(a);Is(o,()=>t.Content,(l,c)=>{c(l,Cs(()=>t.contentProps,{get close(){return t.close}}))}),f(a),Oe(a,l=>n=l,()=>n),f(s),O(()=>Ye(a,t.boxStyle)),U("click",s,r),E(e,s),se()}le(["click"]);const To={};function hg(e,t){To[e]=t}function pg(e){delete To[e]}function ja(e){const t=To[e];if(!t)throw new Error(`Overlay layer "${e}" root is not registered — Shell.svelte must mount before opening overlays on this layer.`);return t}const Cn=oe(new Map),ot=oe({id:null}),Ir=oe({id:null});function mg(){return Ir.id}function Ro(e){Cn.set(e.manifest.id,e)}function er(){return Array.from(Cn.values()).map(e=>e.manifest)}function ld(){const e=ot.id;return e?Cn.get(e)?.manifest??null:null}function Tn(e){return Cn.get(e)}const $r=[],pr=[];let is=null;function bg(e){is=e}function gg(e){if(!ot.id)throw new Error("pushNavEntry requires an active app");const t=Symbol("nav-entry");return pr.push({id:t,label:e.label,onPop:e.onPop}),{remove(){const n=pr.findIndex(r=>r.id===t);n>=0&&pr.splice(n,1)}}}function cd(e){const t=Symbol("dismissable");return $r.push({id:t,dismiss:e}),{unregister(){const n=$r.findIndex(r=>r.id===t);n>=0&&$r.splice(n,1)}}}function ud(){pr.length=0}function _g(){if($r.length>0){$r.pop().dismiss();return}if(pr.length>0){pr.pop().onPop();return}ot.id&&is&&is.returnToHome()}function yg(){ot.id||Ir.id&&is&&is.launchApp(Ir.id)}const St=[];let oa=!1,jt=null;const wg=.5;function dd(){const e=ja("modal");if(St.length===0){jt&&(jt.remove(),jt=null);return}jt||(jt=document.createElement("div"),jt.className="sh3-modal-backdrop",jt.style.position="absolute",jt.style.inset="0",jt.style.pointerEvents="auto",jt.style.transition="background-color 120ms ease",jt.style.background=`rgba(0, 0, 0, ${wg})`);const t=St[St.length-1].host;e.insertBefore(jt,t)}function fd(e){e.key==="Escape"&&St.length!==0&&(e.stopPropagation(),e.preventDefault(),St[St.length-1].handle.close())}function kg(){oa||(oa=!0,document.addEventListener("keydown",fd,!0))}function xg(){St.length>0||oa&&(oa=!1,document.removeEventListener("keydown",fd,!0))}function vd(e){const t=St.indexOf(e);t<0||(St.splice(t,1),He(e.frame),e.host.remove(),dd(),xg())}function Sg(e,t,n){const r=ja("modal"),s=document.createElement("div");s.className="sh3-modal-host",s.style.position="absolute",s.style.inset="0",s.style.pointerEvents="auto",r.appendChild(s);const a={},o={close:()=>vd(a)},l=cd(()=>o.close()),c=o.close;o.close=()=>{l.unregister(),c()};const u=Le(vg,{target:s,props:{Content:e,contentProps:t??{},close:o.close,boxStyle:n?.boxStyle,onBackdropClick:n?.dismissOnBackdrop?o.close:void 0}});return a.host=s,a.frame=u,a.handle=o,St.push(a),dd(),kg(),o}function Eg(){for(;St.length>0;)vd(St[St.length-1])}const Dn={open:Sg,closeAll:Eg};var Ig=T('<div class="popup-frame svelte-mp81cl" role="menu" tabindex="-1"><!></div>');function Ag(e,t){re(t,!0);let n,r=V(-9999),s=V(-9999);Ae(()=>{if(!n)return;const l=n.getBoundingClientRect(),c=4,u=window.innerWidth,d=window.innerHeight;let v=t.anchorRect.bottom+c,p=t.anchorRect.left;if(p+l.width>u-c&&(p=Math.max(c,u-l.width-c)),v+l.height>d-c){const b=t.anchorRect.top-l.height-c;v=b>=c?b:Math.max(c,d-l.height-c)}S(r,v,!0),S(s,p,!0)});var a=Ig(),o=h(a);Is(o,()=>t.Content,(l,c)=>{c(l,Cs(()=>t.contentProps,{get close(){return t.close}}))}),f(a),Oe(a,l=>n=l,()=>n),O(()=>Ye(a,`top: ${i(r)??""}px; left: ${i(s)??""}px;`)),E(e,a),se()}function Cg(e){return e instanceof HTMLElement?e.getBoundingClientRect():new DOMRect(e.x,e.y,0,0)}let qt=null;function hd(e){if(!qt)return;const t=e.target;t&&qt.host.contains(t)||qt.handle.close()}function pd(e){qt&&e.key==="Escape"&&(e.stopPropagation(),e.preventDefault(),qt.handle.close())}function Tg(){document.addEventListener("pointerdown",hd,!0),document.addEventListener("keydown",pd,!0)}function Rg(){document.removeEventListener("pointerdown",hd,!0),document.removeEventListener("keydown",pd,!0)}function ji(e){qt===e&&(qt=null,Rg(),He(e.frame),e.host.remove())}function Pg(e,t,n){qt&&ji(qt);const r=ja("popup"),s=document.createElement("div");s.className="sh3-popup-host",s.style.position="absolute",s.style.inset="0",s.style.pointerEvents="none",r.appendChild(s);const a=Cg(t.anchor),o={},l={close:()=>ji(o)},c=cd(()=>l.close()),u=l.close;l.close=()=>{c.unregister(),u()};const d=Le(Ag,{target:s,props:{Content:e,contentProps:n??{},anchorRect:a,close:l.close}});return o.host=s,o.frame=d,o.handle=l,qt=o,queueMicrotask(Tg),l}function jg(){qt&&ji(qt)}const Di={show:Pg,close:jg};var Dg=T('<div role="status" aria-live="polite"><span class="toast-level svelte-12gwnj0"> </span> <span class="toast-message svelte-12gwnj0"> </span></div>');function zg(e,t){var n=Dg(),r=h(n),s=h(r,!0);f(r);var a=w(r,2),o=h(a,!0);f(a),f(n),O(()=>{ce(n,1,`toast toast-${t.level??""}`,"svelte-12gwnj0"),L(s,t.level),L(o,t.message)}),U("click",n,function(...l){t.close?.apply(this,l)}),E(e,n)}le(["click"]);const la=new Set;let vt=null;function Lg(){if(vt&&vt.isConnected)return vt;const e=ja("toast");return vt=document.createElement("div"),vt.className="sh3-toast-stack",vt.style.position="absolute",vt.style.right="16px",vt.style.bottom="16px",vt.style.display="flex",vt.style.flexDirection="column-reverse",vt.style.gap="6px",vt.style.pointerEvents="none",e.appendChild(vt),vt}function zi(e){la.has(e)&&(la.delete(e),e.timer!==null&&(clearTimeout(e.timer),e.timer=null),He(e.instance),e.host.remove())}function Mg(e,t={}){const n=t.level??"info",r=t.duration??3e3,s=Lg(),a=document.createElement("div");a.className="sh3-toast-host",s.appendChild(a);const o={},l={close:()=>zi(o)},c=Le(zg,{target:a,props:{message:e,level:n,close:l.close}});return o.host=a,o.instance=c,o.handle=l,o.timer=Number.isFinite(r)&&r>0?setTimeout(()=>zi(o),r):null,la.add(o),l}function Og(){for(const e of[...la])zi(e)}const Sn={notify:Mg,clear:Og},Fl={w:120,h:80};function md(e){if(e.type==="slot")return{...Fl};if(e.type==="tabs")return{...Fl};const t=e.children.map(md);return e.direction==="horizontal"?{w:t.reduce((n,r)=>n+r.w,0),h:t.reduce((n,r)=>Math.max(n,r.h),0)}:{w:t.reduce((n,r)=>Math.max(n,r.w),0),h:t.reduce((n,r)=>n+r.h,0)}}const Hl=32,Kl={x:48,y:48};function Ng(e,t){if(e.length===0)return{...Kl};const n=e[e.length-1],r={x:n.position.x+Hl,y:n.position.y+Hl};return r.x+120>t.w||r.y+32>t.h?{...Kl}:r}let Wl=0;function qg(){return Wl+=1,`float-${Date.now().toString(36)}-${Wl.toString(36)}`}function bd(e){return e.type==="slot"?e.viewId==null:e.type==="tabs"?e.tabs.every(t=>t.viewId==null):e.children.every(bd)}let Vg=[],Po=null,jo=()=>({w:1600,h:900});function Bg(e,t){Po=e,jo=t}function Ug(){Po=null,jo=()=>({w:1600,h:900})}function Da(){return Po??Vg}let Yl=0;function Fg(e){return Yl+=1,`float:${e}:${Yl}`}const Hg={w:600,h:400};function Kg(e,t){return{w:Math.max(e.w,t.w),h:Math.max(e.h,t.h)}}function Wg(e,t={}){const n=Da(),r=qg(),s=Fg(e);let a;if(t.dismissable)a={type:"slot",slotId:s,viewId:e};else{const d=t.title??e,v={slotId:s,viewId:e,label:d};t.meta&&(v.meta=t.meta),a={type:"tabs",tabs:[v],activeTab:0}}const o=md(a),l=t.size??Kg(Hg,o),c=t.position??Ng(n,jo()),u={id:r,content:a,position:c,size:l,title:t.title};return t.dismissable&&(u.dismissable=!0),n.push(u),r}function Yg(e){const t=Da(),n=t.findIndex(r=>r.id===e);n<0||t.splice(n,1)}function Gg(){return Da().slice()}function Xg(e){const t=Da(),n=t.findIndex(s=>s.id===e);if(n<0||n===t.length-1)return;const[r]=t.splice(n,1);t.push(r)}const dt={open:Wg,close:Yg,list:Gg,focus:Xg};let ca=null;function Jg(e){ca=e}function Zg(){ca=null}function Do(){if(!ca)throw new Error("presetManager: no app attached — bind an AppLayoutBlob first");return ca}function Qg(){return Object.keys(Do().presets)}function $g(){return Do().activePreset}function e_(e){const t=Do();if(!(e in t.presets))throw new Error(`presetManager.switch: unknown preset "${e}"`);t.activePreset=e}const t_={list:Qg,active:$g,switch:e_},dr=new Map,Hs=new Map;function Gl(e){const t=Hs.get(e);if(t)for(const n of t)n()}function gd(e,t){const n=Symbol();let r=dr.get(e);r||(r=new Map,dr.set(e,r)),r.set(n,t),Gl(e);let s=!1;return()=>{if(s)return;s=!0;const a=dr.get(e);a&&a.delete(n)&&(a.size===0&&dr.delete(e),Gl(e))}}function za(e){const t=dr.get(e);return t?Array.from(t.values()):[]}function n_(){return Array.from(dr.keys())}function _d(e,t){let n=Hs.get(e);n||(n=new Set,Hs.set(e,n)),n.add(t);let r=!1;return()=>{r||(r=!0,n.delete(t),n.size===0&&Hs.delete(e))}}const r_=Object.freeze([".md",".txt",".json",".guml",".css",".js",".ts",".tsx",".jsx",".html",".svg",".csv",".yaml",".yml",".xml",".log",".ini",".toml"]);function s_(e){return e.kind?e.kind:e.extension&&r_.includes(e.extension.toLowerCase())?"text":"binary"}const Ks=[];function Xl(e){return Ks.push(e),()=>{const t=Ks.indexOf(e);t>=0&&Ks.splice(t,1)}}function a_(e,t=[]){return[...Ks,...t].filter(r=>{try{return r.appliesTo(e)}catch{return!1}}).sort((r,s)=>(s.priority??0)-(r.priority??0))[0]??null}var i_=T("<span> </span>"),o_=T('<div class="sh3-conflict-text-dual svelte-iwgja4"><div role="button" tabindex="0"><header class="sh3-conflict-text-head svelte-iwgja4"> </header> <pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre></div> <div role="button" tabindex="0"><header class="sh3-conflict-text-head svelte-iwgja4"> </header> <pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre></div></div> <details class="sh3-conflict-text-diff svelte-iwgja4"><summary> </summary> <pre class="svelte-iwgja4"><code></code></pre></details>',1),l_=T("<option> </option>"),c_=T("<button> </button>"),u_=T('<pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre>'),d_=T('<div class="sh3-conflict-text-tabs svelte-iwgja4"><div class="sh3-conflict-text-picker svelte-iwgja4"><label>Reference: <select class="svelte-iwgja4"></select></label></div> <div class="sh3-conflict-text-tablist svelte-iwgja4"></div> <!></div>'),f_=T('<div class="sh3-conflict-text svelte-iwgja4"><!></div>');function v_(e,t){re(t,!0);let n=V("");Ae(()=>{(!i(n)||!t.item.branches.find(b=>b.origin===i(n)))&&S(n,t.item.branches[0]?.origin??"local",!0)});const r=F(()=>t.item.branches.length===2),s=F(()=>i(r)?t.item.branches[0]:t.item.branches.find(b=>b.origin===i(n))??t.item.branches[0]),a=F(()=>i(r)?t.item.branches[1]:t.item.branches.find(b=>b.origin===t.selectedOrigin)??t.item.branches[1]??t.item.branches[0]);function o(b,x){const _=(b??"").split(/\r?\n/),y=(x??"").split(/\r?\n/),k=[],g=Math.max(_.length,y.length);for(let m=0;m<g;m++){const I=_[m],P=y[m];I===P?typeof I=="string"&&k.push({kind:"same",text:I}):(typeof I=="string"&&k.push({kind:"left",text:I}),typeof P=="string"&&k.push({kind:"right",text:P}))}return k}const l=F(()=>!i(s)||!i(a)?[]:o(i(s).content??"",i(a).content??"")),c=F(()=>i(l).filter(b=>b.kind!=="same").length);var u=f_(),d=h(u);{var v=b=>{var x=o_(),_=pe(x),y=h(_);let k;var g=h(y),m=h(g);f(g);var I=w(g,2),P=h(I),A=h(P,!0);f(P),f(I),f(y);var C=w(y,2);let D;var R=h(C),M=h(R);f(R);var j=w(R,2),z=h(j),B=h(z,!0);f(z),f(j),f(C),f(_);var N=w(_,2),q=h(N),Y=h(q);f(q);var W=w(q,2),X=h(W);he(X,21,()=>i(l),Bt,(Q,ae)=>{var K=i_(),G=h(K);f(K),O(()=>{ce(K,1,`diff-${i(ae).kind}`,"svelte-iwgja4"),L(G,`${i(ae).kind==="same"?" ":i(ae).kind==="left"?"- ":"+ "}${i(ae).text??""}
8
- `)}),E(Q,K)}),f(X),f(W),f(N),O(()=>{k=ce(y,1,"sh3-conflict-text-pane svelte-iwgja4",null,k,{selected:i(s).origin===t.selectedOrigin}),L(m,`${i(s).origin??""} · v${i(s).version??""}`),L(A,i(s).content??""),D=ce(C,1,"sh3-conflict-text-pane svelte-iwgja4",null,D,{selected:i(a).origin===t.selectedOrigin}),L(M,`${i(a).origin??""} · v${i(a).version??""}`),L(B,i(a).content??""),L(Y,`Line diff (${i(c)??""} difference${i(c)===1?"":"s"})`)}),U("click",y,()=>t.onSelect(i(s).origin)),U("keydown",y,Q=>{(Q.key==="Enter"||Q.key===" ")&&t.onSelect(i(s).origin)}),U("click",C,()=>t.onSelect(i(a).origin)),U("keydown",C,Q=>{(Q.key==="Enter"||Q.key===" ")&&t.onSelect(i(a).origin)}),E(b,x)},p=b=>{var x=d_(),_=h(x),y=h(_),k=w(h(y));he(k,21,()=>t.item.branches,P=>P.origin,(P,A)=>{var C=l_(),D=h(C,!0);f(C);var R={};O(()=>{L(D,i(A).origin),R!==(R=i(A).origin)&&(C.value=(C.__value=i(A).origin)??"")}),E(P,C)}),f(k),f(y),f(_);var g=w(_,2);he(g,21,()=>t.item.branches,P=>P.origin,(P,A)=>{var C=c_();let D;var R=h(C);f(C),O(()=>{D=ce(C,1,"sh3-conflict-text-tab svelte-iwgja4",null,D,{selected:i(A).origin===t.selectedOrigin}),L(R,`${i(A).origin??""} · v${i(A).version??""}`)}),U("click",C,()=>t.onSelect(i(A).origin)),E(P,C)}),f(g);var m=w(g,2);{var I=P=>{var A=u_(),C=h(A),D=h(C,!0);f(C),f(A),O(()=>L(D,i(a).content??"")),E(P,A)};H(m,P=>{i(a)&&P(I)})}f(x),ss(k,()=>i(n),P=>S(n,P)),E(b,x)};H(d,b=>{i(r)&&i(s)&&i(a)?b(v):b(p,-1)})}f(u),E(e,u),se()}le(["click","keydown"]);var h_=T("· <code> </code>",1),p_=T('<li class="sh3-conflict-meta-li svelte-1nz3djn"><button type="button"><div class="sh3-conflict-meta-origin svelte-1nz3djn"> </div> <div class="sh3-conflict-meta-detail svelte-1nz3djn"> <!></div></button></li>'),m_=T('<div class="sh3-conflict-meta svelte-1nz3djn"><div class="sh3-conflict-meta-note svelte-1nz3djn">No preview available for this content. Pick the branch you want to keep.</div> <ul class="sh3-conflict-meta-list svelte-1nz3djn"></ul></div>');function b_(e,t){re(t,!0);function n(o){return typeof o!="number"?"—":o<1024?`${o} B`:o<1024*1024?`${(o/1024).toFixed(1)} KiB`:`${(o/(1024*1024)).toFixed(2)} MiB`}function r(o){const l=Date.now()-o;return l<6e4?"just now":l<36e5?`${Math.floor(l/6e4)}m ago`:l<864e5?`${Math.floor(l/36e5)}h ago`:new Date(o).toLocaleString()}var s=m_(),a=w(h(s),2);he(a,21,()=>t.item.branches,o=>o.origin,(o,l)=>{var c=p_(),u=h(c);let d;var v=h(u),p=h(v,!0);f(v);var b=w(v,2),x=h(b),_=w(x);{var y=k=>{var g=h_(),m=w(pe(g)),I=h(m,!0);f(m),O(()=>L(I,i(l).hashPreview)),E(k,g)};H(_,k=>{i(l).hashPreview&&k(y)})}f(b),f(u),f(c),O((k,g)=>{d=ce(u,1,"sh3-conflict-meta-row svelte-1nz3djn",null,d,{selected:i(l).origin===t.selectedOrigin}),L(p,i(l).origin),L(x,`v${i(l).version??""} · ${k??""} · ${g??""} `)},[()=>r(i(l).at),()=>n(i(l).sizeBytes)]),U("click",u,()=>t.onSelect(i(l).origin)),E(o,c)}),f(a),f(s),E(e,s),se()}le(["click"]);const g_=1048576;function __(e){return typeof e=="number"&&e>g_}const y_={id:"sh3-core.text",priority:1,appliesTo:e=>s_(e)!=="text"?!1:!e.branches.some(t=>__(t.sizeBytes)),mount(e,t){const n=Le(v_,{target:e,props:t});return()=>{He(n)}}},w_={id:"sh3-core.meta",priority:0,appliesTo:()=>!0,mount(e,t){const n=Le(b_,{target:e,props:t});return()=>{He(n)}}};let Jl=!1;function k_(){Jl||(Jl=!0,Xl(y_),Xl(w_))}var x_=T('<div class="sh3-conflict-prompt svelte-1jvtzud"><h3 class="sh3-conflict-prompt-title svelte-1jvtzud"> </h3> <p class="sh3-conflict-prompt-intro svelte-1jvtzud">Pick one option for the whole batch, or resolve each conflict individually.</p> <div class="sh3-conflict-prompt-actions svelte-1jvtzud"><button type="button" class="sh3-conflict-prompt-primary svelte-1jvtzud">Overwrite with most recent</button> <button type="button" class="sh3-conflict-prompt-secondary svelte-1jvtzud">Resolve individually</button> <button type="button" class="sh3-conflict-prompt-cancel svelte-1jvtzud">Cancel</button></div></div>');function S_(e,t){var n=x_(),r=h(n),s=h(r);f(r);var a=w(r,4),o=h(a);Dr(o,!0);var l=w(o,2),c=w(l,2);f(a),f(n),O(()=>L(s,`${t.count??""} conflict${t.count===1?"":"s"} to resolve`)),U("click",o,function(...u){t.onOverwriteMostRecent?.apply(this,u)}),U("click",l,function(...u){t.onResolveIndividually?.apply(this,u)}),U("click",c,function(...u){t.onCancel?.apply(this,u)}),E(e,n)}le(["click"]);var E_=T('<span class="sh3-conflict-detail-counter svelte-pw8iv6"> </span>'),I_=T('<button type="button"><span><!></span> <span class="sh3-conflict-detail-rail-label svelte-pw8iv6"> </span></button>'),A_=T('<aside class="sh3-conflict-detail-rail svelte-pw8iv6"></aside>'),C_=T('<label class="sh3-conflict-detail-branch svelte-pw8iv6"><input type="radio"/> <span> </span></label>'),T_=T('<div class="sh3-conflict-detail-branches svelte-pw8iv6"></div> <div class="sh3-conflict-detail-renderer svelte-pw8iv6"></div>',1),R_=T('<div class="sh3-conflict-detail svelte-pw8iv6"><header class="sh3-conflict-detail-head svelte-pw8iv6"><h3 class="svelte-pw8iv6"> </h3> <!></header> <div class="sh3-conflict-detail-body svelte-pw8iv6"><!> <section class="sh3-conflict-detail-main svelte-pw8iv6"><!></section></div> <footer class="sh3-conflict-detail-foot svelte-pw8iv6"><div class="sh3-conflict-detail-nav svelte-pw8iv6"><button type="button" class="svelte-pw8iv6">← Prev</button> <button type="button" class="svelte-pw8iv6"> </button> <button type="button" class="svelte-pw8iv6">Next →</button></div> <div class="sh3-conflict-detail-actions svelte-pw8iv6"><button type="button" class="sh3-conflict-detail-cancel svelte-pw8iv6">Cancel</button> <button type="button" class="sh3-conflict-detail-done svelte-pw8iv6">Done</button></div></footer></div>');function P_(e,t){re(t,!0);const n=F(()=>t.items[t.currentIndex]),r=F(()=>i(n)?t.selections[i(n).id]??i(n).branches[0]?.origin??"":""),s=F(()=>i(n)?a_(i(n),t.contributed):null);let a=V(void 0),o=null;Ae(()=>{if(i(n),i(s),i(r),o&&(o(),o=null),!i(a)||!i(n)||!i(s))return;const q={item:i(n),selectedOrigin:i(r),onSelect:Y=>t.onSelect(i(n).id,Y)};return o=i(s).mount(i(a),q),()=>{o&&(o(),o=null)}});function l(){t.currentIndex>0&&t.onNavigate(t.currentIndex-1)}function c(){t.currentIndex<t.items.length-1&&t.onNavigate(t.currentIndex+1)}const u=F(()=>t.items.map(q=>t.skipped[q.id]?"skipped":t.selections[q.id]?"resolved":"pending"));var d=R_(),v=h(d),p=h(v),b=h(p,!0);f(p);var x=w(p,2);{var _=q=>{var Y=E_(),W=h(Y);f(Y),O(()=>L(W,`${t.currentIndex+1} / ${t.items.length??""}`)),E(q,Y)};H(x,q=>{t.items.length>1&&q(_)})}f(v);var y=w(v,2),k=h(y);{var g=q=>{var Y=A_();he(Y,23,()=>t.items,W=>W.id,(W,X,Q)=>{var ae=I_();let K;var G=h(ae),ie=h(G);{var ue=Pe=>{var at=Xt("✓");E(Pe,at)},Z=Pe=>{var at=Xt("⟶");E(Pe,at)},de=Pe=>{var at=Xt("·");E(Pe,at)};H(ie,Pe=>{i(u)[i(Q)]==="resolved"?Pe(ue):i(u)[i(Q)]==="skipped"?Pe(Z,1):Pe(de,-1)})}f(G);var ye=w(G,2),Ue=h(ye,!0);f(ye),f(ae),O(()=>{K=ce(ae,1,"sh3-conflict-detail-rail-item svelte-pw8iv6",null,K,{selected:i(Q)===t.currentIndex}),ce(G,1,`sh3-conflict-detail-rail-state ${i(u)[i(Q)]??""}`,"svelte-pw8iv6"),L(Ue,i(X).label)}),U("click",ae,()=>t.onNavigate(i(Q))),E(W,ae)}),f(Y),E(q,Y)};H(k,q=>{t.items.length>1&&q(g)})}var m=w(k,2),I=h(m);{var P=q=>{var Y=T_(),W=pe(Y);he(W,21,()=>i(n).branches,Q=>Q.origin,(Q,ae)=>{var K=C_(),G=h(K);ge(G);var ie=w(G,2),ue=h(ie);f(ie),f(K),O(()=>{ne(G,"name",`branch-${i(n).id??""}`),as(G,i(ae).origin),So(G,i(r)===i(ae).origin),L(ue,`${i(ae).origin??""} · v${i(ae).version??""}`)}),U("change",G,()=>t.onSelect(i(n).id,i(ae).origin)),E(Q,K)}),f(W);var X=w(W,2);Oe(X,Q=>S(a,Q),()=>i(a)),E(q,Y)};H(I,q=>{i(n)&&q(P)})}f(m),f(y);var A=w(y,2),C=h(A),D=h(C),R=w(D,2),M=h(R,!0);f(R);var j=w(R,2);f(C);var z=w(C,2),B=h(z),N=w(B,2);f(z),f(A),f(d),O(()=>{L(b,t.title),D.disabled=t.currentIndex===0,L(M,i(n)&&t.skipped[i(n).id]?"Unskip":"Skip"),j.disabled=t.currentIndex>=t.items.length-1}),U("click",D,l),U("click",R,()=>i(n)&&t.onToggleSkip(i(n).id)),U("click",j,c),U("click",B,function(...q){t.onCancel?.apply(this,q)}),U("click",N,function(...q){t.onDone?.apply(this,q)}),E(e,d),se()}le(["click","change"]);function yd(e,t){return t.at-e.at}function j_(e,t){if(e.length===0)return null;try{return[...e].sort(t)[0]}catch(n){return console.warn("[sh3-core] mostRecentBy comparator threw; falling back to default",n),[...e].sort(yd)[0]}}function D_(e,t){re(t,!0);const n=t.items.length>=2||t.requirePrompt;let r=V(oe(n?"prompt":"detail")),s=V(oe(Object.fromEntries(t.items.map(m=>{const I=j_(m.branches,t.mostRecentBy)?.origin??m.branches[0]?.origin??"";return[m.id,I]})))),a=V(oe({})),o=V(0),l=!1;wo(()=>{l||(l=!0,t.onCancel())});function c(){if(l)return;l=!0;const m=[],I=[];for(const P of t.items){if(i(a)[P.id]){I.push(P.id);continue}const A=i(s)[P.id],C=P.branches.find(D=>D.origin===A);C&&m.push({itemId:P.id,chosen:C,meta:P.meta})}t.onResolve(m,I),t.close()}function u(){l||(l=!0,t.onCancel(),t.close())}function d(){c()}function v(){S(r,"detail")}function p(m,I){if(S(s,{...i(s),[m]:I},!0),i(a)[m]){const P={...i(a)};delete P[m],S(a,P,!0)}}function b(m){S(a,{...i(a),[m]:!i(a)[m]},!0)}function x(m){S(o,m,!0)}var _=Xe(),y=pe(_);{var k=m=>{S_(m,{get count(){return t.items.length},onOverwriteMostRecent:d,onResolveIndividually:v,onCancel:u})},g=m=>{P_(m,{get items(){return t.items},get selections(){return i(s)},get skipped(){return i(a)},get currentIndex(){return i(o)},get title(){return t.title},get contributed(){return t.contributed},onSelect:p,onNavigate:x,onToggleSkip:b,onDone:c,onCancel:u})};H(y,m=>{i(r)==="prompt"?m(k):m(g,-1)})}E(e,_),se()}const wd="sh3-core.conflictRenderer";class kd extends Error{constructor(t){super(t),this.name="ConflictPermissionError"}}class z_ extends Error{constructor(){super("Caller shard deactivated while conflict session was active"),this.name="ConflictSessionOrphanedError"}}function L_(){try{return za(wd)}catch{return[]}}function xd(e,t={}){return k_(),e.length===0?Promise.resolve({status:"resolved",choices:[],skipped:[]}):new Promise(n=>{const r=t.title??(e.length===1?"Resolve conflict":"Resolve conflicts"),s=t.mostRecentBy??yd,a=t.requirePrompt??!1,o=L_();let l=!1;const d={items:e,title:r,mostRecentBy:s,requirePrompt:a,contributed:o,onResolve:(v,p)=>{l||(l=!0,n({status:"resolved",choices:v,skipped:p}))},onCancel:()=>{l||(l=!0,n({status:"cancelled"}))}};Dn.open(D_,d,{boxStyle:"max-width: none; min-width: 360px; padding: 0;"})})}function M_(e){const t=e.documents({format:"text"});return{status:n=>t.status(n),readBranch:(n,r)=>t.readBranch(n,r),resolveConflict:(n,r)=>t.resolveConflict(n,r)}}function O_(e,t){const n=e.browse;if(!n?.statusFrom||!n?.readBranchFrom||!n?.resolveConflictFrom)throw new kd(`Cross-shard resolveDocuments requires documents:browse + documents:read + documents:write (shardId=${t})`);return{status:r=>n.statusFrom(t,r),readBranch:(r,s)=>n.readBranchFrom(t,r,s),resolveConflict:(r,s)=>n.resolveConflictFrom(t,r,s)}}function N_(e){const t=e.lastIndexOf(".");if(t<0)return;const n=e.lastIndexOf("/");if(!(t<n))return e.slice(t)}async function q_(e,t,n={}){const r=e.shardId,s=t.shardId===r?M_(e):O_(e,t.shardId),a=[];for(const d of t.paths){const v=await s.status(d);v&&v.syncState==="conflict"&&v.branches&&v.branches.length>0&&a.push({path:d,status:v})}if(a.length===0)return{status:"resolved",resolved:[],failed:[],skipped:[]};const o=[];for(const{path:d,status:v}of a){const p=N_(d),b=[];for(const x of v.branches??[]){const _=await s.readBranch(d,x.origin).catch(()=>null);b.push({origin:x.origin,version:x.version,at:x.at,content:_??void 0,sizeBytes:_?new TextEncoder().encode(_).length:void 0})}o.push({id:d,label:d,extension:p,branches:b,meta:{shardId:t.shardId,path:d,docVersion:v.version}})}const l=await xd(o,n);if(l.status==="cancelled")return{status:"cancelled"};const c=[],u=[];for(const d of l.choices)try{await s.resolveConflict(d.itemId,{origin:d.chosen.origin});const v=await s.status(d.itemId).catch(()=>null);c.push({path:d.itemId,chosen:d.chosen,appliedVersion:v?.version??-1})}catch(v){u.push({path:d.itemId,error:v instanceof Error?v.message:String(v)})}return{status:"resolved",resolved:c,failed:u,skipped:l.skipped}}const V_={resolve:xd,resolveDocuments:q_},Sd="sh3.color-picker",B_={id:"sh3.color-picker.native",priority:0,open:({initial:e})=>new Promise(t=>{const n=document.createElement("input");n.type="color",e&&/^#[0-9a-f]{6}$/i.test(e)&&(n.value=e);let r=!1;const s=a=>{r||(r=!0,n.remove(),t(a))};n.addEventListener("change",()=>s(n.value)),n.addEventListener("cancel",()=>s(null)),n.style.position="fixed",n.style.left="-9999px",document.body.appendChild(n),n.click()})};function U_(e={}){return[...za(Sd),B_].sort((r,s)=>(s.priority??0)-(r.priority??0))[0].open(e)}const F_={pick:U_};let On=null;function H_(e){On=e}async function mr(e){return On?{...On.bindings[e]??{}}:{}}async function Zl(e,t,n){if(!On)return;const r={...On.bindings[e]??{}};n===void 0?delete r[t]:r[t]=n,On.bindings={...On.bindings,[e]:r}}const zo="sh3.actions",di=new Set;function K_(e,t){if(typeof e.run!="function"&&e.submenu!==!0)return console.warn(`[sh3] Action "${e.id}" registered by "${t}" has no \`run\` and is not a submenu parent (\`submenu: true\`). Registration ignored.`),()=>{};di.has(e.id)&&console.warn(`[sh3] Duplicate action id "${e.id}" registered by "${t}". First registration wins; second registration still stored but shortcut conflicts may occur.`),di.add(e.id);const r=gd(zo,{action:e,ownerShardId:t});let s=!1;return()=>{s||(s=!0,r(),di.delete(e.id))}}function rt(){return za(zo)}function W_(e){return _d(zo,e)}function Ut(e){return typeof e.label=="function"?e.label():e.label}const Y_=["Ctrl","Alt","Shift","Meta"],Ql={control:"Ctrl",ctrl:"Ctrl",alt:"Alt",option:"Alt",shift:"Shift",meta:"Meta",cmd:"Meta",command:"Meta",super:"Meta",win:"Meta"},G_=new Set(["Control","Alt","Shift","Meta"]);function Ed(e){return e.length===1?e.toUpperCase():e}function Lo(e){if(!e)throw new Error("Empty shortcut");const t=e.split("+");if(t.some(o=>o.trim()===""))throw new Error(`Malformed shortcut: "${e}"`);const n=t.map(o=>o.trim());if(n.length===0)throw new Error(`Malformed shortcut: "${e}"`);const r=new Set;let s;for(const o of n){const l=o.toLowerCase();if(l in Ql)r.add(Ql[l]);else{if(s!==void 0)throw new Error(`Multiple keys in shortcut: "${e}"`);s=Ed(o)}}if(s===void 0)throw new Error(`No key in shortcut: "${e}"`);return[...Y_.filter(o=>r.has(o)),s].join("+")}function Id(e,t){if(!e.toLowerCase().includes("mod"))return e;const n=e.split("+").map(r=>r.toLowerCase()==="mod"?t==="mac"?"Meta":"Ctrl":r);return Lo(n.join("+"))}function X_(e){if(G_.has(e.key))return"";const t=[];e.ctrlKey&&t.push("Ctrl"),e.altKey&&t.push("Alt"),e.shiftKey&&t.push("Shift"),e.metaKey&&t.push("Meta");const n=Ed(e.key);return[...t,n].join("+")}function J_(){return typeof navigator>"u"?"other":/Mac|iPhone|iPad|iPod/i.test(navigator.platform)?"mac":"other"}function Ts(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?null:Lo(r)}return e.defaultShortcut?Id(e.defaultShortcut,n):null}function Z_(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?{shortcut:null,source:"disabled"}:{shortcut:Lo(r),source:"user"}}return e.defaultShortcut?{shortcut:Id(e.defaultShortcut,n),source:"default"}:{shortcut:null,source:"none"}}function La(e){return e==="home"?"home":e==="app"?"app":typeof e=="string"&&e.startsWith("view:")?"view":typeof e=="string"&&e.startsWith("focus:")?"focus":"element"}function Mo(e){return Array.isArray(e)?e:[e]}function Ad(e){return e==="home"||e==="app"?null:typeof e=="string"?e:e.element}function Rs(e,t,n){const r=Mo(e),s={};for(const a of r){const o=La(a);(s[o]??=[]).push(a)}for(const a of Ma){const o=s[a];if(o){for(const l of o)if(os(l,t,n))return l}}return null}function Q_(e,t){return typeof e=="string"||typeof t=="string"?e===t:e.element===t.element}function Cd(e){return typeof e=="string"?e:`element:${e.element}`}function $_(e){if(e==="home"||e==="app")return e;if(e.startsWith("view:"))return e.slice(5).length>0?e:null;if(e.startsWith("focus:"))return e.slice(6).length>0?e:null;if(e.startsWith("element:")){const t=e.slice(8);return t.length>0?{element:t}:null}return null}const Ma=["element","focus","view","app","home"];function os(e,t,n){if(e==="home")return t.activeAppId===null;if(e==="app")return t.activeAppId===null||!n?!1:t.activeAppRequiredShards.has(n)||t.autostartShards.has(n);if(typeof e=="string"){if(e.startsWith("view:"))return t.mountedViewIds.has(e.slice(5));if(e.startsWith("focus:"))return t.focusedViewId===e.slice(6)}return typeof e=="object"&&"element"in e?t.selection!==null&&t.selection.type===e.element:!1}function ey(e,t){const n={element:new Map,focus:new Map,view:new Map,app:new Map,home:new Map};for(const r of e){const s=Ts(r.action,t.bindings,t.platform);if(s)for(const a of Mo(r.action.scope)){if(!os(a,t,r.ownerShardId))continue;const o=La(a),l=n[o].get(s);if(l&&l!==r.action.id){console.warn(`[sh3] Shortcut "${s}" in tier "${o}" is bound to both "${l}" and "${r.action.id}"; first-registered wins. Users can rebind to resolve.`);continue}n[o].set(s,r.action.id)}}return n}function ty(e){if(!(e instanceof Element))return!1;const t=e.tagName;if(t==="INPUT"||t==="TEXTAREA")return!0;const n=e.contentEditable;if(n==="true"||n==="plaintext-only")return!0;const r=e.getAttribute("contenteditable");return r==="true"||r===""||r==="plaintext-only"}function ny(e){const t=ey(e.entries,e.state),n=new Map(e.entries.map(r=>[r.action.id,r]));for(const r of Ma){const s=t[r].get(e.shortcut);if(!s)continue;const a=n.get(s);if(a)return ty(e.target)&&!a.action.allowInInputs?null:(e.runAction(s,{action:{id:a.action.id,label:Ut(a.action)},appId:e.state.activeAppId,viewId:e.state.focusedViewId??void 0,selection:e.state.selection??void 0,invokedVia:"keyboard",dispatch:e.dispatch??(()=>{})}),s)}return null}let Ft=V(null);function Oo(){return i(Ft)}function Td(e){return{get(){return i(Ft)},set(t){S(Ft,{type:t.type,ref:t.ref,ownerShardId:e},!0)},clear(){if(i(Ft)){if(i(Ft).ownerShardId!==e){console.warn(`[sh3] Shard "${e}" tried to clear selection owned by "${i(Ft).ownerShardId}". Ignoring.`);return}S(Ft,null)}}}}function Rd(e){i(Ft)&&i(Ft).ownerShardId===e&&S(Ft,null)}function ry(){S(Ft,null)}const ua=new Map,Pd=new Set;function sy(e){Pd.add(e)}function ay(e,t){if(ua.has(e))throw new Error(`View "${e}" is already registered`);ua.set(e,t);for(const n of Pd)n(e,t)}function jd(e){return ua.get(e)}function Dd(e){ua.delete(e)}const ls=new Map;function iy(e,t){if(ls.has(e))throw new Error(`Verb "${e}" is already registered`);ls.set(e,t)}function $l(e){return ls.get(e)}function zd(e){ls.delete(e)}function No(){return Array.from(ls.values()).sort((e,t)=>e.name.localeCompare(t.name))}function Ar(e,t){const n=(r,s)=>{if(r.type==="tabs"){const a=r.tabs.findIndex(o=>o.slotId===t);if(a>=0)return{tabsNode:r,tabsPath:s,tabIndex:a,entry:r.tabs[a]}}else if(r.type==="split")for(let a=0;a<r.children.length;a++){const o=n(r.children[a],[...s,a]);if(o)return o}return null};return n(e,[])}function qo(e,t){if(Li(e.docked,t))return{kind:"docked"};for(const n of e.floats)if(Li(n.content,t))return{kind:"float",floatId:n.id};return null}function Li(e,t){if(e.type==="slot")return e.slotId===t;if(e.type==="tabs")return e.tabs.some(n=>n.slotId===t);for(const n of e.children)if(Li(n,t))return!0;return!1}function Oa(e,t){const n=Ar(e,t);if(!n)return null;const{tabsNode:r,tabIndex:s,entry:a}=n;return r.tabs.splice(s,1),r.tabs.length===0?r.activeTab=0:s<r.activeTab?r.activeTab-=1:r.activeTab>=r.tabs.length&&(r.activeTab=r.tabs.length-1),a}function oy(e,t,n){const r=Math.max(0,Math.min(n,e.tabs.length));e.tabs.splice(r,0,t),e.activeTab=r}function ly(e,t,n){const r=e.tabs.slice(),[s]=r.splice(t,1),a=Math.max(0,Math.min(n,r.length));r.splice(a,0,s),e.tabs=r,e.activeTab=a}function ec(e,t,n){const r=n==="left"||n==="right"?"horizontal":"vertical",s={type:"tabs",activeTab:0,tabs:[t]};return{type:"split",direction:r,sizes:[1,1],children:n==="left"||n==="top"?[s,e]:[e,s]}}function cy(e){if(e.type==="tabs")return{...e,tabs:[...e.tabs]};if(e.type==="split"){const t={...e,children:[...e.children],sizes:[...e.sizes]};return e.pinned&&(t.pinned=[...e.pinned]),e.collapsed&&(t.collapsed=[...e.collapsed]),t}return{...e}}function Ld(e,t,n,r){const s=cs(e,t);if(!s||Md(e,t))return;if(t.length===0){const u=cy(s),d=ec(u,n,r),v=e;delete v.tabs,delete v.activeTab,delete v.slotId,delete v.viewId,delete v.direction,delete v.sizes,delete v.pinned,delete v.collapsed,delete v.children,Object.assign(v,d);return}const a=ec(s,n,r),o=t.slice(0,-1),l=t[t.length-1],c=cs(e,o);!c||c.type!=="split"||(c.children[l]=a)}function cs(e,t){let n=e;for(const r of t){if(n.type!=="split"||r<0||r>=n.children.length)return null;n=n.children[r]}return n}function Md(e,t){if(t.length===0)return!1;const n=cs(e,t.slice(0,-1));return!n||n.type!=="split"?!1:n.fixed?.[t[t.length-1]]===!0}function fr(e){let t=!0;for(;t;)t=Od(e,null,0)}function Od(e,t,n){if(e.type==="split"){let r=!1;for(let s=0;s<e.children.length;s++)Od(e.children[s],e,s)&&(r=!0);for(let s=e.children.length-1;s>=0;s--){const a=e.children[s];a.type==="tabs"&&a.tabs.length===0&&!a.persistent&&!e.fixed?.[s]&&(e.children.splice(s,1),e.sizes.splice(s,1),e.pinned&&e.pinned.splice(s,1),e.collapsed&&e.collapsed.splice(s,1),e.fixed&&e.fixed.splice(s,1),r=!0)}if(e.children.length<=1&&t)return e.children.length===1?t.children[n]=e.children[0]:(t.children.splice(n,1),t.sizes.splice(n,1),t.pinned&&t.pinned.splice(n,1),t.collapsed&&t.collapsed.splice(n,1)),!0;if(e.children.length===1&&!t){const s=e.children[0],a=e;return delete a.direction,delete a.sizes,delete a.pinned,delete a.collapsed,delete a.children,Object.assign(a,s),!0}return r}return e.type==="tabs",!1}const In=new Map,Ws=new Set;function uy(e,t){for(const[n,r]of In.entries()){if(r.viewId!==e||r.handle!==void 0)continue;const s={slotId:n,viewId:e,label:r.label,meta:r.meta,setDirty(a){Na[n]=a},location(){return qo(Tt(),n)}};queueMicrotask(()=>{if(In.has(n)&&r.handle===void 0&&(r.handle=t.mount(r.host,s),(r.handle?.closable||n.startsWith("float:"))&&(qa[n]=!0),r.handle?.onResize)){const a=r.handle.onResize.bind(r.handle);r.resizeObserver=new ResizeObserver(o=>{for(const l of o){const c=l.contentRect;a(Math.round(c.width),Math.round(c.height))}}),r.resizeObserver.observe(r.host)}})}}sy(uy);const Na=oe({}),qa=oe({});function dy(e,t,n,r){const s=document.createElement("div");s.className="slot-host",s.dataset.slotId=e,t&&(s.setAttribute("data-sh3-view",t),s.setAttribute("data-sh3-scope",Cd(`focus:${t}`))),s.style.position="absolute",s.style.inset="0",s.style.minWidth="0",s.style.minHeight="0";let a=!1;const o={host:s,handle:void 0,viewId:t,label:n,meta:r,refcount:0,resizeObserver:void 0,cancelPendingMount:()=>{a=!0}};return queueMicrotask(()=>{if(a)return;const l=t?jd(t):void 0,c={slotId:e,viewId:t??"",label:n,meta:r,setDirty(u){Na[e]=u},location(){return qo(Tt(),e)}};if(o.handle=l?.mount(s,c),(o.handle?.closable||e.startsWith("float:"))&&(qa[e]=!0),o.handle?.onResize){const u=o.handle.onResize.bind(o.handle);o.resizeObserver=new ResizeObserver(d=>{for(const v of d){const p=v.contentRect;u(Math.round(p.width),Math.round(p.height))}}),o.resizeObserver.observe(s)}}),o}function Vo(e,t,n,r){Ws.delete(e);let s=In.get(e);return s?s.viewId!==t&&(console.warn(`[sh3] acquireSlotHost("${e}") called with viewId "${t}" but existing pooled entry has viewId "${s.viewId}". Attribute synced; view handle unchanged.`),s.viewId=t,t?(s.host.setAttribute("data-sh3-view",t),s.host.setAttribute("data-sh3-scope",Cd(`focus:${t}`))):(s.host.removeAttribute("data-sh3-view"),s.host.removeAttribute("data-sh3-scope"))):(s=dy(e,t,n,r),In.set(e,s)),s.refcount++,s.host}function Bo(e,t){const n=In.get(e);if(n){if(n.refcount--,n.refcount>0){t&&n.host.parentNode===t&&n.host.remove();return}Ws.add(e),queueMicrotask(()=>{if(!Ws.has(e))return;Ws.delete(e);const r=In.get(e);!r||r.refcount>0||(r.resizeObserver?.disconnect(),r.handle?.unmount(),r.cancelPendingMount(),r.host.remove(),In.delete(e),delete Na[e],delete qa[e])})}}function Nd(e){const t=Mi.get(e);return t||In.get(e)?.handle}function fy(e){return Na[e]??!1}function vy(e){return Mi.has(e)?!!Mi.get(e).closable:qa[e]??!1}const Mi=new Map;function qd(e){if(!e||typeof e!="object")return!1;const t=e.type;return t==="split"||t==="tabs"||t==="slot"}function hy(e){if(!e||typeof e!="object")return!1;const t=e;return qd(t.docked)&&Array.isArray(t.floats)}function py(e){return{docked:e,floats:[]}}function my(e){const t={};if(e.tree&&(t.default=e.tree),e.variants)for(const n of Object.keys(e.variants))t[n]=e.variants[n];if(!t.default)throw new Error(`LayoutPreset "${e.name}" must provide either 'tree' or 'variants.default'`);return{name:e.name,variants:t}}function Vd(e){if(Array.isArray(e))return e.map(my);if(hy(e))return[{name:"default",variants:{default:e}}];if(qd(e))return[{name:"default",variants:{default:py(e)}}];throw new Error("normalizeInitialLayout: input is not a LayoutNode, LayoutTree, or LayoutPreset[]")}function tc(e){const t=[],n=r=>{if(r.type==="slot"){t.push({slotId:r.slotId,viewId:r.viewId,label:r.viewId||r.slotId});return}if(r.type==="tabs"){for(const s of r.tabs)t.push({slotId:s.slotId,viewId:s.viewId,label:s.label,meta:s.meta});return}for(const s of r.children)n(s)};return n(e),t}function Uo(e){const t=tc(e.docked);for(const n of e.floats)t.push(...tc(n.content));return t}Pi("workspace","__shell__");const by={type:"slot",slotId:"sh3core.home",viewId:"sh3core:home"},gy=oe({docked:by,floats:[]});let Ve=V(null),Va=V("home");function _y(e){if(!e||typeof e!="object")return null;const t=e;if(t.presets&&typeof t.presets=="object"&&typeof t.activePreset=="string")return t;if(t.root&&typeof t.layoutVersion=="number"){const n={docked:t.root,floats:[]};return{layoutVersion:t.layoutVersion,activePreset:"default",presets:{default:{default:n}}}}return null}function yy(e){const t=e.presets[e.activePreset];if(!t)throw new Error(`AppLayoutBlob active preset "${e.activePreset}" not found in presets map`);return t.default}function wy(e){if(i(Ve))throw new Error(`Layout manager cannot attach app "${e.manifest.id}": app "${i(Ve).appId}" is still attached`);const t=`__sh3core__:app:${e.manifest.id}`,n=Vd(e.initialLayout);if(n.length===0)throw new Error(`App "${e.manifest.id}" normalized to zero presets`);const r={layoutVersion:e.manifest.layoutVersion,activePreset:n[0].name,presets:Object.fromEntries(n.map(c=>[c.name,{...c.variants}]))},s=lg("workspace",t),a=_y(s);(a&&a.layoutVersion!==e.manifest.layoutVersion||s&&!a)&&Pi("workspace",t);const l=Pa(t,{workspace:r}).workspace;S(Ve,{appId:e.manifest.id,proxy:l,heldSlotIds:[]},!0),Jg(l)}function ky(){if(!i(Ve))throw new Error("acquireAppSlotHolds: no app attached");if(i(Ve).heldSlotIds.length>0)return;const e=yy(i(Ve).proxy),t=Uo(e);for(const{slotId:n,viewId:r,label:s,meta:a}of t)Vo(n,r,s,a),i(Ve).heldSlotIds.push(n)}function xy(){if(!i(Ve))throw new Error("resetActivePresetToDefault: no app attached");const e=Tn(i(Ve).appId);if(!e)throw new Error(`resetActivePresetToDefault: attached app "${i(Ve).appId}" not in registry`);const t=Vd(e.initialLayout),n=i(Ve).proxy,r=n.activePreset;let s=t.find(l=>l.name===r);s||(s=t[0],n.activePreset=s.name);for(const l of i(Ve).heldSlotIds)Bo(l);i(Ve).heldSlotIds=[];const a=structuredClone(s.variants.default);n.presets[n.activePreset].default=a;const o=Uo(a);for(const{slotId:l,viewId:c,label:u,meta:d}of o)Vo(l,c,u,d),i(Ve).heldSlotIds.push(l)}function Bd(){if(i(Ve)){Zg();for(const e of i(Ve).heldSlotIds)Bo(e);S(Ve,null)}}function Ud(){S(Va,"home")}function nc(){if(!i(Ve))throw new Error("Cannot switchToApp: no app is attached");S(Va,"app")}const Ys=F(()=>{if(i(Va)==="app"&&i(Ve)){const e=i(Ve).proxy,t=e.activePreset,n=e.presets[t];if(!n)throw new Error(`AppLayoutBlob active preset "${t}" not found in presets map`);return n.default}return gy});function Tt(){return i(Ys)}function Fd(){return i(Va)}const ln={get root(){return i(Ys).docked},get tree(){return i(Ys)},get floats(){return i(Ys).floats}};let Hd=V(null),Kd=V(oe(new Set)),Gs=V(oe(new Set)),Wd=V(oe(new Set)),Yd=V(null),Gd=V(oe({}));const Sy=J_(),Oi=new Set;function Mr(){for(const e of Oi)try{e()}catch(t){console.error("[sh3] onActiveChange listener threw",t)}}function Ey(e){return Oi.add(e),()=>{Oi.delete(e)}}function Iy(){Mr()}function da(e,t){S(Hd,e,!0),S(Kd,new Set(t),!0),Mr()}function Ay(){const e=Uo(ln.tree),t=new Set;for(const n of e)n.viewId!==null&&t.add(n.viewId);S(Wd,t,!0),Mr()}function Xd(e){S(Yd,e,!0),Mr()}function us(e){S(Gd,{...e},!0),Mr()}function Jt(){return{activeAppId:i(Hd),activeAppRequiredShards:i(Kd),autostartShards:i(Gs),mountedViewIds:i(Wd),focusedViewId:i(Yd),selection:Oo(),bindings:i(Gd),platform:Sy}}function Cy(e){i(Gs).has(e)||(S(Gs,new Set([...i(Gs),e]),!0),Mr())}var Ty=T('<div class="sh3-ctx-sep svelte-1667pfa" role="separator"></div>'),Ry=T('<span class="sh3-ctx-chevron svelte-1667pfa">▸</span>'),Py=T('<span class="sh3-ctx-shortcut svelte-1667pfa"> </span>'),jy=T('<button role="menuitem"><span class="sh3-ctx-check svelte-1667pfa"> </span> <span class="sh3-ctx-label svelte-1667pfa"> </span> <!></button>'),Dy=T("<!> <!>",1),zy=T('<div class="sh3-context-menu svelte-1667pfa" role="menu" tabindex="0"></div>');function fa(e,t){re(t,!0);const n=F(()=>t.sections.flatMap(c=>c.items));let r=V(0);function s(c,u){if(i(n).length===0)return 0;let d=c;for(let v=0;v<i(n).length;v++)if(d=(d+u+i(n).length)%i(n).length,!i(n)[d].disabled)return d;return c}function a(c){if(c.key==="ArrowDown")S(r,s(i(r),1),!0),c.preventDefault();else if(c.key==="ArrowUp")S(r,s(i(r),-1),!0),c.preventDefault();else if(c.key==="Enter"){const u=i(n)[i(r)];u&&!u.disabled&&(t.onInvoke(u.id),u.submenu||t.onDismiss()),c.preventDefault()}else if(c.key==="Escape")t.onDismiss(),c.preventDefault();else if(c.key.length===1){const u=c.key.toLowerCase(),d=(i(r)+1)%i(n).length;for(let v=0;v<i(n).length;v++){const p=(d+v)%i(n).length,b=i(n)[p];if(!b.disabled&&b.label.toLowerCase().startsWith(u)){S(r,p);break}}}}function o(c){c.disabled||(t.onInvoke(c.id),c.submenu||t.onDismiss())}var l=zy();Dr(l,!0),he(l,23,()=>t.sections,c=>c.id,(c,u,d)=>{var v=Dy(),p=pe(v);{var b=_=>{var y=Ty();E(_,y)};H(p,_=>{i(d)>0&&_(b)})}var x=w(p,2);he(x,17,()=>i(u).items,_=>_.id,(_,y)=>{const k=F(()=>i(n).indexOf(i(y)));var g=jy();let m;var I=h(g),P=h(I,!0);f(I);var A=w(I,2),C=h(A,!0);f(A);var D=w(A,2);{var R=j=>{var z=Ry();E(j,z)},M=j=>{var z=Py(),B=h(z,!0);f(z),O(()=>L(B,i(y).shortcut)),E(j,z)};H(D,j=>{i(y).submenu?j(R):i(y).shortcut&&j(M,1)})}f(g),O(()=>{m=ce(g,1,"sh3-ctx-item svelte-1667pfa",null,m,{"sh3-ctx-active":i(k)===i(r),"sh3-ctx-disabled":i(y).disabled}),ne(g,"aria-disabled",i(y).disabled||void 0),L(P,i(y).checked?"✓":""),L(C,i(y).label)}),Me("pointerenter",g,()=>{i(y).disabled||S(r,i(k),!0)}),U("click",g,()=>o(i(y))),E(_,g)}),E(c,v)}),f(l),U("keydown",l,a),E(e,l),se()}le(["keydown","click"]);function Jd(e,t){re(t,!0);const n=F(()=>t.model.tiers.map(r=>({id:`tier:${r.tier}`,items:r.items.map(s=>({...s,icon:void 0}))})));fa(e,{get sections(){return i(n)},get onInvoke(){return t.onInvoke},get onDismiss(){return t.onClose}}),se()}function rc(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function Zd(e,t){return{id:e.action.id,label:Ut(e.action),shortcut:Ts(e.action,t.bindings,t.platform),group:e.action.group??"",icon:e.action.icon,checked:rc(e.action.checked),disabled:rc(e.action.disabled),submenu:e.action.submenu===!0}}function Qd(e,t,n,r){return Mo(e.scope).some(a=>Q_(a,n))?n==="app"||n==="home"||typeof n=="object"&&"element"in n?os(n,r,t):!0:!1}function $d(e,t,n){const r={element:[],focus:[],view:[],app:[],home:[]},s=new Set;for(const a of e){if(!a.action.contextItem||a.action.submenuOf!==void 0||s.has(a.action.id)||!Qd(a.action,a.ownerShardId,n,t))continue;const o=Rs(a.action.scope,t,a.ownerShardId)??n;s.add(a.action.id),r[La(o)].push(Zd(a,t))}return{tiers:Ma.map(a=>({tier:a,items:r[a]})).filter(a=>a.items.length>0)}}function Ly(e,t,n,r){const s=[],a=new Set;for(const o of e)o.action.submenuOf===n&&(a.has(o.action.id)||Qd(o.action,o.ownerShardId,r,t)&&(a.add(o.action.id),s.push(Zd(o,t))));return s}function My(e,t){if(!t)return 0;const n=e.toLowerCase(),r=t.toLowerCase();let s=0,a=0,o=0,l=0,c=-2;for(;s<n.length&&a<r.length;){if(n[s]===r[a]){const u=s===0?5:0,d=s===c+1?++l:l=1;o+=1+u+d,c=s,a++}else l=0;s++}return a===r.length?o:null}function Oy(e,t,n){const r=[];for(const a of e){if(t===""&&a.submenuOf!==void 0)continue;const o=My(a.label,t);o!==null&&r.push({...a,score:o})}const s=new Map;return n.forEach((a,o)=>s.set(a,n.length-o)),r.sort((a,o)=>{if(a.score!==o.score)return o.score-a.score;const l=s.get(a.id)??0;return(s.get(o.id)??0)-l}),r}var Ny=T('<span class="sh3-palette-badge svelte-1qdcgk6"> </span>'),qy=T('<span class="sh3-palette-shortcut svelte-1qdcgk6"> </span>'),Vy=T('<button role="option"><span class="sh3-palette-label svelte-1qdcgk6"> </span> <!> <!></button>'),By=T('<div class="sh3-palette svelte-1qdcgk6" role="dialog" aria-label="Command palette" aria-modal="true" tabindex="-1"><input class="sh3-palette-input hell-base-input svelte-1qdcgk6" placeholder="Command…"/> <div class="sh3-palette-list svelte-1qdcgk6" role="listbox"></div></div>');function Uy(e,t){re(t,!0);let n=J(t,"prefill",3,""),r=V(oe(n())),s=V(0);const a=F(()=>Oy(t.candidates,i(r),t.recency));Ae(()=>{i(s)>=i(a).length&&S(s,0)});function o(d){d.key==="ArrowDown"?(S(s,Math.min(i(s)+1,Math.max(0,i(a).length-1)),!0),d.preventDefault()):d.key==="ArrowUp"?(S(s,Math.max(i(s)-1,0),!0),d.preventDefault()):d.key==="Enter"?(i(a)[i(s)]&&(t.onInvoke(i(a)[i(s)].id),t.onClose()),d.preventDefault()):d.key==="Escape"&&(t.onClose(),d.preventDefault())}var l=By(),c=h(l);ge(c),Dr(c,!0);var u=w(c,2);he(u,23,()=>i(a),d=>d.id,(d,v,p)=>{var b=Vy();let x;var _=h(b),y=h(_,!0);f(_);var k=w(_,2);{var g=P=>{var A=Ny(),C=h(A);f(A),O(()=>L(C,`[${i(v).scopeBadge??""}]`)),E(P,A)};H(k,P=>{i(v).scopeBadge&&P(g)})}var m=w(k,2);{var I=P=>{var A=qy(),C=h(A,!0);f(A),O(()=>L(C,i(v).shortcut)),E(P,A)};H(m,P=>{i(v).shortcut&&P(I)})}f(b),O(()=>{x=ce(b,1,"sh3-palette-item svelte-1qdcgk6",null,x,{"sh3-palette-active":i(p)===i(s)}),ne(b,"aria-selected",i(p)===i(s)),L(y,i(v).label)}),Me("pointerenter",b,()=>S(s,i(p),!0)),U("click",b,()=>{t.onInvoke(i(v).id),t.onClose()}),E(d,b)}),f(u),f(l),U("keydown",l,o),Se(c,()=>i(r),d=>S(r,d)),E(e,l),se()}le(["keydown","click"]);function Fy(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function Hy(e,t,n={}){const r=[],s=new Set,a=n.filter?.submenuOf;for(const o of e){if(o.action.paletteItem===!1||Fy(o.action.disabled)||a!==void 0&&o.action.submenuOf!==a||s.has(o.action.id))continue;const l=Rs(o.action.scope,t,o.ownerShardId);l&&(s.add(o.action.id),r.push({id:o.action.id,label:Ut(o.action),shortcut:Ts(o.action,t.bindings,t.platform),scopeBadge:Ad(l),submenu:o.action.submenu===!0,submenuOf:a!==void 0?void 0:o.action.submenuOf}))}return r}let sc=!1;function Fo(e){return e?e.closest("[data-sh3-view]")?.getAttribute("data-sh3-view")??null:null}function ef(e){if(e.explicit!==void 0)return e.explicit;const t=e.event?.target;if(t instanceof Element){let n=t.closest("[data-sh3-scope]");for(;n;){const s=$_(n.getAttribute("data-sh3-scope")??"");if(s&&!(typeof s=="object"&&"element"in s&&!os(s,e.state)))return s;const a=n.parentElement;n=a?a.closest("[data-sh3-scope]"):null}const r=Fo(t);if(r)return`focus:${r}`}return e.state.activeAppId?"app":"home"}function tf(e,t){const n=rt().find(r=>r.action.id===e);if(!(!n||typeof n.action.run!="function"))try{n.action.run(t)}catch(r){console.error(`[sh3] action "${e}" threw:`,r)}}function Or(e){const t=rt().find(r=>r.action.id===e);if(!t){console.warn(`[sh3] ctx.dispatch("${e}") — no action registered with that id.`);return}const n=Jt();tf(e,{action:{id:t.action.id,label:Ut(t.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"programmatic",dispatch:Or})}function Ky(e){const t=Fo(e.target);Xd(t)}function Wy(e){queueMicrotask(()=>{const t=Fo(document.activeElement);Xd(t)})}function Yy(e){return e instanceof Element?e.closest('[data-sh3-context-menu="native"]')!==null:!1}function nf(e,t,n,r){const s=document.querySelector(".sh3-popup-host");if(!s)return;const a=document.createElement("div");a.className="sh3-popup-submenu",a.style.position="absolute",a.style.pointerEvents="auto";const l=(s.querySelector(".sh3-ctx-active")??s).getBoundingClientRect();a.style.left=`${l.right+2}px`,a.style.top=`${l.top}px`,s.appendChild(a);const c=Ly(rt(),t,e,r);Le(fa,{target:a,props:{sections:[{id:`submenu:${e}`,items:c}],onInvoke:u=>{const d=rt().find(v=>v.action.id===u);if(!(!d||typeof d.action.run!="function")){try{d.action.run({action:{id:u,label:Ut(d.action)},appId:t.activeAppId,viewId:t.focusedViewId??void 0,selection:t.selection??void 0,invokedVia:"context-menu",dispatch:Or})}catch(v){console.error(`[sh3] context-menu submenu action "${u}" threw:`,v)}n.close()}},onDismiss:()=>n.close()}})}function Gy(e){if(Yy(e.target))return;const t=rt(),n=Jt(),r=ef({event:e,state:n}),s=$d(t,n,r);if(s.tiers.length===0)return;e.preventDefault();const a=zn.popup.show(Jd,{anchor:{x:e.clientX,y:e.clientY}},{model:s,onInvoke:o=>{const l=rt().find(c=>c.action.id===o);if(l){if(l.action.submenu===!0){nf(o,n,a,r);return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:Ut(l.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:Or})}catch(c){console.error(`[sh3] context-menu action "${o}" threw:`,c)}}},onClose:()=>a.close()})}function Xy(e){const t=X_(e);if(!t)return;const n=rt(),r=Jt();ny({target:e.target,shortcut:t,state:r,entries:n,runAction:tf,dispatch:Or})&&e.preventDefault()}function rf(){sc||(sc=!0,document.addEventListener("keydown",Xy),document.addEventListener("focusin",Ky),document.addEventListener("focusout",Wy),document.addEventListener("contextmenu",Gy))}function Ho(e){const t=rt(),n=Jt(),r=ef({explicit:e.scope,state:n}),s=$d(t,n,r);if(s.tiers.length===0)return;const a=zn.popup.show(Jd,{anchor:{x:e.x,y:e.y}},{model:s,onInvoke:o=>{const l=rt().find(c=>c.action.id===o);if(l){if(l.action.submenu===!0){nf(o,n,a,r);return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:Ut(l.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:Or})}catch(c){console.error(`[sh3] context-menu action "${o}" threw:`,c)}}},onClose:()=>a.close()})}const Jy=20;let Ni=[];function Zy(e){Ni=[e,...Ni.filter(t=>t!==e)].slice(0,Jy)}function Ba(e){const t=rt(),n=Jt(),r=Hy(t,n,{filter:e?.filter}),s=zn.modal.open(Uy,{candidates:r,recency:Ni,prefill:e?.prefill??"",onInvoke:a=>{const o=rt().find(l=>l.action.id===a);if(o){if(Zy(a),o.action.submenu===!0&&typeof o.action.run!="function"){s.close(),Ba({filter:{submenuOf:a}});return}if(typeof o.action.run=="function")try{o.action.run({action:{id:a,label:Ut(o.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"palette",dispatch:Or})}catch(l){console.error(`[sh3] palette action "${a}" threw:`,l)}}},onClose:()=>s.close()},{dismissOnBackdrop:!0})}const Qy=Object.freeze(Object.defineProperty({__proto__:null,attachGlobalListeners:rf,openContextMenu:Ho,openPalette:Ba},Symbol.toStringTag,{value:"Module"}));function $y(e,t){const n={element:[],focus:[],view:[],app:[],home:[]},r=new Set;for(const s of e){if(r.has(s.action.id))continue;const a=Rs(s.action.scope,t,s.ownerShardId);if(!a)continue;r.add(s.action.id);const{shortcut:o,source:l}=Z_(s.action,t.bindings,t.platform);n[La(a)].push({id:s.action.id,label:Ut(s.action),effectiveShortcut:o,bindingSource:l,scope:a,scopeBadge:Ad(a),group:s.action.group,icon:s.action.icon,ownerShardId:s.ownerShardId,paletteItem:s.action.paletteItem!==!1,contextItem:s.action.contextItem!==!1})}return Ma.flatMap(s=>n[s])}const ew={async rebind(e,t,n){await Zl(e,t,n),Jt().activeAppId===e&&us(await mr(e))},async resetBinding(e,t){await Zl(e,t,void 0),Jt().activeAppId===e&&us(await mr(e))},async bindingsFor(e){const t=await mr(e),n={};for(const[r,s]of Object.entries(t))s!==null&&(n[r]=s);return n},openContextMenu:Ho,openPalette:Ba,listActive(){return $y(rt(),Jt())},onActiveChange(e){const t=Ey(e),n=W_(()=>{Iy()});return()=>{t(),n()}}},zn={state:Pa,modal:Dn,popup:Di,toast:Sn,float:dt,presets:t_,conflicts:V_,color:F_,actions:ew};function nr(e,t,n){return`${e}/${t}/${n}`}function tw(e,t){return`${e}/${t}/`}const nw="sh3-documents",Dt="docs",rw=2;class sw{#e=null;#t(){return this.#e||(this.#e=new Promise((t,n)=>{const r=indexedDB.open(nw,rw);r.onupgradeneeded=()=>{const s=r.result;s.objectStoreNames.contains(Dt)||s.createObjectStore(Dt)},r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)})),this.#e}async#n(t,n){const r=await this.#t();return new Promise((s,a)=>{const l=r.transaction(Dt,t).objectStore(Dt),c=n(l);c.onsuccess=()=>s(c.result),c.onerror=()=>a(c.error)})}async read(t,n,r){const s=nr(t,n,r),a=await this.#n("readonly",o=>o.get(s));return a?a.content:null}async write(t,n,r,s){const a=nr(t,n,r),o=typeof s=="string"?new Blob([s]).size:s.byteLength,l={content:s,size:o,lastModified:Date.now()};await this.#n("readwrite",c=>c.put(l,a))}async delete(t,n,r){const s=nr(t,n,r);await this.#n("readwrite",a=>a.delete(s))}async rename(t,n,r,s){const a=nr(t,n,r),o=nr(t,n,s),l=await this.#t();return new Promise((c,u)=>{let d=!1;const v=l.transaction(Dt,"readwrite"),p=v.objectStore(Dt),b=p.get(a);b.onsuccess=()=>{const x=b.result;if(!x){d=!0,v.abort(),u(new Error(`Document not found at ${r}`));return}const _=p.getKey(o);_.onsuccess=()=>{if(_.result!==void 0){d=!0,v.abort(),u(new Error(`Document already exists at ${s}`));return}const y={...x,lastModified:Date.now()};p.put(y,o),p.delete(a)},_.onerror=()=>u(_.error)},b.onerror=()=>u(b.error),v.oncomplete=()=>c(),v.onerror=()=>{d||u(v.error)},v.onabort=()=>{}})}async list(t,n){const r=tw(t,n),s=await this.#t();return new Promise((a,o)=>{const c=s.transaction(Dt,"readonly").objectStore(Dt),u=IDBKeyRange.bound(r,r+"￿",!1,!1),d=c.openCursor(u),v=[];d.onsuccess=()=>{const p=d.result;if(p){const b=p.value;v.push({path:p.key.slice(r.length),size:b.size,lastModified:b.lastModified}),p.continue()}else a(v)},d.onerror=()=>o(d.error)})}async exists(t,n,r){const s=nr(t,n,r);return await this.#n("readonly",o=>o.getKey(s))!==void 0}async listAllShards(t){const n=`${t}/`,r=await this.#t();return new Promise((s,a)=>{const l=r.transaction(Dt,"readonly").objectStore(Dt),c=IDBKeyRange.bound(n,n+"￿",!1,!1),u=l.openKeyCursor(c),d=new Set;u.onsuccess=()=>{const v=u.result;if(v){const p=v.key.slice(n.length),b=p.indexOf("/");b>=0&&d.add(p.slice(0,b)),v.continue()}else s([...d])},u.onerror=()=>a(u.error)})}async listAllDocuments(t){const n=`${t}/`,r=await this.#t();return new Promise((s,a)=>{const l=r.transaction(Dt,"readonly").objectStore(Dt),c=IDBKeyRange.bound(n,n+"￿",!1,!1),u=l.openCursor(c),d=[];u.onsuccess=()=>{const v=u.result;if(v){const p=v.key.slice(n.length),b=p.indexOf("/");if(b>=0){const x=v.value;d.push({shardId:p.slice(0,b),path:p.slice(b+1),size:x.size,lastModified:x.lastModified})}v.continue()}else s(d)},u.onerror=()=>a(u.error)})}}class aw{#e;#t;constructor(t,n){this.#e=t.replace(/\/$/,""),this.#t=n}async read(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}`,a=await fetch(s,{credentials:"include"});if(a.status===404)return null;if(!a.ok)throw new Error(`Document read failed: ${a.status}`);return(a.headers.get("content-type")??"").includes("application/octet-stream")?a.arrayBuffer():a.text()}async write(t,n,r,s){const a=`${this.#e}/api/docs/${t}/${n}/${r}`,o={...this.#n(),"Content-Type":typeof s=="string"?"text/plain":"application/octet-stream"},l=await fetch(a,{method:"PUT",headers:o,body:s,credentials:"include"});if(!l.ok)throw new Error(`Document write failed: ${l.status}`)}async delete(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}`,a=await fetch(s,{method:"DELETE",headers:this.#n(),credentials:"include"});if(!a.ok)throw new Error(`Document delete failed: ${a.status}`)}async list(t,n){const r=`${this.#e}/api/docs/${t}/${n}`,s=await fetch(r,{credentials:"include"});if(!s.ok)throw new Error(`Document list failed: ${s.status}`);return s.json()}async exists(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}`;return(await fetch(s,{method:"HEAD",credentials:"include"})).ok}async listAllShards(t){const n=`${this.#e}/api/docs/${t}/_shards`,r=await fetch(n,{credentials:"include"});if(!r.ok)throw new Error(`listAllShards failed: ${r.status}`);return r.json()}async listAllDocuments(t){const n=`${this.#e}/api/docs/${t}/_all`,r=await fetch(n,{credentials:"include"});if(!r.ok)throw new Error(`listAllDocuments failed: ${r.status}`);return r.json()}async readMeta(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}?meta=1`,a=await fetch(s,{credentials:"include"});if(!a.ok)throw new Error(`readMeta failed: ${a.status}`);const o=await a.json();return o.exists?o:null}async resolve(t,n,r,s){const a=`${this.#e}/api/docs/${t}/${n}/${r}/resolve`,o=typeof s=="string"?{choice:s}:{choice:s.origin},l=await fetch(a,{method:"POST",credentials:"include",headers:{...this.#n(),"Content-Type":"application/json"},body:JSON.stringify(o)});if(!l.ok)throw new Error(`resolve failed: ${l.status}`)}async readBranch(t,n,r,s){const a=`${this.#e}/api/docs/${t}/${n}/${r}/branch?origin=${encodeURIComponent(s)}`,o=await fetch(a,{credentials:"include"});if(o.status===404)return null;if(!o.ok)throw new Error(`readBranch failed: ${o.status}`);return o.text()}async rename(t,n,r,s){const a=`${this.#e}/api/docs/${t}/${n}/${r}/rename`,o={...this.#n(),"Content-Type":"application/json"},l=await fetch(a,{method:"POST",headers:o,body:JSON.stringify({to:s}),credentials:"include"});if(l.status===404)throw new Error(`Document not found at ${r}`);if(l.status===409)throw new Error(`Document already exists at ${s}`);if(!l.ok)throw new Error(`Document rename failed: ${l.status}`)}#n(){return this.#t?{Authorization:`Bearer ${this.#t}`}:{}}}class iw{#e=new Set;subscribe(t){return this.#e.add(t),()=>{this.#e.delete(t)}}emit(t){for(const n of this.#e)try{n(t)}catch(r){console.error("SH3: document change listener threw",r)}}}const xn=new iw,ow=1e3;function lw(e,t,n,r){const s=new Set,a=new Set;function o(u){return!r.extensions||r.extensions.length===0?!0:r.extensions.some(d=>u.endsWith(d))}function l(u,d){xn.emit({type:u,path:d,tenantId:e,shardId:t})}const c={async list(){const u=await n.list(e,t);return!r.extensions||r.extensions.length===0?u:u.filter(d=>o(d.path))},async read(u){const d=await n.read(e,t,u);return d===null?null:typeof d=="string"?d:new TextDecoder().decode(d)},async write(u,d){const v=await n.exists(e,t,u);await n.write(e,t,u,d),l(v?"update":"create",u)},async delete(u){const d=await n.exists(e,t,u);await n.delete(e,t,u),d&&l("delete",u)},async rename(u,d){if(!o(d))throw new Error(`Cannot rename to ${d}: violates handle extensions filter`);for(const v of s)if(v.path===u)throw new Error(`Cannot rename: active autosave on ${u}; flush and dispose first`);await n.rename(e,t,u,d),xn.emit({type:"rename",path:d,oldPath:u,tenantId:e,shardId:t})},async exists(u){return n.exists(e,t,u)},async status(u){if(!n.readMeta)throw new Error("Backend does not support status()");return n.readMeta(e,t,u)},async resolveConflict(u,d){if(!n.resolve)throw new Error("Backend does not support resolveConflict()");if(typeof d!="string"&&!(typeof d=="object"&&"origin"in d))throw new Error("choice must be a string or { origin } object");return n.resolve(e,t,u,d)},async readBranch(u,d){if(!n.readBranch)throw new Error("Backend does not support readBranch()");return n.readBranch(e,t,u,d)},watch(u){const d=xn.subscribe(v=>{v.tenantId===e&&v.shardId===t&&o(v.path)&&u(v)});return a.add(d),()=>{d(),a.delete(d)}},autosave(u,d){const v=new cw(c,u,d?.debounceMs??ow);return s.add(v),v},async dispose(){const u=[...s].map(d=>d.dispose());await Promise.all(u),s.clear();for(const d of a)d();a.clear()}};return c}class cw{#e;#t;#n;#a=null;#s=null;#i=!1;#r=!1;constructor(t,n,r){this.#e=t,this.#t=n,this.#n=r}get dirty(){return this.#i}get path(){return this.#t}update(t){this.#r||(this.#a=t,this.#i=!0,this.#o())}async flush(){if(this.#l(),this.#a!==null){const t=this.#a;this.#a=null,this.#i=!1,await this.#e.write(this.#t,t)}}async dispose(){this.#r||(this.#r=!0,await this.flush())}#o(){this.#l(),this.#s=setTimeout(()=>{this.#s=null,this.flush()},this.#n)}#l(){this.#s!==null&&(clearTimeout(this.#s),this.#s=null)}}const uw="local";let Ko=uw,sf=new sw;function af(){return Ko}function Xs(){return Ko}function qi(){return sf}function Js(e){Ko=e}function of(e){sf=e}const dw=Object.freeze(Object.defineProperty({__proto__:null,__setActiveScope:Js,__setDocumentBackend:of,getActiveScopeId:af,getDocumentBackend:qi,getTenantId:Xs},Symbol.toStringTag,{value:"Module"})),fw="sync:peer",vw="sync:policy";let Nr=V(null),cn=V(null),qr=V(!1),Ua="",Vi=null;function ac(e,t){Ua=e,Vi=t.auth,S(Nr,t.user,!0),S(cn,t.session,!0),S(qr,!t.session&&!t.user,!0)}async function lf(e,t){try{const n=await fetch(`${Ua}/api/auth/login`,{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:e,password:t})});if(!n.ok)return{ok:!1,error:(await n.json().catch(()=>({}))).error||"Login failed"};const r=await n.json();return S(Nr,r.user,!0),S(cn,r.session,!0),S(qr,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function hw(e,t,n){try{const r=await fetch(`${Ua}/api/auth/register`,{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:e,password:t,displayName:n})});if(!r.ok)return{ok:!1,error:(await r.json().catch(()=>({}))).error||"Registration failed"};const s=await r.json();return S(Nr,s.user,!0),S(cn,s.session,!0),S(qr,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function pw(){try{await fetch(`${Ua}/api/auth/logout`,{method:"POST",credentials:"include"})}catch{}if(Vi?.required&&!Vi.guestAllowed){window.location.reload();return}S(Nr,null),S(cn,null),S(qr,!0)}function mw(){S(Nr,{id:"local",username:"local",displayName:"Local Owner",role:"admin",createdAt:"",updatedAt:""},!0),S(cn,{token:"local",userId:"local",role:"admin",expiresAt:1/0},!0),S(qr,!1)}function bw(){return i(cn)?.token==="local"}function bt(){return i(cn)?.role==="admin"}function Bi(){return i(cn)!==null}function cf(){return i(qr)}function Cr(){return i(Nr)}function Fa(){return i(cn)?`Bearer ${i(cn).token}`:null}let Vr="";function uf(e){Vr=e}async function gw(e){const t=await fetch(`${Vr}/api/env-state/${encodeURIComponent(e)}`);return t.ok?await t.json():(console.warn(`[sh3] Failed to fetch env state for "${e}": HTTP ${t.status}`),{})}async function _w(e,t){if(!bt())throw new Error("Cannot update env state: not elevated to admin");const n=Fa(),r={"Content-Type":"application/json"};n&&(r.Authorization=n);const s=await fetch(`${Vr}/api/env-state/${encodeURIComponent(e)}`,{method:"PUT",headers:r,body:JSON.stringify(t)});if(!s.ok){const a=await s.json().catch(()=>({}));throw new Error(`Env state update failed: HTTP ${s.status} — ${a.error??"unknown"}`)}}async function Wo(e,t,n){if(!bt())throw new Error("Cannot install: not elevated to admin");const r=Fa(),s=new FormData;s.append("manifest",new Blob([JSON.stringify(e)],{type:"application/json"}),"manifest.json"),s.append("client",new Blob([t],{type:"application/javascript"}),"client.js"),n!==void 0&&s.append("server",new Blob([n],{type:"application/javascript"}),"server.js");const a={};r&&(a.Authorization=r);const o=await fetch(`${Vr}/api/packages/install`,{method:"POST",headers:a,body:s});if(!o.ok){let l={};try{l=await o.json()}catch{}return{ok:!1,error:typeof l.error=="string"?l.error:`HTTP ${o.status}`,code:typeof l.code=="string"?l.code:void 0,missing:Array.isArray(l.missing)?l.missing:void 0}}return{ok:!0}}async function df(e){if(!bt())throw new Error("Cannot uninstall: not elevated to admin");const t=Fa(),n={"Content-Type":"application/json"};t&&(n.Authorization=t);const r=await fetch(`${Vr}/api/packages/uninstall`,{method:"POST",headers:n,body:JSON.stringify({id:e})});if(!r.ok){const s=await r.json().catch(()=>({}));throw new Error(`Uninstall failed: HTTP ${r.status} — ${s.error??"unknown"}`)}}async function yw(){const e=await fetch(`${Vr}/api/packages`);return e.ok?await e.json():[]}function ww(e){return tn[e].list()}function kw(e,t){return tn[e].read(t)}function xw(e,t){tn[e].delete(t)}function Sw(e){for(const t of tn[e].list())tn[e].delete(t)}function ff(){return{list:ww,peek:kw,clear:xw,clearAll:Sw}}const vf="documents:browse",hf="documents:read",pf="documents:write";function Ew(e,t,n={canRead:!1,canWrite:!1}){const r={listDocuments:()=>t.listAllDocuments(e),listShards:()=>t.listAllShards(e),watchDocuments:s=>xn.subscribe(a=>{a.tenantId===e&&s(a)})};return n.canRead&&(r.readFrom=(s,a)=>t.read(e,s,a),r.statusFrom=async(s,a)=>t.readMeta?t.readMeta(e,s,a):null,r.readBranchFrom=async(s,a,o)=>t.readBranch?t.readBranch(e,s,a,o):null),n.canWrite&&(r.writeTo=async(s,a,o)=>{const l=await t.exists(e,s,a);await t.write(e,s,a,o),xn.emit({type:l?"update":"create",path:a,tenantId:e,shardId:s})},r.resolveConflictFrom=async(s,a,o)=>{if(!t.resolve)throw new Error("Backend does not support resolveConflict");await t.resolve(e,s,a,o),xn.emit({type:"update",path:a,tenantId:e,shardId:s})},r.renameFrom=async(s,a,o,l)=>{if(l?.newShardId!==void 0)throw new Error("Cross-shard move is not yet supported (ADR-018 amendment 2026-04-27)");await t.rename(e,s,a,o),xn.emit({type:"rename",path:o,oldPath:a,tenantId:e,shardId:s})},r.deleteFrom=async(s,a)=>{const o=await t.exists(e,s,a);await t.delete(e,s,a),o&&xn.emit({type:"delete",path:a,tenantId:e,shardId:s})}),r}const mf="keys:mint";class bf extends Error{constructor(t){super(`Shard may not mint a key with scope '${t}' — not declared in manifest.`),this.name="ScopeEscalationError"}}class gf extends Error{constructor(){super("User denied key creation."),this.name="ConsentDeniedError"}}const Ui=new Map;let es=null;function _f(e){return es=e,()=>{es===e&&(es=null)}}async function Iw(e,t){if(!es)throw new Error("No consent listener registered — the shell must mount ConsentDialog.");const n=`c_${Math.random().toString(36).slice(2)}${Date.now()}`;return new Promise(r=>{Ui.set(n,{resolve:r}),es({...t,shardId:e,requestId:n})})}function Fi(e,t){const n=Ui.get(e);n&&(Ui.delete(e),n.resolve(t))}const va=new Map,Zs=new Map,Aw=5e3;function Cw(e,t){let n=Zs.get(e);n||(n=new Set,Zs.set(e,n)),n.add(t),setTimeout(()=>{n.delete(t),n.size===0&&Zs.delete(e)},Aw)}function Tw(e,t){return Zs.get(e)?.has(t)??!1}function Yo(e,t){const n=va.get(e)??new Set;return n.add(t),va.set(e,n),()=>{n.delete(t)}}function yf(e,t){if(!e||Tw(e,t))return;Cw(e,t);const n=va.get(e);if(n)for(const s of n)s(t);const r=va.get("*");if(r)for(const s of r)s(t)}function Rw(){if(typeof EventSource>"u")return()=>{};const e=new EventSource("/api/keys/events",{withCredentials:!0});return e.onmessage=t=>{try{const n=JSON.parse(t.data);yf(n.shardId,n.id)}catch{}},()=>e.close()}function Pw(e){const{shardId:t,shardPermissions:n}=e,r=s=>{for(const a of s)if(!n.includes(a)&&!n.includes("admin:*"))throw new bf(a)};return{async mint(s){if(r(s.scopes),!await Iw(t,s))throw new gf;const o=await fetch("/api/keys/consent",{method:"POST",credentials:"include",headers:{"content-type":"application/json"},body:JSON.stringify({shardId:t,...s})});if(!o.ok)throw new Error(`Consent ticket failed: ${o.status}`);const{ticket:l}=await o.json(),c=await fetch("/api/keys",{method:"POST",credentials:"include",headers:{"content-type":"application/json"},body:JSON.stringify({ticket:l})});if(!c.ok)throw new Error(`Mint failed: ${c.status}`);return c.json()},async list(){const s=await fetch("/api/keys",{credentials:"include"});if(!s.ok)throw new Error(`List failed: ${s.status}`);return(await s.json()).filter(o=>o.mintedByShardId===t)},async revoke(s){const a=await fetch(`/api/keys/${encodeURIComponent(s)}`,{method:"DELETE",credentials:"include"});if(!a.ok&&a.status!==404)throw new Error(`Revoke failed: ${a.status}`);yf(t,s)}}}const un=oe(new Map),br=new Map,Tr=oe(new Map),ha=oe(new Map);function Go(e){const t=e.manifest.id;un.has(t)&&Tr.has(t)&&Ha(t),un.set(t,e),ha.delete(t)}async function wf(e,t){const n=un.get(e);if(!n)throw new Error(`Cannot activate shard "${e}": not registered`);if(br.has(e))return;const r={shard:n,ctx:void 0,viewIds:new Set,verbNames:new Set,cleanupFns:[]},s=oe({proxy:null,defaults:null}),a={register(l,c){const u=gd(l,c);return r.cleanupFns.push(async()=>u()),u},list(l){return za(l)},listPoints(){return n_()},onChange(l,c){const u=_d(l,c);return r.cleanupFns.push(async()=>u()),u}},o={state:l=>zn.state(e,l),registerView:(l,c)=>{ay(l,c),r.viewIds.add(l)},registerVerb:l=>{const c=e==="shell"?l.name:`${e}:${l.name}`;iy(c,{...l,name:c}),r.verbNames.add(c)},documents:l=>{const c=lw(Xs(),e,qi(),l);return r.cleanupFns.push(()=>c.dispose()),c},env(l){return s.proxy?(console.warn(`[sh3] Shard "${e}" called ctx.env() more than once; extra calls are ignored.`),s.proxy):(s.defaults=l,s.proxy={...l},s.proxy)},async envUpdate(l){if(!s.proxy||!s.defaults)throw new Error(`Shard "${e}" called envUpdate() without declaring env state`);const c=Yn(s.proxy);Object.assign(s.proxy,l);try{const u=Yn(s.proxy);await _w(e,u)}catch(u){throw Object.assign(s.proxy,c),u}},get isAdmin(){return bt()},get tenantId(){return Xs()},zones:n.manifest.permissions?.includes(Co)?ff():void 0,browse:n.manifest.permissions?.includes(vf)?Ew(Xs(),qi(),{canRead:n.manifest.permissions.includes(hf),canWrite:n.manifest.permissions.includes(pf)}):void 0,keys:n.manifest.permissions?.includes(mf)?Pw({shardId:e,shardPermissions:n.manifest.permissions??[]}):void 0,contributions:a,actions:{register(l){const c=K_(l,e);return r.cleanupFns.push(async()=>c()),c},selection:Td(e),openContextMenu(l){Ho(l)},openPalette(l){Ba(l)}}};if(r.ctx=o,n.onKeyRevoked){const l=Yo(e,async c=>{try{await n.onKeyRevoked(c)}catch(u){console.error(`[sh3] onKeyRevoked failed in "${e}":`,u)}});r.cleanupFns.push(async()=>l())}br.set(e,r),Tr.set(e,n);try{await n.activate(o);for(const l of n.manifest.views)if(!r.viewIds.has(l.id))throw new Error(`Shard "${e}" declared view "${l.id}" in its manifest but registered no factory for it.`);if(s.proxy&&s.defaults)try{const l=await gw(e),c=Object.assign({},s.defaults,l);Object.assign(s.proxy,c)}catch(l){console.warn(`[sh3] Failed to hydrate env state for shard "${e}":`,l instanceof Error?l.message:l)}}catch(l){for(const c of r.cleanupFns)try{c()}catch{}for(const c of r.verbNames)zd(c);for(const c of r.viewIds)Dd(c);throw Rd(e),br.delete(e),Tr.delete(e),ha.set(e,{id:e,error:l,phase:t?.phase??"launch",timestamp:Date.now()}),console.error(`[sh3] Shard "${e}" failed to activate:`,l),l}ha.delete(e),n.autostart?.(o)}function Ha(e){const t=br.get(e);if(t){t.shard.deactivate?.();for(const n of t.cleanupFns)n();for(const n of t.verbNames)zd(n);for(const n of t.viewIds)Dd(n);Rd(e),br.delete(e),Tr.delete(e)}}function jw(e){return br.get(e)?.ctx}function ic(){const e=[];for(const t of Tr.values())for(const n of t.manifest.views)n.standalone&&e.push({shardId:t.manifest.id,viewId:n.id,label:n.label});return e}const Jn=oe({activeProjectId:null});function kf(e){if(Jn.activeProjectId===e)return;const t=ot.id;Jn.activeProjectId=e,Ir.id=null,t&&yr(()=>Promise.resolve().then(()=>zw),void 0).then(n=>n.unloadApp(t))}const xf=Pa("__sh3core__:last-app",{user:{id:null}});function Sf(){return xf.user.id}function ds(e){xf.user.id=e}function Ef(){ds(null)}const Hi=new Map;function Dw(){return Jn.activeProjectId??af()}function Os(e,t){let n=Hi.get(e);if(!n){const r=Tn(e),s=Dw();n={scopeId:s,state:a=>Pa(`__app__:${e}:scope:${s}`,a),zones:r?.manifest.permissions?.includes(Co)?ff():void 0},Hi.set(e,n)}return n}async function bn(e){const t=Tn(e);if(!t)throw new Error(`Cannot launch app "${e}": not registered`);if(ot.id&&ot.id!==e)Xo(ot.id);else if(ot.id===e){for(const n of t.manifest.requiredShards){const r=un.get(n),s=jw(n);r&&s&&r.resume?.(s)}t.resume?.(Os(e)),nc(),t.onAppReady?.(Os(e)),ds(e),Ir.id=e,da(e,new Set(t.manifest.requiredShards??[])),mr(e).then(us);return}for(const n of t.manifest.requiredShards)if(!un.has(n))throw new Error(`App "${e}" requires shard "${n}" which is not registered`);wy(t);try{for(const n of t.manifest.requiredShards)await wf(n,{phase:"launch"})}catch(n){Bd();try{Sn.notify(`Couldn't launch "${t.manifest.label??e}": ${n instanceof Error?n.message:String(n)}`,{level:"error",duration:6e3})}catch{}throw n}ky(),t.activate?.(Os(e)),ot.id=e,da(e,new Set(t.manifest.requiredShards??[])),mr(e).then(us),nc(),t.onAppReady?.(Os(e)),ds(e),Ir.id=e}function Xo(e){if(ot.id!==e)return;const t=Tn(e);if(t){t.deactivate?.(),Ud(),Bd();for(const n of t.manifest.requiredShards){const r=un.get(n);r&&(r.autostart||Ha(n))}ot.id=null,da(null,new Set),ry(),ud(),mr("sh3.home").then(us),Hi.delete(e)}}function Ka(e){Cn.has(e)&&(ot.id===e&&(Xo(e),ds(null)),Cn.delete(e))}async function Ps(){const e=ot.id?Tn(ot.id):null;if(e){for(const t of e.manifest.requiredShards){const n=un.get(t);if(n?.suspend&&await n.suspend()===!1)return!1}if(e.suspend&&await e.suspend()===!1)return!1}return ud(),Ud(),da(null,new Set),ds(null),!0}const zw=Object.freeze(Object.defineProperty({__proto__:null,clearLastApp:Ef,launchApp:bn,readLastApp:Sf,returnToHome:Ps,unloadApp:Xo,unregisterApp:Ka},Symbol.toStringTag,{value:"Module"}));function If(){return{root:Tt(),source:Fd()}}function Lw(e){const t=Tt().docked,n=Zo(t);if(!n)throw new Error("spliceIntoActiveLayout: no tabs group found in the active layout; phase 8 only supports splicing into an existing tab group.");n.tabs.push(e),n.activeTab=n.tabs.length-1}function Mw(e){const t=Tt();return Ya(t.docked,n=>n.slotId===e)?!0:Af(t,n=>n.slotId===e)}function Wa(e){const t=Tt();return Ya(t.docked,n=>n.viewId===e)?!0:Af(t,n=>n.viewId===e)}function Ya(e,t){if(e.type==="tabs"){const n=e.tabs.findIndex(t);return n>=0?(e.activeTab=n,!0):!1}if(e.type==="split"){for(const n of e.children)if(Ya(n,t))return!0}return!1}function Af(e,t){for(const n of e.floats)if(Ya(n.content,t))return dt.focus(n.id),!0;return!1}function Ow(e,t){return Cf(e,t,!0)}function Nw(e,t){return Cf(e,t,!1)}function Cf(e,t,n){const r=Tt().docked,s=cs(r,e);if(!s||s.type!=="split")return!1;const a=s;return t<0||t>=a.children.length?!1:(a.collapsed||(a.collapsed=a.children.map(()=>!1)),a.collapsed[t]=n,!0)}async function Jo(e){const t=Tt(),n=t.docked;if(!Ar(n,e))return qw(t,e);const a=Nd(e)?.closable;return!a||typeof a=="object"&&(!await a.canClose()||!Ar(n,e))?!1:(Oa(n,e),fr(n),!0)}async function qw(e,t){for(const n of e.floats){if(!Ar(n.content,t))continue;const a=Nd(t)?.closable;if(typeof a=="object"&&(!await a.canClose()||!Ar(n.content,t)))return!1;Oa(n.content,t);const o=n.content.type==="tabs"?n.content:null;return(!o||o.tabs.length===0)&&dt.close(n.id),!0}return!1}function Tf(e){const t=Tt(),n=Ar(t.docked,e);if(!n)return null;const r=n.entry,s=r.viewId;if(!s)return null;const a=r.label,o=r.meta;return Oa(t.docked,e),fr(t.docked),dt.open(s,{title:a,meta:o})}function Rf(e){const n=Tt().floats.find(l=>l.id===e);if(!n)return!1;const r=n.content,s=r.type==="tabs"?r:null;if(!s||s.tabs.length===0)return dt.close(e),!1;const a=s.tabs[s.activeTab??0]??s.tabs[0],o=Qo({slotId:a.slotId,viewId:a.viewId,label:a.label,meta:a.meta});return o&&dt.close(e),o}function Zo(e){if(e.type==="tabs")return e;if(e.type==="split")for(const t of e.children){const n=Zo(t);if(n)return n}return null}function Pf(e,t=[]){if(e.type==="slot")return e.viewId!==null?t:null;if(e.type==="split")for(let n=0;n<e.children.length;n++){const r=Pf(e.children[n],[...t,n]);if(r)return r}return null}function Qo(e){const t=Tt().docked;if(Wa(e.viewId??""))return!0;const n=Zo(t);if(n)return n.tabs.push(e),n.activeTab=n.tabs.length-1,!0;const r=Pf(t);return r?(Ld(t,r,e,"right"),!0):!1}function jf(e){return qo(Tt(),e)}class pt extends Error{constructor(t,n){super(`Registry validation error at ${t}: ${n}`),this.name="RegistryValidationError",this.path=t}}function Df(e){if(!e||typeof e!="object"||Array.isArray(e))throw new pt("$","expected an object");const t=e;if(t.version!==1)throw new pt("$.version",`expected 1, got ${JSON.stringify(t.version)}`);if(!Array.isArray(t.packages))throw new pt("$.packages","expected an array");return{version:1,packages:t.packages.map((r,s)=>Vw(r,`$.packages[${s}]`))}}function Vw(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new pt(t,"expected an object");const n=e;Ht(n,"id",t),Fw(n,"type",["shard","app","combo"],t),Ht(n,"label",t),Ht(n,"description",t);const r=`${t}.author`;if(!n.author||typeof n.author!="object"||Array.isArray(n.author))throw new pt(r,"expected an object");const s=n.author;if(typeof s.name!="string"||s.name.length===0)throw new pt(`${r}.name`,"expected a non-empty string");if(!Array.isArray(n.versions)||n.versions.length===0)throw new pt(`${t}.versions`,"expected a non-empty array");const a=n.versions.map((o,l)=>Bw(o,`${t}.versions[${l}]`));return{id:n.id,type:n.type,label:n.label,description:n.description,author:{name:s.name},icon:typeof n.icon=="string"?n.icon:void 0,versions:a}}function Bw(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new pt(t,"expected an object");const n=e;Ht(n,"version",t),Ht(n,"contractVersion",t);const r="bundleUrl"in n&&n.bundleUrl!==void 0,s="integrity"in n&&n.integrity!==void 0;if(r&&Ht(n,"bundleUrl",t),s&&Ht(n,"integrity",t),r!==s)throw new pt(t,"bundleUrl and integrity must be provided together");const a="serverBundleUrl"in n&&n.serverBundleUrl!==void 0;if(a&&Ht(n,"serverBundleUrl",t),"serverIntegrity"in n&&n.serverIntegrity!==void 0&&Ht(n,"serverIntegrity",t),!r&&!a)throw new pt(t,"expected at least one of bundleUrl+integrity or serverBundleUrl");let o;if(n.requires!==void 0){if(!Array.isArray(n.requires))throw new pt(`${t}.requires`,"expected an array");o=n.requires.map((l,c)=>Uw(l,`${t}.requires[${c}]`))}return{version:n.version,contractVersion:n.contractVersion,bundleUrl:typeof n.bundleUrl=="string"?n.bundleUrl:void 0,integrity:typeof n.integrity=="string"?n.integrity:void 0,serverBundleUrl:typeof n.serverBundleUrl=="string"?n.serverBundleUrl:void 0,serverIntegrity:typeof n.serverIntegrity=="string"?n.serverIntegrity:void 0,requires:o}}function Uw(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new pt(t,"expected an object");const n=e;return Ht(n,"id",t),Ht(n,"versionRange",t),{id:n.id,versionRange:n.versionRange}}function Ht(e,t,n){const r=e[t];if(typeof r!="string"||r.length===0)throw new pt(`${n}.${t}`,"expected a non-empty string")}function Fw(e,t,n,r){if(!n.includes(e[t]))throw new pt(`${r}.${t}`,`expected one of: ${n.join(", ")}`)}const oc=["sha256","sha384","sha512"];function Hw(e){const t=e.indexOf("-");if(t===-1)throw new Error(`Invalid SRI format: ${e}`);const n=e.slice(0,t),r=e.slice(t+1);if(!oc.includes(n))throw new Error(`Unsupported SRI algorithm: ${n}. Supported: ${oc.join(", ")}`);if(!r)throw new Error(`Empty hash in SRI: ${e}`);return{algorithm:n,hash:r}}function Kw(e){return`SHA-${e.slice(3)}`}function Ww(e){const t=new Uint8Array(e);let n="";for(let r=0;r<t.length;r++)n+=String.fromCharCode(t[r]);return btoa(n)}async function $o(e,t){const{algorithm:n,hash:r}=Hw(t),s=Kw(n),a=await crypto.subtle.digest(s,e),o=Ww(a);if(o!==r)throw new Error(`Integrity check failed for ${n}. Expected: ${r}, got: ${o}`)}async function zf(e){const t=new Set,n=[];for(const r of e){let s;try{const o=await fetch(r);if(!o.ok){console.warn(`[sh3] Registry fetch failed for ${r}: HTTP ${o.status}`);continue}s=await o.json()}catch(o){console.warn(`[sh3] Registry ${r}: ${o instanceof Error?o.message:String(o)}`);continue}let a;try{a=Df(s)}catch(o){console.warn(`[sh3] Registry ${r} failed validation: ${o instanceof Error?o.message:String(o)}`);continue}for(const o of a.packages)t.has(o.id)||(t.add(o.id),n.push({entry:o,latest:o.versions[0],sourceRegistry:r}))}return n}async function Ga(e,t){if(!e.bundleUrl||!e.integrity)throw new Error("fetchBundle called on a version with no client bundle");let n=e.bundleUrl;t&&!/^https?:\/\//i.test(n)&&(n=new URL(n,t).href);const r=await fetch(n);if(!r.ok)throw new Error(`Bundle fetch failed: HTTP ${r.status} ${r.statusText} from ${n}`);const s=await r.arrayBuffer();return await $o(s,e.integrity),s}async function el(e,t){if(!e.serverBundleUrl)throw new Error("fetchServerBundle called on a version with no serverBundleUrl");let n=e.serverBundleUrl;t&&!/^https?:\/\//i.test(n)&&(n=new URL(n,t).href);const r=await fetch(n);if(!r.ok)throw new Error(`Server bundle fetch failed: HTTP ${r.status} ${r.statusText} from ${n}`);const s=await r.arrayBuffer();return e.serverIntegrity?await $o(s,e.serverIntegrity):console.warn(`[sh3] Server bundle at ${n} has no serverIntegrity declared — skipping SRI check. This will become an error once the formal registry spec (ADR-015) lands.`),s}function Xa(e,t){return{id:e.entry.id,type:e.entry.type,version:t.version,contractVersion:t.contractVersion,sourceRegistry:e.sourceRegistry,integrity:t.integrity,requires:t.requires,hasServerBundle:!!t.serverBundleUrl,serverIntegrity:t.serverIntegrity}}const fn="0.13.3",tl="sh3:user:__sh3core__:theme";let fs=[];function Yw(e){const t=Object.keys(e);for(const n of fs)t.includes(n)||document.documentElement.style.removeProperty(`--${n}`);for(const[n,r]of Object.entries(e))document.documentElement.style.setProperty(`--${n}`,r);fs=t;try{localStorage.setItem(tl,JSON.stringify(e))}catch{}}function Gw(){for(const e of fs)document.documentElement.style.removeProperty(`--${e}`);fs=[];try{localStorage.removeItem(tl)}catch{}}function Lf(){try{const e=localStorage.getItem(tl);if(!e)return{};const t=JSON.parse(e);return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{}}catch{return{}}}function Xw(){const e=Lf();if(Object.keys(e).length!==0){for(const[t,n]of Object.entries(e))document.documentElement.style.setProperty(`--${t}`,n);fs=Object.keys(e)}}const Zn="/assets/icons-2eVU8BA9.svg",Mf=Symbol("sh3.icon-sprite");function Jw(e){ro(Mf,e)}function Of(){return no(Mf)}var Zw=_o('<svg class="sh3-btn__spinner svelte-t4hi97" aria-hidden="true" viewBox="0 0 16 16"><circle cx="8" cy="8" r="6" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-dasharray="30 10"></circle></svg>'),Qw=_o('<svg class="sh3-btn__icon svelte-t4hi97" aria-hidden="true"><use></use></svg>'),$w=T('<span class="sh3-btn__label svelte-t4hi97"><!></span>'),e1=T("<button><!> <!></button>");function t1(e,t){re(t,!0);let n=J(t,"variant",3,"default"),r=J(t,"disabled",3,!1),s=J(t,"type",3,"button");const a=Of();function o(m){return m.includes("/")||m.endsWith(".svg")}const l=F(()=>t.icon?o(t.icon)?t.icon:`${t.sprite??a??Zn}#${t.icon}`:void 0);let c=V(!1);const u=F(()=>t.loading??i(c)),d=F(()=>n()==="icon"||!!t.icon&&!t.children);async function v(m){if(!t.onclick)return;const I=t.onclick(m);if(I&&typeof I.then=="function"){S(c,!0);try{await I}finally{S(c,!1)}}}var p=e1();let b;var x=h(p);{var _=m=>{var I=Zw();E(m,I)},y=m=>{var I=Qw(),P=h(I);f(I),O(()=>ne(P,"href",i(l))),E(m,I)};H(x,m=>{i(u)?m(_):i(l)&&m(y,1)})}var k=w(x,2);{var g=m=>{var I=$w(),P=h(I);en(P,()=>t.children),f(I),E(m,I)};H(k,m=>{t.children&&m(g)})}f(p),O(()=>{ne(p,"type",s()),b=ce(p,1,`sh3-btn sh3-btn--${n()??""}`,"svelte-t4hi97",b,{"sh3-btn--icon-only":i(d)}),p.disabled=r()||i(u),ne(p,"aria-busy",i(u)||void 0),ne(p,"title",t.title),ne(p,"aria-label",t.ariaLabel??(i(d)?t.title:void 0))}),U("click",p,v),E(e,p),se()}le(["click"]);var n1=T('<span class="sh3-collapsible__title svelte-lvydsb"> </span>'),r1=T('<div class="sh3-collapsible__body svelte-lvydsb"><!></div>'),s1=T('<div><button class="sh3-collapsible__head svelte-lvydsb" type="button"><svg class="sh3-collapsible__caret svelte-lvydsb" aria-hidden="true" viewBox="0 0 16 16"><path d="M5 3l6 5-6 5" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg> <!></button> <!></div>');function a1(e,t){re(t,!0);let n=J(t,"open",15,!1);function r(){n(!n()),t.onopenchange?.(n())}var s=s1();let a;var o=h(s),l=w(h(o),2);{var c=p=>{var b=Xe(),x=pe(b);en(x,()=>t.header),E(p,b)},u=p=>{var b=n1(),x=h(b,!0);f(b),O(()=>L(x,t.title)),E(p,b)};H(l,p=>{t.header?p(c):t.title&&p(u,1)})}f(o);var d=w(o,2);{var v=p=>{var b=r1(),x=h(b);en(x,()=>t.children),f(b),E(p,b)};H(d,p=>{n()&&p(v)})}f(s),O(()=>{a=ce(s,1,"sh3-collapsible svelte-lvydsb",null,a,{"sh3-collapsible--open":n()}),ne(o,"aria-expanded",n())}),U("click",o,r),E(e,s),se()}le(["click"]);var i1=T('<span aria-hidden="true">*</span>'),o1=T('<span class="sh3-field__label svelte-m4dkl"> <!></span>'),l1=T('<span class="sh3-field__affix svelte-m4dkl"><!></span>'),c1=T('<span class="sh3-field__affix svelte-m4dkl"><!></span>'),u1=T("<span> </span>"),d1=T('<label><!> <span class="sh3-field__row svelte-m4dkl"><!> <input class="sh3-field__input svelte-m4dkl"/> <!></span> <!></label>');function f1(e,t){re(t,!0);let n=J(t,"value",15,""),r=J(t,"type",3,"text"),s=J(t,"disabled",3,!1),a=J(t,"invalid",3,!1),o=J(t,"size",3,"md"),l=J(t,"required",3,!1);const c=F(()=>a()&&!!t.error),u=F(()=>i(c)?t.error:t.helper);var d=d1();let v;var p=h(d);{var b=A=>{var C=o1(),D=h(C,!0),R=w(D);{var M=j=>{var z=i1();E(j,z)};H(R,j=>{l()&&j(M)})}f(C),O(()=>L(D,t.label)),E(A,C)};H(p,A=>{t.label&&A(b)})}var x=w(p,2),_=h(x);{var y=A=>{var C=l1(),D=h(C);en(D,()=>t.prefix),f(C),E(A,C)};H(_,A=>{t.prefix&&A(y)})}var k=w(_,2);ge(k);var g=w(k,2);{var m=A=>{var C=c1(),D=h(C);en(D,()=>t.suffix),f(C),E(A,C)};H(g,A=>{t.suffix&&A(m)})}f(x);var I=w(x,2);{var P=A=>{var C=u1();let D;var R=h(C,!0);f(C),O(()=>{D=ce(C,1,"sh3-field__helper svelte-m4dkl",null,D,{"sh3-field__helper--error":i(c)}),L(R,i(u))}),E(A,C)};H(I,A=>{i(u)&&A(P)})}f(d),O(()=>{v=ce(d,1,"sh3-field svelte-m4dkl",null,v,{"sh3-field--invalid":a(),"sh3-field--sm":o()==="sm"}),ne(k,"type",r()),ne(k,"placeholder",t.placeholder),k.disabled=s(),k.required=l(),ne(k,"autocomplete",t.autocomplete),ne(k,"aria-invalid",a()||void 0)}),U("input",k,()=>t.oninput?.(n())),Me("blur",k,()=>t.onchange?.(n())),Se(k,n),E(e,d),se()}le(["input"]);var v1=T('<span aria-hidden="true">*</span>'),h1=T('<span class="sh3-textarea__label svelte-668c6r"> <!></span>'),p1=T("<span> </span>"),m1=T('<label><!> <textarea class="sh3-textarea__input svelte-668c6r"></textarea> <!></label>');function b1(e,t){re(t,!0);let n=J(t,"value",15,""),r=J(t,"disabled",3,!1),s=J(t,"invalid",3,!1),a=J(t,"size",3,"md"),o=J(t,"required",3,!1),l=J(t,"rows",3,3),c=J(t,"resize",3,"vertical");const u=F(()=>s()&&!!t.error),d=F(()=>i(u)?t.error:t.helper);var v=m1();let p;var b=h(v);{var x=m=>{var I=h1(),P=h(I,!0),A=w(P);{var C=D=>{var R=v1();E(D,R)};H(A,D=>{o()&&D(C)})}f(I),O(()=>L(P,t.label)),E(m,I)};H(b,m=>{t.label&&m(x)})}var _=w(b,2);fo(_);let y;var k=w(_,2);{var g=m=>{var I=p1();let P;var A=h(I,!0);f(I),O(()=>{P=ce(I,1,"sh3-textarea__helper svelte-668c6r",null,P,{"sh3-textarea__helper--error":i(u)}),L(A,i(d))}),E(m,I)};H(k,m=>{i(d)&&m(g)})}f(v),O(()=>{p=ce(v,1,"sh3-textarea svelte-668c6r",null,p,{"sh3-textarea--invalid":s(),"sh3-textarea--sm":a()==="sm"}),ne(_,"placeholder",t.placeholder),_.disabled=r(),_.required=o(),ne(_,"rows",l()),ne(_,"aria-invalid",s()||void 0),y=Ye(_,"",y,{resize:c()})}),U("input",_,()=>t.oninput?.(n())),Me("blur",_,()=>t.onchange?.(n())),Se(_,n),E(e,v),se()}le(["input"]);function g1(e,t,n){let r=e;return t!==void 0&&r<t&&(r=t),n!==void 0&&r>n&&(r=n),r}function _1(e,t){const n=t.min??0,r=Math.round((e-n)/t.step);return n+r*t.step}var y1=T('<span class="sh3-num__label svelte-1qa0x3m"> </span>'),w1=T('<span class="sh3-num__affix svelte-1qa0x3m"><!></span>'),k1=T('<span class="sh3-num__affix svelte-1qa0x3m"><!></span>'),x1=T('<label><!> <span class="sh3-num__row svelte-1qa0x3m"><!> <input class="sh3-num__input svelte-1qa0x3m" type="number"/> <!> <span class="sh3-num__steppers svelte-1qa0x3m"><button type="button" aria-label="Increase" class="svelte-1qa0x3m">▲</button> <button type="button" aria-label="Decrease" class="svelte-1qa0x3m">▼</button></span></span></label>');function S1(e,t){re(t,!0);let n=J(t,"value",15,0),r=J(t,"step",3,1),s=J(t,"disabled",3,!1),a=J(t,"invalid",3,!1),o=J(t,"size",3,"md");function l(j){if(Number.isNaN(j))return;let z=g1(_1(j,{min:t.min,step:r()}),t.min,t.max);t.precision!==void 0&&(z=Number(z.toFixed(t.precision))),n(z)}function c(j){l(n()+j*r()),t.oninput?.(n())}let u=null,d=null,v=!1;function p(j){s()||(v=!0,c(j),u=setTimeout(()=>{let z=0;d=setInterval(()=>{c(j),z+=60,z>1500&&d&&(clearInterval(d),d=setInterval(()=>c(j),20))},60)},350))}function b(){u&&(clearTimeout(u),u=null),d&&(clearInterval(d),d=null),v&&(v=!1,t.onchange?.(n()))}var x=x1();let _;var y=h(x);{var k=j=>{var z=y1(),B=h(z,!0);f(z),O(()=>L(B,t.label)),E(j,z)};H(y,j=>{t.label&&j(k)})}var g=w(y,2),m=h(g);{var I=j=>{var z=w1(),B=h(z);en(B,()=>t.prefix),f(z),E(j,z)};H(m,j=>{t.prefix&&j(I)})}var P=w(m,2);ge(P);var A=w(P,2);{var C=j=>{var z=k1(),B=h(z);en(B,()=>t.suffix),f(z),E(j,z)};H(A,j=>{t.suffix&&j(C)})}var D=w(A,2),R=h(D),M=w(R,2);f(D),f(g),f(x),O(()=>{_=ce(x,1,"sh3-num svelte-1qa0x3m",null,_,{"sh3-num--invalid":a(),"sh3-num--sm":o()==="sm"}),ne(P,"min",t.min),ne(P,"max",t.max),ne(P,"step",r()),P.disabled=s(),ne(P,"aria-invalid",a()||void 0),as(P,n()),R.disabled=s(),M.disabled=s()}),U("input",P,j=>{const z=j.currentTarget.valueAsNumber;Number.isNaN(z)||(n(z),t.oninput?.(z))}),Me("blur",P,()=>{l(n()),t.onchange?.(n())}),U("pointerdown",R,()=>p(1)),U("pointerup",R,b),Me("pointerleave",R,b),U("pointerdown",M,()=>p(-1)),U("pointerup",M,b),Me("pointerleave",M,b),E(e,x),se()}le(["input","pointerdown","pointerup"]);function Ja(e){return e.filter(t=>!t.disabled)}function E1(e,t){const n=Ja(e);if(n.length===0)return t;const r=n.findIndex(a=>a.value===t);return n[(r+1+n.length)%n.length].value}function I1(e,t){const n=Ja(e);if(n.length===0)return t;const r=n.findIndex(a=>a.value===t);return n[(r-1+n.length)%n.length].value}function A1(e){return Ja(e)[0]?.value}function C1(e){const t=Ja(e);return t[t.length-1]?.value}var T1=T('<button type="button" role="radio"> </button>'),R1=T('<div role="radiogroup" tabindex="-1"></div>');function P1(e,t){re(t,!0);let n=J(t,"value",31,()=>oe(t.options[0]?.value??"")),r=J(t,"size",3,"md"),s=J(t,"disabled",3,!1);function a(u){n(u),t.onchange?.(u)}function o(u){if(s())return;let d;switch(u.key){case"ArrowRight":case"ArrowDown":d=E1(t.options,n());break;case"ArrowLeft":case"ArrowUp":d=I1(t.options,n());break;case"Home":d=A1(t.options);break;case"End":d=C1(t.options);break;default:return}u.preventDefault(),d!==void 0&&a(d)}var l=R1();let c;he(l,21,()=>t.options,Bt,(u,d)=>{var v=T1();let p;var b=h(v,!0);f(v),O(()=>{ne(v,"aria-checked",n()===i(d).value),ne(v,"tabindex",n()===i(d).value?0:-1),v.disabled=s()||i(d).disabled,p=ce(v,1,"svelte-17xsko9",null,p,{"sh3-seg__btn--active":n()===i(d).value}),L(b,i(d).label)}),U("click",v,()=>{!i(d).disabled&&!s()&&a(i(d).value)}),E(u,v)}),f(l),O(()=>c=ce(l,1,"sh3-seg svelte-17xsko9",null,c,{"sh3-seg--sm":r()==="sm"})),U("keydown",l,o),E(e,l),se()}le(["keydown","click"]);function j1(e,t){return e===t?"":t}function D1(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var z1=T('<button type="button"><!></button>'),L1=T('<div role="group"></div>');function M1(e,t){re(t,!0);let n=J(t,"multiple",3,!1),r=J(t,"value",31,()=>oe(n()?[]:t.options[0]?.value??"")),s=J(t,"disabled",3,!1),a=J(t,"size",3,"md");function o(d){return n()&&Array.isArray(r())?r().includes(d):r()===d}function l(d){if(!s()){if(n()){const v=Array.isArray(r())?r():[];r(D1(v,d))}else r(j1(typeof r()=="string"?r():"",d));t.onchange?.(r())}}var c=L1();let u;he(c,21,()=>t.options,Bt,(d,v)=>{var p=z1();let b;var x=h(p);en(x,()=>i(v).icon),f(p),O((_,y)=>{ne(p,"title",i(v).tooltip),ne(p,"aria-label",i(v).tooltip),ne(p,"aria-pressed",_),p.disabled=s(),b=ce(p,1,"svelte-13knxr5",null,b,y)},[()=>o(i(v).value),()=>({"sh3-itg__btn--active":o(i(v).value)})]),U("click",p,()=>l(i(v).value)),E(d,p)}),f(c),O(()=>u=ce(c,1,"sh3-itg svelte-13knxr5",null,u,{"sh3-itg--sm":a()==="sm"})),E(e,c),se()}le(["click"]);function pa(e,t,n){return n===t?0:(e-t)/(n-t)*100}var O1=T('<span class="sh3-slider__tick svelte-13va6lu"></span>'),N1=T('<output class="sh3-slider__value svelte-13va6lu"> </output>'),q1=T('<div><div class="sh3-slider__track svelte-13va6lu"><div class="sh3-slider__fill svelte-13va6lu"></div> <!></div> <input type="range" class="sh3-slider__native svelte-13va6lu"/> <!></div>');function Nf(e,t){re(t,!0);let n=J(t,"value",15,0),r=J(t,"min",3,0),s=J(t,"max",3,100),a=J(t,"step",3,1),o=J(t,"showValue",3,!1),l=J(t,"disabled",3,!1),c=J(t,"invalid",3,!1),u=J(t,"size",3,"md"),d=J(t,"orientation",3,"horizontal");const v=F(()=>pa(n(),r(),s()));var p=q1();let b;var x=h(p),_=h(x);let y;var k=w(_,2);{var g=A=>{var C=Xe(),D=pe(C);he(D,17,()=>t.ticks,Bt,(R,M)=>{var j=O1();let z;O(B=>z=Ye(j,"",z,B),[()=>({"--tick-pct":`${pa(i(M),r(),s())??""}%`})]),E(R,j)}),E(A,C)};H(k,A=>{t.ticks&&A(g)})}f(x);var m=w(x,2);ge(m);var I=w(m,2);{var P=A=>{var C=N1();let D;var R=h(C,!0);f(C),O(()=>{D=Ye(C,"",D,{"--pct":`${i(v)??""}%`}),L(R,n())}),E(A,C)};H(I,A=>{o()&&A(P)})}f(p),O(()=>{b=ce(p,1,`sh3-slider sh3-slider--${d()??""}`,"svelte-13va6lu",b,{"sh3-slider--sm":u()==="sm","sh3-slider--invalid":c()}),y=Ye(_,"",y,{"--pct":`${i(v)??""}%`}),ne(m,"min",r()),ne(m,"max",s()),ne(m,"step",a()),m.disabled=l(),ne(m,"aria-invalid",c()||void 0)}),U("input",m,()=>t.oninput?.(n())),U("change",m,()=>t.onchange?.(n())),Se(m,n),E(e,p),se()}le(["input","change"]);function lc(e,t,n){const[r,s]=e;return t==="low"?[Math.min(n,s),s]:[r,Math.max(n,r)]}var V1=T('<div><div class="sh3-range__track svelte-rdbrc5"><div class="sh3-range__fill svelte-rdbrc5"></div></div> <input type="range" class="sh3-range__native sh3-range__native--low svelte-rdbrc5"/> <input type="range" class="sh3-range__native sh3-range__native--high svelte-rdbrc5"/></div>');function B1(e,t){re(t,!0);let n=J(t,"value",31,()=>oe([0,100])),r=J(t,"min",3,0),s=J(t,"max",3,100),a=J(t,"step",3,1),o=J(t,"disabled",3,!1),l=J(t,"invalid",3,!1),c=J(t,"size",3,"md");const u=F(()=>pa(n()[0],r(),s())),d=F(()=>pa(n()[1],r(),s()));function v(I){n(lc(n(),"low",I)),t.oninput?.(n())}function p(I){n(lc(n(),"high",I)),t.oninput?.(n())}var b=V1();let x;var _=h(b),y=h(_);let k;f(_);var g=w(_,2);ge(g);var m=w(g,2);ge(m),f(b),O(()=>{x=ce(b,1,"sh3-range svelte-rdbrc5",null,x,{"sh3-range--sm":c()==="sm","sh3-range--invalid":l()}),k=Ye(y,"",k,{"--lo":`${i(u)??""}%`,"--hi":`${i(d)??""}%`}),ne(g,"min",r()),ne(g,"max",s()),ne(g,"step",a()),g.disabled=o(),as(g,n()[0]),ne(m,"min",r()),ne(m,"max",s()),ne(m,"step",a()),m.disabled=o(),as(m,n()[1])}),U("input",g,I=>v(parseFloat(I.currentTarget.value))),U("change",g,()=>t.onchange?.(n())),U("input",m,I=>p(parseFloat(I.currentTarget.value))),U("change",m,()=>t.onchange?.(n())),E(e,b),se()}le(["input","change"]);var U1=T('<div class="sh3-sg__channel svelte-1lqyi0d"><span class="sh3-sg__label svelte-1lqyi0d"> </span> <!></div>'),F1=T("<div></div>");function H1(e,t){re(t,!0);let n=J(t,"orientation",3,"horizontal"),r=J(t,"values",31,()=>oe({})),s=J(t,"showValues",3,!1),a=J(t,"disabled",3,!1),o=J(t,"size",3,"md");var l=F1();he(l,21,()=>t.channels,c=>c.id,(c,u)=>{var d=U1(),v=h(d),p=h(v,!0);f(v);var b=w(v,2),x=()=>r()[i(u).id]??0,_=y=>r({...r(),[i(u).id]:y});{let y=F(()=>i(u).min??0),k=F(()=>i(u).max??100),g=F(()=>i(u).step??1);Nf(b,{get orientation(){return n()},get min(){return i(y)},get max(){return i(k)},get step(){return i(g)},get disabled(){return a()},get size(){return o()},get showValue(){return s()},get value(){return x()},set value(m){_(m)},oninput:()=>t.oninput?.(r()),onchange:()=>t.onchange?.(r())})}f(d),O(()=>L(p,i(u).label)),E(c,d)}),f(l),O(()=>ce(l,1,`sh3-sg sh3-sg--${n()??""}`,"svelte-1lqyi0d")),E(e,l),se()}var K1=T('<span class="sh3-swatch__label svelte-6ri2j2"> </span>'),W1=T('<label><!> <button type="button" class="sh3-swatch__btn svelte-6ri2j2"><span class="sh3-swatch__dot svelte-6ri2j2"></span><span class="sh3-swatch__hex svelte-6ri2j2"> </span></button></label>');function qf(e,t){re(t,!0);let n=J(t,"value",15,"#000000"),r=J(t,"disabled",3,!1),s=J(t,"size",3,"md"),a;async function o(){if(r())return;const _=await zn.color.pick({initial:n(),anchor:a});_!=null&&(n(_),t.onchange?.(_))}var l=W1();let c;var u=h(l);{var d=_=>{var y=K1(),k=h(y,!0);f(y),O(()=>L(k,t.label)),E(_,y)};H(u,_=>{t.label&&_(d)})}var v=w(u,2);let p;var b=w(h(v)),x=h(b,!0);f(b),f(v),Oe(v,_=>a=_,()=>a),f(l),O(()=>{c=ce(l,1,"sh3-swatch svelte-6ri2j2",null,c,{"sh3-swatch--sm":s()==="sm"}),v.disabled=r(),ne(v,"aria-label",`${t.label??"Color"??""} (current ${n()??""})`),p=Ye(v,"",p,{"--swatch-color":n()}),L(x,n())}),U("click",v,o),E(e,l),se()}le(["click"]);function Y1(e,t){return!e||e.length===0?t?[]:null:t?Array.from(e):e[0]}function G1(e){return e===null?"":Array.isArray(e)?e.length===0?"":e.length===1?e[0].name:`${e.length} files`:e.name}var X1=T('<label><input class="sh3-fp__native svelte-24jk95" type="file"/> <span class="sh3-fp__btn svelte-24jk95" tabindex="-1"> </span> <span class="sh3-fp__name svelte-24jk95"> </span></label>');function J1(e,t){re(t,!0);let n=J(t,"value",15,null),r=J(t,"multiple",3,!1),s=J(t,"disabled",3,!1),a=J(t,"invalid",3,!1),o=J(t,"size",3,"md"),l=J(t,"buttonLabel",3,"Choose file...");function c(k){const g=k.currentTarget;n(Y1(g.files,r())),t.onchange?.(n())}const u=F(()=>G1(n()));var d=X1();let v;var p=h(d),b=w(p,2),x=h(b,!0);f(b);var _=w(b,2),y=h(_,!0);f(_),f(d),O(()=>{v=ce(d,1,"sh3-fp svelte-24jk95",null,v,{"sh3-fp--sm":o()==="sm","sh3-fp--invalid":a()}),ne(p,"accept",t.accept),p.multiple=r(),p.disabled=s(),L(x,l()),L(y,i(u)||"no file")}),U("change",p,c),E(e,d),se()}le(["change"]);const Z1=8;function Q1(e){return e.length>=Z1}function $1(e,t){if(!t)return e.slice();const n=t.toLowerCase();return e.filter(r=>r.label.toLowerCase().includes(n))}function ek(e,t,n){if(!t)return-1;const r=t.toLowerCase(),s=e.length;for(let a=1;a<=s;a++){const o=(n+a)%s;if(!e[o].disabled&&e[o].label.toLowerCase().startsWith(r))return o}return-1}function tk(e,t,n){return n&&Array.isArray(t)?t.map(r=>e.find(s=>s.value===r)?.label??"").filter(Boolean).join(", "):typeof t=="string"&&t?e.find(r=>r.value===t)?.label??"":""}function nk(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var rk=T('<input class="sh3-listbox__search svelte-1tyxvrs" type="search" placeholder="Filter…"/>'),sk=T('<span aria-hidden="true"></span>'),ak=T('<div role="option" tabindex="-1"><!> <span class="sh3-listbox__label"> </span></div>'),ik=T('<div class="sh3-listbox__empty svelte-1tyxvrs">No matches</div>'),ok=T('<div class="sh3-listbox svelte-1tyxvrs" role="listbox" tabindex="-1"><!> <div class="sh3-listbox__list svelte-1tyxvrs"><!> <!></div></div>');function lk(e,t){re(t,!0);const n=F(()=>t.getValue());function r(){t.onClose?.(),t.close()}const s=F(()=>Q1(t.options));function a(){if(t.multiple)return 0;const D=typeof i(n)=="string"?i(n):"",R=t.options.findIndex(M=>M.value===D&&!M.disabled);return R>=0?R:0}let o=V(""),l=V(oe(a())),c=V(void 0),u=V(void 0),d="",v=null;const p=F(()=>$1(t.options,i(o)));Ae(()=>{i(l)>=i(p).length&&S(l,0),b()});async function b(){if(await Es(),!i(c))return;i(c).querySelector(`[data-idx="${i(l)}"]`)?.scrollIntoView({block:"nearest"})}function x(D){return t.multiple&&Array.isArray(i(n))?i(n).includes(D.value):i(n)===D.value}function _(D){const R=i(p)[D];!R||R.disabled||(t.onSelect(R.value),t.multiple||r())}function y(D){if(i(p).length!==0)switch(D.key){case"ArrowDown":D.preventDefault(),S(l,(i(l)+1)%i(p).length);break;case"ArrowUp":D.preventDefault(),S(l,(i(l)-1+i(p).length)%i(p).length);break;case"Home":D.preventDefault(),S(l,0);break;case"End":D.preventDefault(),S(l,i(p).length-1);break;case"Enter":D.preventDefault(),_(i(l));break;case" ":case"Space":D.preventDefault(),_(i(l));break;case"Escape":D.preventDefault(),r();break;default:if(i(s)&&document.activeElement===i(u)||D.key.length!==1||D.metaKey||D.ctrlKey||D.altKey)return;d+=D.key,v&&clearTimeout(v),v=setTimeout(()=>{d=""},500);const R=ek(i(p),d,i(l));R>=0&&S(l,R,!0)}}var k=ok(),g=h(k);{var m=D=>{var R=rk();ge(R),Oe(R,M=>S(u,M),()=>i(u)),Se(R,()=>i(o),M=>S(o,M)),E(D,R)};H(g,D=>{i(s)&&D(m)})}var I=w(g,2),P=h(I);he(P,17,()=>i(p),Bt,(D,R,M)=>{var j=ak();ne(j,"data-idx",M);let z;var B=h(j);{var N=W=>{var X=sk();let Q;O(ae=>Q=ce(X,1,"sh3-listbox__check svelte-1tyxvrs",null,Q,ae),[()=>({"sh3-listbox__check--on":x(i(R))})]),E(W,X)};H(B,W=>{t.multiple&&W(N)})}var q=w(B,2),Y=h(q,!0);f(q),f(j),O((W,X)=>{ne(j,"aria-selected",W),ne(j,"aria-disabled",i(R).disabled),z=ce(j,1,"svelte-1tyxvrs",null,z,X),L(Y,i(R).label)},[()=>x(i(R)),()=>({"sh3-listbox__opt--active":M===i(l),"sh3-listbox__opt--selected":x(i(R))})]),U("click",j,()=>_(M)),Me("mouseenter",j,()=>S(l,M,!0)),E(D,j)});var A=w(P,2);{var C=D=>{var R=ik();E(D,R)};H(A,D=>{i(p).length===0&&D(C)})}f(I),Oe(I,D=>S(c,D),()=>i(c)),f(k),O(()=>ne(k,"aria-multiselectable",t.multiple)),U("keydown",k,y),E(e,k),se()}le(["keydown","click"]);var ck=T('<span class="sh3-select__label svelte-1q3zxph"> </span>'),uk=T("<option> </option>"),dk=T('<label><!> <button type="button" class="sh3-select__btn svelte-1q3zxph" aria-haspopup="listbox"><span> </span> <span class="sh3-select__chevron svelte-1q3zxph" aria-hidden="true">▾</span></button> <select class="sh3-select__native svelte-1q3zxph" aria-hidden="true"></select></label>');function fk(e,t){re(t,!0);let n=J(t,"multiple",3,!1),r=J(t,"value",31,()=>oe(n()?[]:"")),s=J(t,"placeholder",3,"Select…"),a=J(t,"disabled",3,!1),o=J(t,"invalid",3,!1),l=J(t,"size",3,"md"),c=V(void 0),u=V(void 0),d=V(!1);const v=F(()=>tk(t.options,r(),n()));function p(){S(d,!1),i(c)?.focus()}async function b(){if(a()||i(d)||!i(c))return;S(d,!0);const R=zn.popup.show(lk,{anchor:i(c)},{options:t.options,getValue:()=>r(),multiple:n(),onSelect:z=>{if(n()){const B=Array.isArray(r())?r():[];r(nk(B,z))}else r(z);t.onchange?.(r())},onClose:p}),M=R.close;R.close=()=>{M(),p()},await Es(),document.querySelector(".sh3-listbox")?.focus()}function x(R){if(!(a()||i(d)))switch(R.key){case"ArrowDown":case"ArrowUp":case"Enter":case" ":R.preventDefault(),b();break}}function _(){i(u)&&(n()?r(Array.from(i(u).selectedOptions).map(R=>R.value)):r(i(u).value),t.onchange?.(r()))}var y=dk();let k;var g=h(y);{var m=R=>{var M=ck(),j=h(M,!0);f(M),O(()=>L(j,t.label)),E(R,M)};H(g,R=>{t.label&&R(m)})}var I=w(g,2),P=h(I);let A;var C=h(P,!0);f(P),Gt(2),f(I),Oe(I,R=>S(c,R),()=>i(c));var D=w(I,2);ne(D,"tabindex",-1),he(D,21,()=>t.options,Bt,(R,M)=>{var j=uk(),z=h(j,!0);f(j);var B={};O(N=>{Eo(j,N),L(z,i(M).label),B!==(B=i(M).value)&&(j.value=(j.__value=i(M).value)??"")},[()=>n()?Array.isArray(r())&&r().includes(i(M).value):r()===i(M).value]),E(R,j)}),f(D),Oe(D,R=>S(u,R),()=>i(u)),f(y),O(()=>{k=ce(y,1,"sh3-select svelte-1q3zxph",null,k,{"sh3-select--invalid":o(),"sh3-select--sm":l()==="sm"}),I.disabled=a(),ne(I,"aria-expanded",i(d)),A=ce(P,1,"sh3-select__display svelte-1q3zxph",null,A,{"sh3-select__display--placeholder":!i(v)}),L(C,i(v)||s()),D.multiple=n(),D.disabled=a()}),U("click",I,b),U("keydown",I,x),U("change",D,_),E(e,y),se()}le(["click","keydown","change"]);function vk(e,t){if(!t)return e;const n=t.toLowerCase();return e.filter(r=>!!(r.label.toLowerCase().includes(n)||r.id.toLowerCase().includes(n)||r.sublabel&&r.sublabel.toLowerCase().includes(n)))}function hk(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var pk=T('<input type="search" class="sh3-picker__search svelte-1rlwvrb" placeholder="Filter…"/>'),mk=T('<p class="sh3-picker__status svelte-1rlwvrb">Loading…</p>'),bk=T('<button type="button" class="sh3-picker__retry svelte-1rlwvrb">Retry</button>'),gk=T('<p class="sh3-picker__status sh3-picker__status--error svelte-1rlwvrb"> </p> <!>',1),_k=T('<p class="sh3-picker__status svelte-1rlwvrb"> </p>'),yk=T('<span class="sh3-picker__row-sub svelte-1rlwvrb"> </span>'),wk=T('<label class="sh3-picker__row svelte-1rlwvrb"><input type="checkbox"/> <span class="sh3-picker__row-text svelte-1rlwvrb"><span class="sh3-picker__row-label svelte-1rlwvrb"> </span> <!></span></label>'),kk=T('<div><!> <div class="sh3-picker__list svelte-1rlwvrb"><!></div> <p class="sh3-picker__footer svelte-1rlwvrb"> </p></div>');function Vf(e,t){re(t,!0);let n=J(t,"value",31,()=>oe([])),r=J(t,"loading",3,!1),s=J(t,"error",3,null),a=J(t,"emptyText",3,"No items."),o=J(t,"searchThreshold",3,8),l=J(t,"disabled",3,!1),c=J(t,"size",3,"md"),u=V("");const d=F(()=>t.items.length>=o()),v=F(()=>vk(t.items,i(u))),p=F(()=>t.items.length),b=F(()=>n().length);function x(j){if(l())return;const z=hk(n(),j);n(z),t.onchange?.(z)}var _=kk();let y;var k=h(_);{var g=j=>{var z=pk();ge(z),O(()=>z.disabled=l()),Se(z,()=>i(u),B=>S(u,B)),E(j,z)};H(k,j=>{i(d)&&j(g)})}var m=w(k,2),I=h(m);{var P=j=>{var z=mk();E(j,z)},A=j=>{var z=gk(),B=pe(z),N=h(B,!0);f(B);var q=w(B,2);{var Y=W=>{var X=bk();U("click",X,()=>t.onRetry?.()),E(W,X)};H(q,W=>{t.onRetry&&W(Y)})}O(()=>L(N,s())),E(j,z)},C=j=>{var z=_k(),B=h(z,!0);f(z),O(()=>L(B,a())),E(j,z)},D=j=>{var z=Xe(),B=pe(z);he(B,17,()=>i(v),N=>N.id,(N,q)=>{var Y=wk(),W=h(Y);ge(W);var X=w(W,2),Q=h(X),ae=h(Q,!0);f(Q);var K=w(Q,2);{var G=ie=>{var ue=yk(),Z=h(ue,!0);f(ue),O(()=>L(Z,i(q).sublabel)),E(ie,ue)};H(K,ie=>{i(q).sublabel&&ie(G)})}f(X),f(Y),O(ie=>{So(W,ie),W.disabled=l(),L(ae,i(q).label)},[()=>n().includes(i(q).id)]),U("change",W,()=>x(i(q).id)),E(N,Y)}),E(j,z)};H(I,j=>{r()?j(P):s()?j(A,1):t.items.length===0?j(C,2):j(D,-1)})}f(m);var R=w(m,2),M=h(R);f(R),f(_),O(()=>{y=ce(_,1,"sh3-picker svelte-1rlwvrb",null,y,{"sh3-picker--sm":c()==="sm","sh3-picker--disabled":l()}),L(M,`${i(b)??""} of ${i(p)??""} selected`)}),E(e,_),se()}le(["click","change"]);function Bf(e,t){re(t,!0);const n=new Set(["sh3-admin-app","sh3-store-app"]);let r=J(t,"value",31,()=>oe([])),s=J(t,"disabled",3,!1),a=J(t,"size",3,"md");const o=F(()=>er().filter(c=>!n.has(c.id)&&!c.admin).map(c=>({id:c.id,label:c.label,sublabel:c.id})).sort((c,u)=>c.label.localeCompare(u.label)));function l(c){r(c),t.onchange?.(c)}Vf(e,{get items(){return i(o)},get value(){return r()},onchange:l,get disabled(){return s()},get size(){return a()},emptyText:"No apps installed."}),se()}const Lt=oe({users:[],loading:!1,error:null});let Hr=null;function cc(){return Hr||(Lt.loading=!0,Lt.error=null,Hr=(async()=>{try{const e=await fetch("/api/admin/users",{credentials:"include"});if(!e.ok){Lt.error=`GET /api/admin/users failed: ${e.status}`;return}Lt.users=await e.json()}catch(e){Lt.error=e.message}finally{Lt.loading=!1,Hr=null}})(),Hr)}function Uf(e,t){re(t,!0);let n=J(t,"value",31,()=>oe([])),r=J(t,"disabled",3,!1),s=J(t,"size",3,"md");Lt.users.length===0&&!Lt.loading&&!Lt.error&&cc();const a=F(()=>Lt.users.map(l=>({id:l.id,label:l.displayName||l.username,sublabel:l.username})));function o(l){n(l),t.onchange?.(l)}Vf(e,{get items(){return i(a)},get value(){return n()},onchange:o,get loading(){return Lt.loading},get error(){return Lt.error},onRetry:()=>void cc(),emptyText:"No users found.",get disabled(){return r()},get size(){return s()}}),se()}const xk={hotInstall:typeof Blob<"u"&&typeof URL.createObjectURL=="function"},Ff=["__sh3core__","shell","sh3-store","sh3-admin"],Hf=Object.freeze(Object.defineProperty({__proto__:null,AppPicker:Bf,Button:t1,COLOR_PICKER_POINT:Sd,CONFLICT_RENDERER_POINT:wd,Collapsible:a1,ColorSwatch:qf,ConflictPermissionError:kd,ConflictSessionOrphanedError:z_,ConsentDeniedError:gf,FRAMEWORK_SHARD_IDS:Ff,Field:f1,FilePicker:J1,IconToggleGroup:M1,NumberInput:S1,PERMISSION_DOCUMENTS_BROWSE:vf,PERMISSION_DOCUMENTS_READ:hf,PERMISSION_DOCUMENTS_WRITE:pf,PERMISSION_KEYS_MINT:mf,PERMISSION_STATE_MANAGE:Co,PERMISSION_SYNC_PEER:fw,PERMISSION_SYNC_POLICY:vw,RangeSlider:B1,ScopeEscalationError:bf,Segmented:P1,Select:fk,Slider:Nf,SliderGroup:H1,Textarea:b1,UserPicker:Uf,VERSION:fn,activeShards:Tr,buildPackageMeta:Xa,capabilities:xk,clearTokenOverrides:Gw,closeTab:Jo,collapseChild:Ow,dockFloat:Rf,dockIntoActiveLayout:Qo,erroredShards:ha,expandChild:Nw,fetchBundle:Ga,fetchRegistries:zf,focusTab:Mw,focusView:Wa,getActiveApp:ld,getAuthHeader:Fa,getIconSprite:Of,getTokenOverrides:Lf,getUser:Cr,inspectActiveLayout:If,isAdmin:bt,isAuthenticated:Bi,isGuest:cf,launchApp:bn,listRegisteredApps:er,listVerbs:No,locateSlot:jf,popoutView:Tf,provideIcons:Jw,pushNavEntry:gg,registerConsentListener:_f,registeredShards:un,resolveConsent:Fi,returnToHome:Ps,setTokenOverrides:Yw,shell:zn,spliceIntoActiveLayout:Lw,subscribeKeyRevocation:Yo,unregisterApp:Ka,validateRegistryIndex:Df},Symbol.toStringTag,{value:"Module"})),Sk="/assets/SH3-BG5NVpSD.png",Ek="https://cdn.jsdelivr.net/npm/p5@1.11.13/lib/p5.min.js";let Kr=null;function Ik(){return Kr||(Kr=new Promise((e,t)=>{const n=window.p5;if(n){e(n);return}const r=document.createElement("script");r.src=Ek,r.async=!0,r.onload=()=>e(window.p5),r.onerror=s=>{Kr=null,t(s)},document.head.appendChild(r)}),Kr)}var Ak=T('<h1 class="shell-title-fallback svelte-1ifjvh5">SH3</h1>'),Ck=T('<div class="shell-title svelte-1ifjvh5"></div>');function Tk(e,t){re(t,!0);const n="`.-':;,^\"~=+<>*?!/\\|()[]{}x1ltzrcvunsXYUJCLQ0OZmwqpdbkhao*#MW&8%B@$",r=64,s=Math.floor(64/(442/193)),a=8,o=7,l=80,c=r*a,u=s*o,d=l/u;let v=V(void 0),p=null,b=V(!1);const x=()=>m=>{const P=getComputedStyle(document.documentElement).getPropertyValue("--shell-accent").trim();let A,C,D=!1;m.setup=()=>{m.createCanvas(c,u),m.noSmooth(),m.noStroke(),m.textAlign(m.CENTER,m.CENTER),m.textFont("monospace"),m.textSize(10),m.textStyle(m.BOLD),C=m.loadImage(Sk,()=>{A=m.createGraphics(r,s),A.pixelDensity(1),A.image(C,0,0,r,s),A.loadPixels(),D=!0},()=>{S(b,!0)})},m.draw=()=>{if(!D)return;const R=m.millis()*.001;let M;m.clear(),m.background(0,0),m.fill(P);for(let j=0;j<s;j++)for(let z=0;z<r;z++){const B=(j*r+z)*4;if(A.pixels[B]<64){if(M=m.noise(z/r*2,j/s*2,R*.15),M>.33)continue;m.text(n[Math.floor(M*n.length*.25)],(z+.5)*a,(j+.5)*o);continue}M=m.noise(z/r*4,j/s*4,R*.5),m.text(n[Math.floor(M*n.length)],(z+.5)*a,(j+.5)*o)}}};Ae(()=>{if(i(b))return;let m=!1;return Ik().then(I=>{if(!(m||!i(v)))try{p=new I(x(),i(v))}catch(P){console.error("[ShellTitle] p5 sketch failed to start",P),S(b,!0)}}).catch(I=>{console.error("[ShellTitle] failed to load p5 from CDN",I),S(b,!0)}),()=>{m=!0,p&&(p.remove(),p=null)}});var _=Xe(),y=pe(_);{var k=m=>{var I=Ak();E(m,I)},g=m=>{var I=Ck();Ye(I,"",{},{width:"216.7195767195767px",height:"80px","--shell-title-scale":d}),Oe(I,P=>S(v,P),()=>i(v)),E(m,I)};H(y,m=>{i(b)?m(k):m(g,-1)})}E(e,_),se()}async function rr(e,t){const n=await fetch(e,{credentials:"include",...t});if(!n.ok)throw new Error(`${t?.method??"GET"} ${e} failed: ${n.status}`);return n.json()}const Qs={async list(){return(await rr("/api/projects",{method:"GET"})).projects},async listAll(){return(await rr("/api/projects/all",{method:"GET"})).projects},async get(e){return rr(`/api/projects/${encodeURIComponent(e)}`,{method:"GET"})},async create(e){return rr("/api/projects",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e)})},async update(e,t){return rr(`/api/projects/${encodeURIComponent(e)}`,{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify(t)})},async delete(e,t){const n=t?.wipeData?"?wipeData=1":"";await rr(`/api/projects/${encodeURIComponent(e)}${n}`,{method:"DELETE"})}};var Rk=T(`<div class="delete-project-dialog svelte-6j13aq"><div class="delete-project-dialog__title svelte-6j13aq"> </div> <div class="delete-project-dialog__body svelte-6j13aq">The project record will be removed and any members will lose access.
9
- Documents already written under the project's namespace remain on disk
10
- unless you tick the option below.</div> <label class="delete-project-dialog__opt svelte-6j13aq"><input type="checkbox" class="svelte-6j13aq"/> <span>Also delete project files <code class="delete-project-dialog__path svelte-6j13aq"> </code></span></label> <div class="delete-project-dialog__actions svelte-6j13aq"><button type="button" class="delete-project-dialog__btn svelte-6j13aq" data-delete-project-cancel="">Cancel</button> <button type="button" class="delete-project-dialog__btn delete-project-dialog__btn--danger svelte-6j13aq" data-delete-project-confirm="">Delete</button></div></div>`);function Pk(e,t){re(t,!0);let n=V(void 0),r=V(!1),s=V(!1);Ae(()=>{i(n)?.focus()});async function a(){if(!i(r)){S(r,!0);try{await t.onConfirm({wipeData:i(s)})}finally{t.close()}}}function o(){i(r)||(t.onCancel?.(),t.close())}var l=Rk(),c=h(l),u=h(c);f(c);var d=w(c,4),v=h(d);ge(v);var p=w(v,2),b=w(h(p)),x=h(b);f(b),f(p),f(d);var _=w(d,2),y=h(_);Oe(y,g=>S(n,g),()=>i(n));var k=w(y,2);f(_),f(l),O(()=>{L(u,`Delete project '${t.projectName??""}'?`),v.disabled=i(r),L(x,`<dataDir>/docs/${t.projectId??""}/`),y.disabled=i(r),k.disabled=i(r)}),Qr(v,()=>i(s),g=>S(s,g)),U("click",y,o),U("click",k,a),E(e,l),se()}le(["click"]);var jk=T('<p class="project-id svelte-1oy3640">ID: <code class="svelte-1oy3640"> </code></p>'),Dk=T('<span class="hint svelte-1oy3640">Your id: <code class="svelte-1oy3640"> </code> </span>'),zk=T('<p class="error svelte-1oy3640"> </p>'),Lk=T('<button type="button" class="danger svelte-1oy3640">Delete</button>'),Mk=T('<div class="project-manage svelte-1oy3640"><div class="body svelte-1oy3640"><h2 class="svelte-1oy3640"> </h2> <!> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">Name</span> <input type="text" placeholder="Acme Website" class="svelte-1oy3640"/></label> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">Description</span> <textarea class="svelte-1oy3640"></textarea></label> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">Members</span> <!> <!></label> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">App allowlist</span> <!></label> <!></div> <div class="actions svelte-1oy3640"><button type="button" class="primary svelte-1oy3640"> </button> <button type="button" class="svelte-1oy3640">Cancel</button> <!></div></div>');function Ok(e,t){re(t,!0);let n=J(t,"project",3,null);const r=F(()=>n()!==null),s=F(Cr);let a=V(oe(ke(()=>n()?.name??""))),o=V(oe(ke(()=>n()?.description??""))),l=V(oe(ke(()=>{if(n())return[...n().members];const K=Cr()?.id;return K?[K]:[]}))),c=V(oe(ke(()=>n()?[...n().appAllowlist]:[]))),u=V(!1),d=V(null);async function v(){if(!i(a).trim()){S(d,"Name is required");return}S(u,!0),S(d,null);const K={name:i(a).trim(),description:i(o).trim()||void 0,members:i(l),appAllowlist:i(c)};try{i(r)&&n()?await Qs.update(n().id,K):await Qs.create(K),await ma(),t.onClose()}catch(G){S(d,G.message,!0)}finally{S(u,!1)}}function p(){if(!i(r)||!n())return;const K=n();Dn.open(Pk,{projectName:K.name,projectId:K.id,onConfirm:async({wipeData:G})=>{S(u,!0),S(d,null);try{await Qs.delete(K.id,{wipeData:G}),await ma(),t.onClose()}catch(ie){S(d,ie.message,!0)}finally{S(u,!1)}}})}var b=Mk(),x=h(b),_=h(x),y=h(_,!0);f(_);var k=w(_,2);{var g=K=>{var G=jk(),ie=w(h(G)),ue=h(ie,!0);f(ie),f(G),O(()=>L(ue,n().id)),E(K,G)};H(k,K=>{i(r)&&K(g)})}var m=w(k,2),I=w(h(m),2);ge(I),f(m);var P=w(m,2),A=w(h(P),2);fo(A),ne(A,"rows",2),f(P);var C=w(P,2),D=w(h(C),2);Uf(D,{get disabled(){return i(u)},get value(){return i(l)},set value(K){S(l,K,!0)}});var R=w(D,2);{var M=K=>{var G=Dk(),ie=w(h(G)),ue=h(ie,!0);f(ie);var Z=w(ie);f(G),O(()=>{L(ue,i(s).id),L(Z,` (${i(s).username??i(s).displayName??""})`)}),E(K,G)};H(R,K=>{i(s)&&K(M)})}f(C);var j=w(C,2),z=w(h(j),2);Bf(z,{get disabled(){return i(u)},get value(){return i(c)},set value(K){S(c,K,!0)}}),f(j);var B=w(j,2);{var N=K=>{var G=zk(),ie=h(G,!0);f(G),O(()=>L(ie,i(d))),E(K,G)};H(B,K=>{i(d)&&K(N)})}f(x);var q=w(x,2),Y=h(q),W=h(Y,!0);f(Y);var X=w(Y,2),Q=w(X,2);{var ae=K=>{var G=Lk();O(()=>G.disabled=i(u)),U("click",G,p),E(K,G)};H(Q,K=>{i(r)&&K(ae)})}f(q),f(b),O(()=>{L(y,i(r)?`Edit ${n().name}`:"Create Project"),I.disabled=i(u),A.disabled=i(u),Y.disabled=i(u),L(W,i(r)?"Save":"Create"),X.disabled=i(u)}),Se(I,()=>i(a),K=>S(a,K)),Se(A,()=>i(o),K=>S(o,K)),U("click",Y,v),U("click",X,function(...K){t.onClose?.apply(this,K)}),E(e,b),se()}le(["click"]);const Mt=oe({projects:[],loading:!1,error:null});async function ma(){Mt.loading=!0,Mt.error=null;try{Mt.projects=await Qs.list()}catch(e){Mt.error=e.message}finally{Mt.loading=!1}}const Ki="projects:manage";let Wi=null;function Nk(){const e=Wi;return Wi=null,e}function Yi(e){Wi=e,dt.open(Ki,{title:e?`Edit ${e.name}`:"Create Project",size:{w:560,h:620},dismissable:!0})}const qk={manifest:{id:"__projects__",label:"Projects",version:fn,views:[{id:Ki,label:"Project Manager"}]},activate(e){ma(),typeof document<"u"&&document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&ma()});const t={mount(r,s){const a=Nk(),o=dt.list(),l=o.length>0?o[o.length-1].id:null,u=Le(Ok,{target:r,props:{project:a,onClose:()=>{l&&dt.close(l)}}});return{unmount(){He(u)}}}};e.registerView(Ki,t),e.actions.register({id:"sh3.project.create",label:"Create Project…",scope:["home","app"],paletteItem:!0,disabled:()=>!bt(),run:()=>{bt()&&Yi(null)}}),e.actions.register({id:"sh3.project.manage",label:"Manage Project…",scope:["home","app"],submenu:!0,paletteItem:!0,disabled:()=>!bt()});const n=new Map;Ss(()=>{Ae(()=>{const r=new Set;for(const s of Mt.projects){if(r.add(s.id),n.has(s.id))continue;const a=e.actions.register({id:`sh3.project.manage:${s.id}`,label:s.name,scope:["home","app"],submenuOf:"sh3.project.manage",run:()=>{const o=Mt.projects.find(l=>l.id===s.id);o&&Yi(o)}});n.set(s.id,a)}for(const s of[...n.keys()])r.has(s)||(n.get(s)(),n.delete(s))})})},autostart(){}};var Vk=T('<button type="button" class="project-card-edit svelte-yosqc3" aria-label="Edit project" title="Edit project">⚙</button>'),Bk=T('<div class="project-card-wrap svelte-yosqc3"><button type="button"><span class="project-name svelte-yosqc3"> </span> <span class="project-meta svelte-yosqc3"> </span></button> <!></div>'),Uk=T('<section class="projects-section svelte-yosqc3"><h2 class="projects-heading svelte-yosqc3">Projects</h2> <div class="projects-grid svelte-yosqc3"></div></section>');function Fk(e,t){re(t,!0);const n=F(()=>Mt.projects.length>0),r=F(()=>Jn.activeProjectId),s=F(bt);function a(d){kf(i(r)===d?null:d)}function o(d,v){v.stopPropagation();const p=Mt.projects.find(b=>b.id===d)??null;p&&Yi(p)}var l=Xe(),c=pe(l);{var u=d=>{var v=Uk(),p=w(h(v),2);he(p,21,()=>Mt.projects,b=>b.id,(b,x)=>{var _=Bk(),y=h(_);let k;var g=h(y),m=h(g,!0);f(g);var I=w(g,2),P=h(I);f(I),f(y);var A=w(y,2);{var C=D=>{var R=Vk();U("click",R,M=>o(i(x).id,M)),E(D,R)};H(A,D=>{i(s)&&D(C)})}f(_),O(()=>{k=ce(y,1,"project-card svelte-yosqc3",null,k,{active:i(r)===i(x).id}),ne(y,"title",i(x).description??`${i(x).members.length} member${i(x).members.length===1?"":"s"}`),L(m,i(x).name),L(P,`${i(x).members.length??""} member${i(x).members.length===1?"":"s"}`)}),U("click",y,()=>a(i(x).id)),E(b,_)}),f(p),f(v),E(d,v)};H(c,d=>{i(n)&&d(u)})}E(e,l),se()}le(["click"]);const uc=["activity","align-horizontal-justify-center","align-horizontal-justify-end","align-horizontal-justify-start","app-window","archive","archive-restore","axis-3d","box","brick-wall","bug","building-2","cable","calendar","camera","check","chevron-down","chevron-right","circle-check","circle-dot","circle-minus","circle-x","clipboard","clipboard-paste","clock","compass","component","copy","cpu","crop","crosshair","crown","dollar-sign","download","droplet","eraser","euro","external-link","eye","eye-off","file","file-archive","file-diff","file-plus","file-text","flame","flip-horizontal-2","flip-vertical-2","folder","folder-open","folder-plus","folder-tree","gallery-vertical-end","gamepad-2","gauge","gem","git-branch","git-commit-horizontal","git-merge","globe","grid-2x2","grid-3x3","group","hard-drive","heart","history","house","image","info","joystick","key","layers","layout-dashboard","layout-grid","layout-list","layout-panel-left","layout-panel-top","layout-template","lightbulb","link","list-ordered","list-tree","lock","log-out","magnet","mail","map","maximize","minimize","moon","mouse-pointer","move","move-3d","music","navigation","network","notebook-pen","palette","pause","pencil","pipette","play","plus","pointer","pound-sterling","receipt","redo-2","refresh-cw","rocket","rotate-3d","rotate-ccw","rotate-cw","ruler","save","scissors","scroll-text","search","send","server","settings","shield","skull","sliders-horizontal","snowflake","sparkles","square","square-terminal","star","sun","sword","table-properties","target","texture","timer","trash-2","triangle-alert","type","undo-2","ungroup","unity","upload","user","users","video","volume-2","wand-sparkles","wind","x","zap","zoom-in","zoom-out"];var Hk=T('<span class="sh3-icon-picker__label svelte-h9dluc"> </span>'),Kk=T('<button type="button"><svg viewBox="0 0 24 24" class="svelte-h9dluc"><use></use></svg></button>'),Wk=T('<div><!> <input type="search" placeholder="Search icons…" aria-label="Filter icons" class="svelte-h9dluc"/> <div class="sh3-icon-picker__grid svelte-h9dluc"><button type="button" aria-label="No icon">×</button> <!></div></div>');function Yk(e,t){re(t,!0);let n=J(t,"value",15,void 0),r=J(t,"disabled",3,!1),s=V("");const a=F(()=>i(s).trim()===""?uc:uc.filter(y=>y.includes(i(s).trim().toLowerCase())));function o(y){r()||(n(y),t.onchange?.(y))}var l=Wk();let c;var u=h(l);{var d=y=>{var k=Hk(),g=h(k,!0);f(k),O(()=>L(g,t.label)),E(y,k)};H(u,y=>{t.label&&y(d)})}var v=w(u,2);ge(v);var p=w(v,2),b=h(p);let x;var _=w(b,2);he(_,16,()=>i(a),y=>y,(y,k)=>{var g=Kk();let m;var I=h(g),P=h(I);f(I),f(g),O(()=>{m=ce(g,1,"sh3-icon-picker__tile svelte-h9dluc",null,m,{"sh3-icon-picker__tile--selected":n()===k}),ne(g,"aria-label",k),ne(g,"title",k),g.disabled=r(),ne(P,"href",`${Zn}#${k??""}`)}),U("click",g,()=>o(k)),E(y,g)}),f(p),f(l),O(()=>{c=ce(l,1,"sh3-icon-picker svelte-h9dluc",null,c,{"sh3-icon-picker--disabled":r()}),v.disabled=r(),x=ce(b,1,"sh3-icon-picker__tile sh3-icon-picker__tile--none svelte-h9dluc",null,x,{"sh3-icon-picker__tile--selected":n()===void 0}),b.disabled=r()}),Se(v,()=>i(s),y=>S(s,y)),U("click",b,()=>o(void 0)),E(e,l),se()}le(["click"]);let Bn=null;function Gk(e){Bn=e}function Xk(){Bn=null}function Kf(e){return e.icon===void 0&&e.color===void 0&&e.label===void 0}function Gi(e){const t=Bn?.user.overrides;if(!t)return;const n=t[e];if(n&&!Kf(n))return n}function dc(e,t){if(!Bn)return;const r={...Bn.user.overrides};t===void 0||Kf(t)?delete r[e]:r[e]=t,Bn.user.overrides=r}function Jk(){Bn={ephemeral:{},session:{},workspace:{},user:{overrides:{}}}}Jk();var Zk=T('<button type="button" class="link svelte-7szqlz">Change icon</button>'),Qk=T('<!> <button type="button" class="link link--align-right svelte-7szqlz">Hide picker</button>',1),$k=T('<div class="app-appearance svelte-7szqlz"><h2 class="svelte-7szqlz"> </h2> <div class="preview svelte-7szqlz"><div><span class="preview-card-square svelte-7szqlz"><svg class="preview-card-icon svelte-7szqlz"><use></use></svg></span> <span class="preview-card-label svelte-7szqlz"> </span></div></div> <label class="row svelte-7szqlz"><span class="svelte-7szqlz">Name <em class="svelte-7szqlz">(empty = default)</em></span> <input type="text" class="name-input svelte-7szqlz"/></label> <div class="row svelte-7szqlz"><span class="svelte-7szqlz">Icon</span> <!></div> <label class="row svelte-7szqlz"><span class="svelte-7szqlz">Color</span> <!></label> <div class="actions svelte-7szqlz"><button type="button" class="primary svelte-7szqlz">Save</button> <button type="button" class="svelte-7szqlz">Reset</button> <button type="button" class="svelte-7szqlz">Cancel</button></div></div>');function e0(e,t){re(t,!0);const n=ke(()=>Gi(t.appId)),r=ke(()=>er().find(K=>K.id===t.appId)?.icon);let s=V(oe(n?.icon)),a=V(oe(n?.color)),o=V(oe(n?.label??"")),l=V(n?.icon!==void 0);const c=F(()=>n!==void 0),u=F(()=>i(o).trim()===""?t.appLabel:i(o).trim()),d=F(()=>i(s)??r??"box");function v(){const K=i(o).trim();dc(t.appId,{icon:i(s),color:i(a),label:K===""?void 0:K}),t.close()}function p(){dc(t.appId,void 0),t.close()}var b=$k(),x=h(b),_=h(x);f(x);var y=w(x,2),k=h(y);let g,m;var I=h(k),P=h(I),A=h(P);f(P),f(I);var C=w(I,2),D=h(C,!0);f(C),f(k),f(y);var R=w(y,2),M=w(h(R),2);ge(M),f(R);var j=w(R,2),z=w(h(j),2);{var B=K=>{var G=Zk();U("click",G,()=>S(l,!0)),E(K,G)},N=K=>{var G=Qk(),ie=pe(G);Yk(ie,{get value(){return i(s)},set value(Z){S(s,Z,!0)}});var ue=w(ie,2);U("click",ue,()=>S(l,!1)),E(K,G)};H(z,K=>{i(l)?K(N,-1):K(B)})}f(j);var q=w(j,2),Y=w(h(q),2);{let K=F(()=>i(a)??"#888888");qf(Y,{get value(){return i(K)},onchange:G=>S(a,G,!0)})}f(q);var W=w(q,2),X=h(W),Q=w(X,2),ae=w(Q,2);f(W),f(b),O(()=>{L(_,`Customize ${t.appLabel??""}`),g=ce(k,1,"preview-card svelte-7szqlz",null,g,{"preview-card--tinted":i(a)!==void 0}),m=Ye(k,"",m,{"--card-color":i(a)??"transparent"}),ne(A,"href",`${Zn}#${i(d)??""}`),L(D,i(u)),ne(M,"placeholder",t.appLabel),Q.disabled=!i(c)}),Se(M,()=>i(o),K=>S(o,K)),U("click",X,v),U("click",Q,p),U("click",ae,function(...K){t.close?.apply(this,K)}),E(e,b),se()}le(["click"]);function t0(){const e=Oo();return!e||e.type!=="app"?null:e.ref}function n0(e){const t=t0();if(!t)return;const n=er().find(s=>s.id===t.appId),r={appId:t.appId,appLabel:n?.label??t.appId};Dn.open(e0,r)}const r0={manifest:{id:"__app-appearance__",label:"App Appearance",version:fn,views:[]},activate(e){const t=e.state({user:{overrides:{}}});Gk(t);const n={id:"app.customize",label:"Customize…",scope:{element:"app"},contextItem:!0,group:"appearance",run:n0};e.actions.register(n)},autostart(){},deactivate(){Xk()}};var s0=T('<button type="button" data-sh3-scope="element:app"><span class="shell-home-card-square svelte-cpn2x2"><svg class="shell-home-card-icon svelte-cpn2x2"><use></use></svg></span> <span class="shell-home-card-label svelte-cpn2x2"> </span></button>'),a0=T('<section class="shell-home-section svelte-cpn2x2"><h2 class="shell-home-section-title svelte-cpn2x2">Apps</h2> <div class="shell-home-grid svelte-cpn2x2"></div></section>'),i0=T('<button type="button" data-sh3-scope="element:app"><span class="shell-home-card-square svelte-cpn2x2"><svg class="shell-home-card-icon svelte-cpn2x2"><use></use></svg></span> <span class="shell-home-card-label svelte-cpn2x2"> </span></button>'),o0=T('<section class="shell-home-section svelte-cpn2x2"><h2 class="shell-home-section-title svelte-cpn2x2">Admin</h2> <div class="shell-home-grid svelte-cpn2x2"></div></section>'),l0=T('<p class="shell-home-empty svelte-cpn2x2"><!></p>'),c0=T('<div class="shell-home svelte-cpn2x2"><header class="shell-home-header svelte-cpn2x2"><div class="shell-home-title-row svelte-cpn2x2"><!> <span class="shell-home-version svelte-cpn2x2"> </span> <span class="shell-home-alpha svelte-cpn2x2">alpha</span></div> <div class="shell-home-credit svelte-cpn2x2">Art: by <a href="https://www.andbc.co/" target="_blank" rel="noopener noreferrer" class="svelte-cpn2x2">andbc</a></div></header> <div class="shell-home-filter svelte-cpn2x2"><input type="search" placeholder="Filter apps…" aria-label="Filter apps by name" class="shell-home-filter-input svelte-cpn2x2"/></div> <!> <!> <!> <!></div>');function u0(e,t){re(t,!0);const n=Td("__sh3core__");function r(z,B){z.preventDefault(),n.set({type:"app",ref:{appId:B}}),zn.actions.openContextMenu({x:z.clientX,y:z.clientY,scope:{element:"app"}})}let s=V("");const a=F(er),o=F(bt),l=F(()=>Jn.activeProjectId?Mt.projects.find(z=>z.id===Jn.activeProjectId)??null:null);function c(z,B){if(!B)return!0;const N=B.toLowerCase();return z.label.toLowerCase().includes(N)||z.id.toLowerCase().includes(N)}function u(z){return i(l)?i(l).appAllowlist.includes(z):!0}const d=F(()=>i(a).filter(z=>!z.admin&&c(z,i(s))&&u(z.id))),v=F(()=>i(a).filter(z=>z.admin&&c(z,i(s)))),p=F(()=>i(d).length+(i(o)?i(v).length:0));var b=c0(),x=h(b),_=h(x),y=h(_);Tk(y,{});var k=w(y,2),g=h(k);f(k),Gt(2),f(_),Gt(2),f(x);var m=w(x,2),I=h(m);ge(I),f(m);var P=w(m,2);Fk(P,{});var A=w(P,2);{var C=z=>{var B=a0(),N=w(h(B),2);he(N,21,()=>i(d),q=>q.id,(q,Y)=>{const W=F(()=>Gi(i(Y).id));var X=s0();let Q,ae;var K=h(X),G=h(K),ie=h(G);f(G),f(K);var ue=w(K,2),Z=h(ue,!0);f(ue),f(X),O(()=>{Q=ce(X,1,"shell-home-card svelte-cpn2x2",null,Q,{"shell-home-card--tinted":i(W)?.color}),ae=Ye(X,"",ae,{"--card-color":i(W)?.color??"transparent"}),ne(ie,"href",`${Zn}#${i(W)?.icon??i(Y).icon??"box"??""}`),L(Z,i(W)?.label??i(Y).label)}),U("click",X,()=>bn(i(Y).id)),U("contextmenu",X,de=>r(de,i(Y).id)),E(q,X)}),f(N),f(B),E(z,B)};H(A,z=>{i(d).length>0&&z(C)})}var D=w(A,2);{var R=z=>{var B=o0(),N=w(h(B),2);he(N,21,()=>i(v),q=>q.id,(q,Y)=>{const W=F(()=>Gi(i(Y).id));var X=i0();let Q,ae;var K=h(X),G=h(K),ie=h(G);f(G),f(K);var ue=w(K,2),Z=h(ue,!0);f(ue),f(X),O(()=>{Q=ce(X,1,"shell-home-card svelte-cpn2x2",null,Q,{"shell-home-card--tinted":i(W)?.color}),ae=Ye(X,"",ae,{"--card-color":i(W)?.color??"transparent"}),ne(ie,"href",`${Zn}#${i(W)?.icon??i(Y).icon??"box"??""}`),L(Z,i(W)?.label??i(Y).label)}),U("click",X,()=>bn(i(Y).id)),U("contextmenu",X,de=>r(de,i(Y).id)),E(q,X)}),f(N),f(B),E(z,B)};H(D,z=>{i(o)&&i(v).length>0&&z(R)})}var M=w(D,2);{var j=z=>{var B=l0(),N=h(B);{var q=W=>{var X=Xt("No apps registered.");E(W,X)},Y=W=>{var X=Xt();O(()=>L(X,`No apps match “${i(s)??""}”.`)),E(W,X)};H(N,W=>{i(a).length===0?W(q):W(Y,-1)})}f(B),E(z,B)};H(M,z=>{i(p)===0&&z(j)})}f(b),O(()=>L(g,`v${fn}`)),Se(I,()=>i(s),z=>S(s,z)),E(e,b),se()}le(["click","contextmenu"]);var d0=T('<p class="keys-peers-muted svelte-19l5m7c">Loading...</p>'),f0=T('<p class="keys-peers-error svelte-19l5m7c"> </p>'),v0=T('<p class="keys-peers-muted svelte-19l5m7c">No keys yet. Shards will ask your permission before creating one.</p>'),h0=T('<button type="button" class="keys-peers-btn-danger svelte-19l5m7c">Confirm</button> <button type="button" class="keys-peers-btn-secondary svelte-19l5m7c">Cancel</button>',1),p0=T('<button type="button" class="keys-peers-btn-danger svelte-19l5m7c">Revoke</button>'),m0=T('<li class="keys-peers-item svelte-19l5m7c"><div class="keys-peers-info svelte-19l5m7c"><span class="keys-peers-label svelte-19l5m7c"> </span> <span class="keys-peers-meta svelte-19l5m7c"> </span> <span class="keys-peers-meta svelte-19l5m7c"> </span> <span class="keys-peers-meta svelte-19l5m7c"> </span></div> <div class="keys-peers-actions svelte-19l5m7c"><!></div></li>'),b0=T('<ul class="keys-peers-list svelte-19l5m7c"></ul>'),g0=T('<div class="keys-peers svelte-19l5m7c"><div class="keys-peers-header svelte-19l5m7c"><h2 class="svelte-19l5m7c">Keys &amp; Peers</h2></div> <!></div>');function _0(e,t){re(t,!0);let n=V(oe([])),r=V(null),s=V(!0),a=V(null);async function o(){S(r,null),S(s,!0);try{const _=await fetch("/api/keys",{credentials:"include"});if(!_.ok)throw new Error(`HTTP ${_.status}`);S(n,await _.json(),!0)}catch(_){S(r,_ instanceof Error?_.message:String(_),!0)}finally{S(s,!1)}}async function l(_){S(a,null);const y=await fetch(`/api/keys/${encodeURIComponent(_)}`,{method:"DELETE",credentials:"include"});(y.ok||y.status===404)&&S(n,i(n).filter(k=>k.id!==_),!0)}function c(_){return new Date(_).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}Ae(()=>{o()}),Ae(()=>Yo("*",()=>{o()}));var u=g0(),d=w(h(u),2);{var v=_=>{var y=d0();E(_,y)},p=_=>{var y=f0(),k=h(y);f(y),O(()=>L(k,`Failed to load: ${i(r)??""}`)),E(_,y)},b=_=>{var y=v0();E(_,y)},x=_=>{var y=b0();he(y,21,()=>i(n),k=>k.id,(k,g)=>{var m=m0(),I=h(m),P=h(I),A=h(P,!0);f(P);var C=w(P,2),D=h(C);f(C);var R=w(C,2),M=h(R);f(R);var j=w(R,2),z=h(j);f(j),f(I);var B=w(I,2),N=h(B);{var q=W=>{var X=h0(),Q=pe(X),ae=w(Q,2);U("click",Q,()=>l(i(g).id)),U("click",ae,()=>{S(a,null)}),E(W,X)},Y=W=>{var X=p0();U("click",X,()=>{S(a,i(g).id,!0)}),E(W,X)};H(N,W=>{i(a)===i(g).id?W(q):W(Y,-1)})}f(B),f(m),O((W,X,Q)=>{L(A,i(g).label),L(D,`Minted by: ${i(g).mintedByShardId??"system"??""}${i(g).peerRole||i(g).peerId?` · Peer: ${i(g).peerRole??"—"}${i(g).peerId?` (${i(g).peerId})`:""}`:""}`),L(M,`Scopes: ${W??""}`),L(z,`Created: ${X??""} · Expires: ${Q??""}`)},[()=>i(g).scopes.join(", "),()=>c(i(g).createdAt),()=>i(g).expiresAt?c(i(g).expiresAt):"never"]),E(k,m)}),f(y),E(_,y)};H(d,_=>{i(s)?_(v):i(r)?_(p,1):i(n).length===0?_(b,2):_(x,-1)})}f(u),E(e,u),se()}le(["click"]);var y0=T('<div class="confirm-dialog svelte-1k1962w"><div class="confirm-dialog-title svelte-1k1962w"> </div> <div class="confirm-dialog-body svelte-1k1962w"> </div> <div class="confirm-dialog-actions svelte-1k1962w"><button type="button" class="confirm-dialog-btn confirm-dialog-btn-cancel svelte-1k1962w" data-confirm-dialog-cancel=""> </button> <button type="button" data-confirm-dialog-confirm=""> </button></div></div>');function w0(e,t){re(t,!0);let n=J(t,"confirmLabel",3,"Confirm"),r=J(t,"cancelLabel",3,"Cancel"),s=J(t,"confirmTone",3,"default"),a=V(void 0),o=V(!1);Ae(()=>{i(a)?.focus()});async function l(){if(!i(o)){S(o,!0);try{await t.onConfirm()}finally{t.close()}}}function c(){i(o)||(t.onCancel?.(),t.close())}var u=y0(),d=h(u),v=h(d,!0);f(d);var p=w(d,2),b=h(p,!0);f(p);var x=w(p,2),_=h(x),y=h(_,!0);f(_),Oe(_,I=>S(a,I),()=>i(a));var k=w(_,2);let g;var m=h(k,!0);f(k),f(x),f(u),O(()=>{L(v,t.title),L(b,t.body),_.disabled=i(o),L(y,r()),g=ce(k,1,"confirm-dialog-btn svelte-1k1962w",null,g,{"confirm-dialog-btn-danger":s()==="danger","confirm-dialog-btn-default":s()==="default"}),k.disabled=i(o),L(m,n())}),U("click",_,c),U("click",k,l),E(e,u),se()}le(["click"]);const fc=new Set(["await","break","case","catch","class","const","continue","debugger","default","delete","do","else","enum","export","extends","false","finally","for","function","if","import","in","instanceof","let","new","null","return","super","switch","this","throw","true","try","typeof","var","void","while","with","yield"]);function fi(e,t){const n=Object.keys(t),r=n.filter(o=>!fc.has(o)),s=n.filter(o=>fc.has(o)),a=[`const __m__ = globalThis.${e};`];r.length>0&&a.push(`export const { ${r.join(", ")} } = __m__;`);for(const o of s)a.push(`const __r_${o}__ = __m__['${o}']; export { __r_${o}__ as ${o} };`);return a.push("export default __m__.default;"),URL.createObjectURL(new Blob([a.join(`
11
- `)],{type:"application/javascript"}))}const nl=globalThis;nl.__sh3__=Hf;nl.__sh3_svelte__=Gu;nl.__sh3_svelte_internal_client__=od;const rl={"sh3-core":fi("__sh3__",Hf),svelte:fi("__sh3_svelte__",Gu),"svelte/internal/client":fi("__sh3_svelte_internal_client__",od)};rl["svelte/internal/disclose-version"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));rl["sh3-core/tokens.css"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));const k0=/(?:from|import)\s*(['"])(sh3-core(?:\/[^'"]*)?|svelte(?:\/[^'"]*)?)\1/g;function x0(e){return e.replace(k0,(t,n,r)=>{const s=rl[r];return s?`${t.startsWith("from")?"from":"import"} '${s}'`:t})}async function js(e){const t=new TextDecoder().decode(e),n=x0(t),r=new Blob([n],{type:"application/javascript"}),s=URL.createObjectURL(r);try{const a=await import(s),o={shards:[],apps:[]};for(const l of Object.values(a)){if(!l||typeof l!="object"||!("manifest"in l))continue;const c=l;S0(c)?o.shards.push(c):E0(c)&&o.apps.push(c)}if(o.shards.length===0&&o.apps.length===0)throw new Error('Bundle has no exports with a "manifest" property — expected at least one shard or app');return o}finally{URL.revokeObjectURL(s)}}function S0(e){return"activate"in e&&typeof e.activate=="function"&&Array.isArray(e.manifest.views)}function E0(e){return"initialLayout"in e&&Array.isArray(e.manifest.requiredShards)}const I0="sh3-packages",A0=1,vs="bundles",Rr="meta";function Ds(){return new Promise((e,t)=>{const n=indexedDB.open(I0,A0);n.onupgradeneeded=()=>{const r=n.result;r.objectStoreNames.contains(vs)||r.createObjectStore(vs),r.objectStoreNames.contains(Rr)||r.createObjectStore(Rr)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}function Qn(e,t,n,r){return new Promise((s,a)=>{const l=e.transaction(t,n).objectStore(t),c=r(l);c.onsuccess=()=>s(c.result),c.onerror=()=>a(c.error)})}async function Wf(e,t,n){const r=await Ds();await Qn(r,vs,"readwrite",s=>s.put(t,e)),await Qn(r,Rr,"readwrite",s=>s.put(n,e)),r.close()}async function Yf(e){const t=await Ds(),n=await Qn(t,vs,"readonly",r=>r.get(e));return t.close(),n??null}async function C0(e){const t=await Ds(),n=await Qn(t,Rr,"readonly",r=>r.get(e));return t.close(),n??null}async function Gf(){const e=await Ds(),t=await Qn(e,Rr,"readonly",n=>n.getAll());return e.close(),t??[]}async function T0(e){const t=await Ds();await Qn(t,vs,"readwrite",n=>n.delete(e)),await Qn(t,Rr,"readwrite",n=>n.delete(e)),t.close()}function sl(e,t){for(const n of e.shards)n.manifest={...n.manifest,version:t.version},Go(n);for(const n of e.apps)n.manifest={...n.manifest,version:t.version},Ro(n)}const R0={"state:manage":{title:"Manage shell state zones",description:"Read and write state zones belonging to other shards."},"documents:browse":{title:"Browse tenant documents",description:"Observe all documents stored by the current tenant."},"documents:read":{title:"Read tenant documents",description:"Read the content of any document in the current tenant, across all shards. Required for backup connectors that need to pull document bodies (not just metadata) out of other shards."},"documents:write":{title:"Write tenant documents",description:"Create and overwrite documents in any shard's namespace within the current tenant. Required for restore-class connectors that re-import documents back into their owning shards."},"documents:sync":{title:"Sync documents with peers",description:"Participate in cross-peer document synchronization."},"sync:peer":{title:"Act as a sync peer",description:"Exchange document updates with remote peers."},"sync:policy":{title:"Define sync policy",description:"Configure which documents sync and with whom."},"keys:mint":{title:"Mint API keys",description:"Issue long-lived access tokens for this shell."}};function vi(e){return R0[e]??{title:e,description:"Unknown permission."}}function al(e){const t=new Set;for(const n of e.shards)for(const r of n.manifest.permissions??[])t.add(r);for(const n of e.apps)for(const r of n.manifest.permissions??[])t.add(r);return[...t]}async function il(e,t,n){if(!t.integrity)return{success:!1,hotLoaded:!1,error:"Missing integrity hash — refusing to install unverified bundle"};try{await $o(e,t.integrity)}catch(o){return{success:!1,hotLoaded:!1,error:`Integrity check failed: ${o instanceof Error?o.message:String(o)}`}}let r;if(n?.loaded)r=n.loaded;else try{r=await js(e)}catch(o){return{success:!1,hotLoaded:!1,error:`Failed to load bundle: ${o instanceof Error?o.message:String(o)}`}}if(t.type==="shard"&&r.shards.length===0)return{success:!1,hotLoaded:!1,error:`Package "${t.id}" declared type "shard" but bundle contains no valid shard`};if(t.type==="app"&&r.apps.length===0)return{success:!1,hotLoaded:!1,error:`Package "${t.id}" declared type "app" but bundle contains no valid app`};const s={id:t.id,type:t.type,version:t.version,sourceRegistry:t.sourceRegistry,contractVersion:t.contractVersion,installedAt:new Date().toISOString(),permissions:al(r)};try{await Wf(t.id,e,s)}catch(o){return{success:!1,hotLoaded:!1,error:`Failed to persist package: ${o instanceof Error?o.message:String(o)}`}}if(t.type==="shard"||t.type==="combo")try{Ha(t.id)}catch{}(t.type==="app"||t.type==="combo")&&Ka(t.id);let a=!0;try{sl(r,{version:t.version,sourceRegistry:t.sourceRegistry,contractVersion:t.contractVersion})}catch(o){console.warn(`[sh3] Package "${t.id}" installed but registration failed (will retry on next boot):`,o instanceof Error?o.message:o),a=!1}return{success:!0,package:s,hotLoaded:a}}async function Xf(e){try{Ha(e)}catch{}Ka(e),await T0(e)}async function P0(){return Gf()}async function j0(){let e;try{e=await Gf()}catch(t){console.warn("[sh3] Failed to read installed packages from storage:",t instanceof Error?t.message:t);return}for(const t of e)try{const n=await Yf(t.id);if(!n){console.warn(`[sh3] No bundle found for installed package "${t.id}", skipping`);continue}const r=await js(n);sl(r,{version:t.version,sourceRegistry:t.sourceRegistry,contractVersion:t.contractVersion}),r.shards.length===0&&r.apps.length===0&&console.warn(`[sh3] Package "${t.id}" contains no valid shards or apps, skipping`)}catch(n){console.warn(`[sh3] Failed to load installed package "${t.id}":`,n instanceof Error?n.message:n)}}const vc={version:1};var D0=T('<span class="perm-modal-author svelte-1ipp1r6"> </span>'),z0=T('<p class="perm-modal-empty svelte-1ipp1r6">This package requires no special permissions.</p>'),L0=T('<li class="perm-modal-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6"> </div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),M0=T('<p class="perm-modal-intro svelte-1ipp1r6">This package requests the following permissions:</p> <ul class="perm-modal-list svelte-1ipp1r6"></ul>',1),O0=T('<li class="perm-modal-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6"> </div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),N0=T('<p class="perm-modal-intro svelte-1ipp1r6">New permissions in this update:</p> <ul class="perm-modal-list perm-modal-added svelte-1ipp1r6"></ul>',1),q0=T('<li class="perm-modal-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6"> </div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),V0=T('<p class="perm-modal-intro svelte-1ipp1r6">Permissions no longer requested:</p> <ul class="perm-modal-list perm-modal-removed svelte-1ipp1r6"></ul>',1),B0=T("<!> <!>",1),U0=T('<div class="perm-modal-backdrop svelte-1ipp1r6" role="dialog" aria-modal="true" tabindex="-1"><div class="perm-modal-panel svelte-1ipp1r6" role="document"><header class="perm-modal-header svelte-1ipp1r6"><h3 class="svelte-1ipp1r6"> </h3> <div class="perm-modal-subtitle svelte-1ipp1r6"><!> <!></div></header> <div class="perm-modal-body svelte-1ipp1r6"><!></div> <footer class="perm-modal-footer svelte-1ipp1r6"><button class="perm-modal-cancel svelte-1ipp1r6">Cancel</button> <button class="perm-modal-confirm svelte-1ipp1r6"> </button></footer></div></div>');function Xi(e,t){re(t,!0);const n=J(t,"permissions",19,()=>[]),r=J(t,"added",19,()=>[]),s=J(t,"removed",19,()=>[]),a=F(()=>t.mode==="install"?"Install":"Update");var o=U0(),l=h(o),c=h(l),u=h(c),d=h(u);f(u);var v=w(u,2),p=h(v);{var b=R=>{var M=Xt();O(()=>L(M,`${t.fromVersion??""} → ${t.pkg.version??""}`)),E(R,M)},x=R=>{var M=Xt();O(()=>L(M,`v${t.pkg.version??""}`)),E(R,M)};H(p,R=>{t.mode==="update"&&t.fromVersion?R(b):R(x,-1)})}var _=w(p,2);{var y=R=>{var M=D0(),j=h(M);f(M),O(()=>L(j,`by ${t.pkg.author??""}`)),E(R,M)};H(_,R=>{t.pkg.author&&R(y)})}f(v),f(c);var k=w(c,2),g=h(k);{var m=R=>{var M=Xe(),j=pe(M);{var z=N=>{var q=z0();E(N,q)},B=N=>{var q=M0(),Y=w(pe(q),2);he(Y,20,n,W=>W,(W,X)=>{const Q=F(()=>vi(X));var ae=L0(),K=h(ae),G=h(K,!0);f(K);var ie=w(K,2),ue=h(ie,!0);f(ie),f(ae),O(()=>{L(G,i(Q).title),L(ue,i(Q).description)}),E(W,ae)}),f(Y),E(N,q)};H(j,N=>{n().length===0?N(z):N(B,-1)})}E(R,M)},I=R=>{var M=B0(),j=pe(M);{var z=q=>{var Y=N0(),W=w(pe(Y),2);he(W,20,r,X=>X,(X,Q)=>{const ae=F(()=>vi(Q));var K=O0(),G=h(K),ie=h(G,!0);f(G);var ue=w(G,2),Z=h(ue,!0);f(ue),f(K),O(()=>{L(ie,i(ae).title),L(Z,i(ae).description)}),E(X,K)}),f(W),E(q,Y)};H(j,q=>{r().length>0&&q(z)})}var B=w(j,2);{var N=q=>{var Y=V0(),W=w(pe(Y),2);he(W,20,s,X=>X,(X,Q)=>{const ae=F(()=>vi(Q));var K=q0(),G=h(K),ie=h(G,!0);f(G);var ue=w(G,2),Z=h(ue,!0);f(ue),f(K),O(()=>{L(ie,i(ae).title),L(Z,i(ae).description)}),E(X,K)}),f(W),E(q,Y)};H(B,q=>{s().length>0&&q(N)})}E(R,M)};H(g,R=>{t.mode==="install"?R(m):R(I,-1)})}f(k);var P=w(k,2),A=h(P),C=w(A,2),D=h(C,!0);f(C),f(P),f(l),f(o),O(()=>{ne(o,"aria-label",`${i(a)??""} ${t.pkg.label??""}`),L(d,`${i(a)??""} ${t.pkg.label??""}`),L(D,i(a))}),U("click",o,function(...R){t.onCancel?.apply(this,R)}),U("keydown",o,R=>{R.key==="Escape"&&t.onCancel()}),U("click",l,R=>R.stopPropagation()),U("click",A,function(...R){t.onCancel?.apply(this,R)}),U("click",C,function(...R){t.onConfirm?.apply(this,R)}),E(e,o),se()}le(["click","keydown"]);var F0=T('<div class="store-registry-entry svelte-1aafzt0"><span class="store-registry-url svelte-1aafzt0"> </span> <button class="store-registry-remove svelte-1aafzt0">Remove</button></div>'),H0=T('<div class="store-registries svelte-1aafzt0"></div>'),K0=T('<form class="store-add-registry svelte-1aafzt0"><input class="store-registry-input svelte-1aafzt0" type="url" placeholder="Registry URL (e.g. https://sh3.example.com/registry.json)"/> <button type="submit" class="store-add-btn svelte-1aafzt0">Add</button></form>'),W0=T('<div class="store-error svelte-1aafzt0"> </div>'),Y0=T('<div class="store-error svelte-1aafzt0"> </div>'),G0=T('<img alt="" class="store-icon-img svelte-1aafzt0"/>'),X0=T('<span class="store-icon-placeholder svelte-1aafzt0"> </span>'),J0=T('<div class="store-card-warning svelte-1aafzt0"> </div>'),Z0=T('<button class="store-update-btn svelte-1aafzt0"> </button>'),Q0=T('<span class="store-installed-label svelte-1aafzt0">Installed</span>'),$0=T('<span class="store-card-missing svelte-1aafzt0"> </span>'),ex=T('<div class="store-install-wrap svelte-1aafzt0"><button class="store-install-btn svelte-1aafzt0"> </button> <!></div>'),tx=T('<div class="store-card svelte-1aafzt0"><div class="store-card-header svelte-1aafzt0"><div class="store-card-icon svelte-1aafzt0"><!></div> <div class="store-card-title svelte-1aafzt0"><span class="store-card-label svelte-1aafzt0"> </span> <span> </span> <span class="store-card-version svelte-1aafzt0"> </span></div></div> <p class="store-card-desc svelte-1aafzt0"> </p> <div class="store-card-author svelte-1aafzt0"> </div> <!> <div class="store-card-actions svelte-1aafzt0"><!></div></div>'),nx=T("No packages found. <!>",1),rx=T('<div class="store-empty svelte-1aafzt0"><!></div>'),sx=T('<div class="store-view svelte-1aafzt0"><header class="store-header svelte-1aafzt0"><h2 class="svelte-1aafzt0">Package Store</h2> <div class="store-controls svelte-1aafzt0"><input class="store-search svelte-1aafzt0" type="text" placeholder="Search packages..."/> <select class="store-filter svelte-1aafzt0"><option>All</option><option>Shards</option><option>Apps</option></select> <button class="store-refresh svelte-1aafzt0"> </button></div></header> <!> <!> <!> <!> <div class="store-grid svelte-1aafzt0"></div> <!></div> <!> <!>',1);function ax(e,t){re(t,!0);let n=V(""),r=V("all"),s=V(oe(new Set)),a=V(oe(new Set)),o=V(null),l=V(""),c=V(null),u=V(null);const d=tt;async function v(){const ee=i(l).trim();if(ee&&!d.env.registries.includes(ee))try{await d.addRegistry(ee),S(l,""),d.refreshCatalog(),d.refreshInstalled()}catch($){S(o,$ instanceof Error?$.message:String($),!0)}}async function p(ee){try{await d.removeRegistry(ee),d.refreshCatalog()}catch($){S(o,$ instanceof Error?$.message:String($),!0)}}const b=F(()=>{const ee=i(n).toLowerCase().trim();return d.state.ephemeral.catalog.filter($=>i(r)!=="all"&&$.entry.type!==i(r)?!1:ee?$.entry.id.toLowerCase().includes(ee)||$.entry.label.toLowerCase().includes(ee)||$.entry.description.toLowerCase().includes(ee):!0)});function x(ee){return d.state.ephemeral.installed.some($=>$.id===ee)}function _(ee){return String(ee.latest.contractVersion)!==String(vc.version)}function y(ee){return ee in d.state.ephemeral.updatable}function k(ee){return d.state.ephemeral.installed.find($=>$.id===ee)?.version??""}function g(ee,$){const Ie=ee.latest.requires?.map(we=>we.id)??[];if(Ie.length===0)return[];const De=new Set(Ff);for(const we of $)(we.type==="shard"||we.type==="combo")&&De.add(we.id);return Ie.filter(we=>!De.has(we))}async function m(ee){if(!i(a).has(ee)){S(a,new Set([...i(a),ee]),!0),S(o,null);try{await d.updatePackage(ee,($,Ie)=>new Promise(De=>{const we=d.state.ephemeral.updatable[ee],Fe=d.state.ephemeral.installed.find(et=>et.id===ee);if(!we||!Fe){De(!0);return}S(u,{pkg:we,fromVersion:Fe.version,added:$,removed:Ie,resolve:De},!0)}))}catch($){S(o,$ instanceof Error?$.message:String($),!0)}finally{const $=new Set(i(a));$.delete(ee),S(a,$,!0)}}}function I(){const ee=i(u);ee&&(S(u,null),ee.resolve(!0))}function P(){const ee=i(u);ee&&(S(u,null),ee.resolve(!1))}async function A(ee){const $=ee.entry.id;if(!i(s).has($)){S(s,new Set([...i(s),$]),!0),S(o,null);try{const Ie=await Ga(ee.latest,ee.sourceRegistry),De=Xa(ee,ee.latest),we=await js(Ie),Fe=al(we);let et;ee.latest.serverBundleUrl&&(et=await el(ee.latest,ee.sourceRegistry)),S(c,{pkg:ee,permissions:Fe,loaded:we,bundle:Ie,meta:De,serverBundle:et},!0)}catch(Ie){S(o,Ie instanceof Error?Ie.message:String(Ie),!0);const De=new Set(i(s));De.delete($),S(s,De,!0)}}}async function C(){const ee=i(c);if(!ee)return;S(c,null);const{pkg:$,loaded:Ie,bundle:De,meta:we,serverBundle:Fe}=ee,et=$.entry.id;try{const Ge={id:we.id,type:we.type,label:$.entry.label,version:we.version,contractVersion:we.contractVersion,sourceRegistry:we.sourceRegistry,requiredShards:$.latest.requires?.map(Rt=>Rt.id)??[],installedAt:new Date().toISOString()},yn=await Wo(Ge,De,Fe);if(!yn.ok){S(o,yn.error??"Server install failed",!0);return}const wn=await il(De,we,{loaded:Ie});wn.success||console.warn(`[sh3-store] Server install ok but local hot-load failed: ${wn.error}`),await d.refreshInstalled()}catch(Ge){S(o,Ge instanceof Error?Ge.message:String(Ge),!0)}finally{const Ge=new Set(i(s));Ge.delete(et),S(s,Ge,!0)}}function D(){if(!i(c))return;const ee=i(c).pkg.entry.id;S(c,null);const $=new Set(i(s));$.delete(ee),S(s,$,!0)}function R(){d.refreshCatalog(),d.refreshInstalled()}var M=sx(),j=pe(M),z=h(j),B=w(h(z),2),N=h(B);ge(N);var q=w(N,2),Y=h(q);Y.value=Y.__value="all";var W=w(Y);W.value=W.__value="shard";var X=w(W);X.value=X.__value="app",f(q);var Q=w(q,2),ae=h(Q,!0);f(Q),f(B),f(z);var K=w(z,2);{var G=ee=>{var $=H0();he($,21,()=>d.env.registries,Bt,(Ie,De)=>{var we=F0(),Fe=h(we),et=h(Fe,!0);f(Fe);var Ge=w(Fe,2);f(we),O(()=>L(et,i(De))),U("click",Ge,()=>p(i(De))),E(Ie,we)}),f($),E(ee,$)};H(K,ee=>{d.isAdmin&&d.env.registries.length>0&&ee(G)})}var ie=w(K,2);{var ue=ee=>{var $=K0(),Ie=h($);ge(Ie);var De=w(Ie,2);f($),O(we=>De.disabled=we,[()=>!i(l).trim()]),Me("submit",$,we=>{we.preventDefault(),v()}),Se(Ie,()=>i(l),we=>S(l,we)),E(ee,$)};H(ie,ee=>{d.isAdmin&&ee(ue)})}var Z=w(ie,2);{var de=ee=>{var $=W0(),Ie=h($,!0);f($),O(()=>L(Ie,d.state.ephemeral.error)),E(ee,$)};H(Z,ee=>{d.state.ephemeral.error&&ee(de)})}var ye=w(Z,2);{var Ue=ee=>{var $=Y0(),Ie=h($,!0);f($),O(()=>L(Ie,i(o))),E(ee,$)};H(ye,ee=>{i(o)&&ee(Ue)})}var Pe=w(ye,2);he(Pe,21,()=>i(b),ee=>ee.entry.id,(ee,$)=>{const Ie=F(()=>x(i($).entry.id)),De=F(()=>_(i($))),we=F(()=>i(s).has(i($).entry.id)),Fe=F(()=>y(i($).entry.id)),et=F(()=>i(a).has(i($).entry.id)),Ge=F(()=>g(i($),d.state.ephemeral.installed));var yn=tx(),wn=h(yn),Rt=h(wn),Br=h(Rt);{var fv=qe=>{var ze=G0();O(()=>ne(ze,"src",i($).entry.icon)),E(qe,ze)},vv=qe=>{var ze=X0(),Pt=h(ze,!0);f(ze),O(()=>L(Pt,i($).entry.type==="shard"?"S":"A")),E(qe,ze)};H(Br,qe=>{i($).entry.icon?qe(fv):qe(vv,-1)})}f(Rt);var ul=w(Rt,2),Za=h(ul),hv=h(Za,!0);f(Za);var Ls=w(Za,2);let dl;var pv=h(Ls,!0);f(Ls);var fl=w(Ls,2),mv=h(fl,!0);f(fl),f(ul),f(wn);var Qa=w(wn,2),bv=h(Qa,!0);f(Qa);var $a=w(Qa,2),gv=h($a,!0);f($a);var vl=w($a,2);{var _v=qe=>{var ze=J0(),Pt=h(ze);f(ze),O(()=>L(Pt,`Contract mismatch: package targets v${i($).latest.contractVersion??""}, running v${vc.version}`)),E(qe,ze)};H(vl,qe=>{i(De)&&qe(_v)})}var hl=w(vl,2),yv=h(hl);{var wv=qe=>{var ze=Z0(),Pt=h(ze,!0);f(ze),O(ei=>{ze.disabled=i(et),L(Pt,ei)},[()=>i(et)?"Updating...":`Update ${k(i($).entry.id)} -> ${i($).latest.version}`]),U("click",ze,()=>m(i($).entry.id)),E(qe,ze)},kv=qe=>{var ze=Q0();E(qe,ze)},xv=qe=>{var ze=ex(),Pt=h(ze),ei=h(Pt,!0);f(Pt);var Sv=w(Pt,2);{var Ev=Ur=>{var ti=$0(),Iv=h(ti);f(ti),O(Av=>L(Iv,`requires: ${Av??""}`),[()=>i(Ge).join(", ")]),E(Ur,ti)};H(Sv,Ur=>{i(Ge).length>0&&Ur(Ev)})}f(ze),O(Ur=>{Pt.disabled=i(we)||i(Ge).length>0,ne(Pt,"title",Ur),L(ei,i(we)?"Installing...":"Install")},[()=>i(Ge).length>0?`Missing required shards: ${i(Ge).join(", ")}`:void 0]),U("click",Pt,()=>A(i($))),E(qe,ze)};H(yv,qe=>{i(Ie)&&i(Fe)?qe(wv):i(Ie)?qe(kv,1):qe(xv,-1)})}f(hl),f(yn),O(()=>{L(hv,i($).entry.label),dl=ce(Ls,1,"store-card-badge svelte-1aafzt0",null,dl,{"badge-shard":i($).entry.type==="shard","badge-app":i($).entry.type==="app"}),L(pv,i($).entry.type),L(mv,i($).latest.version),L(bv,i($).entry.description),L(gv,i($).entry.author.name)}),E(ee,yn)}),f(Pe);var at=w(Pe,2);{var Qe=ee=>{var $=rx(),Ie=h($);{var De=Fe=>{var et=nx(),Ge=w(pe(et));{var yn=Rt=>{var Br=Xt("Add a registry URL above to get started.");E(Rt,Br)},wn=Rt=>{var Br=Xt("No registries configured.");E(Rt,Br)};H(Ge,Rt=>{d.isAdmin?Rt(yn):Rt(wn,-1)})}E(Fe,et)},we=Fe=>{var et=Xt("No packages match the current filter.");E(Fe,et)};H(Ie,Fe=>{d.env.registries.length===0?Fe(De):Fe(we,-1)})}f($),E(ee,$)};H(at,ee=>{!d.state.ephemeral.loading&&i(b).length===0&&ee(Qe)})}f(j);var zs=w(j,2);{var cv=ee=>{{let $=F(()=>({label:i(c).pkg.entry.label,version:i(c).pkg.latest.version,author:i(c).pkg.entry.author.name}));Xi(ee,{mode:"install",get pkg(){return i($)},get permissions(){return i(c).permissions},onConfirm:C,onCancel:D})}};H(zs,ee=>{i(c)&&ee(cv)})}var uv=w(zs,2);{var dv=ee=>{{let $=F(()=>({label:i(u).pkg.entry.label,version:i(u).pkg.latest.version,author:i(u).pkg.entry.author.name}));Xi(ee,{mode:"update",get pkg(){return i($)},get fromVersion(){return i(u).fromVersion},get added(){return i(u).added},get removed(){return i(u).removed},onConfirm:I,onCancel:P})}};H(uv,ee=>{i(u)&&ee(dv)})}O(()=>{Q.disabled=d.state.ephemeral.loading,L(ae,d.state.ephemeral.loading?"Loading...":"Refresh")}),Se(N,()=>i(n),ee=>S(n,ee)),ss(q,()=>i(r),ee=>S(r,ee)),U("click",Q,R),E(e,M),se()}le(["click"]);function Jf(e,t,n,r){return new Promise(s=>{const a={mode:"update",pkg:{label:e.label,version:t},fromVersion:e.version,added:n,removed:r,onConfirm:()=>{o.close(),s(!0)},onCancel:()=>{o.close(),s(!1)}},o=Dn.open(Xi,a)})}var ix=T('<div class="installed-error svelte-1hqclkp"> </div>'),ox=T('<div class="installed-empty svelte-1hqclkp">No packages installed.</div>'),lx=T('<button class="installed-update-btn svelte-1hqclkp"> </button>'),cx=T('<li class="installed-item svelte-1hqclkp"><div class="installed-item-main svelte-1hqclkp"><span class="installed-item-id svelte-1hqclkp"> </span> <span> </span> <span class="installed-item-version svelte-1hqclkp"> </span></div> <div class="installed-item-meta svelte-1hqclkp"><span> </span> <span> </span> <span> </span></div> <div class="installed-item-actions svelte-1hqclkp"><!> <button class="installed-uninstall-btn svelte-1hqclkp"> </button></div></li>'),ux=T('<ul class="installed-list svelte-1hqclkp"></ul>'),dx=T('<div class="installed-view svelte-1hqclkp"><header class="installed-header svelte-1hqclkp"><h2 class="svelte-1hqclkp">Installed Packages</h2> <button>Refresh</button></header> <!> <!></div>');function fx(e,t){re(t,!0);const n=tt;let r=V(oe(new Set)),s=V(oe(new Set)),a=V(null);async function o(g){if(!i(r).has(g)){S(r,new Set([...i(r),g]),!0);try{await df(g),await Xf(g),await n.refreshInstalled()}catch(m){console.warn("[sh3-store] Uninstall failed:",m instanceof Error?m.message:m)}finally{const m=new Set(i(r));m.delete(g),S(r,m,!0)}}}async function l(g){if(!i(s).has(g)){S(s,new Set([...i(s),g]),!0),S(a,null);try{await n.updatePackage(g,async(m,I)=>{const P=n.state.ephemeral.installed.find(C=>C.id===g),A=n.state.ephemeral.updatable[g];return!P||!A?!0:Jf(P,A.latest.version,m,I)})}catch(m){S(a,m instanceof Error?m.message:String(m),!0)}finally{const m=new Set(i(s));m.delete(g),S(s,m,!0)}}}function c(){n.refreshInstalled()}function u(g){try{return new Date(g).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch{return g}}var d=dx(),v=h(d),p=w(h(v),2);f(v);var b=w(v,2);{var x=g=>{var m=ix(),I=h(m,!0);f(m),O(()=>L(I,i(a))),E(g,m)};H(b,g=>{i(a)&&g(x)})}var _=w(b,2);{var y=g=>{var m=ox();E(g,m)},k=g=>{var m=ux();he(m,21,()=>n.state.ephemeral.installed,I=>I.id,(I,P)=>{const A=F(()=>i(r).has(i(P).id));var C=cx(),D=h(C),R=h(D),M=h(R,!0);f(R);var j=w(R,2);let z;var B=h(j,!0);f(j);var N=w(j,2),q=h(N,!0);f(N),f(D);var Y=w(D,2),W=h(Y),X=h(W);f(W);var Q=w(W,2),ae=h(Q);f(Q);var K=w(Q,2),G=h(K);f(K),f(Y);var ie=w(Y,2),ue=h(ie);{var Z=Ue=>{const Pe=F(()=>n.state.ephemeral.updatable[i(P).id]),at=F(()=>i(s).has(i(P).id));var Qe=lx(),zs=h(Qe,!0);f(Qe),O(()=>{Qe.disabled=i(at)||i(A),L(zs,i(at)?"Updating...":`Update -> ${i(Pe).latest.version}`)}),U("click",Qe,()=>l(i(P).id)),E(Ue,Qe)};H(ue,Ue=>{i(P).id in n.state.ephemeral.updatable&&Ue(Z)})}var de=w(ue,2),ye=h(de,!0);f(de),f(ie),f(C),O(Ue=>{L(M,i(P).id),z=ce(j,1,"installed-item-badge svelte-1hqclkp",null,z,{"badge-shard":i(P).type==="shard","badge-app":i(P).type==="app"}),L(B,i(P).type),L(q,i(P).version),L(X,`Contract: v${i(P).contractVersion??""}`),L(ae,`Source: ${i(P).sourceRegistry??""}`),L(G,`Installed: ${Ue??""}`),de.disabled=i(A),L(ye,i(A)?"Removing...":"Uninstall")},[()=>u(i(P).installedAt)]),U("click",de,()=>o(i(P).id)),E(I,C)}),f(m),E(g,m)};H(_,g=>{n.state.ephemeral.installed.length===0?g(y):g(k,-1)})}f(d),U("click",p,c),E(e,d),se()}le(["click"]);function Zf(e){return tt.state.ephemeral.catalog.find(t=>t.entry.id===e)}function hs(e){return tt.state.ephemeral.installed.find(t=>t.id===e)}const vx={name:"install",summary:"Install a package by id from the catalog.",async run(e,t){const n=t[0];if(!n){e.scrollback.push({kind:"status",text:"usage: sh3-store:install <package-id>",level:"warn",ts:Date.now()});return}const r=hs(n);if(r){e.scrollback.push({kind:"status",text:`${n} is already installed (v${r.version})`,level:"warn",ts:Date.now()});return}const s=Zf(n);if(!s){e.scrollback.push({kind:"status",text:`package "${n}" not found in catalog — try refreshing the store`,level:"error",ts:Date.now()});return}e.scrollback.push({kind:"status",text:`installing ${n} v${s.latest.version}...`,level:"info",ts:Date.now()});try{const a=await Ga(s.latest,s.sourceRegistry),o=Xa(s,s.latest);let l;s.latest.serverBundleUrl&&(l=await el(s.latest,s.sourceRegistry));const c={id:o.id,type:o.type,label:s.entry.label,version:o.version,contractVersion:o.contractVersion,sourceRegistry:o.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:s.latest.requires?.map(v=>v.id)??[]},u=await Wo(c,a,l);if(!u.ok){let v=`install failed: ${u.error??"server error"}`;u.code==="missing-shards"&&u.missing&&(v=`install failed: missing required shard(s): ${u.missing.map(b=>b.id).join(", ")}`),e.scrollback.push({kind:"status",text:v,level:"error",ts:Date.now()});return}const d=await il(a,o);d.success||e.scrollback.push({kind:"status",text:`server ok but local hot-load failed: ${d.error}`,level:"warn",ts:Date.now()}),await tt.refreshInstalled(),e.scrollback.push({kind:"status",text:`installed ${n} v${s.latest.version}`,level:"info",ts:Date.now()})}catch(a){e.scrollback.push({kind:"status",text:`install failed: ${a instanceof Error?a.message:String(a)}`,level:"error",ts:Date.now()})}}},hx={name:"uninstall",summary:"Uninstall an installed package by id.",async run(e,t){const n=t[0];if(!n){e.scrollback.push({kind:"status",text:"usage: sh3-store:uninstall <package-id>",level:"warn",ts:Date.now()});return}if(!hs(n)){e.scrollback.push({kind:"status",text:`package "${n}" is not installed`,level:"error",ts:Date.now()});return}e.scrollback.push({kind:"status",text:`uninstalling ${n}...`,level:"info",ts:Date.now()});try{await tt.uninstallPackage(n),e.scrollback.push({kind:"status",text:`uninstalled ${n}`,level:"info",ts:Date.now()})}catch(s){e.scrollback.push({kind:"status",text:`uninstall failed: ${s instanceof Error?s.message:String(s)}`,level:"error",ts:Date.now()})}}},px={name:"update",summary:"Update an installed package (sh3-store:update <id> [version]). When version is omitted, bumps to latest; with a version, installs that exact version (downgrade or same-version reinstall allowed).",async run(e,t){const n=t[0],r=t[1];if(!n){e.scrollback.push({kind:"status",text:"usage: sh3-store:update <package-id> [version]",level:"warn",ts:Date.now()});return}const s=hs(n);if(!s){e.scrollback.push({kind:"status",text:`package "${n}" is not installed`,level:"error",ts:Date.now()});return}const a=s.version,o=r&&r===a?"reinstalling":r?`updating ${n} from v${a} to v${r}`:`updating ${n} from v${a} to latest`;e.scrollback.push({kind:"status",text:o.startsWith("reinstalling")?`reinstalling ${n} v${r}…`:`${o}…`,level:"info",ts:Date.now()});const l=async(c,u)=>(e.scrollback.push({kind:"status",text:`permission change required (added: ${c.join(", ")||"none"}; removed: ${u.join(", ")||"none"}) — open the store and use the Update button to review and apply.`,level:"warn",ts:Date.now()}),!1);try{await tt.updatePackage(n,l,r);const c=r??hs(n)?.version??"?";e.scrollback.push({kind:"status",text:r&&r===a?`reinstalled ${n} v${c}`:`updated ${n} v${c}`,level:"info",ts:Date.now()})}catch(c){e.scrollback.push({kind:"status",text:`update failed: ${c instanceof Error?c.message:String(c)}`,level:"error",ts:Date.now()})}}},mx={name:"appinfo",summary:"Show info about a package (installed status, version, catalog details).",async run(e,t){const n=t[0];if(!n){e.scrollback.push({kind:"status",text:"usage: sh3-store:appinfo <package-id>",level:"warn",ts:Date.now()});return}const r=hs(n),s=Zf(n);if(!r&&!s){e.scrollback.push({kind:"status",text:`package "${n}" not found in catalog or installed list`,level:"error",ts:Date.now()});return}const a=[];a.push(`--- ${n} ---`),r?(a.push(" installed: yes"),a.push(` version: ${r.version}`),a.push(` type: ${r.type}`),a.push(` contract: v${r.contractVersion}`),a.push(` source: ${r.sourceRegistry}`),r.installedAt&&a.push(` installed: ${r.installedAt}`)):a.push(" installed: no"),s?(a.push(" catalog: yes"),a.push(` latest: ${s.latest.version}`),a.push(` label: ${s.entry.label}`),a.push(` author: ${s.entry.author.name}`),a.push(` desc: ${s.entry.description}`)):a.push(" catalog: no (not in any configured registry)"),e.scrollback.push({kind:"text",stream:"stdout",chunks:[a.join(`
12
- `)+`
13
- `],ts:Date.now()})}};function bx(e,t){const n=e.split(".").map(a=>parseInt(a,10)||0),r=t.split(".").map(a=>parseInt(a,10)||0),s=Math.max(n.length,r.length);for(let a=0;a<s;a++){const o=n[a]??0,l=r[a]??0;if(o>l)return!0;if(o<l)return!1}return!1}function gx(e,t){if(t===void 0)return e.latest;const n=e.entry.versions.find(r=>r.version===t);if(!n)throw new Error(`version ${t} not in catalog for ${e.entry.id}`);return n}function _x(e,t){const n=new Set(e),r=new Set(t);return{added:t.filter(s=>!n.has(s)),removed:e.filter(s=>!r.has(s))}}let tt;const yx={manifest:{id:"sh3-store",label:"Package Store",version:fn,views:[{id:"sh3-store:browse",label:"Store"},{id:"sh3-store:installed",label:"Installed"}]},activate(e){const t=e.env({registries:[]}),n=e.state({ephemeral:{catalog:[],installed:[],updatable:{},loading:!1,error:null}});function r(){const p={};for(const b of n.ephemeral.installed){const x=n.ephemeral.catalog.find(_=>_.entry.id===b.id);x&&bx(x.latest.version,b.version)&&(p[b.id]=x)}n.ephemeral.updatable=p}async function s(){n.ephemeral.loading=!0,n.ephemeral.error=null;try{const p=await zf(t.registries);n.ephemeral.catalog=p,r()}catch(p){n.ephemeral.error=p instanceof Error?p.message:String(p)}finally{n.ephemeral.loading=!1}}async function a(){try{const p=await yw();n.ephemeral.installed=p.map(b=>({id:b.id,type:b.type,version:b.version,sourceRegistry:b.sourceRegistry??"",contractVersion:b.contractVersion??"",installedAt:b.installedAt??"",permissions:[]})),r()}catch(p){console.warn("[sh3-store] Failed to list installed packages:",p instanceof Error?p.message:p);try{const b=await P0();n.ephemeral.installed=b,r()}catch{}}}async function o(p){const b=[...t.registries];b.includes(p)||(b.push(p),await e.envUpdate({registries:b}))}async function l(p){const b=t.registries.filter(x=>x!==p);await e.envUpdate({registries:b})}async function c(p,b,x){let _;if(x===void 0?_=n.ephemeral.updatable[p]:_=n.ephemeral.catalog.find(q=>q.entry.id===p),!_)return;const y=n.ephemeral.installed.find(q=>q.id===p);if(!y)return;const k=gx(_,x),g=await Ga(k,_.sourceRegistry);let m;k.serverBundleUrl&&(m=await el(k,_.sourceRegistry));const I=Xa(_,k),P=await js(g),A=al(P);let C=[];try{const q=await C0(p);q?.permissions&&(C=q.permissions)}catch{}const{added:D,removed:R}=_x(C,A);if((D.length>0||R.length>0)&&b&&!await b(D,R))return;const M=await Yf(p),j={...y,permissions:C},z={id:I.id,type:I.type,label:_.entry.label,version:I.version,contractVersion:I.contractVersion,sourceRegistry:I.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:k.requires?.map(q=>q.id)??[]},B=await Wo(z,g,m);if(!B.ok){let q=B.error??"Server update failed";throw B.code==="missing-shards"&&B.missing&&(q=`missing required shard(s): ${B.missing.map(W=>W.id).join(", ")}`),new Error(q)}const N=await il(g,I,{loaded:P});if(!N.success){if(M)try{await Wf(p,M,j)}catch(q){console.warn(`[sh3-store] Rollback failed for "${p}":`,q instanceof Error?q.message:q)}throw new Error(N.error??"Local install failed during update")}await a()}async function u(p){await df(p),await Xf(p),await a()}tt={env:t,state:n,get isAdmin(){return e.isAdmin},refreshCatalog:s,refreshInstalled:a,updatePackage:c,uninstallPackage:u,addRegistry:o,removeRegistry:l};const d={mount(p,b){const x=Le(ax,{target:p});return{unmount(){He(x)}}}},v={mount(p,b){const x=Le(fx,{target:p});return{unmount(){He(x)}}}};e.registerView("sh3-store:browse",d),e.registerView("sh3-store:installed",v),e.registerVerb(vx),e.registerVerb(hx),e.registerVerb(mx),e.registerVerb(px),a()},autostart(){tt.refreshCatalog()}};var wx=T('<p class="error svelte-1tiy4hy"> </p>'),kx=T('<div class="app-update-modal svelte-1tiy4hy"><h2 class="svelte-1tiy4hy">Update available</h2> <p class="svelte-1tiy4hy"><strong> </strong> can be updated from <code class="svelte-1tiy4hy"> </code> to <code class="svelte-1tiy4hy"> </code>.</p> <p class="hint svelte-1tiy4hy">Package id: <code class="svelte-1tiy4hy"> </code></p> <!> <div class="actions svelte-1tiy4hy"><button type="button" class="primary svelte-1tiy4hy"> </button> <button type="button" class="svelte-1tiy4hy">Cancel</button></div></div>');function xx(e,t){re(t,!0);let n=V(!1),r=V(null);async function s(){if(!i(n)){S(n,!0),S(r,null);try{await t.onConfirm(),t.close()}catch(A){S(r,A.message,!0)}finally{S(n,!1)}}}var a=kx(),o=w(h(a),2),l=h(o),c=h(l,!0);f(l);var u=w(l,2),d=h(u);f(u);var v=w(u,2),p=h(v);f(v),Gt(),f(o);var b=w(o,2),x=w(h(b)),_=h(x,!0);f(x),f(b);var y=w(b,2);{var k=A=>{var C=wx(),D=h(C,!0);f(C),O(()=>L(D,i(r))),E(A,C)};H(y,A=>{i(r)&&A(k)})}var g=w(y,2),m=h(g),I=h(m,!0);f(m);var P=w(m,2);f(g),f(a),O(()=>{L(c,t.appLabel),L(d,`v${t.fromVersion??""}`),L(p,`v${t.toVersion??""}`),L(_,t.appId),m.disabled=i(n),L(I,i(n)?"Updating…":"Update"),P.disabled=i(n)}),U("click",m,s),U("click",P,function(...A){t.close?.apply(this,A)}),E(e,a),se()}le(["click"]);var Sx=T('<p class="error svelte-86mxbl"> </p>'),Ex=T(`<div class="uninstall-dialog svelte-86mxbl"><h2 class="svelte-86mxbl"> </h2> <p class="hint svelte-86mxbl">Package id: <code class="svelte-86mxbl"> </code> · current version: <code class="svelte-86mxbl"> </code></p> <p class="svelte-86mxbl">The package will be removed from this server. App data stored in your
14
- browser will remain until you clear it manually.</p> <!> <div class="actions svelte-86mxbl"><button type="button" class="danger svelte-86mxbl"> </button> <button type="button" class="svelte-86mxbl">Cancel</button></div></div>`);function Ix(e,t){re(t,!0);let n=V(!1),r=V(null);async function s(){if(!i(n)){S(n,!0),S(r,null);try{await t.onConfirm(),t.close()}catch(m){S(r,m.message,!0)}finally{S(n,!1)}}}var a=Ex(),o=h(a),l=h(o);f(o);var c=w(o,2),u=w(h(c)),d=h(u,!0);f(u);var v=w(u,2),p=h(v);f(v),f(c);var b=w(c,4);{var x=m=>{var I=Sx(),P=h(I,!0);f(I),O(()=>L(P,i(r))),E(m,I)};H(b,m=>{i(r)&&m(x)})}var _=w(b,2),y=h(_),k=h(y,!0);f(y);var g=w(y,2);f(_),f(a),O(()=>{L(l,`Uninstall ${t.appLabel??""}?`),L(d,t.appId),L(p,`v${t.version??""}`),y.disabled=i(n),L(k,i(n)?"Uninstalling…":"Uninstall"),g.disabled=i(n)}),U("click",y,s),U("click",g,function(...m){t.close?.apply(this,m)}),E(e,a),se()}le(["click"]);function Ax(e){return!e.admin||e.builtin}function hc(e){return e.admin?e.builtin?" · built-in":"":" · admin only"}function vr(){const e=Oo();return!e||e.type!=="app"?null:e.ref}function ol(e){return er().find(t=>t.id===e)}function Cx(e){return!tt.state.ephemeral.installed.some(t=>t.id===e)}function hi(e){return{admin:bt(),builtin:Cx(e)}}async function Tx(e){const t=vr();if(!t)return;const{appId:n}=t,r=Sn.notify("Checking for updates…",{duration:1/0});try{await tt.refreshCatalog()}finally{r.close()}const s=tt.state.ephemeral.updatable[n],a=tt.state.ephemeral.installed.find(c=>c.id===n),o=ol(n)?.label??n;if(!s||!a){Sn.notify(`${o} is up to date`,{level:"info",duration:2500});return}const l={appId:n,appLabel:o,fromVersion:a.version,toVersion:s.latest.version,onConfirm:async()=>{try{await tt.updatePackage(n,(c,u)=>Jf({label:a.id,version:a.version},s.latest.version,c,u)),Sn.notify(`Updated to v${s.latest.version}`,{level:"success"})}catch(c){throw Sn.notify(`Update failed: ${c.message}`,{level:"error",duration:5e3}),c}}};Dn.open(xx,l)}function Rx(e){const t=vr();if(!t)return;const{appId:n}=t,r=tt.state.ephemeral.installed.find(o=>o.id===n);if(!r)return;const s=ol(n)?.label??n,a={appId:n,appLabel:s,version:r.version,onConfirm:async()=>{try{await tt.uninstallPackage(n),Sn.notify(`Uninstalled ${s}`,{level:"success"})}catch(o){throw Sn.notify(`Uninstall failed: ${o.message}`,{level:"error",duration:5e3}),o}}};Dn.open(Ix,a)}function Px(e){const t=()=>{const l=vr();if(!l)return"";const c=ol(l.appId);return c?`${c.id} v${c.version}`:l.appId},n=()=>{const l=vr();return l?`Check for updates${hc(hi(l.appId))}`:"Check for updates"},r=()=>{const l=vr();return l?`Uninstall…${hc(hi(l.appId))}`:"Uninstall…"},s=()=>{const l=vr();return l?Ax(hi(l.appId)):!0},o=[{id:"app.info",label:t,scope:{element:"app"},contextItem:!0,group:"info",disabled:!0},{id:"app.checkUpdate",label:n,scope:{element:"app"},contextItem:!0,group:"update",disabled:s,run:Tx},{id:"app.uninstall",label:r,scope:{element:"app"},contextItem:!0,group:"uninstall",disabled:s,run:Rx}].map(l=>e.actions.register(l));return()=>o.forEach(l=>l())}const jx={manifest:{id:"__sh3core__",label:"SH3 Core",version:fn,views:[{id:"sh3core:home",label:"Home"},{id:"shell:keys-and-peers",label:"Keys & Peers"}]},activate(e){const t=e.state({user:{bindings:{}}});H_(t.user),e.actions.register({id:"sh3.palette.open",label:"Command Palette…",scope:["home","app"],defaultShortcut:"Mod+K",contextItem:!1,paletteItem:!1,run(a){yr(async()=>{const{openPalette:o}=await Promise.resolve().then(()=>Qy);return{openPalette:o}},[]).then(({openPalette:o})=>o())}}),e.actions.register({id:"sh3.app.reset-layout",label:"Reset Current Layout",scope:["app"],paletteItem:!0,contextItem:!1,run(){Dn.open(w0,{title:"Reset layout?",body:"This discards the current arrangement of the active preset and rebuilds it from the app default. Floats will be removed.",confirmLabel:"Reset",confirmTone:"danger",onConfirm:()=>xy()})}});const n={mount(a,o){const l=Le(u0,{target:a});return{unmount(){He(l)}}}},r={mount(a,o){const l=Le(_0,{target:a});return{unmount(){He(l)}}}};e.registerView("sh3core:home",n),e.registerView("shell:keys-and-peers",r),Px(e),e.actions.register({id:"sh3.app.launch",label:"Launch app",scope:["home","app"],submenu:!0,paletteItem:!0});const s=new Map;Ss(()=>{Ae(()=>{const a=new Set;for(const[o,l]of Cn){if(a.add(o),s.has(o))continue;const c=e.actions.register({id:`sh3.app.launch:${o}`,label:l.manifest.label,scope:["home","app"],submenuOf:"sh3.app.launch",run(){bn(o)}});s.set(o,c)}for(const o of[...s.keys()])a.has(o)||(s.get(o)(),s.delete(o))})})},autostart(){}},Dx={id:"shell",label:"Shell",version:fn,views:[{id:"shell:terminal",label:"Shell",standalone:!0}],permissions:[]},zx=2e3;let Lx=0;function Mx(){return`e${++Lx}`}class Ox{#e;get entries(){return i(this.#e)}set entries(t){S(this.#e,t,!0)}constructor(t=zx){this.#e=V(oe([])),this.cap=t}push(t){const n=this.entries[this.entries.length-1];if(n&&n.kind==="text"&&t.kind==="text"&&n.stream===t.stream){n.chunks.push(...t.chunks);return}const r={...t,id:Mx()};this.entries.push(r),this.entries.length>this.cap&&this.entries.splice(0,this.entries.length-this.cap)}clear(){this.entries.length=0}}var Nx=T("<pre> </pre>");function qx(e,t){re(t,!0);const n=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,r=F(()=>t.chunks.join("").replace(n,""));var s=Nx();let a;var o=h(s,!0);f(s),O(()=>{a=ce(s,1,"shell-text svelte-ypr8s",null,a,{stderr:t.stream==="stderr"}),L(o,i(r))}),E(e,s),se()}var Vx=T('<div class="shell-prompt svelte-u0gb59"><span class="shell-prompt-cwd svelte-u0gb59"> </span> <span class="shell-prompt-arrow svelte-u0gb59">❯</span> <span class="shell-prompt-line svelte-u0gb59"> </span></div>');function Bx(e,t){var n=Vx(),r=h(n),s=h(r,!0);f(r);var a=w(r,4),o=h(a,!0);f(a),f(n),O(()=>{L(s,t.cwd),L(o,t.line)}),E(e,n)}var Ux=T("<div> </div>");function Fx(e,t){var n=Ux();let r;var s=h(n,!0);f(n),O(()=>{r=ce(n,1,"shell-status svelte-nfxdpt",null,r,{info:t.level==="info",warn:t.level==="warn",error:t.level==="error"}),L(s,t.text)}),E(e,n)}var Hx=T('<div class="shell-rich svelte-1rnhl05"><!></div>');function Kx(e,t){var n=Hx(),r=h(n);Is(r,()=>t.component,(s,a)=>{a(s,Cs(()=>t.componentProps))}),f(n),E(e,n)}var Wx=T('<div class="shell-scrollback svelte-isy3jt"></div>');function Yx(e,t){re(t,!0);let n=V(null);Ae(()=>{t.scrollback.entries.length,i(n)&&(i(n).scrollTop=i(n).scrollHeight)});var r=Wx();he(r,21,()=>t.scrollback.entries,s=>s.id,(s,a)=>{var o=Xe(),l=pe(o);{var c=p=>{qx(p,{get stream(){return i(a).stream},get chunks(){return i(a).chunks}})},u=p=>{Bx(p,{get cwd(){return i(a).cwd},get line(){return i(a).line}})},d=p=>{Fx(p,{get text(){return i(a).text},get level(){return i(a).level}})},v=p=>{Kx(p,{get component(){return i(a).component},get componentProps(){return i(a).props}})};H(l,p=>{i(a).kind==="text"?p(c):i(a).kind==="prompt"?p(u,1):i(a).kind==="status"?p(d,2):i(a).kind==="rich"&&p(v,3)})}E(s,o)}),f(r),Oe(r,s=>S(n,s),()=>i(n)),E(e,r),se()}var Gx=T('<div><span class="shell-input-cwd svelte-1dfv2gk"> </span> <span class="shell-input-arrow svelte-1dfv2gk">❯</span> <input type="text" spellcheck="false" autocomplete="off" autocapitalize="off" class="shell-input-field svelte-1dfv2gk"/></div>');function Xx(e,t){re(t,!0);let n=V(""),r=V(null),s=V(""),a=V(null);function o(){if(t.locked)return;const _=i(n);_.trim()&&(S(n,""),S(r,null),t.onSubmit(_))}function l(){t.history.length!==0&&(i(r)===null?(S(s,i(n),!0),S(r,t.history.length-1)):i(r)>0&&Sr(r,-1),S(n,t.history[i(r)]??"",!0))}function c(){i(r)!==null&&(i(r)<t.history.length-1?(Sr(r),S(n,t.history[i(r)],!0)):(S(r,null),S(n,i(s),!0)))}function u(_){if(t.locked){if(_.ctrlKey&&_.key==="c"){_.preventDefault(),t.session.send({t:"signal",sig:"SIGINT"});return}if(_.ctrlKey&&_.key==="d"){_.preventDefault(),t.session.send({t:"signal",sig:"EOF"});return}_.preventDefault();return}_.key==="Enter"?(_.preventDefault(),o()):_.key==="ArrowUp"?(_.preventDefault(),l()):_.key==="ArrowDown"?(_.preventDefault(),c()):_.ctrlKey&&_.key==="c"?(_.preventDefault(),S(n,""),S(r,null)):_.ctrlKey&&_.key==="l"&&(_.preventDefault(),S(n,"clear"),o())}Ae(()=>{!t.locked&&i(a)&&i(a).focus()});var d=Gx();let v;var p=h(d),b=h(p,!0);f(p);var x=w(p,4);ge(x),Oe(x,_=>S(a,_),()=>i(a)),f(d),O(()=>{v=ce(d,1,"shell-input svelte-1dfv2gk",null,v,{locked:t.locked}),L(b,t.cwd),x.disabled=t.locked}),U("keydown",x,u),Se(x,()=>i(n),_=>S(n,_)),E(e,d),se()}le(["keydown"]);const pc=[1e3,2e3,5e3,1e4];class Jx{#e;get connected(){return i(this.#e)}set connected(t){S(this.#e,t,!0)}#t;get cwd(){return i(this.#t)}set cwd(t){S(this.#t,t,!0)}#n;get env(){return i(this.#n)}set env(t){S(this.#n,t,!0)}#a;get history(){return i(this.#a)}set history(t){S(this.#a,t,!0)}constructor(t){this.url=t,this.ws=null,this.handlers=new Set,this.pendingHistoryLogs=[],this.lastSeq=0,this.backoffIndex=0,this.closed=!1,this.#e=V(!1),this.#t=V(""),this.#n=V(oe({})),this.#a=V(oe([]))}connect(){if(!this.closed){try{this.ws=new WebSocket(this.url)}catch{this.scheduleReconnect();return}this.ws.addEventListener("open",()=>{this.backoffIndex=0,this.connected=!0;const t=this.lastSeq>0?{t:"hello",replayFrom:this.lastSeq}:{t:"hello"};this.sendRaw(t);for(const n of this.pendingHistoryLogs)this.sendRaw(n);this.pendingHistoryLogs=[]}),this.ws.addEventListener("message",t=>{let n;try{n=JSON.parse(t.data)}catch{return}n.t==="event"&&typeof n.event.seq=="number"&&(this.lastSeq=n.event.seq),n.t==="welcome"&&(this.cwd=n.cwd,this.env=n.env,this.lastSeq=n.seq),n.t==="cwd"&&(this.cwd=n.cwd),n.t==="history"&&(this.history=n.lines);for(const r of this.handlers)r(n)}),this.ws.addEventListener("close",()=>{this.connected=!1,this.ws=null,this.scheduleReconnect()}),this.ws.addEventListener("error",()=>{})}}scheduleReconnect(){if(this.closed)return;const t=pc[Math.min(this.backoffIndex,pc.length-1)];this.backoffIndex++,setTimeout(()=>this.connect(),t)}send(t){if(t.t==="history-log"&&!this.connected){this.pendingHistoryLogs.push(t);return}this.sendRaw(t)}sendRaw(t){!this.ws||this.ws.readyState!==WebSocket.OPEN||this.ws.send(JSON.stringify(t))}onMessage(t){return this.handlers.add(t),()=>this.handlers.delete(t)}close(){this.closed=!0,this.ws?.close(),this.ws=null}}class Zx{list(){return No()}get(t){return $l(t)}resolve(t){const n=t.trim();if(!n)return{kind:"forward",line:t};if(n.startsWith("$ "))return{kind:"forward",line:n.slice(2)};if(n==="$")return{kind:"forward",line:""};const r=n.indexOf(" "),s=r===-1?n:n.slice(0,r),a=r===-1?"":n.slice(r+1),o=$l(s);if(!o)return{kind:"forward",line:t};const l=a.length?a.split(/\s+/):[];return{kind:"local",verb:o,args:l,line:t}}}class Qx{constructor(t=""){this.base=t}async list(t){return(await(await this.#e("/api/fs/list",t)).json()).entries}async stat(t){return await(await this.#e("/api/fs/stat",t)).json()}async read(t){return await(await this.#e("/api/fs/read",t)).text()}async#e(t,n){const r=`${this.base}${t}?path=${encodeURIComponent(n)}`,s=await fetch(r,{credentials:"include"});if(!s.ok){let a=`HTTP ${s.status}`;try{const o=await s.json();o.error&&(a=o.error)}catch{}throw new Error(a)}return s}}class $x{#e=new Map;register(t){this.#e.set(t.id,t)}get(t){return this.#e.get(t)}list(t){const n=[];for(const r of this.#e.values())r.requiresRole&&r.requiresRole!==t||n.push(r);return n}}const eS={id:"dev",label:"Dev",requiresRole:"admin",transport:"ws",autoRelocate:!1},tS={id:"user",label:"User",transport:"none",autoRelocate:!0};function nS(e){e.register(eS),e.register(tS)}function Qf(e){return`sh3.shell.lastMode.${e}`}function rS(e){try{return globalThis.localStorage?.getItem(Qf(e))??null}catch{return null}}function sS(e,t){try{globalThis.localStorage?.setItem(Qf(e),t)}catch{}}function aS(e,t,n){const r=rS(t);if(r){const a=e.get(r);if(a&&(!a.requiresRole||a.requiresRole===n))return a}const s=n==="admin"?"dev":"user";return e.get(s)}function iS(e){return async function t(n){const r=e.mode();if(e.session.history.push(n),r.transport==="none"&&n.trimStart().startsWith("$ ")){e.scrollback.push({kind:"prompt",cwd:e.cwd(),line:n,ts:Date.now()}),e.scrollback.push({kind:"status",text:"shell: server shell not available in user mode",level:"error",ts:Date.now()});return}const s=e.resolver.resolve(n);if(s.kind==="local"){r.transport==="ws"&&e.session.send({t:"history-log",line:n}),e.scrollback.push({kind:"prompt",cwd:e.cwd(),line:n,ts:Date.now()});try{await s.verb.run({shell:e.shell,scrollback:e.scrollback,session:e.session,cwd:e.cwd(),dispatch:t,fs:e.fs},s.args)}catch(a){e.scrollback.push({kind:"status",text:`shell: verb ${s.verb.name} threw — ${a.message}`,level:"error",ts:Date.now()})}return}if(r.transport==="ws")e.session.send({t:"submit",line:s.line});else{const a=s.line.split(/\s+/)[0]??"";e.scrollback.push({kind:"prompt",cwd:e.cwd(),line:s.line,ts:Date.now()}),e.scrollback.push({kind:"status",text:`unknown verb: ${a}`,level:"error",ts:Date.now()})}}}async function oS(e,t){if(!e.modeAutoRelocate)return{kind:"noop"};if(e.focusLocked)return{kind:"noop"};if(e.focusedShardId===null)return{kind:"noop"};if(e.focusedShardId===e.currentShardId)return{kind:"noop"};const n=e.focusedShardId;try{if((await t.stat(n)).kind!=="dir")return{kind:"noop"}}catch{return{kind:"noop"}}return{kind:"relocate",path:n}}var lS=T('<div class="toolbar svelte-gnowwz"><div class="toolbar-slots svelte-gnowwz"></div></div>');function cS(e,t){re(t,!0);let n=J(t,"slotProps",19,()=>({})),r=F(()=>t.registry.list(t.ctx));var s=lS(),a=h(s);he(a,21,()=>i(r),o=>o.id,(o,l)=>{const c=F(()=>i(l).component);var u=Xe(),d=pe(u);Is(d,()=>i(c),(v,p)=>{p(v,Cs(()=>n()[i(l).id]??{}))}),E(o,u)}),f(a),f(s),E(e,s),se()}class uS{#e=[];register(t){this.#e=this.#e.filter(n=>n.id!==t.id).concat(t)}list(t){return this.#e.filter(n=>n.visible(t)).sort((n,r)=>n.order-r.order)}}var dS=T('<button type="button"> </button>'),fS=T('<div class="mode-bar svelte-1i4cqlj" role="toolbar" aria-label="Shell mode"></div>'),vS=T('<span class="mode-label svelte-1i4cqlj"> </span>');function hS(e,t){re(t,!0);let n=F(()=>t.registry.list(t.role));var r=Xe(),s=pe(r);{var a=l=>{var c=fS();he(c,21,()=>i(n),u=>u.id,(u,d)=>{var v=dS();let p;var b=h(v,!0);f(v),O(()=>{p=ce(v,1,"mode-btn svelte-1i4cqlj",null,p,{active:i(d).id===t.mode.id}),ne(v,"aria-pressed",i(d).id===t.mode.id),L(b,i(d).label)}),U("click",v,()=>t.onSelect(i(d).id)),E(u,v)}),f(c),E(l,c)},o=l=>{var c=vS(),u=h(c,!0);f(c),O(()=>L(u,t.mode.label)),E(l,c)};H(s,l=>{t.role==="admin"?l(a):l(o,-1)})}E(e,r),se()}le(["click"]);var pS=T('<button class="focus-lock-btn svelte-1q6gbap"> </button>');function mS(e,t){var n=pS(),r=h(n,!0);f(n),O(()=>{ne(n,"title",t.locked?"Unlock focus":"Lock focus"),L(r,t.locked?"🔒":"🔓")}),U("click",n,function(...s){t.onToggle?.apply(this,s)}),E(e,n)}le(["click"]);var bS=T('<span class="target-shard svelte-1nn2m6x" title="Target shard"> </span>');function gS(e,t){var n=bS(),r=h(n);f(n),O(()=>L(r,`→ ${t.target??"—"??""}`)),E(e,n)}var _S=T('<div class="shell-terminal svelte-13komre"><!> <!> <!></div>');function yS(e,t){re(t,!0);const n=new Ox,r=new Zx,s=new Qx,a=new $x;nS(a);let o=V(oe(ke(()=>aS(a,t.userId,t.role))));function l(A){const C=a.get(A);C&&(C.requiresRole&&C.requiresRole!==t.role||(S(o,C,!0),sS(t.userId,A),C.transport!=="ws"&&n.push({kind:"status",text:"mode switch: reload to take effect for server-shell changes",level:"info",ts:Date.now()})))}const c=ke(()=>new Jx(t.wsUrl)),u=ke(()=>iS({mode:()=>i(o),resolver:r,scrollback:n,session:c,shell:t.shell,fs:s,cwd:()=>c.cwd}));let d=V(!1),v=V(!1),p=V(null);const b=new uS;b.register({id:"mode",order:10,visible:()=>!0,component:hS}),b.register({id:"focus-lock",order:20,visible:A=>A.mode.id==="user",component:mS}),b.register({id:"target-shard",order:30,visible:A=>A.mode.id==="user",component:gS});function x(A){if(A.type==="tabs")return A.tabs[A.activeTab]?.viewId??null;if(A.type==="split"){for(const C of A.children){const D=x(C);if(D!==null)return D}return null}return A.viewId??null}function _(){try{const A=Tt(),C=x(A.docked);if(!C)return null;const D=C.indexOf(":");return D>=0?C.slice(0,D):C}catch{return null}}Ae(()=>{const A=_(),C=i(o).autoRelocate,D=i(v);(async()=>{const R=await oS({modeAutoRelocate:C,focusLocked:D,focusedShardId:A,currentShardId:"shell"},s);R.kind==="relocate"&&R.path!==void 0&&(c.cwd=R.path),A&&A!=="shell"?S(p,A,!0):A||S(p,null)})()});function y(A){if(A.t!=="event")return;const C=A.event;switch(C.kind){case"prompt":n.push({kind:"prompt",cwd:C.cwd,line:C.line,ts:C.ts}),S(d,!0);break;case"stdout":n.push({kind:"text",stream:"stdout",chunks:[C.data],ts:C.ts});break;case"stderr":n.push({kind:"text",stream:"stderr",chunks:[C.data],ts:C.ts});break;case"exit":(C.signal||C.code!==null&&C.code!==0)&&n.push({kind:"status",text:C.signal?`shell: process exited (${C.signal})`:`shell: process exited (${C.code})`,level:"error",ts:C.ts}),S(d,!1);break;case"status":n.push({kind:"status",text:C.text,level:C.level,ts:C.ts});break}}let k=null;yo(()=>{k=c.onMessage(y),i(o).transport==="ws"&&c.connect()}),wo(()=>{k?.(),c.close()});var g=_S(),m=h(g);{let A=F(()=>({mode:i(o),role:t.role})),C=F(()=>({mode:{mode:i(o),role:t.role,registry:a,onSelect:l},"focus-lock":{locked:i(v),onToggle:()=>S(v,!i(v))},"target-shard":{target:i(p)}}));cS(m,{get registry(){return b},get ctx(){return i(A)},get slotProps(){return i(C)}})}var I=w(m,2);Yx(I,{get scrollback(){return n}});var P=w(I,2);Xx(P,{get cwd(){return c.cwd},get locked(){return i(d)},get history(){return c.history},get session(){return c},get onSubmit(){return u}}),f(g),E(e,g),se()}var wS=T('<tr><td class="svelte-m248jy"><button type="button" class="svelte-m248jy"> </button></td><td class="svelte-m248jy"> </td></tr>'),kS=T('<div class="shell-rich-help svelte-m248jy"><table class="svelte-m248jy"><thead><tr><th class="svelte-m248jy">Name</th><th class="svelte-m248jy">Summary</th></tr></thead><tbody></tbody></table></div>');function xS(e,t){re(t,!0);var n=kS(),r=h(n),s=w(h(r));he(s,21,()=>t.data.rows,a=>a.name,(a,o)=>{var l=wS(),c=h(l),u=h(c),d=h(u,!0);f(u),f(c);var v=w(c),p=h(v,!0);f(v),f(l),O(()=>{L(d,i(o).name),L(p,i(o).summary)}),U("click",u,()=>t.data.onClickName(i(o).name)),E(a,l)}),f(s),f(r),f(n),E(e,n),se()}le(["click"]);function SS(){return{name:"help",summary:"List verbs or show detail for one.",async run(e){const t=No().map(n=>({name:n.name,summary:n.summary}));e.scrollback.push({kind:"rich",component:xS,props:{data:{rows:t,onClickName:n=>e.dispatch(n)}},ts:Date.now()})}}}const ES={name:"clear",summary:"Clear the scrollback (local only — other views are unaffected).",async run(e){e.scrollback.clear()}};var IS=T('<li class="svelte-o8m437"><button type="button" class="svelte-o8m437"> </button></li>'),AS=T('<div class="shell-rich-history svelte-o8m437"><ol class="svelte-o8m437"></ol></div>');function CS(e,t){re(t,!0);var n=AS(),r=h(n);he(r,21,()=>t.data.lines,Bt,(s,a)=>{var o=IS(),l=h(o),c=h(l,!0);f(l),f(o),O(()=>L(c,i(a))),U("click",l,()=>t.data.onClickLine(i(a))),E(s,o)}),f(r),f(n),E(e,n),se()}le(["click"]);const TS={name:"history",summary:"Show the last N history lines. Default 50.",async run(e,t){const n=t[0]?Math.max(1,parseInt(t[0],10)||50):50,r=e.session.history.slice(-n);e.scrollback.push({kind:"rich",component:CS,props:{data:{lines:r,onClickLine:s=>e.dispatch(s)}},ts:Date.now()})}};var RS=T('<tr><td class="svelte-1u5krjz"><button type="button" class="svelte-1u5krjz"> </button></td><td class="svelte-1u5krjz"> </td></tr>'),PS=T('<div class="shell-rich-apps svelte-1u5krjz"><table class="svelte-1u5krjz"><thead><tr><th class="svelte-1u5krjz">ID</th><th class="svelte-1u5krjz">Label</th></tr></thead><tbody></tbody></table></div>');function jS(e,t){re(t,!0);var n=PS(),r=h(n),s=w(h(r));he(s,21,()=>t.data.apps,a=>a.id,(a,o)=>{var l=RS(),c=h(l),u=h(c),d=h(u,!0);f(u),f(c);var v=w(c),p=h(v,!0);f(v),f(l),O(()=>{L(d,i(o).id),L(p,i(o).label)}),U("click",u,()=>t.data.onClickApp(i(o).id)),E(a,l)}),f(s),f(r),f(n),E(e,n),se()}le(["click"]);var DS=T('<div class="shell-rich-appcard svelte-npcp8i"><h3 class="svelte-npcp8i"> </h3> <p class="svelte-npcp8i"><strong>ID:</strong> </p> <p class="svelte-npcp8i"><strong>Shards:</strong> </p></div>');function zS(e,t){re(t,!0);var n=DS(),r=h(n),s=h(r,!0);f(r);var a=w(r,2),o=w(h(a));f(a);var l=w(a,2),c=w(h(l));f(l),f(n),O(u=>{L(s,t.data.label),L(o,` ${t.data.id??""}`),L(c,` ${u??""}`)},[()=>t.data.shards.join(", ")]),E(e,n),se()}const LS={name:"apps",summary:"List installed apps. Click a row to launch.",async run(e){const t=e.shell.listApps();e.scrollback.push({kind:"rich",component:jS,props:{data:{apps:t,onClickApp:n=>{e.shell.launchApp(n),e.scrollback.push({kind:"status",text:`shell: launched app ${n}`,level:"info",ts:Date.now()})}}},ts:Date.now()})}},MS={name:"app",summary:"Show the currently active app.",async run(e){const t=e.shell.getActiveApp();if(!t){e.scrollback.push({kind:"status",text:"shell: no active app",level:"info",ts:Date.now()});return}e.scrollback.push({kind:"rich",component:zS,props:{data:{id:t.id,label:t.label,shards:[]}},ts:Date.now()})}};var OS=T('<tr><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td></tr>'),NS=T('<div class="shell-rich-shards svelte-sc3ux4"><table class="svelte-sc3ux4"><thead><tr><th class="svelte-sc3ux4">ID</th><th class="svelte-sc3ux4">Label</th><th class="svelte-sc3ux4">Version</th></tr></thead><tbody></tbody></table></div>');function qS(e,t){re(t,!0);var n=NS(),r=h(n),s=w(h(r));he(s,21,()=>t.data.shards,a=>a.id,(a,o)=>{var l=OS(),c=h(l),u=h(c,!0);f(c);var d=w(c),v=h(d,!0);f(d);var p=w(d),b=h(p,!0);f(p),f(l),O(()=>{L(u,i(o).id),L(v,i(o).label),L(b,i(o).version)}),E(a,l)}),f(s),f(r),f(n),E(e,n),se()}const VS={name:"shards",summary:"List active shards.",async run(e){const t=e.shell.listShards();e.scrollback.push({kind:"rich",component:qS,props:{data:{shards:t}},ts:Date.now()})}};var BS=T('<tr><td class="svelte-15elbr1"> </td><td class="svelte-15elbr1"> </td><td class="svelte-15elbr1"> </td><td class="svelte-15elbr1"><button type="button" class="svelte-15elbr1">Close</button></td></tr>'),US=T('<div class="shell-rich-views svelte-15elbr1"><table class="svelte-15elbr1"><thead><tr><th class="svelte-15elbr1">Slot ID</th><th class="svelte-15elbr1">View ID</th><th class="svelte-15elbr1">Label</th><th class="svelte-15elbr1">Action</th></tr></thead><tbody></tbody></table></div>');function FS(e,t){re(t,!0);var n=US(),r=h(n),s=w(h(r));he(s,21,()=>t.data.views,a=>a.slotId,(a,o)=>{var l=BS(),c=h(l),u=h(c,!0);f(c);var d=w(c),v=h(d,!0);f(d);var p=w(d),b=h(p,!0);f(p);var x=w(p),_=h(x);f(x),f(l),O(()=>{L(u,i(o).slotId),L(v,i(o).viewId),L(b,i(o).label)}),U("click",_,()=>t.data.onClose(i(o).slotId)),E(a,l)}),f(s),f(r),f(n),E(e,n),se()}le(["click"]);const HS={name:"views",summary:"List views currently mounted. Pass --standalone to list summonable views instead.",async run(e,t){if(t.includes("--standalone")){const r=e.shell.listStandaloneViews();if(r.length===0){e.scrollback.push({kind:"status",text:"shell: no standalone views are currently available.",level:"info",ts:Date.now()});return}e.scrollback.push({kind:"status",text:r.map(s=>` ${s.viewId.padEnd(32)} ${s.label}`).join(`
15
- `),level:"info",ts:Date.now()});return}const n=e.shell.listViewsInCurrentLayout();e.scrollback.push({kind:"rich",component:FS,props:{data:{views:n,onClose:r=>{const s=e.shell.closeSlot(r);s.ok||e.scrollback.push({kind:"status",text:`shell: close failed — ${s.error??"unknown"}`,level:"error",ts:Date.now()})}}},ts:Date.now()})}},KS={name:"open",summary:"Open a view from any active shard into the current layout.",async run(e,t){const n=t[0];if(!n){e.scrollback.push({kind:"status",text:"usage: open <viewId>",level:"warn",ts:Date.now()});return}const r=e.shell.openViewInCurrentLayout(n);r.ok?e.scrollback.push({kind:"status",text:`shell: opened ${n}`,level:"info",ts:Date.now()}):e.scrollback.push({kind:"status",text:`shell: open failed — ${r.error??"unknown"}`,level:"error",ts:Date.now()})}},WS={name:"popout",summary:"Pop a docked view out into a float by slot id.",async run(e,t){const n=t[0];if(!n){e.scrollback.push({kind:"status",text:"usage: popout <slotId>",level:"warn",ts:Date.now()});return}const r=e.shell.popoutSlot(n);r.ok?e.scrollback.push({kind:"status",text:`shell: popped out ${n} → ${r.floatId}`,level:"info",ts:Date.now()}):e.scrollback.push({kind:"status",text:`shell: popout failed — ${r.error??"unknown"}`,level:"error",ts:Date.now()})}},YS={name:"dock",summary:"Dock a float back into the current layout by float id. Run with no args to list floats.",async run(e,t){const n=t[0];if(!n){const s=e.shell.listFloats();if(s.length===0){e.scrollback.push({kind:"status",text:"shell: no active floats.",level:"info",ts:Date.now()});return}e.scrollback.push({kind:"status",text:s.map(a=>` ${a.floatId.padEnd(24)} ${a.viewId??"-"} ${a.label}`).join(`
16
- `),level:"info",ts:Date.now()});return}const r=e.shell.dockFloat(n);r.ok?e.scrollback.push({kind:"status",text:`shell: docked ${n}`,level:"info",ts:Date.now()}):e.scrollback.push({kind:"status",text:`shell: dock failed — ${r.error??"unknown"}`,level:"error",ts:Date.now()})}},GS={name:"close",summary:"Close a view by slot id.",async run(e,t){const n=t[0];if(!n){e.scrollback.push({kind:"status",text:"usage: close <slotId>",level:"warn",ts:Date.now()});return}const r=e.shell.closeSlot(n);r.ok||e.scrollback.push({kind:"status",text:`shell: close failed — ${r.error??"unknown"}`,level:"error",ts:Date.now()})}};var XS=T('<tr><td class="svelte-1w7onag"> </td><td class="svelte-1w7onag"> </td></tr>'),JS=T('<div class="shell-rich-zones svelte-1w7onag"><table class="svelte-1w7onag"><thead><tr><th class="svelte-1w7onag">Shard ID</th><th class="svelte-1w7onag">Zones</th></tr></thead><tbody></tbody></table></div>');function ZS(e,t){re(t,!0);var n=JS(),r=h(n),s=w(h(r));he(s,21,()=>t.data.rows,a=>a.shardId,(a,o)=>{var l=XS(),c=h(l),u=h(c,!0);f(c);var d=w(c),v=h(d,!0);f(d),f(l),O(p=>{L(u,i(o).shardId),L(v,p)},[()=>i(o).zones.join(", ")]),E(a,l)}),f(s),f(r),f(n),E(e,n),se()}var QS=T('<div class="shell-rich-zonetree svelte-13iiyr1"><pre class="svelte-13iiyr1"> </pre></div>');function $S(e,t){re(t,!0);var n=QS(),r=h(n),s=h(r,!0);f(r),f(n),O(a=>L(s,a),[()=>JSON.stringify(t.data.value,null,2)]),E(e,n),se()}const e3={name:"zones",summary:"List zones for the current user (optionally scoped to a shard).",async run(e,t){const n=e.shell.listZones(t[0]);e.scrollback.push({kind:"rich",component:ZS,props:{data:{rows:n}},ts:Date.now()})}},t3={name:"zone",summary:"Dump the contents of a zone as a collapsible JSON tree.",async run(e,t){const[n,r]=t;if(!n||!r){e.scrollback.push({kind:"status",text:"usage: zone <shardId> <zoneName>",level:"warn",ts:Date.now()});return}const s=e.shell.readZone(n,r);e.scrollback.push({kind:"rich",component:$S,props:{data:{value:s}},ts:Date.now()})}};function n3(e,t){if(t.startsWith("/"))return r3(t.slice(1));const n=[...e.split("/").filter(Boolean),...t.split("/")],r=[];for(const s of n)if(!(s===""||s===".")){if(s===".."){r.pop();continue}r.push(s)}return r.join("/")}function r3(e){return e.split("/").filter(t=>t&&t!==".").join("/")}const s3={name:"pwd",summary:"Show the current working directory.",async run(e){const t=e.session.cwd||"",n=t.startsWith("/")?t:`/${t}`;e.scrollback.push({kind:"text",stream:"stdout",chunks:[n+`
17
- `],ts:Date.now()})}},a3={name:"cd",summary:"Change the session working directory.",async run(e,t){const n=t[0]??"";if(n===""){e.session.cwd="";return}const r=e.session.cwd,s=n3(r,n);try{if((await e.fs.stat(s)).kind!=="dir"){e.scrollback.push({kind:"status",text:`cd: not a directory: ${n}`,level:"error",ts:Date.now()});return}}catch(a){e.scrollback.push({kind:"status",text:`cd: ${a.message}`,level:"error",ts:Date.now()});return}e.session.cwd=s}},i3={name:"whoami",summary:"Show the current admin user and session info.",async run(e){const t=e.shell.whoAmI();e.scrollback.push({kind:"text",stream:"stdout",chunks:[`${t.userId}${t.admin?" (admin)":""}
18
- `],ts:Date.now()})}};var o3=T('<tr><td class="svelte-1ox8vog"> </td><td class="svelte-1ox8vog"> </td></tr>'),l3=T('<div class="shell-rich-env svelte-1ox8vog"><table class="svelte-1ox8vog"><thead><tr><th class="svelte-1ox8vog">Key</th><th class="svelte-1ox8vog">Value</th></tr></thead><tbody></tbody></table></div>');function c3(e,t){re(t,!0);var n=l3(),r=h(n),s=w(h(r));he(s,21,()=>Object.entries(t.data.env),([a,o])=>a,(a,o)=>{var l=F(()=>Mc(i(o),2));let c=()=>i(l)[0],u=()=>i(l)[1];var d=o3(),v=h(d),p=h(v,!0);f(v);var b=w(v),x=h(b,!0);f(b),f(d),O(()=>{L(p,c()),L(x,u())}),E(a,d)}),f(s),f(r),f(n),E(e,n),se()}const u3={name:"env",summary:"Show the session environment.",async run(e){const t=e.session.env;e.scrollback.push({kind:"rich",component:c3,props:{data:{env:t}},ts:Date.now()})}},d3={name:"ls",summary:"List the current directory.",async run(e){let t;try{t=await e.fs.list(e.session.cwd)}catch(r){e.scrollback.push({kind:"status",text:`ls: ${r.message}`,level:"error",ts:Date.now()});return}const n=t.sort((r,s)=>r.name.localeCompare(s.name)).map(r=>r.kind==="dir"?`${r.name}/`:r.name).join(`
19
- `);e.scrollback.push({kind:"text",stream:"stdout",chunks:[n||"(empty)"],ts:Date.now()})}},f3={name:"cat",summary:"Read a file into the scrollback.",async run(e,t){if(t.length===0){e.scrollback.push({kind:"status",text:"cat: missing file argument",level:"error",ts:Date.now()});return}const n=t[0],r=e.session.cwd?`${e.session.cwd}/${n}`:n;try{const s=await e.fs.read(r);e.scrollback.push({kind:"text",stream:"stdout",chunks:[s],ts:Date.now()})}catch(s){e.scrollback.push({kind:"status",text:`cat: ${s.message}`,level:"error",ts:Date.now()})}}};async function v3(){try{const{TauriStoreBackend:e}=await yr(async()=>{const{TauriStoreBackend:r}=await import("./tauri-backend-BNhKUiUG.js");return{TauriStoreBackend:r}},__vite__mapDeps([0,1])),t=new e("workspace"),n=new e("user");return await Promise.all([t.init(),n.init()]),{backends:{workspace:t,user:n},localOwner:!0}}catch{return{backends:null,localOwner:jc}}}async function h3(){try{const{LazyStore:e}=await yr(async()=>{const{LazyStore:r}=await import("./index-56jHh6nx.js");return{LazyStore:r}},[]),t=new e("workspace.json",{defaults:{},autoSave:!0}),n=new e("user.json",{defaults:{},autoSave:!0});await t.clear(),await n.clear()}catch{}if(typeof localStorage<"u"){const e=[];for(let t=0;t<localStorage.length;t++){const n=localStorage.key(t);n&&n.startsWith("sh3:")&&e.push(n)}for(const t of e)localStorage.removeItem(t)}typeof indexedDB<"u"&&await new Promise(e=>{const t=indexedDB.deleteDatabase("sh3-packages");t.onsuccess=()=>e(),t.onerror=()=>e(),t.onblocked=()=>e()})}const p3={name:"reset",summary:"Wipe SH3 state and reload (preserves documents). Requires --confirm.",async run(e,t){if(!t.includes("--confirm")){e.scrollback.push({kind:"status",text:"reset: erases the package registry, all zone state (including Tauri stores), and theme overrides, then reloads. Documents are preserved. Re-run as `reset --confirm` to proceed.",level:"warn",ts:Date.now()});return}e.scrollback.push({kind:"status",text:"reset: wiping data…",level:"info",ts:Date.now()}),await h3(),location.reload()}};function m3(e){e.registerVerb(SS()),e.registerVerb(ES),e.registerVerb(TS),e.registerVerb(LS),e.registerVerb(MS),e.registerVerb(VS),e.registerVerb(HS),e.registerVerb(KS),e.registerVerb(GS),e.registerVerb(WS),e.registerVerb(YS),e.registerVerb(e3),e.registerVerb(t3),e.registerVerb(s3),e.registerVerb(a3),e.registerVerb(u3),e.registerVerb(i3),e.registerVerb(d3),e.registerVerb(f3),e.registerVerb(p3)}function $f(e){return e.type==="tabs"?e.tabs.filter(t=>t.viewId!==null):e.type==="split"?e.children.flatMap($f):e.viewId!==null?[{slotId:e.slotId,viewId:e.viewId,label:e.viewId}]:[]}function b3(e){return{listApps(){return er().map(t=>({id:t.id,label:t.label}))},getActiveApp(){const t=ld();return t?{id:t.id,label:t.label}:null},launchApp(t){bn(t)},listShards(){return Array.from(un.values()).map(t=>({id:t.manifest.id,label:t.manifest.label,version:t.manifest.version}))},listViewsInCurrentLayout(){try{const{root:t}=If();return $f(t.docked).map(n=>({slotId:n.slotId,viewId:n.viewId??"",label:n.label}))}catch{return[]}},openViewInCurrentLayout(t){try{if(Wa(t))return{ok:!0};const n=ic().find(r=>r.viewId===t);if(n){const r=`standalone:${t}:${Date.now()}`;return Qo({slotId:r,viewId:t,label:n.label})?{ok:!0}:{ok:!1,error:`could not dock "${t}" — no available slot`}}return{ok:!1,error:`view "${t}" not found in current layout`}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}},listStandaloneViews(){return ic()},popoutSlot(t){try{const n=Tf(t);return n?{ok:!0,floatId:n}:{ok:!1,error:`slot "${t}" not found in docked tree`}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}},dockFloat(t){try{return Rf(t)?{ok:!0}:{ok:!1,error:`float "${t}" not found or has no dockable content`}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}},locateSlot(t){try{return jf(t)}catch{return null}},listFloats(){return dt.list().map(t=>{const n=t.content.type==="tabs"?t.content:null,r=n?n.tabs[n.activeTab??0]??n.tabs[0]:null;return{floatId:t.id,viewId:r?.viewId??null,label:t.title??r?.label??t.id}})},closeSlot(t){return Jo(t),{ok:!0}},listZones(t){return[]},readZone(t,n){return null},whoAmI(){return{userId:Cr()?.id??"guest",admin:bt()}}}}const g3={manifest:Dx,activate(e){m3(e);const t=b3();e.actions.register({id:"shell.terminal.toggle",label:"Open Terminal",scope:["home","app"],defaultShortcut:"²",allowInInputs:!1,run(){Wa("shell:terminal")||dt.open("shell:terminal",{title:"Shell"})}});const n={mount(r,s){const a=typeof location<"u"&&location.protocol==="https:"?"wss":"ws",o=typeof location<"u"?location.host:"localhost",l=`${a}://${o}/api/shell/session`,u=Cr()?.id??"guest",d=bt()?"admin":"user",v=Le(yS,{target:r,props:{shell:t,wsUrl:l,userId:u,role:d}});return{unmount(){He(v)},closable:!0}}};e.registerView("shell:terminal",n)},autostart(){}},_3={manifest:{id:"sh3-store-app",label:"Package Store",version:fn,requiredShards:["sh3-store"],layoutVersion:1,admin:!0},initialLayout:{type:"tabs",activeTab:0,tabs:[{slotId:"store.browse",viewId:"sh3-store:browse",label:"Browse"},{slotId:"store.installed",viewId:"sh3-store:installed",label:"Installed"}]}};var y3=T('<div class="admin-error svelte-4q792t"> </div>'),w3=T('<form class="admin-create-form svelte-4q792t"><input class="admin-input svelte-4q792t" type="text" placeholder="Username"/> <input class="admin-input svelte-4q792t" type="text" placeholder="Display name"/> <input class="admin-input svelte-4q792t" type="password" placeholder="Password"/> <select class="admin-input svelte-4q792t"><option>User</option><option>Admin</option></select> <button type="submit" class="admin-btn svelte-4q792t">Create</button> <!></form>'),k3=T('<p class="admin-muted svelte-4q792t">Loading...</p>'),x3=T('<p class="admin-error svelte-4q792t"> </p>'),S3=T('<form class="admin-edit-form svelte-4q792t"><input class="admin-input svelte-4q792t" type="text"/> <input class="admin-input svelte-4q792t" type="password" placeholder="New password (leave empty to keep)"/> <select class="admin-input svelte-4q792t"><option>User</option><option>Admin</option></select> <div class="admin-edit-actions svelte-4q792t"><button type="submit" class="admin-btn svelte-4q792t">Save</button> <button type="button" class="admin-btn-secondary svelte-4q792t">Cancel</button></div></form>'),E3=T('<div class="admin-user-info svelte-4q792t"><span class="admin-user-name svelte-4q792t"> </span> <span class="admin-user-meta svelte-4q792t"> </span></div> <div class="admin-user-actions svelte-4q792t"><button type="button" class="admin-btn-secondary svelte-4q792t">Edit</button> <button type="button" class="admin-btn-danger svelte-4q792t">Delete</button></div>',1),I3=T('<li class="admin-user-item svelte-4q792t"><!></li>'),A3=T('<ul class="admin-user-list svelte-4q792t"></ul>'),C3=T('<div class="admin-users svelte-4q792t"><div class="admin-users-header svelte-4q792t"><h2 class="svelte-4q792t">Users</h2> <button type="button" class="admin-btn svelte-4q792t"> </button></div> <!> <!></div>');function T3(e,t){re(t,!0);let n=V(oe([])),r=V(!0),s=V(null),a=V(!1),o=V(""),l=V(""),c=V(""),u=V("user"),d=V(null),v=V(null),p=V(""),b=V("user"),x=V("");async function _(){S(r,!0),S(s,null);try{const N=await fetch("/api/admin/users",{credentials:"include"});if(!N.ok)throw new Error("Failed to fetch users");S(n,await N.json(),!0)}catch(N){S(s,N instanceof Error?N.message:"Failed to load users",!0)}finally{S(r,!1)}}async function y(){S(d,null);try{const N=await fetch("/api/admin/users",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:i(o),displayName:i(l)||i(o),password:i(c),role:i(u)})});if(!N.ok){const q=await N.json().catch(()=>({}));S(d,q.error||"Failed to create user",!0);return}S(o,""),S(l,""),S(c,""),S(u,"user"),S(a,!1),await _()}catch{S(d,"Network error")}}function k(N){S(v,N.id,!0),S(p,N.displayName,!0),S(b,N.role,!0),S(x,"")}async function g(){if(!i(v))return;const N={displayName:i(p),role:i(b)};i(x).trim()&&(N.password=i(x));try{if(!(await fetch(`/api/admin/users/${i(v)}`,{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(N)})).ok)return;S(v,null),await _()}catch{}}async function m(N){try{await fetch(`/api/admin/users/${N}`,{method:"DELETE",credentials:"include"}),await _()}catch{}}_();var I=C3(),P=h(I),A=w(h(P),2),C=h(A,!0);f(A),f(P);var D=w(P,2);{var R=N=>{var q=w3(),Y=h(q);ge(Y);var W=w(Y,2);ge(W);var X=w(W,2);ge(X);var Q=w(X,2),ae=h(Q);ae.value=ae.__value="user";var K=w(ae);K.value=K.__value="admin",f(Q);var G=w(Q,2),ie=w(G,2);{var ue=Z=>{var de=y3(),ye=h(de,!0);f(de),O(()=>L(ye,i(d))),E(Z,de)};H(ie,Z=>{i(d)&&Z(ue)})}f(q),O(Z=>G.disabled=Z,[()=>!i(o).trim()||!i(c).trim()]),Me("submit",q,Z=>{Z.preventDefault(),y()}),Se(Y,()=>i(o),Z=>S(o,Z)),Se(W,()=>i(l),Z=>S(l,Z)),Se(X,()=>i(c),Z=>S(c,Z)),ss(Q,()=>i(u),Z=>S(u,Z)),E(N,q)};H(D,N=>{i(a)&&N(R)})}var M=w(D,2);{var j=N=>{var q=k3();E(N,q)},z=N=>{var q=x3(),Y=h(q,!0);f(q),O(()=>L(Y,i(s))),E(N,q)},B=N=>{var q=A3();he(q,21,()=>i(n),Y=>Y.id,(Y,W)=>{var X=I3(),Q=h(X);{var ae=G=>{var ie=S3(),ue=h(ie);ge(ue);var Z=w(ue,2);ge(Z);var de=w(Z,2),ye=h(de);ye.value=ye.__value="user";var Ue=w(ye);Ue.value=Ue.__value="admin",f(de);var Pe=w(de,2),at=w(h(Pe),2);f(Pe),f(ie),Me("submit",ie,Qe=>{Qe.preventDefault(),g()}),Se(ue,()=>i(p),Qe=>S(p,Qe)),Se(Z,()=>i(x),Qe=>S(x,Qe)),ss(de,()=>i(b),Qe=>S(b,Qe)),U("click",at,()=>{S(v,null)}),E(G,ie)},K=G=>{var ie=E3(),ue=pe(ie),Z=h(ue),de=h(Z,!0);f(Z);var ye=w(Z,2),Ue=h(ye);f(ye),f(ue);var Pe=w(ue,2),at=h(Pe),Qe=w(at,2);f(Pe),O(()=>{L(de,i(W).displayName),L(Ue,`${i(W).username??""} · ${i(W).role??""}`)}),U("click",at,()=>k(i(W))),U("click",Qe,()=>m(i(W).id)),E(G,ie)};H(Q,G=>{i(v)===i(W).id?G(ae):G(K,-1)})}f(X),E(Y,X)}),f(q),E(N,q)};H(M,N=>{i(r)?N(j):i(s)?N(z,1):N(B,-1)})}f(I),O(()=>L(C,i(a)?"Cancel":"New user")),U("click",A,()=>{S(a,!i(a))}),E(e,I),se()}le(["click"]);var R3=T('<p class="admin-muted svelte-1hsgdb4">Loading...</p>'),P3=T('<div class="admin-error svelte-1hsgdb4"> </div>'),j3=T('<div class="admin-auth-fields svelte-1hsgdb4"><label class="admin-toggle svelte-1hsgdb4"><input type="checkbox" class="svelte-1hsgdb4"/> <span>Require sign-in</span> <span class="admin-hint svelte-1hsgdb4">When enabled, unauthenticated visitors see a sign-in wall.</span></label> <label class="admin-toggle svelte-1hsgdb4"><input type="checkbox" class="svelte-1hsgdb4"/> <span>Allow guest browsing</span> <span class="admin-hint svelte-1hsgdb4">When sign-in is required, guests can still browse with session-only data.</span></label> <label class="admin-toggle svelte-1hsgdb4"><input type="checkbox" class="svelte-1hsgdb4"/> <span>Self-registration</span> <span class="admin-hint svelte-1hsgdb4">Visitors can create their own accounts from the sign-in screen.</span></label> <label class="admin-field svelte-1hsgdb4"><span class="svelte-1hsgdb4">Session lifetime (hours)</span> <input type="number" class="admin-input admin-input-sm svelte-1hsgdb4" min="1" max="8760"/></label> <button type="button" class="admin-btn svelte-1hsgdb4"> </button></div> <!>',1),D3=T('<div class="admin-auth svelte-1hsgdb4"><h2 class="svelte-1hsgdb4">Auth Settings</h2> <!></div>');function z3(e,t){re(t,!0);let n=V(null),r=V(!0),s=V(!1),a=V(null);async function o(){S(r,!0);try{const p=await fetch("/api/admin/settings",{credentials:"include"});if(!p.ok)throw new Error("Failed to fetch settings");S(n,await p.json(),!0)}catch(p){S(a,p instanceof Error?p.message:"Failed to load settings",!0)}finally{S(r,!1)}}async function l(){if(i(n)){S(s,!0),S(a,null);try{const p=await fetch("/api/admin/settings",{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(i(n))});if(!p.ok)throw new Error("Failed to save settings");S(n,await p.json(),!0)}catch(p){S(a,p instanceof Error?p.message:"Failed to save",!0)}finally{S(s,!1)}}}o();var c=D3(),u=w(h(c),2);{var d=p=>{var b=R3();E(p,b)},v=p=>{var b=j3(),x=pe(b),_=h(x),y=h(_);ge(y),Gt(4),f(_);var k=w(_,2),g=h(k);ge(g),Gt(4),f(k);var m=w(k,2),I=h(m);ge(I),Gt(4),f(m);var P=w(m,2),A=w(h(P),2);ge(A),f(P);var C=w(P,2),D=h(C,!0);f(C),f(x);var R=w(x,2);{var M=j=>{var z=P3(),B=h(z,!0);f(z),O(()=>L(B,i(a))),E(j,z)};H(R,j=>{i(a)&&j(M)})}O(()=>{C.disabled=i(s),L(D,i(s)?"Saving...":"Save")}),Qr(y,()=>i(n).auth.required,j=>i(n).auth.required=j),Qr(g,()=>i(n).auth.guestAllowed,j=>i(n).auth.guestAllowed=j),Qr(I,()=>i(n).auth.selfRegistration,j=>i(n).auth.selfRegistration=j),Se(A,()=>i(n).auth.sessionTTL,j=>i(n).auth.sessionTTL=j),U("click",C,l),E(p,b)};H(u,p=>{i(r)?p(d):i(n)&&p(v,1)})}f(c),E(e,c),se()}le(["click"]);var L3=T('<button type="button"> </button>'),M3=T('<div class="admin-error svelte-1gkiloq"> </div>'),O3=T('<div class="admin-error svelte-1gkiloq"> </div>'),N3=T(`<div class="admin-system svelte-1gkiloq"><h2 class="svelte-1gkiloq">System</h2> <div class="admin-system-info svelte-1gkiloq"><div class="admin-system-row svelte-1gkiloq"><span class="admin-system-label svelte-1gkiloq">Server version</span> <span> </span></div></div> <section class="admin-system-section svelte-1gkiloq"><h3 class="svelte-1gkiloq">Package bundle cache</h3> <p class="admin-system-hint svelte-1gkiloq">Controls the <code>Cache-Control</code> header on <code>/packages/:id/client.js</code>.
20
- Set to <strong>0</strong> during development so drop-in bundle replacements take effect on F5.
21
- Use a long value in production.</p> <input type="range" min="0" max="31536000" step="1" class="svelte-1gkiloq"/> <div class="admin-system-readout svelte-1gkiloq"><code> </code> </div> <div class="admin-system-snaps svelte-1gkiloq"></div> <div class="admin-system-actions svelte-1gkiloq"><button type="button" class="admin-btn svelte-1gkiloq"> </button> <button type="button" class="admin-btn-ghost svelte-1gkiloq">Reset</button> <!></div></section> <section class="admin-system-section svelte-1gkiloq"><h3 class="svelte-1gkiloq">Server control</h3> <div class="admin-system-actions svelte-1gkiloq"><button type="button" class="admin-btn-danger svelte-1gkiloq"> </button> <!></div></section></div>`);function q3(e,t){re(t,!0);const n=[{value:0,label:"Off (no-store)"},{value:5,label:"5s (dev)"},{value:60,label:"1 min"},{value:3600,label:"1 hour"},{value:86400,label:"1 day"},{value:31536e3,label:"1 year"}];let r=V("..."),s=V(!1),a=V(null),o=V(31536e3),l=V(31536e3),c=V(!1),u=V(null);const d=F(()=>i(o)!==i(l)),v=F(()=>p(i(o)));function p(Z){return Z===0?"0 seconds (off — browsers never cache)":Z<60?`${Z} seconds`:Z<3600?`${Math.round(Z/60)} minutes`:Z<86400?`${Math.round(Z/3600)} hours`:Z<31536e3?`${Math.round(Z/86400)} days`:`${Math.round(Z/31536e3)} years`}async function b(){try{const Z=await fetch("/api/version");if(Z.ok){const de=await Z.json();S(r,de.version,!0)}}catch{}}async function x(){try{const Z=await fetch("/api/admin/settings",{credentials:"include"});if(Z.ok){const ye=(await Z.json()).packages?.cacheMaxAge??31536e3;S(o,ye,!0),S(l,ye,!0)}}catch{}}async function _(){S(c,!0),S(u,null);try{const Z=await fetch("/api/admin/settings",{method:"PUT",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({packages:{cacheMaxAge:i(o)}})});if(Z.ok){const de=await Z.json();S(l,de.packages?.cacheMaxAge??i(o),!0),S(o,i(l),!0)}else{const de=await Z.json().catch(()=>({}));S(u,de.error||"Save failed",!0)}}catch{S(u,"Network error")}finally{S(c,!1)}}async function y(){S(s,!0),S(a,null);try{const Z=await fetch("/api/admin/restart",{method:"POST",credentials:"include"});if(!Z.ok){const de=await Z.json().catch(()=>({}));S(a,de.error||"Restart failed",!0),S(s,!1)}}catch{S(a,"Network error"),S(s,!1)}}b(),x();var k=N3(),g=w(h(k),2),m=h(g),I=w(h(m),2),P=h(I,!0);f(I),f(m),f(g);var A=w(g,2),C=w(h(A),4);ge(C);var D=w(C,2),R=h(D),M=h(R,!0);f(R);var j=w(R);f(D);var z=w(D,2);he(z,21,()=>n,Z=>Z.value,(Z,de)=>{var ye=L3();let Ue;var Pe=h(ye,!0);f(ye),O(()=>{Ue=ce(ye,1,"admin-snap svelte-1gkiloq",null,Ue,{active:i(o)===i(de).value}),ye.disabled=i(c),L(Pe,i(de).label)}),U("click",ye,()=>S(o,i(de).value,!0)),E(Z,ye)}),f(z);var B=w(z,2),N=h(B),q=h(N,!0);f(N);var Y=w(N,2),W=w(Y,2);{var X=Z=>{var de=M3(),ye=h(de,!0);f(de),O(()=>L(ye,i(u))),E(Z,de)};H(W,Z=>{i(u)&&Z(X)})}f(B),f(A);var Q=w(A,2),ae=w(h(Q),2),K=h(ae),G=h(K,!0);f(K);var ie=w(K,2);{var ue=Z=>{var de=O3(),ye=h(de,!0);f(de),O(()=>L(ye,i(a))),E(Z,de)};H(ie,Z=>{i(a)&&Z(ue)})}f(ae),f(Q),f(k),O(()=>{L(P,i(r)),C.disabled=i(c),L(M,i(o)),L(j,` — ${i(v)??""}`),N.disabled=!i(d)||i(c),L(q,i(c)?"Saving...":"Save"),Y.disabled=!i(d)||i(c),K.disabled=i(s),L(G,i(s)?"Restarting...":"Restart server")}),Se(C,()=>i(o),Z=>S(o,Z)),U("click",N,_),U("click",Y,()=>S(o,i(l),!0)),U("click",K,y),E(e,k),se()}le(["click"]);var V3=T(`<div class="admin-key-created"><div class="admin-key-created-label">New key — copy now, it won't be shown again:</div> <code class="admin-key-value svelte-1afg5z5"> </code> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Dismiss</button></div>`),B3=T('<div class="admin-error svelte-1afg5z5"> </div>'),U3=T('<form class="admin-create-form svelte-1afg5z5"><input class="admin-input svelte-1afg5z5" type="text" placeholder="Key label"/> <button type="submit" class="admin-btn svelte-1afg5z5">Create</button> <!></form>'),F3=T('<p class="admin-muted svelte-1afg5z5">Loading...</p>'),H3=T('<p class="admin-error svelte-1afg5z5"> </p>'),K3=T('<p class="admin-muted svelte-1afg5z5">No API keys. Create one to enable external access.</p>'),W3=T('<button type="button" class="admin-btn-danger svelte-1afg5z5">Confirm</button> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Cancel</button>',1),Y3=T('<button type="button" class="admin-btn-danger svelte-1afg5z5">Revoke</button>'),G3=T('<li class="admin-key-item svelte-1afg5z5"><div class="admin-key-info svelte-1afg5z5"><span class="admin-key-label svelte-1afg5z5"> </span> <span class="admin-key-meta svelte-1afg5z5"> </span></div> <div class="admin-key-actions svelte-1afg5z5"><!></div></li>'),X3=T('<ul class="admin-key-list svelte-1afg5z5"></ul>'),J3=T('<div class="admin-keys svelte-1afg5z5"><div class="admin-keys-header svelte-1afg5z5"><h2 class="svelte-1afg5z5">API Keys</h2> <button type="button" class="admin-btn svelte-1afg5z5"> </button></div> <!> <!> <!></div>');function Z3(e,t){re(t,!0);let n=V(oe([])),r=V(!0),s=V(null),a=V(!1),o=V(""),l=V(null),c=V(null),u=V(null);async function d(){S(r,!0),S(s,null);try{const j=await fetch("/api/admin/keys",{credentials:"include"});if(!j.ok)throw new Error("Failed to fetch keys");S(n,await j.json(),!0)}catch(j){S(s,j instanceof Error?j.message:"Failed to load keys",!0)}finally{S(r,!1)}}async function v(){S(l,null);try{const j=await fetch("/api/admin/keys",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({label:i(o)})});if(!j.ok){const B=await j.json().catch(()=>({}));S(l,B.error||"Failed to create key",!0);return}const z=await j.json();S(c,{id:z.id,key:z.key},!0),S(o,""),S(a,!1),await d()}catch{S(l,"Network error")}}async function p(j){S(u,null);try{await fetch(`/api/admin/keys/${j}`,{method:"DELETE",credentials:"include"}),i(c)?.id===j&&S(c,null),await d()}catch{}}function b(j){return new Date(j).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}d();var x=J3(),_=h(x),y=w(h(_),2),k=h(y,!0);f(y),f(_);var g=w(_,2);{var m=j=>{var z=V3(),B=w(h(z),2),N=h(B,!0);f(B);var q=w(B,2);f(z),O(()=>L(N,i(c).key)),U("click",q,()=>{S(c,null)}),E(j,z)};H(g,j=>{i(c)&&j(m)})}var I=w(g,2);{var P=j=>{var z=U3(),B=h(z);ge(B);var N=w(B,2),q=w(N,2);{var Y=W=>{var X=B3(),Q=h(X,!0);f(X),O(()=>L(Q,i(l))),E(W,X)};H(q,W=>{i(l)&&W(Y)})}f(z),O(W=>N.disabled=W,[()=>!i(o).trim()]),Me("submit",z,W=>{W.preventDefault(),v()}),Se(B,()=>i(o),W=>S(o,W)),E(j,z)};H(I,j=>{i(a)&&j(P)})}var A=w(I,2);{var C=j=>{var z=F3();E(j,z)},D=j=>{var z=H3(),B=h(z,!0);f(z),O(()=>L(B,i(s))),E(j,z)},R=j=>{var z=K3();E(j,z)},M=j=>{var z=X3();he(z,21,()=>i(n),B=>B.id,(B,N)=>{var q=G3(),Y=h(q),W=h(Y),X=h(W,!0);f(W);var Q=w(W,2),ae=h(Q);f(Q),f(Y);var K=w(Y,2),G=h(K);{var ie=Z=>{var de=W3(),ye=pe(de),Ue=w(ye,2);U("click",ye,()=>p(i(N).id)),U("click",Ue,()=>{S(u,null)}),E(Z,de)},ue=Z=>{var de=Y3();U("click",de,()=>{S(u,i(N).id,!0)}),E(Z,de)};H(G,Z=>{i(u)===i(N).id?Z(ie):Z(ue,-1)})}f(K),f(q),O(Z=>{L(X,i(N).label),L(ae,`${i(N).id??""} · ${Z??""}`)},[()=>b(i(N).createdAt)]),E(B,q)}),f(z),E(j,z)};H(A,j=>{i(r)?j(C):i(s)?j(D,1):i(n).length===0?j(R,2):j(M,-1)})}f(x),O(()=>L(k,i(a)?"Cancel":"New key")),U("click",y,()=>{S(a,!i(a))}),E(e,x),se()}le(["click"]);const Q3={manifest:{id:"sh3-admin",label:"Admin",version:fn,views:[{id:"sh3-admin:users",label:"Users"},{id:"sh3-admin:auth",label:"Auth Settings"},{id:"sh3-admin:system",label:"System"},{id:"sh3-admin:keys",label:"API Keys"}]},activate(e){const t={mount(a,o){const l=Le(T3,{target:a});return{unmount(){He(l)}}}},n={mount(a,o){const l=Le(z3,{target:a});return{unmount(){He(l)}}}},r={mount(a,o){const l=Le(q3,{target:a});return{unmount(){He(l)}}}},s={mount(a,o){const l=Le(Z3,{target:a});return{unmount(){He(l)}}}};e.registerView("sh3-admin:users",t),e.registerView("sh3-admin:auth",n),e.registerView("sh3-admin:system",r),e.registerView("sh3-admin:keys",s)}},$3={manifest:{id:"sh3-admin-app",label:"Admin",version:fn,requiredShards:["sh3-admin"],layoutVersion:1,admin:!0},initialLayout:{type:"tabs",activeTab:0,tabs:[{slotId:"admin.users",viewId:"sh3-admin:users",label:"Users"},{slotId:"admin.auth",viewId:"sh3-admin:auth",label:"Auth"},{slotId:"admin.system",viewId:"sh3-admin:system",label:"System"},{slotId:"admin.keys",viewId:"sh3-admin:keys",label:"Keys"}]}},mc="sh3:migrations:shell-rename:done",bc="__shell__:",e2="__sh3core__:",gc="sh3:user:__shell__:theme",_c="sh3:user:__sh3core__:theme";function t2(e,t){if(t.getItem(mc))return;const n=t.getItem(gc);n!==null&&t.getItem(_c)===null&&(t.setItem(_c,n),t.removeItem(gc));for(const r of e.keys()){if(!r.startsWith(bc))continue;const s=e2+r.slice(bc.length),a=e.read(r);e.write(s,a),e.delete(r)}t.setItem(mc,"1")}let yc=!1,wc=null;function n2(){yc||(yc=!0,wc=e=>{const t=e.state?.sh3;t==="anchor"?(_g(),history.forward()):t==="forward-bumper"&&(yg(),history.back())},window.addEventListener("popstate",wc),history.replaceState({sh3:"anchor"},""),history.pushState({sh3:"main"},""),history.pushState({sh3:"forward-bumper"},""),history.back())}function r2(e){Go(e)}function s2(){const e=tn.workspace;return{keys:()=>e.list(),read:t=>e.read(t),write:(t,n)=>e.write(t,n),delete:t=>e.delete(t)}}async function a2(e){if(typeof globalThis.localStorage<"u"){t2(s2(),globalThis.localStorage);const{migrateLegacyWorkspaceKeys:a}=await yr(async()=>{const{migrateLegacyWorkspaceKeys:l}=await import("./workspace-rekey-DRgvbNY-.js");return{migrateLegacyWorkspaceKeys:l}},[]),{getActiveScopeId:o}=await yr(async()=>{const{getActiveScopeId:l}=await Promise.resolve().then(()=>dw);return{getActiveScopeId:l}},void 0);a(o())}const t=new Set(e?.excludeShards),n=[jx,g3,yx,Q3,qk,r0];for(const a of n)t.has(a.manifest.id)||Go(a);const r=[_3,$3];for(const a of r)Ro(a);await j0();for(const[a,o]of un)if(o.autostart){Cy(a);try{await wf(a,{phase:"autostart"})}catch{}}const s=Sf();if(s&&Cn.has(s))try{await bn(s)}catch(a){console.error(`[sh3] Auto-launch of "${s}" failed:`,a),Ef()}bg({returnToHome:Ps,launchApp:bn}),typeof window<"u"&&typeof history<"u"&&n2()}var i2=T('<button type="button" aria-label="Expand pane"><span class="collapse-icon"> </span></button>'),o2=T('<button type="button" aria-label="Collapse pane"><span class="collapse-icon"> </span></button>'),l2=T('<!> <div class="pane-content svelte-1adl4o1"><!></div>',1),c2=T('<div role="separator"></div>'),u2=T("<div><!></div> <!>",1),d2=T("<div></div>");function f2(e,t){re(t,!0);const n=40,r=28;let s;const a=k=>t.pinned?.[k]??"fr",o=k=>t.collapsed?.[k]??!1,l=k=>t.fixed?.[k]??!1,c=k=>l(k)||l(k+1);function u(k){if(l(k))return!1;const g=k>0?!l(k-1):!1,m=k<t.count-1?!l(k+1):!1;return g||m}function d(k){return o(k)?`0 0 ${r}px`:a(k)==="px"?`0 0 ${Math.max(n,t.sizes[k])}px`:`${Math.max(1e-4,t.sizes[k])} 1 0`}let v=V(null);function p(k,g){if(o(g)||o(g+1)||c(g))return;k.preventDefault(),k.target.setPointerCapture(k.pointerId);const m=s.getBoundingClientRect(),I=t.direction==="horizontal"?m.width:m.height;let P=0,A=0;for(let C=0;C<t.sizes.length;C++)a(C)==="fr"?P+=t.sizes[C]:A+=Math.max(n,t.sizes[C]);S(v,{handleIndex:g,startClient:t.direction==="horizontal"?k.clientX:k.clientY,startSizes:t.sizes.slice(),containerPx:I,totalFr:P,frAvailPx:Math.max(1,I-A)},!0)}function b(k){if(!i(v))return;const m=(t.direction==="horizontal"?k.clientX:k.clientY)-i(v).startClient,I=i(v).handleIndex,P=I+1,A=a(I),C=a(P),D=i(v).totalFr/i(v).frAvailPx;if(A==="fr"&&C==="fr"){const R=n*D,M=m*D,j=i(v).startSizes[P]-R,z=-(i(v).startSizes[I]-R),B=Math.min(Math.max(M,z),j);t.onResize?.(I,i(v).startSizes[I]+B),t.onResize?.(P,i(v).startSizes[P]-B)}else if(A==="px"&&C==="fr"){const R=i(v).frAvailPx-n,M=n-i(v).startSizes[I];t.onResize?.(I,i(v).startSizes[I]+Math.min(Math.max(m,M),R))}else if(A==="fr"&&C==="px"){const R=i(v).startSizes[P]-n,M=-(i(v).frAvailPx-n);t.onResize?.(P,i(v).startSizes[P]-Math.min(Math.max(m,M),R))}else{const R=i(v).startSizes[P]-n,M=-(i(v).startSizes[I]-n),j=Math.min(Math.max(m,M),R);t.onResize?.(I,i(v).startSizes[I]+j),t.onResize?.(P,i(v).startSizes[P]-j)}}function x(k){i(v)&&(k.target.releasePointerCapture(k.pointerId),S(v,null))}var _=d2();let y;he(_,21,()=>Array(t.count),Bt,(k,g,m)=>{var I=u2(),P=pe(I);let A;var C=h(P);{var D=B=>{var N=i2();let q;var Y=h(N),W=h(Y,!0);f(Y),f(N),O(()=>{q=ce(N,1,"collapse-header svelte-1adl4o1",null,q,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),L(W,t.direction==="horizontal"?"▸":"▾")}),U("click",N,()=>t.onCollapseToggle?.(m,!1)),E(B,N)},R=F(()=>o(m)),M=B=>{var N=l2(),q=pe(N);{var Y=ae=>{var K=o2();let G;ne(K,"data-testid",`collapse-toggle-${m}`);var ie=h(K),ue=h(ie,!0);f(ie),f(K),O(()=>{G=ce(K,1,"collapse-header expanded svelte-1adl4o1",null,G,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),L(ue,t.direction==="horizontal"?"◂":"▴")}),U("click",K,()=>t.onCollapseToggle?.(m,!0)),E(ae,K)},W=F(()=>t.onCollapseToggle&&u(m));H(q,ae=>{i(W)&&ae(Y)})}var X=w(q,2),Q=h(X);en(Q,()=>t.pane,()=>m),f(X),E(B,N)};H(C,B=>{i(R)?B(D):B(M,-1)})}f(P);var j=w(P,2);{var z=B=>{var N=c2();let q;ne(N,"data-testid",`splitter-handle-${m}`),O(Y=>{q=ce(N,1,"splitter-handle svelte-1adl4o1",null,q,Y),ne(N,"aria-orientation",t.direction==="horizontal"?"vertical":"horizontal")},[()=>({dragging:i(v)?.handleIndex===m,disabled:o(m)||o(m+1),frozen:c(m)})]),U("pointerdown",N,Y=>p(Y,m)),U("pointermove",N,b),U("pointerup",N,x),Me("pointercancel",N,x),U("dblclick",N,()=>{c(m)||!u(m)&&!o(m)||t.onCollapseToggle?.(m,!o(m))}),E(B,N)};H(j,B=>{m<t.count-1&&B(z)})}O((B,N)=>{A=ce(P,1,"splitter-pane svelte-1adl4o1",null,A,B),Ye(P,`flex: ${N??""};`)},[()=>({collapsed:o(m)}),()=>d(m)]),E(k,I)}),f(_),Oe(_,k=>s=k,()=>s),O(()=>y=ce(_,1,"splitter svelte-1adl4o1",null,y,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"})),E(e,_),se()}le(["click","pointerdown","pointermove","pointerup","dblclick"]);function v2(e,t,n){if(!n)return null;const r=n.getBoundingClientRect(),s=t.filter(l=>!!l);if(s.length===0)return{left:4,top:2,height:r.height-4};const a=Math.max(0,Math.min(e,s.length));let o;return a===s.length?o=s[s.length-1].getBoundingClientRect().right:o=s[a].getBoundingClientRect().left,{left:o-r.left-1,top:2,height:r.height-4}}var h2=T('<span class="tab-dirty svelte-1kxcyhf" title="Unsaved changes"></span>'),p2=T('<span class="tab-icon svelte-1kxcyhf"> </span>'),m2=T('<span class="tab-close svelte-1kxcyhf" role="button" tabindex="-1" title="Close">&#x2715;</span>'),b2=T('<button type="button" role="tab"><!> <!> <span class="tab-label svelte-1kxcyhf"> </span> <!></button>'),g2=T('<div class="drop-indicator svelte-1kxcyhf"></div>'),_2=T("<div><!></div>"),y2=T('<div class="tabbed-panel svelte-1kxcyhf"><div class="tab-strip svelte-1kxcyhf" role="tablist" tabindex="-1"><!> <!></div> <div class="tab-body svelte-1kxcyhf" role="tabpanel"></div></div>');function w2(e,t){re(t,!0);function n(y){t.clickGuard?.()||t.onActiveChange?.(y)}function r(y,k){k.stopPropagation(),t.onClose?.(y)}let s=V(void 0);const a=oe([]);let o=V(null);function l(y,k){if(!t.dragController)return;const g=a[y];g&&t.dragController.onPointerDown(y,k,g)}function c(y){if(!t.dragController||!t.dragController.isDragging||!i(s))return;const k=i(s).getBoundingClientRect(),g=a.filter(m=>!!m).map(m=>m.getBoundingClientRect());S(o,t.dragController.onStripHover(k,y.clientX,y.clientY,g),!0)}function u(){t.dragController&&(S(o,null),t.dragController.onStripLeave())}var d=y2(),v=h(d),p=h(v);he(p,17,()=>t.labels,Bt,(y,k,g)=>{var m=b2();let I;var P=h(m);{var A=B=>{var N=h2();E(B,N)};H(P,B=>{t.dirty?.[g]&&B(A)})}var C=w(P,2);{var D=B=>{var N=p2(),q=h(N,!0);f(N),O(()=>L(q,t.icons[g])),E(B,N)};H(C,B=>{t.icons?.[g]&&B(D)})}var R=w(C,2),M=h(R,!0);f(R);var j=w(R,2);{var z=B=>{var N=m2();O(()=>ne(N,"data-testid",t.tabIds?.[g]?`tab-close-${t.tabIds[g]}`:void 0)),U("click",N,q=>r(g,q)),U("keydown",N,q=>{(q.key==="Enter"||q.key===" ")&&r(g,q)}),E(B,N)};H(j,B=>{t.closable?.[g]&&B(z)})}f(m),Oe(m,(B,N)=>a[N]=B,B=>a?.[B],()=>[g]),O(()=>{I=ce(m,1,"tab svelte-1kxcyhf",null,I,{active:t.activeTab===g}),ne(m,"aria-selected",t.activeTab===g),L(M,i(k))}),U("click",m,()=>n(g)),U("pointerdown",m,B=>l(g,B)),Me("auxclick",m,B=>{B.button===1&&t.closable?.[g]&&r(g,B)}),E(y,m)});var b=w(p,2);{var x=y=>{const k=F(()=>v2(i(o),a,i(s)));var g=Xe(),m=pe(g);{var I=P=>{var A=g2();O(()=>Ye(A,`left: ${i(k).left??""}px; height: ${i(k).height??""}px; top: ${i(k).top??""}px;`)),E(P,A)};H(m,P=>{i(k)&&P(I)})}E(y,g)};H(b,y=>{i(o)!==null&&t.dragController?.isDragging&&y(x)})}f(v),Oe(v,y=>S(s,y),()=>i(s));var _=w(v,2);he(_,21,()=>t.labels,Bt,(y,k,g)=>{var m=_2();let I;var P=h(m);en(P,()=>t.body,()=>g),f(m),O(()=>I=ce(m,1,"tab-body-pane svelte-1kxcyhf",null,I,{active:t.activeTab===g})),E(y,m)}),f(_),f(d),U("pointermove",v,c),Me("pointerleave",v,u),E(e,d),se()}le(["pointermove","click","pointerdown","keydown"]);var k2=T('no factory for <code class="svelte-1czj0s8"> </code>',1),x2=T("<em>empty slot</em>"),S2=T('<div class="slot-placeholder svelte-1czj0s8"><div class="slot-id svelte-1czj0s8"> </div> <div class="slot-meta svelte-1czj0s8"><!></div> <div class="slot-dims svelte-1czj0s8"> </div></div>'),E2=T('<div class="slot svelte-1czj0s8"><!></div>');function kc(e,t){re(t,!0);let n=J(t,"label",3,""),r=V(void 0),s=V(0),a=V(0);const o=F(()=>t.node.viewId?!!jd(t.node.viewId):!1);Ae(()=>{if(!i(r))return;const d=t.node.slotId,v=i(r),p=Vo(d,t.node.viewId,n()||t.node.viewId||d,t.meta);v.appendChild(p);const b=new ResizeObserver(x=>{for(const _ of x){const y=_.contentRect;S(s,Math.round(y.width),!0),S(a,Math.round(y.height),!0)}});return b.observe(v),()=>{b.disconnect(),Bo(d,v)}});var l=E2(),c=h(l);{var u=d=>{var v=S2(),p=h(v),b=h(p,!0);f(p);var x=w(p,2),_=h(x);{var y=I=>{var P=k2(),A=w(pe(P)),C=h(A,!0);f(A),O(()=>L(C,t.node.viewId)),E(I,P)},k=I=>{var P=x2();E(I,P)};H(_,I=>{t.node.viewId?I(y):I(k,-1)})}f(x);var g=w(x,2),m=h(g);f(g),f(v),O(()=>{L(b,t.node.slotId),L(m,`${i(s)??""} × ${i(a)??""}`)}),E(d,v)};H(c,d=>{i(o)||d(u)})}f(l),Oe(l,d=>S(r,d),()=>i(r)),O(()=>{ne(l,"data-slot-id",t.node.slotId),ne(l,"data-view-id",t.node.viewId??"")}),E(e,l),se()}const _e=oe({phase:"idle",source:null,pointerX:0,pointerY:0,target:null});let ev=0;function I2(){return performance.now()<ev}const xc=4;let tv=0,nv=0;function A2(e,t,n,r,s){if(_e.phase!=="idle")return;const a=s.getBoundingClientRect();_e.phase="pending",_e.source={slotId:e,entry:t,sourceRoot:n,startRect:a,offsetX:r.clientX-a.left,offsetY:r.clientY-a.top},_e.pointerX=r.clientX,_e.pointerY=r.clientY,_e.target=null,tv=r.clientX,nv=r.clientY,C2()}function C2(){window.addEventListener("pointermove",rv,!0),window.addEventListener("pointerup",sv,!0),window.addEventListener("pointercancel",av,!0),document.body.style.userSelect="none",document.body.dataset.dragging=""}function T2(){window.removeEventListener("pointermove",rv,!0),window.removeEventListener("pointerup",sv,!0),window.removeEventListener("pointercancel",av,!0),document.body.style.userSelect="",delete document.body.dataset.dragging}function rv(e){if(_e.pointerX=e.clientX,_e.pointerY=e.clientY,_e.phase==="pending"){const t=e.clientX-tv,n=e.clientY-nv;t*t+n*n>=xc*xc&&(_e.phase="dragging")}}function sv(e){_e.phase==="dragging"&&(R2(),ev=performance.now()+50),iv()}function av(e){iv()}function Sc(e){const t=ln.tree;if(e.kind==="docked")return t.docked;const n=t.floats.find(r=>r.id===e.floatId);return n?n.content:null}function Ec(e){if(e.kind!=="float")return;const t=ln.tree,n=t.floats.findIndex(r=>r.id===e.floatId);n<0||bd(t.floats[n].content)&&t.floats.splice(n,1)}function R2(){const{source:e,target:t}=_e;if(!e||!t)return;const n=Sc(e.sourceRoot),r=Sc(t.root);if(!n||!r)return;if(t.kind==="strip"){const a=t.tabsNode.tabs.findIndex(o=>o.slotId===e.slotId);if(a>=0){ly(t.tabsNode,a,t.insertIndex),fr(n),r!==n&&fr(r),Ec(e.sourceRoot);return}}const s=Oa(n,e.slotId);s&&(t.kind==="strip"?oy(t.tabsNode,s,t.insertIndex):Ld(r,t.path,s,t.side),fr(n),r!==n&&fr(r),Ec(e.sourceRoot))}function iv(){_e.phase="idle",_e.source=null,_e.target=null,T2()}function Ji(e){_e.phase==="dragging"&&(_e.target=e)}function gr(e){_e.phase==="dragging"&&_e.target&&(e&&!e(_e.target)||(_e.target=null))}var P2=T("<div></div>"),j2=T('<div class="quad-target quad-left svelte-re71zu" data-testid="drop-zone-left"></div> <div class="quad-target quad-right svelte-re71zu" data-testid="drop-zone-right"></div> <div class="quad-target quad-top svelte-re71zu" data-testid="drop-zone-top"></div> <div class="quad-target quad-bottom svelte-re71zu" data-testid="drop-zone-bottom"></div>',1),D2=T("<!> <!>",1),z2=T("<div><!></div>");function Ic(e,t){re(t,!0);let n=V(void 0),r=V(null);const s=F(()=>_e.phase==="dragging"),a=F(()=>{let b;return t.rootRef.kind==="docked"?b=ln.root:b=ln.tree.floats.find(_=>_.id===t.rootRef.floatId)?.content??null,b?Md(b,t.path):!1});function o(b,x,_){const y=_.left+_.width/2,k=_.top+_.height/2,g=b-y,m=x-k,I=g/_.width,P=m/_.height;return Math.abs(I)>Math.abs(P)?I<0?"left":"right":P<0?"top":"bottom"}function l(b){if(!i(n))return;if(i(a)){i(r)!==null&&(S(r,null),gr(y=>y.kind==="split"&&y.path.join("/")===t.path.join("/")));return}const x=i(n).getBoundingClientRect();if(b.clientX<x.left||b.clientX>x.right||b.clientY<x.top||b.clientY>x.bottom){i(r)!==null&&(S(r,null),gr(y=>y.kind==="split"&&y.path.join("/")===t.path.join("/")));return}const _=o(b.clientX,b.clientY,x);if(_!==i(r)){S(r,_,!0);const y={kind:"split",root:t.rootRef,path:[...t.path],side:_};Ji(y)}}function c(){i(r)!==null&&(S(r,null),gr(b=>b.kind==="split"&&b.path.join("/")===t.path.join("/")))}var u=z2();let d;var v=h(u);{var p=b=>{var x=D2(),_=pe(x);{var y=m=>{var I=P2();O(()=>ce(I,1,`quad-highlight quad-${i(r)??""}`,"svelte-re71zu")),E(m,I)};H(_,m=>{i(r)&&m(y)})}var k=w(_,2);{var g=m=>{var I=j2();Gt(6),E(m,I)};H(k,m=>{i(s)&&m(g)})}E(b,x)};H(v,b=>{i(a)||b(p)})}f(u),Oe(u,b=>S(n,b),()=>i(n)),O(()=>d=ce(u,1,"slot-drop-zone svelte-re71zu",null,d,{active:i(s),locked:i(a)})),U("pointermove",u,l),Me("pointerleave",u,c),E(e,u),se()}le(["pointermove"]);var L2=T('<div class="tab-slot-wrapper svelte-1gw9g38"><!> <!></div>'),M2=T('<div class="empty-tabs-custom svelte-1gw9g38"></div>'),O2=T('<div class="empty-tabs-default svelte-1gw9g38"><div class="empty-tabs-drop svelte-1gw9g38"></div></div>'),N2=T('<div class="empty-tabs-placeholder svelte-1gw9g38"><!></div>'),q2=T('<div class="leaf-slot-wrapper svelte-1gw9g38"><!> <!></div>');function ll(e,t){re(t,!0);let n=J(t,"path",19,()=>[]),r=J(t,"rootRef",19,()=>({kind:"docked"}));const s=F(()=>{let g;return r().kind==="docked"?g=ln.root:g=ln.tree.floats.find(I=>I.id===r().floatId)?.content??null,g?cs(g,n()):null});function a(g){return{get isDragging(){return _e.phase==="dragging"},onPointerDown(m,I,P){const A=g.tabs[m];A&&A2(A.slotId,A,r(),I,P)},onStripHover(m,I,P,A){if(P<m.top||P>m.bottom)return gr(R=>R.kind==="strip"&&R.tabsNode===g),null;let C=A.length;for(let R=0;R<A.length;R++){const M=A[R],j=M.left+M.width/2;if(I<j){C=R;break}}const D=_e.source;if(D){const R=g.tabs.findIndex(M=>M.slotId===D.slotId);R>=0&&R<C&&(C-=1)}return Ji({kind:"strip",root:r(),tabsNode:g,insertIndex:C}),C},onStripLeave(){gr(m=>m.kind==="strip"&&m.tabsNode===g)}}}function o(g){return g.type==="split"?g:null}function l(g){return g.type==="tabs"?g:null}function c(g){return g.type==="slot"?g:null}function u(g){return g.map(m=>vy(m.slotId)||void 0)}function d(g){return g.map(m=>fy(m.slotId)||void 0)}function v(g,m){const I=g[m];I&&Jo(I.slotId)}function p(g,m){m(g)}function b(g,m){_e.phase==="dragging"&&Ji({kind:"strip",root:r(),tabsNode:m,insertIndex:0})}function x(){gr(g=>g.kind==="strip"&&g.insertIndex===0)}var _=Xe(),y=pe(_);{var k=g=>{var m=Xe(),I=pe(m);{var P=D=>{const R=(j,z=xt)=>{{let B=F(()=>[...n(),z()]);ll(j,{get rootRef(){return r()},get path(){return i(B)}})}},M=F(()=>o(i(s)));f2(D,{get direction(){return i(M).direction},get sizes(){return i(M).sizes},get pinned(){return i(M).pinned},get collapsed(){return i(M).collapsed},get fixed(){return i(M).fixed},get count(){return i(M).children.length},get pane(){return R},onResize:(j,z)=>i(M).sizes[j]=z,onCollapseToggle:(j,z)=>{i(M).collapsed||(i(M).collapsed=i(M).children.map(()=>!1)),i(M).collapsed[j]=z}})},A=D=>{const R=F(()=>l(i(s)));var M=Xe(),j=pe(M);{var z=N=>{const q=(W,X=xt)=>{const Q=F(()=>i(R)?.tabs[X()]);var ae=Xe(),K=pe(ae);{var G=ie=>{var ue=L2(),Z=h(ue);{let ye=F(()=>({type:"slot",slotId:i(Q).slotId,viewId:i(Q).viewId}));kc(Z,{get node(){return i(ye)},get label(){return i(Q).label},get meta(){return i(Q).meta}})}var de=w(Z,2);Ic(de,{get rootRef(){return r()},get path(){return n()}}),f(ue),E(ie,ue)};H(K,ie=>{i(Q)&&ie(G)})}E(W,ae)},Y=F(()=>a(i(R)));{let W=F(()=>i(R).tabs.map(G=>G.label)),X=F(()=>i(R).tabs.map(G=>G.icon)),Q=F(()=>u(i(R).tabs)),ae=F(()=>d(i(R).tabs)),K=F(()=>i(R).tabs.map(G=>G.slotId));w2(N,{get labels(){return i(W)},get icons(){return i(X)},get activeTab(){return i(R).activeTab},onActiveChange:G=>i(R).activeTab=G,get body(){return q},get dragController(){return i(Y)},get clickGuard(){return I2},get closable(){return i(Q)},get dirty(){return i(ae)},onClose:G=>v(i(R).tabs,G),get tabIds(){return i(K)}})}},B=N=>{var q=N2(),Y=h(q);{var W=Q=>{var ae=M2();$u(ae,(K,G)=>p?.(K,G),()=>i(R).emptyRenderer),E(Q,ae)},X=Q=>{var ae=O2(),K=h(ae);f(ae),U("pointermove",K,G=>b(G,i(R))),Me("pointerleave",K,x),E(Q,ae)};H(Y,Q=>{i(R).emptyRenderer?Q(W):Q(X,-1)})}f(q),E(N,q)};H(j,N=>{i(R)&&i(R).tabs.length>0?N(z):i(R)?.persistent&&N(B,1)})}E(D,M)},C=D=>{const R=F(()=>c(i(s)));var M=q2(),j=h(M);kc(j,{get node(){return i(R)}});var z=w(j,2);Ic(z,{get rootRef(){return r()},get path(){return n()}}),f(M),E(D,M)};H(I,D=>{i(s).type==="split"?D(P):i(s).type==="tabs"?D(A,1):D(C,-1)})}E(g,m)};H(y,g=>{i(s)&&g(k)})}E(e,_),se()}le(["pointermove"]);var V2=T('<span class="drag-preview-icon svelte-133fiip"> </span>'),B2=T('<div class="drag-preview svelte-133fiip"><!> <span class="drag-preview-label svelte-133fiip"> </span></div>');function U2(e,t){re(t,!0);const n=F(()=>_e.phase==="dragging"&&!!_e.source),r=F(()=>_e.source?_e.pointerX-_e.source.offsetX:0),s=F(()=>_e.source?_e.pointerY-_e.source.offsetY:0),a=F(()=>_e.source?.startRect.width??0),o=F(()=>_e.source?.startRect.height??0),l=F(()=>_e.source?.entry.label??""),c=F(()=>_e.source?.entry.icon);var u=Xe(),d=pe(u);{var v=p=>{var b=B2(),x=h(b);{var _=g=>{var m=V2(),I=h(m,!0);f(m),O(()=>L(I,i(c))),E(g,m)};H(x,g=>{i(c)&&g(_)})}var y=w(x,2),k=h(y,!0);f(y),f(b),O(()=>{Ye(b,`left: ${i(r)??""}px; top: ${i(s)??""}px; width: ${i(a)??""}px; height: ${i(o)??""}px;`),L(k,i(l))}),E(p,b)};H(d,p=>{i(n)&&p(v)})}E(e,u),se()}const _r=new Map;let ba=!1;function ov(e){if(_r.size===0)return;const t=e.target;if(!t)return;const n=Array.from(_r.keys());for(const r of n){const s=_r.get(r);s&&(s.contains(t)||dt.close(r))}}function F2(){ba||typeof document>"u"||(document.addEventListener("pointerdown",ov,!0),ba=!0)}function H2(){ba&&(_r.size>0||(document.removeEventListener("pointerdown",ov,!0),ba=!1))}function K2(e,t){_r.set(e,t),F2()}function W2(e){_r.delete(e),H2()}var Y2=T('<header class="sh3-float-header svelte-1p734al"><span class="sh3-float-title svelte-1p734al"> </span> <button class="sh3-float-close svelte-1p734al" aria-label="Close float">×</button></header>'),G2=T('<div class="sh3-float-frame svelte-1p734al" role="dialog" tabindex="-1"><!> <div class="sh3-float-body svelte-1p734al"><!></div></div>');function X2(e,t){re(t,!0);const n=J(t,"entry",7);let r=V(!1),s={x:0,y:0},a=V(void 0);Ae(()=>{if(n().dismissable&&i(a))return K2(n().id,i(a)),()=>W2(n().id)});function o(k){if(k.button!==0||k.target.closest(".sh3-float-close"))return;k.currentTarget.setPointerCapture(k.pointerId),S(r,!0),s={x:k.clientX-n().position.x,y:k.clientY-n().position.y},dt.focus(n().id)}function l(k){i(r)&&(n().position.x=k.clientX-s.x,n().position.y=k.clientY-s.y)}function c(k){if(!i(r))return;S(r,!1);const g=k.currentTarget;g.hasPointerCapture(k.pointerId)&&g.releasePointerCapture(k.pointerId)}function u(){dt.focus(n().id)}function d(k){k.stopPropagation(),dt.close(n().id)}var v=G2();let p;var b=h(v);{var x=k=>{var g=Y2(),m=h(g),I=h(m,!0);f(m);var P=w(m,2);f(g),O(()=>L(I,n().title)),U("pointerdown",g,o),U("pointermove",g,l),U("pointerup",g,c),Me("pointercancel",g,c),U("click",P,d),E(k,g)};H(b,k=>{n().title&&k(x)})}var _=w(b,2),y=h(_);{let k=F(()=>({kind:"float",floatId:n().id}));ll(y,{get rootRef(){return i(k)},path:[]})}f(_),f(v),Oe(v,k=>S(a,k),()=>i(a)),O(()=>{ne(v,"aria-label",n().title??"Float panel"),p=Ye(v,"",p,{left:`${n().position.x??""}px`,top:`${n().position.y??""}px`,width:`${n().size.w??""}px`,height:`${n().size.h??""}px`})}),U("click",v,u),E(e,v),se()}le(["click","pointerdown","pointermove","pointerup"]);var J2=T('<div class="sh3-float-layer svelte-1rzcset"></div>');function Z2(e,t){re(t,!0);const n=F(()=>ln.floats);var r=J2();he(r,21,()=>i(n),s=>s.id,(s,a)=>{X2(s,{get entry(){return i(a)}})}),f(r),E(e,r),se()}var Q2=T('<div class="guest-signin-error svelte-pymkh"> </div>'),$2=T('<div class="guest-signin-overlay svelte-pymkh" role="dialog"><div class="guest-signin-card svelte-pymkh"><form class="guest-signin-form svelte-pymkh"><input class="guest-signin-input svelte-pymkh" type="text" placeholder="Username" autocomplete="username"/> <input class="guest-signin-input svelte-pymkh" type="password" placeholder="Password" autocomplete="current-password"/> <div class="guest-signin-actions svelte-pymkh"><button type="submit" class="guest-signin-btn svelte-pymkh"> </button> <button type="button" class="guest-signin-cancel svelte-pymkh">Cancel</button></div></form> <!></div></div>'),eE=T('<div class="guest-banner svelte-pymkh"><span class="guest-banner-text">Browsing as guest. Sign in to save your work.</span> <button type="button" class="guest-banner-action svelte-pymkh">Sign in</button></div> <!>',1),tE=T('<div class="guest-banner-slot"><!></div>');function nE(e,t){re(t,!0);let n=V(!1),r=V(""),s=V(""),a=V(null),o=V(!1);async function l(){if(!i(r).trim()||!i(s).trim()||i(o))return;S(o,!0),S(a,null);const p=await lf(i(r).trim(),i(s).trim());S(o,!1),p.ok?S(n,!1):S(a,p.error,!0)}var c=tE(),u=h(c);{var d=p=>{var b=eE(),x=pe(b),_=w(h(x),2);f(x);var y=w(x,2);{var k=g=>{var m=$2(),I=h(m),P=h(I),A=h(P);ge(A);var C=w(A,2);ge(C);var D=w(C,2),R=h(D),M=h(R,!0);f(R);var j=w(R,2);f(D),f(P);var z=w(P,2);{var B=N=>{var q=Q2(),Y=h(q,!0);f(q),O(()=>L(Y,i(a))),E(N,q)};H(z,N=>{i(a)&&N(B)})}f(I),f(m),O(N=>{A.disabled=i(o),C.disabled=i(o),R.disabled=N,L(M,i(o)?"Signing in...":"Sign in")},[()=>i(o)||!i(r).trim()||!i(s).trim()]),Me("submit",P,N=>{N.preventDefault(),l()}),Se(A,()=>i(r),N=>S(r,N)),Se(C,()=>i(s),N=>S(s,N)),U("click",j,()=>{S(n,!1),S(a,null)}),E(g,m)};H(y,g=>{i(n)&&g(k)})}U("click",_,()=>{S(n,!0)}),E(p,b)},v=F(()=>cf());H(u,p=>{i(v)&&p(d)})}f(c),E(e,c),se()}le(["click"]);var rE=T('<code class="sh3-consent-scope svelte-14me5sj"> </code>'),sE=T('<dt class="svelte-14me5sj">Peer</dt> <dd class="svelte-14me5sj"> </dd>',1),aE=T('<dt class="svelte-14me5sj">Expires in</dt> <dd class="svelte-14me5sj"> </dd>',1),iE=T('<div class="sh3-consent-backdrop svelte-14me5sj" role="dialog" aria-modal="true" aria-label="Key creation consent"><div class="sh3-consent-card svelte-14me5sj"><h2 class="sh3-consent-title svelte-14me5sj"><span class="svelte-14me5sj"> </span> wants to create a key</h2> <dl class="sh3-consent-fields svelte-14me5sj"><dt class="svelte-14me5sj">Label</dt> <dd class="svelte-14me5sj"> </dd> <dt class="svelte-14me5sj">Scopes</dt> <dd class="sh3-consent-scopes svelte-14me5sj"></dd> <!> <!></dl> <div class="sh3-consent-actions svelte-14me5sj"><button type="button" class="sh3-consent-deny svelte-14me5sj">Deny</button> <button type="button" class="sh3-consent-approve svelte-14me5sj">Approve</button></div></div></div>');function oE(e,t){re(t,!0);let n=V(null);Ae(()=>_f(u=>{S(n,u,!0)}));function r(){i(n)&&(Fi(i(n).requestId,!0),S(n,null))}function s(){i(n)&&(Fi(i(n).requestId,!1),S(n,null))}var a=Xe(),o=pe(a);{var l=c=>{var u=iE(),d=h(u),v=h(d),p=h(v),b=h(p,!0);f(p),Gt(),f(v);var x=w(v,2),_=w(h(x),2),y=h(_,!0);f(_);var k=w(_,4);he(k,20,()=>i(n).scopes,R=>R,(R,M)=>{var j=rE(),z=h(j,!0);f(j),O(()=>L(z,M)),E(R,j)}),f(k);var g=w(k,2);{var m=R=>{var M=sE(),j=w(pe(M),2),z=h(j);f(j),O(()=>L(z,`${i(n).peerRole??"—"??""}${i(n).peerId?` · ${i(n).peerId}`:""}`)),E(R,M)};H(g,R=>{(i(n).peerRole||i(n).peerId)&&R(m)})}var I=w(g,2);{var P=R=>{var M=aE(),j=w(pe(M),2),z=h(j);f(j),O(B=>L(z,`${B??""}s`),[()=>Math.round(i(n).expiresIn/1e3)]),E(R,M)};H(I,R=>{i(n).expiresIn&&R(P)})}f(x);var A=w(x,2),C=h(A);Dr(C,!0);var D=w(C,2);f(A),f(d),f(u),O(()=>{L(b,i(n).shardId),L(y,i(n).label)}),U("click",C,s),U("click",D,r),E(c,u)};H(o,c=>{i(n)&&c(l)})}E(e,a),se()}le(["click"]);var lE=T('<span class="sh3-brand svelte-18lk809">SH3</span>'),cE=T('<span class="sh3-brand sh3-brand-app svelte-18lk809"> </span>'),uE=T('<span class="sh3-brand svelte-18lk809">SH3</span> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <button type="button" class="sh3-brand-crumb svelte-18lk809"> </button>',1),dE=T('<button type="button" class="sh3-brand sh3-brand-clickable svelte-18lk809" title="Exit project">SH3</button> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <span class="sh3-brand-project svelte-18lk809"> </span>',1),fE=T('<span class="sh3-brand sh3-brand-project svelte-18lk809"> </span> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <span class="sh3-brand sh3-brand-app svelte-18lk809"> </span>',1),vE=T('<button type="button" class="sh3-brand sh3-brand-clickable svelte-18lk809" title="Exit project">SH3</button> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <button type="button" class="sh3-brand-crumb svelte-18lk809"> </button> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <button type="button" class="sh3-brand-crumb svelte-18lk809"> </button>',1),hE=T('<div class="sh3-brand-slot svelte-18lk809"><!></div>');function pE(e,t){re(t,!0);const n=F(()=>Jt().activeAppId),r=F(mg),s=F(()=>Jn.activeProjectId),a=F(()=>i(n)?Tn(i(n))?.manifest.label??i(n):null),o=F(()=>i(r)?Tn(i(r))?.manifest.label??i(r):null),l=F(()=>i(s)?Mt.projects.find(I=>I.id===i(s))?.name??i(s):null),c=F(()=>i(s)?i(n)?"project-app":i(r)?"project-breadcrumb":"project-home":i(n)?"app":i(r)?"breadcrumb":"brand");function u(){i(r)&&bn(i(r))}function d(){kf(null)}function v(){i(n)&&Ps()}var p=hE(),b=h(p);{var x=I=>{var P=lE();E(I,P)},_=I=>{var P=cE(),A=h(P,!0);f(P),O(()=>L(A,i(a))),E(I,P)},y=I=>{var P=uE(),A=w(pe(P),4),C=h(A,!0);f(A),O(()=>L(C,i(o))),U("click",A,u),E(I,P)},k=I=>{var P=dE(),A=pe(P),C=w(A,4),D=h(C,!0);f(C),O(()=>L(D,i(l))),U("click",A,d),E(I,P)},g=I=>{var P=fE(),A=pe(P),C=h(A,!0);f(A);var D=w(A,4),R=h(D,!0);f(D),O(()=>{L(C,i(l)),L(R,i(a))}),E(I,P)},m=I=>{var P=vE(),A=pe(P),C=w(A,4),D=h(C,!0);f(C);var R=w(C,4),M=h(R,!0);f(R),O(()=>{L(D,i(l)),L(M,i(o))}),U("click",A,d),U("click",C,v),U("click",R,u),E(I,P)};H(b,I=>{i(c)==="brand"?I(x):i(c)==="app"?I(_,1):i(c)==="breadcrumb"?I(y,2):i(c)==="project-home"?I(k,3):i(c)==="project-app"?I(g,4):i(c)==="project-breadcrumb"&&I(m,5)})}f(p),E(e,p),se()}le(["click"]);const mE=Object.freeze([{id:"file",label:"File"},{id:"edit",label:"Edit"},{id:"view",label:"View"},{id:"window",label:"Window"},{id:"help",label:"Help"}]);function ga(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function bE(e,t){if(e==null)return[];if(t==null)return mE.slice();const n=t.map((r,s)=>({c:r,i:s}));return n.sort((r,s)=>{const a=r.c.order,o=s.c.order;return a!=null&&o!=null?a-o||r.i-s.i:a!=null?-1:o!=null?1:r.i-s.i}),n.map(r=>r.c)}function gE(e,t,n){const r=[],s=new Set;for(const a of e)a.action.menuItem!==n||a.action.submenuOf!==void 0||s.has(a.action.id)||!Rs(a.action.scope,t,a.ownerShardId)||(s.add(a.action.id),r.push({id:a.action.id,label:Ut(a.action),shortcut:Ts(a.action,t.bindings,t.platform),group:a.action.group??"",icon:a.action.icon,checked:ga(a.action.checked),disabled:ga(a.action.disabled),submenu:a.action.submenu===!0}));return r}function _E(e,t,n){const r=[],s=new Set;for(const a of e)a.action.submenuOf!==n||s.has(a.action.id)||!Rs(a.action.scope,t,a.ownerShardId)||(s.add(a.action.id),r.push({id:a.action.id,label:Ut(a.action),shortcut:Ts(a.action,t.bindings,t.platform),group:a.action.group??"",icon:a.action.icon,checked:ga(a.action.checked),disabled:ga(a.action.disabled),submenu:a.action.submenu===!0}));return r}var yE=T('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),wE=T('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),kE=T('<button type="button" class="sh3-menubar-button svelte-bke3dt"><!> <span class="sh3-menubar-label"> </span> <!></button>');function xE(e,t){re(t,!0);let n=V(void 0);function r(_){const y=new Map,k=[];for(const g of _){const m=g.group||"";y.has(m)||(y.set(m,[]),k.push(m)),y.get(m).push(g)}return k.map(g=>({id:`group:${g||"_default"}`,items:y.get(g)}))}function s(_,y,k){const g=rt().find(m=>m.action.id===_);if(!(!g||typeof g.action.run!="function")){try{g.action.run({action:{id:_,label:Ut(g.action)},appId:y.activeAppId,viewId:y.focusedViewId??void 0,selection:y.selection??void 0,invokedVia:"palette",dispatch:()=>{}})}catch(m){console.error(`[sh3] menu-bar action "${_}" threw:`,m)}k.close()}}function a(_,y,k){const g=document.querySelector(".sh3-popup-host");if(!g)return;const m=document.createElement("div");m.className="sh3-popup-submenu",m.style.position="absolute",m.style.pointerEvents="auto";const P=(g.querySelector(".sh3-ctx-active")??g).getBoundingClientRect();m.style.left=`${P.right+2}px`,m.style.top=`${P.top}px`,g.appendChild(m);const A=_E(rt(),y,_),C=Le(fa,{target:m,props:{sections:r(A),onInvoke:D=>s(D,y,k),onDismiss:()=>{He(C),m.remove()}}})}function o(){if(!i(n))return;const _=Jt(),y=Di.show(fa,{anchor:i(n),placement:"bottom-start"},{sections:r(t.items),onInvoke:k=>{const g=rt().find(m=>m.action.id===k);if(g){if(g.action.submenu===!0){a(k,_,y);return}s(k,_,y)}},onDismiss:()=>Di.close()})}const l=F(()=>t.container.iconPosition??"before");var c=kE(),u=h(c);{var d=_=>{var y=yE();O(()=>ne(y,"data-icon",t.container.icon)),E(_,y)};H(u,_=>{t.container.icon&&i(l)==="before"&&_(d)})}var v=w(u,2),p=h(v,!0);f(v);var b=w(v,2);{var x=_=>{var y=wE();O(()=>ne(y,"data-icon",t.container.icon)),E(_,y)};H(b,_=>{t.container.icon&&i(l)==="after"&&_(x)})}f(c),Oe(c,_=>S(n,_),()=>i(n)),O(()=>L(p,t.container.label)),U("click",c,o),E(e,c),se()}le(["click"]);var SE=T('<div class="sh3-menubar svelte-7gc0wa" role="menubar"></div>');function EE(e,t){re(t,!0);const n=F(Jt),r=F(()=>i(n).activeAppId),s=F(()=>{if(i(r))return Tn(i(r))?.manifest.menus}),a=F(()=>bE(i(r),i(s))),o=F(()=>{const c=[],u=rt();for(const d of i(a)){const v=gE(u,i(n),d.id);v.length>0&&c.push({container:d,items:v})}return c});var l=SE();he(l,21,()=>i(o),({container:c,items:u})=>c.id,(c,u)=>{let d=()=>i(u).container,v=()=>i(u).items;xE(c,{get container(){return d()},get items(){return v()}})}),f(l),E(e,l),se()}var IE=T('<button type="button" class="shell-tabbar-signout svelte-187fra4" title="Sign out"><svg class="shell-tabbar-signout-icon svelte-187fra4" aria-hidden="true"><use></use></svg></button>'),AE=T('<div class="shell-tabbar-user svelte-187fra4"><span class="shell-tabbar-user-name svelte-187fra4"> </span> <span class="shell-tabbar-tag svelte-187fra4"> </span> <!></div>'),CE=T('<div class="shell-overlay-root svelte-187fra4"><!></div>'),TE=T('<div class="shell svelte-187fra4"><header class="shell-tabbar svelte-187fra4" data-shell-region="tabbar"><button type="button" class="shell-tabbar-home-button svelte-187fra4" title="Home"><svg class="shell-tabbar-home-icon svelte-187fra4" aria-hidden="true"><use></use></svg></button> <!> <!> <!></header> <!> <main class="shell-content svelte-187fra4" data-shell-region="content" data-shell-layer="0"><!></main> <footer class="shell-statusbar svelte-187fra4" data-shell-region="statusbar"></footer> <div class="shell-overlays svelte-187fra4" aria-hidden="true"></div> <!></div>');function RE(e,t){re(t,!0);const n=F(Bi),r=F(Cr),s=F(bt),a=F(()=>Fd()==="home"),o=[{layer:1,name:"floating"},{layer:2,name:"drag-preview"},{layer:3,name:"popup"},{layer:4,name:"modal"},{layer:5,name:"toast"},{layer:6,name:"command"}],l=oe({});Ae(()=>{for(const{name:A}of o){const C=l[A];C&&hg(A,C)}return()=>{for(const{name:A}of o)pg(A)}}),Ae(()=>{const A=ln.tree;return Bg(A.floats,()=>({w:window.innerWidth,h:window.innerHeight})),()=>Ug()}),Ae(()=>{ln.tree,Ay()}),Ae(()=>Bi()?Rw():void 0);var c=TE(),u=h(c),d=h(u),v=h(d),p=h(v);f(v),f(d);var b=w(d,2);pE(b,{});var x=w(b,2);EE(x,{});var _=w(x,2);{var y=A=>{var C=AE(),D=h(C),R=h(D,!0);f(D);var M=w(D,2),j=h(M,!0);f(M);var z=w(M,2);{var B=q=>{var Y=IE(),W=h(Y),X=h(W);f(W),f(Y),O(()=>ne(X,"href",`${Zn}#log-out`)),U("click",Y,()=>pw()),E(q,Y)},N=F(()=>!bw());H(z,q=>{i(N)&&q(B)})}f(C),O(()=>{L(R,i(r).displayName),L(j,i(s)?"admin":"user")}),E(A,C)};H(_,A=>{i(n)&&i(r)&&A(y)})}f(u);var k=w(u,2);nE(k,{});var g=w(k,2),m=h(g);ll(m,{}),f(g);var I=w(g,4);he(I,21,()=>o,({layer:A,name:C})=>A,(A,C)=>{let D=()=>i(C).layer,R=()=>i(C).name;var M=CE(),j=h(M);{var z=N=>{Z2(N,{})},B=N=>{U2(N,{})};H(j,N=>{R()==="floating"?N(z):R()==="drag-preview"&&N(B,1)})}f(M),Oe(M,(N,q)=>l[q]=N,N=>l?.[N],()=>[R()]),O(()=>{ne(M,"data-shell-overlay",R()),ne(M,"data-shell-layer",D()),Ye(M,`z-index: var(--shell-z-layer-${D()??""});`)}),E(A,M)}),f(I);var P=w(I,2);oE(P,{}),f(c),O(()=>{d.disabled=i(a),ne(p,"href",`${Zn}#house`)}),U("click",d,()=>Ps()),E(e,c),se()}le(["click"]);var PE=T('<button type="button" class="signin-link svelte-lh4k15">Create an account</button>'),jE=T('<form class="signin-form svelte-lh4k15"><input class="signin-input svelte-lh4k15" type="text" placeholder="Username" autocomplete="username"/> <input class="signin-input svelte-lh4k15" type="password" placeholder="Password" autocomplete="current-password"/> <button type="submit" class="signin-btn svelte-lh4k15"> </button></form> <!>',1),DE=T('<form class="signin-form svelte-lh4k15"><input class="signin-input svelte-lh4k15" type="text" placeholder="Username" autocomplete="username"/> <input class="signin-input svelte-lh4k15" type="text" placeholder="Display name (optional)"/> <input class="signin-input svelte-lh4k15" type="password" placeholder="Password" autocomplete="new-password"/> <button type="submit" class="signin-btn svelte-lh4k15"> </button></form> <button type="button" class="signin-link svelte-lh4k15">Back to sign in</button>',1),zE=T('<div class="signin-error svelte-lh4k15"> </div>'),LE=T('<div class="signin-wall svelte-lh4k15"><div class="signin-card svelte-lh4k15"><h1 class="signin-brand svelte-lh4k15">SH3</h1> <!> <!></div></div>');function ME(e,t){re(t,!0);let n=V("login"),r=V(""),s=V(""),a=V(""),o=V(null),l=V(!1);async function c(){if(!i(r).trim()||!i(s).trim()||i(l))return;S(l,!0),S(o,null);const g=await lf(i(r).trim(),i(s).trim());S(l,!1),g.ok?t.onSuccess():S(o,g.error,!0)}async function u(){if(!i(r).trim()||!i(s).trim()||i(l))return;S(l,!0),S(o,null);const g=await hw(i(r).trim(),i(s).trim(),i(a).trim()||void 0);S(l,!1),g.ok?t.onSuccess():S(o,g.error,!0)}function d(g){S(n,g,!0),S(o,null)}var v=LE(),p=h(v),b=w(h(p),2);{var x=g=>{var m=jE(),I=pe(m),P=h(I);ge(P);var A=w(P,2);ge(A);var C=w(A,2),D=h(C,!0);f(C),f(I);var R=w(I,2);{var M=j=>{var z=PE();U("click",z,()=>d("register")),E(j,z)};H(R,j=>{t.selfRegistration&&j(M)})}O(j=>{P.disabled=i(l),A.disabled=i(l),C.disabled=j,L(D,i(l)?"Signing in...":"Sign in")},[()=>i(l)||!i(r).trim()||!i(s).trim()]),Me("submit",I,j=>{j.preventDefault(),c()}),Se(P,()=>i(r),j=>S(r,j)),Se(A,()=>i(s),j=>S(s,j)),E(g,m)},_=g=>{var m=DE(),I=pe(m),P=h(I);ge(P);var A=w(P,2);ge(A);var C=w(A,2);ge(C);var D=w(C,2),R=h(D,!0);f(D),f(I);var M=w(I,2);O(j=>{P.disabled=i(l),A.disabled=i(l),C.disabled=i(l),D.disabled=j,L(R,i(l)?"Creating...":"Create account")},[()=>i(l)||!i(r).trim()||!i(s).trim()]),Me("submit",I,j=>{j.preventDefault(),u()}),Se(P,()=>i(r),j=>S(r,j)),Se(A,()=>i(a),j=>S(a,j)),Se(C,()=>i(s),j=>S(s,j)),U("click",M,()=>d("login")),E(g,m)};H(b,g=>{i(n)==="login"?g(x):g(_,-1)})}var y=w(b,2);{var k=g=>{var m=zE(),I=h(m,!0);f(m),O(()=>L(I,i(o))),E(g,m)};H(y,g=>{i(o)&&g(k)})}f(p),f(v),E(e,v),se()}le(["click"]);async function OE(e){const t=e?.serverUrl??"",n=await v3();n.backends&&(Ul("workspace",n.backends.workspace),Ul("user",n.backends.user)),n.localOwner&&mw(),uf(t),Xw();const r=typeof e?.target=="string"?document.querySelector(e.target):e?.target??document.getElementById("app");if(!r)throw new Error("SH3: mount target not found");let s=null;if(!n.localOwner)try{const o=await fetch(`${t}/api/boot`,{credentials:"include"});o.ok&&(s=await o.json())}catch{}if(n.localOwner)Js("local");else if(s){ac(t,s),Js(s.tenantId);const{auth:o,session:l}=s;if(!l&&o.required&&!o.guestAllowed){await NE(r,s);const c=await fetch(`${t}/api/boot`,{credentials:"include"});c.ok&&(s=await c.json(),ac(t,s),Js(s.tenantId))}}if(e?.discoveredPackages?.length)for(const o of e.discoveredPackages)try{const l=await fetch(o.bundleUrl);if(!l.ok){console.warn(`[sh3] Failed to fetch discovered package "${o.id}": HTTP ${l.status}`);continue}const c=await l.arrayBuffer(),u=await js(c);sl(u,{version:o.version,sourceRegistry:o.sourceRegistry??"",contractVersion:o.contractVersion??""}),console.log(`[sh3] Loaded discovered package: ${o.id}`)}catch(l){console.warn(`[sh3] Failed to load discovered package "${o.id}":`,l)}if(e?.shards)for(const o of e.shards)r2(o);if(e?.apps)for(const o of e.apps)Ro(o);const a={};e?.excludeShards&&(a.excludeShards=e.excludeShards),await a2(a),rf(),Le(RE,{target:r})}function NE(e,t){return new Promise(n=>{const r=Le(ME,{target:e,props:{selfRegistration:t.auth.selfRegistration,onSuccess:()=>{He(r),n()}}})})}const cl=window.location.origin;uf(cl);of(new aw(cl));let lv=[];try{const e=await fetch("/api/packages");e.ok&&(lv=await e.json())}catch{}await OE({discoveredPackages:lv,serverUrl:cl});
22
- //# sourceMappingURL=index-COeOnrKc.js.map