sh3-server 0.13.1 → 0.13.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/assets/index-B1K1agdD.css +1 -0
- package/app/assets/index-eXElR_9t.js +21 -0
- package/app/assets/index-eXElR_9t.js.map +1 -0
- package/app/assets/workspace-rekey-DRgvbNY-.js +2 -0
- package/app/assets/workspace-rekey-DRgvbNY-.js.map +1 -0
- package/app/index.html +2 -2
- package/dist/caller.d.ts +9 -2
- package/dist/caller.js +16 -6
- package/dist/doc-store/index.d.ts +11 -2
- package/dist/doc-store/index.js +4 -2
- package/dist/index.js +20 -11
- package/dist/keys.d.ts +14 -8
- package/dist/keys.js +66 -40
- package/dist/middleware/project-allowlist.d.ts +30 -0
- package/dist/middleware/project-allowlist.js +49 -0
- package/dist/packages.d.ts +13 -0
- package/dist/packages.js +28 -0
- package/dist/projects.d.ts +39 -0
- package/dist/projects.js +128 -0
- package/dist/routes/admin.js +1 -1
- package/dist/routes/docs.d.ts +23 -9
- package/dist/routes/docs.js +57 -48
- package/dist/routes/keys.d.ts +4 -4
- package/dist/routes/keys.js +12 -12
- package/dist/routes/projects.d.ts +13 -0
- package/dist/routes/projects.js +101 -0
- package/dist/scope.d.ts +9 -4
- package/dist/scope.js +17 -15
- package/dist/shard-router.js +2 -2
- package/package.json +1 -1
- package/app/assets/index-AzWjqwzj.css +0 -1
- package/app/assets/index-DgeU5PrI.js +0 -19
- package/app/assets/index-DgeU5PrI.js.map +0 -1
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/tauri-backend-BNhKUiUG.js","assets/index-56jHh6nx.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();const Xf=1,Jf=2,rc=4,Zf=8,Qf=16,$f=1,sc=4,ev=8,tv=16,nv=1,rv=2,sv=4,Da=1,ic=2,iv=4,av=8,ei="[",ti="[!",Go="[?",ni="]",Nn={},Re=Symbol(),_t=Symbol("filename"),Xn=Symbol("hmr"),ac="http://www.w3.org/1999/xhtml",es="http://www.w3.org/2000/svg",Pa="http://www.w3.org/1998/Math/MathML",oc="@attach",lc=!1;var br=Array.isArray,ov=Array.prototype.indexOf,ur=Array.prototype.includes,ri=Array.from,Ls=Object.keys,jn=Object.defineProperty,Bt=Object.getOwnPropertyDescriptor,cc=Object.getOwnPropertyDescriptors,uc=Object.prototype,lv=Array.prototype,si=Object.getPrototypeOf,Xo=Object.isExtensible,cv=Object.prototype.hasOwnProperty;function Jn(e){return typeof e=="function"}const yt=()=>{};function Jo(e){return typeof e?.then=="function"}function uv(e){return e()}function $i(e){for(var t=0;t<e.length;t++)e[t]()}function dc(){var e,t,n=new Promise((r,s)=>{e=r,t=s});return{promise:n,resolve:e,reject:t}}function dv(e,t,n=!1){return e===void 0?n?t():t:e}function fc(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 fv(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 Ge=2,zn=4,ts=8,Ma=1<<24,Ft=16,Kt=32,ln=64,ea=128,Pt=512,Be=1024,Ye=2048,Wt=4096,at=8192,ht=16384,dn=32768,ta=1<<25,Yt=65536,Vr=1<<17,vc=1<<18,En=1<<19,hc=1<<20,Zt=1<<25,qn=65536,na=1<<21,dr=1<<22,bn=1<<23,$e=Symbol("$state"),ii=Symbol("legacy props"),vv=Symbol(""),hv=Symbol("proxy path"),pv=Symbol("hmr anchor"),Xt=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},Kn=!!globalThis.document?.contentType&&globalThis.document.contentType.includes("xml"),pc=1,ns=3,fn=8,mc=11;function gc(e){throw new Error("https://svelte.dev/e/experimental_async_required")}function mv(){throw new Error("https://svelte.dev/e/invalid_default_snippet")}function Zo(){throw new Error("https://svelte.dev/e/invalid_snippet_arguments")}function _r(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function gv(){throw new Error("https://svelte.dev/e/missing_context")}function bv(){throw new Error("https://svelte.dev/e/snippet_without_render_tag")}function _v(e){throw new Error("https://svelte.dev/e/store_invalid_shape")}function yv(){throw new Error("https://svelte.dev/e/svelte_element_invalid_this_value")}function wv(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function kv(e,t){throw new Error("https://svelte.dev/e/component_api_changed")}function xv(e,t){throw new Error("https://svelte.dev/e/component_api_invalid_new")}function Sv(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Ev(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Av(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Iv(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Cv(){throw new Error("https://svelte.dev/e/effect_pending_outside_reaction")}function Tv(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Rv(){throw new Error("https://svelte.dev/e/fork_discarded")}function Dv(){throw new Error("https://svelte.dev/e/fork_timing")}function Pv(){throw new Error("https://svelte.dev/e/get_abort_signal_outside_reaction")}function Mv(){throw new Error("https://svelte.dev/e/hydration_failed")}function bc(e){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}function Ov(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Lv(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Nv(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function jv(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function zv(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}function qv(e,t){console.warn("https://svelte.dev/e/assignment_value_stale")}function Vv(e,t){console.warn("https://svelte.dev/e/binding_property_non_reactive")}function Bv(e){console.warn("https://svelte.dev/e/console_log_state")}function Fv(){console.warn("https://svelte.dev/e/derived_inert")}function Uv(e,t){console.warn("https://svelte.dev/e/event_handler_invalid")}function Hv(e){console.warn("https://svelte.dev/e/hydratable_missing_but_expected")}function rs(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function Kv(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_binding")}function Wv(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_mutation")}function Yv(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function _c(e){console.warn("https://svelte.dev/e/state_proxy_equality_mismatch")}function Gv(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let J=!1;function Ee(e){J=e}let ae;function xe(e){if(e===null)throw rs(),Nn;return ae=e}function lt(){return xe(xt(ae))}function v(e){if(J){if(xt(ae)!==null)throw rs(),Nn;ae=e}}function Xv(e){J&&(ae=e.content)}function $t(e=1){if(J){for(var t=e,n=ae;t--;)n=xt(n);ae=n}}function Vn(e=!0){for(var t=0,n=ae;;){if(n.nodeType===fn){var r=n.data;if(r===ni){if(t===0)return n;t-=1}else(r===ei||r===ti||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var s=xt(n);e&&n.remove(),n=s}}function Oa(e){if(!e||e.nodeType!==fn)throw rs(),Nn;return e.data}function yc(e){return e===this.v}function wc(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function kc(e){return!wc(e,this.v)}let Jv=!1;function Zv(e){console.warn("https://svelte.dev/e/dynamic_void_element_content")}const Qv=[];function Bn(e,t=!1,n=!1){return ks(e,new Map,"",Qv,null,n)}function ks(e,t,n,r,s=null,i=!1){if(typeof e=="object"&&e!==null){var a=t.get(e);if(a!==void 0)return a;if(e instanceof Map)return new Map(e);if(e instanceof Set)return new Set(e);if(br(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]=ks(u,t,n,r,null,i))}return l}if(si(e)===uc){l={},t.set(e,l),s!==null&&t.set(s,l);for(var d of Object.keys(e))l[d]=ks(e[d],t,n,r,null,i);return l}if(e instanceof Date)return structuredClone(e);if(typeof e.toJSON=="function"&&!i)return ks(e.toJSON(),t,n,r,e)}if(e instanceof EventTarget)return e;try{return structuredClone(e)}catch{return e}}let Yn=null;function xc(e,t){const n=e.v;if(n===Re)return;const r=$v(e),s=pe,i=e.wv>s.wv||s.wv===0,a=i?"color: CornflowerBlue; font-weight: bold":"color: grey; font-weight: normal";if(console.groupCollapsed(e.label?`%c${r}%c ${e.label}`:`%c${r}%c`,a,i?"font-weight: normal":a,typeof n=="object"&&n!==null&&$e in n?Bn(n,!0):n),r==="$derived"){const c=new Set(e.deps);for(const u of c)xc(u)}if(e.created&&console.log(e.created),i&&e.updated)for(const c of e.updated.values())c.error&&console.log(c.error);if(t)for(var l of t.traces)console.log(l);console.groupEnd()}function $v(e){return e.f&(Ge|dr)?"$derived":e.label?.startsWith("$")?"store":"$state"}function eh(e,t){var n=Yn;try{Yn={entries:new Map,reaction:pe};var r=performance.now(),s=t(),i=(performance.now()-r).toFixed(2),a=Ie(e);if(!ls())console.log(`${a} %cran outside of an effect (${i}ms)`,"color: grey");else if(Yn.entries.size===0)console.log(`${a} %cno reactive dependencies (${i}ms)`,"color: grey");else{console.group(`${a} %c(${i}ms)`,"color: grey");var l=Yn.entries;Ie(()=>{for(const[c,u]of l)xc(c,u)}),Yn=null,console.groupEnd()}return s}finally{Yn=n}}function th(e,t){return e.label=t,Sc(e.v,t),e}function Sc(e,t){return e?.[hv]?.(t),e}function nh(e){const t=new Error,n=rh();return n.length===0?null:(n.unshift(`
|
|
3
|
-
`),jn(t,"stack",{value:n.join(`
|
|
4
|
-
`)}),jn(t,"name",{value:e}),t)}function rh(){const e=Error.stackTraceLimit;Error.stackTraceLimit=1/0;const t=new Error().stack;if(Error.stackTraceLimit=e,!t)return[];const n=t.split(`
|
|
5
|
-
`),r=[];for(let s=0;s<n.length;s++){const i=n[s],a=i.replaceAll("\\","/");if(i.trim()!=="Error"){if(i.includes("validate_each_keys"))return[];a.includes("svelte/src/internal")||a.includes("node_modules/.vite")||r.push(i)}}return r}let ke=null;function fr(e){ke=e}let xs=null;function sh(e,t,n,r,s,i){const a=xs;xs={type:t,file:n[_t],line:r,column:s,parent:a,...i};try{return e()}finally{xs=a}}let La=null;function Qo(e){La=e}function ih(){const e={};return[()=>(Ec(e)||gv(),Na(e)),t=>ja(e,t)]}function Na(e){return ai().get(e)}function ja(e,t){return ai().set(e,t),t}function Ec(e){return ai().has(e)}function ah(){return ai()}function te(e,t=!1,n){ke={p:ke,i:!1,c:null,e:null,s:e,x:null,r:oe,l:null}}function ne(e){var t=ke,n=t.e;if(n!==null){t.e=null;for(var r of n)eu(r)}return e!==void 0&&(t.x=e),t.i=!0,ke=t.p,e??{}}function Ac(){return!0}function ai(e){return ke===null&&_r(),ke.c??=new Map(oh(ke)||void 0)}function oh(e){let t=e.p;for(;t!==null;){const n=t.c;if(n!==null)return n;t=t.p}return null}let Rn=[];function Ic(){var e=Rn;Rn=[],$i(e)}function ot(e){if(Rn.length===0&&!sr){var t=Rn;queueMicrotask(()=>{t===Rn&&Ic()})}Rn.push(e)}function lh(){for(;Rn.length>0;)Ic()}function Cc(e){var t=oe;if(t===null)return pe.f|=bn,e;if(!(t.f&dn)&&!(t.f&zn))throw e;Qt(e,t)}function Qt(e,t){for(;t!==null;){if(t.f&ea){if(!(t.f&dn))throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const ch=-7169;function Pe(e,t){e.f=e.f&ch|t}function za(e){e.f&Pt||e.deps===null?Pe(e,Be):Pe(e,Wt)}function Tc(e){if(e!==null)for(const t of e)!(t.f&Ge)||!(t.f&qn)||(t.f^=qn,Tc(t.deps))}function Rc(e,t,n){e.f&Ye?t.add(e):e.f&Wt&&n.add(e),Tc(e.deps),Pe(e,Be)}function Dc(e,t,n){if(e==null)return t(void 0),yt;const r=Ie(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}function uh(e){let t;return Dc(e,n=>t=n)(),t}let ra=!1,Pr=!1,sa=Symbol();function dh(e,t,n){const r=n[t]??={store:null,source:ci(void 0),unsubscribe:yt};if(r.store!==e&&!(sa in n))if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=yt;else{var s=!0;r.unsubscribe=Dc(e,i=>{s?r.source.v=i:x(r.source,i)}),s=!1}return e&&sa in n?uh(e):o(r.source)}function fh(e,t,n){let r=n[t];return r&&r.store!==e&&(r.unsubscribe(),r.unsubscribe=yt),e}function Pc(e,t){return oi(e,t),t}function vh(e,t){var n=e[t];n.store!==null&&Pc(n.store,n.source.v)}function hh(){const e={};function t(){Et(()=>{for(var n in e)e[n].unsubscribe();jn(e,sa,{enumerable:!1,value:!0})})}return[e,t]}function oi(e,t){ra=!0;try{e.set(t)}finally{ra=!1}}function ph(e,t,n){return oi(e,n),t}function mh(e,t,n=1){return oi(e,t+n),t}function gh(e,t,n=1){const r=t+n;return oi(e,r),r}function bh(){Pr=!0}function Mc(e){var t=Pr;try{return Pr=!1,[e(),Pr]}finally{Pr=t}}const an=new Set;let de=null,st=null,ia=null,sr=!1,qi=!1,er=null,Ss=null;var $o=0;let _h=1;class Nt{id=_h++;current=new Map;previous=new Map;#e=new Set;#t=new Set;#n=new Set;#i=new Map;#s=new Map;#a=null;#r=[];#o=[];#l=new Set;#u=new Set;#c=new Map;#f=new Set;is_fork=!1;#h=!1;#v=new Set;#d(){return this.is_fork||this.#s.size>0}#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)Pe(s,Ye),n(s);for(s of r.m)Pe(s,Wt),n(s)}this.#f.add(t)}#p(){if($o++>1e3&&(an.delete(this),yh()),!this.#d()){for(const l of this.#l)this.#u.delete(l),Pe(l,Ye),this.schedule(l);for(const l of this.#u)Pe(l,Wt),this.schedule(l)}const t=this.#r;this.#r=[],this.apply();var n=er=[],r=[],s=Ss=[];for(const l of t)try{this.#g(l,n,r)}catch(c){throw jc(l),c}if(de=null,s.length>0){var i=Nt.ensure();for(const l of s)i.schedule(l)}if(er=null,Ss=null,this.#d()||this.#b()){this.#m(r),this.#m(n);for(const[l,c]of this.#c)Nc(l,c)}else{this.#i.size===0&&an.delete(this),this.#l.clear(),this.#u.clear();for(const l of this.#e)l(this);this.#e.clear(),el(r),el(n),this.#a?.resolve()}var a=de;if(this.#r.length>0){const l=a??=this;l.#r.push(...this.#r.filter(c=>!l.#r.includes(c)))}a!==null&&(an.add(a),a.#p())}#g(t,n,r){t.f^=Be;for(var s=t.first;s!==null;){var i=s.f,a=(i&(Kt|ln))!==0,l=a&&(i&Be)!==0,c=l||(i&at)!==0||this.#c.has(s);if(!c&&s.fn!==null){a?s.f^=Be:i&zn?n.push(s):wr(s)&&(i&Ft&&this.#u.add(s),Un(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)Rc(t[n],this.#l,this.#u)}capture(t,n,r=!1){t.v!==Re&&!this.previous.has(t)&&this.previous.set(t,t.v),t.f&bn||(this.current.set(t,[n,r]),st?.set(t,n)),this.is_fork||(t.v=n)}activate(){de=this}deactivate(){de=null,st=null}flush(){try{qi=!0,de=this,this.#p()}finally{$o=0,ia=null,er=null,Ss=null,qi=!1,de=null,st=null,Mn.clear()}}discard(){for(const t of this.#t)t(this);this.#t.clear(),this.#n.clear(),an.delete(this)}register_created_effect(t){this.#o.push(t)}#_(){for(const d of an){var t=d.id<this.id,n=[];for(const[f,[h,g]]of this.current){if(d.current.has(f)){var r=d.current.get(f)[0];if(t&&h!==r)d.current.set(f,[h,g]);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&(Ft|dr)?d.schedule(h):d.#m([h])});d.activate();var i=new Set,a=new Map;for(var l of n)Oc(l,s,i,a);a=new Map;var c=[...d.current.keys()].filter(f=>this.current.has(f)?this.current.get(f)[0]!==f:!0);for(const f of this.#o)!(f.f&(ht|at|Vr))&&qa(f,c,a)&&(f.f&(dr|Ft)?(Pe(f,Ye),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 an)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,ot(()=>{this.#h=!1,this.flush()}))}transfer_effects(t,n){for(const r of t)this.#l.add(r);for(const r of n)this.#u.add(r);t.clear(),n.clear()}oncommit(t){this.#e.add(t)}ondiscard(t){this.#t.add(t)}on_fork_commit(t){this.#n.add(t)}run_fork_commit_callbacks(){for(const t of this.#n)t(this);this.#n.clear()}settled(){return(this.#a??=dc()).promise}static ensure(){if(de===null){const t=de=new Nt;qi||(an.add(de),sr||ot(()=>{de===t&&t.flush()}))}return de}apply(){{st=null;return}}schedule(t){if(ia=t,t.b?.is_pending&&t.f&(zn|ts|Ma)&&!(t.f&dn)){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var r=n.f;if(er!==null&&n===oe&&(pe===null||!(pe.f&Ge))&&!ra)return;if(r&(ln|Kt)){if(!(r&Be))return;n.f^=Be}}this.#r.push(n)}}function yn(e){var t=sr;sr=!0;try{var n;for(e&&(de!==null&&!de.is_fork&&de.flush(),n=e());;){if(lh(),de===null)return n;de.flush()}}finally{sr=t}}function yh(){try{Tv()}catch(e){Qt(e,ia)}}let on=null;function el(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&(ht|at))&&wr(r)&&(on=new Set,Un(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&au(r),on?.size>0)){Mn.clear();for(const s of on){if(s.f&(ht|at))continue;const i=[s];let a=s.parent;for(;a!==null;)on.has(a)&&(on.delete(a),i.push(a)),a=a.parent;for(let l=i.length-1;l>=0;l--){const c=i[l];c.f&(ht|at)||Un(c)}}on.clear()}}on=null}}function Oc(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&Ge?Oc(s,t,n,r):i&(dr|Ft)&&!(i&Ye)&&qa(s,t,r)&&(Pe(s,Ye),Va(s))}}function Lc(e,t){if(e.reactions!==null)for(const n of e.reactions){const r=n.f;r&Ge?Lc(n,t):r&Vr&&(Pe(n,Ye),t.add(n))}}function qa(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(ur.call(t,s))return!0;if(s.f&Ge&&qa(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function Va(e){de.schedule(e)}let Ns=[];function wh(){yn(()=>{const e=Ns;Ns=[];for(const t of e)vr(t)})}function kh(e){var t=kt(0),n=!0,r=void 0;return o(t),nu(()=>{if(n){var s=st;try{st=null,r=e()}finally{st=s}return}Ns.length===0&&ot(wh),Ns.push(t)}),n=!1,r}function Nc(e,t){if(!(e.f&Kt&&e.f&Be)){e.f&Ye?t.d.push(e):e.f&Wt&&t.m.push(e),Pe(e,Be);for(var n=e.first;n!==null;)Nc(n,t),n=n.next}}function jc(e){Pe(e,Be);for(var t=e.first;t!==null;)jc(t),t=t.next}function xh(e){gc(),de!==null&&Dv();var t=Nt.ensure();t.is_fork=!0,st=new Map;var n=!1,r=t.settled();return yn(e),{commit:async()=>{if(n){await r;return}an.has(t)||Rv(),n=!0,t.is_fork=!1;for(var[s,[i]]of t.current)s.v=i,s.wv=zs();t.activate(),t.run_fork_commit_callbacks(),t.deactivate(),yn(()=>{var a=new Set;for(var l of t.current.keys())Lc(l,a);Oh(a),Hc()}),t.flush(),await r},discard:()=>{for(var s of t.current.keys())s.wv=zs();!n&&an.has(t)&&t.discard()}}}function Sh(e){let t=0,n=kt(0),r;return()=>{ls()&&(o(n),je(()=>(t===0&&(r=Ie(()=>e(()=>Nr(n)))),t+=1,()=>{ot(()=>{t-=1,t===0&&(r?.(),r=void 0,Nr(n))})})))}}var Eh=Yt|En;function zc(e,t,n,r){new Ah(e,t,n,r)}class Ah{parent;is_pending=!1;transform_error;#e;#t=J?ae:null;#n;#i;#s;#a=null;#r=null;#o=null;#l=null;#u=0;#c=0;#f=!1;#h=new Set;#v=new Set;#d=null;#b=Sh(()=>(this.#d=kt(this.#u),()=>{this.#d=null}));constructor(t,n,r,s){this.#e=t,this.#n=n,this.#i=i=>{var a=oe;a.b=this,a.f|=ea,r(i)},this.parent=oe.b,this.transform_error=s??this.parent?.transform_error??(i=>i),this.#s=sn(()=>{if(J){const i=this.#t;lt();const a=i.data===ti;if(i.data.startsWith(Go)){const c=JSON.parse(i.data.slice(Go.length));this.#g(c)}else a?this.#m():this.#p()}else this.#_()},Eh),J&&(this.#e=ae)}#p(){try{this.#a=rt(()=>this.#i(this.#e))}catch(t){this.error(t)}}#g(t){const n=this.#n.failed;n&&(this.#o=rt(()=>{n(this.#e,()=>t,()=>()=>{})}))}#m(){const t=this.#n.pending;t&&(this.is_pending=!0,this.#r=rt(()=>t(this.#e)),ot(()=>{var n=this.#l=document.createDocumentFragment(),r=Xe();n.append(r),this.#a=this.#w(()=>rt(()=>this.#i(r))),this.#c===0&&(this.#e.before(n),this.#l=null,On(this.#r,()=>{this.#r=null}),this.#y(de))}))}#_(){try{if(this.is_pending=this.has_pending_snippet(),this.#c=0,this.#u=0,this.#a=rt(()=>{this.#i(this.#e)}),this.#c>0){var t=this.#l=document.createDocumentFragment();Ga(this.#a,t);const n=this.#n.pending;this.#r=rt(()=>n(this.#e))}else this.#y(de)}catch(n){this.error(n)}}#y(t){this.is_pending=!1,t.transfer_effects(this.#h,this.#v)}defer_effect(t){Rc(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=oe,r=pe,s=ke;nt(this.#s),pt(this.#s),fr(this.#s.ctx);try{return Nt.ensure(),t()}catch(i){return Cc(i),null}finally{nt(n),pt(r),fr(s)}}#k(t,n){if(!this.has_pending_snippet()){this.parent&&this.parent.#k(t,n);return}this.#c+=t,this.#c===0&&(this.#y(n),this.#r&&On(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,ot(()=>{this.#f=!1,this.#d&&en(this.#d,this.#u)}))}get_effect_pending(){return this.#b(),o(this.#d)}error(t){if(!this.#n.onerror&&!this.#n.failed)throw t;de?.is_fork?(this.#a&&de.skip_effect(this.#a),this.#r&&de.skip_effect(this.#r),this.#o&&de.skip_effect(this.#o),de.on_fork_commit(()=>{this.#x(t)})):this.#x(t)}#x(t){this.#a&&(Ue(this.#a),this.#a=null),this.#r&&(Ue(this.#r),this.#r=null),this.#o&&(Ue(this.#o),this.#o=null),J&&(xe(this.#t),$t(),xe(Vn()));var n=this.#n.onerror;let r=this.#n.failed;var s=!1,i=!1;const a=()=>{if(s){Gv();return}s=!0,i&&zv(),this.#o!==null&&On(this.#o,()=>{this.#o=null}),this.#w(()=>{this.#_()})},l=c=>{try{i=!0,n?.(c,a),i=!1}catch(u){Qt(u,this.#s&&this.#s.parent)}r&&(this.#o=this.#w(()=>{try{return rt(()=>{var u=oe;u.b=this,u.f|=ea,r(this.#e,()=>c,()=>a)})}catch(u){return Qt(u,this.#s.parent),null}}))};ot(()=>{var c;try{c=this.transform_error(t)}catch(u){Qt(u,this.#s&&this.#s.parent);return}c!==null&&typeof c=="object"&&typeof c.then=="function"?c.then(l,u=>Qt(u,this.#s&&this.#s.parent)):l(c)})}}function Ih(){oe===null&&Cv();var e=oe.b;return e===null?0:e.get_effect_pending()}function ss(e,t,n,r){const s=as;var i=e.filter(h=>!h.settled);if(n.length===0&&i.length===0){r(t.map(s));return}var a=oe,l=li(),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(g){a.f&ht||Qt(g,a)}Fn()}if(n.length===0){c.then(()=>u(t.map(s)));return}var d=is();function f(){Promise.all(n.map(h=>Vc(h))).then(h=>u([...t.map(s),...h])).catch(h=>Qt(h,a)).finally(()=>d())}c?c.then(()=>{l(),f(),Fn()}):f()}function qc(e,t){ss(e,[],[],t)}function li(){var e=oe,t=pe,n=ke,r=de;return function(i=!0){nt(e),pt(t),fr(n),i&&!(e.f&ht)&&(r?.activate(),r?.apply())}}async function Ch(e){var t=li(),n=await e;return()=>(t(),n)}async function aa(e){var t=Lr;queueMicrotask(()=>{Lr===t&&Es(null)});var n=await e;return()=>(Es(t),queueMicrotask(()=>{Lr===t&&Es(null)}),n)}async function*Th(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 aa(t.next()))();if(s){n=!0;break}var r=Lr;yield i,Es(r)}}finally{if(!n&&t.return!==void 0)return(await aa(t.return()))().value}}function Fn(e=!0){nt(null),pt(null),fr(null),e&&de?.deactivate()}function Rh(e){const t=li(),n=is();var r=oe,s=null;const i=u=>{s={error:u},ca(r)||Qt(u,r)};var a=Promise.resolve(e[0]()).catch(i),l={promise:a,settled:!1},c=[l];a.finally(()=>{l.settled=!0,Fn()});for(const u of e.slice(1)){a=a.then(()=>{if(t(),s)throw s.error;if(ca(r))throw Xt;return u()}).catch(i);const d={promise:a,settled:!1};c.push(d),a.finally(()=>{d.settled=!0,Fn()})}return a.then(()=>Promise.resolve()).finally(()=>n()),c}function Dh(e){return Promise.all(e.map(t=>t.promise))}function is(){var e=oe,t=e.b,n=de,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 Lr=null;function Es(e){Lr=e}function as(e){var t=Ge|Ye;return oe!==null&&(oe.f|=En),{ctx:ke,deps:null,effects:null,equals:yc,f:t,fn:e,reactions:null,rv:0,v:Re,wv:0,parent:oe,ac:null}}function Vc(e,t,n){let r=oe;r===null&&wv();var s=void 0,i=kt(Re),a=!pe,l=new Map;return Kh(()=>{var c=oe,u=dc();s=u.promise;try{Promise.resolve(e()).then(u.resolve,u.reject).finally(Fn)}catch(g){u.reject(g),Fn()}var d=de;if(a){if(c.f&dn)var f=is();if(r.b.is_rendered())l.get(d)?.reject(Xt),l.delete(d);else{for(const g of l.values())g.reject(Xt);l.clear()}l.set(d,u)}const h=(g,S=void 0)=>{if(f){var m=S===Xt;f(m)}if(!(S===Xt||c.f&ht)){if(d.activate(),S)i.f|=bn,en(i,S);else{i.f&bn&&(i.f^=bn),en(i,g);for(const[_,k]of l){if(l.delete(_),_===d)break;k.reject(Xt)}}d.deactivate()}};u.promise.then(h,g=>h(null,g||"unknown"))}),Et(()=>{for(const c of l.values())c.reject(Xt)}),new Promise(c=>{function u(d){function f(){d===s?c(i):u(s)}d.then(f,f)}u(s)})}function H(e){const t=as(e);return cu(t),t}function Ba(e){const t=as(e);return t.equals=kc,t}function Ph(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)Ue(t[n])}}function Fa(e){var t,n=oe,r=e.parent;if(!cn&&r!==null&&r.f&(ht|at))return Fv(),e.v;nt(r);try{e.f&=~qn,Ph(e),t=fu(e)}finally{nt(n)}return t}function Bc(e){var t=Fa(e);if(!e.equals(t)&&(e.wv=zs(),(!de?.is_fork||e.deps===null)&&(de!==null?de.capture(e,t,!0):e.v=t,e.deps===null))){Pe(e,Be);return}cn||(st!==null?(ls()||de?.is_fork)&&st.set(e,t):za(e))}function Mh(e){if(e.effects!==null)for(const t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(Xt),t.teardown=yt,t.ac=null,Br(t,0),Wa(t))}function Fc(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&Un(t)}let js=new Set;const Mn=new Map;function Oh(e){js=e}let Uc=!1;function kt(e,t){var n={f:0,v:e,reactions:null,equals:yc,rv:0,wv:0};return n}function V(e,t){const n=kt(e);return cu(n),n}function ci(e,t=!1,n=!0){const r=kt(e);return t||(r.equals=kc),r}function Lh(e,t){return x(e,Ie(()=>o(e))),t}function x(e,t,n=!1){pe!==null&&(!Vt||pe.f&Vr)&&Ac()&&pe.f&(Ge|Ft|dr|Vr)&&(Mt===null||!ur.call(Mt,e))&&jv();let r=n?ve(t):t;return en(e,r,Ss)}function en(e,t,n=null){if(!e.equals(t)){Mn.set(e,cn?t:e.v);var r=Nt.ensure();if(r.capture(e,t),e.f&Ge){const s=e;e.f&Ye&&Fa(s),st===null&&za(s)}e.wv=zs(),Kc(e,Ye,n),oe!==null&&oe.f&Be&&!(oe.f&(Kt|ln))&&(Dt===null?Jh([e]):Dt.push(e)),!r.is_fork&&js.size>0&&!Uc&&Hc()}return t}function Hc(){Uc=!1;for(const e of js)e.f&Be&&Pe(e,Wt),wr(e)&&Un(e);js.clear()}function vr(e,t=1){var n=o(e),r=t===1?n++:n--;return x(e,n),r}function Nh(e,t=1){var n=o(e);return x(e,t===1?++n:--n)}function Nr(e){x(e,e.v+1)}function Kc(e,t,n){var r=e.reactions;if(r!==null)for(var s=r.length,i=0;i<s;i++){var a=r[i],l=a.f,c=(l&Ye)===0;if(c&&Pe(a,t),l&Ge){var u=a;st?.delete(u),l&qn||(l&Pt&&(a.f|=qn),Kc(u,Wt,n))}else if(c){var d=a;l&Ft&&on!==null&&on.add(d),n!==null?n.push(d):Va(d)}}}function ve(e){if(typeof e!="object"||e===null||$e in e)return e;const t=si(e);if(t!==uc&&t!==lv)return e;var n=new Map,r=br(e),s=V(0),i=Ln,a=l=>{if(Ln===i)return l();var c=pe,u=Ln;pt(null),rl(i);var d=l();return pt(c),rl(u),d};return r&&n.set("length",V(e.length)),new Proxy(e,{defineProperty(l,c,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&Lv();var d=n.get(c);return d===void 0?a(()=>{var f=V(u.value);return n.set(c,f),f}):x(d,u.value,!0),!0},deleteProperty(l,c){var u=n.get(c);if(u===void 0){if(c in l){const d=a(()=>V(Re));n.set(c,d),Nr(s)}}else x(u,Re),Nr(s);return!0},get(l,c,u){if(c===$e)return e;var d=n.get(c),f=c in l;if(d===void 0&&(!f||Bt(l,c)?.writable)&&(d=a(()=>{var g=ve(f?l[c]:Re),S=V(g);return S}),n.set(c,d)),d!==void 0){var h=o(d);return h===Re?void 0:h}return Reflect.get(l,c,u)},getOwnPropertyDescriptor(l,c){var u=Reflect.getOwnPropertyDescriptor(l,c);if(u&&"value"in u){var d=n.get(c);d&&(u.value=o(d))}else if(u===void 0){var f=n.get(c),h=f?.v;if(f!==void 0&&h!==Re)return{enumerable:!0,configurable:!0,value:h,writable:!0}}return u},has(l,c){if(c===$e)return!0;var u=n.get(c),d=u!==void 0&&u.v!==Re||Reflect.has(l,c);if(u!==void 0||oe!==null&&(!d||Bt(l,c)?.writable)){u===void 0&&(u=a(()=>{var h=d?ve(l[c]):Re,g=V(h);return g}),n.set(c,u));var f=o(u);if(f===Re)return!1}return d},set(l,c,u,d){var f=n.get(c),h=c in l;if(r&&c==="length")for(var g=u;g<f.v;g+=1){var S=n.get(g+"");S!==void 0?x(S,Re):g in l&&(S=a(()=>V(Re)),n.set(g+"",S))}if(f===void 0)(!h||Bt(l,c)?.writable)&&(f=a(()=>V(void 0)),x(f,ve(u)),n.set(c,f));else{h=f.v!==Re;var m=a(()=>ve(u));x(f,m)}var _=Reflect.getOwnPropertyDescriptor(l,c);if(_?.set&&_.set.call(d,u),!h){if(r&&typeof c=="string"){var k=n.get("length"),y=Number(c);Number.isInteger(y)&&y>=k.v&&x(k,y+1)}Nr(s)}return!0},ownKeys(l){o(s);var c=Reflect.ownKeys(l).filter(f=>{var h=n.get(f);return h===void 0||h.v!==Re});for(var[u,d]of n)d.v!==Re&&!(u in l)&&c.push(u);return c},setPrototypeOf(){Nv()}})}function hr(e){try{if(e!==null&&typeof e=="object"&&$e in e)return e[$e]}catch{}return e}function Wc(e,t){return Object.is(hr(e),hr(t))}function jh(e,t,n=!0){try{e===t!=(hr(e)===hr(t))&&_c(n?"===":"!==")}catch{}return e===t===n}function zh(e,t,n=!0){return e==t!=(hr(e)==hr(t))&&_c(),e==t===n}var oa,Yc,Ua,Gc,Xc;function la(){if(oa===void 0){oa=window,Yc=document,Ua=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Gc=Bt(t,"firstChild").get,Xc=Bt(t,"nextSibling").get,Xo(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),Xo(n)&&(n.__t=void 0)}}function Xe(e=""){return document.createTextNode(e)}function De(e){return Gc.call(e)}function xt(e){return Xc.call(e)}function p(e,t){if(!J)return De(e);var n=De(ae);if(n===null)n=ae.appendChild(Xe());else if(t&&n.nodeType!==ns){var r=Xe();return n?.before(r),xe(r),r}return t&&ui(n),xe(n),n}function he(e,t=!1){if(!J){var n=De(e);return n instanceof Comment&&n.data===""?xt(n):n}if(t){if(ae?.nodeType!==ns){var r=Xe();return ae?.before(r),xe(r),r}ui(ae)}return ae}function A(e,t=1,n=!1){let r=J?ae:e;for(var s;t--;)s=r,r=xt(r);if(!J)return r;if(n){if(r?.nodeType!==ns){var i=Xe();return r===null?s?.after(i):r.before(i),xe(i),i}ui(r)}return xe(r),r}function Ha(e){e.textContent=""}function Jc(){return!1}function An(e,t,n){let r=n?{is:n}:void 0;return document.createElementNS(t??ac,e,r)}function qh(){return document.createDocumentFragment()}function Zc(e=""){return document.createComment(e)}function Vh(e,t,n=""){if(t.startsWith("xlink:")){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n);return}return e.setAttribute(t,n)}function ui(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===ns;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function yr(e,t){if(t){const n=document.body;e.autofocus=!0,ot(()=>{document.activeElement===n&&e.focus()})}}function Qc(e){J&&De(e)!==null&&Ha(e)}let tl=!1;function $c(){tl||(tl=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function mt(e,t,n,r=!0){r&&n();for(var s of t)e.addEventListener(s,n);Et(()=>{for(var i of t)e.removeEventListener(i,n)})}function In(e){var t=pe,n=oe;pt(null),nt(null);try{return e()}finally{pt(t),nt(n)}}function os(e,t,n,r=n){e.addEventListener(t,()=>In(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),$c()}function Ka(e){oe===null&&(pe===null&&Iv(),Av()),cn&&Ev()}function Bh(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function gt(e,t){var n=oe;n!==null&&n.f&at&&(e|=at);var r={ctx:ke,deps:null,nodes:null,f:e|Ye|Pt,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};de?.register_created_effect(r);var s=r;if(e&zn)er!==null?er.push(r):Nt.ensure().schedule(r);else if(t!==null){try{Un(r)}catch(a){throw Ue(r),a}s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&!(s.f&En)&&(s=s.first,e&Ft&&e&Yt&&s!==null&&(s.f|=Yt))}if(s!==null&&(s.parent=n,n!==null&&Bh(s,n),pe!==null&&pe.f&Ge&&!(e&ln))){var i=pe;(i.effects??=[]).push(s)}return r}function ls(){return pe!==null&&!Vt}function Et(e){const t=gt(ts,null);return Pe(t,Be),t.teardown=e,t}function Ae(e){Ka();var t=oe.f,n=!pe&&(t&Kt)!==0&&(t&dn)===0;if(n){var r=ke;(r.e??=[]).push(e)}else return eu(e)}function eu(e){return gt(zn|hc,e)}function tu(e){return Ka(),gt(ts|hc,e)}function nu(e){return gt(Vr,e)}function di(e){Nt.ensure();const t=gt(ln|En,e);return()=>{Ue(t)}}function Fh(e){Nt.ensure();const t=gt(ln|En,e);return(n={})=>new Promise(r=>{n.outro?On(t,()=>{Ue(t),r(void 0)}):(Ue(t),r(void 0))})}function St(e){return gt(zn,e)}function Uh(e,t){var n=ke,r={effect:null,ran:!1,deps:e};n.l.$.push(r),r.effect=je(()=>{if(e(),!r.ran){r.ran=!0;var s=oe;try{nt(s.parent),Ie(t)}finally{nt(s)}}})}function Hh(){var e=ke;je(()=>{for(var t of e.l.$){t.deps();var n=t.effect;n.f&Be&&n.deps!==null&&Pe(n,Wt),wr(n)&&Un(n),t.ran=!1}})}function Kh(e){return gt(dr|En,e)}function je(e,t=0){return gt(ts|t,e)}function z(e,t=[],n=[],r=[]){ss(r,t,n,s=>{gt(ts,()=>e(...s.map(o)))})}function Wh(e,t=[],n=[],r=[]){if(n.length>0||r.length>0)var s=is();ss(r,t,n,i=>{gt(zn,()=>e(...i.map(o))),s&&s()})}function sn(e,t=0){var n=gt(Ft|t,e);return n}function ru(e,t=0){var n=gt(Ma|t,e);return n}function rt(e){return gt(Kt|En,e)}function su(e){var t=e.teardown;if(t!==null){const n=cn,r=pe;nl(!0),pt(null);try{t.call(null)}finally{nl(n),pt(r)}}}function Wa(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&In(()=>{s.abort(Xt)});var r=n.next;n.f&ln?n.parent=null:Ue(n,t),n=r}}function Yh(e){for(var t=e.first;t!==null;){var n=t.next;t.f&Kt||Ue(t),t=n}}function Ue(e,t=!0){var n=!1;(t||e.f&vc)&&e.nodes!==null&&e.nodes.end!==null&&(iu(e.nodes.start,e.nodes.end),n=!0),Pe(e,ta),Wa(e,t&&!n),Br(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const i of r)i.stop();su(e),e.f^=ta,e.f|=ht;var s=e.parent;s!==null&&s.first!==null&&au(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function iu(e,t){for(;e!==null;){var n=e===t?null:xt(e);e.remove(),e=n}}function au(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 On(e,t,n=!0){var r=[];ou(e,r,!0);var s=()=>{n&&Ue(e),t&&t()},i=r.length;if(i>0){var a=()=>--i||s();for(var l of r)l.out(a)}else s()}function ou(e,t,n){if(!(e.f&at)){e.f^=at;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&ln)){var a=(s.f&Yt)!==0||(s.f&Kt)!==0&&(e.f&Ft)!==0;ou(s,t,a?n:!1)}s=i}}}function Ya(e){lu(e,!0)}function lu(e,t){if(e.f&at){e.f^=at,e.f&Be||(Pe(e,Ye),Nt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&Yt)!==0||(n.f&Kt)!==0;lu(n,s?t:!1),n=r}var i=e.nodes&&e.nodes.t;if(i!==null)for(const a of i)(a.is_global||t)&&a.in()}}function ca(e=oe){return(e.f&ht)!==0}function Ga(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:xt(n);t.append(n),n=s}}let Zn=null;function Gh(e){var t=Zn;try{if(Zn=new Set,Ie(e),t!==null)for(var n of Zn)t.add(n);return Zn}finally{Zn=t}}function Xh(e){for(var t of Gh(e))en(t,t.v)}let As=!1,cn=!1;function nl(e){cn=e}let pe=null,Vt=!1;function pt(e){pe=e}let oe=null;function nt(e){oe=e}let Mt=null;function cu(e){pe!==null&&(Mt===null?Mt=[e]:Mt.push(e))}let dt=null,bt=0,Dt=null;function Jh(e){Dt=e}let uu=1,Dn=0,Ln=Dn;function rl(e){Ln=e}function zs(){return++uu}function wr(e){var t=e.f;if(t&Ye)return!0;if(t&Ge&&(e.f&=~qn),t&Wt){for(var n=e.deps,r=n.length,s=0;s<r;s++){var i=n[s];if(wr(i)&&Bc(i),i.wv>e.wv)return!0}t&Pt&&st===null&&Pe(e,Be)}return!1}function du(e,t,n=!0){var r=e.reactions;if(r!==null&&!(Mt!==null&&ur.call(Mt,e)))for(var s=0;s<r.length;s++){var i=r[s];i.f&Ge?du(i,t,!1):t===i&&(n?Pe(i,Ye):i.f&Be&&Pe(i,Wt),Va(i))}}function fu(e){var t=dt,n=bt,r=Dt,s=pe,i=Mt,a=ke,l=Vt,c=Ln,u=e.f;dt=null,bt=0,Dt=null,pe=u&(Kt|ln)?null:e,Mt=null,fr(e.ctx),Vt=!1,Ln=++Dn,e.ac!==null&&(In(()=>{e.ac.abort(Xt)}),e.ac=null);try{e.f|=na;var d=e.fn,f=d();e.f|=dn;var h=e.deps,g=de?.is_fork;if(dt!==null){var S;if(g||Br(e,bt),h!==null&&bt>0)for(h.length=bt+dt.length,S=0;S<dt.length;S++)h[bt+S]=dt[S];else e.deps=h=dt;if(ls()&&e.f&Pt)for(S=bt;S<h.length;S++)(h[S].reactions??=[]).push(e)}else!g&&h!==null&&bt<h.length&&(Br(e,bt),h.length=bt);if(Ac()&&Dt!==null&&!Vt&&h!==null&&!(e.f&(Ge|Wt|Ye)))for(S=0;S<Dt.length;S++)du(Dt[S],e);if(s!==null&&s!==e){if(Dn++,s.deps!==null)for(let m=0;m<n;m+=1)s.deps[m].rv=Dn;if(t!==null)for(const m of t)m.rv=Dn;Dt!==null&&(r===null?r=Dt:r.push(...Dt))}return e.f&bn&&(e.f^=bn),f}catch(m){return Cc(m)}finally{e.f^=na,dt=t,bt=n,Dt=r,pe=s,Mt=i,fr(a),Vt=l,Ln=c}}function Zh(e,t){let n=t.reactions;if(n!==null){var r=ov.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&Ge&&(dt===null||!ur.call(dt,t))){var i=t;i.f&Pt&&(i.f^=Pt,i.f&=~qn),i.v!==Re&&za(i),Mh(i),Br(i,0)}}function Br(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)Zh(e,n[r])}function Un(e){var t=e.f;if(!(t&ht)){Pe(e,Be);var n=oe,r=As;oe=e,As=!0;try{t&(Ft|Ma)?Yh(e):Wa(e),su(e);var s=fu(e);e.teardown=typeof s=="function"?s:null,e.wv=uu;var i;lc&&Jv&&e.f&Ye&&e.deps}finally{As=r,oe=n}}}async function cs(){await Promise.resolve(),yn()}function Qh(){return Nt.ensure().settled()}function o(e){var t=e.f,n=(t&Ge)!==0;if(Zn?.add(e),pe!==null&&!Vt){var r=oe!==null&&(oe.f&ht)!==0;if(!r&&(Mt===null||!ur.call(Mt,e))){var s=pe.deps;if(pe.f&na)e.rv<Dn&&(e.rv=Dn,dt===null&&s!==null&&s[bt]===e?bt++:dt===null?dt=[e]:dt.push(e));else{(pe.deps??=[]).push(e);var i=e.reactions;i===null?e.reactions=[pe]:ur.call(i,pe)||i.push(pe)}}}if(cn&&Mn.has(e))return Mn.get(e);if(n){var a=e;if(cn){var l=a.v;return(!(a.f&Be)&&a.reactions!==null||hu(a))&&(l=Fa(a)),Mn.set(a,l),l}var c=(a.f&Pt)===0&&!Vt&&pe!==null&&(As||(pe.f&Pt)!==0),u=(a.f&dn)===0;wr(a)&&(c&&(a.f|=Pt),Bc(a)),c&&!u&&(Fc(a),vu(a))}if(st?.has(e))return st.get(e);if(e.f&bn)throw e.v;return e.v}function vu(e){if(e.f|=Pt,e.deps!==null)for(const t of e.deps)(t.reactions??=[]).push(e),t.f&Ge&&!(t.f&Pt)&&(Fc(t),vu(t))}function hu(e){if(e.v===Re)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(Mn.has(t)||t.f&Ge&&hu(t))return!0;return!1}function $h(e){return e&&o(e)}function Ie(e){var t=Vt;try{return Vt=!0,e()}finally{Vt=t}}function Xa(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if($e in e)qs(e);else if(!Array.isArray(e))for(let t in e){const n=e[t];typeof n=="object"&&n&&$e in n&&qs(n)}}}function qs(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{qs(e[r],t)}catch{}const n=si(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){const r=cc(n);for(let s in r){const i=r[s].get;if(i)try{i.call(e)}catch{}}}}}function ep(e,t){if(gc(),J){const n=window.__svelte?.h;if(n?.has(e))return n.get(e);Hv()}return t()}const Mr=Symbol("events"),pu=new Set,ua=new Set;function tp(e){if(!J)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 mu(e,t,n,r={}){function s(i){if(r.capture||da.call(t,i),!i.cancelBubble)return In(()=>n?.call(this,i))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?ot(()=>{t.addEventListener(e,s,r)}):t.addEventListener(e,s,r),s}function Le(e,t,n,r,s){var i={capture:r,passive:s},a=mu(e,t,n,i);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&Et(()=>{t.removeEventListener(e,a,i)})}function U(e,t,n){(t[Mr]??={})[e]=n}function ce(e){for(var t=0;t<e.length;t++)pu.add(e[t]);for(var n of ua)n(e)}let sl=null;function da(e){var t=this,n=t.ownerDocument,r=e.type,s=e.composedPath?.()||[],i=s[0]||e.target;sl=e;var a=0,l=sl===e&&e[Mr];if(l){var c=s.indexOf(l);if(c!==-1&&(t===document||t===window)){e[Mr]=t;return}var u=s.indexOf(t);if(u===-1)return;c<=u&&(a=c)}if(i=s[a]||e.target,i!==t){jn(e,"currentTarget",{configurable:!0,get(){return i||n}});var d=pe,f=oe;pt(null),nt(null);try{for(var h,g=[];i!==null;){var S=i.assignedSlot||i.parentNode||i.host||null;try{var m=i[Mr]?.[r];m!=null&&(!i.disabled||e.target===i)&&m.call(i,e)}catch(_){h?g.push(_):h=_}if(e.cancelBubble||S===t||S===null)break;i=S}if(h){for(let _ of g)queueMicrotask(()=>{throw _});throw h}}finally{e[Mr]=t,delete e.currentTarget,pt(d),nt(f)}}}function np(e,t,n,r,s,i=!1,a=!1){let l,c;try{l=e()}catch(u){c=u}if(typeof l!="function"&&(i||l!=null||c)){const u=r?.[_t];s?`${u}${s[0]}${s[1]}`:`${u}`;const d=n[0]?.eventPhase<Event.BUBBLING_PHASE?"capture":"";if(n[0]?.type+d,Uv(),c)throw c}l?.apply(t,n)}const rp=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function gu(e){return rp?.createHTML(e)??e}function Ja(e){var t=An("template");return t.innerHTML=gu(e.replaceAll("<!>","<!---->")),t.content}const sp=Kn?"template":"TEMPLATE",ip=Kn?"script":"SCRIPT";function He(e,t){var n=oe;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function T(e,t){var n=(t&Da)!==0,r=(t&ic)!==0,s,i=!e.startsWith("<!>");return()=>{if(J)return He(ae,null),ae;s===void 0&&(s=Ja(i?e:"<!>"+e),n||(s=De(s)));var a=r||Ua?document.importNode(s,!0):s.cloneNode(!0);if(n){var l=De(a),c=a.lastChild;He(l,c)}else He(a,a);return a}}function bu(e,t,n="svg"){var r=!e.startsWith("<!>"),s=(t&Da)!==0,i=`<${n}>${r?e:"<!>"+e}</${n}>`,a;return()=>{if(J)return He(ae,null),ae;if(!a){var l=Ja(i),c=De(l);if(s)for(a=document.createDocumentFragment();De(c);)a.appendChild(De(c));else a=De(c)}var u=a.cloneNode(!0);if(s){var d=De(u),f=u.lastChild;He(d,f)}else He(u,u);return u}}function _u(e,t){return bu(e,t,"svg")}function ap(e,t){return bu(e,t,"math")}function yu(e,t){var n=qh();for(var r of e){if(typeof r=="string"){n.append(Xe(r));continue}if(r===void 0||r[0][0]==="/"){n.append(Zc(r?r[0].slice(3):""));continue}const[l,c,...u]=r,d=l==="svg"?es:l==="math"?Pa:t;var s=An(l,d,c?.is);for(var i in c)Vh(s,i,c[i]);if(u.length>0){var a=s.nodeName===sp?s.content:s;a.append(yu(u,s.nodeName==="foreignObject"?void 0:d))}n.append(s)}return n}function op(e,t){var n=(t&Da)!==0,r=(t&ic)!==0,s;return()=>{if(J)return He(ae,null),ae;if(s===void 0){const c=t&iv?es:t&av?Pa:void 0;s=yu(e,c),n||(s=De(s))}var i=r||Ua?document.importNode(s,!0):s.cloneNode(!0);if(n){var a=De(i),l=i.lastChild;He(a,l)}else He(i,i);return i}}function lp(e){return()=>cp(e())}function cp(e){if(J)return e;const t=e.nodeType===mc,n=e.nodeName===ip?[e]:e.querySelectorAll("script"),r=oe;for(const i of n){const a=An("script");for(var s of i.attributes)a.setAttribute(s.name,s.value);a.textContent=i.textContent,(t?e.firstChild===i:e===i)&&(r.nodes.start=a),(t?e.lastChild===i:e===i)&&(r.nodes.end=a),i.replaceWith(a)}return e}function Ut(e=""){if(!J){var t=Xe(e+"");return He(t,t),t}var n=ae;return n.nodeType!==ns?(n.before(n=Xe()),xe(n)):ui(n),He(n,n),n}function it(){if(J)return He(ae,null),ae;var e=document.createDocumentFragment(),t=document.createComment(""),n=Xe();return e.append(t,n),He(t,n),e}function E(e,t){if(J){var n=oe;(!(n.f&dn)||n.nodes.end===null)&&(n.nodes.end=ae),lt();return}e!==null&&e.before(t)}function up(){if(J&&ae&&ae.nodeType===fn&&ae.textContent?.startsWith("$")){const e=ae.textContent.substring(1);return lt(),e}return(window.__svelte??={}).uid??=1,`c${window.__svelte.uid++}`}const dp=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function fp(e){return dp.includes(e)||e.toLowerCase()==="!doctype"}function vp(e){return e.endsWith("capture")&&e!=="gotpointercapture"&&e!=="lostpointercapture"}const hp=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function pp(e){return hp.includes(e)}const mp={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 gp(e){return e=e.toLowerCase(),mp[e]??e}const bp=["touchstart","touchmove"];function _p(e){return bp.includes(e)}const yp=["textarea","script","style","title"];function wp(e){return yp.includes(e)}function wu(e){return e?.replace(/\//g,"/")}let Vs=!0;function tr(e){Vs=e}function N(e,t){var n=t==null?"":typeof t=="object"?`${t}`:t;n!==(e.__t??=e.nodeValue)&&(e.__t=n,e.nodeValue=`${n}`)}function Ne(e,t){return xu(e,t)}function ku(e,t){la(),t.intro=t.intro??!1;const n=t.target,r=J,s=ae;try{for(var i=De(n);i&&(i.nodeType!==fn||i.data!==ei);)i=xt(i);if(!i)throw Nn;Ee(!0),xe(i);const a=xu(e,{...t,anchor:i});return Ee(!1),a}catch(a){if(a instanceof Error&&a.message.split(`
|
|
6
|
-
`).some(l=>l.startsWith("https://svelte.dev/e/")))throw a;return a!==Nn&&console.warn("Failed to hydrate: ",a),t.recover===!1&&Mv(),la(),Ha(n),Ee(!1),Ne(e,t)}finally{Ee(r),xe(s)}}const ys=new Map;function xu(e,{target:t,anchor:n,props:r={},events:s,context:i,intro:a=!0,transformError:l}){la();var c=void 0,u=Fh(()=>{var d=n??t.appendChild(Xe());zc(d,{pending:()=>{}},g=>{te({});var S=ke;if(i&&(S.c=i),s&&(r.$$events=s),J&&He(g,null),Vs=a,c=e(g,r)||{},Vs=!0,J&&(oe.nodes.end=ae,ae===null||ae.nodeType!==fn||ae.data!==ni))throw rs(),Nn;ne()},l);var f=new Set,h=g=>{for(var S=0;S<g.length;S++){var m=g[S];if(!f.has(m)){f.add(m);var _=_p(m);for(const b of[t,document]){var k=ys.get(b);k===void 0&&(k=new Map,ys.set(b,k));var y=k.get(m);y===void 0?(b.addEventListener(m,da,{passive:_}),k.set(m,1)):k.set(m,y+1)}}}};return h(ri(pu)),ua.add(h),()=>{for(var g of f)for(const _ of[t,document]){var S=ys.get(_),m=S.get(g);--m==0?(_.removeEventListener(g,da),S.delete(g),S.size===0&&ys.delete(_)):S.set(g,m)}ua.delete(h),d!==n&&d.parentNode?.removeChild(d)}});return fa.set(c,u),c}let fa=new WeakMap;function We(e,t){const n=fa.get(e);return n?(fa.delete(e),n(t)):Promise.resolve()}function kp(e){const t=e();t&&fp(t)&&Zv()}function xp(e){const t=e();t&&!(typeof t=="string")&&yv()}function Sp(e,t){e!=null&&typeof e.subscribe!="function"&&_v()}function Su(e){return e.toString=()=>(bv(),""),e}class kr{anchor;#e=new Map;#t=new Map;#n=new Map;#i=new Set;#s=!0;constructor(t,n=!0){this.anchor=t,this.#s=n}#a=t=>{if(this.#e.has(t)){var n=this.#e.get(t),r=this.#t.get(n);if(r)Ya(r),this.#i.delete(n);else{var s=this.#n.get(n);s&&(this.#t.set(n,s.effect),this.#n.delete(n),s.fragment.lastChild.remove(),this.anchor.before(s.fragment),r=s.effect)}for(const[i,a]of this.#e){if(this.#e.delete(i),i===t)break;const l=this.#n.get(a);l&&(Ue(l.effect),this.#n.delete(a))}for(const[i,a]of this.#t){if(i===n||this.#i.has(i))continue;const l=()=>{if(Array.from(this.#e.values()).includes(i)){var u=document.createDocumentFragment();Ga(a,u),u.append(Xe()),this.#n.set(i,{effect:a,fragment:u})}else Ue(a);this.#i.delete(i),this.#t.delete(i)};this.#s||!r?(this.#i.add(i),On(a,l,!1)):l()}}};#r=t=>{this.#e.delete(t);const n=Array.from(this.#e.values());for(const[r,s]of this.#n)n.includes(r)||(Ue(s.effect),this.#n.delete(r))};ensure(t,n){var r=de,s=Jc();if(n&&!this.#t.has(t)&&!this.#n.has(t))if(s){var i=document.createDocumentFragment(),a=Xe();i.append(a),this.#n.set(t,{effect:rt(()=>n(a)),fragment:i})}else this.#t.set(t,rt(()=>n(this.anchor)));if(this.#e.set(r,t),s){for(const[l,c]of this.#t)l===t?r.unskip_effect(c):r.skip_effect(c);for(const[l,c]of this.#n)l===t?r.unskip_effect(c.effect):r.skip_effect(c.effect);r.oncommit(this.#a),r.ondiscard(this.#r)}else J&&(this.anchor=ae),this.#a(r)}}function un(e,t,...n){var r=new kr(e);sn(()=>{const s=t()??null;r.ensure(s,s&&(i=>s(i,...n)))},Yt)}function Ep(e,t){const n=(r,...s)=>{var i=La;Qo(e);try{return t(r,...s)}finally{Qo(i)}};return Su(n),n}function Ap(e){return(t,...n)=>{var r=e(...n),s;if(J)s=ae,lt();else{var i=r.render().trim(),a=Ja(i);s=De(a),t.before(s)}const l=r.setup?.(s);He(s,s),typeof l=="function"&&Et(l)}}function Ip(){return pe===null&&Pv(),(pe.ac??=new AbortController).signal}function Za(e){ke===null&&_r(),Ae(()=>{const t=Ie(e);if(typeof t=="function")return t})}function Qa(e){ke===null&&_r(),Za(()=>()=>Ie(e))}function Cp(e,t,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(e,{detail:t,bubbles:n,cancelable:r})}function Tp(){const e=ke;return e===null&&_r(),(t,n,r)=>{const s=e.s.$$events?.[t];if(s){const i=br(s)?s.slice():[s],a=Cp(t,n,r);for(const l of i)l.call(e.x,a);return!a.defaultPrevented}return!0}}function Rp(e){ke===null&&_r(),ke.l===null&&bc(),Eu(ke).b.push(e)}function Dp(e){ke===null&&_r(),ke.l===null&&bc(),Eu(ke).a.push(e)}function Eu(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}const Au=Object.freeze(Object.defineProperty({__proto__:null,afterUpdate:Dp,beforeUpdate:Rp,createContext:ih,createEventDispatcher:Tp,createRawSnippet:Ap,flushSync:yn,fork:xh,getAbortSignal:Ip,getAllContexts:ah,getContext:Na,hasContext:Ec,hydratable:ep,hydrate:ku,mount:Ne,onDestroy:Qa,onMount:Za,setContext:ja,settled:Qh,tick:cs,unmount:We,untrack:Ie},Symbol.toStringTag,{value:"Module"}));function Pp(){return Symbol(oc)}function Iu(e,t,n,r){return e!==t&&typeof t=="object"&&$e in t&&qv(n,wu(r)),e}function Mp(e,t,n,r,s){return Iu(n==="="?e[t]=r:n==="&&="?e[t]&&=r():n==="||="?e[t]||=r():n==="??="?e[t]??=r():null,Ie(()=>e[t]),t,s)}async function Op(e,t,n,r,s){return Iu(n==="="?e[t]=await r:n==="&&="?e[t]&&=await r():n==="||="?e[t]||=await r():n==="??="?e[t]??=await r():null,Ie(()=>e[t]),t,s)}var il=new Map;function Lp(e){var t=il.get(e);if(t){for(const n of t)n.remove();il.delete(e)}}function Np(e,t,n){return(...r)=>{const s=e(...r);var i=J?s:s.nodeType===mc?s.firstChild:s;return Cu(i,t,n),s}}function jp(e,t,n){e.__svelte_meta={parent:xs,loc:{file:t,line:n[0],column:n[1]}},n[2]&&Cu(e.firstChild,t,n[2])}function Cu(e,t,n){for(var r=0,s=0;e&&r<n.length;){if(J&&e.nodeType===fn){var i=e;i.data[0]===ei?s+=1:i.data[0]===ni&&(s-=1)}s===0&&e.nodeType===pc&&jp(e,t,n[r++]),e=e.nextSibling}}function zp(e){const t=kt(e);function n(r,s){let i={},a={},l,c=!1,u=r;return sn(()=>{if(i!==(i=o(t))){if(l){for(var d in a)delete a[d];Ue(l)}l=rt(()=>{u=u[pv]??u,c&&tr(!1);var f=new.target?new i(u,s):i(u,s);f&&Object.defineProperties(a,Object.getOwnPropertyDescriptors(f)),c&&tr(!0)}),oe.nodes=l.nodes}},Yt),c=!0,J&&(u=ae),a}return n[_t]=e[_t],n[Xn]={fn:e,current:t,update:r=>{x(n[Xn].current,r[Xn].fn),r[Xn].current=n[Xn].current}},n}function qp(e){const t=ke?.function,n=ke?.p?.function;return{mutation:(r,s,i,a,l)=>{const c=s[0];if(al(e,c)||!n)return i;let u=e;for(let f=0;f<s.length-1;f++)if(u=u[s[f]],!u?.[$e])return i;const d=wu(`${t[_t]}:${a}:${l}`);return Wv(c,d,r,n[_t]),i},binding:(r,s,i)=>{!al(e,r)&&n&&i()?.[$e]&&Kv(t[_t],r,s[_t],n[_t])}}}function al(e,t){const n=$e in e||ii in e;return!!Bt(e,t)?.set||n&&t in e||!(t in e)}function Vp(e){e&&xv(e[_t]??"a component",e.name)}function Bp(){const e=ke?.function;function t(n){kv(n,e[_t])}return{$destroy:()=>t("$destroy()"),$on:()=>t("$on(...)"),$set:()=>t("$set(...)")}}function Fp(e,t,n=!1){Ka();let r=!0,s=Re;nu(()=>{try{var i=e()}catch(l){s=l;return}var a=Bn(i,!0,!0);Ie(()=>{if(n){if(t(...a),!r){const l=nh("$inspect(...)");l&&(console.groupCollapsed("stack trace"),console.log(l),console.groupEnd())}}else t(r?"init":"update",...a)}),r=!1}),je(()=>{try{e()}catch{}s!==Re&&(console.error(s),s=Re)})}function Up(e,t=[],n=[],r){var s=J,i=null;if(s&&(lt(),i=Vn(!1)),n.length===0&&t.every(c=>c.settled)){r(e),s&&xe(i);return}const a=is();if(s){var l=ae;xe(i)}ss(t,[],n,c=>{s&&(Ee(!0),xe(l));try{for(const u of c)o(u);r(e,...c)}finally{s&&Ee(!1),a()}})}function Hp(e,...t){(typeof e!="object"||!(e instanceof Node))&&Zo();for(let n of t)typeof n!="function"&&Zo()}const ol=0,ll=1,Kp=2;function Wp(e,t,n,r,s){J&<();var i=Re,a=kt(i),l=kt(i),c=new kr(e);sn(()=>{var u=de;u.deactivate();var d=t();u.activate();var f=!1;let h=J&&Jo(d)===(e.data===ti);if(h&&(xe(Vn()),Ee(!1)),Jo(d)){var g=li(),S=!1;const m=_=>{if(!f){S=!0,g(!1),Nt.ensure(),J&&Ee(!1);try{_()}finally{Fn(!1),sr||yn()}}};d.then(_=>{m(()=>{en(a,_),c.ensure(ll,r&&(k=>r(k,a)))})},_=>{m(()=>{if(en(l,_),c.ensure(Kp,s&&(k=>s(k,l))),!s)throw l.v})}),J?c.ensure(ol,n):ot(()=>{S||m(()=>{c.ensure(ol,n)})})}else en(a,d),c.ensure(ll,r&&(m=>r(m,a)));return h&&Ee(!0),()=>{f=!0}})}function F(e,t,n=!1){var r;J&&(r=ae,lt());var s=new kr(e),i=n?Yt:0;function a(l,c){if(J){var u=Oa(r);if(l!==parseInt(u.substring(1))){var d=Vn();xe(d),s.anchor=d,Ee(!1),s.ensure(l,c),Ee(!0);return}}s.ensure(l,c)}sn(()=>{var l=!1;t((c,u=0)=>{l=!0,a(u,c)}),l||a(-1,null)},i)}const Yp=Symbol("NaN");function Gp(e,t,n){J&<();var r=new kr(e);sn(()=>{var s=t();s!==s&&(s=Yp),r.ensure(s,n)})}function Xp(e,t){J&&xe(De(e)),je(()=>{var n=t();for(var r in n){var s=n[r];s?e.style.setProperty(r,s):e.style.removeProperty(r)}})}function jt(e,t){return t}function Jp(e,t,n){for(var r=[],s=t.length,i,a=t.length,l=0;l<s;l++){let f=t[l];On(f,()=>{if(i){if(i.pending.delete(f),i.done.add(f),i.pending.size===0){var h=e.outrogroups;va(e,ri(i.done)),h.delete(i),h.size===0&&(e.outrogroups=null)}}else a-=1},!1)}if(a===0){var c=r.length===0&&n!==null;if(c){var u=n,d=u.parentNode;Ha(d),d.append(u),e.items.clear()}va(e,t,!c)}else i={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(i)}function va(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(const a of e.pending.values())for(const l of a)r.add(e.items.get(l).e)}for(var s=0;s<t.length;s++){var i=t[s];if(r?.has(i)){i.f|=Zt;const a=document.createDocumentFragment();Ga(i,a)}else Ue(t[s],n)}}var cl;function fe(e,t,n,r,s,i=null){var a=e,l=new Map,c=(t&rc)!==0;if(c){var u=e;a=J?xe(De(u)):u.appendChild(Xe())}J&<();var d=null,f=Ba(()=>{var b=n();return br(b)?b:b==null?[]:ri(b)}),h,g=new Map,S=!0;function m(b){y.effect.f&ht||(y.pending.delete(b),y.fallback=d,Zp(y,h,a,t,r),d!==null&&(h.length===0?d.f&Zt?(d.f^=Zt,Or(d,null,a)):Ya(d):On(d,()=>{d=null})))}function _(b){y.pending.delete(b)}var k=sn(()=>{h=o(f);var b=h.length;let R=!1;if(J){var L=Oa(a)===ti;L!==(b===0)&&(a=Vn(),xe(a),Ee(!1),R=!0)}for(var I=new Set,w=de,D=Jc(),C=0;C<b;C+=1){J&&ae.nodeType===fn&&ae.data===ni&&(a=ae,R=!0,Ee(!1));var M=h[C],P=r(M,C),O=S?null:l.get(P);O?(O.v&&en(O.v,M),O.i&&en(O.i,C),D&&w.unskip_effect(O.e)):(O=Qp(l,S?a:cl??=Xe(),M,P,C,s,t,n),S||(O.e.f|=Zt),l.set(P,O)),I.add(P)}if(b===0&&i&&!d&&(S?d=rt(()=>i(a)):(d=rt(()=>i(cl??=Xe())),d.f|=Zt)),b>I.size&&Sv(),J&&b>0&&xe(Vn()),!S)if(g.set(w,I),D){for(const[q,j]of l)I.has(q)||w.skip_effect(j.e);w.oncommit(m),w.ondiscard(_)}else m(w);R&&Ee(!0),o(f)}),y={effect:k,items:l,pending:g,outrogroups:null,fallback:d};S=!1,J&&(a=ae)}function Rr(e){for(;e!==null&&!(e.f&Kt);)e=e.next;return e}function Zp(e,t,n,r,s){var i=(r&Zf)!==0,a=t.length,l=e.items,c=Rr(e.effect.first),u,d=null,f,h=[],g=[],S,m,_,k;if(i)for(k=0;k<a;k+=1)S=t[k],m=s(S,k),_=l.get(m).e,_.f&Zt||(_.nodes?.a?.measure(),(f??=new Set).add(_));for(k=0;k<a;k+=1){if(S=t[k],m=s(S,k),_=l.get(m).e,e.outrogroups!==null)for(const M of e.outrogroups)M.pending.delete(_),M.done.delete(_);if(_.f&at&&(Ya(_),i&&(_.nodes?.a?.unfix(),(f??=new Set).delete(_))),_.f&Zt)if(_.f^=Zt,_===c)Or(_,null,n);else{var y=d?d.next:c;_===e.effect.last&&(e.effect.last=_.prev),_.prev&&(_.prev.next=_.next),_.next&&(_.next.prev=_.prev),mn(e,d,_),mn(e,_,y),Or(_,y,n),d=_,h=[],g=[],c=Rr(d.next);continue}if(_!==c){if(u!==void 0&&u.has(_)){if(h.length<g.length){var b=g[0],R;d=b.prev;var L=h[0],I=h[h.length-1];for(R=0;R<h.length;R+=1)Or(h[R],b,n);for(R=0;R<g.length;R+=1)u.delete(g[R]);mn(e,L.prev,I.next),mn(e,d,L),mn(e,I,b),c=b,d=I,k-=1,h=[],g=[]}else u.delete(_),Or(_,c,n),mn(e,_.prev,_.next),mn(e,_,d===null?e.effect.first:d.next),mn(e,d,_),d=_;continue}for(h=[],g=[];c!==null&&c!==_;)(u??=new Set).add(c),g.push(c),c=Rr(c.next);if(c===null)continue}_.f&Zt||h.push(_),d=_,c=Rr(_.next)}if(e.outrogroups!==null){for(const M of e.outrogroups)M.pending.size===0&&(va(e,ri(M.done)),e.outrogroups?.delete(M));e.outrogroups.size===0&&(e.outrogroups=null)}if(c!==null||u!==void 0){var w=[];if(u!==void 0)for(_ of u)_.f&at||w.push(_);for(;c!==null;)!(c.f&at)&&c!==e.fallback&&w.push(c),c=Rr(c.next);var D=w.length;if(D>0){var C=r&rc&&a===0?n:null;if(i){for(k=0;k<D;k+=1)w[k].nodes?.a?.measure();for(k=0;k<D;k+=1)w[k].nodes?.a?.fix()}Jp(e,w,C)}}i&&ot(()=>{if(f!==void 0)for(_ of f)_.nodes?.a?.apply()})}function Qp(e,t,n,r,s,i,a,l){var c=a&Xf?a&Qf?kt(n):ci(n,!1,!1):null,u=a&Jf?kt(s):null;return{v:c,i:u,e:rt(()=>(i(t,c??n,u??s,l),()=>{e.delete(r)}))}}function Or(e,t,n){if(e.nodes)for(var r=e.nodes.start,s=e.nodes.end,i=t&&!(t.f&Zt)?t.nodes.start:n;r!==null;){var a=xt(r);if(i.before(r),r===s)return;r=a}}function mn(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function $p(e,t,n=!1,r=!1,s=!1,i=!1){var a=e,l="";if(n){var c=e;J&&(a=xe(De(c)))}z(()=>{var u=oe;if(l===(l=t()??"")){J&<();return}if(n&&!J){u.nodes=null,c.innerHTML=l,l!==""&&He(De(c),c.lastChild);return}if(u.nodes!==null&&(iu(u.nodes.start,u.nodes.end),u.nodes=null),l!==""){if(J){ae.data;for(var d=lt(),f=d;d!==null&&(d.nodeType!==fn||d.data!=="");)f=d,d=xt(d);if(d===null)throw rs(),Nn;He(ae,f),a=xe(d);return}var h=r?es:s?Pa:void 0,g=An(r?"svg":s?"math":"template",h);g.innerHTML=l;var S=r||s?g:g.content;if(He(De(S),S.lastChild),r||s)for(;De(S);)a.before(De(S));else a.before(S)}})}function em(e,t,n,r,s){J&<();var i=t.$$slots?.[n],a=!1;i===!0&&(i=t[n==="default"?"children":n],a=!0),i===void 0?s!==null&&s(e):i(e,a?()=>r:r)}function tm(e){const t={};e.children&&(t.default=!0);for(const n in e.$$slots)t[n]=!0;return t}function us(e,t,n){var r;J&&(r=ae,lt());var s=new kr(e);sn(()=>{var i=t()??null;if(J){var a=Oa(r),l=a===ei,c=i!==null;if(l!==c){var u=Vn();xe(u),s.anchor=u,Ee(!1),s.ensure(i,i&&(d=>n(d,i))),Ee(!0);return}}s.ensure(i,i&&(d=>n(d,i)))},Yt)}const nm=()=>performance.now(),Jt={tick:e=>requestAnimationFrame(e),now:()=>nm(),tasks:new Set};function Tu(){const e=Jt.now();Jt.tasks.forEach(t=>{t.c(e)||(Jt.tasks.delete(t),t.f())}),Jt.tasks.size!==0&&Jt.tick(Tu)}function rm(e){let t;return Jt.tasks.size===0&&Jt.tick(Tu),{promise:new Promise(n=>{Jt.tasks.add(t={c:e,f:n})}),abort(){Jt.tasks.delete(t)}}}function Bs(e,t){In(()=>{e.dispatchEvent(new CustomEvent(t))})}function sm(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 ul(e){const t={},n=e.split(";");for(const r of n){const[s,i]=r.split(":");if(!s||i===void 0)break;const a=sm(s.trim());t[a]=i.trim()}return t}const im=e=>e;let Ru=null;function dl(e){Ru=e}function am(e,t,n){var r=Ru??oe,s=r.nodes,i,a,l,c=null;s.a??={element:e,measure(){i=this.element.getBoundingClientRect()},apply(){if(l?.abort(),a=this.element.getBoundingClientRect(),i.left!==a.left||i.right!==a.right||i.top!==a.top||i.bottom!==a.bottom){const u=t()(this.element,{from:i,to:a},n?.());l=Fs(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 g=e.getBoundingClientRect();if(i.left!==g.left||i.top!==g.top){var S=`translate(${i.left-g.left}px, ${i.top-g.top}px)`;h.transform=h.transform?`${h.transform} ${S}`:S}}}},unfix(){if(c){var u=e.style;u.position=c.position,u.width=c.width,u.height=c.height,u.transform=c.transform}}},s.a.element=e}function om(e,t,n,r){var s=(e&nv)!==0,i=(e&rv)!==0,a=s&&i,l=(e&sv)!==0,c=a?"both":s?"in":"out",u,d=t.inert,f=t.style.overflow,h,g;function S(){return In(()=>u??=n()(t,r?.()??{},{direction:c}))}var m={is_global:l,in(){if(t.inert=d,!s){g?.abort(),g?.reset?.();return}i||h?.abort(),h=Fs(t,S(),g,1,()=>{Bs(t,"introend"),h?.abort(),h=u=void 0,t.style.overflow=f})},out(b){if(!i){b?.(),u=void 0;return}t.inert=!0,g=Fs(t,S(),h,0,()=>{Bs(t,"outroend"),b?.()})},stop:()=>{h?.abort(),g?.abort()}},_=oe;if((_.nodes.t??=[]).push(m),s&&Vs){var k=l;if(!k){for(var y=_.parent;y&&y.f&Yt;)for(;(y=y.parent)&&!(y.f&Ft););k=!y||(y.f&dn)!==0}k&&St(()=>{Ie(()=>m.in())})}}function Fs(e,t,n,r,s){var i=r===1;if(Jn(t)){var a,l=!1;return ot(()=>{if(!l){var _=t({direction:i?"in":"out"});a=Fs(e,_,n,r,s)}}),{abort:()=>{l=!0,a?.abort()},deactivate:()=>a.deactivate(),reset:()=>a.reset(),t:()=>a.t()}}if(n?.deactivate(),!t?.duration&&!t?.delay)return Bs(e,i?"introstart":"outrostart"),s(),{abort:yt,deactivate:yt,reset:yt,t:()=>r};const{delay:c=0,css:u,tick:d,easing:f=im}=t;var h=[];if(i&&n===void 0&&(d&&d(0,1),u)){var g=ul(u(0,1));h.push(g,g)}var S=()=>1-r,m=e.animate(h,{duration:c,fill:"forwards"});return m.onfinish=()=>{m.cancel(),Bs(e,i?"introstart":"outrostart");var _=n?.t()??1-r;n?.abort();var k=r-_,y=t.duration*Math.abs(k),b=[];if(y>0){var R=!1;if(u)for(var L=Math.ceil(y/16.666666666666668),I=0;I<=L;I+=1){var w=_+k*f(I/L),D=ul(u(w,1-w));b.push(D),R||=D.overflow==="hidden"}R&&(e.style.overflow="hidden"),S=()=>{var C=m.currentTime;return _+k*f(C/y)},d&&rm(()=>{if(m.playState!=="running")return!1;var C=S();return d(C,1-C),!0})}m=e.animate(b,{duration:y,fill:"forwards"}),m.onfinish=()=>{S=()=>r,d?.(r,1-r),s()}},{abort:()=>{m&&(m.cancel(),m.effect=null,m.onfinish=yt)},deactivate:()=>{s=yt},reset:()=>{r===0&&d?.(1,0)},t:()=>S()}}function lm(e,t,n,r,s,i){let a=J;J&<();var l=null;J&&ae.nodeType===pc&&(l=ae,lt());var c=J?ae:e,u=oe,d=new kr(c,!1);sn(()=>{const f=t()||null;var h=s?s():n||f==="svg"?es:void 0;if(f===null){d.ensure(null,null),tr(!0);return}return d.ensure(f,g=>{if(f){if(l=J?l:An(f,h),He(l,l),r){J&&wp(f)&&l.append(document.createComment(""));var S=J?De(l):l.appendChild(Xe());J&&(S===null?Ee(!1):xe(S)),dl(u),r(l,S),dl(null)}oe.nodes.end=l,g.before(l)}J&&xe(g)}),tr(!0),()=>{f&&tr(!1)}},Yt),Et(()=>{tr(!0)}),a&&(Ee(!0),xe(c))}function cm(e,t){let n=null,r=J;var s;if(J){n=ae;for(var i=De(document.head);i!==null&&(i.nodeType!==fn||i.data!==e);)i=xt(i);if(i===null)Ee(!1);else{var a=xt(i);i.remove(),xe(a)}}J||(s=document.head.appendChild(Xe()));try{sn(()=>t(s),vc|En)}finally{r&&(Ee(!0),xe(n))}}function um(e,t){St(()=>{var n=e.getRootNode(),r=n.host?n:n.head??n.ownerDocument.head;if(!r.querySelector("#"+t.hash)){const s=An("style");s.id=t.hash,s.textContent=t.code,r.appendChild(s)}})}function Du(e,t,n){St(()=>{var r=Ie(()=>t(e,n?.())||{});if(n&&r?.update){var s=!1,i={};je(()=>{var a=n();Xa(a),s&&wc(i,a)&&(i=a,r.update(a))}),s=!0}if(r?.destroy)return()=>r.destroy()})}function $a(e,t){var n=void 0,r;ru(()=>{n!==(n=t())&&(r&&(Ue(r),r=null),n&&(r=rt(()=>{St(()=>n(e))})))})}const dm=/[&"<]/g;function fm(e,t){const n=String(e??""),r=dm;r.lastIndex=0;let s="",i=0;for(;r.test(n);){const a=r.lastIndex-1,l=n[a];s+=n.substring(i,a)+(l==="&"?"&":l==='"'?""":"<"),i=a+1}return s+n.substring(i)}function 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 vm(){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 fl={translate:new Map([[!0,"yes"],[!1,"no"]])};function hm(e,t,n=!1){if(e==="hidden"&&t!=="until-found"&&(n=!0),t==null||!t&&n)return"";const r=cv.call(fl,e)&&fl[e].get(t)||t,s=n?'=""':`="${fm(r)}"`;return` ${e}${s}`}function Mu(e){return typeof e=="object"?vm(e):e??""}const vl=[...`
|
|
7
|
-
\r\f \v\uFEFF`];function pm(e,t,n){var r=e==null?"":""+e;if(t&&(r=r?r+" "+t:t),n){for(var s of Object.keys(n))if(n[s])r=r?r+" "+s:s;else if(r.length)for(var i=s.length,a=0;(a=r.indexOf(s,a))>=0;){var l=a+i;(a===0||vl.includes(r[a-1]))&&(l===r.length||vl.includes(r[l]))?r=(a===0?"":r.substring(0,a))+r.substring(l+1):a=l}}return r===""?null:r}function hl(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 Vi(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function mm(e,t){if(t){var n="",r,s;if(Array.isArray(t)?(r=t[0],s=t[1]):r=t,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var i=!1,a=0,l=!1,c=[];r&&c.push(...Object.keys(r).map(Vi)),s&&c.push(...Object.keys(s).map(Vi));var u=0,d=-1;const m=e.length;for(var f=0;f<m;f++){var h=e[f];if(l?h==="/"&&e[f-1]==="*"&&(l=!1):i?i===h&&(i=!1):h==="/"&&e[f+1]==="*"?l=!0:h==='"'||h==="'"?i=h:h==="("?a++:h===")"&&a--,!l&&i===!1&&a===0){if(h===":"&&d===-1)d=f;else if(h===";"||f===m-1){if(d!==-1){var g=Vi(e.substring(u,d).trim());if(!c.includes(g)){h!==";"&&f++;var S=e.substring(u,f).trim();n+=" "+S+";"}}u=f+1,d=-1}}}}return r&&(n+=hl(r)),s&&(n+=hl(s,!0)),n=n.trim(),n===""?null:n}return e==null?null:String(e)}function le(e,t,n,r,s,i){var a=e.__className;if(J||a!==n||a===void 0){var l=pm(n,r,i);(!J||l!==e.getAttribute("class"))&&(l==null?e.removeAttribute("class"):t?e.className=l:e.setAttribute("class",l)),e.__className=n}else if(i&&s!==i)for(var c in i){var u=!!i[c];(s==null||u!==!!s[c])&&e.classList.toggle(c,u)}return i}function Bi(e,t={},n,r){for(var s in n){var i=n[s];t[s]!==i&&(n[s]==null?e.style.removeProperty(s):e.style.setProperty(s,i,r))}}function et(e,t,n,r){var s=e.__style;if(J||s!==t){var i=mm(t,r);(!J||i!==e.getAttribute("style"))&&(i==null?e.removeAttribute("style"):e.style.cssText=i),e.__style=t}else r&&(Array.isArray(r)?(Bi(e,n?.[0],r[0]),Bi(e,n?.[1],r[1],"important")):Bi(e,n,r));return r}function Fr(e,t,n=!1){if(e.multiple){if(t==null)return;if(!br(t))return Yv();for(var r of e.options)r.selected=t.includes(jr(r));return}for(r of e.options){var s=jr(r);if(Wc(s,t)){r.selected=!0;return}}(!n||t!==void 0)&&(e.selectedIndex=-1)}function eo(e){var t=new MutationObserver(()=>{Fr(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),Et(()=>{t.disconnect()})}function Ur(e,t,n=t){var r=new WeakSet,s=!0;os(e,"change",i=>{var a=i?"[selected]":":checked",l;if(e.multiple)l=[].map.call(e.querySelectorAll(a),jr);else{var c=e.querySelector(a)??e.querySelector("option:not([disabled])");l=c&&jr(c)}n(l),e.__value=l,de!==null&&r.add(de)}),St(()=>{var i=t();if(e===document.activeElement){var a=de;if(r.has(a))return}if(Fr(e,i,s),s&&i===void 0){var l=e.querySelector(":checked");l!==null&&(i=jr(l),n(i))}e.__value=i,s=!1}),eo(e)}function jr(e){return"__value"in e?e.__value:e.value}const Qn=Symbol("class"),$n=Symbol("style"),Ou=Symbol("is custom element"),Lu=Symbol("is html"),gm=Kn?"link":"LINK",bm=Kn?"input":"INPUT",_m=Kn?"option":"OPTION",ym=Kn?"select":"SELECT",wm=Kn?"progress":"PROGRESS";function we(e){if(J){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute("value")){var r=e.value;$(e,"value",null),e.value=r}if(e.hasAttribute("checked")){var s=e.checked;$(e,"checked",null),e.checked=s}}};e.__on_r=n,ot(n),$c()}}function Hr(e,t){var n=fi(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==wm)||(e.value=t??"")}function Nu(e,t){var n=fi(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function to(e,t){t?e.hasAttribute("selected")||e.setAttribute("selected",""):e.removeAttribute("selected")}function km(e,t){const n=e.checked;e.defaultChecked=t,e.checked=n}function xm(e,t){const n=e.value;e.defaultValue=t,e.value=n}function $(e,t,n,r){var s=fi(e);J&&(s[t]=e.getAttribute(t),t==="src"||t==="srcset"||t==="href"&&e.nodeName===gm)||s[t]!==(s[t]=n)&&(t==="loading"&&(e[vv]=n),n==null?e.removeAttribute(t):typeof n!="string"&&no(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function Sm(e,t,n){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n)}function Em(e,t,n){var r=pe,s=oe;let i=J;J&&Ee(!1),pt(null),nt(null);try{t!=="style"&&(ha.has(e.getAttribute("is")||e.nodeName)||!customElements||customElements.get(e.getAttribute("is")||e.nodeName.toLowerCase())?no(e).includes(t):n&&typeof n=="object")?e[t]=n:$(e,t,n==null?n:String(n))}finally{pt(r),nt(s),i&&Ee(!0)}}function Am(e,t,n,r,s=!1,i=!1){if(J&&s&&e.nodeName===bm){var a=e,l=a.type==="checkbox"?"defaultChecked":"defaultValue";l in n||we(a)}var c=fi(e),u=c[Ou],d=!c[Lu];let f=J&&u;f&&Ee(!1);var h=t||{},g=e.nodeName===_m;for(var S in t)S in n||(n[S]=null);n.class?n.class=Mu(n.class):(r||n[Qn])&&(n.class=null),n[$n]&&(n.style??=null);var m=no(e);for(const I in n){let w=n[I];if(g&&I==="value"&&w==null){e.value=e.__value="",h[I]=w;continue}if(I==="class"){var _=e.namespaceURI==="http://www.w3.org/1999/xhtml";le(e,_,w,r,t?.[Qn],n[Qn]),h[I]=w,h[Qn]=n[Qn];continue}if(I==="style"){et(e,w,t?.[$n],n[$n]),h[I]=w,h[$n]=n[$n];continue}var k=h[I];if(!(w===k&&!(w===void 0&&e.hasAttribute(I)))){h[I]=w;var y=I[0]+I[1];if(y!=="$$")if(y==="on"){const D={},C="$$"+I;let M=I.slice(2);var b=pp(M);if(vp(M)&&(M=M.slice(0,-7),D.capture=!0),!b&&k){if(w!=null)continue;e.removeEventListener(M,h[C],D),h[C]=null}if(b)U(M,e,w),ce([M]);else if(w!=null){let P=function(O){h[I].call(this,O)};h[C]=mu(M,e,P,D)}}else if(I==="style")$(e,I,w);else if(I==="autofocus")yr(e,!!w);else if(!u&&(I==="__value"||I==="value"&&w!=null))e.value=e.__value=w;else if(I==="selected"&&g)to(e,w);else{var R=I;d||(R=gp(R));var L=R==="defaultValue"||R==="defaultChecked";if(w==null&&!u&&!L)if(c[I]=null,R==="value"||R==="checked"){let D=e;const C=t===void 0;if(R==="value"){let M=D.defaultValue;D.removeAttribute(R),D.defaultValue=M,D.value=D.__value=C?M:null}else{let M=D.defaultChecked;D.removeAttribute(R),D.defaultChecked=M,D.checked=C?M:!1}}else e.removeAttribute(I);else L||m.includes(R)&&(u||typeof w!="string")?(e[R]=w,R in c&&(c[R]=Re)):typeof w!="function"&&$(e,R,w)}}}return f&&Ee(!0),h}function Im(e,t,n=[],r=[],s=[],i,a=!1,l=!1){ss(s,n,r,c=>{var u=void 0,d={},f=e.nodeName===ym,h=!1;if(ru(()=>{var S=t(...c.map(o)),m=Am(e,u,S,i,a,l);h&&f&&"value"in S&&Fr(e,S.value);for(let k of Object.getOwnPropertySymbols(d))S[k]||Ue(d[k]);for(let k of Object.getOwnPropertySymbols(S)){var _=S[k];k.description===oc&&(!u||_!==u[k])&&(d[k]&&Ue(d[k]),d[k]=rt(()=>$a(e,()=>_))),m[k]=_}u=m}),f){var g=e;St(()=>{Fr(g,u.value,!0),eo(g)})}h=!0})}function fi(e){return e.__attributes??={[Ou]:e.nodeName.includes("-"),[Lu]:e.namespaceURI===ac}}var ha=new Map;function no(e){var t=e.getAttribute("is")||e.nodeName,n=ha.get(t);if(n)return n;ha.set(t,n=[]);for(var r,s=e,i=Element.prototype;i!==s;){r=cc(s);for(var a in r)r[a].set&&n.push(a);s=si(s)}return n}let Fi=null;function ju(){if(Fi===null){var e=An("select");e.innerHTML=gu("<option><span>t</span></option>"),Fi=e.firstChild?.firstChild?.nodeType===1}return Fi}function Cm(e,t){ju()&&$a(e,()=>()=>{const n=e.closest("select");if(!n)return;const r=new MutationObserver(s=>{var i=!1;for(const a of s){if(a.target===e)return;i||=!!a.target.parentElement?.closest("option")?.selected}i&&(e.replaceWith(e=e.cloneNode(!0)),t(e))});return r.observe(n,{childList:!0,characterData:!0,subtree:!0}),()=>{r.disconnect()}})}function Tm(e,t){var n=J;ju()||(Ee(!1),e.textContent="",e.append(Zc("")));try{t()}finally{n&&(J?v(e):(Ee(!0),xe(e)))}}function Rm(e){mt(document,["focusin","focusout"],t=>{t&&t.type==="focusout"&&t.relatedTarget||e(document.activeElement)})}function Ce(e,t,n=t){var r=new WeakSet;os(e,"input",async s=>{var i=s?e.defaultValue:e.value;if(i=Hi(e)?Ki(i):i,n(i),de!==null&&r.add(de),await cs(),i!==(i=t())){var a=e.selectionStart,l=e.selectionEnd,c=e.value.length;if(e.value=i??"",l!==null){var u=e.value.length;a===l&&l===c&&u>c?(e.selectionStart=u,e.selectionEnd=u):(e.selectionStart=a,e.selectionEnd=Math.min(l,u))}}}),(J&&e.defaultValue!==e.value||Ie(t)==null&&e.value)&&(n(Hi(e)?Ki(e.value):e.value),de!==null&&r.add(de)),je(()=>{var s=t();if(e===document.activeElement){var i=de;if(r.has(i))return}Hi(e)&&s===Ki(e.value)||e.type==="date"&&!s&&!e.value||s!==e.value&&(e.value=s??"")})}const Ui=new Set;function Dm(e,t,n,r,s=r){var i=n.getAttribute("type")==="checkbox",a=e;let l=!1;if(t!==null)for(var c of t)a=a[c]??=[];a.push(n),os(n,"change",()=>{var u=n.__value;i&&(u=pl(a,u,n.checked)),s(u)},()=>s(i?[]:null)),je(()=>{var u=r();if(J&&n.defaultChecked!==n.checked){l=!0;return}i?(u=u||[],n.checked=u.includes(n.__value)):n.checked=Wc(n.__value,u)}),Et(()=>{var u=a.indexOf(n);u!==-1&&a.splice(u,1)}),Ui.has(a)||(Ui.add(a),ot(()=>{a.sort((u,d)=>u.compareDocumentPosition(d)===4?-1:1),Ui.delete(a)})),ot(()=>{if(l){var u;if(i)u=pl(a,u,n.checked);else{var d=a.find(f=>f.checked);u=d?.__value}s(u)}})}function Is(e,t,n=t){os(e,"change",r=>{var s=r?e.defaultChecked:e.checked;n(s)}),(J&&e.defaultChecked!==e.checked||Ie(t)==null)&&n(e.checked),je(()=>{var r=t();e.checked=!!r})}function pl(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 Hi(e){var t=e.type;return t==="number"||t==="range"}function Ki(e){return e===""?null:+e}function Pm(e,t,n=t){os(e,"change",()=>{n(e.files)}),J&&e.files&&n(e.files),je(()=>{e.files=t()})}function ro(e){for(var t=[],n=0;n<e.length;n+=1)t.push({start:e.start(n),end:e.end(n)});return t}function Mm(e,t,n=t){var r,s,i=()=>{cancelAnimationFrame(r),e.paused||(r=requestAnimationFrame(i));var a=e.currentTime;s!==a&&n(s=a)};r=requestAnimationFrame(i),e.addEventListener("timeupdate",i),je(()=>{var a=Number(t());s!==a&&!isNaN(a)&&(e.currentTime=s=a)}),Et(()=>{cancelAnimationFrame(r),e.removeEventListener("timeupdate",i)})}function Om(e,t){var n;mt(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=ro(r),t(n))})}function Lm(e,t){mt(e,["loadedmetadata"],()=>t(ro(e.seekable)))}function Nm(e,t){mt(e,["timeupdate"],()=>t(ro(e.played)))}function jm(e,t){mt(e,["seeking","seeked"],()=>t(e.seeking))}function zm(e,t){mt(e,["timeupdate","ended"],()=>t(e.ended))}function qm(e,t){mt(e,["loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","emptied"],()=>t(e.readyState))}function Vm(e,t,n=t){St(()=>{var r=Number(t());r!==e.playbackRate&&!isNaN(r)&&(e.playbackRate=r)}),St(()=>{mt(e,["ratechange"],()=>{n(e.playbackRate)})})}function Bm(e,t,n=t){var r=t(),s=()=>{r!==e.paused&&n(r=e.paused)};mt(e,["play","pause","canplay"],s,r==null),St(()=>{(r=!!t())!==e.paused&&(r?e.pause():e.play().catch(i=>{throw n(r=!0),i}))})}function Fm(e,t,n=t){var r=()=>{n(e.volume)};t()==null&&r(),mt(e,["volumechange"],r,!1),je(()=>{var s=Number(t());s!==e.volume&&!isNaN(s)&&(e.volume=s)})}function Um(e,t,n=t){var r=()=>{n(e.muted)};t()==null&&r(),mt(e,["volumechange"],r,!1),je(()=>{var s=!!t();e.muted!==s&&(e.muted=s)})}function Hm(e){mt(window,["online","offline"],()=>{e(navigator.onLine)})}function Km(e,t,n){var r=Bt(e,t);r&&r.set&&(e[t]=n,Et(()=>{e[t]=null}))}class ds{#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){ds.entries.set(n.target,n);for(var r of this.#e.get(n.target)||[])r(n)}}))}}var Wm=new ds({box:"content-box"}),zu=new ds({box:"border-box"}),Ym=new ds({box:"device-pixel-content-box"});function Gm(e,t,n){var r=t==="contentRect"||t==="contentBoxSize"?Wm:t==="borderBoxSize"?zu:Ym,s=r.observe(e,i=>n(i[t]));Et(s)}function Xm(e,t,n){var r=zu.observe(e,()=>n(e[t]));St(()=>(Ie(()=>n(e[t])),r))}function ml(e,t){return e===t||e?.[$e]===t}function ze(e={},t,n,r){var s=ke.r,i=oe;return St(()=>{var a,l;return je(()=>{a=l,l=r?.()||[],Ie(()=>{e!==n(...l)&&(t(e,...l),a&&ml(n(...a),e)&&t(null,...a))})}),()=>{let c=i;for(;c!==s&&c.parent!==null&&c.parent.f&ta;)c=c.parent;const u=()=>{l&&ml(n(...l),e)&&t(null,...l)},d=c.teardown;c.teardown=()=>{u(),d?.()}}}),e}function Jm(e,t,n,r=n){t.addEventListener("input",()=>{r(t[e])}),je(()=>{var s=n();if(t[e]!==s)if(s==null){var i=t[e];r(i)}else t[e]=s+""})}function Zm(e,t,n,r,s){var i=()=>{r(n[e])};n.addEventListener(t,i),s?je(()=>{n[e]=s()}):i(),(n===document.body||n===window||n===document)&&Et(()=>{n.removeEventListener(t,i)})}function Qm(e,t){mt(e,["focus","blur"],()=>{t(e===document.activeElement)})}function $m(e,t,n=t){var r=e==="x",s=()=>In(()=>{i=!0,clearTimeout(a),a=setTimeout(l,100),n(window[r?"scrollX":"scrollY"])});addEventListener("scroll",s,{passive:!0});var i=!1,a,l=()=>{i=!1},c=!0;je(()=>{var u=t();c?c=!1:!i&&u!=null&&(i=!0,clearTimeout(a),r?scrollTo(u,window.scrollY):scrollTo(window.scrollX,u),a=setTimeout(l,100))}),St(s),Et(()=>{removeEventListener("scroll",s)})}function eg(e,t){mt(window,["resize"],()=>In(()=>t(window[e])))}function tg(e){return function(...t){var n=t[0];n.isTrusted&&e?.apply(this,t)}}function ng(e){return function(...t){var n=t[0];n.target===this&&e?.apply(this,t)}}function rg(e){return function(...t){var n=t[0];return n.stopPropagation(),e?.apply(this,t)}}function sg(e){var t=!1;return function(...n){if(!t)return t=!0,e?.apply(this,n)}}function ig(e){return function(...t){var n=t[0];return n.stopImmediatePropagation(),e?.apply(this,t)}}function ag(e){return function(...t){var n=t[0];return n.preventDefault(),e?.apply(this,t)}}function og(e=!1){const t=ke,n=t.l.u;if(!n)return;let r=()=>Xa(t.s);if(e){let s=0,i={};const a=as(()=>{let l=!1;const c=t.s;for(const u in c)c[u]!==i[u]&&(i[u]=c[u],l=!0);return l&&s++,s});r=()=>o(a)}n.b.length&&tu(()=>{gl(t,r),$i(n.b)}),Ae(()=>{const s=Ie(()=>n.m.map(uv));return()=>{for(const i of s)typeof i=="function"&&i()}}),n.a.length&&Ae(()=>{gl(t,r),$i(n.a)})}function gl(e,t){if(e.l.s)for(const n of e.l.s)o(n);t()}function lg(e){var t=kt(0);return function(){return arguments.length===1?(x(t,o(t)+1),arguments[0]):(o(t),e())}}function cg(e,t){var n=e.$$events?.[t.type],r=br(n)?n.slice():n==null?[]:[n];for(var s of r)s.call(this,t)}function ug(e,t,n){e.$$events||={},e.$$events[t]||=[],e.$$events[t].push(n)}function dg(e){for(var t in e)t in this&&(this[t]=e[t])}function fg(e,t=1){const n=e();return e(n+t),n}function vg(e,t=1){const n=e()+t;return e(n),n}const hg={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 pg(e,t,n){return new Proxy({props:e,exclude:t},hg)}const mg={get(e,t){if(!e.exclude.includes(t))return o(e.version),t in e.special?e.special[t]():e.props[t]},set(e,t,n){if(!(t in e.special)){var r=oe;try{nt(e.parent_effect),e.special[t]=Q({get[t](){return e.props[t]}},t,sc)}finally{nt(r)}}return e.special[t](n),vr(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),vr(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 gg(e,t){return new Proxy({props:e,exclude:t,special:{},version:kt(0),parent_effect:oe},mg)}const bg={get(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(Jn(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];Jn(s)&&(s=s());const i=Bt(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(Jn(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r){const s=Bt(r,t);return s&&!s.configurable&&(s.configurable=!0),s}}},has(e,t){if(t===$e||t===ii)return!1;for(let n of e.props)if(Jn(n)&&(n=n()),n!=null&&t in n)return!0;return!1},ownKeys(e){const t=[];for(let n of e.props)if(Jn(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 fs(...e){return new Proxy({props:e},bg)}function Q(e,t,n,r){var s=(n&ev)!==0,i=(n&tv)!==0,a=r,l=!0,c=()=>(l&&(l=!1,a=i?Ie(r):r),a);let u;if(s){var d=$e in e||ii in e;u=Bt(e,t)?.set??(d&&t in e?y=>e[t]=y:void 0)}var f,h=!1;s?[f,h]=Mc(()=>e[t]):f=e[t],f===void 0&&r!==void 0&&(f=c(),u&&(Ov(),u(f)));var g;if(g=()=>{var y=e[t];return y===void 0?c():(l=!0,y)},!(n&sc))return g;if(u){var S=e.$$legacy;return function(y,b){return arguments.length>0?((!b||S||h)&&u(b?g():y),y):g()}}var m=!1,_=(n&$f?as:Ba)(()=>(m=!1,g()));s&&o(_);var k=oe;return function(y,b){if(arguments.length>0){const R=b?o(_):s?ve(y):y;return x(_,R),m=!0,a!==void 0&&(a=R),y}return cn&&m||k.f&ht?_.v:o(_)}}function _g(e,t,n,r,s,i){qc(t,()=>{var a=!1;La?.[_t],je(()=>{if(!a){var[l,c]=Mc(n);if(!c){var u=r(),d=!1,f=je(()=>{d||l[u]});d=!0,f.deps===null&&(Vv(),a=!0)}}})})}function yg(e){return new wg(e)}class wg{#e;#t;constructor(t){var n=new Map,r=(i,a)=>{var l=ci(a,!1,!1);return n.set(i,l),l};const s=new Proxy({...t.props||{},$$events:{}},{get(i,a){return o(n.get(a)??r(a,Reflect.get(i,a)))},has(i,a){return a===ii?!0:(o(n.get(a)??r(a,Reflect.get(i,a))),Reflect.has(i,a))},set(i,a,l){return x(n.get(a)??r(a,l),l),Reflect.set(i,a,l)}});this.#t=(t.hydrate?ku:Ne)(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)&&yn(),this.#e=s.$$events;for(const i of Object.keys(this.#t))i==="$set"||i==="$destroy"||i==="$on"||jn(this,i,{get(){return this.#t[i]},set(a){this.#t[i]=a},enumerable:!0});this.#t.$set=i=>{Object.assign(s,i)},this.#t.$destroy=()=>{We(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 qu;typeof HTMLElement=="function"&&(qu=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=An("slot");r!=="default"&&(i.name=r),E(s,i)}};if(await Promise.resolve(),!this.$$cn||this.$$c)return;const t={},n=kg(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]=Cs(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=yg({component:this.$$ctor,target:this.$$shadowRoot||this,props:{...this.$$d,$$slots:t,$$host:this}}),this.$$me=di(()=>{je(()=>{this.$$r=!0;for(const r of Ls(this.$$c)){if(!this.$$p_d[r]?.reflect)continue;this.$$d[r]=this.$$c[r];const s=Cs(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]=Cs(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 Ls(this.$$p_d).find(t=>this.$$p_d[t].attribute===e||!this.$$p_d[t].attribute&&t.toLowerCase()===e)||e}});function Cs(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 kg(e){const t={};return e.childNodes.forEach(n=>{t[n.slot||"default"]=!0}),t}function xg(e,t,n,r,s,i){let a=class extends qu{constructor(){super(e,n,s),this.$$p_d=t}static get observedAttributes(){return Ls(t).map(l=>(t[l].attribute||l).toLowerCase())}};return Ls(t).forEach(l=>{jn(a.prototype,l,{get(){return this.$$c&&l in this.$$c?this.$$c[l]:this.$$d[l]},set(c){c=Cs(l,c,t),this.$$d[l]=c;var u=this.$$c;if(u){var d=Bt(u,l)?.get;d?u[l]=c:u.$set({[l]:c})}}})}),r.forEach(l=>{jn(a.prototype,l,{get(){return this.$$c?.[l]}})}),i&&(a=i(a)),e.element=a,a}function Sg(e,...t){return Ie(()=>{try{let n=!1;const r=[];for(const s of t)s&&typeof s=="object"&&$e in s?(r.push(Bn(s,!0)),n=!0):r.push(s);n&&(Bv(e),console.log("%c[snapshot]","color: grey",...r))}catch{}}),t}const Vu=Object.freeze(Object.defineProperty({__proto__:null,CLASS:Qn,FILENAME:_t,HMR:Xn,NAMESPACE_SVG:es,STYLE:$n,aborted:ca,action:Du,get active_effect(){return oe},add_legacy_event_listener:ug,add_locations:Np,add_svelte_meta:sh,animation:am,append:E,append_styles:um,apply:np,assign:Mp,assign_async:Op,async:Up,async_derived:Vc,attach:$a,attachment:Pp,attr:hm,attribute_effect:Im,autofocus:yr,await:Wp,bind_active_element:Rm,bind_buffered:Om,bind_checked:Is,bind_content_editable:Jm,bind_current_time:Mm,bind_element_size:Xm,bind_ended:zm,bind_files:Pm,bind_focused:Qm,bind_group:Dm,bind_muted:Um,bind_online:Hm,bind_paused:Bm,bind_playback_rate:Vm,bind_played:Nm,bind_prop:Km,bind_property:Zm,bind_ready_state:qm,bind_resize_observer:Gm,bind_seekable:Lm,bind_seeking:jm,bind_select_value:Ur,bind_this:ze,bind_value:Ce,bind_volume:Fm,bind_window_scroll:$m,bind_window_size:eg,boundary:zc,bubble_event:cg,check_target:Vp,child:p,cleanup_styles:Lp,clsx:Mu,comment:it,component:us,create_custom_element:xg,create_ownership_validator:qp,css_props:Xp,customizable_select:Tm,deep_read:qs,deep_read_state:Xa,deferred_template_effect:Wh,delegate:ce,delegated:U,derived:H,derived_safe_equal:Ba,get document(){return Yc},each:fe,eager:kh,effect:St,effect_root:di,effect_tracking:ls,element:lm,equals:zh,event:Le,exclude_from_object:fv,fallback:dv,first_child:he,flush:yn,for_await_track_reactivity_loss:Th,from_html:T,from_mathml:ap,from_svg:_u,from_tree:op,get:o,head:cm,hmr:zp,html:$p,hydrate_template:Xv,if:F,index:jt,init:og,init_select:eo,inspect:Fp,invalid_default_snippet:mv,invalidate_inner_signals:Xh,invalidate_store:vh,invoke_error_boundary:Qt,key:Gp,legacy_api:Bp,legacy_pre_effect:Uh,legacy_pre_effect_reset:Hh,legacy_rest_props:gg,log_if_contains_state:Sg,mark_store_binding:bh,mutable_source:ci,mutate:Lh,next:$t,noop:yt,once:sg,pending:Ih,pop:ne,preventDefault:ag,prevent_snippet_stringification:Su,prop:Q,props_id:up,proxy:ve,push:te,raf:Jt,reactive_import:lg,remove_input_defaults:we,remove_textarea_child:Qc,render_effect:je,replay_events:tp,reset:v,rest_props:pg,run:Rh,run_after_blockers:qc,safe_get:$h,sanitize_slots:tm,save:Ch,select_option:Fr,selectedcontent:Cm,self:ng,set:x,set_attribute:$,set_checked:Nu,set_class:le,set_custom_element_data:Em,set_default_checked:km,set_default_value:xm,set_selected:to,set_style:et,set_text:N,set_value:Hr,set_xlink_attribute:Sm,setup_stores:hh,sibling:A,slot:em,snapshot:Bn,snippet:un,spread_props:fs,state:V,stopImmediatePropagation:ig,stopPropagation:rg,store_get:dh,store_mutate:ph,store_set:Pc,store_unsub:fh,strict_equals:jh,tag:th,tag_proxy:Sc,template_effect:z,text:Ut,tick:cs,to_array:fc,trace:eh,track_reactivity_loss:aa,transition:om,trusted:tg,untrack:Ie,update:vr,update_legacy_props:dg,update_pre:Nh,update_pre_prop:vg,update_pre_store:gh,update_prop:fg,update_store:mh,user_effect:Ae,user_pre_effect:tu,validate_binding:_g,validate_dynamic_element_tag:xp,validate_snippet_args:Hp,validate_store:Sp,validate_void_dynamic_element:kp,wait:Dh,get window(){return oa},with_script:lp,wrap_snippet:Ep},Symbol.toStringTag,{value:"Module"}));class bl{#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 _l{#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 Eg=["workspace","user"],so="state:manage",Gt={ephemeral:new bl,session:new bl,workspace:new _l("sh3:workspace:"),user:new _l("sh3:user:")},Wi=new Map;let Yi=!1;function Ag(e,t,n){Wi.set(`${e}:${t}`,{zone:e,shardId:t,value:n}),!Yi&&(Yi=!0,queueMicrotask(()=>{Yi=!1;for(const{zone:r,shardId:s,value:i}of Wi.values())Gt[r].write(s,i);Wi.clear()}))}function vi(e,t){const n={};for(const r of Object.keys(t)){const s=t[r],a=Gt[r].read(e),l={...s,...a??{}},c=ve(l);n[r]=c,Eg.includes(r)&&di(()=>{let u=!0;Ae(()=>{const d=Bn(c);if(u){u=!1;return}Ag(r,e,d)})})}return n}function yl(e,t){Gt[e]=t}function Ig(e,t){return Gt[e].read(t)}function pa(e,t){Gt[e].delete(t)}const Cg="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(Cg);const Tg=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function Rg(e){const t=document.activeElement;function n(){return Array.from(e.querySelectorAll(Tg))}function r(s){if(s.key!=="Tab")return;const i=n();if(i.length===0){s.preventDefault();return}const a=i[0],l=i[i.length-1],c=document.activeElement;s.shiftKey&&(c===a||!e.contains(c))?(s.preventDefault(),l.focus()):!s.shiftKey&&(c===l||!e.contains(c))&&(s.preventDefault(),a.focus())}return e.addEventListener("keydown",r),queueMicrotask(()=>{(n()[0]??e).focus()}),()=>{e.removeEventListener("keydown",r),t&&document.contains(t)&&t.focus()}}var Dg=T('<div class="modal-frame svelte-2tcvcm" role="presentation"><div class="modal-box svelte-2tcvcm" role="dialog" aria-modal="true" tabindex="-1"><!></div></div>');function Pg(e,t){te(t,!0);let n;Ae(()=>{if(n)return Rg(n)});function r(l){t.onBackdropClick&&l.target===l.currentTarget&&t.onBackdropClick()}var s=Dg(),i=p(s),a=p(i);us(a,()=>t.Content,(l,c)=>{c(l,fs(()=>t.contentProps,{get close(){return t.close}}))}),v(i),ze(i,l=>n=l,()=>n),v(s),z(()=>et(i,t.boxStyle)),U("click",s,r),E(e,s),ne()}ce(["click"]);const io={};function Mg(e,t){io[e]=t}function Og(e){delete io[e]}function hi(e){const t=io[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 wn=ve(new Map),ft=ve({id:null}),Kr=ve({id:null});function Lg(){return Kr.id}function ao(e){wn.set(e.manifest.id,e)}function oo(){return Array.from(wn.values()).map(e=>e.manifest)}function Bu(){const e=ft.id;return e?wn.get(e)?.manifest??null:null}function kn(e){return wn.get(e)}const zr=[],ir=[];let Wr=null;function Ng(e){Wr=e}function jg(e){if(!ft.id)throw new Error("pushNavEntry requires an active app");const t=Symbol("nav-entry");return ir.push({id:t,label:e.label,onPop:e.onPop}),{remove(){const n=ir.findIndex(r=>r.id===t);n>=0&&ir.splice(n,1)}}}function Fu(e){const t=Symbol("dismissable");return zr.push({id:t,dismiss:e}),{unregister(){const n=zr.findIndex(r=>r.id===t);n>=0&&zr.splice(n,1)}}}function Uu(){ir.length=0}function zg(){if(zr.length>0){zr.pop().dismiss();return}if(ir.length>0){ir.pop().onPop();return}ft.id&&Wr&&Wr.returnToHome()}function qg(){ft.id||Kr.id&&Wr&&Wr.launchApp(Kr.id)}const wt=[];let Us=!1,Tt=null;const Vg=.5;function Hu(){const e=hi("modal");if(wt.length===0){Tt&&(Tt.remove(),Tt=null);return}Tt||(Tt=document.createElement("div"),Tt.className="sh3-modal-backdrop",Tt.style.position="absolute",Tt.style.inset="0",Tt.style.pointerEvents="auto",Tt.style.transition="background-color 120ms ease",Tt.style.background=`rgba(0, 0, 0, ${Vg})`);const t=wt[wt.length-1].host;e.insertBefore(Tt,t)}function Ku(e){e.key==="Escape"&&wt.length!==0&&(e.stopPropagation(),e.preventDefault(),wt[wt.length-1].handle.close())}function Bg(){Us||(Us=!0,document.addEventListener("keydown",Ku,!0))}function Fg(){wt.length>0||Us&&(Us=!1,document.removeEventListener("keydown",Ku,!0))}function Wu(e){const t=wt.indexOf(e);t<0||(wt.splice(t,1),We(e.frame),e.host.remove(),Hu(),Fg())}function Ug(e,t,n){const r=hi("modal"),s=document.createElement("div");s.className="sh3-modal-host",s.style.position="absolute",s.style.inset="0",s.style.pointerEvents="auto",r.appendChild(s);const i={},a={close:()=>Wu(i)},l=Fu(()=>a.close()),c=a.close;a.close=()=>{l.unregister(),c()};const u=Ne(Pg,{target:s,props:{Content:e,contentProps:t??{},close:a.close,boxStyle:n?.boxStyle,onBackdropClick:n?.dismissOnBackdrop?a.close:void 0}});return i.host=s,i.frame=u,i.handle=a,wt.push(i),Hu(),Bg(),a}function Hg(){for(;wt.length>0;)Wu(wt[wt.length-1])}const lo={open:Ug,closeAll:Hg};var Kg=T('<div class="popup-frame svelte-mp81cl" role="menu" tabindex="-1"><!></div>');function Wg(e,t){te(t,!0);let n,r=V(-9999),s=V(-9999);Ae(()=>{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 g=t.anchorRect.top-l.height-c;f=g>=c?g:Math.max(c,d-l.height-c)}x(r,f,!0),x(s,h,!0)});var i=Kg(),a=p(i);us(a,()=>t.Content,(l,c)=>{c(l,fs(()=>t.contentProps,{get close(){return t.close}}))}),v(i),ze(i,l=>n=l,()=>n),z(()=>et(i,`top: ${o(r)??""}px; left: ${o(s)??""}px;`)),E(e,i),ne()}function Yg(e){return e instanceof HTMLElement?e.getBoundingClientRect():new DOMRect(e.x,e.y,0,0)}let Ot=null;function Yu(e){if(!Ot)return;const t=e.target;t&&Ot.host.contains(t)||Ot.handle.close()}function Gu(e){Ot&&e.key==="Escape"&&(e.stopPropagation(),e.preventDefault(),Ot.handle.close())}function Gg(){document.addEventListener("pointerdown",Yu,!0),document.addEventListener("keydown",Gu,!0)}function Xg(){document.removeEventListener("pointerdown",Yu,!0),document.removeEventListener("keydown",Gu,!0)}function ma(e){Ot===e&&(Ot=null,Xg(),We(e.frame),e.host.remove())}function Jg(e,t,n){Ot&&ma(Ot);const r=hi("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=Yg(t.anchor),a={},l={close:()=>ma(a)},c=Fu(()=>l.close()),u=l.close;l.close=()=>{c.unregister(),u()};const d=Ne(Wg,{target:s,props:{Content:e,contentProps:n??{},anchorRect:i,close:l.close}});return a.host=s,a.frame=d,a.handle=l,Ot=a,queueMicrotask(Gg),l}function Zg(){Ot&&ma(Ot)}const ga={show:Jg,close:Zg};var Qg=T('<div role="status" aria-live="polite"><span class="toast-level svelte-12gwnj0"> </span> <span class="toast-message svelte-12gwnj0"> </span></div>');function $g(e,t){var n=Qg(),r=p(n),s=p(r,!0);v(r);var i=A(r,2),a=p(i,!0);v(i),v(n),z(()=>{le(n,1,`toast toast-${t.level??""}`,"svelte-12gwnj0"),N(s,t.level),N(a,t.message)}),U("click",n,function(...l){t.close?.apply(this,l)}),E(e,n)}ce(["click"]);const Hs=new Set;let ut=null;function eb(){if(ut&&ut.isConnected)return ut;const e=hi("toast");return ut=document.createElement("div"),ut.className="sh3-toast-stack",ut.style.position="absolute",ut.style.right="16px",ut.style.bottom="16px",ut.style.display="flex",ut.style.flexDirection="column-reverse",ut.style.gap="6px",ut.style.pointerEvents="none",e.appendChild(ut),ut}function ba(e){Hs.has(e)&&(Hs.delete(e),e.timer!==null&&(clearTimeout(e.timer),e.timer=null),We(e.instance),e.host.remove())}function tb(e,t={}){const n=t.level??"info",r=t.duration??3e3,s=eb(),i=document.createElement("div");i.className="sh3-toast-host",s.appendChild(i);const a={},l={close:()=>ba(a)},c=Ne($g,{target:i,props:{message:e,level:n,close:l.close}});return a.host=i,a.instance=c,a.handle=l,a.timer=Number.isFinite(r)&&r>0?setTimeout(()=>ba(a),r):null,Hs.add(a),l}function nb(){for(const e of[...Hs])ba(e)}const Xu={notify:tb,clear:nb},wl={w:120,h:80};function Ju(e){if(e.type==="slot")return{...wl};if(e.type==="tabs")return{...wl};const t=e.children.map(Ju);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 kl=32,xl={x:48,y:48};function rb(e,t){if(e.length===0)return{...xl};const n=e[e.length-1],r={x:n.position.x+kl,y:n.position.y+kl};return r.x+120>t.w||r.y+32>t.h?{...xl}:r}let Sl=0;function sb(){return Sl+=1,`float-${Date.now().toString(36)}-${Sl.toString(36)}`}function Zu(e){return e.type==="slot"?e.viewId==null:e.type==="tabs"?e.tabs.every(t=>t.viewId==null):e.children.every(Zu)}let ib=[],co=null,uo=()=>({w:1600,h:900});function ab(e,t){co=e,uo=t}function ob(){co=null,uo=()=>({w:1600,h:900})}function pi(){return co??ib}let El=0;function lb(e){return El+=1,`float:${e}:${El}`}const cb={w:600,h:400};function ub(e,t){return{w:Math.max(e.w,t.w),h:Math.max(e.h,t.h)}}function db(e,t={}){const n=pi(),r=sb(),s=lb(e);let i;if(t.dismissable)i={type:"slot",slotId:s,viewId:e};else{const d=t.title??e,f={slotId:s,viewId:e,label:d};t.meta&&(f.meta=t.meta),i={type:"tabs",tabs:[f],activeTab:0}}const a=Ju(i),l=t.size??ub(cb,a),c=t.position??rb(n,uo()),u={id:r,content:i,position:c,size:l,title:t.title};return t.dismissable&&(u.dismissable=!0),n.push(u),r}function fb(e){const t=pi(),n=t.findIndex(r=>r.id===e);n<0||t.splice(n,1)}function vb(){return pi().slice()}function hb(e){const t=pi(),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 Lt={open:db,close:fb,list:vb,focus:hb};let Ks=null;function pb(e){Ks=e}function mb(){Ks=null}function fo(){if(!Ks)throw new Error("presetManager: no app attached — bind an AppLayoutBlob first");return Ks}function gb(){return Object.keys(fo().presets)}function bb(){return fo().activePreset}function _b(e){const t=fo();if(!(e in t.presets))throw new Error(`presetManager.switch: unknown preset "${e}"`);t.activePreset=e}const yb={list:gb,active:bb,switch:_b},nr=new Map,Ts=new Map;function Al(e){const t=Ts.get(e);if(t)for(const n of t)n()}function Qu(e,t){const n=Symbol();let r=nr.get(e);r||(r=new Map,nr.set(e,r)),r.set(n,t),Al(e);let s=!1;return()=>{if(s)return;s=!0;const i=nr.get(e);i&&i.delete(n)&&(i.size===0&&nr.delete(e),Al(e))}}function mi(e){const t=nr.get(e);return t?Array.from(t.values()):[]}function wb(){return Array.from(nr.keys())}function $u(e,t){let n=Ts.get(e);n||(n=new Set,Ts.set(e,n)),n.add(t);let r=!1;return()=>{r||(r=!0,n.delete(t),n.size===0&&Ts.delete(e))}}const kb=Object.freeze([".md",".txt",".json",".guml",".css",".js",".ts",".tsx",".jsx",".html",".svg",".csv",".yaml",".yml",".xml",".log",".ini",".toml"]);function xb(e){return e.kind?e.kind:e.extension&&kb.includes(e.extension.toLowerCase())?"text":"binary"}const Rs=[];function Il(e){return Rs.push(e),()=>{const t=Rs.indexOf(e);t>=0&&Rs.splice(t,1)}}function Sb(e,t=[]){return[...Rs,...t].filter(r=>{try{return r.appliesTo(e)}catch{return!1}}).sort((r,s)=>(s.priority??0)-(r.priority??0))[0]??null}var Eb=T("<span> </span>"),Ab=T('<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),Ib=T("<option> </option>"),Cb=T("<button> </button>"),Tb=T('<pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre>'),Rb=T('<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>'),Db=T('<div class="sh3-conflict-text svelte-iwgja4"><!></div>');function Pb(e,t){te(t,!0);let n=V("");Ae(()=>{(!o(n)||!t.item.branches.find(g=>g.origin===o(n)))&&x(n,t.item.branches[0]?.origin??"local",!0)});const r=H(()=>t.item.branches.length===2),s=H(()=>o(r)?t.item.branches[0]:t.item.branches.find(g=>g.origin===o(n))??t.item.branches[0]),i=H(()=>o(r)?t.item.branches[1]:t.item.branches.find(g=>g.origin===t.selectedOrigin)??t.item.branches[1]??t.item.branches[0]);function a(g,S){const m=(g??"").split(/\r?\n/),_=(S??"").split(/\r?\n/),k=[],y=Math.max(m.length,_.length);for(let b=0;b<y;b++){const R=m[b],L=_[b];R===L?typeof R=="string"&&k.push({kind:"same",text:R}):(typeof R=="string"&&k.push({kind:"left",text:R}),typeof L=="string"&&k.push({kind:"right",text:L}))}return k}const l=H(()=>!o(s)||!o(i)?[]:a(o(s).content??"",o(i).content??"")),c=H(()=>o(l).filter(g=>g.kind!=="same").length);var u=Db(),d=p(u);{var f=g=>{var S=Ab(),m=he(S),_=p(m);let k;var y=p(_),b=p(y);v(y);var R=A(y,2),L=p(R),I=p(L,!0);v(L),v(R),v(_);var w=A(_,2);let D;var C=p(w),M=p(C);v(C);var P=A(C,2),O=p(P),q=p(O,!0);v(O),v(P),v(w),v(m);var j=A(m,2),B=p(j),G=p(B);v(B);var W=A(B,2),ee=p(W);fe(ee,21,()=>o(l),jt,(Z,se)=>{var ie=Eb(),re=p(ie);v(ie),z(()=>{le(ie,1,`diff-${o(se).kind}`,"svelte-iwgja4"),N(re,`${o(se).kind==="same"?" ":o(se).kind==="left"?"- ":"+ "}${o(se).text??""}
|
|
8
|
-
`)}),E(Z,ie)}),v(ee),v(W),v(j),z(()=>{k=le(_,1,"sh3-conflict-text-pane svelte-iwgja4",null,k,{selected:o(s).origin===t.selectedOrigin}),N(b,`${o(s).origin??""} · v${o(s).version??""}`),N(I,o(s).content??""),D=le(w,1,"sh3-conflict-text-pane svelte-iwgja4",null,D,{selected:o(i).origin===t.selectedOrigin}),N(M,`${o(i).origin??""} · v${o(i).version??""}`),N(q,o(i).content??""),N(G,`Line diff (${o(c)??""} difference${o(c)===1?"":"s"})`)}),U("click",_,()=>t.onSelect(o(s).origin)),U("keydown",_,Z=>{(Z.key==="Enter"||Z.key===" ")&&t.onSelect(o(s).origin)}),U("click",w,()=>t.onSelect(o(i).origin)),U("keydown",w,Z=>{(Z.key==="Enter"||Z.key===" ")&&t.onSelect(o(i).origin)}),E(g,S)},h=g=>{var S=Rb(),m=p(S),_=p(m),k=A(p(_));fe(k,21,()=>t.item.branches,L=>L.origin,(L,I)=>{var w=Ib(),D=p(w,!0);v(w);var C={};z(()=>{N(D,o(I).origin),C!==(C=o(I).origin)&&(w.value=(w.__value=o(I).origin)??"")}),E(L,w)}),v(k),v(_),v(m);var y=A(m,2);fe(y,21,()=>t.item.branches,L=>L.origin,(L,I)=>{var w=Cb();let D;var C=p(w);v(w),z(()=>{D=le(w,1,"sh3-conflict-text-tab svelte-iwgja4",null,D,{selected:o(I).origin===t.selectedOrigin}),N(C,`${o(I).origin??""} · v${o(I).version??""}`)}),U("click",w,()=>t.onSelect(o(I).origin)),E(L,w)}),v(y);var b=A(y,2);{var R=L=>{var I=Tb(),w=p(I),D=p(w,!0);v(w),v(I),z(()=>N(D,o(i).content??"")),E(L,I)};F(b,L=>{o(i)&&L(R)})}v(S),Ur(k,()=>o(n),L=>x(n,L)),E(g,S)};F(d,g=>{o(r)&&o(s)&&o(i)?g(f):g(h,-1)})}v(u),E(e,u),ne()}ce(["click","keydown"]);var Mb=T("· <code> </code>",1),Ob=T('<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>'),Lb=T('<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 Nb(e,t){te(t,!0);function n(a){return typeof a!="number"?"—":a<1024?`${a} B`:a<1024*1024?`${(a/1024).toFixed(1)} KiB`:`${(a/(1024*1024)).toFixed(2)} MiB`}function r(a){const l=Date.now()-a;return l<6e4?"just now":l<36e5?`${Math.floor(l/6e4)}m ago`:l<864e5?`${Math.floor(l/36e5)}h ago`:new Date(a).toLocaleString()}var s=Lb(),i=A(p(s),2);fe(i,21,()=>t.item.branches,a=>a.origin,(a,l)=>{var c=Ob(),u=p(c);let d;var f=p(u),h=p(f,!0);v(f);var g=A(f,2),S=p(g),m=A(S);{var _=k=>{var y=Mb(),b=A(he(y)),R=p(b,!0);v(b),z(()=>N(R,o(l).hashPreview)),E(k,y)};F(m,k=>{o(l).hashPreview&&k(_)})}v(g),v(u),v(c),z((k,y)=>{d=le(u,1,"sh3-conflict-meta-row svelte-1nz3djn",null,d,{selected:o(l).origin===t.selectedOrigin}),N(h,o(l).origin),N(S,`v${o(l).version??""} · ${k??""} · ${y??""} `)},[()=>r(o(l).at),()=>n(o(l).sizeBytes)]),U("click",u,()=>t.onSelect(o(l).origin)),E(a,c)}),v(i),v(s),E(e,s),ne()}ce(["click"]);const jb=1048576;function zb(e){return typeof e=="number"&&e>jb}const qb={id:"sh3-core.text",priority:1,appliesTo:e=>xb(e)!=="text"?!1:!e.branches.some(t=>zb(t.sizeBytes)),mount(e,t){const n=Ne(Pb,{target:e,props:t});return()=>{We(n)}}},Vb={id:"sh3-core.meta",priority:0,appliesTo:()=>!0,mount(e,t){const n=Ne(Nb,{target:e,props:t});return()=>{We(n)}}};let Cl=!1;function Bb(){Cl||(Cl=!0,Il(qb),Il(Vb))}var Fb=T('<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 Ub(e,t){var n=Fb(),r=p(n),s=p(r);v(r);var i=A(r,4),a=p(i);yr(a,!0);var l=A(a,2),c=A(l,2);v(i),v(n),z(()=>N(s,`${t.count??""} conflict${t.count===1?"":"s"} to resolve`)),U("click",a,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)}),E(e,n)}ce(["click"]);var Hb=T('<span class="sh3-conflict-detail-counter svelte-pw8iv6"> </span>'),Kb=T('<button type="button"><span><!></span> <span class="sh3-conflict-detail-rail-label svelte-pw8iv6"> </span></button>'),Wb=T('<aside class="sh3-conflict-detail-rail svelte-pw8iv6"></aside>'),Yb=T('<label class="sh3-conflict-detail-branch svelte-pw8iv6"><input type="radio"/> <span> </span></label>'),Gb=T('<div class="sh3-conflict-detail-branches svelte-pw8iv6"></div> <div class="sh3-conflict-detail-renderer svelte-pw8iv6"></div>',1),Xb=T('<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 Jb(e,t){te(t,!0);const n=H(()=>t.items[t.currentIndex]),r=H(()=>o(n)?t.selections[o(n).id]??o(n).branches[0]?.origin??"":""),s=H(()=>o(n)?Sb(o(n),t.contributed):null);let i=V(void 0),a=null;Ae(()=>{if(o(n),o(s),o(r),a&&(a(),a=null),!o(i)||!o(n)||!o(s))return;const B={item:o(n),selectedOrigin:o(r),onSelect:G=>t.onSelect(o(n).id,G)};return a=o(s).mount(o(i),B),()=>{a&&(a(),a=null)}});function l(){t.currentIndex>0&&t.onNavigate(t.currentIndex-1)}function c(){t.currentIndex<t.items.length-1&&t.onNavigate(t.currentIndex+1)}const u=H(()=>t.items.map(B=>t.skipped[B.id]?"skipped":t.selections[B.id]?"resolved":"pending"));var d=Xb(),f=p(d),h=p(f),g=p(h,!0);v(h);var S=A(h,2);{var m=B=>{var G=Hb(),W=p(G);v(G),z(()=>N(W,`${t.currentIndex+1} / ${t.items.length??""}`)),E(B,G)};F(S,B=>{t.items.length>1&&B(m)})}v(f);var _=A(f,2),k=p(_);{var y=B=>{var G=Wb();fe(G,23,()=>t.items,W=>W.id,(W,ee,Z)=>{var se=Kb();let ie;var re=p(se),me=p(re);{var ge=Te=>{var ct=Ut("✓");E(Te,ct)},X=Te=>{var ct=Ut("⟶");E(Te,ct)},ue=Te=>{var ct=Ut("·");E(Te,ct)};F(me,Te=>{o(u)[o(Z)]==="resolved"?Te(ge):o(u)[o(Z)]==="skipped"?Te(X,1):Te(ue,-1)})}v(re);var _e=A(re,2),Je=p(_e,!0);v(_e),v(se),z(()=>{ie=le(se,1,"sh3-conflict-detail-rail-item svelte-pw8iv6",null,ie,{selected:o(Z)===t.currentIndex}),le(re,1,`sh3-conflict-detail-rail-state ${o(u)[o(Z)]??""}`,"svelte-pw8iv6"),N(Je,o(ee).label)}),U("click",se,()=>t.onNavigate(o(Z))),E(W,se)}),v(G),E(B,G)};F(k,B=>{t.items.length>1&&B(y)})}var b=A(k,2),R=p(b);{var L=B=>{var G=Gb(),W=he(G);fe(W,21,()=>o(n).branches,Z=>Z.origin,(Z,se)=>{var ie=Yb(),re=p(ie);we(re);var me=A(re,2),ge=p(me);v(me),v(ie),z(()=>{$(re,"name",`branch-${o(n).id??""}`),Hr(re,o(se).origin),Nu(re,o(r)===o(se).origin),N(ge,`${o(se).origin??""} · v${o(se).version??""}`)}),U("change",re,()=>t.onSelect(o(n).id,o(se).origin)),E(Z,ie)}),v(W);var ee=A(W,2);ze(ee,Z=>x(i,Z),()=>o(i)),E(B,G)};F(R,B=>{o(n)&&B(L)})}v(b),v(_);var I=A(_,2),w=p(I),D=p(w),C=A(D,2),M=p(C,!0);v(C);var P=A(C,2);v(w);var O=A(w,2),q=p(O),j=A(q,2);v(O),v(I),v(d),z(()=>{N(g,t.title),D.disabled=t.currentIndex===0,N(M,o(n)&&t.skipped[o(n).id]?"Unskip":"Skip"),P.disabled=t.currentIndex>=t.items.length-1}),U("click",D,l),U("click",C,()=>o(n)&&t.onToggleSkip(o(n).id)),U("click",P,c),U("click",q,function(...B){t.onCancel?.apply(this,B)}),U("click",j,function(...B){t.onDone?.apply(this,B)}),E(e,d),ne()}ce(["click","change"]);function ed(e,t){return t.at-e.at}function Zb(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(ed)[0]}}function Qb(e,t){te(t,!0);const n=t.items.length>=2||t.requirePrompt;let r=V(ve(n?"prompt":"detail")),s=V(ve(Object.fromEntries(t.items.map(b=>{const R=Zb(b.branches,t.mostRecentBy)?.origin??b.branches[0]?.origin??"";return[b.id,R]})))),i=V(ve({})),a=V(0),l=!1;Qa(()=>{l||(l=!0,t.onCancel())});function c(){if(l)return;l=!0;const b=[],R=[];for(const L of t.items){if(o(i)[L.id]){R.push(L.id);continue}const I=o(s)[L.id],w=L.branches.find(D=>D.origin===I);w&&b.push({itemId:L.id,chosen:w,meta:L.meta})}t.onResolve(b,R),t.close()}function u(){l||(l=!0,t.onCancel(),t.close())}function d(){c()}function f(){x(r,"detail")}function h(b,R){if(x(s,{...o(s),[b]:R},!0),o(i)[b]){const L={...o(i)};delete L[b],x(i,L,!0)}}function g(b){x(i,{...o(i),[b]:!o(i)[b]},!0)}function S(b){x(a,b,!0)}var m=it(),_=he(m);{var k=b=>{Ub(b,{get count(){return t.items.length},onOverwriteMostRecent:d,onResolveIndividually:f,onCancel:u})},y=b=>{Jb(b,{get items(){return t.items},get selections(){return o(s)},get skipped(){return o(i)},get currentIndex(){return o(a)},get title(){return t.title},get contributed(){return t.contributed},onSelect:h,onNavigate:S,onToggleSkip:g,onDone:c,onCancel:u})};F(_,b=>{o(r)==="prompt"?b(k):b(y,-1)})}E(e,m),ne()}const td="sh3-core.conflictRenderer";class nd extends Error{constructor(t){super(t),this.name="ConflictPermissionError"}}class $b extends Error{constructor(){super("Caller shard deactivated while conflict session was active"),this.name="ConflictSessionOrphanedError"}}function e_(){try{return mi(td)}catch{return[]}}function rd(e,t={}){return Bb(),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??ed,i=t.requirePrompt??!1,a=e_();let l=!1;const d={items:e,title:r,mostRecentBy:s,requirePrompt:i,contributed:a,onResolve:(f,h)=>{l||(l=!0,n({status:"resolved",choices:f,skipped:h}))},onCancel:()=>{l||(l=!0,n({status:"cancelled"}))}};lo.open(Qb,d,{boxStyle:"max-width: none; min-width: 360px; padding: 0;"})})}function t_(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 n_(e,t){const n=e.browse;if(!n?.statusFrom||!n?.readBranchFrom||!n?.resolveConflictFrom)throw new nd(`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 r_(e){const t=e.lastIndexOf(".");if(t<0)return;const n=e.lastIndexOf("/");if(!(t<n))return e.slice(t)}async function s_(e,t,n={}){const r=e.shardId,s=t.shardId===r?t_(e):n_(e,t.shardId),i=[];for(const d of t.paths){const f=await s.status(d);f&&f.syncState==="conflict"&&f.branches&&f.branches.length>0&&i.push({path:d,status:f})}if(i.length===0)return{status:"resolved",resolved:[],failed:[],skipped:[]};const a=[];for(const{path:d,status:f}of i){const h=r_(d),g=[];for(const S of f.branches??[]){const m=await s.readBranch(d,S.origin).catch(()=>null);g.push({origin:S.origin,version:S.version,at:S.at,content:m??void 0,sizeBytes:m?new TextEncoder().encode(m).length:void 0})}a.push({id:d,label:d,extension:h,branches:g,meta:{shardId:t.shardId,path:d,docVersion:f.version}})}const l=await rd(a,n);if(l.status==="cancelled")return{status:"cancelled"};const c=[],u=[];for(const d of l.choices)try{await s.resolveConflict(d.itemId,{origin:d.chosen.origin});const f=await s.status(d.itemId).catch(()=>null);c.push({path:d.itemId,chosen:d.chosen,appliedVersion:f?.version??-1})}catch(f){u.push({path:d.itemId,error:f instanceof Error?f.message:String(f)})}return{status:"resolved",resolved:c,failed:u,skipped:l.skipped}}const i_={resolve:rd,resolveDocuments:s_},sd="sh3.color-picker",a_={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 o_(e={}){return[...mi(sd),a_].sort((r,s)=>(s.priority??0)-(r.priority??0))[0].open(e)}const l_={pick:o_};let Pn=null;function c_(e){Pn=e}async function ar(e){return Pn?{...Pn.bindings[e]??{}}:{}}async function Tl(e,t,n){if(!Pn)return;const r={...Pn.bindings[e]??{}};n===void 0?delete r[t]:r[t]=n,Pn.bindings={...Pn.bindings,[e]:r}}const vo="sh3.actions",Gi=new Set;function u_(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.`),()=>{};Gi.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.`),Gi.add(e.id);const r=Qu(vo,{action:e,ownerShardId:t});let s=!1;return()=>{s||(s=!0,r(),Gi.delete(e.id))}}function tt(){return mi(vo)}function d_(e){return $u(vo,e)}const f_=["Ctrl","Alt","Shift","Meta"],Rl={control:"Ctrl",ctrl:"Ctrl",alt:"Alt",option:"Alt",shift:"Shift",meta:"Meta",cmd:"Meta",command:"Meta",super:"Meta",win:"Meta"},v_=new Set(["Control","Alt","Shift","Meta"]);function id(e){return e.length===1?e.toUpperCase():e}function ho(e){if(!e)throw new Error("Empty shortcut");const t=e.split("+");if(t.some(a=>a.trim()===""))throw new Error(`Malformed shortcut: "${e}"`);const n=t.map(a=>a.trim());if(n.length===0)throw new Error(`Malformed shortcut: "${e}"`);const r=new Set;let s;for(const a of n){const l=a.toLowerCase();if(l in Rl)r.add(Rl[l]);else{if(s!==void 0)throw new Error(`Multiple keys in shortcut: "${e}"`);s=id(a)}}if(s===void 0)throw new Error(`No key in shortcut: "${e}"`);return[...f_.filter(a=>r.has(a)),s].join("+")}function ad(e,t){if(!e.toLowerCase().includes("mod"))return e;const n=e.split("+").map(r=>r.toLowerCase()==="mod"?t==="mac"?"Meta":"Ctrl":r);return ho(n.join("+"))}function h_(e){if(v_.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=id(e.key);return[...t,n].join("+")}function p_(){return typeof navigator>"u"?"other":/Mac|iPhone|iPad|iPod/i.test(navigator.platform)?"mac":"other"}function vs(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?null:ho(r)}return e.defaultShortcut?ad(e.defaultShortcut,n):null}function m_(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?{shortcut:null,source:"disabled"}:{shortcut:ho(r),source:"user"}}return e.defaultShortcut?{shortcut:ad(e.defaultShortcut,n),source:"default"}:{shortcut:null,source:"none"}}function gi(e){return e==="home"?"home":e==="app"?"app":typeof e=="string"&&e.startsWith("view:")?"view":typeof e=="string"&&e.startsWith("focus:")?"focus":"element"}function po(e){return Array.isArray(e)?e:[e]}function od(e){return e==="home"||e==="app"?null:typeof e=="string"?e:e.element}function hs(e,t,n){const r=po(e),s={};for(const i of r){const a=gi(i);(s[a]??=[]).push(i)}for(const i of bi){const a=s[i];if(a){for(const l of a)if(Yr(l,t,n))return l}}return null}function g_(e,t){return typeof e=="string"||typeof t=="string"?e===t:e.element===t.element}function ld(e){return typeof e=="string"?e:`element:${e.element}`}function b_(e){if(e==="home"||e==="app")return e;if(e.startsWith("view:"))return e.slice(5).length>0?e:null;if(e.startsWith("focus:"))return e.slice(6).length>0?e:null;if(e.startsWith("element:")){const t=e.slice(8);return t.length>0?{element:t}:null}return null}const bi=["element","focus","view","app","home"];function Yr(e,t,n){if(e==="home")return t.activeAppId===null;if(e==="app")return t.activeAppId===null||!n?!1:t.activeAppRequiredShards.has(n)||t.autostartShards.has(n);if(typeof e=="string"){if(e.startsWith("view:"))return t.mountedViewIds.has(e.slice(5));if(e.startsWith("focus:"))return t.focusedViewId===e.slice(6)}return typeof e=="object"&&"element"in e?t.selection!==null&&t.selection.type===e.element:!1}function __(e,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=vs(r.action,t.bindings,t.platform);if(s)for(const i of po(r.action.scope)){if(!Yr(i,t,r.ownerShardId))continue;const a=gi(i),l=n[a].get(s);if(l&&l!==r.action.id){console.warn(`[sh3] Shortcut "${s}" in tier "${a}" is bound to both "${l}" and "${r.action.id}"; first-registered wins. Users can rebind to resolve.`);continue}n[a].set(s,r.action.id)}}return n}function y_(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 w_(e){const t=__(e.entries,e.state),n=new Map(e.entries.map(r=>[r.action.id,r]));for(const r of bi){const s=t[r].get(e.shortcut);if(!s)continue;const i=n.get(s);if(i)return y_(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 zt=V(null);function k_(){return o(zt)}function x_(e){return{get(){return o(zt)},set(t){x(zt,{type:t.type,ref:t.ref,ownerShardId:e},!0)},clear(){if(o(zt)){if(o(zt).ownerShardId!==e){console.warn(`[sh3] Shard "${e}" tried to clear selection owned by "${o(zt).ownerShardId}". Ignoring.`);return}x(zt,null)}}}}function cd(e){o(zt)&&o(zt).ownerShardId===e&&x(zt,null)}function S_(){x(zt,null)}const Ws=new Map,ud=new Set;function E_(e){ud.add(e)}function A_(e,t){if(Ws.has(e))throw new Error(`View "${e}" is already registered`);Ws.set(e,t);for(const n of ud)n(e,t)}function dd(e){return Ws.get(e)}function fd(e){Ws.delete(e)}const Gr=new Map;function I_(e,t){if(Gr.has(e))throw new Error(`Verb "${e}" is already registered`);Gr.set(e,t)}function Dl(e){return Gr.get(e)}function vd(e){Gr.delete(e)}function mo(){return Array.from(Gr.values()).sort((e,t)=>e.name.localeCompare(t.name))}function pr(e,t){const n=(r,s)=>{if(r.type==="tabs"){const i=r.tabs.findIndex(a=>a.slotId===t);if(i>=0)return{tabsNode:r,tabsPath:s,tabIndex:i,entry:r.tabs[i]}}else if(r.type==="split")for(let i=0;i<r.children.length;i++){const a=n(r.children[i],[...s,i]);if(a)return a}return null};return n(e,[])}function go(e,t){if(_a(e.docked,t))return{kind:"docked"};for(const n of e.floats)if(_a(n.content,t))return{kind:"float",floatId:n.id};return null}function _a(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(_a(n,t))return!0;return!1}function _i(e,t){const n=pr(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 C_(e,t,n){const r=Math.max(0,Math.min(n,e.tabs.length));e.tabs.splice(r,0,t),e.activeTab=r}function T_(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 Pl(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 R_(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 hd(e,t,n,r){const s=Xr(e,t);if(!s||pd(e,t))return;if(t.length===0){const u=R_(s),d=Pl(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=Pl(s,n,r),a=t.slice(0,-1),l=t[t.length-1],c=Xr(e,a);!c||c.type!=="split"||(c.children[l]=i)}function Xr(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 pd(e,t){if(t.length===0)return!1;const n=Xr(e,t.slice(0,-1));return!n||n.type!=="split"?!1:n.fixed?.[t[t.length-1]]===!0}function rr(e){let t=!0;for(;t;)t=md(e,null,0)}function md(e,t,n){if(e.type==="split"){let r=!1;for(let s=0;s<e.children.length;s++)md(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 _n=new Map,Ds=new Set;function D_(e,t){for(const[n,r]of _n.entries()){if(r.viewId!==e||r.handle!==void 0)continue;const s={slotId:n,viewId:e,label:r.label,meta:r.meta,setDirty(i){yi[n]=i},location(){return go(At(),n)}};queueMicrotask(()=>{if(_n.has(n)&&r.handle===void 0&&(r.handle=t.mount(r.host,s),(r.handle?.closable||n.startsWith("float:"))&&(wi[n]=!0),r.handle?.onResize)){const i=r.handle.onResize.bind(r.handle);r.resizeObserver=new ResizeObserver(a=>{for(const l of a){const c=l.contentRect;i(Math.round(c.width),Math.round(c.height))}}),r.resizeObserver.observe(r.host)}})}}E_(D_);const yi=ve({}),wi=ve({});function P_(e,t,n,r){const s=document.createElement("div");s.className="slot-host",s.dataset.slotId=e,t&&(s.setAttribute("data-sh3-view",t),s.setAttribute("data-sh3-scope",ld(`focus:${t}`))),s.style.position="absolute",s.style.inset="0",s.style.minWidth="0",s.style.minHeight="0";let i=!1;const a={host:s,handle:void 0,viewId:t,label:n,meta:r,refcount:0,resizeObserver:void 0,cancelPendingMount:()=>{i=!0}};return queueMicrotask(()=>{if(i)return;const l=t?dd(t):void 0,c={slotId:e,viewId:t??"",label:n,meta:r,setDirty(u){yi[e]=u},location(){return go(At(),e)}};if(a.handle=l?.mount(s,c),(a.handle?.closable||e.startsWith("float:"))&&(wi[e]=!0),a.handle?.onResize){const u=a.handle.onResize.bind(a.handle);a.resizeObserver=new ResizeObserver(d=>{for(const f of d){const h=f.contentRect;u(Math.round(h.width),Math.round(h.height))}}),a.resizeObserver.observe(s)}}),a}function bo(e,t,n,r){Ds.delete(e);let s=_n.get(e);return s?s.viewId!==t&&(console.warn(`[sh3] acquireSlotHost("${e}") called with viewId "${t}" but existing pooled entry has viewId "${s.viewId}". Attribute synced; view handle unchanged.`),s.viewId=t,t?(s.host.setAttribute("data-sh3-view",t),s.host.setAttribute("data-sh3-scope",ld(`focus:${t}`))):(s.host.removeAttribute("data-sh3-view"),s.host.removeAttribute("data-sh3-scope"))):(s=P_(e,t,n,r),_n.set(e,s)),s.refcount++,s.host}function _o(e,t){const n=_n.get(e);if(n){if(n.refcount--,n.refcount>0){t&&n.host.parentNode===t&&n.host.remove();return}Ds.add(e),queueMicrotask(()=>{if(!Ds.has(e))return;Ds.delete(e);const r=_n.get(e);!r||r.refcount>0||(r.resizeObserver?.disconnect(),r.handle?.unmount(),r.cancelPendingMount(),r.host.remove(),_n.delete(e),delete yi[e],delete wi[e])})}}function gd(e){const t=ya.get(e);return t||_n.get(e)?.handle}function M_(e){return yi[e]??!1}function O_(e){return ya.has(e)?!!ya.get(e).closable:wi[e]??!1}const ya=new Map;function bd(e){if(!e||typeof e!="object")return!1;const t=e.type;return t==="split"||t==="tabs"||t==="slot"}function L_(e){if(!e||typeof e!="object")return!1;const t=e;return bd(t.docked)&&Array.isArray(t.floats)}function N_(e){return{docked:e,floats:[]}}function j_(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 _d(e){if(Array.isArray(e))return e.map(j_);if(L_(e))return[{name:"default",variants:{default:e}}];if(bd(e))return[{name:"default",variants:{default:N_(e)}}];throw new Error("normalizeInitialLayout: input is not a LayoutNode, LayoutTree, or LayoutPreset[]")}function Ml(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 yo(e){const t=Ml(e.docked);for(const n of e.floats)t.push(...Ml(n.content));return t}pa("workspace","__shell__");const z_={type:"slot",slotId:"sh3core.home",viewId:"sh3core:home"},q_=ve({docked:z_,floats:[]});let Ve=V(null),ki=V("home");function V_(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 B_(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 F_(e){if(o(Ve))throw new Error(`Layout manager cannot attach app "${e.manifest.id}": app "${o(Ve).appId}" is still attached`);const t=`__sh3core__:app:${e.manifest.id}`,n=_d(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=Ig("workspace",t),i=V_(s);(i&&i.layoutVersion!==e.manifest.layoutVersion||s&&!i)&&pa("workspace",t);const l=vi(t,{workspace:r}).workspace;x(Ve,{appId:e.manifest.id,proxy:l,heldSlotIds:[]},!0),pb(l)}function U_(){if(!o(Ve))throw new Error("acquireAppSlotHolds: no app attached");if(o(Ve).heldSlotIds.length>0)return;const e=B_(o(Ve).proxy),t=yo(e);for(const{slotId:n,viewId:r,label:s,meta:i}of t)bo(n,r,s,i),o(Ve).heldSlotIds.push(n)}function H_(){if(!o(Ve))throw new Error("resetActivePresetToDefault: no app attached");const e=kn(o(Ve).appId);if(!e)throw new Error(`resetActivePresetToDefault: attached app "${o(Ve).appId}" not in registry`);const t=_d(e.initialLayout),n=o(Ve).proxy,r=n.activePreset;let s=t.find(l=>l.name===r);s||(s=t[0],n.activePreset=s.name);for(const l of o(Ve).heldSlotIds)_o(l);o(Ve).heldSlotIds=[];const i=structuredClone(s.variants.default);n.presets[n.activePreset].default=i;const a=yo(i);for(const{slotId:l,viewId:c,label:u,meta:d}of a)bo(l,c,u,d),o(Ve).heldSlotIds.push(l)}function yd(){if(o(Ve)){mb();for(const e of o(Ve).heldSlotIds)_o(e);x(Ve,null)}}function wd(){x(ki,"home")}function Ol(){if(!o(Ve))throw new Error("Cannot switchToApp: no app is attached");x(ki,"app")}const Ps=H(()=>{if(o(ki)==="app"&&o(Ve)){const e=o(Ve).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 q_});function At(){return o(Ps)}function kd(){return o(ki)}const tn={get root(){return o(Ps).docked},get tree(){return o(Ps)},get floats(){return o(Ps).floats}};let xd=V(null),Sd=V(ve(new Set)),Ms=V(ve(new Set)),Ed=V(ve(new Set)),Ad=V(null),Id=V(ve({}));const K_=p_(),wa=new Set;function xr(){for(const e of wa)try{e()}catch(t){console.error("[sh3] onActiveChange listener threw",t)}}function W_(e){return wa.add(e),()=>{wa.delete(e)}}function Y_(){xr()}function Ys(e,t){x(xd,e,!0),x(Sd,new Set(t),!0),xr()}function G_(){const e=yo(tn.tree),t=new Set;for(const n of e)n.viewId!==null&&t.add(n.viewId);x(Ed,t,!0),xr()}function Cd(e){x(Ad,e,!0),xr()}function Jr(e){x(Id,{...e},!0),xr()}function Ht(){return{activeAppId:o(xd),activeAppRequiredShards:o(Sd),autostartShards:o(Ms),mountedViewIds:o(Ed),focusedViewId:o(Ad),selection:k_(),bindings:o(Id),platform:K_}}function X_(e){o(Ms).has(e)||(x(Ms,new Set([...o(Ms),e]),!0),xr())}var J_=T('<div class="sh3-ctx-sep svelte-1667pfa" role="separator"></div>'),Z_=T('<span class="sh3-ctx-chevron svelte-1667pfa">▸</span>'),Q_=T('<span class="sh3-ctx-shortcut svelte-1667pfa"> </span>'),$_=T('<button role="menuitem"><span class="sh3-ctx-check svelte-1667pfa"> </span> <span class="sh3-ctx-label svelte-1667pfa"> </span> <!></button>'),ey=T("<!> <!>",1),ty=T('<div class="sh3-context-menu svelte-1667pfa" role="menu" tabindex="0"></div>');function Gs(e,t){te(t,!0);const n=H(()=>t.sections.flatMap(c=>c.items));let r=V(0);function s(c,u){if(o(n).length===0)return 0;let d=c;for(let f=0;f<o(n).length;f++)if(d=(d+u+o(n).length)%o(n).length,!o(n)[d].disabled)return d;return c}function i(c){if(c.key==="ArrowDown")x(r,s(o(r),1),!0),c.preventDefault();else if(c.key==="ArrowUp")x(r,s(o(r),-1),!0),c.preventDefault();else if(c.key==="Enter"){const u=o(n)[o(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=(o(r)+1)%o(n).length;for(let f=0;f<o(n).length;f++){const h=(d+f)%o(n).length,g=o(n)[h];if(!g.disabled&&g.label.toLowerCase().startsWith(u)){x(r,h);break}}}}function a(c){c.disabled||(t.onInvoke(c.id),c.submenu||t.onDismiss())}var l=ty();yr(l,!0),fe(l,23,()=>t.sections,c=>c.id,(c,u,d)=>{var f=ey(),h=he(f);{var g=m=>{var _=J_();E(m,_)};F(h,m=>{o(d)>0&&m(g)})}var S=A(h,2);fe(S,17,()=>o(u).items,m=>m.id,(m,_)=>{const k=H(()=>o(n).indexOf(o(_)));var y=$_();let b;var R=p(y),L=p(R,!0);v(R);var I=A(R,2),w=p(I,!0);v(I);var D=A(I,2);{var C=P=>{var O=Z_();E(P,O)},M=P=>{var O=Q_(),q=p(O,!0);v(O),z(()=>N(q,o(_).shortcut)),E(P,O)};F(D,P=>{o(_).submenu?P(C):o(_).shortcut&&P(M,1)})}v(y),z(()=>{b=le(y,1,"sh3-ctx-item svelte-1667pfa",null,b,{"sh3-ctx-active":o(k)===o(r),"sh3-ctx-disabled":o(_).disabled}),$(y,"aria-disabled",o(_).disabled||void 0),N(L,o(_).checked?"✓":""),N(w,o(_).label)}),Le("pointerenter",y,()=>{o(_).disabled||x(r,o(k),!0)}),U("click",y,()=>a(o(_))),E(m,y)}),E(c,f)}),v(l),U("keydown",l,i),E(e,l),ne()}ce(["keydown","click"]);function Td(e,t){te(t,!0);const n=H(()=>t.model.tiers.map(r=>({id:`tier:${r.tier}`,items:r.items.map(s=>({...s,icon:void 0}))})));Gs(e,{get sections(){return o(n)},get onInvoke(){return t.onInvoke},get onDismiss(){return t.onClose}}),ne()}function Ll(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function Rd(e,t){return{id:e.action.id,label:e.action.label,shortcut:vs(e.action,t.bindings,t.platform),group:e.action.group??"",icon:e.action.icon,checked:Ll(e.action.checked),disabled:Ll(e.action.disabled),submenu:e.action.submenu===!0}}function Dd(e,t,n,r){return po(e.scope).some(i=>g_(i,n))?n==="app"||n==="home"||typeof n=="object"&&"element"in n?Yr(n,r,t):!0:!1}function Pd(e,t,n){const r={element:[],focus:[],view:[],app:[],home:[]},s=new Set;for(const i of e){if(!i.action.contextItem||i.action.submenuOf!==void 0||s.has(i.action.id)||!Dd(i.action,i.ownerShardId,n,t))continue;const a=hs(i.action.scope,t,i.ownerShardId)??n;s.add(i.action.id),r[gi(a)].push(Rd(i,t))}return{tiers:bi.map(i=>({tier:i,items:r[i]})).filter(i=>i.items.length>0)}}function ny(e,t,n,r){const s=[],i=new Set;for(const a of e)a.action.submenuOf===n&&(i.has(a.action.id)||Dd(a.action,a.ownerShardId,r,t)&&(i.add(a.action.id),s.push(Rd(a,t))));return s}function ry(e,t){if(!t)return 0;const n=e.toLowerCase(),r=t.toLowerCase();let s=0,i=0,a=0,l=0,c=-2;for(;s<n.length&&i<r.length;){if(n[s]===r[i]){const u=s===0?5:0,d=s===c+1?++l:l=1;a+=1+u+d,c=s,i++}else l=0;s++}return i===r.length?a:null}function sy(e,t,n){const r=[];for(const i of e){if(t===""&&i.submenuOf!==void 0)continue;const a=ry(i.label,t);a!==null&&r.push({...i,score:a})}const s=new Map;return n.forEach((i,a)=>s.set(i,n.length-a)),r.sort((i,a)=>{if(i.score!==a.score)return a.score-i.score;const l=s.get(i.id)??0;return(s.get(a.id)??0)-l}),r}var iy=T('<span class="sh3-palette-badge svelte-1qdcgk6"> </span>'),ay=T('<span class="sh3-palette-shortcut svelte-1qdcgk6"> </span>'),oy=T('<button role="option"><span class="sh3-palette-label svelte-1qdcgk6"> </span> <!> <!></button>'),ly=T('<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 cy(e,t){te(t,!0);let n=Q(t,"prefill",3,""),r=V(ve(n())),s=V(0);const i=H(()=>sy(t.candidates,o(r),t.recency));Ae(()=>{o(s)>=o(i).length&&x(s,0)});function a(d){d.key==="ArrowDown"?(x(s,Math.min(o(s)+1,Math.max(0,o(i).length-1)),!0),d.preventDefault()):d.key==="ArrowUp"?(x(s,Math.max(o(s)-1,0),!0),d.preventDefault()):d.key==="Enter"?(o(i)[o(s)]&&(t.onInvoke(o(i)[o(s)].id),t.onClose()),d.preventDefault()):d.key==="Escape"&&(t.onClose(),d.preventDefault())}var l=ly(),c=p(l);we(c),yr(c,!0);var u=A(c,2);fe(u,23,()=>o(i),d=>d.id,(d,f,h)=>{var g=oy();let S;var m=p(g),_=p(m,!0);v(m);var k=A(m,2);{var y=L=>{var I=iy(),w=p(I);v(I),z(()=>N(w,`[${o(f).scopeBadge??""}]`)),E(L,I)};F(k,L=>{o(f).scopeBadge&&L(y)})}var b=A(k,2);{var R=L=>{var I=ay(),w=p(I,!0);v(I),z(()=>N(w,o(f).shortcut)),E(L,I)};F(b,L=>{o(f).shortcut&&L(R)})}v(g),z(()=>{S=le(g,1,"sh3-palette-item svelte-1qdcgk6",null,S,{"sh3-palette-active":o(h)===o(s)}),$(g,"aria-selected",o(h)===o(s)),N(_,o(f).label)}),Le("pointerenter",g,()=>x(s,o(h),!0)),U("click",g,()=>{t.onInvoke(o(f).id),t.onClose()}),E(d,g)}),v(u),v(l),U("keydown",l,a),Ce(c,()=>o(r),d=>x(r,d)),E(e,l),ne()}ce(["keydown","click"]);function uy(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function dy(e,t,n={}){const r=[],s=new Set,i=n.filter?.submenuOf;for(const a of e){if(a.action.paletteItem===!1||uy(a.action.disabled)||i!==void 0&&a.action.submenuOf!==i||s.has(a.action.id))continue;const l=hs(a.action.scope,t,a.ownerShardId);l&&(s.add(a.action.id),r.push({id:a.action.id,label:a.action.label,shortcut:vs(a.action,t.bindings,t.platform),scopeBadge:od(l),submenu:a.action.submenu===!0,submenuOf:i!==void 0?void 0:a.action.submenuOf}))}return r}let Nl=!1;function wo(e){return e?e.closest("[data-sh3-view]")?.getAttribute("data-sh3-view")??null:null}function Md(e){if(e.explicit!==void 0)return e.explicit;const t=e.event?.target;if(t instanceof Element){let n=t.closest("[data-sh3-scope]");for(;n;){const s=b_(n.getAttribute("data-sh3-scope")??"");if(s&&!(typeof s=="object"&&"element"in s&&!Yr(s,e.state)))return s;const i=n.parentElement;n=i?i.closest("[data-sh3-scope]"):null}const r=wo(t);if(r)return`focus:${r}`}return e.state.activeAppId?"app":"home"}function Od(e,t){const n=tt().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 Sr(e){const t=tt().find(r=>r.action.id===e);if(!t){console.warn(`[sh3] ctx.dispatch("${e}") — no action registered with that id.`);return}const n=Ht();Od(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:Sr})}function fy(e){const t=wo(e.target);Cd(t)}function vy(e){queueMicrotask(()=>{const t=wo(document.activeElement);Cd(t)})}function hy(e){return e instanceof Element?e.closest('[data-sh3-context-menu="native"]')!==null:!1}function Ld(e,t,n,r){const s=document.querySelector(".sh3-popup-host");if(!s)return;const i=document.createElement("div");i.className="sh3-popup-submenu",i.style.position="absolute",i.style.pointerEvents="auto";const l=(s.querySelector(".sh3-ctx-active")??s).getBoundingClientRect();i.style.left=`${l.right+2}px`,i.style.top=`${l.top}px`,s.appendChild(i);const c=ny(tt(),t,e,r);Ne(Gs,{target:i,props:{sections:[{id:`submenu:${e}`,items:c}],onInvoke:u=>{const d=tt().find(f=>f.action.id===u);if(!(!d||typeof d.action.run!="function")){try{d.action.run({action:{id:u,label:d.action.label},appId:t.activeAppId,viewId:t.focusedViewId??void 0,selection:t.selection??void 0,invokedVia:"context-menu",dispatch:Sr})}catch(f){console.error(`[sh3] context-menu submenu action "${u}" threw:`,f)}n.close()}},onDismiss:()=>n.close()}})}function py(e){if(hy(e.target))return;const t=tt(),n=Ht(),r=Md({event:e,state:n}),s=Pd(t,n,r);if(s.tiers.length===0)return;e.preventDefault();const i=Wn.popup.show(Td,{anchor:{x:e.clientX,y:e.clientY}},{model:s,onInvoke:a=>{const l=tt().find(c=>c.action.id===a);if(l){if(l.action.submenu===!0){Ld(a,n,i,r);return}if(typeof l.action.run=="function")try{l.action.run({action:{id:a,label:l.action.label},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:Sr})}catch(c){console.error(`[sh3] context-menu action "${a}" threw:`,c)}}},onClose:()=>i.close()})}function my(e){const t=h_(e);if(!t)return;const n=tt(),r=Ht();w_({target:e.target,shortcut:t,state:r,entries:n,runAction:Od,dispatch:Sr})&&e.preventDefault()}function Nd(){Nl||(Nl=!0,document.addEventListener("keydown",my),document.addEventListener("focusin",fy),document.addEventListener("focusout",vy),document.addEventListener("contextmenu",py))}function ko(e){const t=tt(),n=Ht(),r=Md({explicit:e.scope,state:n}),s=Pd(t,n,r);if(s.tiers.length===0)return;const i=Wn.popup.show(Td,{anchor:{x:e.x,y:e.y}},{model:s,onInvoke:a=>{const l=tt().find(c=>c.action.id===a);if(l){if(l.action.submenu===!0){Ld(a,n,i,r);return}if(typeof l.action.run=="function")try{l.action.run({action:{id:a,label:l.action.label},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:Sr})}catch(c){console.error(`[sh3] context-menu action "${a}" threw:`,c)}}},onClose:()=>i.close()})}const gy=20;let ka=[];function by(e){ka=[e,...ka.filter(t=>t!==e)].slice(0,gy)}function xi(e){const t=tt(),n=Ht(),r=dy(t,n,{filter:e?.filter}),s=Wn.modal.open(cy,{candidates:r,recency:ka,prefill:e?.prefill??"",onInvoke:i=>{const a=tt().find(l=>l.action.id===i);if(a){if(by(i),a.action.submenu===!0&&typeof a.action.run!="function"){s.close(),xi({filter:{submenuOf:i}});return}if(typeof a.action.run=="function")try{a.action.run({action:{id:i,label:a.action.label},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"palette",dispatch:Sr})}catch(l){console.error(`[sh3] palette action "${i}" threw:`,l)}}},onClose:()=>s.close()},{dismissOnBackdrop:!0})}const _y=Object.freeze(Object.defineProperty({__proto__:null,attachGlobalListeners:Nd,openContextMenu:ko,openPalette:xi},Symbol.toStringTag,{value:"Module"}));function yy(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=hs(s.action.scope,t,s.ownerShardId);if(!i)continue;r.add(s.action.id);const{shortcut:a,source:l}=m_(s.action,t.bindings,t.platform);n[gi(i)].push({id:s.action.id,label:s.action.label,effectiveShortcut:a,bindingSource:l,scope:i,scopeBadge:od(i),group:s.action.group,icon:s.action.icon,ownerShardId:s.ownerShardId,paletteItem:s.action.paletteItem!==!1,contextItem:s.action.contextItem!==!1})}return bi.flatMap(s=>n[s])}const wy={async rebind(e,t,n){await Tl(e,t,n),Ht().activeAppId===e&&Jr(await ar(e))},async resetBinding(e,t){await Tl(e,t,void 0),Ht().activeAppId===e&&Jr(await ar(e))},async bindingsFor(e){const t=await ar(e),n={};for(const[r,s]of Object.entries(t))s!==null&&(n[r]=s);return n},openContextMenu:ko,openPalette:xi,listActive(){return yy(tt(),Ht())},onActiveChange(e){const t=W_(e),n=d_(()=>{Y_()});return()=>{t(),n()}}},Wn={state:vi,modal:lo,popup:ga,toast:Xu,float:Lt,presets:yb,conflicts:i_,color:l_,actions:wy};function Gn(e,t,n){return`${e}/${t}/${n}`}function ky(e,t){return`${e}/${t}/`}const xy="sh3-documents",Rt="docs",Sy=2;class Ey{#e=null;#t(){return this.#e||(this.#e=new Promise((t,n)=>{const r=indexedDB.open(xy,Sy);r.onupgradeneeded=()=>{const s=r.result;s.objectStoreNames.contains(Rt)||s.createObjectStore(Rt)},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(Rt,t).objectStore(Rt),c=n(l);c.onsuccess=()=>s(c.result),c.onerror=()=>i(c.error)})}async read(t,n,r){const s=Gn(t,n,r),i=await this.#n("readonly",a=>a.get(s));return i?i.content:null}async write(t,n,r,s){const i=Gn(t,n,r),a=typeof s=="string"?new Blob([s]).size:s.byteLength,l={content:s,size:a,lastModified:Date.now()};await this.#n("readwrite",c=>c.put(l,i))}async delete(t,n,r){const s=Gn(t,n,r);await this.#n("readwrite",i=>i.delete(s))}async rename(t,n,r,s){const i=Gn(t,n,r),a=Gn(t,n,s),l=await this.#t();return new Promise((c,u)=>{let d=!1;const f=l.transaction(Rt,"readwrite"),h=f.objectStore(Rt),g=h.get(i);g.onsuccess=()=>{const S=g.result;if(!S){d=!0,f.abort(),u(new Error(`Document not found at ${r}`));return}const m=h.getKey(a);m.onsuccess=()=>{if(m.result!==void 0){d=!0,f.abort(),u(new Error(`Document already exists at ${s}`));return}const _={...S,lastModified:Date.now()};h.put(_,a),h.delete(i)},m.onerror=()=>u(m.error)},g.onerror=()=>u(g.error),f.oncomplete=()=>c(),f.onerror=()=>{d||u(f.error)},f.onabort=()=>{}})}async list(t,n){const r=ky(t,n),s=await this.#t();return new Promise((i,a)=>{const c=s.transaction(Rt,"readonly").objectStore(Rt),u=IDBKeyRange.bound(r,r+"",!1,!1),d=c.openCursor(u),f=[];d.onsuccess=()=>{const h=d.result;if(h){const g=h.value;f.push({path:h.key.slice(r.length),size:g.size,lastModified:g.lastModified}),h.continue()}else i(f)},d.onerror=()=>a(d.error)})}async exists(t,n,r){const s=Gn(t,n,r);return await this.#n("readonly",a=>a.getKey(s))!==void 0}async listAllShards(t){const n=`${t}/`,r=await this.#t();return new Promise((s,i)=>{const l=r.transaction(Rt,"readonly").objectStore(Rt),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),g=h.indexOf("/");g>=0&&d.add(h.slice(0,g)),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(Rt,"readonly").objectStore(Rt),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),g=h.indexOf("/");if(g>=0){const S=f.value;d.push({shardId:h.slice(0,g),path:h.slice(g+1),size:S.size,lastModified:S.lastModified})}f.continue()}else s(d)},u.onerror=()=>i(u.error)})}}class Ay{#e;#t;constructor(t,n){this.#e=t.replace(/\/$/,""),this.#t=n}async read(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}`,i=await fetch(s,{credentials:"include"});if(i.status===404)return null;if(!i.ok)throw new Error(`Document read failed: ${i.status}`);return(i.headers.get("content-type")??"").includes("application/octet-stream")?i.arrayBuffer():i.text()}async write(t,n,r,s){const i=`${this.#e}/api/docs/${t}/${n}/${r}`,a={...this.#n(),"Content-Type":typeof s=="string"?"text/plain":"application/octet-stream"},l=await fetch(i,{method:"PUT",headers:a,body:s,credentials:"include"});if(!l.ok)throw new Error(`Document write failed: ${l.status}`)}async delete(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}`,i=await fetch(s,{method:"DELETE",headers:this.#n(),credentials:"include"});if(!i.ok)throw new Error(`Document delete failed: ${i.status}`)}async list(t,n){const r=`${this.#e}/api/docs/${t}/${n}`,s=await fetch(r,{credentials:"include"});if(!s.ok)throw new Error(`Document list failed: ${s.status}`);return s.json()}async exists(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}`;return(await fetch(s,{method:"HEAD",credentials:"include"})).ok}async listAllShards(t){const n=`${this.#e}/api/docs/${t}/_shards`,r=await fetch(n,{credentials:"include"});if(!r.ok)throw new Error(`listAllShards failed: ${r.status}`);return r.json()}async listAllDocuments(t){const n=`${this.#e}/api/docs/${t}/_all`,r=await fetch(n,{credentials:"include"});if(!r.ok)throw new Error(`listAllDocuments failed: ${r.status}`);return r.json()}async readMeta(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}?meta=1`,i=await fetch(s,{credentials:"include"});if(!i.ok)throw new Error(`readMeta failed: ${i.status}`);const a=await i.json();return a.exists?a:null}async resolve(t,n,r,s){const i=`${this.#e}/api/docs/${t}/${n}/${r}/resolve`,a=typeof s=="string"?{choice:s}:{choice:s.origin},l=await fetch(i,{method:"POST",credentials:"include",headers:{...this.#n(),"Content-Type":"application/json"},body:JSON.stringify(a)});if(!l.ok)throw new Error(`resolve failed: ${l.status}`)}async readBranch(t,n,r,s){const i=`${this.#e}/api/docs/${t}/${n}/${r}/branch?origin=${encodeURIComponent(s)}`,a=await fetch(i,{credentials:"include"});if(a.status===404)return null;if(!a.ok)throw new Error(`readBranch failed: ${a.status}`);return a.text()}async rename(t,n,r,s){const i=`${this.#e}/api/docs/${t}/${n}/${r}/rename`,a={...this.#n(),"Content-Type":"application/json"},l=await fetch(i,{method:"POST",headers:a,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 Iy{#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 gn=new Iy,Cy=1e3;function Ty(e,t,n,r){const s=new Set,i=new Set;function a(u){return!r.extensions||r.extensions.length===0?!0:r.extensions.some(d=>u.endsWith(d))}function l(u,d){gn.emit({type:u,path:d,tenantId:e,shardId:t})}const c={async list(){const u=await n.list(e,t);return!r.extensions||r.extensions.length===0?u:u.filter(d=>a(d.path))},async read(u){const d=await n.read(e,t,u);return d===null?null:typeof d=="string"?d:new TextDecoder().decode(d)},async write(u,d){const f=await n.exists(e,t,u);await n.write(e,t,u,d),l(f?"update":"create",u)},async delete(u){const d=await n.exists(e,t,u);await n.delete(e,t,u),d&&l("delete",u)},async rename(u,d){if(!a(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),gn.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=gn.subscribe(f=>{f.tenantId===e&&f.shardId===t&&a(f.path)&&u(f)});return i.add(d),()=>{d(),i.delete(d)}},autosave(u,d){const f=new Ry(c,u,d?.debounceMs??Cy);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 Ry{#e;#t;#n;#i=null;#s=null;#a=!1;#r=!1;constructor(t,n,r){this.#e=t,this.#t=n,this.#n=r}get dirty(){return this.#a}get path(){return this.#t}update(t){this.#r||(this.#i=t,this.#a=!0,this.#o())}async flush(){if(this.#l(),this.#i!==null){const t=this.#i;this.#i=null,this.#a=!1,await this.#e.write(this.#t,t)}}async dispose(){this.#r||(this.#r=!0,await this.flush())}#o(){this.#l(),this.#s=setTimeout(()=>{this.#s=null,this.flush()},this.#n)}#l(){this.#s!==null&&(clearTimeout(this.#s),this.#s=null)}}const Dy="local";let jd=Dy,zd=new Ey;function Xi(){return jd}function jl(){return zd}function Ji(e){jd=e}function Py(e){zd=e}const My="sync:peer",Oy="sync:policy";let Er=V(null),nn=V(null),Ar=V(!1),Si="",xa=null;function zl(e,t){Si=e,xa=t.auth,x(Er,t.user,!0),x(nn,t.session,!0),x(Ar,!t.session&&!t.user,!0)}async function qd(e,t){try{const n=await fetch(`${Si}/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 x(Er,r.user,!0),x(nn,r.session,!0),x(Ar,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function Ly(e,t,n){try{const r=await fetch(`${Si}/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 x(Er,s.user,!0),x(nn,s.session,!0),x(Ar,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function Ny(){try{await fetch(`${Si}/api/auth/logout`,{method:"POST",credentials:"include"})}catch{}if(xa?.required&&!xa.guestAllowed){window.location.reload();return}x(Er,null),x(nn,null),x(Ar,!0)}function jy(){x(Er,{id:"local",username:"local",displayName:"Local Owner",role:"admin",createdAt:"",updatedAt:""},!0),x(nn,{token:"local",userId:"local",role:"admin",expiresAt:1/0},!0),x(Ar,!1)}function zy(){return o(nn)?.token==="local"}function vn(){return o(nn)?.role==="admin"}function Sa(){return o(nn)!==null}function Vd(){return o(Ar)}function Ei(){return o(Er)}function Ai(){return o(nn)?`Bearer ${o(nn).token}`:null}let Ir="";function Bd(e){Ir=e}async function qy(e){const t=await fetch(`${Ir}/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 Vy(e,t){if(!vn())throw new Error("Cannot update env state: not elevated to admin");const n=Ai(),r={"Content-Type":"application/json"};n&&(r.Authorization=n);const s=await fetch(`${Ir}/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 xo(e,t,n){if(!vn())throw new Error("Cannot install: not elevated to admin");const r=Ai(),s=new FormData;s.append("manifest",new Blob([JSON.stringify(e)],{type:"application/json"}),"manifest.json"),s.append("client",new Blob([t],{type:"application/javascript"}),"client.js"),n!==void 0&&s.append("server",new Blob([n],{type:"application/javascript"}),"server.js");const i={};r&&(i.Authorization=r);const a=await fetch(`${Ir}/api/packages/install`,{method:"POST",headers:i,body:s});if(!a.ok){let l={};try{l=await a.json()}catch{}return{ok:!1,error:typeof l.error=="string"?l.error:`HTTP ${a.status}`,code:typeof l.code=="string"?l.code:void 0,missing:Array.isArray(l.missing)?l.missing:void 0}}return{ok:!0}}async function Fd(e){if(!vn())throw new Error("Cannot uninstall: not elevated to admin");const t=Ai(),n={"Content-Type":"application/json"};t&&(n.Authorization=t);const r=await fetch(`${Ir}/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 By(){const e=await fetch(`${Ir}/api/packages`);return e.ok?await e.json():[]}function Fy(e){return Gt[e].list()}function Uy(e,t){return Gt[e].read(t)}function Hy(e,t){Gt[e].delete(t)}function Ky(e){for(const t of Gt[e].list())Gt[e].delete(t)}function Ud(){return{list:Fy,peek:Uy,clear:Hy,clearAll:Ky}}const Hd="documents:browse",Kd="documents:read",Wd="documents:write";function Wy(e,t,n={canRead:!1,canWrite:!1}){const r={listDocuments:()=>t.listAllDocuments(e),listShards:()=>t.listAllShards(e),watchDocuments:s=>gn.subscribe(i=>{i.tenantId===e&&s(i)})};return n.canRead&&(r.readFrom=(s,i)=>t.read(e,s,i),r.statusFrom=async(s,i)=>t.readMeta?t.readMeta(e,s,i):null,r.readBranchFrom=async(s,i,a)=>t.readBranch?t.readBranch(e,s,i,a):null),n.canWrite&&(r.writeTo=async(s,i,a)=>{const l=await t.exists(e,s,i);await t.write(e,s,i,a),gn.emit({type:l?"update":"create",path:i,tenantId:e,shardId:s})},r.resolveConflictFrom=async(s,i,a)=>{if(!t.resolve)throw new Error("Backend does not support resolveConflict");await t.resolve(e,s,i,a),gn.emit({type:"update",path:i,tenantId:e,shardId:s})},r.renameFrom=async(s,i,a,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,a),gn.emit({type:"rename",path:a,oldPath:i,tenantId:e,shardId:s})},r.deleteFrom=async(s,i)=>{const a=await t.exists(e,s,i);await t.delete(e,s,i),a&&gn.emit({type:"delete",path:i,tenantId:e,shardId:s})}),r}const Yd="keys:mint";class Gd extends Error{constructor(t){super(`Shard may not mint a key with scope '${t}' — not declared in manifest.`),this.name="ScopeEscalationError"}}class Xd extends Error{constructor(){super("User denied key creation."),this.name="ConsentDeniedError"}}const Ea=new Map;let qr=null;function Jd(e){return qr=e,()=>{qr===e&&(qr=null)}}async function Yy(e,t){if(!qr)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=>{Ea.set(n,{resolve:r}),qr({...t,shardId:e,requestId:n})})}function Aa(e,t){const n=Ea.get(e);n&&(Ea.delete(e),n.resolve(t))}const Xs=new Map,Os=new Map,Gy=5e3;function Xy(e,t){let n=Os.get(e);n||(n=new Set,Os.set(e,n)),n.add(t),setTimeout(()=>{n.delete(t),n.size===0&&Os.delete(e)},Gy)}function Jy(e,t){return Os.get(e)?.has(t)??!1}function So(e,t){const n=Xs.get(e)??new Set;return n.add(t),Xs.set(e,n),()=>{n.delete(t)}}function Zd(e,t){if(!e||Jy(e,t))return;Xy(e,t);const n=Xs.get(e);if(n)for(const s of n)s(t);const r=Xs.get("*");if(r)for(const s of r)s(t)}function Zy(){if(typeof EventSource>"u")return()=>{};const e=new EventSource("/api/keys/events",{withCredentials:!0});return e.onmessage=t=>{try{const n=JSON.parse(t.data);Zd(n.shardId,n.id)}catch{}},()=>e.close()}function Qy(e){const{shardId:t,shardPermissions:n}=e,r=s=>{for(const i of s)if(!n.includes(i)&&!n.includes("admin:*"))throw new Gd(i)};return{async mint(s){if(r(s.scopes),!await Yy(t,s))throw new Xd;const a=await fetch("/api/keys/consent",{method:"POST",credentials:"include",headers:{"content-type":"application/json"},body:JSON.stringify({shardId:t,...s})});if(!a.ok)throw new Error(`Consent ticket failed: ${a.status}`);const{ticket:l}=await a.json(),c=await fetch("/api/keys",{method:"POST",credentials:"include",headers:{"content-type":"application/json"},body:JSON.stringify({ticket:l})});if(!c.ok)throw new Error(`Mint failed: ${c.status}`);return c.json()},async list(){const s=await fetch("/api/keys",{credentials:"include"});if(!s.ok)throw new Error(`List failed: ${s.status}`);return(await s.json()).filter(a=>a.mintedByShardId===t)},async revoke(s){const i=await fetch(`/api/keys/${encodeURIComponent(s)}`,{method:"DELETE",credentials:"include"});if(!i.ok&&i.status!==404)throw new Error(`Revoke failed: ${i.status}`);Zd(t,s)}}}const rn=ve(new Map),or=new Map,mr=ve(new Map),Js=ve(new Map);function Eo(e){const t=e.manifest.id;rn.has(t)&&mr.has(t)&&Ii(t),rn.set(t,e),Js.delete(t)}async function Qd(e,t){const n=rn.get(e);if(!n)throw new Error(`Cannot activate shard "${e}": not registered`);if(or.has(e))return;const r={shard:n,ctx:void 0,viewIds:new Set,verbNames:new Set,cleanupFns:[]},s=ve({proxy:null,defaults:null}),i={register(l,c){const u=Qu(l,c);return r.cleanupFns.push(async()=>u()),u},list(l){return mi(l)},listPoints(){return wb()},onChange(l,c){const u=$u(l,c);return r.cleanupFns.push(async()=>u()),u}},a={state:l=>Wn.state(e,l),registerView:(l,c)=>{A_(l,c),r.viewIds.add(l)},registerVerb:l=>{const c=e==="shell"?l.name:`${e}:${l.name}`;I_(c,{...l,name:c}),r.verbNames.add(c)},documents:l=>{const c=Ty(Xi(),e,jl(),l);return r.cleanupFns.push(()=>c.dispose()),c},env(l){return s.proxy?(console.warn(`[sh3] Shard "${e}" called ctx.env() more than once; extra calls are ignored.`),s.proxy):(s.defaults=l,s.proxy={...l},s.proxy)},async envUpdate(l){if(!s.proxy||!s.defaults)throw new Error(`Shard "${e}" called envUpdate() without declaring env state`);const c=Bn(s.proxy);Object.assign(s.proxy,l);try{const u=Bn(s.proxy);await Vy(e,u)}catch(u){throw Object.assign(s.proxy,c),u}},get isAdmin(){return vn()},get tenantId(){return Xi()},zones:n.manifest.permissions?.includes(so)?Ud():void 0,browse:n.manifest.permissions?.includes(Hd)?Wy(Xi(),jl(),{canRead:n.manifest.permissions.includes(Kd),canWrite:n.manifest.permissions.includes(Wd)}):void 0,keys:n.manifest.permissions?.includes(Yd)?Qy({shardId:e,shardPermissions:n.manifest.permissions??[]}):void 0,contributions:i,actions:{register(l){const c=u_(l,e);return r.cleanupFns.push(async()=>c()),c},selection:x_(e),openContextMenu(l){ko(l)},openPalette(l){xi(l)}}};if(r.ctx=a,n.onKeyRevoked){const l=So(e,async c=>{try{await n.onKeyRevoked(c)}catch(u){console.error(`[sh3] onKeyRevoked failed in "${e}":`,u)}});r.cleanupFns.push(async()=>l())}or.set(e,r),mr.set(e,n);try{await n.activate(a);for(const l of n.manifest.views)if(!r.viewIds.has(l.id))throw new Error(`Shard "${e}" declared view "${l.id}" in its manifest but registered no factory for it.`);if(s.proxy&&s.defaults)try{const l=await qy(e),c=Object.assign({},s.defaults,l);Object.assign(s.proxy,c)}catch(l){console.warn(`[sh3] Failed to hydrate env state for shard "${e}":`,l instanceof Error?l.message:l)}}catch(l){for(const c of r.cleanupFns)try{c()}catch{}for(const c of r.verbNames)vd(c);for(const c of r.viewIds)fd(c);throw cd(e),or.delete(e),mr.delete(e),Js.set(e,{id:e,error:l,phase:t?.phase??"launch",timestamp:Date.now()}),console.error(`[sh3] Shard "${e}" failed to activate:`,l),l}Js.delete(e),n.autostart?.(a)}function Ii(e){const t=or.get(e);if(t){t.shard.deactivate?.();for(const n of t.cleanupFns)n();for(const n of t.verbNames)vd(n);for(const n of t.viewIds)fd(n);cd(e),or.delete(e),mr.delete(e)}}function $y(e){return or.get(e)?.ctx}function ql(){const e=[];for(const t of mr.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 $d=vi("__sh3core__:last-app",{user:{id:null}});function ew(){return $d.user.id}function Zr(e){$d.user.id=e}function tw(){Zr(null)}const Ia=new Map;function ws(e){let t=Ia.get(e);if(!t){const n=kn(e);t={state:r=>vi(`__app__:${e}`,r),zones:n?.manifest.permissions?.includes(so)?Ud():void 0},Ia.set(e,t)}return t}async function xn(e){const t=kn(e);if(!t)throw new Error(`Cannot launch app "${e}": not registered`);if(ft.id&&ft.id!==e)ef(ft.id);else if(ft.id===e){for(const n of t.manifest.requiredShards){const r=rn.get(n),s=$y(n);r&&s&&r.resume?.(s)}t.resume?.(ws(e)),Ol(),t.onAppReady?.(ws(e)),Zr(e),Kr.id=e,Ys(e,new Set(t.manifest.requiredShards??[])),ar(e).then(Jr);return}for(const n of t.manifest.requiredShards)if(!rn.has(n))throw new Error(`App "${e}" requires shard "${n}" which is not registered`);F_(t);try{for(const n of t.manifest.requiredShards)await Qd(n,{phase:"launch"})}catch(n){yd();try{Xu.notify(`Couldn't launch "${t.manifest.label??e}": ${n instanceof Error?n.message:String(n)}`,{level:"error",duration:6e3})}catch{}throw n}U_(),t.activate?.(ws(e)),ft.id=e,Ys(e,new Set(t.manifest.requiredShards??[])),ar(e).then(Jr),Ol(),t.onAppReady?.(ws(e)),Zr(e),Kr.id=e}function ef(e){if(ft.id!==e)return;const t=kn(e);if(t){t.deactivate?.(),wd(),yd();for(const n of t.manifest.requiredShards){const r=rn.get(n);r&&(r.autostart||Ii(n))}ft.id=null,Ys(null,new Set),S_(),Uu(),ar("sh3.home").then(Jr),Ia.delete(e)}}function Ao(e){wn.has(e)&&(ft.id===e&&(ef(e),Zr(null)),wn.delete(e))}async function Io(){const e=ft.id?kn(ft.id):null;if(e){for(const t of e.manifest.requiredShards){const n=rn.get(t);if(n?.suspend&&await n.suspend()===!1)return!1}if(e.suspend&&await e.suspend()===!1)return!1}return Uu(),wd(),Ys(null,new Set),Zr(null),!0}const nw="modulepreload",rw=function(e){return"/"+e},Vl={},Co=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),l=a?.nonce||a?.getAttribute("nonce");s=Promise.allSettled(n.map(c=>{if(c=rw(c),c in Vl)return;Vl[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":nw,u||(f.as="script"),f.crossOrigin="",f.href=c,l&&f.setAttribute("nonce",l),document.head.appendChild(f),u)return new Promise((h,g)=>{f.addEventListener("load",h),f.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${c}`)))})}))}function i(a){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=a,window.dispatchEvent(l),!l.defaultPrevented)throw a}return s.then(a=>{for(const l of a||[])l.status==="rejected"&&i(l.reason);return t().catch(i)})};function tf(){return{root:At(),source:kd()}}function sw(e){const t=At().docked,n=Ro(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 iw(e){const t=At();return Ti(t.docked,n=>n.slotId===e)?!0:nf(t,n=>n.slotId===e)}function Ci(e){const t=At();return Ti(t.docked,n=>n.viewId===e)?!0:nf(t,n=>n.viewId===e)}function Ti(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(Ti(n,t))return!0}return!1}function nf(e,t){for(const n of e.floats)if(Ti(n.content,t))return Lt.focus(n.id),!0;return!1}function aw(e,t){return rf(e,t,!0)}function ow(e,t){return rf(e,t,!1)}function rf(e,t,n){const r=At().docked,s=Xr(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 To(e){const t=At(),n=t.docked;if(!pr(n,e))return lw(t,e);const i=gd(e)?.closable;return!i||typeof i=="object"&&(!await i.canClose()||!pr(n,e))?!1:(_i(n,e),rr(n),!0)}async function lw(e,t){for(const n of e.floats){if(!pr(n.content,t))continue;const i=gd(t)?.closable;if(typeof i=="object"&&(!await i.canClose()||!pr(n.content,t)))return!1;_i(n.content,t);const a=n.content.type==="tabs"?n.content:null;return(!a||a.tabs.length===0)&&Lt.close(n.id),!0}return!1}function sf(e){const t=At(),n=pr(t.docked,e);if(!n)return null;const r=n.entry,s=r.viewId;if(!s)return null;const i=r.label,a=r.meta;return _i(t.docked,e),rr(t.docked),Lt.open(s,{title:i,meta:a})}function af(e){const n=At().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 Lt.close(e),!1;const i=s.tabs[s.activeTab??0]??s.tabs[0],a=Do({slotId:i.slotId,viewId:i.viewId,label:i.label,meta:i.meta});return a&&Lt.close(e),a}function Ro(e){if(e.type==="tabs")return e;if(e.type==="split")for(const t of e.children){const n=Ro(t);if(n)return n}return null}function of(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=of(e.children[n],[...t,n]);if(r)return r}return null}function Do(e){const t=At().docked;if(Ci(e.viewId??""))return!0;const n=Ro(t);if(n)return n.tabs.push(e),n.activeTab=n.tabs.length-1,!0;const r=of(t);return r?(hd(t,r,e,"right"),!0):!1}function lf(e){return go(At(),e)}class vt extends Error{constructor(t,n){super(`Registry validation error at ${t}: ${n}`),this.name="RegistryValidationError",this.path=t}}function cf(e){if(!e||typeof e!="object"||Array.isArray(e))throw new vt("$","expected an object");const t=e;if(t.version!==1)throw new vt("$.version",`expected 1, got ${JSON.stringify(t.version)}`);if(!Array.isArray(t.packages))throw new vt("$.packages","expected an array");return{version:1,packages:t.packages.map((r,s)=>cw(r,`$.packages[${s}]`))}}function cw(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new vt(t,"expected an object");const n=e;qt(n,"id",t),fw(n,"type",["shard","app","combo"],t),qt(n,"label",t),qt(n,"description",t);const r=`${t}.author`;if(!n.author||typeof n.author!="object"||Array.isArray(n.author))throw new vt(r,"expected an object");const s=n.author;if(typeof s.name!="string"||s.name.length===0)throw new vt(`${r}.name`,"expected a non-empty string");if(!Array.isArray(n.versions)||n.versions.length===0)throw new vt(`${t}.versions`,"expected a non-empty array");const i=n.versions.map((a,l)=>uw(a,`${t}.versions[${l}]`));return{id:n.id,type:n.type,label:n.label,description:n.description,author:{name:s.name},icon:typeof n.icon=="string"?n.icon:void 0,versions:i}}function uw(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new vt(t,"expected an object");const n=e;qt(n,"version",t),qt(n,"contractVersion",t);const r="bundleUrl"in n&&n.bundleUrl!==void 0,s="integrity"in n&&n.integrity!==void 0;if(r&&qt(n,"bundleUrl",t),s&&qt(n,"integrity",t),r!==s)throw new vt(t,"bundleUrl and integrity must be provided together");const i="serverBundleUrl"in n&&n.serverBundleUrl!==void 0;if(i&&qt(n,"serverBundleUrl",t),"serverIntegrity"in n&&n.serverIntegrity!==void 0&&qt(n,"serverIntegrity",t),!r&&!i)throw new vt(t,"expected at least one of bundleUrl+integrity or serverBundleUrl");let a;if(n.requires!==void 0){if(!Array.isArray(n.requires))throw new vt(`${t}.requires`,"expected an array");a=n.requires.map((l,c)=>dw(l,`${t}.requires[${c}]`))}return{version:n.version,contractVersion:n.contractVersion,bundleUrl:typeof n.bundleUrl=="string"?n.bundleUrl:void 0,integrity:typeof n.integrity=="string"?n.integrity:void 0,serverBundleUrl:typeof n.serverBundleUrl=="string"?n.serverBundleUrl:void 0,serverIntegrity:typeof n.serverIntegrity=="string"?n.serverIntegrity:void 0,requires:a}}function dw(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new vt(t,"expected an object");const n=e;return qt(n,"id",t),qt(n,"versionRange",t),{id:n.id,versionRange:n.versionRange}}function qt(e,t,n){const r=e[t];if(typeof r!="string"||r.length===0)throw new vt(`${n}.${t}`,"expected a non-empty string")}function fw(e,t,n,r){if(!n.includes(e[t]))throw new vt(`${r}.${t}`,`expected one of: ${n.join(", ")}`)}const Bl=["sha256","sha384","sha512"];function vw(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(!Bl.includes(n))throw new Error(`Unsupported SRI algorithm: ${n}. Supported: ${Bl.join(", ")}`);if(!r)throw new Error(`Empty hash in SRI: ${e}`);return{algorithm:n,hash:r}}function hw(e){return`SHA-${e.slice(3)}`}function pw(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 Po(e,t){const{algorithm:n,hash:r}=vw(t),s=hw(n),i=await crypto.subtle.digest(s,e),a=pw(i);if(a!==r)throw new Error(`Integrity check failed for ${n}. Expected: ${r}, got: ${a}`)}async function uf(e){const t=new Set,n=[];for(const r of e){let s;try{const a=await fetch(r);if(!a.ok){console.warn(`[sh3] Registry fetch failed for ${r}: HTTP ${a.status}`);continue}s=await a.json()}catch(a){console.warn(`[sh3] Registry ${r}: ${a instanceof Error?a.message:String(a)}`);continue}let i;try{i=cf(s)}catch(a){console.warn(`[sh3] Registry ${r} failed validation: ${a instanceof Error?a.message:String(a)}`);continue}for(const a of i.packages)t.has(a.id)||(t.add(a.id),n.push({entry:a,latest:a.versions[0],sourceRegistry:r}))}return n}async function Ri(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 Po(s,e.integrity),s}async function Mo(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 Po(s,e.serverIntegrity):console.warn(`[sh3] Server bundle at ${n} has no serverIntegrity declared — skipping SRI check. This will become an error once the formal registry spec (ADR-015) lands.`),s}function Di(e,t){return{id:e.entry.id,type:e.entry.type,version:t.version,contractVersion:t.contractVersion,sourceRegistry:e.sourceRegistry,integrity:t.integrity,requires:t.requires,hasServerBundle:!!t.serverBundleUrl,serverIntegrity:t.serverIntegrity}}const Cn="0.13.1",Oo="sh3:user:__sh3core__:theme";let Qr=[];function mw(e){const t=Object.keys(e);for(const n of Qr)t.includes(n)||document.documentElement.style.removeProperty(`--${n}`);for(const[n,r]of Object.entries(e))document.documentElement.style.setProperty(`--${n}`,r);Qr=t;try{localStorage.setItem(Oo,JSON.stringify(e))}catch{}}function gw(){for(const e of Qr)document.documentElement.style.removeProperty(`--${e}`);Qr=[];try{localStorage.removeItem(Oo)}catch{}}function df(){try{const e=localStorage.getItem(Oo);if(!e)return{};const t=JSON.parse(e);return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{}}catch{return{}}}function bw(){const e=df();if(Object.keys(e).length!==0){for(const[t,n]of Object.entries(e))document.documentElement.style.setProperty(`--${t}`,n);Qr=Object.keys(e)}}const Ca="/assets/icons-2eVU8BA9.svg",ff=Symbol("sh3.icon-sprite");function _w(e){ja(ff,e)}function vf(){return Na(ff)}var yw=_u('<svg class="sh3-btn__icon svelte-t4hi97" aria-hidden="true"><use></use></svg>'),ww=T('<span class="sh3-btn__label svelte-t4hi97"><!></span>'),kw=T("<button><!> <!></button>");function xw(e,t){te(t,!0);let n=Q(t,"variant",3,"default"),r=Q(t,"disabled",3,!1),s=Q(t,"type",3,"button");const i=vf();function a(m){return m.includes("/")||m.endsWith(".svg")}const l=H(()=>t.icon?a(t.icon)?t.icon:`${t.sprite??i??Ca}#${t.icon}`:void 0),c=H(()=>n()==="icon"||!!t.icon&&!t.children);var u=kw();let d;var f=p(u);{var h=m=>{var _=yw(),k=p(_);v(_),z(()=>$(k,"href",o(l))),E(m,_)};F(f,m=>{o(l)&&m(h)})}var g=A(f,2);{var S=m=>{var _=ww(),k=p(_);un(k,()=>t.children),v(_),E(m,_)};F(g,m=>{t.children&&m(S)})}v(u),z(()=>{$(u,"type",s()),d=le(u,1,`sh3-btn sh3-btn--${n()??""}`,"svelte-t4hi97",d,{"sh3-btn--icon-only":o(c)}),u.disabled=r(),$(u,"title",t.title),$(u,"aria-label",t.ariaLabel??(o(c)?t.title:void 0))}),U("click",u,function(...m){t.onclick?.apply(this,m)}),E(e,u),ne()}ce(["click"]);var Sw=T('<span aria-hidden="true">*</span>'),Ew=T('<span class="sh3-field__label svelte-m4dkl"> <!></span>'),Aw=T('<span class="sh3-field__affix svelte-m4dkl"><!></span>'),Iw=T('<span class="sh3-field__affix svelte-m4dkl"><!></span>'),Cw=T("<span> </span>"),Tw=T('<label><!> <span class="sh3-field__row svelte-m4dkl"><!> <input class="sh3-field__input svelte-m4dkl"/> <!></span> <!></label>');function Rw(e,t){te(t,!0);let n=Q(t,"value",15,""),r=Q(t,"type",3,"text"),s=Q(t,"disabled",3,!1),i=Q(t,"invalid",3,!1),a=Q(t,"size",3,"md"),l=Q(t,"required",3,!1);const c=H(()=>i()&&!!t.error),u=H(()=>o(c)?t.error:t.helper);var d=Tw();let f;var h=p(d);{var g=I=>{var w=Ew(),D=p(w,!0),C=A(D);{var M=P=>{var O=Sw();E(P,O)};F(C,P=>{l()&&P(M)})}v(w),z(()=>N(D,t.label)),E(I,w)};F(h,I=>{t.label&&I(g)})}var S=A(h,2),m=p(S);{var _=I=>{var w=Aw(),D=p(w);un(D,()=>t.prefix),v(w),E(I,w)};F(m,I=>{t.prefix&&I(_)})}var k=A(m,2);we(k);var y=A(k,2);{var b=I=>{var w=Iw(),D=p(w);un(D,()=>t.suffix),v(w),E(I,w)};F(y,I=>{t.suffix&&I(b)})}v(S);var R=A(S,2);{var L=I=>{var w=Cw();let D;var C=p(w,!0);v(w),z(()=>{D=le(w,1,"sh3-field__helper svelte-m4dkl",null,D,{"sh3-field__helper--error":o(c)}),N(C,o(u))}),E(I,w)};F(R,I=>{o(u)&&I(L)})}v(d),z(()=>{f=le(d,1,"sh3-field svelte-m4dkl",null,f,{"sh3-field--invalid":i(),"sh3-field--sm":a()==="sm"}),$(k,"type",r()),$(k,"placeholder",t.placeholder),k.disabled=s(),k.required=l(),$(k,"autocomplete",t.autocomplete),$(k,"aria-invalid",i()||void 0)}),Le("blur",k,()=>t.onchange?.(n())),Ce(k,n),E(e,d),ne()}var Dw=T('<span aria-hidden="true">*</span>'),Pw=T('<span class="sh3-textarea__label svelte-668c6r"> <!></span>'),Mw=T("<span> </span>"),Ow=T('<label><!> <textarea class="sh3-textarea__input svelte-668c6r"></textarea> <!></label>');function Lw(e,t){te(t,!0);let n=Q(t,"value",15,""),r=Q(t,"disabled",3,!1),s=Q(t,"invalid",3,!1),i=Q(t,"size",3,"md"),a=Q(t,"required",3,!1),l=Q(t,"rows",3,3),c=Q(t,"resize",3,"vertical");const u=H(()=>s()&&!!t.error),d=H(()=>o(u)?t.error:t.helper);var f=Ow();let h;var g=p(f);{var S=b=>{var R=Pw(),L=p(R,!0),I=A(L);{var w=D=>{var C=Dw();E(D,C)};F(I,D=>{a()&&D(w)})}v(R),z(()=>N(L,t.label)),E(b,R)};F(g,b=>{t.label&&b(S)})}var m=A(g,2);Qc(m);let _;var k=A(m,2);{var y=b=>{var R=Mw();let L;var I=p(R,!0);v(R),z(()=>{L=le(R,1,"sh3-textarea__helper svelte-668c6r",null,L,{"sh3-textarea__helper--error":o(u)}),N(I,o(d))}),E(b,R)};F(k,b=>{o(d)&&b(y)})}v(f),z(()=>{h=le(f,1,"sh3-textarea svelte-668c6r",null,h,{"sh3-textarea--invalid":s(),"sh3-textarea--sm":i()==="sm"}),$(m,"placeholder",t.placeholder),m.disabled=r(),m.required=a(),$(m,"rows",l()),$(m,"aria-invalid",s()||void 0),_=et(m,"",_,{resize:c()})}),Le("blur",m,()=>t.onchange?.(n())),Ce(m,n),E(e,f),ne()}function Nw(e,t,n){let r=e;return t!==void 0&&r<t&&(r=t),n!==void 0&&r>n&&(r=n),r}function jw(e,t){const n=t.min??0,r=Math.round((e-n)/t.step);return n+r*t.step}function zw(e,t){return t===void 0?String(e):e.toFixed(t)}var qw=T('<span class="sh3-num__label svelte-1qa0x3m"> </span>'),Vw=T('<span class="sh3-num__affix svelte-1qa0x3m"><!></span>'),Bw=T('<span class="sh3-num__affix svelte-1qa0x3m"><!></span>'),Fw=T('<label><!> <span class="sh3-num__row svelte-1qa0x3m"><!> <input class="sh3-num__input svelte-1qa0x3m" type="number"/> <!> <span class="sh3-num__steppers svelte-1qa0x3m"><button type="button" aria-label="Increase" class="svelte-1qa0x3m">▲</button> <button type="button" aria-label="Decrease" class="svelte-1qa0x3m">▼</button></span></span></label>');function Uw(e,t){te(t,!0);let n=Q(t,"value",15,0),r=Q(t,"step",3,1),s=Q(t,"disabled",3,!1),i=Q(t,"invalid",3,!1),a=Q(t,"size",3,"md");const l=H(()=>zw(n(),t.precision));function c(O){Number.isNaN(O)||n(Nw(jw(O,{min:t.min,step:r()}),t.min,t.max))}function u(O){c(n()+O*r())}let d=null,f=null,h=!1;function g(O){s()||(h=!0,u(O),d=setTimeout(()=>{let q=0;f=setInterval(()=>{u(O),q+=60,q>1500&&f&&(clearInterval(f),f=setInterval(()=>u(O),20))},60)},350))}function S(){d&&(clearTimeout(d),d=null),f&&(clearInterval(f),f=null),h&&(h=!1,t.onchange?.(n()))}var m=Fw();let _;var k=p(m);{var y=O=>{var q=qw(),j=p(q,!0);v(q),z(()=>N(j,t.label)),E(O,q)};F(k,O=>{t.label&&O(y)})}var b=A(k,2),R=p(b);{var L=O=>{var q=Vw(),j=p(q);un(j,()=>t.prefix),v(q),E(O,q)};F(R,O=>{t.prefix&&O(L)})}var I=A(R,2);we(I);var w=A(I,2);{var D=O=>{var q=Bw(),j=p(q);un(j,()=>t.suffix),v(q),E(O,q)};F(w,O=>{t.suffix&&O(D)})}var C=A(w,2),M=p(C),P=A(M,2);v(C),v(b),v(m),z(()=>{_=le(m,1,"sh3-num svelte-1qa0x3m",null,_,{"sh3-num--invalid":i(),"sh3-num--sm":a()==="sm"}),$(I,"min",t.min),$(I,"max",t.max),$(I,"step",r()),I.disabled=s(),$(I,"aria-invalid",i()||void 0),Hr(I,o(l)),M.disabled=s(),P.disabled=s()}),U("input",I,O=>c(parseFloat(O.currentTarget.value))),Le("blur",I,()=>t.onchange?.(n())),U("pointerdown",M,()=>g(1)),U("pointerup",M,S),Le("pointerleave",M,S),U("pointerdown",P,()=>g(-1)),U("pointerup",P,S),Le("pointerleave",P,S),E(e,m),ne()}ce(["input","pointerdown","pointerup"]);function Pi(e){return e.filter(t=>!t.disabled)}function Hw(e,t){const n=Pi(e);if(n.length===0)return t;const r=n.findIndex(i=>i.value===t);return n[(r+1+n.length)%n.length].value}function Kw(e,t){const n=Pi(e);if(n.length===0)return t;const r=n.findIndex(i=>i.value===t);return n[(r-1+n.length)%n.length].value}function Ww(e){return Pi(e)[0]?.value}function Yw(e){const t=Pi(e);return t[t.length-1]?.value}var Gw=T('<button type="button" role="radio"> </button>'),Xw=T('<div role="radiogroup" tabindex="-1"></div>');function Jw(e,t){te(t,!0);let n=Q(t,"value",15),r=Q(t,"size",3,"md"),s=Q(t,"disabled",3,!1);function i(u){n(u),t.onchange?.(u)}function a(u){if(s())return;let d;switch(u.key){case"ArrowRight":case"ArrowDown":d=Hw(t.options,n());break;case"ArrowLeft":case"ArrowUp":d=Kw(t.options,n());break;case"Home":d=Ww(t.options);break;case"End":d=Yw(t.options);break;default:return}u.preventDefault(),d!==void 0&&i(d)}var l=Xw();let c;fe(l,21,()=>t.options,jt,(u,d)=>{var f=Gw();let h;var g=p(f,!0);v(f),z(()=>{$(f,"aria-checked",n()===o(d).value),$(f,"tabindex",n()===o(d).value?0:-1),f.disabled=s()||o(d).disabled,h=le(f,1,"svelte-17xsko9",null,h,{"sh3-seg__btn--active":n()===o(d).value}),N(g,o(d).label)}),U("click",f,()=>{!o(d).disabled&&!s()&&i(o(d).value)}),E(u,f)}),v(l),z(()=>c=le(l,1,"sh3-seg svelte-17xsko9",null,c,{"sh3-seg--sm":r()==="sm"})),U("keydown",l,a),E(e,l),ne()}ce(["keydown","click"]);function Zw(e,t){return e===t?"":t}function Qw(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var $w=T('<button type="button"><!></button>'),e1=T('<div role="group"></div>');function t1(e,t){te(t,!0);let n=Q(t,"value",15),r=Q(t,"multiple",3,!1),s=Q(t,"disabled",3,!1),i=Q(t,"size",3,"md");function a(d){return r()&&Array.isArray(n())?n().includes(d):n()===d}function l(d){if(!s()){if(r()){const f=Array.isArray(n())?n():[];n(Qw(f,d))}else n(Zw(typeof n()=="string"?n():"",d));t.onchange?.(n())}}var c=e1();let u;fe(c,21,()=>t.options,jt,(d,f)=>{var h=$w();let g;var S=p(h);un(S,()=>o(f).icon),v(h),z((m,_)=>{$(h,"title",o(f).tooltip),$(h,"aria-label",o(f).tooltip),$(h,"aria-pressed",m),h.disabled=s(),g=le(h,1,"svelte-13knxr5",null,g,_)},[()=>a(o(f).value),()=>({"sh3-itg__btn--active":a(o(f).value)})]),U("click",h,()=>l(o(f).value)),E(d,h)}),v(c),z(()=>u=le(c,1,"sh3-itg svelte-13knxr5",null,u,{"sh3-itg--sm":i()==="sm"})),E(e,c),ne()}ce(["click"]);function Zs(e,t,n){return n===t?0:(e-t)/(n-t)*100}var n1=T('<span class="sh3-slider__tick svelte-13va6lu"></span>'),r1=T('<output class="sh3-slider__value svelte-13va6lu"> </output>'),s1=T('<div><div class="sh3-slider__track svelte-13va6lu"><div class="sh3-slider__fill svelte-13va6lu"></div> <!></div> <input type="range" class="sh3-slider__native svelte-13va6lu"/> <!></div>');function hf(e,t){te(t,!0);let n=Q(t,"value",15,0),r=Q(t,"min",3,0),s=Q(t,"max",3,100),i=Q(t,"step",3,1),a=Q(t,"showValue",3,!1),l=Q(t,"disabled",3,!1),c=Q(t,"invalid",3,!1),u=Q(t,"size",3,"md"),d=Q(t,"orientation",3,"horizontal");const f=H(()=>Zs(n(),r(),s()));var h=s1();let g;var S=p(h),m=p(S);let _;var k=A(m,2);{var y=I=>{var w=it(),D=he(w);fe(D,17,()=>t.ticks,jt,(C,M)=>{var P=n1();let O;z(q=>O=et(P,"",O,q),[()=>({"--tick-pct":`${Zs(o(M),r(),s())??""}%`})]),E(C,P)}),E(I,w)};F(k,I=>{t.ticks&&I(y)})}v(S);var b=A(S,2);we(b);var R=A(b,2);{var L=I=>{var w=r1();let D;var C=p(w,!0);v(w),z(()=>{D=et(w,"",D,{"--pct":`${o(f)??""}%`}),N(C,n())}),E(I,w)};F(R,I=>{a()&&I(L)})}v(h),z(()=>{g=le(h,1,`sh3-slider sh3-slider--${d()??""}`,"svelte-13va6lu",g,{"sh3-slider--sm":u()==="sm","sh3-slider--invalid":c()}),_=et(m,"",_,{"--pct":`${o(f)??""}%`}),$(b,"min",r()),$(b,"max",s()),$(b,"step",i()),b.disabled=l(),$(b,"aria-invalid",c()||void 0)}),U("change",b,()=>t.onchange?.(n())),Ce(b,n),E(e,h),ne()}ce(["change"]);function Fl(e,t,n){const[r,s]=e;return t==="low"?[Math.min(n,s),s]:[r,Math.max(n,r)]}var i1=T('<div><div class="sh3-range__track svelte-rdbrc5"><div class="sh3-range__fill svelte-rdbrc5"></div></div> <input type="range" class="sh3-range__native sh3-range__native--low svelte-rdbrc5"/> <input type="range" class="sh3-range__native sh3-range__native--high svelte-rdbrc5"/></div>');function a1(e,t){te(t,!0);let n=Q(t,"value",31,()=>ve([0,100])),r=Q(t,"min",3,0),s=Q(t,"max",3,100),i=Q(t,"step",3,1),a=Q(t,"disabled",3,!1),l=Q(t,"invalid",3,!1),c=Q(t,"size",3,"md");const u=H(()=>Zs(n()[0],r(),s())),d=H(()=>Zs(n()[1],r(),s()));function f(R){n(Fl(n(),"low",R))}function h(R){n(Fl(n(),"high",R))}var g=i1();let S;var m=p(g),_=p(m);let k;v(m);var y=A(m,2);we(y);var b=A(y,2);we(b),v(g),z(()=>{S=le(g,1,"sh3-range svelte-rdbrc5",null,S,{"sh3-range--sm":c()==="sm","sh3-range--invalid":l()}),k=et(_,"",k,{"--lo":`${o(u)??""}%`,"--hi":`${o(d)??""}%`}),$(y,"min",r()),$(y,"max",s()),$(y,"step",i()),y.disabled=a(),Hr(y,n()[0]),$(b,"min",r()),$(b,"max",s()),$(b,"step",i()),b.disabled=a(),Hr(b,n()[1])}),U("input",y,R=>f(parseFloat(R.currentTarget.value))),U("change",y,()=>t.onchange?.(n())),U("input",b,R=>h(parseFloat(R.currentTarget.value))),U("change",b,()=>t.onchange?.(n())),E(e,g),ne()}ce(["input","change"]);var o1=T('<div class="sh3-sg__channel svelte-1lqyi0d"><span class="sh3-sg__label svelte-1lqyi0d"> </span> <!></div>'),l1=T("<div></div>");function c1(e,t){te(t,!0);let n=Q(t,"orientation",3,"horizontal"),r=Q(t,"values",31,()=>ve({})),s=Q(t,"showValues",3,!1),i=Q(t,"disabled",3,!1),a=Q(t,"size",3,"md");var l=l1();fe(l,21,()=>t.channels,c=>c.id,(c,u)=>{var d=o1(),f=p(d),h=p(f,!0);v(f);var g=A(f,2),S=()=>r()[o(u).id]??0,m=_=>r({...r(),[o(u).id]:_});{let _=H(()=>o(u).min??0),k=H(()=>o(u).max??100),y=H(()=>o(u).step??1);hf(g,{get orientation(){return n()},get min(){return o(_)},get max(){return o(k)},get step(){return o(y)},get disabled(){return i()},get size(){return a()},get showValue(){return s()},get value(){return S()},set value(b){m(b)},onchange:()=>t.onchange?.(r())})}v(d),z(()=>N(h,o(u).label)),E(c,d)}),v(l),z(()=>le(l,1,`sh3-sg sh3-sg--${n()??""}`,"svelte-1lqyi0d")),E(e,l),ne()}var u1=T('<span class="sh3-swatch__label svelte-6ri2j2"> </span>'),d1=T('<label><!> <button type="button" class="sh3-swatch__btn svelte-6ri2j2"><span class="sh3-swatch__dot svelte-6ri2j2"></span><span class="sh3-swatch__hex svelte-6ri2j2"> </span></button></label>');function f1(e,t){te(t,!0);let n=Q(t,"value",15,"#000000"),r=Q(t,"disabled",3,!1),s=Q(t,"size",3,"md"),i;async function a(){if(r())return;const m=await Wn.color.pick({initial:n(),anchor:i});m!=null&&n(m)}var l=d1();let c;var u=p(l);{var d=m=>{var _=u1(),k=p(_,!0);v(_),z(()=>N(k,t.label)),E(m,_)};F(u,m=>{t.label&&m(d)})}var f=A(u,2);let h;var g=A(p(f)),S=p(g,!0);v(g),v(f),ze(f,m=>i=m,()=>i),v(l),z(()=>{c=le(l,1,"sh3-swatch svelte-6ri2j2",null,c,{"sh3-swatch--sm":s()==="sm"}),f.disabled=r(),$(f,"aria-label",`${t.label??"Color"??""} (current ${n()??""})`),h=et(f,"",h,{"--swatch-color":n()}),N(S,n())}),U("click",f,a),E(e,l),ne()}ce(["click"]);function v1(e,t){return!e||e.length===0?t?[]:null:t?Array.from(e):e[0]}function h1(e){return e===null?"":Array.isArray(e)?e.length===0?"":e.length===1?e[0].name:`${e.length} files`:e.name}var p1=T('<label><input class="sh3-fp__native svelte-24jk95" type="file"/> <span class="sh3-fp__btn svelte-24jk95" tabindex="-1"> </span> <span class="sh3-fp__name svelte-24jk95"> </span></label>');function m1(e,t){te(t,!0);let n=Q(t,"value",15,null),r=Q(t,"multiple",3,!1),s=Q(t,"disabled",3,!1),i=Q(t,"invalid",3,!1),a=Q(t,"size",3,"md"),l=Q(t,"buttonLabel",3,"Choose file...");function c(k){const y=k.currentTarget;n(v1(y.files,r())),t.onchange?.(n())}const u=H(()=>h1(n()));var d=p1();let f;var h=p(d),g=A(h,2),S=p(g,!0);v(g);var m=A(g,2),_=p(m,!0);v(m),v(d),z(()=>{f=le(d,1,"sh3-fp svelte-24jk95",null,f,{"sh3-fp--sm":a()==="sm","sh3-fp--invalid":i()}),$(h,"accept",t.accept),h.multiple=r(),h.disabled=s(),N(S,l()),N(_,o(u)||"no file")}),U("change",h,c),E(e,d),ne()}ce(["change"]);const g1=8;function b1(e){return e.length>=g1}function _1(e,t){if(!t)return e.slice();const n=t.toLowerCase();return e.filter(r=>r.label.toLowerCase().includes(n))}function y1(e,t,n){if(!t)return-1;const r=t.toLowerCase(),s=e.length;for(let i=1;i<=s;i++){const a=(n+i)%s;if(!e[a].disabled&&e[a].label.toLowerCase().startsWith(r))return a}return-1}function w1(e,t,n){return n&&Array.isArray(t)?t.map(r=>e.find(s=>s.value===r)?.label??"").filter(Boolean).join(", "):typeof t=="string"&&t?e.find(r=>r.value===t)?.label??"":""}function k1(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var x1=T('<input class="sh3-listbox__search svelte-1tyxvrs" type="search" placeholder="Filter…"/>'),S1=T('<span aria-hidden="true"></span>'),E1=T('<div role="option" tabindex="-1"><!> <span class="sh3-listbox__label"> </span></div>'),A1=T('<div class="sh3-listbox__empty svelte-1tyxvrs">No matches</div>'),I1=T('<div class="sh3-listbox svelte-1tyxvrs" role="listbox" tabindex="-1"><!> <div class="sh3-listbox__list svelte-1tyxvrs"><!> <!></div></div>');function C1(e,t){te(t,!0);const n=H(()=>t.getValue());function r(){t.onClose?.(),t.close()}const s=H(()=>b1(t.options));function i(){if(t.multiple)return 0;const D=typeof o(n)=="string"?o(n):"",C=t.options.findIndex(M=>M.value===D&&!M.disabled);return C>=0?C:0}let a=V(""),l=V(ve(i())),c=V(void 0),u=V(void 0),d="",f=null;const h=H(()=>_1(t.options,o(a)));Ae(()=>{o(l)>=o(h).length&&x(l,0),g()});async function g(){if(await cs(),!o(c))return;o(c).querySelector(`[data-idx="${o(l)}"]`)?.scrollIntoView({block:"nearest"})}function S(D){return t.multiple&&Array.isArray(o(n))?o(n).includes(D.value):o(n)===D.value}function m(D){const C=o(h)[D];!C||C.disabled||(t.onSelect(C.value),t.multiple||r())}function _(D){if(o(h).length!==0)switch(D.key){case"ArrowDown":D.preventDefault(),x(l,(o(l)+1)%o(h).length);break;case"ArrowUp":D.preventDefault(),x(l,(o(l)-1+o(h).length)%o(h).length);break;case"Home":D.preventDefault(),x(l,0);break;case"End":D.preventDefault(),x(l,o(h).length-1);break;case"Enter":D.preventDefault(),m(o(l));break;case" ":case"Space":D.preventDefault(),m(o(l));break;case"Escape":D.preventDefault(),r();break;default:if(o(s)&&document.activeElement===o(u)||D.key.length!==1||D.metaKey||D.ctrlKey||D.altKey)return;d+=D.key,f&&clearTimeout(f),f=setTimeout(()=>{d=""},500);const C=y1(o(h),d,o(l));C>=0&&x(l,C,!0)}}var k=I1(),y=p(k);{var b=D=>{var C=x1();we(C),ze(C,M=>x(u,M),()=>o(u)),Ce(C,()=>o(a),M=>x(a,M)),E(D,C)};F(y,D=>{o(s)&&D(b)})}var R=A(y,2),L=p(R);fe(L,17,()=>o(h),jt,(D,C,M)=>{var P=E1();$(P,"data-idx",M);let O;var q=p(P);{var j=W=>{var ee=S1();let Z;z(se=>Z=le(ee,1,"sh3-listbox__check svelte-1tyxvrs",null,Z,se),[()=>({"sh3-listbox__check--on":S(o(C))})]),E(W,ee)};F(q,W=>{t.multiple&&W(j)})}var B=A(q,2),G=p(B,!0);v(B),v(P),z((W,ee)=>{$(P,"aria-selected",W),$(P,"aria-disabled",o(C).disabled),O=le(P,1,"svelte-1tyxvrs",null,O,ee),N(G,o(C).label)},[()=>S(o(C)),()=>({"sh3-listbox__opt--active":M===o(l),"sh3-listbox__opt--selected":S(o(C))})]),U("click",P,()=>m(M)),Le("mouseenter",P,()=>x(l,M,!0)),E(D,P)});var I=A(L,2);{var w=D=>{var C=A1();E(D,C)};F(I,D=>{o(h).length===0&&D(w)})}v(R),ze(R,D=>x(c,D),()=>o(c)),v(k),z(()=>$(k,"aria-multiselectable",t.multiple)),U("keydown",k,_),E(e,k),ne()}ce(["keydown","click"]);var T1=T('<span class="sh3-select__label svelte-1q3zxph"> </span>'),R1=T("<option> </option>"),D1=T('<label><!> <button type="button" class="sh3-select__btn svelte-1q3zxph" aria-haspopup="listbox"><span> </span> <span class="sh3-select__chevron svelte-1q3zxph" aria-hidden="true">▾</span></button> <select class="sh3-select__native svelte-1q3zxph" aria-hidden="true"></select></label>');function P1(e,t){te(t,!0);let n=Q(t,"value",15,""),r=Q(t,"multiple",3,!1),s=Q(t,"placeholder",3,"Select…"),i=Q(t,"disabled",3,!1),a=Q(t,"invalid",3,!1),l=Q(t,"size",3,"md"),c=V(void 0),u=V(void 0),d=V(!1);const f=H(()=>w1(t.options,n(),r()));function h(){x(d,!1),o(c)?.focus()}async function g(){if(i()||o(d)||!o(c))return;x(d,!0);const C=Wn.popup.show(C1,{anchor:o(c)},{options:t.options,getValue:()=>n(),multiple:r(),onSelect:O=>{if(r()){const q=Array.isArray(n())?n():[];n(k1(q,O))}else n(O);t.onchange?.(n())},onClose:h}),M=C.close;C.close=()=>{M(),h()},await cs(),document.querySelector(".sh3-listbox")?.focus()}function S(C){if(!(i()||o(d)))switch(C.key){case"ArrowDown":case"ArrowUp":case"Enter":case" ":C.preventDefault(),g();break}}function m(){o(u)&&(r()?n(Array.from(o(u).selectedOptions).map(C=>C.value)):n(o(u).value),t.onchange?.(n()))}var _=D1();let k;var y=p(_);{var b=C=>{var M=T1(),P=p(M,!0);v(M),z(()=>N(P,t.label)),E(C,M)};F(y,C=>{t.label&&C(b)})}var R=A(y,2),L=p(R);let I;var w=p(L,!0);v(L),$t(2),v(R),ze(R,C=>x(c,C),()=>o(c));var D=A(R,2);$(D,"tabindex",-1),fe(D,21,()=>t.options,jt,(C,M)=>{var P=R1(),O=p(P,!0);v(P);var q={};z(j=>{to(P,j),N(O,o(M).label),q!==(q=o(M).value)&&(P.value=(P.__value=o(M).value)??"")},[()=>r()?Array.isArray(n())&&n().includes(o(M).value):n()===o(M).value]),E(C,P)}),v(D),ze(D,C=>x(u,C),()=>o(u)),v(_),z(()=>{k=le(_,1,"sh3-select svelte-1q3zxph",null,k,{"sh3-select--invalid":a(),"sh3-select--sm":l()==="sm"}),R.disabled=i(),$(R,"aria-expanded",o(d)),I=le(L,1,"sh3-select__display svelte-1q3zxph",null,I,{"sh3-select__display--placeholder":!o(f)}),N(w,o(f)||s()),D.multiple=r(),D.disabled=i()}),U("click",R,g),U("keydown",R,S),U("change",D,m),E(e,_),ne()}ce(["click","keydown","change"]);const M1={hotInstall:typeof Blob<"u"&&typeof URL.createObjectURL=="function"},pf=["__sh3core__","shell","sh3-store","sh3-admin"],mf=Object.freeze(Object.defineProperty({__proto__:null,Button:xw,COLOR_PICKER_POINT:sd,CONFLICT_RENDERER_POINT:td,ColorSwatch:f1,ConflictPermissionError:nd,ConflictSessionOrphanedError:$b,ConsentDeniedError:Xd,FRAMEWORK_SHARD_IDS:pf,Field:Rw,FilePicker:m1,IconToggleGroup:t1,NumberInput:Uw,PERMISSION_DOCUMENTS_BROWSE:Hd,PERMISSION_DOCUMENTS_READ:Kd,PERMISSION_DOCUMENTS_WRITE:Wd,PERMISSION_KEYS_MINT:Yd,PERMISSION_STATE_MANAGE:so,PERMISSION_SYNC_PEER:My,PERMISSION_SYNC_POLICY:Oy,RangeSlider:a1,ScopeEscalationError:Gd,Segmented:Jw,Select:P1,Slider:hf,SliderGroup:c1,Textarea:Lw,VERSION:Cn,activeShards:mr,buildPackageMeta:Di,capabilities:M1,clearTokenOverrides:gw,closeTab:To,collapseChild:aw,dockFloat:af,dockIntoActiveLayout:Do,erroredShards:Js,expandChild:ow,fetchBundle:Ri,fetchRegistries:uf,focusTab:iw,focusView:Ci,getActiveApp:Bu,getAuthHeader:Ai,getIconSprite:vf,getTokenOverrides:df,getUser:Ei,inspectActiveLayout:tf,isAdmin:vn,isAuthenticated:Sa,isGuest:Vd,launchApp:xn,listRegisteredApps:oo,listVerbs:mo,locateSlot:lf,popoutView:sf,provideIcons:_w,pushNavEntry:jg,registerConsentListener:Jd,registeredShards:rn,resolveConsent:Aa,returnToHome:Io,setTokenOverrides:mw,shell:Wn,spliceIntoActiveLayout:sw,subscribeKeyRevocation:So,unregisterApp:Ao,validateRegistryIndex:cf},Symbol.toStringTag,{value:"Module"})),O1="/assets/SH3-BG5NVpSD.png",L1="https://cdn.jsdelivr.net/npm/p5@1.11.13/lib/p5.min.js";let Dr=null;function N1(){return Dr||(Dr=new Promise((e,t)=>{const n=window.p5;if(n){e(n);return}const r=document.createElement("script");r.src=L1,r.async=!0,r.onload=()=>e(window.p5),r.onerror=s=>{Dr=null,t(s)},document.head.appendChild(r)}),Dr)}var j1=T('<h1 class="shell-title-fallback svelte-1ifjvh5">SH3</h1>'),z1=T('<div class="shell-title svelte-1ifjvh5"></div>');function q1(e,t){te(t,!0);const n="`.-':;,^\"~=+<>*?!/\\|()[]{}x1ltzrcvunsXYUJCLQ0OZmwqpdbkhao*#MW&8%B@$",r=64,s=Math.floor(64/(442/193)),i=8,a=7,l=80,c=r*i,u=s*a,d=l/u;let f=V(void 0),h=null,g=V(!1);const S=()=>b=>{const L=getComputedStyle(document.documentElement).getPropertyValue("--shell-accent").trim();let I,w,D=!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(O1,()=>{I=b.createGraphics(r,s),I.pixelDensity(1),I.image(w,0,0,r,s),I.loadPixels(),D=!0},()=>{x(g,!0)})},b.draw=()=>{if(!D)return;const C=b.millis()*.001;let M;b.clear(),b.background(0,0),b.fill(L);for(let P=0;P<s;P++)for(let O=0;O<r;O++){const q=(P*r+O)*4;if(I.pixels[q]<64){if(M=b.noise(O/r*2,P/s*2,C*.15),M>.33)continue;b.text(n[Math.floor(M*n.length*.25)],(O+.5)*i,(P+.5)*a);continue}M=b.noise(O/r*4,P/s*4,C*.5),b.text(n[Math.floor(M*n.length)],(O+.5)*i,(P+.5)*a)}}};Ae(()=>{if(o(g))return;let b=!1;return N1().then(R=>{if(!(b||!o(f)))try{h=new R(S(),o(f))}catch(L){console.error("[ShellTitle] p5 sketch failed to start",L),x(g,!0)}}).catch(R=>{console.error("[ShellTitle] failed to load p5 from CDN",R),x(g,!0)}),()=>{b=!0,h&&(h.remove(),h=null)}});var m=it(),_=he(m);{var k=b=>{var R=j1();E(b,R)},y=b=>{var R=z1();et(R,"",{},{width:"216.7195767195767px",height:"80px","--shell-title-scale":d}),ze(R,L=>x(f,L),()=>o(f)),E(b,R)};F(_,b=>{o(g)?b(k):b(y,-1)})}E(e,m),ne()}var V1=T('<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>'),B1=T('<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>'),F1=T('<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>'),U1=T('<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>'),H1=T('<p class="shell-home-empty svelte-cpn2x2"><!></p>'),K1=T('<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 W1(e,t){te(t,!0);let n=V("");const r=H(oo),s=H(vn);function i(w,D){if(!D)return!0;const C=D.toLowerCase();return w.label.toLowerCase().includes(C)||w.id.toLowerCase().includes(C)}const a=H(()=>o(r).filter(w=>!w.admin&&i(w,o(n)))),l=H(()=>o(r).filter(w=>w.admin&&i(w,o(n)))),c=H(()=>o(a).length+(o(s)?o(l).length:0));var u=K1(),d=p(u),f=p(d),h=p(f);q1(h,{});var g=A(h,2),S=p(g);v(g),$t(2),v(f),$t(2),v(d);var m=A(d,2),_=p(m);we(_),v(m);var k=A(m,2);{var y=w=>{var D=B1(),C=A(p(D),2);fe(C,21,()=>o(a),M=>M.id,(M,P)=>{var O=V1(),q=p(O),j=p(q,!0);v(q);var B=A(q,2),G=p(B),W=p(G,!0);v(G);var ee=A(G,2),Z=p(ee);v(ee),v(B),v(O),z(()=>{$(O,"title",`Launch ${o(P).label??""}`),N(j,o(P).label),N(W,o(P).id),N(Z,`v${o(P).version??""}`)}),U("click",O,()=>xn(o(P).id)),E(M,O)}),v(C),v(D),E(w,D)};F(k,w=>{o(a).length>0&&w(y)})}var b=A(k,2);{var R=w=>{var D=U1(),C=A(p(D),2);fe(C,21,()=>o(l),M=>M.id,(M,P)=>{var O=F1(),q=p(O),j=p(q,!0);v(q);var B=A(q,2),G=p(B),W=p(G,!0);v(G);var ee=A(G,2),Z=p(ee);v(ee),v(B),v(O),z(()=>{$(O,"title",`Launch ${o(P).label??""}`),N(j,o(P).label),N(W,o(P).id),N(Z,`v${o(P).version??""}`)}),U("click",O,()=>xn(o(P).id)),E(M,O)}),v(C),v(D),E(w,D)};F(b,w=>{o(s)&&o(l).length>0&&w(R)})}var L=A(b,2);{var I=w=>{var D=H1(),C=p(D);{var M=O=>{var q=Ut("No apps registered.");E(O,q)},P=O=>{var q=Ut();z(()=>N(q,`No apps match “${o(n)??""}”.`)),E(O,q)};F(C,O=>{o(r).length===0?O(M):O(P,-1)})}v(D),E(w,D)};F(L,w=>{o(c)===0&&w(I)})}v(u),z(()=>N(S,`v${Cn}`)),Ce(_,()=>o(n),w=>x(n,w)),E(e,u),ne()}ce(["click"]);var Y1=T('<p class="keys-peers-muted svelte-19l5m7c">Loading...</p>'),G1=T('<p class="keys-peers-error svelte-19l5m7c"> </p>'),X1=T('<p class="keys-peers-muted svelte-19l5m7c">No keys yet. Shards will ask your permission before creating one.</p>'),J1=T('<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),Z1=T('<button type="button" class="keys-peers-btn-danger svelte-19l5m7c">Revoke</button>'),Q1=T('<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>'),$1=T('<ul class="keys-peers-list svelte-19l5m7c"></ul>'),ek=T('<div class="keys-peers svelte-19l5m7c"><div class="keys-peers-header svelte-19l5m7c"><h2 class="svelte-19l5m7c">Keys & Peers</h2></div> <!></div>');function tk(e,t){te(t,!0);let n=V(ve([])),r=V(null),s=V(!0),i=V(null);async function a(){x(r,null),x(s,!0);try{const m=await fetch("/api/keys",{credentials:"include"});if(!m.ok)throw new Error(`HTTP ${m.status}`);x(n,await m.json(),!0)}catch(m){x(r,m instanceof Error?m.message:String(m),!0)}finally{x(s,!1)}}async function l(m){x(i,null);const _=await fetch(`/api/keys/${encodeURIComponent(m)}`,{method:"DELETE",credentials:"include"});(_.ok||_.status===404)&&x(n,o(n).filter(k=>k.id!==m),!0)}function c(m){return new Date(m).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}Ae(()=>{a()}),Ae(()=>So("*",()=>{a()}));var u=ek(),d=A(p(u),2);{var f=m=>{var _=Y1();E(m,_)},h=m=>{var _=G1(),k=p(_);v(_),z(()=>N(k,`Failed to load: ${o(r)??""}`)),E(m,_)},g=m=>{var _=X1();E(m,_)},S=m=>{var _=$1();fe(_,21,()=>o(n),k=>k.id,(k,y)=>{var b=Q1(),R=p(b),L=p(R),I=p(L,!0);v(L);var w=A(L,2),D=p(w);v(w);var C=A(w,2),M=p(C);v(C);var P=A(C,2),O=p(P);v(P),v(R);var q=A(R,2),j=p(q);{var B=W=>{var ee=J1(),Z=he(ee),se=A(Z,2);U("click",Z,()=>l(o(y).id)),U("click",se,()=>{x(i,null)}),E(W,ee)},G=W=>{var ee=Z1();U("click",ee,()=>{x(i,o(y).id,!0)}),E(W,ee)};F(j,W=>{o(i)===o(y).id?W(B):W(G,-1)})}v(q),v(b),z((W,ee,Z)=>{N(I,o(y).label),N(D,`Minted by: ${o(y).mintedByShardId??"system"??""}${o(y).peerRole||o(y).peerId?` · Peer: ${o(y).peerRole??"—"}${o(y).peerId?` (${o(y).peerId})`:""}`:""}`),N(M,`Scopes: ${W??""}`),N(O,`Created: ${ee??""} · Expires: ${Z??""}`)},[()=>o(y).scopes.join(", "),()=>c(o(y).createdAt),()=>o(y).expiresAt?c(o(y).expiresAt):"never"]),E(k,b)}),v(_),E(m,_)};F(d,m=>{o(s)?m(f):o(r)?m(h,1):o(n).length===0?m(g,2):m(S,-1)})}v(u),E(e,u),ne()}ce(["click"]);var nk=T('<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 rk(e,t){te(t,!0);let n=Q(t,"confirmLabel",3,"Confirm"),r=Q(t,"cancelLabel",3,"Cancel"),s=Q(t,"confirmTone",3,"default"),i=V(void 0),a=V(!1);Ae(()=>{o(i)?.focus()});async function l(){if(!o(a)){x(a,!0);try{await t.onConfirm()}finally{t.close()}}}function c(){o(a)||(t.onCancel?.(),t.close())}var u=nk(),d=p(u),f=p(d,!0);v(d);var h=A(d,2),g=p(h,!0);v(h);var S=A(h,2),m=p(S),_=p(m,!0);v(m),ze(m,R=>x(i,R),()=>o(i));var k=A(m,2);let y;var b=p(k,!0);v(k),v(S),v(u),z(()=>{N(f,t.title),N(g,t.body),m.disabled=o(a),N(_,r()),y=le(k,1,"confirm-dialog-btn svelte-1k1962w",null,y,{"confirm-dialog-btn-danger":s()==="danger","confirm-dialog-btn-default":s()==="default"}),k.disabled=o(a),N(b,n())}),U("click",m,c),U("click",k,l),E(e,u),ne()}ce(["click"]);const sk={manifest:{id:"__sh3core__",label:"SH3 Core",version:Cn,views:[{id:"sh3core:home",label:"Home"},{id:"shell:keys-and-peers",label:"Keys & Peers"}]},activate(e){const t=e.state({user:{bindings:{}}});c_(t.user),e.actions.register({id:"sh3.palette.open",label:"Command Palette…",scope:["home","app"],defaultShortcut:"Mod+K",contextItem:!1,paletteItem:!1,run(i){Co(async()=>{const{openPalette:a}=await Promise.resolve().then(()=>_y);return{openPalette:a}},void 0).then(({openPalette:a})=>a())}}),e.actions.register({id:"sh3.app.reset-layout",label:"Reset Current Layout",scope:["app"],paletteItem:!0,contextItem:!1,run(){lo.open(rk,{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:()=>H_()})}});const n={mount(i,a){const l=Ne(W1,{target:i});return{unmount(){We(l)}}}},r={mount(i,a){const l=Ne(tk,{target:i});return{unmount(){We(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;di(()=>{Ae(()=>{const i=new Set;for(const[a,l]of wn){if(i.add(a),s.has(a))continue;const c=e.actions.register({id:`sh3.app.launch:${a}`,label:l.manifest.label,scope:["home","app"],submenuOf:"sh3.app.launch",run(){xn(a)}});s.set(a,c)}for(const a of[...s.keys()])i.has(a)||(s.get(a)(),s.delete(a))})})},autostart(){}},ik={id:"shell",label:"Shell",version:Cn,views:[{id:"shell:terminal",label:"Shell",standalone:!0}],permissions:[]},ak=2e3;let ok=0;function lk(){return`e${++ok}`}class ck{#e;get entries(){return o(this.#e)}set entries(t){x(this.#e,t,!0)}constructor(t=ak){this.#e=V(ve([])),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:lk()};this.entries.push(r),this.entries.length>this.cap&&this.entries.splice(0,this.entries.length-this.cap)}clear(){this.entries.length=0}}var uk=T("<pre> </pre>");function dk(e,t){te(t,!0);const n=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,r=H(()=>t.chunks.join("").replace(n,""));var s=uk();let i;var a=p(s,!0);v(s),z(()=>{i=le(s,1,"shell-text svelte-ypr8s",null,i,{stderr:t.stream==="stderr"}),N(a,o(r))}),E(e,s),ne()}var fk=T('<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 vk(e,t){var n=fk(),r=p(n),s=p(r,!0);v(r);var i=A(r,4),a=p(i,!0);v(i),v(n),z(()=>{N(s,t.cwd),N(a,t.line)}),E(e,n)}var hk=T("<div> </div>");function pk(e,t){var n=hk();let r;var s=p(n,!0);v(n),z(()=>{r=le(n,1,"shell-status svelte-nfxdpt",null,r,{info:t.level==="info",warn:t.level==="warn",error:t.level==="error"}),N(s,t.text)}),E(e,n)}var mk=T('<div class="shell-rich svelte-1rnhl05"><!></div>');function gk(e,t){var n=mk(),r=p(n);us(r,()=>t.component,(s,i)=>{i(s,fs(()=>t.componentProps))}),v(n),E(e,n)}var bk=T('<div class="shell-scrollback svelte-isy3jt"></div>');function _k(e,t){te(t,!0);let n=V(null);Ae(()=>{t.scrollback.entries.length,o(n)&&(o(n).scrollTop=o(n).scrollHeight)});var r=bk();fe(r,21,()=>t.scrollback.entries,s=>s.id,(s,i)=>{var a=it(),l=he(a);{var c=h=>{dk(h,{get stream(){return o(i).stream},get chunks(){return o(i).chunks}})},u=h=>{vk(h,{get cwd(){return o(i).cwd},get line(){return o(i).line}})},d=h=>{pk(h,{get text(){return o(i).text},get level(){return o(i).level}})},f=h=>{gk(h,{get component(){return o(i).component},get componentProps(){return o(i).props}})};F(l,h=>{o(i).kind==="text"?h(c):o(i).kind==="prompt"?h(u,1):o(i).kind==="status"?h(d,2):o(i).kind==="rich"&&h(f,3)})}E(s,a)}),v(r),ze(r,s=>x(n,s),()=>o(n)),E(e,r),ne()}var yk=T('<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 wk(e,t){te(t,!0);let n=V(""),r=V(null),s=V(""),i=V(null);function a(){if(t.locked)return;const m=o(n);m.trim()&&(x(n,""),x(r,null),t.onSubmit(m))}function l(){t.history.length!==0&&(o(r)===null?(x(s,o(n),!0),x(r,t.history.length-1)):o(r)>0&&vr(r,-1),x(n,t.history[o(r)]??"",!0))}function c(){o(r)!==null&&(o(r)<t.history.length-1?(vr(r),x(n,t.history[o(r)],!0)):(x(r,null),x(n,o(s),!0)))}function u(m){if(t.locked){if(m.ctrlKey&&m.key==="c"){m.preventDefault(),t.session.send({t:"signal",sig:"SIGINT"});return}if(m.ctrlKey&&m.key==="d"){m.preventDefault(),t.session.send({t:"signal",sig:"EOF"});return}m.preventDefault();return}m.key==="Enter"?(m.preventDefault(),a()):m.key==="ArrowUp"?(m.preventDefault(),l()):m.key==="ArrowDown"?(m.preventDefault(),c()):m.ctrlKey&&m.key==="c"?(m.preventDefault(),x(n,""),x(r,null)):m.ctrlKey&&m.key==="l"&&(m.preventDefault(),x(n,"clear"),a())}Ae(()=>{!t.locked&&o(i)&&o(i).focus()});var d=yk();let f;var h=p(d),g=p(h,!0);v(h);var S=A(h,4);we(S),ze(S,m=>x(i,m),()=>o(i)),v(d),z(()=>{f=le(d,1,"shell-input svelte-1dfv2gk",null,f,{locked:t.locked}),N(g,t.cwd),S.disabled=t.locked}),U("keydown",S,u),Ce(S,()=>o(n),m=>x(n,m)),E(e,d),ne()}ce(["keydown"]);const Ul=[1e3,2e3,5e3,1e4];class kk{#e;get connected(){return o(this.#e)}set connected(t){x(this.#e,t,!0)}#t;get cwd(){return o(this.#t)}set cwd(t){x(this.#t,t,!0)}#n;get env(){return o(this.#n)}set env(t){x(this.#n,t,!0)}#i;get history(){return o(this.#i)}set history(t){x(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=V(!1),this.#t=V(""),this.#n=V(ve({})),this.#i=V(ve([]))}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=Ul[Math.min(this.backoffIndex,Ul.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 xk{list(){return mo()}get(t){return Dl(t)}resolve(t){const n=t.trim();if(!n)return{kind:"forward",line:t};if(n.startsWith("$ "))return{kind:"forward",line:n.slice(2)};if(n==="$")return{kind:"forward",line:""};const r=n.indexOf(" "),s=r===-1?n:n.slice(0,r),i=r===-1?"":n.slice(r+1),a=Dl(s);if(!a)return{kind:"forward",line:t};const l=i.length?i.split(/\s+/):[];return{kind:"local",verb:a,args:l,line:t}}}class Sk{constructor(t=""){this.base=t}async list(t){return(await(await this.#e("/api/fs/list",t)).json()).entries}async stat(t){return await(await this.#e("/api/fs/stat",t)).json()}async read(t){return await(await this.#e("/api/fs/read",t)).text()}async#e(t,n){const r=`${this.base}${t}?path=${encodeURIComponent(n)}`,s=await fetch(r,{credentials:"include"});if(!s.ok){let i=`HTTP ${s.status}`;try{const a=await s.json();a.error&&(i=a.error)}catch{}throw new Error(i)}return s}}class Ek{#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 Ak={id:"dev",label:"Dev",requiresRole:"admin",transport:"ws",autoRelocate:!1},Ik={id:"user",label:"User",transport:"none",autoRelocate:!0};function Ck(e){e.register(Ak),e.register(Ik)}function gf(e){return`sh3.shell.lastMode.${e}`}function Tk(e){try{return globalThis.localStorage?.getItem(gf(e))??null}catch{return null}}function Rk(e,t){try{globalThis.localStorage?.setItem(gf(e),t)}catch{}}function Dk(e,t,n){const r=Tk(t);if(r){const i=e.get(r);if(i&&(!i.requiresRole||i.requiresRole===n))return i}const s=n==="admin"?"dev":"user";return e.get(s)}function Pk(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 Mk(e,t){if(!e.modeAutoRelocate)return{kind:"noop"};if(e.focusLocked)return{kind:"noop"};if(e.focusedShardId===null)return{kind:"noop"};if(e.focusedShardId===e.currentShardId)return{kind:"noop"};const n=e.focusedShardId;try{if((await t.stat(n)).kind!=="dir")return{kind:"noop"}}catch{return{kind:"noop"}}return{kind:"relocate",path:n}}var Ok=T('<div class="toolbar svelte-gnowwz"><div class="toolbar-slots svelte-gnowwz"></div></div>');function Lk(e,t){te(t,!0);let n=Q(t,"slotProps",19,()=>({})),r=H(()=>t.registry.list(t.ctx));var s=Ok(),i=p(s);fe(i,21,()=>o(r),a=>a.id,(a,l)=>{const c=H(()=>o(l).component);var u=it(),d=he(u);us(d,()=>o(c),(f,h)=>{h(f,fs(()=>n()[o(l).id]??{}))}),E(a,u)}),v(i),v(s),E(e,s),ne()}class Nk{#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 jk=T('<button type="button"> </button>'),zk=T('<div class="mode-bar svelte-1i4cqlj" role="toolbar" aria-label="Shell mode"></div>'),qk=T('<span class="mode-label svelte-1i4cqlj"> </span>');function Vk(e,t){te(t,!0);let n=H(()=>t.registry.list(t.role));var r=it(),s=he(r);{var i=l=>{var c=zk();fe(c,21,()=>o(n),u=>u.id,(u,d)=>{var f=jk();let h;var g=p(f,!0);v(f),z(()=>{h=le(f,1,"mode-btn svelte-1i4cqlj",null,h,{active:o(d).id===t.mode.id}),$(f,"aria-pressed",o(d).id===t.mode.id),N(g,o(d).label)}),U("click",f,()=>t.onSelect(o(d).id)),E(u,f)}),v(c),E(l,c)},a=l=>{var c=qk(),u=p(c,!0);v(c),z(()=>N(u,t.mode.label)),E(l,c)};F(s,l=>{t.role==="admin"?l(i):l(a,-1)})}E(e,r),ne()}ce(["click"]);var Bk=T('<button class="focus-lock-btn svelte-1q6gbap"> </button>');function Fk(e,t){var n=Bk(),r=p(n,!0);v(n),z(()=>{$(n,"title",t.locked?"Unlock focus":"Lock focus"),N(r,t.locked?"🔒":"🔓")}),U("click",n,function(...s){t.onToggle?.apply(this,s)}),E(e,n)}ce(["click"]);var Uk=T('<span class="target-shard svelte-1nn2m6x" title="Target shard"> </span>');function Hk(e,t){var n=Uk(),r=p(n);v(n),z(()=>N(r,`→ ${t.target??"—"??""}`)),E(e,n)}var Kk=T('<div class="shell-terminal svelte-13komre"><!> <!> <!></div>');function Wk(e,t){te(t,!0);const n=new ck,r=new xk,s=new Sk,i=new Ek;Ck(i);let a=V(ve(Ie(()=>Dk(i,t.userId,t.role))));function l(I){const w=i.get(I);w&&(w.requiresRole&&w.requiresRole!==t.role||(x(a,w,!0),Rk(t.userId,I),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=Ie(()=>new kk(t.wsUrl)),u=Ie(()=>Pk({mode:()=>o(a),resolver:r,scrollback:n,session:c,shell:t.shell,fs:s,cwd:()=>c.cwd}));let d=V(!1),f=V(!1),h=V(null);const g=new Nk;g.register({id:"mode",order:10,visible:()=>!0,component:Vk}),g.register({id:"focus-lock",order:20,visible:I=>I.mode.id==="user",component:Fk}),g.register({id:"target-shard",order:30,visible:I=>I.mode.id==="user",component:Hk});function S(I){if(I.type==="tabs")return I.tabs[I.activeTab]?.viewId??null;if(I.type==="split"){for(const w of I.children){const D=S(w);if(D!==null)return D}return null}return I.viewId??null}function m(){try{const I=At(),w=S(I.docked);if(!w)return null;const D=w.indexOf(":");return D>=0?w.slice(0,D):w}catch{return null}}Ae(()=>{const I=m(),w=o(a).autoRelocate,D=o(f);(async()=>{const C=await Mk({modeAutoRelocate:w,focusLocked:D,focusedShardId:I,currentShardId:"shell"},s);C.kind==="relocate"&&C.path!==void 0&&(c.cwd=C.path),I&&I!=="shell"?x(h,I,!0):I||x(h,null)})()});function _(I){if(I.t!=="event")return;const w=I.event;switch(w.kind){case"prompt":n.push({kind:"prompt",cwd:w.cwd,line:w.line,ts:w.ts}),x(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}),x(d,!1);break;case"status":n.push({kind:"status",text:w.text,level:w.level,ts:w.ts});break}}let k=null;Za(()=>{k=c.onMessage(_),o(a).transport==="ws"&&c.connect()}),Qa(()=>{k?.(),c.close()});var y=Kk(),b=p(y);{let I=H(()=>({mode:o(a),role:t.role})),w=H(()=>({mode:{mode:o(a),role:t.role,registry:i,onSelect:l},"focus-lock":{locked:o(f),onToggle:()=>x(f,!o(f))},"target-shard":{target:o(h)}}));Lk(b,{get registry(){return g},get ctx(){return o(I)},get slotProps(){return o(w)}})}var R=A(b,2);_k(R,{get scrollback(){return n}});var L=A(R,2);wk(L,{get cwd(){return c.cwd},get locked(){return o(d)},get history(){return c.history},get session(){return c},get onSubmit(){return u}}),v(y),E(e,y),ne()}var Yk=T('<tr><td class="svelte-m248jy"><button type="button" class="svelte-m248jy"> </button></td><td class="svelte-m248jy"> </td></tr>'),Gk=T('<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 Xk(e,t){te(t,!0);var n=Gk(),r=p(n),s=A(p(r));fe(s,21,()=>t.data.rows,i=>i.name,(i,a)=>{var l=Yk(),c=p(l),u=p(c),d=p(u,!0);v(u),v(c);var f=A(c),h=p(f,!0);v(f),v(l),z(()=>{N(d,o(a).name),N(h,o(a).summary)}),U("click",u,()=>t.data.onClickName(o(a).name)),E(i,l)}),v(s),v(r),v(n),E(e,n),ne()}ce(["click"]);function Jk(){return{name:"help",summary:"List verbs or show detail for one.",async run(e){const t=mo().map(n=>({name:n.name,summary:n.summary}));e.scrollback.push({kind:"rich",component:Xk,props:{data:{rows:t,onClickName:n=>e.dispatch(n)}},ts:Date.now()})}}}const Zk={name:"clear",summary:"Clear the scrollback (local only — other views are unaffected).",async run(e){e.scrollback.clear()}};var Qk=T('<li class="svelte-o8m437"><button type="button" class="svelte-o8m437"> </button></li>'),$k=T('<div class="shell-rich-history svelte-o8m437"><ol class="svelte-o8m437"></ol></div>');function e0(e,t){te(t,!0);var n=$k(),r=p(n);fe(r,21,()=>t.data.lines,jt,(s,i)=>{var a=Qk(),l=p(a),c=p(l,!0);v(l),v(a),z(()=>N(c,o(i))),U("click",l,()=>t.data.onClickLine(o(i))),E(s,a)}),v(r),v(n),E(e,n),ne()}ce(["click"]);const t0={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:e0,props:{data:{lines:r,onClickLine:s=>e.dispatch(s)}},ts:Date.now()})}};var n0=T('<tr><td class="svelte-1u5krjz"><button type="button" class="svelte-1u5krjz"> </button></td><td class="svelte-1u5krjz"> </td></tr>'),r0=T('<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 s0(e,t){te(t,!0);var n=r0(),r=p(n),s=A(p(r));fe(s,21,()=>t.data.apps,i=>i.id,(i,a)=>{var l=n0(),c=p(l),u=p(c),d=p(u,!0);v(u),v(c);var f=A(c),h=p(f,!0);v(f),v(l),z(()=>{N(d,o(a).id),N(h,o(a).label)}),U("click",u,()=>t.data.onClickApp(o(a).id)),E(i,l)}),v(s),v(r),v(n),E(e,n),ne()}ce(["click"]);var i0=T('<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 a0(e,t){te(t,!0);var n=i0(),r=p(n),s=p(r,!0);v(r);var i=A(r,2),a=A(p(i));v(i);var l=A(i,2),c=A(p(l));v(l),v(n),z(u=>{N(s,t.data.label),N(a,` ${t.data.id??""}`),N(c,` ${u??""}`)},[()=>t.data.shards.join(", ")]),E(e,n),ne()}const o0={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:s0,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()})}},l0={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:a0,props:{data:{id:t.id,label:t.label,shards:[]}},ts:Date.now()})}};var c0=T('<tr><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td></tr>'),u0=T('<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 d0(e,t){te(t,!0);var n=u0(),r=p(n),s=A(p(r));fe(s,21,()=>t.data.shards,i=>i.id,(i,a)=>{var l=c0(),c=p(l),u=p(c,!0);v(c);var d=A(c),f=p(d,!0);v(d);var h=A(d),g=p(h,!0);v(h),v(l),z(()=>{N(u,o(a).id),N(f,o(a).label),N(g,o(a).version)}),E(i,l)}),v(s),v(r),v(n),E(e,n),ne()}const f0={name:"shards",summary:"List active shards.",async run(e){const t=e.shell.listShards();e.scrollback.push({kind:"rich",component:d0,props:{data:{shards:t}},ts:Date.now()})}};var v0=T('<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>'),h0=T('<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 p0(e,t){te(t,!0);var n=h0(),r=p(n),s=A(p(r));fe(s,21,()=>t.data.views,i=>i.slotId,(i,a)=>{var l=v0(),c=p(l),u=p(c,!0);v(c);var d=A(c),f=p(d,!0);v(d);var h=A(d),g=p(h,!0);v(h);var S=A(h),m=p(S);v(S),v(l),z(()=>{N(u,o(a).slotId),N(f,o(a).viewId),N(g,o(a).label)}),U("click",m,()=>t.data.onClose(o(a).slotId)),E(i,l)}),v(s),v(r),v(n),E(e,n),ne()}ce(["click"]);const m0={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(`
|
|
9
|
-
`),level:"info",ts:Date.now()});return}const n=e.shell.listViewsInCurrentLayout();e.scrollback.push({kind:"rich",component:p0,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()})}},g0={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()})}},b0={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()})}},_0={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(`
|
|
10
|
-
`),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()})}},y0={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 w0=T('<tr><td class="svelte-1w7onag"> </td><td class="svelte-1w7onag"> </td></tr>'),k0=T('<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 x0(e,t){te(t,!0);var n=k0(),r=p(n),s=A(p(r));fe(s,21,()=>t.data.rows,i=>i.shardId,(i,a)=>{var l=w0(),c=p(l),u=p(c,!0);v(c);var d=A(c),f=p(d,!0);v(d),v(l),z(h=>{N(u,o(a).shardId),N(f,h)},[()=>o(a).zones.join(", ")]),E(i,l)}),v(s),v(r),v(n),E(e,n),ne()}var S0=T('<div class="shell-rich-zonetree svelte-13iiyr1"><pre class="svelte-13iiyr1"> </pre></div>');function E0(e,t){te(t,!0);var n=S0(),r=p(n),s=p(r,!0);v(r),v(n),z(i=>N(s,i),[()=>JSON.stringify(t.data.value,null,2)]),E(e,n),ne()}const A0={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:x0,props:{data:{rows:n}},ts:Date.now()})}},I0={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:E0,props:{data:{value:s}},ts:Date.now()})}};function C0(e,t){if(t.startsWith("/"))return T0(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 T0(e){return e.split("/").filter(t=>t&&t!==".").join("/")}const R0={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+`
|
|
11
|
-
`],ts:Date.now()})}},D0={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=C0(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}},P0={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)":""}
|
|
12
|
-
`],ts:Date.now()})}};var M0=T('<tr><td class="svelte-1ox8vog"> </td><td class="svelte-1ox8vog"> </td></tr>'),O0=T('<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 L0(e,t){te(t,!0);var n=O0(),r=p(n),s=A(p(r));fe(s,21,()=>Object.entries(t.data.env),([i,a])=>i,(i,a)=>{var l=H(()=>fc(o(a),2));let c=()=>o(l)[0],u=()=>o(l)[1];var d=M0(),f=p(d),h=p(f,!0);v(f);var g=A(f),S=p(g,!0);v(g),v(d),z(()=>{N(h,c()),N(S,u())}),E(i,d)}),v(s),v(r),v(n),E(e,n),ne()}const N0={name:"env",summary:"Show the session environment.",async run(e){const t=e.session.env;e.scrollback.push({kind:"rich",component:L0,props:{data:{env:t}},ts:Date.now()})}},j0={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(`
|
|
13
|
-
`);e.scrollback.push({kind:"text",stream:"stdout",chunks:[n||"(empty)"],ts:Date.now()})}},z0={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()})}}};async function q0(){try{const{TauriStoreBackend:e}=await Co(async()=>{const{TauriStoreBackend:r}=await import("./tauri-backend-BNhKUiUG.js");return{TauriStoreBackend:r}},__vite__mapDeps([0,1])),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:lc}}}async function V0(){try{const{LazyStore:e}=await Co(async()=>{const{LazyStore:r}=await import("./index-56jHh6nx.js");return{LazyStore:r}},[]),t=new e("workspace.json",{defaults:{},autoSave:!0}),n=new e("user.json",{defaults:{},autoSave:!0});await t.clear(),await n.clear()}catch{}if(typeof localStorage<"u"){const e=[];for(let t=0;t<localStorage.length;t++){const n=localStorage.key(t);n&&n.startsWith("sh3:")&&e.push(n)}for(const t of e)localStorage.removeItem(t)}typeof indexedDB<"u"&&await new Promise(e=>{const t=indexedDB.deleteDatabase("sh3-packages");t.onsuccess=()=>e(),t.onerror=()=>e(),t.onblocked=()=>e()})}const B0={name:"reset",summary:"Wipe SH3 state and reload (preserves documents). Requires --confirm.",async run(e,t){if(!t.includes("--confirm")){e.scrollback.push({kind:"status",text:"reset: erases the package registry, all zone state (including Tauri stores), and theme overrides, then reloads. Documents are preserved. Re-run as `reset --confirm` to proceed.",level:"warn",ts:Date.now()});return}e.scrollback.push({kind:"status",text:"reset: wiping data…",level:"info",ts:Date.now()}),await V0(),location.reload()}};function F0(e){e.registerVerb(Jk()),e.registerVerb(Zk),e.registerVerb(t0),e.registerVerb(o0),e.registerVerb(l0),e.registerVerb(f0),e.registerVerb(m0),e.registerVerb(g0),e.registerVerb(y0),e.registerVerb(b0),e.registerVerb(_0),e.registerVerb(A0),e.registerVerb(I0),e.registerVerb(R0),e.registerVerb(D0),e.registerVerb(N0),e.registerVerb(P0),e.registerVerb(j0),e.registerVerb(z0),e.registerVerb(B0)}function bf(e){return e.type==="tabs"?e.tabs.filter(t=>t.viewId!==null):e.type==="split"?e.children.flatMap(bf):e.viewId!==null?[{slotId:e.slotId,viewId:e.viewId,label:e.viewId}]:[]}function U0(e){return{listApps(){return oo().map(t=>({id:t.id,label:t.label}))},getActiveApp(){const t=Bu();return t?{id:t.id,label:t.label}:null},launchApp(t){xn(t)},listShards(){return Array.from(rn.values()).map(t=>({id:t.manifest.id,label:t.manifest.label,version:t.manifest.version}))},listViewsInCurrentLayout(){try{const{root:t}=tf();return bf(t.docked).map(n=>({slotId:n.slotId,viewId:n.viewId??"",label:n.label}))}catch{return[]}},openViewInCurrentLayout(t){try{if(Ci(t))return{ok:!0};const n=ql().find(r=>r.viewId===t);if(n){const r=`standalone:${t}:${Date.now()}`;return Do({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 ql()},popoutSlot(t){try{const n=sf(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 af(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 lf(t)}catch{return null}},listFloats(){return Lt.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 To(t),{ok:!0}},listZones(t){return[]},readZone(t,n){return null},whoAmI(){return{userId:Ei()?.id??"guest",admin:vn()}}}}const H0={manifest:ik,activate(e){F0(e);const t=U0();e.actions.register({id:"shell.terminal.toggle",label:"Open Terminal",scope:["home","app"],defaultShortcut:"²",allowInInputs:!1,run(){Ci("shell:terminal")||Lt.open("shell:terminal",{title:"Shell"})}});const n={mount(r,s){const i=typeof location<"u"&&location.protocol==="https:"?"wss":"ws",a=typeof location<"u"?location.host:"localhost",l=`${i}://${a}/api/shell/session`,u=Ei()?.id??"guest",d=vn()?"admin":"user",f=Ne(Wk,{target:r,props:{shell:t,wsUrl:l,userId:u,role:d}});return{unmount(){We(f)},closable:!0}}};e.registerView("shell:terminal",n)},autostart(){}},Hl=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 Zi(e,t){const n=Object.keys(t),r=n.filter(a=>!Hl.has(a)),s=n.filter(a=>Hl.has(a)),i=[`const __m__ = globalThis.${e};`];r.length>0&&i.push(`export const { ${r.join(", ")} } = __m__;`);for(const a of s)i.push(`const __r_${a}__ = __m__['${a}']; export { __r_${a}__ as ${a} };`);return i.push("export default __m__.default;"),URL.createObjectURL(new Blob([i.join(`
|
|
14
|
-
`)],{type:"application/javascript"}))}const Lo=globalThis;Lo.__sh3__=mf;Lo.__sh3_svelte__=Au;Lo.__sh3_svelte_internal_client__=Vu;const No={"sh3-core":Zi("__sh3__",mf),svelte:Zi("__sh3_svelte__",Au),"svelte/internal/client":Zi("__sh3_svelte_internal_client__",Vu)};No["svelte/internal/disclose-version"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));No["sh3-core/tokens.css"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));const K0=/(?:from|import)\s*(['"])(sh3-core(?:\/[^'"]*)?|svelte(?:\/[^'"]*)?)\1/g;function W0(e){return e.replace(K0,(t,n,r)=>{const s=No[r];return s?`${t.startsWith("from")?"from":"import"} '${s}'`:t})}async function ps(e){const t=new TextDecoder().decode(e),n=W0(t),r=new Blob([n],{type:"application/javascript"}),s=URL.createObjectURL(r);try{const i=await import(s),a={shards:[],apps:[]};for(const l of Object.values(i)){if(!l||typeof l!="object"||!("manifest"in l))continue;const c=l;Y0(c)?a.shards.push(c):G0(c)&&a.apps.push(c)}if(a.shards.length===0&&a.apps.length===0)throw new Error('Bundle has no exports with a "manifest" property — expected at least one shard or app');return a}finally{URL.revokeObjectURL(s)}}function Y0(e){return"activate"in e&&typeof e.activate=="function"&&Array.isArray(e.manifest.views)}function G0(e){return"initialLayout"in e&&Array.isArray(e.manifest.requiredShards)}const X0="sh3-packages",J0=1,$r="bundles",gr="meta";function ms(){return new Promise((e,t)=>{const n=indexedDB.open(X0,J0);n.onupgradeneeded=()=>{const r=n.result;r.objectStoreNames.contains($r)||r.createObjectStore($r),r.objectStoreNames.contains(gr)||r.createObjectStore(gr)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}function Hn(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 _f(e,t,n){const r=await ms();await Hn(r,$r,"readwrite",s=>s.put(t,e)),await Hn(r,gr,"readwrite",s=>s.put(n,e)),r.close()}async function yf(e){const t=await ms(),n=await Hn(t,$r,"readonly",r=>r.get(e));return t.close(),n??null}async function Z0(e){const t=await ms(),n=await Hn(t,gr,"readonly",r=>r.get(e));return t.close(),n??null}async function wf(){const e=await ms(),t=await Hn(e,gr,"readonly",n=>n.getAll());return e.close(),t??[]}async function Q0(e){const t=await ms();await Hn(t,$r,"readwrite",n=>n.delete(e)),await Hn(t,gr,"readwrite",n=>n.delete(e)),t.close()}function jo(e,t){for(const n of e.shards)n.manifest={...n.manifest,version:t.version},Eo(n);for(const n of e.apps)n.manifest={...n.manifest,version:t.version},ao(n)}const $0={"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 Qi(e){return $0[e]??{title:e,description:"Unknown permission."}}function zo(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 qo(e,t,n){if(!t.integrity)return{success:!1,hotLoaded:!1,error:"Missing integrity hash — refusing to install unverified bundle"};try{await Po(e,t.integrity)}catch(a){return{success:!1,hotLoaded:!1,error:`Integrity check failed: ${a instanceof Error?a.message:String(a)}`}}let r;if(n?.loaded)r=n.loaded;else try{r=await ps(e)}catch(a){return{success:!1,hotLoaded:!1,error:`Failed to load bundle: ${a instanceof Error?a.message:String(a)}`}}if(t.type==="shard"&&r.shards.length===0)return{success:!1,hotLoaded:!1,error:`Package "${t.id}" declared type "shard" but bundle contains no valid shard`};if(t.type==="app"&&r.apps.length===0)return{success:!1,hotLoaded:!1,error:`Package "${t.id}" declared type "app" but bundle contains no valid app`};const s={id:t.id,type:t.type,version:t.version,sourceRegistry:t.sourceRegistry,contractVersion:t.contractVersion,installedAt:new Date().toISOString(),permissions:zo(r)};try{await _f(t.id,e,s)}catch(a){return{success:!1,hotLoaded:!1,error:`Failed to persist package: ${a instanceof Error?a.message:String(a)}`}}if(t.type==="shard"||t.type==="combo")try{Ii(t.id)}catch{}(t.type==="app"||t.type==="combo")&&Ao(t.id);let i=!0;try{jo(r,{version:t.version,sourceRegistry:t.sourceRegistry,contractVersion:t.contractVersion})}catch(a){console.warn(`[sh3] Package "${t.id}" installed but registration failed (will retry on next boot):`,a instanceof Error?a.message:a),i=!1}return{success:!0,package:s,hotLoaded:i}}async function kf(e){try{Ii(e)}catch{}Ao(e),await Q0(e)}async function ex(){return wf()}async function tx(){let e;try{e=await wf()}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 yf(t.id);if(!n){console.warn(`[sh3] No bundle found for installed package "${t.id}", skipping`);continue}const r=await ps(n);jo(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 Kl={version:1};var nx=T('<span class="perm-modal-author svelte-1ipp1r6"> </span>'),rx=T('<p class="perm-modal-empty svelte-1ipp1r6">This package requires no special permissions.</p>'),sx=T('<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>'),ix=T('<p class="perm-modal-intro svelte-1ipp1r6">This package requests the following permissions:</p> <ul class="perm-modal-list svelte-1ipp1r6"></ul>',1),ax=T('<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>'),ox=T('<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),lx=T('<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>'),cx=T('<p class="perm-modal-intro svelte-1ipp1r6">Permissions no longer requested:</p> <ul class="perm-modal-list perm-modal-removed svelte-1ipp1r6"></ul>',1),ux=T("<!> <!>",1),dx=T('<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 Ta(e,t){te(t,!0);const n=Q(t,"permissions",19,()=>[]),r=Q(t,"added",19,()=>[]),s=Q(t,"removed",19,()=>[]),i=H(()=>t.mode==="install"?"Install":"Update");var a=dx(),l=p(a),c=p(l),u=p(c),d=p(u);v(u);var f=A(u,2),h=p(f);{var g=C=>{var M=Ut();z(()=>N(M,`${t.fromVersion??""} → ${t.pkg.version??""}`)),E(C,M)},S=C=>{var M=Ut();z(()=>N(M,`v${t.pkg.version??""}`)),E(C,M)};F(h,C=>{t.mode==="update"&&t.fromVersion?C(g):C(S,-1)})}var m=A(h,2);{var _=C=>{var M=nx(),P=p(M);v(M),z(()=>N(P,`by ${t.pkg.author??""}`)),E(C,M)};F(m,C=>{t.pkg.author&&C(_)})}v(f),v(c);var k=A(c,2),y=p(k);{var b=C=>{var M=it(),P=he(M);{var O=j=>{var B=rx();E(j,B)},q=j=>{var B=ix(),G=A(he(B),2);fe(G,20,n,W=>W,(W,ee)=>{const Z=H(()=>Qi(ee));var se=sx(),ie=p(se),re=p(ie,!0);v(ie);var me=A(ie,2),ge=p(me,!0);v(me),v(se),z(()=>{N(re,o(Z).title),N(ge,o(Z).description)}),E(W,se)}),v(G),E(j,B)};F(P,j=>{n().length===0?j(O):j(q,-1)})}E(C,M)},R=C=>{var M=ux(),P=he(M);{var O=B=>{var G=ox(),W=A(he(G),2);fe(W,20,r,ee=>ee,(ee,Z)=>{const se=H(()=>Qi(Z));var ie=ax(),re=p(ie),me=p(re,!0);v(re);var ge=A(re,2),X=p(ge,!0);v(ge),v(ie),z(()=>{N(me,o(se).title),N(X,o(se).description)}),E(ee,ie)}),v(W),E(B,G)};F(P,B=>{r().length>0&&B(O)})}var q=A(P,2);{var j=B=>{var G=cx(),W=A(he(G),2);fe(W,20,s,ee=>ee,(ee,Z)=>{const se=H(()=>Qi(Z));var ie=lx(),re=p(ie),me=p(re,!0);v(re);var ge=A(re,2),X=p(ge,!0);v(ge),v(ie),z(()=>{N(me,o(se).title),N(X,o(se).description)}),E(ee,ie)}),v(W),E(B,G)};F(q,B=>{s().length>0&&B(j)})}E(C,M)};F(y,C=>{t.mode==="install"?C(b):C(R,-1)})}v(k);var L=A(k,2),I=p(L),w=A(I,2),D=p(w,!0);v(w),v(L),v(l),v(a),z(()=>{$(a,"aria-label",`${o(i)??""} ${t.pkg.label??""}`),N(d,`${o(i)??""} ${t.pkg.label??""}`),N(D,o(i))}),U("click",a,function(...C){t.onCancel?.apply(this,C)}),U("keydown",a,C=>{C.key==="Escape"&&t.onCancel()}),U("click",l,C=>C.stopPropagation()),U("click",I,function(...C){t.onCancel?.apply(this,C)}),U("click",w,function(...C){t.onConfirm?.apply(this,C)}),E(e,a),ne()}ce(["click","keydown"]);var fx=T('<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>'),vx=T('<div class="store-registries svelte-1aafzt0"></div>'),hx=T('<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>'),px=T('<div class="store-error svelte-1aafzt0"> </div>'),mx=T('<div class="store-error svelte-1aafzt0"> </div>'),gx=T('<img alt="" class="store-icon-img svelte-1aafzt0"/>'),bx=T('<span class="store-icon-placeholder svelte-1aafzt0"> </span>'),_x=T('<div class="store-card-warning svelte-1aafzt0"> </div>'),yx=T('<button class="store-update-btn svelte-1aafzt0"> </button>'),wx=T('<span class="store-installed-label svelte-1aafzt0">Installed</span>'),kx=T('<span class="store-card-missing svelte-1aafzt0"> </span>'),xx=T('<div class="store-install-wrap svelte-1aafzt0"><button class="store-install-btn svelte-1aafzt0"> </button> <!></div>'),Sx=T('<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>'),Ex=T("No packages found. <!>",1),Ax=T('<div class="store-empty svelte-1aafzt0"><!></div>'),Ix=T('<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 Cx(e,t){te(t,!0);let n=V(""),r=V("all"),s=V(ve(new Set)),i=V(ve(new Set)),a=V(null),l=V(""),c=V(null),u=V(null);const d=Sn;async function f(){const K=o(l).trim();if(K&&!d.env.registries.includes(K))try{await d.addRegistry(K),x(l,""),d.refreshCatalog(),d.refreshInstalled()}catch(Y){x(a,Y instanceof Error?Y.message:String(Y),!0)}}async function h(K){try{await d.removeRegistry(K),d.refreshCatalog()}catch(Y){x(a,Y instanceof Error?Y.message:String(Y),!0)}}const g=H(()=>{const K=o(n).toLowerCase().trim();return d.state.ephemeral.catalog.filter(Y=>o(r)!=="all"&&Y.entry.type!==o(r)?!1:K?Y.entry.id.toLowerCase().includes(K)||Y.entry.label.toLowerCase().includes(K)||Y.entry.description.toLowerCase().includes(K):!0)});function S(K){return d.state.ephemeral.installed.some(Y=>Y.id===K)}function m(K){return String(K.latest.contractVersion)!==String(Kl.version)}function _(K){return K in d.state.ephemeral.updatable}function k(K){return d.state.ephemeral.installed.find(Y=>Y.id===K)?.version??""}function y(K,Y){const Se=K.latest.requires?.map(ye=>ye.id)??[];if(Se.length===0)return[];const Me=new Set(pf);for(const ye of Y)(ye.type==="shard"||ye.type==="combo")&&Me.add(ye.id);return Se.filter(ye=>!Me.has(ye))}async function b(K){if(!o(i).has(K)){x(i,new Set([...o(i),K]),!0),x(a,null);try{await d.updatePackage(K,(Y,Se)=>new Promise(Me=>{const ye=d.state.ephemeral.updatable[K],Fe=d.state.ephemeral.installed.find(Qe=>Qe.id===K);if(!ye||!Fe){Me(!0);return}x(u,{pkg:ye,fromVersion:Fe.version,added:Y,removed:Se,resolve:Me},!0)}))}catch(Y){x(a,Y instanceof Error?Y.message:String(Y),!0)}finally{const Y=new Set(o(i));Y.delete(K),x(i,Y,!0)}}}function R(){const K=o(u);K&&(x(u,null),K.resolve(!0))}function L(){const K=o(u);K&&(x(u,null),K.resolve(!1))}async function I(K){const Y=K.entry.id;if(!o(s).has(Y)){x(s,new Set([...o(s),Y]),!0),x(a,null);try{const Se=await Ri(K.latest,K.sourceRegistry),Me=Di(K,K.latest),ye=await ps(Se),Fe=zo(ye);let Qe;K.latest.serverBundleUrl&&(Qe=await Mo(K.latest,K.sourceRegistry)),x(c,{pkg:K,permissions:Fe,loaded:ye,bundle:Se,meta:Me,serverBundle:Qe},!0)}catch(Se){x(a,Se instanceof Error?Se.message:String(Se),!0);const Me=new Set(o(s));Me.delete(Y),x(s,Me,!0)}}}async function w(){const K=o(c);if(!K)return;x(c,null);const{pkg:Y,loaded:Se,bundle:Me,meta:ye,serverBundle:Fe}=K,Qe=Y.entry.id;try{const Ke={id:ye.id,type:ye.type,label:Y.entry.label,version:ye.version,contractVersion:ye.contractVersion,sourceRegistry:ye.sourceRegistry,requiredShards:Y.latest.requires?.map(It=>It.id)??[],installedAt:new Date().toISOString()},hn=await xo(Ke,Me,Fe);if(!hn.ok){x(a,hn.error??"Server install failed",!0);return}const pn=await qo(Me,ye,{loaded:Se});pn.success||console.warn(`[sh3-store] Server install ok but local hot-load failed: ${pn.error}`),await d.refreshInstalled()}catch(Ke){x(a,Ke instanceof Error?Ke.message:String(Ke),!0)}finally{const Ke=new Set(o(s));Ke.delete(Qe),x(s,Ke,!0)}}function D(){if(!o(c))return;const K=o(c).pkg.entry.id;x(c,null);const Y=new Set(o(s));Y.delete(K),x(s,Y,!0)}function C(){d.refreshCatalog(),d.refreshInstalled()}var M=Ix(),P=he(M),O=p(P),q=A(p(O),2),j=p(q);we(j);var B=A(j,2),G=p(B);G.value=G.__value="all";var W=A(G);W.value=W.__value="shard";var ee=A(W);ee.value=ee.__value="app",v(B);var Z=A(B,2),se=p(Z,!0);v(Z),v(q),v(O);var ie=A(O,2);{var re=K=>{var Y=vx();fe(Y,21,()=>d.env.registries,jt,(Se,Me)=>{var ye=fx(),Fe=p(ye),Qe=p(Fe,!0);v(Fe);var Ke=A(Fe,2);v(ye),z(()=>N(Qe,o(Me))),U("click",Ke,()=>h(o(Me))),E(Se,ye)}),v(Y),E(K,Y)};F(ie,K=>{d.isAdmin&&d.env.registries.length>0&&K(re)})}var me=A(ie,2);{var ge=K=>{var Y=hx(),Se=p(Y);we(Se);var Me=A(Se,2);v(Y),z(ye=>Me.disabled=ye,[()=>!o(l).trim()]),Le("submit",Y,ye=>{ye.preventDefault(),f()}),Ce(Se,()=>o(l),ye=>x(l,ye)),E(K,Y)};F(me,K=>{d.isAdmin&&K(ge)})}var X=A(me,2);{var ue=K=>{var Y=px(),Se=p(Y,!0);v(Y),z(()=>N(Se,d.state.ephemeral.error)),E(K,Y)};F(X,K=>{d.state.ephemeral.error&&K(ue)})}var _e=A(X,2);{var Je=K=>{var Y=mx(),Se=p(Y,!0);v(Y),z(()=>N(Se,o(a))),E(K,Y)};F(_e,K=>{o(a)&&K(Je)})}var Te=A(_e,2);fe(Te,21,()=>o(g),K=>K.entry.id,(K,Y)=>{const Se=H(()=>S(o(Y).entry.id)),Me=H(()=>m(o(Y))),ye=H(()=>o(s).has(o(Y).entry.id)),Fe=H(()=>_(o(Y).entry.id)),Qe=H(()=>o(i).has(o(Y).entry.id)),Ke=H(()=>y(o(Y),d.state.ephemeral.installed));var hn=Sx(),pn=p(hn),It=p(pn),Cr=p(It);{var Mf=qe=>{var Oe=gx();z(()=>$(Oe,"src",o(Y).entry.icon)),E(qe,Oe)},Of=qe=>{var Oe=bx(),Ct=p(Oe,!0);v(Oe),z(()=>N(Ct,o(Y).entry.type==="shard"?"S":"A")),E(qe,Oe)};F(Cr,qe=>{o(Y).entry.icon?qe(Mf):qe(Of,-1)})}v(It);var Uo=A(It,2),Oi=p(Uo),Lf=p(Oi,!0);v(Oi);var _s=A(Oi,2);let Ho;var Nf=p(_s,!0);v(_s);var Ko=A(_s,2),jf=p(Ko,!0);v(Ko),v(Uo),v(pn);var Li=A(pn,2),zf=p(Li,!0);v(Li);var Ni=A(Li,2),qf=p(Ni,!0);v(Ni);var Wo=A(Ni,2);{var Vf=qe=>{var Oe=_x(),Ct=p(Oe);v(Oe),z(()=>N(Ct,`Contract mismatch: package targets v${o(Y).latest.contractVersion??""}, running v${Kl.version}`)),E(qe,Oe)};F(Wo,qe=>{o(Me)&&qe(Vf)})}var Yo=A(Wo,2),Bf=p(Yo);{var Ff=qe=>{var Oe=yx(),Ct=p(Oe,!0);v(Oe),z(ji=>{Oe.disabled=o(Qe),N(Ct,ji)},[()=>o(Qe)?"Updating...":`Update ${k(o(Y).entry.id)} -> ${o(Y).latest.version}`]),U("click",Oe,()=>b(o(Y).entry.id)),E(qe,Oe)},Uf=qe=>{var Oe=wx();E(qe,Oe)},Hf=qe=>{var Oe=xx(),Ct=p(Oe),ji=p(Ct,!0);v(Ct);var Kf=A(Ct,2);{var Wf=Tr=>{var zi=kx(),Yf=p(zi);v(zi),z(Gf=>N(Yf,`requires: ${Gf??""}`),[()=>o(Ke).join(", ")]),E(Tr,zi)};F(Kf,Tr=>{o(Ke).length>0&&Tr(Wf)})}v(Oe),z(Tr=>{Ct.disabled=o(ye)||o(Ke).length>0,$(Ct,"title",Tr),N(ji,o(ye)?"Installing...":"Install")},[()=>o(Ke).length>0?`Missing required shards: ${o(Ke).join(", ")}`:void 0]),U("click",Ct,()=>I(o(Y))),E(qe,Oe)};F(Bf,qe=>{o(Se)&&o(Fe)?qe(Ff):o(Se)?qe(Uf,1):qe(Hf,-1)})}v(Yo),v(hn),z(()=>{N(Lf,o(Y).entry.label),Ho=le(_s,1,"store-card-badge svelte-1aafzt0",null,Ho,{"badge-shard":o(Y).entry.type==="shard","badge-app":o(Y).entry.type==="app"}),N(Nf,o(Y).entry.type),N(jf,o(Y).latest.version),N(zf,o(Y).entry.description),N(qf,o(Y).entry.author.name)}),E(K,hn)}),v(Te);var ct=A(Te,2);{var Ze=K=>{var Y=Ax(),Se=p(Y);{var Me=Fe=>{var Qe=Ex(),Ke=A(he(Qe));{var hn=It=>{var Cr=Ut("Add a registry URL above to get started.");E(It,Cr)},pn=It=>{var Cr=Ut("No registries configured.");E(It,Cr)};F(Ke,It=>{d.isAdmin?It(hn):It(pn,-1)})}E(Fe,Qe)},ye=Fe=>{var Qe=Ut("No packages match the current filter.");E(Fe,Qe)};F(Se,Fe=>{d.env.registries.length===0?Fe(Me):Fe(ye,-1)})}v(Y),E(K,Y)};F(ct,K=>{!d.state.ephemeral.loading&&o(g).length===0&&K(Ze)})}v(P);var gs=A(P,2);{var Tn=K=>{{let Y=H(()=>({label:o(c).pkg.entry.label,version:o(c).pkg.latest.version,author:o(c).pkg.entry.author.name}));Ta(K,{mode:"install",get pkg(){return o(Y)},get permissions(){return o(c).permissions},onConfirm:w,onCancel:D})}};F(gs,K=>{o(c)&&K(Tn)})}var Mi=A(gs,2);{var bs=K=>{{let Y=H(()=>({label:o(u).pkg.entry.label,version:o(u).pkg.latest.version,author:o(u).pkg.entry.author.name}));Ta(K,{mode:"update",get pkg(){return o(Y)},get fromVersion(){return o(u).fromVersion},get added(){return o(u).added},get removed(){return o(u).removed},onConfirm:R,onCancel:L})}};F(Mi,K=>{o(u)&&K(bs)})}z(()=>{Z.disabled=d.state.ephemeral.loading,N(se,d.state.ephemeral.loading?"Loading...":"Refresh")}),Ce(j,()=>o(n),K=>x(n,K)),Ur(B,()=>o(r),K=>x(r,K)),U("click",Z,C),E(e,M),ne()}ce(["click"]);var Tx=T('<div class="installed-error svelte-1hqclkp"> </div>'),Rx=T('<div class="installed-empty svelte-1hqclkp">No packages installed.</div>'),Dx=T('<button class="installed-update-btn svelte-1hqclkp"> </button>'),Px=T('<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>'),Mx=T('<ul class="installed-list svelte-1hqclkp"></ul>'),Ox=T('<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 Lx(e,t){te(t,!0);const n=Sn;let r=V(ve(new Set)),s=V(ve(new Set)),i=V(null),a=V(null);async function l(w){if(!o(r).has(w)){x(r,new Set([...o(r),w]),!0);try{await Fd(w),await kf(w),await n.refreshInstalled()}catch(D){console.warn("[sh3-store] Uninstall failed:",D instanceof Error?D.message:D)}finally{const D=new Set(o(r));D.delete(w),x(r,D,!0)}}}async function c(w){if(!o(s).has(w)){x(s,new Set([...o(s),w]),!0),x(i,null);try{await n.updatePackage(w,(D,C)=>new Promise(M=>{const P=n.state.ephemeral.installed.find(q=>q.id===w),O=n.state.ephemeral.updatable[w];if(!P||!O){M(!0);return}x(a,{pkg:P,toVersion:O.latest.version,added:D,removed:C,resolve:M},!0)}))}catch(D){x(i,D instanceof Error?D.message:String(D),!0)}finally{const D=new Set(o(s));D.delete(w),x(s,D,!0)}}}function u(){const w=o(a);w&&(x(a,null),w.resolve(!0))}function d(){const w=o(a);w&&(x(a,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 g=Ox(),S=p(g),m=A(p(S),2);v(S);var _=A(S,2);{var k=w=>{var D=Tx(),C=p(D,!0);v(D),z(()=>N(C,o(i))),E(w,D)};F(_,w=>{o(i)&&w(k)})}var y=A(_,2);{var b=w=>{var D=Rx();E(w,D)},R=w=>{var D=Mx();fe(D,21,()=>n.state.ephemeral.installed,C=>C.id,(C,M)=>{const P=H(()=>o(r).has(o(M).id));var O=Px(),q=p(O),j=p(q),B=p(j,!0);v(j);var G=A(j,2);let W;var ee=p(G,!0);v(G);var Z=A(G,2),se=p(Z,!0);v(Z),v(q);var ie=A(q,2),re=p(ie),me=p(re);v(re);var ge=A(re,2),X=p(ge);v(ge);var ue=A(ge,2),_e=p(ue);v(ue),v(ie);var Je=A(ie,2),Te=p(Je);{var ct=Tn=>{const Mi=H(()=>n.state.ephemeral.updatable[o(M).id]),bs=H(()=>o(s).has(o(M).id));var K=Dx(),Y=p(K,!0);v(K),z(()=>{K.disabled=o(bs)||o(P),N(Y,o(bs)?"Updating...":`Update -> ${o(Mi).latest.version}`)}),U("click",K,()=>c(o(M).id)),E(Tn,K)};F(Te,Tn=>{o(M).id in n.state.ephemeral.updatable&&Tn(ct)})}var Ze=A(Te,2),gs=p(Ze,!0);v(Ze),v(Je),v(O),z(Tn=>{N(B,o(M).id),W=le(G,1,"installed-item-badge svelte-1hqclkp",null,W,{"badge-shard":o(M).type==="shard","badge-app":o(M).type==="app"}),N(ee,o(M).type),N(se,o(M).version),N(me,`Contract: v${o(M).contractVersion??""}`),N(X,`Source: ${o(M).sourceRegistry??""}`),N(_e,`Installed: ${Tn??""}`),Ze.disabled=o(P),N(gs,o(P)?"Removing...":"Uninstall")},[()=>h(o(M).installedAt)]),U("click",Ze,()=>l(o(M).id)),E(C,O)}),v(D),E(w,D)};F(y,w=>{n.state.ephemeral.installed.length===0?w(b):w(R,-1)})}var L=A(y,2);{var I=w=>{{let D=H(()=>({label:o(a).pkg.id,version:o(a).toVersion}));Ta(w,{mode:"update",get pkg(){return o(D)},get fromVersion(){return o(a).pkg.version},get added(){return o(a).added},get removed(){return o(a).removed},onConfirm:u,onCancel:d})}};F(L,w=>{o(a)&&w(I)})}v(g),U("click",m,f),E(e,g),ne()}ce(["click"]);function xf(e){return Sn.state.ephemeral.catalog.find(t=>t.entry.id===e)}function Vo(e){return Sn.state.ephemeral.installed.find(t=>t.id===e)}const Nx={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=Vo(n);if(r){e.scrollback.push({kind:"status",text:`${n} is already installed (v${r.version})`,level:"warn",ts:Date.now()});return}const s=xf(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 Ri(s.latest,s.sourceRegistry),a=Di(s,s.latest);let l;s.latest.serverBundleUrl&&(l=await Mo(s.latest,s.sourceRegistry));const c={id:a.id,type:a.type,label:s.entry.label,version:a.version,contractVersion:a.contractVersion,sourceRegistry:a.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:s.latest.requires?.map(f=>f.id)??[]},u=await xo(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(g=>g.id).join(", ")}`),e.scrollback.push({kind:"status",text:f,level:"error",ts:Date.now()});return}const d=await qo(i,a);d.success||e.scrollback.push({kind:"status",text:`server ok but local hot-load failed: ${d.error}`,level:"warn",ts:Date.now()}),await Sn.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()})}}},jx={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(!Vo(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 Fd(n),await kf(n),await Sn.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()})}}},zx={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=Vo(n),s=xf(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(`
|
|
15
|
-
`)+`
|
|
16
|
-
`],ts:Date.now()})}};function qx(e,t){const n=e.split(".").map(i=>parseInt(i,10)||0),r=t.split(".").map(i=>parseInt(i,10)||0),s=Math.max(n.length,r.length);for(let i=0;i<s;i++){const a=n[i]??0,l=r[i]??0;if(a>l)return!0;if(a<l)return!1}return!1}function Vx(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 Sn;const Bx={manifest:{id:"sh3-store",label:"Package Store",version:Cn,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 g=n.ephemeral.catalog.find(S=>S.entry.id===h.id);g&&qx(g.latest.version,h.version)&&(f[h.id]=g)}n.ephemeral.updatable=f}async function s(){n.ephemeral.loading=!0,n.ephemeral.error=null;try{const f=await uf(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 By();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 ex();n.ephemeral.installed=h,r()}catch{}}}async function a(f){const h=[...t.registries];h.includes(f)||(h.push(f),await e.envUpdate({registries:h}))}async function l(f){const h=t.registries.filter(g=>g!==f);await e.envUpdate({registries:h})}async function c(f,h){const g=n.ephemeral.updatable[f];if(!g)return;const S=n.ephemeral.installed.find(O=>O.id===f);if(!S)return;const m=await Ri(g.latest,g.sourceRegistry);let _;g.latest.serverBundleUrl&&(_=await Mo(g.latest,g.sourceRegistry));const k=Di(g,g.latest),y=await ps(m),b=zo(y);let R=[];try{const O=await Z0(f);O?.permissions&&(R=O.permissions)}catch{}const{added:L,removed:I}=Vx(R,b);if((L.length>0||I.length>0)&&h&&!await h(L,I))return;const w=await yf(f),D={...S,permissions:R},C={id:k.id,type:k.type,label:g.entry.label,version:k.version,contractVersion:k.contractVersion,sourceRegistry:k.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:g.latest.requires?.map(O=>O.id)??[]},M=await xo(C,m,_);if(!M.ok){let O=M.error??"Server update failed";throw M.code==="missing-shards"&&M.missing&&(O=`missing required shard(s): ${M.missing.map(j=>j.id).join(", ")}`),new Error(O)}const P=await qo(m,k,{loaded:y});if(!P.success){if(w)try{await _f(f,w,D)}catch(O){console.warn(`[sh3-store] Rollback failed for "${f}":`,O instanceof Error?O.message:O)}throw new Error(P.error??"Local install failed during update")}await i()}Sn={env:t,state:n,get isAdmin(){return e.isAdmin},refreshCatalog:s,refreshInstalled:i,updatePackage:c,addRegistry:a,removeRegistry:l};const u={mount(f,h){const g=Ne(Cx,{target:f});return{unmount(){We(g)}}}},d={mount(f,h){const g=Ne(Lx,{target:f});return{unmount(){We(g)}}}};e.registerView("sh3-store:browse",u),e.registerView("sh3-store:installed",d),e.registerVerb(Nx),e.registerVerb(jx),e.registerVerb(zx),i()},autostart(){Sn.refreshCatalog()}},Fx={manifest:{id:"sh3-store-app",label:"Package Store",version:Cn,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 Ux=T('<div class="admin-error svelte-4q792t"> </div>'),Hx=T('<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>'),Kx=T('<p class="admin-muted svelte-4q792t">Loading...</p>'),Wx=T('<p class="admin-error svelte-4q792t"> </p>'),Yx=T('<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>'),Gx=T('<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),Xx=T('<li class="admin-user-item svelte-4q792t"><!></li>'),Jx=T('<ul class="admin-user-list svelte-4q792t"></ul>'),Zx=T('<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 Qx(e,t){te(t,!0);let n=V(ve([])),r=V(!0),s=V(null),i=V(!1),a=V(""),l=V(""),c=V(""),u=V("user"),d=V(null),f=V(null),h=V(""),g=V("user"),S=V("");async function m(){x(r,!0),x(s,null);try{const j=await fetch("/api/admin/users",{credentials:"include"});if(!j.ok)throw new Error("Failed to fetch users");x(n,await j.json(),!0)}catch(j){x(s,j instanceof Error?j.message:"Failed to load users",!0)}finally{x(r,!1)}}async function _(){x(d,null);try{const j=await fetch("/api/admin/users",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:o(a),displayName:o(l)||o(a),password:o(c),role:o(u)})});if(!j.ok){const B=await j.json().catch(()=>({}));x(d,B.error||"Failed to create user",!0);return}x(a,""),x(l,""),x(c,""),x(u,"user"),x(i,!1),await m()}catch{x(d,"Network error")}}function k(j){x(f,j.id,!0),x(h,j.displayName,!0),x(g,j.role,!0),x(S,"")}async function y(){if(!o(f))return;const j={displayName:o(h),role:o(g)};o(S).trim()&&(j.password=o(S));try{if(!(await fetch(`/api/admin/users/${o(f)}`,{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(j)})).ok)return;x(f,null),await m()}catch{}}async function b(j){try{await fetch(`/api/admin/users/${j}`,{method:"DELETE",credentials:"include"}),await m()}catch{}}m();var R=Zx(),L=p(R),I=A(p(L),2),w=p(I,!0);v(I),v(L);var D=A(L,2);{var C=j=>{var B=Hx(),G=p(B);we(G);var W=A(G,2);we(W);var ee=A(W,2);we(ee);var Z=A(ee,2),se=p(Z);se.value=se.__value="user";var ie=A(se);ie.value=ie.__value="admin",v(Z);var re=A(Z,2),me=A(re,2);{var ge=X=>{var ue=Ux(),_e=p(ue,!0);v(ue),z(()=>N(_e,o(d))),E(X,ue)};F(me,X=>{o(d)&&X(ge)})}v(B),z(X=>re.disabled=X,[()=>!o(a).trim()||!o(c).trim()]),Le("submit",B,X=>{X.preventDefault(),_()}),Ce(G,()=>o(a),X=>x(a,X)),Ce(W,()=>o(l),X=>x(l,X)),Ce(ee,()=>o(c),X=>x(c,X)),Ur(Z,()=>o(u),X=>x(u,X)),E(j,B)};F(D,j=>{o(i)&&j(C)})}var M=A(D,2);{var P=j=>{var B=Kx();E(j,B)},O=j=>{var B=Wx(),G=p(B,!0);v(B),z(()=>N(G,o(s))),E(j,B)},q=j=>{var B=Jx();fe(B,21,()=>o(n),G=>G.id,(G,W)=>{var ee=Xx(),Z=p(ee);{var se=re=>{var me=Yx(),ge=p(me);we(ge);var X=A(ge,2);we(X);var ue=A(X,2),_e=p(ue);_e.value=_e.__value="user";var Je=A(_e);Je.value=Je.__value="admin",v(ue);var Te=A(ue,2),ct=A(p(Te),2);v(Te),v(me),Le("submit",me,Ze=>{Ze.preventDefault(),y()}),Ce(ge,()=>o(h),Ze=>x(h,Ze)),Ce(X,()=>o(S),Ze=>x(S,Ze)),Ur(ue,()=>o(g),Ze=>x(g,Ze)),U("click",ct,()=>{x(f,null)}),E(re,me)},ie=re=>{var me=Gx(),ge=he(me),X=p(ge),ue=p(X,!0);v(X);var _e=A(X,2),Je=p(_e);v(_e),v(ge);var Te=A(ge,2),ct=p(Te),Ze=A(ct,2);v(Te),z(()=>{N(ue,o(W).displayName),N(Je,`${o(W).username??""} · ${o(W).role??""}`)}),U("click",ct,()=>k(o(W))),U("click",Ze,()=>b(o(W).id)),E(re,me)};F(Z,re=>{o(f)===o(W).id?re(se):re(ie,-1)})}v(ee),E(G,ee)}),v(B),E(j,B)};F(M,j=>{o(r)?j(P):o(s)?j(O,1):j(q,-1)})}v(R),z(()=>N(w,o(i)?"Cancel":"New user")),U("click",I,()=>{x(i,!o(i))}),E(e,R),ne()}ce(["click"]);var $x=T('<p class="admin-muted svelte-1hsgdb4">Loading...</p>'),eS=T('<div class="admin-error svelte-1hsgdb4"> </div>'),tS=T('<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),nS=T('<div class="admin-auth svelte-1hsgdb4"><h2 class="svelte-1hsgdb4">Auth Settings</h2> <!></div>');function rS(e,t){te(t,!0);let n=V(null),r=V(!0),s=V(!1),i=V(null);async function a(){x(r,!0);try{const h=await fetch("/api/admin/settings",{credentials:"include"});if(!h.ok)throw new Error("Failed to fetch settings");x(n,await h.json(),!0)}catch(h){x(i,h instanceof Error?h.message:"Failed to load settings",!0)}finally{x(r,!1)}}async function l(){if(o(n)){x(s,!0),x(i,null);try{const h=await fetch("/api/admin/settings",{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(o(n))});if(!h.ok)throw new Error("Failed to save settings");x(n,await h.json(),!0)}catch(h){x(i,h instanceof Error?h.message:"Failed to save",!0)}finally{x(s,!1)}}}a();var c=nS(),u=A(p(c),2);{var d=h=>{var g=$x();E(h,g)},f=h=>{var g=tS(),S=he(g),m=p(S),_=p(m);we(_),$t(4),v(m);var k=A(m,2),y=p(k);we(y),$t(4),v(k);var b=A(k,2),R=p(b);we(R),$t(4),v(b);var L=A(b,2),I=A(p(L),2);we(I),v(L);var w=A(L,2),D=p(w,!0);v(w),v(S);var C=A(S,2);{var M=P=>{var O=eS(),q=p(O,!0);v(O),z(()=>N(q,o(i))),E(P,O)};F(C,P=>{o(i)&&P(M)})}z(()=>{w.disabled=o(s),N(D,o(s)?"Saving...":"Save")}),Is(_,()=>o(n).auth.required,P=>o(n).auth.required=P),Is(y,()=>o(n).auth.guestAllowed,P=>o(n).auth.guestAllowed=P),Is(R,()=>o(n).auth.selfRegistration,P=>o(n).auth.selfRegistration=P),Ce(I,()=>o(n).auth.sessionTTL,P=>o(n).auth.sessionTTL=P),U("click",w,l),E(h,g)};F(u,h=>{o(r)?h(d):o(n)&&h(f,1)})}v(c),E(e,c),ne()}ce(["click"]);var sS=T('<button type="button"> </button>'),iS=T('<div class="admin-error svelte-1gkiloq"> </div>'),aS=T('<div class="admin-error svelte-1gkiloq"> </div>'),oS=T(`<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>.
|
|
17
|
-
Set to <strong>0</strong> during development so drop-in bundle replacements take effect on F5.
|
|
18
|
-
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 lS(e,t){te(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=V("..."),s=V(!1),i=V(null),a=V(31536e3),l=V(31536e3),c=V(!1),u=V(null);const d=H(()=>o(a)!==o(l)),f=H(()=>h(o(a)));function h(X){return X===0?"0 seconds (off — browsers never cache)":X<60?`${X} seconds`:X<3600?`${Math.round(X/60)} minutes`:X<86400?`${Math.round(X/3600)} hours`:X<31536e3?`${Math.round(X/86400)} days`:`${Math.round(X/31536e3)} years`}async function g(){try{const X=await fetch("/api/version");if(X.ok){const ue=await X.json();x(r,ue.version,!0)}}catch{}}async function S(){try{const X=await fetch("/api/admin/settings",{credentials:"include"});if(X.ok){const _e=(await X.json()).packages?.cacheMaxAge??31536e3;x(a,_e,!0),x(l,_e,!0)}}catch{}}async function m(){x(c,!0),x(u,null);try{const X=await fetch("/api/admin/settings",{method:"PUT",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({packages:{cacheMaxAge:o(a)}})});if(X.ok){const ue=await X.json();x(l,ue.packages?.cacheMaxAge??o(a),!0),x(a,o(l),!0)}else{const ue=await X.json().catch(()=>({}));x(u,ue.error||"Save failed",!0)}}catch{x(u,"Network error")}finally{x(c,!1)}}async function _(){x(s,!0),x(i,null);try{const X=await fetch("/api/admin/restart",{method:"POST",credentials:"include"});if(!X.ok){const ue=await X.json().catch(()=>({}));x(i,ue.error||"Restart failed",!0),x(s,!1)}}catch{x(i,"Network error"),x(s,!1)}}g(),S();var k=oS(),y=A(p(k),2),b=p(y),R=A(p(b),2),L=p(R,!0);v(R),v(b),v(y);var I=A(y,2),w=A(p(I),4);we(w);var D=A(w,2),C=p(D),M=p(C,!0);v(C);var P=A(C);v(D);var O=A(D,2);fe(O,21,()=>n,X=>X.value,(X,ue)=>{var _e=sS();let Je;var Te=p(_e,!0);v(_e),z(()=>{Je=le(_e,1,"admin-snap svelte-1gkiloq",null,Je,{active:o(a)===o(ue).value}),_e.disabled=o(c),N(Te,o(ue).label)}),U("click",_e,()=>x(a,o(ue).value,!0)),E(X,_e)}),v(O);var q=A(O,2),j=p(q),B=p(j,!0);v(j);var G=A(j,2),W=A(G,2);{var ee=X=>{var ue=iS(),_e=p(ue,!0);v(ue),z(()=>N(_e,o(u))),E(X,ue)};F(W,X=>{o(u)&&X(ee)})}v(q),v(I);var Z=A(I,2),se=A(p(Z),2),ie=p(se),re=p(ie,!0);v(ie);var me=A(ie,2);{var ge=X=>{var ue=aS(),_e=p(ue,!0);v(ue),z(()=>N(_e,o(i))),E(X,ue)};F(me,X=>{o(i)&&X(ge)})}v(se),v(Z),v(k),z(()=>{N(L,o(r)),w.disabled=o(c),N(M,o(a)),N(P,` — ${o(f)??""}`),j.disabled=!o(d)||o(c),N(B,o(c)?"Saving...":"Save"),G.disabled=!o(d)||o(c),ie.disabled=o(s),N(re,o(s)?"Restarting...":"Restart server")}),Ce(w,()=>o(a),X=>x(a,X)),U("click",j,m),U("click",G,()=>x(a,o(l),!0)),U("click",ie,_),E(e,k),ne()}ce(["click"]);var cS=T(`<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>`),uS=T('<div class="admin-error svelte-1afg5z5"> </div>'),dS=T('<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>'),fS=T('<p class="admin-muted svelte-1afg5z5">Loading...</p>'),vS=T('<p class="admin-error svelte-1afg5z5"> </p>'),hS=T('<p class="admin-muted svelte-1afg5z5">No API keys. Create one to enable external access.</p>'),pS=T('<button type="button" class="admin-btn-danger svelte-1afg5z5">Confirm</button> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Cancel</button>',1),mS=T('<button type="button" class="admin-btn-danger svelte-1afg5z5">Revoke</button>'),gS=T('<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>'),bS=T('<ul class="admin-key-list svelte-1afg5z5"></ul>'),_S=T('<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 yS(e,t){te(t,!0);let n=V(ve([])),r=V(!0),s=V(null),i=V(!1),a=V(""),l=V(null),c=V(null),u=V(null);async function d(){x(r,!0),x(s,null);try{const P=await fetch("/api/admin/keys",{credentials:"include"});if(!P.ok)throw new Error("Failed to fetch keys");x(n,await P.json(),!0)}catch(P){x(s,P instanceof Error?P.message:"Failed to load keys",!0)}finally{x(r,!1)}}async function f(){x(l,null);try{const P=await fetch("/api/admin/keys",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({label:o(a)})});if(!P.ok){const q=await P.json().catch(()=>({}));x(l,q.error||"Failed to create key",!0);return}const O=await P.json();x(c,{id:O.id,key:O.key},!0),x(a,""),x(i,!1),await d()}catch{x(l,"Network error")}}async function h(P){x(u,null);try{await fetch(`/api/admin/keys/${P}`,{method:"DELETE",credentials:"include"}),o(c)?.id===P&&x(c,null),await d()}catch{}}function g(P){return new Date(P).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}d();var S=_S(),m=p(S),_=A(p(m),2),k=p(_,!0);v(_),v(m);var y=A(m,2);{var b=P=>{var O=cS(),q=A(p(O),2),j=p(q,!0);v(q);var B=A(q,2);v(O),z(()=>N(j,o(c).key)),U("click",B,()=>{x(c,null)}),E(P,O)};F(y,P=>{o(c)&&P(b)})}var R=A(y,2);{var L=P=>{var O=dS(),q=p(O);we(q);var j=A(q,2),B=A(j,2);{var G=W=>{var ee=uS(),Z=p(ee,!0);v(ee),z(()=>N(Z,o(l))),E(W,ee)};F(B,W=>{o(l)&&W(G)})}v(O),z(W=>j.disabled=W,[()=>!o(a).trim()]),Le("submit",O,W=>{W.preventDefault(),f()}),Ce(q,()=>o(a),W=>x(a,W)),E(P,O)};F(R,P=>{o(i)&&P(L)})}var I=A(R,2);{var w=P=>{var O=fS();E(P,O)},D=P=>{var O=vS(),q=p(O,!0);v(O),z(()=>N(q,o(s))),E(P,O)},C=P=>{var O=hS();E(P,O)},M=P=>{var O=bS();fe(O,21,()=>o(n),q=>q.id,(q,j)=>{var B=gS(),G=p(B),W=p(G),ee=p(W,!0);v(W);var Z=A(W,2),se=p(Z);v(Z),v(G);var ie=A(G,2),re=p(ie);{var me=X=>{var ue=pS(),_e=he(ue),Je=A(_e,2);U("click",_e,()=>h(o(j).id)),U("click",Je,()=>{x(u,null)}),E(X,ue)},ge=X=>{var ue=mS();U("click",ue,()=>{x(u,o(j).id,!0)}),E(X,ue)};F(re,X=>{o(u)===o(j).id?X(me):X(ge,-1)})}v(ie),v(B),z(X=>{N(ee,o(j).label),N(se,`${o(j).id??""} · ${X??""}`)},[()=>g(o(j).createdAt)]),E(q,B)}),v(O),E(P,O)};F(I,P=>{o(r)?P(w):o(s)?P(D,1):o(n).length===0?P(C,2):P(M,-1)})}v(S),z(()=>N(k,o(i)?"Cancel":"New key")),U("click",_,()=>{x(i,!o(i))}),E(e,S),ne()}ce(["click"]);const wS={manifest:{id:"sh3-admin",label:"Admin",version:Cn,views:[{id:"sh3-admin:users",label:"Users"},{id:"sh3-admin:auth",label:"Auth Settings"},{id:"sh3-admin:system",label:"System"},{id:"sh3-admin:keys",label:"API Keys"}]},activate(e){const t={mount(i,a){const l=Ne(Qx,{target:i});return{unmount(){We(l)}}}},n={mount(i,a){const l=Ne(rS,{target:i});return{unmount(){We(l)}}}},r={mount(i,a){const l=Ne(lS,{target:i});return{unmount(){We(l)}}}},s={mount(i,a){const l=Ne(yS,{target:i});return{unmount(){We(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)}},kS={manifest:{id:"sh3-admin-app",label:"Admin",version:Cn,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"}]}},Wl="sh3:migrations:shell-rename:done",Yl="__shell__:",xS="__sh3core__:",Gl="sh3:user:__shell__:theme",Xl="sh3:user:__sh3core__:theme";function SS(e,t){if(t.getItem(Wl))return;const n=t.getItem(Gl);n!==null&&t.getItem(Xl)===null&&(t.setItem(Xl,n),t.removeItem(Gl));for(const r of e.keys()){if(!r.startsWith(Yl))continue;const s=xS+r.slice(Yl.length),i=e.read(r);e.write(s,i),e.delete(r)}t.setItem(Wl,"1")}let Jl=!1,Zl=null;function ES(){Jl||(Jl=!0,Zl=e=>{const t=e.state?.sh3;t==="anchor"?(zg(),history.forward()):t==="forward-bumper"&&(qg(),history.back())},window.addEventListener("popstate",Zl),history.replaceState({sh3:"anchor"},""),history.pushState({sh3:"main"},""),history.pushState({sh3:"forward-bumper"},""),history.back())}function AS(e){Eo(e)}function IS(){const e=Gt.workspace;return{keys:()=>e.list(),read:t=>e.read(t),write:(t,n)=>e.write(t,n),delete:t=>e.delete(t)}}async function CS(e){typeof globalThis.localStorage<"u"&&SS(IS(),globalThis.localStorage);const t=new Set(e?.excludeShards),n=[sk,H0,Bx,wS];for(const i of n)t.has(i.manifest.id)||Eo(i);const r=[Fx,kS];for(const i of r)ao(i);await tx();for(const[i,a]of rn)if(a.autostart){X_(i);try{await Qd(i,{phase:"autostart"})}catch{}}const s=ew();if(s&&wn.has(s))try{await xn(s)}catch(i){console.error(`[sh3] Auto-launch of "${s}" failed:`,i),tw()}Ng({returnToHome:Io,launchApp:xn}),typeof window<"u"&&typeof history<"u"&&ES()}var TS=T('<button type="button" aria-label="Expand pane"><span class="collapse-icon"> </span></button>'),RS=T('<button type="button" aria-label="Collapse pane"><span class="collapse-icon"> </span></button>'),DS=T('<!> <div class="pane-content svelte-1adl4o1"><!></div>',1),PS=T('<div role="separator"></div>'),MS=T("<div><!></div> <!>",1),OS=T("<div></div>");function LS(e,t){te(t,!0);const n=40,r=28;let s;const i=k=>t.pinned?.[k]??"fr",a=k=>t.collapsed?.[k]??!1,l=k=>t.fixed?.[k]??!1,c=k=>l(k)||l(k+1);function u(k){if(l(k))return!1;const y=k>0?!l(k-1):!1,b=k<t.count-1?!l(k+1):!1;return y||b}function d(k){return a(k)?`0 0 ${r}px`:i(k)==="px"?`0 0 ${Math.max(n,t.sizes[k])}px`:`${Math.max(1e-4,t.sizes[k])} 1 0`}let f=V(null);function h(k,y){if(a(y)||a(y+1)||c(y))return;k.preventDefault(),k.target.setPointerCapture(k.pointerId);const b=s.getBoundingClientRect(),R=t.direction==="horizontal"?b.width:b.height;let L=0,I=0;for(let w=0;w<t.sizes.length;w++)i(w)==="fr"?L+=t.sizes[w]:I+=Math.max(n,t.sizes[w]);x(f,{handleIndex:y,startClient:t.direction==="horizontal"?k.clientX:k.clientY,startSizes:t.sizes.slice(),containerPx:R,totalFr:L,frAvailPx:Math.max(1,R-I)},!0)}function g(k){if(!o(f))return;const b=(t.direction==="horizontal"?k.clientX:k.clientY)-o(f).startClient,R=o(f).handleIndex,L=R+1,I=i(R),w=i(L),D=o(f).totalFr/o(f).frAvailPx;if(I==="fr"&&w==="fr"){const C=n*D,M=b*D,P=o(f).startSizes[L]-C,O=-(o(f).startSizes[R]-C),q=Math.min(Math.max(M,O),P);t.onResize?.(R,o(f).startSizes[R]+q),t.onResize?.(L,o(f).startSizes[L]-q)}else if(I==="px"&&w==="fr"){const C=o(f).frAvailPx-n,M=n-o(f).startSizes[R];t.onResize?.(R,o(f).startSizes[R]+Math.min(Math.max(b,M),C))}else if(I==="fr"&&w==="px"){const C=o(f).startSizes[L]-n,M=-(o(f).frAvailPx-n);t.onResize?.(L,o(f).startSizes[L]-Math.min(Math.max(b,M),C))}else{const C=o(f).startSizes[L]-n,M=-(o(f).startSizes[R]-n),P=Math.min(Math.max(b,M),C);t.onResize?.(R,o(f).startSizes[R]+P),t.onResize?.(L,o(f).startSizes[L]-P)}}function S(k){o(f)&&(k.target.releasePointerCapture(k.pointerId),x(f,null))}var m=OS();let _;fe(m,21,()=>Array(t.count),jt,(k,y,b)=>{var R=MS(),L=he(R);let I;var w=p(L);{var D=q=>{var j=TS();let B;var G=p(j),W=p(G,!0);v(G),v(j),z(()=>{B=le(j,1,"collapse-header svelte-1adl4o1",null,B,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),N(W,t.direction==="horizontal"?"▸":"▾")}),U("click",j,()=>t.onCollapseToggle?.(b,!1)),E(q,j)},C=H(()=>a(b)),M=q=>{var j=DS(),B=he(j);{var G=se=>{var ie=RS();let re;$(ie,"data-testid",`collapse-toggle-${b}`);var me=p(ie),ge=p(me,!0);v(me),v(ie),z(()=>{re=le(ie,1,"collapse-header expanded svelte-1adl4o1",null,re,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),N(ge,t.direction==="horizontal"?"◂":"▴")}),U("click",ie,()=>t.onCollapseToggle?.(b,!0)),E(se,ie)},W=H(()=>t.onCollapseToggle&&u(b));F(B,se=>{o(W)&&se(G)})}var ee=A(B,2),Z=p(ee);un(Z,()=>t.pane,()=>b),v(ee),E(q,j)};F(w,q=>{o(C)?q(D):q(M,-1)})}v(L);var P=A(L,2);{var O=q=>{var j=PS();let B;$(j,"data-testid",`splitter-handle-${b}`),z(G=>{B=le(j,1,"splitter-handle svelte-1adl4o1",null,B,G),$(j,"aria-orientation",t.direction==="horizontal"?"vertical":"horizontal")},[()=>({dragging:o(f)?.handleIndex===b,disabled:a(b)||a(b+1),frozen:c(b)})]),U("pointerdown",j,G=>h(G,b)),U("pointermove",j,g),U("pointerup",j,S),Le("pointercancel",j,S),U("dblclick",j,()=>{c(b)||!u(b)&&!a(b)||t.onCollapseToggle?.(b,!a(b))}),E(q,j)};F(P,q=>{b<t.count-1&&q(O)})}z((q,j)=>{I=le(L,1,"splitter-pane svelte-1adl4o1",null,I,q),et(L,`flex: ${j??""};`)},[()=>({collapsed:a(b)}),()=>d(b)]),E(k,R)}),v(m),ze(m,k=>s=k,()=>s),z(()=>_=le(m,1,"splitter svelte-1adl4o1",null,_,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"})),E(e,m),ne()}ce(["click","pointerdown","pointermove","pointerup","dblclick"]);function NS(e,t,n){if(!n)return null;const r=n.getBoundingClientRect(),s=t.filter(l=>!!l);if(s.length===0)return{left:4,top:2,height:r.height-4};const i=Math.max(0,Math.min(e,s.length));let a;return i===s.length?a=s[s.length-1].getBoundingClientRect().right:a=s[i].getBoundingClientRect().left,{left:a-r.left-1,top:2,height:r.height-4}}var jS=T('<span class="tab-dirty svelte-1kxcyhf" title="Unsaved changes"></span>'),zS=T('<span class="tab-icon svelte-1kxcyhf"> </span>'),qS=T('<span class="tab-close svelte-1kxcyhf" role="button" tabindex="-1" title="Close">✕</span>'),VS=T('<button type="button" role="tab"><!> <!> <span class="tab-label svelte-1kxcyhf"> </span> <!></button>'),BS=T('<div class="drop-indicator svelte-1kxcyhf"></div>'),FS=T("<div><!></div>"),US=T('<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 HS(e,t){te(t,!0);function n(_){t.clickGuard?.()||t.onActiveChange?.(_)}function r(_,k){k.stopPropagation(),t.onClose?.(_)}let s=V(void 0);const i=ve([]);let a=V(null);function l(_,k){if(!t.dragController)return;const y=i[_];y&&t.dragController.onPointerDown(_,k,y)}function c(_){if(!t.dragController||!t.dragController.isDragging||!o(s))return;const k=o(s).getBoundingClientRect(),y=i.filter(b=>!!b).map(b=>b.getBoundingClientRect());x(a,t.dragController.onStripHover(k,_.clientX,_.clientY,y),!0)}function u(){t.dragController&&(x(a,null),t.dragController.onStripLeave())}var d=US(),f=p(d),h=p(f);fe(h,17,()=>t.labels,jt,(_,k,y)=>{var b=VS();let R;var L=p(b);{var I=q=>{var j=jS();E(q,j)};F(L,q=>{t.dirty?.[y]&&q(I)})}var w=A(L,2);{var D=q=>{var j=zS(),B=p(j,!0);v(j),z(()=>N(B,t.icons[y])),E(q,j)};F(w,q=>{t.icons?.[y]&&q(D)})}var C=A(w,2),M=p(C,!0);v(C);var P=A(C,2);{var O=q=>{var j=qS();z(()=>$(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)}),E(q,j)};F(P,q=>{t.closable?.[y]&&q(O)})}v(b),ze(b,(q,j)=>i[j]=q,q=>i?.[q],()=>[y]),z(()=>{R=le(b,1,"tab svelte-1kxcyhf",null,R,{active:t.activeTab===y}),$(b,"aria-selected",t.activeTab===y),N(M,o(k))}),U("click",b,()=>n(y)),U("pointerdown",b,q=>l(y,q)),Le("auxclick",b,q=>{q.button===1&&t.closable?.[y]&&r(y,q)}),E(_,b)});var g=A(h,2);{var S=_=>{const k=H(()=>NS(o(a),i,o(s)));var y=it(),b=he(y);{var R=L=>{var I=BS();z(()=>et(I,`left: ${o(k).left??""}px; height: ${o(k).height??""}px; top: ${o(k).top??""}px;`)),E(L,I)};F(b,L=>{o(k)&&L(R)})}E(_,y)};F(g,_=>{o(a)!==null&&t.dragController?.isDragging&&_(S)})}v(f),ze(f,_=>x(s,_),()=>o(s));var m=A(f,2);fe(m,21,()=>t.labels,jt,(_,k,y)=>{var b=FS();let R;var L=p(b);un(L,()=>t.body,()=>y),v(b),z(()=>R=le(b,1,"tab-body-pane svelte-1kxcyhf",null,R,{active:t.activeTab===y})),E(_,b)}),v(m),v(d),U("pointermove",f,c),Le("pointerleave",f,u),E(e,d),ne()}ce(["pointermove","click","pointerdown","keydown"]);var KS=T('no factory for <code class="svelte-1czj0s8"> </code>',1),WS=T("<em>empty slot</em>"),YS=T('<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>'),GS=T('<div class="slot svelte-1czj0s8"><!></div>');function Ql(e,t){te(t,!0);let n=Q(t,"label",3,""),r=V(void 0),s=V(0),i=V(0);const a=H(()=>t.node.viewId?!!dd(t.node.viewId):!1);Ae(()=>{if(!o(r))return;const d=t.node.slotId,f=o(r),h=bo(d,t.node.viewId,n()||t.node.viewId||d,t.meta);f.appendChild(h);const g=new ResizeObserver(S=>{for(const m of S){const _=m.contentRect;x(s,Math.round(_.width),!0),x(i,Math.round(_.height),!0)}});return g.observe(f),()=>{g.disconnect(),_o(d,f)}});var l=GS(),c=p(l);{var u=d=>{var f=YS(),h=p(f),g=p(h,!0);v(h);var S=A(h,2),m=p(S);{var _=R=>{var L=KS(),I=A(he(L)),w=p(I,!0);v(I),z(()=>N(w,t.node.viewId)),E(R,L)},k=R=>{var L=WS();E(R,L)};F(m,R=>{t.node.viewId?R(_):R(k,-1)})}v(S);var y=A(S,2),b=p(y);v(y),v(f),z(()=>{N(g,t.node.slotId),N(b,`${o(s)??""} × ${o(i)??""}`)}),E(d,f)};F(c,d=>{o(a)||d(u)})}v(l),ze(l,d=>x(r,d),()=>o(r)),z(()=>{$(l,"data-slot-id",t.node.slotId),$(l,"data-view-id",t.node.viewId??"")}),E(e,l),ne()}const be=ve({phase:"idle",source:null,pointerX:0,pointerY:0,target:null});let Sf=0;function XS(){return performance.now()<Sf}const $l=4;let Ef=0,Af=0;function JS(e,t,n,r,s){if(be.phase!=="idle")return;const i=s.getBoundingClientRect();be.phase="pending",be.source={slotId:e,entry:t,sourceRoot:n,startRect:i,offsetX:r.clientX-i.left,offsetY:r.clientY-i.top},be.pointerX=r.clientX,be.pointerY=r.clientY,be.target=null,Ef=r.clientX,Af=r.clientY,ZS()}function ZS(){window.addEventListener("pointermove",If,!0),window.addEventListener("pointerup",Cf,!0),window.addEventListener("pointercancel",Tf,!0),document.body.style.userSelect="none",document.body.dataset.dragging=""}function QS(){window.removeEventListener("pointermove",If,!0),window.removeEventListener("pointerup",Cf,!0),window.removeEventListener("pointercancel",Tf,!0),document.body.style.userSelect="",delete document.body.dataset.dragging}function If(e){if(be.pointerX=e.clientX,be.pointerY=e.clientY,be.phase==="pending"){const t=e.clientX-Ef,n=e.clientY-Af;t*t+n*n>=$l*$l&&(be.phase="dragging")}}function Cf(e){be.phase==="dragging"&&($S(),Sf=performance.now()+50),Rf()}function Tf(e){Rf()}function ec(e){const t=tn.tree;if(e.kind==="docked")return t.docked;const n=t.floats.find(r=>r.id===e.floatId);return n?n.content:null}function tc(e){if(e.kind!=="float")return;const t=tn.tree,n=t.floats.findIndex(r=>r.id===e.floatId);n<0||Zu(t.floats[n].content)&&t.floats.splice(n,1)}function $S(){const{source:e,target:t}=be;if(!e||!t)return;const n=ec(e.sourceRoot),r=ec(t.root);if(!n||!r)return;if(t.kind==="strip"){const i=t.tabsNode.tabs.findIndex(a=>a.slotId===e.slotId);if(i>=0){T_(t.tabsNode,i,t.insertIndex),rr(n),r!==n&&rr(r),tc(e.sourceRoot);return}}const s=_i(n,e.slotId);s&&(t.kind==="strip"?C_(t.tabsNode,s,t.insertIndex):hd(r,t.path,s,t.side),rr(n),r!==n&&rr(r),tc(e.sourceRoot))}function Rf(){be.phase="idle",be.source=null,be.target=null,QS()}function Ra(e){be.phase==="dragging"&&(be.target=e)}function lr(e){be.phase==="dragging"&&be.target&&(e&&!e(be.target)||(be.target=null))}var eE=T("<div></div>"),tE=T('<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),nE=T("<!> <!>",1),rE=T("<div><!></div>");function nc(e,t){te(t,!0);let n=V(void 0),r=V(null);const s=H(()=>be.phase==="dragging"),i=H(()=>{let g;return t.rootRef.kind==="docked"?g=tn.root:g=tn.tree.floats.find(m=>m.id===t.rootRef.floatId)?.content??null,g?pd(g,t.path):!1});function a(g,S,m){const _=m.left+m.width/2,k=m.top+m.height/2,y=g-_,b=S-k,R=y/m.width,L=b/m.height;return Math.abs(R)>Math.abs(L)?R<0?"left":"right":L<0?"top":"bottom"}function l(g){if(!o(n))return;if(o(i)){o(r)!==null&&(x(r,null),lr(_=>_.kind==="split"&&_.path.join("/")===t.path.join("/")));return}const S=o(n).getBoundingClientRect();if(g.clientX<S.left||g.clientX>S.right||g.clientY<S.top||g.clientY>S.bottom){o(r)!==null&&(x(r,null),lr(_=>_.kind==="split"&&_.path.join("/")===t.path.join("/")));return}const m=a(g.clientX,g.clientY,S);if(m!==o(r)){x(r,m,!0);const _={kind:"split",root:t.rootRef,path:[...t.path],side:m};Ra(_)}}function c(){o(r)!==null&&(x(r,null),lr(g=>g.kind==="split"&&g.path.join("/")===t.path.join("/")))}var u=rE();let d;var f=p(u);{var h=g=>{var S=nE(),m=he(S);{var _=b=>{var R=eE();z(()=>le(R,1,`quad-highlight quad-${o(r)??""}`,"svelte-re71zu")),E(b,R)};F(m,b=>{o(r)&&b(_)})}var k=A(m,2);{var y=b=>{var R=tE();$t(6),E(b,R)};F(k,b=>{o(s)&&b(y)})}E(g,S)};F(f,g=>{o(i)||g(h)})}v(u),ze(u,g=>x(n,g),()=>o(n)),z(()=>d=le(u,1,"slot-drop-zone svelte-re71zu",null,d,{active:o(s),locked:o(i)})),U("pointermove",u,l),Le("pointerleave",u,c),E(e,u),ne()}ce(["pointermove"]);var sE=T('<div class="tab-slot-wrapper svelte-1gw9g38"><!> <!></div>'),iE=T('<div class="empty-tabs-custom svelte-1gw9g38"></div>'),aE=T('<div class="empty-tabs-default svelte-1gw9g38"><div class="empty-tabs-drop svelte-1gw9g38"></div></div>'),oE=T('<div class="empty-tabs-placeholder svelte-1gw9g38"><!></div>'),lE=T('<div class="leaf-slot-wrapper svelte-1gw9g38"><!> <!></div>');function Bo(e,t){te(t,!0);let n=Q(t,"path",19,()=>[]),r=Q(t,"rootRef",19,()=>({kind:"docked"}));const s=H(()=>{let y;return r().kind==="docked"?y=tn.root:y=tn.tree.floats.find(R=>R.id===r().floatId)?.content??null,y?Xr(y,n()):null});function i(y){return{get isDragging(){return be.phase==="dragging"},onPointerDown(b,R,L){const I=y.tabs[b];I&&JS(I.slotId,I,r(),R,L)},onStripHover(b,R,L,I){if(L<b.top||L>b.bottom)return lr(C=>C.kind==="strip"&&C.tabsNode===y),null;let w=I.length;for(let C=0;C<I.length;C++){const M=I[C],P=M.left+M.width/2;if(R<P){w=C;break}}const D=be.source;if(D){const C=y.tabs.findIndex(M=>M.slotId===D.slotId);C>=0&&C<w&&(w-=1)}return Ra({kind:"strip",root:r(),tabsNode:y,insertIndex:w}),w},onStripLeave(){lr(b=>b.kind==="strip"&&b.tabsNode===y)}}}function a(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=>O_(b.slotId)||void 0)}function d(y){return y.map(b=>M_(b.slotId)||void 0)}function f(y,b){const R=y[b];R&&To(R.slotId)}function h(y,b){b(y)}function g(y,b){be.phase==="dragging"&&Ra({kind:"strip",root:r(),tabsNode:b,insertIndex:0})}function S(){lr(y=>y.kind==="strip"&&y.insertIndex===0)}var m=it(),_=he(m);{var k=y=>{var b=it(),R=he(b);{var L=D=>{const C=(P,O=yt)=>{{let q=H(()=>[...n(),O()]);Bo(P,{get rootRef(){return r()},get path(){return o(q)}})}},M=H(()=>a(o(s)));LS(D,{get direction(){return o(M).direction},get sizes(){return o(M).sizes},get pinned(){return o(M).pinned},get collapsed(){return o(M).collapsed},get fixed(){return o(M).fixed},get count(){return o(M).children.length},get pane(){return C},onResize:(P,O)=>o(M).sizes[P]=O,onCollapseToggle:(P,O)=>{o(M).collapsed||(o(M).collapsed=o(M).children.map(()=>!1)),o(M).collapsed[P]=O}})},I=D=>{const C=H(()=>l(o(s)));var M=it(),P=he(M);{var O=j=>{const B=(W,ee=yt)=>{const Z=H(()=>o(C)?.tabs[ee()]);var se=it(),ie=he(se);{var re=me=>{var ge=sE(),X=p(ge);{let _e=H(()=>({type:"slot",slotId:o(Z).slotId,viewId:o(Z).viewId}));Ql(X,{get node(){return o(_e)},get label(){return o(Z).label},get meta(){return o(Z).meta}})}var ue=A(X,2);nc(ue,{get rootRef(){return r()},get path(){return n()}}),v(ge),E(me,ge)};F(ie,me=>{o(Z)&&me(re)})}E(W,se)},G=H(()=>i(o(C)));{let W=H(()=>o(C).tabs.map(re=>re.label)),ee=H(()=>o(C).tabs.map(re=>re.icon)),Z=H(()=>u(o(C).tabs)),se=H(()=>d(o(C).tabs)),ie=H(()=>o(C).tabs.map(re=>re.slotId));HS(j,{get labels(){return o(W)},get icons(){return o(ee)},get activeTab(){return o(C).activeTab},onActiveChange:re=>o(C).activeTab=re,get body(){return B},get dragController(){return o(G)},get clickGuard(){return XS},get closable(){return o(Z)},get dirty(){return o(se)},onClose:re=>f(o(C).tabs,re),get tabIds(){return o(ie)}})}},q=j=>{var B=oE(),G=p(B);{var W=Z=>{var se=iE();Du(se,(ie,re)=>h?.(ie,re),()=>o(C).emptyRenderer),E(Z,se)},ee=Z=>{var se=aE(),ie=p(se);v(se),U("pointermove",ie,re=>g(re,o(C))),Le("pointerleave",ie,S),E(Z,se)};F(G,Z=>{o(C).emptyRenderer?Z(W):Z(ee,-1)})}v(B),E(j,B)};F(P,j=>{o(C)&&o(C).tabs.length>0?j(O):o(C)?.persistent&&j(q,1)})}E(D,M)},w=D=>{const C=H(()=>c(o(s)));var M=lE(),P=p(M);Ql(P,{get node(){return o(C)}});var O=A(P,2);nc(O,{get rootRef(){return r()},get path(){return n()}}),v(M),E(D,M)};F(R,D=>{o(s).type==="split"?D(L):o(s).type==="tabs"?D(I,1):D(w,-1)})}E(y,b)};F(_,y=>{o(s)&&y(k)})}E(e,m),ne()}ce(["pointermove"]);var cE=T('<span class="drag-preview-icon svelte-133fiip"> </span>'),uE=T('<div class="drag-preview svelte-133fiip"><!> <span class="drag-preview-label svelte-133fiip"> </span></div>');function dE(e,t){te(t,!0);const n=H(()=>be.phase==="dragging"&&!!be.source),r=H(()=>be.source?be.pointerX-be.source.offsetX:0),s=H(()=>be.source?be.pointerY-be.source.offsetY:0),i=H(()=>be.source?.startRect.width??0),a=H(()=>be.source?.startRect.height??0),l=H(()=>be.source?.entry.label??""),c=H(()=>be.source?.entry.icon);var u=it(),d=he(u);{var f=h=>{var g=uE(),S=p(g);{var m=y=>{var b=cE(),R=p(b,!0);v(b),z(()=>N(R,o(c))),E(y,b)};F(S,y=>{o(c)&&y(m)})}var _=A(S,2),k=p(_,!0);v(_),v(g),z(()=>{et(g,`left: ${o(r)??""}px; top: ${o(s)??""}px; width: ${o(i)??""}px; height: ${o(a)??""}px;`),N(k,o(l))}),E(h,g)};F(d,h=>{o(n)&&h(f)})}E(e,u),ne()}const cr=new Map;let Qs=!1;function Df(e){if(cr.size===0)return;const t=e.target;if(!t)return;const n=Array.from(cr.keys());for(const r of n){const s=cr.get(r);s&&(s.contains(t)||Lt.close(r))}}function fE(){Qs||typeof document>"u"||(document.addEventListener("pointerdown",Df,!0),Qs=!0)}function vE(){Qs&&(cr.size>0||(document.removeEventListener("pointerdown",Df,!0),Qs=!1))}function hE(e,t){cr.set(e,t),fE()}function pE(e){cr.delete(e),vE()}var mE=T('<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>'),gE=T('<div class="sh3-float-frame svelte-1p734al" role="dialog" tabindex="-1"><!> <div class="sh3-float-body svelte-1p734al"><!></div></div>');function bE(e,t){te(t,!0);const n=Q(t,"entry",7);let r=V(!1),s={x:0,y:0},i=V(void 0);Ae(()=>{if(n().dismissable&&o(i))return hE(n().id,o(i)),()=>pE(n().id)});function a(k){if(k.button!==0||k.target.closest(".sh3-float-close"))return;k.currentTarget.setPointerCapture(k.pointerId),x(r,!0),s={x:k.clientX-n().position.x,y:k.clientY-n().position.y},Lt.focus(n().id)}function l(k){o(r)&&(n().position.x=k.clientX-s.x,n().position.y=k.clientY-s.y)}function c(k){if(!o(r))return;x(r,!1);const y=k.currentTarget;y.hasPointerCapture(k.pointerId)&&y.releasePointerCapture(k.pointerId)}function u(){Lt.focus(n().id)}function d(k){k.stopPropagation(),Lt.close(n().id)}var f=gE();let h;var g=p(f);{var S=k=>{var y=mE(),b=p(y),R=p(b,!0);v(b);var L=A(b,2);v(y),z(()=>N(R,n().title)),U("pointerdown",y,a),U("pointermove",y,l),U("pointerup",y,c),Le("pointercancel",y,c),U("click",L,d),E(k,y)};F(g,k=>{n().title&&k(S)})}var m=A(g,2),_=p(m);{let k=H(()=>({kind:"float",floatId:n().id}));Bo(_,{get rootRef(){return o(k)},path:[]})}v(m),v(f),ze(f,k=>x(i,k),()=>o(i)),z(()=>{$(f,"aria-label",n().title??"Float panel"),h=et(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),E(e,f),ne()}ce(["click","pointerdown","pointermove","pointerup"]);var _E=T('<div class="sh3-float-layer svelte-1rzcset"></div>');function yE(e,t){te(t,!0);const n=H(()=>tn.floats);var r=_E();fe(r,21,()=>o(n),s=>s.id,(s,i)=>{bE(s,{get entry(){return o(i)}})}),v(r),E(e,r),ne()}var wE=T('<div class="guest-signin-error svelte-pymkh"> </div>'),kE=T('<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>'),xE=T('<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),SE=T('<div class="guest-banner-slot"><!></div>');function EE(e,t){te(t,!0);let n=V(!1),r=V(""),s=V(""),i=V(null),a=V(!1);async function l(){if(!o(r).trim()||!o(s).trim()||o(a))return;x(a,!0),x(i,null);const h=await qd(o(r).trim(),o(s).trim());x(a,!1),h.ok?x(n,!1):x(i,h.error,!0)}var c=SE(),u=p(c);{var d=h=>{var g=xE(),S=he(g),m=A(p(S),2);v(S);var _=A(S,2);{var k=y=>{var b=kE(),R=p(b),L=p(R),I=p(L);we(I);var w=A(I,2);we(w);var D=A(w,2),C=p(D),M=p(C,!0);v(C);var P=A(C,2);v(D),v(L);var O=A(L,2);{var q=j=>{var B=wE(),G=p(B,!0);v(B),z(()=>N(G,o(i))),E(j,B)};F(O,j=>{o(i)&&j(q)})}v(R),v(b),z(j=>{I.disabled=o(a),w.disabled=o(a),C.disabled=j,N(M,o(a)?"Signing in...":"Sign in")},[()=>o(a)||!o(r).trim()||!o(s).trim()]),Le("submit",L,j=>{j.preventDefault(),l()}),Ce(I,()=>o(r),j=>x(r,j)),Ce(w,()=>o(s),j=>x(s,j)),U("click",P,()=>{x(n,!1),x(i,null)}),E(y,b)};F(_,y=>{o(n)&&y(k)})}U("click",m,()=>{x(n,!0)}),E(h,g)},f=H(()=>Vd());F(u,h=>{o(f)&&h(d)})}v(c),E(e,c),ne()}ce(["click"]);var AE=T('<code class="sh3-consent-scope svelte-14me5sj"> </code>'),IE=T('<dt class="svelte-14me5sj">Peer</dt> <dd class="svelte-14me5sj"> </dd>',1),CE=T('<dt class="svelte-14me5sj">Expires in</dt> <dd class="svelte-14me5sj"> </dd>',1),TE=T('<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 RE(e,t){te(t,!0);let n=V(null);Ae(()=>Jd(u=>{x(n,u,!0)}));function r(){o(n)&&(Aa(o(n).requestId,!0),x(n,null))}function s(){o(n)&&(Aa(o(n).requestId,!1),x(n,null))}var i=it(),a=he(i);{var l=c=>{var u=TE(),d=p(u),f=p(d),h=p(f),g=p(h,!0);v(h),$t(),v(f);var S=A(f,2),m=A(p(S),2),_=p(m,!0);v(m);var k=A(m,4);fe(k,20,()=>o(n).scopes,C=>C,(C,M)=>{var P=AE(),O=p(P,!0);v(P),z(()=>N(O,M)),E(C,P)}),v(k);var y=A(k,2);{var b=C=>{var M=IE(),P=A(he(M),2),O=p(P);v(P),z(()=>N(O,`${o(n).peerRole??"—"??""}${o(n).peerId?` · ${o(n).peerId}`:""}`)),E(C,M)};F(y,C=>{(o(n).peerRole||o(n).peerId)&&C(b)})}var R=A(y,2);{var L=C=>{var M=CE(),P=A(he(M),2),O=p(P);v(P),z(q=>N(O,`${q??""}s`),[()=>Math.round(o(n).expiresIn/1e3)]),E(C,M)};F(R,C=>{o(n).expiresIn&&C(L)})}v(S);var I=A(S,2),w=p(I);yr(w,!0);var D=A(w,2);v(I),v(d),v(u),z(()=>{N(g,o(n).shardId),N(_,o(n).label)}),U("click",w,s),U("click",D,r),E(c,u)};F(a,c=>{o(n)&&c(l)})}E(e,i),ne()}ce(["click"]);var DE=T('<span class="sh3-brand svelte-18lk809">SH3</span>'),PE=T('<span class="sh3-brand sh3-brand-app svelte-18lk809"> </span>'),ME=T('<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),OE=T('<div class="sh3-brand-slot svelte-18lk809"><!></div>');function LE(e,t){te(t,!0);const n=H(()=>Ht().activeAppId),r=H(Lg),s=H(()=>o(n)?kn(o(n))?.manifest.label??o(n):null),i=H(()=>o(r)?kn(o(r))?.manifest.label??o(r):null),a=H(()=>o(n)?"app":o(r)?"breadcrumb":"brand");function l(){o(r)&&xn(o(r))}var c=OE(),u=p(c);{var d=g=>{var S=DE();E(g,S)},f=g=>{var S=PE(),m=p(S,!0);v(S),z(()=>N(m,o(s))),E(g,S)},h=g=>{var S=ME(),m=A(he(S),4),_=p(m,!0);v(m),z(()=>N(_,o(i))),U("click",m,l),E(g,S)};F(u,g=>{o(a)==="brand"?g(d):o(a)==="app"?g(f,1):g(h,-1)})}v(c),E(e,c),ne()}ce(["click"]);const NE=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 jE(e,t){if(e==null)return[];if(t==null)return NE.slice();const n=t.map((r,s)=>({c:r,i:s}));return n.sort((r,s)=>{const i=r.c.order,a=s.c.order;return i!=null&&a!=null?i-a||r.i-s.i:i!=null?-1:a!=null?1:r.i-s.i}),n.map(r=>r.c)}function zE(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)||!hs(i.action.scope,t,i.ownerShardId)||(s.add(i.action.id),r.push({id:i.action.id,label:i.action.label,shortcut:vs(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 qE(e,t,n){const r=[],s=new Set;for(const i of e)i.action.submenuOf!==n||s.has(i.action.id)||!hs(i.action.scope,t,i.ownerShardId)||(s.add(i.action.id),r.push({id:i.action.id,label:i.action.label,shortcut:vs(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 VE=T('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),BE=T('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),FE=T('<button type="button" class="sh3-menubar-button svelte-bke3dt"><!> <span class="sh3-menubar-label"> </span> <!></button>');function UE(e,t){te(t,!0);let n=V(void 0);function r(m){const _=new Map,k=[];for(const y of m){const b=y.group||"";_.has(b)||(_.set(b,[]),k.push(b)),_.get(b).push(y)}return k.map(y=>({id:`group:${y||"_default"}`,items:_.get(y)}))}function s(m,_,k){const y=tt().find(b=>b.action.id===m);if(!(!y||typeof y.action.run!="function")){try{y.action.run({action:{id:m,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 "${m}" threw:`,b)}k.close()}}function i(m,_,k){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 L=(y.querySelector(".sh3-ctx-active")??y).getBoundingClientRect();b.style.left=`${L.right+2}px`,b.style.top=`${L.top}px`,y.appendChild(b);const I=qE(tt(),_,m),w=Ne(Gs,{target:b,props:{sections:r(I),onInvoke:D=>s(D,_,k),onDismiss:()=>{We(w),b.remove()}}})}function a(){if(!o(n))return;const m=Ht(),_=ga.show(Gs,{anchor:o(n),placement:"bottom-start"},{sections:r(t.items),onInvoke:k=>{const y=tt().find(b=>b.action.id===k);if(y){if(y.action.submenu===!0){i(k,m,_);return}s(k,m,_)}},onDismiss:()=>ga.close()})}const l=H(()=>t.container.iconPosition??"before");var c=FE(),u=p(c);{var d=m=>{var _=VE();z(()=>$(_,"data-icon",t.container.icon)),E(m,_)};F(u,m=>{t.container.icon&&o(l)==="before"&&m(d)})}var f=A(u,2),h=p(f,!0);v(f);var g=A(f,2);{var S=m=>{var _=BE();z(()=>$(_,"data-icon",t.container.icon)),E(m,_)};F(g,m=>{t.container.icon&&o(l)==="after"&&m(S)})}v(c),ze(c,m=>x(n,m),()=>o(n)),z(()=>N(h,t.container.label)),U("click",c,a),E(e,c),ne()}ce(["click"]);var HE=T('<div class="sh3-menubar svelte-7gc0wa" role="menubar"></div>');function KE(e,t){te(t,!0);const n=H(Ht),r=H(()=>o(n).activeAppId),s=H(()=>{if(o(r))return kn(o(r))?.manifest.menus}),i=H(()=>jE(o(r),o(s))),a=H(()=>{const c=[],u=tt();for(const d of o(i)){const f=zE(u,o(n),d.id);f.length>0&&c.push({container:d,items:f})}return c});var l=HE();fe(l,21,()=>o(a),({container:c,items:u})=>c.id,(c,u)=>{let d=()=>o(u).container,f=()=>o(u).items;UE(c,{get container(){return d()},get items(){return f()}})}),v(l),E(e,l),ne()}var WE=T('<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>'),YE=T('<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>'),GE=T('<div class="shell-overlay-root svelte-187fra4"><!></div>'),XE=T('<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 JE(e,t){te(t,!0);const n=H(Sa),r=H(Ei),s=H(vn),i=H(()=>kd()==="home"),a=[{layer:1,name:"floating"},{layer:2,name:"drag-preview"},{layer:3,name:"popup"},{layer:4,name:"modal"},{layer:5,name:"toast"},{layer:6,name:"command"}],l=ve({});Ae(()=>{for(const{name:I}of a){const w=l[I];w&&Mg(I,w)}return()=>{for(const{name:I}of a)Og(I)}}),Ae(()=>{const I=tn.tree;return ab(I.floats,()=>({w:window.innerWidth,h:window.innerHeight})),()=>ob()}),Ae(()=>{tn.tree,G_()}),Ae(()=>Sa()?Zy():void 0);var c=XE(),u=p(c),d=p(u),f=p(d),h=p(f);v(f),v(d);var g=A(d,2);LE(g,{});var S=A(g,2);KE(S,{});var m=A(S,2);{var _=I=>{var w=YE(),D=p(w),C=p(D,!0);v(D);var M=A(D,2),P=p(M,!0);v(M);var O=A(M,2);{var q=B=>{var G=WE(),W=p(G),ee=p(W);v(W),v(G),z(()=>$(ee,"href",`${Ca}#log-out`)),U("click",G,()=>Ny()),E(B,G)},j=H(()=>!zy());F(O,B=>{o(j)&&B(q)})}v(w),z(()=>{N(C,o(r).displayName),N(P,o(s)?"admin":"user")}),E(I,w)};F(m,I=>{o(n)&&o(r)&&I(_)})}v(u);var k=A(u,2);EE(k,{});var y=A(k,2),b=p(y);Bo(b,{}),v(y);var R=A(y,4);fe(R,21,()=>a,({layer:I,name:w})=>I,(I,w)=>{let D=()=>o(w).layer,C=()=>o(w).name;var M=GE(),P=p(M);{var O=j=>{yE(j,{})},q=j=>{dE(j,{})};F(P,j=>{C()==="floating"?j(O):C()==="drag-preview"&&j(q,1)})}v(M),ze(M,(j,B)=>l[B]=j,j=>l?.[j],()=>[C()]),z(()=>{$(M,"data-shell-overlay",C()),$(M,"data-shell-layer",D()),et(M,`z-index: var(--shell-z-layer-${D()??""});`)}),E(I,M)}),v(R);var L=A(R,2);RE(L,{}),v(c),z(()=>{d.disabled=o(i),$(h,"href",`${Ca}#house`)}),U("click",d,()=>Io()),E(e,c),ne()}ce(["click"]);var ZE=T('<button type="button" class="signin-link svelte-lh4k15">Create an account</button>'),QE=T('<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),$E=T('<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),e3=T('<div class="signin-error svelte-lh4k15"> </div>'),t3=T('<div class="signin-wall svelte-lh4k15"><div class="signin-card svelte-lh4k15"><h1 class="signin-brand svelte-lh4k15">SH3</h1> <!> <!></div></div>');function n3(e,t){te(t,!0);let n=V("login"),r=V(""),s=V(""),i=V(""),a=V(null),l=V(!1);async function c(){if(!o(r).trim()||!o(s).trim()||o(l))return;x(l,!0),x(a,null);const y=await qd(o(r).trim(),o(s).trim());x(l,!1),y.ok?t.onSuccess():x(a,y.error,!0)}async function u(){if(!o(r).trim()||!o(s).trim()||o(l))return;x(l,!0),x(a,null);const y=await Ly(o(r).trim(),o(s).trim(),o(i).trim()||void 0);x(l,!1),y.ok?t.onSuccess():x(a,y.error,!0)}function d(y){x(n,y,!0),x(a,null)}var f=t3(),h=p(f),g=A(p(h),2);{var S=y=>{var b=QE(),R=he(b),L=p(R);we(L);var I=A(L,2);we(I);var w=A(I,2),D=p(w,!0);v(w),v(R);var C=A(R,2);{var M=P=>{var O=ZE();U("click",O,()=>d("register")),E(P,O)};F(C,P=>{t.selfRegistration&&P(M)})}z(P=>{L.disabled=o(l),I.disabled=o(l),w.disabled=P,N(D,o(l)?"Signing in...":"Sign in")},[()=>o(l)||!o(r).trim()||!o(s).trim()]),Le("submit",R,P=>{P.preventDefault(),c()}),Ce(L,()=>o(r),P=>x(r,P)),Ce(I,()=>o(s),P=>x(s,P)),E(y,b)},m=y=>{var b=$E(),R=he(b),L=p(R);we(L);var I=A(L,2);we(I);var w=A(I,2);we(w);var D=A(w,2),C=p(D,!0);v(D),v(R);var M=A(R,2);z(P=>{L.disabled=o(l),I.disabled=o(l),w.disabled=o(l),D.disabled=P,N(C,o(l)?"Creating...":"Create account")},[()=>o(l)||!o(r).trim()||!o(s).trim()]),Le("submit",R,P=>{P.preventDefault(),u()}),Ce(L,()=>o(r),P=>x(r,P)),Ce(I,()=>o(i),P=>x(i,P)),Ce(w,()=>o(s),P=>x(s,P)),U("click",M,()=>d("login")),E(y,b)};F(g,y=>{o(n)==="login"?y(S):y(m,-1)})}var _=A(g,2);{var k=y=>{var b=e3(),R=p(b,!0);v(b),z(()=>N(R,o(a))),E(y,b)};F(_,y=>{o(a)&&y(k)})}v(h),v(f),E(e,f),ne()}ce(["click"]);async function r3(e){const t=e?.serverUrl??"",n=await q0();n.backends&&(yl("workspace",n.backends.workspace),yl("user",n.backends.user)),n.localOwner&&jy(),Bd(t),bw();const r=typeof e?.target=="string"?document.querySelector(e.target):e?.target??document.getElementById("app");if(!r)throw new Error("SH3: mount target not found");let s=null;if(!n.localOwner)try{const a=await fetch(`${t}/api/boot`,{credentials:"include"});a.ok&&(s=await a.json())}catch{}if(n.localOwner)Ji("local");else if(s){zl(t,s),Ji(s.tenantId);const{auth:a,session:l}=s;if(!l&&a.required&&!a.guestAllowed){await s3(r,s);const c=await fetch(`${t}/api/boot`,{credentials:"include"});c.ok&&(s=await c.json(),zl(t,s),Ji(s.tenantId))}}if(e?.discoveredPackages?.length)for(const a of e.discoveredPackages)try{const l=await fetch(a.bundleUrl);if(!l.ok){console.warn(`[sh3] Failed to fetch discovered package "${a.id}": HTTP ${l.status}`);continue}const c=await l.arrayBuffer(),u=await ps(c);jo(u,{version:a.version,sourceRegistry:a.sourceRegistry??"",contractVersion:a.contractVersion??""}),console.log(`[sh3] Loaded discovered package: ${a.id}`)}catch(l){console.warn(`[sh3] Failed to load discovered package "${a.id}":`,l)}if(e?.shards)for(const a of e.shards)AS(a);if(e?.apps)for(const a of e.apps)ao(a);const i={};e?.excludeShards&&(i.excludeShards=e.excludeShards),await CS(i),Nd(),Ne(JE,{target:r})}function s3(e,t){return new Promise(n=>{const r=Ne(n3,{target:e,props:{selfRegistration:t.auth.selfRegistration,onSuccess:()=>{We(r),n()}}})})}const Fo=window.location.origin;Bd(Fo);Py(new Ay(Fo));let Pf=[];try{const e=await fetch("/api/packages");e.ok&&(Pf=await e.json())}catch{}await r3({discoveredPackages:Pf,serverUrl:Fo});
|
|
19
|
-
//# sourceMappingURL=index-DgeU5PrI.js.map
|