sh3-server 0.9.1 → 0.10.1
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.
|
@@ -0,0 +1,17 @@
|
|
|
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 id=1,od=2,Go=4,ld=8,cd=16,ud=1,Xo=4,dd=8,fd=16,vd=1,hd=2,pd=4,Ba=1,Jo=2,md=4,gd=8,Es="[",xs="[!",Wi="[?",Ts="]",xn={},Se=Symbol(),dt=Symbol("filename"),Nn=Symbol("hmr"),Zo="http://www.w3.org/1999/xhtml",Rr="http://www.w3.org/2000/svg",Fa="http://www.w3.org/1998/Math/MathML",Qo="@attach",el=!1;var nr=Array.isArray,_d=Array.prototype.indexOf,Wn=Array.prototype.includes,As=Array.from,os=Object.keys,Tn=Object.defineProperty,Pt=Object.getOwnPropertyDescriptor,tl=Object.getOwnPropertyDescriptors,nl=Object.prototype,yd=Array.prototype,Is=Object.getPrototypeOf,Yi=Object.isExtensible,bd=Object.prototype.hasOwnProperty;function jn(e){return typeof e=="function"}const ft=()=>{};function Gi(e){return typeof e?.then=="function"}function wd(e){return e()}function ga(e){for(var t=0;t<e.length;t++)e[t]()}function rl(){var e,t,n=new Promise((r,s)=>{e=r,t=s});return{promise:n,resolve:e,reject:t}}function kd(e,t,n=!1){return e===void 0?n?t():t:e}function sl(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 Sd(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,Cr=8,Ha=1<<24,Dt=16,Ot=32,en=64,_a=128,Et=512,Pe=1024,qe=2048,Mt=4096,Je=8192,at=16384,nn=32768,ya=1<<25,Nt=65536,wr=1<<17,al=1<<18,mn=1<<19,il=1<<20,Ut=1<<25,In=65536,ba=1<<21,Yn=1<<22,dn=1<<23,Ke=Symbol("$state"),Rs=Symbol("legacy props"),Ed=Symbol(""),xd=Symbol("proxy path"),Td=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"),ol=1,$r=3,rn=8,ll=11;function cl(e){throw new Error("https://svelte.dev/e/experimental_async_required")}function Ad(){throw new Error("https://svelte.dev/e/invalid_default_snippet")}function Xi(){throw new Error("https://svelte.dev/e/invalid_snippet_arguments")}function rr(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function Id(){throw new Error("https://svelte.dev/e/missing_context")}function Rd(){throw new Error("https://svelte.dev/e/snippet_without_render_tag")}function Cd(e){throw new Error("https://svelte.dev/e/store_invalid_shape")}function $d(){throw new Error("https://svelte.dev/e/svelte_element_invalid_this_value")}function Pd(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Dd(e,t){throw new Error("https://svelte.dev/e/component_api_changed")}function Ld(e,t){throw new Error("https://svelte.dev/e/component_api_invalid_new")}function Od(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Md(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Nd(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function jd(e){throw new Error("https://svelte.dev/e/effect_orphan")}function zd(){throw new Error("https://svelte.dev/e/effect_pending_outside_reaction")}function qd(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Vd(){throw new Error("https://svelte.dev/e/fork_discarded")}function Ud(){throw new Error("https://svelte.dev/e/fork_timing")}function Bd(){throw new Error("https://svelte.dev/e/get_abort_signal_outside_reaction")}function Fd(){throw new Error("https://svelte.dev/e/hydration_failed")}function ul(e){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}function Hd(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Kd(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Wd(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Yd(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Gd(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}function Xd(e,t){console.warn("https://svelte.dev/e/assignment_value_stale")}function Jd(e,t){console.warn("https://svelte.dev/e/binding_property_non_reactive")}function Zd(e){console.warn("https://svelte.dev/e/console_log_state")}function Qd(){console.warn("https://svelte.dev/e/derived_inert")}function ef(e,t){console.warn("https://svelte.dev/e/event_handler_invalid")}function tf(e){console.warn("https://svelte.dev/e/hydratable_missing_but_expected")}function Pr(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function nf(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_binding")}function rf(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_mutation")}function sf(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function dl(e){console.warn("https://svelte.dev/e/state_proxy_equality_mismatch")}function af(){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 Pr(),xn;return Q=e}function Qe(){return ge(gt(Q))}function h(e){if(F){if(gt(Q)!==null)throw Pr(),xn;Q=e}}function of(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===Ts){if(t===0)return n;t-=1}else(r===Es||r===xs||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var s=gt(n);e&&n.remove(),n=s}}function Ka(e){if(!e||e.nodeType!==rn)throw Pr(),xn;return e.data}function fl(e){return e===this.v}function vl(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function hl(e){return!vl(e,this.v)}let lf=!1;function cf(e){console.warn("https://svelte.dev/e/dynamic_void_element_content")}const uf=[];function Cn(e,t=!1,n=!1){return Xr(e,new Map,"",uf,null,n)}function Xr(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(nr(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]=Xr(u,t,n,r,null,a))}return l}if(Is(e)===nl){l={},t.set(e,l),s!==null&&t.set(s,l);for(var d of Object.keys(e))l[d]=Xr(e[d],t,n,r,null,a);return l}if(e instanceof Date)return structuredClone(e);if(typeof e.toJSON=="function"&&!a)return Xr(e.toJSON(),t,n,r,e)}if(e instanceof EventTarget)return e;try{return structuredClone(e)}catch{return e}}let Mn=null;function pl(e,t){const n=e.v;if(n===Se)return;const r=df(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)pl(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 df(e){return e.f&(Ve|Yn)?"$derived":e.label?.startsWith("$")?"store":"$state"}function ff(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(!Nr())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)pl(c,u)}),Mn=null,console.groupEnd()}return s}finally{Mn=n}}function vf(e,t){return e.label=t,ml(e.v,t),e}function ml(e,t){return e?.[xd]?.(t),e}function hf(e){const t=new Error,n=pf();return n.length===0?null:(n.unshift(`
|
|
2
|
+
`),Tn(t,"stack",{value:n.join(`
|
|
3
|
+
`)}),Tn(t,"name",{value:e}),t)}function pf(){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 Gn(e){he=e}let Jr=null;function mf(e,t,n,r,s,a){const i=Jr;Jr={type:t,file:n[dt],line:r,column:s,parent:i,...a};try{return e()}finally{Jr=i}}let Wa=null;function Ji(e){Wa=e}function gf(){const e={};return[()=>(yl(e)||Id(),gl(e)),t=>_l(e,t)]}function gl(e){return Cs().get(e)}function _l(e,t){return Cs().set(e,t),t}function yl(e){return Cs().has(e)}function _f(){return Cs()}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)Wl(r)}return e!==void 0&&(t.x=e),t.i=!0,he=t.p,e??{}}function bl(){return!0}function Cs(e){return he===null&&rr(),he.c??=new Map(yf(he)||void 0)}function yf(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 wl(){var e=bn;bn=[],ga(e)}function Ze(e){if(bn.length===0&&!Kn){var t=bn;queueMicrotask(()=>{t===bn&&wl()})}bn.push(e)}function bf(){for(;bn.length>0;)wl()}function kl(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&_a){if(!(t.f&nn))throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const wf=-7169;function Ae(e,t){e.f=e.f&wf|t}function Ya(e){e.f&Et||e.deps===null?Ae(e,Pe):Ae(e,Mt)}function Sl(e){if(e!==null)for(const t of e)!(t.f&Ve)||!(t.f&In)||(t.f^=In,Sl(t.deps))}function El(e,t,n){e.f&qe?t.add(e):e.f&Mt&&n.add(e),Sl(e.deps),Ae(e,Pe)}function xl(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 kf(e){let t;return xl(e,n=>t=n)(),t}let wa=!1,vr=!1,ka=Symbol();function Sf(e,t,n){const r=n[t]??={store:null,source:Ds(void 0),unsubscribe:ft};if(r.store!==e&&!(ka 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=xl(e,a=>{s?r.source.v=a:g(r.source,a)}),s=!1}return e&&ka in n?kf(e):o(r.source)}function Ef(e,t,n){let r=n[t];return r&&r.store!==e&&(r.unsubscribe(),r.unsubscribe=ft),e}function Tl(e,t){return $s(e,t),t}function xf(e,t){var n=e[t];n.store!==null&&Tl(n.store,n.source.v)}function Tf(){const e={};function t(){yt(()=>{for(var n in e)e[n].unsubscribe();Tn(e,ka,{enumerable:!1,value:!0})})}return[e,t]}function $s(e,t){wa=!0;try{e.set(t)}finally{wa=!1}}function Af(e,t,n){return $s(e,n),t}function If(e,t,n=1){return $s(e,t+n),t}function Rf(e,t,n=1){const r=t+n;return $s(e,r),r}function Cf(){vr=!0}function Al(e){var t=vr;try{return vr=!1,[e(),vr]}finally{vr=t}}const Jt=new Set;let te=null,Ge=null,Sa=null,Kn=!1,sa=!1,Un=null,Zr=null;var Zi=0;let $f=1;class At{id=$f++;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(Zi++>1e3&&(Jt.delete(this),Pf()),!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=Zr=[];for(const l of t)try{this.#g(l,n,r)}catch(c){throw $l(l),c}if(te=null,s.length>0){var a=At.ensure();for(const l of s)a.schedule(l)}if(Un=null,Zr=null,this.#d()||this.#_()){this.#m(r),this.#m(n);for(const[l,c]of this.#c)Cl(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(),Qi(r),Qi(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):sr(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)El(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{sa=!0,te=this,this.#p()}finally{Zi=0,Sa=null,Un=null,Zr=null,sa=!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|Yn)?d.schedule(v):d.#m([v])});d.activate();var a=new Set,i=new Map;for(var l of n)Il(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|wr))&&Ga(f,c,i)&&(f.f&(Yn|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??=rl()).promise}static ensure(){if(te===null){const t=te=new At;sa||(Jt.add(te),Kn||Ze(()=>{te===t&&t.flush()}))}return te}apply(){{Ge=null;return}}schedule(t){if(Sa=t,t.b?.is_pending&&t.f&(An|Cr|Ha)&&!(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))&&!wa)return;if(r&(en|Ot)){if(!(r&Pe))return;n.f^=Pe}}this.#r.push(n)}}function hn(e){var t=Kn;Kn=!0;try{var n;for(e&&(te!==null&&!te.is_fork&&te.flush(),n=e());;){if(bf(),te===null)return n;te.flush()}}finally{Kn=t}}function Pf(){try{qd()}catch(e){Bt(e,Sa)}}let Zt=null;function Qi(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&(at|Je))&&sr(r)&&(Zt=new Set,Pn(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Ql(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 Il(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?Il(s,t,n,r):a&(Yn|Dt)&&!(a&qe)&&Ga(s,t,r)&&(Ae(s,qe),Xa(s))}}function Rl(e,t){if(e.reactions!==null)for(const n of e.reactions){const r=n.f;r&Ve?Rl(n,t):r&wr&&(Ae(n,qe),t.add(n))}}function Ga(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(Wn.call(t,s))return!0;if(s.f&Ve&&Ga(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function Xa(e){te.schedule(e)}let ls=[];function Df(){hn(()=>{const e=ls;ls=[];for(const t of e)Xn(t)})}function Lf(e){var t=mt(0),n=!0,r=void 0;return o(t),Gl(()=>{if(n){var s=Ge;try{Ge=null,r=e()}finally{Ge=s}return}ls.length===0&&Ze(Df),ls.push(t)}),n=!1,r}function Cl(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;)Cl(n,t),n=n.next}}function $l(e){Ae(e,Pe);for(var t=e.first;t!==null;)$l(t),t=t.next}function Of(e){cl(),te!==null&&Ud();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)||Vd(),n=!0,t.is_fork=!1;for(var[s,[a]]of t.current)s.v=a,s.wv=us();t.activate(),t.run_fork_commit_callbacks(),t.deactivate(),hn(()=>{var i=new Set;for(var l of t.current.keys())Rl(l,i);Kf(i),jl()}),t.flush(),await r},discard:()=>{for(var s of t.current.keys())s.wv=us();!n&&Jt.has(t)&&t.discard()}}}function Mf(e){let t=0,n=mt(0),r;return()=>{Nr()&&(o(n),Ce(()=>(t===0&&(r=ke(()=>e(()=>gr(n)))),t+=1,()=>{Ze(()=>{t-=1,t===0&&(r?.(),r=void 0,gr(n))})})))}}var Nf=Nt|mn;function Pl(e,t,n,r){new jf(e,t,n,r)}class jf{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;#_=Mf(()=>(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|=_a,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===xs;if(a.data.startsWith(Wi)){const c=JSON.parse(a.data.slice(Wi.length));this.#g(c)}else i?this.#m():this.#p()}else this.#y()},Nf),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();ii(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){El(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),Gn(this.#s.ctx);try{return At.ensure(),t()}catch(a){return kl(a),null}finally{We(n),it(r),Gn(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){af();return}s=!0,a&&Gd(),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|=_a,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 zf(){ee===null&&zd();var e=ee.b;return e===null?0:e.get_effect_pending()}function Dr(e,t,n,r){const s=Or;var a=e.filter(v=>!v.settled);if(n.length===0&&a.length===0){r(t.map(s));return}var i=ee,l=Ps(),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=Lr();function f(){Promise.all(n.map(v=>Ll(v))).then(v=>u([...t.map(s),...v])).catch(v=>Bt(v,i)).finally(()=>d())}c?c.then(()=>{l(),f(),$n()}):f()}function Dl(e,t){Dr(e,[],[],t)}function Ps(){var e=ee,t=le,n=he,r=te;return function(a=!0){We(e),it(t),Gn(n),a&&!(e.f&at)&&(r?.activate(),r?.apply())}}async function qf(e){var t=Ps(),n=await e;return()=>(t(),n)}async function Ea(e){var t=mr;queueMicrotask(()=>{mr===t&&Qr(null)});var n=await e;return()=>(Qr(t),queueMicrotask(()=>{mr===t&&Qr(null)}),n)}async function*Vf(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 Ea(t.next()))();if(s){n=!0;break}var r=mr;yield a,Qr(r)}}finally{if(!n&&t.return!==void 0)return(await Ea(t.return()))().value}}function $n(e=!0){We(null),it(null),Gn(null),e&&te?.deactivate()}function Uf(e){const t=Ps(),n=Lr();var r=ee,s=null;const a=u=>{s={error:u},Aa(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(Aa(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 Bf(e){return Promise.all(e.map(t=>t.promise))}function Lr(){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 mr=null;function Qr(e){mr=e}function Or(e){var t=Ve|qe;return ee!==null&&(ee.f|=mn),{ctx:he,deps:null,effects:null,equals:fl,f:t,fn:e,reactions:null,rv:0,v:Se,wv:0,parent:ee,ac:null}}function Ll(e,t,n){let r=ee;r===null&&Pd();var s=void 0,a=mt(Se),i=!le,l=new Map;return sv(()=>{var c=ee,u=rl();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=Lr();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=Or(e);return nc(t),t}function Ja(e){const t=Or(e);return t.equals=hl,t}function Ff(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)Ne(t[n])}}function Za(e){var t,n=ee,r=e.parent;if(!tn&&r!==null&&r.f&(at|Je))return Qd(),e.v;We(r);try{e.f&=~In,Ff(e),t=ac(e)}finally{We(n)}return t}function Ol(e){var t=Za(e);if(!e.equals(t)&&(e.wv=us(),(!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?(Nr()||te?.is_fork)&&Ge.set(e,t):Ya(e))}function Hf(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,kr(t,0),si(t))}function Ml(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&Pn(t)}let cs=new Set;const kn=new Map;function Kf(e){cs=e}let Nl=!1;function mt(e,t){var n={f:0,v:e,reactions:null,equals:fl,rv:0,wv:0};return n}function j(e,t){const n=mt(e);return nc(n),n}function Ds(e,t=!1,n=!0){const r=mt(e);return t||(r.equals=hl),r}function Wf(e,t){return g(e,ke(()=>o(e))),t}function g(e,t,n=!1){le!==null&&(!$t||le.f&wr)&&bl()&&le.f&(Ve|Dt|Yn|wr)&&(xt===null||!Wn.call(xt,e))&&Yd();let r=n?pe(t):t;return Ft(e,r,Zr)}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&&Za(s),Ge===null&&Ya(s)}e.wv=us(),zl(e,qe,n),ee!==null&&ee.f&Pe&&!(ee.f&(Ot|en))&&(St===null?cv([e]):St.push(e)),!r.is_fork&&cs.size>0&&!Nl&&jl()}return t}function jl(){Nl=!1;for(const e of cs)e.f&Pe&&Ae(e,Mt),sr(e)&&Pn(e);cs.clear()}function Xn(e,t=1){var n=o(e),r=t===1?n++:n--;return g(e,n),r}function Yf(e,t=1){var n=o(e);return g(e,t===1?++n:--n)}function gr(e){g(e,e.v+1)}function zl(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),zl(u,Mt,n))}else if(c){var d=i;l&Dt&&Zt!==null&&Zt.add(d),n!==null?n.push(d):Xa(d)}}}function pe(e){if(typeof e!="object"||e===null||Ke in e)return e;const t=Is(e);if(t!==nl&&t!==yd)return e;var n=new Map,r=nr(e),s=j(0),a=En,i=l=>{if(En===a)return l();var c=le,u=En;it(null),no(a);var d=l();return it(c),no(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)&&Kd();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),gr(s)}}else g(u,Se),gr(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)}gr(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(){Wd()}})}function Jn(e){try{if(e!==null&&typeof e=="object"&&Ke in e)return e[Ke]}catch{}return e}function ql(e,t){return Object.is(Jn(e),Jn(t))}function Gf(e,t,n=!0){try{e===t!=(Jn(e)===Jn(t))&&dl(n?"===":"!==")}catch{}return e===t===n}function Xf(e,t,n=!0){return e==t!=(Jn(e)==Jn(t))&&dl(),e==t===n}var xa,Vl,Qa,Ul,Bl;function Ta(){if(xa===void 0){xa=window,Vl=document,Qa=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Ul=Pt(t,"firstChild").get,Bl=Pt(t,"nextSibling").get,Yi(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),Yi(n)&&(n.__t=void 0)}}function Be(e=""){return document.createTextNode(e)}function Ee(e){return Ul.call(e)}function gt(e){return Bl.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!==$r){var r=Be();return n?.before(r),ge(r),r}return t&&Ls(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!==$r){var r=Be();return Q?.before(r),ge(r),r}Ls(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!==$r){var a=Be();return r===null?s?.after(a):r.before(a),ge(a),a}Ls(r)}return ge(r),r}function ei(e){e.textContent=""}function Fl(){return!1}function gn(e,t,n){let r=n?{is:n}:void 0;return document.createElementNS(t??Zo,e,r)}function Jf(){return document.createDocumentFragment()}function Hl(e=""){return document.createComment(e)}function Zf(e,t,n=""){if(t.startsWith("xlink:")){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n);return}return e.setAttribute(t,n)}function Ls(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===$r;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function ti(e,t){if(t){const n=document.body;e.autofocus=!0,Ze(()=>{document.activeElement===n&&e.focus()})}}function Qf(e){F&&Ee(e)!==null&&ei(e)}let eo=!1;function Kl(){eo||(eo=!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 Mr(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),Kl()}function ni(e){ee===null&&(le===null&&jd(),Nd()),tn&&Md()}function ev(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&&ev(s,n),le!==null&&le.f&Ve&&!(e&en))){var a=le;(a.effects??=[]).push(s)}return r}function Nr(){return le!==null&&!$t}function yt(e){const t=ct(Cr,null);return Ae(t,Pe),t.teardown=e,t}function Me(e){ni();var t=ee.f,n=!le&&(t&Ot)!==0&&(t&nn)===0;if(n){var r=he;(r.e??=[]).push(e)}else return Wl(e)}function Wl(e){return ct(An|il,e)}function Yl(e){return ni(),ct(Cr|il,e)}function Gl(e){return ct(wr,e)}function ri(e){At.ensure();const t=ct(en|mn,e);return()=>{Ne(t)}}function tv(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 nv(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 rv(){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),sr(n)&&Pn(n),t.ran=!1}})}function sv(e){return ct(Yn|mn,e)}function Ce(e,t=0){return ct(Cr|t,e)}function q(e,t=[],n=[],r=[]){Dr(r,t,n,s=>{ct(Cr,()=>e(...s.map(o)))})}function av(e,t=[],n=[],r=[]){if(n.length>0||r.length>0)var s=Lr();Dr(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 Xl(e,t=0){var n=ct(Ha|t,e);return n}function Ye(e){return ct(Ot|mn,e)}function Jl(e){var t=e.teardown;if(t!==null){const n=tn,r=le;to(!0),it(null);try{t.call(null)}finally{to(n),it(r)}}}function si(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 iv(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&al)&&e.nodes!==null&&e.nodes.end!==null&&(Zl(e.nodes.start,e.nodes.end),n=!0),Ae(e,ya),si(e,t&&!n),kr(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const a of r)a.stop();Jl(e),e.f^=ya,e.f|=at;var s=e.parent;s!==null&&s.first!==null&&Ql(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Zl(e,t){for(;e!==null;){var n=e===t?null:gt(e);e.remove(),e=n}}function Ql(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=[];ec(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 ec(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;ec(s,t,i?n:!1)}s=a}}}function ai(e){tc(e,!0)}function tc(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;tc(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 Aa(e=ee){return(e.f&at)!==0}function ii(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 ov(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 lv(e){for(var t of ov(e))Ft(t,t.v)}let es=!1,tn=!1;function to(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 nc(e){le!==null&&(xt===null?xt=[e]:xt.push(e))}let rt=null,ut=0,St=null;function cv(e){St=e}let rc=1,wn=0,En=wn;function no(e){En=e}function us(){return++rc}function sr(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(sr(a)&&Ol(a),a.wv>e.wv)return!0}t&Et&&Ge===null&&Ae(e,Pe)}return!1}function sc(e,t,n=!0){var r=e.reactions;if(r!==null&&!(xt!==null&&Wn.call(xt,e)))for(var s=0;s<r.length;s++){var a=r[s];a.f&Ve?sc(a,t,!1):t===a&&(n?Ae(a,qe):a.f&Pe&&Ae(a,Mt),Xa(a))}}function ac(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,Gn(e.ctx),$t=!1,En=++wn,e.ac!==null&&(_n(()=>{e.ac.abort(qt)}),e.ac=null);try{e.f|=ba;var d=e.fn,f=d();e.f|=nn;var v=e.deps,w=te?.is_fork;if(rt!==null){var y;if(w||kr(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(Nr()&&e.f&Et)for(y=ut;y<v.length;y++)(v[y].reactions??=[]).push(e)}else!w&&v!==null&&ut<v.length&&(kr(e,ut),v.length=ut);if(bl()&&St!==null&&!$t&&v!==null&&!(e.f&(Ve|Mt|qe)))for(y=0;y<St.length;y++)sc(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 kl(k)}finally{e.f^=ba,rt=t,ut=n,St=r,le=s,xt=a,Gn(i),$t=l,En=c}}function uv(e,t){let n=t.reactions;if(n!==null){var r=_d.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||!Wn.call(rt,t))){var a=t;a.f&Et&&(a.f^=Et,a.f&=~In),a.v!==Se&&Ya(a),Hf(a),kr(a,0)}}function kr(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)uv(e,n[r])}function Pn(e){var t=e.f;if(!(t&at)){Ae(e,Pe);var n=ee,r=es;ee=e,es=!0;try{t&(Dt|Ha)?iv(e):si(e),Jl(e);var s=ac(e);e.teardown=typeof s=="function"?s:null,e.wv=rc;var a;el&&lf&&e.f&qe&&e.deps}finally{es=r,ee=n}}}async function oi(){await Promise.resolve(),hn()}function dv(){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||!Wn.call(xt,e))){var s=le.deps;if(le.f&ba)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]:Wn.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||oc(i))&&(l=Za(i)),kn.set(i,l),l}var c=(i.f&Et)===0&&!$t&&le!==null&&(es||(le.f&Et)!==0),u=(i.f&nn)===0;sr(i)&&(c&&(i.f|=Et),Ol(i)),c&&!u&&(Ml(i),ic(i))}if(Ge?.has(e))return Ge.get(e);if(e.f&dn)throw e.v;return e.v}function ic(e){if(e.f|=Et,e.deps!==null)for(const t of e.deps)(t.reactions??=[]).push(e),t.f&Ve&&!(t.f&Et)&&(Ml(t),ic(t))}function oc(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&&oc(t))return!0;return!1}function fv(e){return e&&o(e)}function ke(e){var t=$t;try{return $t=!0,e()}finally{$t=t}}function li(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if(Ke in e)ds(e);else if(!Array.isArray(e))for(let t in e){const n=e[t];typeof n=="object"&&n&&Ke in n&&ds(n)}}}function ds(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{ds(e[r],t)}catch{}const n=Is(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){const r=tl(n);for(let s in r){const a=r[s].get;if(a)try{a.call(e)}catch{}}}}}function vv(e,t){if(cl(),F){const n=window.__svelte?.h;if(n?.has(e))return n.get(e);tf()}return t()}const hr=Symbol("events"),lc=new Set,Ia=new Set;function hv(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 cc(e,t,n,r={}){function s(a){if(r.capture||Ra.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=cc(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[hr]??={})[e]=n}function be(e){for(var t=0;t<e.length;t++)lc.add(e[t]);for(var n of Ia)n(e)}let ro=null;function Ra(e){var t=this,n=t.ownerDocument,r=e.type,s=e.composedPath?.()||[],a=s[0]||e.target;ro=e;var i=0,l=ro===e&&e[hr];if(l){var c=s.indexOf(l);if(c!==-1&&(t===document||t===window)){e[hr]=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[hr]?.[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[hr]=t,delete e.currentTarget,it(d),We(f)}}}function pv(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,ef(),c)throw c}l?.apply(t,n)}const mv=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function uc(e){return mv?.createHTML(e)??e}function ci(e){var t=gn("template");return t.innerHTML=uc(e.replaceAll("<!>","<!---->")),t.content}const gv=On?"template":"TEMPLATE",_v=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&Ba)!==0,r=(t&Jo)!==0,s,a=!e.startsWith("<!>");return()=>{if(F)return je(Q,null),Q;s===void 0&&(s=ci(a?e:"<!>"+e),n||(s=Ee(s)));var i=r||Qa?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 dc(e,t,n="svg"){var r=!e.startsWith("<!>"),s=(t&Ba)!==0,a=`<${n}>${r?e:"<!>"+e}</${n}>`,i;return()=>{if(F)return je(Q,null),Q;if(!i){var l=ci(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 yv(e,t){return dc(e,t,"svg")}function bv(e,t){return dc(e,t,"math")}function fc(e,t){var n=Jf();for(var r of e){if(typeof r=="string"){n.append(Be(r));continue}if(r===void 0||r[0][0]==="/"){n.append(Hl(r?r[0].slice(3):""));continue}const[l,c,...u]=r,d=l==="svg"?Rr:l==="math"?Fa:t;var s=gn(l,d,c?.is);for(var a in c)Zf(s,a,c[a]);if(u.length>0){var i=s.nodeName===gv?s.content:s;i.append(fc(u,s.nodeName==="foreignObject"?void 0:d))}n.append(s)}return n}function wv(e,t){var n=(t&Ba)!==0,r=(t&Jo)!==0,s;return()=>{if(F)return je(Q,null),Q;if(s===void 0){const c=t&md?Rr:t&gd?Fa:void 0;s=fc(e,c),n||(s=Ee(s))}var a=r||Qa?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 kv(e){return()=>Sv(e())}function Sv(e){if(F)return e;const t=e.nodeType===ll,n=e.nodeName===_v?[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!==$r?(n.before(n=Be()),ge(n)):Ls(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 Ev(){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 xv=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function Tv(e){return xv.includes(e)||e.toLowerCase()==="!doctype"}function Av(e){return e.endsWith("capture")&&e!=="gotpointercapture"&&e!=="lostpointercapture"}const Iv=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function Rv(e){return Iv.includes(e)}const Cv={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 $v(e){return e=e.toLowerCase(),Cv[e]??e}const Pv=["touchstart","touchmove"];function Dv(e){return Pv.includes(e)}const Lv=["textarea","script","style","title"];function Ov(e){return Lv.includes(e)}function vc(e){return e?.replace(/\//g,"/")}let fs=!0;function Bn(e){fs=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 pc(e,t)}function hc(e,t){Ta(),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!==Es);)a=gt(a);if(!a)throw xn;we(!0),ge(a);const i=pc(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&&Fd(),Ta(),ei(n),we(!1),Ue(e,t)}finally{we(r),ge(s)}}const Wr=new Map;function pc(e,{target:t,anchor:n,props:r={},events:s,context:a,intro:i=!0,transformError:l}){Ta();var c=void 0,u=tv(()=>{var d=n??t.appendChild(Be());Pl(d,{pending:()=>{}},w=>{ae({});var y=he;if(a&&(y.c=a),s&&(r.$$events=s),F&&je(w,null),fs=i,c=e(w,r)||{},fs=!0,F&&(ee.nodes.end=Q,Q===null||Q.nodeType!==rn||Q.data!==Ts))throw Pr(),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=Dv(k);for(const E of[t,document]){var A=Wr.get(E);A===void 0&&(A=new Map,Wr.set(E,A));var m=A.get(k);m===void 0?(E.addEventListener(k,Ra,{passive:b}),A.set(k,1)):A.set(k,m+1)}}}};return v(As(lc)),Ia.add(v),()=>{for(var w of f)for(const b of[t,document]){var y=Wr.get(b),k=y.get(w);--k==0?(b.removeEventListener(w,Ra),y.delete(w),y.size===0&&Wr.delete(b)):y.set(w,k)}Ia.delete(v),d!==n&&d.parentNode?.removeChild(d)}});return Ca.set(c,u),c}let Ca=new WeakMap;function Xe(e,t){const n=Ca.get(e);return n?(Ca.delete(e),n(t)):Promise.resolve()}function Mv(e){const t=e();t&&Tv(t)&&cf()}function Nv(e){const t=e();t&&!(typeof t=="string")&&$d()}function jv(e,t){e!=null&&typeof e.subscribe!="function"&&Cd()}function mc(e){return e.toString=()=>(Rd(),""),e}class ar{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)ai(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();ii(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=Fl();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 ui(e,t,...n){var r=new ar(e);Yt(()=>{const s=t()??null;r.ensure(s,s&&(a=>s(a,...n)))},Nt)}function zv(e,t){const n=(r,...s)=>{var a=Wa;Ji(e);try{return t(r,...s)}finally{Ji(a)}};return mc(n),n}function qv(e){return(t,...n)=>{var r=e(...n),s;if(F)s=Q,Qe();else{var a=r.render().trim(),i=ci(a);s=Ee(i),t.before(s)}const l=r.setup?.(s);je(s,s),typeof l=="function"&&yt(l)}}function Vv(){return le===null&&Bd(),(le.ac??=new AbortController).signal}function di(e){he===null&&rr(),Me(()=>{const t=ke(e);if(typeof t=="function")return t})}function gc(e){he===null&&rr(),di(()=>()=>ke(e))}function Uv(e,t,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(e,{detail:t,bubbles:n,cancelable:r})}function Bv(){const e=he;return e===null&&rr(),(t,n,r)=>{const s=e.s.$$events?.[t];if(s){const a=nr(s)?s.slice():[s],i=Uv(t,n,r);for(const l of a)l.call(e.x,i);return!i.defaultPrevented}return!0}}function Fv(e){he===null&&rr(),he.l===null&&ul(),_c(he).b.push(e)}function Hv(e){he===null&&rr(),he.l===null&&ul(),_c(he).a.push(e)}function _c(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}const yc=Object.freeze(Object.defineProperty({__proto__:null,afterUpdate:Hv,beforeUpdate:Fv,createContext:gf,createEventDispatcher:Bv,createRawSnippet:qv,flushSync:hn,fork:Of,getAbortSignal:Vv,getAllContexts:_f,getContext:gl,hasContext:yl,hydratable:vv,hydrate:hc,mount:Ue,onDestroy:gc,onMount:di,setContext:_l,settled:dv,tick:oi,unmount:Xe,untrack:ke},Symbol.toStringTag,{value:"Module"}));function Kv(){return Symbol(Qo)}function bc(e,t,n,r){return e!==t&&typeof t=="object"&&Ke in t&&Xd(n,vc(r)),e}function Wv(e,t,n,r,s){return bc(n==="="?e[t]=r:n==="&&="?e[t]&&=r():n==="||="?e[t]||=r():n==="??="?e[t]??=r():null,ke(()=>e[t]),t,s)}async function Yv(e,t,n,r,s){return bc(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 so=new Map;function Gv(e){var t=so.get(e);if(t){for(const n of t)n.remove();so.delete(e)}}function Xv(e,t,n){return(...r)=>{const s=e(...r);var a=F?s:s.nodeType===ll?s.firstChild:s;return wc(a,t,n),s}}function Jv(e,t,n){e.__svelte_meta={parent:Jr,loc:{file:t,line:n[0],column:n[1]}},n[2]&&wc(e.firstChild,t,n[2])}function wc(e,t,n){for(var r=0,s=0;e&&r<n.length;){if(F&&e.nodeType===rn){var a=e;a.data[0]===Es?s+=1:a.data[0]===Ts&&(s-=1)}s===0&&e.nodeType===ol&&Jv(e,t,n[r++]),e=e.nextSibling}}function Zv(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[Td]??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 Qv(e){const t=he?.function,n=he?.p?.function;return{mutation:(r,s,a,i,l)=>{const c=s[0];if(ao(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=vc(`${t[dt]}:${i}:${l}`);return rf(c,d,r,n[dt]),a},binding:(r,s,a)=>{!ao(e,r)&&n&&a()?.[Ke]&&nf(t[dt],r,s[dt],n[dt])}}}function ao(e,t){const n=Ke in e||Rs in e;return!!Pt(e,t)?.set||n&&t in e||!(t in e)}function eh(e){e&&Ld(e[dt]??"a component",e.name)}function th(){const e=he?.function;function t(n){Dd(n,e[dt])}return{$destroy:()=>t("$destroy()"),$on:()=>t("$on(...)"),$set:()=>t("$set(...)")}}function nh(e,t,n=!1){ni();let r=!0,s=Se;Gl(()=>{try{var a=e()}catch(l){s=l;return}var i=Cn(a,!0,!0);ke(()=>{if(n){if(t(...i),!r){const l=hf("$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 rh(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=Lr();if(s){var l=Q;ge(a)}Dr(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 sh(e,...t){(typeof e!="object"||!(e instanceof Node))&&Xi();for(let n of t)typeof n!="function"&&Xi()}const io=0,oo=1,ah=2;function ih(e,t,n,r,s){F&&Qe();var a=Se,i=mt(a),l=mt(a),c=new ar(e);Yt(()=>{var u=te;u.deactivate();var d=t();u.activate();var f=!1;let v=F&&Gi(d)===(e.data===xs);if(v&&(ge(Rn()),we(!1)),Gi(d)){var w=Ps(),y=!1;const k=b=>{if(!f){y=!0,w(!1),At.ensure(),F&&we(!1);try{b()}finally{$n(!1),Kn||hn()}}};d.then(b=>{k(()=>{Ft(i,b),c.ensure(oo,r&&(A=>r(A,i)))})},b=>{k(()=>{if(Ft(l,b),c.ensure(ah,s&&(A=>s(A,l))),!s)throw l.v})}),F?c.ensure(io,n):Ze(()=>{y||k(()=>{c.ensure(io,n)})})}else Ft(i,d),c.ensure(oo,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 ar(e),a=n?Nt:0;function i(l,c){if(F){var u=Ka(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 oh=Symbol("NaN");function lh(e,t,n){F&&Qe();var r=new ar(e);Yt(()=>{var s=t();s!==s&&(s=oh),r.ensure(s,n)})}function ch(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 Zn(e,t){return t}function uh(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;$a(e,As(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;ei(d),d.append(u),e.items.clear()}$a(e,t,!c)}else a={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(a)}function $a(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();ii(a,i)}else Ne(t[s],n)}}var lo;function _e(e,t,n,r,s,a=null){var i=e,l=new Map,c=(t&Go)!==0;if(c){var u=e;i=F?ge(Ee(u)):u.appendChild(Be())}F&&Qe();var d=null,f=Ja(()=>{var E=n();return nr(E)?E:E==null?[]:As(E)}),v,w=new Map,y=!0;function k(E){m.effect.f&at||(m.pending.delete(E),m.fallback=d,dh(m,v,i,t,r),d!==null&&(v.length===0?d.f&Ut?(d.f^=Ut,pr(d,null,i)):ai(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=Ka(i)===xs;N!==(E===0)&&(i=Rn(),ge(i),we(!1),$=!0)}for(var I=new Set,_=te,L=Fl(),R=0;R<E;R+=1){F&&Q.nodeType===rn&&Q.data===Ts&&(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=fh(l,y?i:lo??=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(lo??=Be())),d.f|=Ut)),E>I.size&&Od(),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 dr(e){for(;e!==null&&!(e.f&Ot);)e=e.next;return e}function dh(e,t,n,r,s){var a=(r&ld)!==0,i=t.length,l=e.items,c=dr(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&&(ai(b),a&&(b.nodes?.a?.unfix(),(f??=new Set).delete(b))),b.f&Ut)if(b.f^=Ut,b===c)pr(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),pr(b,m,n),d=b,v=[],w=[],c=dr(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)pr(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),pr(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=dr(c.next);if(c===null)continue}b.f&Ut||v.push(b),d=b,c=dr(b.next)}if(e.outrogroups!==null){for(const P of e.outrogroups)P.pending.size===0&&($a(e,As(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=dr(c.next);var L=_.length;if(L>0){var R=r&Go&&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()}uh(e,_,R)}}a&&Ze(()=>{if(f!==void 0)for(b of f)b.nodes?.a?.apply()})}function fh(e,t,n,r,s,a,i,l){var c=i&id?i&cd?mt(n):Ds(n,!1,!1):null,u=i&od?mt(s):null;return{v:c,i:u,e:Ye(()=>(a(t,c??n,u??s,l),()=>{e.delete(r)}))}}function pr(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 vh(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&&(Zl(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 Pr(),xn;je(Q,f),i=ge(d);return}var v=r?Rr:s?Fa: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 hh(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 ph(e){const t={};e.children&&(t.default=!0);for(const n in e.$$slots)t[n]=!0;return t}function jr(e,t,n){var r;F&&(r=Q,Qe());var s=new ar(e);Yt(()=>{var a=t()??null;if(F){var i=Ka(r),l=i===Es,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 mh=()=>performance.now(),Vt={tick:e=>requestAnimationFrame(e),now:()=>mh(),tasks:new Set};function kc(){const e=Vt.now();Vt.tasks.forEach(t=>{t.c(e)||(Vt.tasks.delete(t),t.f())}),Vt.tasks.size!==0&&Vt.tick(kc)}function gh(e){let t;return Vt.tasks.size===0&&Vt.tick(kc),{promise:new Promise(n=>{Vt.tasks.add(t={c:e,f:n})}),abort(){Vt.tasks.delete(t)}}}function vs(e,t){_n(()=>{e.dispatchEvent(new CustomEvent(t))})}function _h(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 co(e){const t={},n=e.split(";");for(const r of n){const[s,a]=r.split(":");if(!s||a===void 0)break;const i=_h(s.trim());t[i]=a.trim()}return t}const yh=e=>e;let Sc=null;function uo(e){Sc=e}function bh(e,t,n){var r=Sc??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=hs(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 wh(e,t,n,r){var s=(e&vd)!==0,a=(e&hd)!==0,i=s&&a,l=(e&pd)!==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=hs(t,y(),w,1,()=>{vs(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=hs(t,y(),v,0,()=>{vs(t,"outroend"),E?.()})},stop:()=>{v?.abort(),w?.abort()}},b=ee;if((b.nodes.t??=[]).push(k),s&&fs){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 hs(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=hs(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 vs(e,a?"introstart":"outrostart"),s(),{abort:ft,deactivate:ft,reset:ft,t:()=>r};const{delay:c=0,css:u,tick:d,easing:f=yh}=t;var v=[];if(a&&n===void 0&&(d&&d(0,1),u)){var w=co(u(0,1));v.push(w,w)}var y=()=>1-r,k=e.animate(v,{duration:c,fill:"forwards"});return k.onfinish=()=>{k.cancel(),vs(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=co(u(_,1-_));E.push(L),$||=L.overflow==="hidden"}$&&(e.style.overflow="hidden"),y=()=>{var R=k.currentTime;return b+A*f(R/m)},d&&gh(()=>{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 kh(e,t,n,r,s,a){let i=F;F&&Qe();var l=null;F&&Q.nodeType===ol&&(l=Q,Qe());var c=F?Q:e,u=ee,d=new ar(c,!1);Yt(()=>{const f=t()||null;var v=s?s():n||f==="svg"?Rr: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&&Ov(f)&&l.append(document.createComment(""));var y=F?Ee(l):l.appendChild(Be());F&&(y===null?we(!1):ge(y)),uo(u),r(l,y),uo(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 Sh(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),al|mn)}finally{r&&(we(!0),ge(n))}}function Eh(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 Ec(e,t,n){_t(()=>{var r=ke(()=>t(e,n?.())||{});if(n&&r?.update){var s=!1,a={};Ce(()=>{var i=n();li(i),s&&vl(a,i)&&(a=i,r.update(i))}),s=!0}if(r?.destroy)return()=>r.destroy()})}function fi(e,t){var n=void 0,r;Xl(()=>{n!==(n=t())&&(r&&(Ne(r),r=null),n&&(r=Ye(()=>{_t(()=>n(e))})))})}const xh=/[&"<]/g;function Th(e,t){const n=String(e??""),r=xh;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 xc(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=xc(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function Ah(){for(var e,t,n=0,r="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=xc(e))&&(r&&(r+=" "),r+=t);return r}const fo={translate:new Map([[!0,"yes"],[!1,"no"]])};function Ih(e,t,n=!1){if(e==="hidden"&&t!=="until-found"&&(n=!0),t==null||!t&&n)return"";const r=bd.call(fo,e)&&fo[e].get(t)||t,s=n?'=""':`="${Th(r)}"`;return` ${e}${s}`}function Tc(e){return typeof e=="object"?Ah(e):e??""}const vo=[...`
|
|
6
|
+
\r\f \v\uFEFF`];function Rh(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||vo.includes(r[i-1]))&&(l===r.length||vo.includes(r[l]))?r=(i===0?"":r.substring(0,i))+r.substring(l+1):i=l}}return r===""?null:r}function ho(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 aa(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function Ch(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(aa)),s&&c.push(...Object.keys(s).map(aa));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=aa(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+=ho(r)),s&&(n+=ho(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=Rh(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 ia(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=Ch(t,r);(!F||a!==e.getAttribute("style"))&&(a==null?e.removeAttribute("style"):e.style.cssText=a),e.__style=t}else r&&(Array.isArray(r)?(ia(e,n?.[0],r[0]),ia(e,n?.[1],r[1],"important")):ia(e,n,r));return r}function Sr(e,t,n=!1){if(e.multiple){if(t==null)return;if(!nr(t))return sf();for(var r of e.options)r.selected=t.includes(_r(r));return}for(r of e.options){var s=_r(r);if(ql(s,t)){r.selected=!0;return}}(!n||t!==void 0)&&(e.selectedIndex=-1)}function vi(e){var t=new MutationObserver(()=>{Sr(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),yt(()=>{t.disconnect()})}function ps(e,t,n=t){var r=new WeakSet,s=!0;Mr(e,"change",a=>{var i=a?"[selected]":":checked",l;if(e.multiple)l=[].map.call(e.querySelectorAll(i),_r);else{var c=e.querySelector(i)??e.querySelector("option:not([disabled])");l=c&&_r(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(Sr(e,a,s),s&&a===void 0){var l=e.querySelector(":checked");l!==null&&(a=_r(l),n(a))}e.__value=a,s=!1}),vi(e)}function _r(e){return"__value"in e?e.__value:e.value}const qn=Symbol("class"),Vn=Symbol("style"),Ac=Symbol("is custom element"),Ic=Symbol("is html"),$h=On?"link":"LINK",Ph=On?"input":"INPUT",Dh=On?"option":"OPTION",Lh=On?"select":"SELECT",Oh=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),Kl()}}function Mh(e,t){var n=Os(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==Oh)||(e.value=t??"")}function Nh(e,t){var n=Os(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function Rc(e,t){t?e.hasAttribute("selected")||e.setAttribute("selected",""):e.removeAttribute("selected")}function jh(e,t){const n=e.checked;e.defaultChecked=t,e.checked=n}function zh(e,t){const n=e.value;e.defaultValue=t,e.value=n}function Te(e,t,n,r){var s=Os(e);F&&(s[t]=e.getAttribute(t),t==="src"||t==="srcset"||t==="href"&&e.nodeName===$h)||s[t]!==(s[t]=n)&&(t==="loading"&&(e[Ed]=n),n==null?e.removeAttribute(t):typeof n!="string"&&hi(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function qh(e,t,n){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n)}function Vh(e,t,n){var r=le,s=ee;let a=F;F&&we(!1),it(null),We(null);try{t!=="style"&&(Pa.has(e.getAttribute("is")||e.nodeName)||!customElements||customElements.get(e.getAttribute("is")||e.nodeName.toLowerCase())?hi(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 Uh(e,t,n,r,s=!1,a=!1){if(F&&s&&e.nodeName===Ph){var i=e,l=i.type==="checkbox"?"defaultChecked":"defaultValue";l in n||xe(i)}var c=Os(e),u=c[Ac],d=!c[Ic];let f=F&&u;f&&we(!1);var v=t||{},w=e.nodeName===Dh;for(var y in t)y in n||(n[y]=null);n.class?n.class=Tc(n.class):(r||n[qn])&&(n.class=null),n[Vn]&&(n.style??=null);var k=hi(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=Rv(P);if(Av(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]=cc(P,e,x,L)}}else if(I==="style")Te(e,I,_);else if(I==="autofocus")ti(e,!!_);else if(!u&&(I==="__value"||I==="value"&&_!=null))e.value=e.__value=_;else if(I==="selected"&&w)Rc(e,_);else{var $=I;d||($=$v($));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 Bh(e,t,n=[],r=[],s=[],a,i=!1,l=!1){Dr(s,n,r,c=>{var u=void 0,d={},f=e.nodeName===Lh,v=!1;if(Xl(()=>{var y=t(...c.map(o)),k=Uh(e,u,y,a,i,l);v&&f&&"value"in y&&Sr(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===Qo&&(!u||b!==u[A])&&(d[A]&&Ne(d[A]),d[A]=Ye(()=>fi(e,()=>b))),k[A]=b}u=k}),f){var w=e;_t(()=>{Sr(w,u.value,!0),vi(w)})}v=!0})}function Os(e){return e.__attributes??={[Ac]:e.nodeName.includes("-"),[Ic]:e.namespaceURI===Zo}}var Pa=new Map;function hi(e){var t=e.getAttribute("is")||e.nodeName,n=Pa.get(t);if(n)return n;Pa.set(t,n=[]);for(var r,s=e,a=Element.prototype;a!==s;){r=tl(s);for(var i in r)r[i].set&&n.push(i);s=Is(s)}return n}let oa=null;function Cc(){if(oa===null){var e=gn("select");e.innerHTML=uc("<option><span>t</span></option>"),oa=e.firstChild?.firstChild?.nodeType===1}return oa}function Fh(e,t){Cc()&&fi(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 Hh(e,t){var n=F;Cc()||(we(!1),e.textContent="",e.append(Hl("")));try{t()}finally{n&&(F?h(e):(we(!0),ge(e)))}}function Kh(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;Mr(e,"input",async s=>{var a=s?e.defaultValue:e.value;if(a=ca(e)?ua(a):a,n(a),te!==null&&r.add(te),await oi(),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(ca(e)?ua(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}ca(e)&&s===ua(e.value)||e.type==="date"&&!s&&!e.value||s!==e.value&&(e.value=s??"")})}const la=new Set;function Wh(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),Mr(n,"change",()=>{var u=n.__value;a&&(u=po(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=ql(n.__value,u)}),yt(()=>{var u=i.indexOf(n);u!==-1&&i.splice(u,1)}),la.has(i)||(la.add(i),Ze(()=>{i.sort((u,d)=>u.compareDocumentPosition(d)===4?-1:1),la.delete(i)})),Ze(()=>{if(l){var u;if(a)u=po(i,u,n.checked);else{var d=i.find(f=>f.checked);u=d?.__value}s(u)}})}function ts(e,t,n=t){Mr(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 po(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 ca(e){var t=e.type;return t==="number"||t==="range"}function ua(e){return e===""?null:+e}function Yh(e,t,n=t){Mr(e,"change",()=>{n(e.files)}),F&&e.files&&n(e.files),Ce(()=>{e.files=t()})}function pi(e){for(var t=[],n=0;n<e.length;n+=1)t.push({start:e.start(n),end:e.end(n)});return t}function Gh(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 Xh(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=pi(r),t(n))})}function Jh(e,t){lt(e,["loadedmetadata"],()=>t(pi(e.seekable)))}function Zh(e,t){lt(e,["timeupdate"],()=>t(pi(e.played)))}function Qh(e,t){lt(e,["seeking","seeked"],()=>t(e.seeking))}function ep(e,t){lt(e,["timeupdate","ended"],()=>t(e.ended))}function tp(e,t){lt(e,["loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","emptied"],()=>t(e.readyState))}function np(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 rp(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 sp(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 ap(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 ip(e){lt(window,["online","offline"],()=>{e(navigator.onLine)})}function op(e,t,n){var r=Pt(e,t);r&&r.set&&(e[t]=n,yt(()=>{e[t]=null}))}class zr{#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){zr.entries.set(n.target,n);for(var r of this.#e.get(n.target)||[])r(n)}}))}}var lp=new zr({box:"content-box"}),$c=new zr({box:"border-box"}),cp=new zr({box:"device-pixel-content-box"});function up(e,t,n){var r=t==="contentRect"||t==="contentBoxSize"?lp:t==="borderBoxSize"?$c:cp,s=r.observe(e,a=>n(a[t]));yt(s)}function dp(e,t,n){var r=$c.observe(e,()=>n(e[t]));_t(()=>(ke(()=>n(e[t])),r))}function mo(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&&mo(n(...i),e)&&t(null,...i))})}),()=>{let c=a;for(;c!==s&&c.parent!==null&&c.parent.f&ya;)c=c.parent;const u=()=>{l&&mo(n(...l),e)&&t(null,...l)},d=c.teardown;c.teardown=()=>{u(),d?.()}}}),e}function fp(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 vp(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 hp(e,t){lt(e,["focus","blur"],()=>{t(e===document.activeElement)})}function pp(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 mp(e,t){lt(window,["resize"],()=>_n(()=>t(window[e])))}function gp(e){return function(...t){var n=t[0];n.isTrusted&&e?.apply(this,t)}}function _p(e){return function(...t){var n=t[0];n.target===this&&e?.apply(this,t)}}function yp(e){return function(...t){var n=t[0];return n.stopPropagation(),e?.apply(this,t)}}function bp(e){var t=!1;return function(...n){if(!t)return t=!0,e?.apply(this,n)}}function wp(e){return function(...t){var n=t[0];return n.stopImmediatePropagation(),e?.apply(this,t)}}function kp(e){return function(...t){var n=t[0];return n.preventDefault(),e?.apply(this,t)}}function Sp(e=!1){const t=he,n=t.l.u;if(!n)return;let r=()=>li(t.s);if(e){let s=0,a={};const i=Or(()=>{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&&Yl(()=>{go(t,r),ga(n.b)}),Me(()=>{const s=ke(()=>n.m.map(wd));return()=>{for(const a of s)typeof a=="function"&&a()}}),n.a.length&&Me(()=>{go(t,r),ga(n.a)})}function go(e,t){if(e.l.s)for(const n of e.l.s)o(n);t()}function Ep(e){var t=mt(0);return function(){return arguments.length===1?(g(t,o(t)+1),arguments[0]):(o(t),e())}}function xp(e,t){var n=e.$$events?.[t.type],r=nr(n)?n.slice():n==null?[]:[n];for(var s of r)s.call(this,t)}function Tp(e,t,n){e.$$events||={},e.$$events[t]||=[],e.$$events[t].push(n)}function Ap(e){for(var t in e)t in this&&(this[t]=e[t])}function Ip(e,t=1){const n=e();return e(n+t),n}function Rp(e,t=1){const n=e()+t;return e(n),n}const Cp={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 $p(e,t,n){return new Proxy({props:e,exclude:t},Cp)}const Pp={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,Xo)}finally{We(r)}}return e.special[t](n),Xn(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),Xn(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 Dp(e,t){return new Proxy({props:e,exclude:t,special:{},version:mt(0),parent_effect:ee},Pp)}const Lp={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===Rs)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 qr(...e){return new Proxy({props:e},Lp)}function Ht(e,t,n,r){var s=(n&dd)!==0,a=(n&fd)!==0,i=r,l=!0,c=()=>(l&&(l=!1,i=a?ke(r):r),i);let u;if(s){var d=Ke in e||Rs in e;u=Pt(e,t)?.set??(d&&t in e?m=>e[t]=m:void 0)}var f,v=!1;s?[f,v]=Al(()=>e[t]):f=e[t],f===void 0&&r!==void 0&&(f=c(),u&&(Hd(),u(f)));var w;if(w=()=>{var m=e[t];return m===void 0?c():(l=!0,m)},!(n&Xo))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&ud?Or:Ja)(()=>(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 Op(e,t,n,r,s,a){Dl(t,()=>{var i=!1;Wa?.[dt],Ce(()=>{if(!i){var[l,c]=Al(n);if(!c){var u=r(),d=!1,f=Ce(()=>{d||l[u]});d=!0,f.deps===null&&(Jd(),i=!0)}}})})}function Mp(e){return new Np(e)}class Np{#e;#t;constructor(t){var n=new Map,r=(a,i)=>{var l=Ds(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===Rs?!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?hc: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 Pc;typeof HTMLElement=="function"&&(Pc=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=jp(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]=ns(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=Mp({component:this.$$ctor,target:this.$$shadowRoot||this,props:{...this.$$d,$$slots:t,$$host:this}}),this.$$me=ri(()=>{Ce(()=>{this.$$r=!0;for(const r of os(this.$$c)){if(!this.$$p_d[r]?.reflect)continue;this.$$d[r]=this.$$c[r];const s=ns(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]=ns(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 os(this.$$p_d).find(t=>this.$$p_d[t].attribute===e||!this.$$p_d[t].attribute&&t.toLowerCase()===e)||e}});function ns(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 jp(e){const t={};return e.childNodes.forEach(n=>{t[n.slot||"default"]=!0}),t}function zp(e,t,n,r,s,a){let i=class extends Pc{constructor(){super(e,n,s),this.$$p_d=t}static get observedAttributes(){return os(t).map(l=>(t[l].attribute||l).toLowerCase())}};return os(t).forEach(l=>{Tn(i.prototype,l,{get(){return this.$$c&&l in this.$$c?this.$$c[l]:this.$$d[l]},set(c){c=ns(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 qp(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&&(Zd(e),console.log("%c[snapshot]","color: grey",...r))}catch{}}),t}const Dc=Object.freeze(Object.defineProperty({__proto__:null,CLASS:qn,FILENAME:dt,HMR:Nn,NAMESPACE_SVG:Rr,STYLE:Vn,aborted:Aa,action:Ec,get active_effect(){return ee},add_legacy_event_listener:Tp,add_locations:Xv,add_svelte_meta:mf,animation:bh,append:T,append_styles:Eh,apply:pv,assign:Wv,assign_async:Yv,async:rh,async_derived:Ll,attach:fi,attachment:Kv,attr:Ih,attribute_effect:Bh,autofocus:ti,await:ih,bind_active_element:Kh,bind_buffered:Xh,bind_checked:ts,bind_content_editable:fp,bind_current_time:Gh,bind_element_size:dp,bind_ended:ep,bind_files:Yh,bind_focused:hp,bind_group:Wh,bind_muted:ap,bind_online:ip,bind_paused:rp,bind_playback_rate:np,bind_played:Zh,bind_prop:op,bind_property:vp,bind_ready_state:tp,bind_resize_observer:up,bind_seekable:Jh,bind_seeking:Qh,bind_select_value:ps,bind_this:It,bind_value:De,bind_volume:sp,bind_window_scroll:pp,bind_window_size:mp,boundary:Pl,bubble_event:xp,check_target:eh,child:p,cleanup_styles:Gv,clsx:Tc,comment:vt,component:jr,create_custom_element:zp,create_ownership_validator:Qv,css_props:ch,customizable_select:Hh,deep_read:ds,deep_read_state:li,deferred_template_effect:av,delegate:be,delegated:Y,derived:G,derived_safe_equal:Ja,get document(){return Vl},each:_e,eager:Lf,effect:_t,effect_root:ri,effect_tracking:Nr,element:kh,equals:Xf,event:ot,exclude_from_object:Sd,fallback:kd,first_child:ve,flush:hn,for_await_track_reactivity_loss:Vf,from_html:C,from_mathml:bv,from_svg:yv,from_tree:wv,get:o,head:Sh,hmr:Zv,html:vh,hydrate_template:of,if:K,index:Zn,init:Sp,init_select:vi,inspect:nh,invalid_default_snippet:Ad,invalidate_inner_signals:lv,invalidate_store:xf,invoke_error_boundary:Bt,key:lh,legacy_api:th,legacy_pre_effect:nv,legacy_pre_effect_reset:rv,legacy_rest_props:Dp,log_if_contains_state:qp,mark_store_binding:Cf,mutable_source:Ds,mutate:Wf,next:Qt,noop:ft,once:bp,pending:zf,pop:ie,preventDefault:kp,prevent_snippet_stringification:mc,prop:Ht,props_id:Ev,proxy:pe,push:ae,raf:Vt,reactive_import:Ep,remove_input_defaults:xe,remove_textarea_child:Qf,render_effect:Ce,replay_events:hv,reset:h,rest_props:$p,run:Uf,run_after_blockers:Dl,safe_get:fv,sanitize_slots:ph,save:qf,select_option:Sr,selectedcontent:Fh,self:_p,set:g,set_attribute:Te,set_checked:Nh,set_class:Oe,set_custom_element_data:Vh,set_default_checked:jh,set_default_value:zh,set_selected:Rc,set_style:Gt,set_text:O,set_value:Mh,set_xlink_attribute:qh,setup_stores:Tf,sibling:S,slot:hh,snapshot:Cn,snippet:ui,spread_props:qr,state:j,stopImmediatePropagation:wp,stopPropagation:yp,store_get:Sf,store_mutate:Af,store_set:Tl,store_unsub:Ef,strict_equals:Gf,tag:vf,tag_proxy:ml,template_effect:q,text:fn,tick:oi,to_array:sl,trace:ff,track_reactivity_loss:Ea,transition:wh,trusted:gp,untrack:ke,update:Xn,update_legacy_props:Ap,update_pre:Yf,update_pre_prop:Rp,update_pre_store:Rf,update_prop:Ip,update_store:If,user_effect:Me,user_pre_effect:Yl,validate_binding:Op,validate_dynamic_element_tag:Nv,validate_snippet_args:sh,validate_store:jv,validate_void_dynamic_element:Mv,wait:Bf,get window(){return xa},with_script:kv,wrap_snippet:zv},Symbol.toStringTag,{value:"Module"}));class _o{#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 yo{#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 Vp=["workspace","user"],mi="state:manage",jt={ephemeral:new _o,session:new _o,workspace:new yo("sh3:workspace:"),user:new yo("sh3:user:")},da=new Map;let fa=!1;function Up(e,t,n){da.set(`${e}:${t}`,{zone:e,shardId:t,value:n}),!fa&&(fa=!0,queueMicrotask(()=>{fa=!1;for(const{zone:r,shardId:s,value:a}of da.values())jt[r].write(s,a);da.clear()}))}function Ms(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,Vp.includes(r)&&ri(()=>{let u=!0;Me(()=>{const d=Cn(c);if(u){u=!1;return}Up(r,e,d)})})}return n}function bo(e,t){jt[e]=t}function Bp(e,t){return jt[e].read(t)}function Da(e,t){jt[e].delete(t)}const Fp="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(Fp);const Hp=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function Kp(e){const t=document.activeElement;function n(){return Array.from(e.querySelectorAll(Hp))}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 Wp=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 Yp(e,t){ae(t,!0);let n;Me(()=>{if(n)return Kp(n)});var r=Wp(),s=p(r),a=p(s);jr(a,()=>t.Content,(i,l)=>{l(i,qr(()=>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 gi={};function Gp(e,t){gi[e]=t}function Xp(e){delete gi[e]}function Ns(e){const t=gi[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 ms=!1,kt=null;const Jp=.5;function Lc(){const e=Ns("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, ${Jp})`);const t=pt[pt.length-1].host;e.insertBefore(kt,t)}function Oc(e){e.key==="Escape"&&pt.length!==0&&(e.stopPropagation(),e.preventDefault(),pt[pt.length-1].handle.close())}function Zp(){ms||(ms=!0,document.addEventListener("keydown",Oc,!0))}function Qp(){pt.length>0||ms&&(ms=!1,document.removeEventListener("keydown",Oc,!0))}function Mc(e){const t=pt.indexOf(e);t<0||(pt.splice(t,1),Xe(e.frame),e.host.remove(),Lc(),Qp())}function em(e,t,n){const r=Ns("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:()=>Mc(a)},l=Ue(Yp,{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),Lc(),Zp(),i}function tm(){for(;pt.length>0;)Mc(pt[pt.length-1])}const nm={open:em,closeAll:tm};var rm=C('<div class="popup-frame svelte-mp81cl" role="menu" tabindex="-1"><!></div>');function sm(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=rm(),i=p(a);jr(i,()=>t.Content,(l,c)=>{c(l,qr(()=>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 Nc(e){if(!Tt)return;const t=e.target;t&&Tt.host.contains(t)||Tt.handle.close()}function jc(e){Tt&&e.key==="Escape"&&(e.stopPropagation(),e.preventDefault(),Tt.handle.close())}function am(){document.addEventListener("pointerdown",Nc,!0),document.addEventListener("keydown",jc,!0)}function im(){document.removeEventListener("pointerdown",Nc,!0),document.removeEventListener("keydown",jc,!0)}function La(e){Tt===e&&(Tt=null,im(),Xe(e.frame),e.host.remove())}function om(e,t,n){Tt&&La(Tt);const r=Ns("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:()=>La(i)},c=Ue(sm,{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(am),l}function lm(){Tt&&La(Tt)}const cm={show:om,close:lm};var um=C('<div role="status" aria-live="polite"><span class="toast-level svelte-12gwnj0"> </span> <span class="toast-message svelte-12gwnj0"> </span></div>');function dm(e,t){var n=um(),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 gs=new Set;let nt=null;function fm(){if(nt&&nt.isConnected)return nt;const e=Ns("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 Oa(e){gs.has(e)&&(gs.delete(e),e.timer!==null&&(clearTimeout(e.timer),e.timer=null),Xe(e.instance),e.host.remove())}function vm(e,t={}){const n=t.level??"info",r=t.duration??3e3,s=fm(),a=document.createElement("div");a.className="sh3-toast-host",s.appendChild(a);const i={},l={close:()=>Oa(i)},c=Ue(dm,{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(()=>Oa(i),r):null,gs.add(i),l}function hm(){for(const e of[...gs])Oa(e)}const pm={notify:vm,clear:hm},wo={w:120,h:80};function zc(e){if(e.type==="slot")return{...wo};if(e.type==="tabs")return{...wo};const t=e.children.map(zc);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 ko=32,So={x:48,y:48};function mm(e,t){if(e.length===0)return{...So};const n=e[e.length-1],r={x:n.position.x+ko,y:n.position.y+ko};return r.x+120>t.w||r.y+32>t.h?{...So}:r}let Eo=0;function gm(){return Eo+=1,`float-${Date.now().toString(36)}-${Eo.toString(36)}`}function qc(e){return e.type==="slot"?e.viewId==null:e.type==="tabs"?e.tabs.every(t=>t.viewId==null):e.children.every(qc)}let _m=[],_i=null,yi=()=>({w:1600,h:900});function ym(e,t){_i=e,yi=t}function bm(){_i=null,yi=()=>({w:1600,h:900})}function js(){return _i??_m}let xo=0;function wm(e){return xo+=1,`float:${e}:${xo}`}const km={w:600,h:400};function Sm(e,t){return{w:Math.max(e.w,t.w),h:Math.max(e.h,t.h)}}function Em(e,t={}){const n=js(),r=gm(),s=wm(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=zc(l),u=t.size??Sm(km,c),d=t.position??mm(n,yi()),f={id:r,content:l,position:d,size:u,title:t.title};return n.push(f),r}function xm(e){const t=js(),n=t.findIndex(r=>r.id===e);n<0||t.splice(n,1)}function Tm(){return js().slice()}function Am(e){const t=js(),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:Em,close:xm,list:Tm,focus:Am};let _s=null;function Im(e){_s=e}function Rm(){_s=null}function bi(){if(!_s)throw new Error("presetManager: no app attached — bind an AppLayoutBlob first");return _s}function Cm(){return Object.keys(bi().presets)}function $m(){return bi().activePreset}function Pm(e){const t=bi();if(!(e in t.presets))throw new Error(`presetManager.switch: unknown preset "${e}"`);t.activePreset=e}const Dm={list:Cm,active:$m,switch:Pm},Vc={state:Ms,modal:nm,popup:cm,toast:pm,float:Lt,presets:Dm},ys=new Map,Uc=new Set;function Lm(e){Uc.add(e)}function Om(e,t){if(ys.has(e))throw new Error(`View "${e}" is already registered`);ys.set(e,t);for(const n of Uc)n(e,t)}function Bc(e){return ys.get(e)}function Mm(e){ys.delete(e)}const Er=new Map;function Nm(e,t){if(Er.has(e))throw new Error(`Verb "${e}" is already registered`);Er.set(e,t)}function To(e){return Er.get(e)}function jm(e){Er.delete(e)}function wi(){return Array.from(Er.values()).sort((e,t)=>e.name.localeCompare(t.name))}function Yr(e,t,n){return`${e}/${t}/${n}`}function zm(e,t){return`${e}/${t}/`}const qm="sh3-documents",zt="docs",Vm=2;class Um{#e=null;#t(){return this.#e||(this.#e=new Promise((t,n)=>{const r=indexedDB.open(qm,Vm);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=Yr(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=Yr(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=Yr(t,n,r);await this.#n("readwrite",a=>a.delete(s))}async list(t,n){const r=zm(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=Yr(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 Bm{#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 Fm{#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 bs=new Fm,Hm=1e3;function Km(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){bs.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=bs.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 Wm(c,u,d?.debounceMs??Hm);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 Wm{#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 Ym="local";let Fc=Ym,Hc=new Um;function va(){return Fc}function Ao(){return Hc}function ha(e){Fc=e}function Gm(e){Hc=e}const Xm="sync:peer",Jm="sync:policy";let ir=j(null),Kt=j(null),or=j(!1),zs="",Ma=null;function Io(e,t){zs=e,Ma=t.auth,g(ir,t.user,!0),g(Kt,t.session,!0),g(or,!t.session&&!t.user,!0)}async function Kc(e,t){try{const n=await fetch(`${zs}/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(ir,r.user,!0),g(Kt,r.session,!0),g(or,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function Zm(e,t,n){try{const r=await fetch(`${zs}/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(ir,s.user,!0),g(Kt,s.session,!0),g(or,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function Qm(){try{await fetch(`${zs}/api/auth/logout`,{method:"POST",credentials:"include"})}catch{}if(Ma?.required&&!Ma.guestAllowed){window.location.reload();return}g(ir,null),g(Kt,null),g(or,!0)}function eg(){g(ir,{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(or,!1)}function tg(){return o(Kt)?.token==="local"}function sn(){return o(Kt)?.role==="admin"}function Wc(){return o(Kt)!==null}function Yc(){return o(or)}function qs(){return o(ir)}function Vs(){return o(Kt)?`Bearer ${o(Kt).token}`:null}let lr="";function Gc(e){lr=e}async function ng(e){const t=await fetch(`${lr}/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 rg(e,t){if(!sn())throw new Error("Cannot update env state: not elevated to admin");const n=Vs(),r={"Content-Type":"application/json"};n&&(r.Authorization=n);const s=await fetch(`${lr}/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 ki(e,t,n){if(!sn())throw new Error("Cannot install: not elevated to admin");const r=Vs(),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(`${lr}/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 Xc(e){if(!sn())throw new Error("Cannot uninstall: not elevated to admin");const t=Vs(),n={"Content-Type":"application/json"};t&&(n.Authorization=t);const r=await fetch(`${lr}/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 sg(){const e=await fetch(`${lr}/api/packages`);return e.ok?await e.json():[]}function ag(e){return jt[e].list()}function ig(e,t){return jt[e].read(t)}function og(e,t){jt[e].delete(t)}function lg(e){for(const t of jt[e].list())jt[e].delete(t)}function Jc(){return{list:ag,peek:ig,clear:og,clearAll:lg}}const Zc="documents:browse",Qc="documents:read",eu="documents:write";function cg(e,t,n={canRead:!1,canWrite:!1}){const r={listDocuments:()=>t.listAllDocuments(e),listShards:()=>t.listAllShards(e),watchDocuments:s=>bs.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),bs.emit({type:l?"update":"create",path:a,tenantId:e,shardId:s})}),r}const tu="keys:mint";class nu extends Error{constructor(t){super(`Shard may not mint a key with scope '${t}' — not declared in manifest.`),this.name="ScopeEscalationError"}}class ru extends Error{constructor(){super("User denied key creation."),this.name="ConsentDeniedError"}}const Na=new Map;let yr=null;function su(e){return yr=e,()=>{yr===e&&(yr=null)}}async function ug(e,t){if(!yr)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=>{Na.set(n,{resolve:r}),yr({...t,shardId:e,requestId:n})})}function ja(e,t){const n=Na.get(e);n&&(Na.delete(e),n.resolve(t))}const ws=new Map,rs=new Map,dg=5e3;function fg(e,t){let n=rs.get(e);n||(n=new Set,rs.set(e,n)),n.add(t),setTimeout(()=>{n.delete(t),n.size===0&&rs.delete(e)},dg)}function vg(e,t){return rs.get(e)?.has(t)??!1}function Si(e,t){const n=ws.get(e)??new Set;return n.add(t),ws.set(e,n),()=>{n.delete(t)}}function au(e,t){if(!e||vg(e,t))return;fg(e,t);const n=ws.get(e);if(n)for(const s of n)s(t);const r=ws.get("*");if(r)for(const s of r)s(t)}function hg(){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);au(n.shardId,n.id)}catch{}},()=>e.close()}function pg(e){const{shardId:t,shardPermissions:n}=e,r=s=>{for(const a of s)if(!n.includes(a)&&!n.includes("admin:*"))throw new nu(a)};return{async mint(s){if(r(s.scopes),!await ug(t,s))throw new ru;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}`);au(t,s)}}}const Fn=new Map,ss=new Map;function Ro(e){const t=ss.get(e);if(t)for(const n of t)n()}function mg(e,t){const n=Symbol();let r=Fn.get(e);r||(r=new Map,Fn.set(e,r)),r.set(n,t),Ro(e);let s=!1;return()=>{if(s)return;s=!0;const a=Fn.get(e);a&&a.delete(n)&&(a.size===0&&Fn.delete(e),Ro(e))}}function gg(e){const t=Fn.get(e);return t?Array.from(t.values()):[]}function _g(){return Array.from(Fn.keys())}function yg(e,t){let n=ss.get(e);n||(n=new Set,ss.set(e,n)),n.add(t);let r=!1;return()=>{r||(r=!0,n.delete(t),n.size===0&&ss.delete(e))}}const Wt=pe(new Map),xr=new Map,Vr=pe(new Map);function Ei(e){const t=e.manifest.id;Wt.has(t)&&Vr.has(t)&&Us(t),Wt.set(t,e)}async function iu(e){const t=Wt.get(e);if(!t)throw new Error(`Cannot activate shard "${e}": not registered`);if(xr.has(e))return;const n={shard:t,ctx:void 0,viewIds:new Set,verbNames:new Set,cleanupFns:[]},r=pe({proxy:null,defaults:null}),s={register(i,l){const c=mg(i,l);return n.cleanupFns.push(async()=>c()),c},list(i){return gg(i)},listPoints(){return _g()},onChange(i,l){const c=yg(i,l);return n.cleanupFns.push(async()=>c()),c}},a={state:i=>Vc.state(e,i),registerView:(i,l)=>{Om(i,l),n.viewIds.add(i)},registerVerb:i=>{const l=e==="shell"?i.name:`${e}:${i.name}`;Nm(l,{...i,name:l}),n.verbNames.add(l)},documents:i=>{const l=Km(va(),e,Ao(),i);return n.cleanupFns.push(()=>l.dispose()),l},env(i){return r.proxy?(console.warn(`[sh3] Shard "${e}" called ctx.env() more than once; extra calls are ignored.`),r.proxy):(r.defaults=i,r.proxy={...i},r.proxy)},async envUpdate(i){if(!r.proxy||!r.defaults)throw new Error(`Shard "${e}" called envUpdate() without declaring env state`);const l=Cn(r.proxy);Object.assign(r.proxy,i);try{const c=Cn(r.proxy);await rg(e,c)}catch(c){throw Object.assign(r.proxy,l),c}},get isAdmin(){return sn()},get tenantId(){return va()},zones:t.manifest.permissions?.includes(mi)?Jc():void 0,browse:t.manifest.permissions?.includes(Zc)?cg(va(),Ao(),{canRead:t.manifest.permissions.includes(Qc),canWrite:t.manifest.permissions.includes(eu)}):void 0,keys:t.manifest.permissions?.includes(tu)?pg({shardId:e,shardPermissions:t.manifest.permissions??[]}):void 0,contributions:s};if(n.ctx=a,t.onKeyRevoked){const i=Si(e,async l=>{try{await t.onKeyRevoked(l)}catch(c){console.error(`[sh3] onKeyRevoked failed in "${e}":`,c)}});n.cleanupFns.push(async()=>i())}xr.set(e,n),Vr.set(e,t),await t.activate(a);for(const i of t.manifest.views)if(!n.viewIds.has(i.id))throw new Error(`Shard "${e}" declared view "${i.id}" in its manifest but registered no factory for it.`);if(r.proxy&&r.defaults)try{const i=await ng(e),l=Object.assign({},r.defaults,i);Object.assign(r.proxy,l)}catch(i){console.warn(`[sh3] Failed to hydrate env state for shard "${e}":`,i instanceof Error?i.message:i)}t.autostart?.(a)}function Us(e){const t=xr.get(e);if(t){t.shard.deactivate?.();for(const n of t.cleanupFns)n();for(const n of t.verbNames)jm(n);for(const n of t.viewIds)Mm(n);xr.delete(e),Vr.delete(e)}}function bg(e){return xr.get(e)?.ctx}function Co(){const e=[];for(const t of Vr.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 xi(e){Dn.set(e.manifest.id,e)}function Ti(){return Array.from(Dn.values()).map(e=>e.manifest)}function ou(){const e=Ct.id;return e?Dn.get(e)?.manifest??null:null}function Bs(e){return Dn.get(e)}const vn=new Map,as=new Set;function wg(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){Fs[n]=a}};queueMicrotask(()=>{if(vn.has(n)&&r.handle===void 0&&(r.handle=t.mount(r.host,s),(r.handle?.closable||n.startsWith("float:"))&&(Hs[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)}})}}Lm(wg);const Fs=pe({}),Hs=pe({});function kg(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?Bc(t):void 0,c={slotId:e,viewId:t??"",label:n,meta:r,setDirty(u){Fs[e]=u}};if(i.handle=l?.mount(s,c),(i.handle?.closable||e.startsWith("float:"))&&(Hs[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 lu(e,t,n,r){as.delete(e);let s=vn.get(e);return s||(s=kg(e,t,n,r),vn.set(e,s)),s.refcount++,s.host}function cu(e){const t=vn.get(e);if(t){if(t.refcount--,t.refcount>0){t.host.remove();return}as.add(e),queueMicrotask(()=>{if(!as.has(e))return;as.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 Fs[e],delete Hs[e])})}}function uu(e){const t=za.get(e);return t||vn.get(e)?.handle}function Sg(e){return Fs[e]??!1}function Eg(e){return za.has(e)?!!za.get(e).closable:Hs[e]??!1}const za=new Map;function du(e){if(!e||typeof e!="object")return!1;const t=e.type;return t==="split"||t==="tabs"||t==="slot"}function xg(e){if(!e||typeof e!="object")return!1;const t=e;return du(t.docked)&&Array.isArray(t.floats)}function Tg(e){return{docked:e,floats:[]}}function Ag(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 Ig(e){if(Array.isArray(e))return e.map(Ag);if(xg(e))return[{name:"default",variants:{default:e}}];if(du(e))return[{name:"default",variants:{default:Tg(e)}}];throw new Error("normalizeInitialLayout: input is not a LayoutNode, LayoutTree, or LayoutPreset[]")}function $o(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 Rg(e){const t=$o(e.docked);for(const n of e.floats)t.push(...$o(n.content));return t}Da("workspace","__shell__");const Cg={type:"slot",slotId:"sh3core.home",viewId:"sh3core:home"},$g=pe({docked:Cg,floats:[]});let ht=j(null),Ks=j("home");function Pg(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 Dg(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 Lg(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=Ig(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=Bp("workspace",t),a=Pg(s);(a&&a.layoutVersion!==e.manifest.layoutVersion||s&&!a)&&Da("workspace",t);const l=Ms(t,{workspace:r}).workspace;g(ht,{appId:e.manifest.id,proxy:l,heldSlotIds:[]},!0),Im(l)}function Og(){if(!o(ht))throw new Error("acquireAppSlotHolds: no app attached");if(o(ht).heldSlotIds.length>0)return;const e=Dg(o(ht).proxy),t=Rg(e);for(const{slotId:n,viewId:r,label:s,meta:a}of t)lu(n,r,s,a),o(ht).heldSlotIds.push(n)}function fu(){if(o(ht)){Rm();for(const e of o(ht).heldSlotIds)cu(e);g(ht,null)}}function vu(){g(Ks,"home")}function Po(){if(!o(ht))throw new Error("Cannot switchToApp: no app is attached");g(Ks,"app")}const is=G(()=>{if(o(Ks)==="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 $g});function Xt(){return o(is)}function hu(){return o(Ks)}const Qn={get root(){return o(is).docked},get tree(){return o(is)},get floats(){return o(is).floats}},pu=Ms("__sh3core__:last-app",{user:{id:null}});function Mg(){return pu.user.id}function ks(e){pu.user.id=e}const qa=new Map;function Gr(e){let t=qa.get(e);if(!t){const n=Bs(e);t={state:r=>Ms(`__app__:${e}`,r),zones:n?.manifest.permissions?.includes(mi)?Jc():void 0},qa.set(e,t)}return t}async function Tr(e){const t=Bs(e);if(!t)throw new Error(`Cannot launch app "${e}": not registered`);if(Ct.id&&Ct.id!==e)mu(Ct.id);else if(Ct.id===e){for(const n of t.manifest.requiredShards){const r=Wt.get(n),s=bg(n);r&&s&&r.resume?.(s)}t.resume?.(Gr(e)),Po(),t.onAppReady?.(Gr(e)),ks(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`);Lg(t);try{for(const n of t.manifest.requiredShards)await iu(n)}catch(n){throw fu(),n}Og(),t.activate?.(Gr(e)),Ct.id=e,Po(),t.onAppReady?.(Gr(e)),ks(e)}function mu(e){if(Ct.id!==e)return;const t=Bs(e);if(t){t.deactivate?.(),vu(),fu();for(const n of t.manifest.requiredShards){const r=Wt.get(n);r&&(r.autostart||Us(n))}Ct.id=null,qa.delete(e)}}function Ai(e){Dn.has(e)&&(Ct.id===e&&(mu(e),ks(null)),Dn.delete(e))}async function gu(){const e=Ct.id?Bs(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 vu(),ks(null),!0}function er(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 Ws(e,t){const n=er(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 Ng(e,t,n){const r=Math.max(0,Math.min(n,e.tabs.length));e.tabs.splice(r,0,t),e.activeTab=r}function jg(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 Do(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 zg(e){if(e.type==="tabs")return{...e,tabs:[...e.tabs]};if(e.type==="split"){const t={...e,children:[...e.children],sizes:[...e.sizes]};return e.pinned&&(t.pinned=[...e.pinned]),e.collapsed&&(t.collapsed=[...e.collapsed]),t}return{...e}}function _u(e,t,n,r){const s=Ss(e,t);if(!s)return;if(t.length===0){const u=zg(s),d=Do(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=Do(s,n,r),i=t.slice(0,-1),l=t[t.length-1],c=Ss(e,i);!c||c.type!=="split"||(c.children[l]=a)}function Ss(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 Hn(e){let t=!0;for(;t;)t=yu(e,null,0)}function yu(e,t,n){if(e.type==="split"){let r=!1;for(let s=0;s<e.children.length;s++)yu(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 bu(){return{root:Xt(),source:hu()}}function qg(e){const t=Xt().docked,n=Ri(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 Vg(e){const t=Xt();return Gs(t.docked,n=>n.slotId===e)?!0:wu(t,n=>n.slotId===e)}function Ys(e){const t=Xt();return Gs(t.docked,n=>n.viewId===e)?!0:wu(t,n=>n.viewId===e)}function Gs(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(Gs(n,t))return!0}return!1}function wu(e,t){for(const n of e.floats)if(Gs(n.content,t))return Lt.focus(n.id),!0;return!1}function Ug(e,t){return ku(e,t,!0)}function Bg(e,t){return ku(e,t,!1)}function ku(e,t,n){const r=Xt().docked,s=Ss(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 Ii(e){const t=Xt(),n=t.docked;if(!er(n,e))return Fg(t,e);const a=uu(e)?.closable;return!a||typeof a=="object"&&(!await a.canClose()||!er(n,e))?!1:(Ws(n,e),Hn(n),!0)}async function Fg(e,t){for(const n of e.floats){if(!er(n.content,t))continue;const a=uu(t)?.closable;if(typeof a=="object"&&(!await a.canClose()||!er(n.content,t)))return!1;Ws(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 Hg(e){const t=Xt(),n=er(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 Ws(t.docked,e),Hn(t.docked),Lt.open(s,{title:a,meta:i})}function Kg(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=Ci({slotId:a.slotId,viewId:a.viewId,label:a.label,meta:a.meta});return i&&Lt.close(e),i}function Ri(e){if(e.type==="tabs")return e;if(e.type==="split")for(const t of e.children){const n=Ri(t);if(n)return n}return null}function Su(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=Su(e.children[n],[...t,n]);if(r)return r}return null}function Ci(e){const t=Xt().docked;if(Ys(e.viewId??""))return!0;const n=Ri(t);if(n)return n.tabs.push(e),n.activeTab=n.tabs.length-1,!0;const r=Su(t);return r?(_u(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 Eu(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)=>Wg(r,`$.packages[${s}]`))}}function Wg(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new st(t,"expected an object");const n=e;Rt(n,"id",t),Xg(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)=>Yg(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 Yg(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)=>Gg(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 Gg(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 Xg(e,t,n,r){if(!n.includes(e[t]))throw new st(`${r}.${t}`,`expected one of: ${n.join(", ")}`)}const Lo=["sha256","sha384","sha512"];function Jg(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(!Lo.includes(n))throw new Error(`Unsupported SRI algorithm: ${n}. Supported: ${Lo.join(", ")}`);if(!r)throw new Error(`Empty hash in SRI: ${e}`);return{algorithm:n,hash:r}}function Zg(e){return`SHA-${e.slice(3)}`}function Qg(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 $i(e,t){const{algorithm:n,hash:r}=Jg(t),s=Zg(n),a=await crypto.subtle.digest(s,e),i=Qg(a);if(i!==r)throw new Error(`Integrity check failed for ${n}. Expected: ${r}, got: ${i}`)}async function xu(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=Eu(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 Xs(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 $i(s,e.integrity),s}async function Pi(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 $i(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 Js(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.10.1",Di="sh3:user:__sh3core__:theme";let Ar=[];function e_(e){const t=Object.keys(e);for(const n of Ar)t.includes(n)||document.documentElement.style.removeProperty(`--${n}`);for(const[n,r]of Object.entries(e))document.documentElement.style.setProperty(`--${n}`,r);Ar=t;try{localStorage.setItem(Di,JSON.stringify(e))}catch{}}function t_(){for(const e of Ar)document.documentElement.style.removeProperty(`--${e}`);Ar=[];try{localStorage.removeItem(Di)}catch{}}function Tu(){try{const e=localStorage.getItem(Di);if(!e)return{};const t=JSON.parse(e);return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{}}catch{return{}}}function n_(){const e=Tu();if(Object.keys(e).length!==0){for(const[t,n]of Object.entries(e))document.documentElement.style.setProperty(`--${t}`,n);Ar=Object.keys(e)}}const r_={hotInstall:typeof Blob<"u"&&typeof URL.createObjectURL=="function"},Au=["__sh3core__","shell","sh3-store","sh3-admin"],Iu=Object.freeze(Object.defineProperty({__proto__:null,ConsentDeniedError:ru,FRAMEWORK_SHARD_IDS:Au,PERMISSION_DOCUMENTS_BROWSE:Zc,PERMISSION_DOCUMENTS_READ:Qc,PERMISSION_DOCUMENTS_WRITE:eu,PERMISSION_KEYS_MINT:tu,PERMISSION_STATE_MANAGE:mi,PERMISSION_SYNC_PEER:Xm,PERMISSION_SYNC_POLICY:Jm,ScopeEscalationError:nu,VERSION:an,activeShards:Vr,buildPackageMeta:Js,capabilities:r_,clearTokenOverrides:t_,closeTab:Ii,collapseChild:Ug,dockIntoActiveLayout:Ci,expandChild:Bg,fetchBundle:Xs,fetchRegistries:xu,focusTab:Vg,focusView:Ys,getActiveApp:ou,getAuthHeader:Vs,getTokenOverrides:Tu,getUser:qs,inspectActiveLayout:bu,isAdmin:sn,isAuthenticated:Wc,isGuest:Yc,launchApp:Tr,listRegisteredApps:Ti,listVerbs:wi,registerConsentListener:su,registeredShards:Wt,resolveConsent:ja,returnToHome:gu,setTokenOverrides:e_,shell:Vc,spliceIntoActiveLayout:qg,subscribeKeyRevocation:Si,unregisterApp:Ai,validateRegistryIndex:Eu},Symbol.toStringTag,{value:"Module"})),s_="/assets/SH3-BG5NVpSD.png",a_="https://cdn.jsdelivr.net/npm/p5@1.11.13/lib/p5.min.js";let fr=null;function i_(){return fr||(fr=new Promise((e,t)=>{const n=window.p5;if(n){e(n);return}const r=document.createElement("script");r.src=a_,r.async=!0,r.onload=()=>e(window.p5),r.onerror=s=>{fr=null,t(s)},document.head.appendChild(r)}),fr)}var o_=C('<h1 class="shell-title-fallback svelte-1ifjvh5">SH3</h1>'),l_=C('<div class="shell-title svelte-1ifjvh5"></div>');function c_(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(s_,()=>{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 i_().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 $=o_();T(E,$)},m=E=>{var $=l_();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 u_=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>'),d_=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>'),f_=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>'),v_=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>'),h_=C('<p class="shell-home-empty svelte-cpn2x2"><!></p>'),p_=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 m_(e,t){ae(t,!0);let n=j("");const r=G(Ti),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=p_(),d=p(u),f=p(d),v=p(f);c_(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=d_(),R=S(p(L),2);_e(R,21,()=>o(i),P=>P.id,(P,x)=>{var D=u_(),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,()=>Tr(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=v_(),R=S(p(L),2);_e(R,21,()=>o(l),P=>P.id,(P,x)=>{var D=f_(),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,()=>Tr(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=h_(),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 g_=C('<p class="keys-peers-muted svelte-19l5m7c">Loading...</p>'),__=C('<p class="keys-peers-error svelte-19l5m7c"> </p>'),y_=C('<p class="keys-peers-muted svelte-19l5m7c">No keys yet. Shards will ask your permission before creating one.</p>'),b_=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),w_=C('<button type="button" class="keys-peers-btn-danger svelte-19l5m7c">Revoke</button>'),k_=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>'),S_=C('<ul class="keys-peers-list svelte-19l5m7c"></ul>'),E_=C('<div class="keys-peers svelte-19l5m7c"><div class="keys-peers-header svelte-19l5m7c"><h2 class="svelte-19l5m7c">Keys & Peers</h2></div> <!></div>');function x_(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(()=>Si("*",()=>{i()}));var u=E_(),d=S(p(u),2);{var f=k=>{var b=g_();T(k,b)},v=k=>{var b=__(),A=p(b);h(b),q(()=>O(A,`Failed to load: ${o(r)??""}`)),T(k,b)},w=k=>{var b=y_();T(k,b)},y=k=>{var b=S_();_e(b,21,()=>o(n),A=>A.id,(A,m)=>{var E=k_(),$=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=b_(),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=w_();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 T_={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(m_,{target:r});return{unmount(){Xe(a)}}}},n={mount(r,s){const a=Ue(x_,{target:r});return{unmount(){Xe(a)}}}};e.registerView("sh3core:home",t),e.registerView("shell:keys-and-peers",n)},autostart(){}},A_={id:"shell",label:"Shell",version:an,views:[{id:"shell:terminal",label:"Shell",standalone:!0}],permissions:[]},I_=2e3;let R_=0;function C_(){return`e${++R_}`}class $_{#e;get entries(){return o(this.#e)}set entries(t){g(this.#e,t,!0)}constructor(t=I_){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:C_()};this.entries.push(r),this.entries.length>this.cap&&this.entries.splice(0,this.entries.length-this.cap)}clear(){this.entries.length=0}}var P_=C("<pre> </pre>");function D_(e,t){ae(t,!0);const n=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,r=G(()=>t.chunks.join("").replace(n,""));var s=P_();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 L_=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 O_(e,t){var n=L_(),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 M_=C("<div> </div>");function N_(e,t){var n=M_();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 j_=C('<div class="shell-rich svelte-1rnhl05"><!></div>');function z_(e,t){var n=j_(),r=p(n);jr(r,()=>t.component,(s,a)=>{a(s,qr(()=>t.componentProps))}),h(n),T(e,n)}var q_=C('<div class="shell-scrollback svelte-isy3jt"></div>');function V_(e,t){ae(t,!0);let n=j(null);Me(()=>{t.scrollback.entries.length,o(n)&&(o(n).scrollTop=o(n).scrollHeight)});var r=q_();_e(r,21,()=>t.scrollback.entries,s=>s.id,(s,a)=>{var i=vt(),l=ve(i);{var c=v=>{D_(v,{get stream(){return o(a).stream},get chunks(){return o(a).chunks}})},u=v=>{O_(v,{get cwd(){return o(a).cwd},get line(){return o(a).line}})},d=v=>{N_(v,{get text(){return o(a).text},get level(){return o(a).level}})},f=v=>{z_(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 U_=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 B_(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&&Xn(r,-1),g(n,t.history[o(r)]??"",!0))}function c(){o(r)!==null&&(o(r)<t.history.length-1?(Xn(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=U_();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 Oo=[1e3,2e3,5e3,1e4];class F_{#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=Oo[Math.min(this.backoffIndex,Oo.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 H_{list(){return wi()}get(t){return To(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=To(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 K_{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 W_{#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 Y_={id:"dev",label:"Dev",requiresRole:"admin",transport:"ws",autoRelocate:!1},G_={id:"user",label:"User",transport:"none",autoRelocate:!0};function X_(e){e.register(Y_),e.register(G_)}function Ru(e){return`sh3.shell.lastMode.${e}`}function J_(e){try{return globalThis.localStorage?.getItem(Ru(e))??null}catch{return null}}function Z_(e,t){try{globalThis.localStorage?.setItem(Ru(e),t)}catch{}}function Q_(e,t,n){const r=J_(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 ey(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 ty(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 ny=C('<div class="toolbar svelte-gnowwz"><div class="toolbar-slots svelte-gnowwz"></div></div>');function ry(e,t){ae(t,!0);let n=Ht(t,"slotProps",19,()=>({})),r=G(()=>t.registry.list(t.ctx));var s=ny(),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);jr(d,()=>o(c),(f,v)=>{v(f,qr(()=>n()[o(l).id]??{}))}),T(i,u)}),h(a),h(s),T(e,s),ie()}class sy{#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 ay=C('<button type="button"> </button>'),iy=C('<div class="mode-bar svelte-1i4cqlj" role="toolbar" aria-label="Shell mode"></div>'),oy=C('<span class="mode-label svelte-1i4cqlj"> </span>');function ly(e,t){ae(t,!0);let n=G(()=>t.registry.list(t.role));var r=vt(),s=ve(r);{var a=l=>{var c=iy();_e(c,21,()=>o(n),u=>u.id,(u,d)=>{var f=ay();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=oy(),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 cy=C('<button class="focus-lock-btn svelte-1q6gbap"> </button>');function uy(e,t){var n=cy(),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 dy=C('<span class="target-shard svelte-1nn2m6x" title="Target shard"> </span>');function fy(e,t){var n=dy(),r=p(n);h(n),q(()=>O(r,`→ ${t.target??"—"??""}`)),T(e,n)}var vy=C('<div class="shell-terminal svelte-13komre"><!> <!> <!></div>');function hy(e,t){ae(t,!0);const n=new $_,r=new H_,s=new K_,a=new W_;X_(a);let i=j(pe(ke(()=>Q_(a,t.userId,t.role))));function l(I){const _=a.get(I);_&&(_.requiresRole&&_.requiresRole!==t.role||(g(i,_,!0),Z_(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 F_(t.wsUrl)),u=ke(()=>ey({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 sy;w.register({id:"mode",order:10,visible:()=>!0,component:ly}),w.register({id:"focus-lock",order:20,visible:I=>I.mode.id==="user",component:uy}),w.register({id:"target-shard",order:30,visible:I=>I.mode.id==="user",component:fy});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 ty({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;di(()=>{A=c.onMessage(b),o(i).transport==="ws"&&c.connect()}),gc(()=>{A?.(),c.close()});var m=vy(),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)}}));ry(E,{get registry(){return w},get ctx(){return o(I)},get slotProps(){return o(_)}})}var $=S(E,2);V_($,{get scrollback(){return n}});var N=S($,2);B_(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 py=C('<tr><td class="svelte-m248jy"><button type="button" class="svelte-m248jy"> </button></td><td class="svelte-m248jy"> </td></tr>'),my=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 gy(e,t){ae(t,!0);var n=my(),r=p(n),s=S(p(r));_e(s,21,()=>t.data.rows,a=>a.name,(a,i)=>{var l=py(),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 _y(){return{name:"help",summary:"List verbs or show detail for one.",async run(e){const t=wi().map(n=>({name:n.name,summary:n.summary}));e.scrollback.push({kind:"rich",component:gy,props:{data:{rows:t,onClickName:n=>e.dispatch(n)}},ts:Date.now()})}}}const yy={name:"clear",summary:"Clear the scrollback (local only — other views are unaffected).",async run(e){e.scrollback.clear()}};var by=C('<li class="svelte-o8m437"><button type="button" class="svelte-o8m437"> </button></li>'),wy=C('<div class="shell-rich-history svelte-o8m437"><ol class="svelte-o8m437"></ol></div>');function ky(e,t){ae(t,!0);var n=wy(),r=p(n);_e(r,21,()=>t.data.lines,Zn,(s,a)=>{var i=by(),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 Sy={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:ky,props:{data:{lines:r,onClickLine:s=>e.dispatch(s)}},ts:Date.now()})}};var Ey=C('<tr><td class="svelte-1u5krjz"><button type="button" class="svelte-1u5krjz"> </button></td><td class="svelte-1u5krjz"> </td></tr>'),xy=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 Ty(e,t){ae(t,!0);var n=xy(),r=p(n),s=S(p(r));_e(s,21,()=>t.data.apps,a=>a.id,(a,i)=>{var l=Ey(),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 Ay=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 Iy(e,t){ae(t,!0);var n=Ay(),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 Ry={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:Ty,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()})}},Cy={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:Iy,props:{data:{id:t.id,label:t.label,shards:[]}},ts:Date.now()})}};var $y=C('<tr><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td></tr>'),Py=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 Dy(e,t){ae(t,!0);var n=Py(),r=p(n),s=S(p(r));_e(s,21,()=>t.data.shards,a=>a.id,(a,i)=>{var l=$y(),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 Ly={name:"shards",summary:"List active shards.",async run(e){const t=e.shell.listShards();e.scrollback.push({kind:"rich",component:Dy,props:{data:{shards:t}},ts:Date.now()})}};var Oy=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>'),My=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 Ny(e,t){ae(t,!0);var n=My(),r=p(n),s=S(p(r));_e(s,21,()=>t.data.views,a=>a.slotId,(a,i)=>{var l=Oy(),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 jy={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:Ny,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()})}},zy={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()})}},qy={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()})}},Vy={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()})}},Uy={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 By=C('<tr><td class="svelte-1w7onag"> </td><td class="svelte-1w7onag"> </td></tr>'),Fy=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 Hy(e,t){ae(t,!0);var n=Fy(),r=p(n),s=S(p(r));_e(s,21,()=>t.data.rows,a=>a.shardId,(a,i)=>{var l=By(),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 Ky=C('<div class="shell-rich-zonetree svelte-13iiyr1"><pre class="svelte-13iiyr1"> </pre></div>');function Wy(e,t){ae(t,!0);var n=Ky(),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 Yy={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:Hy,props:{data:{rows:n}},ts:Date.now()})}},Gy={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:Wy,props:{data:{value:s}},ts:Date.now()})}};function Xy(e,t){if(t.startsWith("/"))return Jy(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 Jy(e){return e.split("/").filter(t=>t&&t!==".").join("/")}const Zy={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()})}},Qy={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=Xy(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}},eb={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 tb=C('<tr><td class="svelte-1ox8vog"> </td><td class="svelte-1ox8vog"> </td></tr>'),nb=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 rb(e,t){ae(t,!0);var n=nb(),r=p(n),s=S(p(r));_e(s,21,()=>Object.entries(t.data.env),([a,i])=>a,(a,i)=>{var l=G(()=>sl(o(i),2));let c=()=>o(l)[0],u=()=>o(l)[1];var d=tb(),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 sb={name:"env",summary:"Show the session environment.",async run(e){const t=e.session.env;e.scrollback.push({kind:"rich",component:rb,props:{data:{env:t}},ts:Date.now()})}},ab={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()})}},ib={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 ob(e){e.registerVerb(_y()),e.registerVerb(yy),e.registerVerb(Sy),e.registerVerb(Ry),e.registerVerb(Cy),e.registerVerb(Ly),e.registerVerb(jy),e.registerVerb(zy),e.registerVerb(Uy),e.registerVerb(qy),e.registerVerb(Vy),e.registerVerb(Yy),e.registerVerb(Gy),e.registerVerb(Zy),e.registerVerb(Qy),e.registerVerb(sb),e.registerVerb(eb),e.registerVerb(ab),e.registerVerb(ib)}function Cu(e){return e.type==="tabs"?e.tabs.filter(t=>t.viewId!==null):e.type==="split"?e.children.flatMap(Cu):e.viewId!==null?[{slotId:e.slotId,viewId:e.viewId,label:e.viewId}]:[]}function lb(e){return{listApps(){return Ti().map(t=>({id:t.id,label:t.label}))},getActiveApp(){const t=ou();return t?{id:t.id,label:t.label}:null},launchApp(t){Tr(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}=bu();return Cu(t.docked).map(n=>({slotId:n.slotId,viewId:n.viewId??"",label:n.label}))}catch{return[]}},openViewInCurrentLayout(t){try{if(Ys(t))return{ok:!0};const n=Co().find(r=>r.viewId===t);if(n){const r=`standalone:${t}:${Date.now()}`;return Ci({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 Co()},popoutSlot(t){try{const n=Hg(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 Kg(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 Ii(t),{ok:!0}},listZones(t){return[]},readZone(t,n){return null},whoAmI(){return{userId:qs()?.id??"guest",admin:sn()}}}}const cb={manifest:A_,activate(e){if(!e.isAdmin)return;ob(e);const t=lb(),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=qs()?.id??"guest",d=sn()?"admin":"user",f=Ue(hy,{target:r,props:{shell:t,wsUrl:l,userId:u,role:d}});return{unmount(){Xe(f)},closable:!0}}};e.registerView("shell:terminal",n)},autostart(){}},Mo=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 pa(e,t){const n=Object.keys(t),r=n.filter(i=>!Mo.has(i)),s=n.filter(i=>Mo.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 Li=globalThis;Li.__sh3__=Iu;Li.__sh3_svelte__=yc;Li.__sh3_svelte_internal_client__=Dc;const Oi={"sh3-core":pa("__sh3__",Iu),svelte:pa("__sh3_svelte__",yc),"svelte/internal/client":pa("__sh3_svelte_internal_client__",Dc)};Oi["svelte/internal/disclose-version"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));Oi["sh3-core/tokens.css"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));const ub=/(?:from|import)\s*(['"])(sh3-core(?:\/[^'"]*)?|svelte(?:\/[^'"]*)?)\1/g;function db(e){return e.replace(ub,(t,n,r)=>{const s=Oi[r];return s?`${t.startsWith("from")?"from":"import"} '${s}'`:t})}async function Ur(e){const t=new TextDecoder().decode(e),n=db(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;fb(c)?i.shards.push(c):vb(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 fb(e){return"activate"in e&&typeof e.activate=="function"&&Array.isArray(e.manifest.views)}function vb(e){return"initialLayout"in e&&Array.isArray(e.manifest.requiredShards)}const hb="sh3-packages",pb=1,Ir="bundles",tr="meta";function Br(){return new Promise((e,t)=>{const n=indexedDB.open(hb,pb);n.onupgradeneeded=()=>{const r=n.result;r.objectStoreNames.contains(Ir)||r.createObjectStore(Ir),r.objectStoreNames.contains(tr)||r.createObjectStore(tr)},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 $u(e,t,n){const r=await Br();await Ln(r,Ir,"readwrite",s=>s.put(t,e)),await Ln(r,tr,"readwrite",s=>s.put(n,e)),r.close()}async function Pu(e){const t=await Br(),n=await Ln(t,Ir,"readonly",r=>r.get(e));return t.close(),n??null}async function mb(e){const t=await Br(),n=await Ln(t,tr,"readonly",r=>r.get(e));return t.close(),n??null}async function Du(){const e=await Br(),t=await Ln(e,tr,"readonly",n=>n.getAll());return e.close(),t??[]}async function gb(e){const t=await Br();await Ln(t,Ir,"readwrite",n=>n.delete(e)),await Ln(t,tr,"readwrite",n=>n.delete(e)),t.close()}function Mi(e,t){for(const n of e.shards)n.manifest={...n.manifest,version:t.version},Ei(n);for(const n of e.apps)n.manifest={...n.manifest,version:t.version},xi(n)}const _b={"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 ma(e){return _b[e]??{title:e,description:"Unknown permission."}}function Ni(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 ji(e,t,n){if(!t.integrity)return{success:!1,hotLoaded:!1,error:"Missing integrity hash — refusing to install unverified bundle"};try{await $i(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 Ur(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:Ni(r)};try{await $u(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{Us(t.id)}catch{}(t.type==="app"||t.type==="combo")&&Ai(t.id);let a=!0;try{Mi(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 Lu(e){try{Us(e)}catch{}Ai(e),await gb(e)}async function yb(){return Du()}async function bb(){let e;try{e=await Du()}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 Pu(t.id);if(!n){console.warn(`[sh3] No bundle found for installed package "${t.id}", skipping`);continue}const r=await Ur(n);Mi(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 No={version:1};var wb=C('<span class="perm-modal-author svelte-1ipp1r6"> </span>'),kb=C('<p class="perm-modal-empty svelte-1ipp1r6">This package requires no special permissions.</p>'),Sb=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>'),Eb=C('<p class="perm-modal-intro svelte-1ipp1r6">This package requests the following permissions:</p> <ul class="perm-modal-list svelte-1ipp1r6"></ul>',1),xb=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>'),Tb=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),Ab=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>'),Ib=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),Rb=C("<!> <!>",1),Cb=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 Va(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=Cb(),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=wb(),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=kb();T(M,H)},z=M=>{var H=Eb(),X=S(ve(H),2);_e(X,20,n,W=>W,(W,Z)=>{const J=G(()=>ma(Z));var oe=Sb(),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=Rb(),x=ve(P);{var D=H=>{var X=Tb(),W=S(ve(X),2);_e(W,20,r,Z=>Z,(Z,J)=>{const oe=G(()=>ma(J));var se=xb(),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=Ib(),W=S(ve(X),2);_e(W,20,s,Z=>Z,(Z,J)=>{const oe=G(()=>ma(J));var se=Ab(),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 $b=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>'),Pb=C('<div class="store-registries svelte-1aafzt0"></div>'),Db=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>'),Lb=C('<div class="store-error svelte-1aafzt0"> </div>'),Ob=C('<div class="store-error svelte-1aafzt0"> </div>'),Mb=C('<img alt="" class="store-icon-img svelte-1aafzt0"/>'),Nb=C('<span class="store-icon-placeholder svelte-1aafzt0"> </span>'),jb=C('<div class="store-card-warning svelte-1aafzt0"> </div>'),zb=C('<button class="store-update-btn svelte-1aafzt0"> </button>'),qb=C('<span class="store-installed-label svelte-1aafzt0">Installed</span>'),Vb=C('<span class="store-card-missing svelte-1aafzt0"> </span>'),Ub=C('<div class="store-install-wrap svelte-1aafzt0"><button class="store-install-btn svelte-1aafzt0"> </button> <!></div>'),Bb=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>'),Fb=C("No packages found. <!>",1),Hb=C('<div class="store-empty svelte-1aafzt0"><!></div>'),Kb=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 Wb(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(No.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(Au);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 Xs(V.latest,V.sourceRegistry),Ie=Js(V,V.latest),ue=await Ur(ye),Le=Ni(ue);let He;V.latest.serverBundleUrl&&(He=await Pi(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 ki(ze,Ie,Le);if(!ln.ok){g(i,ln.error??"Server install failed",!0);return}const cn=await ji(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=Kb(),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=Pb();_e(U,21,()=>d.env.registries,Zn,(ye,Ie)=>{var ue=$b(),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=Db(),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=Lb(),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=Ob(),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=Bb(),cn=p(ln),bt=p(cn),cr=p(bt);{var Fu=$e=>{var Re=Mb();q(()=>Te(Re,"src",o(U).entry.icon)),T($e,Re)},Hu=$e=>{var Re=Nb(),wt=p(Re,!0);h(Re),q(()=>O(wt,o(U).entry.type==="shard"?"S":"A")),T($e,Re)};K(cr,$e=>{o(U).entry.icon?$e(Fu):$e(Hu,-1)})}h(bt);var Ui=S(bt,2),Qs=p(Ui),Ku=p(Qs,!0);h(Qs);var Kr=S(Qs,2);let Bi;var Wu=p(Kr,!0);h(Kr);var Fi=S(Kr,2),Yu=p(Fi,!0);h(Fi),h(Ui),h(cn);var ea=S(cn,2),Gu=p(ea,!0);h(ea);var ta=S(ea,2),Xu=p(ta,!0);h(ta);var Hi=S(ta,2);{var Ju=$e=>{var Re=jb(),wt=p(Re);h(Re),q(()=>O(wt,`Contract mismatch: package targets v${o(U).latest.contractVersion??""}, running v${No.version}`)),T($e,Re)};K(Hi,$e=>{o(Ie)&&$e(Ju)})}var Ki=S(Hi,2),Zu=p(Ki);{var Qu=$e=>{var Re=zb(),wt=p(Re,!0);h(Re),q(na=>{Re.disabled=o(He),O(wt,na)},[()=>o(He)?"Updating...":`Update ${A(o(U).entry.id)} -> ${o(U).latest.version}`]),Y("click",Re,()=>E(o(U).entry.id)),T($e,Re)},ed=$e=>{var Re=qb();T($e,Re)},td=$e=>{var Re=Ub(),wt=p(Re),na=p(wt,!0);h(wt);var nd=S(wt,2);{var rd=ur=>{var ra=Vb(),sd=p(ra);h(ra),q(ad=>O(sd,`requires: ${ad??""}`),[()=>o(ze).join(", ")]),T(ur,ra)};K(nd,ur=>{o(ze).length>0&&ur(rd)})}h(Re),q(ur=>{wt.disabled=o(ue)||o(ze).length>0,Te(wt,"title",ur),O(na,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(Zu,$e=>{o(ye)&&o(Le)?$e(Qu):o(ye)?$e(ed,1):$e(td,-1)})}h(Ki),h(ln),q(()=>{O(Ku,o(U).entry.label),Bi=Oe(Kr,1,"store-card-badge svelte-1aafzt0",null,Bi,{"badge-shard":o(U).entry.type==="shard","badge-app":o(U).entry.type==="app"}),O(Wu,o(U).entry.type),O(Yu,o(U).latest.version),O(Gu,o(U).entry.description),O(Xu,o(U).entry.author.name)}),T(V,ln)}),h(tt);var on=S(tt,2);{var Fe=V=>{var U=Hb(),ye=p(U);{var Ie=Le=>{var He=Fb(),ze=S(ve(He));{var ln=bt=>{var cr=fn("Add a registry URL above to get started.");T(bt,cr)},cn=bt=>{var cr=fn("No registries configured.");T(bt,cr)};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 Fr=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}));Va(V,{mode:"install",get pkg(){return o(U)},get permissions(){return o(c).permissions},onConfirm:_,onCancel:L})}};K(Fr,V=>{o(c)&&V(yn)})}var Zs=S(Fr,2);{var Hr=V=>{{let U=G(()=>({label:o(u).pkg.entry.label,version:o(u).pkg.latest.version,author:o(u).pkg.entry.author.name}));Va(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(Zs,V=>{o(u)&&V(Hr)})}q(()=>{J.disabled=d.state.ephemeral.loading,O(oe,d.state.ephemeral.loading?"Loading...":"Refresh")}),De(M,()=>o(n),V=>g(n,V)),ps(H,()=>o(r),V=>g(r,V)),Y("click",J,R),T(e,P),ie()}be(["click"]);var Yb=C('<div class="installed-error svelte-1hqclkp"> </div>'),Gb=C('<div class="installed-empty svelte-1hqclkp">No packages installed.</div>'),Xb=C('<button class="installed-update-btn svelte-1hqclkp"> </button>'),Jb=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>'),Zb=C('<ul class="installed-list svelte-1hqclkp"></ul>'),Qb=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 ew(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 Xc(_),await Lu(_),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=Qb(),y=p(w),k=S(p(y),2);h(y);var b=S(y,2);{var A=_=>{var L=Yb(),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=Gb();T(_,L)},$=_=>{var L=Zb();_e(L,21,()=>n.state.ephemeral.installed,R=>R.id,(R,P)=>{const x=G(()=>o(r).has(o(P).id));var D=Jb(),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 Zs=G(()=>n.state.ephemeral.updatable[o(P).id]),Hr=G(()=>o(s).has(o(P).id));var V=Xb(),U=p(V,!0);h(V),q(()=>{V.disabled=o(Hr)||o(x),O(U,o(Hr)?"Updating...":`Update -> ${o(Zs).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),Fr=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(Fr,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}));Va(_,{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 Ou(e){return pn.state.ephemeral.catalog.find(t=>t.entry.id===e)}function zi(e){return pn.state.ephemeral.installed.find(t=>t.id===e)}const tw={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=zi(n);if(r){e.scrollback.push({kind:"status",text:`${n} is already installed (v${r.version})`,level:"warn",ts:Date.now()});return}const s=Ou(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 Xs(s.latest,s.sourceRegistry),i=Js(s,s.latest);let l;s.latest.serverBundleUrl&&(l=await Pi(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 ki(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 ji(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()})}}},nw={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(!zi(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 Xc(n),await Lu(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()})}}},rw={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=zi(n),s=Ou(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 sw(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 aw(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 iw={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&&sw(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 xu(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 sg();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 yb();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 Xs(w.latest,w.sourceRegistry);let b;w.latest.serverBundleUrl&&(b=await Pi(w.latest,w.sourceRegistry));const A=Js(w,w.latest),m=await Ur(k),E=Ni(m);let $=[];try{const D=await mb(f);D?.permissions&&($=D.permissions)}catch{}const{added:N,removed:I}=aw($,E);if((N.length>0||I.length>0)&&v&&!await v(N,I))return;const _=await Pu(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 ki(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 ji(k,A,{loaded:m});if(!x.success){if(_)try{await $u(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(Wb,{target:f});return{unmount(){Xe(w)}}}},d={mount(f,v){const w=Ue(ew,{target:f});return{unmount(){Xe(w)}}}};e.registerView("sh3-store:browse",u),e.registerView("sh3-store:installed",d),e.registerVerb(tw),e.registerVerb(nw),e.registerVerb(rw),a()},autostart(){pn.refreshCatalog()}},ow={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 lw=C('<div class="admin-error svelte-4q792t"> </div>'),cw=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>'),uw=C('<p class="admin-muted svelte-4q792t">Loading...</p>'),dw=C('<p class="admin-error svelte-4q792t"> </p>'),fw=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>'),vw=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),hw=C('<li class="admin-user-item svelte-4q792t"><!></li>'),pw=C('<ul class="admin-user-list svelte-4q792t"></ul>'),mw=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 gw(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 $=mw(),N=p($),I=S(p(N),2),_=p(I,!0);h(I),h(N);var L=S(N,2);{var R=M=>{var H=cw(),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=lw(),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)),ps(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=uw();T(M,H)},D=M=>{var H=dw(),X=p(H,!0);h(H),q(()=>O(X,o(s))),T(M,H)},z=M=>{var H=pw();_e(H,21,()=>o(n),X=>X.id,(X,W)=>{var Z=hw(),J=p(Z);{var oe=ne=>{var me=fw(),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)),ps(re,()=>o(w),Fe=>g(w,Fe)),Y("click",on,()=>{g(f,null)}),T(ne,me)},se=ne=>{var me=vw(),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 _w=C('<p class="admin-muted svelte-1hsgdb4">Loading...</p>'),yw=C('<div class="admin-error svelte-1hsgdb4"> </div>'),bw=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),ww=C('<div class="admin-auth svelte-1hsgdb4"><h2 class="svelte-1hsgdb4">Auth Settings</h2> <!></div>');function kw(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=ww(),u=S(p(c),2);{var d=v=>{var w=_w();T(v,w)},f=v=>{var w=bw(),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=yw(),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")}),ts(b,()=>o(n).auth.required,x=>o(n).auth.required=x),ts(m,()=>o(n).auth.guestAllowed,x=>o(n).auth.guestAllowed=x),ts($,()=>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 Sw=C('<button type="button"> </button>'),Ew=C('<div class="admin-error svelte-1gkiloq"> </div>'),xw=C('<div class="admin-error svelte-1gkiloq"> </div>'),Tw=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 Aw(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=Tw(),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=Sw();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=Ew(),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=xw(),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 Iw=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>`),Rw=C('<div class="admin-error svelte-1afg5z5"> </div>'),Cw=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>'),$w=C('<p class="admin-muted svelte-1afg5z5">Loading...</p>'),Pw=C('<p class="admin-error svelte-1afg5z5"> </p>'),Dw=C('<p class="admin-muted svelte-1afg5z5">No API keys. Create one to enable external access.</p>'),Lw=C('<button type="button" class="admin-btn-danger svelte-1afg5z5">Confirm</button> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Cancel</button>',1),Ow=C('<button type="button" class="admin-btn-danger svelte-1afg5z5">Revoke</button>'),Mw=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>'),Nw=C('<ul class="admin-key-list svelte-1afg5z5"></ul>'),jw=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 zw(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=jw(),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=Iw(),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=Cw(),z=p(D);xe(z);var M=S(z,2),H=S(M,2);{var X=W=>{var Z=Rw(),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=$w();T(x,D)},L=x=>{var D=Pw(),z=p(D,!0);h(D),q(()=>O(z,o(s))),T(x,D)},R=x=>{var D=Dw();T(x,D)},P=x=>{var D=Nw();_e(D,21,()=>o(n),z=>z.id,(z,M)=>{var H=Mw(),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=Lw(),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=Ow();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 qw={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(gw,{target:a});return{unmount(){Xe(l)}}}},n={mount(a,i){const l=Ue(kw,{target:a});return{unmount(){Xe(l)}}}},r={mount(a,i){const l=Ue(Aw,{target:a});return{unmount(){Xe(l)}}}},s={mount(a,i){const l=Ue(zw,{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)}},Vw={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"}]}},Uw={id:"terminal",label:"Terminal",version:an,requiredShards:["shell"],layoutVersion:1},Bw={manifest:Uw,initialLayout:{type:"slot",slotId:"terminal.main",viewId:"shell:terminal"}},jo="sh3:migrations:shell-rename:done",zo="__shell__:",Fw="__sh3core__:",qo="sh3:user:__shell__:theme",Vo="sh3:user:__sh3core__:theme";function Hw(e,t){if(t.getItem(jo))return;const n=t.getItem(qo);n!==null&&t.getItem(Vo)===null&&(t.setItem(Vo,n),t.removeItem(qo));for(const r of e.keys()){if(!r.startsWith(zo))continue;const s=Fw+r.slice(zo.length),a=e.read(r);e.write(s,a),e.delete(r)}t.setItem(jo,"1")}function Kw(e){Ei(e)}function Ww(){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 Yw(e){typeof globalThis.localStorage<"u"&&Hw(Ww(),globalThis.localStorage);const t=new Set(e?.excludeShards),n=[T_,cb,iw,qw];for(const a of n)t.has(a.manifest.id)||Ei(a);const r=[ow,Vw,Bw];for(const a of r)xi(a);await bb();for(const[a,i]of Wt)i.autostart&&await iu(a);const s=Mg();s&&Dn.has(s)&&await Tr(s)}var Gw=C('<button type="button" aria-label="Expand pane"><span class="collapse-icon"> </span></button>'),Xw=C('<button type="button" aria-label="Collapse pane"><span class="collapse-icon"> </span></button>'),Jw=C('<!> <div class="pane-content svelte-1adl4o1"><!></div>',1),Zw=C('<div role="separator"></div>'),Qw=C("<div><!></div> <!>",1),ek=C("<div></div>");function tk(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=ek();let w;_e(v,21,()=>Array(t.count),Zn,(y,k,b)=>{var A=Qw(),m=ve(A);let E;var $=p(m);{var N=P=>{var x=Gw();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=Jw(),D=ve(x);{var z=X=>{var W=Xw();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);ui(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=Zw();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 nk(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 rk=C('<span class="tab-dirty svelte-1kxcyhf" title="Unsaved changes"></span>'),sk=C('<span class="tab-icon svelte-1kxcyhf"> </span>'),ak=C('<span class="tab-close svelte-1kxcyhf" role="button" tabindex="-1" title="Close">✕</span>'),ik=C('<button type="button" role="tab"><!> <!> <span class="tab-label svelte-1kxcyhf"> </span> <!></button>'),ok=C('<div class="drop-indicator svelte-1kxcyhf"></div>'),lk=C("<div><!></div>"),ck=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 uk(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=ck(),f=p(d),v=p(f);_e(v,17,()=>t.labels,Zn,(b,A,m)=>{var E=ik();let $;var N=p(E);{var I=z=>{var M=rk();T(z,M)};K(N,z=>{t.dirty?.[m]&&z(I)})}var _=S(N,2);{var L=z=>{var M=sk(),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=ak();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(()=>nk(o(i),a,o(s)));var m=vt(),E=ve(m);{var $=N=>{var I=ok();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,Zn,(b,A,m)=>{var E=lk();let $;var N=p(E);ui(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 dk=C('no factory for <code class="svelte-1czj0s8"> </code>',1),fk=C("<em>empty slot</em>"),vk=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>'),hk=C('<div class="slot svelte-1czj0s8"><!></div>');function Uo(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?!!Bc(t.node.viewId):!1);Me(()=>{if(!o(r))return;const d=t.node.slotId,f=lu(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(),cu(d)}});var l=hk(),c=p(l);{var u=d=>{var f=vk(),v=p(f),w=p(v,!0);h(v);var y=S(v,2),k=p(y);{var b=$=>{var N=dk(),I=S(ve(N)),_=p(I,!0);h(I),q(()=>O(_,t.node.viewId)),T($,N)},A=$=>{var N=fk();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 Mu=0;function pk(){return performance.now()<Mu}const Bo=4;let Nu=0,ju=0;function mk(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,Nu=r.clientX,ju=r.clientY,gk()}function gk(){window.addEventListener("pointermove",zu,!0),window.addEventListener("pointerup",qu,!0),window.addEventListener("pointercancel",Vu,!0),document.body.style.userSelect="none",document.body.dataset.dragging=""}function _k(){window.removeEventListener("pointermove",zu,!0),window.removeEventListener("pointerup",qu,!0),window.removeEventListener("pointercancel",Vu,!0),document.body.style.userSelect="",delete document.body.dataset.dragging}function zu(e){if(ce.pointerX=e.clientX,ce.pointerY=e.clientY,ce.phase==="pending"){const t=e.clientX-Nu,n=e.clientY-ju;t*t+n*n>=Bo*Bo&&(ce.phase="dragging")}}function qu(e){ce.phase==="dragging"&&(yk(),Mu=performance.now()+50),Uu()}function Vu(e){Uu()}function Fo(e){const t=Qn.tree;if(e.kind==="docked")return t.docked;const n=t.floats.find(r=>r.id===e.floatId);return n?n.content:null}function Ho(e){if(e.kind!=="float")return;const t=Qn.tree,n=t.floats.findIndex(r=>r.id===e.floatId);n<0||qc(t.floats[n].content)&&t.floats.splice(n,1)}function yk(){const{source:e,target:t}=ce;if(!e||!t)return;const n=Fo(e.sourceRoot),r=Fo(t.root);if(!n||!r)return;if(t.kind==="strip"){const a=t.tabsNode.tabs.findIndex(i=>i.slotId===e.slotId);if(a>=0){jg(t.tabsNode,a,t.insertIndex),Hn(n),r!==n&&Hn(r),Ho(e.sourceRoot);return}}const s=Ws(n,e.slotId);s&&(t.kind==="strip"?Ng(t.tabsNode,s,t.insertIndex):_u(r,t.path,s,t.side),Hn(n),r!==n&&Hn(r),Ho(e.sourceRoot))}function Uu(){ce.phase="idle",ce.source=null,ce.target=null,_k()}function Ua(e){ce.phase==="dragging"&&(ce.target=e)}function br(e){ce.phase==="dragging"&&ce.target&&(e&&!e(ce.target)||(ce.target=null))}var bk=C("<div></div>"),wk=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),kk=C("<div><!> <!></div>");function Ko(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),br(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};Ua(A)}}function l(){o(r)!==null&&(g(r,null),br(y=>y.kind==="split"&&y.path.join("/")===t.path.join("/")))}var c=kk();let u;var d=p(c);{var f=y=>{var k=bk();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=wk();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 Sk=C('<div class="tab-slot-wrapper svelte-1gw9g38"><!> <!></div>'),Ek=C('<div class="empty-tabs-custom svelte-1gw9g38"></div>'),xk=C('<div class="empty-tabs-default svelte-1gw9g38"><div class="empty-tabs-drop svelte-1gw9g38"></div></div>'),Tk=C('<div class="empty-tabs-placeholder svelte-1gw9g38"><!></div>'),Ak=C('<div class="leaf-slot-wrapper svelte-1gw9g38"><!> <!></div>');function qi(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=Qn.root:m=Qn.tree.floats.find($=>$.id===r().floatId)?.content??null,m?Ss(m,n()):null});function a(m){return{get isDragging(){return ce.phase==="dragging"},onPointerDown(E,$,N){const I=m.tabs[E];I&&mk(I.slotId,I,r(),$,N)},onStripHover(E,$,N,I){if(N<E.top||N>E.bottom)return br(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 Ua({kind:"strip",root:r(),tabsNode:m,insertIndex:_}),_},onStripLeave(){br(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=>Eg(E.slotId)||void 0)}function d(m){return m.map(E=>Sg(E.slotId)||void 0)}function f(m,E){const $=m[E];$&&Ii($.slotId)}function v(m,E){E(m)}function w(m,E){ce.phase==="dragging"&&Ua({kind:"strip",root:r(),tabsNode:E,insertIndex:0})}function y(){br(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()]);qi(x,{get rootRef(){return r()},get path(){return o(z)}})}},P=G(()=>i(o(s)));tk(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=Sk(),B=p(fe);{let de=G(()=>({type:"slot",slotId:o(J).slotId,viewId:o(J).viewId}));Uo(B,{get node(){return o(de)},get label(){return o(J).label}})}var re=S(B,2);Ko(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));uk(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 pk},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=Tk(),X=p(H);{var W=J=>{var oe=Ek();Ec(oe,(se,ne)=>v?.(se,ne),()=>o(R).emptyRenderer),T(J,oe)},Z=J=>{var oe=xk(),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=Ak(),x=p(P);Uo(x,{get node(){return o(R)}});var D=S(x,2);Ko(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 Ik=C('<span class="drag-preview-icon svelte-133fiip"> </span>'),Rk=C('<div class="drag-preview svelte-133fiip"><!> <span class="drag-preview-label svelte-133fiip"> </span></div>');function Ck(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=Rk(),y=p(w);{var k=m=>{var E=Ik(),$=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 $k=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 Pk(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=$k();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}));qi(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 Dk=C('<div class="sh3-float-layer svelte-1rzcset"></div>');function Lk(e,t){ae(t,!0);const n=G(()=>Qn.floats);var r=Dk();_e(r,21,()=>o(n),s=>s.id,(s,a)=>{Pk(s,{get entry(){return o(a)}})}),h(r),T(e,r),ie()}const Wo="/assets/icons-CnAqUqbR.svg";var Ok=C('<div class="guest-signin-error svelte-pymkh"> </div>'),Mk=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>'),Nk=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),jk=C('<div class="guest-banner-slot"><!></div>');function zk(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 Kc(o(r).trim(),o(s).trim());g(i,!1),v.ok?g(n,!1):g(a,v.error,!0)}var c=jk(),u=p(c);{var d=v=>{var w=Nk(),y=ve(w),k=S(p(y),2);h(y);var b=S(y,2);{var A=m=>{var E=Mk(),$=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=Ok(),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(()=>Yc());K(u,v=>{o(f)&&v(d)})}h(c),T(e,c),ie()}be(["click"]);var qk=C('<code class="sh3-consent-scope svelte-14me5sj"> </code>'),Vk=C('<dt class="svelte-14me5sj">Peer</dt> <dd class="svelte-14me5sj"> </dd>',1),Uk=C('<dt class="svelte-14me5sj">Expires in</dt> <dd class="svelte-14me5sj"> </dd>',1),Bk=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 Fk(e,t){ae(t,!0);let n=j(null);Me(()=>su(u=>{g(n,u,!0)}));function r(){o(n)&&(ja(o(n).requestId,!0),g(n,null))}function s(){o(n)&&(ja(o(n).requestId,!1),g(n,null))}var a=vt(),i=ve(a);{var l=c=>{var u=Bk(),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=qk(),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=Vk(),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=Uk(),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);ti(_,!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 Hk=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>'),Kk=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>'),Wk=C('<div class="shell-overlay-root svelte-187fra4"><!></div>'),Yk=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 Gk(e,t){ae(t,!0);const n=G(Wc),r=G(qs),s=G(sn),a=G(()=>hu()==="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&&Gp($,N)}return()=>{for(const{name:$}of i)Xp($)}}),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(),Ys("shell:terminal")||Lt.open("shell:terminal",{title:"Shell"})}return window.addEventListener("keydown",$),()=>window.removeEventListener("keydown",$)}),Me(()=>{const $=Qn.tree;return ym($.floats,()=>({w:window.innerWidth,h:window.innerHeight})),()=>bm()}),Me(()=>hg());var c=Yk(),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=Kk(),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=Hk(),H=p(M),X=p(H);h(H),h(M),q(()=>Te(X,"href",`${Wo}#log-out`)),Y("click",M,()=>Qm()),T(z,M)},D=G(()=>!tg());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);zk(k,{});var b=S(k,2),A=p(b);qi(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=Wk(),R=p(L);{var P=D=>{Lk(D,{})},x=D=>{Ck(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);Fk(E,{}),h(c),q(()=>{d.disabled=o(a),Te(v,"href",`${Wo}#house`)}),Y("click",d,()=>gu()),T(e,c),ie()}be(["click"]);const Xk="modulepreload",Jk=function(e){return"/"+e},Yo={},Zk=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=Jk(c),c in Yo)return;Yo[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":Xk,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 Qk(){try{const{TauriStoreBackend:e}=await Zk(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:el}}}var e1=C('<button type="button" class="signin-link svelte-lh4k15">Create an account</button>'),t1=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),n1=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),r1=C('<div class="signin-error svelte-lh4k15"> </div>'),s1=C('<div class="signin-wall svelte-lh4k15"><div class="signin-card svelte-lh4k15"><h1 class="signin-brand svelte-lh4k15">SH3</h1> <!> <!></div></div>');function a1(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 Kc(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 Zm(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=s1(),v=p(f),w=S(p(v),2);{var y=m=>{var E=t1(),$=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=e1();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=n1(),$=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=r1(),$=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 i1(e){const t=e?.serverUrl??"",n=await Qk();n.backends&&(bo("workspace",n.backends.workspace),bo("user",n.backends.user)),n.localOwner&&eg(),Gc(t),n_();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)ha("local");else if(s){Io(t,s),ha(s.tenantId);const{auth:i,session:l}=s;if(!l&&i.required&&!i.guestAllowed){await o1(r,s);const c=await fetch(`${t}/api/boot`,{credentials:"include"});c.ok&&(s=await c.json(),Io(t,s),ha(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 Ur(c);Mi(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)Kw(i);if(e?.apps)for(const i of e.apps)xi(i);const a={};e?.excludeShards&&(a.excludeShards=e.excludeShards),await Yw(a),Ue(Gk,{target:r})}function o1(e,t){return new Promise(n=>{const r=Ue(a1,{target:e,props:{selfRegistration:t.auth.selfRegistration,onSuccess:()=>{Xe(r),n()}}})})}const Vi=window.location.origin;Gc(Vi);Gm(new Bm(Vi));let Bu=[];try{const e=await fetch("/api/packages");e.ok&&(Bu=await e.json())}catch{}await i1({discoveredPackages:Bu,serverUrl:Vi});
|
|
17
|
+
//# sourceMappingURL=index-DDKxaq3o.js.map
|