sh3-server 0.8.2 → 0.9.0

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.
Files changed (42) hide show
  1. package/app/assets/index-DKuJNK2S.js +17 -0
  2. package/app/assets/index-DKuJNK2S.js.map +1 -0
  3. package/app/assets/index-DkC3EpjJ.css +1 -0
  4. package/app/index.html +2 -2
  5. package/dist/caller.d.ts +2 -1
  6. package/dist/caller.js +2 -1
  7. package/dist/doc-store/conflicts.d.ts +19 -0
  8. package/dist/doc-store/conflicts.js +79 -0
  9. package/dist/doc-store/index.d.ts +11 -0
  10. package/dist/doc-store/index.js +22 -0
  11. package/dist/doc-store/meta.d.ts +11 -0
  12. package/dist/doc-store/meta.js +37 -0
  13. package/dist/doc-store/policy.d.ts +15 -0
  14. package/dist/doc-store/policy.js +85 -0
  15. package/dist/doc-store/reserved.d.ts +7 -0
  16. package/dist/doc-store/reserved.js +26 -0
  17. package/dist/doc-store/roles.d.ts +12 -0
  18. package/dist/doc-store/roles.js +15 -0
  19. package/dist/doc-store/store.d.ts +71 -0
  20. package/dist/doc-store/store.js +336 -0
  21. package/dist/doc-store/tick.d.ts +13 -0
  22. package/dist/doc-store/tick.js +52 -0
  23. package/dist/fs-backend.d.ts +1 -1
  24. package/dist/index.d.ts +1 -0
  25. package/dist/index.js +30 -11
  26. package/dist/keys.d.ts +4 -2
  27. package/dist/keys.js +18 -3
  28. package/dist/migrations/sync-grants.d.ts +7 -0
  29. package/dist/migrations/sync-grants.js +27 -0
  30. package/dist/packages.d.ts +3 -4
  31. package/dist/packages.js +5 -5
  32. package/dist/routes/docs.d.ts +11 -7
  33. package/dist/routes/docs.js +88 -122
  34. package/dist/routes/keys.js +4 -2
  35. package/dist/scope.d.ts +2 -0
  36. package/dist/scope.js +20 -0
  37. package/dist/shard-router.d.ts +8 -9
  38. package/dist/shard-router.js +114 -62
  39. package/package.json +1 -1
  40. package/app/assets/index-Cb-zoqb1.js +0 -17
  41. package/app/assets/index-Cb-zoqb1.js.map +0 -1
  42. package/app/assets/index-DPcN5Lor.css +0 -1
@@ -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 Vu=1,Fu=2,Do=4,Uu=8,Bu=16,Hu=1,Po=4,Ku=8,Wu=16,Yu=1,Gu=2,Xu=4,Ta=1,Lo=2,Ju=4,Zu=8,cs="[",us="[!",Ci="[?",fs="]",hn={},be=Symbol(),st=Symbol("filename"),An=Symbol("hmr"),Oo="http://www.w3.org/1999/xhtml",br="http://www.w3.org/2000/svg",Ia="http://www.w3.org/1998/Math/MathML",No="@attach",Mo=!1;var Hn=Array.isArray,Qu=Array.prototype.indexOf,Nn=Array.prototype.includes,ds=Array.from,Wr=Object.keys,pn=Object.defineProperty,xt=Object.getOwnPropertyDescriptor,jo=Object.getOwnPropertyDescriptors,zo=Object.prototype,ef=Array.prototype,vs=Object.getPrototypeOf,Di=Object.isExtensible,tf=Object.prototype.hasOwnProperty;function Tn(e){return typeof e=="function"}const at=()=>{};function Pi(e){return typeof e?.then=="function"}function nf(e){return e()}function ta(e){for(var t=0;t<e.length;t++)e[t]()}function qo(){var e,t,n=new Promise((r,s)=>{e=r,t=s});return{promise:n,resolve:e,reject:t}}function rf(e,t,n=!1){return e===void 0?n?t():t:e}function Vo(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 sf(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 je=2,mn=4,wr=8,$a=1<<24,At=16,It=32,Wt=64,na=128,gt=512,Ce=1024,Me=2048,$t=4096,Ke=8192,Ze=16384,Gt=32768,ra=1<<25,Rt=65536,fr=1<<17,Fo=1<<18,sn=1<<19,Uo=1<<20,Nt=1<<25,gn=65536,sa=1<<21,Mn=1<<22,en=1<<23,Ve=Symbol("$state"),hs=Symbol("legacy props"),af=Symbol(""),of=Symbol("proxy path"),lf=Symbol("hmr anchor"),Lt=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},En=!!globalThis.document?.contentType&&globalThis.document.contentType.includes("xml"),Bo=1,kr=3,Xt=8,Ho=11;function Ko(e){throw new Error("https://svelte.dev/e/experimental_async_required")}function cf(){throw new Error("https://svelte.dev/e/invalid_default_snippet")}function Li(){throw new Error("https://svelte.dev/e/invalid_snippet_arguments")}function Kn(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function uf(){throw new Error("https://svelte.dev/e/missing_context")}function ff(){throw new Error("https://svelte.dev/e/snippet_without_render_tag")}function df(e){throw new Error("https://svelte.dev/e/store_invalid_shape")}function vf(){throw new Error("https://svelte.dev/e/svelte_element_invalid_this_value")}function hf(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function pf(e,t){throw new Error("https://svelte.dev/e/component_api_changed")}function mf(e,t){throw new Error("https://svelte.dev/e/component_api_invalid_new")}function gf(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function _f(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function yf(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function bf(e){throw new Error("https://svelte.dev/e/effect_orphan")}function wf(){throw new Error("https://svelte.dev/e/effect_pending_outside_reaction")}function kf(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Sf(){throw new Error("https://svelte.dev/e/fork_discarded")}function Ef(){throw new Error("https://svelte.dev/e/fork_timing")}function xf(){throw new Error("https://svelte.dev/e/get_abort_signal_outside_reaction")}function Af(){throw new Error("https://svelte.dev/e/hydration_failed")}function Wo(e){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}function Tf(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function If(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function $f(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Rf(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Cf(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}function Df(e,t){console.warn("https://svelte.dev/e/assignment_value_stale")}function Pf(e,t){console.warn("https://svelte.dev/e/binding_property_non_reactive")}function Lf(e){console.warn("https://svelte.dev/e/console_log_state")}function Of(){console.warn("https://svelte.dev/e/derived_inert")}function Nf(e,t){console.warn("https://svelte.dev/e/event_handler_invalid")}function Mf(e){console.warn("https://svelte.dev/e/hydratable_missing_but_expected")}function Sr(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function jf(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_binding")}function zf(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_mutation")}function qf(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function Yo(e){console.warn("https://svelte.dev/e/state_proxy_equality_mismatch")}function Vf(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let U=!1;function me(e){U=e}let X;function de(e){if(e===null)throw Sr(),hn;return X=e}function Ye(){return de(ct(X))}function h(e){if(U){if(ct(X)!==null)throw Sr(),hn;X=e}}function Ff(e){U&&(X=e.content)}function Kt(e=1){if(U){for(var t=e,n=X;t--;)n=ct(n);X=n}}function _n(e=!0){for(var t=0,n=X;;){if(n.nodeType===Xt){var r=n.data;if(r===fs){if(t===0)return n;t-=1}else(r===cs||r===us||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var s=ct(n);e&&n.remove(),n=s}}function Ra(e){if(!e||e.nodeType!==Xt)throw Sr(),hn;return e.data}function Go(e){return e===this.v}function Xo(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function Jo(e){return!Xo(e,this.v)}let Uf=!1;function Bf(e){console.warn("https://svelte.dev/e/dynamic_void_element_content")}const Hf=[];function yn(e,t=!1,n=!1){return Mr(e,new Map,"",Hf,null,n)}function Mr(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(Hn(e)){var l=Array(e.length);t.set(e,l),s!==null&&t.set(s,l);for(var c=0;c<e.length;c+=1){var u=e[c];c in e&&(l[c]=Mr(u,t,n,r,null,a))}return l}if(vs(e)===zo){l={},t.set(e,l),s!==null&&t.set(s,l);for(var f of Object.keys(e))l[f]=Mr(e[f],t,n,r,null,a);return l}if(e instanceof Date)return structuredClone(e);if(typeof e.toJSON=="function"&&!a)return Mr(e.toJSON(),t,n,r,e)}if(e instanceof EventTarget)return e;try{return structuredClone(e)}catch{return e}}let xn=null;function Zo(e,t){const n=e.v;if(n===be)return;const r=Kf(e),s=se,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?yn(n,!0):n),r==="$derived"){const c=new Set(e.deps);for(const u of c)Zo(u)}if(e.created&&console.log(e.created),a&&e.updated)for(const c of e.updated.values())c.error&&console.log(c.error);if(t)for(var l of t.traces)console.log(l);console.groupEnd()}function Kf(e){return e.f&(je|Mn)?"$derived":e.label?.startsWith("$")?"store":"$state"}function Wf(e,t){var n=xn;try{xn={entries:new Map,reaction:se};var r=performance.now(),s=t(),a=(performance.now()-r).toFixed(2),i=ge(e);if(!Ir())console.log(`${i} %cran outside of an effect (${a}ms)`,"color: grey");else if(xn.entries.size===0)console.log(`${i} %cno reactive dependencies (${a}ms)`,"color: grey");else{console.group(`${i} %c(${a}ms)`,"color: grey");var l=xn.entries;ge(()=>{for(const[c,u]of l)Zo(c,u)}),xn=null,console.groupEnd()}return s}finally{xn=n}}function Yf(e,t){return e.label=t,Qo(e.v,t),e}function Qo(e,t){return e?.[of]?.(t),e}function Gf(e){const t=new Error,n=Xf();return n.length===0?null:(n.unshift(`
2
+ `),pn(t,"stack",{value:n.join(`
3
+ `)}),pn(t,"name",{value:e}),t)}function Xf(){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 jn(e){ue=e}let jr=null;function Jf(e,t,n,r,s,a){const i=jr;jr={type:t,file:n[st],line:r,column:s,parent:i,...a};try{return e()}finally{jr=i}}let Ca=null;function Oi(e){Ca=e}function Zf(){const e={};return[()=>(nl(e)||uf(),el(e)),t=>tl(e,t)]}function el(e){return ps().get(e)}function tl(e,t){return ps().set(e,t),t}function nl(e){return ps().has(e)}function Qf(){return ps()}function ne(e,t=!1,n){ue={p:ue,i:!1,c:null,e:null,s:e,x:null,r:J,l:null}}function re(e){var t=ue,n=t.e;if(n!==null){t.e=null;for(var r of n)Rl(r)}return e!==void 0&&(t.x=e),t.i=!0,ue=t.p,e??{}}function rl(){return!0}function ps(e){return ue===null&&Kn(),ue.c??=new Map(ed(ue)||void 0)}function ed(e){let t=e.p;for(;t!==null;){const n=t.c;if(n!==null)return n;t=t.p}return null}let cn=[];function sl(){var e=cn;cn=[],ta(e)}function We(e){if(cn.length===0&&!Ln){var t=cn;queueMicrotask(()=>{t===cn&&sl()})}cn.push(e)}function td(){for(;cn.length>0;)sl()}function al(e){var t=J;if(t===null)return se.f|=en,e;if(!(t.f&Gt)&&!(t.f&mn))throw e;Mt(e,t)}function Mt(e,t){for(;t!==null;){if(t.f&na){if(!(t.f&Gt))throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const nd=-7169;function Se(e,t){e.f=e.f&nd|t}function Da(e){e.f&gt||e.deps===null?Se(e,Ce):Se(e,$t)}function il(e){if(e!==null)for(const t of e)!(t.f&je)||!(t.f&gn)||(t.f^=gn,il(t.deps))}function ol(e,t,n){e.f&Me?t.add(e):e.f&$t&&n.add(e),il(e.deps),Se(e,Ce)}function ll(e,t,n){if(e==null)return t(void 0),at;const r=ge(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}function rd(e){let t;return ll(e,n=>t=n)(),t}let aa=!1,rr=!1,ia=Symbol();function sd(e,t,n){const r=n[t]??={store:null,source:_s(void 0),unsubscribe:at};if(r.store!==e&&!(ia in n))if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=at;else{var s=!0;r.unsubscribe=ll(e,a=>{s?r.source.v=a:_(r.source,a)}),s=!1}return e&&ia in n?rd(e):o(r.source)}function ad(e,t,n){let r=n[t];return r&&r.store!==e&&(r.unsubscribe(),r.unsubscribe=at),e}function cl(e,t){return ms(e,t),t}function id(e,t){var n=e[t];n.store!==null&&cl(n.store,n.source.v)}function od(){const e={};function t(){ft(()=>{for(var n in e)e[n].unsubscribe();pn(e,ia,{enumerable:!1,value:!0})})}return[e,t]}function ms(e,t){aa=!0;try{e.set(t)}finally{aa=!1}}function ld(e,t,n){return ms(e,n),t}function cd(e,t,n=1){return ms(e,t+n),t}function ud(e,t,n=1){const r=t+n;return ms(e,r),r}function fd(){rr=!0}function ul(e){var t=rr;try{return rr=!1,[e(),rr]}finally{rr=t}}const Bt=new Set;let ee=null,Be=null,oa=null,Ln=!1,Us=!1,Cn=null,zr=null;var Ni=0;let dd=1;class bt{id=dd++;current=new Map;previous=new Map;#e=new Set;#t=new Set;#n=new Set;#a=new Map;#s=new Map;#i=null;#r=[];#o=[];#l=new Set;#u=new Set;#c=new Map;#d=new Set;is_fork=!1;#h=!1;#v=new Set;#f(){return this.is_fork||this.#s.size>0}#_(){for(const r of this.#v)for(const s of r.#s.keys()){for(var t=!1,n=s;n.parent!==null;){if(this.#c.has(n)){t=!0;break}n=n.parent}if(!t)return!0}return!1}skip_effect(t){this.#c.has(t)||this.#c.set(t,{d:[],m:[]}),this.#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)Se(s,Me),n(s);for(s of r.m)Se(s,$t),n(s)}this.#d.add(t)}#p(){if(Ni++>1e3&&(Bt.delete(this),vd()),!this.#f()){for(const l of this.#l)this.#u.delete(l),Se(l,Me),this.schedule(l);for(const l of this.#u)Se(l,$t),this.schedule(l)}const t=this.#r;this.#r=[],this.apply();var n=Cn=[],r=[],s=zr=[];for(const l of t)try{this.#g(l,n,r)}catch(c){throw hl(l),c}if(ee=null,s.length>0){var a=bt.ensure();for(const l of s)a.schedule(l)}if(Cn=null,zr=null,this.#f()||this.#_()){this.#m(r),this.#m(n);for(const[l,c]of this.#c)vl(l,c)}else{this.#a.size===0&&Bt.delete(this),this.#l.clear(),this.#u.clear();for(const l of this.#e)l(this);this.#e.clear(),Mi(r),Mi(n),this.#i?.resolve()}var i=ee;if(this.#r.length>0){const l=i??=this;l.#r.push(...this.#r.filter(c=>!l.#r.includes(c)))}i!==null&&(Bt.add(i),i.#p())}#g(t,n,r){t.f^=Ce;for(var s=t.first;s!==null;){var a=s.f,i=(a&(It|Wt))!==0,l=i&&(a&Ce)!==0,c=l||(a&Ke)!==0||this.#c.has(s);if(!c&&s.fn!==null){i?s.f^=Ce:a&mn?n.push(s):Wn(s)&&(a&At&&this.#u.add(s),wn(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}}}#m(t){for(var n=0;n<t.length;n+=1)ol(t[n],this.#l,this.#u)}capture(t,n,r=!1){t.v!==be&&!this.previous.has(t)&&this.previous.set(t,t.v),t.f&en||(this.current.set(t,[n,r]),Be?.set(t,n)),this.is_fork||(t.v=n)}activate(){ee=this}deactivate(){ee=null,Be=null}flush(){try{Us=!0,ee=this,this.#p()}finally{Ni=0,oa=null,Cn=null,zr=null,Us=!1,ee=null,Be=null,fn.clear()}}discard(){for(const t of this.#t)t(this);this.#t.clear(),this.#n.clear(),Bt.delete(this)}register_created_effect(t){this.#o.push(t)}#y(){for(const f of Bt){var t=f.id<this.id,n=[];for(const[v,[d,k]]of this.current){if(f.current.has(v)){var r=f.current.get(v)[0];if(t&&d!==r)f.current.set(v,[d,k]);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|Mn)?f.schedule(d):f.#m([d])});f.activate();var a=new Set,i=new Map;for(var l of n)fl(l,s,a,i);i=new Map;var c=[...f.current.keys()].filter(v=>this.current.has(v)?this.current.get(v)[0]!==v:!0);for(const v of this.#o)!(v.f&(Ze|Ke|fr))&&Pa(v,c,i)&&(v.f&(Mn|At)?(Se(v,Me),f.schedule(v)):f.#l.add(v));if(f.#r.length>0){f.apply();for(var u of f.#r)f.#g(u,[],[]);f.#r=[]}f.deactivate()}}for(const f of Bt)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.#s.get(n)??0;this.#s.set(n,s+1)}}decrement(t,n,r){let s=this.#a.get(n)??0;if(s===1?this.#a.delete(n):this.#a.set(n,s-1),t){let a=this.#s.get(n)??0;a===1?this.#s.delete(n):this.#s.set(n,a-1)}this.#h||r||(this.#h=!0,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??=qo()).promise}static ensure(){if(ee===null){const t=ee=new bt;Us||(Bt.add(ee),Ln||We(()=>{ee===t&&t.flush()}))}return ee}apply(){{Be=null;return}}schedule(t){if(oa=t,t.b?.is_pending&&t.f&(mn|wr|$a)&&!(t.f&Gt)){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var r=n.f;if(Cn!==null&&n===J&&(se===null||!(se.f&je))&&!aa)return;if(r&(Wt|It)){if(!(r&Ce))return;n.f^=Ce}}this.#r.push(n)}}function nn(e){var t=Ln;Ln=!0;try{var n;for(e&&(ee!==null&&!ee.is_fork&&ee.flush(),n=e());;){if(td(),ee===null)return n;ee.flush()}}finally{Ln=t}}function vd(){try{kf()}catch(e){Mt(e,oa)}}let Ht=null;function Mi(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&(Ze|Ke))&&Wn(r)&&(Ht=new Set,wn(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Nl(r),Ht?.size>0)){fn.clear();for(const s of Ht){if(s.f&(Ze|Ke))continue;const a=[s];let i=s.parent;for(;i!==null;)Ht.has(i)&&(Ht.delete(i),a.push(i)),i=i.parent;for(let l=a.length-1;l>=0;l--){const c=a[l];c.f&(Ze|Ke)||wn(c)}}Ht.clear()}}Ht=null}}function fl(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&je?fl(s,t,n,r):a&(Mn|At)&&!(a&Me)&&Pa(s,t,r)&&(Se(s,Me),La(s))}}function dl(e,t){if(e.reactions!==null)for(const n of e.reactions){const r=n.f;r&je?dl(n,t):r&fr&&(Se(n,Me),t.add(n))}}function Pa(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(Nn.call(t,s))return!0;if(s.f&je&&Pa(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function La(e){ee.schedule(e)}let Yr=[];function hd(){nn(()=>{const e=Yr;Yr=[];for(const t of e)zn(t)})}function pd(e){var t=lt(0),n=!0,r=void 0;return o(t),Dl(()=>{if(n){var s=Be;try{Be=null,r=e()}finally{Be=s}return}Yr.length===0&&We(hd),Yr.push(t)}),n=!1,r}function vl(e,t){if(!(e.f&It&&e.f&Ce)){e.f&Me?t.d.push(e):e.f&$t&&t.m.push(e),Se(e,Ce);for(var n=e.first;n!==null;)vl(n,t),n=n.next}}function hl(e){Se(e,Ce);for(var t=e.first;t!==null;)hl(t),t=t.next}function md(e){Ko(),ee!==null&&Ef();var t=bt.ensure();t.is_fork=!0,Be=new Map;var n=!1,r=t.settled();return nn(e),{commit:async()=>{if(n){await r;return}Bt.has(t)||Sf(),n=!0,t.is_fork=!1;for(var[s,[a]]of t.current)s.v=a,s.wv=Xr();t.activate(),t.run_fork_commit_callbacks(),t.deactivate(),nn(()=>{var i=new Set;for(var l of t.current.keys())dl(l,i);Td(i),wl()}),t.flush(),await r},discard:()=>{for(var s of t.current.keys())s.wv=Xr();!n&&Bt.has(t)&&t.discard()}}}function gd(e){let t=0,n=lt(0),r;return()=>{Ir()&&(o(n),$e(()=>(t===0&&(r=ge(()=>e(()=>or(n)))),t+=1,()=>{We(()=>{t-=1,t===0&&(r?.(),r=void 0,or(n))})})))}}var _d=Rt|sn;function pl(e,t,n,r){new yd(e,t,n,r)}class yd{parent;is_pending=!1;transform_error;#e;#t=U?X:null;#n;#a;#s;#i=null;#r=null;#o=null;#l=null;#u=0;#c=0;#d=!1;#h=new Set;#v=new Set;#f=null;#_=gd(()=>(this.#f=lt(this.#u),()=>{this.#f=null}));constructor(t,n,r,s){this.#e=t,this.#n=n,this.#a=a=>{var i=J;i.b=this,i.f|=na,r(a)},this.parent=J.b,this.transform_error=s??this.parent?.transform_error??(a=>a),this.#s=Vt(()=>{if(U){const a=this.#t;Ye();const i=a.data===us;if(a.data.startsWith(Ci)){const c=JSON.parse(a.data.slice(Ci.length));this.#g(c)}else i?this.#m():this.#p()}else this.#y()},_d),U&&(this.#e=X)}#p(){try{this.#i=Ue(()=>this.#a(this.#e))}catch(t){this.error(t)}}#g(t){const n=this.#n.failed;n&&(this.#o=Ue(()=>{n(this.#e,()=>t,()=>()=>{})}))}#m(){const t=this.#n.pending;t&&(this.is_pending=!0,this.#r=Ue(()=>t(this.#e)),We(()=>{var n=this.#l=document.createDocumentFragment(),r=qe();n.append(r),this.#i=this.#w(()=>Ue(()=>this.#a(r))),this.#c===0&&(this.#e.before(n),this.#l=null,dn(this.#r,()=>{this.#r=null}),this.#b(ee))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#c=0,this.#u=0,this.#i=Ue(()=>{this.#a(this.#e)}),this.#c>0){var t=this.#l=document.createDocumentFragment();Ba(this.#i,t);const n=this.#n.pending;this.#r=Ue(()=>n(this.#e))}else this.#b(ee)}catch(n){this.error(n)}}#b(t){this.is_pending=!1,t.transfer_effects(this.#h,this.#v)}defer_effect(t){ol(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=J,r=se,s=ue;Fe(this.#s),Qe(this.#s),jn(this.#s.ctx);try{return bt.ensure(),t()}catch(a){return al(a),null}finally{Fe(n),Qe(r),jn(s)}}#k(t,n){if(!this.has_pending_snippet()){this.parent&&this.parent.#k(t,n);return}this.#c+=t,this.#c===0&&(this.#b(n),this.#r&&dn(this.#r,()=>{this.#r=null}),this.#l&&(this.#e.before(this.#l),this.#l=null))}update_pending_count(t,n){this.#k(t,n),this.#u+=t,!(!this.#f||this.#d)&&(this.#d=!0,We(()=>{this.#d=!1,this.#f&&jt(this.#f,this.#u)}))}get_effect_pending(){return this.#_(),o(this.#f)}error(t){if(!this.#n.onerror&&!this.#n.failed)throw t;ee?.is_fork?(this.#i&&ee.skip_effect(this.#i),this.#r&&ee.skip_effect(this.#r),this.#o&&ee.skip_effect(this.#o),ee.on_fork_commit(()=>{this.#S(t)})):this.#S(t)}#S(t){this.#i&&(Oe(this.#i),this.#i=null),this.#r&&(Oe(this.#r),this.#r=null),this.#o&&(Oe(this.#o),this.#o=null),U&&(de(this.#t),Kt(),de(_n()));var n=this.#n.onerror;let r=this.#n.failed;var s=!1,a=!1;const i=()=>{if(s){Vf();return}s=!0,a&&Cf(),this.#o!==null&&dn(this.#o,()=>{this.#o=null}),this.#w(()=>{this.#y()})},l=c=>{try{a=!0,n?.(c,i),a=!1}catch(u){Mt(u,this.#s&&this.#s.parent)}r&&(this.#o=this.#w(()=>{try{return Ue(()=>{var u=J;u.b=this,u.f|=na,r(this.#e,()=>c,()=>i)})}catch(u){return Mt(u,this.#s.parent),null}}))};We(()=>{var c;try{c=this.transform_error(t)}catch(u){Mt(u,this.#s&&this.#s.parent);return}c!==null&&typeof c=="object"&&typeof c.then=="function"?c.then(l,u=>Mt(u,this.#s&&this.#s.parent)):l(c)})}}function bd(){J===null&&wf();var e=J.b;return e===null?0:e.get_effect_pending()}function Er(e,t,n,r){const s=Ar;var a=e.filter(d=>!d.settled);if(n.length===0&&a.length===0){r(t.map(s));return}var i=J,l=gs(),c=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(d=>d.promise)):null;function u(d){l();try{r(d)}catch(k){i.f&Ze||Mt(k,i)}bn()}if(n.length===0){c.then(()=>u(t.map(s)));return}var f=xr();function v(){Promise.all(n.map(d=>gl(d))).then(d=>u([...t.map(s),...d])).catch(d=>Mt(d,i)).finally(()=>f())}c?c.then(()=>{l(),v(),bn()}):v()}function ml(e,t){Er(e,[],[],t)}function gs(){var e=J,t=se,n=ue,r=ee;return function(a=!0){Fe(e),Qe(t),jn(n),a&&!(e.f&Ze)&&(r?.activate(),r?.apply())}}async function wd(e){var t=gs(),n=await e;return()=>(t(),n)}async function la(e){var t=ir;queueMicrotask(()=>{ir===t&&qr(null)});var n=await e;return()=>(qr(t),queueMicrotask(()=>{ir===t&&qr(null)}),n)}async function*kd(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 la(t.next()))();if(s){n=!0;break}var r=ir;yield a,qr(r)}}finally{if(!n&&t.return!==void 0)return(await la(t.return()))().value}}function bn(e=!0){Fe(null),Qe(null),jn(null),e&&ee?.deactivate()}function Sd(e){const t=gs(),n=xr();var r=J,s=null;const a=u=>{s={error:u},fa(r)||Mt(u,r)};var i=Promise.resolve(e[0]()).catch(a),l={promise:i,settled:!1},c=[l];i.finally(()=>{l.settled=!0,bn()});for(const u of e.slice(1)){i=i.then(()=>{if(t(),s)throw s.error;if(fa(r))throw Lt;return u()}).catch(a);const f={promise:i,settled:!1};c.push(f),i.finally(()=>{f.settled=!0,bn()})}return i.then(()=>Promise.resolve()).finally(()=>n()),c}function Ed(e){return Promise.all(e.map(t=>t.promise))}function xr(){var e=J,t=e.b,n=ee,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 ir=null;function qr(e){ir=e}function Ar(e){var t=je|Me;return J!==null&&(J.f|=sn),{ctx:ue,deps:null,effects:null,equals:Go,f:t,fn:e,reactions:null,rv:0,v:be,wv:0,parent:J,ac:null}}function gl(e,t,n){let r=J;r===null&&hf();var s=void 0,a=lt(be),i=!se,l=new Map;return zd(()=>{var c=J,u=qo();s=u.promise;try{Promise.resolve(e()).then(u.resolve,u.reject).finally(bn)}catch(k){u.reject(k),bn()}var f=ee;if(i){if(c.f&Gt)var v=xr();if(r.b.is_rendered())l.get(f)?.reject(Lt),l.delete(f);else{for(const k of l.values())k.reject(Lt);l.clear()}l.set(f,u)}const d=(k,g=void 0)=>{if(v){var w=g===Lt;v(w)}if(!(g===Lt||c.f&Ze)){if(f.activate(),g)a.f|=en,jt(a,g);else{a.f&en&&(a.f^=en),jt(a,k);for(const[y,$]of l){if(l.delete(y),y===f)break;$.reject(Lt)}}f.deactivate()}};u.promise.then(d,k=>d(null,k||"unknown"))}),ft(()=>{for(const c of l.values())c.reject(Lt)}),new Promise(c=>{function u(f){function v(){f===s?c(a):u(s)}f.then(v,v)}u(s)})}function W(e){const t=Ar(e);return zl(t),t}function Oa(e){const t=Ar(e);return t.equals=Jo,t}function xd(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)Oe(t[n])}}function Na(e){var t,n=J,r=e.parent;if(!Yt&&r!==null&&r.f&(Ze|Ke))return Of(),e.v;Fe(r);try{e.f&=~gn,xd(e),t=Fl(e)}finally{Fe(n)}return t}function _l(e){var t=Na(e);if(!e.equals(t)&&(e.wv=Xr(),(!ee?.is_fork||e.deps===null)&&(ee!==null?ee.capture(e,t,!0):e.v=t,e.deps===null))){Se(e,Ce);return}Yt||(Be!==null?(Ir()||ee?.is_fork)&&Be.set(e,t):Da(e))}function Ad(e){if(e.effects!==null)for(const t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(Lt),t.teardown=at,t.ac=null,dr(t,0),Fa(t))}function yl(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&wn(t)}let Gr=new Set;const fn=new Map;function Td(e){Gr=e}let bl=!1;function lt(e,t){var n={f:0,v:e,reactions:null,equals:Go,rv:0,wv:0};return n}function q(e,t){const n=lt(e);return zl(n),n}function _s(e,t=!1,n=!0){const r=lt(e);return t||(r.equals=Jo),r}function Id(e,t){return _(e,ge(()=>o(e))),t}function _(e,t,n=!1){se!==null&&(!Et||se.f&fr)&&rl()&&se.f&(je|At|Mn|fr)&&(_t===null||!Nn.call(_t,e))&&Rf();let r=n?fe(t):t;return jt(e,r,zr)}function jt(e,t,n=null){if(!e.equals(t)){fn.set(e,Yt?t:e.v);var r=bt.ensure();if(r.capture(e,t),e.f&je){const s=e;e.f&Me&&Na(s),Be===null&&Da(s)}e.wv=Xr(),kl(e,Me,n),J!==null&&J.f&Ce&&!(J.f&(It|Wt))&&(ht===null?Bd([e]):ht.push(e)),!r.is_fork&&Gr.size>0&&!bl&&wl()}return t}function wl(){bl=!1;for(const e of Gr)e.f&Ce&&Se(e,$t),Wn(e)&&wn(e);Gr.clear()}function zn(e,t=1){var n=o(e),r=t===1?n++:n--;return _(e,n),r}function $d(e,t=1){var n=o(e);return _(e,t===1?++n:--n)}function or(e){_(e,e.v+1)}function kl(e,t,n){var r=e.reactions;if(r!==null)for(var s=r.length,a=0;a<s;a++){var i=r[a],l=i.f,c=(l&Me)===0;if(c&&Se(i,t),l&je){var u=i;Be?.delete(u),l&gn||(l&gt&&(i.f|=gn),kl(u,$t,n))}else if(c){var f=i;l&At&&Ht!==null&&Ht.add(f),n!==null?n.push(f):La(f)}}}function fe(e){if(typeof e!="object"||e===null||Ve in e)return e;const t=vs(e);if(t!==zo&&t!==ef)return e;var n=new Map,r=Hn(e),s=q(0),a=vn,i=l=>{if(vn===a)return l();var c=se,u=vn;Qe(null),qi(a);var f=l();return Qe(c),qi(u),f};return r&&n.set("length",q(e.length)),new Proxy(e,{defineProperty(l,c,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&If();var f=n.get(c);return f===void 0?i(()=>{var v=q(u.value);return n.set(c,v),v}):_(f,u.value,!0),!0},deleteProperty(l,c){var u=n.get(c);if(u===void 0){if(c in l){const f=i(()=>q(be));n.set(c,f),or(s)}}else _(u,be),or(s);return!0},get(l,c,u){if(c===Ve)return e;var f=n.get(c),v=c in l;if(f===void 0&&(!v||xt(l,c)?.writable)&&(f=i(()=>{var k=fe(v?l[c]:be),g=q(k);return g}),n.set(c,f)),f!==void 0){var d=o(f);return d===be?void 0:d}return Reflect.get(l,c,u)},getOwnPropertyDescriptor(l,c){var u=Reflect.getOwnPropertyDescriptor(l,c);if(u&&"value"in u){var f=n.get(c);f&&(u.value=o(f))}else if(u===void 0){var v=n.get(c),d=v?.v;if(v!==void 0&&d!==be)return{enumerable:!0,configurable:!0,value:d,writable:!0}}return u},has(l,c){if(c===Ve)return!0;var u=n.get(c),f=u!==void 0&&u.v!==be||Reflect.has(l,c);if(u!==void 0||J!==null&&(!f||xt(l,c)?.writable)){u===void 0&&(u=i(()=>{var d=f?fe(l[c]):be,k=q(d);return k}),n.set(c,u));var v=o(u);if(v===be)return!1}return f},set(l,c,u,f){var v=n.get(c),d=c in l;if(r&&c==="length")for(var k=u;k<v.v;k+=1){var g=n.get(k+"");g!==void 0?_(g,be):k in l&&(g=i(()=>q(be)),n.set(k+"",g))}if(v===void 0)(!d||xt(l,c)?.writable)&&(v=i(()=>q(void 0)),_(v,fe(u)),n.set(c,v));else{d=v.v!==be;var w=i(()=>fe(u));_(v,w)}var y=Reflect.getOwnPropertyDescriptor(l,c);if(y?.set&&y.set.call(f,u),!d){if(r&&typeof c=="string"){var $=n.get("length"),m=Number(c);Number.isInteger(m)&&m>=$.v&&_($,m+1)}or(s)}return!0},ownKeys(l){o(s);var c=Reflect.ownKeys(l).filter(v=>{var d=n.get(v);return d===void 0||d.v!==be});for(var[u,f]of n)f.v!==be&&!(u in l)&&c.push(u);return c},setPrototypeOf(){$f()}})}function qn(e){try{if(e!==null&&typeof e=="object"&&Ve in e)return e[Ve]}catch{}return e}function Sl(e,t){return Object.is(qn(e),qn(t))}function Rd(e,t,n=!0){try{e===t!=(qn(e)===qn(t))&&Yo(n?"===":"!==")}catch{}return e===t===n}function Cd(e,t,n=!0){return e==t!=(qn(e)==qn(t))&&Yo(),e==t===n}var ca,El,Ma,xl,Al;function ua(){if(ca===void 0){ca=window,El=document,Ma=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;xl=xt(t,"firstChild").get,Al=xt(t,"nextSibling").get,Di(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),Di(n)&&(n.__t=void 0)}}function qe(e=""){return document.createTextNode(e)}function we(e){return xl.call(e)}function ct(e){return Al.call(e)}function p(e,t){if(!U)return we(e);var n=we(X);if(n===null)n=X.appendChild(qe());else if(t&&n.nodeType!==kr){var r=qe();return n?.before(r),de(r),r}return t&&ys(n),de(n),n}function ye(e,t=!1){if(!U){var n=we(e);return n instanceof Comment&&n.data===""?ct(n):n}if(t){if(X?.nodeType!==kr){var r=qe();return X?.before(r),de(r),r}ys(X)}return X}function E(e,t=1,n=!1){let r=U?X:e;for(var s;t--;)s=r,r=ct(r);if(!U)return r;if(n){if(r?.nodeType!==kr){var a=qe();return r===null?s?.after(a):r.before(a),de(a),a}ys(r)}return de(r),r}function ja(e){e.textContent=""}function Tl(){return!1}function an(e,t,n){let r=n?{is:n}:void 0;return document.createElementNS(t??Oo,e,r)}function Dd(){return document.createDocumentFragment()}function Il(e=""){return document.createComment(e)}function Pd(e,t,n=""){if(t.startsWith("xlink:")){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n);return}return e.setAttribute(t,n)}function ys(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===kr;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function za(e,t){if(t){const n=document.body;e.autofocus=!0,We(()=>{document.activeElement===n&&e.focus()})}}function Ld(e){U&&we(e)!==null&&ja(e)}let ji=!1;function $l(){ji||(ji=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function tt(e,t,n,r=!0){r&&n();for(var s of t)e.addEventListener(s,n);ft(()=>{for(var a of t)e.removeEventListener(a,n)})}function on(e){var t=se,n=J;Qe(null),Fe(null);try{return e()}finally{Qe(t),Fe(n)}}function Tr(e,t,n,r=n){e.addEventListener(t,()=>on(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),$l()}function qa(e){J===null&&(se===null&&bf(),yf()),Yt&&_f()}function Od(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function nt(e,t){var n=J;n!==null&&n.f&Ke&&(e|=Ke);var r={ctx:ue,deps:null,nodes:null,f:e|Me|gt,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};ee?.register_created_effect(r);var s=r;if(e&mn)Cn!==null?Cn.push(r):bt.ensure().schedule(r);else if(t!==null){try{wn(r)}catch(i){throw Oe(r),i}s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&!(s.f&sn)&&(s=s.first,e&At&&e&Rt&&s!==null&&(s.f|=Rt))}if(s!==null&&(s.parent=n,n!==null&&Od(s,n),se!==null&&se.f&je&&!(e&Wt))){var a=se;(a.effects??=[]).push(s)}return r}function Ir(){return se!==null&&!Et}function ft(e){const t=nt(wr,null);return Se(t,Ce),t.teardown=e,t}function Le(e){qa();var t=J.f,n=!se&&(t&It)!==0&&(t&Gt)===0;if(n){var r=ue;(r.e??=[]).push(e)}else return Rl(e)}function Rl(e){return nt(mn|Uo,e)}function Cl(e){return qa(),nt(wr|Uo,e)}function Dl(e){return nt(fr,e)}function Va(e){bt.ensure();const t=nt(Wt|sn,e);return()=>{Oe(t)}}function Nd(e){bt.ensure();const t=nt(Wt|sn,e);return(n={})=>new Promise(r=>{n.outro?dn(t,()=>{Oe(t),r(void 0)}):(Oe(t),r(void 0))})}function ut(e){return nt(mn,e)}function Md(e,t){var n=ue,r={effect:null,ran:!1,deps:e};n.l.$.push(r),r.effect=$e(()=>{if(e(),!r.ran){r.ran=!0;var s=J;try{Fe(s.parent),ge(t)}finally{Fe(s)}}})}function jd(){var e=ue;$e(()=>{for(var t of e.l.$){t.deps();var n=t.effect;n.f&Ce&&n.deps!==null&&Se(n,$t),Wn(n)&&wn(n),t.ran=!1}})}function zd(e){return nt(Mn|sn,e)}function $e(e,t=0){return nt(wr|t,e)}function V(e,t=[],n=[],r=[]){Er(r,t,n,s=>{nt(wr,()=>e(...s.map(o)))})}function qd(e,t=[],n=[],r=[]){if(n.length>0||r.length>0)var s=xr();Er(r,t,n,a=>{nt(mn,()=>e(...a.map(o))),s&&s()})}function Vt(e,t=0){var n=nt(At|t,e);return n}function Pl(e,t=0){var n=nt($a|t,e);return n}function Ue(e){return nt(It|sn,e)}function Ll(e){var t=e.teardown;if(t!==null){const n=Yt,r=se;zi(!0),Qe(null);try{t.call(null)}finally{zi(n),Qe(r)}}}function Fa(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&on(()=>{s.abort(Lt)});var r=n.next;n.f&Wt?n.parent=null:Oe(n,t),n=r}}function Vd(e){for(var t=e.first;t!==null;){var n=t.next;t.f&It||Oe(t),t=n}}function Oe(e,t=!0){var n=!1;(t||e.f&Fo)&&e.nodes!==null&&e.nodes.end!==null&&(Ol(e.nodes.start,e.nodes.end),n=!0),Se(e,ra),Fa(e,t&&!n),dr(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const a of r)a.stop();Ll(e),e.f^=ra,e.f|=Ze;var s=e.parent;s!==null&&s.first!==null&&Nl(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Ol(e,t){for(;e!==null;){var n=e===t?null:ct(e);e.remove(),e=n}}function Nl(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 dn(e,t,n=!0){var r=[];Ml(e,r,!0);var s=()=>{n&&Oe(e),t&&t()},a=r.length;if(a>0){var i=()=>--a||s();for(var l of r)l.out(i)}else s()}function Ml(e,t,n){if(!(e.f&Ke)){e.f^=Ke;var r=e.nodes&&e.nodes.t;if(r!==null)for(const l of r)(l.is_global||n)&&t.push(l);for(var s=e.first;s!==null;){var a=s.next;if(!(s.f&Wt)){var i=(s.f&Rt)!==0||(s.f&It)!==0&&(e.f&At)!==0;Ml(s,t,i?n:!1)}s=a}}}function Ua(e){jl(e,!0)}function jl(e,t){if(e.f&Ke){e.f^=Ke,e.f&Ce||(Se(e,Me),bt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&Rt)!==0||(n.f&It)!==0;jl(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 fa(e=J){return(e.f&Ze)!==0}function Ba(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:ct(n);t.append(n),n=s}}let In=null;function Fd(e){var t=In;try{if(In=new Set,ge(e),t!==null)for(var n of In)t.add(n);return In}finally{In=t}}function Ud(e){for(var t of Fd(e))jt(t,t.v)}let Vr=!1,Yt=!1;function zi(e){Yt=e}let se=null,Et=!1;function Qe(e){se=e}let J=null;function Fe(e){J=e}let _t=null;function zl(e){se!==null&&(_t===null?_t=[e]:_t.push(e))}let Je=null,rt=0,ht=null;function Bd(e){ht=e}let ql=1,un=0,vn=un;function qi(e){vn=e}function Xr(){return++ql}function Wn(e){var t=e.f;if(t&Me)return!0;if(t&je&&(e.f&=~gn),t&$t){for(var n=e.deps,r=n.length,s=0;s<r;s++){var a=n[s];if(Wn(a)&&_l(a),a.wv>e.wv)return!0}t&gt&&Be===null&&Se(e,Ce)}return!1}function Vl(e,t,n=!0){var r=e.reactions;if(r!==null&&!(_t!==null&&Nn.call(_t,e)))for(var s=0;s<r.length;s++){var a=r[s];a.f&je?Vl(a,t,!1):t===a&&(n?Se(a,Me):a.f&Ce&&Se(a,$t),La(a))}}function Fl(e){var t=Je,n=rt,r=ht,s=se,a=_t,i=ue,l=Et,c=vn,u=e.f;Je=null,rt=0,ht=null,se=u&(It|Wt)?null:e,_t=null,jn(e.ctx),Et=!1,vn=++un,e.ac!==null&&(on(()=>{e.ac.abort(Lt)}),e.ac=null);try{e.f|=sa;var f=e.fn,v=f();e.f|=Gt;var d=e.deps,k=ee?.is_fork;if(Je!==null){var g;if(k||dr(e,rt),d!==null&&rt>0)for(d.length=rt+Je.length,g=0;g<Je.length;g++)d[rt+g]=Je[g];else e.deps=d=Je;if(Ir()&&e.f&gt)for(g=rt;g<d.length;g++)(d[g].reactions??=[]).push(e)}else!k&&d!==null&&rt<d.length&&(dr(e,rt),d.length=rt);if(rl()&&ht!==null&&!Et&&d!==null&&!(e.f&(je|$t|Me)))for(g=0;g<ht.length;g++)Vl(ht[g],e);if(s!==null&&s!==e){if(un++,s.deps!==null)for(let w=0;w<n;w+=1)s.deps[w].rv=un;if(t!==null)for(const w of t)w.rv=un;ht!==null&&(r===null?r=ht:r.push(...ht))}return e.f&en&&(e.f^=en),v}catch(w){return al(w)}finally{e.f^=sa,Je=t,rt=n,ht=r,se=s,_t=a,jn(i),Et=l,vn=c}}function Hd(e,t){let n=t.reactions;if(n!==null){var r=Qu.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&je&&(Je===null||!Nn.call(Je,t))){var a=t;a.f&gt&&(a.f^=gt,a.f&=~gn),a.v!==be&&Da(a),Ad(a),dr(a,0)}}function dr(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)Hd(e,n[r])}function wn(e){var t=e.f;if(!(t&Ze)){Se(e,Ce);var n=J,r=Vr;J=e,Vr=!0;try{t&(At|$a)?Vd(e):Fa(e),Ll(e);var s=Fl(e);e.teardown=typeof s=="function"?s:null,e.wv=ql;var a;Mo&&Uf&&e.f&Me&&e.deps}finally{Vr=r,J=n}}}async function Ha(){await Promise.resolve(),nn()}function Kd(){return bt.ensure().settled()}function o(e){var t=e.f,n=(t&je)!==0;if(In?.add(e),se!==null&&!Et){var r=J!==null&&(J.f&Ze)!==0;if(!r&&(_t===null||!Nn.call(_t,e))){var s=se.deps;if(se.f&sa)e.rv<un&&(e.rv=un,Je===null&&s!==null&&s[rt]===e?rt++:Je===null?Je=[e]:Je.push(e));else{(se.deps??=[]).push(e);var a=e.reactions;a===null?e.reactions=[se]:Nn.call(a,se)||a.push(se)}}}if(Yt&&fn.has(e))return fn.get(e);if(n){var i=e;if(Yt){var l=i.v;return(!(i.f&Ce)&&i.reactions!==null||Bl(i))&&(l=Na(i)),fn.set(i,l),l}var c=(i.f&gt)===0&&!Et&&se!==null&&(Vr||(se.f&gt)!==0),u=(i.f&Gt)===0;Wn(i)&&(c&&(i.f|=gt),_l(i)),c&&!u&&(yl(i),Ul(i))}if(Be?.has(e))return Be.get(e);if(e.f&en)throw e.v;return e.v}function Ul(e){if(e.f|=gt,e.deps!==null)for(const t of e.deps)(t.reactions??=[]).push(e),t.f&je&&!(t.f&gt)&&(yl(t),Ul(t))}function Bl(e){if(e.v===be)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(fn.has(t)||t.f&je&&Bl(t))return!0;return!1}function Wd(e){return e&&o(e)}function ge(e){var t=Et;try{return Et=!0,e()}finally{Et=t}}function Ka(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if(Ve in e)Jr(e);else if(!Array.isArray(e))for(let t in e){const n=e[t];typeof n=="object"&&n&&Ve in n&&Jr(n)}}}function Jr(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{Jr(e[r],t)}catch{}const n=vs(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){const r=jo(n);for(let s in r){const a=r[s].get;if(a)try{a.call(e)}catch{}}}}}function Yd(e,t){if(Ko(),U){const n=window.__svelte?.h;if(n?.has(e))return n.get(e);Mf()}return t()}const sr=Symbol("events"),Hl=new Set,da=new Set;function Gd(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 Kl(e,t,n,r={}){function s(a){if(r.capture||va.call(t,a),!a.cancelBubble)return on(()=>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 et(e,t,n,r,s){var a={capture:r,passive:s},i=Kl(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&ft(()=>{t.removeEventListener(e,i,a)})}function K(e,t,n){(t[sr]??={})[e]=n}function pe(e){for(var t=0;t<e.length;t++)Hl.add(e[t]);for(var n of da)n(e)}let Vi=null;function va(e){var t=this,n=t.ownerDocument,r=e.type,s=e.composedPath?.()||[],a=s[0]||e.target;Vi=e;var i=0,l=Vi===e&&e[sr];if(l){var c=s.indexOf(l);if(c!==-1&&(t===document||t===window)){e[sr]=t;return}var u=s.indexOf(t);if(u===-1)return;c<=u&&(i=c)}if(a=s[i]||e.target,a!==t){pn(e,"currentTarget",{configurable:!0,get(){return a||n}});var f=se,v=J;Qe(null),Fe(null);try{for(var d,k=[];a!==null;){var g=a.assignedSlot||a.parentNode||a.host||null;try{var w=a[sr]?.[r];w!=null&&(!a.disabled||e.target===a)&&w.call(a,e)}catch(y){d?k.push(y):d=y}if(e.cancelBubble||g===t||g===null)break;a=g}if(d){for(let y of k)queueMicrotask(()=>{throw y});throw d}}finally{e[sr]=t,delete e.currentTarget,Qe(f),Fe(v)}}}function Xd(e,t,n,r,s,a=!1,i=!1){let l,c;try{l=e()}catch(u){c=u}if(typeof l!="function"&&(a||l!=null||c)){const u=r?.[st];s?`${u}${s[0]}${s[1]}`:`${u}`;const f=n[0]?.eventPhase<Event.BUBBLING_PHASE?"capture":"";if(n[0]?.type+f,Nf(),c)throw c}l?.apply(t,n)}const Jd=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function Wl(e){return Jd?.createHTML(e)??e}function Wa(e){var t=an("template");return t.innerHTML=Wl(e.replaceAll("<!>","<!---->")),t.content}const Zd=En?"template":"TEMPLATE",Qd=En?"script":"SCRIPT";function Ne(e,t){var n=J;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function R(e,t){var n=(t&Ta)!==0,r=(t&Lo)!==0,s,a=!e.startsWith("<!>");return()=>{if(U)return Ne(X,null),X;s===void 0&&(s=Wa(a?e:"<!>"+e),n||(s=we(s)));var i=r||Ma?document.importNode(s,!0):s.cloneNode(!0);if(n){var l=we(i),c=i.lastChild;Ne(l,c)}else Ne(i,i);return i}}function Yl(e,t,n="svg"){var r=!e.startsWith("<!>"),s=(t&Ta)!==0,a=`<${n}>${r?e:"<!>"+e}</${n}>`,i;return()=>{if(U)return Ne(X,null),X;if(!i){var l=Wa(a),c=we(l);if(s)for(i=document.createDocumentFragment();we(c);)i.appendChild(we(c));else i=we(c)}var u=i.cloneNode(!0);if(s){var f=we(u),v=u.lastChild;Ne(f,v)}else Ne(u,u);return u}}function ev(e,t){return Yl(e,t,"svg")}function tv(e,t){return Yl(e,t,"math")}function Gl(e,t){var n=Dd();for(var r of e){if(typeof r=="string"){n.append(qe(r));continue}if(r===void 0||r[0][0]==="/"){n.append(Il(r?r[0].slice(3):""));continue}const[l,c,...u]=r,f=l==="svg"?br:l==="math"?Ia:t;var s=an(l,f,c?.is);for(var a in c)Pd(s,a,c[a]);if(u.length>0){var i=s.nodeName===Zd?s.content:s;i.append(Gl(u,s.nodeName==="foreignObject"?void 0:f))}n.append(s)}return n}function nv(e,t){var n=(t&Ta)!==0,r=(t&Lo)!==0,s;return()=>{if(U)return Ne(X,null),X;if(s===void 0){const c=t&Ju?br:t&Zu?Ia:void 0;s=Gl(e,c),n||(s=we(s))}var a=r||Ma?document.importNode(s,!0):s.cloneNode(!0);if(n){var i=we(a),l=a.lastChild;Ne(i,l)}else Ne(a,a);return a}}function rv(e){return()=>sv(e())}function sv(e){if(U)return e;const t=e.nodeType===Ho,n=e.nodeName===Qd?[e]:e.querySelectorAll("script"),r=J;for(const a of n){const i=an("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 On(e=""){if(!U){var t=qe(e+"");return Ne(t,t),t}var n=X;return n.nodeType!==kr?(n.before(n=qe()),de(n)):ys(n),Ne(n,n),n}function pt(){if(U)return Ne(X,null),X;var e=document.createDocumentFragment(),t=document.createComment(""),n=qe();return e.append(t,n),Ne(t,n),e}function T(e,t){if(U){var n=J;(!(n.f&Gt)||n.nodes.end===null)&&(n.nodes.end=X),Ye();return}e!==null&&e.before(t)}function av(){if(U&&X&&X.nodeType===Xt&&X.textContent?.startsWith("$")){const e=X.textContent.substring(1);return Ye(),e}return(window.__svelte??={}).uid??=1,`c${window.__svelte.uid++}`}const iv=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function ov(e){return iv.includes(e)||e.toLowerCase()==="!doctype"}function lv(e){return e.endsWith("capture")&&e!=="gotpointercapture"&&e!=="lostpointercapture"}const cv=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function uv(e){return cv.includes(e)}const fv={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 dv(e){return e=e.toLowerCase(),fv[e]??e}const vv=["touchstart","touchmove"];function hv(e){return vv.includes(e)}const pv=["textarea","script","style","title"];function mv(e){return pv.includes(e)}function Xl(e){return e?.replace(/\//g,"/​")}let Zr=!0;function Dn(e){Zr=e}function j(e,t){var n=t==null?"":typeof t=="object"?`${t}`:t;n!==(e.__t??=e.nodeValue)&&(e.__t=n,e.nodeValue=`${n}`)}function ze(e,t){return Zl(e,t)}function Jl(e,t){ua(),t.intro=t.intro??!1;const n=t.target,r=U,s=X;try{for(var a=we(n);a&&(a.nodeType!==Xt||a.data!==cs);)a=ct(a);if(!a)throw hn;me(!0),de(a);const i=Zl(e,{...t,anchor:a});return me(!1),i}catch(i){if(i instanceof Error&&i.message.split(`
5
+ `).some(l=>l.startsWith("https://svelte.dev/e/")))throw i;return i!==hn&&console.warn("Failed to hydrate: ",i),t.recover===!1&&Af(),ua(),ja(n),me(!1),ze(e,t)}finally{me(r),de(s)}}const Lr=new Map;function Zl(e,{target:t,anchor:n,props:r={},events:s,context:a,intro:i=!0,transformError:l}){ua();var c=void 0,u=Nd(()=>{var f=n??t.appendChild(qe());pl(f,{pending:()=>{}},k=>{ne({});var g=ue;if(a&&(g.c=a),s&&(r.$$events=s),U&&Ne(k,null),Zr=i,c=e(k,r)||{},Zr=!0,U&&(J.nodes.end=X,X===null||X.nodeType!==Xt||X.data!==fs))throw Sr(),hn;re()},l);var v=new Set,d=k=>{for(var g=0;g<k.length;g++){var w=k[g];if(!v.has(w)){v.add(w);var y=hv(w);for(const b of[t,document]){var $=Lr.get(b);$===void 0&&($=new Map,Lr.set(b,$));var m=$.get(w);m===void 0?(b.addEventListener(w,va,{passive:y}),$.set(w,1)):$.set(w,m+1)}}}};return d(ds(Hl)),da.add(d),()=>{for(var k of v)for(const y of[t,document]){var g=Lr.get(y),w=g.get(k);--w==0?(y.removeEventListener(k,va),g.delete(k),g.size===0&&Lr.delete(y)):g.set(k,w)}da.delete(d),f!==n&&f.parentNode?.removeChild(f)}});return ha.set(c,u),c}let ha=new WeakMap;function He(e,t){const n=ha.get(e);return n?(ha.delete(e),n(t)):Promise.resolve()}function gv(e){const t=e();t&&ov(t)&&Bf()}function _v(e){const t=e();t&&!(typeof t=="string")&&vf()}function yv(e,t){e!=null&&typeof e.subscribe!="function"&&df()}function Ql(e){return e.toString=()=>(ff(),""),e}class Yn{anchor;#e=new Map;#t=new Map;#n=new Map;#a=new Set;#s=!0;constructor(t,n=!0){this.anchor=t,this.#s=n}#i=t=>{if(this.#e.has(t)){var n=this.#e.get(t),r=this.#t.get(n);if(r)Ua(r),this.#a.delete(n);else{var s=this.#n.get(n);s&&(this.#t.set(n,s.effect),this.#n.delete(n),s.fragment.lastChild.remove(),this.anchor.before(s.fragment),r=s.effect)}for(const[a,i]of this.#e){if(this.#e.delete(a),a===t)break;const l=this.#n.get(i);l&&(Oe(l.effect),this.#n.delete(i))}for(const[a,i]of this.#t){if(a===n||this.#a.has(a))continue;const l=()=>{if(Array.from(this.#e.values()).includes(a)){var u=document.createDocumentFragment();Ba(i,u),u.append(qe()),this.#n.set(a,{effect:i,fragment:u})}else Oe(i);this.#a.delete(a),this.#t.delete(a)};this.#s||!r?(this.#a.add(a),dn(i,l,!1)):l()}}};#r=t=>{this.#e.delete(t);const n=Array.from(this.#e.values());for(const[r,s]of this.#n)n.includes(r)||(Oe(s.effect),this.#n.delete(r))};ensure(t,n){var r=ee,s=Tl();if(n&&!this.#t.has(t)&&!this.#n.has(t))if(s){var a=document.createDocumentFragment(),i=qe();a.append(i),this.#n.set(t,{effect:Ue(()=>n(i)),fragment:a})}else this.#t.set(t,Ue(()=>n(this.anchor)));if(this.#e.set(r,t),s){for(const[l,c]of this.#t)l===t?r.unskip_effect(c):r.skip_effect(c);for(const[l,c]of this.#n)l===t?r.unskip_effect(c.effect):r.skip_effect(c.effect);r.oncommit(this.#i),r.ondiscard(this.#r)}else U&&(this.anchor=X),this.#i(r)}}function Ya(e,t,...n){var r=new Yn(e);Vt(()=>{const s=t()??null;r.ensure(s,s&&(a=>s(a,...n)))},Rt)}function bv(e,t){const n=(r,...s)=>{var a=Ca;Oi(e);try{return t(r,...s)}finally{Oi(a)}};return Ql(n),n}function wv(e){return(t,...n)=>{var r=e(...n),s;if(U)s=X,Ye();else{var a=r.render().trim(),i=Wa(a);s=we(i),t.before(s)}const l=r.setup?.(s);Ne(s,s),typeof l=="function"&&ft(l)}}function kv(){return se===null&&xf(),(se.ac??=new AbortController).signal}function Ga(e){ue===null&&Kn(),Le(()=>{const t=ge(e);if(typeof t=="function")return t})}function ec(e){ue===null&&Kn(),Ga(()=>()=>ge(e))}function Sv(e,t,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(e,{detail:t,bubbles:n,cancelable:r})}function Ev(){const e=ue;return e===null&&Kn(),(t,n,r)=>{const s=e.s.$$events?.[t];if(s){const a=Hn(s)?s.slice():[s],i=Sv(t,n,r);for(const l of a)l.call(e.x,i);return!i.defaultPrevented}return!0}}function xv(e){ue===null&&Kn(),ue.l===null&&Wo(),tc(ue).b.push(e)}function Av(e){ue===null&&Kn(),ue.l===null&&Wo(),tc(ue).a.push(e)}function tc(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}const nc=Object.freeze(Object.defineProperty({__proto__:null,afterUpdate:Av,beforeUpdate:xv,createContext:Zf,createEventDispatcher:Ev,createRawSnippet:wv,flushSync:nn,fork:md,getAbortSignal:kv,getAllContexts:Qf,getContext:el,hasContext:nl,hydratable:Yd,hydrate:Jl,mount:ze,onDestroy:ec,onMount:Ga,setContext:tl,settled:Kd,tick:Ha,unmount:He,untrack:ge},Symbol.toStringTag,{value:"Module"}));function Tv(){return Symbol(No)}function rc(e,t,n,r){return e!==t&&typeof t=="object"&&Ve in t&&Df(n,Xl(r)),e}function Iv(e,t,n,r,s){return rc(n==="="?e[t]=r:n==="&&="?e[t]&&=r():n==="||="?e[t]||=r():n==="??="?e[t]??=r():null,ge(()=>e[t]),t,s)}async function $v(e,t,n,r,s){return rc(n==="="?e[t]=await r:n==="&&="?e[t]&&=await r():n==="||="?e[t]||=await r():n==="??="?e[t]??=await r():null,ge(()=>e[t]),t,s)}var Fi=new Map;function Rv(e){var t=Fi.get(e);if(t){for(const n of t)n.remove();Fi.delete(e)}}function Cv(e,t,n){return(...r)=>{const s=e(...r);var a=U?s:s.nodeType===Ho?s.firstChild:s;return sc(a,t,n),s}}function Dv(e,t,n){e.__svelte_meta={parent:jr,loc:{file:t,line:n[0],column:n[1]}},n[2]&&sc(e.firstChild,t,n[2])}function sc(e,t,n){for(var r=0,s=0;e&&r<n.length;){if(U&&e.nodeType===Xt){var a=e;a.data[0]===cs?s+=1:a.data[0]===fs&&(s-=1)}s===0&&e.nodeType===Bo&&Dv(e,t,n[r++]),e=e.nextSibling}}function Pv(e){const t=lt(e);function n(r,s){let a={},i={},l,c=!1,u=r;return Vt(()=>{if(a!==(a=o(t))){if(l){for(var f in i)delete i[f];Oe(l)}l=Ue(()=>{u=u[lf]??u,c&&Dn(!1);var v=new.target?new a(u,s):a(u,s);v&&Object.defineProperties(i,Object.getOwnPropertyDescriptors(v)),c&&Dn(!0)}),J.nodes=l.nodes}},Rt),c=!0,U&&(u=X),i}return n[st]=e[st],n[An]={fn:e,current:t,update:r=>{_(n[An].current,r[An].fn),r[An].current=n[An].current}},n}function Lv(e){const t=ue?.function,n=ue?.p?.function;return{mutation:(r,s,a,i,l)=>{const c=s[0];if(Ui(e,c)||!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=Xl(`${t[st]}:${i}:${l}`);return zf(c,f,r,n[st]),a},binding:(r,s,a)=>{!Ui(e,r)&&n&&a()?.[Ve]&&jf(t[st],r,s[st],n[st])}}}function Ui(e,t){const n=Ve in e||hs in e;return!!xt(e,t)?.set||n&&t in e||!(t in e)}function Ov(e){e&&mf(e[st]??"a component",e.name)}function Nv(){const e=ue?.function;function t(n){pf(n,e[st])}return{$destroy:()=>t("$destroy()"),$on:()=>t("$on(...)"),$set:()=>t("$set(...)")}}function Mv(e,t,n=!1){qa();let r=!0,s=be;Dl(()=>{try{var a=e()}catch(l){s=l;return}var i=yn(a,!0,!0);ge(()=>{if(n){if(t(...i),!r){const l=Gf("$inspect(...)");l&&(console.groupCollapsed("stack trace"),console.log(l),console.groupEnd())}}else t(r?"init":"update",...i)}),r=!1}),$e(()=>{try{e()}catch{}s!==be&&(console.error(s),s=be)})}function jv(e,t=[],n=[],r){var s=U,a=null;if(s&&(Ye(),a=_n(!1)),n.length===0&&t.every(c=>c.settled)){r(e),s&&de(a);return}const i=xr();if(s){var l=X;de(a)}Er(t,[],n,c=>{s&&(me(!0),de(l));try{for(const u of c)o(u);r(e,...c)}finally{s&&me(!1),i()}})}function zv(e,...t){(typeof e!="object"||!(e instanceof Node))&&Li();for(let n of t)typeof n!="function"&&Li()}const Bi=0,Hi=1,qv=2;function Vv(e,t,n,r,s){U&&Ye();var a=be,i=lt(a),l=lt(a),c=new Yn(e);Vt(()=>{var u=ee;u.deactivate();var f=t();u.activate();var v=!1;let d=U&&Pi(f)===(e.data===us);if(d&&(de(_n()),me(!1)),Pi(f)){var k=gs(),g=!1;const w=y=>{if(!v){g=!0,k(!1),bt.ensure(),U&&me(!1);try{y()}finally{bn(!1),Ln||nn()}}};f.then(y=>{w(()=>{jt(i,y),c.ensure(Hi,r&&($=>r($,i)))})},y=>{w(()=>{if(jt(l,y),c.ensure(qv,s&&($=>s($,l))),!s)throw l.v})}),U?c.ensure(Bi,n):We(()=>{g||w(()=>{c.ensure(Bi,n)})})}else jt(i,f),c.ensure(Hi,r&&(w=>r(w,i)));return d&&me(!0),()=>{v=!0}})}function B(e,t,n=!1){var r;U&&(r=X,Ye());var s=new Yn(e),a=n?Rt:0;function i(l,c){if(U){var u=Ra(r);if(l!==parseInt(u.substring(1))){var f=_n();de(f),s.anchor=f,me(!1),s.ensure(l,c),me(!0);return}}s.ensure(l,c)}Vt(()=>{var l=!1;t((c,u=0)=>{l=!0,i(u,c)}),l||i(-1,null)},a)}const Fv=Symbol("NaN");function Uv(e,t,n){U&&Ye();var r=new Yn(e);Vt(()=>{var s=t();s!==s&&(s=Fv),r.ensure(s,n)})}function Bv(e,t){U&&de(we(e)),$e(()=>{var n=t();for(var r in n){var s=n[r];s?e.style.setProperty(r,s):e.style.removeProperty(r)}})}function Vn(e,t){return t}function Hv(e,t,n){for(var r=[],s=t.length,a,i=t.length,l=0;l<s;l++){let v=t[l];dn(v,()=>{if(a){if(a.pending.delete(v),a.done.add(v),a.pending.size===0){var d=e.outrogroups;pa(e,ds(a.done)),d.delete(a),d.size===0&&(e.outrogroups=null)}}else i-=1},!1)}if(i===0){var c=r.length===0&&n!==null;if(c){var u=n,f=u.parentNode;ja(f),f.append(u),e.items.clear()}pa(e,t,!c)}else a={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(a)}function pa(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(const i of e.pending.values())for(const l of i)r.add(e.items.get(l).e)}for(var s=0;s<t.length;s++){var a=t[s];if(r?.has(a)){a.f|=Nt;const i=document.createDocumentFragment();Ba(a,i)}else Oe(t[s],n)}}var Ki;function _e(e,t,n,r,s,a=null){var i=e,l=new Map,c=(t&Do)!==0;if(c){var u=e;i=U?de(we(u)):u.appendChild(qe())}U&&Ye();var f=null,v=Oa(()=>{var b=n();return Hn(b)?b:b==null?[]:ds(b)}),d,k=new Map,g=!0;function w(b){m.effect.f&Ze||(m.pending.delete(b),m.fallback=f,Kv(m,d,i,t,r),f!==null&&(d.length===0?f.f&Nt?(f.f^=Nt,ar(f,null,i)):Ua(f):dn(f,()=>{f=null})))}function y(b){m.pending.delete(b)}var $=Vt(()=>{d=o(v);var b=d.length;let I=!1;if(U){var L=Ra(i)===us;L!==(b===0)&&(i=_n(),de(i),me(!1),I=!0)}for(var x=new Set,S=ee,O=Tl(),P=0;P<b;P+=1){U&&X.nodeType===Xt&&X.data===fs&&(i=X,I=!0,me(!1));var M=d[P],A=r(M,P),D=g?null:l.get(A);D?(D.v&&jt(D.v,M),D.i&&jt(D.i,P),O&&S.unskip_effect(D.e)):(D=Wv(l,g?i:Ki??=qe(),M,A,P,s,t,n),g||(D.e.f|=Nt),l.set(A,D)),x.add(A)}if(b===0&&a&&!f&&(g?f=Ue(()=>a(i)):(f=Ue(()=>a(Ki??=qe())),f.f|=Nt)),b>x.size&&gf(),U&&b>0&&de(_n()),!g)if(k.set(S,x),O){for(const[F,z]of l)x.has(F)||S.skip_effect(z.e);S.oncommit(w),S.ondiscard(y)}else w(S);I&&me(!0),o(v)}),m={effect:$,items:l,pending:k,outrogroups:null,fallback:f};g=!1,U&&(i=X)}function tr(e){for(;e!==null&&!(e.f&It);)e=e.next;return e}function Kv(e,t,n,r,s){var a=(r&Uu)!==0,i=t.length,l=e.items,c=tr(e.effect.first),u,f=null,v,d=[],k=[],g,w,y,$;if(a)for($=0;$<i;$+=1)g=t[$],w=s(g,$),y=l.get(w).e,y.f&Nt||(y.nodes?.a?.measure(),(v??=new Set).add(y));for($=0;$<i;$+=1){if(g=t[$],w=s(g,$),y=l.get(w).e,e.outrogroups!==null)for(const M of e.outrogroups)M.pending.delete(y),M.done.delete(y);if(y.f&Ke&&(Ua(y),a&&(y.nodes?.a?.unfix(),(v??=new Set).delete(y))),y.f&Nt)if(y.f^=Nt,y===c)ar(y,null,n);else{var m=f?f.next:c;y===e.effect.last&&(e.effect.last=y.prev),y.prev&&(y.prev.next=y.next),y.next&&(y.next.prev=y.prev),Qt(e,f,y),Qt(e,y,m),ar(y,m,n),f=y,d=[],k=[],c=tr(f.next);continue}if(y!==c){if(u!==void 0&&u.has(y)){if(d.length<k.length){var b=k[0],I;f=b.prev;var L=d[0],x=d[d.length-1];for(I=0;I<d.length;I+=1)ar(d[I],b,n);for(I=0;I<k.length;I+=1)u.delete(k[I]);Qt(e,L.prev,x.next),Qt(e,f,L),Qt(e,x,b),c=b,f=x,$-=1,d=[],k=[]}else u.delete(y),ar(y,c,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=[],k=[];c!==null&&c!==y;)(u??=new Set).add(c),k.push(c),c=tr(c.next);if(c===null)continue}y.f&Nt||d.push(y),f=y,c=tr(y.next)}if(e.outrogroups!==null){for(const M of e.outrogroups)M.pending.size===0&&(pa(e,ds(M.done)),e.outrogroups?.delete(M));e.outrogroups.size===0&&(e.outrogroups=null)}if(c!==null||u!==void 0){var S=[];if(u!==void 0)for(y of u)y.f&Ke||S.push(y);for(;c!==null;)!(c.f&Ke)&&c!==e.fallback&&S.push(c),c=tr(c.next);var O=S.length;if(O>0){var P=r&Do&&i===0?n:null;if(a){for($=0;$<O;$+=1)S[$].nodes?.a?.measure();for($=0;$<O;$+=1)S[$].nodes?.a?.fix()}Hv(e,S,P)}}a&&We(()=>{if(v!==void 0)for(y of v)y.nodes?.a?.apply()})}function Wv(e,t,n,r,s,a,i,l){var c=i&Vu?i&Bu?lt(n):_s(n,!1,!1):null,u=i&Fu?lt(s):null;return{v:c,i:u,e:Ue(()=>(a(t,c??n,u??s,l),()=>{e.delete(r)}))}}function ar(e,t,n){if(e.nodes)for(var r=e.nodes.start,s=e.nodes.end,a=t&&!(t.f&Nt)?t.nodes.start:n;r!==null;){var i=ct(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 Yv(e,t,n=!1,r=!1,s=!1,a=!1){var i=e,l="";if(n){var c=e;U&&(i=de(we(c)))}V(()=>{var u=J;if(l===(l=t()??"")){U&&Ye();return}if(n&&!U){u.nodes=null,c.innerHTML=l,l!==""&&Ne(we(c),c.lastChild);return}if(u.nodes!==null&&(Ol(u.nodes.start,u.nodes.end),u.nodes=null),l!==""){if(U){X.data;for(var f=Ye(),v=f;f!==null&&(f.nodeType!==Xt||f.data!=="");)v=f,f=ct(f);if(f===null)throw Sr(),hn;Ne(X,v),i=de(f);return}var d=r?br:s?Ia:void 0,k=an(r?"svg":s?"math":"template",d);k.innerHTML=l;var g=r||s?k:k.content;if(Ne(we(g),g.lastChild),r||s)for(;we(g);)i.before(we(g));else i.before(g)}})}function Gv(e,t,n,r,s){U&&Ye();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 Xv(e){const t={};e.children&&(t.default=!0);for(const n in e.$$slots)t[n]=!0;return t}function $r(e,t,n){var r;U&&(r=X,Ye());var s=new Yn(e);Vt(()=>{var a=t()??null;if(U){var i=Ra(r),l=i===cs,c=a!==null;if(l!==c){var u=_n();de(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)))},Rt)}const Jv=()=>performance.now(),Ot={tick:e=>requestAnimationFrame(e),now:()=>Jv(),tasks:new Set};function ac(){const e=Ot.now();Ot.tasks.forEach(t=>{t.c(e)||(Ot.tasks.delete(t),t.f())}),Ot.tasks.size!==0&&Ot.tick(ac)}function Zv(e){let t;return Ot.tasks.size===0&&Ot.tick(ac),{promise:new Promise(n=>{Ot.tasks.add(t={c:e,f:n})}),abort(){Ot.tasks.delete(t)}}}function Qr(e,t){on(()=>{e.dispatchEvent(new CustomEvent(t))})}function Qv(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 Wi(e){const t={},n=e.split(";");for(const r of n){const[s,a]=r.split(":");if(!s||a===void 0)break;const i=Qv(s.trim());t[i]=a.trim()}return t}const eh=e=>e;let ic=null;function Yi(e){ic=e}function th(e,t,n){var r=ic??J,s=r.nodes,a,i,l,c=null;s.a??={element:e,measure(){a=this.element.getBoundingClientRect()},apply(){if(l?.abort(),i=this.element.getBoundingClientRect(),a.left!==i.left||a.right!==i.right||a.top!==i.top||a.bottom!==i.bottom){const u=t()(this.element,{from:a,to:i},n?.());l=es(this.element,u,void 0,1,()=>{l?.abort(),l=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;c={position:d.position,width:d.width,height:d.height,transform:d.transform},d.position="absolute",d.width=f,d.height=v;var k=e.getBoundingClientRect();if(a.left!==k.left||a.top!==k.top){var g=`translate(${a.left-k.left}px, ${a.top-k.top}px)`;d.transform=d.transform?`${d.transform} ${g}`:g}}}},unfix(){if(c){var u=e.style;u.position=c.position,u.width=c.width,u.height=c.height,u.transform=c.transform}}},s.a.element=e}function nh(e,t,n,r){var s=(e&Yu)!==0,a=(e&Gu)!==0,i=s&&a,l=(e&Xu)!==0,c=i?"both":s?"in":"out",u,f=t.inert,v=t.style.overflow,d,k;function g(){return on(()=>u??=n()(t,r?.()??{},{direction:c}))}var w={is_global:l,in(){if(t.inert=f,!s){k?.abort(),k?.reset?.();return}a||d?.abort(),d=es(t,g(),k,1,()=>{Qr(t,"introend"),d?.abort(),d=u=void 0,t.style.overflow=v})},out(b){if(!a){b?.(),u=void 0;return}t.inert=!0,k=es(t,g(),d,0,()=>{Qr(t,"outroend"),b?.()})},stop:()=>{d?.abort(),k?.abort()}},y=J;if((y.nodes.t??=[]).push(w),s&&Zr){var $=l;if(!$){for(var m=y.parent;m&&m.f&Rt;)for(;(m=m.parent)&&!(m.f&At););$=!m||(m.f&Gt)!==0}$&&ut(()=>{ge(()=>w.in())})}}function es(e,t,n,r,s){var a=r===1;if(Tn(t)){var i,l=!1;return We(()=>{if(!l){var y=t({direction:a?"in":"out"});i=es(e,y,n,r,s)}}),{abort:()=>{l=!0,i?.abort()},deactivate:()=>i.deactivate(),reset:()=>i.reset(),t:()=>i.t()}}if(n?.deactivate(),!t?.duration&&!t?.delay)return Qr(e,a?"introstart":"outrostart"),s(),{abort:at,deactivate:at,reset:at,t:()=>r};const{delay:c=0,css:u,tick:f,easing:v=eh}=t;var d=[];if(a&&n===void 0&&(f&&f(0,1),u)){var k=Wi(u(0,1));d.push(k,k)}var g=()=>1-r,w=e.animate(d,{duration:c,fill:"forwards"});return w.onfinish=()=>{w.cancel(),Qr(e,a?"introstart":"outrostart");var y=n?.t()??1-r;n?.abort();var $=r-y,m=t.duration*Math.abs($),b=[];if(m>0){var I=!1;if(u)for(var L=Math.ceil(m/16.666666666666668),x=0;x<=L;x+=1){var S=y+$*v(x/L),O=Wi(u(S,1-S));b.push(O),I||=O.overflow==="hidden"}I&&(e.style.overflow="hidden"),g=()=>{var P=w.currentTime;return y+$*v(P/m)},f&&Zv(()=>{if(w.playState!=="running")return!1;var P=g();return f(P,1-P),!0})}w=e.animate(b,{duration:m,fill:"forwards"}),w.onfinish=()=>{g=()=>r,f?.(r,1-r),s()}},{abort:()=>{w&&(w.cancel(),w.effect=null,w.onfinish=at)},deactivate:()=>{s=at},reset:()=>{r===0&&f?.(1,0)},t:()=>g()}}function rh(e,t,n,r,s,a){let i=U;U&&Ye();var l=null;U&&X.nodeType===Bo&&(l=X,Ye());var c=U?X:e,u=J,f=new Yn(c,!1);Vt(()=>{const v=t()||null;var d=s?s():n||v==="svg"?br:void 0;if(v===null){f.ensure(null,null),Dn(!0);return}return f.ensure(v,k=>{if(v){if(l=U?l:an(v,d),Ne(l,l),r){U&&mv(v)&&l.append(document.createComment(""));var g=U?we(l):l.appendChild(qe());U&&(g===null?me(!1):de(g)),Yi(u),r(l,g),Yi(null)}J.nodes.end=l,k.before(l)}U&&de(k)}),Dn(!0),()=>{v&&Dn(!1)}},Rt),ft(()=>{Dn(!0)}),i&&(me(!0),de(c))}function sh(e,t){let n=null,r=U;var s;if(U){n=X;for(var a=we(document.head);a!==null&&(a.nodeType!==Xt||a.data!==e);)a=ct(a);if(a===null)me(!1);else{var i=ct(a);a.remove(),de(i)}}U||(s=document.head.appendChild(qe()));try{Vt(()=>t(s),Fo|sn)}finally{r&&(me(!0),de(n))}}function ah(e,t){ut(()=>{var n=e.getRootNode(),r=n.host?n:n.head??n.ownerDocument.head;if(!r.querySelector("#"+t.hash)){const s=an("style");s.id=t.hash,s.textContent=t.code,r.appendChild(s)}})}function oc(e,t,n){ut(()=>{var r=ge(()=>t(e,n?.())||{});if(n&&r?.update){var s=!1,a={};$e(()=>{var i=n();Ka(i),s&&Xo(a,i)&&(a=i,r.update(i))}),s=!0}if(r?.destroy)return()=>r.destroy()})}function Xa(e,t){var n=void 0,r;Pl(()=>{n!==(n=t())&&(r&&(Oe(r),r=null),n&&(r=Ue(()=>{ut(()=>n(e))})))})}const ih=/[&"<]/g;function oh(e,t){const n=String(e??""),r=ih;r.lastIndex=0;let s="",a=0;for(;r.test(n);){const i=r.lastIndex-1,l=n[i];s+=n.substring(a,i)+(l==="&"?"&amp;":l==='"'?"&quot;":"&lt;"),a=i+1}return s+n.substring(a)}function lc(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=lc(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function lh(){for(var e,t,n=0,r="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=lc(e))&&(r&&(r+=" "),r+=t);return r}const Gi={translate:new Map([[!0,"yes"],[!1,"no"]])};function ch(e,t,n=!1){if(e==="hidden"&&t!=="until-found"&&(n=!0),t==null||!t&&n)return"";const r=tf.call(Gi,e)&&Gi[e].get(t)||t,s=n?'=""':`="${oh(r)}"`;return` ${e}${s}`}function cc(e){return typeof e=="object"?lh(e):e??""}const Xi=[...`
6
+ \r\f \v\uFEFF`];function uh(e,t,n){var r=e==null?"":""+e;if(t&&(r=r?r+" "+t:t),n){for(var s of Object.keys(n))if(n[s])r=r?r+" "+s:s;else if(r.length)for(var a=s.length,i=0;(i=r.indexOf(s,i))>=0;){var l=i+a;(i===0||Xi.includes(r[i-1]))&&(l===r.length||Xi.includes(r[l]))?r=(i===0?"":r.substring(0,i))+r.substring(l+1):i=l}}return r===""?null:r}function Ji(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 Bs(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function fh(e,t){if(t){var n="",r,s;if(Array.isArray(t)?(r=t[0],s=t[1]):r=t,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var a=!1,i=0,l=!1,c=[];r&&c.push(...Object.keys(r).map(Bs)),s&&c.push(...Object.keys(s).map(Bs));var u=0,f=-1;const w=e.length;for(var v=0;v<w;v++){var d=e[v];if(l?d==="/"&&e[v-1]==="*"&&(l=!1):a?a===d&&(a=!1):d==="/"&&e[v+1]==="*"?l=!0:d==='"'||d==="'"?a=d:d==="("?i++:d===")"&&i--,!l&&a===!1&&i===0){if(d===":"&&f===-1)f=v;else if(d===";"||v===w-1){if(f!==-1){var k=Bs(e.substring(u,f).trim());if(!c.includes(k)){d!==";"&&v++;var g=e.substring(u,v).trim();n+=" "+g+";"}}u=v+1,f=-1}}}}return r&&(n+=Ji(r)),s&&(n+=Ji(s,!0)),n=n.trim(),n===""?null:n}return e==null?null:String(e)}function Pe(e,t,n,r,s,a){var i=e.__className;if(U||i!==n||i===void 0){var l=uh(n,r,a);(!U||l!==e.getAttribute("class"))&&(l==null?e.removeAttribute("class"):t?e.className=l:e.setAttribute("class",l)),e.__className=n}else if(a&&s!==a)for(var c in a){var u=!!a[c];(s==null||u!==!!s[c])&&e.classList.toggle(c,u)}return a}function Hs(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 Ft(e,t,n,r){var s=e.__style;if(U||s!==t){var a=fh(t,r);(!U||a!==e.getAttribute("style"))&&(a==null?e.removeAttribute("style"):e.style.cssText=a),e.__style=t}else r&&(Array.isArray(r)?(Hs(e,n?.[0],r[0]),Hs(e,n?.[1],r[1],"important")):Hs(e,n,r));return r}function vr(e,t,n=!1){if(e.multiple){if(t==null)return;if(!Hn(t))return qf();for(var r of e.options)r.selected=t.includes(lr(r));return}for(r of e.options){var s=lr(r);if(Sl(s,t)){r.selected=!0;return}}(!n||t!==void 0)&&(e.selectedIndex=-1)}function Ja(e){var t=new MutationObserver(()=>{vr(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),ft(()=>{t.disconnect()})}function ts(e,t,n=t){var r=new WeakSet,s=!0;Tr(e,"change",a=>{var i=a?"[selected]":":checked",l;if(e.multiple)l=[].map.call(e.querySelectorAll(i),lr);else{var c=e.querySelector(i)??e.querySelector("option:not([disabled])");l=c&&lr(c)}n(l),e.__value=l,ee!==null&&r.add(ee)}),ut(()=>{var a=t();if(e===document.activeElement){var i=ee;if(r.has(i))return}if(vr(e,a,s),s&&a===void 0){var l=e.querySelector(":checked");l!==null&&(a=lr(l),n(a))}e.__value=a,s=!1}),Ja(e)}function lr(e){return"__value"in e?e.__value:e.value}const $n=Symbol("class"),Rn=Symbol("style"),uc=Symbol("is custom element"),fc=Symbol("is html"),dh=En?"link":"LINK",vh=En?"input":"INPUT",hh=En?"option":"OPTION",ph=En?"select":"SELECT",mh=En?"progress":"PROGRESS";function ke(e){if(U){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute("value")){var r=e.value;Ee(e,"value",null),e.value=r}if(e.hasAttribute("checked")){var s=e.checked;Ee(e,"checked",null),e.checked=s}}};e.__on_r=n,We(n),$l()}}function gh(e,t){var n=bs(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==mh)||(e.value=t??"")}function _h(e,t){var n=bs(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function dc(e,t){t?e.hasAttribute("selected")||e.setAttribute("selected",""):e.removeAttribute("selected")}function yh(e,t){const n=e.checked;e.defaultChecked=t,e.checked=n}function bh(e,t){const n=e.value;e.defaultValue=t,e.value=n}function Ee(e,t,n,r){var s=bs(e);U&&(s[t]=e.getAttribute(t),t==="src"||t==="srcset"||t==="href"&&e.nodeName===dh)||s[t]!==(s[t]=n)&&(t==="loading"&&(e[af]=n),n==null?e.removeAttribute(t):typeof n!="string"&&Za(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function wh(e,t,n){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n)}function kh(e,t,n){var r=se,s=J;let a=U;U&&me(!1),Qe(null),Fe(null);try{t!=="style"&&(ma.has(e.getAttribute("is")||e.nodeName)||!customElements||customElements.get(e.getAttribute("is")||e.nodeName.toLowerCase())?Za(e).includes(t):n&&typeof n=="object")?e[t]=n:Ee(e,t,n==null?n:String(n))}finally{Qe(r),Fe(s),a&&me(!0)}}function Sh(e,t,n,r,s=!1,a=!1){if(U&&s&&e.nodeName===vh){var i=e,l=i.type==="checkbox"?"defaultChecked":"defaultValue";l in n||ke(i)}var c=bs(e),u=c[uc],f=!c[fc];let v=U&&u;v&&me(!1);var d=t||{},k=e.nodeName===hh;for(var g in t)g in n||(n[g]=null);n.class?n.class=cc(n.class):(r||n[$n])&&(n.class=null),n[Rn]&&(n.style??=null);var w=Za(e);for(const x in n){let S=n[x];if(k&&x==="value"&&S==null){e.value=e.__value="",d[x]=S;continue}if(x==="class"){var y=e.namespaceURI==="http://www.w3.org/1999/xhtml";Pe(e,y,S,r,t?.[$n],n[$n]),d[x]=S,d[$n]=n[$n];continue}if(x==="style"){Ft(e,S,t?.[Rn],n[Rn]),d[x]=S,d[Rn]=n[Rn];continue}var $=d[x];if(!(S===$&&!(S===void 0&&e.hasAttribute(x)))){d[x]=S;var m=x[0]+x[1];if(m!=="$$")if(m==="on"){const O={},P="$$"+x;let M=x.slice(2);var b=uv(M);if(lv(M)&&(M=M.slice(0,-7),O.capture=!0),!b&&$){if(S!=null)continue;e.removeEventListener(M,d[P],O),d[P]=null}if(b)K(M,e,S),pe([M]);else if(S!=null){let A=function(D){d[x].call(this,D)};d[P]=Kl(M,e,A,O)}}else if(x==="style")Ee(e,x,S);else if(x==="autofocus")za(e,!!S);else if(!u&&(x==="__value"||x==="value"&&S!=null))e.value=e.__value=S;else if(x==="selected"&&k)dc(e,S);else{var I=x;f||(I=dv(I));var L=I==="defaultValue"||I==="defaultChecked";if(S==null&&!u&&!L)if(c[x]=null,I==="value"||I==="checked"){let O=e;const P=t===void 0;if(I==="value"){let M=O.defaultValue;O.removeAttribute(I),O.defaultValue=M,O.value=O.__value=P?M:null}else{let M=O.defaultChecked;O.removeAttribute(I),O.defaultChecked=M,O.checked=P?M:!1}}else e.removeAttribute(x);else L||w.includes(I)&&(u||typeof S!="string")?(e[I]=S,I in c&&(c[I]=be)):typeof S!="function"&&Ee(e,I,S)}}}return v&&me(!0),d}function Eh(e,t,n=[],r=[],s=[],a,i=!1,l=!1){Er(s,n,r,c=>{var u=void 0,f={},v=e.nodeName===ph,d=!1;if(Pl(()=>{var g=t(...c.map(o)),w=Sh(e,u,g,a,i,l);d&&v&&"value"in g&&vr(e,g.value);for(let $ of Object.getOwnPropertySymbols(f))g[$]||Oe(f[$]);for(let $ of Object.getOwnPropertySymbols(g)){var y=g[$];$.description===No&&(!u||y!==u[$])&&(f[$]&&Oe(f[$]),f[$]=Ue(()=>Xa(e,()=>y))),w[$]=y}u=w}),v){var k=e;ut(()=>{vr(k,u.value,!0),Ja(k)})}d=!0})}function bs(e){return e.__attributes??={[uc]:e.nodeName.includes("-"),[fc]:e.namespaceURI===Oo}}var ma=new Map;function Za(e){var t=e.getAttribute("is")||e.nodeName,n=ma.get(t);if(n)return n;ma.set(t,n=[]);for(var r,s=e,a=Element.prototype;a!==s;){r=jo(s);for(var i in r)r[i].set&&n.push(i);s=vs(s)}return n}let Ks=null;function vc(){if(Ks===null){var e=an("select");e.innerHTML=Wl("<option><span>t</span></option>"),Ks=e.firstChild?.firstChild?.nodeType===1}return Ks}function xh(e,t){vc()&&Xa(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 Ah(e,t){var n=U;vc()||(me(!1),e.textContent="",e.append(Il("")));try{t()}finally{n&&(U?h(e):(me(!0),de(e)))}}function Th(e){tt(document,["focusin","focusout"],t=>{t&&t.type==="focusout"&&t.relatedTarget||e(document.activeElement)})}function De(e,t,n=t){var r=new WeakSet;Tr(e,"input",async s=>{var a=s?e.defaultValue:e.value;if(a=Ys(e)?Gs(a):a,n(a),ee!==null&&r.add(ee),await Ha(),a!==(a=t())){var i=e.selectionStart,l=e.selectionEnd,c=e.value.length;if(e.value=a??"",l!==null){var u=e.value.length;i===l&&l===c&&u>c?(e.selectionStart=u,e.selectionEnd=u):(e.selectionStart=i,e.selectionEnd=Math.min(l,u))}}}),(U&&e.defaultValue!==e.value||ge(t)==null&&e.value)&&(n(Ys(e)?Gs(e.value):e.value),ee!==null&&r.add(ee)),$e(()=>{var s=t();if(e===document.activeElement){var a=ee;if(r.has(a))return}Ys(e)&&s===Gs(e.value)||e.type==="date"&&!s&&!e.value||s!==e.value&&(e.value=s??"")})}const Ws=new Set;function Ih(e,t,n,r,s=r){var a=n.getAttribute("type")==="checkbox",i=e;let l=!1;if(t!==null)for(var c of t)i=i[c]??=[];i.push(n),Tr(n,"change",()=>{var u=n.__value;a&&(u=Zi(i,u,n.checked)),s(u)},()=>s(a?[]:null)),$e(()=>{var u=r();if(U&&n.defaultChecked!==n.checked){l=!0;return}a?(u=u||[],n.checked=u.includes(n.__value)):n.checked=Sl(n.__value,u)}),ft(()=>{var u=i.indexOf(n);u!==-1&&i.splice(u,1)}),Ws.has(i)||(Ws.add(i),We(()=>{i.sort((u,f)=>u.compareDocumentPosition(f)===4?-1:1),Ws.delete(i)})),We(()=>{if(l){var u;if(a)u=Zi(i,u,n.checked);else{var f=i.find(v=>v.checked);u=f?.__value}s(u)}})}function Fr(e,t,n=t){Tr(e,"change",r=>{var s=r?e.defaultChecked:e.checked;n(s)}),(U&&e.defaultChecked!==e.checked||ge(t)==null)&&n(e.checked),$e(()=>{var r=t();e.checked=!!r})}function Zi(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 Ys(e){var t=e.type;return t==="number"||t==="range"}function Gs(e){return e===""?null:+e}function $h(e,t,n=t){Tr(e,"change",()=>{n(e.files)}),U&&e.files&&n(e.files),$e(()=>{e.files=t()})}function Qa(e){for(var t=[],n=0;n<e.length;n+=1)t.push({start:e.start(n),end:e.end(n)});return t}function Rh(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),$e(()=>{var i=Number(t());s!==i&&!isNaN(i)&&(e.currentTime=s=i)}),ft(()=>{cancelAnimationFrame(r),e.removeEventListener("timeupdate",a)})}function Ch(e,t){var n;tt(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=Qa(r),t(n))})}function Dh(e,t){tt(e,["loadedmetadata"],()=>t(Qa(e.seekable)))}function Ph(e,t){tt(e,["timeupdate"],()=>t(Qa(e.played)))}function Lh(e,t){tt(e,["seeking","seeked"],()=>t(e.seeking))}function Oh(e,t){tt(e,["timeupdate","ended"],()=>t(e.ended))}function Nh(e,t){tt(e,["loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","emptied"],()=>t(e.readyState))}function Mh(e,t,n=t){ut(()=>{var r=Number(t());r!==e.playbackRate&&!isNaN(r)&&(e.playbackRate=r)}),ut(()=>{tt(e,["ratechange"],()=>{n(e.playbackRate)})})}function jh(e,t,n=t){var r=t(),s=()=>{r!==e.paused&&n(r=e.paused)};tt(e,["play","pause","canplay"],s,r==null),ut(()=>{(r=!!t())!==e.paused&&(r?e.pause():e.play().catch(a=>{throw n(r=!0),a}))})}function zh(e,t,n=t){var r=()=>{n(e.volume)};t()==null&&r(),tt(e,["volumechange"],r,!1),$e(()=>{var s=Number(t());s!==e.volume&&!isNaN(s)&&(e.volume=s)})}function qh(e,t,n=t){var r=()=>{n(e.muted)};t()==null&&r(),tt(e,["volumechange"],r,!1),$e(()=>{var s=!!t();e.muted!==s&&(e.muted=s)})}function Vh(e){tt(window,["online","offline"],()=>{e(navigator.onLine)})}function Fh(e,t,n){var r=xt(e,t);r&&r.set&&(e[t]=n,ft(()=>{e[t]=null}))}class Rr{#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){Rr.entries.set(n.target,n);for(var r of this.#e.get(n.target)||[])r(n)}}))}}var Uh=new Rr({box:"content-box"}),hc=new Rr({box:"border-box"}),Bh=new Rr({box:"device-pixel-content-box"});function Hh(e,t,n){var r=t==="contentRect"||t==="contentBoxSize"?Uh:t==="borderBoxSize"?hc:Bh,s=r.observe(e,a=>n(a[t]));ft(s)}function Kh(e,t,n){var r=hc.observe(e,()=>n(e[t]));ut(()=>(ge(()=>n(e[t])),r))}function Qi(e,t){return e===t||e?.[Ve]===t}function wt(e={},t,n,r){var s=ue.r,a=J;return ut(()=>{var i,l;return $e(()=>{i=l,l=r?.()||[],ge(()=>{e!==n(...l)&&(t(e,...l),i&&Qi(n(...i),e)&&t(null,...i))})}),()=>{let c=a;for(;c!==s&&c.parent!==null&&c.parent.f&ra;)c=c.parent;const u=()=>{l&&Qi(n(...l),e)&&t(null,...l)},f=c.teardown;c.teardown=()=>{u(),f?.()}}}),e}function Wh(e,t,n,r=n){t.addEventListener("input",()=>{r(t[e])}),$e(()=>{var s=n();if(t[e]!==s)if(s==null){var a=t[e];r(a)}else t[e]=s+""})}function Yh(e,t,n,r,s){var a=()=>{r(n[e])};n.addEventListener(t,a),s?$e(()=>{n[e]=s()}):a(),(n===document.body||n===window||n===document)&&ft(()=>{n.removeEventListener(t,a)})}function Gh(e,t){tt(e,["focus","blur"],()=>{t(e===document.activeElement)})}function Xh(e,t,n=t){var r=e==="x",s=()=>on(()=>{a=!0,clearTimeout(i),i=setTimeout(l,100),n(window[r?"scrollX":"scrollY"])});addEventListener("scroll",s,{passive:!0});var a=!1,i,l=()=>{a=!1},c=!0;$e(()=>{var u=t();c?c=!1:!a&&u!=null&&(a=!0,clearTimeout(i),r?scrollTo(u,window.scrollY):scrollTo(window.scrollX,u),i=setTimeout(l,100))}),ut(s),ft(()=>{removeEventListener("scroll",s)})}function Jh(e,t){tt(window,["resize"],()=>on(()=>t(window[e])))}function Zh(e){return function(...t){var n=t[0];n.isTrusted&&e?.apply(this,t)}}function Qh(e){return function(...t){var n=t[0];n.target===this&&e?.apply(this,t)}}function ep(e){return function(...t){var n=t[0];return n.stopPropagation(),e?.apply(this,t)}}function tp(e){var t=!1;return function(...n){if(!t)return t=!0,e?.apply(this,n)}}function np(e){return function(...t){var n=t[0];return n.stopImmediatePropagation(),e?.apply(this,t)}}function rp(e){return function(...t){var n=t[0];return n.preventDefault(),e?.apply(this,t)}}function sp(e=!1){const t=ue,n=t.l.u;if(!n)return;let r=()=>Ka(t.s);if(e){let s=0,a={};const i=Ar(()=>{let l=!1;const c=t.s;for(const u in c)c[u]!==a[u]&&(a[u]=c[u],l=!0);return l&&s++,s});r=()=>o(i)}n.b.length&&Cl(()=>{eo(t,r),ta(n.b)}),Le(()=>{const s=ge(()=>n.m.map(nf));return()=>{for(const a of s)typeof a=="function"&&a()}}),n.a.length&&Le(()=>{eo(t,r),ta(n.a)})}function eo(e,t){if(e.l.s)for(const n of e.l.s)o(n);t()}function ap(e){var t=lt(0);return function(){return arguments.length===1?(_(t,o(t)+1),arguments[0]):(o(t),e())}}function ip(e,t){var n=e.$$events?.[t.type],r=Hn(n)?n.slice():n==null?[]:[n];for(var s of r)s.call(this,t)}function op(e,t,n){e.$$events||={},e.$$events[t]||=[],e.$$events[t].push(n)}function lp(e){for(var t in e)t in this&&(this[t]=e[t])}function cp(e,t=1){const n=e();return e(n+t),n}function up(e,t=1){const n=e()+t;return e(n),n}const fp={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 dp(e,t,n){return new Proxy({props:e,exclude:t},fp)}const vp={get(e,t){if(!e.exclude.includes(t))return o(e.version),t in e.special?e.special[t]():e.props[t]},set(e,t,n){if(!(t in e.special)){var r=J;try{Fe(e.parent_effect),e.special[t]=kn({get[t](){return e.props[t]}},t,Po)}finally{Fe(r)}}return e.special[t](n),zn(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),zn(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 hp(e,t){return new Proxy({props:e,exclude:t,special:{},version:lt(0),parent_effect:J},vp)}const pp={get(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(Tn(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];Tn(s)&&(s=s());const a=xt(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(Tn(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r){const s=xt(r,t);return s&&!s.configurable&&(s.configurable=!0),s}}},has(e,t){if(t===Ve||t===hs)return!1;for(let n of e.props)if(Tn(n)&&(n=n()),n!=null&&t in n)return!0;return!1},ownKeys(e){const t=[];for(let n of e.props)if(Tn(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 Cr(...e){return new Proxy({props:e},pp)}function kn(e,t,n,r){var s=(n&Ku)!==0,a=(n&Wu)!==0,i=r,l=!0,c=()=>(l&&(l=!1,i=a?ge(r):r),i);let u;if(s){var f=Ve in e||hs in e;u=xt(e,t)?.set??(f&&t in e?m=>e[t]=m:void 0)}var v,d=!1;s?[v,d]=ul(()=>e[t]):v=e[t],v===void 0&&r!==void 0&&(v=c(),u&&(Tf(),u(v)));var k;if(k=()=>{var m=e[t];return m===void 0?c():(l=!0,m)},!(n&Po))return k;if(u){var g=e.$$legacy;return function(m,b){return arguments.length>0?((!b||g||d)&&u(b?k():m),m):k()}}var w=!1,y=(n&Hu?Ar:Oa)(()=>(w=!1,k()));s&&o(y);var $=J;return function(m,b){if(arguments.length>0){const I=b?o(y):s?fe(m):m;return _(y,I),w=!0,i!==void 0&&(i=I),m}return Yt&&w||$.f&Ze?y.v:o(y)}}function mp(e,t,n,r,s,a){ml(t,()=>{var i=!1;Ca?.[st],$e(()=>{if(!i){var[l,c]=ul(n);if(!c){var u=r(),f=!1,v=$e(()=>{f||l[u]});f=!0,v.deps===null&&(Pf(),i=!0)}}})})}function gp(e){return new _p(e)}class _p{#e;#t;constructor(t){var n=new Map,r=(a,i)=>{var l=_s(i,!1,!1);return n.set(a,l),l};const s=new Proxy({...t.props||{},$$events:{}},{get(a,i){return o(n.get(i)??r(i,Reflect.get(a,i)))},has(a,i){return i===hs?!0:(o(n.get(i)??r(i,Reflect.get(a,i))),Reflect.has(a,i))},set(a,i,l){return _(n.get(i)??r(i,l),l),Reflect.set(a,i,l)}});this.#t=(t.hydrate?Jl:ze)(t.component,{target:t.target,anchor:t.anchor,props:s,context:t.context,intro:t.intro??!1,recover:t.recover,transformError:t.transformError}),(!t?.props?.$$host||t.sync===!1)&&nn(),this.#e=s.$$events;for(const a of Object.keys(this.#t))a==="$set"||a==="$destroy"||a==="$on"||pn(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=()=>{He(this.#t)}}$set(t){this.#t.$set(t)}$on(t,n){this.#e[t]=this.#e[t]||[];const r=(...s)=>n.call(this,...s);return this.#e[t].push(r),()=>{this.#e[t]=this.#e[t].filter(s=>s!==r)}}$destroy(){this.#t.$destroy()}}let pc;typeof HTMLElement=="function"&&(pc=class extends HTMLElement{$$ctor;$$s;$$c;$$cn=!1;$$d={};$$r=!1;$$p_d={};$$l={};$$l_u=new Map;$$me;$$shadowRoot=null;constructor(e,t,n){super(),this.$$ctor=e,this.$$s=t,n&&(this.$$shadowRoot=this.attachShadow(n))}addEventListener(e,t,n){if(this.$$l[e]=this.$$l[e]||[],this.$$l[e].push(t),this.$$c){const r=this.$$c.$on(e,t);this.$$l_u.set(t,r)}super.addEventListener(e,t,n)}removeEventListener(e,t,n){if(super.removeEventListener(e,t,n),this.$$c){const r=this.$$l_u.get(t);r&&(r(),this.$$l_u.delete(t))}}async connectedCallback(){if(this.$$cn=!0,!this.$$c){let e=function(r){return s=>{const a=an("slot");r!=="default"&&(a.name=r),T(s,a)}};if(await Promise.resolve(),!this.$$cn||this.$$c)return;const t={},n=yp(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]=Ur(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=gp({component:this.$$ctor,target:this.$$shadowRoot||this,props:{...this.$$d,$$slots:t,$$host:this}}),this.$$me=Va(()=>{$e(()=>{this.$$r=!0;for(const r of Wr(this.$$c)){if(!this.$$p_d[r]?.reflect)continue;this.$$d[r]=this.$$c[r];const s=Ur(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]=Ur(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 Wr(this.$$p_d).find(t=>this.$$p_d[t].attribute===e||!this.$$p_d[t].attribute&&t.toLowerCase()===e)||e}});function Ur(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 yp(e){const t={};return e.childNodes.forEach(n=>{t[n.slot||"default"]=!0}),t}function bp(e,t,n,r,s,a){let i=class extends pc{constructor(){super(e,n,s),this.$$p_d=t}static get observedAttributes(){return Wr(t).map(l=>(t[l].attribute||l).toLowerCase())}};return Wr(t).forEach(l=>{pn(i.prototype,l,{get(){return this.$$c&&l in this.$$c?this.$$c[l]:this.$$d[l]},set(c){c=Ur(l,c,t),this.$$d[l]=c;var u=this.$$c;if(u){var f=xt(u,l)?.get;f?u[l]=c:u.$set({[l]:c})}}})}),r.forEach(l=>{pn(i.prototype,l,{get(){return this.$$c?.[l]}})}),a&&(i=a(i)),e.element=i,i}function wp(e,...t){return ge(()=>{try{let n=!1;const r=[];for(const s of t)s&&typeof s=="object"&&Ve in s?(r.push(yn(s,!0)),n=!0):r.push(s);n&&(Lf(e),console.log("%c[snapshot]","color: grey",...r))}catch{}}),t}const mc=Object.freeze(Object.defineProperty({__proto__:null,CLASS:$n,FILENAME:st,HMR:An,NAMESPACE_SVG:br,STYLE:Rn,aborted:fa,action:oc,get active_effect(){return J},add_legacy_event_listener:op,add_locations:Cv,add_svelte_meta:Jf,animation:th,append:T,append_styles:ah,apply:Xd,assign:Iv,assign_async:$v,async:jv,async_derived:gl,attach:Xa,attachment:Tv,attr:ch,attribute_effect:Eh,autofocus:za,await:Vv,bind_active_element:Th,bind_buffered:Ch,bind_checked:Fr,bind_content_editable:Wh,bind_current_time:Rh,bind_element_size:Kh,bind_ended:Oh,bind_files:$h,bind_focused:Gh,bind_group:Ih,bind_muted:qh,bind_online:Vh,bind_paused:jh,bind_playback_rate:Mh,bind_played:Ph,bind_prop:Fh,bind_property:Yh,bind_ready_state:Nh,bind_resize_observer:Hh,bind_seekable:Dh,bind_seeking:Lh,bind_select_value:ts,bind_this:wt,bind_value:De,bind_volume:zh,bind_window_scroll:Xh,bind_window_size:Jh,boundary:pl,bubble_event:ip,check_target:Ov,child:p,cleanup_styles:Rv,clsx:cc,comment:pt,component:$r,create_custom_element:bp,create_ownership_validator:Lv,css_props:Bv,customizable_select:Ah,deep_read:Jr,deep_read_state:Ka,deferred_template_effect:qd,delegate:pe,delegated:K,derived:W,derived_safe_equal:Oa,get document(){return El},each:_e,eager:pd,effect:ut,effect_root:Va,effect_tracking:Ir,element:rh,equals:Cd,event:et,exclude_from_object:sf,fallback:rf,first_child:ye,flush:nn,for_await_track_reactivity_loss:kd,from_html:R,from_mathml:tv,from_svg:ev,from_tree:nv,get:o,head:sh,hmr:Pv,html:Yv,hydrate_template:Ff,if:B,index:Vn,init:sp,init_select:Ja,inspect:Mv,invalid_default_snippet:cf,invalidate_inner_signals:Ud,invalidate_store:id,invoke_error_boundary:Mt,key:Uv,legacy_api:Nv,legacy_pre_effect:Md,legacy_pre_effect_reset:jd,legacy_rest_props:hp,log_if_contains_state:wp,mark_store_binding:fd,mutable_source:_s,mutate:Id,next:Kt,noop:at,once:tp,pending:bd,pop:re,preventDefault:rp,prevent_snippet_stringification:Ql,prop:kn,props_id:av,proxy:fe,push:ne,raf:Ot,reactive_import:ap,remove_input_defaults:ke,remove_textarea_child:Ld,render_effect:$e,replay_events:Gd,reset:h,rest_props:dp,run:Sd,run_after_blockers:ml,safe_get:Wd,sanitize_slots:Xv,save:wd,select_option:vr,selectedcontent:xh,self:Qh,set:_,set_attribute:Ee,set_checked:_h,set_class:Pe,set_custom_element_data:kh,set_default_checked:yh,set_default_value:bh,set_selected:dc,set_style:Ft,set_text:j,set_value:gh,set_xlink_attribute:wh,setup_stores:od,sibling:E,slot:Gv,snapshot:yn,snippet:Ya,spread_props:Cr,state:q,stopImmediatePropagation:np,stopPropagation:ep,store_get:sd,store_mutate:ld,store_set:cl,store_unsub:ad,strict_equals:Rd,tag:Yf,tag_proxy:Qo,template_effect:V,text:On,tick:Ha,to_array:Vo,trace:Wf,track_reactivity_loss:la,transition:nh,trusted:Zh,untrack:ge,update:zn,update_legacy_props:lp,update_pre:$d,update_pre_prop:up,update_pre_store:ud,update_prop:cp,update_store:cd,user_effect:Le,user_pre_effect:Cl,validate_binding:mp,validate_dynamic_element_tag:_v,validate_snippet_args:zv,validate_store:yv,validate_void_dynamic_element:gv,wait:Ed,get window(){return ca},with_script:rv,wrap_snippet:bv},Symbol.toStringTag,{value:"Module"}));class to{#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 no{#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 kp=["workspace","user"],ei="state:manage",Ct={ephemeral:new to,session:new to,workspace:new no("sh3:workspace:"),user:new no("sh3:user:")},Xs=new Map;let Js=!1;function Sp(e,t,n){Xs.set(`${e}:${t}`,{zone:e,shardId:t,value:n}),!Js&&(Js=!0,queueMicrotask(()=>{Js=!1;for(const{zone:r,shardId:s,value:a}of Xs.values())Ct[r].write(s,a);Xs.clear()}))}function ws(e,t){const n={};for(const r of Object.keys(t)){const s=t[r],i=Ct[r].read(e),l={...s,...i??{}},c=fe(l);n[r]=c,kp.includes(r)&&Va(()=>{let u=!0;Le(()=>{const f=yn(c);if(u){u=!1;return}Sp(r,e,f)})})}return n}function ro(e,t){Ct[e]=t}function Ep(e,t){return Ct[e].read(t)}function ga(e,t){Ct[e].delete(t)}const xp="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(xp);const Ap=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function Tp(e){const t=document.activeElement;function n(){return Array.from(e.querySelectorAll(Ap))}function r(s){if(s.key!=="Tab")return;const a=n();if(a.length===0){s.preventDefault();return}const i=a[0],l=a[a.length-1],c=document.activeElement;s.shiftKey&&(c===i||!e.contains(c))?(s.preventDefault(),l.focus()):!s.shiftKey&&(c===l||!e.contains(c))&&(s.preventDefault(),i.focus())}return e.addEventListener("keydown",r),queueMicrotask(()=>{(n()[0]??e).focus()}),()=>{e.removeEventListener("keydown",r),t&&document.contains(t)&&t.focus()}}var Ip=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 $p(e,t){ne(t,!0);let n;Le(()=>{if(n)return Tp(n)});var r=Ip(),s=p(r),a=p(s);$r(a,()=>t.Content,(i,l)=>{l(i,Cr(()=>t.contentProps,{get close(){return t.close}}))}),h(s),wt(s,i=>n=i,()=>n),h(r),V(()=>Ft(s,t.boxStyle)),T(e,r),re()}const ti={};function Rp(e,t){ti[e]=t}function Cp(e){delete ti[e]}function ks(e){const t=ti[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 ot=[];let ns=!1,vt=null;const Dp=.5;function gc(){const e=ks("modal");if(ot.length===0){vt&&(vt.remove(),vt=null);return}vt||(vt=document.createElement("div"),vt.className="sh3-modal-backdrop",vt.style.position="absolute",vt.style.inset="0",vt.style.pointerEvents="auto",vt.style.transition="background-color 120ms ease",vt.style.background=`rgba(0, 0, 0, ${Dp})`);const t=ot[ot.length-1].host;e.insertBefore(vt,t)}function _c(e){e.key==="Escape"&&ot.length!==0&&(e.stopPropagation(),e.preventDefault(),ot[ot.length-1].handle.close())}function Pp(){ns||(ns=!0,document.addEventListener("keydown",_c,!0))}function Lp(){ot.length>0||ns&&(ns=!1,document.removeEventListener("keydown",_c,!0))}function yc(e){const t=ot.indexOf(e);t<0||(ot.splice(t,1),He(e.frame),e.host.remove(),gc(),Lp())}function Op(e,t,n){const r=ks("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:()=>yc(a)},l=ze($p,{target:s,props:{Content:e,contentProps:t??{},close:i.close,boxStyle:n?.boxStyle}});return a.host=s,a.frame=l,a.handle=i,ot.push(a),gc(),Pp(),i}function Np(){for(;ot.length>0;)yc(ot[ot.length-1])}const Mp={open:Op,closeAll:Np};var jp=R('<div class="popup-frame svelte-mp81cl" role="menu" tabindex="-1"><!></div>');function zp(e,t){ne(t,!0);let n,r=q(-9999),s=q(-9999);Le(()=>{if(!n)return;const l=n.getBoundingClientRect(),c=4,u=window.innerWidth,f=window.innerHeight;let v=t.anchorRect.bottom+c,d=t.anchorRect.left;if(d+l.width>u-c&&(d=Math.max(c,u-l.width-c)),v+l.height>f-c){const k=t.anchorRect.top-l.height-c;v=k>=c?k:Math.max(c,f-l.height-c)}_(r,v,!0),_(s,d,!0)});var a=jp(),i=p(a);$r(i,()=>t.Content,(l,c)=>{c(l,Cr(()=>t.contentProps,{get close(){return t.close}}))}),h(a),wt(a,l=>n=l,()=>n),V(()=>Ft(a,`top: ${o(r)??""}px; left: ${o(s)??""}px;`)),T(e,a),re()}let yt=null;function bc(e){if(!yt)return;const t=e.target;t&&yt.host.contains(t)||yt.handle.close()}function wc(e){yt&&e.key==="Escape"&&(e.stopPropagation(),e.preventDefault(),yt.handle.close())}function qp(){document.addEventListener("pointerdown",bc,!0),document.addEventListener("keydown",wc,!0)}function Vp(){document.removeEventListener("pointerdown",bc,!0),document.removeEventListener("keydown",wc,!0)}function _a(e){yt===e&&(yt=null,Vp(),He(e.frame),e.host.remove())}function Fp(e,t,n){yt&&_a(yt);const r=ks("popup"),s=document.createElement("div");s.className="sh3-popup-host",s.style.position="absolute",s.style.inset="0",s.style.pointerEvents="none",r.appendChild(s);const a=t.anchor.getBoundingClientRect(),i={},l={close:()=>_a(i)},c=ze(zp,{target:s,props:{Content:e,contentProps:n??{},anchorRect:a,close:l.close}});return i.host=s,i.frame=c,i.handle=l,yt=i,queueMicrotask(qp),l}function Up(){yt&&_a(yt)}const Bp={show:Fp,close:Up};var Hp=R('<div role="status" aria-live="polite"><span class="toast-level svelte-12gwnj0"> </span> <span class="toast-message svelte-12gwnj0"> </span></div>');function Kp(e,t){var n=Hp(),r=p(n),s=p(r,!0);h(r);var a=E(r,2),i=p(a,!0);h(a),h(n),V(()=>{Pe(n,1,`toast toast-${t.level??""}`,"svelte-12gwnj0"),j(s,t.level),j(i,t.message)}),K("click",n,function(...l){t.close?.apply(this,l)}),T(e,n)}pe(["click"]);const rs=new Set;let Xe=null;function Wp(){if(Xe&&Xe.isConnected)return Xe;const e=ks("toast");return Xe=document.createElement("div"),Xe.className="sh3-toast-stack",Xe.style.position="absolute",Xe.style.right="16px",Xe.style.bottom="16px",Xe.style.display="flex",Xe.style.flexDirection="column-reverse",Xe.style.gap="6px",Xe.style.pointerEvents="none",e.appendChild(Xe),Xe}function ya(e){rs.has(e)&&(rs.delete(e),e.timer!==null&&(clearTimeout(e.timer),e.timer=null),He(e.instance),e.host.remove())}function Yp(e,t={}){const n=t.level??"info",r=t.duration??3e3,s=Wp(),a=document.createElement("div");a.className="sh3-toast-host",s.appendChild(a);const i={},l={close:()=>ya(i)},c=ze(Kp,{target:a,props:{message:e,level:n,close:l.close}});return i.host=a,i.instance=c,i.handle=l,i.timer=Number.isFinite(r)&&r>0?setTimeout(()=>ya(i),r):null,rs.add(i),l}function Gp(){for(const e of[...rs])ya(e)}const Xp={notify:Yp,clear:Gp},so={w:120,h:80};function kc(e){if(e.type==="slot")return{...so};if(e.type==="tabs")return{...so};const t=e.children.map(kc);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 ao=32,io={x:48,y:48};function Jp(e,t){if(e.length===0)return{...io};const n=e[e.length-1],r={x:n.position.x+ao,y:n.position.y+ao};return r.x+120>t.w||r.y+32>t.h?{...io}:r}let oo=0;function Zp(){return oo+=1,`float-${Date.now().toString(36)}-${oo.toString(36)}`}function Sc(e){return e.type==="slot"?e.viewId==null:e.type==="tabs"?e.tabs.every(t=>t.viewId==null):e.children.every(Sc)}let Qp=[],ni=null,ri=()=>({w:1600,h:900});function em(e,t){ni=e,ri=t}function tm(){ni=null,ri=()=>({w:1600,h:900})}function Ss(){return ni??Qp}let lo=0;function nm(e){return lo+=1,`float:${e}:${lo}`}const rm={w:600,h:400};function sm(e,t){return{w:Math.max(e.w,t.w),h:Math.max(e.h,t.h)}}function am(e,t={}){const n=Ss(),r=Zp(),s=nm(e),a=t.title??e,i={slotId:s,viewId:e,label:a};t.meta&&(i.meta=t.meta);const l={type:"tabs",tabs:[i],activeTab:0},c=kc(l),u=t.size??sm(rm,c),f=t.position??Jp(n,ri()),v={id:r,content:l,position:f,size:u,title:t.title};return n.push(v),r}function im(e){const t=Ss(),n=t.findIndex(r=>r.id===e);n<0||t.splice(n,1)}function om(){return Ss().slice()}function lm(e){const t=Ss(),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:am,close:im,list:om,focus:lm};let ss=null;function cm(e){ss=e}function um(){ss=null}function si(){if(!ss)throw new Error("presetManager: no app attached — bind an AppLayoutBlob first");return ss}function fm(){return Object.keys(si().presets)}function dm(){return si().activePreset}function vm(e){const t=si();if(!(e in t.presets))throw new Error(`presetManager.switch: unknown preset "${e}"`);t.activePreset=e}const hm={list:fm,active:dm,switch:vm},Ec={state:ws,modal:Mp,popup:Bp,toast:Xp,float:Tt,presets:hm},as=new Map,xc=new Set;function pm(e){xc.add(e)}function mm(e,t){if(as.has(e))throw new Error(`View "${e}" is already registered`);as.set(e,t);for(const n of xc)n(e,t)}function Ac(e){return as.get(e)}function gm(e){as.delete(e)}const hr=new Map;function _m(e,t){if(hr.has(e))throw new Error(`Verb "${e}" is already registered`);hr.set(e,t)}function co(e){return hr.get(e)}function ym(e){hr.delete(e)}function ai(){return Array.from(hr.values()).sort((e,t)=>e.name.localeCompare(t.name))}function Or(e,t,n){return`${e}/${t}/${n}`}function bm(e,t){return`${e}/${t}/`}const wm="sh3-documents",Pt="docs",km=2;class Sm{#e=null;#t(){return this.#e||(this.#e=new Promise((t,n)=>{const r=indexedDB.open(wm,km);r.onupgradeneeded=()=>{const s=r.result;s.objectStoreNames.contains(Pt)||s.createObjectStore(Pt)},r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)})),this.#e}async#n(t,n){const r=await this.#t();return new Promise((s,a)=>{const l=r.transaction(Pt,t).objectStore(Pt),c=n(l);c.onsuccess=()=>s(c.result),c.onerror=()=>a(c.error)})}async read(t,n,r){const s=Or(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=Or(t,n,r),i=typeof s=="string"?new Blob([s]).size:s.byteLength,l={content:s,size:i,lastModified:Date.now()};await this.#n("readwrite",c=>c.put(l,a))}async delete(t,n,r){const s=Or(t,n,r);await this.#n("readwrite",a=>a.delete(s))}async list(t,n){const r=bm(t,n),s=await this.#t();return new Promise((a,i)=>{const c=s.transaction(Pt,"readonly").objectStore(Pt),u=IDBKeyRange.bound(r,r+"￿",!1,!1),f=c.openCursor(u),v=[];f.onsuccess=()=>{const d=f.result;if(d){const k=d.value;v.push({path:d.key.slice(r.length),size:k.size,lastModified:k.lastModified}),d.continue()}else a(v)},f.onerror=()=>i(f.error)})}async exists(t,n,r){const s=Or(t,n,r);return await this.#n("readonly",i=>i.getKey(s))!==void 0}async listAllShards(t){const n=`${t}/`,r=await this.#t();return new Promise((s,a)=>{const l=r.transaction(Pt,"readonly").objectStore(Pt),c=IDBKeyRange.bound(n,n+"￿",!1,!1),u=l.openKeyCursor(c),f=new Set;u.onsuccess=()=>{const v=u.result;if(v){const d=v.key.slice(n.length),k=d.indexOf("/");k>=0&&f.add(d.slice(0,k)),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 l=r.transaction(Pt,"readonly").objectStore(Pt),c=IDBKeyRange.bound(n,n+"￿",!1,!1),u=l.openCursor(c),f=[];u.onsuccess=()=>{const v=u.result;if(v){const d=v.key.slice(n.length),k=d.indexOf("/");if(k>=0){const g=v.value;f.push({shardId:d.slice(0,k),path:d.slice(k+1),size:g.size,lastModified:g.lastModified})}v.continue()}else s(f)},u.onerror=()=>a(u.error)})}}class Em{#e;#t;constructor(t,n){this.#e=t.replace(/\/$/,""),this.#t=n}async read(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}`,a=await fetch(s,{credentials:"include"});if(a.status===404)return null;if(!a.ok)throw new Error(`Document read failed: ${a.status}`);return(a.headers.get("content-type")??"").includes("application/octet-stream")?a.arrayBuffer():a.text()}async write(t,n,r,s){const a=`${this.#e}/api/docs/${t}/${n}/${r}`,i={...this.#n(),"Content-Type":typeof s=="string"?"text/plain":"application/octet-stream"},l=await fetch(a,{method:"PUT",headers:i,body:s,credentials:"include"});if(!l.ok)throw new Error(`Document write failed: ${l.status}`)}async delete(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}`,a=await fetch(s,{method:"DELETE",headers:this.#n(),credentials:"include"});if(!a.ok)throw new Error(`Document delete failed: ${a.status}`)}async list(t,n){const r=`${this.#e}/api/docs/${t}/${n}`,s=await fetch(r,{credentials:"include"});if(!s.ok)throw new Error(`Document list failed: ${s.status}`);return s.json()}async exists(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}`;return(await fetch(s,{method:"HEAD",credentials:"include"})).ok}async listAllShards(t){const n=`${this.#e}/api/docs/${t}/_shards`,r=await fetch(n,{credentials:"include"});if(!r.ok)throw new Error(`listAllShards failed: ${r.status}`);return r.json()}async listAllDocuments(t){const n=`${this.#e}/api/docs/${t}/_all`,r=await fetch(n,{credentials:"include"});if(!r.ok)throw new Error(`listAllDocuments failed: ${r.status}`);return r.json()}async readMeta(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}?meta=1`,a=await fetch(s,{credentials:"include"});if(!a.ok)throw new Error(`readMeta failed: ${a.status}`);const i=await a.json();return i.exists?i:null}async resolve(t,n,r,s){const a=`${this.#e}/api/docs/${t}/${n}/${r}/resolve`,i=typeof s=="string"?{choice:s}:{choice:s.origin},l=await fetch(a,{method:"POST",credentials:"include",headers:{...this.#n(),"Content-Type":"application/json"},body:JSON.stringify(i)});if(!l.ok)throw new Error(`resolve failed: ${l.status}`)}#n(){return this.#t?{Authorization:`Bearer ${this.#t}`}:{}}}class xm{#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 ba=new xm,Am=1e3;function Tm(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 l(u,f){ba.emit({type:u,path:f,tenantId:e,shardId:t})}const c={async list(){const u=await n.list(e,t);return!r.extensions||r.extensions.length===0?u:u.filter(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),l(v?"update":"create",u)},async delete(u){await n.delete(e,t,u),l("delete",u)},async exists(u){return n.exists(e,t,u)},async status(u){if(!n.readMeta)throw new Error("Backend does not support status()");return n.readMeta(e,t,u)},async resolveConflict(u,f){if(!n.resolve)throw new Error("Backend does not support resolveConflict()");if(typeof f!="string"&&!(typeof f=="object"&&"origin"in f))throw new Error("choice must be a string or { origin } object");return n.resolve(e,t,u,f)},watch(u){const f=ba.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 Im(c,u,f?.debounceMs??Am);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 c}class Im{#e;#t;#n;#a=null;#s=null;#i=!1;#r=!1;constructor(t,n,r){this.#e=t,this.#t=n,this.#n=r}get dirty(){return this.#i}update(t){this.#r||(this.#a=t,this.#i=!0,this.#o())}async flush(){if(this.#l(),this.#a!==null){const t=this.#a;this.#a=null,this.#i=!1,await this.#e.write(this.#t,t)}}async dispose(){this.#r||(this.#r=!0,await this.flush())}#o(){this.#l(),this.#s=setTimeout(()=>{this.#s=null,this.flush()},this.#n)}#l(){this.#s!==null&&(clearTimeout(this.#s),this.#s=null)}}const $m="local";let Tc=$m,Ic=new Sm;function Zs(){return Tc}function uo(){return Ic}function Qs(e){Tc=e}function Rm(e){Ic=e}const Cm="sync:peer",Dm="sync:policy";let Gn=q(null),zt=q(null),Xn=q(!1),Es="",wa=null;function fo(e,t){Es=e,wa=t.auth,_(Gn,t.user,!0),_(zt,t.session,!0),_(Xn,!t.session&&!t.user,!0)}async function $c(e,t){try{const n=await fetch(`${Es}/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 _(Gn,r.user,!0),_(zt,r.session,!0),_(Xn,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function Pm(e,t,n){try{const r=await fetch(`${Es}/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 _(Gn,s.user,!0),_(zt,s.session,!0),_(Xn,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function Lm(){try{await fetch(`${Es}/api/auth/logout`,{method:"POST",credentials:"include"})}catch{}if(wa?.required&&!wa.guestAllowed){window.location.reload();return}_(Gn,null),_(zt,null),_(Xn,!0)}function Om(){_(Gn,{id:"local",username:"local",displayName:"Local Owner",role:"admin",createdAt:"",updatedAt:""},!0),_(zt,{token:"local",userId:"local",role:"admin",expiresAt:1/0},!0),_(Xn,!1)}function Nm(){return o(zt)?.token==="local"}function Jt(){return o(zt)?.role==="admin"}function Rc(){return o(zt)!==null}function Cc(){return o(Xn)}function xs(){return o(Gn)}function As(){return o(zt)?`Bearer ${o(zt).token}`:null}let Jn="";function Dc(e){Jn=e}async function Mm(e){const t=await fetch(`${Jn}/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 jm(e,t){if(!Jt())throw new Error("Cannot update env state: not elevated to admin");const n=As(),r={"Content-Type":"application/json"};n&&(r.Authorization=n);const s=await fetch(`${Jn}/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 ii(e,t,n){if(!Jt())throw new Error("Cannot install: not elevated to admin");const r=As(),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(`${Jn}/api/packages/install`,{method:"POST",headers:a,body:s});if(!i.ok){let l={};try{l=await i.json()}catch{}return{ok:!1,error:typeof l.error=="string"?l.error:`HTTP ${i.status}`,code:typeof l.code=="string"?l.code:void 0,missing:Array.isArray(l.missing)?l.missing:void 0}}return{ok:!0}}async function Pc(e){if(!Jt())throw new Error("Cannot uninstall: not elevated to admin");const t=As(),n={"Content-Type":"application/json"};t&&(n.Authorization=t);const r=await fetch(`${Jn}/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 zm(){const e=await fetch(`${Jn}/api/packages`);return e.ok?await e.json():[]}function qm(e){return Ct[e].list()}function Vm(e,t){return Ct[e].read(t)}function Fm(e,t){Ct[e].delete(t)}function Um(e){for(const t of Ct[e].list())Ct[e].delete(t)}function Lc(){return{list:qm,peek:Vm,clear:Fm,clearAll:Um}}const Oc="documents:browse";function Bm(e,t){return{listDocuments:()=>t.listAllDocuments(e),listShards:()=>t.listAllShards(e),watchDocuments:n=>ba.subscribe(r=>{r.tenantId===e&&n(r)})}}const Nc="keys:mint";class Mc extends Error{constructor(t){super(`Shard may not mint a key with scope '${t}' — not declared in manifest.`),this.name="ScopeEscalationError"}}class jc extends Error{constructor(){super("User denied key creation."),this.name="ConsentDeniedError"}}const ka=new Map;let cr=null;function zc(e){return cr=e,()=>{cr===e&&(cr=null)}}async function Hm(e,t){if(!cr)throw new Error("No consent listener registered — the shell must mount ConsentDialog.");const n=`c_${Math.random().toString(36).slice(2)}${Date.now()}`;return new Promise(r=>{ka.set(n,{resolve:r}),cr({...t,shardId:e,requestId:n})})}function Sa(e,t){const n=ka.get(e);n&&(ka.delete(e),n.resolve(t))}const is=new Map,Br=new Map,Km=5e3;function Wm(e,t){let n=Br.get(e);n||(n=new Set,Br.set(e,n)),n.add(t),setTimeout(()=>{n.delete(t),n.size===0&&Br.delete(e)},Km)}function Ym(e,t){return Br.get(e)?.has(t)??!1}function oi(e,t){const n=is.get(e)??new Set;return n.add(t),is.set(e,n),()=>{n.delete(t)}}function qc(e,t){if(!e||Ym(e,t))return;Wm(e,t);const n=is.get(e);if(n)for(const s of n)s(t);const r=is.get("*");if(r)for(const s of r)s(t)}function Gm(){if(typeof EventSource>"u")return()=>{};const e=new EventSource("/api/keys/events",{withCredentials:!0});return e.onmessage=t=>{try{const n=JSON.parse(t.data);qc(n.shardId,n.id)}catch{}},()=>e.close()}function Xm(e){const{shardId:t,shardPermissions:n}=e,r=s=>{for(const a of s)if(!n.includes(a)&&!n.includes("admin:*"))throw new Mc(a)};return{async mint(s){if(r(s.scopes),!await Hm(t,s))throw new jc;const i=await fetch("/api/keys/consent",{method:"POST",credentials:"include",headers:{"content-type":"application/json"},body:JSON.stringify({shardId:t,...s})});if(!i.ok)throw new Error(`Consent ticket failed: ${i.status}`);const{ticket:l}=await i.json(),c=await fetch("/api/keys",{method:"POST",credentials:"include",headers:{"content-type":"application/json"},body:JSON.stringify({ticket:l})});if(!c.ok)throw new Error(`Mint failed: ${c.status}`);return c.json()},async list(){const s=await fetch("/api/keys",{credentials:"include"});if(!s.ok)throw new Error(`List failed: ${s.status}`);return(await s.json()).filter(i=>i.mintedByShardId===t)},async revoke(s){const a=await fetch(`/api/keys/${encodeURIComponent(s)}`,{method:"DELETE",credentials:"include"});if(!a.ok&&a.status!==404)throw new Error(`Revoke failed: ${a.status}`);qc(t,s)}}}const qt=fe(new Map),pr=new Map,Dr=fe(new Map);function li(e){const t=e.manifest.id;qt.has(t)&&Dr.has(t)&&Ts(t),qt.set(t,e)}async function Vc(e){const t=qt.get(e);if(!t)throw new Error(`Cannot activate shard "${e}": not registered`);if(pr.has(e))return;const n={shard:t,ctx:void 0,viewIds:new Set,verbNames:new Set,cleanupFns:[]},r=fe({proxy:null,defaults:null}),s={state:a=>Ec.state(e,a),registerView:(a,i)=>{mm(a,i),n.viewIds.add(a)},registerVerb:a=>{const i=e==="shell"?a.name:`${e}:${a.name}`;_m(i,{...a,name:i}),n.verbNames.add(i)},documents:a=>{const i=Tm(Zs(),e,uo(),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=yn(r.proxy);Object.assign(r.proxy,a);try{const l=yn(r.proxy);await jm(e,l)}catch(l){throw Object.assign(r.proxy,i),l}},get isAdmin(){return Jt()},get tenantId(){return Zs()},zones:t.manifest.permissions?.includes(ei)?Lc():void 0,browse:t.manifest.permissions?.includes(Oc)?Bm(Zs(),uo()):void 0,keys:t.manifest.permissions?.includes(Nc)?Xm({shardId:e,shardPermissions:t.manifest.permissions??[]}):void 0};if(n.ctx=s,t.onKeyRevoked){const a=oi(e,async i=>{try{await t.onKeyRevoked(i)}catch(l){console.error(`[sh3] onKeyRevoked failed in "${e}":`,l)}});n.cleanupFns.push(async()=>a())}pr.set(e,n),Dr.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 Mm(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 Ts(e){const t=pr.get(e);if(t){t.shard.deactivate?.();for(const n of t.cleanupFns)n();for(const n of t.verbNames)ym(n);for(const n of t.viewIds)gm(n);pr.delete(e),Dr.delete(e)}}function Jm(e){return pr.get(e)?.ctx}function vo(){const e=[];for(const t of Dr.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 Sn=fe(new Map),St=fe({id:null});function ci(e){Sn.set(e.manifest.id,e)}function ui(){return Array.from(Sn.values()).map(e=>e.manifest)}function Fc(){const e=St.id;return e?Sn.get(e)?.manifest??null:null}function Is(e){return Sn.get(e)}const tn=new Map,Hr=new Set;function Zm(e,t){for(const[n,r]of tn.entries()){if(r.viewId!==e||r.handle!==void 0)continue;const s={slotId:n,viewId:e,label:r.label,meta:r.meta,setDirty(a){$s[n]=a}};queueMicrotask(()=>{if(tn.has(n)&&r.handle===void 0&&(r.handle=t.mount(r.host,s),(r.handle?.closable||n.startsWith("float:"))&&(Rs[n]=!0),r.handle?.onResize)){const a=r.handle.onResize.bind(r.handle);r.resizeObserver=new ResizeObserver(i=>{for(const l of i){const c=l.contentRect;a(Math.round(c.width),Math.round(c.height))}}),r.resizeObserver.observe(r.host)}})}}pm(Zm);const $s=fe({}),Rs=fe({});function Qm(e,t,n,r){const s=document.createElement("div");s.className="slot-host",s.dataset.slotId=e,s.style.position="absolute",s.style.inset="0",s.style.minWidth="0",s.style.minHeight="0";let a=!1;const i={host:s,handle:void 0,viewId:t,label:n,meta:r,refcount:0,resizeObserver:void 0,cancelPendingMount:()=>{a=!0}};return queueMicrotask(()=>{if(a)return;const l=t?Ac(t):void 0,c={slotId:e,viewId:t??"",label:n,meta:r,setDirty(u){$s[e]=u}};if(i.handle=l?.mount(s,c),(i.handle?.closable||e.startsWith("float:"))&&(Rs[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 Uc(e,t,n,r){Hr.delete(e);let s=tn.get(e);return s||(s=Qm(e,t,n,r),tn.set(e,s)),s.refcount++,s.host}function Bc(e){const t=tn.get(e);if(t){if(t.refcount--,t.refcount>0){t.host.remove();return}Hr.add(e),queueMicrotask(()=>{if(!Hr.has(e))return;Hr.delete(e);const n=tn.get(e);!n||n.refcount>0||(n.resizeObserver?.disconnect(),n.handle?.unmount(),n.cancelPendingMount(),n.host.remove(),tn.delete(e),delete $s[e],delete Rs[e])})}}function Hc(e){const t=Ea.get(e);return t||tn.get(e)?.handle}function eg(e){return $s[e]??!1}function tg(e){return Ea.has(e)?!!Ea.get(e).closable:Rs[e]??!1}const Ea=new Map;function Kc(e){if(!e||typeof e!="object")return!1;const t=e.type;return t==="split"||t==="tabs"||t==="slot"}function ng(e){if(!e||typeof e!="object")return!1;const t=e;return Kc(t.docked)&&Array.isArray(t.floats)}function rg(e){return{docked:e,floats:[]}}function sg(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 ag(e){if(Array.isArray(e))return e.map(sg);if(ng(e))return[{name:"default",variants:{default:e}}];if(Kc(e))return[{name:"default",variants:{default:rg(e)}}];throw new Error("normalizeInitialLayout: input is not a LayoutNode, LayoutTree, or LayoutPreset[]")}function ho(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 ig(e){const t=ho(e.docked);for(const n of e.floats)t.push(...ho(n.content));return t}ga("workspace","__shell__");const og={type:"slot",slotId:"sh3core.home",viewId:"sh3core:home"},lg=fe({docked:og,floats:[]});let it=q(null),Cs=q("home");function cg(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 ug(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 fg(e){if(o(it))throw new Error(`Layout manager cannot attach app "${e.manifest.id}": app "${o(it).appId}" is still attached`);const t=`__sh3core__:app:${e.manifest.id}`,n=ag(e.initialLayout);if(n.length===0)throw new Error(`App "${e.manifest.id}" normalized to zero presets`);const r={layoutVersion:e.manifest.layoutVersion,activePreset:n[0].name,presets:Object.fromEntries(n.map(c=>[c.name,{...c.variants}]))},s=Ep("workspace",t),a=cg(s);(a&&a.layoutVersion!==e.manifest.layoutVersion||s&&!a)&&ga("workspace",t);const l=ws(t,{workspace:r}).workspace;_(it,{appId:e.manifest.id,proxy:l,heldSlotIds:[]},!0),cm(l)}function dg(){if(!o(it))throw new Error("acquireAppSlotHolds: no app attached");if(o(it).heldSlotIds.length>0)return;const e=ug(o(it).proxy),t=ig(e);for(const{slotId:n,viewId:r,label:s,meta:a}of t)Uc(n,r,s,a),o(it).heldSlotIds.push(n)}function Wc(){if(o(it)){um();for(const e of o(it).heldSlotIds)Bc(e);_(it,null)}}function Yc(){_(Cs,"home")}function po(){if(!o(it))throw new Error("Cannot switchToApp: no app is attached");_(Cs,"app")}const Kr=W(()=>{if(o(Cs)==="app"&&o(it)){const e=o(it).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 lg});function Ut(){return o(Kr)}function Gc(){return o(Cs)}const Fn={get root(){return o(Kr).docked},get tree(){return o(Kr)},get floats(){return o(Kr).floats}},Xc=ws("__sh3core__:last-app",{user:{id:null}});function vg(){return Xc.user.id}function os(e){Xc.user.id=e}const xa=new Map;function Nr(e){let t=xa.get(e);if(!t){const n=Is(e);t={state:r=>ws(`__app__:${e}`,r),zones:n?.manifest.permissions?.includes(ei)?Lc():void 0},xa.set(e,t)}return t}async function mr(e){const t=Is(e);if(!t)throw new Error(`Cannot launch app "${e}": not registered`);if(St.id&&St.id!==e)Jc(St.id);else if(St.id===e){for(const n of t.manifest.requiredShards){const r=qt.get(n),s=Jm(n);r&&s&&r.resume?.(s)}t.resume?.(Nr(e)),po(),t.onAppReady?.(Nr(e)),os(e);return}for(const n of t.manifest.requiredShards)if(!qt.has(n))throw new Error(`App "${e}" requires shard "${n}" which is not registered`);fg(t);try{for(const n of t.manifest.requiredShards)await Vc(n)}catch(n){throw Wc(),n}dg(),t.activate?.(Nr(e)),St.id=e,po(),t.onAppReady?.(Nr(e)),os(e)}function Jc(e){if(St.id!==e)return;const t=Is(e);if(t){t.deactivate?.(),Yc(),Wc();for(const n of t.manifest.requiredShards){const r=qt.get(n);r&&(r.autostart||Ts(n))}St.id=null,xa.delete(e)}}function fi(e){Sn.has(e)&&(St.id===e&&(Jc(e),os(null)),Sn.delete(e))}async function Zc(){const e=St.id?Is(St.id):null;if(e){for(const t of e.manifest.requiredShards){const n=qt.get(t);if(n?.suspend&&await n.suspend()===!1)return!1}if(e.suspend&&await e.suspend()===!1)return!1}return Yc(),os(null),!0}function Un(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 Ds(e,t){const n=Un(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 hg(e,t,n){const r=Math.max(0,Math.min(n,e.tabs.length));e.tabs.splice(r,0,t),e.activeTab=r}function pg(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 mo(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 mg(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 Qc(e,t,n,r){const s=ls(e,t);if(!s)return;if(t.length===0){const u=mg(s),f=mo(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=mo(s,n,r),i=t.slice(0,-1),l=t[t.length-1],c=ls(e,i);!c||c.type!=="split"||(c.children[l]=a)}function ls(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 Pn(e){let t=!0;for(;t;)t=eu(e,null,0)}function eu(e,t,n){if(e.type==="split"){let r=!1;for(let s=0;s<e.children.length;s++)eu(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 tu(){return{root:Ut(),source:Gc()}}function gg(e){const t=Ut().docked,n=vi(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 _g(e){const t=Ut();return Ls(t.docked,n=>n.slotId===e)?!0:nu(t,n=>n.slotId===e)}function Ps(e){const t=Ut();return Ls(t.docked,n=>n.viewId===e)?!0:nu(t,n=>n.viewId===e)}function Ls(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(Ls(n,t))return!0}return!1}function nu(e,t){for(const n of e.floats)if(Ls(n.content,t))return Tt.focus(n.id),!0;return!1}function yg(e,t){return ru(e,t,!0)}function bg(e,t){return ru(e,t,!1)}function ru(e,t,n){const r=Ut().docked,s=ls(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 di(e){const t=Ut(),n=t.docked;if(!Un(n,e))return wg(t,e);const a=Hc(e)?.closable;return!a||typeof a=="object"&&(!await a.canClose()||!Un(n,e))?!1:(Ds(n,e),Pn(n),!0)}async function wg(e,t){for(const n of e.floats){if(!Un(n.content,t))continue;const a=Hc(t)?.closable;if(typeof a=="object"&&(!await a.canClose()||!Un(n.content,t)))return!1;Ds(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 kg(e){const t=Ut(),n=Un(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 Ds(t.docked,e),Pn(t.docked),Tt.open(s,{title:a,meta:i})}function Sg(e){const n=Ut().floats.find(l=>l.id===e);if(!n)return!1;const r=n.content,s=r.type==="tabs"?r:null;if(!s||s.tabs.length===0)return Tt.close(e),!1;const a=s.tabs[s.activeTab??0]??s.tabs[0],i=hi({slotId:a.slotId,viewId:a.viewId,label:a.label,meta:a.meta});return i&&Tt.close(e),i}function vi(e){if(e.type==="tabs")return e;if(e.type==="split")for(const t of e.children){const n=vi(t);if(n)return n}return null}function su(e,t=[]){if(e.type==="slot")return e.viewId!==null?t:null;if(e.type==="split")for(let n=0;n<e.children.length;n++){const r=su(e.children[n],[...t,n]);if(r)return r}return null}function hi(e){const t=Ut().docked;if(Ps(e.viewId??""))return!0;const n=vi(t);if(n)return n.tabs.push(e),n.activeTab=n.tabs.length-1,!0;const r=su(t);return r?(Qc(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 au(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)=>Eg(r,`$.packages[${s}]`))}}function Eg(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new mt(t,"expected an object");const n=e;kt(n,"id",t),Tg(n,"type",["shard","app","combo"],t),kt(n,"label",t),kt(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,l)=>xg(i,`${t}.versions[${l}]`));return{id:n.id,type:n.type,label:n.label,description:n.description,author:{name:s.name},icon:typeof n.icon=="string"?n.icon:void 0,versions:a}}function xg(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new mt(t,"expected an object");const n=e;kt(n,"version",t),kt(n,"contractVersion",t),kt(n,"bundleUrl",t),kt(n,"integrity",t),"serverBundleUrl"in n&&n.serverBundleUrl!==void 0&&kt(n,"serverBundleUrl",t),"serverIntegrity"in n&&n.serverIntegrity!==void 0&&kt(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)=>Ag(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 Ag(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new mt(t,"expected an object");const n=e;return kt(n,"id",t),kt(n,"versionRange",t),{id:n.id,versionRange:n.versionRange}}function kt(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 Tg(e,t,n,r){if(!n.includes(e[t]))throw new mt(`${r}.${t}`,`expected one of: ${n.join(", ")}`)}const go=["sha256","sha384","sha512"];function Ig(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(!go.includes(n))throw new Error(`Unsupported SRI algorithm: ${n}. Supported: ${go.join(", ")}`);if(!r)throw new Error(`Empty hash in SRI: ${e}`);return{algorithm:n,hash:r}}function $g(e){return`SHA-${e.slice(3)}`}function Rg(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 pi(e,t){const{algorithm:n,hash:r}=Ig(t),s=$g(n),a=await crypto.subtle.digest(s,e),i=Rg(a);if(i!==r)throw new Error(`Integrity check failed for ${n}. Expected: ${r}, got: ${i}`)}async function iu(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=au(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 Os(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 pi(s,e.integrity),s}async function mi(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 pi(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 Ns(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.9.0",gi="sh3:user:__sh3core__:theme";let gr=[];function Cg(e){const t=Object.keys(e);for(const n of gr)t.includes(n)||document.documentElement.style.removeProperty(`--${n}`);for(const[n,r]of Object.entries(e))document.documentElement.style.setProperty(`--${n}`,r);gr=t;try{localStorage.setItem(gi,JSON.stringify(e))}catch{}}function Dg(){for(const e of gr)document.documentElement.style.removeProperty(`--${e}`);gr=[];try{localStorage.removeItem(gi)}catch{}}function ou(){try{const e=localStorage.getItem(gi);if(!e)return{};const t=JSON.parse(e);return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{}}catch{return{}}}function Pg(){const e=ou();if(Object.keys(e).length!==0){for(const[t,n]of Object.entries(e))document.documentElement.style.setProperty(`--${t}`,n);gr=Object.keys(e)}}const Lg={hotInstall:typeof Blob<"u"&&typeof URL.createObjectURL=="function"},lu=["__sh3core__","shell","sh3-store","sh3-admin"],cu=Object.freeze(Object.defineProperty({__proto__:null,ConsentDeniedError:jc,FRAMEWORK_SHARD_IDS:lu,PERMISSION_DOCUMENTS_BROWSE:Oc,PERMISSION_KEYS_MINT:Nc,PERMISSION_STATE_MANAGE:ei,PERMISSION_SYNC_PEER:Cm,PERMISSION_SYNC_POLICY:Dm,ScopeEscalationError:Mc,VERSION:Zt,activeShards:Dr,buildPackageMeta:Ns,capabilities:Lg,clearTokenOverrides:Dg,closeTab:di,collapseChild:yg,dockIntoActiveLayout:hi,expandChild:bg,fetchBundle:Os,fetchRegistries:iu,focusTab:_g,focusView:Ps,getActiveApp:Fc,getAuthHeader:As,getTokenOverrides:ou,getUser:xs,inspectActiveLayout:tu,isAdmin:Jt,isAuthenticated:Rc,isGuest:Cc,launchApp:mr,listRegisteredApps:ui,listVerbs:ai,registerConsentListener:zc,registeredShards:qt,resolveConsent:Sa,returnToHome:Zc,setTokenOverrides:Cg,shell:Ec,spliceIntoActiveLayout:gg,subscribeKeyRevocation:oi,unregisterApp:fi,validateRegistryIndex:au},Symbol.toStringTag,{value:"Module"})),Og="/assets/SH3-BG5NVpSD.png",Ng="https://cdn.jsdelivr.net/npm/p5@1.11.13/lib/p5.min.js";let nr=null;function Mg(){return nr||(nr=new Promise((e,t)=>{const n=window.p5;if(n){e(n);return}const r=document.createElement("script");r.src=Ng,r.async=!0,r.onload=()=>e(window.p5),r.onerror=s=>{nr=null,t(s)},document.head.appendChild(r)}),nr)}var jg=R('<h1 class="shell-title-fallback svelte-1ifjvh5">SH3</h1>'),zg=R('<div class="shell-title svelte-1ifjvh5"></div>');function qg(e,t){ne(t,!0);const n="`.-':;,^\"~=+<>*?!/\\|()[]{}x1ltzrcvunsXYUJCLQ0OZmwqpdbkhao*#MW&8%B@$",r=64,s=Math.floor(64/(442/193)),a=8,i=7,l=80,c=r*a,u=s*i,f=l/u;let v=q(void 0),d=null,k=q(!1);const g=()=>b=>{const L=getComputedStyle(document.documentElement).getPropertyValue("--shell-accent").trim();let x,S,O=!1;b.setup=()=>{b.createCanvas(c,u),b.noSmooth(),b.noStroke(),b.textAlign(b.CENTER,b.CENTER),b.textFont("monospace"),b.textSize(10),b.textStyle(b.BOLD),S=b.loadImage(Og,()=>{x=b.createGraphics(r,s),x.pixelDensity(1),x.image(S,0,0,r,s),x.loadPixels(),O=!0},()=>{_(k,!0)})},b.draw=()=>{if(!O)return;const P=b.millis()*.001;let M;b.clear(),b.background(0,0),b.fill(L);for(let A=0;A<s;A++)for(let D=0;D<r;D++){const F=(A*r+D)*4;if(x.pixels[F]<64){if(M=b.noise(D/r*2,A/s*2,P*.15),M>.33)continue;b.text(n[Math.floor(M*n.length*.25)],(D+.5)*a,(A+.5)*i);continue}M=b.noise(D/r*4,A/s*4,P*.5),b.text(n[Math.floor(M*n.length)],(D+.5)*a,(A+.5)*i)}}};Le(()=>{if(o(k))return;let b=!1;return Mg().then(I=>{if(!(b||!o(v)))try{d=new I(g(),o(v))}catch(L){console.error("[ShellTitle] p5 sketch failed to start",L),_(k,!0)}}).catch(I=>{console.error("[ShellTitle] failed to load p5 from CDN",I),_(k,!0)}),()=>{b=!0,d&&(d.remove(),d=null)}});var w=pt(),y=ye(w);{var $=b=>{var I=jg();T(b,I)},m=b=>{var I=zg();Ft(I,"",{},{width:"216.7195767195767px",height:"80px","--shell-title-scale":f}),wt(I,L=>_(v,L),()=>o(v)),T(b,I)};B(y,b=>{o(k)?b($):b(m,-1)})}T(e,w),re()}var Vg=R('<button type="button" class="shell-home-card svelte-cpn2x2"><div class="shell-home-card-label svelte-cpn2x2"> </div> <div class="shell-home-card-meta svelte-cpn2x2"><span class="shell-home-card-id svelte-cpn2x2"> </span> <span class="shell-home-card-version svelte-cpn2x2"> </span></div></button>'),Fg=R('<section class="shell-home-section svelte-cpn2x2"><h2 class="shell-home-section-title svelte-cpn2x2">Apps</h2> <div class="shell-home-grid svelte-cpn2x2"></div></section>'),Ug=R('<button type="button" class="shell-home-card svelte-cpn2x2"><div class="shell-home-card-label svelte-cpn2x2"> </div> <div class="shell-home-card-meta svelte-cpn2x2"><span class="shell-home-card-id svelte-cpn2x2"> </span> <span class="shell-home-card-version svelte-cpn2x2"> </span></div></button>'),Bg=R('<section class="shell-home-section svelte-cpn2x2"><h2 class="shell-home-section-title svelte-cpn2x2">Admin</h2> <div class="shell-home-grid svelte-cpn2x2"></div></section>'),Hg=R('<p class="shell-home-empty svelte-cpn2x2"><!></p>'),Kg=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 class="shell-home-filter svelte-cpn2x2"><input type="search" placeholder="Filter apps…" aria-label="Filter apps by name" class="shell-home-filter-input svelte-cpn2x2"/></div> <!> <!> <!></div>');function Wg(e,t){ne(t,!0);let n=q("");const r=W(ui),s=W(Jt);function a(S,O){if(!O)return!0;const P=O.toLowerCase();return S.label.toLowerCase().includes(P)||S.id.toLowerCase().includes(P)}const i=W(()=>o(r).filter(S=>!S.admin&&a(S,o(n)))),l=W(()=>o(r).filter(S=>S.admin&&a(S,o(n)))),c=W(()=>o(i).length+(o(s)?o(l).length:0));var u=Kg(),f=p(u),v=p(f),d=p(v);qg(d,{});var k=E(d,2),g=p(k);h(k),Kt(2),h(v),Kt(2),h(f);var w=E(f,2),y=p(w);ke(y),h(w);var $=E(w,2);{var m=S=>{var O=Fg(),P=E(p(O),2);_e(P,21,()=>o(i),M=>M.id,(M,A)=>{var D=Vg(),F=p(D),z=p(F,!0);h(F);var H=E(F,2),Z=p(H),Y=p(Z,!0);h(Z);var te=E(Z,2),Q=p(te);h(te),h(H),h(D),V(()=>{Ee(D,"title",`Launch ${o(A).label??""}`),j(z,o(A).label),j(Y,o(A).id),j(Q,`v${o(A).version??""}`)}),K("click",D,()=>mr(o(A).id)),T(M,D)}),h(P),h(O),T(S,O)};B($,S=>{o(i).length>0&&S(m)})}var b=E($,2);{var I=S=>{var O=Bg(),P=E(p(O),2);_e(P,21,()=>o(l),M=>M.id,(M,A)=>{var D=Ug(),F=p(D),z=p(F,!0);h(F);var H=E(F,2),Z=p(H),Y=p(Z,!0);h(Z);var te=E(Z,2),Q=p(te);h(te),h(H),h(D),V(()=>{Ee(D,"title",`Launch ${o(A).label??""}`),j(z,o(A).label),j(Y,o(A).id),j(Q,`v${o(A).version??""}`)}),K("click",D,()=>mr(o(A).id)),T(M,D)}),h(P),h(O),T(S,O)};B(b,S=>{o(s)&&o(l).length>0&&S(I)})}var L=E(b,2);{var x=S=>{var O=Hg(),P=p(O);{var M=D=>{var F=On("No apps registered.");T(D,F)},A=D=>{var F=On();V(()=>j(F,`No apps match “${o(n)??""}”.`)),T(D,F)};B(P,D=>{o(r).length===0?D(M):D(A,-1)})}h(O),T(S,O)};B(L,S=>{o(c)===0&&S(x)})}h(u),V(()=>j(g,`v${Zt}`)),De(y,()=>o(n),S=>_(n,S)),T(e,u),re()}pe(["click"]);var Yg=R('<p class="keys-peers-muted svelte-19l5m7c">Loading...</p>'),Gg=R('<p class="keys-peers-error svelte-19l5m7c"> </p>'),Xg=R('<p class="keys-peers-muted svelte-19l5m7c">No keys yet. Shards will ask your permission before creating one.</p>'),Jg=R('<button type="button" class="keys-peers-btn-danger svelte-19l5m7c">Confirm</button> <button type="button" class="keys-peers-btn-secondary svelte-19l5m7c">Cancel</button>',1),Zg=R('<button type="button" class="keys-peers-btn-danger svelte-19l5m7c">Revoke</button>'),Qg=R('<li class="keys-peers-item svelte-19l5m7c"><div class="keys-peers-info svelte-19l5m7c"><span class="keys-peers-label svelte-19l5m7c"> </span> <span class="keys-peers-meta svelte-19l5m7c"> </span> <span class="keys-peers-meta svelte-19l5m7c"> </span> <span class="keys-peers-meta svelte-19l5m7c"> </span></div> <div class="keys-peers-actions svelte-19l5m7c"><!></div></li>'),e_=R('<ul class="keys-peers-list svelte-19l5m7c"></ul>'),t_=R('<div class="keys-peers svelte-19l5m7c"><div class="keys-peers-header svelte-19l5m7c"><h2 class="svelte-19l5m7c">Keys &amp; Peers</h2></div> <!></div>');function n_(e,t){ne(t,!0);let n=q(fe([])),r=q(null),s=q(!0),a=q(null);async function i(){_(r,null),_(s,!0);try{const w=await fetch("/api/keys",{credentials:"include"});if(!w.ok)throw new Error(`HTTP ${w.status}`);_(n,await w.json(),!0)}catch(w){_(r,w instanceof Error?w.message:String(w),!0)}finally{_(s,!1)}}async function l(w){_(a,null);const y=await fetch(`/api/keys/${encodeURIComponent(w)}`,{method:"DELETE",credentials:"include"});(y.ok||y.status===404)&&_(n,o(n).filter($=>$.id!==w),!0)}function c(w){return new Date(w).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}Le(()=>{i()}),Le(()=>oi("*",()=>{i()}));var u=t_(),f=E(p(u),2);{var v=w=>{var y=Yg();T(w,y)},d=w=>{var y=Gg(),$=p(y);h(y),V(()=>j($,`Failed to load: ${o(r)??""}`)),T(w,y)},k=w=>{var y=Xg();T(w,y)},g=w=>{var y=e_();_e(y,21,()=>o(n),$=>$.id,($,m)=>{var b=Qg(),I=p(b),L=p(I),x=p(L,!0);h(L);var S=E(L,2),O=p(S);h(S);var P=E(S,2),M=p(P);h(P);var A=E(P,2),D=p(A);h(A),h(I);var F=E(I,2),z=p(F);{var H=Y=>{var te=Jg(),Q=ye(te),ce=E(Q,2);K("click",Q,()=>l(o(m).id)),K("click",ce,()=>{_(a,null)}),T(Y,te)},Z=Y=>{var te=Zg();K("click",te,()=>{_(a,o(m).id,!0)}),T(Y,te)};B(z,Y=>{o(a)===o(m).id?Y(H):Y(Z,-1)})}h(F),h(b),V((Y,te,Q)=>{j(x,o(m).label),j(O,`Minted by: ${o(m).mintedByShardId??"system"??""}${o(m).peerRole||o(m).peerId?` · Peer: ${o(m).peerRole??"—"}${o(m).peerId?` (${o(m).peerId})`:""}`:""}`),j(M,`Scopes: ${Y??""}`),j(D,`Created: ${te??""} · Expires: ${Q??""}`)},[()=>o(m).scopes.join(", "),()=>c(o(m).createdAt),()=>o(m).expiresAt?c(o(m).expiresAt):"never"]),T($,b)}),h(y),T(w,y)};B(f,w=>{o(s)?w(v):o(r)?w(d,1):o(n).length===0?w(k,2):w(g,-1)})}h(u),T(e,u),re()}pe(["click"]);const r_={manifest:{id:"__sh3core__",label:"SH3 Core",version:Zt,views:[{id:"sh3core:home",label:"Home"},{id:"shell:keys-and-peers",label:"Keys & Peers"}]},activate(e){const t={mount(r,s){const a=ze(Wg,{target:r});return{unmount(){He(a)}}}},n={mount(r,s){const a=ze(n_,{target:r});return{unmount(){He(a)}}}};e.registerView("sh3core:home",t),e.registerView("shell:keys-and-peers",n)},autostart(){}},s_={id:"shell",label:"Shell",version:Zt,views:[{id:"shell:terminal",label:"Shell",standalone:!0}],permissions:[]},a_=2e3;let i_=0;function o_(){return`e${++i_}`}class l_{#e;get entries(){return o(this.#e)}set entries(t){_(this.#e,t,!0)}constructor(t=a_){this.#e=q(fe([])),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:o_()};this.entries.push(r),this.entries.length>this.cap&&this.entries.splice(0,this.entries.length-this.cap)}clear(){this.entries.length=0}}var c_=R("<pre> </pre>");function u_(e,t){ne(t,!0);const n=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,r=W(()=>t.chunks.join("").replace(n,""));var s=c_();let a;var i=p(s,!0);h(s),V(()=>{a=Pe(s,1,"shell-text svelte-ypr8s",null,a,{stderr:t.stream==="stderr"}),j(i,o(r))}),T(e,s),re()}var f_=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 d_(e,t){var n=f_(),r=p(n),s=p(r,!0);h(r);var a=E(r,4),i=p(a,!0);h(a),h(n),V(()=>{j(s,t.cwd),j(i,t.line)}),T(e,n)}var v_=R("<div> </div>");function h_(e,t){var n=v_();let r;var s=p(n,!0);h(n),V(()=>{r=Pe(n,1,"shell-status svelte-nfxdpt",null,r,{info:t.level==="info",warn:t.level==="warn",error:t.level==="error"}),j(s,t.text)}),T(e,n)}var p_=R('<div class="shell-rich svelte-1rnhl05"><!></div>');function m_(e,t){var n=p_(),r=p(n);$r(r,()=>t.component,(s,a)=>{a(s,Cr(()=>t.componentProps))}),h(n),T(e,n)}var g_=R('<div class="shell-scrollback svelte-isy3jt"></div>');function __(e,t){ne(t,!0);let n=q(null);Le(()=>{t.scrollback.entries.length,o(n)&&(o(n).scrollTop=o(n).scrollHeight)});var r=g_();_e(r,21,()=>t.scrollback.entries,s=>s.id,(s,a)=>{var i=pt(),l=ye(i);{var c=d=>{u_(d,{get stream(){return o(a).stream},get chunks(){return o(a).chunks}})},u=d=>{d_(d,{get cwd(){return o(a).cwd},get line(){return o(a).line}})},f=d=>{h_(d,{get text(){return o(a).text},get level(){return o(a).level}})},v=d=>{m_(d,{get component(){return o(a).component},get componentProps(){return o(a).props}})};B(l,d=>{o(a).kind==="text"?d(c):o(a).kind==="prompt"?d(u,1):o(a).kind==="status"?d(f,2):o(a).kind==="rich"&&d(v,3)})}T(s,i)}),h(r),wt(r,s=>_(n,s),()=>o(n)),T(e,r),re()}var y_=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 b_(e,t){ne(t,!0);let n=q(""),r=q(null),s=q(""),a=q(null);function i(){if(t.locked)return;const w=o(n);w.trim()&&(_(n,""),_(r,null),t.onSubmit(w))}function l(){t.history.length!==0&&(o(r)===null?(_(s,o(n),!0),_(r,t.history.length-1)):o(r)>0&&zn(r,-1),_(n,t.history[o(r)]??"",!0))}function c(){o(r)!==null&&(o(r)<t.history.length-1?(zn(r),_(n,t.history[o(r)],!0)):(_(r,null),_(n,o(s),!0)))}function u(w){if(t.locked){if(w.ctrlKey&&w.key==="c"){w.preventDefault(),t.session.send({t:"signal",sig:"SIGINT"});return}if(w.ctrlKey&&w.key==="d"){w.preventDefault(),t.session.send({t:"signal",sig:"EOF"});return}w.preventDefault();return}w.key==="Enter"?(w.preventDefault(),i()):w.key==="ArrowUp"?(w.preventDefault(),l()):w.key==="ArrowDown"?(w.preventDefault(),c()):w.ctrlKey&&w.key==="c"?(w.preventDefault(),_(n,""),_(r,null)):w.ctrlKey&&w.key==="l"&&(w.preventDefault(),_(n,"clear"),i())}Le(()=>{!t.locked&&o(a)&&o(a).focus()});var f=y_();let v;var d=p(f),k=p(d,!0);h(d);var g=E(d,4);ke(g),wt(g,w=>_(a,w),()=>o(a)),h(f),V(()=>{v=Pe(f,1,"shell-input svelte-1dfv2gk",null,v,{locked:t.locked}),j(k,t.cwd),g.disabled=t.locked}),K("keydown",g,u),De(g,()=>o(n),w=>_(n,w)),T(e,f),re()}pe(["keydown"]);const _o=[1e3,2e3,5e3,1e4];class w_{#e;get connected(){return o(this.#e)}set connected(t){_(this.#e,t,!0)}#t;get cwd(){return o(this.#t)}set cwd(t){_(this.#t,t,!0)}#n;get env(){return o(this.#n)}set env(t){_(this.#n,t,!0)}#a;get history(){return o(this.#a)}set history(t){_(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=q(!1),this.#t=q(""),this.#n=q(fe({})),this.#a=q(fe([]))}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=_o[Math.min(this.backoffIndex,_o.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 k_{list(){return ai()}get(t){return co(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=co(s);if(!i)return{kind:"forward",line:t};const l=a.length?a.split(/\s+/):[];return{kind:"local",verb:i,args:l,line:t}}}class S_{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 E_{#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 x_={id:"dev",label:"Dev",requiresRole:"admin",transport:"ws",autoRelocate:!1},A_={id:"user",label:"User",transport:"none",autoRelocate:!0};function T_(e){e.register(x_),e.register(A_)}function uu(e){return`sh3.shell.lastMode.${e}`}function I_(e){try{return globalThis.localStorage?.getItem(uu(e))??null}catch{return null}}function $_(e,t){try{globalThis.localStorage?.setItem(uu(e),t)}catch{}}function R_(e,t,n){const r=I_(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 C_(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 D_(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 P_=R('<div class="toolbar svelte-gnowwz"><div class="toolbar-slots svelte-gnowwz"></div></div>');function L_(e,t){ne(t,!0);let n=kn(t,"slotProps",19,()=>({})),r=W(()=>t.registry.list(t.ctx));var s=P_(),a=p(s);_e(a,21,()=>o(r),i=>i.id,(i,l)=>{const c=W(()=>o(l).component);var u=pt(),f=ye(u);$r(f,()=>o(c),(v,d)=>{d(v,Cr(()=>n()[o(l).id]??{}))}),T(i,u)}),h(a),h(s),T(e,s),re()}class O_{#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 N_=R('<button type="button"> </button>'),M_=R('<div class="mode-bar svelte-1i4cqlj" role="toolbar" aria-label="Shell mode"></div>'),j_=R('<span class="mode-label svelte-1i4cqlj"> </span>');function z_(e,t){ne(t,!0);let n=W(()=>t.registry.list(t.role));var r=pt(),s=ye(r);{var a=l=>{var c=M_();_e(c,21,()=>o(n),u=>u.id,(u,f)=>{var v=N_();let d;var k=p(v,!0);h(v),V(()=>{d=Pe(v,1,"mode-btn svelte-1i4cqlj",null,d,{active:o(f).id===t.mode.id}),Ee(v,"aria-pressed",o(f).id===t.mode.id),j(k,o(f).label)}),K("click",v,()=>t.onSelect(o(f).id)),T(u,v)}),h(c),T(l,c)},i=l=>{var c=j_(),u=p(c,!0);h(c),V(()=>j(u,t.mode.label)),T(l,c)};B(s,l=>{t.role==="admin"?l(a):l(i,-1)})}T(e,r),re()}pe(["click"]);var q_=R('<button class="focus-lock-btn svelte-1q6gbap"> </button>');function V_(e,t){var n=q_(),r=p(n,!0);h(n),V(()=>{Ee(n,"title",t.locked?"Unlock focus":"Lock focus"),j(r,t.locked?"🔒":"🔓")}),K("click",n,function(...s){t.onToggle?.apply(this,s)}),T(e,n)}pe(["click"]);var F_=R('<span class="target-shard svelte-1nn2m6x" title="Target shard"> </span>');function U_(e,t){var n=F_(),r=p(n);h(n),V(()=>j(r,`→ ${t.target??"—"??""}`)),T(e,n)}var B_=R('<div class="shell-terminal svelte-13komre"><!> <!> <!></div>');function H_(e,t){ne(t,!0);const n=new l_,r=new k_,s=new S_,a=new E_;T_(a);let i=q(fe(ge(()=>R_(a,t.userId,t.role))));function l(x){const S=a.get(x);S&&(S.requiresRole&&S.requiresRole!==t.role||(_(i,S,!0),$_(t.userId,x),S.transport!=="ws"&&n.push({kind:"status",text:"mode switch: reload to take effect for server-shell changes",level:"info",ts:Date.now()})))}const c=ge(()=>new w_(t.wsUrl)),u=ge(()=>C_({mode:()=>o(i),resolver:r,scrollback:n,session:c,shell:t.shell,fs:s,cwd:()=>c.cwd}));let f=q(!1),v=q(!1),d=q(null);const k=new O_;k.register({id:"mode",order:10,visible:()=>!0,component:z_}),k.register({id:"focus-lock",order:20,visible:x=>x.mode.id==="user",component:V_}),k.register({id:"target-shard",order:30,visible:x=>x.mode.id==="user",component:U_});function g(x){if(x.type==="tabs")return x.tabs[x.activeTab]?.viewId??null;if(x.type==="split")for(const S of x.children){const O=g(S);if(O!==null)return O}return x.viewId??null}function w(){try{const x=Ut(),S=g(x.docked);if(!S)return null;const O=S.indexOf(":");return O>=0?S.slice(0,O):S}catch{return null}}Le(()=>{const x=w(),S=o(i).autoRelocate,O=o(v);(async()=>{const P=await D_({modeAutoRelocate:S,focusLocked:O,focusedShardId:x,currentShardId:"shell"},s);P.kind==="relocate"&&P.path!==void 0&&(c.cwd=P.path),x&&x!=="shell"?_(d,x,!0):x||_(d,null)})()});function y(x){if(x.t!=="event")return;const S=x.event;switch(S.kind){case"prompt":n.push({kind:"prompt",cwd:S.cwd,line:S.line,ts:S.ts}),_(f,!0);break;case"stdout":n.push({kind:"text",stream:"stdout",chunks:[S.data],ts:S.ts});break;case"stderr":n.push({kind:"text",stream:"stderr",chunks:[S.data],ts:S.ts});break;case"exit":(S.signal||S.code!==null&&S.code!==0)&&n.push({kind:"status",text:S.signal?`shell: process exited (${S.signal})`:`shell: process exited (${S.code})`,level:"error",ts:S.ts}),_(f,!1);break;case"status":n.push({kind:"status",text:S.text,level:S.level,ts:S.ts});break}}let $=null;Ga(()=>{$=c.onMessage(y),o(i).transport==="ws"&&c.connect()}),ec(()=>{$?.(),c.close()});var m=B_(),b=p(m);{let x=W(()=>({mode:o(i),role:t.role})),S=W(()=>({mode:{mode:o(i),role:t.role,registry:a,onSelect:l},"focus-lock":{locked:o(v),onToggle:()=>_(v,!o(v))},"target-shard":{target:o(d)}}));L_(b,{get registry(){return k},get ctx(){return o(x)},get slotProps(){return o(S)}})}var I=E(b,2);__(I,{get scrollback(){return n}});var L=E(I,2);b_(L,{get cwd(){return c.cwd},get locked(){return o(f)},get history(){return c.history},get session(){return c},get onSubmit(){return u}}),h(m),T(e,m),re()}var K_=R('<tr><td class="svelte-m248jy"><button type="button" class="svelte-m248jy"> </button></td><td class="svelte-m248jy"> </td></tr>'),W_=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 Y_(e,t){ne(t,!0);var n=W_(),r=p(n),s=E(p(r));_e(s,21,()=>t.data.rows,a=>a.name,(a,i)=>{var l=K_(),c=p(l),u=p(c),f=p(u,!0);h(u),h(c);var v=E(c),d=p(v,!0);h(v),h(l),V(()=>{j(f,o(i).name),j(d,o(i).summary)}),K("click",u,()=>t.data.onClickName(o(i).name)),T(a,l)}),h(s),h(r),h(n),T(e,n),re()}pe(["click"]);function G_(){return{name:"help",summary:"List verbs or show detail for one.",async run(e){const t=ai().map(n=>({name:n.name,summary:n.summary}));e.scrollback.push({kind:"rich",component:Y_,props:{data:{rows:t,onClickName:n=>e.dispatch(n)}},ts:Date.now()})}}}const X_={name:"clear",summary:"Clear the scrollback (local only — other views are unaffected).",async run(e){e.scrollback.clear()}};var J_=R('<li class="svelte-o8m437"><button type="button" class="svelte-o8m437"> </button></li>'),Z_=R('<div class="shell-rich-history svelte-o8m437"><ol class="svelte-o8m437"></ol></div>');function Q_(e,t){ne(t,!0);var n=Z_(),r=p(n);_e(r,21,()=>t.data.lines,Vn,(s,a)=>{var i=J_(),l=p(i),c=p(l,!0);h(l),h(i),V(()=>j(c,o(a))),K("click",l,()=>t.data.onClickLine(o(a))),T(s,i)}),h(r),h(n),T(e,n),re()}pe(["click"]);const ey={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:Q_,props:{data:{lines:r,onClickLine:s=>e.dispatch(s)}},ts:Date.now()})}};var ty=R('<tr><td class="svelte-1u5krjz"><button type="button" class="svelte-1u5krjz"> </button></td><td class="svelte-1u5krjz"> </td></tr>'),ny=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 ry(e,t){ne(t,!0);var n=ny(),r=p(n),s=E(p(r));_e(s,21,()=>t.data.apps,a=>a.id,(a,i)=>{var l=ty(),c=p(l),u=p(c),f=p(u,!0);h(u),h(c);var v=E(c),d=p(v,!0);h(v),h(l),V(()=>{j(f,o(i).id),j(d,o(i).label)}),K("click",u,()=>t.data.onClickApp(o(i).id)),T(a,l)}),h(s),h(r),h(n),T(e,n),re()}pe(["click"]);var sy=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 ay(e,t){ne(t,!0);var n=sy(),r=p(n),s=p(r,!0);h(r);var a=E(r,2),i=E(p(a));h(a);var l=E(a,2),c=E(p(l));h(l),h(n),V(u=>{j(s,t.data.label),j(i,` ${t.data.id??""}`),j(c,` ${u??""}`)},[()=>t.data.shards.join(", ")]),T(e,n),re()}const iy={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:ry,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()})}},oy={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:ay,props:{data:{id:t.id,label:t.label,shards:[]}},ts:Date.now()})}};var ly=R('<tr><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td></tr>'),cy=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 uy(e,t){ne(t,!0);var n=cy(),r=p(n),s=E(p(r));_e(s,21,()=>t.data.shards,a=>a.id,(a,i)=>{var l=ly(),c=p(l),u=p(c,!0);h(c);var f=E(c),v=p(f,!0);h(f);var d=E(f),k=p(d,!0);h(d),h(l),V(()=>{j(u,o(i).id),j(v,o(i).label),j(k,o(i).version)}),T(a,l)}),h(s),h(r),h(n),T(e,n),re()}const fy={name:"shards",summary:"List active shards.",async run(e){const t=e.shell.listShards();e.scrollback.push({kind:"rich",component:uy,props:{data:{shards:t}},ts:Date.now()})}};var dy=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>'),vy=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 hy(e,t){ne(t,!0);var n=vy(),r=p(n),s=E(p(r));_e(s,21,()=>t.data.views,a=>a.slotId,(a,i)=>{var l=dy(),c=p(l),u=p(c,!0);h(c);var f=E(c),v=p(f,!0);h(f);var d=E(f),k=p(d,!0);h(d);var g=E(d),w=p(g);h(g),h(l),V(()=>{j(u,o(i).slotId),j(v,o(i).viewId),j(k,o(i).label)}),K("click",w,()=>t.data.onClose(o(i).slotId)),T(a,l)}),h(s),h(r),h(n),T(e,n),re()}pe(["click"]);const py={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:hy,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()})}},my={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()})}},gy={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()})}},_y={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()})}},yy={name:"close",summary:"Close a view by slot id.",async run(e,t){const n=t[0];if(!n){e.scrollback.push({kind:"status",text:"usage: close <slotId>",level:"warn",ts:Date.now()});return}const r=e.shell.closeSlot(n);r.ok||e.scrollback.push({kind:"status",text:`shell: close failed — ${r.error??"unknown"}`,level:"error",ts:Date.now()})}};var by=R('<tr><td class="svelte-1w7onag"> </td><td class="svelte-1w7onag"> </td></tr>'),wy=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 ky(e,t){ne(t,!0);var n=wy(),r=p(n),s=E(p(r));_e(s,21,()=>t.data.rows,a=>a.shardId,(a,i)=>{var l=by(),c=p(l),u=p(c,!0);h(c);var f=E(c),v=p(f,!0);h(f),h(l),V(d=>{j(u,o(i).shardId),j(v,d)},[()=>o(i).zones.join(", ")]),T(a,l)}),h(s),h(r),h(n),T(e,n),re()}var Sy=R('<div class="shell-rich-zonetree svelte-13iiyr1"><pre class="svelte-13iiyr1"> </pre></div>');function Ey(e,t){ne(t,!0);var n=Sy(),r=p(n),s=p(r,!0);h(r),h(n),V(a=>j(s,a),[()=>JSON.stringify(t.data.value,null,2)]),T(e,n),re()}const xy={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:ky,props:{data:{rows:n}},ts:Date.now()})}},Ay={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:Ey,props:{data:{value:s}},ts:Date.now()})}};function Ty(e,t){if(t.startsWith("/"))return Iy(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 Iy(e){return e.split("/").filter(t=>t&&t!==".").join("/")}const $y={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()})}},Ry={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=Ty(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}},Cy={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 Dy=R('<tr><td class="svelte-1ox8vog"> </td><td class="svelte-1ox8vog"> </td></tr>'),Py=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 Ly(e,t){ne(t,!0);var n=Py(),r=p(n),s=E(p(r));_e(s,21,()=>Object.entries(t.data.env),([a,i])=>a,(a,i)=>{var l=W(()=>Vo(o(i),2));let c=()=>o(l)[0],u=()=>o(l)[1];var f=Dy(),v=p(f),d=p(v,!0);h(v);var k=E(v),g=p(k,!0);h(k),h(f),V(()=>{j(d,c()),j(g,u())}),T(a,f)}),h(s),h(r),h(n),T(e,n),re()}const Oy={name:"env",summary:"Show the session environment.",async run(e){const t=e.session.env;e.scrollback.push({kind:"rich",component:Ly,props:{data:{env:t}},ts:Date.now()})}},Ny={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()})}},My={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 jy(e){e.registerVerb(G_()),e.registerVerb(X_),e.registerVerb(ey),e.registerVerb(iy),e.registerVerb(oy),e.registerVerb(fy),e.registerVerb(py),e.registerVerb(my),e.registerVerb(yy),e.registerVerb(gy),e.registerVerb(_y),e.registerVerb(xy),e.registerVerb(Ay),e.registerVerb($y),e.registerVerb(Ry),e.registerVerb(Oy),e.registerVerb(Cy),e.registerVerb(Ny),e.registerVerb(My)}function fu(e){return e.type==="tabs"?e.tabs.filter(t=>t.viewId!==null):e.type==="split"?e.children.flatMap(fu):e.viewId!==null?[{slotId:e.slotId,viewId:e.viewId,label:e.viewId}]:[]}function zy(e){return{listApps(){return ui().map(t=>({id:t.id,label:t.label}))},getActiveApp(){const t=Fc();return t?{id:t.id,label:t.label}:null},launchApp(t){mr(t)},listShards(){return Array.from(qt.values()).map(t=>({id:t.manifest.id,label:t.manifest.label,version:t.manifest.version}))},listViewsInCurrentLayout(){try{const{root:t}=tu();return fu(t.docked).map(n=>({slotId:n.slotId,viewId:n.viewId??"",label:n.label}))}catch{return[]}},openViewInCurrentLayout(t){try{if(Ps(t))return{ok:!0};const n=vo().find(r=>r.viewId===t);if(n){const r=`standalone:${t}:${Date.now()}`;return hi({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 vo()},popoutSlot(t){try{const n=kg(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 Sg(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 di(t),{ok:!0}},listZones(t){return[]},readZone(t,n){return null},whoAmI(){return{userId:xs()?.id??"guest",admin:Jt()}}}}const qy={manifest:s_,activate(e){if(!e.isAdmin)return;jy(e);const t=zy(),n={mount(r,s){const a=typeof location<"u"&&location.protocol==="https:"?"wss":"ws",i=typeof location<"u"?location.host:"localhost",l=`${a}://${i}/api/shell/session`,u=xs()?.id??"guest",f=Jt()?"admin":"user",v=ze(H_,{target:r,props:{shell:t,wsUrl:l,userId:u,role:f}});return{unmount(){He(v)},closable:!0}}};e.registerView("shell:terminal",n)},autostart(){}},yo=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 ea(e,t){const n=Object.keys(t),r=n.filter(i=>!yo.has(i)),s=n.filter(i=>yo.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 _i=globalThis;_i.__sh3__=cu;_i.__sh3_svelte__=nc;_i.__sh3_svelte_internal_client__=mc;const yi={"sh3-core":ea("__sh3__",cu),svelte:ea("__sh3_svelte__",nc),"svelte/internal/client":ea("__sh3_svelte_internal_client__",mc)};yi["svelte/internal/disclose-version"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));yi["sh3-core/tokens.css"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));const Vy=/(?:from|import)\s*(['"])(sh3-core(?:\/[^'"]*)?|svelte(?:\/[^'"]*)?)\1/g;function Fy(e){return e.replace(Vy,(t,n,r)=>{const s=yi[r];return s?`${t.startsWith("from")?"from":"import"} '${s}'`:t})}async function bi(e){const t=new TextDecoder().decode(e),n=Fy(t),r=new Blob([n],{type:"application/javascript"}),s=URL.createObjectURL(r);try{const a=await import(s),i={shards:[],apps:[]};for(const l of Object.values(a)){if(!l||typeof l!="object"||!("manifest"in l))continue;const c=l;Uy(c)?i.shards.push(c):By(c)&&i.apps.push(c)}if(i.shards.length===0&&i.apps.length===0)throw new Error('Bundle has no exports with a "manifest" property — expected at least one shard or app');return i}finally{URL.revokeObjectURL(s)}}function Uy(e){return"activate"in e&&typeof e.activate=="function"&&Array.isArray(e.manifest.views)}function By(e){return"initialLayout"in e&&Array.isArray(e.manifest.requiredShards)}const Hy="sh3-packages",Ky=1,_r="bundles",yr="meta";function Ms(){return new Promise((e,t)=>{const n=indexedDB.open(Hy,Ky);n.onupgradeneeded=()=>{const r=n.result;r.objectStoreNames.contains(_r)||r.createObjectStore(_r),r.objectStoreNames.contains(yr)||r.createObjectStore(yr)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}function Bn(e,t,n,r){return new Promise((s,a)=>{const l=e.transaction(t,n).objectStore(t),c=r(l);c.onsuccess=()=>s(c.result),c.onerror=()=>a(c.error)})}async function du(e,t,n){const r=await Ms();await Bn(r,_r,"readwrite",s=>s.put(t,e)),await Bn(r,yr,"readwrite",s=>s.put(n,e)),r.close()}async function vu(e){const t=await Ms(),n=await Bn(t,_r,"readonly",r=>r.get(e));return t.close(),n??null}async function hu(){const e=await Ms(),t=await Bn(e,yr,"readonly",n=>n.getAll());return e.close(),t??[]}async function Wy(e){const t=await Ms();await Bn(t,_r,"readwrite",n=>n.delete(e)),await Bn(t,yr,"readwrite",n=>n.delete(e)),t.close()}function wi(e,t){for(const n of e.shards)n.manifest={...n.manifest,version:t.version},li(n);for(const n of e.apps)n.manifest={...n.manifest,version:t.version},ci(n)}async function ki(e,t){try{await pi(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 bi(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 du(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{Ts(t.id)}catch{}(t.type==="app"||t.type==="combo")&&fi(t.id);let s=!0;try{wi(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 pu(e){try{Ts(e)}catch{}fi(e),await Wy(e)}async function Yy(){return hu()}async function Gy(){let e;try{e=await hu()}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 vu(t.id);if(!n){console.warn(`[sh3] No bundle found for installed package "${t.id}", skipping`);continue}const r=await bi(n);wi(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 bo={version:1};var Xy=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>'),Jy=R('<div class="store-registries svelte-1aafzt0"></div>'),Zy=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>'),Qy=R('<div class="store-error svelte-1aafzt0"> </div>'),eb=R('<div class="store-error svelte-1aafzt0"> </div>'),tb=R('<img alt="" class="store-icon-img svelte-1aafzt0"/>'),nb=R('<span class="store-icon-placeholder svelte-1aafzt0"> </span>'),rb=R('<div class="store-card-warning svelte-1aafzt0"> </div>'),sb=R('<button class="store-update-btn svelte-1aafzt0"> </button>'),ab=R('<span class="store-installed-label svelte-1aafzt0">Installed</span>'),ib=R('<span class="store-card-missing svelte-1aafzt0"> </span>'),ob=R('<div class="store-install-wrap svelte-1aafzt0"><button class="store-install-btn svelte-1aafzt0"> </button> <!></div>'),lb=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>'),cb=R("No packages found. <!>",1),ub=R('<div class="store-empty svelte-1aafzt0"><!></div>'),fb=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 db(e,t){ne(t,!0);let n=q(""),r=q("all"),s=q(fe(new Set)),a=q(fe(new Set)),i=q(null),l=q("");const c=rn;async function u(){const C=o(l).trim();if(C&&!c.env.registries.includes(C))try{await c.addRegistry(C),_(l,""),c.refreshCatalog(),c.refreshInstalled()}catch(N){_(i,N instanceof Error?N.message:String(N),!0)}}async function f(C){try{await c.removeRegistry(C),c.refreshCatalog()}catch(N){_(i,N instanceof Error?N.message:String(N),!0)}}const v=W(()=>{const C=o(n).toLowerCase().trim();return c.state.ephemeral.catalog.filter(N=>o(r)!=="all"&&N.entry.type!==o(r)?!1:C?N.entry.id.toLowerCase().includes(C)||N.entry.label.toLowerCase().includes(C)||N.entry.description.toLowerCase().includes(C):!0)});function d(C){return c.state.ephemeral.installed.some(N=>N.id===C)}function k(C){return String(C.latest.contractVersion)!==String(bo.version)}function g(C){return C in c.state.ephemeral.updatable}function w(C){return c.state.ephemeral.installed.find(N=>N.id===C)?.version??""}function y(C,N){const G=C.latest.requires?.map(oe=>oe.id)??[];if(G.length===0)return[];const le=new Set(lu);for(const oe of N)(oe.type==="shard"||oe.type==="combo")&&le.add(oe.id);return G.filter(oe=>!le.has(oe))}async function $(C){if(!o(a).has(C)){_(a,new Set([...o(a),C]),!0),_(i,null);try{await c.updatePackage(C)}catch(N){_(i,N instanceof Error?N.message:String(N),!0)}finally{const N=new Set(o(a));N.delete(C),_(a,N,!0)}}}async function m(C){const N=C.entry.id;if(!o(s).has(N)){_(s,new Set([...o(s),N]),!0),_(i,null);try{const G=await Os(C.latest,C.sourceRegistry),le=Ns(C,C.latest);let oe;C.latest.serverBundleUrl&&(oe=await mi(C.latest,C.sourceRegistry));const Te={id:le.id,type:le.type,label:C.entry.label,version:le.version,contractVersion:le.contractVersion,sourceRegistry:le.sourceRegistry,requiredShards:C.latest.requires?.map(ln=>ln.id)??[],installedAt:new Date().toISOString()},ve=await ii(Te,G,oe);if(!ve.ok){_(i,ve.error??"Server install failed",!0);return}const Ge=await ki(G,le);Ge.success||console.warn(`[sh3-store] Server install ok but local hot-load failed: ${Ge.error}`),await c.refreshInstalled()}catch(G){_(i,G instanceof Error?G.message:String(G),!0)}finally{const G=new Set(o(s));G.delete(N),_(s,G,!0)}}}function b(){c.refreshCatalog(),c.refreshInstalled()}var I=fb(),L=p(I),x=E(p(L),2),S=p(x);ke(S);var O=E(S,2),P=p(O);P.value=P.__value="all";var M=E(P);M.value=M.__value="shard";var A=E(M);A.value=A.__value="app",h(O);var D=E(O,2),F=p(D,!0);h(D),h(x),h(L);var z=E(L,2);{var H=C=>{var N=Jy();_e(N,21,()=>c.env.registries,Vn,(G,le)=>{var oe=Xy(),Te=p(oe),ve=p(Te,!0);h(Te);var Ge=E(Te,2);h(oe),V(()=>j(ve,o(le))),K("click",Ge,()=>f(o(le))),T(G,oe)}),h(N),T(C,N)};B(z,C=>{c.isAdmin&&c.env.registries.length>0&&C(H)})}var Z=E(z,2);{var Y=C=>{var N=Zy(),G=p(N);ke(G);var le=E(G,2);h(N),V(oe=>le.disabled=oe,[()=>!o(l).trim()]),et("submit",N,oe=>{oe.preventDefault(),u()}),De(G,()=>o(l),oe=>_(l,oe)),T(C,N)};B(Z,C=>{c.isAdmin&&C(Y)})}var te=E(Z,2);{var Q=C=>{var N=Qy(),G=p(N,!0);h(N),V(()=>j(G,c.state.ephemeral.error)),T(C,N)};B(te,C=>{c.state.ephemeral.error&&C(Q)})}var ce=E(te,2);{var he=C=>{var N=eb(),G=p(N,!0);h(N),V(()=>j(G,o(i))),T(C,N)};B(ce,C=>{o(i)&&C(he)})}var ie=E(ce,2);_e(ie,21,()=>o(v),C=>C.entry.id,(C,N)=>{const G=W(()=>d(o(N).entry.id)),le=W(()=>k(o(N))),oe=W(()=>o(s).has(o(N).entry.id)),Te=W(()=>g(o(N).entry.id)),ve=W(()=>o(a).has(o(N).entry.id)),Ge=W(()=>y(o(N),c.state.ephemeral.installed));var ln=lb(),Zn=p(ln),Dt=p(Zn),Qn=p(Dt);{var xu=Re=>{var Ie=tb();V(()=>Ee(Ie,"src",o(N).entry.icon)),T(Re,Ie)},Au=Re=>{var Ie=nb(),dt=p(Ie,!0);h(Ie),V(()=>j(dt,o(N).entry.type==="shard"?"S":"A")),T(Re,Ie)};B(Qn,Re=>{o(N).entry.icon?Re(xu):Re(Au,-1)})}h(Dt);var Ai=E(Dt,2),js=p(Ai),Tu=p(js,!0);h(js);var Pr=E(js,2);let Ti;var Iu=p(Pr,!0);h(Pr);var Ii=E(Pr,2),$u=p(Ii,!0);h(Ii),h(Ai),h(Zn);var zs=E(Zn,2),Ru=p(zs,!0);h(zs);var qs=E(zs,2),Cu=p(qs,!0);h(qs);var $i=E(qs,2);{var Du=Re=>{var Ie=rb(),dt=p(Ie);h(Ie),V(()=>j(dt,`Contract mismatch: package targets v${o(N).latest.contractVersion??""}, running v${bo.version}`)),T(Re,Ie)};B($i,Re=>{o(le)&&Re(Du)})}var Ri=E($i,2),Pu=p(Ri);{var Lu=Re=>{var Ie=sb(),dt=p(Ie,!0);h(Ie),V(Vs=>{Ie.disabled=o(ve),j(dt,Vs)},[()=>o(ve)?"Updating...":`Update ${w(o(N).entry.id)} -> ${o(N).latest.version}`]),K("click",Ie,()=>$(o(N).entry.id)),T(Re,Ie)},Ou=Re=>{var Ie=ab();T(Re,Ie)},Nu=Re=>{var Ie=ob(),dt=p(Ie),Vs=p(dt,!0);h(dt);var Mu=E(dt,2);{var ju=er=>{var Fs=ib(),zu=p(Fs);h(Fs),V(qu=>j(zu,`requires: ${qu??""}`),[()=>o(Ge).join(", ")]),T(er,Fs)};B(Mu,er=>{o(Ge).length>0&&er(ju)})}h(Ie),V(er=>{dt.disabled=o(oe)||o(Ge).length>0,Ee(dt,"title",er),j(Vs,o(oe)?"Installing...":"Install")},[()=>o(Ge).length>0?`Missing required shards: ${o(Ge).join(", ")}`:void 0]),K("click",dt,()=>m(o(N))),T(Re,Ie)};B(Pu,Re=>{o(G)&&o(Te)?Re(Lu):o(G)?Re(Ou,1):Re(Nu,-1)})}h(Ri),h(ln),V(()=>{j(Tu,o(N).entry.label),Ti=Pe(Pr,1,"store-card-badge svelte-1aafzt0",null,Ti,{"badge-shard":o(N).entry.type==="shard","badge-app":o(N).entry.type==="app"}),j(Iu,o(N).entry.type),j($u,o(N).latest.version),j(Ru,o(N).entry.description),j(Cu,o(N).entry.author.name)}),T(C,ln)}),h(ie);var xe=E(ie,2);{var Ae=C=>{var N=ub(),G=p(N);{var le=Te=>{var ve=cb(),Ge=E(ye(ve));{var ln=Dt=>{var Qn=On("Add a registry URL above to get started.");T(Dt,Qn)},Zn=Dt=>{var Qn=On("No registries configured.");T(Dt,Qn)};B(Ge,Dt=>{c.isAdmin?Dt(ln):Dt(Zn,-1)})}T(Te,ve)},oe=Te=>{var ve=On("No packages match the current filter.");T(Te,ve)};B(G,Te=>{c.env.registries.length===0?Te(le):Te(oe,-1)})}h(N),T(C,N)};B(xe,C=>{!c.state.ephemeral.loading&&o(v).length===0&&C(Ae)})}h(I),V(()=>{D.disabled=c.state.ephemeral.loading,j(F,c.state.ephemeral.loading?"Loading...":"Refresh")}),De(S,()=>o(n),C=>_(n,C)),ts(O,()=>o(r),C=>_(r,C)),K("click",D,b),T(e,I),re()}pe(["click"]);var vb=R('<div class="installed-error svelte-1hqclkp"> </div>'),hb=R('<div class="installed-empty svelte-1hqclkp">No packages installed.</div>'),pb=R('<button class="installed-update-btn svelte-1hqclkp"> </button>'),mb=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>'),gb=R('<ul class="installed-list svelte-1hqclkp"></ul>'),_b=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 yb(e,t){ne(t,!0);const n=rn;let r=q(fe(new Set)),s=q(fe(new Set)),a=q(null);async function i(m){if(!o(r).has(m)){_(r,new Set([...o(r),m]),!0);try{await Pc(m),await pu(m),await n.refreshInstalled()}catch(b){console.warn("[sh3-store] Uninstall failed:",b instanceof Error?b.message:b)}finally{const b=new Set(o(r));b.delete(m),_(r,b,!0)}}}async function l(m){if(!o(s).has(m)){_(s,new Set([...o(s),m]),!0),_(a,null);try{await n.updatePackage(m)}catch(b){_(a,b instanceof Error?b.message:String(b),!0)}finally{const b=new Set(o(s));b.delete(m),_(s,b,!0)}}}function c(){n.refreshInstalled()}function u(m){try{return new Date(m).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch{return m}}var f=_b(),v=p(f),d=E(p(v),2);h(v);var k=E(v,2);{var g=m=>{var b=vb(),I=p(b,!0);h(b),V(()=>j(I,o(a))),T(m,b)};B(k,m=>{o(a)&&m(g)})}var w=E(k,2);{var y=m=>{var b=hb();T(m,b)},$=m=>{var b=gb();_e(b,21,()=>n.state.ephemeral.installed,I=>I.id,(I,L)=>{const x=W(()=>o(r).has(o(L).id));var S=mb(),O=p(S),P=p(O),M=p(P,!0);h(P);var A=E(P,2);let D;var F=p(A,!0);h(A);var z=E(A,2),H=p(z,!0);h(z),h(O);var Z=E(O,2),Y=p(Z),te=p(Y);h(Y);var Q=E(Y,2),ce=p(Q);h(Q);var he=E(Q,2),ie=p(he);h(he),h(Z);var xe=E(Z,2),Ae=p(xe);{var C=le=>{const oe=W(()=>n.state.ephemeral.updatable[o(L).id]),Te=W(()=>o(s).has(o(L).id));var ve=pb(),Ge=p(ve,!0);h(ve),V(()=>{ve.disabled=o(Te)||o(x),j(Ge,o(Te)?"Updating...":`Update -> ${o(oe).latest.version}`)}),K("click",ve,()=>l(o(L).id)),T(le,ve)};B(Ae,le=>{o(L).id in n.state.ephemeral.updatable&&le(C)})}var N=E(Ae,2),G=p(N,!0);h(N),h(xe),h(S),V(le=>{j(M,o(L).id),D=Pe(A,1,"installed-item-badge svelte-1hqclkp",null,D,{"badge-shard":o(L).type==="shard","badge-app":o(L).type==="app"}),j(F,o(L).type),j(H,o(L).version),j(te,`Contract: v${o(L).contractVersion??""}`),j(ce,`Source: ${o(L).sourceRegistry??""}`),j(ie,`Installed: ${le??""}`),N.disabled=o(x),j(G,o(x)?"Removing...":"Uninstall")},[()=>u(o(L).installedAt)]),K("click",N,()=>i(o(L).id)),T(I,S)}),h(b),T(m,b)};B(w,m=>{n.state.ephemeral.installed.length===0?m(y):m($,-1)})}h(f),K("click",d,c),T(e,f),re()}pe(["click"]);function mu(e){return rn.state.ephemeral.catalog.find(t=>t.entry.id===e)}function Si(e){return rn.state.ephemeral.installed.find(t=>t.id===e)}const bb={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=Si(n);if(r){e.scrollback.push({kind:"status",text:`${n} is already installed (v${r.version})`,level:"warn",ts:Date.now()});return}const s=mu(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 Os(s.latest,s.sourceRegistry),i=Ns(s,s.latest);let l;s.latest.serverBundleUrl&&(l=await mi(s.latest,s.sourceRegistry));const c={id:i.id,type:i.type,label:s.entry.label,version:i.version,contractVersion:i.contractVersion,sourceRegistry:i.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:s.latest.requires?.map(v=>v.id)??[]},u=await ii(c,a,l);if(!u.ok){let v=`install failed: ${u.error??"server error"}`;u.code==="missing-shards"&&u.missing&&(v=`install failed: missing required shard(s): ${u.missing.map(k=>k.id).join(", ")}`),e.scrollback.push({kind:"status",text:v,level:"error",ts:Date.now()});return}const f=await ki(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 rn.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()})}}},wb={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(!Si(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 Pc(n),await pu(n),await rn.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()})}}},kb={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=Si(n),s=mu(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 Sb(e,t){const n=e.split(".").map(a=>parseInt(a,10)||0),r=t.split(".").map(a=>parseInt(a,10)||0),s=Math.max(n.length,r.length);for(let a=0;a<s;a++){const i=n[a]??0,l=r[a]??0;if(i>l)return!0;if(i<l)return!1}return!1}let rn;const Eb={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 k=n.ephemeral.catalog.find(g=>g.entry.id===d.id);k&&Sb(k.latest.version,d.version)&&(v[d.id]=k)}n.ephemeral.updatable=v}async function s(){n.ephemeral.loading=!0,n.ephemeral.error=null;try{const v=await iu(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 zm();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 l(v){const d=t.registries.filter(k=>k!==v);await e.envUpdate({registries:d})}async function c(v){const d=n.ephemeral.updatable[v];if(!d)return;const k=n.ephemeral.installed.find(x=>x.id===v);if(!k)return;const g=await Os(d.latest,d.sourceRegistry);let w;d.latest.serverBundleUrl&&(w=await mi(d.latest,d.sourceRegistry));const y=Ns(d,d.latest),$=await vu(v),m={...k},b={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(x=>x.id)??[]},I=await ii(b,g,w);if(!I.ok){let x=I.error??"Server update failed";throw I.code==="missing-shards"&&I.missing&&(x=`missing required shard(s): ${I.missing.map(O=>O.id).join(", ")}`),new Error(x)}const L=await ki(g,y);if(!L.success){if($)try{await du(v,$,m)}catch(x){console.warn(`[sh3-store] Rollback failed for "${v}":`,x instanceof Error?x.message:x)}throw new Error(L.error??"Local install failed during update")}await a()}rn={env:t,state:n,get isAdmin(){return e.isAdmin},refreshCatalog:s,refreshInstalled:a,updatePackage:c,addRegistry:i,removeRegistry:l};const u={mount(v,d){const k=ze(db,{target:v});return{unmount(){He(k)}}}},f={mount(v,d){const k=ze(yb,{target:v});return{unmount(){He(k)}}}};e.registerView("sh3-store:browse",u),e.registerView("sh3-store:installed",f),e.registerVerb(bb),e.registerVerb(wb),e.registerVerb(kb),a()},autostart(){rn.refreshCatalog()}},xb={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 Ab=R('<div class="admin-error svelte-4q792t"> </div>'),Tb=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>'),Ib=R('<p class="admin-muted svelte-4q792t">Loading...</p>'),$b=R('<p class="admin-error svelte-4q792t"> </p>'),Rb=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>'),Cb=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),Db=R('<li class="admin-user-item svelte-4q792t"><!></li>'),Pb=R('<ul class="admin-user-list svelte-4q792t"></ul>'),Lb=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 Ob(e,t){ne(t,!0);let n=q(fe([])),r=q(!0),s=q(null),a=q(!1),i=q(""),l=q(""),c=q(""),u=q("user"),f=q(null),v=q(null),d=q(""),k=q("user"),g=q("");async function w(){_(r,!0),_(s,null);try{const z=await fetch("/api/admin/users",{credentials:"include"});if(!z.ok)throw new Error("Failed to fetch users");_(n,await z.json(),!0)}catch(z){_(s,z instanceof Error?z.message:"Failed to load users",!0)}finally{_(r,!1)}}async function y(){_(f,null);try{const z=await fetch("/api/admin/users",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:o(i),displayName:o(l)||o(i),password:o(c),role:o(u)})});if(!z.ok){const H=await z.json().catch(()=>({}));_(f,H.error||"Failed to create user",!0);return}_(i,""),_(l,""),_(c,""),_(u,"user"),_(a,!1),await w()}catch{_(f,"Network error")}}function $(z){_(v,z.id,!0),_(d,z.displayName,!0),_(k,z.role,!0),_(g,"")}async function m(){if(!o(v))return;const z={displayName:o(d),role:o(k)};o(g).trim()&&(z.password=o(g));try{if(!(await fetch(`/api/admin/users/${o(v)}`,{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(z)})).ok)return;_(v,null),await w()}catch{}}async function b(z){try{await fetch(`/api/admin/users/${z}`,{method:"DELETE",credentials:"include"}),await w()}catch{}}w();var I=Lb(),L=p(I),x=E(p(L),2),S=p(x,!0);h(x),h(L);var O=E(L,2);{var P=z=>{var H=Tb(),Z=p(H);ke(Z);var Y=E(Z,2);ke(Y);var te=E(Y,2);ke(te);var Q=E(te,2),ce=p(Q);ce.value=ce.__value="user";var he=E(ce);he.value=he.__value="admin",h(Q);var ie=E(Q,2),xe=E(ie,2);{var Ae=C=>{var N=Ab(),G=p(N,!0);h(N),V(()=>j(G,o(f))),T(C,N)};B(xe,C=>{o(f)&&C(Ae)})}h(H),V(C=>ie.disabled=C,[()=>!o(i).trim()||!o(c).trim()]),et("submit",H,C=>{C.preventDefault(),y()}),De(Z,()=>o(i),C=>_(i,C)),De(Y,()=>o(l),C=>_(l,C)),De(te,()=>o(c),C=>_(c,C)),ts(Q,()=>o(u),C=>_(u,C)),T(z,H)};B(O,z=>{o(a)&&z(P)})}var M=E(O,2);{var A=z=>{var H=Ib();T(z,H)},D=z=>{var H=$b(),Z=p(H,!0);h(H),V(()=>j(Z,o(s))),T(z,H)},F=z=>{var H=Pb();_e(H,21,()=>o(n),Z=>Z.id,(Z,Y)=>{var te=Db(),Q=p(te);{var ce=ie=>{var xe=Rb(),Ae=p(xe);ke(Ae);var C=E(Ae,2);ke(C);var N=E(C,2),G=p(N);G.value=G.__value="user";var le=E(G);le.value=le.__value="admin",h(N);var oe=E(N,2),Te=E(p(oe),2);h(oe),h(xe),et("submit",xe,ve=>{ve.preventDefault(),m()}),De(Ae,()=>o(d),ve=>_(d,ve)),De(C,()=>o(g),ve=>_(g,ve)),ts(N,()=>o(k),ve=>_(k,ve)),K("click",Te,()=>{_(v,null)}),T(ie,xe)},he=ie=>{var xe=Cb(),Ae=ye(xe),C=p(Ae),N=p(C,!0);h(C);var G=E(C,2),le=p(G);h(G),h(Ae);var oe=E(Ae,2),Te=p(oe),ve=E(Te,2);h(oe),V(()=>{j(N,o(Y).displayName),j(le,`${o(Y).username??""} · ${o(Y).role??""}`)}),K("click",Te,()=>$(o(Y))),K("click",ve,()=>b(o(Y).id)),T(ie,xe)};B(Q,ie=>{o(v)===o(Y).id?ie(ce):ie(he,-1)})}h(te),T(Z,te)}),h(H),T(z,H)};B(M,z=>{o(r)?z(A):o(s)?z(D,1):z(F,-1)})}h(I),V(()=>j(S,o(a)?"Cancel":"New user")),K("click",x,()=>{_(a,!o(a))}),T(e,I),re()}pe(["click"]);var Nb=R('<p class="admin-muted svelte-1hsgdb4">Loading...</p>'),Mb=R('<div class="admin-error svelte-1hsgdb4"> </div>'),jb=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),zb=R('<div class="admin-auth svelte-1hsgdb4"><h2 class="svelte-1hsgdb4">Auth Settings</h2> <!></div>');function qb(e,t){ne(t,!0);let n=q(null),r=q(!0),s=q(!1),a=q(null);async function i(){_(r,!0);try{const d=await fetch("/api/admin/settings",{credentials:"include"});if(!d.ok)throw new Error("Failed to fetch settings");_(n,await d.json(),!0)}catch(d){_(a,d instanceof Error?d.message:"Failed to load settings",!0)}finally{_(r,!1)}}async function l(){if(o(n)){_(s,!0),_(a,null);try{const d=await fetch("/api/admin/settings",{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(o(n))});if(!d.ok)throw new Error("Failed to save settings");_(n,await d.json(),!0)}catch(d){_(a,d instanceof Error?d.message:"Failed to save",!0)}finally{_(s,!1)}}}i();var c=zb(),u=E(p(c),2);{var f=d=>{var k=Nb();T(d,k)},v=d=>{var k=jb(),g=ye(k),w=p(g),y=p(w);ke(y),Kt(4),h(w);var $=E(w,2),m=p($);ke(m),Kt(4),h($);var b=E($,2),I=p(b);ke(I),Kt(4),h(b);var L=E(b,2),x=E(p(L),2);ke(x),h(L);var S=E(L,2),O=p(S,!0);h(S),h(g);var P=E(g,2);{var M=A=>{var D=Mb(),F=p(D,!0);h(D),V(()=>j(F,o(a))),T(A,D)};B(P,A=>{o(a)&&A(M)})}V(()=>{S.disabled=o(s),j(O,o(s)?"Saving...":"Save")}),Fr(y,()=>o(n).auth.required,A=>o(n).auth.required=A),Fr(m,()=>o(n).auth.guestAllowed,A=>o(n).auth.guestAllowed=A),Fr(I,()=>o(n).auth.selfRegistration,A=>o(n).auth.selfRegistration=A),De(x,()=>o(n).auth.sessionTTL,A=>o(n).auth.sessionTTL=A),K("click",S,l),T(d,k)};B(u,d=>{o(r)?d(f):o(n)&&d(v,1)})}h(c),T(e,c),re()}pe(["click"]);var Vb=R('<button type="button"> </button>'),Fb=R('<div class="admin-error svelte-1gkiloq"> </div>'),Ub=R('<div class="admin-error svelte-1gkiloq"> </div>'),Bb=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 Hb(e,t){ne(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=q("..."),s=q(!1),a=q(null),i=q(31536e3),l=q(31536e3),c=q(!1),u=q(null);const f=W(()=>o(i)!==o(l)),v=W(()=>d(o(i)));function d(C){return C===0?"0 seconds (off — browsers never cache)":C<60?`${C} seconds`:C<3600?`${Math.round(C/60)} minutes`:C<86400?`${Math.round(C/3600)} hours`:C<31536e3?`${Math.round(C/86400)} days`:`${Math.round(C/31536e3)} years`}async function k(){try{const C=await fetch("/api/version");if(C.ok){const N=await C.json();_(r,N.version,!0)}}catch{}}async function g(){try{const C=await fetch("/api/admin/settings",{credentials:"include"});if(C.ok){const G=(await C.json()).packages?.cacheMaxAge??31536e3;_(i,G,!0),_(l,G,!0)}}catch{}}async function w(){_(c,!0),_(u,null);try{const C=await fetch("/api/admin/settings",{method:"PUT",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({packages:{cacheMaxAge:o(i)}})});if(C.ok){const N=await C.json();_(l,N.packages?.cacheMaxAge??o(i),!0),_(i,o(l),!0)}else{const N=await C.json().catch(()=>({}));_(u,N.error||"Save failed",!0)}}catch{_(u,"Network error")}finally{_(c,!1)}}async function y(){_(s,!0),_(a,null);try{const C=await fetch("/api/admin/restart",{method:"POST",credentials:"include"});if(!C.ok){const N=await C.json().catch(()=>({}));_(a,N.error||"Restart failed",!0),_(s,!1)}}catch{_(a,"Network error"),_(s,!1)}}k(),g();var $=Bb(),m=E(p($),2),b=p(m),I=E(p(b),2),L=p(I,!0);h(I),h(b),h(m);var x=E(m,2),S=E(p(x),4);ke(S);var O=E(S,2),P=p(O),M=p(P,!0);h(P);var A=E(P);h(O);var D=E(O,2);_e(D,21,()=>n,C=>C.value,(C,N)=>{var G=Vb();let le;var oe=p(G,!0);h(G),V(()=>{le=Pe(G,1,"admin-snap svelte-1gkiloq",null,le,{active:o(i)===o(N).value}),G.disabled=o(c),j(oe,o(N).label)}),K("click",G,()=>_(i,o(N).value,!0)),T(C,G)}),h(D);var F=E(D,2),z=p(F),H=p(z,!0);h(z);var Z=E(z,2),Y=E(Z,2);{var te=C=>{var N=Fb(),G=p(N,!0);h(N),V(()=>j(G,o(u))),T(C,N)};B(Y,C=>{o(u)&&C(te)})}h(F),h(x);var Q=E(x,2),ce=E(p(Q),2),he=p(ce),ie=p(he,!0);h(he);var xe=E(he,2);{var Ae=C=>{var N=Ub(),G=p(N,!0);h(N),V(()=>j(G,o(a))),T(C,N)};B(xe,C=>{o(a)&&C(Ae)})}h(ce),h(Q),h($),V(()=>{j(L,o(r)),S.disabled=o(c),j(M,o(i)),j(A,` — ${o(v)??""}`),z.disabled=!o(f)||o(c),j(H,o(c)?"Saving...":"Save"),Z.disabled=!o(f)||o(c),he.disabled=o(s),j(ie,o(s)?"Restarting...":"Restart server")}),De(S,()=>o(i),C=>_(i,C)),K("click",z,w),K("click",Z,()=>_(i,o(l),!0)),K("click",he,y),T(e,$),re()}pe(["click"]);var Kb=R(`<div class="admin-key-created"><div class="admin-key-created-label">New key — copy now, it won't be shown again:</div> <code class="admin-key-value svelte-1afg5z5"> </code> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Dismiss</button></div>`),Wb=R('<div class="admin-error svelte-1afg5z5"> </div>'),Yb=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>'),Gb=R('<p class="admin-muted svelte-1afg5z5">Loading...</p>'),Xb=R('<p class="admin-error svelte-1afg5z5"> </p>'),Jb=R('<p class="admin-muted svelte-1afg5z5">No API keys. Create one to enable external access.</p>'),Zb=R('<button type="button" class="admin-btn-danger svelte-1afg5z5">Confirm</button> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Cancel</button>',1),Qb=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></div> <div class="admin-key-actions svelte-1afg5z5"><!></div></li>'),tw=R('<ul class="admin-key-list svelte-1afg5z5"></ul>'),nw=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 rw(e,t){ne(t,!0);let n=q(fe([])),r=q(!0),s=q(null),a=q(!1),i=q(""),l=q(null),c=q(null),u=q(null);async function f(){_(r,!0),_(s,null);try{const A=await fetch("/api/admin/keys",{credentials:"include"});if(!A.ok)throw new Error("Failed to fetch keys");_(n,await A.json(),!0)}catch(A){_(s,A instanceof Error?A.message:"Failed to load keys",!0)}finally{_(r,!1)}}async function v(){_(l,null);try{const A=await fetch("/api/admin/keys",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({label:o(i)})});if(!A.ok){const F=await A.json().catch(()=>({}));_(l,F.error||"Failed to create key",!0);return}const D=await A.json();_(c,{id:D.id,key:D.key},!0),_(i,""),_(a,!1),await f()}catch{_(l,"Network error")}}async function d(A){_(u,null);try{await fetch(`/api/admin/keys/${A}`,{method:"DELETE",credentials:"include"}),o(c)?.id===A&&_(c,null),await f()}catch{}}function k(A){return new Date(A).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}f();var g=nw(),w=p(g),y=E(p(w),2),$=p(y,!0);h(y),h(w);var m=E(w,2);{var b=A=>{var D=Kb(),F=E(p(D),2),z=p(F,!0);h(F);var H=E(F,2);h(D),V(()=>j(z,o(c).key)),K("click",H,()=>{_(c,null)}),T(A,D)};B(m,A=>{o(c)&&A(b)})}var I=E(m,2);{var L=A=>{var D=Yb(),F=p(D);ke(F);var z=E(F,2),H=E(z,2);{var Z=Y=>{var te=Wb(),Q=p(te,!0);h(te),V(()=>j(Q,o(l))),T(Y,te)};B(H,Y=>{o(l)&&Y(Z)})}h(D),V(Y=>z.disabled=Y,[()=>!o(i).trim()]),et("submit",D,Y=>{Y.preventDefault(),v()}),De(F,()=>o(i),Y=>_(i,Y)),T(A,D)};B(I,A=>{o(a)&&A(L)})}var x=E(I,2);{var S=A=>{var D=Gb();T(A,D)},O=A=>{var D=Xb(),F=p(D,!0);h(D),V(()=>j(F,o(s))),T(A,D)},P=A=>{var D=Jb();T(A,D)},M=A=>{var D=tw();_e(D,21,()=>o(n),F=>F.id,(F,z)=>{var H=ew(),Z=p(H),Y=p(Z),te=p(Y,!0);h(Y);var Q=E(Y,2),ce=p(Q);h(Q),h(Z);var he=E(Z,2),ie=p(he);{var xe=C=>{var N=Zb(),G=ye(N),le=E(G,2);K("click",G,()=>d(o(z).id)),K("click",le,()=>{_(u,null)}),T(C,N)},Ae=C=>{var N=Qb();K("click",N,()=>{_(u,o(z).id,!0)}),T(C,N)};B(ie,C=>{o(u)===o(z).id?C(xe):C(Ae,-1)})}h(he),h(H),V(C=>{j(te,o(z).label),j(ce,`${o(z).id??""} · ${C??""}`)},[()=>k(o(z).createdAt)]),T(F,H)}),h(D),T(A,D)};B(x,A=>{o(r)?A(S):o(s)?A(O,1):o(n).length===0?A(P,2):A(M,-1)})}h(g),V(()=>j($,o(a)?"Cancel":"New key")),K("click",y,()=>{_(a,!o(a))}),T(e,g),re()}pe(["click"]);const sw={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 l=ze(Ob,{target:a});return{unmount(){He(l)}}}},n={mount(a,i){const l=ze(qb,{target:a});return{unmount(){He(l)}}}},r={mount(a,i){const l=ze(Hb,{target:a});return{unmount(){He(l)}}}},s={mount(a,i){const l=ze(rw,{target:a});return{unmount(){He(l)}}}};e.registerView("sh3-admin:users",t),e.registerView("sh3-admin:auth",n),e.registerView("sh3-admin:system",r),e.registerView("sh3-admin:keys",s)}},aw={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"}]}},iw={id:"terminal",label:"Terminal",version:Zt,requiredShards:["shell"],layoutVersion:1},ow={manifest:iw,initialLayout:{type:"slot",slotId:"terminal.main",viewId:"shell:terminal"}},wo="sh3:migrations:shell-rename:done",ko="__shell__:",lw="__sh3core__:",So="sh3:user:__shell__:theme",Eo="sh3:user:__sh3core__:theme";function cw(e,t){if(t.getItem(wo))return;const n=t.getItem(So);n!==null&&t.getItem(Eo)===null&&(t.setItem(Eo,n),t.removeItem(So));for(const r of e.keys()){if(!r.startsWith(ko))continue;const s=lw+r.slice(ko.length),a=e.read(r);e.write(s,a),e.delete(r)}t.setItem(wo,"1")}function uw(e){li(e)}function fw(){const e=Ct.workspace;return{keys:()=>e.list(),read:t=>e.read(t),write:(t,n)=>e.write(t,n),delete:t=>e.delete(t)}}async function dw(e){typeof globalThis.localStorage<"u"&&cw(fw(),globalThis.localStorage);const t=new Set(e?.excludeShards),n=[r_,qy,Eb,sw];for(const a of n)t.has(a.manifest.id)||li(a);const r=[xb,aw,ow];for(const a of r)ci(a);await Gy();for(const[a,i]of qt)i.autostart&&await Vc(a);const s=vg();s&&Sn.has(s)&&await mr(s)}var vw=R('<button type="button" aria-label="Expand pane"><span class="collapse-icon"> </span></button>'),hw=R('<button type="button" aria-label="Collapse pane"><span class="collapse-icon"> </span></button>'),pw=R('<!> <div class="pane-content svelte-1adl4o1"><!></div>',1),mw=R('<div role="separator"></div>'),gw=R("<div><!></div> <!>",1),_w=R("<div></div>");function yw(e,t){ne(t,!0);const n=40,r=28;let s;const a=g=>t.pinned?.[g]??"fr",i=g=>t.collapsed?.[g]??!1;function l(g){return i(g)?`0 0 ${r}px`:a(g)==="px"?`0 0 ${Math.max(n,t.sizes[g])}px`:`${Math.max(1e-4,t.sizes[g])} 1 0`}let c=q(null);function u(g,w){if(i(w)||i(w+1))return;g.preventDefault(),g.target.setPointerCapture(g.pointerId);const y=s.getBoundingClientRect(),$=t.direction==="horizontal"?y.width:y.height;let m=0,b=0;for(let I=0;I<t.sizes.length;I++)a(I)==="fr"?m+=t.sizes[I]:b+=Math.max(n,t.sizes[I]);_(c,{handleIndex:w,startClient:t.direction==="horizontal"?g.clientX:g.clientY,startSizes:t.sizes.slice(),containerPx:$,totalFr:m,frAvailPx:Math.max(1,$-b)},!0)}function f(g){if(!o(c))return;const y=(t.direction==="horizontal"?g.clientX:g.clientY)-o(c).startClient,$=o(c).handleIndex,m=$+1,b=a($),I=a(m),L=o(c).totalFr/o(c).frAvailPx;if(b==="fr"&&I==="fr"){const x=n*L,S=y*L,O=o(c).startSizes[m]-x,P=-(o(c).startSizes[$]-x),M=Math.min(Math.max(S,P),O);t.onResize?.($,o(c).startSizes[$]+M),t.onResize?.(m,o(c).startSizes[m]-M)}else if(b==="px"&&I==="fr"){const x=o(c).frAvailPx-n,S=n-o(c).startSizes[$];t.onResize?.($,o(c).startSizes[$]+Math.min(Math.max(y,S),x))}else if(b==="fr"&&I==="px"){const x=o(c).startSizes[m]-n,S=-(o(c).frAvailPx-n);t.onResize?.(m,o(c).startSizes[m]-Math.min(Math.max(y,S),x))}else{const x=o(c).startSizes[m]-n,S=-(o(c).startSizes[$]-n),O=Math.min(Math.max(y,S),x);t.onResize?.($,o(c).startSizes[$]+O),t.onResize?.(m,o(c).startSizes[m]-O)}}function v(g){o(c)&&(g.target.releasePointerCapture(g.pointerId),_(c,null))}var d=_w();let k;_e(d,21,()=>Array(t.count),Vn,(g,w,y)=>{var $=gw(),m=ye($);let b;var I=p(m);{var L=M=>{var A=vw();let D;var F=p(A),z=p(F,!0);h(F),h(A),V(()=>{D=Pe(A,1,"collapse-header svelte-1adl4o1",null,D,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),j(z,t.direction==="horizontal"?"▸":"▾")}),K("click",A,()=>t.onCollapseToggle?.(y,!1)),T(M,A)},x=W(()=>i(y)),S=M=>{var A=pw(),D=ye(A);{var F=Z=>{var Y=hw();let te;var Q=p(Y),ce=p(Q,!0);h(Q),h(Y),V(()=>{te=Pe(Y,1,"collapse-header expanded svelte-1adl4o1",null,te,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),j(ce,t.direction==="horizontal"?"◂":"▴")}),K("click",Y,()=>t.onCollapseToggle?.(y,!0)),T(Z,Y)};B(D,Z=>{t.onCollapseToggle&&Z(F)})}var z=E(D,2),H=p(z);Ya(H,()=>t.pane,()=>y),h(z),T(M,A)};B(I,M=>{o(x)?M(L):M(S,-1)})}h(m);var O=E(m,2);{var P=M=>{var A=mw();let D;Ee(A,"data-testid",`splitter-handle-${y}`),V(F=>{D=Pe(A,1,"splitter-handle svelte-1adl4o1",null,D,F),Ee(A,"aria-orientation",t.direction==="horizontal"?"vertical":"horizontal")},[()=>({dragging:o(c)?.handleIndex===y,disabled:i(y)||i(y+1)})]),K("pointerdown",A,F=>u(F,y)),K("pointermove",A,f),K("pointerup",A,v),et("pointercancel",A,v),K("dblclick",A,()=>t.onCollapseToggle?.(y,!i(y))),T(M,A)};B(O,M=>{y<t.count-1&&M(P)})}V((M,A)=>{b=Pe(m,1,"splitter-pane svelte-1adl4o1",null,b,M),Ft(m,`flex: ${A??""};`)},[()=>({collapsed:i(y)}),()=>l(y)]),T(g,$)}),h(d),wt(d,g=>s=g,()=>s),V(()=>k=Pe(d,1,"splitter svelte-1adl4o1",null,k,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"})),T(e,d),re()}pe(["click","pointerdown","pointermove","pointerup","dblclick"]);function bw(e,t,n){if(!n)return null;const r=n.getBoundingClientRect(),s=t.filter(l=>!!l);if(s.length===0)return{left:4,top:2,height:r.height-4};const a=Math.max(0,Math.min(e,s.length));let i;return a===s.length?i=s[s.length-1].getBoundingClientRect().right:i=s[a].getBoundingClientRect().left,{left:i-r.left-1,top:2,height:r.height-4}}var ww=R('<span class="tab-dirty svelte-1kxcyhf" title="Unsaved changes"></span>'),kw=R('<span class="tab-icon svelte-1kxcyhf"> </span>'),Sw=R('<span class="tab-close svelte-1kxcyhf" role="button" tabindex="-1" title="Close">&#x2715;</span>'),Ew=R('<button type="button" role="tab"><!> <!> <span class="tab-label svelte-1kxcyhf"> </span> <!></button>'),xw=R('<div class="drop-indicator svelte-1kxcyhf"></div>'),Aw=R("<div><!></div>"),Tw=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 Iw(e,t){ne(t,!0);function n(y){t.clickGuard?.()||t.onActiveChange?.(y)}function r(y,$){$.stopPropagation(),t.onClose?.(y)}let s=q(void 0);const a=fe([]);let i=q(null);function l(y,$){if(!t.dragController)return;const m=a[y];m&&t.dragController.onPointerDown(y,$,m)}function c(y){if(!t.dragController||!t.dragController.isDragging||!o(s))return;const $=o(s).getBoundingClientRect(),m=a.filter(b=>!!b).map(b=>b.getBoundingClientRect());_(i,t.dragController.onStripHover($,y.clientX,y.clientY,m),!0)}function u(){t.dragController&&(_(i,null),t.dragController.onStripLeave())}var f=Tw(),v=p(f),d=p(v);_e(d,17,()=>t.labels,Vn,(y,$,m)=>{var b=Ew();let I;var L=p(b);{var x=F=>{var z=ww();T(F,z)};B(L,F=>{t.dirty?.[m]&&F(x)})}var S=E(L,2);{var O=F=>{var z=kw(),H=p(z,!0);h(z),V(()=>j(H,t.icons[m])),T(F,z)};B(S,F=>{t.icons?.[m]&&F(O)})}var P=E(S,2),M=p(P,!0);h(P);var A=E(P,2);{var D=F=>{var z=Sw();V(()=>Ee(z,"data-testid",t.tabIds?.[m]?`tab-close-${t.tabIds[m]}`:void 0)),K("click",z,H=>r(m,H)),K("keydown",z,H=>{(H.key==="Enter"||H.key===" ")&&r(m,H)}),T(F,z)};B(A,F=>{t.closable?.[m]&&F(D)})}h(b),wt(b,(F,z)=>a[z]=F,F=>a?.[F],()=>[m]),V(()=>{I=Pe(b,1,"tab svelte-1kxcyhf",null,I,{active:t.activeTab===m}),Ee(b,"aria-selected",t.activeTab===m),j(M,o($))}),K("click",b,()=>n(m)),K("pointerdown",b,F=>l(m,F)),et("auxclick",b,F=>{F.button===1&&t.closable?.[m]&&r(m,F)}),T(y,b)});var k=E(d,2);{var g=y=>{const $=W(()=>bw(o(i),a,o(s)));var m=pt(),b=ye(m);{var I=L=>{var x=xw();V(()=>Ft(x,`left: ${o($).left??""}px; height: ${o($).height??""}px; top: ${o($).top??""}px;`)),T(L,x)};B(b,L=>{o($)&&L(I)})}T(y,m)};B(k,y=>{o(i)!==null&&t.dragController?.isDragging&&y(g)})}h(v),wt(v,y=>_(s,y),()=>o(s));var w=E(v,2);_e(w,21,()=>t.labels,Vn,(y,$,m)=>{var b=Aw();let I;var L=p(b);Ya(L,()=>t.body,()=>m),h(b),V(()=>I=Pe(b,1,"tab-body-pane svelte-1kxcyhf",null,I,{active:t.activeTab===m})),T(y,b)}),h(w),h(f),K("pointermove",v,c),et("pointerleave",v,u),T(e,f),re()}pe(["pointermove","click","pointerdown","keydown"]);var $w=R('no factory for <code class="svelte-1czj0s8"> </code>',1),Rw=R("<em>empty slot</em>"),Cw=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>'),Dw=R('<div class="slot svelte-1czj0s8"><!></div>');function xo(e,t){ne(t,!0);let n=kn(t,"label",3,""),r=q(void 0),s=q(0),a=q(0);const i=W(()=>t.node.viewId?!!Ac(t.node.viewId):!1);Le(()=>{if(!o(r))return;const f=t.node.slotId,v=Uc(f,t.node.viewId,n()||t.node.viewId||f);o(r).appendChild(v);const d=new ResizeObserver(k=>{for(const g of k){const w=g.contentRect;_(s,Math.round(w.width),!0),_(a,Math.round(w.height),!0)}});return d.observe(o(r)),()=>{d.disconnect(),Bc(f)}});var l=Dw(),c=p(l);{var u=f=>{var v=Cw(),d=p(v),k=p(d,!0);h(d);var g=E(d,2),w=p(g);{var y=I=>{var L=$w(),x=E(ye(L)),S=p(x,!0);h(x),V(()=>j(S,t.node.viewId)),T(I,L)},$=I=>{var L=Rw();T(I,L)};B(w,I=>{t.node.viewId?I(y):I($,-1)})}h(g);var m=E(g,2),b=p(m);h(m),h(v),V(()=>{j(k,t.node.slotId),j(b,`${o(s)??""} × ${o(a)??""}`)}),T(f,v)};B(c,f=>{o(i)||f(u)})}h(l),wt(l,f=>_(r,f),()=>o(r)),V(()=>{Ee(l,"data-slot-id",t.node.slotId),Ee(l,"data-view-id",t.node.viewId??"")}),T(e,l),re()}const ae=fe({phase:"idle",source:null,pointerX:0,pointerY:0,target:null});let gu=0;function Pw(){return performance.now()<gu}const Ao=4;let _u=0,yu=0;function Lw(e,t,n,r,s){if(ae.phase!=="idle")return;const a=s.getBoundingClientRect();ae.phase="pending",ae.source={slotId:e,entry:t,sourceRoot:n,startRect:a,offsetX:r.clientX-a.left,offsetY:r.clientY-a.top},ae.pointerX=r.clientX,ae.pointerY=r.clientY,ae.target=null,_u=r.clientX,yu=r.clientY,Ow()}function Ow(){window.addEventListener("pointermove",bu,!0),window.addEventListener("pointerup",wu,!0),window.addEventListener("pointercancel",ku,!0),document.body.style.userSelect="none",document.body.dataset.dragging=""}function Nw(){window.removeEventListener("pointermove",bu,!0),window.removeEventListener("pointerup",wu,!0),window.removeEventListener("pointercancel",ku,!0),document.body.style.userSelect="",delete document.body.dataset.dragging}function bu(e){if(ae.pointerX=e.clientX,ae.pointerY=e.clientY,ae.phase==="pending"){const t=e.clientX-_u,n=e.clientY-yu;t*t+n*n>=Ao*Ao&&(ae.phase="dragging")}}function wu(e){ae.phase==="dragging"&&(Mw(),gu=performance.now()+50),Su()}function ku(e){Su()}function To(e){const t=Fn.tree;if(e.kind==="docked")return t.docked;const n=t.floats.find(r=>r.id===e.floatId);return n?n.content:null}function Io(e){if(e.kind!=="float")return;const t=Fn.tree,n=t.floats.findIndex(r=>r.id===e.floatId);n<0||Sc(t.floats[n].content)&&t.floats.splice(n,1)}function Mw(){const{source:e,target:t}=ae;if(!e||!t)return;const n=To(e.sourceRoot),r=To(t.root);if(!n||!r)return;if(t.kind==="strip"){const a=t.tabsNode.tabs.findIndex(i=>i.slotId===e.slotId);if(a>=0){pg(t.tabsNode,a,t.insertIndex),Pn(n),r!==n&&Pn(r),Io(e.sourceRoot);return}}const s=Ds(n,e.slotId);s&&(t.kind==="strip"?hg(t.tabsNode,s,t.insertIndex):Qc(r,t.path,s,t.side),Pn(n),r!==n&&Pn(r),Io(e.sourceRoot))}function Su(){ae.phase="idle",ae.source=null,ae.target=null,Nw()}function Aa(e){ae.phase==="dragging"&&(ae.target=e)}function ur(e){ae.phase==="dragging"&&ae.target&&(e&&!e(ae.target)||(ae.target=null))}var jw=R("<div></div>"),zw=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),qw=R("<div><!> <!></div>");function $o(e,t){ne(t,!0);let n=q(void 0),r=q(null);const s=W(()=>ae.phase==="dragging");function a(g,w,y){const $=y.left+y.width/2,m=y.top+y.height/2,b=g-$,I=w-m,L=b/y.width,x=I/y.height;return Math.abs(L)>Math.abs(x)?L<0?"left":"right":x<0?"top":"bottom"}function i(g){if(!o(n))return;const w=o(n).getBoundingClientRect();if(g.clientX<w.left||g.clientX>w.right||g.clientY<w.top||g.clientY>w.bottom){o(r)!==null&&(_(r,null),ur($=>$.kind==="split"&&$.path.join("/")===t.path.join("/")));return}const y=a(g.clientX,g.clientY,w);if(y!==o(r)){_(r,y,!0);const $={kind:"split",root:t.rootRef,path:[...t.path],side:y};Aa($)}}function l(){o(r)!==null&&(_(r,null),ur(g=>g.kind==="split"&&g.path.join("/")===t.path.join("/")))}var c=qw();let u;var f=p(c);{var v=g=>{var w=jw();V(()=>Pe(w,1,`quad-highlight quad-${o(r)??""}`,"svelte-re71zu")),T(g,w)};B(f,g=>{o(r)&&g(v)})}var d=E(f,2);{var k=g=>{var w=zw();Kt(6),T(g,w)};B(d,g=>{o(s)&&g(k)})}h(c),wt(c,g=>_(n,g),()=>o(n)),V(()=>u=Pe(c,1,"slot-drop-zone svelte-re71zu",null,u,{active:o(s)})),K("pointermove",c,i),et("pointerleave",c,l),T(e,c),re()}pe(["pointermove"]);var Vw=R('<div class="tab-slot-wrapper svelte-1gw9g38"><!> <!></div>'),Fw=R('<div class="empty-tabs-custom svelte-1gw9g38"></div>'),Uw=R('<div class="empty-tabs-default svelte-1gw9g38"><div class="empty-tabs-drop svelte-1gw9g38"></div></div>'),Bw=R('<div class="empty-tabs-placeholder svelte-1gw9g38"><!></div>'),Hw=R('<div class="leaf-slot-wrapper svelte-1gw9g38"><!> <!></div>');function Ei(e,t){ne(t,!0);let n=kn(t,"path",19,()=>[]),r=kn(t,"rootRef",19,()=>({kind:"docked"}));const s=W(()=>{let m;return r().kind==="docked"?m=Fn.root:m=Fn.tree.floats.find(I=>I.id===r().floatId)?.content??null,m?ls(m,n()):null});function a(m){return{get isDragging(){return ae.phase==="dragging"},onPointerDown(b,I,L){const x=m.tabs[b];x&&Lw(x.slotId,x,r(),I,L)},onStripHover(b,I,L,x){if(L<b.top||L>b.bottom)return ur(P=>P.kind==="strip"&&P.tabsNode===m),null;let S=x.length;for(let P=0;P<x.length;P++){const M=x[P],A=M.left+M.width/2;if(I<A){S=P;break}}const O=ae.source;if(O){const P=m.tabs.findIndex(M=>M.slotId===O.slotId);P>=0&&P<S&&(S-=1)}return Aa({kind:"strip",root:r(),tabsNode:m,insertIndex:S}),S},onStripLeave(){ur(b=>b.kind==="strip"&&b.tabsNode===m)}}}function i(m){return m.type==="split"?m:null}function l(m){return m.type==="tabs"?m:null}function c(m){return m.type==="slot"?m:null}function u(m){return m.map(b=>tg(b.slotId)||void 0)}function f(m){return m.map(b=>eg(b.slotId)||void 0)}function v(m,b){const I=m[b];I&&di(I.slotId)}function d(m,b){b(m)}function k(m,b){ae.phase==="dragging"&&Aa({kind:"strip",root:r(),tabsNode:b,insertIndex:0})}function g(){ur(m=>m.kind==="strip"&&m.insertIndex===0)}var w=pt(),y=ye(w);{var $=m=>{var b=pt(),I=ye(b);{var L=O=>{const P=(A,D=at)=>{{let F=W(()=>[...n(),D()]);Ei(A,{get rootRef(){return r()},get path(){return o(F)}})}},M=W(()=>i(o(s)));yw(O,{get direction(){return o(M).direction},get sizes(){return o(M).sizes},get pinned(){return o(M).pinned},get collapsed(){return o(M).collapsed},get count(){return o(M).children.length},get pane(){return P},onResize:(A,D)=>o(M).sizes[A]=D,onCollapseToggle:(A,D)=>{o(M).collapsed||(o(M).collapsed=o(M).children.map(()=>!1)),o(M).collapsed[A]=D}})},x=O=>{const P=W(()=>l(o(s)));var M=pt(),A=ye(M);{var D=z=>{const H=(Y,te=at)=>{const Q=W(()=>o(P)?.tabs[te()]);var ce=pt(),he=ye(ce);{var ie=xe=>{var Ae=Vw(),C=p(Ae);{let G=W(()=>({type:"slot",slotId:o(Q).slotId,viewId:o(Q).viewId}));xo(C,{get node(){return o(G)},get label(){return o(Q).label}})}var N=E(C,2);$o(N,{get rootRef(){return r()},get path(){return n()}}),h(Ae),T(xe,Ae)};B(he,xe=>{o(Q)&&xe(ie)})}T(Y,ce)},Z=W(()=>a(o(P)));{let Y=W(()=>o(P).tabs.map(ie=>ie.label)),te=W(()=>o(P).tabs.map(ie=>ie.icon)),Q=W(()=>u(o(P).tabs)),ce=W(()=>f(o(P).tabs)),he=W(()=>o(P).tabs.map(ie=>ie.slotId));Iw(z,{get labels(){return o(Y)},get icons(){return o(te)},get activeTab(){return o(P).activeTab},onActiveChange:ie=>o(P).activeTab=ie,get body(){return H},get dragController(){return o(Z)},get clickGuard(){return Pw},get closable(){return o(Q)},get dirty(){return o(ce)},onClose:ie=>v(o(P).tabs,ie),get tabIds(){return o(he)}})}},F=z=>{var H=Bw(),Z=p(H);{var Y=Q=>{var ce=Fw();oc(ce,(he,ie)=>d?.(he,ie),()=>o(P).emptyRenderer),T(Q,ce)},te=Q=>{var ce=Uw(),he=p(ce);h(ce),K("pointermove",he,ie=>k(ie,o(P))),et("pointerleave",he,g),T(Q,ce)};B(Z,Q=>{o(P).emptyRenderer?Q(Y):Q(te,-1)})}h(H),T(z,H)};B(A,z=>{o(P)&&o(P).tabs.length>0?z(D):o(P)?.persistent&&z(F,1)})}T(O,M)},S=O=>{const P=W(()=>c(o(s)));var M=Hw(),A=p(M);xo(A,{get node(){return o(P)}});var D=E(A,2);$o(D,{get rootRef(){return r()},get path(){return n()}}),h(M),T(O,M)};B(I,O=>{o(s).type==="split"?O(L):o(s).type==="tabs"?O(x,1):O(S,-1)})}T(m,b)};B(y,m=>{o(s)&&m($)})}T(e,w),re()}pe(["pointermove"]);var Kw=R('<span class="drag-preview-icon svelte-133fiip"> </span>'),Ww=R('<div class="drag-preview svelte-133fiip"><!> <span class="drag-preview-label svelte-133fiip"> </span></div>');function Yw(e,t){ne(t,!0);const n=W(()=>ae.phase==="dragging"&&!!ae.source),r=W(()=>ae.source?ae.pointerX-ae.source.offsetX:0),s=W(()=>ae.source?ae.pointerY-ae.source.offsetY:0),a=W(()=>ae.source?.startRect.width??0),i=W(()=>ae.source?.startRect.height??0),l=W(()=>ae.source?.entry.label??""),c=W(()=>ae.source?.entry.icon);var u=pt(),f=ye(u);{var v=d=>{var k=Ww(),g=p(k);{var w=m=>{var b=Kw(),I=p(b,!0);h(b),V(()=>j(I,o(c))),T(m,b)};B(g,m=>{o(c)&&m(w)})}var y=E(g,2),$=p(y,!0);h(y),h(k),V(()=>{Ft(k,`left: ${o(r)??""}px; top: ${o(s)??""}px; width: ${o(a)??""}px; height: ${o(i)??""}px;`),j($,o(l))}),T(d,k)};B(f,d=>{o(n)&&d(v)})}T(e,u),re()}var Gw=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 Xw(e,t){ne(t,!0);const n=kn(t,"entry",7);let r=q(!1),s={x:0,y:0};function a(m){if(m.button!==0||m.target.closest(".sh3-float-close"))return;m.currentTarget.setPointerCapture(m.pointerId),_(r,!0),s={x:m.clientX-n().position.x,y:m.clientY-n().position.y},Tt.focus(n().id)}function i(m){o(r)&&(n().position.x=m.clientX-s.x,n().position.y=m.clientY-s.y)}function l(m){if(!o(r))return;_(r,!1);const b=m.currentTarget;b.hasPointerCapture(m.pointerId)&&b.releasePointerCapture(m.pointerId)}function c(){Tt.focus(n().id)}function u(m){m.stopPropagation(),Tt.close(n().id)}var f=Gw();let v;var d=p(f),k=p(d),g=p(k,!0);h(k);var w=E(k,2);h(d);var y=E(d,2),$=p(y);{let m=W(()=>({kind:"float",floatId:n().id}));Ei($,{get rootRef(){return o(m)},path:[]})}h(y),h(f),V(()=>{Ee(f,"aria-label",n().title??"Float panel"),v=Ft(f,"",v,{left:`${n().position.x??""}px`,top:`${n().position.y??""}px`,width:`${n().size.w??""}px`,height:`${n().size.h??""}px`}),j(g,n().title??n().content.type)}),K("click",f,c),K("pointerdown",d,a),K("pointermove",d,i),K("pointerup",d,l),et("pointercancel",d,l),K("click",w,u),T(e,f),re()}pe(["click","pointerdown","pointermove","pointerup"]);var Jw=R('<div class="sh3-float-layer svelte-1rzcset"></div>');function Zw(e,t){ne(t,!0);const n=W(()=>Fn.floats);var r=Jw();_e(r,21,()=>o(n),s=>s.id,(s,a)=>{Xw(s,{get entry(){return o(a)}})}),h(r),T(e,r),re()}const Ro="/assets/icons-CnAqUqbR.svg";var Qw=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>'),tk=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),nk=R('<div class="guest-banner-slot"><!></div>');function rk(e,t){ne(t,!0);let n=q(!1),r=q(""),s=q(""),a=q(null),i=q(!1);async function l(){if(!o(r).trim()||!o(s).trim()||o(i))return;_(i,!0),_(a,null);const d=await $c(o(r).trim(),o(s).trim());_(i,!1),d.ok?_(n,!1):_(a,d.error,!0)}var c=nk(),u=p(c);{var f=d=>{var k=tk(),g=ye(k),w=E(p(g),2);h(g);var y=E(g,2);{var $=m=>{var b=ek(),I=p(b),L=p(I),x=p(L);ke(x);var S=E(x,2);ke(S);var O=E(S,2),P=p(O),M=p(P,!0);h(P);var A=E(P,2);h(O),h(L);var D=E(L,2);{var F=z=>{var H=Qw(),Z=p(H,!0);h(H),V(()=>j(Z,o(a))),T(z,H)};B(D,z=>{o(a)&&z(F)})}h(I),h(b),V(z=>{x.disabled=o(i),S.disabled=o(i),P.disabled=z,j(M,o(i)?"Signing in...":"Sign in")},[()=>o(i)||!o(r).trim()||!o(s).trim()]),et("submit",L,z=>{z.preventDefault(),l()}),De(x,()=>o(r),z=>_(r,z)),De(S,()=>o(s),z=>_(s,z)),K("click",A,()=>{_(n,!1),_(a,null)}),T(m,b)};B(y,m=>{o(n)&&m($)})}K("click",w,()=>{_(n,!0)}),T(d,k)},v=W(()=>Cc());B(u,d=>{o(v)&&d(f)})}h(c),T(e,c),re()}pe(["click"]);var sk=R('<code class="sh3-consent-scope svelte-14me5sj"> </code>'),ak=R('<dt class="svelte-14me5sj">Peer</dt> <dd class="svelte-14me5sj"> </dd>',1),ik=R('<dt class="svelte-14me5sj">Expires in</dt> <dd class="svelte-14me5sj"> </dd>',1),ok=R('<div class="sh3-consent-backdrop svelte-14me5sj" role="dialog" aria-modal="true" aria-label="Key creation consent"><div class="sh3-consent-card svelte-14me5sj"><h2 class="sh3-consent-title svelte-14me5sj"><span class="svelte-14me5sj"> </span> wants to create a key</h2> <dl class="sh3-consent-fields svelte-14me5sj"><dt class="svelte-14me5sj">Label</dt> <dd class="svelte-14me5sj"> </dd> <dt class="svelte-14me5sj">Scopes</dt> <dd class="sh3-consent-scopes svelte-14me5sj"></dd> <!> <!></dl> <div class="sh3-consent-actions svelte-14me5sj"><button type="button" class="sh3-consent-deny svelte-14me5sj">Deny</button> <button type="button" class="sh3-consent-approve svelte-14me5sj">Approve</button></div></div></div>');function lk(e,t){ne(t,!0);let n=q(null);Le(()=>zc(u=>{_(n,u,!0)}));function r(){o(n)&&(Sa(o(n).requestId,!0),_(n,null))}function s(){o(n)&&(Sa(o(n).requestId,!1),_(n,null))}var a=pt(),i=ye(a);{var l=c=>{var u=ok(),f=p(u),v=p(f),d=p(v),k=p(d,!0);h(d),Kt(),h(v);var g=E(v,2),w=E(p(g),2),y=p(w,!0);h(w);var $=E(w,4);_e($,20,()=>o(n).scopes,P=>P,(P,M)=>{var A=sk(),D=p(A,!0);h(A),V(()=>j(D,M)),T(P,A)}),h($);var m=E($,2);{var b=P=>{var M=ak(),A=E(ye(M),2),D=p(A);h(A),V(()=>j(D,`${o(n).peerRole??"—"??""}${o(n).peerId?` · ${o(n).peerId}`:""}`)),T(P,M)};B(m,P=>{(o(n).peerRole||o(n).peerId)&&P(b)})}var I=E(m,2);{var L=P=>{var M=ik(),A=E(ye(M),2),D=p(A);h(A),V(F=>j(D,`${F??""}s`),[()=>Math.round(o(n).expiresIn/1e3)]),T(P,M)};B(I,P=>{o(n).expiresIn&&P(L)})}h(g);var x=E(g,2),S=p(x);za(S,!0);var O=E(S,2);h(x),h(f),h(u),V(()=>{j(k,o(n).shardId),j(y,o(n).label)}),K("click",S,s),K("click",O,r),T(c,u)};B(i,c=>{o(n)&&c(l)})}T(e,a),re()}pe(["click"]);var ck=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>'),uk=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>'),fk=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 vk(e,t){ne(t,!0);const n=W(Rc),r=W(xs),s=W(Jt),a=W(()=>Gc()==="home"),i=[{layer:1,name:"floating"},{layer:2,name:"drag-preview"},{layer:3,name:"popup"},{layer:4,name:"modal"},{layer:5,name:"toast"},{layer:6,name:"command"}],l=fe({});Le(()=>{for(const{name:I}of i){const L=l[I];L&&Rp(I,L)}return()=>{for(const{name:I}of i)Cp(I)}}),Le(()=>{function I(L){if(L.key!=="²"||!o(s))return;const x=L.target;if(x){const S=x.tagName;if(S==="INPUT"||S==="TEXTAREA"||x.isContentEditable)return}L.preventDefault(),Ps("shell:terminal")||Tt.open("shell:terminal",{title:"Shell"})}return window.addEventListener("keydown",I),()=>window.removeEventListener("keydown",I)}),Le(()=>{const I=Fn.tree;return em(I.floats,()=>({w:window.innerWidth,h:window.innerHeight})),()=>tm()}),Le(()=>Gm());var c=dk(),u=p(c),f=p(u),v=p(f),d=p(v);h(v),h(f);var k=E(f,4);{var g=I=>{var L=uk(),x=p(L),S=p(x,!0);h(x);var O=E(x,2),P=p(O,!0);h(O);var M=E(O,2);{var A=F=>{var z=ck(),H=p(z),Z=p(H);h(H),h(z),V(()=>Ee(Z,"href",`${Ro}#log-out`)),K("click",z,()=>Lm()),T(F,z)},D=W(()=>!Nm());B(M,F=>{o(D)&&F(A)})}h(L),V(()=>{j(S,o(r).displayName),j(P,o(s)?"admin":"user")}),T(I,L)};B(k,I=>{o(n)&&o(r)&&I(g)})}h(u);var w=E(u,2);rk(w,{});var y=E(w,2),$=p(y);Ei($,{}),h(y);var m=E(y,4);_e(m,21,()=>i,({layer:I,name:L})=>I,(I,L)=>{let x=()=>o(L).layer,S=()=>o(L).name;var O=fk(),P=p(O);{var M=D=>{Zw(D,{})},A=D=>{Yw(D,{})};B(P,D=>{S()==="floating"?D(M):S()==="drag-preview"&&D(A,1)})}h(O),wt(O,(D,F)=>l[F]=D,D=>l?.[D],()=>[S()]),V(()=>{Ee(O,"data-shell-overlay",S()),Ee(O,"data-shell-layer",x()),Ft(O,`z-index: var(--shell-z-layer-${x()??""});`)}),T(I,O)}),h(m);var b=E(m,2);lk(b,{}),h(c),V(()=>{f.disabled=o(a),Ee(d,"href",`${Ro}#house`)}),K("click",f,()=>Zc()),T(e,c),re()}pe(["click"]);const hk="modulepreload",pk=function(e){return"/"+e},Co={},mk=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=Promise.allSettled(n.map(c=>{if(c=pk(c),c in Co)return;Co[c]=!0;const u=c.endsWith(".css"),f=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${f}`))return;const v=document.createElement("link");if(v.rel=u?"stylesheet":hk,u||(v.as="script"),v.crossOrigin="",v.href=c,l&&v.setAttribute("nonce",l),document.head.appendChild(v),u)return new Promise((d,k)=>{v.addEventListener("load",d),v.addEventListener("error",()=>k(new Error(`Unable to preload CSS for ${c}`)))})}))}function a(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&a(l.reason);return t().catch(a)})};async function gk(){try{const{TauriStoreBackend:e}=await mk(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:Mo}}}var _k=R('<button type="button" class="signin-link svelte-lh4k15">Create an account</button>'),yk=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),bk=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),wk=R('<div class="signin-error svelte-lh4k15"> </div>'),kk=R('<div class="signin-wall svelte-lh4k15"><div class="signin-card svelte-lh4k15"><h1 class="signin-brand svelte-lh4k15">SH3</h1> <!> <!></div></div>');function Sk(e,t){ne(t,!0);let n=q("login"),r=q(""),s=q(""),a=q(""),i=q(null),l=q(!1);async function c(){if(!o(r).trim()||!o(s).trim()||o(l))return;_(l,!0),_(i,null);const m=await $c(o(r).trim(),o(s).trim());_(l,!1),m.ok?t.onSuccess():_(i,m.error,!0)}async function u(){if(!o(r).trim()||!o(s).trim()||o(l))return;_(l,!0),_(i,null);const m=await Pm(o(r).trim(),o(s).trim(),o(a).trim()||void 0);_(l,!1),m.ok?t.onSuccess():_(i,m.error,!0)}function f(m){_(n,m,!0),_(i,null)}var v=kk(),d=p(v),k=E(p(d),2);{var g=m=>{var b=yk(),I=ye(b),L=p(I);ke(L);var x=E(L,2);ke(x);var S=E(x,2),O=p(S,!0);h(S),h(I);var P=E(I,2);{var M=A=>{var D=_k();K("click",D,()=>f("register")),T(A,D)};B(P,A=>{t.selfRegistration&&A(M)})}V(A=>{L.disabled=o(l),x.disabled=o(l),S.disabled=A,j(O,o(l)?"Signing in...":"Sign in")},[()=>o(l)||!o(r).trim()||!o(s).trim()]),et("submit",I,A=>{A.preventDefault(),c()}),De(L,()=>o(r),A=>_(r,A)),De(x,()=>o(s),A=>_(s,A)),T(m,b)},w=m=>{var b=bk(),I=ye(b),L=p(I);ke(L);var x=E(L,2);ke(x);var S=E(x,2);ke(S);var O=E(S,2),P=p(O,!0);h(O),h(I);var M=E(I,2);V(A=>{L.disabled=o(l),x.disabled=o(l),S.disabled=o(l),O.disabled=A,j(P,o(l)?"Creating...":"Create account")},[()=>o(l)||!o(r).trim()||!o(s).trim()]),et("submit",I,A=>{A.preventDefault(),u()}),De(L,()=>o(r),A=>_(r,A)),De(x,()=>o(a),A=>_(a,A)),De(S,()=>o(s),A=>_(s,A)),K("click",M,()=>f("login")),T(m,b)};B(k,m=>{o(n)==="login"?m(g):m(w,-1)})}var y=E(k,2);{var $=m=>{var b=wk(),I=p(b,!0);h(b),V(()=>j(I,o(i))),T(m,b)};B(y,m=>{o(i)&&m($)})}h(d),h(v),T(e,v),re()}pe(["click"]);async function Ek(e){const t=e?.serverUrl??"",n=await gk();n.backends&&(ro("workspace",n.backends.workspace),ro("user",n.backends.user)),n.localOwner&&Om(),Dc(t),Pg();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)Qs("local");else if(s){fo(t,s),Qs(s.tenantId);const{auth:i,session:l}=s;if(!l&&i.required&&!i.guestAllowed){await xk(r,s);const c=await fetch(`${t}/api/boot`,{credentials:"include"});c.ok&&(s=await c.json(),fo(t,s),Qs(s.tenantId))}}if(e?.discoveredPackages?.length)for(const i of e.discoveredPackages)try{const l=await fetch(i.bundleUrl);if(!l.ok){console.warn(`[sh3] Failed to fetch discovered package "${i.id}": HTTP ${l.status}`);continue}const c=await l.arrayBuffer(),u=await bi(c);wi(u,{version:i.version,sourceRegistry:i.sourceRegistry??"",contractVersion:i.contractVersion??""}),console.log(`[sh3] Loaded discovered package: ${i.id}`)}catch(l){console.warn(`[sh3] Failed to load discovered package "${i.id}":`,l)}if(e?.shards)for(const i of e.shards)uw(i);if(e?.apps)for(const i of e.apps)ci(i);const a={};e?.excludeShards&&(a.excludeShards=e.excludeShards),await dw(a),ze(vk,{target:r})}function xk(e,t){return new Promise(n=>{const r=ze(Sk,{target:e,props:{selfRegistration:t.auth.selfRegistration,onSuccess:()=>{He(r),n()}}})})}const xi=window.location.origin;Dc(xi);Rm(new Em(xi));let Eu=[];try{const e=await fetch("/api/packages");e.ok&&(Eu=await e.json())}catch{}await Ek({discoveredPackages:Eu,serverUrl:xi});
17
+ //# sourceMappingURL=index-DKuJNK2S.js.map