sh3-server 0.11.6 → 0.11.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/assets/{icons-CnAqUqbR.svg → icons-2eVU8BA9.svg} +5 -0
- package/app/assets/index-BXP4ACTa.css +1 -0
- package/app/assets/index-D9SiE54u.js +18 -0
- package/app/assets/index-D9SiE54u.js.map +1 -0
- package/app/index.html +2 -2
- package/dist/doc-store/store.d.ts +1 -0
- package/dist/doc-store/store.js +46 -2
- package/dist/routes/docs.js +37 -12
- package/package.json +1 -1
- package/app/assets/index-CaqIUyZM.js +0 -18
- package/app/assets/index-CaqIUyZM.js.map +0 -1
- package/app/assets/index-DhXa8-tG.css +0 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const 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 Af=1,Cf=2,Vl=4,Tf=8,Rf=16,Df=1,$l=4,Pf=8,Mf=16,Of=1,Lf=2,Nf=4,So=1,Fl=2,jf=4,zf=8,Fs="[",Us="[!",La="[?",Hs="]",Mn={},Ce=Symbol(),gt=Symbol("filename"),Wn=Symbol("hmr"),Ul="http://www.w3.org/1999/xhtml",Ur="http://www.w3.org/2000/svg",xo="http://www.w3.org/1998/Math/MathML",Hl="@attach",Kl=!1;var vr=Array.isArray,qf=Array.prototype.indexOf,or=Array.prototype.includes,Ks=Array.from,Es=Object.keys,On=Object.defineProperty,qt=Object.getOwnPropertyDescriptor,Wl=Object.getOwnPropertyDescriptors,Yl=Object.prototype,Bf=Array.prototype,Ws=Object.getPrototypeOf,Na=Object.isExtensible,Vf=Object.prototype.hasOwnProperty;function Yn(e){return typeof e=="function"}const bt=()=>{};function ja(e){return typeof e?.then=="function"}function $f(e){return e()}function Fi(e){for(var t=0;t<e.length;t++)e[t]()}function Gl(){var e,t,n=new Promise((r,s)=>{e=r,t=s});return{promise:n,resolve:e,reject:t}}function Ff(e,t,n=!1){return e===void 0?n?t():t:e}function Xl(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 Uf(e,t){var n={};for(var r in e)t.includes(r)||(n[r]=e[r]);for(var s of Object.getOwnPropertySymbols(e))Object.propertyIsEnumerable.call(e,s)&&!t.includes(s)&&(n[s]=e[s]);return n}const He=2,Ln=4,Hr=8,Eo=1<<24,Bt=16,$t=32,an=64,Ui=128,Rt=512,ze=1024,Ue=2048,Ft=4096,rt=8192,dt=16384,cn=32768,Hi=1<<25,Ut=65536,Or=1<<17,Jl=1<<18,wn=1<<19,Zl=1<<20,Yt=1<<25,Nn=65536,Ki=1<<21,ar=1<<22,pn=1<<23,Je=Symbol("$state"),Ys=Symbol("legacy props"),Hf=Symbol(""),Kf=Symbol("proxy path"),Wf=Symbol("hmr anchor"),Kt=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"),Ql=1,Kr=3,un=8,ec=11;function tc(e){throw new Error("https://svelte.dev/e/experimental_async_required")}function Yf(){throw new Error("https://svelte.dev/e/invalid_default_snippet")}function za(){throw new Error("https://svelte.dev/e/invalid_snippet_arguments")}function hr(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function Gf(){throw new Error("https://svelte.dev/e/missing_context")}function Xf(){throw new Error("https://svelte.dev/e/snippet_without_render_tag")}function Jf(e){throw new Error("https://svelte.dev/e/store_invalid_shape")}function Zf(){throw new Error("https://svelte.dev/e/svelte_element_invalid_this_value")}function Qf(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function ev(e,t){throw new Error("https://svelte.dev/e/component_api_changed")}function tv(e,t){throw new Error("https://svelte.dev/e/component_api_invalid_new")}function nv(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function rv(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function sv(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function iv(e){throw new Error("https://svelte.dev/e/effect_orphan")}function ov(){throw new Error("https://svelte.dev/e/effect_pending_outside_reaction")}function av(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function lv(){throw new Error("https://svelte.dev/e/fork_discarded")}function cv(){throw new Error("https://svelte.dev/e/fork_timing")}function uv(){throw new Error("https://svelte.dev/e/get_abort_signal_outside_reaction")}function dv(){throw new Error("https://svelte.dev/e/hydration_failed")}function nc(e){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}function fv(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function vv(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function hv(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function pv(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function mv(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}function gv(e,t){console.warn("https://svelte.dev/e/assignment_value_stale")}function bv(e,t){console.warn("https://svelte.dev/e/binding_property_non_reactive")}function yv(e){console.warn("https://svelte.dev/e/console_log_state")}function _v(){console.warn("https://svelte.dev/e/derived_inert")}function wv(e,t){console.warn("https://svelte.dev/e/event_handler_invalid")}function kv(e){console.warn("https://svelte.dev/e/hydratable_missing_but_expected")}function Wr(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function Sv(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_binding")}function xv(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_mutation")}function Ev(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function rc(e){console.warn("https://svelte.dev/e/state_proxy_equality_mismatch")}function Iv(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let X=!1;function xe(e){X=e}let se;function we(e){if(e===null)throw Wr(),Mn;return se=e}function it(){return we(wt(se))}function v(e){if(X){if(wt(se)!==null)throw Wr(),Mn;se=e}}function Av(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===Hs){if(t===0)return n;t-=1}else(r===Fs||r===Us||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var s=wt(n);e&&n.remove(),n=s}}function Io(e){if(!e||e.nodeType!==un)throw Wr(),Mn;return e.data}function sc(e){return e===this.v}function ic(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function oc(e){return!ic(e,this.v)}let Cv=!1;function Tv(e){console.warn("https://svelte.dev/e/dynamic_void_element_content")}const Rv=[];function zn(e,t=!1,n=!1){return fs(e,new Map,"",Rv,null,n)}function fs(e,t,n,r,s=null,i=!1){if(typeof e=="object"&&e!==null){var o=t.get(e);if(o!==void 0)return o;if(e instanceof Map)return new Map(e);if(e instanceof Set)return new Set(e);if(vr(e)){var l=Array(e.length);t.set(e,l),s!==null&&t.set(s,l);for(var c=0;c<e.length;c+=1){var u=e[c];c in e&&(l[c]=fs(u,t,n,r,null,i))}return l}if(Ws(e)===Yl){l={},t.set(e,l),s!==null&&t.set(s,l);for(var d of Object.keys(e))l[d]=fs(e[d],t,n,r,null,i);return l}if(e instanceof Date)return structuredClone(e);if(typeof e.toJSON=="function"&&!i)return fs(e.toJSON(),t,n,r,e)}if(e instanceof EventTarget)return e;try{return structuredClone(e)}catch{return e}}let Hn=null;function ac(e,t){const n=e.v;if(n===Ce)return;const r=Dv(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)ac(u)}if(e.created&&console.log(e.created),i&&e.updated)for(const c of e.updated.values())c.error&&console.log(c.error);if(t)for(var l of t.traces)console.log(l);console.groupEnd()}function Dv(e){return e.f&(He|ar)?"$derived":e.label?.startsWith("$")?"store":"$state"}function Pv(e,t){var n=Hn;try{Hn={entries:new Map,reaction:de};var r=performance.now(),s=t(),i=(performance.now()-r).toFixed(2),o=Ee(e);if(!Zr())console.log(`${o} %cran outside of an effect (${i}ms)`,"color: grey");else if(Hn.entries.size===0)console.log(`${o} %cno reactive dependencies (${i}ms)`,"color: grey");else{console.group(`${o} %c(${i}ms)`,"color: grey");var l=Hn.entries;Ee(()=>{for(const[c,u]of l)ac(c,u)}),Hn=null,console.groupEnd()}return s}finally{Hn=n}}function Mv(e,t){return e.label=t,lc(e.v,t),e}function lc(e,t){return e?.[Kf]?.(t),e}function Ov(e){const t=new Error,n=Lv();return n.length===0?null:(n.unshift(`
|
|
2
|
+
`),On(t,"stack",{value:n.join(`
|
|
3
|
+
`)}),On(t,"name",{value:e}),t)}function Lv(){const e=Error.stackTraceLimit;Error.stackTraceLimit=1/0;const t=new Error().stack;if(Error.stackTraceLimit=e,!t)return[];const n=t.split(`
|
|
4
|
+
`),r=[];for(let s=0;s<n.length;s++){const i=n[s],o=i.replaceAll("\\","/");if(i.trim()!=="Error"){if(i.includes("validate_each_keys"))return[];o.includes("svelte/src/internal")||o.includes("node_modules/.vite")||r.push(i)}}return r}let ye=null;function lr(e){ye=e}let vs=null;function Nv(e,t,n,r,s,i){const o=vs;vs={type:t,file:n[gt],line:r,column:s,parent:o,...i};try{return e()}finally{vs=o}}let Ao=null;function qa(e){Ao=e}function jv(){const e={};return[()=>(cc(e)||Gf(),Co(e)),t=>To(e,t)]}function Co(e){return Gs().get(e)}function To(e,t){return Gs().set(e,t),t}function cc(e){return Gs().has(e)}function zv(){return Gs()}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)jc(r)}return e!==void 0&&(t.x=e),t.i=!0,ye=t.p,e??{}}function uc(){return!0}function Gs(e){return ye===null&&hr(),ye.c??=new Map(qv(ye)||void 0)}function qv(e){let t=e.p;for(;t!==null;){const n=t.c;if(n!==null)return n;t=t.p}return null}let In=[];function dc(){var e=In;In=[],Fi(e)}function st(e){if(In.length===0&&!nr){var t=In;queueMicrotask(()=>{t===In&&dc()})}In.push(e)}function Bv(){for(;In.length>0;)dc()}function fc(e){var t=ie;if(t===null)return de.f|=pn,e;if(!(t.f&cn)&&!(t.f&Ln))throw e;Gt(e,t)}function Gt(e,t){for(;t!==null;){if(t.f&Ui){if(!(t.f&cn))throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const Vv=-7169;function Re(e,t){e.f=e.f&Vv|t}function Ro(e){e.f&Rt||e.deps===null?Re(e,ze):Re(e,Ft)}function vc(e){if(e!==null)for(const t of e)!(t.f&He)||!(t.f&Nn)||(t.f^=Nn,vc(t.deps))}function hc(e,t,n){e.f&Ue?t.add(e):e.f&Ft&&n.add(e),vc(e.deps),Re(e,ze)}function pc(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 $v(e){let t;return pc(e,n=>t=n)(),t}let Wi=!1,Ar=!1,Yi=Symbol();function Fv(e,t,n){const r=n[t]??={store:null,source:Zs(void 0),unsubscribe:bt};if(r.store!==e&&!(Yi in n))if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=bt;else{var s=!0;r.unsubscribe=pc(e,i=>{s?r.source.v=i:k(r.source,i)}),s=!1}return e&&Yi in n?$v(e):a(r.source)}function Uv(e,t,n){let r=n[t];return r&&r.store!==e&&(r.unsubscribe(),r.unsubscribe=bt),e}function mc(e,t){return Xs(e,t),t}function Hv(e,t){var n=e[t];n.store!==null&&mc(n.store,n.source.v)}function Kv(){const e={};function t(){St(()=>{for(var n in e)e[n].unsubscribe();On(e,Yi,{enumerable:!1,value:!0})})}return[e,t]}function Xs(e,t){Wi=!0;try{e.set(t)}finally{Wi=!1}}function Wv(e,t,n){return Xs(e,n),t}function Yv(e,t,n=1){return Xs(e,t+n),t}function Gv(e,t,n=1){const r=t+n;return Xs(e,r),r}function Xv(){Ar=!0}function gc(e){var t=Ar;try{return Ar=!1,[e(),Ar]}finally{Ar=t}}const rn=new Set;let ae=null,nt=null,Gi=null,nr=!1,Ti=!1,Zn=null,hs=null;var Ba=0;let Jv=1;class Ot{id=Jv++;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,Ft),n(s)}this.#f.add(t)}#p(){if(Ba++>1e3&&(rn.delete(this),Zv()),!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,Ft),this.schedule(l)}const t=this.#r;this.#r=[],this.apply();var n=Zn=[],r=[],s=hs=[];for(const l of t)try{this.#g(l,n,r)}catch(c){throw wc(l),c}if(ae=null,s.length>0){var i=Ot.ensure();for(const l of s)i.schedule(l)}if(Zn=null,hs=null,this.#d()||this.#b()){this.#m(r),this.#m(n);for(const[l,c]of this.#c)_c(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(),Va(r),Va(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&($t|an))!==0,l=o&&(i&ze)!==0,c=l||(i&rt)!==0||this.#c.has(s);if(!c&&s.fn!==null){o?s.f^=ze:i&Ln?n.push(s):mr(s)&&(i&Bt&&this.#u.add(s),Bn(s));var u=s.first;if(u!==null){s=u;continue}}for(;s!==null;){var d=s.next;if(d!==null){s=d;break}s=s.parent}}}#m(t){for(var n=0;n<t.length;n+=1)hc(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&pn||(this.current.set(t,[n,r]),nt?.set(t,n)),this.is_fork||(t.v=n)}activate(){ae=this}deactivate(){ae=null,nt=null}flush(){try{Ti=!0,ae=this,this.#p()}finally{Ba=0,Gi=null,Zn=null,hs=null,Ti=!1,ae=null,nt=null,Rn.clear()}}discard(){for(const t of this.#t)t(this);this.#t.clear(),this.#n.clear(),rn.delete(this)}register_created_effect(t){this.#a.push(t)}#y(){for(const d of rn){var t=d.id<this.id,n=[];for(const[f,[h,m]]of this.current){if(d.current.has(f)){var r=d.current.get(f)[0];if(t&&h!==r)d.current.set(f,[h,m]);else continue}n.push(f)}var s=[...d.current.keys()].filter(f=>!this.current.has(f));if(s.length===0)t&&d.discard();else if(n.length>0){if(t)for(const f of this.#f)d.unskip_effect(f,h=>{h.f&(Bt|ar)?d.schedule(h):d.#m([h])});d.activate();var i=new Set,o=new Map;for(var l of n)bc(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&(dt|rt|Or))&&Do(f,c,o)&&(f.f&(ar|Bt)?(Re(f,Ue),d.schedule(f)):d.#l.add(f));if(d.#r.length>0){d.apply();for(var u of d.#r)d.#g(u,[],[]);d.#r=[]}d.deactivate()}}for(const d of rn)d.#v.has(this)&&(d.#v.delete(this),d.#v.size===0&&!d.#d()&&(d.activate(),d.#p()))}increment(t,n){let r=this.#i.get(n)??0;if(this.#i.set(n,r+1),t){let s=this.#s.get(n)??0;this.#s.set(n,s+1)}}decrement(t,n,r){let s=this.#i.get(n)??0;if(s===1?this.#i.delete(n):this.#i.set(n,s-1),t){let i=this.#s.get(n)??0;i===1?this.#s.delete(n):this.#s.set(n,i-1)}this.#h||r||(this.#h=!0,st(()=>{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??=Gl()).promise}static ensure(){if(ae===null){const t=ae=new Ot;Ti||(rn.add(ae),nr||st(()=>{ae===t&&t.flush()}))}return ae}apply(){{nt=null;return}}schedule(t){if(Gi=t,t.b?.is_pending&&t.f&(Ln|Hr|Eo)&&!(t.f&cn)){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var r=n.f;if(Zn!==null&&n===ie&&(de===null||!(de.f&He))&&!Wi)return;if(r&(an|$t)){if(!(r&ze))return;n.f^=ze}}this.#r.push(n)}}function gn(e){var t=nr;nr=!0;try{var n;for(e&&(ae!==null&&!ae.is_fork&&ae.flush(),n=e());;){if(Bv(),ae===null)return n;ae.flush()}}finally{nr=t}}function Zv(){try{av()}catch(e){Gt(e,Gi)}}let sn=null;function Va(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&(dt|rt))&&mr(r)&&(sn=new Set,Bn(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Fc(r),sn?.size>0)){Rn.clear();for(const s of sn){if(s.f&(dt|rt))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&(dt|rt)||Bn(c)}}sn.clear()}}sn=null}}function bc(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?bc(s,t,n,r):i&(ar|Bt)&&!(i&Ue)&&Do(s,t,r)&&(Re(s,Ue),Po(s))}}function yc(e,t){if(e.reactions!==null)for(const n of e.reactions){const r=n.f;r&He?yc(n,t):r&Or&&(Re(n,Ue),t.add(n))}}function Do(e,t,n){const r=n.get(e);if(r!==void 0)return r;if(e.deps!==null)for(const s of e.deps){if(or.call(t,s))return!0;if(s.f&He&&Do(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function Po(e){ae.schedule(e)}let Is=[];function Qv(){gn(()=>{const e=Is;Is=[];for(const t of e)cr(t)})}function eh(e){var t=_t(0),n=!0,r=void 0;return a(t),qc(()=>{if(n){var s=nt;try{nt=null,r=e()}finally{nt=s}return}Is.length===0&&st(Qv),Is.push(t)}),n=!1,r}function _c(e,t){if(!(e.f&$t&&e.f&ze)){e.f&Ue?t.d.push(e):e.f&Ft&&t.m.push(e),Re(e,ze);for(var n=e.first;n!==null;)_c(n,t),n=n.next}}function wc(e){Re(e,ze);for(var t=e.first;t!==null;)wc(t),t=t.next}function th(e){tc(),ae!==null&&cv();var t=Ot.ensure();t.is_fork=!0,nt=new Map;var n=!1,r=t.settled();return gn(e),{commit:async()=>{if(n){await r;return}rn.has(t)||lv(),n=!0,t.is_fork=!1;for(var[s,[i]]of t.current)s.v=i,s.wv=Cs();t.activate(),t.run_fork_commit_callbacks(),t.deactivate(),gn(()=>{var o=new Set;for(var l of t.current.keys())yc(l,o);fh(o),Cc()}),t.flush(),await r},discard:()=>{for(var s of t.current.keys())s.wv=Cs();!n&&rn.has(t)&&t.discard()}}}function nh(e){let t=0,n=_t(0),r;return()=>{Zr()&&(a(n),Le(()=>(t===0&&(r=Ee(()=>e(()=>Dr(n)))),t+=1,()=>{st(()=>{t-=1,t===0&&(r?.(),r=void 0,Dr(n))})})))}}var rh=Ut|wn;function kc(e,t,n,r){new sh(e,t,n,r)}class sh{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=nh(()=>(this.#d=_t(this.#u),()=>{this.#d=null}));constructor(t,n,r,s){this.#e=t,this.#n=n,this.#i=i=>{var o=ie;o.b=this,o.f|=Ui,r(i)},this.parent=ie.b,this.transform_error=s??this.parent?.transform_error??(i=>i),this.#s=tn(()=>{if(X){const i=this.#t;it();const o=i.data===Us;if(i.data.startsWith(La)){const c=JSON.parse(i.data.slice(La.length));this.#g(c)}else o?this.#m():this.#p()}else this.#y()},rh),X&&(this.#e=se)}#p(){try{this.#o=tt(()=>this.#i(this.#e))}catch(t){this.error(t)}}#g(t){const n=this.#n.failed;n&&(this.#a=tt(()=>{n(this.#e,()=>t,()=>()=>{})}))}#m(){const t=this.#n.pending;t&&(this.is_pending=!0,this.#r=tt(()=>t(this.#e)),st(()=>{var n=this.#l=document.createDocumentFragment(),r=Ke();n.append(r),this.#o=this.#w(()=>tt(()=>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=tt(()=>{this.#i(this.#e)}),this.#c>0){var t=this.#l=document.createDocumentFragment();Bo(this.#o,t);const n=this.#n.pending;this.#r=tt(()=>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){hc(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;Ze(this.#s),vt(this.#s),lr(this.#s.ctx);try{return Ot.ensure(),t()}catch(i){return fc(i),null}finally{Ze(n),vt(r),lr(s)}}#k(t,n){if(!this.has_pending_snippet()){this.parent&&this.parent.#k(t,n);return}this.#c+=t,this.#c===0&&(this.#_(n),this.#r&&Dn(this.#r,()=>{this.#r=null}),this.#l&&(this.#e.before(this.#l),this.#l=null))}update_pending_count(t,n){this.#k(t,n),this.#u+=t,!(!this.#d||this.#f)&&(this.#f=!0,st(()=>{this.#f=!1,this.#d&&Xt(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){Iv();return}s=!0,i&&mv(),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){Gt(u,this.#s&&this.#s.parent)}r&&(this.#a=this.#w(()=>{try{return tt(()=>{var u=ie;u.b=this,u.f|=Ui,r(this.#e,()=>c,()=>o)})}catch(u){return Gt(u,this.#s.parent),null}}))};st(()=>{var c;try{c=this.transform_error(t)}catch(u){Gt(u,this.#s&&this.#s.parent);return}c!==null&&typeof c=="object"&&typeof c.then=="function"?c.then(l,u=>Gt(u,this.#s&&this.#s.parent)):l(c)})}}function ih(){ie===null&&ov();var e=ie.b;return e===null?0:e.get_effect_pending()}function Yr(e,t,n,r){const s=Xr;var i=e.filter(h=>!h.settled);if(n.length===0&&i.length===0){r(t.map(s));return}var o=ie,l=Js(),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&dt||Gt(m,o)}qn()}if(n.length===0){c.then(()=>u(t.map(s)));return}var d=Gr();function f(){Promise.all(n.map(h=>xc(h))).then(h=>u([...t.map(s),...h])).catch(h=>Gt(h,o)).finally(()=>d())}c?c.then(()=>{l(),f(),qn()}):f()}function Sc(e,t){Yr(e,[],[],t)}function Js(){var e=ie,t=de,n=ye,r=ae;return function(i=!0){Ze(e),vt(t),lr(n),i&&!(e.f&dt)&&(r?.activate(),r?.apply())}}async function oh(e){var t=Js(),n=await e;return()=>(t(),n)}async function Xi(e){var t=Rr;queueMicrotask(()=>{Rr===t&&ps(null)});var n=await e;return()=>(ps(t),queueMicrotask(()=>{Rr===t&&ps(null)}),n)}async function*ah(e){const t=e[Symbol.asyncIterator]?.()??e[Symbol.iterator]?.();if(t===void 0)throw new TypeError("value is not async iterable");let n=!1;try{for(;;){const{done:s,value:i}=(await Xi(t.next()))();if(s){n=!0;break}var r=Rr;yield i,ps(r)}}finally{if(!n&&t.return!==void 0)return(await Xi(t.return()))().value}}function qn(e=!0){Ze(null),vt(null),lr(null),e&&ae?.deactivate()}function lh(e){const t=Js(),n=Gr();var r=ie,s=null;const i=u=>{s={error:u},Qi(r)||Gt(u,r)};var o=Promise.resolve(e[0]()).catch(i),l={promise:o,settled:!1},c=[l];o.finally(()=>{l.settled=!0,qn()});for(const u of e.slice(1)){o=o.then(()=>{if(t(),s)throw s.error;if(Qi(r))throw Kt;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 ch(e){return Promise.all(e.map(t=>t.promise))}function Gr(){var e=ie,t=e.b,n=ae,r=t.is_rendered();return t.update_pending_count(1,n),n.increment(r,e),(s=!1)=>{t.update_pending_count(-1,n),n.decrement(r,e,s)}}let Rr=null;function ps(e){Rr=e}function Xr(e){var t=He|Ue;return ie!==null&&(ie.f|=wn),{ctx:ye,deps:null,effects:null,equals:sc,f:t,fn:e,reactions:null,rv:0,v:Ce,wv:0,parent:ie,ac:null}}function xc(e,t,n){let r=ie;r===null&&Qf();var s=void 0,i=_t(Ce),o=!de,l=new Map;return xh(()=>{var c=ie,u=Gl();s=u.promise;try{Promise.resolve(e()).then(u.resolve,u.reject).finally(qn)}catch(m){u.reject(m),qn()}var d=ae;if(o){if(c.f&cn)var f=Gr();if(r.b.is_rendered())l.get(d)?.reject(Kt),l.delete(d);else{for(const m of l.values())m.reject(Kt);l.clear()}l.set(d,u)}const h=(m,x=void 0)=>{if(f){var g=x===Kt;f(g)}if(!(x===Kt||c.f&dt)){if(d.activate(),x)i.f|=pn,Xt(i,x);else{i.f&pn&&(i.f^=pn),Xt(i,m);for(const[_,S]of l){if(l.delete(_),_===d)break;S.reject(Kt)}}d.deactivate()}};u.promise.then(h,m=>h(null,m||"unknown"))}),St(()=>{for(const c of l.values())c.reject(Kt)}),new Promise(c=>{function u(d){function f(){d===s?c(i):u(s)}d.then(f,f)}u(s)})}function F(e){const t=Xr(e);return Kc(t),t}function Mo(e){const t=Xr(e);return t.equals=oc,t}function uh(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)Be(t[n])}}function Oo(e){var t,n=ie,r=e.parent;if(!ln&&r!==null&&r.f&(dt|rt))return _v(),e.v;Ze(r);try{e.f&=~Nn,uh(e),t=Gc(e)}finally{Ze(n)}return t}function Ec(e){var t=Oo(e);if(!e.equals(t)&&(e.wv=Cs(),(!ae?.is_fork||e.deps===null)&&(ae!==null?ae.capture(e,t,!0):e.v=t,e.deps===null))){Re(e,ze);return}ln||(nt!==null?(Zr()||ae?.is_fork)&&nt.set(e,t):Ro(e))}function dh(e){if(e.effects!==null)for(const t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(Kt),t.teardown=bt,t.ac=null,Lr(t,0),zo(t))}function Ic(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&Bn(t)}let As=new Set;const Rn=new Map;function fh(e){As=e}let Ac=!1;function _t(e,t){var n={f:0,v:e,reactions:null,equals:sc,rv:0,wv:0};return n}function q(e,t){const n=_t(e);return Kc(n),n}function Zs(e,t=!1,n=!0){const r=_t(e);return t||(r.equals=oc),r}function vh(e,t){return k(e,Ee(()=>a(e))),t}function k(e,t,n=!1){de!==null&&(!zt||de.f&Or)&&uc()&&de.f&(He|Bt|ar|Or)&&(Dt===null||!or.call(Dt,e))&&pv();let r=n?le(t):t;return Xt(e,r,hs)}function Xt(e,t,n=null){if(!e.equals(t)){Rn.set(e,ln?t:e.v);var r=Ot.ensure();if(r.capture(e,t),e.f&He){const s=e;e.f&Ue&&Oo(s),nt===null&&Ro(s)}e.wv=Cs(),Tc(e,Ue,n),ie!==null&&ie.f&ze&&!(ie.f&($t|an))&&(Tt===null?Th([e]):Tt.push(e)),!r.is_fork&&As.size>0&&!Ac&&Cc()}return t}function Cc(){Ac=!1;for(const e of As)e.f&ze&&Re(e,Ft),mr(e)&&Bn(e);As.clear()}function cr(e,t=1){var n=a(e),r=t===1?n++:n--;return k(e,n),r}function hh(e,t=1){var n=a(e);return k(e,t===1?++n:--n)}function Dr(e){k(e,e.v+1)}function Tc(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;nt?.delete(u),l&Nn||(l&Rt&&(o.f|=Nn),Tc(u,Ft,n))}else if(c){var d=o;l&Bt&&sn!==null&&sn.add(d),n!==null?n.push(d):Po(d)}}}function le(e){if(typeof e!="object"||e===null||Je in e)return e;const t=Ws(e);if(t!==Yl&&t!==Bf)return e;var n=new Map,r=vr(e),s=q(0),i=Pn,o=l=>{if(Pn===i)return l();var c=de,u=Pn;vt(null),Ua(i);var d=l();return vt(c),Ua(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)&&vv();var d=n.get(c);return d===void 0?o(()=>{var f=q(u.value);return n.set(c,f),f}):k(d,u.value,!0),!0},deleteProperty(l,c){var u=n.get(c);if(u===void 0){if(c in l){const d=o(()=>q(Ce));n.set(c,d),Dr(s)}}else k(u,Ce),Dr(s);return!0},get(l,c,u){if(c===Je)return e;var d=n.get(c),f=c in l;if(d===void 0&&(!f||qt(l,c)?.writable)&&(d=o(()=>{var m=le(f?l[c]:Ce),x=q(m);return x}),n.set(c,d)),d!==void 0){var h=a(d);return h===Ce?void 0:h}return Reflect.get(l,c,u)},getOwnPropertyDescriptor(l,c){var u=Reflect.getOwnPropertyDescriptor(l,c);if(u&&"value"in u){var d=n.get(c);d&&(u.value=a(d))}else if(u===void 0){var f=n.get(c),h=f?.v;if(f!==void 0&&h!==Ce)return{enumerable:!0,configurable:!0,value:h,writable:!0}}return u},has(l,c){if(c===Je)return!0;var u=n.get(c),d=u!==void 0&&u.v!==Ce||Reflect.has(l,c);if(u!==void 0||ie!==null&&(!d||qt(l,c)?.writable)){u===void 0&&(u=o(()=>{var h=d?le(l[c]):Ce,m=q(h);return m}),n.set(c,u));var f=a(u);if(f===Ce)return!1}return d},set(l,c,u,d){var f=n.get(c),h=c in l;if(r&&c==="length")for(var m=u;m<f.v;m+=1){var x=n.get(m+"");x!==void 0?k(x,Ce):m in l&&(x=o(()=>q(Ce)),n.set(m+"",x))}if(f===void 0)(!h||qt(l,c)?.writable)&&(f=o(()=>q(void 0)),k(f,le(u)),n.set(c,f));else{h=f.v!==Ce;var g=o(()=>le(u));k(f,g)}var _=Reflect.getOwnPropertyDescriptor(l,c);if(_?.set&&_.set.call(d,u),!h){if(r&&typeof c=="string"){var S=n.get("length"),y=Number(c);Number.isInteger(y)&&y>=S.v&&k(S,y+1)}Dr(s)}return!0},ownKeys(l){a(s);var c=Reflect.ownKeys(l).filter(f=>{var h=n.get(f);return h===void 0||h.v!==Ce});for(var[u,d]of n)d.v!==Ce&&!(u in l)&&c.push(u);return c},setPrototypeOf(){hv()}})}function ur(e){try{if(e!==null&&typeof e=="object"&&Je in e)return e[Je]}catch{}return e}function Rc(e,t){return Object.is(ur(e),ur(t))}function ph(e,t,n=!0){try{e===t!=(ur(e)===ur(t))&&rc(n?"===":"!==")}catch{}return e===t===n}function mh(e,t,n=!0){return e==t!=(ur(e)==ur(t))&&rc(),e==t===n}var Ji,Dc,Lo,Pc,Mc;function Zi(){if(Ji===void 0){Ji=window,Dc=document,Lo=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Pc=qt(t,"firstChild").get,Mc=qt(t,"nextSibling").get,Na(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),Na(n)&&(n.__t=void 0)}}function Ke(e=""){return document.createTextNode(e)}function Te(e){return Pc.call(e)}function wt(e){return Mc.call(e)}function p(e,t){if(!X)return Te(e);var n=Te(se);if(n===null)n=se.appendChild(Ke());else if(t&&n.nodeType!==Kr){var r=Ke();return n?.before(r),we(r),r}return t&&Qs(n),we(n),n}function fe(e,t=!1){if(!X){var n=Te(e);return n instanceof Comment&&n.data===""?wt(n):n}if(t){if(se?.nodeType!==Kr){var r=Ke();return se?.before(r),we(r),r}Qs(se)}return se}function E(e,t=1,n=!1){let r=X?se:e;for(var s;t--;)s=r,r=wt(r);if(!X)return r;if(n){if(r?.nodeType!==Kr){var i=Ke();return r===null?s?.after(i):r.before(i),we(i),i}Qs(r)}return we(r),r}function No(e){e.textContent=""}function Oc(){return!1}function kn(e,t,n){let r=n?{is:n}:void 0;return document.createElementNS(t??Ul,e,r)}function gh(){return document.createDocumentFragment()}function Lc(e=""){return document.createComment(e)}function bh(e,t,n=""){if(t.startsWith("xlink:")){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n);return}return e.setAttribute(t,n)}function Qs(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===Kr;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function pr(e,t){if(t){const n=document.body;e.autofocus=!0,st(()=>{document.activeElement===n&&e.focus()})}}function yh(e){X&&Te(e)!==null&&No(e)}let $a=!1;function Nc(){$a||($a=!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 Sn(e){var t=de,n=ie;vt(null),Ze(null);try{return e()}finally{vt(t),Ze(n)}}function Jr(e,t,n,r=n){e.addEventListener(t,()=>Sn(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),Nc()}function jo(e){ie===null&&(de===null&&iv(),sv()),ln&&rv()}function _h(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&rt&&(e|=rt);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&wn)&&(s=s.first,e&Bt&&e&Ut&&s!==null&&(s.f|=Ut))}if(s!==null&&(s.parent=n,n!==null&&_h(s,n),de!==null&&de.f&He&&!(e&an))){var i=de;(i.effects??=[]).push(s)}return r}function Zr(){return de!==null&&!zt}function St(e){const t=pt(Hr,null);return Re(t,ze),t.teardown=e,t}function Ie(e){jo();var t=ie.f,n=!de&&(t&$t)!==0&&(t&cn)===0;if(n){var r=ye;(r.e??=[]).push(e)}else return jc(e)}function jc(e){return pt(Ln|Zl,e)}function zc(e){return jo(),pt(Hr|Zl,e)}function qc(e){return pt(Or,e)}function ei(e){Ot.ensure();const t=pt(an|wn,e);return()=>{Be(t)}}function wh(e){Ot.ensure();const t=pt(an|wn,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 kh(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{Ze(s.parent),Ee(t)}finally{Ze(s)}}})}function Sh(){var e=ye;Le(()=>{for(var t of e.l.$){t.deps();var n=t.effect;n.f&ze&&n.deps!==null&&Re(n,Ft),mr(n)&&Bn(n),t.ran=!1}})}function xh(e){return pt(ar|wn,e)}function Le(e,t=0){return pt(Hr|t,e)}function z(e,t=[],n=[],r=[]){Yr(r,t,n,s=>{pt(Hr,()=>e(...s.map(a)))})}function Eh(e,t=[],n=[],r=[]){if(n.length>0||r.length>0)var s=Gr();Yr(r,t,n,i=>{pt(Ln,()=>e(...i.map(a))),s&&s()})}function tn(e,t=0){var n=pt(Bt|t,e);return n}function Bc(e,t=0){var n=pt(Eo|t,e);return n}function tt(e){return pt($t|wn,e)}function Vc(e){var t=e.teardown;if(t!==null){const n=ln,r=de;Fa(!0),vt(null);try{t.call(null)}finally{Fa(n),vt(r)}}}function zo(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&Sn(()=>{s.abort(Kt)});var r=n.next;n.f&an?n.parent=null:Be(n,t),n=r}}function Ih(e){for(var t=e.first;t!==null;){var n=t.next;t.f&$t||Be(t),t=n}}function Be(e,t=!0){var n=!1;(t||e.f&Jl)&&e.nodes!==null&&e.nodes.end!==null&&($c(e.nodes.start,e.nodes.end),n=!0),Re(e,Hi),zo(e,t&&!n),Lr(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const i of r)i.stop();Vc(e),e.f^=Hi,e.f|=dt;var s=e.parent;s!==null&&s.first!==null&&Fc(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function $c(e,t){for(;e!==null;){var n=e===t?null:wt(e);e.remove(),e=n}}function Fc(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=[];Uc(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 Uc(e,t,n){if(!(e.f&rt)){e.f^=rt;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&Ut)!==0||(s.f&$t)!==0&&(e.f&Bt)!==0;Uc(s,t,o?n:!1)}s=i}}}function qo(e){Hc(e,!0)}function Hc(e,t){if(e.f&rt){e.f^=rt,e.f&ze||(Re(e,Ue),Ot.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&Ut)!==0||(n.f&$t)!==0;Hc(n,s?t:!1),n=r}var i=e.nodes&&e.nodes.t;if(i!==null)for(const o of i)(o.is_global||t)&&o.in()}}function Qi(e=ie){return(e.f&dt)!==0}function Bo(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:wt(n);t.append(n),n=s}}let Gn=null;function Ah(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 Ch(e){for(var t of Ah(e))Xt(t,t.v)}let ms=!1,ln=!1;function Fa(e){ln=e}let de=null,zt=!1;function vt(e){de=e}let ie=null;function Ze(e){ie=e}let Dt=null;function Kc(e){de!==null&&(Dt===null?Dt=[e]:Dt.push(e))}let lt=null,mt=0,Tt=null;function Th(e){Tt=e}let Wc=1,An=0,Pn=An;function Ua(e){Pn=e}function Cs(){return++Wc}function mr(e){var t=e.f;if(t&Ue)return!0;if(t&He&&(e.f&=~Nn),t&Ft){for(var n=e.deps,r=n.length,s=0;s<r;s++){var i=n[s];if(mr(i)&&Ec(i),i.wv>e.wv)return!0}t&Rt&&nt===null&&Re(e,ze)}return!1}function Yc(e,t,n=!0){var r=e.reactions;if(r!==null&&!(Dt!==null&&or.call(Dt,e)))for(var s=0;s<r.length;s++){var i=r[s];i.f&He?Yc(i,t,!1):t===i&&(n?Re(i,Ue):i.f&ze&&Re(i,Ft),Po(i))}}function Gc(e){var t=lt,n=mt,r=Tt,s=de,i=Dt,o=ye,l=zt,c=Pn,u=e.f;lt=null,mt=0,Tt=null,de=u&($t|an)?null:e,Dt=null,lr(e.ctx),zt=!1,Pn=++An,e.ac!==null&&(Sn(()=>{e.ac.abort(Kt)}),e.ac=null);try{e.f|=Ki;var d=e.fn,f=d();e.f|=cn;var h=e.deps,m=ae?.is_fork;if(lt!==null){var x;if(m||Lr(e,mt),h!==null&&mt>0)for(h.length=mt+lt.length,x=0;x<lt.length;x++)h[mt+x]=lt[x];else e.deps=h=lt;if(Zr()&&e.f&Rt)for(x=mt;x<h.length;x++)(h[x].reactions??=[]).push(e)}else!m&&h!==null&&mt<h.length&&(Lr(e,mt),h.length=mt);if(uc()&&Tt!==null&&!zt&&h!==null&&!(e.f&(He|Ft|Ue)))for(x=0;x<Tt.length;x++)Yc(Tt[x],e);if(s!==null&&s!==e){if(An++,s.deps!==null)for(let g=0;g<n;g+=1)s.deps[g].rv=An;if(t!==null)for(const g of t)g.rv=An;Tt!==null&&(r===null?r=Tt:r.push(...Tt))}return e.f&pn&&(e.f^=pn),f}catch(g){return fc(g)}finally{e.f^=Ki,lt=t,mt=n,Tt=r,de=s,Dt=i,lr(o),zt=l,Pn=c}}function Rh(e,t){let n=t.reactions;if(n!==null){var r=qf.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&&(lt===null||!or.call(lt,t))){var i=t;i.f&Rt&&(i.f^=Rt,i.f&=~Nn),i.v!==Ce&&Ro(i),dh(i),Lr(i,0)}}function Lr(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)Rh(e,n[r])}function Bn(e){var t=e.f;if(!(t&dt)){Re(e,ze);var n=ie,r=ms;ie=e,ms=!0;try{t&(Bt|Eo)?Ih(e):zo(e),Vc(e);var s=Gc(e);e.teardown=typeof s=="function"?s:null,e.wv=Wc;var i;Kl&&Cv&&e.f&Ue&&e.deps}finally{ms=r,ie=n}}}async function Vo(){await Promise.resolve(),gn()}function Dh(){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&dt)!==0;if(!r&&(Dt===null||!or.call(Dt,e))){var s=de.deps;if(de.f&Ki)e.rv<An&&(e.rv=An,lt===null&&s!==null&&s[mt]===e?mt++:lt===null?lt=[e]:lt.push(e));else{(de.deps??=[]).push(e);var i=e.reactions;i===null?e.reactions=[de]:or.call(i,de)||i.push(de)}}}if(ln&&Rn.has(e))return Rn.get(e);if(n){var o=e;if(ln){var l=o.v;return(!(o.f&ze)&&o.reactions!==null||Jc(o))&&(l=Oo(o)),Rn.set(o,l),l}var c=(o.f&Rt)===0&&!zt&&de!==null&&(ms||(de.f&Rt)!==0),u=(o.f&cn)===0;mr(o)&&(c&&(o.f|=Rt),Ec(o)),c&&!u&&(Ic(o),Xc(o))}if(nt?.has(e))return nt.get(e);if(e.f&pn)throw e.v;return e.v}function Xc(e){if(e.f|=Rt,e.deps!==null)for(const t of e.deps)(t.reactions??=[]).push(e),t.f&He&&!(t.f&Rt)&&(Ic(t),Xc(t))}function Jc(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&&Jc(t))return!0;return!1}function Ph(e){return e&&a(e)}function Ee(e){var t=zt;try{return zt=!0,e()}finally{zt=t}}function $o(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if(Je in e)Ts(e);else if(!Array.isArray(e))for(let t in e){const n=e[t];typeof n=="object"&&n&&Je in n&&Ts(n)}}}function Ts(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{Ts(e[r],t)}catch{}const n=Ws(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){const r=Wl(n);for(let s in r){const i=r[s].get;if(i)try{i.call(e)}catch{}}}}}function Mh(e,t){if(tc(),X){const n=window.__svelte?.h;if(n?.has(e))return n.get(e);kv()}return t()}const Cr=Symbol("events"),Zc=new Set,eo=new Set;function Oh(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 Qc(e,t,n,r={}){function s(i){if(r.capture||to.call(t,i),!i.cancelBubble)return Sn(()=>n?.call(this,i))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?st(()=>{t.addEventListener(e,s,r)}):t.addEventListener(e,s,r),s}function Qe(e,t,n,r,s){var i={capture:r,passive:s},o=Qc(e,t,n,i);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&St(()=>{t.removeEventListener(e,o,i)})}function U(e,t,n){(t[Cr]??={})[e]=n}function ue(e){for(var t=0;t<e.length;t++)Zc.add(e[t]);for(var n of eo)n(e)}let Ha=null;function to(e){var t=this,n=t.ownerDocument,r=e.type,s=e.composedPath?.()||[],i=s[0]||e.target;Ha=e;var o=0,l=Ha===e&&e[Cr];if(l){var c=s.indexOf(l);if(c!==-1&&(t===document||t===window)){e[Cr]=t;return}var u=s.indexOf(t);if(u===-1)return;c<=u&&(o=c)}if(i=s[o]||e.target,i!==t){On(e,"currentTarget",{configurable:!0,get(){return i||n}});var d=de,f=ie;vt(null),Ze(null);try{for(var h,m=[];i!==null;){var x=i.assignedSlot||i.parentNode||i.host||null;try{var g=i[Cr]?.[r];g!=null&&(!i.disabled||e.target===i)&&g.call(i,e)}catch(_){h?m.push(_):h=_}if(e.cancelBubble||x===t||x===null)break;i=x}if(h){for(let _ of m)queueMicrotask(()=>{throw _});throw h}}finally{e[Cr]=t,delete e.currentTarget,vt(d),Ze(f)}}}function Lh(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,wv(),c)throw c}l?.apply(t,n)}const Nh=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function eu(e){return Nh?.createHTML(e)??e}function Fo(e){var t=kn("template");return t.innerHTML=eu(e.replaceAll("<!>","<!---->")),t.content}const jh=Un?"template":"TEMPLATE",zh=Un?"script":"SCRIPT";function Ve(e,t){var n=ie;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function A(e,t){var n=(t&So)!==0,r=(t&Fl)!==0,s,i=!e.startsWith("<!>");return()=>{if(X)return Ve(se,null),se;s===void 0&&(s=Fo(i?e:"<!>"+e),n||(s=Te(s)));var o=r||Lo?document.importNode(s,!0):s.cloneNode(!0);if(n){var l=Te(o),c=o.lastChild;Ve(l,c)}else Ve(o,o);return o}}function tu(e,t,n="svg"){var r=!e.startsWith("<!>"),s=(t&So)!==0,i=`<${n}>${r?e:"<!>"+e}</${n}>`,o;return()=>{if(X)return Ve(se,null),se;if(!o){var l=Fo(i),c=Te(l);if(s)for(o=document.createDocumentFragment();Te(c);)o.appendChild(Te(c));else o=Te(c)}var u=o.cloneNode(!0);if(s){var d=Te(u),f=u.lastChild;Ve(d,f)}else Ve(u,u);return u}}function nu(e,t){return tu(e,t,"svg")}function qh(e,t){return tu(e,t,"math")}function ru(e,t){var n=gh();for(var r of e){if(typeof r=="string"){n.append(Ke(r));continue}if(r===void 0||r[0][0]==="/"){n.append(Lc(r?r[0].slice(3):""));continue}const[l,c,...u]=r,d=l==="svg"?Ur:l==="math"?xo:t;var s=kn(l,d,c?.is);for(var i in c)bh(s,i,c[i]);if(u.length>0){var o=s.nodeName===jh?s.content:s;o.append(ru(u,s.nodeName==="foreignObject"?void 0:d))}n.append(s)}return n}function Bh(e,t){var n=(t&So)!==0,r=(t&Fl)!==0,s;return()=>{if(X)return Ve(se,null),se;if(s===void 0){const c=t&jf?Ur:t&zf?xo:void 0;s=ru(e,c),n||(s=Te(s))}var i=r||Lo?document.importNode(s,!0):s.cloneNode(!0);if(n){var o=Te(i),l=i.lastChild;Ve(o,l)}else Ve(i,i);return i}}function Vh(e){return()=>$h(e())}function $h(e){if(X)return e;const t=e.nodeType===ec,n=e.nodeName===zh?[e]:e.querySelectorAll("script"),r=ie;for(const i of n){const o=kn("script");for(var s of i.attributes)o.setAttribute(s.name,s.value);o.textContent=i.textContent,(t?e.firstChild===i:e===i)&&(r.nodes.start=o),(t?e.lastChild===i:e===i)&&(r.nodes.end=o),i.replaceWith(o)}return e}function Vt(e=""){if(!X){var t=Ke(e+"");return Ve(t,t),t}var n=se;return n.nodeType!==Kr?(n.before(n=Ke()),we(n)):Qs(n),Ve(n,n),n}function ct(){if(X)return Ve(se,null),se;var e=document.createDocumentFragment(),t=document.createComment(""),n=Ke();return e.append(t,n),Ve(t,n),e}function I(e,t){if(X){var n=ie;(!(n.f&cn)||n.nodes.end===null)&&(n.nodes.end=se),it();return}e!==null&&e.before(t)}function Fh(){if(X&&se&&se.nodeType===un&&se.textContent?.startsWith("$")){const e=se.textContent.substring(1);return it(),e}return(window.__svelte??={}).uid??=1,`c${window.__svelte.uid++}`}const Uh=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function Hh(e){return Uh.includes(e)||e.toLowerCase()==="!doctype"}function Kh(e){return e.endsWith("capture")&&e!=="gotpointercapture"&&e!=="lostpointercapture"}const Wh=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function Yh(e){return Wh.includes(e)}const Gh={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 Xh(e){return e=e.toLowerCase(),Gh[e]??e}const Jh=["touchstart","touchmove"];function Zh(e){return Jh.includes(e)}const Qh=["textarea","script","style","title"];function ep(e){return Qh.includes(e)}function su(e){return e?.replace(/\//g,"/")}let Rs=!0;function Qn(e){Rs=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 ou(e,t)}function iu(e,t){Zi(),t.intro=t.intro??!1;const n=t.target,r=X,s=se;try{for(var i=Te(n);i&&(i.nodeType!==un||i.data!==Fs);)i=wt(i);if(!i)throw Mn;xe(!0),we(i);const o=ou(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&&dv(),Zi(),No(n),xe(!1),Oe(e,t)}finally{xe(r),we(s)}}const us=new Map;function ou(e,{target:t,anchor:n,props:r={},events:s,context:i,intro:o=!0,transformError:l}){Zi();var c=void 0,u=wh(()=>{var d=n??t.appendChild(Ke());kc(d,{pending:()=>{}},m=>{ne({});var x=ye;if(i&&(x.c=i),s&&(r.$$events=s),X&&Ve(m,null),Rs=o,c=e(m,r)||{},Rs=!0,X&&(ie.nodes.end=se,se===null||se.nodeType!==un||se.data!==Hs))throw Wr(),Mn;re()},l);var f=new Set,h=m=>{for(var x=0;x<m.length;x++){var g=m[x];if(!f.has(g)){f.add(g);var _=Zh(g);for(const b of[t,document]){var S=us.get(b);S===void 0&&(S=new Map,us.set(b,S));var y=S.get(g);y===void 0?(b.addEventListener(g,to,{passive:_}),S.set(g,1)):S.set(g,y+1)}}}};return h(Ks(Zc)),eo.add(h),()=>{for(var m of f)for(const _ of[t,document]){var x=us.get(_),g=x.get(m);--g==0?(_.removeEventListener(m,to),x.delete(m),x.size===0&&us.delete(_)):x.set(m,g)}eo.delete(h),d!==n&&d.parentNode?.removeChild(d)}});return no.set(c,u),c}let no=new WeakMap;function Fe(e,t){const n=no.get(e);return n?(no.delete(e),n(t)):Promise.resolve()}function tp(e){const t=e();t&&Hh(t)&&Tv()}function np(e){const t=e();t&&!(typeof t=="string")&&Zf()}function rp(e,t){e!=null&&typeof e.subscribe!="function"&&Jf()}function au(e){return e.toString=()=>(Xf(),""),e}class gr{anchor;#e=new Map;#t=new Map;#n=new Map;#i=new Set;#s=!0;constructor(t,n=!0){this.anchor=t,this.#s=n}#o=t=>{if(this.#e.has(t)){var n=this.#e.get(t),r=this.#t.get(n);if(r)qo(r),this.#i.delete(n);else{var s=this.#n.get(n);s&&(this.#t.set(n,s.effect),this.#n.delete(n),s.fragment.lastChild.remove(),this.anchor.before(s.fragment),r=s.effect)}for(const[i,o]of this.#e){if(this.#e.delete(i),i===t)break;const l=this.#n.get(o);l&&(Be(l.effect),this.#n.delete(o))}for(const[i,o]of this.#t){if(i===n||this.#i.has(i))continue;const l=()=>{if(Array.from(this.#e.values()).includes(i)){var u=document.createDocumentFragment();Bo(o,u),u.append(Ke()),this.#n.set(i,{effect:o,fragment:u})}else Be(o);this.#i.delete(i),this.#t.delete(i)};this.#s||!r?(this.#i.add(i),Dn(o,l,!1)):l()}}};#r=t=>{this.#e.delete(t);const n=Array.from(this.#e.values());for(const[r,s]of this.#n)n.includes(r)||(Be(s.effect),this.#n.delete(r))};ensure(t,n){var r=ae,s=Oc();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:tt(()=>n(o)),fragment:i})}else this.#t.set(t,tt(()=>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 ti(e,t,...n){var r=new gr(e);tn(()=>{const s=t()??null;r.ensure(s,s&&(i=>s(i,...n)))},Ut)}function sp(e,t){const n=(r,...s)=>{var i=Ao;qa(e);try{return t(r,...s)}finally{qa(i)}};return au(n),n}function ip(e){return(t,...n)=>{var r=e(...n),s;if(X)s=se,it();else{var i=r.render().trim(),o=Fo(i);s=Te(o),t.before(s)}const l=r.setup?.(s);Ve(s,s),typeof l=="function"&&St(l)}}function op(){return de===null&&uv(),(de.ac??=new AbortController).signal}function Uo(e){ye===null&&hr(),Ie(()=>{const t=Ee(e);if(typeof t=="function")return t})}function Ho(e){ye===null&&hr(),Uo(()=>()=>Ee(e))}function ap(e,t,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(e,{detail:t,bubbles:n,cancelable:r})}function lp(){const e=ye;return e===null&&hr(),(t,n,r)=>{const s=e.s.$$events?.[t];if(s){const i=vr(s)?s.slice():[s],o=ap(t,n,r);for(const l of i)l.call(e.x,o);return!o.defaultPrevented}return!0}}function cp(e){ye===null&&hr(),ye.l===null&&nc(),lu(ye).b.push(e)}function up(e){ye===null&&hr(),ye.l===null&&nc(),lu(ye).a.push(e)}function lu(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}const cu=Object.freeze(Object.defineProperty({__proto__:null,afterUpdate:up,beforeUpdate:cp,createContext:jv,createEventDispatcher:lp,createRawSnippet:ip,flushSync:gn,fork:th,getAbortSignal:op,getAllContexts:zv,getContext:Co,hasContext:cc,hydratable:Mh,hydrate:iu,mount:Oe,onDestroy:Ho,onMount:Uo,setContext:To,settled:Dh,tick:Vo,unmount:Fe,untrack:Ee},Symbol.toStringTag,{value:"Module"}));function dp(){return Symbol(Hl)}function uu(e,t,n,r){return e!==t&&typeof t=="object"&&Je in t&&gv(n,su(r)),e}function fp(e,t,n,r,s){return uu(n==="="?e[t]=r:n==="&&="?e[t]&&=r():n==="||="?e[t]||=r():n==="??="?e[t]??=r():null,Ee(()=>e[t]),t,s)}async function vp(e,t,n,r,s){return uu(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 Ka=new Map;function hp(e){var t=Ka.get(e);if(t){for(const n of t)n.remove();Ka.delete(e)}}function pp(e,t,n){return(...r)=>{const s=e(...r);var i=X?s:s.nodeType===ec?s.firstChild:s;return du(i,t,n),s}}function mp(e,t,n){e.__svelte_meta={parent:vs,loc:{file:t,line:n[0],column:n[1]}},n[2]&&du(e.firstChild,t,n[2])}function du(e,t,n){for(var r=0,s=0;e&&r<n.length;){if(X&&e.nodeType===un){var i=e;i.data[0]===Fs?s+=1:i.data[0]===Hs&&(s-=1)}s===0&&e.nodeType===Ql&&mp(e,t,n[r++]),e=e.nextSibling}}function gp(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=tt(()=>{u=u[Wf]??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}},Ut),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 bp(e){const t=ye?.function,n=ye?.p?.function;return{mutation:(r,s,i,o,l)=>{const c=s[0];if(Wa(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=su(`${t[gt]}:${o}:${l}`);return xv(c,d,r,n[gt]),i},binding:(r,s,i)=>{!Wa(e,r)&&n&&i()?.[Je]&&Sv(t[gt],r,s[gt],n[gt])}}}function Wa(e,t){const n=Je in e||Ys in e;return!!qt(e,t)?.set||n&&t in e||!(t in e)}function yp(e){e&&tv(e[gt]??"a component",e.name)}function _p(){const e=ye?.function;function t(n){ev(n,e[gt])}return{$destroy:()=>t("$destroy()"),$on:()=>t("$on(...)"),$set:()=>t("$set(...)")}}function wp(e,t,n=!1){jo();let r=!0,s=Ce;qc(()=>{try{var i=e()}catch(l){s=l;return}var o=zn(i,!0,!0);Ee(()=>{if(n){if(t(...o),!r){const l=Ov("$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 kp(e,t=[],n=[],r){var s=X,i=null;if(s&&(it(),i=jn(!1)),n.length===0&&t.every(c=>c.settled)){r(e),s&&we(i);return}const o=Gr();if(s){var l=se;we(i)}Yr(t,[],n,c=>{s&&(xe(!0),we(l));try{for(const u of c)a(u);r(e,...c)}finally{s&&xe(!1),o()}})}function Sp(e,...t){(typeof e!="object"||!(e instanceof Node))&&za();for(let n of t)typeof n!="function"&&za()}const Ya=0,Ga=1,xp=2;function Ep(e,t,n,r,s){X&&it();var i=Ce,o=_t(i),l=_t(i),c=new gr(e);tn(()=>{var u=ae;u.deactivate();var d=t();u.activate();var f=!1;let h=X&&ja(d)===(e.data===Us);if(h&&(we(jn()),xe(!1)),ja(d)){var m=Js(),x=!1;const g=_=>{if(!f){x=!0,m(!1),Ot.ensure(),X&&xe(!1);try{_()}finally{qn(!1),nr||gn()}}};d.then(_=>{g(()=>{Xt(o,_),c.ensure(Ga,r&&(S=>r(S,o)))})},_=>{g(()=>{if(Xt(l,_),c.ensure(xp,s&&(S=>s(S,l))),!s)throw l.v})}),X?c.ensure(Ya,n):st(()=>{x||g(()=>{c.ensure(Ya,n)})})}else Xt(o,d),c.ensure(Ga,r&&(g=>r(g,o)));return h&&xe(!0),()=>{f=!0}})}function $(e,t,n=!1){var r;X&&(r=se,it());var s=new gr(e),i=n?Ut:0;function o(l,c){if(X){var u=Io(r);if(l!==parseInt(u.substring(1))){var d=jn();we(d),s.anchor=d,xe(!1),s.ensure(l,c),xe(!0);return}}s.ensure(l,c)}tn(()=>{var l=!1;t((c,u=0)=>{l=!0,o(u,c)}),l||o(-1,null)},i)}const Ip=Symbol("NaN");function Ap(e,t,n){X&&it();var r=new gr(e);tn(()=>{var s=t();s!==s&&(s=Ip),r.ensure(s,n)})}function Cp(e,t){X&&we(Te(e)),Le(()=>{var n=t();for(var r in n){var s=n[r];s?e.style.setProperty(r,s):e.style.removeProperty(r)}})}function Vn(e,t){return t}function Tp(e,t,n){for(var r=[],s=t.length,i,o=t.length,l=0;l<s;l++){let f=t[l];Dn(f,()=>{if(i){if(i.pending.delete(f),i.done.add(f),i.pending.size===0){var h=e.outrogroups;ro(e,Ks(i.done)),h.delete(i),h.size===0&&(e.outrogroups=null)}}else o-=1},!1)}if(o===0){var c=r.length===0&&n!==null;if(c){var u=n,d=u.parentNode;No(d),d.append(u),e.items.clear()}ro(e,t,!c)}else i={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(i)}function ro(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(const o of e.pending.values())for(const l of o)r.add(e.items.get(l).e)}for(var s=0;s<t.length;s++){var i=t[s];if(r?.has(i)){i.f|=Yt;const o=document.createDocumentFragment();Bo(i,o)}else Be(t[s],n)}}var Xa;function ce(e,t,n,r,s,i=null){var o=e,l=new Map,c=(t&Vl)!==0;if(c){var u=e;o=X?we(Te(u)):u.appendChild(Ke())}X&&it();var d=null,f=Mo(()=>{var b=n();return vr(b)?b:b==null?[]:Ks(b)}),h,m=new Map,x=!0;function g(b){y.effect.f&dt||(y.pending.delete(b),y.fallback=d,Rp(y,h,o,t,r),d!==null&&(h.length===0?d.f&Yt?(d.f^=Yt,Tr(d,null,o)):qo(d):Dn(d,()=>{d=null})))}function _(b){y.pending.delete(b)}var S=tn(()=>{h=a(f);var b=h.length;let T=!1;if(X){var M=Io(o)===Us;M!==(b===0)&&(o=jn(),we(o),xe(!1),T=!0)}for(var C=new Set,w=ae,O=Oc(),R=0;R<b;R+=1){X&&se.nodeType===un&&se.data===Hs&&(o=se,T=!0,xe(!1));var P=h[R],D=r(P,R),N=x?null:l.get(D);N?(N.v&&Xt(N.v,P),N.i&&Xt(N.i,R),O&&w.unskip_effect(N.e)):(N=Dp(l,x?o:Xa??=Ke(),P,D,R,s,t,n),x||(N.e.f|=Yt),l.set(D,N)),C.add(D)}if(b===0&&i&&!d&&(x?d=tt(()=>i(o)):(d=tt(()=>i(Xa??=Ke())),d.f|=Yt)),b>C.size&&nv(),X&&b>0&&we(jn()),!x)if(m.set(w,C),O){for(const[V,j]of l)C.has(V)||w.skip_effect(j.e);w.oncommit(g),w.ondiscard(_)}else g(w);T&&xe(!0),a(f)}),y={effect:S,items:l,pending:m,outrogroups:null,fallback:d};x=!1,X&&(o=se)}function Er(e){for(;e!==null&&!(e.f&$t);)e=e.next;return e}function Rp(e,t,n,r,s){var i=(r&Tf)!==0,o=t.length,l=e.items,c=Er(e.effect.first),u,d=null,f,h=[],m=[],x,g,_,S;if(i)for(S=0;S<o;S+=1)x=t[S],g=s(x,S),_=l.get(g).e,_.f&Yt||(_.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&rt&&(qo(_),i&&(_.nodes?.a?.unfix(),(f??=new Set).delete(_))),_.f&Yt)if(_.f^=Yt,_===c)Tr(_,null,n);else{var y=d?d.next:c;_===e.effect.last&&(e.effect.last=_.prev),_.prev&&(_.prev.next=_.next),_.next&&(_.next.prev=_.prev),hn(e,d,_),hn(e,_,y),Tr(_,y,n),d=_,h=[],m=[],c=Er(d.next);continue}if(_!==c){if(u!==void 0&&u.has(_)){if(h.length<m.length){var b=m[0],T;d=b.prev;var M=h[0],C=h[h.length-1];for(T=0;T<h.length;T+=1)Tr(h[T],b,n);for(T=0;T<m.length;T+=1)u.delete(m[T]);hn(e,M.prev,C.next),hn(e,d,M),hn(e,C,b),c=b,d=C,S-=1,h=[],m=[]}else u.delete(_),Tr(_,c,n),hn(e,_.prev,_.next),hn(e,_,d===null?e.effect.first:d.next),hn(e,d,_),d=_;continue}for(h=[],m=[];c!==null&&c!==_;)(u??=new Set).add(c),m.push(c),c=Er(c.next);if(c===null)continue}_.f&Yt||h.push(_),d=_,c=Er(_.next)}if(e.outrogroups!==null){for(const P of e.outrogroups)P.pending.size===0&&(ro(e,Ks(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&rt||w.push(_);for(;c!==null;)!(c.f&rt)&&c!==e.fallback&&w.push(c),c=Er(c.next);var O=w.length;if(O>0){var R=r&Vl&&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()}Tp(e,w,R)}}i&&st(()=>{if(f!==void 0)for(_ of f)_.nodes?.a?.apply()})}function Dp(e,t,n,r,s,i,o,l){var c=o&Af?o&Rf?_t(n):Zs(n,!1,!1):null,u=o&Cf?_t(s):null;return{v:c,i:u,e:tt(()=>(i(t,c??n,u??s,l),()=>{e.delete(r)}))}}function Tr(e,t,n){if(e.nodes)for(var r=e.nodes.start,s=e.nodes.end,i=t&&!(t.f&Yt)?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 Pp(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&&it();return}if(n&&!X){u.nodes=null,c.innerHTML=l,l!==""&&Ve(Te(c),c.lastChild);return}if(u.nodes!==null&&($c(u.nodes.start,u.nodes.end),u.nodes=null),l!==""){if(X){se.data;for(var d=it(),f=d;d!==null&&(d.nodeType!==un||d.data!=="");)f=d,d=wt(d);if(d===null)throw Wr(),Mn;Ve(se,f),o=we(d);return}var h=r?Ur:s?xo:void 0,m=kn(r?"svg":s?"math":"template",h);m.innerHTML=l;var x=r||s?m:m.content;if(Ve(Te(x),x.lastChild),r||s)for(;Te(x);)o.before(Te(x));else o.before(x)}})}function Mp(e,t,n,r,s){X&&it();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 Op(e){const t={};e.children&&(t.default=!0);for(const n in e.$$slots)t[n]=!0;return t}function Qr(e,t,n){var r;X&&(r=se,it());var s=new gr(e);tn(()=>{var i=t()??null;if(X){var o=Io(r),l=o===Fs,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)))},Ut)}const Lp=()=>performance.now(),Wt={tick:e=>requestAnimationFrame(e),now:()=>Lp(),tasks:new Set};function fu(){const e=Wt.now();Wt.tasks.forEach(t=>{t.c(e)||(Wt.tasks.delete(t),t.f())}),Wt.tasks.size!==0&&Wt.tick(fu)}function Np(e){let t;return Wt.tasks.size===0&&Wt.tick(fu),{promise:new Promise(n=>{Wt.tasks.add(t={c:e,f:n})}),abort(){Wt.tasks.delete(t)}}}function Ds(e,t){Sn(()=>{e.dispatchEvent(new CustomEvent(t))})}function jp(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 Ja(e){const t={},n=e.split(";");for(const r of n){const[s,i]=r.split(":");if(!s||i===void 0)break;const o=jp(s.trim());t[o]=i.trim()}return t}const zp=e=>e;let vu=null;function Za(e){vu=e}function qp(e,t,n){var r=vu??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=Ps(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 Bp(e,t,n,r){var s=(e&Of)!==0,i=(e&Lf)!==0,o=s&&i,l=(e&Nf)!==0,c=o?"both":s?"in":"out",u,d=t.inert,f=t.style.overflow,h,m;function x(){return Sn(()=>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=Ps(t,x(),m,1,()=>{Ds(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=Ps(t,x(),h,0,()=>{Ds(t,"outroend"),b?.()})},stop:()=>{h?.abort(),m?.abort()}},_=ie;if((_.nodes.t??=[]).push(g),s&&Rs){var S=l;if(!S){for(var y=_.parent;y&&y.f&Ut;)for(;(y=y.parent)&&!(y.f&Bt););S=!y||(y.f&cn)!==0}S&&kt(()=>{Ee(()=>g.in())})}}function Ps(e,t,n,r,s){var i=r===1;if(Yn(t)){var o,l=!1;return st(()=>{if(!l){var _=t({direction:i?"in":"out"});o=Ps(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 Ds(e,i?"introstart":"outrostart"),s(),{abort:bt,deactivate:bt,reset:bt,t:()=>r};const{delay:c=0,css:u,tick:d,easing:f=zp}=t;var h=[];if(i&&n===void 0&&(d&&d(0,1),u)){var m=Ja(u(0,1));h.push(m,m)}var x=()=>1-r,g=e.animate(h,{duration:c,fill:"forwards"});return g.onfinish=()=>{g.cancel(),Ds(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=Ja(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&&Np(()=>{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 Vp(e,t,n,r,s,i){let o=X;X&&it();var l=null;X&&se.nodeType===Ql&&(l=se,it());var c=X?se:e,u=ie,d=new gr(c,!1);tn(()=>{const f=t()||null;var h=s?s():n||f==="svg"?Ur:void 0;if(f===null){d.ensure(null,null),Qn(!0);return}return d.ensure(f,m=>{if(f){if(l=X?l:kn(f,h),Ve(l,l),r){X&&ep(f)&&l.append(document.createComment(""));var x=X?Te(l):l.appendChild(Ke());X&&(x===null?xe(!1):we(x)),Za(u),r(l,x),Za(null)}ie.nodes.end=l,m.before(l)}X&&we(m)}),Qn(!0),()=>{f&&Qn(!1)}},Ut),St(()=>{Qn(!0)}),o&&(xe(!0),we(c))}function $p(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),Jl|wn)}finally{r&&(xe(!0),we(n))}}function Fp(e,t){kt(()=>{var n=e.getRootNode(),r=n.host?n:n.head??n.ownerDocument.head;if(!r.querySelector("#"+t.hash)){const s=kn("style");s.id=t.hash,s.textContent=t.code,r.appendChild(s)}})}function hu(e,t,n){kt(()=>{var r=Ee(()=>t(e,n?.())||{});if(n&&r?.update){var s=!1,i={};Le(()=>{var o=n();$o(o),s&&ic(i,o)&&(i=o,r.update(o))}),s=!0}if(r?.destroy)return()=>r.destroy()})}function Ko(e,t){var n=void 0,r;Bc(()=>{n!==(n=t())&&(r&&(Be(r),r=null),n&&(r=tt(()=>{kt(()=>n(e))})))})}const Up=/[&"<]/g;function Hp(e,t){const n=String(e??""),r=Up;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==="&"?"&":l==='"'?""":"<"),i=o+1}return s+n.substring(i)}function pu(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=pu(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function Kp(){for(var e,t,n=0,r="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=pu(e))&&(r&&(r+=" "),r+=t);return r}const Qa={translate:new Map([[!0,"yes"],[!1,"no"]])};function Wp(e,t,n=!1){if(e==="hidden"&&t!=="until-found"&&(n=!0),t==null||!t&&n)return"";const r=Vf.call(Qa,e)&&Qa[e].get(t)||t,s=n?'=""':`="${Hp(r)}"`;return` ${e}${s}`}function mu(e){return typeof e=="object"?Kp(e):e??""}const el=[...`
|
|
6
|
+
\r\f \v\uFEFF`];function Yp(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||el.includes(r[o-1]))&&(l===r.length||el.includes(r[l]))?r=(o===0?"":r.substring(0,o))+r.substring(l+1):o=l}}return r===""?null:r}function tl(e,t=!1){var n=t?" !important;":";",r="";for(var s of Object.keys(e)){var i=e[s];i!=null&&i!==""&&(r+=" "+s+": "+i+n)}return r}function Ri(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function Gp(e,t){if(t){var n="",r,s;if(Array.isArray(t)?(r=t[0],s=t[1]):r=t,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var i=!1,o=0,l=!1,c=[];r&&c.push(...Object.keys(r).map(Ri)),s&&c.push(...Object.keys(s).map(Ri));var u=0,d=-1;const g=e.length;for(var f=0;f<g;f++){var h=e[f];if(l?h==="/"&&e[f-1]==="*"&&(l=!1):i?i===h&&(i=!1):h==="/"&&e[f+1]==="*"?l=!0:h==='"'||h==="'"?i=h:h==="("?o++:h===")"&&o--,!l&&i===!1&&o===0){if(h===":"&&d===-1)d=f;else if(h===";"||f===g-1){if(d!==-1){var m=Ri(e.substring(u,d).trim());if(!c.includes(m)){h!==";"&&f++;var x=e.substring(u,f).trim();n+=" "+x+";"}}u=f+1,d=-1}}}}return r&&(n+=tl(r)),s&&(n+=tl(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=Yp(n,r,i);(!X||l!==e.getAttribute("class"))&&(l==null?e.removeAttribute("class"):t?e.className=l:e.setAttribute("class",l)),e.__className=n}else if(i&&s!==i)for(var c in i){var u=!!i[c];(s==null||u!==!!s[c])&&e.classList.toggle(c,u)}return i}function Di(e,t={},n,r){for(var s in n){var i=n[s];t[s]!==i&&(n[s]==null?e.style.removeProperty(s):e.style.setProperty(s,i,r))}}function nn(e,t,n,r){var s=e.__style;if(X||s!==t){var i=Gp(t,r);(!X||i!==e.getAttribute("style"))&&(i==null?e.removeAttribute("style"):e.style.cssText=i),e.__style=t}else r&&(Array.isArray(r)?(Di(e,n?.[0],r[0]),Di(e,n?.[1],r[1],"important")):Di(e,n,r));return r}function Nr(e,t,n=!1){if(e.multiple){if(t==null)return;if(!vr(t))return Ev();for(var r of e.options)r.selected=t.includes(Pr(r));return}for(r of e.options){var s=Pr(r);if(Rc(s,t)){r.selected=!0;return}}(!n||t!==void 0)&&(e.selectedIndex=-1)}function Wo(e){var t=new MutationObserver(()=>{Nr(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),St(()=>{t.disconnect()})}function jr(e,t,n=t){var r=new WeakSet,s=!0;Jr(e,"change",i=>{var o=i?"[selected]":":checked",l;if(e.multiple)l=[].map.call(e.querySelectorAll(o),Pr);else{var c=e.querySelector(o)??e.querySelector("option:not([disabled])");l=c&&Pr(c)}n(l),e.__value=l,ae!==null&&r.add(ae)}),kt(()=>{var i=t();if(e===document.activeElement){var o=ae;if(r.has(o))return}if(Nr(e,i,s),s&&i===void 0){var l=e.querySelector(":checked");l!==null&&(i=Pr(l),n(i))}e.__value=i,s=!1}),Wo(e)}function Pr(e){return"__value"in e?e.__value:e.value}const Xn=Symbol("class"),Jn=Symbol("style"),gu=Symbol("is custom element"),bu=Symbol("is html"),Xp=Un?"link":"LINK",Jp=Un?"input":"INPUT",Zp=Un?"option":"OPTION",Qp=Un?"select":"SELECT",em=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,st(n),Nc()}}function yu(e,t){var n=ni(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==em)||(e.value=t??"")}function _u(e,t){var n=ni(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function wu(e,t){t?e.hasAttribute("selected")||e.setAttribute("selected",""):e.removeAttribute("selected")}function tm(e,t){const n=e.checked;e.defaultChecked=t,e.checked=n}function nm(e,t){const n=e.value;e.defaultValue=t,e.value=n}function be(e,t,n,r){var s=ni(e);X&&(s[t]=e.getAttribute(t),t==="src"||t==="srcset"||t==="href"&&e.nodeName===Xp)||s[t]!==(s[t]=n)&&(t==="loading"&&(e[Hf]=n),n==null?e.removeAttribute(t):typeof n!="string"&&Yo(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function rm(e,t,n){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n)}function sm(e,t,n){var r=de,s=ie;let i=X;X&&xe(!1),vt(null),Ze(null);try{t!=="style"&&(so.has(e.getAttribute("is")||e.nodeName)||!customElements||customElements.get(e.getAttribute("is")||e.nodeName.toLowerCase())?Yo(e).includes(t):n&&typeof n=="object")?e[t]=n:be(e,t,n==null?n:String(n))}finally{vt(r),Ze(s),i&&xe(!0)}}function im(e,t,n,r,s=!1,i=!1){if(X&&s&&e.nodeName===Jp){var o=e,l=o.type==="checkbox"?"defaultChecked":"defaultValue";l in n||Se(o)}var c=ni(e),u=c[gu],d=!c[bu];let f=X&&u;f&&xe(!1);var h=t||{},m=e.nodeName===Zp;for(var x in t)x in n||(n[x]=null);n.class?n.class=mu(n.class):(r||n[Xn])&&(n.class=null),n[Jn]&&(n.style??=null);var g=Yo(e);for(const C in n){let w=n[C];if(m&&C==="value"&&w==null){e.value=e.__value="",h[C]=w;continue}if(C==="class"){var _=e.namespaceURI==="http://www.w3.org/1999/xhtml";_e(e,_,w,r,t?.[Xn],n[Xn]),h[C]=w,h[Xn]=n[Xn];continue}if(C==="style"){nn(e,w,t?.[Jn],n[Jn]),h[C]=w,h[Jn]=n[Jn];continue}var S=h[C];if(!(w===S&&!(w===void 0&&e.hasAttribute(C)))){h[C]=w;var y=C[0]+C[1];if(y!=="$$")if(y==="on"){const O={},R="$$"+C;let P=C.slice(2);var b=Yh(P);if(Kh(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]=Qc(P,e,D,O)}}else if(C==="style")be(e,C,w);else if(C==="autofocus")pr(e,!!w);else if(!u&&(C==="__value"||C==="value"&&w!=null))e.value=e.__value=w;else if(C==="selected"&&m)wu(e,w);else{var T=C;d||(T=Xh(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 om(e,t,n=[],r=[],s=[],i,o=!1,l=!1){Yr(s,n,r,c=>{var u=void 0,d={},f=e.nodeName===Qp,h=!1;if(Bc(()=>{var x=t(...c.map(a)),g=im(e,u,x,i,o,l);h&&f&&"value"in x&&Nr(e,x.value);for(let S of Object.getOwnPropertySymbols(d))x[S]||Be(d[S]);for(let S of Object.getOwnPropertySymbols(x)){var _=x[S];S.description===Hl&&(!u||_!==u[S])&&(d[S]&&Be(d[S]),d[S]=tt(()=>Ko(e,()=>_))),g[S]=_}u=g}),f){var m=e;kt(()=>{Nr(m,u.value,!0),Wo(m)})}h=!0})}function ni(e){return e.__attributes??={[gu]:e.nodeName.includes("-"),[bu]:e.namespaceURI===Ul}}var so=new Map;function Yo(e){var t=e.getAttribute("is")||e.nodeName,n=so.get(t);if(n)return n;so.set(t,n=[]);for(var r,s=e,i=Element.prototype;i!==s;){r=Wl(s);for(var o in r)r[o].set&&n.push(o);s=Ws(s)}return n}let Pi=null;function ku(){if(Pi===null){var e=kn("select");e.innerHTML=eu("<option><span>t</span></option>"),Pi=e.firstChild?.firstChild?.nodeType===1}return Pi}function am(e,t){ku()&&Ko(e,()=>()=>{const n=e.closest("select");if(!n)return;const r=new MutationObserver(s=>{var i=!1;for(const o of s){if(o.target===e)return;i||=!!o.target.parentElement?.closest("option")?.selected}i&&(e.replaceWith(e=e.cloneNode(!0)),t(e))});return r.observe(n,{childList:!0,characterData:!0,subtree:!0}),()=>{r.disconnect()}})}function lm(e,t){var n=X;ku()||(xe(!1),e.textContent="",e.append(Lc("")));try{t()}finally{n&&(X?v(e):(xe(!0),we(e)))}}function cm(e){ht(document,["focusin","focusout"],t=>{t&&t.type==="focusout"&&t.relatedTarget||e(document.activeElement)})}function Me(e,t,n=t){var r=new WeakSet;Jr(e,"input",async s=>{var i=s?e.defaultValue:e.value;if(i=Oi(e)?Li(i):i,n(i),ae!==null&&r.add(ae),await Vo(),i!==(i=t())){var o=e.selectionStart,l=e.selectionEnd,c=e.value.length;if(e.value=i??"",l!==null){var u=e.value.length;o===l&&l===c&&u>c?(e.selectionStart=u,e.selectionEnd=u):(e.selectionStart=o,e.selectionEnd=Math.min(l,u))}}}),(X&&e.defaultValue!==e.value||Ee(t)==null&&e.value)&&(n(Oi(e)?Li(e.value):e.value),ae!==null&&r.add(ae)),Le(()=>{var s=t();if(e===document.activeElement){var i=ae;if(r.has(i))return}Oi(e)&&s===Li(e.value)||e.type==="date"&&!s&&!e.value||s!==e.value&&(e.value=s??"")})}const Mi=new Set;function um(e,t,n,r,s=r){var i=n.getAttribute("type")==="checkbox",o=e;let l=!1;if(t!==null)for(var c of t)o=o[c]??=[];o.push(n),Jr(n,"change",()=>{var u=n.__value;i&&(u=nl(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=Rc(n.__value,u)}),St(()=>{var u=o.indexOf(n);u!==-1&&o.splice(u,1)}),Mi.has(o)||(Mi.add(o),st(()=>{o.sort((u,d)=>u.compareDocumentPosition(d)===4?-1:1),Mi.delete(o)})),st(()=>{if(l){var u;if(i)u=nl(o,u,n.checked);else{var d=o.find(f=>f.checked);u=d?.__value}s(u)}})}function gs(e,t,n=t){Jr(e,"change",r=>{var s=r?e.defaultChecked:e.checked;n(s)}),(X&&e.defaultChecked!==e.checked||Ee(t)==null)&&n(e.checked),Le(()=>{var r=t();e.checked=!!r})}function nl(e,t,n){for(var r=new Set,s=0;s<e.length;s+=1)e[s].checked&&r.add(e[s].__value);return n||r.delete(t),Array.from(r)}function Oi(e){var t=e.type;return t==="number"||t==="range"}function Li(e){return e===""?null:+e}function dm(e,t,n=t){Jr(e,"change",()=>{n(e.files)}),X&&e.files&&n(e.files),Le(()=>{e.files=t()})}function Go(e){for(var t=[],n=0;n<e.length;n+=1)t.push({start:e.start(n),end:e.end(n)});return t}function fm(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 vm(e,t){var n;ht(e,["loadedmetadata","progress","timeupdate","seeking"],()=>{var r=e.buffered;(!n||n.length!==r.length||n.some((s,i)=>r.start(i)!==s.start||r.end(i)!==s.end))&&(n=Go(r),t(n))})}function hm(e,t){ht(e,["loadedmetadata"],()=>t(Go(e.seekable)))}function pm(e,t){ht(e,["timeupdate"],()=>t(Go(e.played)))}function mm(e,t){ht(e,["seeking","seeked"],()=>t(e.seeking))}function gm(e,t){ht(e,["timeupdate","ended"],()=>t(e.ended))}function bm(e,t){ht(e,["loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","emptied"],()=>t(e.readyState))}function ym(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 _m(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 wm(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 km(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 Sm(e){ht(window,["online","offline"],()=>{e(navigator.onLine)})}function xm(e,t,n){var r=qt(e,t);r&&r.set&&(e[t]=n,St(()=>{e[t]=null}))}class es{#e=new WeakMap;#t;#n;static entries=new WeakMap;constructor(t){this.#n=t}observe(t,n){var r=this.#e.get(t)||new Set;return r.add(n),this.#e.set(t,r),this.#i().observe(t,this.#n),()=>{var s=this.#e.get(t);s.delete(n),s.size===0&&(this.#e.delete(t),this.#t.unobserve(t))}}#i(){return this.#t??(this.#t=new ResizeObserver(t=>{for(var n of t){es.entries.set(n.target,n);for(var r of this.#e.get(n.target)||[])r(n)}}))}}var Em=new es({box:"content-box"}),Su=new es({box:"border-box"}),Im=new es({box:"device-pixel-content-box"});function Am(e,t,n){var r=t==="contentRect"||t==="contentBoxSize"?Em:t==="borderBoxSize"?Su:Im,s=r.observe(e,i=>n(i[t]));St(s)}function Cm(e,t,n){var r=Su.observe(e,()=>n(e[t]));kt(()=>(Ee(()=>n(e[t])),r))}function rl(e,t){return e===t||e?.[Je]===t}function et(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&&rl(n(...o),e)&&t(null,...o))})}),()=>{let c=i;for(;c!==s&&c.parent!==null&&c.parent.f&Hi;)c=c.parent;const u=()=>{l&&rl(n(...l),e)&&t(null,...l)},d=c.teardown;c.teardown=()=>{u(),d?.()}}}),e}function Tm(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 Rm(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 Dm(e,t){ht(e,["focus","blur"],()=>{t(e===document.activeElement)})}function Pm(e,t,n=t){var r=e==="x",s=()=>Sn(()=>{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 Mm(e,t){ht(window,["resize"],()=>Sn(()=>t(window[e])))}function Om(e){return function(...t){var n=t[0];n.isTrusted&&e?.apply(this,t)}}function Lm(e){return function(...t){var n=t[0];n.target===this&&e?.apply(this,t)}}function Nm(e){return function(...t){var n=t[0];return n.stopPropagation(),e?.apply(this,t)}}function jm(e){var t=!1;return function(...n){if(!t)return t=!0,e?.apply(this,n)}}function zm(e){return function(...t){var n=t[0];return n.stopImmediatePropagation(),e?.apply(this,t)}}function qm(e){return function(...t){var n=t[0];return n.preventDefault(),e?.apply(this,t)}}function Bm(e=!1){const t=ye,n=t.l.u;if(!n)return;let r=()=>$o(t.s);if(e){let s=0,i={};const o=Xr(()=>{let l=!1;const c=t.s;for(const u in c)c[u]!==i[u]&&(i[u]=c[u],l=!0);return l&&s++,s});r=()=>a(o)}n.b.length&&zc(()=>{sl(t,r),Fi(n.b)}),Ie(()=>{const s=Ee(()=>n.m.map($f));return()=>{for(const i of s)typeof i=="function"&&i()}}),n.a.length&&Ie(()=>{sl(t,r),Fi(n.a)})}function sl(e,t){if(e.l.s)for(const n of e.l.s)a(n);t()}function Vm(e){var t=_t(0);return function(){return arguments.length===1?(k(t,a(t)+1),arguments[0]):(a(t),e())}}function $m(e,t){var n=e.$$events?.[t.type],r=vr(n)?n.slice():n==null?[]:[n];for(var s of r)s.call(this,t)}function Fm(e,t,n){e.$$events||={},e.$$events[t]||=[],e.$$events[t].push(n)}function Um(e){for(var t in e)t in this&&(this[t]=e[t])}function Hm(e,t=1){const n=e();return e(n+t),n}function Km(e,t=1){const n=e()+t;return e(n),n}const Wm={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 Ym(e,t,n){return new Proxy({props:e,exclude:t},Wm)}const Gm={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{Ze(e.parent_effect),e.special[t]=We({get[t](){return e.props[t]}},t,$l)}finally{Ze(r)}}return e.special[t](n),cr(e.version),!0},getOwnPropertyDescriptor(e,t){if(!e.exclude.includes(t)&&t in e.props)return{enumerable:!0,configurable:!0,value:e.props[t]}},deleteProperty(e,t){return e.exclude.includes(t)||(e.exclude.push(t),cr(e.version)),!0},has(e,t){return e.exclude.includes(t)?!1:t in e.props},ownKeys(e){return Reflect.ownKeys(e.props).filter(t=>!e.exclude.includes(t))}};function Xm(e,t){return new Proxy({props:e,exclude:t,special:{},version:_t(0),parent_effect:ie},Gm)}const Jm={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===Ys)return!1;for(let n of e.props)if(Yn(n)&&(n=n()),n!=null&&t in n)return!0;return!1},ownKeys(e){const t=[];for(let n of e.props)if(Yn(n)&&(n=n()),!!n){for(const r in n)t.includes(r)||t.push(r);for(const r of Object.getOwnPropertySymbols(n))t.includes(r)||t.push(r)}return t}};function ts(...e){return new Proxy({props:e},Jm)}function We(e,t,n,r){var s=(n&Pf)!==0,i=(n&Mf)!==0,o=r,l=!0,c=()=>(l&&(l=!1,o=i?Ee(r):r),o);let u;if(s){var d=Je in e||Ys in e;u=qt(e,t)?.set??(d&&t in e?y=>e[t]=y:void 0)}var f,h=!1;s?[f,h]=gc(()=>e[t]):f=e[t],f===void 0&&r!==void 0&&(f=c(),u&&(fv(),u(f)));var m;if(m=()=>{var y=e[t];return y===void 0?c():(l=!0,y)},!(n&$l))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&Df?Xr:Mo)(()=>(g=!1,m()));s&&a(_);var S=ie;return function(y,b){if(arguments.length>0){const T=b?a(_):s?le(y):y;return k(_,T),g=!0,o!==void 0&&(o=T),y}return ln&&g||S.f&dt?_.v:a(_)}}function Zm(e,t,n,r,s,i){Sc(t,()=>{var o=!1;Ao?.[gt],Le(()=>{if(!o){var[l,c]=gc(n);if(!c){var u=r(),d=!1,f=Le(()=>{d||l[u]});d=!0,f.deps===null&&(bv(),o=!0)}}})})}function Qm(e){return new eg(e)}class eg{#e;#t;constructor(t){var n=new Map,r=(i,o)=>{var l=Zs(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===Ys?!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?iu: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)&&gn(),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 xu;typeof HTMLElement=="function"&&(xu=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=kn("slot");r!=="default"&&(i.name=r),I(s,i)}};if(await Promise.resolve(),!this.$$cn||this.$$c)return;const t={},n=tg(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]=bs(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=Qm({component:this.$$ctor,target:this.$$shadowRoot||this,props:{...this.$$d,$$slots:t,$$host:this}}),this.$$me=ei(()=>{Le(()=>{this.$$r=!0;for(const r of Es(this.$$c)){if(!this.$$p_d[r]?.reflect)continue;this.$$d[r]=this.$$c[r];const s=bs(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]=bs(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 Es(this.$$p_d).find(t=>this.$$p_d[t].attribute===e||!this.$$p_d[t].attribute&&t.toLowerCase()===e)||e}});function bs(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 tg(e){const t={};return e.childNodes.forEach(n=>{t[n.slot||"default"]=!0}),t}function ng(e,t,n,r,s,i){let o=class extends xu{constructor(){super(e,n,s),this.$$p_d=t}static get observedAttributes(){return Es(t).map(l=>(t[l].attribute||l).toLowerCase())}};return Es(t).forEach(l=>{On(o.prototype,l,{get(){return this.$$c&&l in this.$$c?this.$$c[l]:this.$$d[l]},set(c){c=bs(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 rg(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&&(yv(e),console.log("%c[snapshot]","color: grey",...r))}catch{}}),t}const Eu=Object.freeze(Object.defineProperty({__proto__:null,CLASS:Xn,FILENAME:gt,HMR:Wn,NAMESPACE_SVG:Ur,STYLE:Jn,aborted:Qi,action:hu,get active_effect(){return ie},add_legacy_event_listener:Fm,add_locations:pp,add_svelte_meta:Nv,animation:qp,append:I,append_styles:Fp,apply:Lh,assign:fp,assign_async:vp,async:kp,async_derived:xc,attach:Ko,attachment:dp,attr:Wp,attribute_effect:om,autofocus:pr,await:Ep,bind_active_element:cm,bind_buffered:vm,bind_checked:gs,bind_content_editable:Tm,bind_current_time:fm,bind_element_size:Cm,bind_ended:gm,bind_files:dm,bind_focused:Dm,bind_group:um,bind_muted:km,bind_online:Sm,bind_paused:_m,bind_playback_rate:ym,bind_played:pm,bind_prop:xm,bind_property:Rm,bind_ready_state:bm,bind_resize_observer:Am,bind_seekable:hm,bind_seeking:mm,bind_select_value:jr,bind_this:et,bind_value:Me,bind_volume:wm,bind_window_scroll:Pm,bind_window_size:Mm,boundary:kc,bubble_event:$m,check_target:yp,child:p,cleanup_styles:hp,clsx:mu,comment:ct,component:Qr,create_custom_element:ng,create_ownership_validator:bp,css_props:Cp,customizable_select:lm,deep_read:Ts,deep_read_state:$o,deferred_template_effect:Eh,delegate:ue,delegated:U,derived:F,derived_safe_equal:Mo,get document(){return Dc},each:ce,eager:eh,effect:kt,effect_root:ei,effect_tracking:Zr,element:Vp,equals:mh,event:Qe,exclude_from_object:Uf,fallback:Ff,first_child:fe,flush:gn,for_await_track_reactivity_loss:ah,from_html:A,from_mathml:qh,from_svg:nu,from_tree:Bh,get:a,head:$p,hmr:gp,html:Pp,hydrate_template:Av,if:$,index:Vn,init:Bm,init_select:Wo,inspect:wp,invalid_default_snippet:Yf,invalidate_inner_signals:Ch,invalidate_store:Hv,invoke_error_boundary:Gt,key:Ap,legacy_api:_p,legacy_pre_effect:kh,legacy_pre_effect_reset:Sh,legacy_rest_props:Xm,log_if_contains_state:rg,mark_store_binding:Xv,mutable_source:Zs,mutate:vh,next:on,noop:bt,once:jm,pending:ih,pop:re,preventDefault:qm,prevent_snippet_stringification:au,prop:We,props_id:Fh,proxy:le,push:ne,raf:Wt,reactive_import:Vm,remove_input_defaults:Se,remove_textarea_child:yh,render_effect:Le,replay_events:Oh,reset:v,rest_props:Ym,run:lh,run_after_blockers:Sc,safe_get:Ph,sanitize_slots:Op,save:oh,select_option:Nr,selectedcontent:am,self:Lm,set:k,set_attribute:be,set_checked:_u,set_class:_e,set_custom_element_data:sm,set_default_checked:tm,set_default_value:nm,set_selected:wu,set_style:nn,set_text:L,set_value:yu,set_xlink_attribute:rm,setup_stores:Kv,sibling:E,slot:Mp,snapshot:zn,snippet:ti,spread_props:ts,state:q,stopImmediatePropagation:zm,stopPropagation:Nm,store_get:Fv,store_mutate:Wv,store_set:mc,store_unsub:Uv,strict_equals:ph,tag:Mv,tag_proxy:lc,template_effect:z,text:Vt,tick:Vo,to_array:Xl,trace:Pv,track_reactivity_loss:Xi,transition:Bp,trusted:Om,untrack:Ee,update:cr,update_legacy_props:Um,update_pre:hh,update_pre_prop:Km,update_pre_store:Gv,update_prop:Hm,update_store:Yv,user_effect:Ie,user_pre_effect:zc,validate_binding:Zm,validate_dynamic_element_tag:np,validate_snippet_args:Sp,validate_store:rp,validate_void_dynamic_element:tp,wait:ch,get window(){return Ji},with_script:Vh,wrap_snippet:sp},Symbol.toStringTag,{value:"Module"}));class il{#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 ol{#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 sg=["workspace","user"],Xo="state:manage",Ht={ephemeral:new il,session:new il,workspace:new ol("sh3:workspace:"),user:new ol("sh3:user:")},Ni=new Map;let ji=!1;function ig(e,t,n){Ni.set(`${e}:${t}`,{zone:e,shardId:t,value:n}),!ji&&(ji=!0,queueMicrotask(()=>{ji=!1;for(const{zone:r,shardId:s,value:i}of Ni.values())Ht[r].write(s,i);Ni.clear()}))}function ri(e,t){const n={};for(const r of Object.keys(t)){const s=t[r],o=Ht[r].read(e),l={...s,...o??{}},c=le(l);n[r]=c,sg.includes(r)&&ei(()=>{let u=!0;Ie(()=>{const d=zn(c);if(u){u=!1;return}ig(r,e,d)})})}return n}function al(e,t){Ht[e]=t}function og(e,t){return Ht[e].read(t)}function io(e,t){Ht[e].delete(t)}const ag="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(ag);const lg=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function cg(e){const t=document.activeElement;function n(){return Array.from(e.querySelectorAll(lg))}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 ug=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 dg(e,t){ne(t,!0);let n;Ie(()=>{if(n)return cg(n)});function r(l){t.onBackdropClick&&l.target===l.currentTarget&&t.onBackdropClick()}var s=ug(),i=p(s),o=p(i);Qr(o,()=>t.Content,(l,c)=>{c(l,ts(()=>t.contentProps,{get close(){return t.close}}))}),v(i),et(i,l=>n=l,()=>n),v(s),z(()=>nn(i,t.boxStyle)),U("click",s,r),I(e,s),re()}ue(["click"]);const Jo={};function fg(e,t){Jo[e]=t}function vg(e){delete Jo[e]}function si(e){const t=Jo[e];if(!t)throw new Error(`Overlay layer "${e}" root is not registered — Shell.svelte must mount before opening overlays on this layer.`);return t}const yt=[];let Ms=!1,At=null;const hg=.5;function Iu(){const e=si("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, ${hg})`);const t=yt[yt.length-1].host;e.insertBefore(At,t)}function Au(e){e.key==="Escape"&&yt.length!==0&&(e.stopPropagation(),e.preventDefault(),yt[yt.length-1].handle.close())}function pg(){Ms||(Ms=!0,document.addEventListener("keydown",Au,!0))}function mg(){yt.length>0||Ms&&(Ms=!1,document.removeEventListener("keydown",Au,!0))}function Cu(e){const t=yt.indexOf(e);t<0||(yt.splice(t,1),Fe(e.frame),e.host.remove(),Iu(),mg())}function gg(e,t,n){const r=si("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:()=>Cu(i)},l=Oe(dg,{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),Iu(),pg(),o}function bg(){for(;yt.length>0;)Cu(yt[yt.length-1])}const Zo={open:gg,closeAll:bg};var yg=A('<div class="popup-frame svelte-mp81cl" role="menu" tabindex="-1"><!></div>');function _g(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=yg(),o=p(i);Qr(o,()=>t.Content,(l,c)=>{c(l,ts(()=>t.contentProps,{get close(){return t.close}}))}),v(i),et(i,l=>n=l,()=>n),z(()=>nn(i,`top: ${a(r)??""}px; left: ${a(s)??""}px;`)),I(e,i),re()}function wg(e){return e instanceof HTMLElement?e.getBoundingClientRect():new DOMRect(e.x,e.y,0,0)}let Pt=null;function Tu(e){if(!Pt)return;const t=e.target;t&&Pt.host.contains(t)||Pt.handle.close()}function Ru(e){Pt&&e.key==="Escape"&&(e.stopPropagation(),e.preventDefault(),Pt.handle.close())}function kg(){document.addEventListener("pointerdown",Tu,!0),document.addEventListener("keydown",Ru,!0)}function Sg(){document.removeEventListener("pointerdown",Tu,!0),document.removeEventListener("keydown",Ru,!0)}function oo(e){Pt===e&&(Pt=null,Sg(),Fe(e.frame),e.host.remove())}function xg(e,t,n){Pt&&oo(Pt);const r=si("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=wg(t.anchor),o={},l={close:()=>oo(o)},c=Oe(_g,{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(kg),l}function Eg(){Pt&&oo(Pt)}const ao={show:xg,close:Eg};var Ig=A('<div role="status" aria-live="polite"><span class="toast-level svelte-12gwnj0"> </span> <span class="toast-message svelte-12gwnj0"> </span></div>');function Ag(e,t){var n=Ig(),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 Os=new Set;let at=null;function Cg(){if(at&&at.isConnected)return at;const e=si("toast");return at=document.createElement("div"),at.className="sh3-toast-stack",at.style.position="absolute",at.style.right="16px",at.style.bottom="16px",at.style.display="flex",at.style.flexDirection="column-reverse",at.style.gap="6px",at.style.pointerEvents="none",e.appendChild(at),at}function lo(e){Os.has(e)&&(Os.delete(e),e.timer!==null&&(clearTimeout(e.timer),e.timer=null),Fe(e.instance),e.host.remove())}function Tg(e,t={}){const n=t.level??"info",r=t.duration??3e3,s=Cg(),i=document.createElement("div");i.className="sh3-toast-host",s.appendChild(i);const o={},l={close:()=>lo(o)},c=Oe(Ag,{target:i,props:{message:e,level:n,close:l.close}});return o.host=i,o.instance=c,o.handle=l,o.timer=Number.isFinite(r)&&r>0?setTimeout(()=>lo(o),r):null,Os.add(o),l}function Rg(){for(const e of[...Os])lo(e)}const Dg={notify:Tg,clear:Rg},ll={w:120,h:80};function Du(e){if(e.type==="slot")return{...ll};if(e.type==="tabs")return{...ll};const t=e.children.map(Du);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 cl=32,ul={x:48,y:48};function Pg(e,t){if(e.length===0)return{...ul};const n=e[e.length-1],r={x:n.position.x+cl,y:n.position.y+cl};return r.x+120>t.w||r.y+32>t.h?{...ul}:r}let dl=0;function Mg(){return dl+=1,`float-${Date.now().toString(36)}-${dl.toString(36)}`}function Pu(e){return e.type==="slot"?e.viewId==null:e.type==="tabs"?e.tabs.every(t=>t.viewId==null):e.children.every(Pu)}let Og=[],Qo=null,ea=()=>({w:1600,h:900});function Lg(e,t){Qo=e,ea=t}function Ng(){Qo=null,ea=()=>({w:1600,h:900})}function ii(){return Qo??Og}let fl=0;function jg(e){return fl+=1,`float:${e}:${fl}`}const zg={w:600,h:400};function qg(e,t){return{w:Math.max(e.w,t.w),h:Math.max(e.h,t.h)}}function Bg(e,t={}){const n=ii(),r=Mg(),s=jg(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=Du(i),l=t.size??qg(zg,o),c=t.position??Pg(n,ea()),u={id:r,content:i,position:c,size:l,title:t.title};return t.dismissable&&(u.dismissable=!0),n.push(u),r}function Vg(e){const t=ii(),n=t.findIndex(r=>r.id===e);n<0||t.splice(n,1)}function $g(){return ii().slice()}function Fg(e){const t=ii(),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:Bg,close:Vg,list:$g,focus:Fg};let Ls=null;function Ug(e){Ls=e}function Hg(){Ls=null}function ta(){if(!Ls)throw new Error("presetManager: no app attached — bind an AppLayoutBlob first");return Ls}function Kg(){return Object.keys(ta().presets)}function Wg(){return ta().activePreset}function Yg(e){const t=ta();if(!(e in t.presets))throw new Error(`presetManager.switch: unknown preset "${e}"`);t.activePreset=e}const Gg={list:Kg,active:Wg,switch:Yg},er=new Map,ys=new Map;function vl(e){const t=ys.get(e);if(t)for(const n of t)n()}function Mu(e,t){const n=Symbol();let r=er.get(e);r||(r=new Map,er.set(e,r)),r.set(n,t),vl(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),vl(e))}}function oi(e){const t=er.get(e);return t?Array.from(t.values()):[]}function Xg(){return Array.from(er.keys())}function Ou(e,t){let n=ys.get(e);n||(n=new Set,ys.set(e,n)),n.add(t);let r=!1;return()=>{r||(r=!0,n.delete(t),n.size===0&&ys.delete(e))}}const Jg=Object.freeze([".md",".txt",".json",".guml",".css",".js",".ts",".tsx",".jsx",".html",".svg",".csv",".yaml",".yml",".xml",".log",".ini",".toml"]);function Zg(e){return e.kind?e.kind:e.extension&&Jg.includes(e.extension.toLowerCase())?"text":"binary"}const _s=[];function hl(e){return _s.push(e),()=>{const t=_s.indexOf(e);t>=0&&_s.splice(t,1)}}function Qg(e,t=[]){return[..._s,...t].filter(r=>{try{return r.appliesTo(e)}catch{return!1}}).sort((r,s)=>(s.priority??0)-(r.priority??0))[0]??null}var eb=A("<span> </span>"),tb=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),nb=A("<option> </option>"),rb=A("<button> </button>"),sb=A('<pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre>'),ib=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>'),ob=A('<div class="sh3-conflict-text svelte-iwgja4"><!></div>');function ab(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=ob(),d=p(u);{var f=m=>{var x=tb(),g=fe(x),_=p(g);let S;var y=p(_),b=p(y);v(y);var T=E(y,2),M=p(T),C=p(M,!0);v(M),v(T),v(_);var w=E(_,2);let O;var R=p(w),P=p(R);v(R);var D=E(R,2),N=p(D),V=p(N,!0);v(N),v(D),v(w),v(g);var j=E(g,2),B=p(j),Y=p(B);v(B);var G=E(B,2),Z=p(G);ce(Z,21,()=>a(l),Vn,(J,te)=>{var ee=eb(),Q=p(ee);v(ee),z(()=>{_e(ee,1,`diff-${a(te).kind}`,"svelte-iwgja4"),L(Q,`${a(te).kind==="same"?" ":a(te).kind==="left"?"- ":"+ "}${a(te).text??""}
|
|
7
|
+
`)}),I(J,ee)}),v(Z),v(G),v(j),z(()=>{S=_e(_,1,"sh3-conflict-text-pane svelte-iwgja4",null,S,{selected:a(s).origin===t.selectedOrigin}),L(b,`${a(s).origin??""} · v${a(s).version??""}`),L(C,a(s).content??""),O=_e(w,1,"sh3-conflict-text-pane svelte-iwgja4",null,O,{selected:a(i).origin===t.selectedOrigin}),L(P,`${a(i).origin??""} · v${a(i).version??""}`),L(V,a(i).content??""),L(Y,`Line diff (${a(c)??""} difference${a(c)===1?"":"s"})`)}),U("click",_,()=>t.onSelect(a(s).origin)),U("keydown",_,J=>{(J.key==="Enter"||J.key===" ")&&t.onSelect(a(s).origin)}),U("click",w,()=>t.onSelect(a(i).origin)),U("keydown",w,J=>{(J.key==="Enter"||J.key===" ")&&t.onSelect(a(i).origin)}),I(m,x)},h=m=>{var x=ib(),g=p(x),_=p(g),S=E(p(_));ce(S,21,()=>t.item.branches,M=>M.origin,(M,C)=>{var w=nb(),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=rb();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=sb(),w=p(C),O=p(w,!0);v(w),v(C),z(()=>L(O,a(i).content??"")),I(M,C)};$(b,M=>{a(i)&&M(T)})}v(x),jr(S,()=>a(n),M=>k(n,M)),I(m,x)};$(d,m=>{a(r)&&a(s)&&a(i)?m(f):m(h,-1)})}v(u),I(e,u),re()}ue(["click","keydown"]);var lb=A("· <code> </code>",1),cb=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>'),ub=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 db(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=ub(),i=E(p(s),2);ce(i,21,()=>t.item.branches,o=>o.origin,(o,l)=>{var c=cb(),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=lb(),b=E(fe(y)),T=p(b,!0);v(b),z(()=>L(T,a(l).hashPreview)),I(S,y)};$(g,S=>{a(l).hashPreview&&S(_)})}v(m),v(u),v(c),z((S,y)=>{d=_e(u,1,"sh3-conflict-meta-row svelte-1nz3djn",null,d,{selected:a(l).origin===t.selectedOrigin}),L(h,a(l).origin),L(x,`v${a(l).version??""} · ${S??""} · ${y??""} `)},[()=>r(a(l).at),()=>n(a(l).sizeBytes)]),U("click",u,()=>t.onSelect(a(l).origin)),I(o,c)}),v(i),v(s),I(e,s),re()}ue(["click"]);const fb=1048576;function vb(e){return typeof e=="number"&&e>fb}const hb={id:"sh3-core.text",priority:1,appliesTo:e=>Zg(e)!=="text"?!1:!e.branches.some(t=>vb(t.sizeBytes)),mount(e,t){const n=Oe(ab,{target:e,props:t});return()=>{Fe(n)}}},pb={id:"sh3-core.meta",priority:0,appliesTo:()=>!0,mount(e,t){const n=Oe(db,{target:e,props:t});return()=>{Fe(n)}}};let pl=!1;function mb(){pl||(pl=!0,hl(hb),hl(pb))}var gb=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 bb(e,t){var n=gb(),r=p(n),s=p(r);v(r);var i=E(r,4),o=p(i);pr(o,!0);var l=E(o,2),c=E(l,2);v(i),v(n),z(()=>L(s,`${t.count??""} conflict${t.count===1?"":"s"} to resolve`)),U("click",o,function(...u){t.onOverwriteMostRecent?.apply(this,u)}),U("click",l,function(...u){t.onResolveIndividually?.apply(this,u)}),U("click",c,function(...u){t.onCancel?.apply(this,u)}),I(e,n)}ue(["click"]);var yb=A('<span class="sh3-conflict-detail-counter svelte-pw8iv6"> </span>'),_b=A('<button type="button"><span><!></span> <span class="sh3-conflict-detail-rail-label svelte-pw8iv6"> </span></button>'),wb=A('<aside class="sh3-conflict-detail-rail svelte-pw8iv6"></aside>'),kb=A('<label class="sh3-conflict-detail-branch svelte-pw8iv6"><input type="radio"/> <span> </span></label>'),Sb=A('<div class="sh3-conflict-detail-branches svelte-pw8iv6"></div> <div class="sh3-conflict-detail-renderer svelte-pw8iv6"></div>',1),xb=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 Eb(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)?Qg(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=xb(),f=p(d),h=p(f),m=p(h,!0);v(h);var x=E(h,2);{var g=B=>{var Y=yb(),G=p(Y);v(Y),z(()=>L(G,`${t.currentIndex+1} / ${t.items.length??""}`)),I(B,Y)};$(x,B=>{t.items.length>1&&B(g)})}v(f);var _=E(f,2),S=p(_);{var y=B=>{var Y=wb();ce(Y,23,()=>t.items,G=>G.id,(G,Z,J)=>{var te=_b();let ee;var Q=p(te),ve=p(Q);{var he=Ae=>{var ot=Vt("✓");I(Ae,ot)},W=Ae=>{var ot=Vt("⟶");I(Ae,ot)},oe=Ae=>{var ot=Vt("·");I(Ae,ot)};$(ve,Ae=>{a(u)[a(J)]==="resolved"?Ae(he):a(u)[a(J)]==="skipped"?Ae(W,1):Ae(oe,-1)})}v(Q);var me=E(Q,2),Ye=p(me,!0);v(me),v(te),z(()=>{ee=_e(te,1,"sh3-conflict-detail-rail-item svelte-pw8iv6",null,ee,{selected:a(J)===t.currentIndex}),_e(Q,1,`sh3-conflict-detail-rail-state ${a(u)[a(J)]??""}`,"svelte-pw8iv6"),L(Ye,a(Z).label)}),U("click",te,()=>t.onNavigate(a(J))),I(G,te)}),v(Y),I(B,Y)};$(S,B=>{t.items.length>1&&B(y)})}var b=E(S,2),T=p(b);{var M=B=>{var Y=Sb(),G=fe(Y);ce(G,21,()=>a(n).branches,J=>J.origin,(J,te)=>{var ee=kb(),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??""}`),yu(Q,a(te).origin),_u(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);et(Z,J=>k(i,J),()=>a(i)),I(B,Y)};$(T,B=>{a(n)&&B(M)})}v(b),v(_);var C=E(_,2),w=p(C),O=p(w),R=E(O,2),P=p(R,!0);v(R);var D=E(R,2);v(w);var N=E(w,2),V=p(N),j=E(V,2);v(N),v(C),v(d),z(()=>{L(m,t.title),O.disabled=t.currentIndex===0,L(P,a(n)&&t.skipped[a(n).id]?"Unskip":"Skip"),D.disabled=t.currentIndex>=t.items.length-1}),U("click",O,l),U("click",R,()=>a(n)&&t.onToggleSkip(a(n).id)),U("click",D,c),U("click",V,function(...B){t.onCancel?.apply(this,B)}),U("click",j,function(...B){t.onDone?.apply(this,B)}),I(e,d),re()}ue(["click","change"]);function Lu(e,t){return t.at-e.at}function Ib(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(Lu)[0]}}function Ab(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=Ib(b.branches,t.mostRecentBy)?.origin??b.branches[0]?.origin??"";return[b.id,T]})))),i=q(le({})),o=q(0),l=!1;Ho(()=>{l||(l=!0,t.onCancel())});function c(){if(l)return;l=!0;const b=[],T=[];for(const M of t.items){if(a(i)[M.id]){T.push(M.id);continue}const C=a(s)[M.id],w=M.branches.find(O=>O.origin===C);w&&b.push({itemId:M.id,chosen:w,meta:M.meta})}t.onResolve(b,T),t.close()}function u(){l||(l=!0,t.onCancel(),t.close())}function d(){c()}function f(){k(r,"detail")}function h(b,T){if(k(s,{...a(s),[b]:T},!0),a(i)[b]){const M={...a(i)};delete M[b],k(i,M,!0)}}function m(b){k(i,{...a(i),[b]:!a(i)[b]},!0)}function x(b){k(o,b,!0)}var g=ct(),_=fe(g);{var S=b=>{bb(b,{get count(){return t.items.length},onOverwriteMostRecent:d,onResolveIndividually:f,onCancel:u})},y=b=>{Eb(b,{get items(){return t.items},get selections(){return a(s)},get skipped(){return a(i)},get currentIndex(){return a(o)},get title(){return t.title},get contributed(){return t.contributed},onSelect:h,onNavigate:x,onToggleSkip:m,onDone:c,onCancel:u})};$(_,b=>{a(r)==="prompt"?b(S):b(y,-1)})}I(e,g),re()}const Nu="sh3-core.conflictRenderer";class ju extends Error{constructor(t){super(t),this.name="ConflictPermissionError"}}class Cb extends Error{constructor(){super("Caller shard deactivated while conflict session was active"),this.name="ConflictSessionOrphanedError"}}function Tb(){try{return oi(Nu)}catch{return[]}}function zu(e,t={}){return mb(),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??Lu,i=t.requirePrompt??!1,o=Tb();let l=!1;const d={items:e,title:r,mostRecentBy:s,requirePrompt:i,contributed:o,onResolve:(f,h)=>{l||(l=!0,n({status:"resolved",choices:f,skipped:h}))},onCancel:()=>{l||(l=!0,n({status:"cancelled"}))}};Zo.open(Ab,d,{boxStyle:"max-width: none; min-width: 360px; padding: 0;"})})}function Rb(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 Db(e,t){const n=e.browse;if(!n?.statusFrom||!n?.readBranchFrom||!n?.resolveConflictFrom)throw new ju(`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 Pb(e){const t=e.lastIndexOf(".");if(t<0)return;const n=e.lastIndexOf("/");if(!(t<n))return e.slice(t)}async function Mb(e,t,n={}){const r=e.shardId,s=t.shardId===r?Rb(e):Db(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=Pb(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 zu(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 Ob={resolve:zu,resolveDocuments:Mb},qu="sh3.color-picker",Lb={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 Nb(e={}){return[...oi(qu),Lb].sort((r,s)=>(s.priority??0)-(r.priority??0))[0].open(e)}const jb={pick:Nb};let Cn=null;function zb(e){Cn=e}async function rr(e){return Cn?{...Cn.bindings[e]??{}}:{}}async function ml(e,t,n){if(!Cn)return;const r={...Cn.bindings[e]??{}};n===void 0?delete r[t]:r[t]=n,Cn.bindings={...Cn.bindings,[e]:r}}const na="sh3.actions",zi=new Set;function qb(e,t){if(typeof e.run!="function"&&e.submenu!==!0)return console.warn(`[sh3] Action "${e.id}" registered by "${t}" has no \`run\` and is not a submenu parent (\`submenu: true\`). Registration ignored.`),()=>{};zi.has(e.id)&&console.warn(`[sh3] Duplicate action id "${e.id}" registered by "${t}". First registration wins; second registration still stored but shortcut conflicts may occur.`),zi.add(e.id);const r=Mu(na,{action:e,ownerShardId:t});let s=!1;return()=>{s||(s=!0,r(),zi.delete(e.id))}}function ft(){return oi(na)}function Bb(e){return Ou(na,e)}const Vb=["Ctrl","Alt","Shift","Meta"],gl={control:"Ctrl",ctrl:"Ctrl",alt:"Alt",option:"Alt",shift:"Shift",meta:"Meta",cmd:"Meta",command:"Meta",super:"Meta",win:"Meta"},$b=new Set(["Control","Alt","Shift","Meta"]);function Bu(e){return e.length===1?e.toUpperCase():e}function ra(e){if(!e)throw new Error("Empty shortcut");const t=e.split("+");if(t.some(o=>o.trim()===""))throw new Error(`Malformed shortcut: "${e}"`);const n=t.map(o=>o.trim());if(n.length===0)throw new Error(`Malformed shortcut: "${e}"`);const r=new Set;let s;for(const o of n){const l=o.toLowerCase();if(l in gl)r.add(gl[l]);else{if(s!==void 0)throw new Error(`Multiple keys in shortcut: "${e}"`);s=Bu(o)}}if(s===void 0)throw new Error(`No key in shortcut: "${e}"`);return[...Vb.filter(o=>r.has(o)),s].join("+")}function Vu(e,t){if(!e.toLowerCase().includes("mod"))return e;const n=e.split("+").map(r=>r.toLowerCase()==="mod"?t==="mac"?"Meta":"Ctrl":r);return ra(n.join("+"))}function Fb(e){if($b.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=Bu(e.key);return[...t,n].join("+")}function Ub(){return typeof navigator>"u"?"other":/Mac|iPhone|iPad|iPod/i.test(navigator.platform)?"mac":"other"}function ns(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?null:ra(r)}return e.defaultShortcut?Vu(e.defaultShortcut,n):null}function Hb(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?{shortcut:null,source:"disabled"}:{shortcut:ra(r),source:"user"}}return e.defaultShortcut?{shortcut:Vu(e.defaultShortcut,n),source:"default"}:{shortcut:null,source:"none"}}function ai(e){return e==="home"?"home":e==="app"?"app":typeof e=="string"&&e.startsWith("view:")?"view":typeof e=="string"&&e.startsWith("focus:")?"focus":"element"}function $u(e){return Array.isArray(e)?e:[e]}function Fu(e){return e==="home"||e==="app"?null:typeof e=="string"?e:e.element}function br(e,t,n){const r=$u(e),s={};for(const i of r){const o=ai(i);(s[o]??=[]).push(i)}for(const i of li){const o=s[i];if(o){for(const l of o)if(Uu(l,t,n))return l}}return null}const li=["element","focus","view","app","home"];function Uu(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 Kb(e,t){const n={element:new Map,focus:new Map,view:new Map,app:new Map,home:new Map};for(const r of e){const s=ns(r.action,t.bindings,t.platform);if(s)for(const i of $u(r.action.scope)){if(!Uu(i,t,r.ownerShardId))continue;const o=ai(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 Wb(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 Yb(e){const t=Kb(e.entries,e.state),n=new Map(e.entries.map(r=>[r.action.id,r]));for(const r of li){const s=t[r].get(e.shortcut);if(!s)continue;const i=n.get(s);if(i)return Wb(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 Gb(){return a(Lt)}function Xb(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 Jb(e){a(Lt)&&a(Lt).ownerShardId===e&&k(Lt,null)}function Zb(){k(Lt,null)}const Ns=new Map,Hu=new Set;function Qb(e){Hu.add(e)}function ey(e,t){if(Ns.has(e))throw new Error(`View "${e}" is already registered`);Ns.set(e,t);for(const n of Hu)n(e,t)}function Ku(e){return Ns.get(e)}function ty(e){Ns.delete(e)}const zr=new Map;function ny(e,t){if(zr.has(e))throw new Error(`Verb "${e}" is already registered`);zr.set(e,t)}function bl(e){return zr.get(e)}function ry(e){zr.delete(e)}function sa(){return Array.from(zr.values()).sort((e,t)=>e.name.localeCompare(t.name))}function dr(e,t){const n=(r,s)=>{if(r.type==="tabs"){const i=r.tabs.findIndex(o=>o.slotId===t);if(i>=0)return{tabsNode:r,tabsPath:s,tabIndex:i,entry:r.tabs[i]}}else if(r.type==="split")for(let i=0;i<r.children.length;i++){const o=n(r.children[i],[...s,i]);if(o)return o}return null};return n(e,[])}function ia(e,t){if(co(e.docked,t))return{kind:"docked"};for(const n of e.floats)if(co(n.content,t))return{kind:"float",floatId:n.id};return null}function co(e,t){if(e.type==="slot")return e.slotId===t;if(e.type==="tabs")return e.tabs.some(n=>n.slotId===t);for(const n of e.children)if(co(n,t))return!0;return!1}function ci(e,t){const n=dr(e,t);if(!n)return null;const{tabsNode:r,tabIndex:s,entry:i}=n;return r.tabs.splice(s,1),r.tabs.length===0?r.activeTab=0:s<r.activeTab?r.activeTab-=1:r.activeTab>=r.tabs.length&&(r.activeTab=r.tabs.length-1),i}function sy(e,t,n){const r=Math.max(0,Math.min(n,e.tabs.length));e.tabs.splice(r,0,t),e.activeTab=r}function iy(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 yl(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 oy(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 Wu(e,t,n,r){const s=qr(e,t);if(!s||Yu(e,t))return;if(t.length===0){const u=oy(s),d=yl(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=yl(s,n,r),o=t.slice(0,-1),l=t[t.length-1],c=qr(e,o);!c||c.type!=="split"||(c.children[l]=i)}function qr(e,t){let n=e;for(const r of t){if(n.type!=="split"||r<0||r>=n.children.length)return null;n=n.children[r]}return n}function Yu(e,t){if(t.length===0)return!1;const n=qr(e,t.slice(0,-1));return!n||n.type!=="split"?!1:n.fixed?.[t[t.length-1]]===!0}function tr(e){let t=!0;for(;t;)t=Gu(e,null,0)}function Gu(e,t,n){if(e.type==="split"){let r=!1;for(let s=0;s<e.children.length;s++)Gu(e.children[s],e,s)&&(r=!0);for(let s=e.children.length-1;s>=0;s--){const 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 mn=new Map,ws=new Set;function ay(e,t){for(const[n,r]of mn.entries()){if(r.viewId!==e||r.handle!==void 0)continue;const s={slotId:n,viewId:e,label:r.label,meta:r.meta,setDirty(i){ui[n]=i},location(){return ia(xt(),n)}};queueMicrotask(()=>{if(mn.has(n)&&r.handle===void 0&&(r.handle=t.mount(r.host,s),(r.handle?.closable||n.startsWith("float:"))&&(di[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)}})}}Qb(ay);const ui=le({}),di=le({});function ly(e,t,n,r){const s=document.createElement("div");s.className="slot-host",s.dataset.slotId=e,t&&s.setAttribute("data-sh3-view",t),s.style.position="absolute",s.style.inset="0",s.style.minWidth="0",s.style.minHeight="0";let i=!1;const o={host:s,handle:void 0,viewId:t,label:n,meta:r,refcount:0,resizeObserver:void 0,cancelPendingMount:()=>{i=!0}};return queueMicrotask(()=>{if(i)return;const l=t?Ku(t):void 0,c={slotId:e,viewId:t??"",label:n,meta:r,setDirty(u){ui[e]=u},location(){return ia(xt(),e)}};if(o.handle=l?.mount(s,c),(o.handle?.closable||e.startsWith("float:"))&&(di[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 oa(e,t,n,r){ws.delete(e);let s=mn.get(e);return s?s.viewId!==t&&(console.warn(`[sh3] acquireSlotHost("${e}") called with viewId "${t}" but existing pooled entry has viewId "${s.viewId}". Attribute synced; view handle unchanged.`),s.viewId=t,t?s.host.setAttribute("data-sh3-view",t):s.host.removeAttribute("data-sh3-view")):(s=ly(e,t,n,r),mn.set(e,s)),s.refcount++,s.host}function aa(e,t){const n=mn.get(e);if(n){if(n.refcount--,n.refcount>0){t&&n.host.parentNode===t&&n.host.remove();return}ws.add(e),queueMicrotask(()=>{if(!ws.has(e))return;ws.delete(e);const r=mn.get(e);!r||r.refcount>0||(r.resizeObserver?.disconnect(),r.handle?.unmount(),r.cancelPendingMount(),r.host.remove(),mn.delete(e),delete ui[e],delete di[e])})}}function Xu(e){const t=uo.get(e);return t||mn.get(e)?.handle}function cy(e){return ui[e]??!1}function uy(e){return uo.has(e)?!!uo.get(e).closable:di[e]??!1}const uo=new Map;function Ju(e){if(!e||typeof e!="object")return!1;const t=e.type;return t==="split"||t==="tabs"||t==="slot"}function dy(e){if(!e||typeof e!="object")return!1;const t=e;return Ju(t.docked)&&Array.isArray(t.floats)}function fy(e){return{docked:e,floats:[]}}function vy(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 Zu(e){if(Array.isArray(e))return e.map(vy);if(dy(e))return[{name:"default",variants:{default:e}}];if(Ju(e))return[{name:"default",variants:{default:fy(e)}}];throw new Error("normalizeInitialLayout: input is not a LayoutNode, LayoutTree, or LayoutPreset[]")}function _l(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 la(e){const t=_l(e.docked);for(const n of e.floats)t.push(..._l(n.content));return t}const bn=le(new Map),jt=le({id:null}),fo=le({id:null});function hy(){return fo.id}function ca(e){bn.set(e.manifest.id,e)}function ua(){return Array.from(bn.values()).map(e=>e.manifest)}function Qu(){const e=jt.id;return e?bn.get(e)?.manifest??null:null}function yn(e){return bn.get(e)}io("workspace","__shell__");const py={type:"slot",slotId:"sh3core.home",viewId:"sh3core:home"},my=le({docked:py,floats:[]});let je=q(null),fi=q("home");function gy(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 by(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 yy(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=Zu(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=og("workspace",t),i=gy(s);(i&&i.layoutVersion!==e.manifest.layoutVersion||s&&!i)&&io("workspace",t);const l=ri(t,{workspace:r}).workspace;k(je,{appId:e.manifest.id,proxy:l,heldSlotIds:[]},!0),Ug(l)}function _y(){if(!a(je))throw new Error("acquireAppSlotHolds: no app attached");if(a(je).heldSlotIds.length>0)return;const e=by(a(je).proxy),t=la(e);for(const{slotId:n,viewId:r,label:s,meta:i}of t)oa(n,r,s,i),a(je).heldSlotIds.push(n)}function wy(){if(!a(je))throw new Error("resetActivePresetToDefault: no app attached");const e=yn(a(je).appId);if(!e)throw new Error(`resetActivePresetToDefault: attached app "${a(je).appId}" not in registry`);const t=Zu(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)aa(l);a(je).heldSlotIds=[];const i=structuredClone(s.variants.default);n.presets[n.activePreset].default=i;const o=la(i);for(const{slotId:l,viewId:c,label:u,meta:d}of o)oa(l,c,u,d),a(je).heldSlotIds.push(l)}function ed(){if(a(je)){Hg();for(const e of a(je).heldSlotIds)aa(e);k(je,null)}}function td(){k(fi,"home")}function wl(){if(!a(je))throw new Error("Cannot switchToApp: no app is attached");k(fi,"app")}const ks=F(()=>{if(a(fi)==="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 my});function xt(){return a(ks)}function nd(){return a(fi)}const Zt={get root(){return a(ks).docked},get tree(){return a(ks)},get floats(){return a(ks).floats}};let rd=q(null),sd=q(le(new Set)),Ss=q(le(new Set)),id=q(le(new Set)),od=q(null),ad=q(le({}));const ky=Ub(),vo=new Set;function yr(){for(const e of vo)try{e()}catch(t){console.error("[sh3] onActiveChange listener threw",t)}}function Sy(e){return vo.add(e),()=>{vo.delete(e)}}function xy(){yr()}function js(e,t){k(rd,e,!0),k(sd,new Set(t),!0),yr()}function Ey(){const e=la(Zt.tree),t=new Set;for(const n of e)n.viewId!==null&&t.add(n.viewId);k(id,t,!0),yr()}function ld(e){k(od,e,!0),yr()}function Br(e){k(ad,{...e},!0),yr()}function Jt(){return{activeAppId:a(rd),activeAppRequiredShards:a(sd),autostartShards:a(Ss),mountedViewIds:a(id),focusedViewId:a(od),selection:Gb(),bindings:a(ad),platform:ky}}function Iy(e){a(Ss).has(e)||(k(Ss,new Set([...a(Ss),e]),!0),yr())}var Ay=A('<div class="sh3-ctx-sep svelte-1667pfa" role="separator"></div>'),Cy=A('<span class="sh3-ctx-chevron svelte-1667pfa">▸</span>'),Ty=A('<span class="sh3-ctx-shortcut svelte-1667pfa"> </span>'),Ry=A('<button role="menuitem"><span class="sh3-ctx-check svelte-1667pfa"> </span> <span class="sh3-ctx-label svelte-1667pfa"> </span> <!></button>'),Dy=A("<!> <!>",1),Py=A('<div class="sh3-context-menu svelte-1667pfa" role="menu" tabindex="0"></div>');function zs(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=Py();pr(l,!0),ce(l,23,()=>t.sections,c=>c.id,(c,u,d)=>{var f=Dy(),h=fe(f);{var m=g=>{var _=Ay();I(g,_)};$(h,g=>{a(d)>0&&g(m)})}var x=E(h,2);ce(x,17,()=>a(u).items,g=>g.id,(g,_)=>{const S=F(()=>a(n).indexOf(a(_)));var y=Ry();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=Cy();I(D,N)},P=D=>{var N=Ty(),V=p(N,!0);v(N),z(()=>L(V,a(_).shortcut)),I(D,N)};$(O,D=>{a(_).submenu?D(R):a(_).shortcut&&D(P,1)})}v(y),z(()=>{b=_e(y,1,"sh3-ctx-item svelte-1667pfa",null,b,{"sh3-ctx-active":a(S)===a(r),"sh3-ctx-disabled":a(_).disabled}),be(y,"aria-disabled",a(_).disabled||void 0),L(M,a(_).checked?"✓":""),L(w,a(_).label)}),Qe("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 My(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}))})));zs(e,{get sections(){return a(n)},get onInvoke(){return t.onInvoke},get onDismiss(){return t.onClose}}),re()}function kl(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function cd(e,t){return{id:e.action.id,label:e.action.label,shortcut:ns(e.action,t.bindings,t.platform),group:e.action.group??"",icon:e.action.icon,checked:kl(e.action.checked),disabled:kl(e.action.disabled),submenu:e.action.submenu===!0}}function Oy(e,t){const n={element:[],focus:[],view:[],app:[],home:[]},r=new Set;for(const s of e){if(!s.action.contextItem||s.action.submenuOf!==void 0||r.has(s.action.id))continue;const i=br(s.action.scope,t,s.ownerShardId);i&&(r.add(s.action.id),n[ai(i)].push(cd(s,t)))}return{tiers:li.map(s=>({tier:s,items:n[s]})).filter(s=>s.items.length>0)}}function Ly(e,t,n){const r=[],s=new Set;for(const i of e)i.action.submenuOf!==n||s.has(i.action.id)||!br(i.action.scope,t,i.ownerShardId)||(s.add(i.action.id),r.push(cd(i,t)));return r}function Ny(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 jy(e,t,n){const r=[];for(const i of e){if(t===""&&i.submenuOf!==void 0)continue;const o=Ny(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 zy=A('<span class="sh3-palette-badge svelte-1qdcgk6"> </span>'),qy=A('<span class="sh3-palette-shortcut svelte-1qdcgk6"> </span>'),By=A('<button role="option"><span class="sh3-palette-label svelte-1qdcgk6"> </span> <!> <!></button>'),Vy=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 $y(e,t){ne(t,!0);let n=We(t,"prefill",3,""),r=q(le(n())),s=q(0);const i=F(()=>jy(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=Vy(),c=p(l);Se(c),pr(c,!0);var u=E(c,2);ce(u,23,()=>a(i),d=>d.id,(d,f,h)=>{var m=By();let x;var g=p(m),_=p(g,!0);v(g);var S=E(g,2);{var y=M=>{var C=zy(),w=p(C);v(C),z(()=>L(w,`[${a(f).scopeBadge??""}]`)),I(M,C)};$(S,M=>{a(f).scopeBadge&&M(y)})}var b=E(S,2);{var T=M=>{var C=qy(),w=p(C,!0);v(C),z(()=>L(w,a(f).shortcut)),I(M,C)};$(b,M=>{a(f).shortcut&&M(T)})}v(m),z(()=>{x=_e(m,1,"sh3-palette-item svelte-1qdcgk6",null,x,{"sh3-palette-active":a(h)===a(s)}),be(m,"aria-selected",a(h)===a(s)),L(_,a(f).label)}),Qe("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 Fy(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function Uy(e,t,n={}){const r=[],s=new Set,i=n.filter?.submenuOf;for(const o of e){if(o.action.paletteItem===!1||Fy(o.action.disabled)||i!==void 0&&o.action.submenuOf!==i||s.has(o.action.id))continue;const l=br(o.action.scope,t,o.ownerShardId);l&&(s.add(o.action.id),r.push({id:o.action.id,label:o.action.label,shortcut:ns(o.action,t.bindings,t.platform),scopeBadge:Fu(l),submenu:o.action.submenu===!0,submenuOf:i!==void 0?void 0:o.action.submenuOf}))}return r}let Sl=!1;function ud(e){return e?e.closest("[data-sh3-view]")?.getAttribute("data-sh3-view")??null:null}function dd(e,t){const n=ft().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 rs(e){const t=ft().find(r=>r.action.id===e);if(!t){console.warn(`[sh3] ctx.dispatch("${e}") — no action registered with that id.`);return}const n=Jt();dd(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:rs})}function Hy(e){const t=ud(e.target);ld(t)}function Ky(e){queueMicrotask(()=>{const t=ud(document.activeElement);ld(t)})}function Wy(e){return e instanceof Element?e.closest('[data-sh3-context-menu="native"]')!==null:!1}function Yy(e,t,n){const r=document.querySelector(".sh3-popup-host");if(!r)return;const s=document.createElement("div");s.className="sh3-popup-submenu",s.style.position="absolute",s.style.pointerEvents="auto";const o=(r.querySelector(".sh3-ctx-active")??r).getBoundingClientRect();s.style.left=`${o.right+2}px`,s.style.top=`${o.top}px`,r.appendChild(s);const l=Ly(ft(),t,e);Oe(zs,{target:s,props:{sections:[{id:`submenu:${e}`,items:l}],onInvoke:c=>{const u=ft().find(d=>d.action.id===c);if(!(!u||typeof u.action.run!="function")){try{u.action.run({action:{id:c,label:u.action.label},appId:t.activeAppId,viewId:t.focusedViewId??void 0,selection:t.selection??void 0,invokedVia:"context-menu",dispatch:rs})}catch(d){console.error(`[sh3] context-menu submenu action "${c}" threw:`,d)}n.close()}},onDismiss:()=>n.close()}})}function fd(e){if(Wy(e.target))return;const t=ft(),n=Jt(),r=Oy(t,n);if(r.tiers.length===0)return;e.preventDefault();const s=hi.popup.show(My,{anchor:{x:e.clientX,y:e.clientY}},{model:r,onInvoke:i=>{const o=ft().find(l=>l.action.id===i);if(o){if(o.action.submenu===!0){Yy(i,n,s);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:"context-menu",dispatch:rs})}catch(l){console.error(`[sh3] context-menu action "${i}" threw:`,l)}}},onClose:()=>s.close()})}function Gy(e){const t=Fb(e);if(!t)return;const n=ft(),r=Jt();Yb({target:e.target,shortcut:t,state:r,entries:n,runAction:dd,dispatch:rs})&&e.preventDefault()}function vd(){Sl||(Sl=!0,document.addEventListener("keydown",Gy),document.addEventListener("focusin",Hy),document.addEventListener("focusout",Ky),document.addEventListener("contextmenu",fd))}function da(e){const t={target:null,clientX:e.x,clientY:e.y,preventDefault:()=>{}};fd(t)}const Xy=20;let ho=[];function Jy(e){ho=[e,...ho.filter(t=>t!==e)].slice(0,Xy)}function vi(e){const t=ft(),n=Jt(),r=Uy(t,n,{filter:e?.filter}),s=hi.modal.open($y,{candidates:r,recency:ho,prefill:e?.prefill??"",onInvoke:i=>{const o=ft().find(l=>l.action.id===i);if(o){if(Jy(i),o.action.submenu===!0&&typeof o.action.run!="function"){s.close(),vi({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:rs})}catch(l){console.error(`[sh3] palette action "${i}" threw:`,l)}}},onClose:()=>s.close()},{dismissOnBackdrop:!0})}const Zy=Object.freeze(Object.defineProperty({__proto__:null,attachGlobalListeners:vd,openContextMenu:da,openPalette:vi},Symbol.toStringTag,{value:"Module"}));function Qy(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=br(s.action.scope,t,s.ownerShardId);if(!i)continue;r.add(s.action.id);const{shortcut:o,source:l}=Hb(s.action,t.bindings,t.platform);n[ai(i)].push({id:s.action.id,label:s.action.label,effectiveShortcut:o,bindingSource:l,scope:i,scopeBadge:Fu(i),group:s.action.group,icon:s.action.icon,ownerShardId:s.ownerShardId,paletteItem:s.action.paletteItem!==!1,contextItem:s.action.contextItem!==!1})}return li.flatMap(s=>n[s])}const e_={async rebind(e,t,n){await ml(e,t,n),Jt().activeAppId===e&&Br(await rr(e))},async resetBinding(e,t){await ml(e,t,void 0),Jt().activeAppId===e&&Br(await rr(e))},async bindingsFor(e){const t=await rr(e),n={};for(const[r,s]of Object.entries(t))s!==null&&(n[r]=s);return n},openContextMenu:da,openPalette:vi,listActive(){return Qy(ft(),Jt())},onActiveChange(e){const t=Sy(e),n=Bb(()=>{xy()});return()=>{t(),n()}}},hi={state:ri,modal:Zo,popup:ao,toast:Dg,float:Mt,presets:Gg,conflicts:Ob,color:jb,actions:e_};function Kn(e,t,n){return`${e}/${t}/${n}`}function t_(e,t){return`${e}/${t}/`}const n_="sh3-documents",Ct="docs",r_=2;class s_{#e=null;#t(){return this.#e||(this.#e=new Promise((t,n)=>{const r=indexedDB.open(n_,r_);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=t_(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 i_{#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 o_{#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 Tn=new o_,a_=1e3;function l_(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){Tn.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){await n.delete(e,t,u),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),Tn.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=Tn.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 c_(c,u,d?.debounceMs??a_);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 c_{#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 u_="local";let hd=u_,pd=new s_;function qi(){return hd}function xl(){return pd}function Bi(e){hd=e}function d_(e){pd=e}const f_="sync:peer",v_="sync:policy";let _r=q(null),Qt=q(null),wr=q(!1),pi="",po=null;function El(e,t){pi=e,po=t.auth,k(_r,t.user,!0),k(Qt,t.session,!0),k(wr,!t.session&&!t.user,!0)}async function md(e,t){try{const n=await fetch(`${pi}/api/auth/login`,{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:e,password:t})});if(!n.ok)return{ok:!1,error:(await n.json().catch(()=>({}))).error||"Login failed"};const r=await n.json();return k(_r,r.user,!0),k(Qt,r.session,!0),k(wr,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function h_(e,t,n){try{const r=await fetch(`${pi}/api/auth/register`,{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:e,password:t,displayName:n})});if(!r.ok)return{ok:!1,error:(await r.json().catch(()=>({}))).error||"Registration failed"};const s=await r.json();return k(_r,s.user,!0),k(Qt,s.session,!0),k(wr,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function p_(){try{await fetch(`${pi}/api/auth/logout`,{method:"POST",credentials:"include"})}catch{}if(po?.required&&!po.guestAllowed){window.location.reload();return}k(_r,null),k(Qt,null),k(wr,!0)}function m_(){k(_r,{id:"local",username:"local",displayName:"Local Owner",role:"admin",createdAt:"",updatedAt:""},!0),k(Qt,{token:"local",userId:"local",role:"admin",expiresAt:1/0},!0),k(wr,!1)}function g_(){return a(Qt)?.token==="local"}function dn(){return a(Qt)?.role==="admin"}function mo(){return a(Qt)!==null}function gd(){return a(wr)}function mi(){return a(_r)}function gi(){return a(Qt)?`Bearer ${a(Qt).token}`:null}let kr="";function bd(e){kr=e}async function b_(e){const t=await fetch(`${kr}/api/env-state/${encodeURIComponent(e)}`);return t.ok?await t.json():(console.warn(`[sh3] Failed to fetch env state for "${e}": HTTP ${t.status}`),{})}async function y_(e,t){if(!dn())throw new Error("Cannot update env state: not elevated to admin");const n=gi(),r={"Content-Type":"application/json"};n&&(r.Authorization=n);const s=await fetch(`${kr}/api/env-state/${encodeURIComponent(e)}`,{method:"PUT",headers:r,body:JSON.stringify(t)});if(!s.ok){const i=await s.json().catch(()=>({}));throw new Error(`Env state update failed: HTTP ${s.status} — ${i.error??"unknown"}`)}}async function fa(e,t,n){if(!dn())throw new Error("Cannot install: not elevated to admin");const r=gi(),s=new FormData;s.append("manifest",new Blob([JSON.stringify(e)],{type:"application/json"}),"manifest.json"),s.append("client",new Blob([t],{type:"application/javascript"}),"client.js"),n!==void 0&&s.append("server",new Blob([n],{type:"application/javascript"}),"server.js");const i={};r&&(i.Authorization=r);const o=await fetch(`${kr}/api/packages/install`,{method:"POST",headers:i,body:s});if(!o.ok){let l={};try{l=await o.json()}catch{}return{ok:!1,error:typeof l.error=="string"?l.error:`HTTP ${o.status}`,code:typeof l.code=="string"?l.code:void 0,missing:Array.isArray(l.missing)?l.missing:void 0}}return{ok:!0}}async function yd(e){if(!dn())throw new Error("Cannot uninstall: not elevated to admin");const t=gi(),n={"Content-Type":"application/json"};t&&(n.Authorization=t);const r=await fetch(`${kr}/api/packages/uninstall`,{method:"POST",headers:n,body:JSON.stringify({id:e})});if(!r.ok){const s=await r.json().catch(()=>({}));throw new Error(`Uninstall failed: HTTP ${r.status} — ${s.error??"unknown"}`)}}async function __(){const e=await fetch(`${kr}/api/packages`);return e.ok?await e.json():[]}function w_(e){return Ht[e].list()}function k_(e,t){return Ht[e].read(t)}function S_(e,t){Ht[e].delete(t)}function x_(e){for(const t of Ht[e].list())Ht[e].delete(t)}function _d(){return{list:w_,peek:k_,clear:S_,clearAll:x_}}const wd="documents:browse",kd="documents:read",Sd="documents:write";function E_(e,t,n={canRead:!1,canWrite:!1}){const r={listDocuments:()=>t.listAllDocuments(e),listShards:()=>t.listAllShards(e),watchDocuments:s=>Tn.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),Tn.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),Tn.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),Tn.emit({type:"rename",path:o,oldPath:i,tenantId:e,shardId:s})}),r}const xd="keys:mint";class Ed extends Error{constructor(t){super(`Shard may not mint a key with scope '${t}' — not declared in manifest.`),this.name="ScopeEscalationError"}}class Id extends Error{constructor(){super("User denied key creation."),this.name="ConsentDeniedError"}}const go=new Map;let Mr=null;function Ad(e){return Mr=e,()=>{Mr===e&&(Mr=null)}}async function I_(e,t){if(!Mr)throw new Error("No consent listener registered — the shell must mount ConsentDialog.");const n=`c_${Math.random().toString(36).slice(2)}${Date.now()}`;return new Promise(r=>{go.set(n,{resolve:r}),Mr({...t,shardId:e,requestId:n})})}function bo(e,t){const n=go.get(e);n&&(go.delete(e),n.resolve(t))}const qs=new Map,xs=new Map,A_=5e3;function C_(e,t){let n=xs.get(e);n||(n=new Set,xs.set(e,n)),n.add(t),setTimeout(()=>{n.delete(t),n.size===0&&xs.delete(e)},A_)}function T_(e,t){return xs.get(e)?.has(t)??!1}function va(e,t){const n=qs.get(e)??new Set;return n.add(t),qs.set(e,n),()=>{n.delete(t)}}function Cd(e,t){if(!e||T_(e,t))return;C_(e,t);const n=qs.get(e);if(n)for(const s of n)s(t);const r=qs.get("*");if(r)for(const s of r)s(t)}function R_(){if(typeof EventSource>"u")return()=>{};const e=new EventSource("/api/keys/events",{withCredentials:!0});return e.onmessage=t=>{try{const n=JSON.parse(t.data);Cd(n.shardId,n.id)}catch{}},()=>e.close()}function D_(e){const{shardId:t,shardPermissions:n}=e,r=s=>{for(const i of s)if(!n.includes(i)&&!n.includes("admin:*"))throw new Ed(i)};return{async mint(s){if(r(s.scopes),!await I_(t,s))throw new Id;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}`);Cd(t,s)}}}const en=le(new Map),Vr=new Map,ss=le(new Map);function ha(e){const t=e.manifest.id;en.has(t)&&ss.has(t)&&bi(t),en.set(t,e)}async function Td(e){const t=en.get(e);if(!t)throw new Error(`Cannot activate shard "${e}": not registered`);if(Vr.has(e))return;const n={shard:t,ctx:void 0,viewIds:new Set,verbNames:new Set,cleanupFns:[]},r=le({proxy:null,defaults:null}),s={register(o,l){const c=Mu(o,l);return n.cleanupFns.push(async()=>c()),c},list(o){return oi(o)},listPoints(){return Xg()},onChange(o,l){const c=Ou(o,l);return n.cleanupFns.push(async()=>c()),c}},i={state:o=>hi.state(e,o),registerView:(o,l)=>{ey(o,l),n.viewIds.add(o)},registerVerb:o=>{const l=e==="shell"?o.name:`${e}:${o.name}`;ny(l,{...o,name:l}),n.verbNames.add(l)},documents:o=>{const l=l_(qi(),e,xl(),o);return n.cleanupFns.push(()=>l.dispose()),l},env(o){return r.proxy?(console.warn(`[sh3] Shard "${e}" called ctx.env() more than once; extra calls are ignored.`),r.proxy):(r.defaults=o,r.proxy={...o},r.proxy)},async envUpdate(o){if(!r.proxy||!r.defaults)throw new Error(`Shard "${e}" called envUpdate() without declaring env state`);const l=zn(r.proxy);Object.assign(r.proxy,o);try{const c=zn(r.proxy);await y_(e,c)}catch(c){throw Object.assign(r.proxy,l),c}},get isAdmin(){return dn()},get tenantId(){return qi()},zones:t.manifest.permissions?.includes(Xo)?_d():void 0,browse:t.manifest.permissions?.includes(wd)?E_(qi(),xl(),{canRead:t.manifest.permissions.includes(kd),canWrite:t.manifest.permissions.includes(Sd)}):void 0,keys:t.manifest.permissions?.includes(xd)?D_({shardId:e,shardPermissions:t.manifest.permissions??[]}):void 0,contributions:s,actions:{register(o){const l=qb(o,e);return n.cleanupFns.push(async()=>l()),l},selection:Xb(e),openContextMenu(o){da(o)},openPalette(o){vi(o)}}};if(n.ctx=i,t.onKeyRevoked){const o=va(e,async l=>{try{await t.onKeyRevoked(l)}catch(c){console.error(`[sh3] onKeyRevoked failed in "${e}":`,c)}});n.cleanupFns.push(async()=>o())}Vr.set(e,n),ss.set(e,t),await t.activate(i);for(const o of t.manifest.views)if(!n.viewIds.has(o.id))throw new Error(`Shard "${e}" declared view "${o.id}" in its manifest but registered no factory for it.`);if(r.proxy&&r.defaults)try{const o=await b_(e),l=Object.assign({},r.defaults,o);Object.assign(r.proxy,l)}catch(o){console.warn(`[sh3] Failed to hydrate env state for shard "${e}":`,o instanceof Error?o.message:o)}t.autostart?.(i)}function bi(e){const t=Vr.get(e);if(t){t.shard.deactivate?.();for(const n of t.cleanupFns)n();for(const n of t.verbNames)ry(n);for(const n of t.viewIds)ty(n);Jb(e),Vr.delete(e),ss.delete(e)}}function P_(e){return Vr.get(e)?.ctx}function Il(){const e=[];for(const t of ss.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 Rd=ri("__sh3core__:last-app",{user:{id:null}});function M_(){return Rd.user.id}function Bs(e){Rd.user.id=e}const yo=new Map;function ds(e){let t=yo.get(e);if(!t){const n=yn(e);t={state:r=>ri(`__app__:${e}`,r),zones:n?.manifest.permissions?.includes(Xo)?_d():void 0},yo.set(e,t)}return t}async function $n(e){const t=yn(e);if(!t)throw new Error(`Cannot launch app "${e}": not registered`);if(jt.id&&jt.id!==e)Dd(jt.id);else if(jt.id===e){for(const n of t.manifest.requiredShards){const r=en.get(n),s=P_(n);r&&s&&r.resume?.(s)}t.resume?.(ds(e)),wl(),t.onAppReady?.(ds(e)),Bs(e),fo.id=e,js(e,new Set(t.manifest.requiredShards??[])),rr(e).then(Br);return}for(const n of t.manifest.requiredShards)if(!en.has(n))throw new Error(`App "${e}" requires shard "${n}" which is not registered`);yy(t);try{for(const n of t.manifest.requiredShards)await Td(n)}catch(n){throw ed(),n}_y(),t.activate?.(ds(e)),jt.id=e,js(e,new Set(t.manifest.requiredShards??[])),rr(e).then(Br),wl(),t.onAppReady?.(ds(e)),Bs(e),fo.id=e}function Dd(e){if(jt.id!==e)return;const t=yn(e);if(t){t.deactivate?.(),td(),ed();for(const n of t.manifest.requiredShards){const r=en.get(n);r&&(r.autostart||bi(n))}jt.id=null,js(null,new Set),Zb(),rr("sh3.home").then(Br),yo.delete(e)}}function pa(e){bn.has(e)&&(jt.id===e&&(Dd(e),Bs(null)),bn.delete(e))}async function Pd(){const e=jt.id?yn(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 td(),js(null,new Set),Bs(null),!0}const O_="modulepreload",L_=function(e){return"/"+e},Al={},Md=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=L_(c),c in Al)return;Al[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":O_,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 Od(){return{root:xt(),source:nd()}}function N_(e){const t=xt().docked,n=ga(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 j_(e){const t=xt();return _i(t.docked,n=>n.slotId===e)?!0:Ld(t,n=>n.slotId===e)}function yi(e){const t=xt();return _i(t.docked,n=>n.viewId===e)?!0:Ld(t,n=>n.viewId===e)}function _i(e,t){if(e.type==="tabs"){const n=e.tabs.findIndex(t);return n>=0?(e.activeTab=n,!0):!1}if(e.type==="split"){for(const n of e.children)if(_i(n,t))return!0}return!1}function Ld(e,t){for(const n of e.floats)if(_i(n.content,t))return Mt.focus(n.id),!0;return!1}function z_(e,t){return Nd(e,t,!0)}function q_(e,t){return Nd(e,t,!1)}function Nd(e,t,n){const r=xt().docked,s=qr(r,e);if(!s||s.type!=="split")return!1;const i=s;return t<0||t>=i.children.length?!1:(i.collapsed||(i.collapsed=i.children.map(()=>!1)),i.collapsed[t]=n,!0)}async function ma(e){const t=xt(),n=t.docked;if(!dr(n,e))return B_(t,e);const i=Xu(e)?.closable;return!i||typeof i=="object"&&(!await i.canClose()||!dr(n,e))?!1:(ci(n,e),tr(n),!0)}async function B_(e,t){for(const n of e.floats){if(!dr(n.content,t))continue;const i=Xu(t)?.closable;if(typeof i=="object"&&(!await i.canClose()||!dr(n.content,t)))return!1;ci(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 jd(e){const t=xt(),n=dr(t.docked,e);if(!n)return null;const r=n.entry,s=r.viewId;if(!s)return null;const i=r.label,o=r.meta;return ci(t.docked,e),tr(t.docked),Mt.open(s,{title:i,meta:o})}function zd(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=ba({slotId:i.slotId,viewId:i.viewId,label:i.label,meta:i.meta});return o&&Mt.close(e),o}function ga(e){if(e.type==="tabs")return e;if(e.type==="split")for(const t of e.children){const n=ga(t);if(n)return n}return null}function qd(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=qd(e.children[n],[...t,n]);if(r)return r}return null}function ba(e){const t=xt().docked;if(yi(e.viewId??""))return!0;const n=ga(t);if(n)return n.tabs.push(e),n.activeTab=n.tabs.length-1,!0;const r=qd(t);return r?(Wu(t,r,e,"right"),!0):!1}function Bd(e){return ia(xt(),e)}class ut extends Error{constructor(t,n){super(`Registry validation error at ${t}: ${n}`),this.name="RegistryValidationError",this.path=t}}function Vd(e){if(!e||typeof e!="object"||Array.isArray(e))throw new ut("$","expected an object");const t=e;if(t.version!==1)throw new ut("$.version",`expected 1, got ${JSON.stringify(t.version)}`);if(!Array.isArray(t.packages))throw new ut("$.packages","expected an array");return{version:1,packages:t.packages.map((r,s)=>V_(r,`$.packages[${s}]`))}}function V_(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new ut(t,"expected an object");const n=e;Nt(n,"id",t),U_(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 ut(r,"expected an object");const s=n.author;if(typeof s.name!="string"||s.name.length===0)throw new ut(`${r}.name`,"expected a non-empty string");if(!Array.isArray(n.versions)||n.versions.length===0)throw new ut(`${t}.versions`,"expected a non-empty array");const i=n.versions.map((o,l)=>$_(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 $_(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new ut(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 ut(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 ut(t,"expected at least one of bundleUrl+integrity or serverBundleUrl");let o;if(n.requires!==void 0){if(!Array.isArray(n.requires))throw new ut(`${t}.requires`,"expected an array");o=n.requires.map((l,c)=>F_(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 F_(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new ut(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 ut(`${n}.${t}`,"expected a non-empty string")}function U_(e,t,n,r){if(!n.includes(e[t]))throw new ut(`${r}.${t}`,`expected one of: ${n.join(", ")}`)}const Cl=["sha256","sha384","sha512"];function H_(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(!Cl.includes(n))throw new Error(`Unsupported SRI algorithm: ${n}. Supported: ${Cl.join(", ")}`);if(!r)throw new Error(`Empty hash in SRI: ${e}`);return{algorithm:n,hash:r}}function K_(e){return`SHA-${e.slice(3)}`}function W_(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 ya(e,t){const{algorithm:n,hash:r}=H_(t),s=K_(n),i=await crypto.subtle.digest(s,e),o=W_(i);if(o!==r)throw new Error(`Integrity check failed for ${n}. Expected: ${r}, got: ${o}`)}async function $d(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=Vd(s)}catch(o){console.warn(`[sh3] Registry ${r} failed validation: ${o instanceof Error?o.message:String(o)}`);continue}for(const o of i.packages)t.has(o.id)||(t.add(o.id),n.push({entry:o,latest:o.versions[0],sourceRegistry:r}))}return n}async function wi(e,t){if(!e.bundleUrl||!e.integrity)throw new Error("fetchBundle called on a version with no client bundle");let n=e.bundleUrl;t&&!/^https?:\/\//i.test(n)&&(n=new URL(n,t).href);const r=await fetch(n);if(!r.ok)throw new Error(`Bundle fetch failed: HTTP ${r.status} ${r.statusText} from ${n}`);const s=await r.arrayBuffer();return await ya(s,e.integrity),s}async function _a(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 ya(s,e.serverIntegrity):console.warn(`[sh3] Server bundle at ${n} has no serverIntegrity declared — skipping SRI check. This will become an error once the formal registry spec (ADR-015) lands.`),s}function ki(e,t){return{id:e.entry.id,type:e.entry.type,version:t.version,contractVersion:t.contractVersion,sourceRegistry:e.sourceRegistry,integrity:t.integrity,requires:t.requires,hasServerBundle:!!t.serverBundleUrl,serverIntegrity:t.serverIntegrity}}const xn="0.11.6",wa="sh3:user:__sh3core__:theme";let $r=[];function Y_(e){const t=Object.keys(e);for(const n of $r)t.includes(n)||document.documentElement.style.removeProperty(`--${n}`);for(const[n,r]of Object.entries(e))document.documentElement.style.setProperty(`--${n}`,r);$r=t;try{localStorage.setItem(wa,JSON.stringify(e))}catch{}}function G_(){for(const e of $r)document.documentElement.style.removeProperty(`--${e}`);$r=[];try{localStorage.removeItem(wa)}catch{}}function Fd(){try{const e=localStorage.getItem(wa);if(!e)return{};const t=JSON.parse(e);return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{}}catch{return{}}}function X_(){const e=Fd();if(Object.keys(e).length!==0){for(const[t,n]of Object.entries(e))document.documentElement.style.setProperty(`--${t}`,n);$r=Object.keys(e)}}const _o="/assets/icons-2eVU8BA9.svg",Ud=Symbol("sh3.icon-sprite");function J_(e){To(Ud,e)}function Hd(){return Co(Ud)}var Z_=nu('<svg class="sh3-btn__icon svelte-t4hi97" aria-hidden="true"><use></use></svg>'),Q_=A('<span class="sh3-btn__label svelte-t4hi97"><!></span>'),ew=A("<button><!> <!></button>");function tw(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=Hd();function o(g){return g.includes("/")||g.endsWith(".svg")}const l=F(()=>t.icon?o(t.icon)?t.icon:`${t.sprite??i??_o}#${t.icon}`:void 0),c=F(()=>n()==="icon"||!!t.icon&&!t.children);var u=ew();let d;var f=p(u);{var h=g=>{var _=Z_(),S=p(_);v(_),z(()=>be(S,"href",a(l))),I(g,_)};$(f,g=>{a(l)&&g(h)})}var m=E(f,2);{var x=g=>{var _=Q_(),S=p(_);ti(S,()=>t.children),v(_),I(g,_)};$(m,g=>{t.children&&g(x)})}v(u),z(()=>{be(u,"type",s()),d=_e(u,1,`sh3-btn sh3-btn--${n()??""}`,"svelte-t4hi97",d,{"sh3-btn--icon-only":a(c)}),u.disabled=r(),be(u,"title",t.title),be(u,"aria-label",t.ariaLabel??(a(c)?t.title:void 0))}),U("click",u,function(...g){t.onclick?.apply(this,g)}),I(e,u),re()}ue(["click"]);const nw={hotInstall:typeof Blob<"u"&&typeof URL.createObjectURL=="function"},Kd=["__sh3core__","shell","sh3-store","sh3-admin"],Wd=Object.freeze(Object.defineProperty({__proto__:null,Button:tw,COLOR_PICKER_POINT:qu,CONFLICT_RENDERER_POINT:Nu,ConflictPermissionError:ju,ConflictSessionOrphanedError:Cb,ConsentDeniedError:Id,FRAMEWORK_SHARD_IDS:Kd,PERMISSION_DOCUMENTS_BROWSE:wd,PERMISSION_DOCUMENTS_READ:kd,PERMISSION_DOCUMENTS_WRITE:Sd,PERMISSION_KEYS_MINT:xd,PERMISSION_STATE_MANAGE:Xo,PERMISSION_SYNC_PEER:f_,PERMISSION_SYNC_POLICY:v_,ScopeEscalationError:Ed,VERSION:xn,activeShards:ss,buildPackageMeta:ki,capabilities:nw,clearTokenOverrides:G_,closeTab:ma,collapseChild:z_,dockFloat:zd,dockIntoActiveLayout:ba,expandChild:q_,fetchBundle:wi,fetchRegistries:$d,focusTab:j_,focusView:yi,getActiveApp:Qu,getAuthHeader:gi,getIconSprite:Hd,getTokenOverrides:Fd,getUser:mi,inspectActiveLayout:Od,isAdmin:dn,isAuthenticated:mo,isGuest:gd,launchApp:$n,listRegisteredApps:ua,listVerbs:sa,locateSlot:Bd,popoutView:jd,provideIcons:J_,registerConsentListener:Ad,registeredShards:en,resolveConsent:bo,returnToHome:Pd,setTokenOverrides:Y_,shell:hi,spliceIntoActiveLayout:N_,subscribeKeyRevocation:va,unregisterApp:pa,validateRegistryIndex:Vd},Symbol.toStringTag,{value:"Module"})),rw="/assets/SH3-BG5NVpSD.png",sw="https://cdn.jsdelivr.net/npm/p5@1.11.13/lib/p5.min.js";let Ir=null;function iw(){return Ir||(Ir=new Promise((e,t)=>{const n=window.p5;if(n){e(n);return}const r=document.createElement("script");r.src=sw,r.async=!0,r.onload=()=>e(window.p5),r.onerror=s=>{Ir=null,t(s)},document.head.appendChild(r)}),Ir)}var ow=A('<h1 class="shell-title-fallback svelte-1ifjvh5">SH3</h1>'),aw=A('<div class="shell-title svelte-1ifjvh5"></div>');function lw(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(rw,()=>{C=b.createGraphics(r,s),C.pixelDensity(1),C.image(w,0,0,r,s),C.loadPixels(),O=!0},()=>{k(m,!0)})},b.draw=()=>{if(!O)return;const R=b.millis()*.001;let P;b.clear(),b.background(0,0),b.fill(M);for(let D=0;D<s;D++)for(let N=0;N<r;N++){const V=(D*r+N)*4;if(C.pixels[V]<64){if(P=b.noise(N/r*2,D/s*2,R*.15),P>.33)continue;b.text(n[Math.floor(P*n.length*.25)],(N+.5)*i,(D+.5)*o);continue}P=b.noise(N/r*4,D/s*4,R*.5),b.text(n[Math.floor(P*n.length)],(N+.5)*i,(D+.5)*o)}}};Ie(()=>{if(a(m))return;let b=!1;return iw().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=ct(),_=fe(g);{var S=b=>{var T=ow();I(b,T)},y=b=>{var T=aw();nn(T,"",{},{width:"216.7195767195767px",height:"80px","--shell-title-scale":d}),et(T,M=>k(f,M),()=>a(f)),I(b,T)};$(_,b=>{a(m)?b(S):b(y,-1)})}I(e,g),re()}var cw=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>'),uw=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>'),dw=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>'),fw=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>'),vw=A('<p class="shell-home-empty svelte-cpn2x2"><!></p>'),hw=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 pw(e,t){ne(t,!0);let n=q("");const r=F(ua),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=hw(),d=p(u),f=p(d),h=p(f);lw(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=uw(),R=E(p(O),2);ce(R,21,()=>a(o),P=>P.id,(P,D)=>{var N=cw(),V=p(N),j=p(V,!0);v(V);var B=E(V,2),Y=p(B),G=p(Y,!0);v(Y);var Z=E(Y,2),J=p(Z);v(Z),v(B),v(N),z(()=>{be(N,"title",`Launch ${a(D).label??""}`),L(j,a(D).label),L(G,a(D).id),L(J,`v${a(D).version??""}`)}),U("click",N,()=>$n(a(D).id)),I(P,N)}),v(R),v(O),I(w,O)};$(S,w=>{a(o).length>0&&w(y)})}var b=E(S,2);{var T=w=>{var O=fw(),R=E(p(O),2);ce(R,21,()=>a(l),P=>P.id,(P,D)=>{var N=dw(),V=p(N),j=p(V,!0);v(V);var B=E(V,2),Y=p(B),G=p(Y,!0);v(Y);var Z=E(Y,2),J=p(Z);v(Z),v(B),v(N),z(()=>{be(N,"title",`Launch ${a(D).label??""}`),L(j,a(D).label),L(G,a(D).id),L(J,`v${a(D).version??""}`)}),U("click",N,()=>$n(a(D).id)),I(P,N)}),v(R),v(O),I(w,O)};$(b,w=>{a(s)&&a(l).length>0&&w(T)})}var M=E(b,2);{var C=w=>{var O=vw(),R=p(O);{var P=N=>{var V=Vt("No apps registered.");I(N,V)},D=N=>{var V=Vt();z(()=>L(V,`No apps match “${a(n)??""}”.`)),I(N,V)};$(R,N=>{a(r).length===0?N(P):N(D,-1)})}v(O),I(w,O)};$(M,w=>{a(c)===0&&w(C)})}v(u),z(()=>L(x,`v${xn}`)),Me(_,()=>a(n),w=>k(n,w)),I(e,u),re()}ue(["click"]);var mw=A('<p class="keys-peers-muted svelte-19l5m7c">Loading...</p>'),gw=A('<p class="keys-peers-error svelte-19l5m7c"> </p>'),bw=A('<p class="keys-peers-muted svelte-19l5m7c">No keys yet. Shards will ask your permission before creating one.</p>'),yw=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),_w=A('<button type="button" class="keys-peers-btn-danger svelte-19l5m7c">Revoke</button>'),ww=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>'),kw=A('<ul class="keys-peers-list svelte-19l5m7c"></ul>'),Sw=A('<div class="keys-peers svelte-19l5m7c"><div class="keys-peers-header svelte-19l5m7c"><h2 class="svelte-19l5m7c">Keys & Peers</h2></div> <!></div>');function xw(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(()=>va("*",()=>{o()}));var u=Sw(),d=E(p(u),2);{var f=g=>{var _=mw();I(g,_)},h=g=>{var _=gw(),S=p(_);v(_),z(()=>L(S,`Failed to load: ${a(r)??""}`)),I(g,_)},m=g=>{var _=bw();I(g,_)},x=g=>{var _=kw();ce(_,21,()=>a(n),S=>S.id,(S,y)=>{var b=ww(),T=p(b),M=p(T),C=p(M,!0);v(M);var w=E(M,2),O=p(w);v(w);var R=E(w,2),P=p(R);v(R);var D=E(R,2),N=p(D);v(D),v(T);var V=E(T,2),j=p(V);{var B=G=>{var Z=yw(),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=_w();U("click",Z,()=>{k(i,a(y).id,!0)}),I(G,Z)};$(j,G=>{a(i)===a(y).id?G(B):G(Y,-1)})}v(V),v(b),z((G,Z,J)=>{L(C,a(y).label),L(O,`Minted by: ${a(y).mintedByShardId??"system"??""}${a(y).peerRole||a(y).peerId?` · Peer: ${a(y).peerRole??"—"}${a(y).peerId?` (${a(y).peerId})`:""}`:""}`),L(P,`Scopes: ${G??""}`),L(N,`Created: ${Z??""} · Expires: ${J??""}`)},[()=>a(y).scopes.join(", "),()=>c(a(y).createdAt),()=>a(y).expiresAt?c(a(y).expiresAt):"never"]),I(S,b)}),v(_),I(g,_)};$(d,g=>{a(s)?g(f):a(r)?g(h,1):a(n).length===0?g(m,2):g(x,-1)})}v(u),I(e,u),re()}ue(["click"]);var Ew=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 Iw(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=Ew(),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),et(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 Aw={manifest:{id:"__sh3core__",label:"SH3 Core",version:xn,views:[{id:"sh3core:home",label:"Home"},{id:"shell:keys-and-peers",label:"Keys & Peers"}]},activate(e){const t=e.state({user:{bindings:{}}});zb(t.user),e.actions.register({id:"sh3.palette.open",label:"Command Palette…",scope:["home","app"],defaultShortcut:"Mod+K",contextItem:!1,paletteItem:!1,run(i){Md(async()=>{const{openPalette:o}=await Promise.resolve().then(()=>Zy);return{openPalette:o}},void 0).then(({openPalette:o})=>o())}}),e.actions.register({id:"sh3.app.reset-layout",label:"Reset Current Layout",scope:["app"],paletteItem:!0,contextItem:!1,run(){Zo.open(Iw,{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:()=>wy()})}});const n={mount(i,o){const l=Oe(pw,{target:i});return{unmount(){Fe(l)}}}},r={mount(i,o){const l=Oe(xw,{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;ei(()=>{Ie(()=>{const i=new Set;for(const[o,l]of bn){if(i.add(o),s.has(o))continue;const c=e.actions.register({id:`sh3.app.launch:${o}`,label:l.manifest.label,scope:["home","app"],submenuOf:"sh3.app.launch",run(){$n(o)}});s.set(o,c)}for(const o of[...s.keys()])i.has(o)||(s.get(o)(),s.delete(o))})})},autostart(){}},Cw={id:"shell",label:"Shell",version:xn,views:[{id:"shell:terminal",label:"Shell",standalone:!0}],permissions:[]},Tw=2e3;let Rw=0;function Dw(){return`e${++Rw}`}class Pw{#e;get entries(){return a(this.#e)}set entries(t){k(this.#e,t,!0)}constructor(t=Tw){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:Dw()};this.entries.push(r),this.entries.length>this.cap&&this.entries.splice(0,this.entries.length-this.cap)}clear(){this.entries.length=0}}var Mw=A("<pre> </pre>");function Ow(e,t){ne(t,!0);const n=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,r=F(()=>t.chunks.join("").replace(n,""));var s=Mw();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 Lw=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 Nw(e,t){var n=Lw(),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 jw=A("<div> </div>");function zw(e,t){var n=jw();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 qw=A('<div class="shell-rich svelte-1rnhl05"><!></div>');function Bw(e,t){var n=qw(),r=p(n);Qr(r,()=>t.component,(s,i)=>{i(s,ts(()=>t.componentProps))}),v(n),I(e,n)}var Vw=A('<div class="shell-scrollback svelte-isy3jt"></div>');function $w(e,t){ne(t,!0);let n=q(null);Ie(()=>{t.scrollback.entries.length,a(n)&&(a(n).scrollTop=a(n).scrollHeight)});var r=Vw();ce(r,21,()=>t.scrollback.entries,s=>s.id,(s,i)=>{var o=ct(),l=fe(o);{var c=h=>{Ow(h,{get stream(){return a(i).stream},get chunks(){return a(i).chunks}})},u=h=>{Nw(h,{get cwd(){return a(i).cwd},get line(){return a(i).line}})},d=h=>{zw(h,{get text(){return a(i).text},get level(){return a(i).level}})},f=h=>{Bw(h,{get component(){return a(i).component},get componentProps(){return a(i).props}})};$(l,h=>{a(i).kind==="text"?h(c):a(i).kind==="prompt"?h(u,1):a(i).kind==="status"?h(d,2):a(i).kind==="rich"&&h(f,3)})}I(s,o)}),v(r),et(r,s=>k(n,s),()=>a(n)),I(e,r),re()}var Fw=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 Uw(e,t){ne(t,!0);let n=q(""),r=q(null),s=q(""),i=q(null);function o(){if(t.locked)return;const g=a(n);g.trim()&&(k(n,""),k(r,null),t.onSubmit(g))}function l(){t.history.length!==0&&(a(r)===null?(k(s,a(n),!0),k(r,t.history.length-1)):a(r)>0&&cr(r,-1),k(n,t.history[a(r)]??"",!0))}function c(){a(r)!==null&&(a(r)<t.history.length-1?(cr(r),k(n,t.history[a(r)],!0)):(k(r,null),k(n,a(s),!0)))}function u(g){if(t.locked){if(g.ctrlKey&&g.key==="c"){g.preventDefault(),t.session.send({t:"signal",sig:"SIGINT"});return}if(g.ctrlKey&&g.key==="d"){g.preventDefault(),t.session.send({t:"signal",sig:"EOF"});return}g.preventDefault();return}g.key==="Enter"?(g.preventDefault(),o()):g.key==="ArrowUp"?(g.preventDefault(),l()):g.key==="ArrowDown"?(g.preventDefault(),c()):g.ctrlKey&&g.key==="c"?(g.preventDefault(),k(n,""),k(r,null)):g.ctrlKey&&g.key==="l"&&(g.preventDefault(),k(n,"clear"),o())}Ie(()=>{!t.locked&&a(i)&&a(i).focus()});var d=Fw();let f;var h=p(d),m=p(h,!0);v(h);var x=E(h,4);Se(x),et(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 Tl=[1e3,2e3,5e3,1e4];class Hw{#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=Tl[Math.min(this.backoffIndex,Tl.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 Kw{list(){return sa()}get(t){return bl(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=bl(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 Ww{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 Yw{#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 Gw={id:"dev",label:"Dev",requiresRole:"admin",transport:"ws",autoRelocate:!1},Xw={id:"user",label:"User",transport:"none",autoRelocate:!0};function Jw(e){e.register(Gw),e.register(Xw)}function Yd(e){return`sh3.shell.lastMode.${e}`}function Zw(e){try{return globalThis.localStorage?.getItem(Yd(e))??null}catch{return null}}function Qw(e,t){try{globalThis.localStorage?.setItem(Yd(e),t)}catch{}}function ek(e,t,n){const r=Zw(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 tk(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 nk(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 rk=A('<div class="toolbar svelte-gnowwz"><div class="toolbar-slots svelte-gnowwz"></div></div>');function sk(e,t){ne(t,!0);let n=We(t,"slotProps",19,()=>({})),r=F(()=>t.registry.list(t.ctx));var s=rk(),i=p(s);ce(i,21,()=>a(r),o=>o.id,(o,l)=>{const c=F(()=>a(l).component);var u=ct(),d=fe(u);Qr(d,()=>a(c),(f,h)=>{h(f,ts(()=>n()[a(l).id]??{}))}),I(o,u)}),v(i),v(s),I(e,s),re()}class ik{#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 ok=A('<button type="button"> </button>'),ak=A('<div class="mode-bar svelte-1i4cqlj" role="toolbar" aria-label="Shell mode"></div>'),lk=A('<span class="mode-label svelte-1i4cqlj"> </span>');function ck(e,t){ne(t,!0);let n=F(()=>t.registry.list(t.role));var r=ct(),s=fe(r);{var i=l=>{var c=ak();ce(c,21,()=>a(n),u=>u.id,(u,d)=>{var f=ok();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=lk(),u=p(c,!0);v(c),z(()=>L(u,t.mode.label)),I(l,c)};$(s,l=>{t.role==="admin"?l(i):l(o,-1)})}I(e,r),re()}ue(["click"]);var uk=A('<button class="focus-lock-btn svelte-1q6gbap"> </button>');function dk(e,t){var n=uk(),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 fk=A('<span class="target-shard svelte-1nn2m6x" title="Target shard"> </span>');function vk(e,t){var n=fk(),r=p(n);v(n),z(()=>L(r,`→ ${t.target??"—"??""}`)),I(e,n)}var hk=A('<div class="shell-terminal svelte-13komre"><!> <!> <!></div>');function pk(e,t){ne(t,!0);const n=new Pw,r=new Kw,s=new Ww,i=new Yw;Jw(i);let o=q(le(Ee(()=>ek(i,t.userId,t.role))));function l(C){const w=i.get(C);w&&(w.requiresRole&&w.requiresRole!==t.role||(k(o,w,!0),Qw(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 Hw(t.wsUrl)),u=Ee(()=>tk({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 ik;m.register({id:"mode",order:10,visible:()=>!0,component:ck}),m.register({id:"focus-lock",order:20,visible:C=>C.mode.id==="user",component:dk}),m.register({id:"target-shard",order:30,visible:C=>C.mode.id==="user",component:vk});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 nk({modeAutoRelocate:w,focusLocked:O,focusedShardId:C,currentShardId:"shell"},s);R.kind==="relocate"&&R.path!==void 0&&(c.cwd=R.path),C&&C!=="shell"?k(h,C,!0):C||k(h,null)})()});function _(C){if(C.t!=="event")return;const w=C.event;switch(w.kind){case"prompt":n.push({kind:"prompt",cwd:w.cwd,line:w.line,ts:w.ts}),k(d,!0);break;case"stdout":n.push({kind:"text",stream:"stdout",chunks:[w.data],ts:w.ts});break;case"stderr":n.push({kind:"text",stream:"stderr",chunks:[w.data],ts:w.ts});break;case"exit":(w.signal||w.code!==null&&w.code!==0)&&n.push({kind:"status",text:w.signal?`shell: process exited (${w.signal})`:`shell: process exited (${w.code})`,level:"error",ts:w.ts}),k(d,!1);break;case"status":n.push({kind:"status",text:w.text,level:w.level,ts:w.ts});break}}let S=null;Uo(()=>{S=c.onMessage(_),a(o).transport==="ws"&&c.connect()}),Ho(()=>{S?.(),c.close()});var y=hk(),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)}}));sk(b,{get registry(){return m},get ctx(){return a(C)},get slotProps(){return a(w)}})}var T=E(b,2);$w(T,{get scrollback(){return n}});var M=E(T,2);Uw(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 mk=A('<tr><td class="svelte-m248jy"><button type="button" class="svelte-m248jy"> </button></td><td class="svelte-m248jy"> </td></tr>'),gk=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 bk(e,t){ne(t,!0);var n=gk(),r=p(n),s=E(p(r));ce(s,21,()=>t.data.rows,i=>i.name,(i,o)=>{var l=mk(),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 yk(){return{name:"help",summary:"List verbs or show detail for one.",async run(e){const t=sa().map(n=>({name:n.name,summary:n.summary}));e.scrollback.push({kind:"rich",component:bk,props:{data:{rows:t,onClickName:n=>e.dispatch(n)}},ts:Date.now()})}}}const _k={name:"clear",summary:"Clear the scrollback (local only — other views are unaffected).",async run(e){e.scrollback.clear()}};var wk=A('<li class="svelte-o8m437"><button type="button" class="svelte-o8m437"> </button></li>'),kk=A('<div class="shell-rich-history svelte-o8m437"><ol class="svelte-o8m437"></ol></div>');function Sk(e,t){ne(t,!0);var n=kk(),r=p(n);ce(r,21,()=>t.data.lines,Vn,(s,i)=>{var o=wk(),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 xk={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:Sk,props:{data:{lines:r,onClickLine:s=>e.dispatch(s)}},ts:Date.now()})}};var Ek=A('<tr><td class="svelte-1u5krjz"><button type="button" class="svelte-1u5krjz"> </button></td><td class="svelte-1u5krjz"> </td></tr>'),Ik=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 Ak(e,t){ne(t,!0);var n=Ik(),r=p(n),s=E(p(r));ce(s,21,()=>t.data.apps,i=>i.id,(i,o)=>{var l=Ek(),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 Ck=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 Tk(e,t){ne(t,!0);var n=Ck(),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 Rk={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:Ak,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()})}},Dk={name:"app",summary:"Show the currently active app.",async run(e){const t=e.shell.getActiveApp();if(!t){e.scrollback.push({kind:"status",text:"shell: no active app",level:"info",ts:Date.now()});return}e.scrollback.push({kind:"rich",component:Tk,props:{data:{id:t.id,label:t.label,shards:[]}},ts:Date.now()})}};var Pk=A('<tr><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td></tr>'),Mk=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 Ok(e,t){ne(t,!0);var n=Mk(),r=p(n),s=E(p(r));ce(s,21,()=>t.data.shards,i=>i.id,(i,o)=>{var l=Pk(),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 Lk={name:"shards",summary:"List active shards.",async run(e){const t=e.shell.listShards();e.scrollback.push({kind:"rich",component:Ok,props:{data:{shards:t}},ts:Date.now()})}};var Nk=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>'),jk=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 zk(e,t){ne(t,!0);var n=jk(),r=p(n),s=E(p(r));ce(s,21,()=>t.data.views,i=>i.slotId,(i,o)=>{var l=Nk(),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 qk={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:zk,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()})}},Bk={name:"open",summary:"Open a view from any active shard into the current layout.",async run(e,t){const n=t[0];if(!n){e.scrollback.push({kind:"status",text:"usage: open <viewId>",level:"warn",ts:Date.now()});return}const r=e.shell.openViewInCurrentLayout(n);r.ok?e.scrollback.push({kind:"status",text:`shell: opened ${n}`,level:"info",ts:Date.now()}):e.scrollback.push({kind:"status",text:`shell: open failed — ${r.error??"unknown"}`,level:"error",ts:Date.now()})}},Vk={name:"popout",summary:"Pop a docked view out into a float by slot id.",async run(e,t){const n=t[0];if(!n){e.scrollback.push({kind:"status",text:"usage: popout <slotId>",level:"warn",ts:Date.now()});return}const r=e.shell.popoutSlot(n);r.ok?e.scrollback.push({kind:"status",text:`shell: popped out ${n} → ${r.floatId}`,level:"info",ts:Date.now()}):e.scrollback.push({kind:"status",text:`shell: popout failed — ${r.error??"unknown"}`,level:"error",ts:Date.now()})}},$k={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()})}},Fk={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 Uk=A('<tr><td class="svelte-1w7onag"> </td><td class="svelte-1w7onag"> </td></tr>'),Hk=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 Kk(e,t){ne(t,!0);var n=Hk(),r=p(n),s=E(p(r));ce(s,21,()=>t.data.rows,i=>i.shardId,(i,o)=>{var l=Uk(),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 Wk=A('<div class="shell-rich-zonetree svelte-13iiyr1"><pre class="svelte-13iiyr1"> </pre></div>');function Yk(e,t){ne(t,!0);var n=Wk(),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 Gk={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:Kk,props:{data:{rows:n}},ts:Date.now()})}},Xk={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:Yk,props:{data:{value:s}},ts:Date.now()})}};function Jk(e,t){if(t.startsWith("/"))return Zk(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 Zk(e){return e.split("/").filter(t=>t&&t!==".").join("/")}const Qk={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()})}},e1={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=Jk(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}},t1={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 n1=A('<tr><td class="svelte-1ox8vog"> </td><td class="svelte-1ox8vog"> </td></tr>'),r1=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 s1(e,t){ne(t,!0);var n=r1(),r=p(n),s=E(p(r));ce(s,21,()=>Object.entries(t.data.env),([i,o])=>i,(i,o)=>{var l=F(()=>Xl(a(o),2));let c=()=>a(l)[0],u=()=>a(l)[1];var d=n1(),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 i1={name:"env",summary:"Show the session environment.",async run(e){const t=e.session.env;e.scrollback.push({kind:"rich",component:s1,props:{data:{env:t}},ts:Date.now()})}},o1={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()})}},a1={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 l1(e){e.registerVerb(yk()),e.registerVerb(_k),e.registerVerb(xk),e.registerVerb(Rk),e.registerVerb(Dk),e.registerVerb(Lk),e.registerVerb(qk),e.registerVerb(Bk),e.registerVerb(Fk),e.registerVerb(Vk),e.registerVerb($k),e.registerVerb(Gk),e.registerVerb(Xk),e.registerVerb(Qk),e.registerVerb(e1),e.registerVerb(i1),e.registerVerb(t1),e.registerVerb(o1),e.registerVerb(a1)}function Gd(e){return e.type==="tabs"?e.tabs.filter(t=>t.viewId!==null):e.type==="split"?e.children.flatMap(Gd):e.viewId!==null?[{slotId:e.slotId,viewId:e.viewId,label:e.viewId}]:[]}function c1(e){return{listApps(){return ua().map(t=>({id:t.id,label:t.label}))},getActiveApp(){const t=Qu();return t?{id:t.id,label:t.label}:null},launchApp(t){$n(t)},listShards(){return Array.from(en.values()).map(t=>({id:t.manifest.id,label:t.manifest.label,version:t.manifest.version}))},listViewsInCurrentLayout(){try{const{root:t}=Od();return Gd(t.docked).map(n=>({slotId:n.slotId,viewId:n.viewId??"",label:n.label}))}catch{return[]}},openViewInCurrentLayout(t){try{if(yi(t))return{ok:!0};const n=Il().find(r=>r.viewId===t);if(n){const r=`standalone:${t}:${Date.now()}`;return ba({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 Il()},popoutSlot(t){try{const n=jd(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 zd(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 Bd(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 ma(t),{ok:!0}},listZones(t){return[]},readZone(t,n){return null},whoAmI(){return{userId:mi()?.id??"guest",admin:dn()}}}}const u1={manifest:Cw,activate(e){l1(e);const t=c1();e.actions.register({id:"shell.terminal.toggle",label:"Open Terminal",scope:["home","app"],defaultShortcut:"²",allowInInputs:!1,run(){yi("shell:terminal")||Mt.open("shell:terminal",{title:"Shell"})}});const n={mount(r,s){const i=typeof location<"u"&&location.protocol==="https:"?"wss":"ws",o=typeof location<"u"?location.host:"localhost",l=`${i}://${o}/api/shell/session`,u=mi()?.id??"guest",d=dn()?"admin":"user",f=Oe(pk,{target:r,props:{shell:t,wsUrl:l,userId:u,role:d}});return{unmount(){Fe(f)},closable:!0}}};e.registerView("shell:terminal",n)},autostart(){}},Rl=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=>!Rl.has(o)),s=n.filter(o=>Rl.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 ka=globalThis;ka.__sh3__=Wd;ka.__sh3_svelte__=cu;ka.__sh3_svelte_internal_client__=Eu;const Sa={"sh3-core":Vi("__sh3__",Wd),svelte:Vi("__sh3_svelte__",cu),"svelte/internal/client":Vi("__sh3_svelte_internal_client__",Eu)};Sa["svelte/internal/disclose-version"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));Sa["sh3-core/tokens.css"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));const d1=/(?:from|import)\s*(['"])(sh3-core(?:\/[^'"]*)?|svelte(?:\/[^'"]*)?)\1/g;function f1(e){return e.replace(d1,(t,n,r)=>{const s=Sa[r];return s?`${t.startsWith("from")?"from":"import"} '${s}'`:t})}async function is(e){const t=new TextDecoder().decode(e),n=f1(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;v1(c)?o.shards.push(c):h1(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 v1(e){return"activate"in e&&typeof e.activate=="function"&&Array.isArray(e.manifest.views)}function h1(e){return"initialLayout"in e&&Array.isArray(e.manifest.requiredShards)}const p1="sh3-packages",m1=1,Fr="bundles",fr="meta";function os(){return new Promise((e,t)=>{const n=indexedDB.open(p1,m1);n.onupgradeneeded=()=>{const r=n.result;r.objectStoreNames.contains(Fr)||r.createObjectStore(Fr),r.objectStoreNames.contains(fr)||r.createObjectStore(fr)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}function Fn(e,t,n,r){return new Promise((s,i)=>{const l=e.transaction(t,n).objectStore(t),c=r(l);c.onsuccess=()=>s(c.result),c.onerror=()=>i(c.error)})}async function Xd(e,t,n){const r=await os();await Fn(r,Fr,"readwrite",s=>s.put(t,e)),await Fn(r,fr,"readwrite",s=>s.put(n,e)),r.close()}async function Jd(e){const t=await os(),n=await Fn(t,Fr,"readonly",r=>r.get(e));return t.close(),n??null}async function g1(e){const t=await os(),n=await Fn(t,fr,"readonly",r=>r.get(e));return t.close(),n??null}async function Zd(){const e=await os(),t=await Fn(e,fr,"readonly",n=>n.getAll());return e.close(),t??[]}async function b1(e){const t=await os();await Fn(t,Fr,"readwrite",n=>n.delete(e)),await Fn(t,fr,"readwrite",n=>n.delete(e)),t.close()}function xa(e,t){for(const n of e.shards)n.manifest={...n.manifest,version:t.version},ha(n);for(const n of e.apps)n.manifest={...n.manifest,version:t.version},ca(n)}const y1={"state:manage":{title:"Manage shell state zones",description:"Read and write state zones belonging to other shards."},"documents:browse":{title:"Browse tenant documents",description:"Observe all documents stored by the current tenant."},"documents:read":{title:"Read tenant documents",description:"Read the content of any document in the current tenant, across all shards. Required for backup connectors that need to pull document bodies (not just metadata) out of other shards."},"documents:write":{title:"Write tenant documents",description:"Create and overwrite documents in any shard's namespace within the current tenant. Required for restore-class connectors that re-import documents back into their owning shards."},"documents:sync":{title:"Sync documents with peers",description:"Participate in cross-peer document synchronization."},"sync:peer":{title:"Act as a sync peer",description:"Exchange document updates with remote peers."},"sync:policy":{title:"Define sync policy",description:"Configure which documents sync and with whom."},"keys:mint":{title:"Mint API keys",description:"Issue long-lived access tokens for this shell."}};function $i(e){return y1[e]??{title:e,description:"Unknown permission."}}function Ea(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 Ia(e,t,n){if(!t.integrity)return{success:!1,hotLoaded:!1,error:"Missing integrity hash — refusing to install unverified bundle"};try{await ya(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 is(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:Ea(r)};try{await Xd(t.id,e,s)}catch(o){return{success:!1,hotLoaded:!1,error:`Failed to persist package: ${o instanceof Error?o.message:String(o)}`}}if(t.type==="shard"||t.type==="combo")try{bi(t.id)}catch{}(t.type==="app"||t.type==="combo")&&pa(t.id);let i=!0;try{xa(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 Qd(e){try{bi(e)}catch{}pa(e),await b1(e)}async function _1(){return Zd()}async function w1(){let e;try{e=await Zd()}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 Jd(t.id);if(!n){console.warn(`[sh3] No bundle found for installed package "${t.id}", skipping`);continue}const r=await is(n);xa(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 Dl={version:1};var k1=A('<span class="perm-modal-author svelte-1ipp1r6"> </span>'),S1=A('<p class="perm-modal-empty svelte-1ipp1r6">This package requires no special permissions.</p>'),x1=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>'),E1=A('<p class="perm-modal-intro svelte-1ipp1r6">This package requests the following permissions:</p> <ul class="perm-modal-list svelte-1ipp1r6"></ul>',1),I1=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>'),A1=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),C1=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>'),T1=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),R1=A("<!> <!>",1),D1=A('<div class="perm-modal-backdrop svelte-1ipp1r6" role="dialog" aria-modal="true" tabindex="-1"><div class="perm-modal-panel svelte-1ipp1r6" role="document"><header class="perm-modal-header svelte-1ipp1r6"><h3 class="svelte-1ipp1r6"> </h3> <div class="perm-modal-subtitle svelte-1ipp1r6"><!> <!></div></header> <div class="perm-modal-body svelte-1ipp1r6"><!></div> <footer class="perm-modal-footer svelte-1ipp1r6"><button class="perm-modal-cancel svelte-1ipp1r6">Cancel</button> <button class="perm-modal-confirm svelte-1ipp1r6"> </button></footer></div></div>');function wo(e,t){ne(t,!0);const n=We(t,"permissions",19,()=>[]),r=We(t,"added",19,()=>[]),s=We(t,"removed",19,()=>[]),i=F(()=>t.mode==="install"?"Install":"Update");var o=D1(),l=p(o),c=p(l),u=p(c),d=p(u);v(u);var f=E(u,2),h=p(f);{var m=R=>{var P=Vt();z(()=>L(P,`${t.fromVersion??""} → ${t.pkg.version??""}`)),I(R,P)},x=R=>{var P=Vt();z(()=>L(P,`v${t.pkg.version??""}`)),I(R,P)};$(h,R=>{t.mode==="update"&&t.fromVersion?R(m):R(x,-1)})}var g=E(h,2);{var _=R=>{var P=k1(),D=p(P);v(P),z(()=>L(D,`by ${t.pkg.author??""}`)),I(R,P)};$(g,R=>{t.pkg.author&&R(_)})}v(f),v(c);var S=E(c,2),y=p(S);{var b=R=>{var P=ct(),D=fe(P);{var N=j=>{var B=S1();I(j,B)},V=j=>{var B=E1(),Y=E(fe(B),2);ce(Y,20,n,G=>G,(G,Z)=>{const J=F(()=>$i(Z));var te=x1(),ee=p(te),Q=p(ee,!0);v(ee);var ve=E(ee,2),he=p(ve,!0);v(ve),v(te),z(()=>{L(Q,a(J).title),L(he,a(J).description)}),I(G,te)}),v(Y),I(j,B)};$(D,j=>{n().length===0?j(N):j(V,-1)})}I(R,P)},T=R=>{var P=R1(),D=fe(P);{var N=B=>{var Y=A1(),G=E(fe(Y),2);ce(G,20,r,Z=>Z,(Z,J)=>{const te=F(()=>$i(J));var ee=I1(),Q=p(ee),ve=p(Q,!0);v(Q);var he=E(Q,2),W=p(he,!0);v(he),v(ee),z(()=>{L(ve,a(te).title),L(W,a(te).description)}),I(Z,ee)}),v(G),I(B,Y)};$(D,B=>{r().length>0&&B(N)})}var V=E(D,2);{var j=B=>{var Y=T1(),G=E(fe(Y),2);ce(G,20,s,Z=>Z,(Z,J)=>{const te=F(()=>$i(J));var ee=C1(),Q=p(ee),ve=p(Q,!0);v(Q);var he=E(Q,2),W=p(he,!0);v(he),v(ee),z(()=>{L(ve,a(te).title),L(W,a(te).description)}),I(Z,ee)}),v(G),I(B,Y)};$(V,B=>{s().length>0&&B(j)})}I(R,P)};$(y,R=>{t.mode==="install"?R(b):R(T,-1)})}v(S);var M=E(S,2),C=p(M),w=E(C,2),O=p(w,!0);v(w),v(M),v(l),v(o),z(()=>{be(o,"aria-label",`${a(i)??""} ${t.pkg.label??""}`),L(d,`${a(i)??""} ${t.pkg.label??""}`),L(O,a(i))}),U("click",o,function(...R){t.onCancel?.apply(this,R)}),U("keydown",o,R=>{R.key==="Escape"&&t.onCancel()}),U("click",l,R=>R.stopPropagation()),U("click",C,function(...R){t.onCancel?.apply(this,R)}),U("click",w,function(...R){t.onConfirm?.apply(this,R)}),I(e,o),re()}ue(["click","keydown"]);var P1=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>'),M1=A('<div class="store-registries svelte-1aafzt0"></div>'),O1=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>'),L1=A('<div class="store-error svelte-1aafzt0"> </div>'),N1=A('<div class="store-error svelte-1aafzt0"> </div>'),j1=A('<img alt="" class="store-icon-img svelte-1aafzt0"/>'),z1=A('<span class="store-icon-placeholder svelte-1aafzt0"> </span>'),q1=A('<div class="store-card-warning svelte-1aafzt0"> </div>'),B1=A('<button class="store-update-btn svelte-1aafzt0"> </button>'),V1=A('<span class="store-installed-label svelte-1aafzt0">Installed</span>'),$1=A('<span class="store-card-missing svelte-1aafzt0"> </span>'),F1=A('<div class="store-install-wrap svelte-1aafzt0"><button class="store-install-btn svelte-1aafzt0"> </button> <!></div>'),U1=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>'),H1=A("No packages found. <!>",1),K1=A('<div class="store-empty svelte-1aafzt0"><!></div>'),W1=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 Y1(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=_n;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(Dl.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(Kd);for(const ge of K)(ge.type==="shard"||ge.type==="combo")&&De.add(ge.id);return ke.filter(ge=>!De.has(ge))}async function b(H){if(!a(i).has(H)){k(i,new Set([...a(i),H]),!0),k(o,null);try{await d.updatePackage(H,(K,ke)=>new Promise(De=>{const ge=d.state.ephemeral.updatable[H],qe=d.state.ephemeral.installed.find(Xe=>Xe.id===H);if(!ge||!qe){De(!0);return}k(u,{pkg:ge,fromVersion:qe.version,added:K,removed:ke,resolve:De},!0)}))}catch(K){k(o,K instanceof Error?K.message:String(K),!0)}finally{const K=new Set(a(i));K.delete(H),k(i,K,!0)}}}function T(){const H=a(u);H&&(k(u,null),H.resolve(!0))}function M(){const H=a(u);H&&(k(u,null),H.resolve(!1))}async function C(H){const K=H.entry.id;if(!a(s).has(K)){k(s,new Set([...a(s),K]),!0),k(o,null);try{const ke=await wi(H.latest,H.sourceRegistry),De=ki(H,H.latest),ge=await is(ke),qe=Ea(ge);let Xe;H.latest.serverBundleUrl&&(Xe=await _a(H.latest,H.sourceRegistry)),k(c,{pkg:H,permissions:qe,loaded:ge,bundle:ke,meta:De,serverBundle:Xe},!0)}catch(ke){k(o,ke instanceof Error?ke.message:String(ke),!0);const De=new Set(a(s));De.delete(K),k(s,De,!0)}}}async function w(){const H=a(c);if(!H)return;k(c,null);const{pkg:K,loaded:ke,bundle:De,meta:ge,serverBundle:qe}=H,Xe=K.entry.id;try{const $e={id:ge.id,type:ge.type,label:K.entry.label,version:ge.version,contractVersion:ge.contractVersion,sourceRegistry:ge.sourceRegistry,requiredShards:K.latest.requires?.map(Et=>Et.id)??[],installedAt:new Date().toISOString()},fn=await fa($e,De,qe);if(!fn.ok){k(o,fn.error??"Server install failed",!0);return}const vn=await Ia(De,ge,{loaded:ke});vn.success||console.warn(`[sh3-store] Server install ok but local hot-load failed: ${vn.error}`),await d.refreshInstalled()}catch($e){k(o,$e instanceof Error?$e.message:String($e),!0)}finally{const $e=new Set(a(s));$e.delete(Xe),k(s,$e,!0)}}function O(){if(!a(c))return;const H=a(c).pkg.entry.id;k(c,null);const K=new Set(a(s));K.delete(H),k(s,K,!0)}function R(){d.refreshCatalog(),d.refreshInstalled()}var P=W1(),D=fe(P),N=p(D),V=E(p(N),2),j=p(V);Se(j);var B=E(j,2),Y=p(B);Y.value=Y.__value="all";var G=E(Y);G.value=G.__value="shard";var Z=E(G);Z.value=Z.__value="app",v(B);var J=E(B,2),te=p(J,!0);v(J),v(V),v(N);var ee=E(N,2);{var Q=H=>{var K=M1();ce(K,21,()=>d.env.registries,Vn,(ke,De)=>{var ge=P1(),qe=p(ge),Xe=p(qe,!0);v(qe);var $e=E(qe,2);v(ge),z(()=>L(Xe,a(De))),U("click",$e,()=>h(a(De))),I(ke,ge)}),v(K),I(H,K)};$(ee,H=>{d.isAdmin&&d.env.registries.length>0&&H(Q)})}var ve=E(ee,2);{var he=H=>{var K=O1(),ke=p(K);Se(ke);var De=E(ke,2);v(K),z(ge=>De.disabled=ge,[()=>!a(l).trim()]),Qe("submit",K,ge=>{ge.preventDefault(),f()}),Me(ke,()=>a(l),ge=>k(l,ge)),I(H,K)};$(ve,H=>{d.isAdmin&&H(he)})}var W=E(ve,2);{var oe=H=>{var K=L1(),ke=p(K,!0);v(K),z(()=>L(ke,d.state.ephemeral.error)),I(H,K)};$(W,H=>{d.state.ephemeral.error&&H(oe)})}var me=E(W,2);{var Ye=H=>{var K=N1(),ke=p(K,!0);v(K),z(()=>L(ke,a(o))),I(H,K)};$(me,H=>{a(o)&&H(Ye)})}var Ae=E(me,2);ce(Ae,21,()=>a(m),H=>H.entry.id,(H,K)=>{const ke=F(()=>x(a(K).entry.id)),De=F(()=>g(a(K))),ge=F(()=>a(s).has(a(K).entry.id)),qe=F(()=>_(a(K).entry.id)),Xe=F(()=>a(i).has(a(K).entry.id)),$e=F(()=>y(a(K),d.state.ephemeral.installed));var fn=U1(),vn=p(fn),Et=p(vn),Sr=p(Et);{var df=Ne=>{var Pe=j1();z(()=>be(Pe,"src",a(K).entry.icon)),I(Ne,Pe)},ff=Ne=>{var Pe=z1(),It=p(Pe,!0);v(Pe),z(()=>L(It,a(K).entry.type==="shard"?"S":"A")),I(Ne,Pe)};$(Sr,Ne=>{a(K).entry.icon?Ne(df):Ne(ff,-1)})}v(Et);var Ra=E(Et,2),xi=p(Ra),vf=p(xi,!0);v(xi);var cs=E(xi,2);let Da;var hf=p(cs,!0);v(cs);var Pa=E(cs,2),pf=p(Pa,!0);v(Pa),v(Ra),v(vn);var Ei=E(vn,2),mf=p(Ei,!0);v(Ei);var Ii=E(Ei,2),gf=p(Ii,!0);v(Ii);var Ma=E(Ii,2);{var bf=Ne=>{var Pe=q1(),It=p(Pe);v(Pe),z(()=>L(It,`Contract mismatch: package targets v${a(K).latest.contractVersion??""}, running v${Dl.version}`)),I(Ne,Pe)};$(Ma,Ne=>{a(De)&&Ne(bf)})}var Oa=E(Ma,2),yf=p(Oa);{var _f=Ne=>{var Pe=B1(),It=p(Pe,!0);v(Pe),z(Ai=>{Pe.disabled=a(Xe),L(It,Ai)},[()=>a(Xe)?"Updating...":`Update ${S(a(K).entry.id)} -> ${a(K).latest.version}`]),U("click",Pe,()=>b(a(K).entry.id)),I(Ne,Pe)},wf=Ne=>{var Pe=V1();I(Ne,Pe)},kf=Ne=>{var Pe=F1(),It=p(Pe),Ai=p(It,!0);v(It);var Sf=E(It,2);{var xf=xr=>{var Ci=$1(),Ef=p(Ci);v(Ci),z(If=>L(Ef,`requires: ${If??""}`),[()=>a($e).join(", ")]),I(xr,Ci)};$(Sf,xr=>{a($e).length>0&&xr(xf)})}v(Pe),z(xr=>{It.disabled=a(ge)||a($e).length>0,be(It,"title",xr),L(Ai,a(ge)?"Installing...":"Install")},[()=>a($e).length>0?`Missing required shards: ${a($e).join(", ")}`:void 0]),U("click",It,()=>C(a(K))),I(Ne,Pe)};$(yf,Ne=>{a(ke)&&a(qe)?Ne(_f):a(ke)?Ne(wf,1):Ne(kf,-1)})}v(Oa),v(fn),z(()=>{L(vf,a(K).entry.label),Da=_e(cs,1,"store-card-badge svelte-1aafzt0",null,Da,{"badge-shard":a(K).entry.type==="shard","badge-app":a(K).entry.type==="app"}),L(hf,a(K).entry.type),L(pf,a(K).latest.version),L(mf,a(K).entry.description),L(gf,a(K).entry.author.name)}),I(H,fn)}),v(Ae);var ot=E(Ae,2);{var Ge=H=>{var K=K1(),ke=p(K);{var De=qe=>{var Xe=H1(),$e=E(fe(Xe));{var fn=Et=>{var Sr=Vt("Add a registry URL above to get started.");I(Et,Sr)},vn=Et=>{var Sr=Vt("No registries configured.");I(Et,Sr)};$($e,Et=>{d.isAdmin?Et(fn):Et(vn,-1)})}I(qe,Xe)},ge=qe=>{var Xe=Vt("No packages match the current filter.");I(qe,Xe)};$(ke,qe=>{d.env.registries.length===0?qe(De):qe(ge,-1)})}v(K),I(H,K)};$(ot,H=>{!d.state.ephemeral.loading&&a(m).length===0&&H(Ge)})}v(D);var as=E(D,2);{var En=H=>{{let K=F(()=>({label:a(c).pkg.entry.label,version:a(c).pkg.latest.version,author:a(c).pkg.entry.author.name}));wo(H,{mode:"install",get pkg(){return a(K)},get permissions(){return a(c).permissions},onConfirm:w,onCancel:O})}};$(as,H=>{a(c)&&H(En)})}var Si=E(as,2);{var ls=H=>{{let K=F(()=>({label:a(u).pkg.entry.label,version:a(u).pkg.latest.version,author:a(u).pkg.entry.author.name}));wo(H,{mode:"update",get pkg(){return a(K)},get fromVersion(){return a(u).fromVersion},get added(){return a(u).added},get removed(){return a(u).removed},onConfirm:T,onCancel:M})}};$(Si,H=>{a(u)&&H(ls)})}z(()=>{J.disabled=d.state.ephemeral.loading,L(te,d.state.ephemeral.loading?"Loading...":"Refresh")}),Me(j,()=>a(n),H=>k(n,H)),jr(B,()=>a(r),H=>k(r,H)),U("click",J,R),I(e,P),re()}ue(["click"]);var G1=A('<div class="installed-error svelte-1hqclkp"> </div>'),X1=A('<div class="installed-empty svelte-1hqclkp">No packages installed.</div>'),J1=A('<button class="installed-update-btn svelte-1hqclkp"> </button>'),Z1=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>'),Q1=A('<ul class="installed-list svelte-1hqclkp"></ul>'),e0=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 t0(e,t){ne(t,!0);const n=_n;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 yd(w),await Qd(w),await n.refreshInstalled()}catch(O){console.warn("[sh3-store] Uninstall failed:",O instanceof Error?O.message:O)}finally{const O=new Set(a(r));O.delete(w),k(r,O,!0)}}}async function c(w){if(!a(s).has(w)){k(s,new Set([...a(s),w]),!0),k(i,null);try{await n.updatePackage(w,(O,R)=>new Promise(P=>{const D=n.state.ephemeral.installed.find(V=>V.id===w),N=n.state.ephemeral.updatable[w];if(!D||!N){P(!0);return}k(o,{pkg:D,toVersion:N.latest.version,added:O,removed:R,resolve:P},!0)}))}catch(O){k(i,O instanceof Error?O.message:String(O),!0)}finally{const O=new Set(a(s));O.delete(w),k(s,O,!0)}}}function u(){const w=a(o);w&&(k(o,null),w.resolve(!0))}function d(){const w=a(o);w&&(k(o,null),w.resolve(!1))}function f(){n.refreshInstalled()}function h(w){try{return new Date(w).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch{return w}}var m=e0(),x=p(m),g=E(p(x),2);v(x);var _=E(x,2);{var S=w=>{var O=G1(),R=p(O,!0);v(O),z(()=>L(R,a(i))),I(w,O)};$(_,w=>{a(i)&&w(S)})}var y=E(_,2);{var b=w=>{var O=X1();I(w,O)},T=w=>{var O=Q1();ce(O,21,()=>n.state.ephemeral.installed,R=>R.id,(R,P)=>{const D=F(()=>a(r).has(a(P).id));var N=Z1(),V=p(N),j=p(V),B=p(j,!0);v(j);var Y=E(j,2);let G;var Z=p(Y,!0);v(Y);var J=E(Y,2),te=p(J,!0);v(J),v(V);var ee=E(V,2),Q=p(ee),ve=p(Q);v(Q);var he=E(Q,2),W=p(he);v(he);var oe=E(he,2),me=p(oe);v(oe),v(ee);var Ye=E(ee,2),Ae=p(Ye);{var ot=En=>{const Si=F(()=>n.state.ephemeral.updatable[a(P).id]),ls=F(()=>a(s).has(a(P).id));var H=J1(),K=p(H,!0);v(H),z(()=>{H.disabled=a(ls)||a(D),L(K,a(ls)?"Updating...":`Update -> ${a(Si).latest.version}`)}),U("click",H,()=>c(a(P).id)),I(En,H)};$(Ae,En=>{a(P).id in n.state.ephemeral.updatable&&En(ot)})}var Ge=E(Ae,2),as=p(Ge,!0);v(Ge),v(Ye),v(N),z(En=>{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: ${En??""}`),Ge.disabled=a(D),L(as,a(D)?"Removing...":"Uninstall")},[()=>h(a(P).installedAt)]),U("click",Ge,()=>l(a(P).id)),I(R,N)}),v(O),I(w,O)};$(y,w=>{n.state.ephemeral.installed.length===0?w(b):w(T,-1)})}var M=E(y,2);{var C=w=>{{let O=F(()=>({label:a(o).pkg.id,version:a(o).toVersion}));wo(w,{mode:"update",get pkg(){return a(O)},get fromVersion(){return a(o).pkg.version},get added(){return a(o).added},get removed(){return a(o).removed},onConfirm:u,onCancel:d})}};$(M,w=>{a(o)&&w(C)})}v(m),U("click",g,f),I(e,m),re()}ue(["click"]);function ef(e){return _n.state.ephemeral.catalog.find(t=>t.entry.id===e)}function Aa(e){return _n.state.ephemeral.installed.find(t=>t.id===e)}const n0={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=Aa(n);if(r){e.scrollback.push({kind:"status",text:`${n} is already installed (v${r.version})`,level:"warn",ts:Date.now()});return}const s=ef(n);if(!s){e.scrollback.push({kind:"status",text:`package "${n}" not found in catalog — try refreshing the store`,level:"error",ts:Date.now()});return}e.scrollback.push({kind:"status",text:`installing ${n} v${s.latest.version}...`,level:"info",ts:Date.now()});try{const i=await wi(s.latest,s.sourceRegistry),o=ki(s,s.latest);let l;s.latest.serverBundleUrl&&(l=await _a(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 fa(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 Ia(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 _n.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()})}}},r0={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(!Aa(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 yd(n),await Qd(n),await _n.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()})}}},s0={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=Aa(n),s=ef(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 i0(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 o0(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 _n;const a0={manifest:{id:"sh3-store",label:"Package Store",version:xn,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&&i0(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 $d(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 __();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 _1();n.ephemeral.installed=h,r()}catch{}}}async function o(f){const h=[...t.registries];h.includes(f)||(h.push(f),await e.envUpdate({registries:h}))}async function l(f){const h=t.registries.filter(m=>m!==f);await e.envUpdate({registries:h})}async function c(f,h){const m=n.ephemeral.updatable[f];if(!m)return;const x=n.ephemeral.installed.find(N=>N.id===f);if(!x)return;const g=await wi(m.latest,m.sourceRegistry);let _;m.latest.serverBundleUrl&&(_=await _a(m.latest,m.sourceRegistry));const S=ki(m,m.latest),y=await is(g),b=Ea(y);let T=[];try{const N=await g1(f);N?.permissions&&(T=N.permissions)}catch{}const{added:M,removed:C}=o0(T,b);if((M.length>0||C.length>0)&&h&&!await h(M,C))return;const w=await Jd(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 fa(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 Ia(g,S,{loaded:y});if(!D.success){if(w)try{await Xd(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()}_n={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(Y1,{target:f});return{unmount(){Fe(m)}}}},d={mount(f,h){const m=Oe(t0,{target:f});return{unmount(){Fe(m)}}}};e.registerView("sh3-store:browse",u),e.registerView("sh3-store:installed",d),e.registerVerb(n0),e.registerVerb(r0),e.registerVerb(s0),i()},autostart(){_n.refreshCatalog()}},l0={manifest:{id:"sh3-store-app",label:"Package Store",version:xn,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 c0=A('<div class="admin-error svelte-4q792t"> </div>'),u0=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>'),d0=A('<p class="admin-muted svelte-4q792t">Loading...</p>'),f0=A('<p class="admin-error svelte-4q792t"> </p>'),v0=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>'),h0=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),p0=A('<li class="admin-user-item svelte-4q792t"><!></li>'),m0=A('<ul class="admin-user-list svelte-4q792t"></ul>'),g0=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 b0(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=g0(),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=u0(),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=c0(),me=p(oe,!0);v(oe),z(()=>L(me,a(d))),I(W,oe)};$(ve,W=>{a(d)&&W(he)})}v(B),z(W=>Q.disabled=W,[()=>!a(o).trim()||!a(c).trim()]),Qe("submit",B,W=>{W.preventDefault(),_()}),Me(Y,()=>a(o),W=>k(o,W)),Me(G,()=>a(l),W=>k(l,W)),Me(Z,()=>a(c),W=>k(c,W)),jr(J,()=>a(u),W=>k(u,W)),I(j,B)};$(O,j=>{a(i)&&j(R)})}var P=E(O,2);{var D=j=>{var B=d0();I(j,B)},N=j=>{var B=f0(),Y=p(B,!0);v(B),z(()=>L(Y,a(s))),I(j,B)},V=j=>{var B=m0();ce(B,21,()=>a(n),Y=>Y.id,(Y,G)=>{var Z=p0(),J=p(Z);{var te=Q=>{var ve=v0(),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),ot=E(p(Ae),2);v(Ae),v(ve),Qe("submit",ve,Ge=>{Ge.preventDefault(),y()}),Me(he,()=>a(h),Ge=>k(h,Ge)),Me(W,()=>a(x),Ge=>k(x,Ge)),jr(oe,()=>a(m),Ge=>k(m,Ge)),U("click",ot,()=>{k(f,null)}),I(Q,ve)},ee=Q=>{var ve=h0(),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),ot=p(Ae),Ge=E(ot,2);v(Ae),z(()=>{L(oe,a(G).displayName),L(Ye,`${a(G).username??""} · ${a(G).role??""}`)}),U("click",ot,()=>S(a(G))),U("click",Ge,()=>b(a(G).id)),I(Q,ve)};$(J,Q=>{a(f)===a(G).id?Q(te):Q(ee,-1)})}v(Z),I(Y,Z)}),v(B),I(j,B)};$(P,j=>{a(r)?j(D):a(s)?j(N,1):j(V,-1)})}v(T),z(()=>L(w,a(i)?"Cancel":"New user")),U("click",C,()=>{k(i,!a(i))}),I(e,T),re()}ue(["click"]);var y0=A('<p class="admin-muted svelte-1hsgdb4">Loading...</p>'),_0=A('<div class="admin-error svelte-1hsgdb4"> </div>'),w0=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),k0=A('<div class="admin-auth svelte-1hsgdb4"><h2 class="svelte-1hsgdb4">Auth Settings</h2> <!></div>');function S0(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=k0(),u=E(p(c),2);{var d=h=>{var m=y0();I(h,m)},f=h=>{var m=w0(),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=_0(),V=p(N,!0);v(N),z(()=>L(V,a(i))),I(D,N)};$(R,D=>{a(i)&&D(P)})}z(()=>{w.disabled=a(s),L(O,a(s)?"Saving...":"Save")}),gs(_,()=>a(n).auth.required,D=>a(n).auth.required=D),gs(y,()=>a(n).auth.guestAllowed,D=>a(n).auth.guestAllowed=D),gs(T,()=>a(n).auth.selfRegistration,D=>a(n).auth.selfRegistration=D),Me(C,()=>a(n).auth.sessionTTL,D=>a(n).auth.sessionTTL=D),U("click",w,l),I(h,m)};$(u,h=>{a(r)?h(d):a(n)&&h(f,1)})}v(c),I(e,c),re()}ue(["click"]);var x0=A('<button type="button"> </button>'),E0=A('<div class="admin-error svelte-1gkiloq"> </div>'),I0=A('<div class="admin-error svelte-1gkiloq"> </div>'),A0=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 C0(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=A0(),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=x0();let Ye;var Ae=p(me,!0);v(me),z(()=>{Ye=_e(me,1,"admin-snap svelte-1gkiloq",null,Ye,{active:a(o)===a(oe).value}),me.disabled=a(c),L(Ae,a(oe).label)}),U("click",me,()=>k(o,a(oe).value,!0)),I(W,me)}),v(N);var V=E(N,2),j=p(V),B=p(j,!0);v(j);var Y=E(j,2),G=E(Y,2);{var Z=W=>{var oe=E0(),me=p(oe,!0);v(oe),z(()=>L(me,a(u))),I(W,oe)};$(G,W=>{a(u)&&W(Z)})}v(V),v(C);var J=E(C,2),te=E(p(J),2),ee=p(te),Q=p(ee,!0);v(ee);var ve=E(ee,2);{var he=W=>{var oe=I0(),me=p(oe,!0);v(oe),z(()=>L(me,a(i))),I(W,oe)};$(ve,W=>{a(i)&&W(he)})}v(te),v(J),v(S),z(()=>{L(M,a(r)),w.disabled=a(c),L(P,a(o)),L(D,` — ${a(f)??""}`),j.disabled=!a(d)||a(c),L(B,a(c)?"Saving...":"Save"),Y.disabled=!a(d)||a(c),ee.disabled=a(s),L(Q,a(s)?"Restarting...":"Restart server")}),Me(w,()=>a(o),W=>k(o,W)),U("click",j,g),U("click",Y,()=>k(o,a(l),!0)),U("click",ee,_),I(e,S),re()}ue(["click"]);var T0=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>`),R0=A('<div class="admin-error svelte-1afg5z5"> </div>'),D0=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>'),P0=A('<p class="admin-muted svelte-1afg5z5">Loading...</p>'),M0=A('<p class="admin-error svelte-1afg5z5"> </p>'),O0=A('<p class="admin-muted svelte-1afg5z5">No API keys. Create one to enable external access.</p>'),L0=A('<button type="button" class="admin-btn-danger svelte-1afg5z5">Confirm</button> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Cancel</button>',1),N0=A('<button type="button" class="admin-btn-danger svelte-1afg5z5">Revoke</button>'),j0=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>'),z0=A('<ul class="admin-key-list svelte-1afg5z5"></ul>'),q0=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 B0(e,t){ne(t,!0);let n=q(le([])),r=q(!0),s=q(null),i=q(!1),o=q(""),l=q(null),c=q(null),u=q(null);async function d(){k(r,!0),k(s,null);try{const D=await fetch("/api/admin/keys",{credentials:"include"});if(!D.ok)throw new Error("Failed to fetch keys");k(n,await D.json(),!0)}catch(D){k(s,D instanceof Error?D.message:"Failed to load keys",!0)}finally{k(r,!1)}}async function f(){k(l,null);try{const D=await fetch("/api/admin/keys",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({label:a(o)})});if(!D.ok){const V=await D.json().catch(()=>({}));k(l,V.error||"Failed to create key",!0);return}const N=await D.json();k(c,{id:N.id,key:N.key},!0),k(o,""),k(i,!1),await d()}catch{k(l,"Network error")}}async function h(D){k(u,null);try{await fetch(`/api/admin/keys/${D}`,{method:"DELETE",credentials:"include"}),a(c)?.id===D&&k(c,null),await d()}catch{}}function m(D){return new Date(D).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}d();var x=q0(),g=p(x),_=E(p(g),2),S=p(_,!0);v(_),v(g);var y=E(g,2);{var b=D=>{var N=T0(),V=E(p(N),2),j=p(V,!0);v(V);var B=E(V,2);v(N),z(()=>L(j,a(c).key)),U("click",B,()=>{k(c,null)}),I(D,N)};$(y,D=>{a(c)&&D(b)})}var T=E(y,2);{var M=D=>{var N=D0(),V=p(N);Se(V);var j=E(V,2),B=E(j,2);{var Y=G=>{var Z=R0(),J=p(Z,!0);v(Z),z(()=>L(J,a(l))),I(G,Z)};$(B,G=>{a(l)&&G(Y)})}v(N),z(G=>j.disabled=G,[()=>!a(o).trim()]),Qe("submit",N,G=>{G.preventDefault(),f()}),Me(V,()=>a(o),G=>k(o,G)),I(D,N)};$(T,D=>{a(i)&&D(M)})}var C=E(T,2);{var w=D=>{var N=P0();I(D,N)},O=D=>{var N=M0(),V=p(N,!0);v(N),z(()=>L(V,a(s))),I(D,N)},R=D=>{var N=O0();I(D,N)},P=D=>{var N=z0();ce(N,21,()=>a(n),V=>V.id,(V,j)=>{var B=j0(),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=L0(),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=N0();U("click",oe,()=>{k(u,a(j).id,!0)}),I(W,oe)};$(Q,W=>{a(u)===a(j).id?W(ve):W(he,-1)})}v(ee),v(B),z(W=>{L(Z,a(j).label),L(te,`${a(j).id??""} · ${W??""}`)},[()=>m(a(j).createdAt)]),I(V,B)}),v(N),I(D,N)};$(C,D=>{a(r)?D(w):a(s)?D(O,1):a(n).length===0?D(R,2):D(P,-1)})}v(x),z(()=>L(S,a(i)?"Cancel":"New key")),U("click",_,()=>{k(i,!a(i))}),I(e,x),re()}ue(["click"]);const V0={manifest:{id:"sh3-admin",label:"Admin",version:xn,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(b0,{target:i});return{unmount(){Fe(l)}}}},n={mount(i,o){const l=Oe(S0,{target:i});return{unmount(){Fe(l)}}}},r={mount(i,o){const l=Oe(C0,{target:i});return{unmount(){Fe(l)}}}},s={mount(i,o){const l=Oe(B0,{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)}},$0={manifest:{id:"sh3-admin-app",label:"Admin",version:xn,requiredShards:["sh3-admin"],layoutVersion:1,admin:!0},initialLayout:{type:"tabs",activeTab:0,tabs:[{slotId:"admin.users",viewId:"sh3-admin:users",label:"Users"},{slotId:"admin.auth",viewId:"sh3-admin:auth",label:"Auth"},{slotId:"admin.system",viewId:"sh3-admin:system",label:"System"},{slotId:"admin.keys",viewId:"sh3-admin:keys",label:"Keys"}]}},Pl="sh3:migrations:shell-rename:done",Ml="__shell__:",F0="__sh3core__:",Ol="sh3:user:__shell__:theme",Ll="sh3:user:__sh3core__:theme";function U0(e,t){if(t.getItem(Pl))return;const n=t.getItem(Ol);n!==null&&t.getItem(Ll)===null&&(t.setItem(Ll,n),t.removeItem(Ol));for(const r of e.keys()){if(!r.startsWith(Ml))continue;const s=F0+r.slice(Ml.length),i=e.read(r);e.write(s,i),e.delete(r)}t.setItem(Pl,"1")}function H0(e){ha(e)}function K0(){const e=Ht.workspace;return{keys:()=>e.list(),read:t=>e.read(t),write:(t,n)=>e.write(t,n),delete:t=>e.delete(t)}}async function W0(e){typeof globalThis.localStorage<"u"&&U0(K0(),globalThis.localStorage);const t=new Set(e?.excludeShards),n=[Aw,u1,a0,V0];for(const i of n)t.has(i.manifest.id)||ha(i);const r=[l0,$0];for(const i of r)ca(i);await w1();for(const[i,o]of en)o.autostart&&(Iy(i),await Td(i));const s=M_();s&&bn.has(s)&&await $n(s)}var Y0=A('<button type="button" aria-label="Expand pane"><span class="collapse-icon"> </span></button>'),G0=A('<button type="button" aria-label="Collapse pane"><span class="collapse-icon"> </span></button>'),X0=A('<!> <div class="pane-content svelte-1adl4o1"><!></div>',1),J0=A('<div role="separator"></div>'),Z0=A("<div><!></div> <!>",1),Q0=A("<div></div>");function eS(e,t){ne(t,!0);const n=40,r=28;let s;const i=S=>t.pinned?.[S]??"fr",o=S=>t.collapsed?.[S]??!1,l=S=>t.fixed?.[S]??!1,c=S=>l(S)||l(S+1);function u(S){if(l(S))return!1;const y=S>0?!l(S-1):!1,b=S<t.count-1?!l(S+1):!1;return y||b}function d(S){return o(S)?`0 0 ${r}px`:i(S)==="px"?`0 0 ${Math.max(n,t.sizes[S])}px`:`${Math.max(1e-4,t.sizes[S])} 1 0`}let f=q(null);function h(S,y){if(o(y)||o(y+1)||c(y))return;S.preventDefault(),S.target.setPointerCapture(S.pointerId);const b=s.getBoundingClientRect(),T=t.direction==="horizontal"?b.width:b.height;let M=0,C=0;for(let w=0;w<t.sizes.length;w++)i(w)==="fr"?M+=t.sizes[w]:C+=Math.max(n,t.sizes[w]);k(f,{handleIndex:y,startClient:t.direction==="horizontal"?S.clientX:S.clientY,startSizes:t.sizes.slice(),containerPx:T,totalFr:M,frAvailPx:Math.max(1,T-C)},!0)}function m(S){if(!a(f))return;const b=(t.direction==="horizontal"?S.clientX:S.clientY)-a(f).startClient,T=a(f).handleIndex,M=T+1,C=i(T),w=i(M),O=a(f).totalFr/a(f).frAvailPx;if(C==="fr"&&w==="fr"){const R=n*O,P=b*O,D=a(f).startSizes[M]-R,N=-(a(f).startSizes[T]-R),V=Math.min(Math.max(P,N),D);t.onResize?.(T,a(f).startSizes[T]+V),t.onResize?.(M,a(f).startSizes[M]-V)}else if(C==="px"&&w==="fr"){const R=a(f).frAvailPx-n,P=n-a(f).startSizes[T];t.onResize?.(T,a(f).startSizes[T]+Math.min(Math.max(b,P),R))}else if(C==="fr"&&w==="px"){const R=a(f).startSizes[M]-n,P=-(a(f).frAvailPx-n);t.onResize?.(M,a(f).startSizes[M]-Math.min(Math.max(b,P),R))}else{const R=a(f).startSizes[M]-n,P=-(a(f).startSizes[T]-n),D=Math.min(Math.max(b,P),R);t.onResize?.(T,a(f).startSizes[T]+D),t.onResize?.(M,a(f).startSizes[M]-D)}}function x(S){a(f)&&(S.target.releasePointerCapture(S.pointerId),k(f,null))}var g=Q0();let _;ce(g,21,()=>Array(t.count),Vn,(S,y,b)=>{var T=Z0(),M=fe(T);let C;var w=p(M);{var O=V=>{var j=Y0();let B;var Y=p(j),G=p(Y,!0);v(Y),v(j),z(()=>{B=_e(j,1,"collapse-header svelte-1adl4o1",null,B,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),L(G,t.direction==="horizontal"?"▸":"▾")}),U("click",j,()=>t.onCollapseToggle?.(b,!1)),I(V,j)},R=F(()=>o(b)),P=V=>{var j=X0(),B=fe(j);{var Y=te=>{var ee=G0();let Q;be(ee,"data-testid",`collapse-toggle-${b}`);var ve=p(ee),he=p(ve,!0);v(ve),v(ee),z(()=>{Q=_e(ee,1,"collapse-header expanded svelte-1adl4o1",null,Q,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),L(he,t.direction==="horizontal"?"◂":"▴")}),U("click",ee,()=>t.onCollapseToggle?.(b,!0)),I(te,ee)},G=F(()=>t.onCollapseToggle&&u(b));$(B,te=>{a(G)&&te(Y)})}var Z=E(B,2),J=p(Z);ti(J,()=>t.pane,()=>b),v(Z),I(V,j)};$(w,V=>{a(R)?V(O):V(P,-1)})}v(M);var D=E(M,2);{var N=V=>{var j=J0();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),Qe("pointercancel",j,x),U("dblclick",j,()=>{c(b)||!u(b)&&!o(b)||t.onCollapseToggle?.(b,!o(b))}),I(V,j)};$(D,V=>{b<t.count-1&&V(N)})}z((V,j)=>{C=_e(M,1,"splitter-pane svelte-1adl4o1",null,C,V),nn(M,`flex: ${j??""};`)},[()=>({collapsed:o(b)}),()=>d(b)]),I(S,T)}),v(g),et(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 tS(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 nS=A('<span class="tab-dirty svelte-1kxcyhf" title="Unsaved changes"></span>'),rS=A('<span class="tab-icon svelte-1kxcyhf"> </span>'),sS=A('<span class="tab-close svelte-1kxcyhf" role="button" tabindex="-1" title="Close">✕</span>'),iS=A('<button type="button" role="tab"><!> <!> <span class="tab-label svelte-1kxcyhf"> </span> <!></button>'),oS=A('<div class="drop-indicator svelte-1kxcyhf"></div>'),aS=A("<div><!></div>"),lS=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 cS(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=lS(),f=p(d),h=p(f);ce(h,17,()=>t.labels,Vn,(_,S,y)=>{var b=iS();let T;var M=p(b);{var C=V=>{var j=nS();I(V,j)};$(M,V=>{t.dirty?.[y]&&V(C)})}var w=E(M,2);{var O=V=>{var j=rS(),B=p(j,!0);v(j),z(()=>L(B,t.icons[y])),I(V,j)};$(w,V=>{t.icons?.[y]&&V(O)})}var R=E(w,2),P=p(R,!0);v(R);var D=E(R,2);{var N=V=>{var j=sS();z(()=>be(j,"data-testid",t.tabIds?.[y]?`tab-close-${t.tabIds[y]}`:void 0)),U("click",j,B=>r(y,B)),U("keydown",j,B=>{(B.key==="Enter"||B.key===" ")&&r(y,B)}),I(V,j)};$(D,V=>{t.closable?.[y]&&V(N)})}v(b),et(b,(V,j)=>i[j]=V,V=>i?.[V],()=>[y]),z(()=>{T=_e(b,1,"tab svelte-1kxcyhf",null,T,{active:t.activeTab===y}),be(b,"aria-selected",t.activeTab===y),L(P,a(S))}),U("click",b,()=>n(y)),U("pointerdown",b,V=>l(y,V)),Qe("auxclick",b,V=>{V.button===1&&t.closable?.[y]&&r(y,V)}),I(_,b)});var m=E(h,2);{var x=_=>{const S=F(()=>tS(a(o),i,a(s)));var y=ct(),b=fe(y);{var T=M=>{var C=oS();z(()=>nn(C,`left: ${a(S).left??""}px; height: ${a(S).height??""}px; top: ${a(S).top??""}px;`)),I(M,C)};$(b,M=>{a(S)&&M(T)})}I(_,y)};$(m,_=>{a(o)!==null&&t.dragController?.isDragging&&_(x)})}v(f),et(f,_=>k(s,_),()=>a(s));var g=E(f,2);ce(g,21,()=>t.labels,Vn,(_,S,y)=>{var b=aS();let T;var M=p(b);ti(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),Qe("pointerleave",f,u),I(e,d),re()}ue(["pointermove","click","pointerdown","keydown"]);var uS=A('no factory for <code class="svelte-1czj0s8"> </code>',1),dS=A("<em>empty slot</em>"),fS=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>'),vS=A('<div class="slot svelte-1czj0s8"><!></div>');function Nl(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?!!Ku(t.node.viewId):!1);Ie(()=>{if(!a(r))return;const d=t.node.slotId,f=a(r),h=oa(d,t.node.viewId,n()||t.node.viewId||d);f.appendChild(h);const m=new ResizeObserver(x=>{for(const g of x){const _=g.contentRect;k(s,Math.round(_.width),!0),k(i,Math.round(_.height),!0)}});return m.observe(f),()=>{m.disconnect(),aa(d,f)}});var l=vS(),c=p(l);{var u=d=>{var f=fS(),h=p(f),m=p(h,!0);v(h);var x=E(h,2),g=p(x);{var _=T=>{var M=uS(),C=E(fe(M)),w=p(C,!0);v(C),z(()=>L(w,t.node.viewId)),I(T,M)},S=T=>{var M=dS();I(T,M)};$(g,T=>{t.node.viewId?T(_):T(S,-1)})}v(x);var y=E(x,2),b=p(y);v(y),v(f),z(()=>{L(m,t.node.slotId),L(b,`${a(s)??""} × ${a(i)??""}`)}),I(d,f)};$(c,d=>{a(o)||d(u)})}v(l),et(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 tf=0;function hS(){return performance.now()<tf}const jl=4;let nf=0,rf=0;function pS(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,nf=r.clientX,rf=r.clientY,mS()}function mS(){window.addEventListener("pointermove",sf,!0),window.addEventListener("pointerup",of,!0),window.addEventListener("pointercancel",af,!0),document.body.style.userSelect="none",document.body.dataset.dragging=""}function gS(){window.removeEventListener("pointermove",sf,!0),window.removeEventListener("pointerup",of,!0),window.removeEventListener("pointercancel",af,!0),document.body.style.userSelect="",delete document.body.dataset.dragging}function sf(e){if(pe.pointerX=e.clientX,pe.pointerY=e.clientY,pe.phase==="pending"){const t=e.clientX-nf,n=e.clientY-rf;t*t+n*n>=jl*jl&&(pe.phase="dragging")}}function of(e){pe.phase==="dragging"&&(bS(),tf=performance.now()+50),lf()}function af(e){lf()}function zl(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 ql(e){if(e.kind!=="float")return;const t=Zt.tree,n=t.floats.findIndex(r=>r.id===e.floatId);n<0||Pu(t.floats[n].content)&&t.floats.splice(n,1)}function bS(){const{source:e,target:t}=pe;if(!e||!t)return;const n=zl(e.sourceRoot),r=zl(t.root);if(!n||!r)return;if(t.kind==="strip"){const i=t.tabsNode.tabs.findIndex(o=>o.slotId===e.slotId);if(i>=0){iy(t.tabsNode,i,t.insertIndex),tr(n),r!==n&&tr(r),ql(e.sourceRoot);return}}const s=ci(n,e.slotId);s&&(t.kind==="strip"?sy(t.tabsNode,s,t.insertIndex):Wu(r,t.path,s,t.side),tr(n),r!==n&&tr(r),ql(e.sourceRoot))}function lf(){pe.phase="idle",pe.source=null,pe.target=null,gS()}function ko(e){pe.phase==="dragging"&&(pe.target=e)}function sr(e){pe.phase==="dragging"&&pe.target&&(e&&!e(pe.target)||(pe.target=null))}var yS=A("<div></div>"),_S=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),wS=A("<!> <!>",1),kS=A("<div><!></div>");function Bl(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?Yu(m,t.path):!1});function o(m,x,g){const _=g.left+g.width/2,S=g.top+g.height/2,y=m-_,b=x-S,T=y/g.width,M=b/g.height;return Math.abs(T)>Math.abs(M)?T<0?"left":"right":M<0?"top":"bottom"}function l(m){if(!a(n))return;if(a(i)){a(r)!==null&&(k(r,null),sr(_=>_.kind==="split"&&_.path.join("/")===t.path.join("/")));return}const x=a(n).getBoundingClientRect();if(m.clientX<x.left||m.clientX>x.right||m.clientY<x.top||m.clientY>x.bottom){a(r)!==null&&(k(r,null),sr(_=>_.kind==="split"&&_.path.join("/")===t.path.join("/")));return}const g=o(m.clientX,m.clientY,x);if(g!==a(r)){k(r,g,!0);const _={kind:"split",root:t.rootRef,path:[...t.path],side:g};ko(_)}}function c(){a(r)!==null&&(k(r,null),sr(m=>m.kind==="split"&&m.path.join("/")===t.path.join("/")))}var u=kS();let d;var f=p(u);{var h=m=>{var x=wS(),g=fe(x);{var _=b=>{var T=yS();z(()=>_e(T,1,`quad-highlight quad-${a(r)??""}`,"svelte-re71zu")),I(b,T)};$(g,b=>{a(r)&&b(_)})}var S=E(g,2);{var y=b=>{var T=_S();on(6),I(b,T)};$(S,b=>{a(s)&&b(y)})}I(m,x)};$(f,m=>{a(i)||m(h)})}v(u),et(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),Qe("pointerleave",u,c),I(e,u),re()}ue(["pointermove"]);var SS=A('<div class="tab-slot-wrapper svelte-1gw9g38"><!> <!></div>'),xS=A('<div class="empty-tabs-custom svelte-1gw9g38"></div>'),ES=A('<div class="empty-tabs-default svelte-1gw9g38"><div class="empty-tabs-drop svelte-1gw9g38"></div></div>'),IS=A('<div class="empty-tabs-placeholder svelte-1gw9g38"><!></div>'),AS=A('<div class="leaf-slot-wrapper svelte-1gw9g38"><!> <!></div>');function Ca(e,t){ne(t,!0);let n=We(t,"path",19,()=>[]),r=We(t,"rootRef",19,()=>({kind:"docked"}));const s=F(()=>{let y;return r().kind==="docked"?y=Zt.root:y=Zt.tree.floats.find(T=>T.id===r().floatId)?.content??null,y?qr(y,n()):null});function i(y){return{get isDragging(){return pe.phase==="dragging"},onPointerDown(b,T,M){const C=y.tabs[b];C&&pS(C.slotId,C,r(),T,M)},onStripHover(b,T,M,C){if(M<b.top||M>b.bottom)return sr(R=>R.kind==="strip"&&R.tabsNode===y),null;let w=C.length;for(let R=0;R<C.length;R++){const P=C[R],D=P.left+P.width/2;if(T<D){w=R;break}}const O=pe.source;if(O){const R=y.tabs.findIndex(P=>P.slotId===O.slotId);R>=0&&R<w&&(w-=1)}return ko({kind:"strip",root:r(),tabsNode:y,insertIndex:w}),w},onStripLeave(){sr(b=>b.kind==="strip"&&b.tabsNode===y)}}}function o(y){return y.type==="split"?y:null}function l(y){return y.type==="tabs"?y:null}function c(y){return y.type==="slot"?y:null}function u(y){return y.map(b=>uy(b.slotId)||void 0)}function d(y){return y.map(b=>cy(b.slotId)||void 0)}function f(y,b){const T=y[b];T&&ma(T.slotId)}function h(y,b){b(y)}function m(y,b){pe.phase==="dragging"&&ko({kind:"strip",root:r(),tabsNode:b,insertIndex:0})}function x(){sr(y=>y.kind==="strip"&&y.insertIndex===0)}var g=ct(),_=fe(g);{var S=y=>{var b=ct(),T=fe(b);{var M=O=>{const R=(D,N=bt)=>{{let V=F(()=>[...n(),N()]);Ca(D,{get rootRef(){return r()},get path(){return a(V)}})}},P=F(()=>o(a(s)));eS(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=ct(),D=fe(P);{var N=j=>{const B=(G,Z=bt)=>{const J=F(()=>a(R)?.tabs[Z()]);var te=ct(),ee=fe(te);{var Q=ve=>{var he=SS(),W=p(he);{let me=F(()=>({type:"slot",slotId:a(J).slotId,viewId:a(J).viewId}));Nl(W,{get node(){return a(me)},get label(){return a(J).label}})}var oe=E(W,2);Bl(oe,{get rootRef(){return r()},get path(){return n()}}),v(he),I(ve,he)};$(ee,ve=>{a(J)&&ve(Q)})}I(G,te)},Y=F(()=>i(a(R)));{let G=F(()=>a(R).tabs.map(Q=>Q.label)),Z=F(()=>a(R).tabs.map(Q=>Q.icon)),J=F(()=>u(a(R).tabs)),te=F(()=>d(a(R).tabs)),ee=F(()=>a(R).tabs.map(Q=>Q.slotId));cS(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 hS},get closable(){return a(J)},get dirty(){return a(te)},onClose:Q=>f(a(R).tabs,Q),get tabIds(){return a(ee)}})}},V=j=>{var B=IS(),Y=p(B);{var G=J=>{var te=xS();hu(te,(ee,Q)=>h?.(ee,Q),()=>a(R).emptyRenderer),I(J,te)},Z=J=>{var te=ES(),ee=p(te);v(te),U("pointermove",ee,Q=>m(Q,a(R))),Qe("pointerleave",ee,x),I(J,te)};$(Y,J=>{a(R).emptyRenderer?J(G):J(Z,-1)})}v(B),I(j,B)};$(D,j=>{a(R)&&a(R).tabs.length>0?j(N):a(R)?.persistent&&j(V,1)})}I(O,P)},w=O=>{const R=F(()=>c(a(s)));var P=AS(),D=p(P);Nl(D,{get node(){return a(R)}});var N=E(D,2);Bl(N,{get rootRef(){return r()},get path(){return n()}}),v(P),I(O,P)};$(T,O=>{a(s).type==="split"?O(M):a(s).type==="tabs"?O(C,1):O(w,-1)})}I(y,b)};$(_,y=>{a(s)&&y(S)})}I(e,g),re()}ue(["pointermove"]);var CS=A('<span class="drag-preview-icon svelte-133fiip"> </span>'),TS=A('<div class="drag-preview svelte-133fiip"><!> <span class="drag-preview-label svelte-133fiip"> </span></div>');function RS(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=ct(),d=fe(u);{var f=h=>{var m=TS(),x=p(m);{var g=y=>{var b=CS(),T=p(b,!0);v(b),z(()=>L(T,a(c))),I(y,b)};$(x,y=>{a(c)&&y(g)})}var _=E(x,2),S=p(_,!0);v(_),v(m),z(()=>{nn(m,`left: ${a(r)??""}px; top: ${a(s)??""}px; width: ${a(i)??""}px; height: ${a(o)??""}px;`),L(S,a(l))}),I(h,m)};$(d,h=>{a(n)&&h(f)})}I(e,u),re()}const ir=new Map;let Vs=!1;function cf(e){if(ir.size===0)return;const t=e.target;if(!t)return;const n=Array.from(ir.keys());for(const r of n){const s=ir.get(r);s&&(s.contains(t)||Mt.close(r))}}function DS(){Vs||typeof document>"u"||(document.addEventListener("pointerdown",cf,!0),Vs=!0)}function PS(){Vs&&(ir.size>0||(document.removeEventListener("pointerdown",cf,!0),Vs=!1))}function MS(e,t){ir.set(e,t),DS()}function OS(e){ir.delete(e),PS()}var LS=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>'),NS=A('<div class="sh3-float-frame svelte-1p734al" role="dialog" tabindex="-1"><!> <div class="sh3-float-body svelte-1p734al"><!></div></div>');function jS(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 MS(n().id,a(i)),()=>OS(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=NS();let h;var m=p(f);{var x=S=>{var y=LS(),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),Qe("pointercancel",y,c),U("click",M,d),I(S,y)};$(m,S=>{n().title&&S(x)})}var g=E(m,2),_=p(g);{let S=F(()=>({kind:"float",floatId:n().id}));Ca(_,{get rootRef(){return a(S)},path:[]})}v(g),v(f),et(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 zS=A('<div class="sh3-float-layer svelte-1rzcset"></div>');function qS(e,t){ne(t,!0);const n=F(()=>Zt.floats);var r=zS();ce(r,21,()=>a(n),s=>s.id,(s,i)=>{jS(s,{get entry(){return a(i)}})}),v(r),I(e,r),re()}var BS=A('<div class="guest-signin-error svelte-pymkh"> </div>'),VS=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>'),$S=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),FS=A('<div class="guest-banner-slot"><!></div>');function US(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 md(a(r).trim(),a(s).trim());k(o,!1),h.ok?k(n,!1):k(i,h.error,!0)}var c=FS(),u=p(c);{var d=h=>{var m=$S(),x=fe(m),g=E(p(x),2);v(x);var _=E(x,2);{var S=y=>{var b=VS(),T=p(b),M=p(T),C=p(M);Se(C);var w=E(C,2);Se(w);var O=E(w,2),R=p(O),P=p(R,!0);v(R);var D=E(R,2);v(O),v(M);var N=E(M,2);{var V=j=>{var B=BS(),Y=p(B,!0);v(B),z(()=>L(Y,a(i))),I(j,B)};$(N,j=>{a(i)&&j(V)})}v(T),v(b),z(j=>{C.disabled=a(o),w.disabled=a(o),R.disabled=j,L(P,a(o)?"Signing in...":"Sign in")},[()=>a(o)||!a(r).trim()||!a(s).trim()]),Qe("submit",M,j=>{j.preventDefault(),l()}),Me(C,()=>a(r),j=>k(r,j)),Me(w,()=>a(s),j=>k(s,j)),U("click",D,()=>{k(n,!1),k(i,null)}),I(y,b)};$(_,y=>{a(n)&&y(S)})}U("click",g,()=>{k(n,!0)}),I(h,m)},f=F(()=>gd());$(u,h=>{a(f)&&h(d)})}v(c),I(e,c),re()}ue(["click"]);var HS=A('<code class="sh3-consent-scope svelte-14me5sj"> </code>'),KS=A('<dt class="svelte-14me5sj">Peer</dt> <dd class="svelte-14me5sj"> </dd>',1),WS=A('<dt class="svelte-14me5sj">Expires in</dt> <dd class="svelte-14me5sj"> </dd>',1),YS=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 GS(e,t){ne(t,!0);let n=q(null);Ie(()=>Ad(u=>{k(n,u,!0)}));function r(){a(n)&&(bo(a(n).requestId,!0),k(n,null))}function s(){a(n)&&(bo(a(n).requestId,!1),k(n,null))}var i=ct(),o=fe(i);{var l=c=>{var u=YS(),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=HS(),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=KS(),D=E(fe(P),2),N=p(D);v(D),z(()=>L(N,`${a(n).peerRole??"—"??""}${a(n).peerId?` · ${a(n).peerId}`:""}`)),I(R,P)};$(y,R=>{(a(n).peerRole||a(n).peerId)&&R(b)})}var T=E(y,2);{var M=R=>{var P=WS(),D=E(fe(P),2),N=p(D);v(D),z(V=>L(N,`${V??""}s`),[()=>Math.round(a(n).expiresIn/1e3)]),I(R,P)};$(T,R=>{a(n).expiresIn&&R(M)})}v(x);var C=E(x,2),w=p(C);pr(w,!0);var O=E(w,2);v(C),v(d),v(u),z(()=>{L(m,a(n).shardId),L(_,a(n).label)}),U("click",w,s),U("click",O,r),I(c,u)};$(o,c=>{a(n)&&c(l)})}I(e,i),re()}ue(["click"]);var XS=A('<span class="sh3-brand svelte-18lk809">SH3</span>'),JS=A('<span class="sh3-brand sh3-brand-app svelte-18lk809"> </span>'),ZS=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),QS=A('<div class="sh3-brand-slot svelte-18lk809"><!></div>');function ex(e,t){ne(t,!0);const n=F(()=>Jt().activeAppId),r=F(hy),s=F(()=>a(n)?yn(a(n))?.manifest.label??a(n):null),i=F(()=>a(r)?yn(a(r))?.manifest.label??a(r):null),o=F(()=>a(n)?"app":a(r)?"breadcrumb":"brand");function l(){a(r)&&$n(a(r))}var c=QS(),u=p(c);{var d=m=>{var x=XS();I(m,x)},f=m=>{var x=JS(),g=p(x,!0);v(x),z(()=>L(g,a(s))),I(m,x)},h=m=>{var x=ZS(),g=E(fe(x),4),_=p(g,!0);v(g),z(()=>L(_,a(i))),U("click",g,l),I(m,x)};$(u,m=>{a(o)==="brand"?m(d):a(o)==="app"?m(f,1):m(h,-1)})}v(c),I(e,c),re()}ue(["click"]);const tx=Object.freeze([{id:"file",label:"File"},{id:"edit",label:"Edit"},{id:"view",label:"View"},{id:"window",label:"Window"},{id:"help",label:"Help"}]);function $s(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function nx(e,t){if(e==null)return[];if(t==null)return tx.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 rx(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)||!br(i.action.scope,t,i.ownerShardId)||(s.add(i.action.id),r.push({id:i.action.id,label:i.action.label,shortcut:ns(i.action,t.bindings,t.platform),group:i.action.group??"",icon:i.action.icon,checked:$s(i.action.checked),disabled:$s(i.action.disabled),submenu:i.action.submenu===!0}));return r}function sx(e,t,n){const r=[],s=new Set;for(const i of e)i.action.submenuOf!==n||s.has(i.action.id)||!br(i.action.scope,t,i.ownerShardId)||(s.add(i.action.id),r.push({id:i.action.id,label:i.action.label,shortcut:ns(i.action,t.bindings,t.platform),group:i.action.group??"",icon:i.action.icon,checked:$s(i.action.checked),disabled:$s(i.action.disabled),submenu:i.action.submenu===!0}));return r}var ix=A('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),ox=A('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),ax=A('<button type="button" class="sh3-menubar-button svelte-bke3dt"><!> <span class="sh3-menubar-label"> </span> <!></button>');function lx(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=ft().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=sx(ft(),_,g),w=Oe(zs,{target:b,props:{sections:r(C),onInvoke:O=>s(O,_,S),onDismiss:()=>{Fe(w),b.remove()}}})}function o(){if(!a(n))return;const g=Jt(),_=ao.show(zs,{anchor:a(n),placement:"bottom-start"},{sections:r(t.items),onInvoke:S=>{const y=ft().find(b=>b.action.id===S);if(y){if(y.action.submenu===!0){i(S,g,_);return}s(S,g,_)}},onDismiss:()=>ao.close()})}const l=F(()=>t.container.iconPosition??"before");var c=ax(),u=p(c);{var d=g=>{var _=ix();z(()=>be(_,"data-icon",t.container.icon)),I(g,_)};$(u,g=>{t.container.icon&&a(l)==="before"&&g(d)})}var f=E(u,2),h=p(f,!0);v(f);var m=E(f,2);{var x=g=>{var _=ox();z(()=>be(_,"data-icon",t.container.icon)),I(g,_)};$(m,g=>{t.container.icon&&a(l)==="after"&&g(x)})}v(c),et(c,g=>k(n,g),()=>a(n)),z(()=>L(h,t.container.label)),U("click",c,o),I(e,c),re()}ue(["click"]);var cx=A('<div class="sh3-menubar svelte-7gc0wa" role="menubar"></div>');function ux(e,t){ne(t,!0);const n=F(Jt),r=F(()=>a(n).activeAppId),s=F(()=>{if(a(r))return yn(a(r))?.manifest.menus}),i=F(()=>nx(a(r),a(s))),o=F(()=>{const c=[],u=ft();for(const d of a(i)){const f=rx(u,a(n),d.id);f.length>0&&c.push({container:d,items:f})}return c});var l=cx();ce(l,21,()=>a(o),({container:c,items:u})=>c.id,(c,u)=>{let d=()=>a(u).container,f=()=>a(u).items;lx(c,{get container(){return d()},get items(){return f()}})}),v(l),I(e,l),re()}var dx=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>'),fx=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>'),vx=A('<div class="shell-overlay-root svelte-187fra4"><!></div>'),hx=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 px(e,t){ne(t,!0);const n=F(mo),r=F(mi),s=F(dn),i=F(()=>nd()==="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&&fg(C,w)}return()=>{for(const{name:C}of o)vg(C)}}),Ie(()=>{const C=Zt.tree;return Lg(C.floats,()=>({w:window.innerWidth,h:window.innerHeight})),()=>Ng()}),Ie(()=>{Zt.tree,Ey()}),Ie(()=>mo()?R_():void 0);var c=hx(),u=p(c),d=p(u),f=p(d),h=p(f);v(f),v(d);var m=E(d,2);ex(m,{});var x=E(m,2);ux(x,{});var g=E(x,2);{var _=C=>{var w=fx(),O=p(w),R=p(O,!0);v(O);var P=E(O,2),D=p(P,!0);v(P);var N=E(P,2);{var V=B=>{var Y=dx(),G=p(Y),Z=p(G);v(G),v(Y),z(()=>be(Z,"href",`${_o}#log-out`)),U("click",Y,()=>p_()),I(B,Y)},j=F(()=>!g_());$(N,B=>{a(j)&&B(V)})}v(w),z(()=>{L(R,a(r).displayName),L(D,a(s)?"admin":"user")}),I(C,w)};$(g,C=>{a(n)&&a(r)&&C(_)})}v(u);var S=E(u,2);US(S,{});var y=E(S,2),b=p(y);Ca(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=vx(),D=p(P);{var N=j=>{qS(j,{})},V=j=>{RS(j,{})};$(D,j=>{R()==="floating"?j(N):R()==="drag-preview"&&j(V,1)})}v(P),et(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);GS(M,{}),v(c),z(()=>{d.disabled=a(i),be(h,"href",`${_o}#house`)}),U("click",d,()=>Pd()),I(e,c),re()}ue(["click"]);async function mx(){try{const{TauriStoreBackend:e}=await Md(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:Kl}}}var gx=A('<button type="button" class="signin-link svelte-lh4k15">Create an account</button>'),bx=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),yx=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),_x=A('<div class="signin-error svelte-lh4k15"> </div>'),wx=A('<div class="signin-wall svelte-lh4k15"><div class="signin-card svelte-lh4k15"><h1 class="signin-brand svelte-lh4k15">SH3</h1> <!> <!></div></div>');function kx(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 md(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 h_(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=wx(),h=p(f),m=E(p(h),2);{var x=y=>{var b=bx(),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=gx();U("click",N,()=>d("register")),I(D,N)};$(R,D=>{t.selfRegistration&&D(P)})}z(D=>{M.disabled=a(l),C.disabled=a(l),w.disabled=D,L(O,a(l)?"Signing in...":"Sign in")},[()=>a(l)||!a(r).trim()||!a(s).trim()]),Qe("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=yx(),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()]),Qe("submit",T,D=>{D.preventDefault(),u()}),Me(M,()=>a(r),D=>k(r,D)),Me(C,()=>a(i),D=>k(i,D)),Me(w,()=>a(s),D=>k(s,D)),U("click",P,()=>d("login")),I(y,b)};$(m,y=>{a(n)==="login"?y(x):y(g,-1)})}var _=E(m,2);{var S=y=>{var b=_x(),T=p(b,!0);v(b),z(()=>L(T,a(o))),I(y,b)};$(_,y=>{a(o)&&y(S)})}v(h),v(f),I(e,f),re()}ue(["click"]);async function Sx(e){const t=e?.serverUrl??"",n=await mx();n.backends&&(al("workspace",n.backends.workspace),al("user",n.backends.user)),n.localOwner&&m_(),bd(t),X_();const r=typeof e?.target=="string"?document.querySelector(e.target):e?.target??document.getElementById("app");if(!r)throw new Error("SH3: mount target not found");let s=null;if(!n.localOwner)try{const o=await fetch(`${t}/api/boot`,{credentials:"include"});o.ok&&(s=await o.json())}catch{}if(n.localOwner)Bi("local");else if(s){El(t,s),Bi(s.tenantId);const{auth:o,session:l}=s;if(!l&&o.required&&!o.guestAllowed){await xx(r,s);const c=await fetch(`${t}/api/boot`,{credentials:"include"});c.ok&&(s=await c.json(),El(t,s),Bi(s.tenantId))}}if(e?.discoveredPackages?.length)for(const o of e.discoveredPackages)try{const l=await fetch(o.bundleUrl);if(!l.ok){console.warn(`[sh3] Failed to fetch discovered package "${o.id}": HTTP ${l.status}`);continue}const c=await l.arrayBuffer(),u=await is(c);xa(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)H0(o);if(e?.apps)for(const o of e.apps)ca(o);const i={};e?.excludeShards&&(i.excludeShards=e.excludeShards),await W0(i),vd(),Oe(px,{target:r})}function xx(e,t){return new Promise(n=>{const r=Oe(kx,{target:e,props:{selfRegistration:t.auth.selfRegistration,onSuccess:()=>{Fe(r),n()}}})})}const Ta=window.location.origin;bd(Ta);d_(new i_(Ta));let uf=[];try{const e=await fetch("/api/packages");e.ok&&(uf=await e.json())}catch{}await Sx({discoveredPackages:uf,serverUrl:Ta});
|
|
18
|
+
//# sourceMappingURL=index-D9SiE54u.js.map
|