sh3-server 0.9.1 → 0.10.2
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,17 +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 a of s)if(a.type==="childList")for(const i of a.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const a={};return s.integrity&&(a.integrity=s.integrity),s.referrerPolicy&&(a.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?a.credentials="include":s.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(s){if(s.ep)return;s.ep=!0;const a=n(s);fetch(s.href,a)}})();const rd=1,sd=2,Ko=4,ad=8,id=16,od=1,Wo=4,ld=8,cd=16,ud=1,dd=2,fd=4,Va=1,Yo=2,vd=4,hd=8,ks="[",Ss="[!",Hi="[?",Es="]",xn={},Se=Symbol(),dt=Symbol("filename"),Nn=Symbol("hmr"),Go="http://www.w3.org/1999/xhtml",Ir="http://www.w3.org/2000/svg",Ua="http://www.w3.org/1998/Math/MathML",Xo="@attach",Jo=!1;var tr=Array.isArray,pd=Array.prototype.indexOf,Kn=Array.prototype.includes,xs=Array.from,as=Object.keys,Tn=Object.defineProperty,Pt=Object.getOwnPropertyDescriptor,Zo=Object.getOwnPropertyDescriptors,Qo=Object.prototype,md=Array.prototype,Ts=Object.getPrototypeOf,Ki=Object.isExtensible,gd=Object.prototype.hasOwnProperty;function jn(e){return typeof e=="function"}const ft=()=>{};function Wi(e){return typeof e?.then=="function"}function _d(e){return e()}function pa(e){for(var t=0;t<e.length;t++)e[t]()}function el(){var e,t,n=new Promise((r,s)=>{e=r,t=s});return{promise:n,resolve:e,reject:t}}function yd(e,t,n=!1){return e===void 0?n?t():t:e}function tl(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 bd(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 Ve=2,An=4,Rr=8,Ba=1<<24,Dt=16,Ot=32,en=64,ma=128,Et=512,Pe=1024,qe=2048,Mt=4096,Je=8192,at=16384,nn=32768,ga=1<<25,Nt=65536,br=1<<17,nl=1<<18,mn=1<<19,rl=1<<20,Ut=1<<25,In=65536,_a=1<<21,Wn=1<<22,dn=1<<23,Ke=Symbol("$state"),As=Symbol("legacy props"),wd=Symbol(""),kd=Symbol("proxy path"),Sd=Symbol("hmr anchor"),qt=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},On=!!globalThis.document?.contentType&&globalThis.document.contentType.includes("xml"),sl=1,Cr=3,rn=8,al=11;function il(e){throw new Error("https://svelte.dev/e/experimental_async_required")}function Ed(){throw new Error("https://svelte.dev/e/invalid_default_snippet")}function Yi(){throw new Error("https://svelte.dev/e/invalid_snippet_arguments")}function nr(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function xd(){throw new Error("https://svelte.dev/e/missing_context")}function Td(){throw new Error("https://svelte.dev/e/snippet_without_render_tag")}function Ad(e){throw new Error("https://svelte.dev/e/store_invalid_shape")}function Id(){throw new Error("https://svelte.dev/e/svelte_element_invalid_this_value")}function Rd(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Cd(e,t){throw new Error("https://svelte.dev/e/component_api_changed")}function $d(e,t){throw new Error("https://svelte.dev/e/component_api_invalid_new")}function Pd(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Dd(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Ld(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Od(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Md(){throw new Error("https://svelte.dev/e/effect_pending_outside_reaction")}function Nd(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function jd(){throw new Error("https://svelte.dev/e/fork_discarded")}function zd(){throw new Error("https://svelte.dev/e/fork_timing")}function qd(){throw new Error("https://svelte.dev/e/get_abort_signal_outside_reaction")}function Vd(){throw new Error("https://svelte.dev/e/hydration_failed")}function ol(e){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}function Ud(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Bd(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Fd(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Hd(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Kd(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}function Wd(e,t){console.warn("https://svelte.dev/e/assignment_value_stale")}function Yd(e,t){console.warn("https://svelte.dev/e/binding_property_non_reactive")}function Gd(e){console.warn("https://svelte.dev/e/console_log_state")}function Xd(){console.warn("https://svelte.dev/e/derived_inert")}function Jd(e,t){console.warn("https://svelte.dev/e/event_handler_invalid")}function Zd(e){console.warn("https://svelte.dev/e/hydratable_missing_but_expected")}function $r(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function Qd(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_binding")}function ef(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_mutation")}function tf(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function ll(e){console.warn("https://svelte.dev/e/state_proxy_equality_mismatch")}function nf(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let F=!1;function we(e){F=e}let Q;function ge(e){if(e===null)throw $r(),xn;return Q=e}function Qe(){return ge(gt(Q))}function h(e){if(F){if(gt(Q)!==null)throw $r(),xn;Q=e}}function rf(e){F&&(Q=e.content)}function Qt(e=1){if(F){for(var t=e,n=Q;t--;)n=gt(n);Q=n}}function Rn(e=!0){for(var t=0,n=Q;;){if(n.nodeType===rn){var r=n.data;if(r===Es){if(t===0)return n;t-=1}else(r===ks||r===Ss||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var s=gt(n);e&&n.remove(),n=s}}function Fa(e){if(!e||e.nodeType!==rn)throw $r(),xn;return e.data}function cl(e){return e===this.v}function ul(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function dl(e){return!ul(e,this.v)}let sf=!1;function af(e){console.warn("https://svelte.dev/e/dynamic_void_element_content")}const of=[];function Cn(e,t=!1,n=!1){return Gr(e,new Map,"",of,null,n)}function Gr(e,t,n,r,s=null,a=!1){if(typeof e=="object"&&e!==null){var i=t.get(e);if(i!==void 0)return i;if(e instanceof Map)return new Map(e);if(e instanceof Set)return new Set(e);if(tr(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]=Gr(u,t,n,r,null,a))}return l}if(Ts(e)===Qo){l={},t.set(e,l),s!==null&&t.set(s,l);for(var d of Object.keys(e))l[d]=Gr(e[d],t,n,r,null,a);return l}if(e instanceof Date)return structuredClone(e);if(typeof e.toJSON=="function"&&!a)return Gr(e.toJSON(),t,n,r,e)}if(e instanceof EventTarget)return e;try{return structuredClone(e)}catch{return e}}let Mn=null;function fl(e,t){const n=e.v;if(n===Se)return;const r=lf(e),s=le,a=e.wv>s.wv||s.wv===0,i=a?"color: CornflowerBlue; font-weight: bold":"color: grey; font-weight: normal";if(console.groupCollapsed(e.label?`%c${r}%c ${e.label}`:`%c${r}%c`,i,a?"font-weight: normal":i,typeof n=="object"&&n!==null&&Ke in n?Cn(n,!0):n),r==="$derived"){const c=new Set(e.deps);for(const u of c)fl(u)}if(e.created&&console.log(e.created),a&&e.updated)for(const c of e.updated.values())c.error&&console.log(c.error);if(t)for(var l of t.traces)console.log(l);console.groupEnd()}function lf(e){return e.f&(Ve|Wn)?"$derived":e.label?.startsWith("$")?"store":"$state"}function cf(e,t){var n=Mn;try{Mn={entries:new Map,reaction:le};var r=performance.now(),s=t(),a=(performance.now()-r).toFixed(2),i=ke(e);if(!Mr())console.log(`${i} %cran outside of an effect (${a}ms)`,"color: grey");else if(Mn.entries.size===0)console.log(`${i} %cno reactive dependencies (${a}ms)`,"color: grey");else{console.group(`${i} %c(${a}ms)`,"color: grey");var l=Mn.entries;ke(()=>{for(const[c,u]of l)fl(c,u)}),Mn=null,console.groupEnd()}return s}finally{Mn=n}}function uf(e,t){return e.label=t,vl(e.v,t),e}function vl(e,t){return e?.[kd]?.(t),e}function df(e){const t=new Error,n=ff();return n.length===0?null:(n.unshift(`
|
|
2
|
-
`),Tn(t,"stack",{value:n.join(`
|
|
3
|
-
`)}),Tn(t,"name",{value:e}),t)}function ff(){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 a=n[s],i=a.replaceAll("\\","/");if(a.trim()!=="Error"){if(a.includes("validate_each_keys"))return[];i.includes("svelte/src/internal")||i.includes("node_modules/.vite")||r.push(a)}}return r}let he=null;function Yn(e){he=e}let Xr=null;function vf(e,t,n,r,s,a){const i=Xr;Xr={type:t,file:n[dt],line:r,column:s,parent:i,...a};try{return e()}finally{Xr=i}}let Ha=null;function Gi(e){Ha=e}function hf(){const e={};return[()=>(ml(e)||xd(),hl(e)),t=>pl(e,t)]}function hl(e){return Is().get(e)}function pl(e,t){return Is().set(e,t),t}function ml(e){return Is().has(e)}function pf(){return Is()}function ae(e,t=!1,n){he={p:he,i:!1,c:null,e:null,s:e,x:null,r:ee,l:null}}function ie(e){var t=he,n=t.e;if(n!==null){t.e=null;for(var r of n)Fl(r)}return e!==void 0&&(t.x=e),t.i=!0,he=t.p,e??{}}function gl(){return!0}function Is(e){return he===null&&nr(),he.c??=new Map(mf(he)||void 0)}function mf(e){let t=e.p;for(;t!==null;){const n=t.c;if(n!==null)return n;t=t.p}return null}let bn=[];function _l(){var e=bn;bn=[],pa(e)}function Ze(e){if(bn.length===0&&!Hn){var t=bn;queueMicrotask(()=>{t===bn&&_l()})}bn.push(e)}function gf(){for(;bn.length>0;)_l()}function yl(e){var t=ee;if(t===null)return le.f|=dn,e;if(!(t.f&nn)&&!(t.f&An))throw e;Bt(e,t)}function Bt(e,t){for(;t!==null;){if(t.f&ma){if(!(t.f&nn))throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const _f=-7169;function Ae(e,t){e.f=e.f&_f|t}function Ka(e){e.f&Et||e.deps===null?Ae(e,Pe):Ae(e,Mt)}function bl(e){if(e!==null)for(const t of e)!(t.f&Ve)||!(t.f&In)||(t.f^=In,bl(t.deps))}function wl(e,t,n){e.f&qe?t.add(e):e.f&Mt&&n.add(e),bl(e.deps),Ae(e,Pe)}function kl(e,t,n){if(e==null)return t(void 0),ft;const r=ke(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}function yf(e){let t;return kl(e,n=>t=n)(),t}let ya=!1,fr=!1,ba=Symbol();function bf(e,t,n){const r=n[t]??={store:null,source:$s(void 0),unsubscribe:ft};if(r.store!==e&&!(ba in n))if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=ft;else{var s=!0;r.unsubscribe=kl(e,a=>{s?r.source.v=a:g(r.source,a)}),s=!1}return e&&ba in n?yf(e):o(r.source)}function wf(e,t,n){let r=n[t];return r&&r.store!==e&&(r.unsubscribe(),r.unsubscribe=ft),e}function Sl(e,t){return Rs(e,t),t}function kf(e,t){var n=e[t];n.store!==null&&Sl(n.store,n.source.v)}function Sf(){const e={};function t(){yt(()=>{for(var n in e)e[n].unsubscribe();Tn(e,ba,{enumerable:!1,value:!0})})}return[e,t]}function Rs(e,t){ya=!0;try{e.set(t)}finally{ya=!1}}function Ef(e,t,n){return Rs(e,n),t}function xf(e,t,n=1){return Rs(e,t+n),t}function Tf(e,t,n=1){const r=t+n;return Rs(e,r),r}function Af(){fr=!0}function El(e){var t=fr;try{return fr=!1,[e(),fr]}finally{fr=t}}const Jt=new Set;let te=null,Ge=null,wa=null,Hn=!1,na=!1,Un=null,Jr=null;var Xi=0;let If=1;class At{id=If++;current=new Map;previous=new Map;#e=new Set;#t=new Set;#n=new Set;#a=new Map;#s=new Map;#i=null;#r=[];#o=[];#l=new Set;#u=new Set;#c=new Map;#f=new Set;is_fork=!1;#h=!1;#v=new Set;#d(){return this.is_fork||this.#s.size>0}#_(){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)Ae(s,qe),n(s);for(s of r.m)Ae(s,Mt),n(s)}this.#f.add(t)}#p(){if(Xi++>1e3&&(Jt.delete(this),Rf()),!this.#d()){for(const l of this.#l)this.#u.delete(l),Ae(l,qe),this.schedule(l);for(const l of this.#u)Ae(l,Mt),this.schedule(l)}const t=this.#r;this.#r=[],this.apply();var n=Un=[],r=[],s=Jr=[];for(const l of t)try{this.#g(l,n,r)}catch(c){throw Il(l),c}if(te=null,s.length>0){var a=At.ensure();for(const l of s)a.schedule(l)}if(Un=null,Jr=null,this.#d()||this.#_()){this.#m(r),this.#m(n);for(const[l,c]of this.#c)Al(l,c)}else{this.#a.size===0&&Jt.delete(this),this.#l.clear(),this.#u.clear();for(const l of this.#e)l(this);this.#e.clear(),Ji(r),Ji(n),this.#i?.resolve()}var i=te;if(this.#r.length>0){const l=i??=this;l.#r.push(...this.#r.filter(c=>!l.#r.includes(c)))}i!==null&&(Jt.add(i),i.#p())}#g(t,n,r){t.f^=Pe;for(var s=t.first;s!==null;){var a=s.f,i=(a&(Ot|en))!==0,l=i&&(a&Pe)!==0,c=l||(a&Je)!==0||this.#c.has(s);if(!c&&s.fn!==null){i?s.f^=Pe:a&An?n.push(s):rr(s)&&(a&Dt&&this.#u.add(s),Pn(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)wl(t[n],this.#l,this.#u)}capture(t,n,r=!1){t.v!==Se&&!this.previous.has(t)&&this.previous.set(t,t.v),t.f&dn||(this.current.set(t,[n,r]),Ge?.set(t,n)),this.is_fork||(t.v=n)}activate(){te=this}deactivate(){te=null,Ge=null}flush(){try{na=!0,te=this,this.#p()}finally{Xi=0,wa=null,Un=null,Jr=null,na=!1,te=null,Ge=null,kn.clear()}}discard(){for(const t of this.#t)t(this);this.#t.clear(),this.#n.clear(),Jt.delete(this)}register_created_effect(t){this.#o.push(t)}#y(){for(const d of Jt){var t=d.id<this.id,n=[];for(const[f,[v,w]]of this.current){if(d.current.has(f)){var r=d.current.get(f)[0];if(t&&v!==r)d.current.set(f,[v,w]);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,v=>{v.f&(Dt|Wn)?d.schedule(v):d.#m([v])});d.activate();var a=new Set,i=new Map;for(var l of n)xl(l,s,a,i);i=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&(at|Je|br))&&Wa(f,c,i)&&(f.f&(Wn|Dt)?(Ae(f,qe),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 Jt)d.#v.has(this)&&(d.#v.delete(this),d.#v.size===0&&!d.#d()&&(d.activate(),d.#p()))}increment(t,n){let r=this.#a.get(n)??0;if(this.#a.set(n,r+1),t){let s=this.#s.get(n)??0;this.#s.set(n,s+1)}}decrement(t,n,r){let s=this.#a.get(n)??0;if(s===1?this.#a.delete(n):this.#a.set(n,s-1),t){let a=this.#s.get(n)??0;a===1?this.#s.delete(n):this.#s.set(n,a-1)}this.#h||r||(this.#h=!0,Ze(()=>{this.#h=!1,this.flush()}))}transfer_effects(t,n){for(const r of t)this.#l.add(r);for(const r of n)this.#u.add(r);t.clear(),n.clear()}oncommit(t){this.#e.add(t)}ondiscard(t){this.#t.add(t)}on_fork_commit(t){this.#n.add(t)}run_fork_commit_callbacks(){for(const t of this.#n)t(this);this.#n.clear()}settled(){return(this.#i??=el()).promise}static ensure(){if(te===null){const t=te=new At;na||(Jt.add(te),Hn||Ze(()=>{te===t&&t.flush()}))}return te}apply(){{Ge=null;return}}schedule(t){if(wa=t,t.b?.is_pending&&t.f&(An|Rr|Ba)&&!(t.f&nn)){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var r=n.f;if(Un!==null&&n===ee&&(le===null||!(le.f&Ve))&&!ya)return;if(r&(en|Ot)){if(!(r&Pe))return;n.f^=Pe}}this.#r.push(n)}}function hn(e){var t=Hn;Hn=!0;try{var n;for(e&&(te!==null&&!te.is_fork&&te.flush(),n=e());;){if(gf(),te===null)return n;te.flush()}}finally{Hn=t}}function Rf(){try{Nd()}catch(e){Bt(e,wa)}}let Zt=null;function Ji(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&(at|Je))&&rr(r)&&(Zt=new Set,Pn(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Xl(r),Zt?.size>0)){kn.clear();for(const s of Zt){if(s.f&(at|Je))continue;const a=[s];let i=s.parent;for(;i!==null;)Zt.has(i)&&(Zt.delete(i),a.push(i)),i=i.parent;for(let l=a.length-1;l>=0;l--){const c=a[l];c.f&(at|Je)||Pn(c)}}Zt.clear()}}Zt=null}}function xl(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(const s of e.reactions){const a=s.f;a&Ve?xl(s,t,n,r):a&(Wn|Dt)&&!(a&qe)&&Wa(s,t,r)&&(Ae(s,qe),Ya(s))}}function Tl(e,t){if(e.reactions!==null)for(const n of e.reactions){const r=n.f;r&Ve?Tl(n,t):r&br&&(Ae(n,qe),t.add(n))}}function Wa(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(Kn.call(t,s))return!0;if(s.f&Ve&&Wa(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function Ya(e){te.schedule(e)}let is=[];function Cf(){hn(()=>{const e=is;is=[];for(const t of e)Gn(t)})}function $f(e){var t=mt(0),n=!0,r=void 0;return o(t),Kl(()=>{if(n){var s=Ge;try{Ge=null,r=e()}finally{Ge=s}return}is.length===0&&Ze(Cf),is.push(t)}),n=!1,r}function Al(e,t){if(!(e.f&Ot&&e.f&Pe)){e.f&qe?t.d.push(e):e.f&Mt&&t.m.push(e),Ae(e,Pe);for(var n=e.first;n!==null;)Al(n,t),n=n.next}}function Il(e){Ae(e,Pe);for(var t=e.first;t!==null;)Il(t),t=t.next}function Pf(e){il(),te!==null&&zd();var t=At.ensure();t.is_fork=!0,Ge=new Map;var n=!1,r=t.settled();return hn(e),{commit:async()=>{if(n){await r;return}Jt.has(t)||jd(),n=!0,t.is_fork=!1;for(var[s,[a]]of t.current)s.v=a,s.wv=ls();t.activate(),t.run_fork_commit_callbacks(),t.deactivate(),hn(()=>{var i=new Set;for(var l of t.current.keys())Tl(l,i);Bf(i),Ol()}),t.flush(),await r},discard:()=>{for(var s of t.current.keys())s.wv=ls();!n&&Jt.has(t)&&t.discard()}}}function Df(e){let t=0,n=mt(0),r;return()=>{Mr()&&(o(n),Ce(()=>(t===0&&(r=ke(()=>e(()=>mr(n)))),t+=1,()=>{Ze(()=>{t-=1,t===0&&(r?.(),r=void 0,mr(n))})})))}}var Lf=Nt|mn;function Rl(e,t,n,r){new Of(e,t,n,r)}class Of{parent;is_pending=!1;transform_error;#e;#t=F?Q:null;#n;#a;#s;#i=null;#r=null;#o=null;#l=null;#u=0;#c=0;#f=!1;#h=new Set;#v=new Set;#d=null;#_=Df(()=>(this.#d=mt(this.#u),()=>{this.#d=null}));constructor(t,n,r,s){this.#e=t,this.#n=n,this.#a=a=>{var i=ee;i.b=this,i.f|=ma,r(a)},this.parent=ee.b,this.transform_error=s??this.parent?.transform_error??(a=>a),this.#s=Yt(()=>{if(F){const a=this.#t;Qe();const i=a.data===Ss;if(a.data.startsWith(Hi)){const c=JSON.parse(a.data.slice(Hi.length));this.#g(c)}else i?this.#m():this.#p()}else this.#y()},Lf),F&&(this.#e=Q)}#p(){try{this.#i=Ye(()=>this.#a(this.#e))}catch(t){this.error(t)}}#g(t){const n=this.#n.failed;n&&(this.#o=Ye(()=>{n(this.#e,()=>t,()=>()=>{})}))}#m(){const t=this.#n.pending;t&&(this.is_pending=!0,this.#r=Ye(()=>t(this.#e)),Ze(()=>{var n=this.#l=document.createDocumentFragment(),r=Be();n.append(r),this.#i=this.#w(()=>Ye(()=>this.#a(r))),this.#c===0&&(this.#e.before(n),this.#l=null,Sn(this.#r,()=>{this.#r=null}),this.#b(te))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#c=0,this.#u=0,this.#i=Ye(()=>{this.#a(this.#e)}),this.#c>0){var t=this.#l=document.createDocumentFragment();si(this.#i,t);const n=this.#n.pending;this.#r=Ye(()=>n(this.#e))}else this.#b(te)}catch(n){this.error(n)}}#b(t){this.is_pending=!1,t.transfer_effects(this.#h,this.#v)}defer_effect(t){wl(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=ee,r=le,s=he;We(this.#s),it(this.#s),Yn(this.#s.ctx);try{return At.ensure(),t()}catch(a){return yl(a),null}finally{We(n),it(r),Yn(s)}}#k(t,n){if(!this.has_pending_snippet()){this.parent&&this.parent.#k(t,n);return}this.#c+=t,this.#c===0&&(this.#b(n),this.#r&&Sn(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,Ze(()=>{this.#f=!1,this.#d&&Ft(this.#d,this.#u)}))}get_effect_pending(){return this.#_(),o(this.#d)}error(t){if(!this.#n.onerror&&!this.#n.failed)throw t;te?.is_fork?(this.#i&&te.skip_effect(this.#i),this.#r&&te.skip_effect(this.#r),this.#o&&te.skip_effect(this.#o),te.on_fork_commit(()=>{this.#S(t)})):this.#S(t)}#S(t){this.#i&&(Ne(this.#i),this.#i=null),this.#r&&(Ne(this.#r),this.#r=null),this.#o&&(Ne(this.#o),this.#o=null),F&&(ge(this.#t),Qt(),ge(Rn()));var n=this.#n.onerror;let r=this.#n.failed;var s=!1,a=!1;const i=()=>{if(s){nf();return}s=!0,a&&Kd(),this.#o!==null&&Sn(this.#o,()=>{this.#o=null}),this.#w(()=>{this.#y()})},l=c=>{try{a=!0,n?.(c,i),a=!1}catch(u){Bt(u,this.#s&&this.#s.parent)}r&&(this.#o=this.#w(()=>{try{return Ye(()=>{var u=ee;u.b=this,u.f|=ma,r(this.#e,()=>c,()=>i)})}catch(u){return Bt(u,this.#s.parent),null}}))};Ze(()=>{var c;try{c=this.transform_error(t)}catch(u){Bt(u,this.#s&&this.#s.parent);return}c!==null&&typeof c=="object"&&typeof c.then=="function"?c.then(l,u=>Bt(u,this.#s&&this.#s.parent)):l(c)})}}function Mf(){ee===null&&Md();var e=ee.b;return e===null?0:e.get_effect_pending()}function Pr(e,t,n,r){const s=Lr;var a=e.filter(v=>!v.settled);if(n.length===0&&a.length===0){r(t.map(s));return}var i=ee,l=Cs(),c=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(v=>v.promise)):null;function u(v){l();try{r(v)}catch(w){i.f&at||Bt(w,i)}$n()}if(n.length===0){c.then(()=>u(t.map(s)));return}var d=Dr();function f(){Promise.all(n.map(v=>$l(v))).then(v=>u([...t.map(s),...v])).catch(v=>Bt(v,i)).finally(()=>d())}c?c.then(()=>{l(),f(),$n()}):f()}function Cl(e,t){Pr(e,[],[],t)}function Cs(){var e=ee,t=le,n=he,r=te;return function(a=!0){We(e),it(t),Yn(n),a&&!(e.f&at)&&(r?.activate(),r?.apply())}}async function Nf(e){var t=Cs(),n=await e;return()=>(t(),n)}async function ka(e){var t=pr;queueMicrotask(()=>{pr===t&&Zr(null)});var n=await e;return()=>(Zr(t),queueMicrotask(()=>{pr===t&&Zr(null)}),n)}async function*jf(e){const t=e[Symbol.asyncIterator]?.()??e[Symbol.iterator]?.();if(t===void 0)throw new TypeError("value is not async iterable");let n=!1;try{for(;;){const{done:s,value:a}=(await ka(t.next()))();if(s){n=!0;break}var r=pr;yield a,Zr(r)}}finally{if(!n&&t.return!==void 0)return(await ka(t.return()))().value}}function $n(e=!0){We(null),it(null),Yn(null),e&&te?.deactivate()}function zf(e){const t=Cs(),n=Dr();var r=ee,s=null;const a=u=>{s={error:u},xa(r)||Bt(u,r)};var i=Promise.resolve(e[0]()).catch(a),l={promise:i,settled:!1},c=[l];i.finally(()=>{l.settled=!0,$n()});for(const u of e.slice(1)){i=i.then(()=>{if(t(),s)throw s.error;if(xa(r))throw qt;return u()}).catch(a);const d={promise:i,settled:!1};c.push(d),i.finally(()=>{d.settled=!0,$n()})}return i.then(()=>Promise.resolve()).finally(()=>n()),c}function qf(e){return Promise.all(e.map(t=>t.promise))}function Dr(){var e=ee,t=e.b,n=te,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 pr=null;function Zr(e){pr=e}function Lr(e){var t=Ve|qe;return ee!==null&&(ee.f|=mn),{ctx:he,deps:null,effects:null,equals:cl,f:t,fn:e,reactions:null,rv:0,v:Se,wv:0,parent:ee,ac:null}}function $l(e,t,n){let r=ee;r===null&&Rd();var s=void 0,a=mt(Se),i=!le,l=new Map;return tv(()=>{var c=ee,u=el();s=u.promise;try{Promise.resolve(e()).then(u.resolve,u.reject).finally($n)}catch(w){u.reject(w),$n()}var d=te;if(i){if(c.f&nn)var f=Dr();if(r.b.is_rendered())l.get(d)?.reject(qt),l.delete(d);else{for(const w of l.values())w.reject(qt);l.clear()}l.set(d,u)}const v=(w,y=void 0)=>{if(f){var k=y===qt;f(k)}if(!(y===qt||c.f&at)){if(d.activate(),y)a.f|=dn,Ft(a,y);else{a.f&dn&&(a.f^=dn),Ft(a,w);for(const[b,A]of l){if(l.delete(b),b===d)break;A.reject(qt)}}d.deactivate()}};u.promise.then(v,w=>v(null,w||"unknown"))}),yt(()=>{for(const c of l.values())c.reject(qt)}),new Promise(c=>{function u(d){function f(){d===s?c(a):u(s)}d.then(f,f)}u(s)})}function G(e){const t=Lr(e);return Ql(t),t}function Ga(e){const t=Lr(e);return t.equals=dl,t}function Vf(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)Ne(t[n])}}function Xa(e){var t,n=ee,r=e.parent;if(!tn&&r!==null&&r.f&(at|Je))return Xd(),e.v;We(r);try{e.f&=~In,Vf(e),t=nc(e)}finally{We(n)}return t}function Pl(e){var t=Xa(e);if(!e.equals(t)&&(e.wv=ls(),(!te?.is_fork||e.deps===null)&&(te!==null?te.capture(e,t,!0):e.v=t,e.deps===null))){Ae(e,Pe);return}tn||(Ge!==null?(Mr()||te?.is_fork)&&Ge.set(e,t):Ka(e))}function Uf(e){if(e.effects!==null)for(const t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(qt),t.teardown=ft,t.ac=null,wr(t,0),ni(t))}function Dl(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&Pn(t)}let os=new Set;const kn=new Map;function Bf(e){os=e}let Ll=!1;function mt(e,t){var n={f:0,v:e,reactions:null,equals:cl,rv:0,wv:0};return n}function j(e,t){const n=mt(e);return Ql(n),n}function $s(e,t=!1,n=!0){const r=mt(e);return t||(r.equals=dl),r}function Ff(e,t){return g(e,ke(()=>o(e))),t}function g(e,t,n=!1){le!==null&&(!$t||le.f&br)&&gl()&&le.f&(Ve|Dt|Wn|br)&&(xt===null||!Kn.call(xt,e))&&Hd();let r=n?pe(t):t;return Ft(e,r,Jr)}function Ft(e,t,n=null){if(!e.equals(t)){kn.set(e,tn?t:e.v);var r=At.ensure();if(r.capture(e,t),e.f&Ve){const s=e;e.f&qe&&Xa(s),Ge===null&&Ka(s)}e.wv=ls(),Ml(e,qe,n),ee!==null&&ee.f&Pe&&!(ee.f&(Ot|en))&&(St===null?iv([e]):St.push(e)),!r.is_fork&&os.size>0&&!Ll&&Ol()}return t}function Ol(){Ll=!1;for(const e of os)e.f&Pe&&Ae(e,Mt),rr(e)&&Pn(e);os.clear()}function Gn(e,t=1){var n=o(e),r=t===1?n++:n--;return g(e,n),r}function Hf(e,t=1){var n=o(e);return g(e,t===1?++n:--n)}function mr(e){g(e,e.v+1)}function Ml(e,t,n){var r=e.reactions;if(r!==null)for(var s=r.length,a=0;a<s;a++){var i=r[a],l=i.f,c=(l&qe)===0;if(c&&Ae(i,t),l&Ve){var u=i;Ge?.delete(u),l&In||(l&Et&&(i.f|=In),Ml(u,Mt,n))}else if(c){var d=i;l&Dt&&Zt!==null&&Zt.add(d),n!==null?n.push(d):Ya(d)}}}function pe(e){if(typeof e!="object"||e===null||Ke in e)return e;const t=Ts(e);if(t!==Qo&&t!==md)return e;var n=new Map,r=tr(e),s=j(0),a=En,i=l=>{if(En===a)return l();var c=le,u=En;it(null),eo(a);var d=l();return it(c),eo(u),d};return r&&n.set("length",j(e.length)),new Proxy(e,{defineProperty(l,c,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&Bd();var d=n.get(c);return d===void 0?i(()=>{var f=j(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=i(()=>j(Se));n.set(c,d),mr(s)}}else g(u,Se),mr(s);return!0},get(l,c,u){if(c===Ke)return e;var d=n.get(c),f=c in l;if(d===void 0&&(!f||Pt(l,c)?.writable)&&(d=i(()=>{var w=pe(f?l[c]:Se),y=j(w);return y}),n.set(c,d)),d!==void 0){var v=o(d);return v===Se?void 0:v}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),v=f?.v;if(f!==void 0&&v!==Se)return{enumerable:!0,configurable:!0,value:v,writable:!0}}return u},has(l,c){if(c===Ke)return!0;var u=n.get(c),d=u!==void 0&&u.v!==Se||Reflect.has(l,c);if(u!==void 0||ee!==null&&(!d||Pt(l,c)?.writable)){u===void 0&&(u=i(()=>{var v=d?pe(l[c]):Se,w=j(v);return w}),n.set(c,u));var f=o(u);if(f===Se)return!1}return d},set(l,c,u,d){var f=n.get(c),v=c in l;if(r&&c==="length")for(var w=u;w<f.v;w+=1){var y=n.get(w+"");y!==void 0?g(y,Se):w in l&&(y=i(()=>j(Se)),n.set(w+"",y))}if(f===void 0)(!v||Pt(l,c)?.writable)&&(f=i(()=>j(void 0)),g(f,pe(u)),n.set(c,f));else{v=f.v!==Se;var k=i(()=>pe(u));g(f,k)}var b=Reflect.getOwnPropertyDescriptor(l,c);if(b?.set&&b.set.call(d,u),!v){if(r&&typeof c=="string"){var A=n.get("length"),m=Number(c);Number.isInteger(m)&&m>=A.v&&g(A,m+1)}mr(s)}return!0},ownKeys(l){o(s);var c=Reflect.ownKeys(l).filter(f=>{var v=n.get(f);return v===void 0||v.v!==Se});for(var[u,d]of n)d.v!==Se&&!(u in l)&&c.push(u);return c},setPrototypeOf(){Fd()}})}function Xn(e){try{if(e!==null&&typeof e=="object"&&Ke in e)return e[Ke]}catch{}return e}function Nl(e,t){return Object.is(Xn(e),Xn(t))}function Kf(e,t,n=!0){try{e===t!=(Xn(e)===Xn(t))&&ll(n?"===":"!==")}catch{}return e===t===n}function Wf(e,t,n=!0){return e==t!=(Xn(e)==Xn(t))&&ll(),e==t===n}var Sa,jl,Ja,zl,ql;function Ea(){if(Sa===void 0){Sa=window,jl=document,Ja=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;zl=Pt(t,"firstChild").get,ql=Pt(t,"nextSibling").get,Ki(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),Ki(n)&&(n.__t=void 0)}}function Be(e=""){return document.createTextNode(e)}function Ee(e){return zl.call(e)}function gt(e){return ql.call(e)}function p(e,t){if(!F)return Ee(e);var n=Ee(Q);if(n===null)n=Q.appendChild(Be());else if(t&&n.nodeType!==Cr){var r=Be();return n?.before(r),ge(r),r}return t&&Ps(n),ge(n),n}function ve(e,t=!1){if(!F){var n=Ee(e);return n instanceof Comment&&n.data===""?gt(n):n}if(t){if(Q?.nodeType!==Cr){var r=Be();return Q?.before(r),ge(r),r}Ps(Q)}return Q}function S(e,t=1,n=!1){let r=F?Q:e;for(var s;t--;)s=r,r=gt(r);if(!F)return r;if(n){if(r?.nodeType!==Cr){var a=Be();return r===null?s?.after(a):r.before(a),ge(a),a}Ps(r)}return ge(r),r}function Za(e){e.textContent=""}function Vl(){return!1}function gn(e,t,n){let r=n?{is:n}:void 0;return document.createElementNS(t??Go,e,r)}function Yf(){return document.createDocumentFragment()}function Ul(e=""){return document.createComment(e)}function Gf(e,t,n=""){if(t.startsWith("xlink:")){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n);return}return e.setAttribute(t,n)}function Ps(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===Cr;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function Qa(e,t){if(t){const n=document.body;e.autofocus=!0,Ze(()=>{document.activeElement===n&&e.focus()})}}function Xf(e){F&&Ee(e)!==null&&Za(e)}let Zi=!1;function Bl(){Zi||(Zi=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function lt(e,t,n,r=!0){r&&n();for(var s of t)e.addEventListener(s,n);yt(()=>{for(var a of t)e.removeEventListener(a,n)})}function _n(e){var t=le,n=ee;it(null),We(null);try{return e()}finally{it(t),We(n)}}function Or(e,t,n,r=n){e.addEventListener(t,()=>_n(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),Bl()}function ei(e){ee===null&&(le===null&&Od(),Ld()),tn&&Dd()}function Jf(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function ct(e,t){var n=ee;n!==null&&n.f&Je&&(e|=Je);var r={ctx:he,deps:null,nodes:null,f:e|qe|Et,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};te?.register_created_effect(r);var s=r;if(e&An)Un!==null?Un.push(r):At.ensure().schedule(r);else if(t!==null){try{Pn(r)}catch(i){throw Ne(r),i}s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&!(s.f&mn)&&(s=s.first,e&Dt&&e&Nt&&s!==null&&(s.f|=Nt))}if(s!==null&&(s.parent=n,n!==null&&Jf(s,n),le!==null&&le.f&Ve&&!(e&en))){var a=le;(a.effects??=[]).push(s)}return r}function Mr(){return le!==null&&!$t}function yt(e){const t=ct(Rr,null);return Ae(t,Pe),t.teardown=e,t}function Me(e){ei();var t=ee.f,n=!le&&(t&Ot)!==0&&(t&nn)===0;if(n){var r=he;(r.e??=[]).push(e)}else return Fl(e)}function Fl(e){return ct(An|rl,e)}function Hl(e){return ei(),ct(Rr|rl,e)}function Kl(e){return ct(br,e)}function ti(e){At.ensure();const t=ct(en|mn,e);return()=>{Ne(t)}}function Zf(e){At.ensure();const t=ct(en|mn,e);return(n={})=>new Promise(r=>{n.outro?Sn(t,()=>{Ne(t),r(void 0)}):(Ne(t),r(void 0))})}function _t(e){return ct(An,e)}function Qf(e,t){var n=he,r={effect:null,ran:!1,deps:e};n.l.$.push(r),r.effect=Ce(()=>{if(e(),!r.ran){r.ran=!0;var s=ee;try{We(s.parent),ke(t)}finally{We(s)}}})}function ev(){var e=he;Ce(()=>{for(var t of e.l.$){t.deps();var n=t.effect;n.f&Pe&&n.deps!==null&&Ae(n,Mt),rr(n)&&Pn(n),t.ran=!1}})}function tv(e){return ct(Wn|mn,e)}function Ce(e,t=0){return ct(Rr|t,e)}function q(e,t=[],n=[],r=[]){Pr(r,t,n,s=>{ct(Rr,()=>e(...s.map(o)))})}function nv(e,t=[],n=[],r=[]){if(n.length>0||r.length>0)var s=Dr();Pr(r,t,n,a=>{ct(An,()=>e(...a.map(o))),s&&s()})}function Yt(e,t=0){var n=ct(Dt|t,e);return n}function Wl(e,t=0){var n=ct(Ba|t,e);return n}function Ye(e){return ct(Ot|mn,e)}function Yl(e){var t=e.teardown;if(t!==null){const n=tn,r=le;Qi(!0),it(null);try{t.call(null)}finally{Qi(n),it(r)}}}function ni(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&_n(()=>{s.abort(qt)});var r=n.next;n.f&en?n.parent=null:Ne(n,t),n=r}}function rv(e){for(var t=e.first;t!==null;){var n=t.next;t.f&Ot||Ne(t),t=n}}function Ne(e,t=!0){var n=!1;(t||e.f&nl)&&e.nodes!==null&&e.nodes.end!==null&&(Gl(e.nodes.start,e.nodes.end),n=!0),Ae(e,ga),ni(e,t&&!n),wr(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const a of r)a.stop();Yl(e),e.f^=ga,e.f|=at;var s=e.parent;s!==null&&s.first!==null&&Xl(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Gl(e,t){for(;e!==null;){var n=e===t?null:gt(e);e.remove(),e=n}}function Xl(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 Sn(e,t,n=!0){var r=[];Jl(e,r,!0);var s=()=>{n&&Ne(e),t&&t()},a=r.length;if(a>0){var i=()=>--a||s();for(var l of r)l.out(i)}else s()}function Jl(e,t,n){if(!(e.f&Je)){e.f^=Je;var r=e.nodes&&e.nodes.t;if(r!==null)for(const l of r)(l.is_global||n)&&t.push(l);for(var s=e.first;s!==null;){var a=s.next;if(!(s.f&en)){var i=(s.f&Nt)!==0||(s.f&Ot)!==0&&(e.f&Dt)!==0;Jl(s,t,i?n:!1)}s=a}}}function ri(e){Zl(e,!0)}function Zl(e,t){if(e.f&Je){e.f^=Je,e.f&Pe||(Ae(e,qe),At.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&Nt)!==0||(n.f&Ot)!==0;Zl(n,s?t:!1),n=r}var a=e.nodes&&e.nodes.t;if(a!==null)for(const i of a)(i.is_global||t)&&i.in()}}function xa(e=ee){return(e.f&at)!==0}function si(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:gt(n);t.append(n),n=s}}let zn=null;function sv(e){var t=zn;try{if(zn=new Set,ke(e),t!==null)for(var n of zn)t.add(n);return zn}finally{zn=t}}function av(e){for(var t of sv(e))Ft(t,t.v)}let Qr=!1,tn=!1;function Qi(e){tn=e}let le=null,$t=!1;function it(e){le=e}let ee=null;function We(e){ee=e}let xt=null;function Ql(e){le!==null&&(xt===null?xt=[e]:xt.push(e))}let rt=null,ut=0,St=null;function iv(e){St=e}let ec=1,wn=0,En=wn;function eo(e){En=e}function ls(){return++ec}function rr(e){var t=e.f;if(t&qe)return!0;if(t&Ve&&(e.f&=~In),t&Mt){for(var n=e.deps,r=n.length,s=0;s<r;s++){var a=n[s];if(rr(a)&&Pl(a),a.wv>e.wv)return!0}t&Et&&Ge===null&&Ae(e,Pe)}return!1}function tc(e,t,n=!0){var r=e.reactions;if(r!==null&&!(xt!==null&&Kn.call(xt,e)))for(var s=0;s<r.length;s++){var a=r[s];a.f&Ve?tc(a,t,!1):t===a&&(n?Ae(a,qe):a.f&Pe&&Ae(a,Mt),Ya(a))}}function nc(e){var t=rt,n=ut,r=St,s=le,a=xt,i=he,l=$t,c=En,u=e.f;rt=null,ut=0,St=null,le=u&(Ot|en)?null:e,xt=null,Yn(e.ctx),$t=!1,En=++wn,e.ac!==null&&(_n(()=>{e.ac.abort(qt)}),e.ac=null);try{e.f|=_a;var d=e.fn,f=d();e.f|=nn;var v=e.deps,w=te?.is_fork;if(rt!==null){var y;if(w||wr(e,ut),v!==null&&ut>0)for(v.length=ut+rt.length,y=0;y<rt.length;y++)v[ut+y]=rt[y];else e.deps=v=rt;if(Mr()&&e.f&Et)for(y=ut;y<v.length;y++)(v[y].reactions??=[]).push(e)}else!w&&v!==null&&ut<v.length&&(wr(e,ut),v.length=ut);if(gl()&&St!==null&&!$t&&v!==null&&!(e.f&(Ve|Mt|qe)))for(y=0;y<St.length;y++)tc(St[y],e);if(s!==null&&s!==e){if(wn++,s.deps!==null)for(let k=0;k<n;k+=1)s.deps[k].rv=wn;if(t!==null)for(const k of t)k.rv=wn;St!==null&&(r===null?r=St:r.push(...St))}return e.f&dn&&(e.f^=dn),f}catch(k){return yl(k)}finally{e.f^=_a,rt=t,ut=n,St=r,le=s,xt=a,Yn(i),$t=l,En=c}}function ov(e,t){let n=t.reactions;if(n!==null){var r=pd.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&Ve&&(rt===null||!Kn.call(rt,t))){var a=t;a.f&Et&&(a.f^=Et,a.f&=~In),a.v!==Se&&Ka(a),Uf(a),wr(a,0)}}function wr(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)ov(e,n[r])}function Pn(e){var t=e.f;if(!(t&at)){Ae(e,Pe);var n=ee,r=Qr;ee=e,Qr=!0;try{t&(Dt|Ba)?rv(e):ni(e),Yl(e);var s=nc(e);e.teardown=typeof s=="function"?s:null,e.wv=ec;var a;Jo&&sf&&e.f&qe&&e.deps}finally{Qr=r,ee=n}}}async function ai(){await Promise.resolve(),hn()}function lv(){return At.ensure().settled()}function o(e){var t=e.f,n=(t&Ve)!==0;if(zn?.add(e),le!==null&&!$t){var r=ee!==null&&(ee.f&at)!==0;if(!r&&(xt===null||!Kn.call(xt,e))){var s=le.deps;if(le.f&_a)e.rv<wn&&(e.rv=wn,rt===null&&s!==null&&s[ut]===e?ut++:rt===null?rt=[e]:rt.push(e));else{(le.deps??=[]).push(e);var a=e.reactions;a===null?e.reactions=[le]:Kn.call(a,le)||a.push(le)}}}if(tn&&kn.has(e))return kn.get(e);if(n){var i=e;if(tn){var l=i.v;return(!(i.f&Pe)&&i.reactions!==null||sc(i))&&(l=Xa(i)),kn.set(i,l),l}var c=(i.f&Et)===0&&!$t&&le!==null&&(Qr||(le.f&Et)!==0),u=(i.f&nn)===0;rr(i)&&(c&&(i.f|=Et),Pl(i)),c&&!u&&(Dl(i),rc(i))}if(Ge?.has(e))return Ge.get(e);if(e.f&dn)throw e.v;return e.v}function rc(e){if(e.f|=Et,e.deps!==null)for(const t of e.deps)(t.reactions??=[]).push(e),t.f&Ve&&!(t.f&Et)&&(Dl(t),rc(t))}function sc(e){if(e.v===Se)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(kn.has(t)||t.f&Ve&&sc(t))return!0;return!1}function cv(e){return e&&o(e)}function ke(e){var t=$t;try{return $t=!0,e()}finally{$t=t}}function ii(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if(Ke in e)cs(e);else if(!Array.isArray(e))for(let t in e){const n=e[t];typeof n=="object"&&n&&Ke in n&&cs(n)}}}function cs(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{cs(e[r],t)}catch{}const n=Ts(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){const r=Zo(n);for(let s in r){const a=r[s].get;if(a)try{a.call(e)}catch{}}}}}function uv(e,t){if(il(),F){const n=window.__svelte?.h;if(n?.has(e))return n.get(e);Zd()}return t()}const vr=Symbol("events"),ac=new Set,Ta=new Set;function dv(e){if(!F)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 ic(e,t,n,r={}){function s(a){if(r.capture||Aa.call(t,a),!a.cancelBubble)return _n(()=>n?.call(this,a))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?Ze(()=>{t.addEventListener(e,s,r)}):t.addEventListener(e,s,r),s}function ot(e,t,n,r,s){var a={capture:r,passive:s},i=ic(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&yt(()=>{t.removeEventListener(e,i,a)})}function Y(e,t,n){(t[vr]??={})[e]=n}function be(e){for(var t=0;t<e.length;t++)ac.add(e[t]);for(var n of Ta)n(e)}let to=null;function Aa(e){var t=this,n=t.ownerDocument,r=e.type,s=e.composedPath?.()||[],a=s[0]||e.target;to=e;var i=0,l=to===e&&e[vr];if(l){var c=s.indexOf(l);if(c!==-1&&(t===document||t===window)){e[vr]=t;return}var u=s.indexOf(t);if(u===-1)return;c<=u&&(i=c)}if(a=s[i]||e.target,a!==t){Tn(e,"currentTarget",{configurable:!0,get(){return a||n}});var d=le,f=ee;it(null),We(null);try{for(var v,w=[];a!==null;){var y=a.assignedSlot||a.parentNode||a.host||null;try{var k=a[vr]?.[r];k!=null&&(!a.disabled||e.target===a)&&k.call(a,e)}catch(b){v?w.push(b):v=b}if(e.cancelBubble||y===t||y===null)break;a=y}if(v){for(let b of w)queueMicrotask(()=>{throw b});throw v}}finally{e[vr]=t,delete e.currentTarget,it(d),We(f)}}}function fv(e,t,n,r,s,a=!1,i=!1){let l,c;try{l=e()}catch(u){c=u}if(typeof l!="function"&&(a||l!=null||c)){const u=r?.[dt];s?`${u}${s[0]}${s[1]}`:`${u}`;const d=n[0]?.eventPhase<Event.BUBBLING_PHASE?"capture":"";if(n[0]?.type+d,Jd(),c)throw c}l?.apply(t,n)}const vv=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function oc(e){return vv?.createHTML(e)??e}function oi(e){var t=gn("template");return t.innerHTML=oc(e.replaceAll("<!>","<!---->")),t.content}const hv=On?"template":"TEMPLATE",pv=On?"script":"SCRIPT";function je(e,t){var n=ee;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function C(e,t){var n=(t&Va)!==0,r=(t&Yo)!==0,s,a=!e.startsWith("<!>");return()=>{if(F)return je(Q,null),Q;s===void 0&&(s=oi(a?e:"<!>"+e),n||(s=Ee(s)));var i=r||Ja?document.importNode(s,!0):s.cloneNode(!0);if(n){var l=Ee(i),c=i.lastChild;je(l,c)}else je(i,i);return i}}function lc(e,t,n="svg"){var r=!e.startsWith("<!>"),s=(t&Va)!==0,a=`<${n}>${r?e:"<!>"+e}</${n}>`,i;return()=>{if(F)return je(Q,null),Q;if(!i){var l=oi(a),c=Ee(l);if(s)for(i=document.createDocumentFragment();Ee(c);)i.appendChild(Ee(c));else i=Ee(c)}var u=i.cloneNode(!0);if(s){var d=Ee(u),f=u.lastChild;je(d,f)}else je(u,u);return u}}function mv(e,t){return lc(e,t,"svg")}function gv(e,t){return lc(e,t,"math")}function cc(e,t){var n=Yf();for(var r of e){if(typeof r=="string"){n.append(Be(r));continue}if(r===void 0||r[0][0]==="/"){n.append(Ul(r?r[0].slice(3):""));continue}const[l,c,...u]=r,d=l==="svg"?Ir:l==="math"?Ua:t;var s=gn(l,d,c?.is);for(var a in c)Gf(s,a,c[a]);if(u.length>0){var i=s.nodeName===hv?s.content:s;i.append(cc(u,s.nodeName==="foreignObject"?void 0:d))}n.append(s)}return n}function _v(e,t){var n=(t&Va)!==0,r=(t&Yo)!==0,s;return()=>{if(F)return je(Q,null),Q;if(s===void 0){const c=t&vd?Ir:t&hd?Ua:void 0;s=cc(e,c),n||(s=Ee(s))}var a=r||Ja?document.importNode(s,!0):s.cloneNode(!0);if(n){var i=Ee(a),l=a.lastChild;je(i,l)}else je(a,a);return a}}function yv(e){return()=>bv(e())}function bv(e){if(F)return e;const t=e.nodeType===al,n=e.nodeName===pv?[e]:e.querySelectorAll("script"),r=ee;for(const a of n){const i=gn("script");for(var s of a.attributes)i.setAttribute(s.name,s.value);i.textContent=a.textContent,(t?e.firstChild===a:e===a)&&(r.nodes.start=i),(t?e.lastChild===a:e===a)&&(r.nodes.end=i),a.replaceWith(i)}return e}function fn(e=""){if(!F){var t=Be(e+"");return je(t,t),t}var n=Q;return n.nodeType!==Cr?(n.before(n=Be()),ge(n)):Ps(n),je(n,n),n}function vt(){if(F)return je(Q,null),Q;var e=document.createDocumentFragment(),t=document.createComment(""),n=Be();return e.append(t,n),je(t,n),e}function T(e,t){if(F){var n=ee;(!(n.f&nn)||n.nodes.end===null)&&(n.nodes.end=Q),Qe();return}e!==null&&e.before(t)}function wv(){if(F&&Q&&Q.nodeType===rn&&Q.textContent?.startsWith("$")){const e=Q.textContent.substring(1);return Qe(),e}return(window.__svelte??={}).uid??=1,`c${window.__svelte.uid++}`}const kv=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function Sv(e){return kv.includes(e)||e.toLowerCase()==="!doctype"}function Ev(e){return e.endsWith("capture")&&e!=="gotpointercapture"&&e!=="lostpointercapture"}const xv=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function Tv(e){return xv.includes(e)}const Av={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 Iv(e){return e=e.toLowerCase(),Av[e]??e}const Rv=["touchstart","touchmove"];function Cv(e){return Rv.includes(e)}const $v=["textarea","script","style","title"];function Pv(e){return $v.includes(e)}function uc(e){return e?.replace(/\//g,"/")}let us=!0;function Bn(e){us=e}function O(e,t){var n=t==null?"":typeof t=="object"?`${t}`:t;n!==(e.__t??=e.nodeValue)&&(e.__t=n,e.nodeValue=`${n}`)}function Ue(e,t){return fc(e,t)}function dc(e,t){Ea(),t.intro=t.intro??!1;const n=t.target,r=F,s=Q;try{for(var a=Ee(n);a&&(a.nodeType!==rn||a.data!==ks);)a=gt(a);if(!a)throw xn;we(!0),ge(a);const i=fc(e,{...t,anchor:a});return we(!1),i}catch(i){if(i instanceof Error&&i.message.split(`
|
|
5
|
-
`).some(l=>l.startsWith("https://svelte.dev/e/")))throw i;return i!==xn&&console.warn("Failed to hydrate: ",i),t.recover===!1&&Vd(),Ea(),Za(n),we(!1),Ue(e,t)}finally{we(r),ge(s)}}const Kr=new Map;function fc(e,{target:t,anchor:n,props:r={},events:s,context:a,intro:i=!0,transformError:l}){Ea();var c=void 0,u=Zf(()=>{var d=n??t.appendChild(Be());Rl(d,{pending:()=>{}},w=>{ae({});var y=he;if(a&&(y.c=a),s&&(r.$$events=s),F&&je(w,null),us=i,c=e(w,r)||{},us=!0,F&&(ee.nodes.end=Q,Q===null||Q.nodeType!==rn||Q.data!==Es))throw $r(),xn;ie()},l);var f=new Set,v=w=>{for(var y=0;y<w.length;y++){var k=w[y];if(!f.has(k)){f.add(k);var b=Cv(k);for(const E of[t,document]){var A=Kr.get(E);A===void 0&&(A=new Map,Kr.set(E,A));var m=A.get(k);m===void 0?(E.addEventListener(k,Aa,{passive:b}),A.set(k,1)):A.set(k,m+1)}}}};return v(xs(ac)),Ta.add(v),()=>{for(var w of f)for(const b of[t,document]){var y=Kr.get(b),k=y.get(w);--k==0?(b.removeEventListener(w,Aa),y.delete(w),y.size===0&&Kr.delete(b)):y.set(w,k)}Ta.delete(v),d!==n&&d.parentNode?.removeChild(d)}});return Ia.set(c,u),c}let Ia=new WeakMap;function Xe(e,t){const n=Ia.get(e);return n?(Ia.delete(e),n(t)):Promise.resolve()}function Dv(e){const t=e();t&&Sv(t)&&af()}function Lv(e){const t=e();t&&!(typeof t=="string")&&Id()}function Ov(e,t){e!=null&&typeof e.subscribe!="function"&&Ad()}function vc(e){return e.toString=()=>(Td(),""),e}class sr{anchor;#e=new Map;#t=new Map;#n=new Map;#a=new Set;#s=!0;constructor(t,n=!0){this.anchor=t,this.#s=n}#i=t=>{if(this.#e.has(t)){var n=this.#e.get(t),r=this.#t.get(n);if(r)ri(r),this.#a.delete(n);else{var s=this.#n.get(n);s&&(this.#t.set(n,s.effect),this.#n.delete(n),s.fragment.lastChild.remove(),this.anchor.before(s.fragment),r=s.effect)}for(const[a,i]of this.#e){if(this.#e.delete(a),a===t)break;const l=this.#n.get(i);l&&(Ne(l.effect),this.#n.delete(i))}for(const[a,i]of this.#t){if(a===n||this.#a.has(a))continue;const l=()=>{if(Array.from(this.#e.values()).includes(a)){var u=document.createDocumentFragment();si(i,u),u.append(Be()),this.#n.set(a,{effect:i,fragment:u})}else Ne(i);this.#a.delete(a),this.#t.delete(a)};this.#s||!r?(this.#a.add(a),Sn(i,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)||(Ne(s.effect),this.#n.delete(r))};ensure(t,n){var r=te,s=Vl();if(n&&!this.#t.has(t)&&!this.#n.has(t))if(s){var a=document.createDocumentFragment(),i=Be();a.append(i),this.#n.set(t,{effect:Ye(()=>n(i)),fragment:a})}else this.#t.set(t,Ye(()=>n(this.anchor)));if(this.#e.set(r,t),s){for(const[l,c]of this.#t)l===t?r.unskip_effect(c):r.skip_effect(c);for(const[l,c]of this.#n)l===t?r.unskip_effect(c.effect):r.skip_effect(c.effect);r.oncommit(this.#i),r.ondiscard(this.#r)}else F&&(this.anchor=Q),this.#i(r)}}function li(e,t,...n){var r=new sr(e);Yt(()=>{const s=t()??null;r.ensure(s,s&&(a=>s(a,...n)))},Nt)}function Mv(e,t){const n=(r,...s)=>{var a=Ha;Gi(e);try{return t(r,...s)}finally{Gi(a)}};return vc(n),n}function Nv(e){return(t,...n)=>{var r=e(...n),s;if(F)s=Q,Qe();else{var a=r.render().trim(),i=oi(a);s=Ee(i),t.before(s)}const l=r.setup?.(s);je(s,s),typeof l=="function"&&yt(l)}}function jv(){return le===null&&qd(),(le.ac??=new AbortController).signal}function ci(e){he===null&&nr(),Me(()=>{const t=ke(e);if(typeof t=="function")return t})}function hc(e){he===null&&nr(),ci(()=>()=>ke(e))}function zv(e,t,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(e,{detail:t,bubbles:n,cancelable:r})}function qv(){const e=he;return e===null&&nr(),(t,n,r)=>{const s=e.s.$$events?.[t];if(s){const a=tr(s)?s.slice():[s],i=zv(t,n,r);for(const l of a)l.call(e.x,i);return!i.defaultPrevented}return!0}}function Vv(e){he===null&&nr(),he.l===null&&ol(),pc(he).b.push(e)}function Uv(e){he===null&&nr(),he.l===null&&ol(),pc(he).a.push(e)}function pc(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}const mc=Object.freeze(Object.defineProperty({__proto__:null,afterUpdate:Uv,beforeUpdate:Vv,createContext:hf,createEventDispatcher:qv,createRawSnippet:Nv,flushSync:hn,fork:Pf,getAbortSignal:jv,getAllContexts:pf,getContext:hl,hasContext:ml,hydratable:uv,hydrate:dc,mount:Ue,onDestroy:hc,onMount:ci,setContext:pl,settled:lv,tick:ai,unmount:Xe,untrack:ke},Symbol.toStringTag,{value:"Module"}));function Bv(){return Symbol(Xo)}function gc(e,t,n,r){return e!==t&&typeof t=="object"&&Ke in t&&Wd(n,uc(r)),e}function Fv(e,t,n,r,s){return gc(n==="="?e[t]=r:n==="&&="?e[t]&&=r():n==="||="?e[t]||=r():n==="??="?e[t]??=r():null,ke(()=>e[t]),t,s)}async function Hv(e,t,n,r,s){return gc(n==="="?e[t]=await r:n==="&&="?e[t]&&=await r():n==="||="?e[t]||=await r():n==="??="?e[t]??=await r():null,ke(()=>e[t]),t,s)}var no=new Map;function Kv(e){var t=no.get(e);if(t){for(const n of t)n.remove();no.delete(e)}}function Wv(e,t,n){return(...r)=>{const s=e(...r);var a=F?s:s.nodeType===al?s.firstChild:s;return _c(a,t,n),s}}function Yv(e,t,n){e.__svelte_meta={parent:Xr,loc:{file:t,line:n[0],column:n[1]}},n[2]&&_c(e.firstChild,t,n[2])}function _c(e,t,n){for(var r=0,s=0;e&&r<n.length;){if(F&&e.nodeType===rn){var a=e;a.data[0]===ks?s+=1:a.data[0]===Es&&(s-=1)}s===0&&e.nodeType===sl&&Yv(e,t,n[r++]),e=e.nextSibling}}function Gv(e){const t=mt(e);function n(r,s){let a={},i={},l,c=!1,u=r;return Yt(()=>{if(a!==(a=o(t))){if(l){for(var d in i)delete i[d];Ne(l)}l=Ye(()=>{u=u[Sd]??u,c&&Bn(!1);var f=new.target?new a(u,s):a(u,s);f&&Object.defineProperties(i,Object.getOwnPropertyDescriptors(f)),c&&Bn(!0)}),ee.nodes=l.nodes}},Nt),c=!0,F&&(u=Q),i}return n[dt]=e[dt],n[Nn]={fn:e,current:t,update:r=>{g(n[Nn].current,r[Nn].fn),r[Nn].current=n[Nn].current}},n}function Xv(e){const t=he?.function,n=he?.p?.function;return{mutation:(r,s,a,i,l)=>{const c=s[0];if(ro(e,c)||!n)return a;let u=e;for(let f=0;f<s.length-1;f++)if(u=u[s[f]],!u?.[Ke])return a;const d=uc(`${t[dt]}:${i}:${l}`);return ef(c,d,r,n[dt]),a},binding:(r,s,a)=>{!ro(e,r)&&n&&a()?.[Ke]&&Qd(t[dt],r,s[dt],n[dt])}}}function ro(e,t){const n=Ke in e||As in e;return!!Pt(e,t)?.set||n&&t in e||!(t in e)}function Jv(e){e&&$d(e[dt]??"a component",e.name)}function Zv(){const e=he?.function;function t(n){Cd(n,e[dt])}return{$destroy:()=>t("$destroy()"),$on:()=>t("$on(...)"),$set:()=>t("$set(...)")}}function Qv(e,t,n=!1){ei();let r=!0,s=Se;Kl(()=>{try{var a=e()}catch(l){s=l;return}var i=Cn(a,!0,!0);ke(()=>{if(n){if(t(...i),!r){const l=df("$inspect(...)");l&&(console.groupCollapsed("stack trace"),console.log(l),console.groupEnd())}}else t(r?"init":"update",...i)}),r=!1}),Ce(()=>{try{e()}catch{}s!==Se&&(console.error(s),s=Se)})}function eh(e,t=[],n=[],r){var s=F,a=null;if(s&&(Qe(),a=Rn(!1)),n.length===0&&t.every(c=>c.settled)){r(e),s&&ge(a);return}const i=Dr();if(s){var l=Q;ge(a)}Pr(t,[],n,c=>{s&&(we(!0),ge(l));try{for(const u of c)o(u);r(e,...c)}finally{s&&we(!1),i()}})}function th(e,...t){(typeof e!="object"||!(e instanceof Node))&&Yi();for(let n of t)typeof n!="function"&&Yi()}const so=0,ao=1,nh=2;function rh(e,t,n,r,s){F&&Qe();var a=Se,i=mt(a),l=mt(a),c=new sr(e);Yt(()=>{var u=te;u.deactivate();var d=t();u.activate();var f=!1;let v=F&&Wi(d)===(e.data===Ss);if(v&&(ge(Rn()),we(!1)),Wi(d)){var w=Cs(),y=!1;const k=b=>{if(!f){y=!0,w(!1),At.ensure(),F&&we(!1);try{b()}finally{$n(!1),Hn||hn()}}};d.then(b=>{k(()=>{Ft(i,b),c.ensure(ao,r&&(A=>r(A,i)))})},b=>{k(()=>{if(Ft(l,b),c.ensure(nh,s&&(A=>s(A,l))),!s)throw l.v})}),F?c.ensure(so,n):Ze(()=>{y||k(()=>{c.ensure(so,n)})})}else Ft(i,d),c.ensure(ao,r&&(k=>r(k,i)));return v&&we(!0),()=>{f=!0}})}function K(e,t,n=!1){var r;F&&(r=Q,Qe());var s=new sr(e),a=n?Nt:0;function i(l,c){if(F){var u=Fa(r);if(l!==parseInt(u.substring(1))){var d=Rn();ge(d),s.anchor=d,we(!1),s.ensure(l,c),we(!0);return}}s.ensure(l,c)}Yt(()=>{var l=!1;t((c,u=0)=>{l=!0,i(u,c)}),l||i(-1,null)},a)}const sh=Symbol("NaN");function ah(e,t,n){F&&Qe();var r=new sr(e);Yt(()=>{var s=t();s!==s&&(s=sh),r.ensure(s,n)})}function ih(e,t){F&&ge(Ee(e)),Ce(()=>{var n=t();for(var r in n){var s=n[r];s?e.style.setProperty(r,s):e.style.removeProperty(r)}})}function Jn(e,t){return t}function oh(e,t,n){for(var r=[],s=t.length,a,i=t.length,l=0;l<s;l++){let f=t[l];Sn(f,()=>{if(a){if(a.pending.delete(f),a.done.add(f),a.pending.size===0){var v=e.outrogroups;Ra(e,xs(a.done)),v.delete(a),v.size===0&&(e.outrogroups=null)}}else i-=1},!1)}if(i===0){var c=r.length===0&&n!==null;if(c){var u=n,d=u.parentNode;Za(d),d.append(u),e.items.clear()}Ra(e,t,!c)}else a={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(a)}function Ra(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(const i of e.pending.values())for(const l of i)r.add(e.items.get(l).e)}for(var s=0;s<t.length;s++){var a=t[s];if(r?.has(a)){a.f|=Ut;const i=document.createDocumentFragment();si(a,i)}else Ne(t[s],n)}}var io;function _e(e,t,n,r,s,a=null){var i=e,l=new Map,c=(t&Ko)!==0;if(c){var u=e;i=F?ge(Ee(u)):u.appendChild(Be())}F&&Qe();var d=null,f=Ga(()=>{var E=n();return tr(E)?E:E==null?[]:xs(E)}),v,w=new Map,y=!0;function k(E){m.effect.f&at||(m.pending.delete(E),m.fallback=d,lh(m,v,i,t,r),d!==null&&(v.length===0?d.f&Ut?(d.f^=Ut,hr(d,null,i)):ri(d):Sn(d,()=>{d=null})))}function b(E){m.pending.delete(E)}var A=Yt(()=>{v=o(f);var E=v.length;let $=!1;if(F){var N=Fa(i)===Ss;N!==(E===0)&&(i=Rn(),ge(i),we(!1),$=!0)}for(var I=new Set,_=te,L=Vl(),R=0;R<E;R+=1){F&&Q.nodeType===rn&&Q.data===Es&&(i=Q,$=!0,we(!1));var P=v[R],x=r(P,R),D=y?null:l.get(x);D?(D.v&&Ft(D.v,P),D.i&&Ft(D.i,R),L&&_.unskip_effect(D.e)):(D=ch(l,y?i:io??=Be(),P,x,R,s,t,n),y||(D.e.f|=Ut),l.set(x,D)),I.add(x)}if(E===0&&a&&!d&&(y?d=Ye(()=>a(i)):(d=Ye(()=>a(io??=Be())),d.f|=Ut)),E>I.size&&Pd(),F&&E>0&&ge(Rn()),!y)if(w.set(_,I),L){for(const[z,M]of l)I.has(z)||_.skip_effect(M.e);_.oncommit(k),_.ondiscard(b)}else k(_);$&&we(!0),o(f)}),m={effect:A,items:l,pending:w,outrogroups:null,fallback:d};y=!1,F&&(i=Q)}function ur(e){for(;e!==null&&!(e.f&Ot);)e=e.next;return e}function lh(e,t,n,r,s){var a=(r&ad)!==0,i=t.length,l=e.items,c=ur(e.effect.first),u,d=null,f,v=[],w=[],y,k,b,A;if(a)for(A=0;A<i;A+=1)y=t[A],k=s(y,A),b=l.get(k).e,b.f&Ut||(b.nodes?.a?.measure(),(f??=new Set).add(b));for(A=0;A<i;A+=1){if(y=t[A],k=s(y,A),b=l.get(k).e,e.outrogroups!==null)for(const P of e.outrogroups)P.pending.delete(b),P.done.delete(b);if(b.f&Je&&(ri(b),a&&(b.nodes?.a?.unfix(),(f??=new Set).delete(b))),b.f&Ut)if(b.f^=Ut,b===c)hr(b,null,n);else{var m=d?d.next:c;b===e.effect.last&&(e.effect.last=b.prev),b.prev&&(b.prev.next=b.next),b.next&&(b.next.prev=b.prev),un(e,d,b),un(e,b,m),hr(b,m,n),d=b,v=[],w=[],c=ur(d.next);continue}if(b!==c){if(u!==void 0&&u.has(b)){if(v.length<w.length){var E=w[0],$;d=E.prev;var N=v[0],I=v[v.length-1];for($=0;$<v.length;$+=1)hr(v[$],E,n);for($=0;$<w.length;$+=1)u.delete(w[$]);un(e,N.prev,I.next),un(e,d,N),un(e,I,E),c=E,d=I,A-=1,v=[],w=[]}else u.delete(b),hr(b,c,n),un(e,b.prev,b.next),un(e,b,d===null?e.effect.first:d.next),un(e,d,b),d=b;continue}for(v=[],w=[];c!==null&&c!==b;)(u??=new Set).add(c),w.push(c),c=ur(c.next);if(c===null)continue}b.f&Ut||v.push(b),d=b,c=ur(b.next)}if(e.outrogroups!==null){for(const P of e.outrogroups)P.pending.size===0&&(Ra(e,xs(P.done)),e.outrogroups?.delete(P));e.outrogroups.size===0&&(e.outrogroups=null)}if(c!==null||u!==void 0){var _=[];if(u!==void 0)for(b of u)b.f&Je||_.push(b);for(;c!==null;)!(c.f&Je)&&c!==e.fallback&&_.push(c),c=ur(c.next);var L=_.length;if(L>0){var R=r&Ko&&i===0?n:null;if(a){for(A=0;A<L;A+=1)_[A].nodes?.a?.measure();for(A=0;A<L;A+=1)_[A].nodes?.a?.fix()}oh(e,_,R)}}a&&Ze(()=>{if(f!==void 0)for(b of f)b.nodes?.a?.apply()})}function ch(e,t,n,r,s,a,i,l){var c=i&rd?i&id?mt(n):$s(n,!1,!1):null,u=i&sd?mt(s):null;return{v:c,i:u,e:Ye(()=>(a(t,c??n,u??s,l),()=>{e.delete(r)}))}}function hr(e,t,n){if(e.nodes)for(var r=e.nodes.start,s=e.nodes.end,a=t&&!(t.f&Ut)?t.nodes.start:n;r!==null;){var i=gt(r);if(a.before(r),r===s)return;r=i}}function un(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function uh(e,t,n=!1,r=!1,s=!1,a=!1){var i=e,l="";if(n){var c=e;F&&(i=ge(Ee(c)))}q(()=>{var u=ee;if(l===(l=t()??"")){F&&Qe();return}if(n&&!F){u.nodes=null,c.innerHTML=l,l!==""&&je(Ee(c),c.lastChild);return}if(u.nodes!==null&&(Gl(u.nodes.start,u.nodes.end),u.nodes=null),l!==""){if(F){Q.data;for(var d=Qe(),f=d;d!==null&&(d.nodeType!==rn||d.data!=="");)f=d,d=gt(d);if(d===null)throw $r(),xn;je(Q,f),i=ge(d);return}var v=r?Ir:s?Ua:void 0,w=gn(r?"svg":s?"math":"template",v);w.innerHTML=l;var y=r||s?w:w.content;if(je(Ee(y),y.lastChild),r||s)for(;Ee(y);)i.before(Ee(y));else i.before(y)}})}function dh(e,t,n,r,s){F&&Qe();var a=t.$$slots?.[n],i=!1;a===!0&&(a=t[n==="default"?"children":n],i=!0),a===void 0?s!==null&&s(e):a(e,i?()=>r:r)}function fh(e){const t={};e.children&&(t.default=!0);for(const n in e.$$slots)t[n]=!0;return t}function Nr(e,t,n){var r;F&&(r=Q,Qe());var s=new sr(e);Yt(()=>{var a=t()??null;if(F){var i=Fa(r),l=i===ks,c=a!==null;if(l!==c){var u=Rn();ge(u),s.anchor=u,we(!1),s.ensure(a,a&&(d=>n(d,a))),we(!0);return}}s.ensure(a,a&&(d=>n(d,a)))},Nt)}const vh=()=>performance.now(),Vt={tick:e=>requestAnimationFrame(e),now:()=>vh(),tasks:new Set};function yc(){const e=Vt.now();Vt.tasks.forEach(t=>{t.c(e)||(Vt.tasks.delete(t),t.f())}),Vt.tasks.size!==0&&Vt.tick(yc)}function hh(e){let t;return Vt.tasks.size===0&&Vt.tick(yc),{promise:new Promise(n=>{Vt.tasks.add(t={c:e,f:n})}),abort(){Vt.tasks.delete(t)}}}function ds(e,t){_n(()=>{e.dispatchEvent(new CustomEvent(t))})}function ph(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 oo(e){const t={},n=e.split(";");for(const r of n){const[s,a]=r.split(":");if(!s||a===void 0)break;const i=ph(s.trim());t[i]=a.trim()}return t}const mh=e=>e;let bc=null;function lo(e){bc=e}function gh(e,t,n){var r=bc??ee,s=r.nodes,a,i,l,c=null;s.a??={element:e,measure(){a=this.element.getBoundingClientRect()},apply(){if(l?.abort(),i=this.element.getBoundingClientRect(),a.left!==i.left||a.right!==i.right||a.top!==i.top||a.bottom!==i.bottom){const u=t()(this.element,{from:a,to:i},n?.());l=fs(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 v=e.style;c={position:v.position,width:v.width,height:v.height,transform:v.transform},v.position="absolute",v.width=d,v.height=f;var w=e.getBoundingClientRect();if(a.left!==w.left||a.top!==w.top){var y=`translate(${a.left-w.left}px, ${a.top-w.top}px)`;v.transform=v.transform?`${v.transform} ${y}`:y}}}},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 _h(e,t,n,r){var s=(e&ud)!==0,a=(e&dd)!==0,i=s&&a,l=(e&fd)!==0,c=i?"both":s?"in":"out",u,d=t.inert,f=t.style.overflow,v,w;function y(){return _n(()=>u??=n()(t,r?.()??{},{direction:c}))}var k={is_global:l,in(){if(t.inert=d,!s){w?.abort(),w?.reset?.();return}a||v?.abort(),v=fs(t,y(),w,1,()=>{ds(t,"introend"),v?.abort(),v=u=void 0,t.style.overflow=f})},out(E){if(!a){E?.(),u=void 0;return}t.inert=!0,w=fs(t,y(),v,0,()=>{ds(t,"outroend"),E?.()})},stop:()=>{v?.abort(),w?.abort()}},b=ee;if((b.nodes.t??=[]).push(k),s&&us){var A=l;if(!A){for(var m=b.parent;m&&m.f&Nt;)for(;(m=m.parent)&&!(m.f&Dt););A=!m||(m.f&nn)!==0}A&&_t(()=>{ke(()=>k.in())})}}function fs(e,t,n,r,s){var a=r===1;if(jn(t)){var i,l=!1;return Ze(()=>{if(!l){var b=t({direction:a?"in":"out"});i=fs(e,b,n,r,s)}}),{abort:()=>{l=!0,i?.abort()},deactivate:()=>i.deactivate(),reset:()=>i.reset(),t:()=>i.t()}}if(n?.deactivate(),!t?.duration&&!t?.delay)return ds(e,a?"introstart":"outrostart"),s(),{abort:ft,deactivate:ft,reset:ft,t:()=>r};const{delay:c=0,css:u,tick:d,easing:f=mh}=t;var v=[];if(a&&n===void 0&&(d&&d(0,1),u)){var w=oo(u(0,1));v.push(w,w)}var y=()=>1-r,k=e.animate(v,{duration:c,fill:"forwards"});return k.onfinish=()=>{k.cancel(),ds(e,a?"introstart":"outrostart");var b=n?.t()??1-r;n?.abort();var A=r-b,m=t.duration*Math.abs(A),E=[];if(m>0){var $=!1;if(u)for(var N=Math.ceil(m/16.666666666666668),I=0;I<=N;I+=1){var _=b+A*f(I/N),L=oo(u(_,1-_));E.push(L),$||=L.overflow==="hidden"}$&&(e.style.overflow="hidden"),y=()=>{var R=k.currentTime;return b+A*f(R/m)},d&&hh(()=>{if(k.playState!=="running")return!1;var R=y();return d(R,1-R),!0})}k=e.animate(E,{duration:m,fill:"forwards"}),k.onfinish=()=>{y=()=>r,d?.(r,1-r),s()}},{abort:()=>{k&&(k.cancel(),k.effect=null,k.onfinish=ft)},deactivate:()=>{s=ft},reset:()=>{r===0&&d?.(1,0)},t:()=>y()}}function yh(e,t,n,r,s,a){let i=F;F&&Qe();var l=null;F&&Q.nodeType===sl&&(l=Q,Qe());var c=F?Q:e,u=ee,d=new sr(c,!1);Yt(()=>{const f=t()||null;var v=s?s():n||f==="svg"?Ir:void 0;if(f===null){d.ensure(null,null),Bn(!0);return}return d.ensure(f,w=>{if(f){if(l=F?l:gn(f,v),je(l,l),r){F&&Pv(f)&&l.append(document.createComment(""));var y=F?Ee(l):l.appendChild(Be());F&&(y===null?we(!1):ge(y)),lo(u),r(l,y),lo(null)}ee.nodes.end=l,w.before(l)}F&&ge(w)}),Bn(!0),()=>{f&&Bn(!1)}},Nt),yt(()=>{Bn(!0)}),i&&(we(!0),ge(c))}function bh(e,t){let n=null,r=F;var s;if(F){n=Q;for(var a=Ee(document.head);a!==null&&(a.nodeType!==rn||a.data!==e);)a=gt(a);if(a===null)we(!1);else{var i=gt(a);a.remove(),ge(i)}}F||(s=document.head.appendChild(Be()));try{Yt(()=>t(s),nl|mn)}finally{r&&(we(!0),ge(n))}}function wh(e,t){_t(()=>{var n=e.getRootNode(),r=n.host?n:n.head??n.ownerDocument.head;if(!r.querySelector("#"+t.hash)){const s=gn("style");s.id=t.hash,s.textContent=t.code,r.appendChild(s)}})}function wc(e,t,n){_t(()=>{var r=ke(()=>t(e,n?.())||{});if(n&&r?.update){var s=!1,a={};Ce(()=>{var i=n();ii(i),s&&ul(a,i)&&(a=i,r.update(i))}),s=!0}if(r?.destroy)return()=>r.destroy()})}function ui(e,t){var n=void 0,r;Wl(()=>{n!==(n=t())&&(r&&(Ne(r),r=null),n&&(r=Ye(()=>{_t(()=>n(e))})))})}const kh=/[&"<]/g;function Sh(e,t){const n=String(e??""),r=kh;r.lastIndex=0;let s="",a=0;for(;r.test(n);){const i=r.lastIndex-1,l=n[i];s+=n.substring(a,i)+(l==="&"?"&":l==='"'?""":"<"),a=i+1}return s+n.substring(a)}function kc(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=kc(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function Eh(){for(var e,t,n=0,r="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=kc(e))&&(r&&(r+=" "),r+=t);return r}const co={translate:new Map([[!0,"yes"],[!1,"no"]])};function xh(e,t,n=!1){if(e==="hidden"&&t!=="until-found"&&(n=!0),t==null||!t&&n)return"";const r=gd.call(co,e)&&co[e].get(t)||t,s=n?'=""':`="${Sh(r)}"`;return` ${e}${s}`}function Sc(e){return typeof e=="object"?Eh(e):e??""}const uo=[...`
|
|
6
|
-
\r\f \v\uFEFF`];function Th(e,t,n){var r=e==null?"":""+e;if(t&&(r=r?r+" "+t:t),n){for(var s of Object.keys(n))if(n[s])r=r?r+" "+s:s;else if(r.length)for(var a=s.length,i=0;(i=r.indexOf(s,i))>=0;){var l=i+a;(i===0||uo.includes(r[i-1]))&&(l===r.length||uo.includes(r[l]))?r=(i===0?"":r.substring(0,i))+r.substring(l+1):i=l}}return r===""?null:r}function fo(e,t=!1){var n=t?" !important;":";",r="";for(var s of Object.keys(e)){var a=e[s];a!=null&&a!==""&&(r+=" "+s+": "+a+n)}return r}function ra(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function Ah(e,t){if(t){var n="",r,s;if(Array.isArray(t)?(r=t[0],s=t[1]):r=t,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var a=!1,i=0,l=!1,c=[];r&&c.push(...Object.keys(r).map(ra)),s&&c.push(...Object.keys(s).map(ra));var u=0,d=-1;const k=e.length;for(var f=0;f<k;f++){var v=e[f];if(l?v==="/"&&e[f-1]==="*"&&(l=!1):a?a===v&&(a=!1):v==="/"&&e[f+1]==="*"?l=!0:v==='"'||v==="'"?a=v:v==="("?i++:v===")"&&i--,!l&&a===!1&&i===0){if(v===":"&&d===-1)d=f;else if(v===";"||f===k-1){if(d!==-1){var w=ra(e.substring(u,d).trim());if(!c.includes(w)){v!==";"&&f++;var y=e.substring(u,f).trim();n+=" "+y+";"}}u=f+1,d=-1}}}}return r&&(n+=fo(r)),s&&(n+=fo(s,!0)),n=n.trim(),n===""?null:n}return e==null?null:String(e)}function Oe(e,t,n,r,s,a){var i=e.__className;if(F||i!==n||i===void 0){var l=Th(n,r,a);(!F||l!==e.getAttribute("class"))&&(l==null?e.removeAttribute("class"):t?e.className=l:e.setAttribute("class",l)),e.__className=n}else if(a&&s!==a)for(var c in a){var u=!!a[c];(s==null||u!==!!s[c])&&e.classList.toggle(c,u)}return a}function sa(e,t={},n,r){for(var s in n){var a=n[s];t[s]!==a&&(n[s]==null?e.style.removeProperty(s):e.style.setProperty(s,a,r))}}function Gt(e,t,n,r){var s=e.__style;if(F||s!==t){var a=Ah(t,r);(!F||a!==e.getAttribute("style"))&&(a==null?e.removeAttribute("style"):e.style.cssText=a),e.__style=t}else r&&(Array.isArray(r)?(sa(e,n?.[0],r[0]),sa(e,n?.[1],r[1],"important")):sa(e,n,r));return r}function kr(e,t,n=!1){if(e.multiple){if(t==null)return;if(!tr(t))return tf();for(var r of e.options)r.selected=t.includes(gr(r));return}for(r of e.options){var s=gr(r);if(Nl(s,t)){r.selected=!0;return}}(!n||t!==void 0)&&(e.selectedIndex=-1)}function di(e){var t=new MutationObserver(()=>{kr(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),yt(()=>{t.disconnect()})}function vs(e,t,n=t){var r=new WeakSet,s=!0;Or(e,"change",a=>{var i=a?"[selected]":":checked",l;if(e.multiple)l=[].map.call(e.querySelectorAll(i),gr);else{var c=e.querySelector(i)??e.querySelector("option:not([disabled])");l=c&&gr(c)}n(l),e.__value=l,te!==null&&r.add(te)}),_t(()=>{var a=t();if(e===document.activeElement){var i=te;if(r.has(i))return}if(kr(e,a,s),s&&a===void 0){var l=e.querySelector(":checked");l!==null&&(a=gr(l),n(a))}e.__value=a,s=!1}),di(e)}function gr(e){return"__value"in e?e.__value:e.value}const qn=Symbol("class"),Vn=Symbol("style"),Ec=Symbol("is custom element"),xc=Symbol("is html"),Ih=On?"link":"LINK",Rh=On?"input":"INPUT",Ch=On?"option":"OPTION",$h=On?"select":"SELECT",Ph=On?"progress":"PROGRESS";function xe(e){if(F){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute("value")){var r=e.value;Te(e,"value",null),e.value=r}if(e.hasAttribute("checked")){var s=e.checked;Te(e,"checked",null),e.checked=s}}};e.__on_r=n,Ze(n),Bl()}}function Dh(e,t){var n=Ds(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==Ph)||(e.value=t??"")}function Lh(e,t){var n=Ds(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function Tc(e,t){t?e.hasAttribute("selected")||e.setAttribute("selected",""):e.removeAttribute("selected")}function Oh(e,t){const n=e.checked;e.defaultChecked=t,e.checked=n}function Mh(e,t){const n=e.value;e.defaultValue=t,e.value=n}function Te(e,t,n,r){var s=Ds(e);F&&(s[t]=e.getAttribute(t),t==="src"||t==="srcset"||t==="href"&&e.nodeName===Ih)||s[t]!==(s[t]=n)&&(t==="loading"&&(e[wd]=n),n==null?e.removeAttribute(t):typeof n!="string"&&fi(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function Nh(e,t,n){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n)}function jh(e,t,n){var r=le,s=ee;let a=F;F&&we(!1),it(null),We(null);try{t!=="style"&&(Ca.has(e.getAttribute("is")||e.nodeName)||!customElements||customElements.get(e.getAttribute("is")||e.nodeName.toLowerCase())?fi(e).includes(t):n&&typeof n=="object")?e[t]=n:Te(e,t,n==null?n:String(n))}finally{it(r),We(s),a&&we(!0)}}function zh(e,t,n,r,s=!1,a=!1){if(F&&s&&e.nodeName===Rh){var i=e,l=i.type==="checkbox"?"defaultChecked":"defaultValue";l in n||xe(i)}var c=Ds(e),u=c[Ec],d=!c[xc];let f=F&&u;f&&we(!1);var v=t||{},w=e.nodeName===Ch;for(var y in t)y in n||(n[y]=null);n.class?n.class=Sc(n.class):(r||n[qn])&&(n.class=null),n[Vn]&&(n.style??=null);var k=fi(e);for(const I in n){let _=n[I];if(w&&I==="value"&&_==null){e.value=e.__value="",v[I]=_;continue}if(I==="class"){var b=e.namespaceURI==="http://www.w3.org/1999/xhtml";Oe(e,b,_,r,t?.[qn],n[qn]),v[I]=_,v[qn]=n[qn];continue}if(I==="style"){Gt(e,_,t?.[Vn],n[Vn]),v[I]=_,v[Vn]=n[Vn];continue}var A=v[I];if(!(_===A&&!(_===void 0&&e.hasAttribute(I)))){v[I]=_;var m=I[0]+I[1];if(m!=="$$")if(m==="on"){const L={},R="$$"+I;let P=I.slice(2);var E=Tv(P);if(Ev(P)&&(P=P.slice(0,-7),L.capture=!0),!E&&A){if(_!=null)continue;e.removeEventListener(P,v[R],L),v[R]=null}if(E)Y(P,e,_),be([P]);else if(_!=null){let x=function(D){v[I].call(this,D)};v[R]=ic(P,e,x,L)}}else if(I==="style")Te(e,I,_);else if(I==="autofocus")Qa(e,!!_);else if(!u&&(I==="__value"||I==="value"&&_!=null))e.value=e.__value=_;else if(I==="selected"&&w)Tc(e,_);else{var $=I;d||($=Iv($));var N=$==="defaultValue"||$==="defaultChecked";if(_==null&&!u&&!N)if(c[I]=null,$==="value"||$==="checked"){let L=e;const R=t===void 0;if($==="value"){let P=L.defaultValue;L.removeAttribute($),L.defaultValue=P,L.value=L.__value=R?P:null}else{let P=L.defaultChecked;L.removeAttribute($),L.defaultChecked=P,L.checked=R?P:!1}}else e.removeAttribute(I);else N||k.includes($)&&(u||typeof _!="string")?(e[$]=_,$ in c&&(c[$]=Se)):typeof _!="function"&&Te(e,$,_)}}}return f&&we(!0),v}function qh(e,t,n=[],r=[],s=[],a,i=!1,l=!1){Pr(s,n,r,c=>{var u=void 0,d={},f=e.nodeName===$h,v=!1;if(Wl(()=>{var y=t(...c.map(o)),k=zh(e,u,y,a,i,l);v&&f&&"value"in y&&kr(e,y.value);for(let A of Object.getOwnPropertySymbols(d))y[A]||Ne(d[A]);for(let A of Object.getOwnPropertySymbols(y)){var b=y[A];A.description===Xo&&(!u||b!==u[A])&&(d[A]&&Ne(d[A]),d[A]=Ye(()=>ui(e,()=>b))),k[A]=b}u=k}),f){var w=e;_t(()=>{kr(w,u.value,!0),di(w)})}v=!0})}function Ds(e){return e.__attributes??={[Ec]:e.nodeName.includes("-"),[xc]:e.namespaceURI===Go}}var Ca=new Map;function fi(e){var t=e.getAttribute("is")||e.nodeName,n=Ca.get(t);if(n)return n;Ca.set(t,n=[]);for(var r,s=e,a=Element.prototype;a!==s;){r=Zo(s);for(var i in r)r[i].set&&n.push(i);s=Ts(s)}return n}let aa=null;function Ac(){if(aa===null){var e=gn("select");e.innerHTML=oc("<option><span>t</span></option>"),aa=e.firstChild?.firstChild?.nodeType===1}return aa}function Vh(e,t){Ac()&&ui(e,()=>()=>{const n=e.closest("select");if(!n)return;const r=new MutationObserver(s=>{var a=!1;for(const i of s){if(i.target===e)return;a||=!!i.target.parentElement?.closest("option")?.selected}a&&(e.replaceWith(e=e.cloneNode(!0)),t(e))});return r.observe(n,{childList:!0,characterData:!0,subtree:!0}),()=>{r.disconnect()}})}function Uh(e,t){var n=F;Ac()||(we(!1),e.textContent="",e.append(Ul("")));try{t()}finally{n&&(F?h(e):(we(!0),ge(e)))}}function Bh(e){lt(document,["focusin","focusout"],t=>{t&&t.type==="focusout"&&t.relatedTarget||e(document.activeElement)})}function De(e,t,n=t){var r=new WeakSet;Or(e,"input",async s=>{var a=s?e.defaultValue:e.value;if(a=oa(e)?la(a):a,n(a),te!==null&&r.add(te),await ai(),a!==(a=t())){var i=e.selectionStart,l=e.selectionEnd,c=e.value.length;if(e.value=a??"",l!==null){var u=e.value.length;i===l&&l===c&&u>c?(e.selectionStart=u,e.selectionEnd=u):(e.selectionStart=i,e.selectionEnd=Math.min(l,u))}}}),(F&&e.defaultValue!==e.value||ke(t)==null&&e.value)&&(n(oa(e)?la(e.value):e.value),te!==null&&r.add(te)),Ce(()=>{var s=t();if(e===document.activeElement){var a=te;if(r.has(a))return}oa(e)&&s===la(e.value)||e.type==="date"&&!s&&!e.value||s!==e.value&&(e.value=s??"")})}const ia=new Set;function Fh(e,t,n,r,s=r){var a=n.getAttribute("type")==="checkbox",i=e;let l=!1;if(t!==null)for(var c of t)i=i[c]??=[];i.push(n),Or(n,"change",()=>{var u=n.__value;a&&(u=vo(i,u,n.checked)),s(u)},()=>s(a?[]:null)),Ce(()=>{var u=r();if(F&&n.defaultChecked!==n.checked){l=!0;return}a?(u=u||[],n.checked=u.includes(n.__value)):n.checked=Nl(n.__value,u)}),yt(()=>{var u=i.indexOf(n);u!==-1&&i.splice(u,1)}),ia.has(i)||(ia.add(i),Ze(()=>{i.sort((u,d)=>u.compareDocumentPosition(d)===4?-1:1),ia.delete(i)})),Ze(()=>{if(l){var u;if(a)u=vo(i,u,n.checked);else{var d=i.find(f=>f.checked);u=d?.__value}s(u)}})}function es(e,t,n=t){Or(e,"change",r=>{var s=r?e.defaultChecked:e.checked;n(s)}),(F&&e.defaultChecked!==e.checked||ke(t)==null)&&n(e.checked),Ce(()=>{var r=t();e.checked=!!r})}function vo(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 oa(e){var t=e.type;return t==="number"||t==="range"}function la(e){return e===""?null:+e}function Hh(e,t,n=t){Or(e,"change",()=>{n(e.files)}),F&&e.files&&n(e.files),Ce(()=>{e.files=t()})}function vi(e){for(var t=[],n=0;n<e.length;n+=1)t.push({start:e.start(n),end:e.end(n)});return t}function Kh(e,t,n=t){var r,s,a=()=>{cancelAnimationFrame(r),e.paused||(r=requestAnimationFrame(a));var i=e.currentTime;s!==i&&n(s=i)};r=requestAnimationFrame(a),e.addEventListener("timeupdate",a),Ce(()=>{var i=Number(t());s!==i&&!isNaN(i)&&(e.currentTime=s=i)}),yt(()=>{cancelAnimationFrame(r),e.removeEventListener("timeupdate",a)})}function Wh(e,t){var n;lt(e,["loadedmetadata","progress","timeupdate","seeking"],()=>{var r=e.buffered;(!n||n.length!==r.length||n.some((s,a)=>r.start(a)!==s.start||r.end(a)!==s.end))&&(n=vi(r),t(n))})}function Yh(e,t){lt(e,["loadedmetadata"],()=>t(vi(e.seekable)))}function Gh(e,t){lt(e,["timeupdate"],()=>t(vi(e.played)))}function Xh(e,t){lt(e,["seeking","seeked"],()=>t(e.seeking))}function Jh(e,t){lt(e,["timeupdate","ended"],()=>t(e.ended))}function Zh(e,t){lt(e,["loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","emptied"],()=>t(e.readyState))}function Qh(e,t,n=t){_t(()=>{var r=Number(t());r!==e.playbackRate&&!isNaN(r)&&(e.playbackRate=r)}),_t(()=>{lt(e,["ratechange"],()=>{n(e.playbackRate)})})}function ep(e,t,n=t){var r=t(),s=()=>{r!==e.paused&&n(r=e.paused)};lt(e,["play","pause","canplay"],s,r==null),_t(()=>{(r=!!t())!==e.paused&&(r?e.pause():e.play().catch(a=>{throw n(r=!0),a}))})}function tp(e,t,n=t){var r=()=>{n(e.volume)};t()==null&&r(),lt(e,["volumechange"],r,!1),Ce(()=>{var s=Number(t());s!==e.volume&&!isNaN(s)&&(e.volume=s)})}function np(e,t,n=t){var r=()=>{n(e.muted)};t()==null&&r(),lt(e,["volumechange"],r,!1),Ce(()=>{var s=!!t();e.muted!==s&&(e.muted=s)})}function rp(e){lt(window,["online","offline"],()=>{e(navigator.onLine)})}function sp(e,t,n){var r=Pt(e,t);r&&r.set&&(e[t]=n,yt(()=>{e[t]=null}))}class jr{#e=new WeakMap;#t;#n;static entries=new WeakMap;constructor(t){this.#n=t}observe(t,n){var r=this.#e.get(t)||new Set;return r.add(n),this.#e.set(t,r),this.#a().observe(t,this.#n),()=>{var s=this.#e.get(t);s.delete(n),s.size===0&&(this.#e.delete(t),this.#t.unobserve(t))}}#a(){return this.#t??(this.#t=new ResizeObserver(t=>{for(var n of t){jr.entries.set(n.target,n);for(var r of this.#e.get(n.target)||[])r(n)}}))}}var ap=new jr({box:"content-box"}),Ic=new jr({box:"border-box"}),ip=new jr({box:"device-pixel-content-box"});function op(e,t,n){var r=t==="contentRect"||t==="contentBoxSize"?ap:t==="borderBoxSize"?Ic:ip,s=r.observe(e,a=>n(a[t]));yt(s)}function lp(e,t,n){var r=Ic.observe(e,()=>n(e[t]));_t(()=>(ke(()=>n(e[t])),r))}function ho(e,t){return e===t||e?.[Ke]===t}function It(e={},t,n,r){var s=he.r,a=ee;return _t(()=>{var i,l;return Ce(()=>{i=l,l=r?.()||[],ke(()=>{e!==n(...l)&&(t(e,...l),i&&ho(n(...i),e)&&t(null,...i))})}),()=>{let c=a;for(;c!==s&&c.parent!==null&&c.parent.f&ga;)c=c.parent;const u=()=>{l&&ho(n(...l),e)&&t(null,...l)},d=c.teardown;c.teardown=()=>{u(),d?.()}}}),e}function cp(e,t,n,r=n){t.addEventListener("input",()=>{r(t[e])}),Ce(()=>{var s=n();if(t[e]!==s)if(s==null){var a=t[e];r(a)}else t[e]=s+""})}function up(e,t,n,r,s){var a=()=>{r(n[e])};n.addEventListener(t,a),s?Ce(()=>{n[e]=s()}):a(),(n===document.body||n===window||n===document)&&yt(()=>{n.removeEventListener(t,a)})}function dp(e,t){lt(e,["focus","blur"],()=>{t(e===document.activeElement)})}function fp(e,t,n=t){var r=e==="x",s=()=>_n(()=>{a=!0,clearTimeout(i),i=setTimeout(l,100),n(window[r?"scrollX":"scrollY"])});addEventListener("scroll",s,{passive:!0});var a=!1,i,l=()=>{a=!1},c=!0;Ce(()=>{var u=t();c?c=!1:!a&&u!=null&&(a=!0,clearTimeout(i),r?scrollTo(u,window.scrollY):scrollTo(window.scrollX,u),i=setTimeout(l,100))}),_t(s),yt(()=>{removeEventListener("scroll",s)})}function vp(e,t){lt(window,["resize"],()=>_n(()=>t(window[e])))}function hp(e){return function(...t){var n=t[0];n.isTrusted&&e?.apply(this,t)}}function pp(e){return function(...t){var n=t[0];n.target===this&&e?.apply(this,t)}}function mp(e){return function(...t){var n=t[0];return n.stopPropagation(),e?.apply(this,t)}}function gp(e){var t=!1;return function(...n){if(!t)return t=!0,e?.apply(this,n)}}function _p(e){return function(...t){var n=t[0];return n.stopImmediatePropagation(),e?.apply(this,t)}}function yp(e){return function(...t){var n=t[0];return n.preventDefault(),e?.apply(this,t)}}function bp(e=!1){const t=he,n=t.l.u;if(!n)return;let r=()=>ii(t.s);if(e){let s=0,a={};const i=Lr(()=>{let l=!1;const c=t.s;for(const u in c)c[u]!==a[u]&&(a[u]=c[u],l=!0);return l&&s++,s});r=()=>o(i)}n.b.length&&Hl(()=>{po(t,r),pa(n.b)}),Me(()=>{const s=ke(()=>n.m.map(_d));return()=>{for(const a of s)typeof a=="function"&&a()}}),n.a.length&&Me(()=>{po(t,r),pa(n.a)})}function po(e,t){if(e.l.s)for(const n of e.l.s)o(n);t()}function wp(e){var t=mt(0);return function(){return arguments.length===1?(g(t,o(t)+1),arguments[0]):(o(t),e())}}function kp(e,t){var n=e.$$events?.[t.type],r=tr(n)?n.slice():n==null?[]:[n];for(var s of r)s.call(this,t)}function Sp(e,t,n){e.$$events||={},e.$$events[t]||=[],e.$$events[t].push(n)}function Ep(e){for(var t in e)t in this&&(this[t]=e[t])}function xp(e,t=1){const n=e();return e(n+t),n}function Tp(e,t=1){const n=e()+t;return e(n),n}const Ap={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 Ip(e,t,n){return new Proxy({props:e,exclude:t},Ap)}const Rp={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=ee;try{We(e.parent_effect),e.special[t]=Ht({get[t](){return e.props[t]}},t,Wo)}finally{We(r)}}return e.special[t](n),Gn(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),Gn(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 Cp(e,t){return new Proxy({props:e,exclude:t,special:{},version:mt(0),parent_effect:ee},Rp)}const $p={get(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(jn(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];jn(s)&&(s=s());const a=Pt(s,t);if(a&&a.set)return a.set(n),!0}return!1},getOwnPropertyDescriptor(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(jn(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r){const s=Pt(r,t);return s&&!s.configurable&&(s.configurable=!0),s}}},has(e,t){if(t===Ke||t===As)return!1;for(let n of e.props)if(jn(n)&&(n=n()),n!=null&&t in n)return!0;return!1},ownKeys(e){const t=[];for(let n of e.props)if(jn(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 zr(...e){return new Proxy({props:e},$p)}function Ht(e,t,n,r){var s=(n&ld)!==0,a=(n&cd)!==0,i=r,l=!0,c=()=>(l&&(l=!1,i=a?ke(r):r),i);let u;if(s){var d=Ke in e||As in e;u=Pt(e,t)?.set??(d&&t in e?m=>e[t]=m:void 0)}var f,v=!1;s?[f,v]=El(()=>e[t]):f=e[t],f===void 0&&r!==void 0&&(f=c(),u&&(Ud(),u(f)));var w;if(w=()=>{var m=e[t];return m===void 0?c():(l=!0,m)},!(n&Wo))return w;if(u){var y=e.$$legacy;return function(m,E){return arguments.length>0?((!E||y||v)&&u(E?w():m),m):w()}}var k=!1,b=(n&od?Lr:Ga)(()=>(k=!1,w()));s&&o(b);var A=ee;return function(m,E){if(arguments.length>0){const $=E?o(b):s?pe(m):m;return g(b,$),k=!0,i!==void 0&&(i=$),m}return tn&&k||A.f&at?b.v:o(b)}}function Pp(e,t,n,r,s,a){Cl(t,()=>{var i=!1;Ha?.[dt],Ce(()=>{if(!i){var[l,c]=El(n);if(!c){var u=r(),d=!1,f=Ce(()=>{d||l[u]});d=!0,f.deps===null&&(Yd(),i=!0)}}})})}function Dp(e){return new Lp(e)}class Lp{#e;#t;constructor(t){var n=new Map,r=(a,i)=>{var l=$s(i,!1,!1);return n.set(a,l),l};const s=new Proxy({...t.props||{},$$events:{}},{get(a,i){return o(n.get(i)??r(i,Reflect.get(a,i)))},has(a,i){return i===As?!0:(o(n.get(i)??r(i,Reflect.get(a,i))),Reflect.has(a,i))},set(a,i,l){return g(n.get(i)??r(i,l),l),Reflect.set(a,i,l)}});this.#t=(t.hydrate?dc:Ue)(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 a of Object.keys(this.#t))a==="$set"||a==="$destroy"||a==="$on"||Tn(this,a,{get(){return this.#t[a]},set(i){this.#t[a]=i},enumerable:!0});this.#t.$set=a=>{Object.assign(s,a)},this.#t.$destroy=()=>{Xe(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 Rc;typeof HTMLElement=="function"&&(Rc=class extends HTMLElement{$$ctor;$$s;$$c;$$cn=!1;$$d={};$$r=!1;$$p_d={};$$l={};$$l_u=new Map;$$me;$$shadowRoot=null;constructor(e,t,n){super(),this.$$ctor=e,this.$$s=t,n&&(this.$$shadowRoot=this.attachShadow(n))}addEventListener(e,t,n){if(this.$$l[e]=this.$$l[e]||[],this.$$l[e].push(t),this.$$c){const r=this.$$c.$on(e,t);this.$$l_u.set(t,r)}super.addEventListener(e,t,n)}removeEventListener(e,t,n){if(super.removeEventListener(e,t,n),this.$$c){const r=this.$$l_u.get(t);r&&(r(),this.$$l_u.delete(t))}}async connectedCallback(){if(this.$$cn=!0,!this.$$c){let e=function(r){return s=>{const a=gn("slot");r!=="default"&&(a.name=r),T(s,a)}};if(await Promise.resolve(),!this.$$cn||this.$$c)return;const t={},n=Op(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]=ts(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=Dp({component:this.$$ctor,target:this.$$shadowRoot||this,props:{...this.$$d,$$slots:t,$$host:this}}),this.$$me=ti(()=>{Ce(()=>{this.$$r=!0;for(const r of as(this.$$c)){if(!this.$$p_d[r]?.reflect)continue;this.$$d[r]=this.$$c[r];const s=ts(r,this.$$d[r],this.$$p_d,"toAttribute");s==null?this.removeAttribute(this.$$p_d[r].attribute||r):this.setAttribute(this.$$p_d[r].attribute||r,s)}this.$$r=!1})});for(const r in this.$$l)for(const s of this.$$l[r]){const a=this.$$c.$on(r,s);this.$$l_u.set(s,a)}this.$$l={}}}attributeChangedCallback(e,t,n){this.$$r||(e=this.$$g_p(e),this.$$d[e]=ts(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 as(this.$$p_d).find(t=>this.$$p_d[t].attribute===e||!this.$$p_d[t].attribute&&t.toLowerCase()===e)||e}});function ts(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 Op(e){const t={};return e.childNodes.forEach(n=>{t[n.slot||"default"]=!0}),t}function Mp(e,t,n,r,s,a){let i=class extends Rc{constructor(){super(e,n,s),this.$$p_d=t}static get observedAttributes(){return as(t).map(l=>(t[l].attribute||l).toLowerCase())}};return as(t).forEach(l=>{Tn(i.prototype,l,{get(){return this.$$c&&l in this.$$c?this.$$c[l]:this.$$d[l]},set(c){c=ts(l,c,t),this.$$d[l]=c;var u=this.$$c;if(u){var d=Pt(u,l)?.get;d?u[l]=c:u.$set({[l]:c})}}})}),r.forEach(l=>{Tn(i.prototype,l,{get(){return this.$$c?.[l]}})}),a&&(i=a(i)),e.element=i,i}function Np(e,...t){return ke(()=>{try{let n=!1;const r=[];for(const s of t)s&&typeof s=="object"&&Ke in s?(r.push(Cn(s,!0)),n=!0):r.push(s);n&&(Gd(e),console.log("%c[snapshot]","color: grey",...r))}catch{}}),t}const Cc=Object.freeze(Object.defineProperty({__proto__:null,CLASS:qn,FILENAME:dt,HMR:Nn,NAMESPACE_SVG:Ir,STYLE:Vn,aborted:xa,action:wc,get active_effect(){return ee},add_legacy_event_listener:Sp,add_locations:Wv,add_svelte_meta:vf,animation:gh,append:T,append_styles:wh,apply:fv,assign:Fv,assign_async:Hv,async:eh,async_derived:$l,attach:ui,attachment:Bv,attr:xh,attribute_effect:qh,autofocus:Qa,await:rh,bind_active_element:Bh,bind_buffered:Wh,bind_checked:es,bind_content_editable:cp,bind_current_time:Kh,bind_element_size:lp,bind_ended:Jh,bind_files:Hh,bind_focused:dp,bind_group:Fh,bind_muted:np,bind_online:rp,bind_paused:ep,bind_playback_rate:Qh,bind_played:Gh,bind_prop:sp,bind_property:up,bind_ready_state:Zh,bind_resize_observer:op,bind_seekable:Yh,bind_seeking:Xh,bind_select_value:vs,bind_this:It,bind_value:De,bind_volume:tp,bind_window_scroll:fp,bind_window_size:vp,boundary:Rl,bubble_event:kp,check_target:Jv,child:p,cleanup_styles:Kv,clsx:Sc,comment:vt,component:Nr,create_custom_element:Mp,create_ownership_validator:Xv,css_props:ih,customizable_select:Uh,deep_read:cs,deep_read_state:ii,deferred_template_effect:nv,delegate:be,delegated:Y,derived:G,derived_safe_equal:Ga,get document(){return jl},each:_e,eager:$f,effect:_t,effect_root:ti,effect_tracking:Mr,element:yh,equals:Wf,event:ot,exclude_from_object:bd,fallback:yd,first_child:ve,flush:hn,for_await_track_reactivity_loss:jf,from_html:C,from_mathml:gv,from_svg:mv,from_tree:_v,get:o,head:bh,hmr:Gv,html:uh,hydrate_template:rf,if:K,index:Jn,init:bp,init_select:di,inspect:Qv,invalid_default_snippet:Ed,invalidate_inner_signals:av,invalidate_store:kf,invoke_error_boundary:Bt,key:ah,legacy_api:Zv,legacy_pre_effect:Qf,legacy_pre_effect_reset:ev,legacy_rest_props:Cp,log_if_contains_state:Np,mark_store_binding:Af,mutable_source:$s,mutate:Ff,next:Qt,noop:ft,once:gp,pending:Mf,pop:ie,preventDefault:yp,prevent_snippet_stringification:vc,prop:Ht,props_id:wv,proxy:pe,push:ae,raf:Vt,reactive_import:wp,remove_input_defaults:xe,remove_textarea_child:Xf,render_effect:Ce,replay_events:dv,reset:h,rest_props:Ip,run:zf,run_after_blockers:Cl,safe_get:cv,sanitize_slots:fh,save:Nf,select_option:kr,selectedcontent:Vh,self:pp,set:g,set_attribute:Te,set_checked:Lh,set_class:Oe,set_custom_element_data:jh,set_default_checked:Oh,set_default_value:Mh,set_selected:Tc,set_style:Gt,set_text:O,set_value:Dh,set_xlink_attribute:Nh,setup_stores:Sf,sibling:S,slot:dh,snapshot:Cn,snippet:li,spread_props:zr,state:j,stopImmediatePropagation:_p,stopPropagation:mp,store_get:bf,store_mutate:Ef,store_set:Sl,store_unsub:wf,strict_equals:Kf,tag:uf,tag_proxy:vl,template_effect:q,text:fn,tick:ai,to_array:tl,trace:cf,track_reactivity_loss:ka,transition:_h,trusted:hp,untrack:ke,update:Gn,update_legacy_props:Ep,update_pre:Hf,update_pre_prop:Tp,update_pre_store:Tf,update_prop:xp,update_store:xf,user_effect:Me,user_pre_effect:Hl,validate_binding:Pp,validate_dynamic_element_tag:Lv,validate_snippet_args:th,validate_store:Ov,validate_void_dynamic_element:Dv,wait:qf,get window(){return Sa},with_script:yv,wrap_snippet:Mv},Symbol.toStringTag,{value:"Module"}));class mo{#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 go{#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 jp=["workspace","user"],hi="state:manage",jt={ephemeral:new mo,session:new mo,workspace:new go("sh3:workspace:"),user:new go("sh3:user:")},ca=new Map;let ua=!1;function zp(e,t,n){ca.set(`${e}:${t}`,{zone:e,shardId:t,value:n}),!ua&&(ua=!0,queueMicrotask(()=>{ua=!1;for(const{zone:r,shardId:s,value:a}of ca.values())jt[r].write(s,a);ca.clear()}))}function Ls(e,t){const n={};for(const r of Object.keys(t)){const s=t[r],i=jt[r].read(e),l={...s,...i??{}},c=pe(l);n[r]=c,jp.includes(r)&&ti(()=>{let u=!0;Me(()=>{const d=Cn(c);if(u){u=!1;return}zp(r,e,d)})})}return n}function _o(e,t){jt[e]=t}function qp(e,t){return jt[e].read(t)}function $a(e,t){jt[e].delete(t)}const Vp="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(Vp);const Up=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function Bp(e){const t=document.activeElement;function n(){return Array.from(e.querySelectorAll(Up))}function r(s){if(s.key!=="Tab")return;const a=n();if(a.length===0){s.preventDefault();return}const i=a[0],l=a[a.length-1],c=document.activeElement;s.shiftKey&&(c===i||!e.contains(c))?(s.preventDefault(),l.focus()):!s.shiftKey&&(c===l||!e.contains(c))&&(s.preventDefault(),i.focus())}return e.addEventListener("keydown",r),queueMicrotask(()=>{(n()[0]??e).focus()}),()=>{e.removeEventListener("keydown",r),t&&document.contains(t)&&t.focus()}}var Fp=C('<div class="modal-frame svelte-2tcvcm" role="presentation"><div class="modal-box svelte-2tcvcm" role="dialog" aria-modal="true" tabindex="-1"><!></div></div>');function Hp(e,t){ae(t,!0);let n;Me(()=>{if(n)return Bp(n)});var r=Fp(),s=p(r),a=p(s);Nr(a,()=>t.Content,(i,l)=>{l(i,zr(()=>t.contentProps,{get close(){return t.close}}))}),h(s),It(s,i=>n=i,()=>n),h(r),q(()=>Gt(s,t.boxStyle)),T(e,r),ie()}const pi={};function Kp(e,t){pi[e]=t}function Wp(e){delete pi[e]}function Os(e){const t=pi[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 pt=[];let hs=!1,kt=null;const Yp=.5;function $c(){const e=Os("modal");if(pt.length===0){kt&&(kt.remove(),kt=null);return}kt||(kt=document.createElement("div"),kt.className="sh3-modal-backdrop",kt.style.position="absolute",kt.style.inset="0",kt.style.pointerEvents="auto",kt.style.transition="background-color 120ms ease",kt.style.background=`rgba(0, 0, 0, ${Yp})`);const t=pt[pt.length-1].host;e.insertBefore(kt,t)}function Pc(e){e.key==="Escape"&&pt.length!==0&&(e.stopPropagation(),e.preventDefault(),pt[pt.length-1].handle.close())}function Gp(){hs||(hs=!0,document.addEventListener("keydown",Pc,!0))}function Xp(){pt.length>0||hs&&(hs=!1,document.removeEventListener("keydown",Pc,!0))}function Dc(e){const t=pt.indexOf(e);t<0||(pt.splice(t,1),Xe(e.frame),e.host.remove(),$c(),Xp())}function Jp(e,t,n){const r=Os("modal"),s=document.createElement("div");s.className="sh3-modal-host",s.style.position="absolute",s.style.inset="0",s.style.pointerEvents="auto",r.appendChild(s);const a={},i={close:()=>Dc(a)},l=Ue(Hp,{target:s,props:{Content:e,contentProps:t??{},close:i.close,boxStyle:n?.boxStyle}});return a.host=s,a.frame=l,a.handle=i,pt.push(a),$c(),Gp(),i}function Zp(){for(;pt.length>0;)Dc(pt[pt.length-1])}const Qp={open:Jp,closeAll:Zp};var em=C('<div class="popup-frame svelte-mp81cl" role="menu" tabindex="-1"><!></div>');function tm(e,t){ae(t,!0);let n,r=j(-9999),s=j(-9999);Me(()=>{if(!n)return;const l=n.getBoundingClientRect(),c=4,u=window.innerWidth,d=window.innerHeight;let f=t.anchorRect.bottom+c,v=t.anchorRect.left;if(v+l.width>u-c&&(v=Math.max(c,u-l.width-c)),f+l.height>d-c){const w=t.anchorRect.top-l.height-c;f=w>=c?w:Math.max(c,d-l.height-c)}g(r,f,!0),g(s,v,!0)});var a=em(),i=p(a);Nr(i,()=>t.Content,(l,c)=>{c(l,zr(()=>t.contentProps,{get close(){return t.close}}))}),h(a),It(a,l=>n=l,()=>n),q(()=>Gt(a,`top: ${o(r)??""}px; left: ${o(s)??""}px;`)),T(e,a),ie()}let Tt=null;function Lc(e){if(!Tt)return;const t=e.target;t&&Tt.host.contains(t)||Tt.handle.close()}function Oc(e){Tt&&e.key==="Escape"&&(e.stopPropagation(),e.preventDefault(),Tt.handle.close())}function nm(){document.addEventListener("pointerdown",Lc,!0),document.addEventListener("keydown",Oc,!0)}function rm(){document.removeEventListener("pointerdown",Lc,!0),document.removeEventListener("keydown",Oc,!0)}function Pa(e){Tt===e&&(Tt=null,rm(),Xe(e.frame),e.host.remove())}function sm(e,t,n){Tt&&Pa(Tt);const r=Os("popup"),s=document.createElement("div");s.className="sh3-popup-host",s.style.position="absolute",s.style.inset="0",s.style.pointerEvents="none",r.appendChild(s);const a=t.anchor.getBoundingClientRect(),i={},l={close:()=>Pa(i)},c=Ue(tm,{target:s,props:{Content:e,contentProps:n??{},anchorRect:a,close:l.close}});return i.host=s,i.frame=c,i.handle=l,Tt=i,queueMicrotask(nm),l}function am(){Tt&&Pa(Tt)}const im={show:sm,close:am};var om=C('<div role="status" aria-live="polite"><span class="toast-level svelte-12gwnj0"> </span> <span class="toast-message svelte-12gwnj0"> </span></div>');function lm(e,t){var n=om(),r=p(n),s=p(r,!0);h(r);var a=S(r,2),i=p(a,!0);h(a),h(n),q(()=>{Oe(n,1,`toast toast-${t.level??""}`,"svelte-12gwnj0"),O(s,t.level),O(i,t.message)}),Y("click",n,function(...l){t.close?.apply(this,l)}),T(e,n)}be(["click"]);const ps=new Set;let nt=null;function cm(){if(nt&&nt.isConnected)return nt;const e=Os("toast");return nt=document.createElement("div"),nt.className="sh3-toast-stack",nt.style.position="absolute",nt.style.right="16px",nt.style.bottom="16px",nt.style.display="flex",nt.style.flexDirection="column-reverse",nt.style.gap="6px",nt.style.pointerEvents="none",e.appendChild(nt),nt}function Da(e){ps.has(e)&&(ps.delete(e),e.timer!==null&&(clearTimeout(e.timer),e.timer=null),Xe(e.instance),e.host.remove())}function um(e,t={}){const n=t.level??"info",r=t.duration??3e3,s=cm(),a=document.createElement("div");a.className="sh3-toast-host",s.appendChild(a);const i={},l={close:()=>Da(i)},c=Ue(lm,{target:a,props:{message:e,level:n,close:l.close}});return i.host=a,i.instance=c,i.handle=l,i.timer=Number.isFinite(r)&&r>0?setTimeout(()=>Da(i),r):null,ps.add(i),l}function dm(){for(const e of[...ps])Da(e)}const fm={notify:um,clear:dm},yo={w:120,h:80};function Mc(e){if(e.type==="slot")return{...yo};if(e.type==="tabs")return{...yo};const t=e.children.map(Mc);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 bo=32,wo={x:48,y:48};function vm(e,t){if(e.length===0)return{...wo};const n=e[e.length-1],r={x:n.position.x+bo,y:n.position.y+bo};return r.x+120>t.w||r.y+32>t.h?{...wo}:r}let ko=0;function hm(){return ko+=1,`float-${Date.now().toString(36)}-${ko.toString(36)}`}function Nc(e){return e.type==="slot"?e.viewId==null:e.type==="tabs"?e.tabs.every(t=>t.viewId==null):e.children.every(Nc)}let pm=[],mi=null,gi=()=>({w:1600,h:900});function mm(e,t){mi=e,gi=t}function gm(){mi=null,gi=()=>({w:1600,h:900})}function Ms(){return mi??pm}let So=0;function _m(e){return So+=1,`float:${e}:${So}`}const ym={w:600,h:400};function bm(e,t){return{w:Math.max(e.w,t.w),h:Math.max(e.h,t.h)}}function wm(e,t={}){const n=Ms(),r=hm(),s=_m(e),a=t.title??e,i={slotId:s,viewId:e,label:a};t.meta&&(i.meta=t.meta);const l={type:"tabs",tabs:[i],activeTab:0},c=Mc(l),u=t.size??bm(ym,c),d=t.position??vm(n,gi()),f={id:r,content:l,position:d,size:u,title:t.title};return n.push(f),r}function km(e){const t=Ms(),n=t.findIndex(r=>r.id===e);n<0||t.splice(n,1)}function Sm(){return Ms().slice()}function Em(e){const t=Ms(),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 Lt={open:wm,close:km,list:Sm,focus:Em};let ms=null;function xm(e){ms=e}function Tm(){ms=null}function _i(){if(!ms)throw new Error("presetManager: no app attached — bind an AppLayoutBlob first");return ms}function Am(){return Object.keys(_i().presets)}function Im(){return _i().activePreset}function Rm(e){const t=_i();if(!(e in t.presets))throw new Error(`presetManager.switch: unknown preset "${e}"`);t.activePreset=e}const Cm={list:Am,active:Im,switch:Rm},jc={state:Ls,modal:Qp,popup:im,toast:fm,float:Lt,presets:Cm},gs=new Map,zc=new Set;function $m(e){zc.add(e)}function Pm(e,t){if(gs.has(e))throw new Error(`View "${e}" is already registered`);gs.set(e,t);for(const n of zc)n(e,t)}function qc(e){return gs.get(e)}function Dm(e){gs.delete(e)}const Sr=new Map;function Lm(e,t){if(Sr.has(e))throw new Error(`Verb "${e}" is already registered`);Sr.set(e,t)}function Eo(e){return Sr.get(e)}function Om(e){Sr.delete(e)}function yi(){return Array.from(Sr.values()).sort((e,t)=>e.name.localeCompare(t.name))}function Wr(e,t,n){return`${e}/${t}/${n}`}function Mm(e,t){return`${e}/${t}/`}const Nm="sh3-documents",zt="docs",jm=2;class zm{#e=null;#t(){return this.#e||(this.#e=new Promise((t,n)=>{const r=indexedDB.open(Nm,jm);r.onupgradeneeded=()=>{const s=r.result;s.objectStoreNames.contains(zt)||s.createObjectStore(zt)},r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)})),this.#e}async#n(t,n){const r=await this.#t();return new Promise((s,a)=>{const l=r.transaction(zt,t).objectStore(zt),c=n(l);c.onsuccess=()=>s(c.result),c.onerror=()=>a(c.error)})}async read(t,n,r){const s=Wr(t,n,r),a=await this.#n("readonly",i=>i.get(s));return a?a.content:null}async write(t,n,r,s){const a=Wr(t,n,r),i=typeof s=="string"?new Blob([s]).size:s.byteLength,l={content:s,size:i,lastModified:Date.now()};await this.#n("readwrite",c=>c.put(l,a))}async delete(t,n,r){const s=Wr(t,n,r);await this.#n("readwrite",a=>a.delete(s))}async list(t,n){const r=Mm(t,n),s=await this.#t();return new Promise((a,i)=>{const c=s.transaction(zt,"readonly").objectStore(zt),u=IDBKeyRange.bound(r,r+"",!1,!1),d=c.openCursor(u),f=[];d.onsuccess=()=>{const v=d.result;if(v){const w=v.value;f.push({path:v.key.slice(r.length),size:w.size,lastModified:w.lastModified}),v.continue()}else a(f)},d.onerror=()=>i(d.error)})}async exists(t,n,r){const s=Wr(t,n,r);return await this.#n("readonly",i=>i.getKey(s))!==void 0}async listAllShards(t){const n=`${t}/`,r=await this.#t();return new Promise((s,a)=>{const l=r.transaction(zt,"readonly").objectStore(zt),c=IDBKeyRange.bound(n,n+"",!1,!1),u=l.openKeyCursor(c),d=new Set;u.onsuccess=()=>{const f=u.result;if(f){const v=f.key.slice(n.length),w=v.indexOf("/");w>=0&&d.add(v.slice(0,w)),f.continue()}else s([...d])},u.onerror=()=>a(u.error)})}async listAllDocuments(t){const n=`${t}/`,r=await this.#t();return new Promise((s,a)=>{const l=r.transaction(zt,"readonly").objectStore(zt),c=IDBKeyRange.bound(n,n+"",!1,!1),u=l.openCursor(c),d=[];u.onsuccess=()=>{const f=u.result;if(f){const v=f.key.slice(n.length),w=v.indexOf("/");if(w>=0){const y=f.value;d.push({shardId:v.slice(0,w),path:v.slice(w+1),size:y.size,lastModified:y.lastModified})}f.continue()}else s(d)},u.onerror=()=>a(u.error)})}}class qm{#e;#t;constructor(t,n){this.#e=t.replace(/\/$/,""),this.#t=n}async read(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}`,a=await fetch(s,{credentials:"include"});if(a.status===404)return null;if(!a.ok)throw new Error(`Document read failed: ${a.status}`);return(a.headers.get("content-type")??"").includes("application/octet-stream")?a.arrayBuffer():a.text()}async write(t,n,r,s){const a=`${this.#e}/api/docs/${t}/${n}/${r}`,i={...this.#n(),"Content-Type":typeof s=="string"?"text/plain":"application/octet-stream"},l=await fetch(a,{method:"PUT",headers:i,body:s,credentials:"include"});if(!l.ok)throw new Error(`Document write failed: ${l.status}`)}async delete(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}`,a=await fetch(s,{method:"DELETE",headers:this.#n(),credentials:"include"});if(!a.ok)throw new Error(`Document delete failed: ${a.status}`)}async list(t,n){const r=`${this.#e}/api/docs/${t}/${n}`,s=await fetch(r,{credentials:"include"});if(!s.ok)throw new Error(`Document list failed: ${s.status}`);return s.json()}async exists(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}`;return(await fetch(s,{method:"HEAD",credentials:"include"})).ok}async listAllShards(t){const n=`${this.#e}/api/docs/${t}/_shards`,r=await fetch(n,{credentials:"include"});if(!r.ok)throw new Error(`listAllShards failed: ${r.status}`);return r.json()}async listAllDocuments(t){const n=`${this.#e}/api/docs/${t}/_all`,r=await fetch(n,{credentials:"include"});if(!r.ok)throw new Error(`listAllDocuments failed: ${r.status}`);return r.json()}async readMeta(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}?meta=1`,a=await fetch(s,{credentials:"include"});if(!a.ok)throw new Error(`readMeta failed: ${a.status}`);const i=await a.json();return i.exists?i:null}async resolve(t,n,r,s){const a=`${this.#e}/api/docs/${t}/${n}/${r}/resolve`,i=typeof s=="string"?{choice:s}:{choice:s.origin},l=await fetch(a,{method:"POST",credentials:"include",headers:{...this.#n(),"Content-Type":"application/json"},body:JSON.stringify(i)});if(!l.ok)throw new Error(`resolve failed: ${l.status}`)}#n(){return this.#t?{Authorization:`Bearer ${this.#t}`}:{}}}class Vm{#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 _s=new Vm,Um=1e3;function Bm(e,t,n,r){const s=new Set,a=new Set;function i(u){return!r.extensions||r.extensions.length===0?!0:r.extensions.some(d=>u.endsWith(d))}function l(u,d){_s.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=>i(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)},watch(u){const d=_s.subscribe(f=>{f.tenantId===e&&f.shardId===t&&i(f.path)&&u(f)});return a.add(d),()=>{d(),a.delete(d)}},autosave(u,d){const f=new Fm(c,u,d?.debounceMs??Um);return s.add(f),f},async dispose(){const u=[...s].map(d=>d.dispose());await Promise.all(u),s.clear();for(const d of a)d();a.clear()}};return c}class Fm{#e;#t;#n;#a=null;#s=null;#i=!1;#r=!1;constructor(t,n,r){this.#e=t,this.#t=n,this.#n=r}get dirty(){return this.#i}update(t){this.#r||(this.#a=t,this.#i=!0,this.#o())}async flush(){if(this.#l(),this.#a!==null){const t=this.#a;this.#a=null,this.#i=!1,await this.#e.write(this.#t,t)}}async dispose(){this.#r||(this.#r=!0,await this.flush())}#o(){this.#l(),this.#s=setTimeout(()=>{this.#s=null,this.flush()},this.#n)}#l(){this.#s!==null&&(clearTimeout(this.#s),this.#s=null)}}const Hm="local";let Vc=Hm,Uc=new zm;function da(){return Vc}function xo(){return Uc}function fa(e){Vc=e}function Km(e){Uc=e}const Wm="sync:peer",Ym="sync:policy";let ar=j(null),Kt=j(null),ir=j(!1),Ns="",La=null;function To(e,t){Ns=e,La=t.auth,g(ar,t.user,!0),g(Kt,t.session,!0),g(ir,!t.session&&!t.user,!0)}async function Bc(e,t){try{const n=await fetch(`${Ns}/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(ar,r.user,!0),g(Kt,r.session,!0),g(ir,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function Gm(e,t,n){try{const r=await fetch(`${Ns}/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(ar,s.user,!0),g(Kt,s.session,!0),g(ir,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function Xm(){try{await fetch(`${Ns}/api/auth/logout`,{method:"POST",credentials:"include"})}catch{}if(La?.required&&!La.guestAllowed){window.location.reload();return}g(ar,null),g(Kt,null),g(ir,!0)}function Jm(){g(ar,{id:"local",username:"local",displayName:"Local Owner",role:"admin",createdAt:"",updatedAt:""},!0),g(Kt,{token:"local",userId:"local",role:"admin",expiresAt:1/0},!0),g(ir,!1)}function Zm(){return o(Kt)?.token==="local"}function sn(){return o(Kt)?.role==="admin"}function Fc(){return o(Kt)!==null}function Hc(){return o(ir)}function js(){return o(ar)}function zs(){return o(Kt)?`Bearer ${o(Kt).token}`:null}let or="";function Kc(e){or=e}async function Qm(e){const t=await fetch(`${or}/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 eg(e,t){if(!sn())throw new Error("Cannot update env state: not elevated to admin");const n=zs(),r={"Content-Type":"application/json"};n&&(r.Authorization=n);const s=await fetch(`${or}/api/env-state/${encodeURIComponent(e)}`,{method:"PUT",headers:r,body:JSON.stringify(t)});if(!s.ok){const a=await s.json().catch(()=>({}));throw new Error(`Env state update failed: HTTP ${s.status} — ${a.error??"unknown"}`)}}async function bi(e,t,n){if(!sn())throw new Error("Cannot install: not elevated to admin");const r=zs(),s=new FormData;s.append("manifest",new Blob([JSON.stringify(e)],{type:"application/json"}),"manifest.json"),s.append("client",new Blob([t],{type:"application/javascript"}),"client.js"),n!==void 0&&s.append("server",new Blob([n],{type:"application/javascript"}),"server.js");const a={};r&&(a.Authorization=r);const i=await fetch(`${or}/api/packages/install`,{method:"POST",headers:a,body:s});if(!i.ok){let l={};try{l=await i.json()}catch{}return{ok:!1,error:typeof l.error=="string"?l.error:`HTTP ${i.status}`,code:typeof l.code=="string"?l.code:void 0,missing:Array.isArray(l.missing)?l.missing:void 0}}return{ok:!0}}async function Wc(e){if(!sn())throw new Error("Cannot uninstall: not elevated to admin");const t=zs(),n={"Content-Type":"application/json"};t&&(n.Authorization=t);const r=await fetch(`${or}/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 tg(){const e=await fetch(`${or}/api/packages`);return e.ok?await e.json():[]}function ng(e){return jt[e].list()}function rg(e,t){return jt[e].read(t)}function sg(e,t){jt[e].delete(t)}function ag(e){for(const t of jt[e].list())jt[e].delete(t)}function Yc(){return{list:ng,peek:rg,clear:sg,clearAll:ag}}const Gc="documents:browse",Xc="documents:read",Jc="documents:write";function ig(e,t,n={canRead:!1,canWrite:!1}){const r={listDocuments:()=>t.listAllDocuments(e),listShards:()=>t.listAllShards(e),watchDocuments:s=>_s.subscribe(a=>{a.tenantId===e&&s(a)})};return n.canRead&&(r.readFrom=(s,a)=>t.read(e,s,a)),n.canWrite&&(r.writeTo=async(s,a,i)=>{const l=await t.exists(e,s,a);await t.write(e,s,a,i),_s.emit({type:l?"update":"create",path:a,tenantId:e,shardId:s})}),r}const Zc="keys:mint";class Qc extends Error{constructor(t){super(`Shard may not mint a key with scope '${t}' — not declared in manifest.`),this.name="ScopeEscalationError"}}class eu extends Error{constructor(){super("User denied key creation."),this.name="ConsentDeniedError"}}const Oa=new Map;let _r=null;function tu(e){return _r=e,()=>{_r===e&&(_r=null)}}async function og(e,t){if(!_r)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=>{Oa.set(n,{resolve:r}),_r({...t,shardId:e,requestId:n})})}function Ma(e,t){const n=Oa.get(e);n&&(Oa.delete(e),n.resolve(t))}const ys=new Map,ns=new Map,lg=5e3;function cg(e,t){let n=ns.get(e);n||(n=new Set,ns.set(e,n)),n.add(t),setTimeout(()=>{n.delete(t),n.size===0&&ns.delete(e)},lg)}function ug(e,t){return ns.get(e)?.has(t)??!1}function wi(e,t){const n=ys.get(e)??new Set;return n.add(t),ys.set(e,n),()=>{n.delete(t)}}function nu(e,t){if(!e||ug(e,t))return;cg(e,t);const n=ys.get(e);if(n)for(const s of n)s(t);const r=ys.get("*");if(r)for(const s of r)s(t)}function dg(){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);nu(n.shardId,n.id)}catch{}},()=>e.close()}function fg(e){const{shardId:t,shardPermissions:n}=e,r=s=>{for(const a of s)if(!n.includes(a)&&!n.includes("admin:*"))throw new Qc(a)};return{async mint(s){if(r(s.scopes),!await og(t,s))throw new eu;const i=await fetch("/api/keys/consent",{method:"POST",credentials:"include",headers:{"content-type":"application/json"},body:JSON.stringify({shardId:t,...s})});if(!i.ok)throw new Error(`Consent ticket failed: ${i.status}`);const{ticket:l}=await i.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(i=>i.mintedByShardId===t)},async revoke(s){const a=await fetch(`/api/keys/${encodeURIComponent(s)}`,{method:"DELETE",credentials:"include"});if(!a.ok&&a.status!==404)throw new Error(`Revoke failed: ${a.status}`);nu(t,s)}}}const Wt=pe(new Map),Er=new Map,qr=pe(new Map);function ki(e){const t=e.manifest.id;Wt.has(t)&&qr.has(t)&&qs(t),Wt.set(t,e)}async function ru(e){const t=Wt.get(e);if(!t)throw new Error(`Cannot activate shard "${e}": not registered`);if(Er.has(e))return;const n={shard:t,ctx:void 0,viewIds:new Set,verbNames:new Set,cleanupFns:[]},r=pe({proxy:null,defaults:null}),s={state:a=>jc.state(e,a),registerView:(a,i)=>{Pm(a,i),n.viewIds.add(a)},registerVerb:a=>{const i=e==="shell"?a.name:`${e}:${a.name}`;Lm(i,{...a,name:i}),n.verbNames.add(i)},documents:a=>{const i=Bm(da(),e,xo(),a);return n.cleanupFns.push(()=>i.dispose()),i},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 i=Cn(r.proxy);Object.assign(r.proxy,a);try{const l=Cn(r.proxy);await eg(e,l)}catch(l){throw Object.assign(r.proxy,i),l}},get isAdmin(){return sn()},get tenantId(){return da()},zones:t.manifest.permissions?.includes(hi)?Yc():void 0,browse:t.manifest.permissions?.includes(Gc)?ig(da(),xo(),{canRead:t.manifest.permissions.includes(Xc),canWrite:t.manifest.permissions.includes(Jc)}):void 0,keys:t.manifest.permissions?.includes(Zc)?fg({shardId:e,shardPermissions:t.manifest.permissions??[]}):void 0};if(n.ctx=s,t.onKeyRevoked){const a=wi(e,async i=>{try{await t.onKeyRevoked(i)}catch(l){console.error(`[sh3] onKeyRevoked failed in "${e}":`,l)}});n.cleanupFns.push(async()=>a())}Er.set(e,n),qr.set(e,t),await t.activate(s);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 Qm(e),i=Object.assign({},r.defaults,a);Object.assign(r.proxy,i)}catch(a){console.warn(`[sh3] Failed to hydrate env state for shard "${e}":`,a instanceof Error?a.message:a)}t.autostart?.(s)}function qs(e){const t=Er.get(e);if(t){t.shard.deactivate?.();for(const n of t.cleanupFns)n();for(const n of t.verbNames)Om(n);for(const n of t.viewIds)Dm(n);Er.delete(e),qr.delete(e)}}function vg(e){return Er.get(e)?.ctx}function Ao(){const e=[];for(const t of qr.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 Dn=pe(new Map),Ct=pe({id:null});function Si(e){Dn.set(e.manifest.id,e)}function Ei(){return Array.from(Dn.values()).map(e=>e.manifest)}function su(){const e=Ct.id;return e?Dn.get(e)?.manifest??null:null}function Vs(e){return Dn.get(e)}const vn=new Map,rs=new Set;function hg(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(a){Us[n]=a}};queueMicrotask(()=>{if(vn.has(n)&&r.handle===void 0&&(r.handle=t.mount(r.host,s),(r.handle?.closable||n.startsWith("float:"))&&(Bs[n]=!0),r.handle?.onResize)){const a=r.handle.onResize.bind(r.handle);r.resizeObserver=new ResizeObserver(i=>{for(const l of i){const c=l.contentRect;a(Math.round(c.width),Math.round(c.height))}}),r.resizeObserver.observe(r.host)}})}}$m(hg);const Us=pe({}),Bs=pe({});function pg(e,t,n,r){const s=document.createElement("div");s.className="slot-host",s.dataset.slotId=e,s.style.position="absolute",s.style.inset="0",s.style.minWidth="0",s.style.minHeight="0";let a=!1;const i={host:s,handle:void 0,viewId:t,label:n,meta:r,refcount:0,resizeObserver:void 0,cancelPendingMount:()=>{a=!0}};return queueMicrotask(()=>{if(a)return;const l=t?qc(t):void 0,c={slotId:e,viewId:t??"",label:n,meta:r,setDirty(u){Us[e]=u}};if(i.handle=l?.mount(s,c),(i.handle?.closable||e.startsWith("float:"))&&(Bs[e]=!0),i.handle?.onResize){const u=i.handle.onResize.bind(i.handle);i.resizeObserver=new ResizeObserver(d=>{for(const f of d){const v=f.contentRect;u(Math.round(v.width),Math.round(v.height))}}),i.resizeObserver.observe(s)}}),i}function au(e,t,n,r){rs.delete(e);let s=vn.get(e);return s||(s=pg(e,t,n,r),vn.set(e,s)),s.refcount++,s.host}function iu(e){const t=vn.get(e);if(t){if(t.refcount--,t.refcount>0){t.host.remove();return}rs.add(e),queueMicrotask(()=>{if(!rs.has(e))return;rs.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 Us[e],delete Bs[e])})}}function ou(e){const t=Na.get(e);return t||vn.get(e)?.handle}function mg(e){return Us[e]??!1}function gg(e){return Na.has(e)?!!Na.get(e).closable:Bs[e]??!1}const Na=new Map;function lu(e){if(!e||typeof e!="object")return!1;const t=e.type;return t==="split"||t==="tabs"||t==="slot"}function _g(e){if(!e||typeof e!="object")return!1;const t=e;return lu(t.docked)&&Array.isArray(t.floats)}function yg(e){return{docked:e,floats:[]}}function bg(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 wg(e){if(Array.isArray(e))return e.map(bg);if(_g(e))return[{name:"default",variants:{default:e}}];if(lu(e))return[{name:"default",variants:{default:yg(e)}}];throw new Error("normalizeInitialLayout: input is not a LayoutNode, LayoutTree, or LayoutPreset[]")}function Io(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 kg(e){const t=Io(e.docked);for(const n of e.floats)t.push(...Io(n.content));return t}$a("workspace","__shell__");const Sg={type:"slot",slotId:"sh3core.home",viewId:"sh3core:home"},Eg=pe({docked:Sg,floats:[]});let ht=j(null),Fs=j("home");function xg(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 Tg(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 Ag(e){if(o(ht))throw new Error(`Layout manager cannot attach app "${e.manifest.id}": app "${o(ht).appId}" is still attached`);const t=`__sh3core__:app:${e.manifest.id}`,n=wg(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=qp("workspace",t),a=xg(s);(a&&a.layoutVersion!==e.manifest.layoutVersion||s&&!a)&&$a("workspace",t);const l=Ls(t,{workspace:r}).workspace;g(ht,{appId:e.manifest.id,proxy:l,heldSlotIds:[]},!0),xm(l)}function Ig(){if(!o(ht))throw new Error("acquireAppSlotHolds: no app attached");if(o(ht).heldSlotIds.length>0)return;const e=Tg(o(ht).proxy),t=kg(e);for(const{slotId:n,viewId:r,label:s,meta:a}of t)au(n,r,s,a),o(ht).heldSlotIds.push(n)}function cu(){if(o(ht)){Tm();for(const e of o(ht).heldSlotIds)iu(e);g(ht,null)}}function uu(){g(Fs,"home")}function Ro(){if(!o(ht))throw new Error("Cannot switchToApp: no app is attached");g(Fs,"app")}const ss=G(()=>{if(o(Fs)==="app"&&o(ht)){const e=o(ht).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 Eg});function Xt(){return o(ss)}function du(){return o(Fs)}const Zn={get root(){return o(ss).docked},get tree(){return o(ss)},get floats(){return o(ss).floats}},fu=Ls("__sh3core__:last-app",{user:{id:null}});function Rg(){return fu.user.id}function bs(e){fu.user.id=e}const ja=new Map;function Yr(e){let t=ja.get(e);if(!t){const n=Vs(e);t={state:r=>Ls(`__app__:${e}`,r),zones:n?.manifest.permissions?.includes(hi)?Yc():void 0},ja.set(e,t)}return t}async function xr(e){const t=Vs(e);if(!t)throw new Error(`Cannot launch app "${e}": not registered`);if(Ct.id&&Ct.id!==e)vu(Ct.id);else if(Ct.id===e){for(const n of t.manifest.requiredShards){const r=Wt.get(n),s=vg(n);r&&s&&r.resume?.(s)}t.resume?.(Yr(e)),Ro(),t.onAppReady?.(Yr(e)),bs(e);return}for(const n of t.manifest.requiredShards)if(!Wt.has(n))throw new Error(`App "${e}" requires shard "${n}" which is not registered`);Ag(t);try{for(const n of t.manifest.requiredShards)await ru(n)}catch(n){throw cu(),n}Ig(),t.activate?.(Yr(e)),Ct.id=e,Ro(),t.onAppReady?.(Yr(e)),bs(e)}function vu(e){if(Ct.id!==e)return;const t=Vs(e);if(t){t.deactivate?.(),uu(),cu();for(const n of t.manifest.requiredShards){const r=Wt.get(n);r&&(r.autostart||qs(n))}Ct.id=null,ja.delete(e)}}function xi(e){Dn.has(e)&&(Ct.id===e&&(vu(e),bs(null)),Dn.delete(e))}async function hu(){const e=Ct.id?Vs(Ct.id):null;if(e){for(const t of e.manifest.requiredShards){const n=Wt.get(t);if(n?.suspend&&await n.suspend()===!1)return!1}if(e.suspend&&await e.suspend()===!1)return!1}return uu(),bs(null),!0}function Qn(e,t){const n=(r,s)=>{if(r.type==="tabs"){const a=r.tabs.findIndex(i=>i.slotId===t);if(a>=0)return{tabsNode:r,tabsPath:s,tabIndex:a,entry:r.tabs[a]}}else if(r.type==="split")for(let a=0;a<r.children.length;a++){const i=n(r.children[a],[...s,a]);if(i)return i}return null};return n(e,[])}function Hs(e,t){const n=Qn(e,t);if(!n)return null;const{tabsNode:r,tabIndex:s,entry:a}=n;return r.tabs.splice(s,1),r.tabs.length===0?r.activeTab=0:s<r.activeTab?r.activeTab-=1:r.activeTab>=r.tabs.length&&(r.activeTab=r.tabs.length-1),a}function Cg(e,t,n){const r=Math.max(0,Math.min(n,e.tabs.length));e.tabs.splice(r,0,t),e.activeTab=r}function $g(e,t,n){const r=e.tabs.slice(),[s]=r.splice(t,1),a=Math.max(0,Math.min(n,r.length));r.splice(a,0,s),e.tabs=r,e.activeTab=a}function Co(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 Pg(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 pu(e,t,n,r){const s=ws(e,t);if(!s)return;if(t.length===0){const u=Pg(s),d=Co(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 a=Co(s,n,r),i=t.slice(0,-1),l=t[t.length-1],c=ws(e,i);!c||c.type!=="split"||(c.children[l]=a)}function ws(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 Fn(e){let t=!0;for(;t;)t=mu(e,null,0)}function mu(e,t,n){if(e.type==="split"){let r=!1;for(let s=0;s<e.children.length;s++)mu(e.children[s],e,s)&&(r=!0);for(let s=e.children.length-1;s>=0;s--){const a=e.children[s];a.type==="tabs"&&a.tabs.length===0&&!a.persistent&&(e.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],a=e;return delete a.direction,delete a.sizes,delete a.pinned,delete a.collapsed,delete a.children,Object.assign(a,s),!0}return r}return e.type==="tabs",!1}function gu(){return{root:Xt(),source:du()}}function Dg(e){const t=Xt().docked,n=Ai(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 Lg(e){const t=Xt();return Ws(t.docked,n=>n.slotId===e)?!0:_u(t,n=>n.slotId===e)}function Ks(e){const t=Xt();return Ws(t.docked,n=>n.viewId===e)?!0:_u(t,n=>n.viewId===e)}function Ws(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(Ws(n,t))return!0}return!1}function _u(e,t){for(const n of e.floats)if(Ws(n.content,t))return Lt.focus(n.id),!0;return!1}function Og(e,t){return yu(e,t,!0)}function Mg(e,t){return yu(e,t,!1)}function yu(e,t,n){const r=Xt().docked,s=ws(r,e);if(!s||s.type!=="split")return!1;const a=s;return t<0||t>=a.children.length?!1:(a.collapsed||(a.collapsed=a.children.map(()=>!1)),a.collapsed[t]=n,!0)}async function Ti(e){const t=Xt(),n=t.docked;if(!Qn(n,e))return Ng(t,e);const a=ou(e)?.closable;return!a||typeof a=="object"&&(!await a.canClose()||!Qn(n,e))?!1:(Hs(n,e),Fn(n),!0)}async function Ng(e,t){for(const n of e.floats){if(!Qn(n.content,t))continue;const a=ou(t)?.closable;if(typeof a=="object"&&(!await a.canClose()||!Qn(n.content,t)))return!1;Hs(n.content,t);const i=n.content.type==="tabs"?n.content:null;return(!i||i.tabs.length===0)&&Lt.close(n.id),!0}return!1}function jg(e){const t=Xt(),n=Qn(t.docked,e);if(!n)return null;const r=n.entry,s=r.viewId;if(!s)return null;const a=r.label,i=r.meta;return Hs(t.docked,e),Fn(t.docked),Lt.open(s,{title:a,meta:i})}function zg(e){const n=Xt().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 Lt.close(e),!1;const a=s.tabs[s.activeTab??0]??s.tabs[0],i=Ii({slotId:a.slotId,viewId:a.viewId,label:a.label,meta:a.meta});return i&&Lt.close(e),i}function Ai(e){if(e.type==="tabs")return e;if(e.type==="split")for(const t of e.children){const n=Ai(t);if(n)return n}return null}function bu(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=bu(e.children[n],[...t,n]);if(r)return r}return null}function Ii(e){const t=Xt().docked;if(Ks(e.viewId??""))return!0;const n=Ai(t);if(n)return n.tabs.push(e),n.activeTab=n.tabs.length-1,!0;const r=bu(t);return r?(pu(t,r,e,"right"),!0):!1}class st extends Error{constructor(t,n){super(`Registry validation error at ${t}: ${n}`),this.name="RegistryValidationError",this.path=t}}function wu(e){if(!e||typeof e!="object"||Array.isArray(e))throw new st("$","expected an object");const t=e;if(t.version!==1)throw new st("$.version",`expected 1, got ${JSON.stringify(t.version)}`);if(!Array.isArray(t.packages))throw new st("$.packages","expected an array");return{version:1,packages:t.packages.map((r,s)=>qg(r,`$.packages[${s}]`))}}function qg(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new st(t,"expected an object");const n=e;Rt(n,"id",t),Bg(n,"type",["shard","app","combo"],t),Rt(n,"label",t),Rt(n,"description",t);const r=`${t}.author`;if(!n.author||typeof n.author!="object"||Array.isArray(n.author))throw new st(r,"expected an object");const s=n.author;if(typeof s.name!="string"||s.name.length===0)throw new st(`${r}.name`,"expected a non-empty string");if(!Array.isArray(n.versions)||n.versions.length===0)throw new st(`${t}.versions`,"expected a non-empty array");const a=n.versions.map((i,l)=>Vg(i,`${t}.versions[${l}]`));return{id:n.id,type:n.type,label:n.label,description:n.description,author:{name:s.name},icon:typeof n.icon=="string"?n.icon:void 0,versions:a}}function Vg(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new st(t,"expected an object");const n=e;Rt(n,"version",t),Rt(n,"contractVersion",t);const r="bundleUrl"in n&&n.bundleUrl!==void 0,s="integrity"in n&&n.integrity!==void 0;if(r&&Rt(n,"bundleUrl",t),s&&Rt(n,"integrity",t),r!==s)throw new st(t,"bundleUrl and integrity must be provided together");const a="serverBundleUrl"in n&&n.serverBundleUrl!==void 0;if(a&&Rt(n,"serverBundleUrl",t),"serverIntegrity"in n&&n.serverIntegrity!==void 0&&Rt(n,"serverIntegrity",t),!r&&!a)throw new st(t,"expected at least one of bundleUrl+integrity or serverBundleUrl");let i;if(n.requires!==void 0){if(!Array.isArray(n.requires))throw new st(`${t}.requires`,"expected an array");i=n.requires.map((l,c)=>Ug(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:i}}function Ug(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new st(t,"expected an object");const n=e;return Rt(n,"id",t),Rt(n,"versionRange",t),{id:n.id,versionRange:n.versionRange}}function Rt(e,t,n){const r=e[t];if(typeof r!="string"||r.length===0)throw new st(`${n}.${t}`,"expected a non-empty string")}function Bg(e,t,n,r){if(!n.includes(e[t]))throw new st(`${r}.${t}`,`expected one of: ${n.join(", ")}`)}const $o=["sha256","sha384","sha512"];function Fg(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(!$o.includes(n))throw new Error(`Unsupported SRI algorithm: ${n}. Supported: ${$o.join(", ")}`);if(!r)throw new Error(`Empty hash in SRI: ${e}`);return{algorithm:n,hash:r}}function Hg(e){return`SHA-${e.slice(3)}`}function Kg(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 Ri(e,t){const{algorithm:n,hash:r}=Fg(t),s=Hg(n),a=await crypto.subtle.digest(s,e),i=Kg(a);if(i!==r)throw new Error(`Integrity check failed for ${n}. Expected: ${r}, got: ${i}`)}async function ku(e){const t=new Set,n=[];for(const r of e){let s;try{const i=await fetch(r);if(!i.ok){console.warn(`[sh3] Registry fetch failed for ${r}: HTTP ${i.status}`);continue}s=await i.json()}catch(i){console.warn(`[sh3] Registry ${r}: ${i instanceof Error?i.message:String(i)}`);continue}let a;try{a=wu(s)}catch(i){console.warn(`[sh3] Registry ${r} failed validation: ${i instanceof Error?i.message:String(i)}`);continue}for(const i of a.packages)t.has(i.id)||(t.add(i.id),n.push({entry:i,latest:i.versions[0],sourceRegistry:r}))}return n}async function Ys(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 Ri(s,e.integrity),s}async function Ci(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 Ri(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 Gs(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 an="0.9.1",$i="sh3:user:__sh3core__:theme";let Tr=[];function Wg(e){const t=Object.keys(e);for(const n of Tr)t.includes(n)||document.documentElement.style.removeProperty(`--${n}`);for(const[n,r]of Object.entries(e))document.documentElement.style.setProperty(`--${n}`,r);Tr=t;try{localStorage.setItem($i,JSON.stringify(e))}catch{}}function Yg(){for(const e of Tr)document.documentElement.style.removeProperty(`--${e}`);Tr=[];try{localStorage.removeItem($i)}catch{}}function Su(){try{const e=localStorage.getItem($i);if(!e)return{};const t=JSON.parse(e);return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{}}catch{return{}}}function Gg(){const e=Su();if(Object.keys(e).length!==0){for(const[t,n]of Object.entries(e))document.documentElement.style.setProperty(`--${t}`,n);Tr=Object.keys(e)}}const Xg={hotInstall:typeof Blob<"u"&&typeof URL.createObjectURL=="function"},Eu=["__sh3core__","shell","sh3-store","sh3-admin"],xu=Object.freeze(Object.defineProperty({__proto__:null,ConsentDeniedError:eu,FRAMEWORK_SHARD_IDS:Eu,PERMISSION_DOCUMENTS_BROWSE:Gc,PERMISSION_DOCUMENTS_READ:Xc,PERMISSION_DOCUMENTS_WRITE:Jc,PERMISSION_KEYS_MINT:Zc,PERMISSION_STATE_MANAGE:hi,PERMISSION_SYNC_PEER:Wm,PERMISSION_SYNC_POLICY:Ym,ScopeEscalationError:Qc,VERSION:an,activeShards:qr,buildPackageMeta:Gs,capabilities:Xg,clearTokenOverrides:Yg,closeTab:Ti,collapseChild:Og,dockIntoActiveLayout:Ii,expandChild:Mg,fetchBundle:Ys,fetchRegistries:ku,focusTab:Lg,focusView:Ks,getActiveApp:su,getAuthHeader:zs,getTokenOverrides:Su,getUser:js,inspectActiveLayout:gu,isAdmin:sn,isAuthenticated:Fc,isGuest:Hc,launchApp:xr,listRegisteredApps:Ei,listVerbs:yi,registerConsentListener:tu,registeredShards:Wt,resolveConsent:Ma,returnToHome:hu,setTokenOverrides:Wg,shell:jc,spliceIntoActiveLayout:Dg,subscribeKeyRevocation:wi,unregisterApp:xi,validateRegistryIndex:wu},Symbol.toStringTag,{value:"Module"})),Jg="/assets/SH3-BG5NVpSD.png",Zg="https://cdn.jsdelivr.net/npm/p5@1.11.13/lib/p5.min.js";let dr=null;function Qg(){return dr||(dr=new Promise((e,t)=>{const n=window.p5;if(n){e(n);return}const r=document.createElement("script");r.src=Zg,r.async=!0,r.onload=()=>e(window.p5),r.onerror=s=>{dr=null,t(s)},document.head.appendChild(r)}),dr)}var e_=C('<h1 class="shell-title-fallback svelte-1ifjvh5">SH3</h1>'),t_=C('<div class="shell-title svelte-1ifjvh5"></div>');function n_(e,t){ae(t,!0);const n="`.-':;,^\"~=+<>*?!/\\|()[]{}x1ltzrcvunsXYUJCLQ0OZmwqpdbkhao*#MW&8%B@$",r=64,s=Math.floor(64/(442/193)),a=8,i=7,l=80,c=r*a,u=s*i,d=l/u;let f=j(void 0),v=null,w=j(!1);const y=()=>E=>{const N=getComputedStyle(document.documentElement).getPropertyValue("--shell-accent").trim();let I,_,L=!1;E.setup=()=>{E.createCanvas(c,u),E.noSmooth(),E.noStroke(),E.textAlign(E.CENTER,E.CENTER),E.textFont("monospace"),E.textSize(10),E.textStyle(E.BOLD),_=E.loadImage(Jg,()=>{I=E.createGraphics(r,s),I.pixelDensity(1),I.image(_,0,0,r,s),I.loadPixels(),L=!0},()=>{g(w,!0)})},E.draw=()=>{if(!L)return;const R=E.millis()*.001;let P;E.clear(),E.background(0,0),E.fill(N);for(let x=0;x<s;x++)for(let D=0;D<r;D++){const z=(x*r+D)*4;if(I.pixels[z]<64){if(P=E.noise(D/r*2,x/s*2,R*.15),P>.33)continue;E.text(n[Math.floor(P*n.length*.25)],(D+.5)*a,(x+.5)*i);continue}P=E.noise(D/r*4,x/s*4,R*.5),E.text(n[Math.floor(P*n.length)],(D+.5)*a,(x+.5)*i)}}};Me(()=>{if(o(w))return;let E=!1;return Qg().then($=>{if(!(E||!o(f)))try{v=new $(y(),o(f))}catch(N){console.error("[ShellTitle] p5 sketch failed to start",N),g(w,!0)}}).catch($=>{console.error("[ShellTitle] failed to load p5 from CDN",$),g(w,!0)}),()=>{E=!0,v&&(v.remove(),v=null)}});var k=vt(),b=ve(k);{var A=E=>{var $=e_();T(E,$)},m=E=>{var $=t_();Gt($,"",{},{width:"216.7195767195767px",height:"80px","--shell-title-scale":d}),It($,N=>g(f,N),()=>o(f)),T(E,$)};K(b,E=>{o(w)?E(A):E(m,-1)})}T(e,k),ie()}var r_=C('<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>'),s_=C('<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>'),a_=C('<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>'),i_=C('<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>'),o_=C('<p class="shell-home-empty svelte-cpn2x2"><!></p>'),l_=C('<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 c_(e,t){ae(t,!0);let n=j("");const r=G(Ei),s=G(sn);function a(_,L){if(!L)return!0;const R=L.toLowerCase();return _.label.toLowerCase().includes(R)||_.id.toLowerCase().includes(R)}const i=G(()=>o(r).filter(_=>!_.admin&&a(_,o(n)))),l=G(()=>o(r).filter(_=>_.admin&&a(_,o(n)))),c=G(()=>o(i).length+(o(s)?o(l).length:0));var u=l_(),d=p(u),f=p(d),v=p(f);n_(v,{});var w=S(v,2),y=p(w);h(w),Qt(2),h(f),Qt(2),h(d);var k=S(d,2),b=p(k);xe(b),h(k);var A=S(k,2);{var m=_=>{var L=s_(),R=S(p(L),2);_e(R,21,()=>o(i),P=>P.id,(P,x)=>{var D=r_(),z=p(D),M=p(z,!0);h(z);var H=S(z,2),X=p(H),W=p(X,!0);h(X);var Z=S(X,2),J=p(Z);h(Z),h(H),h(D),q(()=>{Te(D,"title",`Launch ${o(x).label??""}`),O(M,o(x).label),O(W,o(x).id),O(J,`v${o(x).version??""}`)}),Y("click",D,()=>xr(o(x).id)),T(P,D)}),h(R),h(L),T(_,L)};K(A,_=>{o(i).length>0&&_(m)})}var E=S(A,2);{var $=_=>{var L=i_(),R=S(p(L),2);_e(R,21,()=>o(l),P=>P.id,(P,x)=>{var D=a_(),z=p(D),M=p(z,!0);h(z);var H=S(z,2),X=p(H),W=p(X,!0);h(X);var Z=S(X,2),J=p(Z);h(Z),h(H),h(D),q(()=>{Te(D,"title",`Launch ${o(x).label??""}`),O(M,o(x).label),O(W,o(x).id),O(J,`v${o(x).version??""}`)}),Y("click",D,()=>xr(o(x).id)),T(P,D)}),h(R),h(L),T(_,L)};K(E,_=>{o(s)&&o(l).length>0&&_($)})}var N=S(E,2);{var I=_=>{var L=o_(),R=p(L);{var P=D=>{var z=fn("No apps registered.");T(D,z)},x=D=>{var z=fn();q(()=>O(z,`No apps match “${o(n)??""}”.`)),T(D,z)};K(R,D=>{o(r).length===0?D(P):D(x,-1)})}h(L),T(_,L)};K(N,_=>{o(c)===0&&_(I)})}h(u),q(()=>O(y,`v${an}`)),De(b,()=>o(n),_=>g(n,_)),T(e,u),ie()}be(["click"]);var u_=C('<p class="keys-peers-muted svelte-19l5m7c">Loading...</p>'),d_=C('<p class="keys-peers-error svelte-19l5m7c"> </p>'),f_=C('<p class="keys-peers-muted svelte-19l5m7c">No keys yet. Shards will ask your permission before creating one.</p>'),v_=C('<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),h_=C('<button type="button" class="keys-peers-btn-danger svelte-19l5m7c">Revoke</button>'),p_=C('<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>'),m_=C('<ul class="keys-peers-list svelte-19l5m7c"></ul>'),g_=C('<div class="keys-peers svelte-19l5m7c"><div class="keys-peers-header svelte-19l5m7c"><h2 class="svelte-19l5m7c">Keys & Peers</h2></div> <!></div>');function __(e,t){ae(t,!0);let n=j(pe([])),r=j(null),s=j(!0),a=j(null);async function i(){g(r,null),g(s,!0);try{const k=await fetch("/api/keys",{credentials:"include"});if(!k.ok)throw new Error(`HTTP ${k.status}`);g(n,await k.json(),!0)}catch(k){g(r,k instanceof Error?k.message:String(k),!0)}finally{g(s,!1)}}async function l(k){g(a,null);const b=await fetch(`/api/keys/${encodeURIComponent(k)}`,{method:"DELETE",credentials:"include"});(b.ok||b.status===404)&&g(n,o(n).filter(A=>A.id!==k),!0)}function c(k){return new Date(k).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}Me(()=>{i()}),Me(()=>wi("*",()=>{i()}));var u=g_(),d=S(p(u),2);{var f=k=>{var b=u_();T(k,b)},v=k=>{var b=d_(),A=p(b);h(b),q(()=>O(A,`Failed to load: ${o(r)??""}`)),T(k,b)},w=k=>{var b=f_();T(k,b)},y=k=>{var b=m_();_e(b,21,()=>o(n),A=>A.id,(A,m)=>{var E=p_(),$=p(E),N=p($),I=p(N,!0);h(N);var _=S(N,2),L=p(_);h(_);var R=S(_,2),P=p(R);h(R);var x=S(R,2),D=p(x);h(x),h($);var z=S($,2),M=p(z);{var H=W=>{var Z=v_(),J=ve(Z),oe=S(J,2);Y("click",J,()=>l(o(m).id)),Y("click",oe,()=>{g(a,null)}),T(W,Z)},X=W=>{var Z=h_();Y("click",Z,()=>{g(a,o(m).id,!0)}),T(W,Z)};K(M,W=>{o(a)===o(m).id?W(H):W(X,-1)})}h(z),h(E),q((W,Z,J)=>{O(I,o(m).label),O(L,`Minted by: ${o(m).mintedByShardId??"system"??""}${o(m).peerRole||o(m).peerId?` · Peer: ${o(m).peerRole??"—"}${o(m).peerId?` (${o(m).peerId})`:""}`:""}`),O(P,`Scopes: ${W??""}`),O(D,`Created: ${Z??""} · Expires: ${J??""}`)},[()=>o(m).scopes.join(", "),()=>c(o(m).createdAt),()=>o(m).expiresAt?c(o(m).expiresAt):"never"]),T(A,E)}),h(b),T(k,b)};K(d,k=>{o(s)?k(f):o(r)?k(v,1):o(n).length===0?k(w,2):k(y,-1)})}h(u),T(e,u),ie()}be(["click"]);const y_={manifest:{id:"__sh3core__",label:"SH3 Core",version:an,views:[{id:"sh3core:home",label:"Home"},{id:"shell:keys-and-peers",label:"Keys & Peers"}]},activate(e){const t={mount(r,s){const a=Ue(c_,{target:r});return{unmount(){Xe(a)}}}},n={mount(r,s){const a=Ue(__,{target:r});return{unmount(){Xe(a)}}}};e.registerView("sh3core:home",t),e.registerView("shell:keys-and-peers",n)},autostart(){}},b_={id:"shell",label:"Shell",version:an,views:[{id:"shell:terminal",label:"Shell",standalone:!0}],permissions:[]},w_=2e3;let k_=0;function S_(){return`e${++k_}`}class E_{#e;get entries(){return o(this.#e)}set entries(t){g(this.#e,t,!0)}constructor(t=w_){this.#e=j(pe([])),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:S_()};this.entries.push(r),this.entries.length>this.cap&&this.entries.splice(0,this.entries.length-this.cap)}clear(){this.entries.length=0}}var x_=C("<pre> </pre>");function T_(e,t){ae(t,!0);const n=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,r=G(()=>t.chunks.join("").replace(n,""));var s=x_();let a;var i=p(s,!0);h(s),q(()=>{a=Oe(s,1,"shell-text svelte-ypr8s",null,a,{stderr:t.stream==="stderr"}),O(i,o(r))}),T(e,s),ie()}var A_=C('<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 I_(e,t){var n=A_(),r=p(n),s=p(r,!0);h(r);var a=S(r,4),i=p(a,!0);h(a),h(n),q(()=>{O(s,t.cwd),O(i,t.line)}),T(e,n)}var R_=C("<div> </div>");function C_(e,t){var n=R_();let r;var s=p(n,!0);h(n),q(()=>{r=Oe(n,1,"shell-status svelte-nfxdpt",null,r,{info:t.level==="info",warn:t.level==="warn",error:t.level==="error"}),O(s,t.text)}),T(e,n)}var $_=C('<div class="shell-rich svelte-1rnhl05"><!></div>');function P_(e,t){var n=$_(),r=p(n);Nr(r,()=>t.component,(s,a)=>{a(s,zr(()=>t.componentProps))}),h(n),T(e,n)}var D_=C('<div class="shell-scrollback svelte-isy3jt"></div>');function L_(e,t){ae(t,!0);let n=j(null);Me(()=>{t.scrollback.entries.length,o(n)&&(o(n).scrollTop=o(n).scrollHeight)});var r=D_();_e(r,21,()=>t.scrollback.entries,s=>s.id,(s,a)=>{var i=vt(),l=ve(i);{var c=v=>{T_(v,{get stream(){return o(a).stream},get chunks(){return o(a).chunks}})},u=v=>{I_(v,{get cwd(){return o(a).cwd},get line(){return o(a).line}})},d=v=>{C_(v,{get text(){return o(a).text},get level(){return o(a).level}})},f=v=>{P_(v,{get component(){return o(a).component},get componentProps(){return o(a).props}})};K(l,v=>{o(a).kind==="text"?v(c):o(a).kind==="prompt"?v(u,1):o(a).kind==="status"?v(d,2):o(a).kind==="rich"&&v(f,3)})}T(s,i)}),h(r),It(r,s=>g(n,s),()=>o(n)),T(e,r),ie()}var O_=C('<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 M_(e,t){ae(t,!0);let n=j(""),r=j(null),s=j(""),a=j(null);function i(){if(t.locked)return;const k=o(n);k.trim()&&(g(n,""),g(r,null),t.onSubmit(k))}function l(){t.history.length!==0&&(o(r)===null?(g(s,o(n),!0),g(r,t.history.length-1)):o(r)>0&&Gn(r,-1),g(n,t.history[o(r)]??"",!0))}function c(){o(r)!==null&&(o(r)<t.history.length-1?(Gn(r),g(n,t.history[o(r)],!0)):(g(r,null),g(n,o(s),!0)))}function u(k){if(t.locked){if(k.ctrlKey&&k.key==="c"){k.preventDefault(),t.session.send({t:"signal",sig:"SIGINT"});return}if(k.ctrlKey&&k.key==="d"){k.preventDefault(),t.session.send({t:"signal",sig:"EOF"});return}k.preventDefault();return}k.key==="Enter"?(k.preventDefault(),i()):k.key==="ArrowUp"?(k.preventDefault(),l()):k.key==="ArrowDown"?(k.preventDefault(),c()):k.ctrlKey&&k.key==="c"?(k.preventDefault(),g(n,""),g(r,null)):k.ctrlKey&&k.key==="l"&&(k.preventDefault(),g(n,"clear"),i())}Me(()=>{!t.locked&&o(a)&&o(a).focus()});var d=O_();let f;var v=p(d),w=p(v,!0);h(v);var y=S(v,4);xe(y),It(y,k=>g(a,k),()=>o(a)),h(d),q(()=>{f=Oe(d,1,"shell-input svelte-1dfv2gk",null,f,{locked:t.locked}),O(w,t.cwd),y.disabled=t.locked}),Y("keydown",y,u),De(y,()=>o(n),k=>g(n,k)),T(e,d),ie()}be(["keydown"]);const Po=[1e3,2e3,5e3,1e4];class N_{#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)}#a;get history(){return o(this.#a)}set history(t){g(this.#a,t,!0)}constructor(t){this.url=t,this.ws=null,this.handlers=new Set,this.pendingHistoryLogs=[],this.lastSeq=0,this.backoffIndex=0,this.closed=!1,this.#e=j(!1),this.#t=j(""),this.#n=j(pe({})),this.#a=j(pe([]))}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=Po[Math.min(this.backoffIndex,Po.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 j_{list(){return yi()}get(t){return Eo(t)}resolve(t){const n=t.trim();if(!n)return{kind:"forward",line:t};if(n.startsWith("$ "))return{kind:"forward",line:n.slice(2)};if(n==="$")return{kind:"forward",line:""};const r=n.indexOf(" "),s=r===-1?n:n.slice(0,r),a=r===-1?"":n.slice(r+1),i=Eo(s);if(!i)return{kind:"forward",line:t};const l=a.length?a.split(/\s+/):[];return{kind:"local",verb:i,args:l,line:t}}}class z_{constructor(t=""){this.base=t}async list(t){return(await(await this.#e("/api/fs/list",t)).json()).entries}async stat(t){return await(await this.#e("/api/fs/stat",t)).json()}async read(t){return await(await this.#e("/api/fs/read",t)).text()}async#e(t,n){const r=`${this.base}${t}?path=${encodeURIComponent(n)}`,s=await fetch(r,{credentials:"include"});if(!s.ok){let a=`HTTP ${s.status}`;try{const i=await s.json();i.error&&(a=i.error)}catch{}throw new Error(a)}return s}}class q_{#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 V_={id:"dev",label:"Dev",requiresRole:"admin",transport:"ws",autoRelocate:!1},U_={id:"user",label:"User",transport:"none",autoRelocate:!0};function B_(e){e.register(V_),e.register(U_)}function Tu(e){return`sh3.shell.lastMode.${e}`}function F_(e){try{return globalThis.localStorage?.getItem(Tu(e))??null}catch{return null}}function H_(e,t){try{globalThis.localStorage?.setItem(Tu(e),t)}catch{}}function K_(e,t,n){const r=F_(t);if(r){const a=e.get(r);if(a&&(!a.requiresRole||a.requiresRole===n))return a}const s=n==="admin"?"dev":"user";return e.get(s)}function W_(e){return async function t(n){const r=e.mode();if(e.session.history.push(n),r.transport==="none"&&n.trimStart().startsWith("$ ")){e.scrollback.push({kind:"prompt",cwd:e.cwd(),line:n,ts:Date.now()}),e.scrollback.push({kind:"status",text:"shell: server shell not available in user mode",level:"error",ts:Date.now()});return}const s=e.resolver.resolve(n);if(s.kind==="local"){r.transport==="ws"&&e.session.send({t:"history-log",line:n}),e.scrollback.push({kind:"prompt",cwd:e.cwd(),line:n,ts:Date.now()});try{await s.verb.run({shell:e.shell,scrollback:e.scrollback,session:e.session,cwd:e.cwd(),dispatch:t,fs:e.fs},s.args)}catch(a){e.scrollback.push({kind:"status",text:`shell: verb ${s.verb.name} threw — ${a.message}`,level:"error",ts:Date.now()})}return}if(r.transport==="ws")e.session.send({t:"submit",line:s.line});else{const a=s.line.split(/\s+/)[0]??"";e.scrollback.push({kind:"prompt",cwd:e.cwd(),line:s.line,ts:Date.now()}),e.scrollback.push({kind:"status",text:`unknown verb: ${a}`,level:"error",ts:Date.now()})}}}async function Y_(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 G_=C('<div class="toolbar svelte-gnowwz"><div class="toolbar-slots svelte-gnowwz"></div></div>');function X_(e,t){ae(t,!0);let n=Ht(t,"slotProps",19,()=>({})),r=G(()=>t.registry.list(t.ctx));var s=G_(),a=p(s);_e(a,21,()=>o(r),i=>i.id,(i,l)=>{const c=G(()=>o(l).component);var u=vt(),d=ve(u);Nr(d,()=>o(c),(f,v)=>{v(f,zr(()=>n()[o(l).id]??{}))}),T(i,u)}),h(a),h(s),T(e,s),ie()}class J_{#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 Z_=C('<button type="button"> </button>'),Q_=C('<div class="mode-bar svelte-1i4cqlj" role="toolbar" aria-label="Shell mode"></div>'),ey=C('<span class="mode-label svelte-1i4cqlj"> </span>');function ty(e,t){ae(t,!0);let n=G(()=>t.registry.list(t.role));var r=vt(),s=ve(r);{var a=l=>{var c=Q_();_e(c,21,()=>o(n),u=>u.id,(u,d)=>{var f=Z_();let v;var w=p(f,!0);h(f),q(()=>{v=Oe(f,1,"mode-btn svelte-1i4cqlj",null,v,{active:o(d).id===t.mode.id}),Te(f,"aria-pressed",o(d).id===t.mode.id),O(w,o(d).label)}),Y("click",f,()=>t.onSelect(o(d).id)),T(u,f)}),h(c),T(l,c)},i=l=>{var c=ey(),u=p(c,!0);h(c),q(()=>O(u,t.mode.label)),T(l,c)};K(s,l=>{t.role==="admin"?l(a):l(i,-1)})}T(e,r),ie()}be(["click"]);var ny=C('<button class="focus-lock-btn svelte-1q6gbap"> </button>');function ry(e,t){var n=ny(),r=p(n,!0);h(n),q(()=>{Te(n,"title",t.locked?"Unlock focus":"Lock focus"),O(r,t.locked?"🔒":"🔓")}),Y("click",n,function(...s){t.onToggle?.apply(this,s)}),T(e,n)}be(["click"]);var sy=C('<span class="target-shard svelte-1nn2m6x" title="Target shard"> </span>');function ay(e,t){var n=sy(),r=p(n);h(n),q(()=>O(r,`→ ${t.target??"—"??""}`)),T(e,n)}var iy=C('<div class="shell-terminal svelte-13komre"><!> <!> <!></div>');function oy(e,t){ae(t,!0);const n=new E_,r=new j_,s=new z_,a=new q_;B_(a);let i=j(pe(ke(()=>K_(a,t.userId,t.role))));function l(I){const _=a.get(I);_&&(_.requiresRole&&_.requiresRole!==t.role||(g(i,_,!0),H_(t.userId,I),_.transport!=="ws"&&n.push({kind:"status",text:"mode switch: reload to take effect for server-shell changes",level:"info",ts:Date.now()})))}const c=ke(()=>new N_(t.wsUrl)),u=ke(()=>W_({mode:()=>o(i),resolver:r,scrollback:n,session:c,shell:t.shell,fs:s,cwd:()=>c.cwd}));let d=j(!1),f=j(!1),v=j(null);const w=new J_;w.register({id:"mode",order:10,visible:()=>!0,component:ty}),w.register({id:"focus-lock",order:20,visible:I=>I.mode.id==="user",component:ry}),w.register({id:"target-shard",order:30,visible:I=>I.mode.id==="user",component:ay});function y(I){if(I.type==="tabs")return I.tabs[I.activeTab]?.viewId??null;if(I.type==="split")for(const _ of I.children){const L=y(_);if(L!==null)return L}return I.viewId??null}function k(){try{const I=Xt(),_=y(I.docked);if(!_)return null;const L=_.indexOf(":");return L>=0?_.slice(0,L):_}catch{return null}}Me(()=>{const I=k(),_=o(i).autoRelocate,L=o(f);(async()=>{const R=await Y_({modeAutoRelocate:_,focusLocked:L,focusedShardId:I,currentShardId:"shell"},s);R.kind==="relocate"&&R.path!==void 0&&(c.cwd=R.path),I&&I!=="shell"?g(v,I,!0):I||g(v,null)})()});function b(I){if(I.t!=="event")return;const _=I.event;switch(_.kind){case"prompt":n.push({kind:"prompt",cwd:_.cwd,line:_.line,ts:_.ts}),g(d,!0);break;case"stdout":n.push({kind:"text",stream:"stdout",chunks:[_.data],ts:_.ts});break;case"stderr":n.push({kind:"text",stream:"stderr",chunks:[_.data],ts:_.ts});break;case"exit":(_.signal||_.code!==null&&_.code!==0)&&n.push({kind:"status",text:_.signal?`shell: process exited (${_.signal})`:`shell: process exited (${_.code})`,level:"error",ts:_.ts}),g(d,!1);break;case"status":n.push({kind:"status",text:_.text,level:_.level,ts:_.ts});break}}let A=null;ci(()=>{A=c.onMessage(b),o(i).transport==="ws"&&c.connect()}),hc(()=>{A?.(),c.close()});var m=iy(),E=p(m);{let I=G(()=>({mode:o(i),role:t.role})),_=G(()=>({mode:{mode:o(i),role:t.role,registry:a,onSelect:l},"focus-lock":{locked:o(f),onToggle:()=>g(f,!o(f))},"target-shard":{target:o(v)}}));X_(E,{get registry(){return w},get ctx(){return o(I)},get slotProps(){return o(_)}})}var $=S(E,2);L_($,{get scrollback(){return n}});var N=S($,2);M_(N,{get cwd(){return c.cwd},get locked(){return o(d)},get history(){return c.history},get session(){return c},get onSubmit(){return u}}),h(m),T(e,m),ie()}var ly=C('<tr><td class="svelte-m248jy"><button type="button" class="svelte-m248jy"> </button></td><td class="svelte-m248jy"> </td></tr>'),cy=C('<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 uy(e,t){ae(t,!0);var n=cy(),r=p(n),s=S(p(r));_e(s,21,()=>t.data.rows,a=>a.name,(a,i)=>{var l=ly(),c=p(l),u=p(c),d=p(u,!0);h(u),h(c);var f=S(c),v=p(f,!0);h(f),h(l),q(()=>{O(d,o(i).name),O(v,o(i).summary)}),Y("click",u,()=>t.data.onClickName(o(i).name)),T(a,l)}),h(s),h(r),h(n),T(e,n),ie()}be(["click"]);function dy(){return{name:"help",summary:"List verbs or show detail for one.",async run(e){const t=yi().map(n=>({name:n.name,summary:n.summary}));e.scrollback.push({kind:"rich",component:uy,props:{data:{rows:t,onClickName:n=>e.dispatch(n)}},ts:Date.now()})}}}const fy={name:"clear",summary:"Clear the scrollback (local only — other views are unaffected).",async run(e){e.scrollback.clear()}};var vy=C('<li class="svelte-o8m437"><button type="button" class="svelte-o8m437"> </button></li>'),hy=C('<div class="shell-rich-history svelte-o8m437"><ol class="svelte-o8m437"></ol></div>');function py(e,t){ae(t,!0);var n=hy(),r=p(n);_e(r,21,()=>t.data.lines,Jn,(s,a)=>{var i=vy(),l=p(i),c=p(l,!0);h(l),h(i),q(()=>O(c,o(a))),Y("click",l,()=>t.data.onClickLine(o(a))),T(s,i)}),h(r),h(n),T(e,n),ie()}be(["click"]);const my={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:py,props:{data:{lines:r,onClickLine:s=>e.dispatch(s)}},ts:Date.now()})}};var gy=C('<tr><td class="svelte-1u5krjz"><button type="button" class="svelte-1u5krjz"> </button></td><td class="svelte-1u5krjz"> </td></tr>'),_y=C('<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 yy(e,t){ae(t,!0);var n=_y(),r=p(n),s=S(p(r));_e(s,21,()=>t.data.apps,a=>a.id,(a,i)=>{var l=gy(),c=p(l),u=p(c),d=p(u,!0);h(u),h(c);var f=S(c),v=p(f,!0);h(f),h(l),q(()=>{O(d,o(i).id),O(v,o(i).label)}),Y("click",u,()=>t.data.onClickApp(o(i).id)),T(a,l)}),h(s),h(r),h(n),T(e,n),ie()}be(["click"]);var by=C('<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 wy(e,t){ae(t,!0);var n=by(),r=p(n),s=p(r,!0);h(r);var a=S(r,2),i=S(p(a));h(a);var l=S(a,2),c=S(p(l));h(l),h(n),q(u=>{O(s,t.data.label),O(i,` ${t.data.id??""}`),O(c,` ${u??""}`)},[()=>t.data.shards.join(", ")]),T(e,n),ie()}const ky={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:yy,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()})}},Sy={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:wy,props:{data:{id:t.id,label:t.label,shards:[]}},ts:Date.now()})}};var Ey=C('<tr><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td></tr>'),xy=C('<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 Ty(e,t){ae(t,!0);var n=xy(),r=p(n),s=S(p(r));_e(s,21,()=>t.data.shards,a=>a.id,(a,i)=>{var l=Ey(),c=p(l),u=p(c,!0);h(c);var d=S(c),f=p(d,!0);h(d);var v=S(d),w=p(v,!0);h(v),h(l),q(()=>{O(u,o(i).id),O(f,o(i).label),O(w,o(i).version)}),T(a,l)}),h(s),h(r),h(n),T(e,n),ie()}const Ay={name:"shards",summary:"List active shards.",async run(e){const t=e.shell.listShards();e.scrollback.push({kind:"rich",component:Ty,props:{data:{shards:t}},ts:Date.now()})}};var Iy=C('<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>'),Ry=C('<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 Cy(e,t){ae(t,!0);var n=Ry(),r=p(n),s=S(p(r));_e(s,21,()=>t.data.views,a=>a.slotId,(a,i)=>{var l=Iy(),c=p(l),u=p(c,!0);h(c);var d=S(c),f=p(d,!0);h(d);var v=S(d),w=p(v,!0);h(v);var y=S(v),k=p(y);h(y),h(l),q(()=>{O(u,o(i).slotId),O(f,o(i).viewId),O(w,o(i).label)}),Y("click",k,()=>t.data.onClose(o(i).slotId)),T(a,l)}),h(s),h(r),h(n),T(e,n),ie()}be(["click"]);const $y={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(`
|
|
7
|
-
`),level:"info",ts:Date.now()});return}const n=e.shell.listViewsInCurrentLayout();e.scrollback.push({kind:"rich",component:Cy,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()})}},Py={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()})}},Dy={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()})}},Ly={name:"dock",summary:"Dock a float back into the current layout by float id. Run with no args to list floats.",async run(e,t){const n=t[0];if(!n){const s=e.shell.listFloats();if(s.length===0){e.scrollback.push({kind:"status",text:"shell: no active floats.",level:"info",ts:Date.now()});return}e.scrollback.push({kind:"status",text:s.map(a=>` ${a.floatId.padEnd(24)} ${a.viewId??"-"} ${a.label}`).join(`
|
|
8
|
-
`),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()})}},Oy={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 My=C('<tr><td class="svelte-1w7onag"> </td><td class="svelte-1w7onag"> </td></tr>'),Ny=C('<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 jy(e,t){ae(t,!0);var n=Ny(),r=p(n),s=S(p(r));_e(s,21,()=>t.data.rows,a=>a.shardId,(a,i)=>{var l=My(),c=p(l),u=p(c,!0);h(c);var d=S(c),f=p(d,!0);h(d),h(l),q(v=>{O(u,o(i).shardId),O(f,v)},[()=>o(i).zones.join(", ")]),T(a,l)}),h(s),h(r),h(n),T(e,n),ie()}var zy=C('<div class="shell-rich-zonetree svelte-13iiyr1"><pre class="svelte-13iiyr1"> </pre></div>');function qy(e,t){ae(t,!0);var n=zy(),r=p(n),s=p(r,!0);h(r),h(n),q(a=>O(s,a),[()=>JSON.stringify(t.data.value,null,2)]),T(e,n),ie()}const Vy={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:jy,props:{data:{rows:n}},ts:Date.now()})}},Uy={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:qy,props:{data:{value:s}},ts:Date.now()})}};function By(e,t){if(t.startsWith("/"))return Fy(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 Fy(e){return e.split("/").filter(t=>t&&t!==".").join("/")}const Hy={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+`
|
|
9
|
-
`],ts:Date.now()})}},Ky={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=By(r,n);try{if((await e.fs.stat(s)).kind!=="dir"){e.scrollback.push({kind:"status",text:`cd: not a directory: ${n}`,level:"error",ts:Date.now()});return}}catch(a){e.scrollback.push({kind:"status",text:`cd: ${a.message}`,level:"error",ts:Date.now()});return}e.session.cwd=s}},Wy={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)":""}
|
|
10
|
-
`],ts:Date.now()})}};var Yy=C('<tr><td class="svelte-1ox8vog"> </td><td class="svelte-1ox8vog"> </td></tr>'),Gy=C('<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 Xy(e,t){ae(t,!0);var n=Gy(),r=p(n),s=S(p(r));_e(s,21,()=>Object.entries(t.data.env),([a,i])=>a,(a,i)=>{var l=G(()=>tl(o(i),2));let c=()=>o(l)[0],u=()=>o(l)[1];var d=Yy(),f=p(d),v=p(f,!0);h(f);var w=S(f),y=p(w,!0);h(w),h(d),q(()=>{O(v,c()),O(y,u())}),T(a,d)}),h(s),h(r),h(n),T(e,n),ie()}const Jy={name:"env",summary:"Show the session environment.",async run(e){const t=e.session.env;e.scrollback.push({kind:"rich",component:Xy,props:{data:{env:t}},ts:Date.now()})}},Zy={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(`
|
|
11
|
-
`);e.scrollback.push({kind:"text",stream:"stdout",chunks:[n||"(empty)"],ts:Date.now()})}},Qy={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 eb(e){e.registerVerb(dy()),e.registerVerb(fy),e.registerVerb(my),e.registerVerb(ky),e.registerVerb(Sy),e.registerVerb(Ay),e.registerVerb($y),e.registerVerb(Py),e.registerVerb(Oy),e.registerVerb(Dy),e.registerVerb(Ly),e.registerVerb(Vy),e.registerVerb(Uy),e.registerVerb(Hy),e.registerVerb(Ky),e.registerVerb(Jy),e.registerVerb(Wy),e.registerVerb(Zy),e.registerVerb(Qy)}function Au(e){return e.type==="tabs"?e.tabs.filter(t=>t.viewId!==null):e.type==="split"?e.children.flatMap(Au):e.viewId!==null?[{slotId:e.slotId,viewId:e.viewId,label:e.viewId}]:[]}function tb(e){return{listApps(){return Ei().map(t=>({id:t.id,label:t.label}))},getActiveApp(){const t=su();return t?{id:t.id,label:t.label}:null},launchApp(t){xr(t)},listShards(){return Array.from(Wt.values()).map(t=>({id:t.manifest.id,label:t.manifest.label,version:t.manifest.version}))},listViewsInCurrentLayout(){try{const{root:t}=gu();return Au(t.docked).map(n=>({slotId:n.slotId,viewId:n.viewId??"",label:n.label}))}catch{return[]}},openViewInCurrentLayout(t){try{if(Ks(t))return{ok:!0};const n=Ao().find(r=>r.viewId===t);if(n){const r=`standalone:${t}:${Date.now()}`;return Ii({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 Ao()},popoutSlot(t){try{const n=jg(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 zg(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)}}},listFloats(){return Lt.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 Ti(t),{ok:!0}},listZones(t){return[]},readZone(t,n){return null},whoAmI(){return{userId:js()?.id??"guest",admin:sn()}}}}const nb={manifest:b_,activate(e){if(!e.isAdmin)return;eb(e);const t=tb(),n={mount(r,s){const a=typeof location<"u"&&location.protocol==="https:"?"wss":"ws",i=typeof location<"u"?location.host:"localhost",l=`${a}://${i}/api/shell/session`,u=js()?.id??"guest",d=sn()?"admin":"user",f=Ue(oy,{target:r,props:{shell:t,wsUrl:l,userId:u,role:d}});return{unmount(){Xe(f)},closable:!0}}};e.registerView("shell:terminal",n)},autostart(){}},Do=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 va(e,t){const n=Object.keys(t),r=n.filter(i=>!Do.has(i)),s=n.filter(i=>Do.has(i)),a=[`const __m__ = globalThis.${e};`];r.length>0&&a.push(`export const { ${r.join(", ")} } = __m__;`);for(const i of s)a.push(`const __r_${i}__ = __m__['${i}']; export { __r_${i}__ as ${i} };`);return a.push("export default __m__.default;"),URL.createObjectURL(new Blob([a.join(`
|
|
12
|
-
`)],{type:"application/javascript"}))}const Pi=globalThis;Pi.__sh3__=xu;Pi.__sh3_svelte__=mc;Pi.__sh3_svelte_internal_client__=Cc;const Di={"sh3-core":va("__sh3__",xu),svelte:va("__sh3_svelte__",mc),"svelte/internal/client":va("__sh3_svelte_internal_client__",Cc)};Di["svelte/internal/disclose-version"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));Di["sh3-core/tokens.css"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));const rb=/(?:from|import)\s*(['"])(sh3-core(?:\/[^'"]*)?|svelte(?:\/[^'"]*)?)\1/g;function sb(e){return e.replace(rb,(t,n,r)=>{const s=Di[r];return s?`${t.startsWith("from")?"from":"import"} '${s}'`:t})}async function Vr(e){const t=new TextDecoder().decode(e),n=sb(t),r=new Blob([n],{type:"application/javascript"}),s=URL.createObjectURL(r);try{const a=await import(s),i={shards:[],apps:[]};for(const l of Object.values(a)){if(!l||typeof l!="object"||!("manifest"in l))continue;const c=l;ab(c)?i.shards.push(c):ib(c)&&i.apps.push(c)}if(i.shards.length===0&&i.apps.length===0)throw new Error('Bundle has no exports with a "manifest" property — expected at least one shard or app');return i}finally{URL.revokeObjectURL(s)}}function ab(e){return"activate"in e&&typeof e.activate=="function"&&Array.isArray(e.manifest.views)}function ib(e){return"initialLayout"in e&&Array.isArray(e.manifest.requiredShards)}const ob="sh3-packages",lb=1,Ar="bundles",er="meta";function Ur(){return new Promise((e,t)=>{const n=indexedDB.open(ob,lb);n.onupgradeneeded=()=>{const r=n.result;r.objectStoreNames.contains(Ar)||r.createObjectStore(Ar),r.objectStoreNames.contains(er)||r.createObjectStore(er)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}function Ln(e,t,n,r){return new Promise((s,a)=>{const l=e.transaction(t,n).objectStore(t),c=r(l);c.onsuccess=()=>s(c.result),c.onerror=()=>a(c.error)})}async function Iu(e,t,n){const r=await Ur();await Ln(r,Ar,"readwrite",s=>s.put(t,e)),await Ln(r,er,"readwrite",s=>s.put(n,e)),r.close()}async function Ru(e){const t=await Ur(),n=await Ln(t,Ar,"readonly",r=>r.get(e));return t.close(),n??null}async function cb(e){const t=await Ur(),n=await Ln(t,er,"readonly",r=>r.get(e));return t.close(),n??null}async function Cu(){const e=await Ur(),t=await Ln(e,er,"readonly",n=>n.getAll());return e.close(),t??[]}async function ub(e){const t=await Ur();await Ln(t,Ar,"readwrite",n=>n.delete(e)),await Ln(t,er,"readwrite",n=>n.delete(e)),t.close()}function Li(e,t){for(const n of e.shards)n.manifest={...n.manifest,version:t.version},ki(n);for(const n of e.apps)n.manifest={...n.manifest,version:t.version},Si(n)}const db={"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 ha(e){return db[e]??{title:e,description:"Unknown permission."}}function Oi(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 Mi(e,t,n){if(!t.integrity)return{success:!1,hotLoaded:!1,error:"Missing integrity hash — refusing to install unverified bundle"};try{await Ri(e,t.integrity)}catch(i){return{success:!1,hotLoaded:!1,error:`Integrity check failed: ${i instanceof Error?i.message:String(i)}`}}let r;if(n?.loaded)r=n.loaded;else try{r=await Vr(e)}catch(i){return{success:!1,hotLoaded:!1,error:`Failed to load bundle: ${i instanceof Error?i.message:String(i)}`}}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:Oi(r)};try{await Iu(t.id,e,s)}catch(i){return{success:!1,hotLoaded:!1,error:`Failed to persist package: ${i instanceof Error?i.message:String(i)}`}}if(t.type==="shard"||t.type==="combo")try{qs(t.id)}catch{}(t.type==="app"||t.type==="combo")&&xi(t.id);let a=!0;try{Li(r,{version:t.version,sourceRegistry:t.sourceRegistry,contractVersion:t.contractVersion})}catch(i){console.warn(`[sh3] Package "${t.id}" installed but registration failed (will retry on next boot):`,i instanceof Error?i.message:i),a=!1}return{success:!0,package:s,hotLoaded:a}}async function $u(e){try{qs(e)}catch{}xi(e),await ub(e)}async function fb(){return Cu()}async function vb(){let e;try{e=await Cu()}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 Ru(t.id);if(!n){console.warn(`[sh3] No bundle found for installed package "${t.id}", skipping`);continue}const r=await Vr(n);Li(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 Lo={version:1};var hb=C('<span class="perm-modal-author svelte-1ipp1r6"> </span>'),pb=C('<p class="perm-modal-empty svelte-1ipp1r6">This package requires no special permissions.</p>'),mb=C('<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>'),gb=C('<p class="perm-modal-intro svelte-1ipp1r6">This package requests the following permissions:</p> <ul class="perm-modal-list svelte-1ipp1r6"></ul>',1),_b=C('<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>'),yb=C('<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),bb=C('<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>'),wb=C('<p class="perm-modal-intro svelte-1ipp1r6">Permissions no longer requested:</p> <ul class="perm-modal-list perm-modal-removed svelte-1ipp1r6"></ul>',1),kb=C("<!> <!>",1),Sb=C('<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 za(e,t){ae(t,!0);const n=Ht(t,"permissions",19,()=>[]),r=Ht(t,"added",19,()=>[]),s=Ht(t,"removed",19,()=>[]),a=G(()=>t.mode==="install"?"Install":"Update");var i=Sb(),l=p(i),c=p(l),u=p(c),d=p(u);h(u);var f=S(u,2),v=p(f);{var w=R=>{var P=fn();q(()=>O(P,`${t.fromVersion??""} → ${t.pkg.version??""}`)),T(R,P)},y=R=>{var P=fn();q(()=>O(P,`v${t.pkg.version??""}`)),T(R,P)};K(v,R=>{t.mode==="update"&&t.fromVersion?R(w):R(y,-1)})}var k=S(v,2);{var b=R=>{var P=hb(),x=p(P);h(P),q(()=>O(x,`by ${t.pkg.author??""}`)),T(R,P)};K(k,R=>{t.pkg.author&&R(b)})}h(f),h(c);var A=S(c,2),m=p(A);{var E=R=>{var P=vt(),x=ve(P);{var D=M=>{var H=pb();T(M,H)},z=M=>{var H=gb(),X=S(ve(H),2);_e(X,20,n,W=>W,(W,Z)=>{const J=G(()=>ha(Z));var oe=mb(),se=p(oe),ne=p(se,!0);h(se);var me=S(se,2),fe=p(me,!0);h(me),h(oe),q(()=>{O(ne,o(J).title),O(fe,o(J).description)}),T(W,oe)}),h(X),T(M,H)};K(x,M=>{n().length===0?M(D):M(z,-1)})}T(R,P)},$=R=>{var P=kb(),x=ve(P);{var D=H=>{var X=yb(),W=S(ve(X),2);_e(W,20,r,Z=>Z,(Z,J)=>{const oe=G(()=>ha(J));var se=_b(),ne=p(se),me=p(ne,!0);h(ne);var fe=S(ne,2),B=p(fe,!0);h(fe),h(se),q(()=>{O(me,o(oe).title),O(B,o(oe).description)}),T(Z,se)}),h(W),T(H,X)};K(x,H=>{r().length>0&&H(D)})}var z=S(x,2);{var M=H=>{var X=wb(),W=S(ve(X),2);_e(W,20,s,Z=>Z,(Z,J)=>{const oe=G(()=>ha(J));var se=bb(),ne=p(se),me=p(ne,!0);h(ne);var fe=S(ne,2),B=p(fe,!0);h(fe),h(se),q(()=>{O(me,o(oe).title),O(B,o(oe).description)}),T(Z,se)}),h(W),T(H,X)};K(z,H=>{s().length>0&&H(M)})}T(R,P)};K(m,R=>{t.mode==="install"?R(E):R($,-1)})}h(A);var N=S(A,2),I=p(N),_=S(I,2),L=p(_,!0);h(_),h(N),h(l),h(i),q(()=>{Te(i,"aria-label",`${o(a)??""} ${t.pkg.label??""}`),O(d,`${o(a)??""} ${t.pkg.label??""}`),O(L,o(a))}),Y("click",i,function(...R){t.onCancel?.apply(this,R)}),Y("keydown",i,R=>{R.key==="Escape"&&t.onCancel()}),Y("click",l,R=>R.stopPropagation()),Y("click",I,function(...R){t.onCancel?.apply(this,R)}),Y("click",_,function(...R){t.onConfirm?.apply(this,R)}),T(e,i),ie()}be(["click","keydown"]);var Eb=C('<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>'),xb=C('<div class="store-registries svelte-1aafzt0"></div>'),Tb=C('<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>'),Ab=C('<div class="store-error svelte-1aafzt0"> </div>'),Ib=C('<div class="store-error svelte-1aafzt0"> </div>'),Rb=C('<img alt="" class="store-icon-img svelte-1aafzt0"/>'),Cb=C('<span class="store-icon-placeholder svelte-1aafzt0"> </span>'),$b=C('<div class="store-card-warning svelte-1aafzt0"> </div>'),Pb=C('<button class="store-update-btn svelte-1aafzt0"> </button>'),Db=C('<span class="store-installed-label svelte-1aafzt0">Installed</span>'),Lb=C('<span class="store-card-missing svelte-1aafzt0"> </span>'),Ob=C('<div class="store-install-wrap svelte-1aafzt0"><button class="store-install-btn svelte-1aafzt0"> </button> <!></div>'),Mb=C('<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>'),Nb=C("No packages found. <!>",1),jb=C('<div class="store-empty svelte-1aafzt0"><!></div>'),zb=C('<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 qb(e,t){ae(t,!0);let n=j(""),r=j("all"),s=j(pe(new Set)),a=j(pe(new Set)),i=j(null),l=j(""),c=j(null),u=j(null);const d=pn;async function f(){const V=o(l).trim();if(V&&!d.env.registries.includes(V))try{await d.addRegistry(V),g(l,""),d.refreshCatalog(),d.refreshInstalled()}catch(U){g(i,U instanceof Error?U.message:String(U),!0)}}async function v(V){try{await d.removeRegistry(V),d.refreshCatalog()}catch(U){g(i,U instanceof Error?U.message:String(U),!0)}}const w=G(()=>{const V=o(n).toLowerCase().trim();return d.state.ephemeral.catalog.filter(U=>o(r)!=="all"&&U.entry.type!==o(r)?!1:V?U.entry.id.toLowerCase().includes(V)||U.entry.label.toLowerCase().includes(V)||U.entry.description.toLowerCase().includes(V):!0)});function y(V){return d.state.ephemeral.installed.some(U=>U.id===V)}function k(V){return String(V.latest.contractVersion)!==String(Lo.version)}function b(V){return V in d.state.ephemeral.updatable}function A(V){return d.state.ephemeral.installed.find(U=>U.id===V)?.version??""}function m(V,U){const ye=V.latest.requires?.map(ue=>ue.id)??[];if(ye.length===0)return[];const Ie=new Set(Eu);for(const ue of U)(ue.type==="shard"||ue.type==="combo")&&Ie.add(ue.id);return ye.filter(ue=>!Ie.has(ue))}async function E(V){if(!o(a).has(V)){g(a,new Set([...o(a),V]),!0),g(i,null);try{await d.updatePackage(V,(U,ye)=>new Promise(Ie=>{const ue=d.state.ephemeral.updatable[V],Le=d.state.ephemeral.installed.find(He=>He.id===V);if(!ue||!Le){Ie(!0);return}g(u,{pkg:ue,fromVersion:Le.version,added:U,removed:ye,resolve:Ie},!0)}))}catch(U){g(i,U instanceof Error?U.message:String(U),!0)}finally{const U=new Set(o(a));U.delete(V),g(a,U,!0)}}}function $(){const V=o(u);V&&(g(u,null),V.resolve(!0))}function N(){const V=o(u);V&&(g(u,null),V.resolve(!1))}async function I(V){const U=V.entry.id;if(!o(s).has(U)){g(s,new Set([...o(s),U]),!0),g(i,null);try{const ye=await Ys(V.latest,V.sourceRegistry),Ie=Gs(V,V.latest),ue=await Vr(ye),Le=Oi(ue);let He;V.latest.serverBundleUrl&&(He=await Ci(V.latest,V.sourceRegistry)),g(c,{pkg:V,permissions:Le,loaded:ue,bundle:ye,meta:Ie,serverBundle:He},!0)}catch(ye){g(i,ye instanceof Error?ye.message:String(ye),!0);const Ie=new Set(o(s));Ie.delete(U),g(s,Ie,!0)}}}async function _(){const V=o(c);if(!V)return;g(c,null);const{pkg:U,loaded:ye,bundle:Ie,meta:ue,serverBundle:Le}=V,He=U.entry.id;try{const ze={id:ue.id,type:ue.type,label:U.entry.label,version:ue.version,contractVersion:ue.contractVersion,sourceRegistry:ue.sourceRegistry,requiredShards:U.latest.requires?.map(bt=>bt.id)??[],installedAt:new Date().toISOString()},ln=await bi(ze,Ie,Le);if(!ln.ok){g(i,ln.error??"Server install failed",!0);return}const cn=await Mi(Ie,ue,{loaded:ye});cn.success||console.warn(`[sh3-store] Server install ok but local hot-load failed: ${cn.error}`),await d.refreshInstalled()}catch(ze){g(i,ze instanceof Error?ze.message:String(ze),!0)}finally{const ze=new Set(o(s));ze.delete(He),g(s,ze,!0)}}function L(){if(!o(c))return;const V=o(c).pkg.entry.id;g(c,null);const U=new Set(o(s));U.delete(V),g(s,U,!0)}function R(){d.refreshCatalog(),d.refreshInstalled()}var P=zb(),x=ve(P),D=p(x),z=S(p(D),2),M=p(z);xe(M);var H=S(M,2),X=p(H);X.value=X.__value="all";var W=S(X);W.value=W.__value="shard";var Z=S(W);Z.value=Z.__value="app",h(H);var J=S(H,2),oe=p(J,!0);h(J),h(z),h(D);var se=S(D,2);{var ne=V=>{var U=xb();_e(U,21,()=>d.env.registries,Jn,(ye,Ie)=>{var ue=Eb(),Le=p(ue),He=p(Le,!0);h(Le);var ze=S(Le,2);h(ue),q(()=>O(He,o(Ie))),Y("click",ze,()=>v(o(Ie))),T(ye,ue)}),h(U),T(V,U)};K(se,V=>{d.isAdmin&&d.env.registries.length>0&&V(ne)})}var me=S(se,2);{var fe=V=>{var U=Tb(),ye=p(U);xe(ye);var Ie=S(ye,2);h(U),q(ue=>Ie.disabled=ue,[()=>!o(l).trim()]),ot("submit",U,ue=>{ue.preventDefault(),f()}),De(ye,()=>o(l),ue=>g(l,ue)),T(V,U)};K(me,V=>{d.isAdmin&&V(fe)})}var B=S(me,2);{var re=V=>{var U=Ab(),ye=p(U,!0);h(U),q(()=>O(ye,d.state.ephemeral.error)),T(V,U)};K(B,V=>{d.state.ephemeral.error&&V(re)})}var de=S(B,2);{var et=V=>{var U=Ib(),ye=p(U,!0);h(U),q(()=>O(ye,o(i))),T(V,U)};K(de,V=>{o(i)&&V(et)})}var tt=S(de,2);_e(tt,21,()=>o(w),V=>V.entry.id,(V,U)=>{const ye=G(()=>y(o(U).entry.id)),Ie=G(()=>k(o(U))),ue=G(()=>o(s).has(o(U).entry.id)),Le=G(()=>b(o(U).entry.id)),He=G(()=>o(a).has(o(U).entry.id)),ze=G(()=>m(o(U),d.state.ephemeral.installed));var ln=Mb(),cn=p(ln),bt=p(cn),lr=p(bt);{var Vu=$e=>{var Re=Rb();q(()=>Te(Re,"src",o(U).entry.icon)),T($e,Re)},Uu=$e=>{var Re=Cb(),wt=p(Re,!0);h(Re),q(()=>O(wt,o(U).entry.type==="shard"?"S":"A")),T($e,Re)};K(lr,$e=>{o(U).entry.icon?$e(Vu):$e(Uu,-1)})}h(bt);var qi=S(bt,2),Js=p(qi),Bu=p(Js,!0);h(Js);var Hr=S(Js,2);let Vi;var Fu=p(Hr,!0);h(Hr);var Ui=S(Hr,2),Hu=p(Ui,!0);h(Ui),h(qi),h(cn);var Zs=S(cn,2),Ku=p(Zs,!0);h(Zs);var Qs=S(Zs,2),Wu=p(Qs,!0);h(Qs);var Bi=S(Qs,2);{var Yu=$e=>{var Re=$b(),wt=p(Re);h(Re),q(()=>O(wt,`Contract mismatch: package targets v${o(U).latest.contractVersion??""}, running v${Lo.version}`)),T($e,Re)};K(Bi,$e=>{o(Ie)&&$e(Yu)})}var Fi=S(Bi,2),Gu=p(Fi);{var Xu=$e=>{var Re=Pb(),wt=p(Re,!0);h(Re),q(ea=>{Re.disabled=o(He),O(wt,ea)},[()=>o(He)?"Updating...":`Update ${A(o(U).entry.id)} -> ${o(U).latest.version}`]),Y("click",Re,()=>E(o(U).entry.id)),T($e,Re)},Ju=$e=>{var Re=Db();T($e,Re)},Zu=$e=>{var Re=Ob(),wt=p(Re),ea=p(wt,!0);h(wt);var Qu=S(wt,2);{var ed=cr=>{var ta=Lb(),td=p(ta);h(ta),q(nd=>O(td,`requires: ${nd??""}`),[()=>o(ze).join(", ")]),T(cr,ta)};K(Qu,cr=>{o(ze).length>0&&cr(ed)})}h(Re),q(cr=>{wt.disabled=o(ue)||o(ze).length>0,Te(wt,"title",cr),O(ea,o(ue)?"Installing...":"Install")},[()=>o(ze).length>0?`Missing required shards: ${o(ze).join(", ")}`:void 0]),Y("click",wt,()=>I(o(U))),T($e,Re)};K(Gu,$e=>{o(ye)&&o(Le)?$e(Xu):o(ye)?$e(Ju,1):$e(Zu,-1)})}h(Fi),h(ln),q(()=>{O(Bu,o(U).entry.label),Vi=Oe(Hr,1,"store-card-badge svelte-1aafzt0",null,Vi,{"badge-shard":o(U).entry.type==="shard","badge-app":o(U).entry.type==="app"}),O(Fu,o(U).entry.type),O(Hu,o(U).latest.version),O(Ku,o(U).entry.description),O(Wu,o(U).entry.author.name)}),T(V,ln)}),h(tt);var on=S(tt,2);{var Fe=V=>{var U=jb(),ye=p(U);{var Ie=Le=>{var He=Nb(),ze=S(ve(He));{var ln=bt=>{var lr=fn("Add a registry URL above to get started.");T(bt,lr)},cn=bt=>{var lr=fn("No registries configured.");T(bt,lr)};K(ze,bt=>{d.isAdmin?bt(ln):bt(cn,-1)})}T(Le,He)},ue=Le=>{var He=fn("No packages match the current filter.");T(Le,He)};K(ye,Le=>{d.env.registries.length===0?Le(Ie):Le(ue,-1)})}h(U),T(V,U)};K(on,V=>{!d.state.ephemeral.loading&&o(w).length===0&&V(Fe)})}h(x);var Br=S(x,2);{var yn=V=>{{let U=G(()=>({label:o(c).pkg.entry.label,version:o(c).pkg.latest.version,author:o(c).pkg.entry.author.name}));za(V,{mode:"install",get pkg(){return o(U)},get permissions(){return o(c).permissions},onConfirm:_,onCancel:L})}};K(Br,V=>{o(c)&&V(yn)})}var Xs=S(Br,2);{var Fr=V=>{{let U=G(()=>({label:o(u).pkg.entry.label,version:o(u).pkg.latest.version,author:o(u).pkg.entry.author.name}));za(V,{mode:"update",get pkg(){return o(U)},get fromVersion(){return o(u).fromVersion},get added(){return o(u).added},get removed(){return o(u).removed},onConfirm:$,onCancel:N})}};K(Xs,V=>{o(u)&&V(Fr)})}q(()=>{J.disabled=d.state.ephemeral.loading,O(oe,d.state.ephemeral.loading?"Loading...":"Refresh")}),De(M,()=>o(n),V=>g(n,V)),vs(H,()=>o(r),V=>g(r,V)),Y("click",J,R),T(e,P),ie()}be(["click"]);var Vb=C('<div class="installed-error svelte-1hqclkp"> </div>'),Ub=C('<div class="installed-empty svelte-1hqclkp">No packages installed.</div>'),Bb=C('<button class="installed-update-btn svelte-1hqclkp"> </button>'),Fb=C('<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>'),Hb=C('<ul class="installed-list svelte-1hqclkp"></ul>'),Kb=C('<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 Wb(e,t){ae(t,!0);const n=pn;let r=j(pe(new Set)),s=j(pe(new Set)),a=j(null),i=j(null);async function l(_){if(!o(r).has(_)){g(r,new Set([...o(r),_]),!0);try{await Wc(_),await $u(_),await n.refreshInstalled()}catch(L){console.warn("[sh3-store] Uninstall failed:",L instanceof Error?L.message:L)}finally{const L=new Set(o(r));L.delete(_),g(r,L,!0)}}}async function c(_){if(!o(s).has(_)){g(s,new Set([...o(s),_]),!0),g(a,null);try{await n.updatePackage(_,(L,R)=>new Promise(P=>{const x=n.state.ephemeral.installed.find(z=>z.id===_),D=n.state.ephemeral.updatable[_];if(!x||!D){P(!0);return}g(i,{pkg:x,toVersion:D.latest.version,added:L,removed:R,resolve:P},!0)}))}catch(L){g(a,L instanceof Error?L.message:String(L),!0)}finally{const L=new Set(o(s));L.delete(_),g(s,L,!0)}}}function u(){const _=o(i);_&&(g(i,null),_.resolve(!0))}function d(){const _=o(i);_&&(g(i,null),_.resolve(!1))}function f(){n.refreshInstalled()}function v(_){try{return new Date(_).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch{return _}}var w=Kb(),y=p(w),k=S(p(y),2);h(y);var b=S(y,2);{var A=_=>{var L=Vb(),R=p(L,!0);h(L),q(()=>O(R,o(a))),T(_,L)};K(b,_=>{o(a)&&_(A)})}var m=S(b,2);{var E=_=>{var L=Ub();T(_,L)},$=_=>{var L=Hb();_e(L,21,()=>n.state.ephemeral.installed,R=>R.id,(R,P)=>{const x=G(()=>o(r).has(o(P).id));var D=Fb(),z=p(D),M=p(z),H=p(M,!0);h(M);var X=S(M,2);let W;var Z=p(X,!0);h(X);var J=S(X,2),oe=p(J,!0);h(J),h(z);var se=S(z,2),ne=p(se),me=p(ne);h(ne);var fe=S(ne,2),B=p(fe);h(fe);var re=S(fe,2),de=p(re);h(re),h(se);var et=S(se,2),tt=p(et);{var on=yn=>{const Xs=G(()=>n.state.ephemeral.updatable[o(P).id]),Fr=G(()=>o(s).has(o(P).id));var V=Bb(),U=p(V,!0);h(V),q(()=>{V.disabled=o(Fr)||o(x),O(U,o(Fr)?"Updating...":`Update -> ${o(Xs).latest.version}`)}),Y("click",V,()=>c(o(P).id)),T(yn,V)};K(tt,yn=>{o(P).id in n.state.ephemeral.updatable&&yn(on)})}var Fe=S(tt,2),Br=p(Fe,!0);h(Fe),h(et),h(D),q(yn=>{O(H,o(P).id),W=Oe(X,1,"installed-item-badge svelte-1hqclkp",null,W,{"badge-shard":o(P).type==="shard","badge-app":o(P).type==="app"}),O(Z,o(P).type),O(oe,o(P).version),O(me,`Contract: v${o(P).contractVersion??""}`),O(B,`Source: ${o(P).sourceRegistry??""}`),O(de,`Installed: ${yn??""}`),Fe.disabled=o(x),O(Br,o(x)?"Removing...":"Uninstall")},[()=>v(o(P).installedAt)]),Y("click",Fe,()=>l(o(P).id)),T(R,D)}),h(L),T(_,L)};K(m,_=>{n.state.ephemeral.installed.length===0?_(E):_($,-1)})}var N=S(m,2);{var I=_=>{{let L=G(()=>({label:o(i).pkg.id,version:o(i).toVersion}));za(_,{mode:"update",get pkg(){return o(L)},get fromVersion(){return o(i).pkg.version},get added(){return o(i).added},get removed(){return o(i).removed},onConfirm:u,onCancel:d})}};K(N,_=>{o(i)&&_(I)})}h(w),Y("click",k,f),T(e,w),ie()}be(["click"]);function Pu(e){return pn.state.ephemeral.catalog.find(t=>t.entry.id===e)}function Ni(e){return pn.state.ephemeral.installed.find(t=>t.id===e)}const Yb={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=Ni(n);if(r){e.scrollback.push({kind:"status",text:`${n} is already installed (v${r.version})`,level:"warn",ts:Date.now()});return}const s=Pu(n);if(!s){e.scrollback.push({kind:"status",text:`package "${n}" not found in catalog — try refreshing the store`,level:"error",ts:Date.now()});return}e.scrollback.push({kind:"status",text:`installing ${n} v${s.latest.version}...`,level:"info",ts:Date.now()});try{const a=await Ys(s.latest,s.sourceRegistry),i=Gs(s,s.latest);let l;s.latest.serverBundleUrl&&(l=await Ci(s.latest,s.sourceRegistry));const c={id:i.id,type:i.type,label:s.entry.label,version:i.version,contractVersion:i.contractVersion,sourceRegistry:i.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:s.latest.requires?.map(f=>f.id)??[]},u=await bi(c,a,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(w=>w.id).join(", ")}`),e.scrollback.push({kind:"status",text:f,level:"error",ts:Date.now()});return}const d=await Mi(a,i);d.success||e.scrollback.push({kind:"status",text:`server ok but local hot-load failed: ${d.error}`,level:"warn",ts:Date.now()}),await pn.refreshInstalled(),e.scrollback.push({kind:"status",text:`installed ${n} v${s.latest.version}`,level:"info",ts:Date.now()})}catch(a){e.scrollback.push({kind:"status",text:`install failed: ${a instanceof Error?a.message:String(a)}`,level:"error",ts:Date.now()})}}},Gb={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(!Ni(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 Wc(n),await $u(n),await pn.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()})}}},Xb={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=Ni(n),s=Pu(n);if(!r&&!s){e.scrollback.push({kind:"status",text:`package "${n}" not found in catalog or installed list`,level:"error",ts:Date.now()});return}const a=[];a.push(`--- ${n} ---`),r?(a.push(" installed: yes"),a.push(` version: ${r.version}`),a.push(` type: ${r.type}`),a.push(` contract: v${r.contractVersion}`),a.push(` source: ${r.sourceRegistry}`),r.installedAt&&a.push(` installed: ${r.installedAt}`)):a.push(" installed: no"),s?(a.push(" catalog: yes"),a.push(` latest: ${s.latest.version}`),a.push(` label: ${s.entry.label}`),a.push(` author: ${s.entry.author.name}`),a.push(` desc: ${s.entry.description}`)):a.push(" catalog: no (not in any configured registry)"),e.scrollback.push({kind:"text",stream:"stdout",chunks:[a.join(`
|
|
13
|
-
`)+`
|
|
14
|
-
`],ts:Date.now()})}};function Jb(e,t){const n=e.split(".").map(a=>parseInt(a,10)||0),r=t.split(".").map(a=>parseInt(a,10)||0),s=Math.max(n.length,r.length);for(let a=0;a<s;a++){const i=n[a]??0,l=r[a]??0;if(i>l)return!0;if(i<l)return!1}return!1}function Zb(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 pn;const Qb={manifest:{id:"sh3-store",label:"Package Store",version:an,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 v of n.ephemeral.installed){const w=n.ephemeral.catalog.find(y=>y.entry.id===v.id);w&&Jb(w.latest.version,v.version)&&(f[v.id]=w)}n.ephemeral.updatable=f}async function s(){n.ephemeral.loading=!0,n.ephemeral.error=null;try{const f=await ku(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 a(){try{const f=await tg();n.ephemeral.installed=f.map(v=>({id:v.id,type:v.type,version:v.version,sourceRegistry:v.sourceRegistry??"",contractVersion:v.contractVersion??"",installedAt:v.installedAt??"",permissions:[]})),r()}catch(f){console.warn("[sh3-store] Failed to list installed packages:",f instanceof Error?f.message:f);try{const v=await fb();n.ephemeral.installed=v,r()}catch{}}}async function i(f){const v=[...t.registries];v.includes(f)||(v.push(f),await e.envUpdate({registries:v}))}async function l(f){const v=t.registries.filter(w=>w!==f);await e.envUpdate({registries:v})}async function c(f,v){const w=n.ephemeral.updatable[f];if(!w)return;const y=n.ephemeral.installed.find(D=>D.id===f);if(!y)return;const k=await Ys(w.latest,w.sourceRegistry);let b;w.latest.serverBundleUrl&&(b=await Ci(w.latest,w.sourceRegistry));const A=Gs(w,w.latest),m=await Vr(k),E=Oi(m);let $=[];try{const D=await cb(f);D?.permissions&&($=D.permissions)}catch{}const{added:N,removed:I}=Zb($,E);if((N.length>0||I.length>0)&&v&&!await v(N,I))return;const _=await Ru(f),L={...y,permissions:$},R={id:A.id,type:A.type,label:w.entry.label,version:A.version,contractVersion:A.contractVersion,sourceRegistry:A.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:w.latest.requires?.map(D=>D.id)??[]},P=await bi(R,k,b);if(!P.ok){let D=P.error??"Server update failed";throw P.code==="missing-shards"&&P.missing&&(D=`missing required shard(s): ${P.missing.map(M=>M.id).join(", ")}`),new Error(D)}const x=await Mi(k,A,{loaded:m});if(!x.success){if(_)try{await Iu(f,_,L)}catch(D){console.warn(`[sh3-store] Rollback failed for "${f}":`,D instanceof Error?D.message:D)}throw new Error(x.error??"Local install failed during update")}await a()}pn={env:t,state:n,get isAdmin(){return e.isAdmin},refreshCatalog:s,refreshInstalled:a,updatePackage:c,addRegistry:i,removeRegistry:l};const u={mount(f,v){const w=Ue(qb,{target:f});return{unmount(){Xe(w)}}}},d={mount(f,v){const w=Ue(Wb,{target:f});return{unmount(){Xe(w)}}}};e.registerView("sh3-store:browse",u),e.registerView("sh3-store:installed",d),e.registerVerb(Yb),e.registerVerb(Gb),e.registerVerb(Xb),a()},autostart(){pn.refreshCatalog()}},ew={manifest:{id:"sh3-store-app",label:"Package Store",version:an,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 tw=C('<div class="admin-error svelte-4q792t"> </div>'),nw=C('<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>'),rw=C('<p class="admin-muted svelte-4q792t">Loading...</p>'),sw=C('<p class="admin-error svelte-4q792t"> </p>'),aw=C('<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>'),iw=C('<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),ow=C('<li class="admin-user-item svelte-4q792t"><!></li>'),lw=C('<ul class="admin-user-list svelte-4q792t"></ul>'),cw=C('<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 uw(e,t){ae(t,!0);let n=j(pe([])),r=j(!0),s=j(null),a=j(!1),i=j(""),l=j(""),c=j(""),u=j("user"),d=j(null),f=j(null),v=j(""),w=j("user"),y=j("");async function k(){g(r,!0),g(s,null);try{const M=await fetch("/api/admin/users",{credentials:"include"});if(!M.ok)throw new Error("Failed to fetch users");g(n,await M.json(),!0)}catch(M){g(s,M instanceof Error?M.message:"Failed to load users",!0)}finally{g(r,!1)}}async function b(){g(d,null);try{const M=await fetch("/api/admin/users",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:o(i),displayName:o(l)||o(i),password:o(c),role:o(u)})});if(!M.ok){const H=await M.json().catch(()=>({}));g(d,H.error||"Failed to create user",!0);return}g(i,""),g(l,""),g(c,""),g(u,"user"),g(a,!1),await k()}catch{g(d,"Network error")}}function A(M){g(f,M.id,!0),g(v,M.displayName,!0),g(w,M.role,!0),g(y,"")}async function m(){if(!o(f))return;const M={displayName:o(v),role:o(w)};o(y).trim()&&(M.password=o(y));try{if(!(await fetch(`/api/admin/users/${o(f)}`,{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(M)})).ok)return;g(f,null),await k()}catch{}}async function E(M){try{await fetch(`/api/admin/users/${M}`,{method:"DELETE",credentials:"include"}),await k()}catch{}}k();var $=cw(),N=p($),I=S(p(N),2),_=p(I,!0);h(I),h(N);var L=S(N,2);{var R=M=>{var H=nw(),X=p(H);xe(X);var W=S(X,2);xe(W);var Z=S(W,2);xe(Z);var J=S(Z,2),oe=p(J);oe.value=oe.__value="user";var se=S(oe);se.value=se.__value="admin",h(J);var ne=S(J,2),me=S(ne,2);{var fe=B=>{var re=tw(),de=p(re,!0);h(re),q(()=>O(de,o(d))),T(B,re)};K(me,B=>{o(d)&&B(fe)})}h(H),q(B=>ne.disabled=B,[()=>!o(i).trim()||!o(c).trim()]),ot("submit",H,B=>{B.preventDefault(),b()}),De(X,()=>o(i),B=>g(i,B)),De(W,()=>o(l),B=>g(l,B)),De(Z,()=>o(c),B=>g(c,B)),vs(J,()=>o(u),B=>g(u,B)),T(M,H)};K(L,M=>{o(a)&&M(R)})}var P=S(L,2);{var x=M=>{var H=rw();T(M,H)},D=M=>{var H=sw(),X=p(H,!0);h(H),q(()=>O(X,o(s))),T(M,H)},z=M=>{var H=lw();_e(H,21,()=>o(n),X=>X.id,(X,W)=>{var Z=ow(),J=p(Z);{var oe=ne=>{var me=aw(),fe=p(me);xe(fe);var B=S(fe,2);xe(B);var re=S(B,2),de=p(re);de.value=de.__value="user";var et=S(de);et.value=et.__value="admin",h(re);var tt=S(re,2),on=S(p(tt),2);h(tt),h(me),ot("submit",me,Fe=>{Fe.preventDefault(),m()}),De(fe,()=>o(v),Fe=>g(v,Fe)),De(B,()=>o(y),Fe=>g(y,Fe)),vs(re,()=>o(w),Fe=>g(w,Fe)),Y("click",on,()=>{g(f,null)}),T(ne,me)},se=ne=>{var me=iw(),fe=ve(me),B=p(fe),re=p(B,!0);h(B);var de=S(B,2),et=p(de);h(de),h(fe);var tt=S(fe,2),on=p(tt),Fe=S(on,2);h(tt),q(()=>{O(re,o(W).displayName),O(et,`${o(W).username??""} · ${o(W).role??""}`)}),Y("click",on,()=>A(o(W))),Y("click",Fe,()=>E(o(W).id)),T(ne,me)};K(J,ne=>{o(f)===o(W).id?ne(oe):ne(se,-1)})}h(Z),T(X,Z)}),h(H),T(M,H)};K(P,M=>{o(r)?M(x):o(s)?M(D,1):M(z,-1)})}h($),q(()=>O(_,o(a)?"Cancel":"New user")),Y("click",I,()=>{g(a,!o(a))}),T(e,$),ie()}be(["click"]);var dw=C('<p class="admin-muted svelte-1hsgdb4">Loading...</p>'),fw=C('<div class="admin-error svelte-1hsgdb4"> </div>'),vw=C('<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),hw=C('<div class="admin-auth svelte-1hsgdb4"><h2 class="svelte-1hsgdb4">Auth Settings</h2> <!></div>');function pw(e,t){ae(t,!0);let n=j(null),r=j(!0),s=j(!1),a=j(null);async function i(){g(r,!0);try{const v=await fetch("/api/admin/settings",{credentials:"include"});if(!v.ok)throw new Error("Failed to fetch settings");g(n,await v.json(),!0)}catch(v){g(a,v instanceof Error?v.message:"Failed to load settings",!0)}finally{g(r,!1)}}async function l(){if(o(n)){g(s,!0),g(a,null);try{const v=await fetch("/api/admin/settings",{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(o(n))});if(!v.ok)throw new Error("Failed to save settings");g(n,await v.json(),!0)}catch(v){g(a,v instanceof Error?v.message:"Failed to save",!0)}finally{g(s,!1)}}}i();var c=hw(),u=S(p(c),2);{var d=v=>{var w=dw();T(v,w)},f=v=>{var w=vw(),y=ve(w),k=p(y),b=p(k);xe(b),Qt(4),h(k);var A=S(k,2),m=p(A);xe(m),Qt(4),h(A);var E=S(A,2),$=p(E);xe($),Qt(4),h(E);var N=S(E,2),I=S(p(N),2);xe(I),h(N);var _=S(N,2),L=p(_,!0);h(_),h(y);var R=S(y,2);{var P=x=>{var D=fw(),z=p(D,!0);h(D),q(()=>O(z,o(a))),T(x,D)};K(R,x=>{o(a)&&x(P)})}q(()=>{_.disabled=o(s),O(L,o(s)?"Saving...":"Save")}),es(b,()=>o(n).auth.required,x=>o(n).auth.required=x),es(m,()=>o(n).auth.guestAllowed,x=>o(n).auth.guestAllowed=x),es($,()=>o(n).auth.selfRegistration,x=>o(n).auth.selfRegistration=x),De(I,()=>o(n).auth.sessionTTL,x=>o(n).auth.sessionTTL=x),Y("click",_,l),T(v,w)};K(u,v=>{o(r)?v(d):o(n)&&v(f,1)})}h(c),T(e,c),ie()}be(["click"]);var mw=C('<button type="button"> </button>'),gw=C('<div class="admin-error svelte-1gkiloq"> </div>'),_w=C('<div class="admin-error svelte-1gkiloq"> </div>'),yw=C(`<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>.
|
|
15
|
-
Set to <strong>0</strong> during development so drop-in bundle replacements take effect on F5.
|
|
16
|
-
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 bw(e,t){ae(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=j("..."),s=j(!1),a=j(null),i=j(31536e3),l=j(31536e3),c=j(!1),u=j(null);const d=G(()=>o(i)!==o(l)),f=G(()=>v(o(i)));function v(B){return B===0?"0 seconds (off — browsers never cache)":B<60?`${B} seconds`:B<3600?`${Math.round(B/60)} minutes`:B<86400?`${Math.round(B/3600)} hours`:B<31536e3?`${Math.round(B/86400)} days`:`${Math.round(B/31536e3)} years`}async function w(){try{const B=await fetch("/api/version");if(B.ok){const re=await B.json();g(r,re.version,!0)}}catch{}}async function y(){try{const B=await fetch("/api/admin/settings",{credentials:"include"});if(B.ok){const de=(await B.json()).packages?.cacheMaxAge??31536e3;g(i,de,!0),g(l,de,!0)}}catch{}}async function k(){g(c,!0),g(u,null);try{const B=await fetch("/api/admin/settings",{method:"PUT",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({packages:{cacheMaxAge:o(i)}})});if(B.ok){const re=await B.json();g(l,re.packages?.cacheMaxAge??o(i),!0),g(i,o(l),!0)}else{const re=await B.json().catch(()=>({}));g(u,re.error||"Save failed",!0)}}catch{g(u,"Network error")}finally{g(c,!1)}}async function b(){g(s,!0),g(a,null);try{const B=await fetch("/api/admin/restart",{method:"POST",credentials:"include"});if(!B.ok){const re=await B.json().catch(()=>({}));g(a,re.error||"Restart failed",!0),g(s,!1)}}catch{g(a,"Network error"),g(s,!1)}}w(),y();var A=yw(),m=S(p(A),2),E=p(m),$=S(p(E),2),N=p($,!0);h($),h(E),h(m);var I=S(m,2),_=S(p(I),4);xe(_);var L=S(_,2),R=p(L),P=p(R,!0);h(R);var x=S(R);h(L);var D=S(L,2);_e(D,21,()=>n,B=>B.value,(B,re)=>{var de=mw();let et;var tt=p(de,!0);h(de),q(()=>{et=Oe(de,1,"admin-snap svelte-1gkiloq",null,et,{active:o(i)===o(re).value}),de.disabled=o(c),O(tt,o(re).label)}),Y("click",de,()=>g(i,o(re).value,!0)),T(B,de)}),h(D);var z=S(D,2),M=p(z),H=p(M,!0);h(M);var X=S(M,2),W=S(X,2);{var Z=B=>{var re=gw(),de=p(re,!0);h(re),q(()=>O(de,o(u))),T(B,re)};K(W,B=>{o(u)&&B(Z)})}h(z),h(I);var J=S(I,2),oe=S(p(J),2),se=p(oe),ne=p(se,!0);h(se);var me=S(se,2);{var fe=B=>{var re=_w(),de=p(re,!0);h(re),q(()=>O(de,o(a))),T(B,re)};K(me,B=>{o(a)&&B(fe)})}h(oe),h(J),h(A),q(()=>{O(N,o(r)),_.disabled=o(c),O(P,o(i)),O(x,` — ${o(f)??""}`),M.disabled=!o(d)||o(c),O(H,o(c)?"Saving...":"Save"),X.disabled=!o(d)||o(c),se.disabled=o(s),O(ne,o(s)?"Restarting...":"Restart server")}),De(_,()=>o(i),B=>g(i,B)),Y("click",M,k),Y("click",X,()=>g(i,o(l),!0)),Y("click",se,b),T(e,A),ie()}be(["click"]);var ww=C(`<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>`),kw=C('<div class="admin-error svelte-1afg5z5"> </div>'),Sw=C('<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>'),Ew=C('<p class="admin-muted svelte-1afg5z5">Loading...</p>'),xw=C('<p class="admin-error svelte-1afg5z5"> </p>'),Tw=C('<p class="admin-muted svelte-1afg5z5">No API keys. Create one to enable external access.</p>'),Aw=C('<button type="button" class="admin-btn-danger svelte-1afg5z5">Confirm</button> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Cancel</button>',1),Iw=C('<button type="button" class="admin-btn-danger svelte-1afg5z5">Revoke</button>'),Rw=C('<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>'),Cw=C('<ul class="admin-key-list svelte-1afg5z5"></ul>'),$w=C('<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 Pw(e,t){ae(t,!0);let n=j(pe([])),r=j(!0),s=j(null),a=j(!1),i=j(""),l=j(null),c=j(null),u=j(null);async function d(){g(r,!0),g(s,null);try{const x=await fetch("/api/admin/keys",{credentials:"include"});if(!x.ok)throw new Error("Failed to fetch keys");g(n,await x.json(),!0)}catch(x){g(s,x instanceof Error?x.message:"Failed to load keys",!0)}finally{g(r,!1)}}async function f(){g(l,null);try{const x=await fetch("/api/admin/keys",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({label:o(i)})});if(!x.ok){const z=await x.json().catch(()=>({}));g(l,z.error||"Failed to create key",!0);return}const D=await x.json();g(c,{id:D.id,key:D.key},!0),g(i,""),g(a,!1),await d()}catch{g(l,"Network error")}}async function v(x){g(u,null);try{await fetch(`/api/admin/keys/${x}`,{method:"DELETE",credentials:"include"}),o(c)?.id===x&&g(c,null),await d()}catch{}}function w(x){return new Date(x).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}d();var y=$w(),k=p(y),b=S(p(k),2),A=p(b,!0);h(b),h(k);var m=S(k,2);{var E=x=>{var D=ww(),z=S(p(D),2),M=p(z,!0);h(z);var H=S(z,2);h(D),q(()=>O(M,o(c).key)),Y("click",H,()=>{g(c,null)}),T(x,D)};K(m,x=>{o(c)&&x(E)})}var $=S(m,2);{var N=x=>{var D=Sw(),z=p(D);xe(z);var M=S(z,2),H=S(M,2);{var X=W=>{var Z=kw(),J=p(Z,!0);h(Z),q(()=>O(J,o(l))),T(W,Z)};K(H,W=>{o(l)&&W(X)})}h(D),q(W=>M.disabled=W,[()=>!o(i).trim()]),ot("submit",D,W=>{W.preventDefault(),f()}),De(z,()=>o(i),W=>g(i,W)),T(x,D)};K($,x=>{o(a)&&x(N)})}var I=S($,2);{var _=x=>{var D=Ew();T(x,D)},L=x=>{var D=xw(),z=p(D,!0);h(D),q(()=>O(z,o(s))),T(x,D)},R=x=>{var D=Tw();T(x,D)},P=x=>{var D=Cw();_e(D,21,()=>o(n),z=>z.id,(z,M)=>{var H=Rw(),X=p(H),W=p(X),Z=p(W,!0);h(W);var J=S(W,2),oe=p(J);h(J),h(X);var se=S(X,2),ne=p(se);{var me=B=>{var re=Aw(),de=ve(re),et=S(de,2);Y("click",de,()=>v(o(M).id)),Y("click",et,()=>{g(u,null)}),T(B,re)},fe=B=>{var re=Iw();Y("click",re,()=>{g(u,o(M).id,!0)}),T(B,re)};K(ne,B=>{o(u)===o(M).id?B(me):B(fe,-1)})}h(se),h(H),q(B=>{O(Z,o(M).label),O(oe,`${o(M).id??""} · ${B??""}`)},[()=>w(o(M).createdAt)]),T(z,H)}),h(D),T(x,D)};K(I,x=>{o(r)?x(_):o(s)?x(L,1):o(n).length===0?x(R,2):x(P,-1)})}h(y),q(()=>O(A,o(a)?"Cancel":"New key")),Y("click",b,()=>{g(a,!o(a))}),T(e,y),ie()}be(["click"]);const Dw={manifest:{id:"sh3-admin",label:"Admin",version:an,views:[{id:"sh3-admin:users",label:"Users"},{id:"sh3-admin:auth",label:"Auth Settings"},{id:"sh3-admin:system",label:"System"},{id:"sh3-admin:keys",label:"API Keys"}]},activate(e){const t={mount(a,i){const l=Ue(uw,{target:a});return{unmount(){Xe(l)}}}},n={mount(a,i){const l=Ue(pw,{target:a});return{unmount(){Xe(l)}}}},r={mount(a,i){const l=Ue(bw,{target:a});return{unmount(){Xe(l)}}}},s={mount(a,i){const l=Ue(Pw,{target:a});return{unmount(){Xe(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)}},Lw={manifest:{id:"sh3-admin-app",label:"Admin",version:an,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"}]}},Ow={id:"terminal",label:"Terminal",version:an,requiredShards:["shell"],layoutVersion:1},Mw={manifest:Ow,initialLayout:{type:"slot",slotId:"terminal.main",viewId:"shell:terminal"}},Oo="sh3:migrations:shell-rename:done",Mo="__shell__:",Nw="__sh3core__:",No="sh3:user:__shell__:theme",jo="sh3:user:__sh3core__:theme";function jw(e,t){if(t.getItem(Oo))return;const n=t.getItem(No);n!==null&&t.getItem(jo)===null&&(t.setItem(jo,n),t.removeItem(No));for(const r of e.keys()){if(!r.startsWith(Mo))continue;const s=Nw+r.slice(Mo.length),a=e.read(r);e.write(s,a),e.delete(r)}t.setItem(Oo,"1")}function zw(e){ki(e)}function qw(){const e=jt.workspace;return{keys:()=>e.list(),read:t=>e.read(t),write:(t,n)=>e.write(t,n),delete:t=>e.delete(t)}}async function Vw(e){typeof globalThis.localStorage<"u"&&jw(qw(),globalThis.localStorage);const t=new Set(e?.excludeShards),n=[y_,nb,Qb,Dw];for(const a of n)t.has(a.manifest.id)||ki(a);const r=[ew,Lw,Mw];for(const a of r)Si(a);await vb();for(const[a,i]of Wt)i.autostart&&await ru(a);const s=Rg();s&&Dn.has(s)&&await xr(s)}var Uw=C('<button type="button" aria-label="Expand pane"><span class="collapse-icon"> </span></button>'),Bw=C('<button type="button" aria-label="Collapse pane"><span class="collapse-icon"> </span></button>'),Fw=C('<!> <div class="pane-content svelte-1adl4o1"><!></div>',1),Hw=C('<div role="separator"></div>'),Kw=C("<div><!></div> <!>",1),Ww=C("<div></div>");function Yw(e,t){ae(t,!0);const n=40,r=28;let s;const a=y=>t.pinned?.[y]??"fr",i=y=>t.collapsed?.[y]??!1;function l(y){return i(y)?`0 0 ${r}px`:a(y)==="px"?`0 0 ${Math.max(n,t.sizes[y])}px`:`${Math.max(1e-4,t.sizes[y])} 1 0`}let c=j(null);function u(y,k){if(i(k)||i(k+1))return;y.preventDefault(),y.target.setPointerCapture(y.pointerId);const b=s.getBoundingClientRect(),A=t.direction==="horizontal"?b.width:b.height;let m=0,E=0;for(let $=0;$<t.sizes.length;$++)a($)==="fr"?m+=t.sizes[$]:E+=Math.max(n,t.sizes[$]);g(c,{handleIndex:k,startClient:t.direction==="horizontal"?y.clientX:y.clientY,startSizes:t.sizes.slice(),containerPx:A,totalFr:m,frAvailPx:Math.max(1,A-E)},!0)}function d(y){if(!o(c))return;const b=(t.direction==="horizontal"?y.clientX:y.clientY)-o(c).startClient,A=o(c).handleIndex,m=A+1,E=a(A),$=a(m),N=o(c).totalFr/o(c).frAvailPx;if(E==="fr"&&$==="fr"){const I=n*N,_=b*N,L=o(c).startSizes[m]-I,R=-(o(c).startSizes[A]-I),P=Math.min(Math.max(_,R),L);t.onResize?.(A,o(c).startSizes[A]+P),t.onResize?.(m,o(c).startSizes[m]-P)}else if(E==="px"&&$==="fr"){const I=o(c).frAvailPx-n,_=n-o(c).startSizes[A];t.onResize?.(A,o(c).startSizes[A]+Math.min(Math.max(b,_),I))}else if(E==="fr"&&$==="px"){const I=o(c).startSizes[m]-n,_=-(o(c).frAvailPx-n);t.onResize?.(m,o(c).startSizes[m]-Math.min(Math.max(b,_),I))}else{const I=o(c).startSizes[m]-n,_=-(o(c).startSizes[A]-n),L=Math.min(Math.max(b,_),I);t.onResize?.(A,o(c).startSizes[A]+L),t.onResize?.(m,o(c).startSizes[m]-L)}}function f(y){o(c)&&(y.target.releasePointerCapture(y.pointerId),g(c,null))}var v=Ww();let w;_e(v,21,()=>Array(t.count),Jn,(y,k,b)=>{var A=Kw(),m=ve(A);let E;var $=p(m);{var N=P=>{var x=Uw();let D;var z=p(x),M=p(z,!0);h(z),h(x),q(()=>{D=Oe(x,1,"collapse-header svelte-1adl4o1",null,D,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),O(M,t.direction==="horizontal"?"▸":"▾")}),Y("click",x,()=>t.onCollapseToggle?.(b,!1)),T(P,x)},I=G(()=>i(b)),_=P=>{var x=Fw(),D=ve(x);{var z=X=>{var W=Bw();let Z;var J=p(W),oe=p(J,!0);h(J),h(W),q(()=>{Z=Oe(W,1,"collapse-header expanded svelte-1adl4o1",null,Z,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),O(oe,t.direction==="horizontal"?"◂":"▴")}),Y("click",W,()=>t.onCollapseToggle?.(b,!0)),T(X,W)};K(D,X=>{t.onCollapseToggle&&X(z)})}var M=S(D,2),H=p(M);li(H,()=>t.pane,()=>b),h(M),T(P,x)};K($,P=>{o(I)?P(N):P(_,-1)})}h(m);var L=S(m,2);{var R=P=>{var x=Hw();let D;Te(x,"data-testid",`splitter-handle-${b}`),q(z=>{D=Oe(x,1,"splitter-handle svelte-1adl4o1",null,D,z),Te(x,"aria-orientation",t.direction==="horizontal"?"vertical":"horizontal")},[()=>({dragging:o(c)?.handleIndex===b,disabled:i(b)||i(b+1)})]),Y("pointerdown",x,z=>u(z,b)),Y("pointermove",x,d),Y("pointerup",x,f),ot("pointercancel",x,f),Y("dblclick",x,()=>t.onCollapseToggle?.(b,!i(b))),T(P,x)};K(L,P=>{b<t.count-1&&P(R)})}q((P,x)=>{E=Oe(m,1,"splitter-pane svelte-1adl4o1",null,E,P),Gt(m,`flex: ${x??""};`)},[()=>({collapsed:i(b)}),()=>l(b)]),T(y,A)}),h(v),It(v,y=>s=y,()=>s),q(()=>w=Oe(v,1,"splitter svelte-1adl4o1",null,w,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"})),T(e,v),ie()}be(["click","pointerdown","pointermove","pointerup","dblclick"]);function Gw(e,t,n){if(!n)return null;const r=n.getBoundingClientRect(),s=t.filter(l=>!!l);if(s.length===0)return{left:4,top:2,height:r.height-4};const a=Math.max(0,Math.min(e,s.length));let i;return a===s.length?i=s[s.length-1].getBoundingClientRect().right:i=s[a].getBoundingClientRect().left,{left:i-r.left-1,top:2,height:r.height-4}}var Xw=C('<span class="tab-dirty svelte-1kxcyhf" title="Unsaved changes"></span>'),Jw=C('<span class="tab-icon svelte-1kxcyhf"> </span>'),Zw=C('<span class="tab-close svelte-1kxcyhf" role="button" tabindex="-1" title="Close">✕</span>'),Qw=C('<button type="button" role="tab"><!> <!> <span class="tab-label svelte-1kxcyhf"> </span> <!></button>'),ek=C('<div class="drop-indicator svelte-1kxcyhf"></div>'),tk=C("<div><!></div>"),nk=C('<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 rk(e,t){ae(t,!0);function n(b){t.clickGuard?.()||t.onActiveChange?.(b)}function r(b,A){A.stopPropagation(),t.onClose?.(b)}let s=j(void 0);const a=pe([]);let i=j(null);function l(b,A){if(!t.dragController)return;const m=a[b];m&&t.dragController.onPointerDown(b,A,m)}function c(b){if(!t.dragController||!t.dragController.isDragging||!o(s))return;const A=o(s).getBoundingClientRect(),m=a.filter(E=>!!E).map(E=>E.getBoundingClientRect());g(i,t.dragController.onStripHover(A,b.clientX,b.clientY,m),!0)}function u(){t.dragController&&(g(i,null),t.dragController.onStripLeave())}var d=nk(),f=p(d),v=p(f);_e(v,17,()=>t.labels,Jn,(b,A,m)=>{var E=Qw();let $;var N=p(E);{var I=z=>{var M=Xw();T(z,M)};K(N,z=>{t.dirty?.[m]&&z(I)})}var _=S(N,2);{var L=z=>{var M=Jw(),H=p(M,!0);h(M),q(()=>O(H,t.icons[m])),T(z,M)};K(_,z=>{t.icons?.[m]&&z(L)})}var R=S(_,2),P=p(R,!0);h(R);var x=S(R,2);{var D=z=>{var M=Zw();q(()=>Te(M,"data-testid",t.tabIds?.[m]?`tab-close-${t.tabIds[m]}`:void 0)),Y("click",M,H=>r(m,H)),Y("keydown",M,H=>{(H.key==="Enter"||H.key===" ")&&r(m,H)}),T(z,M)};K(x,z=>{t.closable?.[m]&&z(D)})}h(E),It(E,(z,M)=>a[M]=z,z=>a?.[z],()=>[m]),q(()=>{$=Oe(E,1,"tab svelte-1kxcyhf",null,$,{active:t.activeTab===m}),Te(E,"aria-selected",t.activeTab===m),O(P,o(A))}),Y("click",E,()=>n(m)),Y("pointerdown",E,z=>l(m,z)),ot("auxclick",E,z=>{z.button===1&&t.closable?.[m]&&r(m,z)}),T(b,E)});var w=S(v,2);{var y=b=>{const A=G(()=>Gw(o(i),a,o(s)));var m=vt(),E=ve(m);{var $=N=>{var I=ek();q(()=>Gt(I,`left: ${o(A).left??""}px; height: ${o(A).height??""}px; top: ${o(A).top??""}px;`)),T(N,I)};K(E,N=>{o(A)&&N($)})}T(b,m)};K(w,b=>{o(i)!==null&&t.dragController?.isDragging&&b(y)})}h(f),It(f,b=>g(s,b),()=>o(s));var k=S(f,2);_e(k,21,()=>t.labels,Jn,(b,A,m)=>{var E=tk();let $;var N=p(E);li(N,()=>t.body,()=>m),h(E),q(()=>$=Oe(E,1,"tab-body-pane svelte-1kxcyhf",null,$,{active:t.activeTab===m})),T(b,E)}),h(k),h(d),Y("pointermove",f,c),ot("pointerleave",f,u),T(e,d),ie()}be(["pointermove","click","pointerdown","keydown"]);var sk=C('no factory for <code class="svelte-1czj0s8"> </code>',1),ak=C("<em>empty slot</em>"),ik=C('<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>'),ok=C('<div class="slot svelte-1czj0s8"><!></div>');function zo(e,t){ae(t,!0);let n=Ht(t,"label",3,""),r=j(void 0),s=j(0),a=j(0);const i=G(()=>t.node.viewId?!!qc(t.node.viewId):!1);Me(()=>{if(!o(r))return;const d=t.node.slotId,f=au(d,t.node.viewId,n()||t.node.viewId||d);o(r).appendChild(f);const v=new ResizeObserver(w=>{for(const y of w){const k=y.contentRect;g(s,Math.round(k.width),!0),g(a,Math.round(k.height),!0)}});return v.observe(o(r)),()=>{v.disconnect(),iu(d)}});var l=ok(),c=p(l);{var u=d=>{var f=ik(),v=p(f),w=p(v,!0);h(v);var y=S(v,2),k=p(y);{var b=$=>{var N=sk(),I=S(ve(N)),_=p(I,!0);h(I),q(()=>O(_,t.node.viewId)),T($,N)},A=$=>{var N=ak();T($,N)};K(k,$=>{t.node.viewId?$(b):$(A,-1)})}h(y);var m=S(y,2),E=p(m);h(m),h(f),q(()=>{O(w,t.node.slotId),O(E,`${o(s)??""} × ${o(a)??""}`)}),T(d,f)};K(c,d=>{o(i)||d(u)})}h(l),It(l,d=>g(r,d),()=>o(r)),q(()=>{Te(l,"data-slot-id",t.node.slotId),Te(l,"data-view-id",t.node.viewId??"")}),T(e,l),ie()}const ce=pe({phase:"idle",source:null,pointerX:0,pointerY:0,target:null});let Du=0;function lk(){return performance.now()<Du}const qo=4;let Lu=0,Ou=0;function ck(e,t,n,r,s){if(ce.phase!=="idle")return;const a=s.getBoundingClientRect();ce.phase="pending",ce.source={slotId:e,entry:t,sourceRoot:n,startRect:a,offsetX:r.clientX-a.left,offsetY:r.clientY-a.top},ce.pointerX=r.clientX,ce.pointerY=r.clientY,ce.target=null,Lu=r.clientX,Ou=r.clientY,uk()}function uk(){window.addEventListener("pointermove",Mu,!0),window.addEventListener("pointerup",Nu,!0),window.addEventListener("pointercancel",ju,!0),document.body.style.userSelect="none",document.body.dataset.dragging=""}function dk(){window.removeEventListener("pointermove",Mu,!0),window.removeEventListener("pointerup",Nu,!0),window.removeEventListener("pointercancel",ju,!0),document.body.style.userSelect="",delete document.body.dataset.dragging}function Mu(e){if(ce.pointerX=e.clientX,ce.pointerY=e.clientY,ce.phase==="pending"){const t=e.clientX-Lu,n=e.clientY-Ou;t*t+n*n>=qo*qo&&(ce.phase="dragging")}}function Nu(e){ce.phase==="dragging"&&(fk(),Du=performance.now()+50),zu()}function ju(e){zu()}function Vo(e){const t=Zn.tree;if(e.kind==="docked")return t.docked;const n=t.floats.find(r=>r.id===e.floatId);return n?n.content:null}function Uo(e){if(e.kind!=="float")return;const t=Zn.tree,n=t.floats.findIndex(r=>r.id===e.floatId);n<0||Nc(t.floats[n].content)&&t.floats.splice(n,1)}function fk(){const{source:e,target:t}=ce;if(!e||!t)return;const n=Vo(e.sourceRoot),r=Vo(t.root);if(!n||!r)return;if(t.kind==="strip"){const a=t.tabsNode.tabs.findIndex(i=>i.slotId===e.slotId);if(a>=0){$g(t.tabsNode,a,t.insertIndex),Fn(n),r!==n&&Fn(r),Uo(e.sourceRoot);return}}const s=Hs(n,e.slotId);s&&(t.kind==="strip"?Cg(t.tabsNode,s,t.insertIndex):pu(r,t.path,s,t.side),Fn(n),r!==n&&Fn(r),Uo(e.sourceRoot))}function zu(){ce.phase="idle",ce.source=null,ce.target=null,dk()}function qa(e){ce.phase==="dragging"&&(ce.target=e)}function yr(e){ce.phase==="dragging"&&ce.target&&(e&&!e(ce.target)||(ce.target=null))}var vk=C("<div></div>"),hk=C('<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),pk=C("<div><!> <!></div>");function Bo(e,t){ae(t,!0);let n=j(void 0),r=j(null);const s=G(()=>ce.phase==="dragging");function a(y,k,b){const A=b.left+b.width/2,m=b.top+b.height/2,E=y-A,$=k-m,N=E/b.width,I=$/b.height;return Math.abs(N)>Math.abs(I)?N<0?"left":"right":I<0?"top":"bottom"}function i(y){if(!o(n))return;const k=o(n).getBoundingClientRect();if(y.clientX<k.left||y.clientX>k.right||y.clientY<k.top||y.clientY>k.bottom){o(r)!==null&&(g(r,null),yr(A=>A.kind==="split"&&A.path.join("/")===t.path.join("/")));return}const b=a(y.clientX,y.clientY,k);if(b!==o(r)){g(r,b,!0);const A={kind:"split",root:t.rootRef,path:[...t.path],side:b};qa(A)}}function l(){o(r)!==null&&(g(r,null),yr(y=>y.kind==="split"&&y.path.join("/")===t.path.join("/")))}var c=pk();let u;var d=p(c);{var f=y=>{var k=vk();q(()=>Oe(k,1,`quad-highlight quad-${o(r)??""}`,"svelte-re71zu")),T(y,k)};K(d,y=>{o(r)&&y(f)})}var v=S(d,2);{var w=y=>{var k=hk();Qt(6),T(y,k)};K(v,y=>{o(s)&&y(w)})}h(c),It(c,y=>g(n,y),()=>o(n)),q(()=>u=Oe(c,1,"slot-drop-zone svelte-re71zu",null,u,{active:o(s)})),Y("pointermove",c,i),ot("pointerleave",c,l),T(e,c),ie()}be(["pointermove"]);var mk=C('<div class="tab-slot-wrapper svelte-1gw9g38"><!> <!></div>'),gk=C('<div class="empty-tabs-custom svelte-1gw9g38"></div>'),_k=C('<div class="empty-tabs-default svelte-1gw9g38"><div class="empty-tabs-drop svelte-1gw9g38"></div></div>'),yk=C('<div class="empty-tabs-placeholder svelte-1gw9g38"><!></div>'),bk=C('<div class="leaf-slot-wrapper svelte-1gw9g38"><!> <!></div>');function ji(e,t){ae(t,!0);let n=Ht(t,"path",19,()=>[]),r=Ht(t,"rootRef",19,()=>({kind:"docked"}));const s=G(()=>{let m;return r().kind==="docked"?m=Zn.root:m=Zn.tree.floats.find($=>$.id===r().floatId)?.content??null,m?ws(m,n()):null});function a(m){return{get isDragging(){return ce.phase==="dragging"},onPointerDown(E,$,N){const I=m.tabs[E];I&&ck(I.slotId,I,r(),$,N)},onStripHover(E,$,N,I){if(N<E.top||N>E.bottom)return yr(R=>R.kind==="strip"&&R.tabsNode===m),null;let _=I.length;for(let R=0;R<I.length;R++){const P=I[R],x=P.left+P.width/2;if($<x){_=R;break}}const L=ce.source;if(L){const R=m.tabs.findIndex(P=>P.slotId===L.slotId);R>=0&&R<_&&(_-=1)}return qa({kind:"strip",root:r(),tabsNode:m,insertIndex:_}),_},onStripLeave(){yr(E=>E.kind==="strip"&&E.tabsNode===m)}}}function i(m){return m.type==="split"?m:null}function l(m){return m.type==="tabs"?m:null}function c(m){return m.type==="slot"?m:null}function u(m){return m.map(E=>gg(E.slotId)||void 0)}function d(m){return m.map(E=>mg(E.slotId)||void 0)}function f(m,E){const $=m[E];$&&Ti($.slotId)}function v(m,E){E(m)}function w(m,E){ce.phase==="dragging"&&qa({kind:"strip",root:r(),tabsNode:E,insertIndex:0})}function y(){yr(m=>m.kind==="strip"&&m.insertIndex===0)}var k=vt(),b=ve(k);{var A=m=>{var E=vt(),$=ve(E);{var N=L=>{const R=(x,D=ft)=>{{let z=G(()=>[...n(),D()]);ji(x,{get rootRef(){return r()},get path(){return o(z)}})}},P=G(()=>i(o(s)));Yw(L,{get direction(){return o(P).direction},get sizes(){return o(P).sizes},get pinned(){return o(P).pinned},get collapsed(){return o(P).collapsed},get count(){return o(P).children.length},get pane(){return R},onResize:(x,D)=>o(P).sizes[x]=D,onCollapseToggle:(x,D)=>{o(P).collapsed||(o(P).collapsed=o(P).children.map(()=>!1)),o(P).collapsed[x]=D}})},I=L=>{const R=G(()=>l(o(s)));var P=vt(),x=ve(P);{var D=M=>{const H=(W,Z=ft)=>{const J=G(()=>o(R)?.tabs[Z()]);var oe=vt(),se=ve(oe);{var ne=me=>{var fe=mk(),B=p(fe);{let de=G(()=>({type:"slot",slotId:o(J).slotId,viewId:o(J).viewId}));zo(B,{get node(){return o(de)},get label(){return o(J).label}})}var re=S(B,2);Bo(re,{get rootRef(){return r()},get path(){return n()}}),h(fe),T(me,fe)};K(se,me=>{o(J)&&me(ne)})}T(W,oe)},X=G(()=>a(o(R)));{let W=G(()=>o(R).tabs.map(ne=>ne.label)),Z=G(()=>o(R).tabs.map(ne=>ne.icon)),J=G(()=>u(o(R).tabs)),oe=G(()=>d(o(R).tabs)),se=G(()=>o(R).tabs.map(ne=>ne.slotId));rk(M,{get labels(){return o(W)},get icons(){return o(Z)},get activeTab(){return o(R).activeTab},onActiveChange:ne=>o(R).activeTab=ne,get body(){return H},get dragController(){return o(X)},get clickGuard(){return lk},get closable(){return o(J)},get dirty(){return o(oe)},onClose:ne=>f(o(R).tabs,ne),get tabIds(){return o(se)}})}},z=M=>{var H=yk(),X=p(H);{var W=J=>{var oe=gk();wc(oe,(se,ne)=>v?.(se,ne),()=>o(R).emptyRenderer),T(J,oe)},Z=J=>{var oe=_k(),se=p(oe);h(oe),Y("pointermove",se,ne=>w(ne,o(R))),ot("pointerleave",se,y),T(J,oe)};K(X,J=>{o(R).emptyRenderer?J(W):J(Z,-1)})}h(H),T(M,H)};K(x,M=>{o(R)&&o(R).tabs.length>0?M(D):o(R)?.persistent&&M(z,1)})}T(L,P)},_=L=>{const R=G(()=>c(o(s)));var P=bk(),x=p(P);zo(x,{get node(){return o(R)}});var D=S(x,2);Bo(D,{get rootRef(){return r()},get path(){return n()}}),h(P),T(L,P)};K($,L=>{o(s).type==="split"?L(N):o(s).type==="tabs"?L(I,1):L(_,-1)})}T(m,E)};K(b,m=>{o(s)&&m(A)})}T(e,k),ie()}be(["pointermove"]);var wk=C('<span class="drag-preview-icon svelte-133fiip"> </span>'),kk=C('<div class="drag-preview svelte-133fiip"><!> <span class="drag-preview-label svelte-133fiip"> </span></div>');function Sk(e,t){ae(t,!0);const n=G(()=>ce.phase==="dragging"&&!!ce.source),r=G(()=>ce.source?ce.pointerX-ce.source.offsetX:0),s=G(()=>ce.source?ce.pointerY-ce.source.offsetY:0),a=G(()=>ce.source?.startRect.width??0),i=G(()=>ce.source?.startRect.height??0),l=G(()=>ce.source?.entry.label??""),c=G(()=>ce.source?.entry.icon);var u=vt(),d=ve(u);{var f=v=>{var w=kk(),y=p(w);{var k=m=>{var E=wk(),$=p(E,!0);h(E),q(()=>O($,o(c))),T(m,E)};K(y,m=>{o(c)&&m(k)})}var b=S(y,2),A=p(b,!0);h(b),h(w),q(()=>{Gt(w,`left: ${o(r)??""}px; top: ${o(s)??""}px; width: ${o(a)??""}px; height: ${o(i)??""}px;`),O(A,o(l))}),T(v,w)};K(d,v=>{o(n)&&v(f)})}T(e,u),ie()}var Ek=C('<div class="sh3-float-frame svelte-1p734al" role="dialog" tabindex="-1"><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> <div class="sh3-float-body svelte-1p734al"><!></div></div>');function xk(e,t){ae(t,!0);const n=Ht(t,"entry",7);let r=j(!1),s={x:0,y:0};function a(m){if(m.button!==0||m.target.closest(".sh3-float-close"))return;m.currentTarget.setPointerCapture(m.pointerId),g(r,!0),s={x:m.clientX-n().position.x,y:m.clientY-n().position.y},Lt.focus(n().id)}function i(m){o(r)&&(n().position.x=m.clientX-s.x,n().position.y=m.clientY-s.y)}function l(m){if(!o(r))return;g(r,!1);const E=m.currentTarget;E.hasPointerCapture(m.pointerId)&&E.releasePointerCapture(m.pointerId)}function c(){Lt.focus(n().id)}function u(m){m.stopPropagation(),Lt.close(n().id)}var d=Ek();let f;var v=p(d),w=p(v),y=p(w,!0);h(w);var k=S(w,2);h(v);var b=S(v,2),A=p(b);{let m=G(()=>({kind:"float",floatId:n().id}));ji(A,{get rootRef(){return o(m)},path:[]})}h(b),h(d),q(()=>{Te(d,"aria-label",n().title??"Float panel"),f=Gt(d,"",f,{left:`${n().position.x??""}px`,top:`${n().position.y??""}px`,width:`${n().size.w??""}px`,height:`${n().size.h??""}px`}),O(y,n().title??n().content.type)}),Y("click",d,c),Y("pointerdown",v,a),Y("pointermove",v,i),Y("pointerup",v,l),ot("pointercancel",v,l),Y("click",k,u),T(e,d),ie()}be(["click","pointerdown","pointermove","pointerup"]);var Tk=C('<div class="sh3-float-layer svelte-1rzcset"></div>');function Ak(e,t){ae(t,!0);const n=G(()=>Zn.floats);var r=Tk();_e(r,21,()=>o(n),s=>s.id,(s,a)=>{xk(s,{get entry(){return o(a)}})}),h(r),T(e,r),ie()}const Fo="/assets/icons-CnAqUqbR.svg";var Ik=C('<div class="guest-signin-error svelte-pymkh"> </div>'),Rk=C('<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>'),Ck=C('<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),$k=C('<div class="guest-banner-slot"><!></div>');function Pk(e,t){ae(t,!0);let n=j(!1),r=j(""),s=j(""),a=j(null),i=j(!1);async function l(){if(!o(r).trim()||!o(s).trim()||o(i))return;g(i,!0),g(a,null);const v=await Bc(o(r).trim(),o(s).trim());g(i,!1),v.ok?g(n,!1):g(a,v.error,!0)}var c=$k(),u=p(c);{var d=v=>{var w=Ck(),y=ve(w),k=S(p(y),2);h(y);var b=S(y,2);{var A=m=>{var E=Rk(),$=p(E),N=p($),I=p(N);xe(I);var _=S(I,2);xe(_);var L=S(_,2),R=p(L),P=p(R,!0);h(R);var x=S(R,2);h(L),h(N);var D=S(N,2);{var z=M=>{var H=Ik(),X=p(H,!0);h(H),q(()=>O(X,o(a))),T(M,H)};K(D,M=>{o(a)&&M(z)})}h($),h(E),q(M=>{I.disabled=o(i),_.disabled=o(i),R.disabled=M,O(P,o(i)?"Signing in...":"Sign in")},[()=>o(i)||!o(r).trim()||!o(s).trim()]),ot("submit",N,M=>{M.preventDefault(),l()}),De(I,()=>o(r),M=>g(r,M)),De(_,()=>o(s),M=>g(s,M)),Y("click",x,()=>{g(n,!1),g(a,null)}),T(m,E)};K(b,m=>{o(n)&&m(A)})}Y("click",k,()=>{g(n,!0)}),T(v,w)},f=G(()=>Hc());K(u,v=>{o(f)&&v(d)})}h(c),T(e,c),ie()}be(["click"]);var Dk=C('<code class="sh3-consent-scope svelte-14me5sj"> </code>'),Lk=C('<dt class="svelte-14me5sj">Peer</dt> <dd class="svelte-14me5sj"> </dd>',1),Ok=C('<dt class="svelte-14me5sj">Expires in</dt> <dd class="svelte-14me5sj"> </dd>',1),Mk=C('<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 Nk(e,t){ae(t,!0);let n=j(null);Me(()=>tu(u=>{g(n,u,!0)}));function r(){o(n)&&(Ma(o(n).requestId,!0),g(n,null))}function s(){o(n)&&(Ma(o(n).requestId,!1),g(n,null))}var a=vt(),i=ve(a);{var l=c=>{var u=Mk(),d=p(u),f=p(d),v=p(f),w=p(v,!0);h(v),Qt(),h(f);var y=S(f,2),k=S(p(y),2),b=p(k,!0);h(k);var A=S(k,4);_e(A,20,()=>o(n).scopes,R=>R,(R,P)=>{var x=Dk(),D=p(x,!0);h(x),q(()=>O(D,P)),T(R,x)}),h(A);var m=S(A,2);{var E=R=>{var P=Lk(),x=S(ve(P),2),D=p(x);h(x),q(()=>O(D,`${o(n).peerRole??"—"??""}${o(n).peerId?` · ${o(n).peerId}`:""}`)),T(R,P)};K(m,R=>{(o(n).peerRole||o(n).peerId)&&R(E)})}var $=S(m,2);{var N=R=>{var P=Ok(),x=S(ve(P),2),D=p(x);h(x),q(z=>O(D,`${z??""}s`),[()=>Math.round(o(n).expiresIn/1e3)]),T(R,P)};K($,R=>{o(n).expiresIn&&R(N)})}h(y);var I=S(y,2),_=p(I);Qa(_,!0);var L=S(_,2);h(I),h(d),h(u),q(()=>{O(w,o(n).shardId),O(b,o(n).label)}),Y("click",_,s),Y("click",L,r),T(c,u)};K(i,c=>{o(n)&&c(l)})}T(e,a),ie()}be(["click"]);var jk=C('<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>'),zk=C('<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>'),qk=C('<div class="shell-overlay-root svelte-187fra4"><!></div>'),Vk=C('<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 Uk(e,t){ae(t,!0);const n=G(Fc),r=G(js),s=G(sn),a=G(()=>du()==="home"),i=[{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=pe({});Me(()=>{for(const{name:$}of i){const N=l[$];N&&Kp($,N)}return()=>{for(const{name:$}of i)Wp($)}}),Me(()=>{function $(N){if(N.key!=="²"||!o(s))return;const I=N.target;if(I){const _=I.tagName;if(_==="INPUT"||_==="TEXTAREA"||I.isContentEditable)return}N.preventDefault(),Ks("shell:terminal")||Lt.open("shell:terminal",{title:"Shell"})}return window.addEventListener("keydown",$),()=>window.removeEventListener("keydown",$)}),Me(()=>{const $=Zn.tree;return mm($.floats,()=>({w:window.innerWidth,h:window.innerHeight})),()=>gm()}),Me(()=>dg());var c=Vk(),u=p(c),d=p(u),f=p(d),v=p(f);h(f),h(d);var w=S(d,4);{var y=$=>{var N=zk(),I=p(N),_=p(I,!0);h(I);var L=S(I,2),R=p(L,!0);h(L);var P=S(L,2);{var x=z=>{var M=jk(),H=p(M),X=p(H);h(H),h(M),q(()=>Te(X,"href",`${Fo}#log-out`)),Y("click",M,()=>Xm()),T(z,M)},D=G(()=>!Zm());K(P,z=>{o(D)&&z(x)})}h(N),q(()=>{O(_,o(r).displayName),O(R,o(s)?"admin":"user")}),T($,N)};K(w,$=>{o(n)&&o(r)&&$(y)})}h(u);var k=S(u,2);Pk(k,{});var b=S(k,2),A=p(b);ji(A,{}),h(b);var m=S(b,4);_e(m,21,()=>i,({layer:$,name:N})=>$,($,N)=>{let I=()=>o(N).layer,_=()=>o(N).name;var L=qk(),R=p(L);{var P=D=>{Ak(D,{})},x=D=>{Sk(D,{})};K(R,D=>{_()==="floating"?D(P):_()==="drag-preview"&&D(x,1)})}h(L),It(L,(D,z)=>l[z]=D,D=>l?.[D],()=>[_()]),q(()=>{Te(L,"data-shell-overlay",_()),Te(L,"data-shell-layer",I()),Gt(L,`z-index: var(--shell-z-layer-${I()??""});`)}),T($,L)}),h(m);var E=S(m,2);Nk(E,{}),h(c),q(()=>{d.disabled=o(a),Te(v,"href",`${Fo}#house`)}),Y("click",d,()=>hu()),T(e,c),ie()}be(["click"]);const Bk="modulepreload",Fk=function(e){return"/"+e},Ho={},Hk=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=Promise.allSettled(n.map(c=>{if(c=Fk(c),c in Ho)return;Ho[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":Bk,u||(f.as="script"),f.crossOrigin="",f.href=c,l&&f.setAttribute("nonce",l),document.head.appendChild(f),u)return new Promise((v,w)=>{f.addEventListener("load",v),f.addEventListener("error",()=>w(new Error(`Unable to preload CSS for ${c}`)))})}))}function a(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&a(l.reason);return t().catch(a)})};async function Kk(){try{const{TauriStoreBackend:e}=await Hk(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:Jo}}}var Wk=C('<button type="button" class="signin-link svelte-lh4k15">Create an account</button>'),Yk=C('<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),Gk=C('<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),Xk=C('<div class="signin-error svelte-lh4k15"> </div>'),Jk=C('<div class="signin-wall svelte-lh4k15"><div class="signin-card svelte-lh4k15"><h1 class="signin-brand svelte-lh4k15">SH3</h1> <!> <!></div></div>');function Zk(e,t){ae(t,!0);let n=j("login"),r=j(""),s=j(""),a=j(""),i=j(null),l=j(!1);async function c(){if(!o(r).trim()||!o(s).trim()||o(l))return;g(l,!0),g(i,null);const m=await Bc(o(r).trim(),o(s).trim());g(l,!1),m.ok?t.onSuccess():g(i,m.error,!0)}async function u(){if(!o(r).trim()||!o(s).trim()||o(l))return;g(l,!0),g(i,null);const m=await Gm(o(r).trim(),o(s).trim(),o(a).trim()||void 0);g(l,!1),m.ok?t.onSuccess():g(i,m.error,!0)}function d(m){g(n,m,!0),g(i,null)}var f=Jk(),v=p(f),w=S(p(v),2);{var y=m=>{var E=Yk(),$=ve(E),N=p($);xe(N);var I=S(N,2);xe(I);var _=S(I,2),L=p(_,!0);h(_),h($);var R=S($,2);{var P=x=>{var D=Wk();Y("click",D,()=>d("register")),T(x,D)};K(R,x=>{t.selfRegistration&&x(P)})}q(x=>{N.disabled=o(l),I.disabled=o(l),_.disabled=x,O(L,o(l)?"Signing in...":"Sign in")},[()=>o(l)||!o(r).trim()||!o(s).trim()]),ot("submit",$,x=>{x.preventDefault(),c()}),De(N,()=>o(r),x=>g(r,x)),De(I,()=>o(s),x=>g(s,x)),T(m,E)},k=m=>{var E=Gk(),$=ve(E),N=p($);xe(N);var I=S(N,2);xe(I);var _=S(I,2);xe(_);var L=S(_,2),R=p(L,!0);h(L),h($);var P=S($,2);q(x=>{N.disabled=o(l),I.disabled=o(l),_.disabled=o(l),L.disabled=x,O(R,o(l)?"Creating...":"Create account")},[()=>o(l)||!o(r).trim()||!o(s).trim()]),ot("submit",$,x=>{x.preventDefault(),u()}),De(N,()=>o(r),x=>g(r,x)),De(I,()=>o(a),x=>g(a,x)),De(_,()=>o(s),x=>g(s,x)),Y("click",P,()=>d("login")),T(m,E)};K(w,m=>{o(n)==="login"?m(y):m(k,-1)})}var b=S(w,2);{var A=m=>{var E=Xk(),$=p(E,!0);h(E),q(()=>O($,o(i))),T(m,E)};K(b,m=>{o(i)&&m(A)})}h(v),h(f),T(e,f),ie()}be(["click"]);async function Qk(e){const t=e?.serverUrl??"",n=await Kk();n.backends&&(_o("workspace",n.backends.workspace),_o("user",n.backends.user)),n.localOwner&&Jm(),Kc(t),Gg();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 i=await fetch(`${t}/api/boot`,{credentials:"include"});i.ok&&(s=await i.json())}catch{}if(n.localOwner)fa("local");else if(s){To(t,s),fa(s.tenantId);const{auth:i,session:l}=s;if(!l&&i.required&&!i.guestAllowed){await e1(r,s);const c=await fetch(`${t}/api/boot`,{credentials:"include"});c.ok&&(s=await c.json(),To(t,s),fa(s.tenantId))}}if(e?.discoveredPackages?.length)for(const i of e.discoveredPackages)try{const l=await fetch(i.bundleUrl);if(!l.ok){console.warn(`[sh3] Failed to fetch discovered package "${i.id}": HTTP ${l.status}`);continue}const c=await l.arrayBuffer(),u=await Vr(c);Li(u,{version:i.version,sourceRegistry:i.sourceRegistry??"",contractVersion:i.contractVersion??""}),console.log(`[sh3] Loaded discovered package: ${i.id}`)}catch(l){console.warn(`[sh3] Failed to load discovered package "${i.id}":`,l)}if(e?.shards)for(const i of e.shards)zw(i);if(e?.apps)for(const i of e.apps)Si(i);const a={};e?.excludeShards&&(a.excludeShards=e.excludeShards),await Vw(a),Ue(Uk,{target:r})}function e1(e,t){return new Promise(n=>{const r=Ue(Zk,{target:e,props:{selfRegistration:t.auth.selfRegistration,onSuccess:()=>{Xe(r),n()}}})})}const zi=window.location.origin;Kc(zi);Km(new qm(zi));let qu=[];try{const e=await fetch("/api/packages");e.ok&&(qu=await e.json())}catch{}await Qk({discoveredPackages:qu,serverUrl:zi});
|
|
17
|
-
//# sourceMappingURL=index-CfqiA9Wt.js.map
|