sh3-server 0.11.7 → 0.12.0

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