sh3-server 0.10.5 → 0.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/assets/index-BDMcb52i.js +18 -0
- package/app/assets/index-BDMcb52i.js.map +1 -0
- package/app/assets/index-B_LI3kPd.css +1 -0
- package/app/index.html +2 -2
- package/dist/auth.d.ts +6 -4
- package/dist/auth.js +22 -8
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/app/assets/index-BOrfojaa.css +0 -1
- package/app/assets/index-C0N0oGGx.js +0 -18
- package/app/assets/index-C0N0oGGx.js.map +0 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();const of=1,lf=2,El=4,cf=8,uf=16,df=1,Al=4,ff=8,vf=16,hf=1,pf=2,mf=4,la=1,Il=2,gf=4,_f=8,Ls="[",js="[!",yo="[?",Ns="]",Cn={},Ie=Symbol(),ht=Symbol("filename"),Vn=Symbol("hmr"),Tl="http://www.w3.org/1999/xhtml",$r="http://www.w3.org/2000/svg",ca="http://www.w3.org/1998/Math/MathML",Cl="@attach",Rl=!1;var cr=Array.isArray,yf=Array.prototype.indexOf,er=Array.prototype.includes,zs=Array.from,ys=Object.keys,Rn=Object.defineProperty,jt=Object.getOwnPropertyDescriptor,Pl=Object.getOwnPropertyDescriptors,Dl=Object.prototype,bf=Array.prototype,$s=Object.getPrototypeOf,bo=Object.isExtensible,wf=Object.prototype.hasOwnProperty;function Un(e){return typeof e=="function"}const pt=()=>{};function wo(e){return typeof e?.then=="function"}function kf(e){return e()}function Di(e){for(var t=0;t<e.length;t++)e[t]()}function Ml(){var e,t,n=new Promise((r,s)=>{e=r,t=s});return{promise:n,resolve:e,reject:t}}function Sf(e,t,n=!1){return e===void 0?n?t():t:e}function Ol(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 xf(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 Ue=2,Pn=4,qr=8,ua=1<<24,Nt=16,qt=32,rn=64,Mi=128,It=512,je=1024,Ve=2048,Bt=4096,et=8192,lt=16384,an=32768,Oi=1<<25,Vt=65536,Rr=1<<17,Ll=1<<18,_n=1<<19,jl=1<<20,Wt=1<<25,Dn=65536,Li=1<<21,tr=1<<22,fn=1<<23,Ge=Symbol("$state"),qs=Symbol("legacy props"),Ef=Symbol(""),Af=Symbol("proxy path"),If=Symbol("hmr anchor"),Ht=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},qn=!!globalThis.document?.contentType&&globalThis.document.contentType.includes("xml"),Nl=1,Br=3,on=8,zl=11;function $l(e){throw new Error("https://svelte.dev/e/experimental_async_required")}function Tf(){throw new Error("https://svelte.dev/e/invalid_default_snippet")}function ko(){throw new Error("https://svelte.dev/e/invalid_snippet_arguments")}function ur(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function Cf(){throw new Error("https://svelte.dev/e/missing_context")}function Rf(){throw new Error("https://svelte.dev/e/snippet_without_render_tag")}function Pf(e){throw new Error("https://svelte.dev/e/store_invalid_shape")}function Df(){throw new Error("https://svelte.dev/e/svelte_element_invalid_this_value")}function Mf(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Of(e,t){throw new Error("https://svelte.dev/e/component_api_changed")}function Lf(e,t){throw new Error("https://svelte.dev/e/component_api_invalid_new")}function jf(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Nf(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function zf(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function $f(e){throw new Error("https://svelte.dev/e/effect_orphan")}function qf(){throw new Error("https://svelte.dev/e/effect_pending_outside_reaction")}function Bf(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Vf(){throw new Error("https://svelte.dev/e/fork_discarded")}function Uf(){throw new Error("https://svelte.dev/e/fork_timing")}function Ff(){throw new Error("https://svelte.dev/e/get_abort_signal_outside_reaction")}function Hf(){throw new Error("https://svelte.dev/e/hydration_failed")}function ql(e){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}function Kf(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Wf(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Yf(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Gf(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Xf(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}function Jf(e,t){console.warn("https://svelte.dev/e/assignment_value_stale")}function Zf(e,t){console.warn("https://svelte.dev/e/binding_property_non_reactive")}function Qf(e){console.warn("https://svelte.dev/e/console_log_state")}function ev(){console.warn("https://svelte.dev/e/derived_inert")}function tv(e,t){console.warn("https://svelte.dev/e/event_handler_invalid")}function nv(e){console.warn("https://svelte.dev/e/hydratable_missing_but_expected")}function Vr(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function rv(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_binding")}function sv(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_mutation")}function iv(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function Bl(e){console.warn("https://svelte.dev/e/state_proxy_equality_mismatch")}function av(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let W=!1;function xe(e){W=e}let ne;function ye(e){if(e===null)throw Vr(),Cn;return ne=e}function nt(){return ye(yt(ne))}function v(e){if(W){if(yt(ne)!==null)throw Vr(),Cn;ne=e}}function ov(e){W&&(ne=e.content)}function nn(e=1){if(W){for(var t=e,n=ne;t--;)n=yt(n);ne=n}}function Mn(e=!0){for(var t=0,n=ne;;){if(n.nodeType===on){var r=n.data;if(r===Ns){if(t===0)return n;t-=1}else(r===Ls||r===js||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var s=yt(n);e&&n.remove(),n=s}}function da(e){if(!e||e.nodeType!==on)throw Vr(),Cn;return e.data}function Vl(e){return e===this.v}function Ul(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function Fl(e){return!Ul(e,this.v)}let lv=!1;function cv(e){console.warn("https://svelte.dev/e/dynamic_void_element_content")}const uv=[];function On(e,t=!1,n=!1){return as(e,new Map,"",uv,null,n)}function as(e,t,n,r,s=null,i=!1){if(typeof e=="object"&&e!==null){var a=t.get(e);if(a!==void 0)return a;if(e instanceof Map)return new Map(e);if(e instanceof Set)return new Set(e);if(cr(e)){var l=Array(e.length);t.set(e,l),s!==null&&t.set(s,l);for(var c=0;c<e.length;c+=1){var u=e[c];c in e&&(l[c]=as(u,t,n,r,null,i))}return l}if($s(e)===Dl){l={},t.set(e,l),s!==null&&t.set(s,l);for(var d of Object.keys(e))l[d]=as(e[d],t,n,r,null,i);return l}if(e instanceof Date)return structuredClone(e);if(typeof e.toJSON=="function"&&!i)return as(e.toJSON(),t,n,r,e)}if(e instanceof EventTarget)return e;try{return structuredClone(e)}catch{return e}}let Bn=null;function Hl(e,t){const n=e.v;if(n===Ie)return;const r=dv(e),s=le,i=e.wv>s.wv||s.wv===0,a=i?"color: CornflowerBlue; font-weight: bold":"color: grey; font-weight: normal";if(console.groupCollapsed(e.label?`%c${r}%c ${e.label}`:`%c${r}%c`,a,i?"font-weight: normal":a,typeof n=="object"&&n!==null&&Ge in n?On(n,!0):n),r==="$derived"){const c=new Set(e.deps);for(const u of c)Hl(u)}if(e.created&&console.log(e.created),i&&e.updated)for(const c of e.updated.values())c.error&&console.log(c.error);if(t)for(var l of t.traces)console.log(l);console.groupEnd()}function dv(e){return e.f&(Ue|tr)?"$derived":e.label?.startsWith("$")?"store":"$state"}function fv(e,t){var n=Bn;try{Bn={entries:new Map,reaction:le};var r=performance.now(),s=t(),i=(performance.now()-r).toFixed(2),a=Ee(e);if(!Wr())console.log(`${a} %cran outside of an effect (${i}ms)`,"color: grey");else if(Bn.entries.size===0)console.log(`${a} %cno reactive dependencies (${i}ms)`,"color: grey");else{console.group(`${a} %c(${i}ms)`,"color: grey");var l=Bn.entries;Ee(()=>{for(const[c,u]of l)Hl(c,u)}),Bn=null,console.groupEnd()}return s}finally{Bn=n}}function vv(e,t){return e.label=t,Kl(e.v,t),e}function Kl(e,t){return e?.[Af]?.(t),e}function hv(e){const t=new Error,n=pv();return n.length===0?null:(n.unshift(`
|
|
2
|
+
`),Rn(t,"stack",{value:n.join(`
|
|
3
|
+
`)}),Rn(t,"name",{value:e}),t)}function pv(){const e=Error.stackTraceLimit;Error.stackTraceLimit=1/0;const t=new Error().stack;if(Error.stackTraceLimit=e,!t)return[];const n=t.split(`
|
|
4
|
+
`),r=[];for(let s=0;s<n.length;s++){const i=n[s],a=i.replaceAll("\\","/");if(i.trim()!=="Error"){if(i.includes("validate_each_keys"))return[];a.includes("svelte/src/internal")||a.includes("node_modules/.vite")||r.push(i)}}return r}let _e=null;function nr(e){_e=e}let os=null;function mv(e,t,n,r,s,i){const a=os;os={type:t,file:n[ht],line:r,column:s,parent:a,...i};try{return e()}finally{os=a}}let fa=null;function So(e){fa=e}function gv(){const e={};return[()=>(Gl(e)||Cf(),Wl(e)),t=>Yl(e,t)]}function Wl(e){return Bs().get(e)}function Yl(e,t){return Bs().set(e,t),t}function Gl(e){return Bs().has(e)}function _v(){return Bs()}function se(e,t=!1,n){_e={p:_e,i:!1,c:null,e:null,s:e,x:null,r:re,l:null}}function ie(e){var t=_e,n=t.e;if(n!==null){t.e=null;for(var r of n)Sc(r)}return e!==void 0&&(t.x=e),t.i=!0,_e=t.p,e??{}}function Xl(){return!0}function Bs(e){return _e===null&&ur(),_e.c??=new Map(yv(_e)||void 0)}function yv(e){let t=e.p;for(;t!==null;){const n=t.c;if(n!==null)return n;t=t.p}return null}let Sn=[];function Jl(){var e=Sn;Sn=[],Di(e)}function tt(e){if(Sn.length===0&&!Jn){var t=Sn;queueMicrotask(()=>{t===Sn&&Jl()})}Sn.push(e)}function bv(){for(;Sn.length>0;)Jl()}function Zl(e){var t=re;if(t===null)return le.f|=fn,e;if(!(t.f&an)&&!(t.f&Pn))throw e;Yt(e,t)}function Yt(e,t){for(;t!==null;){if(t.f&Mi){if(!(t.f&an))throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const wv=-7169;function Re(e,t){e.f=e.f&wv|t}function va(e){e.f&It||e.deps===null?Re(e,je):Re(e,Bt)}function Ql(e){if(e!==null)for(const t of e)!(t.f&Ue)||!(t.f&Dn)||(t.f^=Dn,Ql(t.deps))}function ec(e,t,n){e.f&Ve?t.add(e):e.f&Bt&&n.add(e),Ql(e.deps),Re(e,je)}function tc(e,t,n){if(e==null)return t(void 0),pt;const r=Ee(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}function kv(e){let t;return tc(e,n=>t=n)(),t}let ji=!1,wr=!1,Ni=Symbol();function Sv(e,t,n){const r=n[t]??={store:null,source:Fs(void 0),unsubscribe:pt};if(r.store!==e&&!(Ni in n))if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=pt;else{var s=!0;r.unsubscribe=tc(e,i=>{s?r.source.v=i:g(r.source,i)}),s=!1}return e&&Ni in n?kv(e):o(r.source)}function xv(e,t,n){let r=n[t];return r&&r.store!==e&&(r.unsubscribe(),r.unsubscribe=pt),e}function nc(e,t){return Vs(e,t),t}function Ev(e,t){var n=e[t];n.store!==null&&nc(n.store,n.source.v)}function Av(){const e={};function t(){wt(()=>{for(var n in e)e[n].unsubscribe();Rn(e,Ni,{enumerable:!1,value:!0})})}return[e,t]}function Vs(e,t){ji=!0;try{e.set(t)}finally{ji=!1}}function Iv(e,t,n){return Vs(e,n),t}function Tv(e,t,n=1){return Vs(e,t+n),t}function Cv(e,t,n=1){const r=t+n;return Vs(e,r),r}function Rv(){wr=!0}function rc(e){var t=wr;try{return wr=!1,[e(),wr]}finally{wr=t}}const en=new Set;let oe=null,Qe=null,zi=null,Jn=!1,_i=!1,Wn=null,ls=null;var xo=0;let Pv=1;class Pt{id=Pv++;current=new Map;previous=new Map;#e=new Set;#t=new Set;#n=new Set;#i=new Map;#s=new Map;#a=null;#r=[];#o=[];#l=new Set;#u=new Set;#c=new Map;#f=new Set;is_fork=!1;#h=!1;#v=new Set;#d(){return this.is_fork||this.#s.size>0}#_(){for(const r of this.#v)for(const s of r.#s.keys()){for(var t=!1,n=s;n.parent!==null;){if(this.#c.has(n)){t=!0;break}n=n.parent}if(!t)return!0}return!1}skip_effect(t){this.#c.has(t)||this.#c.set(t,{d:[],m:[]}),this.#f.delete(t)}unskip_effect(t,n=r=>this.schedule(r)){var r=this.#c.get(t);if(r){this.#c.delete(t);for(var s of r.d)Re(s,Ve),n(s);for(s of r.m)Re(s,Bt),n(s)}this.#f.add(t)}#p(){if(xo++>1e3&&(en.delete(this),Dv()),!this.#d()){for(const l of this.#l)this.#u.delete(l),Re(l,Ve),this.schedule(l);for(const l of this.#u)Re(l,Bt),this.schedule(l)}const t=this.#r;this.#r=[],this.apply();var n=Wn=[],r=[],s=ls=[];for(const l of t)try{this.#g(l,n,r)}catch(c){throw oc(l),c}if(oe=null,s.length>0){var i=Pt.ensure();for(const l of s)i.schedule(l)}if(Wn=null,ls=null,this.#d()||this.#_()){this.#m(r),this.#m(n);for(const[l,c]of this.#c)ac(l,c)}else{this.#i.size===0&&en.delete(this),this.#l.clear(),this.#u.clear();for(const l of this.#e)l(this);this.#e.clear(),Eo(r),Eo(n),this.#a?.resolve()}var a=oe;if(this.#r.length>0){const l=a??=this;l.#r.push(...this.#r.filter(c=>!l.#r.includes(c)))}a!==null&&(en.add(a),a.#p())}#g(t,n,r){t.f^=je;for(var s=t.first;s!==null;){var i=s.f,a=(i&(qt|rn))!==0,l=a&&(i&je)!==0,c=l||(i&et)!==0||this.#c.has(s);if(!c&&s.fn!==null){a?s.f^=je:i&Pn?n.push(s):fr(s)&&(i&Nt&&this.#u.add(s),jn(s));var u=s.first;if(u!==null){s=u;continue}}for(;s!==null;){var d=s.next;if(d!==null){s=d;break}s=s.parent}}}#m(t){for(var n=0;n<t.length;n+=1)ec(t[n],this.#l,this.#u)}capture(t,n,r=!1){t.v!==Ie&&!this.previous.has(t)&&this.previous.set(t,t.v),t.f&fn||(this.current.set(t,[n,r]),Qe?.set(t,n)),this.is_fork||(t.v=n)}activate(){oe=this}deactivate(){oe=null,Qe=null}flush(){try{_i=!0,oe=this,this.#p()}finally{xo=0,zi=null,Wn=null,ls=null,_i=!1,oe=null,Qe=null,An.clear()}}discard(){for(const t of this.#t)t(this);this.#t.clear(),this.#n.clear(),en.delete(this)}register_created_effect(t){this.#o.push(t)}#y(){for(const d of en){var t=d.id<this.id,n=[];for(const[f,[h,_]]of this.current){if(d.current.has(f)){var r=d.current.get(f)[0];if(t&&h!==r)d.current.set(f,[h,_]);else continue}n.push(f)}var s=[...d.current.keys()].filter(f=>!this.current.has(f));if(s.length===0)t&&d.discard();else if(n.length>0){if(t)for(const f of this.#f)d.unskip_effect(f,h=>{h.f&(Nt|tr)?d.schedule(h):d.#m([h])});d.activate();var i=new Set,a=new Map;for(var l of n)sc(l,s,i,a);a=new Map;var c=[...d.current.keys()].filter(f=>this.current.has(f)?this.current.get(f)[0]!==f:!0);for(const f of this.#o)!(f.f&(lt|et|Rr))&&ha(f,c,a)&&(f.f&(tr|Nt)?(Re(f,Ve),d.schedule(f)):d.#l.add(f));if(d.#r.length>0){d.apply();for(var u of d.#r)d.#g(u,[],[]);d.#r=[]}d.deactivate()}}for(const d of en)d.#v.has(this)&&(d.#v.delete(this),d.#v.size===0&&!d.#d()&&(d.activate(),d.#p()))}increment(t,n){let r=this.#i.get(n)??0;if(this.#i.set(n,r+1),t){let s=this.#s.get(n)??0;this.#s.set(n,s+1)}}decrement(t,n,r){let s=this.#i.get(n)??0;if(s===1?this.#i.delete(n):this.#i.set(n,s-1),t){let i=this.#s.get(n)??0;i===1?this.#s.delete(n):this.#s.set(n,i-1)}this.#h||r||(this.#h=!0,tt(()=>{this.#h=!1,this.flush()}))}transfer_effects(t,n){for(const r of t)this.#l.add(r);for(const r of n)this.#u.add(r);t.clear(),n.clear()}oncommit(t){this.#e.add(t)}ondiscard(t){this.#t.add(t)}on_fork_commit(t){this.#n.add(t)}run_fork_commit_callbacks(){for(const t of this.#n)t(this);this.#n.clear()}settled(){return(this.#a??=Ml()).promise}static ensure(){if(oe===null){const t=oe=new Pt;_i||(en.add(oe),Jn||tt(()=>{oe===t&&t.flush()}))}return oe}apply(){{Qe=null;return}}schedule(t){if(zi=t,t.b?.is_pending&&t.f&(Pn|qr|ua)&&!(t.f&an)){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var r=n.f;if(Wn!==null&&n===re&&(le===null||!(le.f&Ue))&&!ji)return;if(r&(rn|qt)){if(!(r&je))return;n.f^=je}}this.#r.push(n)}}function hn(e){var t=Jn;Jn=!0;try{var n;for(e&&(oe!==null&&!oe.is_fork&&oe.flush(),n=e());;){if(bv(),oe===null)return n;oe.flush()}}finally{Jn=t}}function Dv(){try{Bf()}catch(e){Yt(e,zi)}}let tn=null;function Eo(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&(lt|et))&&fr(r)&&(tn=new Set,jn(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Cc(r),tn?.size>0)){An.clear();for(const s of tn){if(s.f&(lt|et))continue;const i=[s];let a=s.parent;for(;a!==null;)tn.has(a)&&(tn.delete(a),i.push(a)),a=a.parent;for(let l=i.length-1;l>=0;l--){const c=i[l];c.f&(lt|et)||jn(c)}}tn.clear()}}tn=null}}function sc(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(const s of e.reactions){const i=s.f;i&Ue?sc(s,t,n,r):i&(tr|Nt)&&!(i&Ve)&&ha(s,t,r)&&(Re(s,Ve),pa(s))}}function ic(e,t){if(e.reactions!==null)for(const n of e.reactions){const r=n.f;r&Ue?ic(n,t):r&Rr&&(Re(n,Ve),t.add(n))}}function ha(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(er.call(t,s))return!0;if(s.f&Ue&&ha(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function pa(e){oe.schedule(e)}let bs=[];function Mv(){hn(()=>{const e=bs;bs=[];for(const t of e)rr(t)})}function Ov(e){var t=_t(0),n=!0,r=void 0;return o(t),Ec(()=>{if(n){var s=Qe;try{Qe=null,r=e()}finally{Qe=s}return}bs.length===0&&tt(Mv),bs.push(t)}),n=!1,r}function ac(e,t){if(!(e.f&qt&&e.f&je)){e.f&Ve?t.d.push(e):e.f&Bt&&t.m.push(e),Re(e,je);for(var n=e.first;n!==null;)ac(n,t),n=n.next}}function oc(e){Re(e,je);for(var t=e.first;t!==null;)oc(t),t=t.next}function Lv(e){$l(),oe!==null&&Uf();var t=Pt.ensure();t.is_fork=!0,Qe=new Map;var n=!1,r=t.settled();return hn(e),{commit:async()=>{if(n){await r;return}en.has(t)||Vf(),n=!0,t.is_fork=!1;for(var[s,[i]]of t.current)s.v=i,s.wv=ks();t.activate(),t.run_fork_commit_callbacks(),t.deactivate(),hn(()=>{var a=new Set;for(var l of t.current.keys())ic(l,a);Kv(a),hc()}),t.flush(),await r},discard:()=>{for(var s of t.current.keys())s.wv=ks();!n&&en.has(t)&&t.discard()}}}function jv(e){let t=0,n=_t(0),r;return()=>{Wr()&&(o(n),Oe(()=>(t===0&&(r=Ee(()=>e(()=>Er(n)))),t+=1,()=>{tt(()=>{t-=1,t===0&&(r?.(),r=void 0,Er(n))})})))}}var Nv=Vt|_n;function lc(e,t,n,r){new zv(e,t,n,r)}class zv{parent;is_pending=!1;transform_error;#e;#t=W?ne:null;#n;#i;#s;#a=null;#r=null;#o=null;#l=null;#u=0;#c=0;#f=!1;#h=new Set;#v=new Set;#d=null;#_=jv(()=>(this.#d=_t(this.#u),()=>{this.#d=null}));constructor(t,n,r,s){this.#e=t,this.#n=n,this.#i=i=>{var a=re;a.b=this,a.f|=Mi,r(i)},this.parent=re.b,this.transform_error=s??this.parent?.transform_error??(i=>i),this.#s=Zt(()=>{if(W){const i=this.#t;nt();const a=i.data===js;if(i.data.startsWith(yo)){const c=JSON.parse(i.data.slice(yo.length));this.#g(c)}else a?this.#m():this.#p()}else this.#y()},Nv),W&&(this.#e=ne)}#p(){try{this.#a=Ze(()=>this.#i(this.#e))}catch(t){this.error(t)}}#g(t){const n=this.#n.failed;n&&(this.#o=Ze(()=>{n(this.#e,()=>t,()=>()=>{})}))}#m(){const t=this.#n.pending;t&&(this.is_pending=!0,this.#r=Ze(()=>t(this.#e)),tt(()=>{var n=this.#l=document.createDocumentFragment(),r=He();n.append(r),this.#a=this.#w(()=>Ze(()=>this.#i(r))),this.#c===0&&(this.#e.before(n),this.#l=null,In(this.#r,()=>{this.#r=null}),this.#b(oe))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#c=0,this.#u=0,this.#a=Ze(()=>{this.#i(this.#e)}),this.#c>0){var t=this.#l=document.createDocumentFragment();Sa(this.#a,t);const n=this.#n.pending;this.#r=Ze(()=>n(this.#e))}else this.#b(oe)}catch(n){this.error(n)}}#b(t){this.is_pending=!1,t.transfer_effects(this.#h,this.#v)}defer_effect(t){ec(t,this.#h,this.#v)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#n.pending}#w(t){var n=re,r=le,s=_e;Xe(this.#s),ct(this.#s),nr(this.#s.ctx);try{return Pt.ensure(),t()}catch(i){return Zl(i),null}finally{Xe(n),ct(r),nr(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&&In(this.#r,()=>{this.#r=null}),this.#l&&(this.#e.before(this.#l),this.#l=null))}update_pending_count(t,n){this.#k(t,n),this.#u+=t,!(!this.#d||this.#f)&&(this.#f=!0,tt(()=>{this.#f=!1,this.#d&&Gt(this.#d,this.#u)}))}get_effect_pending(){return this.#_(),o(this.#d)}error(t){if(!this.#n.onerror&&!this.#n.failed)throw t;oe?.is_fork?(this.#a&&oe.skip_effect(this.#a),this.#r&&oe.skip_effect(this.#r),this.#o&&oe.skip_effect(this.#o),oe.on_fork_commit(()=>{this.#S(t)})):this.#S(t)}#S(t){this.#a&&($e(this.#a),this.#a=null),this.#r&&($e(this.#r),this.#r=null),this.#o&&($e(this.#o),this.#o=null),W&&(ye(this.#t),nn(),ye(Mn()));var n=this.#n.onerror;let r=this.#n.failed;var s=!1,i=!1;const a=()=>{if(s){av();return}s=!0,i&&Xf(),this.#o!==null&&In(this.#o,()=>{this.#o=null}),this.#w(()=>{this.#y()})},l=c=>{try{i=!0,n?.(c,a),i=!1}catch(u){Yt(u,this.#s&&this.#s.parent)}r&&(this.#o=this.#w(()=>{try{return Ze(()=>{var u=re;u.b=this,u.f|=Mi,r(this.#e,()=>c,()=>a)})}catch(u){return Yt(u,this.#s.parent),null}}))};tt(()=>{var c;try{c=this.transform_error(t)}catch(u){Yt(u,this.#s&&this.#s.parent);return}c!==null&&typeof c=="object"&&typeof c.then=="function"?c.then(l,u=>Yt(u,this.#s&&this.#s.parent)):l(c)})}}function $v(){re===null&&qf();var e=re.b;return e===null?0:e.get_effect_pending()}function Ur(e,t,n,r){const s=Hr;var i=e.filter(h=>!h.settled);if(n.length===0&&i.length===0){r(t.map(s));return}var a=re,l=Us(),c=i.length===1?i[0].promise:i.length>1?Promise.all(i.map(h=>h.promise)):null;function u(h){l();try{r(h)}catch(_){a.f<||Yt(_,a)}Ln()}if(n.length===0){c.then(()=>u(t.map(s)));return}var d=Fr();function f(){Promise.all(n.map(h=>uc(h))).then(h=>u([...t.map(s),...h])).catch(h=>Yt(h,a)).finally(()=>d())}c?c.then(()=>{l(),f(),Ln()}):f()}function cc(e,t){Ur(e,[],[],t)}function Us(){var e=re,t=le,n=_e,r=oe;return function(i=!0){Xe(e),ct(t),nr(n),i&&!(e.f<)&&(r?.activate(),r?.apply())}}async function qv(e){var t=Us(),n=await e;return()=>(t(),n)}async function $i(e){var t=xr;queueMicrotask(()=>{xr===t&&cs(null)});var n=await e;return()=>(cs(t),queueMicrotask(()=>{xr===t&&cs(null)}),n)}async function*Bv(e){const t=e[Symbol.asyncIterator]?.()??e[Symbol.iterator]?.();if(t===void 0)throw new TypeError("value is not async iterable");let n=!1;try{for(;;){const{done:s,value:i}=(await $i(t.next()))();if(s){n=!0;break}var r=xr;yield i,cs(r)}}finally{if(!n&&t.return!==void 0)return(await $i(t.return()))().value}}function Ln(e=!0){Xe(null),ct(null),nr(null),e&&oe?.deactivate()}function Vv(e){const t=Us(),n=Fr();var r=re,s=null;const i=u=>{s={error:u},Vi(r)||Yt(u,r)};var a=Promise.resolve(e[0]()).catch(i),l={promise:a,settled:!1},c=[l];a.finally(()=>{l.settled=!0,Ln()});for(const u of e.slice(1)){a=a.then(()=>{if(t(),s)throw s.error;if(Vi(r))throw Ht;return u()}).catch(i);const d={promise:a,settled:!1};c.push(d),a.finally(()=>{d.settled=!0,Ln()})}return a.then(()=>Promise.resolve()).finally(()=>n()),c}function Uv(e){return Promise.all(e.map(t=>t.promise))}function Fr(){var e=re,t=e.b,n=oe,r=t.is_rendered();return t.update_pending_count(1,n),n.increment(r,e),(s=!1)=>{t.update_pending_count(-1,n),n.decrement(r,e,s)}}let xr=null;function cs(e){xr=e}function Hr(e){var t=Ue|Ve;return re!==null&&(re.f|=_n),{ctx:_e,deps:null,effects:null,equals:Vl,f:t,fn:e,reactions:null,rv:0,v:Ie,wv:0,parent:re,ac:null}}function uc(e,t,n){let r=re;r===null&&Mf();var s=void 0,i=_t(Ie),a=!le,l=new Map;return sh(()=>{var c=re,u=Ml();s=u.promise;try{Promise.resolve(e()).then(u.resolve,u.reject).finally(Ln)}catch(_){u.reject(_),Ln()}var d=oe;if(a){if(c.f&an)var f=Fr();if(r.b.is_rendered())l.get(d)?.reject(Ht),l.delete(d);else{for(const _ of l.values())_.reject(Ht);l.clear()}l.set(d,u)}const h=(_,S=void 0)=>{if(f){var k=S===Ht;f(k)}if(!(S===Ht||c.f<)){if(d.activate(),S)i.f|=fn,Gt(i,S);else{i.f&fn&&(i.f^=fn),Gt(i,_);for(const[x,w]of l){if(l.delete(x),x===d)break;w.reject(Ht)}}d.deactivate()}};u.promise.then(h,_=>h(null,_||"unknown"))}),wt(()=>{for(const c of l.values())c.reject(Ht)}),new Promise(c=>{function u(d){function f(){d===s?c(i):u(s)}d.then(f,f)}u(s)})}function X(e){const t=Hr(e);return Dc(t),t}function ma(e){const t=Hr(e);return t.equals=Fl,t}function Fv(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)$e(t[n])}}function ga(e){var t,n=re,r=e.parent;if(!sn&&r!==null&&r.f&(lt|et))return ev(),e.v;Xe(r);try{e.f&=~Dn,Fv(e),t=Lc(e)}finally{Xe(n)}return t}function dc(e){var t=ga(e);if(!e.equals(t)&&(e.wv=ks(),(!oe?.is_fork||e.deps===null)&&(oe!==null?oe.capture(e,t,!0):e.v=t,e.deps===null))){Re(e,je);return}sn||(Qe!==null?(Wr()||oe?.is_fork)&&Qe.set(e,t):va(e))}function Hv(e){if(e.effects!==null)for(const t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(Ht),t.teardown=pt,t.ac=null,Pr(t,0),wa(t))}function fc(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&jn(t)}let ws=new Set;const An=new Map;function Kv(e){ws=e}let vc=!1;function _t(e,t){var n={f:0,v:e,reactions:null,equals:Vl,rv:0,wv:0};return n}function z(e,t){const n=_t(e);return Dc(n),n}function Fs(e,t=!1,n=!0){const r=_t(e);return t||(r.equals=Fl),r}function Wv(e,t){return g(e,Ee(()=>o(e))),t}function g(e,t,n=!1){le!==null&&(!Lt||le.f&Rr)&&Xl()&&le.f&(Ue|Nt|tr|Rr)&&(Tt===null||!er.call(Tt,e))&&Gf();let r=n?ce(t):t;return Gt(e,r,ls)}function Gt(e,t,n=null){if(!e.equals(t)){An.set(e,sn?t:e.v);var r=Pt.ensure();if(r.capture(e,t),e.f&Ue){const s=e;e.f&Ve&&ga(s),Qe===null&&va(s)}e.wv=ks(),pc(e,Ve,n),re!==null&&re.f&je&&!(re.f&(qt|rn))&&(At===null?ch([e]):At.push(e)),!r.is_fork&&ws.size>0&&!vc&&hc()}return t}function hc(){vc=!1;for(const e of ws)e.f&je&&Re(e,Bt),fr(e)&&jn(e);ws.clear()}function rr(e,t=1){var n=o(e),r=t===1?n++:n--;return g(e,n),r}function Yv(e,t=1){var n=o(e);return g(e,t===1?++n:--n)}function Er(e){g(e,e.v+1)}function pc(e,t,n){var r=e.reactions;if(r!==null)for(var s=r.length,i=0;i<s;i++){var a=r[i],l=a.f,c=(l&Ve)===0;if(c&&Re(a,t),l&Ue){var u=a;Qe?.delete(u),l&Dn||(l&It&&(a.f|=Dn),pc(u,Bt,n))}else if(c){var d=a;l&Nt&&tn!==null&&tn.add(d),n!==null?n.push(d):pa(d)}}}function ce(e){if(typeof e!="object"||e===null||Ge in e)return e;const t=$s(e);if(t!==Dl&&t!==bf)return e;var n=new Map,r=cr(e),s=z(0),i=Tn,a=l=>{if(Tn===i)return l();var c=le,u=Tn;ct(null),To(i);var d=l();return ct(c),To(u),d};return r&&n.set("length",z(e.length)),new Proxy(e,{defineProperty(l,c,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&Wf();var d=n.get(c);return d===void 0?a(()=>{var f=z(u.value);return n.set(c,f),f}):g(d,u.value,!0),!0},deleteProperty(l,c){var u=n.get(c);if(u===void 0){if(c in l){const d=a(()=>z(Ie));n.set(c,d),Er(s)}}else g(u,Ie),Er(s);return!0},get(l,c,u){if(c===Ge)return e;var d=n.get(c),f=c in l;if(d===void 0&&(!f||jt(l,c)?.writable)&&(d=a(()=>{var _=ce(f?l[c]:Ie),S=z(_);return S}),n.set(c,d)),d!==void 0){var h=o(d);return h===Ie?void 0:h}return Reflect.get(l,c,u)},getOwnPropertyDescriptor(l,c){var u=Reflect.getOwnPropertyDescriptor(l,c);if(u&&"value"in u){var d=n.get(c);d&&(u.value=o(d))}else if(u===void 0){var f=n.get(c),h=f?.v;if(f!==void 0&&h!==Ie)return{enumerable:!0,configurable:!0,value:h,writable:!0}}return u},has(l,c){if(c===Ge)return!0;var u=n.get(c),d=u!==void 0&&u.v!==Ie||Reflect.has(l,c);if(u!==void 0||re!==null&&(!d||jt(l,c)?.writable)){u===void 0&&(u=a(()=>{var h=d?ce(l[c]):Ie,_=z(h);return _}),n.set(c,u));var f=o(u);if(f===Ie)return!1}return d},set(l,c,u,d){var f=n.get(c),h=c in l;if(r&&c==="length")for(var _=u;_<f.v;_+=1){var S=n.get(_+"");S!==void 0?g(S,Ie):_ in l&&(S=a(()=>z(Ie)),n.set(_+"",S))}if(f===void 0)(!h||jt(l,c)?.writable)&&(f=a(()=>z(void 0)),g(f,ce(u)),n.set(c,f));else{h=f.v!==Ie;var k=a(()=>ce(u));g(f,k)}var x=Reflect.getOwnPropertyDescriptor(l,c);if(x?.set&&x.set.call(d,u),!h){if(r&&typeof c=="string"){var w=n.get("length"),b=Number(c);Number.isInteger(b)&&b>=w.v&&g(w,b+1)}Er(s)}return!0},ownKeys(l){o(s);var c=Reflect.ownKeys(l).filter(f=>{var h=n.get(f);return h===void 0||h.v!==Ie});for(var[u,d]of n)d.v!==Ie&&!(u in l)&&c.push(u);return c},setPrototypeOf(){Yf()}})}function sr(e){try{if(e!==null&&typeof e=="object"&&Ge in e)return e[Ge]}catch{}return e}function mc(e,t){return Object.is(sr(e),sr(t))}function Gv(e,t,n=!0){try{e===t!=(sr(e)===sr(t))&&Bl(n?"===":"!==")}catch{}return e===t===n}function Xv(e,t,n=!0){return e==t!=(sr(e)==sr(t))&&Bl(),e==t===n}var qi,gc,_a,_c,yc;function Bi(){if(qi===void 0){qi=window,gc=document,_a=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;_c=jt(t,"firstChild").get,yc=jt(t,"nextSibling").get,bo(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),bo(n)&&(n.__t=void 0)}}function He(e=""){return document.createTextNode(e)}function Te(e){return _c.call(e)}function yt(e){return yc.call(e)}function p(e,t){if(!W)return Te(e);var n=Te(ne);if(n===null)n=ne.appendChild(He());else if(t&&n.nodeType!==Br){var r=He();return n?.before(r),ye(r),r}return t&&Hs(n),ye(n),n}function he(e,t=!1){if(!W){var n=Te(e);return n instanceof Comment&&n.data===""?yt(n):n}if(t){if(ne?.nodeType!==Br){var r=He();return ne?.before(r),ye(r),r}Hs(ne)}return ne}function E(e,t=1,n=!1){let r=W?ne:e;for(var s;t--;)s=r,r=yt(r);if(!W)return r;if(n){if(r?.nodeType!==Br){var i=He();return r===null?s?.after(i):r.before(i),ye(i),i}Hs(r)}return ye(r),r}function ya(e){e.textContent=""}function bc(){return!1}function yn(e,t,n){let r=n?{is:n}:void 0;return document.createElementNS(t??Tl,e,r)}function Jv(){return document.createDocumentFragment()}function wc(e=""){return document.createComment(e)}function Zv(e,t,n=""){if(t.startsWith("xlink:")){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n);return}return e.setAttribute(t,n)}function Hs(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===Br;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function dr(e,t){if(t){const n=document.body;e.autofocus=!0,tt(()=>{document.activeElement===n&&e.focus()})}}function Qv(e){W&&Te(e)!==null&&ya(e)}let Ao=!1;function kc(){Ao||(Ao=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function dt(e,t,n,r=!0){r&&n();for(var s of t)e.addEventListener(s,n);wt(()=>{for(var i of t)e.removeEventListener(i,n)})}function bn(e){var t=le,n=re;ct(null),Xe(null);try{return e()}finally{ct(t),Xe(n)}}function Kr(e,t,n,r=n){e.addEventListener(t,()=>bn(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),kc()}function ba(e){re===null&&(le===null&&$f(),zf()),sn&&Nf()}function eh(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function ft(e,t){var n=re;n!==null&&n.f&et&&(e|=et);var r={ctx:_e,deps:null,nodes:null,f:e|Ve|It,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};oe?.register_created_effect(r);var s=r;if(e&Pn)Wn!==null?Wn.push(r):Pt.ensure().schedule(r);else if(t!==null){try{jn(r)}catch(a){throw $e(r),a}s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&!(s.f&_n)&&(s=s.first,e&Nt&&e&Vt&&s!==null&&(s.f|=Vt))}if(s!==null&&(s.parent=n,n!==null&&eh(s,n),le!==null&&le.f&Ue&&!(e&rn))){var i=le;(i.effects??=[]).push(s)}return r}function Wr(){return le!==null&&!Lt}function wt(e){const t=ft(qr,null);return Re(t,je),t.teardown=e,t}function Ce(e){ba();var t=re.f,n=!le&&(t&qt)!==0&&(t&an)===0;if(n){var r=_e;(r.e??=[]).push(e)}else return Sc(e)}function Sc(e){return ft(Pn|jl,e)}function xc(e){return ba(),ft(qr|jl,e)}function Ec(e){return ft(Rr,e)}function Ks(e){Pt.ensure();const t=ft(rn|_n,e);return()=>{$e(t)}}function th(e){Pt.ensure();const t=ft(rn|_n,e);return(n={})=>new Promise(r=>{n.outro?In(t,()=>{$e(t),r(void 0)}):($e(t),r(void 0))})}function bt(e){return ft(Pn,e)}function nh(e,t){var n=_e,r={effect:null,ran:!1,deps:e};n.l.$.push(r),r.effect=Oe(()=>{if(e(),!r.ran){r.ran=!0;var s=re;try{Xe(s.parent),Ee(t)}finally{Xe(s)}}})}function rh(){var e=_e;Oe(()=>{for(var t of e.l.$){t.deps();var n=t.effect;n.f&je&&n.deps!==null&&Re(n,Bt),fr(n)&&jn(n),t.ran=!1}})}function sh(e){return ft(tr|_n,e)}function Oe(e,t=0){return ft(qr|t,e)}function $(e,t=[],n=[],r=[]){Ur(r,t,n,s=>{ft(qr,()=>e(...s.map(o)))})}function ih(e,t=[],n=[],r=[]){if(n.length>0||r.length>0)var s=Fr();Ur(r,t,n,i=>{ft(Pn,()=>e(...i.map(o))),s&&s()})}function Zt(e,t=0){var n=ft(Nt|t,e);return n}function Ac(e,t=0){var n=ft(ua|t,e);return n}function Ze(e){return ft(qt|_n,e)}function Ic(e){var t=e.teardown;if(t!==null){const n=sn,r=le;Io(!0),ct(null);try{t.call(null)}finally{Io(n),ct(r)}}}function wa(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&bn(()=>{s.abort(Ht)});var r=n.next;n.f&rn?n.parent=null:$e(n,t),n=r}}function ah(e){for(var t=e.first;t!==null;){var n=t.next;t.f&qt||$e(t),t=n}}function $e(e,t=!0){var n=!1;(t||e.f&Ll)&&e.nodes!==null&&e.nodes.end!==null&&(Tc(e.nodes.start,e.nodes.end),n=!0),Re(e,Oi),wa(e,t&&!n),Pr(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const i of r)i.stop();Ic(e),e.f^=Oi,e.f|=lt;var s=e.parent;s!==null&&s.first!==null&&Cc(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Tc(e,t){for(;e!==null;){var n=e===t?null:yt(e);e.remove(),e=n}}function Cc(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 In(e,t,n=!0){var r=[];Rc(e,r,!0);var s=()=>{n&&$e(e),t&&t()},i=r.length;if(i>0){var a=()=>--i||s();for(var l of r)l.out(a)}else s()}function Rc(e,t,n){if(!(e.f&et)){e.f^=et;var r=e.nodes&&e.nodes.t;if(r!==null)for(const l of r)(l.is_global||n)&&t.push(l);for(var s=e.first;s!==null;){var i=s.next;if(!(s.f&rn)){var a=(s.f&Vt)!==0||(s.f&qt)!==0&&(e.f&Nt)!==0;Rc(s,t,a?n:!1)}s=i}}}function ka(e){Pc(e,!0)}function Pc(e,t){if(e.f&et){e.f^=et,e.f&je||(Re(e,Ve),Pt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&Vt)!==0||(n.f&qt)!==0;Pc(n,s?t:!1),n=r}var i=e.nodes&&e.nodes.t;if(i!==null)for(const a of i)(a.is_global||t)&&a.in()}}function Vi(e=re){return(e.f<)!==0}function Sa(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:yt(n);t.append(n),n=s}}let Fn=null;function oh(e){var t=Fn;try{if(Fn=new Set,Ee(e),t!==null)for(var n of Fn)t.add(n);return Fn}finally{Fn=t}}function lh(e){for(var t of oh(e))Gt(t,t.v)}let us=!1,sn=!1;function Io(e){sn=e}let le=null,Lt=!1;function ct(e){le=e}let re=null;function Xe(e){re=e}let Tt=null;function Dc(e){le!==null&&(Tt===null?Tt=[e]:Tt.push(e))}let it=null,vt=0,At=null;function ch(e){At=e}let Mc=1,xn=0,Tn=xn;function To(e){Tn=e}function ks(){return++Mc}function fr(e){var t=e.f;if(t&Ve)return!0;if(t&Ue&&(e.f&=~Dn),t&Bt){for(var n=e.deps,r=n.length,s=0;s<r;s++){var i=n[s];if(fr(i)&&dc(i),i.wv>e.wv)return!0}t&It&&Qe===null&&Re(e,je)}return!1}function Oc(e,t,n=!0){var r=e.reactions;if(r!==null&&!(Tt!==null&&er.call(Tt,e)))for(var s=0;s<r.length;s++){var i=r[s];i.f&Ue?Oc(i,t,!1):t===i&&(n?Re(i,Ve):i.f&je&&Re(i,Bt),pa(i))}}function Lc(e){var t=it,n=vt,r=At,s=le,i=Tt,a=_e,l=Lt,c=Tn,u=e.f;it=null,vt=0,At=null,le=u&(qt|rn)?null:e,Tt=null,nr(e.ctx),Lt=!1,Tn=++xn,e.ac!==null&&(bn(()=>{e.ac.abort(Ht)}),e.ac=null);try{e.f|=Li;var d=e.fn,f=d();e.f|=an;var h=e.deps,_=oe?.is_fork;if(it!==null){var S;if(_||Pr(e,vt),h!==null&&vt>0)for(h.length=vt+it.length,S=0;S<it.length;S++)h[vt+S]=it[S];else e.deps=h=it;if(Wr()&&e.f&It)for(S=vt;S<h.length;S++)(h[S].reactions??=[]).push(e)}else!_&&h!==null&&vt<h.length&&(Pr(e,vt),h.length=vt);if(Xl()&&At!==null&&!Lt&&h!==null&&!(e.f&(Ue|Bt|Ve)))for(S=0;S<At.length;S++)Oc(At[S],e);if(s!==null&&s!==e){if(xn++,s.deps!==null)for(let k=0;k<n;k+=1)s.deps[k].rv=xn;if(t!==null)for(const k of t)k.rv=xn;At!==null&&(r===null?r=At:r.push(...At))}return e.f&fn&&(e.f^=fn),f}catch(k){return Zl(k)}finally{e.f^=Li,it=t,vt=n,At=r,le=s,Tt=i,nr(a),Lt=l,Tn=c}}function uh(e,t){let n=t.reactions;if(n!==null){var r=yf.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&Ue&&(it===null||!er.call(it,t))){var i=t;i.f&It&&(i.f^=It,i.f&=~Dn),i.v!==Ie&&va(i),Hv(i),Pr(i,0)}}function Pr(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)uh(e,n[r])}function jn(e){var t=e.f;if(!(t<)){Re(e,je);var n=re,r=us;re=e,us=!0;try{t&(Nt|ua)?ah(e):wa(e),Ic(e);var s=Lc(e);e.teardown=typeof s=="function"?s:null,e.wv=Mc;var i;Rl&&lv&&e.f&Ve&&e.deps}finally{us=r,re=n}}}async function xa(){await Promise.resolve(),hn()}function dh(){return Pt.ensure().settled()}function o(e){var t=e.f,n=(t&Ue)!==0;if(Fn?.add(e),le!==null&&!Lt){var r=re!==null&&(re.f<)!==0;if(!r&&(Tt===null||!er.call(Tt,e))){var s=le.deps;if(le.f&Li)e.rv<xn&&(e.rv=xn,it===null&&s!==null&&s[vt]===e?vt++:it===null?it=[e]:it.push(e));else{(le.deps??=[]).push(e);var i=e.reactions;i===null?e.reactions=[le]:er.call(i,le)||i.push(le)}}}if(sn&&An.has(e))return An.get(e);if(n){var a=e;if(sn){var l=a.v;return(!(a.f&je)&&a.reactions!==null||Nc(a))&&(l=ga(a)),An.set(a,l),l}var c=(a.f&It)===0&&!Lt&&le!==null&&(us||(le.f&It)!==0),u=(a.f&an)===0;fr(a)&&(c&&(a.f|=It),dc(a)),c&&!u&&(fc(a),jc(a))}if(Qe?.has(e))return Qe.get(e);if(e.f&fn)throw e.v;return e.v}function jc(e){if(e.f|=It,e.deps!==null)for(const t of e.deps)(t.reactions??=[]).push(e),t.f&Ue&&!(t.f&It)&&(fc(t),jc(t))}function Nc(e){if(e.v===Ie)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(An.has(t)||t.f&Ue&&Nc(t))return!0;return!1}function fh(e){return e&&o(e)}function Ee(e){var t=Lt;try{return Lt=!0,e()}finally{Lt=t}}function Ea(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if(Ge in e)Ss(e);else if(!Array.isArray(e))for(let t in e){const n=e[t];typeof n=="object"&&n&&Ge in n&&Ss(n)}}}function Ss(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{Ss(e[r],t)}catch{}const n=$s(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){const r=Pl(n);for(let s in r){const i=r[s].get;if(i)try{i.call(e)}catch{}}}}}function vh(e,t){if($l(),W){const n=window.__svelte?.h;if(n?.has(e))return n.get(e);nv()}return t()}const kr=Symbol("events"),zc=new Set,Ui=new Set;function hh(e){if(!W)return;e.removeAttribute("onload"),e.removeAttribute("onerror");const t=e.__e;t!==void 0&&(e.__e=void 0,queueMicrotask(()=>{e.isConnected&&e.dispatchEvent(t)}))}function $c(e,t,n,r={}){function s(i){if(r.capture||Fi.call(t,i),!i.cancelBubble)return bn(()=>n?.call(this,i))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?tt(()=>{t.addEventListener(e,s,r)}):t.addEventListener(e,s,r),s}function Je(e,t,n,r,s){var i={capture:r,passive:s},a=$c(e,t,n,i);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&wt(()=>{t.removeEventListener(e,a,i)})}function F(e,t,n){(t[kr]??={})[e]=n}function pe(e){for(var t=0;t<e.length;t++)zc.add(e[t]);for(var n of Ui)n(e)}let Co=null;function Fi(e){var t=this,n=t.ownerDocument,r=e.type,s=e.composedPath?.()||[],i=s[0]||e.target;Co=e;var a=0,l=Co===e&&e[kr];if(l){var c=s.indexOf(l);if(c!==-1&&(t===document||t===window)){e[kr]=t;return}var u=s.indexOf(t);if(u===-1)return;c<=u&&(a=c)}if(i=s[a]||e.target,i!==t){Rn(e,"currentTarget",{configurable:!0,get(){return i||n}});var d=le,f=re;ct(null),Xe(null);try{for(var h,_=[];i!==null;){var S=i.assignedSlot||i.parentNode||i.host||null;try{var k=i[kr]?.[r];k!=null&&(!i.disabled||e.target===i)&&k.call(i,e)}catch(x){h?_.push(x):h=x}if(e.cancelBubble||S===t||S===null)break;i=S}if(h){for(let x of _)queueMicrotask(()=>{throw x});throw h}}finally{e[kr]=t,delete e.currentTarget,ct(d),Xe(f)}}}function ph(e,t,n,r,s,i=!1,a=!1){let l,c;try{l=e()}catch(u){c=u}if(typeof l!="function"&&(i||l!=null||c)){const u=r?.[ht];s?`${u}${s[0]}${s[1]}`:`${u}`;const d=n[0]?.eventPhase<Event.BUBBLING_PHASE?"capture":"";if(n[0]?.type+d,tv(),c)throw c}l?.apply(t,n)}const mh=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function qc(e){return mh?.createHTML(e)??e}function Aa(e){var t=yn("template");return t.innerHTML=qc(e.replaceAll("<!>","<!---->")),t.content}const gh=qn?"template":"TEMPLATE",_h=qn?"script":"SCRIPT";function qe(e,t){var n=re;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function C(e,t){var n=(t&la)!==0,r=(t&Il)!==0,s,i=!e.startsWith("<!>");return()=>{if(W)return qe(ne,null),ne;s===void 0&&(s=Aa(i?e:"<!>"+e),n||(s=Te(s)));var a=r||_a?document.importNode(s,!0):s.cloneNode(!0);if(n){var l=Te(a),c=a.lastChild;qe(l,c)}else qe(a,a);return a}}function Bc(e,t,n="svg"){var r=!e.startsWith("<!>"),s=(t&la)!==0,i=`<${n}>${r?e:"<!>"+e}</${n}>`,a;return()=>{if(W)return qe(ne,null),ne;if(!a){var l=Aa(i),c=Te(l);if(s)for(a=document.createDocumentFragment();Te(c);)a.appendChild(Te(c));else a=Te(c)}var u=a.cloneNode(!0);if(s){var d=Te(u),f=u.lastChild;qe(d,f)}else qe(u,u);return u}}function yh(e,t){return Bc(e,t,"svg")}function bh(e,t){return Bc(e,t,"math")}function Vc(e,t){var n=Jv();for(var r of e){if(typeof r=="string"){n.append(He(r));continue}if(r===void 0||r[0][0]==="/"){n.append(wc(r?r[0].slice(3):""));continue}const[l,c,...u]=r,d=l==="svg"?$r:l==="math"?ca:t;var s=yn(l,d,c?.is);for(var i in c)Zv(s,i,c[i]);if(u.length>0){var a=s.nodeName===gh?s.content:s;a.append(Vc(u,s.nodeName==="foreignObject"?void 0:d))}n.append(s)}return n}function wh(e,t){var n=(t&la)!==0,r=(t&Il)!==0,s;return()=>{if(W)return qe(ne,null),ne;if(s===void 0){const c=t&gf?$r:t&_f?ca:void 0;s=Vc(e,c),n||(s=Te(s))}var i=r||_a?document.importNode(s,!0):s.cloneNode(!0);if(n){var a=Te(i),l=i.lastChild;qe(a,l)}else qe(i,i);return i}}function kh(e){return()=>Sh(e())}function Sh(e){if(W)return e;const t=e.nodeType===zl,n=e.nodeName===_h?[e]:e.querySelectorAll("script"),r=re;for(const i of n){const a=yn("script");for(var s of i.attributes)a.setAttribute(s.name,s.value);a.textContent=i.textContent,(t?e.firstChild===i:e===i)&&(r.nodes.start=a),(t?e.lastChild===i:e===i)&&(r.nodes.end=a),i.replaceWith(a)}return e}function zt(e=""){if(!W){var t=He(e+"");return qe(t,t),t}var n=ne;return n.nodeType!==Br?(n.before(n=He()),ye(n)):Hs(n),qe(n,n),n}function at(){if(W)return qe(ne,null),ne;var e=document.createDocumentFragment(),t=document.createComment(""),n=He();return e.append(t,n),qe(t,n),e}function A(e,t){if(W){var n=re;(!(n.f&an)||n.nodes.end===null)&&(n.nodes.end=ne),nt();return}e!==null&&e.before(t)}function xh(){if(W&&ne&&ne.nodeType===on&&ne.textContent?.startsWith("$")){const e=ne.textContent.substring(1);return nt(),e}return(window.__svelte??={}).uid??=1,`c${window.__svelte.uid++}`}const Eh=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function Ah(e){return Eh.includes(e)||e.toLowerCase()==="!doctype"}function Ih(e){return e.endsWith("capture")&&e!=="gotpointercapture"&&e!=="lostpointercapture"}const Th=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function Ch(e){return Th.includes(e)}const Rh={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 Ph(e){return e=e.toLowerCase(),Rh[e]??e}const Dh=["touchstart","touchmove"];function Mh(e){return Dh.includes(e)}const Oh=["textarea","script","style","title"];function Lh(e){return Oh.includes(e)}function Uc(e){return e?.replace(/\//g,"/")}let xs=!0;function Yn(e){xs=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 Hc(e,t)}function Fc(e,t){Bi(),t.intro=t.intro??!1;const n=t.target,r=W,s=ne;try{for(var i=Te(n);i&&(i.nodeType!==on||i.data!==Ls);)i=yt(i);if(!i)throw Cn;xe(!0),ye(i);const a=Hc(e,{...t,anchor:i});return xe(!1),a}catch(a){if(a instanceof Error&&a.message.split(`
|
|
5
|
+
`).some(l=>l.startsWith("https://svelte.dev/e/")))throw a;return a!==Cn&&console.warn("Failed to hydrate: ",a),t.recover===!1&&Hf(),Bi(),ya(n),xe(!1),ze(e,t)}finally{xe(r),ye(s)}}const rs=new Map;function Hc(e,{target:t,anchor:n,props:r={},events:s,context:i,intro:a=!0,transformError:l}){Bi();var c=void 0,u=th(()=>{var d=n??t.appendChild(He());lc(d,{pending:()=>{}},_=>{se({});var S=_e;if(i&&(S.c=i),s&&(r.$$events=s),W&&qe(_,null),xs=a,c=e(_,r)||{},xs=!0,W&&(re.nodes.end=ne,ne===null||ne.nodeType!==on||ne.data!==Ns))throw Vr(),Cn;ie()},l);var f=new Set,h=_=>{for(var S=0;S<_.length;S++){var k=_[S];if(!f.has(k)){f.add(k);var x=Mh(k);for(const y of[t,document]){var w=rs.get(y);w===void 0&&(w=new Map,rs.set(y,w));var b=w.get(k);b===void 0?(y.addEventListener(k,Fi,{passive:x}),w.set(k,1)):w.set(k,b+1)}}}};return h(zs(zc)),Ui.add(h),()=>{for(var _ of f)for(const x of[t,document]){var S=rs.get(x),k=S.get(_);--k==0?(x.removeEventListener(_,Fi),S.delete(_),S.size===0&&rs.delete(x)):S.set(_,k)}Ui.delete(h),d!==n&&d.parentNode?.removeChild(d)}});return Hi.set(c,u),c}let Hi=new WeakMap;function Fe(e,t){const n=Hi.get(e);return n?(Hi.delete(e),n(t)):Promise.resolve()}function jh(e){const t=e();t&&Ah(t)&&cv()}function Nh(e){const t=e();t&&!(typeof t=="string")&&Df()}function zh(e,t){e!=null&&typeof e.subscribe!="function"&&Pf()}function Kc(e){return e.toString=()=>(Rf(),""),e}class vr{anchor;#e=new Map;#t=new Map;#n=new Map;#i=new Set;#s=!0;constructor(t,n=!0){this.anchor=t,this.#s=n}#a=t=>{if(this.#e.has(t)){var n=this.#e.get(t),r=this.#t.get(n);if(r)ka(r),this.#i.delete(n);else{var s=this.#n.get(n);s&&(this.#t.set(n,s.effect),this.#n.delete(n),s.fragment.lastChild.remove(),this.anchor.before(s.fragment),r=s.effect)}for(const[i,a]of this.#e){if(this.#e.delete(i),i===t)break;const l=this.#n.get(a);l&&($e(l.effect),this.#n.delete(a))}for(const[i,a]of this.#t){if(i===n||this.#i.has(i))continue;const l=()=>{if(Array.from(this.#e.values()).includes(i)){var u=document.createDocumentFragment();Sa(a,u),u.append(He()),this.#n.set(i,{effect:a,fragment:u})}else $e(a);this.#i.delete(i),this.#t.delete(i)};this.#s||!r?(this.#i.add(i),In(a,l,!1)):l()}}};#r=t=>{this.#e.delete(t);const n=Array.from(this.#e.values());for(const[r,s]of this.#n)n.includes(r)||($e(s.effect),this.#n.delete(r))};ensure(t,n){var r=oe,s=bc();if(n&&!this.#t.has(t)&&!this.#n.has(t))if(s){var i=document.createDocumentFragment(),a=He();i.append(a),this.#n.set(t,{effect:Ze(()=>n(a)),fragment:i})}else this.#t.set(t,Ze(()=>n(this.anchor)));if(this.#e.set(r,t),s){for(const[l,c]of this.#t)l===t?r.unskip_effect(c):r.skip_effect(c);for(const[l,c]of this.#n)l===t?r.unskip_effect(c.effect):r.skip_effect(c.effect);r.oncommit(this.#a),r.ondiscard(this.#r)}else W&&(this.anchor=ne),this.#a(r)}}function Ia(e,t,...n){var r=new vr(e);Zt(()=>{const s=t()??null;r.ensure(s,s&&(i=>s(i,...n)))},Vt)}function $h(e,t){const n=(r,...s)=>{var i=fa;So(e);try{return t(r,...s)}finally{So(i)}};return Kc(n),n}function qh(e){return(t,...n)=>{var r=e(...n),s;if(W)s=ne,nt();else{var i=r.render().trim(),a=Aa(i);s=Te(a),t.before(s)}const l=r.setup?.(s);qe(s,s),typeof l=="function"&&wt(l)}}function Bh(){return le===null&&Ff(),(le.ac??=new AbortController).signal}function Ta(e){_e===null&&ur(),Ce(()=>{const t=Ee(e);if(typeof t=="function")return t})}function Ca(e){_e===null&&ur(),Ta(()=>()=>Ee(e))}function Vh(e,t,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(e,{detail:t,bubbles:n,cancelable:r})}function Uh(){const e=_e;return e===null&&ur(),(t,n,r)=>{const s=e.s.$$events?.[t];if(s){const i=cr(s)?s.slice():[s],a=Vh(t,n,r);for(const l of i)l.call(e.x,a);return!a.defaultPrevented}return!0}}function Fh(e){_e===null&&ur(),_e.l===null&&ql(),Wc(_e).b.push(e)}function Hh(e){_e===null&&ur(),_e.l===null&&ql(),Wc(_e).a.push(e)}function Wc(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}const Yc=Object.freeze(Object.defineProperty({__proto__:null,afterUpdate:Hh,beforeUpdate:Fh,createContext:gv,createEventDispatcher:Uh,createRawSnippet:qh,flushSync:hn,fork:Lv,getAbortSignal:Bh,getAllContexts:_v,getContext:Wl,hasContext:Gl,hydratable:vh,hydrate:Fc,mount:ze,onDestroy:Ca,onMount:Ta,setContext:Yl,settled:dh,tick:xa,unmount:Fe,untrack:Ee},Symbol.toStringTag,{value:"Module"}));function Kh(){return Symbol(Cl)}function Gc(e,t,n,r){return e!==t&&typeof t=="object"&&Ge in t&&Jf(n,Uc(r)),e}function Wh(e,t,n,r,s){return Gc(n==="="?e[t]=r:n==="&&="?e[t]&&=r():n==="||="?e[t]||=r():n==="??="?e[t]??=r():null,Ee(()=>e[t]),t,s)}async function Yh(e,t,n,r,s){return Gc(n==="="?e[t]=await r:n==="&&="?e[t]&&=await r():n==="||="?e[t]||=await r():n==="??="?e[t]??=await r():null,Ee(()=>e[t]),t,s)}var Ro=new Map;function Gh(e){var t=Ro.get(e);if(t){for(const n of t)n.remove();Ro.delete(e)}}function Xh(e,t,n){return(...r)=>{const s=e(...r);var i=W?s:s.nodeType===zl?s.firstChild:s;return Xc(i,t,n),s}}function Jh(e,t,n){e.__svelte_meta={parent:os,loc:{file:t,line:n[0],column:n[1]}},n[2]&&Xc(e.firstChild,t,n[2])}function Xc(e,t,n){for(var r=0,s=0;e&&r<n.length;){if(W&&e.nodeType===on){var i=e;i.data[0]===Ls?s+=1:i.data[0]===Ns&&(s-=1)}s===0&&e.nodeType===Nl&&Jh(e,t,n[r++]),e=e.nextSibling}}function Zh(e){const t=_t(e);function n(r,s){let i={},a={},l,c=!1,u=r;return Zt(()=>{if(i!==(i=o(t))){if(l){for(var d in a)delete a[d];$e(l)}l=Ze(()=>{u=u[If]??u,c&&Yn(!1);var f=new.target?new i(u,s):i(u,s);f&&Object.defineProperties(a,Object.getOwnPropertyDescriptors(f)),c&&Yn(!0)}),re.nodes=l.nodes}},Vt),c=!0,W&&(u=ne),a}return n[ht]=e[ht],n[Vn]={fn:e,current:t,update:r=>{g(n[Vn].current,r[Vn].fn),r[Vn].current=n[Vn].current}},n}function Qh(e){const t=_e?.function,n=_e?.p?.function;return{mutation:(r,s,i,a,l)=>{const c=s[0];if(Po(e,c)||!n)return i;let u=e;for(let f=0;f<s.length-1;f++)if(u=u[s[f]],!u?.[Ge])return i;const d=Uc(`${t[ht]}:${a}:${l}`);return sv(c,d,r,n[ht]),i},binding:(r,s,i)=>{!Po(e,r)&&n&&i()?.[Ge]&&rv(t[ht],r,s[ht],n[ht])}}}function Po(e,t){const n=Ge in e||qs in e;return!!jt(e,t)?.set||n&&t in e||!(t in e)}function ep(e){e&&Lf(e[ht]??"a component",e.name)}function tp(){const e=_e?.function;function t(n){Of(n,e[ht])}return{$destroy:()=>t("$destroy()"),$on:()=>t("$on(...)"),$set:()=>t("$set(...)")}}function np(e,t,n=!1){ba();let r=!0,s=Ie;Ec(()=>{try{var i=e()}catch(l){s=l;return}var a=On(i,!0,!0);Ee(()=>{if(n){if(t(...a),!r){const l=hv("$inspect(...)");l&&(console.groupCollapsed("stack trace"),console.log(l),console.groupEnd())}}else t(r?"init":"update",...a)}),r=!1}),Oe(()=>{try{e()}catch{}s!==Ie&&(console.error(s),s=Ie)})}function rp(e,t=[],n=[],r){var s=W,i=null;if(s&&(nt(),i=Mn(!1)),n.length===0&&t.every(c=>c.settled)){r(e),s&&ye(i);return}const a=Fr();if(s){var l=ne;ye(i)}Ur(t,[],n,c=>{s&&(xe(!0),ye(l));try{for(const u of c)o(u);r(e,...c)}finally{s&&xe(!1),a()}})}function sp(e,...t){(typeof e!="object"||!(e instanceof Node))&&ko();for(let n of t)typeof n!="function"&&ko()}const Do=0,Mo=1,ip=2;function ap(e,t,n,r,s){W&&nt();var i=Ie,a=_t(i),l=_t(i),c=new vr(e);Zt(()=>{var u=oe;u.deactivate();var d=t();u.activate();var f=!1;let h=W&&wo(d)===(e.data===js);if(h&&(ye(Mn()),xe(!1)),wo(d)){var _=Us(),S=!1;const k=x=>{if(!f){S=!0,_(!1),Pt.ensure(),W&&xe(!1);try{x()}finally{Ln(!1),Jn||hn()}}};d.then(x=>{k(()=>{Gt(a,x),c.ensure(Mo,r&&(w=>r(w,a)))})},x=>{k(()=>{if(Gt(l,x),c.ensure(ip,s&&(w=>s(w,l))),!s)throw l.v})}),W?c.ensure(Do,n):tt(()=>{S||k(()=>{c.ensure(Do,n)})})}else Gt(a,d),c.ensure(Mo,r&&(k=>r(k,a)));return h&&xe(!0),()=>{f=!0}})}function U(e,t,n=!1){var r;W&&(r=ne,nt());var s=new vr(e),i=n?Vt:0;function a(l,c){if(W){var u=da(r);if(l!==parseInt(u.substring(1))){var d=Mn();ye(d),s.anchor=d,xe(!1),s.ensure(l,c),xe(!0);return}}s.ensure(l,c)}Zt(()=>{var l=!1;t((c,u=0)=>{l=!0,a(u,c)}),l||a(-1,null)},i)}const op=Symbol("NaN");function lp(e,t,n){W&&nt();var r=new vr(e);Zt(()=>{var s=t();s!==s&&(s=op),r.ensure(s,n)})}function cp(e,t){W&&ye(Te(e)),Oe(()=>{var n=t();for(var r in n){var s=n[r];s?e.style.setProperty(r,s):e.style.removeProperty(r)}})}function Nn(e,t){return t}function up(e,t,n){for(var r=[],s=t.length,i,a=t.length,l=0;l<s;l++){let f=t[l];In(f,()=>{if(i){if(i.pending.delete(f),i.done.add(f),i.pending.size===0){var h=e.outrogroups;Ki(e,zs(i.done)),h.delete(i),h.size===0&&(e.outrogroups=null)}}else a-=1},!1)}if(a===0){var c=r.length===0&&n!==null;if(c){var u=n,d=u.parentNode;ya(d),d.append(u),e.items.clear()}Ki(e,t,!c)}else i={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(i)}function Ki(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(const a of e.pending.values())for(const l of a)r.add(e.items.get(l).e)}for(var s=0;s<t.length;s++){var i=t[s];if(r?.has(i)){i.f|=Wt;const a=document.createDocumentFragment();Sa(i,a)}else $e(t[s],n)}}var Oo;function ue(e,t,n,r,s,i=null){var a=e,l=new Map,c=(t&El)!==0;if(c){var u=e;a=W?ye(Te(u)):u.appendChild(He())}W&&nt();var d=null,f=ma(()=>{var y=n();return cr(y)?y:y==null?[]:zs(y)}),h,_=new Map,S=!0;function k(y){b.effect.f<||(b.pending.delete(y),b.fallback=d,dp(b,h,a,t,r),d!==null&&(h.length===0?d.f&Wt?(d.f^=Wt,Sr(d,null,a)):ka(d):In(d,()=>{d=null})))}function x(y){b.pending.delete(y)}var w=Zt(()=>{h=o(f);var y=h.length;let I=!1;if(W){var D=da(a)===js;D!==(y===0)&&(a=Mn(),ye(a),xe(!1),I=!0)}for(var T=new Set,m=oe,M=bc(),R=0;R<y;R+=1){W&&ne.nodeType===on&&ne.data===Ns&&(a=ne,I=!0,xe(!1));var O=h[R],P=r(O,R),L=S?null:l.get(P);L?(L.v&&Gt(L.v,O),L.i&&Gt(L.i,R),M&&m.unskip_effect(L.e)):(L=fp(l,S?a:Oo??=He(),O,P,R,s,t,n),S||(L.e.f|=Wt),l.set(P,L)),T.add(P)}if(y===0&&i&&!d&&(S?d=Ze(()=>i(a)):(d=Ze(()=>i(Oo??=He())),d.f|=Wt)),y>T.size&&jf(),W&&y>0&&ye(Mn()),!S)if(_.set(m,T),M){for(const[q,N]of l)T.has(q)||m.skip_effect(N.e);m.oncommit(k),m.ondiscard(x)}else k(m);I&&xe(!0),o(f)}),b={effect:w,items:l,pending:_,outrogroups:null,fallback:d};S=!1,W&&(a=ne)}function yr(e){for(;e!==null&&!(e.f&qt);)e=e.next;return e}function dp(e,t,n,r,s){var i=(r&cf)!==0,a=t.length,l=e.items,c=yr(e.effect.first),u,d=null,f,h=[],_=[],S,k,x,w;if(i)for(w=0;w<a;w+=1)S=t[w],k=s(S,w),x=l.get(k).e,x.f&Wt||(x.nodes?.a?.measure(),(f??=new Set).add(x));for(w=0;w<a;w+=1){if(S=t[w],k=s(S,w),x=l.get(k).e,e.outrogroups!==null)for(const O of e.outrogroups)O.pending.delete(x),O.done.delete(x);if(x.f&et&&(ka(x),i&&(x.nodes?.a?.unfix(),(f??=new Set).delete(x))),x.f&Wt)if(x.f^=Wt,x===c)Sr(x,null,n);else{var b=d?d.next:c;x===e.effect.last&&(e.effect.last=x.prev),x.prev&&(x.prev.next=x.next),x.next&&(x.next.prev=x.prev),dn(e,d,x),dn(e,x,b),Sr(x,b,n),d=x,h=[],_=[],c=yr(d.next);continue}if(x!==c){if(u!==void 0&&u.has(x)){if(h.length<_.length){var y=_[0],I;d=y.prev;var D=h[0],T=h[h.length-1];for(I=0;I<h.length;I+=1)Sr(h[I],y,n);for(I=0;I<_.length;I+=1)u.delete(_[I]);dn(e,D.prev,T.next),dn(e,d,D),dn(e,T,y),c=y,d=T,w-=1,h=[],_=[]}else u.delete(x),Sr(x,c,n),dn(e,x.prev,x.next),dn(e,x,d===null?e.effect.first:d.next),dn(e,d,x),d=x;continue}for(h=[],_=[];c!==null&&c!==x;)(u??=new Set).add(c),_.push(c),c=yr(c.next);if(c===null)continue}x.f&Wt||h.push(x),d=x,c=yr(x.next)}if(e.outrogroups!==null){for(const O of e.outrogroups)O.pending.size===0&&(Ki(e,zs(O.done)),e.outrogroups?.delete(O));e.outrogroups.size===0&&(e.outrogroups=null)}if(c!==null||u!==void 0){var m=[];if(u!==void 0)for(x of u)x.f&et||m.push(x);for(;c!==null;)!(c.f&et)&&c!==e.fallback&&m.push(c),c=yr(c.next);var M=m.length;if(M>0){var R=r&El&&a===0?n:null;if(i){for(w=0;w<M;w+=1)m[w].nodes?.a?.measure();for(w=0;w<M;w+=1)m[w].nodes?.a?.fix()}up(e,m,R)}}i&&tt(()=>{if(f!==void 0)for(x of f)x.nodes?.a?.apply()})}function fp(e,t,n,r,s,i,a,l){var c=a&of?a&uf?_t(n):Fs(n,!1,!1):null,u=a&lf?_t(s):null;return{v:c,i:u,e:Ze(()=>(i(t,c??n,u??s,l),()=>{e.delete(r)}))}}function Sr(e,t,n){if(e.nodes)for(var r=e.nodes.start,s=e.nodes.end,i=t&&!(t.f&Wt)?t.nodes.start:n;r!==null;){var a=yt(r);if(i.before(r),r===s)return;r=a}}function dn(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function vp(e,t,n=!1,r=!1,s=!1,i=!1){var a=e,l="";if(n){var c=e;W&&(a=ye(Te(c)))}$(()=>{var u=re;if(l===(l=t()??"")){W&&nt();return}if(n&&!W){u.nodes=null,c.innerHTML=l,l!==""&&qe(Te(c),c.lastChild);return}if(u.nodes!==null&&(Tc(u.nodes.start,u.nodes.end),u.nodes=null),l!==""){if(W){ne.data;for(var d=nt(),f=d;d!==null&&(d.nodeType!==on||d.data!=="");)f=d,d=yt(d);if(d===null)throw Vr(),Cn;qe(ne,f),a=ye(d);return}var h=r?$r:s?ca:void 0,_=yn(r?"svg":s?"math":"template",h);_.innerHTML=l;var S=r||s?_:_.content;if(qe(Te(S),S.lastChild),r||s)for(;Te(S);)a.before(Te(S));else a.before(S)}})}function hp(e,t,n,r,s){W&&nt();var i=t.$$slots?.[n],a=!1;i===!0&&(i=t[n==="default"?"children":n],a=!0),i===void 0?s!==null&&s(e):i(e,a?()=>r:r)}function pp(e){const t={};e.children&&(t.default=!0);for(const n in e.$$slots)t[n]=!0;return t}function Yr(e,t,n){var r;W&&(r=ne,nt());var s=new vr(e);Zt(()=>{var i=t()??null;if(W){var a=da(r),l=a===Ls,c=i!==null;if(l!==c){var u=Mn();ye(u),s.anchor=u,xe(!1),s.ensure(i,i&&(d=>n(d,i))),xe(!0);return}}s.ensure(i,i&&(d=>n(d,i)))},Vt)}const mp=()=>performance.now(),Kt={tick:e=>requestAnimationFrame(e),now:()=>mp(),tasks:new Set};function Jc(){const e=Kt.now();Kt.tasks.forEach(t=>{t.c(e)||(Kt.tasks.delete(t),t.f())}),Kt.tasks.size!==0&&Kt.tick(Jc)}function gp(e){let t;return Kt.tasks.size===0&&Kt.tick(Jc),{promise:new Promise(n=>{Kt.tasks.add(t={c:e,f:n})}),abort(){Kt.tasks.delete(t)}}}function Es(e,t){bn(()=>{e.dispatchEvent(new CustomEvent(t))})}function _p(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 Lo(e){const t={},n=e.split(";");for(const r of n){const[s,i]=r.split(":");if(!s||i===void 0)break;const a=_p(s.trim());t[a]=i.trim()}return t}const yp=e=>e;let Zc=null;function jo(e){Zc=e}function bp(e,t,n){var r=Zc??re,s=r.nodes,i,a,l,c=null;s.a??={element:e,measure(){i=this.element.getBoundingClientRect()},apply(){if(l?.abort(),a=this.element.getBoundingClientRect(),i.left!==a.left||i.right!==a.right||i.top!==a.top||i.bottom!==a.bottom){const u=t()(this.element,{from:i,to:a},n?.());l=As(this.element,u,void 0,1,()=>{l?.abort(),l=void 0})}},fix(){if(!e.getAnimations().length){var{position:u,width:d,height:f}=getComputedStyle(e);if(u!=="absolute"&&u!=="fixed"){var h=e.style;c={position:h.position,width:h.width,height:h.height,transform:h.transform},h.position="absolute",h.width=d,h.height=f;var _=e.getBoundingClientRect();if(i.left!==_.left||i.top!==_.top){var S=`translate(${i.left-_.left}px, ${i.top-_.top}px)`;h.transform=h.transform?`${h.transform} ${S}`:S}}}},unfix(){if(c){var u=e.style;u.position=c.position,u.width=c.width,u.height=c.height,u.transform=c.transform}}},s.a.element=e}function wp(e,t,n,r){var s=(e&hf)!==0,i=(e&pf)!==0,a=s&&i,l=(e&mf)!==0,c=a?"both":s?"in":"out",u,d=t.inert,f=t.style.overflow,h,_;function S(){return bn(()=>u??=n()(t,r?.()??{},{direction:c}))}var k={is_global:l,in(){if(t.inert=d,!s){_?.abort(),_?.reset?.();return}i||h?.abort(),h=As(t,S(),_,1,()=>{Es(t,"introend"),h?.abort(),h=u=void 0,t.style.overflow=f})},out(y){if(!i){y?.(),u=void 0;return}t.inert=!0,_=As(t,S(),h,0,()=>{Es(t,"outroend"),y?.()})},stop:()=>{h?.abort(),_?.abort()}},x=re;if((x.nodes.t??=[]).push(k),s&&xs){var w=l;if(!w){for(var b=x.parent;b&&b.f&Vt;)for(;(b=b.parent)&&!(b.f&Nt););w=!b||(b.f&an)!==0}w&&bt(()=>{Ee(()=>k.in())})}}function As(e,t,n,r,s){var i=r===1;if(Un(t)){var a,l=!1;return tt(()=>{if(!l){var x=t({direction:i?"in":"out"});a=As(e,x,n,r,s)}}),{abort:()=>{l=!0,a?.abort()},deactivate:()=>a.deactivate(),reset:()=>a.reset(),t:()=>a.t()}}if(n?.deactivate(),!t?.duration&&!t?.delay)return Es(e,i?"introstart":"outrostart"),s(),{abort:pt,deactivate:pt,reset:pt,t:()=>r};const{delay:c=0,css:u,tick:d,easing:f=yp}=t;var h=[];if(i&&n===void 0&&(d&&d(0,1),u)){var _=Lo(u(0,1));h.push(_,_)}var S=()=>1-r,k=e.animate(h,{duration:c,fill:"forwards"});return k.onfinish=()=>{k.cancel(),Es(e,i?"introstart":"outrostart");var x=n?.t()??1-r;n?.abort();var w=r-x,b=t.duration*Math.abs(w),y=[];if(b>0){var I=!1;if(u)for(var D=Math.ceil(b/16.666666666666668),T=0;T<=D;T+=1){var m=x+w*f(T/D),M=Lo(u(m,1-m));y.push(M),I||=M.overflow==="hidden"}I&&(e.style.overflow="hidden"),S=()=>{var R=k.currentTime;return x+w*f(R/b)},d&&gp(()=>{if(k.playState!=="running")return!1;var R=S();return d(R,1-R),!0})}k=e.animate(y,{duration:b,fill:"forwards"}),k.onfinish=()=>{S=()=>r,d?.(r,1-r),s()}},{abort:()=>{k&&(k.cancel(),k.effect=null,k.onfinish=pt)},deactivate:()=>{s=pt},reset:()=>{r===0&&d?.(1,0)},t:()=>S()}}function kp(e,t,n,r,s,i){let a=W;W&&nt();var l=null;W&&ne.nodeType===Nl&&(l=ne,nt());var c=W?ne:e,u=re,d=new vr(c,!1);Zt(()=>{const f=t()||null;var h=s?s():n||f==="svg"?$r:void 0;if(f===null){d.ensure(null,null),Yn(!0);return}return d.ensure(f,_=>{if(f){if(l=W?l:yn(f,h),qe(l,l),r){W&&Lh(f)&&l.append(document.createComment(""));var S=W?Te(l):l.appendChild(He());W&&(S===null?xe(!1):ye(S)),jo(u),r(l,S),jo(null)}re.nodes.end=l,_.before(l)}W&&ye(_)}),Yn(!0),()=>{f&&Yn(!1)}},Vt),wt(()=>{Yn(!0)}),a&&(xe(!0),ye(c))}function Sp(e,t){let n=null,r=W;var s;if(W){n=ne;for(var i=Te(document.head);i!==null&&(i.nodeType!==on||i.data!==e);)i=yt(i);if(i===null)xe(!1);else{var a=yt(i);i.remove(),ye(a)}}W||(s=document.head.appendChild(He()));try{Zt(()=>t(s),Ll|_n)}finally{r&&(xe(!0),ye(n))}}function xp(e,t){bt(()=>{var n=e.getRootNode(),r=n.host?n:n.head??n.ownerDocument.head;if(!r.querySelector("#"+t.hash)){const s=yn("style");s.id=t.hash,s.textContent=t.code,r.appendChild(s)}})}function Qc(e,t,n){bt(()=>{var r=Ee(()=>t(e,n?.())||{});if(n&&r?.update){var s=!1,i={};Oe(()=>{var a=n();Ea(a),s&&Ul(i,a)&&(i=a,r.update(a))}),s=!0}if(r?.destroy)return()=>r.destroy()})}function Ra(e,t){var n=void 0,r;Ac(()=>{n!==(n=t())&&(r&&($e(r),r=null),n&&(r=Ze(()=>{bt(()=>n(e))})))})}const Ep=/[&"<]/g;function Ap(e,t){const n=String(e??""),r=Ep;r.lastIndex=0;let s="",i=0;for(;r.test(n);){const a=r.lastIndex-1,l=n[a];s+=n.substring(i,a)+(l==="&"?"&":l==='"'?""":"<"),i=a+1}return s+n.substring(i)}function eu(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=eu(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function Ip(){for(var e,t,n=0,r="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=eu(e))&&(r&&(r+=" "),r+=t);return r}const No={translate:new Map([[!0,"yes"],[!1,"no"]])};function Tp(e,t,n=!1){if(e==="hidden"&&t!=="until-found"&&(n=!0),t==null||!t&&n)return"";const r=wf.call(No,e)&&No[e].get(t)||t,s=n?'=""':`="${Ap(r)}"`;return` ${e}${s}`}function tu(e){return typeof e=="object"?Ip(e):e??""}const zo=[...`
|
|
6
|
+
\r\f \v\uFEFF`];function Cp(e,t,n){var r=e==null?"":""+e;if(t&&(r=r?r+" "+t:t),n){for(var s of Object.keys(n))if(n[s])r=r?r+" "+s:s;else if(r.length)for(var i=s.length,a=0;(a=r.indexOf(s,a))>=0;){var l=a+i;(a===0||zo.includes(r[a-1]))&&(l===r.length||zo.includes(r[l]))?r=(a===0?"":r.substring(0,a))+r.substring(l+1):a=l}}return r===""?null:r}function $o(e,t=!1){var n=t?" !important;":";",r="";for(var s of Object.keys(e)){var i=e[s];i!=null&&i!==""&&(r+=" "+s+": "+i+n)}return r}function yi(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function Rp(e,t){if(t){var n="",r,s;if(Array.isArray(t)?(r=t[0],s=t[1]):r=t,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var i=!1,a=0,l=!1,c=[];r&&c.push(...Object.keys(r).map(yi)),s&&c.push(...Object.keys(s).map(yi));var u=0,d=-1;const k=e.length;for(var f=0;f<k;f++){var h=e[f];if(l?h==="/"&&e[f-1]==="*"&&(l=!1):i?i===h&&(i=!1):h==="/"&&e[f+1]==="*"?l=!0:h==='"'||h==="'"?i=h:h==="("?a++:h===")"&&a--,!l&&i===!1&&a===0){if(h===":"&&d===-1)d=f;else if(h===";"||f===k-1){if(d!==-1){var _=yi(e.substring(u,d).trim());if(!c.includes(_)){h!==";"&&f++;var S=e.substring(u,f).trim();n+=" "+S+";"}}u=f+1,d=-1}}}}return r&&(n+=$o(r)),s&&(n+=$o(s,!0)),n=n.trim(),n===""?null:n}return e==null?null:String(e)}function we(e,t,n,r,s,i){var a=e.__className;if(W||a!==n||a===void 0){var l=Cp(n,r,i);(!W||l!==e.getAttribute("class"))&&(l==null?e.removeAttribute("class"):t?e.className=l:e.setAttribute("class",l)),e.__className=n}else if(i&&s!==i)for(var c in i){var u=!!i[c];(s==null||u!==!!s[c])&&e.classList.toggle(c,u)}return i}function bi(e,t={},n,r){for(var s in n){var i=n[s];t[s]!==i&&(n[s]==null?e.style.removeProperty(s):e.style.setProperty(s,i,r))}}function Qt(e,t,n,r){var s=e.__style;if(W||s!==t){var i=Rp(t,r);(!W||i!==e.getAttribute("style"))&&(i==null?e.removeAttribute("style"):e.style.cssText=i),e.__style=t}else r&&(Array.isArray(r)?(bi(e,n?.[0],r[0]),bi(e,n?.[1],r[1],"important")):bi(e,n,r));return r}function Dr(e,t,n=!1){if(e.multiple){if(t==null)return;if(!cr(t))return iv();for(var r of e.options)r.selected=t.includes(Ar(r));return}for(r of e.options){var s=Ar(r);if(mc(s,t)){r.selected=!0;return}}(!n||t!==void 0)&&(e.selectedIndex=-1)}function Pa(e){var t=new MutationObserver(()=>{Dr(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),wt(()=>{t.disconnect()})}function Mr(e,t,n=t){var r=new WeakSet,s=!0;Kr(e,"change",i=>{var a=i?"[selected]":":checked",l;if(e.multiple)l=[].map.call(e.querySelectorAll(a),Ar);else{var c=e.querySelector(a)??e.querySelector("option:not([disabled])");l=c&&Ar(c)}n(l),e.__value=l,oe!==null&&r.add(oe)}),bt(()=>{var i=t();if(e===document.activeElement){var a=oe;if(r.has(a))return}if(Dr(e,i,s),s&&i===void 0){var l=e.querySelector(":checked");l!==null&&(i=Ar(l),n(i))}e.__value=i,s=!1}),Pa(e)}function Ar(e){return"__value"in e?e.__value:e.value}const Hn=Symbol("class"),Kn=Symbol("style"),nu=Symbol("is custom element"),ru=Symbol("is html"),Pp=qn?"link":"LINK",Dp=qn?"input":"INPUT",Mp=qn?"option":"OPTION",Op=qn?"select":"SELECT",Lp=qn?"progress":"PROGRESS";function Se(e){if(W){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute("value")){var r=e.value;ke(e,"value",null),e.value=r}if(e.hasAttribute("checked")){var s=e.checked;ke(e,"checked",null),e.checked=s}}};e.__on_r=n,tt(n),kc()}}function su(e,t){var n=Ws(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==Lp)||(e.value=t??"")}function iu(e,t){var n=Ws(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function au(e,t){t?e.hasAttribute("selected")||e.setAttribute("selected",""):e.removeAttribute("selected")}function jp(e,t){const n=e.checked;e.defaultChecked=t,e.checked=n}function Np(e,t){const n=e.value;e.defaultValue=t,e.value=n}function ke(e,t,n,r){var s=Ws(e);W&&(s[t]=e.getAttribute(t),t==="src"||t==="srcset"||t==="href"&&e.nodeName===Pp)||s[t]!==(s[t]=n)&&(t==="loading"&&(e[Ef]=n),n==null?e.removeAttribute(t):typeof n!="string"&&Da(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function zp(e,t,n){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n)}function $p(e,t,n){var r=le,s=re;let i=W;W&&xe(!1),ct(null),Xe(null);try{t!=="style"&&(Wi.has(e.getAttribute("is")||e.nodeName)||!customElements||customElements.get(e.getAttribute("is")||e.nodeName.toLowerCase())?Da(e).includes(t):n&&typeof n=="object")?e[t]=n:ke(e,t,n==null?n:String(n))}finally{ct(r),Xe(s),i&&xe(!0)}}function qp(e,t,n,r,s=!1,i=!1){if(W&&s&&e.nodeName===Dp){var a=e,l=a.type==="checkbox"?"defaultChecked":"defaultValue";l in n||Se(a)}var c=Ws(e),u=c[nu],d=!c[ru];let f=W&&u;f&&xe(!1);var h=t||{},_=e.nodeName===Mp;for(var S in t)S in n||(n[S]=null);n.class?n.class=tu(n.class):(r||n[Hn])&&(n.class=null),n[Kn]&&(n.style??=null);var k=Da(e);for(const T in n){let m=n[T];if(_&&T==="value"&&m==null){e.value=e.__value="",h[T]=m;continue}if(T==="class"){var x=e.namespaceURI==="http://www.w3.org/1999/xhtml";we(e,x,m,r,t?.[Hn],n[Hn]),h[T]=m,h[Hn]=n[Hn];continue}if(T==="style"){Qt(e,m,t?.[Kn],n[Kn]),h[T]=m,h[Kn]=n[Kn];continue}var w=h[T];if(!(m===w&&!(m===void 0&&e.hasAttribute(T)))){h[T]=m;var b=T[0]+T[1];if(b!=="$$")if(b==="on"){const M={},R="$$"+T;let O=T.slice(2);var y=Ch(O);if(Ih(O)&&(O=O.slice(0,-7),M.capture=!0),!y&&w){if(m!=null)continue;e.removeEventListener(O,h[R],M),h[R]=null}if(y)F(O,e,m),pe([O]);else if(m!=null){let P=function(L){h[T].call(this,L)};h[R]=$c(O,e,P,M)}}else if(T==="style")ke(e,T,m);else if(T==="autofocus")dr(e,!!m);else if(!u&&(T==="__value"||T==="value"&&m!=null))e.value=e.__value=m;else if(T==="selected"&&_)au(e,m);else{var I=T;d||(I=Ph(I));var D=I==="defaultValue"||I==="defaultChecked";if(m==null&&!u&&!D)if(c[T]=null,I==="value"||I==="checked"){let M=e;const R=t===void 0;if(I==="value"){let O=M.defaultValue;M.removeAttribute(I),M.defaultValue=O,M.value=M.__value=R?O:null}else{let O=M.defaultChecked;M.removeAttribute(I),M.defaultChecked=O,M.checked=R?O:!1}}else e.removeAttribute(T);else D||k.includes(I)&&(u||typeof m!="string")?(e[I]=m,I in c&&(c[I]=Ie)):typeof m!="function"&&ke(e,I,m)}}}return f&&xe(!0),h}function Bp(e,t,n=[],r=[],s=[],i,a=!1,l=!1){Ur(s,n,r,c=>{var u=void 0,d={},f=e.nodeName===Op,h=!1;if(Ac(()=>{var S=t(...c.map(o)),k=qp(e,u,S,i,a,l);h&&f&&"value"in S&&Dr(e,S.value);for(let w of Object.getOwnPropertySymbols(d))S[w]||$e(d[w]);for(let w of Object.getOwnPropertySymbols(S)){var x=S[w];w.description===Cl&&(!u||x!==u[w])&&(d[w]&&$e(d[w]),d[w]=Ze(()=>Ra(e,()=>x))),k[w]=x}u=k}),f){var _=e;bt(()=>{Dr(_,u.value,!0),Pa(_)})}h=!0})}function Ws(e){return e.__attributes??={[nu]:e.nodeName.includes("-"),[ru]:e.namespaceURI===Tl}}var Wi=new Map;function Da(e){var t=e.getAttribute("is")||e.nodeName,n=Wi.get(t);if(n)return n;Wi.set(t,n=[]);for(var r,s=e,i=Element.prototype;i!==s;){r=Pl(s);for(var a in r)r[a].set&&n.push(a);s=$s(s)}return n}let wi=null;function ou(){if(wi===null){var e=yn("select");e.innerHTML=qc("<option><span>t</span></option>"),wi=e.firstChild?.firstChild?.nodeType===1}return wi}function Vp(e,t){ou()&&Ra(e,()=>()=>{const n=e.closest("select");if(!n)return;const r=new MutationObserver(s=>{var i=!1;for(const a of s){if(a.target===e)return;i||=!!a.target.parentElement?.closest("option")?.selected}i&&(e.replaceWith(e=e.cloneNode(!0)),t(e))});return r.observe(n,{childList:!0,characterData:!0,subtree:!0}),()=>{r.disconnect()}})}function Up(e,t){var n=W;ou()||(xe(!1),e.textContent="",e.append(wc("")));try{t()}finally{n&&(W?v(e):(xe(!0),ye(e)))}}function Fp(e){dt(document,["focusin","focusout"],t=>{t&&t.type==="focusout"&&t.relatedTarget||e(document.activeElement)})}function Me(e,t,n=t){var r=new WeakSet;Kr(e,"input",async s=>{var i=s?e.defaultValue:e.value;if(i=Si(e)?xi(i):i,n(i),oe!==null&&r.add(oe),await xa(),i!==(i=t())){var a=e.selectionStart,l=e.selectionEnd,c=e.value.length;if(e.value=i??"",l!==null){var u=e.value.length;a===l&&l===c&&u>c?(e.selectionStart=u,e.selectionEnd=u):(e.selectionStart=a,e.selectionEnd=Math.min(l,u))}}}),(W&&e.defaultValue!==e.value||Ee(t)==null&&e.value)&&(n(Si(e)?xi(e.value):e.value),oe!==null&&r.add(oe)),Oe(()=>{var s=t();if(e===document.activeElement){var i=oe;if(r.has(i))return}Si(e)&&s===xi(e.value)||e.type==="date"&&!s&&!e.value||s!==e.value&&(e.value=s??"")})}const ki=new Set;function Hp(e,t,n,r,s=r){var i=n.getAttribute("type")==="checkbox",a=e;let l=!1;if(t!==null)for(var c of t)a=a[c]??=[];a.push(n),Kr(n,"change",()=>{var u=n.__value;i&&(u=qo(a,u,n.checked)),s(u)},()=>s(i?[]:null)),Oe(()=>{var u=r();if(W&&n.defaultChecked!==n.checked){l=!0;return}i?(u=u||[],n.checked=u.includes(n.__value)):n.checked=mc(n.__value,u)}),wt(()=>{var u=a.indexOf(n);u!==-1&&a.splice(u,1)}),ki.has(a)||(ki.add(a),tt(()=>{a.sort((u,d)=>u.compareDocumentPosition(d)===4?-1:1),ki.delete(a)})),tt(()=>{if(l){var u;if(i)u=qo(a,u,n.checked);else{var d=a.find(f=>f.checked);u=d?.__value}s(u)}})}function ds(e,t,n=t){Kr(e,"change",r=>{var s=r?e.defaultChecked:e.checked;n(s)}),(W&&e.defaultChecked!==e.checked||Ee(t)==null)&&n(e.checked),Oe(()=>{var r=t();e.checked=!!r})}function qo(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 Si(e){var t=e.type;return t==="number"||t==="range"}function xi(e){return e===""?null:+e}function Kp(e,t,n=t){Kr(e,"change",()=>{n(e.files)}),W&&e.files&&n(e.files),Oe(()=>{e.files=t()})}function Ma(e){for(var t=[],n=0;n<e.length;n+=1)t.push({start:e.start(n),end:e.end(n)});return t}function Wp(e,t,n=t){var r,s,i=()=>{cancelAnimationFrame(r),e.paused||(r=requestAnimationFrame(i));var a=e.currentTime;s!==a&&n(s=a)};r=requestAnimationFrame(i),e.addEventListener("timeupdate",i),Oe(()=>{var a=Number(t());s!==a&&!isNaN(a)&&(e.currentTime=s=a)}),wt(()=>{cancelAnimationFrame(r),e.removeEventListener("timeupdate",i)})}function Yp(e,t){var n;dt(e,["loadedmetadata","progress","timeupdate","seeking"],()=>{var r=e.buffered;(!n||n.length!==r.length||n.some((s,i)=>r.start(i)!==s.start||r.end(i)!==s.end))&&(n=Ma(r),t(n))})}function Gp(e,t){dt(e,["loadedmetadata"],()=>t(Ma(e.seekable)))}function Xp(e,t){dt(e,["timeupdate"],()=>t(Ma(e.played)))}function Jp(e,t){dt(e,["seeking","seeked"],()=>t(e.seeking))}function Zp(e,t){dt(e,["timeupdate","ended"],()=>t(e.ended))}function Qp(e,t){dt(e,["loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","emptied"],()=>t(e.readyState))}function em(e,t,n=t){bt(()=>{var r=Number(t());r!==e.playbackRate&&!isNaN(r)&&(e.playbackRate=r)}),bt(()=>{dt(e,["ratechange"],()=>{n(e.playbackRate)})})}function tm(e,t,n=t){var r=t(),s=()=>{r!==e.paused&&n(r=e.paused)};dt(e,["play","pause","canplay"],s,r==null),bt(()=>{(r=!!t())!==e.paused&&(r?e.pause():e.play().catch(i=>{throw n(r=!0),i}))})}function nm(e,t,n=t){var r=()=>{n(e.volume)};t()==null&&r(),dt(e,["volumechange"],r,!1),Oe(()=>{var s=Number(t());s!==e.volume&&!isNaN(s)&&(e.volume=s)})}function rm(e,t,n=t){var r=()=>{n(e.muted)};t()==null&&r(),dt(e,["volumechange"],r,!1),Oe(()=>{var s=!!t();e.muted!==s&&(e.muted=s)})}function sm(e){dt(window,["online","offline"],()=>{e(navigator.onLine)})}function im(e,t,n){var r=jt(e,t);r&&r.set&&(e[t]=n,wt(()=>{e[t]=null}))}class Gr{#e=new WeakMap;#t;#n;static entries=new WeakMap;constructor(t){this.#n=t}observe(t,n){var r=this.#e.get(t)||new Set;return r.add(n),this.#e.set(t,r),this.#i().observe(t,this.#n),()=>{var s=this.#e.get(t);s.delete(n),s.size===0&&(this.#e.delete(t),this.#t.unobserve(t))}}#i(){return this.#t??(this.#t=new ResizeObserver(t=>{for(var n of t){Gr.entries.set(n.target,n);for(var r of this.#e.get(n.target)||[])r(n)}}))}}var am=new Gr({box:"content-box"}),lu=new Gr({box:"border-box"}),om=new Gr({box:"device-pixel-content-box"});function lm(e,t,n){var r=t==="contentRect"||t==="contentBoxSize"?am:t==="borderBoxSize"?lu:om,s=r.observe(e,i=>n(i[t]));wt(s)}function cm(e,t,n){var r=lu.observe(e,()=>n(e[t]));bt(()=>(Ee(()=>n(e[t])),r))}function Bo(e,t){return e===t||e?.[Ge]===t}function ut(e={},t,n,r){var s=_e.r,i=re;return bt(()=>{var a,l;return Oe(()=>{a=l,l=r?.()||[],Ee(()=>{e!==n(...l)&&(t(e,...l),a&&Bo(n(...a),e)&&t(null,...a))})}),()=>{let c=i;for(;c!==s&&c.parent!==null&&c.parent.f&Oi;)c=c.parent;const u=()=>{l&&Bo(n(...l),e)&&t(null,...l)},d=c.teardown;c.teardown=()=>{u(),d?.()}}}),e}function um(e,t,n,r=n){t.addEventListener("input",()=>{r(t[e])}),Oe(()=>{var s=n();if(t[e]!==s)if(s==null){var i=t[e];r(i)}else t[e]=s+""})}function dm(e,t,n,r,s){var i=()=>{r(n[e])};n.addEventListener(t,i),s?Oe(()=>{n[e]=s()}):i(),(n===document.body||n===window||n===document)&&wt(()=>{n.removeEventListener(t,i)})}function fm(e,t){dt(e,["focus","blur"],()=>{t(e===document.activeElement)})}function vm(e,t,n=t){var r=e==="x",s=()=>bn(()=>{i=!0,clearTimeout(a),a=setTimeout(l,100),n(window[r?"scrollX":"scrollY"])});addEventListener("scroll",s,{passive:!0});var i=!1,a,l=()=>{i=!1},c=!0;Oe(()=>{var u=t();c?c=!1:!i&&u!=null&&(i=!0,clearTimeout(a),r?scrollTo(u,window.scrollY):scrollTo(window.scrollX,u),a=setTimeout(l,100))}),bt(s),wt(()=>{removeEventListener("scroll",s)})}function hm(e,t){dt(window,["resize"],()=>bn(()=>t(window[e])))}function pm(e){return function(...t){var n=t[0];n.isTrusted&&e?.apply(this,t)}}function mm(e){return function(...t){var n=t[0];n.target===this&&e?.apply(this,t)}}function gm(e){return function(...t){var n=t[0];return n.stopPropagation(),e?.apply(this,t)}}function _m(e){var t=!1;return function(...n){if(!t)return t=!0,e?.apply(this,n)}}function ym(e){return function(...t){var n=t[0];return n.stopImmediatePropagation(),e?.apply(this,t)}}function bm(e){return function(...t){var n=t[0];return n.preventDefault(),e?.apply(this,t)}}function wm(e=!1){const t=_e,n=t.l.u;if(!n)return;let r=()=>Ea(t.s);if(e){let s=0,i={};const a=Hr(()=>{let l=!1;const c=t.s;for(const u in c)c[u]!==i[u]&&(i[u]=c[u],l=!0);return l&&s++,s});r=()=>o(a)}n.b.length&&xc(()=>{Vo(t,r),Di(n.b)}),Ce(()=>{const s=Ee(()=>n.m.map(kf));return()=>{for(const i of s)typeof i=="function"&&i()}}),n.a.length&&Ce(()=>{Vo(t,r),Di(n.a)})}function Vo(e,t){if(e.l.s)for(const n of e.l.s)o(n);t()}function km(e){var t=_t(0);return function(){return arguments.length===1?(g(t,o(t)+1),arguments[0]):(o(t),e())}}function Sm(e,t){var n=e.$$events?.[t.type],r=cr(n)?n.slice():n==null?[]:[n];for(var s of r)s.call(this,t)}function xm(e,t,n){e.$$events||={},e.$$events[t]||=[],e.$$events[t].push(n)}function Em(e){for(var t in e)t in this&&(this[t]=e[t])}function Am(e,t=1){const n=e();return e(n+t),n}function Im(e,t=1){const n=e()+t;return e(n),n}const Tm={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 Cm(e,t,n){return new Proxy({props:e,exclude:t},Tm)}const Rm={get(e,t){if(!e.exclude.includes(t))return o(e.version),t in e.special?e.special[t]():e.props[t]},set(e,t,n){if(!(t in e.special)){var r=re;try{Xe(e.parent_effect),e.special[t]=$t({get[t](){return e.props[t]}},t,Al)}finally{Xe(r)}}return e.special[t](n),rr(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),rr(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 Pm(e,t){return new Proxy({props:e,exclude:t,special:{},version:_t(0),parent_effect:re},Rm)}const Dm={get(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(Un(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r)return r[t]}},set(e,t,n){let r=e.props.length;for(;r--;){let s=e.props[r];Un(s)&&(s=s());const i=jt(s,t);if(i&&i.set)return i.set(n),!0}return!1},getOwnPropertyDescriptor(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(Un(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r){const s=jt(r,t);return s&&!s.configurable&&(s.configurable=!0),s}}},has(e,t){if(t===Ge||t===qs)return!1;for(let n of e.props)if(Un(n)&&(n=n()),n!=null&&t in n)return!0;return!1},ownKeys(e){const t=[];for(let n of e.props)if(Un(n)&&(n=n()),!!n){for(const r in n)t.includes(r)||t.push(r);for(const r of Object.getOwnPropertySymbols(n))t.includes(r)||t.push(r)}return t}};function Xr(...e){return new Proxy({props:e},Dm)}function $t(e,t,n,r){var s=(n&ff)!==0,i=(n&vf)!==0,a=r,l=!0,c=()=>(l&&(l=!1,a=i?Ee(r):r),a);let u;if(s){var d=Ge in e||qs in e;u=jt(e,t)?.set??(d&&t in e?b=>e[t]=b:void 0)}var f,h=!1;s?[f,h]=rc(()=>e[t]):f=e[t],f===void 0&&r!==void 0&&(f=c(),u&&(Kf(),u(f)));var _;if(_=()=>{var b=e[t];return b===void 0?c():(l=!0,b)},!(n&Al))return _;if(u){var S=e.$$legacy;return function(b,y){return arguments.length>0?((!y||S||h)&&u(y?_():b),b):_()}}var k=!1,x=(n&df?Hr:ma)(()=>(k=!1,_()));s&&o(x);var w=re;return function(b,y){if(arguments.length>0){const I=y?o(x):s?ce(b):b;return g(x,I),k=!0,a!==void 0&&(a=I),b}return sn&&k||w.f<?x.v:o(x)}}function Mm(e,t,n,r,s,i){cc(t,()=>{var a=!1;fa?.[ht],Oe(()=>{if(!a){var[l,c]=rc(n);if(!c){var u=r(),d=!1,f=Oe(()=>{d||l[u]});d=!0,f.deps===null&&(Zf(),a=!0)}}})})}function Om(e){return new Lm(e)}class Lm{#e;#t;constructor(t){var n=new Map,r=(i,a)=>{var l=Fs(a,!1,!1);return n.set(i,l),l};const s=new Proxy({...t.props||{},$$events:{}},{get(i,a){return o(n.get(a)??r(a,Reflect.get(i,a)))},has(i,a){return a===qs?!0:(o(n.get(a)??r(a,Reflect.get(i,a))),Reflect.has(i,a))},set(i,a,l){return g(n.get(a)??r(a,l),l),Reflect.set(i,a,l)}});this.#t=(t.hydrate?Fc:ze)(t.component,{target:t.target,anchor:t.anchor,props:s,context:t.context,intro:t.intro??!1,recover:t.recover,transformError:t.transformError}),(!t?.props?.$$host||t.sync===!1)&&hn(),this.#e=s.$$events;for(const i of Object.keys(this.#t))i==="$set"||i==="$destroy"||i==="$on"||Rn(this,i,{get(){return this.#t[i]},set(a){this.#t[i]=a},enumerable:!0});this.#t.$set=i=>{Object.assign(s,i)},this.#t.$destroy=()=>{Fe(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 cu;typeof HTMLElement=="function"&&(cu=class extends HTMLElement{$$ctor;$$s;$$c;$$cn=!1;$$d={};$$r=!1;$$p_d={};$$l={};$$l_u=new Map;$$me;$$shadowRoot=null;constructor(e,t,n){super(),this.$$ctor=e,this.$$s=t,n&&(this.$$shadowRoot=this.attachShadow(n))}addEventListener(e,t,n){if(this.$$l[e]=this.$$l[e]||[],this.$$l[e].push(t),this.$$c){const r=this.$$c.$on(e,t);this.$$l_u.set(t,r)}super.addEventListener(e,t,n)}removeEventListener(e,t,n){if(super.removeEventListener(e,t,n),this.$$c){const r=this.$$l_u.get(t);r&&(r(),this.$$l_u.delete(t))}}async connectedCallback(){if(this.$$cn=!0,!this.$$c){let e=function(r){return s=>{const i=yn("slot");r!=="default"&&(i.name=r),A(s,i)}};if(await Promise.resolve(),!this.$$cn||this.$$c)return;const t={},n=jm(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]=fs(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=Om({component:this.$$ctor,target:this.$$shadowRoot||this,props:{...this.$$d,$$slots:t,$$host:this}}),this.$$me=Ks(()=>{Oe(()=>{this.$$r=!0;for(const r of ys(this.$$c)){if(!this.$$p_d[r]?.reflect)continue;this.$$d[r]=this.$$c[r];const s=fs(r,this.$$d[r],this.$$p_d,"toAttribute");s==null?this.removeAttribute(this.$$p_d[r].attribute||r):this.setAttribute(this.$$p_d[r].attribute||r,s)}this.$$r=!1})});for(const r in this.$$l)for(const s of this.$$l[r]){const i=this.$$c.$on(r,s);this.$$l_u.set(s,i)}this.$$l={}}}attributeChangedCallback(e,t,n){this.$$r||(e=this.$$g_p(e),this.$$d[e]=fs(e,n,this.$$p_d,"toProp"),this.$$c?.$set({[e]:this.$$d[e]}))}disconnectedCallback(){this.$$cn=!1,Promise.resolve().then(()=>{!this.$$cn&&this.$$c&&(this.$$c.$destroy(),this.$$me(),this.$$c=void 0)})}$$g_p(e){return ys(this.$$p_d).find(t=>this.$$p_d[t].attribute===e||!this.$$p_d[t].attribute&&t.toLowerCase()===e)||e}});function fs(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 jm(e){const t={};return e.childNodes.forEach(n=>{t[n.slot||"default"]=!0}),t}function Nm(e,t,n,r,s,i){let a=class extends cu{constructor(){super(e,n,s),this.$$p_d=t}static get observedAttributes(){return ys(t).map(l=>(t[l].attribute||l).toLowerCase())}};return ys(t).forEach(l=>{Rn(a.prototype,l,{get(){return this.$$c&&l in this.$$c?this.$$c[l]:this.$$d[l]},set(c){c=fs(l,c,t),this.$$d[l]=c;var u=this.$$c;if(u){var d=jt(u,l)?.get;d?u[l]=c:u.$set({[l]:c})}}})}),r.forEach(l=>{Rn(a.prototype,l,{get(){return this.$$c?.[l]}})}),i&&(a=i(a)),e.element=a,a}function zm(e,...t){return Ee(()=>{try{let n=!1;const r=[];for(const s of t)s&&typeof s=="object"&&Ge in s?(r.push(On(s,!0)),n=!0):r.push(s);n&&(Qf(e),console.log("%c[snapshot]","color: grey",...r))}catch{}}),t}const uu=Object.freeze(Object.defineProperty({__proto__:null,CLASS:Hn,FILENAME:ht,HMR:Vn,NAMESPACE_SVG:$r,STYLE:Kn,aborted:Vi,action:Qc,get active_effect(){return re},add_legacy_event_listener:xm,add_locations:Xh,add_svelte_meta:mv,animation:bp,append:A,append_styles:xp,apply:ph,assign:Wh,assign_async:Yh,async:rp,async_derived:uc,attach:Ra,attachment:Kh,attr:Tp,attribute_effect:Bp,autofocus:dr,await:ap,bind_active_element:Fp,bind_buffered:Yp,bind_checked:ds,bind_content_editable:um,bind_current_time:Wp,bind_element_size:cm,bind_ended:Zp,bind_files:Kp,bind_focused:fm,bind_group:Hp,bind_muted:rm,bind_online:sm,bind_paused:tm,bind_playback_rate:em,bind_played:Xp,bind_prop:im,bind_property:dm,bind_ready_state:Qp,bind_resize_observer:lm,bind_seekable:Gp,bind_seeking:Jp,bind_select_value:Mr,bind_this:ut,bind_value:Me,bind_volume:nm,bind_window_scroll:vm,bind_window_size:hm,boundary:lc,bubble_event:Sm,check_target:ep,child:p,cleanup_styles:Gh,clsx:tu,comment:at,component:Yr,create_custom_element:Nm,create_ownership_validator:Qh,css_props:cp,customizable_select:Up,deep_read:Ss,deep_read_state:Ea,deferred_template_effect:ih,delegate:pe,delegated:F,derived:X,derived_safe_equal:ma,get document(){return gc},each:ue,eager:Ov,effect:bt,effect_root:Ks,effect_tracking:Wr,element:kp,equals:Xv,event:Je,exclude_from_object:xf,fallback:Sf,first_child:he,flush:hn,for_await_track_reactivity_loss:Bv,from_html:C,from_mathml:bh,from_svg:yh,from_tree:wh,get:o,head:Sp,hmr:Zh,html:vp,hydrate_template:ov,if:U,index:Nn,init:wm,init_select:Pa,inspect:np,invalid_default_snippet:Tf,invalidate_inner_signals:lh,invalidate_store:Ev,invoke_error_boundary:Yt,key:lp,legacy_api:tp,legacy_pre_effect:nh,legacy_pre_effect_reset:rh,legacy_rest_props:Pm,log_if_contains_state:zm,mark_store_binding:Rv,mutable_source:Fs,mutate:Wv,next:nn,noop:pt,once:_m,pending:$v,pop:ie,preventDefault:bm,prevent_snippet_stringification:Kc,prop:$t,props_id:xh,proxy:ce,push:se,raf:Kt,reactive_import:km,remove_input_defaults:Se,remove_textarea_child:Qv,render_effect:Oe,replay_events:hh,reset:v,rest_props:Cm,run:Vv,run_after_blockers:cc,safe_get:fh,sanitize_slots:pp,save:qv,select_option:Dr,selectedcontent:Vp,self:mm,set:g,set_attribute:ke,set_checked:iu,set_class:we,set_custom_element_data:$p,set_default_checked:jp,set_default_value:Np,set_selected:au,set_style:Qt,set_text:j,set_value:su,set_xlink_attribute:zp,setup_stores:Av,sibling:E,slot:hp,snapshot:On,snippet:Ia,spread_props:Xr,state:z,stopImmediatePropagation:ym,stopPropagation:gm,store_get:Sv,store_mutate:Iv,store_set:nc,store_unsub:xv,strict_equals:Gv,tag:vv,tag_proxy:Kl,template_effect:$,text:zt,tick:xa,to_array:Ol,trace:fv,track_reactivity_loss:$i,transition:wp,trusted:pm,untrack:Ee,update:rr,update_legacy_props:Em,update_pre:Yv,update_pre_prop:Im,update_pre_store:Cv,update_prop:Am,update_store:Tv,user_effect:Ce,user_pre_effect:xc,validate_binding:Mm,validate_dynamic_element_tag:Nh,validate_snippet_args:sp,validate_store:zh,validate_void_dynamic_element:jh,wait:Uv,get window(){return qi},with_script:kh,wrap_snippet:$h},Symbol.toStringTag,{value:"Module"}));class Uo{#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 Fo{#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 $m=["workspace","user"],Oa="state:manage",Ut={ephemeral:new Uo,session:new Uo,workspace:new Fo("sh3:workspace:"),user:new Fo("sh3:user:")},Ei=new Map;let Ai=!1;function qm(e,t,n){Ei.set(`${e}:${t}`,{zone:e,shardId:t,value:n}),!Ai&&(Ai=!0,queueMicrotask(()=>{Ai=!1;for(const{zone:r,shardId:s,value:i}of Ei.values())Ut[r].write(s,i);Ei.clear()}))}function Ys(e,t){const n={};for(const r of Object.keys(t)){const s=t[r],a=Ut[r].read(e),l={...s,...a??{}},c=ce(l);n[r]=c,$m.includes(r)&&Ks(()=>{let u=!0;Ce(()=>{const d=On(c);if(u){u=!1;return}qm(r,e,d)})})}return n}function Ho(e,t){Ut[e]=t}function Bm(e,t){return Ut[e].read(t)}function Yi(e,t){Ut[e].delete(t)}const Vm="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(Vm);const Um=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function Fm(e){const t=document.activeElement;function n(){return Array.from(e.querySelectorAll(Um))}function r(s){if(s.key!=="Tab")return;const i=n();if(i.length===0){s.preventDefault();return}const a=i[0],l=i[i.length-1],c=document.activeElement;s.shiftKey&&(c===a||!e.contains(c))?(s.preventDefault(),l.focus()):!s.shiftKey&&(c===l||!e.contains(c))&&(s.preventDefault(),a.focus())}return e.addEventListener("keydown",r),queueMicrotask(()=>{(n()[0]??e).focus()}),()=>{e.removeEventListener("keydown",r),t&&document.contains(t)&&t.focus()}}var Hm=C('<div class="modal-frame svelte-2tcvcm" role="presentation"><div class="modal-box svelte-2tcvcm" role="dialog" aria-modal="true" tabindex="-1"><!></div></div>');function Km(e,t){se(t,!0);let n;Ce(()=>{if(n)return Fm(n)});function r(l){t.onBackdropClick&&l.target===l.currentTarget&&t.onBackdropClick()}var s=Hm(),i=p(s),a=p(i);Yr(a,()=>t.Content,(l,c)=>{c(l,Xr(()=>t.contentProps,{get close(){return t.close}}))}),v(i),ut(i,l=>n=l,()=>n),v(s),$(()=>Qt(i,t.boxStyle)),F("click",s,r),A(e,s),ie()}pe(["click"]);const La={};function Wm(e,t){La[e]=t}function Ym(e){delete La[e]}function Gs(e){const t=La[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 gt=[];let Is=!1,Et=null;const Gm=.5;function du(){const e=Gs("modal");if(gt.length===0){Et&&(Et.remove(),Et=null);return}Et||(Et=document.createElement("div"),Et.className="sh3-modal-backdrop",Et.style.position="absolute",Et.style.inset="0",Et.style.pointerEvents="auto",Et.style.transition="background-color 120ms ease",Et.style.background=`rgba(0, 0, 0, ${Gm})`);const t=gt[gt.length-1].host;e.insertBefore(Et,t)}function fu(e){e.key==="Escape"&>.length!==0&&(e.stopPropagation(),e.preventDefault(),gt[gt.length-1].handle.close())}function Xm(){Is||(Is=!0,document.addEventListener("keydown",fu,!0))}function Jm(){gt.length>0||Is&&(Is=!1,document.removeEventListener("keydown",fu,!0))}function vu(e){const t=gt.indexOf(e);t<0||(gt.splice(t,1),Fe(e.frame),e.host.remove(),du(),Jm())}function Zm(e,t,n){const r=Gs("modal"),s=document.createElement("div");s.className="sh3-modal-host",s.style.position="absolute",s.style.inset="0",s.style.pointerEvents="auto",r.appendChild(s);const i={},a={close:()=>vu(i)},l=ze(Km,{target:s,props:{Content:e,contentProps:t??{},close:a.close,boxStyle:n?.boxStyle,onBackdropClick:n?.dismissOnBackdrop?a.close:void 0}});return i.host=s,i.frame=l,i.handle=a,gt.push(i),du(),Xm(),a}function Qm(){for(;gt.length>0;)vu(gt[gt.length-1])}const hu={open:Zm,closeAll:Qm};var eg=C('<div class="popup-frame svelte-mp81cl" role="menu" tabindex="-1"><!></div>');function tg(e,t){se(t,!0);let n,r=z(-9999),s=z(-9999);Ce(()=>{if(!n)return;const l=n.getBoundingClientRect(),c=4,u=window.innerWidth,d=window.innerHeight;let f=t.anchorRect.bottom+c,h=t.anchorRect.left;if(h+l.width>u-c&&(h=Math.max(c,u-l.width-c)),f+l.height>d-c){const _=t.anchorRect.top-l.height-c;f=_>=c?_:Math.max(c,d-l.height-c)}g(r,f,!0),g(s,h,!0)});var i=eg(),a=p(i);Yr(a,()=>t.Content,(l,c)=>{c(l,Xr(()=>t.contentProps,{get close(){return t.close}}))}),v(i),ut(i,l=>n=l,()=>n),$(()=>Qt(i,`top: ${o(r)??""}px; left: ${o(s)??""}px;`)),A(e,i),ie()}function ng(e){return e instanceof HTMLElement?e.getBoundingClientRect():new DOMRect(e.x,e.y,0,0)}let Ct=null;function pu(e){if(!Ct)return;const t=e.target;t&&Ct.host.contains(t)||Ct.handle.close()}function mu(e){Ct&&e.key==="Escape"&&(e.stopPropagation(),e.preventDefault(),Ct.handle.close())}function rg(){document.addEventListener("pointerdown",pu,!0),document.addEventListener("keydown",mu,!0)}function sg(){document.removeEventListener("pointerdown",pu,!0),document.removeEventListener("keydown",mu,!0)}function Gi(e){Ct===e&&(Ct=null,sg(),Fe(e.frame),e.host.remove())}function ig(e,t,n){Ct&&Gi(Ct);const r=Gs("popup"),s=document.createElement("div");s.className="sh3-popup-host",s.style.position="absolute",s.style.inset="0",s.style.pointerEvents="none",r.appendChild(s);const i=ng(t.anchor),a={},l={close:()=>Gi(a)},c=ze(tg,{target:s,props:{Content:e,contentProps:n??{},anchorRect:i,close:l.close}});return a.host=s,a.frame=c,a.handle=l,Ct=a,queueMicrotask(rg),l}function ag(){Ct&&Gi(Ct)}const og={show:ig,close:ag};var lg=C('<div role="status" aria-live="polite"><span class="toast-level svelte-12gwnj0"> </span> <span class="toast-message svelte-12gwnj0"> </span></div>');function cg(e,t){var n=lg(),r=p(n),s=p(r,!0);v(r);var i=E(r,2),a=p(i,!0);v(i),v(n),$(()=>{we(n,1,`toast toast-${t.level??""}`,"svelte-12gwnj0"),j(s,t.level),j(a,t.message)}),F("click",n,function(...l){t.close?.apply(this,l)}),A(e,n)}pe(["click"]);const Ts=new Set;let st=null;function ug(){if(st&&st.isConnected)return st;const e=Gs("toast");return st=document.createElement("div"),st.className="sh3-toast-stack",st.style.position="absolute",st.style.right="16px",st.style.bottom="16px",st.style.display="flex",st.style.flexDirection="column-reverse",st.style.gap="6px",st.style.pointerEvents="none",e.appendChild(st),st}function Xi(e){Ts.has(e)&&(Ts.delete(e),e.timer!==null&&(clearTimeout(e.timer),e.timer=null),Fe(e.instance),e.host.remove())}function dg(e,t={}){const n=t.level??"info",r=t.duration??3e3,s=ug(),i=document.createElement("div");i.className="sh3-toast-host",s.appendChild(i);const a={},l={close:()=>Xi(a)},c=ze(cg,{target:i,props:{message:e,level:n,close:l.close}});return a.host=i,a.instance=c,a.handle=l,a.timer=Number.isFinite(r)&&r>0?setTimeout(()=>Xi(a),r):null,Ts.add(a),l}function fg(){for(const e of[...Ts])Xi(e)}const vg={notify:dg,clear:fg},Ko={w:120,h:80};function gu(e){if(e.type==="slot")return{...Ko};if(e.type==="tabs")return{...Ko};const t=e.children.map(gu);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 Wo=32,Yo={x:48,y:48};function hg(e,t){if(e.length===0)return{...Yo};const n=e[e.length-1],r={x:n.position.x+Wo,y:n.position.y+Wo};return r.x+120>t.w||r.y+32>t.h?{...Yo}:r}let Go=0;function pg(){return Go+=1,`float-${Date.now().toString(36)}-${Go.toString(36)}`}function _u(e){return e.type==="slot"?e.viewId==null:e.type==="tabs"?e.tabs.every(t=>t.viewId==null):e.children.every(_u)}let mg=[],ja=null,Na=()=>({w:1600,h:900});function gg(e,t){ja=e,Na=t}function _g(){ja=null,Na=()=>({w:1600,h:900})}function Xs(){return ja??mg}let Xo=0;function yg(e){return Xo+=1,`float:${e}:${Xo}`}const bg={w:600,h:400};function wg(e,t){return{w:Math.max(e.w,t.w),h:Math.max(e.h,t.h)}}function kg(e,t={}){const n=Xs(),r=pg(),s=yg(e);let i;if(t.dismissable)i={type:"slot",slotId:s,viewId:e};else{const d=t.title??e,f={slotId:s,viewId:e,label:d};t.meta&&(f.meta=t.meta),i={type:"tabs",tabs:[f],activeTab:0}}const a=gu(i),l=t.size??wg(bg,a),c=t.position??hg(n,Na()),u={id:r,content:i,position:c,size:l,title:t.title};return t.dismissable&&(u.dismissable=!0),n.push(u),r}function Sg(e){const t=Xs(),n=t.findIndex(r=>r.id===e);n<0||t.splice(n,1)}function xg(){return Xs().slice()}function Eg(e){const t=Xs(),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 Rt={open:kg,close:Sg,list:xg,focus:Eg};let Cs=null;function Ag(e){Cs=e}function Ig(){Cs=null}function za(){if(!Cs)throw new Error("presetManager: no app attached — bind an AppLayoutBlob first");return Cs}function Tg(){return Object.keys(za().presets)}function Cg(){return za().activePreset}function Rg(e){const t=za();if(!(e in t.presets))throw new Error(`presetManager.switch: unknown preset "${e}"`);t.activePreset=e}const Pg={list:Tg,active:Cg,switch:Rg},Gn=new Map,vs=new Map;function Jo(e){const t=vs.get(e);if(t)for(const n of t)n()}function yu(e,t){const n=Symbol();let r=Gn.get(e);r||(r=new Map,Gn.set(e,r)),r.set(n,t),Jo(e);let s=!1;return()=>{if(s)return;s=!0;const i=Gn.get(e);i&&i.delete(n)&&(i.size===0&&Gn.delete(e),Jo(e))}}function $a(e){const t=Gn.get(e);return t?Array.from(t.values()):[]}function Dg(){return Array.from(Gn.keys())}function Mg(e,t){let n=vs.get(e);n||(n=new Set,vs.set(e,n)),n.add(t);let r=!1;return()=>{r||(r=!0,n.delete(t),n.size===0&&vs.delete(e))}}const Og=Object.freeze([".md",".txt",".json",".guml",".css",".js",".ts",".tsx",".jsx",".html",".svg",".csv",".yaml",".yml",".xml",".log",".ini",".toml"]);function Lg(e){return e.kind?e.kind:e.extension&&Og.includes(e.extension.toLowerCase())?"text":"binary"}const hs=[];function Zo(e){return hs.push(e),()=>{const t=hs.indexOf(e);t>=0&&hs.splice(t,1)}}function jg(e,t=[]){return[...hs,...t].filter(r=>{try{return r.appliesTo(e)}catch{return!1}}).sort((r,s)=>(s.priority??0)-(r.priority??0))[0]??null}var Ng=C("<span> </span>"),zg=C('<div class="sh3-conflict-text-dual svelte-iwgja4"><div role="button" tabindex="0"><header class="sh3-conflict-text-head svelte-iwgja4"> </header> <pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre></div> <div role="button" tabindex="0"><header class="sh3-conflict-text-head svelte-iwgja4"> </header> <pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre></div></div> <details class="sh3-conflict-text-diff svelte-iwgja4"><summary> </summary> <pre class="svelte-iwgja4"><code></code></pre></details>',1),$g=C("<option> </option>"),qg=C("<button> </button>"),Bg=C('<pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre>'),Vg=C('<div class="sh3-conflict-text-tabs svelte-iwgja4"><div class="sh3-conflict-text-picker svelte-iwgja4"><label>Reference: <select class="svelte-iwgja4"></select></label></div> <div class="sh3-conflict-text-tablist svelte-iwgja4"></div> <!></div>'),Ug=C('<div class="sh3-conflict-text svelte-iwgja4"><!></div>');function Fg(e,t){se(t,!0);let n=z("");Ce(()=>{(!o(n)||!t.item.branches.find(_=>_.origin===o(n)))&&g(n,t.item.branches[0]?.origin??"local",!0)});const r=X(()=>t.item.branches.length===2),s=X(()=>o(r)?t.item.branches[0]:t.item.branches.find(_=>_.origin===o(n))??t.item.branches[0]),i=X(()=>o(r)?t.item.branches[1]:t.item.branches.find(_=>_.origin===t.selectedOrigin)??t.item.branches[1]??t.item.branches[0]);function a(_,S){const k=(_??"").split(/\r?\n/),x=(S??"").split(/\r?\n/),w=[],b=Math.max(k.length,x.length);for(let y=0;y<b;y++){const I=k[y],D=x[y];I===D?typeof I=="string"&&w.push({kind:"same",text:I}):(typeof I=="string"&&w.push({kind:"left",text:I}),typeof D=="string"&&w.push({kind:"right",text:D}))}return w}const l=X(()=>!o(s)||!o(i)?[]:a(o(s).content??"",o(i).content??"")),c=X(()=>o(l).filter(_=>_.kind!=="same").length);var u=Ug(),d=p(u);{var f=_=>{var S=zg(),k=he(S),x=p(k);let w;var b=p(x),y=p(b);v(b);var I=E(b,2),D=p(I),T=p(D,!0);v(D),v(I),v(x);var m=E(x,2);let M;var R=p(m),O=p(R);v(R);var P=E(R,2),L=p(P),q=p(L,!0);v(L),v(P),v(m),v(k);var N=E(k,2),B=p(N),Y=p(B);v(B);var G=E(B,2),Q=p(G);ue(Q,21,()=>o(l),Nn,(J,te)=>{var ee=Ng(),Z=p(ee);v(ee),$(()=>{we(ee,1,`diff-${o(te).kind}`,"svelte-iwgja4"),j(Z,`${o(te).kind==="same"?" ":o(te).kind==="left"?"- ":"+ "}${o(te).text??""}
|
|
7
|
+
`)}),A(J,ee)}),v(Q),v(G),v(N),$(()=>{w=we(x,1,"sh3-conflict-text-pane svelte-iwgja4",null,w,{selected:o(s).origin===t.selectedOrigin}),j(y,`${o(s).origin??""} · v${o(s).version??""}`),j(T,o(s).content??""),M=we(m,1,"sh3-conflict-text-pane svelte-iwgja4",null,M,{selected:o(i).origin===t.selectedOrigin}),j(O,`${o(i).origin??""} · v${o(i).version??""}`),j(q,o(i).content??""),j(Y,`Line diff (${o(c)??""} difference${o(c)===1?"":"s"})`)}),F("click",x,()=>t.onSelect(o(s).origin)),F("keydown",x,J=>{(J.key==="Enter"||J.key===" ")&&t.onSelect(o(s).origin)}),F("click",m,()=>t.onSelect(o(i).origin)),F("keydown",m,J=>{(J.key==="Enter"||J.key===" ")&&t.onSelect(o(i).origin)}),A(_,S)},h=_=>{var S=Vg(),k=p(S),x=p(k),w=E(p(x));ue(w,21,()=>t.item.branches,D=>D.origin,(D,T)=>{var m=$g(),M=p(m,!0);v(m);var R={};$(()=>{j(M,o(T).origin),R!==(R=o(T).origin)&&(m.value=(m.__value=o(T).origin)??"")}),A(D,m)}),v(w),v(x),v(k);var b=E(k,2);ue(b,21,()=>t.item.branches,D=>D.origin,(D,T)=>{var m=qg();let M;var R=p(m);v(m),$(()=>{M=we(m,1,"sh3-conflict-text-tab svelte-iwgja4",null,M,{selected:o(T).origin===t.selectedOrigin}),j(R,`${o(T).origin??""} · v${o(T).version??""}`)}),F("click",m,()=>t.onSelect(o(T).origin)),A(D,m)}),v(b);var y=E(b,2);{var I=D=>{var T=Bg(),m=p(T),M=p(m,!0);v(m),v(T),$(()=>j(M,o(i).content??"")),A(D,T)};U(y,D=>{o(i)&&D(I)})}v(S),Mr(w,()=>o(n),D=>g(n,D)),A(_,S)};U(d,_=>{o(r)&&o(s)&&o(i)?_(f):_(h,-1)})}v(u),A(e,u),ie()}pe(["click","keydown"]);var Hg=C("· <code> </code>",1),Kg=C('<li class="sh3-conflict-meta-li svelte-1nz3djn"><button type="button"><div class="sh3-conflict-meta-origin svelte-1nz3djn"> </div> <div class="sh3-conflict-meta-detail svelte-1nz3djn"> <!></div></button></li>'),Wg=C('<div class="sh3-conflict-meta svelte-1nz3djn"><div class="sh3-conflict-meta-note svelte-1nz3djn">No preview available for this content. Pick the branch you want to keep.</div> <ul class="sh3-conflict-meta-list svelte-1nz3djn"></ul></div>');function Yg(e,t){se(t,!0);function n(a){return typeof a!="number"?"—":a<1024?`${a} B`:a<1024*1024?`${(a/1024).toFixed(1)} KiB`:`${(a/(1024*1024)).toFixed(2)} MiB`}function r(a){const l=Date.now()-a;return l<6e4?"just now":l<36e5?`${Math.floor(l/6e4)}m ago`:l<864e5?`${Math.floor(l/36e5)}h ago`:new Date(a).toLocaleString()}var s=Wg(),i=E(p(s),2);ue(i,21,()=>t.item.branches,a=>a.origin,(a,l)=>{var c=Kg(),u=p(c);let d;var f=p(u),h=p(f,!0);v(f);var _=E(f,2),S=p(_),k=E(S);{var x=w=>{var b=Hg(),y=E(he(b)),I=p(y,!0);v(y),$(()=>j(I,o(l).hashPreview)),A(w,b)};U(k,w=>{o(l).hashPreview&&w(x)})}v(_),v(u),v(c),$((w,b)=>{d=we(u,1,"sh3-conflict-meta-row svelte-1nz3djn",null,d,{selected:o(l).origin===t.selectedOrigin}),j(h,o(l).origin),j(S,`v${o(l).version??""} · ${w??""} · ${b??""} `)},[()=>r(o(l).at),()=>n(o(l).sizeBytes)]),F("click",u,()=>t.onSelect(o(l).origin)),A(a,c)}),v(i),v(s),A(e,s),ie()}pe(["click"]);const Gg=1048576;function Xg(e){return typeof e=="number"&&e>Gg}const Jg={id:"sh3-core.text",priority:1,appliesTo:e=>Lg(e)!=="text"?!1:!e.branches.some(t=>Xg(t.sizeBytes)),mount(e,t){const n=ze(Fg,{target:e,props:t});return()=>{Fe(n)}}},Zg={id:"sh3-core.meta",priority:0,appliesTo:()=>!0,mount(e,t){const n=ze(Yg,{target:e,props:t});return()=>{Fe(n)}}};let Qo=!1;function Qg(){Qo||(Qo=!0,Zo(Jg),Zo(Zg))}var e_=C('<div class="sh3-conflict-prompt svelte-1jvtzud"><h3 class="sh3-conflict-prompt-title svelte-1jvtzud"> </h3> <p class="sh3-conflict-prompt-intro svelte-1jvtzud">Pick one option for the whole batch, or resolve each conflict individually.</p> <div class="sh3-conflict-prompt-actions svelte-1jvtzud"><button type="button" class="sh3-conflict-prompt-primary svelte-1jvtzud">Overwrite with most recent</button> <button type="button" class="sh3-conflict-prompt-secondary svelte-1jvtzud">Resolve individually</button> <button type="button" class="sh3-conflict-prompt-cancel svelte-1jvtzud">Cancel</button></div></div>');function t_(e,t){var n=e_(),r=p(n),s=p(r);v(r);var i=E(r,4),a=p(i);dr(a,!0);var l=E(a,2),c=E(l,2);v(i),v(n),$(()=>j(s,`${t.count??""} conflict${t.count===1?"":"s"} to resolve`)),F("click",a,function(...u){t.onOverwriteMostRecent?.apply(this,u)}),F("click",l,function(...u){t.onResolveIndividually?.apply(this,u)}),F("click",c,function(...u){t.onCancel?.apply(this,u)}),A(e,n)}pe(["click"]);var n_=C('<span class="sh3-conflict-detail-counter svelte-pw8iv6"> </span>'),r_=C('<button type="button"><span><!></span> <span class="sh3-conflict-detail-rail-label svelte-pw8iv6"> </span></button>'),s_=C('<aside class="sh3-conflict-detail-rail svelte-pw8iv6"></aside>'),i_=C('<label class="sh3-conflict-detail-branch svelte-pw8iv6"><input type="radio"/> <span> </span></label>'),a_=C('<div class="sh3-conflict-detail-branches svelte-pw8iv6"></div> <div class="sh3-conflict-detail-renderer svelte-pw8iv6"></div>',1),o_=C('<div class="sh3-conflict-detail svelte-pw8iv6"><header class="sh3-conflict-detail-head svelte-pw8iv6"><h3 class="svelte-pw8iv6"> </h3> <!></header> <div class="sh3-conflict-detail-body svelte-pw8iv6"><!> <section class="sh3-conflict-detail-main svelte-pw8iv6"><!></section></div> <footer class="sh3-conflict-detail-foot svelte-pw8iv6"><div class="sh3-conflict-detail-nav svelte-pw8iv6"><button type="button" class="svelte-pw8iv6">← Prev</button> <button type="button" class="svelte-pw8iv6"> </button> <button type="button" class="svelte-pw8iv6">Next →</button></div> <div class="sh3-conflict-detail-actions svelte-pw8iv6"><button type="button" class="sh3-conflict-detail-cancel svelte-pw8iv6">Cancel</button> <button type="button" class="sh3-conflict-detail-done svelte-pw8iv6">Done</button></div></footer></div>');function l_(e,t){se(t,!0);const n=X(()=>t.items[t.currentIndex]),r=X(()=>o(n)?t.selections[o(n).id]??o(n).branches[0]?.origin??"":""),s=X(()=>o(n)?jg(o(n),t.contributed):null);let i=z(void 0),a=null;Ce(()=>{if(o(n),o(s),o(r),a&&(a(),a=null),!o(i)||!o(n)||!o(s))return;const B={item:o(n),selectedOrigin:o(r),onSelect:Y=>t.onSelect(o(n).id,Y)};return a=o(s).mount(o(i),B),()=>{a&&(a(),a=null)}});function l(){t.currentIndex>0&&t.onNavigate(t.currentIndex-1)}function c(){t.currentIndex<t.items.length-1&&t.onNavigate(t.currentIndex+1)}const u=X(()=>t.items.map(B=>t.skipped[B.id]?"skipped":t.selections[B.id]?"resolved":"pending"));var d=o_(),f=p(d),h=p(f),_=p(h,!0);v(h);var S=E(h,2);{var k=B=>{var Y=n_(),G=p(Y);v(Y),$(()=>j(G,`${t.currentIndex+1} / ${t.items.length??""}`)),A(B,Y)};U(S,B=>{t.items.length>1&&B(k)})}v(f);var x=E(f,2),w=p(x);{var b=B=>{var Y=s_();ue(Y,23,()=>t.items,G=>G.id,(G,Q,J)=>{var te=r_();let ee;var Z=p(te),de=p(Z);{var fe=Ae=>{var rt=zt("✓");A(Ae,rt)},K=Ae=>{var rt=zt("⟶");A(Ae,rt)},ae=Ae=>{var rt=zt("·");A(Ae,rt)};U(de,Ae=>{o(u)[o(J)]==="resolved"?Ae(fe):o(u)[o(J)]==="skipped"?Ae(K,1):Ae(ae,-1)})}v(Z);var me=E(Z,2),Ke=p(me,!0);v(me),v(te),$(()=>{ee=we(te,1,"sh3-conflict-detail-rail-item svelte-pw8iv6",null,ee,{selected:o(J)===t.currentIndex}),we(Z,1,`sh3-conflict-detail-rail-state ${o(u)[o(J)]??""}`,"svelte-pw8iv6"),j(Ke,o(Q).label)}),F("click",te,()=>t.onNavigate(o(J))),A(G,te)}),v(Y),A(B,Y)};U(w,B=>{t.items.length>1&&B(b)})}var y=E(w,2),I=p(y);{var D=B=>{var Y=a_(),G=he(Y);ue(G,21,()=>o(n).branches,J=>J.origin,(J,te)=>{var ee=i_(),Z=p(ee);Se(Z);var de=E(Z,2),fe=p(de);v(de),v(ee),$(()=>{ke(Z,"name",`branch-${o(n).id??""}`),su(Z,o(te).origin),iu(Z,o(r)===o(te).origin),j(fe,`${o(te).origin??""} · v${o(te).version??""}`)}),F("change",Z,()=>t.onSelect(o(n).id,o(te).origin)),A(J,ee)}),v(G);var Q=E(G,2);ut(Q,J=>g(i,J),()=>o(i)),A(B,Y)};U(I,B=>{o(n)&&B(D)})}v(y),v(x);var T=E(x,2),m=p(T),M=p(m),R=E(M,2),O=p(R,!0);v(R);var P=E(R,2);v(m);var L=E(m,2),q=p(L),N=E(q,2);v(L),v(T),v(d),$(()=>{j(_,t.title),M.disabled=t.currentIndex===0,j(O,o(n)&&t.skipped[o(n).id]?"Unskip":"Skip"),P.disabled=t.currentIndex>=t.items.length-1}),F("click",M,l),F("click",R,()=>o(n)&&t.onToggleSkip(o(n).id)),F("click",P,c),F("click",q,function(...B){t.onCancel?.apply(this,B)}),F("click",N,function(...B){t.onDone?.apply(this,B)}),A(e,d),ie()}pe(["click","change"]);function bu(e,t){return t.at-e.at}function c_(e,t){if(e.length===0)return null;try{return[...e].sort(t)[0]}catch(n){return console.warn("[sh3-core] mostRecentBy comparator threw; falling back to default",n),[...e].sort(bu)[0]}}function u_(e,t){se(t,!0);const n=t.items.length>=2||t.requirePrompt;let r=z(ce(n?"prompt":"detail")),s=z(ce(Object.fromEntries(t.items.map(y=>{const I=c_(y.branches,t.mostRecentBy)?.origin??y.branches[0]?.origin??"";return[y.id,I]})))),i=z(ce({})),a=z(0),l=!1;Ca(()=>{l||(l=!0,t.onCancel())});function c(){if(l)return;l=!0;const y=[],I=[];for(const D of t.items){if(o(i)[D.id]){I.push(D.id);continue}const T=o(s)[D.id],m=D.branches.find(M=>M.origin===T);m&&y.push({itemId:D.id,chosen:m,meta:D.meta})}t.onResolve(y,I),t.close()}function u(){l||(l=!0,t.onCancel(),t.close())}function d(){c()}function f(){g(r,"detail")}function h(y,I){if(g(s,{...o(s),[y]:I},!0),o(i)[y]){const D={...o(i)};delete D[y],g(i,D,!0)}}function _(y){g(i,{...o(i),[y]:!o(i)[y]},!0)}function S(y){g(a,y,!0)}var k=at(),x=he(k);{var w=y=>{t_(y,{get count(){return t.items.length},onOverwriteMostRecent:d,onResolveIndividually:f,onCancel:u})},b=y=>{l_(y,{get items(){return t.items},get selections(){return o(s)},get skipped(){return o(i)},get currentIndex(){return o(a)},get title(){return t.title},get contributed(){return t.contributed},onSelect:h,onNavigate:S,onToggleSkip:_,onDone:c,onCancel:u})};U(x,y=>{o(r)==="prompt"?y(w):y(b,-1)})}A(e,k),ie()}const wu="sh3-core.conflictRenderer";class ku extends Error{constructor(t){super(t),this.name="ConflictPermissionError"}}class d_ extends Error{constructor(){super("Caller shard deactivated while conflict session was active"),this.name="ConflictSessionOrphanedError"}}function f_(){try{return $a(wu)}catch{return[]}}function Su(e,t={}){return Qg(),e.length===0?Promise.resolve({status:"resolved",choices:[],skipped:[]}):new Promise(n=>{const r=t.title??(e.length===1?"Resolve conflict":"Resolve conflicts"),s=t.mostRecentBy??bu,i=t.requirePrompt??!1,a=f_();let l=!1;const d={items:e,title:r,mostRecentBy:s,requirePrompt:i,contributed:a,onResolve:(f,h)=>{l||(l=!0,n({status:"resolved",choices:f,skipped:h}))},onCancel:()=>{l||(l=!0,n({status:"cancelled"}))}};hu.open(u_,d,{boxStyle:"max-width: none; min-width: 360px; padding: 0;"})})}function v_(e){const t=e.documents({format:"text"});return{status:n=>t.status(n),readBranch:(n,r)=>t.readBranch(n,r),resolveConflict:(n,r)=>t.resolveConflict(n,r)}}function h_(e,t){const n=e.browse;if(!n?.statusFrom||!n?.readBranchFrom||!n?.resolveConflictFrom)throw new ku(`Cross-shard resolveDocuments requires documents:browse + documents:read + documents:write (shardId=${t})`);return{status:r=>n.statusFrom(t,r),readBranch:(r,s)=>n.readBranchFrom(t,r,s),resolveConflict:(r,s)=>n.resolveConflictFrom(t,r,s)}}function p_(e){const t=e.lastIndexOf(".");if(t<0)return;const n=e.lastIndexOf("/");if(!(t<n))return e.slice(t)}async function m_(e,t,n={}){const r=e.shardId,s=t.shardId===r?v_(e):h_(e,t.shardId),i=[];for(const d of t.paths){const f=await s.status(d);f&&f.syncState==="conflict"&&f.branches&&f.branches.length>0&&i.push({path:d,status:f})}if(i.length===0)return{status:"resolved",resolved:[],failed:[],skipped:[]};const a=[];for(const{path:d,status:f}of i){const h=p_(d),_=[];for(const S of f.branches??[]){const k=await s.readBranch(d,S.origin).catch(()=>null);_.push({origin:S.origin,version:S.version,at:S.at,content:k??void 0,sizeBytes:k?new TextEncoder().encode(k).length:void 0})}a.push({id:d,label:d,extension:h,branches:_,meta:{shardId:t.shardId,path:d,docVersion:f.version}})}const l=await Su(a,n);if(l.status==="cancelled")return{status:"cancelled"};const c=[],u=[];for(const d of l.choices)try{await s.resolveConflict(d.itemId,{origin:d.chosen.origin});const f=await s.status(d.itemId).catch(()=>null);c.push({path:d.itemId,chosen:d.chosen,appliedVersion:f?.version??-1})}catch(f){u.push({path:d.itemId,error:f instanceof Error?f.message:String(f)})}return{status:"resolved",resolved:c,failed:u,skipped:l.skipped}}const g_={resolve:Su,resolveDocuments:m_};let En=null;function __(e){En=e}async function Zn(e){return En?{...En.bindings[e]??{}}:{}}async function el(e,t,n){if(!En)return;const r={...En.bindings[e]??{}};n===void 0?delete r[t]:r[t]=n,En.bindings={...En.bindings,[e]:r}}const xu="sh3.actions",Ii=new Set;function y_(e,t){Ii.has(e.id)&&console.warn(`[sh3] Duplicate action id "${e.id}" registered by "${t}". First registration wins; second registration still stored but shortcut conflicts may occur.`),Ii.add(e.id);const r=yu(xu,{action:e,ownerShardId:t});let s=!1;return()=>{s||(s=!0,r(),Ii.delete(e.id))}}function zn(){return $a(xu)}const b_=["Ctrl","Alt","Shift","Meta"],tl={control:"Ctrl",ctrl:"Ctrl",alt:"Alt",option:"Alt",shift:"Shift",meta:"Meta",cmd:"Meta",command:"Meta",super:"Meta",win:"Meta"},w_=new Set(["Control","Alt","Shift","Meta"]);function Eu(e){return e.length===1?e.toUpperCase():e}function Au(e){if(!e)throw new Error("Empty shortcut");const t=e.split("+");if(t.some(a=>a.trim()===""))throw new Error(`Malformed shortcut: "${e}"`);const n=t.map(a=>a.trim());if(n.length===0)throw new Error(`Malformed shortcut: "${e}"`);const r=new Set;let s;for(const a of n){const l=a.toLowerCase();if(l in tl)r.add(tl[l]);else{if(s!==void 0)throw new Error(`Multiple keys in shortcut: "${e}"`);s=Eu(a)}}if(s===void 0)throw new Error(`No key in shortcut: "${e}"`);return[...b_.filter(a=>r.has(a)),s].join("+")}function k_(e,t){if(!e.toLowerCase().includes("mod"))return e;const n=e.split("+").map(r=>r.toLowerCase()==="mod"?t==="mac"?"Meta":"Ctrl":r);return Au(n.join("+"))}function S_(e){if(w_.has(e.key))return"";const t=[];e.ctrlKey&&t.push("Ctrl"),e.altKey&&t.push("Alt"),e.shiftKey&&t.push("Shift"),e.metaKey&&t.push("Meta");const n=Eu(e.key);return[...t,n].join("+")}function x_(){return typeof navigator>"u"?"other":/Mac|iPhone|iPad|iPod/i.test(navigator.platform)?"mac":"other"}function qa(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?null:Au(r)}return e.defaultShortcut?k_(e.defaultShortcut,n):null}const Ba=["element","focus","view","app","home"];function Va(e,t,n){if(e==="home")return t.activeAppId===null;if(e==="app")return t.activeAppId===null||!n?!1:t.activeAppRequiredShards.has(n)||t.autostartShards.has(n);if(typeof e=="string"){if(e.startsWith("view:"))return t.mountedViewIds.has(e.slice(5));if(e.startsWith("focus:"))return t.focusedViewId===e.slice(6)}return typeof e=="object"&&"element"in e?t.selection!==null&&t.selection.type===e.element:!1}function E_(e){return e==="home"?"home":e==="app"?"app":typeof e=="string"&&e.startsWith("view:")?"view":typeof e=="string"&&e.startsWith("focus:")?"focus":"element"}function A_(e){return Array.isArray(e)?e:[e]}function I_(e,t){const n={element:new Map,focus:new Map,view:new Map,app:new Map,home:new Map};for(const r of e){const s=qa(r.action,t.bindings,t.platform);if(s)for(const i of A_(r.action.scope)){if(!Va(i,t,r.ownerShardId))continue;const a=E_(i),l=n[a].get(s);if(l&&l!==r.action.id){console.warn(`[sh3] Shortcut "${s}" in tier "${a}" is bound to both "${l}" and "${r.action.id}"; first-registered wins. Users can rebind to resolve.`);continue}n[a].set(s,r.action.id)}}return n}function T_(e){if(!(e instanceof Element))return!1;const t=e.tagName;if(t==="INPUT"||t==="TEXTAREA")return!0;const n=e.contentEditable;if(n==="true"||n==="plaintext-only")return!0;const r=e.getAttribute("contenteditable");return r==="true"||r===""||r==="plaintext-only"}function C_(e){const t=I_(e.entries,e.state),n=new Map(e.entries.map(r=>[r.action.id,r]));for(const r of Ba){const s=t[r].get(e.shortcut);if(!s)continue;const i=n.get(s);if(i)return T_(e.target)&&!i.action.allowInInputs?null:(e.runAction(s,{action:{id:i.action.id,label:i.action.label},appId:e.state.activeAppId,viewId:e.state.focusedViewId??void 0,selection:e.state.selection??void 0,invokedVia:"keyboard",dispatch:e.dispatch??(()=>{})}),s)}return null}let Dt=z(null);function R_(){return o(Dt)}function P_(e){return{get(){return o(Dt)},set(t){g(Dt,{type:t.type,ref:t.ref,ownerShardId:e},!0)},clear(){if(o(Dt)){if(o(Dt).ownerShardId!==e){console.warn(`[sh3] Shard "${e}" tried to clear selection owned by "${o(Dt).ownerShardId}". Ignoring.`);return}g(Dt,null)}}}}function D_(e){o(Dt)&&o(Dt).ownerShardId===e&&g(Dt,null)}function M_(){g(Dt,null)}const Rs=new Map,Iu=new Set;function O_(e){Iu.add(e)}function L_(e,t){if(Rs.has(e))throw new Error(`View "${e}" is already registered`);Rs.set(e,t);for(const n of Iu)n(e,t)}function Tu(e){return Rs.get(e)}function j_(e){Rs.delete(e)}const Or=new Map;function N_(e,t){if(Or.has(e))throw new Error(`Verb "${e}" is already registered`);Or.set(e,t)}function nl(e){return Or.get(e)}function z_(e){Or.delete(e)}function Ua(){return Array.from(Or.values()).sort((e,t)=>e.name.localeCompare(t.name))}function ir(e,t){const n=(r,s)=>{if(r.type==="tabs"){const i=r.tabs.findIndex(a=>a.slotId===t);if(i>=0)return{tabsNode:r,tabsPath:s,tabIndex:i,entry:r.tabs[i]}}else if(r.type==="split")for(let i=0;i<r.children.length;i++){const a=n(r.children[i],[...s,i]);if(a)return a}return null};return n(e,[])}function Fa(e,t){if(Ji(e.docked,t))return{kind:"docked"};for(const n of e.floats)if(Ji(n.content,t))return{kind:"float",floatId:n.id};return null}function Ji(e,t){if(e.type==="slot")return e.slotId===t;if(e.type==="tabs")return e.tabs.some(n=>n.slotId===t);for(const n of e.children)if(Ji(n,t))return!0;return!1}function Js(e,t){const n=ir(e,t);if(!n)return null;const{tabsNode:r,tabIndex:s,entry:i}=n;return r.tabs.splice(s,1),r.tabs.length===0?r.activeTab=0:s<r.activeTab?r.activeTab-=1:r.activeTab>=r.tabs.length&&(r.activeTab=r.tabs.length-1),i}function $_(e,t,n){const r=Math.max(0,Math.min(n,e.tabs.length));e.tabs.splice(r,0,t),e.activeTab=r}function q_(e,t,n){const r=e.tabs.slice(),[s]=r.splice(t,1),i=Math.max(0,Math.min(n,r.length));r.splice(i,0,s),e.tabs=r,e.activeTab=i}function rl(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 B_(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 Cu(e,t,n,r){const s=Ps(e,t);if(!s)return;if(t.length===0){const u=B_(s),d=rl(u,n,r),f=e;delete f.tabs,delete f.activeTab,delete f.slotId,delete f.viewId,delete f.direction,delete f.sizes,delete f.pinned,delete f.collapsed,delete f.children,Object.assign(f,d);return}const i=rl(s,n,r),a=t.slice(0,-1),l=t[t.length-1],c=Ps(e,a);!c||c.type!=="split"||(c.children[l]=i)}function Ps(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 Xn(e){let t=!0;for(;t;)t=Ru(e,null,0)}function Ru(e,t,n){if(e.type==="split"){let r=!1;for(let s=0;s<e.children.length;s++)Ru(e.children[s],e,s)&&(r=!0);for(let s=e.children.length-1;s>=0;s--){const i=e.children[s];i.type==="tabs"&&i.tabs.length===0&&!i.persistent&&(e.children.splice(s,1),e.sizes.splice(s,1),e.pinned&&e.pinned.splice(s,1),e.collapsed&&e.collapsed.splice(s,1),r=!0)}if(e.children.length<=1&&t)return e.children.length===1?t.children[n]=e.children[0]:(t.children.splice(n,1),t.sizes.splice(n,1),t.pinned&&t.pinned.splice(n,1),t.collapsed&&t.collapsed.splice(n,1)),!0;if(e.children.length===1&&!t){const s=e.children[0],i=e;return delete i.direction,delete i.sizes,delete i.pinned,delete i.collapsed,delete i.children,Object.assign(i,s),!0}return r}return e.type==="tabs",!1}const vn=new Map,ps=new Set;function V_(e,t){for(const[n,r]of vn.entries()){if(r.viewId!==e||r.handle!==void 0)continue;const s={slotId:n,viewId:e,label:r.label,meta:r.meta,setDirty(i){Zs[n]=i},location(){return Fa(kt(),n)}};queueMicrotask(()=>{if(vn.has(n)&&r.handle===void 0&&(r.handle=t.mount(r.host,s),(r.handle?.closable||n.startsWith("float:"))&&(Qs[n]=!0),r.handle?.onResize)){const i=r.handle.onResize.bind(r.handle);r.resizeObserver=new ResizeObserver(a=>{for(const l of a){const c=l.contentRect;i(Math.round(c.width),Math.round(c.height))}}),r.resizeObserver.observe(r.host)}})}}O_(V_);const Zs=ce({}),Qs=ce({});function U_(e,t,n,r){const s=document.createElement("div");s.className="slot-host",s.dataset.slotId=e,t&&s.setAttribute("data-sh3-view",t),s.style.position="absolute",s.style.inset="0",s.style.minWidth="0",s.style.minHeight="0";let i=!1;const a={host:s,handle:void 0,viewId:t,label:n,meta:r,refcount:0,resizeObserver:void 0,cancelPendingMount:()=>{i=!0}};return queueMicrotask(()=>{if(i)return;const l=t?Tu(t):void 0,c={slotId:e,viewId:t??"",label:n,meta:r,setDirty(u){Zs[e]=u},location(){return Fa(kt(),e)}};if(a.handle=l?.mount(s,c),(a.handle?.closable||e.startsWith("float:"))&&(Qs[e]=!0),a.handle?.onResize){const u=a.handle.onResize.bind(a.handle);a.resizeObserver=new ResizeObserver(d=>{for(const f of d){const h=f.contentRect;u(Math.round(h.width),Math.round(h.height))}}),a.resizeObserver.observe(s)}}),a}function Pu(e,t,n,r){ps.delete(e);let s=vn.get(e);return s?s.viewId!==t&&(console.warn(`[sh3] acquireSlotHost("${e}") called with viewId "${t}" but existing pooled entry has viewId "${s.viewId}". Attribute synced; view handle unchanged.`),s.viewId=t,t?s.host.setAttribute("data-sh3-view",t):s.host.removeAttribute("data-sh3-view")):(s=U_(e,t,n,r),vn.set(e,s)),s.refcount++,s.host}function Du(e){const t=vn.get(e);if(t){if(t.refcount--,t.refcount>0){t.host.remove();return}ps.add(e),queueMicrotask(()=>{if(!ps.has(e))return;ps.delete(e);const n=vn.get(e);!n||n.refcount>0||(n.resizeObserver?.disconnect(),n.handle?.unmount(),n.cancelPendingMount(),n.host.remove(),vn.delete(e),delete Zs[e],delete Qs[e])})}}function Mu(e){const t=Zi.get(e);return t||vn.get(e)?.handle}function F_(e){return Zs[e]??!1}function H_(e){return Zi.has(e)?!!Zi.get(e).closable:Qs[e]??!1}const Zi=new Map;function Ou(e){if(!e||typeof e!="object")return!1;const t=e.type;return t==="split"||t==="tabs"||t==="slot"}function K_(e){if(!e||typeof e!="object")return!1;const t=e;return Ou(t.docked)&&Array.isArray(t.floats)}function W_(e){return{docked:e,floats:[]}}function Y_(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 G_(e){if(Array.isArray(e))return e.map(Y_);if(K_(e))return[{name:"default",variants:{default:e}}];if(Ou(e))return[{name:"default",variants:{default:W_(e)}}];throw new Error("normalizeInitialLayout: input is not a LayoutNode, LayoutTree, or LayoutPreset[]")}function sl(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 Lu(e){const t=sl(e.docked);for(const n of e.floats)t.push(...sl(n.content));return t}Yi("workspace","__shell__");const X_={type:"slot",slotId:"sh3core.home",viewId:"sh3core:home"},J_=ce({docked:X_,floats:[]});let mt=z(null),ei=z("home");function Z_(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 Q_(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 ey(e){if(o(mt))throw new Error(`Layout manager cannot attach app "${e.manifest.id}": app "${o(mt).appId}" is still attached`);const t=`__sh3core__:app:${e.manifest.id}`,n=G_(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=Bm("workspace",t),i=Z_(s);(i&&i.layoutVersion!==e.manifest.layoutVersion||s&&!i)&&Yi("workspace",t);const l=Ys(t,{workspace:r}).workspace;g(mt,{appId:e.manifest.id,proxy:l,heldSlotIds:[]},!0),Ag(l)}function ty(){if(!o(mt))throw new Error("acquireAppSlotHolds: no app attached");if(o(mt).heldSlotIds.length>0)return;const e=Q_(o(mt).proxy),t=Lu(e);for(const{slotId:n,viewId:r,label:s,meta:i}of t)Pu(n,r,s,i),o(mt).heldSlotIds.push(n)}function ju(){if(o(mt)){Ig();for(const e of o(mt).heldSlotIds)Du(e);g(mt,null)}}function Nu(){g(ei,"home")}function il(){if(!o(mt))throw new Error("Cannot switchToApp: no app is attached");g(ei,"app")}const ms=X(()=>{if(o(ei)==="app"&&o(mt)){const e=o(mt).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 J_});function kt(){return o(ms)}function zu(){return o(ei)}const pn={get root(){return o(ms).docked},get tree(){return o(ms)},get floats(){return o(ms).floats}};let $u=z(null),qu=z(ce(new Set)),gs=z(ce(new Set)),Bu=z(ce(new Set)),Vu=z(null),Uu=z(ce({}));const ny=x_();function Qi(e,t){g($u,e,!0),g(qu,new Set(t),!0)}function ry(){const e=Lu(pn.tree),t=new Set;for(const n of e)n.viewId!==null&&t.add(n.viewId);g(Bu,t,!0)}function Fu(e){g(Vu,e,!0)}function Lr(e){g(Uu,{...e},!0)}function ar(){return{activeAppId:o($u),activeAppRequiredShards:o(qu),autostartShards:o(gs),mountedViewIds:o(Bu),focusedViewId:o(Vu),selection:R_(),bindings:o(Uu),platform:ny}}function sy(e){o(gs).has(e)||g(gs,new Set([...o(gs),e]),!0)}var iy=C('<div class="sh3-ctx-sep svelte-758atu" role="separator"></div>'),ay=C('<span class="sh3-ctx-shortcut svelte-758atu"> </span>'),oy=C('<button role="menuitem"><span class="sh3-ctx-label svelte-758atu"> </span> <!></button>'),ly=C("<!> <!>",1),cy=C('<div class="sh3-context-menu svelte-758atu" role="menu" tabindex="0"></div>');function uy(e,t){se(t,!0);const n=X(()=>t.model.tiers.flatMap(a=>a.items));let r=z(0);function s(a){if(a.key==="ArrowDown")g(r,(o(r)+1)%o(n).length),a.preventDefault();else if(a.key==="ArrowUp")g(r,(o(r)-1+o(n).length)%o(n).length),a.preventDefault();else if(a.key==="Enter")o(n)[o(r)]&&(t.onInvoke(o(n)[o(r)].id),t.onClose()),a.preventDefault();else if(a.key==="Escape")t.onClose(),a.preventDefault();else if(a.key.length===1){const l=a.key.toLowerCase(),c=(o(r)+1)%o(n).length;for(let u=0;u<o(n).length;u++){const d=(c+u)%o(n).length;if(o(n)[d].label.toLowerCase().startsWith(l)){g(r,d);break}}}}var i=cy();dr(i,!0),ue(i,23,()=>t.model.tiers,a=>a.tier,(a,l,c)=>{var u=ly(),d=he(u);{var f=_=>{var S=iy();A(_,S)};U(d,_=>{o(c)>0&&_(f)})}var h=E(d,2);ue(h,17,()=>o(l).items,_=>_.id,(_,S)=>{const k=X(()=>o(n).indexOf(o(S)));var x=oy();let w;var b=p(x),y=p(b,!0);v(b);var I=E(b,2);{var D=T=>{var m=ay(),M=p(m,!0);v(m),$(()=>j(M,o(S).shortcut)),A(T,m)};U(I,T=>{o(S).shortcut&&T(D)})}v(x),$(()=>{w=we(x,1,"sh3-ctx-item svelte-758atu",null,w,{"sh3-ctx-active":o(k)===o(r)}),j(y,o(S).label)}),Je("pointerenter",x,()=>{g(r,o(k),!0)}),F("click",x,()=>{t.onInvoke(o(S).id),t.onClose()}),A(_,x)}),A(a,u)}),v(i),F("keydown",i,s),A(e,i),ie()}pe(["keydown","click"]);function dy(e){return Array.isArray(e)?e:[e]}function fy(e){return e==="home"?"home":e==="app"?"app":typeof e=="string"&&e.startsWith("view:")?"view":typeof e=="string"&&e.startsWith("focus:")?"focus":"element"}function vy(e,t,n){const r=dy(e),s={};for(const i of r){const a=fy(i);s[a]||(s[a]=[]),s[a].push(i)}for(const i of Ba){const a=s[i];if(a){for(const l of a)if(Va(l,t,n))return i}}return null}function hy(e,t){const n={element:[],focus:[],view:[],app:[],home:[]},r=new Set;for(const s of e){if(!s.action.contextItem||r.has(s.action.id))continue;const i=vy(s.action.scope,t,s.ownerShardId);i&&(r.add(s.action.id),n[i].push({id:s.action.id,label:s.action.label,shortcut:qa(s.action,t.bindings,t.platform),group:s.action.group??""}))}return{tiers:Ba.map(s=>({tier:s,items:n[s]})).filter(s=>s.items.length>0)}}function py(e,t){if(!t)return 0;const n=e.toLowerCase(),r=t.toLowerCase();let s=0,i=0,a=0,l=0,c=-2;for(;s<n.length&&i<r.length;){if(n[s]===r[i]){const u=s===0?5:0,d=s===c+1?++l:l=1;a+=1+u+d,c=s,i++}else l=0;s++}return i===r.length?a:null}function my(e,t,n){const r=[];for(const i of e){const a=py(i.label,t);a!==null&&r.push({...i,score:a})}const s=new Map;return n.forEach((i,a)=>s.set(i,n.length-a)),r.sort((i,a)=>{if(i.score!==a.score)return a.score-i.score;const l=s.get(i.id)??0;return(s.get(a.id)??0)-l}),r}var gy=C('<span class="sh3-palette-badge svelte-1qdcgk6"> </span>'),_y=C('<span class="sh3-palette-shortcut svelte-1qdcgk6"> </span>'),yy=C('<button role="option"><span class="sh3-palette-label svelte-1qdcgk6"> </span> <!> <!></button>'),by=C('<div class="sh3-palette svelte-1qdcgk6" role="dialog" aria-label="Command palette" aria-modal="true" tabindex="-1"><input class="sh3-palette-input hell-base-input svelte-1qdcgk6" placeholder="Command…"/> <div class="sh3-palette-list svelte-1qdcgk6" role="listbox"></div></div>');function wy(e,t){se(t,!0);let n=$t(t,"prefill",3,""),r=z(ce(n())),s=z(0);const i=X(()=>my(t.candidates,o(r),t.recency));Ce(()=>{o(s)>=o(i).length&&g(s,0)});function a(d){d.key==="ArrowDown"?(g(s,Math.min(o(s)+1,Math.max(0,o(i).length-1)),!0),d.preventDefault()):d.key==="ArrowUp"?(g(s,Math.max(o(s)-1,0),!0),d.preventDefault()):d.key==="Enter"?(o(i)[o(s)]&&(t.onInvoke(o(i)[o(s)].id),t.onClose()),d.preventDefault()):d.key==="Escape"&&(t.onClose(),d.preventDefault())}var l=by(),c=p(l);Se(c),dr(c,!0);var u=E(c,2);ue(u,23,()=>o(i),d=>d.id,(d,f,h)=>{var _=yy();let S;var k=p(_),x=p(k,!0);v(k);var w=E(k,2);{var b=D=>{var T=gy(),m=p(T);v(T),$(()=>j(m,`[${o(f).scopeBadge??""}]`)),A(D,T)};U(w,D=>{o(f).scopeBadge&&D(b)})}var y=E(w,2);{var I=D=>{var T=_y(),m=p(T,!0);v(T),$(()=>j(m,o(f).shortcut)),A(D,T)};U(y,D=>{o(f).shortcut&&D(I)})}v(_),$(()=>{S=we(_,1,"sh3-palette-item svelte-1qdcgk6",null,S,{"sh3-palette-active":o(h)===o(s)}),ke(_,"aria-selected",o(h)===o(s)),j(x,o(f).label)}),Je("pointerenter",_,()=>g(s,o(h),!0)),F("click",_,()=>{t.onInvoke(o(f).id),t.onClose()}),A(d,_)}),v(u),v(l),F("keydown",l,a),Me(c,()=>o(r),d=>g(r,d)),A(e,l),ie()}pe(["keydown","click"]);function ky(e){return Array.isArray(e)?e:[e]}function Sy(e,t,n){for(const r of ky(e))if(Va(r,t,n))return r;return null}function xy(e){return e==="home"||e==="app"?null:typeof e=="string"?e:e.element}function Ey(e,t){const n=[],r=new Set;for(const s of e){if(s.action.paletteItem===!1||r.has(s.action.id))continue;const i=Sy(s.action.scope,t,s.ownerShardId);i&&(r.add(s.action.id),n.push({id:s.action.id,label:s.action.label,shortcut:qa(s.action,t.bindings,t.platform),scopeBadge:xy(i)}))}return n}let al=!1;function Hu(e){return e?e.closest("[data-sh3-view]")?.getAttribute("data-sh3-view")??null:null}function Ku(e,t){const n=zn().find(r=>r.action.id===e);if(n)try{n.action.run(t)}catch(r){console.error(`[sh3] action "${e}" threw:`,r)}}function ti(e){const t=zn().find(r=>r.action.id===e);if(!t){console.warn(`[sh3] ctx.dispatch("${e}") — no action registered with that id.`);return}const n=ar();Ku(e,{action:{id:t.action.id,label:t.action.label},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"programmatic",dispatch:ti})}function Ay(e){const t=Hu(e.target);Fu(t)}function Iy(e){queueMicrotask(()=>{const t=Hu(document.activeElement);Fu(t)})}function Ty(e){return e instanceof Element?e.closest('[data-sh3-context-menu="native"]')!==null:!1}function Wu(e){if(Ty(e.target))return;const t=zn(),n=ar(),r=hy(t,n);if(r.tiers.length===0)return;e.preventDefault();const s=ni.popup.show(uy,{anchor:{x:e.clientX,y:e.clientY}},{model:r,onInvoke:i=>{const a=zn().find(l=>l.action.id===i);if(a)try{a.action.run({action:{id:i,label:a.action.label},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:ti})}catch(l){console.error(`[sh3] context-menu action "${i}" threw:`,l)}},onClose:()=>s.close()})}function Cy(e){const t=S_(e);if(!t)return;const n=zn(),r=ar();C_({target:e.target,shortcut:t,state:r,entries:n,runAction:Ku,dispatch:ti})&&e.preventDefault()}function Yu(){al||(al=!0,document.addEventListener("keydown",Cy),document.addEventListener("focusin",Ay),document.addEventListener("focusout",Iy),document.addEventListener("contextmenu",Wu))}function Ha(e){const t={target:null,clientX:e.x,clientY:e.y,preventDefault:()=>{}};Wu(t)}const Ry=20;let ea=[];function Py(e){ea=[e,...ea.filter(t=>t!==e)].slice(0,Ry)}function Ka(e){const t=zn(),n=ar(),r=Ey(t,n),s=ni.modal.open(wy,{candidates:r,recency:ea,prefill:e?.prefill??"",onInvoke:i=>{const a=zn().find(l=>l.action.id===i);if(a){Py(i);try{a.action.run({action:{id:i,label:a.action.label},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"palette",dispatch:ti})}catch(l){console.error(`[sh3] palette action "${i}" threw:`,l)}}},onClose:()=>s.close()},{dismissOnBackdrop:!0})}const Dy=Object.freeze(Object.defineProperty({__proto__:null,attachGlobalListeners:Yu,openContextMenu:Ha,openPalette:Ka},Symbol.toStringTag,{value:"Module"})),My={async rebind(e,t,n){await el(e,t,n),ar().activeAppId===e&&Lr(await Zn(e))},async resetBinding(e,t){await el(e,t,void 0),ar().activeAppId===e&&Lr(await Zn(e))},async bindingsFor(e){const t=await Zn(e),n={};for(const[r,s]of Object.entries(t))s!==null&&(n[r]=s);return n},openContextMenu:Ha,openPalette:Ka},ni={state:Ys,modal:hu,popup:og,toast:vg,float:Rt,presets:Pg,conflicts:g_,actions:My};function ss(e,t,n){return`${e}/${t}/${n}`}function Oy(e,t){return`${e}/${t}/`}const Ly="sh3-documents",Ft="docs",jy=2;class Ny{#e=null;#t(){return this.#e||(this.#e=new Promise((t,n)=>{const r=indexedDB.open(Ly,jy);r.onupgradeneeded=()=>{const s=r.result;s.objectStoreNames.contains(Ft)||s.createObjectStore(Ft)},r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)})),this.#e}async#n(t,n){const r=await this.#t();return new Promise((s,i)=>{const l=r.transaction(Ft,t).objectStore(Ft),c=n(l);c.onsuccess=()=>s(c.result),c.onerror=()=>i(c.error)})}async read(t,n,r){const s=ss(t,n,r),i=await this.#n("readonly",a=>a.get(s));return i?i.content:null}async write(t,n,r,s){const i=ss(t,n,r),a=typeof s=="string"?new Blob([s]).size:s.byteLength,l={content:s,size:a,lastModified:Date.now()};await this.#n("readwrite",c=>c.put(l,i))}async delete(t,n,r){const s=ss(t,n,r);await this.#n("readwrite",i=>i.delete(s))}async list(t,n){const r=Oy(t,n),s=await this.#t();return new Promise((i,a)=>{const c=s.transaction(Ft,"readonly").objectStore(Ft),u=IDBKeyRange.bound(r,r+"",!1,!1),d=c.openCursor(u),f=[];d.onsuccess=()=>{const h=d.result;if(h){const _=h.value;f.push({path:h.key.slice(r.length),size:_.size,lastModified:_.lastModified}),h.continue()}else i(f)},d.onerror=()=>a(d.error)})}async exists(t,n,r){const s=ss(t,n,r);return await this.#n("readonly",a=>a.getKey(s))!==void 0}async listAllShards(t){const n=`${t}/`,r=await this.#t();return new Promise((s,i)=>{const l=r.transaction(Ft,"readonly").objectStore(Ft),c=IDBKeyRange.bound(n,n+"",!1,!1),u=l.openKeyCursor(c),d=new Set;u.onsuccess=()=>{const f=u.result;if(f){const h=f.key.slice(n.length),_=h.indexOf("/");_>=0&&d.add(h.slice(0,_)),f.continue()}else s([...d])},u.onerror=()=>i(u.error)})}async listAllDocuments(t){const n=`${t}/`,r=await this.#t();return new Promise((s,i)=>{const l=r.transaction(Ft,"readonly").objectStore(Ft),c=IDBKeyRange.bound(n,n+"",!1,!1),u=l.openCursor(c),d=[];u.onsuccess=()=>{const f=u.result;if(f){const h=f.key.slice(n.length),_=h.indexOf("/");if(_>=0){const S=f.value;d.push({shardId:h.slice(0,_),path:h.slice(_+1),size:S.size,lastModified:S.lastModified})}f.continue()}else s(d)},u.onerror=()=>i(u.error)})}}class zy{#e;#t;constructor(t,n){this.#e=t.replace(/\/$/,""),this.#t=n}async read(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}`,i=await fetch(s,{credentials:"include"});if(i.status===404)return null;if(!i.ok)throw new Error(`Document read failed: ${i.status}`);return(i.headers.get("content-type")??"").includes("application/octet-stream")?i.arrayBuffer():i.text()}async write(t,n,r,s){const i=`${this.#e}/api/docs/${t}/${n}/${r}`,a={...this.#n(),"Content-Type":typeof s=="string"?"text/plain":"application/octet-stream"},l=await fetch(i,{method:"PUT",headers:a,body:s,credentials:"include"});if(!l.ok)throw new Error(`Document write failed: ${l.status}`)}async delete(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}`,i=await fetch(s,{method:"DELETE",headers:this.#n(),credentials:"include"});if(!i.ok)throw new Error(`Document delete failed: ${i.status}`)}async list(t,n){const r=`${this.#e}/api/docs/${t}/${n}`,s=await fetch(r,{credentials:"include"});if(!s.ok)throw new Error(`Document list failed: ${s.status}`);return s.json()}async exists(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}`;return(await fetch(s,{method:"HEAD",credentials:"include"})).ok}async listAllShards(t){const n=`${this.#e}/api/docs/${t}/_shards`,r=await fetch(n,{credentials:"include"});if(!r.ok)throw new Error(`listAllShards failed: ${r.status}`);return r.json()}async listAllDocuments(t){const n=`${this.#e}/api/docs/${t}/_all`,r=await fetch(n,{credentials:"include"});if(!r.ok)throw new Error(`listAllDocuments failed: ${r.status}`);return r.json()}async readMeta(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}?meta=1`,i=await fetch(s,{credentials:"include"});if(!i.ok)throw new Error(`readMeta failed: ${i.status}`);const a=await i.json();return a.exists?a:null}async resolve(t,n,r,s){const i=`${this.#e}/api/docs/${t}/${n}/${r}/resolve`,a=typeof s=="string"?{choice:s}:{choice:s.origin},l=await fetch(i,{method:"POST",credentials:"include",headers:{...this.#n(),"Content-Type":"application/json"},body:JSON.stringify(a)});if(!l.ok)throw new Error(`resolve failed: ${l.status}`)}async readBranch(t,n,r,s){const i=`${this.#e}/api/docs/${t}/${n}/${r}/branch?origin=${encodeURIComponent(s)}`,a=await fetch(i,{credentials:"include"});if(a.status===404)return null;if(!a.ok)throw new Error(`readBranch failed: ${a.status}`);return a.text()}#n(){return this.#t?{Authorization:`Bearer ${this.#t}`}:{}}}class $y{#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 Ir=new $y,qy=1e3;function By(e,t,n,r){const s=new Set,i=new Set;function a(u){return!r.extensions||r.extensions.length===0?!0:r.extensions.some(d=>u.endsWith(d))}function l(u,d){Ir.emit({type:u,path:d,tenantId:e,shardId:t})}const c={async list(){const u=await n.list(e,t);return!r.extensions||r.extensions.length===0?u:u.filter(d=>a(d.path))},async read(u){const d=await n.read(e,t,u);return d===null?null:typeof d=="string"?d:new TextDecoder().decode(d)},async write(u,d){const f=await n.exists(e,t,u);await n.write(e,t,u,d),l(f?"update":"create",u)},async delete(u){await n.delete(e,t,u),l("delete",u)},async exists(u){return n.exists(e,t,u)},async status(u){if(!n.readMeta)throw new Error("Backend does not support status()");return n.readMeta(e,t,u)},async resolveConflict(u,d){if(!n.resolve)throw new Error("Backend does not support resolveConflict()");if(typeof d!="string"&&!(typeof d=="object"&&"origin"in d))throw new Error("choice must be a string or { origin } object");return n.resolve(e,t,u,d)},async readBranch(u,d){if(!n.readBranch)throw new Error("Backend does not support readBranch()");return n.readBranch(e,t,u,d)},watch(u){const d=Ir.subscribe(f=>{f.tenantId===e&&f.shardId===t&&a(f.path)&&u(f)});return i.add(d),()=>{d(),i.delete(d)}},autosave(u,d){const f=new Vy(c,u,d?.debounceMs??qy);return s.add(f),f},async dispose(){const u=[...s].map(d=>d.dispose());await Promise.all(u),s.clear();for(const d of i)d();i.clear()}};return c}class Vy{#e;#t;#n;#i=null;#s=null;#a=!1;#r=!1;constructor(t,n,r){this.#e=t,this.#t=n,this.#n=r}get dirty(){return this.#a}update(t){this.#r||(this.#i=t,this.#a=!0,this.#o())}async flush(){if(this.#l(),this.#i!==null){const t=this.#i;this.#i=null,this.#a=!1,await this.#e.write(this.#t,t)}}async dispose(){this.#r||(this.#r=!0,await this.flush())}#o(){this.#l(),this.#s=setTimeout(()=>{this.#s=null,this.flush()},this.#n)}#l(){this.#s!==null&&(clearTimeout(this.#s),this.#s=null)}}const Uy="local";let Gu=Uy,Xu=new Ny;function Ti(){return Gu}function ol(){return Xu}function Ci(e){Gu=e}function Fy(e){Xu=e}const Hy="sync:peer",Ky="sync:policy";let hr=z(null),Xt=z(null),pr=z(!1),ri="",ta=null;function ll(e,t){ri=e,ta=t.auth,g(hr,t.user,!0),g(Xt,t.session,!0),g(pr,!t.session&&!t.user,!0)}async function Ju(e,t){try{const n=await fetch(`${ri}/api/auth/login`,{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:e,password:t})});if(!n.ok)return{ok:!1,error:(await n.json().catch(()=>({}))).error||"Login failed"};const r=await n.json();return g(hr,r.user,!0),g(Xt,r.session,!0),g(pr,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function Wy(e,t,n){try{const r=await fetch(`${ri}/api/auth/register`,{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:e,password:t,displayName:n})});if(!r.ok)return{ok:!1,error:(await r.json().catch(()=>({}))).error||"Registration failed"};const s=await r.json();return g(hr,s.user,!0),g(Xt,s.session,!0),g(pr,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function Yy(){try{await fetch(`${ri}/api/auth/logout`,{method:"POST",credentials:"include"})}catch{}if(ta?.required&&!ta.guestAllowed){window.location.reload();return}g(hr,null),g(Xt,null),g(pr,!0)}function Gy(){g(hr,{id:"local",username:"local",displayName:"Local Owner",role:"admin",createdAt:"",updatedAt:""},!0),g(Xt,{token:"local",userId:"local",role:"admin",expiresAt:1/0},!0),g(pr,!1)}function Xy(){return o(Xt)?.token==="local"}function ln(){return o(Xt)?.role==="admin"}function na(){return o(Xt)!==null}function Zu(){return o(pr)}function si(){return o(hr)}function ii(){return o(Xt)?`Bearer ${o(Xt).token}`:null}let mr="";function Qu(e){mr=e}async function Jy(e){const t=await fetch(`${mr}/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 Zy(e,t){if(!ln())throw new Error("Cannot update env state: not elevated to admin");const n=ii(),r={"Content-Type":"application/json"};n&&(r.Authorization=n);const s=await fetch(`${mr}/api/env-state/${encodeURIComponent(e)}`,{method:"PUT",headers:r,body:JSON.stringify(t)});if(!s.ok){const i=await s.json().catch(()=>({}));throw new Error(`Env state update failed: HTTP ${s.status} — ${i.error??"unknown"}`)}}async function Wa(e,t,n){if(!ln())throw new Error("Cannot install: not elevated to admin");const r=ii(),s=new FormData;s.append("manifest",new Blob([JSON.stringify(e)],{type:"application/json"}),"manifest.json"),s.append("client",new Blob([t],{type:"application/javascript"}),"client.js"),n!==void 0&&s.append("server",new Blob([n],{type:"application/javascript"}),"server.js");const i={};r&&(i.Authorization=r);const a=await fetch(`${mr}/api/packages/install`,{method:"POST",headers:i,body:s});if(!a.ok){let l={};try{l=await a.json()}catch{}return{ok:!1,error:typeof l.error=="string"?l.error:`HTTP ${a.status}`,code:typeof l.code=="string"?l.code:void 0,missing:Array.isArray(l.missing)?l.missing:void 0}}return{ok:!0}}async function ed(e){if(!ln())throw new Error("Cannot uninstall: not elevated to admin");const t=ii(),n={"Content-Type":"application/json"};t&&(n.Authorization=t);const r=await fetch(`${mr}/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 Qy(){const e=await fetch(`${mr}/api/packages`);return e.ok?await e.json():[]}function eb(e){return Ut[e].list()}function tb(e,t){return Ut[e].read(t)}function nb(e,t){Ut[e].delete(t)}function rb(e){for(const t of Ut[e].list())Ut[e].delete(t)}function td(){return{list:eb,peek:tb,clear:nb,clearAll:rb}}const nd="documents:browse",rd="documents:read",sd="documents:write";function sb(e,t,n={canRead:!1,canWrite:!1}){const r={listDocuments:()=>t.listAllDocuments(e),listShards:()=>t.listAllShards(e),watchDocuments:s=>Ir.subscribe(i=>{i.tenantId===e&&s(i)})};return n.canRead&&(r.readFrom=(s,i)=>t.read(e,s,i),r.statusFrom=async(s,i)=>t.readMeta?t.readMeta(e,s,i):null,r.readBranchFrom=async(s,i,a)=>t.readBranch?t.readBranch(e,s,i,a):null),n.canWrite&&(r.writeTo=async(s,i,a)=>{const l=await t.exists(e,s,i);await t.write(e,s,i,a),Ir.emit({type:l?"update":"create",path:i,tenantId:e,shardId:s})},r.resolveConflictFrom=async(s,i,a)=>{if(!t.resolve)throw new Error("Backend does not support resolveConflict");await t.resolve(e,s,i,a),Ir.emit({type:"update",path:i,tenantId:e,shardId:s})}),r}const id="keys:mint";class ad extends Error{constructor(t){super(`Shard may not mint a key with scope '${t}' — not declared in manifest.`),this.name="ScopeEscalationError"}}class od extends Error{constructor(){super("User denied key creation."),this.name="ConsentDeniedError"}}const ra=new Map;let Tr=null;function ld(e){return Tr=e,()=>{Tr===e&&(Tr=null)}}async function ib(e,t){if(!Tr)throw new Error("No consent listener registered — the shell must mount ConsentDialog.");const n=`c_${Math.random().toString(36).slice(2)}${Date.now()}`;return new Promise(r=>{ra.set(n,{resolve:r}),Tr({...t,shardId:e,requestId:n})})}function sa(e,t){const n=ra.get(e);n&&(ra.delete(e),n.resolve(t))}const Ds=new Map,_s=new Map,ab=5e3;function ob(e,t){let n=_s.get(e);n||(n=new Set,_s.set(e,n)),n.add(t),setTimeout(()=>{n.delete(t),n.size===0&&_s.delete(e)},ab)}function lb(e,t){return _s.get(e)?.has(t)??!1}function Ya(e,t){const n=Ds.get(e)??new Set;return n.add(t),Ds.set(e,n),()=>{n.delete(t)}}function cd(e,t){if(!e||lb(e,t))return;ob(e,t);const n=Ds.get(e);if(n)for(const s of n)s(t);const r=Ds.get("*");if(r)for(const s of r)s(t)}function cb(){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);cd(n.shardId,n.id)}catch{}},()=>e.close()}function ub(e){const{shardId:t,shardPermissions:n}=e,r=s=>{for(const i of s)if(!n.includes(i)&&!n.includes("admin:*"))throw new ad(i)};return{async mint(s){if(r(s.scopes),!await ib(t,s))throw new od;const a=await fetch("/api/keys/consent",{method:"POST",credentials:"include",headers:{"content-type":"application/json"},body:JSON.stringify({shardId:t,...s})});if(!a.ok)throw new Error(`Consent ticket failed: ${a.status}`);const{ticket:l}=await a.json(),c=await fetch("/api/keys",{method:"POST",credentials:"include",headers:{"content-type":"application/json"},body:JSON.stringify({ticket:l})});if(!c.ok)throw new Error(`Mint failed: ${c.status}`);return c.json()},async list(){const s=await fetch("/api/keys",{credentials:"include"});if(!s.ok)throw new Error(`List failed: ${s.status}`);return(await s.json()).filter(a=>a.mintedByShardId===t)},async revoke(s){const i=await fetch(`/api/keys/${encodeURIComponent(s)}`,{method:"DELETE",credentials:"include"});if(!i.ok&&i.status!==404)throw new Error(`Revoke failed: ${i.status}`);cd(t,s)}}}const Jt=ce(new Map),jr=new Map,Jr=ce(new Map);function Ga(e){const t=e.manifest.id;Jt.has(t)&&Jr.has(t)&&ai(t),Jt.set(t,e)}async function ud(e){const t=Jt.get(e);if(!t)throw new Error(`Cannot activate shard "${e}": not registered`);if(jr.has(e))return;const n={shard:t,ctx:void 0,viewIds:new Set,verbNames:new Set,cleanupFns:[]},r=ce({proxy:null,defaults:null}),s={register(a,l){const c=yu(a,l);return n.cleanupFns.push(async()=>c()),c},list(a){return $a(a)},listPoints(){return Dg()},onChange(a,l){const c=Mg(a,l);return n.cleanupFns.push(async()=>c()),c}},i={state:a=>ni.state(e,a),registerView:(a,l)=>{L_(a,l),n.viewIds.add(a)},registerVerb:a=>{const l=e==="shell"?a.name:`${e}:${a.name}`;N_(l,{...a,name:l}),n.verbNames.add(l)},documents:a=>{const l=By(Ti(),e,ol(),a);return n.cleanupFns.push(()=>l.dispose()),l},env(a){return r.proxy?(console.warn(`[sh3] Shard "${e}" called ctx.env() more than once; extra calls are ignored.`),r.proxy):(r.defaults=a,r.proxy={...a},r.proxy)},async envUpdate(a){if(!r.proxy||!r.defaults)throw new Error(`Shard "${e}" called envUpdate() without declaring env state`);const l=On(r.proxy);Object.assign(r.proxy,a);try{const c=On(r.proxy);await Zy(e,c)}catch(c){throw Object.assign(r.proxy,l),c}},get isAdmin(){return ln()},get tenantId(){return Ti()},zones:t.manifest.permissions?.includes(Oa)?td():void 0,browse:t.manifest.permissions?.includes(nd)?sb(Ti(),ol(),{canRead:t.manifest.permissions.includes(rd),canWrite:t.manifest.permissions.includes(sd)}):void 0,keys:t.manifest.permissions?.includes(id)?ub({shardId:e,shardPermissions:t.manifest.permissions??[]}):void 0,contributions:s,actions:{register(a){const l=y_(a,e);return n.cleanupFns.push(async()=>l()),l},selection:P_(e),openContextMenu(a){Ha(a)},openPalette(a){Ka(a)}}};if(n.ctx=i,t.onKeyRevoked){const a=Ya(e,async l=>{try{await t.onKeyRevoked(l)}catch(c){console.error(`[sh3] onKeyRevoked failed in "${e}":`,c)}});n.cleanupFns.push(async()=>a())}jr.set(e,n),Jr.set(e,t),await t.activate(i);for(const a of t.manifest.views)if(!n.viewIds.has(a.id))throw new Error(`Shard "${e}" declared view "${a.id}" in its manifest but registered no factory for it.`);if(r.proxy&&r.defaults)try{const a=await Jy(e),l=Object.assign({},r.defaults,a);Object.assign(r.proxy,l)}catch(a){console.warn(`[sh3] Failed to hydrate env state for shard "${e}":`,a instanceof Error?a.message:a)}t.autostart?.(i)}function ai(e){const t=jr.get(e);if(t){t.shard.deactivate?.();for(const n of t.cleanupFns)n();for(const n of t.verbNames)z_(n);for(const n of t.viewIds)j_(n);D_(e),jr.delete(e),Jr.delete(e)}}function db(e){return jr.get(e)?.ctx}function cl(){const e=[];for(const t of Jr.values())for(const n of t.manifest.views)n.standalone&&e.push({shardId:t.manifest.id,viewId:n.id,label:n.label});return e}const mn=ce(new Map),Ot=ce({id:null});function Xa(e){mn.set(e.manifest.id,e)}function Ja(){return Array.from(mn.values()).map(e=>e.manifest)}function dd(){const e=Ot.id;return e?mn.get(e)?.manifest??null:null}function oi(e){return mn.get(e)}const fd=Ys("__sh3core__:last-app",{user:{id:null}});function fb(){return fd.user.id}function Ms(e){fd.user.id=e}const ia=new Map;function is(e){let t=ia.get(e);if(!t){const n=oi(e);t={state:r=>Ys(`__app__:${e}`,r),zones:n?.manifest.permissions?.includes(Oa)?td():void 0},ia.set(e,t)}return t}async function or(e){const t=oi(e);if(!t)throw new Error(`Cannot launch app "${e}": not registered`);if(Ot.id&&Ot.id!==e)vd(Ot.id);else if(Ot.id===e){for(const n of t.manifest.requiredShards){const r=Jt.get(n),s=db(n);r&&s&&r.resume?.(s)}t.resume?.(is(e)),il(),t.onAppReady?.(is(e)),Ms(e),Qi(e,new Set(t.manifest.requiredShards??[])),Zn(e).then(Lr);return}for(const n of t.manifest.requiredShards)if(!Jt.has(n))throw new Error(`App "${e}" requires shard "${n}" which is not registered`);ey(t);try{for(const n of t.manifest.requiredShards)await ud(n)}catch(n){throw ju(),n}ty(),t.activate?.(is(e)),Ot.id=e,Qi(e,new Set(t.manifest.requiredShards??[])),Zn(e).then(Lr),il(),t.onAppReady?.(is(e)),Ms(e)}function vd(e){if(Ot.id!==e)return;const t=oi(e);if(t){t.deactivate?.(),Nu(),ju();for(const n of t.manifest.requiredShards){const r=Jt.get(n);r&&(r.autostart||ai(n))}Ot.id=null,Qi(null,new Set),M_(),Zn("sh3.home").then(Lr),ia.delete(e)}}function Za(e){mn.has(e)&&(Ot.id===e&&(vd(e),Ms(null)),mn.delete(e))}async function hd(){const e=Ot.id?oi(Ot.id):null;if(e){for(const t of e.manifest.requiredShards){const n=Jt.get(t);if(n?.suspend&&await n.suspend()===!1)return!1}if(e.suspend&&await e.suspend()===!1)return!1}return Nu(),Ms(null),!0}const vb="modulepreload",hb=function(e){return"/"+e},ul={},pd=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),l=a?.nonce||a?.getAttribute("nonce");s=Promise.allSettled(n.map(c=>{if(c=hb(c),c in ul)return;ul[c]=!0;const u=c.endsWith(".css"),d=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${d}`))return;const f=document.createElement("link");if(f.rel=u?"stylesheet":vb,u||(f.as="script"),f.crossOrigin="",f.href=c,l&&f.setAttribute("nonce",l),document.head.appendChild(f),u)return new Promise((h,_)=>{f.addEventListener("load",h),f.addEventListener("error",()=>_(new Error(`Unable to preload CSS for ${c}`)))})}))}function i(a){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=a,window.dispatchEvent(l),!l.defaultPrevented)throw a}return s.then(a=>{for(const l of a||[])l.status==="rejected"&&i(l.reason);return t().catch(i)})};function md(){return{root:kt(),source:zu()}}function pb(e){const t=kt().docked,n=eo(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 mb(e){const t=kt();return ci(t.docked,n=>n.slotId===e)?!0:gd(t,n=>n.slotId===e)}function li(e){const t=kt();return ci(t.docked,n=>n.viewId===e)?!0:gd(t,n=>n.viewId===e)}function ci(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(ci(n,t))return!0}return!1}function gd(e,t){for(const n of e.floats)if(ci(n.content,t))return Rt.focus(n.id),!0;return!1}function gb(e,t){return _d(e,t,!0)}function _b(e,t){return _d(e,t,!1)}function _d(e,t,n){const r=kt().docked,s=Ps(r,e);if(!s||s.type!=="split")return!1;const i=s;return t<0||t>=i.children.length?!1:(i.collapsed||(i.collapsed=i.children.map(()=>!1)),i.collapsed[t]=n,!0)}async function Qa(e){const t=kt(),n=t.docked;if(!ir(n,e))return yb(t,e);const i=Mu(e)?.closable;return!i||typeof i=="object"&&(!await i.canClose()||!ir(n,e))?!1:(Js(n,e),Xn(n),!0)}async function yb(e,t){for(const n of e.floats){if(!ir(n.content,t))continue;const i=Mu(t)?.closable;if(typeof i=="object"&&(!await i.canClose()||!ir(n.content,t)))return!1;Js(n.content,t);const a=n.content.type==="tabs"?n.content:null;return(!a||a.tabs.length===0)&&Rt.close(n.id),!0}return!1}function yd(e){const t=kt(),n=ir(t.docked,e);if(!n)return null;const r=n.entry,s=r.viewId;if(!s)return null;const i=r.label,a=r.meta;return Js(t.docked,e),Xn(t.docked),Rt.open(s,{title:i,meta:a})}function bd(e){const n=kt().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 Rt.close(e),!1;const i=s.tabs[s.activeTab??0]??s.tabs[0],a=to({slotId:i.slotId,viewId:i.viewId,label:i.label,meta:i.meta});return a&&Rt.close(e),a}function eo(e){if(e.type==="tabs")return e;if(e.type==="split")for(const t of e.children){const n=eo(t);if(n)return n}return null}function wd(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=wd(e.children[n],[...t,n]);if(r)return r}return null}function to(e){const t=kt().docked;if(li(e.viewId??""))return!0;const n=eo(t);if(n)return n.tabs.push(e),n.activeTab=n.tabs.length-1,!0;const r=wd(t);return r?(Cu(t,r,e,"right"),!0):!1}function kd(e){return Fa(kt(),e)}class ot extends Error{constructor(t,n){super(`Registry validation error at ${t}: ${n}`),this.name="RegistryValidationError",this.path=t}}function Sd(e){if(!e||typeof e!="object"||Array.isArray(e))throw new ot("$","expected an object");const t=e;if(t.version!==1)throw new ot("$.version",`expected 1, got ${JSON.stringify(t.version)}`);if(!Array.isArray(t.packages))throw new ot("$.packages","expected an array");return{version:1,packages:t.packages.map((r,s)=>bb(r,`$.packages[${s}]`))}}function bb(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new ot(t,"expected an object");const n=e;Mt(n,"id",t),Sb(n,"type",["shard","app","combo"],t),Mt(n,"label",t),Mt(n,"description",t);const r=`${t}.author`;if(!n.author||typeof n.author!="object"||Array.isArray(n.author))throw new ot(r,"expected an object");const s=n.author;if(typeof s.name!="string"||s.name.length===0)throw new ot(`${r}.name`,"expected a non-empty string");if(!Array.isArray(n.versions)||n.versions.length===0)throw new ot(`${t}.versions`,"expected a non-empty array");const i=n.versions.map((a,l)=>wb(a,`${t}.versions[${l}]`));return{id:n.id,type:n.type,label:n.label,description:n.description,author:{name:s.name},icon:typeof n.icon=="string"?n.icon:void 0,versions:i}}function wb(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new ot(t,"expected an object");const n=e;Mt(n,"version",t),Mt(n,"contractVersion",t);const r="bundleUrl"in n&&n.bundleUrl!==void 0,s="integrity"in n&&n.integrity!==void 0;if(r&&Mt(n,"bundleUrl",t),s&&Mt(n,"integrity",t),r!==s)throw new ot(t,"bundleUrl and integrity must be provided together");const i="serverBundleUrl"in n&&n.serverBundleUrl!==void 0;if(i&&Mt(n,"serverBundleUrl",t),"serverIntegrity"in n&&n.serverIntegrity!==void 0&&Mt(n,"serverIntegrity",t),!r&&!i)throw new ot(t,"expected at least one of bundleUrl+integrity or serverBundleUrl");let a;if(n.requires!==void 0){if(!Array.isArray(n.requires))throw new ot(`${t}.requires`,"expected an array");a=n.requires.map((l,c)=>kb(l,`${t}.requires[${c}]`))}return{version:n.version,contractVersion:n.contractVersion,bundleUrl:typeof n.bundleUrl=="string"?n.bundleUrl:void 0,integrity:typeof n.integrity=="string"?n.integrity:void 0,serverBundleUrl:typeof n.serverBundleUrl=="string"?n.serverBundleUrl:void 0,serverIntegrity:typeof n.serverIntegrity=="string"?n.serverIntegrity:void 0,requires:a}}function kb(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new ot(t,"expected an object");const n=e;return Mt(n,"id",t),Mt(n,"versionRange",t),{id:n.id,versionRange:n.versionRange}}function Mt(e,t,n){const r=e[t];if(typeof r!="string"||r.length===0)throw new ot(`${n}.${t}`,"expected a non-empty string")}function Sb(e,t,n,r){if(!n.includes(e[t]))throw new ot(`${r}.${t}`,`expected one of: ${n.join(", ")}`)}const dl=["sha256","sha384","sha512"];function xb(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(!dl.includes(n))throw new Error(`Unsupported SRI algorithm: ${n}. Supported: ${dl.join(", ")}`);if(!r)throw new Error(`Empty hash in SRI: ${e}`);return{algorithm:n,hash:r}}function Eb(e){return`SHA-${e.slice(3)}`}function Ab(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 no(e,t){const{algorithm:n,hash:r}=xb(t),s=Eb(n),i=await crypto.subtle.digest(s,e),a=Ab(i);if(a!==r)throw new Error(`Integrity check failed for ${n}. Expected: ${r}, got: ${a}`)}async function xd(e){const t=new Set,n=[];for(const r of e){let s;try{const a=await fetch(r);if(!a.ok){console.warn(`[sh3] Registry fetch failed for ${r}: HTTP ${a.status}`);continue}s=await a.json()}catch(a){console.warn(`[sh3] Registry ${r}: ${a instanceof Error?a.message:String(a)}`);continue}let i;try{i=Sd(s)}catch(a){console.warn(`[sh3] Registry ${r} failed validation: ${a instanceof Error?a.message:String(a)}`);continue}for(const a of i.packages)t.has(a.id)||(t.add(a.id),n.push({entry:a,latest:a.versions[0],sourceRegistry:r}))}return n}async function ui(e,t){if(!e.bundleUrl||!e.integrity)throw new Error("fetchBundle called on a version with no client bundle");let n=e.bundleUrl;t&&!/^https?:\/\//i.test(n)&&(n=new URL(n,t).href);const r=await fetch(n);if(!r.ok)throw new Error(`Bundle fetch failed: HTTP ${r.status} ${r.statusText} from ${n}`);const s=await r.arrayBuffer();return await no(s,e.integrity),s}async function ro(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 no(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 di(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 wn="0.11.2",so="sh3:user:__sh3core__:theme";let Nr=[];function Ib(e){const t=Object.keys(e);for(const n of Nr)t.includes(n)||document.documentElement.style.removeProperty(`--${n}`);for(const[n,r]of Object.entries(e))document.documentElement.style.setProperty(`--${n}`,r);Nr=t;try{localStorage.setItem(so,JSON.stringify(e))}catch{}}function Tb(){for(const e of Nr)document.documentElement.style.removeProperty(`--${e}`);Nr=[];try{localStorage.removeItem(so)}catch{}}function Ed(){try{const e=localStorage.getItem(so);if(!e)return{};const t=JSON.parse(e);return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{}}catch{return{}}}function Cb(){const e=Ed();if(Object.keys(e).length!==0){for(const[t,n]of Object.entries(e))document.documentElement.style.setProperty(`--${t}`,n);Nr=Object.keys(e)}}const Rb={hotInstall:typeof Blob<"u"&&typeof URL.createObjectURL=="function"},Ad=["__sh3core__","shell","sh3-store","sh3-admin"],Id=Object.freeze(Object.defineProperty({__proto__:null,CONFLICT_RENDERER_POINT:wu,ConflictPermissionError:ku,ConflictSessionOrphanedError:d_,ConsentDeniedError:od,FRAMEWORK_SHARD_IDS:Ad,PERMISSION_DOCUMENTS_BROWSE:nd,PERMISSION_DOCUMENTS_READ:rd,PERMISSION_DOCUMENTS_WRITE:sd,PERMISSION_KEYS_MINT:id,PERMISSION_STATE_MANAGE:Oa,PERMISSION_SYNC_PEER:Hy,PERMISSION_SYNC_POLICY:Ky,ScopeEscalationError:ad,VERSION:wn,activeShards:Jr,buildPackageMeta:di,capabilities:Rb,clearTokenOverrides:Tb,closeTab:Qa,collapseChild:gb,dockFloat:bd,dockIntoActiveLayout:to,expandChild:_b,fetchBundle:ui,fetchRegistries:xd,focusTab:mb,focusView:li,getActiveApp:dd,getAuthHeader:ii,getTokenOverrides:Ed,getUser:si,inspectActiveLayout:md,isAdmin:ln,isAuthenticated:na,isGuest:Zu,launchApp:or,listRegisteredApps:Ja,listVerbs:Ua,locateSlot:kd,popoutView:yd,registerConsentListener:ld,registeredShards:Jt,resolveConsent:sa,returnToHome:hd,setTokenOverrides:Ib,shell:ni,spliceIntoActiveLayout:pb,subscribeKeyRevocation:Ya,unregisterApp:Za,validateRegistryIndex:Sd},Symbol.toStringTag,{value:"Module"})),Pb="/assets/SH3-BG5NVpSD.png",Db="https://cdn.jsdelivr.net/npm/p5@1.11.13/lib/p5.min.js";let br=null;function Mb(){return br||(br=new Promise((e,t)=>{const n=window.p5;if(n){e(n);return}const r=document.createElement("script");r.src=Db,r.async=!0,r.onload=()=>e(window.p5),r.onerror=s=>{br=null,t(s)},document.head.appendChild(r)}),br)}var Ob=C('<h1 class="shell-title-fallback svelte-1ifjvh5">SH3</h1>'),Lb=C('<div class="shell-title svelte-1ifjvh5"></div>');function jb(e,t){se(t,!0);const n="`.-':;,^\"~=+<>*?!/\\|()[]{}x1ltzrcvunsXYUJCLQ0OZmwqpdbkhao*#MW&8%B@$",r=64,s=Math.floor(64/(442/193)),i=8,a=7,l=80,c=r*i,u=s*a,d=l/u;let f=z(void 0),h=null,_=z(!1);const S=()=>y=>{const D=getComputedStyle(document.documentElement).getPropertyValue("--shell-accent").trim();let T,m,M=!1;y.setup=()=>{y.createCanvas(c,u),y.noSmooth(),y.noStroke(),y.textAlign(y.CENTER,y.CENTER),y.textFont("monospace"),y.textSize(10),y.textStyle(y.BOLD),m=y.loadImage(Pb,()=>{T=y.createGraphics(r,s),T.pixelDensity(1),T.image(m,0,0,r,s),T.loadPixels(),M=!0},()=>{g(_,!0)})},y.draw=()=>{if(!M)return;const R=y.millis()*.001;let O;y.clear(),y.background(0,0),y.fill(D);for(let P=0;P<s;P++)for(let L=0;L<r;L++){const q=(P*r+L)*4;if(T.pixels[q]<64){if(O=y.noise(L/r*2,P/s*2,R*.15),O>.33)continue;y.text(n[Math.floor(O*n.length*.25)],(L+.5)*i,(P+.5)*a);continue}O=y.noise(L/r*4,P/s*4,R*.5),y.text(n[Math.floor(O*n.length)],(L+.5)*i,(P+.5)*a)}}};Ce(()=>{if(o(_))return;let y=!1;return Mb().then(I=>{if(!(y||!o(f)))try{h=new I(S(),o(f))}catch(D){console.error("[ShellTitle] p5 sketch failed to start",D),g(_,!0)}}).catch(I=>{console.error("[ShellTitle] failed to load p5 from CDN",I),g(_,!0)}),()=>{y=!0,h&&(h.remove(),h=null)}});var k=at(),x=he(k);{var w=y=>{var I=Ob();A(y,I)},b=y=>{var I=Lb();Qt(I,"",{},{width:"216.7195767195767px",height:"80px","--shell-title-scale":d}),ut(I,D=>g(f,D),()=>o(f)),A(y,I)};U(x,y=>{o(_)?y(w):y(b,-1)})}A(e,k),ie()}var Nb=C('<button type="button" class="shell-home-card svelte-cpn2x2"><div class="shell-home-card-label svelte-cpn2x2"> </div> <div class="shell-home-card-meta svelte-cpn2x2"><span class="shell-home-card-id svelte-cpn2x2"> </span> <span class="shell-home-card-version svelte-cpn2x2"> </span></div></button>'),zb=C('<section class="shell-home-section svelte-cpn2x2"><h2 class="shell-home-section-title svelte-cpn2x2">Apps</h2> <div class="shell-home-grid svelte-cpn2x2"></div></section>'),$b=C('<button type="button" class="shell-home-card svelte-cpn2x2"><div class="shell-home-card-label svelte-cpn2x2"> </div> <div class="shell-home-card-meta svelte-cpn2x2"><span class="shell-home-card-id svelte-cpn2x2"> </span> <span class="shell-home-card-version svelte-cpn2x2"> </span></div></button>'),qb=C('<section class="shell-home-section svelte-cpn2x2"><h2 class="shell-home-section-title svelte-cpn2x2">Admin</h2> <div class="shell-home-grid svelte-cpn2x2"></div></section>'),Bb=C('<p class="shell-home-empty svelte-cpn2x2"><!></p>'),Vb=C('<div class="shell-home svelte-cpn2x2"><header class="shell-home-header svelte-cpn2x2"><div class="shell-home-title-row svelte-cpn2x2"><!> <span class="shell-home-version svelte-cpn2x2"> </span> <span class="shell-home-alpha svelte-cpn2x2">alpha</span></div> <div class="shell-home-credit svelte-cpn2x2">Art: by <a href="https://www.andbc.co/" target="_blank" rel="noopener noreferrer" class="svelte-cpn2x2">andbc</a></div></header> <div class="shell-home-filter svelte-cpn2x2"><input type="search" placeholder="Filter apps…" aria-label="Filter apps by name" class="shell-home-filter-input svelte-cpn2x2"/></div> <!> <!> <!></div>');function Ub(e,t){se(t,!0);let n=z("");const r=X(Ja),s=X(ln);function i(m,M){if(!M)return!0;const R=M.toLowerCase();return m.label.toLowerCase().includes(R)||m.id.toLowerCase().includes(R)}const a=X(()=>o(r).filter(m=>!m.admin&&i(m,o(n)))),l=X(()=>o(r).filter(m=>m.admin&&i(m,o(n)))),c=X(()=>o(a).length+(o(s)?o(l).length:0));var u=Vb(),d=p(u),f=p(d),h=p(f);jb(h,{});var _=E(h,2),S=p(_);v(_),nn(2),v(f),nn(2),v(d);var k=E(d,2),x=p(k);Se(x),v(k);var w=E(k,2);{var b=m=>{var M=zb(),R=E(p(M),2);ue(R,21,()=>o(a),O=>O.id,(O,P)=>{var L=Nb(),q=p(L),N=p(q,!0);v(q);var B=E(q,2),Y=p(B),G=p(Y,!0);v(Y);var Q=E(Y,2),J=p(Q);v(Q),v(B),v(L),$(()=>{ke(L,"title",`Launch ${o(P).label??""}`),j(N,o(P).label),j(G,o(P).id),j(J,`v${o(P).version??""}`)}),F("click",L,()=>or(o(P).id)),A(O,L)}),v(R),v(M),A(m,M)};U(w,m=>{o(a).length>0&&m(b)})}var y=E(w,2);{var I=m=>{var M=qb(),R=E(p(M),2);ue(R,21,()=>o(l),O=>O.id,(O,P)=>{var L=$b(),q=p(L),N=p(q,!0);v(q);var B=E(q,2),Y=p(B),G=p(Y,!0);v(Y);var Q=E(Y,2),J=p(Q);v(Q),v(B),v(L),$(()=>{ke(L,"title",`Launch ${o(P).label??""}`),j(N,o(P).label),j(G,o(P).id),j(J,`v${o(P).version??""}`)}),F("click",L,()=>or(o(P).id)),A(O,L)}),v(R),v(M),A(m,M)};U(y,m=>{o(s)&&o(l).length>0&&m(I)})}var D=E(y,2);{var T=m=>{var M=Bb(),R=p(M);{var O=L=>{var q=zt("No apps registered.");A(L,q)},P=L=>{var q=zt();$(()=>j(q,`No apps match “${o(n)??""}”.`)),A(L,q)};U(R,L=>{o(r).length===0?L(O):L(P,-1)})}v(M),A(m,M)};U(D,m=>{o(c)===0&&m(T)})}v(u),$(()=>j(S,`v${wn}`)),Me(x,()=>o(n),m=>g(n,m)),A(e,u),ie()}pe(["click"]);var Fb=C('<p class="keys-peers-muted svelte-19l5m7c">Loading...</p>'),Hb=C('<p class="keys-peers-error svelte-19l5m7c"> </p>'),Kb=C('<p class="keys-peers-muted svelte-19l5m7c">No keys yet. Shards will ask your permission before creating one.</p>'),Wb=C('<button type="button" class="keys-peers-btn-danger svelte-19l5m7c">Confirm</button> <button type="button" class="keys-peers-btn-secondary svelte-19l5m7c">Cancel</button>',1),Yb=C('<button type="button" class="keys-peers-btn-danger svelte-19l5m7c">Revoke</button>'),Gb=C('<li class="keys-peers-item svelte-19l5m7c"><div class="keys-peers-info svelte-19l5m7c"><span class="keys-peers-label svelte-19l5m7c"> </span> <span class="keys-peers-meta svelte-19l5m7c"> </span> <span class="keys-peers-meta svelte-19l5m7c"> </span> <span class="keys-peers-meta svelte-19l5m7c"> </span></div> <div class="keys-peers-actions svelte-19l5m7c"><!></div></li>'),Xb=C('<ul class="keys-peers-list svelte-19l5m7c"></ul>'),Jb=C('<div class="keys-peers svelte-19l5m7c"><div class="keys-peers-header svelte-19l5m7c"><h2 class="svelte-19l5m7c">Keys & Peers</h2></div> <!></div>');function Zb(e,t){se(t,!0);let n=z(ce([])),r=z(null),s=z(!0),i=z(null);async function a(){g(r,null),g(s,!0);try{const k=await fetch("/api/keys",{credentials:"include"});if(!k.ok)throw new Error(`HTTP ${k.status}`);g(n,await k.json(),!0)}catch(k){g(r,k instanceof Error?k.message:String(k),!0)}finally{g(s,!1)}}async function l(k){g(i,null);const x=await fetch(`/api/keys/${encodeURIComponent(k)}`,{method:"DELETE",credentials:"include"});(x.ok||x.status===404)&&g(n,o(n).filter(w=>w.id!==k),!0)}function c(k){return new Date(k).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}Ce(()=>{a()}),Ce(()=>Ya("*",()=>{a()}));var u=Jb(),d=E(p(u),2);{var f=k=>{var x=Fb();A(k,x)},h=k=>{var x=Hb(),w=p(x);v(x),$(()=>j(w,`Failed to load: ${o(r)??""}`)),A(k,x)},_=k=>{var x=Kb();A(k,x)},S=k=>{var x=Xb();ue(x,21,()=>o(n),w=>w.id,(w,b)=>{var y=Gb(),I=p(y),D=p(I),T=p(D,!0);v(D);var m=E(D,2),M=p(m);v(m);var R=E(m,2),O=p(R);v(R);var P=E(R,2),L=p(P);v(P),v(I);var q=E(I,2),N=p(q);{var B=G=>{var Q=Wb(),J=he(Q),te=E(J,2);F("click",J,()=>l(o(b).id)),F("click",te,()=>{g(i,null)}),A(G,Q)},Y=G=>{var Q=Yb();F("click",Q,()=>{g(i,o(b).id,!0)}),A(G,Q)};U(N,G=>{o(i)===o(b).id?G(B):G(Y,-1)})}v(q),v(y),$((G,Q,J)=>{j(T,o(b).label),j(M,`Minted by: ${o(b).mintedByShardId??"system"??""}${o(b).peerRole||o(b).peerId?` · Peer: ${o(b).peerRole??"—"}${o(b).peerId?` (${o(b).peerId})`:""}`:""}`),j(O,`Scopes: ${G??""}`),j(L,`Created: ${Q??""} · Expires: ${J??""}`)},[()=>o(b).scopes.join(", "),()=>c(o(b).createdAt),()=>o(b).expiresAt?c(o(b).expiresAt):"never"]),A(w,y)}),v(x),A(k,x)};U(d,k=>{o(s)?k(f):o(r)?k(h,1):o(n).length===0?k(_,2):k(S,-1)})}v(u),A(e,u),ie()}pe(["click"]);const Qb={manifest:{id:"__sh3core__",label:"SH3 Core",version:wn,views:[{id:"sh3core:home",label:"Home"},{id:"shell:keys-and-peers",label:"Keys & Peers"}]},activate(e){const t=e.state({user:{bindings:{}}});__(t.user),e.actions.register({id:"sh3.palette.open",label:"Command Palette…",scope:["home","app"],defaultShortcut:"Mod+K",contextItem:!1,paletteItem:!1,run(i){pd(async()=>{const{openPalette:a}=await Promise.resolve().then(()=>Dy);return{openPalette:a}},void 0).then(({openPalette:a})=>a())}});const n={mount(i,a){const l=ze(Ub,{target:i});return{unmount(){Fe(l)}}}},r={mount(i,a){const l=ze(Zb,{target:i});return{unmount(){Fe(l)}}}};e.registerView("sh3core:home",n),e.registerView("shell:keys-and-peers",r);const s=new Map;Ks(()=>{Ce(()=>{const i=new Set;for(const[a,l]of mn){if(i.add(a),s.has(a))continue;const c=e.actions.register({id:`sh3.app.launch:${a}`,label:`Launch ${l.manifest.label}`,scope:["home","app"],run(){or(a)}});s.set(a,c)}for(const a of[...s.keys()])i.has(a)||(s.get(a)(),s.delete(a))})})},autostart(){}},ew={id:"shell",label:"Shell",version:wn,views:[{id:"shell:terminal",label:"Shell",standalone:!0}],permissions:[]},tw=2e3;let nw=0;function rw(){return`e${++nw}`}class sw{#e;get entries(){return o(this.#e)}set entries(t){g(this.#e,t,!0)}constructor(t=tw){this.#e=z(ce([])),this.cap=t}push(t){const n=this.entries[this.entries.length-1];if(n&&n.kind==="text"&&t.kind==="text"&&n.stream===t.stream){n.chunks.push(...t.chunks);return}const r={...t,id:rw()};this.entries.push(r),this.entries.length>this.cap&&this.entries.splice(0,this.entries.length-this.cap)}clear(){this.entries.length=0}}var iw=C("<pre> </pre>");function aw(e,t){se(t,!0);const n=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,r=X(()=>t.chunks.join("").replace(n,""));var s=iw();let i;var a=p(s,!0);v(s),$(()=>{i=we(s,1,"shell-text svelte-ypr8s",null,i,{stderr:t.stream==="stderr"}),j(a,o(r))}),A(e,s),ie()}var ow=C('<div class="shell-prompt svelte-u0gb59"><span class="shell-prompt-cwd svelte-u0gb59"> </span> <span class="shell-prompt-arrow svelte-u0gb59">❯</span> <span class="shell-prompt-line svelte-u0gb59"> </span></div>');function lw(e,t){var n=ow(),r=p(n),s=p(r,!0);v(r);var i=E(r,4),a=p(i,!0);v(i),v(n),$(()=>{j(s,t.cwd),j(a,t.line)}),A(e,n)}var cw=C("<div> </div>");function uw(e,t){var n=cw();let r;var s=p(n,!0);v(n),$(()=>{r=we(n,1,"shell-status svelte-nfxdpt",null,r,{info:t.level==="info",warn:t.level==="warn",error:t.level==="error"}),j(s,t.text)}),A(e,n)}var dw=C('<div class="shell-rich svelte-1rnhl05"><!></div>');function fw(e,t){var n=dw(),r=p(n);Yr(r,()=>t.component,(s,i)=>{i(s,Xr(()=>t.componentProps))}),v(n),A(e,n)}var vw=C('<div class="shell-scrollback svelte-isy3jt"></div>');function hw(e,t){se(t,!0);let n=z(null);Ce(()=>{t.scrollback.entries.length,o(n)&&(o(n).scrollTop=o(n).scrollHeight)});var r=vw();ue(r,21,()=>t.scrollback.entries,s=>s.id,(s,i)=>{var a=at(),l=he(a);{var c=h=>{aw(h,{get stream(){return o(i).stream},get chunks(){return o(i).chunks}})},u=h=>{lw(h,{get cwd(){return o(i).cwd},get line(){return o(i).line}})},d=h=>{uw(h,{get text(){return o(i).text},get level(){return o(i).level}})},f=h=>{fw(h,{get component(){return o(i).component},get componentProps(){return o(i).props}})};U(l,h=>{o(i).kind==="text"?h(c):o(i).kind==="prompt"?h(u,1):o(i).kind==="status"?h(d,2):o(i).kind==="rich"&&h(f,3)})}A(s,a)}),v(r),ut(r,s=>g(n,s),()=>o(n)),A(e,r),ie()}var pw=C('<div><span class="shell-input-cwd svelte-1dfv2gk"> </span> <span class="shell-input-arrow svelte-1dfv2gk">❯</span> <input type="text" spellcheck="false" autocomplete="off" autocapitalize="off" class="shell-input-field svelte-1dfv2gk"/></div>');function mw(e,t){se(t,!0);let n=z(""),r=z(null),s=z(""),i=z(null);function a(){if(t.locked)return;const k=o(n);k.trim()&&(g(n,""),g(r,null),t.onSubmit(k))}function l(){t.history.length!==0&&(o(r)===null?(g(s,o(n),!0),g(r,t.history.length-1)):o(r)>0&&rr(r,-1),g(n,t.history[o(r)]??"",!0))}function c(){o(r)!==null&&(o(r)<t.history.length-1?(rr(r),g(n,t.history[o(r)],!0)):(g(r,null),g(n,o(s),!0)))}function u(k){if(t.locked){if(k.ctrlKey&&k.key==="c"){k.preventDefault(),t.session.send({t:"signal",sig:"SIGINT"});return}if(k.ctrlKey&&k.key==="d"){k.preventDefault(),t.session.send({t:"signal",sig:"EOF"});return}k.preventDefault();return}k.key==="Enter"?(k.preventDefault(),a()):k.key==="ArrowUp"?(k.preventDefault(),l()):k.key==="ArrowDown"?(k.preventDefault(),c()):k.ctrlKey&&k.key==="c"?(k.preventDefault(),g(n,""),g(r,null)):k.ctrlKey&&k.key==="l"&&(k.preventDefault(),g(n,"clear"),a())}Ce(()=>{!t.locked&&o(i)&&o(i).focus()});var d=pw();let f;var h=p(d),_=p(h,!0);v(h);var S=E(h,4);Se(S),ut(S,k=>g(i,k),()=>o(i)),v(d),$(()=>{f=we(d,1,"shell-input svelte-1dfv2gk",null,f,{locked:t.locked}),j(_,t.cwd),S.disabled=t.locked}),F("keydown",S,u),Me(S,()=>o(n),k=>g(n,k)),A(e,d),ie()}pe(["keydown"]);const fl=[1e3,2e3,5e3,1e4];class gw{#e;get connected(){return o(this.#e)}set connected(t){g(this.#e,t,!0)}#t;get cwd(){return o(this.#t)}set cwd(t){g(this.#t,t,!0)}#n;get env(){return o(this.#n)}set env(t){g(this.#n,t,!0)}#i;get history(){return o(this.#i)}set history(t){g(this.#i,t,!0)}constructor(t){this.url=t,this.ws=null,this.handlers=new Set,this.pendingHistoryLogs=[],this.lastSeq=0,this.backoffIndex=0,this.closed=!1,this.#e=z(!1),this.#t=z(""),this.#n=z(ce({})),this.#i=z(ce([]))}connect(){if(!this.closed){try{this.ws=new WebSocket(this.url)}catch{this.scheduleReconnect();return}this.ws.addEventListener("open",()=>{this.backoffIndex=0,this.connected=!0;const t=this.lastSeq>0?{t:"hello",replayFrom:this.lastSeq}:{t:"hello"};this.sendRaw(t);for(const n of this.pendingHistoryLogs)this.sendRaw(n);this.pendingHistoryLogs=[]}),this.ws.addEventListener("message",t=>{let n;try{n=JSON.parse(t.data)}catch{return}n.t==="event"&&typeof n.event.seq=="number"&&(this.lastSeq=n.event.seq),n.t==="welcome"&&(this.cwd=n.cwd,this.env=n.env,this.lastSeq=n.seq),n.t==="cwd"&&(this.cwd=n.cwd),n.t==="history"&&(this.history=n.lines);for(const r of this.handlers)r(n)}),this.ws.addEventListener("close",()=>{this.connected=!1,this.ws=null,this.scheduleReconnect()}),this.ws.addEventListener("error",()=>{})}}scheduleReconnect(){if(this.closed)return;const t=fl[Math.min(this.backoffIndex,fl.length-1)];this.backoffIndex++,setTimeout(()=>this.connect(),t)}send(t){if(t.t==="history-log"&&!this.connected){this.pendingHistoryLogs.push(t);return}this.sendRaw(t)}sendRaw(t){!this.ws||this.ws.readyState!==WebSocket.OPEN||this.ws.send(JSON.stringify(t))}onMessage(t){return this.handlers.add(t),()=>this.handlers.delete(t)}close(){this.closed=!0,this.ws?.close(),this.ws=null}}class _w{list(){return Ua()}get(t){return nl(t)}resolve(t){const n=t.trim();if(!n)return{kind:"forward",line:t};if(n.startsWith("$ "))return{kind:"forward",line:n.slice(2)};if(n==="$")return{kind:"forward",line:""};const r=n.indexOf(" "),s=r===-1?n:n.slice(0,r),i=r===-1?"":n.slice(r+1),a=nl(s);if(!a)return{kind:"forward",line:t};const l=i.length?i.split(/\s+/):[];return{kind:"local",verb:a,args:l,line:t}}}class yw{constructor(t=""){this.base=t}async list(t){return(await(await this.#e("/api/fs/list",t)).json()).entries}async stat(t){return await(await this.#e("/api/fs/stat",t)).json()}async read(t){return await(await this.#e("/api/fs/read",t)).text()}async#e(t,n){const r=`${this.base}${t}?path=${encodeURIComponent(n)}`,s=await fetch(r,{credentials:"include"});if(!s.ok){let i=`HTTP ${s.status}`;try{const a=await s.json();a.error&&(i=a.error)}catch{}throw new Error(i)}return s}}class bw{#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 ww={id:"dev",label:"Dev",requiresRole:"admin",transport:"ws",autoRelocate:!1},kw={id:"user",label:"User",transport:"none",autoRelocate:!0};function Sw(e){e.register(ww),e.register(kw)}function Td(e){return`sh3.shell.lastMode.${e}`}function xw(e){try{return globalThis.localStorage?.getItem(Td(e))??null}catch{return null}}function Ew(e,t){try{globalThis.localStorage?.setItem(Td(e),t)}catch{}}function Aw(e,t,n){const r=xw(t);if(r){const i=e.get(r);if(i&&(!i.requiresRole||i.requiresRole===n))return i}const s=n==="admin"?"dev":"user";return e.get(s)}function Iw(e){return async function t(n){const r=e.mode();if(e.session.history.push(n),r.transport==="none"&&n.trimStart().startsWith("$ ")){e.scrollback.push({kind:"prompt",cwd:e.cwd(),line:n,ts:Date.now()}),e.scrollback.push({kind:"status",text:"shell: server shell not available in user mode",level:"error",ts:Date.now()});return}const s=e.resolver.resolve(n);if(s.kind==="local"){r.transport==="ws"&&e.session.send({t:"history-log",line:n}),e.scrollback.push({kind:"prompt",cwd:e.cwd(),line:n,ts:Date.now()});try{await s.verb.run({shell:e.shell,scrollback:e.scrollback,session:e.session,cwd:e.cwd(),dispatch:t,fs:e.fs},s.args)}catch(i){e.scrollback.push({kind:"status",text:`shell: verb ${s.verb.name} threw — ${i.message}`,level:"error",ts:Date.now()})}return}if(r.transport==="ws")e.session.send({t:"submit",line:s.line});else{const i=s.line.split(/\s+/)[0]??"";e.scrollback.push({kind:"prompt",cwd:e.cwd(),line:s.line,ts:Date.now()}),e.scrollback.push({kind:"status",text:`unknown verb: ${i}`,level:"error",ts:Date.now()})}}}async function Tw(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 Cw=C('<div class="toolbar svelte-gnowwz"><div class="toolbar-slots svelte-gnowwz"></div></div>');function Rw(e,t){se(t,!0);let n=$t(t,"slotProps",19,()=>({})),r=X(()=>t.registry.list(t.ctx));var s=Cw(),i=p(s);ue(i,21,()=>o(r),a=>a.id,(a,l)=>{const c=X(()=>o(l).component);var u=at(),d=he(u);Yr(d,()=>o(c),(f,h)=>{h(f,Xr(()=>n()[o(l).id]??{}))}),A(a,u)}),v(i),v(s),A(e,s),ie()}class Pw{#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 Dw=C('<button type="button"> </button>'),Mw=C('<div class="mode-bar svelte-1i4cqlj" role="toolbar" aria-label="Shell mode"></div>'),Ow=C('<span class="mode-label svelte-1i4cqlj"> </span>');function Lw(e,t){se(t,!0);let n=X(()=>t.registry.list(t.role));var r=at(),s=he(r);{var i=l=>{var c=Mw();ue(c,21,()=>o(n),u=>u.id,(u,d)=>{var f=Dw();let h;var _=p(f,!0);v(f),$(()=>{h=we(f,1,"mode-btn svelte-1i4cqlj",null,h,{active:o(d).id===t.mode.id}),ke(f,"aria-pressed",o(d).id===t.mode.id),j(_,o(d).label)}),F("click",f,()=>t.onSelect(o(d).id)),A(u,f)}),v(c),A(l,c)},a=l=>{var c=Ow(),u=p(c,!0);v(c),$(()=>j(u,t.mode.label)),A(l,c)};U(s,l=>{t.role==="admin"?l(i):l(a,-1)})}A(e,r),ie()}pe(["click"]);var jw=C('<button class="focus-lock-btn svelte-1q6gbap"> </button>');function Nw(e,t){var n=jw(),r=p(n,!0);v(n),$(()=>{ke(n,"title",t.locked?"Unlock focus":"Lock focus"),j(r,t.locked?"🔒":"🔓")}),F("click",n,function(...s){t.onToggle?.apply(this,s)}),A(e,n)}pe(["click"]);var zw=C('<span class="target-shard svelte-1nn2m6x" title="Target shard"> </span>');function $w(e,t){var n=zw(),r=p(n);v(n),$(()=>j(r,`→ ${t.target??"—"??""}`)),A(e,n)}var qw=C('<div class="shell-terminal svelte-13komre"><!> <!> <!></div>');function Bw(e,t){se(t,!0);const n=new sw,r=new _w,s=new yw,i=new bw;Sw(i);let a=z(ce(Ee(()=>Aw(i,t.userId,t.role))));function l(T){const m=i.get(T);m&&(m.requiresRole&&m.requiresRole!==t.role||(g(a,m,!0),Ew(t.userId,T),m.transport!=="ws"&&n.push({kind:"status",text:"mode switch: reload to take effect for server-shell changes",level:"info",ts:Date.now()})))}const c=Ee(()=>new gw(t.wsUrl)),u=Ee(()=>Iw({mode:()=>o(a),resolver:r,scrollback:n,session:c,shell:t.shell,fs:s,cwd:()=>c.cwd}));let d=z(!1),f=z(!1),h=z(null);const _=new Pw;_.register({id:"mode",order:10,visible:()=>!0,component:Lw}),_.register({id:"focus-lock",order:20,visible:T=>T.mode.id==="user",component:Nw}),_.register({id:"target-shard",order:30,visible:T=>T.mode.id==="user",component:$w});function S(T){if(T.type==="tabs")return T.tabs[T.activeTab]?.viewId??null;if(T.type==="split")for(const m of T.children){const M=S(m);if(M!==null)return M}return T.viewId??null}function k(){try{const T=kt(),m=S(T.docked);if(!m)return null;const M=m.indexOf(":");return M>=0?m.slice(0,M):m}catch{return null}}Ce(()=>{const T=k(),m=o(a).autoRelocate,M=o(f);(async()=>{const R=await Tw({modeAutoRelocate:m,focusLocked:M,focusedShardId:T,currentShardId:"shell"},s);R.kind==="relocate"&&R.path!==void 0&&(c.cwd=R.path),T&&T!=="shell"?g(h,T,!0):T||g(h,null)})()});function x(T){if(T.t!=="event")return;const m=T.event;switch(m.kind){case"prompt":n.push({kind:"prompt",cwd:m.cwd,line:m.line,ts:m.ts}),g(d,!0);break;case"stdout":n.push({kind:"text",stream:"stdout",chunks:[m.data],ts:m.ts});break;case"stderr":n.push({kind:"text",stream:"stderr",chunks:[m.data],ts:m.ts});break;case"exit":(m.signal||m.code!==null&&m.code!==0)&&n.push({kind:"status",text:m.signal?`shell: process exited (${m.signal})`:`shell: process exited (${m.code})`,level:"error",ts:m.ts}),g(d,!1);break;case"status":n.push({kind:"status",text:m.text,level:m.level,ts:m.ts});break}}let w=null;Ta(()=>{w=c.onMessage(x),o(a).transport==="ws"&&c.connect()}),Ca(()=>{w?.(),c.close()});var b=qw(),y=p(b);{let T=X(()=>({mode:o(a),role:t.role})),m=X(()=>({mode:{mode:o(a),role:t.role,registry:i,onSelect:l},"focus-lock":{locked:o(f),onToggle:()=>g(f,!o(f))},"target-shard":{target:o(h)}}));Rw(y,{get registry(){return _},get ctx(){return o(T)},get slotProps(){return o(m)}})}var I=E(y,2);hw(I,{get scrollback(){return n}});var D=E(I,2);mw(D,{get cwd(){return c.cwd},get locked(){return o(d)},get history(){return c.history},get session(){return c},get onSubmit(){return u}}),v(b),A(e,b),ie()}var Vw=C('<tr><td class="svelte-m248jy"><button type="button" class="svelte-m248jy"> </button></td><td class="svelte-m248jy"> </td></tr>'),Uw=C('<div class="shell-rich-help svelte-m248jy"><table class="svelte-m248jy"><thead><tr><th class="svelte-m248jy">Name</th><th class="svelte-m248jy">Summary</th></tr></thead><tbody></tbody></table></div>');function Fw(e,t){se(t,!0);var n=Uw(),r=p(n),s=E(p(r));ue(s,21,()=>t.data.rows,i=>i.name,(i,a)=>{var l=Vw(),c=p(l),u=p(c),d=p(u,!0);v(u),v(c);var f=E(c),h=p(f,!0);v(f),v(l),$(()=>{j(d,o(a).name),j(h,o(a).summary)}),F("click",u,()=>t.data.onClickName(o(a).name)),A(i,l)}),v(s),v(r),v(n),A(e,n),ie()}pe(["click"]);function Hw(){return{name:"help",summary:"List verbs or show detail for one.",async run(e){const t=Ua().map(n=>({name:n.name,summary:n.summary}));e.scrollback.push({kind:"rich",component:Fw,props:{data:{rows:t,onClickName:n=>e.dispatch(n)}},ts:Date.now()})}}}const Kw={name:"clear",summary:"Clear the scrollback (local only — other views are unaffected).",async run(e){e.scrollback.clear()}};var Ww=C('<li class="svelte-o8m437"><button type="button" class="svelte-o8m437"> </button></li>'),Yw=C('<div class="shell-rich-history svelte-o8m437"><ol class="svelte-o8m437"></ol></div>');function Gw(e,t){se(t,!0);var n=Yw(),r=p(n);ue(r,21,()=>t.data.lines,Nn,(s,i)=>{var a=Ww(),l=p(a),c=p(l,!0);v(l),v(a),$(()=>j(c,o(i))),F("click",l,()=>t.data.onClickLine(o(i))),A(s,a)}),v(r),v(n),A(e,n),ie()}pe(["click"]);const Xw={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:Gw,props:{data:{lines:r,onClickLine:s=>e.dispatch(s)}},ts:Date.now()})}};var Jw=C('<tr><td class="svelte-1u5krjz"><button type="button" class="svelte-1u5krjz"> </button></td><td class="svelte-1u5krjz"> </td></tr>'),Zw=C('<div class="shell-rich-apps svelte-1u5krjz"><table class="svelte-1u5krjz"><thead><tr><th class="svelte-1u5krjz">ID</th><th class="svelte-1u5krjz">Label</th></tr></thead><tbody></tbody></table></div>');function Qw(e,t){se(t,!0);var n=Zw(),r=p(n),s=E(p(r));ue(s,21,()=>t.data.apps,i=>i.id,(i,a)=>{var l=Jw(),c=p(l),u=p(c),d=p(u,!0);v(u),v(c);var f=E(c),h=p(f,!0);v(f),v(l),$(()=>{j(d,o(a).id),j(h,o(a).label)}),F("click",u,()=>t.data.onClickApp(o(a).id)),A(i,l)}),v(s),v(r),v(n),A(e,n),ie()}pe(["click"]);var ek=C('<div class="shell-rich-appcard svelte-npcp8i"><h3 class="svelte-npcp8i"> </h3> <p class="svelte-npcp8i"><strong>ID:</strong> </p> <p class="svelte-npcp8i"><strong>Shards:</strong> </p></div>');function tk(e,t){se(t,!0);var n=ek(),r=p(n),s=p(r,!0);v(r);var i=E(r,2),a=E(p(i));v(i);var l=E(i,2),c=E(p(l));v(l),v(n),$(u=>{j(s,t.data.label),j(a,` ${t.data.id??""}`),j(c,` ${u??""}`)},[()=>t.data.shards.join(", ")]),A(e,n),ie()}const nk={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:Qw,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()})}},rk={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:tk,props:{data:{id:t.id,label:t.label,shards:[]}},ts:Date.now()})}};var sk=C('<tr><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td></tr>'),ik=C('<div class="shell-rich-shards svelte-sc3ux4"><table class="svelte-sc3ux4"><thead><tr><th class="svelte-sc3ux4">ID</th><th class="svelte-sc3ux4">Label</th><th class="svelte-sc3ux4">Version</th></tr></thead><tbody></tbody></table></div>');function ak(e,t){se(t,!0);var n=ik(),r=p(n),s=E(p(r));ue(s,21,()=>t.data.shards,i=>i.id,(i,a)=>{var l=sk(),c=p(l),u=p(c,!0);v(c);var d=E(c),f=p(d,!0);v(d);var h=E(d),_=p(h,!0);v(h),v(l),$(()=>{j(u,o(a).id),j(f,o(a).label),j(_,o(a).version)}),A(i,l)}),v(s),v(r),v(n),A(e,n),ie()}const ok={name:"shards",summary:"List active shards.",async run(e){const t=e.shell.listShards();e.scrollback.push({kind:"rich",component:ak,props:{data:{shards:t}},ts:Date.now()})}};var lk=C('<tr><td class="svelte-15elbr1"> </td><td class="svelte-15elbr1"> </td><td class="svelte-15elbr1"> </td><td class="svelte-15elbr1"><button type="button" class="svelte-15elbr1">Close</button></td></tr>'),ck=C('<div class="shell-rich-views svelte-15elbr1"><table class="svelte-15elbr1"><thead><tr><th class="svelte-15elbr1">Slot ID</th><th class="svelte-15elbr1">View ID</th><th class="svelte-15elbr1">Label</th><th class="svelte-15elbr1">Action</th></tr></thead><tbody></tbody></table></div>');function uk(e,t){se(t,!0);var n=ck(),r=p(n),s=E(p(r));ue(s,21,()=>t.data.views,i=>i.slotId,(i,a)=>{var l=lk(),c=p(l),u=p(c,!0);v(c);var d=E(c),f=p(d,!0);v(d);var h=E(d),_=p(h,!0);v(h);var S=E(h),k=p(S);v(S),v(l),$(()=>{j(u,o(a).slotId),j(f,o(a).viewId),j(_,o(a).label)}),F("click",k,()=>t.data.onClose(o(a).slotId)),A(i,l)}),v(s),v(r),v(n),A(e,n),ie()}pe(["click"]);const dk={name:"views",summary:"List views currently mounted. Pass --standalone to list summonable views instead.",async run(e,t){if(t.includes("--standalone")){const r=e.shell.listStandaloneViews();if(r.length===0){e.scrollback.push({kind:"status",text:"shell: no standalone views are currently available.",level:"info",ts:Date.now()});return}e.scrollback.push({kind:"status",text:r.map(s=>` ${s.viewId.padEnd(32)} ${s.label}`).join(`
|
|
8
|
+
`),level:"info",ts:Date.now()});return}const n=e.shell.listViewsInCurrentLayout();e.scrollback.push({kind:"rich",component:uk,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()})}},fk={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()})}},vk={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()})}},hk={name:"dock",summary:"Dock a float back into the current layout by float id. Run with no args to list floats.",async run(e,t){const n=t[0];if(!n){const s=e.shell.listFloats();if(s.length===0){e.scrollback.push({kind:"status",text:"shell: no active floats.",level:"info",ts:Date.now()});return}e.scrollback.push({kind:"status",text:s.map(i=>` ${i.floatId.padEnd(24)} ${i.viewId??"-"} ${i.label}`).join(`
|
|
9
|
+
`),level:"info",ts:Date.now()});return}const r=e.shell.dockFloat(n);r.ok?e.scrollback.push({kind:"status",text:`shell: docked ${n}`,level:"info",ts:Date.now()}):e.scrollback.push({kind:"status",text:`shell: dock failed — ${r.error??"unknown"}`,level:"error",ts:Date.now()})}},pk={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 mk=C('<tr><td class="svelte-1w7onag"> </td><td class="svelte-1w7onag"> </td></tr>'),gk=C('<div class="shell-rich-zones svelte-1w7onag"><table class="svelte-1w7onag"><thead><tr><th class="svelte-1w7onag">Shard ID</th><th class="svelte-1w7onag">Zones</th></tr></thead><tbody></tbody></table></div>');function _k(e,t){se(t,!0);var n=gk(),r=p(n),s=E(p(r));ue(s,21,()=>t.data.rows,i=>i.shardId,(i,a)=>{var l=mk(),c=p(l),u=p(c,!0);v(c);var d=E(c),f=p(d,!0);v(d),v(l),$(h=>{j(u,o(a).shardId),j(f,h)},[()=>o(a).zones.join(", ")]),A(i,l)}),v(s),v(r),v(n),A(e,n),ie()}var yk=C('<div class="shell-rich-zonetree svelte-13iiyr1"><pre class="svelte-13iiyr1"> </pre></div>');function bk(e,t){se(t,!0);var n=yk(),r=p(n),s=p(r,!0);v(r),v(n),$(i=>j(s,i),[()=>JSON.stringify(t.data.value,null,2)]),A(e,n),ie()}const wk={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:_k,props:{data:{rows:n}},ts:Date.now()})}},kk={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:bk,props:{data:{value:s}},ts:Date.now()})}};function Sk(e,t){if(t.startsWith("/"))return xk(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 xk(e){return e.split("/").filter(t=>t&&t!==".").join("/")}const Ek={name:"pwd",summary:"Show the current working directory.",async run(e){const t=e.session.cwd||"",n=t.startsWith("/")?t:`/${t}`;e.scrollback.push({kind:"text",stream:"stdout",chunks:[n+`
|
|
10
|
+
`],ts:Date.now()})}},Ak={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=Sk(r,n);try{if((await e.fs.stat(s)).kind!=="dir"){e.scrollback.push({kind:"status",text:`cd: not a directory: ${n}`,level:"error",ts:Date.now()});return}}catch(i){e.scrollback.push({kind:"status",text:`cd: ${i.message}`,level:"error",ts:Date.now()});return}e.session.cwd=s}},Ik={name:"whoami",summary:"Show the current admin user and session info.",async run(e){const t=e.shell.whoAmI();e.scrollback.push({kind:"text",stream:"stdout",chunks:[`${t.userId}${t.admin?" (admin)":""}
|
|
11
|
+
`],ts:Date.now()})}};var Tk=C('<tr><td class="svelte-1ox8vog"> </td><td class="svelte-1ox8vog"> </td></tr>'),Ck=C('<div class="shell-rich-env svelte-1ox8vog"><table class="svelte-1ox8vog"><thead><tr><th class="svelte-1ox8vog">Key</th><th class="svelte-1ox8vog">Value</th></tr></thead><tbody></tbody></table></div>');function Rk(e,t){se(t,!0);var n=Ck(),r=p(n),s=E(p(r));ue(s,21,()=>Object.entries(t.data.env),([i,a])=>i,(i,a)=>{var l=X(()=>Ol(o(a),2));let c=()=>o(l)[0],u=()=>o(l)[1];var d=Tk(),f=p(d),h=p(f,!0);v(f);var _=E(f),S=p(_,!0);v(_),v(d),$(()=>{j(h,c()),j(S,u())}),A(i,d)}),v(s),v(r),v(n),A(e,n),ie()}const Pk={name:"env",summary:"Show the session environment.",async run(e){const t=e.session.env;e.scrollback.push({kind:"rich",component:Rk,props:{data:{env:t}},ts:Date.now()})}},Dk={name:"ls",summary:"List the current directory.",async run(e){let t;try{t=await e.fs.list(e.session.cwd)}catch(r){e.scrollback.push({kind:"status",text:`ls: ${r.message}`,level:"error",ts:Date.now()});return}const n=t.sort((r,s)=>r.name.localeCompare(s.name)).map(r=>r.kind==="dir"?`${r.name}/`:r.name).join(`
|
|
12
|
+
`);e.scrollback.push({kind:"text",stream:"stdout",chunks:[n||"(empty)"],ts:Date.now()})}},Mk={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 Ok(e){e.registerVerb(Hw()),e.registerVerb(Kw),e.registerVerb(Xw),e.registerVerb(nk),e.registerVerb(rk),e.registerVerb(ok),e.registerVerb(dk),e.registerVerb(fk),e.registerVerb(pk),e.registerVerb(vk),e.registerVerb(hk),e.registerVerb(wk),e.registerVerb(kk),e.registerVerb(Ek),e.registerVerb(Ak),e.registerVerb(Pk),e.registerVerb(Ik),e.registerVerb(Dk),e.registerVerb(Mk)}function Cd(e){return e.type==="tabs"?e.tabs.filter(t=>t.viewId!==null):e.type==="split"?e.children.flatMap(Cd):e.viewId!==null?[{slotId:e.slotId,viewId:e.viewId,label:e.viewId}]:[]}function Lk(e){return{listApps(){return Ja().map(t=>({id:t.id,label:t.label}))},getActiveApp(){const t=dd();return t?{id:t.id,label:t.label}:null},launchApp(t){or(t)},listShards(){return Array.from(Jt.values()).map(t=>({id:t.manifest.id,label:t.manifest.label,version:t.manifest.version}))},listViewsInCurrentLayout(){try{const{root:t}=md();return Cd(t.docked).map(n=>({slotId:n.slotId,viewId:n.viewId??"",label:n.label}))}catch{return[]}},openViewInCurrentLayout(t){try{if(li(t))return{ok:!0};const n=cl().find(r=>r.viewId===t);if(n){const r=`standalone:${t}:${Date.now()}`;return to({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 cl()},popoutSlot(t){try{const n=yd(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 bd(t)?{ok:!0}:{ok:!1,error:`float "${t}" not found or has no dockable content`}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}},locateSlot(t){try{return kd(t)}catch{return null}},listFloats(){return Rt.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 Qa(t),{ok:!0}},listZones(t){return[]},readZone(t,n){return null},whoAmI(){return{userId:si()?.id??"guest",admin:ln()}}}}const jk={manifest:ew,activate(e){if(!e.isAdmin)return;Ok(e);const t=Lk();e.actions.register({id:"shell.terminal.toggle",label:"Open Terminal",scope:["home","app"],defaultShortcut:"²",allowInInputs:!1,run(){li("shell:terminal")||Rt.open("shell:terminal",{title:"Shell"})}});const n={mount(r,s){const i=typeof location<"u"&&location.protocol==="https:"?"wss":"ws",a=typeof location<"u"?location.host:"localhost",l=`${i}://${a}/api/shell/session`,u=si()?.id??"guest",d=ln()?"admin":"user",f=ze(Bw,{target:r,props:{shell:t,wsUrl:l,userId:u,role:d}});return{unmount(){Fe(f)},closable:!0}}};e.registerView("shell:terminal",n)},autostart(){}},vl=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 Ri(e,t){const n=Object.keys(t),r=n.filter(a=>!vl.has(a)),s=n.filter(a=>vl.has(a)),i=[`const __m__ = globalThis.${e};`];r.length>0&&i.push(`export const { ${r.join(", ")} } = __m__;`);for(const a of s)i.push(`const __r_${a}__ = __m__['${a}']; export { __r_${a}__ as ${a} };`);return i.push("export default __m__.default;"),URL.createObjectURL(new Blob([i.join(`
|
|
13
|
+
`)],{type:"application/javascript"}))}const io=globalThis;io.__sh3__=Id;io.__sh3_svelte__=Yc;io.__sh3_svelte_internal_client__=uu;const ao={"sh3-core":Ri("__sh3__",Id),svelte:Ri("__sh3_svelte__",Yc),"svelte/internal/client":Ri("__sh3_svelte_internal_client__",uu)};ao["svelte/internal/disclose-version"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));ao["sh3-core/tokens.css"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));const Nk=/(?:from|import)\s*(['"])(sh3-core(?:\/[^'"]*)?|svelte(?:\/[^'"]*)?)\1/g;function zk(e){return e.replace(Nk,(t,n,r)=>{const s=ao[r];return s?`${t.startsWith("from")?"from":"import"} '${s}'`:t})}async function Zr(e){const t=new TextDecoder().decode(e),n=zk(t),r=new Blob([n],{type:"application/javascript"}),s=URL.createObjectURL(r);try{const i=await import(s),a={shards:[],apps:[]};for(const l of Object.values(i)){if(!l||typeof l!="object"||!("manifest"in l))continue;const c=l;$k(c)?a.shards.push(c):qk(c)&&a.apps.push(c)}if(a.shards.length===0&&a.apps.length===0)throw new Error('Bundle has no exports with a "manifest" property — expected at least one shard or app');return a}finally{URL.revokeObjectURL(s)}}function $k(e){return"activate"in e&&typeof e.activate=="function"&&Array.isArray(e.manifest.views)}function qk(e){return"initialLayout"in e&&Array.isArray(e.manifest.requiredShards)}const Bk="sh3-packages",Vk=1,zr="bundles",lr="meta";function Qr(){return new Promise((e,t)=>{const n=indexedDB.open(Bk,Vk);n.onupgradeneeded=()=>{const r=n.result;r.objectStoreNames.contains(zr)||r.createObjectStore(zr),r.objectStoreNames.contains(lr)||r.createObjectStore(lr)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}function $n(e,t,n,r){return new Promise((s,i)=>{const l=e.transaction(t,n).objectStore(t),c=r(l);c.onsuccess=()=>s(c.result),c.onerror=()=>i(c.error)})}async function Rd(e,t,n){const r=await Qr();await $n(r,zr,"readwrite",s=>s.put(t,e)),await $n(r,lr,"readwrite",s=>s.put(n,e)),r.close()}async function Pd(e){const t=await Qr(),n=await $n(t,zr,"readonly",r=>r.get(e));return t.close(),n??null}async function Uk(e){const t=await Qr(),n=await $n(t,lr,"readonly",r=>r.get(e));return t.close(),n??null}async function Dd(){const e=await Qr(),t=await $n(e,lr,"readonly",n=>n.getAll());return e.close(),t??[]}async function Fk(e){const t=await Qr();await $n(t,zr,"readwrite",n=>n.delete(e)),await $n(t,lr,"readwrite",n=>n.delete(e)),t.close()}function oo(e,t){for(const n of e.shards)n.manifest={...n.manifest,version:t.version},Ga(n);for(const n of e.apps)n.manifest={...n.manifest,version:t.version},Xa(n)}const Hk={"state:manage":{title:"Manage shell state zones",description:"Read and write state zones belonging to other shards."},"documents:browse":{title:"Browse tenant documents",description:"Observe all documents stored by the current tenant."},"documents:read":{title:"Read tenant documents",description:"Read the content of any document in the current tenant, across all shards. Required for backup connectors that need to pull document bodies (not just metadata) out of other shards."},"documents:write":{title:"Write tenant documents",description:"Create and overwrite documents in any shard's namespace within the current tenant. Required for restore-class connectors that re-import documents back into their owning shards."},"documents:sync":{title:"Sync documents with peers",description:"Participate in cross-peer document synchronization."},"sync:peer":{title:"Act as a sync peer",description:"Exchange document updates with remote peers."},"sync:policy":{title:"Define sync policy",description:"Configure which documents sync and with whom."},"keys:mint":{title:"Mint API keys",description:"Issue long-lived access tokens for this shell."}};function Pi(e){return Hk[e]??{title:e,description:"Unknown permission."}}function lo(e){const t=new Set;for(const n of e.shards)for(const r of n.manifest.permissions??[])t.add(r);for(const n of e.apps)for(const r of n.manifest.permissions??[])t.add(r);return[...t]}async function co(e,t,n){if(!t.integrity)return{success:!1,hotLoaded:!1,error:"Missing integrity hash — refusing to install unverified bundle"};try{await no(e,t.integrity)}catch(a){return{success:!1,hotLoaded:!1,error:`Integrity check failed: ${a instanceof Error?a.message:String(a)}`}}let r;if(n?.loaded)r=n.loaded;else try{r=await Zr(e)}catch(a){return{success:!1,hotLoaded:!1,error:`Failed to load bundle: ${a instanceof Error?a.message:String(a)}`}}if(t.type==="shard"&&r.shards.length===0)return{success:!1,hotLoaded:!1,error:`Package "${t.id}" declared type "shard" but bundle contains no valid shard`};if(t.type==="app"&&r.apps.length===0)return{success:!1,hotLoaded:!1,error:`Package "${t.id}" declared type "app" but bundle contains no valid app`};const s={id:t.id,type:t.type,version:t.version,sourceRegistry:t.sourceRegistry,contractVersion:t.contractVersion,installedAt:new Date().toISOString(),permissions:lo(r)};try{await Rd(t.id,e,s)}catch(a){return{success:!1,hotLoaded:!1,error:`Failed to persist package: ${a instanceof Error?a.message:String(a)}`}}if(t.type==="shard"||t.type==="combo")try{ai(t.id)}catch{}(t.type==="app"||t.type==="combo")&&Za(t.id);let i=!0;try{oo(r,{version:t.version,sourceRegistry:t.sourceRegistry,contractVersion:t.contractVersion})}catch(a){console.warn(`[sh3] Package "${t.id}" installed but registration failed (will retry on next boot):`,a instanceof Error?a.message:a),i=!1}return{success:!0,package:s,hotLoaded:i}}async function Md(e){try{ai(e)}catch{}Za(e),await Fk(e)}async function Kk(){return Dd()}async function Wk(){let e;try{e=await Dd()}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 Pd(t.id);if(!n){console.warn(`[sh3] No bundle found for installed package "${t.id}", skipping`);continue}const r=await Zr(n);oo(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 hl={version:1};var Yk=C('<span class="perm-modal-author svelte-1ipp1r6"> </span>'),Gk=C('<p class="perm-modal-empty svelte-1ipp1r6">This package requires no special permissions.</p>'),Xk=C('<li class="perm-modal-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6"> </div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),Jk=C('<p class="perm-modal-intro svelte-1ipp1r6">This package requests the following permissions:</p> <ul class="perm-modal-list svelte-1ipp1r6"></ul>',1),Zk=C('<li class="perm-modal-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6"> </div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),Qk=C('<p class="perm-modal-intro svelte-1ipp1r6">New permissions in this update:</p> <ul class="perm-modal-list perm-modal-added svelte-1ipp1r6"></ul>',1),e1=C('<li class="perm-modal-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6"> </div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),t1=C('<p class="perm-modal-intro svelte-1ipp1r6">Permissions no longer requested:</p> <ul class="perm-modal-list perm-modal-removed svelte-1ipp1r6"></ul>',1),n1=C("<!> <!>",1),r1=C('<div class="perm-modal-backdrop svelte-1ipp1r6" role="dialog" aria-modal="true" tabindex="-1"><div class="perm-modal-panel svelte-1ipp1r6" role="document"><header class="perm-modal-header svelte-1ipp1r6"><h3 class="svelte-1ipp1r6"> </h3> <div class="perm-modal-subtitle svelte-1ipp1r6"><!> <!></div></header> <div class="perm-modal-body svelte-1ipp1r6"><!></div> <footer class="perm-modal-footer svelte-1ipp1r6"><button class="perm-modal-cancel svelte-1ipp1r6">Cancel</button> <button class="perm-modal-confirm svelte-1ipp1r6"> </button></footer></div></div>');function aa(e,t){se(t,!0);const n=$t(t,"permissions",19,()=>[]),r=$t(t,"added",19,()=>[]),s=$t(t,"removed",19,()=>[]),i=X(()=>t.mode==="install"?"Install":"Update");var a=r1(),l=p(a),c=p(l),u=p(c),d=p(u);v(u);var f=E(u,2),h=p(f);{var _=R=>{var O=zt();$(()=>j(O,`${t.fromVersion??""} → ${t.pkg.version??""}`)),A(R,O)},S=R=>{var O=zt();$(()=>j(O,`v${t.pkg.version??""}`)),A(R,O)};U(h,R=>{t.mode==="update"&&t.fromVersion?R(_):R(S,-1)})}var k=E(h,2);{var x=R=>{var O=Yk(),P=p(O);v(O),$(()=>j(P,`by ${t.pkg.author??""}`)),A(R,O)};U(k,R=>{t.pkg.author&&R(x)})}v(f),v(c);var w=E(c,2),b=p(w);{var y=R=>{var O=at(),P=he(O);{var L=N=>{var B=Gk();A(N,B)},q=N=>{var B=Jk(),Y=E(he(B),2);ue(Y,20,n,G=>G,(G,Q)=>{const J=X(()=>Pi(Q));var te=Xk(),ee=p(te),Z=p(ee,!0);v(ee);var de=E(ee,2),fe=p(de,!0);v(de),v(te),$(()=>{j(Z,o(J).title),j(fe,o(J).description)}),A(G,te)}),v(Y),A(N,B)};U(P,N=>{n().length===0?N(L):N(q,-1)})}A(R,O)},I=R=>{var O=n1(),P=he(O);{var L=B=>{var Y=Qk(),G=E(he(Y),2);ue(G,20,r,Q=>Q,(Q,J)=>{const te=X(()=>Pi(J));var ee=Zk(),Z=p(ee),de=p(Z,!0);v(Z);var fe=E(Z,2),K=p(fe,!0);v(fe),v(ee),$(()=>{j(de,o(te).title),j(K,o(te).description)}),A(Q,ee)}),v(G),A(B,Y)};U(P,B=>{r().length>0&&B(L)})}var q=E(P,2);{var N=B=>{var Y=t1(),G=E(he(Y),2);ue(G,20,s,Q=>Q,(Q,J)=>{const te=X(()=>Pi(J));var ee=e1(),Z=p(ee),de=p(Z,!0);v(Z);var fe=E(Z,2),K=p(fe,!0);v(fe),v(ee),$(()=>{j(de,o(te).title),j(K,o(te).description)}),A(Q,ee)}),v(G),A(B,Y)};U(q,B=>{s().length>0&&B(N)})}A(R,O)};U(b,R=>{t.mode==="install"?R(y):R(I,-1)})}v(w);var D=E(w,2),T=p(D),m=E(T,2),M=p(m,!0);v(m),v(D),v(l),v(a),$(()=>{ke(a,"aria-label",`${o(i)??""} ${t.pkg.label??""}`),j(d,`${o(i)??""} ${t.pkg.label??""}`),j(M,o(i))}),F("click",a,function(...R){t.onCancel?.apply(this,R)}),F("keydown",a,R=>{R.key==="Escape"&&t.onCancel()}),F("click",l,R=>R.stopPropagation()),F("click",T,function(...R){t.onCancel?.apply(this,R)}),F("click",m,function(...R){t.onConfirm?.apply(this,R)}),A(e,a),ie()}pe(["click","keydown"]);var s1=C('<div class="store-registry-entry svelte-1aafzt0"><span class="store-registry-url svelte-1aafzt0"> </span> <button class="store-registry-remove svelte-1aafzt0">Remove</button></div>'),i1=C('<div class="store-registries svelte-1aafzt0"></div>'),a1=C('<form class="store-add-registry svelte-1aafzt0"><input class="store-registry-input svelte-1aafzt0" type="url" placeholder="Registry URL (e.g. https://sh3.example.com/registry.json)"/> <button type="submit" class="store-add-btn svelte-1aafzt0">Add</button></form>'),o1=C('<div class="store-error svelte-1aafzt0"> </div>'),l1=C('<div class="store-error svelte-1aafzt0"> </div>'),c1=C('<img alt="" class="store-icon-img svelte-1aafzt0"/>'),u1=C('<span class="store-icon-placeholder svelte-1aafzt0"> </span>'),d1=C('<div class="store-card-warning svelte-1aafzt0"> </div>'),f1=C('<button class="store-update-btn svelte-1aafzt0"> </button>'),v1=C('<span class="store-installed-label svelte-1aafzt0">Installed</span>'),h1=C('<span class="store-card-missing svelte-1aafzt0"> </span>'),p1=C('<div class="store-install-wrap svelte-1aafzt0"><button class="store-install-btn svelte-1aafzt0"> </button> <!></div>'),m1=C('<div class="store-card svelte-1aafzt0"><div class="store-card-header svelte-1aafzt0"><div class="store-card-icon svelte-1aafzt0"><!></div> <div class="store-card-title svelte-1aafzt0"><span class="store-card-label svelte-1aafzt0"> </span> <span> </span> <span class="store-card-version svelte-1aafzt0"> </span></div></div> <p class="store-card-desc svelte-1aafzt0"> </p> <div class="store-card-author svelte-1aafzt0"> </div> <!> <div class="store-card-actions svelte-1aafzt0"><!></div></div>'),g1=C("No packages found. <!>",1),_1=C('<div class="store-empty svelte-1aafzt0"><!></div>'),y1=C('<div class="store-view svelte-1aafzt0"><header class="store-header svelte-1aafzt0"><h2 class="svelte-1aafzt0">Package Store</h2> <div class="store-controls svelte-1aafzt0"><input class="store-search svelte-1aafzt0" type="text" placeholder="Search packages..."/> <select class="store-filter svelte-1aafzt0"><option>All</option><option>Shards</option><option>Apps</option></select> <button class="store-refresh svelte-1aafzt0"> </button></div></header> <!> <!> <!> <!> <div class="store-grid svelte-1aafzt0"></div> <!></div> <!> <!>',1);function b1(e,t){se(t,!0);let n=z(""),r=z("all"),s=z(ce(new Set)),i=z(ce(new Set)),a=z(null),l=z(""),c=z(null),u=z(null);const d=gn;async function f(){const V=o(l).trim();if(V&&!d.env.registries.includes(V))try{await d.addRegistry(V),g(l,""),d.refreshCatalog(),d.refreshInstalled()}catch(H){g(a,H instanceof Error?H.message:String(H),!0)}}async function h(V){try{await d.removeRegistry(V),d.refreshCatalog()}catch(H){g(a,H instanceof Error?H.message:String(H),!0)}}const _=X(()=>{const V=o(n).toLowerCase().trim();return d.state.ephemeral.catalog.filter(H=>o(r)!=="all"&&H.entry.type!==o(r)?!1:V?H.entry.id.toLowerCase().includes(V)||H.entry.label.toLowerCase().includes(V)||H.entry.description.toLowerCase().includes(V):!0)});function S(V){return d.state.ephemeral.installed.some(H=>H.id===V)}function k(V){return String(V.latest.contractVersion)!==String(hl.version)}function x(V){return V in d.state.ephemeral.updatable}function w(V){return d.state.ephemeral.installed.find(H=>H.id===V)?.version??""}function b(V,H){const be=V.latest.requires?.map(ge=>ge.id)??[];if(be.length===0)return[];const Pe=new Set(Ad);for(const ge of H)(ge.type==="shard"||ge.type==="combo")&&Pe.add(ge.id);return be.filter(ge=>!Pe.has(ge))}async function y(V){if(!o(i).has(V)){g(i,new Set([...o(i),V]),!0),g(a,null);try{await d.updatePackage(V,(H,be)=>new Promise(Pe=>{const ge=d.state.ephemeral.updatable[V],Ne=d.state.ephemeral.installed.find(Ye=>Ye.id===V);if(!ge||!Ne){Pe(!0);return}g(u,{pkg:ge,fromVersion:Ne.version,added:H,removed:be,resolve:Pe},!0)}))}catch(H){g(a,H instanceof Error?H.message:String(H),!0)}finally{const H=new Set(o(i));H.delete(V),g(i,H,!0)}}}function I(){const V=o(u);V&&(g(u,null),V.resolve(!0))}function D(){const V=o(u);V&&(g(u,null),V.resolve(!1))}async function T(V){const H=V.entry.id;if(!o(s).has(H)){g(s,new Set([...o(s),H]),!0),g(a,null);try{const be=await ui(V.latest,V.sourceRegistry),Pe=di(V,V.latest),ge=await Zr(be),Ne=lo(ge);let Ye;V.latest.serverBundleUrl&&(Ye=await ro(V.latest,V.sourceRegistry)),g(c,{pkg:V,permissions:Ne,loaded:ge,bundle:be,meta:Pe,serverBundle:Ye},!0)}catch(be){g(a,be instanceof Error?be.message:String(be),!0);const Pe=new Set(o(s));Pe.delete(H),g(s,Pe,!0)}}}async function m(){const V=o(c);if(!V)return;g(c,null);const{pkg:H,loaded:be,bundle:Pe,meta:ge,serverBundle:Ne}=V,Ye=H.entry.id;try{const Be={id:ge.id,type:ge.type,label:H.entry.label,version:ge.version,contractVersion:ge.contractVersion,sourceRegistry:ge.sourceRegistry,requiredShards:H.latest.requires?.map(St=>St.id)??[],installedAt:new Date().toISOString()},cn=await Wa(Be,Pe,Ne);if(!cn.ok){g(a,cn.error??"Server install failed",!0);return}const un=await co(Pe,ge,{loaded:be});un.success||console.warn(`[sh3-store] Server install ok but local hot-load failed: ${un.error}`),await d.refreshInstalled()}catch(Be){g(a,Be instanceof Error?Be.message:String(Be),!0)}finally{const Be=new Set(o(s));Be.delete(Ye),g(s,Be,!0)}}function M(){if(!o(c))return;const V=o(c).pkg.entry.id;g(c,null);const H=new Set(o(s));H.delete(V),g(s,H,!0)}function R(){d.refreshCatalog(),d.refreshInstalled()}var O=y1(),P=he(O),L=p(P),q=E(p(L),2),N=p(q);Se(N);var B=E(N,2),Y=p(B);Y.value=Y.__value="all";var G=E(Y);G.value=G.__value="shard";var Q=E(G);Q.value=Q.__value="app",v(B);var J=E(B,2),te=p(J,!0);v(J),v(q),v(L);var ee=E(L,2);{var Z=V=>{var H=i1();ue(H,21,()=>d.env.registries,Nn,(be,Pe)=>{var ge=s1(),Ne=p(ge),Ye=p(Ne,!0);v(Ne);var Be=E(Ne,2);v(ge),$(()=>j(Ye,o(Pe))),F("click",Be,()=>h(o(Pe))),A(be,ge)}),v(H),A(V,H)};U(ee,V=>{d.isAdmin&&d.env.registries.length>0&&V(Z)})}var de=E(ee,2);{var fe=V=>{var H=a1(),be=p(H);Se(be);var Pe=E(be,2);v(H),$(ge=>Pe.disabled=ge,[()=>!o(l).trim()]),Je("submit",H,ge=>{ge.preventDefault(),f()}),Me(be,()=>o(l),ge=>g(l,ge)),A(V,H)};U(de,V=>{d.isAdmin&&V(fe)})}var K=E(de,2);{var ae=V=>{var H=o1(),be=p(H,!0);v(H),$(()=>j(be,d.state.ephemeral.error)),A(V,H)};U(K,V=>{d.state.ephemeral.error&&V(ae)})}var me=E(K,2);{var Ke=V=>{var H=l1(),be=p(H,!0);v(H),$(()=>j(be,o(a))),A(V,H)};U(me,V=>{o(a)&&V(Ke)})}var Ae=E(me,2);ue(Ae,21,()=>o(_),V=>V.entry.id,(V,H)=>{const be=X(()=>S(o(H).entry.id)),Pe=X(()=>k(o(H))),ge=X(()=>o(s).has(o(H).entry.id)),Ne=X(()=>x(o(H).entry.id)),Ye=X(()=>o(i).has(o(H).entry.id)),Be=X(()=>b(o(H),d.state.ephemeral.installed));var cn=m1(),un=p(cn),St=p(un),gr=p(St);{var Fd=Le=>{var De=c1();$(()=>ke(De,"src",o(H).entry.icon)),A(Le,De)},Hd=Le=>{var De=u1(),xt=p(De,!0);v(De),$(()=>j(xt,o(H).entry.type==="shard"?"S":"A")),A(Le,De)};U(gr,Le=>{o(H).entry.icon?Le(Fd):Le(Hd,-1)})}v(St);var ho=E(St,2),vi=p(ho),Kd=p(vi,!0);v(vi);var ns=E(vi,2);let po;var Wd=p(ns,!0);v(ns);var mo=E(ns,2),Yd=p(mo,!0);v(mo),v(ho),v(un);var hi=E(un,2),Gd=p(hi,!0);v(hi);var pi=E(hi,2),Xd=p(pi,!0);v(pi);var go=E(pi,2);{var Jd=Le=>{var De=d1(),xt=p(De);v(De),$(()=>j(xt,`Contract mismatch: package targets v${o(H).latest.contractVersion??""}, running v${hl.version}`)),A(Le,De)};U(go,Le=>{o(Pe)&&Le(Jd)})}var _o=E(go,2),Zd=p(_o);{var Qd=Le=>{var De=f1(),xt=p(De,!0);v(De),$(mi=>{De.disabled=o(Ye),j(xt,mi)},[()=>o(Ye)?"Updating...":`Update ${w(o(H).entry.id)} -> ${o(H).latest.version}`]),F("click",De,()=>y(o(H).entry.id)),A(Le,De)},ef=Le=>{var De=v1();A(Le,De)},tf=Le=>{var De=p1(),xt=p(De),mi=p(xt,!0);v(xt);var nf=E(xt,2);{var rf=_r=>{var gi=h1(),sf=p(gi);v(gi),$(af=>j(sf,`requires: ${af??""}`),[()=>o(Be).join(", ")]),A(_r,gi)};U(nf,_r=>{o(Be).length>0&&_r(rf)})}v(De),$(_r=>{xt.disabled=o(ge)||o(Be).length>0,ke(xt,"title",_r),j(mi,o(ge)?"Installing...":"Install")},[()=>o(Be).length>0?`Missing required shards: ${o(Be).join(", ")}`:void 0]),F("click",xt,()=>T(o(H))),A(Le,De)};U(Zd,Le=>{o(be)&&o(Ne)?Le(Qd):o(be)?Le(ef,1):Le(tf,-1)})}v(_o),v(cn),$(()=>{j(Kd,o(H).entry.label),po=we(ns,1,"store-card-badge svelte-1aafzt0",null,po,{"badge-shard":o(H).entry.type==="shard","badge-app":o(H).entry.type==="app"}),j(Wd,o(H).entry.type),j(Yd,o(H).latest.version),j(Gd,o(H).entry.description),j(Xd,o(H).entry.author.name)}),A(V,cn)}),v(Ae);var rt=E(Ae,2);{var We=V=>{var H=_1(),be=p(H);{var Pe=Ne=>{var Ye=g1(),Be=E(he(Ye));{var cn=St=>{var gr=zt("Add a registry URL above to get started.");A(St,gr)},un=St=>{var gr=zt("No registries configured.");A(St,gr)};U(Be,St=>{d.isAdmin?St(cn):St(un,-1)})}A(Ne,Ye)},ge=Ne=>{var Ye=zt("No packages match the current filter.");A(Ne,Ye)};U(be,Ne=>{d.env.registries.length===0?Ne(Pe):Ne(ge,-1)})}v(H),A(V,H)};U(rt,V=>{!d.state.ephemeral.loading&&o(_).length===0&&V(We)})}v(P);var es=E(P,2);{var kn=V=>{{let H=X(()=>({label:o(c).pkg.entry.label,version:o(c).pkg.latest.version,author:o(c).pkg.entry.author.name}));aa(V,{mode:"install",get pkg(){return o(H)},get permissions(){return o(c).permissions},onConfirm:m,onCancel:M})}};U(es,V=>{o(c)&&V(kn)})}var fi=E(es,2);{var ts=V=>{{let H=X(()=>({label:o(u).pkg.entry.label,version:o(u).pkg.latest.version,author:o(u).pkg.entry.author.name}));aa(V,{mode:"update",get pkg(){return o(H)},get fromVersion(){return o(u).fromVersion},get added(){return o(u).added},get removed(){return o(u).removed},onConfirm:I,onCancel:D})}};U(fi,V=>{o(u)&&V(ts)})}$(()=>{J.disabled=d.state.ephemeral.loading,j(te,d.state.ephemeral.loading?"Loading...":"Refresh")}),Me(N,()=>o(n),V=>g(n,V)),Mr(B,()=>o(r),V=>g(r,V)),F("click",J,R),A(e,O),ie()}pe(["click"]);var w1=C('<div class="installed-error svelte-1hqclkp"> </div>'),k1=C('<div class="installed-empty svelte-1hqclkp">No packages installed.</div>'),S1=C('<button class="installed-update-btn svelte-1hqclkp"> </button>'),x1=C('<li class="installed-item svelte-1hqclkp"><div class="installed-item-main svelte-1hqclkp"><span class="installed-item-id svelte-1hqclkp"> </span> <span> </span> <span class="installed-item-version svelte-1hqclkp"> </span></div> <div class="installed-item-meta svelte-1hqclkp"><span> </span> <span> </span> <span> </span></div> <div class="installed-item-actions svelte-1hqclkp"><!> <button class="installed-uninstall-btn svelte-1hqclkp"> </button></div></li>'),E1=C('<ul class="installed-list svelte-1hqclkp"></ul>'),A1=C('<div class="installed-view svelte-1hqclkp"><header class="installed-header svelte-1hqclkp"><h2 class="svelte-1hqclkp">Installed Packages</h2> <button>Refresh</button></header> <!> <!> <!></div>');function I1(e,t){se(t,!0);const n=gn;let r=z(ce(new Set)),s=z(ce(new Set)),i=z(null),a=z(null);async function l(m){if(!o(r).has(m)){g(r,new Set([...o(r),m]),!0);try{await ed(m),await Md(m),await n.refreshInstalled()}catch(M){console.warn("[sh3-store] Uninstall failed:",M instanceof Error?M.message:M)}finally{const M=new Set(o(r));M.delete(m),g(r,M,!0)}}}async function c(m){if(!o(s).has(m)){g(s,new Set([...o(s),m]),!0),g(i,null);try{await n.updatePackage(m,(M,R)=>new Promise(O=>{const P=n.state.ephemeral.installed.find(q=>q.id===m),L=n.state.ephemeral.updatable[m];if(!P||!L){O(!0);return}g(a,{pkg:P,toVersion:L.latest.version,added:M,removed:R,resolve:O},!0)}))}catch(M){g(i,M instanceof Error?M.message:String(M),!0)}finally{const M=new Set(o(s));M.delete(m),g(s,M,!0)}}}function u(){const m=o(a);m&&(g(a,null),m.resolve(!0))}function d(){const m=o(a);m&&(g(a,null),m.resolve(!1))}function f(){n.refreshInstalled()}function h(m){try{return new Date(m).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch{return m}}var _=A1(),S=p(_),k=E(p(S),2);v(S);var x=E(S,2);{var w=m=>{var M=w1(),R=p(M,!0);v(M),$(()=>j(R,o(i))),A(m,M)};U(x,m=>{o(i)&&m(w)})}var b=E(x,2);{var y=m=>{var M=k1();A(m,M)},I=m=>{var M=E1();ue(M,21,()=>n.state.ephemeral.installed,R=>R.id,(R,O)=>{const P=X(()=>o(r).has(o(O).id));var L=x1(),q=p(L),N=p(q),B=p(N,!0);v(N);var Y=E(N,2);let G;var Q=p(Y,!0);v(Y);var J=E(Y,2),te=p(J,!0);v(J),v(q);var ee=E(q,2),Z=p(ee),de=p(Z);v(Z);var fe=E(Z,2),K=p(fe);v(fe);var ae=E(fe,2),me=p(ae);v(ae),v(ee);var Ke=E(ee,2),Ae=p(Ke);{var rt=kn=>{const fi=X(()=>n.state.ephemeral.updatable[o(O).id]),ts=X(()=>o(s).has(o(O).id));var V=S1(),H=p(V,!0);v(V),$(()=>{V.disabled=o(ts)||o(P),j(H,o(ts)?"Updating...":`Update -> ${o(fi).latest.version}`)}),F("click",V,()=>c(o(O).id)),A(kn,V)};U(Ae,kn=>{o(O).id in n.state.ephemeral.updatable&&kn(rt)})}var We=E(Ae,2),es=p(We,!0);v(We),v(Ke),v(L),$(kn=>{j(B,o(O).id),G=we(Y,1,"installed-item-badge svelte-1hqclkp",null,G,{"badge-shard":o(O).type==="shard","badge-app":o(O).type==="app"}),j(Q,o(O).type),j(te,o(O).version),j(de,`Contract: v${o(O).contractVersion??""}`),j(K,`Source: ${o(O).sourceRegistry??""}`),j(me,`Installed: ${kn??""}`),We.disabled=o(P),j(es,o(P)?"Removing...":"Uninstall")},[()=>h(o(O).installedAt)]),F("click",We,()=>l(o(O).id)),A(R,L)}),v(M),A(m,M)};U(b,m=>{n.state.ephemeral.installed.length===0?m(y):m(I,-1)})}var D=E(b,2);{var T=m=>{{let M=X(()=>({label:o(a).pkg.id,version:o(a).toVersion}));aa(m,{mode:"update",get pkg(){return o(M)},get fromVersion(){return o(a).pkg.version},get added(){return o(a).added},get removed(){return o(a).removed},onConfirm:u,onCancel:d})}};U(D,m=>{o(a)&&m(T)})}v(_),F("click",k,f),A(e,_),ie()}pe(["click"]);function Od(e){return gn.state.ephemeral.catalog.find(t=>t.entry.id===e)}function uo(e){return gn.state.ephemeral.installed.find(t=>t.id===e)}const T1={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=uo(n);if(r){e.scrollback.push({kind:"status",text:`${n} is already installed (v${r.version})`,level:"warn",ts:Date.now()});return}const s=Od(n);if(!s){e.scrollback.push({kind:"status",text:`package "${n}" not found in catalog — try refreshing the store`,level:"error",ts:Date.now()});return}e.scrollback.push({kind:"status",text:`installing ${n} v${s.latest.version}...`,level:"info",ts:Date.now()});try{const i=await ui(s.latest,s.sourceRegistry),a=di(s,s.latest);let l;s.latest.serverBundleUrl&&(l=await ro(s.latest,s.sourceRegistry));const c={id:a.id,type:a.type,label:s.entry.label,version:a.version,contractVersion:a.contractVersion,sourceRegistry:a.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:s.latest.requires?.map(f=>f.id)??[]},u=await Wa(c,i,l);if(!u.ok){let f=`install failed: ${u.error??"server error"}`;u.code==="missing-shards"&&u.missing&&(f=`install failed: missing required shard(s): ${u.missing.map(_=>_.id).join(", ")}`),e.scrollback.push({kind:"status",text:f,level:"error",ts:Date.now()});return}const d=await co(i,a);d.success||e.scrollback.push({kind:"status",text:`server ok but local hot-load failed: ${d.error}`,level:"warn",ts:Date.now()}),await gn.refreshInstalled(),e.scrollback.push({kind:"status",text:`installed ${n} v${s.latest.version}`,level:"info",ts:Date.now()})}catch(i){e.scrollback.push({kind:"status",text:`install failed: ${i instanceof Error?i.message:String(i)}`,level:"error",ts:Date.now()})}}},C1={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(!uo(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 ed(n),await Md(n),await gn.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()})}}},R1={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=uo(n),s=Od(n);if(!r&&!s){e.scrollback.push({kind:"status",text:`package "${n}" not found in catalog or installed list`,level:"error",ts:Date.now()});return}const i=[];i.push(`--- ${n} ---`),r?(i.push(" installed: yes"),i.push(` version: ${r.version}`),i.push(` type: ${r.type}`),i.push(` contract: v${r.contractVersion}`),i.push(` source: ${r.sourceRegistry}`),r.installedAt&&i.push(` installed: ${r.installedAt}`)):i.push(" installed: no"),s?(i.push(" catalog: yes"),i.push(` latest: ${s.latest.version}`),i.push(` label: ${s.entry.label}`),i.push(` author: ${s.entry.author.name}`),i.push(` desc: ${s.entry.description}`)):i.push(" catalog: no (not in any configured registry)"),e.scrollback.push({kind:"text",stream:"stdout",chunks:[i.join(`
|
|
14
|
+
`)+`
|
|
15
|
+
`],ts:Date.now()})}};function P1(e,t){const n=e.split(".").map(i=>parseInt(i,10)||0),r=t.split(".").map(i=>parseInt(i,10)||0),s=Math.max(n.length,r.length);for(let i=0;i<s;i++){const a=n[i]??0,l=r[i]??0;if(a>l)return!0;if(a<l)return!1}return!1}function D1(e,t){const n=new Set(e),r=new Set(t);return{added:t.filter(s=>!n.has(s)),removed:e.filter(s=>!r.has(s))}}let gn;const M1={manifest:{id:"sh3-store",label:"Package Store",version:wn,views:[{id:"sh3-store:browse",label:"Store"},{id:"sh3-store:installed",label:"Installed"}]},activate(e){const t=e.env({registries:[]}),n=e.state({ephemeral:{catalog:[],installed:[],updatable:{},loading:!1,error:null}});function r(){const f={};for(const h of n.ephemeral.installed){const _=n.ephemeral.catalog.find(S=>S.entry.id===h.id);_&&P1(_.latest.version,h.version)&&(f[h.id]=_)}n.ephemeral.updatable=f}async function s(){n.ephemeral.loading=!0,n.ephemeral.error=null;try{const f=await xd(t.registries);n.ephemeral.catalog=f,r()}catch(f){n.ephemeral.error=f instanceof Error?f.message:String(f)}finally{n.ephemeral.loading=!1}}async function i(){try{const f=await Qy();n.ephemeral.installed=f.map(h=>({id:h.id,type:h.type,version:h.version,sourceRegistry:h.sourceRegistry??"",contractVersion:h.contractVersion??"",installedAt:h.installedAt??"",permissions:[]})),r()}catch(f){console.warn("[sh3-store] Failed to list installed packages:",f instanceof Error?f.message:f);try{const h=await Kk();n.ephemeral.installed=h,r()}catch{}}}async function a(f){const h=[...t.registries];h.includes(f)||(h.push(f),await e.envUpdate({registries:h}))}async function l(f){const h=t.registries.filter(_=>_!==f);await e.envUpdate({registries:h})}async function c(f,h){const _=n.ephemeral.updatable[f];if(!_)return;const S=n.ephemeral.installed.find(L=>L.id===f);if(!S)return;const k=await ui(_.latest,_.sourceRegistry);let x;_.latest.serverBundleUrl&&(x=await ro(_.latest,_.sourceRegistry));const w=di(_,_.latest),b=await Zr(k),y=lo(b);let I=[];try{const L=await Uk(f);L?.permissions&&(I=L.permissions)}catch{}const{added:D,removed:T}=D1(I,y);if((D.length>0||T.length>0)&&h&&!await h(D,T))return;const m=await Pd(f),M={...S,permissions:I},R={id:w.id,type:w.type,label:_.entry.label,version:w.version,contractVersion:w.contractVersion,sourceRegistry:w.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:_.latest.requires?.map(L=>L.id)??[]},O=await Wa(R,k,x);if(!O.ok){let L=O.error??"Server update failed";throw O.code==="missing-shards"&&O.missing&&(L=`missing required shard(s): ${O.missing.map(N=>N.id).join(", ")}`),new Error(L)}const P=await co(k,w,{loaded:b});if(!P.success){if(m)try{await Rd(f,m,M)}catch(L){console.warn(`[sh3-store] Rollback failed for "${f}":`,L instanceof Error?L.message:L)}throw new Error(P.error??"Local install failed during update")}await i()}gn={env:t,state:n,get isAdmin(){return e.isAdmin},refreshCatalog:s,refreshInstalled:i,updatePackage:c,addRegistry:a,removeRegistry:l};const u={mount(f,h){const _=ze(b1,{target:f});return{unmount(){Fe(_)}}}},d={mount(f,h){const _=ze(I1,{target:f});return{unmount(){Fe(_)}}}};e.registerView("sh3-store:browse",u),e.registerView("sh3-store:installed",d),e.registerVerb(T1),e.registerVerb(C1),e.registerVerb(R1),i()},autostart(){gn.refreshCatalog()}},O1={manifest:{id:"sh3-store-app",label:"Package Store",version:wn,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 L1=C('<div class="admin-error svelte-4q792t"> </div>'),j1=C('<form class="admin-create-form svelte-4q792t"><input class="admin-input svelte-4q792t" type="text" placeholder="Username"/> <input class="admin-input svelte-4q792t" type="text" placeholder="Display name"/> <input class="admin-input svelte-4q792t" type="password" placeholder="Password"/> <select class="admin-input svelte-4q792t"><option>User</option><option>Admin</option></select> <button type="submit" class="admin-btn svelte-4q792t">Create</button> <!></form>'),N1=C('<p class="admin-muted svelte-4q792t">Loading...</p>'),z1=C('<p class="admin-error svelte-4q792t"> </p>'),$1=C('<form class="admin-edit-form svelte-4q792t"><input class="admin-input svelte-4q792t" type="text"/> <input class="admin-input svelte-4q792t" type="password" placeholder="New password (leave empty to keep)"/> <select class="admin-input svelte-4q792t"><option>User</option><option>Admin</option></select> <div class="admin-edit-actions svelte-4q792t"><button type="submit" class="admin-btn svelte-4q792t">Save</button> <button type="button" class="admin-btn-secondary svelte-4q792t">Cancel</button></div></form>'),q1=C('<div class="admin-user-info svelte-4q792t"><span class="admin-user-name svelte-4q792t"> </span> <span class="admin-user-meta svelte-4q792t"> </span></div> <div class="admin-user-actions svelte-4q792t"><button type="button" class="admin-btn-secondary svelte-4q792t">Edit</button> <button type="button" class="admin-btn-danger svelte-4q792t">Delete</button></div>',1),B1=C('<li class="admin-user-item svelte-4q792t"><!></li>'),V1=C('<ul class="admin-user-list svelte-4q792t"></ul>'),U1=C('<div class="admin-users svelte-4q792t"><div class="admin-users-header svelte-4q792t"><h2 class="svelte-4q792t">Users</h2> <button type="button" class="admin-btn svelte-4q792t"> </button></div> <!> <!></div>');function F1(e,t){se(t,!0);let n=z(ce([])),r=z(!0),s=z(null),i=z(!1),a=z(""),l=z(""),c=z(""),u=z("user"),d=z(null),f=z(null),h=z(""),_=z("user"),S=z("");async function k(){g(r,!0),g(s,null);try{const N=await fetch("/api/admin/users",{credentials:"include"});if(!N.ok)throw new Error("Failed to fetch users");g(n,await N.json(),!0)}catch(N){g(s,N instanceof Error?N.message:"Failed to load users",!0)}finally{g(r,!1)}}async function x(){g(d,null);try{const N=await fetch("/api/admin/users",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:o(a),displayName:o(l)||o(a),password:o(c),role:o(u)})});if(!N.ok){const B=await N.json().catch(()=>({}));g(d,B.error||"Failed to create user",!0);return}g(a,""),g(l,""),g(c,""),g(u,"user"),g(i,!1),await k()}catch{g(d,"Network error")}}function w(N){g(f,N.id,!0),g(h,N.displayName,!0),g(_,N.role,!0),g(S,"")}async function b(){if(!o(f))return;const N={displayName:o(h),role:o(_)};o(S).trim()&&(N.password=o(S));try{if(!(await fetch(`/api/admin/users/${o(f)}`,{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(N)})).ok)return;g(f,null),await k()}catch{}}async function y(N){try{await fetch(`/api/admin/users/${N}`,{method:"DELETE",credentials:"include"}),await k()}catch{}}k();var I=U1(),D=p(I),T=E(p(D),2),m=p(T,!0);v(T),v(D);var M=E(D,2);{var R=N=>{var B=j1(),Y=p(B);Se(Y);var G=E(Y,2);Se(G);var Q=E(G,2);Se(Q);var J=E(Q,2),te=p(J);te.value=te.__value="user";var ee=E(te);ee.value=ee.__value="admin",v(J);var Z=E(J,2),de=E(Z,2);{var fe=K=>{var ae=L1(),me=p(ae,!0);v(ae),$(()=>j(me,o(d))),A(K,ae)};U(de,K=>{o(d)&&K(fe)})}v(B),$(K=>Z.disabled=K,[()=>!o(a).trim()||!o(c).trim()]),Je("submit",B,K=>{K.preventDefault(),x()}),Me(Y,()=>o(a),K=>g(a,K)),Me(G,()=>o(l),K=>g(l,K)),Me(Q,()=>o(c),K=>g(c,K)),Mr(J,()=>o(u),K=>g(u,K)),A(N,B)};U(M,N=>{o(i)&&N(R)})}var O=E(M,2);{var P=N=>{var B=N1();A(N,B)},L=N=>{var B=z1(),Y=p(B,!0);v(B),$(()=>j(Y,o(s))),A(N,B)},q=N=>{var B=V1();ue(B,21,()=>o(n),Y=>Y.id,(Y,G)=>{var Q=B1(),J=p(Q);{var te=Z=>{var de=$1(),fe=p(de);Se(fe);var K=E(fe,2);Se(K);var ae=E(K,2),me=p(ae);me.value=me.__value="user";var Ke=E(me);Ke.value=Ke.__value="admin",v(ae);var Ae=E(ae,2),rt=E(p(Ae),2);v(Ae),v(de),Je("submit",de,We=>{We.preventDefault(),b()}),Me(fe,()=>o(h),We=>g(h,We)),Me(K,()=>o(S),We=>g(S,We)),Mr(ae,()=>o(_),We=>g(_,We)),F("click",rt,()=>{g(f,null)}),A(Z,de)},ee=Z=>{var de=q1(),fe=he(de),K=p(fe),ae=p(K,!0);v(K);var me=E(K,2),Ke=p(me);v(me),v(fe);var Ae=E(fe,2),rt=p(Ae),We=E(rt,2);v(Ae),$(()=>{j(ae,o(G).displayName),j(Ke,`${o(G).username??""} · ${o(G).role??""}`)}),F("click",rt,()=>w(o(G))),F("click",We,()=>y(o(G).id)),A(Z,de)};U(J,Z=>{o(f)===o(G).id?Z(te):Z(ee,-1)})}v(Q),A(Y,Q)}),v(B),A(N,B)};U(O,N=>{o(r)?N(P):o(s)?N(L,1):N(q,-1)})}v(I),$(()=>j(m,o(i)?"Cancel":"New user")),F("click",T,()=>{g(i,!o(i))}),A(e,I),ie()}pe(["click"]);var H1=C('<p class="admin-muted svelte-1hsgdb4">Loading...</p>'),K1=C('<div class="admin-error svelte-1hsgdb4"> </div>'),W1=C('<div class="admin-auth-fields svelte-1hsgdb4"><label class="admin-toggle svelte-1hsgdb4"><input type="checkbox" class="svelte-1hsgdb4"/> <span>Require sign-in</span> <span class="admin-hint svelte-1hsgdb4">When enabled, unauthenticated visitors see a sign-in wall.</span></label> <label class="admin-toggle svelte-1hsgdb4"><input type="checkbox" class="svelte-1hsgdb4"/> <span>Allow guest browsing</span> <span class="admin-hint svelte-1hsgdb4">When sign-in is required, guests can still browse with session-only data.</span></label> <label class="admin-toggle svelte-1hsgdb4"><input type="checkbox" class="svelte-1hsgdb4"/> <span>Self-registration</span> <span class="admin-hint svelte-1hsgdb4">Visitors can create their own accounts from the sign-in screen.</span></label> <label class="admin-field svelte-1hsgdb4"><span class="svelte-1hsgdb4">Session lifetime (hours)</span> <input type="number" class="admin-input admin-input-sm svelte-1hsgdb4" min="1" max="8760"/></label> <button type="button" class="admin-btn svelte-1hsgdb4"> </button></div> <!>',1),Y1=C('<div class="admin-auth svelte-1hsgdb4"><h2 class="svelte-1hsgdb4">Auth Settings</h2> <!></div>');function G1(e,t){se(t,!0);let n=z(null),r=z(!0),s=z(!1),i=z(null);async function a(){g(r,!0);try{const h=await fetch("/api/admin/settings",{credentials:"include"});if(!h.ok)throw new Error("Failed to fetch settings");g(n,await h.json(),!0)}catch(h){g(i,h instanceof Error?h.message:"Failed to load settings",!0)}finally{g(r,!1)}}async function l(){if(o(n)){g(s,!0),g(i,null);try{const h=await fetch("/api/admin/settings",{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(o(n))});if(!h.ok)throw new Error("Failed to save settings");g(n,await h.json(),!0)}catch(h){g(i,h instanceof Error?h.message:"Failed to save",!0)}finally{g(s,!1)}}}a();var c=Y1(),u=E(p(c),2);{var d=h=>{var _=H1();A(h,_)},f=h=>{var _=W1(),S=he(_),k=p(S),x=p(k);Se(x),nn(4),v(k);var w=E(k,2),b=p(w);Se(b),nn(4),v(w);var y=E(w,2),I=p(y);Se(I),nn(4),v(y);var D=E(y,2),T=E(p(D),2);Se(T),v(D);var m=E(D,2),M=p(m,!0);v(m),v(S);var R=E(S,2);{var O=P=>{var L=K1(),q=p(L,!0);v(L),$(()=>j(q,o(i))),A(P,L)};U(R,P=>{o(i)&&P(O)})}$(()=>{m.disabled=o(s),j(M,o(s)?"Saving...":"Save")}),ds(x,()=>o(n).auth.required,P=>o(n).auth.required=P),ds(b,()=>o(n).auth.guestAllowed,P=>o(n).auth.guestAllowed=P),ds(I,()=>o(n).auth.selfRegistration,P=>o(n).auth.selfRegistration=P),Me(T,()=>o(n).auth.sessionTTL,P=>o(n).auth.sessionTTL=P),F("click",m,l),A(h,_)};U(u,h=>{o(r)?h(d):o(n)&&h(f,1)})}v(c),A(e,c),ie()}pe(["click"]);var X1=C('<button type="button"> </button>'),J1=C('<div class="admin-error svelte-1gkiloq"> </div>'),Z1=C('<div class="admin-error svelte-1gkiloq"> </div>'),Q1=C(`<div class="admin-system svelte-1gkiloq"><h2 class="svelte-1gkiloq">System</h2> <div class="admin-system-info svelte-1gkiloq"><div class="admin-system-row svelte-1gkiloq"><span class="admin-system-label svelte-1gkiloq">Server version</span> <span> </span></div></div> <section class="admin-system-section svelte-1gkiloq"><h3 class="svelte-1gkiloq">Package bundle cache</h3> <p class="admin-system-hint svelte-1gkiloq">Controls the <code>Cache-Control</code> header on <code>/packages/:id/client.js</code>.
|
|
16
|
+
Set to <strong>0</strong> during development so drop-in bundle replacements take effect on F5.
|
|
17
|
+
Use a long value in production.</p> <input type="range" min="0" max="31536000" step="1" class="svelte-1gkiloq"/> <div class="admin-system-readout svelte-1gkiloq"><code> </code> </div> <div class="admin-system-snaps svelte-1gkiloq"></div> <div class="admin-system-actions svelte-1gkiloq"><button type="button" class="admin-btn svelte-1gkiloq"> </button> <button type="button" class="admin-btn-ghost svelte-1gkiloq">Reset</button> <!></div></section> <section class="admin-system-section svelte-1gkiloq"><h3 class="svelte-1gkiloq">Server control</h3> <div class="admin-system-actions svelte-1gkiloq"><button type="button" class="admin-btn-danger svelte-1gkiloq"> </button> <!></div></section></div>`);function e0(e,t){se(t,!0);const n=[{value:0,label:"Off (no-store)"},{value:5,label:"5s (dev)"},{value:60,label:"1 min"},{value:3600,label:"1 hour"},{value:86400,label:"1 day"},{value:31536e3,label:"1 year"}];let r=z("..."),s=z(!1),i=z(null),a=z(31536e3),l=z(31536e3),c=z(!1),u=z(null);const d=X(()=>o(a)!==o(l)),f=X(()=>h(o(a)));function h(K){return K===0?"0 seconds (off — browsers never cache)":K<60?`${K} seconds`:K<3600?`${Math.round(K/60)} minutes`:K<86400?`${Math.round(K/3600)} hours`:K<31536e3?`${Math.round(K/86400)} days`:`${Math.round(K/31536e3)} years`}async function _(){try{const K=await fetch("/api/version");if(K.ok){const ae=await K.json();g(r,ae.version,!0)}}catch{}}async function S(){try{const K=await fetch("/api/admin/settings",{credentials:"include"});if(K.ok){const me=(await K.json()).packages?.cacheMaxAge??31536e3;g(a,me,!0),g(l,me,!0)}}catch{}}async function k(){g(c,!0),g(u,null);try{const K=await fetch("/api/admin/settings",{method:"PUT",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({packages:{cacheMaxAge:o(a)}})});if(K.ok){const ae=await K.json();g(l,ae.packages?.cacheMaxAge??o(a),!0),g(a,o(l),!0)}else{const ae=await K.json().catch(()=>({}));g(u,ae.error||"Save failed",!0)}}catch{g(u,"Network error")}finally{g(c,!1)}}async function x(){g(s,!0),g(i,null);try{const K=await fetch("/api/admin/restart",{method:"POST",credentials:"include"});if(!K.ok){const ae=await K.json().catch(()=>({}));g(i,ae.error||"Restart failed",!0),g(s,!1)}}catch{g(i,"Network error"),g(s,!1)}}_(),S();var w=Q1(),b=E(p(w),2),y=p(b),I=E(p(y),2),D=p(I,!0);v(I),v(y),v(b);var T=E(b,2),m=E(p(T),4);Se(m);var M=E(m,2),R=p(M),O=p(R,!0);v(R);var P=E(R);v(M);var L=E(M,2);ue(L,21,()=>n,K=>K.value,(K,ae)=>{var me=X1();let Ke;var Ae=p(me,!0);v(me),$(()=>{Ke=we(me,1,"admin-snap svelte-1gkiloq",null,Ke,{active:o(a)===o(ae).value}),me.disabled=o(c),j(Ae,o(ae).label)}),F("click",me,()=>g(a,o(ae).value,!0)),A(K,me)}),v(L);var q=E(L,2),N=p(q),B=p(N,!0);v(N);var Y=E(N,2),G=E(Y,2);{var Q=K=>{var ae=J1(),me=p(ae,!0);v(ae),$(()=>j(me,o(u))),A(K,ae)};U(G,K=>{o(u)&&K(Q)})}v(q),v(T);var J=E(T,2),te=E(p(J),2),ee=p(te),Z=p(ee,!0);v(ee);var de=E(ee,2);{var fe=K=>{var ae=Z1(),me=p(ae,!0);v(ae),$(()=>j(me,o(i))),A(K,ae)};U(de,K=>{o(i)&&K(fe)})}v(te),v(J),v(w),$(()=>{j(D,o(r)),m.disabled=o(c),j(O,o(a)),j(P,` — ${o(f)??""}`),N.disabled=!o(d)||o(c),j(B,o(c)?"Saving...":"Save"),Y.disabled=!o(d)||o(c),ee.disabled=o(s),j(Z,o(s)?"Restarting...":"Restart server")}),Me(m,()=>o(a),K=>g(a,K)),F("click",N,k),F("click",Y,()=>g(a,o(l),!0)),F("click",ee,x),A(e,w),ie()}pe(["click"]);var t0=C(`<div class="admin-key-created"><div class="admin-key-created-label">New key — copy now, it won't be shown again:</div> <code class="admin-key-value svelte-1afg5z5"> </code> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Dismiss</button></div>`),n0=C('<div class="admin-error svelte-1afg5z5"> </div>'),r0=C('<form class="admin-create-form svelte-1afg5z5"><input class="admin-input svelte-1afg5z5" type="text" placeholder="Key label"/> <button type="submit" class="admin-btn svelte-1afg5z5">Create</button> <!></form>'),s0=C('<p class="admin-muted svelte-1afg5z5">Loading...</p>'),i0=C('<p class="admin-error svelte-1afg5z5"> </p>'),a0=C('<p class="admin-muted svelte-1afg5z5">No API keys. Create one to enable external access.</p>'),o0=C('<button type="button" class="admin-btn-danger svelte-1afg5z5">Confirm</button> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Cancel</button>',1),l0=C('<button type="button" class="admin-btn-danger svelte-1afg5z5">Revoke</button>'),c0=C('<li class="admin-key-item svelte-1afg5z5"><div class="admin-key-info svelte-1afg5z5"><span class="admin-key-label svelte-1afg5z5"> </span> <span class="admin-key-meta svelte-1afg5z5"> </span></div> <div class="admin-key-actions svelte-1afg5z5"><!></div></li>'),u0=C('<ul class="admin-key-list svelte-1afg5z5"></ul>'),d0=C('<div class="admin-keys svelte-1afg5z5"><div class="admin-keys-header svelte-1afg5z5"><h2 class="svelte-1afg5z5">API Keys</h2> <button type="button" class="admin-btn svelte-1afg5z5"> </button></div> <!> <!> <!></div>');function f0(e,t){se(t,!0);let n=z(ce([])),r=z(!0),s=z(null),i=z(!1),a=z(""),l=z(null),c=z(null),u=z(null);async function d(){g(r,!0),g(s,null);try{const P=await fetch("/api/admin/keys",{credentials:"include"});if(!P.ok)throw new Error("Failed to fetch keys");g(n,await P.json(),!0)}catch(P){g(s,P instanceof Error?P.message:"Failed to load keys",!0)}finally{g(r,!1)}}async function f(){g(l,null);try{const P=await fetch("/api/admin/keys",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({label:o(a)})});if(!P.ok){const q=await P.json().catch(()=>({}));g(l,q.error||"Failed to create key",!0);return}const L=await P.json();g(c,{id:L.id,key:L.key},!0),g(a,""),g(i,!1),await d()}catch{g(l,"Network error")}}async function h(P){g(u,null);try{await fetch(`/api/admin/keys/${P}`,{method:"DELETE",credentials:"include"}),o(c)?.id===P&&g(c,null),await d()}catch{}}function _(P){return new Date(P).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}d();var S=d0(),k=p(S),x=E(p(k),2),w=p(x,!0);v(x),v(k);var b=E(k,2);{var y=P=>{var L=t0(),q=E(p(L),2),N=p(q,!0);v(q);var B=E(q,2);v(L),$(()=>j(N,o(c).key)),F("click",B,()=>{g(c,null)}),A(P,L)};U(b,P=>{o(c)&&P(y)})}var I=E(b,2);{var D=P=>{var L=r0(),q=p(L);Se(q);var N=E(q,2),B=E(N,2);{var Y=G=>{var Q=n0(),J=p(Q,!0);v(Q),$(()=>j(J,o(l))),A(G,Q)};U(B,G=>{o(l)&&G(Y)})}v(L),$(G=>N.disabled=G,[()=>!o(a).trim()]),Je("submit",L,G=>{G.preventDefault(),f()}),Me(q,()=>o(a),G=>g(a,G)),A(P,L)};U(I,P=>{o(i)&&P(D)})}var T=E(I,2);{var m=P=>{var L=s0();A(P,L)},M=P=>{var L=i0(),q=p(L,!0);v(L),$(()=>j(q,o(s))),A(P,L)},R=P=>{var L=a0();A(P,L)},O=P=>{var L=u0();ue(L,21,()=>o(n),q=>q.id,(q,N)=>{var B=c0(),Y=p(B),G=p(Y),Q=p(G,!0);v(G);var J=E(G,2),te=p(J);v(J),v(Y);var ee=E(Y,2),Z=p(ee);{var de=K=>{var ae=o0(),me=he(ae),Ke=E(me,2);F("click",me,()=>h(o(N).id)),F("click",Ke,()=>{g(u,null)}),A(K,ae)},fe=K=>{var ae=l0();F("click",ae,()=>{g(u,o(N).id,!0)}),A(K,ae)};U(Z,K=>{o(u)===o(N).id?K(de):K(fe,-1)})}v(ee),v(B),$(K=>{j(Q,o(N).label),j(te,`${o(N).id??""} · ${K??""}`)},[()=>_(o(N).createdAt)]),A(q,B)}),v(L),A(P,L)};U(T,P=>{o(r)?P(m):o(s)?P(M,1):o(n).length===0?P(R,2):P(O,-1)})}v(S),$(()=>j(w,o(i)?"Cancel":"New key")),F("click",x,()=>{g(i,!o(i))}),A(e,S),ie()}pe(["click"]);const v0={manifest:{id:"sh3-admin",label:"Admin",version:wn,views:[{id:"sh3-admin:users",label:"Users"},{id:"sh3-admin:auth",label:"Auth Settings"},{id:"sh3-admin:system",label:"System"},{id:"sh3-admin:keys",label:"API Keys"}]},activate(e){const t={mount(i,a){const l=ze(F1,{target:i});return{unmount(){Fe(l)}}}},n={mount(i,a){const l=ze(G1,{target:i});return{unmount(){Fe(l)}}}},r={mount(i,a){const l=ze(e0,{target:i});return{unmount(){Fe(l)}}}},s={mount(i,a){const l=ze(f0,{target:i});return{unmount(){Fe(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)}},h0={manifest:{id:"sh3-admin-app",label:"Admin",version:wn,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"}]}},pl="sh3:migrations:shell-rename:done",ml="__shell__:",p0="__sh3core__:",gl="sh3:user:__shell__:theme",_l="sh3:user:__sh3core__:theme";function m0(e,t){if(t.getItem(pl))return;const n=t.getItem(gl);n!==null&&t.getItem(_l)===null&&(t.setItem(_l,n),t.removeItem(gl));for(const r of e.keys()){if(!r.startsWith(ml))continue;const s=p0+r.slice(ml.length),i=e.read(r);e.write(s,i),e.delete(r)}t.setItem(pl,"1")}function g0(e){Ga(e)}function _0(){const e=Ut.workspace;return{keys:()=>e.list(),read:t=>e.read(t),write:(t,n)=>e.write(t,n),delete:t=>e.delete(t)}}async function y0(e){typeof globalThis.localStorage<"u"&&m0(_0(),globalThis.localStorage);const t=new Set(e?.excludeShards),n=[Qb,jk,M1,v0];for(const i of n)t.has(i.manifest.id)||Ga(i);const r=[O1,h0];for(const i of r)Xa(i);await Wk();for(const[i,a]of Jt)a.autostart&&(sy(i),await ud(i));const s=fb();s&&mn.has(s)&&await or(s)}var b0=C('<button type="button" aria-label="Expand pane"><span class="collapse-icon"> </span></button>'),w0=C('<button type="button" aria-label="Collapse pane"><span class="collapse-icon"> </span></button>'),k0=C('<!> <div class="pane-content svelte-1adl4o1"><!></div>',1),S0=C('<div role="separator"></div>'),x0=C("<div><!></div> <!>",1),E0=C("<div></div>");function A0(e,t){se(t,!0);const n=40,r=28;let s;const i=w=>t.pinned?.[w]??"fr",a=w=>t.collapsed?.[w]??!1,l=w=>t.fixed?.[w]??!1,c=w=>l(w)||l(w+1);function u(w){if(l(w))return!1;const b=w>0?!l(w-1):!1,y=w<t.count-1?!l(w+1):!1;return b||y}function d(w){return a(w)?`0 0 ${r}px`:i(w)==="px"?`0 0 ${Math.max(n,t.sizes[w])}px`:`${Math.max(1e-4,t.sizes[w])} 1 0`}let f=z(null);function h(w,b){if(a(b)||a(b+1)||c(b))return;w.preventDefault(),w.target.setPointerCapture(w.pointerId);const y=s.getBoundingClientRect(),I=t.direction==="horizontal"?y.width:y.height;let D=0,T=0;for(let m=0;m<t.sizes.length;m++)i(m)==="fr"?D+=t.sizes[m]:T+=Math.max(n,t.sizes[m]);g(f,{handleIndex:b,startClient:t.direction==="horizontal"?w.clientX:w.clientY,startSizes:t.sizes.slice(),containerPx:I,totalFr:D,frAvailPx:Math.max(1,I-T)},!0)}function _(w){if(!o(f))return;const y=(t.direction==="horizontal"?w.clientX:w.clientY)-o(f).startClient,I=o(f).handleIndex,D=I+1,T=i(I),m=i(D),M=o(f).totalFr/o(f).frAvailPx;if(T==="fr"&&m==="fr"){const R=n*M,O=y*M,P=o(f).startSizes[D]-R,L=-(o(f).startSizes[I]-R),q=Math.min(Math.max(O,L),P);t.onResize?.(I,o(f).startSizes[I]+q),t.onResize?.(D,o(f).startSizes[D]-q)}else if(T==="px"&&m==="fr"){const R=o(f).frAvailPx-n,O=n-o(f).startSizes[I];t.onResize?.(I,o(f).startSizes[I]+Math.min(Math.max(y,O),R))}else if(T==="fr"&&m==="px"){const R=o(f).startSizes[D]-n,O=-(o(f).frAvailPx-n);t.onResize?.(D,o(f).startSizes[D]-Math.min(Math.max(y,O),R))}else{const R=o(f).startSizes[D]-n,O=-(o(f).startSizes[I]-n),P=Math.min(Math.max(y,O),R);t.onResize?.(I,o(f).startSizes[I]+P),t.onResize?.(D,o(f).startSizes[D]-P)}}function S(w){o(f)&&(w.target.releasePointerCapture(w.pointerId),g(f,null))}var k=E0();let x;ue(k,21,()=>Array(t.count),Nn,(w,b,y)=>{var I=x0(),D=he(I);let T;var m=p(D);{var M=q=>{var N=b0();let B;var Y=p(N),G=p(Y,!0);v(Y),v(N),$(()=>{B=we(N,1,"collapse-header svelte-1adl4o1",null,B,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),j(G,t.direction==="horizontal"?"▸":"▾")}),F("click",N,()=>t.onCollapseToggle?.(y,!1)),A(q,N)},R=X(()=>a(y)),O=q=>{var N=k0(),B=he(N);{var Y=te=>{var ee=w0();let Z;ke(ee,"data-testid",`collapse-toggle-${y}`);var de=p(ee),fe=p(de,!0);v(de),v(ee),$(()=>{Z=we(ee,1,"collapse-header expanded svelte-1adl4o1",null,Z,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),j(fe,t.direction==="horizontal"?"◂":"▴")}),F("click",ee,()=>t.onCollapseToggle?.(y,!0)),A(te,ee)},G=X(()=>t.onCollapseToggle&&u(y));U(B,te=>{o(G)&&te(Y)})}var Q=E(B,2),J=p(Q);Ia(J,()=>t.pane,()=>y),v(Q),A(q,N)};U(m,q=>{o(R)?q(M):q(O,-1)})}v(D);var P=E(D,2);{var L=q=>{var N=S0();let B;ke(N,"data-testid",`splitter-handle-${y}`),$(Y=>{B=we(N,1,"splitter-handle svelte-1adl4o1",null,B,Y),ke(N,"aria-orientation",t.direction==="horizontal"?"vertical":"horizontal")},[()=>({dragging:o(f)?.handleIndex===y,disabled:a(y)||a(y+1),frozen:c(y)})]),F("pointerdown",N,Y=>h(Y,y)),F("pointermove",N,_),F("pointerup",N,S),Je("pointercancel",N,S),F("dblclick",N,()=>{c(y)||!u(y)&&!a(y)||t.onCollapseToggle?.(y,!a(y))}),A(q,N)};U(P,q=>{y<t.count-1&&q(L)})}$((q,N)=>{T=we(D,1,"splitter-pane svelte-1adl4o1",null,T,q),Qt(D,`flex: ${N??""};`)},[()=>({collapsed:a(y)}),()=>d(y)]),A(w,I)}),v(k),ut(k,w=>s=w,()=>s),$(()=>x=we(k,1,"splitter svelte-1adl4o1",null,x,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"})),A(e,k),ie()}pe(["click","pointerdown","pointermove","pointerup","dblclick"]);function I0(e,t,n){if(!n)return null;const r=n.getBoundingClientRect(),s=t.filter(l=>!!l);if(s.length===0)return{left:4,top:2,height:r.height-4};const i=Math.max(0,Math.min(e,s.length));let a;return i===s.length?a=s[s.length-1].getBoundingClientRect().right:a=s[i].getBoundingClientRect().left,{left:a-r.left-1,top:2,height:r.height-4}}var T0=C('<span class="tab-dirty svelte-1kxcyhf" title="Unsaved changes"></span>'),C0=C('<span class="tab-icon svelte-1kxcyhf"> </span>'),R0=C('<span class="tab-close svelte-1kxcyhf" role="button" tabindex="-1" title="Close">✕</span>'),P0=C('<button type="button" role="tab"><!> <!> <span class="tab-label svelte-1kxcyhf"> </span> <!></button>'),D0=C('<div class="drop-indicator svelte-1kxcyhf"></div>'),M0=C("<div><!></div>"),O0=C('<div class="tabbed-panel svelte-1kxcyhf"><div class="tab-strip svelte-1kxcyhf" role="tablist" tabindex="-1"><!> <!></div> <div class="tab-body svelte-1kxcyhf" role="tabpanel"></div></div>');function L0(e,t){se(t,!0);function n(x){t.clickGuard?.()||t.onActiveChange?.(x)}function r(x,w){w.stopPropagation(),t.onClose?.(x)}let s=z(void 0);const i=ce([]);let a=z(null);function l(x,w){if(!t.dragController)return;const b=i[x];b&&t.dragController.onPointerDown(x,w,b)}function c(x){if(!t.dragController||!t.dragController.isDragging||!o(s))return;const w=o(s).getBoundingClientRect(),b=i.filter(y=>!!y).map(y=>y.getBoundingClientRect());g(a,t.dragController.onStripHover(w,x.clientX,x.clientY,b),!0)}function u(){t.dragController&&(g(a,null),t.dragController.onStripLeave())}var d=O0(),f=p(d),h=p(f);ue(h,17,()=>t.labels,Nn,(x,w,b)=>{var y=P0();let I;var D=p(y);{var T=q=>{var N=T0();A(q,N)};U(D,q=>{t.dirty?.[b]&&q(T)})}var m=E(D,2);{var M=q=>{var N=C0(),B=p(N,!0);v(N),$(()=>j(B,t.icons[b])),A(q,N)};U(m,q=>{t.icons?.[b]&&q(M)})}var R=E(m,2),O=p(R,!0);v(R);var P=E(R,2);{var L=q=>{var N=R0();$(()=>ke(N,"data-testid",t.tabIds?.[b]?`tab-close-${t.tabIds[b]}`:void 0)),F("click",N,B=>r(b,B)),F("keydown",N,B=>{(B.key==="Enter"||B.key===" ")&&r(b,B)}),A(q,N)};U(P,q=>{t.closable?.[b]&&q(L)})}v(y),ut(y,(q,N)=>i[N]=q,q=>i?.[q],()=>[b]),$(()=>{I=we(y,1,"tab svelte-1kxcyhf",null,I,{active:t.activeTab===b}),ke(y,"aria-selected",t.activeTab===b),j(O,o(w))}),F("click",y,()=>n(b)),F("pointerdown",y,q=>l(b,q)),Je("auxclick",y,q=>{q.button===1&&t.closable?.[b]&&r(b,q)}),A(x,y)});var _=E(h,2);{var S=x=>{const w=X(()=>I0(o(a),i,o(s)));var b=at(),y=he(b);{var I=D=>{var T=D0();$(()=>Qt(T,`left: ${o(w).left??""}px; height: ${o(w).height??""}px; top: ${o(w).top??""}px;`)),A(D,T)};U(y,D=>{o(w)&&D(I)})}A(x,b)};U(_,x=>{o(a)!==null&&t.dragController?.isDragging&&x(S)})}v(f),ut(f,x=>g(s,x),()=>o(s));var k=E(f,2);ue(k,21,()=>t.labels,Nn,(x,w,b)=>{var y=M0();let I;var D=p(y);Ia(D,()=>t.body,()=>b),v(y),$(()=>I=we(y,1,"tab-body-pane svelte-1kxcyhf",null,I,{active:t.activeTab===b})),A(x,y)}),v(k),v(d),F("pointermove",f,c),Je("pointerleave",f,u),A(e,d),ie()}pe(["pointermove","click","pointerdown","keydown"]);var j0=C('no factory for <code class="svelte-1czj0s8"> </code>',1),N0=C("<em>empty slot</em>"),z0=C('<div class="slot-placeholder svelte-1czj0s8"><div class="slot-id svelte-1czj0s8"> </div> <div class="slot-meta svelte-1czj0s8"><!></div> <div class="slot-dims svelte-1czj0s8"> </div></div>'),$0=C('<div class="slot svelte-1czj0s8"><!></div>');function yl(e,t){se(t,!0);let n=$t(t,"label",3,""),r=z(void 0),s=z(0),i=z(0);const a=X(()=>t.node.viewId?!!Tu(t.node.viewId):!1);Ce(()=>{if(!o(r))return;const d=t.node.slotId,f=Pu(d,t.node.viewId,n()||t.node.viewId||d);o(r).appendChild(f);const h=new ResizeObserver(_=>{for(const S of _){const k=S.contentRect;g(s,Math.round(k.width),!0),g(i,Math.round(k.height),!0)}});return h.observe(o(r)),()=>{h.disconnect(),Du(d)}});var l=$0(),c=p(l);{var u=d=>{var f=z0(),h=p(f),_=p(h,!0);v(h);var S=E(h,2),k=p(S);{var x=I=>{var D=j0(),T=E(he(D)),m=p(T,!0);v(T),$(()=>j(m,t.node.viewId)),A(I,D)},w=I=>{var D=N0();A(I,D)};U(k,I=>{t.node.viewId?I(x):I(w,-1)})}v(S);var b=E(S,2),y=p(b);v(b),v(f),$(()=>{j(_,t.node.slotId),j(y,`${o(s)??""} × ${o(i)??""}`)}),A(d,f)};U(c,d=>{o(a)||d(u)})}v(l),ut(l,d=>g(r,d),()=>o(r)),$(()=>{ke(l,"data-slot-id",t.node.slotId),ke(l,"data-view-id",t.node.viewId??"")}),A(e,l),ie()}const ve=ce({phase:"idle",source:null,pointerX:0,pointerY:0,target:null});let Ld=0;function q0(){return performance.now()<Ld}const bl=4;let jd=0,Nd=0;function B0(e,t,n,r,s){if(ve.phase!=="idle")return;const i=s.getBoundingClientRect();ve.phase="pending",ve.source={slotId:e,entry:t,sourceRoot:n,startRect:i,offsetX:r.clientX-i.left,offsetY:r.clientY-i.top},ve.pointerX=r.clientX,ve.pointerY=r.clientY,ve.target=null,jd=r.clientX,Nd=r.clientY,V0()}function V0(){window.addEventListener("pointermove",zd,!0),window.addEventListener("pointerup",$d,!0),window.addEventListener("pointercancel",qd,!0),document.body.style.userSelect="none",document.body.dataset.dragging=""}function U0(){window.removeEventListener("pointermove",zd,!0),window.removeEventListener("pointerup",$d,!0),window.removeEventListener("pointercancel",qd,!0),document.body.style.userSelect="",delete document.body.dataset.dragging}function zd(e){if(ve.pointerX=e.clientX,ve.pointerY=e.clientY,ve.phase==="pending"){const t=e.clientX-jd,n=e.clientY-Nd;t*t+n*n>=bl*bl&&(ve.phase="dragging")}}function $d(e){ve.phase==="dragging"&&(F0(),Ld=performance.now()+50),Bd()}function qd(e){Bd()}function wl(e){const t=pn.tree;if(e.kind==="docked")return t.docked;const n=t.floats.find(r=>r.id===e.floatId);return n?n.content:null}function kl(e){if(e.kind!=="float")return;const t=pn.tree,n=t.floats.findIndex(r=>r.id===e.floatId);n<0||_u(t.floats[n].content)&&t.floats.splice(n,1)}function F0(){const{source:e,target:t}=ve;if(!e||!t)return;const n=wl(e.sourceRoot),r=wl(t.root);if(!n||!r)return;if(t.kind==="strip"){const i=t.tabsNode.tabs.findIndex(a=>a.slotId===e.slotId);if(i>=0){q_(t.tabsNode,i,t.insertIndex),Xn(n),r!==n&&Xn(r),kl(e.sourceRoot);return}}const s=Js(n,e.slotId);s&&(t.kind==="strip"?$_(t.tabsNode,s,t.insertIndex):Cu(r,t.path,s,t.side),Xn(n),r!==n&&Xn(r),kl(e.sourceRoot))}function Bd(){ve.phase="idle",ve.source=null,ve.target=null,U0()}function oa(e){ve.phase==="dragging"&&(ve.target=e)}function Cr(e){ve.phase==="dragging"&&ve.target&&(e&&!e(ve.target)||(ve.target=null))}var H0=C("<div></div>"),K0=C('<div class="quad-target quad-left svelte-re71zu" data-testid="drop-zone-left"></div> <div class="quad-target quad-right svelte-re71zu" data-testid="drop-zone-right"></div> <div class="quad-target quad-top svelte-re71zu" data-testid="drop-zone-top"></div> <div class="quad-target quad-bottom svelte-re71zu" data-testid="drop-zone-bottom"></div>',1),W0=C("<div><!> <!></div>");function Sl(e,t){se(t,!0);let n=z(void 0),r=z(null);const s=X(()=>ve.phase==="dragging");function i(S,k,x){const w=x.left+x.width/2,b=x.top+x.height/2,y=S-w,I=k-b,D=y/x.width,T=I/x.height;return Math.abs(D)>Math.abs(T)?D<0?"left":"right":T<0?"top":"bottom"}function a(S){if(!o(n))return;const k=o(n).getBoundingClientRect();if(S.clientX<k.left||S.clientX>k.right||S.clientY<k.top||S.clientY>k.bottom){o(r)!==null&&(g(r,null),Cr(w=>w.kind==="split"&&w.path.join("/")===t.path.join("/")));return}const x=i(S.clientX,S.clientY,k);if(x!==o(r)){g(r,x,!0);const w={kind:"split",root:t.rootRef,path:[...t.path],side:x};oa(w)}}function l(){o(r)!==null&&(g(r,null),Cr(S=>S.kind==="split"&&S.path.join("/")===t.path.join("/")))}var c=W0();let u;var d=p(c);{var f=S=>{var k=H0();$(()=>we(k,1,`quad-highlight quad-${o(r)??""}`,"svelte-re71zu")),A(S,k)};U(d,S=>{o(r)&&S(f)})}var h=E(d,2);{var _=S=>{var k=K0();nn(6),A(S,k)};U(h,S=>{o(s)&&S(_)})}v(c),ut(c,S=>g(n,S),()=>o(n)),$(()=>u=we(c,1,"slot-drop-zone svelte-re71zu",null,u,{active:o(s)})),F("pointermove",c,a),Je("pointerleave",c,l),A(e,c),ie()}pe(["pointermove"]);var Y0=C('<div class="tab-slot-wrapper svelte-1gw9g38"><!> <!></div>'),G0=C('<div class="empty-tabs-custom svelte-1gw9g38"></div>'),X0=C('<div class="empty-tabs-default svelte-1gw9g38"><div class="empty-tabs-drop svelte-1gw9g38"></div></div>'),J0=C('<div class="empty-tabs-placeholder svelte-1gw9g38"><!></div>'),Z0=C('<div class="leaf-slot-wrapper svelte-1gw9g38"><!> <!></div>');function fo(e,t){se(t,!0);let n=$t(t,"path",19,()=>[]),r=$t(t,"rootRef",19,()=>({kind:"docked"}));const s=X(()=>{let b;return r().kind==="docked"?b=pn.root:b=pn.tree.floats.find(I=>I.id===r().floatId)?.content??null,b?Ps(b,n()):null});function i(b){return{get isDragging(){return ve.phase==="dragging"},onPointerDown(y,I,D){const T=b.tabs[y];T&&B0(T.slotId,T,r(),I,D)},onStripHover(y,I,D,T){if(D<y.top||D>y.bottom)return Cr(R=>R.kind==="strip"&&R.tabsNode===b),null;let m=T.length;for(let R=0;R<T.length;R++){const O=T[R],P=O.left+O.width/2;if(I<P){m=R;break}}const M=ve.source;if(M){const R=b.tabs.findIndex(O=>O.slotId===M.slotId);R>=0&&R<m&&(m-=1)}return oa({kind:"strip",root:r(),tabsNode:b,insertIndex:m}),m},onStripLeave(){Cr(y=>y.kind==="strip"&&y.tabsNode===b)}}}function a(b){return b.type==="split"?b:null}function l(b){return b.type==="tabs"?b:null}function c(b){return b.type==="slot"?b:null}function u(b){return b.map(y=>H_(y.slotId)||void 0)}function d(b){return b.map(y=>F_(y.slotId)||void 0)}function f(b,y){const I=b[y];I&&Qa(I.slotId)}function h(b,y){y(b)}function _(b,y){ve.phase==="dragging"&&oa({kind:"strip",root:r(),tabsNode:y,insertIndex:0})}function S(){Cr(b=>b.kind==="strip"&&b.insertIndex===0)}var k=at(),x=he(k);{var w=b=>{var y=at(),I=he(y);{var D=M=>{const R=(P,L=pt)=>{{let q=X(()=>[...n(),L()]);fo(P,{get rootRef(){return r()},get path(){return o(q)}})}},O=X(()=>a(o(s)));A0(M,{get direction(){return o(O).direction},get sizes(){return o(O).sizes},get pinned(){return o(O).pinned},get collapsed(){return o(O).collapsed},get fixed(){return o(O).fixed},get count(){return o(O).children.length},get pane(){return R},onResize:(P,L)=>o(O).sizes[P]=L,onCollapseToggle:(P,L)=>{o(O).collapsed||(o(O).collapsed=o(O).children.map(()=>!1)),o(O).collapsed[P]=L}})},T=M=>{const R=X(()=>l(o(s)));var O=at(),P=he(O);{var L=N=>{const B=(G,Q=pt)=>{const J=X(()=>o(R)?.tabs[Q()]);var te=at(),ee=he(te);{var Z=de=>{var fe=Y0(),K=p(fe);{let me=X(()=>({type:"slot",slotId:o(J).slotId,viewId:o(J).viewId}));yl(K,{get node(){return o(me)},get label(){return o(J).label}})}var ae=E(K,2);Sl(ae,{get rootRef(){return r()},get path(){return n()}}),v(fe),A(de,fe)};U(ee,de=>{o(J)&&de(Z)})}A(G,te)},Y=X(()=>i(o(R)));{let G=X(()=>o(R).tabs.map(Z=>Z.label)),Q=X(()=>o(R).tabs.map(Z=>Z.icon)),J=X(()=>u(o(R).tabs)),te=X(()=>d(o(R).tabs)),ee=X(()=>o(R).tabs.map(Z=>Z.slotId));L0(N,{get labels(){return o(G)},get icons(){return o(Q)},get activeTab(){return o(R).activeTab},onActiveChange:Z=>o(R).activeTab=Z,get body(){return B},get dragController(){return o(Y)},get clickGuard(){return q0},get closable(){return o(J)},get dirty(){return o(te)},onClose:Z=>f(o(R).tabs,Z),get tabIds(){return o(ee)}})}},q=N=>{var B=J0(),Y=p(B);{var G=J=>{var te=G0();Qc(te,(ee,Z)=>h?.(ee,Z),()=>o(R).emptyRenderer),A(J,te)},Q=J=>{var te=X0(),ee=p(te);v(te),F("pointermove",ee,Z=>_(Z,o(R))),Je("pointerleave",ee,S),A(J,te)};U(Y,J=>{o(R).emptyRenderer?J(G):J(Q,-1)})}v(B),A(N,B)};U(P,N=>{o(R)&&o(R).tabs.length>0?N(L):o(R)?.persistent&&N(q,1)})}A(M,O)},m=M=>{const R=X(()=>c(o(s)));var O=Z0(),P=p(O);yl(P,{get node(){return o(R)}});var L=E(P,2);Sl(L,{get rootRef(){return r()},get path(){return n()}}),v(O),A(M,O)};U(I,M=>{o(s).type==="split"?M(D):o(s).type==="tabs"?M(T,1):M(m,-1)})}A(b,y)};U(x,b=>{o(s)&&b(w)})}A(e,k),ie()}pe(["pointermove"]);var Q0=C('<span class="drag-preview-icon svelte-133fiip"> </span>'),eS=C('<div class="drag-preview svelte-133fiip"><!> <span class="drag-preview-label svelte-133fiip"> </span></div>');function tS(e,t){se(t,!0);const n=X(()=>ve.phase==="dragging"&&!!ve.source),r=X(()=>ve.source?ve.pointerX-ve.source.offsetX:0),s=X(()=>ve.source?ve.pointerY-ve.source.offsetY:0),i=X(()=>ve.source?.startRect.width??0),a=X(()=>ve.source?.startRect.height??0),l=X(()=>ve.source?.entry.label??""),c=X(()=>ve.source?.entry.icon);var u=at(),d=he(u);{var f=h=>{var _=eS(),S=p(_);{var k=b=>{var y=Q0(),I=p(y,!0);v(y),$(()=>j(I,o(c))),A(b,y)};U(S,b=>{o(c)&&b(k)})}var x=E(S,2),w=p(x,!0);v(x),v(_),$(()=>{Qt(_,`left: ${o(r)??""}px; top: ${o(s)??""}px; width: ${o(i)??""}px; height: ${o(a)??""}px;`),j(w,o(l))}),A(h,_)};U(d,h=>{o(n)&&h(f)})}A(e,u),ie()}const Qn=new Map;let Os=!1;function Vd(e){if(Qn.size===0)return;const t=e.target;if(!t)return;const n=Array.from(Qn.keys());for(const r of n){const s=Qn.get(r);s&&(s.contains(t)||Rt.close(r))}}function nS(){Os||typeof document>"u"||(document.addEventListener("pointerdown",Vd,!0),Os=!0)}function rS(){Os&&(Qn.size>0||(document.removeEventListener("pointerdown",Vd,!0),Os=!1))}function sS(e,t){Qn.set(e,t),nS()}function iS(e){Qn.delete(e),rS()}var aS=C('<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>'),oS=C('<div class="sh3-float-frame svelte-1p734al" role="dialog" tabindex="-1"><!> <div class="sh3-float-body svelte-1p734al"><!></div></div>');function lS(e,t){se(t,!0);const n=$t(t,"entry",7);let r=z(!1),s={x:0,y:0},i=z(void 0);Ce(()=>{if(n().dismissable&&o(i))return sS(n().id,o(i)),()=>iS(n().id)});function a(w){if(w.button!==0||w.target.closest(".sh3-float-close"))return;w.currentTarget.setPointerCapture(w.pointerId),g(r,!0),s={x:w.clientX-n().position.x,y:w.clientY-n().position.y},Rt.focus(n().id)}function l(w){o(r)&&(n().position.x=w.clientX-s.x,n().position.y=w.clientY-s.y)}function c(w){if(!o(r))return;g(r,!1);const b=w.currentTarget;b.hasPointerCapture(w.pointerId)&&b.releasePointerCapture(w.pointerId)}function u(){Rt.focus(n().id)}function d(w){w.stopPropagation(),Rt.close(n().id)}var f=oS();let h;var _=p(f);{var S=w=>{var b=aS(),y=p(b),I=p(y,!0);v(y);var D=E(y,2);v(b),$(()=>j(I,n().title)),F("pointerdown",b,a),F("pointermove",b,l),F("pointerup",b,c),Je("pointercancel",b,c),F("click",D,d),A(w,b)};U(_,w=>{n().title&&w(S)})}var k=E(_,2),x=p(k);{let w=X(()=>({kind:"float",floatId:n().id}));fo(x,{get rootRef(){return o(w)},path:[]})}v(k),v(f),ut(f,w=>g(i,w),()=>o(i)),$(()=>{ke(f,"aria-label",n().title??"Float panel"),h=Qt(f,"",h,{left:`${n().position.x??""}px`,top:`${n().position.y??""}px`,width:`${n().size.w??""}px`,height:`${n().size.h??""}px`})}),F("click",f,u),A(e,f),ie()}pe(["click","pointerdown","pointermove","pointerup"]);var cS=C('<div class="sh3-float-layer svelte-1rzcset"></div>');function uS(e,t){se(t,!0);const n=X(()=>pn.floats);var r=cS();ue(r,21,()=>o(n),s=>s.id,(s,i)=>{lS(s,{get entry(){return o(i)}})}),v(r),A(e,r),ie()}const xl="/assets/icons-CnAqUqbR.svg";var dS=C('<div class="guest-signin-error svelte-pymkh"> </div>'),fS=C('<div class="guest-signin-overlay svelte-pymkh" role="dialog"><div class="guest-signin-card svelte-pymkh"><form class="guest-signin-form svelte-pymkh"><input class="guest-signin-input svelte-pymkh" type="text" placeholder="Username" autocomplete="username"/> <input class="guest-signin-input svelte-pymkh" type="password" placeholder="Password" autocomplete="current-password"/> <div class="guest-signin-actions svelte-pymkh"><button type="submit" class="guest-signin-btn svelte-pymkh"> </button> <button type="button" class="guest-signin-cancel svelte-pymkh">Cancel</button></div></form> <!></div></div>'),vS=C('<div class="guest-banner svelte-pymkh"><span class="guest-banner-text">Browsing as guest. Sign in to save your work.</span> <button type="button" class="guest-banner-action svelte-pymkh">Sign in</button></div> <!>',1),hS=C('<div class="guest-banner-slot"><!></div>');function pS(e,t){se(t,!0);let n=z(!1),r=z(""),s=z(""),i=z(null),a=z(!1);async function l(){if(!o(r).trim()||!o(s).trim()||o(a))return;g(a,!0),g(i,null);const h=await Ju(o(r).trim(),o(s).trim());g(a,!1),h.ok?g(n,!1):g(i,h.error,!0)}var c=hS(),u=p(c);{var d=h=>{var _=vS(),S=he(_),k=E(p(S),2);v(S);var x=E(S,2);{var w=b=>{var y=fS(),I=p(y),D=p(I),T=p(D);Se(T);var m=E(T,2);Se(m);var M=E(m,2),R=p(M),O=p(R,!0);v(R);var P=E(R,2);v(M),v(D);var L=E(D,2);{var q=N=>{var B=dS(),Y=p(B,!0);v(B),$(()=>j(Y,o(i))),A(N,B)};U(L,N=>{o(i)&&N(q)})}v(I),v(y),$(N=>{T.disabled=o(a),m.disabled=o(a),R.disabled=N,j(O,o(a)?"Signing in...":"Sign in")},[()=>o(a)||!o(r).trim()||!o(s).trim()]),Je("submit",D,N=>{N.preventDefault(),l()}),Me(T,()=>o(r),N=>g(r,N)),Me(m,()=>o(s),N=>g(s,N)),F("click",P,()=>{g(n,!1),g(i,null)}),A(b,y)};U(x,b=>{o(n)&&b(w)})}F("click",k,()=>{g(n,!0)}),A(h,_)},f=X(()=>Zu());U(u,h=>{o(f)&&h(d)})}v(c),A(e,c),ie()}pe(["click"]);var mS=C('<code class="sh3-consent-scope svelte-14me5sj"> </code>'),gS=C('<dt class="svelte-14me5sj">Peer</dt> <dd class="svelte-14me5sj"> </dd>',1),_S=C('<dt class="svelte-14me5sj">Expires in</dt> <dd class="svelte-14me5sj"> </dd>',1),yS=C('<div class="sh3-consent-backdrop svelte-14me5sj" role="dialog" aria-modal="true" aria-label="Key creation consent"><div class="sh3-consent-card svelte-14me5sj"><h2 class="sh3-consent-title svelte-14me5sj"><span class="svelte-14me5sj"> </span> wants to create a key</h2> <dl class="sh3-consent-fields svelte-14me5sj"><dt class="svelte-14me5sj">Label</dt> <dd class="svelte-14me5sj"> </dd> <dt class="svelte-14me5sj">Scopes</dt> <dd class="sh3-consent-scopes svelte-14me5sj"></dd> <!> <!></dl> <div class="sh3-consent-actions svelte-14me5sj"><button type="button" class="sh3-consent-deny svelte-14me5sj">Deny</button> <button type="button" class="sh3-consent-approve svelte-14me5sj">Approve</button></div></div></div>');function bS(e,t){se(t,!0);let n=z(null);Ce(()=>ld(u=>{g(n,u,!0)}));function r(){o(n)&&(sa(o(n).requestId,!0),g(n,null))}function s(){o(n)&&(sa(o(n).requestId,!1),g(n,null))}var i=at(),a=he(i);{var l=c=>{var u=yS(),d=p(u),f=p(d),h=p(f),_=p(h,!0);v(h),nn(),v(f);var S=E(f,2),k=E(p(S),2),x=p(k,!0);v(k);var w=E(k,4);ue(w,20,()=>o(n).scopes,R=>R,(R,O)=>{var P=mS(),L=p(P,!0);v(P),$(()=>j(L,O)),A(R,P)}),v(w);var b=E(w,2);{var y=R=>{var O=gS(),P=E(he(O),2),L=p(P);v(P),$(()=>j(L,`${o(n).peerRole??"—"??""}${o(n).peerId?` · ${o(n).peerId}`:""}`)),A(R,O)};U(b,R=>{(o(n).peerRole||o(n).peerId)&&R(y)})}var I=E(b,2);{var D=R=>{var O=_S(),P=E(he(O),2),L=p(P);v(P),$(q=>j(L,`${q??""}s`),[()=>Math.round(o(n).expiresIn/1e3)]),A(R,O)};U(I,R=>{o(n).expiresIn&&R(D)})}v(S);var T=E(S,2),m=p(T);dr(m,!0);var M=E(m,2);v(T),v(d),v(u),$(()=>{j(_,o(n).shardId),j(x,o(n).label)}),F("click",m,s),F("click",M,r),A(c,u)};U(a,c=>{o(n)&&c(l)})}A(e,i),ie()}pe(["click"]);var wS=C('<button type="button" class="shell-tabbar-signout svelte-187fra4" title="Sign out"><svg class="shell-tabbar-signout-icon svelte-187fra4" aria-hidden="true"><use></use></svg></button>'),kS=C('<div class="shell-tabbar-user svelte-187fra4"><span class="shell-tabbar-user-name svelte-187fra4"> </span> <span class="shell-tabbar-tag svelte-187fra4"> </span> <!></div>'),SS=C('<div class="shell-overlay-root svelte-187fra4"><!></div>'),xS=C('<div class="shell svelte-187fra4"><header class="shell-tabbar svelte-187fra4" data-shell-region="tabbar"><button type="button" class="shell-tabbar-home-button svelte-187fra4" title="Home"><svg class="shell-tabbar-home-icon svelte-187fra4" aria-hidden="true"><use></use></svg></button> <span class="shell-tabbar-brand svelte-187fra4">SH3</span> <!></header> <!> <main class="shell-content svelte-187fra4" data-shell-region="content" data-shell-layer="0"><!></main> <footer class="shell-statusbar svelte-187fra4" data-shell-region="statusbar"></footer> <div class="shell-overlays svelte-187fra4" aria-hidden="true"></div> <!></div>');function ES(e,t){se(t,!0);const n=X(na),r=X(si),s=X(ln),i=X(()=>zu()==="home"),a=[{layer:1,name:"floating"},{layer:2,name:"drag-preview"},{layer:3,name:"popup"},{layer:4,name:"modal"},{layer:5,name:"toast"},{layer:6,name:"command"}],l=ce({});Ce(()=>{for(const{name:I}of a){const D=l[I];D&&Wm(I,D)}return()=>{for(const{name:I}of a)Ym(I)}}),Ce(()=>{const I=pn.tree;return gg(I.floats,()=>({w:window.innerWidth,h:window.innerHeight})),()=>_g()}),Ce(()=>{pn.tree,ry()}),Ce(()=>na()?cb():void 0);var c=xS(),u=p(c),d=p(u),f=p(d),h=p(f);v(f),v(d);var _=E(d,4);{var S=I=>{var D=kS(),T=p(D),m=p(T,!0);v(T);var M=E(T,2),R=p(M,!0);v(M);var O=E(M,2);{var P=q=>{var N=wS(),B=p(N),Y=p(B);v(B),v(N),$(()=>ke(Y,"href",`${xl}#log-out`)),F("click",N,()=>Yy()),A(q,N)},L=X(()=>!Xy());U(O,q=>{o(L)&&q(P)})}v(D),$(()=>{j(m,o(r).displayName),j(R,o(s)?"admin":"user")}),A(I,D)};U(_,I=>{o(n)&&o(r)&&I(S)})}v(u);var k=E(u,2);pS(k,{});var x=E(k,2),w=p(x);fo(w,{}),v(x);var b=E(x,4);ue(b,21,()=>a,({layer:I,name:D})=>I,(I,D)=>{let T=()=>o(D).layer,m=()=>o(D).name;var M=SS(),R=p(M);{var O=L=>{uS(L,{})},P=L=>{tS(L,{})};U(R,L=>{m()==="floating"?L(O):m()==="drag-preview"&&L(P,1)})}v(M),ut(M,(L,q)=>l[q]=L,L=>l?.[L],()=>[m()]),$(()=>{ke(M,"data-shell-overlay",m()),ke(M,"data-shell-layer",T()),Qt(M,`z-index: var(--shell-z-layer-${T()??""});`)}),A(I,M)}),v(b);var y=E(b,2);bS(y,{}),v(c),$(()=>{d.disabled=o(i),ke(h,"href",`${xl}#house`)}),F("click",d,()=>hd()),A(e,c),ie()}pe(["click"]);pe(["click"]);async function AS(){try{const{TauriStoreBackend:e}=await pd(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:Rl}}}var IS=C('<button type="button" class="signin-link svelte-lh4k15">Create an account</button>'),TS=C('<form class="signin-form svelte-lh4k15"><input class="signin-input svelte-lh4k15" type="text" placeholder="Username" autocomplete="username"/> <input class="signin-input svelte-lh4k15" type="password" placeholder="Password" autocomplete="current-password"/> <button type="submit" class="signin-btn svelte-lh4k15"> </button></form> <!>',1),CS=C('<form class="signin-form svelte-lh4k15"><input class="signin-input svelte-lh4k15" type="text" placeholder="Username" autocomplete="username"/> <input class="signin-input svelte-lh4k15" type="text" placeholder="Display name (optional)"/> <input class="signin-input svelte-lh4k15" type="password" placeholder="Password" autocomplete="new-password"/> <button type="submit" class="signin-btn svelte-lh4k15"> </button></form> <button type="button" class="signin-link svelte-lh4k15">Back to sign in</button>',1),RS=C('<div class="signin-error svelte-lh4k15"> </div>'),PS=C('<div class="signin-wall svelte-lh4k15"><div class="signin-card svelte-lh4k15"><h1 class="signin-brand svelte-lh4k15">SH3</h1> <!> <!></div></div>');function DS(e,t){se(t,!0);let n=z("login"),r=z(""),s=z(""),i=z(""),a=z(null),l=z(!1);async function c(){if(!o(r).trim()||!o(s).trim()||o(l))return;g(l,!0),g(a,null);const b=await Ju(o(r).trim(),o(s).trim());g(l,!1),b.ok?t.onSuccess():g(a,b.error,!0)}async function u(){if(!o(r).trim()||!o(s).trim()||o(l))return;g(l,!0),g(a,null);const b=await Wy(o(r).trim(),o(s).trim(),o(i).trim()||void 0);g(l,!1),b.ok?t.onSuccess():g(a,b.error,!0)}function d(b){g(n,b,!0),g(a,null)}var f=PS(),h=p(f),_=E(p(h),2);{var S=b=>{var y=TS(),I=he(y),D=p(I);Se(D);var T=E(D,2);Se(T);var m=E(T,2),M=p(m,!0);v(m),v(I);var R=E(I,2);{var O=P=>{var L=IS();F("click",L,()=>d("register")),A(P,L)};U(R,P=>{t.selfRegistration&&P(O)})}$(P=>{D.disabled=o(l),T.disabled=o(l),m.disabled=P,j(M,o(l)?"Signing in...":"Sign in")},[()=>o(l)||!o(r).trim()||!o(s).trim()]),Je("submit",I,P=>{P.preventDefault(),c()}),Me(D,()=>o(r),P=>g(r,P)),Me(T,()=>o(s),P=>g(s,P)),A(b,y)},k=b=>{var y=CS(),I=he(y),D=p(I);Se(D);var T=E(D,2);Se(T);var m=E(T,2);Se(m);var M=E(m,2),R=p(M,!0);v(M),v(I);var O=E(I,2);$(P=>{D.disabled=o(l),T.disabled=o(l),m.disabled=o(l),M.disabled=P,j(R,o(l)?"Creating...":"Create account")},[()=>o(l)||!o(r).trim()||!o(s).trim()]),Je("submit",I,P=>{P.preventDefault(),u()}),Me(D,()=>o(r),P=>g(r,P)),Me(T,()=>o(i),P=>g(i,P)),Me(m,()=>o(s),P=>g(s,P)),F("click",O,()=>d("login")),A(b,y)};U(_,b=>{o(n)==="login"?b(S):b(k,-1)})}var x=E(_,2);{var w=b=>{var y=RS(),I=p(y,!0);v(y),$(()=>j(I,o(a))),A(b,y)};U(x,b=>{o(a)&&b(w)})}v(h),v(f),A(e,f),ie()}pe(["click"]);async function MS(e){const t=e?.serverUrl??"",n=await AS();n.backends&&(Ho("workspace",n.backends.workspace),Ho("user",n.backends.user)),n.localOwner&&Gy(),Qu(t),Cb();const r=typeof e?.target=="string"?document.querySelector(e.target):e?.target??document.getElementById("app");if(!r)throw new Error("SH3: mount target not found");let s=null;if(!n.localOwner)try{const a=await fetch(`${t}/api/boot`,{credentials:"include"});a.ok&&(s=await a.json())}catch{}if(n.localOwner)Ci("local");else if(s){ll(t,s),Ci(s.tenantId);const{auth:a,session:l}=s;if(!l&&a.required&&!a.guestAllowed){await OS(r,s);const c=await fetch(`${t}/api/boot`,{credentials:"include"});c.ok&&(s=await c.json(),ll(t,s),Ci(s.tenantId))}}if(e?.discoveredPackages?.length)for(const a of e.discoveredPackages)try{const l=await fetch(a.bundleUrl);if(!l.ok){console.warn(`[sh3] Failed to fetch discovered package "${a.id}": HTTP ${l.status}`);continue}const c=await l.arrayBuffer(),u=await Zr(c);oo(u,{version:a.version,sourceRegistry:a.sourceRegistry??"",contractVersion:a.contractVersion??""}),console.log(`[sh3] Loaded discovered package: ${a.id}`)}catch(l){console.warn(`[sh3] Failed to load discovered package "${a.id}":`,l)}if(e?.shards)for(const a of e.shards)g0(a);if(e?.apps)for(const a of e.apps)Xa(a);const i={};e?.excludeShards&&(i.excludeShards=e.excludeShards),await y0(i),Yu(),ze(ES,{target:r})}function OS(e,t){return new Promise(n=>{const r=ze(DS,{target:e,props:{selfRegistration:t.auth.selfRegistration,onSuccess:()=>{Fe(r),n()}}})})}const vo=window.location.origin;Qu(vo);Fy(new zy(vo));let Ud=[];try{const e=await fetch("/api/packages");e.ok&&(Ud=await e.json())}catch{}await MS({discoveredPackages:Ud,serverUrl:vo});
|
|
18
|
+
//# sourceMappingURL=index-BDMcb52i.js.map
|