sh3-server 0.11.4 → 0.11.6

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,18 +0,0 @@
1
- (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 i of s)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();const bf=1,yf=2,Dl=4,wf=8,kf=16,Sf=1,Ml=4,xf=8,Ef=16,If=1,Af=2,Cf=4,pa=1,Ol=2,Tf=4,Rf=8,js="[",Ns="[!",Ao="[?",zs="]",Pn={},Ae=Symbol(),pt=Symbol("filename"),Fn=Symbol("hmr"),Ll="http://www.w3.org/1999/xhtml",qr="http://www.w3.org/2000/svg",ma="http://www.w3.org/1998/Math/MathML",jl="@attach",Nl=!1;var cr=Array.isArray,Pf=Array.prototype.indexOf,tr=Array.prototype.includes,$s=Array.from,ys=Object.keys,Dn=Object.defineProperty,Nt=Object.getOwnPropertyDescriptor,zl=Object.getOwnPropertyDescriptors,$l=Object.prototype,Df=Array.prototype,qs=Object.getPrototypeOf,Co=Object.isExtensible,Mf=Object.prototype.hasOwnProperty;function Un(e){return typeof e=="function"}const mt=()=>{};function To(e){return typeof e?.then=="function"}function Of(e){return e()}function Ni(e){for(var t=0;t<e.length;t++)e[t]()}function ql(){var e,t,n=new Promise((r,s)=>{e=r,t=s});return{promise:n,resolve:e,reject:t}}function Lf(e,t,n=!1){return e===void 0?n?t():t:e}function Bl(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 jf(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 Fe=2,Mn=4,Br=8,ga=1<<24,zt=16,qt=32,rn=64,zi=128,Ct=512,je=1024,Ve=2048,Bt=4096,et=8192,lt=16384,an=32768,$i=1<<25,Vt=65536,Pr=1<<17,Vl=1<<18,bn=1<<19,Fl=1<<20,Wt=1<<25,On=65536,qi=1<<21,nr=1<<22,fn=1<<23,Ge=Symbol("$state"),Bs=Symbol("legacy props"),Nf=Symbol(""),zf=Symbol("proxy path"),$f=Symbol("hmr anchor"),Ht=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},Bn=!!globalThis.document?.contentType&&globalThis.document.contentType.includes("xml"),Ul=1,Vr=3,on=8,Hl=11;function Kl(e){throw new Error("https://svelte.dev/e/experimental_async_required")}function qf(){throw new Error("https://svelte.dev/e/invalid_default_snippet")}function Ro(){throw new Error("https://svelte.dev/e/invalid_snippet_arguments")}function ur(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function Bf(){throw new Error("https://svelte.dev/e/missing_context")}function Vf(){throw new Error("https://svelte.dev/e/snippet_without_render_tag")}function Ff(e){throw new Error("https://svelte.dev/e/store_invalid_shape")}function Uf(){throw new Error("https://svelte.dev/e/svelte_element_invalid_this_value")}function Hf(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Kf(e,t){throw new Error("https://svelte.dev/e/component_api_changed")}function Wf(e,t){throw new Error("https://svelte.dev/e/component_api_invalid_new")}function Yf(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Gf(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Xf(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Jf(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Zf(){throw new Error("https://svelte.dev/e/effect_pending_outside_reaction")}function Qf(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function ev(){throw new Error("https://svelte.dev/e/fork_discarded")}function tv(){throw new Error("https://svelte.dev/e/fork_timing")}function nv(){throw new Error("https://svelte.dev/e/get_abort_signal_outside_reaction")}function rv(){throw new Error("https://svelte.dev/e/hydration_failed")}function Wl(e){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}function sv(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function iv(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function av(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function ov(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function lv(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}function cv(e,t){console.warn("https://svelte.dev/e/assignment_value_stale")}function uv(e,t){console.warn("https://svelte.dev/e/binding_property_non_reactive")}function dv(e){console.warn("https://svelte.dev/e/console_log_state")}function fv(){console.warn("https://svelte.dev/e/derived_inert")}function vv(e,t){console.warn("https://svelte.dev/e/event_handler_invalid")}function hv(e){console.warn("https://svelte.dev/e/hydratable_missing_but_expected")}function Fr(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function pv(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_binding")}function mv(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_mutation")}function gv(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function Yl(e){console.warn("https://svelte.dev/e/state_proxy_equality_mismatch")}function _v(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let W=!1;function xe(e){W=e}let ne;function we(e){if(e===null)throw Fr(),Pn;return ne=e}function nt(){return we(yt(ne))}function v(e){if(W){if(yt(ne)!==null)throw Fr(),Pn;ne=e}}function bv(e){W&&(ne=e.content)}function nn(e=1){if(W){for(var t=e,n=ne;t--;)n=yt(n);ne=n}}function Ln(e=!0){for(var t=0,n=ne;;){if(n.nodeType===on){var r=n.data;if(r===zs){if(t===0)return n;t-=1}else(r===js||r===Ns||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var s=yt(n);e&&n.remove(),n=s}}function _a(e){if(!e||e.nodeType!==on)throw Fr(),Pn;return e.data}function Gl(e){return e===this.v}function Xl(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function Jl(e){return!Xl(e,this.v)}let yv=!1;function wv(e){console.warn("https://svelte.dev/e/dynamic_void_element_content")}const kv=[];function jn(e,t=!1,n=!1){return os(e,new Map,"",kv,null,n)}function os(e,t,n,r,s=null,i=!1){if(typeof e=="object"&&e!==null){var a=t.get(e);if(a!==void 0)return a;if(e instanceof Map)return new Map(e);if(e instanceof Set)return new Set(e);if(cr(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]=os(u,t,n,r,null,i))}return l}if(qs(e)===$l){l={},t.set(e,l),s!==null&&t.set(s,l);for(var d of Object.keys(e))l[d]=os(e[d],t,n,r,null,i);return l}if(e instanceof Date)return structuredClone(e);if(typeof e.toJSON=="function"&&!i)return os(e.toJSON(),t,n,r,e)}if(e instanceof EventTarget)return e;try{return structuredClone(e)}catch{return e}}let Vn=null;function Zl(e,t){const n=e.v;if(n===Ae)return;const r=Sv(e),s=le,i=e.wv>s.wv||s.wv===0,a=i?"color: CornflowerBlue; font-weight: bold":"color: grey; font-weight: normal";if(console.groupCollapsed(e.label?`%c${r}%c ${e.label}`:`%c${r}%c`,a,i?"font-weight: normal":a,typeof n=="object"&&n!==null&&Ge in n?jn(n,!0):n),r==="$derived"){const c=new Set(e.deps);for(const u of c)Zl(u)}if(e.created&&console.log(e.created),i&&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 Sv(e){return e.f&(Fe|nr)?"$derived":e.label?.startsWith("$")?"store":"$state"}function xv(e,t){var n=Vn;try{Vn={entries:new Map,reaction:le};var r=performance.now(),s=t(),i=(performance.now()-r).toFixed(2),a=Ee(e);if(!Yr())console.log(`${a} %cran outside of an effect (${i}ms)`,"color: grey");else if(Vn.entries.size===0)console.log(`${a} %cno reactive dependencies (${i}ms)`,"color: grey");else{console.group(`${a} %c(${i}ms)`,"color: grey");var l=Vn.entries;Ee(()=>{for(const[c,u]of l)Zl(c,u)}),Vn=null,console.groupEnd()}return s}finally{Vn=n}}function Ev(e,t){return e.label=t,Ql(e.v,t),e}function Ql(e,t){return e?.[zf]?.(t),e}function Iv(e){const t=new Error,n=Av();return n.length===0?null:(n.unshift(`
2
- `),Dn(t,"stack",{value:n.join(`
3
- `)}),Dn(t,"name",{value:e}),t)}function Av(){const e=Error.stackTraceLimit;Error.stackTraceLimit=1/0;const t=new Error().stack;if(Error.stackTraceLimit=e,!t)return[];const n=t.split(`
4
- `),r=[];for(let s=0;s<n.length;s++){const i=n[s],a=i.replaceAll("\\","/");if(i.trim()!=="Error"){if(i.includes("validate_each_keys"))return[];a.includes("svelte/src/internal")||a.includes("node_modules/.vite")||r.push(i)}}return r}let be=null;function rr(e){be=e}let ls=null;function Cv(e,t,n,r,s,i){const a=ls;ls={type:t,file:n[pt],line:r,column:s,parent:a,...i};try{return e()}finally{ls=a}}let ba=null;function Po(e){ba=e}function Tv(){const e={};return[()=>(ec(e)||Bf(),ya(e)),t=>wa(e,t)]}function ya(e){return Vs().get(e)}function wa(e,t){return Vs().set(e,t),t}function ec(e){return Vs().has(e)}function Rv(){return Vs()}function se(e,t=!1,n){be={p:be,i:!1,c:null,e:null,s:e,x:null,r:re,l:null}}function ie(e){var t=be,n=t.e;if(n!==null){t.e=null;for(var r of n)Cc(r)}return e!==void 0&&(t.x=e),t.i=!0,be=t.p,e??{}}function tc(){return!0}function Vs(e){return be===null&&ur(),be.c??=new Map(Pv(be)||void 0)}function Pv(e){let t=e.p;for(;t!==null;){const n=t.c;if(n!==null)return n;t=t.p}return null}let xn=[];function nc(){var e=xn;xn=[],Ni(e)}function tt(e){if(xn.length===0&&!Zn){var t=xn;queueMicrotask(()=>{t===xn&&nc()})}xn.push(e)}function Dv(){for(;xn.length>0;)nc()}function rc(e){var t=re;if(t===null)return le.f|=fn,e;if(!(t.f&an)&&!(t.f&Mn))throw e;Yt(e,t)}function Yt(e,t){for(;t!==null;){if(t.f&zi){if(!(t.f&an))throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const Mv=-7169;function Re(e,t){e.f=e.f&Mv|t}function ka(e){e.f&Ct||e.deps===null?Re(e,je):Re(e,Bt)}function sc(e){if(e!==null)for(const t of e)!(t.f&Fe)||!(t.f&On)||(t.f^=On,sc(t.deps))}function ic(e,t,n){e.f&Ve?t.add(e):e.f&Bt&&n.add(e),sc(e.deps),Re(e,je)}function ac(e,t,n){if(e==null)return t(void 0),mt;const r=Ee(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}function Ov(e){let t;return ac(e,n=>t=n)(),t}let Bi=!1,kr=!1,Vi=Symbol();function Lv(e,t,n){const r=n[t]??={store:null,source:Hs(void 0),unsubscribe:mt};if(r.store!==e&&!(Vi in n))if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=mt;else{var s=!0;r.unsubscribe=ac(e,i=>{s?r.source.v=i:g(r.source,i)}),s=!1}return e&&Vi in n?Ov(e):o(r.source)}function jv(e,t,n){let r=n[t];return r&&r.store!==e&&(r.unsubscribe(),r.unsubscribe=mt),e}function oc(e,t){return Fs(e,t),t}function Nv(e,t){var n=e[t];n.store!==null&&oc(n.store,n.source.v)}function zv(){const e={};function t(){kt(()=>{for(var n in e)e[n].unsubscribe();Dn(e,Vi,{enumerable:!1,value:!0})})}return[e,t]}function Fs(e,t){Bi=!0;try{e.set(t)}finally{Bi=!1}}function $v(e,t,n){return Fs(e,n),t}function qv(e,t,n=1){return Fs(e,t+n),t}function Bv(e,t,n=1){const r=t+n;return Fs(e,r),r}function Vv(){kr=!0}function lc(e){var t=kr;try{return kr=!1,[e(),kr]}finally{kr=t}}const en=new Set;let oe=null,Qe=null,Fi=null,Zn=!1,Si=!1,Yn=null,cs=null;var Do=0;let Fv=1;class Dt{id=Fv++;current=new Map;previous=new Map;#e=new Set;#t=new Set;#n=new Set;#i=new Map;#s=new Map;#a=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}#_(){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)Re(s,Ve),n(s);for(s of r.m)Re(s,Bt),n(s)}this.#f.add(t)}#p(){if(Do++>1e3&&(en.delete(this),Uv()),!this.#d()){for(const l of this.#l)this.#u.delete(l),Re(l,Ve),this.schedule(l);for(const l of this.#u)Re(l,Bt),this.schedule(l)}const t=this.#r;this.#r=[],this.apply();var n=Yn=[],r=[],s=cs=[];for(const l of t)try{this.#g(l,n,r)}catch(c){throw fc(l),c}if(oe=null,s.length>0){var i=Dt.ensure();for(const l of s)i.schedule(l)}if(Yn=null,cs=null,this.#d()||this.#_()){this.#m(r),this.#m(n);for(const[l,c]of this.#c)dc(l,c)}else{this.#i.size===0&&en.delete(this),this.#l.clear(),this.#u.clear();for(const l of this.#e)l(this);this.#e.clear(),Mo(r),Mo(n),this.#a?.resolve()}var a=oe;if(this.#r.length>0){const l=a??=this;l.#r.push(...this.#r.filter(c=>!l.#r.includes(c)))}a!==null&&(en.add(a),a.#p())}#g(t,n,r){t.f^=je;for(var s=t.first;s!==null;){var i=s.f,a=(i&(qt|rn))!==0,l=a&&(i&je)!==0,c=l||(i&et)!==0||this.#c.has(s);if(!c&&s.fn!==null){a?s.f^=je:i&Mn?n.push(s):fr(s)&&(i&zt&&this.#u.add(s),zn(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)ic(t[n],this.#l,this.#u)}capture(t,n,r=!1){t.v!==Ae&&!this.previous.has(t)&&this.previous.set(t,t.v),t.f&fn||(this.current.set(t,[n,r]),Qe?.set(t,n)),this.is_fork||(t.v=n)}activate(){oe=this}deactivate(){oe=null,Qe=null}flush(){try{Si=!0,oe=this,this.#p()}finally{Do=0,Fi=null,Yn=null,cs=null,Si=!1,oe=null,Qe=null,An.clear()}}discard(){for(const t of this.#t)t(this);this.#t.clear(),this.#n.clear(),en.delete(this)}register_created_effect(t){this.#o.push(t)}#b(){for(const d of en){var t=d.id<this.id,n=[];for(const[f,[h,_]]of this.current){if(d.current.has(f)){var r=d.current.get(f)[0];if(t&&h!==r)d.current.set(f,[h,_]);else continue}n.push(f)}var s=[...d.current.keys()].filter(f=>!this.current.has(f));if(s.length===0)t&&d.discard();else if(n.length>0){if(t)for(const f of this.#f)d.unskip_effect(f,h=>{h.f&(zt|nr)?d.schedule(h):d.#m([h])});d.activate();var i=new Set,a=new Map;for(var l of n)cc(l,s,i,a);a=new Map;var c=[...d.current.keys()].filter(f=>this.current.has(f)?this.current.get(f)[0]!==f:!0);for(const f of this.#o)!(f.f&(lt|et|Pr))&&Sa(f,c,a)&&(f.f&(nr|zt)?(Re(f,Ve),d.schedule(f)):d.#l.add(f));if(d.#r.length>0){d.apply();for(var u of d.#r)d.#g(u,[],[]);d.#r=[]}d.deactivate()}}for(const d of en)d.#v.has(this)&&(d.#v.delete(this),d.#v.size===0&&!d.#d()&&(d.activate(),d.#p()))}increment(t,n){let r=this.#i.get(n)??0;if(this.#i.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.#i.get(n)??0;if(s===1?this.#i.delete(n):this.#i.set(n,s-1),t){let i=this.#s.get(n)??0;i===1?this.#s.delete(n):this.#s.set(n,i-1)}this.#h||r||(this.#h=!0,tt(()=>{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.#a??=ql()).promise}static ensure(){if(oe===null){const t=oe=new Dt;Si||(en.add(oe),Zn||tt(()=>{oe===t&&t.flush()}))}return oe}apply(){{Qe=null;return}}schedule(t){if(Fi=t,t.b?.is_pending&&t.f&(Mn|Br|ga)&&!(t.f&an)){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var r=n.f;if(Yn!==null&&n===re&&(le===null||!(le.f&Fe))&&!Bi)return;if(r&(rn|qt)){if(!(r&je))return;n.f^=je}}this.#r.push(n)}}function hn(e){var t=Zn;Zn=!0;try{var n;for(e&&(oe!==null&&!oe.is_fork&&oe.flush(),n=e());;){if(Dv(),oe===null)return n;oe.flush()}}finally{Zn=t}}function Uv(){try{Qf()}catch(e){Yt(e,Fi)}}let tn=null;function Mo(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&(lt|et))&&fr(r)&&(tn=new Set,zn(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Oc(r),tn?.size>0)){An.clear();for(const s of tn){if(s.f&(lt|et))continue;const i=[s];let a=s.parent;for(;a!==null;)tn.has(a)&&(tn.delete(a),i.push(a)),a=a.parent;for(let l=i.length-1;l>=0;l--){const c=i[l];c.f&(lt|et)||zn(c)}}tn.clear()}}tn=null}}function cc(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(const s of e.reactions){const i=s.f;i&Fe?cc(s,t,n,r):i&(nr|zt)&&!(i&Ve)&&Sa(s,t,r)&&(Re(s,Ve),xa(s))}}function uc(e,t){if(e.reactions!==null)for(const n of e.reactions){const r=n.f;r&Fe?uc(n,t):r&Pr&&(Re(n,Ve),t.add(n))}}function Sa(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(tr.call(t,s))return!0;if(s.f&Fe&&Sa(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function xa(e){oe.schedule(e)}let ws=[];function Hv(){hn(()=>{const e=ws;ws=[];for(const t of e)sr(t)})}function Kv(e){var t=bt(0),n=!0,r=void 0;return o(t),Rc(()=>{if(n){var s=Qe;try{Qe=null,r=e()}finally{Qe=s}return}ws.length===0&&tt(Hv),ws.push(t)}),n=!1,r}function dc(e,t){if(!(e.f&qt&&e.f&je)){e.f&Ve?t.d.push(e):e.f&Bt&&t.m.push(e),Re(e,je);for(var n=e.first;n!==null;)dc(n,t),n=n.next}}function fc(e){Re(e,je);for(var t=e.first;t!==null;)fc(t),t=t.next}function Wv(e){Kl(),oe!==null&&tv();var t=Dt.ensure();t.is_fork=!0,Qe=new Map;var n=!1,r=t.settled();return hn(e),{commit:async()=>{if(n){await r;return}en.has(t)||ev(),n=!0,t.is_fork=!1;for(var[s,[i]]of t.current)s.v=i,s.wv=Ss();t.activate(),t.run_fork_commit_callbacks(),t.deactivate(),hn(()=>{var a=new Set;for(var l of t.current.keys())uc(l,a);sh(a),bc()}),t.flush(),await r},discard:()=>{for(var s of t.current.keys())s.wv=Ss();!n&&en.has(t)&&t.discard()}}}function Yv(e){let t=0,n=bt(0),r;return()=>{Yr()&&(o(n),Oe(()=>(t===0&&(r=Ee(()=>e(()=>Ir(n)))),t+=1,()=>{tt(()=>{t-=1,t===0&&(r?.(),r=void 0,Ir(n))})})))}}var Gv=Vt|bn;function vc(e,t,n,r){new Xv(e,t,n,r)}class Xv{parent;is_pending=!1;transform_error;#e;#t=W?ne:null;#n;#i;#s;#a=null;#r=null;#o=null;#l=null;#u=0;#c=0;#f=!1;#h=new Set;#v=new Set;#d=null;#_=Yv(()=>(this.#d=bt(this.#u),()=>{this.#d=null}));constructor(t,n,r,s){this.#e=t,this.#n=n,this.#i=i=>{var a=re;a.b=this,a.f|=zi,r(i)},this.parent=re.b,this.transform_error=s??this.parent?.transform_error??(i=>i),this.#s=Zt(()=>{if(W){const i=this.#t;nt();const a=i.data===Ns;if(i.data.startsWith(Ao)){const c=JSON.parse(i.data.slice(Ao.length));this.#g(c)}else a?this.#m():this.#p()}else this.#b()},Gv),W&&(this.#e=ne)}#p(){try{this.#a=Ze(()=>this.#i(this.#e))}catch(t){this.error(t)}}#g(t){const n=this.#n.failed;n&&(this.#o=Ze(()=>{n(this.#e,()=>t,()=>()=>{})}))}#m(){const t=this.#n.pending;t&&(this.is_pending=!0,this.#r=Ze(()=>t(this.#e)),tt(()=>{var n=this.#l=document.createDocumentFragment(),r=He();n.append(r),this.#a=this.#w(()=>Ze(()=>this.#i(r))),this.#c===0&&(this.#e.before(n),this.#l=null,Cn(this.#r,()=>{this.#r=null}),this.#y(oe))}))}#b(){try{if(this.is_pending=this.has_pending_snippet(),this.#c=0,this.#u=0,this.#a=Ze(()=>{this.#i(this.#e)}),this.#c>0){var t=this.#l=document.createDocumentFragment();Da(this.#a,t);const n=this.#n.pending;this.#r=Ze(()=>n(this.#e))}else this.#y(oe)}catch(n){this.error(n)}}#y(t){this.is_pending=!1,t.transfer_effects(this.#h,this.#v)}defer_effect(t){ic(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=re,r=le,s=be;Xe(this.#s),ut(this.#s),rr(this.#s.ctx);try{return Dt.ensure(),t()}catch(i){return rc(i),null}finally{Xe(n),ut(r),rr(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&&Cn(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,tt(()=>{this.#f=!1,this.#d&&Gt(this.#d,this.#u)}))}get_effect_pending(){return this.#_(),o(this.#d)}error(t){if(!this.#n.onerror&&!this.#n.failed)throw t;oe?.is_fork?(this.#a&&oe.skip_effect(this.#a),this.#r&&oe.skip_effect(this.#r),this.#o&&oe.skip_effect(this.#o),oe.on_fork_commit(()=>{this.#S(t)})):this.#S(t)}#S(t){this.#a&&($e(this.#a),this.#a=null),this.#r&&($e(this.#r),this.#r=null),this.#o&&($e(this.#o),this.#o=null),W&&(we(this.#t),nn(),we(Ln()));var n=this.#n.onerror;let r=this.#n.failed;var s=!1,i=!1;const a=()=>{if(s){_v();return}s=!0,i&&lv(),this.#o!==null&&Cn(this.#o,()=>{this.#o=null}),this.#w(()=>{this.#b()})},l=c=>{try{i=!0,n?.(c,a),i=!1}catch(u){Yt(u,this.#s&&this.#s.parent)}r&&(this.#o=this.#w(()=>{try{return Ze(()=>{var u=re;u.b=this,u.f|=zi,r(this.#e,()=>c,()=>a)})}catch(u){return Yt(u,this.#s.parent),null}}))};tt(()=>{var c;try{c=this.transform_error(t)}catch(u){Yt(u,this.#s&&this.#s.parent);return}c!==null&&typeof c=="object"&&typeof c.then=="function"?c.then(l,u=>Yt(u,this.#s&&this.#s.parent)):l(c)})}}function Jv(){re===null&&Zf();var e=re.b;return e===null?0:e.get_effect_pending()}function Ur(e,t,n,r){const s=Kr;var i=e.filter(h=>!h.settled);if(n.length===0&&i.length===0){r(t.map(s));return}var a=re,l=Us(),c=i.length===1?i[0].promise:i.length>1?Promise.all(i.map(h=>h.promise)):null;function u(h){l();try{r(h)}catch(_){a.f&lt||Yt(_,a)}Nn()}if(n.length===0){c.then(()=>u(t.map(s)));return}var d=Hr();function f(){Promise.all(n.map(h=>pc(h))).then(h=>u([...t.map(s),...h])).catch(h=>Yt(h,a)).finally(()=>d())}c?c.then(()=>{l(),f(),Nn()}):f()}function hc(e,t){Ur(e,[],[],t)}function Us(){var e=re,t=le,n=be,r=oe;return function(i=!0){Xe(e),ut(t),rr(n),i&&!(e.f&lt)&&(r?.activate(),r?.apply())}}async function Zv(e){var t=Us(),n=await e;return()=>(t(),n)}async function Ui(e){var t=Er;queueMicrotask(()=>{Er===t&&us(null)});var n=await e;return()=>(us(t),queueMicrotask(()=>{Er===t&&us(null)}),n)}async function*Qv(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:i}=(await Ui(t.next()))();if(s){n=!0;break}var r=Er;yield i,us(r)}}finally{if(!n&&t.return!==void 0)return(await Ui(t.return()))().value}}function Nn(e=!0){Xe(null),ut(null),rr(null),e&&oe?.deactivate()}function eh(e){const t=Us(),n=Hr();var r=re,s=null;const i=u=>{s={error:u},Wi(r)||Yt(u,r)};var a=Promise.resolve(e[0]()).catch(i),l={promise:a,settled:!1},c=[l];a.finally(()=>{l.settled=!0,Nn()});for(const u of e.slice(1)){a=a.then(()=>{if(t(),s)throw s.error;if(Wi(r))throw Ht;return u()}).catch(i);const d={promise:a,settled:!1};c.push(d),a.finally(()=>{d.settled=!0,Nn()})}return a.then(()=>Promise.resolve()).finally(()=>n()),c}function th(e){return Promise.all(e.map(t=>t.promise))}function Hr(){var e=re,t=e.b,n=oe,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 Er=null;function us(e){Er=e}function Kr(e){var t=Fe|Ve;return re!==null&&(re.f|=bn),{ctx:be,deps:null,effects:null,equals:Gl,f:t,fn:e,reactions:null,rv:0,v:Ae,wv:0,parent:re,ac:null}}function pc(e,t,n){let r=re;r===null&&Hf();var s=void 0,i=bt(Ae),a=!le,l=new Map;return mh(()=>{var c=re,u=ql();s=u.promise;try{Promise.resolve(e()).then(u.resolve,u.reject).finally(Nn)}catch(_){u.reject(_),Nn()}var d=oe;if(a){if(c.f&an)var f=Hr();if(r.b.is_rendered())l.get(d)?.reject(Ht),l.delete(d);else{for(const _ of l.values())_.reject(Ht);l.clear()}l.set(d,u)}const h=(_,S=void 0)=>{if(f){var y=S===Ht;f(y)}if(!(S===Ht||c.f&lt)){if(d.activate(),S)i.f|=fn,Gt(i,S);else{i.f&fn&&(i.f^=fn),Gt(i,_);for(const[x,k]of l){if(l.delete(x),x===d)break;k.reject(Ht)}}d.deactivate()}};u.promise.then(h,_=>h(null,_||"unknown"))}),kt(()=>{for(const c of l.values())c.reject(Ht)}),new Promise(c=>{function u(d){function f(){d===s?c(i):u(s)}d.then(f,f)}u(s)})}function Y(e){const t=Kr(e);return Nc(t),t}function Ea(e){const t=Kr(e);return t.equals=Jl,t}function nh(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)$e(t[n])}}function Ia(e){var t,n=re,r=e.parent;if(!sn&&r!==null&&r.f&(lt|et))return fv(),e.v;Xe(r);try{e.f&=~On,nh(e),t=qc(e)}finally{Xe(n)}return t}function mc(e){var t=Ia(e);if(!e.equals(t)&&(e.wv=Ss(),(!oe?.is_fork||e.deps===null)&&(oe!==null?oe.capture(e,t,!0):e.v=t,e.deps===null))){Re(e,je);return}sn||(Qe!==null?(Yr()||oe?.is_fork)&&Qe.set(e,t):ka(e))}function rh(e){if(e.effects!==null)for(const t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(Ht),t.teardown=mt,t.ac=null,Dr(t,0),Ra(t))}function gc(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&zn(t)}let ks=new Set;const An=new Map;function sh(e){ks=e}let _c=!1;function bt(e,t){var n={f:0,v:e,reactions:null,equals:Gl,rv:0,wv:0};return n}function z(e,t){const n=bt(e);return Nc(n),n}function Hs(e,t=!1,n=!0){const r=bt(e);return t||(r.equals=Jl),r}function ih(e,t){return g(e,Ee(()=>o(e))),t}function g(e,t,n=!1){le!==null&&(!jt||le.f&Pr)&&tc()&&le.f&(Fe|zt|nr|Pr)&&(Tt===null||!tr.call(Tt,e))&&ov();let r=n?ce(t):t;return Gt(e,r,cs)}function Gt(e,t,n=null){if(!e.equals(t)){An.set(e,sn?t:e.v);var r=Dt.ensure();if(r.capture(e,t),e.f&Fe){const s=e;e.f&Ve&&Ia(s),Qe===null&&ka(s)}e.wv=Ss(),yc(e,Ve,n),re!==null&&re.f&je&&!(re.f&(qt|rn))&&(At===null?wh([e]):At.push(e)),!r.is_fork&&ks.size>0&&!_c&&bc()}return t}function bc(){_c=!1;for(const e of ks)e.f&je&&Re(e,Bt),fr(e)&&zn(e);ks.clear()}function sr(e,t=1){var n=o(e),r=t===1?n++:n--;return g(e,n),r}function ah(e,t=1){var n=o(e);return g(e,t===1?++n:--n)}function Ir(e){g(e,e.v+1)}function yc(e,t,n){var r=e.reactions;if(r!==null)for(var s=r.length,i=0;i<s;i++){var a=r[i],l=a.f,c=(l&Ve)===0;if(c&&Re(a,t),l&Fe){var u=a;Qe?.delete(u),l&On||(l&Ct&&(a.f|=On),yc(u,Bt,n))}else if(c){var d=a;l&zt&&tn!==null&&tn.add(d),n!==null?n.push(d):xa(d)}}}function ce(e){if(typeof e!="object"||e===null||Ge in e)return e;const t=qs(e);if(t!==$l&&t!==Df)return e;var n=new Map,r=cr(e),s=z(0),i=Tn,a=l=>{if(Tn===i)return l();var c=le,u=Tn;ut(null),jo(i);var d=l();return ut(c),jo(u),d};return r&&n.set("length",z(e.length)),new Proxy(e,{defineProperty(l,c,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&iv();var d=n.get(c);return d===void 0?a(()=>{var f=z(u.value);return n.set(c,f),f}):g(d,u.value,!0),!0},deleteProperty(l,c){var u=n.get(c);if(u===void 0){if(c in l){const d=a(()=>z(Ae));n.set(c,d),Ir(s)}}else g(u,Ae),Ir(s);return!0},get(l,c,u){if(c===Ge)return e;var d=n.get(c),f=c in l;if(d===void 0&&(!f||Nt(l,c)?.writable)&&(d=a(()=>{var _=ce(f?l[c]:Ae),S=z(_);return S}),n.set(c,d)),d!==void 0){var h=o(d);return h===Ae?void 0:h}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=o(d))}else if(u===void 0){var f=n.get(c),h=f?.v;if(f!==void 0&&h!==Ae)return{enumerable:!0,configurable:!0,value:h,writable:!0}}return u},has(l,c){if(c===Ge)return!0;var u=n.get(c),d=u!==void 0&&u.v!==Ae||Reflect.has(l,c);if(u!==void 0||re!==null&&(!d||Nt(l,c)?.writable)){u===void 0&&(u=a(()=>{var h=d?ce(l[c]):Ae,_=z(h);return _}),n.set(c,u));var f=o(u);if(f===Ae)return!1}return d},set(l,c,u,d){var f=n.get(c),h=c in l;if(r&&c==="length")for(var _=u;_<f.v;_+=1){var S=n.get(_+"");S!==void 0?g(S,Ae):_ in l&&(S=a(()=>z(Ae)),n.set(_+"",S))}if(f===void 0)(!h||Nt(l,c)?.writable)&&(f=a(()=>z(void 0)),g(f,ce(u)),n.set(c,f));else{h=f.v!==Ae;var y=a(()=>ce(u));g(f,y)}var x=Reflect.getOwnPropertyDescriptor(l,c);if(x?.set&&x.set.call(d,u),!h){if(r&&typeof c=="string"){var k=n.get("length"),w=Number(c);Number.isInteger(w)&&w>=k.v&&g(k,w+1)}Ir(s)}return!0},ownKeys(l){o(s);var c=Reflect.ownKeys(l).filter(f=>{var h=n.get(f);return h===void 0||h.v!==Ae});for(var[u,d]of n)d.v!==Ae&&!(u in l)&&c.push(u);return c},setPrototypeOf(){av()}})}function ir(e){try{if(e!==null&&typeof e=="object"&&Ge in e)return e[Ge]}catch{}return e}function wc(e,t){return Object.is(ir(e),ir(t))}function oh(e,t,n=!0){try{e===t!=(ir(e)===ir(t))&&Yl(n?"===":"!==")}catch{}return e===t===n}function lh(e,t,n=!0){return e==t!=(ir(e)==ir(t))&&Yl(),e==t===n}var Hi,kc,Aa,Sc,xc;function Ki(){if(Hi===void 0){Hi=window,kc=document,Aa=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Sc=Nt(t,"firstChild").get,xc=Nt(t,"nextSibling").get,Co(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),Co(n)&&(n.__t=void 0)}}function He(e=""){return document.createTextNode(e)}function Ce(e){return Sc.call(e)}function yt(e){return xc.call(e)}function p(e,t){if(!W)return Ce(e);var n=Ce(ne);if(n===null)n=ne.appendChild(He());else if(t&&n.nodeType!==Vr){var r=He();return n?.before(r),we(r),r}return t&&Ks(n),we(n),n}function he(e,t=!1){if(!W){var n=Ce(e);return n instanceof Comment&&n.data===""?yt(n):n}if(t){if(ne?.nodeType!==Vr){var r=He();return ne?.before(r),we(r),r}Ks(ne)}return ne}function E(e,t=1,n=!1){let r=W?ne:e;for(var s;t--;)s=r,r=yt(r);if(!W)return r;if(n){if(r?.nodeType!==Vr){var i=He();return r===null?s?.after(i):r.before(i),we(i),i}Ks(r)}return we(r),r}function Ca(e){e.textContent=""}function Ec(){return!1}function yn(e,t,n){let r=n?{is:n}:void 0;return document.createElementNS(t??Ll,e,r)}function ch(){return document.createDocumentFragment()}function Ic(e=""){return document.createComment(e)}function uh(e,t,n=""){if(t.startsWith("xlink:")){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n);return}return e.setAttribute(t,n)}function Ks(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===Vr;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function dr(e,t){if(t){const n=document.body;e.autofocus=!0,tt(()=>{document.activeElement===n&&e.focus()})}}function dh(e){W&&Ce(e)!==null&&Ca(e)}let Oo=!1;function Ac(){Oo||(Oo=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function ft(e,t,n,r=!0){r&&n();for(var s of t)e.addEventListener(s,n);kt(()=>{for(var i of t)e.removeEventListener(i,n)})}function wn(e){var t=le,n=re;ut(null),Xe(null);try{return e()}finally{ut(t),Xe(n)}}function Wr(e,t,n,r=n){e.addEventListener(t,()=>wn(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),Ac()}function Ta(e){re===null&&(le===null&&Jf(),Xf()),sn&&Gf()}function fh(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function vt(e,t){var n=re;n!==null&&n.f&et&&(e|=et);var r={ctx:be,deps:null,nodes:null,f:e|Ve|Ct,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};oe?.register_created_effect(r);var s=r;if(e&Mn)Yn!==null?Yn.push(r):Dt.ensure().schedule(r);else if(t!==null){try{zn(r)}catch(a){throw $e(r),a}s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&!(s.f&bn)&&(s=s.first,e&zt&&e&Vt&&s!==null&&(s.f|=Vt))}if(s!==null&&(s.parent=n,n!==null&&fh(s,n),le!==null&&le.f&Fe&&!(e&rn))){var i=le;(i.effects??=[]).push(s)}return r}function Yr(){return le!==null&&!jt}function kt(e){const t=vt(Br,null);return Re(t,je),t.teardown=e,t}function Te(e){Ta();var t=re.f,n=!le&&(t&qt)!==0&&(t&an)===0;if(n){var r=be;(r.e??=[]).push(e)}else return Cc(e)}function Cc(e){return vt(Mn|Fl,e)}function Tc(e){return Ta(),vt(Br|Fl,e)}function Rc(e){return vt(Pr,e)}function Ws(e){Dt.ensure();const t=vt(rn|bn,e);return()=>{$e(t)}}function vh(e){Dt.ensure();const t=vt(rn|bn,e);return(n={})=>new Promise(r=>{n.outro?Cn(t,()=>{$e(t),r(void 0)}):($e(t),r(void 0))})}function wt(e){return vt(Mn,e)}function hh(e,t){var n=be,r={effect:null,ran:!1,deps:e};n.l.$.push(r),r.effect=Oe(()=>{if(e(),!r.ran){r.ran=!0;var s=re;try{Xe(s.parent),Ee(t)}finally{Xe(s)}}})}function ph(){var e=be;Oe(()=>{for(var t of e.l.$){t.deps();var n=t.effect;n.f&je&&n.deps!==null&&Re(n,Bt),fr(n)&&zn(n),t.ran=!1}})}function mh(e){return vt(nr|bn,e)}function Oe(e,t=0){return vt(Br|t,e)}function $(e,t=[],n=[],r=[]){Ur(r,t,n,s=>{vt(Br,()=>e(...s.map(o)))})}function gh(e,t=[],n=[],r=[]){if(n.length>0||r.length>0)var s=Hr();Ur(r,t,n,i=>{vt(Mn,()=>e(...i.map(o))),s&&s()})}function Zt(e,t=0){var n=vt(zt|t,e);return n}function Pc(e,t=0){var n=vt(ga|t,e);return n}function Ze(e){return vt(qt|bn,e)}function Dc(e){var t=e.teardown;if(t!==null){const n=sn,r=le;Lo(!0),ut(null);try{t.call(null)}finally{Lo(n),ut(r)}}}function Ra(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&wn(()=>{s.abort(Ht)});var r=n.next;n.f&rn?n.parent=null:$e(n,t),n=r}}function _h(e){for(var t=e.first;t!==null;){var n=t.next;t.f&qt||$e(t),t=n}}function $e(e,t=!0){var n=!1;(t||e.f&Vl)&&e.nodes!==null&&e.nodes.end!==null&&(Mc(e.nodes.start,e.nodes.end),n=!0),Re(e,$i),Ra(e,t&&!n),Dr(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const i of r)i.stop();Dc(e),e.f^=$i,e.f|=lt;var s=e.parent;s!==null&&s.first!==null&&Oc(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Mc(e,t){for(;e!==null;){var n=e===t?null:yt(e);e.remove(),e=n}}function Oc(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 Cn(e,t,n=!0){var r=[];Lc(e,r,!0);var s=()=>{n&&$e(e),t&&t()},i=r.length;if(i>0){var a=()=>--i||s();for(var l of r)l.out(a)}else s()}function Lc(e,t,n){if(!(e.f&et)){e.f^=et;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 i=s.next;if(!(s.f&rn)){var a=(s.f&Vt)!==0||(s.f&qt)!==0&&(e.f&zt)!==0;Lc(s,t,a?n:!1)}s=i}}}function Pa(e){jc(e,!0)}function jc(e,t){if(e.f&et){e.f^=et,e.f&je||(Re(e,Ve),Dt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&Vt)!==0||(n.f&qt)!==0;jc(n,s?t:!1),n=r}var i=e.nodes&&e.nodes.t;if(i!==null)for(const a of i)(a.is_global||t)&&a.in()}}function Wi(e=re){return(e.f&lt)!==0}function Da(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:yt(n);t.append(n),n=s}}let Hn=null;function bh(e){var t=Hn;try{if(Hn=new Set,Ee(e),t!==null)for(var n of Hn)t.add(n);return Hn}finally{Hn=t}}function yh(e){for(var t of bh(e))Gt(t,t.v)}let ds=!1,sn=!1;function Lo(e){sn=e}let le=null,jt=!1;function ut(e){le=e}let re=null;function Xe(e){re=e}let Tt=null;function Nc(e){le!==null&&(Tt===null?Tt=[e]:Tt.push(e))}let it=null,ht=0,At=null;function wh(e){At=e}let zc=1,En=0,Tn=En;function jo(e){Tn=e}function Ss(){return++zc}function fr(e){var t=e.f;if(t&Ve)return!0;if(t&Fe&&(e.f&=~On),t&Bt){for(var n=e.deps,r=n.length,s=0;s<r;s++){var i=n[s];if(fr(i)&&mc(i),i.wv>e.wv)return!0}t&Ct&&Qe===null&&Re(e,je)}return!1}function $c(e,t,n=!0){var r=e.reactions;if(r!==null&&!(Tt!==null&&tr.call(Tt,e)))for(var s=0;s<r.length;s++){var i=r[s];i.f&Fe?$c(i,t,!1):t===i&&(n?Re(i,Ve):i.f&je&&Re(i,Bt),xa(i))}}function qc(e){var t=it,n=ht,r=At,s=le,i=Tt,a=be,l=jt,c=Tn,u=e.f;it=null,ht=0,At=null,le=u&(qt|rn)?null:e,Tt=null,rr(e.ctx),jt=!1,Tn=++En,e.ac!==null&&(wn(()=>{e.ac.abort(Ht)}),e.ac=null);try{e.f|=qi;var d=e.fn,f=d();e.f|=an;var h=e.deps,_=oe?.is_fork;if(it!==null){var S;if(_||Dr(e,ht),h!==null&&ht>0)for(h.length=ht+it.length,S=0;S<it.length;S++)h[ht+S]=it[S];else e.deps=h=it;if(Yr()&&e.f&Ct)for(S=ht;S<h.length;S++)(h[S].reactions??=[]).push(e)}else!_&&h!==null&&ht<h.length&&(Dr(e,ht),h.length=ht);if(tc()&&At!==null&&!jt&&h!==null&&!(e.f&(Fe|Bt|Ve)))for(S=0;S<At.length;S++)$c(At[S],e);if(s!==null&&s!==e){if(En++,s.deps!==null)for(let y=0;y<n;y+=1)s.deps[y].rv=En;if(t!==null)for(const y of t)y.rv=En;At!==null&&(r===null?r=At:r.push(...At))}return e.f&fn&&(e.f^=fn),f}catch(y){return rc(y)}finally{e.f^=qi,it=t,ht=n,At=r,le=s,Tt=i,rr(a),jt=l,Tn=c}}function kh(e,t){let n=t.reactions;if(n!==null){var r=Pf.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&Fe&&(it===null||!tr.call(it,t))){var i=t;i.f&Ct&&(i.f^=Ct,i.f&=~On),i.v!==Ae&&ka(i),rh(i),Dr(i,0)}}function Dr(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)kh(e,n[r])}function zn(e){var t=e.f;if(!(t&lt)){Re(e,je);var n=re,r=ds;re=e,ds=!0;try{t&(zt|ga)?_h(e):Ra(e),Dc(e);var s=qc(e);e.teardown=typeof s=="function"?s:null,e.wv=zc;var i;Nl&&yv&&e.f&Ve&&e.deps}finally{ds=r,re=n}}}async function Ma(){await Promise.resolve(),hn()}function Sh(){return Dt.ensure().settled()}function o(e){var t=e.f,n=(t&Fe)!==0;if(Hn?.add(e),le!==null&&!jt){var r=re!==null&&(re.f&lt)!==0;if(!r&&(Tt===null||!tr.call(Tt,e))){var s=le.deps;if(le.f&qi)e.rv<En&&(e.rv=En,it===null&&s!==null&&s[ht]===e?ht++:it===null?it=[e]:it.push(e));else{(le.deps??=[]).push(e);var i=e.reactions;i===null?e.reactions=[le]:tr.call(i,le)||i.push(le)}}}if(sn&&An.has(e))return An.get(e);if(n){var a=e;if(sn){var l=a.v;return(!(a.f&je)&&a.reactions!==null||Vc(a))&&(l=Ia(a)),An.set(a,l),l}var c=(a.f&Ct)===0&&!jt&&le!==null&&(ds||(le.f&Ct)!==0),u=(a.f&an)===0;fr(a)&&(c&&(a.f|=Ct),mc(a)),c&&!u&&(gc(a),Bc(a))}if(Qe?.has(e))return Qe.get(e);if(e.f&fn)throw e.v;return e.v}function Bc(e){if(e.f|=Ct,e.deps!==null)for(const t of e.deps)(t.reactions??=[]).push(e),t.f&Fe&&!(t.f&Ct)&&(gc(t),Bc(t))}function Vc(e){if(e.v===Ae)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(An.has(t)||t.f&Fe&&Vc(t))return!0;return!1}function xh(e){return e&&o(e)}function Ee(e){var t=jt;try{return jt=!0,e()}finally{jt=t}}function Oa(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if(Ge in e)xs(e);else if(!Array.isArray(e))for(let t in e){const n=e[t];typeof n=="object"&&n&&Ge in n&&xs(n)}}}function xs(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{xs(e[r],t)}catch{}const n=qs(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){const r=zl(n);for(let s in r){const i=r[s].get;if(i)try{i.call(e)}catch{}}}}}function Eh(e,t){if(Kl(),W){const n=window.__svelte?.h;if(n?.has(e))return n.get(e);hv()}return t()}const Sr=Symbol("events"),Fc=new Set,Yi=new Set;function Ih(e){if(!W)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 Uc(e,t,n,r={}){function s(i){if(r.capture||Gi.call(t,i),!i.cancelBubble)return wn(()=>n?.call(this,i))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?tt(()=>{t.addEventListener(e,s,r)}):t.addEventListener(e,s,r),s}function Je(e,t,n,r,s){var i={capture:r,passive:s},a=Uc(e,t,n,i);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&kt(()=>{t.removeEventListener(e,a,i)})}function U(e,t,n){(t[Sr]??={})[e]=n}function pe(e){for(var t=0;t<e.length;t++)Fc.add(e[t]);for(var n of Yi)n(e)}let No=null;function Gi(e){var t=this,n=t.ownerDocument,r=e.type,s=e.composedPath?.()||[],i=s[0]||e.target;No=e;var a=0,l=No===e&&e[Sr];if(l){var c=s.indexOf(l);if(c!==-1&&(t===document||t===window)){e[Sr]=t;return}var u=s.indexOf(t);if(u===-1)return;c<=u&&(a=c)}if(i=s[a]||e.target,i!==t){Dn(e,"currentTarget",{configurable:!0,get(){return i||n}});var d=le,f=re;ut(null),Xe(null);try{for(var h,_=[];i!==null;){var S=i.assignedSlot||i.parentNode||i.host||null;try{var y=i[Sr]?.[r];y!=null&&(!i.disabled||e.target===i)&&y.call(i,e)}catch(x){h?_.push(x):h=x}if(e.cancelBubble||S===t||S===null)break;i=S}if(h){for(let x of _)queueMicrotask(()=>{throw x});throw h}}finally{e[Sr]=t,delete e.currentTarget,ut(d),Xe(f)}}}function Ah(e,t,n,r,s,i=!1,a=!1){let l,c;try{l=e()}catch(u){c=u}if(typeof l!="function"&&(i||l!=null||c)){const u=r?.[pt];s?`${u}${s[0]}${s[1]}`:`${u}`;const d=n[0]?.eventPhase<Event.BUBBLING_PHASE?"capture":"";if(n[0]?.type+d,vv(),c)throw c}l?.apply(t,n)}const Ch=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function Hc(e){return Ch?.createHTML(e)??e}function La(e){var t=yn("template");return t.innerHTML=Hc(e.replaceAll("<!>","<!---->")),t.content}const Th=Bn?"template":"TEMPLATE",Rh=Bn?"script":"SCRIPT";function qe(e,t){var n=re;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function T(e,t){var n=(t&pa)!==0,r=(t&Ol)!==0,s,i=!e.startsWith("<!>");return()=>{if(W)return qe(ne,null),ne;s===void 0&&(s=La(i?e:"<!>"+e),n||(s=Ce(s)));var a=r||Aa?document.importNode(s,!0):s.cloneNode(!0);if(n){var l=Ce(a),c=a.lastChild;qe(l,c)}else qe(a,a);return a}}function Kc(e,t,n="svg"){var r=!e.startsWith("<!>"),s=(t&pa)!==0,i=`<${n}>${r?e:"<!>"+e}</${n}>`,a;return()=>{if(W)return qe(ne,null),ne;if(!a){var l=La(i),c=Ce(l);if(s)for(a=document.createDocumentFragment();Ce(c);)a.appendChild(Ce(c));else a=Ce(c)}var u=a.cloneNode(!0);if(s){var d=Ce(u),f=u.lastChild;qe(d,f)}else qe(u,u);return u}}function Wc(e,t){return Kc(e,t,"svg")}function Ph(e,t){return Kc(e,t,"math")}function Yc(e,t){var n=ch();for(var r of e){if(typeof r=="string"){n.append(He(r));continue}if(r===void 0||r[0][0]==="/"){n.append(Ic(r?r[0].slice(3):""));continue}const[l,c,...u]=r,d=l==="svg"?qr:l==="math"?ma:t;var s=yn(l,d,c?.is);for(var i in c)uh(s,i,c[i]);if(u.length>0){var a=s.nodeName===Th?s.content:s;a.append(Yc(u,s.nodeName==="foreignObject"?void 0:d))}n.append(s)}return n}function Dh(e,t){var n=(t&pa)!==0,r=(t&Ol)!==0,s;return()=>{if(W)return qe(ne,null),ne;if(s===void 0){const c=t&Tf?qr:t&Rf?ma:void 0;s=Yc(e,c),n||(s=Ce(s))}var i=r||Aa?document.importNode(s,!0):s.cloneNode(!0);if(n){var a=Ce(i),l=i.lastChild;qe(a,l)}else qe(i,i);return i}}function Mh(e){return()=>Oh(e())}function Oh(e){if(W)return e;const t=e.nodeType===Hl,n=e.nodeName===Rh?[e]:e.querySelectorAll("script"),r=re;for(const i of n){const a=yn("script");for(var s of i.attributes)a.setAttribute(s.name,s.value);a.textContent=i.textContent,(t?e.firstChild===i:e===i)&&(r.nodes.start=a),(t?e.lastChild===i:e===i)&&(r.nodes.end=a),i.replaceWith(a)}return e}function $t(e=""){if(!W){var t=He(e+"");return qe(t,t),t}var n=ne;return n.nodeType!==Vr?(n.before(n=He()),we(n)):Ks(n),qe(n,n),n}function at(){if(W)return qe(ne,null),ne;var e=document.createDocumentFragment(),t=document.createComment(""),n=He();return e.append(t,n),qe(t,n),e}function I(e,t){if(W){var n=re;(!(n.f&an)||n.nodes.end===null)&&(n.nodes.end=ne),nt();return}e!==null&&e.before(t)}function Lh(){if(W&&ne&&ne.nodeType===on&&ne.textContent?.startsWith("$")){const e=ne.textContent.substring(1);return nt(),e}return(window.__svelte??={}).uid??=1,`c${window.__svelte.uid++}`}const jh=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function Nh(e){return jh.includes(e)||e.toLowerCase()==="!doctype"}function zh(e){return e.endsWith("capture")&&e!=="gotpointercapture"&&e!=="lostpointercapture"}const $h=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function qh(e){return $h.includes(e)}const Bh={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 Vh(e){return e=e.toLowerCase(),Bh[e]??e}const Fh=["touchstart","touchmove"];function Uh(e){return Fh.includes(e)}const Hh=["textarea","script","style","title"];function Kh(e){return Hh.includes(e)}function Gc(e){return e?.replace(/\//g,"/​")}let Es=!0;function Gn(e){Es=e}function j(e,t){var n=t==null?"":typeof t=="object"?`${t}`:t;n!==(e.__t??=e.nodeValue)&&(e.__t=n,e.nodeValue=`${n}`)}function ze(e,t){return Jc(e,t)}function Xc(e,t){Ki(),t.intro=t.intro??!1;const n=t.target,r=W,s=ne;try{for(var i=Ce(n);i&&(i.nodeType!==on||i.data!==js);)i=yt(i);if(!i)throw Pn;xe(!0),we(i);const a=Jc(e,{...t,anchor:i});return xe(!1),a}catch(a){if(a instanceof Error&&a.message.split(`
5
- `).some(l=>l.startsWith("https://svelte.dev/e/")))throw a;return a!==Pn&&console.warn("Failed to hydrate: ",a),t.recover===!1&&rv(),Ki(),Ca(n),xe(!1),ze(e,t)}finally{xe(r),we(s)}}const ss=new Map;function Jc(e,{target:t,anchor:n,props:r={},events:s,context:i,intro:a=!0,transformError:l}){Ki();var c=void 0,u=vh(()=>{var d=n??t.appendChild(He());vc(d,{pending:()=>{}},_=>{se({});var S=be;if(i&&(S.c=i),s&&(r.$$events=s),W&&qe(_,null),Es=a,c=e(_,r)||{},Es=!0,W&&(re.nodes.end=ne,ne===null||ne.nodeType!==on||ne.data!==zs))throw Fr(),Pn;ie()},l);var f=new Set,h=_=>{for(var S=0;S<_.length;S++){var y=_[S];if(!f.has(y)){f.add(y);var x=Uh(y);for(const b of[t,document]){var k=ss.get(b);k===void 0&&(k=new Map,ss.set(b,k));var w=k.get(y);w===void 0?(b.addEventListener(y,Gi,{passive:x}),k.set(y,1)):k.set(y,w+1)}}}};return h($s(Fc)),Yi.add(h),()=>{for(var _ of f)for(const x of[t,document]){var S=ss.get(x),y=S.get(_);--y==0?(x.removeEventListener(_,Gi),S.delete(_),S.size===0&&ss.delete(x)):S.set(_,y)}Yi.delete(h),d!==n&&d.parentNode?.removeChild(d)}});return Xi.set(c,u),c}let Xi=new WeakMap;function Ue(e,t){const n=Xi.get(e);return n?(Xi.delete(e),n(t)):Promise.resolve()}function Wh(e){const t=e();t&&Nh(t)&&wv()}function Yh(e){const t=e();t&&!(typeof t=="string")&&Uf()}function Gh(e,t){e!=null&&typeof e.subscribe!="function"&&Ff()}function Zc(e){return e.toString=()=>(Vf(),""),e}class vr{anchor;#e=new Map;#t=new Map;#n=new Map;#i=new Set;#s=!0;constructor(t,n=!0){this.anchor=t,this.#s=n}#a=t=>{if(this.#e.has(t)){var n=this.#e.get(t),r=this.#t.get(n);if(r)Pa(r),this.#i.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[i,a]of this.#e){if(this.#e.delete(i),i===t)break;const l=this.#n.get(a);l&&($e(l.effect),this.#n.delete(a))}for(const[i,a]of this.#t){if(i===n||this.#i.has(i))continue;const l=()=>{if(Array.from(this.#e.values()).includes(i)){var u=document.createDocumentFragment();Da(a,u),u.append(He()),this.#n.set(i,{effect:a,fragment:u})}else $e(a);this.#i.delete(i),this.#t.delete(i)};this.#s||!r?(this.#i.add(i),Cn(a,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)||($e(s.effect),this.#n.delete(r))};ensure(t,n){var r=oe,s=Ec();if(n&&!this.#t.has(t)&&!this.#n.has(t))if(s){var i=document.createDocumentFragment(),a=He();i.append(a),this.#n.set(t,{effect:Ze(()=>n(a)),fragment:i})}else this.#t.set(t,Ze(()=>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.#a),r.ondiscard(this.#r)}else W&&(this.anchor=ne),this.#a(r)}}function Ys(e,t,...n){var r=new vr(e);Zt(()=>{const s=t()??null;r.ensure(s,s&&(i=>s(i,...n)))},Vt)}function Xh(e,t){const n=(r,...s)=>{var i=ba;Po(e);try{return t(r,...s)}finally{Po(i)}};return Zc(n),n}function Jh(e){return(t,...n)=>{var r=e(...n),s;if(W)s=ne,nt();else{var i=r.render().trim(),a=La(i);s=Ce(a),t.before(s)}const l=r.setup?.(s);qe(s,s),typeof l=="function"&&kt(l)}}function Zh(){return le===null&&nv(),(le.ac??=new AbortController).signal}function ja(e){be===null&&ur(),Te(()=>{const t=Ee(e);if(typeof t=="function")return t})}function Na(e){be===null&&ur(),ja(()=>()=>Ee(e))}function Qh(e,t,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(e,{detail:t,bubbles:n,cancelable:r})}function ep(){const e=be;return e===null&&ur(),(t,n,r)=>{const s=e.s.$$events?.[t];if(s){const i=cr(s)?s.slice():[s],a=Qh(t,n,r);for(const l of i)l.call(e.x,a);return!a.defaultPrevented}return!0}}function tp(e){be===null&&ur(),be.l===null&&Wl(),Qc(be).b.push(e)}function np(e){be===null&&ur(),be.l===null&&Wl(),Qc(be).a.push(e)}function Qc(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}const eu=Object.freeze(Object.defineProperty({__proto__:null,afterUpdate:np,beforeUpdate:tp,createContext:Tv,createEventDispatcher:ep,createRawSnippet:Jh,flushSync:hn,fork:Wv,getAbortSignal:Zh,getAllContexts:Rv,getContext:ya,hasContext:ec,hydratable:Eh,hydrate:Xc,mount:ze,onDestroy:Na,onMount:ja,setContext:wa,settled:Sh,tick:Ma,unmount:Ue,untrack:Ee},Symbol.toStringTag,{value:"Module"}));function rp(){return Symbol(jl)}function tu(e,t,n,r){return e!==t&&typeof t=="object"&&Ge in t&&cv(n,Gc(r)),e}function sp(e,t,n,r,s){return tu(n==="="?e[t]=r:n==="&&="?e[t]&&=r():n==="||="?e[t]||=r():n==="??="?e[t]??=r():null,Ee(()=>e[t]),t,s)}async function ip(e,t,n,r,s){return tu(n==="="?e[t]=await r:n==="&&="?e[t]&&=await r():n==="||="?e[t]||=await r():n==="??="?e[t]??=await r():null,Ee(()=>e[t]),t,s)}var zo=new Map;function ap(e){var t=zo.get(e);if(t){for(const n of t)n.remove();zo.delete(e)}}function op(e,t,n){return(...r)=>{const s=e(...r);var i=W?s:s.nodeType===Hl?s.firstChild:s;return nu(i,t,n),s}}function lp(e,t,n){e.__svelte_meta={parent:ls,loc:{file:t,line:n[0],column:n[1]}},n[2]&&nu(e.firstChild,t,n[2])}function nu(e,t,n){for(var r=0,s=0;e&&r<n.length;){if(W&&e.nodeType===on){var i=e;i.data[0]===js?s+=1:i.data[0]===zs&&(s-=1)}s===0&&e.nodeType===Ul&&lp(e,t,n[r++]),e=e.nextSibling}}function cp(e){const t=bt(e);function n(r,s){let i={},a={},l,c=!1,u=r;return Zt(()=>{if(i!==(i=o(t))){if(l){for(var d in a)delete a[d];$e(l)}l=Ze(()=>{u=u[$f]??u,c&&Gn(!1);var f=new.target?new i(u,s):i(u,s);f&&Object.defineProperties(a,Object.getOwnPropertyDescriptors(f)),c&&Gn(!0)}),re.nodes=l.nodes}},Vt),c=!0,W&&(u=ne),a}return n[pt]=e[pt],n[Fn]={fn:e,current:t,update:r=>{g(n[Fn].current,r[Fn].fn),r[Fn].current=n[Fn].current}},n}function up(e){const t=be?.function,n=be?.p?.function;return{mutation:(r,s,i,a,l)=>{const c=s[0];if($o(e,c)||!n)return i;let u=e;for(let f=0;f<s.length-1;f++)if(u=u[s[f]],!u?.[Ge])return i;const d=Gc(`${t[pt]}:${a}:${l}`);return mv(c,d,r,n[pt]),i},binding:(r,s,i)=>{!$o(e,r)&&n&&i()?.[Ge]&&pv(t[pt],r,s[pt],n[pt])}}}function $o(e,t){const n=Ge in e||Bs in e;return!!Nt(e,t)?.set||n&&t in e||!(t in e)}function dp(e){e&&Wf(e[pt]??"a component",e.name)}function fp(){const e=be?.function;function t(n){Kf(n,e[pt])}return{$destroy:()=>t("$destroy()"),$on:()=>t("$on(...)"),$set:()=>t("$set(...)")}}function vp(e,t,n=!1){Ta();let r=!0,s=Ae;Rc(()=>{try{var i=e()}catch(l){s=l;return}var a=jn(i,!0,!0);Ee(()=>{if(n){if(t(...a),!r){const l=Iv("$inspect(...)");l&&(console.groupCollapsed("stack trace"),console.log(l),console.groupEnd())}}else t(r?"init":"update",...a)}),r=!1}),Oe(()=>{try{e()}catch{}s!==Ae&&(console.error(s),s=Ae)})}function hp(e,t=[],n=[],r){var s=W,i=null;if(s&&(nt(),i=Ln(!1)),n.length===0&&t.every(c=>c.settled)){r(e),s&&we(i);return}const a=Hr();if(s){var l=ne;we(i)}Ur(t,[],n,c=>{s&&(xe(!0),we(l));try{for(const u of c)o(u);r(e,...c)}finally{s&&xe(!1),a()}})}function pp(e,...t){(typeof e!="object"||!(e instanceof Node))&&Ro();for(let n of t)typeof n!="function"&&Ro()}const qo=0,Bo=1,mp=2;function gp(e,t,n,r,s){W&&nt();var i=Ae,a=bt(i),l=bt(i),c=new vr(e);Zt(()=>{var u=oe;u.deactivate();var d=t();u.activate();var f=!1;let h=W&&To(d)===(e.data===Ns);if(h&&(we(Ln()),xe(!1)),To(d)){var _=Us(),S=!1;const y=x=>{if(!f){S=!0,_(!1),Dt.ensure(),W&&xe(!1);try{x()}finally{Nn(!1),Zn||hn()}}};d.then(x=>{y(()=>{Gt(a,x),c.ensure(Bo,r&&(k=>r(k,a)))})},x=>{y(()=>{if(Gt(l,x),c.ensure(mp,s&&(k=>s(k,l))),!s)throw l.v})}),W?c.ensure(qo,n):tt(()=>{S||y(()=>{c.ensure(qo,n)})})}else Gt(a,d),c.ensure(Bo,r&&(y=>r(y,a)));return h&&xe(!0),()=>{f=!0}})}function V(e,t,n=!1){var r;W&&(r=ne,nt());var s=new vr(e),i=n?Vt:0;function a(l,c){if(W){var u=_a(r);if(l!==parseInt(u.substring(1))){var d=Ln();we(d),s.anchor=d,xe(!1),s.ensure(l,c),xe(!0);return}}s.ensure(l,c)}Zt(()=>{var l=!1;t((c,u=0)=>{l=!0,a(u,c)}),l||a(-1,null)},i)}const _p=Symbol("NaN");function bp(e,t,n){W&&nt();var r=new vr(e);Zt(()=>{var s=t();s!==s&&(s=_p),r.ensure(s,n)})}function yp(e,t){W&&we(Ce(e)),Oe(()=>{var n=t();for(var r in n){var s=n[r];s?e.style.setProperty(r,s):e.style.removeProperty(r)}})}function $n(e,t){return t}function wp(e,t,n){for(var r=[],s=t.length,i,a=t.length,l=0;l<s;l++){let f=t[l];Cn(f,()=>{if(i){if(i.pending.delete(f),i.done.add(f),i.pending.size===0){var h=e.outrogroups;Ji(e,$s(i.done)),h.delete(i),h.size===0&&(e.outrogroups=null)}}else a-=1},!1)}if(a===0){var c=r.length===0&&n!==null;if(c){var u=n,d=u.parentNode;Ca(d),d.append(u),e.items.clear()}Ji(e,t,!c)}else i={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(i)}function Ji(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(const a of e.pending.values())for(const l of a)r.add(e.items.get(l).e)}for(var s=0;s<t.length;s++){var i=t[s];if(r?.has(i)){i.f|=Wt;const a=document.createDocumentFragment();Da(i,a)}else $e(t[s],n)}}var Vo;function ue(e,t,n,r,s,i=null){var a=e,l=new Map,c=(t&Dl)!==0;if(c){var u=e;a=W?we(Ce(u)):u.appendChild(He())}W&&nt();var d=null,f=Ea(()=>{var b=n();return cr(b)?b:b==null?[]:$s(b)}),h,_=new Map,S=!0;function y(b){w.effect.f&lt||(w.pending.delete(b),w.fallback=d,kp(w,h,a,t,r),d!==null&&(h.length===0?d.f&Wt?(d.f^=Wt,xr(d,null,a)):Pa(d):Cn(d,()=>{d=null})))}function x(b){w.pending.delete(b)}var k=Zt(()=>{h=o(f);var b=h.length;let A=!1;if(W){var D=_a(a)===Ns;D!==(b===0)&&(a=Ln(),we(a),xe(!1),A=!0)}for(var C=new Set,m=oe,M=Ec(),R=0;R<b;R+=1){W&&ne.nodeType===on&&ne.data===zs&&(a=ne,A=!0,xe(!1));var O=h[R],P=r(O,R),L=S?null:l.get(P);L?(L.v&&Gt(L.v,O),L.i&&Gt(L.i,R),M&&m.unskip_effect(L.e)):(L=Sp(l,S?a:Vo??=He(),O,P,R,s,t,n),S||(L.e.f|=Wt),l.set(P,L)),C.add(P)}if(b===0&&i&&!d&&(S?d=Ze(()=>i(a)):(d=Ze(()=>i(Vo??=He())),d.f|=Wt)),b>C.size&&Yf(),W&&b>0&&we(Ln()),!S)if(_.set(m,C),M){for(const[q,N]of l)C.has(q)||m.skip_effect(N.e);m.oncommit(y),m.ondiscard(x)}else y(m);A&&xe(!0),o(f)}),w={effect:k,items:l,pending:_,outrogroups:null,fallback:d};S=!1,W&&(a=ne)}function yr(e){for(;e!==null&&!(e.f&qt);)e=e.next;return e}function kp(e,t,n,r,s){var i=(r&wf)!==0,a=t.length,l=e.items,c=yr(e.effect.first),u,d=null,f,h=[],_=[],S,y,x,k;if(i)for(k=0;k<a;k+=1)S=t[k],y=s(S,k),x=l.get(y).e,x.f&Wt||(x.nodes?.a?.measure(),(f??=new Set).add(x));for(k=0;k<a;k+=1){if(S=t[k],y=s(S,k),x=l.get(y).e,e.outrogroups!==null)for(const O of e.outrogroups)O.pending.delete(x),O.done.delete(x);if(x.f&et&&(Pa(x),i&&(x.nodes?.a?.unfix(),(f??=new Set).delete(x))),x.f&Wt)if(x.f^=Wt,x===c)xr(x,null,n);else{var w=d?d.next:c;x===e.effect.last&&(e.effect.last=x.prev),x.prev&&(x.prev.next=x.next),x.next&&(x.next.prev=x.prev),dn(e,d,x),dn(e,x,w),xr(x,w,n),d=x,h=[],_=[],c=yr(d.next);continue}if(x!==c){if(u!==void 0&&u.has(x)){if(h.length<_.length){var b=_[0],A;d=b.prev;var D=h[0],C=h[h.length-1];for(A=0;A<h.length;A+=1)xr(h[A],b,n);for(A=0;A<_.length;A+=1)u.delete(_[A]);dn(e,D.prev,C.next),dn(e,d,D),dn(e,C,b),c=b,d=C,k-=1,h=[],_=[]}else u.delete(x),xr(x,c,n),dn(e,x.prev,x.next),dn(e,x,d===null?e.effect.first:d.next),dn(e,d,x),d=x;continue}for(h=[],_=[];c!==null&&c!==x;)(u??=new Set).add(c),_.push(c),c=yr(c.next);if(c===null)continue}x.f&Wt||h.push(x),d=x,c=yr(x.next)}if(e.outrogroups!==null){for(const O of e.outrogroups)O.pending.size===0&&(Ji(e,$s(O.done)),e.outrogroups?.delete(O));e.outrogroups.size===0&&(e.outrogroups=null)}if(c!==null||u!==void 0){var m=[];if(u!==void 0)for(x of u)x.f&et||m.push(x);for(;c!==null;)!(c.f&et)&&c!==e.fallback&&m.push(c),c=yr(c.next);var M=m.length;if(M>0){var R=r&Dl&&a===0?n:null;if(i){for(k=0;k<M;k+=1)m[k].nodes?.a?.measure();for(k=0;k<M;k+=1)m[k].nodes?.a?.fix()}wp(e,m,R)}}i&&tt(()=>{if(f!==void 0)for(x of f)x.nodes?.a?.apply()})}function Sp(e,t,n,r,s,i,a,l){var c=a&bf?a&kf?bt(n):Hs(n,!1,!1):null,u=a&yf?bt(s):null;return{v:c,i:u,e:Ze(()=>(i(t,c??n,u??s,l),()=>{e.delete(r)}))}}function xr(e,t,n){if(e.nodes)for(var r=e.nodes.start,s=e.nodes.end,i=t&&!(t.f&Wt)?t.nodes.start:n;r!==null;){var a=yt(r);if(i.before(r),r===s)return;r=a}}function dn(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function xp(e,t,n=!1,r=!1,s=!1,i=!1){var a=e,l="";if(n){var c=e;W&&(a=we(Ce(c)))}$(()=>{var u=re;if(l===(l=t()??"")){W&&nt();return}if(n&&!W){u.nodes=null,c.innerHTML=l,l!==""&&qe(Ce(c),c.lastChild);return}if(u.nodes!==null&&(Mc(u.nodes.start,u.nodes.end),u.nodes=null),l!==""){if(W){ne.data;for(var d=nt(),f=d;d!==null&&(d.nodeType!==on||d.data!=="");)f=d,d=yt(d);if(d===null)throw Fr(),Pn;qe(ne,f),a=we(d);return}var h=r?qr:s?ma:void 0,_=yn(r?"svg":s?"math":"template",h);_.innerHTML=l;var S=r||s?_:_.content;if(qe(Ce(S),S.lastChild),r||s)for(;Ce(S);)a.before(Ce(S));else a.before(S)}})}function Ep(e,t,n,r,s){W&&nt();var i=t.$$slots?.[n],a=!1;i===!0&&(i=t[n==="default"?"children":n],a=!0),i===void 0?s!==null&&s(e):i(e,a?()=>r:r)}function Ip(e){const t={};e.children&&(t.default=!0);for(const n in e.$$slots)t[n]=!0;return t}function Gr(e,t,n){var r;W&&(r=ne,nt());var s=new vr(e);Zt(()=>{var i=t()??null;if(W){var a=_a(r),l=a===js,c=i!==null;if(l!==c){var u=Ln();we(u),s.anchor=u,xe(!1),s.ensure(i,i&&(d=>n(d,i))),xe(!0);return}}s.ensure(i,i&&(d=>n(d,i)))},Vt)}const Ap=()=>performance.now(),Kt={tick:e=>requestAnimationFrame(e),now:()=>Ap(),tasks:new Set};function ru(){const e=Kt.now();Kt.tasks.forEach(t=>{t.c(e)||(Kt.tasks.delete(t),t.f())}),Kt.tasks.size!==0&&Kt.tick(ru)}function Cp(e){let t;return Kt.tasks.size===0&&Kt.tick(ru),{promise:new Promise(n=>{Kt.tasks.add(t={c:e,f:n})}),abort(){Kt.tasks.delete(t)}}}function Is(e,t){wn(()=>{e.dispatchEvent(new CustomEvent(t))})}function Tp(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 Fo(e){const t={},n=e.split(";");for(const r of n){const[s,i]=r.split(":");if(!s||i===void 0)break;const a=Tp(s.trim());t[a]=i.trim()}return t}const Rp=e=>e;let su=null;function Uo(e){su=e}function Pp(e,t,n){var r=su??re,s=r.nodes,i,a,l,c=null;s.a??={element:e,measure(){i=this.element.getBoundingClientRect()},apply(){if(l?.abort(),a=this.element.getBoundingClientRect(),i.left!==a.left||i.right!==a.right||i.top!==a.top||i.bottom!==a.bottom){const u=t()(this.element,{from:i,to:a},n?.());l=As(this.element,u,void 0,1,()=>{l?.abort(),l=void 0})}},fix(){if(!e.getAnimations().length){var{position:u,width:d,height:f}=getComputedStyle(e);if(u!=="absolute"&&u!=="fixed"){var h=e.style;c={position:h.position,width:h.width,height:h.height,transform:h.transform},h.position="absolute",h.width=d,h.height=f;var _=e.getBoundingClientRect();if(i.left!==_.left||i.top!==_.top){var S=`translate(${i.left-_.left}px, ${i.top-_.top}px)`;h.transform=h.transform?`${h.transform} ${S}`:S}}}},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 Dp(e,t,n,r){var s=(e&If)!==0,i=(e&Af)!==0,a=s&&i,l=(e&Cf)!==0,c=a?"both":s?"in":"out",u,d=t.inert,f=t.style.overflow,h,_;function S(){return wn(()=>u??=n()(t,r?.()??{},{direction:c}))}var y={is_global:l,in(){if(t.inert=d,!s){_?.abort(),_?.reset?.();return}i||h?.abort(),h=As(t,S(),_,1,()=>{Is(t,"introend"),h?.abort(),h=u=void 0,t.style.overflow=f})},out(b){if(!i){b?.(),u=void 0;return}t.inert=!0,_=As(t,S(),h,0,()=>{Is(t,"outroend"),b?.()})},stop:()=>{h?.abort(),_?.abort()}},x=re;if((x.nodes.t??=[]).push(y),s&&Es){var k=l;if(!k){for(var w=x.parent;w&&w.f&Vt;)for(;(w=w.parent)&&!(w.f&zt););k=!w||(w.f&an)!==0}k&&wt(()=>{Ee(()=>y.in())})}}function As(e,t,n,r,s){var i=r===1;if(Un(t)){var a,l=!1;return tt(()=>{if(!l){var x=t({direction:i?"in":"out"});a=As(e,x,n,r,s)}}),{abort:()=>{l=!0,a?.abort()},deactivate:()=>a.deactivate(),reset:()=>a.reset(),t:()=>a.t()}}if(n?.deactivate(),!t?.duration&&!t?.delay)return Is(e,i?"introstart":"outrostart"),s(),{abort:mt,deactivate:mt,reset:mt,t:()=>r};const{delay:c=0,css:u,tick:d,easing:f=Rp}=t;var h=[];if(i&&n===void 0&&(d&&d(0,1),u)){var _=Fo(u(0,1));h.push(_,_)}var S=()=>1-r,y=e.animate(h,{duration:c,fill:"forwards"});return y.onfinish=()=>{y.cancel(),Is(e,i?"introstart":"outrostart");var x=n?.t()??1-r;n?.abort();var k=r-x,w=t.duration*Math.abs(k),b=[];if(w>0){var A=!1;if(u)for(var D=Math.ceil(w/16.666666666666668),C=0;C<=D;C+=1){var m=x+k*f(C/D),M=Fo(u(m,1-m));b.push(M),A||=M.overflow==="hidden"}A&&(e.style.overflow="hidden"),S=()=>{var R=y.currentTime;return x+k*f(R/w)},d&&Cp(()=>{if(y.playState!=="running")return!1;var R=S();return d(R,1-R),!0})}y=e.animate(b,{duration:w,fill:"forwards"}),y.onfinish=()=>{S=()=>r,d?.(r,1-r),s()}},{abort:()=>{y&&(y.cancel(),y.effect=null,y.onfinish=mt)},deactivate:()=>{s=mt},reset:()=>{r===0&&d?.(1,0)},t:()=>S()}}function Mp(e,t,n,r,s,i){let a=W;W&&nt();var l=null;W&&ne.nodeType===Ul&&(l=ne,nt());var c=W?ne:e,u=re,d=new vr(c,!1);Zt(()=>{const f=t()||null;var h=s?s():n||f==="svg"?qr:void 0;if(f===null){d.ensure(null,null),Gn(!0);return}return d.ensure(f,_=>{if(f){if(l=W?l:yn(f,h),qe(l,l),r){W&&Kh(f)&&l.append(document.createComment(""));var S=W?Ce(l):l.appendChild(He());W&&(S===null?xe(!1):we(S)),Uo(u),r(l,S),Uo(null)}re.nodes.end=l,_.before(l)}W&&we(_)}),Gn(!0),()=>{f&&Gn(!1)}},Vt),kt(()=>{Gn(!0)}),a&&(xe(!0),we(c))}function Op(e,t){let n=null,r=W;var s;if(W){n=ne;for(var i=Ce(document.head);i!==null&&(i.nodeType!==on||i.data!==e);)i=yt(i);if(i===null)xe(!1);else{var a=yt(i);i.remove(),we(a)}}W||(s=document.head.appendChild(He()));try{Zt(()=>t(s),Vl|bn)}finally{r&&(xe(!0),we(n))}}function Lp(e,t){wt(()=>{var n=e.getRootNode(),r=n.host?n:n.head??n.ownerDocument.head;if(!r.querySelector("#"+t.hash)){const s=yn("style");s.id=t.hash,s.textContent=t.code,r.appendChild(s)}})}function iu(e,t,n){wt(()=>{var r=Ee(()=>t(e,n?.())||{});if(n&&r?.update){var s=!1,i={};Oe(()=>{var a=n();Oa(a),s&&Xl(i,a)&&(i=a,r.update(a))}),s=!0}if(r?.destroy)return()=>r.destroy()})}function za(e,t){var n=void 0,r;Pc(()=>{n!==(n=t())&&(r&&($e(r),r=null),n&&(r=Ze(()=>{wt(()=>n(e))})))})}const jp=/[&"<]/g;function Np(e,t){const n=String(e??""),r=jp;r.lastIndex=0;let s="",i=0;for(;r.test(n);){const a=r.lastIndex-1,l=n[a];s+=n.substring(i,a)+(l==="&"?"&amp;":l==='"'?"&quot;":"&lt;"),i=a+1}return s+n.substring(i)}function au(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=au(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function zp(){for(var e,t,n=0,r="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=au(e))&&(r&&(r+=" "),r+=t);return r}const Ho={translate:new Map([[!0,"yes"],[!1,"no"]])};function $p(e,t,n=!1){if(e==="hidden"&&t!=="until-found"&&(n=!0),t==null||!t&&n)return"";const r=Mf.call(Ho,e)&&Ho[e].get(t)||t,s=n?'=""':`="${Np(r)}"`;return` ${e}${s}`}function ou(e){return typeof e=="object"?zp(e):e??""}const Ko=[...`
6
- \r\f \v\uFEFF`];function qp(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 i=s.length,a=0;(a=r.indexOf(s,a))>=0;){var l=a+i;(a===0||Ko.includes(r[a-1]))&&(l===r.length||Ko.includes(r[l]))?r=(a===0?"":r.substring(0,a))+r.substring(l+1):a=l}}return r===""?null:r}function Wo(e,t=!1){var n=t?" !important;":";",r="";for(var s of Object.keys(e)){var i=e[s];i!=null&&i!==""&&(r+=" "+s+": "+i+n)}return r}function xi(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function Bp(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 i=!1,a=0,l=!1,c=[];r&&c.push(...Object.keys(r).map(xi)),s&&c.push(...Object.keys(s).map(xi));var u=0,d=-1;const y=e.length;for(var f=0;f<y;f++){var h=e[f];if(l?h==="/"&&e[f-1]==="*"&&(l=!1):i?i===h&&(i=!1):h==="/"&&e[f+1]==="*"?l=!0:h==='"'||h==="'"?i=h:h==="("?a++:h===")"&&a--,!l&&i===!1&&a===0){if(h===":"&&d===-1)d=f;else if(h===";"||f===y-1){if(d!==-1){var _=xi(e.substring(u,d).trim());if(!c.includes(_)){h!==";"&&f++;var S=e.substring(u,f).trim();n+=" "+S+";"}}u=f+1,d=-1}}}}return r&&(n+=Wo(r)),s&&(n+=Wo(s,!0)),n=n.trim(),n===""?null:n}return e==null?null:String(e)}function ye(e,t,n,r,s,i){var a=e.__className;if(W||a!==n||a===void 0){var l=qp(n,r,i);(!W||l!==e.getAttribute("class"))&&(l==null?e.removeAttribute("class"):t?e.className=l:e.setAttribute("class",l)),e.__className=n}else if(i&&s!==i)for(var c in i){var u=!!i[c];(s==null||u!==!!s[c])&&e.classList.toggle(c,u)}return i}function Ei(e,t={},n,r){for(var s in n){var i=n[s];t[s]!==i&&(n[s]==null?e.style.removeProperty(s):e.style.setProperty(s,i,r))}}function Qt(e,t,n,r){var s=e.__style;if(W||s!==t){var i=Bp(t,r);(!W||i!==e.getAttribute("style"))&&(i==null?e.removeAttribute("style"):e.style.cssText=i),e.__style=t}else r&&(Array.isArray(r)?(Ei(e,n?.[0],r[0]),Ei(e,n?.[1],r[1],"important")):Ei(e,n,r));return r}function Mr(e,t,n=!1){if(e.multiple){if(t==null)return;if(!cr(t))return gv();for(var r of e.options)r.selected=t.includes(Ar(r));return}for(r of e.options){var s=Ar(r);if(wc(s,t)){r.selected=!0;return}}(!n||t!==void 0)&&(e.selectedIndex=-1)}function $a(e){var t=new MutationObserver(()=>{Mr(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),kt(()=>{t.disconnect()})}function Or(e,t,n=t){var r=new WeakSet,s=!0;Wr(e,"change",i=>{var a=i?"[selected]":":checked",l;if(e.multiple)l=[].map.call(e.querySelectorAll(a),Ar);else{var c=e.querySelector(a)??e.querySelector("option:not([disabled])");l=c&&Ar(c)}n(l),e.__value=l,oe!==null&&r.add(oe)}),wt(()=>{var i=t();if(e===document.activeElement){var a=oe;if(r.has(a))return}if(Mr(e,i,s),s&&i===void 0){var l=e.querySelector(":checked");l!==null&&(i=Ar(l),n(i))}e.__value=i,s=!1}),$a(e)}function Ar(e){return"__value"in e?e.__value:e.value}const Kn=Symbol("class"),Wn=Symbol("style"),lu=Symbol("is custom element"),cu=Symbol("is html"),Vp=Bn?"link":"LINK",Fp=Bn?"input":"INPUT",Up=Bn?"option":"OPTION",Hp=Bn?"select":"SELECT",Kp=Bn?"progress":"PROGRESS";function Se(e){if(W){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute("value")){var r=e.value;_e(e,"value",null),e.value=r}if(e.hasAttribute("checked")){var s=e.checked;_e(e,"checked",null),e.checked=s}}};e.__on_r=n,tt(n),Ac()}}function uu(e,t){var n=Gs(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==Kp)||(e.value=t??"")}function du(e,t){var n=Gs(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function fu(e,t){t?e.hasAttribute("selected")||e.setAttribute("selected",""):e.removeAttribute("selected")}function Wp(e,t){const n=e.checked;e.defaultChecked=t,e.checked=n}function Yp(e,t){const n=e.value;e.defaultValue=t,e.value=n}function _e(e,t,n,r){var s=Gs(e);W&&(s[t]=e.getAttribute(t),t==="src"||t==="srcset"||t==="href"&&e.nodeName===Vp)||s[t]!==(s[t]=n)&&(t==="loading"&&(e[Nf]=n),n==null?e.removeAttribute(t):typeof n!="string"&&qa(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function Gp(e,t,n){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n)}function Xp(e,t,n){var r=le,s=re;let i=W;W&&xe(!1),ut(null),Xe(null);try{t!=="style"&&(Zi.has(e.getAttribute("is")||e.nodeName)||!customElements||customElements.get(e.getAttribute("is")||e.nodeName.toLowerCase())?qa(e).includes(t):n&&typeof n=="object")?e[t]=n:_e(e,t,n==null?n:String(n))}finally{ut(r),Xe(s),i&&xe(!0)}}function Jp(e,t,n,r,s=!1,i=!1){if(W&&s&&e.nodeName===Fp){var a=e,l=a.type==="checkbox"?"defaultChecked":"defaultValue";l in n||Se(a)}var c=Gs(e),u=c[lu],d=!c[cu];let f=W&&u;f&&xe(!1);var h=t||{},_=e.nodeName===Up;for(var S in t)S in n||(n[S]=null);n.class?n.class=ou(n.class):(r||n[Kn])&&(n.class=null),n[Wn]&&(n.style??=null);var y=qa(e);for(const C in n){let m=n[C];if(_&&C==="value"&&m==null){e.value=e.__value="",h[C]=m;continue}if(C==="class"){var x=e.namespaceURI==="http://www.w3.org/1999/xhtml";ye(e,x,m,r,t?.[Kn],n[Kn]),h[C]=m,h[Kn]=n[Kn];continue}if(C==="style"){Qt(e,m,t?.[Wn],n[Wn]),h[C]=m,h[Wn]=n[Wn];continue}var k=h[C];if(!(m===k&&!(m===void 0&&e.hasAttribute(C)))){h[C]=m;var w=C[0]+C[1];if(w!=="$$")if(w==="on"){const M={},R="$$"+C;let O=C.slice(2);var b=qh(O);if(zh(O)&&(O=O.slice(0,-7),M.capture=!0),!b&&k){if(m!=null)continue;e.removeEventListener(O,h[R],M),h[R]=null}if(b)U(O,e,m),pe([O]);else if(m!=null){let P=function(L){h[C].call(this,L)};h[R]=Uc(O,e,P,M)}}else if(C==="style")_e(e,C,m);else if(C==="autofocus")dr(e,!!m);else if(!u&&(C==="__value"||C==="value"&&m!=null))e.value=e.__value=m;else if(C==="selected"&&_)fu(e,m);else{var A=C;d||(A=Vh(A));var D=A==="defaultValue"||A==="defaultChecked";if(m==null&&!u&&!D)if(c[C]=null,A==="value"||A==="checked"){let M=e;const R=t===void 0;if(A==="value"){let O=M.defaultValue;M.removeAttribute(A),M.defaultValue=O,M.value=M.__value=R?O:null}else{let O=M.defaultChecked;M.removeAttribute(A),M.defaultChecked=O,M.checked=R?O:!1}}else e.removeAttribute(C);else D||y.includes(A)&&(u||typeof m!="string")?(e[A]=m,A in c&&(c[A]=Ae)):typeof m!="function"&&_e(e,A,m)}}}return f&&xe(!0),h}function Zp(e,t,n=[],r=[],s=[],i,a=!1,l=!1){Ur(s,n,r,c=>{var u=void 0,d={},f=e.nodeName===Hp,h=!1;if(Pc(()=>{var S=t(...c.map(o)),y=Jp(e,u,S,i,a,l);h&&f&&"value"in S&&Mr(e,S.value);for(let k of Object.getOwnPropertySymbols(d))S[k]||$e(d[k]);for(let k of Object.getOwnPropertySymbols(S)){var x=S[k];k.description===jl&&(!u||x!==u[k])&&(d[k]&&$e(d[k]),d[k]=Ze(()=>za(e,()=>x))),y[k]=x}u=y}),f){var _=e;wt(()=>{Mr(_,u.value,!0),$a(_)})}h=!0})}function Gs(e){return e.__attributes??={[lu]:e.nodeName.includes("-"),[cu]:e.namespaceURI===Ll}}var Zi=new Map;function qa(e){var t=e.getAttribute("is")||e.nodeName,n=Zi.get(t);if(n)return n;Zi.set(t,n=[]);for(var r,s=e,i=Element.prototype;i!==s;){r=zl(s);for(var a in r)r[a].set&&n.push(a);s=qs(s)}return n}let Ii=null;function vu(){if(Ii===null){var e=yn("select");e.innerHTML=Hc("<option><span>t</span></option>"),Ii=e.firstChild?.firstChild?.nodeType===1}return Ii}function Qp(e,t){vu()&&za(e,()=>()=>{const n=e.closest("select");if(!n)return;const r=new MutationObserver(s=>{var i=!1;for(const a of s){if(a.target===e)return;i||=!!a.target.parentElement?.closest("option")?.selected}i&&(e.replaceWith(e=e.cloneNode(!0)),t(e))});return r.observe(n,{childList:!0,characterData:!0,subtree:!0}),()=>{r.disconnect()}})}function em(e,t){var n=W;vu()||(xe(!1),e.textContent="",e.append(Ic("")));try{t()}finally{n&&(W?v(e):(xe(!0),we(e)))}}function tm(e){ft(document,["focusin","focusout"],t=>{t&&t.type==="focusout"&&t.relatedTarget||e(document.activeElement)})}function Me(e,t,n=t){var r=new WeakSet;Wr(e,"input",async s=>{var i=s?e.defaultValue:e.value;if(i=Ci(e)?Ti(i):i,n(i),oe!==null&&r.add(oe),await Ma(),i!==(i=t())){var a=e.selectionStart,l=e.selectionEnd,c=e.value.length;if(e.value=i??"",l!==null){var u=e.value.length;a===l&&l===c&&u>c?(e.selectionStart=u,e.selectionEnd=u):(e.selectionStart=a,e.selectionEnd=Math.min(l,u))}}}),(W&&e.defaultValue!==e.value||Ee(t)==null&&e.value)&&(n(Ci(e)?Ti(e.value):e.value),oe!==null&&r.add(oe)),Oe(()=>{var s=t();if(e===document.activeElement){var i=oe;if(r.has(i))return}Ci(e)&&s===Ti(e.value)||e.type==="date"&&!s&&!e.value||s!==e.value&&(e.value=s??"")})}const Ai=new Set;function nm(e,t,n,r,s=r){var i=n.getAttribute("type")==="checkbox",a=e;let l=!1;if(t!==null)for(var c of t)a=a[c]??=[];a.push(n),Wr(n,"change",()=>{var u=n.__value;i&&(u=Yo(a,u,n.checked)),s(u)},()=>s(i?[]:null)),Oe(()=>{var u=r();if(W&&n.defaultChecked!==n.checked){l=!0;return}i?(u=u||[],n.checked=u.includes(n.__value)):n.checked=wc(n.__value,u)}),kt(()=>{var u=a.indexOf(n);u!==-1&&a.splice(u,1)}),Ai.has(a)||(Ai.add(a),tt(()=>{a.sort((u,d)=>u.compareDocumentPosition(d)===4?-1:1),Ai.delete(a)})),tt(()=>{if(l){var u;if(i)u=Yo(a,u,n.checked);else{var d=a.find(f=>f.checked);u=d?.__value}s(u)}})}function fs(e,t,n=t){Wr(e,"change",r=>{var s=r?e.defaultChecked:e.checked;n(s)}),(W&&e.defaultChecked!==e.checked||Ee(t)==null)&&n(e.checked),Oe(()=>{var r=t();e.checked=!!r})}function Yo(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 Ci(e){var t=e.type;return t==="number"||t==="range"}function Ti(e){return e===""?null:+e}function rm(e,t,n=t){Wr(e,"change",()=>{n(e.files)}),W&&e.files&&n(e.files),Oe(()=>{e.files=t()})}function Ba(e){for(var t=[],n=0;n<e.length;n+=1)t.push({start:e.start(n),end:e.end(n)});return t}function sm(e,t,n=t){var r,s,i=()=>{cancelAnimationFrame(r),e.paused||(r=requestAnimationFrame(i));var a=e.currentTime;s!==a&&n(s=a)};r=requestAnimationFrame(i),e.addEventListener("timeupdate",i),Oe(()=>{var a=Number(t());s!==a&&!isNaN(a)&&(e.currentTime=s=a)}),kt(()=>{cancelAnimationFrame(r),e.removeEventListener("timeupdate",i)})}function im(e,t){var n;ft(e,["loadedmetadata","progress","timeupdate","seeking"],()=>{var r=e.buffered;(!n||n.length!==r.length||n.some((s,i)=>r.start(i)!==s.start||r.end(i)!==s.end))&&(n=Ba(r),t(n))})}function am(e,t){ft(e,["loadedmetadata"],()=>t(Ba(e.seekable)))}function om(e,t){ft(e,["timeupdate"],()=>t(Ba(e.played)))}function lm(e,t){ft(e,["seeking","seeked"],()=>t(e.seeking))}function cm(e,t){ft(e,["timeupdate","ended"],()=>t(e.ended))}function um(e,t){ft(e,["loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","emptied"],()=>t(e.readyState))}function dm(e,t,n=t){wt(()=>{var r=Number(t());r!==e.playbackRate&&!isNaN(r)&&(e.playbackRate=r)}),wt(()=>{ft(e,["ratechange"],()=>{n(e.playbackRate)})})}function fm(e,t,n=t){var r=t(),s=()=>{r!==e.paused&&n(r=e.paused)};ft(e,["play","pause","canplay"],s,r==null),wt(()=>{(r=!!t())!==e.paused&&(r?e.pause():e.play().catch(i=>{throw n(r=!0),i}))})}function vm(e,t,n=t){var r=()=>{n(e.volume)};t()==null&&r(),ft(e,["volumechange"],r,!1),Oe(()=>{var s=Number(t());s!==e.volume&&!isNaN(s)&&(e.volume=s)})}function hm(e,t,n=t){var r=()=>{n(e.muted)};t()==null&&r(),ft(e,["volumechange"],r,!1),Oe(()=>{var s=!!t();e.muted!==s&&(e.muted=s)})}function pm(e){ft(window,["online","offline"],()=>{e(navigator.onLine)})}function mm(e,t,n){var r=Nt(e,t);r&&r.set&&(e[t]=n,kt(()=>{e[t]=null}))}class Xr{#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.#i().observe(t,this.#n),()=>{var s=this.#e.get(t);s.delete(n),s.size===0&&(this.#e.delete(t),this.#t.unobserve(t))}}#i(){return this.#t??(this.#t=new ResizeObserver(t=>{for(var n of t){Xr.entries.set(n.target,n);for(var r of this.#e.get(n.target)||[])r(n)}}))}}var gm=new Xr({box:"content-box"}),hu=new Xr({box:"border-box"}),_m=new Xr({box:"device-pixel-content-box"});function bm(e,t,n){var r=t==="contentRect"||t==="contentBoxSize"?gm:t==="borderBoxSize"?hu:_m,s=r.observe(e,i=>n(i[t]));kt(s)}function ym(e,t,n){var r=hu.observe(e,()=>n(e[t]));wt(()=>(Ee(()=>n(e[t])),r))}function Go(e,t){return e===t||e?.[Ge]===t}function dt(e={},t,n,r){var s=be.r,i=re;return wt(()=>{var a,l;return Oe(()=>{a=l,l=r?.()||[],Ee(()=>{e!==n(...l)&&(t(e,...l),a&&Go(n(...a),e)&&t(null,...a))})}),()=>{let c=i;for(;c!==s&&c.parent!==null&&c.parent.f&$i;)c=c.parent;const u=()=>{l&&Go(n(...l),e)&&t(null,...l)},d=c.teardown;c.teardown=()=>{u(),d?.()}}}),e}function wm(e,t,n,r=n){t.addEventListener("input",()=>{r(t[e])}),Oe(()=>{var s=n();if(t[e]!==s)if(s==null){var i=t[e];r(i)}else t[e]=s+""})}function km(e,t,n,r,s){var i=()=>{r(n[e])};n.addEventListener(t,i),s?Oe(()=>{n[e]=s()}):i(),(n===document.body||n===window||n===document)&&kt(()=>{n.removeEventListener(t,i)})}function Sm(e,t){ft(e,["focus","blur"],()=>{t(e===document.activeElement)})}function xm(e,t,n=t){var r=e==="x",s=()=>wn(()=>{i=!0,clearTimeout(a),a=setTimeout(l,100),n(window[r?"scrollX":"scrollY"])});addEventListener("scroll",s,{passive:!0});var i=!1,a,l=()=>{i=!1},c=!0;Oe(()=>{var u=t();c?c=!1:!i&&u!=null&&(i=!0,clearTimeout(a),r?scrollTo(u,window.scrollY):scrollTo(window.scrollX,u),a=setTimeout(l,100))}),wt(s),kt(()=>{removeEventListener("scroll",s)})}function Em(e,t){ft(window,["resize"],()=>wn(()=>t(window[e])))}function Im(e){return function(...t){var n=t[0];n.isTrusted&&e?.apply(this,t)}}function Am(e){return function(...t){var n=t[0];n.target===this&&e?.apply(this,t)}}function Cm(e){return function(...t){var n=t[0];return n.stopPropagation(),e?.apply(this,t)}}function Tm(e){var t=!1;return function(...n){if(!t)return t=!0,e?.apply(this,n)}}function Rm(e){return function(...t){var n=t[0];return n.stopImmediatePropagation(),e?.apply(this,t)}}function Pm(e){return function(...t){var n=t[0];return n.preventDefault(),e?.apply(this,t)}}function Dm(e=!1){const t=be,n=t.l.u;if(!n)return;let r=()=>Oa(t.s);if(e){let s=0,i={};const a=Kr(()=>{let l=!1;const c=t.s;for(const u in c)c[u]!==i[u]&&(i[u]=c[u],l=!0);return l&&s++,s});r=()=>o(a)}n.b.length&&Tc(()=>{Xo(t,r),Ni(n.b)}),Te(()=>{const s=Ee(()=>n.m.map(Of));return()=>{for(const i of s)typeof i=="function"&&i()}}),n.a.length&&Te(()=>{Xo(t,r),Ni(n.a)})}function Xo(e,t){if(e.l.s)for(const n of e.l.s)o(n);t()}function Mm(e){var t=bt(0);return function(){return arguments.length===1?(g(t,o(t)+1),arguments[0]):(o(t),e())}}function Om(e,t){var n=e.$$events?.[t.type],r=cr(n)?n.slice():n==null?[]:[n];for(var s of r)s.call(this,t)}function Lm(e,t,n){e.$$events||={},e.$$events[t]||=[],e.$$events[t].push(n)}function jm(e){for(var t in e)t in this&&(this[t]=e[t])}function Nm(e,t=1){const n=e();return e(n+t),n}function zm(e,t=1){const n=e()+t;return e(n),n}const $m={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 qm(e,t,n){return new Proxy({props:e,exclude:t},$m)}const Bm={get(e,t){if(!e.exclude.includes(t))return o(e.version),t in e.special?e.special[t]():e.props[t]},set(e,t,n){if(!(t in e.special)){var r=re;try{Xe(e.parent_effect),e.special[t]=ct({get[t](){return e.props[t]}},t,Ml)}finally{Xe(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 Vm(e,t){return new Proxy({props:e,exclude:t,special:{},version:bt(0),parent_effect:re},Bm)}const Fm={get(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(Un(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];Un(s)&&(s=s());const i=Nt(s,t);if(i&&i.set)return i.set(n),!0}return!1},getOwnPropertyDescriptor(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(Un(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r){const s=Nt(r,t);return s&&!s.configurable&&(s.configurable=!0),s}}},has(e,t){if(t===Ge||t===Bs)return!1;for(let n of e.props)if(Un(n)&&(n=n()),n!=null&&t in n)return!0;return!1},ownKeys(e){const t=[];for(let n of e.props)if(Un(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 Jr(...e){return new Proxy({props:e},Fm)}function ct(e,t,n,r){var s=(n&xf)!==0,i=(n&Ef)!==0,a=r,l=!0,c=()=>(l&&(l=!1,a=i?Ee(r):r),a);let u;if(s){var d=Ge in e||Bs in e;u=Nt(e,t)?.set??(d&&t in e?w=>e[t]=w:void 0)}var f,h=!1;s?[f,h]=lc(()=>e[t]):f=e[t],f===void 0&&r!==void 0&&(f=c(),u&&(sv(),u(f)));var _;if(_=()=>{var w=e[t];return w===void 0?c():(l=!0,w)},!(n&Ml))return _;if(u){var S=e.$$legacy;return function(w,b){return arguments.length>0?((!b||S||h)&&u(b?_():w),w):_()}}var y=!1,x=(n&Sf?Kr:Ea)(()=>(y=!1,_()));s&&o(x);var k=re;return function(w,b){if(arguments.length>0){const A=b?o(x):s?ce(w):w;return g(x,A),y=!0,a!==void 0&&(a=A),w}return sn&&y||k.f&lt?x.v:o(x)}}function Um(e,t,n,r,s,i){hc(t,()=>{var a=!1;ba?.[pt],Oe(()=>{if(!a){var[l,c]=lc(n);if(!c){var u=r(),d=!1,f=Oe(()=>{d||l[u]});d=!0,f.deps===null&&(uv(),a=!0)}}})})}function Hm(e){return new Km(e)}class Km{#e;#t;constructor(t){var n=new Map,r=(i,a)=>{var l=Hs(a,!1,!1);return n.set(i,l),l};const s=new Proxy({...t.props||{},$$events:{}},{get(i,a){return o(n.get(a)??r(a,Reflect.get(i,a)))},has(i,a){return a===Bs?!0:(o(n.get(a)??r(a,Reflect.get(i,a))),Reflect.has(i,a))},set(i,a,l){return g(n.get(a)??r(a,l),l),Reflect.set(i,a,l)}});this.#t=(t.hydrate?Xc:ze)(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)&&hn(),this.#e=s.$$events;for(const i of Object.keys(this.#t))i==="$set"||i==="$destroy"||i==="$on"||Dn(this,i,{get(){return this.#t[i]},set(a){this.#t[i]=a},enumerable:!0});this.#t.$set=i=>{Object.assign(s,i)},this.#t.$destroy=()=>{Ue(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 pu;typeof HTMLElement=="function"&&(pu=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 i=yn("slot");r!=="default"&&(i.name=r),I(s,i)}};if(await Promise.resolve(),!this.$$cn||this.$$c)return;const t={},n=Wm(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]=vs(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=Hm({component:this.$$ctor,target:this.$$shadowRoot||this,props:{...this.$$d,$$slots:t,$$host:this}}),this.$$me=Ws(()=>{Oe(()=>{this.$$r=!0;for(const r of ys(this.$$c)){if(!this.$$p_d[r]?.reflect)continue;this.$$d[r]=this.$$c[r];const s=vs(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 i=this.$$c.$on(r,s);this.$$l_u.set(s,i)}this.$$l={}}}attributeChangedCallback(e,t,n){this.$$r||(e=this.$$g_p(e),this.$$d[e]=vs(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 ys(this.$$p_d).find(t=>this.$$p_d[t].attribute===e||!this.$$p_d[t].attribute&&t.toLowerCase()===e)||e}});function vs(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 Wm(e){const t={};return e.childNodes.forEach(n=>{t[n.slot||"default"]=!0}),t}function Ym(e,t,n,r,s,i){let a=class extends pu{constructor(){super(e,n,s),this.$$p_d=t}static get observedAttributes(){return ys(t).map(l=>(t[l].attribute||l).toLowerCase())}};return ys(t).forEach(l=>{Dn(a.prototype,l,{get(){return this.$$c&&l in this.$$c?this.$$c[l]:this.$$d[l]},set(c){c=vs(l,c,t),this.$$d[l]=c;var u=this.$$c;if(u){var d=Nt(u,l)?.get;d?u[l]=c:u.$set({[l]:c})}}})}),r.forEach(l=>{Dn(a.prototype,l,{get(){return this.$$c?.[l]}})}),i&&(a=i(a)),e.element=a,a}function Gm(e,...t){return Ee(()=>{try{let n=!1;const r=[];for(const s of t)s&&typeof s=="object"&&Ge in s?(r.push(jn(s,!0)),n=!0):r.push(s);n&&(dv(e),console.log("%c[snapshot]","color: grey",...r))}catch{}}),t}const mu=Object.freeze(Object.defineProperty({__proto__:null,CLASS:Kn,FILENAME:pt,HMR:Fn,NAMESPACE_SVG:qr,STYLE:Wn,aborted:Wi,action:iu,get active_effect(){return re},add_legacy_event_listener:Lm,add_locations:op,add_svelte_meta:Cv,animation:Pp,append:I,append_styles:Lp,apply:Ah,assign:sp,assign_async:ip,async:hp,async_derived:pc,attach:za,attachment:rp,attr:$p,attribute_effect:Zp,autofocus:dr,await:gp,bind_active_element:tm,bind_buffered:im,bind_checked:fs,bind_content_editable:wm,bind_current_time:sm,bind_element_size:ym,bind_ended:cm,bind_files:rm,bind_focused:Sm,bind_group:nm,bind_muted:hm,bind_online:pm,bind_paused:fm,bind_playback_rate:dm,bind_played:om,bind_prop:mm,bind_property:km,bind_ready_state:um,bind_resize_observer:bm,bind_seekable:am,bind_seeking:lm,bind_select_value:Or,bind_this:dt,bind_value:Me,bind_volume:vm,bind_window_scroll:xm,bind_window_size:Em,boundary:vc,bubble_event:Om,check_target:dp,child:p,cleanup_styles:ap,clsx:ou,comment:at,component:Gr,create_custom_element:Ym,create_ownership_validator:up,css_props:yp,customizable_select:em,deep_read:xs,deep_read_state:Oa,deferred_template_effect:gh,delegate:pe,delegated:U,derived:Y,derived_safe_equal:Ea,get document(){return kc},each:ue,eager:Kv,effect:wt,effect_root:Ws,effect_tracking:Yr,element:Mp,equals:lh,event:Je,exclude_from_object:jf,fallback:Lf,first_child:he,flush:hn,for_await_track_reactivity_loss:Qv,from_html:T,from_mathml:Ph,from_svg:Wc,from_tree:Dh,get:o,head:Op,hmr:cp,html:xp,hydrate_template:bv,if:V,index:$n,init:Dm,init_select:$a,inspect:vp,invalid_default_snippet:qf,invalidate_inner_signals:yh,invalidate_store:Nv,invoke_error_boundary:Yt,key:bp,legacy_api:fp,legacy_pre_effect:hh,legacy_pre_effect_reset:ph,legacy_rest_props:Vm,log_if_contains_state:Gm,mark_store_binding:Vv,mutable_source:Hs,mutate:ih,next:nn,noop:mt,once:Tm,pending:Jv,pop:ie,preventDefault:Pm,prevent_snippet_stringification:Zc,prop:ct,props_id:Lh,proxy:ce,push:se,raf:Kt,reactive_import:Mm,remove_input_defaults:Se,remove_textarea_child:dh,render_effect:Oe,replay_events:Ih,reset:v,rest_props:qm,run:eh,run_after_blockers:hc,safe_get:xh,sanitize_slots:Ip,save:Zv,select_option:Mr,selectedcontent:Qp,self:Am,set:g,set_attribute:_e,set_checked:du,set_class:ye,set_custom_element_data:Xp,set_default_checked:Wp,set_default_value:Yp,set_selected:fu,set_style:Qt,set_text:j,set_value:uu,set_xlink_attribute:Gp,setup_stores:zv,sibling:E,slot:Ep,snapshot:jn,snippet:Ys,spread_props:Jr,state:z,stopImmediatePropagation:Rm,stopPropagation:Cm,store_get:Lv,store_mutate:$v,store_set:oc,store_unsub:jv,strict_equals:oh,tag:Ev,tag_proxy:Ql,template_effect:$,text:$t,tick:Ma,to_array:Bl,trace:xv,track_reactivity_loss:Ui,transition:Dp,trusted:Im,untrack:Ee,update:sr,update_legacy_props:jm,update_pre:ah,update_pre_prop:zm,update_pre_store:Bv,update_prop:Nm,update_store:qv,user_effect:Te,user_pre_effect:Tc,validate_binding:Um,validate_dynamic_element_tag:Yh,validate_snippet_args:pp,validate_store:Gh,validate_void_dynamic_element:Wh,wait:th,get window(){return Hi},with_script:Mh,wrap_snippet:Xh},Symbol.toStringTag,{value:"Module"}));class Jo{#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 Zo{#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 Xm=["workspace","user"],Va="state:manage",Ft={ephemeral:new Jo,session:new Jo,workspace:new Zo("sh3:workspace:"),user:new Zo("sh3:user:")},Ri=new Map;let Pi=!1;function Jm(e,t,n){Ri.set(`${e}:${t}`,{zone:e,shardId:t,value:n}),!Pi&&(Pi=!0,queueMicrotask(()=>{Pi=!1;for(const{zone:r,shardId:s,value:i}of Ri.values())Ft[r].write(s,i);Ri.clear()}))}function Xs(e,t){const n={};for(const r of Object.keys(t)){const s=t[r],a=Ft[r].read(e),l={...s,...a??{}},c=ce(l);n[r]=c,Xm.includes(r)&&Ws(()=>{let u=!0;Te(()=>{const d=jn(c);if(u){u=!1;return}Jm(r,e,d)})})}return n}function Qo(e,t){Ft[e]=t}function Zm(e,t){return Ft[e].read(t)}function Qi(e,t){Ft[e].delete(t)}const Qm="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(Qm);const eg=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function tg(e){const t=document.activeElement;function n(){return Array.from(e.querySelectorAll(eg))}function r(s){if(s.key!=="Tab")return;const i=n();if(i.length===0){s.preventDefault();return}const a=i[0],l=i[i.length-1],c=document.activeElement;s.shiftKey&&(c===a||!e.contains(c))?(s.preventDefault(),l.focus()):!s.shiftKey&&(c===l||!e.contains(c))&&(s.preventDefault(),a.focus())}return e.addEventListener("keydown",r),queueMicrotask(()=>{(n()[0]??e).focus()}),()=>{e.removeEventListener("keydown",r),t&&document.contains(t)&&t.focus()}}var ng=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 rg(e,t){se(t,!0);let n;Te(()=>{if(n)return tg(n)});function r(l){t.onBackdropClick&&l.target===l.currentTarget&&t.onBackdropClick()}var s=ng(),i=p(s),a=p(i);Gr(a,()=>t.Content,(l,c)=>{c(l,Jr(()=>t.contentProps,{get close(){return t.close}}))}),v(i),dt(i,l=>n=l,()=>n),v(s),$(()=>Qt(i,t.boxStyle)),U("click",s,r),I(e,s),ie()}pe(["click"]);const Fa={};function sg(e,t){Fa[e]=t}function ig(e){delete Fa[e]}function Js(e){const t=Fa[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 _t=[];let Cs=!1,It=null;const ag=.5;function gu(){const e=Js("modal");if(_t.length===0){It&&(It.remove(),It=null);return}It||(It=document.createElement("div"),It.className="sh3-modal-backdrop",It.style.position="absolute",It.style.inset="0",It.style.pointerEvents="auto",It.style.transition="background-color 120ms ease",It.style.background=`rgba(0, 0, 0, ${ag})`);const t=_t[_t.length-1].host;e.insertBefore(It,t)}function _u(e){e.key==="Escape"&&_t.length!==0&&(e.stopPropagation(),e.preventDefault(),_t[_t.length-1].handle.close())}function og(){Cs||(Cs=!0,document.addEventListener("keydown",_u,!0))}function lg(){_t.length>0||Cs&&(Cs=!1,document.removeEventListener("keydown",_u,!0))}function bu(e){const t=_t.indexOf(e);t<0||(_t.splice(t,1),Ue(e.frame),e.host.remove(),gu(),lg())}function cg(e,t,n){const r=Js("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 i={},a={close:()=>bu(i)},l=ze(rg,{target:s,props:{Content:e,contentProps:t??{},close:a.close,boxStyle:n?.boxStyle,onBackdropClick:n?.dismissOnBackdrop?a.close:void 0}});return i.host=s,i.frame=l,i.handle=a,_t.push(i),gu(),og(),a}function ug(){for(;_t.length>0;)bu(_t[_t.length-1])}const yu={open:cg,closeAll:ug};var dg=T('<div class="popup-frame svelte-mp81cl" role="menu" tabindex="-1"><!></div>');function fg(e,t){se(t,!0);let n,r=z(-9999),s=z(-9999);Te(()=>{if(!n)return;const l=n.getBoundingClientRect(),c=4,u=window.innerWidth,d=window.innerHeight;let f=t.anchorRect.bottom+c,h=t.anchorRect.left;if(h+l.width>u-c&&(h=Math.max(c,u-l.width-c)),f+l.height>d-c){const _=t.anchorRect.top-l.height-c;f=_>=c?_:Math.max(c,d-l.height-c)}g(r,f,!0),g(s,h,!0)});var i=dg(),a=p(i);Gr(a,()=>t.Content,(l,c)=>{c(l,Jr(()=>t.contentProps,{get close(){return t.close}}))}),v(i),dt(i,l=>n=l,()=>n),$(()=>Qt(i,`top: ${o(r)??""}px; left: ${o(s)??""}px;`)),I(e,i),ie()}function vg(e){return e instanceof HTMLElement?e.getBoundingClientRect():new DOMRect(e.x,e.y,0,0)}let Rt=null;function wu(e){if(!Rt)return;const t=e.target;t&&Rt.host.contains(t)||Rt.handle.close()}function ku(e){Rt&&e.key==="Escape"&&(e.stopPropagation(),e.preventDefault(),Rt.handle.close())}function hg(){document.addEventListener("pointerdown",wu,!0),document.addEventListener("keydown",ku,!0)}function pg(){document.removeEventListener("pointerdown",wu,!0),document.removeEventListener("keydown",ku,!0)}function ea(e){Rt===e&&(Rt=null,pg(),Ue(e.frame),e.host.remove())}function mg(e,t,n){Rt&&ea(Rt);const r=Js("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 i=vg(t.anchor),a={},l={close:()=>ea(a)},c=ze(fg,{target:s,props:{Content:e,contentProps:n??{},anchorRect:i,close:l.close}});return a.host=s,a.frame=c,a.handle=l,Rt=a,queueMicrotask(hg),l}function gg(){Rt&&ea(Rt)}const _g={show:mg,close:gg};var bg=T('<div role="status" aria-live="polite"><span class="toast-level svelte-12gwnj0"> </span> <span class="toast-message svelte-12gwnj0"> </span></div>');function yg(e,t){var n=bg(),r=p(n),s=p(r,!0);v(r);var i=E(r,2),a=p(i,!0);v(i),v(n),$(()=>{ye(n,1,`toast toast-${t.level??""}`,"svelte-12gwnj0"),j(s,t.level),j(a,t.message)}),U("click",n,function(...l){t.close?.apply(this,l)}),I(e,n)}pe(["click"]);const Ts=new Set;let st=null;function wg(){if(st&&st.isConnected)return st;const e=Js("toast");return st=document.createElement("div"),st.className="sh3-toast-stack",st.style.position="absolute",st.style.right="16px",st.style.bottom="16px",st.style.display="flex",st.style.flexDirection="column-reverse",st.style.gap="6px",st.style.pointerEvents="none",e.appendChild(st),st}function ta(e){Ts.has(e)&&(Ts.delete(e),e.timer!==null&&(clearTimeout(e.timer),e.timer=null),Ue(e.instance),e.host.remove())}function kg(e,t={}){const n=t.level??"info",r=t.duration??3e3,s=wg(),i=document.createElement("div");i.className="sh3-toast-host",s.appendChild(i);const a={},l={close:()=>ta(a)},c=ze(yg,{target:i,props:{message:e,level:n,close:l.close}});return a.host=i,a.instance=c,a.handle=l,a.timer=Number.isFinite(r)&&r>0?setTimeout(()=>ta(a),r):null,Ts.add(a),l}function Sg(){for(const e of[...Ts])ta(e)}const xg={notify:kg,clear:Sg},el={w:120,h:80};function Su(e){if(e.type==="slot")return{...el};if(e.type==="tabs")return{...el};const t=e.children.map(Su);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 tl=32,nl={x:48,y:48};function Eg(e,t){if(e.length===0)return{...nl};const n=e[e.length-1],r={x:n.position.x+tl,y:n.position.y+tl};return r.x+120>t.w||r.y+32>t.h?{...nl}:r}let rl=0;function Ig(){return rl+=1,`float-${Date.now().toString(36)}-${rl.toString(36)}`}function xu(e){return e.type==="slot"?e.viewId==null:e.type==="tabs"?e.tabs.every(t=>t.viewId==null):e.children.every(xu)}let Ag=[],Ua=null,Ha=()=>({w:1600,h:900});function Cg(e,t){Ua=e,Ha=t}function Tg(){Ua=null,Ha=()=>({w:1600,h:900})}function Zs(){return Ua??Ag}let sl=0;function Rg(e){return sl+=1,`float:${e}:${sl}`}const Pg={w:600,h:400};function Dg(e,t){return{w:Math.max(e.w,t.w),h:Math.max(e.h,t.h)}}function Mg(e,t={}){const n=Zs(),r=Ig(),s=Rg(e);let i;if(t.dismissable)i={type:"slot",slotId:s,viewId:e};else{const d=t.title??e,f={slotId:s,viewId:e,label:d};t.meta&&(f.meta=t.meta),i={type:"tabs",tabs:[f],activeTab:0}}const a=Su(i),l=t.size??Dg(Pg,a),c=t.position??Eg(n,Ha()),u={id:r,content:i,position:c,size:l,title:t.title};return t.dismissable&&(u.dismissable=!0),n.push(u),r}function Og(e){const t=Zs(),n=t.findIndex(r=>r.id===e);n<0||t.splice(n,1)}function Lg(){return Zs().slice()}function jg(e){const t=Zs(),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 Pt={open:Mg,close:Og,list:Lg,focus:jg};let Rs=null;function Ng(e){Rs=e}function zg(){Rs=null}function Ka(){if(!Rs)throw new Error("presetManager: no app attached — bind an AppLayoutBlob first");return Rs}function $g(){return Object.keys(Ka().presets)}function qg(){return Ka().activePreset}function Bg(e){const t=Ka();if(!(e in t.presets))throw new Error(`presetManager.switch: unknown preset "${e}"`);t.activePreset=e}const Vg={list:$g,active:qg,switch:Bg},Xn=new Map,hs=new Map;function il(e){const t=hs.get(e);if(t)for(const n of t)n()}function Eu(e,t){const n=Symbol();let r=Xn.get(e);r||(r=new Map,Xn.set(e,r)),r.set(n,t),il(e);let s=!1;return()=>{if(s)return;s=!0;const i=Xn.get(e);i&&i.delete(n)&&(i.size===0&&Xn.delete(e),il(e))}}function Qs(e){const t=Xn.get(e);return t?Array.from(t.values()):[]}function Fg(){return Array.from(Xn.keys())}function Iu(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 Ug=Object.freeze([".md",".txt",".json",".guml",".css",".js",".ts",".tsx",".jsx",".html",".svg",".csv",".yaml",".yml",".xml",".log",".ini",".toml"]);function Hg(e){return e.kind?e.kind:e.extension&&Ug.includes(e.extension.toLowerCase())?"text":"binary"}const ps=[];function al(e){return ps.push(e),()=>{const t=ps.indexOf(e);t>=0&&ps.splice(t,1)}}function Kg(e,t=[]){return[...ps,...t].filter(r=>{try{return r.appliesTo(e)}catch{return!1}}).sort((r,s)=>(s.priority??0)-(r.priority??0))[0]??null}var Wg=T("<span> </span>"),Yg=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),Gg=T("<option> </option>"),Xg=T("<button> </button>"),Jg=T('<pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre>'),Zg=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>'),Qg=T('<div class="sh3-conflict-text svelte-iwgja4"><!></div>');function e_(e,t){se(t,!0);let n=z("");Te(()=>{(!o(n)||!t.item.branches.find(_=>_.origin===o(n)))&&g(n,t.item.branches[0]?.origin??"local",!0)});const r=Y(()=>t.item.branches.length===2),s=Y(()=>o(r)?t.item.branches[0]:t.item.branches.find(_=>_.origin===o(n))??t.item.branches[0]),i=Y(()=>o(r)?t.item.branches[1]:t.item.branches.find(_=>_.origin===t.selectedOrigin)??t.item.branches[1]??t.item.branches[0]);function a(_,S){const y=(_??"").split(/\r?\n/),x=(S??"").split(/\r?\n/),k=[],w=Math.max(y.length,x.length);for(let b=0;b<w;b++){const A=y[b],D=x[b];A===D?typeof A=="string"&&k.push({kind:"same",text:A}):(typeof A=="string"&&k.push({kind:"left",text:A}),typeof D=="string"&&k.push({kind:"right",text:D}))}return k}const l=Y(()=>!o(s)||!o(i)?[]:a(o(s).content??"",o(i).content??"")),c=Y(()=>o(l).filter(_=>_.kind!=="same").length);var u=Qg(),d=p(u);{var f=_=>{var S=Yg(),y=he(S),x=p(y);let k;var w=p(x),b=p(w);v(w);var A=E(w,2),D=p(A),C=p(D,!0);v(D),v(A),v(x);var m=E(x,2);let M;var R=p(m),O=p(R);v(R);var P=E(R,2),L=p(P),q=p(L,!0);v(L),v(P),v(m),v(y);var N=E(y,2),B=p(N),G=p(B);v(B);var X=E(B,2),Q=p(X);ue(Q,21,()=>o(l),$n,(J,te)=>{var ee=Wg(),Z=p(ee);v(ee),$(()=>{ye(ee,1,`diff-${o(te).kind}`,"svelte-iwgja4"),j(Z,`${o(te).kind==="same"?" ":o(te).kind==="left"?"- ":"+ "}${o(te).text??""}
7
- `)}),I(J,ee)}),v(Q),v(X),v(N),$(()=>{k=ye(x,1,"sh3-conflict-text-pane svelte-iwgja4",null,k,{selected:o(s).origin===t.selectedOrigin}),j(b,`${o(s).origin??""} · v${o(s).version??""}`),j(C,o(s).content??""),M=ye(m,1,"sh3-conflict-text-pane svelte-iwgja4",null,M,{selected:o(i).origin===t.selectedOrigin}),j(O,`${o(i).origin??""} · v${o(i).version??""}`),j(q,o(i).content??""),j(G,`Line diff (${o(c)??""} difference${o(c)===1?"":"s"})`)}),U("click",x,()=>t.onSelect(o(s).origin)),U("keydown",x,J=>{(J.key==="Enter"||J.key===" ")&&t.onSelect(o(s).origin)}),U("click",m,()=>t.onSelect(o(i).origin)),U("keydown",m,J=>{(J.key==="Enter"||J.key===" ")&&t.onSelect(o(i).origin)}),I(_,S)},h=_=>{var S=Zg(),y=p(S),x=p(y),k=E(p(x));ue(k,21,()=>t.item.branches,D=>D.origin,(D,C)=>{var m=Gg(),M=p(m,!0);v(m);var R={};$(()=>{j(M,o(C).origin),R!==(R=o(C).origin)&&(m.value=(m.__value=o(C).origin)??"")}),I(D,m)}),v(k),v(x),v(y);var w=E(y,2);ue(w,21,()=>t.item.branches,D=>D.origin,(D,C)=>{var m=Xg();let M;var R=p(m);v(m),$(()=>{M=ye(m,1,"sh3-conflict-text-tab svelte-iwgja4",null,M,{selected:o(C).origin===t.selectedOrigin}),j(R,`${o(C).origin??""} · v${o(C).version??""}`)}),U("click",m,()=>t.onSelect(o(C).origin)),I(D,m)}),v(w);var b=E(w,2);{var A=D=>{var C=Jg(),m=p(C),M=p(m,!0);v(m),v(C),$(()=>j(M,o(i).content??"")),I(D,C)};V(b,D=>{o(i)&&D(A)})}v(S),Or(k,()=>o(n),D=>g(n,D)),I(_,S)};V(d,_=>{o(r)&&o(s)&&o(i)?_(f):_(h,-1)})}v(u),I(e,u),ie()}pe(["click","keydown"]);var t_=T("· <code> </code>",1),n_=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>'),r_=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 s_(e,t){se(t,!0);function n(a){return typeof a!="number"?"—":a<1024?`${a} B`:a<1024*1024?`${(a/1024).toFixed(1)} KiB`:`${(a/(1024*1024)).toFixed(2)} MiB`}function r(a){const l=Date.now()-a;return l<6e4?"just now":l<36e5?`${Math.floor(l/6e4)}m ago`:l<864e5?`${Math.floor(l/36e5)}h ago`:new Date(a).toLocaleString()}var s=r_(),i=E(p(s),2);ue(i,21,()=>t.item.branches,a=>a.origin,(a,l)=>{var c=n_(),u=p(c);let d;var f=p(u),h=p(f,!0);v(f);var _=E(f,2),S=p(_),y=E(S);{var x=k=>{var w=t_(),b=E(he(w)),A=p(b,!0);v(b),$(()=>j(A,o(l).hashPreview)),I(k,w)};V(y,k=>{o(l).hashPreview&&k(x)})}v(_),v(u),v(c),$((k,w)=>{d=ye(u,1,"sh3-conflict-meta-row svelte-1nz3djn",null,d,{selected:o(l).origin===t.selectedOrigin}),j(h,o(l).origin),j(S,`v${o(l).version??""} · ${k??""} · ${w??""} `)},[()=>r(o(l).at),()=>n(o(l).sizeBytes)]),U("click",u,()=>t.onSelect(o(l).origin)),I(a,c)}),v(i),v(s),I(e,s),ie()}pe(["click"]);const i_=1048576;function a_(e){return typeof e=="number"&&e>i_}const o_={id:"sh3-core.text",priority:1,appliesTo:e=>Hg(e)!=="text"?!1:!e.branches.some(t=>a_(t.sizeBytes)),mount(e,t){const n=ze(e_,{target:e,props:t});return()=>{Ue(n)}}},l_={id:"sh3-core.meta",priority:0,appliesTo:()=>!0,mount(e,t){const n=ze(s_,{target:e,props:t});return()=>{Ue(n)}}};let ol=!1;function c_(){ol||(ol=!0,al(o_),al(l_))}var u_=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 d_(e,t){var n=u_(),r=p(n),s=p(r);v(r);var i=E(r,4),a=p(i);dr(a,!0);var l=E(a,2),c=E(l,2);v(i),v(n),$(()=>j(s,`${t.count??""} conflict${t.count===1?"":"s"} to resolve`)),U("click",a,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)}),I(e,n)}pe(["click"]);var f_=T('<span class="sh3-conflict-detail-counter svelte-pw8iv6"> </span>'),v_=T('<button type="button"><span><!></span> <span class="sh3-conflict-detail-rail-label svelte-pw8iv6"> </span></button>'),h_=T('<aside class="sh3-conflict-detail-rail svelte-pw8iv6"></aside>'),p_=T('<label class="sh3-conflict-detail-branch svelte-pw8iv6"><input type="radio"/> <span> </span></label>'),m_=T('<div class="sh3-conflict-detail-branches svelte-pw8iv6"></div> <div class="sh3-conflict-detail-renderer svelte-pw8iv6"></div>',1),g_=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 __(e,t){se(t,!0);const n=Y(()=>t.items[t.currentIndex]),r=Y(()=>o(n)?t.selections[o(n).id]??o(n).branches[0]?.origin??"":""),s=Y(()=>o(n)?Kg(o(n),t.contributed):null);let i=z(void 0),a=null;Te(()=>{if(o(n),o(s),o(r),a&&(a(),a=null),!o(i)||!o(n)||!o(s))return;const B={item:o(n),selectedOrigin:o(r),onSelect:G=>t.onSelect(o(n).id,G)};return a=o(s).mount(o(i),B),()=>{a&&(a(),a=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=Y(()=>t.items.map(B=>t.skipped[B.id]?"skipped":t.selections[B.id]?"resolved":"pending"));var d=g_(),f=p(d),h=p(f),_=p(h,!0);v(h);var S=E(h,2);{var y=B=>{var G=f_(),X=p(G);v(G),$(()=>j(X,`${t.currentIndex+1} / ${t.items.length??""}`)),I(B,G)};V(S,B=>{t.items.length>1&&B(y)})}v(f);var x=E(f,2),k=p(x);{var w=B=>{var G=h_();ue(G,23,()=>t.items,X=>X.id,(X,Q,J)=>{var te=v_();let ee;var Z=p(te),de=p(Z);{var fe=Ie=>{var rt=$t("✓");I(Ie,rt)},K=Ie=>{var rt=$t("⟶");I(Ie,rt)},ae=Ie=>{var rt=$t("·");I(Ie,rt)};V(de,Ie=>{o(u)[o(J)]==="resolved"?Ie(fe):o(u)[o(J)]==="skipped"?Ie(K,1):Ie(ae,-1)})}v(Z);var me=E(Z,2),Ke=p(me,!0);v(me),v(te),$(()=>{ee=ye(te,1,"sh3-conflict-detail-rail-item svelte-pw8iv6",null,ee,{selected:o(J)===t.currentIndex}),ye(Z,1,`sh3-conflict-detail-rail-state ${o(u)[o(J)]??""}`,"svelte-pw8iv6"),j(Ke,o(Q).label)}),U("click",te,()=>t.onNavigate(o(J))),I(X,te)}),v(G),I(B,G)};V(k,B=>{t.items.length>1&&B(w)})}var b=E(k,2),A=p(b);{var D=B=>{var G=m_(),X=he(G);ue(X,21,()=>o(n).branches,J=>J.origin,(J,te)=>{var ee=p_(),Z=p(ee);Se(Z);var de=E(Z,2),fe=p(de);v(de),v(ee),$(()=>{_e(Z,"name",`branch-${o(n).id??""}`),uu(Z,o(te).origin),du(Z,o(r)===o(te).origin),j(fe,`${o(te).origin??""} · v${o(te).version??""}`)}),U("change",Z,()=>t.onSelect(o(n).id,o(te).origin)),I(J,ee)}),v(X);var Q=E(X,2);dt(Q,J=>g(i,J),()=>o(i)),I(B,G)};V(A,B=>{o(n)&&B(D)})}v(b),v(x);var C=E(x,2),m=p(C),M=p(m),R=E(M,2),O=p(R,!0);v(R);var P=E(R,2);v(m);var L=E(m,2),q=p(L),N=E(q,2);v(L),v(C),v(d),$(()=>{j(_,t.title),M.disabled=t.currentIndex===0,j(O,o(n)&&t.skipped[o(n).id]?"Unskip":"Skip"),P.disabled=t.currentIndex>=t.items.length-1}),U("click",M,l),U("click",R,()=>o(n)&&t.onToggleSkip(o(n).id)),U("click",P,c),U("click",q,function(...B){t.onCancel?.apply(this,B)}),U("click",N,function(...B){t.onDone?.apply(this,B)}),I(e,d),ie()}pe(["click","change"]);function Au(e,t){return t.at-e.at}function b_(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(Au)[0]}}function y_(e,t){se(t,!0);const n=t.items.length>=2||t.requirePrompt;let r=z(ce(n?"prompt":"detail")),s=z(ce(Object.fromEntries(t.items.map(b=>{const A=b_(b.branches,t.mostRecentBy)?.origin??b.branches[0]?.origin??"";return[b.id,A]})))),i=z(ce({})),a=z(0),l=!1;Na(()=>{l||(l=!0,t.onCancel())});function c(){if(l)return;l=!0;const b=[],A=[];for(const D of t.items){if(o(i)[D.id]){A.push(D.id);continue}const C=o(s)[D.id],m=D.branches.find(M=>M.origin===C);m&&b.push({itemId:D.id,chosen:m,meta:D.meta})}t.onResolve(b,A),t.close()}function u(){l||(l=!0,t.onCancel(),t.close())}function d(){c()}function f(){g(r,"detail")}function h(b,A){if(g(s,{...o(s),[b]:A},!0),o(i)[b]){const D={...o(i)};delete D[b],g(i,D,!0)}}function _(b){g(i,{...o(i),[b]:!o(i)[b]},!0)}function S(b){g(a,b,!0)}var y=at(),x=he(y);{var k=b=>{d_(b,{get count(){return t.items.length},onOverwriteMostRecent:d,onResolveIndividually:f,onCancel:u})},w=b=>{__(b,{get items(){return t.items},get selections(){return o(s)},get skipped(){return o(i)},get currentIndex(){return o(a)},get title(){return t.title},get contributed(){return t.contributed},onSelect:h,onNavigate:S,onToggleSkip:_,onDone:c,onCancel:u})};V(x,b=>{o(r)==="prompt"?b(k):b(w,-1)})}I(e,y),ie()}const Cu="sh3-core.conflictRenderer";class Tu extends Error{constructor(t){super(t),this.name="ConflictPermissionError"}}class w_ extends Error{constructor(){super("Caller shard deactivated while conflict session was active"),this.name="ConflictSessionOrphanedError"}}function k_(){try{return Qs(Cu)}catch{return[]}}function Ru(e,t={}){return c_(),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??Au,i=t.requirePrompt??!1,a=k_();let l=!1;const d={items:e,title:r,mostRecentBy:s,requirePrompt:i,contributed:a,onResolve:(f,h)=>{l||(l=!0,n({status:"resolved",choices:f,skipped:h}))},onCancel:()=>{l||(l=!0,n({status:"cancelled"}))}};yu.open(y_,d,{boxStyle:"max-width: none; min-width: 360px; padding: 0;"})})}function S_(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 x_(e,t){const n=e.browse;if(!n?.statusFrom||!n?.readBranchFrom||!n?.resolveConflictFrom)throw new Tu(`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 E_(e){const t=e.lastIndexOf(".");if(t<0)return;const n=e.lastIndexOf("/");if(!(t<n))return e.slice(t)}async function I_(e,t,n={}){const r=e.shardId,s=t.shardId===r?S_(e):x_(e,t.shardId),i=[];for(const d of t.paths){const f=await s.status(d);f&&f.syncState==="conflict"&&f.branches&&f.branches.length>0&&i.push({path:d,status:f})}if(i.length===0)return{status:"resolved",resolved:[],failed:[],skipped:[]};const a=[];for(const{path:d,status:f}of i){const h=E_(d),_=[];for(const S of f.branches??[]){const y=await s.readBranch(d,S.origin).catch(()=>null);_.push({origin:S.origin,version:S.version,at:S.at,content:y??void 0,sizeBytes:y?new TextEncoder().encode(y).length:void 0})}a.push({id:d,label:d,extension:h,branches:_,meta:{shardId:t.shardId,path:d,docVersion:f.version}})}const l=await Ru(a,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 f=await s.status(d.itemId).catch(()=>null);c.push({path:d.itemId,chosen:d.chosen,appliedVersion:f?.version??-1})}catch(f){u.push({path:d.itemId,error:f instanceof Error?f.message:String(f)})}return{status:"resolved",resolved:c,failed:u,skipped:l.skipped}}const A_={resolve:Ru,resolveDocuments:I_},Pu="sh3.color-picker",C_={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=i=>{r||(r=!0,n.remove(),t(i))};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 T_(e={}){return[...Qs(Pu),C_].sort((r,s)=>(s.priority??0)-(r.priority??0))[0].open(e)}const R_={pick:T_};let In=null;function P_(e){In=e}async function Qn(e){return In?{...In.bindings[e]??{}}:{}}async function ll(e,t,n){if(!In)return;const r={...In.bindings[e]??{}};n===void 0?delete r[t]:r[t]=n,In.bindings={...In.bindings,[e]:r}}const Wa="sh3.actions",Di=new Set;function D_(e,t){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=Eu(Wa,{action:e,ownerShardId:t});let s=!1;return()=>{s||(s=!0,r(),Di.delete(e.id))}}function pn(){return Qs(Wa)}function M_(e){return Iu(Wa,e)}const O_=["Ctrl","Alt","Shift","Meta"],cl={control:"Ctrl",ctrl:"Ctrl",alt:"Alt",option:"Alt",shift:"Shift",meta:"Meta",cmd:"Meta",command:"Meta",super:"Meta",win:"Meta"},L_=new Set(["Control","Alt","Shift","Meta"]);function Du(e){return e.length===1?e.toUpperCase():e}function Ya(e){if(!e)throw new Error("Empty shortcut");const t=e.split("+");if(t.some(a=>a.trim()===""))throw new Error(`Malformed shortcut: "${e}"`);const n=t.map(a=>a.trim());if(n.length===0)throw new Error(`Malformed shortcut: "${e}"`);const r=new Set;let s;for(const a of n){const l=a.toLowerCase();if(l in cl)r.add(cl[l]);else{if(s!==void 0)throw new Error(`Multiple keys in shortcut: "${e}"`);s=Du(a)}}if(s===void 0)throw new Error(`No key in shortcut: "${e}"`);return[...O_.filter(a=>r.has(a)),s].join("+")}function Mu(e,t){if(!e.toLowerCase().includes("mod"))return e;const n=e.split("+").map(r=>r.toLowerCase()==="mod"?t==="mac"?"Meta":"Ctrl":r);return Ya(n.join("+"))}function j_(e){if(L_.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=Du(e.key);return[...t,n].join("+")}function N_(){return typeof navigator>"u"?"other":/Mac|iPhone|iPad|iPod/i.test(navigator.platform)?"mac":"other"}function Ga(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?null:Ya(r)}return e.defaultShortcut?Mu(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:Ya(r),source:"user"}}return e.defaultShortcut?{shortcut:Mu(e.defaultShortcut,n),source:"default"}:{shortcut:null,source:"none"}}function ei(e){return e==="home"?"home":e==="app"?"app":typeof e=="string"&&e.startsWith("view:")?"view":typeof e=="string"&&e.startsWith("focus:")?"focus":"element"}function Ou(e){return Array.isArray(e)?e:[e]}function Lu(e){return e==="home"||e==="app"?null:typeof e=="string"?e:e.element}function Xa(e,t,n){const r=Ou(e),s={};for(const i of r){const a=ei(i);(s[a]??=[]).push(i)}for(const i of ti){const a=s[i];if(a){for(const l of a)if(ju(l,t,n))return l}}return null}const ti=["element","focus","view","app","home"];function ju(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 $_(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=Ga(r.action,t.bindings,t.platform);if(s)for(const i of Ou(r.action.scope)){if(!ju(i,t,r.ownerShardId))continue;const a=ei(i),l=n[a].get(s);if(l&&l!==r.action.id){console.warn(`[sh3] Shortcut "${s}" in tier "${a}" is bound to both "${l}" and "${r.action.id}"; first-registered wins. Users can rebind to resolve.`);continue}n[a].set(s,r.action.id)}}return n}function q_(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 B_(e){const t=$_(e.entries,e.state),n=new Map(e.entries.map(r=>[r.action.id,r]));for(const r of ti){const s=t[r].get(e.shortcut);if(!s)continue;const i=n.get(s);if(i)return q_(e.target)&&!i.action.allowInInputs?null:(e.runAction(s,{action:{id:i.action.id,label:i.action.label},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 Mt=z(null);function V_(){return o(Mt)}function F_(e){return{get(){return o(Mt)},set(t){g(Mt,{type:t.type,ref:t.ref,ownerShardId:e},!0)},clear(){if(o(Mt)){if(o(Mt).ownerShardId!==e){console.warn(`[sh3] Shard "${e}" tried to clear selection owned by "${o(Mt).ownerShardId}". Ignoring.`);return}g(Mt,null)}}}}function U_(e){o(Mt)&&o(Mt).ownerShardId===e&&g(Mt,null)}function H_(){g(Mt,null)}const Ps=new Map,Nu=new Set;function K_(e){Nu.add(e)}function W_(e,t){if(Ps.has(e))throw new Error(`View "${e}" is already registered`);Ps.set(e,t);for(const n of Nu)n(e,t)}function zu(e){return Ps.get(e)}function Y_(e){Ps.delete(e)}const Lr=new Map;function G_(e,t){if(Lr.has(e))throw new Error(`Verb "${e}" is already registered`);Lr.set(e,t)}function ul(e){return Lr.get(e)}function X_(e){Lr.delete(e)}function Ja(){return Array.from(Lr.values()).sort((e,t)=>e.name.localeCompare(t.name))}function ar(e,t){const n=(r,s)=>{if(r.type==="tabs"){const i=r.tabs.findIndex(a=>a.slotId===t);if(i>=0)return{tabsNode:r,tabsPath:s,tabIndex:i,entry:r.tabs[i]}}else if(r.type==="split")for(let i=0;i<r.children.length;i++){const a=n(r.children[i],[...s,i]);if(a)return a}return null};return n(e,[])}function Za(e,t){if(na(e.docked,t))return{kind:"docked"};for(const n of e.floats)if(na(n.content,t))return{kind:"float",floatId:n.id};return null}function na(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(na(n,t))return!0;return!1}function ni(e,t){const n=ar(e,t);if(!n)return null;const{tabsNode:r,tabIndex:s,entry:i}=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),i}function J_(e,t,n){const r=Math.max(0,Math.min(n,e.tabs.length));e.tabs.splice(r,0,t),e.activeTab=r}function Z_(e,t,n){const r=e.tabs.slice(),[s]=r.splice(t,1),i=Math.max(0,Math.min(n,r.length));r.splice(i,0,s),e.tabs=r,e.activeTab=i}function dl(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 Q_(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 $u(e,t,n,r){const s=Ds(e,t);if(!s)return;if(t.length===0){const u=Q_(s),d=dl(u,n,r),f=e;delete f.tabs,delete f.activeTab,delete f.slotId,delete f.viewId,delete f.direction,delete f.sizes,delete f.pinned,delete f.collapsed,delete f.children,Object.assign(f,d);return}const i=dl(s,n,r),a=t.slice(0,-1),l=t[t.length-1],c=Ds(e,a);!c||c.type!=="split"||(c.children[l]=i)}function Ds(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 Jn(e){let t=!0;for(;t;)t=qu(e,null,0)}function qu(e,t,n){if(e.type==="split"){let r=!1;for(let s=0;s<e.children.length;s++)qu(e.children[s],e,s)&&(r=!0);for(let s=e.children.length-1;s>=0;s--){const i=e.children[s];i.type==="tabs"&&i.tabs.length===0&&!i.persistent&&(e.children.splice(s,1),e.sizes.splice(s,1),e.pinned&&e.pinned.splice(s,1),e.collapsed&&e.collapsed.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],i=e;return delete i.direction,delete i.sizes,delete i.pinned,delete i.collapsed,delete i.children,Object.assign(i,s),!0}return r}return e.type==="tabs",!1}const vn=new Map,ms=new Set;function eb(e,t){for(const[n,r]of vn.entries()){if(r.viewId!==e||r.handle!==void 0)continue;const s={slotId:n,viewId:e,label:r.label,meta:r.meta,setDirty(i){ri[n]=i},location(){return Za(St(),n)}};queueMicrotask(()=>{if(vn.has(n)&&r.handle===void 0&&(r.handle=t.mount(r.host,s),(r.handle?.closable||n.startsWith("float:"))&&(si[n]=!0),r.handle?.onResize)){const i=r.handle.onResize.bind(r.handle);r.resizeObserver=new ResizeObserver(a=>{for(const l of a){const c=l.contentRect;i(Math.round(c.width),Math.round(c.height))}}),r.resizeObserver.observe(r.host)}})}}K_(eb);const ri=ce({}),si=ce({});function tb(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.style.position="absolute",s.style.inset="0",s.style.minWidth="0",s.style.minHeight="0";let i=!1;const a={host:s,handle:void 0,viewId:t,label:n,meta:r,refcount:0,resizeObserver:void 0,cancelPendingMount:()=>{i=!0}};return queueMicrotask(()=>{if(i)return;const l=t?zu(t):void 0,c={slotId:e,viewId:t??"",label:n,meta:r,setDirty(u){ri[e]=u},location(){return Za(St(),e)}};if(a.handle=l?.mount(s,c),(a.handle?.closable||e.startsWith("float:"))&&(si[e]=!0),a.handle?.onResize){const u=a.handle.onResize.bind(a.handle);a.resizeObserver=new ResizeObserver(d=>{for(const f of d){const h=f.contentRect;u(Math.round(h.width),Math.round(h.height))}}),a.resizeObserver.observe(s)}}),a}function Bu(e,t,n,r){ms.delete(e);let s=vn.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.removeAttribute("data-sh3-view")):(s=tb(e,t,n,r),vn.set(e,s)),s.refcount++,s.host}function Vu(e){const t=vn.get(e);if(t){if(t.refcount--,t.refcount>0){t.host.remove();return}ms.add(e),queueMicrotask(()=>{if(!ms.has(e))return;ms.delete(e);const n=vn.get(e);!n||n.refcount>0||(n.resizeObserver?.disconnect(),n.handle?.unmount(),n.cancelPendingMount(),n.host.remove(),vn.delete(e),delete ri[e],delete si[e])})}}function Fu(e){const t=ra.get(e);return t||vn.get(e)?.handle}function nb(e){return ri[e]??!1}function rb(e){return ra.has(e)?!!ra.get(e).closable:si[e]??!1}const ra=new Map;function Uu(e){if(!e||typeof e!="object")return!1;const t=e.type;return t==="split"||t==="tabs"||t==="slot"}function sb(e){if(!e||typeof e!="object")return!1;const t=e;return Uu(t.docked)&&Array.isArray(t.floats)}function ib(e){return{docked:e,floats:[]}}function ab(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 ob(e){if(Array.isArray(e))return e.map(ab);if(sb(e))return[{name:"default",variants:{default:e}}];if(Uu(e))return[{name:"default",variants:{default:ib(e)}}];throw new Error("normalizeInitialLayout: input is not a LayoutNode, LayoutTree, or LayoutPreset[]")}function fl(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 Hu(e){const t=fl(e.docked);for(const n of e.floats)t.push(...fl(n.content));return t}Qi("workspace","__shell__");const lb={type:"slot",slotId:"sh3core.home",viewId:"sh3core:home"},cb=ce({docked:lb,floats:[]});let gt=z(null),ii=z("home");function ub(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 db(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 fb(e){if(o(gt))throw new Error(`Layout manager cannot attach app "${e.manifest.id}": app "${o(gt).appId}" is still attached`);const t=`__sh3core__:app:${e.manifest.id}`,n=ob(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=Zm("workspace",t),i=ub(s);(i&&i.layoutVersion!==e.manifest.layoutVersion||s&&!i)&&Qi("workspace",t);const l=Xs(t,{workspace:r}).workspace;g(gt,{appId:e.manifest.id,proxy:l,heldSlotIds:[]},!0),Ng(l)}function vb(){if(!o(gt))throw new Error("acquireAppSlotHolds: no app attached");if(o(gt).heldSlotIds.length>0)return;const e=db(o(gt).proxy),t=Hu(e);for(const{slotId:n,viewId:r,label:s,meta:i}of t)Bu(n,r,s,i),o(gt).heldSlotIds.push(n)}function Ku(){if(o(gt)){zg();for(const e of o(gt).heldSlotIds)Vu(e);g(gt,null)}}function Wu(){g(ii,"home")}function vl(){if(!o(gt))throw new Error("Cannot switchToApp: no app is attached");g(ii,"app")}const gs=Y(()=>{if(o(ii)==="app"&&o(gt)){const e=o(gt).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 cb});function St(){return o(gs)}function Yu(){return o(ii)}const mn={get root(){return o(gs).docked},get tree(){return o(gs)},get floats(){return o(gs).floats}};let Gu=z(null),Xu=z(ce(new Set)),_s=z(ce(new Set)),Ju=z(ce(new Set)),Zu=z(null),Qu=z(ce({}));const hb=N_(),sa=new Set;function hr(){for(const e of sa)try{e()}catch(t){console.error("[sh3] onActiveChange listener threw",t)}}function pb(e){return sa.add(e),()=>{sa.delete(e)}}function mb(){hr()}function ia(e,t){g(Gu,e,!0),g(Xu,new Set(t),!0),hr()}function gb(){const e=Hu(mn.tree),t=new Set;for(const n of e)n.viewId!==null&&t.add(n.viewId);g(Ju,t,!0),hr()}function ed(e){g(Zu,e,!0),hr()}function jr(e){g(Qu,{...e},!0),hr()}function Rn(){return{activeAppId:o(Gu),activeAppRequiredShards:o(Xu),autostartShards:o(_s),mountedViewIds:o(Ju),focusedViewId:o(Zu),selection:V_(),bindings:o(Qu),platform:hb}}function _b(e){o(_s).has(e)||(g(_s,new Set([...o(_s),e]),!0),hr())}var bb=T('<div class="sh3-ctx-sep svelte-758atu" role="separator"></div>'),yb=T('<span class="sh3-ctx-shortcut svelte-758atu"> </span>'),wb=T('<button role="menuitem"><span class="sh3-ctx-label svelte-758atu"> </span> <!></button>'),kb=T("<!> <!>",1),Sb=T('<div class="sh3-context-menu svelte-758atu" role="menu" tabindex="0"></div>');function xb(e,t){se(t,!0);const n=Y(()=>t.model.tiers.flatMap(a=>a.items));let r=z(0);function s(a){if(a.key==="ArrowDown")g(r,(o(r)+1)%o(n).length),a.preventDefault();else if(a.key==="ArrowUp")g(r,(o(r)-1+o(n).length)%o(n).length),a.preventDefault();else if(a.key==="Enter")o(n)[o(r)]&&(t.onInvoke(o(n)[o(r)].id),t.onClose()),a.preventDefault();else if(a.key==="Escape")t.onClose(),a.preventDefault();else if(a.key.length===1){const l=a.key.toLowerCase(),c=(o(r)+1)%o(n).length;for(let u=0;u<o(n).length;u++){const d=(c+u)%o(n).length;if(o(n)[d].label.toLowerCase().startsWith(l)){g(r,d);break}}}}var i=Sb();dr(i,!0),ue(i,23,()=>t.model.tiers,a=>a.tier,(a,l,c)=>{var u=kb(),d=he(u);{var f=_=>{var S=bb();I(_,S)};V(d,_=>{o(c)>0&&_(f)})}var h=E(d,2);ue(h,17,()=>o(l).items,_=>_.id,(_,S)=>{const y=Y(()=>o(n).indexOf(o(S)));var x=wb();let k;var w=p(x),b=p(w,!0);v(w);var A=E(w,2);{var D=C=>{var m=yb(),M=p(m,!0);v(m),$(()=>j(M,o(S).shortcut)),I(C,m)};V(A,C=>{o(S).shortcut&&C(D)})}v(x),$(()=>{k=ye(x,1,"sh3-ctx-item svelte-758atu",null,k,{"sh3-ctx-active":o(y)===o(r)}),j(b,o(S).label)}),Je("pointerenter",x,()=>{g(r,o(y),!0)}),U("click",x,()=>{t.onInvoke(o(S).id),t.onClose()}),I(_,x)}),I(a,u)}),v(i),U("keydown",i,s),I(e,i),ie()}pe(["keydown","click"]);function Eb(e,t){const n={element:[],focus:[],view:[],app:[],home:[]},r=new Set;for(const s of e){if(!s.action.contextItem||r.has(s.action.id))continue;const i=Xa(s.action.scope,t,s.ownerShardId);i&&(r.add(s.action.id),n[ei(i)].push({id:s.action.id,label:s.action.label,shortcut:Ga(s.action,t.bindings,t.platform),group:s.action.group??""}))}return{tiers:ti.map(s=>({tier:s,items:n[s]})).filter(s=>s.items.length>0)}}function Ib(e,t){if(!t)return 0;const n=e.toLowerCase(),r=t.toLowerCase();let s=0,i=0,a=0,l=0,c=-2;for(;s<n.length&&i<r.length;){if(n[s]===r[i]){const u=s===0?5:0,d=s===c+1?++l:l=1;a+=1+u+d,c=s,i++}else l=0;s++}return i===r.length?a:null}function Ab(e,t,n){const r=[];for(const i of e){const a=Ib(i.label,t);a!==null&&r.push({...i,score:a})}const s=new Map;return n.forEach((i,a)=>s.set(i,n.length-a)),r.sort((i,a)=>{if(i.score!==a.score)return a.score-i.score;const l=s.get(i.id)??0;return(s.get(a.id)??0)-l}),r}var Cb=T('<span class="sh3-palette-badge svelte-1qdcgk6"> </span>'),Tb=T('<span class="sh3-palette-shortcut svelte-1qdcgk6"> </span>'),Rb=T('<button role="option"><span class="sh3-palette-label svelte-1qdcgk6"> </span> <!> <!></button>'),Pb=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 Db(e,t){se(t,!0);let n=ct(t,"prefill",3,""),r=z(ce(n())),s=z(0);const i=Y(()=>Ab(t.candidates,o(r),t.recency));Te(()=>{o(s)>=o(i).length&&g(s,0)});function a(d){d.key==="ArrowDown"?(g(s,Math.min(o(s)+1,Math.max(0,o(i).length-1)),!0),d.preventDefault()):d.key==="ArrowUp"?(g(s,Math.max(o(s)-1,0),!0),d.preventDefault()):d.key==="Enter"?(o(i)[o(s)]&&(t.onInvoke(o(i)[o(s)].id),t.onClose()),d.preventDefault()):d.key==="Escape"&&(t.onClose(),d.preventDefault())}var l=Pb(),c=p(l);Se(c),dr(c,!0);var u=E(c,2);ue(u,23,()=>o(i),d=>d.id,(d,f,h)=>{var _=Rb();let S;var y=p(_),x=p(y,!0);v(y);var k=E(y,2);{var w=D=>{var C=Cb(),m=p(C);v(C),$(()=>j(m,`[${o(f).scopeBadge??""}]`)),I(D,C)};V(k,D=>{o(f).scopeBadge&&D(w)})}var b=E(k,2);{var A=D=>{var C=Tb(),m=p(C,!0);v(C),$(()=>j(m,o(f).shortcut)),I(D,C)};V(b,D=>{o(f).shortcut&&D(A)})}v(_),$(()=>{S=ye(_,1,"sh3-palette-item svelte-1qdcgk6",null,S,{"sh3-palette-active":o(h)===o(s)}),_e(_,"aria-selected",o(h)===o(s)),j(x,o(f).label)}),Je("pointerenter",_,()=>g(s,o(h),!0)),U("click",_,()=>{t.onInvoke(o(f).id),t.onClose()}),I(d,_)}),v(u),v(l),U("keydown",l,a),Me(c,()=>o(r),d=>g(r,d)),I(e,l),ie()}pe(["keydown","click"]);function Mb(e,t){const n=[],r=new Set;for(const s of e){if(s.action.paletteItem===!1||r.has(s.action.id))continue;const i=Xa(s.action.scope,t,s.ownerShardId);i&&(r.add(s.action.id),n.push({id:s.action.id,label:s.action.label,shortcut:Ga(s.action,t.bindings,t.platform),scopeBadge:Lu(i)}))}return n}let hl=!1;function td(e){return e?e.closest("[data-sh3-view]")?.getAttribute("data-sh3-view")??null:null}function nd(e,t){const n=pn().find(r=>r.action.id===e);if(n)try{n.action.run(t)}catch(r){console.error(`[sh3] action "${e}" threw:`,r)}}function ai(e){const t=pn().find(r=>r.action.id===e);if(!t){console.warn(`[sh3] ctx.dispatch("${e}") — no action registered with that id.`);return}const n=Rn();nd(e,{action:{id:t.action.id,label:t.action.label},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"programmatic",dispatch:ai})}function Ob(e){const t=td(e.target);ed(t)}function Lb(e){queueMicrotask(()=>{const t=td(document.activeElement);ed(t)})}function jb(e){return e instanceof Element?e.closest('[data-sh3-context-menu="native"]')!==null:!1}function rd(e){if(jb(e.target))return;const t=pn(),n=Rn(),r=Eb(t,n);if(r.tiers.length===0)return;e.preventDefault();const s=oi.popup.show(xb,{anchor:{x:e.clientX,y:e.clientY}},{model:r,onInvoke:i=>{const a=pn().find(l=>l.action.id===i);if(a)try{a.action.run({action:{id:i,label:a.action.label},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:ai})}catch(l){console.error(`[sh3] context-menu action "${i}" threw:`,l)}},onClose:()=>s.close()})}function Nb(e){const t=j_(e);if(!t)return;const n=pn(),r=Rn();B_({target:e.target,shortcut:t,state:r,entries:n,runAction:nd,dispatch:ai})&&e.preventDefault()}function sd(){hl||(hl=!0,document.addEventListener("keydown",Nb),document.addEventListener("focusin",Ob),document.addEventListener("focusout",Lb),document.addEventListener("contextmenu",rd))}function Qa(e){const t={target:null,clientX:e.x,clientY:e.y,preventDefault:()=>{}};rd(t)}const zb=20;let aa=[];function $b(e){aa=[e,...aa.filter(t=>t!==e)].slice(0,zb)}function eo(e){const t=pn(),n=Rn(),r=Mb(t,n),s=oi.modal.open(Db,{candidates:r,recency:aa,prefill:e?.prefill??"",onInvoke:i=>{const a=pn().find(l=>l.action.id===i);if(a){$b(i);try{a.action.run({action:{id:i,label:a.action.label},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"palette",dispatch:ai})}catch(l){console.error(`[sh3] palette action "${i}" threw:`,l)}}},onClose:()=>s.close()},{dismissOnBackdrop:!0})}const qb=Object.freeze(Object.defineProperty({__proto__:null,attachGlobalListeners:sd,openContextMenu:Qa,openPalette:eo},Symbol.toStringTag,{value:"Module"}));function Bb(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 i=Xa(s.action.scope,t,s.ownerShardId);if(!i)continue;r.add(s.action.id);const{shortcut:a,source:l}=z_(s.action,t.bindings,t.platform);n[ei(i)].push({id:s.action.id,label:s.action.label,effectiveShortcut:a,bindingSource:l,scope:i,scopeBadge:Lu(i),group:s.action.group,icon:s.action.icon,ownerShardId:s.ownerShardId,paletteItem:s.action.paletteItem!==!1,contextItem:s.action.contextItem!==!1})}return ti.flatMap(s=>n[s])}const Vb={async rebind(e,t,n){await ll(e,t,n),Rn().activeAppId===e&&jr(await Qn(e))},async resetBinding(e,t){await ll(e,t,void 0),Rn().activeAppId===e&&jr(await Qn(e))},async bindingsFor(e){const t=await Qn(e),n={};for(const[r,s]of Object.entries(t))s!==null&&(n[r]=s);return n},openContextMenu:Qa,openPalette:eo,listActive(){return Bb(pn(),Rn())},onActiveChange(e){const t=pb(e),n=M_(()=>{mb()});return()=>{t(),n()}}},oi={state:Xs,modal:yu,popup:_g,toast:xg,float:Pt,presets:Vg,conflicts:A_,color:R_,actions:Vb};function is(e,t,n){return`${e}/${t}/${n}`}function Fb(e,t){return`${e}/${t}/`}const Ub="sh3-documents",Ut="docs",Hb=2;class Kb{#e=null;#t(){return this.#e||(this.#e=new Promise((t,n)=>{const r=indexedDB.open(Ub,Hb);r.onupgradeneeded=()=>{const s=r.result;s.objectStoreNames.contains(Ut)||s.createObjectStore(Ut)},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,i)=>{const l=r.transaction(Ut,t).objectStore(Ut),c=n(l);c.onsuccess=()=>s(c.result),c.onerror=()=>i(c.error)})}async read(t,n,r){const s=is(t,n,r),i=await this.#n("readonly",a=>a.get(s));return i?i.content:null}async write(t,n,r,s){const i=is(t,n,r),a=typeof s=="string"?new Blob([s]).size:s.byteLength,l={content:s,size:a,lastModified:Date.now()};await this.#n("readwrite",c=>c.put(l,i))}async delete(t,n,r){const s=is(t,n,r);await this.#n("readwrite",i=>i.delete(s))}async list(t,n){const r=Fb(t,n),s=await this.#t();return new Promise((i,a)=>{const c=s.transaction(Ut,"readonly").objectStore(Ut),u=IDBKeyRange.bound(r,r+"￿",!1,!1),d=c.openCursor(u),f=[];d.onsuccess=()=>{const h=d.result;if(h){const _=h.value;f.push({path:h.key.slice(r.length),size:_.size,lastModified:_.lastModified}),h.continue()}else i(f)},d.onerror=()=>a(d.error)})}async exists(t,n,r){const s=is(t,n,r);return await this.#n("readonly",a=>a.getKey(s))!==void 0}async listAllShards(t){const n=`${t}/`,r=await this.#t();return new Promise((s,i)=>{const l=r.transaction(Ut,"readonly").objectStore(Ut),c=IDBKeyRange.bound(n,n+"￿",!1,!1),u=l.openKeyCursor(c),d=new Set;u.onsuccess=()=>{const f=u.result;if(f){const h=f.key.slice(n.length),_=h.indexOf("/");_>=0&&d.add(h.slice(0,_)),f.continue()}else s([...d])},u.onerror=()=>i(u.error)})}async listAllDocuments(t){const n=`${t}/`,r=await this.#t();return new Promise((s,i)=>{const l=r.transaction(Ut,"readonly").objectStore(Ut),c=IDBKeyRange.bound(n,n+"￿",!1,!1),u=l.openCursor(c),d=[];u.onsuccess=()=>{const f=u.result;if(f){const h=f.key.slice(n.length),_=h.indexOf("/");if(_>=0){const S=f.value;d.push({shardId:h.slice(0,_),path:h.slice(_+1),size:S.size,lastModified:S.lastModified})}f.continue()}else s(d)},u.onerror=()=>i(u.error)})}}class Wb{#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}`,i=await fetch(s,{credentials:"include"});if(i.status===404)return null;if(!i.ok)throw new Error(`Document read failed: ${i.status}`);return(i.headers.get("content-type")??"").includes("application/octet-stream")?i.arrayBuffer():i.text()}async write(t,n,r,s){const i=`${this.#e}/api/docs/${t}/${n}/${r}`,a={...this.#n(),"Content-Type":typeof s=="string"?"text/plain":"application/octet-stream"},l=await fetch(i,{method:"PUT",headers:a,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}`,i=await fetch(s,{method:"DELETE",headers:this.#n(),credentials:"include"});if(!i.ok)throw new Error(`Document delete failed: ${i.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`,i=await fetch(s,{credentials:"include"});if(!i.ok)throw new Error(`readMeta failed: ${i.status}`);const a=await i.json();return a.exists?a:null}async resolve(t,n,r,s){const i=`${this.#e}/api/docs/${t}/${n}/${r}/resolve`,a=typeof s=="string"?{choice:s}:{choice:s.origin},l=await fetch(i,{method:"POST",credentials:"include",headers:{...this.#n(),"Content-Type":"application/json"},body:JSON.stringify(a)});if(!l.ok)throw new Error(`resolve failed: ${l.status}`)}async readBranch(t,n,r,s){const i=`${this.#e}/api/docs/${t}/${n}/${r}/branch?origin=${encodeURIComponent(s)}`,a=await fetch(i,{credentials:"include"});if(a.status===404)return null;if(!a.ok)throw new Error(`readBranch failed: ${a.status}`);return a.text()}#n(){return this.#t?{Authorization:`Bearer ${this.#t}`}:{}}}class Yb{#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 Cr=new Yb,Gb=1e3;function Xb(e,t,n,r){const s=new Set,i=new Set;function a(u){return!r.extensions||r.extensions.length===0?!0:r.extensions.some(d=>u.endsWith(d))}function l(u,d){Cr.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=>a(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 f=await n.exists(e,t,u);await n.write(e,t,u,d),l(f?"update":"create",u)},async delete(u){await n.delete(e,t,u),l("delete",u)},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=Cr.subscribe(f=>{f.tenantId===e&&f.shardId===t&&a(f.path)&&u(f)});return i.add(d),()=>{d(),i.delete(d)}},autosave(u,d){const f=new Jb(c,u,d?.debounceMs??Gb);return s.add(f),f},async dispose(){const u=[...s].map(d=>d.dispose());await Promise.all(u),s.clear();for(const d of i)d();i.clear()}};return c}class Jb{#e;#t;#n;#i=null;#s=null;#a=!1;#r=!1;constructor(t,n,r){this.#e=t,this.#t=n,this.#n=r}get dirty(){return this.#a}update(t){this.#r||(this.#i=t,this.#a=!0,this.#o())}async flush(){if(this.#l(),this.#i!==null){const t=this.#i;this.#i=null,this.#a=!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 Zb="local";let id=Zb,ad=new Kb;function Mi(){return id}function pl(){return ad}function Oi(e){id=e}function Qb(e){ad=e}const ey="sync:peer",ty="sync:policy";let pr=z(null),Xt=z(null),mr=z(!1),li="",oa=null;function ml(e,t){li=e,oa=t.auth,g(pr,t.user,!0),g(Xt,t.session,!0),g(mr,!t.session&&!t.user,!0)}async function od(e,t){try{const n=await fetch(`${li}/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 g(pr,r.user,!0),g(Xt,r.session,!0),g(mr,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function ny(e,t,n){try{const r=await fetch(`${li}/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 g(pr,s.user,!0),g(Xt,s.session,!0),g(mr,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function ry(){try{await fetch(`${li}/api/auth/logout`,{method:"POST",credentials:"include"})}catch{}if(oa?.required&&!oa.guestAllowed){window.location.reload();return}g(pr,null),g(Xt,null),g(mr,!0)}function sy(){g(pr,{id:"local",username:"local",displayName:"Local Owner",role:"admin",createdAt:"",updatedAt:""},!0),g(Xt,{token:"local",userId:"local",role:"admin",expiresAt:1/0},!0),g(mr,!1)}function iy(){return o(Xt)?.token==="local"}function ln(){return o(Xt)?.role==="admin"}function la(){return o(Xt)!==null}function ld(){return o(mr)}function ci(){return o(pr)}function ui(){return o(Xt)?`Bearer ${o(Xt).token}`:null}let gr="";function cd(e){gr=e}async function ay(e){const t=await fetch(`${gr}/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 oy(e,t){if(!ln())throw new Error("Cannot update env state: not elevated to admin");const n=ui(),r={"Content-Type":"application/json"};n&&(r.Authorization=n);const s=await fetch(`${gr}/api/env-state/${encodeURIComponent(e)}`,{method:"PUT",headers:r,body:JSON.stringify(t)});if(!s.ok){const i=await s.json().catch(()=>({}));throw new Error(`Env state update failed: HTTP ${s.status} — ${i.error??"unknown"}`)}}async function to(e,t,n){if(!ln())throw new Error("Cannot install: not elevated to admin");const r=ui(),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 i={};r&&(i.Authorization=r);const a=await fetch(`${gr}/api/packages/install`,{method:"POST",headers:i,body:s});if(!a.ok){let l={};try{l=await a.json()}catch{}return{ok:!1,error:typeof l.error=="string"?l.error:`HTTP ${a.status}`,code:typeof l.code=="string"?l.code:void 0,missing:Array.isArray(l.missing)?l.missing:void 0}}return{ok:!0}}async function ud(e){if(!ln())throw new Error("Cannot uninstall: not elevated to admin");const t=ui(),n={"Content-Type":"application/json"};t&&(n.Authorization=t);const r=await fetch(`${gr}/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 ly(){const e=await fetch(`${gr}/api/packages`);return e.ok?await e.json():[]}function cy(e){return Ft[e].list()}function uy(e,t){return Ft[e].read(t)}function dy(e,t){Ft[e].delete(t)}function fy(e){for(const t of Ft[e].list())Ft[e].delete(t)}function dd(){return{list:cy,peek:uy,clear:dy,clearAll:fy}}const fd="documents:browse",vd="documents:read",hd="documents:write";function vy(e,t,n={canRead:!1,canWrite:!1}){const r={listDocuments:()=>t.listAllDocuments(e),listShards:()=>t.listAllShards(e),watchDocuments:s=>Cr.subscribe(i=>{i.tenantId===e&&s(i)})};return n.canRead&&(r.readFrom=(s,i)=>t.read(e,s,i),r.statusFrom=async(s,i)=>t.readMeta?t.readMeta(e,s,i):null,r.readBranchFrom=async(s,i,a)=>t.readBranch?t.readBranch(e,s,i,a):null),n.canWrite&&(r.writeTo=async(s,i,a)=>{const l=await t.exists(e,s,i);await t.write(e,s,i,a),Cr.emit({type:l?"update":"create",path:i,tenantId:e,shardId:s})},r.resolveConflictFrom=async(s,i,a)=>{if(!t.resolve)throw new Error("Backend does not support resolveConflict");await t.resolve(e,s,i,a),Cr.emit({type:"update",path:i,tenantId:e,shardId:s})}),r}const pd="keys:mint";class md extends Error{constructor(t){super(`Shard may not mint a key with scope '${t}' — not declared in manifest.`),this.name="ScopeEscalationError"}}class gd extends Error{constructor(){super("User denied key creation."),this.name="ConsentDeniedError"}}const ca=new Map;let Tr=null;function _d(e){return Tr=e,()=>{Tr===e&&(Tr=null)}}async function hy(e,t){if(!Tr)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=>{ca.set(n,{resolve:r}),Tr({...t,shardId:e,requestId:n})})}function ua(e,t){const n=ca.get(e);n&&(ca.delete(e),n.resolve(t))}const Ms=new Map,bs=new Map,py=5e3;function my(e,t){let n=bs.get(e);n||(n=new Set,bs.set(e,n)),n.add(t),setTimeout(()=>{n.delete(t),n.size===0&&bs.delete(e)},py)}function gy(e,t){return bs.get(e)?.has(t)??!1}function no(e,t){const n=Ms.get(e)??new Set;return n.add(t),Ms.set(e,n),()=>{n.delete(t)}}function bd(e,t){if(!e||gy(e,t))return;my(e,t);const n=Ms.get(e);if(n)for(const s of n)s(t);const r=Ms.get("*");if(r)for(const s of r)s(t)}function _y(){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);bd(n.shardId,n.id)}catch{}},()=>e.close()}function by(e){const{shardId:t,shardPermissions:n}=e,r=s=>{for(const i of s)if(!n.includes(i)&&!n.includes("admin:*"))throw new md(i)};return{async mint(s){if(r(s.scopes),!await hy(t,s))throw new gd;const a=await fetch("/api/keys/consent",{method:"POST",credentials:"include",headers:{"content-type":"application/json"},body:JSON.stringify({shardId:t,...s})});if(!a.ok)throw new Error(`Consent ticket failed: ${a.status}`);const{ticket:l}=await a.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(a=>a.mintedByShardId===t)},async revoke(s){const i=await fetch(`/api/keys/${encodeURIComponent(s)}`,{method:"DELETE",credentials:"include"});if(!i.ok&&i.status!==404)throw new Error(`Revoke failed: ${i.status}`);bd(t,s)}}}const Jt=ce(new Map),Nr=new Map,Zr=ce(new Map);function ro(e){const t=e.manifest.id;Jt.has(t)&&Zr.has(t)&&di(t),Jt.set(t,e)}async function yd(e){const t=Jt.get(e);if(!t)throw new Error(`Cannot activate shard "${e}": not registered`);if(Nr.has(e))return;const n={shard:t,ctx:void 0,viewIds:new Set,verbNames:new Set,cleanupFns:[]},r=ce({proxy:null,defaults:null}),s={register(a,l){const c=Eu(a,l);return n.cleanupFns.push(async()=>c()),c},list(a){return Qs(a)},listPoints(){return Fg()},onChange(a,l){const c=Iu(a,l);return n.cleanupFns.push(async()=>c()),c}},i={state:a=>oi.state(e,a),registerView:(a,l)=>{W_(a,l),n.viewIds.add(a)},registerVerb:a=>{const l=e==="shell"?a.name:`${e}:${a.name}`;G_(l,{...a,name:l}),n.verbNames.add(l)},documents:a=>{const l=Xb(Mi(),e,pl(),a);return n.cleanupFns.push(()=>l.dispose()),l},env(a){return r.proxy?(console.warn(`[sh3] Shard "${e}" called ctx.env() more than once; extra calls are ignored.`),r.proxy):(r.defaults=a,r.proxy={...a},r.proxy)},async envUpdate(a){if(!r.proxy||!r.defaults)throw new Error(`Shard "${e}" called envUpdate() without declaring env state`);const l=jn(r.proxy);Object.assign(r.proxy,a);try{const c=jn(r.proxy);await oy(e,c)}catch(c){throw Object.assign(r.proxy,l),c}},get isAdmin(){return ln()},get tenantId(){return Mi()},zones:t.manifest.permissions?.includes(Va)?dd():void 0,browse:t.manifest.permissions?.includes(fd)?vy(Mi(),pl(),{canRead:t.manifest.permissions.includes(vd),canWrite:t.manifest.permissions.includes(hd)}):void 0,keys:t.manifest.permissions?.includes(pd)?by({shardId:e,shardPermissions:t.manifest.permissions??[]}):void 0,contributions:s,actions:{register(a){const l=D_(a,e);return n.cleanupFns.push(async()=>l()),l},selection:F_(e),openContextMenu(a){Qa(a)},openPalette(a){eo(a)}}};if(n.ctx=i,t.onKeyRevoked){const a=no(e,async l=>{try{await t.onKeyRevoked(l)}catch(c){console.error(`[sh3] onKeyRevoked failed in "${e}":`,c)}});n.cleanupFns.push(async()=>a())}Nr.set(e,n),Zr.set(e,t),await t.activate(i);for(const a of t.manifest.views)if(!n.viewIds.has(a.id))throw new Error(`Shard "${e}" declared view "${a.id}" in its manifest but registered no factory for it.`);if(r.proxy&&r.defaults)try{const a=await ay(e),l=Object.assign({},r.defaults,a);Object.assign(r.proxy,l)}catch(a){console.warn(`[sh3] Failed to hydrate env state for shard "${e}":`,a instanceof Error?a.message:a)}t.autostart?.(i)}function di(e){const t=Nr.get(e);if(t){t.shard.deactivate?.();for(const n of t.cleanupFns)n();for(const n of t.verbNames)X_(n);for(const n of t.viewIds)Y_(n);U_(e),Nr.delete(e),Zr.delete(e)}}function yy(e){return Nr.get(e)?.ctx}function gl(){const e=[];for(const t of Zr.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 gn=ce(new Map),Lt=ce({id:null});function so(e){gn.set(e.manifest.id,e)}function io(){return Array.from(gn.values()).map(e=>e.manifest)}function wd(){const e=Lt.id;return e?gn.get(e)?.manifest??null:null}function fi(e){return gn.get(e)}const kd=Xs("__sh3core__:last-app",{user:{id:null}});function wy(){return kd.user.id}function Os(e){kd.user.id=e}const da=new Map;function as(e){let t=da.get(e);if(!t){const n=fi(e);t={state:r=>Xs(`__app__:${e}`,r),zones:n?.manifest.permissions?.includes(Va)?dd():void 0},da.set(e,t)}return t}async function or(e){const t=fi(e);if(!t)throw new Error(`Cannot launch app "${e}": not registered`);if(Lt.id&&Lt.id!==e)Sd(Lt.id);else if(Lt.id===e){for(const n of t.manifest.requiredShards){const r=Jt.get(n),s=yy(n);r&&s&&r.resume?.(s)}t.resume?.(as(e)),vl(),t.onAppReady?.(as(e)),Os(e),ia(e,new Set(t.manifest.requiredShards??[])),Qn(e).then(jr);return}for(const n of t.manifest.requiredShards)if(!Jt.has(n))throw new Error(`App "${e}" requires shard "${n}" which is not registered`);fb(t);try{for(const n of t.manifest.requiredShards)await yd(n)}catch(n){throw Ku(),n}vb(),t.activate?.(as(e)),Lt.id=e,ia(e,new Set(t.manifest.requiredShards??[])),Qn(e).then(jr),vl(),t.onAppReady?.(as(e)),Os(e)}function Sd(e){if(Lt.id!==e)return;const t=fi(e);if(t){t.deactivate?.(),Wu(),Ku();for(const n of t.manifest.requiredShards){const r=Jt.get(n);r&&(r.autostart||di(n))}Lt.id=null,ia(null,new Set),H_(),Qn("sh3.home").then(jr),da.delete(e)}}function ao(e){gn.has(e)&&(Lt.id===e&&(Sd(e),Os(null)),gn.delete(e))}async function xd(){const e=Lt.id?fi(Lt.id):null;if(e){for(const t of e.manifest.requiredShards){const n=Jt.get(t);if(n?.suspend&&await n.suspend()===!1)return!1}if(e.suspend&&await e.suspend()===!1)return!1}return Wu(),Os(null),!0}const ky="modulepreload",Sy=function(e){return"/"+e},_l={},Ed=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),l=a?.nonce||a?.getAttribute("nonce");s=Promise.allSettled(n.map(c=>{if(c=Sy(c),c in _l)return;_l[c]=!0;const u=c.endsWith(".css"),d=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${d}`))return;const f=document.createElement("link");if(f.rel=u?"stylesheet":ky,u||(f.as="script"),f.crossOrigin="",f.href=c,l&&f.setAttribute("nonce",l),document.head.appendChild(f),u)return new Promise((h,_)=>{f.addEventListener("load",h),f.addEventListener("error",()=>_(new Error(`Unable to preload CSS for ${c}`)))})}))}function i(a){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=a,window.dispatchEvent(l),!l.defaultPrevented)throw a}return s.then(a=>{for(const l of a||[])l.status==="rejected"&&i(l.reason);return t().catch(i)})};function Id(){return{root:St(),source:Yu()}}function xy(e){const t=St().docked,n=lo(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 Ey(e){const t=St();return hi(t.docked,n=>n.slotId===e)?!0:Ad(t,n=>n.slotId===e)}function vi(e){const t=St();return hi(t.docked,n=>n.viewId===e)?!0:Ad(t,n=>n.viewId===e)}function hi(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(hi(n,t))return!0}return!1}function Ad(e,t){for(const n of e.floats)if(hi(n.content,t))return Pt.focus(n.id),!0;return!1}function Iy(e,t){return Cd(e,t,!0)}function Ay(e,t){return Cd(e,t,!1)}function Cd(e,t,n){const r=St().docked,s=Ds(r,e);if(!s||s.type!=="split")return!1;const i=s;return t<0||t>=i.children.length?!1:(i.collapsed||(i.collapsed=i.children.map(()=>!1)),i.collapsed[t]=n,!0)}async function oo(e){const t=St(),n=t.docked;if(!ar(n,e))return Cy(t,e);const i=Fu(e)?.closable;return!i||typeof i=="object"&&(!await i.canClose()||!ar(n,e))?!1:(ni(n,e),Jn(n),!0)}async function Cy(e,t){for(const n of e.floats){if(!ar(n.content,t))continue;const i=Fu(t)?.closable;if(typeof i=="object"&&(!await i.canClose()||!ar(n.content,t)))return!1;ni(n.content,t);const a=n.content.type==="tabs"?n.content:null;return(!a||a.tabs.length===0)&&Pt.close(n.id),!0}return!1}function Td(e){const t=St(),n=ar(t.docked,e);if(!n)return null;const r=n.entry,s=r.viewId;if(!s)return null;const i=r.label,a=r.meta;return ni(t.docked,e),Jn(t.docked),Pt.open(s,{title:i,meta:a})}function Rd(e){const n=St().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 Pt.close(e),!1;const i=s.tabs[s.activeTab??0]??s.tabs[0],a=co({slotId:i.slotId,viewId:i.viewId,label:i.label,meta:i.meta});return a&&Pt.close(e),a}function lo(e){if(e.type==="tabs")return e;if(e.type==="split")for(const t of e.children){const n=lo(t);if(n)return n}return null}function Pd(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=Pd(e.children[n],[...t,n]);if(r)return r}return null}function co(e){const t=St().docked;if(vi(e.viewId??""))return!0;const n=lo(t);if(n)return n.tabs.push(e),n.activeTab=n.tabs.length-1,!0;const r=Pd(t);return r?($u(t,r,e,"right"),!0):!1}function Dd(e){return Za(St(),e)}class ot extends Error{constructor(t,n){super(`Registry validation error at ${t}: ${n}`),this.name="RegistryValidationError",this.path=t}}function Md(e){if(!e||typeof e!="object"||Array.isArray(e))throw new ot("$","expected an object");const t=e;if(t.version!==1)throw new ot("$.version",`expected 1, got ${JSON.stringify(t.version)}`);if(!Array.isArray(t.packages))throw new ot("$.packages","expected an array");return{version:1,packages:t.packages.map((r,s)=>Ty(r,`$.packages[${s}]`))}}function Ty(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new ot(t,"expected an object");const n=e;Ot(n,"id",t),Dy(n,"type",["shard","app","combo"],t),Ot(n,"label",t),Ot(n,"description",t);const r=`${t}.author`;if(!n.author||typeof n.author!="object"||Array.isArray(n.author))throw new ot(r,"expected an object");const s=n.author;if(typeof s.name!="string"||s.name.length===0)throw new ot(`${r}.name`,"expected a non-empty string");if(!Array.isArray(n.versions)||n.versions.length===0)throw new ot(`${t}.versions`,"expected a non-empty array");const i=n.versions.map((a,l)=>Ry(a,`${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:i}}function Ry(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new ot(t,"expected an object");const n=e;Ot(n,"version",t),Ot(n,"contractVersion",t);const r="bundleUrl"in n&&n.bundleUrl!==void 0,s="integrity"in n&&n.integrity!==void 0;if(r&&Ot(n,"bundleUrl",t),s&&Ot(n,"integrity",t),r!==s)throw new ot(t,"bundleUrl and integrity must be provided together");const i="serverBundleUrl"in n&&n.serverBundleUrl!==void 0;if(i&&Ot(n,"serverBundleUrl",t),"serverIntegrity"in n&&n.serverIntegrity!==void 0&&Ot(n,"serverIntegrity",t),!r&&!i)throw new ot(t,"expected at least one of bundleUrl+integrity or serverBundleUrl");let a;if(n.requires!==void 0){if(!Array.isArray(n.requires))throw new ot(`${t}.requires`,"expected an array");a=n.requires.map((l,c)=>Py(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:a}}function Py(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new ot(t,"expected an object");const n=e;return Ot(n,"id",t),Ot(n,"versionRange",t),{id:n.id,versionRange:n.versionRange}}function Ot(e,t,n){const r=e[t];if(typeof r!="string"||r.length===0)throw new ot(`${n}.${t}`,"expected a non-empty string")}function Dy(e,t,n,r){if(!n.includes(e[t]))throw new ot(`${r}.${t}`,`expected one of: ${n.join(", ")}`)}const bl=["sha256","sha384","sha512"];function My(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(!bl.includes(n))throw new Error(`Unsupported SRI algorithm: ${n}. Supported: ${bl.join(", ")}`);if(!r)throw new Error(`Empty hash in SRI: ${e}`);return{algorithm:n,hash:r}}function Oy(e){return`SHA-${e.slice(3)}`}function Ly(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 uo(e,t){const{algorithm:n,hash:r}=My(t),s=Oy(n),i=await crypto.subtle.digest(s,e),a=Ly(i);if(a!==r)throw new Error(`Integrity check failed for ${n}. Expected: ${r}, got: ${a}`)}async function Od(e){const t=new Set,n=[];for(const r of e){let s;try{const a=await fetch(r);if(!a.ok){console.warn(`[sh3] Registry fetch failed for ${r}: HTTP ${a.status}`);continue}s=await a.json()}catch(a){console.warn(`[sh3] Registry ${r}: ${a instanceof Error?a.message:String(a)}`);continue}let i;try{i=Md(s)}catch(a){console.warn(`[sh3] Registry ${r} failed validation: ${a instanceof Error?a.message:String(a)}`);continue}for(const a of i.packages)t.has(a.id)||(t.add(a.id),n.push({entry:a,latest:a.versions[0],sourceRegistry:r}))}return n}async function pi(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 uo(s,e.integrity),s}async function fo(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 uo(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 mi(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 kn="0.11.4",vo="sh3:user:__sh3core__:theme";let zr=[];function jy(e){const t=Object.keys(e);for(const n of zr)t.includes(n)||document.documentElement.style.removeProperty(`--${n}`);for(const[n,r]of Object.entries(e))document.documentElement.style.setProperty(`--${n}`,r);zr=t;try{localStorage.setItem(vo,JSON.stringify(e))}catch{}}function Ny(){for(const e of zr)document.documentElement.style.removeProperty(`--${e}`);zr=[];try{localStorage.removeItem(vo)}catch{}}function Ld(){try{const e=localStorage.getItem(vo);if(!e)return{};const t=JSON.parse(e);return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{}}catch{return{}}}function zy(){const e=Ld();if(Object.keys(e).length!==0){for(const[t,n]of Object.entries(e))document.documentElement.style.setProperty(`--${t}`,n);zr=Object.keys(e)}}const fa="/assets/icons-CnAqUqbR.svg",jd=Symbol("sh3.icon-sprite");function $y(e){wa(jd,e)}function Nd(){return ya(jd)}var qy=Wc('<svg class="sh3-btn__icon svelte-t4hi97" aria-hidden="true"><use></use></svg>'),By=T('<span class="sh3-btn__label svelte-t4hi97"><!></span>'),Vy=T("<button><!> <!></button>");function Fy(e,t){se(t,!0);let n=ct(t,"variant",3,"default"),r=ct(t,"disabled",3,!1),s=ct(t,"type",3,"button");const i=Nd();function a(y){return y.includes("/")||y.endsWith(".svg")}const l=Y(()=>t.icon?a(t.icon)?t.icon:`${t.sprite??i??fa}#${t.icon}`:void 0),c=Y(()=>n()==="icon"||!!t.icon&&!t.children);var u=Vy();let d;var f=p(u);{var h=y=>{var x=qy(),k=p(x);v(x),$(()=>_e(k,"href",o(l))),I(y,x)};V(f,y=>{o(l)&&y(h)})}var _=E(f,2);{var S=y=>{var x=By(),k=p(x);Ys(k,()=>t.children),v(x),I(y,x)};V(_,y=>{t.children&&y(S)})}v(u),$(()=>{_e(u,"type",s()),d=ye(u,1,`sh3-btn sh3-btn--${n()??""}`,"svelte-t4hi97",d,{"sh3-btn--icon-only":o(c)}),u.disabled=r(),_e(u,"title",t.title),_e(u,"aria-label",t.ariaLabel??(o(c)?t.title:void 0))}),U("click",u,function(...y){t.onclick?.apply(this,y)}),I(e,u),ie()}pe(["click"]);const Uy={hotInstall:typeof Blob<"u"&&typeof URL.createObjectURL=="function"},zd=["__sh3core__","shell","sh3-store","sh3-admin"],$d=Object.freeze(Object.defineProperty({__proto__:null,Button:Fy,COLOR_PICKER_POINT:Pu,CONFLICT_RENDERER_POINT:Cu,ConflictPermissionError:Tu,ConflictSessionOrphanedError:w_,ConsentDeniedError:gd,FRAMEWORK_SHARD_IDS:zd,PERMISSION_DOCUMENTS_BROWSE:fd,PERMISSION_DOCUMENTS_READ:vd,PERMISSION_DOCUMENTS_WRITE:hd,PERMISSION_KEYS_MINT:pd,PERMISSION_STATE_MANAGE:Va,PERMISSION_SYNC_PEER:ey,PERMISSION_SYNC_POLICY:ty,ScopeEscalationError:md,VERSION:kn,activeShards:Zr,buildPackageMeta:mi,capabilities:Uy,clearTokenOverrides:Ny,closeTab:oo,collapseChild:Iy,dockFloat:Rd,dockIntoActiveLayout:co,expandChild:Ay,fetchBundle:pi,fetchRegistries:Od,focusTab:Ey,focusView:vi,getActiveApp:wd,getAuthHeader:ui,getIconSprite:Nd,getTokenOverrides:Ld,getUser:ci,inspectActiveLayout:Id,isAdmin:ln,isAuthenticated:la,isGuest:ld,launchApp:or,listRegisteredApps:io,listVerbs:Ja,locateSlot:Dd,popoutView:Td,provideIcons:$y,registerConsentListener:_d,registeredShards:Jt,resolveConsent:ua,returnToHome:xd,setTokenOverrides:jy,shell:oi,spliceIntoActiveLayout:xy,subscribeKeyRevocation:no,unregisterApp:ao,validateRegistryIndex:Md},Symbol.toStringTag,{value:"Module"})),Hy="/assets/SH3-BG5NVpSD.png",Ky="https://cdn.jsdelivr.net/npm/p5@1.11.13/lib/p5.min.js";let wr=null;function Wy(){return wr||(wr=new Promise((e,t)=>{const n=window.p5;if(n){e(n);return}const r=document.createElement("script");r.src=Ky,r.async=!0,r.onload=()=>e(window.p5),r.onerror=s=>{wr=null,t(s)},document.head.appendChild(r)}),wr)}var Yy=T('<h1 class="shell-title-fallback svelte-1ifjvh5">SH3</h1>'),Gy=T('<div class="shell-title svelte-1ifjvh5"></div>');function Xy(e,t){se(t,!0);const n="`.-':;,^\"~=+<>*?!/\\|()[]{}x1ltzrcvunsXYUJCLQ0OZmwqpdbkhao*#MW&8%B@$",r=64,s=Math.floor(64/(442/193)),i=8,a=7,l=80,c=r*i,u=s*a,d=l/u;let f=z(void 0),h=null,_=z(!1);const S=()=>b=>{const D=getComputedStyle(document.documentElement).getPropertyValue("--shell-accent").trim();let C,m,M=!1;b.setup=()=>{b.createCanvas(c,u),b.noSmooth(),b.noStroke(),b.textAlign(b.CENTER,b.CENTER),b.textFont("monospace"),b.textSize(10),b.textStyle(b.BOLD),m=b.loadImage(Hy,()=>{C=b.createGraphics(r,s),C.pixelDensity(1),C.image(m,0,0,r,s),C.loadPixels(),M=!0},()=>{g(_,!0)})},b.draw=()=>{if(!M)return;const R=b.millis()*.001;let O;b.clear(),b.background(0,0),b.fill(D);for(let P=0;P<s;P++)for(let L=0;L<r;L++){const q=(P*r+L)*4;if(C.pixels[q]<64){if(O=b.noise(L/r*2,P/s*2,R*.15),O>.33)continue;b.text(n[Math.floor(O*n.length*.25)],(L+.5)*i,(P+.5)*a);continue}O=b.noise(L/r*4,P/s*4,R*.5),b.text(n[Math.floor(O*n.length)],(L+.5)*i,(P+.5)*a)}}};Te(()=>{if(o(_))return;let b=!1;return Wy().then(A=>{if(!(b||!o(f)))try{h=new A(S(),o(f))}catch(D){console.error("[ShellTitle] p5 sketch failed to start",D),g(_,!0)}}).catch(A=>{console.error("[ShellTitle] failed to load p5 from CDN",A),g(_,!0)}),()=>{b=!0,h&&(h.remove(),h=null)}});var y=at(),x=he(y);{var k=b=>{var A=Yy();I(b,A)},w=b=>{var A=Gy();Qt(A,"",{},{width:"216.7195767195767px",height:"80px","--shell-title-scale":d}),dt(A,D=>g(f,D),()=>o(f)),I(b,A)};V(x,b=>{o(_)?b(k):b(w,-1)})}I(e,y),ie()}var Jy=T('<button type="button" class="shell-home-card svelte-cpn2x2"><div class="shell-home-card-label svelte-cpn2x2"> </div> <div class="shell-home-card-meta svelte-cpn2x2"><span class="shell-home-card-id svelte-cpn2x2"> </span> <span class="shell-home-card-version svelte-cpn2x2"> </span></div></button>'),Zy=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>'),Qy=T('<button type="button" class="shell-home-card svelte-cpn2x2"><div class="shell-home-card-label svelte-cpn2x2"> </div> <div class="shell-home-card-meta svelte-cpn2x2"><span class="shell-home-card-id svelte-cpn2x2"> </span> <span class="shell-home-card-version svelte-cpn2x2"> </span></div></button>'),ew=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>'),tw=T('<p class="shell-home-empty svelte-cpn2x2"><!></p>'),nw=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 rw(e,t){se(t,!0);let n=z("");const r=Y(io),s=Y(ln);function i(m,M){if(!M)return!0;const R=M.toLowerCase();return m.label.toLowerCase().includes(R)||m.id.toLowerCase().includes(R)}const a=Y(()=>o(r).filter(m=>!m.admin&&i(m,o(n)))),l=Y(()=>o(r).filter(m=>m.admin&&i(m,o(n)))),c=Y(()=>o(a).length+(o(s)?o(l).length:0));var u=nw(),d=p(u),f=p(d),h=p(f);Xy(h,{});var _=E(h,2),S=p(_);v(_),nn(2),v(f),nn(2),v(d);var y=E(d,2),x=p(y);Se(x),v(y);var k=E(y,2);{var w=m=>{var M=Zy(),R=E(p(M),2);ue(R,21,()=>o(a),O=>O.id,(O,P)=>{var L=Jy(),q=p(L),N=p(q,!0);v(q);var B=E(q,2),G=p(B),X=p(G,!0);v(G);var Q=E(G,2),J=p(Q);v(Q),v(B),v(L),$(()=>{_e(L,"title",`Launch ${o(P).label??""}`),j(N,o(P).label),j(X,o(P).id),j(J,`v${o(P).version??""}`)}),U("click",L,()=>or(o(P).id)),I(O,L)}),v(R),v(M),I(m,M)};V(k,m=>{o(a).length>0&&m(w)})}var b=E(k,2);{var A=m=>{var M=ew(),R=E(p(M),2);ue(R,21,()=>o(l),O=>O.id,(O,P)=>{var L=Qy(),q=p(L),N=p(q,!0);v(q);var B=E(q,2),G=p(B),X=p(G,!0);v(G);var Q=E(G,2),J=p(Q);v(Q),v(B),v(L),$(()=>{_e(L,"title",`Launch ${o(P).label??""}`),j(N,o(P).label),j(X,o(P).id),j(J,`v${o(P).version??""}`)}),U("click",L,()=>or(o(P).id)),I(O,L)}),v(R),v(M),I(m,M)};V(b,m=>{o(s)&&o(l).length>0&&m(A)})}var D=E(b,2);{var C=m=>{var M=tw(),R=p(M);{var O=L=>{var q=$t("No apps registered.");I(L,q)},P=L=>{var q=$t();$(()=>j(q,`No apps match “${o(n)??""}”.`)),I(L,q)};V(R,L=>{o(r).length===0?L(O):L(P,-1)})}v(M),I(m,M)};V(D,m=>{o(c)===0&&m(C)})}v(u),$(()=>j(S,`v${kn}`)),Me(x,()=>o(n),m=>g(n,m)),I(e,u),ie()}pe(["click"]);var sw=T('<p class="keys-peers-muted svelte-19l5m7c">Loading...</p>'),iw=T('<p class="keys-peers-error svelte-19l5m7c"> </p>'),aw=T('<p class="keys-peers-muted svelte-19l5m7c">No keys yet. Shards will ask your permission before creating one.</p>'),ow=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),lw=T('<button type="button" class="keys-peers-btn-danger svelte-19l5m7c">Revoke</button>'),cw=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>'),uw=T('<ul class="keys-peers-list svelte-19l5m7c"></ul>'),dw=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 fw(e,t){se(t,!0);let n=z(ce([])),r=z(null),s=z(!0),i=z(null);async function a(){g(r,null),g(s,!0);try{const y=await fetch("/api/keys",{credentials:"include"});if(!y.ok)throw new Error(`HTTP ${y.status}`);g(n,await y.json(),!0)}catch(y){g(r,y instanceof Error?y.message:String(y),!0)}finally{g(s,!1)}}async function l(y){g(i,null);const x=await fetch(`/api/keys/${encodeURIComponent(y)}`,{method:"DELETE",credentials:"include"});(x.ok||x.status===404)&&g(n,o(n).filter(k=>k.id!==y),!0)}function c(y){return new Date(y).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}Te(()=>{a()}),Te(()=>no("*",()=>{a()}));var u=dw(),d=E(p(u),2);{var f=y=>{var x=sw();I(y,x)},h=y=>{var x=iw(),k=p(x);v(x),$(()=>j(k,`Failed to load: ${o(r)??""}`)),I(y,x)},_=y=>{var x=aw();I(y,x)},S=y=>{var x=uw();ue(x,21,()=>o(n),k=>k.id,(k,w)=>{var b=cw(),A=p(b),D=p(A),C=p(D,!0);v(D);var m=E(D,2),M=p(m);v(m);var R=E(m,2),O=p(R);v(R);var P=E(R,2),L=p(P);v(P),v(A);var q=E(A,2),N=p(q);{var B=X=>{var Q=ow(),J=he(Q),te=E(J,2);U("click",J,()=>l(o(w).id)),U("click",te,()=>{g(i,null)}),I(X,Q)},G=X=>{var Q=lw();U("click",Q,()=>{g(i,o(w).id,!0)}),I(X,Q)};V(N,X=>{o(i)===o(w).id?X(B):X(G,-1)})}v(q),v(b),$((X,Q,J)=>{j(C,o(w).label),j(M,`Minted by: ${o(w).mintedByShardId??"system"??""}${o(w).peerRole||o(w).peerId?` · Peer: ${o(w).peerRole??"—"}${o(w).peerId?` (${o(w).peerId})`:""}`:""}`),j(O,`Scopes: ${X??""}`),j(L,`Created: ${Q??""} · Expires: ${J??""}`)},[()=>o(w).scopes.join(", "),()=>c(o(w).createdAt),()=>o(w).expiresAt?c(o(w).expiresAt):"never"]),I(k,b)}),v(x),I(y,x)};V(d,y=>{o(s)?y(f):o(r)?y(h,1):o(n).length===0?y(_,2):y(S,-1)})}v(u),I(e,u),ie()}pe(["click"]);const vw={manifest:{id:"__sh3core__",label:"SH3 Core",version:kn,views:[{id:"sh3core:home",label:"Home"},{id:"shell:keys-and-peers",label:"Keys & Peers"}]},activate(e){const t=e.state({user:{bindings:{}}});P_(t.user),e.actions.register({id:"sh3.palette.open",label:"Command Palette…",scope:["home","app"],defaultShortcut:"Mod+K",contextItem:!1,paletteItem:!1,run(i){Ed(async()=>{const{openPalette:a}=await Promise.resolve().then(()=>qb);return{openPalette:a}},void 0).then(({openPalette:a})=>a())}});const n={mount(i,a){const l=ze(rw,{target:i});return{unmount(){Ue(l)}}}},r={mount(i,a){const l=ze(fw,{target:i});return{unmount(){Ue(l)}}}};e.registerView("sh3core:home",n),e.registerView("shell:keys-and-peers",r);const s=new Map;Ws(()=>{Te(()=>{const i=new Set;for(const[a,l]of gn){if(i.add(a),s.has(a))continue;const c=e.actions.register({id:`sh3.app.launch:${a}`,label:`Launch ${l.manifest.label}`,scope:["home","app"],run(){or(a)}});s.set(a,c)}for(const a of[...s.keys()])i.has(a)||(s.get(a)(),s.delete(a))})})},autostart(){}},hw={id:"shell",label:"Shell",version:kn,views:[{id:"shell:terminal",label:"Shell",standalone:!0}],permissions:[]},pw=2e3;let mw=0;function gw(){return`e${++mw}`}class _w{#e;get entries(){return o(this.#e)}set entries(t){g(this.#e,t,!0)}constructor(t=pw){this.#e=z(ce([])),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:gw()};this.entries.push(r),this.entries.length>this.cap&&this.entries.splice(0,this.entries.length-this.cap)}clear(){this.entries.length=0}}var bw=T("<pre> </pre>");function yw(e,t){se(t,!0);const n=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,r=Y(()=>t.chunks.join("").replace(n,""));var s=bw();let i;var a=p(s,!0);v(s),$(()=>{i=ye(s,1,"shell-text svelte-ypr8s",null,i,{stderr:t.stream==="stderr"}),j(a,o(r))}),I(e,s),ie()}var ww=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 kw(e,t){var n=ww(),r=p(n),s=p(r,!0);v(r);var i=E(r,4),a=p(i,!0);v(i),v(n),$(()=>{j(s,t.cwd),j(a,t.line)}),I(e,n)}var Sw=T("<div> </div>");function xw(e,t){var n=Sw();let r;var s=p(n,!0);v(n),$(()=>{r=ye(n,1,"shell-status svelte-nfxdpt",null,r,{info:t.level==="info",warn:t.level==="warn",error:t.level==="error"}),j(s,t.text)}),I(e,n)}var Ew=T('<div class="shell-rich svelte-1rnhl05"><!></div>');function Iw(e,t){var n=Ew(),r=p(n);Gr(r,()=>t.component,(s,i)=>{i(s,Jr(()=>t.componentProps))}),v(n),I(e,n)}var Aw=T('<div class="shell-scrollback svelte-isy3jt"></div>');function Cw(e,t){se(t,!0);let n=z(null);Te(()=>{t.scrollback.entries.length,o(n)&&(o(n).scrollTop=o(n).scrollHeight)});var r=Aw();ue(r,21,()=>t.scrollback.entries,s=>s.id,(s,i)=>{var a=at(),l=he(a);{var c=h=>{yw(h,{get stream(){return o(i).stream},get chunks(){return o(i).chunks}})},u=h=>{kw(h,{get cwd(){return o(i).cwd},get line(){return o(i).line}})},d=h=>{xw(h,{get text(){return o(i).text},get level(){return o(i).level}})},f=h=>{Iw(h,{get component(){return o(i).component},get componentProps(){return o(i).props}})};V(l,h=>{o(i).kind==="text"?h(c):o(i).kind==="prompt"?h(u,1):o(i).kind==="status"?h(d,2):o(i).kind==="rich"&&h(f,3)})}I(s,a)}),v(r),dt(r,s=>g(n,s),()=>o(n)),I(e,r),ie()}var Tw=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 Rw(e,t){se(t,!0);let n=z(""),r=z(null),s=z(""),i=z(null);function a(){if(t.locked)return;const y=o(n);y.trim()&&(g(n,""),g(r,null),t.onSubmit(y))}function l(){t.history.length!==0&&(o(r)===null?(g(s,o(n),!0),g(r,t.history.length-1)):o(r)>0&&sr(r,-1),g(n,t.history[o(r)]??"",!0))}function c(){o(r)!==null&&(o(r)<t.history.length-1?(sr(r),g(n,t.history[o(r)],!0)):(g(r,null),g(n,o(s),!0)))}function u(y){if(t.locked){if(y.ctrlKey&&y.key==="c"){y.preventDefault(),t.session.send({t:"signal",sig:"SIGINT"});return}if(y.ctrlKey&&y.key==="d"){y.preventDefault(),t.session.send({t:"signal",sig:"EOF"});return}y.preventDefault();return}y.key==="Enter"?(y.preventDefault(),a()):y.key==="ArrowUp"?(y.preventDefault(),l()):y.key==="ArrowDown"?(y.preventDefault(),c()):y.ctrlKey&&y.key==="c"?(y.preventDefault(),g(n,""),g(r,null)):y.ctrlKey&&y.key==="l"&&(y.preventDefault(),g(n,"clear"),a())}Te(()=>{!t.locked&&o(i)&&o(i).focus()});var d=Tw();let f;var h=p(d),_=p(h,!0);v(h);var S=E(h,4);Se(S),dt(S,y=>g(i,y),()=>o(i)),v(d),$(()=>{f=ye(d,1,"shell-input svelte-1dfv2gk",null,f,{locked:t.locked}),j(_,t.cwd),S.disabled=t.locked}),U("keydown",S,u),Me(S,()=>o(n),y=>g(n,y)),I(e,d),ie()}pe(["keydown"]);const yl=[1e3,2e3,5e3,1e4];class Pw{#e;get connected(){return o(this.#e)}set connected(t){g(this.#e,t,!0)}#t;get cwd(){return o(this.#t)}set cwd(t){g(this.#t,t,!0)}#n;get env(){return o(this.#n)}set env(t){g(this.#n,t,!0)}#i;get history(){return o(this.#i)}set history(t){g(this.#i,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=z(!1),this.#t=z(""),this.#n=z(ce({})),this.#i=z(ce([]))}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=yl[Math.min(this.backoffIndex,yl.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 Dw{list(){return Ja()}get(t){return ul(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),i=r===-1?"":n.slice(r+1),a=ul(s);if(!a)return{kind:"forward",line:t};const l=i.length?i.split(/\s+/):[];return{kind:"local",verb:a,args:l,line:t}}}class Mw{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 i=`HTTP ${s.status}`;try{const a=await s.json();a.error&&(i=a.error)}catch{}throw new Error(i)}return s}}class Ow{#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 Lw={id:"dev",label:"Dev",requiresRole:"admin",transport:"ws",autoRelocate:!1},jw={id:"user",label:"User",transport:"none",autoRelocate:!0};function Nw(e){e.register(Lw),e.register(jw)}function qd(e){return`sh3.shell.lastMode.${e}`}function zw(e){try{return globalThis.localStorage?.getItem(qd(e))??null}catch{return null}}function $w(e,t){try{globalThis.localStorage?.setItem(qd(e),t)}catch{}}function qw(e,t,n){const r=zw(t);if(r){const i=e.get(r);if(i&&(!i.requiresRole||i.requiresRole===n))return i}const s=n==="admin"?"dev":"user";return e.get(s)}function Bw(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(i){e.scrollback.push({kind:"status",text:`shell: verb ${s.verb.name} threw — ${i.message}`,level:"error",ts:Date.now()})}return}if(r.transport==="ws")e.session.send({t:"submit",line:s.line});else{const i=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: ${i}`,level:"error",ts:Date.now()})}}}async function Vw(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 Fw=T('<div class="toolbar svelte-gnowwz"><div class="toolbar-slots svelte-gnowwz"></div></div>');function Uw(e,t){se(t,!0);let n=ct(t,"slotProps",19,()=>({})),r=Y(()=>t.registry.list(t.ctx));var s=Fw(),i=p(s);ue(i,21,()=>o(r),a=>a.id,(a,l)=>{const c=Y(()=>o(l).component);var u=at(),d=he(u);Gr(d,()=>o(c),(f,h)=>{h(f,Jr(()=>n()[o(l).id]??{}))}),I(a,u)}),v(i),v(s),I(e,s),ie()}class Hw{#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 Kw=T('<button type="button"> </button>'),Ww=T('<div class="mode-bar svelte-1i4cqlj" role="toolbar" aria-label="Shell mode"></div>'),Yw=T('<span class="mode-label svelte-1i4cqlj"> </span>');function Gw(e,t){se(t,!0);let n=Y(()=>t.registry.list(t.role));var r=at(),s=he(r);{var i=l=>{var c=Ww();ue(c,21,()=>o(n),u=>u.id,(u,d)=>{var f=Kw();let h;var _=p(f,!0);v(f),$(()=>{h=ye(f,1,"mode-btn svelte-1i4cqlj",null,h,{active:o(d).id===t.mode.id}),_e(f,"aria-pressed",o(d).id===t.mode.id),j(_,o(d).label)}),U("click",f,()=>t.onSelect(o(d).id)),I(u,f)}),v(c),I(l,c)},a=l=>{var c=Yw(),u=p(c,!0);v(c),$(()=>j(u,t.mode.label)),I(l,c)};V(s,l=>{t.role==="admin"?l(i):l(a,-1)})}I(e,r),ie()}pe(["click"]);var Xw=T('<button class="focus-lock-btn svelte-1q6gbap"> </button>');function Jw(e,t){var n=Xw(),r=p(n,!0);v(n),$(()=>{_e(n,"title",t.locked?"Unlock focus":"Lock focus"),j(r,t.locked?"🔒":"🔓")}),U("click",n,function(...s){t.onToggle?.apply(this,s)}),I(e,n)}pe(["click"]);var Zw=T('<span class="target-shard svelte-1nn2m6x" title="Target shard"> </span>');function Qw(e,t){var n=Zw(),r=p(n);v(n),$(()=>j(r,`→ ${t.target??"—"??""}`)),I(e,n)}var ek=T('<div class="shell-terminal svelte-13komre"><!> <!> <!></div>');function tk(e,t){se(t,!0);const n=new _w,r=new Dw,s=new Mw,i=new Ow;Nw(i);let a=z(ce(Ee(()=>qw(i,t.userId,t.role))));function l(C){const m=i.get(C);m&&(m.requiresRole&&m.requiresRole!==t.role||(g(a,m,!0),$w(t.userId,C),m.transport!=="ws"&&n.push({kind:"status",text:"mode switch: reload to take effect for server-shell changes",level:"info",ts:Date.now()})))}const c=Ee(()=>new Pw(t.wsUrl)),u=Ee(()=>Bw({mode:()=>o(a),resolver:r,scrollback:n,session:c,shell:t.shell,fs:s,cwd:()=>c.cwd}));let d=z(!1),f=z(!1),h=z(null);const _=new Hw;_.register({id:"mode",order:10,visible:()=>!0,component:Gw}),_.register({id:"focus-lock",order:20,visible:C=>C.mode.id==="user",component:Jw}),_.register({id:"target-shard",order:30,visible:C=>C.mode.id==="user",component:Qw});function S(C){if(C.type==="tabs")return C.tabs[C.activeTab]?.viewId??null;if(C.type==="split")for(const m of C.children){const M=S(m);if(M!==null)return M}return C.viewId??null}function y(){try{const C=St(),m=S(C.docked);if(!m)return null;const M=m.indexOf(":");return M>=0?m.slice(0,M):m}catch{return null}}Te(()=>{const C=y(),m=o(a).autoRelocate,M=o(f);(async()=>{const R=await Vw({modeAutoRelocate:m,focusLocked:M,focusedShardId:C,currentShardId:"shell"},s);R.kind==="relocate"&&R.path!==void 0&&(c.cwd=R.path),C&&C!=="shell"?g(h,C,!0):C||g(h,null)})()});function x(C){if(C.t!=="event")return;const m=C.event;switch(m.kind){case"prompt":n.push({kind:"prompt",cwd:m.cwd,line:m.line,ts:m.ts}),g(d,!0);break;case"stdout":n.push({kind:"text",stream:"stdout",chunks:[m.data],ts:m.ts});break;case"stderr":n.push({kind:"text",stream:"stderr",chunks:[m.data],ts:m.ts});break;case"exit":(m.signal||m.code!==null&&m.code!==0)&&n.push({kind:"status",text:m.signal?`shell: process exited (${m.signal})`:`shell: process exited (${m.code})`,level:"error",ts:m.ts}),g(d,!1);break;case"status":n.push({kind:"status",text:m.text,level:m.level,ts:m.ts});break}}let k=null;ja(()=>{k=c.onMessage(x),o(a).transport==="ws"&&c.connect()}),Na(()=>{k?.(),c.close()});var w=ek(),b=p(w);{let C=Y(()=>({mode:o(a),role:t.role})),m=Y(()=>({mode:{mode:o(a),role:t.role,registry:i,onSelect:l},"focus-lock":{locked:o(f),onToggle:()=>g(f,!o(f))},"target-shard":{target:o(h)}}));Uw(b,{get registry(){return _},get ctx(){return o(C)},get slotProps(){return o(m)}})}var A=E(b,2);Cw(A,{get scrollback(){return n}});var D=E(A,2);Rw(D,{get cwd(){return c.cwd},get locked(){return o(d)},get history(){return c.history},get session(){return c},get onSubmit(){return u}}),v(w),I(e,w),ie()}var nk=T('<tr><td class="svelte-m248jy"><button type="button" class="svelte-m248jy"> </button></td><td class="svelte-m248jy"> </td></tr>'),rk=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 sk(e,t){se(t,!0);var n=rk(),r=p(n),s=E(p(r));ue(s,21,()=>t.data.rows,i=>i.name,(i,a)=>{var l=nk(),c=p(l),u=p(c),d=p(u,!0);v(u),v(c);var f=E(c),h=p(f,!0);v(f),v(l),$(()=>{j(d,o(a).name),j(h,o(a).summary)}),U("click",u,()=>t.data.onClickName(o(a).name)),I(i,l)}),v(s),v(r),v(n),I(e,n),ie()}pe(["click"]);function ik(){return{name:"help",summary:"List verbs or show detail for one.",async run(e){const t=Ja().map(n=>({name:n.name,summary:n.summary}));e.scrollback.push({kind:"rich",component:sk,props:{data:{rows:t,onClickName:n=>e.dispatch(n)}},ts:Date.now()})}}}const ak={name:"clear",summary:"Clear the scrollback (local only — other views are unaffected).",async run(e){e.scrollback.clear()}};var ok=T('<li class="svelte-o8m437"><button type="button" class="svelte-o8m437"> </button></li>'),lk=T('<div class="shell-rich-history svelte-o8m437"><ol class="svelte-o8m437"></ol></div>');function ck(e,t){se(t,!0);var n=lk(),r=p(n);ue(r,21,()=>t.data.lines,$n,(s,i)=>{var a=ok(),l=p(a),c=p(l,!0);v(l),v(a),$(()=>j(c,o(i))),U("click",l,()=>t.data.onClickLine(o(i))),I(s,a)}),v(r),v(n),I(e,n),ie()}pe(["click"]);const uk={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:ck,props:{data:{lines:r,onClickLine:s=>e.dispatch(s)}},ts:Date.now()})}};var dk=T('<tr><td class="svelte-1u5krjz"><button type="button" class="svelte-1u5krjz"> </button></td><td class="svelte-1u5krjz"> </td></tr>'),fk=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 vk(e,t){se(t,!0);var n=fk(),r=p(n),s=E(p(r));ue(s,21,()=>t.data.apps,i=>i.id,(i,a)=>{var l=dk(),c=p(l),u=p(c),d=p(u,!0);v(u),v(c);var f=E(c),h=p(f,!0);v(f),v(l),$(()=>{j(d,o(a).id),j(h,o(a).label)}),U("click",u,()=>t.data.onClickApp(o(a).id)),I(i,l)}),v(s),v(r),v(n),I(e,n),ie()}pe(["click"]);var hk=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 pk(e,t){se(t,!0);var n=hk(),r=p(n),s=p(r,!0);v(r);var i=E(r,2),a=E(p(i));v(i);var l=E(i,2),c=E(p(l));v(l),v(n),$(u=>{j(s,t.data.label),j(a,` ${t.data.id??""}`),j(c,` ${u??""}`)},[()=>t.data.shards.join(", ")]),I(e,n),ie()}const mk={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:vk,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()})}},gk={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:pk,props:{data:{id:t.id,label:t.label,shards:[]}},ts:Date.now()})}};var _k=T('<tr><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td></tr>'),bk=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 yk(e,t){se(t,!0);var n=bk(),r=p(n),s=E(p(r));ue(s,21,()=>t.data.shards,i=>i.id,(i,a)=>{var l=_k(),c=p(l),u=p(c,!0);v(c);var d=E(c),f=p(d,!0);v(d);var h=E(d),_=p(h,!0);v(h),v(l),$(()=>{j(u,o(a).id),j(f,o(a).label),j(_,o(a).version)}),I(i,l)}),v(s),v(r),v(n),I(e,n),ie()}const wk={name:"shards",summary:"List active shards.",async run(e){const t=e.shell.listShards();e.scrollback.push({kind:"rich",component:yk,props:{data:{shards:t}},ts:Date.now()})}};var kk=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>'),Sk=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 xk(e,t){se(t,!0);var n=Sk(),r=p(n),s=E(p(r));ue(s,21,()=>t.data.views,i=>i.slotId,(i,a)=>{var l=kk(),c=p(l),u=p(c,!0);v(c);var d=E(c),f=p(d,!0);v(d);var h=E(d),_=p(h,!0);v(h);var S=E(h),y=p(S);v(S),v(l),$(()=>{j(u,o(a).slotId),j(f,o(a).viewId),j(_,o(a).label)}),U("click",y,()=>t.data.onClose(o(a).slotId)),I(i,l)}),v(s),v(r),v(n),I(e,n),ie()}pe(["click"]);const Ek={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(`
8
- `),level:"info",ts:Date.now()});return}const n=e.shell.listViewsInCurrentLayout();e.scrollback.push({kind:"rich",component:xk,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()})}},Ik={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()})}},Ak={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()})}},Ck={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(i=>` ${i.floatId.padEnd(24)} ${i.viewId??"-"} ${i.label}`).join(`
9
- `),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()})}},Tk={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 Rk=T('<tr><td class="svelte-1w7onag"> </td><td class="svelte-1w7onag"> </td></tr>'),Pk=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 Dk(e,t){se(t,!0);var n=Pk(),r=p(n),s=E(p(r));ue(s,21,()=>t.data.rows,i=>i.shardId,(i,a)=>{var l=Rk(),c=p(l),u=p(c,!0);v(c);var d=E(c),f=p(d,!0);v(d),v(l),$(h=>{j(u,o(a).shardId),j(f,h)},[()=>o(a).zones.join(", ")]),I(i,l)}),v(s),v(r),v(n),I(e,n),ie()}var Mk=T('<div class="shell-rich-zonetree svelte-13iiyr1"><pre class="svelte-13iiyr1"> </pre></div>');function Ok(e,t){se(t,!0);var n=Mk(),r=p(n),s=p(r,!0);v(r),v(n),$(i=>j(s,i),[()=>JSON.stringify(t.data.value,null,2)]),I(e,n),ie()}const Lk={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:Dk,props:{data:{rows:n}},ts:Date.now()})}},jk={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:Ok,props:{data:{value:s}},ts:Date.now()})}};function Nk(e,t){if(t.startsWith("/"))return zk(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 zk(e){return e.split("/").filter(t=>t&&t!==".").join("/")}const $k={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+`
10
- `],ts:Date.now()})}},qk={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=Nk(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(i){e.scrollback.push({kind:"status",text:`cd: ${i.message}`,level:"error",ts:Date.now()});return}e.session.cwd=s}},Bk={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)":""}
11
- `],ts:Date.now()})}};var Vk=T('<tr><td class="svelte-1ox8vog"> </td><td class="svelte-1ox8vog"> </td></tr>'),Fk=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 Uk(e,t){se(t,!0);var n=Fk(),r=p(n),s=E(p(r));ue(s,21,()=>Object.entries(t.data.env),([i,a])=>i,(i,a)=>{var l=Y(()=>Bl(o(a),2));let c=()=>o(l)[0],u=()=>o(l)[1];var d=Vk(),f=p(d),h=p(f,!0);v(f);var _=E(f),S=p(_,!0);v(_),v(d),$(()=>{j(h,c()),j(S,u())}),I(i,d)}),v(s),v(r),v(n),I(e,n),ie()}const Hk={name:"env",summary:"Show the session environment.",async run(e){const t=e.session.env;e.scrollback.push({kind:"rich",component:Uk,props:{data:{env:t}},ts:Date.now()})}},Kk={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(`
12
- `);e.scrollback.push({kind:"text",stream:"stdout",chunks:[n||"(empty)"],ts:Date.now()})}},Wk={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()})}}};function Yk(e){e.registerVerb(ik()),e.registerVerb(ak),e.registerVerb(uk),e.registerVerb(mk),e.registerVerb(gk),e.registerVerb(wk),e.registerVerb(Ek),e.registerVerb(Ik),e.registerVerb(Tk),e.registerVerb(Ak),e.registerVerb(Ck),e.registerVerb(Lk),e.registerVerb(jk),e.registerVerb($k),e.registerVerb(qk),e.registerVerb(Hk),e.registerVerb(Bk),e.registerVerb(Kk),e.registerVerb(Wk)}function Bd(e){return e.type==="tabs"?e.tabs.filter(t=>t.viewId!==null):e.type==="split"?e.children.flatMap(Bd):e.viewId!==null?[{slotId:e.slotId,viewId:e.viewId,label:e.viewId}]:[]}function Gk(e){return{listApps(){return io().map(t=>({id:t.id,label:t.label}))},getActiveApp(){const t=wd();return t?{id:t.id,label:t.label}:null},launchApp(t){or(t)},listShards(){return Array.from(Jt.values()).map(t=>({id:t.manifest.id,label:t.manifest.label,version:t.manifest.version}))},listViewsInCurrentLayout(){try{const{root:t}=Id();return Bd(t.docked).map(n=>({slotId:n.slotId,viewId:n.viewId??"",label:n.label}))}catch{return[]}},openViewInCurrentLayout(t){try{if(vi(t))return{ok:!0};const n=gl().find(r=>r.viewId===t);if(n){const r=`standalone:${t}:${Date.now()}`;return co({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 gl()},popoutSlot(t){try{const n=Td(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 Rd(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 Dd(t)}catch{return null}},listFloats(){return Pt.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 oo(t),{ok:!0}},listZones(t){return[]},readZone(t,n){return null},whoAmI(){return{userId:ci()?.id??"guest",admin:ln()}}}}const Xk={manifest:hw,activate(e){if(!e.isAdmin)return;Yk(e);const t=Gk();e.actions.register({id:"shell.terminal.toggle",label:"Open Terminal",scope:["home","app"],defaultShortcut:"²",allowInInputs:!1,run(){vi("shell:terminal")||Pt.open("shell:terminal",{title:"Shell"})}});const n={mount(r,s){const i=typeof location<"u"&&location.protocol==="https:"?"wss":"ws",a=typeof location<"u"?location.host:"localhost",l=`${i}://${a}/api/shell/session`,u=ci()?.id??"guest",d=ln()?"admin":"user",f=ze(tk,{target:r,props:{shell:t,wsUrl:l,userId:u,role:d}});return{unmount(){Ue(f)},closable:!0}}};e.registerView("shell:terminal",n)},autostart(){}},wl=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 Li(e,t){const n=Object.keys(t),r=n.filter(a=>!wl.has(a)),s=n.filter(a=>wl.has(a)),i=[`const __m__ = globalThis.${e};`];r.length>0&&i.push(`export const { ${r.join(", ")} } = __m__;`);for(const a of s)i.push(`const __r_${a}__ = __m__['${a}']; export { __r_${a}__ as ${a} };`);return i.push("export default __m__.default;"),URL.createObjectURL(new Blob([i.join(`
13
- `)],{type:"application/javascript"}))}const ho=globalThis;ho.__sh3__=$d;ho.__sh3_svelte__=eu;ho.__sh3_svelte_internal_client__=mu;const po={"sh3-core":Li("__sh3__",$d),svelte:Li("__sh3_svelte__",eu),"svelte/internal/client":Li("__sh3_svelte_internal_client__",mu)};po["svelte/internal/disclose-version"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));po["sh3-core/tokens.css"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));const Jk=/(?:from|import)\s*(['"])(sh3-core(?:\/[^'"]*)?|svelte(?:\/[^'"]*)?)\1/g;function Zk(e){return e.replace(Jk,(t,n,r)=>{const s=po[r];return s?`${t.startsWith("from")?"from":"import"} '${s}'`:t})}async function Qr(e){const t=new TextDecoder().decode(e),n=Zk(t),r=new Blob([n],{type:"application/javascript"}),s=URL.createObjectURL(r);try{const i=await import(s),a={shards:[],apps:[]};for(const l of Object.values(i)){if(!l||typeof l!="object"||!("manifest"in l))continue;const c=l;Qk(c)?a.shards.push(c):e1(c)&&a.apps.push(c)}if(a.shards.length===0&&a.apps.length===0)throw new Error('Bundle has no exports with a "manifest" property — expected at least one shard or app');return a}finally{URL.revokeObjectURL(s)}}function Qk(e){return"activate"in e&&typeof e.activate=="function"&&Array.isArray(e.manifest.views)}function e1(e){return"initialLayout"in e&&Array.isArray(e.manifest.requiredShards)}const t1="sh3-packages",n1=1,$r="bundles",lr="meta";function es(){return new Promise((e,t)=>{const n=indexedDB.open(t1,n1);n.onupgradeneeded=()=>{const r=n.result;r.objectStoreNames.contains($r)||r.createObjectStore($r),r.objectStoreNames.contains(lr)||r.createObjectStore(lr)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}function qn(e,t,n,r){return new Promise((s,i)=>{const l=e.transaction(t,n).objectStore(t),c=r(l);c.onsuccess=()=>s(c.result),c.onerror=()=>i(c.error)})}async function Vd(e,t,n){const r=await es();await qn(r,$r,"readwrite",s=>s.put(t,e)),await qn(r,lr,"readwrite",s=>s.put(n,e)),r.close()}async function Fd(e){const t=await es(),n=await qn(t,$r,"readonly",r=>r.get(e));return t.close(),n??null}async function r1(e){const t=await es(),n=await qn(t,lr,"readonly",r=>r.get(e));return t.close(),n??null}async function Ud(){const e=await es(),t=await qn(e,lr,"readonly",n=>n.getAll());return e.close(),t??[]}async function s1(e){const t=await es();await qn(t,$r,"readwrite",n=>n.delete(e)),await qn(t,lr,"readwrite",n=>n.delete(e)),t.close()}function mo(e,t){for(const n of e.shards)n.manifest={...n.manifest,version:t.version},ro(n);for(const n of e.apps)n.manifest={...n.manifest,version:t.version},so(n)}const i1={"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 ji(e){return i1[e]??{title:e,description:"Unknown permission."}}function go(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 _o(e,t,n){if(!t.integrity)return{success:!1,hotLoaded:!1,error:"Missing integrity hash — refusing to install unverified bundle"};try{await uo(e,t.integrity)}catch(a){return{success:!1,hotLoaded:!1,error:`Integrity check failed: ${a instanceof Error?a.message:String(a)}`}}let r;if(n?.loaded)r=n.loaded;else try{r=await Qr(e)}catch(a){return{success:!1,hotLoaded:!1,error:`Failed to load bundle: ${a instanceof Error?a.message:String(a)}`}}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:go(r)};try{await Vd(t.id,e,s)}catch(a){return{success:!1,hotLoaded:!1,error:`Failed to persist package: ${a instanceof Error?a.message:String(a)}`}}if(t.type==="shard"||t.type==="combo")try{di(t.id)}catch{}(t.type==="app"||t.type==="combo")&&ao(t.id);let i=!0;try{mo(r,{version:t.version,sourceRegistry:t.sourceRegistry,contractVersion:t.contractVersion})}catch(a){console.warn(`[sh3] Package "${t.id}" installed but registration failed (will retry on next boot):`,a instanceof Error?a.message:a),i=!1}return{success:!0,package:s,hotLoaded:i}}async function Hd(e){try{di(e)}catch{}ao(e),await s1(e)}async function a1(){return Ud()}async function o1(){let e;try{e=await Ud()}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 Fd(t.id);if(!n){console.warn(`[sh3] No bundle found for installed package "${t.id}", skipping`);continue}const r=await Qr(n);mo(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 kl={version:1};var l1=T('<span class="perm-modal-author svelte-1ipp1r6"> </span>'),c1=T('<p class="perm-modal-empty svelte-1ipp1r6">This package requires no special permissions.</p>'),u1=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>'),d1=T('<p class="perm-modal-intro svelte-1ipp1r6">This package requests the following permissions:</p> <ul class="perm-modal-list svelte-1ipp1r6"></ul>',1),f1=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>'),v1=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),h1=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>'),p1=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),m1=T("<!> <!>",1),g1=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 va(e,t){se(t,!0);const n=ct(t,"permissions",19,()=>[]),r=ct(t,"added",19,()=>[]),s=ct(t,"removed",19,()=>[]),i=Y(()=>t.mode==="install"?"Install":"Update");var a=g1(),l=p(a),c=p(l),u=p(c),d=p(u);v(u);var f=E(u,2),h=p(f);{var _=R=>{var O=$t();$(()=>j(O,`${t.fromVersion??""} → ${t.pkg.version??""}`)),I(R,O)},S=R=>{var O=$t();$(()=>j(O,`v${t.pkg.version??""}`)),I(R,O)};V(h,R=>{t.mode==="update"&&t.fromVersion?R(_):R(S,-1)})}var y=E(h,2);{var x=R=>{var O=l1(),P=p(O);v(O),$(()=>j(P,`by ${t.pkg.author??""}`)),I(R,O)};V(y,R=>{t.pkg.author&&R(x)})}v(f),v(c);var k=E(c,2),w=p(k);{var b=R=>{var O=at(),P=he(O);{var L=N=>{var B=c1();I(N,B)},q=N=>{var B=d1(),G=E(he(B),2);ue(G,20,n,X=>X,(X,Q)=>{const J=Y(()=>ji(Q));var te=u1(),ee=p(te),Z=p(ee,!0);v(ee);var de=E(ee,2),fe=p(de,!0);v(de),v(te),$(()=>{j(Z,o(J).title),j(fe,o(J).description)}),I(X,te)}),v(G),I(N,B)};V(P,N=>{n().length===0?N(L):N(q,-1)})}I(R,O)},A=R=>{var O=m1(),P=he(O);{var L=B=>{var G=v1(),X=E(he(G),2);ue(X,20,r,Q=>Q,(Q,J)=>{const te=Y(()=>ji(J));var ee=f1(),Z=p(ee),de=p(Z,!0);v(Z);var fe=E(Z,2),K=p(fe,!0);v(fe),v(ee),$(()=>{j(de,o(te).title),j(K,o(te).description)}),I(Q,ee)}),v(X),I(B,G)};V(P,B=>{r().length>0&&B(L)})}var q=E(P,2);{var N=B=>{var G=p1(),X=E(he(G),2);ue(X,20,s,Q=>Q,(Q,J)=>{const te=Y(()=>ji(J));var ee=h1(),Z=p(ee),de=p(Z,!0);v(Z);var fe=E(Z,2),K=p(fe,!0);v(fe),v(ee),$(()=>{j(de,o(te).title),j(K,o(te).description)}),I(Q,ee)}),v(X),I(B,G)};V(q,B=>{s().length>0&&B(N)})}I(R,O)};V(w,R=>{t.mode==="install"?R(b):R(A,-1)})}v(k);var D=E(k,2),C=p(D),m=E(C,2),M=p(m,!0);v(m),v(D),v(l),v(a),$(()=>{_e(a,"aria-label",`${o(i)??""} ${t.pkg.label??""}`),j(d,`${o(i)??""} ${t.pkg.label??""}`),j(M,o(i))}),U("click",a,function(...R){t.onCancel?.apply(this,R)}),U("keydown",a,R=>{R.key==="Escape"&&t.onCancel()}),U("click",l,R=>R.stopPropagation()),U("click",C,function(...R){t.onCancel?.apply(this,R)}),U("click",m,function(...R){t.onConfirm?.apply(this,R)}),I(e,a),ie()}pe(["click","keydown"]);var _1=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>'),b1=T('<div class="store-registries svelte-1aafzt0"></div>'),y1=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>'),w1=T('<div class="store-error svelte-1aafzt0"> </div>'),k1=T('<div class="store-error svelte-1aafzt0"> </div>'),S1=T('<img alt="" class="store-icon-img svelte-1aafzt0"/>'),x1=T('<span class="store-icon-placeholder svelte-1aafzt0"> </span>'),E1=T('<div class="store-card-warning svelte-1aafzt0"> </div>'),I1=T('<button class="store-update-btn svelte-1aafzt0"> </button>'),A1=T('<span class="store-installed-label svelte-1aafzt0">Installed</span>'),C1=T('<span class="store-card-missing svelte-1aafzt0"> </span>'),T1=T('<div class="store-install-wrap svelte-1aafzt0"><button class="store-install-btn svelte-1aafzt0"> </button> <!></div>'),R1=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>'),P1=T("No packages found. <!>",1),D1=T('<div class="store-empty svelte-1aafzt0"><!></div>'),M1=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 O1(e,t){se(t,!0);let n=z(""),r=z("all"),s=z(ce(new Set)),i=z(ce(new Set)),a=z(null),l=z(""),c=z(null),u=z(null);const d=_n;async function f(){const F=o(l).trim();if(F&&!d.env.registries.includes(F))try{await d.addRegistry(F),g(l,""),d.refreshCatalog(),d.refreshInstalled()}catch(H){g(a,H instanceof Error?H.message:String(H),!0)}}async function h(F){try{await d.removeRegistry(F),d.refreshCatalog()}catch(H){g(a,H instanceof Error?H.message:String(H),!0)}}const _=Y(()=>{const F=o(n).toLowerCase().trim();return d.state.ephemeral.catalog.filter(H=>o(r)!=="all"&&H.entry.type!==o(r)?!1:F?H.entry.id.toLowerCase().includes(F)||H.entry.label.toLowerCase().includes(F)||H.entry.description.toLowerCase().includes(F):!0)});function S(F){return d.state.ephemeral.installed.some(H=>H.id===F)}function y(F){return String(F.latest.contractVersion)!==String(kl.version)}function x(F){return F in d.state.ephemeral.updatable}function k(F){return d.state.ephemeral.installed.find(H=>H.id===F)?.version??""}function w(F,H){const ke=F.latest.requires?.map(ge=>ge.id)??[];if(ke.length===0)return[];const Pe=new Set(zd);for(const ge of H)(ge.type==="shard"||ge.type==="combo")&&Pe.add(ge.id);return ke.filter(ge=>!Pe.has(ge))}async function b(F){if(!o(i).has(F)){g(i,new Set([...o(i),F]),!0),g(a,null);try{await d.updatePackage(F,(H,ke)=>new Promise(Pe=>{const ge=d.state.ephemeral.updatable[F],Ne=d.state.ephemeral.installed.find(Ye=>Ye.id===F);if(!ge||!Ne){Pe(!0);return}g(u,{pkg:ge,fromVersion:Ne.version,added:H,removed:ke,resolve:Pe},!0)}))}catch(H){g(a,H instanceof Error?H.message:String(H),!0)}finally{const H=new Set(o(i));H.delete(F),g(i,H,!0)}}}function A(){const F=o(u);F&&(g(u,null),F.resolve(!0))}function D(){const F=o(u);F&&(g(u,null),F.resolve(!1))}async function C(F){const H=F.entry.id;if(!o(s).has(H)){g(s,new Set([...o(s),H]),!0),g(a,null);try{const ke=await pi(F.latest,F.sourceRegistry),Pe=mi(F,F.latest),ge=await Qr(ke),Ne=go(ge);let Ye;F.latest.serverBundleUrl&&(Ye=await fo(F.latest,F.sourceRegistry)),g(c,{pkg:F,permissions:Ne,loaded:ge,bundle:ke,meta:Pe,serverBundle:Ye},!0)}catch(ke){g(a,ke instanceof Error?ke.message:String(ke),!0);const Pe=new Set(o(s));Pe.delete(H),g(s,Pe,!0)}}}async function m(){const F=o(c);if(!F)return;g(c,null);const{pkg:H,loaded:ke,bundle:Pe,meta:ge,serverBundle:Ne}=F,Ye=H.entry.id;try{const Be={id:ge.id,type:ge.type,label:H.entry.label,version:ge.version,contractVersion:ge.contractVersion,sourceRegistry:ge.sourceRegistry,requiredShards:H.latest.requires?.map(xt=>xt.id)??[],installedAt:new Date().toISOString()},cn=await to(Be,Pe,Ne);if(!cn.ok){g(a,cn.error??"Server install failed",!0);return}const un=await _o(Pe,ge,{loaded:ke});un.success||console.warn(`[sh3-store] Server install ok but local hot-load failed: ${un.error}`),await d.refreshInstalled()}catch(Be){g(a,Be instanceof Error?Be.message:String(Be),!0)}finally{const Be=new Set(o(s));Be.delete(Ye),g(s,Be,!0)}}function M(){if(!o(c))return;const F=o(c).pkg.entry.id;g(c,null);const H=new Set(o(s));H.delete(F),g(s,H,!0)}function R(){d.refreshCatalog(),d.refreshInstalled()}var O=M1(),P=he(O),L=p(P),q=E(p(L),2),N=p(q);Se(N);var B=E(N,2),G=p(B);G.value=G.__value="all";var X=E(G);X.value=X.__value="shard";var Q=E(X);Q.value=Q.__value="app",v(B);var J=E(B,2),te=p(J,!0);v(J),v(q),v(L);var ee=E(L,2);{var Z=F=>{var H=b1();ue(H,21,()=>d.env.registries,$n,(ke,Pe)=>{var ge=_1(),Ne=p(ge),Ye=p(Ne,!0);v(Ne);var Be=E(Ne,2);v(ge),$(()=>j(Ye,o(Pe))),U("click",Be,()=>h(o(Pe))),I(ke,ge)}),v(H),I(F,H)};V(ee,F=>{d.isAdmin&&d.env.registries.length>0&&F(Z)})}var de=E(ee,2);{var fe=F=>{var H=y1(),ke=p(H);Se(ke);var Pe=E(ke,2);v(H),$(ge=>Pe.disabled=ge,[()=>!o(l).trim()]),Je("submit",H,ge=>{ge.preventDefault(),f()}),Me(ke,()=>o(l),ge=>g(l,ge)),I(F,H)};V(de,F=>{d.isAdmin&&F(fe)})}var K=E(de,2);{var ae=F=>{var H=w1(),ke=p(H,!0);v(H),$(()=>j(ke,d.state.ephemeral.error)),I(F,H)};V(K,F=>{d.state.ephemeral.error&&F(ae)})}var me=E(K,2);{var Ke=F=>{var H=k1(),ke=p(H,!0);v(H),$(()=>j(ke,o(a))),I(F,H)};V(me,F=>{o(a)&&F(Ke)})}var Ie=E(me,2);ue(Ie,21,()=>o(_),F=>F.entry.id,(F,H)=>{const ke=Y(()=>S(o(H).entry.id)),Pe=Y(()=>y(o(H))),ge=Y(()=>o(s).has(o(H).entry.id)),Ne=Y(()=>x(o(H).entry.id)),Ye=Y(()=>o(i).has(o(H).entry.id)),Be=Y(()=>w(o(H),d.state.ephemeral.installed));var cn=R1(),un=p(cn),xt=p(un),_r=p(xt);{var nf=Le=>{var De=S1();$(()=>_e(De,"src",o(H).entry.icon)),I(Le,De)},rf=Le=>{var De=x1(),Et=p(De,!0);v(De),$(()=>j(Et,o(H).entry.type==="shard"?"S":"A")),I(Le,De)};V(_r,Le=>{o(H).entry.icon?Le(nf):Le(rf,-1)})}v(xt);var ko=E(xt,2),_i=p(ko),sf=p(_i,!0);v(_i);var rs=E(_i,2);let So;var af=p(rs,!0);v(rs);var xo=E(rs,2),of=p(xo,!0);v(xo),v(ko),v(un);var bi=E(un,2),lf=p(bi,!0);v(bi);var yi=E(bi,2),cf=p(yi,!0);v(yi);var Eo=E(yi,2);{var uf=Le=>{var De=E1(),Et=p(De);v(De),$(()=>j(Et,`Contract mismatch: package targets v${o(H).latest.contractVersion??""}, running v${kl.version}`)),I(Le,De)};V(Eo,Le=>{o(Pe)&&Le(uf)})}var Io=E(Eo,2),df=p(Io);{var ff=Le=>{var De=I1(),Et=p(De,!0);v(De),$(wi=>{De.disabled=o(Ye),j(Et,wi)},[()=>o(Ye)?"Updating...":`Update ${k(o(H).entry.id)} -> ${o(H).latest.version}`]),U("click",De,()=>b(o(H).entry.id)),I(Le,De)},vf=Le=>{var De=A1();I(Le,De)},hf=Le=>{var De=T1(),Et=p(De),wi=p(Et,!0);v(Et);var pf=E(Et,2);{var mf=br=>{var ki=C1(),gf=p(ki);v(ki),$(_f=>j(gf,`requires: ${_f??""}`),[()=>o(Be).join(", ")]),I(br,ki)};V(pf,br=>{o(Be).length>0&&br(mf)})}v(De),$(br=>{Et.disabled=o(ge)||o(Be).length>0,_e(Et,"title",br),j(wi,o(ge)?"Installing...":"Install")},[()=>o(Be).length>0?`Missing required shards: ${o(Be).join(", ")}`:void 0]),U("click",Et,()=>C(o(H))),I(Le,De)};V(df,Le=>{o(ke)&&o(Ne)?Le(ff):o(ke)?Le(vf,1):Le(hf,-1)})}v(Io),v(cn),$(()=>{j(sf,o(H).entry.label),So=ye(rs,1,"store-card-badge svelte-1aafzt0",null,So,{"badge-shard":o(H).entry.type==="shard","badge-app":o(H).entry.type==="app"}),j(af,o(H).entry.type),j(of,o(H).latest.version),j(lf,o(H).entry.description),j(cf,o(H).entry.author.name)}),I(F,cn)}),v(Ie);var rt=E(Ie,2);{var We=F=>{var H=D1(),ke=p(H);{var Pe=Ne=>{var Ye=P1(),Be=E(he(Ye));{var cn=xt=>{var _r=$t("Add a registry URL above to get started.");I(xt,_r)},un=xt=>{var _r=$t("No registries configured.");I(xt,_r)};V(Be,xt=>{d.isAdmin?xt(cn):xt(un,-1)})}I(Ne,Ye)},ge=Ne=>{var Ye=$t("No packages match the current filter.");I(Ne,Ye)};V(ke,Ne=>{d.env.registries.length===0?Ne(Pe):Ne(ge,-1)})}v(H),I(F,H)};V(rt,F=>{!d.state.ephemeral.loading&&o(_).length===0&&F(We)})}v(P);var ts=E(P,2);{var Sn=F=>{{let H=Y(()=>({label:o(c).pkg.entry.label,version:o(c).pkg.latest.version,author:o(c).pkg.entry.author.name}));va(F,{mode:"install",get pkg(){return o(H)},get permissions(){return o(c).permissions},onConfirm:m,onCancel:M})}};V(ts,F=>{o(c)&&F(Sn)})}var gi=E(ts,2);{var ns=F=>{{let H=Y(()=>({label:o(u).pkg.entry.label,version:o(u).pkg.latest.version,author:o(u).pkg.entry.author.name}));va(F,{mode:"update",get pkg(){return o(H)},get fromVersion(){return o(u).fromVersion},get added(){return o(u).added},get removed(){return o(u).removed},onConfirm:A,onCancel:D})}};V(gi,F=>{o(u)&&F(ns)})}$(()=>{J.disabled=d.state.ephemeral.loading,j(te,d.state.ephemeral.loading?"Loading...":"Refresh")}),Me(N,()=>o(n),F=>g(n,F)),Or(B,()=>o(r),F=>g(r,F)),U("click",J,R),I(e,O),ie()}pe(["click"]);var L1=T('<div class="installed-error svelte-1hqclkp"> </div>'),j1=T('<div class="installed-empty svelte-1hqclkp">No packages installed.</div>'),N1=T('<button class="installed-update-btn svelte-1hqclkp"> </button>'),z1=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>'),$1=T('<ul class="installed-list svelte-1hqclkp"></ul>'),q1=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 B1(e,t){se(t,!0);const n=_n;let r=z(ce(new Set)),s=z(ce(new Set)),i=z(null),a=z(null);async function l(m){if(!o(r).has(m)){g(r,new Set([...o(r),m]),!0);try{await ud(m),await Hd(m),await n.refreshInstalled()}catch(M){console.warn("[sh3-store] Uninstall failed:",M instanceof Error?M.message:M)}finally{const M=new Set(o(r));M.delete(m),g(r,M,!0)}}}async function c(m){if(!o(s).has(m)){g(s,new Set([...o(s),m]),!0),g(i,null);try{await n.updatePackage(m,(M,R)=>new Promise(O=>{const P=n.state.ephemeral.installed.find(q=>q.id===m),L=n.state.ephemeral.updatable[m];if(!P||!L){O(!0);return}g(a,{pkg:P,toVersion:L.latest.version,added:M,removed:R,resolve:O},!0)}))}catch(M){g(i,M instanceof Error?M.message:String(M),!0)}finally{const M=new Set(o(s));M.delete(m),g(s,M,!0)}}}function u(){const m=o(a);m&&(g(a,null),m.resolve(!0))}function d(){const m=o(a);m&&(g(a,null),m.resolve(!1))}function f(){n.refreshInstalled()}function h(m){try{return new Date(m).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch{return m}}var _=q1(),S=p(_),y=E(p(S),2);v(S);var x=E(S,2);{var k=m=>{var M=L1(),R=p(M,!0);v(M),$(()=>j(R,o(i))),I(m,M)};V(x,m=>{o(i)&&m(k)})}var w=E(x,2);{var b=m=>{var M=j1();I(m,M)},A=m=>{var M=$1();ue(M,21,()=>n.state.ephemeral.installed,R=>R.id,(R,O)=>{const P=Y(()=>o(r).has(o(O).id));var L=z1(),q=p(L),N=p(q),B=p(N,!0);v(N);var G=E(N,2);let X;var Q=p(G,!0);v(G);var J=E(G,2),te=p(J,!0);v(J),v(q);var ee=E(q,2),Z=p(ee),de=p(Z);v(Z);var fe=E(Z,2),K=p(fe);v(fe);var ae=E(fe,2),me=p(ae);v(ae),v(ee);var Ke=E(ee,2),Ie=p(Ke);{var rt=Sn=>{const gi=Y(()=>n.state.ephemeral.updatable[o(O).id]),ns=Y(()=>o(s).has(o(O).id));var F=N1(),H=p(F,!0);v(F),$(()=>{F.disabled=o(ns)||o(P),j(H,o(ns)?"Updating...":`Update -> ${o(gi).latest.version}`)}),U("click",F,()=>c(o(O).id)),I(Sn,F)};V(Ie,Sn=>{o(O).id in n.state.ephemeral.updatable&&Sn(rt)})}var We=E(Ie,2),ts=p(We,!0);v(We),v(Ke),v(L),$(Sn=>{j(B,o(O).id),X=ye(G,1,"installed-item-badge svelte-1hqclkp",null,X,{"badge-shard":o(O).type==="shard","badge-app":o(O).type==="app"}),j(Q,o(O).type),j(te,o(O).version),j(de,`Contract: v${o(O).contractVersion??""}`),j(K,`Source: ${o(O).sourceRegistry??""}`),j(me,`Installed: ${Sn??""}`),We.disabled=o(P),j(ts,o(P)?"Removing...":"Uninstall")},[()=>h(o(O).installedAt)]),U("click",We,()=>l(o(O).id)),I(R,L)}),v(M),I(m,M)};V(w,m=>{n.state.ephemeral.installed.length===0?m(b):m(A,-1)})}var D=E(w,2);{var C=m=>{{let M=Y(()=>({label:o(a).pkg.id,version:o(a).toVersion}));va(m,{mode:"update",get pkg(){return o(M)},get fromVersion(){return o(a).pkg.version},get added(){return o(a).added},get removed(){return o(a).removed},onConfirm:u,onCancel:d})}};V(D,m=>{o(a)&&m(C)})}v(_),U("click",y,f),I(e,_),ie()}pe(["click"]);function Kd(e){return _n.state.ephemeral.catalog.find(t=>t.entry.id===e)}function bo(e){return _n.state.ephemeral.installed.find(t=>t.id===e)}const V1={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=bo(n);if(r){e.scrollback.push({kind:"status",text:`${n} is already installed (v${r.version})`,level:"warn",ts:Date.now()});return}const s=Kd(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 i=await pi(s.latest,s.sourceRegistry),a=mi(s,s.latest);let l;s.latest.serverBundleUrl&&(l=await fo(s.latest,s.sourceRegistry));const c={id:a.id,type:a.type,label:s.entry.label,version:a.version,contractVersion:a.contractVersion,sourceRegistry:a.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:s.latest.requires?.map(f=>f.id)??[]},u=await to(c,i,l);if(!u.ok){let f=`install failed: ${u.error??"server error"}`;u.code==="missing-shards"&&u.missing&&(f=`install failed: missing required shard(s): ${u.missing.map(_=>_.id).join(", ")}`),e.scrollback.push({kind:"status",text:f,level:"error",ts:Date.now()});return}const d=await _o(i,a);d.success||e.scrollback.push({kind:"status",text:`server ok but local hot-load failed: ${d.error}`,level:"warn",ts:Date.now()}),await _n.refreshInstalled(),e.scrollback.push({kind:"status",text:`installed ${n} v${s.latest.version}`,level:"info",ts:Date.now()})}catch(i){e.scrollback.push({kind:"status",text:`install failed: ${i instanceof Error?i.message:String(i)}`,level:"error",ts:Date.now()})}}},F1={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(!bo(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 ud(n),await Hd(n),await _n.refreshInstalled(),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()})}}},U1={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=bo(n),s=Kd(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 i=[];i.push(`--- ${n} ---`),r?(i.push(" installed: yes"),i.push(` version: ${r.version}`),i.push(` type: ${r.type}`),i.push(` contract: v${r.contractVersion}`),i.push(` source: ${r.sourceRegistry}`),r.installedAt&&i.push(` installed: ${r.installedAt}`)):i.push(" installed: no"),s?(i.push(" catalog: yes"),i.push(` latest: ${s.latest.version}`),i.push(` label: ${s.entry.label}`),i.push(` author: ${s.entry.author.name}`),i.push(` desc: ${s.entry.description}`)):i.push(" catalog: no (not in any configured registry)"),e.scrollback.push({kind:"text",stream:"stdout",chunks:[i.join(`
14
- `)+`
15
- `],ts:Date.now()})}};function H1(e,t){const n=e.split(".").map(i=>parseInt(i,10)||0),r=t.split(".").map(i=>parseInt(i,10)||0),s=Math.max(n.length,r.length);for(let i=0;i<s;i++){const a=n[i]??0,l=r[i]??0;if(a>l)return!0;if(a<l)return!1}return!1}function K1(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 _n;const W1={manifest:{id:"sh3-store",label:"Package Store",version:kn,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 f={};for(const h of n.ephemeral.installed){const _=n.ephemeral.catalog.find(S=>S.entry.id===h.id);_&&H1(_.latest.version,h.version)&&(f[h.id]=_)}n.ephemeral.updatable=f}async function s(){n.ephemeral.loading=!0,n.ephemeral.error=null;try{const f=await Od(t.registries);n.ephemeral.catalog=f,r()}catch(f){n.ephemeral.error=f instanceof Error?f.message:String(f)}finally{n.ephemeral.loading=!1}}async function i(){try{const f=await ly();n.ephemeral.installed=f.map(h=>({id:h.id,type:h.type,version:h.version,sourceRegistry:h.sourceRegistry??"",contractVersion:h.contractVersion??"",installedAt:h.installedAt??"",permissions:[]})),r()}catch(f){console.warn("[sh3-store] Failed to list installed packages:",f instanceof Error?f.message:f);try{const h=await a1();n.ephemeral.installed=h,r()}catch{}}}async function a(f){const h=[...t.registries];h.includes(f)||(h.push(f),await e.envUpdate({registries:h}))}async function l(f){const h=t.registries.filter(_=>_!==f);await e.envUpdate({registries:h})}async function c(f,h){const _=n.ephemeral.updatable[f];if(!_)return;const S=n.ephemeral.installed.find(L=>L.id===f);if(!S)return;const y=await pi(_.latest,_.sourceRegistry);let x;_.latest.serverBundleUrl&&(x=await fo(_.latest,_.sourceRegistry));const k=mi(_,_.latest),w=await Qr(y),b=go(w);let A=[];try{const L=await r1(f);L?.permissions&&(A=L.permissions)}catch{}const{added:D,removed:C}=K1(A,b);if((D.length>0||C.length>0)&&h&&!await h(D,C))return;const m=await Fd(f),M={...S,permissions:A},R={id:k.id,type:k.type,label:_.entry.label,version:k.version,contractVersion:k.contractVersion,sourceRegistry:k.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:_.latest.requires?.map(L=>L.id)??[]},O=await to(R,y,x);if(!O.ok){let L=O.error??"Server update failed";throw O.code==="missing-shards"&&O.missing&&(L=`missing required shard(s): ${O.missing.map(N=>N.id).join(", ")}`),new Error(L)}const P=await _o(y,k,{loaded:w});if(!P.success){if(m)try{await Vd(f,m,M)}catch(L){console.warn(`[sh3-store] Rollback failed for "${f}":`,L instanceof Error?L.message:L)}throw new Error(P.error??"Local install failed during update")}await i()}_n={env:t,state:n,get isAdmin(){return e.isAdmin},refreshCatalog:s,refreshInstalled:i,updatePackage:c,addRegistry:a,removeRegistry:l};const u={mount(f,h){const _=ze(O1,{target:f});return{unmount(){Ue(_)}}}},d={mount(f,h){const _=ze(B1,{target:f});return{unmount(){Ue(_)}}}};e.registerView("sh3-store:browse",u),e.registerView("sh3-store:installed",d),e.registerVerb(V1),e.registerVerb(F1),e.registerVerb(U1),i()},autostart(){_n.refreshCatalog()}},Y1={manifest:{id:"sh3-store-app",label:"Package Store",version:kn,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 G1=T('<div class="admin-error svelte-4q792t"> </div>'),X1=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>'),J1=T('<p class="admin-muted svelte-4q792t">Loading...</p>'),Z1=T('<p class="admin-error svelte-4q792t"> </p>'),Q1=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>'),e0=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),t0=T('<li class="admin-user-item svelte-4q792t"><!></li>'),n0=T('<ul class="admin-user-list svelte-4q792t"></ul>'),r0=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 s0(e,t){se(t,!0);let n=z(ce([])),r=z(!0),s=z(null),i=z(!1),a=z(""),l=z(""),c=z(""),u=z("user"),d=z(null),f=z(null),h=z(""),_=z("user"),S=z("");async function y(){g(r,!0),g(s,null);try{const N=await fetch("/api/admin/users",{credentials:"include"});if(!N.ok)throw new Error("Failed to fetch users");g(n,await N.json(),!0)}catch(N){g(s,N instanceof Error?N.message:"Failed to load users",!0)}finally{g(r,!1)}}async function x(){g(d,null);try{const N=await fetch("/api/admin/users",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:o(a),displayName:o(l)||o(a),password:o(c),role:o(u)})});if(!N.ok){const B=await N.json().catch(()=>({}));g(d,B.error||"Failed to create user",!0);return}g(a,""),g(l,""),g(c,""),g(u,"user"),g(i,!1),await y()}catch{g(d,"Network error")}}function k(N){g(f,N.id,!0),g(h,N.displayName,!0),g(_,N.role,!0),g(S,"")}async function w(){if(!o(f))return;const N={displayName:o(h),role:o(_)};o(S).trim()&&(N.password=o(S));try{if(!(await fetch(`/api/admin/users/${o(f)}`,{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(N)})).ok)return;g(f,null),await y()}catch{}}async function b(N){try{await fetch(`/api/admin/users/${N}`,{method:"DELETE",credentials:"include"}),await y()}catch{}}y();var A=r0(),D=p(A),C=E(p(D),2),m=p(C,!0);v(C),v(D);var M=E(D,2);{var R=N=>{var B=X1(),G=p(B);Se(G);var X=E(G,2);Se(X);var Q=E(X,2);Se(Q);var J=E(Q,2),te=p(J);te.value=te.__value="user";var ee=E(te);ee.value=ee.__value="admin",v(J);var Z=E(J,2),de=E(Z,2);{var fe=K=>{var ae=G1(),me=p(ae,!0);v(ae),$(()=>j(me,o(d))),I(K,ae)};V(de,K=>{o(d)&&K(fe)})}v(B),$(K=>Z.disabled=K,[()=>!o(a).trim()||!o(c).trim()]),Je("submit",B,K=>{K.preventDefault(),x()}),Me(G,()=>o(a),K=>g(a,K)),Me(X,()=>o(l),K=>g(l,K)),Me(Q,()=>o(c),K=>g(c,K)),Or(J,()=>o(u),K=>g(u,K)),I(N,B)};V(M,N=>{o(i)&&N(R)})}var O=E(M,2);{var P=N=>{var B=J1();I(N,B)},L=N=>{var B=Z1(),G=p(B,!0);v(B),$(()=>j(G,o(s))),I(N,B)},q=N=>{var B=n0();ue(B,21,()=>o(n),G=>G.id,(G,X)=>{var Q=t0(),J=p(Q);{var te=Z=>{var de=Q1(),fe=p(de);Se(fe);var K=E(fe,2);Se(K);var ae=E(K,2),me=p(ae);me.value=me.__value="user";var Ke=E(me);Ke.value=Ke.__value="admin",v(ae);var Ie=E(ae,2),rt=E(p(Ie),2);v(Ie),v(de),Je("submit",de,We=>{We.preventDefault(),w()}),Me(fe,()=>o(h),We=>g(h,We)),Me(K,()=>o(S),We=>g(S,We)),Or(ae,()=>o(_),We=>g(_,We)),U("click",rt,()=>{g(f,null)}),I(Z,de)},ee=Z=>{var de=e0(),fe=he(de),K=p(fe),ae=p(K,!0);v(K);var me=E(K,2),Ke=p(me);v(me),v(fe);var Ie=E(fe,2),rt=p(Ie),We=E(rt,2);v(Ie),$(()=>{j(ae,o(X).displayName),j(Ke,`${o(X).username??""} · ${o(X).role??""}`)}),U("click",rt,()=>k(o(X))),U("click",We,()=>b(o(X).id)),I(Z,de)};V(J,Z=>{o(f)===o(X).id?Z(te):Z(ee,-1)})}v(Q),I(G,Q)}),v(B),I(N,B)};V(O,N=>{o(r)?N(P):o(s)?N(L,1):N(q,-1)})}v(A),$(()=>j(m,o(i)?"Cancel":"New user")),U("click",C,()=>{g(i,!o(i))}),I(e,A),ie()}pe(["click"]);var i0=T('<p class="admin-muted svelte-1hsgdb4">Loading...</p>'),a0=T('<div class="admin-error svelte-1hsgdb4"> </div>'),o0=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),l0=T('<div class="admin-auth svelte-1hsgdb4"><h2 class="svelte-1hsgdb4">Auth Settings</h2> <!></div>');function c0(e,t){se(t,!0);let n=z(null),r=z(!0),s=z(!1),i=z(null);async function a(){g(r,!0);try{const h=await fetch("/api/admin/settings",{credentials:"include"});if(!h.ok)throw new Error("Failed to fetch settings");g(n,await h.json(),!0)}catch(h){g(i,h instanceof Error?h.message:"Failed to load settings",!0)}finally{g(r,!1)}}async function l(){if(o(n)){g(s,!0),g(i,null);try{const h=await fetch("/api/admin/settings",{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(o(n))});if(!h.ok)throw new Error("Failed to save settings");g(n,await h.json(),!0)}catch(h){g(i,h instanceof Error?h.message:"Failed to save",!0)}finally{g(s,!1)}}}a();var c=l0(),u=E(p(c),2);{var d=h=>{var _=i0();I(h,_)},f=h=>{var _=o0(),S=he(_),y=p(S),x=p(y);Se(x),nn(4),v(y);var k=E(y,2),w=p(k);Se(w),nn(4),v(k);var b=E(k,2),A=p(b);Se(A),nn(4),v(b);var D=E(b,2),C=E(p(D),2);Se(C),v(D);var m=E(D,2),M=p(m,!0);v(m),v(S);var R=E(S,2);{var O=P=>{var L=a0(),q=p(L,!0);v(L),$(()=>j(q,o(i))),I(P,L)};V(R,P=>{o(i)&&P(O)})}$(()=>{m.disabled=o(s),j(M,o(s)?"Saving...":"Save")}),fs(x,()=>o(n).auth.required,P=>o(n).auth.required=P),fs(w,()=>o(n).auth.guestAllowed,P=>o(n).auth.guestAllowed=P),fs(A,()=>o(n).auth.selfRegistration,P=>o(n).auth.selfRegistration=P),Me(C,()=>o(n).auth.sessionTTL,P=>o(n).auth.sessionTTL=P),U("click",m,l),I(h,_)};V(u,h=>{o(r)?h(d):o(n)&&h(f,1)})}v(c),I(e,c),ie()}pe(["click"]);var u0=T('<button type="button"> </button>'),d0=T('<div class="admin-error svelte-1gkiloq"> </div>'),f0=T('<div class="admin-error svelte-1gkiloq"> </div>'),v0=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>.
16
- Set to <strong>0</strong> during development so drop-in bundle replacements take effect on F5.
17
- 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 h0(e,t){se(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=z("..."),s=z(!1),i=z(null),a=z(31536e3),l=z(31536e3),c=z(!1),u=z(null);const d=Y(()=>o(a)!==o(l)),f=Y(()=>h(o(a)));function h(K){return K===0?"0 seconds (off — browsers never cache)":K<60?`${K} seconds`:K<3600?`${Math.round(K/60)} minutes`:K<86400?`${Math.round(K/3600)} hours`:K<31536e3?`${Math.round(K/86400)} days`:`${Math.round(K/31536e3)} years`}async function _(){try{const K=await fetch("/api/version");if(K.ok){const ae=await K.json();g(r,ae.version,!0)}}catch{}}async function S(){try{const K=await fetch("/api/admin/settings",{credentials:"include"});if(K.ok){const me=(await K.json()).packages?.cacheMaxAge??31536e3;g(a,me,!0),g(l,me,!0)}}catch{}}async function y(){g(c,!0),g(u,null);try{const K=await fetch("/api/admin/settings",{method:"PUT",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({packages:{cacheMaxAge:o(a)}})});if(K.ok){const ae=await K.json();g(l,ae.packages?.cacheMaxAge??o(a),!0),g(a,o(l),!0)}else{const ae=await K.json().catch(()=>({}));g(u,ae.error||"Save failed",!0)}}catch{g(u,"Network error")}finally{g(c,!1)}}async function x(){g(s,!0),g(i,null);try{const K=await fetch("/api/admin/restart",{method:"POST",credentials:"include"});if(!K.ok){const ae=await K.json().catch(()=>({}));g(i,ae.error||"Restart failed",!0),g(s,!1)}}catch{g(i,"Network error"),g(s,!1)}}_(),S();var k=v0(),w=E(p(k),2),b=p(w),A=E(p(b),2),D=p(A,!0);v(A),v(b),v(w);var C=E(w,2),m=E(p(C),4);Se(m);var M=E(m,2),R=p(M),O=p(R,!0);v(R);var P=E(R);v(M);var L=E(M,2);ue(L,21,()=>n,K=>K.value,(K,ae)=>{var me=u0();let Ke;var Ie=p(me,!0);v(me),$(()=>{Ke=ye(me,1,"admin-snap svelte-1gkiloq",null,Ke,{active:o(a)===o(ae).value}),me.disabled=o(c),j(Ie,o(ae).label)}),U("click",me,()=>g(a,o(ae).value,!0)),I(K,me)}),v(L);var q=E(L,2),N=p(q),B=p(N,!0);v(N);var G=E(N,2),X=E(G,2);{var Q=K=>{var ae=d0(),me=p(ae,!0);v(ae),$(()=>j(me,o(u))),I(K,ae)};V(X,K=>{o(u)&&K(Q)})}v(q),v(C);var J=E(C,2),te=E(p(J),2),ee=p(te),Z=p(ee,!0);v(ee);var de=E(ee,2);{var fe=K=>{var ae=f0(),me=p(ae,!0);v(ae),$(()=>j(me,o(i))),I(K,ae)};V(de,K=>{o(i)&&K(fe)})}v(te),v(J),v(k),$(()=>{j(D,o(r)),m.disabled=o(c),j(O,o(a)),j(P,` — ${o(f)??""}`),N.disabled=!o(d)||o(c),j(B,o(c)?"Saving...":"Save"),G.disabled=!o(d)||o(c),ee.disabled=o(s),j(Z,o(s)?"Restarting...":"Restart server")}),Me(m,()=>o(a),K=>g(a,K)),U("click",N,y),U("click",G,()=>g(a,o(l),!0)),U("click",ee,x),I(e,k),ie()}pe(["click"]);var p0=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>`),m0=T('<div class="admin-error svelte-1afg5z5"> </div>'),g0=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>'),_0=T('<p class="admin-muted svelte-1afg5z5">Loading...</p>'),b0=T('<p class="admin-error svelte-1afg5z5"> </p>'),y0=T('<p class="admin-muted svelte-1afg5z5">No API keys. Create one to enable external access.</p>'),w0=T('<button type="button" class="admin-btn-danger svelte-1afg5z5">Confirm</button> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Cancel</button>',1),k0=T('<button type="button" class="admin-btn-danger svelte-1afg5z5">Revoke</button>'),S0=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>'),x0=T('<ul class="admin-key-list svelte-1afg5z5"></ul>'),E0=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 I0(e,t){se(t,!0);let n=z(ce([])),r=z(!0),s=z(null),i=z(!1),a=z(""),l=z(null),c=z(null),u=z(null);async function d(){g(r,!0),g(s,null);try{const P=await fetch("/api/admin/keys",{credentials:"include"});if(!P.ok)throw new Error("Failed to fetch keys");g(n,await P.json(),!0)}catch(P){g(s,P instanceof Error?P.message:"Failed to load keys",!0)}finally{g(r,!1)}}async function f(){g(l,null);try{const P=await fetch("/api/admin/keys",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({label:o(a)})});if(!P.ok){const q=await P.json().catch(()=>({}));g(l,q.error||"Failed to create key",!0);return}const L=await P.json();g(c,{id:L.id,key:L.key},!0),g(a,""),g(i,!1),await d()}catch{g(l,"Network error")}}async function h(P){g(u,null);try{await fetch(`/api/admin/keys/${P}`,{method:"DELETE",credentials:"include"}),o(c)?.id===P&&g(c,null),await d()}catch{}}function _(P){return new Date(P).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}d();var S=E0(),y=p(S),x=E(p(y),2),k=p(x,!0);v(x),v(y);var w=E(y,2);{var b=P=>{var L=p0(),q=E(p(L),2),N=p(q,!0);v(q);var B=E(q,2);v(L),$(()=>j(N,o(c).key)),U("click",B,()=>{g(c,null)}),I(P,L)};V(w,P=>{o(c)&&P(b)})}var A=E(w,2);{var D=P=>{var L=g0(),q=p(L);Se(q);var N=E(q,2),B=E(N,2);{var G=X=>{var Q=m0(),J=p(Q,!0);v(Q),$(()=>j(J,o(l))),I(X,Q)};V(B,X=>{o(l)&&X(G)})}v(L),$(X=>N.disabled=X,[()=>!o(a).trim()]),Je("submit",L,X=>{X.preventDefault(),f()}),Me(q,()=>o(a),X=>g(a,X)),I(P,L)};V(A,P=>{o(i)&&P(D)})}var C=E(A,2);{var m=P=>{var L=_0();I(P,L)},M=P=>{var L=b0(),q=p(L,!0);v(L),$(()=>j(q,o(s))),I(P,L)},R=P=>{var L=y0();I(P,L)},O=P=>{var L=x0();ue(L,21,()=>o(n),q=>q.id,(q,N)=>{var B=S0(),G=p(B),X=p(G),Q=p(X,!0);v(X);var J=E(X,2),te=p(J);v(J),v(G);var ee=E(G,2),Z=p(ee);{var de=K=>{var ae=w0(),me=he(ae),Ke=E(me,2);U("click",me,()=>h(o(N).id)),U("click",Ke,()=>{g(u,null)}),I(K,ae)},fe=K=>{var ae=k0();U("click",ae,()=>{g(u,o(N).id,!0)}),I(K,ae)};V(Z,K=>{o(u)===o(N).id?K(de):K(fe,-1)})}v(ee),v(B),$(K=>{j(Q,o(N).label),j(te,`${o(N).id??""} · ${K??""}`)},[()=>_(o(N).createdAt)]),I(q,B)}),v(L),I(P,L)};V(C,P=>{o(r)?P(m):o(s)?P(M,1):o(n).length===0?P(R,2):P(O,-1)})}v(S),$(()=>j(k,o(i)?"Cancel":"New key")),U("click",x,()=>{g(i,!o(i))}),I(e,S),ie()}pe(["click"]);const A0={manifest:{id:"sh3-admin",label:"Admin",version:kn,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(i,a){const l=ze(s0,{target:i});return{unmount(){Ue(l)}}}},n={mount(i,a){const l=ze(c0,{target:i});return{unmount(){Ue(l)}}}},r={mount(i,a){const l=ze(h0,{target:i});return{unmount(){Ue(l)}}}},s={mount(i,a){const l=ze(I0,{target:i});return{unmount(){Ue(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)}},C0={manifest:{id:"sh3-admin-app",label:"Admin",version:kn,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"}]}},Sl="sh3:migrations:shell-rename:done",xl="__shell__:",T0="__sh3core__:",El="sh3:user:__shell__:theme",Il="sh3:user:__sh3core__:theme";function R0(e,t){if(t.getItem(Sl))return;const n=t.getItem(El);n!==null&&t.getItem(Il)===null&&(t.setItem(Il,n),t.removeItem(El));for(const r of e.keys()){if(!r.startsWith(xl))continue;const s=T0+r.slice(xl.length),i=e.read(r);e.write(s,i),e.delete(r)}t.setItem(Sl,"1")}function P0(e){ro(e)}function D0(){const e=Ft.workspace;return{keys:()=>e.list(),read:t=>e.read(t),write:(t,n)=>e.write(t,n),delete:t=>e.delete(t)}}async function M0(e){typeof globalThis.localStorage<"u"&&R0(D0(),globalThis.localStorage);const t=new Set(e?.excludeShards),n=[vw,Xk,W1,A0];for(const i of n)t.has(i.manifest.id)||ro(i);const r=[Y1,C0];for(const i of r)so(i);await o1();for(const[i,a]of Jt)a.autostart&&(_b(i),await yd(i));const s=wy();s&&gn.has(s)&&await or(s)}var O0=T('<button type="button" aria-label="Expand pane"><span class="collapse-icon"> </span></button>'),L0=T('<button type="button" aria-label="Collapse pane"><span class="collapse-icon"> </span></button>'),j0=T('<!> <div class="pane-content svelte-1adl4o1"><!></div>',1),N0=T('<div role="separator"></div>'),z0=T("<div><!></div> <!>",1),$0=T("<div></div>");function q0(e,t){se(t,!0);const n=40,r=28;let s;const i=k=>t.pinned?.[k]??"fr",a=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 w=k>0?!l(k-1):!1,b=k<t.count-1?!l(k+1):!1;return w||b}function d(k){return a(k)?`0 0 ${r}px`:i(k)==="px"?`0 0 ${Math.max(n,t.sizes[k])}px`:`${Math.max(1e-4,t.sizes[k])} 1 0`}let f=z(null);function h(k,w){if(a(w)||a(w+1)||c(w))return;k.preventDefault(),k.target.setPointerCapture(k.pointerId);const b=s.getBoundingClientRect(),A=t.direction==="horizontal"?b.width:b.height;let D=0,C=0;for(let m=0;m<t.sizes.length;m++)i(m)==="fr"?D+=t.sizes[m]:C+=Math.max(n,t.sizes[m]);g(f,{handleIndex:w,startClient:t.direction==="horizontal"?k.clientX:k.clientY,startSizes:t.sizes.slice(),containerPx:A,totalFr:D,frAvailPx:Math.max(1,A-C)},!0)}function _(k){if(!o(f))return;const b=(t.direction==="horizontal"?k.clientX:k.clientY)-o(f).startClient,A=o(f).handleIndex,D=A+1,C=i(A),m=i(D),M=o(f).totalFr/o(f).frAvailPx;if(C==="fr"&&m==="fr"){const R=n*M,O=b*M,P=o(f).startSizes[D]-R,L=-(o(f).startSizes[A]-R),q=Math.min(Math.max(O,L),P);t.onResize?.(A,o(f).startSizes[A]+q),t.onResize?.(D,o(f).startSizes[D]-q)}else if(C==="px"&&m==="fr"){const R=o(f).frAvailPx-n,O=n-o(f).startSizes[A];t.onResize?.(A,o(f).startSizes[A]+Math.min(Math.max(b,O),R))}else if(C==="fr"&&m==="px"){const R=o(f).startSizes[D]-n,O=-(o(f).frAvailPx-n);t.onResize?.(D,o(f).startSizes[D]-Math.min(Math.max(b,O),R))}else{const R=o(f).startSizes[D]-n,O=-(o(f).startSizes[A]-n),P=Math.min(Math.max(b,O),R);t.onResize?.(A,o(f).startSizes[A]+P),t.onResize?.(D,o(f).startSizes[D]-P)}}function S(k){o(f)&&(k.target.releasePointerCapture(k.pointerId),g(f,null))}var y=$0();let x;ue(y,21,()=>Array(t.count),$n,(k,w,b)=>{var A=z0(),D=he(A);let C;var m=p(D);{var M=q=>{var N=O0();let B;var G=p(N),X=p(G,!0);v(G),v(N),$(()=>{B=ye(N,1,"collapse-header svelte-1adl4o1",null,B,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),j(X,t.direction==="horizontal"?"▸":"▾")}),U("click",N,()=>t.onCollapseToggle?.(b,!1)),I(q,N)},R=Y(()=>a(b)),O=q=>{var N=j0(),B=he(N);{var G=te=>{var ee=L0();let Z;_e(ee,"data-testid",`collapse-toggle-${b}`);var de=p(ee),fe=p(de,!0);v(de),v(ee),$(()=>{Z=ye(ee,1,"collapse-header expanded svelte-1adl4o1",null,Z,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),j(fe,t.direction==="horizontal"?"◂":"▴")}),U("click",ee,()=>t.onCollapseToggle?.(b,!0)),I(te,ee)},X=Y(()=>t.onCollapseToggle&&u(b));V(B,te=>{o(X)&&te(G)})}var Q=E(B,2),J=p(Q);Ys(J,()=>t.pane,()=>b),v(Q),I(q,N)};V(m,q=>{o(R)?q(M):q(O,-1)})}v(D);var P=E(D,2);{var L=q=>{var N=N0();let B;_e(N,"data-testid",`splitter-handle-${b}`),$(G=>{B=ye(N,1,"splitter-handle svelte-1adl4o1",null,B,G),_e(N,"aria-orientation",t.direction==="horizontal"?"vertical":"horizontal")},[()=>({dragging:o(f)?.handleIndex===b,disabled:a(b)||a(b+1),frozen:c(b)})]),U("pointerdown",N,G=>h(G,b)),U("pointermove",N,_),U("pointerup",N,S),Je("pointercancel",N,S),U("dblclick",N,()=>{c(b)||!u(b)&&!a(b)||t.onCollapseToggle?.(b,!a(b))}),I(q,N)};V(P,q=>{b<t.count-1&&q(L)})}$((q,N)=>{C=ye(D,1,"splitter-pane svelte-1adl4o1",null,C,q),Qt(D,`flex: ${N??""};`)},[()=>({collapsed:a(b)}),()=>d(b)]),I(k,A)}),v(y),dt(y,k=>s=k,()=>s),$(()=>x=ye(y,1,"splitter svelte-1adl4o1",null,x,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"})),I(e,y),ie()}pe(["click","pointerdown","pointermove","pointerup","dblclick"]);function B0(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 i=Math.max(0,Math.min(e,s.length));let a;return i===s.length?a=s[s.length-1].getBoundingClientRect().right:a=s[i].getBoundingClientRect().left,{left:a-r.left-1,top:2,height:r.height-4}}var V0=T('<span class="tab-dirty svelte-1kxcyhf" title="Unsaved changes"></span>'),F0=T('<span class="tab-icon svelte-1kxcyhf"> </span>'),U0=T('<span class="tab-close svelte-1kxcyhf" role="button" tabindex="-1" title="Close">&#x2715;</span>'),H0=T('<button type="button" role="tab"><!> <!> <span class="tab-label svelte-1kxcyhf"> </span> <!></button>'),K0=T('<div class="drop-indicator svelte-1kxcyhf"></div>'),W0=T("<div><!></div>"),Y0=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 G0(e,t){se(t,!0);function n(x){t.clickGuard?.()||t.onActiveChange?.(x)}function r(x,k){k.stopPropagation(),t.onClose?.(x)}let s=z(void 0);const i=ce([]);let a=z(null);function l(x,k){if(!t.dragController)return;const w=i[x];w&&t.dragController.onPointerDown(x,k,w)}function c(x){if(!t.dragController||!t.dragController.isDragging||!o(s))return;const k=o(s).getBoundingClientRect(),w=i.filter(b=>!!b).map(b=>b.getBoundingClientRect());g(a,t.dragController.onStripHover(k,x.clientX,x.clientY,w),!0)}function u(){t.dragController&&(g(a,null),t.dragController.onStripLeave())}var d=Y0(),f=p(d),h=p(f);ue(h,17,()=>t.labels,$n,(x,k,w)=>{var b=H0();let A;var D=p(b);{var C=q=>{var N=V0();I(q,N)};V(D,q=>{t.dirty?.[w]&&q(C)})}var m=E(D,2);{var M=q=>{var N=F0(),B=p(N,!0);v(N),$(()=>j(B,t.icons[w])),I(q,N)};V(m,q=>{t.icons?.[w]&&q(M)})}var R=E(m,2),O=p(R,!0);v(R);var P=E(R,2);{var L=q=>{var N=U0();$(()=>_e(N,"data-testid",t.tabIds?.[w]?`tab-close-${t.tabIds[w]}`:void 0)),U("click",N,B=>r(w,B)),U("keydown",N,B=>{(B.key==="Enter"||B.key===" ")&&r(w,B)}),I(q,N)};V(P,q=>{t.closable?.[w]&&q(L)})}v(b),dt(b,(q,N)=>i[N]=q,q=>i?.[q],()=>[w]),$(()=>{A=ye(b,1,"tab svelte-1kxcyhf",null,A,{active:t.activeTab===w}),_e(b,"aria-selected",t.activeTab===w),j(O,o(k))}),U("click",b,()=>n(w)),U("pointerdown",b,q=>l(w,q)),Je("auxclick",b,q=>{q.button===1&&t.closable?.[w]&&r(w,q)}),I(x,b)});var _=E(h,2);{var S=x=>{const k=Y(()=>B0(o(a),i,o(s)));var w=at(),b=he(w);{var A=D=>{var C=K0();$(()=>Qt(C,`left: ${o(k).left??""}px; height: ${o(k).height??""}px; top: ${o(k).top??""}px;`)),I(D,C)};V(b,D=>{o(k)&&D(A)})}I(x,w)};V(_,x=>{o(a)!==null&&t.dragController?.isDragging&&x(S)})}v(f),dt(f,x=>g(s,x),()=>o(s));var y=E(f,2);ue(y,21,()=>t.labels,$n,(x,k,w)=>{var b=W0();let A;var D=p(b);Ys(D,()=>t.body,()=>w),v(b),$(()=>A=ye(b,1,"tab-body-pane svelte-1kxcyhf",null,A,{active:t.activeTab===w})),I(x,b)}),v(y),v(d),U("pointermove",f,c),Je("pointerleave",f,u),I(e,d),ie()}pe(["pointermove","click","pointerdown","keydown"]);var X0=T('no factory for <code class="svelte-1czj0s8"> </code>',1),J0=T("<em>empty slot</em>"),Z0=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>'),Q0=T('<div class="slot svelte-1czj0s8"><!></div>');function Al(e,t){se(t,!0);let n=ct(t,"label",3,""),r=z(void 0),s=z(0),i=z(0);const a=Y(()=>t.node.viewId?!!zu(t.node.viewId):!1);Te(()=>{if(!o(r))return;const d=t.node.slotId,f=Bu(d,t.node.viewId,n()||t.node.viewId||d);o(r).appendChild(f);const h=new ResizeObserver(_=>{for(const S of _){const y=S.contentRect;g(s,Math.round(y.width),!0),g(i,Math.round(y.height),!0)}});return h.observe(o(r)),()=>{h.disconnect(),Vu(d)}});var l=Q0(),c=p(l);{var u=d=>{var f=Z0(),h=p(f),_=p(h,!0);v(h);var S=E(h,2),y=p(S);{var x=A=>{var D=X0(),C=E(he(D)),m=p(C,!0);v(C),$(()=>j(m,t.node.viewId)),I(A,D)},k=A=>{var D=J0();I(A,D)};V(y,A=>{t.node.viewId?A(x):A(k,-1)})}v(S);var w=E(S,2),b=p(w);v(w),v(f),$(()=>{j(_,t.node.slotId),j(b,`${o(s)??""} × ${o(i)??""}`)}),I(d,f)};V(c,d=>{o(a)||d(u)})}v(l),dt(l,d=>g(r,d),()=>o(r)),$(()=>{_e(l,"data-slot-id",t.node.slotId),_e(l,"data-view-id",t.node.viewId??"")}),I(e,l),ie()}const ve=ce({phase:"idle",source:null,pointerX:0,pointerY:0,target:null});let Wd=0;function eS(){return performance.now()<Wd}const Cl=4;let Yd=0,Gd=0;function tS(e,t,n,r,s){if(ve.phase!=="idle")return;const i=s.getBoundingClientRect();ve.phase="pending",ve.source={slotId:e,entry:t,sourceRoot:n,startRect:i,offsetX:r.clientX-i.left,offsetY:r.clientY-i.top},ve.pointerX=r.clientX,ve.pointerY=r.clientY,ve.target=null,Yd=r.clientX,Gd=r.clientY,nS()}function nS(){window.addEventListener("pointermove",Xd,!0),window.addEventListener("pointerup",Jd,!0),window.addEventListener("pointercancel",Zd,!0),document.body.style.userSelect="none",document.body.dataset.dragging=""}function rS(){window.removeEventListener("pointermove",Xd,!0),window.removeEventListener("pointerup",Jd,!0),window.removeEventListener("pointercancel",Zd,!0),document.body.style.userSelect="",delete document.body.dataset.dragging}function Xd(e){if(ve.pointerX=e.clientX,ve.pointerY=e.clientY,ve.phase==="pending"){const t=e.clientX-Yd,n=e.clientY-Gd;t*t+n*n>=Cl*Cl&&(ve.phase="dragging")}}function Jd(e){ve.phase==="dragging"&&(sS(),Wd=performance.now()+50),Qd()}function Zd(e){Qd()}function Tl(e){const t=mn.tree;if(e.kind==="docked")return t.docked;const n=t.floats.find(r=>r.id===e.floatId);return n?n.content:null}function Rl(e){if(e.kind!=="float")return;const t=mn.tree,n=t.floats.findIndex(r=>r.id===e.floatId);n<0||xu(t.floats[n].content)&&t.floats.splice(n,1)}function sS(){const{source:e,target:t}=ve;if(!e||!t)return;const n=Tl(e.sourceRoot),r=Tl(t.root);if(!n||!r)return;if(t.kind==="strip"){const i=t.tabsNode.tabs.findIndex(a=>a.slotId===e.slotId);if(i>=0){Z_(t.tabsNode,i,t.insertIndex),Jn(n),r!==n&&Jn(r),Rl(e.sourceRoot);return}}const s=ni(n,e.slotId);s&&(t.kind==="strip"?J_(t.tabsNode,s,t.insertIndex):$u(r,t.path,s,t.side),Jn(n),r!==n&&Jn(r),Rl(e.sourceRoot))}function Qd(){ve.phase="idle",ve.source=null,ve.target=null,rS()}function ha(e){ve.phase==="dragging"&&(ve.target=e)}function Rr(e){ve.phase==="dragging"&&ve.target&&(e&&!e(ve.target)||(ve.target=null))}var iS=T("<div></div>"),aS=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),oS=T("<div><!> <!></div>");function Pl(e,t){se(t,!0);let n=z(void 0),r=z(null);const s=Y(()=>ve.phase==="dragging");function i(S,y,x){const k=x.left+x.width/2,w=x.top+x.height/2,b=S-k,A=y-w,D=b/x.width,C=A/x.height;return Math.abs(D)>Math.abs(C)?D<0?"left":"right":C<0?"top":"bottom"}function a(S){if(!o(n))return;const y=o(n).getBoundingClientRect();if(S.clientX<y.left||S.clientX>y.right||S.clientY<y.top||S.clientY>y.bottom){o(r)!==null&&(g(r,null),Rr(k=>k.kind==="split"&&k.path.join("/")===t.path.join("/")));return}const x=i(S.clientX,S.clientY,y);if(x!==o(r)){g(r,x,!0);const k={kind:"split",root:t.rootRef,path:[...t.path],side:x};ha(k)}}function l(){o(r)!==null&&(g(r,null),Rr(S=>S.kind==="split"&&S.path.join("/")===t.path.join("/")))}var c=oS();let u;var d=p(c);{var f=S=>{var y=iS();$(()=>ye(y,1,`quad-highlight quad-${o(r)??""}`,"svelte-re71zu")),I(S,y)};V(d,S=>{o(r)&&S(f)})}var h=E(d,2);{var _=S=>{var y=aS();nn(6),I(S,y)};V(h,S=>{o(s)&&S(_)})}v(c),dt(c,S=>g(n,S),()=>o(n)),$(()=>u=ye(c,1,"slot-drop-zone svelte-re71zu",null,u,{active:o(s)})),U("pointermove",c,a),Je("pointerleave",c,l),I(e,c),ie()}pe(["pointermove"]);var lS=T('<div class="tab-slot-wrapper svelte-1gw9g38"><!> <!></div>'),cS=T('<div class="empty-tabs-custom svelte-1gw9g38"></div>'),uS=T('<div class="empty-tabs-default svelte-1gw9g38"><div class="empty-tabs-drop svelte-1gw9g38"></div></div>'),dS=T('<div class="empty-tabs-placeholder svelte-1gw9g38"><!></div>'),fS=T('<div class="leaf-slot-wrapper svelte-1gw9g38"><!> <!></div>');function yo(e,t){se(t,!0);let n=ct(t,"path",19,()=>[]),r=ct(t,"rootRef",19,()=>({kind:"docked"}));const s=Y(()=>{let w;return r().kind==="docked"?w=mn.root:w=mn.tree.floats.find(A=>A.id===r().floatId)?.content??null,w?Ds(w,n()):null});function i(w){return{get isDragging(){return ve.phase==="dragging"},onPointerDown(b,A,D){const C=w.tabs[b];C&&tS(C.slotId,C,r(),A,D)},onStripHover(b,A,D,C){if(D<b.top||D>b.bottom)return Rr(R=>R.kind==="strip"&&R.tabsNode===w),null;let m=C.length;for(let R=0;R<C.length;R++){const O=C[R],P=O.left+O.width/2;if(A<P){m=R;break}}const M=ve.source;if(M){const R=w.tabs.findIndex(O=>O.slotId===M.slotId);R>=0&&R<m&&(m-=1)}return ha({kind:"strip",root:r(),tabsNode:w,insertIndex:m}),m},onStripLeave(){Rr(b=>b.kind==="strip"&&b.tabsNode===w)}}}function a(w){return w.type==="split"?w:null}function l(w){return w.type==="tabs"?w:null}function c(w){return w.type==="slot"?w:null}function u(w){return w.map(b=>rb(b.slotId)||void 0)}function d(w){return w.map(b=>nb(b.slotId)||void 0)}function f(w,b){const A=w[b];A&&oo(A.slotId)}function h(w,b){b(w)}function _(w,b){ve.phase==="dragging"&&ha({kind:"strip",root:r(),tabsNode:b,insertIndex:0})}function S(){Rr(w=>w.kind==="strip"&&w.insertIndex===0)}var y=at(),x=he(y);{var k=w=>{var b=at(),A=he(b);{var D=M=>{const R=(P,L=mt)=>{{let q=Y(()=>[...n(),L()]);yo(P,{get rootRef(){return r()},get path(){return o(q)}})}},O=Y(()=>a(o(s)));q0(M,{get direction(){return o(O).direction},get sizes(){return o(O).sizes},get pinned(){return o(O).pinned},get collapsed(){return o(O).collapsed},get fixed(){return o(O).fixed},get count(){return o(O).children.length},get pane(){return R},onResize:(P,L)=>o(O).sizes[P]=L,onCollapseToggle:(P,L)=>{o(O).collapsed||(o(O).collapsed=o(O).children.map(()=>!1)),o(O).collapsed[P]=L}})},C=M=>{const R=Y(()=>l(o(s)));var O=at(),P=he(O);{var L=N=>{const B=(X,Q=mt)=>{const J=Y(()=>o(R)?.tabs[Q()]);var te=at(),ee=he(te);{var Z=de=>{var fe=lS(),K=p(fe);{let me=Y(()=>({type:"slot",slotId:o(J).slotId,viewId:o(J).viewId}));Al(K,{get node(){return o(me)},get label(){return o(J).label}})}var ae=E(K,2);Pl(ae,{get rootRef(){return r()},get path(){return n()}}),v(fe),I(de,fe)};V(ee,de=>{o(J)&&de(Z)})}I(X,te)},G=Y(()=>i(o(R)));{let X=Y(()=>o(R).tabs.map(Z=>Z.label)),Q=Y(()=>o(R).tabs.map(Z=>Z.icon)),J=Y(()=>u(o(R).tabs)),te=Y(()=>d(o(R).tabs)),ee=Y(()=>o(R).tabs.map(Z=>Z.slotId));G0(N,{get labels(){return o(X)},get icons(){return o(Q)},get activeTab(){return o(R).activeTab},onActiveChange:Z=>o(R).activeTab=Z,get body(){return B},get dragController(){return o(G)},get clickGuard(){return eS},get closable(){return o(J)},get dirty(){return o(te)},onClose:Z=>f(o(R).tabs,Z),get tabIds(){return o(ee)}})}},q=N=>{var B=dS(),G=p(B);{var X=J=>{var te=cS();iu(te,(ee,Z)=>h?.(ee,Z),()=>o(R).emptyRenderer),I(J,te)},Q=J=>{var te=uS(),ee=p(te);v(te),U("pointermove",ee,Z=>_(Z,o(R))),Je("pointerleave",ee,S),I(J,te)};V(G,J=>{o(R).emptyRenderer?J(X):J(Q,-1)})}v(B),I(N,B)};V(P,N=>{o(R)&&o(R).tabs.length>0?N(L):o(R)?.persistent&&N(q,1)})}I(M,O)},m=M=>{const R=Y(()=>c(o(s)));var O=fS(),P=p(O);Al(P,{get node(){return o(R)}});var L=E(P,2);Pl(L,{get rootRef(){return r()},get path(){return n()}}),v(O),I(M,O)};V(A,M=>{o(s).type==="split"?M(D):o(s).type==="tabs"?M(C,1):M(m,-1)})}I(w,b)};V(x,w=>{o(s)&&w(k)})}I(e,y),ie()}pe(["pointermove"]);var vS=T('<span class="drag-preview-icon svelte-133fiip"> </span>'),hS=T('<div class="drag-preview svelte-133fiip"><!> <span class="drag-preview-label svelte-133fiip"> </span></div>');function pS(e,t){se(t,!0);const n=Y(()=>ve.phase==="dragging"&&!!ve.source),r=Y(()=>ve.source?ve.pointerX-ve.source.offsetX:0),s=Y(()=>ve.source?ve.pointerY-ve.source.offsetY:0),i=Y(()=>ve.source?.startRect.width??0),a=Y(()=>ve.source?.startRect.height??0),l=Y(()=>ve.source?.entry.label??""),c=Y(()=>ve.source?.entry.icon);var u=at(),d=he(u);{var f=h=>{var _=hS(),S=p(_);{var y=w=>{var b=vS(),A=p(b,!0);v(b),$(()=>j(A,o(c))),I(w,b)};V(S,w=>{o(c)&&w(y)})}var x=E(S,2),k=p(x,!0);v(x),v(_),$(()=>{Qt(_,`left: ${o(r)??""}px; top: ${o(s)??""}px; width: ${o(i)??""}px; height: ${o(a)??""}px;`),j(k,o(l))}),I(h,_)};V(d,h=>{o(n)&&h(f)})}I(e,u),ie()}const er=new Map;let Ls=!1;function ef(e){if(er.size===0)return;const t=e.target;if(!t)return;const n=Array.from(er.keys());for(const r of n){const s=er.get(r);s&&(s.contains(t)||Pt.close(r))}}function mS(){Ls||typeof document>"u"||(document.addEventListener("pointerdown",ef,!0),Ls=!0)}function gS(){Ls&&(er.size>0||(document.removeEventListener("pointerdown",ef,!0),Ls=!1))}function _S(e,t){er.set(e,t),mS()}function bS(e){er.delete(e),gS()}var yS=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>'),wS=T('<div class="sh3-float-frame svelte-1p734al" role="dialog" tabindex="-1"><!> <div class="sh3-float-body svelte-1p734al"><!></div></div>');function kS(e,t){se(t,!0);const n=ct(t,"entry",7);let r=z(!1),s={x:0,y:0},i=z(void 0);Te(()=>{if(n().dismissable&&o(i))return _S(n().id,o(i)),()=>bS(n().id)});function a(k){if(k.button!==0||k.target.closest(".sh3-float-close"))return;k.currentTarget.setPointerCapture(k.pointerId),g(r,!0),s={x:k.clientX-n().position.x,y:k.clientY-n().position.y},Pt.focus(n().id)}function l(k){o(r)&&(n().position.x=k.clientX-s.x,n().position.y=k.clientY-s.y)}function c(k){if(!o(r))return;g(r,!1);const w=k.currentTarget;w.hasPointerCapture(k.pointerId)&&w.releasePointerCapture(k.pointerId)}function u(){Pt.focus(n().id)}function d(k){k.stopPropagation(),Pt.close(n().id)}var f=wS();let h;var _=p(f);{var S=k=>{var w=yS(),b=p(w),A=p(b,!0);v(b);var D=E(b,2);v(w),$(()=>j(A,n().title)),U("pointerdown",w,a),U("pointermove",w,l),U("pointerup",w,c),Je("pointercancel",w,c),U("click",D,d),I(k,w)};V(_,k=>{n().title&&k(S)})}var y=E(_,2),x=p(y);{let k=Y(()=>({kind:"float",floatId:n().id}));yo(x,{get rootRef(){return o(k)},path:[]})}v(y),v(f),dt(f,k=>g(i,k),()=>o(i)),$(()=>{_e(f,"aria-label",n().title??"Float panel"),h=Qt(f,"",h,{left:`${n().position.x??""}px`,top:`${n().position.y??""}px`,width:`${n().size.w??""}px`,height:`${n().size.h??""}px`})}),U("click",f,u),I(e,f),ie()}pe(["click","pointerdown","pointermove","pointerup"]);var SS=T('<div class="sh3-float-layer svelte-1rzcset"></div>');function xS(e,t){se(t,!0);const n=Y(()=>mn.floats);var r=SS();ue(r,21,()=>o(n),s=>s.id,(s,i)=>{kS(s,{get entry(){return o(i)}})}),v(r),I(e,r),ie()}var ES=T('<div class="guest-signin-error svelte-pymkh"> </div>'),IS=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>'),AS=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),CS=T('<div class="guest-banner-slot"><!></div>');function TS(e,t){se(t,!0);let n=z(!1),r=z(""),s=z(""),i=z(null),a=z(!1);async function l(){if(!o(r).trim()||!o(s).trim()||o(a))return;g(a,!0),g(i,null);const h=await od(o(r).trim(),o(s).trim());g(a,!1),h.ok?g(n,!1):g(i,h.error,!0)}var c=CS(),u=p(c);{var d=h=>{var _=AS(),S=he(_),y=E(p(S),2);v(S);var x=E(S,2);{var k=w=>{var b=IS(),A=p(b),D=p(A),C=p(D);Se(C);var m=E(C,2);Se(m);var M=E(m,2),R=p(M),O=p(R,!0);v(R);var P=E(R,2);v(M),v(D);var L=E(D,2);{var q=N=>{var B=ES(),G=p(B,!0);v(B),$(()=>j(G,o(i))),I(N,B)};V(L,N=>{o(i)&&N(q)})}v(A),v(b),$(N=>{C.disabled=o(a),m.disabled=o(a),R.disabled=N,j(O,o(a)?"Signing in...":"Sign in")},[()=>o(a)||!o(r).trim()||!o(s).trim()]),Je("submit",D,N=>{N.preventDefault(),l()}),Me(C,()=>o(r),N=>g(r,N)),Me(m,()=>o(s),N=>g(s,N)),U("click",P,()=>{g(n,!1),g(i,null)}),I(w,b)};V(x,w=>{o(n)&&w(k)})}U("click",y,()=>{g(n,!0)}),I(h,_)},f=Y(()=>ld());V(u,h=>{o(f)&&h(d)})}v(c),I(e,c),ie()}pe(["click"]);var RS=T('<code class="sh3-consent-scope svelte-14me5sj"> </code>'),PS=T('<dt class="svelte-14me5sj">Peer</dt> <dd class="svelte-14me5sj"> </dd>',1),DS=T('<dt class="svelte-14me5sj">Expires in</dt> <dd class="svelte-14me5sj"> </dd>',1),MS=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 OS(e,t){se(t,!0);let n=z(null);Te(()=>_d(u=>{g(n,u,!0)}));function r(){o(n)&&(ua(o(n).requestId,!0),g(n,null))}function s(){o(n)&&(ua(o(n).requestId,!1),g(n,null))}var i=at(),a=he(i);{var l=c=>{var u=MS(),d=p(u),f=p(d),h=p(f),_=p(h,!0);v(h),nn(),v(f);var S=E(f,2),y=E(p(S),2),x=p(y,!0);v(y);var k=E(y,4);ue(k,20,()=>o(n).scopes,R=>R,(R,O)=>{var P=RS(),L=p(P,!0);v(P),$(()=>j(L,O)),I(R,P)}),v(k);var w=E(k,2);{var b=R=>{var O=PS(),P=E(he(O),2),L=p(P);v(P),$(()=>j(L,`${o(n).peerRole??"—"??""}${o(n).peerId?` · ${o(n).peerId}`:""}`)),I(R,O)};V(w,R=>{(o(n).peerRole||o(n).peerId)&&R(b)})}var A=E(w,2);{var D=R=>{var O=DS(),P=E(he(O),2),L=p(P);v(P),$(q=>j(L,`${q??""}s`),[()=>Math.round(o(n).expiresIn/1e3)]),I(R,O)};V(A,R=>{o(n).expiresIn&&R(D)})}v(S);var C=E(S,2),m=p(C);dr(m,!0);var M=E(m,2);v(C),v(d),v(u),$(()=>{j(_,o(n).shardId),j(x,o(n).label)}),U("click",m,s),U("click",M,r),I(c,u)};V(a,c=>{o(n)&&c(l)})}I(e,i),ie()}pe(["click"]);var LS=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>'),jS=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>'),NS=T('<div class="shell-overlay-root svelte-187fra4"><!></div>'),zS=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> <span class="shell-tabbar-brand svelte-187fra4">SH3</span> <!></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 $S(e,t){se(t,!0);const n=Y(la),r=Y(ci),s=Y(ln),i=Y(()=>Yu()==="home"),a=[{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=ce({});Te(()=>{for(const{name:A}of a){const D=l[A];D&&sg(A,D)}return()=>{for(const{name:A}of a)ig(A)}}),Te(()=>{const A=mn.tree;return Cg(A.floats,()=>({w:window.innerWidth,h:window.innerHeight})),()=>Tg()}),Te(()=>{mn.tree,gb()}),Te(()=>la()?_y():void 0);var c=zS(),u=p(c),d=p(u),f=p(d),h=p(f);v(f),v(d);var _=E(d,4);{var S=A=>{var D=jS(),C=p(D),m=p(C,!0);v(C);var M=E(C,2),R=p(M,!0);v(M);var O=E(M,2);{var P=q=>{var N=LS(),B=p(N),G=p(B);v(B),v(N),$(()=>_e(G,"href",`${fa}#log-out`)),U("click",N,()=>ry()),I(q,N)},L=Y(()=>!iy());V(O,q=>{o(L)&&q(P)})}v(D),$(()=>{j(m,o(r).displayName),j(R,o(s)?"admin":"user")}),I(A,D)};V(_,A=>{o(n)&&o(r)&&A(S)})}v(u);var y=E(u,2);TS(y,{});var x=E(y,2),k=p(x);yo(k,{}),v(x);var w=E(x,4);ue(w,21,()=>a,({layer:A,name:D})=>A,(A,D)=>{let C=()=>o(D).layer,m=()=>o(D).name;var M=NS(),R=p(M);{var O=L=>{xS(L,{})},P=L=>{pS(L,{})};V(R,L=>{m()==="floating"?L(O):m()==="drag-preview"&&L(P,1)})}v(M),dt(M,(L,q)=>l[q]=L,L=>l?.[L],()=>[m()]),$(()=>{_e(M,"data-shell-overlay",m()),_e(M,"data-shell-layer",C()),Qt(M,`z-index: var(--shell-z-layer-${C()??""});`)}),I(A,M)}),v(w);var b=E(w,2);OS(b,{}),v(c),$(()=>{d.disabled=o(i),_e(h,"href",`${fa}#house`)}),U("click",d,()=>xd()),I(e,c),ie()}pe(["click"]);async function qS(){try{const{TauriStoreBackend:e}=await Ed(async()=>{const{TauriStoreBackend:r}=await import("./tauri-backend-B3LR3-lo.js");return{TauriStoreBackend:r}},[]),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:Nl}}}var BS=T('<button type="button" class="signin-link svelte-lh4k15">Create an account</button>'),VS=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),FS=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),US=T('<div class="signin-error svelte-lh4k15"> </div>'),HS=T('<div class="signin-wall svelte-lh4k15"><div class="signin-card svelte-lh4k15"><h1 class="signin-brand svelte-lh4k15">SH3</h1> <!> <!></div></div>');function KS(e,t){se(t,!0);let n=z("login"),r=z(""),s=z(""),i=z(""),a=z(null),l=z(!1);async function c(){if(!o(r).trim()||!o(s).trim()||o(l))return;g(l,!0),g(a,null);const w=await od(o(r).trim(),o(s).trim());g(l,!1),w.ok?t.onSuccess():g(a,w.error,!0)}async function u(){if(!o(r).trim()||!o(s).trim()||o(l))return;g(l,!0),g(a,null);const w=await ny(o(r).trim(),o(s).trim(),o(i).trim()||void 0);g(l,!1),w.ok?t.onSuccess():g(a,w.error,!0)}function d(w){g(n,w,!0),g(a,null)}var f=HS(),h=p(f),_=E(p(h),2);{var S=w=>{var b=VS(),A=he(b),D=p(A);Se(D);var C=E(D,2);Se(C);var m=E(C,2),M=p(m,!0);v(m),v(A);var R=E(A,2);{var O=P=>{var L=BS();U("click",L,()=>d("register")),I(P,L)};V(R,P=>{t.selfRegistration&&P(O)})}$(P=>{D.disabled=o(l),C.disabled=o(l),m.disabled=P,j(M,o(l)?"Signing in...":"Sign in")},[()=>o(l)||!o(r).trim()||!o(s).trim()]),Je("submit",A,P=>{P.preventDefault(),c()}),Me(D,()=>o(r),P=>g(r,P)),Me(C,()=>o(s),P=>g(s,P)),I(w,b)},y=w=>{var b=FS(),A=he(b),D=p(A);Se(D);var C=E(D,2);Se(C);var m=E(C,2);Se(m);var M=E(m,2),R=p(M,!0);v(M),v(A);var O=E(A,2);$(P=>{D.disabled=o(l),C.disabled=o(l),m.disabled=o(l),M.disabled=P,j(R,o(l)?"Creating...":"Create account")},[()=>o(l)||!o(r).trim()||!o(s).trim()]),Je("submit",A,P=>{P.preventDefault(),u()}),Me(D,()=>o(r),P=>g(r,P)),Me(C,()=>o(i),P=>g(i,P)),Me(m,()=>o(s),P=>g(s,P)),U("click",O,()=>d("login")),I(w,b)};V(_,w=>{o(n)==="login"?w(S):w(y,-1)})}var x=E(_,2);{var k=w=>{var b=US(),A=p(b,!0);v(b),$(()=>j(A,o(a))),I(w,b)};V(x,w=>{o(a)&&w(k)})}v(h),v(f),I(e,f),ie()}pe(["click"]);async function WS(e){const t=e?.serverUrl??"",n=await qS();n.backends&&(Qo("workspace",n.backends.workspace),Qo("user",n.backends.user)),n.localOwner&&sy(),cd(t),zy();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 a=await fetch(`${t}/api/boot`,{credentials:"include"});a.ok&&(s=await a.json())}catch{}if(n.localOwner)Oi("local");else if(s){ml(t,s),Oi(s.tenantId);const{auth:a,session:l}=s;if(!l&&a.required&&!a.guestAllowed){await YS(r,s);const c=await fetch(`${t}/api/boot`,{credentials:"include"});c.ok&&(s=await c.json(),ml(t,s),Oi(s.tenantId))}}if(e?.discoveredPackages?.length)for(const a of e.discoveredPackages)try{const l=await fetch(a.bundleUrl);if(!l.ok){console.warn(`[sh3] Failed to fetch discovered package "${a.id}": HTTP ${l.status}`);continue}const c=await l.arrayBuffer(),u=await Qr(c);mo(u,{version:a.version,sourceRegistry:a.sourceRegistry??"",contractVersion:a.contractVersion??""}),console.log(`[sh3] Loaded discovered package: ${a.id}`)}catch(l){console.warn(`[sh3] Failed to load discovered package "${a.id}":`,l)}if(e?.shards)for(const a of e.shards)P0(a);if(e?.apps)for(const a of e.apps)so(a);const i={};e?.excludeShards&&(i.excludeShards=e.excludeShards),await M0(i),sd(),ze($S,{target:r})}function YS(e,t){return new Promise(n=>{const r=ze(KS,{target:e,props:{selfRegistration:t.auth.selfRegistration,onSuccess:()=>{Ue(r),n()}}})})}const wo=window.location.origin;cd(wo);Qb(new Wb(wo));let tf=[];try{const e=await fetch("/api/packages");e.ok&&(tf=await e.json())}catch{}await WS({discoveredPackages:tf,serverUrl:wo});
18
- //# sourceMappingURL=index-ApG6yN5d.js.map