sh3-server 0.11.6 → 0.11.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,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 o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).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 Df=1,Pf=2,Ul=4,Mf=8,Of=16,Lf=1,Hl=4,Nf=8,jf=16,zf=1,qf=2,Bf=4,So=1,Kl=2,Vf=4,$f=8,Us="[",Hs="[!",za="[?",Ks="]",Mn={},Ce=Symbol(),gt=Symbol("filename"),Wn=Symbol("hmr"),Wl="http://www.w3.org/1999/xhtml",Ur="http://www.w3.org/2000/svg",xo="http://www.w3.org/1998/Math/MathML",Yl="@attach",Gl=!1;var vr=Array.isArray,Ff=Array.prototype.indexOf,or=Array.prototype.includes,Ws=Array.from,Is=Object.keys,On=Object.defineProperty,qt=Object.getOwnPropertyDescriptor,Xl=Object.getOwnPropertyDescriptors,Jl=Object.prototype,Uf=Array.prototype,Ys=Object.getPrototypeOf,qa=Object.isExtensible,Hf=Object.prototype.hasOwnProperty;function Yn(e){return typeof e=="function"}const bt=()=>{};function Ba(e){return typeof e?.then=="function"}function Kf(e){return e()}function Fi(e){for(var t=0;t<e.length;t++)e[t]()}function Zl(){var e,t,n=new Promise((r,s)=>{e=r,t=s});return{promise:n,resolve:e,reject:t}}function Wf(e,t,n=!1){return e===void 0?n?t():t:e}function Ql(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 Yf(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 He=2,Ln=4,Hr=8,Eo=1<<24,Bt=16,Ft=32,an=64,Ui=128,Rt=512,ze=1024,Ue=2048,Ut=4096,st=8192,ft=16384,cn=32768,Hi=1<<25,Ht=65536,Or=1<<17,ec=1<<18,kn=1<<19,tc=1<<20,Gt=1<<25,Nn=65536,Ki=1<<21,ar=1<<22,mn=1<<23,Je=Symbol("$state"),Gs=Symbol("legacy props"),Gf=Symbol(""),Xf=Symbol("proxy path"),Jf=Symbol("hmr anchor"),Wt=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},Un=!!globalThis.document?.contentType&&globalThis.document.contentType.includes("xml"),nc=1,Kr=3,un=8,rc=11;function sc(e){throw new Error("https://svelte.dev/e/experimental_async_required")}function Zf(){throw new Error("https://svelte.dev/e/invalid_default_snippet")}function Va(){throw new Error("https://svelte.dev/e/invalid_snippet_arguments")}function hr(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function Qf(){throw new Error("https://svelte.dev/e/missing_context")}function ev(){throw new Error("https://svelte.dev/e/snippet_without_render_tag")}function tv(e){throw new Error("https://svelte.dev/e/store_invalid_shape")}function nv(){throw new Error("https://svelte.dev/e/svelte_element_invalid_this_value")}function rv(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function sv(e,t){throw new Error("https://svelte.dev/e/component_api_changed")}function iv(e,t){throw new Error("https://svelte.dev/e/component_api_invalid_new")}function ov(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function av(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function lv(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function cv(e){throw new Error("https://svelte.dev/e/effect_orphan")}function uv(){throw new Error("https://svelte.dev/e/effect_pending_outside_reaction")}function dv(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function fv(){throw new Error("https://svelte.dev/e/fork_discarded")}function vv(){throw new Error("https://svelte.dev/e/fork_timing")}function hv(){throw new Error("https://svelte.dev/e/get_abort_signal_outside_reaction")}function pv(){throw new Error("https://svelte.dev/e/hydration_failed")}function ic(e){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}function mv(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function gv(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function bv(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function yv(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function _v(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}function wv(e,t){console.warn("https://svelte.dev/e/assignment_value_stale")}function kv(e,t){console.warn("https://svelte.dev/e/binding_property_non_reactive")}function Sv(e){console.warn("https://svelte.dev/e/console_log_state")}function xv(){console.warn("https://svelte.dev/e/derived_inert")}function Ev(e,t){console.warn("https://svelte.dev/e/event_handler_invalid")}function Iv(e){console.warn("https://svelte.dev/e/hydratable_missing_but_expected")}function Wr(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function Av(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_binding")}function Cv(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_mutation")}function Tv(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function oc(e){console.warn("https://svelte.dev/e/state_proxy_equality_mismatch")}function Rv(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let X=!1;function xe(e){X=e}let se;function we(e){if(e===null)throw Wr(),Mn;return se=e}function ot(){return we(wt(se))}function v(e){if(X){if(wt(se)!==null)throw Wr(),Mn;se=e}}function Dv(e){X&&(se=e.content)}function on(e=1){if(X){for(var t=e,n=se;t--;)n=wt(n);se=n}}function jn(e=!0){for(var t=0,n=se;;){if(n.nodeType===un){var r=n.data;if(r===Ks){if(t===0)return n;t-=1}else(r===Us||r===Hs||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var s=wt(n);e&&n.remove(),n=s}}function Io(e){if(!e||e.nodeType!==un)throw Wr(),Mn;return e.data}function ac(e){return e===this.v}function lc(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function cc(e){return!lc(e,this.v)}let Pv=!1;function Mv(e){console.warn("https://svelte.dev/e/dynamic_void_element_content")}const Ov=[];function zn(e,t=!1,n=!1){return vs(e,new Map,"",Ov,null,n)}function vs(e,t,n,r,s=null,i=!1){if(typeof e=="object"&&e!==null){var o=t.get(e);if(o!==void 0)return o;if(e instanceof Map)return new Map(e);if(e instanceof Set)return new Set(e);if(vr(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]=vs(u,t,n,r,null,i))}return l}if(Ys(e)===Jl){l={},t.set(e,l),s!==null&&t.set(s,l);for(var d of Object.keys(e))l[d]=vs(e[d],t,n,r,null,i);return l}if(e instanceof Date)return structuredClone(e);if(typeof e.toJSON=="function"&&!i)return vs(e.toJSON(),t,n,r,e)}if(e instanceof EventTarget)return e;try{return structuredClone(e)}catch{return e}}let Hn=null;function uc(e,t){const n=e.v;if(n===Ce)return;const r=Lv(e),s=de,i=e.wv>s.wv||s.wv===0,o=i?"color: CornflowerBlue; font-weight: bold":"color: grey; font-weight: normal";if(console.groupCollapsed(e.label?`%c${r}%c ${e.label}`:`%c${r}%c`,o,i?"font-weight: normal":o,typeof n=="object"&&n!==null&&Je in n?zn(n,!0):n),r==="$derived"){const c=new Set(e.deps);for(const u of c)uc(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 Lv(e){return e.f&(He|ar)?"$derived":e.label?.startsWith("$")?"store":"$state"}function Nv(e,t){var n=Hn;try{Hn={entries:new Map,reaction:de};var r=performance.now(),s=t(),i=(performance.now()-r).toFixed(2),o=Ee(e);if(!Zr())console.log(`${o} %cran outside of an effect (${i}ms)`,"color: grey");else if(Hn.entries.size===0)console.log(`${o} %cno reactive dependencies (${i}ms)`,"color: grey");else{console.group(`${o} %c(${i}ms)`,"color: grey");var l=Hn.entries;Ee(()=>{for(const[c,u]of l)uc(c,u)}),Hn=null,console.groupEnd()}return s}finally{Hn=n}}function jv(e,t){return e.label=t,dc(e.v,t),e}function dc(e,t){return e?.[Xf]?.(t),e}function zv(e){const t=new Error,n=qv();return n.length===0?null:(n.unshift(`
2
+ `),On(t,"stack",{value:n.join(`
3
+ `)}),On(t,"name",{value:e}),t)}function qv(){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],o=i.replaceAll("\\","/");if(i.trim()!=="Error"){if(i.includes("validate_each_keys"))return[];o.includes("svelte/src/internal")||o.includes("node_modules/.vite")||r.push(i)}}return r}let ye=null;function lr(e){ye=e}let hs=null;function Bv(e,t,n,r,s,i){const o=hs;hs={type:t,file:n[gt],line:r,column:s,parent:o,...i};try{return e()}finally{hs=o}}let Ao=null;function $a(e){Ao=e}function Vv(){const e={};return[()=>(fc(e)||Qf(),Co(e)),t=>To(e,t)]}function Co(e){return Xs().get(e)}function To(e,t){return Xs().set(e,t),t}function fc(e){return Xs().has(e)}function $v(){return Xs()}function ne(e,t=!1,n){ye={p:ye,i:!1,c:null,e:null,s:e,x:null,r:ie,l:null}}function re(e){var t=ye,n=t.e;if(n!==null){t.e=null;for(var r of n)Bc(r)}return e!==void 0&&(t.x=e),t.i=!0,ye=t.p,e??{}}function vc(){return!0}function Xs(e){return ye===null&&hr(),ye.c??=new Map(Fv(ye)||void 0)}function Fv(e){let t=e.p;for(;t!==null;){const n=t.c;if(n!==null)return n;t=t.p}return null}let An=[];function hc(){var e=An;An=[],Fi(e)}function it(e){if(An.length===0&&!nr){var t=An;queueMicrotask(()=>{t===An&&hc()})}An.push(e)}function Uv(){for(;An.length>0;)hc()}function pc(e){var t=ie;if(t===null)return de.f|=mn,e;if(!(t.f&cn)&&!(t.f&Ln))throw e;Xt(e,t)}function Xt(e,t){for(;t!==null;){if(t.f&Ui){if(!(t.f&cn))throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const Hv=-7169;function Re(e,t){e.f=e.f&Hv|t}function Ro(e){e.f&Rt||e.deps===null?Re(e,ze):Re(e,Ut)}function mc(e){if(e!==null)for(const t of e)!(t.f&He)||!(t.f&Nn)||(t.f^=Nn,mc(t.deps))}function gc(e,t,n){e.f&Ue?t.add(e):e.f&Ut&&n.add(e),mc(e.deps),Re(e,ze)}function bc(e,t,n){if(e==null)return t(void 0),bt;const r=Ee(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}function Kv(e){let t;return bc(e,n=>t=n)(),t}let Wi=!1,Ar=!1,Yi=Symbol();function Wv(e,t,n){const r=n[t]??={store:null,source:Qs(void 0),unsubscribe:bt};if(r.store!==e&&!(Yi in n))if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=bt;else{var s=!0;r.unsubscribe=bc(e,i=>{s?r.source.v=i:k(r.source,i)}),s=!1}return e&&Yi in n?Kv(e):a(r.source)}function Yv(e,t,n){let r=n[t];return r&&r.store!==e&&(r.unsubscribe(),r.unsubscribe=bt),e}function yc(e,t){return Js(e,t),t}function Gv(e,t){var n=e[t];n.store!==null&&yc(n.store,n.source.v)}function Xv(){const e={};function t(){St(()=>{for(var n in e)e[n].unsubscribe();On(e,Yi,{enumerable:!1,value:!0})})}return[e,t]}function Js(e,t){Wi=!0;try{e.set(t)}finally{Wi=!1}}function Jv(e,t,n){return Js(e,n),t}function Zv(e,t,n=1){return Js(e,t+n),t}function Qv(e,t,n=1){const r=t+n;return Js(e,r),r}function eh(){Ar=!0}function _c(e){var t=Ar;try{return Ar=!1,[e(),Ar]}finally{Ar=t}}const rn=new Set;let ae=null,rt=null,Gi=null,nr=!1,Ti=!1,Zn=null,ps=null;var Fa=0;let th=1;class Ot{id=th++;current=new Map;previous=new Map;#e=new Set;#t=new Set;#n=new Set;#i=new Map;#s=new Map;#o=null;#r=[];#a=[];#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}#b(){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,Ue),n(s);for(s of r.m)Re(s,Ut),n(s)}this.#f.add(t)}#p(){if(Fa++>1e3&&(rn.delete(this),nh()),!this.#d()){for(const l of this.#l)this.#u.delete(l),Re(l,Ue),this.schedule(l);for(const l of this.#u)Re(l,Ut),this.schedule(l)}const t=this.#r;this.#r=[],this.apply();var n=Zn=[],r=[],s=ps=[];for(const l of t)try{this.#g(l,n,r)}catch(c){throw xc(l),c}if(ae=null,s.length>0){var i=Ot.ensure();for(const l of s)i.schedule(l)}if(Zn=null,ps=null,this.#d()||this.#b()){this.#m(r),this.#m(n);for(const[l,c]of this.#c)Sc(l,c)}else{this.#i.size===0&&rn.delete(this),this.#l.clear(),this.#u.clear();for(const l of this.#e)l(this);this.#e.clear(),Ua(r),Ua(n),this.#o?.resolve()}var o=ae;if(this.#r.length>0){const l=o??=this;l.#r.push(...this.#r.filter(c=>!l.#r.includes(c)))}o!==null&&(rn.add(o),o.#p())}#g(t,n,r){t.f^=ze;for(var s=t.first;s!==null;){var i=s.f,o=(i&(Ft|an))!==0,l=o&&(i&ze)!==0,c=l||(i&st)!==0||this.#c.has(s);if(!c&&s.fn!==null){o?s.f^=ze:i&Ln?n.push(s):mr(s)&&(i&Bt&&this.#u.add(s),Bn(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)gc(t[n],this.#l,this.#u)}capture(t,n,r=!1){t.v!==Ce&&!this.previous.has(t)&&this.previous.set(t,t.v),t.f&mn||(this.current.set(t,[n,r]),rt?.set(t,n)),this.is_fork||(t.v=n)}activate(){ae=this}deactivate(){ae=null,rt=null}flush(){try{Ti=!0,ae=this,this.#p()}finally{Fa=0,Gi=null,Zn=null,ps=null,Ti=!1,ae=null,rt=null,Rn.clear()}}discard(){for(const t of this.#t)t(this);this.#t.clear(),this.#n.clear(),rn.delete(this)}register_created_effect(t){this.#a.push(t)}#y(){for(const d of rn){var t=d.id<this.id,n=[];for(const[f,[h,m]]of this.current){if(d.current.has(f)){var r=d.current.get(f)[0];if(t&&h!==r)d.current.set(f,[h,m]);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&(Bt|ar)?d.schedule(h):d.#m([h])});d.activate();var i=new Set,o=new Map;for(var l of n)wc(l,s,i,o);o=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.#a)!(f.f&(ft|st|Or))&&Do(f,c,o)&&(f.f&(ar|Bt)?(Re(f,Ue),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 rn)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,it(()=>{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.#o??=Zl()).promise}static ensure(){if(ae===null){const t=ae=new Ot;Ti||(rn.add(ae),nr||it(()=>{ae===t&&t.flush()}))}return ae}apply(){{rt=null;return}}schedule(t){if(Gi=t,t.b?.is_pending&&t.f&(Ln|Hr|Eo)&&!(t.f&cn)){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var r=n.f;if(Zn!==null&&n===ie&&(de===null||!(de.f&He))&&!Wi)return;if(r&(an|Ft)){if(!(r&ze))return;n.f^=ze}}this.#r.push(n)}}function bn(e){var t=nr;nr=!0;try{var n;for(e&&(ae!==null&&!ae.is_fork&&ae.flush(),n=e());;){if(Uv(),ae===null)return n;ae.flush()}}finally{nr=t}}function nh(){try{dv()}catch(e){Xt(e,Gi)}}let sn=null;function Ua(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&(ft|st))&&mr(r)&&(sn=new Set,Bn(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Kc(r),sn?.size>0)){Rn.clear();for(const s of sn){if(s.f&(ft|st))continue;const i=[s];let o=s.parent;for(;o!==null;)sn.has(o)&&(sn.delete(o),i.push(o)),o=o.parent;for(let l=i.length-1;l>=0;l--){const c=i[l];c.f&(ft|st)||Bn(c)}}sn.clear()}}sn=null}}function wc(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&He?wc(s,t,n,r):i&(ar|Bt)&&!(i&Ue)&&Do(s,t,r)&&(Re(s,Ue),Po(s))}}function kc(e,t){if(e.reactions!==null)for(const n of e.reactions){const r=n.f;r&He?kc(n,t):r&Or&&(Re(n,Ue),t.add(n))}}function Do(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(or.call(t,s))return!0;if(s.f&He&&Do(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function Po(e){ae.schedule(e)}let As=[];function rh(){bn(()=>{const e=As;As=[];for(const t of e)cr(t)})}function sh(e){var t=_t(0),n=!0,r=void 0;return a(t),$c(()=>{if(n){var s=rt;try{rt=null,r=e()}finally{rt=s}return}As.length===0&&it(rh),As.push(t)}),n=!1,r}function Sc(e,t){if(!(e.f&Ft&&e.f&ze)){e.f&Ue?t.d.push(e):e.f&Ut&&t.m.push(e),Re(e,ze);for(var n=e.first;n!==null;)Sc(n,t),n=n.next}}function xc(e){Re(e,ze);for(var t=e.first;t!==null;)xc(t),t=t.next}function ih(e){sc(),ae!==null&&vv();var t=Ot.ensure();t.is_fork=!0,rt=new Map;var n=!1,r=t.settled();return bn(e),{commit:async()=>{if(n){await r;return}rn.has(t)||fv(),n=!0,t.is_fork=!1;for(var[s,[i]]of t.current)s.v=i,s.wv=Ts();t.activate(),t.run_fork_commit_callbacks(),t.deactivate(),bn(()=>{var o=new Set;for(var l of t.current.keys())kc(l,o);mh(o),Dc()}),t.flush(),await r},discard:()=>{for(var s of t.current.keys())s.wv=Ts();!n&&rn.has(t)&&t.discard()}}}function oh(e){let t=0,n=_t(0),r;return()=>{Zr()&&(a(n),Le(()=>(t===0&&(r=Ee(()=>e(()=>Dr(n)))),t+=1,()=>{it(()=>{t-=1,t===0&&(r?.(),r=void 0,Dr(n))})})))}}var ah=Ht|kn;function Ec(e,t,n,r){new lh(e,t,n,r)}class lh{parent;is_pending=!1;transform_error;#e;#t=X?se:null;#n;#i;#s;#o=null;#r=null;#a=null;#l=null;#u=0;#c=0;#f=!1;#h=new Set;#v=new Set;#d=null;#b=oh(()=>(this.#d=_t(this.#u),()=>{this.#d=null}));constructor(t,n,r,s){this.#e=t,this.#n=n,this.#i=i=>{var o=ie;o.b=this,o.f|=Ui,r(i)},this.parent=ie.b,this.transform_error=s??this.parent?.transform_error??(i=>i),this.#s=tn(()=>{if(X){const i=this.#t;ot();const o=i.data===Hs;if(i.data.startsWith(za)){const c=JSON.parse(i.data.slice(za.length));this.#g(c)}else o?this.#m():this.#p()}else this.#y()},ah),X&&(this.#e=se)}#p(){try{this.#o=nt(()=>this.#i(this.#e))}catch(t){this.error(t)}}#g(t){const n=this.#n.failed;n&&(this.#a=nt(()=>{n(this.#e,()=>t,()=>()=>{})}))}#m(){const t=this.#n.pending;t&&(this.is_pending=!0,this.#r=nt(()=>t(this.#e)),it(()=>{var n=this.#l=document.createDocumentFragment(),r=Ke();n.append(r),this.#o=this.#w(()=>nt(()=>this.#i(r))),this.#c===0&&(this.#e.before(n),this.#l=null,Dn(this.#r,()=>{this.#r=null}),this.#_(ae))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#c=0,this.#u=0,this.#o=nt(()=>{this.#i(this.#e)}),this.#c>0){var t=this.#l=document.createDocumentFragment();Bo(this.#o,t);const n=this.#n.pending;this.#r=nt(()=>n(this.#e))}else this.#_(ae)}catch(n){this.error(n)}}#_(t){this.is_pending=!1,t.transfer_effects(this.#h,this.#v)}defer_effect(t){gc(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=ie,r=de,s=ye;Qe(this.#s),vt(this.#s),lr(this.#s.ctx);try{return Ot.ensure(),t()}catch(i){return pc(i),null}finally{Qe(n),vt(r),lr(s)}}#k(t,n){if(!this.has_pending_snippet()){this.parent&&this.parent.#k(t,n);return}this.#c+=t,this.#c===0&&(this.#_(n),this.#r&&Dn(this.#r,()=>{this.#r=null}),this.#l&&(this.#e.before(this.#l),this.#l=null))}update_pending_count(t,n){this.#k(t,n),this.#u+=t,!(!this.#d||this.#f)&&(this.#f=!0,it(()=>{this.#f=!1,this.#d&&Jt(this.#d,this.#u)}))}get_effect_pending(){return this.#b(),a(this.#d)}error(t){if(!this.#n.onerror&&!this.#n.failed)throw t;ae?.is_fork?(this.#o&&ae.skip_effect(this.#o),this.#r&&ae.skip_effect(this.#r),this.#a&&ae.skip_effect(this.#a),ae.on_fork_commit(()=>{this.#S(t)})):this.#S(t)}#S(t){this.#o&&(Be(this.#o),this.#o=null),this.#r&&(Be(this.#r),this.#r=null),this.#a&&(Be(this.#a),this.#a=null),X&&(we(this.#t),on(),we(jn()));var n=this.#n.onerror;let r=this.#n.failed;var s=!1,i=!1;const o=()=>{if(s){Rv();return}s=!0,i&&_v(),this.#a!==null&&Dn(this.#a,()=>{this.#a=null}),this.#w(()=>{this.#y()})},l=c=>{try{i=!0,n?.(c,o),i=!1}catch(u){Xt(u,this.#s&&this.#s.parent)}r&&(this.#a=this.#w(()=>{try{return nt(()=>{var u=ie;u.b=this,u.f|=Ui,r(this.#e,()=>c,()=>o)})}catch(u){return Xt(u,this.#s.parent),null}}))};it(()=>{var c;try{c=this.transform_error(t)}catch(u){Xt(u,this.#s&&this.#s.parent);return}c!==null&&typeof c=="object"&&typeof c.then=="function"?c.then(l,u=>Xt(u,this.#s&&this.#s.parent)):l(c)})}}function ch(){ie===null&&uv();var e=ie.b;return e===null?0:e.get_effect_pending()}function Yr(e,t,n,r){const s=Xr;var i=e.filter(h=>!h.settled);if(n.length===0&&i.length===0){r(t.map(s));return}var o=ie,l=Zs(),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(m){o.f&ft||Xt(m,o)}qn()}if(n.length===0){c.then(()=>u(t.map(s)));return}var d=Gr();function f(){Promise.all(n.map(h=>Ac(h))).then(h=>u([...t.map(s),...h])).catch(h=>Xt(h,o)).finally(()=>d())}c?c.then(()=>{l(),f(),qn()}):f()}function Ic(e,t){Yr(e,[],[],t)}function Zs(){var e=ie,t=de,n=ye,r=ae;return function(i=!0){Qe(e),vt(t),lr(n),i&&!(e.f&ft)&&(r?.activate(),r?.apply())}}async function uh(e){var t=Zs(),n=await e;return()=>(t(),n)}async function Xi(e){var t=Rr;queueMicrotask(()=>{Rr===t&&ms(null)});var n=await e;return()=>(ms(t),queueMicrotask(()=>{Rr===t&&ms(null)}),n)}async function*dh(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 Xi(t.next()))();if(s){n=!0;break}var r=Rr;yield i,ms(r)}}finally{if(!n&&t.return!==void 0)return(await Xi(t.return()))().value}}function qn(e=!0){Qe(null),vt(null),lr(null),e&&ae?.deactivate()}function fh(e){const t=Zs(),n=Gr();var r=ie,s=null;const i=u=>{s={error:u},Qi(r)||Xt(u,r)};var o=Promise.resolve(e[0]()).catch(i),l={promise:o,settled:!1},c=[l];o.finally(()=>{l.settled=!0,qn()});for(const u of e.slice(1)){o=o.then(()=>{if(t(),s)throw s.error;if(Qi(r))throw Wt;return u()}).catch(i);const d={promise:o,settled:!1};c.push(d),o.finally(()=>{d.settled=!0,qn()})}return o.then(()=>Promise.resolve()).finally(()=>n()),c}function vh(e){return Promise.all(e.map(t=>t.promise))}function Gr(){var e=ie,t=e.b,n=ae,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 Rr=null;function ms(e){Rr=e}function Xr(e){var t=He|Ue;return ie!==null&&(ie.f|=kn),{ctx:ye,deps:null,effects:null,equals:ac,f:t,fn:e,reactions:null,rv:0,v:Ce,wv:0,parent:ie,ac:null}}function Ac(e,t,n){let r=ie;r===null&&rv();var s=void 0,i=_t(Ce),o=!de,l=new Map;return Ch(()=>{var c=ie,u=Zl();s=u.promise;try{Promise.resolve(e()).then(u.resolve,u.reject).finally(qn)}catch(m){u.reject(m),qn()}var d=ae;if(o){if(c.f&cn)var f=Gr();if(r.b.is_rendered())l.get(d)?.reject(Wt),l.delete(d);else{for(const m of l.values())m.reject(Wt);l.clear()}l.set(d,u)}const h=(m,x=void 0)=>{if(f){var g=x===Wt;f(g)}if(!(x===Wt||c.f&ft)){if(d.activate(),x)i.f|=mn,Jt(i,x);else{i.f&mn&&(i.f^=mn),Jt(i,m);for(const[_,S]of l){if(l.delete(_),_===d)break;S.reject(Wt)}}d.deactivate()}};u.promise.then(h,m=>h(null,m||"unknown"))}),St(()=>{for(const c of l.values())c.reject(Wt)}),new Promise(c=>{function u(d){function f(){d===s?c(i):u(s)}d.then(f,f)}u(s)})}function F(e){const t=Xr(e);return Gc(t),t}function Mo(e){const t=Xr(e);return t.equals=cc,t}function hh(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)Be(t[n])}}function Oo(e){var t,n=ie,r=e.parent;if(!ln&&r!==null&&r.f&(ft|st))return xv(),e.v;Qe(r);try{e.f&=~Nn,hh(e),t=Zc(e)}finally{Qe(n)}return t}function Cc(e){var t=Oo(e);if(!e.equals(t)&&(e.wv=Ts(),(!ae?.is_fork||e.deps===null)&&(ae!==null?ae.capture(e,t,!0):e.v=t,e.deps===null))){Re(e,ze);return}ln||(rt!==null?(Zr()||ae?.is_fork)&&rt.set(e,t):Ro(e))}function ph(e){if(e.effects!==null)for(const t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(Wt),t.teardown=bt,t.ac=null,Lr(t,0),zo(t))}function Tc(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&Bn(t)}let Cs=new Set;const Rn=new Map;function mh(e){Cs=e}let Rc=!1;function _t(e,t){var n={f:0,v:e,reactions:null,equals:ac,rv:0,wv:0};return n}function q(e,t){const n=_t(e);return Gc(n),n}function Qs(e,t=!1,n=!0){const r=_t(e);return t||(r.equals=cc),r}function gh(e,t){return k(e,Ee(()=>a(e))),t}function k(e,t,n=!1){de!==null&&(!zt||de.f&Or)&&vc()&&de.f&(He|Bt|ar|Or)&&(Dt===null||!or.call(Dt,e))&&yv();let r=n?le(t):t;return Jt(e,r,ps)}function Jt(e,t,n=null){if(!e.equals(t)){Rn.set(e,ln?t:e.v);var r=Ot.ensure();if(r.capture(e,t),e.f&He){const s=e;e.f&Ue&&Oo(s),rt===null&&Ro(s)}e.wv=Ts(),Pc(e,Ue,n),ie!==null&&ie.f&ze&&!(ie.f&(Ft|an))&&(Tt===null?Mh([e]):Tt.push(e)),!r.is_fork&&Cs.size>0&&!Rc&&Dc()}return t}function Dc(){Rc=!1;for(const e of Cs)e.f&ze&&Re(e,Ut),mr(e)&&Bn(e);Cs.clear()}function cr(e,t=1){var n=a(e),r=t===1?n++:n--;return k(e,n),r}function bh(e,t=1){var n=a(e);return k(e,t===1?++n:--n)}function Dr(e){k(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 o=r[i],l=o.f,c=(l&Ue)===0;if(c&&Re(o,t),l&He){var u=o;rt?.delete(u),l&Nn||(l&Rt&&(o.f|=Nn),Pc(u,Ut,n))}else if(c){var d=o;l&Bt&&sn!==null&&sn.add(d),n!==null?n.push(d):Po(d)}}}function le(e){if(typeof e!="object"||e===null||Je in e)return e;const t=Ys(e);if(t!==Jl&&t!==Uf)return e;var n=new Map,r=vr(e),s=q(0),i=Pn,o=l=>{if(Pn===i)return l();var c=de,u=Pn;vt(null),Wa(i);var d=l();return vt(c),Wa(u),d};return r&&n.set("length",q(e.length)),new Proxy(e,{defineProperty(l,c,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&gv();var d=n.get(c);return d===void 0?o(()=>{var f=q(u.value);return n.set(c,f),f}):k(d,u.value,!0),!0},deleteProperty(l,c){var u=n.get(c);if(u===void 0){if(c in l){const d=o(()=>q(Ce));n.set(c,d),Dr(s)}}else k(u,Ce),Dr(s);return!0},get(l,c,u){if(c===Je)return e;var d=n.get(c),f=c in l;if(d===void 0&&(!f||qt(l,c)?.writable)&&(d=o(()=>{var m=le(f?l[c]:Ce),x=q(m);return x}),n.set(c,d)),d!==void 0){var h=a(d);return h===Ce?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=a(d))}else if(u===void 0){var f=n.get(c),h=f?.v;if(f!==void 0&&h!==Ce)return{enumerable:!0,configurable:!0,value:h,writable:!0}}return u},has(l,c){if(c===Je)return!0;var u=n.get(c),d=u!==void 0&&u.v!==Ce||Reflect.has(l,c);if(u!==void 0||ie!==null&&(!d||qt(l,c)?.writable)){u===void 0&&(u=o(()=>{var h=d?le(l[c]):Ce,m=q(h);return m}),n.set(c,u));var f=a(u);if(f===Ce)return!1}return d},set(l,c,u,d){var f=n.get(c),h=c in l;if(r&&c==="length")for(var m=u;m<f.v;m+=1){var x=n.get(m+"");x!==void 0?k(x,Ce):m in l&&(x=o(()=>q(Ce)),n.set(m+"",x))}if(f===void 0)(!h||qt(l,c)?.writable)&&(f=o(()=>q(void 0)),k(f,le(u)),n.set(c,f));else{h=f.v!==Ce;var g=o(()=>le(u));k(f,g)}var _=Reflect.getOwnPropertyDescriptor(l,c);if(_?.set&&_.set.call(d,u),!h){if(r&&typeof c=="string"){var S=n.get("length"),y=Number(c);Number.isInteger(y)&&y>=S.v&&k(S,y+1)}Dr(s)}return!0},ownKeys(l){a(s);var c=Reflect.ownKeys(l).filter(f=>{var h=n.get(f);return h===void 0||h.v!==Ce});for(var[u,d]of n)d.v!==Ce&&!(u in l)&&c.push(u);return c},setPrototypeOf(){bv()}})}function ur(e){try{if(e!==null&&typeof e=="object"&&Je in e)return e[Je]}catch{}return e}function Mc(e,t){return Object.is(ur(e),ur(t))}function yh(e,t,n=!0){try{e===t!=(ur(e)===ur(t))&&oc(n?"===":"!==")}catch{}return e===t===n}function _h(e,t,n=!0){return e==t!=(ur(e)==ur(t))&&oc(),e==t===n}var Ji,Oc,Lo,Lc,Nc;function Zi(){if(Ji===void 0){Ji=window,Oc=document,Lo=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Lc=qt(t,"firstChild").get,Nc=qt(t,"nextSibling").get,qa(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),qa(n)&&(n.__t=void 0)}}function Ke(e=""){return document.createTextNode(e)}function Te(e){return Lc.call(e)}function wt(e){return Nc.call(e)}function p(e,t){if(!X)return Te(e);var n=Te(se);if(n===null)n=se.appendChild(Ke());else if(t&&n.nodeType!==Kr){var r=Ke();return n?.before(r),we(r),r}return t&&ei(n),we(n),n}function fe(e,t=!1){if(!X){var n=Te(e);return n instanceof Comment&&n.data===""?wt(n):n}if(t){if(se?.nodeType!==Kr){var r=Ke();return se?.before(r),we(r),r}ei(se)}return se}function E(e,t=1,n=!1){let r=X?se:e;for(var s;t--;)s=r,r=wt(r);if(!X)return r;if(n){if(r?.nodeType!==Kr){var i=Ke();return r===null?s?.after(i):r.before(i),we(i),i}ei(r)}return we(r),r}function No(e){e.textContent=""}function jc(){return!1}function Sn(e,t,n){let r=n?{is:n}:void 0;return document.createElementNS(t??Wl,e,r)}function wh(){return document.createDocumentFragment()}function zc(e=""){return document.createComment(e)}function kh(e,t,n=""){if(t.startsWith("xlink:")){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n);return}return e.setAttribute(t,n)}function ei(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===Kr;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function pr(e,t){if(t){const n=document.body;e.autofocus=!0,it(()=>{document.activeElement===n&&e.focus()})}}function Sh(e){X&&Te(e)!==null&&No(e)}let Ha=!1;function qc(){Ha||(Ha=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function ht(e,t,n,r=!0){r&&n();for(var s of t)e.addEventListener(s,n);St(()=>{for(var i of t)e.removeEventListener(i,n)})}function xn(e){var t=de,n=ie;vt(null),Qe(null);try{return e()}finally{vt(t),Qe(n)}}function Jr(e,t,n,r=n){e.addEventListener(t,()=>xn(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),qc()}function jo(e){ie===null&&(de===null&&cv(),lv()),ln&&av()}function xh(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function pt(e,t){var n=ie;n!==null&&n.f&st&&(e|=st);var r={ctx:ye,deps:null,nodes:null,f:e|Ue|Rt,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};ae?.register_created_effect(r);var s=r;if(e&Ln)Zn!==null?Zn.push(r):Ot.ensure().schedule(r);else if(t!==null){try{Bn(r)}catch(o){throw Be(r),o}s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&!(s.f&kn)&&(s=s.first,e&Bt&&e&Ht&&s!==null&&(s.f|=Ht))}if(s!==null&&(s.parent=n,n!==null&&xh(s,n),de!==null&&de.f&He&&!(e&an))){var i=de;(i.effects??=[]).push(s)}return r}function Zr(){return de!==null&&!zt}function St(e){const t=pt(Hr,null);return Re(t,ze),t.teardown=e,t}function Ie(e){jo();var t=ie.f,n=!de&&(t&Ft)!==0&&(t&cn)===0;if(n){var r=ye;(r.e??=[]).push(e)}else return Bc(e)}function Bc(e){return pt(Ln|tc,e)}function Vc(e){return jo(),pt(Hr|tc,e)}function $c(e){return pt(Or,e)}function ti(e){Ot.ensure();const t=pt(an|kn,e);return()=>{Be(t)}}function Eh(e){Ot.ensure();const t=pt(an|kn,e);return(n={})=>new Promise(r=>{n.outro?Dn(t,()=>{Be(t),r(void 0)}):(Be(t),r(void 0))})}function kt(e){return pt(Ln,e)}function Ih(e,t){var n=ye,r={effect:null,ran:!1,deps:e};n.l.$.push(r),r.effect=Le(()=>{if(e(),!r.ran){r.ran=!0;var s=ie;try{Qe(s.parent),Ee(t)}finally{Qe(s)}}})}function Ah(){var e=ye;Le(()=>{for(var t of e.l.$){t.deps();var n=t.effect;n.f&ze&&n.deps!==null&&Re(n,Ut),mr(n)&&Bn(n),t.ran=!1}})}function Ch(e){return pt(ar|kn,e)}function Le(e,t=0){return pt(Hr|t,e)}function z(e,t=[],n=[],r=[]){Yr(r,t,n,s=>{pt(Hr,()=>e(...s.map(a)))})}function Th(e,t=[],n=[],r=[]){if(n.length>0||r.length>0)var s=Gr();Yr(r,t,n,i=>{pt(Ln,()=>e(...i.map(a))),s&&s()})}function tn(e,t=0){var n=pt(Bt|t,e);return n}function Fc(e,t=0){var n=pt(Eo|t,e);return n}function nt(e){return pt(Ft|kn,e)}function Uc(e){var t=e.teardown;if(t!==null){const n=ln,r=de;Ka(!0),vt(null);try{t.call(null)}finally{Ka(n),vt(r)}}}function zo(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&xn(()=>{s.abort(Wt)});var r=n.next;n.f&an?n.parent=null:Be(n,t),n=r}}function Rh(e){for(var t=e.first;t!==null;){var n=t.next;t.f&Ft||Be(t),t=n}}function Be(e,t=!0){var n=!1;(t||e.f&ec)&&e.nodes!==null&&e.nodes.end!==null&&(Hc(e.nodes.start,e.nodes.end),n=!0),Re(e,Hi),zo(e,t&&!n),Lr(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const i of r)i.stop();Uc(e),e.f^=Hi,e.f|=ft;var s=e.parent;s!==null&&s.first!==null&&Kc(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Hc(e,t){for(;e!==null;){var n=e===t?null:wt(e);e.remove(),e=n}}function Kc(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function Dn(e,t,n=!0){var r=[];Wc(e,r,!0);var s=()=>{n&&Be(e),t&&t()},i=r.length;if(i>0){var o=()=>--i||s();for(var l of r)l.out(o)}else s()}function Wc(e,t,n){if(!(e.f&st)){e.f^=st;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&an)){var o=(s.f&Ht)!==0||(s.f&Ft)!==0&&(e.f&Bt)!==0;Wc(s,t,o?n:!1)}s=i}}}function qo(e){Yc(e,!0)}function Yc(e,t){if(e.f&st){e.f^=st,e.f&ze||(Re(e,Ue),Ot.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&Ht)!==0||(n.f&Ft)!==0;Yc(n,s?t:!1),n=r}var i=e.nodes&&e.nodes.t;if(i!==null)for(const o of i)(o.is_global||t)&&o.in()}}function Qi(e=ie){return(e.f&ft)!==0}function Bo(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:wt(n);t.append(n),n=s}}let Gn=null;function Dh(e){var t=Gn;try{if(Gn=new Set,Ee(e),t!==null)for(var n of Gn)t.add(n);return Gn}finally{Gn=t}}function Ph(e){for(var t of Dh(e))Jt(t,t.v)}let gs=!1,ln=!1;function Ka(e){ln=e}let de=null,zt=!1;function vt(e){de=e}let ie=null;function Qe(e){ie=e}let Dt=null;function Gc(e){de!==null&&(Dt===null?Dt=[e]:Dt.push(e))}let ct=null,mt=0,Tt=null;function Mh(e){Tt=e}let Xc=1,Cn=0,Pn=Cn;function Wa(e){Pn=e}function Ts(){return++Xc}function mr(e){var t=e.f;if(t&Ue)return!0;if(t&He&&(e.f&=~Nn),t&Ut){for(var n=e.deps,r=n.length,s=0;s<r;s++){var i=n[s];if(mr(i)&&Cc(i),i.wv>e.wv)return!0}t&Rt&&rt===null&&Re(e,ze)}return!1}function Jc(e,t,n=!0){var r=e.reactions;if(r!==null&&!(Dt!==null&&or.call(Dt,e)))for(var s=0;s<r.length;s++){var i=r[s];i.f&He?Jc(i,t,!1):t===i&&(n?Re(i,Ue):i.f&ze&&Re(i,Ut),Po(i))}}function Zc(e){var t=ct,n=mt,r=Tt,s=de,i=Dt,o=ye,l=zt,c=Pn,u=e.f;ct=null,mt=0,Tt=null,de=u&(Ft|an)?null:e,Dt=null,lr(e.ctx),zt=!1,Pn=++Cn,e.ac!==null&&(xn(()=>{e.ac.abort(Wt)}),e.ac=null);try{e.f|=Ki;var d=e.fn,f=d();e.f|=cn;var h=e.deps,m=ae?.is_fork;if(ct!==null){var x;if(m||Lr(e,mt),h!==null&&mt>0)for(h.length=mt+ct.length,x=0;x<ct.length;x++)h[mt+x]=ct[x];else e.deps=h=ct;if(Zr()&&e.f&Rt)for(x=mt;x<h.length;x++)(h[x].reactions??=[]).push(e)}else!m&&h!==null&&mt<h.length&&(Lr(e,mt),h.length=mt);if(vc()&&Tt!==null&&!zt&&h!==null&&!(e.f&(He|Ut|Ue)))for(x=0;x<Tt.length;x++)Jc(Tt[x],e);if(s!==null&&s!==e){if(Cn++,s.deps!==null)for(let g=0;g<n;g+=1)s.deps[g].rv=Cn;if(t!==null)for(const g of t)g.rv=Cn;Tt!==null&&(r===null?r=Tt:r.push(...Tt))}return e.f&mn&&(e.f^=mn),f}catch(g){return pc(g)}finally{e.f^=Ki,ct=t,mt=n,Tt=r,de=s,Dt=i,lr(o),zt=l,Pn=c}}function Oh(e,t){let n=t.reactions;if(n!==null){var r=Ff.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&He&&(ct===null||!or.call(ct,t))){var i=t;i.f&Rt&&(i.f^=Rt,i.f&=~Nn),i.v!==Ce&&Ro(i),ph(i),Lr(i,0)}}function Lr(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)Oh(e,n[r])}function Bn(e){var t=e.f;if(!(t&ft)){Re(e,ze);var n=ie,r=gs;ie=e,gs=!0;try{t&(Bt|Eo)?Rh(e):zo(e),Uc(e);var s=Zc(e);e.teardown=typeof s=="function"?s:null,e.wv=Xc;var i;Gl&&Pv&&e.f&Ue&&e.deps}finally{gs=r,ie=n}}}async function Vo(){await Promise.resolve(),bn()}function Lh(){return Ot.ensure().settled()}function a(e){var t=e.f,n=(t&He)!==0;if(Gn?.add(e),de!==null&&!zt){var r=ie!==null&&(ie.f&ft)!==0;if(!r&&(Dt===null||!or.call(Dt,e))){var s=de.deps;if(de.f&Ki)e.rv<Cn&&(e.rv=Cn,ct===null&&s!==null&&s[mt]===e?mt++:ct===null?ct=[e]:ct.push(e));else{(de.deps??=[]).push(e);var i=e.reactions;i===null?e.reactions=[de]:or.call(i,de)||i.push(de)}}}if(ln&&Rn.has(e))return Rn.get(e);if(n){var o=e;if(ln){var l=o.v;return(!(o.f&ze)&&o.reactions!==null||eu(o))&&(l=Oo(o)),Rn.set(o,l),l}var c=(o.f&Rt)===0&&!zt&&de!==null&&(gs||(de.f&Rt)!==0),u=(o.f&cn)===0;mr(o)&&(c&&(o.f|=Rt),Cc(o)),c&&!u&&(Tc(o),Qc(o))}if(rt?.has(e))return rt.get(e);if(e.f&mn)throw e.v;return e.v}function Qc(e){if(e.f|=Rt,e.deps!==null)for(const t of e.deps)(t.reactions??=[]).push(e),t.f&He&&!(t.f&Rt)&&(Tc(t),Qc(t))}function eu(e){if(e.v===Ce)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(Rn.has(t)||t.f&He&&eu(t))return!0;return!1}function Nh(e){return e&&a(e)}function Ee(e){var t=zt;try{return zt=!0,e()}finally{zt=t}}function $o(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if(Je in e)Rs(e);else if(!Array.isArray(e))for(let t in e){const n=e[t];typeof n=="object"&&n&&Je in n&&Rs(n)}}}function Rs(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{Rs(e[r],t)}catch{}const n=Ys(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){const r=Xl(n);for(let s in r){const i=r[s].get;if(i)try{i.call(e)}catch{}}}}}function jh(e,t){if(sc(),X){const n=window.__svelte?.h;if(n?.has(e))return n.get(e);Iv()}return t()}const Cr=Symbol("events"),tu=new Set,eo=new Set;function zh(e){if(!X)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 nu(e,t,n,r={}){function s(i){if(r.capture||to.call(t,i),!i.cancelBubble)return xn(()=>n?.call(this,i))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?it(()=>{t.addEventListener(e,s,r)}):t.addEventListener(e,s,r),s}function et(e,t,n,r,s){var i={capture:r,passive:s},o=nu(e,t,n,i);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&St(()=>{t.removeEventListener(e,o,i)})}function U(e,t,n){(t[Cr]??={})[e]=n}function ue(e){for(var t=0;t<e.length;t++)tu.add(e[t]);for(var n of eo)n(e)}let Ya=null;function to(e){var t=this,n=t.ownerDocument,r=e.type,s=e.composedPath?.()||[],i=s[0]||e.target;Ya=e;var o=0,l=Ya===e&&e[Cr];if(l){var c=s.indexOf(l);if(c!==-1&&(t===document||t===window)){e[Cr]=t;return}var u=s.indexOf(t);if(u===-1)return;c<=u&&(o=c)}if(i=s[o]||e.target,i!==t){On(e,"currentTarget",{configurable:!0,get(){return i||n}});var d=de,f=ie;vt(null),Qe(null);try{for(var h,m=[];i!==null;){var x=i.assignedSlot||i.parentNode||i.host||null;try{var g=i[Cr]?.[r];g!=null&&(!i.disabled||e.target===i)&&g.call(i,e)}catch(_){h?m.push(_):h=_}if(e.cancelBubble||x===t||x===null)break;i=x}if(h){for(let _ of m)queueMicrotask(()=>{throw _});throw h}}finally{e[Cr]=t,delete e.currentTarget,vt(d),Qe(f)}}}function qh(e,t,n,r,s,i=!1,o=!1){let l,c;try{l=e()}catch(u){c=u}if(typeof l!="function"&&(i||l!=null||c)){const u=r?.[gt];s?`${u}${s[0]}${s[1]}`:`${u}`;const d=n[0]?.eventPhase<Event.BUBBLING_PHASE?"capture":"";if(n[0]?.type+d,Ev(),c)throw c}l?.apply(t,n)}const Bh=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function ru(e){return Bh?.createHTML(e)??e}function Fo(e){var t=Sn("template");return t.innerHTML=ru(e.replaceAll("<!>","<!---->")),t.content}const Vh=Un?"template":"TEMPLATE",$h=Un?"script":"SCRIPT";function Ve(e,t){var n=ie;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function A(e,t){var n=(t&So)!==0,r=(t&Kl)!==0,s,i=!e.startsWith("<!>");return()=>{if(X)return Ve(se,null),se;s===void 0&&(s=Fo(i?e:"<!>"+e),n||(s=Te(s)));var o=r||Lo?document.importNode(s,!0):s.cloneNode(!0);if(n){var l=Te(o),c=o.lastChild;Ve(l,c)}else Ve(o,o);return o}}function su(e,t,n="svg"){var r=!e.startsWith("<!>"),s=(t&So)!==0,i=`<${n}>${r?e:"<!>"+e}</${n}>`,o;return()=>{if(X)return Ve(se,null),se;if(!o){var l=Fo(i),c=Te(l);if(s)for(o=document.createDocumentFragment();Te(c);)o.appendChild(Te(c));else o=Te(c)}var u=o.cloneNode(!0);if(s){var d=Te(u),f=u.lastChild;Ve(d,f)}else Ve(u,u);return u}}function iu(e,t){return su(e,t,"svg")}function Fh(e,t){return su(e,t,"math")}function ou(e,t){var n=wh();for(var r of e){if(typeof r=="string"){n.append(Ke(r));continue}if(r===void 0||r[0][0]==="/"){n.append(zc(r?r[0].slice(3):""));continue}const[l,c,...u]=r,d=l==="svg"?Ur:l==="math"?xo:t;var s=Sn(l,d,c?.is);for(var i in c)kh(s,i,c[i]);if(u.length>0){var o=s.nodeName===Vh?s.content:s;o.append(ou(u,s.nodeName==="foreignObject"?void 0:d))}n.append(s)}return n}function Uh(e,t){var n=(t&So)!==0,r=(t&Kl)!==0,s;return()=>{if(X)return Ve(se,null),se;if(s===void 0){const c=t&Vf?Ur:t&$f?xo:void 0;s=ou(e,c),n||(s=Te(s))}var i=r||Lo?document.importNode(s,!0):s.cloneNode(!0);if(n){var o=Te(i),l=i.lastChild;Ve(o,l)}else Ve(i,i);return i}}function Hh(e){return()=>Kh(e())}function Kh(e){if(X)return e;const t=e.nodeType===rc,n=e.nodeName===$h?[e]:e.querySelectorAll("script"),r=ie;for(const i of n){const o=Sn("script");for(var s of i.attributes)o.setAttribute(s.name,s.value);o.textContent=i.textContent,(t?e.firstChild===i:e===i)&&(r.nodes.start=o),(t?e.lastChild===i:e===i)&&(r.nodes.end=o),i.replaceWith(o)}return e}function Vt(e=""){if(!X){var t=Ke(e+"");return Ve(t,t),t}var n=se;return n.nodeType!==Kr?(n.before(n=Ke()),we(n)):ei(n),Ve(n,n),n}function ut(){if(X)return Ve(se,null),se;var e=document.createDocumentFragment(),t=document.createComment(""),n=Ke();return e.append(t,n),Ve(t,n),e}function I(e,t){if(X){var n=ie;(!(n.f&cn)||n.nodes.end===null)&&(n.nodes.end=se),ot();return}e!==null&&e.before(t)}function Wh(){if(X&&se&&se.nodeType===un&&se.textContent?.startsWith("$")){const e=se.textContent.substring(1);return ot(),e}return(window.__svelte??={}).uid??=1,`c${window.__svelte.uid++}`}const Yh=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function Gh(e){return Yh.includes(e)||e.toLowerCase()==="!doctype"}function Xh(e){return e.endsWith("capture")&&e!=="gotpointercapture"&&e!=="lostpointercapture"}const Jh=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function Zh(e){return Jh.includes(e)}const Qh={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 ep(e){return e=e.toLowerCase(),Qh[e]??e}const tp=["touchstart","touchmove"];function np(e){return tp.includes(e)}const rp=["textarea","script","style","title"];function sp(e){return rp.includes(e)}function au(e){return e?.replace(/\//g,"/​")}let Ds=!0;function Qn(e){Ds=e}function L(e,t){var n=t==null?"":typeof t=="object"?`${t}`:t;n!==(e.__t??=e.nodeValue)&&(e.__t=n,e.nodeValue=`${n}`)}function Oe(e,t){return cu(e,t)}function lu(e,t){Zi(),t.intro=t.intro??!1;const n=t.target,r=X,s=se;try{for(var i=Te(n);i&&(i.nodeType!==un||i.data!==Us);)i=wt(i);if(!i)throw Mn;xe(!0),we(i);const o=cu(e,{...t,anchor:i});return xe(!1),o}catch(o){if(o instanceof Error&&o.message.split(`
5
+ `).some(l=>l.startsWith("https://svelte.dev/e/")))throw o;return o!==Mn&&console.warn("Failed to hydrate: ",o),t.recover===!1&&pv(),Zi(),No(n),xe(!1),Oe(e,t)}finally{xe(r),we(s)}}const ds=new Map;function cu(e,{target:t,anchor:n,props:r={},events:s,context:i,intro:o=!0,transformError:l}){Zi();var c=void 0,u=Eh(()=>{var d=n??t.appendChild(Ke());Ec(d,{pending:()=>{}},m=>{ne({});var x=ye;if(i&&(x.c=i),s&&(r.$$events=s),X&&Ve(m,null),Ds=o,c=e(m,r)||{},Ds=!0,X&&(ie.nodes.end=se,se===null||se.nodeType!==un||se.data!==Ks))throw Wr(),Mn;re()},l);var f=new Set,h=m=>{for(var x=0;x<m.length;x++){var g=m[x];if(!f.has(g)){f.add(g);var _=np(g);for(const b of[t,document]){var S=ds.get(b);S===void 0&&(S=new Map,ds.set(b,S));var y=S.get(g);y===void 0?(b.addEventListener(g,to,{passive:_}),S.set(g,1)):S.set(g,y+1)}}}};return h(Ws(tu)),eo.add(h),()=>{for(var m of f)for(const _ of[t,document]){var x=ds.get(_),g=x.get(m);--g==0?(_.removeEventListener(m,to),x.delete(m),x.size===0&&ds.delete(_)):x.set(m,g)}eo.delete(h),d!==n&&d.parentNode?.removeChild(d)}});return no.set(c,u),c}let no=new WeakMap;function Fe(e,t){const n=no.get(e);return n?(no.delete(e),n(t)):Promise.resolve()}function ip(e){const t=e();t&&Gh(t)&&Mv()}function op(e){const t=e();t&&!(typeof t=="string")&&nv()}function ap(e,t){e!=null&&typeof e.subscribe!="function"&&tv()}function uu(e){return e.toString=()=>(ev(),""),e}class gr{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}#o=t=>{if(this.#e.has(t)){var n=this.#e.get(t),r=this.#t.get(n);if(r)qo(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,o]of this.#e){if(this.#e.delete(i),i===t)break;const l=this.#n.get(o);l&&(Be(l.effect),this.#n.delete(o))}for(const[i,o]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();Bo(o,u),u.append(Ke()),this.#n.set(i,{effect:o,fragment:u})}else Be(o);this.#i.delete(i),this.#t.delete(i)};this.#s||!r?(this.#i.add(i),Dn(o,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)||(Be(s.effect),this.#n.delete(r))};ensure(t,n){var r=ae,s=jc();if(n&&!this.#t.has(t)&&!this.#n.has(t))if(s){var i=document.createDocumentFragment(),o=Ke();i.append(o),this.#n.set(t,{effect:nt(()=>n(o)),fragment:i})}else this.#t.set(t,nt(()=>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.#o),r.ondiscard(this.#r)}else X&&(this.anchor=se),this.#o(r)}}function ni(e,t,...n){var r=new gr(e);tn(()=>{const s=t()??null;r.ensure(s,s&&(i=>s(i,...n)))},Ht)}function lp(e,t){const n=(r,...s)=>{var i=Ao;$a(e);try{return t(r,...s)}finally{$a(i)}};return uu(n),n}function cp(e){return(t,...n)=>{var r=e(...n),s;if(X)s=se,ot();else{var i=r.render().trim(),o=Fo(i);s=Te(o),t.before(s)}const l=r.setup?.(s);Ve(s,s),typeof l=="function"&&St(l)}}function up(){return de===null&&hv(),(de.ac??=new AbortController).signal}function Uo(e){ye===null&&hr(),Ie(()=>{const t=Ee(e);if(typeof t=="function")return t})}function Ho(e){ye===null&&hr(),Uo(()=>()=>Ee(e))}function dp(e,t,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(e,{detail:t,bubbles:n,cancelable:r})}function fp(){const e=ye;return e===null&&hr(),(t,n,r)=>{const s=e.s.$$events?.[t];if(s){const i=vr(s)?s.slice():[s],o=dp(t,n,r);for(const l of i)l.call(e.x,o);return!o.defaultPrevented}return!0}}function vp(e){ye===null&&hr(),ye.l===null&&ic(),du(ye).b.push(e)}function hp(e){ye===null&&hr(),ye.l===null&&ic(),du(ye).a.push(e)}function du(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}const fu=Object.freeze(Object.defineProperty({__proto__:null,afterUpdate:hp,beforeUpdate:vp,createContext:Vv,createEventDispatcher:fp,createRawSnippet:cp,flushSync:bn,fork:ih,getAbortSignal:up,getAllContexts:$v,getContext:Co,hasContext:fc,hydratable:jh,hydrate:lu,mount:Oe,onDestroy:Ho,onMount:Uo,setContext:To,settled:Lh,tick:Vo,unmount:Fe,untrack:Ee},Symbol.toStringTag,{value:"Module"}));function pp(){return Symbol(Yl)}function vu(e,t,n,r){return e!==t&&typeof t=="object"&&Je in t&&wv(n,au(r)),e}function mp(e,t,n,r,s){return vu(n==="="?e[t]=r:n==="&&="?e[t]&&=r():n==="||="?e[t]||=r():n==="??="?e[t]??=r():null,Ee(()=>e[t]),t,s)}async function gp(e,t,n,r,s){return vu(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 Ga=new Map;function bp(e){var t=Ga.get(e);if(t){for(const n of t)n.remove();Ga.delete(e)}}function yp(e,t,n){return(...r)=>{const s=e(...r);var i=X?s:s.nodeType===rc?s.firstChild:s;return hu(i,t,n),s}}function _p(e,t,n){e.__svelte_meta={parent:hs,loc:{file:t,line:n[0],column:n[1]}},n[2]&&hu(e.firstChild,t,n[2])}function hu(e,t,n){for(var r=0,s=0;e&&r<n.length;){if(X&&e.nodeType===un){var i=e;i.data[0]===Us?s+=1:i.data[0]===Ks&&(s-=1)}s===0&&e.nodeType===nc&&_p(e,t,n[r++]),e=e.nextSibling}}function wp(e){const t=_t(e);function n(r,s){let i={},o={},l,c=!1,u=r;return tn(()=>{if(i!==(i=a(t))){if(l){for(var d in o)delete o[d];Be(l)}l=nt(()=>{u=u[Jf]??u,c&&Qn(!1);var f=new.target?new i(u,s):i(u,s);f&&Object.defineProperties(o,Object.getOwnPropertyDescriptors(f)),c&&Qn(!0)}),ie.nodes=l.nodes}},Ht),c=!0,X&&(u=se),o}return n[gt]=e[gt],n[Wn]={fn:e,current:t,update:r=>{k(n[Wn].current,r[Wn].fn),r[Wn].current=n[Wn].current}},n}function kp(e){const t=ye?.function,n=ye?.p?.function;return{mutation:(r,s,i,o,l)=>{const c=s[0];if(Xa(e,c)||!n)return i;let u=e;for(let f=0;f<s.length-1;f++)if(u=u[s[f]],!u?.[Je])return i;const d=au(`${t[gt]}:${o}:${l}`);return Cv(c,d,r,n[gt]),i},binding:(r,s,i)=>{!Xa(e,r)&&n&&i()?.[Je]&&Av(t[gt],r,s[gt],n[gt])}}}function Xa(e,t){const n=Je in e||Gs in e;return!!qt(e,t)?.set||n&&t in e||!(t in e)}function Sp(e){e&&iv(e[gt]??"a component",e.name)}function xp(){const e=ye?.function;function t(n){sv(n,e[gt])}return{$destroy:()=>t("$destroy()"),$on:()=>t("$on(...)"),$set:()=>t("$set(...)")}}function Ep(e,t,n=!1){jo();let r=!0,s=Ce;$c(()=>{try{var i=e()}catch(l){s=l;return}var o=zn(i,!0,!0);Ee(()=>{if(n){if(t(...o),!r){const l=zv("$inspect(...)");l&&(console.groupCollapsed("stack trace"),console.log(l),console.groupEnd())}}else t(r?"init":"update",...o)}),r=!1}),Le(()=>{try{e()}catch{}s!==Ce&&(console.error(s),s=Ce)})}function Ip(e,t=[],n=[],r){var s=X,i=null;if(s&&(ot(),i=jn(!1)),n.length===0&&t.every(c=>c.settled)){r(e),s&&we(i);return}const o=Gr();if(s){var l=se;we(i)}Yr(t,[],n,c=>{s&&(xe(!0),we(l));try{for(const u of c)a(u);r(e,...c)}finally{s&&xe(!1),o()}})}function Ap(e,...t){(typeof e!="object"||!(e instanceof Node))&&Va();for(let n of t)typeof n!="function"&&Va()}const Ja=0,Za=1,Cp=2;function Tp(e,t,n,r,s){X&&ot();var i=Ce,o=_t(i),l=_t(i),c=new gr(e);tn(()=>{var u=ae;u.deactivate();var d=t();u.activate();var f=!1;let h=X&&Ba(d)===(e.data===Hs);if(h&&(we(jn()),xe(!1)),Ba(d)){var m=Zs(),x=!1;const g=_=>{if(!f){x=!0,m(!1),Ot.ensure(),X&&xe(!1);try{_()}finally{qn(!1),nr||bn()}}};d.then(_=>{g(()=>{Jt(o,_),c.ensure(Za,r&&(S=>r(S,o)))})},_=>{g(()=>{if(Jt(l,_),c.ensure(Cp,s&&(S=>s(S,l))),!s)throw l.v})}),X?c.ensure(Ja,n):it(()=>{x||g(()=>{c.ensure(Ja,n)})})}else Jt(o,d),c.ensure(Za,r&&(g=>r(g,o)));return h&&xe(!0),()=>{f=!0}})}function $(e,t,n=!1){var r;X&&(r=se,ot());var s=new gr(e),i=n?Ht:0;function o(l,c){if(X){var u=Io(r);if(l!==parseInt(u.substring(1))){var d=jn();we(d),s.anchor=d,xe(!1),s.ensure(l,c),xe(!0);return}}s.ensure(l,c)}tn(()=>{var l=!1;t((c,u=0)=>{l=!0,o(u,c)}),l||o(-1,null)},i)}const Rp=Symbol("NaN");function Dp(e,t,n){X&&ot();var r=new gr(e);tn(()=>{var s=t();s!==s&&(s=Rp),r.ensure(s,n)})}function Pp(e,t){X&&we(Te(e)),Le(()=>{var n=t();for(var r in n){var s=n[r];s?e.style.setProperty(r,s):e.style.removeProperty(r)}})}function Vn(e,t){return t}function Mp(e,t,n){for(var r=[],s=t.length,i,o=t.length,l=0;l<s;l++){let f=t[l];Dn(f,()=>{if(i){if(i.pending.delete(f),i.done.add(f),i.pending.size===0){var h=e.outrogroups;ro(e,Ws(i.done)),h.delete(i),h.size===0&&(e.outrogroups=null)}}else o-=1},!1)}if(o===0){var c=r.length===0&&n!==null;if(c){var u=n,d=u.parentNode;No(d),d.append(u),e.items.clear()}ro(e,t,!c)}else i={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(i)}function ro(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(const o of e.pending.values())for(const l of o)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|=Gt;const o=document.createDocumentFragment();Bo(i,o)}else Be(t[s],n)}}var Qa;function ce(e,t,n,r,s,i=null){var o=e,l=new Map,c=(t&Ul)!==0;if(c){var u=e;o=X?we(Te(u)):u.appendChild(Ke())}X&&ot();var d=null,f=Mo(()=>{var b=n();return vr(b)?b:b==null?[]:Ws(b)}),h,m=new Map,x=!0;function g(b){y.effect.f&ft||(y.pending.delete(b),y.fallback=d,Op(y,h,o,t,r),d!==null&&(h.length===0?d.f&Gt?(d.f^=Gt,Tr(d,null,o)):qo(d):Dn(d,()=>{d=null})))}function _(b){y.pending.delete(b)}var S=tn(()=>{h=a(f);var b=h.length;let T=!1;if(X){var M=Io(o)===Hs;M!==(b===0)&&(o=jn(),we(o),xe(!1),T=!0)}for(var C=new Set,w=ae,O=jc(),R=0;R<b;R+=1){X&&se.nodeType===un&&se.data===Ks&&(o=se,T=!0,xe(!1));var P=h[R],D=r(P,R),N=x?null:l.get(D);N?(N.v&&Jt(N.v,P),N.i&&Jt(N.i,R),O&&w.unskip_effect(N.e)):(N=Lp(l,x?o:Qa??=Ke(),P,D,R,s,t,n),x||(N.e.f|=Gt),l.set(D,N)),C.add(D)}if(b===0&&i&&!d&&(x?d=nt(()=>i(o)):(d=nt(()=>i(Qa??=Ke())),d.f|=Gt)),b>C.size&&ov(),X&&b>0&&we(jn()),!x)if(m.set(w,C),O){for(const[V,j]of l)C.has(V)||w.skip_effect(j.e);w.oncommit(g),w.ondiscard(_)}else g(w);T&&xe(!0),a(f)}),y={effect:S,items:l,pending:m,outrogroups:null,fallback:d};x=!1,X&&(o=se)}function Er(e){for(;e!==null&&!(e.f&Ft);)e=e.next;return e}function Op(e,t,n,r,s){var i=(r&Mf)!==0,o=t.length,l=e.items,c=Er(e.effect.first),u,d=null,f,h=[],m=[],x,g,_,S;if(i)for(S=0;S<o;S+=1)x=t[S],g=s(x,S),_=l.get(g).e,_.f&Gt||(_.nodes?.a?.measure(),(f??=new Set).add(_));for(S=0;S<o;S+=1){if(x=t[S],g=s(x,S),_=l.get(g).e,e.outrogroups!==null)for(const P of e.outrogroups)P.pending.delete(_),P.done.delete(_);if(_.f&st&&(qo(_),i&&(_.nodes?.a?.unfix(),(f??=new Set).delete(_))),_.f&Gt)if(_.f^=Gt,_===c)Tr(_,null,n);else{var y=d?d.next:c;_===e.effect.last&&(e.effect.last=_.prev),_.prev&&(_.prev.next=_.next),_.next&&(_.next.prev=_.prev),hn(e,d,_),hn(e,_,y),Tr(_,y,n),d=_,h=[],m=[],c=Er(d.next);continue}if(_!==c){if(u!==void 0&&u.has(_)){if(h.length<m.length){var b=m[0],T;d=b.prev;var M=h[0],C=h[h.length-1];for(T=0;T<h.length;T+=1)Tr(h[T],b,n);for(T=0;T<m.length;T+=1)u.delete(m[T]);hn(e,M.prev,C.next),hn(e,d,M),hn(e,C,b),c=b,d=C,S-=1,h=[],m=[]}else u.delete(_),Tr(_,c,n),hn(e,_.prev,_.next),hn(e,_,d===null?e.effect.first:d.next),hn(e,d,_),d=_;continue}for(h=[],m=[];c!==null&&c!==_;)(u??=new Set).add(c),m.push(c),c=Er(c.next);if(c===null)continue}_.f&Gt||h.push(_),d=_,c=Er(_.next)}if(e.outrogroups!==null){for(const P of e.outrogroups)P.pending.size===0&&(ro(e,Ws(P.done)),e.outrogroups?.delete(P));e.outrogroups.size===0&&(e.outrogroups=null)}if(c!==null||u!==void 0){var w=[];if(u!==void 0)for(_ of u)_.f&st||w.push(_);for(;c!==null;)!(c.f&st)&&c!==e.fallback&&w.push(c),c=Er(c.next);var O=w.length;if(O>0){var R=r&Ul&&o===0?n:null;if(i){for(S=0;S<O;S+=1)w[S].nodes?.a?.measure();for(S=0;S<O;S+=1)w[S].nodes?.a?.fix()}Mp(e,w,R)}}i&&it(()=>{if(f!==void 0)for(_ of f)_.nodes?.a?.apply()})}function Lp(e,t,n,r,s,i,o,l){var c=o&Df?o&Of?_t(n):Qs(n,!1,!1):null,u=o&Pf?_t(s):null;return{v:c,i:u,e:nt(()=>(i(t,c??n,u??s,l),()=>{e.delete(r)}))}}function Tr(e,t,n){if(e.nodes)for(var r=e.nodes.start,s=e.nodes.end,i=t&&!(t.f&Gt)?t.nodes.start:n;r!==null;){var o=wt(r);if(i.before(r),r===s)return;r=o}}function hn(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function Np(e,t,n=!1,r=!1,s=!1,i=!1){var o=e,l="";if(n){var c=e;X&&(o=we(Te(c)))}z(()=>{var u=ie;if(l===(l=t()??"")){X&&ot();return}if(n&&!X){u.nodes=null,c.innerHTML=l,l!==""&&Ve(Te(c),c.lastChild);return}if(u.nodes!==null&&(Hc(u.nodes.start,u.nodes.end),u.nodes=null),l!==""){if(X){se.data;for(var d=ot(),f=d;d!==null&&(d.nodeType!==un||d.data!=="");)f=d,d=wt(d);if(d===null)throw Wr(),Mn;Ve(se,f),o=we(d);return}var h=r?Ur:s?xo:void 0,m=Sn(r?"svg":s?"math":"template",h);m.innerHTML=l;var x=r||s?m:m.content;if(Ve(Te(x),x.lastChild),r||s)for(;Te(x);)o.before(Te(x));else o.before(x)}})}function jp(e,t,n,r,s){X&&ot();var i=t.$$slots?.[n],o=!1;i===!0&&(i=t[n==="default"?"children":n],o=!0),i===void 0?s!==null&&s(e):i(e,o?()=>r:r)}function zp(e){const t={};e.children&&(t.default=!0);for(const n in e.$$slots)t[n]=!0;return t}function Qr(e,t,n){var r;X&&(r=se,ot());var s=new gr(e);tn(()=>{var i=t()??null;if(X){var o=Io(r),l=o===Us,c=i!==null;if(l!==c){var u=jn();we(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)))},Ht)}const qp=()=>performance.now(),Yt={tick:e=>requestAnimationFrame(e),now:()=>qp(),tasks:new Set};function pu(){const e=Yt.now();Yt.tasks.forEach(t=>{t.c(e)||(Yt.tasks.delete(t),t.f())}),Yt.tasks.size!==0&&Yt.tick(pu)}function Bp(e){let t;return Yt.tasks.size===0&&Yt.tick(pu),{promise:new Promise(n=>{Yt.tasks.add(t={c:e,f:n})}),abort(){Yt.tasks.delete(t)}}}function Ps(e,t){xn(()=>{e.dispatchEvent(new CustomEvent(t))})}function Vp(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 el(e){const t={},n=e.split(";");for(const r of n){const[s,i]=r.split(":");if(!s||i===void 0)break;const o=Vp(s.trim());t[o]=i.trim()}return t}const $p=e=>e;let mu=null;function tl(e){mu=e}function Fp(e,t,n){var r=mu??ie,s=r.nodes,i,o,l,c=null;s.a??={element:e,measure(){i=this.element.getBoundingClientRect()},apply(){if(l?.abort(),o=this.element.getBoundingClientRect(),i.left!==o.left||i.right!==o.right||i.top!==o.top||i.bottom!==o.bottom){const u=t()(this.element,{from:i,to:o},n?.());l=Ms(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 m=e.getBoundingClientRect();if(i.left!==m.left||i.top!==m.top){var x=`translate(${i.left-m.left}px, ${i.top-m.top}px)`;h.transform=h.transform?`${h.transform} ${x}`:x}}}},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 Up(e,t,n,r){var s=(e&zf)!==0,i=(e&qf)!==0,o=s&&i,l=(e&Bf)!==0,c=o?"both":s?"in":"out",u,d=t.inert,f=t.style.overflow,h,m;function x(){return xn(()=>u??=n()(t,r?.()??{},{direction:c}))}var g={is_global:l,in(){if(t.inert=d,!s){m?.abort(),m?.reset?.();return}i||h?.abort(),h=Ms(t,x(),m,1,()=>{Ps(t,"introend"),h?.abort(),h=u=void 0,t.style.overflow=f})},out(b){if(!i){b?.(),u=void 0;return}t.inert=!0,m=Ms(t,x(),h,0,()=>{Ps(t,"outroend"),b?.()})},stop:()=>{h?.abort(),m?.abort()}},_=ie;if((_.nodes.t??=[]).push(g),s&&Ds){var S=l;if(!S){for(var y=_.parent;y&&y.f&Ht;)for(;(y=y.parent)&&!(y.f&Bt););S=!y||(y.f&cn)!==0}S&&kt(()=>{Ee(()=>g.in())})}}function Ms(e,t,n,r,s){var i=r===1;if(Yn(t)){var o,l=!1;return it(()=>{if(!l){var _=t({direction:i?"in":"out"});o=Ms(e,_,n,r,s)}}),{abort:()=>{l=!0,o?.abort()},deactivate:()=>o.deactivate(),reset:()=>o.reset(),t:()=>o.t()}}if(n?.deactivate(),!t?.duration&&!t?.delay)return Ps(e,i?"introstart":"outrostart"),s(),{abort:bt,deactivate:bt,reset:bt,t:()=>r};const{delay:c=0,css:u,tick:d,easing:f=$p}=t;var h=[];if(i&&n===void 0&&(d&&d(0,1),u)){var m=el(u(0,1));h.push(m,m)}var x=()=>1-r,g=e.animate(h,{duration:c,fill:"forwards"});return g.onfinish=()=>{g.cancel(),Ps(e,i?"introstart":"outrostart");var _=n?.t()??1-r;n?.abort();var S=r-_,y=t.duration*Math.abs(S),b=[];if(y>0){var T=!1;if(u)for(var M=Math.ceil(y/16.666666666666668),C=0;C<=M;C+=1){var w=_+S*f(C/M),O=el(u(w,1-w));b.push(O),T||=O.overflow==="hidden"}T&&(e.style.overflow="hidden"),x=()=>{var R=g.currentTime;return _+S*f(R/y)},d&&Bp(()=>{if(g.playState!=="running")return!1;var R=x();return d(R,1-R),!0})}g=e.animate(b,{duration:y,fill:"forwards"}),g.onfinish=()=>{x=()=>r,d?.(r,1-r),s()}},{abort:()=>{g&&(g.cancel(),g.effect=null,g.onfinish=bt)},deactivate:()=>{s=bt},reset:()=>{r===0&&d?.(1,0)},t:()=>x()}}function Hp(e,t,n,r,s,i){let o=X;X&&ot();var l=null;X&&se.nodeType===nc&&(l=se,ot());var c=X?se:e,u=ie,d=new gr(c,!1);tn(()=>{const f=t()||null;var h=s?s():n||f==="svg"?Ur:void 0;if(f===null){d.ensure(null,null),Qn(!0);return}return d.ensure(f,m=>{if(f){if(l=X?l:Sn(f,h),Ve(l,l),r){X&&sp(f)&&l.append(document.createComment(""));var x=X?Te(l):l.appendChild(Ke());X&&(x===null?xe(!1):we(x)),tl(u),r(l,x),tl(null)}ie.nodes.end=l,m.before(l)}X&&we(m)}),Qn(!0),()=>{f&&Qn(!1)}},Ht),St(()=>{Qn(!0)}),o&&(xe(!0),we(c))}function Kp(e,t){let n=null,r=X;var s;if(X){n=se;for(var i=Te(document.head);i!==null&&(i.nodeType!==un||i.data!==e);)i=wt(i);if(i===null)xe(!1);else{var o=wt(i);i.remove(),we(o)}}X||(s=document.head.appendChild(Ke()));try{tn(()=>t(s),ec|kn)}finally{r&&(xe(!0),we(n))}}function Wp(e,t){kt(()=>{var n=e.getRootNode(),r=n.host?n:n.head??n.ownerDocument.head;if(!r.querySelector("#"+t.hash)){const s=Sn("style");s.id=t.hash,s.textContent=t.code,r.appendChild(s)}})}function gu(e,t,n){kt(()=>{var r=Ee(()=>t(e,n?.())||{});if(n&&r?.update){var s=!1,i={};Le(()=>{var o=n();$o(o),s&&lc(i,o)&&(i=o,r.update(o))}),s=!0}if(r?.destroy)return()=>r.destroy()})}function Ko(e,t){var n=void 0,r;Fc(()=>{n!==(n=t())&&(r&&(Be(r),r=null),n&&(r=nt(()=>{kt(()=>n(e))})))})}const Yp=/[&"<]/g;function Gp(e,t){const n=String(e??""),r=Yp;r.lastIndex=0;let s="",i=0;for(;r.test(n);){const o=r.lastIndex-1,l=n[o];s+=n.substring(i,o)+(l==="&"?"&amp;":l==='"'?"&quot;":"&lt;"),i=o+1}return s+n.substring(i)}function bu(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=bu(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function Xp(){for(var e,t,n=0,r="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=bu(e))&&(r&&(r+=" "),r+=t);return r}const nl={translate:new Map([[!0,"yes"],[!1,"no"]])};function Jp(e,t,n=!1){if(e==="hidden"&&t!=="until-found"&&(n=!0),t==null||!t&&n)return"";const r=Hf.call(nl,e)&&nl[e].get(t)||t,s=n?'=""':`="${Gp(r)}"`;return` ${e}${s}`}function yu(e){return typeof e=="object"?Xp(e):e??""}const rl=[...`
6
+ \r\f \v\uFEFF`];function Zp(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,o=0;(o=r.indexOf(s,o))>=0;){var l=o+i;(o===0||rl.includes(r[o-1]))&&(l===r.length||rl.includes(r[l]))?r=(o===0?"":r.substring(0,o))+r.substring(l+1):o=l}}return r===""?null:r}function sl(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 Ri(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function Qp(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,o=0,l=!1,c=[];r&&c.push(...Object.keys(r).map(Ri)),s&&c.push(...Object.keys(s).map(Ri));var u=0,d=-1;const g=e.length;for(var f=0;f<g;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==="("?o++:h===")"&&o--,!l&&i===!1&&o===0){if(h===":"&&d===-1)d=f;else if(h===";"||f===g-1){if(d!==-1){var m=Ri(e.substring(u,d).trim());if(!c.includes(m)){h!==";"&&f++;var x=e.substring(u,f).trim();n+=" "+x+";"}}u=f+1,d=-1}}}}return r&&(n+=sl(r)),s&&(n+=sl(s,!0)),n=n.trim(),n===""?null:n}return e==null?null:String(e)}function _e(e,t,n,r,s,i){var o=e.__className;if(X||o!==n||o===void 0){var l=Zp(n,r,i);(!X||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 Di(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 nn(e,t,n,r){var s=e.__style;if(X||s!==t){var i=Qp(t,r);(!X||i!==e.getAttribute("style"))&&(i==null?e.removeAttribute("style"):e.style.cssText=i),e.__style=t}else r&&(Array.isArray(r)?(Di(e,n?.[0],r[0]),Di(e,n?.[1],r[1],"important")):Di(e,n,r));return r}function Nr(e,t,n=!1){if(e.multiple){if(t==null)return;if(!vr(t))return Tv();for(var r of e.options)r.selected=t.includes(Pr(r));return}for(r of e.options){var s=Pr(r);if(Mc(s,t)){r.selected=!0;return}}(!n||t!==void 0)&&(e.selectedIndex=-1)}function Wo(e){var t=new MutationObserver(()=>{Nr(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),St(()=>{t.disconnect()})}function jr(e,t,n=t){var r=new WeakSet,s=!0;Jr(e,"change",i=>{var o=i?"[selected]":":checked",l;if(e.multiple)l=[].map.call(e.querySelectorAll(o),Pr);else{var c=e.querySelector(o)??e.querySelector("option:not([disabled])");l=c&&Pr(c)}n(l),e.__value=l,ae!==null&&r.add(ae)}),kt(()=>{var i=t();if(e===document.activeElement){var o=ae;if(r.has(o))return}if(Nr(e,i,s),s&&i===void 0){var l=e.querySelector(":checked");l!==null&&(i=Pr(l),n(i))}e.__value=i,s=!1}),Wo(e)}function Pr(e){return"__value"in e?e.__value:e.value}const Xn=Symbol("class"),Jn=Symbol("style"),_u=Symbol("is custom element"),wu=Symbol("is html"),em=Un?"link":"LINK",tm=Un?"input":"INPUT",nm=Un?"option":"OPTION",rm=Un?"select":"SELECT",sm=Un?"progress":"PROGRESS";function Se(e){if(X){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute("value")){var r=e.value;be(e,"value",null),e.value=r}if(e.hasAttribute("checked")){var s=e.checked;be(e,"checked",null),e.checked=s}}};e.__on_r=n,it(n),qc()}}function ku(e,t){var n=ri(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==sm)||(e.value=t??"")}function Su(e,t){var n=ri(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function xu(e,t){t?e.hasAttribute("selected")||e.setAttribute("selected",""):e.removeAttribute("selected")}function im(e,t){const n=e.checked;e.defaultChecked=t,e.checked=n}function om(e,t){const n=e.value;e.defaultValue=t,e.value=n}function be(e,t,n,r){var s=ri(e);X&&(s[t]=e.getAttribute(t),t==="src"||t==="srcset"||t==="href"&&e.nodeName===em)||s[t]!==(s[t]=n)&&(t==="loading"&&(e[Gf]=n),n==null?e.removeAttribute(t):typeof n!="string"&&Yo(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function am(e,t,n){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n)}function lm(e,t,n){var r=de,s=ie;let i=X;X&&xe(!1),vt(null),Qe(null);try{t!=="style"&&(so.has(e.getAttribute("is")||e.nodeName)||!customElements||customElements.get(e.getAttribute("is")||e.nodeName.toLowerCase())?Yo(e).includes(t):n&&typeof n=="object")?e[t]=n:be(e,t,n==null?n:String(n))}finally{vt(r),Qe(s),i&&xe(!0)}}function cm(e,t,n,r,s=!1,i=!1){if(X&&s&&e.nodeName===tm){var o=e,l=o.type==="checkbox"?"defaultChecked":"defaultValue";l in n||Se(o)}var c=ri(e),u=c[_u],d=!c[wu];let f=X&&u;f&&xe(!1);var h=t||{},m=e.nodeName===nm;for(var x in t)x in n||(n[x]=null);n.class?n.class=yu(n.class):(r||n[Xn])&&(n.class=null),n[Jn]&&(n.style??=null);var g=Yo(e);for(const C in n){let w=n[C];if(m&&C==="value"&&w==null){e.value=e.__value="",h[C]=w;continue}if(C==="class"){var _=e.namespaceURI==="http://www.w3.org/1999/xhtml";_e(e,_,w,r,t?.[Xn],n[Xn]),h[C]=w,h[Xn]=n[Xn];continue}if(C==="style"){nn(e,w,t?.[Jn],n[Jn]),h[C]=w,h[Jn]=n[Jn];continue}var S=h[C];if(!(w===S&&!(w===void 0&&e.hasAttribute(C)))){h[C]=w;var y=C[0]+C[1];if(y!=="$$")if(y==="on"){const O={},R="$$"+C;let P=C.slice(2);var b=Zh(P);if(Xh(P)&&(P=P.slice(0,-7),O.capture=!0),!b&&S){if(w!=null)continue;e.removeEventListener(P,h[R],O),h[R]=null}if(b)U(P,e,w),ue([P]);else if(w!=null){let D=function(N){h[C].call(this,N)};h[R]=nu(P,e,D,O)}}else if(C==="style")be(e,C,w);else if(C==="autofocus")pr(e,!!w);else if(!u&&(C==="__value"||C==="value"&&w!=null))e.value=e.__value=w;else if(C==="selected"&&m)xu(e,w);else{var T=C;d||(T=ep(T));var M=T==="defaultValue"||T==="defaultChecked";if(w==null&&!u&&!M)if(c[C]=null,T==="value"||T==="checked"){let O=e;const R=t===void 0;if(T==="value"){let P=O.defaultValue;O.removeAttribute(T),O.defaultValue=P,O.value=O.__value=R?P:null}else{let P=O.defaultChecked;O.removeAttribute(T),O.defaultChecked=P,O.checked=R?P:!1}}else e.removeAttribute(C);else M||g.includes(T)&&(u||typeof w!="string")?(e[T]=w,T in c&&(c[T]=Ce)):typeof w!="function"&&be(e,T,w)}}}return f&&xe(!0),h}function um(e,t,n=[],r=[],s=[],i,o=!1,l=!1){Yr(s,n,r,c=>{var u=void 0,d={},f=e.nodeName===rm,h=!1;if(Fc(()=>{var x=t(...c.map(a)),g=cm(e,u,x,i,o,l);h&&f&&"value"in x&&Nr(e,x.value);for(let S of Object.getOwnPropertySymbols(d))x[S]||Be(d[S]);for(let S of Object.getOwnPropertySymbols(x)){var _=x[S];S.description===Yl&&(!u||_!==u[S])&&(d[S]&&Be(d[S]),d[S]=nt(()=>Ko(e,()=>_))),g[S]=_}u=g}),f){var m=e;kt(()=>{Nr(m,u.value,!0),Wo(m)})}h=!0})}function ri(e){return e.__attributes??={[_u]:e.nodeName.includes("-"),[wu]:e.namespaceURI===Wl}}var so=new Map;function Yo(e){var t=e.getAttribute("is")||e.nodeName,n=so.get(t);if(n)return n;so.set(t,n=[]);for(var r,s=e,i=Element.prototype;i!==s;){r=Xl(s);for(var o in r)r[o].set&&n.push(o);s=Ys(s)}return n}let Pi=null;function Eu(){if(Pi===null){var e=Sn("select");e.innerHTML=ru("<option><span>t</span></option>"),Pi=e.firstChild?.firstChild?.nodeType===1}return Pi}function dm(e,t){Eu()&&Ko(e,()=>()=>{const n=e.closest("select");if(!n)return;const r=new MutationObserver(s=>{var i=!1;for(const o of s){if(o.target===e)return;i||=!!o.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 fm(e,t){var n=X;Eu()||(xe(!1),e.textContent="",e.append(zc("")));try{t()}finally{n&&(X?v(e):(xe(!0),we(e)))}}function vm(e){ht(document,["focusin","focusout"],t=>{t&&t.type==="focusout"&&t.relatedTarget||e(document.activeElement)})}function Me(e,t,n=t){var r=new WeakSet;Jr(e,"input",async s=>{var i=s?e.defaultValue:e.value;if(i=Oi(e)?Li(i):i,n(i),ae!==null&&r.add(ae),await Vo(),i!==(i=t())){var o=e.selectionStart,l=e.selectionEnd,c=e.value.length;if(e.value=i??"",l!==null){var u=e.value.length;o===l&&l===c&&u>c?(e.selectionStart=u,e.selectionEnd=u):(e.selectionStart=o,e.selectionEnd=Math.min(l,u))}}}),(X&&e.defaultValue!==e.value||Ee(t)==null&&e.value)&&(n(Oi(e)?Li(e.value):e.value),ae!==null&&r.add(ae)),Le(()=>{var s=t();if(e===document.activeElement){var i=ae;if(r.has(i))return}Oi(e)&&s===Li(e.value)||e.type==="date"&&!s&&!e.value||s!==e.value&&(e.value=s??"")})}const Mi=new Set;function hm(e,t,n,r,s=r){var i=n.getAttribute("type")==="checkbox",o=e;let l=!1;if(t!==null)for(var c of t)o=o[c]??=[];o.push(n),Jr(n,"change",()=>{var u=n.__value;i&&(u=il(o,u,n.checked)),s(u)},()=>s(i?[]:null)),Le(()=>{var u=r();if(X&&n.defaultChecked!==n.checked){l=!0;return}i?(u=u||[],n.checked=u.includes(n.__value)):n.checked=Mc(n.__value,u)}),St(()=>{var u=o.indexOf(n);u!==-1&&o.splice(u,1)}),Mi.has(o)||(Mi.add(o),it(()=>{o.sort((u,d)=>u.compareDocumentPosition(d)===4?-1:1),Mi.delete(o)})),it(()=>{if(l){var u;if(i)u=il(o,u,n.checked);else{var d=o.find(f=>f.checked);u=d?.__value}s(u)}})}function bs(e,t,n=t){Jr(e,"change",r=>{var s=r?e.defaultChecked:e.checked;n(s)}),(X&&e.defaultChecked!==e.checked||Ee(t)==null)&&n(e.checked),Le(()=>{var r=t();e.checked=!!r})}function il(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 Oi(e){var t=e.type;return t==="number"||t==="range"}function Li(e){return e===""?null:+e}function pm(e,t,n=t){Jr(e,"change",()=>{n(e.files)}),X&&e.files&&n(e.files),Le(()=>{e.files=t()})}function Go(e){for(var t=[],n=0;n<e.length;n+=1)t.push({start:e.start(n),end:e.end(n)});return t}function mm(e,t,n=t){var r,s,i=()=>{cancelAnimationFrame(r),e.paused||(r=requestAnimationFrame(i));var o=e.currentTime;s!==o&&n(s=o)};r=requestAnimationFrame(i),e.addEventListener("timeupdate",i),Le(()=>{var o=Number(t());s!==o&&!isNaN(o)&&(e.currentTime=s=o)}),St(()=>{cancelAnimationFrame(r),e.removeEventListener("timeupdate",i)})}function gm(e,t){var n;ht(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=Go(r),t(n))})}function bm(e,t){ht(e,["loadedmetadata"],()=>t(Go(e.seekable)))}function ym(e,t){ht(e,["timeupdate"],()=>t(Go(e.played)))}function _m(e,t){ht(e,["seeking","seeked"],()=>t(e.seeking))}function wm(e,t){ht(e,["timeupdate","ended"],()=>t(e.ended))}function km(e,t){ht(e,["loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","emptied"],()=>t(e.readyState))}function Sm(e,t,n=t){kt(()=>{var r=Number(t());r!==e.playbackRate&&!isNaN(r)&&(e.playbackRate=r)}),kt(()=>{ht(e,["ratechange"],()=>{n(e.playbackRate)})})}function xm(e,t,n=t){var r=t(),s=()=>{r!==e.paused&&n(r=e.paused)};ht(e,["play","pause","canplay"],s,r==null),kt(()=>{(r=!!t())!==e.paused&&(r?e.pause():e.play().catch(i=>{throw n(r=!0),i}))})}function Em(e,t,n=t){var r=()=>{n(e.volume)};t()==null&&r(),ht(e,["volumechange"],r,!1),Le(()=>{var s=Number(t());s!==e.volume&&!isNaN(s)&&(e.volume=s)})}function Im(e,t,n=t){var r=()=>{n(e.muted)};t()==null&&r(),ht(e,["volumechange"],r,!1),Le(()=>{var s=!!t();e.muted!==s&&(e.muted=s)})}function Am(e){ht(window,["online","offline"],()=>{e(navigator.onLine)})}function Cm(e,t,n){var r=qt(e,t);r&&r.set&&(e[t]=n,St(()=>{e[t]=null}))}class es{#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){es.entries.set(n.target,n);for(var r of this.#e.get(n.target)||[])r(n)}}))}}var Tm=new es({box:"content-box"}),Iu=new es({box:"border-box"}),Rm=new es({box:"device-pixel-content-box"});function Dm(e,t,n){var r=t==="contentRect"||t==="contentBoxSize"?Tm:t==="borderBoxSize"?Iu:Rm,s=r.observe(e,i=>n(i[t]));St(s)}function Pm(e,t,n){var r=Iu.observe(e,()=>n(e[t]));kt(()=>(Ee(()=>n(e[t])),r))}function ol(e,t){return e===t||e?.[Je]===t}function tt(e={},t,n,r){var s=ye.r,i=ie;return kt(()=>{var o,l;return Le(()=>{o=l,l=r?.()||[],Ee(()=>{e!==n(...l)&&(t(e,...l),o&&ol(n(...o),e)&&t(null,...o))})}),()=>{let c=i;for(;c!==s&&c.parent!==null&&c.parent.f&Hi;)c=c.parent;const u=()=>{l&&ol(n(...l),e)&&t(null,...l)},d=c.teardown;c.teardown=()=>{u(),d?.()}}}),e}function Mm(e,t,n,r=n){t.addEventListener("input",()=>{r(t[e])}),Le(()=>{var s=n();if(t[e]!==s)if(s==null){var i=t[e];r(i)}else t[e]=s+""})}function Om(e,t,n,r,s){var i=()=>{r(n[e])};n.addEventListener(t,i),s?Le(()=>{n[e]=s()}):i(),(n===document.body||n===window||n===document)&&St(()=>{n.removeEventListener(t,i)})}function Lm(e,t){ht(e,["focus","blur"],()=>{t(e===document.activeElement)})}function Nm(e,t,n=t){var r=e==="x",s=()=>xn(()=>{i=!0,clearTimeout(o),o=setTimeout(l,100),n(window[r?"scrollX":"scrollY"])});addEventListener("scroll",s,{passive:!0});var i=!1,o,l=()=>{i=!1},c=!0;Le(()=>{var u=t();c?c=!1:!i&&u!=null&&(i=!0,clearTimeout(o),r?scrollTo(u,window.scrollY):scrollTo(window.scrollX,u),o=setTimeout(l,100))}),kt(s),St(()=>{removeEventListener("scroll",s)})}function jm(e,t){ht(window,["resize"],()=>xn(()=>t(window[e])))}function zm(e){return function(...t){var n=t[0];n.isTrusted&&e?.apply(this,t)}}function qm(e){return function(...t){var n=t[0];n.target===this&&e?.apply(this,t)}}function Bm(e){return function(...t){var n=t[0];return n.stopPropagation(),e?.apply(this,t)}}function Vm(e){var t=!1;return function(...n){if(!t)return t=!0,e?.apply(this,n)}}function $m(e){return function(...t){var n=t[0];return n.stopImmediatePropagation(),e?.apply(this,t)}}function Fm(e){return function(...t){var n=t[0];return n.preventDefault(),e?.apply(this,t)}}function Um(e=!1){const t=ye,n=t.l.u;if(!n)return;let r=()=>$o(t.s);if(e){let s=0,i={};const o=Xr(()=>{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=()=>a(o)}n.b.length&&Vc(()=>{al(t,r),Fi(n.b)}),Ie(()=>{const s=Ee(()=>n.m.map(Kf));return()=>{for(const i of s)typeof i=="function"&&i()}}),n.a.length&&Ie(()=>{al(t,r),Fi(n.a)})}function al(e,t){if(e.l.s)for(const n of e.l.s)a(n);t()}function Hm(e){var t=_t(0);return function(){return arguments.length===1?(k(t,a(t)+1),arguments[0]):(a(t),e())}}function Km(e,t){var n=e.$$events?.[t.type],r=vr(n)?n.slice():n==null?[]:[n];for(var s of r)s.call(this,t)}function Wm(e,t,n){e.$$events||={},e.$$events[t]||=[],e.$$events[t].push(n)}function Ym(e){for(var t in e)t in this&&(this[t]=e[t])}function Gm(e,t=1){const n=e();return e(n+t),n}function Xm(e,t=1){const n=e()+t;return e(n),n}const Jm={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 Zm(e,t,n){return new Proxy({props:e,exclude:t},Jm)}const Qm={get(e,t){if(!e.exclude.includes(t))return a(e.version),t in e.special?e.special[t]():e.props[t]},set(e,t,n){if(!(t in e.special)){var r=ie;try{Qe(e.parent_effect),e.special[t]=We({get[t](){return e.props[t]}},t,Hl)}finally{Qe(r)}}return e.special[t](n),cr(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),cr(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 eg(e,t){return new Proxy({props:e,exclude:t,special:{},version:_t(0),parent_effect:ie},Qm)}const tg={get(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(Yn(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];Yn(s)&&(s=s());const i=qt(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(Yn(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r){const s=qt(r,t);return s&&!s.configurable&&(s.configurable=!0),s}}},has(e,t){if(t===Je||t===Gs)return!1;for(let n of e.props)if(Yn(n)&&(n=n()),n!=null&&t in n)return!0;return!1},ownKeys(e){const t=[];for(let n of e.props)if(Yn(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 ts(...e){return new Proxy({props:e},tg)}function We(e,t,n,r){var s=(n&Nf)!==0,i=(n&jf)!==0,o=r,l=!0,c=()=>(l&&(l=!1,o=i?Ee(r):r),o);let u;if(s){var d=Je in e||Gs in e;u=qt(e,t)?.set??(d&&t in e?y=>e[t]=y:void 0)}var f,h=!1;s?[f,h]=_c(()=>e[t]):f=e[t],f===void 0&&r!==void 0&&(f=c(),u&&(mv(),u(f)));var m;if(m=()=>{var y=e[t];return y===void 0?c():(l=!0,y)},!(n&Hl))return m;if(u){var x=e.$$legacy;return function(y,b){return arguments.length>0?((!b||x||h)&&u(b?m():y),y):m()}}var g=!1,_=(n&Lf?Xr:Mo)(()=>(g=!1,m()));s&&a(_);var S=ie;return function(y,b){if(arguments.length>0){const T=b?a(_):s?le(y):y;return k(_,T),g=!0,o!==void 0&&(o=T),y}return ln&&g||S.f&ft?_.v:a(_)}}function ng(e,t,n,r,s,i){Ic(t,()=>{var o=!1;Ao?.[gt],Le(()=>{if(!o){var[l,c]=_c(n);if(!c){var u=r(),d=!1,f=Le(()=>{d||l[u]});d=!0,f.deps===null&&(kv(),o=!0)}}})})}function rg(e){return new sg(e)}class sg{#e;#t;constructor(t){var n=new Map,r=(i,o)=>{var l=Qs(o,!1,!1);return n.set(i,l),l};const s=new Proxy({...t.props||{},$$events:{}},{get(i,o){return a(n.get(o)??r(o,Reflect.get(i,o)))},has(i,o){return o===Gs?!0:(a(n.get(o)??r(o,Reflect.get(i,o))),Reflect.has(i,o))},set(i,o,l){return k(n.get(o)??r(o,l),l),Reflect.set(i,o,l)}});this.#t=(t.hydrate?lu:Oe)(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)&&bn(),this.#e=s.$$events;for(const i of Object.keys(this.#t))i==="$set"||i==="$destroy"||i==="$on"||On(this,i,{get(){return this.#t[i]},set(o){this.#t[i]=o},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 Au;typeof HTMLElement=="function"&&(Au=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=Sn("slot");r!=="default"&&(i.name=r),I(s,i)}};if(await Promise.resolve(),!this.$$cn||this.$$c)return;const t={},n=ig(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]=ys(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=rg({component:this.$$ctor,target:this.$$shadowRoot||this,props:{...this.$$d,$$slots:t,$$host:this}}),this.$$me=ti(()=>{Le(()=>{this.$$r=!0;for(const r of Is(this.$$c)){if(!this.$$p_d[r]?.reflect)continue;this.$$d[r]=this.$$c[r];const s=ys(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]=ys(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 Is(this.$$p_d).find(t=>this.$$p_d[t].attribute===e||!this.$$p_d[t].attribute&&t.toLowerCase()===e)||e}});function ys(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 ig(e){const t={};return e.childNodes.forEach(n=>{t[n.slot||"default"]=!0}),t}function og(e,t,n,r,s,i){let o=class extends Au{constructor(){super(e,n,s),this.$$p_d=t}static get observedAttributes(){return Is(t).map(l=>(t[l].attribute||l).toLowerCase())}};return Is(t).forEach(l=>{On(o.prototype,l,{get(){return this.$$c&&l in this.$$c?this.$$c[l]:this.$$d[l]},set(c){c=ys(l,c,t),this.$$d[l]=c;var u=this.$$c;if(u){var d=qt(u,l)?.get;d?u[l]=c:u.$set({[l]:c})}}})}),r.forEach(l=>{On(o.prototype,l,{get(){return this.$$c?.[l]}})}),i&&(o=i(o)),e.element=o,o}function ag(e,...t){return Ee(()=>{try{let n=!1;const r=[];for(const s of t)s&&typeof s=="object"&&Je in s?(r.push(zn(s,!0)),n=!0):r.push(s);n&&(Sv(e),console.log("%c[snapshot]","color: grey",...r))}catch{}}),t}const Cu=Object.freeze(Object.defineProperty({__proto__:null,CLASS:Xn,FILENAME:gt,HMR:Wn,NAMESPACE_SVG:Ur,STYLE:Jn,aborted:Qi,action:gu,get active_effect(){return ie},add_legacy_event_listener:Wm,add_locations:yp,add_svelte_meta:Bv,animation:Fp,append:I,append_styles:Wp,apply:qh,assign:mp,assign_async:gp,async:Ip,async_derived:Ac,attach:Ko,attachment:pp,attr:Jp,attribute_effect:um,autofocus:pr,await:Tp,bind_active_element:vm,bind_buffered:gm,bind_checked:bs,bind_content_editable:Mm,bind_current_time:mm,bind_element_size:Pm,bind_ended:wm,bind_files:pm,bind_focused:Lm,bind_group:hm,bind_muted:Im,bind_online:Am,bind_paused:xm,bind_playback_rate:Sm,bind_played:ym,bind_prop:Cm,bind_property:Om,bind_ready_state:km,bind_resize_observer:Dm,bind_seekable:bm,bind_seeking:_m,bind_select_value:jr,bind_this:tt,bind_value:Me,bind_volume:Em,bind_window_scroll:Nm,bind_window_size:jm,boundary:Ec,bubble_event:Km,check_target:Sp,child:p,cleanup_styles:bp,clsx:yu,comment:ut,component:Qr,create_custom_element:og,create_ownership_validator:kp,css_props:Pp,customizable_select:fm,deep_read:Rs,deep_read_state:$o,deferred_template_effect:Th,delegate:ue,delegated:U,derived:F,derived_safe_equal:Mo,get document(){return Oc},each:ce,eager:sh,effect:kt,effect_root:ti,effect_tracking:Zr,element:Hp,equals:_h,event:et,exclude_from_object:Yf,fallback:Wf,first_child:fe,flush:bn,for_await_track_reactivity_loss:dh,from_html:A,from_mathml:Fh,from_svg:iu,from_tree:Uh,get:a,head:Kp,hmr:wp,html:Np,hydrate_template:Dv,if:$,index:Vn,init:Um,init_select:Wo,inspect:Ep,invalid_default_snippet:Zf,invalidate_inner_signals:Ph,invalidate_store:Gv,invoke_error_boundary:Xt,key:Dp,legacy_api:xp,legacy_pre_effect:Ih,legacy_pre_effect_reset:Ah,legacy_rest_props:eg,log_if_contains_state:ag,mark_store_binding:eh,mutable_source:Qs,mutate:gh,next:on,noop:bt,once:Vm,pending:ch,pop:re,preventDefault:Fm,prevent_snippet_stringification:uu,prop:We,props_id:Wh,proxy:le,push:ne,raf:Yt,reactive_import:Hm,remove_input_defaults:Se,remove_textarea_child:Sh,render_effect:Le,replay_events:zh,reset:v,rest_props:Zm,run:fh,run_after_blockers:Ic,safe_get:Nh,sanitize_slots:zp,save:uh,select_option:Nr,selectedcontent:dm,self:qm,set:k,set_attribute:be,set_checked:Su,set_class:_e,set_custom_element_data:lm,set_default_checked:im,set_default_value:om,set_selected:xu,set_style:nn,set_text:L,set_value:ku,set_xlink_attribute:am,setup_stores:Xv,sibling:E,slot:jp,snapshot:zn,snippet:ni,spread_props:ts,state:q,stopImmediatePropagation:$m,stopPropagation:Bm,store_get:Wv,store_mutate:Jv,store_set:yc,store_unsub:Yv,strict_equals:yh,tag:jv,tag_proxy:dc,template_effect:z,text:Vt,tick:Vo,to_array:Ql,trace:Nv,track_reactivity_loss:Xi,transition:Up,trusted:zm,untrack:Ee,update:cr,update_legacy_props:Ym,update_pre:bh,update_pre_prop:Xm,update_pre_store:Qv,update_prop:Gm,update_store:Zv,user_effect:Ie,user_pre_effect:Vc,validate_binding:ng,validate_dynamic_element_tag:op,validate_snippet_args:Ap,validate_store:ap,validate_void_dynamic_element:ip,wait:vh,get window(){return Ji},with_script:Hh,wrap_snippet:lp},Symbol.toStringTag,{value:"Module"}));class ll{#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 cl{#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 lg=["workspace","user"],Xo="state:manage",Kt={ephemeral:new ll,session:new ll,workspace:new cl("sh3:workspace:"),user:new cl("sh3:user:")},Ni=new Map;let ji=!1;function cg(e,t,n){Ni.set(`${e}:${t}`,{zone:e,shardId:t,value:n}),!ji&&(ji=!0,queueMicrotask(()=>{ji=!1;for(const{zone:r,shardId:s,value:i}of Ni.values())Kt[r].write(s,i);Ni.clear()}))}function si(e,t){const n={};for(const r of Object.keys(t)){const s=t[r],o=Kt[r].read(e),l={...s,...o??{}},c=le(l);n[r]=c,lg.includes(r)&&ti(()=>{let u=!0;Ie(()=>{const d=zn(c);if(u){u=!1;return}cg(r,e,d)})})}return n}function ul(e,t){Kt[e]=t}function ug(e,t){return Kt[e].read(t)}function io(e,t){Kt[e].delete(t)}const dg="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(dg);const fg=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function vg(e){const t=document.activeElement;function n(){return Array.from(e.querySelectorAll(fg))}function r(s){if(s.key!=="Tab")return;const i=n();if(i.length===0){s.preventDefault();return}const o=i[0],l=i[i.length-1],c=document.activeElement;s.shiftKey&&(c===o||!e.contains(c))?(s.preventDefault(),l.focus()):!s.shiftKey&&(c===l||!e.contains(c))&&(s.preventDefault(),o.focus())}return e.addEventListener("keydown",r),queueMicrotask(()=>{(n()[0]??e).focus()}),()=>{e.removeEventListener("keydown",r),t&&document.contains(t)&&t.focus()}}var hg=A('<div class="modal-frame svelte-2tcvcm" role="presentation"><div class="modal-box svelte-2tcvcm" role="dialog" aria-modal="true" tabindex="-1"><!></div></div>');function pg(e,t){ne(t,!0);let n;Ie(()=>{if(n)return vg(n)});function r(l){t.onBackdropClick&&l.target===l.currentTarget&&t.onBackdropClick()}var s=hg(),i=p(s),o=p(i);Qr(o,()=>t.Content,(l,c)=>{c(l,ts(()=>t.contentProps,{get close(){return t.close}}))}),v(i),tt(i,l=>n=l,()=>n),v(s),z(()=>nn(i,t.boxStyle)),U("click",s,r),I(e,s),re()}ue(["click"]);const Jo={};function mg(e,t){Jo[e]=t}function gg(e){delete Jo[e]}function ii(e){const t=Jo[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 yt=[];let Os=!1,At=null;const bg=.5;function Tu(){const e=ii("modal");if(yt.length===0){At&&(At.remove(),At=null);return}At||(At=document.createElement("div"),At.className="sh3-modal-backdrop",At.style.position="absolute",At.style.inset="0",At.style.pointerEvents="auto",At.style.transition="background-color 120ms ease",At.style.background=`rgba(0, 0, 0, ${bg})`);const t=yt[yt.length-1].host;e.insertBefore(At,t)}function Ru(e){e.key==="Escape"&&yt.length!==0&&(e.stopPropagation(),e.preventDefault(),yt[yt.length-1].handle.close())}function yg(){Os||(Os=!0,document.addEventListener("keydown",Ru,!0))}function _g(){yt.length>0||Os&&(Os=!1,document.removeEventListener("keydown",Ru,!0))}function Du(e){const t=yt.indexOf(e);t<0||(yt.splice(t,1),Fe(e.frame),e.host.remove(),Tu(),_g())}function wg(e,t,n){const r=ii("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={},o={close:()=>Du(i)},l=Oe(pg,{target:s,props:{Content:e,contentProps:t??{},close:o.close,boxStyle:n?.boxStyle,onBackdropClick:n?.dismissOnBackdrop?o.close:void 0}});return i.host=s,i.frame=l,i.handle=o,yt.push(i),Tu(),yg(),o}function kg(){for(;yt.length>0;)Du(yt[yt.length-1])}const Zo={open:wg,closeAll:kg};var Sg=A('<div class="popup-frame svelte-mp81cl" role="menu" tabindex="-1"><!></div>');function xg(e,t){ne(t,!0);let n,r=q(-9999),s=q(-9999);Ie(()=>{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 m=t.anchorRect.top-l.height-c;f=m>=c?m:Math.max(c,d-l.height-c)}k(r,f,!0),k(s,h,!0)});var i=Sg(),o=p(i);Qr(o,()=>t.Content,(l,c)=>{c(l,ts(()=>t.contentProps,{get close(){return t.close}}))}),v(i),tt(i,l=>n=l,()=>n),z(()=>nn(i,`top: ${a(r)??""}px; left: ${a(s)??""}px;`)),I(e,i),re()}function Eg(e){return e instanceof HTMLElement?e.getBoundingClientRect():new DOMRect(e.x,e.y,0,0)}let Pt=null;function Pu(e){if(!Pt)return;const t=e.target;t&&Pt.host.contains(t)||Pt.handle.close()}function Mu(e){Pt&&e.key==="Escape"&&(e.stopPropagation(),e.preventDefault(),Pt.handle.close())}function Ig(){document.addEventListener("pointerdown",Pu,!0),document.addEventListener("keydown",Mu,!0)}function Ag(){document.removeEventListener("pointerdown",Pu,!0),document.removeEventListener("keydown",Mu,!0)}function oo(e){Pt===e&&(Pt=null,Ag(),Fe(e.frame),e.host.remove())}function Cg(e,t,n){Pt&&oo(Pt);const r=ii("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=Eg(t.anchor),o={},l={close:()=>oo(o)},c=Oe(xg,{target:s,props:{Content:e,contentProps:n??{},anchorRect:i,close:l.close}});return o.host=s,o.frame=c,o.handle=l,Pt=o,queueMicrotask(Ig),l}function Tg(){Pt&&oo(Pt)}const ao={show:Cg,close:Tg};var Rg=A('<div role="status" aria-live="polite"><span class="toast-level svelte-12gwnj0"> </span> <span class="toast-message svelte-12gwnj0"> </span></div>');function Dg(e,t){var n=Rg(),r=p(n),s=p(r,!0);v(r);var i=E(r,2),o=p(i,!0);v(i),v(n),z(()=>{_e(n,1,`toast toast-${t.level??""}`,"svelte-12gwnj0"),L(s,t.level),L(o,t.message)}),U("click",n,function(...l){t.close?.apply(this,l)}),I(e,n)}ue(["click"]);const Ls=new Set;let lt=null;function Pg(){if(lt&&lt.isConnected)return lt;const e=ii("toast");return lt=document.createElement("div"),lt.className="sh3-toast-stack",lt.style.position="absolute",lt.style.right="16px",lt.style.bottom="16px",lt.style.display="flex",lt.style.flexDirection="column-reverse",lt.style.gap="6px",lt.style.pointerEvents="none",e.appendChild(lt),lt}function lo(e){Ls.has(e)&&(Ls.delete(e),e.timer!==null&&(clearTimeout(e.timer),e.timer=null),Fe(e.instance),e.host.remove())}function Mg(e,t={}){const n=t.level??"info",r=t.duration??3e3,s=Pg(),i=document.createElement("div");i.className="sh3-toast-host",s.appendChild(i);const o={},l={close:()=>lo(o)},c=Oe(Dg,{target:i,props:{message:e,level:n,close:l.close}});return o.host=i,o.instance=c,o.handle=l,o.timer=Number.isFinite(r)&&r>0?setTimeout(()=>lo(o),r):null,Ls.add(o),l}function Og(){for(const e of[...Ls])lo(e)}const Lg={notify:Mg,clear:Og},dl={w:120,h:80};function Ou(e){if(e.type==="slot")return{...dl};if(e.type==="tabs")return{...dl};const t=e.children.map(Ou);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 fl=32,vl={x:48,y:48};function Ng(e,t){if(e.length===0)return{...vl};const n=e[e.length-1],r={x:n.position.x+fl,y:n.position.y+fl};return r.x+120>t.w||r.y+32>t.h?{...vl}:r}let hl=0;function jg(){return hl+=1,`float-${Date.now().toString(36)}-${hl.toString(36)}`}function Lu(e){return e.type==="slot"?e.viewId==null:e.type==="tabs"?e.tabs.every(t=>t.viewId==null):e.children.every(Lu)}let zg=[],Qo=null,ea=()=>({w:1600,h:900});function qg(e,t){Qo=e,ea=t}function Bg(){Qo=null,ea=()=>({w:1600,h:900})}function oi(){return Qo??zg}let pl=0;function Vg(e){return pl+=1,`float:${e}:${pl}`}const $g={w:600,h:400};function Fg(e,t){return{w:Math.max(e.w,t.w),h:Math.max(e.h,t.h)}}function Ug(e,t={}){const n=oi(),r=jg(),s=Vg(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 o=Ou(i),l=t.size??Fg($g,o),c=t.position??Ng(n,ea()),u={id:r,content:i,position:c,size:l,title:t.title};return t.dismissable&&(u.dismissable=!0),n.push(u),r}function Hg(e){const t=oi(),n=t.findIndex(r=>r.id===e);n<0||t.splice(n,1)}function Kg(){return oi().slice()}function Wg(e){const t=oi(),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 Mt={open:Ug,close:Hg,list:Kg,focus:Wg};let Ns=null;function Yg(e){Ns=e}function Gg(){Ns=null}function ta(){if(!Ns)throw new Error("presetManager: no app attached — bind an AppLayoutBlob first");return Ns}function Xg(){return Object.keys(ta().presets)}function Jg(){return ta().activePreset}function Zg(e){const t=ta();if(!(e in t.presets))throw new Error(`presetManager.switch: unknown preset "${e}"`);t.activePreset=e}const Qg={list:Xg,active:Jg,switch:Zg},er=new Map,_s=new Map;function ml(e){const t=_s.get(e);if(t)for(const n of t)n()}function Nu(e,t){const n=Symbol();let r=er.get(e);r||(r=new Map,er.set(e,r)),r.set(n,t),ml(e);let s=!1;return()=>{if(s)return;s=!0;const i=er.get(e);i&&i.delete(n)&&(i.size===0&&er.delete(e),ml(e))}}function ai(e){const t=er.get(e);return t?Array.from(t.values()):[]}function eb(){return Array.from(er.keys())}function ju(e,t){let n=_s.get(e);n||(n=new Set,_s.set(e,n)),n.add(t);let r=!1;return()=>{r||(r=!0,n.delete(t),n.size===0&&_s.delete(e))}}const tb=Object.freeze([".md",".txt",".json",".guml",".css",".js",".ts",".tsx",".jsx",".html",".svg",".csv",".yaml",".yml",".xml",".log",".ini",".toml"]);function nb(e){return e.kind?e.kind:e.extension&&tb.includes(e.extension.toLowerCase())?"text":"binary"}const ws=[];function gl(e){return ws.push(e),()=>{const t=ws.indexOf(e);t>=0&&ws.splice(t,1)}}function rb(e,t=[]){return[...ws,...t].filter(r=>{try{return r.appliesTo(e)}catch{return!1}}).sort((r,s)=>(s.priority??0)-(r.priority??0))[0]??null}var sb=A("<span> </span>"),ib=A('<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),ob=A("<option> </option>"),ab=A("<button> </button>"),lb=A('<pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre>'),cb=A('<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>'),ub=A('<div class="sh3-conflict-text svelte-iwgja4"><!></div>');function db(e,t){ne(t,!0);let n=q("");Ie(()=>{(!a(n)||!t.item.branches.find(m=>m.origin===a(n)))&&k(n,t.item.branches[0]?.origin??"local",!0)});const r=F(()=>t.item.branches.length===2),s=F(()=>a(r)?t.item.branches[0]:t.item.branches.find(m=>m.origin===a(n))??t.item.branches[0]),i=F(()=>a(r)?t.item.branches[1]:t.item.branches.find(m=>m.origin===t.selectedOrigin)??t.item.branches[1]??t.item.branches[0]);function o(m,x){const g=(m??"").split(/\r?\n/),_=(x??"").split(/\r?\n/),S=[],y=Math.max(g.length,_.length);for(let b=0;b<y;b++){const T=g[b],M=_[b];T===M?typeof T=="string"&&S.push({kind:"same",text:T}):(typeof T=="string"&&S.push({kind:"left",text:T}),typeof M=="string"&&S.push({kind:"right",text:M}))}return S}const l=F(()=>!a(s)||!a(i)?[]:o(a(s).content??"",a(i).content??"")),c=F(()=>a(l).filter(m=>m.kind!=="same").length);var u=ub(),d=p(u);{var f=m=>{var x=ib(),g=fe(x),_=p(g);let S;var y=p(_),b=p(y);v(y);var T=E(y,2),M=p(T),C=p(M,!0);v(M),v(T),v(_);var w=E(_,2);let O;var R=p(w),P=p(R);v(R);var D=E(R,2),N=p(D),V=p(N,!0);v(N),v(D),v(w),v(g);var j=E(g,2),B=p(j),Y=p(B);v(B);var G=E(B,2),Z=p(G);ce(Z,21,()=>a(l),Vn,(J,te)=>{var ee=sb(),Q=p(ee);v(ee),z(()=>{_e(ee,1,`diff-${a(te).kind}`,"svelte-iwgja4"),L(Q,`${a(te).kind==="same"?" ":a(te).kind==="left"?"- ":"+ "}${a(te).text??""}
7
+ `)}),I(J,ee)}),v(Z),v(G),v(j),z(()=>{S=_e(_,1,"sh3-conflict-text-pane svelte-iwgja4",null,S,{selected:a(s).origin===t.selectedOrigin}),L(b,`${a(s).origin??""} · v${a(s).version??""}`),L(C,a(s).content??""),O=_e(w,1,"sh3-conflict-text-pane svelte-iwgja4",null,O,{selected:a(i).origin===t.selectedOrigin}),L(P,`${a(i).origin??""} · v${a(i).version??""}`),L(V,a(i).content??""),L(Y,`Line diff (${a(c)??""} difference${a(c)===1?"":"s"})`)}),U("click",_,()=>t.onSelect(a(s).origin)),U("keydown",_,J=>{(J.key==="Enter"||J.key===" ")&&t.onSelect(a(s).origin)}),U("click",w,()=>t.onSelect(a(i).origin)),U("keydown",w,J=>{(J.key==="Enter"||J.key===" ")&&t.onSelect(a(i).origin)}),I(m,x)},h=m=>{var x=cb(),g=p(x),_=p(g),S=E(p(_));ce(S,21,()=>t.item.branches,M=>M.origin,(M,C)=>{var w=ob(),O=p(w,!0);v(w);var R={};z(()=>{L(O,a(C).origin),R!==(R=a(C).origin)&&(w.value=(w.__value=a(C).origin)??"")}),I(M,w)}),v(S),v(_),v(g);var y=E(g,2);ce(y,21,()=>t.item.branches,M=>M.origin,(M,C)=>{var w=ab();let O;var R=p(w);v(w),z(()=>{O=_e(w,1,"sh3-conflict-text-tab svelte-iwgja4",null,O,{selected:a(C).origin===t.selectedOrigin}),L(R,`${a(C).origin??""} · v${a(C).version??""}`)}),U("click",w,()=>t.onSelect(a(C).origin)),I(M,w)}),v(y);var b=E(y,2);{var T=M=>{var C=lb(),w=p(C),O=p(w,!0);v(w),v(C),z(()=>L(O,a(i).content??"")),I(M,C)};$(b,M=>{a(i)&&M(T)})}v(x),jr(S,()=>a(n),M=>k(n,M)),I(m,x)};$(d,m=>{a(r)&&a(s)&&a(i)?m(f):m(h,-1)})}v(u),I(e,u),re()}ue(["click","keydown"]);var fb=A("· <code> </code>",1),vb=A('<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>'),hb=A('<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 pb(e,t){ne(t,!0);function n(o){return typeof o!="number"?"—":o<1024?`${o} B`:o<1024*1024?`${(o/1024).toFixed(1)} KiB`:`${(o/(1024*1024)).toFixed(2)} MiB`}function r(o){const l=Date.now()-o;return l<6e4?"just now":l<36e5?`${Math.floor(l/6e4)}m ago`:l<864e5?`${Math.floor(l/36e5)}h ago`:new Date(o).toLocaleString()}var s=hb(),i=E(p(s),2);ce(i,21,()=>t.item.branches,o=>o.origin,(o,l)=>{var c=vb(),u=p(c);let d;var f=p(u),h=p(f,!0);v(f);var m=E(f,2),x=p(m),g=E(x);{var _=S=>{var y=fb(),b=E(fe(y)),T=p(b,!0);v(b),z(()=>L(T,a(l).hashPreview)),I(S,y)};$(g,S=>{a(l).hashPreview&&S(_)})}v(m),v(u),v(c),z((S,y)=>{d=_e(u,1,"sh3-conflict-meta-row svelte-1nz3djn",null,d,{selected:a(l).origin===t.selectedOrigin}),L(h,a(l).origin),L(x,`v${a(l).version??""} · ${S??""} · ${y??""} `)},[()=>r(a(l).at),()=>n(a(l).sizeBytes)]),U("click",u,()=>t.onSelect(a(l).origin)),I(o,c)}),v(i),v(s),I(e,s),re()}ue(["click"]);const mb=1048576;function gb(e){return typeof e=="number"&&e>mb}const bb={id:"sh3-core.text",priority:1,appliesTo:e=>nb(e)!=="text"?!1:!e.branches.some(t=>gb(t.sizeBytes)),mount(e,t){const n=Oe(db,{target:e,props:t});return()=>{Fe(n)}}},yb={id:"sh3-core.meta",priority:0,appliesTo:()=>!0,mount(e,t){const n=Oe(pb,{target:e,props:t});return()=>{Fe(n)}}};let bl=!1;function _b(){bl||(bl=!0,gl(bb),gl(yb))}var wb=A('<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 kb(e,t){var n=wb(),r=p(n),s=p(r);v(r);var i=E(r,4),o=p(i);pr(o,!0);var l=E(o,2),c=E(l,2);v(i),v(n),z(()=>L(s,`${t.count??""} conflict${t.count===1?"":"s"} to resolve`)),U("click",o,function(...u){t.onOverwriteMostRecent?.apply(this,u)}),U("click",l,function(...u){t.onResolveIndividually?.apply(this,u)}),U("click",c,function(...u){t.onCancel?.apply(this,u)}),I(e,n)}ue(["click"]);var Sb=A('<span class="sh3-conflict-detail-counter svelte-pw8iv6"> </span>'),xb=A('<button type="button"><span><!></span> <span class="sh3-conflict-detail-rail-label svelte-pw8iv6"> </span></button>'),Eb=A('<aside class="sh3-conflict-detail-rail svelte-pw8iv6"></aside>'),Ib=A('<label class="sh3-conflict-detail-branch svelte-pw8iv6"><input type="radio"/> <span> </span></label>'),Ab=A('<div class="sh3-conflict-detail-branches svelte-pw8iv6"></div> <div class="sh3-conflict-detail-renderer svelte-pw8iv6"></div>',1),Cb=A('<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 Tb(e,t){ne(t,!0);const n=F(()=>t.items[t.currentIndex]),r=F(()=>a(n)?t.selections[a(n).id]??a(n).branches[0]?.origin??"":""),s=F(()=>a(n)?rb(a(n),t.contributed):null);let i=q(void 0),o=null;Ie(()=>{if(a(n),a(s),a(r),o&&(o(),o=null),!a(i)||!a(n)||!a(s))return;const B={item:a(n),selectedOrigin:a(r),onSelect:Y=>t.onSelect(a(n).id,Y)};return o=a(s).mount(a(i),B),()=>{o&&(o(),o=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=F(()=>t.items.map(B=>t.skipped[B.id]?"skipped":t.selections[B.id]?"resolved":"pending"));var d=Cb(),f=p(d),h=p(f),m=p(h,!0);v(h);var x=E(h,2);{var g=B=>{var Y=Sb(),G=p(Y);v(Y),z(()=>L(G,`${t.currentIndex+1} / ${t.items.length??""}`)),I(B,Y)};$(x,B=>{t.items.length>1&&B(g)})}v(f);var _=E(f,2),S=p(_);{var y=B=>{var Y=Eb();ce(Y,23,()=>t.items,G=>G.id,(G,Z,J)=>{var te=xb();let ee;var Q=p(te),ve=p(Q);{var he=Ae=>{var at=Vt("✓");I(Ae,at)},W=Ae=>{var at=Vt("⟶");I(Ae,at)},oe=Ae=>{var at=Vt("·");I(Ae,at)};$(ve,Ae=>{a(u)[a(J)]==="resolved"?Ae(he):a(u)[a(J)]==="skipped"?Ae(W,1):Ae(oe,-1)})}v(Q);var me=E(Q,2),Ye=p(me,!0);v(me),v(te),z(()=>{ee=_e(te,1,"sh3-conflict-detail-rail-item svelte-pw8iv6",null,ee,{selected:a(J)===t.currentIndex}),_e(Q,1,`sh3-conflict-detail-rail-state ${a(u)[a(J)]??""}`,"svelte-pw8iv6"),L(Ye,a(Z).label)}),U("click",te,()=>t.onNavigate(a(J))),I(G,te)}),v(Y),I(B,Y)};$(S,B=>{t.items.length>1&&B(y)})}var b=E(S,2),T=p(b);{var M=B=>{var Y=Ab(),G=fe(Y);ce(G,21,()=>a(n).branches,J=>J.origin,(J,te)=>{var ee=Ib(),Q=p(ee);Se(Q);var ve=E(Q,2),he=p(ve);v(ve),v(ee),z(()=>{be(Q,"name",`branch-${a(n).id??""}`),ku(Q,a(te).origin),Su(Q,a(r)===a(te).origin),L(he,`${a(te).origin??""} · v${a(te).version??""}`)}),U("change",Q,()=>t.onSelect(a(n).id,a(te).origin)),I(J,ee)}),v(G);var Z=E(G,2);tt(Z,J=>k(i,J),()=>a(i)),I(B,Y)};$(T,B=>{a(n)&&B(M)})}v(b),v(_);var C=E(_,2),w=p(C),O=p(w),R=E(O,2),P=p(R,!0);v(R);var D=E(R,2);v(w);var N=E(w,2),V=p(N),j=E(V,2);v(N),v(C),v(d),z(()=>{L(m,t.title),O.disabled=t.currentIndex===0,L(P,a(n)&&t.skipped[a(n).id]?"Unskip":"Skip"),D.disabled=t.currentIndex>=t.items.length-1}),U("click",O,l),U("click",R,()=>a(n)&&t.onToggleSkip(a(n).id)),U("click",D,c),U("click",V,function(...B){t.onCancel?.apply(this,B)}),U("click",j,function(...B){t.onDone?.apply(this,B)}),I(e,d),re()}ue(["click","change"]);function zu(e,t){return t.at-e.at}function Rb(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(zu)[0]}}function Db(e,t){ne(t,!0);const n=t.items.length>=2||t.requirePrompt;let r=q(le(n?"prompt":"detail")),s=q(le(Object.fromEntries(t.items.map(b=>{const T=Rb(b.branches,t.mostRecentBy)?.origin??b.branches[0]?.origin??"";return[b.id,T]})))),i=q(le({})),o=q(0),l=!1;Ho(()=>{l||(l=!0,t.onCancel())});function c(){if(l)return;l=!0;const b=[],T=[];for(const M of t.items){if(a(i)[M.id]){T.push(M.id);continue}const C=a(s)[M.id],w=M.branches.find(O=>O.origin===C);w&&b.push({itemId:M.id,chosen:w,meta:M.meta})}t.onResolve(b,T),t.close()}function u(){l||(l=!0,t.onCancel(),t.close())}function d(){c()}function f(){k(r,"detail")}function h(b,T){if(k(s,{...a(s),[b]:T},!0),a(i)[b]){const M={...a(i)};delete M[b],k(i,M,!0)}}function m(b){k(i,{...a(i),[b]:!a(i)[b]},!0)}function x(b){k(o,b,!0)}var g=ut(),_=fe(g);{var S=b=>{kb(b,{get count(){return t.items.length},onOverwriteMostRecent:d,onResolveIndividually:f,onCancel:u})},y=b=>{Tb(b,{get items(){return t.items},get selections(){return a(s)},get skipped(){return a(i)},get currentIndex(){return a(o)},get title(){return t.title},get contributed(){return t.contributed},onSelect:h,onNavigate:x,onToggleSkip:m,onDone:c,onCancel:u})};$(_,b=>{a(r)==="prompt"?b(S):b(y,-1)})}I(e,g),re()}const qu="sh3-core.conflictRenderer";class Bu extends Error{constructor(t){super(t),this.name="ConflictPermissionError"}}class Pb extends Error{constructor(){super("Caller shard deactivated while conflict session was active"),this.name="ConflictSessionOrphanedError"}}function Mb(){try{return ai(qu)}catch{return[]}}function Vu(e,t={}){return _b(),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??zu,i=t.requirePrompt??!1,o=Mb();let l=!1;const d={items:e,title:r,mostRecentBy:s,requirePrompt:i,contributed:o,onResolve:(f,h)=>{l||(l=!0,n({status:"resolved",choices:f,skipped:h}))},onCancel:()=>{l||(l=!0,n({status:"cancelled"}))}};Zo.open(Db,d,{boxStyle:"max-width: none; min-width: 360px; padding: 0;"})})}function Ob(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 Lb(e,t){const n=e.browse;if(!n?.statusFrom||!n?.readBranchFrom||!n?.resolveConflictFrom)throw new Bu(`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 Nb(e){const t=e.lastIndexOf(".");if(t<0)return;const n=e.lastIndexOf("/");if(!(t<n))return e.slice(t)}async function jb(e,t,n={}){const r=e.shardId,s=t.shardId===r?Ob(e):Lb(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 o=[];for(const{path:d,status:f}of i){const h=Nb(d),m=[];for(const x of f.branches??[]){const g=await s.readBranch(d,x.origin).catch(()=>null);m.push({origin:x.origin,version:x.version,at:x.at,content:g??void 0,sizeBytes:g?new TextEncoder().encode(g).length:void 0})}o.push({id:d,label:d,extension:h,branches:m,meta:{shardId:t.shardId,path:d,docVersion:f.version}})}const l=await Vu(o,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 zb={resolve:Vu,resolveDocuments:jb},$u="sh3.color-picker",qb={id:"sh3.color-picker.native",priority:0,open:({initial:e})=>new Promise(t=>{const n=document.createElement("input");n.type="color",e&&/^#[0-9a-f]{6}$/i.test(e)&&(n.value=e);let r=!1;const s=i=>{r||(r=!0,n.remove(),t(i))};n.addEventListener("change",()=>s(n.value)),n.addEventListener("cancel",()=>s(null)),n.style.position="fixed",n.style.left="-9999px",document.body.appendChild(n),n.click()})};function Bb(e={}){return[...ai($u),qb].sort((r,s)=>(s.priority??0)-(r.priority??0))[0].open(e)}const Vb={pick:Bb};let Tn=null;function $b(e){Tn=e}async function rr(e){return Tn?{...Tn.bindings[e]??{}}:{}}async function yl(e,t,n){if(!Tn)return;const r={...Tn.bindings[e]??{}};n===void 0?delete r[t]:r[t]=n,Tn.bindings={...Tn.bindings,[e]:r}}const na="sh3.actions",zi=new Set;function Fb(e,t){if(typeof e.run!="function"&&e.submenu!==!0)return console.warn(`[sh3] Action "${e.id}" registered by "${t}" has no \`run\` and is not a submenu parent (\`submenu: true\`). Registration ignored.`),()=>{};zi.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.`),zi.add(e.id);const r=Nu(na,{action:e,ownerShardId:t});let s=!1;return()=>{s||(s=!0,r(),zi.delete(e.id))}}function Ze(){return ai(na)}function Ub(e){return ju(na,e)}const Hb=["Ctrl","Alt","Shift","Meta"],_l={control:"Ctrl",ctrl:"Ctrl",alt:"Alt",option:"Alt",shift:"Shift",meta:"Meta",cmd:"Meta",command:"Meta",super:"Meta",win:"Meta"},Kb=new Set(["Control","Alt","Shift","Meta"]);function Fu(e){return e.length===1?e.toUpperCase():e}function ra(e){if(!e)throw new Error("Empty shortcut");const t=e.split("+");if(t.some(o=>o.trim()===""))throw new Error(`Malformed shortcut: "${e}"`);const n=t.map(o=>o.trim());if(n.length===0)throw new Error(`Malformed shortcut: "${e}"`);const r=new Set;let s;for(const o of n){const l=o.toLowerCase();if(l in _l)r.add(_l[l]);else{if(s!==void 0)throw new Error(`Multiple keys in shortcut: "${e}"`);s=Fu(o)}}if(s===void 0)throw new Error(`No key in shortcut: "${e}"`);return[...Hb.filter(o=>r.has(o)),s].join("+")}function Uu(e,t){if(!e.toLowerCase().includes("mod"))return e;const n=e.split("+").map(r=>r.toLowerCase()==="mod"?t==="mac"?"Meta":"Ctrl":r);return ra(n.join("+"))}function Wb(e){if(Kb.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=Fu(e.key);return[...t,n].join("+")}function Yb(){return typeof navigator>"u"?"other":/Mac|iPhone|iPad|iPod/i.test(navigator.platform)?"mac":"other"}function ns(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?null:ra(r)}return e.defaultShortcut?Uu(e.defaultShortcut,n):null}function Gb(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?{shortcut:null,source:"disabled"}:{shortcut:ra(r),source:"user"}}return e.defaultShortcut?{shortcut:Uu(e.defaultShortcut,n),source:"default"}:{shortcut:null,source:"none"}}function li(e){return e==="home"?"home":e==="app"?"app":typeof e=="string"&&e.startsWith("view:")?"view":typeof e=="string"&&e.startsWith("focus:")?"focus":"element"}function sa(e){return Array.isArray(e)?e:[e]}function Hu(e){return e==="home"||e==="app"?null:typeof e=="string"?e:e.element}function rs(e,t,n){const r=sa(e),s={};for(const i of r){const o=li(i);(s[o]??=[]).push(i)}for(const i of ci){const o=s[i];if(o){for(const l of o)if(ia(l,t,n))return l}}return null}function Xb(e,t){return typeof e=="string"||typeof t=="string"?e===t:e.element===t.element}const ci=["element","focus","view","app","home"];function ia(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 Jb(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=ns(r.action,t.bindings,t.platform);if(s)for(const i of sa(r.action.scope)){if(!ia(i,t,r.ownerShardId))continue;const o=li(i),l=n[o].get(s);if(l&&l!==r.action.id){console.warn(`[sh3] Shortcut "${s}" in tier "${o}" is bound to both "${l}" and "${r.action.id}"; first-registered wins. Users can rebind to resolve.`);continue}n[o].set(s,r.action.id)}}return n}function Zb(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 Qb(e){const t=Jb(e.entries,e.state),n=new Map(e.entries.map(r=>[r.action.id,r]));for(const r of ci){const s=t[r].get(e.shortcut);if(!s)continue;const i=n.get(s);if(i)return Zb(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 Lt=q(null);function ey(){return a(Lt)}function ty(e){return{get(){return a(Lt)},set(t){k(Lt,{type:t.type,ref:t.ref,ownerShardId:e},!0)},clear(){if(a(Lt)){if(a(Lt).ownerShardId!==e){console.warn(`[sh3] Shard "${e}" tried to clear selection owned by "${a(Lt).ownerShardId}". Ignoring.`);return}k(Lt,null)}}}}function ny(e){a(Lt)&&a(Lt).ownerShardId===e&&k(Lt,null)}function ry(){k(Lt,null)}const js=new Map,Ku=new Set;function sy(e){Ku.add(e)}function iy(e,t){if(js.has(e))throw new Error(`View "${e}" is already registered`);js.set(e,t);for(const n of Ku)n(e,t)}function Wu(e){return js.get(e)}function oy(e){js.delete(e)}const zr=new Map;function ay(e,t){if(zr.has(e))throw new Error(`Verb "${e}" is already registered`);zr.set(e,t)}function wl(e){return zr.get(e)}function ly(e){zr.delete(e)}function oa(){return Array.from(zr.values()).sort((e,t)=>e.name.localeCompare(t.name))}function dr(e,t){const n=(r,s)=>{if(r.type==="tabs"){const i=r.tabs.findIndex(o=>o.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 o=n(r.children[i],[...s,i]);if(o)return o}return null};return n(e,[])}function aa(e,t){if(co(e.docked,t))return{kind:"docked"};for(const n of e.floats)if(co(n.content,t))return{kind:"float",floatId:n.id};return null}function co(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(co(n,t))return!0;return!1}function ui(e,t){const n=dr(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 cy(e,t,n){const r=Math.max(0,Math.min(n,e.tabs.length));e.tabs.splice(r,0,t),e.activeTab=r}function uy(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 kl(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 dy(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 Yu(e,t,n,r){const s=qr(e,t);if(!s||Gu(e,t))return;if(t.length===0){const u=dy(s),d=kl(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=kl(s,n,r),o=t.slice(0,-1),l=t[t.length-1],c=qr(e,o);!c||c.type!=="split"||(c.children[l]=i)}function qr(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 Gu(e,t){if(t.length===0)return!1;const n=qr(e,t.slice(0,-1));return!n||n.type!=="split"?!1:n.fixed?.[t[t.length-1]]===!0}function tr(e){let t=!0;for(;t;)t=Xu(e,null,0)}function Xu(e,t,n){if(e.type==="split"){let r=!1;for(let s=0;s<e.children.length;s++)Xu(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.fixed?.[s]&&(e.children.splice(s,1),e.sizes.splice(s,1),e.pinned&&e.pinned.splice(s,1),e.collapsed&&e.collapsed.splice(s,1),e.fixed&&e.fixed.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 gn=new Map,ks=new Set;function fy(e,t){for(const[n,r]of gn.entries()){if(r.viewId!==e||r.handle!==void 0)continue;const s={slotId:n,viewId:e,label:r.label,meta:r.meta,setDirty(i){di[n]=i},location(){return aa(xt(),n)}};queueMicrotask(()=>{if(gn.has(n)&&r.handle===void 0&&(r.handle=t.mount(r.host,s),(r.handle?.closable||n.startsWith("float:"))&&(fi[n]=!0),r.handle?.onResize)){const i=r.handle.onResize.bind(r.handle);r.resizeObserver=new ResizeObserver(o=>{for(const l of o){const c=l.contentRect;i(Math.round(c.width),Math.round(c.height))}}),r.resizeObserver.observe(r.host)}})}}sy(fy);const di=le({}),fi=le({});function vy(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 o={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?Wu(t):void 0,c={slotId:e,viewId:t??"",label:n,meta:r,setDirty(u){di[e]=u},location(){return aa(xt(),e)}};if(o.handle=l?.mount(s,c),(o.handle?.closable||e.startsWith("float:"))&&(fi[e]=!0),o.handle?.onResize){const u=o.handle.onResize.bind(o.handle);o.resizeObserver=new ResizeObserver(d=>{for(const f of d){const h=f.contentRect;u(Math.round(h.width),Math.round(h.height))}}),o.resizeObserver.observe(s)}}),o}function la(e,t,n,r){ks.delete(e);let s=gn.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=vy(e,t,n,r),gn.set(e,s)),s.refcount++,s.host}function ca(e,t){const n=gn.get(e);if(n){if(n.refcount--,n.refcount>0){t&&n.host.parentNode===t&&n.host.remove();return}ks.add(e),queueMicrotask(()=>{if(!ks.has(e))return;ks.delete(e);const r=gn.get(e);!r||r.refcount>0||(r.resizeObserver?.disconnect(),r.handle?.unmount(),r.cancelPendingMount(),r.host.remove(),gn.delete(e),delete di[e],delete fi[e])})}}function Ju(e){const t=uo.get(e);return t||gn.get(e)?.handle}function hy(e){return di[e]??!1}function py(e){return uo.has(e)?!!uo.get(e).closable:fi[e]??!1}const uo=new Map;function Zu(e){if(!e||typeof e!="object")return!1;const t=e.type;return t==="split"||t==="tabs"||t==="slot"}function my(e){if(!e||typeof e!="object")return!1;const t=e;return Zu(t.docked)&&Array.isArray(t.floats)}function gy(e){return{docked:e,floats:[]}}function by(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 Qu(e){if(Array.isArray(e))return e.map(by);if(my(e))return[{name:"default",variants:{default:e}}];if(Zu(e))return[{name:"default",variants:{default:gy(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 ua(e){const t=Sl(e.docked);for(const n of e.floats)t.push(...Sl(n.content));return t}const yn=le(new Map),jt=le({id:null}),fo=le({id:null});function yy(){return fo.id}function da(e){yn.set(e.manifest.id,e)}function fa(){return Array.from(yn.values()).map(e=>e.manifest)}function ed(){const e=jt.id;return e?yn.get(e)?.manifest??null:null}function _n(e){return yn.get(e)}io("workspace","__shell__");const _y={type:"slot",slotId:"sh3core.home",viewId:"sh3core:home"},wy=le({docked:_y,floats:[]});let je=q(null),vi=q("home");function ky(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 Sy(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 xy(e){if(a(je))throw new Error(`Layout manager cannot attach app "${e.manifest.id}": app "${a(je).appId}" is still attached`);const t=`__sh3core__:app:${e.manifest.id}`,n=Qu(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=ug("workspace",t),i=ky(s);(i&&i.layoutVersion!==e.manifest.layoutVersion||s&&!i)&&io("workspace",t);const l=si(t,{workspace:r}).workspace;k(je,{appId:e.manifest.id,proxy:l,heldSlotIds:[]},!0),Yg(l)}function Ey(){if(!a(je))throw new Error("acquireAppSlotHolds: no app attached");if(a(je).heldSlotIds.length>0)return;const e=Sy(a(je).proxy),t=ua(e);for(const{slotId:n,viewId:r,label:s,meta:i}of t)la(n,r,s,i),a(je).heldSlotIds.push(n)}function Iy(){if(!a(je))throw new Error("resetActivePresetToDefault: no app attached");const e=_n(a(je).appId);if(!e)throw new Error(`resetActivePresetToDefault: attached app "${a(je).appId}" not in registry`);const t=Qu(e.initialLayout),n=a(je).proxy,r=n.activePreset;let s=t.find(l=>l.name===r);s||(s=t[0],n.activePreset=s.name);for(const l of a(je).heldSlotIds)ca(l);a(je).heldSlotIds=[];const i=structuredClone(s.variants.default);n.presets[n.activePreset].default=i;const o=ua(i);for(const{slotId:l,viewId:c,label:u,meta:d}of o)la(l,c,u,d),a(je).heldSlotIds.push(l)}function td(){if(a(je)){Gg();for(const e of a(je).heldSlotIds)ca(e);k(je,null)}}function nd(){k(vi,"home")}function xl(){if(!a(je))throw new Error("Cannot switchToApp: no app is attached");k(vi,"app")}const Ss=F(()=>{if(a(vi)==="app"&&a(je)){const e=a(je).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 wy});function xt(){return a(Ss)}function rd(){return a(vi)}const Zt={get root(){return a(Ss).docked},get tree(){return a(Ss)},get floats(){return a(Ss).floats}};let sd=q(null),id=q(le(new Set)),xs=q(le(new Set)),od=q(le(new Set)),ad=q(null),ld=q(le({}));const Ay=Yb(),vo=new Set;function br(){for(const e of vo)try{e()}catch(t){console.error("[sh3] onActiveChange listener threw",t)}}function Cy(e){return vo.add(e),()=>{vo.delete(e)}}function Ty(){br()}function zs(e,t){k(sd,e,!0),k(id,new Set(t),!0),br()}function Ry(){const e=ua(Zt.tree),t=new Set;for(const n of e)n.viewId!==null&&t.add(n.viewId);k(od,t,!0),br()}function cd(e){k(ad,e,!0),br()}function Br(e){k(ld,{...e},!0),br()}function $t(){return{activeAppId:a(sd),activeAppRequiredShards:a(id),autostartShards:a(xs),mountedViewIds:a(od),focusedViewId:a(ad),selection:ey(),bindings:a(ld),platform:Ay}}function Dy(e){a(xs).has(e)||(k(xs,new Set([...a(xs),e]),!0),br())}var Py=A('<div class="sh3-ctx-sep svelte-1667pfa" role="separator"></div>'),My=A('<span class="sh3-ctx-chevron svelte-1667pfa">▸</span>'),Oy=A('<span class="sh3-ctx-shortcut svelte-1667pfa"> </span>'),Ly=A('<button role="menuitem"><span class="sh3-ctx-check svelte-1667pfa"> </span> <span class="sh3-ctx-label svelte-1667pfa"> </span> <!></button>'),Ny=A("<!> <!>",1),jy=A('<div class="sh3-context-menu svelte-1667pfa" role="menu" tabindex="0"></div>');function qs(e,t){ne(t,!0);const n=F(()=>t.sections.flatMap(c=>c.items));let r=q(0);function s(c,u){if(a(n).length===0)return 0;let d=c;for(let f=0;f<a(n).length;f++)if(d=(d+u+a(n).length)%a(n).length,!a(n)[d].disabled)return d;return c}function i(c){if(c.key==="ArrowDown")k(r,s(a(r),1),!0),c.preventDefault();else if(c.key==="ArrowUp")k(r,s(a(r),-1),!0),c.preventDefault();else if(c.key==="Enter"){const u=a(n)[a(r)];u&&!u.disabled&&(t.onInvoke(u.id),u.submenu||t.onDismiss()),c.preventDefault()}else if(c.key==="Escape")t.onDismiss(),c.preventDefault();else if(c.key.length===1){const u=c.key.toLowerCase(),d=(a(r)+1)%a(n).length;for(let f=0;f<a(n).length;f++){const h=(d+f)%a(n).length,m=a(n)[h];if(!m.disabled&&m.label.toLowerCase().startsWith(u)){k(r,h);break}}}}function o(c){c.disabled||(t.onInvoke(c.id),c.submenu||t.onDismiss())}var l=jy();pr(l,!0),ce(l,23,()=>t.sections,c=>c.id,(c,u,d)=>{var f=Ny(),h=fe(f);{var m=g=>{var _=Py();I(g,_)};$(h,g=>{a(d)>0&&g(m)})}var x=E(h,2);ce(x,17,()=>a(u).items,g=>g.id,(g,_)=>{const S=F(()=>a(n).indexOf(a(_)));var y=Ly();let b;var T=p(y),M=p(T,!0);v(T);var C=E(T,2),w=p(C,!0);v(C);var O=E(C,2);{var R=D=>{var N=My();I(D,N)},P=D=>{var N=Oy(),V=p(N,!0);v(N),z(()=>L(V,a(_).shortcut)),I(D,N)};$(O,D=>{a(_).submenu?D(R):a(_).shortcut&&D(P,1)})}v(y),z(()=>{b=_e(y,1,"sh3-ctx-item svelte-1667pfa",null,b,{"sh3-ctx-active":a(S)===a(r),"sh3-ctx-disabled":a(_).disabled}),be(y,"aria-disabled",a(_).disabled||void 0),L(M,a(_).checked?"✓":""),L(w,a(_).label)}),et("pointerenter",y,()=>{a(_).disabled||k(r,a(S),!0)}),U("click",y,()=>o(a(_))),I(g,y)}),I(c,f)}),v(l),U("keydown",l,i),I(e,l),re()}ue(["keydown","click"]);function ud(e,t){ne(t,!0);const n=F(()=>t.model.tiers.map(r=>({id:`tier:${r.tier}`,items:r.items.map(s=>({...s,icon:void 0}))})));qs(e,{get sections(){return a(n)},get onInvoke(){return t.onInvoke},get onDismiss(){return t.onClose}}),re()}function El(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function dd(e,t){return{id:e.action.id,label:e.action.label,shortcut:ns(e.action,t.bindings,t.platform),group:e.action.group??"",icon:e.action.icon,checked:El(e.action.checked),disabled:El(e.action.disabled),submenu:e.action.submenu===!0}}function fd(e,t,n,r){return sa(e.scope).some(i=>Xb(i,n))?n==="app"||n==="home"?ia(n,r,t):!0:!1}function vd(e,t,n){const r={element:[],focus:[],view:[],app:[],home:[]},s=new Set;for(const i of e){if(!i.action.contextItem||i.action.submenuOf!==void 0||s.has(i.action.id)||!fd(i.action,i.ownerShardId,n,t))continue;const o=rs(i.action.scope,t,i.ownerShardId)??n;s.add(i.action.id),r[li(o)].push(dd(i,t))}return{tiers:ci.map(i=>({tier:i,items:r[i]})).filter(i=>i.items.length>0)}}function zy(e,t,n,r){const s=[],i=new Set;for(const o of e)o.action.submenuOf===n&&(i.has(o.action.id)||fd(o.action,o.ownerShardId,r,t)&&(i.add(o.action.id),s.push(dd(o,t))));return s}function qy(e,t){if(!t)return 0;const n=e.toLowerCase(),r=t.toLowerCase();let s=0,i=0,o=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;o+=1+u+d,c=s,i++}else l=0;s++}return i===r.length?o:null}function By(e,t,n){const r=[];for(const i of e){if(t===""&&i.submenuOf!==void 0)continue;const o=qy(i.label,t);o!==null&&r.push({...i,score:o})}const s=new Map;return n.forEach((i,o)=>s.set(i,n.length-o)),r.sort((i,o)=>{if(i.score!==o.score)return o.score-i.score;const l=s.get(i.id)??0;return(s.get(o.id)??0)-l}),r}var Vy=A('<span class="sh3-palette-badge svelte-1qdcgk6"> </span>'),$y=A('<span class="sh3-palette-shortcut svelte-1qdcgk6"> </span>'),Fy=A('<button role="option"><span class="sh3-palette-label svelte-1qdcgk6"> </span> <!> <!></button>'),Uy=A('<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 Hy(e,t){ne(t,!0);let n=We(t,"prefill",3,""),r=q(le(n())),s=q(0);const i=F(()=>By(t.candidates,a(r),t.recency));Ie(()=>{a(s)>=a(i).length&&k(s,0)});function o(d){d.key==="ArrowDown"?(k(s,Math.min(a(s)+1,Math.max(0,a(i).length-1)),!0),d.preventDefault()):d.key==="ArrowUp"?(k(s,Math.max(a(s)-1,0),!0),d.preventDefault()):d.key==="Enter"?(a(i)[a(s)]&&(t.onInvoke(a(i)[a(s)].id),t.onClose()),d.preventDefault()):d.key==="Escape"&&(t.onClose(),d.preventDefault())}var l=Uy(),c=p(l);Se(c),pr(c,!0);var u=E(c,2);ce(u,23,()=>a(i),d=>d.id,(d,f,h)=>{var m=Fy();let x;var g=p(m),_=p(g,!0);v(g);var S=E(g,2);{var y=M=>{var C=Vy(),w=p(C);v(C),z(()=>L(w,`[${a(f).scopeBadge??""}]`)),I(M,C)};$(S,M=>{a(f).scopeBadge&&M(y)})}var b=E(S,2);{var T=M=>{var C=$y(),w=p(C,!0);v(C),z(()=>L(w,a(f).shortcut)),I(M,C)};$(b,M=>{a(f).shortcut&&M(T)})}v(m),z(()=>{x=_e(m,1,"sh3-palette-item svelte-1qdcgk6",null,x,{"sh3-palette-active":a(h)===a(s)}),be(m,"aria-selected",a(h)===a(s)),L(_,a(f).label)}),et("pointerenter",m,()=>k(s,a(h),!0)),U("click",m,()=>{t.onInvoke(a(f).id),t.onClose()}),I(d,m)}),v(u),v(l),U("keydown",l,o),Me(c,()=>a(r),d=>k(r,d)),I(e,l),re()}ue(["keydown","click"]);function Ky(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function Wy(e,t,n={}){const r=[],s=new Set,i=n.filter?.submenuOf;for(const o of e){if(o.action.paletteItem===!1||Ky(o.action.disabled)||i!==void 0&&o.action.submenuOf!==i||s.has(o.action.id))continue;const l=rs(o.action.scope,t,o.ownerShardId);l&&(s.add(o.action.id),r.push({id:o.action.id,label:o.action.label,shortcut:ns(o.action,t.bindings,t.platform),scopeBadge:Hu(l),submenu:o.action.submenu===!0,submenuOf:i!==void 0?void 0:o.action.submenuOf}))}return r}let Il=!1;function va(e){return e?e.closest("[data-sh3-view]")?.getAttribute("data-sh3-view")??null:null}function hd(e){if(e.explicit!==void 0)return e.explicit;if(e.event&&e.event.target){const t=va(e.event.target);if(t)return`focus:${t}`}return e.state.activeAppId?"app":"home"}function pd(e,t){const n=Ze().find(r=>r.action.id===e);if(!(!n||typeof n.action.run!="function"))try{n.action.run(t)}catch(r){console.error(`[sh3] action "${e}" threw:`,r)}}function yr(e){const t=Ze().find(r=>r.action.id===e);if(!t){console.warn(`[sh3] ctx.dispatch("${e}") — no action registered with that id.`);return}const n=$t();pd(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:yr})}function Yy(e){const t=va(e.target);cd(t)}function Gy(e){queueMicrotask(()=>{const t=va(document.activeElement);cd(t)})}function Xy(e){return e instanceof Element?e.closest('[data-sh3-context-menu="native"]')!==null:!1}function md(e,t,n,r){const s=document.querySelector(".sh3-popup-host");if(!s)return;const i=document.createElement("div");i.className="sh3-popup-submenu",i.style.position="absolute",i.style.pointerEvents="auto";const l=(s.querySelector(".sh3-ctx-active")??s).getBoundingClientRect();i.style.left=`${l.right+2}px`,i.style.top=`${l.top}px`,s.appendChild(i);const c=zy(Ze(),t,e,r);Oe(qs,{target:i,props:{sections:[{id:`submenu:${e}`,items:c}],onInvoke:u=>{const d=Ze().find(f=>f.action.id===u);if(!(!d||typeof d.action.run!="function")){try{d.action.run({action:{id:u,label:d.action.label},appId:t.activeAppId,viewId:t.focusedViewId??void 0,selection:t.selection??void 0,invokedVia:"context-menu",dispatch:yr})}catch(f){console.error(`[sh3] context-menu submenu action "${u}" threw:`,f)}n.close()}},onDismiss:()=>n.close()}})}function Jy(e){if(Xy(e.target))return;const t=Ze(),n=$t(),r=hd({event:e,state:n}),s=vd(t,n,r);if(s.tiers.length===0)return;e.preventDefault();const i=ss.popup.show(ud,{anchor:{x:e.clientX,y:e.clientY}},{model:s,onInvoke:o=>{const l=Ze().find(c=>c.action.id===o);if(l){if(l.action.submenu===!0){md(o,n,i,r);return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:l.action.label},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:yr})}catch(c){console.error(`[sh3] context-menu action "${o}" threw:`,c)}}},onClose:()=>i.close()})}function Zy(e){const t=Wb(e);if(!t)return;const n=Ze(),r=$t();Qb({target:e.target,shortcut:t,state:r,entries:n,runAction:pd,dispatch:yr})&&e.preventDefault()}function gd(){Il||(Il=!0,document.addEventListener("keydown",Zy),document.addEventListener("focusin",Yy),document.addEventListener("focusout",Gy),document.addEventListener("contextmenu",Jy))}function ha(e){const t=Ze(),n=$t(),r=hd({explicit:e.scope,state:n}),s=vd(t,n,r);if(s.tiers.length===0)return;const i=ss.popup.show(ud,{anchor:{x:e.x,y:e.y}},{model:s,onInvoke:o=>{const l=Ze().find(c=>c.action.id===o);if(l){if(l.action.submenu===!0){md(o,n,i,r);return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:l.action.label},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:yr})}catch(c){console.error(`[sh3] context-menu action "${o}" threw:`,c)}}},onClose:()=>i.close()})}const Qy=20;let ho=[];function e_(e){ho=[e,...ho.filter(t=>t!==e)].slice(0,Qy)}function hi(e){const t=Ze(),n=$t(),r=Wy(t,n,{filter:e?.filter}),s=ss.modal.open(Hy,{candidates:r,recency:ho,prefill:e?.prefill??"",onInvoke:i=>{const o=Ze().find(l=>l.action.id===i);if(o){if(e_(i),o.action.submenu===!0&&typeof o.action.run!="function"){s.close(),hi({filter:{submenuOf:i}});return}if(typeof o.action.run=="function")try{o.action.run({action:{id:i,label:o.action.label},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"palette",dispatch:yr})}catch(l){console.error(`[sh3] palette action "${i}" threw:`,l)}}},onClose:()=>s.close()},{dismissOnBackdrop:!0})}const t_=Object.freeze(Object.defineProperty({__proto__:null,attachGlobalListeners:gd,openContextMenu:ha,openPalette:hi},Symbol.toStringTag,{value:"Module"}));function n_(e,t){const n={element:[],focus:[],view:[],app:[],home:[]},r=new Set;for(const s of e){if(r.has(s.action.id))continue;const i=rs(s.action.scope,t,s.ownerShardId);if(!i)continue;r.add(s.action.id);const{shortcut:o,source:l}=Gb(s.action,t.bindings,t.platform);n[li(i)].push({id:s.action.id,label:s.action.label,effectiveShortcut:o,bindingSource:l,scope:i,scopeBadge:Hu(i),group:s.action.group,icon:s.action.icon,ownerShardId:s.ownerShardId,paletteItem:s.action.paletteItem!==!1,contextItem:s.action.contextItem!==!1})}return ci.flatMap(s=>n[s])}const r_={async rebind(e,t,n){await yl(e,t,n),$t().activeAppId===e&&Br(await rr(e))},async resetBinding(e,t){await yl(e,t,void 0),$t().activeAppId===e&&Br(await rr(e))},async bindingsFor(e){const t=await rr(e),n={};for(const[r,s]of Object.entries(t))s!==null&&(n[r]=s);return n},openContextMenu:ha,openPalette:hi,listActive(){return n_(Ze(),$t())},onActiveChange(e){const t=Cy(e),n=Ub(()=>{Ty()});return()=>{t(),n()}}},ss={state:si,modal:Zo,popup:ao,toast:Lg,float:Mt,presets:Qg,conflicts:zb,color:Vb,actions:r_};function Kn(e,t,n){return`${e}/${t}/${n}`}function s_(e,t){return`${e}/${t}/`}const i_="sh3-documents",Ct="docs",o_=2;class a_{#e=null;#t(){return this.#e||(this.#e=new Promise((t,n)=>{const r=indexedDB.open(i_,o_);r.onupgradeneeded=()=>{const s=r.result;s.objectStoreNames.contains(Ct)||s.createObjectStore(Ct)},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(Ct,t).objectStore(Ct),c=n(l);c.onsuccess=()=>s(c.result),c.onerror=()=>i(c.error)})}async read(t,n,r){const s=Kn(t,n,r),i=await this.#n("readonly",o=>o.get(s));return i?i.content:null}async write(t,n,r,s){const i=Kn(t,n,r),o=typeof s=="string"?new Blob([s]).size:s.byteLength,l={content:s,size:o,lastModified:Date.now()};await this.#n("readwrite",c=>c.put(l,i))}async delete(t,n,r){const s=Kn(t,n,r);await this.#n("readwrite",i=>i.delete(s))}async rename(t,n,r,s){const i=Kn(t,n,r),o=Kn(t,n,s),l=await this.#t();return new Promise((c,u)=>{let d=!1;const f=l.transaction(Ct,"readwrite"),h=f.objectStore(Ct),m=h.get(i);m.onsuccess=()=>{const x=m.result;if(!x){d=!0,f.abort(),u(new Error(`Document not found at ${r}`));return}const g=h.getKey(o);g.onsuccess=()=>{if(g.result!==void 0){d=!0,f.abort(),u(new Error(`Document already exists at ${s}`));return}const _={...x,lastModified:Date.now()};h.put(_,o),h.delete(i)},g.onerror=()=>u(g.error)},m.onerror=()=>u(m.error),f.oncomplete=()=>c(),f.onerror=()=>{d||u(f.error)},f.onabort=()=>{}})}async list(t,n){const r=s_(t,n),s=await this.#t();return new Promise((i,o)=>{const c=s.transaction(Ct,"readonly").objectStore(Ct),u=IDBKeyRange.bound(r,r+"￿",!1,!1),d=c.openCursor(u),f=[];d.onsuccess=()=>{const h=d.result;if(h){const m=h.value;f.push({path:h.key.slice(r.length),size:m.size,lastModified:m.lastModified}),h.continue()}else i(f)},d.onerror=()=>o(d.error)})}async exists(t,n,r){const s=Kn(t,n,r);return await this.#n("readonly",o=>o.getKey(s))!==void 0}async listAllShards(t){const n=`${t}/`,r=await this.#t();return new Promise((s,i)=>{const l=r.transaction(Ct,"readonly").objectStore(Ct),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),m=h.indexOf("/");m>=0&&d.add(h.slice(0,m)),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(Ct,"readonly").objectStore(Ct),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),m=h.indexOf("/");if(m>=0){const x=f.value;d.push({shardId:h.slice(0,m),path:h.slice(m+1),size:x.size,lastModified:x.lastModified})}f.continue()}else s(d)},u.onerror=()=>i(u.error)})}}class l_{#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}`,o={...this.#n(),"Content-Type":typeof s=="string"?"text/plain":"application/octet-stream"},l=await fetch(i,{method:"PUT",headers:o,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 o=await i.json();return o.exists?o:null}async resolve(t,n,r,s){const i=`${this.#e}/api/docs/${t}/${n}/${r}/resolve`,o=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(o)});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)}`,o=await fetch(i,{credentials:"include"});if(o.status===404)return null;if(!o.ok)throw new Error(`readBranch failed: ${o.status}`);return o.text()}async rename(t,n,r,s){const i=`${this.#e}/api/docs/${t}/${n}/${r}/rename`,o={...this.#n(),"Content-Type":"application/json"},l=await fetch(i,{method:"POST",headers:o,body:JSON.stringify({to:s}),credentials:"include"});if(l.status===404)throw new Error(`Document not found at ${r}`);if(l.status===409)throw new Error(`Document already exists at ${s}`);if(!l.ok)throw new Error(`Document rename failed: ${l.status}`)}#n(){return this.#t?{Authorization:`Bearer ${this.#t}`}:{}}}class c_{#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 pn=new c_,u_=1e3;function d_(e,t,n,r){const s=new Set,i=new Set;function o(u){return!r.extensions||r.extensions.length===0?!0:r.extensions.some(d=>u.endsWith(d))}function l(u,d){pn.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=>o(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){const d=await n.exists(e,t,u);await n.delete(e,t,u),d&&l("delete",u)},async rename(u,d){if(!o(d))throw new Error(`Cannot rename to ${d}: violates handle extensions filter`);for(const f of s)if(f.path===u)throw new Error(`Cannot rename: active autosave on ${u}; flush and dispose first`);await n.rename(e,t,u,d),pn.emit({type:"rename",path:d,oldPath:u,tenantId:e,shardId:t})},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=pn.subscribe(f=>{f.tenantId===e&&f.shardId===t&&o(f.path)&&u(f)});return i.add(d),()=>{d(),i.delete(d)}},autosave(u,d){const f=new f_(c,u,d?.debounceMs??u_);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 f_{#e;#t;#n;#i=null;#s=null;#o=!1;#r=!1;constructor(t,n,r){this.#e=t,this.#t=n,this.#n=r}get dirty(){return this.#o}get path(){return this.#t}update(t){this.#r||(this.#i=t,this.#o=!0,this.#a())}async flush(){if(this.#l(),this.#i!==null){const t=this.#i;this.#i=null,this.#o=!1,await this.#e.write(this.#t,t)}}async dispose(){this.#r||(this.#r=!0,await this.flush())}#a(){this.#l(),this.#s=setTimeout(()=>{this.#s=null,this.flush()},this.#n)}#l(){this.#s!==null&&(clearTimeout(this.#s),this.#s=null)}}const v_="local";let bd=v_,yd=new a_;function qi(){return bd}function Al(){return yd}function Bi(e){bd=e}function h_(e){yd=e}const p_="sync:peer",m_="sync:policy";let _r=q(null),Qt=q(null),wr=q(!1),pi="",po=null;function Cl(e,t){pi=e,po=t.auth,k(_r,t.user,!0),k(Qt,t.session,!0),k(wr,!t.session&&!t.user,!0)}async function _d(e,t){try{const n=await fetch(`${pi}/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 k(_r,r.user,!0),k(Qt,r.session,!0),k(wr,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function g_(e,t,n){try{const r=await fetch(`${pi}/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 k(_r,s.user,!0),k(Qt,s.session,!0),k(wr,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function b_(){try{await fetch(`${pi}/api/auth/logout`,{method:"POST",credentials:"include"})}catch{}if(po?.required&&!po.guestAllowed){window.location.reload();return}k(_r,null),k(Qt,null),k(wr,!0)}function y_(){k(_r,{id:"local",username:"local",displayName:"Local Owner",role:"admin",createdAt:"",updatedAt:""},!0),k(Qt,{token:"local",userId:"local",role:"admin",expiresAt:1/0},!0),k(wr,!1)}function __(){return a(Qt)?.token==="local"}function dn(){return a(Qt)?.role==="admin"}function mo(){return a(Qt)!==null}function wd(){return a(wr)}function mi(){return a(_r)}function gi(){return a(Qt)?`Bearer ${a(Qt).token}`:null}let kr="";function kd(e){kr=e}async function w_(e){const t=await fetch(`${kr}/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 k_(e,t){if(!dn())throw new Error("Cannot update env state: not elevated to admin");const n=gi(),r={"Content-Type":"application/json"};n&&(r.Authorization=n);const s=await fetch(`${kr}/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 pa(e,t,n){if(!dn())throw new Error("Cannot install: not elevated to admin");const r=gi(),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 o=await fetch(`${kr}/api/packages/install`,{method:"POST",headers:i,body:s});if(!o.ok){let l={};try{l=await o.json()}catch{}return{ok:!1,error:typeof l.error=="string"?l.error:`HTTP ${o.status}`,code:typeof l.code=="string"?l.code:void 0,missing:Array.isArray(l.missing)?l.missing:void 0}}return{ok:!0}}async function Sd(e){if(!dn())throw new Error("Cannot uninstall: not elevated to admin");const t=gi(),n={"Content-Type":"application/json"};t&&(n.Authorization=t);const r=await fetch(`${kr}/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 S_(){const e=await fetch(`${kr}/api/packages`);return e.ok?await e.json():[]}function x_(e){return Kt[e].list()}function E_(e,t){return Kt[e].read(t)}function I_(e,t){Kt[e].delete(t)}function A_(e){for(const t of Kt[e].list())Kt[e].delete(t)}function xd(){return{list:x_,peek:E_,clear:I_,clearAll:A_}}const Ed="documents:browse",Id="documents:read",Ad="documents:write";function C_(e,t,n={canRead:!1,canWrite:!1}){const r={listDocuments:()=>t.listAllDocuments(e),listShards:()=>t.listAllShards(e),watchDocuments:s=>pn.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,o)=>t.readBranch?t.readBranch(e,s,i,o):null),n.canWrite&&(r.writeTo=async(s,i,o)=>{const l=await t.exists(e,s,i);await t.write(e,s,i,o),pn.emit({type:l?"update":"create",path:i,tenantId:e,shardId:s})},r.resolveConflictFrom=async(s,i,o)=>{if(!t.resolve)throw new Error("Backend does not support resolveConflict");await t.resolve(e,s,i,o),pn.emit({type:"update",path:i,tenantId:e,shardId:s})},r.renameFrom=async(s,i,o,l)=>{if(l?.newShardId!==void 0)throw new Error("Cross-shard move is not yet supported (ADR-018 amendment 2026-04-27)");await t.rename(e,s,i,o),pn.emit({type:"rename",path:o,oldPath:i,tenantId:e,shardId:s})},r.deleteFrom=async(s,i)=>{const o=await t.exists(e,s,i);await t.delete(e,s,i),o&&pn.emit({type:"delete",path:i,tenantId:e,shardId:s})}),r}const Cd="keys:mint";class Td extends Error{constructor(t){super(`Shard may not mint a key with scope '${t}' — not declared in manifest.`),this.name="ScopeEscalationError"}}class Rd extends Error{constructor(){super("User denied key creation."),this.name="ConsentDeniedError"}}const go=new Map;let Mr=null;function Dd(e){return Mr=e,()=>{Mr===e&&(Mr=null)}}async function T_(e,t){if(!Mr)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=>{go.set(n,{resolve:r}),Mr({...t,shardId:e,requestId:n})})}function bo(e,t){const n=go.get(e);n&&(go.delete(e),n.resolve(t))}const Bs=new Map,Es=new Map,R_=5e3;function D_(e,t){let n=Es.get(e);n||(n=new Set,Es.set(e,n)),n.add(t),setTimeout(()=>{n.delete(t),n.size===0&&Es.delete(e)},R_)}function P_(e,t){return Es.get(e)?.has(t)??!1}function ma(e,t){const n=Bs.get(e)??new Set;return n.add(t),Bs.set(e,n),()=>{n.delete(t)}}function Pd(e,t){if(!e||P_(e,t))return;D_(e,t);const n=Bs.get(e);if(n)for(const s of n)s(t);const r=Bs.get("*");if(r)for(const s of r)s(t)}function M_(){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);Pd(n.shardId,n.id)}catch{}},()=>e.close()}function O_(e){const{shardId:t,shardPermissions:n}=e,r=s=>{for(const i of s)if(!n.includes(i)&&!n.includes("admin:*"))throw new Td(i)};return{async mint(s){if(r(s.scopes),!await T_(t,s))throw new Rd;const o=await fetch("/api/keys/consent",{method:"POST",credentials:"include",headers:{"content-type":"application/json"},body:JSON.stringify({shardId:t,...s})});if(!o.ok)throw new Error(`Consent ticket failed: ${o.status}`);const{ticket:l}=await o.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(o=>o.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}`);Pd(t,s)}}}const en=le(new Map),Vr=new Map,is=le(new Map);function ga(e){const t=e.manifest.id;en.has(t)&&is.has(t)&&bi(t),en.set(t,e)}async function Md(e){const t=en.get(e);if(!t)throw new Error(`Cannot activate shard "${e}": not registered`);if(Vr.has(e))return;const n={shard:t,ctx:void 0,viewIds:new Set,verbNames:new Set,cleanupFns:[]},r=le({proxy:null,defaults:null}),s={register(o,l){const c=Nu(o,l);return n.cleanupFns.push(async()=>c()),c},list(o){return ai(o)},listPoints(){return eb()},onChange(o,l){const c=ju(o,l);return n.cleanupFns.push(async()=>c()),c}},i={state:o=>ss.state(e,o),registerView:(o,l)=>{iy(o,l),n.viewIds.add(o)},registerVerb:o=>{const l=e==="shell"?o.name:`${e}:${o.name}`;ay(l,{...o,name:l}),n.verbNames.add(l)},documents:o=>{const l=d_(qi(),e,Al(),o);return n.cleanupFns.push(()=>l.dispose()),l},env(o){return r.proxy?(console.warn(`[sh3] Shard "${e}" called ctx.env() more than once; extra calls are ignored.`),r.proxy):(r.defaults=o,r.proxy={...o},r.proxy)},async envUpdate(o){if(!r.proxy||!r.defaults)throw new Error(`Shard "${e}" called envUpdate() without declaring env state`);const l=zn(r.proxy);Object.assign(r.proxy,o);try{const c=zn(r.proxy);await k_(e,c)}catch(c){throw Object.assign(r.proxy,l),c}},get isAdmin(){return dn()},get tenantId(){return qi()},zones:t.manifest.permissions?.includes(Xo)?xd():void 0,browse:t.manifest.permissions?.includes(Ed)?C_(qi(),Al(),{canRead:t.manifest.permissions.includes(Id),canWrite:t.manifest.permissions.includes(Ad)}):void 0,keys:t.manifest.permissions?.includes(Cd)?O_({shardId:e,shardPermissions:t.manifest.permissions??[]}):void 0,contributions:s,actions:{register(o){const l=Fb(o,e);return n.cleanupFns.push(async()=>l()),l},selection:ty(e),openContextMenu(o){ha(o)},openPalette(o){hi(o)}}};if(n.ctx=i,t.onKeyRevoked){const o=ma(e,async l=>{try{await t.onKeyRevoked(l)}catch(c){console.error(`[sh3] onKeyRevoked failed in "${e}":`,c)}});n.cleanupFns.push(async()=>o())}Vr.set(e,n),is.set(e,t),await t.activate(i);for(const o of t.manifest.views)if(!n.viewIds.has(o.id))throw new Error(`Shard "${e}" declared view "${o.id}" in its manifest but registered no factory for it.`);if(r.proxy&&r.defaults)try{const o=await w_(e),l=Object.assign({},r.defaults,o);Object.assign(r.proxy,l)}catch(o){console.warn(`[sh3] Failed to hydrate env state for shard "${e}":`,o instanceof Error?o.message:o)}t.autostart?.(i)}function bi(e){const t=Vr.get(e);if(t){t.shard.deactivate?.();for(const n of t.cleanupFns)n();for(const n of t.verbNames)ly(n);for(const n of t.viewIds)oy(n);ny(e),Vr.delete(e),is.delete(e)}}function L_(e){return Vr.get(e)?.ctx}function Tl(){const e=[];for(const t of is.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 Od=si("__sh3core__:last-app",{user:{id:null}});function N_(){return Od.user.id}function Vs(e){Od.user.id=e}const yo=new Map;function fs(e){let t=yo.get(e);if(!t){const n=_n(e);t={state:r=>si(`__app__:${e}`,r),zones:n?.manifest.permissions?.includes(Xo)?xd():void 0},yo.set(e,t)}return t}async function $n(e){const t=_n(e);if(!t)throw new Error(`Cannot launch app "${e}": not registered`);if(jt.id&&jt.id!==e)Ld(jt.id);else if(jt.id===e){for(const n of t.manifest.requiredShards){const r=en.get(n),s=L_(n);r&&s&&r.resume?.(s)}t.resume?.(fs(e)),xl(),t.onAppReady?.(fs(e)),Vs(e),fo.id=e,zs(e,new Set(t.manifest.requiredShards??[])),rr(e).then(Br);return}for(const n of t.manifest.requiredShards)if(!en.has(n))throw new Error(`App "${e}" requires shard "${n}" which is not registered`);xy(t);try{for(const n of t.manifest.requiredShards)await Md(n)}catch(n){throw td(),n}Ey(),t.activate?.(fs(e)),jt.id=e,zs(e,new Set(t.manifest.requiredShards??[])),rr(e).then(Br),xl(),t.onAppReady?.(fs(e)),Vs(e),fo.id=e}function Ld(e){if(jt.id!==e)return;const t=_n(e);if(t){t.deactivate?.(),nd(),td();for(const n of t.manifest.requiredShards){const r=en.get(n);r&&(r.autostart||bi(n))}jt.id=null,zs(null,new Set),ry(),rr("sh3.home").then(Br),yo.delete(e)}}function ba(e){yn.has(e)&&(jt.id===e&&(Ld(e),Vs(null)),yn.delete(e))}async function Nd(){const e=jt.id?_n(jt.id):null;if(e){for(const t of e.manifest.requiredShards){const n=en.get(t);if(n?.suspend&&await n.suspend()===!1)return!1}if(e.suspend&&await e.suspend()===!1)return!1}return nd(),zs(null,new Set),Vs(null),!0}const j_="modulepreload",z_=function(e){return"/"+e},Rl={},jd=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),l=o?.nonce||o?.getAttribute("nonce");s=Promise.allSettled(n.map(c=>{if(c=z_(c),c in Rl)return;Rl[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":j_,u||(f.as="script"),f.crossOrigin="",f.href=c,l&&f.setAttribute("nonce",l),document.head.appendChild(f),u)return new Promise((h,m)=>{f.addEventListener("load",h),f.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${c}`)))})}))}function i(o){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return s.then(o=>{for(const l of o||[])l.status==="rejected"&&i(l.reason);return t().catch(i)})};function zd(){return{root:xt(),source:rd()}}function q_(e){const t=xt().docked,n=_a(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 B_(e){const t=xt();return _i(t.docked,n=>n.slotId===e)?!0:qd(t,n=>n.slotId===e)}function yi(e){const t=xt();return _i(t.docked,n=>n.viewId===e)?!0:qd(t,n=>n.viewId===e)}function _i(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(_i(n,t))return!0}return!1}function qd(e,t){for(const n of e.floats)if(_i(n.content,t))return Mt.focus(n.id),!0;return!1}function V_(e,t){return Bd(e,t,!0)}function $_(e,t){return Bd(e,t,!1)}function Bd(e,t,n){const r=xt().docked,s=qr(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 ya(e){const t=xt(),n=t.docked;if(!dr(n,e))return F_(t,e);const i=Ju(e)?.closable;return!i||typeof i=="object"&&(!await i.canClose()||!dr(n,e))?!1:(ui(n,e),tr(n),!0)}async function F_(e,t){for(const n of e.floats){if(!dr(n.content,t))continue;const i=Ju(t)?.closable;if(typeof i=="object"&&(!await i.canClose()||!dr(n.content,t)))return!1;ui(n.content,t);const o=n.content.type==="tabs"?n.content:null;return(!o||o.tabs.length===0)&&Mt.close(n.id),!0}return!1}function Vd(e){const t=xt(),n=dr(t.docked,e);if(!n)return null;const r=n.entry,s=r.viewId;if(!s)return null;const i=r.label,o=r.meta;return ui(t.docked,e),tr(t.docked),Mt.open(s,{title:i,meta:o})}function $d(e){const n=xt().floats.find(l=>l.id===e);if(!n)return!1;const r=n.content,s=r.type==="tabs"?r:null;if(!s||s.tabs.length===0)return Mt.close(e),!1;const i=s.tabs[s.activeTab??0]??s.tabs[0],o=wa({slotId:i.slotId,viewId:i.viewId,label:i.label,meta:i.meta});return o&&Mt.close(e),o}function _a(e){if(e.type==="tabs")return e;if(e.type==="split")for(const t of e.children){const n=_a(t);if(n)return n}return null}function Fd(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=Fd(e.children[n],[...t,n]);if(r)return r}return null}function wa(e){const t=xt().docked;if(yi(e.viewId??""))return!0;const n=_a(t);if(n)return n.tabs.push(e),n.activeTab=n.tabs.length-1,!0;const r=Fd(t);return r?(Yu(t,r,e,"right"),!0):!1}function Ud(e){return aa(xt(),e)}class dt extends Error{constructor(t,n){super(`Registry validation error at ${t}: ${n}`),this.name="RegistryValidationError",this.path=t}}function Hd(e){if(!e||typeof e!="object"||Array.isArray(e))throw new dt("$","expected an object");const t=e;if(t.version!==1)throw new dt("$.version",`expected 1, got ${JSON.stringify(t.version)}`);if(!Array.isArray(t.packages))throw new dt("$.packages","expected an array");return{version:1,packages:t.packages.map((r,s)=>U_(r,`$.packages[${s}]`))}}function U_(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new dt(t,"expected an object");const n=e;Nt(n,"id",t),W_(n,"type",["shard","app","combo"],t),Nt(n,"label",t),Nt(n,"description",t);const r=`${t}.author`;if(!n.author||typeof n.author!="object"||Array.isArray(n.author))throw new dt(r,"expected an object");const s=n.author;if(typeof s.name!="string"||s.name.length===0)throw new dt(`${r}.name`,"expected a non-empty string");if(!Array.isArray(n.versions)||n.versions.length===0)throw new dt(`${t}.versions`,"expected a non-empty array");const i=n.versions.map((o,l)=>H_(o,`${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 H_(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new dt(t,"expected an object");const n=e;Nt(n,"version",t),Nt(n,"contractVersion",t);const r="bundleUrl"in n&&n.bundleUrl!==void 0,s="integrity"in n&&n.integrity!==void 0;if(r&&Nt(n,"bundleUrl",t),s&&Nt(n,"integrity",t),r!==s)throw new dt(t,"bundleUrl and integrity must be provided together");const i="serverBundleUrl"in n&&n.serverBundleUrl!==void 0;if(i&&Nt(n,"serverBundleUrl",t),"serverIntegrity"in n&&n.serverIntegrity!==void 0&&Nt(n,"serverIntegrity",t),!r&&!i)throw new dt(t,"expected at least one of bundleUrl+integrity or serverBundleUrl");let o;if(n.requires!==void 0){if(!Array.isArray(n.requires))throw new dt(`${t}.requires`,"expected an array");o=n.requires.map((l,c)=>K_(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:o}}function K_(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new dt(t,"expected an object");const n=e;return Nt(n,"id",t),Nt(n,"versionRange",t),{id:n.id,versionRange:n.versionRange}}function Nt(e,t,n){const r=e[t];if(typeof r!="string"||r.length===0)throw new dt(`${n}.${t}`,"expected a non-empty string")}function W_(e,t,n,r){if(!n.includes(e[t]))throw new dt(`${r}.${t}`,`expected one of: ${n.join(", ")}`)}const Dl=["sha256","sha384","sha512"];function Y_(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 G_(e){return`SHA-${e.slice(3)}`}function X_(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 ka(e,t){const{algorithm:n,hash:r}=Y_(t),s=G_(n),i=await crypto.subtle.digest(s,e),o=X_(i);if(o!==r)throw new Error(`Integrity check failed for ${n}. Expected: ${r}, got: ${o}`)}async function Kd(e){const t=new Set,n=[];for(const r of e){let s;try{const o=await fetch(r);if(!o.ok){console.warn(`[sh3] Registry fetch failed for ${r}: HTTP ${o.status}`);continue}s=await o.json()}catch(o){console.warn(`[sh3] Registry ${r}: ${o instanceof Error?o.message:String(o)}`);continue}let i;try{i=Hd(s)}catch(o){console.warn(`[sh3] Registry ${r} failed validation: ${o instanceof Error?o.message:String(o)}`);continue}for(const o of i.packages)t.has(o.id)||(t.add(o.id),n.push({entry:o,latest:o.versions[0],sourceRegistry:r}))}return n}async function wi(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 ka(s,e.integrity),s}async function Sa(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 ka(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 ki(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 En="0.11.8",xa="sh3:user:__sh3core__:theme";let $r=[];function J_(e){const t=Object.keys(e);for(const n of $r)t.includes(n)||document.documentElement.style.removeProperty(`--${n}`);for(const[n,r]of Object.entries(e))document.documentElement.style.setProperty(`--${n}`,r);$r=t;try{localStorage.setItem(xa,JSON.stringify(e))}catch{}}function Z_(){for(const e of $r)document.documentElement.style.removeProperty(`--${e}`);$r=[];try{localStorage.removeItem(xa)}catch{}}function Wd(){try{const e=localStorage.getItem(xa);if(!e)return{};const t=JSON.parse(e);return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{}}catch{return{}}}function Q_(){const e=Wd();if(Object.keys(e).length!==0){for(const[t,n]of Object.entries(e))document.documentElement.style.setProperty(`--${t}`,n);$r=Object.keys(e)}}const _o="/assets/icons-2eVU8BA9.svg",Yd=Symbol("sh3.icon-sprite");function ew(e){To(Yd,e)}function Gd(){return Co(Yd)}var tw=iu('<svg class="sh3-btn__icon svelte-t4hi97" aria-hidden="true"><use></use></svg>'),nw=A('<span class="sh3-btn__label svelte-t4hi97"><!></span>'),rw=A("<button><!> <!></button>");function sw(e,t){ne(t,!0);let n=We(t,"variant",3,"default"),r=We(t,"disabled",3,!1),s=We(t,"type",3,"button");const i=Gd();function o(g){return g.includes("/")||g.endsWith(".svg")}const l=F(()=>t.icon?o(t.icon)?t.icon:`${t.sprite??i??_o}#${t.icon}`:void 0),c=F(()=>n()==="icon"||!!t.icon&&!t.children);var u=rw();let d;var f=p(u);{var h=g=>{var _=tw(),S=p(_);v(_),z(()=>be(S,"href",a(l))),I(g,_)};$(f,g=>{a(l)&&g(h)})}var m=E(f,2);{var x=g=>{var _=nw(),S=p(_);ni(S,()=>t.children),v(_),I(g,_)};$(m,g=>{t.children&&g(x)})}v(u),z(()=>{be(u,"type",s()),d=_e(u,1,`sh3-btn sh3-btn--${n()??""}`,"svelte-t4hi97",d,{"sh3-btn--icon-only":a(c)}),u.disabled=r(),be(u,"title",t.title),be(u,"aria-label",t.ariaLabel??(a(c)?t.title:void 0))}),U("click",u,function(...g){t.onclick?.apply(this,g)}),I(e,u),re()}ue(["click"]);const iw={hotInstall:typeof Blob<"u"&&typeof URL.createObjectURL=="function"},Xd=["__sh3core__","shell","sh3-store","sh3-admin"],Jd=Object.freeze(Object.defineProperty({__proto__:null,Button:sw,COLOR_PICKER_POINT:$u,CONFLICT_RENDERER_POINT:qu,ConflictPermissionError:Bu,ConflictSessionOrphanedError:Pb,ConsentDeniedError:Rd,FRAMEWORK_SHARD_IDS:Xd,PERMISSION_DOCUMENTS_BROWSE:Ed,PERMISSION_DOCUMENTS_READ:Id,PERMISSION_DOCUMENTS_WRITE:Ad,PERMISSION_KEYS_MINT:Cd,PERMISSION_STATE_MANAGE:Xo,PERMISSION_SYNC_PEER:p_,PERMISSION_SYNC_POLICY:m_,ScopeEscalationError:Td,VERSION:En,activeShards:is,buildPackageMeta:ki,capabilities:iw,clearTokenOverrides:Z_,closeTab:ya,collapseChild:V_,dockFloat:$d,dockIntoActiveLayout:wa,expandChild:$_,fetchBundle:wi,fetchRegistries:Kd,focusTab:B_,focusView:yi,getActiveApp:ed,getAuthHeader:gi,getIconSprite:Gd,getTokenOverrides:Wd,getUser:mi,inspectActiveLayout:zd,isAdmin:dn,isAuthenticated:mo,isGuest:wd,launchApp:$n,listRegisteredApps:fa,listVerbs:oa,locateSlot:Ud,popoutView:Vd,provideIcons:ew,registerConsentListener:Dd,registeredShards:en,resolveConsent:bo,returnToHome:Nd,setTokenOverrides:J_,shell:ss,spliceIntoActiveLayout:q_,subscribeKeyRevocation:ma,unregisterApp:ba,validateRegistryIndex:Hd},Symbol.toStringTag,{value:"Module"})),ow="/assets/SH3-BG5NVpSD.png",aw="https://cdn.jsdelivr.net/npm/p5@1.11.13/lib/p5.min.js";let Ir=null;function lw(){return Ir||(Ir=new Promise((e,t)=>{const n=window.p5;if(n){e(n);return}const r=document.createElement("script");r.src=aw,r.async=!0,r.onload=()=>e(window.p5),r.onerror=s=>{Ir=null,t(s)},document.head.appendChild(r)}),Ir)}var cw=A('<h1 class="shell-title-fallback svelte-1ifjvh5">SH3</h1>'),uw=A('<div class="shell-title svelte-1ifjvh5"></div>');function dw(e,t){ne(t,!0);const n="`.-':;,^\"~=+<>*?!/\\|()[]{}x1ltzrcvunsXYUJCLQ0OZmwqpdbkhao*#MW&8%B@$",r=64,s=Math.floor(64/(442/193)),i=8,o=7,l=80,c=r*i,u=s*o,d=l/u;let f=q(void 0),h=null,m=q(!1);const x=()=>b=>{const M=getComputedStyle(document.documentElement).getPropertyValue("--shell-accent").trim();let C,w,O=!1;b.setup=()=>{b.createCanvas(c,u),b.noSmooth(),b.noStroke(),b.textAlign(b.CENTER,b.CENTER),b.textFont("monospace"),b.textSize(10),b.textStyle(b.BOLD),w=b.loadImage(ow,()=>{C=b.createGraphics(r,s),C.pixelDensity(1),C.image(w,0,0,r,s),C.loadPixels(),O=!0},()=>{k(m,!0)})},b.draw=()=>{if(!O)return;const R=b.millis()*.001;let P;b.clear(),b.background(0,0),b.fill(M);for(let D=0;D<s;D++)for(let N=0;N<r;N++){const V=(D*r+N)*4;if(C.pixels[V]<64){if(P=b.noise(N/r*2,D/s*2,R*.15),P>.33)continue;b.text(n[Math.floor(P*n.length*.25)],(N+.5)*i,(D+.5)*o);continue}P=b.noise(N/r*4,D/s*4,R*.5),b.text(n[Math.floor(P*n.length)],(N+.5)*i,(D+.5)*o)}}};Ie(()=>{if(a(m))return;let b=!1;return lw().then(T=>{if(!(b||!a(f)))try{h=new T(x(),a(f))}catch(M){console.error("[ShellTitle] p5 sketch failed to start",M),k(m,!0)}}).catch(T=>{console.error("[ShellTitle] failed to load p5 from CDN",T),k(m,!0)}),()=>{b=!0,h&&(h.remove(),h=null)}});var g=ut(),_=fe(g);{var S=b=>{var T=cw();I(b,T)},y=b=>{var T=uw();nn(T,"",{},{width:"216.7195767195767px",height:"80px","--shell-title-scale":d}),tt(T,M=>k(f,M),()=>a(f)),I(b,T)};$(_,b=>{a(m)?b(S):b(y,-1)})}I(e,g),re()}var fw=A('<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>'),vw=A('<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>'),hw=A('<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>'),pw=A('<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>'),mw=A('<p class="shell-home-empty svelte-cpn2x2"><!></p>'),gw=A('<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 bw(e,t){ne(t,!0);let n=q("");const r=F(fa),s=F(dn);function i(w,O){if(!O)return!0;const R=O.toLowerCase();return w.label.toLowerCase().includes(R)||w.id.toLowerCase().includes(R)}const o=F(()=>a(r).filter(w=>!w.admin&&i(w,a(n)))),l=F(()=>a(r).filter(w=>w.admin&&i(w,a(n)))),c=F(()=>a(o).length+(a(s)?a(l).length:0));var u=gw(),d=p(u),f=p(d),h=p(f);dw(h,{});var m=E(h,2),x=p(m);v(m),on(2),v(f),on(2),v(d);var g=E(d,2),_=p(g);Se(_),v(g);var S=E(g,2);{var y=w=>{var O=vw(),R=E(p(O),2);ce(R,21,()=>a(o),P=>P.id,(P,D)=>{var N=fw(),V=p(N),j=p(V,!0);v(V);var B=E(V,2),Y=p(B),G=p(Y,!0);v(Y);var Z=E(Y,2),J=p(Z);v(Z),v(B),v(N),z(()=>{be(N,"title",`Launch ${a(D).label??""}`),L(j,a(D).label),L(G,a(D).id),L(J,`v${a(D).version??""}`)}),U("click",N,()=>$n(a(D).id)),I(P,N)}),v(R),v(O),I(w,O)};$(S,w=>{a(o).length>0&&w(y)})}var b=E(S,2);{var T=w=>{var O=pw(),R=E(p(O),2);ce(R,21,()=>a(l),P=>P.id,(P,D)=>{var N=hw(),V=p(N),j=p(V,!0);v(V);var B=E(V,2),Y=p(B),G=p(Y,!0);v(Y);var Z=E(Y,2),J=p(Z);v(Z),v(B),v(N),z(()=>{be(N,"title",`Launch ${a(D).label??""}`),L(j,a(D).label),L(G,a(D).id),L(J,`v${a(D).version??""}`)}),U("click",N,()=>$n(a(D).id)),I(P,N)}),v(R),v(O),I(w,O)};$(b,w=>{a(s)&&a(l).length>0&&w(T)})}var M=E(b,2);{var C=w=>{var O=mw(),R=p(O);{var P=N=>{var V=Vt("No apps registered.");I(N,V)},D=N=>{var V=Vt();z(()=>L(V,`No apps match “${a(n)??""}”.`)),I(N,V)};$(R,N=>{a(r).length===0?N(P):N(D,-1)})}v(O),I(w,O)};$(M,w=>{a(c)===0&&w(C)})}v(u),z(()=>L(x,`v${En}`)),Me(_,()=>a(n),w=>k(n,w)),I(e,u),re()}ue(["click"]);var yw=A('<p class="keys-peers-muted svelte-19l5m7c">Loading...</p>'),_w=A('<p class="keys-peers-error svelte-19l5m7c"> </p>'),ww=A('<p class="keys-peers-muted svelte-19l5m7c">No keys yet. Shards will ask your permission before creating one.</p>'),kw=A('<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),Sw=A('<button type="button" class="keys-peers-btn-danger svelte-19l5m7c">Revoke</button>'),xw=A('<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>'),Ew=A('<ul class="keys-peers-list svelte-19l5m7c"></ul>'),Iw=A('<div class="keys-peers svelte-19l5m7c"><div class="keys-peers-header svelte-19l5m7c"><h2 class="svelte-19l5m7c">Keys &amp; Peers</h2></div> <!></div>');function Aw(e,t){ne(t,!0);let n=q(le([])),r=q(null),s=q(!0),i=q(null);async function o(){k(r,null),k(s,!0);try{const g=await fetch("/api/keys",{credentials:"include"});if(!g.ok)throw new Error(`HTTP ${g.status}`);k(n,await g.json(),!0)}catch(g){k(r,g instanceof Error?g.message:String(g),!0)}finally{k(s,!1)}}async function l(g){k(i,null);const _=await fetch(`/api/keys/${encodeURIComponent(g)}`,{method:"DELETE",credentials:"include"});(_.ok||_.status===404)&&k(n,a(n).filter(S=>S.id!==g),!0)}function c(g){return new Date(g).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}Ie(()=>{o()}),Ie(()=>ma("*",()=>{o()}));var u=Iw(),d=E(p(u),2);{var f=g=>{var _=yw();I(g,_)},h=g=>{var _=_w(),S=p(_);v(_),z(()=>L(S,`Failed to load: ${a(r)??""}`)),I(g,_)},m=g=>{var _=ww();I(g,_)},x=g=>{var _=Ew();ce(_,21,()=>a(n),S=>S.id,(S,y)=>{var b=xw(),T=p(b),M=p(T),C=p(M,!0);v(M);var w=E(M,2),O=p(w);v(w);var R=E(w,2),P=p(R);v(R);var D=E(R,2),N=p(D);v(D),v(T);var V=E(T,2),j=p(V);{var B=G=>{var Z=kw(),J=fe(Z),te=E(J,2);U("click",J,()=>l(a(y).id)),U("click",te,()=>{k(i,null)}),I(G,Z)},Y=G=>{var Z=Sw();U("click",Z,()=>{k(i,a(y).id,!0)}),I(G,Z)};$(j,G=>{a(i)===a(y).id?G(B):G(Y,-1)})}v(V),v(b),z((G,Z,J)=>{L(C,a(y).label),L(O,`Minted by: ${a(y).mintedByShardId??"system"??""}${a(y).peerRole||a(y).peerId?` · Peer: ${a(y).peerRole??"—"}${a(y).peerId?` (${a(y).peerId})`:""}`:""}`),L(P,`Scopes: ${G??""}`),L(N,`Created: ${Z??""} · Expires: ${J??""}`)},[()=>a(y).scopes.join(", "),()=>c(a(y).createdAt),()=>a(y).expiresAt?c(a(y).expiresAt):"never"]),I(S,b)}),v(_),I(g,_)};$(d,g=>{a(s)?g(f):a(r)?g(h,1):a(n).length===0?g(m,2):g(x,-1)})}v(u),I(e,u),re()}ue(["click"]);var Cw=A('<div class="confirm-dialog svelte-1k1962w"><div class="confirm-dialog-title svelte-1k1962w"> </div> <div class="confirm-dialog-body svelte-1k1962w"> </div> <div class="confirm-dialog-actions svelte-1k1962w"><button type="button" class="confirm-dialog-btn confirm-dialog-btn-cancel svelte-1k1962w" data-confirm-dialog-cancel=""> </button> <button type="button" data-confirm-dialog-confirm=""> </button></div></div>');function Tw(e,t){ne(t,!0);let n=We(t,"confirmLabel",3,"Confirm"),r=We(t,"cancelLabel",3,"Cancel"),s=We(t,"confirmTone",3,"default"),i=q(void 0),o=q(!1);Ie(()=>{a(i)?.focus()});async function l(){if(!a(o)){k(o,!0);try{await t.onConfirm()}finally{t.close()}}}function c(){a(o)||(t.onCancel?.(),t.close())}var u=Cw(),d=p(u),f=p(d,!0);v(d);var h=E(d,2),m=p(h,!0);v(h);var x=E(h,2),g=p(x),_=p(g,!0);v(g),tt(g,T=>k(i,T),()=>a(i));var S=E(g,2);let y;var b=p(S,!0);v(S),v(x),v(u),z(()=>{L(f,t.title),L(m,t.body),g.disabled=a(o),L(_,r()),y=_e(S,1,"confirm-dialog-btn svelte-1k1962w",null,y,{"confirm-dialog-btn-danger":s()==="danger","confirm-dialog-btn-default":s()==="default"}),S.disabled=a(o),L(b,n())}),U("click",g,c),U("click",S,l),I(e,u),re()}ue(["click"]);const Rw={manifest:{id:"__sh3core__",label:"SH3 Core",version:En,views:[{id:"sh3core:home",label:"Home"},{id:"shell:keys-and-peers",label:"Keys & Peers"}]},activate(e){const t=e.state({user:{bindings:{}}});$b(t.user),e.actions.register({id:"sh3.palette.open",label:"Command Palette…",scope:["home","app"],defaultShortcut:"Mod+K",contextItem:!1,paletteItem:!1,run(i){jd(async()=>{const{openPalette:o}=await Promise.resolve().then(()=>t_);return{openPalette:o}},void 0).then(({openPalette:o})=>o())}}),e.actions.register({id:"sh3.app.reset-layout",label:"Reset Current Layout",scope:["app"],paletteItem:!0,contextItem:!1,run(){Zo.open(Tw,{title:"Reset layout?",body:"This discards the current arrangement of the active preset and rebuilds it from the app default. Floats will be removed.",confirmLabel:"Reset",confirmTone:"danger",onConfirm:()=>Iy()})}});const n={mount(i,o){const l=Oe(bw,{target:i});return{unmount(){Fe(l)}}}},r={mount(i,o){const l=Oe(Aw,{target:i});return{unmount(){Fe(l)}}}};e.registerView("sh3core:home",n),e.registerView("shell:keys-and-peers",r),e.actions.register({id:"sh3.app.launch",label:"Launch app",scope:["home","app"],submenu:!0,paletteItem:!0});const s=new Map;ti(()=>{Ie(()=>{const i=new Set;for(const[o,l]of yn){if(i.add(o),s.has(o))continue;const c=e.actions.register({id:`sh3.app.launch:${o}`,label:l.manifest.label,scope:["home","app"],submenuOf:"sh3.app.launch",run(){$n(o)}});s.set(o,c)}for(const o of[...s.keys()])i.has(o)||(s.get(o)(),s.delete(o))})})},autostart(){}},Dw={id:"shell",label:"Shell",version:En,views:[{id:"shell:terminal",label:"Shell",standalone:!0}],permissions:[]},Pw=2e3;let Mw=0;function Ow(){return`e${++Mw}`}class Lw{#e;get entries(){return a(this.#e)}set entries(t){k(this.#e,t,!0)}constructor(t=Pw){this.#e=q(le([])),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:Ow()};this.entries.push(r),this.entries.length>this.cap&&this.entries.splice(0,this.entries.length-this.cap)}clear(){this.entries.length=0}}var Nw=A("<pre> </pre>");function jw(e,t){ne(t,!0);const n=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,r=F(()=>t.chunks.join("").replace(n,""));var s=Nw();let i;var o=p(s,!0);v(s),z(()=>{i=_e(s,1,"shell-text svelte-ypr8s",null,i,{stderr:t.stream==="stderr"}),L(o,a(r))}),I(e,s),re()}var zw=A('<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 qw(e,t){var n=zw(),r=p(n),s=p(r,!0);v(r);var i=E(r,4),o=p(i,!0);v(i),v(n),z(()=>{L(s,t.cwd),L(o,t.line)}),I(e,n)}var Bw=A("<div> </div>");function Vw(e,t){var n=Bw();let r;var s=p(n,!0);v(n),z(()=>{r=_e(n,1,"shell-status svelte-nfxdpt",null,r,{info:t.level==="info",warn:t.level==="warn",error:t.level==="error"}),L(s,t.text)}),I(e,n)}var $w=A('<div class="shell-rich svelte-1rnhl05"><!></div>');function Fw(e,t){var n=$w(),r=p(n);Qr(r,()=>t.component,(s,i)=>{i(s,ts(()=>t.componentProps))}),v(n),I(e,n)}var Uw=A('<div class="shell-scrollback svelte-isy3jt"></div>');function Hw(e,t){ne(t,!0);let n=q(null);Ie(()=>{t.scrollback.entries.length,a(n)&&(a(n).scrollTop=a(n).scrollHeight)});var r=Uw();ce(r,21,()=>t.scrollback.entries,s=>s.id,(s,i)=>{var o=ut(),l=fe(o);{var c=h=>{jw(h,{get stream(){return a(i).stream},get chunks(){return a(i).chunks}})},u=h=>{qw(h,{get cwd(){return a(i).cwd},get line(){return a(i).line}})},d=h=>{Vw(h,{get text(){return a(i).text},get level(){return a(i).level}})},f=h=>{Fw(h,{get component(){return a(i).component},get componentProps(){return a(i).props}})};$(l,h=>{a(i).kind==="text"?h(c):a(i).kind==="prompt"?h(u,1):a(i).kind==="status"?h(d,2):a(i).kind==="rich"&&h(f,3)})}I(s,o)}),v(r),tt(r,s=>k(n,s),()=>a(n)),I(e,r),re()}var Kw=A('<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 Ww(e,t){ne(t,!0);let n=q(""),r=q(null),s=q(""),i=q(null);function o(){if(t.locked)return;const g=a(n);g.trim()&&(k(n,""),k(r,null),t.onSubmit(g))}function l(){t.history.length!==0&&(a(r)===null?(k(s,a(n),!0),k(r,t.history.length-1)):a(r)>0&&cr(r,-1),k(n,t.history[a(r)]??"",!0))}function c(){a(r)!==null&&(a(r)<t.history.length-1?(cr(r),k(n,t.history[a(r)],!0)):(k(r,null),k(n,a(s),!0)))}function u(g){if(t.locked){if(g.ctrlKey&&g.key==="c"){g.preventDefault(),t.session.send({t:"signal",sig:"SIGINT"});return}if(g.ctrlKey&&g.key==="d"){g.preventDefault(),t.session.send({t:"signal",sig:"EOF"});return}g.preventDefault();return}g.key==="Enter"?(g.preventDefault(),o()):g.key==="ArrowUp"?(g.preventDefault(),l()):g.key==="ArrowDown"?(g.preventDefault(),c()):g.ctrlKey&&g.key==="c"?(g.preventDefault(),k(n,""),k(r,null)):g.ctrlKey&&g.key==="l"&&(g.preventDefault(),k(n,"clear"),o())}Ie(()=>{!t.locked&&a(i)&&a(i).focus()});var d=Kw();let f;var h=p(d),m=p(h,!0);v(h);var x=E(h,4);Se(x),tt(x,g=>k(i,g),()=>a(i)),v(d),z(()=>{f=_e(d,1,"shell-input svelte-1dfv2gk",null,f,{locked:t.locked}),L(m,t.cwd),x.disabled=t.locked}),U("keydown",x,u),Me(x,()=>a(n),g=>k(n,g)),I(e,d),re()}ue(["keydown"]);const Pl=[1e3,2e3,5e3,1e4];class Yw{#e;get connected(){return a(this.#e)}set connected(t){k(this.#e,t,!0)}#t;get cwd(){return a(this.#t)}set cwd(t){k(this.#t,t,!0)}#n;get env(){return a(this.#n)}set env(t){k(this.#n,t,!0)}#i;get history(){return a(this.#i)}set history(t){k(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=q(!1),this.#t=q(""),this.#n=q(le({})),this.#i=q(le([]))}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=Pl[Math.min(this.backoffIndex,Pl.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 Gw{list(){return oa()}get(t){return wl(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),o=wl(s);if(!o)return{kind:"forward",line:t};const l=i.length?i.split(/\s+/):[];return{kind:"local",verb:o,args:l,line:t}}}class Xw{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 o=await s.json();o.error&&(i=o.error)}catch{}throw new Error(i)}return s}}class Jw{#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 Zw={id:"dev",label:"Dev",requiresRole:"admin",transport:"ws",autoRelocate:!1},Qw={id:"user",label:"User",transport:"none",autoRelocate:!0};function ek(e){e.register(Zw),e.register(Qw)}function Zd(e){return`sh3.shell.lastMode.${e}`}function tk(e){try{return globalThis.localStorage?.getItem(Zd(e))??null}catch{return null}}function nk(e,t){try{globalThis.localStorage?.setItem(Zd(e),t)}catch{}}function rk(e,t,n){const r=tk(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 sk(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 ik(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 ok=A('<div class="toolbar svelte-gnowwz"><div class="toolbar-slots svelte-gnowwz"></div></div>');function ak(e,t){ne(t,!0);let n=We(t,"slotProps",19,()=>({})),r=F(()=>t.registry.list(t.ctx));var s=ok(),i=p(s);ce(i,21,()=>a(r),o=>o.id,(o,l)=>{const c=F(()=>a(l).component);var u=ut(),d=fe(u);Qr(d,()=>a(c),(f,h)=>{h(f,ts(()=>n()[a(l).id]??{}))}),I(o,u)}),v(i),v(s),I(e,s),re()}class lk{#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 ck=A('<button type="button"> </button>'),uk=A('<div class="mode-bar svelte-1i4cqlj" role="toolbar" aria-label="Shell mode"></div>'),dk=A('<span class="mode-label svelte-1i4cqlj"> </span>');function fk(e,t){ne(t,!0);let n=F(()=>t.registry.list(t.role));var r=ut(),s=fe(r);{var i=l=>{var c=uk();ce(c,21,()=>a(n),u=>u.id,(u,d)=>{var f=ck();let h;var m=p(f,!0);v(f),z(()=>{h=_e(f,1,"mode-btn svelte-1i4cqlj",null,h,{active:a(d).id===t.mode.id}),be(f,"aria-pressed",a(d).id===t.mode.id),L(m,a(d).label)}),U("click",f,()=>t.onSelect(a(d).id)),I(u,f)}),v(c),I(l,c)},o=l=>{var c=dk(),u=p(c,!0);v(c),z(()=>L(u,t.mode.label)),I(l,c)};$(s,l=>{t.role==="admin"?l(i):l(o,-1)})}I(e,r),re()}ue(["click"]);var vk=A('<button class="focus-lock-btn svelte-1q6gbap"> </button>');function hk(e,t){var n=vk(),r=p(n,!0);v(n),z(()=>{be(n,"title",t.locked?"Unlock focus":"Lock focus"),L(r,t.locked?"🔒":"🔓")}),U("click",n,function(...s){t.onToggle?.apply(this,s)}),I(e,n)}ue(["click"]);var pk=A('<span class="target-shard svelte-1nn2m6x" title="Target shard"> </span>');function mk(e,t){var n=pk(),r=p(n);v(n),z(()=>L(r,`→ ${t.target??"—"??""}`)),I(e,n)}var gk=A('<div class="shell-terminal svelte-13komre"><!> <!> <!></div>');function bk(e,t){ne(t,!0);const n=new Lw,r=new Gw,s=new Xw,i=new Jw;ek(i);let o=q(le(Ee(()=>rk(i,t.userId,t.role))));function l(C){const w=i.get(C);w&&(w.requiresRole&&w.requiresRole!==t.role||(k(o,w,!0),nk(t.userId,C),w.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 Yw(t.wsUrl)),u=Ee(()=>sk({mode:()=>a(o),resolver:r,scrollback:n,session:c,shell:t.shell,fs:s,cwd:()=>c.cwd}));let d=q(!1),f=q(!1),h=q(null);const m=new lk;m.register({id:"mode",order:10,visible:()=>!0,component:fk}),m.register({id:"focus-lock",order:20,visible:C=>C.mode.id==="user",component:hk}),m.register({id:"target-shard",order:30,visible:C=>C.mode.id==="user",component:mk});function x(C){if(C.type==="tabs")return C.tabs[C.activeTab]?.viewId??null;if(C.type==="split")for(const w of C.children){const O=x(w);if(O!==null)return O}return C.viewId??null}function g(){try{const C=xt(),w=x(C.docked);if(!w)return null;const O=w.indexOf(":");return O>=0?w.slice(0,O):w}catch{return null}}Ie(()=>{const C=g(),w=a(o).autoRelocate,O=a(f);(async()=>{const R=await ik({modeAutoRelocate:w,focusLocked:O,focusedShardId:C,currentShardId:"shell"},s);R.kind==="relocate"&&R.path!==void 0&&(c.cwd=R.path),C&&C!=="shell"?k(h,C,!0):C||k(h,null)})()});function _(C){if(C.t!=="event")return;const w=C.event;switch(w.kind){case"prompt":n.push({kind:"prompt",cwd:w.cwd,line:w.line,ts:w.ts}),k(d,!0);break;case"stdout":n.push({kind:"text",stream:"stdout",chunks:[w.data],ts:w.ts});break;case"stderr":n.push({kind:"text",stream:"stderr",chunks:[w.data],ts:w.ts});break;case"exit":(w.signal||w.code!==null&&w.code!==0)&&n.push({kind:"status",text:w.signal?`shell: process exited (${w.signal})`:`shell: process exited (${w.code})`,level:"error",ts:w.ts}),k(d,!1);break;case"status":n.push({kind:"status",text:w.text,level:w.level,ts:w.ts});break}}let S=null;Uo(()=>{S=c.onMessage(_),a(o).transport==="ws"&&c.connect()}),Ho(()=>{S?.(),c.close()});var y=gk(),b=p(y);{let C=F(()=>({mode:a(o),role:t.role})),w=F(()=>({mode:{mode:a(o),role:t.role,registry:i,onSelect:l},"focus-lock":{locked:a(f),onToggle:()=>k(f,!a(f))},"target-shard":{target:a(h)}}));ak(b,{get registry(){return m},get ctx(){return a(C)},get slotProps(){return a(w)}})}var T=E(b,2);Hw(T,{get scrollback(){return n}});var M=E(T,2);Ww(M,{get cwd(){return c.cwd},get locked(){return a(d)},get history(){return c.history},get session(){return c},get onSubmit(){return u}}),v(y),I(e,y),re()}var yk=A('<tr><td class="svelte-m248jy"><button type="button" class="svelte-m248jy"> </button></td><td class="svelte-m248jy"> </td></tr>'),_k=A('<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 wk(e,t){ne(t,!0);var n=_k(),r=p(n),s=E(p(r));ce(s,21,()=>t.data.rows,i=>i.name,(i,o)=>{var l=yk(),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),z(()=>{L(d,a(o).name),L(h,a(o).summary)}),U("click",u,()=>t.data.onClickName(a(o).name)),I(i,l)}),v(s),v(r),v(n),I(e,n),re()}ue(["click"]);function kk(){return{name:"help",summary:"List verbs or show detail for one.",async run(e){const t=oa().map(n=>({name:n.name,summary:n.summary}));e.scrollback.push({kind:"rich",component:wk,props:{data:{rows:t,onClickName:n=>e.dispatch(n)}},ts:Date.now()})}}}const Sk={name:"clear",summary:"Clear the scrollback (local only — other views are unaffected).",async run(e){e.scrollback.clear()}};var xk=A('<li class="svelte-o8m437"><button type="button" class="svelte-o8m437"> </button></li>'),Ek=A('<div class="shell-rich-history svelte-o8m437"><ol class="svelte-o8m437"></ol></div>');function Ik(e,t){ne(t,!0);var n=Ek(),r=p(n);ce(r,21,()=>t.data.lines,Vn,(s,i)=>{var o=xk(),l=p(o),c=p(l,!0);v(l),v(o),z(()=>L(c,a(i))),U("click",l,()=>t.data.onClickLine(a(i))),I(s,o)}),v(r),v(n),I(e,n),re()}ue(["click"]);const Ak={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:Ik,props:{data:{lines:r,onClickLine:s=>e.dispatch(s)}},ts:Date.now()})}};var Ck=A('<tr><td class="svelte-1u5krjz"><button type="button" class="svelte-1u5krjz"> </button></td><td class="svelte-1u5krjz"> </td></tr>'),Tk=A('<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 Rk(e,t){ne(t,!0);var n=Tk(),r=p(n),s=E(p(r));ce(s,21,()=>t.data.apps,i=>i.id,(i,o)=>{var l=Ck(),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),z(()=>{L(d,a(o).id),L(h,a(o).label)}),U("click",u,()=>t.data.onClickApp(a(o).id)),I(i,l)}),v(s),v(r),v(n),I(e,n),re()}ue(["click"]);var Dk=A('<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 Pk(e,t){ne(t,!0);var n=Dk(),r=p(n),s=p(r,!0);v(r);var i=E(r,2),o=E(p(i));v(i);var l=E(i,2),c=E(p(l));v(l),v(n),z(u=>{L(s,t.data.label),L(o,` ${t.data.id??""}`),L(c,` ${u??""}`)},[()=>t.data.shards.join(", ")]),I(e,n),re()}const Mk={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:Rk,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()})}},Ok={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:Pk,props:{data:{id:t.id,label:t.label,shards:[]}},ts:Date.now()})}};var Lk=A('<tr><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td></tr>'),Nk=A('<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 jk(e,t){ne(t,!0);var n=Nk(),r=p(n),s=E(p(r));ce(s,21,()=>t.data.shards,i=>i.id,(i,o)=>{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),m=p(h,!0);v(h),v(l),z(()=>{L(u,a(o).id),L(f,a(o).label),L(m,a(o).version)}),I(i,l)}),v(s),v(r),v(n),I(e,n),re()}const zk={name:"shards",summary:"List active shards.",async run(e){const t=e.shell.listShards();e.scrollback.push({kind:"rich",component:jk,props:{data:{shards:t}},ts:Date.now()})}};var qk=A('<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>'),Bk=A('<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 Vk(e,t){ne(t,!0);var n=Bk(),r=p(n),s=E(p(r));ce(s,21,()=>t.data.views,i=>i.slotId,(i,o)=>{var l=qk(),c=p(l),u=p(c,!0);v(c);var d=E(c),f=p(d,!0);v(d);var h=E(d),m=p(h,!0);v(h);var x=E(h),g=p(x);v(x),v(l),z(()=>{L(u,a(o).slotId),L(f,a(o).viewId),L(m,a(o).label)}),U("click",g,()=>t.data.onClose(a(o).slotId)),I(i,l)}),v(s),v(r),v(n),I(e,n),re()}ue(["click"]);const $k={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:Vk,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()})}},Uk={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()})}},Kk={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 Wk=A('<tr><td class="svelte-1w7onag"> </td><td class="svelte-1w7onag"> </td></tr>'),Yk=A('<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 Gk(e,t){ne(t,!0);var n=Yk(),r=p(n),s=E(p(r));ce(s,21,()=>t.data.rows,i=>i.shardId,(i,o)=>{var l=Wk(),c=p(l),u=p(c,!0);v(c);var d=E(c),f=p(d,!0);v(d),v(l),z(h=>{L(u,a(o).shardId),L(f,h)},[()=>a(o).zones.join(", ")]),I(i,l)}),v(s),v(r),v(n),I(e,n),re()}var Xk=A('<div class="shell-rich-zonetree svelte-13iiyr1"><pre class="svelte-13iiyr1"> </pre></div>');function Jk(e,t){ne(t,!0);var n=Xk(),r=p(n),s=p(r,!0);v(r),v(n),z(i=>L(s,i),[()=>JSON.stringify(t.data.value,null,2)]),I(e,n),re()}const Zk={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:Gk,props:{data:{rows:n}},ts:Date.now()})}},Qk={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:Jk,props:{data:{value:s}},ts:Date.now()})}};function e1(e,t){if(t.startsWith("/"))return t1(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 t1(e){return e.split("/").filter(t=>t&&t!==".").join("/")}const n1={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()})}},r1={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=e1(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}},s1={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 i1=A('<tr><td class="svelte-1ox8vog"> </td><td class="svelte-1ox8vog"> </td></tr>'),o1=A('<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 a1(e,t){ne(t,!0);var n=o1(),r=p(n),s=E(p(r));ce(s,21,()=>Object.entries(t.data.env),([i,o])=>i,(i,o)=>{var l=F(()=>Ql(a(o),2));let c=()=>a(l)[0],u=()=>a(l)[1];var d=i1(),f=p(d),h=p(f,!0);v(f);var m=E(f),x=p(m,!0);v(m),v(d),z(()=>{L(h,c()),L(x,u())}),I(i,d)}),v(s),v(r),v(n),I(e,n),re()}const l1={name:"env",summary:"Show the session environment.",async run(e){const t=e.session.env;e.scrollback.push({kind:"rich",component:a1,props:{data:{env:t}},ts:Date.now()})}},c1={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()})}},u1={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 d1(e){e.registerVerb(kk()),e.registerVerb(Sk),e.registerVerb(Ak),e.registerVerb(Mk),e.registerVerb(Ok),e.registerVerb(zk),e.registerVerb($k),e.registerVerb(Fk),e.registerVerb(Kk),e.registerVerb(Uk),e.registerVerb(Hk),e.registerVerb(Zk),e.registerVerb(Qk),e.registerVerb(n1),e.registerVerb(r1),e.registerVerb(l1),e.registerVerb(s1),e.registerVerb(c1),e.registerVerb(u1)}function Qd(e){return e.type==="tabs"?e.tabs.filter(t=>t.viewId!==null):e.type==="split"?e.children.flatMap(Qd):e.viewId!==null?[{slotId:e.slotId,viewId:e.viewId,label:e.viewId}]:[]}function f1(e){return{listApps(){return fa().map(t=>({id:t.id,label:t.label}))},getActiveApp(){const t=ed();return t?{id:t.id,label:t.label}:null},launchApp(t){$n(t)},listShards(){return Array.from(en.values()).map(t=>({id:t.manifest.id,label:t.manifest.label,version:t.manifest.version}))},listViewsInCurrentLayout(){try{const{root:t}=zd();return Qd(t.docked).map(n=>({slotId:n.slotId,viewId:n.viewId??"",label:n.label}))}catch{return[]}},openViewInCurrentLayout(t){try{if(yi(t))return{ok:!0};const n=Tl().find(r=>r.viewId===t);if(n){const r=`standalone:${t}:${Date.now()}`;return wa({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 Tl()},popoutSlot(t){try{const n=Vd(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 $d(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 Ud(t)}catch{return null}},listFloats(){return Mt.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 ya(t),{ok:!0}},listZones(t){return[]},readZone(t,n){return null},whoAmI(){return{userId:mi()?.id??"guest",admin:dn()}}}}const v1={manifest:Dw,activate(e){d1(e);const t=f1();e.actions.register({id:"shell.terminal.toggle",label:"Open Terminal",scope:["home","app"],defaultShortcut:"²",allowInInputs:!1,run(){yi("shell:terminal")||Mt.open("shell:terminal",{title:"Shell"})}});const n={mount(r,s){const i=typeof location<"u"&&location.protocol==="https:"?"wss":"ws",o=typeof location<"u"?location.host:"localhost",l=`${i}://${o}/api/shell/session`,u=mi()?.id??"guest",d=dn()?"admin":"user",f=Oe(bk,{target:r,props:{shell:t,wsUrl:l,userId:u,role:d}});return{unmount(){Fe(f)},closable:!0}}};e.registerView("shell:terminal",n)},autostart(){}},Ml=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 Vi(e,t){const n=Object.keys(t),r=n.filter(o=>!Ml.has(o)),s=n.filter(o=>Ml.has(o)),i=[`const __m__ = globalThis.${e};`];r.length>0&&i.push(`export const { ${r.join(", ")} } = __m__;`);for(const o of s)i.push(`const __r_${o}__ = __m__['${o}']; export { __r_${o}__ as ${o} };`);return i.push("export default __m__.default;"),URL.createObjectURL(new Blob([i.join(`
13
+ `)],{type:"application/javascript"}))}const Ea=globalThis;Ea.__sh3__=Jd;Ea.__sh3_svelte__=fu;Ea.__sh3_svelte_internal_client__=Cu;const Ia={"sh3-core":Vi("__sh3__",Jd),svelte:Vi("__sh3_svelte__",fu),"svelte/internal/client":Vi("__sh3_svelte_internal_client__",Cu)};Ia["svelte/internal/disclose-version"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));Ia["sh3-core/tokens.css"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));const h1=/(?:from|import)\s*(['"])(sh3-core(?:\/[^'"]*)?|svelte(?:\/[^'"]*)?)\1/g;function p1(e){return e.replace(h1,(t,n,r)=>{const s=Ia[r];return s?`${t.startsWith("from")?"from":"import"} '${s}'`:t})}async function os(e){const t=new TextDecoder().decode(e),n=p1(t),r=new Blob([n],{type:"application/javascript"}),s=URL.createObjectURL(r);try{const i=await import(s),o={shards:[],apps:[]};for(const l of Object.values(i)){if(!l||typeof l!="object"||!("manifest"in l))continue;const c=l;m1(c)?o.shards.push(c):g1(c)&&o.apps.push(c)}if(o.shards.length===0&&o.apps.length===0)throw new Error('Bundle has no exports with a "manifest" property — expected at least one shard or app');return o}finally{URL.revokeObjectURL(s)}}function m1(e){return"activate"in e&&typeof e.activate=="function"&&Array.isArray(e.manifest.views)}function g1(e){return"initialLayout"in e&&Array.isArray(e.manifest.requiredShards)}const b1="sh3-packages",y1=1,Fr="bundles",fr="meta";function as(){return new Promise((e,t)=>{const n=indexedDB.open(b1,y1);n.onupgradeneeded=()=>{const r=n.result;r.objectStoreNames.contains(Fr)||r.createObjectStore(Fr),r.objectStoreNames.contains(fr)||r.createObjectStore(fr)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}function Fn(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 ef(e,t,n){const r=await as();await Fn(r,Fr,"readwrite",s=>s.put(t,e)),await Fn(r,fr,"readwrite",s=>s.put(n,e)),r.close()}async function tf(e){const t=await as(),n=await Fn(t,Fr,"readonly",r=>r.get(e));return t.close(),n??null}async function _1(e){const t=await as(),n=await Fn(t,fr,"readonly",r=>r.get(e));return t.close(),n??null}async function nf(){const e=await as(),t=await Fn(e,fr,"readonly",n=>n.getAll());return e.close(),t??[]}async function w1(e){const t=await as();await Fn(t,Fr,"readwrite",n=>n.delete(e)),await Fn(t,fr,"readwrite",n=>n.delete(e)),t.close()}function Aa(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},da(n)}const k1={"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 $i(e){return k1[e]??{title:e,description:"Unknown permission."}}function Ca(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 Ta(e,t,n){if(!t.integrity)return{success:!1,hotLoaded:!1,error:"Missing integrity hash — refusing to install unverified bundle"};try{await ka(e,t.integrity)}catch(o){return{success:!1,hotLoaded:!1,error:`Integrity check failed: ${o instanceof Error?o.message:String(o)}`}}let r;if(n?.loaded)r=n.loaded;else try{r=await os(e)}catch(o){return{success:!1,hotLoaded:!1,error:`Failed to load bundle: ${o instanceof Error?o.message:String(o)}`}}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:Ca(r)};try{await ef(t.id,e,s)}catch(o){return{success:!1,hotLoaded:!1,error:`Failed to persist package: ${o instanceof Error?o.message:String(o)}`}}if(t.type==="shard"||t.type==="combo")try{bi(t.id)}catch{}(t.type==="app"||t.type==="combo")&&ba(t.id);let i=!0;try{Aa(r,{version:t.version,sourceRegistry:t.sourceRegistry,contractVersion:t.contractVersion})}catch(o){console.warn(`[sh3] Package "${t.id}" installed but registration failed (will retry on next boot):`,o instanceof Error?o.message:o),i=!1}return{success:!0,package:s,hotLoaded:i}}async function rf(e){try{bi(e)}catch{}ba(e),await w1(e)}async function S1(){return nf()}async function x1(){let e;try{e=await nf()}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 tf(t.id);if(!n){console.warn(`[sh3] No bundle found for installed package "${t.id}", skipping`);continue}const r=await os(n);Aa(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 Ol={version:1};var E1=A('<span class="perm-modal-author svelte-1ipp1r6"> </span>'),I1=A('<p class="perm-modal-empty svelte-1ipp1r6">This package requires no special permissions.</p>'),A1=A('<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>'),C1=A('<p class="perm-modal-intro svelte-1ipp1r6">This package requests the following permissions:</p> <ul class="perm-modal-list svelte-1ipp1r6"></ul>',1),T1=A('<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>'),R1=A('<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),D1=A('<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>'),P1=A('<p class="perm-modal-intro svelte-1ipp1r6">Permissions no longer requested:</p> <ul class="perm-modal-list perm-modal-removed svelte-1ipp1r6"></ul>',1),M1=A("<!> <!>",1),O1=A('<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 wo(e,t){ne(t,!0);const n=We(t,"permissions",19,()=>[]),r=We(t,"added",19,()=>[]),s=We(t,"removed",19,()=>[]),i=F(()=>t.mode==="install"?"Install":"Update");var o=O1(),l=p(o),c=p(l),u=p(c),d=p(u);v(u);var f=E(u,2),h=p(f);{var m=R=>{var P=Vt();z(()=>L(P,`${t.fromVersion??""} → ${t.pkg.version??""}`)),I(R,P)},x=R=>{var P=Vt();z(()=>L(P,`v${t.pkg.version??""}`)),I(R,P)};$(h,R=>{t.mode==="update"&&t.fromVersion?R(m):R(x,-1)})}var g=E(h,2);{var _=R=>{var P=E1(),D=p(P);v(P),z(()=>L(D,`by ${t.pkg.author??""}`)),I(R,P)};$(g,R=>{t.pkg.author&&R(_)})}v(f),v(c);var S=E(c,2),y=p(S);{var b=R=>{var P=ut(),D=fe(P);{var N=j=>{var B=I1();I(j,B)},V=j=>{var B=C1(),Y=E(fe(B),2);ce(Y,20,n,G=>G,(G,Z)=>{const J=F(()=>$i(Z));var te=A1(),ee=p(te),Q=p(ee,!0);v(ee);var ve=E(ee,2),he=p(ve,!0);v(ve),v(te),z(()=>{L(Q,a(J).title),L(he,a(J).description)}),I(G,te)}),v(Y),I(j,B)};$(D,j=>{n().length===0?j(N):j(V,-1)})}I(R,P)},T=R=>{var P=M1(),D=fe(P);{var N=B=>{var Y=R1(),G=E(fe(Y),2);ce(G,20,r,Z=>Z,(Z,J)=>{const te=F(()=>$i(J));var ee=T1(),Q=p(ee),ve=p(Q,!0);v(Q);var he=E(Q,2),W=p(he,!0);v(he),v(ee),z(()=>{L(ve,a(te).title),L(W,a(te).description)}),I(Z,ee)}),v(G),I(B,Y)};$(D,B=>{r().length>0&&B(N)})}var V=E(D,2);{var j=B=>{var Y=P1(),G=E(fe(Y),2);ce(G,20,s,Z=>Z,(Z,J)=>{const te=F(()=>$i(J));var ee=D1(),Q=p(ee),ve=p(Q,!0);v(Q);var he=E(Q,2),W=p(he,!0);v(he),v(ee),z(()=>{L(ve,a(te).title),L(W,a(te).description)}),I(Z,ee)}),v(G),I(B,Y)};$(V,B=>{s().length>0&&B(j)})}I(R,P)};$(y,R=>{t.mode==="install"?R(b):R(T,-1)})}v(S);var M=E(S,2),C=p(M),w=E(C,2),O=p(w,!0);v(w),v(M),v(l),v(o),z(()=>{be(o,"aria-label",`${a(i)??""} ${t.pkg.label??""}`),L(d,`${a(i)??""} ${t.pkg.label??""}`),L(O,a(i))}),U("click",o,function(...R){t.onCancel?.apply(this,R)}),U("keydown",o,R=>{R.key==="Escape"&&t.onCancel()}),U("click",l,R=>R.stopPropagation()),U("click",C,function(...R){t.onCancel?.apply(this,R)}),U("click",w,function(...R){t.onConfirm?.apply(this,R)}),I(e,o),re()}ue(["click","keydown"]);var L1=A('<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>'),N1=A('<div class="store-registries svelte-1aafzt0"></div>'),j1=A('<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>'),z1=A('<div class="store-error svelte-1aafzt0"> </div>'),q1=A('<div class="store-error svelte-1aafzt0"> </div>'),B1=A('<img alt="" class="store-icon-img svelte-1aafzt0"/>'),V1=A('<span class="store-icon-placeholder svelte-1aafzt0"> </span>'),$1=A('<div class="store-card-warning svelte-1aafzt0"> </div>'),F1=A('<button class="store-update-btn svelte-1aafzt0"> </button>'),U1=A('<span class="store-installed-label svelte-1aafzt0">Installed</span>'),H1=A('<span class="store-card-missing svelte-1aafzt0"> </span>'),K1=A('<div class="store-install-wrap svelte-1aafzt0"><button class="store-install-btn svelte-1aafzt0"> </button> <!></div>'),W1=A('<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>'),Y1=A("No packages found. <!>",1),G1=A('<div class="store-empty svelte-1aafzt0"><!></div>'),X1=A('<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 J1(e,t){ne(t,!0);let n=q(""),r=q("all"),s=q(le(new Set)),i=q(le(new Set)),o=q(null),l=q(""),c=q(null),u=q(null);const d=wn;async function f(){const H=a(l).trim();if(H&&!d.env.registries.includes(H))try{await d.addRegistry(H),k(l,""),d.refreshCatalog(),d.refreshInstalled()}catch(K){k(o,K instanceof Error?K.message:String(K),!0)}}async function h(H){try{await d.removeRegistry(H),d.refreshCatalog()}catch(K){k(o,K instanceof Error?K.message:String(K),!0)}}const m=F(()=>{const H=a(n).toLowerCase().trim();return d.state.ephemeral.catalog.filter(K=>a(r)!=="all"&&K.entry.type!==a(r)?!1:H?K.entry.id.toLowerCase().includes(H)||K.entry.label.toLowerCase().includes(H)||K.entry.description.toLowerCase().includes(H):!0)});function x(H){return d.state.ephemeral.installed.some(K=>K.id===H)}function g(H){return String(H.latest.contractVersion)!==String(Ol.version)}function _(H){return H in d.state.ephemeral.updatable}function S(H){return d.state.ephemeral.installed.find(K=>K.id===H)?.version??""}function y(H,K){const ke=H.latest.requires?.map(ge=>ge.id)??[];if(ke.length===0)return[];const De=new Set(Xd);for(const ge of K)(ge.type==="shard"||ge.type==="combo")&&De.add(ge.id);return ke.filter(ge=>!De.has(ge))}async function b(H){if(!a(i).has(H)){k(i,new Set([...a(i),H]),!0),k(o,null);try{await d.updatePackage(H,(K,ke)=>new Promise(De=>{const ge=d.state.ephemeral.updatable[H],qe=d.state.ephemeral.installed.find(Xe=>Xe.id===H);if(!ge||!qe){De(!0);return}k(u,{pkg:ge,fromVersion:qe.version,added:K,removed:ke,resolve:De},!0)}))}catch(K){k(o,K instanceof Error?K.message:String(K),!0)}finally{const K=new Set(a(i));K.delete(H),k(i,K,!0)}}}function T(){const H=a(u);H&&(k(u,null),H.resolve(!0))}function M(){const H=a(u);H&&(k(u,null),H.resolve(!1))}async function C(H){const K=H.entry.id;if(!a(s).has(K)){k(s,new Set([...a(s),K]),!0),k(o,null);try{const ke=await wi(H.latest,H.sourceRegistry),De=ki(H,H.latest),ge=await os(ke),qe=Ca(ge);let Xe;H.latest.serverBundleUrl&&(Xe=await Sa(H.latest,H.sourceRegistry)),k(c,{pkg:H,permissions:qe,loaded:ge,bundle:ke,meta:De,serverBundle:Xe},!0)}catch(ke){k(o,ke instanceof Error?ke.message:String(ke),!0);const De=new Set(a(s));De.delete(K),k(s,De,!0)}}}async function w(){const H=a(c);if(!H)return;k(c,null);const{pkg:K,loaded:ke,bundle:De,meta:ge,serverBundle:qe}=H,Xe=K.entry.id;try{const $e={id:ge.id,type:ge.type,label:K.entry.label,version:ge.version,contractVersion:ge.contractVersion,sourceRegistry:ge.sourceRegistry,requiredShards:K.latest.requires?.map(Et=>Et.id)??[],installedAt:new Date().toISOString()},fn=await pa($e,De,qe);if(!fn.ok){k(o,fn.error??"Server install failed",!0);return}const vn=await Ta(De,ge,{loaded:ke});vn.success||console.warn(`[sh3-store] Server install ok but local hot-load failed: ${vn.error}`),await d.refreshInstalled()}catch($e){k(o,$e instanceof Error?$e.message:String($e),!0)}finally{const $e=new Set(a(s));$e.delete(Xe),k(s,$e,!0)}}function O(){if(!a(c))return;const H=a(c).pkg.entry.id;k(c,null);const K=new Set(a(s));K.delete(H),k(s,K,!0)}function R(){d.refreshCatalog(),d.refreshInstalled()}var P=X1(),D=fe(P),N=p(D),V=E(p(N),2),j=p(V);Se(j);var B=E(j,2),Y=p(B);Y.value=Y.__value="all";var G=E(Y);G.value=G.__value="shard";var Z=E(G);Z.value=Z.__value="app",v(B);var J=E(B,2),te=p(J,!0);v(J),v(V),v(N);var ee=E(N,2);{var Q=H=>{var K=N1();ce(K,21,()=>d.env.registries,Vn,(ke,De)=>{var ge=L1(),qe=p(ge),Xe=p(qe,!0);v(qe);var $e=E(qe,2);v(ge),z(()=>L(Xe,a(De))),U("click",$e,()=>h(a(De))),I(ke,ge)}),v(K),I(H,K)};$(ee,H=>{d.isAdmin&&d.env.registries.length>0&&H(Q)})}var ve=E(ee,2);{var he=H=>{var K=j1(),ke=p(K);Se(ke);var De=E(ke,2);v(K),z(ge=>De.disabled=ge,[()=>!a(l).trim()]),et("submit",K,ge=>{ge.preventDefault(),f()}),Me(ke,()=>a(l),ge=>k(l,ge)),I(H,K)};$(ve,H=>{d.isAdmin&&H(he)})}var W=E(ve,2);{var oe=H=>{var K=z1(),ke=p(K,!0);v(K),z(()=>L(ke,d.state.ephemeral.error)),I(H,K)};$(W,H=>{d.state.ephemeral.error&&H(oe)})}var me=E(W,2);{var Ye=H=>{var K=q1(),ke=p(K,!0);v(K),z(()=>L(ke,a(o))),I(H,K)};$(me,H=>{a(o)&&H(Ye)})}var Ae=E(me,2);ce(Ae,21,()=>a(m),H=>H.entry.id,(H,K)=>{const ke=F(()=>x(a(K).entry.id)),De=F(()=>g(a(K))),ge=F(()=>a(s).has(a(K).entry.id)),qe=F(()=>_(a(K).entry.id)),Xe=F(()=>a(i).has(a(K).entry.id)),$e=F(()=>y(a(K),d.state.ephemeral.installed));var fn=W1(),vn=p(fn),Et=p(vn),Sr=p(Et);{var pf=Ne=>{var Pe=B1();z(()=>be(Pe,"src",a(K).entry.icon)),I(Ne,Pe)},mf=Ne=>{var Pe=V1(),It=p(Pe,!0);v(Pe),z(()=>L(It,a(K).entry.type==="shard"?"S":"A")),I(Ne,Pe)};$(Sr,Ne=>{a(K).entry.icon?Ne(pf):Ne(mf,-1)})}v(Et);var Ma=E(Et,2),xi=p(Ma),gf=p(xi,!0);v(xi);var us=E(xi,2);let Oa;var bf=p(us,!0);v(us);var La=E(us,2),yf=p(La,!0);v(La),v(Ma),v(vn);var Ei=E(vn,2),_f=p(Ei,!0);v(Ei);var Ii=E(Ei,2),wf=p(Ii,!0);v(Ii);var Na=E(Ii,2);{var kf=Ne=>{var Pe=$1(),It=p(Pe);v(Pe),z(()=>L(It,`Contract mismatch: package targets v${a(K).latest.contractVersion??""}, running v${Ol.version}`)),I(Ne,Pe)};$(Na,Ne=>{a(De)&&Ne(kf)})}var ja=E(Na,2),Sf=p(ja);{var xf=Ne=>{var Pe=F1(),It=p(Pe,!0);v(Pe),z(Ai=>{Pe.disabled=a(Xe),L(It,Ai)},[()=>a(Xe)?"Updating...":`Update ${S(a(K).entry.id)} -> ${a(K).latest.version}`]),U("click",Pe,()=>b(a(K).entry.id)),I(Ne,Pe)},Ef=Ne=>{var Pe=U1();I(Ne,Pe)},If=Ne=>{var Pe=K1(),It=p(Pe),Ai=p(It,!0);v(It);var Af=E(It,2);{var Cf=xr=>{var Ci=H1(),Tf=p(Ci);v(Ci),z(Rf=>L(Tf,`requires: ${Rf??""}`),[()=>a($e).join(", ")]),I(xr,Ci)};$(Af,xr=>{a($e).length>0&&xr(Cf)})}v(Pe),z(xr=>{It.disabled=a(ge)||a($e).length>0,be(It,"title",xr),L(Ai,a(ge)?"Installing...":"Install")},[()=>a($e).length>0?`Missing required shards: ${a($e).join(", ")}`:void 0]),U("click",It,()=>C(a(K))),I(Ne,Pe)};$(Sf,Ne=>{a(ke)&&a(qe)?Ne(xf):a(ke)?Ne(Ef,1):Ne(If,-1)})}v(ja),v(fn),z(()=>{L(gf,a(K).entry.label),Oa=_e(us,1,"store-card-badge svelte-1aafzt0",null,Oa,{"badge-shard":a(K).entry.type==="shard","badge-app":a(K).entry.type==="app"}),L(bf,a(K).entry.type),L(yf,a(K).latest.version),L(_f,a(K).entry.description),L(wf,a(K).entry.author.name)}),I(H,fn)}),v(Ae);var at=E(Ae,2);{var Ge=H=>{var K=G1(),ke=p(K);{var De=qe=>{var Xe=Y1(),$e=E(fe(Xe));{var fn=Et=>{var Sr=Vt("Add a registry URL above to get started.");I(Et,Sr)},vn=Et=>{var Sr=Vt("No registries configured.");I(Et,Sr)};$($e,Et=>{d.isAdmin?Et(fn):Et(vn,-1)})}I(qe,Xe)},ge=qe=>{var Xe=Vt("No packages match the current filter.");I(qe,Xe)};$(ke,qe=>{d.env.registries.length===0?qe(De):qe(ge,-1)})}v(K),I(H,K)};$(at,H=>{!d.state.ephemeral.loading&&a(m).length===0&&H(Ge)})}v(D);var ls=E(D,2);{var In=H=>{{let K=F(()=>({label:a(c).pkg.entry.label,version:a(c).pkg.latest.version,author:a(c).pkg.entry.author.name}));wo(H,{mode:"install",get pkg(){return a(K)},get permissions(){return a(c).permissions},onConfirm:w,onCancel:O})}};$(ls,H=>{a(c)&&H(In)})}var Si=E(ls,2);{var cs=H=>{{let K=F(()=>({label:a(u).pkg.entry.label,version:a(u).pkg.latest.version,author:a(u).pkg.entry.author.name}));wo(H,{mode:"update",get pkg(){return a(K)},get fromVersion(){return a(u).fromVersion},get added(){return a(u).added},get removed(){return a(u).removed},onConfirm:T,onCancel:M})}};$(Si,H=>{a(u)&&H(cs)})}z(()=>{J.disabled=d.state.ephemeral.loading,L(te,d.state.ephemeral.loading?"Loading...":"Refresh")}),Me(j,()=>a(n),H=>k(n,H)),jr(B,()=>a(r),H=>k(r,H)),U("click",J,R),I(e,P),re()}ue(["click"]);var Z1=A('<div class="installed-error svelte-1hqclkp"> </div>'),Q1=A('<div class="installed-empty svelte-1hqclkp">No packages installed.</div>'),e0=A('<button class="installed-update-btn svelte-1hqclkp"> </button>'),t0=A('<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>'),n0=A('<ul class="installed-list svelte-1hqclkp"></ul>'),r0=A('<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 s0(e,t){ne(t,!0);const n=wn;let r=q(le(new Set)),s=q(le(new Set)),i=q(null),o=q(null);async function l(w){if(!a(r).has(w)){k(r,new Set([...a(r),w]),!0);try{await Sd(w),await rf(w),await n.refreshInstalled()}catch(O){console.warn("[sh3-store] Uninstall failed:",O instanceof Error?O.message:O)}finally{const O=new Set(a(r));O.delete(w),k(r,O,!0)}}}async function c(w){if(!a(s).has(w)){k(s,new Set([...a(s),w]),!0),k(i,null);try{await n.updatePackage(w,(O,R)=>new Promise(P=>{const D=n.state.ephemeral.installed.find(V=>V.id===w),N=n.state.ephemeral.updatable[w];if(!D||!N){P(!0);return}k(o,{pkg:D,toVersion:N.latest.version,added:O,removed:R,resolve:P},!0)}))}catch(O){k(i,O instanceof Error?O.message:String(O),!0)}finally{const O=new Set(a(s));O.delete(w),k(s,O,!0)}}}function u(){const w=a(o);w&&(k(o,null),w.resolve(!0))}function d(){const w=a(o);w&&(k(o,null),w.resolve(!1))}function f(){n.refreshInstalled()}function h(w){try{return new Date(w).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch{return w}}var m=r0(),x=p(m),g=E(p(x),2);v(x);var _=E(x,2);{var S=w=>{var O=Z1(),R=p(O,!0);v(O),z(()=>L(R,a(i))),I(w,O)};$(_,w=>{a(i)&&w(S)})}var y=E(_,2);{var b=w=>{var O=Q1();I(w,O)},T=w=>{var O=n0();ce(O,21,()=>n.state.ephemeral.installed,R=>R.id,(R,P)=>{const D=F(()=>a(r).has(a(P).id));var N=t0(),V=p(N),j=p(V),B=p(j,!0);v(j);var Y=E(j,2);let G;var Z=p(Y,!0);v(Y);var J=E(Y,2),te=p(J,!0);v(J),v(V);var ee=E(V,2),Q=p(ee),ve=p(Q);v(Q);var he=E(Q,2),W=p(he);v(he);var oe=E(he,2),me=p(oe);v(oe),v(ee);var Ye=E(ee,2),Ae=p(Ye);{var at=In=>{const Si=F(()=>n.state.ephemeral.updatable[a(P).id]),cs=F(()=>a(s).has(a(P).id));var H=e0(),K=p(H,!0);v(H),z(()=>{H.disabled=a(cs)||a(D),L(K,a(cs)?"Updating...":`Update -> ${a(Si).latest.version}`)}),U("click",H,()=>c(a(P).id)),I(In,H)};$(Ae,In=>{a(P).id in n.state.ephemeral.updatable&&In(at)})}var Ge=E(Ae,2),ls=p(Ge,!0);v(Ge),v(Ye),v(N),z(In=>{L(B,a(P).id),G=_e(Y,1,"installed-item-badge svelte-1hqclkp",null,G,{"badge-shard":a(P).type==="shard","badge-app":a(P).type==="app"}),L(Z,a(P).type),L(te,a(P).version),L(ve,`Contract: v${a(P).contractVersion??""}`),L(W,`Source: ${a(P).sourceRegistry??""}`),L(me,`Installed: ${In??""}`),Ge.disabled=a(D),L(ls,a(D)?"Removing...":"Uninstall")},[()=>h(a(P).installedAt)]),U("click",Ge,()=>l(a(P).id)),I(R,N)}),v(O),I(w,O)};$(y,w=>{n.state.ephemeral.installed.length===0?w(b):w(T,-1)})}var M=E(y,2);{var C=w=>{{let O=F(()=>({label:a(o).pkg.id,version:a(o).toVersion}));wo(w,{mode:"update",get pkg(){return a(O)},get fromVersion(){return a(o).pkg.version},get added(){return a(o).added},get removed(){return a(o).removed},onConfirm:u,onCancel:d})}};$(M,w=>{a(o)&&w(C)})}v(m),U("click",g,f),I(e,m),re()}ue(["click"]);function sf(e){return wn.state.ephemeral.catalog.find(t=>t.entry.id===e)}function Ra(e){return wn.state.ephemeral.installed.find(t=>t.id===e)}const i0={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=Ra(n);if(r){e.scrollback.push({kind:"status",text:`${n} is already installed (v${r.version})`,level:"warn",ts:Date.now()});return}const s=sf(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 wi(s.latest,s.sourceRegistry),o=ki(s,s.latest);let l;s.latest.serverBundleUrl&&(l=await Sa(s.latest,s.sourceRegistry));const c={id:o.id,type:o.type,label:s.entry.label,version:o.version,contractVersion:o.contractVersion,sourceRegistry:o.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:s.latest.requires?.map(f=>f.id)??[]},u=await pa(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(m=>m.id).join(", ")}`),e.scrollback.push({kind:"status",text:f,level:"error",ts:Date.now()});return}const d=await Ta(i,o);d.success||e.scrollback.push({kind:"status",text:`server ok but local hot-load failed: ${d.error}`,level:"warn",ts:Date.now()}),await wn.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()})}}},o0={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(!Ra(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 Sd(n),await rf(n),await wn.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()})}}},a0={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=Ra(n),s=sf(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 l0(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 o=n[i]??0,l=r[i]??0;if(o>l)return!0;if(o<l)return!1}return!1}function c0(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 wn;const u0={manifest:{id:"sh3-store",label:"Package Store",version:En,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 m=n.ephemeral.catalog.find(x=>x.entry.id===h.id);m&&l0(m.latest.version,h.version)&&(f[h.id]=m)}n.ephemeral.updatable=f}async function s(){n.ephemeral.loading=!0,n.ephemeral.error=null;try{const f=await Kd(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 S_();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 S1();n.ephemeral.installed=h,r()}catch{}}}async function o(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(m=>m!==f);await e.envUpdate({registries:h})}async function c(f,h){const m=n.ephemeral.updatable[f];if(!m)return;const x=n.ephemeral.installed.find(N=>N.id===f);if(!x)return;const g=await wi(m.latest,m.sourceRegistry);let _;m.latest.serverBundleUrl&&(_=await Sa(m.latest,m.sourceRegistry));const S=ki(m,m.latest),y=await os(g),b=Ca(y);let T=[];try{const N=await _1(f);N?.permissions&&(T=N.permissions)}catch{}const{added:M,removed:C}=c0(T,b);if((M.length>0||C.length>0)&&h&&!await h(M,C))return;const w=await tf(f),O={...x,permissions:T},R={id:S.id,type:S.type,label:m.entry.label,version:S.version,contractVersion:S.contractVersion,sourceRegistry:S.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:m.latest.requires?.map(N=>N.id)??[]},P=await pa(R,g,_);if(!P.ok){let N=P.error??"Server update failed";throw P.code==="missing-shards"&&P.missing&&(N=`missing required shard(s): ${P.missing.map(j=>j.id).join(", ")}`),new Error(N)}const D=await Ta(g,S,{loaded:y});if(!D.success){if(w)try{await ef(f,w,O)}catch(N){console.warn(`[sh3-store] Rollback failed for "${f}":`,N instanceof Error?N.message:N)}throw new Error(D.error??"Local install failed during update")}await i()}wn={env:t,state:n,get isAdmin(){return e.isAdmin},refreshCatalog:s,refreshInstalled:i,updatePackage:c,addRegistry:o,removeRegistry:l};const u={mount(f,h){const m=Oe(J1,{target:f});return{unmount(){Fe(m)}}}},d={mount(f,h){const m=Oe(s0,{target:f});return{unmount(){Fe(m)}}}};e.registerView("sh3-store:browse",u),e.registerView("sh3-store:installed",d),e.registerVerb(i0),e.registerVerb(o0),e.registerVerb(a0),i()},autostart(){wn.refreshCatalog()}},d0={manifest:{id:"sh3-store-app",label:"Package Store",version:En,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 f0=A('<div class="admin-error svelte-4q792t"> </div>'),v0=A('<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>'),h0=A('<p class="admin-muted svelte-4q792t">Loading...</p>'),p0=A('<p class="admin-error svelte-4q792t"> </p>'),m0=A('<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>'),g0=A('<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),b0=A('<li class="admin-user-item svelte-4q792t"><!></li>'),y0=A('<ul class="admin-user-list svelte-4q792t"></ul>'),_0=A('<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 w0(e,t){ne(t,!0);let n=q(le([])),r=q(!0),s=q(null),i=q(!1),o=q(""),l=q(""),c=q(""),u=q("user"),d=q(null),f=q(null),h=q(""),m=q("user"),x=q("");async function g(){k(r,!0),k(s,null);try{const j=await fetch("/api/admin/users",{credentials:"include"});if(!j.ok)throw new Error("Failed to fetch users");k(n,await j.json(),!0)}catch(j){k(s,j instanceof Error?j.message:"Failed to load users",!0)}finally{k(r,!1)}}async function _(){k(d,null);try{const j=await fetch("/api/admin/users",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:a(o),displayName:a(l)||a(o),password:a(c),role:a(u)})});if(!j.ok){const B=await j.json().catch(()=>({}));k(d,B.error||"Failed to create user",!0);return}k(o,""),k(l,""),k(c,""),k(u,"user"),k(i,!1),await g()}catch{k(d,"Network error")}}function S(j){k(f,j.id,!0),k(h,j.displayName,!0),k(m,j.role,!0),k(x,"")}async function y(){if(!a(f))return;const j={displayName:a(h),role:a(m)};a(x).trim()&&(j.password=a(x));try{if(!(await fetch(`/api/admin/users/${a(f)}`,{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(j)})).ok)return;k(f,null),await g()}catch{}}async function b(j){try{await fetch(`/api/admin/users/${j}`,{method:"DELETE",credentials:"include"}),await g()}catch{}}g();var T=_0(),M=p(T),C=E(p(M),2),w=p(C,!0);v(C),v(M);var O=E(M,2);{var R=j=>{var B=v0(),Y=p(B);Se(Y);var G=E(Y,2);Se(G);var Z=E(G,2);Se(Z);var J=E(Z,2),te=p(J);te.value=te.__value="user";var ee=E(te);ee.value=ee.__value="admin",v(J);var Q=E(J,2),ve=E(Q,2);{var he=W=>{var oe=f0(),me=p(oe,!0);v(oe),z(()=>L(me,a(d))),I(W,oe)};$(ve,W=>{a(d)&&W(he)})}v(B),z(W=>Q.disabled=W,[()=>!a(o).trim()||!a(c).trim()]),et("submit",B,W=>{W.preventDefault(),_()}),Me(Y,()=>a(o),W=>k(o,W)),Me(G,()=>a(l),W=>k(l,W)),Me(Z,()=>a(c),W=>k(c,W)),jr(J,()=>a(u),W=>k(u,W)),I(j,B)};$(O,j=>{a(i)&&j(R)})}var P=E(O,2);{var D=j=>{var B=h0();I(j,B)},N=j=>{var B=p0(),Y=p(B,!0);v(B),z(()=>L(Y,a(s))),I(j,B)},V=j=>{var B=y0();ce(B,21,()=>a(n),Y=>Y.id,(Y,G)=>{var Z=b0(),J=p(Z);{var te=Q=>{var ve=m0(),he=p(ve);Se(he);var W=E(he,2);Se(W);var oe=E(W,2),me=p(oe);me.value=me.__value="user";var Ye=E(me);Ye.value=Ye.__value="admin",v(oe);var Ae=E(oe,2),at=E(p(Ae),2);v(Ae),v(ve),et("submit",ve,Ge=>{Ge.preventDefault(),y()}),Me(he,()=>a(h),Ge=>k(h,Ge)),Me(W,()=>a(x),Ge=>k(x,Ge)),jr(oe,()=>a(m),Ge=>k(m,Ge)),U("click",at,()=>{k(f,null)}),I(Q,ve)},ee=Q=>{var ve=g0(),he=fe(ve),W=p(he),oe=p(W,!0);v(W);var me=E(W,2),Ye=p(me);v(me),v(he);var Ae=E(he,2),at=p(Ae),Ge=E(at,2);v(Ae),z(()=>{L(oe,a(G).displayName),L(Ye,`${a(G).username??""} · ${a(G).role??""}`)}),U("click",at,()=>S(a(G))),U("click",Ge,()=>b(a(G).id)),I(Q,ve)};$(J,Q=>{a(f)===a(G).id?Q(te):Q(ee,-1)})}v(Z),I(Y,Z)}),v(B),I(j,B)};$(P,j=>{a(r)?j(D):a(s)?j(N,1):j(V,-1)})}v(T),z(()=>L(w,a(i)?"Cancel":"New user")),U("click",C,()=>{k(i,!a(i))}),I(e,T),re()}ue(["click"]);var k0=A('<p class="admin-muted svelte-1hsgdb4">Loading...</p>'),S0=A('<div class="admin-error svelte-1hsgdb4"> </div>'),x0=A('<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),E0=A('<div class="admin-auth svelte-1hsgdb4"><h2 class="svelte-1hsgdb4">Auth Settings</h2> <!></div>');function I0(e,t){ne(t,!0);let n=q(null),r=q(!0),s=q(!1),i=q(null);async function o(){k(r,!0);try{const h=await fetch("/api/admin/settings",{credentials:"include"});if(!h.ok)throw new Error("Failed to fetch settings");k(n,await h.json(),!0)}catch(h){k(i,h instanceof Error?h.message:"Failed to load settings",!0)}finally{k(r,!1)}}async function l(){if(a(n)){k(s,!0),k(i,null);try{const h=await fetch("/api/admin/settings",{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(a(n))});if(!h.ok)throw new Error("Failed to save settings");k(n,await h.json(),!0)}catch(h){k(i,h instanceof Error?h.message:"Failed to save",!0)}finally{k(s,!1)}}}o();var c=E0(),u=E(p(c),2);{var d=h=>{var m=k0();I(h,m)},f=h=>{var m=x0(),x=fe(m),g=p(x),_=p(g);Se(_),on(4),v(g);var S=E(g,2),y=p(S);Se(y),on(4),v(S);var b=E(S,2),T=p(b);Se(T),on(4),v(b);var M=E(b,2),C=E(p(M),2);Se(C),v(M);var w=E(M,2),O=p(w,!0);v(w),v(x);var R=E(x,2);{var P=D=>{var N=S0(),V=p(N,!0);v(N),z(()=>L(V,a(i))),I(D,N)};$(R,D=>{a(i)&&D(P)})}z(()=>{w.disabled=a(s),L(O,a(s)?"Saving...":"Save")}),bs(_,()=>a(n).auth.required,D=>a(n).auth.required=D),bs(y,()=>a(n).auth.guestAllowed,D=>a(n).auth.guestAllowed=D),bs(T,()=>a(n).auth.selfRegistration,D=>a(n).auth.selfRegistration=D),Me(C,()=>a(n).auth.sessionTTL,D=>a(n).auth.sessionTTL=D),U("click",w,l),I(h,m)};$(u,h=>{a(r)?h(d):a(n)&&h(f,1)})}v(c),I(e,c),re()}ue(["click"]);var A0=A('<button type="button"> </button>'),C0=A('<div class="admin-error svelte-1gkiloq"> </div>'),T0=A('<div class="admin-error svelte-1gkiloq"> </div>'),R0=A(`<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 D0(e,t){ne(t,!0);const n=[{value:0,label:"Off (no-store)"},{value:5,label:"5s (dev)"},{value:60,label:"1 min"},{value:3600,label:"1 hour"},{value:86400,label:"1 day"},{value:31536e3,label:"1 year"}];let r=q("..."),s=q(!1),i=q(null),o=q(31536e3),l=q(31536e3),c=q(!1),u=q(null);const d=F(()=>a(o)!==a(l)),f=F(()=>h(a(o)));function h(W){return W===0?"0 seconds (off — browsers never cache)":W<60?`${W} seconds`:W<3600?`${Math.round(W/60)} minutes`:W<86400?`${Math.round(W/3600)} hours`:W<31536e3?`${Math.round(W/86400)} days`:`${Math.round(W/31536e3)} years`}async function m(){try{const W=await fetch("/api/version");if(W.ok){const oe=await W.json();k(r,oe.version,!0)}}catch{}}async function x(){try{const W=await fetch("/api/admin/settings",{credentials:"include"});if(W.ok){const me=(await W.json()).packages?.cacheMaxAge??31536e3;k(o,me,!0),k(l,me,!0)}}catch{}}async function g(){k(c,!0),k(u,null);try{const W=await fetch("/api/admin/settings",{method:"PUT",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({packages:{cacheMaxAge:a(o)}})});if(W.ok){const oe=await W.json();k(l,oe.packages?.cacheMaxAge??a(o),!0),k(o,a(l),!0)}else{const oe=await W.json().catch(()=>({}));k(u,oe.error||"Save failed",!0)}}catch{k(u,"Network error")}finally{k(c,!1)}}async function _(){k(s,!0),k(i,null);try{const W=await fetch("/api/admin/restart",{method:"POST",credentials:"include"});if(!W.ok){const oe=await W.json().catch(()=>({}));k(i,oe.error||"Restart failed",!0),k(s,!1)}}catch{k(i,"Network error"),k(s,!1)}}m(),x();var S=R0(),y=E(p(S),2),b=p(y),T=E(p(b),2),M=p(T,!0);v(T),v(b),v(y);var C=E(y,2),w=E(p(C),4);Se(w);var O=E(w,2),R=p(O),P=p(R,!0);v(R);var D=E(R);v(O);var N=E(O,2);ce(N,21,()=>n,W=>W.value,(W,oe)=>{var me=A0();let Ye;var Ae=p(me,!0);v(me),z(()=>{Ye=_e(me,1,"admin-snap svelte-1gkiloq",null,Ye,{active:a(o)===a(oe).value}),me.disabled=a(c),L(Ae,a(oe).label)}),U("click",me,()=>k(o,a(oe).value,!0)),I(W,me)}),v(N);var V=E(N,2),j=p(V),B=p(j,!0);v(j);var Y=E(j,2),G=E(Y,2);{var Z=W=>{var oe=C0(),me=p(oe,!0);v(oe),z(()=>L(me,a(u))),I(W,oe)};$(G,W=>{a(u)&&W(Z)})}v(V),v(C);var J=E(C,2),te=E(p(J),2),ee=p(te),Q=p(ee,!0);v(ee);var ve=E(ee,2);{var he=W=>{var oe=T0(),me=p(oe,!0);v(oe),z(()=>L(me,a(i))),I(W,oe)};$(ve,W=>{a(i)&&W(he)})}v(te),v(J),v(S),z(()=>{L(M,a(r)),w.disabled=a(c),L(P,a(o)),L(D,` — ${a(f)??""}`),j.disabled=!a(d)||a(c),L(B,a(c)?"Saving...":"Save"),Y.disabled=!a(d)||a(c),ee.disabled=a(s),L(Q,a(s)?"Restarting...":"Restart server")}),Me(w,()=>a(o),W=>k(o,W)),U("click",j,g),U("click",Y,()=>k(o,a(l),!0)),U("click",ee,_),I(e,S),re()}ue(["click"]);var P0=A(`<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>`),M0=A('<div class="admin-error svelte-1afg5z5"> </div>'),O0=A('<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>'),L0=A('<p class="admin-muted svelte-1afg5z5">Loading...</p>'),N0=A('<p class="admin-error svelte-1afg5z5"> </p>'),j0=A('<p class="admin-muted svelte-1afg5z5">No API keys. Create one to enable external access.</p>'),z0=A('<button type="button" class="admin-btn-danger svelte-1afg5z5">Confirm</button> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Cancel</button>',1),q0=A('<button type="button" class="admin-btn-danger svelte-1afg5z5">Revoke</button>'),B0=A('<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>'),V0=A('<ul class="admin-key-list svelte-1afg5z5"></ul>'),$0=A('<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){ne(t,!0);let n=q(le([])),r=q(!0),s=q(null),i=q(!1),o=q(""),l=q(null),c=q(null),u=q(null);async function d(){k(r,!0),k(s,null);try{const D=await fetch("/api/admin/keys",{credentials:"include"});if(!D.ok)throw new Error("Failed to fetch keys");k(n,await D.json(),!0)}catch(D){k(s,D instanceof Error?D.message:"Failed to load keys",!0)}finally{k(r,!1)}}async function f(){k(l,null);try{const D=await fetch("/api/admin/keys",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({label:a(o)})});if(!D.ok){const V=await D.json().catch(()=>({}));k(l,V.error||"Failed to create key",!0);return}const N=await D.json();k(c,{id:N.id,key:N.key},!0),k(o,""),k(i,!1),await d()}catch{k(l,"Network error")}}async function h(D){k(u,null);try{await fetch(`/api/admin/keys/${D}`,{method:"DELETE",credentials:"include"}),a(c)?.id===D&&k(c,null),await d()}catch{}}function m(D){return new Date(D).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}d();var x=$0(),g=p(x),_=E(p(g),2),S=p(_,!0);v(_),v(g);var y=E(g,2);{var b=D=>{var N=P0(),V=E(p(N),2),j=p(V,!0);v(V);var B=E(V,2);v(N),z(()=>L(j,a(c).key)),U("click",B,()=>{k(c,null)}),I(D,N)};$(y,D=>{a(c)&&D(b)})}var T=E(y,2);{var M=D=>{var N=O0(),V=p(N);Se(V);var j=E(V,2),B=E(j,2);{var Y=G=>{var Z=M0(),J=p(Z,!0);v(Z),z(()=>L(J,a(l))),I(G,Z)};$(B,G=>{a(l)&&G(Y)})}v(N),z(G=>j.disabled=G,[()=>!a(o).trim()]),et("submit",N,G=>{G.preventDefault(),f()}),Me(V,()=>a(o),G=>k(o,G)),I(D,N)};$(T,D=>{a(i)&&D(M)})}var C=E(T,2);{var w=D=>{var N=L0();I(D,N)},O=D=>{var N=N0(),V=p(N,!0);v(N),z(()=>L(V,a(s))),I(D,N)},R=D=>{var N=j0();I(D,N)},P=D=>{var N=V0();ce(N,21,()=>a(n),V=>V.id,(V,j)=>{var B=B0(),Y=p(B),G=p(Y),Z=p(G,!0);v(G);var J=E(G,2),te=p(J);v(J),v(Y);var ee=E(Y,2),Q=p(ee);{var ve=W=>{var oe=z0(),me=fe(oe),Ye=E(me,2);U("click",me,()=>h(a(j).id)),U("click",Ye,()=>{k(u,null)}),I(W,oe)},he=W=>{var oe=q0();U("click",oe,()=>{k(u,a(j).id,!0)}),I(W,oe)};$(Q,W=>{a(u)===a(j).id?W(ve):W(he,-1)})}v(ee),v(B),z(W=>{L(Z,a(j).label),L(te,`${a(j).id??""} · ${W??""}`)},[()=>m(a(j).createdAt)]),I(V,B)}),v(N),I(D,N)};$(C,D=>{a(r)?D(w):a(s)?D(O,1):a(n).length===0?D(R,2):D(P,-1)})}v(x),z(()=>L(S,a(i)?"Cancel":"New key")),U("click",_,()=>{k(i,!a(i))}),I(e,x),re()}ue(["click"]);const U0={manifest:{id:"sh3-admin",label:"Admin",version:En,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,o){const l=Oe(w0,{target:i});return{unmount(){Fe(l)}}}},n={mount(i,o){const l=Oe(I0,{target:i});return{unmount(){Fe(l)}}}},r={mount(i,o){const l=Oe(D0,{target:i});return{unmount(){Fe(l)}}}},s={mount(i,o){const l=Oe(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:En,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"}]}},Ll="sh3:migrations:shell-rename:done",Nl="__shell__:",K0="__sh3core__:",jl="sh3:user:__shell__:theme",zl="sh3:user:__sh3core__:theme";function W0(e,t){if(t.getItem(Ll))return;const n=t.getItem(jl);n!==null&&t.getItem(zl)===null&&(t.setItem(zl,n),t.removeItem(jl));for(const r of e.keys()){if(!r.startsWith(Nl))continue;const s=K0+r.slice(Nl.length),i=e.read(r);e.write(s,i),e.delete(r)}t.setItem(Ll,"1")}function Y0(e){ga(e)}function G0(){const e=Kt.workspace;return{keys:()=>e.list(),read:t=>e.read(t),write:(t,n)=>e.write(t,n),delete:t=>e.delete(t)}}async function X0(e){typeof globalThis.localStorage<"u"&&W0(G0(),globalThis.localStorage);const t=new Set(e?.excludeShards),n=[Rw,v1,u0,U0];for(const i of n)t.has(i.manifest.id)||ga(i);const r=[d0,H0];for(const i of r)da(i);await x1();for(const[i,o]of en)o.autostart&&(Dy(i),await Md(i));const s=N_();s&&yn.has(s)&&await $n(s)}var J0=A('<button type="button" aria-label="Expand pane"><span class="collapse-icon"> </span></button>'),Z0=A('<button type="button" aria-label="Collapse pane"><span class="collapse-icon"> </span></button>'),Q0=A('<!> <div class="pane-content svelte-1adl4o1"><!></div>',1),eS=A('<div role="separator"></div>'),tS=A("<div><!></div> <!>",1),nS=A("<div></div>");function rS(e,t){ne(t,!0);const n=40,r=28;let s;const i=S=>t.pinned?.[S]??"fr",o=S=>t.collapsed?.[S]??!1,l=S=>t.fixed?.[S]??!1,c=S=>l(S)||l(S+1);function u(S){if(l(S))return!1;const y=S>0?!l(S-1):!1,b=S<t.count-1?!l(S+1):!1;return y||b}function d(S){return o(S)?`0 0 ${r}px`:i(S)==="px"?`0 0 ${Math.max(n,t.sizes[S])}px`:`${Math.max(1e-4,t.sizes[S])} 1 0`}let f=q(null);function h(S,y){if(o(y)||o(y+1)||c(y))return;S.preventDefault(),S.target.setPointerCapture(S.pointerId);const b=s.getBoundingClientRect(),T=t.direction==="horizontal"?b.width:b.height;let M=0,C=0;for(let w=0;w<t.sizes.length;w++)i(w)==="fr"?M+=t.sizes[w]:C+=Math.max(n,t.sizes[w]);k(f,{handleIndex:y,startClient:t.direction==="horizontal"?S.clientX:S.clientY,startSizes:t.sizes.slice(),containerPx:T,totalFr:M,frAvailPx:Math.max(1,T-C)},!0)}function m(S){if(!a(f))return;const b=(t.direction==="horizontal"?S.clientX:S.clientY)-a(f).startClient,T=a(f).handleIndex,M=T+1,C=i(T),w=i(M),O=a(f).totalFr/a(f).frAvailPx;if(C==="fr"&&w==="fr"){const R=n*O,P=b*O,D=a(f).startSizes[M]-R,N=-(a(f).startSizes[T]-R),V=Math.min(Math.max(P,N),D);t.onResize?.(T,a(f).startSizes[T]+V),t.onResize?.(M,a(f).startSizes[M]-V)}else if(C==="px"&&w==="fr"){const R=a(f).frAvailPx-n,P=n-a(f).startSizes[T];t.onResize?.(T,a(f).startSizes[T]+Math.min(Math.max(b,P),R))}else if(C==="fr"&&w==="px"){const R=a(f).startSizes[M]-n,P=-(a(f).frAvailPx-n);t.onResize?.(M,a(f).startSizes[M]-Math.min(Math.max(b,P),R))}else{const R=a(f).startSizes[M]-n,P=-(a(f).startSizes[T]-n),D=Math.min(Math.max(b,P),R);t.onResize?.(T,a(f).startSizes[T]+D),t.onResize?.(M,a(f).startSizes[M]-D)}}function x(S){a(f)&&(S.target.releasePointerCapture(S.pointerId),k(f,null))}var g=nS();let _;ce(g,21,()=>Array(t.count),Vn,(S,y,b)=>{var T=tS(),M=fe(T);let C;var w=p(M);{var O=V=>{var j=J0();let B;var Y=p(j),G=p(Y,!0);v(Y),v(j),z(()=>{B=_e(j,1,"collapse-header svelte-1adl4o1",null,B,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),L(G,t.direction==="horizontal"?"▸":"▾")}),U("click",j,()=>t.onCollapseToggle?.(b,!1)),I(V,j)},R=F(()=>o(b)),P=V=>{var j=Q0(),B=fe(j);{var Y=te=>{var ee=Z0();let Q;be(ee,"data-testid",`collapse-toggle-${b}`);var ve=p(ee),he=p(ve,!0);v(ve),v(ee),z(()=>{Q=_e(ee,1,"collapse-header expanded svelte-1adl4o1",null,Q,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),L(he,t.direction==="horizontal"?"◂":"▴")}),U("click",ee,()=>t.onCollapseToggle?.(b,!0)),I(te,ee)},G=F(()=>t.onCollapseToggle&&u(b));$(B,te=>{a(G)&&te(Y)})}var Z=E(B,2),J=p(Z);ni(J,()=>t.pane,()=>b),v(Z),I(V,j)};$(w,V=>{a(R)?V(O):V(P,-1)})}v(M);var D=E(M,2);{var N=V=>{var j=eS();let B;be(j,"data-testid",`splitter-handle-${b}`),z(Y=>{B=_e(j,1,"splitter-handle svelte-1adl4o1",null,B,Y),be(j,"aria-orientation",t.direction==="horizontal"?"vertical":"horizontal")},[()=>({dragging:a(f)?.handleIndex===b,disabled:o(b)||o(b+1),frozen:c(b)})]),U("pointerdown",j,Y=>h(Y,b)),U("pointermove",j,m),U("pointerup",j,x),et("pointercancel",j,x),U("dblclick",j,()=>{c(b)||!u(b)&&!o(b)||t.onCollapseToggle?.(b,!o(b))}),I(V,j)};$(D,V=>{b<t.count-1&&V(N)})}z((V,j)=>{C=_e(M,1,"splitter-pane svelte-1adl4o1",null,C,V),nn(M,`flex: ${j??""};`)},[()=>({collapsed:o(b)}),()=>d(b)]),I(S,T)}),v(g),tt(g,S=>s=S,()=>s),z(()=>_=_e(g,1,"splitter svelte-1adl4o1",null,_,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"})),I(e,g),re()}ue(["click","pointerdown","pointermove","pointerup","dblclick"]);function sS(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 o;return i===s.length?o=s[s.length-1].getBoundingClientRect().right:o=s[i].getBoundingClientRect().left,{left:o-r.left-1,top:2,height:r.height-4}}var iS=A('<span class="tab-dirty svelte-1kxcyhf" title="Unsaved changes"></span>'),oS=A('<span class="tab-icon svelte-1kxcyhf"> </span>'),aS=A('<span class="tab-close svelte-1kxcyhf" role="button" tabindex="-1" title="Close">&#x2715;</span>'),lS=A('<button type="button" role="tab"><!> <!> <span class="tab-label svelte-1kxcyhf"> </span> <!></button>'),cS=A('<div class="drop-indicator svelte-1kxcyhf"></div>'),uS=A("<div><!></div>"),dS=A('<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 fS(e,t){ne(t,!0);function n(_){t.clickGuard?.()||t.onActiveChange?.(_)}function r(_,S){S.stopPropagation(),t.onClose?.(_)}let s=q(void 0);const i=le([]);let o=q(null);function l(_,S){if(!t.dragController)return;const y=i[_];y&&t.dragController.onPointerDown(_,S,y)}function c(_){if(!t.dragController||!t.dragController.isDragging||!a(s))return;const S=a(s).getBoundingClientRect(),y=i.filter(b=>!!b).map(b=>b.getBoundingClientRect());k(o,t.dragController.onStripHover(S,_.clientX,_.clientY,y),!0)}function u(){t.dragController&&(k(o,null),t.dragController.onStripLeave())}var d=dS(),f=p(d),h=p(f);ce(h,17,()=>t.labels,Vn,(_,S,y)=>{var b=lS();let T;var M=p(b);{var C=V=>{var j=iS();I(V,j)};$(M,V=>{t.dirty?.[y]&&V(C)})}var w=E(M,2);{var O=V=>{var j=oS(),B=p(j,!0);v(j),z(()=>L(B,t.icons[y])),I(V,j)};$(w,V=>{t.icons?.[y]&&V(O)})}var R=E(w,2),P=p(R,!0);v(R);var D=E(R,2);{var N=V=>{var j=aS();z(()=>be(j,"data-testid",t.tabIds?.[y]?`tab-close-${t.tabIds[y]}`:void 0)),U("click",j,B=>r(y,B)),U("keydown",j,B=>{(B.key==="Enter"||B.key===" ")&&r(y,B)}),I(V,j)};$(D,V=>{t.closable?.[y]&&V(N)})}v(b),tt(b,(V,j)=>i[j]=V,V=>i?.[V],()=>[y]),z(()=>{T=_e(b,1,"tab svelte-1kxcyhf",null,T,{active:t.activeTab===y}),be(b,"aria-selected",t.activeTab===y),L(P,a(S))}),U("click",b,()=>n(y)),U("pointerdown",b,V=>l(y,V)),et("auxclick",b,V=>{V.button===1&&t.closable?.[y]&&r(y,V)}),I(_,b)});var m=E(h,2);{var x=_=>{const S=F(()=>sS(a(o),i,a(s)));var y=ut(),b=fe(y);{var T=M=>{var C=cS();z(()=>nn(C,`left: ${a(S).left??""}px; height: ${a(S).height??""}px; top: ${a(S).top??""}px;`)),I(M,C)};$(b,M=>{a(S)&&M(T)})}I(_,y)};$(m,_=>{a(o)!==null&&t.dragController?.isDragging&&_(x)})}v(f),tt(f,_=>k(s,_),()=>a(s));var g=E(f,2);ce(g,21,()=>t.labels,Vn,(_,S,y)=>{var b=uS();let T;var M=p(b);ni(M,()=>t.body,()=>y),v(b),z(()=>T=_e(b,1,"tab-body-pane svelte-1kxcyhf",null,T,{active:t.activeTab===y})),I(_,b)}),v(g),v(d),U("pointermove",f,c),et("pointerleave",f,u),I(e,d),re()}ue(["pointermove","click","pointerdown","keydown"]);var vS=A('no factory for <code class="svelte-1czj0s8"> </code>',1),hS=A("<em>empty slot</em>"),pS=A('<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>'),mS=A('<div class="slot svelte-1czj0s8"><!></div>');function ql(e,t){ne(t,!0);let n=We(t,"label",3,""),r=q(void 0),s=q(0),i=q(0);const o=F(()=>t.node.viewId?!!Wu(t.node.viewId):!1);Ie(()=>{if(!a(r))return;const d=t.node.slotId,f=a(r),h=la(d,t.node.viewId,n()||t.node.viewId||d);f.appendChild(h);const m=new ResizeObserver(x=>{for(const g of x){const _=g.contentRect;k(s,Math.round(_.width),!0),k(i,Math.round(_.height),!0)}});return m.observe(f),()=>{m.disconnect(),ca(d,f)}});var l=mS(),c=p(l);{var u=d=>{var f=pS(),h=p(f),m=p(h,!0);v(h);var x=E(h,2),g=p(x);{var _=T=>{var M=vS(),C=E(fe(M)),w=p(C,!0);v(C),z(()=>L(w,t.node.viewId)),I(T,M)},S=T=>{var M=hS();I(T,M)};$(g,T=>{t.node.viewId?T(_):T(S,-1)})}v(x);var y=E(x,2),b=p(y);v(y),v(f),z(()=>{L(m,t.node.slotId),L(b,`${a(s)??""} × ${a(i)??""}`)}),I(d,f)};$(c,d=>{a(o)||d(u)})}v(l),tt(l,d=>k(r,d),()=>a(r)),z(()=>{be(l,"data-slot-id",t.node.slotId),be(l,"data-view-id",t.node.viewId??"")}),I(e,l),re()}const pe=le({phase:"idle",source:null,pointerX:0,pointerY:0,target:null});let of=0;function gS(){return performance.now()<of}const Bl=4;let af=0,lf=0;function bS(e,t,n,r,s){if(pe.phase!=="idle")return;const i=s.getBoundingClientRect();pe.phase="pending",pe.source={slotId:e,entry:t,sourceRoot:n,startRect:i,offsetX:r.clientX-i.left,offsetY:r.clientY-i.top},pe.pointerX=r.clientX,pe.pointerY=r.clientY,pe.target=null,af=r.clientX,lf=r.clientY,yS()}function yS(){window.addEventListener("pointermove",cf,!0),window.addEventListener("pointerup",uf,!0),window.addEventListener("pointercancel",df,!0),document.body.style.userSelect="none",document.body.dataset.dragging=""}function _S(){window.removeEventListener("pointermove",cf,!0),window.removeEventListener("pointerup",uf,!0),window.removeEventListener("pointercancel",df,!0),document.body.style.userSelect="",delete document.body.dataset.dragging}function cf(e){if(pe.pointerX=e.clientX,pe.pointerY=e.clientY,pe.phase==="pending"){const t=e.clientX-af,n=e.clientY-lf;t*t+n*n>=Bl*Bl&&(pe.phase="dragging")}}function uf(e){pe.phase==="dragging"&&(wS(),of=performance.now()+50),ff()}function df(e){ff()}function Vl(e){const t=Zt.tree;if(e.kind==="docked")return t.docked;const n=t.floats.find(r=>r.id===e.floatId);return n?n.content:null}function $l(e){if(e.kind!=="float")return;const t=Zt.tree,n=t.floats.findIndex(r=>r.id===e.floatId);n<0||Lu(t.floats[n].content)&&t.floats.splice(n,1)}function wS(){const{source:e,target:t}=pe;if(!e||!t)return;const n=Vl(e.sourceRoot),r=Vl(t.root);if(!n||!r)return;if(t.kind==="strip"){const i=t.tabsNode.tabs.findIndex(o=>o.slotId===e.slotId);if(i>=0){uy(t.tabsNode,i,t.insertIndex),tr(n),r!==n&&tr(r),$l(e.sourceRoot);return}}const s=ui(n,e.slotId);s&&(t.kind==="strip"?cy(t.tabsNode,s,t.insertIndex):Yu(r,t.path,s,t.side),tr(n),r!==n&&tr(r),$l(e.sourceRoot))}function ff(){pe.phase="idle",pe.source=null,pe.target=null,_S()}function ko(e){pe.phase==="dragging"&&(pe.target=e)}function sr(e){pe.phase==="dragging"&&pe.target&&(e&&!e(pe.target)||(pe.target=null))}var kS=A("<div></div>"),SS=A('<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),xS=A("<!> <!>",1),ES=A("<div><!></div>");function Fl(e,t){ne(t,!0);let n=q(void 0),r=q(null);const s=F(()=>pe.phase==="dragging"),i=F(()=>{let m;return t.rootRef.kind==="docked"?m=Zt.root:m=Zt.tree.floats.find(g=>g.id===t.rootRef.floatId)?.content??null,m?Gu(m,t.path):!1});function o(m,x,g){const _=g.left+g.width/2,S=g.top+g.height/2,y=m-_,b=x-S,T=y/g.width,M=b/g.height;return Math.abs(T)>Math.abs(M)?T<0?"left":"right":M<0?"top":"bottom"}function l(m){if(!a(n))return;if(a(i)){a(r)!==null&&(k(r,null),sr(_=>_.kind==="split"&&_.path.join("/")===t.path.join("/")));return}const x=a(n).getBoundingClientRect();if(m.clientX<x.left||m.clientX>x.right||m.clientY<x.top||m.clientY>x.bottom){a(r)!==null&&(k(r,null),sr(_=>_.kind==="split"&&_.path.join("/")===t.path.join("/")));return}const g=o(m.clientX,m.clientY,x);if(g!==a(r)){k(r,g,!0);const _={kind:"split",root:t.rootRef,path:[...t.path],side:g};ko(_)}}function c(){a(r)!==null&&(k(r,null),sr(m=>m.kind==="split"&&m.path.join("/")===t.path.join("/")))}var u=ES();let d;var f=p(u);{var h=m=>{var x=xS(),g=fe(x);{var _=b=>{var T=kS();z(()=>_e(T,1,`quad-highlight quad-${a(r)??""}`,"svelte-re71zu")),I(b,T)};$(g,b=>{a(r)&&b(_)})}var S=E(g,2);{var y=b=>{var T=SS();on(6),I(b,T)};$(S,b=>{a(s)&&b(y)})}I(m,x)};$(f,m=>{a(i)||m(h)})}v(u),tt(u,m=>k(n,m),()=>a(n)),z(()=>d=_e(u,1,"slot-drop-zone svelte-re71zu",null,d,{active:a(s),locked:a(i)})),U("pointermove",u,l),et("pointerleave",u,c),I(e,u),re()}ue(["pointermove"]);var IS=A('<div class="tab-slot-wrapper svelte-1gw9g38"><!> <!></div>'),AS=A('<div class="empty-tabs-custom svelte-1gw9g38"></div>'),CS=A('<div class="empty-tabs-default svelte-1gw9g38"><div class="empty-tabs-drop svelte-1gw9g38"></div></div>'),TS=A('<div class="empty-tabs-placeholder svelte-1gw9g38"><!></div>'),RS=A('<div class="leaf-slot-wrapper svelte-1gw9g38"><!> <!></div>');function Da(e,t){ne(t,!0);let n=We(t,"path",19,()=>[]),r=We(t,"rootRef",19,()=>({kind:"docked"}));const s=F(()=>{let y;return r().kind==="docked"?y=Zt.root:y=Zt.tree.floats.find(T=>T.id===r().floatId)?.content??null,y?qr(y,n()):null});function i(y){return{get isDragging(){return pe.phase==="dragging"},onPointerDown(b,T,M){const C=y.tabs[b];C&&bS(C.slotId,C,r(),T,M)},onStripHover(b,T,M,C){if(M<b.top||M>b.bottom)return sr(R=>R.kind==="strip"&&R.tabsNode===y),null;let w=C.length;for(let R=0;R<C.length;R++){const P=C[R],D=P.left+P.width/2;if(T<D){w=R;break}}const O=pe.source;if(O){const R=y.tabs.findIndex(P=>P.slotId===O.slotId);R>=0&&R<w&&(w-=1)}return ko({kind:"strip",root:r(),tabsNode:y,insertIndex:w}),w},onStripLeave(){sr(b=>b.kind==="strip"&&b.tabsNode===y)}}}function o(y){return y.type==="split"?y:null}function l(y){return y.type==="tabs"?y:null}function c(y){return y.type==="slot"?y:null}function u(y){return y.map(b=>py(b.slotId)||void 0)}function d(y){return y.map(b=>hy(b.slotId)||void 0)}function f(y,b){const T=y[b];T&&ya(T.slotId)}function h(y,b){b(y)}function m(y,b){pe.phase==="dragging"&&ko({kind:"strip",root:r(),tabsNode:b,insertIndex:0})}function x(){sr(y=>y.kind==="strip"&&y.insertIndex===0)}var g=ut(),_=fe(g);{var S=y=>{var b=ut(),T=fe(b);{var M=O=>{const R=(D,N=bt)=>{{let V=F(()=>[...n(),N()]);Da(D,{get rootRef(){return r()},get path(){return a(V)}})}},P=F(()=>o(a(s)));rS(O,{get direction(){return a(P).direction},get sizes(){return a(P).sizes},get pinned(){return a(P).pinned},get collapsed(){return a(P).collapsed},get fixed(){return a(P).fixed},get count(){return a(P).children.length},get pane(){return R},onResize:(D,N)=>a(P).sizes[D]=N,onCollapseToggle:(D,N)=>{a(P).collapsed||(a(P).collapsed=a(P).children.map(()=>!1)),a(P).collapsed[D]=N}})},C=O=>{const R=F(()=>l(a(s)));var P=ut(),D=fe(P);{var N=j=>{const B=(G,Z=bt)=>{const J=F(()=>a(R)?.tabs[Z()]);var te=ut(),ee=fe(te);{var Q=ve=>{var he=IS(),W=p(he);{let me=F(()=>({type:"slot",slotId:a(J).slotId,viewId:a(J).viewId}));ql(W,{get node(){return a(me)},get label(){return a(J).label}})}var oe=E(W,2);Fl(oe,{get rootRef(){return r()},get path(){return n()}}),v(he),I(ve,he)};$(ee,ve=>{a(J)&&ve(Q)})}I(G,te)},Y=F(()=>i(a(R)));{let G=F(()=>a(R).tabs.map(Q=>Q.label)),Z=F(()=>a(R).tabs.map(Q=>Q.icon)),J=F(()=>u(a(R).tabs)),te=F(()=>d(a(R).tabs)),ee=F(()=>a(R).tabs.map(Q=>Q.slotId));fS(j,{get labels(){return a(G)},get icons(){return a(Z)},get activeTab(){return a(R).activeTab},onActiveChange:Q=>a(R).activeTab=Q,get body(){return B},get dragController(){return a(Y)},get clickGuard(){return gS},get closable(){return a(J)},get dirty(){return a(te)},onClose:Q=>f(a(R).tabs,Q),get tabIds(){return a(ee)}})}},V=j=>{var B=TS(),Y=p(B);{var G=J=>{var te=AS();gu(te,(ee,Q)=>h?.(ee,Q),()=>a(R).emptyRenderer),I(J,te)},Z=J=>{var te=CS(),ee=p(te);v(te),U("pointermove",ee,Q=>m(Q,a(R))),et("pointerleave",ee,x),I(J,te)};$(Y,J=>{a(R).emptyRenderer?J(G):J(Z,-1)})}v(B),I(j,B)};$(D,j=>{a(R)&&a(R).tabs.length>0?j(N):a(R)?.persistent&&j(V,1)})}I(O,P)},w=O=>{const R=F(()=>c(a(s)));var P=RS(),D=p(P);ql(D,{get node(){return a(R)}});var N=E(D,2);Fl(N,{get rootRef(){return r()},get path(){return n()}}),v(P),I(O,P)};$(T,O=>{a(s).type==="split"?O(M):a(s).type==="tabs"?O(C,1):O(w,-1)})}I(y,b)};$(_,y=>{a(s)&&y(S)})}I(e,g),re()}ue(["pointermove"]);var DS=A('<span class="drag-preview-icon svelte-133fiip"> </span>'),PS=A('<div class="drag-preview svelte-133fiip"><!> <span class="drag-preview-label svelte-133fiip"> </span></div>');function MS(e,t){ne(t,!0);const n=F(()=>pe.phase==="dragging"&&!!pe.source),r=F(()=>pe.source?pe.pointerX-pe.source.offsetX:0),s=F(()=>pe.source?pe.pointerY-pe.source.offsetY:0),i=F(()=>pe.source?.startRect.width??0),o=F(()=>pe.source?.startRect.height??0),l=F(()=>pe.source?.entry.label??""),c=F(()=>pe.source?.entry.icon);var u=ut(),d=fe(u);{var f=h=>{var m=PS(),x=p(m);{var g=y=>{var b=DS(),T=p(b,!0);v(b),z(()=>L(T,a(c))),I(y,b)};$(x,y=>{a(c)&&y(g)})}var _=E(x,2),S=p(_,!0);v(_),v(m),z(()=>{nn(m,`left: ${a(r)??""}px; top: ${a(s)??""}px; width: ${a(i)??""}px; height: ${a(o)??""}px;`),L(S,a(l))}),I(h,m)};$(d,h=>{a(n)&&h(f)})}I(e,u),re()}const ir=new Map;let $s=!1;function vf(e){if(ir.size===0)return;const t=e.target;if(!t)return;const n=Array.from(ir.keys());for(const r of n){const s=ir.get(r);s&&(s.contains(t)||Mt.close(r))}}function OS(){$s||typeof document>"u"||(document.addEventListener("pointerdown",vf,!0),$s=!0)}function LS(){$s&&(ir.size>0||(document.removeEventListener("pointerdown",vf,!0),$s=!1))}function NS(e,t){ir.set(e,t),OS()}function jS(e){ir.delete(e),LS()}var zS=A('<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>'),qS=A('<div class="sh3-float-frame svelte-1p734al" role="dialog" tabindex="-1"><!> <div class="sh3-float-body svelte-1p734al"><!></div></div>');function BS(e,t){ne(t,!0);const n=We(t,"entry",7);let r=q(!1),s={x:0,y:0},i=q(void 0);Ie(()=>{if(n().dismissable&&a(i))return NS(n().id,a(i)),()=>jS(n().id)});function o(S){if(S.button!==0||S.target.closest(".sh3-float-close"))return;S.currentTarget.setPointerCapture(S.pointerId),k(r,!0),s={x:S.clientX-n().position.x,y:S.clientY-n().position.y},Mt.focus(n().id)}function l(S){a(r)&&(n().position.x=S.clientX-s.x,n().position.y=S.clientY-s.y)}function c(S){if(!a(r))return;k(r,!1);const y=S.currentTarget;y.hasPointerCapture(S.pointerId)&&y.releasePointerCapture(S.pointerId)}function u(){Mt.focus(n().id)}function d(S){S.stopPropagation(),Mt.close(n().id)}var f=qS();let h;var m=p(f);{var x=S=>{var y=zS(),b=p(y),T=p(b,!0);v(b);var M=E(b,2);v(y),z(()=>L(T,n().title)),U("pointerdown",y,o),U("pointermove",y,l),U("pointerup",y,c),et("pointercancel",y,c),U("click",M,d),I(S,y)};$(m,S=>{n().title&&S(x)})}var g=E(m,2),_=p(g);{let S=F(()=>({kind:"float",floatId:n().id}));Da(_,{get rootRef(){return a(S)},path:[]})}v(g),v(f),tt(f,S=>k(i,S),()=>a(i)),z(()=>{be(f,"aria-label",n().title??"Float panel"),h=nn(f,"",h,{left:`${n().position.x??""}px`,top:`${n().position.y??""}px`,width:`${n().size.w??""}px`,height:`${n().size.h??""}px`})}),U("click",f,u),I(e,f),re()}ue(["click","pointerdown","pointermove","pointerup"]);var VS=A('<div class="sh3-float-layer svelte-1rzcset"></div>');function $S(e,t){ne(t,!0);const n=F(()=>Zt.floats);var r=VS();ce(r,21,()=>a(n),s=>s.id,(s,i)=>{BS(s,{get entry(){return a(i)}})}),v(r),I(e,r),re()}var FS=A('<div class="guest-signin-error svelte-pymkh"> </div>'),US=A('<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>'),HS=A('<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),KS=A('<div class="guest-banner-slot"><!></div>');function WS(e,t){ne(t,!0);let n=q(!1),r=q(""),s=q(""),i=q(null),o=q(!1);async function l(){if(!a(r).trim()||!a(s).trim()||a(o))return;k(o,!0),k(i,null);const h=await _d(a(r).trim(),a(s).trim());k(o,!1),h.ok?k(n,!1):k(i,h.error,!0)}var c=KS(),u=p(c);{var d=h=>{var m=HS(),x=fe(m),g=E(p(x),2);v(x);var _=E(x,2);{var S=y=>{var b=US(),T=p(b),M=p(T),C=p(M);Se(C);var w=E(C,2);Se(w);var O=E(w,2),R=p(O),P=p(R,!0);v(R);var D=E(R,2);v(O),v(M);var N=E(M,2);{var V=j=>{var B=FS(),Y=p(B,!0);v(B),z(()=>L(Y,a(i))),I(j,B)};$(N,j=>{a(i)&&j(V)})}v(T),v(b),z(j=>{C.disabled=a(o),w.disabled=a(o),R.disabled=j,L(P,a(o)?"Signing in...":"Sign in")},[()=>a(o)||!a(r).trim()||!a(s).trim()]),et("submit",M,j=>{j.preventDefault(),l()}),Me(C,()=>a(r),j=>k(r,j)),Me(w,()=>a(s),j=>k(s,j)),U("click",D,()=>{k(n,!1),k(i,null)}),I(y,b)};$(_,y=>{a(n)&&y(S)})}U("click",g,()=>{k(n,!0)}),I(h,m)},f=F(()=>wd());$(u,h=>{a(f)&&h(d)})}v(c),I(e,c),re()}ue(["click"]);var YS=A('<code class="sh3-consent-scope svelte-14me5sj"> </code>'),GS=A('<dt class="svelte-14me5sj">Peer</dt> <dd class="svelte-14me5sj"> </dd>',1),XS=A('<dt class="svelte-14me5sj">Expires in</dt> <dd class="svelte-14me5sj"> </dd>',1),JS=A('<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 ZS(e,t){ne(t,!0);let n=q(null);Ie(()=>Dd(u=>{k(n,u,!0)}));function r(){a(n)&&(bo(a(n).requestId,!0),k(n,null))}function s(){a(n)&&(bo(a(n).requestId,!1),k(n,null))}var i=ut(),o=fe(i);{var l=c=>{var u=JS(),d=p(u),f=p(d),h=p(f),m=p(h,!0);v(h),on(),v(f);var x=E(f,2),g=E(p(x),2),_=p(g,!0);v(g);var S=E(g,4);ce(S,20,()=>a(n).scopes,R=>R,(R,P)=>{var D=YS(),N=p(D,!0);v(D),z(()=>L(N,P)),I(R,D)}),v(S);var y=E(S,2);{var b=R=>{var P=GS(),D=E(fe(P),2),N=p(D);v(D),z(()=>L(N,`${a(n).peerRole??"—"??""}${a(n).peerId?` · ${a(n).peerId}`:""}`)),I(R,P)};$(y,R=>{(a(n).peerRole||a(n).peerId)&&R(b)})}var T=E(y,2);{var M=R=>{var P=XS(),D=E(fe(P),2),N=p(D);v(D),z(V=>L(N,`${V??""}s`),[()=>Math.round(a(n).expiresIn/1e3)]),I(R,P)};$(T,R=>{a(n).expiresIn&&R(M)})}v(x);var C=E(x,2),w=p(C);pr(w,!0);var O=E(w,2);v(C),v(d),v(u),z(()=>{L(m,a(n).shardId),L(_,a(n).label)}),U("click",w,s),U("click",O,r),I(c,u)};$(o,c=>{a(n)&&c(l)})}I(e,i),re()}ue(["click"]);var QS=A('<span class="sh3-brand svelte-18lk809">SH3</span>'),ex=A('<span class="sh3-brand sh3-brand-app svelte-18lk809"> </span>'),tx=A('<span class="sh3-brand svelte-18lk809">SH3</span> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <button type="button" class="sh3-brand-crumb svelte-18lk809"> </button>',1),nx=A('<div class="sh3-brand-slot svelte-18lk809"><!></div>');function rx(e,t){ne(t,!0);const n=F(()=>$t().activeAppId),r=F(yy),s=F(()=>a(n)?_n(a(n))?.manifest.label??a(n):null),i=F(()=>a(r)?_n(a(r))?.manifest.label??a(r):null),o=F(()=>a(n)?"app":a(r)?"breadcrumb":"brand");function l(){a(r)&&$n(a(r))}var c=nx(),u=p(c);{var d=m=>{var x=QS();I(m,x)},f=m=>{var x=ex(),g=p(x,!0);v(x),z(()=>L(g,a(s))),I(m,x)},h=m=>{var x=tx(),g=E(fe(x),4),_=p(g,!0);v(g),z(()=>L(_,a(i))),U("click",g,l),I(m,x)};$(u,m=>{a(o)==="brand"?m(d):a(o)==="app"?m(f,1):m(h,-1)})}v(c),I(e,c),re()}ue(["click"]);const sx=Object.freeze([{id:"file",label:"File"},{id:"edit",label:"Edit"},{id:"view",label:"View"},{id:"window",label:"Window"},{id:"help",label:"Help"}]);function Fs(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function ix(e,t){if(e==null)return[];if(t==null)return sx.slice();const n=t.map((r,s)=>({c:r,i:s}));return n.sort((r,s)=>{const i=r.c.order,o=s.c.order;return i!=null&&o!=null?i-o||r.i-s.i:i!=null?-1:o!=null?1:r.i-s.i}),n.map(r=>r.c)}function ox(e,t,n){const r=[],s=new Set;for(const i of e)i.action.menuItem!==n||i.action.submenuOf!==void 0||s.has(i.action.id)||!rs(i.action.scope,t,i.ownerShardId)||(s.add(i.action.id),r.push({id:i.action.id,label:i.action.label,shortcut:ns(i.action,t.bindings,t.platform),group:i.action.group??"",icon:i.action.icon,checked:Fs(i.action.checked),disabled:Fs(i.action.disabled),submenu:i.action.submenu===!0}));return r}function ax(e,t,n){const r=[],s=new Set;for(const i of e)i.action.submenuOf!==n||s.has(i.action.id)||!rs(i.action.scope,t,i.ownerShardId)||(s.add(i.action.id),r.push({id:i.action.id,label:i.action.label,shortcut:ns(i.action,t.bindings,t.platform),group:i.action.group??"",icon:i.action.icon,checked:Fs(i.action.checked),disabled:Fs(i.action.disabled),submenu:i.action.submenu===!0}));return r}var lx=A('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),cx=A('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),ux=A('<button type="button" class="sh3-menubar-button svelte-bke3dt"><!> <span class="sh3-menubar-label"> </span> <!></button>');function dx(e,t){ne(t,!0);let n=q(void 0);function r(g){const _=new Map,S=[];for(const y of g){const b=y.group||"";_.has(b)||(_.set(b,[]),S.push(b)),_.get(b).push(y)}return S.map(y=>({id:`group:${y||"_default"}`,items:_.get(y)}))}function s(g,_,S){const y=Ze().find(b=>b.action.id===g);if(!(!y||typeof y.action.run!="function")){try{y.action.run({action:{id:g,label:y.action.label},appId:_.activeAppId,viewId:_.focusedViewId??void 0,selection:_.selection??void 0,invokedVia:"palette",dispatch:()=>{}})}catch(b){console.error(`[sh3] menu-bar action "${g}" threw:`,b)}S.close()}}function i(g,_,S){const y=document.querySelector(".sh3-popup-host");if(!y)return;const b=document.createElement("div");b.className="sh3-popup-submenu",b.style.position="absolute",b.style.pointerEvents="auto";const M=(y.querySelector(".sh3-ctx-active")??y).getBoundingClientRect();b.style.left=`${M.right+2}px`,b.style.top=`${M.top}px`,y.appendChild(b);const C=ax(Ze(),_,g),w=Oe(qs,{target:b,props:{sections:r(C),onInvoke:O=>s(O,_,S),onDismiss:()=>{Fe(w),b.remove()}}})}function o(){if(!a(n))return;const g=$t(),_=ao.show(qs,{anchor:a(n),placement:"bottom-start"},{sections:r(t.items),onInvoke:S=>{const y=Ze().find(b=>b.action.id===S);if(y){if(y.action.submenu===!0){i(S,g,_);return}s(S,g,_)}},onDismiss:()=>ao.close()})}const l=F(()=>t.container.iconPosition??"before");var c=ux(),u=p(c);{var d=g=>{var _=lx();z(()=>be(_,"data-icon",t.container.icon)),I(g,_)};$(u,g=>{t.container.icon&&a(l)==="before"&&g(d)})}var f=E(u,2),h=p(f,!0);v(f);var m=E(f,2);{var x=g=>{var _=cx();z(()=>be(_,"data-icon",t.container.icon)),I(g,_)};$(m,g=>{t.container.icon&&a(l)==="after"&&g(x)})}v(c),tt(c,g=>k(n,g),()=>a(n)),z(()=>L(h,t.container.label)),U("click",c,o),I(e,c),re()}ue(["click"]);var fx=A('<div class="sh3-menubar svelte-7gc0wa" role="menubar"></div>');function vx(e,t){ne(t,!0);const n=F($t),r=F(()=>a(n).activeAppId),s=F(()=>{if(a(r))return _n(a(r))?.manifest.menus}),i=F(()=>ix(a(r),a(s))),o=F(()=>{const c=[],u=Ze();for(const d of a(i)){const f=ox(u,a(n),d.id);f.length>0&&c.push({container:d,items:f})}return c});var l=fx();ce(l,21,()=>a(o),({container:c,items:u})=>c.id,(c,u)=>{let d=()=>a(u).container,f=()=>a(u).items;dx(c,{get container(){return d()},get items(){return f()}})}),v(l),I(e,l),re()}var hx=A('<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>'),px=A('<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>'),mx=A('<div class="shell-overlay-root svelte-187fra4"><!></div>'),gx=A('<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> <!> <!> <!></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 bx(e,t){ne(t,!0);const n=F(mo),r=F(mi),s=F(dn),i=F(()=>rd()==="home"),o=[{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=le({});Ie(()=>{for(const{name:C}of o){const w=l[C];w&&mg(C,w)}return()=>{for(const{name:C}of o)gg(C)}}),Ie(()=>{const C=Zt.tree;return qg(C.floats,()=>({w:window.innerWidth,h:window.innerHeight})),()=>Bg()}),Ie(()=>{Zt.tree,Ry()}),Ie(()=>mo()?M_():void 0);var c=gx(),u=p(c),d=p(u),f=p(d),h=p(f);v(f),v(d);var m=E(d,2);rx(m,{});var x=E(m,2);vx(x,{});var g=E(x,2);{var _=C=>{var w=px(),O=p(w),R=p(O,!0);v(O);var P=E(O,2),D=p(P,!0);v(P);var N=E(P,2);{var V=B=>{var Y=hx(),G=p(Y),Z=p(G);v(G),v(Y),z(()=>be(Z,"href",`${_o}#log-out`)),U("click",Y,()=>b_()),I(B,Y)},j=F(()=>!__());$(N,B=>{a(j)&&B(V)})}v(w),z(()=>{L(R,a(r).displayName),L(D,a(s)?"admin":"user")}),I(C,w)};$(g,C=>{a(n)&&a(r)&&C(_)})}v(u);var S=E(u,2);WS(S,{});var y=E(S,2),b=p(y);Da(b,{}),v(y);var T=E(y,4);ce(T,21,()=>o,({layer:C,name:w})=>C,(C,w)=>{let O=()=>a(w).layer,R=()=>a(w).name;var P=mx(),D=p(P);{var N=j=>{$S(j,{})},V=j=>{MS(j,{})};$(D,j=>{R()==="floating"?j(N):R()==="drag-preview"&&j(V,1)})}v(P),tt(P,(j,B)=>l[B]=j,j=>l?.[j],()=>[R()]),z(()=>{be(P,"data-shell-overlay",R()),be(P,"data-shell-layer",O()),nn(P,`z-index: var(--shell-z-layer-${O()??""});`)}),I(C,P)}),v(T);var M=E(T,2);ZS(M,{}),v(c),z(()=>{d.disabled=a(i),be(h,"href",`${_o}#house`)}),U("click",d,()=>Nd()),I(e,c),re()}ue(["click"]);async function yx(){try{const{TauriStoreBackend:e}=await jd(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:Gl}}}var _x=A('<button type="button" class="signin-link svelte-lh4k15">Create an account</button>'),wx=A('<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),kx=A('<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),Sx=A('<div class="signin-error svelte-lh4k15"> </div>'),xx=A('<div class="signin-wall svelte-lh4k15"><div class="signin-card svelte-lh4k15"><h1 class="signin-brand svelte-lh4k15">SH3</h1> <!> <!></div></div>');function Ex(e,t){ne(t,!0);let n=q("login"),r=q(""),s=q(""),i=q(""),o=q(null),l=q(!1);async function c(){if(!a(r).trim()||!a(s).trim()||a(l))return;k(l,!0),k(o,null);const y=await _d(a(r).trim(),a(s).trim());k(l,!1),y.ok?t.onSuccess():k(o,y.error,!0)}async function u(){if(!a(r).trim()||!a(s).trim()||a(l))return;k(l,!0),k(o,null);const y=await g_(a(r).trim(),a(s).trim(),a(i).trim()||void 0);k(l,!1),y.ok?t.onSuccess():k(o,y.error,!0)}function d(y){k(n,y,!0),k(o,null)}var f=xx(),h=p(f),m=E(p(h),2);{var x=y=>{var b=wx(),T=fe(b),M=p(T);Se(M);var C=E(M,2);Se(C);var w=E(C,2),O=p(w,!0);v(w),v(T);var R=E(T,2);{var P=D=>{var N=_x();U("click",N,()=>d("register")),I(D,N)};$(R,D=>{t.selfRegistration&&D(P)})}z(D=>{M.disabled=a(l),C.disabled=a(l),w.disabled=D,L(O,a(l)?"Signing in...":"Sign in")},[()=>a(l)||!a(r).trim()||!a(s).trim()]),et("submit",T,D=>{D.preventDefault(),c()}),Me(M,()=>a(r),D=>k(r,D)),Me(C,()=>a(s),D=>k(s,D)),I(y,b)},g=y=>{var b=kx(),T=fe(b),M=p(T);Se(M);var C=E(M,2);Se(C);var w=E(C,2);Se(w);var O=E(w,2),R=p(O,!0);v(O),v(T);var P=E(T,2);z(D=>{M.disabled=a(l),C.disabled=a(l),w.disabled=a(l),O.disabled=D,L(R,a(l)?"Creating...":"Create account")},[()=>a(l)||!a(r).trim()||!a(s).trim()]),et("submit",T,D=>{D.preventDefault(),u()}),Me(M,()=>a(r),D=>k(r,D)),Me(C,()=>a(i),D=>k(i,D)),Me(w,()=>a(s),D=>k(s,D)),U("click",P,()=>d("login")),I(y,b)};$(m,y=>{a(n)==="login"?y(x):y(g,-1)})}var _=E(m,2);{var S=y=>{var b=Sx(),T=p(b,!0);v(b),z(()=>L(T,a(o))),I(y,b)};$(_,y=>{a(o)&&y(S)})}v(h),v(f),I(e,f),re()}ue(["click"]);async function Ix(e){const t=e?.serverUrl??"",n=await yx();n.backends&&(ul("workspace",n.backends.workspace),ul("user",n.backends.user)),n.localOwner&&y_(),kd(t),Q_();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 o=await fetch(`${t}/api/boot`,{credentials:"include"});o.ok&&(s=await o.json())}catch{}if(n.localOwner)Bi("local");else if(s){Cl(t,s),Bi(s.tenantId);const{auth:o,session:l}=s;if(!l&&o.required&&!o.guestAllowed){await Ax(r,s);const c=await fetch(`${t}/api/boot`,{credentials:"include"});c.ok&&(s=await c.json(),Cl(t,s),Bi(s.tenantId))}}if(e?.discoveredPackages?.length)for(const o of e.discoveredPackages)try{const l=await fetch(o.bundleUrl);if(!l.ok){console.warn(`[sh3] Failed to fetch discovered package "${o.id}": HTTP ${l.status}`);continue}const c=await l.arrayBuffer(),u=await os(c);Aa(u,{version:o.version,sourceRegistry:o.sourceRegistry??"",contractVersion:o.contractVersion??""}),console.log(`[sh3] Loaded discovered package: ${o.id}`)}catch(l){console.warn(`[sh3] Failed to load discovered package "${o.id}":`,l)}if(e?.shards)for(const o of e.shards)Y0(o);if(e?.apps)for(const o of e.apps)da(o);const i={};e?.excludeShards&&(i.excludeShards=e.excludeShards),await X0(i),gd(),Oe(bx,{target:r})}function Ax(e,t){return new Promise(n=>{const r=Oe(Ex,{target:e,props:{selfRegistration:t.auth.selfRegistration,onSuccess:()=>{Fe(r),n()}}})})}const Pa=window.location.origin;kd(Pa);h_(new l_(Pa));let hf=[];try{const e=await fetch("/api/packages");e.ok&&(hf=await e.json())}catch{}await Ix({discoveredPackages:hf,serverUrl:Pa});
18
+ //# sourceMappingURL=index-CSNbG7si.js.map