sh3-server 0.7.5 → 0.8.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 rf=1,sf=2,Wo=4,af=8,of=16,lf=1,Ko=4,cf=8,uf=16,ff=1,df=2,vf=4,Ba=1,Go=2,hf=4,pf=8,ys="[",ws="[!",Bi="[?",ks="]",bn={},we=Symbol(),at=Symbol("filename"),$n=Symbol("hmr"),Yo="http://www.w3.org/1999/xhtml",Ar="http://www.w3.org/2000/svg",Fa="http://www.w3.org/1998/Math/MathML",Xo="@attach",Jo=!1;var Yn=Array.isArray,gf=Array.prototype.indexOf,Vn=Array.prototype.includes,Ss=Array.from,rs=Object.keys,yn=Object.defineProperty,It=Object.getOwnPropertyDescriptor,Zo=Object.getOwnPropertyDescriptors,Qo=Object.prototype,mf=Array.prototype,xs=Object.getPrototypeOf,Fi=Object.isExtensible,_f=Object.prototype.hasOwnProperty;function Dn(e){return typeof e=="function"}const it=()=>{};function Hi(e){return typeof e?.then=="function"}function bf(e){return e()}function ma(e){for(var t=0;t<e.length;t++)e[t]()}function el(){var e,t,n=new Promise((r,s)=>{e=r,t=s});return{promise:n,resolve:e,reject:t}}function yf(e,t,n=!1){return e===void 0?n?t():t:e}function tl(e,t){if(Array.isArray(e))return e;if(t===void 0||!(Symbol.iterator in e))return Array.from(e);const n=[];for(const r of e)if(n.push(r),n.length===t)break;return n}function wf(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 Me=2,wn=4,Tr=8,Ha=1<<24,At=16,Rt=32,Kt=64,_a=128,_t=512,$e=1024,Ne=2048,Ct=4096,He=8192,Qe=16384,Yt=32768,ba=1<<25,$t=65536,mr=1<<17,nl=1<<18,cn=1<<19,rl=1<<20,Mt=1<<25,kn=65536,ya=1<<21,Un=1<<22,tn=1<<23,Ve=Symbol("$state"),Es=Symbol("legacy props"),kf=Symbol(""),Sf=Symbol("proxy path"),xf=Symbol("hmr anchor"),Ot=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},Tn=!!globalThis.document?.contentType&&globalThis.document.contentType.includes("xml"),sl=1,Rr=3,Xt=8,al=11;function il(e){throw new Error("https://svelte.dev/e/experimental_async_required")}function Ef(){throw new Error("https://svelte.dev/e/invalid_default_snippet")}function Wi(){throw new Error("https://svelte.dev/e/invalid_snippet_arguments")}function Xn(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function If(){throw new Error("https://svelte.dev/e/missing_context")}function Af(){throw new Error("https://svelte.dev/e/snippet_without_render_tag")}function Tf(e){throw new Error("https://svelte.dev/e/store_invalid_shape")}function Rf(){throw new Error("https://svelte.dev/e/svelte_element_invalid_this_value")}function Cf(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function $f(e,t){throw new Error("https://svelte.dev/e/component_api_changed")}function Df(e,t){throw new Error("https://svelte.dev/e/component_api_invalid_new")}function Pf(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Lf(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Of(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Nf(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Mf(){throw new Error("https://svelte.dev/e/effect_pending_outside_reaction")}function zf(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function jf(){throw new Error("https://svelte.dev/e/fork_discarded")}function qf(){throw new Error("https://svelte.dev/e/fork_timing")}function Vf(){throw new Error("https://svelte.dev/e/get_abort_signal_outside_reaction")}function Uf(){throw new Error("https://svelte.dev/e/hydration_failed")}function ol(e){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}function Bf(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Ff(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Hf(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Wf(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Kf(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}function Gf(e,t){console.warn("https://svelte.dev/e/assignment_value_stale")}function Yf(e,t){console.warn("https://svelte.dev/e/binding_property_non_reactive")}function Xf(e){console.warn("https://svelte.dev/e/console_log_state")}function Jf(){console.warn("https://svelte.dev/e/derived_inert")}function Zf(e,t){console.warn("https://svelte.dev/e/event_handler_invalid")}function Qf(e){console.warn("https://svelte.dev/e/hydratable_missing_but_expected")}function Cr(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function ed(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_binding")}function td(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_mutation")}function nd(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function ll(e){console.warn("https://svelte.dev/e/state_proxy_equality_mismatch")}function rd(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let U=!1;function me(e){U=e}let G;function he(e){if(e===null)throw Cr(),bn;return G=e}function Ge(){return he(ut(G))}function p(e){if(U){if(ut(G)!==null)throw Cr(),bn;G=e}}function sd(e){U&&(G=e.content)}function nn(e=1){if(U){for(var t=e,n=G;t--;)n=ut(n);G=n}}function Sn(e=!0){for(var t=0,n=G;;){if(n.nodeType===Xt){var r=n.data;if(r===ks){if(t===0)return n;t-=1}else(r===ys||r===ws||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var s=ut(n);e&&n.remove(),n=s}}function Wa(e){if(!e||e.nodeType!==Xt)throw Cr(),bn;return e.data}function cl(e){return e===this.v}function ul(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function fl(e){return!ul(e,this.v)}let ad=!1;function id(e){console.warn("https://svelte.dev/e/dynamic_void_element_content")}const od=[];function xn(e,t=!1,n=!1){return Hr(e,new Map,"",od,null,n)}function Hr(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(Yn(e)){var o=Array(e.length);t.set(e,o),s!==null&&t.set(s,o);for(var l=0;l<e.length;l+=1){var u=e[l];l in e&&(o[l]=Hr(u,t,n,r,null,a))}return o}if(xs(e)===Qo){o={},t.set(e,o),s!==null&&t.set(s,o);for(var f of Object.keys(e))o[f]=Hr(e[f],t,n,r,null,a);return o}if(e instanceof Date)return structuredClone(e);if(typeof e.toJSON=="function"&&!a)return Hr(e.toJSON(),t,n,r,e)}if(e instanceof EventTarget)return e;try{return structuredClone(e)}catch{return e}}let Rn=null;function dl(e,t){const n=e.v;if(n===we)return;const r=ld(e),s=re,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&&Ve in n?xn(n,!0):n),r==="$derived"){const l=new Set(e.deps);for(const u of l)dl(u)}if(e.created&&console.log(e.created),a&&e.updated)for(const l of e.updated.values())l.error&&console.log(l.error);if(t)for(var o of t.traces)console.log(o);console.groupEnd()}function ld(e){return e.f&(Me|Un)?"$derived":e.label?.startsWith("$")?"store":"$state"}function cd(e,t){var n=Rn;try{Rn={entries:new Map,reaction:re};var r=performance.now(),s=t(),a=(performance.now()-r).toFixed(2),i=_e(e);if(!Or())console.log(`${i} %cran outside of an effect (${a}ms)`,"color: grey");else if(Rn.entries.size===0)console.log(`${i} %cno reactive dependencies (${a}ms)`,"color: grey");else{console.group(`${i} %c(${a}ms)`,"color: grey");var o=Rn.entries;_e(()=>{for(const[l,u]of o)dl(l,u)}),Rn=null,console.groupEnd()}return s}finally{Rn=n}}function ud(e,t){return e.label=t,vl(e.v,t),e}function vl(e,t){return e?.[Sf]?.(t),e}function fd(e){const t=new Error,n=dd();return n.length===0?null:(n.unshift(`
2
+ `),yn(t,"stack",{value:n.join(`
3
+ `)}),yn(t,"name",{value:e}),t)}function dd(){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 ue=null;function Bn(e){ue=e}let Wr=null;function vd(e,t,n,r,s,a){const i=Wr;Wr={type:t,file:n[at],line:r,column:s,parent:i,...a};try{return e()}finally{Wr=i}}let Ka=null;function Ki(e){Ka=e}function hd(){const e={};return[()=>(gl(e)||If(),hl(e)),t=>pl(e,t)]}function hl(e){return Is().get(e)}function pl(e,t){return Is().set(e,t),t}function gl(e){return Is().has(e)}function pd(){return Is()}function ee(e,t=!1,n){ue={p:ue,i:!1,c:null,e:null,s:e,x:null,r:Y,l:null}}function te(e){var t=ue,n=t.e;if(n!==null){t.e=null;for(var r of n)Hl(r)}return e!==void 0&&(t.x=e),t.i=!0,ue=t.p,e??{}}function ml(){return!0}function Is(e){return ue===null&&Xn(),ue.c??=new Map(gd(ue)||void 0)}function gd(e){let t=e.p;for(;t!==null;){const n=t.c;if(n!==null)return n;t=t.p}return null}let hn=[];function _l(){var e=hn;hn=[],ma(e)}function We(e){if(hn.length===0&&!qn){var t=hn;queueMicrotask(()=>{t===hn&&_l()})}hn.push(e)}function md(){for(;hn.length>0;)_l()}function bl(e){var t=Y;if(t===null)return re.f|=tn,e;if(!(t.f&Yt)&&!(t.f&wn))throw e;zt(e,t)}function zt(e,t){for(;t!==null;){if(t.f&_a){if(!(t.f&Yt))throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const _d=-7169;function xe(e,t){e.f=e.f&_d|t}function Ga(e){e.f&_t||e.deps===null?xe(e,$e):xe(e,Ct)}function yl(e){if(e!==null)for(const t of e)!(t.f&Me)||!(t.f&kn)||(t.f^=kn,yl(t.deps))}function wl(e,t,n){e.f&Ne?t.add(e):e.f&Ct&&n.add(e),yl(e.deps),xe(e,$e)}function kl(e,t,n){if(e==null)return t(void 0),it;const r=_e(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}function bd(e){let t;return kl(e,n=>t=n)(),t}let wa=!1,or=!1,ka=Symbol();function yd(e,t,n){const r=n[t]??={store:null,source:Rs(void 0),unsubscribe:it};if(r.store!==e&&!(ka in n))if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=it;else{var s=!0;r.unsubscribe=kl(e,a=>{s?r.source.v=a:b(r.source,a)}),s=!1}return e&&ka in n?bd(e):c(r.source)}function wd(e,t,n){let r=n[t];return r&&r.store!==e&&(r.unsubscribe(),r.unsubscribe=it),e}function Sl(e,t){return As(e,t),t}function kd(e,t){var n=e[t];n.store!==null&&Sl(n.store,n.source.v)}function Sd(){const e={};function t(){dt(()=>{for(var n in e)e[n].unsubscribe();yn(e,ka,{enumerable:!1,value:!0})})}return[e,t]}function As(e,t){wa=!0;try{e.set(t)}finally{wa=!1}}function xd(e,t,n){return As(e,n),t}function Ed(e,t,n=1){return As(e,t+n),t}function Id(e,t,n=1){const r=t+n;return As(e,r),r}function Ad(){or=!0}function xl(e){var t=or;try{return or=!1,[e(),or]}finally{or=t}}const Ht=new Set;let J=null,Fe=null,Sa=null,qn=!1,ra=!1,Nn=null,Kr=null;var Gi=0;let Td=1;class wt{id=Td++;current=new Map;previous=new Map;#e=new Set;#t=new Set;#n=new Set;#a=new Map;#r=new Map;#i=null;#s=[];#o=[];#l=new Set;#u=new Set;#c=new Map;#d=new Set;is_fork=!1;#h=!1;#v=new Set;#f(){return this.is_fork||this.#r.size>0}#_(){for(const r of this.#v)for(const s of r.#r.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.#d.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)xe(s,Ne),n(s);for(s of r.m)xe(s,Ct),n(s)}this.#d.add(t)}#p(){if(Gi++>1e3&&(Ht.delete(this),Rd()),!this.#f()){for(const o of this.#l)this.#u.delete(o),xe(o,Ne),this.schedule(o);for(const o of this.#u)xe(o,Ct),this.schedule(o)}const t=this.#s;this.#s=[],this.apply();var n=Nn=[],r=[],s=Kr=[];for(const o of t)try{this.#m(o,n,r)}catch(l){throw Tl(o),l}if(J=null,s.length>0){var a=wt.ensure();for(const o of s)a.schedule(o)}if(Nn=null,Kr=null,this.#f()||this.#_()){this.#g(r),this.#g(n);for(const[o,l]of this.#c)Al(o,l)}else{this.#a.size===0&&Ht.delete(this),this.#l.clear(),this.#u.clear();for(const o of this.#e)o(this);this.#e.clear(),Yi(r),Yi(n),this.#i?.resolve()}var i=J;if(this.#s.length>0){const o=i??=this;o.#s.push(...this.#s.filter(l=>!o.#s.includes(l)))}i!==null&&(Ht.add(i),i.#p())}#m(t,n,r){t.f^=$e;for(var s=t.first;s!==null;){var a=s.f,i=(a&(Rt|Kt))!==0,o=i&&(a&$e)!==0,l=o||(a&He)!==0||this.#c.has(s);if(!l&&s.fn!==null){i?s.f^=$e:a&wn?n.push(s):Jn(s)&&(a&At&&this.#u.add(s),In(s));var u=s.first;if(u!==null){s=u;continue}}for(;s!==null;){var f=s.next;if(f!==null){s=f;break}s=s.parent}}}#g(t){for(var n=0;n<t.length;n+=1)wl(t[n],this.#l,this.#u)}capture(t,n,r=!1){t.v!==we&&!this.previous.has(t)&&this.previous.set(t,t.v),t.f&tn||(this.current.set(t,[n,r]),Fe?.set(t,n)),this.is_fork||(t.v=n)}activate(){J=this}deactivate(){J=null,Fe=null}flush(){try{ra=!0,J=this,this.#p()}finally{Gi=0,Sa=null,Nn=null,Kr=null,ra=!1,J=null,Fe=null,gn.clear()}}discard(){for(const t of this.#t)t(this);this.#t.clear(),this.#n.clear(),Ht.delete(this)}register_created_effect(t){this.#o.push(t)}#b(){for(const f of Ht){var t=f.id<this.id,n=[];for(const[v,[d,w]]of this.current){if(f.current.has(v)){var r=f.current.get(v)[0];if(t&&d!==r)f.current.set(v,[d,w]);else continue}n.push(v)}var s=[...f.current.keys()].filter(v=>!this.current.has(v));if(s.length===0)t&&f.discard();else if(n.length>0){if(t)for(const v of this.#d)f.unskip_effect(v,d=>{d.f&(At|Un)?f.schedule(d):f.#g([d])});f.activate();var a=new Set,i=new Map;for(var o of n)El(o,s,a,i);i=new Map;var l=[...f.current.keys()].filter(v=>this.current.has(v)?this.current.get(v)[0]!==v:!0);for(const v of this.#o)!(v.f&(Qe|He|mr))&&Ya(v,l,i)&&(v.f&(Un|At)?(xe(v,Ne),f.schedule(v)):f.#l.add(v));if(f.#s.length>0){f.apply();for(var u of f.#s)f.#m(u,[],[]);f.#s=[]}f.deactivate()}}for(const f of Ht)f.#v.has(this)&&(f.#v.delete(this),f.#v.size===0&&!f.#f()&&(f.activate(),f.#p()))}increment(t,n){let r=this.#a.get(n)??0;if(this.#a.set(n,r+1),t){let s=this.#r.get(n)??0;this.#r.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.#r.get(n)??0;a===1?this.#r.delete(n):this.#r.set(n,a-1)}this.#h||r||(this.#h=!0,We(()=>{this.#h=!1,this.flush()}))}transfer_effects(t,n){for(const r of t)this.#l.add(r);for(const r of n)this.#u.add(r);t.clear(),n.clear()}oncommit(t){this.#e.add(t)}ondiscard(t){this.#t.add(t)}on_fork_commit(t){this.#n.add(t)}run_fork_commit_callbacks(){for(const t of this.#n)t(this);this.#n.clear()}settled(){return(this.#i??=el()).promise}static ensure(){if(J===null){const t=J=new wt;ra||(Ht.add(J),qn||We(()=>{J===t&&t.flush()}))}return J}apply(){{Fe=null;return}}schedule(t){if(Sa=t,t.b?.is_pending&&t.f&(wn|Tr|Ha)&&!(t.f&Yt)){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var r=n.f;if(Nn!==null&&n===Y&&(re===null||!(re.f&Me))&&!wa)return;if(r&(Kt|Rt)){if(!(r&$e))return;n.f^=$e}}this.#s.push(n)}}function sn(e){var t=qn;qn=!0;try{var n;for(e&&(J!==null&&!J.is_fork&&J.flush(),n=e());;){if(md(),J===null)return n;J.flush()}}finally{qn=t}}function Rd(){try{zf()}catch(e){zt(e,Sa)}}let Wt=null;function Yi(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&(Qe|He))&&Jn(r)&&(Wt=new Set,In(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Jl(r),Wt?.size>0)){gn.clear();for(const s of Wt){if(s.f&(Qe|He))continue;const a=[s];let i=s.parent;for(;i!==null;)Wt.has(i)&&(Wt.delete(i),a.push(i)),i=i.parent;for(let o=a.length-1;o>=0;o--){const l=a[o];l.f&(Qe|He)||In(l)}}Wt.clear()}}Wt=null}}function El(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&Me?El(s,t,n,r):a&(Un|At)&&!(a&Ne)&&Ya(s,t,r)&&(xe(s,Ne),Xa(s))}}function Il(e,t){if(e.reactions!==null)for(const n of e.reactions){const r=n.f;r&Me?Il(n,t):r&mr&&(xe(n,Ne),t.add(n))}}function Ya(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(Vn.call(t,s))return!0;if(s.f&Me&&Ya(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function Xa(e){J.schedule(e)}let ss=[];function Cd(){sn(()=>{const e=ss;ss=[];for(const t of e)Fn(t)})}function $d(e){var t=ct(0),n=!0,r=void 0;return c(t),Kl(()=>{if(n){var s=Fe;try{Fe=null,r=e()}finally{Fe=s}return}ss.length===0&&We(Cd),ss.push(t)}),n=!1,r}function Al(e,t){if(!(e.f&Rt&&e.f&$e)){e.f&Ne?t.d.push(e):e.f&Ct&&t.m.push(e),xe(e,$e);for(var n=e.first;n!==null;)Al(n,t),n=n.next}}function Tl(e){xe(e,$e);for(var t=e.first;t!==null;)Tl(t),t=t.next}function Dd(e){il(),J!==null&&qf();var t=wt.ensure();t.is_fork=!0,Fe=new Map;var n=!1,r=t.settled();return sn(e),{commit:async()=>{if(n){await r;return}Ht.has(t)||jf(),n=!0,t.is_fork=!1;for(var[s,[a]]of t.current)s.v=a,s.wv=is();t.activate(),t.run_fork_commit_callbacks(),t.deactivate(),sn(()=>{var i=new Set;for(var o of t.current.keys())Il(o,i);Bd(i),Ol()}),t.flush(),await r},discard:()=>{for(var s of t.current.keys())s.wv=is();!n&&Ht.has(t)&&t.discard()}}}function Pd(e){let t=0,n=ct(0),r;return()=>{Or()&&(c(n),Re(()=>(t===0&&(r=_e(()=>e(()=>dr(n)))),t+=1,()=>{We(()=>{t-=1,t===0&&(r?.(),r=void 0,dr(n))})})))}}var Ld=$t|cn;function Rl(e,t,n,r){new Od(e,t,n,r)}class Od{parent;is_pending=!1;transform_error;#e;#t=U?G:null;#n;#a;#r;#i=null;#s=null;#o=null;#l=null;#u=0;#c=0;#d=!1;#h=new Set;#v=new Set;#f=null;#_=Pd(()=>(this.#f=ct(this.#u),()=>{this.#f=null}));constructor(t,n,r,s){this.#e=t,this.#n=n,this.#a=a=>{var i=Y;i.b=this,i.f|=_a,r(a)},this.parent=Y.b,this.transform_error=s??this.parent?.transform_error??(a=>a),this.#r=Ut(()=>{if(U){const a=this.#t;Ge();const i=a.data===ws;if(a.data.startsWith(Bi)){const l=JSON.parse(a.data.slice(Bi.length));this.#m(l)}else i?this.#g():this.#p()}else this.#b()},Ld),U&&(this.#e=G)}#p(){try{this.#i=Be(()=>this.#a(this.#e))}catch(t){this.error(t)}}#m(t){const n=this.#n.failed;n&&(this.#o=Be(()=>{n(this.#e,()=>t,()=>()=>{})}))}#g(){const t=this.#n.pending;t&&(this.is_pending=!0,this.#s=Be(()=>t(this.#e)),We(()=>{var n=this.#l=document.createDocumentFragment(),r=ze();n.append(r),this.#i=this.#w(()=>Be(()=>this.#a(r))),this.#c===0&&(this.#e.before(n),this.#l=null,mn(this.#s,()=>{this.#s=null}),this.#y(J))}))}#b(){try{if(this.is_pending=this.has_pending_snippet(),this.#c=0,this.#u=0,this.#i=Be(()=>{this.#a(this.#e)}),this.#c>0){var t=this.#l=document.createDocumentFragment();ai(this.#i,t);const n=this.#n.pending;this.#s=Be(()=>n(this.#e))}else this.#y(J)}catch(n){this.error(n)}}#y(t){this.is_pending=!1,t.transfer_effects(this.#h,this.#v)}defer_effect(t){wl(t,this.#h,this.#v)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#n.pending}#w(t){var n=Y,r=re,s=ue;Ue(this.#r),et(this.#r),Bn(this.#r.ctx);try{return wt.ensure(),t()}catch(a){return bl(a),null}finally{Ue(n),et(r),Bn(s)}}#k(t,n){if(!this.has_pending_snippet()){this.parent&&this.parent.#k(t,n);return}this.#c+=t,this.#c===0&&(this.#y(n),this.#s&&mn(this.#s,()=>{this.#s=null}),this.#l&&(this.#e.before(this.#l),this.#l=null))}update_pending_count(t,n){this.#k(t,n),this.#u+=t,!(!this.#f||this.#d)&&(this.#d=!0,We(()=>{this.#d=!1,this.#f&&jt(this.#f,this.#u)}))}get_effect_pending(){return this.#_(),c(this.#f)}error(t){if(!this.#n.onerror&&!this.#n.failed)throw t;J?.is_fork?(this.#i&&J.skip_effect(this.#i),this.#s&&J.skip_effect(this.#s),this.#o&&J.skip_effect(this.#o),J.on_fork_commit(()=>{this.#S(t)})):this.#S(t)}#S(t){this.#i&&(Le(this.#i),this.#i=null),this.#s&&(Le(this.#s),this.#s=null),this.#o&&(Le(this.#o),this.#o=null),U&&(he(this.#t),nn(),he(Sn()));var n=this.#n.onerror;let r=this.#n.failed;var s=!1,a=!1;const i=()=>{if(s){rd();return}s=!0,a&&Kf(),this.#o!==null&&mn(this.#o,()=>{this.#o=null}),this.#w(()=>{this.#b()})},o=l=>{try{a=!0,n?.(l,i),a=!1}catch(u){zt(u,this.#r&&this.#r.parent)}r&&(this.#o=this.#w(()=>{try{return Be(()=>{var u=Y;u.b=this,u.f|=_a,r(this.#e,()=>l,()=>i)})}catch(u){return zt(u,this.#r.parent),null}}))};We(()=>{var l;try{l=this.transform_error(t)}catch(u){zt(u,this.#r&&this.#r.parent);return}l!==null&&typeof l=="object"&&typeof l.then=="function"?l.then(o,u=>zt(u,this.#r&&this.#r.parent)):o(l)})}}function Nd(){Y===null&&Mf();var e=Y.b;return e===null?0:e.get_effect_pending()}function $r(e,t,n,r){const s=Pr;var a=e.filter(d=>!d.settled);if(n.length===0&&a.length===0){r(t.map(s));return}var i=Y,o=Ts(),l=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(d=>d.promise)):null;function u(d){o();try{r(d)}catch(w){i.f&Qe||zt(w,i)}En()}if(n.length===0){l.then(()=>u(t.map(s)));return}var f=Dr();function v(){Promise.all(n.map(d=>$l(d))).then(d=>u([...t.map(s),...d])).catch(d=>zt(d,i)).finally(()=>f())}l?l.then(()=>{o(),v(),En()}):v()}function Cl(e,t){$r(e,[],[],t)}function Ts(){var e=Y,t=re,n=ue,r=J;return function(a=!0){Ue(e),et(t),Bn(n),a&&!(e.f&Qe)&&(r?.activate(),r?.apply())}}async function Md(e){var t=Ts(),n=await e;return()=>(t(),n)}async function xa(e){var t=fr;queueMicrotask(()=>{fr===t&&Gr(null)});var n=await e;return()=>(Gr(t),queueMicrotask(()=>{fr===t&&Gr(null)}),n)}async function*zd(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 xa(t.next()))();if(s){n=!0;break}var r=fr;yield a,Gr(r)}}finally{if(!n&&t.return!==void 0)return(await xa(t.return()))().value}}function En(e=!0){Ue(null),et(null),Bn(null),e&&J?.deactivate()}function jd(e){const t=Ts(),n=Dr();var r=Y,s=null;const a=u=>{s={error:u},Aa(r)||zt(u,r)};var i=Promise.resolve(e[0]()).catch(a),o={promise:i,settled:!1},l=[o];i.finally(()=>{o.settled=!0,En()});for(const u of e.slice(1)){i=i.then(()=>{if(t(),s)throw s.error;if(Aa(r))throw Ot;return u()}).catch(a);const f={promise:i,settled:!1};l.push(f),i.finally(()=>{f.settled=!0,En()})}return i.then(()=>Promise.resolve()).finally(()=>n()),l}function qd(e){return Promise.all(e.map(t=>t.promise))}function Dr(){var e=Y,t=e.b,n=J,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 fr=null;function Gr(e){fr=e}function Pr(e){var t=Me|Ne;return Y!==null&&(Y.f|=cn),{ctx:ue,deps:null,effects:null,equals:cl,f:t,fn:e,reactions:null,rv:0,v:we,wv:0,parent:Y,ac:null}}function $l(e,t,n){let r=Y;r===null&&Cf();var s=void 0,a=ct(we),i=!re,o=new Map;return tv(()=>{var l=Y,u=el();s=u.promise;try{Promise.resolve(e()).then(u.resolve,u.reject).finally(En)}catch(w){u.reject(w),En()}var f=J;if(i){if(l.f&Yt)var v=Dr();if(r.b.is_rendered())o.get(f)?.reject(Ot),o.delete(f);else{for(const w of o.values())w.reject(Ot);o.clear()}o.set(f,u)}const d=(w,_=void 0)=>{if(v){var k=_===Ot;v(k)}if(!(_===Ot||l.f&Qe)){if(f.activate(),_)a.f|=tn,jt(a,_);else{a.f&tn&&(a.f^=tn),jt(a,w);for(const[y,A]of o){if(o.delete(y),y===f)break;A.reject(Ot)}}f.deactivate()}};u.promise.then(d,w=>d(null,w||"unknown"))}),dt(()=>{for(const l of o.values())l.reject(Ot)}),new Promise(l=>{function u(f){function v(){f===s?l(a):u(s)}f.then(v,v)}u(s)})}function K(e){const t=Pr(e);return ec(t),t}function Ja(e){const t=Pr(e);return t.equals=fl,t}function Vd(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)Le(t[n])}}function Za(e){var t,n=Y,r=e.parent;if(!Gt&&r!==null&&r.f&(Qe|He))return Jf(),e.v;Ue(r);try{e.f&=~kn,Vd(e),t=rc(e)}finally{Ue(n)}return t}function Dl(e){var t=Za(e);if(!e.equals(t)&&(e.wv=is(),(!J?.is_fork||e.deps===null)&&(J!==null?J.capture(e,t,!0):e.v=t,e.deps===null))){xe(e,$e);return}Gt||(Fe!==null?(Or()||J?.is_fork)&&Fe.set(e,t):Ga(e))}function Ud(e){if(e.effects!==null)for(const t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(Ot),t.teardown=it,t.ac=null,_r(t,0),ri(t))}function Pl(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&In(t)}let as=new Set;const gn=new Map;function Bd(e){as=e}let Ll=!1;function ct(e,t){var n={f:0,v:e,reactions:null,equals:cl,rv:0,wv:0};return n}function j(e,t){const n=ct(e);return ec(n),n}function Rs(e,t=!1,n=!0){const r=ct(e);return t||(r.equals=fl),r}function Fd(e,t){return b(e,_e(()=>c(e))),t}function b(e,t,n=!1){re!==null&&(!Et||re.f&mr)&&ml()&&re.f&(Me|At|Un|mr)&&(bt===null||!Vn.call(bt,e))&&Wf();let r=n?ce(t):t;return jt(e,r,Kr)}function jt(e,t,n=null){if(!e.equals(t)){gn.set(e,Gt?t:e.v);var r=wt.ensure();if(r.capture(e,t),e.f&Me){const s=e;e.f&Ne&&Za(s),Fe===null&&Ga(s)}e.wv=is(),Nl(e,Ne,n),Y!==null&&Y.f&$e&&!(Y.f&(Rt|Kt))&&(pt===null?iv([e]):pt.push(e)),!r.is_fork&&as.size>0&&!Ll&&Ol()}return t}function Ol(){Ll=!1;for(const e of as)e.f&$e&&xe(e,Ct),Jn(e)&&In(e);as.clear()}function Fn(e,t=1){var n=c(e),r=t===1?n++:n--;return b(e,n),r}function Hd(e,t=1){var n=c(e);return b(e,t===1?++n:--n)}function dr(e){b(e,e.v+1)}function Nl(e,t,n){var r=e.reactions;if(r!==null)for(var s=r.length,a=0;a<s;a++){var i=r[a],o=i.f,l=(o&Ne)===0;if(l&&xe(i,t),o&Me){var u=i;Fe?.delete(u),o&kn||(o&_t&&(i.f|=kn),Nl(u,Ct,n))}else if(l){var f=i;o&At&&Wt!==null&&Wt.add(f),n!==null?n.push(f):Xa(f)}}}function ce(e){if(typeof e!="object"||e===null||Ve in e)return e;const t=xs(e);if(t!==Qo&&t!==mf)return e;var n=new Map,r=Yn(e),s=j(0),a=_n,i=o=>{if(_n===a)return o();var l=re,u=_n;et(null),Zi(a);var f=o();return et(l),Zi(u),f};return r&&n.set("length",j(e.length)),new Proxy(e,{defineProperty(o,l,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&Ff();var f=n.get(l);return f===void 0?i(()=>{var v=j(u.value);return n.set(l,v),v}):b(f,u.value,!0),!0},deleteProperty(o,l){var u=n.get(l);if(u===void 0){if(l in o){const f=i(()=>j(we));n.set(l,f),dr(s)}}else b(u,we),dr(s);return!0},get(o,l,u){if(l===Ve)return e;var f=n.get(l),v=l in o;if(f===void 0&&(!v||It(o,l)?.writable)&&(f=i(()=>{var w=ce(v?o[l]:we),_=j(w);return _}),n.set(l,f)),f!==void 0){var d=c(f);return d===we?void 0:d}return Reflect.get(o,l,u)},getOwnPropertyDescriptor(o,l){var u=Reflect.getOwnPropertyDescriptor(o,l);if(u&&"value"in u){var f=n.get(l);f&&(u.value=c(f))}else if(u===void 0){var v=n.get(l),d=v?.v;if(v!==void 0&&d!==we)return{enumerable:!0,configurable:!0,value:d,writable:!0}}return u},has(o,l){if(l===Ve)return!0;var u=n.get(l),f=u!==void 0&&u.v!==we||Reflect.has(o,l);if(u!==void 0||Y!==null&&(!f||It(o,l)?.writable)){u===void 0&&(u=i(()=>{var d=f?ce(o[l]):we,w=j(d);return w}),n.set(l,u));var v=c(u);if(v===we)return!1}return f},set(o,l,u,f){var v=n.get(l),d=l in o;if(r&&l==="length")for(var w=u;w<v.v;w+=1){var _=n.get(w+"");_!==void 0?b(_,we):w in o&&(_=i(()=>j(we)),n.set(w+"",_))}if(v===void 0)(!d||It(o,l)?.writable)&&(v=i(()=>j(void 0)),b(v,ce(u)),n.set(l,v));else{d=v.v!==we;var k=i(()=>ce(u));b(v,k)}var y=Reflect.getOwnPropertyDescriptor(o,l);if(y?.set&&y.set.call(f,u),!d){if(r&&typeof l=="string"){var A=n.get("length"),h=Number(l);Number.isInteger(h)&&h>=A.v&&b(A,h+1)}dr(s)}return!0},ownKeys(o){c(s);var l=Reflect.ownKeys(o).filter(v=>{var d=n.get(v);return d===void 0||d.v!==we});for(var[u,f]of n)f.v!==we&&!(u in o)&&l.push(u);return l},setPrototypeOf(){Hf()}})}function Hn(e){try{if(e!==null&&typeof e=="object"&&Ve in e)return e[Ve]}catch{}return e}function Ml(e,t){return Object.is(Hn(e),Hn(t))}function Wd(e,t,n=!0){try{e===t!=(Hn(e)===Hn(t))&&ll(n?"===":"!==")}catch{}return e===t===n}function Kd(e,t,n=!0){return e==t!=(Hn(e)==Hn(t))&&ll(),e==t===n}var Ea,zl,Qa,jl,ql;function Ia(){if(Ea===void 0){Ea=window,zl=document,Qa=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;jl=It(t,"firstChild").get,ql=It(t,"nextSibling").get,Fi(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),Fi(n)&&(n.__t=void 0)}}function ze(e=""){return document.createTextNode(e)}function ke(e){return jl.call(e)}function ut(e){return ql.call(e)}function m(e,t){if(!U)return ke(e);var n=ke(G);if(n===null)n=G.appendChild(ze());else if(t&&n.nodeType!==Rr){var r=ze();return n?.before(r),he(r),r}return t&&Cs(n),he(n),n}function Ae(e,t=!1){if(!U){var n=ke(e);return n instanceof Comment&&n.data===""?ut(n):n}if(t){if(G?.nodeType!==Rr){var r=ze();return G?.before(r),he(r),r}Cs(G)}return G}function x(e,t=1,n=!1){let r=U?G:e;for(var s;t--;)s=r,r=ut(r);if(!U)return r;if(n){if(r?.nodeType!==Rr){var a=ze();return r===null?s?.after(a):r.before(a),he(a),a}Cs(r)}return he(r),r}function ei(e){e.textContent=""}function Vl(){return!1}function un(e,t,n){let r=n?{is:n}:void 0;return document.createElementNS(t??Yo,e,r)}function Gd(){return document.createDocumentFragment()}function Ul(e=""){return document.createComment(e)}function Yd(e,t,n=""){if(t.startsWith("xlink:")){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n);return}return e.setAttribute(t,n)}function Cs(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===Rr;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function Bl(e,t){if(t){const n=document.body;e.autofocus=!0,We(()=>{document.activeElement===n&&e.focus()})}}function Xd(e){U&&ke(e)!==null&&ei(e)}let Xi=!1;function Fl(){Xi||(Xi=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function nt(e,t,n,r=!0){r&&n();for(var s of t)e.addEventListener(s,n);dt(()=>{for(var a of t)e.removeEventListener(a,n)})}function fn(e){var t=re,n=Y;et(null),Ue(null);try{return e()}finally{et(t),Ue(n)}}function Lr(e,t,n,r=n){e.addEventListener(t,()=>fn(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),Fl()}function ti(e){Y===null&&(re===null&&Nf(),Of()),Gt&&Lf()}function Jd(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function rt(e,t){var n=Y;n!==null&&n.f&He&&(e|=He);var r={ctx:ue,deps:null,nodes:null,f:e|Ne|_t,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};J?.register_created_effect(r);var s=r;if(e&wn)Nn!==null?Nn.push(r):wt.ensure().schedule(r);else if(t!==null){try{In(r)}catch(i){throw Le(r),i}s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&!(s.f&cn)&&(s=s.first,e&At&&e&$t&&s!==null&&(s.f|=$t))}if(s!==null&&(s.parent=n,n!==null&&Jd(s,n),re!==null&&re.f&Me&&!(e&Kt))){var a=re;(a.effects??=[]).push(s)}return r}function Or(){return re!==null&&!Et}function dt(e){const t=rt(Tr,null);return xe(t,$e),t.teardown=e,t}function Ke(e){ti();var t=Y.f,n=!re&&(t&Rt)!==0&&(t&Yt)===0;if(n){var r=ue;(r.e??=[]).push(e)}else return Hl(e)}function Hl(e){return rt(wn|rl,e)}function Wl(e){return ti(),rt(Tr|rl,e)}function Kl(e){return rt(mr,e)}function ni(e){wt.ensure();const t=rt(Kt|cn,e);return()=>{Le(t)}}function Zd(e){wt.ensure();const t=rt(Kt|cn,e);return(n={})=>new Promise(r=>{n.outro?mn(t,()=>{Le(t),r(void 0)}):(Le(t),r(void 0))})}function ft(e){return rt(wn,e)}function Qd(e,t){var n=ue,r={effect:null,ran:!1,deps:e};n.l.$.push(r),r.effect=Re(()=>{if(e(),!r.ran){r.ran=!0;var s=Y;try{Ue(s.parent),_e(t)}finally{Ue(s)}}})}function ev(){var e=ue;Re(()=>{for(var t of e.l.$){t.deps();var n=t.effect;n.f&$e&&n.deps!==null&&xe(n,Ct),Jn(n)&&In(n),t.ran=!1}})}function tv(e){return rt(Un|cn,e)}function Re(e,t=0){return rt(Tr|t,e)}function V(e,t=[],n=[],r=[]){$r(r,t,n,s=>{rt(Tr,()=>e(...s.map(c)))})}function nv(e,t=[],n=[],r=[]){if(n.length>0||r.length>0)var s=Dr();$r(r,t,n,a=>{rt(wn,()=>e(...a.map(c))),s&&s()})}function Ut(e,t=0){var n=rt(At|t,e);return n}function Gl(e,t=0){var n=rt(Ha|t,e);return n}function Be(e){return rt(Rt|cn,e)}function Yl(e){var t=e.teardown;if(t!==null){const n=Gt,r=re;Ji(!0),et(null);try{t.call(null)}finally{Ji(n),et(r)}}}function ri(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&fn(()=>{s.abort(Ot)});var r=n.next;n.f&Kt?n.parent=null:Le(n,t),n=r}}function rv(e){for(var t=e.first;t!==null;){var n=t.next;t.f&Rt||Le(t),t=n}}function Le(e,t=!0){var n=!1;(t||e.f&nl)&&e.nodes!==null&&e.nodes.end!==null&&(Xl(e.nodes.start,e.nodes.end),n=!0),xe(e,ba),ri(e,t&&!n),_r(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const a of r)a.stop();Yl(e),e.f^=ba,e.f|=Qe;var s=e.parent;s!==null&&s.first!==null&&Jl(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Xl(e,t){for(;e!==null;){var n=e===t?null:ut(e);e.remove(),e=n}}function Jl(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 mn(e,t,n=!0){var r=[];Zl(e,r,!0);var s=()=>{n&&Le(e),t&&t()},a=r.length;if(a>0){var i=()=>--a||s();for(var o of r)o.out(i)}else s()}function Zl(e,t,n){if(!(e.f&He)){e.f^=He;var r=e.nodes&&e.nodes.t;if(r!==null)for(const o of r)(o.is_global||n)&&t.push(o);for(var s=e.first;s!==null;){var a=s.next;if(!(s.f&Kt)){var i=(s.f&$t)!==0||(s.f&Rt)!==0&&(e.f&At)!==0;Zl(s,t,i?n:!1)}s=a}}}function si(e){Ql(e,!0)}function Ql(e,t){if(e.f&He){e.f^=He,e.f&$e||(xe(e,Ne),wt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&$t)!==0||(n.f&Rt)!==0;Ql(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=Y){return(e.f&Qe)!==0}function ai(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:ut(n);t.append(n),n=s}}let Pn=null;function sv(e){var t=Pn;try{if(Pn=new Set,_e(e),t!==null)for(var n of Pn)t.add(n);return Pn}finally{Pn=t}}function av(e){for(var t of sv(e))jt(t,t.v)}let Yr=!1,Gt=!1;function Ji(e){Gt=e}let re=null,Et=!1;function et(e){re=e}let Y=null;function Ue(e){Y=e}let bt=null;function ec(e){re!==null&&(bt===null?bt=[e]:bt.push(e))}let Xe=null,st=0,pt=null;function iv(e){pt=e}let tc=1,pn=0,_n=pn;function Zi(e){_n=e}function is(){return++tc}function Jn(e){var t=e.f;if(t&Ne)return!0;if(t&Me&&(e.f&=~kn),t&Ct){for(var n=e.deps,r=n.length,s=0;s<r;s++){var a=n[s];if(Jn(a)&&Dl(a),a.wv>e.wv)return!0}t&_t&&Fe===null&&xe(e,$e)}return!1}function nc(e,t,n=!0){var r=e.reactions;if(r!==null&&!(bt!==null&&Vn.call(bt,e)))for(var s=0;s<r.length;s++){var a=r[s];a.f&Me?nc(a,t,!1):t===a&&(n?xe(a,Ne):a.f&$e&&xe(a,Ct),Xa(a))}}function rc(e){var t=Xe,n=st,r=pt,s=re,a=bt,i=ue,o=Et,l=_n,u=e.f;Xe=null,st=0,pt=null,re=u&(Rt|Kt)?null:e,bt=null,Bn(e.ctx),Et=!1,_n=++pn,e.ac!==null&&(fn(()=>{e.ac.abort(Ot)}),e.ac=null);try{e.f|=ya;var f=e.fn,v=f();e.f|=Yt;var d=e.deps,w=J?.is_fork;if(Xe!==null){var _;if(w||_r(e,st),d!==null&&st>0)for(d.length=st+Xe.length,_=0;_<Xe.length;_++)d[st+_]=Xe[_];else e.deps=d=Xe;if(Or()&&e.f&_t)for(_=st;_<d.length;_++)(d[_].reactions??=[]).push(e)}else!w&&d!==null&&st<d.length&&(_r(e,st),d.length=st);if(ml()&&pt!==null&&!Et&&d!==null&&!(e.f&(Me|Ct|Ne)))for(_=0;_<pt.length;_++)nc(pt[_],e);if(s!==null&&s!==e){if(pn++,s.deps!==null)for(let k=0;k<n;k+=1)s.deps[k].rv=pn;if(t!==null)for(const k of t)k.rv=pn;pt!==null&&(r===null?r=pt:r.push(...pt))}return e.f&tn&&(e.f^=tn),v}catch(k){return bl(k)}finally{e.f^=ya,Xe=t,st=n,pt=r,re=s,bt=a,Bn(i),Et=o,_n=l}}function ov(e,t){let n=t.reactions;if(n!==null){var r=gf.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&Me&&(Xe===null||!Vn.call(Xe,t))){var a=t;a.f&_t&&(a.f^=_t,a.f&=~kn),a.v!==we&&Ga(a),Ud(a),_r(a,0)}}function _r(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)ov(e,n[r])}function In(e){var t=e.f;if(!(t&Qe)){xe(e,$e);var n=Y,r=Yr;Y=e,Yr=!0;try{t&(At|Ha)?rv(e):ri(e),Yl(e);var s=rc(e);e.teardown=typeof s=="function"?s:null,e.wv=tc;var a;Jo&&ad&&e.f&Ne&&e.deps}finally{Yr=r,Y=n}}}async function ii(){await Promise.resolve(),sn()}function lv(){return wt.ensure().settled()}function c(e){var t=e.f,n=(t&Me)!==0;if(Pn?.add(e),re!==null&&!Et){var r=Y!==null&&(Y.f&Qe)!==0;if(!r&&(bt===null||!Vn.call(bt,e))){var s=re.deps;if(re.f&ya)e.rv<pn&&(e.rv=pn,Xe===null&&s!==null&&s[st]===e?st++:Xe===null?Xe=[e]:Xe.push(e));else{(re.deps??=[]).push(e);var a=e.reactions;a===null?e.reactions=[re]:Vn.call(a,re)||a.push(re)}}}if(Gt&&gn.has(e))return gn.get(e);if(n){var i=e;if(Gt){var o=i.v;return(!(i.f&$e)&&i.reactions!==null||ac(i))&&(o=Za(i)),gn.set(i,o),o}var l=(i.f&_t)===0&&!Et&&re!==null&&(Yr||(re.f&_t)!==0),u=(i.f&Yt)===0;Jn(i)&&(l&&(i.f|=_t),Dl(i)),l&&!u&&(Pl(i),sc(i))}if(Fe?.has(e))return Fe.get(e);if(e.f&tn)throw e.v;return e.v}function sc(e){if(e.f|=_t,e.deps!==null)for(const t of e.deps)(t.reactions??=[]).push(e),t.f&Me&&!(t.f&_t)&&(Pl(t),sc(t))}function ac(e){if(e.v===we)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(gn.has(t)||t.f&Me&&ac(t))return!0;return!1}function cv(e){return e&&c(e)}function _e(e){var t=Et;try{return Et=!0,e()}finally{Et=t}}function oi(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if(Ve in e)os(e);else if(!Array.isArray(e))for(let t in e){const n=e[t];typeof n=="object"&&n&&Ve in n&&os(n)}}}function os(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{os(e[r],t)}catch{}const n=xs(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){const r=Zo(n);for(let s in r){const a=r[s].get;if(a)try{a.call(e)}catch{}}}}}function uv(e,t){if(il(),U){const n=window.__svelte?.h;if(n?.has(e))return n.get(e);Qf()}return t()}const lr=Symbol("events"),ic=new Set,Ta=new Set;function fv(e){if(!U)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 oc(e,t,n,r={}){function s(a){if(r.capture||Ra.call(t,a),!a.cancelBubble)return fn(()=>n?.call(this,a))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?We(()=>{t.addEventListener(e,s,r)}):t.addEventListener(e,s,r),s}function tt(e,t,n,r,s){var a={capture:r,passive:s},i=oc(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&dt(()=>{t.removeEventListener(e,i,a)})}function H(e,t,n){(t[lr]??={})[e]=n}function pe(e){for(var t=0;t<e.length;t++)ic.add(e[t]);for(var n of Ta)n(e)}let Qi=null;function Ra(e){var t=this,n=t.ownerDocument,r=e.type,s=e.composedPath?.()||[],a=s[0]||e.target;Qi=e;var i=0,o=Qi===e&&e[lr];if(o){var l=s.indexOf(o);if(l!==-1&&(t===document||t===window)){e[lr]=t;return}var u=s.indexOf(t);if(u===-1)return;l<=u&&(i=l)}if(a=s[i]||e.target,a!==t){yn(e,"currentTarget",{configurable:!0,get(){return a||n}});var f=re,v=Y;et(null),Ue(null);try{for(var d,w=[];a!==null;){var _=a.assignedSlot||a.parentNode||a.host||null;try{var k=a[lr]?.[r];k!=null&&(!a.disabled||e.target===a)&&k.call(a,e)}catch(y){d?w.push(y):d=y}if(e.cancelBubble||_===t||_===null)break;a=_}if(d){for(let y of w)queueMicrotask(()=>{throw y});throw d}}finally{e[lr]=t,delete e.currentTarget,et(f),Ue(v)}}}function dv(e,t,n,r,s,a=!1,i=!1){let o,l;try{o=e()}catch(u){l=u}if(typeof o!="function"&&(a||o!=null||l)){const u=r?.[at];s?`${u}${s[0]}${s[1]}`:`${u}`;const f=n[0]?.eventPhase<Event.BUBBLING_PHASE?"capture":"";if(n[0]?.type+f,Zf(),l)throw l}o?.apply(t,n)}const vv=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function lc(e){return vv?.createHTML(e)??e}function li(e){var t=un("template");return t.innerHTML=lc(e.replaceAll("<!>","<!---->")),t.content}const hv=Tn?"template":"TEMPLATE",pv=Tn?"script":"SCRIPT";function Oe(e,t){var n=Y;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function R(e,t){var n=(t&Ba)!==0,r=(t&Go)!==0,s,a=!e.startsWith("<!>");return()=>{if(U)return Oe(G,null),G;s===void 0&&(s=li(a?e:"<!>"+e),n||(s=ke(s)));var i=r||Qa?document.importNode(s,!0):s.cloneNode(!0);if(n){var o=ke(i),l=i.lastChild;Oe(o,l)}else Oe(i,i);return i}}function cc(e,t,n="svg"){var r=!e.startsWith("<!>"),s=(t&Ba)!==0,a=`<${n}>${r?e:"<!>"+e}</${n}>`,i;return()=>{if(U)return Oe(G,null),G;if(!i){var o=li(a),l=ke(o);if(s)for(i=document.createDocumentFragment();ke(l);)i.appendChild(ke(l));else i=ke(l)}var u=i.cloneNode(!0);if(s){var f=ke(u),v=u.lastChild;Oe(f,v)}else Oe(u,u);return u}}function gv(e,t){return cc(e,t,"svg")}function mv(e,t){return cc(e,t,"math")}function uc(e,t){var n=Gd();for(var r of e){if(typeof r=="string"){n.append(ze(r));continue}if(r===void 0||r[0][0]==="/"){n.append(Ul(r?r[0].slice(3):""));continue}const[o,l,...u]=r,f=o==="svg"?Ar:o==="math"?Fa:t;var s=un(o,f,l?.is);for(var a in l)Yd(s,a,l[a]);if(u.length>0){var i=s.nodeName===hv?s.content:s;i.append(uc(u,s.nodeName==="foreignObject"?void 0:f))}n.append(s)}return n}function _v(e,t){var n=(t&Ba)!==0,r=(t&Go)!==0,s;return()=>{if(U)return Oe(G,null),G;if(s===void 0){const l=t&hf?Ar:t&pf?Fa:void 0;s=uc(e,l),n||(s=ke(s))}var a=r||Qa?document.importNode(s,!0):s.cloneNode(!0);if(n){var i=ke(a),o=a.lastChild;Oe(i,o)}else Oe(a,a);return a}}function bv(e){return()=>yv(e())}function yv(e){if(U)return e;const t=e.nodeType===al,n=e.nodeName===pv?[e]:e.querySelectorAll("script"),r=Y;for(const a of n){const i=un("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 Xr(e=""){if(!U){var t=ze(e+"");return Oe(t,t),t}var n=G;return n.nodeType!==Rr?(n.before(n=ze()),he(n)):Cs(n),Oe(n,n),n}function gt(){if(U)return Oe(G,null),G;var e=document.createDocumentFragment(),t=document.createComment(""),n=ze();return e.append(t,n),Oe(t,n),e}function I(e,t){if(U){var n=Y;(!(n.f&Yt)||n.nodes.end===null)&&(n.nodes.end=G),Ge();return}e!==null&&e.before(t)}function wv(){if(U&&G&&G.nodeType===Xt&&G.textContent?.startsWith("$")){const e=G.textContent.substring(1);return Ge(),e}return(window.__svelte??={}).uid??=1,`c${window.__svelte.uid++}`}const kv=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function Sv(e){return kv.includes(e)||e.toLowerCase()==="!doctype"}function xv(e){return e.endsWith("capture")&&e!=="gotpointercapture"&&e!=="lostpointercapture"}const Ev=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function Iv(e){return Ev.includes(e)}const Av={formnovalidate:"formNoValidate",ismap:"isMap",nomodule:"noModule",playsinline:"playsInline",readonly:"readOnly",defaultvalue:"defaultValue",defaultchecked:"defaultChecked",srcobject:"srcObject",novalidate:"noValidate",allowfullscreen:"allowFullscreen",disablepictureinpicture:"disablePictureInPicture",disableremoteplayback:"disableRemotePlayback"};function Tv(e){return e=e.toLowerCase(),Av[e]??e}const Rv=["touchstart","touchmove"];function Cv(e){return Rv.includes(e)}const $v=["textarea","script","style","title"];function Dv(e){return $v.includes(e)}function fc(e){return e?.replace(/\//g,"/​")}let ls=!0;function Mn(e){ls=e}function M(e,t){var n=t==null?"":typeof t=="object"?`${t}`:t;n!==(e.__t??=e.nodeValue)&&(e.__t=n,e.nodeValue=`${n}`)}function qe(e,t){return vc(e,t)}function dc(e,t){Ia(),t.intro=t.intro??!1;const n=t.target,r=U,s=G;try{for(var a=ke(n);a&&(a.nodeType!==Xt||a.data!==ys);)a=ut(a);if(!a)throw bn;me(!0),he(a);const i=vc(e,{...t,anchor:a});return me(!1),i}catch(i){if(i instanceof Error&&i.message.split(`
5
+ `).some(o=>o.startsWith("https://svelte.dev/e/")))throw i;return i!==bn&&console.warn("Failed to hydrate: ",i),t.recover===!1&&Uf(),Ia(),ei(n),me(!1),qe(e,t)}finally{me(r),he(s)}}const Vr=new Map;function vc(e,{target:t,anchor:n,props:r={},events:s,context:a,intro:i=!0,transformError:o}){Ia();var l=void 0,u=Zd(()=>{var f=n??t.appendChild(ze());Rl(f,{pending:()=>{}},w=>{ee({});var _=ue;if(a&&(_.c=a),s&&(r.$$events=s),U&&Oe(w,null),ls=i,l=e(w,r)||{},ls=!0,U&&(Y.nodes.end=G,G===null||G.nodeType!==Xt||G.data!==ks))throw Cr(),bn;te()},o);var v=new Set,d=w=>{for(var _=0;_<w.length;_++){var k=w[_];if(!v.has(k)){v.add(k);var y=Cv(k);for(const g of[t,document]){var A=Vr.get(g);A===void 0&&(A=new Map,Vr.set(g,A));var h=A.get(k);h===void 0?(g.addEventListener(k,Ra,{passive:y}),A.set(k,1)):A.set(k,h+1)}}}};return d(Ss(ic)),Ta.add(d),()=>{for(var w of v)for(const y of[t,document]){var _=Vr.get(y),k=_.get(w);--k==0?(y.removeEventListener(w,Ra),_.delete(w),_.size===0&&Vr.delete(y)):_.set(w,k)}Ta.delete(d),f!==n&&f.parentNode?.removeChild(f)}});return Ca.set(l,u),l}let Ca=new WeakMap;function Ze(e,t){const n=Ca.get(e);return n?(Ca.delete(e),n(t)):Promise.resolve()}function Pv(e){const t=e();t&&Sv(t)&&id()}function Lv(e){const t=e();t&&!(typeof t=="string")&&Rf()}function Ov(e,t){e!=null&&typeof e.subscribe!="function"&&Tf()}function hc(e){return e.toString=()=>(Af(),""),e}class Zn{anchor;#e=new Map;#t=new Map;#n=new Map;#a=new Set;#r=!0;constructor(t,n=!0){this.anchor=t,this.#r=n}#i=t=>{if(this.#e.has(t)){var n=this.#e.get(t),r=this.#t.get(n);if(r)si(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 o=this.#n.get(i);o&&(Le(o.effect),this.#n.delete(i))}for(const[a,i]of this.#t){if(a===n||this.#a.has(a))continue;const o=()=>{if(Array.from(this.#e.values()).includes(a)){var u=document.createDocumentFragment();ai(i,u),u.append(ze()),this.#n.set(a,{effect:i,fragment:u})}else Le(i);this.#a.delete(a),this.#t.delete(a)};this.#r||!r?(this.#a.add(a),mn(i,o,!1)):o()}}};#s=t=>{this.#e.delete(t);const n=Array.from(this.#e.values());for(const[r,s]of this.#n)n.includes(r)||(Le(s.effect),this.#n.delete(r))};ensure(t,n){var r=J,s=Vl();if(n&&!this.#t.has(t)&&!this.#n.has(t))if(s){var a=document.createDocumentFragment(),i=ze();a.append(i),this.#n.set(t,{effect:Be(()=>n(i)),fragment:a})}else this.#t.set(t,Be(()=>n(this.anchor)));if(this.#e.set(r,t),s){for(const[o,l]of this.#t)o===t?r.unskip_effect(l):r.skip_effect(l);for(const[o,l]of this.#n)o===t?r.unskip_effect(l.effect):r.skip_effect(l.effect);r.oncommit(this.#i),r.ondiscard(this.#s)}else U&&(this.anchor=G),this.#i(r)}}function $s(e,t,...n){var r=new Zn(e);Ut(()=>{const s=t()??null;r.ensure(s,s&&(a=>s(a,...n)))},$t)}function Nv(e,t){const n=(r,...s)=>{var a=Ka;Ki(e);try{return t(r,...s)}finally{Ki(a)}};return hc(n),n}function Mv(e){return(t,...n)=>{var r=e(...n),s;if(U)s=G,Ge();else{var a=r.render().trim(),i=li(a);s=ke(i),t.before(s)}const o=r.setup?.(s);Oe(s,s),typeof o=="function"&&dt(o)}}function zv(){return re===null&&Vf(),(re.ac??=new AbortController).signal}function Ds(e){ue===null&&Xn(),Ke(()=>{const t=_e(e);if(typeof t=="function")return t})}function pc(e){ue===null&&Xn(),Ds(()=>()=>_e(e))}function jv(e,t,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(e,{detail:t,bubbles:n,cancelable:r})}function qv(){const e=ue;return e===null&&Xn(),(t,n,r)=>{const s=e.s.$$events?.[t];if(s){const a=Yn(s)?s.slice():[s],i=jv(t,n,r);for(const o of a)o.call(e.x,i);return!i.defaultPrevented}return!0}}function Vv(e){ue===null&&Xn(),ue.l===null&&ol(),gc(ue).b.push(e)}function Uv(e){ue===null&&Xn(),ue.l===null&&ol(),gc(ue).a.push(e)}function gc(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}const mc=Object.freeze(Object.defineProperty({__proto__:null,afterUpdate:Uv,beforeUpdate:Vv,createContext:hd,createEventDispatcher:qv,createRawSnippet:Mv,flushSync:sn,fork:Dd,getAbortSignal:zv,getAllContexts:pd,getContext:hl,hasContext:gl,hydratable:uv,hydrate:dc,mount:qe,onDestroy:pc,onMount:Ds,setContext:pl,settled:lv,tick:ii,unmount:Ze,untrack:_e},Symbol.toStringTag,{value:"Module"}));function Bv(){return Symbol(Xo)}function _c(e,t,n,r){return e!==t&&typeof t=="object"&&Ve in t&&Gf(n,fc(r)),e}function Fv(e,t,n,r,s){return _c(n==="="?e[t]=r:n==="&&="?e[t]&&=r():n==="||="?e[t]||=r():n==="??="?e[t]??=r():null,_e(()=>e[t]),t,s)}async function Hv(e,t,n,r,s){return _c(n==="="?e[t]=await r:n==="&&="?e[t]&&=await r():n==="||="?e[t]||=await r():n==="??="?e[t]??=await r():null,_e(()=>e[t]),t,s)}var eo=new Map;function Wv(e){var t=eo.get(e);if(t){for(const n of t)n.remove();eo.delete(e)}}function Kv(e,t,n){return(...r)=>{const s=e(...r);var a=U?s:s.nodeType===al?s.firstChild:s;return bc(a,t,n),s}}function Gv(e,t,n){e.__svelte_meta={parent:Wr,loc:{file:t,line:n[0],column:n[1]}},n[2]&&bc(e.firstChild,t,n[2])}function bc(e,t,n){for(var r=0,s=0;e&&r<n.length;){if(U&&e.nodeType===Xt){var a=e;a.data[0]===ys?s+=1:a.data[0]===ks&&(s-=1)}s===0&&e.nodeType===sl&&Gv(e,t,n[r++]),e=e.nextSibling}}function Yv(e){const t=ct(e);function n(r,s){let a={},i={},o,l=!1,u=r;return Ut(()=>{if(a!==(a=c(t))){if(o){for(var f in i)delete i[f];Le(o)}o=Be(()=>{u=u[xf]??u,l&&Mn(!1);var v=new.target?new a(u,s):a(u,s);v&&Object.defineProperties(i,Object.getOwnPropertyDescriptors(v)),l&&Mn(!0)}),Y.nodes=o.nodes}},$t),l=!0,U&&(u=G),i}return n[at]=e[at],n[$n]={fn:e,current:t,update:r=>{b(n[$n].current,r[$n].fn),r[$n].current=n[$n].current}},n}function Xv(e){const t=ue?.function,n=ue?.p?.function;return{mutation:(r,s,a,i,o)=>{const l=s[0];if(to(e,l)||!n)return a;let u=e;for(let v=0;v<s.length-1;v++)if(u=u[s[v]],!u?.[Ve])return a;const f=fc(`${t[at]}:${i}:${o}`);return td(l,f,r,n[at]),a},binding:(r,s,a)=>{!to(e,r)&&n&&a()?.[Ve]&&ed(t[at],r,s[at],n[at])}}}function to(e,t){const n=Ve in e||Es in e;return!!It(e,t)?.set||n&&t in e||!(t in e)}function Jv(e){e&&Df(e[at]??"a component",e.name)}function Zv(){const e=ue?.function;function t(n){$f(n,e[at])}return{$destroy:()=>t("$destroy()"),$on:()=>t("$on(...)"),$set:()=>t("$set(...)")}}function Qv(e,t,n=!1){ti();let r=!0,s=we;Kl(()=>{try{var a=e()}catch(o){s=o;return}var i=xn(a,!0,!0);_e(()=>{if(n){if(t(...i),!r){const o=fd("$inspect(...)");o&&(console.groupCollapsed("stack trace"),console.log(o),console.groupEnd())}}else t(r?"init":"update",...i)}),r=!1}),Re(()=>{try{e()}catch{}s!==we&&(console.error(s),s=we)})}function eh(e,t=[],n=[],r){var s=U,a=null;if(s&&(Ge(),a=Sn(!1)),n.length===0&&t.every(l=>l.settled)){r(e),s&&he(a);return}const i=Dr();if(s){var o=G;he(a)}$r(t,[],n,l=>{s&&(me(!0),he(o));try{for(const u of l)c(u);r(e,...l)}finally{s&&me(!1),i()}})}function th(e,...t){(typeof e!="object"||!(e instanceof Node))&&Wi();for(let n of t)typeof n!="function"&&Wi()}const no=0,ro=1,nh=2;function rh(e,t,n,r,s){U&&Ge();var a=we,i=ct(a),o=ct(a),l=new Zn(e);Ut(()=>{var u=J;u.deactivate();var f=t();u.activate();var v=!1;let d=U&&Hi(f)===(e.data===ws);if(d&&(he(Sn()),me(!1)),Hi(f)){var w=Ts(),_=!1;const k=y=>{if(!v){_=!0,w(!1),wt.ensure(),U&&me(!1);try{y()}finally{En(!1),qn||sn()}}};f.then(y=>{k(()=>{jt(i,y),l.ensure(ro,r&&(A=>r(A,i)))})},y=>{k(()=>{if(jt(o,y),l.ensure(nh,s&&(A=>s(A,o))),!s)throw o.v})}),U?l.ensure(no,n):We(()=>{_||k(()=>{l.ensure(no,n)})})}else jt(i,f),l.ensure(ro,r&&(k=>r(k,i)));return d&&me(!0),()=>{v=!0}})}function B(e,t,n=!1){var r;U&&(r=G,Ge());var s=new Zn(e),a=n?$t:0;function i(o,l){if(U){var u=Wa(r);if(o!==parseInt(u.substring(1))){var f=Sn();he(f),s.anchor=f,me(!1),s.ensure(o,l),me(!0);return}}s.ensure(o,l)}Ut(()=>{var o=!1;t((l,u=0)=>{o=!0,i(u,l)}),o||i(-1,null)},a)}const sh=Symbol("NaN");function ah(e,t,n){U&&Ge();var r=new Zn(e);Ut(()=>{var s=t();s!==s&&(s=sh),r.ensure(s,n)})}function ih(e,t){U&&he(ke(e)),Re(()=>{var n=t();for(var r in n){var s=n[r];s?e.style.setProperty(r,s):e.style.removeProperty(r)}})}function an(e,t){return t}function oh(e,t,n){for(var r=[],s=t.length,a,i=t.length,o=0;o<s;o++){let v=t[o];mn(v,()=>{if(a){if(a.pending.delete(v),a.done.add(v),a.pending.size===0){var d=e.outrogroups;$a(e,Ss(a.done)),d.delete(a),d.size===0&&(e.outrogroups=null)}}else i-=1},!1)}if(i===0){var l=r.length===0&&n!==null;if(l){var u=n,f=u.parentNode;ei(f),f.append(u),e.items.clear()}$a(e,t,!l)}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 o of i)r.add(e.items.get(o).e)}for(var s=0;s<t.length;s++){var a=t[s];if(r?.has(a)){a.f|=Mt;const i=document.createDocumentFragment();ai(a,i)}else Le(t[s],n)}}var so;function be(e,t,n,r,s,a=null){var i=e,o=new Map,l=(t&Wo)!==0;if(l){var u=e;i=U?he(ke(u)):u.appendChild(ze())}U&&Ge();var f=null,v=Ja(()=>{var g=n();return Yn(g)?g:g==null?[]:Ss(g)}),d,w=new Map,_=!0;function k(g){h.effect.f&Qe||(h.pending.delete(g),h.fallback=f,lh(h,d,i,t,r),f!==null&&(d.length===0?f.f&Mt?(f.f^=Mt,cr(f,null,i)):si(f):mn(f,()=>{f=null})))}function y(g){h.pending.delete(g)}var A=Ut(()=>{d=c(v);var g=d.length;let S=!1;if(U){var P=Wa(i)===ws;P!==(g===0)&&(i=Sn(),he(i),me(!1),S=!0)}for(var T=new Set,D=J,L=Vl(),C=0;C<g;C+=1){U&&G.nodeType===Xt&&G.data===ks&&(i=G,S=!0,me(!1));var O=d[C],E=r(O,C),q=_?null:o.get(E);q?(q.v&&jt(q.v,O),q.i&&jt(q.i,C),L&&D.unskip_effect(q.e)):(q=ch(o,_?i:so??=ze(),O,E,C,s,t,n),_||(q.e.f|=Mt),o.set(E,q)),T.add(E)}if(g===0&&a&&!f&&(_?f=Be(()=>a(i)):(f=Be(()=>a(so??=ze())),f.f|=Mt)),g>T.size&&Pf(),U&&g>0&&he(Sn()),!_)if(w.set(D,T),L){for(const[F,z]of o)T.has(F)||D.skip_effect(z.e);D.oncommit(k),D.ondiscard(y)}else k(D);S&&me(!0),c(v)}),h={effect:A,items:o,pending:w,outrogroups:null,fallback:f};_=!1,U&&(i=G)}function ar(e){for(;e!==null&&!(e.f&Rt);)e=e.next;return e}function lh(e,t,n,r,s){var a=(r&af)!==0,i=t.length,o=e.items,l=ar(e.effect.first),u,f=null,v,d=[],w=[],_,k,y,A;if(a)for(A=0;A<i;A+=1)_=t[A],k=s(_,A),y=o.get(k).e,y.f&Mt||(y.nodes?.a?.measure(),(v??=new Set).add(y));for(A=0;A<i;A+=1){if(_=t[A],k=s(_,A),y=o.get(k).e,e.outrogroups!==null)for(const O of e.outrogroups)O.pending.delete(y),O.done.delete(y);if(y.f&He&&(si(y),a&&(y.nodes?.a?.unfix(),(v??=new Set).delete(y))),y.f&Mt)if(y.f^=Mt,y===l)cr(y,null,n);else{var h=f?f.next:l;y===e.effect.last&&(e.effect.last=y.prev),y.prev&&(y.prev.next=y.next),y.next&&(y.next.prev=y.prev),Qt(e,f,y),Qt(e,y,h),cr(y,h,n),f=y,d=[],w=[],l=ar(f.next);continue}if(y!==l){if(u!==void 0&&u.has(y)){if(d.length<w.length){var g=w[0],S;f=g.prev;var P=d[0],T=d[d.length-1];for(S=0;S<d.length;S+=1)cr(d[S],g,n);for(S=0;S<w.length;S+=1)u.delete(w[S]);Qt(e,P.prev,T.next),Qt(e,f,P),Qt(e,T,g),l=g,f=T,A-=1,d=[],w=[]}else u.delete(y),cr(y,l,n),Qt(e,y.prev,y.next),Qt(e,y,f===null?e.effect.first:f.next),Qt(e,f,y),f=y;continue}for(d=[],w=[];l!==null&&l!==y;)(u??=new Set).add(l),w.push(l),l=ar(l.next);if(l===null)continue}y.f&Mt||d.push(y),f=y,l=ar(y.next)}if(e.outrogroups!==null){for(const O of e.outrogroups)O.pending.size===0&&($a(e,Ss(O.done)),e.outrogroups?.delete(O));e.outrogroups.size===0&&(e.outrogroups=null)}if(l!==null||u!==void 0){var D=[];if(u!==void 0)for(y of u)y.f&He||D.push(y);for(;l!==null;)!(l.f&He)&&l!==e.fallback&&D.push(l),l=ar(l.next);var L=D.length;if(L>0){var C=r&Wo&&i===0?n:null;if(a){for(A=0;A<L;A+=1)D[A].nodes?.a?.measure();for(A=0;A<L;A+=1)D[A].nodes?.a?.fix()}oh(e,D,C)}}a&&We(()=>{if(v!==void 0)for(y of v)y.nodes?.a?.apply()})}function ch(e,t,n,r,s,a,i,o){var l=i&rf?i&of?ct(n):Rs(n,!1,!1):null,u=i&sf?ct(s):null;return{v:l,i:u,e:Be(()=>(a(t,l??n,u??s,o),()=>{e.delete(r)}))}}function cr(e,t,n){if(e.nodes)for(var r=e.nodes.start,s=e.nodes.end,a=t&&!(t.f&Mt)?t.nodes.start:n;r!==null;){var i=ut(r);if(a.before(r),r===s)return;r=i}}function Qt(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function uh(e,t,n=!1,r=!1,s=!1,a=!1){var i=e,o="";if(n){var l=e;U&&(i=he(ke(l)))}V(()=>{var u=Y;if(o===(o=t()??"")){U&&Ge();return}if(n&&!U){u.nodes=null,l.innerHTML=o,o!==""&&Oe(ke(l),l.lastChild);return}if(u.nodes!==null&&(Xl(u.nodes.start,u.nodes.end),u.nodes=null),o!==""){if(U){G.data;for(var f=Ge(),v=f;f!==null&&(f.nodeType!==Xt||f.data!=="");)v=f,f=ut(f);if(f===null)throw Cr(),bn;Oe(G,v),i=he(f);return}var d=r?Ar:s?Fa:void 0,w=un(r?"svg":s?"math":"template",d);w.innerHTML=o;var _=r||s?w:w.content;if(Oe(ke(_),_.lastChild),r||s)for(;ke(_);)i.before(ke(_));else i.before(_)}})}function fh(e,t,n,r,s){U&&Ge();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 dh(e){const t={};e.children&&(t.default=!0);for(const n in e.$$slots)t[n]=!0;return t}function Nr(e,t,n){var r;U&&(r=G,Ge());var s=new Zn(e);Ut(()=>{var a=t()??null;if(U){var i=Wa(r),o=i===ys,l=a!==null;if(o!==l){var u=Sn();he(u),s.anchor=u,me(!1),s.ensure(a,a&&(f=>n(f,a))),me(!0);return}}s.ensure(a,a&&(f=>n(f,a)))},$t)}const vh=()=>performance.now(),Nt={tick:e=>requestAnimationFrame(e),now:()=>vh(),tasks:new Set};function yc(){const e=Nt.now();Nt.tasks.forEach(t=>{t.c(e)||(Nt.tasks.delete(t),t.f())}),Nt.tasks.size!==0&&Nt.tick(yc)}function hh(e){let t;return Nt.tasks.size===0&&Nt.tick(yc),{promise:new Promise(n=>{Nt.tasks.add(t={c:e,f:n})}),abort(){Nt.tasks.delete(t)}}}function cs(e,t){fn(()=>{e.dispatchEvent(new CustomEvent(t))})}function ph(e){if(e==="float")return"cssFloat";if(e==="offset")return"cssOffset";if(e.startsWith("--"))return e;const t=e.split("-");return t.length===1?t[0]:t[0]+t.slice(1).map(n=>n[0].toUpperCase()+n.slice(1)).join("")}function ao(e){const t={},n=e.split(";");for(const r of n){const[s,a]=r.split(":");if(!s||a===void 0)break;const i=ph(s.trim());t[i]=a.trim()}return t}const gh=e=>e;let wc=null;function io(e){wc=e}function mh(e,t,n){var r=wc??Y,s=r.nodes,a,i,o,l=null;s.a??={element:e,measure(){a=this.element.getBoundingClientRect()},apply(){if(o?.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?.());o=us(this.element,u,void 0,1,()=>{o?.abort(),o=void 0})}},fix(){if(!e.getAnimations().length){var{position:u,width:f,height:v}=getComputedStyle(e);if(u!=="absolute"&&u!=="fixed"){var d=e.style;l={position:d.position,width:d.width,height:d.height,transform:d.transform},d.position="absolute",d.width=f,d.height=v;var w=e.getBoundingClientRect();if(a.left!==w.left||a.top!==w.top){var _=`translate(${a.left-w.left}px, ${a.top-w.top}px)`;d.transform=d.transform?`${d.transform} ${_}`:_}}}},unfix(){if(l){var u=e.style;u.position=l.position,u.width=l.width,u.height=l.height,u.transform=l.transform}}},s.a.element=e}function _h(e,t,n,r){var s=(e&ff)!==0,a=(e&df)!==0,i=s&&a,o=(e&vf)!==0,l=i?"both":s?"in":"out",u,f=t.inert,v=t.style.overflow,d,w;function _(){return fn(()=>u??=n()(t,r?.()??{},{direction:l}))}var k={is_global:o,in(){if(t.inert=f,!s){w?.abort(),w?.reset?.();return}a||d?.abort(),d=us(t,_(),w,1,()=>{cs(t,"introend"),d?.abort(),d=u=void 0,t.style.overflow=v})},out(g){if(!a){g?.(),u=void 0;return}t.inert=!0,w=us(t,_(),d,0,()=>{cs(t,"outroend"),g?.()})},stop:()=>{d?.abort(),w?.abort()}},y=Y;if((y.nodes.t??=[]).push(k),s&&ls){var A=o;if(!A){for(var h=y.parent;h&&h.f&$t;)for(;(h=h.parent)&&!(h.f&At););A=!h||(h.f&Yt)!==0}A&&ft(()=>{_e(()=>k.in())})}}function us(e,t,n,r,s){var a=r===1;if(Dn(t)){var i,o=!1;return We(()=>{if(!o){var y=t({direction:a?"in":"out"});i=us(e,y,n,r,s)}}),{abort:()=>{o=!0,i?.abort()},deactivate:()=>i.deactivate(),reset:()=>i.reset(),t:()=>i.t()}}if(n?.deactivate(),!t?.duration&&!t?.delay)return cs(e,a?"introstart":"outrostart"),s(),{abort:it,deactivate:it,reset:it,t:()=>r};const{delay:l=0,css:u,tick:f,easing:v=gh}=t;var d=[];if(a&&n===void 0&&(f&&f(0,1),u)){var w=ao(u(0,1));d.push(w,w)}var _=()=>1-r,k=e.animate(d,{duration:l,fill:"forwards"});return k.onfinish=()=>{k.cancel(),cs(e,a?"introstart":"outrostart");var y=n?.t()??1-r;n?.abort();var A=r-y,h=t.duration*Math.abs(A),g=[];if(h>0){var S=!1;if(u)for(var P=Math.ceil(h/16.666666666666668),T=0;T<=P;T+=1){var D=y+A*v(T/P),L=ao(u(D,1-D));g.push(L),S||=L.overflow==="hidden"}S&&(e.style.overflow="hidden"),_=()=>{var C=k.currentTime;return y+A*v(C/h)},f&&hh(()=>{if(k.playState!=="running")return!1;var C=_();return f(C,1-C),!0})}k=e.animate(g,{duration:h,fill:"forwards"}),k.onfinish=()=>{_=()=>r,f?.(r,1-r),s()}},{abort:()=>{k&&(k.cancel(),k.effect=null,k.onfinish=it)},deactivate:()=>{s=it},reset:()=>{r===0&&f?.(1,0)},t:()=>_()}}function bh(e,t,n,r,s,a){let i=U;U&&Ge();var o=null;U&&G.nodeType===sl&&(o=G,Ge());var l=U?G:e,u=Y,f=new Zn(l,!1);Ut(()=>{const v=t()||null;var d=s?s():n||v==="svg"?Ar:void 0;if(v===null){f.ensure(null,null),Mn(!0);return}return f.ensure(v,w=>{if(v){if(o=U?o:un(v,d),Oe(o,o),r){U&&Dv(v)&&o.append(document.createComment(""));var _=U?ke(o):o.appendChild(ze());U&&(_===null?me(!1):he(_)),io(u),r(o,_),io(null)}Y.nodes.end=o,w.before(o)}U&&he(w)}),Mn(!0),()=>{v&&Mn(!1)}},$t),dt(()=>{Mn(!0)}),i&&(me(!0),he(l))}function yh(e,t){let n=null,r=U;var s;if(U){n=G;for(var a=ke(document.head);a!==null&&(a.nodeType!==Xt||a.data!==e);)a=ut(a);if(a===null)me(!1);else{var i=ut(a);a.remove(),he(i)}}U||(s=document.head.appendChild(ze()));try{Ut(()=>t(s),nl|cn)}finally{r&&(me(!0),he(n))}}function wh(e,t){ft(()=>{var n=e.getRootNode(),r=n.host?n:n.head??n.ownerDocument.head;if(!r.querySelector("#"+t.hash)){const s=un("style");s.id=t.hash,s.textContent=t.code,r.appendChild(s)}})}function kc(e,t,n){ft(()=>{var r=_e(()=>t(e,n?.())||{});if(n&&r?.update){var s=!1,a={};Re(()=>{var i=n();oi(i),s&&ul(a,i)&&(a=i,r.update(i))}),s=!0}if(r?.destroy)return()=>r.destroy()})}function ci(e,t){var n=void 0,r;Gl(()=>{n!==(n=t())&&(r&&(Le(r),r=null),n&&(r=Be(()=>{ft(()=>n(e))})))})}const kh=/[&"<]/g;function Sh(e,t){const n=String(e??""),r=kh;r.lastIndex=0;let s="",a=0;for(;r.test(n);){const i=r.lastIndex-1,o=n[i];s+=n.substring(a,i)+(o==="&"?"&amp;":o==='"'?"&quot;":"&lt;"),a=i+1}return s+n.substring(a)}function Sc(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=Sc(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function xh(){for(var e,t,n=0,r="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=Sc(e))&&(r&&(r+=" "),r+=t);return r}const oo={translate:new Map([[!0,"yes"],[!1,"no"]])};function Eh(e,t,n=!1){if(e==="hidden"&&t!=="until-found"&&(n=!0),t==null||!t&&n)return"";const r=_f.call(oo,e)&&oo[e].get(t)||t,s=n?'=""':`="${Sh(r)}"`;return` ${e}${s}`}function xc(e){return typeof e=="object"?xh(e):e??""}const lo=[...`
6
+ \r\f \v\uFEFF`];function Ih(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 o=i+a;(i===0||lo.includes(r[i-1]))&&(o===r.length||lo.includes(r[o]))?r=(i===0?"":r.substring(0,i))+r.substring(o+1):i=o}}return r===""?null:r}function co(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 sa(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function Ah(e,t){if(t){var n="",r,s;if(Array.isArray(t)?(r=t[0],s=t[1]):r=t,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var a=!1,i=0,o=!1,l=[];r&&l.push(...Object.keys(r).map(sa)),s&&l.push(...Object.keys(s).map(sa));var u=0,f=-1;const k=e.length;for(var v=0;v<k;v++){var d=e[v];if(o?d==="/"&&e[v-1]==="*"&&(o=!1):a?a===d&&(a=!1):d==="/"&&e[v+1]==="*"?o=!0:d==='"'||d==="'"?a=d:d==="("?i++:d===")"&&i--,!o&&a===!1&&i===0){if(d===":"&&f===-1)f=v;else if(d===";"||v===k-1){if(f!==-1){var w=sa(e.substring(u,f).trim());if(!l.includes(w)){d!==";"&&v++;var _=e.substring(u,v).trim();n+=" "+_+";"}}u=v+1,f=-1}}}}return r&&(n+=co(r)),s&&(n+=co(s,!0)),n=n.trim(),n===""?null:n}return e==null?null:String(e)}function De(e,t,n,r,s,a){var i=e.__className;if(U||i!==n||i===void 0){var o=Ih(n,r,a);(!U||o!==e.getAttribute("class"))&&(o==null?e.removeAttribute("class"):t?e.className=o:e.setAttribute("class",o)),e.__className=n}else if(a&&s!==a)for(var l in a){var u=!!a[l];(s==null||u!==!!s[l])&&e.classList.toggle(l,u)}return a}function aa(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 Bt(e,t,n,r){var s=e.__style;if(U||s!==t){var a=Ah(t,r);(!U||a!==e.getAttribute("style"))&&(a==null?e.removeAttribute("style"):e.style.cssText=a),e.__style=t}else r&&(Array.isArray(r)?(aa(e,n?.[0],r[0]),aa(e,n?.[1],r[1],"important")):aa(e,n,r));return r}function br(e,t,n=!1){if(e.multiple){if(t==null)return;if(!Yn(t))return nd();for(var r of e.options)r.selected=t.includes(vr(r));return}for(r of e.options){var s=vr(r);if(Ml(s,t)){r.selected=!0;return}}(!n||t!==void 0)&&(e.selectedIndex=-1)}function ui(e){var t=new MutationObserver(()=>{br(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),dt(()=>{t.disconnect()})}function fs(e,t,n=t){var r=new WeakSet,s=!0;Lr(e,"change",a=>{var i=a?"[selected]":":checked",o;if(e.multiple)o=[].map.call(e.querySelectorAll(i),vr);else{var l=e.querySelector(i)??e.querySelector("option:not([disabled])");o=l&&vr(l)}n(o),e.__value=o,J!==null&&r.add(J)}),ft(()=>{var a=t();if(e===document.activeElement){var i=J;if(r.has(i))return}if(br(e,a,s),s&&a===void 0){var o=e.querySelector(":checked");o!==null&&(a=vr(o),n(a))}e.__value=a,s=!1}),ui(e)}function vr(e){return"__value"in e?e.__value:e.value}const Ln=Symbol("class"),On=Symbol("style"),Ec=Symbol("is custom element"),Ic=Symbol("is html"),Th=Tn?"link":"LINK",Rh=Tn?"input":"INPUT",Ch=Tn?"option":"OPTION",$h=Tn?"select":"SELECT",Dh=Tn?"progress":"PROGRESS";function Ee(e){if(U){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,We(n),Fl()}}function Ph(e,t){var n=Ps(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==Dh)||(e.value=t??"")}function Lh(e,t){var n=Ps(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function Ac(e,t){t?e.hasAttribute("selected")||e.setAttribute("selected",""):e.removeAttribute("selected")}function Oh(e,t){const n=e.checked;e.defaultChecked=t,e.checked=n}function Nh(e,t){const n=e.value;e.defaultValue=t,e.value=n}function Te(e,t,n,r){var s=Ps(e);U&&(s[t]=e.getAttribute(t),t==="src"||t==="srcset"||t==="href"&&e.nodeName===Th)||s[t]!==(s[t]=n)&&(t==="loading"&&(e[kf]=n),n==null?e.removeAttribute(t):typeof n!="string"&&fi(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function Mh(e,t,n){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n)}function zh(e,t,n){var r=re,s=Y;let a=U;U&&me(!1),et(null),Ue(null);try{t!=="style"&&(Da.has(e.getAttribute("is")||e.nodeName)||!customElements||customElements.get(e.getAttribute("is")||e.nodeName.toLowerCase())?fi(e).includes(t):n&&typeof n=="object")?e[t]=n:Te(e,t,n==null?n:String(n))}finally{et(r),Ue(s),a&&me(!0)}}function jh(e,t,n,r,s=!1,a=!1){if(U&&s&&e.nodeName===Rh){var i=e,o=i.type==="checkbox"?"defaultChecked":"defaultValue";o in n||Ee(i)}var l=Ps(e),u=l[Ec],f=!l[Ic];let v=U&&u;v&&me(!1);var d=t||{},w=e.nodeName===Ch;for(var _ in t)_ in n||(n[_]=null);n.class?n.class=xc(n.class):(r||n[Ln])&&(n.class=null),n[On]&&(n.style??=null);var k=fi(e);for(const T in n){let D=n[T];if(w&&T==="value"&&D==null){e.value=e.__value="",d[T]=D;continue}if(T==="class"){var y=e.namespaceURI==="http://www.w3.org/1999/xhtml";De(e,y,D,r,t?.[Ln],n[Ln]),d[T]=D,d[Ln]=n[Ln];continue}if(T==="style"){Bt(e,D,t?.[On],n[On]),d[T]=D,d[On]=n[On];continue}var A=d[T];if(!(D===A&&!(D===void 0&&e.hasAttribute(T)))){d[T]=D;var h=T[0]+T[1];if(h!=="$$")if(h==="on"){const L={},C="$$"+T;let O=T.slice(2);var g=Iv(O);if(xv(O)&&(O=O.slice(0,-7),L.capture=!0),!g&&A){if(D!=null)continue;e.removeEventListener(O,d[C],L),d[C]=null}if(g)H(O,e,D),pe([O]);else if(D!=null){let E=function(q){d[T].call(this,q)};d[C]=oc(O,e,E,L)}}else if(T==="style")Te(e,T,D);else if(T==="autofocus")Bl(e,!!D);else if(!u&&(T==="__value"||T==="value"&&D!=null))e.value=e.__value=D;else if(T==="selected"&&w)Ac(e,D);else{var S=T;f||(S=Tv(S));var P=S==="defaultValue"||S==="defaultChecked";if(D==null&&!u&&!P)if(l[T]=null,S==="value"||S==="checked"){let L=e;const C=t===void 0;if(S==="value"){let O=L.defaultValue;L.removeAttribute(S),L.defaultValue=O,L.value=L.__value=C?O:null}else{let O=L.defaultChecked;L.removeAttribute(S),L.defaultChecked=O,L.checked=C?O:!1}}else e.removeAttribute(T);else P||k.includes(S)&&(u||typeof D!="string")?(e[S]=D,S in l&&(l[S]=we)):typeof D!="function"&&Te(e,S,D)}}}return v&&me(!0),d}function qh(e,t,n=[],r=[],s=[],a,i=!1,o=!1){$r(s,n,r,l=>{var u=void 0,f={},v=e.nodeName===$h,d=!1;if(Gl(()=>{var _=t(...l.map(c)),k=jh(e,u,_,a,i,o);d&&v&&"value"in _&&br(e,_.value);for(let A of Object.getOwnPropertySymbols(f))_[A]||Le(f[A]);for(let A of Object.getOwnPropertySymbols(_)){var y=_[A];A.description===Xo&&(!u||y!==u[A])&&(f[A]&&Le(f[A]),f[A]=Be(()=>ci(e,()=>y))),k[A]=y}u=k}),v){var w=e;ft(()=>{br(w,u.value,!0),ui(w)})}d=!0})}function Ps(e){return e.__attributes??={[Ec]:e.nodeName.includes("-"),[Ic]:e.namespaceURI===Yo}}var Da=new Map;function fi(e){var t=e.getAttribute("is")||e.nodeName,n=Da.get(t);if(n)return n;Da.set(t,n=[]);for(var r,s=e,a=Element.prototype;a!==s;){r=Zo(s);for(var i in r)r[i].set&&n.push(i);s=xs(s)}return n}let ia=null;function Tc(){if(ia===null){var e=un("select");e.innerHTML=lc("<option><span>t</span></option>"),ia=e.firstChild?.firstChild?.nodeType===1}return ia}function Vh(e,t){Tc()&&ci(e,()=>()=>{const n=e.closest("select");if(!n)return;const r=new MutationObserver(s=>{var a=!1;for(const i of s){if(i.target===e)return;a||=!!i.target.parentElement?.closest("option")?.selected}a&&(e.replaceWith(e=e.cloneNode(!0)),t(e))});return r.observe(n,{childList:!0,characterData:!0,subtree:!0}),()=>{r.disconnect()}})}function Uh(e,t){var n=U;Tc()||(me(!1),e.textContent="",e.append(Ul("")));try{t()}finally{n&&(U?p(e):(me(!0),he(e)))}}function Bh(e){nt(document,["focusin","focusout"],t=>{t&&t.type==="focusout"&&t.relatedTarget||e(document.activeElement)})}function Pe(e,t,n=t){var r=new WeakSet;Lr(e,"input",async s=>{var a=s?e.defaultValue:e.value;if(a=la(e)?ca(a):a,n(a),J!==null&&r.add(J),await ii(),a!==(a=t())){var i=e.selectionStart,o=e.selectionEnd,l=e.value.length;if(e.value=a??"",o!==null){var u=e.value.length;i===o&&o===l&&u>l?(e.selectionStart=u,e.selectionEnd=u):(e.selectionStart=i,e.selectionEnd=Math.min(o,u))}}}),(U&&e.defaultValue!==e.value||_e(t)==null&&e.value)&&(n(la(e)?ca(e.value):e.value),J!==null&&r.add(J)),Re(()=>{var s=t();if(e===document.activeElement){var a=J;if(r.has(a))return}la(e)&&s===ca(e.value)||e.type==="date"&&!s&&!e.value||s!==e.value&&(e.value=s??"")})}const oa=new Set;function Fh(e,t,n,r,s=r){var a=n.getAttribute("type")==="checkbox",i=e;let o=!1;if(t!==null)for(var l of t)i=i[l]??=[];i.push(n),Lr(n,"change",()=>{var u=n.__value;a&&(u=uo(i,u,n.checked)),s(u)},()=>s(a?[]:null)),Re(()=>{var u=r();if(U&&n.defaultChecked!==n.checked){o=!0;return}a?(u=u||[],n.checked=u.includes(n.__value)):n.checked=Ml(n.__value,u)}),dt(()=>{var u=i.indexOf(n);u!==-1&&i.splice(u,1)}),oa.has(i)||(oa.add(i),We(()=>{i.sort((u,f)=>u.compareDocumentPosition(f)===4?-1:1),oa.delete(i)})),We(()=>{if(o){var u;if(a)u=uo(i,u,n.checked);else{var f=i.find(v=>v.checked);u=f?.__value}s(u)}})}function Jr(e,t,n=t){Lr(e,"change",r=>{var s=r?e.defaultChecked:e.checked;n(s)}),(U&&e.defaultChecked!==e.checked||_e(t)==null)&&n(e.checked),Re(()=>{var r=t();e.checked=!!r})}function uo(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 la(e){var t=e.type;return t==="number"||t==="range"}function ca(e){return e===""?null:+e}function Hh(e,t,n=t){Lr(e,"change",()=>{n(e.files)}),U&&e.files&&n(e.files),Re(()=>{e.files=t()})}function di(e){for(var t=[],n=0;n<e.length;n+=1)t.push({start:e.start(n),end:e.end(n)});return t}function Wh(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),Re(()=>{var i=Number(t());s!==i&&!isNaN(i)&&(e.currentTime=s=i)}),dt(()=>{cancelAnimationFrame(r),e.removeEventListener("timeupdate",a)})}function Kh(e,t){var n;nt(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=di(r),t(n))})}function Gh(e,t){nt(e,["loadedmetadata"],()=>t(di(e.seekable)))}function Yh(e,t){nt(e,["timeupdate"],()=>t(di(e.played)))}function Xh(e,t){nt(e,["seeking","seeked"],()=>t(e.seeking))}function Jh(e,t){nt(e,["timeupdate","ended"],()=>t(e.ended))}function Zh(e,t){nt(e,["loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","emptied"],()=>t(e.readyState))}function Qh(e,t,n=t){ft(()=>{var r=Number(t());r!==e.playbackRate&&!isNaN(r)&&(e.playbackRate=r)}),ft(()=>{nt(e,["ratechange"],()=>{n(e.playbackRate)})})}function ep(e,t,n=t){var r=t(),s=()=>{r!==e.paused&&n(r=e.paused)};nt(e,["play","pause","canplay"],s,r==null),ft(()=>{(r=!!t())!==e.paused&&(r?e.pause():e.play().catch(a=>{throw n(r=!0),a}))})}function tp(e,t,n=t){var r=()=>{n(e.volume)};t()==null&&r(),nt(e,["volumechange"],r,!1),Re(()=>{var s=Number(t());s!==e.volume&&!isNaN(s)&&(e.volume=s)})}function np(e,t,n=t){var r=()=>{n(e.muted)};t()==null&&r(),nt(e,["volumechange"],r,!1),Re(()=>{var s=!!t();e.muted!==s&&(e.muted=s)})}function rp(e){nt(window,["online","offline"],()=>{e(navigator.onLine)})}function sp(e,t,n){var r=It(e,t);r&&r.set&&(e[t]=n,dt(()=>{e[t]=null}))}class Mr{#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){Mr.entries.set(n.target,n);for(var r of this.#e.get(n.target)||[])r(n)}}))}}var ap=new Mr({box:"content-box"}),Rc=new Mr({box:"border-box"}),ip=new Mr({box:"device-pixel-content-box"});function op(e,t,n){var r=t==="contentRect"||t==="contentBoxSize"?ap:t==="borderBoxSize"?Rc:ip,s=r.observe(e,a=>n(a[t]));dt(s)}function lp(e,t,n){var r=Rc.observe(e,()=>n(e[t]));ft(()=>(_e(()=>n(e[t])),r))}function fo(e,t){return e===t||e?.[Ve]===t}function kt(e={},t,n,r){var s=ue.r,a=Y;return ft(()=>{var i,o;return Re(()=>{i=o,o=r?.()||[],_e(()=>{e!==n(...o)&&(t(e,...o),i&&fo(n(...i),e)&&t(null,...i))})}),()=>{let l=a;for(;l!==s&&l.parent!==null&&l.parent.f&ba;)l=l.parent;const u=()=>{o&&fo(n(...o),e)&&t(null,...o)},f=l.teardown;l.teardown=()=>{u(),f?.()}}}),e}function cp(e,t,n,r=n){t.addEventListener("input",()=>{r(t[e])}),Re(()=>{var s=n();if(t[e]!==s)if(s==null){var a=t[e];r(a)}else t[e]=s+""})}function up(e,t,n,r,s){var a=()=>{r(n[e])};n.addEventListener(t,a),s?Re(()=>{n[e]=s()}):a(),(n===document.body||n===window||n===document)&&dt(()=>{n.removeEventListener(t,a)})}function fp(e,t){nt(e,["focus","blur"],()=>{t(e===document.activeElement)})}function dp(e,t,n=t){var r=e==="x",s=()=>fn(()=>{a=!0,clearTimeout(i),i=setTimeout(o,100),n(window[r?"scrollX":"scrollY"])});addEventListener("scroll",s,{passive:!0});var a=!1,i,o=()=>{a=!1},l=!0;Re(()=>{var u=t();l?l=!1:!a&&u!=null&&(a=!0,clearTimeout(i),r?scrollTo(u,window.scrollY):scrollTo(window.scrollX,u),i=setTimeout(o,100))}),ft(s),dt(()=>{removeEventListener("scroll",s)})}function vp(e,t){nt(window,["resize"],()=>fn(()=>t(window[e])))}function hp(e){return function(...t){var n=t[0];n.isTrusted&&e?.apply(this,t)}}function pp(e){return function(...t){var n=t[0];n.target===this&&e?.apply(this,t)}}function gp(e){return function(...t){var n=t[0];return n.stopPropagation(),e?.apply(this,t)}}function mp(e){var t=!1;return function(...n){if(!t)return t=!0,e?.apply(this,n)}}function _p(e){return function(...t){var n=t[0];return n.stopImmediatePropagation(),e?.apply(this,t)}}function bp(e){return function(...t){var n=t[0];return n.preventDefault(),e?.apply(this,t)}}function yp(e=!1){const t=ue,n=t.l.u;if(!n)return;let r=()=>oi(t.s);if(e){let s=0,a={};const i=Pr(()=>{let o=!1;const l=t.s;for(const u in l)l[u]!==a[u]&&(a[u]=l[u],o=!0);return o&&s++,s});r=()=>c(i)}n.b.length&&Wl(()=>{vo(t,r),ma(n.b)}),Ke(()=>{const s=_e(()=>n.m.map(bf));return()=>{for(const a of s)typeof a=="function"&&a()}}),n.a.length&&Ke(()=>{vo(t,r),ma(n.a)})}function vo(e,t){if(e.l.s)for(const n of e.l.s)c(n);t()}function wp(e){var t=ct(0);return function(){return arguments.length===1?(b(t,c(t)+1),arguments[0]):(c(t),e())}}function kp(e,t){var n=e.$$events?.[t.type],r=Yn(n)?n.slice():n==null?[]:[n];for(var s of r)s.call(this,t)}function Sp(e,t,n){e.$$events||={},e.$$events[t]||=[],e.$$events[t].push(n)}function xp(e){for(var t in e)t in this&&(this[t]=e[t])}function Ep(e,t=1){const n=e();return e(n+t),n}function Ip(e,t=1){const n=e()+t;return e(n),n}const Ap={get(e,t){if(!e.exclude.includes(t))return e.props[t]},set(e,t){return!1},getOwnPropertyDescriptor(e,t){if(!e.exclude.includes(t)&&t in e.props)return{enumerable:!0,configurable:!0,value:e.props[t]}},has(e,t){return e.exclude.includes(t)?!1:t in e.props},ownKeys(e){return Reflect.ownKeys(e.props).filter(t=>!e.exclude.includes(t))}};function Tp(e,t,n){return new Proxy({props:e,exclude:t},Ap)}const Rp={get(e,t){if(!e.exclude.includes(t))return c(e.version),t in e.special?e.special[t]():e.props[t]},set(e,t,n){if(!(t in e.special)){var r=Y;try{Ue(e.parent_effect),e.special[t]=on({get[t](){return e.props[t]}},t,Ko)}finally{Ue(r)}}return e.special[t](n),Fn(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),Fn(e.version)),!0},has(e,t){return e.exclude.includes(t)?!1:t in e.props},ownKeys(e){return Reflect.ownKeys(e.props).filter(t=>!e.exclude.includes(t))}};function Cp(e,t){return new Proxy({props:e,exclude:t,special:{},version:ct(0),parent_effect:Y},Rp)}const $p={get(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(Dn(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];Dn(s)&&(s=s());const a=It(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(Dn(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r){const s=It(r,t);return s&&!s.configurable&&(s.configurable=!0),s}}},has(e,t){if(t===Ve||t===Es)return!1;for(let n of e.props)if(Dn(n)&&(n=n()),n!=null&&t in n)return!0;return!1},ownKeys(e){const t=[];for(let n of e.props)if(Dn(n)&&(n=n()),!!n){for(const r in n)t.includes(r)||t.push(r);for(const r of Object.getOwnPropertySymbols(n))t.includes(r)||t.push(r)}return t}};function zr(...e){return new Proxy({props:e},$p)}function on(e,t,n,r){var s=(n&cf)!==0,a=(n&uf)!==0,i=r,o=!0,l=()=>(o&&(o=!1,i=a?_e(r):r),i);let u;if(s){var f=Ve in e||Es in e;u=It(e,t)?.set??(f&&t in e?h=>e[t]=h:void 0)}var v,d=!1;s?[v,d]=xl(()=>e[t]):v=e[t],v===void 0&&r!==void 0&&(v=l(),u&&(Bf(),u(v)));var w;if(w=()=>{var h=e[t];return h===void 0?l():(o=!0,h)},!(n&Ko))return w;if(u){var _=e.$$legacy;return function(h,g){return arguments.length>0?((!g||_||d)&&u(g?w():h),h):w()}}var k=!1,y=(n&lf?Pr:Ja)(()=>(k=!1,w()));s&&c(y);var A=Y;return function(h,g){if(arguments.length>0){const S=g?c(y):s?ce(h):h;return b(y,S),k=!0,i!==void 0&&(i=S),h}return Gt&&k||A.f&Qe?y.v:c(y)}}function Dp(e,t,n,r,s,a){Cl(t,()=>{var i=!1;Ka?.[at],Re(()=>{if(!i){var[o,l]=xl(n);if(!l){var u=r(),f=!1,v=Re(()=>{f||o[u]});f=!0,v.deps===null&&(Yf(),i=!0)}}})})}function Pp(e){return new Lp(e)}class Lp{#e;#t;constructor(t){var n=new Map,r=(a,i)=>{var o=Rs(i,!1,!1);return n.set(a,o),o};const s=new Proxy({...t.props||{},$$events:{}},{get(a,i){return c(n.get(i)??r(i,Reflect.get(a,i)))},has(a,i){return i===Es?!0:(c(n.get(i)??r(i,Reflect.get(a,i))),Reflect.has(a,i))},set(a,i,o){return b(n.get(i)??r(i,o),o),Reflect.set(a,i,o)}});this.#t=(t.hydrate?dc:qe)(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)&&sn(),this.#e=s.$$events;for(const a of Object.keys(this.#t))a==="$set"||a==="$destroy"||a==="$on"||yn(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=()=>{Ze(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 Cc;typeof HTMLElement=="function"&&(Cc=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=un("slot");r!=="default"&&(a.name=r),I(s,a)}};if(await Promise.resolve(),!this.$$cn||this.$$c)return;const t={},n=Op(this);for(const r of this.$$s)r in n&&(r==="default"&&!this.$$d.children?(this.$$d.children=e(r),t.default=!0):t[r]=e(r));for(const r of this.attributes){const s=this.$$g_p(r.name);s in this.$$d||(this.$$d[s]=Zr(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=Pp({component:this.$$ctor,target:this.$$shadowRoot||this,props:{...this.$$d,$$slots:t,$$host:this}}),this.$$me=ni(()=>{Re(()=>{this.$$r=!0;for(const r of rs(this.$$c)){if(!this.$$p_d[r]?.reflect)continue;this.$$d[r]=this.$$c[r];const s=Zr(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]=Zr(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 rs(this.$$p_d).find(t=>this.$$p_d[t].attribute===e||!this.$$p_d[t].attribute&&t.toLowerCase()===e)||e}});function Zr(e,t,n,r){const s=n[e]?.type;if(t=s==="Boolean"&&typeof t!="boolean"?t!=null:t,!r||!n[e])return t;if(r==="toAttribute")switch(s){case"Object":case"Array":return t==null?null:JSON.stringify(t);case"Boolean":return t?"":null;case"Number":return t??null;default:return t}else switch(s){case"Object":case"Array":return t&&JSON.parse(t);case"Boolean":return t;case"Number":return t!=null?+t:t;default:return t}}function Op(e){const t={};return e.childNodes.forEach(n=>{t[n.slot||"default"]=!0}),t}function Np(e,t,n,r,s,a){let i=class extends Cc{constructor(){super(e,n,s),this.$$p_d=t}static get observedAttributes(){return rs(t).map(o=>(t[o].attribute||o).toLowerCase())}};return rs(t).forEach(o=>{yn(i.prototype,o,{get(){return this.$$c&&o in this.$$c?this.$$c[o]:this.$$d[o]},set(l){l=Zr(o,l,t),this.$$d[o]=l;var u=this.$$c;if(u){var f=It(u,o)?.get;f?u[o]=l:u.$set({[o]:l})}}})}),r.forEach(o=>{yn(i.prototype,o,{get(){return this.$$c?.[o]}})}),a&&(i=a(i)),e.element=i,i}function Mp(e,...t){return _e(()=>{try{let n=!1;const r=[];for(const s of t)s&&typeof s=="object"&&Ve in s?(r.push(xn(s,!0)),n=!0):r.push(s);n&&(Xf(e),console.log("%c[snapshot]","color: grey",...r))}catch{}}),t}const $c=Object.freeze(Object.defineProperty({__proto__:null,CLASS:Ln,FILENAME:at,HMR:$n,NAMESPACE_SVG:Ar,STYLE:On,aborted:Aa,action:kc,get active_effect(){return Y},add_legacy_event_listener:Sp,add_locations:Kv,add_svelte_meta:vd,animation:mh,append:I,append_styles:wh,apply:dv,assign:Fv,assign_async:Hv,async:eh,async_derived:$l,attach:ci,attachment:Bv,attr:Eh,attribute_effect:qh,autofocus:Bl,await:rh,bind_active_element:Bh,bind_buffered:Kh,bind_checked:Jr,bind_content_editable:cp,bind_current_time:Wh,bind_element_size:lp,bind_ended:Jh,bind_files:Hh,bind_focused:fp,bind_group:Fh,bind_muted:np,bind_online:rp,bind_paused:ep,bind_playback_rate:Qh,bind_played:Yh,bind_prop:sp,bind_property:up,bind_ready_state:Zh,bind_resize_observer:op,bind_seekable:Gh,bind_seeking:Xh,bind_select_value:fs,bind_this:kt,bind_value:Pe,bind_volume:tp,bind_window_scroll:dp,bind_window_size:vp,boundary:Rl,bubble_event:kp,check_target:Jv,child:m,cleanup_styles:Wv,clsx:xc,comment:gt,component:Nr,create_custom_element:Np,create_ownership_validator:Xv,css_props:ih,customizable_select:Uh,deep_read:os,deep_read_state:oi,deferred_template_effect:nv,delegate:pe,delegated:H,derived:K,derived_safe_equal:Ja,get document(){return zl},each:be,eager:$d,effect:ft,effect_root:ni,effect_tracking:Or,element:bh,equals:Kd,event:tt,exclude_from_object:wf,fallback:yf,first_child:Ae,flush:sn,for_await_track_reactivity_loss:zd,from_html:R,from_mathml:mv,from_svg:gv,from_tree:_v,get:c,head:yh,hmr:Yv,html:uh,hydrate_template:sd,if:B,index:an,init:yp,init_select:ui,inspect:Qv,invalid_default_snippet:Ef,invalidate_inner_signals:av,invalidate_store:kd,invoke_error_boundary:zt,key:ah,legacy_api:Zv,legacy_pre_effect:Qd,legacy_pre_effect_reset:ev,legacy_rest_props:Cp,log_if_contains_state:Mp,mark_store_binding:Ad,mutable_source:Rs,mutate:Fd,next:nn,noop:it,once:mp,pending:Nd,pop:te,preventDefault:bp,prevent_snippet_stringification:hc,prop:on,props_id:wv,proxy:ce,push:ee,raf:Nt,reactive_import:wp,remove_input_defaults:Ee,remove_textarea_child:Xd,render_effect:Re,replay_events:fv,reset:p,rest_props:Tp,run:jd,run_after_blockers:Cl,safe_get:cv,sanitize_slots:dh,save:Md,select_option:br,selectedcontent:Vh,self:pp,set:b,set_attribute:Te,set_checked:Lh,set_class:De,set_custom_element_data:zh,set_default_checked:Oh,set_default_value:Nh,set_selected:Ac,set_style:Bt,set_text:M,set_value:Ph,set_xlink_attribute:Mh,setup_stores:Sd,sibling:x,slot:fh,snapshot:xn,snippet:$s,spread_props:zr,state:j,stopImmediatePropagation:_p,stopPropagation:gp,store_get:yd,store_mutate:xd,store_set:Sl,store_unsub:wd,strict_equals:Wd,tag:ud,tag_proxy:vl,template_effect:V,text:Xr,tick:ii,to_array:tl,trace:cd,track_reactivity_loss:xa,transition:_h,trusted:hp,untrack:_e,update:Fn,update_legacy_props:xp,update_pre:Hd,update_pre_prop:Ip,update_pre_store:Id,update_prop:Ep,update_store:Ed,user_effect:Ke,user_pre_effect:Wl,validate_binding:Dp,validate_dynamic_element_tag:Lv,validate_snippet_args:th,validate_store:Ov,validate_void_dynamic_element:Pv,wait:qd,get window(){return Ea},with_script:bv,wrap_snippet:Nv},Symbol.toStringTag,{value:"Module"}));class ho{#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 po{#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 zp=["workspace","user"],vi="state:manage",Dt={ephemeral:new ho,session:new ho,workspace:new po("sh3:workspace:"),user:new po("sh3:user:")},ua=new Map;let fa=!1;function jp(e,t,n){ua.set(`${e}:${t}`,{zone:e,shardId:t,value:n}),!fa&&(fa=!0,queueMicrotask(()=>{fa=!1;for(const{zone:r,shardId:s,value:a}of ua.values())Dt[r].write(s,a);ua.clear()}))}function Ls(e,t){const n={};for(const r of Object.keys(t)){const s=t[r],i=Dt[r].read(e),o={...s,...i??{}},l=ce(o);n[r]=l,zp.includes(r)&&ni(()=>{let u=!0;Ke(()=>{const f=xn(l);if(u){u=!1;return}jp(r,e,f)})})}return n}function go(e,t){Dt[e]=t}function qp(e,t){return Dt[e].read(t)}function Pa(e,t){Dt[e].delete(t)}const Vp="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(Vp);const Up=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function Bp(e){const t=document.activeElement;function n(){return Array.from(e.querySelectorAll(Up))}function r(s){if(s.key!=="Tab")return;const a=n();if(a.length===0){s.preventDefault();return}const i=a[0],o=a[a.length-1],l=document.activeElement;s.shiftKey&&(l===i||!e.contains(l))?(s.preventDefault(),o.focus()):!s.shiftKey&&(l===o||!e.contains(l))&&(s.preventDefault(),i.focus())}return e.addEventListener("keydown",r),queueMicrotask(()=>{(n()[0]??e).focus()}),()=>{e.removeEventListener("keydown",r),t&&document.contains(t)&&t.focus()}}var Fp=R('<div class="modal-frame svelte-2tcvcm" role="presentation"><div class="modal-box svelte-2tcvcm" role="dialog" aria-modal="true" tabindex="-1"><!></div></div>');function Hp(e,t){ee(t,!0);let n;Ke(()=>{if(n)return Bp(n)});var r=Fp(),s=m(r),a=m(s);Nr(a,()=>t.Content,(i,o)=>{o(i,zr(()=>t.contentProps,{get close(){return t.close}}))}),p(s),kt(s,i=>n=i,()=>n),p(r),V(()=>Bt(s,t.boxStyle)),I(e,r),te()}const hi={};function Wp(e,t){hi[e]=t}function Kp(e){delete hi[e]}function Os(e){const t=hi[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 lt=[];let ds=!1,ht=null;const Gp=.5;function Dc(){const e=Os("modal");if(lt.length===0){ht&&(ht.remove(),ht=null);return}ht||(ht=document.createElement("div"),ht.className="sh3-modal-backdrop",ht.style.position="absolute",ht.style.inset="0",ht.style.pointerEvents="auto",ht.style.transition="background-color 120ms ease",ht.style.background=`rgba(0, 0, 0, ${Gp})`);const t=lt[lt.length-1].host;e.insertBefore(ht,t)}function Pc(e){e.key==="Escape"&&lt.length!==0&&(e.stopPropagation(),e.preventDefault(),lt[lt.length-1].handle.close())}function Yp(){ds||(ds=!0,document.addEventListener("keydown",Pc,!0))}function Xp(){lt.length>0||ds&&(ds=!1,document.removeEventListener("keydown",Pc,!0))}function Lc(e){const t=lt.indexOf(e);t<0||(lt.splice(t,1),Ze(e.frame),e.host.remove(),Dc(),Xp())}function Jp(e,t,n){const r=Os("modal"),s=document.createElement("div");s.className="sh3-modal-host",s.style.position="absolute",s.style.inset="0",s.style.pointerEvents="auto",r.appendChild(s);const a={},i={close:()=>Lc(a)},o=qe(Hp,{target:s,props:{Content:e,contentProps:t??{},close:i.close,boxStyle:n?.boxStyle}});return a.host=s,a.frame=o,a.handle=i,lt.push(a),Dc(),Yp(),i}function Zp(){for(;lt.length>0;)Lc(lt[lt.length-1])}const Qp={open:Jp,closeAll:Zp};var eg=R('<div class="popup-frame svelte-mp81cl" role="menu" tabindex="-1"><!></div>');function tg(e,t){ee(t,!0);let n,r=j(-9999),s=j(-9999);Ke(()=>{if(!n)return;const o=n.getBoundingClientRect(),l=4,u=window.innerWidth,f=window.innerHeight;let v=t.anchorRect.bottom+l,d=t.anchorRect.left;if(d+o.width>u-l&&(d=Math.max(l,u-o.width-l)),v+o.height>f-l){const w=t.anchorRect.top-o.height-l;v=w>=l?w:Math.max(l,f-o.height-l)}b(r,v,!0),b(s,d,!0)});var a=eg(),i=m(a);Nr(i,()=>t.Content,(o,l)=>{l(o,zr(()=>t.contentProps,{get close(){return t.close}}))}),p(a),kt(a,o=>n=o,()=>n),V(()=>Bt(a,`top: ${c(r)??""}px; left: ${c(s)??""}px;`)),I(e,a),te()}let yt=null;function Oc(e){if(!yt)return;const t=e.target;t&&yt.host.contains(t)||yt.handle.close()}function Nc(e){yt&&e.key==="Escape"&&(e.stopPropagation(),e.preventDefault(),yt.handle.close())}function ng(){document.addEventListener("pointerdown",Oc,!0),document.addEventListener("keydown",Nc,!0)}function rg(){document.removeEventListener("pointerdown",Oc,!0),document.removeEventListener("keydown",Nc,!0)}function La(e){yt===e&&(yt=null,rg(),Ze(e.frame),e.host.remove())}function sg(e,t,n){yt&&La(yt);const r=Os("popup"),s=document.createElement("div");s.className="sh3-popup-host",s.style.position="absolute",s.style.inset="0",s.style.pointerEvents="none",r.appendChild(s);const a=t.anchor.getBoundingClientRect(),i={},o={close:()=>La(i)},l=qe(tg,{target:s,props:{Content:e,contentProps:n??{},anchorRect:a,close:o.close}});return i.host=s,i.frame=l,i.handle=o,yt=i,queueMicrotask(ng),o}function ag(){yt&&La(yt)}const ig={show:sg,close:ag};var og=R('<div role="status" aria-live="polite"><span class="toast-level svelte-12gwnj0"> </span> <span class="toast-message svelte-12gwnj0"> </span></div>');function lg(e,t){var n=og(),r=m(n),s=m(r,!0);p(r);var a=x(r,2),i=m(a,!0);p(a),p(n),V(()=>{De(n,1,`toast toast-${t.level??""}`,"svelte-12gwnj0"),M(s,t.level),M(i,t.message)}),H("click",n,function(...o){t.close?.apply(this,o)}),I(e,n)}pe(["click"]);const vs=new Set;let Ye=null;function cg(){if(Ye&&Ye.isConnected)return Ye;const e=Os("toast");return Ye=document.createElement("div"),Ye.className="sh3-toast-stack",Ye.style.position="absolute",Ye.style.right="16px",Ye.style.bottom="16px",Ye.style.display="flex",Ye.style.flexDirection="column-reverse",Ye.style.gap="6px",Ye.style.pointerEvents="none",e.appendChild(Ye),Ye}function Oa(e){vs.has(e)&&(vs.delete(e),e.timer!==null&&(clearTimeout(e.timer),e.timer=null),Ze(e.instance),e.host.remove())}function ug(e,t={}){const n=t.level??"info",r=t.duration??3e3,s=cg(),a=document.createElement("div");a.className="sh3-toast-host",s.appendChild(a);const i={},o={close:()=>Oa(i)},l=qe(lg,{target:a,props:{message:e,level:n,close:o.close}});return i.host=a,i.instance=l,i.handle=o,i.timer=Number.isFinite(r)&&r>0?setTimeout(()=>Oa(i),r):null,vs.add(i),o}function fg(){for(const e of[...vs])Oa(e)}const dg={notify:ug,clear:fg},mo={w:120,h:80};function Mc(e){if(e.type==="slot")return{...mo};if(e.type==="tabs")return{...mo};const t=e.children.map(Mc);return e.direction==="horizontal"?{w:t.reduce((n,r)=>n+r.w,0),h:t.reduce((n,r)=>Math.max(n,r.h),0)}:{w:t.reduce((n,r)=>Math.max(n,r.w),0),h:t.reduce((n,r)=>n+r.h,0)}}const _o=32,bo={x:48,y:48};function vg(e,t){if(e.length===0)return{...bo};const n=e[e.length-1],r={x:n.position.x+_o,y:n.position.y+_o};return r.x+120>t.w||r.y+32>t.h?{...bo}:r}let yo=0;function hg(){return yo+=1,`float-${Date.now().toString(36)}-${yo.toString(36)}`}function zc(e){return e.type==="slot"?e.viewId==null:e.type==="tabs"?e.tabs.every(t=>t.viewId==null):e.children.every(zc)}let pg=[],pi=null,gi=()=>({w:1600,h:900});function gg(e,t){pi=e,gi=t}function mg(){pi=null,gi=()=>({w:1600,h:900})}function Ns(){return pi??pg}let wo=0;function _g(e){return wo+=1,`float:${e}:${wo}`}const bg={w:600,h:400};function yg(e,t){return{w:Math.max(e.w,t.w),h:Math.max(e.h,t.h)}}function wg(e,t={}){const n=Ns(),r=hg(),s=_g(e),a=t.title??e,i={slotId:s,viewId:e,label:a};t.meta&&(i.meta=t.meta);const o={type:"tabs",tabs:[i],activeTab:0},l=Mc(o),u=t.size??yg(bg,l),f=t.position??vg(n,gi()),v={id:r,content:o,position:f,size:u,title:t.title};return n.push(v),r}function kg(e){const t=Ns(),n=t.findIndex(r=>r.id===e);n<0||t.splice(n,1)}function Sg(){return Ns().slice()}function xg(e){const t=Ns(),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 Tt={open:wg,close:kg,list:Sg,focus:xg};let hs=null;function Eg(e){hs=e}function Ig(){hs=null}function mi(){if(!hs)throw new Error("presetManager: no app attached — bind an AppLayoutBlob first");return hs}function Ag(){return Object.keys(mi().presets)}function Tg(){return mi().activePreset}function Rg(e){const t=mi();if(!(e in t.presets))throw new Error(`presetManager.switch: unknown preset "${e}"`);t.activePreset=e}const Cg={list:Ag,active:Tg,switch:Rg},jc={state:Ls,modal:Qp,popup:ig,toast:dg,float:Tt,presets:Cg},ps=new Map,qc=new Set;function $g(e){qc.add(e)}function Dg(e,t){if(ps.has(e))throw new Error(`View "${e}" is already registered`);ps.set(e,t);for(const n of qc)n(e,t)}function Vc(e){return ps.get(e)}function Pg(e){ps.delete(e)}const yr=new Map;function Lg(e,t){if(yr.has(e))throw new Error(`Verb "${e}" is already registered`);yr.set(e,t)}function ko(e){return yr.get(e)}function Og(e){yr.delete(e)}function _i(){return Array.from(yr.values()).sort((e,t)=>e.name.localeCompare(t.name))}function Ur(e,t,n){return`${e}/${t}/${n}`}function Ng(e,t){return`${e}/${t}/`}const Mg="sh3-documents",Lt="docs",zg=2;class jg{#e=null;#t(){return this.#e||(this.#e=new Promise((t,n)=>{const r=indexedDB.open(Mg,zg);r.onupgradeneeded=()=>{const s=r.result;s.objectStoreNames.contains(Lt)||s.createObjectStore(Lt)},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 o=r.transaction(Lt,t).objectStore(Lt),l=n(o);l.onsuccess=()=>s(l.result),l.onerror=()=>a(l.error)})}async read(t,n,r){const s=Ur(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=Ur(t,n,r),i=typeof s=="string"?new Blob([s]).size:s.byteLength,o={content:s,size:i,lastModified:Date.now()};await this.#n("readwrite",l=>l.put(o,a))}async delete(t,n,r){const s=Ur(t,n,r);await this.#n("readwrite",a=>a.delete(s))}async list(t,n){const r=Ng(t,n),s=await this.#t();return new Promise((a,i)=>{const l=s.transaction(Lt,"readonly").objectStore(Lt),u=IDBKeyRange.bound(r,r+"￿",!1,!1),f=l.openCursor(u),v=[];f.onsuccess=()=>{const d=f.result;if(d){const w=d.value;v.push({path:d.key.slice(r.length),size:w.size,lastModified:w.lastModified}),d.continue()}else a(v)},f.onerror=()=>i(f.error)})}async exists(t,n,r){const s=Ur(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 o=r.transaction(Lt,"readonly").objectStore(Lt),l=IDBKeyRange.bound(n,n+"￿",!1,!1),u=o.openKeyCursor(l),f=new Set;u.onsuccess=()=>{const v=u.result;if(v){const d=v.key.slice(n.length),w=d.indexOf("/");w>=0&&f.add(d.slice(0,w)),v.continue()}else s([...f])},u.onerror=()=>a(u.error)})}async listAllDocuments(t){const n=`${t}/`,r=await this.#t();return new Promise((s,a)=>{const o=r.transaction(Lt,"readonly").objectStore(Lt),l=IDBKeyRange.bound(n,n+"￿",!1,!1),u=o.openCursor(l),f=[];u.onsuccess=()=>{const v=u.result;if(v){const d=v.key.slice(n.length),w=d.indexOf("/");if(w>=0){const _=v.value;f.push({shardId:d.slice(0,w),path:d.slice(w+1),size:_.size,lastModified:_.lastModified})}v.continue()}else s(f)},u.onerror=()=>a(u.error)})}}class qg{#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);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"},o=await fetch(a,{method:"PUT",headers:i,body:s});if(!o.ok)throw new Error(`Document write failed: ${o.status}`)}async delete(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}`,a=await fetch(s,{method:"DELETE",headers:this.#n()});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);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"})).ok}async listAllShards(t){const n=`${this.#e}/api/docs/${t}/_shards`,r=await fetch(n);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);if(!r.ok)throw new Error(`listAllDocuments failed: ${r.status}`);return r.json()}#n(){return this.#t?{Authorization:`Bearer ${this.#t}`}:{}}}class Vg{#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 gs=new Vg;let Na=null;function Ug(e){Na=e}async function So(e){Na&&await Na(e)}async function ur(e){const t=typeof e=="string"?new TextEncoder().encode(e):new Uint8Array(e),n=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(n)).map(s=>s.toString(16).padStart(2,"0")).join("").slice(0,16)}const Bg=1e3;function Fg(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(f=>u.endsWith(f))}function o(u,f){gs.emit({type:u,path:f,tenantId:e,shardId:t})}const l={async list(){const u=await n.list(e,t);return!r.extensions||r.extensions.length===0?u:u.filter(f=>i(f.path))},async read(u){const f=await n.read(e,t,u);return f===null?null:typeof f=="string"?f:new TextDecoder().decode(f)},async write(u,f){const v=await n.exists(e,t,u);await n.write(e,t,u,f),o(v?"update":"create",u);const d=await ur(f);await So({shardId:t,path:u,op:"upsert",hash:d})},async delete(u){await n.delete(e,t,u),o("delete",u),await So({shardId:t,path:u,op:"delete",hash:null})},async exists(u){return n.exists(e,t,u)},watch(u){const f=gs.subscribe(v=>{v.tenantId===e&&v.shardId===t&&i(v.path)&&u(v)});return a.add(f),()=>{f(),a.delete(f)}},autosave(u,f){const v=new Hg(l,u,f?.debounceMs??Bg);return s.add(v),v},async dispose(){const u=[...s].map(f=>f.dispose());await Promise.all(u),s.clear();for(const f of a)f();a.clear()}};return l}class Hg{#e;#t;#n;#a=null;#r=null;#i=!1;#s=!1;constructor(t,n,r){this.#e=t,this.#t=n,this.#n=r}get dirty(){return this.#i}update(t){this.#s||(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.#s||(this.#s=!0,await this.flush())}#o(){this.#l(),this.#r=setTimeout(()=>{this.#r=null,this.flush()},this.#n)}#l(){this.#r!==null&&(clearTimeout(this.#r),this.#r=null)}}const Wg="local";let Uc=Wg,Bc=new jg;function vn(){return Uc}function zn(){return Bc}function da(e){Uc=e}function Kg(e){Bc=e}const Fc="documents:sync",Ms="__sync__";class Hc extends Error{constructor(t){super(`Scope not granted: ${JSON.stringify(t)}`),this.scope=t,this.name="ScopeNotGrantedError"}}class Gg extends Error{constructor(t){super(`Scope revoked during operation: ${JSON.stringify(t)}`),this.scope=t,this.name="ScopeRevokedError"}}class Yg extends Error{constructor(){super("Sync handle tenantId does not match current session"),this.name="TenantMismatchError"}}async function Je(e,t,n){const r=await e.read(t,Ms,n);if(r===null)return null;const s=typeof r=="string"?r:new TextDecoder().decode(r);return JSON.parse(s)}async function en(e,t,n,r){await e.write(t,Ms,n,JSON.stringify(r))}async function ms(e,t,n){await e.delete(t,Ms,n)}async function wr(e,t,n){return(await e.list(t,Ms)).map(s=>s.path).filter(s=>s.startsWith(n))}const Xg="bases/";function xo(e,t,n){return`${Xg}${encodeURIComponent(e)}__${t}__${encodeURIComponent(n)}.json`}function Jg(e){return/\.sync-conflict-[^.]+-\d+$/.test(e)}class Wc{constructor(t,n){this.backend=t,this.tenantId=n}async resolve(t,n){switch(typeof t=="function"?await t({path:n.path,shardId:n.shardId,localHash:n.localHash,remoteHash:n.remoteHash,baseHash:n.baseHash}):t){case"remote-wins":return{action:"apply-remote"};case"local-wins":return{action:"skip"};case"keep-both":return{action:"apply-remote",asPath:`${n.path}.incoming-${n.connectorId}-${Date.now()}`};case"default":default:{const s=Date.now(),a=`${n.path}.sync-conflict-${n.connectorId}-${s}`;return n.remoteContent!==void 0&&await this.backend.write(this.tenantId,n.shardId,a,n.remoteContent),{action:"conflict",resolution:{path:n.path,shardId:n.shardId,localHash:n.localHash,remoteHash:n.remoteHash,conflictArtifactPath:a,base:n.baseHash?{hash:n.baseHash}:void 0}}}}}async getBaseHash(t,n,r){return Je(this.backend,this.tenantId,xo(t,n,r))}async setBaseHash(t,n,r,s){await en(this.backend,this.tenantId,xo(t,n,r),s)}async listConflicts(t){const n=await this.backend.list(this.tenantId,t),r=[];for(const s of n){const a=s.path;if(!Jg(a))continue;const i=/^(.*)\.sync-conflict-([^-]+)-(\d+)$/.exec(a);if(!i)continue;const o=i[1];r.push({path:o,shardId:t,localHash:"",remoteHash:"",conflictArtifactPath:a})}return r}}const Qr="grants/";function hr(e){return`${Qr}${encodeURIComponent(e)}.json`}function Kc(e,t){return e.kind!==t.kind?!1:e.kind==="tenant"?!0:e.kind==="shard"&&t.kind==="shard"?e.shardId===t.shardId:e.kind==="path"&&t.kind==="path"?e.shardId===t.shardId&&e.prefix===t.prefix:!1}async function Zg(e,t,n,r){const s=await Je(e,t,hr(n))??[];s.some(a=>Kc(a.scope,r))||(s.push({connectorId:n,scope:r,grantedAt:Date.now()}),await en(e,t,hr(n),s))}function Gc(e,t){const n=new Wc(e,t);async function r(s){return await Je(e,t,hr(s))??[]}return{async list(s){if(s)return r(s);const a=await wr(e,t,Qr),i=[];for(const o of a){const l=await Je(e,t,o);l&&i.push(...l)}return i},async revoke(s,a){const o=(await r(s)).filter(l=>!Kc(l.scope,a));o.length===0?await ms(e,t,hr(s)):await en(e,t,hr(s),o)},async listConflicts(s){if(s!==void 0)return n.listConflicts(s);const a=await e.listAllShards(t),i=[];for(const o of a)i.push(...await n.listConflicts(o));return i},async listAllConnectorIds(){return(await wr(e,t,Qr)).map(a=>decodeURIComponent(a.slice(Qr.length,-5)))}}}var Qg=R('<p class="error svelte-106syj7" part="error"> </p>'),em=R('<section class="sync-grant-picker svelte-106syj7" part="container"><header part="header"><h3 part="title">Grant sync access</h3></header> <p part="summary"><strong> </strong> </p> <!> <!> <footer part="actions" class="svelte-106syj7"><button type="button" part="cancel">Cancel</button> <button type="button" part="confirm">Grant</button></footer></section>');function Yc(e,t){ee(t,!0);let n=j(!1),r=j(null);function s(h){switch(h.kind){case"tenant":return"all your documents across every shard";case"shard":return`all documents for shard "${h.shardId}"`;case"path":return`documents under "${h.prefix}" in shard "${h.shardId}"`}}async function a(){b(n,!0),b(r,null);try{await Zg(zn(),vn(),t.connectorId,t.scope),t.onGranted?.()}catch(h){b(r,h instanceof Error?h.message:String(h),!0)}finally{b(n,!1)}}var i=em(),o=x(m(i),2),l=m(o),u=m(l,!0);p(l);var f=x(l);p(o);var v=x(o,2);{var d=h=>{var g=gt(),S=Ae(g);$s(S,()=>t.rationale),I(h,g)};B(v,h=>{t.rationale&&h(d)})}var w=x(v,2);{var _=h=>{var g=Qg(),S=m(g,!0);p(g),V(()=>M(S,c(r))),I(h,g)};B(w,h=>{c(r)&&h(_)})}var k=x(w,2),y=m(k),A=x(y,2);p(k),p(i),V(h=>{M(u,t.connectorId),M(f,` is requesting access to ${h??""}.`),y.disabled=c(n),A.disabled=c(n)},[()=>s(t.scope)]),H("click",y,()=>t.onCancel?.()),H("click",A,a),I(e,i),te()}pe(["click"]);var tm=R('<p part="empty">No scopes granted yet.</p>'),nm=R('<li class="svelte-wc9uuh"><span part="grant-connector"> </span> <span part="grant-scope"> </span> <button type="button" part="revoke">Revoke</button></li>'),rm=R('<ul part="grants" class="svelte-wc9uuh"></ul>'),sm=R('<p part="empty">No active conflicts.</p>'),am=R('<li class="svelte-wc9uuh"><code part="conflict-path"> </code> <small part="conflict-artifact"> </small></li>'),im=R('<ul part="conflicts" class="svelte-wc9uuh"></ul>'),om=R('<section class="document-sync-explorer svelte-wc9uuh" part="container"><h2 part="title">Document Sync</h2> <!> <h3 part="subtitle">Granted scopes</h3> <!> <h3 part="subtitle">Conflicts</h3> <!></section>');function lm(e,t){ee(t,!0);let n=on(t,"conflictShardIds",19,()=>[]),r=j(null),s=j(ce([])),a=j(ce([]));async function i(){if(!c(r))return;b(s,await c(r).list(t.connectorId),!0);const h=[];for(const g of n())h.push(...await c(r).listConflicts(g));b(a,h,!0)}Ds(async()=>{b(r,Gc(zn(),vn()),!0),await i()});async function o(h){c(r)&&(await c(r).revoke(h.connectorId,h.scope),await i())}function l(h){return h.kind==="tenant"?"entire tenant":h.kind==="shard"?`shard:${h.shardId}`:`shard:${h.shardId}/${h.prefix}`}var u=om(),f=x(m(u),2);{var v=h=>{Yc(h,{get connectorId(){return t.pendingRequest.connectorId},get scope(){return t.pendingRequest.scope},onGranted:i})};B(f,h=>{t.pendingRequest&&h(v)})}var d=x(f,4);{var w=h=>{var g=tm();I(h,g)},_=h=>{var g=rm();be(g,21,()=>c(s),an,(S,P)=>{var T=nm(),D=m(T),L=m(D,!0);p(D);var C=x(D,2),O=m(C,!0);p(C);var E=x(C,2);p(T),V(q=>{M(L,c(P).connectorId),M(O,q)},[()=>l(c(P).scope)]),H("click",E,()=>o(c(P))),I(S,T)}),p(g),I(h,g)};B(d,h=>{c(s).length===0?h(w):h(_,-1)})}var k=x(d,4);{var y=h=>{var g=sm();I(h,g)},A=h=>{var g=im();be(g,21,()=>c(a),an,(S,P)=>{var T=am(),D=m(T),L=m(D);p(D);var C=x(D,2),O=m(C,!0);p(C),p(T),V(()=>{M(L,`${c(P).shardId??""}:${c(P).path??""}`),M(O,c(P).conflictArtifactPath)}),I(S,T)}),p(g),I(h,g)};B(k,h=>{c(a).length===0?h(y):h(A,-1)})}p(u),I(e,u),te()}pe(["click"]);let Qn=j(null),qt=j(null),er=j(!1),zs="",Ma=null;function Eo(e,t){zs=e,Ma=t.auth,b(Qn,t.user,!0),b(qt,t.session,!0),b(er,!t.session&&!t.user,!0)}async function Xc(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 b(Qn,r.user,!0),b(qt,r.session,!0),b(er,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function cm(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 b(Qn,s.user,!0),b(qt,s.session,!0),b(er,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function um(){try{await fetch(`${zs}/api/auth/logout`,{method:"POST",credentials:"include"})}catch{}if(Ma?.required&&!Ma.guestAllowed){window.location.reload();return}b(Qn,null),b(qt,null),b(er,!0)}function fm(){b(Qn,{id:"local",username:"local",displayName:"Local Owner",role:"admin",createdAt:"",updatedAt:""},!0),b(qt,{token:"local",userId:"local",role:"admin",expiresAt:1/0},!0),b(er,!1)}function dm(){return c(qt)?.token==="local"}function Jt(){return c(qt)?.role==="admin"}function Jc(){return c(qt)!==null}function Zc(){return c(er)}function js(){return c(Qn)}function qs(){return c(qt)?`Bearer ${c(qt).token}`:null}let tr="";function Qc(e){tr=e}async function vm(e){const t=await fetch(`${tr}/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 hm(e,t){if(!Jt())throw new Error("Cannot update env state: not elevated to admin");const n=qs(),r={"Content-Type":"application/json"};n&&(r.Authorization=n);const s=await fetch(`${tr}/api/env-state/${encodeURIComponent(e)}`,{method:"PUT",headers:r,body:JSON.stringify(t)});if(!s.ok){const a=await s.json().catch(()=>({}));throw new Error(`Env state update failed: HTTP ${s.status} — ${a.error??"unknown"}`)}}async function bi(e,t,n){if(!Jt())throw new Error("Cannot install: not elevated to admin");const r=qs(),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(`${tr}/api/packages/install`,{method:"POST",headers:a,body:s});if(!i.ok){let o={};try{o=await i.json()}catch{}return{ok:!1,error:typeof o.error=="string"?o.error:`HTTP ${i.status}`,code:typeof o.code=="string"?o.code:void 0,missing:Array.isArray(o.missing)?o.missing:void 0}}return{ok:!0}}async function eu(e){if(!Jt())throw new Error("Cannot uninstall: not elevated to admin");const t=qs(),n={"Content-Type":"application/json"};t&&(n.Authorization=t);const r=await fetch(`${tr}/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 pm(){const e=await fetch(`${tr}/api/packages`);return e.ok?await e.json():[]}function gm(e){return Dt[e].list()}function mm(e,t){return Dt[e].read(t)}function _m(e,t){Dt[e].delete(t)}function bm(e){for(const t of Dt[e].list())Dt[e].delete(t)}function tu(){return{list:gm,peek:mm,clear:_m,clearAll:bm}}const za="documents:browse";function ym(e,t){return{listDocuments:()=>t.listAllDocuments(e),listShards:()=>t.listAllShards(e),watchDocuments:n=>gs.subscribe(r=>{r.tenantId===e&&n(r)})}}const va="journal/meta.json",wm="journal/seg-",ja="cursors/",km=500,Sm=100;function Cn(e){return`${wm}${e}.json`}function ha(e){return`${ja}${encodeURIComponent(e)}.json`}function xm(e,t){switch(t.kind){case"tenant":return!0;case"shard":return e.shardId===t.shardId;case"path":return e.shardId===t.shardId&&e.path.startsWith(t.prefix)}}class pr{constructor(t,n,r={}){this.backend=t,this.tenantId=n,this.#t=r.segmentSize??km,this.#n=r.pageSize??Sm}#e={currentSeq:0,currentSegment:0,oldestSegment:0,version:0};#t;#n;async init(){const t=await Je(this.backend,this.tenantId,va);t&&(this.#e=t)}static encodeCursor(t,n){return`${t}:${n}`}static decodeCursor(t){const n=/^(\d+):(\d+)$/.exec(t);return n?{seq:Number(n[1]),version:Number(n[2])}:null}async append(t){const n=this.#e.currentSeq+1,r={...t,seq:n,ts:Date.now()},s=this.#e.currentSegment,a=await Je(this.backend,this.tenantId,Cn(s))??[];return a.push(r),await en(this.backend,this.tenantId,Cn(s),a),this.#e.currentSeq=n,a.length>=this.#t&&(this.#e.currentSegment=s+1),await en(this.backend,this.tenantId,va,this.#e),r}async oldestRetainedSeq(){const t=await Je(this.backend,this.tenantId,Cn(this.#e.oldestSegment));return!t||t.length===0?0:t[0].seq}async changesSince(t,n){let r=0;if(n){const o=pr.decodeCursor(n);if(!o)return{entries:[],nextCursor:n,hasMore:!1};const l=await this.oldestRetainedSeq();if(o.version<this.#e.version&&o.seq<l)return{entries:[],nextCursor:n,hasMore:!1,truncated:!0};r=o.seq}const s=[];let a=r,i=!1;for(let o=this.#e.oldestSegment;o<=this.#e.currentSegment;o++){const l=await Je(this.backend,this.tenantId,Cn(o))??[];for(const u of l)if(!(u.seq<=r)){if(!xm(u,t)){a=u.seq;continue}if(s.length>=this.#n){i=!0;break}s.push(u),a=u.seq}if(i)break}return{entries:s,nextCursor:pr.encodeCursor(a,this.#e.version),hasMore:i}}async getCursor(t){return Je(this.backend,this.tenantId,ha(t))}async ackCursor(t,n){await en(this.backend,this.tenantId,ha(t),n)}async dropCursor(t){await ms(this.backend,this.tenantId,ha(t))}async listCursors(){const t=await wr(this.backend,this.tenantId,ja),n=[];for(const r of t){const s=await Je(this.backend,this.tenantId,r);if(s===null)continue;const a=decodeURIComponent(r.slice(ja.length,-5));n.push({connectorId:a,cursor:s})}return n}async minSeqAckedByAll(t){if(t.length===0)return 0;let n=1/0;for(const r of t){const s=await this.getCursor(r),a=s?pr.decodeCursor(s):null,i=a?a.seq:0;i<n&&(n=i)}return n===1/0?0:n}async __truncateForTest(t){for(let n=this.#e.oldestSegment;n<=this.#e.currentSegment;n++){const r=await Je(this.backend,this.tenantId,Cn(n))??[],s=r[r.length-1];if(s&&s.seq<=t)await ms(this.backend,this.tenantId,Cn(n)),this.#e.oldestSegment=n+1;else break}this.#e.version+=1,await en(this.backend,this.tenantId,va,this.#e)}}const es="tombstones/";function pa(e,t){return`${es}${e}__${encodeURIComponent(t)}.json`}class Em{constructor(t,n){this.backend=t,this.tenantId=n}async record(t,n,r,s){await en(this.backend,this.tenantId,pa(t,n),{deletedAt:s,lastHash:r})}async get(t,n){return Je(this.backend,this.tenantId,pa(t,n))}async clear(t,n){await ms(this.backend,this.tenantId,pa(t,n))}async listByShard(t){const n=`${es}${t}__`,r=await wr(this.backend,this.tenantId,n),s=[];for(const a of r){const i=await Je(this.backend,this.tenantId,a);if(!i)continue;const o=decodeURIComponent(a.slice(n.length,-5));s.push({shardId:t,path:o,...i})}return s}async listAll(){const t=await wr(this.backend,this.tenantId,es),n=[];for(const r of t){const s=await Je(this.backend,this.tenantId,r);if(!s)continue;const a=r.slice(es.length,-5),i=a.indexOf("__");if(i<0)continue;const o=a.slice(0,i),l=decodeURIComponent(a.slice(i+2));n.push({shardId:o,path:l,...s})}return n}}function Br(e,t,n){switch(e.kind){case"tenant":return!0;case"shard":return e.shardId===t;case"path":return e.shardId===t&&n.startsWith(e.prefix)}}class Im{constructor(t,n,r={}){this.backend=t,this.tenantId=n,this.#e=new pr(t,n,{segmentSize:r.segmentSize}),this.#t=new Em(t,n),this.#n=new Wc(t,n)}#e;#t;#n;async init(){await this.#e.init()}get journal(){return this.#e}async getManifest(t,n){const r=await this.#o(n),s=[];for(const a of r){const i=await this.backend.list(this.tenantId,a);for(const l of i){if(!Br(n,a,l.path)||l.path.startsWith(".")||/\.sync-conflict-/.test(l.path))continue;const u=await this.backend.read(this.tenantId,a,l.path);if(u===null)continue;const f=await ur(u);s.push({path:l.path,shardId:a,hash:f,size:l.size,lastModified:l.lastModified})}const o=await this.#t.listByShard(a);for(const l of o)Br(n,a,l.path)&&s.push({path:l.path,shardId:a,hash:l.lastHash,size:0,lastModified:l.deletedAt,tombstone:{deletedAt:l.deletedAt}})}return s}async changesSince(t,n){return this.#e.changesSince(t,n)}async ack(t,n,r){await this.#e.ackCursor(t,r)}async apply(t,n,r,s={}){if(!Br(n,r.shardId,r.path))throw new Error(`ApplyEntry {${r.shardId}:${r.path}} falls outside scope`);return r.op==="upsert"?this.#a(t,r,s):this.#i(t,r)}async applyBatch(t,n,r,s={}){const a=[],i=[],o=[];for(const l of r){const u=await this.apply(t,n,l,s);u.status==="applied"?a.push({path:l.path,shardId:l.shardId,newHash:u.newHash}):u.status==="skipped-identical"?i.push({path:l.path,shardId:l.shardId,reason:"identical"}):o.push(u.resolution)}return{applied:a,skipped:i,conflicts:o}}async forget(t,n){const r=await this.#o(t);for(const s of r)Br(t,s,n)&&await this.#t.clear(s,n)}async#a(t,n,r){const s=await this.backend.read(this.tenantId,n.shardId,n.path),a=s!==null,i=a?await ur(s):null;if(i!==null&&i===n.remoteHash)return{status:"skipped-identical"};if(a&&(r.expectedLocalHash!==void 0&&r.expectedLocalHash!==i||r.expectedLocalHash===void 0&&await this.#s(t,n,i))){const l=await this.#n.getBaseHash(t,n.shardId,n.path)??void 0,u=await this.#n.resolve(r.onConflict??"default",{connectorId:t,shardId:n.shardId,path:n.path,localHash:i,remoteHash:n.remoteHash,remoteContent:n.content,baseHash:l});if(u.action==="skip")return{status:"skipped-identical"};if(u.action==="conflict")return{status:"conflict",resolution:u.resolution};const f=u.asPath??n.path;return this.#r(t,n,f,a)}return this.#r(t,n,n.path,a)}async#r(t,n,r,s){if(n.content===void 0)throw new Error(`Upsert without content for ${n.shardId}:${n.path}`);await this.backend.write(this.tenantId,n.shardId,r,n.content),await this.#t.clear(n.shardId,r);const a=await ur(n.content);return await this.#n.setBaseHash(t,n.shardId,r,a),await this.#e.append({shardId:n.shardId,path:r,op:"upsert",hash:a}),this.#l({type:s&&r===n.path?"update":"create",path:r,tenantId:this.tenantId,shardId:n.shardId}),{status:"applied",newHash:a}}async#i(t,n){const r=await this.backend.read(this.tenantId,n.shardId,n.path);if(r===null)return await this.#t.record(n.shardId,n.path,n.remoteHash,Date.now()),await this.#e.append({shardId:n.shardId,path:n.path,op:"delete",hash:null}),{status:"applied",newHash:""};const s=await ur(r);return await this.backend.delete(this.tenantId,n.shardId,n.path),await this.#t.record(n.shardId,n.path,s,Date.now()),await this.#n.setBaseHash(t,n.shardId,n.path,""),await this.#e.append({shardId:n.shardId,path:n.path,op:"delete",hash:null}),this.#l({type:"delete",path:n.path,tenantId:this.tenantId,shardId:n.shardId}),{status:"applied",newHash:""}}async#s(t,n,r){const s=await this.#n.getBaseHash(t,n.shardId,n.path);return s?s!==r:!1}async#o(t){return t.kind==="tenant"?[]:[t.shardId]}#l(t){gs.emit(t)}}const Io=new Map;async function nu(e,t){const n=Io.get(t);if(n)return n;const r=new Im(e,t);await r.init();const s=Gc(e,t);Ug(async i=>{await r.journal.append(i)});const a={engine:r,registry:s};return Io.set(t,a),a}function Am(e,t){return e.kind==="tenant"?!0:e.kind==="shard"?t.kind==="shard"||t.kind==="path"?e.shardId===t.shardId:!1:t.kind==="path"?t.shardId===e.shardId&&t.prefix.startsWith(e.prefix):!1}function Tm(e){const{connectorId:t,engine:n,registry:r}=e;async function s(){return(await r.list(t)).map(o=>o.scope)}async function a(i){const o=await s();if(o.filter(u=>Am(u,i)).length===0)throw new Hc(i);if(i.kind==="tenant"){const u=o.filter(f=>f.kind==="shard"||f.kind==="path");return u.length>0?u:[i]}return[i]}return{connectorId:t,async grantedScopes(){return s()},async getManifest(i){const o=await a(i),l=[];if(i.kind==="tenant"&&o[0]?.kind!=="tenant")for(const u of o)l.push(...await n.getManifest(t,u));else l.push(...await n.getManifest(t,i));return l},async changesSince(i,o){return await a(i),n.changesSince(i,o)},async ack(i,o){await a(i),await n.ack(t,i,o)},async apply(i,o,l){return await a(i),n.apply(t,i,o,l)},async applyBatch(i,o,l){return await a(i),n.applyBatch(t,i,o,l)},async forget(i,o){await a(i),await n.forget(i,o)}}}function Rm(e,t){let n=null,r=null;function s(){return n?Promise.resolve(n):(r||(r=nu(e,t).then(({registry:a})=>(n=a,a))),r)}return()=>({async list(i){return(await s()).list(i)},async revoke(i,o){return(await s()).revoke(i,o)},listConflicts:async i=>{const o=await s();return i===void 0?o.listConflicts():o.listConflicts(i)},async listAllConnectorIds(){return(await s()).listAllConnectorIds()}})}const Vt=ce(new Map),kr=new Map,jr=ce(new Map);function yi(e){const t=e.manifest.id;Vt.has(t)&&jr.has(t)&&Vs(t),Vt.set(t,e)}async function ru(e){const t=Vt.get(e);if(!t)throw new Error(`Cannot activate shard "${e}": not registered`);if(kr.has(e))return;const n={shard:t,ctx:void 0,viewIds:new Set,verbNames:new Set,cleanupFns:[]},r=ce({proxy:null,defaults:null}),s={state:a=>jc.state(e,a),registerView:(a,i)=>{Dg(a,i),n.viewIds.add(a)},registerVerb:a=>{const i=e==="shell"?a.name:`${e}:${a.name}`;Lg(i,{...a,name:i}),n.verbNames.add(i)},documents:a=>{const i=Fg(vn(),e,zn(),a);return n.cleanupFns.push(()=>i.dispose()),i},env(a){return r.proxy?(console.warn(`[sh3] Shard "${e}" called ctx.env() more than once; extra calls are ignored.`),r.proxy):(r.defaults=a,r.proxy={...a},r.proxy)},async envUpdate(a){if(!r.proxy||!r.defaults)throw new Error(`Shard "${e}" called envUpdate() without declaring env state`);const i=xn(r.proxy);Object.assign(r.proxy,a);try{const o=xn(r.proxy);await hm(e,o)}catch(o){throw Object.assign(r.proxy,i),o}},get isAdmin(){return Jt()},get tenantId(){return vn()},zones:t.manifest.permissions?.includes(vi)?tu():void 0,browse:t.manifest.permissions?.includes(za)?ym(vn(),zn()):void 0,syncRegistry:t.manifest.permissions?.includes(za)?Rm(zn(),vn()):void 0,sync:t.manifest.permissions?.includes(Fc)?()=>{const a=zn(),i=vn(),l=nu(a,i).then(({engine:u,registry:f})=>Tm({connectorId:e,engine:u,registry:f}));return{connectorId:e,grantedScopes:async()=>(await l).grantedScopes(),getManifest:async u=>(await l).getManifest(u),changesSince:async(u,f)=>(await l).changesSince(u,f),ack:async(u,f)=>(await l).ack(u,f),apply:async(u,f,v)=>(await l).apply(u,f,v),applyBatch:async(u,f,v)=>(await l).applyBatch(u,f,v),forget:async(u,f)=>(await l).forget(u,f)}}:void 0};n.ctx=s,kr.set(e,n),jr.set(e,t),await t.activate(s);for(const a of t.manifest.views)if(!n.viewIds.has(a.id))throw new Error(`Shard "${e}" declared view "${a.id}" in its manifest but registered no factory for it.`);if(r.proxy&&r.defaults)try{const a=await vm(e),i=Object.assign({},r.defaults,a);Object.assign(r.proxy,i)}catch(a){console.warn(`[sh3] Failed to hydrate env state for shard "${e}":`,a instanceof Error?a.message:a)}t.autostart?.(s)}function Vs(e){const t=kr.get(e);if(t){t.shard.deactivate?.();for(const n of t.cleanupFns)n();for(const n of t.verbNames)Og(n);for(const n of t.viewIds)Pg(n);kr.delete(e),jr.delete(e)}}function Cm(e){return kr.get(e)?.ctx}function Ao(){const e=[];for(const t of jr.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 An=ce(new Map),xt=ce({id:null});function wi(e){An.set(e.manifest.id,e)}function ki(){return Array.from(An.values()).map(e=>e.manifest)}function su(){const e=xt.id;return e?An.get(e)?.manifest??null:null}function Us(e){return An.get(e)}const rn=new Map,ts=new Set;function $m(e,t){for(const[n,r]of rn.entries()){if(r.viewId!==e||r.handle!==void 0)continue;const s={slotId:n,viewId:e,label:r.label,meta:r.meta,setDirty(a){Bs[n]=a}};queueMicrotask(()=>{if(rn.has(n)&&r.handle===void 0&&(r.handle=t.mount(r.host,s),(r.handle?.closable||n.startsWith("float:"))&&(Fs[n]=!0),r.handle?.onResize)){const a=r.handle.onResize.bind(r.handle);r.resizeObserver=new ResizeObserver(i=>{for(const o of i){const l=o.contentRect;a(Math.round(l.width),Math.round(l.height))}}),r.resizeObserver.observe(r.host)}})}}$g($m);const Bs=ce({}),Fs=ce({});function Dm(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 o=t?Vc(t):void 0,l={slotId:e,viewId:t??"",label:n,meta:r,setDirty(u){Bs[e]=u}};if(i.handle=o?.mount(s,l),(i.handle?.closable||e.startsWith("float:"))&&(Fs[e]=!0),i.handle?.onResize){const u=i.handle.onResize.bind(i.handle);i.resizeObserver=new ResizeObserver(f=>{for(const v of f){const d=v.contentRect;u(Math.round(d.width),Math.round(d.height))}}),i.resizeObserver.observe(s)}}),i}function au(e,t,n,r){ts.delete(e);let s=rn.get(e);return s||(s=Dm(e,t,n,r),rn.set(e,s)),s.refcount++,s.host}function iu(e){const t=rn.get(e);if(t){if(t.refcount--,t.refcount>0){t.host.remove();return}ts.add(e),queueMicrotask(()=>{if(!ts.has(e))return;ts.delete(e);const n=rn.get(e);!n||n.refcount>0||(n.resizeObserver?.disconnect(),n.handle?.unmount(),n.cancelPendingMount(),n.host.remove(),rn.delete(e),delete Bs[e],delete Fs[e])})}}function ou(e){const t=qa.get(e);return t||rn.get(e)?.handle}function Pm(e){return Bs[e]??!1}function Lm(e){return qa.has(e)?!!qa.get(e).closable:Fs[e]??!1}const qa=new Map;function lu(e){if(!e||typeof e!="object")return!1;const t=e.type;return t==="split"||t==="tabs"||t==="slot"}function Om(e){if(!e||typeof e!="object")return!1;const t=e;return lu(t.docked)&&Array.isArray(t.floats)}function Nm(e){return{docked:e,floats:[]}}function Mm(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 zm(e){if(Array.isArray(e))return e.map(Mm);if(Om(e))return[{name:"default",variants:{default:e}}];if(lu(e))return[{name:"default",variants:{default:Nm(e)}}];throw new Error("normalizeInitialLayout: input is not a LayoutNode, LayoutTree, or LayoutPreset[]")}function To(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 jm(e){const t=To(e.docked);for(const n of e.floats)t.push(...To(n.content));return t}Pa("workspace","__shell__");const qm={type:"slot",slotId:"sh3core.home",viewId:"sh3core:home"},Vm=ce({docked:qm,floats:[]});let ot=j(null),Hs=j("home");function Um(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 Bm(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 Fm(e){if(c(ot))throw new Error(`Layout manager cannot attach app "${e.manifest.id}": app "${c(ot).appId}" is still attached`);const t=`__sh3core__:app:${e.manifest.id}`,n=zm(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(l=>[l.name,{...l.variants}]))},s=qp("workspace",t),a=Um(s);(a&&a.layoutVersion!==e.manifest.layoutVersion||s&&!a)&&Pa("workspace",t);const o=Ls(t,{workspace:r}).workspace;b(ot,{appId:e.manifest.id,proxy:o,heldSlotIds:[]},!0),Eg(o)}function Hm(){if(!c(ot))throw new Error("acquireAppSlotHolds: no app attached");if(c(ot).heldSlotIds.length>0)return;const e=Bm(c(ot).proxy),t=jm(e);for(const{slotId:n,viewId:r,label:s,meta:a}of t)au(n,r,s,a),c(ot).heldSlotIds.push(n)}function cu(){if(c(ot)){Ig();for(const e of c(ot).heldSlotIds)iu(e);b(ot,null)}}function uu(){b(Hs,"home")}function Ro(){if(!c(ot))throw new Error("Cannot switchToApp: no app is attached");b(Hs,"app")}const ns=K(()=>{if(c(Hs)==="app"&&c(ot)){const e=c(ot).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 Vm});function Ft(){return c(ns)}function fu(){return c(Hs)}const Wn={get root(){return c(ns).docked},get tree(){return c(ns)},get floats(){return c(ns).floats}},du=Ls("__sh3core__:last-app",{user:{id:null}});function Wm(){return du.user.id}function _s(e){du.user.id=e}const Va=new Map;function Fr(e){let t=Va.get(e);if(!t){const n=Us(e);t={state:r=>Ls(`__app__:${e}`,r),zones:n?.manifest.permissions?.includes(vi)?tu():void 0},Va.set(e,t)}return t}async function Sr(e){const t=Us(e);if(!t)throw new Error(`Cannot launch app "${e}": not registered`);if(xt.id&&xt.id!==e)vu(xt.id);else if(xt.id===e){for(const n of t.manifest.requiredShards){const r=Vt.get(n),s=Cm(n);r&&s&&r.resume?.(s)}t.resume?.(Fr(e)),Ro(),t.onAppReady?.(Fr(e)),_s(e);return}for(const n of t.manifest.requiredShards)if(!Vt.has(n))throw new Error(`App "${e}" requires shard "${n}" which is not registered`);Fm(t);try{for(const n of t.manifest.requiredShards)await ru(n)}catch(n){throw cu(),n}Hm(),t.activate?.(Fr(e)),xt.id=e,Ro(),t.onAppReady?.(Fr(e)),_s(e)}function vu(e){if(xt.id!==e)return;const t=Us(e);if(t){t.deactivate?.(),uu(),cu();for(const n of t.manifest.requiredShards){const r=Vt.get(n);r&&(r.autostart||Vs(n))}xt.id=null,Va.delete(e)}}function Si(e){An.has(e)&&(xt.id===e&&(vu(e),_s(null)),An.delete(e))}async function hu(){const e=xt.id?Us(xt.id):null;if(e){for(const t of e.manifest.requiredShards){const n=Vt.get(t);if(n?.suspend&&await n.suspend()===!1)return!1}if(e.suspend&&await e.suspend()===!1)return!1}return uu(),_s(null),!0}function Kn(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=Kn(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 Km(e,t,n){const r=Math.max(0,Math.min(n,e.tabs.length));e.tabs.splice(r,0,t),e.activeTab=r}function Gm(e,t,n){const r=e.tabs.slice(),[s]=r.splice(t,1),a=Math.max(0,Math.min(n,r.length));r.splice(a,0,s),e.tabs=r,e.activeTab=a}function Co(e,t,n){const r=n==="left"||n==="right"?"horizontal":"vertical",s={type:"tabs",activeTab:0,tabs:[t]};return{type:"split",direction:r,sizes:[1,1],children:n==="left"||n==="top"?[s,e]:[e,s]}}function Ym(e){if(e.type==="tabs")return{...e,tabs:[...e.tabs]};if(e.type==="split"){const t={...e,children:[...e.children],sizes:[...e.sizes]};return e.pinned&&(t.pinned=[...e.pinned]),e.collapsed&&(t.collapsed=[...e.collapsed]),t}return{...e}}function pu(e,t,n,r){const s=bs(e,t);if(!s)return;if(t.length===0){const u=Ym(s),f=Co(u,n,r),v=e;delete v.tabs,delete v.activeTab,delete v.slotId,delete v.viewId,delete v.direction,delete v.sizes,delete v.pinned,delete v.collapsed,delete v.children,Object.assign(v,f);return}const a=Co(s,n,r),i=t.slice(0,-1),o=t[t.length-1],l=bs(e,i);!l||l.type!=="split"||(l.children[o]=a)}function bs(e,t){let n=e;for(const r of t){if(n.type!=="split"||r<0||r>=n.children.length)return null;n=n.children[r]}return n}function jn(e){let t=!0;for(;t;)t=gu(e,null,0)}function gu(e,t,n){if(e.type==="split"){let r=!1;for(let s=0;s<e.children.length;s++)gu(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 mu(){return{root:Ft(),source:fu()}}function Xm(e){const t=Ft().docked,n=Ei(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 Jm(e){const t=Ft();return Gs(t.docked,n=>n.slotId===e)?!0:_u(t,n=>n.slotId===e)}function Ks(e){const t=Ft();return Gs(t.docked,n=>n.viewId===e)?!0:_u(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 _u(e,t){for(const n of e.floats)if(Gs(n.content,t))return Tt.focus(n.id),!0;return!1}function Zm(e,t){return bu(e,t,!0)}function Qm(e,t){return bu(e,t,!1)}function bu(e,t,n){const r=Ft().docked,s=bs(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 xi(e){const t=Ft(),n=t.docked;if(!Kn(n,e))return e_(t,e);const a=ou(e)?.closable;return!a||typeof a=="object"&&(!await a.canClose()||!Kn(n,e))?!1:(Ws(n,e),jn(n),!0)}async function e_(e,t){for(const n of e.floats){if(!Kn(n.content,t))continue;const a=ou(t)?.closable;if(typeof a=="object"&&(!await a.canClose()||!Kn(n.content,t)))return!1;Ws(n.content,t);const i=n.content.type==="tabs"?n.content:null;return(!i||i.tabs.length===0)&&Tt.close(n.id),!0}return!1}function t_(e){const t=Ft(),n=Kn(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),jn(t.docked),Tt.open(s,{title:a,meta:i})}function n_(e){const n=Ft().floats.find(o=>o.id===e);if(!n)return!1;const r=n.content,s=r.type==="tabs"?r:null;if(!s||s.tabs.length===0)return Tt.close(e),!1;const a=s.tabs[s.activeTab??0]??s.tabs[0],i=Ii({slotId:a.slotId,viewId:a.viewId,label:a.label,meta:a.meta});return i&&Tt.close(e),i}function Ei(e){if(e.type==="tabs")return e;if(e.type==="split")for(const t of e.children){const n=Ei(t);if(n)return n}return null}function yu(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=yu(e.children[n],[...t,n]);if(r)return r}return null}function Ii(e){const t=Ft().docked;if(Ks(e.viewId??""))return!0;const n=Ei(t);if(n)return n.tabs.push(e),n.activeTab=n.tabs.length-1,!0;const r=yu(t);return r?(pu(t,r,e,"right"),!0):!1}class mt extends Error{constructor(t,n){super(`Registry validation error at ${t}: ${n}`),this.name="RegistryValidationError",this.path=t}}function wu(e){if(!e||typeof e!="object"||Array.isArray(e))throw new mt("$","expected an object");const t=e;if(t.version!==1)throw new mt("$.version",`expected 1, got ${JSON.stringify(t.version)}`);if(!Array.isArray(t.packages))throw new mt("$.packages","expected an array");return{version:1,packages:t.packages.map((r,s)=>r_(r,`$.packages[${s}]`))}}function r_(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new mt(t,"expected an object");const n=e;St(n,"id",t),i_(n,"type",["shard","app","combo"],t),St(n,"label",t),St(n,"description",t);const r=`${t}.author`;if(!n.author||typeof n.author!="object"||Array.isArray(n.author))throw new mt(r,"expected an object");const s=n.author;if(typeof s.name!="string"||s.name.length===0)throw new mt(`${r}.name`,"expected a non-empty string");if(!Array.isArray(n.versions)||n.versions.length===0)throw new mt(`${t}.versions`,"expected a non-empty array");const a=n.versions.map((i,o)=>s_(i,`${t}.versions[${o}]`));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 s_(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new mt(t,"expected an object");const n=e;St(n,"version",t),St(n,"contractVersion",t),St(n,"bundleUrl",t),St(n,"integrity",t),"serverBundleUrl"in n&&n.serverBundleUrl!==void 0&&St(n,"serverBundleUrl",t),"serverIntegrity"in n&&n.serverIntegrity!==void 0&&St(n,"serverIntegrity",t);let r;if(n.requires!==void 0){if(!Array.isArray(n.requires))throw new mt(`${t}.requires`,"expected an array");r=n.requires.map((s,a)=>a_(s,`${t}.requires[${a}]`))}return{version:n.version,contractVersion:n.contractVersion,bundleUrl:n.bundleUrl,integrity:n.integrity,serverBundleUrl:typeof n.serverBundleUrl=="string"?n.serverBundleUrl:void 0,serverIntegrity:typeof n.serverIntegrity=="string"?n.serverIntegrity:void 0,requires:r}}function a_(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new mt(t,"expected an object");const n=e;return St(n,"id",t),St(n,"versionRange",t),{id:n.id,versionRange:n.versionRange}}function St(e,t,n){const r=e[t];if(typeof r!="string"||r.length===0)throw new mt(`${n}.${t}`,"expected a non-empty string")}function i_(e,t,n,r){if(!n.includes(e[t]))throw new mt(`${r}.${t}`,`expected one of: ${n.join(", ")}`)}const $o=["sha256","sha384","sha512"];function o_(e){const t=e.indexOf("-");if(t===-1)throw new Error(`Invalid SRI format: ${e}`);const n=e.slice(0,t),r=e.slice(t+1);if(!$o.includes(n))throw new Error(`Unsupported SRI algorithm: ${n}. Supported: ${$o.join(", ")}`);if(!r)throw new Error(`Empty hash in SRI: ${e}`);return{algorithm:n,hash:r}}function l_(e){return`SHA-${e.slice(3)}`}function c_(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 Ai(e,t){const{algorithm:n,hash:r}=o_(t),s=l_(n),a=await crypto.subtle.digest(s,e),i=c_(a);if(i!==r)throw new Error(`Integrity check failed for ${n}. Expected: ${r}, got: ${i}`)}async function ku(e){const t=new Set,n=[];for(const r of e){let s;try{const i=await fetch(r);if(!i.ok){console.warn(`[sh3] Registry fetch failed for ${r}: HTTP ${i.status}`);continue}s=await i.json()}catch(i){console.warn(`[sh3] Registry ${r}: ${i instanceof Error?i.message:String(i)}`);continue}let a;try{a=wu(s)}catch(i){console.warn(`[sh3] Registry ${r} failed validation: ${i instanceof Error?i.message:String(i)}`);continue}for(const i of a.packages)t.has(i.id)||(t.add(i.id),n.push({entry:i,latest:i.versions[0],sourceRegistry:r}))}return n}async function Ys(e,t){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 Ai(s,e.integrity),s}async function Ti(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 Ai(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 Xs(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 Zt="0.8.1",Ri="sh3:user:__sh3core__:theme";let xr=[];function u_(e){const t=Object.keys(e);for(const n of xr)t.includes(n)||document.documentElement.style.removeProperty(`--${n}`);for(const[n,r]of Object.entries(e))document.documentElement.style.setProperty(`--${n}`,r);xr=t;try{localStorage.setItem(Ri,JSON.stringify(e))}catch{}}function f_(){for(const e of xr)document.documentElement.style.removeProperty(`--${e}`);xr=[];try{localStorage.removeItem(Ri)}catch{}}function Su(){try{const e=localStorage.getItem(Ri);if(!e)return{};const t=JSON.parse(e);return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{}}catch{return{}}}function d_(){const e=Su();if(Object.keys(e).length!==0){for(const[t,n]of Object.entries(e))document.documentElement.style.setProperty(`--${t}`,n);xr=Object.keys(e)}}const v_={hotInstall:typeof Blob<"u"&&typeof URL.createObjectURL=="function"},xu=["__sh3core__","shell","sh3-store","sh3-admin"],Eu=Object.freeze(Object.defineProperty({__proto__:null,DocumentSyncExplorer:lm,FRAMEWORK_SHARD_IDS:xu,PERMISSION_DOCUMENTS_BROWSE:za,PERMISSION_DOCUMENTS_SYNC:Fc,PERMISSION_STATE_MANAGE:vi,ScopeNotGrantedError:Hc,ScopeRevokedError:Gg,SyncGrantPicker:Yc,TenantMismatchError:Yg,VERSION:Zt,activeShards:jr,buildPackageMeta:Xs,capabilities:v_,clearTokenOverrides:f_,closeTab:xi,collapseChild:Zm,dockIntoActiveLayout:Ii,expandChild:Qm,fetchBundle:Ys,fetchRegistries:ku,focusTab:Jm,focusView:Ks,getActiveApp:su,getAuthHeader:qs,getTokenOverrides:Su,getUser:js,inspectActiveLayout:mu,isAdmin:Jt,isAuthenticated:Jc,isGuest:Zc,launchApp:Sr,listRegisteredApps:ki,listVerbs:_i,registeredShards:Vt,returnToHome:hu,setTokenOverrides:u_,shell:jc,spliceIntoActiveLayout:Xm,unregisterApp:Si,validateRegistryIndex:wu},Symbol.toStringTag,{value:"Module"})),h_="/assets/SH3-BG5NVpSD.png",p_="https://cdn.jsdelivr.net/npm/p5@1.11.13/lib/p5.min.js";let ir=null;function g_(){return ir||(ir=new Promise((e,t)=>{const n=window.p5;if(n){e(n);return}const r=document.createElement("script");r.src=p_,r.async=!0,r.onload=()=>e(window.p5),r.onerror=s=>{ir=null,t(s)},document.head.appendChild(r)}),ir)}var m_=R('<h1 class="shell-title-fallback svelte-1ifjvh5">SH3</h1>'),__=R('<div class="shell-title svelte-1ifjvh5"></div>');function b_(e,t){ee(t,!0);const n="`.-':;,^\"~=+<>*?!/\\|()[]{}x1ltzrcvunsXYUJCLQ0OZmwqpdbkhao*#MW&8%B@$",r=64,s=Math.floor(64/(442/193)),a=8,i=7,o=80,l=r*a,u=s*i,f=o/u;let v=j(void 0),d=null,w=j(!1);const _=()=>g=>{const P=getComputedStyle(document.documentElement).getPropertyValue("--shell-accent").trim();let T,D,L=!1;g.setup=()=>{g.createCanvas(l,u),g.noSmooth(),g.noStroke(),g.textAlign(g.CENTER,g.CENTER),g.textFont("monospace"),g.textSize(10),g.textStyle(g.BOLD),D=g.loadImage(h_,()=>{T=g.createGraphics(r,s),T.pixelDensity(1),T.image(D,0,0,r,s),T.loadPixels(),L=!0},()=>{b(w,!0)})},g.draw=()=>{if(!L)return;const C=g.millis()*.001;let O;g.clear(),g.background(0,0),g.fill(P);for(let E=0;E<s;E++)for(let q=0;q<r;q++){const F=(E*r+q)*4;if(T.pixels[F]<64){if(O=g.noise(q/r*2,E/s*2,C*.15),O>.33)continue;g.text(n[Math.floor(O*n.length*.25)],(q+.5)*a,(E+.5)*i);continue}O=g.noise(q/r*4,E/s*4,C*.5),g.text(n[Math.floor(O*n.length)],(q+.5)*a,(E+.5)*i)}}};Ke(()=>{if(c(w))return;let g=!1;return g_().then(S=>{if(!(g||!c(v)))try{d=new S(_(),c(v))}catch(P){console.error("[ShellTitle] p5 sketch failed to start",P),b(w,!0)}}).catch(S=>{console.error("[ShellTitle] failed to load p5 from CDN",S),b(w,!0)}),()=>{g=!0,d&&(d.remove(),d=null)}});var k=gt(),y=Ae(k);{var A=g=>{var S=m_();I(g,S)},h=g=>{var S=__();Bt(S,"",{},{width:"216.7195767195767px",height:"80px","--shell-title-scale":f}),kt(S,P=>b(v,P),()=>c(v)),I(g,S)};B(y,g=>{c(w)?g(A):g(h,-1)})}I(e,k),te()}var y_=R('<li class="shell-home-entry svelte-cpn2x2"><div class="shell-home-entry-label svelte-cpn2x2"> </div> <div class="shell-home-entry-meta svelte-cpn2x2"> </div> <button type="button" class="shell-home-launch svelte-cpn2x2">Launch</button></li>'),w_=R('<section class="shell-home-section svelte-cpn2x2"><h2 class="shell-home-section-title svelte-cpn2x2">Apps</h2> <ul class="shell-home-list svelte-cpn2x2"></ul></section>'),k_=R('<li class="shell-home-entry svelte-cpn2x2"><div class="shell-home-entry-label svelte-cpn2x2"> </div> <div class="shell-home-entry-meta svelte-cpn2x2"> </div> <button type="button" class="shell-home-launch svelte-cpn2x2">Launch</button></li>'),S_=R('<section class="shell-home-section svelte-cpn2x2"><h2 class="shell-home-section-title svelte-cpn2x2">Admin</h2> <ul class="shell-home-list svelte-cpn2x2"></ul></section>'),x_=R('<p class="shell-home-empty svelte-cpn2x2">No apps registered.</p>'),E_=R('<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>');function I_(e,t){ee(t,!0);const n=K(ki),r=K(()=>c(n).filter(h=>!h.admin)),s=K(()=>c(n).filter(h=>h.admin)),a=K(Jt);var i=E_(),o=m(i),l=m(o),u=m(l);b_(u,{});var f=x(u,2),v=m(f);p(f),nn(2),p(l),nn(2),p(o);var d=x(o,2);{var w=h=>{var g=w_(),S=x(m(g),2);be(S,21,()=>c(r),P=>P.id,(P,T)=>{var D=y_(),L=m(D),C=m(L,!0);p(L);var O=x(L,2),E=m(O);p(O);var q=x(O,2);p(D),V(()=>{M(C,c(T).label),M(E,`${c(T).id??""} · v${c(T).version??""}`)}),H("click",q,()=>Sr(c(T).id)),I(P,D)}),p(S),p(g),I(h,g)};B(d,h=>{c(r).length>0&&h(w)})}var _=x(d,2);{var k=h=>{var g=S_(),S=x(m(g),2);be(S,21,()=>c(s),P=>P.id,(P,T)=>{var D=k_(),L=m(D),C=m(L,!0);p(L);var O=x(L,2),E=m(O);p(O);var q=x(O,2);p(D),V(()=>{M(C,c(T).label),M(E,`${c(T).id??""} · v${c(T).version??""}`)}),H("click",q,()=>Sr(c(T).id)),I(P,D)}),p(S),p(g),I(h,g)};B(_,h=>{c(a)&&c(s).length>0&&h(k)})}var y=x(_,2);{var A=h=>{var g=x_();I(h,g)};B(y,h=>{c(r).length===0&&(!c(a)||c(s).length===0)&&h(A)})}p(i),V(()=>M(v,`v${Zt}`)),I(e,i),te()}pe(["click"]);const A_={manifest:{id:"__sh3core__",label:"SH3 Core",version:Zt,views:[{id:"sh3core:home",label:"Home"}]},activate(e){const t={mount(n,r){const s=qe(I_,{target:n});return{unmount(){Ze(s)}}}};e.registerView("sh3core:home",t)},autostart(){}},T_={id:"shell",label:"Shell",version:Zt,views:[{id:"shell:terminal",label:"Shell",standalone:!0}],permissions:[]},R_=2e3;let C_=0;function $_(){return`e${++C_}`}class D_{#e;get entries(){return c(this.#e)}set entries(t){b(this.#e,t,!0)}constructor(t=R_){this.#e=j(ce([])),this.cap=t}push(t){const n=this.entries[this.entries.length-1];if(n&&n.kind==="text"&&t.kind==="text"&&n.stream===t.stream){n.chunks.push(...t.chunks);return}const r={...t,id:$_()};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_=R("<pre> </pre>");function L_(e,t){ee(t,!0);const n=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,r=K(()=>t.chunks.join("").replace(n,""));var s=P_();let a;var i=m(s,!0);p(s),V(()=>{a=De(s,1,"shell-text svelte-ypr8s",null,a,{stderr:t.stream==="stderr"}),M(i,c(r))}),I(e,s),te()}var O_=R('<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 N_(e,t){var n=O_(),r=m(n),s=m(r,!0);p(r);var a=x(r,4),i=m(a,!0);p(a),p(n),V(()=>{M(s,t.cwd),M(i,t.line)}),I(e,n)}var M_=R("<div> </div>");function z_(e,t){var n=M_();let r;var s=m(n,!0);p(n),V(()=>{r=De(n,1,"shell-status svelte-nfxdpt",null,r,{info:t.level==="info",warn:t.level==="warn",error:t.level==="error"}),M(s,t.text)}),I(e,n)}var j_=R('<div class="shell-rich svelte-1rnhl05"><!></div>');function q_(e,t){var n=j_(),r=m(n);Nr(r,()=>t.component,(s,a)=>{a(s,zr(()=>t.componentProps))}),p(n),I(e,n)}var V_=R('<div class="shell-scrollback svelte-isy3jt"></div>');function U_(e,t){ee(t,!0);let n=j(null);Ke(()=>{t.scrollback.entries.length,c(n)&&(c(n).scrollTop=c(n).scrollHeight)});var r=V_();be(r,21,()=>t.scrollback.entries,s=>s.id,(s,a)=>{var i=gt(),o=Ae(i);{var l=d=>{L_(d,{get stream(){return c(a).stream},get chunks(){return c(a).chunks}})},u=d=>{N_(d,{get cwd(){return c(a).cwd},get line(){return c(a).line}})},f=d=>{z_(d,{get text(){return c(a).text},get level(){return c(a).level}})},v=d=>{q_(d,{get component(){return c(a).component},get componentProps(){return c(a).props}})};B(o,d=>{c(a).kind==="text"?d(l):c(a).kind==="prompt"?d(u,1):c(a).kind==="status"?d(f,2):c(a).kind==="rich"&&d(v,3)})}I(s,i)}),p(r),kt(r,s=>b(n,s),()=>c(n)),I(e,r),te()}var B_=R('<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 F_(e,t){ee(t,!0);let n=j(""),r=j(null),s=j(""),a=j(null);function i(){if(t.locked)return;const k=c(n);k.trim()&&(b(n,""),b(r,null),t.onSubmit(k))}function o(){t.history.length!==0&&(c(r)===null?(b(s,c(n),!0),b(r,t.history.length-1)):c(r)>0&&Fn(r,-1),b(n,t.history[c(r)]??"",!0))}function l(){c(r)!==null&&(c(r)<t.history.length-1?(Fn(r),b(n,t.history[c(r)],!0)):(b(r,null),b(n,c(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(),o()):k.key==="ArrowDown"?(k.preventDefault(),l()):k.ctrlKey&&k.key==="c"?(k.preventDefault(),b(n,""),b(r,null)):k.ctrlKey&&k.key==="l"&&(k.preventDefault(),b(n,"clear"),i())}Ke(()=>{!t.locked&&c(a)&&c(a).focus()});var f=B_();let v;var d=m(f),w=m(d,!0);p(d);var _=x(d,4);Ee(_),kt(_,k=>b(a,k),()=>c(a)),p(f),V(()=>{v=De(f,1,"shell-input svelte-1dfv2gk",null,v,{locked:t.locked}),M(w,t.cwd),_.disabled=t.locked}),H("keydown",_,u),Pe(_,()=>c(n),k=>b(n,k)),I(e,f),te()}pe(["keydown"]);const Do=[1e3,2e3,5e3,1e4];class H_{#e;get connected(){return c(this.#e)}set connected(t){b(this.#e,t,!0)}#t;get cwd(){return c(this.#t)}set cwd(t){b(this.#t,t,!0)}#n;get env(){return c(this.#n)}set env(t){b(this.#n,t,!0)}#a;get history(){return c(this.#a)}set history(t){b(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(ce({})),this.#a=j(ce([]))}connect(){if(!this.closed){try{this.ws=new WebSocket(this.url)}catch{this.scheduleReconnect();return}this.ws.addEventListener("open",()=>{this.backoffIndex=0,this.connected=!0;const t=this.lastSeq>0?{t:"hello",replayFrom:this.lastSeq}:{t:"hello"};this.sendRaw(t);for(const n of this.pendingHistoryLogs)this.sendRaw(n);this.pendingHistoryLogs=[]}),this.ws.addEventListener("message",t=>{let n;try{n=JSON.parse(t.data)}catch{return}n.t==="event"&&typeof n.event.seq=="number"&&(this.lastSeq=n.event.seq),n.t==="welcome"&&(this.cwd=n.cwd,this.env=n.env,this.lastSeq=n.seq),n.t==="cwd"&&(this.cwd=n.cwd),n.t==="history"&&(this.history=n.lines);for(const r of this.handlers)r(n)}),this.ws.addEventListener("close",()=>{this.connected=!1,this.ws=null,this.scheduleReconnect()}),this.ws.addEventListener("error",()=>{})}}scheduleReconnect(){if(this.closed)return;const t=Do[Math.min(this.backoffIndex,Do.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 W_{list(){return _i()}get(t){return ko(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=ko(s);if(!i)return{kind:"forward",line:t};const o=a.length?a.split(/\s+/):[];return{kind:"local",verb:i,args:o,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 G_{#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},X_={id:"user",label:"User",transport:"none",autoRelocate:!0};function J_(e){e.register(Y_),e.register(X_)}function Iu(e){return`sh3.shell.lastMode.${e}`}function Z_(e){try{return globalThis.localStorage?.getItem(Iu(e))??null}catch{return null}}function Q_(e,t){try{globalThis.localStorage?.setItem(Iu(e),t)}catch{}}function eb(e,t,n){const r=Z_(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 tb(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 nb(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 rb=R('<div class="toolbar-slots svelte-gnowwz"></div>'),sb=R('<div><button class="toolbar-toggle svelte-gnowwz"> </button> <!></div>');function ab(e,t){ee(t,!0);let n=on(t,"slotProps",19,()=>({})),r=K(()=>t.registry.list(t.ctx));var s=sb();let a;var i=m(s),o=m(i,!0);p(i);var l=x(i,2);{var u=f=>{var v=rb();be(v,21,()=>c(r),d=>d.id,(d,w)=>{const _=K(()=>c(w).component);var k=gt(),y=Ae(k);Nr(y,()=>c(_),(A,h)=>{h(A,zr(()=>n()[c(w).id]??{}))}),I(d,k)}),p(v),I(f,v)};B(l,f=>{t.expanded&&f(u)})}p(s),V(()=>{a=De(s,1,"toolbar svelte-gnowwz",null,a,{collapsed:!t.expanded}),Te(i,"title",t.expanded?"Collapse toolbar":"Expand toolbar"),M(o,t.expanded?"▲":"▼")}),H("click",i,function(...f){t.onToggle?.apply(this,f)}),I(e,s),te()}pe(["click"]);class ib{#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 ob=R('<li role="menuitem"><button> </button></li>'),lb=R('<ul class="mode-menu svelte-1i4cqlj" role="menu"></ul>'),cb=R('<div class="mode-slot svelte-1i4cqlj"><button class="mode-btn svelte-1i4cqlj"> </button> <!></div>'),ub=R('<span class="mode-label svelte-1i4cqlj"> </span>');function fb(e,t){ee(t,!0);let n=j(!1);function r(l){b(n,!1),t.onSelect(l)}var s=gt(),a=Ae(s);{var i=l=>{var u=cb(),f=m(u),v=m(f);p(f);var d=x(f,2);{var w=_=>{var k=lb();be(k,21,()=>t.registry.list(t.role),y=>y.id,(y,A)=>{var h=ob(),g=m(h);let S;var P=m(g,!0);p(g),p(h),V(()=>{S=De(g,1,"mode-option svelte-1i4cqlj",null,S,{active:c(A).id===t.mode.id}),M(P,c(A).label)}),H("click",g,()=>r(c(A).id)),I(y,h)}),p(k),I(_,k)};B(d,_=>{c(n)&&_(w)})}p(u),V(()=>M(v,`${t.mode.label??""} ▾`)),H("click",f,()=>b(n,!c(n))),I(l,u)},o=l=>{var u=ub(),f=m(u,!0);p(u),V(()=>M(f,t.mode.label)),I(l,u)};B(a,l=>{t.role==="admin"?l(i):l(o,-1)})}I(e,s),te()}pe(["click"]);var db=R('<button class="focus-lock-btn svelte-1q6gbap"> </button>');function vb(e,t){var n=db(),r=m(n,!0);p(n),V(()=>{Te(n,"title",t.locked?"Unlock focus":"Lock focus"),M(r,t.locked?"🔒":"🔓")}),H("click",n,function(...s){t.onToggle?.apply(this,s)}),I(e,n)}pe(["click"]);var hb=R('<span class="target-shard svelte-1nn2m6x" title="Target shard"> </span>');function pb(e,t){var n=hb(),r=m(n);p(n),V(()=>M(r,`→ ${t.target??"—"??""}`)),I(e,n)}var gb=R('<div class="shell-terminal svelte-13komre"><!> <!> <!></div>');function mb(e,t){ee(t,!0);const n=new D_,r=new W_,s=new K_,a=new G_;J_(a);let i=j(ce(_e(()=>eb(a,t.userId,t.role))));function o(L){const C=a.get(L);C&&(C.requiresRole&&C.requiresRole!==t.role||(b(i,C,!0),Q_(t.userId,L),C.transport!=="ws"&&n.push({kind:"status",text:"mode switch: reload to take effect for server-shell changes",level:"info",ts:Date.now()})))}const l=_e(()=>new H_(t.wsUrl)),u=_e(()=>tb({mode:()=>c(i),resolver:r,scrollback:n,session:l,shell:t.shell,fs:s,cwd:()=>l.cwd}));let f=j(!1),v=j(!1),d=j(null);const w=new ib;w.register({id:"mode",order:10,visible:()=>!0,component:fb}),w.register({id:"focus-lock",order:20,visible:L=>L.mode.id==="user",component:vb}),w.register({id:"target-shard",order:30,visible:L=>L.mode.id==="user",component:pb});let _=j(ce((()=>{try{return localStorage.getItem("sh3.shell.toolbarExpanded")!=="0"}catch{return!0}})()));function k(){b(_,!c(_));try{localStorage.setItem("sh3.shell.toolbarExpanded",c(_)?"1":"0")}catch{}}function y(L){if(L.type==="tabs")return L.tabs[L.activeTab]?.viewId??null;if(L.type==="split")for(const C of L.children){const O=y(C);if(O!==null)return O}return L.viewId??null}function A(){try{const L=Ft(),C=y(L.docked);if(!C)return null;const O=C.indexOf(":");return O>=0?C.slice(0,O):C}catch{return null}}Ke(()=>{const L=A(),C=c(i).autoRelocate,O=c(v);(async()=>{const E=await nb({modeAutoRelocate:C,focusLocked:O,focusedShardId:L,currentShardId:"shell"},s);E.kind==="relocate"&&E.path!==void 0&&(l.cwd=E.path),L&&L!=="shell"?b(d,L,!0):L||b(d,null)})()});function h(L){if(L.t!=="event")return;const C=L.event;switch(C.kind){case"prompt":n.push({kind:"prompt",cwd:C.cwd,line:C.line,ts:C.ts}),b(f,!0);break;case"stdout":n.push({kind:"text",stream:"stdout",chunks:[C.data],ts:C.ts});break;case"stderr":n.push({kind:"text",stream:"stderr",chunks:[C.data],ts:C.ts});break;case"exit":(C.signal||C.code!==null&&C.code!==0)&&n.push({kind:"status",text:C.signal?`shell: process exited (${C.signal})`:`shell: process exited (${C.code})`,level:"error",ts:C.ts}),b(f,!1);break;case"status":n.push({kind:"status",text:C.text,level:C.level,ts:C.ts});break}}let g=null;Ds(()=>{g=l.onMessage(h),c(i).transport==="ws"&&l.connect()}),pc(()=>{g?.(),l.close()});var S=gb(),P=m(S);{let L=K(()=>({mode:c(i),role:t.role})),C=K(()=>({mode:{mode:c(i),role:t.role,registry:a,onSelect:o},"focus-lock":{locked:c(v),onToggle:()=>b(v,!c(v))},"target-shard":{target:c(d)}}));ab(P,{get registry(){return w},get ctx(){return c(L)},get expanded(){return c(_)},onToggle:k,get slotProps(){return c(C)}})}var T=x(P,2);U_(T,{get scrollback(){return n}});var D=x(T,2);F_(D,{get cwd(){return l.cwd},get locked(){return c(f)},get history(){return l.history},get session(){return l},get onSubmit(){return u}}),p(S),I(e,S),te()}var _b=R('<tr><td class="svelte-m248jy"><button type="button" class="svelte-m248jy"> </button></td><td class="svelte-m248jy"> </td></tr>'),bb=R('<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 yb(e,t){ee(t,!0);var n=bb(),r=m(n),s=x(m(r));be(s,21,()=>t.data.rows,a=>a.name,(a,i)=>{var o=_b(),l=m(o),u=m(l),f=m(u,!0);p(u),p(l);var v=x(l),d=m(v,!0);p(v),p(o),V(()=>{M(f,c(i).name),M(d,c(i).summary)}),H("click",u,()=>t.data.onClickName(c(i).name)),I(a,o)}),p(s),p(r),p(n),I(e,n),te()}pe(["click"]);function wb(){return{name:"help",summary:"List verbs or show detail for one.",async run(e){const t=_i().map(n=>({name:n.name,summary:n.summary}));e.scrollback.push({kind:"rich",component:yb,props:{data:{rows:t,onClickName:n=>e.dispatch(n)}},ts:Date.now()})}}}const kb={name:"clear",summary:"Clear the scrollback (local only — other views are unaffected).",async run(e){e.scrollback.clear()}};var Sb=R('<li class="svelte-o8m437"><button type="button" class="svelte-o8m437"> </button></li>'),xb=R('<div class="shell-rich-history svelte-o8m437"><ol class="svelte-o8m437"></ol></div>');function Eb(e,t){ee(t,!0);var n=xb(),r=m(n);be(r,21,()=>t.data.lines,an,(s,a)=>{var i=Sb(),o=m(i),l=m(o,!0);p(o),p(i),V(()=>M(l,c(a))),H("click",o,()=>t.data.onClickLine(c(a))),I(s,i)}),p(r),p(n),I(e,n),te()}pe(["click"]);const Ib={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:Eb,props:{data:{lines:r,onClickLine:s=>e.dispatch(s)}},ts:Date.now()})}};var Ab=R('<tr><td class="svelte-1u5krjz"><button type="button" class="svelte-1u5krjz"> </button></td><td class="svelte-1u5krjz"> </td></tr>'),Tb=R('<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 Rb(e,t){ee(t,!0);var n=Tb(),r=m(n),s=x(m(r));be(s,21,()=>t.data.apps,a=>a.id,(a,i)=>{var o=Ab(),l=m(o),u=m(l),f=m(u,!0);p(u),p(l);var v=x(l),d=m(v,!0);p(v),p(o),V(()=>{M(f,c(i).id),M(d,c(i).label)}),H("click",u,()=>t.data.onClickApp(c(i).id)),I(a,o)}),p(s),p(r),p(n),I(e,n),te()}pe(["click"]);var Cb=R('<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 $b(e,t){ee(t,!0);var n=Cb(),r=m(n),s=m(r,!0);p(r);var a=x(r,2),i=x(m(a));p(a);var o=x(a,2),l=x(m(o));p(o),p(n),V(u=>{M(s,t.data.label),M(i,` ${t.data.id??""}`),M(l,` ${u??""}`)},[()=>t.data.shards.join(", ")]),I(e,n),te()}const Db={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:Rb,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()})}},Pb={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:$b,props:{data:{id:t.id,label:t.label,shards:[]}},ts:Date.now()})}};var Lb=R('<tr><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td></tr>'),Ob=R('<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 Nb(e,t){ee(t,!0);var n=Ob(),r=m(n),s=x(m(r));be(s,21,()=>t.data.shards,a=>a.id,(a,i)=>{var o=Lb(),l=m(o),u=m(l,!0);p(l);var f=x(l),v=m(f,!0);p(f);var d=x(f),w=m(d,!0);p(d),p(o),V(()=>{M(u,c(i).id),M(v,c(i).label),M(w,c(i).version)}),I(a,o)}),p(s),p(r),p(n),I(e,n),te()}const Mb={name:"shards",summary:"List active shards.",async run(e){const t=e.shell.listShards();e.scrollback.push({kind:"rich",component:Nb,props:{data:{shards:t}},ts:Date.now()})}};var zb=R('<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>'),jb=R('<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 qb(e,t){ee(t,!0);var n=jb(),r=m(n),s=x(m(r));be(s,21,()=>t.data.views,a=>a.slotId,(a,i)=>{var o=zb(),l=m(o),u=m(l,!0);p(l);var f=x(l),v=m(f,!0);p(f);var d=x(f),w=m(d,!0);p(d);var _=x(d),k=m(_);p(_),p(o),V(()=>{M(u,c(i).slotId),M(v,c(i).viewId),M(w,c(i).label)}),H("click",k,()=>t.data.onClose(c(i).slotId)),I(a,o)}),p(s),p(r),p(n),I(e,n),te()}pe(["click"]);const Vb={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:qb,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()})}},Ub={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()})}},Bb={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()})}},Fb={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()})}},Hb={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 Wb=R('<tr><td class="svelte-1w7onag"> </td><td class="svelte-1w7onag"> </td></tr>'),Kb=R('<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 Gb(e,t){ee(t,!0);var n=Kb(),r=m(n),s=x(m(r));be(s,21,()=>t.data.rows,a=>a.shardId,(a,i)=>{var o=Wb(),l=m(o),u=m(l,!0);p(l);var f=x(l),v=m(f,!0);p(f),p(o),V(d=>{M(u,c(i).shardId),M(v,d)},[()=>c(i).zones.join(", ")]),I(a,o)}),p(s),p(r),p(n),I(e,n),te()}var Yb=R('<div class="shell-rich-zonetree svelte-13iiyr1"><pre class="svelte-13iiyr1"> </pre></div>');function Xb(e,t){ee(t,!0);var n=Yb(),r=m(n),s=m(r,!0);p(r),p(n),V(a=>M(s,a),[()=>JSON.stringify(t.data.value,null,2)]),I(e,n),te()}const Jb={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:Gb,props:{data:{rows:n}},ts:Date.now()})}},Zb={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:Xb,props:{data:{value:s}},ts:Date.now()})}};function Qb(e,t){if(t.startsWith("/"))return ey(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 ey(e){return e.split("/").filter(t=>t&&t!==".").join("/")}const ty={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()})}},ny={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=Qb(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}},ry={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 sy=R('<tr><td class="svelte-1ox8vog"> </td><td class="svelte-1ox8vog"> </td></tr>'),ay=R('<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 iy(e,t){ee(t,!0);var n=ay(),r=m(n),s=x(m(r));be(s,21,()=>Object.entries(t.data.env),([a,i])=>a,(a,i)=>{var o=K(()=>tl(c(i),2));let l=()=>c(o)[0],u=()=>c(o)[1];var f=sy(),v=m(f),d=m(v,!0);p(v);var w=x(v),_=m(w,!0);p(w),p(f),V(()=>{M(d,l()),M(_,u())}),I(a,f)}),p(s),p(r),p(n),I(e,n),te()}const oy={name:"env",summary:"Show the session environment.",async run(e){const t=e.session.env;e.scrollback.push({kind:"rich",component:iy,props:{data:{env:t}},ts:Date.now()})}},ly={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()})}},cy={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 uy(e){e.registerVerb(wb()),e.registerVerb(kb),e.registerVerb(Ib),e.registerVerb(Db),e.registerVerb(Pb),e.registerVerb(Mb),e.registerVerb(Vb),e.registerVerb(Ub),e.registerVerb(Hb),e.registerVerb(Bb),e.registerVerb(Fb),e.registerVerb(Jb),e.registerVerb(Zb),e.registerVerb(ty),e.registerVerb(ny),e.registerVerb(oy),e.registerVerb(ry),e.registerVerb(ly),e.registerVerb(cy)}function Au(e){return e.type==="tabs"?e.tabs.filter(t=>t.viewId!==null):e.type==="split"?e.children.flatMap(Au):e.viewId!==null?[{slotId:e.slotId,viewId:e.viewId,label:e.viewId}]:[]}function fy(e){return{listApps(){return ki().map(t=>({id:t.id,label:t.label}))},getActiveApp(){const t=su();return t?{id:t.id,label:t.label}:null},launchApp(t){Sr(t)},listShards(){return Array.from(Vt.values()).map(t=>({id:t.manifest.id,label:t.manifest.label,version:t.manifest.version}))},listViewsInCurrentLayout(){try{const{root:t}=mu();return Au(t.docked).map(n=>({slotId:n.slotId,viewId:n.viewId??"",label:n.label}))}catch{return[]}},openViewInCurrentLayout(t){try{if(Ks(t))return{ok:!0};const n=Ao().find(r=>r.viewId===t);if(n){const r=`standalone:${t}:${Date.now()}`;return Ii({slotId:r,viewId:t,label:n.label})?{ok:!0}:{ok:!1,error:`could not dock "${t}" — no available slot`}}return{ok:!1,error:`view "${t}" not found in current layout`}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}},listStandaloneViews(){return Ao()},popoutSlot(t){try{const n=t_(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 n_(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 Tt.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 xi(t),{ok:!0}},listZones(t){return[]},readZone(t,n){return null},whoAmI(){return{userId:js()?.id??"guest",admin:Jt()}}}}const dy={manifest:T_,activate(e){if(!e.isAdmin)return;uy(e);const t=fy(),n={mount(r,s){const a=typeof location<"u"&&location.protocol==="https:"?"wss":"ws",i=typeof location<"u"?location.host:"localhost",o=`${a}://${i}/api/shell/session`,u=js()?.id??"guest",f=Jt()?"admin":"user",v=qe(mb,{target:r,props:{shell:t,wsUrl:o,userId:u,role:f}});return{unmount(){Ze(v)},closable:!0}}};e.registerView("shell:terminal",n)},autostart(){}},Po=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 ga(e,t){const n=Object.keys(t),r=n.filter(i=>!Po.has(i)),s=n.filter(i=>Po.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 Ci=globalThis;Ci.__sh3__=Eu;Ci.__sh3_svelte__=mc;Ci.__sh3_svelte_internal_client__=$c;const $i={"sh3-core":ga("__sh3__",Eu),svelte:ga("__sh3_svelte__",mc),"svelte/internal/client":ga("__sh3_svelte_internal_client__",$c)};$i["svelte/internal/disclose-version"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));$i["sh3-core/tokens.css"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));const vy=/(?:from|import)\s*(['"])(sh3-core(?:\/[^'"]*)?|svelte(?:\/[^'"]*)?)\1/g;function hy(e){return e.replace(vy,(t,n,r)=>{const s=$i[r];return s?`${t.startsWith("from")?"from":"import"} '${s}'`:t})}async function Di(e){const t=new TextDecoder().decode(e),n=hy(t),r=new Blob([n],{type:"application/javascript"}),s=URL.createObjectURL(r);try{const a=await import(s),i={shards:[],apps:[]};for(const o of Object.values(a)){if(!o||typeof o!="object"||!("manifest"in o))continue;const l=o;py(l)?i.shards.push(l):gy(l)&&i.apps.push(l)}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 py(e){return"activate"in e&&typeof e.activate=="function"&&Array.isArray(e.manifest.views)}function gy(e){return"initialLayout"in e&&Array.isArray(e.manifest.requiredShards)}const my="sh3-packages",_y=1,Er="bundles",Ir="meta";function Js(){return new Promise((e,t)=>{const n=indexedDB.open(my,_y);n.onupgradeneeded=()=>{const r=n.result;r.objectStoreNames.contains(Er)||r.createObjectStore(Er),r.objectStoreNames.contains(Ir)||r.createObjectStore(Ir)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}function Gn(e,t,n,r){return new Promise((s,a)=>{const o=e.transaction(t,n).objectStore(t),l=r(o);l.onsuccess=()=>s(l.result),l.onerror=()=>a(l.error)})}async function Tu(e,t,n){const r=await Js();await Gn(r,Er,"readwrite",s=>s.put(t,e)),await Gn(r,Ir,"readwrite",s=>s.put(n,e)),r.close()}async function Ru(e){const t=await Js(),n=await Gn(t,Er,"readonly",r=>r.get(e));return t.close(),n??null}async function Cu(){const e=await Js(),t=await Gn(e,Ir,"readonly",n=>n.getAll());return e.close(),t??[]}async function by(e){const t=await Js();await Gn(t,Er,"readwrite",n=>n.delete(e)),await Gn(t,Ir,"readwrite",n=>n.delete(e)),t.close()}function Pi(e,t){for(const n of e.shards)n.manifest={...n.manifest,version:t.version},yi(n);for(const n of e.apps)n.manifest={...n.manifest,version:t.version},wi(n)}async function Li(e,t){try{await Ai(e,t.integrity)}catch(a){return{success:!1,hotLoaded:!1,error:`Integrity check failed: ${a instanceof Error?a.message:String(a)}`}}let n;try{n=await Di(e)}catch(a){return{success:!1,hotLoaded:!1,error:`Failed to load bundle: ${a instanceof Error?a.message:String(a)}`}}if(t.type==="shard"&&n.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"&&n.apps.length===0)return{success:!1,hotLoaded:!1,error:`Package "${t.id}" declared type "app" but bundle contains no valid app`};const r={id:t.id,type:t.type,version:t.version,sourceRegistry:t.sourceRegistry,contractVersion:t.contractVersion,installedAt:new Date().toISOString()};try{await Tu(t.id,e,r)}catch(a){return{success:!1,hotLoaded:!1,error:`Failed to persist package: ${a instanceof Error?a.message:String(a)}`}}if(t.type==="shard"||t.type==="combo")try{Vs(t.id)}catch{}(t.type==="app"||t.type==="combo")&&Si(t.id);let s=!0;try{Pi(n,{version:t.version,sourceRegistry:t.sourceRegistry,contractVersion:t.contractVersion})}catch(a){console.warn(`[sh3] Package "${t.id}" installed but registration failed (will retry on next boot):`,a instanceof Error?a.message:a),s=!1}return{success:!0,package:r,hotLoaded:s}}async function $u(e){try{Vs(e)}catch{}Si(e),await by(e)}async function yy(){return Cu()}async function wy(){let e;try{e=await Cu()}catch(t){console.warn("[sh3] Failed to read installed packages from storage:",t instanceof Error?t.message:t);return}for(const t of e)try{const n=await Ru(t.id);if(!n){console.warn(`[sh3] No bundle found for installed package "${t.id}", skipping`);continue}const r=await Di(n);Pi(r,{version:t.version,sourceRegistry:t.sourceRegistry,contractVersion:t.contractVersion}),r.shards.length===0&&r.apps.length===0&&console.warn(`[sh3] Package "${t.id}" contains no valid shards or apps, skipping`)}catch(n){console.warn(`[sh3] Failed to load installed package "${t.id}":`,n instanceof Error?n.message:n)}}const Lo={version:1};var ky=R('<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>'),Sy=R('<div class="store-registries svelte-1aafzt0"></div>'),xy=R('<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>'),Ey=R('<div class="store-error svelte-1aafzt0"> </div>'),Iy=R('<div class="store-error svelte-1aafzt0"> </div>'),Ay=R('<img alt="" class="store-icon-img svelte-1aafzt0"/>'),Ty=R('<span class="store-icon-placeholder svelte-1aafzt0"> </span>'),Ry=R('<div class="store-card-warning svelte-1aafzt0"> </div>'),Cy=R('<button class="store-update-btn svelte-1aafzt0"> </button>'),$y=R('<span class="store-installed-label svelte-1aafzt0">Installed</span>'),Dy=R('<span class="store-card-missing svelte-1aafzt0"> </span>'),Py=R('<div class="store-install-wrap svelte-1aafzt0"><button class="store-install-btn svelte-1aafzt0"> </button> <!></div>'),Ly=R('<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>'),Oy=R("No packages found. <!>",1),Ny=R('<div class="store-empty svelte-1aafzt0"><!></div>'),My=R('<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>');function zy(e,t){ee(t,!0);let n=j(""),r=j("all"),s=j(ce(new Set)),a=j(ce(new Set)),i=j(null),o=j("");const l=ln;async function u(){const $=c(o).trim();if($&&!l.env.registries.includes($))try{await l.addRegistry($),b(o,""),l.refreshCatalog(),l.refreshInstalled()}catch(N){b(i,N instanceof Error?N.message:String(N),!0)}}async function f($){try{await l.removeRegistry($),l.refreshCatalog()}catch(N){b(i,N instanceof Error?N.message:String(N),!0)}}const v=K(()=>{const $=c(n).toLowerCase().trim();return l.state.ephemeral.catalog.filter(N=>c(r)!=="all"&&N.entry.type!==c(r)?!1:$?N.entry.id.toLowerCase().includes($)||N.entry.label.toLowerCase().includes($)||N.entry.description.toLowerCase().includes($):!0)});function d($){return l.state.ephemeral.installed.some(N=>N.id===$)}function w($){return String($.latest.contractVersion)!==String(Lo.version)}function _($){return $ in l.state.ephemeral.updatable}function k($){return l.state.ephemeral.installed.find(N=>N.id===$)?.version??""}function y($,N){const W=$.latest.requires?.map(Q=>Q.id)??[];if(W.length===0)return[];const oe=new Set(xu);for(const Q of N)(Q.type==="shard"||Q.type==="combo")&&oe.add(Q.id);return W.filter(Q=>!oe.has(Q))}async function A($){if(!c(a).has($)){b(a,new Set([...c(a),$]),!0),b(i,null);try{await l.updatePackage($)}catch(N){b(i,N instanceof Error?N.message:String(N),!0)}finally{const N=new Set(c(a));N.delete($),b(a,N,!0)}}}async function h($){const N=$.entry.id;if(!c(s).has(N)){b(s,new Set([...c(s),N]),!0),b(i,null);try{const W=await Ys($.latest,$.sourceRegistry),oe=Xs($,$.latest);let Q;$.latest.serverBundleUrl&&(Q=await Ti($.latest,$.sourceRegistry));const fe={id:oe.id,type:oe.type,label:$.entry.label,version:oe.version,contractVersion:oe.contractVersion,sourceRegistry:oe.sourceRegistry,requiredShards:$.latest.requires?.map(dn=>dn.id)??[],installedAt:new Date().toISOString()},le=await bi(fe,W,Q);if(!le.ok){b(i,le.error??"Server install failed",!0);return}const je=await Li(W,oe);je.success||console.warn(`[sh3-store] Server install ok but local hot-load failed: ${je.error}`),await l.refreshInstalled()}catch(W){b(i,W instanceof Error?W.message:String(W),!0)}finally{const W=new Set(c(s));W.delete(N),b(s,W,!0)}}}function g(){l.refreshCatalog(),l.refreshInstalled()}var S=My(),P=m(S),T=x(m(P),2),D=m(T);Ee(D);var L=x(D,2),C=m(L);C.value=C.__value="all";var O=x(C);O.value=O.__value="shard";var E=x(O);E.value=E.__value="app",p(L);var q=x(L,2),F=m(q,!0);p(q),p(T),p(P);var z=x(P,2);{var X=$=>{var N=Sy();be(N,21,()=>l.env.registries,an,(W,oe)=>{var Q=ky(),fe=m(Q),le=m(fe,!0);p(fe);var je=x(fe,2);p(Q),V(()=>M(le,c(oe))),H("click",je,()=>f(c(oe))),I(W,Q)}),p(N),I($,N)};B(z,$=>{l.isAdmin&&l.env.registries.length>0&&$(X)})}var ae=x(z,2);{var Z=$=>{var N=xy(),W=m(N);Ee(W);var oe=x(W,2);p(N),V(Q=>oe.disabled=Q,[()=>!c(o).trim()]),tt("submit",N,Q=>{Q.preventDefault(),u()}),Pe(W,()=>c(o),Q=>b(o,Q)),I($,N)};B(ae,$=>{l.isAdmin&&$(Z)})}var de=x(ae,2);{var ne=$=>{var N=Ey(),W=m(N,!0);p(N),V(()=>M(W,l.state.ephemeral.error)),I($,N)};B(de,$=>{l.state.ephemeral.error&&$(ne)})}var ve=x(de,2);{var ge=$=>{var N=Iy(),W=m(N,!0);p(N),V(()=>M(W,c(i))),I($,N)};B(ve,$=>{c(i)&&$(ge)})}var ie=x(ve,2);be(ie,21,()=>c(v),$=>$.entry.id,($,N)=>{const W=K(()=>d(c(N).entry.id)),oe=K(()=>w(c(N))),Q=K(()=>c(s).has(c(N).entry.id)),fe=K(()=>_(c(N).entry.id)),le=K(()=>c(a).has(c(N).entry.id)),je=K(()=>y(c(N),l.state.ephemeral.installed));var dn=Ly(),nr=m(dn),Pt=m(nr),rr=m(Pt);{var Vu=Ce=>{var Ie=Ay();V(()=>Te(Ie,"src",c(N).entry.icon)),I(Ce,Ie)},Uu=Ce=>{var Ie=Ty(),vt=m(Ie,!0);p(Ie),V(()=>M(vt,c(N).entry.type==="shard"?"S":"A")),I(Ce,Ie)};B(rr,Ce=>{c(N).entry.icon?Ce(Vu):Ce(Uu,-1)})}p(Pt);var zi=x(Pt,2),Zs=m(zi),Bu=m(Zs,!0);p(Zs);var qr=x(Zs,2);let ji;var Fu=m(qr,!0);p(qr);var qi=x(qr,2),Hu=m(qi,!0);p(qi),p(zi),p(nr);var Qs=x(nr,2),Wu=m(Qs,!0);p(Qs);var ea=x(Qs,2),Ku=m(ea,!0);p(ea);var Vi=x(ea,2);{var Gu=Ce=>{var Ie=Ry(),vt=m(Ie);p(Ie),V(()=>M(vt,`Contract mismatch: package targets v${c(N).latest.contractVersion??""}, running v${Lo.version}`)),I(Ce,Ie)};B(Vi,Ce=>{c(oe)&&Ce(Gu)})}var Ui=x(Vi,2),Yu=m(Ui);{var Xu=Ce=>{var Ie=Cy(),vt=m(Ie,!0);p(Ie),V(ta=>{Ie.disabled=c(le),M(vt,ta)},[()=>c(le)?"Updating...":`Update ${k(c(N).entry.id)} -> ${c(N).latest.version}`]),H("click",Ie,()=>A(c(N).entry.id)),I(Ce,Ie)},Ju=Ce=>{var Ie=$y();I(Ce,Ie)},Zu=Ce=>{var Ie=Py(),vt=m(Ie),ta=m(vt,!0);p(vt);var Qu=x(vt,2);{var ef=sr=>{var na=Dy(),tf=m(na);p(na),V(nf=>M(tf,`requires: ${nf??""}`),[()=>c(je).join(", ")]),I(sr,na)};B(Qu,sr=>{c(je).length>0&&sr(ef)})}p(Ie),V(sr=>{vt.disabled=c(Q)||c(je).length>0,Te(vt,"title",sr),M(ta,c(Q)?"Installing...":"Install")},[()=>c(je).length>0?`Missing required shards: ${c(je).join(", ")}`:void 0]),H("click",vt,()=>h(c(N))),I(Ce,Ie)};B(Yu,Ce=>{c(W)&&c(fe)?Ce(Xu):c(W)?Ce(Ju,1):Ce(Zu,-1)})}p(Ui),p(dn),V(()=>{M(Bu,c(N).entry.label),ji=De(qr,1,"store-card-badge svelte-1aafzt0",null,ji,{"badge-shard":c(N).entry.type==="shard","badge-app":c(N).entry.type==="app"}),M(Fu,c(N).entry.type),M(Hu,c(N).latest.version),M(Wu,c(N).entry.description),M(Ku,c(N).entry.author.name)}),I($,dn)}),p(ie);var Se=x(ie,2);{var ye=$=>{var N=Ny(),W=m(N);{var oe=fe=>{var le=Oy(),je=x(Ae(le));{var dn=Pt=>{var rr=Xr("Add a registry URL above to get started.");I(Pt,rr)},nr=Pt=>{var rr=Xr("No registries configured.");I(Pt,rr)};B(je,Pt=>{l.isAdmin?Pt(dn):Pt(nr,-1)})}I(fe,le)},Q=fe=>{var le=Xr("No packages match the current filter.");I(fe,le)};B(W,fe=>{l.env.registries.length===0?fe(oe):fe(Q,-1)})}p(N),I($,N)};B(Se,$=>{!l.state.ephemeral.loading&&c(v).length===0&&$(ye)})}p(S),V(()=>{q.disabled=l.state.ephemeral.loading,M(F,l.state.ephemeral.loading?"Loading...":"Refresh")}),Pe(D,()=>c(n),$=>b(n,$)),fs(L,()=>c(r),$=>b(r,$)),H("click",q,g),I(e,S),te()}pe(["click"]);var jy=R('<div class="installed-error svelte-1hqclkp"> </div>'),qy=R('<div class="installed-empty svelte-1hqclkp">No packages installed.</div>'),Vy=R('<button class="installed-update-btn svelte-1hqclkp"> </button>'),Uy=R('<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>'),By=R('<ul class="installed-list svelte-1hqclkp"></ul>'),Fy=R('<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 Hy(e,t){ee(t,!0);const n=ln;let r=j(ce(new Set)),s=j(ce(new Set)),a=j(null);async function i(h){if(!c(r).has(h)){b(r,new Set([...c(r),h]),!0);try{await eu(h),await $u(h),await n.refreshInstalled()}catch(g){console.warn("[sh3-store] Uninstall failed:",g instanceof Error?g.message:g)}finally{const g=new Set(c(r));g.delete(h),b(r,g,!0)}}}async function o(h){if(!c(s).has(h)){b(s,new Set([...c(s),h]),!0),b(a,null);try{await n.updatePackage(h)}catch(g){b(a,g instanceof Error?g.message:String(g),!0)}finally{const g=new Set(c(s));g.delete(h),b(s,g,!0)}}}function l(){n.refreshInstalled()}function u(h){try{return new Date(h).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch{return h}}var f=Fy(),v=m(f),d=x(m(v),2);p(v);var w=x(v,2);{var _=h=>{var g=jy(),S=m(g,!0);p(g),V(()=>M(S,c(a))),I(h,g)};B(w,h=>{c(a)&&h(_)})}var k=x(w,2);{var y=h=>{var g=qy();I(h,g)},A=h=>{var g=By();be(g,21,()=>n.state.ephemeral.installed,S=>S.id,(S,P)=>{const T=K(()=>c(r).has(c(P).id));var D=Uy(),L=m(D),C=m(L),O=m(C,!0);p(C);var E=x(C,2);let q;var F=m(E,!0);p(E);var z=x(E,2),X=m(z,!0);p(z),p(L);var ae=x(L,2),Z=m(ae),de=m(Z);p(Z);var ne=x(Z,2),ve=m(ne);p(ne);var ge=x(ne,2),ie=m(ge);p(ge),p(ae);var Se=x(ae,2),ye=m(Se);{var $=oe=>{const Q=K(()=>n.state.ephemeral.updatable[c(P).id]),fe=K(()=>c(s).has(c(P).id));var le=Vy(),je=m(le,!0);p(le),V(()=>{le.disabled=c(fe)||c(T),M(je,c(fe)?"Updating...":`Update -> ${c(Q).latest.version}`)}),H("click",le,()=>o(c(P).id)),I(oe,le)};B(ye,oe=>{c(P).id in n.state.ephemeral.updatable&&oe($)})}var N=x(ye,2),W=m(N,!0);p(N),p(Se),p(D),V(oe=>{M(O,c(P).id),q=De(E,1,"installed-item-badge svelte-1hqclkp",null,q,{"badge-shard":c(P).type==="shard","badge-app":c(P).type==="app"}),M(F,c(P).type),M(X,c(P).version),M(de,`Contract: v${c(P).contractVersion??""}`),M(ve,`Source: ${c(P).sourceRegistry??""}`),M(ie,`Installed: ${oe??""}`),N.disabled=c(T),M(W,c(T)?"Removing...":"Uninstall")},[()=>u(c(P).installedAt)]),H("click",N,()=>i(c(P).id)),I(S,D)}),p(g),I(h,g)};B(k,h=>{n.state.ephemeral.installed.length===0?h(y):h(A,-1)})}p(f),H("click",d,l),I(e,f),te()}pe(["click"]);function Du(e){return ln.state.ephemeral.catalog.find(t=>t.entry.id===e)}function Oi(e){return ln.state.ephemeral.installed.find(t=>t.id===e)}const Wy={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=Oi(n);if(r){e.scrollback.push({kind:"status",text:`${n} is already installed (v${r.version})`,level:"warn",ts:Date.now()});return}const s=Du(n);if(!s){e.scrollback.push({kind:"status",text:`package "${n}" not found in catalog — try refreshing the store`,level:"error",ts:Date.now()});return}e.scrollback.push({kind:"status",text:`installing ${n} v${s.latest.version}...`,level:"info",ts:Date.now()});try{const a=await Ys(s.latest,s.sourceRegistry),i=Xs(s,s.latest);let o;s.latest.serverBundleUrl&&(o=await Ti(s.latest,s.sourceRegistry));const l={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(v=>v.id)??[]},u=await bi(l,a,o);if(!u.ok){let v=`install failed: ${u.error??"server error"}`;u.code==="missing-shards"&&u.missing&&(v=`install failed: missing required shard(s): ${u.missing.map(w=>w.id).join(", ")}`),e.scrollback.push({kind:"status",text:v,level:"error",ts:Date.now()});return}const f=await Li(a,i);f.success||e.scrollback.push({kind:"status",text:`server ok but local hot-load failed: ${f.error}`,level:"warn",ts:Date.now()}),await ln.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()})}}},Ky={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(!Oi(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 eu(n),await $u(n),await ln.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()})}}},Gy={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=Oi(n),s=Du(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 Yy(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,o=r[a]??0;if(i>o)return!0;if(i<o)return!1}return!1}let ln;const Xy={manifest:{id:"sh3-store",label:"Package Store",version:Zt,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 v={};for(const d of n.ephemeral.installed){const w=n.ephemeral.catalog.find(_=>_.entry.id===d.id);w&&Yy(w.latest.version,d.version)&&(v[d.id]=w)}n.ephemeral.updatable=v}async function s(){n.ephemeral.loading=!0,n.ephemeral.error=null;try{const v=await ku(t.registries);n.ephemeral.catalog=v,r()}catch(v){n.ephemeral.error=v instanceof Error?v.message:String(v)}finally{n.ephemeral.loading=!1}}async function a(){try{const v=await pm();n.ephemeral.installed=v.map(d=>({id:d.id,type:d.type,version:d.version,sourceRegistry:d.sourceRegistry??"",contractVersion:d.contractVersion??"",installedAt:d.installedAt??""})),r()}catch(v){console.warn("[sh3-store] Failed to list installed packages:",v instanceof Error?v.message:v);try{const d=await yy();n.ephemeral.installed=d,r()}catch{}}}async function i(v){const d=[...t.registries];d.includes(v)||(d.push(v),await e.envUpdate({registries:d}))}async function o(v){const d=t.registries.filter(w=>w!==v);await e.envUpdate({registries:d})}async function l(v){const d=n.ephemeral.updatable[v];if(!d)return;const w=n.ephemeral.installed.find(T=>T.id===v);if(!w)return;const _=await Ys(d.latest,d.sourceRegistry);let k;d.latest.serverBundleUrl&&(k=await Ti(d.latest,d.sourceRegistry));const y=Xs(d,d.latest),A=await Ru(v),h={...w},g={id:y.id,type:y.type,label:d.entry.label,version:y.version,contractVersion:y.contractVersion,sourceRegistry:y.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:d.latest.requires?.map(T=>T.id)??[]},S=await bi(g,_,k);if(!S.ok){let T=S.error??"Server update failed";throw S.code==="missing-shards"&&S.missing&&(T=`missing required shard(s): ${S.missing.map(L=>L.id).join(", ")}`),new Error(T)}const P=await Li(_,y);if(!P.success){if(A)try{await Tu(v,A,h)}catch(T){console.warn(`[sh3-store] Rollback failed for "${v}":`,T instanceof Error?T.message:T)}throw new Error(P.error??"Local install failed during update")}await a()}ln={env:t,state:n,get isAdmin(){return e.isAdmin},refreshCatalog:s,refreshInstalled:a,updatePackage:l,addRegistry:i,removeRegistry:o};const u={mount(v,d){const w=qe(zy,{target:v});return{unmount(){Ze(w)}}}},f={mount(v,d){const w=qe(Hy,{target:v});return{unmount(){Ze(w)}}}};e.registerView("sh3-store:browse",u),e.registerView("sh3-store:installed",f),e.registerVerb(Wy),e.registerVerb(Ky),e.registerVerb(Gy),a()},autostart(){ln.refreshCatalog()}},Jy={manifest:{id:"sh3-store-app",label:"Package Store",version:Zt,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 Zy=R('<div class="admin-error svelte-4q792t"> </div>'),Qy=R('<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>'),ew=R('<p class="admin-muted svelte-4q792t">Loading...</p>'),tw=R('<p class="admin-error svelte-4q792t"> </p>'),nw=R('<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>'),rw=R('<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),sw=R('<li class="admin-user-item svelte-4q792t"><!></li>'),aw=R('<ul class="admin-user-list svelte-4q792t"></ul>'),iw=R('<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 ow(e,t){ee(t,!0);let n=j(ce([])),r=j(!0),s=j(null),a=j(!1),i=j(""),o=j(""),l=j(""),u=j("user"),f=j(null),v=j(null),d=j(""),w=j("user"),_=j("");async function k(){b(r,!0),b(s,null);try{const z=await fetch("/api/admin/users",{credentials:"include"});if(!z.ok)throw new Error("Failed to fetch users");b(n,await z.json(),!0)}catch(z){b(s,z instanceof Error?z.message:"Failed to load users",!0)}finally{b(r,!1)}}async function y(){b(f,null);try{const z=await fetch("/api/admin/users",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:c(i),displayName:c(o)||c(i),password:c(l),role:c(u)})});if(!z.ok){const X=await z.json().catch(()=>({}));b(f,X.error||"Failed to create user",!0);return}b(i,""),b(o,""),b(l,""),b(u,"user"),b(a,!1),await k()}catch{b(f,"Network error")}}function A(z){b(v,z.id,!0),b(d,z.displayName,!0),b(w,z.role,!0),b(_,"")}async function h(){if(!c(v))return;const z={displayName:c(d),role:c(w)};c(_).trim()&&(z.password=c(_));try{if(!(await fetch(`/api/admin/users/${c(v)}`,{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(z)})).ok)return;b(v,null),await k()}catch{}}async function g(z){try{await fetch(`/api/admin/users/${z}`,{method:"DELETE",credentials:"include"}),await k()}catch{}}k();var S=iw(),P=m(S),T=x(m(P),2),D=m(T,!0);p(T),p(P);var L=x(P,2);{var C=z=>{var X=Qy(),ae=m(X);Ee(ae);var Z=x(ae,2);Ee(Z);var de=x(Z,2);Ee(de);var ne=x(de,2),ve=m(ne);ve.value=ve.__value="user";var ge=x(ve);ge.value=ge.__value="admin",p(ne);var ie=x(ne,2),Se=x(ie,2);{var ye=$=>{var N=Zy(),W=m(N,!0);p(N),V(()=>M(W,c(f))),I($,N)};B(Se,$=>{c(f)&&$(ye)})}p(X),V($=>ie.disabled=$,[()=>!c(i).trim()||!c(l).trim()]),tt("submit",X,$=>{$.preventDefault(),y()}),Pe(ae,()=>c(i),$=>b(i,$)),Pe(Z,()=>c(o),$=>b(o,$)),Pe(de,()=>c(l),$=>b(l,$)),fs(ne,()=>c(u),$=>b(u,$)),I(z,X)};B(L,z=>{c(a)&&z(C)})}var O=x(L,2);{var E=z=>{var X=ew();I(z,X)},q=z=>{var X=tw(),ae=m(X,!0);p(X),V(()=>M(ae,c(s))),I(z,X)},F=z=>{var X=aw();be(X,21,()=>c(n),ae=>ae.id,(ae,Z)=>{var de=sw(),ne=m(de);{var ve=ie=>{var Se=nw(),ye=m(Se);Ee(ye);var $=x(ye,2);Ee($);var N=x($,2),W=m(N);W.value=W.__value="user";var oe=x(W);oe.value=oe.__value="admin",p(N);var Q=x(N,2),fe=x(m(Q),2);p(Q),p(Se),tt("submit",Se,le=>{le.preventDefault(),h()}),Pe(ye,()=>c(d),le=>b(d,le)),Pe($,()=>c(_),le=>b(_,le)),fs(N,()=>c(w),le=>b(w,le)),H("click",fe,()=>{b(v,null)}),I(ie,Se)},ge=ie=>{var Se=rw(),ye=Ae(Se),$=m(ye),N=m($,!0);p($);var W=x($,2),oe=m(W);p(W),p(ye);var Q=x(ye,2),fe=m(Q),le=x(fe,2);p(Q),V(()=>{M(N,c(Z).displayName),M(oe,`${c(Z).username??""} · ${c(Z).role??""}`)}),H("click",fe,()=>A(c(Z))),H("click",le,()=>g(c(Z).id)),I(ie,Se)};B(ne,ie=>{c(v)===c(Z).id?ie(ve):ie(ge,-1)})}p(de),I(ae,de)}),p(X),I(z,X)};B(O,z=>{c(r)?z(E):c(s)?z(q,1):z(F,-1)})}p(S),V(()=>M(D,c(a)?"Cancel":"New user")),H("click",T,()=>{b(a,!c(a))}),I(e,S),te()}pe(["click"]);var lw=R('<p class="admin-muted svelte-1hsgdb4">Loading...</p>'),cw=R('<div class="admin-error svelte-1hsgdb4"> </div>'),uw=R('<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),fw=R('<div class="admin-auth svelte-1hsgdb4"><h2 class="svelte-1hsgdb4">Auth Settings</h2> <!></div>');function dw(e,t){ee(t,!0);let n=j(null),r=j(!0),s=j(!1),a=j(null);async function i(){b(r,!0);try{const d=await fetch("/api/admin/settings",{credentials:"include"});if(!d.ok)throw new Error("Failed to fetch settings");b(n,await d.json(),!0)}catch(d){b(a,d instanceof Error?d.message:"Failed to load settings",!0)}finally{b(r,!1)}}async function o(){if(c(n)){b(s,!0),b(a,null);try{const d=await fetch("/api/admin/settings",{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(c(n))});if(!d.ok)throw new Error("Failed to save settings");b(n,await d.json(),!0)}catch(d){b(a,d instanceof Error?d.message:"Failed to save",!0)}finally{b(s,!1)}}}i();var l=fw(),u=x(m(l),2);{var f=d=>{var w=lw();I(d,w)},v=d=>{var w=uw(),_=Ae(w),k=m(_),y=m(k);Ee(y),nn(4),p(k);var A=x(k,2),h=m(A);Ee(h),nn(4),p(A);var g=x(A,2),S=m(g);Ee(S),nn(4),p(g);var P=x(g,2),T=x(m(P),2);Ee(T),p(P);var D=x(P,2),L=m(D,!0);p(D),p(_);var C=x(_,2);{var O=E=>{var q=cw(),F=m(q,!0);p(q),V(()=>M(F,c(a))),I(E,q)};B(C,E=>{c(a)&&E(O)})}V(()=>{D.disabled=c(s),M(L,c(s)?"Saving...":"Save")}),Jr(y,()=>c(n).auth.required,E=>c(n).auth.required=E),Jr(h,()=>c(n).auth.guestAllowed,E=>c(n).auth.guestAllowed=E),Jr(S,()=>c(n).auth.selfRegistration,E=>c(n).auth.selfRegistration=E),Pe(T,()=>c(n).auth.sessionTTL,E=>c(n).auth.sessionTTL=E),H("click",D,o),I(d,w)};B(u,d=>{c(r)?d(f):c(n)&&d(v,1)})}p(l),I(e,l),te()}pe(["click"]);var vw=R('<button type="button"> </button>'),hw=R('<div class="admin-error svelte-1gkiloq"> </div>'),pw=R('<div class="admin-error svelte-1gkiloq"> </div>'),gw=R(`<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 mw(e,t){ee(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),o=j(31536e3),l=j(!1),u=j(null);const f=K(()=>c(i)!==c(o)),v=K(()=>d(c(i)));function d($){return $===0?"0 seconds (off — browsers never cache)":$<60?`${$} seconds`:$<3600?`${Math.round($/60)} minutes`:$<86400?`${Math.round($/3600)} hours`:$<31536e3?`${Math.round($/86400)} days`:`${Math.round($/31536e3)} years`}async function w(){try{const $=await fetch("/api/version");if($.ok){const N=await $.json();b(r,N.version,!0)}}catch{}}async function _(){try{const $=await fetch("/api/admin/settings",{credentials:"include"});if($.ok){const W=(await $.json()).packages?.cacheMaxAge??31536e3;b(i,W,!0),b(o,W,!0)}}catch{}}async function k(){b(l,!0),b(u,null);try{const $=await fetch("/api/admin/settings",{method:"PUT",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({packages:{cacheMaxAge:c(i)}})});if($.ok){const N=await $.json();b(o,N.packages?.cacheMaxAge??c(i),!0),b(i,c(o),!0)}else{const N=await $.json().catch(()=>({}));b(u,N.error||"Save failed",!0)}}catch{b(u,"Network error")}finally{b(l,!1)}}async function y(){b(s,!0),b(a,null);try{const $=await fetch("/api/admin/restart",{method:"POST",credentials:"include"});if(!$.ok){const N=await $.json().catch(()=>({}));b(a,N.error||"Restart failed",!0),b(s,!1)}}catch{b(a,"Network error"),b(s,!1)}}w(),_();var A=gw(),h=x(m(A),2),g=m(h),S=x(m(g),2),P=m(S,!0);p(S),p(g),p(h);var T=x(h,2),D=x(m(T),4);Ee(D);var L=x(D,2),C=m(L),O=m(C,!0);p(C);var E=x(C);p(L);var q=x(L,2);be(q,21,()=>n,$=>$.value,($,N)=>{var W=vw();let oe;var Q=m(W,!0);p(W),V(()=>{oe=De(W,1,"admin-snap svelte-1gkiloq",null,oe,{active:c(i)===c(N).value}),W.disabled=c(l),M(Q,c(N).label)}),H("click",W,()=>b(i,c(N).value,!0)),I($,W)}),p(q);var F=x(q,2),z=m(F),X=m(z,!0);p(z);var ae=x(z,2),Z=x(ae,2);{var de=$=>{var N=hw(),W=m(N,!0);p(N),V(()=>M(W,c(u))),I($,N)};B(Z,$=>{c(u)&&$(de)})}p(F),p(T);var ne=x(T,2),ve=x(m(ne),2),ge=m(ve),ie=m(ge,!0);p(ge);var Se=x(ge,2);{var ye=$=>{var N=pw(),W=m(N,!0);p(N),V(()=>M(W,c(a))),I($,N)};B(Se,$=>{c(a)&&$(ye)})}p(ve),p(ne),p(A),V(()=>{M(P,c(r)),D.disabled=c(l),M(O,c(i)),M(E,` — ${c(v)??""}`),z.disabled=!c(f)||c(l),M(X,c(l)?"Saving...":"Save"),ae.disabled=!c(f)||c(l),ge.disabled=c(s),M(ie,c(s)?"Restarting...":"Restart server")}),Pe(D,()=>c(i),$=>b(i,$)),H("click",z,k),H("click",ae,()=>b(i,c(o),!0)),H("click",ge,y),I(e,A),te()}pe(["click"]);var _w=R('<div class="admin-error svelte-1afg5z5"> </div>'),bw=R('<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>'),yw=R('<p class="admin-muted svelte-1afg5z5">Loading...</p>'),ww=R('<p class="admin-error svelte-1afg5z5"> </p>'),kw=R('<p class="admin-muted svelte-1afg5z5">No API keys. Create one to enable external access.</p>'),Sw=R('<button type="button" class="admin-btn-danger svelte-1afg5z5">Confirm</button> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Cancel</button>',1),xw=R('<button type="button" class="admin-btn-danger svelte-1afg5z5">Revoke</button>'),Ew=R('<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> <code class="admin-key-value svelte-1afg5z5"> </code></div> <div class="admin-key-actions svelte-1afg5z5"><button type="button" class="admin-btn-secondary svelte-1afg5z5"> </button> <!></div></li>'),Iw=R('<ul class="admin-key-list svelte-1afg5z5"></ul>'),Aw=R('<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 Tw(e,t){ee(t,!0);let n=j(ce([])),r=j(!0),s=j(null),a=j(!1),i=j(""),o=j(null),l=j(ce(new Set)),u=j(null);async function f(){b(r,!0),b(s,null);try{const E=await fetch("/api/admin/keys",{credentials:"include"});if(!E.ok)throw new Error("Failed to fetch keys");b(n,await E.json(),!0)}catch(E){b(s,E instanceof Error?E.message:"Failed to load keys",!0)}finally{b(r,!1)}}async function v(){b(o,null);try{const E=await fetch("/api/admin/keys",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({label:c(i)})});if(!E.ok){const F=await E.json().catch(()=>({}));b(o,F.error||"Failed to create key",!0);return}const q=await E.json();c(l).add(q.id),b(l,new Set(c(l)),!0),b(i,""),b(a,!1),await f()}catch{b(o,"Network error")}}function d(E){c(l).has(E)?c(l).delete(E):c(l).add(E),b(l,new Set(c(l)),!0)}async function w(E){b(u,null);try{await fetch(`/api/admin/keys/${E}`,{method:"DELETE",credentials:"include"}),c(l).delete(E),b(l,new Set(c(l)),!0),await f()}catch{}}function _(E){return new Date(E).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}function k(E){return E.slice(0,8)+"…"+E.slice(-4)}f();var y=Aw(),A=m(y),h=x(m(A),2),g=m(h,!0);p(h),p(A);var S=x(A,2);{var P=E=>{var q=bw(),F=m(q);Ee(F);var z=x(F,2),X=x(z,2);{var ae=Z=>{var de=_w(),ne=m(de,!0);p(de),V(()=>M(ne,c(o))),I(Z,de)};B(X,Z=>{c(o)&&Z(ae)})}p(q),V(Z=>z.disabled=Z,[()=>!c(i).trim()]),tt("submit",q,Z=>{Z.preventDefault(),v()}),Pe(F,()=>c(i),Z=>b(i,Z)),I(E,q)};B(S,E=>{c(a)&&E(P)})}var T=x(S,2);{var D=E=>{var q=yw();I(E,q)},L=E=>{var q=ww(),F=m(q,!0);p(q),V(()=>M(F,c(s))),I(E,q)},C=E=>{var q=kw();I(E,q)},O=E=>{var q=Iw();be(q,21,()=>c(n),F=>F.id,(F,z)=>{var X=Ew(),ae=m(X),Z=m(ae),de=m(Z,!0);p(Z);var ne=x(Z,2),ve=m(ne);p(ne);var ge=x(ne,2),ie=m(ge,!0);p(ge),p(ae);var Se=x(ae,2),ye=m(Se),$=m(ye,!0);p(ye);var N=x(ye,2);{var W=Q=>{var fe=Sw(),le=Ae(fe),je=x(le,2);H("click",le,()=>w(c(z).id)),H("click",je,()=>{b(u,null)}),I(Q,fe)},oe=Q=>{var fe=xw();H("click",fe,()=>{b(u,c(z).id,!0)}),I(Q,fe)};B(N,Q=>{c(u)===c(z).id?Q(W):Q(oe,-1)})}p(Se),p(X),V((Q,fe,le)=>{M(de,c(z).label),M(ve,`${c(z).id??""} · ${Q??""}`),M(ie,fe),M($,le)},[()=>_(c(z).createdAt),()=>c(l).has(c(z).id)?c(z).key:k(c(z).key),()=>c(l).has(c(z).id)?"Hide":"Reveal"]),H("click",ye,()=>d(c(z).id)),I(F,X)}),p(q),I(E,q)};B(T,E=>{c(r)?E(D):c(s)?E(L,1):c(n).length===0?E(C,2):E(O,-1)})}p(y),V(()=>M(g,c(a)?"Cancel":"New key")),H("click",h,()=>{b(a,!c(a))}),I(e,y),te()}pe(["click"]);const Rw={manifest:{id:"sh3-admin",label:"Admin",version:Zt,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 o=qe(ow,{target:a});return{unmount(){Ze(o)}}}},n={mount(a,i){const o=qe(dw,{target:a});return{unmount(){Ze(o)}}}},r={mount(a,i){const o=qe(mw,{target:a});return{unmount(){Ze(o)}}}},s={mount(a,i){const o=qe(Tw,{target:a});return{unmount(){Ze(o)}}}};e.registerView("sh3-admin:users",t),e.registerView("sh3-admin:auth",n),e.registerView("sh3-admin:system",r),e.registerView("sh3-admin:keys",s)}},Cw={manifest:{id:"sh3-admin-app",label:"Admin",version:Zt,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"}]}},$w={id:"terminal",label:"Terminal",version:Zt,requiredShards:["shell"],layoutVersion:1},Dw={manifest:$w,initialLayout:{type:"slot",slotId:"terminal.main",viewId:"shell:terminal"}},Oo="sh3:migrations:shell-rename:done",No="__shell__:",Pw="__sh3core__:",Mo="sh3:user:__shell__:theme",zo="sh3:user:__sh3core__:theme";function Lw(e,t){if(t.getItem(Oo))return;const n=t.getItem(Mo);n!==null&&t.getItem(zo)===null&&(t.setItem(zo,n),t.removeItem(Mo));for(const r of e.keys()){if(!r.startsWith(No))continue;const s=Pw+r.slice(No.length),a=e.read(r);e.write(s,a),e.delete(r)}t.setItem(Oo,"1")}function Ow(e){yi(e)}function Nw(){const e=Dt.workspace;return{keys:()=>e.list(),read:t=>e.read(t),write:(t,n)=>e.write(t,n),delete:t=>e.delete(t)}}async function Mw(e){typeof globalThis.localStorage<"u"&&Lw(Nw(),globalThis.localStorage);const t=new Set(e?.excludeShards),n=[A_,dy,Xy,Rw];for(const a of n)t.has(a.manifest.id)||yi(a);const r=[Jy,Cw,Dw];for(const a of r)wi(a);await wy();for(const[a,i]of Vt)i.autostart&&await ru(a);const s=Wm();s&&An.has(s)&&await Sr(s)}var zw=R('<button type="button" aria-label="Expand pane"><span class="collapse-icon"> </span></button>'),jw=R('<button type="button" aria-label="Collapse pane"><span class="collapse-icon"> </span></button>'),qw=R('<!> <div class="pane-content svelte-1adl4o1"><!></div>',1),Vw=R('<div role="separator"></div>'),Uw=R("<div><!></div> <!>",1),Bw=R("<div></div>");function Fw(e,t){ee(t,!0);const n=40,r=28;let s;const a=_=>t.pinned?.[_]??"fr",i=_=>t.collapsed?.[_]??!1;function o(_){return i(_)?`0 0 ${r}px`:a(_)==="px"?`0 0 ${Math.max(n,t.sizes[_])}px`:`${Math.max(1e-4,t.sizes[_])} 1 0`}let l=j(null);function u(_,k){if(i(k)||i(k+1))return;_.preventDefault(),_.target.setPointerCapture(_.pointerId);const y=s.getBoundingClientRect(),A=t.direction==="horizontal"?y.width:y.height;let h=0,g=0;for(let S=0;S<t.sizes.length;S++)a(S)==="fr"?h+=t.sizes[S]:g+=Math.max(n,t.sizes[S]);b(l,{handleIndex:k,startClient:t.direction==="horizontal"?_.clientX:_.clientY,startSizes:t.sizes.slice(),containerPx:A,totalFr:h,frAvailPx:Math.max(1,A-g)},!0)}function f(_){if(!c(l))return;const y=(t.direction==="horizontal"?_.clientX:_.clientY)-c(l).startClient,A=c(l).handleIndex,h=A+1,g=a(A),S=a(h),P=c(l).totalFr/c(l).frAvailPx;if(g==="fr"&&S==="fr"){const T=n*P,D=y*P,L=c(l).startSizes[h]-T,C=-(c(l).startSizes[A]-T),O=Math.min(Math.max(D,C),L);t.onResize?.(A,c(l).startSizes[A]+O),t.onResize?.(h,c(l).startSizes[h]-O)}else if(g==="px"&&S==="fr"){const T=c(l).frAvailPx-n,D=n-c(l).startSizes[A];t.onResize?.(A,c(l).startSizes[A]+Math.min(Math.max(y,D),T))}else if(g==="fr"&&S==="px"){const T=c(l).startSizes[h]-n,D=-(c(l).frAvailPx-n);t.onResize?.(h,c(l).startSizes[h]-Math.min(Math.max(y,D),T))}else{const T=c(l).startSizes[h]-n,D=-(c(l).startSizes[A]-n),L=Math.min(Math.max(y,D),T);t.onResize?.(A,c(l).startSizes[A]+L),t.onResize?.(h,c(l).startSizes[h]-L)}}function v(_){c(l)&&(_.target.releasePointerCapture(_.pointerId),b(l,null))}var d=Bw();let w;be(d,21,()=>Array(t.count),an,(_,k,y)=>{var A=Uw(),h=Ae(A);let g;var S=m(h);{var P=O=>{var E=zw();let q;var F=m(E),z=m(F,!0);p(F),p(E),V(()=>{q=De(E,1,"collapse-header svelte-1adl4o1",null,q,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),M(z,t.direction==="horizontal"?"▸":"▾")}),H("click",E,()=>t.onCollapseToggle?.(y,!1)),I(O,E)},T=K(()=>i(y)),D=O=>{var E=qw(),q=Ae(E);{var F=ae=>{var Z=jw();let de;var ne=m(Z),ve=m(ne,!0);p(ne),p(Z),V(()=>{de=De(Z,1,"collapse-header expanded svelte-1adl4o1",null,de,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),M(ve,t.direction==="horizontal"?"◂":"▴")}),H("click",Z,()=>t.onCollapseToggle?.(y,!0)),I(ae,Z)};B(q,ae=>{t.onCollapseToggle&&ae(F)})}var z=x(q,2),X=m(z);$s(X,()=>t.pane,()=>y),p(z),I(O,E)};B(S,O=>{c(T)?O(P):O(D,-1)})}p(h);var L=x(h,2);{var C=O=>{var E=Vw();let q;Te(E,"data-testid",`splitter-handle-${y}`),V(F=>{q=De(E,1,"splitter-handle svelte-1adl4o1",null,q,F),Te(E,"aria-orientation",t.direction==="horizontal"?"vertical":"horizontal")},[()=>({dragging:c(l)?.handleIndex===y,disabled:i(y)||i(y+1)})]),H("pointerdown",E,F=>u(F,y)),H("pointermove",E,f),H("pointerup",E,v),tt("pointercancel",E,v),H("dblclick",E,()=>t.onCollapseToggle?.(y,!i(y))),I(O,E)};B(L,O=>{y<t.count-1&&O(C)})}V((O,E)=>{g=De(h,1,"splitter-pane svelte-1adl4o1",null,g,O),Bt(h,`flex: ${E??""};`)},[()=>({collapsed:i(y)}),()=>o(y)]),I(_,A)}),p(d),kt(d,_=>s=_,()=>s),V(()=>w=De(d,1,"splitter svelte-1adl4o1",null,w,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"})),I(e,d),te()}pe(["click","pointerdown","pointermove","pointerup","dblclick"]);function Hw(e,t,n){if(!n)return null;const r=n.getBoundingClientRect(),s=t.filter(o=>!!o);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 Ww=R('<span class="tab-dirty svelte-1kxcyhf" title="Unsaved changes"></span>'),Kw=R('<span class="tab-icon svelte-1kxcyhf"> </span>'),Gw=R('<span class="tab-close svelte-1kxcyhf" role="button" tabindex="-1" title="Close">&#x2715;</span>'),Yw=R('<button type="button" role="tab"><!> <!> <span class="tab-label svelte-1kxcyhf"> </span> <!></button>'),Xw=R('<div class="drop-indicator svelte-1kxcyhf"></div>'),Jw=R("<div><!></div>"),Zw=R('<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 Qw(e,t){ee(t,!0);function n(y){t.clickGuard?.()||t.onActiveChange?.(y)}function r(y,A){A.stopPropagation(),t.onClose?.(y)}let s=j(void 0);const a=ce([]);let i=j(null);function o(y,A){if(!t.dragController)return;const h=a[y];h&&t.dragController.onPointerDown(y,A,h)}function l(y){if(!t.dragController||!t.dragController.isDragging||!c(s))return;const A=c(s).getBoundingClientRect(),h=a.filter(g=>!!g).map(g=>g.getBoundingClientRect());b(i,t.dragController.onStripHover(A,y.clientX,y.clientY,h),!0)}function u(){t.dragController&&(b(i,null),t.dragController.onStripLeave())}var f=Zw(),v=m(f),d=m(v);be(d,17,()=>t.labels,an,(y,A,h)=>{var g=Yw();let S;var P=m(g);{var T=F=>{var z=Ww();I(F,z)};B(P,F=>{t.dirty?.[h]&&F(T)})}var D=x(P,2);{var L=F=>{var z=Kw(),X=m(z,!0);p(z),V(()=>M(X,t.icons[h])),I(F,z)};B(D,F=>{t.icons?.[h]&&F(L)})}var C=x(D,2),O=m(C,!0);p(C);var E=x(C,2);{var q=F=>{var z=Gw();V(()=>Te(z,"data-testid",t.tabIds?.[h]?`tab-close-${t.tabIds[h]}`:void 0)),H("click",z,X=>r(h,X)),H("keydown",z,X=>{(X.key==="Enter"||X.key===" ")&&r(h,X)}),I(F,z)};B(E,F=>{t.closable?.[h]&&F(q)})}p(g),kt(g,(F,z)=>a[z]=F,F=>a?.[F],()=>[h]),V(()=>{S=De(g,1,"tab svelte-1kxcyhf",null,S,{active:t.activeTab===h}),Te(g,"aria-selected",t.activeTab===h),M(O,c(A))}),H("click",g,()=>n(h)),H("pointerdown",g,F=>o(h,F)),tt("auxclick",g,F=>{F.button===1&&t.closable?.[h]&&r(h,F)}),I(y,g)});var w=x(d,2);{var _=y=>{const A=K(()=>Hw(c(i),a,c(s)));var h=gt(),g=Ae(h);{var S=P=>{var T=Xw();V(()=>Bt(T,`left: ${c(A).left??""}px; height: ${c(A).height??""}px; top: ${c(A).top??""}px;`)),I(P,T)};B(g,P=>{c(A)&&P(S)})}I(y,h)};B(w,y=>{c(i)!==null&&t.dragController?.isDragging&&y(_)})}p(v),kt(v,y=>b(s,y),()=>c(s));var k=x(v,2);be(k,21,()=>t.labels,an,(y,A,h)=>{var g=Jw();let S;var P=m(g);$s(P,()=>t.body,()=>h),p(g),V(()=>S=De(g,1,"tab-body-pane svelte-1kxcyhf",null,S,{active:t.activeTab===h})),I(y,g)}),p(k),p(f),H("pointermove",v,l),tt("pointerleave",v,u),I(e,f),te()}pe(["pointermove","click","pointerdown","keydown"]);var ek=R('no factory for <code class="svelte-1czj0s8"> </code>',1),tk=R("<em>empty slot</em>"),nk=R('<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>'),rk=R('<div class="slot svelte-1czj0s8"><!></div>');function jo(e,t){ee(t,!0);let n=on(t,"label",3,""),r=j(void 0),s=j(0),a=j(0);const i=K(()=>t.node.viewId?!!Vc(t.node.viewId):!1);Ke(()=>{if(!c(r))return;const f=t.node.slotId,v=au(f,t.node.viewId,n()||t.node.viewId||f);c(r).appendChild(v);const d=new ResizeObserver(w=>{for(const _ of w){const k=_.contentRect;b(s,Math.round(k.width),!0),b(a,Math.round(k.height),!0)}});return d.observe(c(r)),()=>{d.disconnect(),iu(f)}});var o=rk(),l=m(o);{var u=f=>{var v=nk(),d=m(v),w=m(d,!0);p(d);var _=x(d,2),k=m(_);{var y=S=>{var P=ek(),T=x(Ae(P)),D=m(T,!0);p(T),V(()=>M(D,t.node.viewId)),I(S,P)},A=S=>{var P=tk();I(S,P)};B(k,S=>{t.node.viewId?S(y):S(A,-1)})}p(_);var h=x(_,2),g=m(h);p(h),p(v),V(()=>{M(w,t.node.slotId),M(g,`${c(s)??""} × ${c(a)??""}`)}),I(f,v)};B(l,f=>{c(i)||f(u)})}p(o),kt(o,f=>b(r,f),()=>c(r)),V(()=>{Te(o,"data-slot-id",t.node.slotId),Te(o,"data-view-id",t.node.viewId??"")}),I(e,o),te()}const se=ce({phase:"idle",source:null,pointerX:0,pointerY:0,target:null});let Pu=0;function sk(){return performance.now()<Pu}const qo=4;let Lu=0,Ou=0;function ak(e,t,n,r,s){if(se.phase!=="idle")return;const a=s.getBoundingClientRect();se.phase="pending",se.source={slotId:e,entry:t,sourceRoot:n,startRect:a,offsetX:r.clientX-a.left,offsetY:r.clientY-a.top},se.pointerX=r.clientX,se.pointerY=r.clientY,se.target=null,Lu=r.clientX,Ou=r.clientY,ik()}function ik(){window.addEventListener("pointermove",Nu,!0),window.addEventListener("pointerup",Mu,!0),window.addEventListener("pointercancel",zu,!0),document.body.style.userSelect="none",document.body.dataset.dragging=""}function ok(){window.removeEventListener("pointermove",Nu,!0),window.removeEventListener("pointerup",Mu,!0),window.removeEventListener("pointercancel",zu,!0),document.body.style.userSelect="",delete document.body.dataset.dragging}function Nu(e){if(se.pointerX=e.clientX,se.pointerY=e.clientY,se.phase==="pending"){const t=e.clientX-Lu,n=e.clientY-Ou;t*t+n*n>=qo*qo&&(se.phase="dragging")}}function Mu(e){se.phase==="dragging"&&(lk(),Pu=performance.now()+50),ju()}function zu(e){ju()}function Vo(e){const t=Wn.tree;if(e.kind==="docked")return t.docked;const n=t.floats.find(r=>r.id===e.floatId);return n?n.content:null}function Uo(e){if(e.kind!=="float")return;const t=Wn.tree,n=t.floats.findIndex(r=>r.id===e.floatId);n<0||zc(t.floats[n].content)&&t.floats.splice(n,1)}function lk(){const{source:e,target:t}=se;if(!e||!t)return;const n=Vo(e.sourceRoot),r=Vo(t.root);if(!n||!r)return;if(t.kind==="strip"){const a=t.tabsNode.tabs.findIndex(i=>i.slotId===e.slotId);if(a>=0){Gm(t.tabsNode,a,t.insertIndex),jn(n),r!==n&&jn(r),Uo(e.sourceRoot);return}}const s=Ws(n,e.slotId);s&&(t.kind==="strip"?Km(t.tabsNode,s,t.insertIndex):pu(r,t.path,s,t.side),jn(n),r!==n&&jn(r),Uo(e.sourceRoot))}function ju(){se.phase="idle",se.source=null,se.target=null,ok()}function Ua(e){se.phase==="dragging"&&(se.target=e)}function gr(e){se.phase==="dragging"&&se.target&&(e&&!e(se.target)||(se.target=null))}var ck=R("<div></div>"),uk=R('<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),fk=R("<div><!> <!></div>");function Bo(e,t){ee(t,!0);let n=j(void 0),r=j(null);const s=K(()=>se.phase==="dragging");function a(_,k,y){const A=y.left+y.width/2,h=y.top+y.height/2,g=_-A,S=k-h,P=g/y.width,T=S/y.height;return Math.abs(P)>Math.abs(T)?P<0?"left":"right":T<0?"top":"bottom"}function i(_){if(!c(n))return;const k=c(n).getBoundingClientRect();if(_.clientX<k.left||_.clientX>k.right||_.clientY<k.top||_.clientY>k.bottom){c(r)!==null&&(b(r,null),gr(A=>A.kind==="split"&&A.path.join("/")===t.path.join("/")));return}const y=a(_.clientX,_.clientY,k);if(y!==c(r)){b(r,y,!0);const A={kind:"split",root:t.rootRef,path:[...t.path],side:y};Ua(A)}}function o(){c(r)!==null&&(b(r,null),gr(_=>_.kind==="split"&&_.path.join("/")===t.path.join("/")))}var l=fk();let u;var f=m(l);{var v=_=>{var k=ck();V(()=>De(k,1,`quad-highlight quad-${c(r)??""}`,"svelte-re71zu")),I(_,k)};B(f,_=>{c(r)&&_(v)})}var d=x(f,2);{var w=_=>{var k=uk();nn(6),I(_,k)};B(d,_=>{c(s)&&_(w)})}p(l),kt(l,_=>b(n,_),()=>c(n)),V(()=>u=De(l,1,"slot-drop-zone svelte-re71zu",null,u,{active:c(s)})),H("pointermove",l,i),tt("pointerleave",l,o),I(e,l),te()}pe(["pointermove"]);var dk=R('<div class="tab-slot-wrapper svelte-1gw9g38"><!> <!></div>'),vk=R('<div class="empty-tabs-custom svelte-1gw9g38"></div>'),hk=R('<div class="empty-tabs-default svelte-1gw9g38"><div class="empty-tabs-drop svelte-1gw9g38"></div></div>'),pk=R('<div class="empty-tabs-placeholder svelte-1gw9g38"><!></div>'),gk=R('<div class="leaf-slot-wrapper svelte-1gw9g38"><!> <!></div>');function Ni(e,t){ee(t,!0);let n=on(t,"path",19,()=>[]),r=on(t,"rootRef",19,()=>({kind:"docked"}));const s=K(()=>{let h;return r().kind==="docked"?h=Wn.root:h=Wn.tree.floats.find(S=>S.id===r().floatId)?.content??null,h?bs(h,n()):null});function a(h){return{get isDragging(){return se.phase==="dragging"},onPointerDown(g,S,P){const T=h.tabs[g];T&&ak(T.slotId,T,r(),S,P)},onStripHover(g,S,P,T){if(P<g.top||P>g.bottom)return gr(C=>C.kind==="strip"&&C.tabsNode===h),null;let D=T.length;for(let C=0;C<T.length;C++){const O=T[C],E=O.left+O.width/2;if(S<E){D=C;break}}const L=se.source;if(L){const C=h.tabs.findIndex(O=>O.slotId===L.slotId);C>=0&&C<D&&(D-=1)}return Ua({kind:"strip",root:r(),tabsNode:h,insertIndex:D}),D},onStripLeave(){gr(g=>g.kind==="strip"&&g.tabsNode===h)}}}function i(h){return h.type==="split"?h:null}function o(h){return h.type==="tabs"?h:null}function l(h){return h.type==="slot"?h:null}function u(h){return h.map(g=>Lm(g.slotId)||void 0)}function f(h){return h.map(g=>Pm(g.slotId)||void 0)}function v(h,g){const S=h[g];S&&xi(S.slotId)}function d(h,g){g(h)}function w(h,g){se.phase==="dragging"&&Ua({kind:"strip",root:r(),tabsNode:g,insertIndex:0})}function _(){gr(h=>h.kind==="strip"&&h.insertIndex===0)}var k=gt(),y=Ae(k);{var A=h=>{var g=gt(),S=Ae(g);{var P=L=>{const C=(E,q=it)=>{{let F=K(()=>[...n(),q()]);Ni(E,{get rootRef(){return r()},get path(){return c(F)}})}},O=K(()=>i(c(s)));Fw(L,{get direction(){return c(O).direction},get sizes(){return c(O).sizes},get pinned(){return c(O).pinned},get collapsed(){return c(O).collapsed},get count(){return c(O).children.length},get pane(){return C},onResize:(E,q)=>c(O).sizes[E]=q,onCollapseToggle:(E,q)=>{c(O).collapsed||(c(O).collapsed=c(O).children.map(()=>!1)),c(O).collapsed[E]=q}})},T=L=>{const C=K(()=>o(c(s)));var O=gt(),E=Ae(O);{var q=z=>{const X=(Z,de=it)=>{const ne=K(()=>c(C)?.tabs[de()]);var ve=gt(),ge=Ae(ve);{var ie=Se=>{var ye=dk(),$=m(ye);{let W=K(()=>({type:"slot",slotId:c(ne).slotId,viewId:c(ne).viewId}));jo($,{get node(){return c(W)},get label(){return c(ne).label}})}var N=x($,2);Bo(N,{get rootRef(){return r()},get path(){return n()}}),p(ye),I(Se,ye)};B(ge,Se=>{c(ne)&&Se(ie)})}I(Z,ve)},ae=K(()=>a(c(C)));{let Z=K(()=>c(C).tabs.map(ie=>ie.label)),de=K(()=>c(C).tabs.map(ie=>ie.icon)),ne=K(()=>u(c(C).tabs)),ve=K(()=>f(c(C).tabs)),ge=K(()=>c(C).tabs.map(ie=>ie.slotId));Qw(z,{get labels(){return c(Z)},get icons(){return c(de)},get activeTab(){return c(C).activeTab},onActiveChange:ie=>c(C).activeTab=ie,get body(){return X},get dragController(){return c(ae)},get clickGuard(){return sk},get closable(){return c(ne)},get dirty(){return c(ve)},onClose:ie=>v(c(C).tabs,ie),get tabIds(){return c(ge)}})}},F=z=>{var X=pk(),ae=m(X);{var Z=ne=>{var ve=vk();kc(ve,(ge,ie)=>d?.(ge,ie),()=>c(C).emptyRenderer),I(ne,ve)},de=ne=>{var ve=hk(),ge=m(ve);p(ve),H("pointermove",ge,ie=>w(ie,c(C))),tt("pointerleave",ge,_),I(ne,ve)};B(ae,ne=>{c(C).emptyRenderer?ne(Z):ne(de,-1)})}p(X),I(z,X)};B(E,z=>{c(C)&&c(C).tabs.length>0?z(q):c(C)?.persistent&&z(F,1)})}I(L,O)},D=L=>{const C=K(()=>l(c(s)));var O=gk(),E=m(O);jo(E,{get node(){return c(C)}});var q=x(E,2);Bo(q,{get rootRef(){return r()},get path(){return n()}}),p(O),I(L,O)};B(S,L=>{c(s).type==="split"?L(P):c(s).type==="tabs"?L(T,1):L(D,-1)})}I(h,g)};B(y,h=>{c(s)&&h(A)})}I(e,k),te()}pe(["pointermove"]);var mk=R('<span class="drag-preview-icon svelte-133fiip"> </span>'),_k=R('<div class="drag-preview svelte-133fiip"><!> <span class="drag-preview-label svelte-133fiip"> </span></div>');function bk(e,t){ee(t,!0);const n=K(()=>se.phase==="dragging"&&!!se.source),r=K(()=>se.source?se.pointerX-se.source.offsetX:0),s=K(()=>se.source?se.pointerY-se.source.offsetY:0),a=K(()=>se.source?.startRect.width??0),i=K(()=>se.source?.startRect.height??0),o=K(()=>se.source?.entry.label??""),l=K(()=>se.source?.entry.icon);var u=gt(),f=Ae(u);{var v=d=>{var w=_k(),_=m(w);{var k=h=>{var g=mk(),S=m(g,!0);p(g),V(()=>M(S,c(l))),I(h,g)};B(_,h=>{c(l)&&h(k)})}var y=x(_,2),A=m(y,!0);p(y),p(w),V(()=>{Bt(w,`left: ${c(r)??""}px; top: ${c(s)??""}px; width: ${c(a)??""}px; height: ${c(i)??""}px;`),M(A,c(o))}),I(d,w)};B(f,d=>{c(n)&&d(v)})}I(e,u),te()}var yk=R('<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 wk(e,t){ee(t,!0);const n=on(t,"entry",7);let r=j(!1),s={x:0,y:0};function a(h){if(h.button!==0||h.target.closest(".sh3-float-close"))return;h.currentTarget.setPointerCapture(h.pointerId),b(r,!0),s={x:h.clientX-n().position.x,y:h.clientY-n().position.y},Tt.focus(n().id)}function i(h){c(r)&&(n().position.x=h.clientX-s.x,n().position.y=h.clientY-s.y)}function o(h){if(!c(r))return;b(r,!1);const g=h.currentTarget;g.hasPointerCapture(h.pointerId)&&g.releasePointerCapture(h.pointerId)}function l(){Tt.focus(n().id)}function u(h){h.stopPropagation(),Tt.close(n().id)}var f=yk();let v;var d=m(f),w=m(d),_=m(w,!0);p(w);var k=x(w,2);p(d);var y=x(d,2),A=m(y);{let h=K(()=>({kind:"float",floatId:n().id}));Ni(A,{get rootRef(){return c(h)},path:[]})}p(y),p(f),V(()=>{Te(f,"aria-label",n().title??"Float panel"),v=Bt(f,"",v,{left:`${n().position.x??""}px`,top:`${n().position.y??""}px`,width:`${n().size.w??""}px`,height:`${n().size.h??""}px`}),M(_,n().title??n().content.type)}),H("click",f,l),H("pointerdown",d,a),H("pointermove",d,i),H("pointerup",d,o),tt("pointercancel",d,o),H("click",k,u),I(e,f),te()}pe(["click","pointerdown","pointermove","pointerup"]);var kk=R('<div class="sh3-float-layer svelte-1rzcset"></div>');function Sk(e,t){ee(t,!0);const n=K(()=>Wn.floats);var r=kk();be(r,21,()=>c(n),s=>s.id,(s,a)=>{wk(s,{get entry(){return c(a)}})}),p(r),I(e,r),te()}const Fo="/assets/icons-CnAqUqbR.svg";var xk=R('<div class="guest-signin-error svelte-pymkh"> </div>'),Ek=R('<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>'),Ik=R('<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),Ak=R('<div class="guest-banner-slot"><!></div>');function Tk(e,t){ee(t,!0);let n=j(!1),r=j(""),s=j(""),a=j(null),i=j(!1);async function o(){if(!c(r).trim()||!c(s).trim()||c(i))return;b(i,!0),b(a,null);const d=await Xc(c(r).trim(),c(s).trim());b(i,!1),d.ok?b(n,!1):b(a,d.error,!0)}var l=Ak(),u=m(l);{var f=d=>{var w=Ik(),_=Ae(w),k=x(m(_),2);p(_);var y=x(_,2);{var A=h=>{var g=Ek(),S=m(g),P=m(S),T=m(P);Ee(T);var D=x(T,2);Ee(D);var L=x(D,2),C=m(L),O=m(C,!0);p(C);var E=x(C,2);p(L),p(P);var q=x(P,2);{var F=z=>{var X=xk(),ae=m(X,!0);p(X),V(()=>M(ae,c(a))),I(z,X)};B(q,z=>{c(a)&&z(F)})}p(S),p(g),V(z=>{T.disabled=c(i),D.disabled=c(i),C.disabled=z,M(O,c(i)?"Signing in...":"Sign in")},[()=>c(i)||!c(r).trim()||!c(s).trim()]),tt("submit",P,z=>{z.preventDefault(),o()}),Pe(T,()=>c(r),z=>b(r,z)),Pe(D,()=>c(s),z=>b(s,z)),H("click",E,()=>{b(n,!1),b(a,null)}),I(h,g)};B(y,h=>{c(n)&&h(A)})}H("click",k,()=>{b(n,!0)}),I(d,w)},v=K(()=>Zc());B(u,d=>{c(v)&&d(f)})}p(l),I(e,l),te()}pe(["click"]);var Rk=R('<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>'),Ck=R('<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>'),$k=R('<div class="shell-overlay-root svelte-187fra4"><!></div>'),Dk=R('<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 Pk(e,t){ee(t,!0);const n=K(Jc),r=K(js),s=K(Jt),a=K(()=>fu()==="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"}],o=ce({});Ke(()=>{for(const{name:g}of i){const S=o[g];S&&Wp(g,S)}return()=>{for(const{name:g}of i)Kp(g)}}),Ke(()=>{function g(S){if(S.key!=="²"||!c(s))return;const P=S.target;if(P){const T=P.tagName;if(T==="INPUT"||T==="TEXTAREA"||P.isContentEditable)return}S.preventDefault(),Ks("shell:terminal")||Tt.open("shell:terminal",{title:"Shell"})}return window.addEventListener("keydown",g),()=>window.removeEventListener("keydown",g)}),Ke(()=>{const g=Wn.tree;return gg(g.floats,()=>({w:window.innerWidth,h:window.innerHeight})),()=>mg()});var l=Dk(),u=m(l),f=m(u),v=m(f),d=m(v);p(v),p(f);var w=x(f,4);{var _=g=>{var S=Ck(),P=m(S),T=m(P,!0);p(P);var D=x(P,2),L=m(D,!0);p(D);var C=x(D,2);{var O=q=>{var F=Rk(),z=m(F),X=m(z);p(z),p(F),V(()=>Te(X,"href",`${Fo}#log-out`)),H("click",F,()=>um()),I(q,F)},E=K(()=>!dm());B(C,q=>{c(E)&&q(O)})}p(S),V(()=>{M(T,c(r).displayName),M(L,c(s)?"admin":"user")}),I(g,S)};B(w,g=>{c(n)&&c(r)&&g(_)})}p(u);var k=x(u,2);Tk(k,{});var y=x(k,2),A=m(y);Ni(A,{}),p(y);var h=x(y,4);be(h,21,()=>i,({layer:g,name:S})=>g,(g,S)=>{let P=()=>c(S).layer,T=()=>c(S).name;var D=$k(),L=m(D);{var C=E=>{Sk(E,{})},O=E=>{bk(E,{})};B(L,E=>{T()==="floating"?E(C):T()==="drag-preview"&&E(O,1)})}p(D),kt(D,(E,q)=>o[q]=E,E=>o?.[E],()=>[T()]),V(()=>{Te(D,"data-shell-overlay",T()),Te(D,"data-shell-layer",P()),Bt(D,`z-index: var(--shell-z-layer-${P()??""});`)}),I(g,D)}),p(h),p(l),V(()=>{f.disabled=c(a),Te(d,"href",`${Fo}#house`)}),H("click",f,()=>hu()),I(e,l),te()}pe(["click"]);const Lk="modulepreload",Ok=function(e){return"/"+e},Ho={},Nk=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),o=i?.nonce||i?.getAttribute("nonce");s=Promise.allSettled(n.map(l=>{if(l=Ok(l),l in Ho)return;Ho[l]=!0;const u=l.endsWith(".css"),f=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${f}`))return;const v=document.createElement("link");if(v.rel=u?"stylesheet":Lk,u||(v.as="script"),v.crossOrigin="",v.href=l,o&&v.setAttribute("nonce",o),document.head.appendChild(v),u)return new Promise((d,w)=>{v.addEventListener("load",d),v.addEventListener("error",()=>w(new Error(`Unable to preload CSS for ${l}`)))})}))}function a(i){const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=i,window.dispatchEvent(o),!o.defaultPrevented)throw i}return s.then(i=>{for(const o of i||[])o.status==="rejected"&&a(o.reason);return t().catch(a)})};async function Mk(){try{const{TauriStoreBackend:e}=await Nk(async()=>{const{TauriStoreBackend:r}=await import("./tauri-backend-B3LR3-lo.js");return{TauriStoreBackend:r}},[]),t=new e("workspace"),n=new e("user");return await Promise.all([t.init(),n.init()]),{backends:{workspace:t,user:n},localOwner:!0}}catch{return{backends:null,localOwner:Jo}}}var zk=R('<button type="button" class="signin-link svelte-lh4k15">Create an account</button>'),jk=R('<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),qk=R('<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),Vk=R('<div class="signin-error svelte-lh4k15"> </div>'),Uk=R('<div class="signin-wall svelte-lh4k15"><div class="signin-card svelte-lh4k15"><h1 class="signin-brand svelte-lh4k15">SH3</h1> <!> <!></div></div>');function Bk(e,t){ee(t,!0);let n=j("login"),r=j(""),s=j(""),a=j(""),i=j(null),o=j(!1);async function l(){if(!c(r).trim()||!c(s).trim()||c(o))return;b(o,!0),b(i,null);const h=await Xc(c(r).trim(),c(s).trim());b(o,!1),h.ok?t.onSuccess():b(i,h.error,!0)}async function u(){if(!c(r).trim()||!c(s).trim()||c(o))return;b(o,!0),b(i,null);const h=await cm(c(r).trim(),c(s).trim(),c(a).trim()||void 0);b(o,!1),h.ok?t.onSuccess():b(i,h.error,!0)}function f(h){b(n,h,!0),b(i,null)}var v=Uk(),d=m(v),w=x(m(d),2);{var _=h=>{var g=jk(),S=Ae(g),P=m(S);Ee(P);var T=x(P,2);Ee(T);var D=x(T,2),L=m(D,!0);p(D),p(S);var C=x(S,2);{var O=E=>{var q=zk();H("click",q,()=>f("register")),I(E,q)};B(C,E=>{t.selfRegistration&&E(O)})}V(E=>{P.disabled=c(o),T.disabled=c(o),D.disabled=E,M(L,c(o)?"Signing in...":"Sign in")},[()=>c(o)||!c(r).trim()||!c(s).trim()]),tt("submit",S,E=>{E.preventDefault(),l()}),Pe(P,()=>c(r),E=>b(r,E)),Pe(T,()=>c(s),E=>b(s,E)),I(h,g)},k=h=>{var g=qk(),S=Ae(g),P=m(S);Ee(P);var T=x(P,2);Ee(T);var D=x(T,2);Ee(D);var L=x(D,2),C=m(L,!0);p(L),p(S);var O=x(S,2);V(E=>{P.disabled=c(o),T.disabled=c(o),D.disabled=c(o),L.disabled=E,M(C,c(o)?"Creating...":"Create account")},[()=>c(o)||!c(r).trim()||!c(s).trim()]),tt("submit",S,E=>{E.preventDefault(),u()}),Pe(P,()=>c(r),E=>b(r,E)),Pe(T,()=>c(a),E=>b(a,E)),Pe(D,()=>c(s),E=>b(s,E)),H("click",O,()=>f("login")),I(h,g)};B(w,h=>{c(n)==="login"?h(_):h(k,-1)})}var y=x(w,2);{var A=h=>{var g=Vk(),S=m(g,!0);p(g),V(()=>M(S,c(i))),I(h,g)};B(y,h=>{c(i)&&h(A)})}p(d),p(v),I(e,v),te()}pe(["click"]);async function Fk(e){const t=e?.serverUrl??"",n=await Mk();n.backends&&(go("workspace",n.backends.workspace),go("user",n.backends.user)),n.localOwner&&fm(),Qc(t),d_();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)da("local");else if(s){Eo(t,s),da(s.tenantId);const{auth:i,session:o}=s;if(!o&&i.required&&!i.guestAllowed){await Hk(r,s);const l=await fetch(`${t}/api/boot`,{credentials:"include"});l.ok&&(s=await l.json(),Eo(t,s),da(s.tenantId))}}if(e?.discoveredPackages?.length)for(const i of e.discoveredPackages)try{const o=await fetch(i.bundleUrl);if(!o.ok){console.warn(`[sh3] Failed to fetch discovered package "${i.id}": HTTP ${o.status}`);continue}const l=await o.arrayBuffer(),u=await Di(l);Pi(u,{version:i.version,sourceRegistry:i.sourceRegistry??"",contractVersion:i.contractVersion??""}),console.log(`[sh3] Loaded discovered package: ${i.id}`)}catch(o){console.warn(`[sh3] Failed to load discovered package "${i.id}":`,o)}if(e?.shards)for(const i of e.shards)Ow(i);if(e?.apps)for(const i of e.apps)wi(i);const a={};e?.excludeShards&&(a.excludeShards=e.excludeShards),await Mw(a),qe(Pk,{target:r})}function Hk(e,t){return new Promise(n=>{const r=qe(Bk,{target:e,props:{selfRegistration:t.auth.selfRegistration,onSuccess:()=>{Ze(r),n()}}})})}const Mi=window.location.origin;Qc(Mi);Kg(new qg(Mi));let qu=[];try{const e=await fetch("/api/packages");e.ok&&(qu=await e.json())}catch{}await Fk({discoveredPackages:qu,serverUrl:Mi});
17
+ //# sourceMappingURL=index-C3rCTpjL.js.map