sh3-server 0.13.4 → 0.14.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,24 @@
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 a of s)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(s){const a={};return s.integrity&&(a.integrity=s.integrity),s.referrerPolicy&&(a.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?a.credentials="include":s.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(s){if(s.ep)return;s.ep=!0;const a=n(s);fetch(s.href,a)}})();const Lv="modulepreload",Nv=function(e){return"/"+e},_l={},wr=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),l=o?.nonce||o?.getAttribute("nonce");s=Promise.allSettled(n.map(c=>{if(c=Nv(c),c in _l)return;_l[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":Lv,u||(f.as="script"),f.crossOrigin="",f.href=c,l&&f.setAttribute("nonce",l),document.head.appendChild(f),u)return new Promise((p,b)=>{f.addEventListener("load",p),f.addEventListener("error",()=>b(new Error(`Unable to preload CSS for ${c}`)))})}))}function a(o){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return s.then(o=>{for(const l of o||[])l.status==="rejected"&&a(l.reason);return t().catch(a)})},qv=1,Vv=2,zc=4,Bv=8,Fv=16,Uv=1,Lc=4,Hv=8,Kv=16,Wv=1,Yv=2,Gv=4,$i=1,Nc=2,Xv=4,Jv=8,ya="[",wa="[!",yl="[?",ka="]",Hn={},Te=Symbol(),wt=Symbol("filename"),ir=Symbol("hmr"),qc="http://www.w3.org/1999/xhtml",ms="http://www.w3.org/2000/svg",eo="http://www.w3.org/1998/Math/MathML",Vc="@attach",Bc=!1;var Dr=Array.isArray,Zv=Array.prototype.indexOf,kr=Array.prototype.includes,xa=Array.from,ea=Object.keys,Kn=Object.defineProperty,Wt=Object.getOwnPropertyDescriptor,Fc=Object.getOwnPropertyDescriptors,Uc=Object.prototype,Qv=Array.prototype,Sa=Object.getPrototypeOf,wl=Object.isExtensible,$v=Object.prototype.hasOwnProperty;function or(e){return typeof e=="function"}const kt=()=>{};function kl(e){return typeof e?.then=="function"}function eh(e){return e()}function bi(e){for(var t=0;t<e.length;t++)e[t]()}function Hc(){var e,t,n=new Promise((r,s)=>{e=r,t=s});return{promise:n,resolve:e,reject:t}}function th(e,t,n=!1){return e===void 0?n?t():t:e}function Kc(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 nh(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 Je=2,Wn=4,bs=8,to=1<<24,Yt=16,Zt=32,pn=64,gi=128,Lt=512,Be=1024,Xe=2048,Qt=4096,it=8192,vt=16384,gn=32768,_i=1<<25,$t=65536,ns=1<<17,Wc=1<<18,Rn=1<<19,Yc=1<<20,sn=1<<25,Yn=65536,yi=1<<21,xr=1<<22,En=1<<23,et=Symbol("$state"),Ea=Symbol("legacy props"),rh=Symbol(""),sh=Symbol("proxy path"),ah=Symbol("hmr anchor"),nn=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},tr=!!globalThis.document?.contentType&&globalThis.document.contentType.includes("xml"),Gc=1,gs=3,_n=8,Xc=11;function Jc(e){throw new Error("https://svelte.dev/e/experimental_async_required")}function ih(){throw new Error("https://svelte.dev/e/invalid_default_snippet")}function xl(){throw new Error("https://svelte.dev/e/invalid_snippet_arguments")}function Pr(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function oh(){throw new Error("https://svelte.dev/e/missing_context")}function lh(){throw new Error("https://svelte.dev/e/snippet_without_render_tag")}function ch(e){throw new Error("https://svelte.dev/e/store_invalid_shape")}function uh(){throw new Error("https://svelte.dev/e/svelte_element_invalid_this_value")}function dh(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function fh(e,t){throw new Error("https://svelte.dev/e/component_api_changed")}function vh(e,t){throw new Error("https://svelte.dev/e/component_api_invalid_new")}function hh(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function ph(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function mh(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function bh(e){throw new Error("https://svelte.dev/e/effect_orphan")}function gh(){throw new Error("https://svelte.dev/e/effect_pending_outside_reaction")}function _h(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function yh(){throw new Error("https://svelte.dev/e/fork_discarded")}function wh(){throw new Error("https://svelte.dev/e/fork_timing")}function kh(){throw new Error("https://svelte.dev/e/get_abort_signal_outside_reaction")}function xh(){throw new Error("https://svelte.dev/e/hydration_failed")}function Zc(e){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}function Sh(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Eh(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Ih(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Ah(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Ch(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}function Th(e,t){console.warn("https://svelte.dev/e/assignment_value_stale")}function Rh(e,t){console.warn("https://svelte.dev/e/binding_property_non_reactive")}function jh(e){console.warn("https://svelte.dev/e/console_log_state")}function Dh(){console.warn("https://svelte.dev/e/derived_inert")}function Ph(e,t){console.warn("https://svelte.dev/e/event_handler_invalid")}function Mh(e){console.warn("https://svelte.dev/e/hydratable_missing_but_expected")}function _s(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function Oh(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_binding")}function zh(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_mutation")}function Lh(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function Qc(e){console.warn("https://svelte.dev/e/state_proxy_equality_mismatch")}function Nh(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let te=!1;function Ce(e){te=e}let ue;function Ie(e){if(e===null)throw _s(),Hn;return ue=e}function ct(){return Ie(Et(ue))}function v(e){if(te){if(Et(ue)!==null)throw _s(),Hn;ue=e}}function qh(e){te&&(ue=e.content)}function Gt(e=1){if(te){for(var t=e,n=ue;t--;)n=Et(n);ue=n}}function Gn(e=!0){for(var t=0,n=ue;;){if(n.nodeType===_n){var r=n.data;if(r===ka){if(t===0)return n;t-=1}else(r===ya||r===wa||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var s=Et(n);e&&n.remove(),n=s}}function no(e){if(!e||e.nodeType!==_n)throw _s(),Hn;return e.data}function $c(e){return e===this.v}function eu(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function tu(e){return!eu(e,this.v)}let Vh=!1;function Bh(e){console.warn("https://svelte.dev/e/dynamic_void_element_content")}const Fh=[];function Xn(e,t=!1,n=!1){return Ns(e,new Map,"",Fh,null,n)}function Ns(e,t,n,r,s=null,a=!1){if(typeof e=="object"&&e!==null){var o=t.get(e);if(o!==void 0)return o;if(e instanceof Map)return new Map(e);if(e instanceof Set)return new Set(e);if(Dr(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]=Ns(u,t,n,r,null,a))}return l}if(Sa(e)===Uc){l={},t.set(e,l),s!==null&&t.set(s,l);for(var d of Object.keys(e))l[d]=Ns(e[d],t,n,r,null,a);return l}if(e instanceof Date)return structuredClone(e);if(typeof e.toJSON=="function"&&!a)return Ns(e.toJSON(),t,n,r,e)}if(e instanceof EventTarget)return e;try{return structuredClone(e)}catch{return e}}let rr=null;function nu(e,t){const n=e.v;if(n===Te)return;const r=Uh(e),s=be,a=e.wv>s.wv||s.wv===0,o=a?"color: CornflowerBlue; font-weight: bold":"color: grey; font-weight: normal";if(console.groupCollapsed(e.label?`%c${r}%c ${e.label}`:`%c${r}%c`,o,a?"font-weight: normal":o,typeof n=="object"&&n!==null&&et in n?Xn(n,!0):n),r==="$derived"){const c=new Set(e.deps);for(const u of c)nu(u)}if(e.created&&console.log(e.created),a&&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 Uh(e){return e.f&(Je|xr)?"$derived":e.label?.startsWith("$")?"store":"$state"}function Hh(e,t){var n=rr;try{rr={entries:new Map,reaction:be};var r=performance.now(),s=t(),a=(performance.now()-r).toFixed(2),o=we(e);if(!Ss())console.log(`${o} %cran outside of an effect (${a}ms)`,"color: grey");else if(rr.entries.size===0)console.log(`${o} %cno reactive dependencies (${a}ms)`,"color: grey");else{console.group(`${o} %c(${a}ms)`,"color: grey");var l=rr.entries;we(()=>{for(const[c,u]of l)nu(c,u)}),rr=null,console.groupEnd()}return s}finally{rr=n}}function Kh(e,t){return e.label=t,ru(e.v,t),e}function ru(e,t){return e?.[sh]?.(t),e}function Wh(e){const t=new Error,n=Yh();return n.length===0?null:(n.unshift(`
3
+ `),Kn(t,"stack",{value:n.join(`
4
+ `)}),Kn(t,"name",{value:e}),t)}function Yh(){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 a=n[s],o=a.replaceAll("\\","/");if(a.trim()!=="Error"){if(a.includes("validate_each_keys"))return[];o.includes("svelte/src/internal")||o.includes("node_modules/.vite")||r.push(a)}}return r}let Se=null;function Sr(e){Se=e}let qs=null;function Gh(e,t,n,r,s,a){const o=qs;qs={type:t,file:n[wt],line:r,column:s,parent:o,...a};try{return e()}finally{qs=o}}let ro=null;function Sl(e){ro=e}function Xh(){const e={};return[()=>(su(e)||oh(),so(e)),t=>ao(e,t)]}function so(e){return Ia().get(e)}function ao(e,t){return Ia().set(e,t),t}function su(e){return Ia().has(e)}function Jh(){return Ia()}function re(e,t=!1,n){Se={p:Se,i:!1,c:null,e:null,s:e,x:null,r:de,l:null}}function se(e){var t=Se,n=t.e;if(n!==null){t.e=null;for(var r of n)Du(r)}return e!==void 0&&(t.x=e),t.i=!0,Se=t.p,e??{}}function au(){return!0}function Ia(e){return Se===null&&Pr(),Se.c??=new Map(Zh(Se)||void 0)}function Zh(e){let t=e.p;for(;t!==null;){const n=t.c;if(n!==null)return n;t=t.p}return null}let zn=[];function iu(){var e=zn;zn=[],bi(e)}function ot(e){if(zn.length===0&&!pr){var t=zn;queueMicrotask(()=>{t===zn&&iu()})}zn.push(e)}function Qh(){for(;zn.length>0;)iu()}function ou(e){var t=de;if(t===null)return be.f|=En,e;if(!(t.f&gn)&&!(t.f&Wn))throw e;an(e,t)}function an(e,t){for(;t!==null;){if(t.f&gi){if(!(t.f&gn))throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const $h=-7169;function je(e,t){e.f=e.f&$h|t}function io(e){e.f&Lt||e.deps===null?je(e,Be):je(e,Qt)}function lu(e){if(e!==null)for(const t of e)!(t.f&Je)||!(t.f&Yn)||(t.f^=Yn,lu(t.deps))}function cu(e,t,n){e.f&Xe?t.add(e):e.f&Qt&&n.add(e),lu(e.deps),je(e,Be)}function uu(e,t,n){if(e==null)return t(void 0),kt;const r=we(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}function ep(e){let t;return uu(e,n=>t=n)(),t}let wi=!1,Wr=!1,ki=Symbol();function tp(e,t,n){const r=n[t]??={store:null,source:Ta(void 0),unsubscribe:kt};if(r.store!==e&&!(ki in n))if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=kt;else{var s=!0;r.unsubscribe=uu(e,a=>{s?r.source.v=a:S(r.source,a)}),s=!1}return e&&ki in n?ep(e):i(r.source)}function np(e,t,n){let r=n[t];return r&&r.store!==e&&(r.unsubscribe(),r.unsubscribe=kt),e}function du(e,t){return Aa(e,t),t}function rp(e,t){var n=e[t];n.store!==null&&du(n.store,n.source.v)}function sp(){const e={};function t(){At(()=>{for(var n in e)e[n].unsubscribe();Kn(e,ki,{enumerable:!1,value:!0})})}return[e,t]}function Aa(e,t){wi=!0;try{e.set(t)}finally{wi=!1}}function ap(e,t,n){return Aa(e,n),t}function ip(e,t,n=1){return Aa(e,t+n),t}function op(e,t,n=1){const r=t+n;return Aa(e,r),r}function lp(){Wr=!0}function fu(e){var t=Wr;try{return Wr=!1,[e(),Wr]}finally{Wr=t}}const vn=new Set;let me=null,at=null,xi=null,pr=!1,si=!1,dr=null,Vs=null;var El=0;let cp=1;class Vt{id=cp++;current=new Map;previous=new Map;#e=new Set;#t=new Set;#n=new Set;#a=new Map;#s=new Map;#i=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}#g(){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)je(s,Xe),n(s);for(s of r.m)je(s,Qt),n(s)}this.#f.add(t)}#p(){if(El++>1e3&&(vn.delete(this),up()),!this.#d()){for(const l of this.#l)this.#u.delete(l),je(l,Xe),this.schedule(l);for(const l of this.#u)je(l,Qt),this.schedule(l)}const t=this.#r;this.#r=[],this.apply();var n=dr=[],r=[],s=Vs=[];for(const l of t)try{this.#b(l,n,r)}catch(c){throw mu(l),c}if(me=null,s.length>0){var a=Vt.ensure();for(const l of s)a.schedule(l)}if(dr=null,Vs=null,this.#d()||this.#g()){this.#m(r),this.#m(n);for(const[l,c]of this.#c)pu(l,c)}else{this.#a.size===0&&vn.delete(this),this.#l.clear(),this.#u.clear();for(const l of this.#e)l(this);this.#e.clear(),Il(r),Il(n),this.#i?.resolve()}var o=me;if(this.#r.length>0){const l=o??=this;l.#r.push(...this.#r.filter(c=>!l.#r.includes(c)))}o!==null&&(vn.add(o),o.#p())}#b(t,n,r){t.f^=Be;for(var s=t.first;s!==null;){var a=s.f,o=(a&(Zt|pn))!==0,l=o&&(a&Be)!==0,c=l||(a&it)!==0||this.#c.has(s);if(!c&&s.fn!==null){o?s.f^=Be:a&Wn?n.push(s):Or(s)&&(a&Yt&&this.#u.add(s),Zn(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)cu(t[n],this.#l,this.#u)}capture(t,n,r=!1){t.v!==Te&&!this.previous.has(t)&&this.previous.set(t,t.v),t.f&En||(this.current.set(t,[n,r]),at?.set(t,n)),this.is_fork||(t.v=n)}activate(){me=this}deactivate(){me=null,at=null}flush(){try{si=!0,me=this,this.#p()}finally{El=0,xi=null,dr=null,Vs=null,si=!1,me=null,at=null,Vn.clear()}}discard(){for(const t of this.#t)t(this);this.#t.clear(),this.#n.clear(),vn.delete(this)}register_created_effect(t){this.#o.push(t)}#_(){for(const d of vn){var t=d.id<this.id,n=[];for(const[f,[p,b]]of this.current){if(d.current.has(f)){var r=d.current.get(f)[0];if(t&&p!==r)d.current.set(f,[p,b]);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,p=>{p.f&(Yt|xr)?d.schedule(p):d.#m([p])});d.activate();var a=new Set,o=new Map;for(var l of n)vu(l,s,a,o);o=new Map;var c=[...d.current.keys()].filter(f=>this.current.has(f)?this.current.get(f)[0]!==f:!0);for(const f of this.#o)!(f.f&(vt|it|ns))&&oo(f,c,o)&&(f.f&(xr|Yt)?(je(f,Xe),d.schedule(f)):d.#l.add(f));if(d.#r.length>0){d.apply();for(var u of d.#r)d.#b(u,[],[]);d.#r=[]}d.deactivate()}}for(const d of vn)d.#v.has(this)&&(d.#v.delete(this),d.#v.size===0&&!d.#d()&&(d.activate(),d.#p()))}increment(t,n){let r=this.#a.get(n)??0;if(this.#a.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.#a.get(n)??0;if(s===1?this.#a.delete(n):this.#a.set(n,s-1),t){let a=this.#s.get(n)??0;a===1?this.#s.delete(n):this.#s.set(n,a-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.#i??=Hc()).promise}static ensure(){if(me===null){const t=me=new Vt;si||(vn.add(me),pr||ot(()=>{me===t&&t.flush()}))}return me}apply(){{at=null;return}}schedule(t){if(xi=t,t.b?.is_pending&&t.f&(Wn|bs|to)&&!(t.f&gn)){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var r=n.f;if(dr!==null&&n===de&&(be===null||!(be.f&Je))&&!wi)return;if(r&(pn|Zt)){if(!(r&Be))return;n.f^=Be}}this.#r.push(n)}}function An(e){var t=pr;pr=!0;try{var n;for(e&&(me!==null&&!me.is_fork&&me.flush(),n=e());;){if(Qh(),me===null)return n;me.flush()}}finally{pr=t}}function up(){try{_h()}catch(e){an(e,xi)}}let hn=null;function Il(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&(vt|it))&&Or(r)&&(hn=new Set,Zn(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Nu(r),hn?.size>0)){Vn.clear();for(const s of hn){if(s.f&(vt|it))continue;const a=[s];let o=s.parent;for(;o!==null;)hn.has(o)&&(hn.delete(o),a.push(o)),o=o.parent;for(let l=a.length-1;l>=0;l--){const c=a[l];c.f&(vt|it)||Zn(c)}}hn.clear()}}hn=null}}function vu(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(const s of e.reactions){const a=s.f;a&Je?vu(s,t,n,r):a&(xr|Yt)&&!(a&Xe)&&oo(s,t,r)&&(je(s,Xe),lo(s))}}function hu(e,t){if(e.reactions!==null)for(const n of e.reactions){const r=n.f;r&Je?hu(n,t):r&ns&&(je(n,Xe),t.add(n))}}function oo(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(kr.call(t,s))return!0;if(s.f&Je&&oo(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function lo(e){me.schedule(e)}let ta=[];function dp(){An(()=>{const e=ta;ta=[];for(const t of e)Er(t)})}function fp(e){var t=St(0),n=!0,r=void 0;return i(t),Mu(()=>{if(n){var s=at;try{at=null,r=e()}finally{at=s}return}ta.length===0&&ot(dp),ta.push(t)}),n=!1,r}function pu(e,t){if(!(e.f&Zt&&e.f&Be)){e.f&Xe?t.d.push(e):e.f&Qt&&t.m.push(e),je(e,Be);for(var n=e.first;n!==null;)pu(n,t),n=n.next}}function mu(e){je(e,Be);for(var t=e.first;t!==null;)mu(t),t=t.next}function vp(e){Jc(),me!==null&&wh();var t=Vt.ensure();t.is_fork=!0,at=new Map;var n=!1,r=t.settled();return An(e),{commit:async()=>{if(n){await r;return}vn.has(t)||yh(),n=!0,t.is_fork=!1;for(var[s,[a]]of t.current)s.v=a,s.wv=ra();t.activate(),t.run_fork_commit_callbacks(),t.deactivate(),An(()=>{var o=new Set;for(var l of t.current.keys())hu(l,o);Sp(o),xu()}),t.flush(),await r},discard:()=>{for(var s of t.current.keys())s.wv=ra();!n&&vn.has(t)&&t.discard()}}}function hp(e){let t=0,n=St(0),r;return()=>{Ss()&&(i(n),qe(()=>(t===0&&(r=we(()=>e(()=>Jr(n)))),t+=1,()=>{ot(()=>{t-=1,t===0&&(r?.(),r=void 0,Jr(n))})})))}}var pp=$t|Rn;function bu(e,t,n,r){new mp(e,t,n,r)}class mp{parent;is_pending=!1;transform_error;#e;#t=te?ue:null;#n;#a;#s;#i=null;#r=null;#o=null;#l=null;#u=0;#c=0;#f=!1;#h=new Set;#v=new Set;#d=null;#g=hp(()=>(this.#d=St(this.#u),()=>{this.#d=null}));constructor(t,n,r,s){this.#e=t,this.#n=n,this.#a=a=>{var o=de;o.b=this,o.f|=gi,r(a)},this.parent=de.b,this.transform_error=s??this.parent?.transform_error??(a=>a),this.#s=dn(()=>{if(te){const a=this.#t;ct();const o=a.data===wa;if(a.data.startsWith(yl)){const c=JSON.parse(a.data.slice(yl.length));this.#b(c)}else o?this.#m():this.#p()}else this.#_()},pp),te&&(this.#e=ue)}#p(){try{this.#i=rt(()=>this.#a(this.#e))}catch(t){this.error(t)}}#b(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=Qe();n.append(r),this.#i=this.#w(()=>rt(()=>this.#a(r))),this.#c===0&&(this.#e.before(n),this.#l=null,Bn(this.#r,()=>{this.#r=null}),this.#y(me))}))}#_(){try{if(this.is_pending=this.has_pending_snippet(),this.#c=0,this.#u=0,this.#i=rt(()=>{this.#a(this.#e)}),this.#c>0){var t=this.#l=document.createDocumentFragment();go(this.#i,t);const n=this.#n.pending;this.#r=rt(()=>n(this.#e))}else this.#y(me)}catch(n){this.error(n)}}#y(t){this.is_pending=!1,t.transfer_effects(this.#h,this.#v)}defer_effect(t){cu(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=de,r=be,s=Se;nt(this.#s),pt(this.#s),Sr(this.#s.ctx);try{return Vt.ensure(),t()}catch(a){return ou(a),null}finally{nt(n),pt(r),Sr(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&&Bn(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&&on(this.#d,this.#u)}))}get_effect_pending(){return this.#g(),i(this.#d)}error(t){if(!this.#n.onerror&&!this.#n.failed)throw t;me?.is_fork?(this.#i&&me.skip_effect(this.#i),this.#r&&me.skip_effect(this.#r),this.#o&&me.skip_effect(this.#o),me.on_fork_commit(()=>{this.#x(t)})):this.#x(t)}#x(t){this.#i&&(He(this.#i),this.#i=null),this.#r&&(He(this.#r),this.#r=null),this.#o&&(He(this.#o),this.#o=null),te&&(Ie(this.#t),Gt(),Ie(Gn()));var n=this.#n.onerror;let r=this.#n.failed;var s=!1,a=!1;const o=()=>{if(s){Nh();return}s=!0,a&&Ch(),this.#o!==null&&Bn(this.#o,()=>{this.#o=null}),this.#w(()=>{this.#_()})},l=c=>{try{a=!0,n?.(c,o),a=!1}catch(u){an(u,this.#s&&this.#s.parent)}r&&(this.#o=this.#w(()=>{try{return rt(()=>{var u=de;u.b=this,u.f|=gi,r(this.#e,()=>c,()=>o)})}catch(u){return an(u,this.#s.parent),null}}))};ot(()=>{var c;try{c=this.transform_error(t)}catch(u){an(u,this.#s&&this.#s.parent);return}c!==null&&typeof c=="object"&&typeof c.then=="function"?c.then(l,u=>an(u,this.#s&&this.#s.parent)):l(c)})}}function bp(){de===null&&gh();var e=de.b;return e===null?0:e.get_effect_pending()}function ys(e,t,n,r){const s=ks;var a=e.filter(p=>!p.settled);if(n.length===0&&a.length===0){r(t.map(s));return}var o=de,l=Ca(),c=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(p=>p.promise)):null;function u(p){l();try{r(p)}catch(b){o.f&vt||an(b,o)}Jn()}if(n.length===0){c.then(()=>u(t.map(s)));return}var d=ws();function f(){Promise.all(n.map(p=>_u(p))).then(p=>u([...t.map(s),...p])).catch(p=>an(p,o)).finally(()=>d())}c?c.then(()=>{l(),f(),Jn()}):f()}function gu(e,t){ys(e,[],[],t)}function Ca(){var e=de,t=be,n=Se,r=me;return function(a=!0){nt(e),pt(t),Sr(n),a&&!(e.f&vt)&&(r?.activate(),r?.apply())}}async function gp(e){var t=Ca(),n=await e;return()=>(t(),n)}async function Si(e){var t=Xr;queueMicrotask(()=>{Xr===t&&Bs(null)});var n=await e;return()=>(Bs(t),queueMicrotask(()=>{Xr===t&&Bs(null)}),n)}async function*_p(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:a}=(await Si(t.next()))();if(s){n=!0;break}var r=Xr;yield a,Bs(r)}}finally{if(!n&&t.return!==void 0)return(await Si(t.return()))().value}}function Jn(e=!0){nt(null),pt(null),Sr(null),e&&me?.deactivate()}function yp(e){const t=Ca(),n=ws();var r=de,s=null;const a=u=>{s={error:u},Ai(r)||an(u,r)};var o=Promise.resolve(e[0]()).catch(a),l={promise:o,settled:!1},c=[l];o.finally(()=>{l.settled=!0,Jn()});for(const u of e.slice(1)){o=o.then(()=>{if(t(),s)throw s.error;if(Ai(r))throw nn;return u()}).catch(a);const d={promise:o,settled:!1};c.push(d),o.finally(()=>{d.settled=!0,Jn()})}return o.then(()=>Promise.resolve()).finally(()=>n()),c}function wp(e){return Promise.all(e.map(t=>t.promise))}function ws(){var e=de,t=e.b,n=me,r=t.is_rendered();return t.update_pending_count(1,n),n.increment(r,e),(s=!1)=>{t.update_pending_count(-1,n),n.decrement(r,e,s)}}let Xr=null;function Bs(e){Xr=e}function ks(e){var t=Je|Xe;return de!==null&&(de.f|=Rn),{ctx:Se,deps:null,effects:null,equals:$c,f:t,fn:e,reactions:null,rv:0,v:Te,wv:0,parent:de,ac:null}}function _u(e,t,n){let r=de;r===null&&dh();var s=void 0,a=St(Te),o=!be,l=new Map;return Op(()=>{var c=de,u=Hc();s=u.promise;try{Promise.resolve(e()).then(u.resolve,u.reject).finally(Jn)}catch(b){u.reject(b),Jn()}var d=me;if(o){if(c.f&gn)var f=ws();if(r.b.is_rendered())l.get(d)?.reject(nn),l.delete(d);else{for(const b of l.values())b.reject(nn);l.clear()}l.set(d,u)}const p=(b,x=void 0)=>{if(f){var g=x===nn;f(g)}if(!(x===nn||c.f&vt)){if(d.activate(),x)a.f|=En,on(a,x);else{a.f&En&&(a.f^=En),on(a,b);for(const[y,k]of l){if(l.delete(y),y===d)break;k.reject(nn)}}d.deactivate()}};u.promise.then(p,b=>p(null,b||"unknown"))}),At(()=>{for(const c of l.values())c.reject(nn)}),new Promise(c=>{function u(d){function f(){d===s?c(a):u(s)}d.then(f,f)}u(s)})}function W(e){const t=ks(e);return Bu(t),t}function co(e){const t=ks(e);return t.equals=tu,t}function kp(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)He(t[n])}}function uo(e){var t,n=de,r=e.parent;if(!mn&&r!==null&&r.f&(vt|it))return Dh(),e.v;nt(r);try{e.f&=~Yn,kp(e),t=Hu(e)}finally{nt(n)}return t}function yu(e){var t=uo(e);if(!e.equals(t)&&(e.wv=ra(),(!me?.is_fork||e.deps===null)&&(me!==null?me.capture(e,t,!0):e.v=t,e.deps===null))){je(e,Be);return}mn||(at!==null?(Ss()||me?.is_fork)&&at.set(e,t):io(e))}function xp(e){if(e.effects!==null)for(const t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(nn),t.teardown=kt,t.ac=null,rs(t,0),mo(t))}function wu(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&Zn(t)}let na=new Set;const Vn=new Map;function Sp(e){na=e}let ku=!1;function St(e,t){var n={f:0,v:e,reactions:null,equals:$c,rv:0,wv:0};return n}function F(e,t){const n=St(e);return Bu(n),n}function Ta(e,t=!1,n=!0){const r=St(e);return t||(r.equals=tu),r}function Ep(e,t){return S(e,we(()=>i(e))),t}function S(e,t,n=!1){be!==null&&(!Kt||be.f&ns)&&au()&&be.f&(Je|Yt|xr|ns)&&(Nt===null||!kr.call(Nt,e))&&Ah();let r=n?oe(t):t;return on(e,r,Vs)}function on(e,t,n=null){if(!e.equals(t)){Vn.set(e,mn?t:e.v);var r=Vt.ensure();if(r.capture(e,t),e.f&Je){const s=e;e.f&Xe&&uo(s),at===null&&io(s)}e.wv=ra(),Su(e,Xe,n),de!==null&&de.f&Be&&!(de.f&(Zt|pn))&&(Mt===null?Vp([e]):Mt.push(e)),!r.is_fork&&na.size>0&&!ku&&xu()}return t}function xu(){ku=!1;for(const e of na)e.f&Be&&je(e,Qt),Or(e)&&Zn(e);na.clear()}function Er(e,t=1){var n=i(e),r=t===1?n++:n--;return S(e,n),r}function Ip(e,t=1){var n=i(e);return S(e,t===1?++n:--n)}function Jr(e){S(e,e.v+1)}function Su(e,t,n){var r=e.reactions;if(r!==null)for(var s=r.length,a=0;a<s;a++){var o=r[a],l=o.f,c=(l&Xe)===0;if(c&&je(o,t),l&Je){var u=o;at?.delete(u),l&Yn||(l&Lt&&(o.f|=Yn),Su(u,Qt,n))}else if(c){var d=o;l&Yt&&hn!==null&&hn.add(d),n!==null?n.push(d):lo(d)}}}function oe(e){if(typeof e!="object"||e===null||et in e)return e;const t=Sa(e);if(t!==Uc&&t!==Qv)return e;var n=new Map,r=Dr(e),s=F(0),a=Fn,o=l=>{if(Fn===a)return l();var c=be,u=Fn;pt(null),Tl(a);var d=l();return pt(c),Tl(u),d};return r&&n.set("length",F(e.length)),new Proxy(e,{defineProperty(l,c,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&Eh();var d=n.get(c);return d===void 0?o(()=>{var f=F(u.value);return n.set(c,f),f}):S(d,u.value,!0),!0},deleteProperty(l,c){var u=n.get(c);if(u===void 0){if(c in l){const d=o(()=>F(Te));n.set(c,d),Jr(s)}}else S(u,Te),Jr(s);return!0},get(l,c,u){if(c===et)return e;var d=n.get(c),f=c in l;if(d===void 0&&(!f||Wt(l,c)?.writable)&&(d=o(()=>{var b=oe(f?l[c]:Te),x=F(b);return x}),n.set(c,d)),d!==void 0){var p=i(d);return p===Te?void 0:p}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=i(d))}else if(u===void 0){var f=n.get(c),p=f?.v;if(f!==void 0&&p!==Te)return{enumerable:!0,configurable:!0,value:p,writable:!0}}return u},has(l,c){if(c===et)return!0;var u=n.get(c),d=u!==void 0&&u.v!==Te||Reflect.has(l,c);if(u!==void 0||de!==null&&(!d||Wt(l,c)?.writable)){u===void 0&&(u=o(()=>{var p=d?oe(l[c]):Te,b=F(p);return b}),n.set(c,u));var f=i(u);if(f===Te)return!1}return d},set(l,c,u,d){var f=n.get(c),p=c in l;if(r&&c==="length")for(var b=u;b<f.v;b+=1){var x=n.get(b+"");x!==void 0?S(x,Te):b in l&&(x=o(()=>F(Te)),n.set(b+"",x))}if(f===void 0)(!p||Wt(l,c)?.writable)&&(f=o(()=>F(void 0)),S(f,oe(u)),n.set(c,f));else{p=f.v!==Te;var g=o(()=>oe(u));S(f,g)}var y=Reflect.getOwnPropertyDescriptor(l,c);if(y?.set&&y.set.call(d,u),!p){if(r&&typeof c=="string"){var k=n.get("length"),_=Number(c);Number.isInteger(_)&&_>=k.v&&S(k,_+1)}Jr(s)}return!0},ownKeys(l){i(s);var c=Reflect.ownKeys(l).filter(f=>{var p=n.get(f);return p===void 0||p.v!==Te});for(var[u,d]of n)d.v!==Te&&!(u in l)&&c.push(u);return c},setPrototypeOf(){Ih()}})}function Ir(e){try{if(e!==null&&typeof e=="object"&&et in e)return e[et]}catch{}return e}function Eu(e,t){return Object.is(Ir(e),Ir(t))}function Ap(e,t,n=!0){try{e===t!=(Ir(e)===Ir(t))&&Qc(n?"===":"!==")}catch{}return e===t===n}function Cp(e,t,n=!0){return e==t!=(Ir(e)==Ir(t))&&Qc(),e==t===n}var Ei,Iu,fo,Au,Cu;function Ii(){if(Ei===void 0){Ei=window,Iu=document,fo=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Au=Wt(t,"firstChild").get,Cu=Wt(t,"nextSibling").get,wl(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),wl(n)&&(n.__t=void 0)}}function Qe(e=""){return document.createTextNode(e)}function Re(e){return Au.call(e)}function Et(e){return Cu.call(e)}function h(e,t){if(!te)return Re(e);var n=Re(ue);if(n===null)n=ue.appendChild(Qe());else if(t&&n.nodeType!==gs){var r=Qe();return n?.before(r),Ie(r),r}return t&&Ra(n),Ie(n),n}function ve(e,t=!1){if(!te){var n=Re(e);return n instanceof Comment&&n.data===""?Et(n):n}if(t){if(ue?.nodeType!==gs){var r=Qe();return ue?.before(r),Ie(r),r}Ra(ue)}return ue}function w(e,t=1,n=!1){let r=te?ue:e;for(var s;t--;)s=r,r=Et(r);if(!te)return r;if(n){if(r?.nodeType!==gs){var a=Qe();return r===null?s?.after(a):r.before(a),Ie(a),a}Ra(r)}return Ie(r),r}function vo(e){e.textContent=""}function Tu(){return!1}function jn(e,t,n){let r=n?{is:n}:void 0;return document.createElementNS(t??qc,e,r)}function Tp(){return document.createDocumentFragment()}function Ru(e=""){return document.createComment(e)}function Rp(e,t,n=""){if(t.startsWith("xlink:")){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n);return}return e.setAttribute(t,n)}function Ra(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===gs;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function Mr(e,t){if(t){const n=document.body;e.autofocus=!0,ot(()=>{document.activeElement===n&&e.focus()})}}function ho(e){te&&Re(e)!==null&&vo(e)}let Al=!1;function ju(){Al||(Al=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function bt(e,t,n,r=!0){r&&n();for(var s of t)e.addEventListener(s,n);At(()=>{for(var a of t)e.removeEventListener(a,n)})}function Dn(e){var t=be,n=de;pt(null),nt(null);try{return e()}finally{pt(t),nt(n)}}function xs(e,t,n,r=n){e.addEventListener(t,()=>Dn(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),ju()}function po(e){de===null&&(be===null&&bh(),mh()),mn&&ph()}function jp(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=de;n!==null&&n.f&it&&(e|=it);var r={ctx:Se,deps:null,nodes:null,f:e|Xe|Lt,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};me?.register_created_effect(r);var s=r;if(e&Wn)dr!==null?dr.push(r):Vt.ensure().schedule(r);else if(t!==null){try{Zn(r)}catch(o){throw He(r),o}s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&!(s.f&Rn)&&(s=s.first,e&Yt&&e&$t&&s!==null&&(s.f|=$t))}if(s!==null&&(s.parent=n,n!==null&&jp(s,n),be!==null&&be.f&Je&&!(e&pn))){var a=be;(a.effects??=[]).push(s)}return r}function Ss(){return be!==null&&!Kt}function At(e){const t=gt(bs,null);return je(t,Be),t.teardown=e,t}function xe(e){po();var t=de.f,n=!be&&(t&Zt)!==0&&(t&gn)===0;if(n){var r=Se;(r.e??=[]).push(e)}else return Du(e)}function Du(e){return gt(Wn|Yc,e)}function Pu(e){return po(),gt(bs|Yc,e)}function Mu(e){return gt(ns,e)}function Es(e){Vt.ensure();const t=gt(pn|Rn,e);return()=>{He(t)}}function Dp(e){Vt.ensure();const t=gt(pn|Rn,e);return(n={})=>new Promise(r=>{n.outro?Bn(t,()=>{He(t),r(void 0)}):(He(t),r(void 0))})}function It(e){return gt(Wn,e)}function Pp(e,t){var n=Se,r={effect:null,ran:!1,deps:e};n.l.$.push(r),r.effect=qe(()=>{if(e(),!r.ran){r.ran=!0;var s=de;try{nt(s.parent),we(t)}finally{nt(s)}}})}function Mp(){var e=Se;qe(()=>{for(var t of e.l.$){t.deps();var n=t.effect;n.f&Be&&n.deps!==null&&je(n,Qt),Or(n)&&Zn(n),t.ran=!1}})}function Op(e){return gt(xr|Rn,e)}function qe(e,t=0){return gt(bs|t,e)}function N(e,t=[],n=[],r=[]){ys(r,t,n,s=>{gt(bs,()=>e(...s.map(i)))})}function zp(e,t=[],n=[],r=[]){if(n.length>0||r.length>0)var s=ws();ys(r,t,n,a=>{gt(Wn,()=>e(...a.map(i))),s&&s()})}function dn(e,t=0){var n=gt(Yt|t,e);return n}function Ou(e,t=0){var n=gt(to|t,e);return n}function rt(e){return gt(Zt|Rn,e)}function zu(e){var t=e.teardown;if(t!==null){const n=mn,r=be;Cl(!0),pt(null);try{t.call(null)}finally{Cl(n),pt(r)}}}function mo(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&Dn(()=>{s.abort(nn)});var r=n.next;n.f&pn?n.parent=null:He(n,t),n=r}}function Lp(e){for(var t=e.first;t!==null;){var n=t.next;t.f&Zt||He(t),t=n}}function He(e,t=!0){var n=!1;(t||e.f&Wc)&&e.nodes!==null&&e.nodes.end!==null&&(Lu(e.nodes.start,e.nodes.end),n=!0),je(e,_i),mo(e,t&&!n),rs(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const a of r)a.stop();zu(e),e.f^=_i,e.f|=vt;var s=e.parent;s!==null&&s.first!==null&&Nu(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Lu(e,t){for(;e!==null;){var n=e===t?null:Et(e);e.remove(),e=n}}function Nu(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 Bn(e,t,n=!0){var r=[];qu(e,r,!0);var s=()=>{n&&He(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||s();for(var l of r)l.out(o)}else s()}function qu(e,t,n){if(!(e.f&it)){e.f^=it;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 a=s.next;if(!(s.f&pn)){var o=(s.f&$t)!==0||(s.f&Zt)!==0&&(e.f&Yt)!==0;qu(s,t,o?n:!1)}s=a}}}function bo(e){Vu(e,!0)}function Vu(e,t){if(e.f&it){e.f^=it,e.f&Be||(je(e,Xe),Vt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&$t)!==0||(n.f&Zt)!==0;Vu(n,s?t:!1),n=r}var a=e.nodes&&e.nodes.t;if(a!==null)for(const o of a)(o.is_global||t)&&o.in()}}function Ai(e=de){return(e.f&vt)!==0}function go(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:Et(n);t.append(n),n=s}}let lr=null;function Np(e){var t=lr;try{if(lr=new Set,we(e),t!==null)for(var n of lr)t.add(n);return lr}finally{lr=t}}function qp(e){for(var t of Np(e))on(t,t.v)}let Fs=!1,mn=!1;function Cl(e){mn=e}let be=null,Kt=!1;function pt(e){be=e}let de=null;function nt(e){de=e}let Nt=null;function Bu(e){be!==null&&(Nt===null?Nt=[e]:Nt.push(e))}let dt=null,yt=0,Mt=null;function Vp(e){Mt=e}let Fu=1,Ln=0,Fn=Ln;function Tl(e){Fn=e}function ra(){return++Fu}function Or(e){var t=e.f;if(t&Xe)return!0;if(t&Je&&(e.f&=~Yn),t&Qt){for(var n=e.deps,r=n.length,s=0;s<r;s++){var a=n[s];if(Or(a)&&yu(a),a.wv>e.wv)return!0}t&Lt&&at===null&&je(e,Be)}return!1}function Uu(e,t,n=!0){var r=e.reactions;if(r!==null&&!(Nt!==null&&kr.call(Nt,e)))for(var s=0;s<r.length;s++){var a=r[s];a.f&Je?Uu(a,t,!1):t===a&&(n?je(a,Xe):a.f&Be&&je(a,Qt),lo(a))}}function Hu(e){var t=dt,n=yt,r=Mt,s=be,a=Nt,o=Se,l=Kt,c=Fn,u=e.f;dt=null,yt=0,Mt=null,be=u&(Zt|pn)?null:e,Nt=null,Sr(e.ctx),Kt=!1,Fn=++Ln,e.ac!==null&&(Dn(()=>{e.ac.abort(nn)}),e.ac=null);try{e.f|=yi;var d=e.fn,f=d();e.f|=gn;var p=e.deps,b=me?.is_fork;if(dt!==null){var x;if(b||rs(e,yt),p!==null&&yt>0)for(p.length=yt+dt.length,x=0;x<dt.length;x++)p[yt+x]=dt[x];else e.deps=p=dt;if(Ss()&&e.f&Lt)for(x=yt;x<p.length;x++)(p[x].reactions??=[]).push(e)}else!b&&p!==null&&yt<p.length&&(rs(e,yt),p.length=yt);if(au()&&Mt!==null&&!Kt&&p!==null&&!(e.f&(Je|Qt|Xe)))for(x=0;x<Mt.length;x++)Uu(Mt[x],e);if(s!==null&&s!==e){if(Ln++,s.deps!==null)for(let g=0;g<n;g+=1)s.deps[g].rv=Ln;if(t!==null)for(const g of t)g.rv=Ln;Mt!==null&&(r===null?r=Mt:r.push(...Mt))}return e.f&En&&(e.f^=En),f}catch(g){return ou(g)}finally{e.f^=yi,dt=t,yt=n,Mt=r,be=s,Nt=a,Sr(o),Kt=l,Fn=c}}function Bp(e,t){let n=t.reactions;if(n!==null){var r=Zv.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&Je&&(dt===null||!kr.call(dt,t))){var a=t;a.f&Lt&&(a.f^=Lt,a.f&=~Yn),a.v!==Te&&io(a),xp(a),rs(a,0)}}function rs(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)Bp(e,n[r])}function Zn(e){var t=e.f;if(!(t&vt)){je(e,Be);var n=de,r=Fs;de=e,Fs=!0;try{t&(Yt|to)?Lp(e):mo(e),zu(e);var s=Hu(e);e.teardown=typeof s=="function"?s:null,e.wv=Fu;var a;Bc&&Vh&&e.f&Xe&&e.deps}finally{Fs=r,de=n}}}async function Is(){await Promise.resolve(),An()}function Fp(){return Vt.ensure().settled()}function i(e){var t=e.f,n=(t&Je)!==0;if(lr?.add(e),be!==null&&!Kt){var r=de!==null&&(de.f&vt)!==0;if(!r&&(Nt===null||!kr.call(Nt,e))){var s=be.deps;if(be.f&yi)e.rv<Ln&&(e.rv=Ln,dt===null&&s!==null&&s[yt]===e?yt++:dt===null?dt=[e]:dt.push(e));else{(be.deps??=[]).push(e);var a=e.reactions;a===null?e.reactions=[be]:kr.call(a,be)||a.push(be)}}}if(mn&&Vn.has(e))return Vn.get(e);if(n){var o=e;if(mn){var l=o.v;return(!(o.f&Be)&&o.reactions!==null||Wu(o))&&(l=uo(o)),Vn.set(o,l),l}var c=(o.f&Lt)===0&&!Kt&&be!==null&&(Fs||(be.f&Lt)!==0),u=(o.f&gn)===0;Or(o)&&(c&&(o.f|=Lt),yu(o)),c&&!u&&(wu(o),Ku(o))}if(at?.has(e))return at.get(e);if(e.f&En)throw e.v;return e.v}function Ku(e){if(e.f|=Lt,e.deps!==null)for(const t of e.deps)(t.reactions??=[]).push(e),t.f&Je&&!(t.f&Lt)&&(wu(t),Ku(t))}function Wu(e){if(e.v===Te)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(Vn.has(t)||t.f&Je&&Wu(t))return!0;return!1}function Up(e){return e&&i(e)}function we(e){var t=Kt;try{return Kt=!0,e()}finally{Kt=t}}function _o(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if(et in e)sa(e);else if(!Array.isArray(e))for(let t in e){const n=e[t];typeof n=="object"&&n&&et in n&&sa(n)}}}function sa(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{sa(e[r],t)}catch{}const n=Sa(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){const r=Fc(n);for(let s in r){const a=r[s].get;if(a)try{a.call(e)}catch{}}}}}function Hp(e,t){if(Jc(),te){const n=window.__svelte?.h;if(n?.has(e))return n.get(e);Mh()}return t()}const Yr=Symbol("events"),Yu=new Set,Ci=new Set;function Kp(e){if(!te)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 Gu(e,t,n,r={}){function s(a){if(r.capture||Ti.call(t,a),!a.cancelBubble)return Dn(()=>n?.call(this,a))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?ot(()=>{t.addEventListener(e,s,r)}):t.addEventListener(e,s,r),s}function De(e,t,n,r,s){var a={capture:r,passive:s},o=Gu(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&At(()=>{t.removeEventListener(e,o,a)})}function H(e,t,n){(t[Yr]??={})[e]=n}function le(e){for(var t=0;t<e.length;t++)Yu.add(e[t]);for(var n of Ci)n(e)}let Rl=null;function Ti(e){var t=this,n=t.ownerDocument,r=e.type,s=e.composedPath?.()||[],a=s[0]||e.target;Rl=e;var o=0,l=Rl===e&&e[Yr];if(l){var c=s.indexOf(l);if(c!==-1&&(t===document||t===window)){e[Yr]=t;return}var u=s.indexOf(t);if(u===-1)return;c<=u&&(o=c)}if(a=s[o]||e.target,a!==t){Kn(e,"currentTarget",{configurable:!0,get(){return a||n}});var d=be,f=de;pt(null),nt(null);try{for(var p,b=[];a!==null;){var x=a.assignedSlot||a.parentNode||a.host||null;try{var g=a[Yr]?.[r];g!=null&&(!a.disabled||e.target===a)&&g.call(a,e)}catch(y){p?b.push(y):p=y}if(e.cancelBubble||x===t||x===null)break;a=x}if(p){for(let y of b)queueMicrotask(()=>{throw y});throw p}}finally{e[Yr]=t,delete e.currentTarget,pt(d),nt(f)}}}function Wp(e,t,n,r,s,a=!1,o=!1){let l,c;try{l=e()}catch(u){c=u}if(typeof l!="function"&&(a||l!=null||c)){const u=r?.[wt];s?`${u}${s[0]}${s[1]}`:`${u}`;const d=n[0]?.eventPhase<Event.BUBBLING_PHASE?"capture":"";if(n[0]?.type+d,Ph(),c)throw c}l?.apply(t,n)}const Yp=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function Xu(e){return Yp?.createHTML(e)??e}function yo(e){var t=jn("template");return t.innerHTML=Xu(e.replaceAll("<!>","<!---->")),t.content}const Gp=tr?"template":"TEMPLATE",Xp=tr?"script":"SCRIPT";function Ke(e,t){var n=de;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function A(e,t){var n=(t&$i)!==0,r=(t&Nc)!==0,s,a=!e.startsWith("<!>");return()=>{if(te)return Ke(ue,null),ue;s===void 0&&(s=yo(a?e:"<!>"+e),n||(s=Re(s)));var o=r||fo?document.importNode(s,!0):s.cloneNode(!0);if(n){var l=Re(o),c=o.lastChild;Ke(l,c)}else Ke(o,o);return o}}function Ju(e,t,n="svg"){var r=!e.startsWith("<!>"),s=(t&$i)!==0,a=`<${n}>${r?e:"<!>"+e}</${n}>`,o;return()=>{if(te)return Ke(ue,null),ue;if(!o){var l=yo(a),c=Re(l);if(s)for(o=document.createDocumentFragment();Re(c);)o.appendChild(Re(c));else o=Re(c)}var u=o.cloneNode(!0);if(s){var d=Re(u),f=u.lastChild;Ke(d,f)}else Ke(u,u);return u}}function wo(e,t){return Ju(e,t,"svg")}function Jp(e,t){return Ju(e,t,"math")}function Zu(e,t){var n=Tp();for(var r of e){if(typeof r=="string"){n.append(Qe(r));continue}if(r===void 0||r[0][0]==="/"){n.append(Ru(r?r[0].slice(3):""));continue}const[l,c,...u]=r,d=l==="svg"?ms:l==="math"?eo:t;var s=jn(l,d,c?.is);for(var a in c)Rp(s,a,c[a]);if(u.length>0){var o=s.nodeName===Gp?s.content:s;o.append(Zu(u,s.nodeName==="foreignObject"?void 0:d))}n.append(s)}return n}function Zp(e,t){var n=(t&$i)!==0,r=(t&Nc)!==0,s;return()=>{if(te)return Ke(ue,null),ue;if(s===void 0){const c=t&Xv?ms:t&Jv?eo:void 0;s=Zu(e,c),n||(s=Re(s))}var a=r||fo?document.importNode(s,!0):s.cloneNode(!0);if(n){var o=Re(a),l=a.lastChild;Ke(o,l)}else Ke(a,a);return a}}function Qp(e){return()=>$p(e())}function $p(e){if(te)return e;const t=e.nodeType===Xc,n=e.nodeName===Xp?[e]:e.querySelectorAll("script"),r=de;for(const a of n){const o=jn("script");for(var s of a.attributes)o.setAttribute(s.name,s.value);o.textContent=a.textContent,(t?e.firstChild===a:e===a)&&(r.nodes.start=o),(t?e.lastChild===a:e===a)&&(r.nodes.end=o),a.replaceWith(o)}return e}function Xt(e=""){if(!te){var t=Qe(e+"");return Ke(t,t),t}var n=ue;return n.nodeType!==gs?(n.before(n=Qe()),Ie(n)):Ra(n),Ke(n,n),n}function Ue(){if(te)return Ke(ue,null),ue;var e=document.createDocumentFragment(),t=document.createComment(""),n=Qe();return e.append(t,n),Ke(t,n),e}function E(e,t){if(te){var n=de;(!(n.f&gn)||n.nodes.end===null)&&(n.nodes.end=ue),ct();return}e!==null&&e.before(t)}function em(){if(te&&ue&&ue.nodeType===_n&&ue.textContent?.startsWith("$")){const e=ue.textContent.substring(1);return ct(),e}return(window.__svelte??={}).uid??=1,`c${window.__svelte.uid++}`}const tm=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function nm(e){return tm.includes(e)||e.toLowerCase()==="!doctype"}function rm(e){return e.endsWith("capture")&&e!=="gotpointercapture"&&e!=="lostpointercapture"}const sm=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function am(e){return sm.includes(e)}const im={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 om(e){return e=e.toLowerCase(),im[e]??e}const lm=["touchstart","touchmove"];function cm(e){return lm.includes(e)}const um=["textarea","script","style","title"];function dm(e){return um.includes(e)}function Qu(e){return e?.replace(/\//g,"/​")}let aa=!0;function fr(e){aa=e}function O(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 ed(e,t)}function $u(e,t){Ii(),t.intro=t.intro??!1;const n=t.target,r=te,s=ue;try{for(var a=Re(n);a&&(a.nodeType!==_n||a.data!==ya);)a=Et(a);if(!a)throw Hn;Ce(!0),Ie(a);const o=ed(e,{...t,anchor:a});return Ce(!1),o}catch(o){if(o instanceof Error&&o.message.split(`
6
+ `).some(l=>l.startsWith("https://svelte.dev/e/")))throw o;return o!==Hn&&console.warn("Failed to hydrate: ",o),t.recover===!1&&xh(),Ii(),vo(n),Ce(!1),Ne(e,t)}finally{Ce(r),Ie(s)}}const zs=new Map;function ed(e,{target:t,anchor:n,props:r={},events:s,context:a,intro:o=!0,transformError:l}){Ii();var c=void 0,u=Dp(()=>{var d=n??t.appendChild(Qe());bu(d,{pending:()=>{}},b=>{re({});var x=Se;if(a&&(x.c=a),s&&(r.$$events=s),te&&Ke(b,null),aa=o,c=e(b,r)||{},aa=!0,te&&(de.nodes.end=ue,ue===null||ue.nodeType!==_n||ue.data!==ka))throw _s(),Hn;se()},l);var f=new Set,p=b=>{for(var x=0;x<b.length;x++){var g=b[x];if(!f.has(g)){f.add(g);var y=cm(g);for(const m of[t,document]){var k=zs.get(m);k===void 0&&(k=new Map,zs.set(m,k));var _=k.get(g);_===void 0?(m.addEventListener(g,Ti,{passive:y}),k.set(g,1)):k.set(g,_+1)}}}};return p(xa(Yu)),Ci.add(p),()=>{for(var b of f)for(const y of[t,document]){var x=zs.get(y),g=x.get(b);--g==0?(y.removeEventListener(b,Ti),x.delete(b),x.size===0&&zs.delete(y)):x.set(b,g)}Ci.delete(p),d!==n&&d.parentNode?.removeChild(d)}});return Ri.set(c,u),c}let Ri=new WeakMap;function Ge(e,t){const n=Ri.get(e);return n?(Ri.delete(e),n(t)):Promise.resolve()}function fm(e){const t=e();t&&nm(t)&&Bh()}function vm(e){const t=e();t&&!(typeof t=="string")&&uh()}function hm(e,t){e!=null&&typeof e.subscribe!="function"&&ch()}function td(e){return e.toString=()=>(lh(),""),e}class zr{anchor;#e=new Map;#t=new Map;#n=new Map;#a=new Set;#s=!0;constructor(t,n=!0){this.anchor=t,this.#s=n}#i=t=>{if(this.#e.has(t)){var n=this.#e.get(t),r=this.#t.get(n);if(r)bo(r),this.#a.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[a,o]of this.#e){if(this.#e.delete(a),a===t)break;const l=this.#n.get(o);l&&(He(l.effect),this.#n.delete(o))}for(const[a,o]of this.#t){if(a===n||this.#a.has(a))continue;const l=()=>{if(Array.from(this.#e.values()).includes(a)){var u=document.createDocumentFragment();go(o,u),u.append(Qe()),this.#n.set(a,{effect:o,fragment:u})}else He(o);this.#a.delete(a),this.#t.delete(a)};this.#s||!r?(this.#a.add(a),Bn(o,l,!1)):l()}}};#r=t=>{this.#e.delete(t);const n=Array.from(this.#e.values());for(const[r,s]of this.#n)n.includes(r)||(He(s.effect),this.#n.delete(r))};ensure(t,n){var r=me,s=Tu();if(n&&!this.#t.has(t)&&!this.#n.has(t))if(s){var a=document.createDocumentFragment(),o=Qe();a.append(o),this.#n.set(t,{effect:rt(()=>n(o)),fragment:a})}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.#i),r.ondiscard(this.#r)}else te&&(this.anchor=ue),this.#i(r)}}function en(e,t,...n){var r=new zr(e);dn(()=>{const s=t()??null;r.ensure(s,s&&(a=>s(a,...n)))},$t)}function pm(e,t){const n=(r,...s)=>{var a=ro;Sl(e);try{return t(r,...s)}finally{Sl(a)}};return td(n),n}function mm(e){return(t,...n)=>{var r=e(...n),s;if(te)s=ue,ct();else{var a=r.render().trim(),o=yo(a);s=Re(o),t.before(s)}const l=r.setup?.(s);Ke(s,s),typeof l=="function"&&At(l)}}function bm(){return be===null&&kh(),(be.ac??=new AbortController).signal}function ko(e){Se===null&&Pr(),xe(()=>{const t=we(e);if(typeof t=="function")return t})}function xo(e){Se===null&&Pr(),ko(()=>()=>we(e))}function gm(e,t,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(e,{detail:t,bubbles:n,cancelable:r})}function _m(){const e=Se;return e===null&&Pr(),(t,n,r)=>{const s=e.s.$$events?.[t];if(s){const a=Dr(s)?s.slice():[s],o=gm(t,n,r);for(const l of a)l.call(e.x,o);return!o.defaultPrevented}return!0}}function ym(e){Se===null&&Pr(),Se.l===null&&Zc(),nd(Se).b.push(e)}function wm(e){Se===null&&Pr(),Se.l===null&&Zc(),nd(Se).a.push(e)}function nd(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}const rd=Object.freeze(Object.defineProperty({__proto__:null,afterUpdate:wm,beforeUpdate:ym,createContext:Xh,createEventDispatcher:_m,createRawSnippet:mm,flushSync:An,fork:vp,getAbortSignal:bm,getAllContexts:Jh,getContext:so,hasContext:su,hydratable:Hp,hydrate:$u,mount:Ne,onDestroy:xo,onMount:ko,setContext:ao,settled:Fp,tick:Is,unmount:Ge,untrack:we},Symbol.toStringTag,{value:"Module"}));function km(){return Symbol(Vc)}function sd(e,t,n,r){return e!==t&&typeof t=="object"&&et in t&&Th(n,Qu(r)),e}function xm(e,t,n,r,s){return sd(n==="="?e[t]=r:n==="&&="?e[t]&&=r():n==="||="?e[t]||=r():n==="??="?e[t]??=r():null,we(()=>e[t]),t,s)}async function Sm(e,t,n,r,s){return sd(n==="="?e[t]=await r:n==="&&="?e[t]&&=await r():n==="||="?e[t]||=await r():n==="??="?e[t]??=await r():null,we(()=>e[t]),t,s)}var jl=new Map;function Em(e){var t=jl.get(e);if(t){for(const n of t)n.remove();jl.delete(e)}}function Im(e,t,n){return(...r)=>{const s=e(...r);var a=te?s:s.nodeType===Xc?s.firstChild:s;return ad(a,t,n),s}}function Am(e,t,n){e.__svelte_meta={parent:qs,loc:{file:t,line:n[0],column:n[1]}},n[2]&&ad(e.firstChild,t,n[2])}function ad(e,t,n){for(var r=0,s=0;e&&r<n.length;){if(te&&e.nodeType===_n){var a=e;a.data[0]===ya?s+=1:a.data[0]===ka&&(s-=1)}s===0&&e.nodeType===Gc&&Am(e,t,n[r++]),e=e.nextSibling}}function Cm(e){const t=St(e);function n(r,s){let a={},o={},l,c=!1,u=r;return dn(()=>{if(a!==(a=i(t))){if(l){for(var d in o)delete o[d];He(l)}l=rt(()=>{u=u[ah]??u,c&&fr(!1);var f=new.target?new a(u,s):a(u,s);f&&Object.defineProperties(o,Object.getOwnPropertyDescriptors(f)),c&&fr(!0)}),de.nodes=l.nodes}},$t),c=!0,te&&(u=ue),o}return n[wt]=e[wt],n[ir]={fn:e,current:t,update:r=>{S(n[ir].current,r[ir].fn),r[ir].current=n[ir].current}},n}function Tm(e){const t=Se?.function,n=Se?.p?.function;return{mutation:(r,s,a,o,l)=>{const c=s[0];if(Dl(e,c)||!n)return a;let u=e;for(let f=0;f<s.length-1;f++)if(u=u[s[f]],!u?.[et])return a;const d=Qu(`${t[wt]}:${o}:${l}`);return zh(c,d,r,n[wt]),a},binding:(r,s,a)=>{!Dl(e,r)&&n&&a()?.[et]&&Oh(t[wt],r,s[wt],n[wt])}}}function Dl(e,t){const n=et in e||Ea in e;return!!Wt(e,t)?.set||n&&t in e||!(t in e)}function Rm(e){e&&vh(e[wt]??"a component",e.name)}function jm(){const e=Se?.function;function t(n){fh(n,e[wt])}return{$destroy:()=>t("$destroy()"),$on:()=>t("$on(...)"),$set:()=>t("$set(...)")}}function Dm(e,t,n=!1){po();let r=!0,s=Te;Mu(()=>{try{var a=e()}catch(l){s=l;return}var o=Xn(a,!0,!0);we(()=>{if(n){if(t(...o),!r){const l=Wh("$inspect(...)");l&&(console.groupCollapsed("stack trace"),console.log(l),console.groupEnd())}}else t(r?"init":"update",...o)}),r=!1}),qe(()=>{try{e()}catch{}s!==Te&&(console.error(s),s=Te)})}function Pm(e,t=[],n=[],r){var s=te,a=null;if(s&&(ct(),a=Gn(!1)),n.length===0&&t.every(c=>c.settled)){r(e),s&&Ie(a);return}const o=ws();if(s){var l=ue;Ie(a)}ys(t,[],n,c=>{s&&(Ce(!0),Ie(l));try{for(const u of c)i(u);r(e,...c)}finally{s&&Ce(!1),o()}})}function Mm(e,...t){(typeof e!="object"||!(e instanceof Node))&&xl();for(let n of t)typeof n!="function"&&xl()}const Pl=0,Ml=1,Om=2;function zm(e,t,n,r,s){te&&ct();var a=Te,o=St(a),l=St(a),c=new zr(e);dn(()=>{var u=me;u.deactivate();var d=t();u.activate();var f=!1;let p=te&&kl(d)===(e.data===wa);if(p&&(Ie(Gn()),Ce(!1)),kl(d)){var b=Ca(),x=!1;const g=y=>{if(!f){x=!0,b(!1),Vt.ensure(),te&&Ce(!1);try{y()}finally{Jn(!1),pr||An()}}};d.then(y=>{g(()=>{on(o,y),c.ensure(Ml,r&&(k=>r(k,o)))})},y=>{g(()=>{if(on(l,y),c.ensure(Om,s&&(k=>s(k,l))),!s)throw l.v})}),te?c.ensure(Pl,n):ot(()=>{x||g(()=>{c.ensure(Pl,n)})})}else on(o,d),c.ensure(Ml,r&&(g=>r(g,o)));return p&&Ce(!0),()=>{f=!0}})}function K(e,t,n=!1){var r;te&&(r=ue,ct());var s=new zr(e),a=n?$t:0;function o(l,c){if(te){var u=no(r);if(l!==parseInt(u.substring(1))){var d=Gn();Ie(d),s.anchor=d,Ce(!1),s.ensure(l,c),Ce(!0);return}}s.ensure(l,c)}dn(()=>{var l=!1;t((c,u=0)=>{l=!0,o(u,c)}),l||o(-1,null)},a)}const Lm=Symbol("NaN");function Nm(e,t,n){te&&ct();var r=new zr(e);dn(()=>{var s=t();s!==s&&(s=Lm),r.ensure(s,n)})}function qm(e,t){te&&Ie(Re(e)),qe(()=>{var n=t();for(var r in n){var s=n[r];s?e.style.setProperty(r,s):e.style.removeProperty(r)}})}function mt(e,t){return t}function Vm(e,t,n){for(var r=[],s=t.length,a,o=t.length,l=0;l<s;l++){let f=t[l];Bn(f,()=>{if(a){if(a.pending.delete(f),a.done.add(f),a.pending.size===0){var p=e.outrogroups;ji(e,xa(a.done)),p.delete(a),p.size===0&&(e.outrogroups=null)}}else o-=1},!1)}if(o===0){var c=r.length===0&&n!==null;if(c){var u=n,d=u.parentNode;vo(d),d.append(u),e.items.clear()}ji(e,t,!c)}else a={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(a)}function ji(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(const o of e.pending.values())for(const l of o)r.add(e.items.get(l).e)}for(var s=0;s<t.length;s++){var a=t[s];if(r?.has(a)){a.f|=sn;const o=document.createDocumentFragment();go(a,o)}else He(t[s],n)}}var Ol;function he(e,t,n,r,s,a=null){var o=e,l=new Map,c=(t&zc)!==0;if(c){var u=e;o=te?Ie(Re(u)):u.appendChild(Qe())}te&&ct();var d=null,f=co(()=>{var m=n();return Dr(m)?m:m==null?[]:xa(m)}),p,b=new Map,x=!0;function g(m){_.effect.f&vt||(_.pending.delete(m),_.fallback=d,Bm(_,p,o,t,r),d!==null&&(p.length===0?d.f&sn?(d.f^=sn,Gr(d,null,o)):bo(d):Bn(d,()=>{d=null})))}function y(m){_.pending.delete(m)}var k=dn(()=>{p=i(f);var m=p.length;let I=!1;if(te){var D=no(o)===wa;D!==(m===0)&&(o=Gn(),Ie(o),Ce(!1),I=!0)}for(var T=new Set,j=me,z=Tu(),R=0;R<m;R+=1){te&&ue.nodeType===_n&&ue.data===ka&&(o=ue,I=!0,Ce(!1));var M=p[R],C=r(M,R),P=x?null:l.get(C);P?(P.v&&on(P.v,M),P.i&&on(P.i,R),z&&j.unskip_effect(P.e)):(P=Fm(l,x?o:Ol??=Qe(),M,C,R,s,t,n),x||(P.e.f|=sn),l.set(C,P)),T.add(C)}if(m===0&&a&&!d&&(x?d=rt(()=>a(o)):(d=rt(()=>a(Ol??=Qe())),d.f|=sn)),m>T.size&&hh(),te&&m>0&&Ie(Gn()),!x)if(b.set(j,T),z){for(const[B,L]of l)T.has(B)||j.skip_effect(L.e);j.oncommit(g),j.ondiscard(y)}else g(j);I&&Ce(!0),i(f)}),_={effect:k,items:l,pending:b,outrogroups:null,fallback:d};x=!1,te&&(o=ue)}function Ur(e){for(;e!==null&&!(e.f&Zt);)e=e.next;return e}function Bm(e,t,n,r,s){var a=(r&Bv)!==0,o=t.length,l=e.items,c=Ur(e.effect.first),u,d=null,f,p=[],b=[],x,g,y,k;if(a)for(k=0;k<o;k+=1)x=t[k],g=s(x,k),y=l.get(g).e,y.f&sn||(y.nodes?.a?.measure(),(f??=new Set).add(y));for(k=0;k<o;k+=1){if(x=t[k],g=s(x,k),y=l.get(g).e,e.outrogroups!==null)for(const M of e.outrogroups)M.pending.delete(y),M.done.delete(y);if(y.f&it&&(bo(y),a&&(y.nodes?.a?.unfix(),(f??=new Set).delete(y))),y.f&sn)if(y.f^=sn,y===c)Gr(y,null,n);else{var _=d?d.next:c;y===e.effect.last&&(e.effect.last=y.prev),y.prev&&(y.prev.next=y.next),y.next&&(y.next.prev=y.prev),kn(e,d,y),kn(e,y,_),Gr(y,_,n),d=y,p=[],b=[],c=Ur(d.next);continue}if(y!==c){if(u!==void 0&&u.has(y)){if(p.length<b.length){var m=b[0],I;d=m.prev;var D=p[0],T=p[p.length-1];for(I=0;I<p.length;I+=1)Gr(p[I],m,n);for(I=0;I<b.length;I+=1)u.delete(b[I]);kn(e,D.prev,T.next),kn(e,d,D),kn(e,T,m),c=m,d=T,k-=1,p=[],b=[]}else u.delete(y),Gr(y,c,n),kn(e,y.prev,y.next),kn(e,y,d===null?e.effect.first:d.next),kn(e,d,y),d=y;continue}for(p=[],b=[];c!==null&&c!==y;)(u??=new Set).add(c),b.push(c),c=Ur(c.next);if(c===null)continue}y.f&sn||p.push(y),d=y,c=Ur(y.next)}if(e.outrogroups!==null){for(const M of e.outrogroups)M.pending.size===0&&(ji(e,xa(M.done)),e.outrogroups?.delete(M));e.outrogroups.size===0&&(e.outrogroups=null)}if(c!==null||u!==void 0){var j=[];if(u!==void 0)for(y of u)y.f&it||j.push(y);for(;c!==null;)!(c.f&it)&&c!==e.fallback&&j.push(c),c=Ur(c.next);var z=j.length;if(z>0){var R=r&zc&&o===0?n:null;if(a){for(k=0;k<z;k+=1)j[k].nodes?.a?.measure();for(k=0;k<z;k+=1)j[k].nodes?.a?.fix()}Vm(e,j,R)}}a&&ot(()=>{if(f!==void 0)for(y of f)y.nodes?.a?.apply()})}function Fm(e,t,n,r,s,a,o,l){var c=o&qv?o&Fv?St(n):Ta(n,!1,!1):null,u=o&Vv?St(s):null;return{v:c,i:u,e:rt(()=>(a(t,c??n,u??s,l),()=>{e.delete(r)}))}}function Gr(e,t,n){if(e.nodes)for(var r=e.nodes.start,s=e.nodes.end,a=t&&!(t.f&sn)?t.nodes.start:n;r!==null;){var o=Et(r);if(a.before(r),r===s)return;r=o}}function kn(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function Um(e,t,n=!1,r=!1,s=!1,a=!1){var o=e,l="";if(n){var c=e;te&&(o=Ie(Re(c)))}N(()=>{var u=de;if(l===(l=t()??"")){te&&ct();return}if(n&&!te){u.nodes=null,c.innerHTML=l,l!==""&&Ke(Re(c),c.lastChild);return}if(u.nodes!==null&&(Lu(u.nodes.start,u.nodes.end),u.nodes=null),l!==""){if(te){ue.data;for(var d=ct(),f=d;d!==null&&(d.nodeType!==_n||d.data!=="");)f=d,d=Et(d);if(d===null)throw _s(),Hn;Ke(ue,f),o=Ie(d);return}var p=r?ms:s?eo:void 0,b=jn(r?"svg":s?"math":"template",p);b.innerHTML=l;var x=r||s?b:b.content;if(Ke(Re(x),x.lastChild),r||s)for(;Re(x);)o.before(Re(x));else o.before(x)}})}function Hm(e,t,n,r,s){te&&ct();var a=t.$$slots?.[n],o=!1;a===!0&&(a=t[n==="default"?"children":n],o=!0),a===void 0?s!==null&&s(e):a(e,o?()=>r:r)}function Km(e){const t={};e.children&&(t.default=!0);for(const n in e.$$slots)t[n]=!0;return t}function As(e,t,n){var r;te&&(r=ue,ct());var s=new zr(e);dn(()=>{var a=t()??null;if(te){var o=no(r),l=o===ya,c=a!==null;if(l!==c){var u=Gn();Ie(u),s.anchor=u,Ce(!1),s.ensure(a,a&&(d=>n(d,a))),Ce(!0);return}}s.ensure(a,a&&(d=>n(d,a)))},$t)}const Wm=()=>performance.now(),rn={tick:e=>requestAnimationFrame(e),now:()=>Wm(),tasks:new Set};function id(){const e=rn.now();rn.tasks.forEach(t=>{t.c(e)||(rn.tasks.delete(t),t.f())}),rn.tasks.size!==0&&rn.tick(id)}function Ym(e){let t;return rn.tasks.size===0&&rn.tick(id),{promise:new Promise(n=>{rn.tasks.add(t={c:e,f:n})}),abort(){rn.tasks.delete(t)}}}function ia(e,t){Dn(()=>{e.dispatchEvent(new CustomEvent(t))})}function Gm(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 zl(e){const t={},n=e.split(";");for(const r of n){const[s,a]=r.split(":");if(!s||a===void 0)break;const o=Gm(s.trim());t[o]=a.trim()}return t}const Xm=e=>e;let od=null;function Ll(e){od=e}function Jm(e,t,n){var r=od??de,s=r.nodes,a,o,l,c=null;s.a??={element:e,measure(){a=this.element.getBoundingClientRect()},apply(){if(l?.abort(),o=this.element.getBoundingClientRect(),a.left!==o.left||a.right!==o.right||a.top!==o.top||a.bottom!==o.bottom){const u=t()(this.element,{from:a,to:o},n?.());l=oa(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 p=e.style;c={position:p.position,width:p.width,height:p.height,transform:p.transform},p.position="absolute",p.width=d,p.height=f;var b=e.getBoundingClientRect();if(a.left!==b.left||a.top!==b.top){var x=`translate(${a.left-b.left}px, ${a.top-b.top}px)`;p.transform=p.transform?`${p.transform} ${x}`:x}}}},unfix(){if(c){var u=e.style;u.position=c.position,u.width=c.width,u.height=c.height,u.transform=c.transform}}},s.a.element=e}function Zm(e,t,n,r){var s=(e&Wv)!==0,a=(e&Yv)!==0,o=s&&a,l=(e&Gv)!==0,c=o?"both":s?"in":"out",u,d=t.inert,f=t.style.overflow,p,b;function x(){return Dn(()=>u??=n()(t,r?.()??{},{direction:c}))}var g={is_global:l,in(){if(t.inert=d,!s){b?.abort(),b?.reset?.();return}a||p?.abort(),p=oa(t,x(),b,1,()=>{ia(t,"introend"),p?.abort(),p=u=void 0,t.style.overflow=f})},out(m){if(!a){m?.(),u=void 0;return}t.inert=!0,b=oa(t,x(),p,0,()=>{ia(t,"outroend"),m?.()})},stop:()=>{p?.abort(),b?.abort()}},y=de;if((y.nodes.t??=[]).push(g),s&&aa){var k=l;if(!k){for(var _=y.parent;_&&_.f&$t;)for(;(_=_.parent)&&!(_.f&Yt););k=!_||(_.f&gn)!==0}k&&It(()=>{we(()=>g.in())})}}function oa(e,t,n,r,s){var a=r===1;if(or(t)){var o,l=!1;return ot(()=>{if(!l){var y=t({direction:a?"in":"out"});o=oa(e,y,n,r,s)}}),{abort:()=>{l=!0,o?.abort()},deactivate:()=>o.deactivate(),reset:()=>o.reset(),t:()=>o.t()}}if(n?.deactivate(),!t?.duration&&!t?.delay)return ia(e,a?"introstart":"outrostart"),s(),{abort:kt,deactivate:kt,reset:kt,t:()=>r};const{delay:c=0,css:u,tick:d,easing:f=Xm}=t;var p=[];if(a&&n===void 0&&(d&&d(0,1),u)){var b=zl(u(0,1));p.push(b,b)}var x=()=>1-r,g=e.animate(p,{duration:c,fill:"forwards"});return g.onfinish=()=>{g.cancel(),ia(e,a?"introstart":"outrostart");var y=n?.t()??1-r;n?.abort();var k=r-y,_=t.duration*Math.abs(k),m=[];if(_>0){var I=!1;if(u)for(var D=Math.ceil(_/16.666666666666668),T=0;T<=D;T+=1){var j=y+k*f(T/D),z=zl(u(j,1-j));m.push(z),I||=z.overflow==="hidden"}I&&(e.style.overflow="hidden"),x=()=>{var R=g.currentTime;return y+k*f(R/_)},d&&Ym(()=>{if(g.playState!=="running")return!1;var R=x();return d(R,1-R),!0})}g=e.animate(m,{duration:_,fill:"forwards"}),g.onfinish=()=>{x=()=>r,d?.(r,1-r),s()}},{abort:()=>{g&&(g.cancel(),g.effect=null,g.onfinish=kt)},deactivate:()=>{s=kt},reset:()=>{r===0&&d?.(1,0)},t:()=>x()}}function Qm(e,t,n,r,s,a){let o=te;te&&ct();var l=null;te&&ue.nodeType===Gc&&(l=ue,ct());var c=te?ue:e,u=de,d=new zr(c,!1);dn(()=>{const f=t()||null;var p=s?s():n||f==="svg"?ms:void 0;if(f===null){d.ensure(null,null),fr(!0);return}return d.ensure(f,b=>{if(f){if(l=te?l:jn(f,p),Ke(l,l),r){te&&dm(f)&&l.append(document.createComment(""));var x=te?Re(l):l.appendChild(Qe());te&&(x===null?Ce(!1):Ie(x)),Ll(u),r(l,x),Ll(null)}de.nodes.end=l,b.before(l)}te&&Ie(b)}),fr(!0),()=>{f&&fr(!1)}},$t),At(()=>{fr(!0)}),o&&(Ce(!0),Ie(c))}function $m(e,t){let n=null,r=te;var s;if(te){n=ue;for(var a=Re(document.head);a!==null&&(a.nodeType!==_n||a.data!==e);)a=Et(a);if(a===null)Ce(!1);else{var o=Et(a);a.remove(),Ie(o)}}te||(s=document.head.appendChild(Qe()));try{dn(()=>t(s),Wc|Rn)}finally{r&&(Ce(!0),Ie(n))}}function eb(e,t){It(()=>{var n=e.getRootNode(),r=n.host?n:n.head??n.ownerDocument.head;if(!r.querySelector("#"+t.hash)){const s=jn("style");s.id=t.hash,s.textContent=t.code,r.appendChild(s)}})}function ld(e,t,n){It(()=>{var r=we(()=>t(e,n?.())||{});if(n&&r?.update){var s=!1,a={};qe(()=>{var o=n();_o(o),s&&eu(a,o)&&(a=o,r.update(o))}),s=!0}if(r?.destroy)return()=>r.destroy()})}function So(e,t){var n=void 0,r;Ou(()=>{n!==(n=t())&&(r&&(He(r),r=null),n&&(r=rt(()=>{It(()=>n(e))})))})}const tb=/[&"<]/g;function nb(e,t){const n=String(e??""),r=tb;r.lastIndex=0;let s="",a=0;for(;r.test(n);){const o=r.lastIndex-1,l=n[o];s+=n.substring(a,o)+(l==="&"?"&amp;":l==='"'?"&quot;":"&lt;"),a=o+1}return s+n.substring(a)}function cd(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=cd(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function rb(){for(var e,t,n=0,r="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=cd(e))&&(r&&(r+=" "),r+=t);return r}const Nl={translate:new Map([[!0,"yes"],[!1,"no"]])};function sb(e,t,n=!1){if(e==="hidden"&&t!=="until-found"&&(n=!0),t==null||!t&&n)return"";const r=$v.call(Nl,e)&&Nl[e].get(t)||t,s=n?'=""':`="${nb(r)}"`;return` ${e}${s}`}function ud(e){return typeof e=="object"?rb(e):e??""}const ql=[...`
7
+ \r\f \v\uFEFF`];function ab(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 a=s.length,o=0;(o=r.indexOf(s,o))>=0;){var l=o+a;(o===0||ql.includes(r[o-1]))&&(l===r.length||ql.includes(r[l]))?r=(o===0?"":r.substring(0,o))+r.substring(l+1):o=l}}return r===""?null:r}function Vl(e,t=!1){var n=t?" !important;":";",r="";for(var s of Object.keys(e)){var a=e[s];a!=null&&a!==""&&(r+=" "+s+": "+a+n)}return r}function ai(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function ib(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 a=!1,o=0,l=!1,c=[];r&&c.push(...Object.keys(r).map(ai)),s&&c.push(...Object.keys(s).map(ai));var u=0,d=-1;const g=e.length;for(var f=0;f<g;f++){var p=e[f];if(l?p==="/"&&e[f-1]==="*"&&(l=!1):a?a===p&&(a=!1):p==="/"&&e[f+1]==="*"?l=!0:p==='"'||p==="'"?a=p:p==="("?o++:p===")"&&o--,!l&&a===!1&&o===0){if(p===":"&&d===-1)d=f;else if(p===";"||f===g-1){if(d!==-1){var b=ai(e.substring(u,d).trim());if(!c.includes(b)){p!==";"&&f++;var x=e.substring(u,f).trim();n+=" "+x+";"}}u=f+1,d=-1}}}}return r&&(n+=Vl(r)),s&&(n+=Vl(s,!0)),n=n.trim(),n===""?null:n}return e==null?null:String(e)}function ce(e,t,n,r,s,a){var o=e.__className;if(te||o!==n||o===void 0){var l=ab(n,r,a);(!te||l!==e.getAttribute("class"))&&(l==null?e.removeAttribute("class"):t?e.className=l:e.setAttribute("class",l)),e.__className=n}else if(a&&s!==a)for(var c in a){var u=!!a[c];(s==null||u!==!!s[c])&&e.classList.toggle(c,u)}return a}function ii(e,t={},n,r){for(var s in n){var a=n[s];t[s]!==a&&(n[s]==null?e.style.removeProperty(s):e.style.setProperty(s,a,r))}}function We(e,t,n,r){var s=e.__style;if(te||s!==t){var a=ib(t,r);(!te||a!==e.getAttribute("style"))&&(a==null?e.removeAttribute("style"):e.style.cssText=a),e.__style=t}else r&&(Array.isArray(r)?(ii(e,n?.[0],r[0]),ii(e,n?.[1],r[1],"important")):ii(e,n,r));return r}function ss(e,t,n=!1){if(e.multiple){if(t==null)return;if(!Dr(t))return Lh();for(var r of e.options)r.selected=t.includes(Zr(r));return}for(r of e.options){var s=Zr(r);if(Eu(s,t)){r.selected=!0;return}}(!n||t!==void 0)&&(e.selectedIndex=-1)}function Eo(e){var t=new MutationObserver(()=>{ss(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),At(()=>{t.disconnect()})}function as(e,t,n=t){var r=new WeakSet,s=!0;xs(e,"change",a=>{var o=a?"[selected]":":checked",l;if(e.multiple)l=[].map.call(e.querySelectorAll(o),Zr);else{var c=e.querySelector(o)??e.querySelector("option:not([disabled])");l=c&&Zr(c)}n(l),e.__value=l,me!==null&&r.add(me)}),It(()=>{var a=t();if(e===document.activeElement){var o=me;if(r.has(o))return}if(ss(e,a,s),s&&a===void 0){var l=e.querySelector(":checked");l!==null&&(a=Zr(l),n(a))}e.__value=a,s=!1}),Eo(e)}function Zr(e){return"__value"in e?e.__value:e.value}const cr=Symbol("class"),ur=Symbol("style"),dd=Symbol("is custom element"),fd=Symbol("is html"),ob=tr?"link":"LINK",lb=tr?"input":"INPUT",cb=tr?"option":"OPTION",ub=tr?"select":"SELECT",db=tr?"progress":"PROGRESS";function ge(e){if(te){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute("value")){var r=e.value;ne(e,"value",null),e.value=r}if(e.hasAttribute("checked")){var s=e.checked;ne(e,"checked",null),e.checked=s}}};e.__on_r=n,ot(n),ju()}}function is(e,t){var n=ja(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==db)||(e.value=t??"")}function Io(e,t){var n=ja(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function Ao(e,t){t?e.hasAttribute("selected")||e.setAttribute("selected",""):e.removeAttribute("selected")}function fb(e,t){const n=e.checked;e.defaultChecked=t,e.checked=n}function vb(e,t){const n=e.value;e.defaultValue=t,e.value=n}function ne(e,t,n,r){var s=ja(e);te&&(s[t]=e.getAttribute(t),t==="src"||t==="srcset"||t==="href"&&e.nodeName===ob)||s[t]!==(s[t]=n)&&(t==="loading"&&(e[rh]=n),n==null?e.removeAttribute(t):typeof n!="string"&&Co(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function hb(e,t,n){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n)}function pb(e,t,n){var r=be,s=de;let a=te;te&&Ce(!1),pt(null),nt(null);try{t!=="style"&&(Di.has(e.getAttribute("is")||e.nodeName)||!customElements||customElements.get(e.getAttribute("is")||e.nodeName.toLowerCase())?Co(e).includes(t):n&&typeof n=="object")?e[t]=n:ne(e,t,n==null?n:String(n))}finally{pt(r),nt(s),a&&Ce(!0)}}function mb(e,t,n,r,s=!1,a=!1){if(te&&s&&e.nodeName===lb){var o=e,l=o.type==="checkbox"?"defaultChecked":"defaultValue";l in n||ge(o)}var c=ja(e),u=c[dd],d=!c[fd];let f=te&&u;f&&Ce(!1);var p=t||{},b=e.nodeName===cb;for(var x in t)x in n||(n[x]=null);n.class?n.class=ud(n.class):(r||n[cr])&&(n.class=null),n[ur]&&(n.style??=null);var g=Co(e);for(const T in n){let j=n[T];if(b&&T==="value"&&j==null){e.value=e.__value="",p[T]=j;continue}if(T==="class"){var y=e.namespaceURI==="http://www.w3.org/1999/xhtml";ce(e,y,j,r,t?.[cr],n[cr]),p[T]=j,p[cr]=n[cr];continue}if(T==="style"){We(e,j,t?.[ur],n[ur]),p[T]=j,p[ur]=n[ur];continue}var k=p[T];if(!(j===k&&!(j===void 0&&e.hasAttribute(T)))){p[T]=j;var _=T[0]+T[1];if(_!=="$$")if(_==="on"){const z={},R="$$"+T;let M=T.slice(2);var m=am(M);if(rm(M)&&(M=M.slice(0,-7),z.capture=!0),!m&&k){if(j!=null)continue;e.removeEventListener(M,p[R],z),p[R]=null}if(m)H(M,e,j),le([M]);else if(j!=null){let C=function(P){p[T].call(this,P)};p[R]=Gu(M,e,C,z)}}else if(T==="style")ne(e,T,j);else if(T==="autofocus")Mr(e,!!j);else if(!u&&(T==="__value"||T==="value"&&j!=null))e.value=e.__value=j;else if(T==="selected"&&b)Ao(e,j);else{var I=T;d||(I=om(I));var D=I==="defaultValue"||I==="defaultChecked";if(j==null&&!u&&!D)if(c[T]=null,I==="value"||I==="checked"){let z=e;const R=t===void 0;if(I==="value"){let M=z.defaultValue;z.removeAttribute(I),z.defaultValue=M,z.value=z.__value=R?M:null}else{let M=z.defaultChecked;z.removeAttribute(I),z.defaultChecked=M,z.checked=R?M:!1}}else e.removeAttribute(T);else D||g.includes(I)&&(u||typeof j!="string")?(e[I]=j,I in c&&(c[I]=Te)):typeof j!="function"&&ne(e,I,j)}}}return f&&Ce(!0),p}function bb(e,t,n=[],r=[],s=[],a,o=!1,l=!1){ys(s,n,r,c=>{var u=void 0,d={},f=e.nodeName===ub,p=!1;if(Ou(()=>{var x=t(...c.map(i)),g=mb(e,u,x,a,o,l);p&&f&&"value"in x&&ss(e,x.value);for(let k of Object.getOwnPropertySymbols(d))x[k]||He(d[k]);for(let k of Object.getOwnPropertySymbols(x)){var y=x[k];k.description===Vc&&(!u||y!==u[k])&&(d[k]&&He(d[k]),d[k]=rt(()=>So(e,()=>y))),g[k]=y}u=g}),f){var b=e;It(()=>{ss(b,u.value,!0),Eo(b)})}p=!0})}function ja(e){return e.__attributes??={[dd]:e.nodeName.includes("-"),[fd]:e.namespaceURI===qc}}var Di=new Map;function Co(e){var t=e.getAttribute("is")||e.nodeName,n=Di.get(t);if(n)return n;Di.set(t,n=[]);for(var r,s=e,a=Element.prototype;a!==s;){r=Fc(s);for(var o in r)r[o].set&&n.push(o);s=Sa(s)}return n}let oi=null;function vd(){if(oi===null){var e=jn("select");e.innerHTML=Xu("<option><span>t</span></option>"),oi=e.firstChild?.firstChild?.nodeType===1}return oi}function gb(e,t){vd()&&So(e,()=>()=>{const n=e.closest("select");if(!n)return;const r=new MutationObserver(s=>{var a=!1;for(const o of s){if(o.target===e)return;a||=!!o.target.parentElement?.closest("option")?.selected}a&&(e.replaceWith(e=e.cloneNode(!0)),t(e))});return r.observe(n,{childList:!0,characterData:!0,subtree:!0}),()=>{r.disconnect()}})}function _b(e,t){var n=te;vd()||(Ce(!1),e.textContent="",e.append(Ru("")));try{t()}finally{n&&(te?v(e):(Ce(!0),Ie(e)))}}function yb(e){bt(document,["focusin","focusout"],t=>{t&&t.type==="focusout"&&t.relatedTarget||e(document.activeElement)})}function Ee(e,t,n=t){var r=new WeakSet;xs(e,"input",async s=>{var a=s?e.defaultValue:e.value;if(a=ci(e)?ui(a):a,n(a),me!==null&&r.add(me),await Is(),a!==(a=t())){var o=e.selectionStart,l=e.selectionEnd,c=e.value.length;if(e.value=a??"",l!==null){var u=e.value.length;o===l&&l===c&&u>c?(e.selectionStart=u,e.selectionEnd=u):(e.selectionStart=o,e.selectionEnd=Math.min(l,u))}}}),(te&&e.defaultValue!==e.value||we(t)==null&&e.value)&&(n(ci(e)?ui(e.value):e.value),me!==null&&r.add(me)),qe(()=>{var s=t();if(e===document.activeElement){var a=me;if(r.has(a))return}ci(e)&&s===ui(e.value)||e.type==="date"&&!s&&!e.value||s!==e.value&&(e.value=s??"")})}const li=new Set;function wb(e,t,n,r,s=r){var a=n.getAttribute("type")==="checkbox",o=e;let l=!1;if(t!==null)for(var c of t)o=o[c]??=[];o.push(n),xs(n,"change",()=>{var u=n.__value;a&&(u=Bl(o,u,n.checked)),s(u)},()=>s(a?[]:null)),qe(()=>{var u=r();if(te&&n.defaultChecked!==n.checked){l=!0;return}a?(u=u||[],n.checked=u.includes(n.__value)):n.checked=Eu(n.__value,u)}),At(()=>{var u=o.indexOf(n);u!==-1&&o.splice(u,1)}),li.has(o)||(li.add(o),ot(()=>{o.sort((u,d)=>u.compareDocumentPosition(d)===4?-1:1),li.delete(o)})),ot(()=>{if(l){var u;if(a)u=Bl(o,u,n.checked);else{var d=o.find(f=>f.checked);u=d?.__value}s(u)}})}function Qr(e,t,n=t){xs(e,"change",r=>{var s=r?e.defaultChecked:e.checked;n(s)}),(te&&e.defaultChecked!==e.checked||we(t)==null)&&n(e.checked),qe(()=>{var r=t();e.checked=!!r})}function Bl(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 ci(e){var t=e.type;return t==="number"||t==="range"}function ui(e){return e===""?null:+e}function kb(e,t,n=t){xs(e,"change",()=>{n(e.files)}),te&&e.files&&n(e.files),qe(()=>{e.files=t()})}function To(e){for(var t=[],n=0;n<e.length;n+=1)t.push({start:e.start(n),end:e.end(n)});return t}function xb(e,t,n=t){var r,s,a=()=>{cancelAnimationFrame(r),e.paused||(r=requestAnimationFrame(a));var o=e.currentTime;s!==o&&n(s=o)};r=requestAnimationFrame(a),e.addEventListener("timeupdate",a),qe(()=>{var o=Number(t());s!==o&&!isNaN(o)&&(e.currentTime=s=o)}),At(()=>{cancelAnimationFrame(r),e.removeEventListener("timeupdate",a)})}function Sb(e,t){var n;bt(e,["loadedmetadata","progress","timeupdate","seeking"],()=>{var r=e.buffered;(!n||n.length!==r.length||n.some((s,a)=>r.start(a)!==s.start||r.end(a)!==s.end))&&(n=To(r),t(n))})}function Eb(e,t){bt(e,["loadedmetadata"],()=>t(To(e.seekable)))}function Ib(e,t){bt(e,["timeupdate"],()=>t(To(e.played)))}function Ab(e,t){bt(e,["seeking","seeked"],()=>t(e.seeking))}function Cb(e,t){bt(e,["timeupdate","ended"],()=>t(e.ended))}function Tb(e,t){bt(e,["loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","emptied"],()=>t(e.readyState))}function Rb(e,t,n=t){It(()=>{var r=Number(t());r!==e.playbackRate&&!isNaN(r)&&(e.playbackRate=r)}),It(()=>{bt(e,["ratechange"],()=>{n(e.playbackRate)})})}function jb(e,t,n=t){var r=t(),s=()=>{r!==e.paused&&n(r=e.paused)};bt(e,["play","pause","canplay"],s,r==null),It(()=>{(r=!!t())!==e.paused&&(r?e.pause():e.play().catch(a=>{throw n(r=!0),a}))})}function Db(e,t,n=t){var r=()=>{n(e.volume)};t()==null&&r(),bt(e,["volumechange"],r,!1),qe(()=>{var s=Number(t());s!==e.volume&&!isNaN(s)&&(e.volume=s)})}function Pb(e,t,n=t){var r=()=>{n(e.muted)};t()==null&&r(),bt(e,["volumechange"],r,!1),qe(()=>{var s=!!t();e.muted!==s&&(e.muted=s)})}function Mb(e){bt(window,["online","offline"],()=>{e(navigator.onLine)})}function Ob(e,t,n){var r=Wt(e,t);r&&r.set&&(e[t]=n,At(()=>{e[t]=null}))}class Cs{#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.#a().observe(t,this.#n),()=>{var s=this.#e.get(t);s.delete(n),s.size===0&&(this.#e.delete(t),this.#t.unobserve(t))}}#a(){return this.#t??(this.#t=new ResizeObserver(t=>{for(var n of t){Cs.entries.set(n.target,n);for(var r of this.#e.get(n.target)||[])r(n)}}))}}var zb=new Cs({box:"content-box"}),hd=new Cs({box:"border-box"}),Lb=new Cs({box:"device-pixel-content-box"});function Nb(e,t,n){var r=t==="contentRect"||t==="contentBoxSize"?zb:t==="borderBoxSize"?hd:Lb,s=r.observe(e,a=>n(a[t]));At(s)}function qb(e,t,n){var r=hd.observe(e,()=>n(e[t]));It(()=>(we(()=>n(e[t])),r))}function Fl(e,t){return e===t||e?.[et]===t}function Pe(e={},t,n,r){var s=Se.r,a=de;return It(()=>{var o,l;return qe(()=>{o=l,l=r?.()||[],we(()=>{e!==n(...l)&&(t(e,...l),o&&Fl(n(...o),e)&&t(null,...o))})}),()=>{let c=a;for(;c!==s&&c.parent!==null&&c.parent.f&_i;)c=c.parent;const u=()=>{l&&Fl(n(...l),e)&&t(null,...l)},d=c.teardown;c.teardown=()=>{u(),d?.()}}}),e}function Vb(e,t,n,r=n){t.addEventListener("input",()=>{r(t[e])}),qe(()=>{var s=n();if(t[e]!==s)if(s==null){var a=t[e];r(a)}else t[e]=s+""})}function Bb(e,t,n,r,s){var a=()=>{r(n[e])};n.addEventListener(t,a),s?qe(()=>{n[e]=s()}):a(),(n===document.body||n===window||n===document)&&At(()=>{n.removeEventListener(t,a)})}function Fb(e,t){bt(e,["focus","blur"],()=>{t(e===document.activeElement)})}function Ub(e,t,n=t){var r=e==="x",s=()=>Dn(()=>{a=!0,clearTimeout(o),o=setTimeout(l,100),n(window[r?"scrollX":"scrollY"])});addEventListener("scroll",s,{passive:!0});var a=!1,o,l=()=>{a=!1},c=!0;qe(()=>{var u=t();c?c=!1:!a&&u!=null&&(a=!0,clearTimeout(o),r?scrollTo(u,window.scrollY):scrollTo(window.scrollX,u),o=setTimeout(l,100))}),It(s),At(()=>{removeEventListener("scroll",s)})}function Hb(e,t){bt(window,["resize"],()=>Dn(()=>t(window[e])))}function Kb(e){return function(...t){var n=t[0];n.isTrusted&&e?.apply(this,t)}}function Wb(e){return function(...t){var n=t[0];n.target===this&&e?.apply(this,t)}}function Yb(e){return function(...t){var n=t[0];return n.stopPropagation(),e?.apply(this,t)}}function Gb(e){var t=!1;return function(...n){if(!t)return t=!0,e?.apply(this,n)}}function Xb(e){return function(...t){var n=t[0];return n.stopImmediatePropagation(),e?.apply(this,t)}}function Jb(e){return function(...t){var n=t[0];return n.preventDefault(),e?.apply(this,t)}}function Zb(e=!1){const t=Se,n=t.l.u;if(!n)return;let r=()=>_o(t.s);if(e){let s=0,a={};const o=ks(()=>{let l=!1;const c=t.s;for(const u in c)c[u]!==a[u]&&(a[u]=c[u],l=!0);return l&&s++,s});r=()=>i(o)}n.b.length&&Pu(()=>{Ul(t,r),bi(n.b)}),xe(()=>{const s=we(()=>n.m.map(eh));return()=>{for(const a of s)typeof a=="function"&&a()}}),n.a.length&&xe(()=>{Ul(t,r),bi(n.a)})}function Ul(e,t){if(e.l.s)for(const n of e.l.s)i(n);t()}function Qb(e){var t=St(0);return function(){return arguments.length===1?(S(t,i(t)+1),arguments[0]):(i(t),e())}}function $b(e,t){var n=e.$$events?.[t.type],r=Dr(n)?n.slice():n==null?[]:[n];for(var s of r)s.call(this,t)}function eg(e,t,n){e.$$events||={},e.$$events[t]||=[],e.$$events[t].push(n)}function tg(e){for(var t in e)t in this&&(this[t]=e[t])}function ng(e,t=1){const n=e();return e(n+t),n}function rg(e,t=1){const n=e()+t;return e(n),n}const sg={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 ag(e,t,n){return new Proxy({props:e,exclude:t},sg)}const ig={get(e,t){if(!e.exclude.includes(t))return i(e.version),t in e.special?e.special[t]():e.props[t]},set(e,t,n){if(!(t in e.special)){var r=de;try{nt(e.parent_effect),e.special[t]=Z({get[t](){return e.props[t]}},t,Lc)}finally{nt(r)}}return e.special[t](n),Er(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),Er(e.version)),!0},has(e,t){return e.exclude.includes(t)?!1:t in e.props},ownKeys(e){return Reflect.ownKeys(e.props).filter(t=>!e.exclude.includes(t))}};function og(e,t){return new Proxy({props:e,exclude:t,special:{},version:St(0),parent_effect:de},ig)}const lg={get(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(or(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];or(s)&&(s=s());const a=Wt(s,t);if(a&&a.set)return a.set(n),!0}return!1},getOwnPropertyDescriptor(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(or(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r){const s=Wt(r,t);return s&&!s.configurable&&(s.configurable=!0),s}}},has(e,t){if(t===et||t===Ea)return!1;for(let n of e.props)if(or(n)&&(n=n()),n!=null&&t in n)return!0;return!1},ownKeys(e){const t=[];for(let n of e.props)if(or(n)&&(n=n()),!!n){for(const r in n)t.includes(r)||t.push(r);for(const r of Object.getOwnPropertySymbols(n))t.includes(r)||t.push(r)}return t}};function Ts(...e){return new Proxy({props:e},lg)}function Z(e,t,n,r){var s=(n&Hv)!==0,a=(n&Kv)!==0,o=r,l=!0,c=()=>(l&&(l=!1,o=a?we(r):r),o);let u;if(s){var d=et in e||Ea in e;u=Wt(e,t)?.set??(d&&t in e?_=>e[t]=_:void 0)}var f,p=!1;s?[f,p]=fu(()=>e[t]):f=e[t],f===void 0&&r!==void 0&&(f=c(),u&&(Sh(),u(f)));var b;if(b=()=>{var _=e[t];return _===void 0?c():(l=!0,_)},!(n&Lc))return b;if(u){var x=e.$$legacy;return function(_,m){return arguments.length>0?((!m||x||p)&&u(m?b():_),_):b()}}var g=!1,y=(n&Uv?ks:co)(()=>(g=!1,b()));s&&i(y);var k=de;return function(_,m){if(arguments.length>0){const I=m?i(y):s?oe(_):_;return S(y,I),g=!0,o!==void 0&&(o=I),_}return mn&&g||k.f&vt?y.v:i(y)}}function cg(e,t,n,r,s,a){gu(t,()=>{var o=!1;ro?.[wt],qe(()=>{if(!o){var[l,c]=fu(n);if(!c){var u=r(),d=!1,f=qe(()=>{d||l[u]});d=!0,f.deps===null&&(Rh(),o=!0)}}})})}function ug(e){return new dg(e)}class dg{#e;#t;constructor(t){var n=new Map,r=(a,o)=>{var l=Ta(o,!1,!1);return n.set(a,l),l};const s=new Proxy({...t.props||{},$$events:{}},{get(a,o){return i(n.get(o)??r(o,Reflect.get(a,o)))},has(a,o){return o===Ea?!0:(i(n.get(o)??r(o,Reflect.get(a,o))),Reflect.has(a,o))},set(a,o,l){return S(n.get(o)??r(o,l),l),Reflect.set(a,o,l)}});this.#t=(t.hydrate?$u: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)&&An(),this.#e=s.$$events;for(const a of Object.keys(this.#t))a==="$set"||a==="$destroy"||a==="$on"||Kn(this,a,{get(){return this.#t[a]},set(o){this.#t[a]=o},enumerable:!0});this.#t.$set=a=>{Object.assign(s,a)},this.#t.$destroy=()=>{Ge(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 pd;typeof HTMLElement=="function"&&(pd=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 a=jn("slot");r!=="default"&&(a.name=r),E(s,a)}};if(await Promise.resolve(),!this.$$cn||this.$$c)return;const t={},n=fg(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]=Us(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=ug({component:this.$$ctor,target:this.$$shadowRoot||this,props:{...this.$$d,$$slots:t,$$host:this}}),this.$$me=Es(()=>{qe(()=>{this.$$r=!0;for(const r of ea(this.$$c)){if(!this.$$p_d[r]?.reflect)continue;this.$$d[r]=this.$$c[r];const s=Us(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 a=this.$$c.$on(r,s);this.$$l_u.set(s,a)}this.$$l={}}}attributeChangedCallback(e,t,n){this.$$r||(e=this.$$g_p(e),this.$$d[e]=Us(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 ea(this.$$p_d).find(t=>this.$$p_d[t].attribute===e||!this.$$p_d[t].attribute&&t.toLowerCase()===e)||e}});function Us(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 fg(e){const t={};return e.childNodes.forEach(n=>{t[n.slot||"default"]=!0}),t}function vg(e,t,n,r,s,a){let o=class extends pd{constructor(){super(e,n,s),this.$$p_d=t}static get observedAttributes(){return ea(t).map(l=>(t[l].attribute||l).toLowerCase())}};return ea(t).forEach(l=>{Kn(o.prototype,l,{get(){return this.$$c&&l in this.$$c?this.$$c[l]:this.$$d[l]},set(c){c=Us(l,c,t),this.$$d[l]=c;var u=this.$$c;if(u){var d=Wt(u,l)?.get;d?u[l]=c:u.$set({[l]:c})}}})}),r.forEach(l=>{Kn(o.prototype,l,{get(){return this.$$c?.[l]}})}),a&&(o=a(o)),e.element=o,o}function hg(e,...t){return we(()=>{try{let n=!1;const r=[];for(const s of t)s&&typeof s=="object"&&et in s?(r.push(Xn(s,!0)),n=!0):r.push(s);n&&(jh(e),console.log("%c[snapshot]","color: grey",...r))}catch{}}),t}const md=Object.freeze(Object.defineProperty({__proto__:null,CLASS:cr,FILENAME:wt,HMR:ir,NAMESPACE_SVG:ms,STYLE:ur,aborted:Ai,action:ld,get active_effect(){return de},add_legacy_event_listener:eg,add_locations:Im,add_svelte_meta:Gh,animation:Jm,append:E,append_styles:eb,apply:Wp,assign:xm,assign_async:Sm,async:Pm,async_derived:_u,attach:So,attachment:km,attr:sb,attribute_effect:bb,autofocus:Mr,await:zm,bind_active_element:yb,bind_buffered:Sb,bind_checked:Qr,bind_content_editable:Vb,bind_current_time:xb,bind_element_size:qb,bind_ended:Cb,bind_files:kb,bind_focused:Fb,bind_group:wb,bind_muted:Pb,bind_online:Mb,bind_paused:jb,bind_playback_rate:Rb,bind_played:Ib,bind_prop:Ob,bind_property:Bb,bind_ready_state:Tb,bind_resize_observer:Nb,bind_seekable:Eb,bind_seeking:Ab,bind_select_value:as,bind_this:Pe,bind_value:Ee,bind_volume:Db,bind_window_scroll:Ub,bind_window_size:Hb,boundary:bu,bubble_event:$b,check_target:Rm,child:h,cleanup_styles:Em,clsx:ud,comment:Ue,component:As,create_custom_element:vg,create_ownership_validator:Tm,css_props:qm,customizable_select:_b,deep_read:sa,deep_read_state:_o,deferred_template_effect:zp,delegate:le,delegated:H,derived:W,derived_safe_equal:co,get document(){return Iu},each:he,eager:fp,effect:It,effect_root:Es,effect_tracking:Ss,element:Qm,equals:Cp,event:De,exclude_from_object:nh,fallback:th,first_child:ve,flush:An,for_await_track_reactivity_loss:_p,from_html:A,from_mathml:Jp,from_svg:wo,from_tree:Zp,get:i,head:$m,hmr:Cm,html:Um,hydrate_template:qh,if:K,index:mt,init:Zb,init_select:Eo,inspect:Dm,invalid_default_snippet:ih,invalidate_inner_signals:qp,invalidate_store:rp,invoke_error_boundary:an,key:Nm,legacy_api:jm,legacy_pre_effect:Pp,legacy_pre_effect_reset:Mp,legacy_rest_props:og,log_if_contains_state:hg,mark_store_binding:lp,mutable_source:Ta,mutate:Ep,next:Gt,noop:kt,once:Gb,pending:bp,pop:se,preventDefault:Jb,prevent_snippet_stringification:td,prop:Z,props_id:em,proxy:oe,push:re,raf:rn,reactive_import:Qb,remove_input_defaults:ge,remove_textarea_child:ho,render_effect:qe,replay_events:Kp,reset:v,rest_props:ag,run:yp,run_after_blockers:gu,safe_get:Up,sanitize_slots:Km,save:gp,select_option:ss,selectedcontent:gb,self:Wb,set:S,set_attribute:ne,set_checked:Io,set_class:ce,set_custom_element_data:pb,set_default_checked:fb,set_default_value:vb,set_selected:Ao,set_style:We,set_text:O,set_value:is,set_xlink_attribute:hb,setup_stores:sp,sibling:w,slot:Hm,snapshot:Xn,snippet:en,spread_props:Ts,state:F,stopImmediatePropagation:Xb,stopPropagation:Yb,store_get:tp,store_mutate:ap,store_set:du,store_unsub:np,strict_equals:Ap,tag:Kh,tag_proxy:ru,template_effect:N,text:Xt,tick:Is,to_array:Kc,trace:Hh,track_reactivity_loss:Si,transition:Zm,trusted:Kb,untrack:we,update:Er,update_legacy_props:tg,update_pre:Ip,update_pre_prop:rg,update_pre_store:op,update_prop:ng,update_store:ip,user_effect:xe,user_pre_effect:Pu,validate_binding:cg,validate_dynamic_element_tag:vm,validate_snippet_args:Mm,validate_store:hm,validate_void_dynamic_element:fm,wait:wp,get window(){return Ei},with_script:Qp,wrap_snippet:pm},Symbol.toStringTag,{value:"Module"}));class Hl{#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 Kl{#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 pg=["workspace","user"],Ro="state:manage",tn={ephemeral:new Hl,session:new Hl,workspace:new Kl("sh3:workspace:"),user:new Kl("sh3:user:")},di=new Map;let fi=!1;function mg(e,t,n){di.set(`${e}:${t}`,{zone:e,shardId:t,value:n}),!fi&&(fi=!0,queueMicrotask(()=>{fi=!1;for(const{zone:r,shardId:s,value:a}of di.values())tn[r].write(s,a);di.clear()}))}function Da(e,t){const n={};for(const r of Object.keys(t)){const s=t[r],o=tn[r].read(e),l={...s,...o??{}},c=oe(l);n[r]=c,pg.includes(r)&&Es(()=>{let u=!0;xe(()=>{const d=Xn(c);if(u){u=!1;return}mg(r,e,d)})})}return n}function Wl(e,t){tn[e]=t}function bg(e,t){return tn[e].read(t)}function Pi(e,t){tn[e].delete(t)}const gg="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(gg);const _g=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function yg(e){const t=document.activeElement;function n(){return Array.from(e.querySelectorAll(_g))}function r(s){if(s.key!=="Tab")return;const a=n();if(a.length===0){s.preventDefault();return}const o=a[0],l=a[a.length-1],c=document.activeElement;s.shiftKey&&(c===o||!e.contains(c))?(s.preventDefault(),l.focus()):!s.shiftKey&&(c===l||!e.contains(c))&&(s.preventDefault(),o.focus())}return e.addEventListener("keydown",r),queueMicrotask(()=>{(n()[0]??e).focus()}),()=>{e.removeEventListener("keydown",r),t&&document.contains(t)&&t.focus()}}var wg=A('<div class="modal-frame svelte-2tcvcm" role="presentation"><div class="modal-box svelte-2tcvcm" role="dialog" aria-modal="true" tabindex="-1"><!></div></div>');function kg(e,t){re(t,!0);let n;xe(()=>{if(n)return yg(n)});function r(l){t.onBackdropClick&&l.target===l.currentTarget&&t.onBackdropClick()}var s=wg(),a=h(s),o=h(a);As(o,()=>t.Content,(l,c)=>{c(l,Ts(()=>t.contentProps,{get close(){return t.close}}))}),v(a),Pe(a,l=>n=l,()=>n),v(s),N(()=>We(a,t.boxStyle)),H("click",s,r),E(e,s),se()}le(["click"]);const jo={};function xg(e,t){jo[e]=t}function Sg(e){delete jo[e]}function Pa(e){const t=jo[e];if(!t)throw new Error(`Overlay layer "${e}" root is not registered — Shell.svelte must mount before opening overlays on this layer.`);return t}const Cn=oe(new Map),st=oe({id:null}),Ar=oe({id:null});function Eg(){return Ar.id}function Do(e){Cn.set(e.manifest.id,e)}function nr(){return Array.from(Cn.values()).map(e=>e.manifest)}function bd(){const e=st.id;return e?Cn.get(e)?.manifest??null:null}function Tn(e){return Cn.get(e)}const $r=[],mr=[];let os=null;function Ig(e){os=e}function Ag(e){if(!st.id)throw new Error("pushNavEntry requires an active app");const t=Symbol("nav-entry");return mr.push({id:t,label:e.label,onPop:e.onPop}),{remove(){const n=mr.findIndex(r=>r.id===t);n>=0&&mr.splice(n,1)}}}function gd(e){const t=Symbol("dismissable");return $r.push({id:t,dismiss:e}),{unregister(){const n=$r.findIndex(r=>r.id===t);n>=0&&$r.splice(n,1)}}}function _d(){mr.length=0}function Cg(){if($r.length>0){$r.pop().dismiss();return}if(mr.length>0){mr.pop().onPop();return}st.id&&os&&os.returnToHome()}function Tg(){st.id||Ar.id&&os&&os.launchApp(Ar.id)}const xt=[];let la=!1,Dt=null;const Rg=.5;function yd(){const e=Pa("modal");if(xt.length===0){Dt&&(Dt.remove(),Dt=null);return}Dt||(Dt=document.createElement("div"),Dt.className="sh3-modal-backdrop",Dt.style.position="absolute",Dt.style.inset="0",Dt.style.pointerEvents="auto",Dt.style.transition="background-color 120ms ease",Dt.style.background=`rgba(0, 0, 0, ${Rg})`);const t=xt[xt.length-1].host;e.insertBefore(Dt,t)}function wd(e){e.key==="Escape"&&xt.length!==0&&(e.stopPropagation(),e.preventDefault(),xt[xt.length-1].handle.close())}function jg(){la||(la=!0,document.addEventListener("keydown",wd,!0))}function Dg(){xt.length>0||la&&(la=!1,document.removeEventListener("keydown",wd,!0))}function kd(e){const t=xt.indexOf(e);t<0||(xt.splice(t,1),Ge(e.frame),e.host.remove(),yd(),Dg())}function Pg(e,t,n){const r=Pa("modal"),s=document.createElement("div");s.className="sh3-modal-host",s.dataset.shellOverlayHost="modal",s.style.position="absolute",s.style.inset="0",s.style.pointerEvents="auto",r.appendChild(s);const a={},o={close:()=>kd(a)},l=gd(()=>o.close()),c=o.close;o.close=()=>{l.unregister(),c()};const u=Ne(kg,{target:s,props:{Content:e,contentProps:t??{},close:o.close,boxStyle:n?.boxStyle,onBackdropClick:n?.dismissOnBackdrop?o.close:void 0}});return a.host=s,a.frame=u,a.handle=o,xt.push(a),yd(),jg(),o}function Mg(){for(;xt.length>0;)kd(xt[xt.length-1])}const yn={open:Pg,closeAll:Mg};var Og=A('<div class="popup-frame svelte-mp81cl" role="menu" tabindex="-1"><!></div>');function zg(e,t){re(t,!0);let n,r=F(-9999),s=F(-9999);xe(()=>{if(!n)return;const l=n.getBoundingClientRect(),c=4,u=window.innerWidth,d=window.innerHeight;let f=t.anchorRect.bottom+c,p=t.anchorRect.left;if(p+l.width>u-c&&(p=Math.max(c,u-l.width-c)),f+l.height>d-c){const b=t.anchorRect.top-l.height-c;f=b>=c?b:Math.max(c,d-l.height-c)}S(r,f,!0),S(s,p,!0)});var a=Og(),o=h(a);As(o,()=>t.Content,(l,c)=>{c(l,Ts(()=>t.contentProps,{get close(){return t.close}}))}),v(a),Pe(a,l=>n=l,()=>n),N(()=>We(a,`top: ${i(r)??""}px; left: ${i(s)??""}px;`)),E(e,a),se()}function Lg(e){return e instanceof HTMLElement?e.getBoundingClientRect():new DOMRect(e.x,e.y,0,0)}let qt=null;function xd(e){if(!qt)return;const t=e.target;t&&qt.host.contains(t)||qt.handle.close()}function Sd(e){qt&&e.key==="Escape"&&(e.stopPropagation(),e.preventDefault(),qt.handle.close())}function Ng(){document.addEventListener("pointerdown",xd,!0),document.addEventListener("keydown",Sd,!0)}function qg(){document.removeEventListener("pointerdown",xd,!0),document.removeEventListener("keydown",Sd,!0)}function Mi(e){qt===e&&(qt=null,qg(),Ge(e.frame),e.host.remove())}function Vg(e,t,n){qt&&Mi(qt);const r=Pa("popup"),s=document.createElement("div");s.className="sh3-popup-host",s.dataset.shellOverlayHost="popup",s.style.position="absolute",s.style.inset="0",s.style.pointerEvents="none",r.appendChild(s);const a=Lg(t.anchor),o={},l={close:()=>Mi(o)},c=gd(()=>l.close()),u=l.close;l.close=()=>{c.unregister(),u()};const d=Ne(zg,{target:s,props:{Content:e,contentProps:n??{},anchorRect:a,close:l.close}});return o.host=s,o.frame=d,o.handle=l,qt=o,queueMicrotask(Ng),l}function Bg(){qt&&Mi(qt)}const Oi={show:Vg,close:Bg};var Fg=A('<div role="status" aria-live="polite"><span class="toast-level svelte-12gwnj0"> </span> <span class="toast-message svelte-12gwnj0"> </span></div>');function Ug(e,t){var n=Fg(),r=h(n),s=h(r,!0);v(r);var a=w(r,2),o=h(a,!0);v(a),v(n),N(()=>{ce(n,1,`toast toast-${t.level??""}`,"svelte-12gwnj0"),O(s,t.level),O(o,t.message)}),H("click",n,function(...l){t.close?.apply(this,l)}),E(e,n)}le(["click"]);const ca=new Set;let ut=null;function Hg(){if(ut&&ut.isConnected)return ut;const e=Pa("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 zi(e){ca.has(e)&&(ca.delete(e),e.timer!==null&&(clearTimeout(e.timer),e.timer=null),Ge(e.instance),e.host.remove())}function Kg(e,t={}){const n=t.level??"info",r=t.duration??3e3,s=Hg(),a=document.createElement("div");a.className="sh3-toast-host",s.appendChild(a);const o={},l={close:()=>zi(o)},c=Ne(Ug,{target:a,props:{message:e,level:n,close:l.close}});return o.host=a,o.instance=c,o.handle=l,o.timer=Number.isFinite(r)&&r>0?setTimeout(()=>zi(o),r):null,ca.add(o),l}function Wg(){for(const e of[...ca])zi(e)}const Sn={notify:Kg,clear:Wg},Yl={w:120,h:80};function Ed(e){if(e.type==="slot")return{...Yl};if(e.type==="tabs")return{...Yl};const t=e.children.map(Ed);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 Gl=32,Xl={x:48,y:48};function Yg(e,t){if(e.length===0)return{...Xl};const n=e[e.length-1],r={x:n.position.x+Gl,y:n.position.y+Gl};return r.x+120>t.w||r.y+32>t.h?{...Xl}:r}let Jl=0;function Gg(){return Jl+=1,`float-${Date.now().toString(36)}-${Jl.toString(36)}`}function Id(e){return e.type==="slot"?e.viewId==null:e.type==="tabs"?e.tabs.every(t=>t.viewId==null):e.children.every(Id)}function Xg(e){return e.closest("[data-shell-overlay-host]")}let Jg=[],Po=null,Mo=()=>({w:1600,h:900});function Zg(e,t){Po=e,Mo=t}function Qg(){Po=null,Mo=()=>({w:1600,h:900})}function Ma(){return Po??Jg}const Oo=new Map;function $g(e){return Oo.get(e)}let Zl=0;function e_(e){return Zl+=1,`float:${e}:${Zl}`}const t_={w:600,h:400};function n_(e,t){return{w:Math.max(e.w,t.w),h:Math.max(e.h,t.h)}}function r_(e,t={}){const n=Ma(),r=Gg(),s=e_(e);let a;if(t.dismissable){const d={type:"slot",slotId:s,viewId:e};t.meta&&(d.meta=t.meta),a=d}else{const d=t.title??e,f={slotId:s,viewId:e,label:d};t.meta&&(f.meta=t.meta),a={type:"tabs",tabs:[f],activeTab:0}}const o=Ed(a),l=t.size??n_(t_,o),c=t.position??Yg(n,Mo()),u={id:r,content:a,position:c,size:l,title:t.title};if(t.dismissable&&(u.dismissable=!0),t.dismissable&&t.anchor){const d=Xg(t.anchor);d&&Oo.set(r,d)}return n.push(u),r}function s_(e){const t=Ma(),n=t.findIndex(r=>r.id===e);n<0||(t.splice(n,1),Oo.delete(e))}function a_(){return Ma().slice()}function i_(e){const t=Ma(),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:r_,close:s_,list:a_,focus:i_};let ua=null;function o_(e){ua=e}function l_(){ua=null}function zo(){if(!ua)throw new Error("presetManager: no app attached — bind an AppLayoutBlob first");return ua}function c_(){return Object.keys(zo().presets)}function u_(){return zo().activePreset}function d_(e){const t=zo();if(!(e in t.presets))throw new Error(`presetManager.switch: unknown preset "${e}"`);t.activePreset=e}const f_={list:c_,active:u_,switch:d_},vr=new Map,Hs=new Map;function Ql(e){const t=Hs.get(e);if(t)for(const n of t)n()}function Ad(e,t){const n=Symbol();let r=vr.get(e);r||(r=new Map,vr.set(e,r)),r.set(n,t),Ql(e);let s=!1;return()=>{if(s)return;s=!0;const a=vr.get(e);a&&a.delete(n)&&(a.size===0&&vr.delete(e),Ql(e))}}function Oa(e){const t=vr.get(e);return t?Array.from(t.values()):[]}function v_(){return Array.from(vr.keys())}function Cd(e,t){let n=Hs.get(e);n||(n=new Set,Hs.set(e,n)),n.add(t);let r=!1;return()=>{r||(r=!0,n.delete(t),n.size===0&&Hs.delete(e))}}const h_=Object.freeze([".md",".txt",".json",".guml",".css",".js",".ts",".tsx",".jsx",".html",".svg",".csv",".yaml",".yml",".xml",".log",".ini",".toml"]);function p_(e){return e.kind?e.kind:e.extension&&h_.includes(e.extension.toLowerCase())?"text":"binary"}const Ks=[];function $l(e){return Ks.push(e),()=>{const t=Ks.indexOf(e);t>=0&&Ks.splice(t,1)}}function m_(e,t=[]){return[...Ks,...t].filter(r=>{try{return r.appliesTo(e)}catch{return!1}}).sort((r,s)=>(s.priority??0)-(r.priority??0))[0]??null}var b_=A("<span> </span>"),g_=A('<div class="sh3-conflict-text-dual svelte-iwgja4"><div role="button" tabindex="0"><header class="sh3-conflict-text-head svelte-iwgja4"> </header> <pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre></div> <div role="button" tabindex="0"><header class="sh3-conflict-text-head svelte-iwgja4"> </header> <pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre></div></div> <details class="sh3-conflict-text-diff svelte-iwgja4"><summary> </summary> <pre class="svelte-iwgja4"><code></code></pre></details>',1),__=A("<option> </option>"),y_=A("<button> </button>"),w_=A('<pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre>'),k_=A('<div class="sh3-conflict-text-tabs svelte-iwgja4"><div class="sh3-conflict-text-picker svelte-iwgja4"><label>Reference: <select class="svelte-iwgja4"></select></label></div> <div class="sh3-conflict-text-tablist svelte-iwgja4"></div> <!></div>'),x_=A('<div class="sh3-conflict-text svelte-iwgja4"><!></div>');function S_(e,t){re(t,!0);let n=F("");xe(()=>{(!i(n)||!t.item.branches.find(b=>b.origin===i(n)))&&S(n,t.item.branches[0]?.origin??"local",!0)});const r=W(()=>t.item.branches.length===2),s=W(()=>i(r)?t.item.branches[0]:t.item.branches.find(b=>b.origin===i(n))??t.item.branches[0]),a=W(()=>i(r)?t.item.branches[1]:t.item.branches.find(b=>b.origin===t.selectedOrigin)??t.item.branches[1]??t.item.branches[0]);function o(b,x){const g=(b??"").split(/\r?\n/),y=(x??"").split(/\r?\n/),k=[],_=Math.max(g.length,y.length);for(let m=0;m<_;m++){const I=g[m],D=y[m];I===D?typeof I=="string"&&k.push({kind:"same",text:I}):(typeof I=="string"&&k.push({kind:"left",text:I}),typeof D=="string"&&k.push({kind:"right",text:D}))}return k}const l=W(()=>!i(s)||!i(a)?[]:o(i(s).content??"",i(a).content??"")),c=W(()=>i(l).filter(b=>b.kind!=="same").length);var u=x_(),d=h(u);{var f=b=>{var x=g_(),g=ve(x),y=h(g);let k;var _=h(y),m=h(_);v(_);var I=w(_,2),D=h(I),T=h(D,!0);v(D),v(I),v(y);var j=w(y,2);let z;var R=h(j),M=h(R);v(R);var C=w(R,2),P=h(C),B=h(P,!0);v(P),v(C),v(j),v(g);var L=w(g,2),U=h(L),V=h(U);v(U);var q=w(U,2),G=h(q);he(G,21,()=>i(l),mt,(X,ae)=>{var Y=b_(),J=h(Y);v(Y),N(()=>{ce(Y,1,`diff-${i(ae).kind}`,"svelte-iwgja4"),O(J,`${i(ae).kind==="same"?" ":i(ae).kind==="left"?"- ":"+ "}${i(ae).text??""}
8
+ `)}),E(X,Y)}),v(G),v(q),v(L),N(()=>{k=ce(y,1,"sh3-conflict-text-pane svelte-iwgja4",null,k,{selected:i(s).origin===t.selectedOrigin}),O(m,`${i(s).origin??""} · v${i(s).version??""}`),O(T,i(s).content??""),z=ce(j,1,"sh3-conflict-text-pane svelte-iwgja4",null,z,{selected:i(a).origin===t.selectedOrigin}),O(M,`${i(a).origin??""} · v${i(a).version??""}`),O(B,i(a).content??""),O(V,`Line diff (${i(c)??""} difference${i(c)===1?"":"s"})`)}),H("click",y,()=>t.onSelect(i(s).origin)),H("keydown",y,X=>{(X.key==="Enter"||X.key===" ")&&t.onSelect(i(s).origin)}),H("click",j,()=>t.onSelect(i(a).origin)),H("keydown",j,X=>{(X.key==="Enter"||X.key===" ")&&t.onSelect(i(a).origin)}),E(b,x)},p=b=>{var x=k_(),g=h(x),y=h(g),k=w(h(y));he(k,21,()=>t.item.branches,D=>D.origin,(D,T)=>{var j=__(),z=h(j,!0);v(j);var R={};N(()=>{O(z,i(T).origin),R!==(R=i(T).origin)&&(j.value=(j.__value=i(T).origin)??"")}),E(D,j)}),v(k),v(y),v(g);var _=w(g,2);he(_,21,()=>t.item.branches,D=>D.origin,(D,T)=>{var j=y_();let z;var R=h(j);v(j),N(()=>{z=ce(j,1,"sh3-conflict-text-tab svelte-iwgja4",null,z,{selected:i(T).origin===t.selectedOrigin}),O(R,`${i(T).origin??""} · v${i(T).version??""}`)}),H("click",j,()=>t.onSelect(i(T).origin)),E(D,j)}),v(_);var m=w(_,2);{var I=D=>{var T=w_(),j=h(T),z=h(j,!0);v(j),v(T),N(()=>O(z,i(a).content??"")),E(D,T)};K(m,D=>{i(a)&&D(I)})}v(x),as(k,()=>i(n),D=>S(n,D)),E(b,x)};K(d,b=>{i(r)&&i(s)&&i(a)?b(f):b(p,-1)})}v(u),E(e,u),se()}le(["click","keydown"]);var E_=A("· <code> </code>",1),I_=A('<li class="sh3-conflict-meta-li svelte-1nz3djn"><button type="button"><div class="sh3-conflict-meta-origin svelte-1nz3djn"> </div> <div class="sh3-conflict-meta-detail svelte-1nz3djn"> <!></div></button></li>'),A_=A('<div class="sh3-conflict-meta svelte-1nz3djn"><div class="sh3-conflict-meta-note svelte-1nz3djn">No preview available for this content. Pick the branch you want to keep.</div> <ul class="sh3-conflict-meta-list svelte-1nz3djn"></ul></div>');function C_(e,t){re(t,!0);function n(o){return typeof o!="number"?"—":o<1024?`${o} B`:o<1024*1024?`${(o/1024).toFixed(1)} KiB`:`${(o/(1024*1024)).toFixed(2)} MiB`}function r(o){const l=Date.now()-o;return l<6e4?"just now":l<36e5?`${Math.floor(l/6e4)}m ago`:l<864e5?`${Math.floor(l/36e5)}h ago`:new Date(o).toLocaleString()}var s=A_(),a=w(h(s),2);he(a,21,()=>t.item.branches,o=>o.origin,(o,l)=>{var c=I_(),u=h(c);let d;var f=h(u),p=h(f,!0);v(f);var b=w(f,2),x=h(b),g=w(x);{var y=k=>{var _=E_(),m=w(ve(_)),I=h(m,!0);v(m),N(()=>O(I,i(l).hashPreview)),E(k,_)};K(g,k=>{i(l).hashPreview&&k(y)})}v(b),v(u),v(c),N((k,_)=>{d=ce(u,1,"sh3-conflict-meta-row svelte-1nz3djn",null,d,{selected:i(l).origin===t.selectedOrigin}),O(p,i(l).origin),O(x,`v${i(l).version??""} · ${k??""} · ${_??""} `)},[()=>r(i(l).at),()=>n(i(l).sizeBytes)]),H("click",u,()=>t.onSelect(i(l).origin)),E(o,c)}),v(a),v(s),E(e,s),se()}le(["click"]);const T_=1048576;function R_(e){return typeof e=="number"&&e>T_}const j_={id:"sh3-core.text",priority:1,appliesTo:e=>p_(e)!=="text"?!1:!e.branches.some(t=>R_(t.sizeBytes)),mount(e,t){const n=Ne(S_,{target:e,props:t});return()=>{Ge(n)}}},D_={id:"sh3-core.meta",priority:0,appliesTo:()=>!0,mount(e,t){const n=Ne(C_,{target:e,props:t});return()=>{Ge(n)}}};let ec=!1;function P_(){ec||(ec=!0,$l(j_),$l(D_))}var M_=A('<div class="sh3-conflict-prompt svelte-1jvtzud"><h3 class="sh3-conflict-prompt-title svelte-1jvtzud"> </h3> <p class="sh3-conflict-prompt-intro svelte-1jvtzud">Pick one option for the whole batch, or resolve each conflict individually.</p> <div class="sh3-conflict-prompt-actions svelte-1jvtzud"><button type="button" class="sh3-conflict-prompt-primary svelte-1jvtzud">Overwrite with most recent</button> <button type="button" class="sh3-conflict-prompt-secondary svelte-1jvtzud">Resolve individually</button> <button type="button" class="sh3-conflict-prompt-cancel svelte-1jvtzud">Cancel</button></div></div>');function O_(e,t){var n=M_(),r=h(n),s=h(r);v(r);var a=w(r,4),o=h(a);Mr(o,!0);var l=w(o,2),c=w(l,2);v(a),v(n),N(()=>O(s,`${t.count??""} conflict${t.count===1?"":"s"} to resolve`)),H("click",o,function(...u){t.onOverwriteMostRecent?.apply(this,u)}),H("click",l,function(...u){t.onResolveIndividually?.apply(this,u)}),H("click",c,function(...u){t.onCancel?.apply(this,u)}),E(e,n)}le(["click"]);var z_=A('<span class="sh3-conflict-detail-counter svelte-pw8iv6"> </span>'),L_=A('<button type="button"><span><!></span> <span class="sh3-conflict-detail-rail-label svelte-pw8iv6"> </span></button>'),N_=A('<aside class="sh3-conflict-detail-rail svelte-pw8iv6"></aside>'),q_=A('<label class="sh3-conflict-detail-branch svelte-pw8iv6"><input type="radio"/> <span> </span></label>'),V_=A('<div class="sh3-conflict-detail-branches svelte-pw8iv6"></div> <div class="sh3-conflict-detail-renderer svelte-pw8iv6"></div>',1),B_=A('<div class="sh3-conflict-detail svelte-pw8iv6"><header class="sh3-conflict-detail-head svelte-pw8iv6"><h3 class="svelte-pw8iv6"> </h3> <!></header> <div class="sh3-conflict-detail-body svelte-pw8iv6"><!> <section class="sh3-conflict-detail-main svelte-pw8iv6"><!></section></div> <footer class="sh3-conflict-detail-foot svelte-pw8iv6"><div class="sh3-conflict-detail-nav svelte-pw8iv6"><button type="button" class="svelte-pw8iv6">← Prev</button> <button type="button" class="svelte-pw8iv6"> </button> <button type="button" class="svelte-pw8iv6">Next →</button></div> <div class="sh3-conflict-detail-actions svelte-pw8iv6"><button type="button" class="sh3-conflict-detail-cancel svelte-pw8iv6">Cancel</button> <button type="button" class="sh3-conflict-detail-done svelte-pw8iv6">Done</button></div></footer></div>');function F_(e,t){re(t,!0);const n=W(()=>t.items[t.currentIndex]),r=W(()=>i(n)?t.selections[i(n).id]??i(n).branches[0]?.origin??"":""),s=W(()=>i(n)?m_(i(n),t.contributed):null);let a=F(void 0),o=null;xe(()=>{if(i(n),i(s),i(r),o&&(o(),o=null),!i(a)||!i(n)||!i(s))return;const U={item:i(n),selectedOrigin:i(r),onSelect:V=>t.onSelect(i(n).id,V)};return o=i(s).mount(i(a),U),()=>{o&&(o(),o=null)}});function l(){t.currentIndex>0&&t.onNavigate(t.currentIndex-1)}function c(){t.currentIndex<t.items.length-1&&t.onNavigate(t.currentIndex+1)}const u=W(()=>t.items.map(U=>t.skipped[U.id]?"skipped":t.selections[U.id]?"resolved":"pending"));var d=B_(),f=h(d),p=h(f),b=h(p,!0);v(p);var x=w(p,2);{var g=U=>{var V=z_(),q=h(V);v(V),N(()=>O(q,`${t.currentIndex+1} / ${t.items.length??""}`)),E(U,V)};K(x,U=>{t.items.length>1&&U(g)})}v(f);var y=w(f,2),k=h(y);{var _=U=>{var V=N_();he(V,23,()=>t.items,q=>q.id,(q,G,X)=>{var ae=L_();let Y;var J=h(ae),ie=h(J);{var fe=Le=>{var Tt=Xt("✓");E(Le,Tt)},Q=Le=>{var Tt=Xt("⟶");E(Le,Tt)},pe=Le=>{var Tt=Xt("·");E(Le,Tt)};K(ie,Le=>{i(u)[i(X)]==="resolved"?Le(fe):i(u)[i(X)]==="skipped"?Le(Q,1):Le(pe,-1)})}v(J);var ke=w(J,2),_t=h(ke,!0);v(ke),v(ae),N(()=>{Y=ce(ae,1,"sh3-conflict-detail-rail-item svelte-pw8iv6",null,Y,{selected:i(X)===t.currentIndex}),ce(J,1,`sh3-conflict-detail-rail-state ${i(u)[i(X)]??""}`,"svelte-pw8iv6"),O(_t,i(G).label)}),H("click",ae,()=>t.onNavigate(i(X))),E(q,ae)}),v(V),E(U,V)};K(k,U=>{t.items.length>1&&U(_)})}var m=w(k,2),I=h(m);{var D=U=>{var V=V_(),q=ve(V);he(q,21,()=>i(n).branches,X=>X.origin,(X,ae)=>{var Y=q_(),J=h(Y);ge(J);var ie=w(J,2),fe=h(ie);v(ie),v(Y),N(()=>{ne(J,"name",`branch-${i(n).id??""}`),is(J,i(ae).origin),Io(J,i(r)===i(ae).origin),O(fe,`${i(ae).origin??""} · v${i(ae).version??""}`)}),H("change",J,()=>t.onSelect(i(n).id,i(ae).origin)),E(X,Y)}),v(q);var G=w(q,2);Pe(G,X=>S(a,X),()=>i(a)),E(U,V)};K(I,U=>{i(n)&&U(D)})}v(m),v(y);var T=w(y,2),j=h(T),z=h(j),R=w(z,2),M=h(R,!0);v(R);var C=w(R,2);v(j);var P=w(j,2),B=h(P),L=w(B,2);v(P),v(T),v(d),N(()=>{O(b,t.title),z.disabled=t.currentIndex===0,O(M,i(n)&&t.skipped[i(n).id]?"Unskip":"Skip"),C.disabled=t.currentIndex>=t.items.length-1}),H("click",z,l),H("click",R,()=>i(n)&&t.onToggleSkip(i(n).id)),H("click",C,c),H("click",B,function(...U){t.onCancel?.apply(this,U)}),H("click",L,function(...U){t.onDone?.apply(this,U)}),E(e,d),se()}le(["click","change"]);function Td(e,t){return t.at-e.at}function U_(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(Td)[0]}}function H_(e,t){re(t,!0);const n=t.items.length>=2||t.requirePrompt;let r=F(oe(n?"prompt":"detail")),s=F(oe(Object.fromEntries(t.items.map(m=>{const I=U_(m.branches,t.mostRecentBy)?.origin??m.branches[0]?.origin??"";return[m.id,I]})))),a=F(oe({})),o=F(0),l=!1;xo(()=>{l||(l=!0,t.onCancel())});function c(){if(l)return;l=!0;const m=[],I=[];for(const D of t.items){if(i(a)[D.id]){I.push(D.id);continue}const T=i(s)[D.id],j=D.branches.find(z=>z.origin===T);j&&m.push({itemId:D.id,chosen:j,meta:D.meta})}t.onResolve(m,I),t.close()}function u(){l||(l=!0,t.onCancel(),t.close())}function d(){c()}function f(){S(r,"detail")}function p(m,I){if(S(s,{...i(s),[m]:I},!0),i(a)[m]){const D={...i(a)};delete D[m],S(a,D,!0)}}function b(m){S(a,{...i(a),[m]:!i(a)[m]},!0)}function x(m){S(o,m,!0)}var g=Ue(),y=ve(g);{var k=m=>{O_(m,{get count(){return t.items.length},onOverwriteMostRecent:d,onResolveIndividually:f,onCancel:u})},_=m=>{F_(m,{get items(){return t.items},get selections(){return i(s)},get skipped(){return i(a)},get currentIndex(){return i(o)},get title(){return t.title},get contributed(){return t.contributed},onSelect:p,onNavigate:x,onToggleSkip:b,onDone:c,onCancel:u})};K(y,m=>{i(r)==="prompt"?m(k):m(_,-1)})}E(e,g),se()}const Rd="sh3-core.conflictRenderer";class jd extends Error{constructor(t){super(t),this.name="ConflictPermissionError"}}class K_ extends Error{constructor(){super("Caller shard deactivated while conflict session was active"),this.name="ConflictSessionOrphanedError"}}function W_(){try{return Oa(Rd)}catch{return[]}}function Dd(e,t={}){return P_(),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??Td,a=t.requirePrompt??!1,o=W_();let l=!1;const d={items:e,title:r,mostRecentBy:s,requirePrompt:a,contributed:o,onResolve:(f,p)=>{l||(l=!0,n({status:"resolved",choices:f,skipped:p}))},onCancel:()=>{l||(l=!0,n({status:"cancelled"}))}};yn.open(H_,d,{boxStyle:"max-width: none; min-width: 360px; padding: 0;"})})}function Y_(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 G_(e,t){const n=e.browse;if(!n?.statusFrom||!n?.readBranchFrom||!n?.resolveConflictFrom)throw new jd(`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 X_(e){const t=e.lastIndexOf(".");if(t<0)return;const n=e.lastIndexOf("/");if(!(t<n))return e.slice(t)}async function J_(e,t,n={}){const r=e.shardId,s=t.shardId===r?Y_(e):G_(e,t.shardId),a=[];for(const d of t.paths){const f=await s.status(d);f&&f.syncState==="conflict"&&f.branches&&f.branches.length>0&&a.push({path:d,status:f})}if(a.length===0)return{status:"resolved",resolved:[],failed:[],skipped:[]};const o=[];for(const{path:d,status:f}of a){const p=X_(d),b=[];for(const x of f.branches??[]){const g=await s.readBranch(d,x.origin).catch(()=>null);b.push({origin:x.origin,version:x.version,at:x.at,content:g??void 0,sizeBytes:g?new TextEncoder().encode(g).length:void 0})}o.push({id:d,label:d,extension:p,branches:b,meta:{shardId:t.shardId,path:d,docVersion:f.version}})}const l=await Dd(o,n);if(l.status==="cancelled")return{status:"cancelled"};const c=[],u=[];for(const d of l.choices)try{await s.resolveConflict(d.itemId,{origin:d.chosen.origin});const f=await s.status(d.itemId).catch(()=>null);c.push({path:d.itemId,chosen:d.chosen,appliedVersion:f?.version??-1})}catch(f){u.push({path:d.itemId,error:f instanceof Error?f.message:String(f)})}return{status:"resolved",resolved:c,failed:u,skipped:l.skipped}}const Z_={resolve:Dd,resolveDocuments:J_},Pd="sh3.color-picker",Q_={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=a=>{r||(r=!0,n.remove(),t(a))};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 $_(e={}){return[...Oa(Pd),Q_].sort((r,s)=>(s.priority??0)-(r.priority??0))[0].open(e)}const ey={pick:$_};let Nn=null;function ty(e){Nn=e}async function br(e){return Nn?{...Nn.bindings[e]??{}}:{}}async function tc(e,t,n){if(!Nn)return;const r={...Nn.bindings[e]??{}};n===void 0?delete r[t]:r[t]=n,Nn.bindings={...Nn.bindings,[e]:r}}const Lo="sh3.actions",vi=new Set;function ny(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.`),()=>{};vi.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.`),vi.add(e.id);const r=Ad(Lo,{action:e,ownerShardId:t});let s=!1;return()=>{s||(s=!0,r(),vi.delete(e.id))}}function tt(){return Oa(Lo)}function ry(e){return Cd(Lo,e)}function Bt(e){return typeof e.label=="function"?e.label():e.label}const sy=["Ctrl","Alt","Shift","Meta"],nc={control:"Ctrl",ctrl:"Ctrl",alt:"Alt",option:"Alt",shift:"Shift",meta:"Meta",cmd:"Meta",command:"Meta",super:"Meta",win:"Meta"},ay=new Set(["Control","Alt","Shift","Meta"]);function Md(e){return e.length===1?e.toUpperCase():e}function No(e){if(!e)throw new Error("Empty shortcut");const t=e.split("+");if(t.some(o=>o.trim()===""))throw new Error(`Malformed shortcut: "${e}"`);const n=t.map(o=>o.trim());if(n.length===0)throw new Error(`Malformed shortcut: "${e}"`);const r=new Set;let s;for(const o of n){const l=o.toLowerCase();if(l in nc)r.add(nc[l]);else{if(s!==void 0)throw new Error(`Multiple keys in shortcut: "${e}"`);s=Md(o)}}if(s===void 0)throw new Error(`No key in shortcut: "${e}"`);return[...sy.filter(o=>r.has(o)),s].join("+")}function Od(e,t){if(!e.toLowerCase().includes("mod"))return e;const n=e.split("+").map(r=>r.toLowerCase()==="mod"?t==="mac"?"Meta":"Ctrl":r);return No(n.join("+"))}function iy(e){if(ay.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=Md(e.key);return[...t,n].join("+")}function oy(){return typeof navigator>"u"?"other":/Mac|iPhone|iPad|iPod/i.test(navigator.platform)?"mac":"other"}function Rs(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?null:No(r)}return e.defaultShortcut?Od(e.defaultShortcut,n):null}function ly(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?{shortcut:null,source:"disabled"}:{shortcut:No(r),source:"user"}}return e.defaultShortcut?{shortcut:Od(e.defaultShortcut,n),source:"default"}:{shortcut:null,source:"none"}}function za(e){return e==="home"?"home":e==="app"?"app":typeof e=="string"&&e.startsWith("view:")?"view":typeof e=="string"&&e.startsWith("focus:")?"focus":"element"}function qo(e){return Array.isArray(e)?e:[e]}function zd(e){return e==="home"||e==="app"?null:typeof e=="string"?e:e.element}function js(e,t,n){const r=qo(e),s={};for(const a of r){const o=za(a);(s[o]??=[]).push(a)}for(const a of La){const o=s[a];if(o){for(const l of o)if(ls(l,t,n))return l}}return null}function cy(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 uy(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 La=["element","focus","view","app","home"];function ls(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 dy(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=Rs(r.action,t.bindings,t.platform);if(s)for(const a of qo(r.action.scope)){if(!ls(a,t,r.ownerShardId))continue;const o=za(a),l=n[o].get(s);if(l&&l!==r.action.id){console.warn(`[sh3] Shortcut "${s}" in tier "${o}" is bound to both "${l}" and "${r.action.id}"; first-registered wins. Users can rebind to resolve.`);continue}n[o].set(s,r.action.id)}}return n}function fy(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 vy(e){const t=dy(e.entries,e.state),n=new Map(e.entries.map(r=>[r.action.id,r]));for(const r of La){const s=t[r].get(e.shortcut);if(!s)continue;const a=n.get(s);if(a)return fy(e.target)&&!a.action.allowInInputs?null:(e.runAction(s,{action:{id:a.action.id,label:Bt(a.action)},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 Ut=F(null);function Vo(){return i(Ut)}function Nd(e){return{get(){return i(Ut)},set(t){S(Ut,{type:t.type,ref:t.ref,ownerShardId:e},!0)},clear(){if(i(Ut)){if(i(Ut).ownerShardId!==e){console.warn(`[sh3] Shard "${e}" tried to clear selection owned by "${i(Ut).ownerShardId}". Ignoring.`);return}S(Ut,null)}}}}function qd(e){i(Ut)&&i(Ut).ownerShardId===e&&S(Ut,null)}function hy(){S(Ut,null)}const da=new Map,Vd=new Set;function py(e){Vd.add(e)}function my(e,t){if(da.has(e))throw new Error(`View "${e}" is already registered`);da.set(e,t);for(const n of Vd)n(e,t)}function Bd(e){return da.get(e)}function Fd(e){da.delete(e)}const cs=new Map;function by(e,t){if(cs.has(e))throw new Error(`Verb "${e}" is already registered`);cs.set(e,t)}function rc(e){return cs.get(e)}function Ud(e){cs.delete(e)}function Bo(){return Array.from(cs.values()).sort((e,t)=>e.name.localeCompare(t.name))}function Cr(e,t){const n=(r,s)=>{if(r.type==="tabs"){const a=r.tabs.findIndex(o=>o.slotId===t);if(a>=0)return{tabsNode:r,tabsPath:s,tabIndex:a,entry:r.tabs[a]}}else if(r.type==="split")for(let a=0;a<r.children.length;a++){const o=n(r.children[a],[...s,a]);if(o)return o}return null};return n(e,[])}function Fo(e,t){if(Li(e.docked,t))return{kind:"docked"};for(const n of e.floats)if(Li(n.content,t))return{kind:"float",floatId:n.id};return null}function Li(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(Li(n,t))return!0;return!1}function Na(e,t){const n=Cr(e,t);if(!n)return null;const{tabsNode:r,tabIndex:s,entry:a}=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),a}function gy(e,t,n){const r=Math.max(0,Math.min(n,e.tabs.length));e.tabs.splice(r,0,t),e.activeTab=r}function _y(e,t,n){const r=e.tabs.slice(),[s]=r.splice(t,1),a=Math.max(0,Math.min(n,r.length));r.splice(a,0,s),e.tabs=r,e.activeTab=a}function sc(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 yy(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=us(e,t);if(!s||Kd(e,t))return;if(t.length===0){const u=yy(s),d=sc(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 a=sc(s,n,r),o=t.slice(0,-1),l=t[t.length-1],c=us(e,o);!c||c.type!=="split"||(c.children[l]=a)}function us(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 Kd(e,t){if(t.length===0)return!1;const n=us(e,t.slice(0,-1));return!n||n.type!=="split"?!1:n.fixed?.[t[t.length-1]]===!0}function hr(e){let t=!0;for(;t;)t=Wd(e,null,0)}function Wd(e,t,n){if(e.type==="split"){let r=!1;for(let s=0;s<e.children.length;s++)Wd(e.children[s],e,s)&&(r=!0);for(let s=e.children.length-1;s>=0;s--){const a=e.children[s];a.type==="tabs"&&a.tabs.length===0&&!a.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],a=e;return delete a.direction,delete a.sizes,delete a.pinned,delete a.collapsed,delete a.children,Object.assign(a,s),!0}return r}return e.type==="tabs",!1}const In=new Map,Ws=new Set;function wy(e,t){for(const[n,r]of In.entries()){if(r.viewId!==e||r.handle!==void 0)continue;const s={slotId:n,viewId:e,label:r.label,meta:r.meta,setDirty(a){qa[n]=a},location(){return Fo(Ct(),n)}};queueMicrotask(()=>{if(In.has(n)&&r.handle===void 0&&(r.handle=t.mount(r.host,s),(r.handle?.closable||n.startsWith("float:"))&&(Va[n]=!0),r.handle?.onResize)){const a=r.handle.onResize.bind(r.handle);r.resizeObserver=new ResizeObserver(o=>{for(const l of o){const c=l.contentRect;a(Math.round(c.width),Math.round(c.height))}}),r.resizeObserver.observe(r.host)}})}}py(wy);const qa=oe({}),Va=oe({});function ky(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 a=!1;const o={host:s,handle:void 0,viewId:t,label:n,meta:r,refcount:0,resizeObserver:void 0,cancelPendingMount:()=>{a=!0}};return queueMicrotask(()=>{if(a)return;const l=t?Bd(t):void 0,c={slotId:e,viewId:t??"",label:n,meta:r,setDirty(u){qa[e]=u},location(){return Fo(Ct(),e)}};if(o.handle=l?.mount(s,c),(o.handle?.closable||e.startsWith("float:"))&&(Va[e]=!0),o.handle?.onResize){const u=o.handle.onResize.bind(o.handle);o.resizeObserver=new ResizeObserver(d=>{for(const f of d){const p=f.contentRect;u(Math.round(p.width),Math.round(p.height))}}),o.resizeObserver.observe(s)}}),o}function Uo(e,t,n,r){Ws.delete(e);let s=In.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=ky(e,t,n,r),In.set(e,s)),s.refcount++,s.host}function Ho(e,t){const n=In.get(e);if(n){if(n.refcount--,n.refcount>0){t&&n.host.parentNode===t&&n.host.remove();return}Ws.add(e),queueMicrotask(()=>{if(!Ws.has(e))return;Ws.delete(e);const r=In.get(e);!r||r.refcount>0||(r.resizeObserver?.disconnect(),r.handle?.unmount(),r.cancelPendingMount(),r.host.remove(),In.delete(e),delete qa[e],delete Va[e])})}}function Yd(e){const t=Ni.get(e);return t||In.get(e)?.handle}function xy(e){return qa[e]??!1}function Sy(e){return Ni.has(e)?!!Ni.get(e).closable:Va[e]??!1}const Ni=new Map;function Gd(e){if(!e||typeof e!="object")return!1;const t=e.type;return t==="split"||t==="tabs"||t==="slot"}function Ey(e){if(!e||typeof e!="object")return!1;const t=e;return Gd(t.docked)&&Array.isArray(t.floats)}function Iy(e){return{docked:e,floats:[]}}function Ay(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 Xd(e){if(Array.isArray(e))return e.map(Ay);if(Ey(e))return[{name:"default",variants:{default:e}}];if(Gd(e))return[{name:"default",variants:{default:Iy(e)}}];throw new Error("normalizeInitialLayout: input is not a LayoutNode, LayoutTree, or LayoutPreset[]")}function ac(e){const t=[],n=r=>{if(r.type==="slot"){t.push({slotId:r.slotId,viewId:r.viewId,label:r.viewId||r.slotId,meta:r.meta});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 Ko(e){const t=ac(e.docked);for(const n of e.floats)t.push(...ac(n.content));return t}Pi("workspace","__shell__");const Cy={type:"slot",slotId:"sh3core.home",viewId:"sh3core:home"},Ty=oe({docked:Cy,floats:[]});let Ve=F(null),Ba=F("home");function Ry(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 jy(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 Dy(e){if(i(Ve))throw new Error(`Layout manager cannot attach app "${e.manifest.id}": app "${i(Ve).appId}" is still attached`);const t=`__sh3core__:app:${e.manifest.id}`,n=Xd(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=bg("workspace",t),a=Ry(s);(a&&a.layoutVersion!==e.manifest.layoutVersion||s&&!a)&&Pi("workspace",t);const l=Da(t,{workspace:r}).workspace;S(Ve,{appId:e.manifest.id,proxy:l,heldSlotIds:[]},!0),o_(l)}function Py(){if(!i(Ve))throw new Error("acquireAppSlotHolds: no app attached");if(i(Ve).heldSlotIds.length>0)return;const e=jy(i(Ve).proxy),t=Ko(e);for(const{slotId:n,viewId:r,label:s,meta:a}of t)Uo(n,r,s,a),i(Ve).heldSlotIds.push(n)}function My(){if(!i(Ve))throw new Error("resetActivePresetToDefault: no app attached");const e=Tn(i(Ve).appId);if(!e)throw new Error(`resetActivePresetToDefault: attached app "${i(Ve).appId}" not in registry`);const t=Xd(e.initialLayout),n=i(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 i(Ve).heldSlotIds)Ho(l);i(Ve).heldSlotIds=[];const a=structuredClone(s.variants.default);n.presets[n.activePreset].default=a;const o=Ko(a);for(const{slotId:l,viewId:c,label:u,meta:d}of o)Uo(l,c,u,d),i(Ve).heldSlotIds.push(l)}function Jd(){if(i(Ve)){l_();for(const e of i(Ve).heldSlotIds)Ho(e);S(Ve,null)}}function Zd(){S(Ba,"home")}function ic(){if(!i(Ve))throw new Error("Cannot switchToApp: no app is attached");S(Ba,"app")}const Ys=W(()=>{if(i(Ba)==="app"&&i(Ve)){const e=i(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 Ty});function Ct(){return i(Ys)}function Qd(){return i(Ba)}const ln={get root(){return i(Ys).docked},get tree(){return i(Ys)},get floats(){return i(Ys).floats}};let $d=F(null),ef=F(oe(new Set)),Gs=F(oe(new Set)),tf=F(oe(new Set)),nf=F(null),rf=F(oe({}));const Oy=oy(),qi=new Set;function Lr(){for(const e of qi)try{e()}catch(t){console.error("[sh3] onActiveChange listener threw",t)}}function zy(e){return qi.add(e),()=>{qi.delete(e)}}function Ly(){Lr()}function fa(e,t){S($d,e,!0),S(ef,new Set(t),!0),Lr()}function Ny(){const e=Ko(ln.tree),t=new Set;for(const n of e)n.viewId!==null&&t.add(n.viewId);S(tf,t,!0),Lr()}function sf(e){S(nf,e,!0),Lr()}function ds(e){S(rf,{...e},!0),Lr()}function Jt(){return{activeAppId:i($d),activeAppRequiredShards:i(ef),autostartShards:i(Gs),mountedViewIds:i(tf),focusedViewId:i(nf),selection:Vo(),bindings:i(rf),platform:Oy}}function qy(e){i(Gs).has(e)||(S(Gs,new Set([...i(Gs),e]),!0),Lr())}var Vy=A('<div class="sh3-ctx-sep svelte-1667pfa" role="separator"></div>'),By=A('<span class="sh3-ctx-chevron svelte-1667pfa">▸</span>'),Fy=A('<span class="sh3-ctx-shortcut svelte-1667pfa"> </span>'),Uy=A('<button role="menuitem"><span class="sh3-ctx-check svelte-1667pfa"> </span> <span class="sh3-ctx-label svelte-1667pfa"> </span> <!></button>'),Hy=A("<!> <!>",1),Ky=A('<div class="sh3-context-menu svelte-1667pfa" role="menu" tabindex="0"></div>');function va(e,t){re(t,!0);const n=W(()=>t.sections.flatMap(c=>c.items));let r=F(0);function s(c,u){if(i(n).length===0)return 0;let d=c;for(let f=0;f<i(n).length;f++)if(d=(d+u+i(n).length)%i(n).length,!i(n)[d].disabled)return d;return c}function a(c){if(c.key==="ArrowDown")S(r,s(i(r),1),!0),c.preventDefault();else if(c.key==="ArrowUp")S(r,s(i(r),-1),!0),c.preventDefault();else if(c.key==="Enter"){const u=i(n)[i(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=(i(r)+1)%i(n).length;for(let f=0;f<i(n).length;f++){const p=(d+f)%i(n).length,b=i(n)[p];if(!b.disabled&&b.label.toLowerCase().startsWith(u)){S(r,p);break}}}}function o(c){c.disabled||(t.onInvoke(c.id),c.submenu||t.onDismiss())}var l=Ky();Mr(l,!0),he(l,23,()=>t.sections,c=>c.id,(c,u,d)=>{var f=Hy(),p=ve(f);{var b=g=>{var y=Vy();E(g,y)};K(p,g=>{i(d)>0&&g(b)})}var x=w(p,2);he(x,17,()=>i(u).items,g=>g.id,(g,y)=>{const k=W(()=>i(n).indexOf(i(y)));var _=Uy();let m;var I=h(_),D=h(I,!0);v(I);var T=w(I,2),j=h(T,!0);v(T);var z=w(T,2);{var R=C=>{var P=By();E(C,P)},M=C=>{var P=Fy(),B=h(P,!0);v(P),N(()=>O(B,i(y).shortcut)),E(C,P)};K(z,C=>{i(y).submenu?C(R):i(y).shortcut&&C(M,1)})}v(_),N(()=>{m=ce(_,1,"sh3-ctx-item svelte-1667pfa",null,m,{"sh3-ctx-active":i(k)===i(r),"sh3-ctx-disabled":i(y).disabled}),ne(_,"aria-disabled",i(y).disabled||void 0),O(D,i(y).checked?"✓":""),O(j,i(y).label)}),De("pointerenter",_,()=>{i(y).disabled||S(r,i(k),!0)}),H("click",_,()=>o(i(y))),E(g,_)}),E(c,f)}),v(l),H("keydown",l,a),E(e,l),se()}le(["keydown","click"]);function af(e,t){re(t,!0);const n=W(()=>t.model.tiers.map(r=>({id:`tier:${r.tier}`,items:r.items.map(s=>({...s,icon:void 0}))})));va(e,{get sections(){return i(n)},get onInvoke(){return t.onInvoke},get onDismiss(){return t.onClose}}),se()}function oc(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function of(e,t){return{id:e.action.id,label:Bt(e.action),shortcut:Rs(e.action,t.bindings,t.platform),group:e.action.group??"",icon:e.action.icon,checked:oc(e.action.checked),disabled:oc(e.action.disabled),submenu:e.action.submenu===!0}}function lf(e,t,n,r){return qo(e.scope).some(a=>cy(a,n))?n==="app"||n==="home"||typeof n=="object"&&"element"in n?ls(n,r,t):!0:!1}function cf(e,t,n){const r={element:[],focus:[],view:[],app:[],home:[]},s=new Set;for(const a of e){if(!a.action.contextItem||a.action.submenuOf!==void 0||s.has(a.action.id)||!lf(a.action,a.ownerShardId,n,t))continue;const o=js(a.action.scope,t,a.ownerShardId)??n;s.add(a.action.id),r[za(o)].push(of(a,t))}return{tiers:La.map(a=>({tier:a,items:r[a]})).filter(a=>a.items.length>0)}}function Wy(e,t,n,r){const s=[],a=new Set;for(const o of e)o.action.submenuOf===n&&(a.has(o.action.id)||lf(o.action,o.ownerShardId,r,t)&&(a.add(o.action.id),s.push(of(o,t))));return s}function Yy(e,t){if(!t)return 0;const n=e.toLowerCase(),r=t.toLowerCase();let s=0,a=0,o=0,l=0,c=-2;for(;s<n.length&&a<r.length;){if(n[s]===r[a]){const u=s===0?5:0,d=s===c+1?++l:l=1;o+=1+u+d,c=s,a++}else l=0;s++}return a===r.length?o:null}function Gy(e,t,n){const r=[];for(const a of e){if(t===""&&a.submenuOf!==void 0)continue;const o=Yy(a.label,t);o!==null&&r.push({...a,score:o})}const s=new Map;return n.forEach((a,o)=>s.set(a,n.length-o)),r.sort((a,o)=>{if(a.score!==o.score)return o.score-a.score;const l=s.get(a.id)??0;return(s.get(o.id)??0)-l}),r}var Xy=A('<span class="sh3-palette-badge svelte-1qdcgk6"> </span>'),Jy=A('<span class="sh3-palette-shortcut svelte-1qdcgk6"> </span>'),Zy=A('<button role="option"><span class="sh3-palette-label svelte-1qdcgk6"> </span> <!> <!></button>'),Qy=A('<div class="sh3-palette svelte-1qdcgk6" role="dialog" aria-label="Command palette" aria-modal="true" tabindex="-1"><input class="sh3-palette-input hell-base-input svelte-1qdcgk6" placeholder="Command…"/> <div class="sh3-palette-list svelte-1qdcgk6" role="listbox"></div></div>');function $y(e,t){re(t,!0);let n=Z(t,"prefill",3,""),r=F(oe(n())),s=F(0);const a=W(()=>Gy(t.candidates,i(r),t.recency));xe(()=>{i(s)>=i(a).length&&S(s,0)});function o(d){d.key==="ArrowDown"?(S(s,Math.min(i(s)+1,Math.max(0,i(a).length-1)),!0),d.preventDefault()):d.key==="ArrowUp"?(S(s,Math.max(i(s)-1,0),!0),d.preventDefault()):d.key==="Enter"?(i(a)[i(s)]&&(t.onInvoke(i(a)[i(s)].id),t.onClose()),d.preventDefault()):d.key==="Escape"&&(t.onClose(),d.preventDefault())}var l=Qy(),c=h(l);ge(c),Mr(c,!0);var u=w(c,2);he(u,23,()=>i(a),d=>d.id,(d,f,p)=>{var b=Zy();let x;var g=h(b),y=h(g,!0);v(g);var k=w(g,2);{var _=D=>{var T=Xy(),j=h(T);v(T),N(()=>O(j,`[${i(f).scopeBadge??""}]`)),E(D,T)};K(k,D=>{i(f).scopeBadge&&D(_)})}var m=w(k,2);{var I=D=>{var T=Jy(),j=h(T,!0);v(T),N(()=>O(j,i(f).shortcut)),E(D,T)};K(m,D=>{i(f).shortcut&&D(I)})}v(b),N(()=>{x=ce(b,1,"sh3-palette-item svelte-1qdcgk6",null,x,{"sh3-palette-active":i(p)===i(s)}),ne(b,"aria-selected",i(p)===i(s)),O(y,i(f).label)}),De("pointerenter",b,()=>S(s,i(p),!0)),H("click",b,()=>{t.onInvoke(i(f).id),t.onClose()}),E(d,b)}),v(u),v(l),H("keydown",l,o),Ee(c,()=>i(r),d=>S(r,d)),E(e,l),se()}le(["keydown","click"]);function ew(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function tw(e,t,n={}){const r=[],s=new Set,a=n.filter?.submenuOf;for(const o of e){if(o.action.paletteItem===!1||ew(o.action.disabled)||a!==void 0&&o.action.submenuOf!==a||s.has(o.action.id))continue;const l=js(o.action.scope,t,o.ownerShardId);l&&(s.add(o.action.id),r.push({id:o.action.id,label:Bt(o.action),shortcut:Rs(o.action,t.bindings,t.platform),scopeBadge:zd(l),submenu:o.action.submenu===!0,submenuOf:a!==void 0?void 0:o.action.submenuOf}))}return r}let lc=!1;function Wo(e){return e?e.closest("[data-sh3-view]")?.getAttribute("data-sh3-view")??null:null}function uf(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=uy(n.getAttribute("data-sh3-scope")??"");if(s&&!(typeof s=="object"&&"element"in s&&!ls(s,e.state)))return s;const a=n.parentElement;n=a?a.closest("[data-sh3-scope]"):null}const r=Wo(t);if(r)return`focus:${r}`}return e.state.activeAppId?"app":"home"}function df(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 Nr(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=Jt();df(e,{action:{id:t.action.id,label:Bt(t.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"programmatic",dispatch:Nr})}function nw(e){const t=Wo(e.target);sf(t)}function rw(e){queueMicrotask(()=>{const t=Wo(document.activeElement);sf(t)})}function sw(e){return e instanceof Element?e.closest('[data-sh3-context-menu="native"]')!==null:!1}function ff(e,t,n,r){const s=document.querySelector(".sh3-popup-host");if(!s)return;const a=document.createElement("div");a.className="sh3-popup-submenu",a.style.position="absolute",a.style.pointerEvents="auto";const l=(s.querySelector(".sh3-ctx-active")??s).getBoundingClientRect();a.style.left=`${l.right+2}px`,a.style.top=`${l.top}px`,s.appendChild(a);const c=Wy(tt(),t,e,r);Ne(va,{target:a,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:Bt(d.action)},appId:t.activeAppId,viewId:t.focusedViewId??void 0,selection:t.selection??void 0,invokedVia:"context-menu",dispatch:Nr})}catch(f){console.error(`[sh3] context-menu submenu action "${u}" threw:`,f)}n.close()}},onDismiss:()=>n.close()}})}function aw(e){if(sw(e.target))return;const t=tt(),n=Jt(),r=uf({event:e,state:n}),s=cf(t,n,r);if(s.tiers.length===0)return;e.preventDefault();const a=Pn.popup.show(af,{anchor:{x:e.clientX,y:e.clientY}},{model:s,onInvoke:o=>{const l=tt().find(c=>c.action.id===o);if(l){if(l.action.submenu===!0){ff(o,n,a,r);return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:Bt(l.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:Nr})}catch(c){console.error(`[sh3] context-menu action "${o}" threw:`,c)}}},onClose:()=>a.close()})}function iw(e){const t=iy(e);if(!t)return;const n=tt(),r=Jt();vy({target:e.target,shortcut:t,state:r,entries:n,runAction:df,dispatch:Nr})&&e.preventDefault()}function vf(){lc||(lc=!0,document.addEventListener("keydown",iw),document.addEventListener("focusin",nw),document.addEventListener("focusout",rw),document.addEventListener("contextmenu",aw))}function Yo(e){const t=tt(),n=Jt(),r=uf({explicit:e.scope,state:n}),s=cf(t,n,r);if(s.tiers.length===0)return;const a=Pn.popup.show(af,{anchor:{x:e.x,y:e.y}},{model:s,onInvoke:o=>{const l=tt().find(c=>c.action.id===o);if(l){if(l.action.submenu===!0){ff(o,n,a,r);return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:Bt(l.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:Nr})}catch(c){console.error(`[sh3] context-menu action "${o}" threw:`,c)}}},onClose:()=>a.close()})}const ow=20;let Vi=[];function lw(e){Vi=[e,...Vi.filter(t=>t!==e)].slice(0,ow)}function Fa(e){const t=tt(),n=Jt(),r=tw(t,n,{filter:e?.filter}),s=Pn.modal.open($y,{candidates:r,recency:Vi,prefill:e?.prefill??"",onInvoke:a=>{const o=tt().find(l=>l.action.id===a);if(o){if(lw(a),o.action.submenu===!0&&typeof o.action.run!="function"){s.close(),Fa({filter:{submenuOf:a}});return}if(typeof o.action.run=="function")try{o.action.run({action:{id:a,label:Bt(o.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"palette",dispatch:Nr})}catch(l){console.error(`[sh3] palette action "${a}" threw:`,l)}}},onClose:()=>s.close()},{dismissOnBackdrop:!0})}const cw=Object.freeze(Object.defineProperty({__proto__:null,attachGlobalListeners:vf,openContextMenu:Yo,openPalette:Fa},Symbol.toStringTag,{value:"Module"}));function uw(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 a=js(s.action.scope,t,s.ownerShardId);if(!a)continue;r.add(s.action.id);const{shortcut:o,source:l}=ly(s.action,t.bindings,t.platform);n[za(a)].push({id:s.action.id,label:Bt(s.action),effectiveShortcut:o,bindingSource:l,scope:a,scopeBadge:zd(a),group:s.action.group,icon:s.action.icon,ownerShardId:s.ownerShardId,paletteItem:s.action.paletteItem!==!1,contextItem:s.action.contextItem!==!1})}return La.flatMap(s=>n[s])}const dw={async rebind(e,t,n){await tc(e,t,n),Jt().activeAppId===e&&ds(await br(e))},async resetBinding(e,t){await tc(e,t,void 0),Jt().activeAppId===e&&ds(await br(e))},async bindingsFor(e){const t=await br(e),n={};for(const[r,s]of Object.entries(t))s!==null&&(n[r]=s);return n},openContextMenu:Yo,openPalette:Fa,listActive(){return uw(tt(),Jt())},onActiveChange(e){const t=zy(e),n=ry(()=>{Ly()});return()=>{t(),n()}}},Pn={state:Da,modal:yn,popup:Oi,toast:Sn,float:lt,presets:f_,conflicts:Z_,color:ey,actions:dw};function sr(e,t,n){return`${e}/${t}/${n}`}function fw(e,t){return`${e}/${t}/`}const vw="sh3-documents",Pt="docs",hw=2;class pw{#e=null;#t(){return this.#e||(this.#e=new Promise((t,n)=>{const r=indexedDB.open(vw,hw);r.onupgradeneeded=()=>{const s=r.result;s.objectStoreNames.contains(Pt)||s.createObjectStore(Pt)},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,a)=>{const l=r.transaction(Pt,t).objectStore(Pt),c=n(l);c.onsuccess=()=>s(c.result),c.onerror=()=>a(c.error)})}async read(t,n,r){const s=sr(t,n,r),a=await this.#n("readonly",o=>o.get(s));return a?a.content:null}async write(t,n,r,s){const a=sr(t,n,r),o=typeof s=="string"?new Blob([s]).size:s.byteLength,l={content:s,size:o,lastModified:Date.now()};await this.#n("readwrite",c=>c.put(l,a))}async delete(t,n,r){const s=sr(t,n,r);await this.#n("readwrite",a=>a.delete(s))}async rename(t,n,r,s){const a=sr(t,n,r),o=sr(t,n,s),l=await this.#t();return new Promise((c,u)=>{let d=!1;const f=l.transaction(Pt,"readwrite"),p=f.objectStore(Pt),b=p.get(a);b.onsuccess=()=>{const x=b.result;if(!x){d=!0,f.abort(),u(new Error(`Document not found at ${r}`));return}const g=p.getKey(o);g.onsuccess=()=>{if(g.result!==void 0){d=!0,f.abort(),u(new Error(`Document already exists at ${s}`));return}const y={...x,lastModified:Date.now()};p.put(y,o),p.delete(a)},g.onerror=()=>u(g.error)},b.onerror=()=>u(b.error),f.oncomplete=()=>c(),f.onerror=()=>{d||u(f.error)},f.onabort=()=>{}})}async list(t,n){const r=fw(t,n),s=await this.#t();return new Promise((a,o)=>{const c=s.transaction(Pt,"readonly").objectStore(Pt),u=IDBKeyRange.bound(r,r+"￿",!1,!1),d=c.openCursor(u),f=[];d.onsuccess=()=>{const p=d.result;if(p){const b=p.value;f.push({path:p.key.slice(r.length),size:b.size,lastModified:b.lastModified}),p.continue()}else a(f)},d.onerror=()=>o(d.error)})}async exists(t,n,r){const s=sr(t,n,r);return await this.#n("readonly",o=>o.getKey(s))!==void 0}async listAllShards(t){const n=`${t}/`,r=await this.#t();return new Promise((s,a)=>{const l=r.transaction(Pt,"readonly").objectStore(Pt),c=IDBKeyRange.bound(n,n+"￿",!1,!1),u=l.openKeyCursor(c),d=new Set;u.onsuccess=()=>{const f=u.result;if(f){const p=f.key.slice(n.length),b=p.indexOf("/");b>=0&&d.add(p.slice(0,b)),f.continue()}else s([...d])},u.onerror=()=>a(u.error)})}async listAllDocuments(t){const n=`${t}/`,r=await this.#t();return new Promise((s,a)=>{const l=r.transaction(Pt,"readonly").objectStore(Pt),c=IDBKeyRange.bound(n,n+"￿",!1,!1),u=l.openCursor(c),d=[];u.onsuccess=()=>{const f=u.result;if(f){const p=f.key.slice(n.length),b=p.indexOf("/");if(b>=0){const x=f.value;d.push({shardId:p.slice(0,b),path:p.slice(b+1),size:x.size,lastModified:x.lastModified})}f.continue()}else s(d)},u.onerror=()=>a(u.error)})}}class mw{#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}`,a=await fetch(s,{credentials:"include"});if(a.status===404)return null;if(!a.ok)throw new Error(`Document read failed: ${a.status}`);return(a.headers.get("content-type")??"").includes("application/octet-stream")?a.arrayBuffer():a.text()}async write(t,n,r,s){const a=`${this.#e}/api/docs/${t}/${n}/${r}`,o={...this.#n(),"Content-Type":typeof s=="string"?"text/plain":"application/octet-stream"},l=await fetch(a,{method:"PUT",headers:o,body:s,credentials:"include"});if(!l.ok)throw new Error(`Document write failed: ${l.status}`)}async delete(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}`,a=await fetch(s,{method:"DELETE",headers:this.#n(),credentials:"include"});if(!a.ok)throw new Error(`Document delete failed: ${a.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`,a=await fetch(s,{credentials:"include"});if(!a.ok)throw new Error(`readMeta failed: ${a.status}`);const o=await a.json();return o.exists?o:null}async resolve(t,n,r,s){const a=`${this.#e}/api/docs/${t}/${n}/${r}/resolve`,o=typeof s=="string"?{choice:s}:{choice:s.origin},l=await fetch(a,{method:"POST",credentials:"include",headers:{...this.#n(),"Content-Type":"application/json"},body:JSON.stringify(o)});if(!l.ok)throw new Error(`resolve failed: ${l.status}`)}async readBranch(t,n,r,s){const a=`${this.#e}/api/docs/${t}/${n}/${r}/branch?origin=${encodeURIComponent(s)}`,o=await fetch(a,{credentials:"include"});if(o.status===404)return null;if(!o.ok)throw new Error(`readBranch failed: ${o.status}`);return o.text()}async rename(t,n,r,s){const a=`${this.#e}/api/docs/${t}/${n}/${r}/rename`,o={...this.#n(),"Content-Type":"application/json"},l=await fetch(a,{method:"POST",headers:o,body:JSON.stringify({to:s}),credentials:"include"});if(l.status===404)throw new Error(`Document not found at ${r}`);if(l.status===409)throw new Error(`Document already exists at ${s}`);if(!l.ok)throw new Error(`Document rename failed: ${l.status}`)}#n(){return this.#t?{Authorization:`Bearer ${this.#t}`}:{}}}class bw{#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 xn=new bw,gw=1e3;function _w(e,t,n,r){const s=new Set,a=new Set;function o(u){return!r.extensions||r.extensions.length===0?!0:r.extensions.some(d=>u.endsWith(d))}function l(u,d){xn.emit({type:u,path:d,tenantId:e,shardId:t})}const c={async list(){const u=await n.list(e,t);return!r.extensions||r.extensions.length===0?u:u.filter(d=>o(d.path))},async read(u){const d=await n.read(e,t,u);return d===null?null:typeof d=="string"?d:new TextDecoder().decode(d)},async write(u,d){const f=await n.exists(e,t,u);await n.write(e,t,u,d),l(f?"update":"create",u)},async delete(u){const d=await n.exists(e,t,u);await n.delete(e,t,u),d&&l("delete",u)},async rename(u,d){if(!o(d))throw new Error(`Cannot rename to ${d}: violates handle extensions filter`);for(const f of s)if(f.path===u)throw new Error(`Cannot rename: active autosave on ${u}; flush and dispose first`);await n.rename(e,t,u,d),xn.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=xn.subscribe(f=>{f.tenantId===e&&f.shardId===t&&o(f.path)&&u(f)});return a.add(d),()=>{d(),a.delete(d)}},autosave(u,d){const f=new yw(c,u,d?.debounceMs??gw);return s.add(f),f},async dispose(){const u=[...s].map(d=>d.dispose());await Promise.all(u),s.clear();for(const d of a)d();a.clear()}};return c}class yw{#e;#t;#n;#a=null;#s=null;#i=!1;#r=!1;constructor(t,n,r){this.#e=t,this.#t=n,this.#n=r}get dirty(){return this.#i}get path(){return this.#t}update(t){this.#r||(this.#a=t,this.#i=!0,this.#o())}async flush(){if(this.#l(),this.#a!==null){const t=this.#a;this.#a=null,this.#i=!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 ww="local";let Go=ww,hf=new pw;function pf(){return Go}function Xs(){return Go}function Bi(){return hf}function Js(e){Go=e}function mf(e){hf=e}const kw=Object.freeze(Object.defineProperty({__proto__:null,__setActiveScope:Js,__setDocumentBackend:mf,getActiveScopeId:pf,getDocumentBackend:Bi,getTenantId:Xs},Symbol.toStringTag,{value:"Module"})),xw="sync:peer",Sw="sync:policy";let qr=F(null),cn=F(null),Vr=F(!1),Ua="",Fi=null;function cc(e,t){Ua=e,Fi=t.auth,S(qr,t.user,!0),S(cn,t.session,!0),S(Vr,!t.session&&!t.user,!0)}async function bf(e,t){try{const n=await fetch(`${Ua}/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 S(qr,r.user,!0),S(cn,r.session,!0),S(Vr,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function Ew(e,t,n){try{const r=await fetch(`${Ua}/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 S(qr,s.user,!0),S(cn,s.session,!0),S(Vr,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function Iw(){try{await fetch(`${Ua}/api/auth/logout`,{method:"POST",credentials:"include"})}catch{}if(Fi?.required&&!Fi.guestAllowed){window.location.reload();return}S(qr,null),S(cn,null),S(Vr,!0)}function Aw(){S(qr,{id:"local",username:"local",displayName:"Local Owner",role:"admin",createdAt:"",updatedAt:""},!0),S(cn,{token:"local",userId:"local",role:"admin",expiresAt:1/0},!0),S(Vr,!1)}function Cw(){return i(cn)?.token==="local"}function ht(){return i(cn)?.role==="admin"}function Ui(){return i(cn)!==null}function gf(){return i(Vr)}function Tr(){return i(qr)}function Ha(){return i(cn)?`Bearer ${i(cn).token}`:null}let Br="";function _f(e){Br=e}async function Tw(e){const t=await fetch(`${Br}/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 Rw(e,t){if(!ht())throw new Error("Cannot update env state: not elevated to admin");const n=Ha(),r={"Content-Type":"application/json"};n&&(r.Authorization=n);const s=await fetch(`${Br}/api/env-state/${encodeURIComponent(e)}`,{method:"PUT",headers:r,body:JSON.stringify(t)});if(!s.ok){const a=await s.json().catch(()=>({}));throw new Error(`Env state update failed: HTTP ${s.status} — ${a.error??"unknown"}`)}}async function Xo(e,t,n){if(!ht())throw new Error("Cannot install: not elevated to admin");const r=Ha(),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 a={};r&&(a.Authorization=r);const o=await fetch(`${Br}/api/packages/install`,{method:"POST",headers:a,body:s});if(!o.ok){let l={};try{l=await o.json()}catch{}return{ok:!1,error:typeof l.error=="string"?l.error:`HTTP ${o.status}`,code:typeof l.code=="string"?l.code:void 0,missing:Array.isArray(l.missing)?l.missing:void 0}}return{ok:!0}}async function jw(e){if(!ht())throw new Error("Cannot uninstall: not elevated to admin");const t=Ha(),n={"Content-Type":"application/json"};t&&(n.Authorization=t);const r=await fetch(`${Br}/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 Dw(){const e=await fetch(`${Br}/api/packages`);return e.ok?await e.json():[]}function Pw(e){return tn[e].list()}function Mw(e,t){return tn[e].read(t)}function Ow(e,t){tn[e].delete(t)}function zw(e){for(const t of tn[e].list())tn[e].delete(t)}function yf(){return{list:Pw,peek:Mw,clear:Ow,clearAll:zw}}const wf="documents:browse",kf="documents:read",xf="documents:write";function Lw(e,t,n={canRead:!1,canWrite:!1}){const r={listDocuments:()=>t.listAllDocuments(e),listShards:()=>t.listAllShards(e),watchDocuments:s=>xn.subscribe(a=>{a.tenantId===e&&s(a)})};return n.canRead&&(r.readFrom=(s,a)=>t.read(e,s,a),r.statusFrom=async(s,a)=>t.readMeta?t.readMeta(e,s,a):null,r.readBranchFrom=async(s,a,o)=>t.readBranch?t.readBranch(e,s,a,o):null),n.canWrite&&(r.writeTo=async(s,a,o)=>{const l=await t.exists(e,s,a);await t.write(e,s,a,o),xn.emit({type:l?"update":"create",path:a,tenantId:e,shardId:s})},r.resolveConflictFrom=async(s,a,o)=>{if(!t.resolve)throw new Error("Backend does not support resolveConflict");await t.resolve(e,s,a,o),xn.emit({type:"update",path:a,tenantId:e,shardId:s})},r.renameFrom=async(s,a,o,l)=>{if(l?.newShardId!==void 0)throw new Error("Cross-shard move is not yet supported (ADR-018 amendment 2026-04-27)");await t.rename(e,s,a,o),xn.emit({type:"rename",path:o,oldPath:a,tenantId:e,shardId:s})},r.deleteFrom=async(s,a)=>{const o=await t.exists(e,s,a);await t.delete(e,s,a),o&&xn.emit({type:"delete",path:a,tenantId:e,shardId:s})}),r}const Sf="keys:mint";class Ef extends Error{constructor(t){super(`Shard may not mint a key with scope '${t}' — not declared in manifest.`),this.name="ScopeEscalationError"}}class If extends Error{constructor(){super("User denied key creation."),this.name="ConsentDeniedError"}}const Hi=new Map;let es=null;function Af(e){return es=e,()=>{es===e&&(es=null)}}async function Nw(e,t){if(!es)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=>{Hi.set(n,{resolve:r}),es({...t,shardId:e,requestId:n})})}function Ki(e,t){const n=Hi.get(e);n&&(Hi.delete(e),n.resolve(t))}const ha=new Map,Zs=new Map,qw=5e3;function Vw(e,t){let n=Zs.get(e);n||(n=new Set,Zs.set(e,n)),n.add(t),setTimeout(()=>{n.delete(t),n.size===0&&Zs.delete(e)},qw)}function Bw(e,t){return Zs.get(e)?.has(t)??!1}function Jo(e,t){const n=ha.get(e)??new Set;return n.add(t),ha.set(e,n),()=>{n.delete(t)}}function Cf(e,t){if(!e||Bw(e,t))return;Vw(e,t);const n=ha.get(e);if(n)for(const s of n)s(t);const r=ha.get("*");if(r)for(const s of r)s(t)}function Fw(){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);Cf(n.shardId,n.id)}catch{}},()=>e.close()}function Uw(e){const{shardId:t,shardPermissions:n}=e,r=s=>{for(const a of s)if(!n.includes(a)&&!n.includes("admin:*"))throw new Ef(a)};return{async mint(s){if(r(s.scopes),!await Nw(t,s))throw new If;const o=await fetch("/api/keys/consent",{method:"POST",credentials:"include",headers:{"content-type":"application/json"},body:JSON.stringify({shardId:t,...s})});if(!o.ok)throw new Error(`Consent ticket failed: ${o.status}`);const{ticket:l}=await o.json(),c=await fetch("/api/keys",{method:"POST",credentials:"include",headers:{"content-type":"application/json"},body:JSON.stringify({ticket:l})});if(!c.ok)throw new Error(`Mint failed: ${c.status}`);return c.json()},async list(){const s=await fetch("/api/keys",{credentials:"include"});if(!s.ok)throw new Error(`List failed: ${s.status}`);return(await s.json()).filter(o=>o.mintedByShardId===t)},async revoke(s){const a=await fetch(`/api/keys/${encodeURIComponent(s)}`,{method:"DELETE",credentials:"include"});if(!a.ok&&a.status!==404)throw new Error(`Revoke failed: ${a.status}`);Cf(t,s)}}}const un=oe(new Map),gr=new Map,Rr=oe(new Map),pa=oe(new Map);function Zo(e){const t=e.manifest.id;un.has(t)&&Rr.has(t)&&Ka(t),un.set(t,e),pa.delete(t)}async function Tf(e,t){const n=un.get(e);if(!n)throw new Error(`Cannot activate shard "${e}": not registered`);if(gr.has(e))return;const r={shard:n,ctx:void 0,viewIds:new Set,verbNames:new Set,cleanupFns:[]},s=oe({proxy:null,defaults:null}),a={register(l,c){const u=Ad(l,c);return r.cleanupFns.push(async()=>u()),u},list(l){return Oa(l)},listPoints(){return v_()},onChange(l,c){const u=Cd(l,c);return r.cleanupFns.push(async()=>u()),u}},o={state:l=>Pn.state(e,l),registerView:(l,c)=>{my(l,c),r.viewIds.add(l)},registerVerb:l=>{const c=e==="shell"?l.name:`${e}:${l.name}`;by(c,{...l,name:c}),r.verbNames.add(c)},documents:l=>{const c=_w(Xs(),e,Bi(),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=Xn(s.proxy);Object.assign(s.proxy,l);try{const u=Xn(s.proxy);await Rw(e,u)}catch(u){throw Object.assign(s.proxy,c),u}},get isAdmin(){return ht()},get tenantId(){return Xs()},zones:n.manifest.permissions?.includes(Ro)?yf():void 0,browse:n.manifest.permissions?.includes(wf)?Lw(Xs(),Bi(),{canRead:n.manifest.permissions.includes(kf),canWrite:n.manifest.permissions.includes(xf)}):void 0,keys:n.manifest.permissions?.includes(Sf)?Uw({shardId:e,shardPermissions:n.manifest.permissions??[]}):void 0,contributions:a,actions:{register(l){const c=ny(l,e);return r.cleanupFns.push(async()=>c()),c},selection:Nd(e),openContextMenu(l){Yo(l)},openPalette(l){Fa(l)}}};if(r.ctx=o,n.onKeyRevoked){const l=Jo(e,async c=>{try{await n.onKeyRevoked(c)}catch(u){console.error(`[sh3] onKeyRevoked failed in "${e}":`,u)}});r.cleanupFns.push(async()=>l())}gr.set(e,r),Rr.set(e,n);try{await n.activate(o);for(const l of n.manifest.views)if(!r.viewIds.has(l.id))throw new Error(`Shard "${e}" declared view "${l.id}" in its manifest but registered no factory for it.`);if(s.proxy&&s.defaults)try{const l=await Tw(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)Ud(c);for(const c of r.viewIds)Fd(c);throw qd(e),gr.delete(e),Rr.delete(e),pa.set(e,{id:e,error:l,phase:t?.phase??"launch",timestamp:Date.now()}),console.error(`[sh3] Shard "${e}" failed to activate:`,l),l}pa.delete(e),n.autostart?.(o)}function Ka(e){const t=gr.get(e);if(t){t.shard.deactivate?.();for(const n of t.cleanupFns)n();for(const n of t.verbNames)Ud(n);for(const n of t.viewIds)Fd(n);qd(e),gr.delete(e),Rr.delete(e)}}function Hw(e){return gr.get(e)?.ctx}function uc(){const e=[];for(const t of Rr.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 Qn=oe({activeProjectId:null});function Rf(e){if(Qn.activeProjectId===e)return;const t=st.id;Qn.activeProjectId=e,Ar.id=null,t&&wr(()=>Promise.resolve().then(()=>Ww),void 0).then(n=>n.unloadApp(t))}const jf=Da("__sh3core__:last-app",{user:{id:null}});function Df(){return jf.user.id}function fs(e){jf.user.id=e}function Pf(){fs(null)}const Wi=new Map;function Kw(){return Qn.activeProjectId??pf()}function Ls(e,t){let n=Wi.get(e);if(!n){const r=Tn(e),s=Kw();n={scopeId:s,state:a=>Da(`__app__:${e}:scope:${s}`,a),zones:r?.manifest.permissions?.includes(Ro)?yf():void 0},Wi.set(e,n)}return n}async function bn(e){const t=Tn(e);if(!t)throw new Error(`Cannot launch app "${e}": not registered`);if(st.id&&st.id!==e)Qo(st.id);else if(st.id===e){for(const n of t.manifest.requiredShards){const r=un.get(n),s=Hw(n);r&&s&&r.resume?.(s)}t.resume?.(Ls(e)),ic(),t.onAppReady?.(Ls(e)),fs(e),Ar.id=e,fa(e,new Set(t.manifest.requiredShards??[])),br(e).then(ds);return}for(const n of t.manifest.requiredShards)if(!un.has(n))throw new Error(`App "${e}" requires shard "${n}" which is not registered`);Dy(t);try{for(const n of t.manifest.requiredShards)await Tf(n,{phase:"launch"})}catch(n){Jd();try{Sn.notify(`Couldn't launch "${t.manifest.label??e}": ${n instanceof Error?n.message:String(n)}`,{level:"error",duration:6e3})}catch{}throw n}Py(),t.activate?.(Ls(e)),st.id=e,fa(e,new Set(t.manifest.requiredShards??[])),br(e).then(ds),ic(),t.onAppReady?.(Ls(e)),fs(e),Ar.id=e}function Qo(e){if(st.id!==e)return;const t=Tn(e);if(t){t.deactivate?.(),Zd(),Jd();for(const n of t.manifest.requiredShards){const r=un.get(n);r&&(r.autostart||Ka(n))}st.id=null,fa(null,new Set),hy(),_d(),br("sh3.home").then(ds),Wi.delete(e)}}function Wa(e){Cn.has(e)&&(st.id===e&&(Qo(e),fs(null)),Cn.delete(e))}async function Ds(){const e=st.id?Tn(st.id):null;if(e){for(const t of e.manifest.requiredShards){const n=un.get(t);if(n?.suspend&&await n.suspend()===!1)return!1}if(e.suspend&&await e.suspend()===!1)return!1}return _d(),Zd(),fa(null,new Set),fs(null),!0}const Ww=Object.freeze(Object.defineProperty({__proto__:null,clearLastApp:Pf,launchApp:bn,readLastApp:Df,returnToHome:Ds,unloadApp:Qo,unregisterApp:Wa},Symbol.toStringTag,{value:"Module"}));function Mf(){return{root:Ct(),source:Qd()}}function Yw(e){const t=Ct().docked,n=el(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 Gw(e){const t=Ct();return Ga(t.docked,n=>n.slotId===e)?!0:Of(t,n=>n.slotId===e)}function Ya(e){const t=Ct();return Ga(t.docked,n=>n.viewId===e)?!0:Of(t,n=>n.viewId===e)}function Ga(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(Ga(n,t))return!0}return!1}function Of(e,t){for(const n of e.floats)if(Ga(n.content,t))return lt.focus(n.id),!0;return!1}function Xw(e,t){return zf(e,t,!0)}function Jw(e,t){return zf(e,t,!1)}function zf(e,t,n){const r=Ct().docked,s=us(r,e);if(!s||s.type!=="split")return!1;const a=s;return t<0||t>=a.children.length?!1:(a.collapsed||(a.collapsed=a.children.map(()=>!1)),a.collapsed[t]=n,!0)}async function $o(e){const t=Ct(),n=t.docked;if(!Cr(n,e))return Zw(t,e);const a=Yd(e)?.closable;return!a||typeof a=="object"&&(!await a.canClose()||!Cr(n,e))?!1:(Na(n,e),hr(n),!0)}async function Zw(e,t){for(const n of e.floats){if(!Cr(n.content,t))continue;const a=Yd(t)?.closable;if(typeof a=="object"&&(!await a.canClose()||!Cr(n.content,t)))return!1;Na(n.content,t);const o=n.content.type==="tabs"?n.content:null;return(!o||o.tabs.length===0)&&lt.close(n.id),!0}return!1}function Lf(e){const t=Ct(),n=Cr(t.docked,e);if(!n)return null;const r=n.entry,s=r.viewId;if(!s)return null;const a=r.label,o=r.meta;return Na(t.docked,e),hr(t.docked),lt.open(s,{title:a,meta:o})}function Nf(e){const n=Ct().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 a=s.tabs[s.activeTab??0]??s.tabs[0],o=tl({slotId:a.slotId,viewId:a.viewId,label:a.label,meta:a.meta});return o&&lt.close(e),o}function el(e){if(e.type==="tabs")return e;if(e.type==="split")for(const t of e.children){const n=el(t);if(n)return n}return null}function qf(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=qf(e.children[n],[...t,n]);if(r)return r}return null}function tl(e){const t=Ct().docked;if(Ya(e.viewId??""))return!0;const n=el(t);if(n)return n.tabs.push(e),n.activeTab=n.tabs.length-1,!0;const r=qf(t);return r?(Hd(t,r,e,"right"),!0):!1}function Vf(e){return Fo(Ct(),e)}class ft extends Error{constructor(t,n){super(`Registry validation error at ${t}: ${n}`),this.name="RegistryValidationError",this.path=t}}function Bf(e){if(!e||typeof e!="object"||Array.isArray(e))throw new ft("$","expected an object");const t=e;if(t.version!==1)throw new ft("$.version",`expected 1, got ${JSON.stringify(t.version)}`);if(!Array.isArray(t.packages))throw new ft("$.packages","expected an array");return{version:1,packages:t.packages.map((r,s)=>Qw(r,`$.packages[${s}]`))}}function Qw(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new ft(t,"expected an object");const n=e;Ht(n,"id",t),t1(n,"type",["shard","app","combo"],t),Ht(n,"label",t),Ht(n,"description",t);const r=`${t}.author`;if(!n.author||typeof n.author!="object"||Array.isArray(n.author))throw new ft(r,"expected an object");const s=n.author;if(typeof s.name!="string"||s.name.length===0)throw new ft(`${r}.name`,"expected a non-empty string");if(!Array.isArray(n.versions)||n.versions.length===0)throw new ft(`${t}.versions`,"expected a non-empty array");const a=n.versions.map((o,l)=>$w(o,`${t}.versions[${l}]`));return{id:n.id,type:n.type,label:n.label,description:n.description,author:{name:s.name},icon:typeof n.icon=="string"?n.icon:void 0,versions:a}}function $w(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new ft(t,"expected an object");const n=e;Ht(n,"version",t),Ht(n,"contractVersion",t);const r="bundleUrl"in n&&n.bundleUrl!==void 0,s="integrity"in n&&n.integrity!==void 0;if(r&&Ht(n,"bundleUrl",t),s&&Ht(n,"integrity",t),r!==s)throw new ft(t,"bundleUrl and integrity must be provided together");const a="serverBundleUrl"in n&&n.serverBundleUrl!==void 0;if(a&&Ht(n,"serverBundleUrl",t),"serverIntegrity"in n&&n.serverIntegrity!==void 0&&Ht(n,"serverIntegrity",t),!r&&!a)throw new ft(t,"expected at least one of bundleUrl+integrity or serverBundleUrl");let o;if(n.requires!==void 0){if(!Array.isArray(n.requires))throw new ft(`${t}.requires`,"expected an array");o=n.requires.map((l,c)=>e1(l,`${t}.requires[${c}]`))}return{version:n.version,contractVersion:n.contractVersion,bundleUrl:typeof n.bundleUrl=="string"?n.bundleUrl:void 0,integrity:typeof n.integrity=="string"?n.integrity:void 0,serverBundleUrl:typeof n.serverBundleUrl=="string"?n.serverBundleUrl:void 0,serverIntegrity:typeof n.serverIntegrity=="string"?n.serverIntegrity:void 0,requires:o}}function e1(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new ft(t,"expected an object");const n=e;return Ht(n,"id",t),Ht(n,"versionRange",t),{id:n.id,versionRange:n.versionRange}}function Ht(e,t,n){const r=e[t];if(typeof r!="string"||r.length===0)throw new ft(`${n}.${t}`,"expected a non-empty string")}function t1(e,t,n,r){if(!n.includes(e[t]))throw new ft(`${r}.${t}`,`expected one of: ${n.join(", ")}`)}const dc=["sha256","sha384","sha512"];function n1(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(!dc.includes(n))throw new Error(`Unsupported SRI algorithm: ${n}. Supported: ${dc.join(", ")}`);if(!r)throw new Error(`Empty hash in SRI: ${e}`);return{algorithm:n,hash:r}}function r1(e){return`SHA-${e.slice(3)}`}function s1(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 nl(e,t){const{algorithm:n,hash:r}=n1(t),s=r1(n),a=await crypto.subtle.digest(s,e),o=s1(a);if(o!==r)throw new Error(`Integrity check failed for ${n}. Expected: ${r}, got: ${o}`)}async function Ff(e){const t=new Set,n=[];for(const r of e){let s;try{const o=await fetch(r);if(!o.ok){console.warn(`[sh3] Registry fetch failed for ${r}: HTTP ${o.status}`);continue}s=await o.json()}catch(o){console.warn(`[sh3] Registry ${r}: ${o instanceof Error?o.message:String(o)}`);continue}let a;try{a=Bf(s)}catch(o){console.warn(`[sh3] Registry ${r} failed validation: ${o instanceof Error?o.message:String(o)}`);continue}for(const o of a.packages)t.has(o.id)||(t.add(o.id),n.push({entry:o,latest:o.versions[0],sourceRegistry:r}))}return n}async function Xa(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 nl(s,e.integrity),s}async function rl(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 nl(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 Ja(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 ts="sh3.shell.mode";function a1(e,t){return e.contributions.register(ts,t)}const fn="0.14.3",sl="sh3:user:__sh3core__:theme";let vs=[];function i1(e){const t=Object.keys(e);for(const n of vs)t.includes(n)||document.documentElement.style.removeProperty(`--${n}`);for(const[n,r]of Object.entries(e))document.documentElement.style.setProperty(`--${n}`,r);vs=t;try{localStorage.setItem(sl,JSON.stringify(e))}catch{}}function o1(){for(const e of vs)document.documentElement.style.removeProperty(`--${e}`);vs=[];try{localStorage.removeItem(sl)}catch{}}function Uf(){try{const e=localStorage.getItem(sl);if(!e)return{};const t=JSON.parse(e);return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{}}catch{return{}}}function l1(){const e=Uf();if(Object.keys(e).length!==0){for(const[t,n]of Object.entries(e))document.documentElement.style.setProperty(`--${t}`,n);vs=Object.keys(e)}}const $n="/assets/icons-2eVU8BA9.svg",Hf=Symbol("sh3.icon-sprite");function c1(e){ao(Hf,e)}function Kf(){return so(Hf)}var u1=wo('<svg class="sh3-btn__spinner svelte-t4hi97" aria-hidden="true" viewBox="0 0 16 16"><circle cx="8" cy="8" r="6" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-dasharray="30 10"></circle></svg>'),d1=wo('<svg class="sh3-btn__icon svelte-t4hi97" aria-hidden="true"><use></use></svg>'),f1=A('<span class="sh3-btn__label svelte-t4hi97"><!></span>'),v1=A("<button><!> <!></button>");function h1(e,t){re(t,!0);let n=Z(t,"variant",3,"default"),r=Z(t,"disabled",3,!1),s=Z(t,"type",3,"button");const a=Kf();function o(m){return m.includes("/")||m.endsWith(".svg")}const l=W(()=>t.icon?o(t.icon)?t.icon:`${t.sprite??a??$n}#${t.icon}`:void 0);let c=F(!1);const u=W(()=>t.loading??i(c)),d=W(()=>n()==="icon"||!!t.icon&&!t.children);async function f(m){if(!t.onclick)return;const I=t.onclick(m);if(I&&typeof I.then=="function"){S(c,!0);try{await I}finally{S(c,!1)}}}var p=v1();let b;var x=h(p);{var g=m=>{var I=u1();E(m,I)},y=m=>{var I=d1(),D=h(I);v(I),N(()=>ne(D,"href",i(l))),E(m,I)};K(x,m=>{i(u)?m(g):i(l)&&m(y,1)})}var k=w(x,2);{var _=m=>{var I=f1(),D=h(I);en(D,()=>t.children),v(I),E(m,I)};K(k,m=>{t.children&&m(_)})}v(p),N(()=>{ne(p,"type",s()),b=ce(p,1,`sh3-btn sh3-btn--${n()??""}`,"svelte-t4hi97",b,{"sh3-btn--icon-only":i(d)}),p.disabled=r()||i(u),ne(p,"aria-busy",i(u)||void 0),ne(p,"title",t.title),ne(p,"aria-label",t.ariaLabel??(i(d)?t.title:void 0))}),H("click",p,f),E(e,p),se()}le(["click"]);var p1=A('<span class="sh3-collapsible__title svelte-lvydsb"> </span>'),m1=A('<div class="sh3-collapsible__body svelte-lvydsb"><!></div>'),b1=A('<div><button class="sh3-collapsible__head svelte-lvydsb" type="button"><svg class="sh3-collapsible__caret svelte-lvydsb" aria-hidden="true" viewBox="0 0 16 16"><path d="M5 3l6 5-6 5" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg> <!></button> <!></div>');function g1(e,t){re(t,!0);let n=Z(t,"open",15,!1);function r(){n(!n()),t.onopenchange?.(n())}var s=b1();let a;var o=h(s),l=w(h(o),2);{var c=p=>{var b=Ue(),x=ve(b);en(x,()=>t.header),E(p,b)},u=p=>{var b=p1(),x=h(b,!0);v(b),N(()=>O(x,t.title)),E(p,b)};K(l,p=>{t.header?p(c):t.title&&p(u,1)})}v(o);var d=w(o,2);{var f=p=>{var b=m1(),x=h(b);en(x,()=>t.children),v(b),E(p,b)};K(d,p=>{n()&&p(f)})}v(s),N(()=>{a=ce(s,1,"sh3-collapsible svelte-lvydsb",null,a,{"sh3-collapsible--open":n()}),ne(o,"aria-expanded",n())}),H("click",o,r),E(e,s),se()}le(["click"]);var _1=A('<span aria-hidden="true">*</span>'),y1=A('<span class="sh3-field__label svelte-m4dkl"> <!></span>'),w1=A('<span class="sh3-field__affix svelte-m4dkl"><!></span>'),k1=A('<span class="sh3-field__affix svelte-m4dkl"><!></span>'),x1=A("<span> </span>"),S1=A('<label><!> <span class="sh3-field__row svelte-m4dkl"><!> <input class="sh3-field__input svelte-m4dkl"/> <!></span> <!></label>');function E1(e,t){re(t,!0);let n=Z(t,"value",15,""),r=Z(t,"type",3,"text"),s=Z(t,"disabled",3,!1),a=Z(t,"invalid",3,!1),o=Z(t,"size",3,"md"),l=Z(t,"required",3,!1);const c=W(()=>a()&&!!t.error),u=W(()=>i(c)?t.error:t.helper);var d=S1();let f;var p=h(d);{var b=T=>{var j=y1(),z=h(j,!0),R=w(z);{var M=C=>{var P=_1();E(C,P)};K(R,C=>{l()&&C(M)})}v(j),N(()=>O(z,t.label)),E(T,j)};K(p,T=>{t.label&&T(b)})}var x=w(p,2),g=h(x);{var y=T=>{var j=w1(),z=h(j);en(z,()=>t.prefix),v(j),E(T,j)};K(g,T=>{t.prefix&&T(y)})}var k=w(g,2);ge(k);var _=w(k,2);{var m=T=>{var j=k1(),z=h(j);en(z,()=>t.suffix),v(j),E(T,j)};K(_,T=>{t.suffix&&T(m)})}v(x);var I=w(x,2);{var D=T=>{var j=x1();let z;var R=h(j,!0);v(j),N(()=>{z=ce(j,1,"sh3-field__helper svelte-m4dkl",null,z,{"sh3-field__helper--error":i(c)}),O(R,i(u))}),E(T,j)};K(I,T=>{i(u)&&T(D)})}v(d),N(()=>{f=ce(d,1,"sh3-field svelte-m4dkl",null,f,{"sh3-field--invalid":a(),"sh3-field--sm":o()==="sm"}),ne(k,"type",r()),ne(k,"placeholder",t.placeholder),k.disabled=s(),k.required=l(),ne(k,"autocomplete",t.autocomplete),ne(k,"aria-invalid",a()||void 0)}),H("input",k,()=>t.oninput?.(n())),De("blur",k,()=>t.onchange?.(n())),Ee(k,n),E(e,d),se()}le(["input"]);var I1=A('<span aria-hidden="true">*</span>'),A1=A('<span class="sh3-textarea__label svelte-668c6r"> <!></span>'),C1=A("<span> </span>"),T1=A('<label><!> <textarea class="sh3-textarea__input svelte-668c6r"></textarea> <!></label>');function R1(e,t){re(t,!0);let n=Z(t,"value",15,""),r=Z(t,"disabled",3,!1),s=Z(t,"invalid",3,!1),a=Z(t,"size",3,"md"),o=Z(t,"required",3,!1),l=Z(t,"rows",3,3),c=Z(t,"resize",3,"vertical");const u=W(()=>s()&&!!t.error),d=W(()=>i(u)?t.error:t.helper);var f=T1();let p;var b=h(f);{var x=m=>{var I=A1(),D=h(I,!0),T=w(D);{var j=z=>{var R=I1();E(z,R)};K(T,z=>{o()&&z(j)})}v(I),N(()=>O(D,t.label)),E(m,I)};K(b,m=>{t.label&&m(x)})}var g=w(b,2);ho(g);let y;var k=w(g,2);{var _=m=>{var I=C1();let D;var T=h(I,!0);v(I),N(()=>{D=ce(I,1,"sh3-textarea__helper svelte-668c6r",null,D,{"sh3-textarea__helper--error":i(u)}),O(T,i(d))}),E(m,I)};K(k,m=>{i(d)&&m(_)})}v(f),N(()=>{p=ce(f,1,"sh3-textarea svelte-668c6r",null,p,{"sh3-textarea--invalid":s(),"sh3-textarea--sm":a()==="sm"}),ne(g,"placeholder",t.placeholder),g.disabled=r(),g.required=o(),ne(g,"rows",l()),ne(g,"aria-invalid",s()||void 0),y=We(g,"",y,{resize:c()})}),H("input",g,()=>t.oninput?.(n())),De("blur",g,()=>t.onchange?.(n())),Ee(g,n),E(e,f),se()}le(["input"]);function j1(e,t,n){let r=e;return t!==void 0&&r<t&&(r=t),n!==void 0&&r>n&&(r=n),r}function D1(e,t){const n=t.min??0,r=Math.round((e-n)/t.step);return n+r*t.step}var P1=A('<span class="sh3-num__label svelte-1qa0x3m"> </span>'),M1=A('<span class="sh3-num__affix svelte-1qa0x3m"><!></span>'),O1=A('<span class="sh3-num__affix svelte-1qa0x3m"><!></span>'),z1=A('<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 L1(e,t){re(t,!0);let n=Z(t,"value",15,0),r=Z(t,"step",3,1),s=Z(t,"disabled",3,!1),a=Z(t,"invalid",3,!1),o=Z(t,"size",3,"md");function l(C){if(Number.isNaN(C))return;let P=j1(D1(C,{min:t.min,step:r()}),t.min,t.max);t.precision!==void 0&&(P=Number(P.toFixed(t.precision))),n(P)}function c(C){l(n()+C*r()),t.oninput?.(n())}let u=null,d=null,f=!1;function p(C){s()||(f=!0,c(C),u=setTimeout(()=>{let P=0;d=setInterval(()=>{c(C),P+=60,P>1500&&d&&(clearInterval(d),d=setInterval(()=>c(C),20))},60)},350))}function b(){u&&(clearTimeout(u),u=null),d&&(clearInterval(d),d=null),f&&(f=!1,t.onchange?.(n()))}var x=z1();let g;var y=h(x);{var k=C=>{var P=P1(),B=h(P,!0);v(P),N(()=>O(B,t.label)),E(C,P)};K(y,C=>{t.label&&C(k)})}var _=w(y,2),m=h(_);{var I=C=>{var P=M1(),B=h(P);en(B,()=>t.prefix),v(P),E(C,P)};K(m,C=>{t.prefix&&C(I)})}var D=w(m,2);ge(D);var T=w(D,2);{var j=C=>{var P=O1(),B=h(P);en(B,()=>t.suffix),v(P),E(C,P)};K(T,C=>{t.suffix&&C(j)})}var z=w(T,2),R=h(z),M=w(R,2);v(z),v(_),v(x),N(()=>{g=ce(x,1,"sh3-num svelte-1qa0x3m",null,g,{"sh3-num--invalid":a(),"sh3-num--sm":o()==="sm"}),ne(D,"min",t.min),ne(D,"max",t.max),ne(D,"step",r()),D.disabled=s(),ne(D,"aria-invalid",a()||void 0),is(D,n()),R.disabled=s(),M.disabled=s()}),H("input",D,C=>{const P=C.currentTarget.valueAsNumber;Number.isNaN(P)||(n(P),t.oninput?.(P))}),De("blur",D,()=>{l(n()),t.onchange?.(n())}),H("pointerdown",R,()=>p(1)),H("pointerup",R,b),De("pointerleave",R,b),H("pointerdown",M,()=>p(-1)),H("pointerup",M,b),De("pointerleave",M,b),E(e,x),se()}le(["input","pointerdown","pointerup"]);function Za(e){return e.filter(t=>!t.disabled)}function N1(e,t){const n=Za(e);if(n.length===0)return t;const r=n.findIndex(a=>a.value===t);return n[(r+1+n.length)%n.length].value}function q1(e,t){const n=Za(e);if(n.length===0)return t;const r=n.findIndex(a=>a.value===t);return n[(r-1+n.length)%n.length].value}function V1(e){return Za(e)[0]?.value}function B1(e){const t=Za(e);return t[t.length-1]?.value}var F1=A('<button type="button" role="radio"> </button>'),U1=A('<div role="radiogroup" tabindex="-1"></div>');function Wf(e,t){re(t,!0);let n=Z(t,"value",31,()=>oe(t.options[0]?.value??"")),r=Z(t,"size",3,"md"),s=Z(t,"disabled",3,!1);function a(u){n(u),t.onchange?.(u)}function o(u){if(s())return;let d;switch(u.key){case"ArrowRight":case"ArrowDown":d=N1(t.options,n());break;case"ArrowLeft":case"ArrowUp":d=q1(t.options,n());break;case"Home":d=V1(t.options);break;case"End":d=B1(t.options);break;default:return}u.preventDefault(),d!==void 0&&a(d)}var l=U1();let c;he(l,21,()=>t.options,mt,(u,d)=>{var f=F1();let p;var b=h(f,!0);v(f),N(()=>{ne(f,"aria-checked",n()===i(d).value),ne(f,"tabindex",n()===i(d).value?0:-1),f.disabled=s()||i(d).disabled,p=ce(f,1,"svelte-17xsko9",null,p,{"sh3-seg__btn--active":n()===i(d).value}),O(b,i(d).label)}),H("click",f,()=>{!i(d).disabled&&!s()&&a(i(d).value)}),E(u,f)}),v(l),N(()=>c=ce(l,1,"sh3-seg svelte-17xsko9",null,c,{"sh3-seg--sm":r()==="sm"})),H("keydown",l,o),E(e,l),se()}le(["keydown","click"]);function H1(e,t){return e===t?"":t}function K1(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var W1=A('<button type="button"><!></button>'),Y1=A('<div role="group"></div>');function G1(e,t){re(t,!0);let n=Z(t,"multiple",3,!1),r=Z(t,"value",31,()=>oe(n()?[]:t.options[0]?.value??"")),s=Z(t,"disabled",3,!1),a=Z(t,"size",3,"md");function o(d){return n()&&Array.isArray(r())?r().includes(d):r()===d}function l(d){if(!s()){if(n()){const f=Array.isArray(r())?r():[];r(K1(f,d))}else r(H1(typeof r()=="string"?r():"",d));t.onchange?.(r())}}var c=Y1();let u;he(c,21,()=>t.options,mt,(d,f)=>{var p=W1();let b;var x=h(p);en(x,()=>i(f).icon),v(p),N((g,y)=>{ne(p,"title",i(f).tooltip),ne(p,"aria-label",i(f).tooltip),ne(p,"aria-pressed",g),p.disabled=s(),b=ce(p,1,"svelte-13knxr5",null,b,y)},[()=>o(i(f).value),()=>({"sh3-itg__btn--active":o(i(f).value)})]),H("click",p,()=>l(i(f).value)),E(d,p)}),v(c),N(()=>u=ce(c,1,"sh3-itg svelte-13knxr5",null,u,{"sh3-itg--sm":a()==="sm"})),E(e,c),se()}le(["click"]);function ma(e,t,n){return n===t?0:(e-t)/(n-t)*100}var X1=A('<span class="sh3-slider__tick svelte-13va6lu"></span>'),J1=A('<output class="sh3-slider__value svelte-13va6lu"> </output>'),Z1=A('<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 Yf(e,t){re(t,!0);let n=Z(t,"value",15,0),r=Z(t,"min",3,0),s=Z(t,"max",3,100),a=Z(t,"step",3,1),o=Z(t,"showValue",3,!1),l=Z(t,"disabled",3,!1),c=Z(t,"invalid",3,!1),u=Z(t,"size",3,"md"),d=Z(t,"orientation",3,"horizontal");const f=W(()=>ma(n(),r(),s()));var p=Z1();let b;var x=h(p),g=h(x);let y;var k=w(g,2);{var _=T=>{var j=Ue(),z=ve(j);he(z,17,()=>t.ticks,mt,(R,M)=>{var C=X1();let P;N(B=>P=We(C,"",P,B),[()=>({"--tick-pct":`${ma(i(M),r(),s())??""}%`})]),E(R,C)}),E(T,j)};K(k,T=>{t.ticks&&T(_)})}v(x);var m=w(x,2);ge(m);var I=w(m,2);{var D=T=>{var j=J1();let z;var R=h(j,!0);v(j),N(()=>{z=We(j,"",z,{"--pct":`${i(f)??""}%`}),O(R,n())}),E(T,j)};K(I,T=>{o()&&T(D)})}v(p),N(()=>{b=ce(p,1,`sh3-slider sh3-slider--${d()??""}`,"svelte-13va6lu",b,{"sh3-slider--sm":u()==="sm","sh3-slider--invalid":c()}),y=We(g,"",y,{"--pct":`${i(f)??""}%`}),ne(m,"min",r()),ne(m,"max",s()),ne(m,"step",a()),m.disabled=l(),ne(m,"aria-invalid",c()||void 0)}),H("input",m,()=>t.oninput?.(n())),H("change",m,()=>t.onchange?.(n())),Ee(m,n),E(e,p),se()}le(["input","change"]);function fc(e,t,n){const[r,s]=e;return t==="low"?[Math.min(n,s),s]:[r,Math.max(n,r)]}var Q1=A('<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 $1(e,t){re(t,!0);let n=Z(t,"value",31,()=>oe([0,100])),r=Z(t,"min",3,0),s=Z(t,"max",3,100),a=Z(t,"step",3,1),o=Z(t,"disabled",3,!1),l=Z(t,"invalid",3,!1),c=Z(t,"size",3,"md");const u=W(()=>ma(n()[0],r(),s())),d=W(()=>ma(n()[1],r(),s()));function f(I){n(fc(n(),"low",I)),t.oninput?.(n())}function p(I){n(fc(n(),"high",I)),t.oninput?.(n())}var b=Q1();let x;var g=h(b),y=h(g);let k;v(g);var _=w(g,2);ge(_);var m=w(_,2);ge(m),v(b),N(()=>{x=ce(b,1,"sh3-range svelte-rdbrc5",null,x,{"sh3-range--sm":c()==="sm","sh3-range--invalid":l()}),k=We(y,"",k,{"--lo":`${i(u)??""}%`,"--hi":`${i(d)??""}%`}),ne(_,"min",r()),ne(_,"max",s()),ne(_,"step",a()),_.disabled=o(),is(_,n()[0]),ne(m,"min",r()),ne(m,"max",s()),ne(m,"step",a()),m.disabled=o(),is(m,n()[1])}),H("input",_,I=>f(parseFloat(I.currentTarget.value))),H("change",_,()=>t.onchange?.(n())),H("input",m,I=>p(parseFloat(I.currentTarget.value))),H("change",m,()=>t.onchange?.(n())),E(e,b),se()}le(["input","change"]);var ek=A('<div class="sh3-sg__channel svelte-1lqyi0d"><span class="sh3-sg__label svelte-1lqyi0d"> </span> <!></div>'),tk=A("<div></div>");function nk(e,t){re(t,!0);let n=Z(t,"orientation",3,"horizontal"),r=Z(t,"values",31,()=>oe({})),s=Z(t,"showValues",3,!1),a=Z(t,"disabled",3,!1),o=Z(t,"size",3,"md");var l=tk();he(l,21,()=>t.channels,c=>c.id,(c,u)=>{var d=ek(),f=h(d),p=h(f,!0);v(f);var b=w(f,2),x=()=>r()[i(u).id]??0,g=y=>r({...r(),[i(u).id]:y});{let y=W(()=>i(u).min??0),k=W(()=>i(u).max??100),_=W(()=>i(u).step??1);Yf(b,{get orientation(){return n()},get min(){return i(y)},get max(){return i(k)},get step(){return i(_)},get disabled(){return a()},get size(){return o()},get showValue(){return s()},get value(){return x()},set value(m){g(m)},oninput:()=>t.oninput?.(r()),onchange:()=>t.onchange?.(r())})}v(d),N(()=>O(p,i(u).label)),E(c,d)}),v(l),N(()=>ce(l,1,`sh3-sg sh3-sg--${n()??""}`,"svelte-1lqyi0d")),E(e,l),se()}var rk=A('<span class="sh3-swatch__label svelte-6ri2j2"> </span>'),sk=A('<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 Gf(e,t){re(t,!0);let n=Z(t,"value",15,"#000000"),r=Z(t,"disabled",3,!1),s=Z(t,"size",3,"md"),a;async function o(){if(r())return;const g=await Pn.color.pick({initial:n(),anchor:a});g!=null&&(n(g),t.onchange?.(g))}var l=sk();let c;var u=h(l);{var d=g=>{var y=rk(),k=h(y,!0);v(y),N(()=>O(k,t.label)),E(g,y)};K(u,g=>{t.label&&g(d)})}var f=w(u,2);let p;var b=w(h(f)),x=h(b,!0);v(b),v(f),Pe(f,g=>a=g,()=>a),v(l),N(()=>{c=ce(l,1,"sh3-swatch svelte-6ri2j2",null,c,{"sh3-swatch--sm":s()==="sm"}),f.disabled=r(),ne(f,"aria-label",`${t.label??"Color"??""} (current ${n()??""})`),p=We(f,"",p,{"--swatch-color":n()}),O(x,n())}),H("click",f,o),E(e,l),se()}le(["click"]);function ak(e,t){return!e||e.length===0?t?[]:null:t?Array.from(e):e[0]}function ik(e){return e===null?"":Array.isArray(e)?e.length===0?"":e.length===1?e[0].name:`${e.length} files`:e.name}var ok=A('<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 lk(e,t){re(t,!0);let n=Z(t,"value",15,null),r=Z(t,"multiple",3,!1),s=Z(t,"disabled",3,!1),a=Z(t,"invalid",3,!1),o=Z(t,"size",3,"md"),l=Z(t,"buttonLabel",3,"Choose file...");function c(k){const _=k.currentTarget;n(ak(_.files,r())),t.onchange?.(n())}const u=W(()=>ik(n()));var d=ok();let f;var p=h(d),b=w(p,2),x=h(b,!0);v(b);var g=w(b,2),y=h(g,!0);v(g),v(d),N(()=>{f=ce(d,1,"sh3-fp svelte-24jk95",null,f,{"sh3-fp--sm":o()==="sm","sh3-fp--invalid":a()}),ne(p,"accept",t.accept),p.multiple=r(),p.disabled=s(),O(x,l()),O(y,i(u)||"no file")}),H("change",p,c),E(e,d),se()}le(["change"]);const ck=8;function uk(e){return e.length>=ck}function dk(e,t){if(!t)return e.slice();const n=t.toLowerCase();return e.filter(r=>r.label.toLowerCase().includes(n))}function fk(e,t,n){if(!t)return-1;const r=t.toLowerCase(),s=e.length;for(let a=1;a<=s;a++){const o=(n+a)%s;if(!e[o].disabled&&e[o].label.toLowerCase().startsWith(r))return o}return-1}function vk(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 hk(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var pk=A('<input class="sh3-listbox__search svelte-1tyxvrs" type="search" placeholder="Filter…"/>'),mk=A('<span aria-hidden="true"></span>'),bk=A('<div role="option" tabindex="-1"><!> <span class="sh3-listbox__label"> </span></div>'),gk=A('<div class="sh3-listbox__empty svelte-1tyxvrs">No matches</div>'),_k=A('<div class="sh3-listbox svelte-1tyxvrs" role="listbox" tabindex="-1"><!> <div class="sh3-listbox__list svelte-1tyxvrs"><!> <!></div></div>');function yk(e,t){re(t,!0);const n=W(()=>t.getValue());function r(){t.onClose?.(),t.close()}const s=W(()=>uk(t.options));function a(){if(t.multiple)return 0;const z=typeof i(n)=="string"?i(n):"",R=t.options.findIndex(M=>M.value===z&&!M.disabled);return R>=0?R:0}let o=F(""),l=F(oe(a())),c=F(void 0),u=F(void 0),d="",f=null;const p=W(()=>dk(t.options,i(o)));xe(()=>{i(l)>=i(p).length&&S(l,0),b()});async function b(){if(await Is(),!i(c))return;i(c).querySelector(`[data-idx="${i(l)}"]`)?.scrollIntoView({block:"nearest"})}function x(z){return t.multiple&&Array.isArray(i(n))?i(n).includes(z.value):i(n)===z.value}function g(z){const R=i(p)[z];!R||R.disabled||(t.onSelect(R.value),t.multiple||r())}function y(z){if(i(p).length!==0)switch(z.key){case"ArrowDown":z.preventDefault(),S(l,(i(l)+1)%i(p).length);break;case"ArrowUp":z.preventDefault(),S(l,(i(l)-1+i(p).length)%i(p).length);break;case"Home":z.preventDefault(),S(l,0);break;case"End":z.preventDefault(),S(l,i(p).length-1);break;case"Enter":z.preventDefault(),g(i(l));break;case" ":case"Space":z.preventDefault(),g(i(l));break;case"Escape":z.preventDefault(),r();break;default:if(i(s)&&document.activeElement===i(u)||z.key.length!==1||z.metaKey||z.ctrlKey||z.altKey)return;d+=z.key,f&&clearTimeout(f),f=setTimeout(()=>{d=""},500);const R=fk(i(p),d,i(l));R>=0&&S(l,R,!0)}}var k=_k(),_=h(k);{var m=z=>{var R=pk();ge(R),Pe(R,M=>S(u,M),()=>i(u)),Ee(R,()=>i(o),M=>S(o,M)),E(z,R)};K(_,z=>{i(s)&&z(m)})}var I=w(_,2),D=h(I);he(D,17,()=>i(p),mt,(z,R,M)=>{var C=bk();ne(C,"data-idx",M);let P;var B=h(C);{var L=q=>{var G=mk();let X;N(ae=>X=ce(G,1,"sh3-listbox__check svelte-1tyxvrs",null,X,ae),[()=>({"sh3-listbox__check--on":x(i(R))})]),E(q,G)};K(B,q=>{t.multiple&&q(L)})}var U=w(B,2),V=h(U,!0);v(U),v(C),N((q,G)=>{ne(C,"aria-selected",q),ne(C,"aria-disabled",i(R).disabled),P=ce(C,1,"svelte-1tyxvrs",null,P,G),O(V,i(R).label)},[()=>x(i(R)),()=>({"sh3-listbox__opt--active":M===i(l),"sh3-listbox__opt--selected":x(i(R))})]),H("click",C,()=>g(M)),De("mouseenter",C,()=>S(l,M,!0)),E(z,C)});var T=w(D,2);{var j=z=>{var R=gk();E(z,R)};K(T,z=>{i(p).length===0&&z(j)})}v(I),Pe(I,z=>S(c,z),()=>i(c)),v(k),N(()=>ne(k,"aria-multiselectable",t.multiple)),H("keydown",k,y),E(e,k),se()}le(["keydown","click"]);var wk=A('<span class="sh3-select__label svelte-1q3zxph"> </span>'),kk=A("<option> </option>"),xk=A('<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 Sk(e,t){re(t,!0);let n=Z(t,"multiple",3,!1),r=Z(t,"value",31,()=>oe(n()?[]:"")),s=Z(t,"placeholder",3,"Select…"),a=Z(t,"disabled",3,!1),o=Z(t,"invalid",3,!1),l=Z(t,"size",3,"md"),c=F(void 0),u=F(void 0),d=F(!1);const f=W(()=>vk(t.options,r(),n()));function p(){S(d,!1),i(c)?.focus()}async function b(){if(a()||i(d)||!i(c))return;S(d,!0);const R=Pn.popup.show(yk,{anchor:i(c)},{options:t.options,getValue:()=>r(),multiple:n(),onSelect:P=>{if(n()){const B=Array.isArray(r())?r():[];r(hk(B,P))}else r(P);t.onchange?.(r())},onClose:p}),M=R.close;R.close=()=>{M(),p()},await Is(),document.querySelector(".sh3-listbox")?.focus()}function x(R){if(!(a()||i(d)))switch(R.key){case"ArrowDown":case"ArrowUp":case"Enter":case" ":R.preventDefault(),b();break}}function g(){i(u)&&(n()?r(Array.from(i(u).selectedOptions).map(R=>R.value)):r(i(u).value),t.onchange?.(r()))}var y=xk();let k;var _=h(y);{var m=R=>{var M=wk(),C=h(M,!0);v(M),N(()=>O(C,t.label)),E(R,M)};K(_,R=>{t.label&&R(m)})}var I=w(_,2),D=h(I);let T;var j=h(D,!0);v(D),Gt(2),v(I),Pe(I,R=>S(c,R),()=>i(c));var z=w(I,2);ne(z,"tabindex",-1),he(z,21,()=>t.options,mt,(R,M)=>{var C=kk(),P=h(C,!0);v(C);var B={};N(L=>{Ao(C,L),O(P,i(M).label),B!==(B=i(M).value)&&(C.value=(C.__value=i(M).value)??"")},[()=>n()?Array.isArray(r())&&r().includes(i(M).value):r()===i(M).value]),E(R,C)}),v(z),Pe(z,R=>S(u,R),()=>i(u)),v(y),N(()=>{k=ce(y,1,"sh3-select svelte-1q3zxph",null,k,{"sh3-select--invalid":o(),"sh3-select--sm":l()==="sm"}),I.disabled=a(),ne(I,"aria-expanded",i(d)),T=ce(D,1,"sh3-select__display svelte-1q3zxph",null,T,{"sh3-select__display--placeholder":!i(f)}),O(j,i(f)||s()),z.multiple=n(),z.disabled=a()}),H("click",I,b),H("keydown",I,x),H("change",z,g),E(e,y),se()}le(["click","keydown","change"]);function Ek(e,t){if(!t)return e;const n=t.toLowerCase();return e.filter(r=>!!(r.label.toLowerCase().includes(n)||r.id.toLowerCase().includes(n)||r.sublabel&&r.sublabel.toLowerCase().includes(n)))}function Ik(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var Ak=A('<input type="search" class="sh3-picker__search svelte-1rlwvrb" placeholder="Filter…"/>'),Ck=A('<p class="sh3-picker__status svelte-1rlwvrb">Loading…</p>'),Tk=A('<button type="button" class="sh3-picker__retry svelte-1rlwvrb">Retry</button>'),Rk=A('<p class="sh3-picker__status sh3-picker__status--error svelte-1rlwvrb"> </p> <!>',1),jk=A('<p class="sh3-picker__status svelte-1rlwvrb"> </p>'),Dk=A('<span class="sh3-picker__row-sub svelte-1rlwvrb"> </span>'),Pk=A('<label class="sh3-picker__row svelte-1rlwvrb"><input type="checkbox"/> <span class="sh3-picker__row-text svelte-1rlwvrb"><span class="sh3-picker__row-label svelte-1rlwvrb"> </span> <!></span></label>'),Mk=A('<div><!> <div class="sh3-picker__list svelte-1rlwvrb"><!></div> <p class="sh3-picker__footer svelte-1rlwvrb"> </p></div>');function Xf(e,t){re(t,!0);let n=Z(t,"value",31,()=>oe([])),r=Z(t,"loading",3,!1),s=Z(t,"error",3,null),a=Z(t,"emptyText",3,"No items."),o=Z(t,"searchThreshold",3,8),l=Z(t,"disabled",3,!1),c=Z(t,"size",3,"md"),u=F("");const d=W(()=>t.items.length>=o()),f=W(()=>Ek(t.items,i(u))),p=W(()=>t.items.length),b=W(()=>n().length);function x(C){if(l())return;const P=Ik(n(),C);n(P),t.onchange?.(P)}var g=Mk();let y;var k=h(g);{var _=C=>{var P=Ak();ge(P),N(()=>P.disabled=l()),Ee(P,()=>i(u),B=>S(u,B)),E(C,P)};K(k,C=>{i(d)&&C(_)})}var m=w(k,2),I=h(m);{var D=C=>{var P=Ck();E(C,P)},T=C=>{var P=Rk(),B=ve(P),L=h(B,!0);v(B);var U=w(B,2);{var V=q=>{var G=Tk();H("click",G,()=>t.onRetry?.()),E(q,G)};K(U,q=>{t.onRetry&&q(V)})}N(()=>O(L,s())),E(C,P)},j=C=>{var P=jk(),B=h(P,!0);v(P),N(()=>O(B,a())),E(C,P)},z=C=>{var P=Ue(),B=ve(P);he(B,17,()=>i(f),L=>L.id,(L,U)=>{var V=Pk(),q=h(V);ge(q);var G=w(q,2),X=h(G),ae=h(X,!0);v(X);var Y=w(X,2);{var J=ie=>{var fe=Dk(),Q=h(fe,!0);v(fe),N(()=>O(Q,i(U).sublabel)),E(ie,fe)};K(Y,ie=>{i(U).sublabel&&ie(J)})}v(G),v(V),N(ie=>{Io(q,ie),q.disabled=l(),O(ae,i(U).label)},[()=>n().includes(i(U).id)]),H("change",q,()=>x(i(U).id)),E(L,V)}),E(C,P)};K(I,C=>{r()?C(D):s()?C(T,1):t.items.length===0?C(j,2):C(z,-1)})}v(m);var R=w(m,2),M=h(R);v(R),v(g),N(()=>{y=ce(g,1,"sh3-picker svelte-1rlwvrb",null,y,{"sh3-picker--sm":c()==="sm","sh3-picker--disabled":l()}),O(M,`${i(b)??""} of ${i(p)??""} selected`)}),E(e,g),se()}le(["click","change"]);function Jf(e,t){re(t,!0);const n=new Set(["sh3-admin-app","sh3-store-app"]);let r=Z(t,"value",31,()=>oe([])),s=Z(t,"disabled",3,!1),a=Z(t,"size",3,"md");const o=W(()=>nr().filter(c=>!n.has(c.id)&&!c.admin).map(c=>({id:c.id,label:c.label,sublabel:c.id})).sort((c,u)=>c.label.localeCompare(u.label)));function l(c){r(c),t.onchange?.(c)}Xf(e,{get items(){return i(o)},get value(){return r()},onchange:l,get disabled(){return s()},get size(){return a()},emptyText:"No apps installed."}),se()}const Ot=oe({users:[],loading:!1,error:null});let Hr=null;function vc(){return Hr||(Ot.loading=!0,Ot.error=null,Hr=(async()=>{try{const e=await fetch("/api/admin/users",{credentials:"include"});if(!e.ok){Ot.error=`GET /api/admin/users failed: ${e.status}`;return}Ot.users=await e.json()}catch(e){Ot.error=e.message}finally{Ot.loading=!1,Hr=null}})(),Hr)}function Zf(e,t){re(t,!0);let n=Z(t,"value",31,()=>oe([])),r=Z(t,"disabled",3,!1),s=Z(t,"size",3,"md");Ot.users.length===0&&!Ot.loading&&!Ot.error&&vc();const a=W(()=>Ot.users.map(l=>({id:l.id,label:l.displayName||l.username,sublabel:l.username})));function o(l){n(l),t.onchange?.(l)}Xf(e,{get items(){return i(a)},get value(){return n()},onchange:o,get loading(){return Ot.loading},get error(){return Ot.error},onRetry:()=>void vc(),emptyText:"No users found.",get disabled(){return r()},get size(){return s()}}),se()}const Ok={hotInstall:typeof Blob<"u"&&typeof URL.createObjectURL=="function"},Qf=["__sh3core__","shell","sh3-store","sh3-admin"],$f=Object.freeze(Object.defineProperty({__proto__:null,AppPicker:Jf,Button:h1,COLOR_PICKER_POINT:Pd,CONFLICT_RENDERER_POINT:Rd,Collapsible:g1,ColorSwatch:Gf,ConflictPermissionError:jd,ConflictSessionOrphanedError:K_,ConsentDeniedError:If,FRAMEWORK_SHARD_IDS:Qf,Field:E1,FilePicker:lk,IconToggleGroup:G1,NumberInput:L1,PERMISSION_DOCUMENTS_BROWSE:wf,PERMISSION_DOCUMENTS_READ:kf,PERMISSION_DOCUMENTS_WRITE:xf,PERMISSION_KEYS_MINT:Sf,PERMISSION_STATE_MANAGE:Ro,PERMISSION_SYNC_PEER:xw,PERMISSION_SYNC_POLICY:Sw,RangeSlider:$1,SHELL_MODE_CONTRIBUTION_POINT:ts,ScopeEscalationError:Ef,Segmented:Wf,Select:Sk,Slider:Yf,SliderGroup:nk,Textarea:R1,UserPicker:Zf,VERSION:fn,activeShards:Rr,buildPackageMeta:Ja,capabilities:Ok,clearTokenOverrides:o1,closeTab:$o,collapseChild:Xw,dockFloat:Nf,dockIntoActiveLayout:tl,erroredShards:pa,expandChild:Jw,fetchBundle:Xa,fetchRegistries:Ff,focusTab:Gw,focusView:Ya,getActiveApp:bd,getAuthHeader:Ha,getIconSprite:Kf,getTokenOverrides:Uf,getUser:Tr,inspectActiveLayout:Mf,isAdmin:ht,isAuthenticated:Ui,isGuest:gf,launchApp:bn,listRegisteredApps:nr,listVerbs:Bo,locateSlot:Vf,popoutView:Lf,provideIcons:c1,pushNavEntry:Ag,registerConsentListener:Af,registerShellMode:a1,registeredShards:un,resolveConsent:Ki,returnToHome:Ds,setTokenOverrides:i1,shell:Pn,spliceIntoActiveLayout:Yw,subscribeKeyRevocation:Jo,unregisterApp:Wa,validateRegistryIndex:Bf},Symbol.toStringTag,{value:"Module"})),zk="/assets/SH3-BG5NVpSD.png",Lk="https://cdn.jsdelivr.net/npm/p5@1.11.13/lib/p5.min.js";let Kr=null;function Nk(){return Kr||(Kr=new Promise((e,t)=>{const n=window.p5;if(n){e(n);return}const r=document.createElement("script");r.src=Lk,r.async=!0,r.onload=()=>e(window.p5),r.onerror=s=>{Kr=null,t(s)},document.head.appendChild(r)}),Kr)}var qk=A('<h1 class="shell-title-fallback svelte-1ifjvh5">SH3</h1>'),Vk=A('<div class="shell-title svelte-1ifjvh5"></div>');function Bk(e,t){re(t,!0);const n="`.-':;,^\"~=+<>*?!/\\|()[]{}x1ltzrcvunsXYUJCLQ0OZmwqpdbkhao*#MW&8%B@$",r=64,s=Math.floor(64/(442/193)),a=8,o=7,l=80,c=r*a,u=s*o,d=l/u;let f=F(void 0),p=null,b=F(!1);const x=()=>m=>{const D=getComputedStyle(document.documentElement).getPropertyValue("--shell-accent").trim();let T,j,z=!1;m.setup=()=>{m.createCanvas(c,u),m.noSmooth(),m.noStroke(),m.textAlign(m.CENTER,m.CENTER),m.textFont("monospace"),m.textSize(10),m.textStyle(m.BOLD),j=m.loadImage(zk,()=>{T=m.createGraphics(r,s),T.pixelDensity(1),T.image(j,0,0,r,s),T.loadPixels(),z=!0},()=>{S(b,!0)})},m.draw=()=>{if(!z)return;const R=m.millis()*.001;let M;m.clear(),m.background(0,0),m.fill(D);for(let C=0;C<s;C++)for(let P=0;P<r;P++){const B=(C*r+P)*4;if(T.pixels[B]<64){if(M=m.noise(P/r*2,C/s*2,R*.15),M>.33)continue;m.text(n[Math.floor(M*n.length*.25)],(P+.5)*a,(C+.5)*o);continue}M=m.noise(P/r*4,C/s*4,R*.5),m.text(n[Math.floor(M*n.length)],(P+.5)*a,(C+.5)*o)}}};xe(()=>{if(i(b))return;let m=!1;return Nk().then(I=>{if(!(m||!i(f)))try{p=new I(x(),i(f))}catch(D){console.error("[ShellTitle] p5 sketch failed to start",D),S(b,!0)}}).catch(I=>{console.error("[ShellTitle] failed to load p5 from CDN",I),S(b,!0)}),()=>{m=!0,p&&(p.remove(),p=null)}});var g=Ue(),y=ve(g);{var k=m=>{var I=qk();E(m,I)},_=m=>{var I=Vk();We(I,"",{},{width:"216.7195767195767px",height:"80px","--shell-title-scale":d}),Pe(I,D=>S(f,D),()=>i(f)),E(m,I)};K(y,m=>{i(b)?m(k):m(_,-1)})}E(e,g),se()}async function ar(e,t){const n=await fetch(e,{credentials:"include",...t});if(!n.ok)throw new Error(`${t?.method??"GET"} ${e} failed: ${n.status}`);return n.json()}const Qs={async list(){return(await ar("/api/projects",{method:"GET"})).projects},async listAll(){return(await ar("/api/projects/all",{method:"GET"})).projects},async get(e){return ar(`/api/projects/${encodeURIComponent(e)}`,{method:"GET"})},async create(e){return ar("/api/projects",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e)})},async update(e,t){return ar(`/api/projects/${encodeURIComponent(e)}`,{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify(t)})},async delete(e,t){const n=t?.wipeData?"?wipeData=1":"";await ar(`/api/projects/${encodeURIComponent(e)}${n}`,{method:"DELETE"})}};var Fk=A(`<div class="delete-project-dialog svelte-6j13aq"><div class="delete-project-dialog__title svelte-6j13aq"> </div> <div class="delete-project-dialog__body svelte-6j13aq">The project record will be removed and any members will lose access.
9
+ Documents already written under the project's namespace remain on disk
10
+ unless you tick the option below.</div> <label class="delete-project-dialog__opt svelte-6j13aq"><input type="checkbox" class="svelte-6j13aq"/> <span>Also delete project files <code class="delete-project-dialog__path svelte-6j13aq"> </code></span></label> <div class="delete-project-dialog__actions svelte-6j13aq"><button type="button" class="delete-project-dialog__btn svelte-6j13aq" data-delete-project-cancel="">Cancel</button> <button type="button" class="delete-project-dialog__btn delete-project-dialog__btn--danger svelte-6j13aq" data-delete-project-confirm="">Delete</button></div></div>`);function Uk(e,t){re(t,!0);let n=F(void 0),r=F(!1),s=F(!1);xe(()=>{i(n)?.focus()});async function a(){if(!i(r)){S(r,!0);try{await t.onConfirm({wipeData:i(s)})}finally{t.close()}}}function o(){i(r)||(t.onCancel?.(),t.close())}var l=Fk(),c=h(l),u=h(c);v(c);var d=w(c,4),f=h(d);ge(f);var p=w(f,2),b=w(h(p)),x=h(b);v(b),v(p),v(d);var g=w(d,2),y=h(g);Pe(y,_=>S(n,_),()=>i(n));var k=w(y,2);v(g),v(l),N(()=>{O(u,`Delete project '${t.projectName??""}'?`),f.disabled=i(r),O(x,`<dataDir>/docs/${t.projectId??""}/`),y.disabled=i(r),k.disabled=i(r)}),Qr(f,()=>i(s),_=>S(s,_)),H("click",y,o),H("click",k,a),E(e,l),se()}le(["click"]);var Hk=A('<p class="project-id svelte-1oy3640">ID: <code class="svelte-1oy3640"> </code></p>'),Kk=A('<span class="hint svelte-1oy3640">Your id: <code class="svelte-1oy3640"> </code> </span>'),Wk=A('<p class="error svelte-1oy3640"> </p>'),Yk=A('<button type="button" class="danger svelte-1oy3640">Delete</button>'),Gk=A('<div class="project-manage svelte-1oy3640"><div class="body svelte-1oy3640"><h2 class="svelte-1oy3640"> </h2> <!> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">Name</span> <input type="text" placeholder="Acme Website" class="svelte-1oy3640"/></label> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">Description</span> <textarea class="svelte-1oy3640"></textarea></label> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">Members</span> <!> <!></label> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">App allowlist</span> <!></label> <!></div> <div class="actions svelte-1oy3640"><button type="button" class="primary svelte-1oy3640"> </button> <button type="button" class="svelte-1oy3640">Cancel</button> <!></div></div>');function Xk(e,t){re(t,!0);let n=Z(t,"project",3,null);const r=W(()=>n()!==null),s=W(Tr);let a=F(oe(we(()=>n()?.name??""))),o=F(oe(we(()=>n()?.description??""))),l=F(oe(we(()=>{if(n())return[...n().members];const Y=Tr()?.id;return Y?[Y]:[]}))),c=F(oe(we(()=>n()?[...n().appAllowlist]:[]))),u=F(!1),d=F(null);async function f(){if(!i(a).trim()){S(d,"Name is required");return}S(u,!0),S(d,null);const Y={name:i(a).trim(),description:i(o).trim()||void 0,members:i(l),appAllowlist:i(c)};try{i(r)&&n()?await Qs.update(n().id,Y):await Qs.create(Y),await ba(),t.onClose()}catch(J){S(d,J.message,!0)}finally{S(u,!1)}}function p(){if(!i(r)||!n())return;const Y=n();yn.open(Uk,{projectName:Y.name,projectId:Y.id,onConfirm:async({wipeData:J})=>{S(u,!0),S(d,null);try{await Qs.delete(Y.id,{wipeData:J}),await ba(),t.onClose()}catch(ie){S(d,ie.message,!0)}finally{S(u,!1)}}})}var b=Gk(),x=h(b),g=h(x),y=h(g,!0);v(g);var k=w(g,2);{var _=Y=>{var J=Hk(),ie=w(h(J)),fe=h(ie,!0);v(ie),v(J),N(()=>O(fe,n().id)),E(Y,J)};K(k,Y=>{i(r)&&Y(_)})}var m=w(k,2),I=w(h(m),2);ge(I),v(m);var D=w(m,2),T=w(h(D),2);ho(T),ne(T,"rows",2),v(D);var j=w(D,2),z=w(h(j),2);Zf(z,{get disabled(){return i(u)},get value(){return i(l)},set value(Y){S(l,Y,!0)}});var R=w(z,2);{var M=Y=>{var J=Kk(),ie=w(h(J)),fe=h(ie,!0);v(ie);var Q=w(ie);v(J),N(()=>{O(fe,i(s).id),O(Q,` (${i(s).username??i(s).displayName??""})`)}),E(Y,J)};K(R,Y=>{i(s)&&Y(M)})}v(j);var C=w(j,2),P=w(h(C),2);Jf(P,{get disabled(){return i(u)},get value(){return i(c)},set value(Y){S(c,Y,!0)}}),v(C);var B=w(C,2);{var L=Y=>{var J=Wk(),ie=h(J,!0);v(J),N(()=>O(ie,i(d))),E(Y,J)};K(B,Y=>{i(d)&&Y(L)})}v(x);var U=w(x,2),V=h(U),q=h(V,!0);v(V);var G=w(V,2),X=w(G,2);{var ae=Y=>{var J=Yk();N(()=>J.disabled=i(u)),H("click",J,p),E(Y,J)};K(X,Y=>{i(r)&&Y(ae)})}v(U),v(b),N(()=>{O(y,i(r)?`Edit ${n().name}`:"Create Project"),I.disabled=i(u),T.disabled=i(u),V.disabled=i(u),O(q,i(r)?"Save":"Create"),G.disabled=i(u)}),Ee(I,()=>i(a),Y=>S(a,Y)),Ee(T,()=>i(o),Y=>S(o,Y)),H("click",V,f),H("click",G,function(...Y){t.onClose?.apply(this,Y)}),E(e,b),se()}le(["click"]);const zt=oe({projects:[],loading:!1,error:null});async function ba(){zt.loading=!0,zt.error=null;try{zt.projects=await Qs.list()}catch(e){zt.error=e.message}finally{zt.loading=!1}}const Yi="projects:manage";let Gi=null;function Jk(){const e=Gi;return Gi=null,e}function Xi(e){Gi=e,lt.open(Yi,{title:e?`Edit ${e.name}`:"Create Project",size:{w:560,h:620},dismissable:!0})}const Zk={manifest:{id:"__projects__",label:"Projects",version:fn,views:[{id:Yi,label:"Project Manager"}]},activate(e){ba(),typeof document<"u"&&document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&ba()});const t={mount(r,s){const a=Jk(),o=lt.list(),l=o.length>0?o[o.length-1].id:null,u=Ne(Xk,{target:r,props:{project:a,onClose:()=>{l&&lt.close(l)}}});return{unmount(){Ge(u)}}}};e.registerView(Yi,t),e.actions.register({id:"sh3.project.create",label:"Create Project…",scope:["home","app"],paletteItem:!0,disabled:()=>!ht(),run:()=>{ht()&&Xi(null)}}),e.actions.register({id:"sh3.project.manage",label:"Manage Project…",scope:["home","app"],submenu:!0,paletteItem:!0,disabled:()=>!ht()});const n=new Map;Es(()=>{xe(()=>{const r=new Set;for(const s of zt.projects){if(r.add(s.id),n.has(s.id))continue;const a=e.actions.register({id:`sh3.project.manage:${s.id}`,label:s.name,scope:["home","app"],submenuOf:"sh3.project.manage",run:()=>{const o=zt.projects.find(l=>l.id===s.id);o&&Xi(o)}});n.set(s.id,a)}for(const s of[...n.keys()])r.has(s)||(n.get(s)(),n.delete(s))})})},autostart(){}};var Qk=A('<button type="button" class="project-card-edit svelte-yosqc3" aria-label="Edit project" title="Edit project">⚙</button>'),$k=A('<div class="project-card-wrap svelte-yosqc3"><button type="button"><span class="project-name svelte-yosqc3"> </span> <span class="project-meta svelte-yosqc3"> </span></button> <!></div>'),e0=A('<section class="projects-section svelte-yosqc3"><h2 class="projects-heading svelte-yosqc3">Projects</h2> <div class="projects-grid svelte-yosqc3"></div></section>');function t0(e,t){re(t,!0);const n=W(()=>zt.projects.length>0),r=W(()=>Qn.activeProjectId),s=W(ht);function a(d){Rf(i(r)===d?null:d)}function o(d,f){f.stopPropagation();const p=zt.projects.find(b=>b.id===d)??null;p&&Xi(p)}var l=Ue(),c=ve(l);{var u=d=>{var f=e0(),p=w(h(f),2);he(p,21,()=>zt.projects,b=>b.id,(b,x)=>{var g=$k(),y=h(g);let k;var _=h(y),m=h(_,!0);v(_);var I=w(_,2),D=h(I);v(I),v(y);var T=w(y,2);{var j=z=>{var R=Qk();H("click",R,M=>o(i(x).id,M)),E(z,R)};K(T,z=>{i(s)&&z(j)})}v(g),N(()=>{k=ce(y,1,"project-card svelte-yosqc3",null,k,{active:i(r)===i(x).id}),ne(y,"title",i(x).description??`${i(x).members.length} member${i(x).members.length===1?"":"s"}`),O(m,i(x).name),O(D,`${i(x).members.length??""} member${i(x).members.length===1?"":"s"}`)}),H("click",y,()=>a(i(x).id)),E(b,g)}),v(p),v(f),E(d,f)};K(c,d=>{i(n)&&d(u)})}E(e,l),se()}le(["click"]);const hc=["activity","align-horizontal-justify-center","align-horizontal-justify-end","align-horizontal-justify-start","app-window","archive","archive-restore","axis-3d","box","brick-wall","bug","building-2","cable","calendar","camera","check","chevron-down","chevron-right","circle-check","circle-dot","circle-minus","circle-x","clipboard","clipboard-paste","clock","compass","component","copy","cpu","crop","crosshair","crown","dollar-sign","download","droplet","eraser","euro","external-link","eye","eye-off","file","file-archive","file-diff","file-plus","file-text","flame","flip-horizontal-2","flip-vertical-2","folder","folder-open","folder-plus","folder-tree","gallery-vertical-end","gamepad-2","gauge","gem","git-branch","git-commit-horizontal","git-merge","globe","grid-2x2","grid-3x3","group","hard-drive","heart","history","house","image","info","joystick","key","layers","layout-dashboard","layout-grid","layout-list","layout-panel-left","layout-panel-top","layout-template","lightbulb","link","list-ordered","list-tree","lock","log-out","magnet","mail","map","maximize","minimize","moon","mouse-pointer","move","move-3d","music","navigation","network","notebook-pen","palette","pause","pencil","pipette","play","plus","pointer","pound-sterling","receipt","redo-2","refresh-cw","rocket","rotate-3d","rotate-ccw","rotate-cw","ruler","save","scissors","scroll-text","search","send","server","settings","shield","skull","sliders-horizontal","snowflake","sparkles","square","square-terminal","star","sun","sword","table-properties","target","texture","timer","trash-2","triangle-alert","type","undo-2","ungroup","unity","upload","user","users","video","volume-2","wand-sparkles","wind","x","zap","zoom-in","zoom-out"];var n0=A('<span class="sh3-icon-picker__label svelte-h9dluc"> </span>'),r0=A('<button type="button"><svg viewBox="0 0 24 24" class="svelte-h9dluc"><use></use></svg></button>'),s0=A('<div><!> <input type="search" placeholder="Search icons…" aria-label="Filter icons" class="svelte-h9dluc"/> <div class="sh3-icon-picker__grid svelte-h9dluc"><button type="button" aria-label="No icon">×</button> <!></div></div>');function a0(e,t){re(t,!0);let n=Z(t,"value",15,void 0),r=Z(t,"disabled",3,!1),s=F("");const a=W(()=>i(s).trim()===""?hc:hc.filter(y=>y.includes(i(s).trim().toLowerCase())));function o(y){r()||(n(y),t.onchange?.(y))}var l=s0();let c;var u=h(l);{var d=y=>{var k=n0(),_=h(k,!0);v(k),N(()=>O(_,t.label)),E(y,k)};K(u,y=>{t.label&&y(d)})}var f=w(u,2);ge(f);var p=w(f,2),b=h(p);let x;var g=w(b,2);he(g,16,()=>i(a),y=>y,(y,k)=>{var _=r0();let m;var I=h(_),D=h(I);v(I),v(_),N(()=>{m=ce(_,1,"sh3-icon-picker__tile svelte-h9dluc",null,m,{"sh3-icon-picker__tile--selected":n()===k}),ne(_,"aria-label",k),ne(_,"title",k),_.disabled=r(),ne(D,"href",`${$n}#${k??""}`)}),H("click",_,()=>o(k)),E(y,_)}),v(p),v(l),N(()=>{c=ce(l,1,"sh3-icon-picker svelte-h9dluc",null,c,{"sh3-icon-picker--disabled":r()}),f.disabled=r(),x=ce(b,1,"sh3-icon-picker__tile sh3-icon-picker__tile--none svelte-h9dluc",null,x,{"sh3-icon-picker__tile--selected":n()===void 0}),b.disabled=r()}),Ee(f,()=>i(s),y=>S(s,y)),H("click",b,()=>o(void 0)),E(e,l),se()}le(["click"]);let Un=null;function i0(e){Un=e}function o0(){Un=null}function ev(e){return e.icon===void 0&&e.color===void 0&&e.label===void 0}function Ji(e){const t=Un?.user.overrides;if(!t)return;const n=t[e];if(n&&!ev(n))return n}function pc(e,t){if(!Un)return;const r={...Un.user.overrides};t===void 0||ev(t)?delete r[e]:r[e]=t,Un.user.overrides=r}function l0(){Un={ephemeral:{},session:{},workspace:{},user:{overrides:{}}}}l0();var c0=A('<button type="button" class="link svelte-7szqlz">Change icon</button>'),u0=A('<!> <button type="button" class="link link--align-right svelte-7szqlz">Hide picker</button>',1),d0=A('<div class="app-appearance svelte-7szqlz"><h2 class="svelte-7szqlz"> </h2> <div class="preview svelte-7szqlz"><div><span class="preview-card-square svelte-7szqlz"><svg class="preview-card-icon svelte-7szqlz"><use></use></svg></span> <span class="preview-card-label svelte-7szqlz"> </span></div></div> <label class="row svelte-7szqlz"><span class="svelte-7szqlz">Name <em class="svelte-7szqlz">(empty = default)</em></span> <input type="text" class="name-input svelte-7szqlz"/></label> <div class="row svelte-7szqlz"><span class="svelte-7szqlz">Icon</span> <!></div> <label class="row svelte-7szqlz"><span class="svelte-7szqlz">Color</span> <!></label> <div class="actions svelte-7szqlz"><button type="button" class="primary svelte-7szqlz">Save</button> <button type="button" class="svelte-7szqlz">Reset</button> <button type="button" class="svelte-7szqlz">Cancel</button></div></div>');function f0(e,t){re(t,!0);const n=we(()=>Ji(t.appId)),r=we(()=>nr().find(Y=>Y.id===t.appId)?.icon);let s=F(oe(n?.icon)),a=F(oe(n?.color)),o=F(oe(n?.label??"")),l=F(n?.icon!==void 0);const c=W(()=>n!==void 0),u=W(()=>i(o).trim()===""?t.appLabel:i(o).trim()),d=W(()=>i(s)??r??"box");function f(){const Y=i(o).trim();pc(t.appId,{icon:i(s),color:i(a),label:Y===""?void 0:Y}),t.close()}function p(){pc(t.appId,void 0),t.close()}var b=d0(),x=h(b),g=h(x);v(x);var y=w(x,2),k=h(y);let _,m;var I=h(k),D=h(I),T=h(D);v(D),v(I);var j=w(I,2),z=h(j,!0);v(j),v(k),v(y);var R=w(y,2),M=w(h(R),2);ge(M),v(R);var C=w(R,2),P=w(h(C),2);{var B=Y=>{var J=c0();H("click",J,()=>S(l,!0)),E(Y,J)},L=Y=>{var J=u0(),ie=ve(J);a0(ie,{get value(){return i(s)},set value(Q){S(s,Q,!0)}});var fe=w(ie,2);H("click",fe,()=>S(l,!1)),E(Y,J)};K(P,Y=>{i(l)?Y(L,-1):Y(B)})}v(C);var U=w(C,2),V=w(h(U),2);{let Y=W(()=>i(a)??"#888888");Gf(V,{get value(){return i(Y)},onchange:J=>S(a,J,!0)})}v(U);var q=w(U,2),G=h(q),X=w(G,2),ae=w(X,2);v(q),v(b),N(()=>{O(g,`Customize ${t.appLabel??""}`),_=ce(k,1,"preview-card svelte-7szqlz",null,_,{"preview-card--tinted":i(a)!==void 0}),m=We(k,"",m,{"--card-color":i(a)??"transparent"}),ne(T,"href",`${$n}#${i(d)??""}`),O(z,i(u)),ne(M,"placeholder",t.appLabel),X.disabled=!i(c)}),Ee(M,()=>i(o),Y=>S(o,Y)),H("click",G,f),H("click",X,p),H("click",ae,function(...Y){t.close?.apply(this,Y)}),E(e,b),se()}le(["click"]);function v0(){const e=Vo();return!e||e.type!=="app"?null:e.ref}function h0(e){const t=v0();if(!t)return;const n=nr().find(s=>s.id===t.appId),r={appId:t.appId,appLabel:n?.label??t.appId};yn.open(f0,r)}const p0={manifest:{id:"__app-appearance__",label:"App Appearance",version:fn,views:[]},activate(e){const t=e.state({user:{overrides:{}}});i0(t);const n={id:"app.customize",label:"Customize…",scope:{element:"app"},contextItem:!0,group:"appearance",run:h0};e.actions.register(n)},autostart(){},deactivate(){o0()}};var m0=A('<button type="button" data-sh3-scope="element:app"><span class="shell-home-card-square svelte-cpn2x2"><svg class="shell-home-card-icon svelte-cpn2x2"><use></use></svg></span> <span class="shell-home-card-label svelte-cpn2x2"> </span></button>'),b0=A('<section class="shell-home-section svelte-cpn2x2"><h2 class="shell-home-section-title svelte-cpn2x2">Apps</h2> <div class="shell-home-grid svelte-cpn2x2"></div></section>'),g0=A('<button type="button" data-sh3-scope="element:app"><span class="shell-home-card-square svelte-cpn2x2"><svg class="shell-home-card-icon svelte-cpn2x2"><use></use></svg></span> <span class="shell-home-card-label svelte-cpn2x2"> </span></button>'),_0=A('<section class="shell-home-section svelte-cpn2x2"><h2 class="shell-home-section-title svelte-cpn2x2">Admin</h2> <div class="shell-home-grid svelte-cpn2x2"></div></section>'),y0=A('<p class="shell-home-empty svelte-cpn2x2"><!></p>'),w0=A('<div class="shell-home svelte-cpn2x2"><header class="shell-home-header svelte-cpn2x2"><div class="shell-home-title-row svelte-cpn2x2"><!> <span class="shell-home-version svelte-cpn2x2"> </span> <span class="shell-home-alpha svelte-cpn2x2">alpha</span></div> <div class="shell-home-credit svelte-cpn2x2">Art: by <a href="https://www.andbc.co/" target="_blank" rel="noopener noreferrer" class="svelte-cpn2x2">andbc</a></div></header> <div class="shell-home-filter svelte-cpn2x2"><input type="search" placeholder="Filter apps…" aria-label="Filter apps by name" class="shell-home-filter-input svelte-cpn2x2"/></div> <!> <!> <!> <!></div>');function k0(e,t){re(t,!0);const n=Nd("__sh3core__");function r(P,B){P.preventDefault(),n.set({type:"app",ref:{appId:B}}),Pn.actions.openContextMenu({x:P.clientX,y:P.clientY,scope:{element:"app"}})}let s=F("");const a=W(nr),o=W(ht),l=W(()=>Qn.activeProjectId?zt.projects.find(P=>P.id===Qn.activeProjectId)??null:null);function c(P,B){if(!B)return!0;const L=B.toLowerCase();return P.label.toLowerCase().includes(L)||P.id.toLowerCase().includes(L)}function u(P){return i(l)?i(l).appAllowlist.includes(P):!0}const d=W(()=>i(a).filter(P=>!P.admin&&c(P,i(s))&&u(P.id))),f=W(()=>i(a).filter(P=>P.admin&&c(P,i(s)))),p=W(()=>i(d).length+(i(o)?i(f).length:0));var b=w0(),x=h(b),g=h(x),y=h(g);Bk(y,{});var k=w(y,2),_=h(k);v(k),Gt(2),v(g),Gt(2),v(x);var m=w(x,2),I=h(m);ge(I),v(m);var D=w(m,2);t0(D,{});var T=w(D,2);{var j=P=>{var B=b0(),L=w(h(B),2);he(L,21,()=>i(d),U=>U.id,(U,V)=>{const q=W(()=>Ji(i(V).id));var G=m0();let X,ae;var Y=h(G),J=h(Y),ie=h(J);v(J),v(Y);var fe=w(Y,2),Q=h(fe,!0);v(fe),v(G),N(()=>{X=ce(G,1,"shell-home-card svelte-cpn2x2",null,X,{"shell-home-card--tinted":i(q)?.color}),ae=We(G,"",ae,{"--card-color":i(q)?.color??"transparent"}),ne(ie,"href",`${$n}#${i(q)?.icon??i(V).icon??"box"??""}`),O(Q,i(q)?.label??i(V).label)}),H("click",G,()=>bn(i(V).id)),H("contextmenu",G,pe=>r(pe,i(V).id)),E(U,G)}),v(L),v(B),E(P,B)};K(T,P=>{i(d).length>0&&P(j)})}var z=w(T,2);{var R=P=>{var B=_0(),L=w(h(B),2);he(L,21,()=>i(f),U=>U.id,(U,V)=>{const q=W(()=>Ji(i(V).id));var G=g0();let X,ae;var Y=h(G),J=h(Y),ie=h(J);v(J),v(Y);var fe=w(Y,2),Q=h(fe,!0);v(fe),v(G),N(()=>{X=ce(G,1,"shell-home-card svelte-cpn2x2",null,X,{"shell-home-card--tinted":i(q)?.color}),ae=We(G,"",ae,{"--card-color":i(q)?.color??"transparent"}),ne(ie,"href",`${$n}#${i(q)?.icon??i(V).icon??"box"??""}`),O(Q,i(q)?.label??i(V).label)}),H("click",G,()=>bn(i(V).id)),H("contextmenu",G,pe=>r(pe,i(V).id)),E(U,G)}),v(L),v(B),E(P,B)};K(z,P=>{i(o)&&i(f).length>0&&P(R)})}var M=w(z,2);{var C=P=>{var B=y0(),L=h(B);{var U=q=>{var G=Xt("No apps registered.");E(q,G)},V=q=>{var G=Xt();N(()=>O(G,`No apps match “${i(s)??""}”.`)),E(q,G)};K(L,q=>{i(a).length===0?q(U):q(V,-1)})}v(B),E(P,B)};K(M,P=>{i(p)===0&&P(C)})}v(b),N(()=>O(_,`v${fn}`)),Ee(I,()=>i(s),P=>S(s,P)),E(e,b),se()}le(["click","contextmenu"]);var x0=A('<p class="keys-peers-muted svelte-19l5m7c">Loading...</p>'),S0=A('<p class="keys-peers-error svelte-19l5m7c"> </p>'),E0=A('<p class="keys-peers-muted svelte-19l5m7c">No keys yet. Shards will ask your permission before creating one.</p>'),I0=A('<button type="button" class="keys-peers-btn-danger svelte-19l5m7c">Confirm</button> <button type="button" class="keys-peers-btn-secondary svelte-19l5m7c">Cancel</button>',1),A0=A('<button type="button" class="keys-peers-btn-danger svelte-19l5m7c">Revoke</button>'),C0=A('<li class="keys-peers-item svelte-19l5m7c"><div class="keys-peers-info svelte-19l5m7c"><span class="keys-peers-label svelte-19l5m7c"> </span> <span class="keys-peers-meta svelte-19l5m7c"> </span> <span class="keys-peers-meta svelte-19l5m7c"> </span> <span class="keys-peers-meta svelte-19l5m7c"> </span></div> <div class="keys-peers-actions svelte-19l5m7c"><!></div></li>'),T0=A('<ul class="keys-peers-list svelte-19l5m7c"></ul>'),R0=A('<div class="keys-peers svelte-19l5m7c"><div class="keys-peers-header svelte-19l5m7c"><h2 class="svelte-19l5m7c">Keys &amp; Peers</h2></div> <!></div>');function j0(e,t){re(t,!0);let n=F(oe([])),r=F(null),s=F(!0),a=F(null);async function o(){S(r,null),S(s,!0);try{const g=await fetch("/api/keys",{credentials:"include"});if(!g.ok)throw new Error(`HTTP ${g.status}`);S(n,await g.json(),!0)}catch(g){S(r,g instanceof Error?g.message:String(g),!0)}finally{S(s,!1)}}async function l(g){S(a,null);const y=await fetch(`/api/keys/${encodeURIComponent(g)}`,{method:"DELETE",credentials:"include"});(y.ok||y.status===404)&&S(n,i(n).filter(k=>k.id!==g),!0)}function c(g){return new Date(g).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}xe(()=>{o()}),xe(()=>Jo("*",()=>{o()}));var u=R0(),d=w(h(u),2);{var f=g=>{var y=x0();E(g,y)},p=g=>{var y=S0(),k=h(y);v(y),N(()=>O(k,`Failed to load: ${i(r)??""}`)),E(g,y)},b=g=>{var y=E0();E(g,y)},x=g=>{var y=T0();he(y,21,()=>i(n),k=>k.id,(k,_)=>{var m=C0(),I=h(m),D=h(I),T=h(D,!0);v(D);var j=w(D,2),z=h(j);v(j);var R=w(j,2),M=h(R);v(R);var C=w(R,2),P=h(C);v(C),v(I);var B=w(I,2),L=h(B);{var U=q=>{var G=I0(),X=ve(G),ae=w(X,2);H("click",X,()=>l(i(_).id)),H("click",ae,()=>{S(a,null)}),E(q,G)},V=q=>{var G=A0();H("click",G,()=>{S(a,i(_).id,!0)}),E(q,G)};K(L,q=>{i(a)===i(_).id?q(U):q(V,-1)})}v(B),v(m),N((q,G,X)=>{O(T,i(_).label),O(z,`Minted by: ${i(_).mintedByShardId??"system"??""}${i(_).peerRole||i(_).peerId?` · Peer: ${i(_).peerRole??"—"}${i(_).peerId?` (${i(_).peerId})`:""}`:""}`),O(M,`Scopes: ${q??""}`),O(P,`Created: ${G??""} · Expires: ${X??""}`)},[()=>i(_).scopes.join(", "),()=>c(i(_).createdAt),()=>i(_).expiresAt?c(i(_).expiresAt):"never"]),E(k,m)}),v(y),E(g,y)};K(d,g=>{i(s)?g(f):i(r)?g(p,1):i(n).length===0?g(b,2):g(x,-1)})}v(u),E(e,u),se()}le(["click"]);var D0=A('<div class="confirm-dialog svelte-1k1962w"><div class="confirm-dialog-title svelte-1k1962w"> </div> <div class="confirm-dialog-body svelte-1k1962w"> </div> <div class="confirm-dialog-actions svelte-1k1962w"><button type="button" class="confirm-dialog-btn confirm-dialog-btn-cancel svelte-1k1962w" data-confirm-dialog-cancel=""> </button> <button type="button" data-confirm-dialog-confirm=""> </button></div></div>');function P0(e,t){re(t,!0);let n=Z(t,"confirmLabel",3,"Confirm"),r=Z(t,"cancelLabel",3,"Cancel"),s=Z(t,"confirmTone",3,"default"),a=F(void 0),o=F(!1);xe(()=>{i(a)?.focus()});async function l(){if(!i(o)){S(o,!0);try{await t.onConfirm()}finally{t.close()}}}function c(){i(o)||(t.onCancel?.(),t.close())}var u=D0(),d=h(u),f=h(d,!0);v(d);var p=w(d,2),b=h(p,!0);v(p);var x=w(p,2),g=h(x),y=h(g,!0);v(g),Pe(g,I=>S(a,I),()=>i(a));var k=w(g,2);let _;var m=h(k,!0);v(k),v(x),v(u),N(()=>{O(f,t.title),O(b,t.body),g.disabled=i(o),O(y,r()),_=ce(k,1,"confirm-dialog-btn svelte-1k1962w",null,_,{"confirm-dialog-btn-danger":s()==="danger","confirm-dialog-btn-default":s()==="default"}),k.disabled=i(o),O(m,n())}),H("click",g,c),H("click",k,l),E(e,u),se()}le(["click"]);const mc=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 hi(e,t){const n=Object.keys(t),r=n.filter(o=>!mc.has(o)),s=n.filter(o=>mc.has(o)),a=[`const __m__ = globalThis.${e};`];r.length>0&&a.push(`export const { ${r.join(", ")} } = __m__;`);for(const o of s)a.push(`const __r_${o}__ = __m__['${o}']; export { __r_${o}__ as ${o} };`);return a.push("export default __m__.default;"),URL.createObjectURL(new Blob([a.join(`
11
+ `)],{type:"application/javascript"}))}const al=globalThis;al.__sh3__=$f;al.__sh3_svelte__=rd;al.__sh3_svelte_internal_client__=md;const il={"sh3-core":hi("__sh3__",$f),svelte:hi("__sh3_svelte__",rd),"svelte/internal/client":hi("__sh3_svelte_internal_client__",md)};il["svelte/internal/disclose-version"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));il["sh3-core/tokens.css"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));const M0=/(?:from|import)\s*(['"])(sh3-core(?:\/[^'"]*)?|svelte(?:\/[^'"]*)?)\1/g;function O0(e){return e.replace(M0,(t,n,r)=>{const s=il[r];return s?`${t.startsWith("from")?"from":"import"} '${s}'`:t})}async function Ps(e){const t=new TextDecoder().decode(e),n=O0(t),r=new Blob([n],{type:"application/javascript"}),s=URL.createObjectURL(r);try{const a=await import(s),o={shards:[],apps:[]};for(const l of Object.values(a)){if(!l||typeof l!="object"||!("manifest"in l))continue;const c=l;z0(c)?o.shards.push(c):L0(c)&&o.apps.push(c)}if(o.shards.length===0&&o.apps.length===0)throw new Error('Bundle has no exports with a "manifest" property — expected at least one shard or app');return o}finally{URL.revokeObjectURL(s)}}function z0(e){return"activate"in e&&typeof e.activate=="function"&&Array.isArray(e.manifest.views)}function L0(e){return"initialLayout"in e&&Array.isArray(e.manifest.requiredShards)}const N0="sh3-packages",q0=1,hs="bundles",jr="meta";function Ms(){return new Promise((e,t)=>{const n=indexedDB.open(N0,q0);n.onupgradeneeded=()=>{const r=n.result;r.objectStoreNames.contains(hs)||r.createObjectStore(hs),r.objectStoreNames.contains(jr)||r.createObjectStore(jr)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}function er(e,t,n,r){return new Promise((s,a)=>{const l=e.transaction(t,n).objectStore(t),c=r(l);c.onsuccess=()=>s(c.result),c.onerror=()=>a(c.error)})}async function tv(e,t,n){const r=await Ms();await er(r,hs,"readwrite",s=>s.put(t,e)),await er(r,jr,"readwrite",s=>s.put(n,e)),r.close()}async function nv(e){const t=await Ms(),n=await er(t,hs,"readonly",r=>r.get(e));return t.close(),n??null}async function V0(e){const t=await Ms(),n=await er(t,jr,"readonly",r=>r.get(e));return t.close(),n??null}async function rv(){const e=await Ms(),t=await er(e,jr,"readonly",n=>n.getAll());return e.close(),t??[]}async function B0(e){const t=await Ms();await er(t,hs,"readwrite",n=>n.delete(e)),await er(t,jr,"readwrite",n=>n.delete(e)),t.close()}function ol(e,t){for(const n of e.shards)n.manifest={...n.manifest,version:t.version},Zo(n);for(const n of e.apps)n.manifest={...n.manifest,version:t.version},Do(n)}const F0={"state:manage":{title:"Manage shell state zones",description:"Read and write state zones belonging to other shards."},"documents:browse":{title:"Browse tenant documents",description:"Observe all documents stored by the current tenant."},"documents:read":{title:"Read tenant documents",description:"Read the content of any document in the current tenant, across all shards. Required for backup connectors that need to pull document bodies (not just metadata) out of other shards."},"documents:write":{title:"Write tenant documents",description:"Create and overwrite documents in any shard's namespace within the current tenant. Required for restore-class connectors that re-import documents back into their owning shards."},"documents:sync":{title:"Sync documents with peers",description:"Participate in cross-peer document synchronization."},"sync:peer":{title:"Act as a sync peer",description:"Exchange document updates with remote peers."},"sync:policy":{title:"Define sync policy",description:"Configure which documents sync and with whom."},"keys:mint":{title:"Mint API keys",description:"Issue long-lived access tokens for this shell."}};function pi(e){return F0[e]??{title:e,description:"Unknown permission."}}function ll(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 cl(e,t,n){if(!t.integrity)return{success:!1,hotLoaded:!1,error:"Missing integrity hash — refusing to install unverified bundle"};try{await nl(e,t.integrity)}catch(o){return{success:!1,hotLoaded:!1,error:`Integrity check failed: ${o instanceof Error?o.message:String(o)}`}}let r;if(n?.loaded)r=n.loaded;else try{r=await Ps(e)}catch(o){return{success:!1,hotLoaded:!1,error:`Failed to load bundle: ${o instanceof Error?o.message:String(o)}`}}if(t.type==="shard"&&r.shards.length===0)return{success:!1,hotLoaded:!1,error:`Package "${t.id}" declared type "shard" but bundle contains no valid shard`};if(t.type==="app"&&r.apps.length===0)return{success:!1,hotLoaded:!1,error:`Package "${t.id}" declared type "app" but bundle contains no valid app`};const s={id:t.id,type:t.type,version:t.version,sourceRegistry:t.sourceRegistry,contractVersion:t.contractVersion,installedAt:new Date().toISOString(),permissions:ll(r)};try{await tv(t.id,e,s)}catch(o){return{success:!1,hotLoaded:!1,error:`Failed to persist package: ${o instanceof Error?o.message:String(o)}`}}if(t.type==="shard"||t.type==="combo")try{Ka(t.id)}catch{}(t.type==="app"||t.type==="combo")&&Wa(t.id);let a=!0;try{ol(r,{version:t.version,sourceRegistry:t.sourceRegistry,contractVersion:t.contractVersion})}catch(o){console.warn(`[sh3] Package "${t.id}" installed but registration failed (will retry on next boot):`,o instanceof Error?o.message:o),a=!1}return{success:!0,package:s,hotLoaded:a}}async function U0(e){try{Ka(e)}catch{}Wa(e),await B0(e)}async function H0(){return rv()}async function K0(){let e;try{e=await rv()}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 nv(t.id);if(!n){console.warn(`[sh3] No bundle found for installed package "${t.id}", skipping`);continue}const r=await Ps(n);ol(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 bc={version:1};var W0=A('<span class="perm-modal-author svelte-1ipp1r6"> </span>'),Y0=A('<p class="perm-modal-empty svelte-1ipp1r6">This package requires no special permissions.</p>'),G0=A('<li class="perm-modal-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6"> </div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),X0=A('<p class="perm-modal-intro svelte-1ipp1r6">This package requests the following permissions:</p> <ul class="perm-modal-list svelte-1ipp1r6"></ul>',1),J0=A('<li class="perm-modal-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6"> </div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),Z0=A('<p class="perm-modal-intro svelte-1ipp1r6">New permissions in this update:</p> <ul class="perm-modal-list perm-modal-added svelte-1ipp1r6"></ul>',1),Q0=A('<li class="perm-modal-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6"> </div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),$0=A('<p class="perm-modal-intro svelte-1ipp1r6">Permissions no longer requested:</p> <ul class="perm-modal-list perm-modal-removed svelte-1ipp1r6"></ul>',1),ex=A("<!> <!>",1),tx=A('<div class="perm-modal-backdrop svelte-1ipp1r6" role="dialog" aria-modal="true" tabindex="-1"><div class="perm-modal-panel svelte-1ipp1r6" role="document"><header class="perm-modal-header svelte-1ipp1r6"><h3 class="svelte-1ipp1r6"> </h3> <div class="perm-modal-subtitle svelte-1ipp1r6"><!> <!></div></header> <div class="perm-modal-body svelte-1ipp1r6"><!></div> <footer class="perm-modal-footer svelte-1ipp1r6"><button class="perm-modal-cancel svelte-1ipp1r6">Cancel</button> <button class="perm-modal-confirm svelte-1ipp1r6"> </button></footer></div></div>');function Zi(e,t){re(t,!0);const n=Z(t,"permissions",19,()=>[]),r=Z(t,"added",19,()=>[]),s=Z(t,"removed",19,()=>[]),a=W(()=>t.mode==="install"?"Install":"Update");var o=tx(),l=h(o),c=h(l),u=h(c),d=h(u);v(u);var f=w(u,2),p=h(f);{var b=R=>{var M=Xt();N(()=>O(M,`${t.fromVersion??""} → ${t.pkg.version??""}`)),E(R,M)},x=R=>{var M=Xt();N(()=>O(M,`v${t.pkg.version??""}`)),E(R,M)};K(p,R=>{t.mode==="update"&&t.fromVersion?R(b):R(x,-1)})}var g=w(p,2);{var y=R=>{var M=W0(),C=h(M);v(M),N(()=>O(C,`by ${t.pkg.author??""}`)),E(R,M)};K(g,R=>{t.pkg.author&&R(y)})}v(f),v(c);var k=w(c,2),_=h(k);{var m=R=>{var M=Ue(),C=ve(M);{var P=L=>{var U=Y0();E(L,U)},B=L=>{var U=X0(),V=w(ve(U),2);he(V,20,n,q=>q,(q,G)=>{const X=W(()=>pi(G));var ae=G0(),Y=h(ae),J=h(Y,!0);v(Y);var ie=w(Y,2),fe=h(ie,!0);v(ie),v(ae),N(()=>{O(J,i(X).title),O(fe,i(X).description)}),E(q,ae)}),v(V),E(L,U)};K(C,L=>{n().length===0?L(P):L(B,-1)})}E(R,M)},I=R=>{var M=ex(),C=ve(M);{var P=U=>{var V=Z0(),q=w(ve(V),2);he(q,20,r,G=>G,(G,X)=>{const ae=W(()=>pi(X));var Y=J0(),J=h(Y),ie=h(J,!0);v(J);var fe=w(J,2),Q=h(fe,!0);v(fe),v(Y),N(()=>{O(ie,i(ae).title),O(Q,i(ae).description)}),E(G,Y)}),v(q),E(U,V)};K(C,U=>{r().length>0&&U(P)})}var B=w(C,2);{var L=U=>{var V=$0(),q=w(ve(V),2);he(q,20,s,G=>G,(G,X)=>{const ae=W(()=>pi(X));var Y=Q0(),J=h(Y),ie=h(J,!0);v(J);var fe=w(J,2),Q=h(fe,!0);v(fe),v(Y),N(()=>{O(ie,i(ae).title),O(Q,i(ae).description)}),E(G,Y)}),v(q),E(U,V)};K(B,U=>{s().length>0&&U(L)})}E(R,M)};K(_,R=>{t.mode==="install"?R(m):R(I,-1)})}v(k);var D=w(k,2),T=h(D),j=w(T,2),z=h(j,!0);v(j),v(D),v(l),v(o),N(()=>{ne(o,"aria-label",`${i(a)??""} ${t.pkg.label??""}`),O(d,`${i(a)??""} ${t.pkg.label??""}`),O(z,i(a))}),H("click",o,function(...R){t.onCancel?.apply(this,R)}),H("keydown",o,R=>{R.key==="Escape"&&t.onCancel()}),H("click",l,R=>R.stopPropagation()),H("click",T,function(...R){t.onCancel?.apply(this,R)}),H("click",j,function(...R){t.onConfirm?.apply(this,R)}),E(e,o),se()}le(["click","keydown"]);function ul(e){return e==="shard"?"shard":"app"}function nx(e){return ul(e)==="shard"?"Shard":"App"}function rx(e,t){return t==="all"?!0:ul(e)===t}var sx=A('<div class="store-registry-entry svelte-1aafzt0"><span class="store-registry-url svelte-1aafzt0"> </span> <button class="store-registry-remove svelte-1aafzt0">Remove</button></div>'),ax=A('<div class="store-registries svelte-1aafzt0"></div>'),ix=A('<form class="store-add-registry svelte-1aafzt0"><input class="store-registry-input svelte-1aafzt0" type="url" placeholder="Registry URL (e.g. https://sh3.example.com/registry.json)"/> <button type="submit" class="store-add-btn svelte-1aafzt0">Add</button></form>'),ox=A('<div class="store-error svelte-1aafzt0"> </div>'),lx=A('<div class="store-error svelte-1aafzt0"> </div>'),cx=A('<img alt="" class="store-icon-img svelte-1aafzt0"/>'),ux=A('<span class="store-icon-placeholder svelte-1aafzt0"> </span>'),dx=A('<div class="store-card-warning svelte-1aafzt0"> </div>'),fx=A('<button class="store-update-btn svelte-1aafzt0"> </button>'),vx=A('<span class="store-installed-label svelte-1aafzt0">Installed</span>'),hx=A('<span class="store-card-missing svelte-1aafzt0"> </span>'),px=A('<div class="store-install-wrap svelte-1aafzt0"><button class="store-install-btn svelte-1aafzt0"> </button> <!></div>'),mx=A('<div class="store-card svelte-1aafzt0"><div class="store-card-header svelte-1aafzt0"><div class="store-card-icon svelte-1aafzt0"><!></div> <div class="store-card-title svelte-1aafzt0"><span class="store-card-label svelte-1aafzt0"> </span> <span> </span> <span class="store-card-version svelte-1aafzt0"> </span></div></div> <p class="store-card-desc svelte-1aafzt0"> </p> <div class="store-card-author svelte-1aafzt0"> </div> <!> <div class="store-card-actions svelte-1aafzt0"><!></div></div>'),bx=A("No packages found. <!>",1),gx=A('<div class="store-empty svelte-1aafzt0"><!></div>'),_x=A('<div class="store-view svelte-1aafzt0"><header class="store-header svelte-1aafzt0"><h2 class="svelte-1aafzt0">Package Store</h2> <div class="store-controls svelte-1aafzt0"><input class="store-search svelte-1aafzt0" type="text" placeholder="Search packages..."/> <select class="store-filter svelte-1aafzt0"><option>All</option><option>Shards</option><option>Apps</option></select> <button class="store-refresh svelte-1aafzt0"> </button></div></header> <!> <!> <!> <!> <div class="store-grid svelte-1aafzt0"></div> <!></div> <!> <!>',1);function yx(e,t){re(t,!0);let n=F(""),r=F("all"),s=F(oe(new Set)),a=F(oe(new Set)),o=F(null),l=F(""),c=F(null),u=F(null);const d=Ze;async function f(){const $=i(l).trim();if($&&!d.env.registries.includes($))try{await d.addRegistry($),S(l,""),d.refreshCatalog(),d.refreshInstalled()}catch(ee){S(o,ee instanceof Error?ee.message:String(ee),!0)}}async function p($){try{await d.removeRegistry($),d.refreshCatalog()}catch(ee){S(o,ee instanceof Error?ee.message:String(ee),!0)}}const b=W(()=>{const $=i(n).toLowerCase().trim();return d.state.ephemeral.catalog.filter(ee=>rx(ee.entry.type,i(r))?$?ee.entry.id.toLowerCase().includes($)||ee.entry.label.toLowerCase().includes($)||ee.entry.description.toLowerCase().includes($):!0:!1)});function x($){return d.state.ephemeral.installed.some(ee=>ee.id===$)}function g($){return String($.latest.contractVersion)!==String(bc.version)}function y($){return $ in d.state.ephemeral.updatable}function k($){return d.state.ephemeral.installed.find(ee=>ee.id===$)?.version??""}function _($,ee){const Ae=$.latest.requires?.map(ye=>ye.id)??[];if(Ae.length===0)return[];const Me=new Set(Qf);for(const ye of ee)(ye.type==="shard"||ye.type==="combo")&&Me.add(ye.id);return Ae.filter(ye=>!Me.has(ye))}async function m($){if(!i(a).has($)){S(a,new Set([...i(a),$]),!0),S(o,null);try{await d.updatePackage($,(ee,Ae)=>new Promise(Me=>{const ye=d.state.ephemeral.updatable[$],Fe=d.state.ephemeral.installed.find($e=>$e.id===$);if(!ye||!Fe){Me(!0);return}S(u,{pkg:ye,fromVersion:Fe.version,added:ee,removed:Ae,resolve:Me},!0)}))}catch(ee){S(o,ee instanceof Error?ee.message:String(ee),!0)}finally{const ee=new Set(i(a));ee.delete($),S(a,ee,!0)}}}function I(){const $=i(u);$&&(S(u,null),$.resolve(!0))}function D(){const $=i(u);$&&(S(u,null),$.resolve(!1))}async function T($){const ee=$.entry.id;if(!i(s).has(ee)){S(s,new Set([...i(s),ee]),!0),S(o,null);try{const Ae=await Xa($.latest,$.sourceRegistry),Me=Ja($,$.latest),ye=await Ps(Ae),Fe=ll(ye);let $e;$.latest.serverBundleUrl&&($e=await rl($.latest,$.sourceRegistry)),S(c,{pkg:$,permissions:Fe,loaded:ye,bundle:Ae,meta:Me,serverBundle:$e},!0)}catch(Ae){S(o,Ae instanceof Error?Ae.message:String(Ae),!0);const Me=new Set(i(s));Me.delete(ee),S(s,Me,!0)}}}async function j(){const $=i(c);if(!$)return;S(c,null);const{pkg:ee,loaded:Ae,bundle:Me,meta:ye,serverBundle:Fe}=$,$e=ee.entry.id;try{const Ye={id:ye.id,type:ye.type,label:ee.entry.label,version:ye.version,contractVersion:ye.contractVersion,sourceRegistry:ye.sourceRegistry,requiredShards:ee.latest.requires?.map(Rt=>Rt.id)??[],installedAt:new Date().toISOString()},Mn=await Xo(Ye,Me,Fe);if(!Mn.ok){S(o,Mn.error??"Server install failed",!0);return}const wn=await cl(Me,ye,{loaded:Ae});wn.success||console.warn(`[sh3-store] Server install ok but local hot-load failed: ${wn.error}`),await d.refreshInstalled()}catch(Ye){S(o,Ye instanceof Error?Ye.message:String(Ye),!0)}finally{const Ye=new Set(i(s));Ye.delete($e),S(s,Ye,!0)}}function z(){if(!i(c))return;const $=i(c).pkg.entry.id;S(c,null);const ee=new Set(i(s));ee.delete($),S(s,ee,!0)}function R(){d.refreshCatalog(),d.refreshInstalled()}var M=_x(),C=ve(M),P=h(C),B=w(h(P),2),L=h(B);ge(L);var U=w(L,2),V=h(U);V.value=V.__value="all";var q=w(V);q.value=q.__value="shard";var G=w(q);G.value=G.__value="app",v(U);var X=w(U,2),ae=h(X,!0);v(X),v(B),v(P);var Y=w(P,2);{var J=$=>{var ee=ax();he(ee,21,()=>d.env.registries,mt,(Ae,Me)=>{var ye=sx(),Fe=h(ye),$e=h(Fe,!0);v(Fe);var Ye=w(Fe,2);v(ye),N(()=>O($e,i(Me))),H("click",Ye,()=>p(i(Me))),E(Ae,ye)}),v(ee),E($,ee)};K(Y,$=>{d.isAdmin&&d.env.registries.length>0&&$(J)})}var ie=w(Y,2);{var fe=$=>{var ee=ix(),Ae=h(ee);ge(Ae);var Me=w(Ae,2);v(ee),N(ye=>Me.disabled=ye,[()=>!i(l).trim()]),De("submit",ee,ye=>{ye.preventDefault(),f()}),Ee(Ae,()=>i(l),ye=>S(l,ye)),E($,ee)};K(ie,$=>{d.isAdmin&&$(fe)})}var Q=w(ie,2);{var pe=$=>{var ee=ox(),Ae=h(ee,!0);v(ee),N(()=>O(Ae,d.state.ephemeral.error)),E($,ee)};K(Q,$=>{d.state.ephemeral.error&&$(pe)})}var ke=w(Q,2);{var _t=$=>{var ee=lx(),Ae=h(ee,!0);v(ee),N(()=>O(Ae,i(o))),E($,ee)};K(ke,$=>{i(o)&&$(_t)})}var Le=w(ke,2);he(Le,21,()=>i(b),$=>$.entry.id,($,ee)=>{const Ae=W(()=>x(i(ee).entry.id)),Me=W(()=>g(i(ee))),ye=W(()=>i(s).has(i(ee).entry.id)),Fe=W(()=>y(i(ee).entry.id)),$e=W(()=>i(a).has(i(ee).entry.id)),Ye=W(()=>_(i(ee),d.state.ephemeral.installed)),Mn=W(()=>ul(i(ee).entry.type));var wn=mx(),Rt=h(wn),On=h(Rt),yv=h(On);{var wv=Oe=>{var ze=cx();N(()=>ne(ze,"src",i(ee).entry.icon)),E(Oe,ze)},kv=Oe=>{var ze=ux(),jt=h(ze,!0);v(ze),N(()=>O(jt,i(ee).entry.type==="shard"?"S":"A")),E(Oe,ze)};K(yv,Oe=>{i(ee).entry.icon?Oe(wv):Oe(kv,-1)})}v(On);var hl=w(On,2),$a=h(hl),xv=h($a,!0);v($a);var Os=w($a,2);let pl;var Sv=h(Os,!0);v(Os);var ml=w(Os,2),Ev=h(ml,!0);v(ml),v(hl),v(Rt);var ei=w(Rt,2),Iv=h(ei,!0);v(ei);var ti=w(ei,2),Av=h(ti,!0);v(ti);var bl=w(ti,2);{var Cv=Oe=>{var ze=dx(),jt=h(ze);v(ze),N(()=>O(jt,`Contract mismatch: package targets v${i(ee).latest.contractVersion??""}, running v${bc.version}`)),E(Oe,ze)};K(bl,Oe=>{i(Me)&&Oe(Cv)})}var gl=w(bl,2),Tv=h(gl);{var Rv=Oe=>{var ze=fx(),jt=h(ze,!0);v(ze),N(ni=>{ze.disabled=i($e),O(jt,ni)},[()=>i($e)?"Updating...":`Update ${k(i(ee).entry.id)} -> ${i(ee).latest.version}`]),H("click",ze,()=>m(i(ee).entry.id)),E(Oe,ze)},jv=Oe=>{var ze=vx();E(Oe,ze)},Dv=Oe=>{var ze=px(),jt=h(ze),ni=h(jt,!0);v(jt);var Pv=w(jt,2);{var Mv=Fr=>{var ri=hx(),Ov=h(ri);v(ri),N(zv=>O(Ov,`requires: ${zv??""}`),[()=>i(Ye).join(", ")]),E(Fr,ri)};K(Pv,Fr=>{i(Ye).length>0&&Fr(Mv)})}v(ze),N(Fr=>{jt.disabled=i(ye)||i(Ye).length>0,ne(jt,"title",Fr),O(ni,i(ye)?"Installing...":"Install")},[()=>i(Ye).length>0?`Missing required shards: ${i(Ye).join(", ")}`:void 0]),H("click",jt,()=>T(i(ee))),E(Oe,ze)};K(Tv,Oe=>{i(Ae)&&i(Fe)?Oe(Rv):i(Ae)?Oe(jv,1):Oe(Dv,-1)})}v(gl),v(wn),N(Oe=>{O(xv,i(ee).entry.label),pl=ce(Os,1,"store-card-badge svelte-1aafzt0",null,pl,{"badge-shard":i(Mn)==="shard","badge-app":i(Mn)==="app"}),O(Sv,Oe),O(Ev,i(ee).latest.version),O(Iv,i(ee).entry.description),O(Av,i(ee).entry.author.name)},[()=>nx(i(ee).entry.type)]),E($,wn)}),v(Le);var Tt=w(Le,2);{var Ft=$=>{var ee=gx(),Ae=h(ee);{var Me=Fe=>{var $e=bx(),Ye=w(ve($e));{var Mn=Rt=>{var On=Xt("Add a registry URL above to get started.");E(Rt,On)},wn=Rt=>{var On=Xt("No registries configured.");E(Rt,On)};K(Ye,Rt=>{d.isAdmin?Rt(Mn):Rt(wn,-1)})}E(Fe,$e)},ye=Fe=>{var $e=Xt("No packages match the current filter.");E(Fe,$e)};K(Ae,Fe=>{d.env.registries.length===0?Fe(Me):Fe(ye,-1)})}v(ee),E($,ee)};K(Tt,$=>{!d.state.ephemeral.loading&&i(b).length===0&&$(Ft)})}v(C);var vl=w(C,2);{var bv=$=>{{let ee=W(()=>({label:i(c).pkg.entry.label,version:i(c).pkg.latest.version,author:i(c).pkg.entry.author.name}));Zi($,{mode:"install",get pkg(){return i(ee)},get permissions(){return i(c).permissions},onConfirm:j,onCancel:z})}};K(vl,$=>{i(c)&&$(bv)})}var gv=w(vl,2);{var _v=$=>{{let ee=W(()=>({label:i(u).pkg.entry.label,version:i(u).pkg.latest.version,author:i(u).pkg.entry.author.name}));Zi($,{mode:"update",get pkg(){return i(ee)},get fromVersion(){return i(u).fromVersion},get added(){return i(u).added},get removed(){return i(u).removed},onConfirm:I,onCancel:D})}};K(gv,$=>{i(u)&&$(_v)})}N(()=>{X.disabled=d.state.ephemeral.loading,O(ae,d.state.ephemeral.loading?"Loading...":"Refresh")}),Ee(L,()=>i(n),$=>S(n,$)),as(U,()=>i(r),$=>S(r,$)),H("click",X,R),E(e,M),se()}le(["click"]);function sv(e){return Ze.state.ephemeral.catalog.find(t=>t.entry.id===e)}function ps(e){return Ze.state.ephemeral.installed.find(t=>t.id===e)}const wx={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=ps(n);if(r){e.scrollback.push({kind:"status",text:`${n} is already installed (v${r.version})`,level:"warn",ts:Date.now()});return}const s=sv(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 a=await Xa(s.latest,s.sourceRegistry),o=Ja(s,s.latest);let l;s.latest.serverBundleUrl&&(l=await rl(s.latest,s.sourceRegistry));const c={id:o.id,type:o.type,label:s.entry.label,version:o.version,contractVersion:o.contractVersion,sourceRegistry:o.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:s.latest.requires?.map(f=>f.id)??[]},u=await Xo(c,a,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(b=>b.id).join(", ")}`),e.scrollback.push({kind:"status",text:f,level:"error",ts:Date.now()});return}const d=await cl(a,o);d.success||e.scrollback.push({kind:"status",text:`server ok but local hot-load failed: ${d.error}`,level:"warn",ts:Date.now()}),await Ze.refreshInstalled(),e.scrollback.push({kind:"status",text:`installed ${n} v${s.latest.version}`,level:"info",ts:Date.now()})}catch(a){e.scrollback.push({kind:"status",text:`install failed: ${a instanceof Error?a.message:String(a)}`,level:"error",ts:Date.now()})}}},kx={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(!ps(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 Ze.uninstallPackage(n),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()})}}},xx={name:"update",summary:"Update an installed package (sh3-store:update <id> [version]). When version is omitted, bumps to latest; with a version, installs that exact version (downgrade or same-version reinstall allowed).",async run(e,t){const n=t[0],r=t[1];if(!n){e.scrollback.push({kind:"status",text:"usage: sh3-store:update <package-id> [version]",level:"warn",ts:Date.now()});return}const s=ps(n);if(!s){e.scrollback.push({kind:"status",text:`package "${n}" is not installed`,level:"error",ts:Date.now()});return}const a=s.version,o=r&&r===a?"reinstalling":r?`updating ${n} from v${a} to v${r}`:`updating ${n} from v${a} to latest`;e.scrollback.push({kind:"status",text:o.startsWith("reinstalling")?`reinstalling ${n} v${r}…`:`${o}…`,level:"info",ts:Date.now()});const l=async(c,u)=>(e.scrollback.push({kind:"status",text:`permission change required (added: ${c.join(", ")||"none"}; removed: ${u.join(", ")||"none"}) — open the store and use the Update button to review and apply.`,level:"warn",ts:Date.now()}),!1);try{await Ze.updatePackage(n,l,r);const c=r??ps(n)?.version??"?";e.scrollback.push({kind:"status",text:r&&r===a?`reinstalled ${n} v${c}`:`updated ${n} v${c}`,level:"info",ts:Date.now()})}catch(c){e.scrollback.push({kind:"status",text:`update failed: ${c instanceof Error?c.message:String(c)}`,level:"error",ts:Date.now()})}}},Sx={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=ps(n),s=sv(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 a=[];a.push(`--- ${n} ---`),r?(a.push(" installed: yes"),a.push(` version: ${r.version}`),a.push(` type: ${r.type}`),a.push(` contract: v${r.contractVersion}`),a.push(` source: ${r.sourceRegistry}`),r.installedAt&&a.push(` installed: ${r.installedAt}`)):a.push(" installed: no"),s?(a.push(" catalog: yes"),a.push(` latest: ${s.latest.version}`),a.push(` label: ${s.entry.label}`),a.push(` author: ${s.entry.author.name}`),a.push(` desc: ${s.entry.description}`)):a.push(" catalog: no (not in any configured registry)"),e.scrollback.push({kind:"text",stream:"stdout",chunks:[a.join(`
12
+ `)+`
13
+ `],ts:Date.now()})}};function Ex(e,t){const n=e.split(".").map(a=>parseInt(a,10)||0),r=t.split(".").map(a=>parseInt(a,10)||0),s=Math.max(n.length,r.length);for(let a=0;a<s;a++){const o=n[a]??0,l=r[a]??0;if(o>l)return!0;if(o<l)return!1}return!1}function Ix(e,t){if(t===void 0)return e.latest;const n=e.entry.versions.find(r=>r.version===t);if(!n)throw new Error(`version ${t} not in catalog for ${e.entry.id}`);return n}function Ax(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 Ze;const Cx={manifest:{id:"sh3-store",label:"Package Store",version:fn,views:[{id:"sh3-store:browse",label:"Store"}]},activate(e){const t=e.env({registries:[]}),n=e.state({ephemeral:{catalog:[],installed:[],updatable:{},loading:!1,error:null}});function r(){const f={};for(const p of n.ephemeral.installed){const b=n.ephemeral.catalog.find(x=>x.entry.id===p.id);b&&Ex(b.latest.version,p.version)&&(f[p.id]=b)}n.ephemeral.updatable=f}async function s(){n.ephemeral.loading=!0,n.ephemeral.error=null;try{const f=await Ff(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 a(){try{const f=await Dw();n.ephemeral.installed=f.map(p=>({id:p.id,type:p.type,version:p.version,sourceRegistry:p.sourceRegistry??"",contractVersion:p.contractVersion??"",installedAt:p.installedAt??"",permissions:[]})),r()}catch(f){console.warn("[sh3-store] Failed to list installed packages:",f instanceof Error?f.message:f);try{const p=await H0();n.ephemeral.installed=p,r()}catch{}}}async function o(f){const p=[...t.registries];p.includes(f)||(p.push(f),await e.envUpdate({registries:p}))}async function l(f){const p=t.registries.filter(b=>b!==f);await e.envUpdate({registries:p})}async function c(f,p,b){let x;if(b===void 0?x=n.ephemeral.updatable[f]:x=n.ephemeral.catalog.find(L=>L.entry.id===f),!x)return;const g=n.ephemeral.installed.find(L=>L.id===f);if(!g)return;const y=Ix(x,b),k=await Xa(y,x.sourceRegistry);let _;y.serverBundleUrl&&(_=await rl(y,x.sourceRegistry));const m=Ja(x,y),I=await Ps(k),D=ll(I);let T=[];try{const L=await V0(f);L?.permissions&&(T=L.permissions)}catch{}const{added:j,removed:z}=Ax(T,D);if((j.length>0||z.length>0)&&p&&!await p(j,z))return;const R=await nv(f),M={...g,permissions:T},C={id:m.id,type:m.type,label:x.entry.label,version:m.version,contractVersion:m.contractVersion,sourceRegistry:m.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:y.requires?.map(L=>L.id)??[]},P=await Xo(C,k,_);if(!P.ok){let L=P.error??"Server update failed";throw P.code==="missing-shards"&&P.missing&&(L=`missing required shard(s): ${P.missing.map(V=>V.id).join(", ")}`),new Error(L)}const B=await cl(k,m,{loaded:I});if(!B.success){if(R)try{await tv(f,R,M)}catch(L){console.warn(`[sh3-store] Rollback failed for "${f}":`,L instanceof Error?L.message:L)}throw new Error(B.error??"Local install failed during update")}await a()}async function u(f){await jw(f),await U0(f),await a()}Ze={env:t,state:n,get isAdmin(){return e.isAdmin},refreshCatalog:s,refreshInstalled:a,updatePackage:c,uninstallPackage:u,addRegistry:o,removeRegistry:l};const d={mount(f,p){const b=Ne(yx,{target:f});return{unmount(){Ge(b)}}}};e.registerView("sh3-store:browse",d),e.registerVerb(wx),e.registerVerb(kx),e.registerVerb(Sx),e.registerVerb(xx),a()},autostart(){Ze.refreshCatalog()}};function Tx(e,t,n,r){return new Promise(s=>{const a={mode:"update",pkg:{label:e.label,version:t},fromVersion:e.version,added:n,removed:r,onConfirm:()=>{o.close(),s(!0)},onCancel:()=>{o.close(),s(!1)}},o=yn.open(Zi,a)})}var Rx=A('<p class="error svelte-1tiy4hy"> </p>'),jx=A('<div class="app-update-modal svelte-1tiy4hy"><h2 class="svelte-1tiy4hy">Update available</h2> <p class="svelte-1tiy4hy"><strong> </strong> can be updated from <code class="svelte-1tiy4hy"> </code> to <code class="svelte-1tiy4hy"> </code>.</p> <p class="hint svelte-1tiy4hy">Package id: <code class="svelte-1tiy4hy"> </code></p> <!> <div class="actions svelte-1tiy4hy"><button type="button" class="primary svelte-1tiy4hy"> </button> <button type="button" class="svelte-1tiy4hy">Cancel</button></div></div>');function Dx(e,t){re(t,!0);let n=F(!1),r=F(null);async function s(){if(!i(n)){S(n,!0),S(r,null);try{await t.onConfirm(),t.close()}catch(T){S(r,T.message,!0)}finally{S(n,!1)}}}var a=jx(),o=w(h(a),2),l=h(o),c=h(l,!0);v(l);var u=w(l,2),d=h(u);v(u);var f=w(u,2),p=h(f);v(f),Gt(),v(o);var b=w(o,2),x=w(h(b)),g=h(x,!0);v(x),v(b);var y=w(b,2);{var k=T=>{var j=Rx(),z=h(j,!0);v(j),N(()=>O(z,i(r))),E(T,j)};K(y,T=>{i(r)&&T(k)})}var _=w(y,2),m=h(_),I=h(m,!0);v(m);var D=w(m,2);v(_),v(a),N(()=>{O(c,t.appLabel),O(d,`v${t.fromVersion??""}`),O(p,`v${t.toVersion??""}`),O(g,t.appId),m.disabled=i(n),O(I,i(n)?"Updating…":"Update"),D.disabled=i(n)}),H("click",m,s),H("click",D,function(...T){t.close?.apply(this,T)}),E(e,a),se()}le(["click"]);var Px=A('<p class="error svelte-86mxbl"> </p>'),Mx=A(`<div class="uninstall-dialog svelte-86mxbl"><h2 class="svelte-86mxbl"> </h2> <p class="hint svelte-86mxbl">Package id: <code class="svelte-86mxbl"> </code> · current version: <code class="svelte-86mxbl"> </code></p> <p class="svelte-86mxbl">The package will be removed from this server. App data stored in your
14
+ browser will remain until you clear it manually.</p> <!> <div class="actions svelte-86mxbl"><button type="button" class="danger svelte-86mxbl"> </button> <button type="button" class="svelte-86mxbl">Cancel</button></div></div>`);function Ox(e,t){re(t,!0);let n=F(!1),r=F(null);async function s(){if(!i(n)){S(n,!0),S(r,null);try{await t.onConfirm(),t.close()}catch(m){S(r,m.message,!0)}finally{S(n,!1)}}}var a=Mx(),o=h(a),l=h(o);v(o);var c=w(o,2),u=w(h(c)),d=h(u,!0);v(u);var f=w(u,2),p=h(f);v(f),v(c);var b=w(c,4);{var x=m=>{var I=Px(),D=h(I,!0);v(I),N(()=>O(D,i(r))),E(m,I)};K(b,m=>{i(r)&&m(x)})}var g=w(b,2),y=h(g),k=h(y,!0);v(y);var _=w(y,2);v(g),v(a),N(()=>{O(l,`Uninstall ${t.appLabel??""}?`),O(d,t.appId),O(p,`v${t.version??""}`),y.disabled=i(n),O(k,i(n)?"Uninstalling…":"Uninstall"),_.disabled=i(n)}),H("click",y,s),H("click",_,function(...m){t.close?.apply(this,m)}),E(e,a),se()}le(["click"]);var zx=A('<span class="badge built-in svelte-1w44jyn">built-in</span>'),Lx=A('<section class="description svelte-1w44jyn"><span class="label svelte-1w44jyn">Description</span> <p class="svelte-1w44jyn"> </p></section>'),Nx=A('<p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Author</span> <span> </span></p>'),qx=A('<li><code class="svelte-1w44jyn"> </code></li>'),Vx=A('<section class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Required shards</span> <ul class="chips svelte-1w44jyn"></ul></section>'),Bx=A('<li><code class="svelte-1w44jyn"> </code></li>'),Fx=A('<section class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Permissions</span> <ul class="chips svelte-1w44jyn"></ul></section>'),Ux=A('<p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Installed</span><span> </span></p>'),Hx=A('<section class="installed svelte-1w44jyn"><p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Source registry</span><code class="svelte-1w44jyn"> </code></p> <!> <p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Contract</span><code class="svelte-1w44jyn"> </code></p></section>'),Kx=A('<div class="app-info-modal svelte-1w44jyn"><header class="svelte-1w44jyn"><h2 class="svelte-1w44jyn"> </h2> <code class="id svelte-1w44jyn"> </code></header> <p class="version svelte-1w44jyn"><span class="label svelte-1w44jyn">Version</span> <code class="svelte-1w44jyn"> </code> <!></p> <!> <!> <!> <!> <!> <div class="actions svelte-1w44jyn"><button type="button" class="svelte-1w44jyn">Close</button></div></div>');function Wx(e,t){re(t,!0);let n=W(()=>{if(!t.installed)return null;const M=new Date(t.installed.installedAt);return isNaN(M.getTime())?t.installed.installedAt:M.toLocaleString()});var r=Kx(),s=h(r),a=h(s),o=h(a,!0);v(a);var l=w(a,2),c=h(l,!0);v(l),v(s);var u=w(s,2),d=w(h(u),2),f=h(d);v(d);var p=w(d,2);{var b=M=>{var C=zx();E(M,C)};K(p,M=>{t.installed||M(b)})}v(u);var x=w(u,2);{var g=M=>{var C=Lx(),P=w(h(C),2),B=h(P,!0);v(P),v(C),N(()=>O(B,t.catalogEntry.description)),E(M,C)};K(x,M=>{t.catalogEntry?.description&&M(g)})}var y=w(x,2);{var k=M=>{var C=Nx(),P=w(h(C),2),B=h(P,!0);v(P),v(C),N(()=>O(B,t.catalogEntry.author.name)),E(M,C)};K(y,M=>{t.catalogEntry?.author?.name&&M(k)})}var _=w(y,2);{var m=M=>{var C=Vx(),P=w(h(C),2);he(P,21,()=>t.manifest.requiredShards,mt,(B,L)=>{var U=qx(),V=h(U),q=h(V,!0);v(V),v(U),N(()=>O(q,i(L))),E(B,U)}),v(P),v(C),E(M,C)};K(_,M=>{t.manifest.requiredShards.length>0&&M(m)})}var I=w(_,2);{var D=M=>{var C=Fx(),P=w(h(C),2);he(P,21,()=>t.manifest.permissions,mt,(B,L)=>{var U=Bx(),V=h(U),q=h(V,!0);v(V),v(U),N(()=>O(q,i(L))),E(B,U)}),v(P),v(C),E(M,C)};K(I,M=>{t.manifest.permissions&&t.manifest.permissions.length>0&&M(D)})}var T=w(I,2);{var j=M=>{var C=Hx(),P=h(C),B=w(h(P)),L=h(B,!0);v(B),v(P);var U=w(P,2);{var V=ae=>{var Y=Ux(),J=w(h(Y)),ie=h(J,!0);v(J),v(Y),N(()=>O(ie,i(n))),E(ae,Y)};K(U,ae=>{i(n)&&ae(V)})}var q=w(U,2),G=w(h(q)),X=h(G);v(G),v(q),v(C),N(()=>{O(L,t.installed.sourceRegistry),O(X,`v${t.installed.contractVersion??""}`)}),E(M,C)};K(T,M=>{t.installed&&M(j)})}var z=w(T,2),R=h(z);v(z),v(r),N(()=>{O(o,t.manifest.label),O(c,t.manifest.id),O(f,`v${t.manifest.version??""}`)}),H("click",R,function(...M){t.close?.apply(this,M)}),E(e,r),se()}le(["click"]);function Yx(e){return!e.admin||e.builtin}function gc(e){return e.admin?e.builtin?" · built-in":"":" · admin only"}function qn(){const e=Vo();return!e||e.type!=="app"?null:e.ref}function Qa(e){return nr().find(t=>t.id===e)}function Gx(e){return!Ze.state.ephemeral.installed.some(t=>t.id===e)}function mi(e){return{admin:ht(),builtin:Gx(e)}}function Xx(e){const t=qn();if(!t)return;const n=Qa(t.appId);if(!n)return;const r=Ze.state.ephemeral.installed.find(o=>o.id===t.appId)??null,s=Ze.state.ephemeral.catalog.find(o=>o.entry.id===t.appId)?.entry??null,a={manifest:n,installed:r,catalogEntry:s};yn.open(Wx,a)}async function Jx(e){const t=qn();if(!t)return;const{appId:n}=t,r=Sn.notify("Checking for updates…",{duration:1/0});try{await Ze.refreshCatalog()}finally{r.close()}const s=Ze.state.ephemeral.updatable[n],a=Ze.state.ephemeral.installed.find(c=>c.id===n),o=Qa(n)?.label??n;if(!s||!a){Sn.notify(`${o} is up to date`,{level:"info",duration:2500});return}const l={appId:n,appLabel:o,fromVersion:a.version,toVersion:s.latest.version,onConfirm:async()=>{try{await Ze.updatePackage(n,(c,u)=>Tx({label:a.id,version:a.version},s.latest.version,c,u)),Sn.notify(`Updated to v${s.latest.version}`,{level:"success"})}catch(c){throw Sn.notify(`Update failed: ${c.message}`,{level:"error",duration:5e3}),c}}};yn.open(Dx,l)}function Zx(e){const t=qn();if(!t)return;const{appId:n}=t,r=Ze.state.ephemeral.installed.find(o=>o.id===n);if(!r)return;const s=Qa(n)?.label??n,a={appId:n,appLabel:s,version:r.version,onConfirm:async()=>{try{await Ze.uninstallPackage(n),Sn.notify(`Uninstalled ${s}`,{level:"success"})}catch(o){throw Sn.notify(`Uninstall failed: ${o.message}`,{level:"error",duration:5e3}),o}}};yn.open(Ox,a)}function Qx(e){const t=()=>{const l=qn();if(!l)return"Info…";const c=Qa(l.appId);return c?`Info — ${c.label} v${c.version}`:`Info — ${l.appId}`},n=()=>{const l=qn();return l?`Check for updates${gc(mi(l.appId))}`:"Check for updates"},r=()=>{const l=qn();return l?`Uninstall…${gc(mi(l.appId))}`:"Uninstall…"},s=()=>{const l=qn();return l?Yx(mi(l.appId)):!0},o=[{id:"app.info",label:t,scope:{element:"app"},contextItem:!0,group:"info",run:Xx},{id:"app.checkUpdate",label:n,scope:{element:"app"},contextItem:!0,group:"update",disabled:s,run:Jx},{id:"app.uninstall",label:r,scope:{element:"app"},contextItem:!0,group:"uninstall",disabled:s,run:Zx}].map(l=>e.actions.register(l));return()=>o.forEach(l=>l())}const $x={manifest:{id:"__sh3core__",label:"SH3 Core",version:fn,views:[{id:"sh3core:home",label:"Home"},{id:"shell:keys-and-peers",label:"Keys & Peers"}]},activate(e){const t=e.state({user:{bindings:{}}});ty(t.user),e.actions.register({id:"sh3.palette.open",label:"Command Palette…",scope:["home","app"],defaultShortcut:"Mod+K",contextItem:!1,paletteItem:!1,run(a){wr(async()=>{const{openPalette:o}=await Promise.resolve().then(()=>cw);return{openPalette:o}},[]).then(({openPalette:o})=>o())}}),e.actions.register({id:"sh3.app.reset-layout",label:"Reset Current Layout",scope:["app"],paletteItem:!0,contextItem:!1,run(){yn.open(P0,{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:()=>My()})}});const n={mount(a,o){const l=Ne(k0,{target:a});return{unmount(){Ge(l)}}}},r={mount(a,o){const l=Ne(j0,{target:a});return{unmount(){Ge(l)}}}};e.registerView("sh3core:home",n),e.registerView("shell:keys-and-peers",r),Qx(e),e.actions.register({id:"sh3.app.launch",label:"Launch app",scope:["home","app"],submenu:!0,paletteItem:!0});const s=new Map;Es(()=>{xe(()=>{const a=new Set;for(const[o,l]of Cn){if(a.add(o),s.has(o))continue;const c=e.actions.register({id:`sh3.app.launch:${o}`,label:l.manifest.label,scope:["home","app"],submenuOf:"sh3.app.launch",run(){bn(o)}});s.set(o,c)}for(const o of[...s.keys()])a.has(o)||(s.get(o)(),s.delete(o))})})},autostart(){}},eS={id:"shell",label:"Shell",version:fn,views:[{id:"shell:terminal",label:"Shell",standalone:!0}],permissions:[]},tS=2e3;let nS=0;function rS(){return`e${++nS}`}class sS{#e;get entries(){return i(this.#e)}set entries(t){S(this.#e,t,!0)}constructor(t=tS){this.#e=F(oe([])),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:rS()};this.entries.push(r),this.entries.length>this.cap&&this.entries.splice(0,this.entries.length-this.cap)}clear(){this.entries.length=0}}var aS=A("<pre> </pre>");function iS(e,t){re(t,!0);const n=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,r=W(()=>t.chunks.join("").replace(n,""));var s=aS();let a;var o=h(s,!0);v(s),N(()=>{a=ce(s,1,"shell-text svelte-ypr8s",null,a,{stderr:t.stream==="stderr"}),O(o,i(r))}),E(e,s),se()}var oS=A('<div class="shell-prompt svelte-u0gb59"><span class="shell-prompt-cwd svelte-u0gb59"> </span> <span class="shell-prompt-arrow svelte-u0gb59">❯</span> <span class="shell-prompt-line svelte-u0gb59"> </span></div>');function lS(e,t){var n=oS(),r=h(n),s=h(r,!0);v(r);var a=w(r,4),o=h(a,!0);v(a),v(n),N(()=>{O(s,t.cwd),O(o,t.line)}),E(e,n)}var cS=A("<div> </div>");function uS(e,t){var n=cS();let r;var s=h(n,!0);v(n),N(()=>{r=ce(n,1,"shell-status svelte-nfxdpt",null,r,{info:t.level==="info",warn:t.level==="warn",error:t.level==="error"}),O(s,t.text)}),E(e,n)}var dS=A('<div class="shell-rich svelte-1rnhl05"><!></div>');function fS(e,t){var n=dS(),r=h(n);As(r,()=>t.component,(s,a)=>{a(s,Ts(()=>t.componentProps))}),v(n),E(e,n)}var vS=A('<div class="shell-scrollback svelte-isy3jt"><div class="content"></div></div>');function hS(e,t){re(t,!0);let n=F(null),r=F(null),s=!0;const a=4;function o(d){return d.scrollHeight-d.scrollTop-d.clientHeight<=a}function l(){i(n)&&(s=o(i(n)))}xe(()=>{if(!i(r)||!i(n))return;const d=new ResizeObserver(()=>{i(n)&&s&&(i(n).scrollTop=i(n).scrollHeight)});return d.observe(i(r)),()=>d.disconnect()});var c=vS(),u=h(c);he(u,21,()=>t.scrollback.entries,d=>d.id,(d,f)=>{var p=Ue(),b=ve(p);{var x=_=>{iS(_,{get stream(){return i(f).stream},get chunks(){return i(f).chunks}})},g=_=>{lS(_,{get cwd(){return i(f).cwd},get line(){return i(f).line}})},y=_=>{uS(_,{get text(){return i(f).text},get level(){return i(f).level}})},k=_=>{fS(_,{get component(){return i(f).component},get componentProps(){return i(f).props}})};K(b,_=>{i(f).kind==="text"?_(x):i(f).kind==="prompt"?_(g,1):i(f).kind==="status"?_(y,2):i(f).kind==="rich"&&_(k,3)})}E(d,p)}),v(u),Pe(u,d=>S(r,d),()=>i(r)),v(c),Pe(c,d=>S(n,d),()=>i(n)),De("scroll",c,l),E(e,c),se()}var pS=A('<div><span class="shell-input-cwd svelte-1dfv2gk"> </span> <span class="shell-input-arrow svelte-1dfv2gk">❯</span> <input type="text" spellcheck="false" autocomplete="off" autocapitalize="off" class="shell-input-field svelte-1dfv2gk"/></div>');function mS(e,t){re(t,!0);let n=F(""),r=F(null),s=F(""),a=F(null);function o(){if(t.locked)return;const g=i(n);g.trim()&&(S(n,""),S(r,null),t.onSubmit(g))}function l(){t.history.length!==0&&(i(r)===null?(S(s,i(n),!0),S(r,t.history.length-1)):i(r)>0&&Er(r,-1),S(n,t.history[i(r)]??"",!0))}function c(){i(r)!==null&&(i(r)<t.history.length-1?(Er(r),S(n,t.history[i(r)],!0)):(S(r,null),S(n,i(s),!0)))}function u(g){if(t.locked){if(g.ctrlKey&&g.key==="c"){g.preventDefault(),t.session.send({t:"signal",sig:"SIGINT"});return}if(g.ctrlKey&&g.key==="d"){g.preventDefault(),t.session.send({t:"signal",sig:"EOF"});return}g.preventDefault();return}g.key==="Enter"?(g.preventDefault(),o()):g.key==="ArrowUp"?(g.preventDefault(),l()):g.key==="ArrowDown"?(g.preventDefault(),c()):g.ctrlKey&&g.key==="c"?(g.preventDefault(),S(n,""),S(r,null)):g.ctrlKey&&g.key==="l"&&(g.preventDefault(),S(n,"clear"),o())}xe(()=>{!t.locked&&i(a)&&i(a).focus()});var d=pS();let f;var p=h(d),b=h(p,!0);v(p);var x=w(p,4);ge(x),Pe(x,g=>S(a,g),()=>i(a)),v(d),N(()=>{f=ce(d,1,"shell-input svelte-1dfv2gk",null,f,{locked:t.locked}),O(b,t.cwd),x.disabled=t.locked}),H("keydown",x,u),Ee(x,()=>i(n),g=>S(n,g)),E(e,d),se()}le(["keydown"]);const _c=[1e3,2e3,5e3,1e4];class bS{#e;get connected(){return i(this.#e)}set connected(t){S(this.#e,t,!0)}#t;get cwd(){return i(this.#t)}set cwd(t){S(this.#t,t,!0)}#n;get env(){return i(this.#n)}set env(t){S(this.#n,t,!0)}#a;get history(){return i(this.#a)}set history(t){S(this.#a,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=F(!1),this.#t=F(""),this.#n=F(oe({})),this.#a=F(oe([]))}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=_c[Math.min(this.backoffIndex,_c.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 gS{list(){return Bo()}get(t){return rc(t)}resolve(t,n={}){const r=t.trim();if(!r)return{kind:"forward",line:t};if(r.startsWith("$ "))return{kind:"forward",line:r.slice(2)};if(r==="$")return{kind:"forward",line:""};const s=r.indexOf(" "),a=s===-1?r:r.slice(0,s),o=s===-1?"":r.slice(s+1),l=rc(a);if(!l)return{kind:"forward",line:t};if(n.globalOnly&&!l.globalVerb)return{kind:"forward",line:t};const c=o.length?o.split(/\s+/):[];return{kind:"local",verb:l,args:c,line:t}}}class _S{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 a=`HTTP ${s.status}`;try{const o=await s.json();o.error&&(a=o.error)}catch{}throw new Error(a)}return s}}class yS{#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 wS={id:"bash",label:"Bash",requiresRole:"admin",transport:"ws",autoRelocate:!1},kS={id:"sh3",label:"SH3",transport:"none",autoRelocate:!0};function xS(e){e.register(wS),e.register(kS)}function av(e){return`sh3.shell.lastMode.${e}`}function iv(e){try{return globalThis.localStorage?.getItem(av(e))??null}catch{return null}}function yc(e,t){try{globalThis.localStorage?.setItem(av(e),t)}catch{}}function SS(e,t,n){const r=iv(t);if(r){const a=e.get(r);if(a&&(!a.requiresRole||a.requiresRole===n))return a}const s=n==="admin"?"bash":"sh3";return e.get(s)}function $s(e,t){return e.entries.find(n=>n.kind==="rich"&&n.id===t)}function ES(e,t){return{update(n){const r=$s(e,t);r&&Object.assign(r.props,n)}}}function wc(e){return e.entries[e.entries.length-1].id}function kc(e){const t=e.scrollback;return{text(n,r){t.push({kind:"text",stream:n,chunks:[r],ts:Date.now()})},status(n,r){t.push({kind:"status",text:r,level:n,ts:Date.now()})},rich(n,r){return t.push({kind:"rich",component:n,props:{...r},ts:Date.now()}),ES(t,wc(t))},stream(n,r){t.push({kind:"rich",component:n,props:{...r,__streamState:"streaming"},ts:Date.now()});const s=wc(t);return{append(a){const o=$s(t,s);o&&Object.assign(o.props,a)},complete(){const a=$s(t,s);a&&(a.props.__streamState="complete")},error(a){const o=$s(t,s);o&&(o.props.__streamState="error"),t.push({kind:"status",text:`mode: ${a?.message??String(a)}`,level:"error",ts:Date.now()})}}},busy(n){const r=e.busy(n);let s=!1;return{clear(){s||(s=!0,r())}}},invoke(n,r){return e.invoke(n,r)}}}function IS(e){let t=null,n=!1;async function r(a,o){const l=e.mode();if(a===l.id)throw new Error(`invoke: cannot invoke own mode '${a}'`);if(a==="sh3"){const d=e.resolver.resolve(o,{globalOnly:!1});if(d.kind==="forward"){const f=o.trim().split(/\s+/)[0]??"";throw new Error(`invoke: unknown sh3 verb '${f}'`)}await d.verb.run({shell:e.shell,scrollback:e.scrollback,session:e.session,cwd:e.cwd(),dispatch:s,fs:e.fs},d.args);return}if(a==="bash"){if(e.role()!=="admin")throw new Error("invoke: 'bash' requires admin role");n||(n=!0,e.session.connect()),e.session.send({t:"submit",line:o});return}const c=e.customMode?.(a)??null;if(!c)throw new Error(`invoke: unknown mode '${a}'`);if(c.requiresRole&&c.requiresRole!==e.role())throw new Error(`invoke: mode '${a}' requires ${c.requiresRole} role`);if(c.runsOn==="server")throw new Error("invoke: server-side modes are not yet supported");const u=kc({scrollback:e.scrollback,busy:e.busy,invoke:r});await c.dispatch({line:o,cwd:e.cwd(),signal:t?.signal??new AbortController().signal},u)}async function s(a){t?.abort();const o=new AbortController;t=o;const l=e.mode();if(e.session.history.push(a),l.transport==="none"&&a.trimStart().startsWith("$ ")){e.scrollback.push({kind:"prompt",cwd:e.cwd(),line:a,ts:Date.now()}),e.scrollback.push({kind:"status",text:"shell: server shell not available in user mode",level:"error",ts:Date.now()});return}const c=e.resolver.resolve(a,{globalOnly:l.id!=="sh3"});if(c.kind==="local"){l.transport==="ws"&&e.session.send({t:"history-log",line:a}),e.scrollback.push({kind:"prompt",cwd:e.cwd(),line:a,ts:Date.now()});try{await c.verb.run({shell:e.shell,scrollback:e.scrollback,session:e.session,cwd:e.cwd(),dispatch:s,fs:e.fs},c.args)}catch(d){e.scrollback.push({kind:"status",text:`shell: verb ${c.verb.name} threw — ${d.message}`,level:"error",ts:Date.now()})}return}if(l.transport==="ws"){e.session.send({t:"submit",line:c.line});return}if(l.transport==="custom"){e.scrollback.push({kind:"prompt",cwd:e.cwd(),line:c.line,ts:Date.now()});const d=e.customMode?.(l.id)??null;if(!d){e.scrollback.push({kind:"status",text:`mode '${l.id}' is no longer available`,level:"error",ts:Date.now()});return}if(d.runsOn==="server"){e.scrollback.push({kind:"status",text:"server-side modes are not yet supported (planned for a future release)",level:"error",ts:Date.now()});return}const f=kc({scrollback:e.scrollback,busy:e.busy,invoke:r}),p=e.busy();try{await d.dispatch({line:c.line,cwd:e.cwd(),signal:o.signal},f)}catch(b){b?.name==="AbortError"?e.scrollback.push({kind:"status",text:"mode dispatch aborted",level:"info",ts:Date.now()}):e.scrollback.push({kind:"status",text:`mode '${l.id}' threw — ${b?.message??String(b)}`,level:"error",ts:Date.now()})}finally{p()}return}const u=c.line.split(/\s+/)[0]??"";e.scrollback.push({kind:"prompt",cwd:e.cwd(),line:c.line,ts:Date.now()}),e.scrollback.push({kind:"status",text:`unknown verb: ${u}`,level:"error",ts:Date.now()})}return{dispatch:s,cancel:()=>t?.abort()}}async function AS(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 CS=A('<div class="toolbar svelte-gnowwz"><div class="toolbar-slots svelte-gnowwz"></div></div>');function TS(e,t){re(t,!0);let n=Z(t,"slotProps",19,()=>({})),r=W(()=>t.registry.list(t.ctx));var s=CS(),a=h(s);he(a,21,()=>i(r),o=>o.id,(o,l)=>{const c=W(()=>i(l).component);var u=Ue(),d=ve(u);As(d,()=>i(c),(f,p)=>{p(f,Ts(()=>n()[i(l).id]??{}))}),E(o,u)}),v(a),v(s),E(e,s),se()}class RS{#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 jS=A('<span class="mode-label svelte-1i4cqlj"> </span>');function DS(e,t){re(t,!0);let n=W(()=>t.modes.map(l=>({value:l.id,label:l.label})));var r=Ue(),s=ve(r);{var a=l=>{Wf(l,{get options(){return i(n)},get value(){return t.mode.id},size:"sm",onchange:c=>t.onSelect(c)})},o=l=>{var c=jS(),u=h(c,!0);v(c),N(()=>O(u,t.mode.label)),E(l,c)};K(s,l=>{t.modes.length>=2?l(a):t.modes.length===1&&l(o,1)})}E(e,r),se()}var PS=A('<button class="focus-lock-btn svelte-1q6gbap"> </button>');function MS(e,t){var n=PS(),r=h(n,!0);v(n),N(()=>{ne(n,"title",t.locked?"Unlock focus":"Lock focus"),O(r,t.locked?"🔒":"🔓")}),H("click",n,function(...s){t.onToggle?.apply(this,s)}),E(e,n)}le(["click"]);var OS=A('<span class="target-shard svelte-1nn2m6x" title="Target shard"> </span>');function zS(e,t){var n=OS(),r=h(n);v(n),N(()=>O(r,`→ ${t.target??"—"??""}`)),E(e,n)}var LS=A('<span class="label"> </span>'),NS=A('<div class="busy svelte-7wyurd" role="status" aria-live="polite"><span class="spinner svelte-7wyurd" aria-hidden="true"></span> <!></div>');function qS(e,t){var n=Ue(),r=ve(n);{var s=a=>{var o=NS(),l=w(h(o),2);{var c=u=>{var d=LS(),f=h(d,!0);v(d),N(()=>O(f,t.label)),E(u,d)};K(l,u=>{t.label&&u(c)})}v(o),E(a,o)};K(r,a=>{t.active&&a(s)})}E(e,n)}var VS=A('<div class="shell-terminal svelte-13komre"><!> <!> <!></div>');function BS(e,t){re(t,!0);const n=new sS,r=new gS,s=new _S,a=new yS;xS(a);let o=F(oe(we(()=>t.contributions.list(ts))));xe(()=>{const V=t.contributions.onChange(ts,()=>{S(o,t.contributions.list(ts),!0)});return()=>V()});function l(V){return{id:V.id,label:V.label,requiresRole:V.requiresRole,transport:"custom",autoRelocate:V.autoRelocate??!1}}let c=W(()=>[...a.list(t.role),...i(o).filter(V=>!V.requiresRole||V.requiresRole===t.role).map(l)]),u=F(oe(we(()=>{const V=iv(t.userId);if(V){const G=[...a.list(t.role),...i(o).filter(X=>!X.requiresRole||X.requiresRole===t.role).map(l)].find(X=>X.id===V);if(G)return G}return SS(a,t.userId,t.role)})));function d(V){const q=i(c).find(G=>G.id===V);q&&(q.requiresRole&&q.requiresRole!==t.role||(m(),S(u,q,!0),yc(t.userId,V),q.transport!=="ws"&&n.push({kind:"status",text:"mode switch: reload to take effect for server-shell changes",level:"info",ts:Date.now()})))}xe(()=>{if(!i(c).find(V=>V.id===i(u).id)){const V=i(c).find(q=>q.id==="sh3")??i(c)[0];if(V){const q=i(u).id;S(u,V,!0),yc(t.userId,V.id),n.push({kind:"status",text:`mode '${q}' is no longer available — switched to '${V.id}'`,level:"warn",ts:Date.now()})}}});const f=we(()=>({...t.shell,setMode:V=>{const q=i(c).find(G=>G.id===V);return!q||q.requiresRole&&q.requiresRole!==t.role?!1:(d(V),!0)},listModes:()=>i(c).map(V=>({id:V.id,label:V.label}))})),p=we(()=>new bS(t.wsUrl));let b=0,x=F(oe(new Map));function g(V){const q=++b;i(x).set(q,V),S(x,new Map(i(x)),!0);let G=!1;return()=>{G||(G=!0,i(x).delete(q),S(x,new Map(i(x)),!0))}}let y=W(()=>i(x).size>0),k=W(()=>{if(i(x).size===0)return null;let V;for(const q of i(x).values())V=q;return V??null});const{dispatch:_,cancel:m}=we(()=>IS({mode:()=>i(u),role:()=>t.role,resolver:r,scrollback:n,session:p,shell:f,fs:s,cwd:()=>p.cwd,busy:g,customMode:V=>i(o).find(q=>q.id===V)??null}));let I=F(!1),D=F(!1),T=F(null);const j=new RS;j.register({id:"busy",order:5,visible:()=>!0,component:qS}),j.register({id:"mode",order:10,visible:()=>!0,component:DS}),j.register({id:"focus-lock",order:20,visible:V=>V.mode.id==="sh3",component:MS}),j.register({id:"target-shard",order:30,visible:V=>V.mode.id==="sh3",component:zS});function z(V){if(V.type==="tabs")return V.tabs[V.activeTab]?.viewId??null;if(V.type==="split"){for(const q of V.children){const G=z(q);if(G!==null)return G}return null}return V.viewId??null}function R(){try{const V=Ct(),q=z(V.docked);if(!q)return null;const G=q.indexOf(":");return G>=0?q.slice(0,G):q}catch{return null}}xe(()=>{const V=R(),q=i(u).autoRelocate,G=i(D);(async()=>{const X=await AS({modeAutoRelocate:q,focusLocked:G,focusedShardId:V,currentShardId:"shell"},s);X.kind==="relocate"&&X.path!==void 0&&(p.cwd=X.path),V&&V!=="shell"?S(T,V,!0):V||S(T,null)})()});function M(V){if(V.t!=="event")return;const q=V.event;switch(q.kind){case"prompt":n.push({kind:"prompt",cwd:q.cwd,line:q.line,ts:q.ts}),S(I,!0);break;case"stdout":n.push({kind:"text",stream:"stdout",chunks:[q.data],ts:q.ts});break;case"stderr":n.push({kind:"text",stream:"stderr",chunks:[q.data],ts:q.ts});break;case"exit":(q.signal||q.code!==null&&q.code!==0)&&n.push({kind:"status",text:q.signal?`shell: process exited (${q.signal})`:`shell: process exited (${q.code})`,level:"error",ts:q.ts}),S(I,!1);break;case"status":n.push({kind:"status",text:q.text,level:q.level,ts:q.ts});break}}let C=null;ko(()=>{C=p.onMessage(M),i(u).transport==="ws"&&p.connect()}),xo(()=>{C?.(),p.close()});var P=VS(),B=h(P);{let V=W(()=>({mode:i(u),role:t.role})),q=W(()=>({busy:{active:i(y),label:i(k)},mode:{mode:i(u),modes:i(c),onSelect:d},"focus-lock":{locked:i(D),onToggle:()=>S(D,!i(D))},"target-shard":{target:i(T)}}));TS(B,{get registry(){return j},get ctx(){return i(V)},get slotProps(){return i(q)}})}var L=w(B,2);hS(L,{get scrollback(){return n}});var U=w(L,2);mS(U,{get cwd(){return p.cwd},get locked(){return i(I)},get history(){return p.history},get session(){return p},get onSubmit(){return _}}),v(P),E(e,P),se()}var FS=A('<tr><td class="svelte-m248jy"><button type="button" class="svelte-m248jy"> </button></td><td class="svelte-m248jy"> </td></tr>'),US=A('<div class="shell-rich-help svelte-m248jy"><table class="svelte-m248jy"><thead><tr><th class="svelte-m248jy">Name</th><th class="svelte-m248jy">Summary</th></tr></thead><tbody></tbody></table></div>');function HS(e,t){re(t,!0);var n=US(),r=h(n),s=w(h(r));he(s,21,()=>t.data.rows,a=>a.name,(a,o)=>{var l=FS(),c=h(l),u=h(c),d=h(u,!0);v(u),v(c);var f=w(c),p=h(f,!0);v(f),v(l),N(()=>{O(d,i(o).name),O(p,i(o).summary)}),H("click",u,()=>t.data.onClickName(i(o).name)),E(a,l)}),v(s),v(r),v(n),E(e,n),se()}le(["click"]);function KS(){return{name:"help",summary:"List verbs or show detail for one.",async run(e){const t=Bo().map(n=>({name:n.name,summary:n.summary}));e.scrollback.push({kind:"rich",component:HS,props:{data:{rows:t,onClickName:n=>e.dispatch(n)}},ts:Date.now()})}}}const WS={name:"clear",summary:"Clear the scrollback (local only — other views are unaffected).",globalVerb:!0,async run(e){e.scrollback.clear()}},YS={name:"mode",summary:"List or switch shell modes. Usage: mode | mode <id>",globalVerb:!0,async run(e,t){const n=Date.now();if(t.length===0){const o=e.shell.listModes().map(l=>` ${l.id.padEnd(12)} ${l.label}`);e.scrollback.push({kind:"text",stream:"stdout",chunks:[["Available modes:",...o].join(`
15
+ `)+`
16
+ `],ts:n});return}const r=t[0];e.shell.setMode(r)||e.scrollback.push({kind:"status",text:`mode: unknown or restricted mode '${r}'`,level:"error",ts:n})}};var GS=A('<li class="svelte-o8m437"><button type="button" class="svelte-o8m437"> </button></li>'),XS=A('<div class="shell-rich-history svelte-o8m437"><ol class="svelte-o8m437"></ol></div>');function JS(e,t){re(t,!0);var n=XS(),r=h(n);he(r,21,()=>t.data.lines,mt,(s,a)=>{var o=GS(),l=h(o),c=h(l,!0);v(l),v(o),N(()=>O(c,i(a))),H("click",l,()=>t.data.onClickLine(i(a))),E(s,o)}),v(r),v(n),E(e,n),se()}le(["click"]);const ZS={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:JS,props:{data:{lines:r,onClickLine:s=>e.dispatch(s)}},ts:Date.now()})}};var QS=A('<tr><td class="svelte-1u5krjz"><button type="button" class="svelte-1u5krjz"> </button></td><td class="svelte-1u5krjz"> </td></tr>'),$S=A('<div class="shell-rich-apps svelte-1u5krjz"><table class="svelte-1u5krjz"><thead><tr><th class="svelte-1u5krjz">ID</th><th class="svelte-1u5krjz">Label</th></tr></thead><tbody></tbody></table></div>');function e3(e,t){re(t,!0);var n=$S(),r=h(n),s=w(h(r));he(s,21,()=>t.data.apps,a=>a.id,(a,o)=>{var l=QS(),c=h(l),u=h(c),d=h(u,!0);v(u),v(c);var f=w(c),p=h(f,!0);v(f),v(l),N(()=>{O(d,i(o).id),O(p,i(o).label)}),H("click",u,()=>t.data.onClickApp(i(o).id)),E(a,l)}),v(s),v(r),v(n),E(e,n),se()}le(["click"]);var t3=A('<div class="shell-rich-appcard svelte-npcp8i"><h3 class="svelte-npcp8i"> </h3> <p class="svelte-npcp8i"><strong>ID:</strong> </p> <p class="svelte-npcp8i"><strong>Shards:</strong> </p></div>');function n3(e,t){re(t,!0);var n=t3(),r=h(n),s=h(r,!0);v(r);var a=w(r,2),o=w(h(a));v(a);var l=w(a,2),c=w(h(l));v(l),v(n),N(u=>{O(s,t.data.label),O(o,` ${t.data.id??""}`),O(c,` ${u??""}`)},[()=>t.data.shards.join(", ")]),E(e,n),se()}const r3={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:e3,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()})}},s3={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:n3,props:{data:{id:t.id,label:t.label,shards:[]}},ts:Date.now()})}};var a3=A('<tr><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td></tr>'),i3=A('<div class="shell-rich-shards svelte-sc3ux4"><table class="svelte-sc3ux4"><thead><tr><th class="svelte-sc3ux4">ID</th><th class="svelte-sc3ux4">Label</th><th class="svelte-sc3ux4">Version</th></tr></thead><tbody></tbody></table></div>');function o3(e,t){re(t,!0);var n=i3(),r=h(n),s=w(h(r));he(s,21,()=>t.data.shards,a=>a.id,(a,o)=>{var l=a3(),c=h(l),u=h(c,!0);v(c);var d=w(c),f=h(d,!0);v(d);var p=w(d),b=h(p,!0);v(p),v(l),N(()=>{O(u,i(o).id),O(f,i(o).label),O(b,i(o).version)}),E(a,l)}),v(s),v(r),v(n),E(e,n),se()}const l3={name:"shards",summary:"List active shards.",async run(e){const t=e.shell.listShards();e.scrollback.push({kind:"rich",component:o3,props:{data:{shards:t}},ts:Date.now()})}};var c3=A('<tr><td class="svelte-15elbr1"> </td><td class="svelte-15elbr1"> </td><td class="svelte-15elbr1"> </td><td class="svelte-15elbr1"><button type="button" class="svelte-15elbr1">Close</button></td></tr>'),u3=A('<div class="shell-rich-views svelte-15elbr1"><table class="svelte-15elbr1"><thead><tr><th class="svelte-15elbr1">Slot ID</th><th class="svelte-15elbr1">View ID</th><th class="svelte-15elbr1">Label</th><th class="svelte-15elbr1">Action</th></tr></thead><tbody></tbody></table></div>');function d3(e,t){re(t,!0);var n=u3(),r=h(n),s=w(h(r));he(s,21,()=>t.data.views,a=>a.slotId,(a,o)=>{var l=c3(),c=h(l),u=h(c,!0);v(c);var d=w(c),f=h(d,!0);v(d);var p=w(d),b=h(p,!0);v(p);var x=w(p),g=h(x);v(x),v(l),N(()=>{O(u,i(o).slotId),O(f,i(o).viewId),O(b,i(o).label)}),H("click",g,()=>t.data.onClose(i(o).slotId)),E(a,l)}),v(s),v(r),v(n),E(e,n),se()}le(["click"]);const f3={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(`
17
+ `),level:"info",ts:Date.now()});return}const n=e.shell.listViewsInCurrentLayout();e.scrollback.push({kind:"rich",component:d3,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()})}},v3={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()})}},h3={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()})}},p3={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(a=>` ${a.floatId.padEnd(24)} ${a.viewId??"-"} ${a.label}`).join(`
18
+ `),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()})}},m3={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 b3=A('<tr><td class="svelte-1w7onag"> </td><td class="svelte-1w7onag"> </td></tr>'),g3=A('<div class="shell-rich-zones svelte-1w7onag"><table class="svelte-1w7onag"><thead><tr><th class="svelte-1w7onag">Shard ID</th><th class="svelte-1w7onag">Zones</th></tr></thead><tbody></tbody></table></div>');function _3(e,t){re(t,!0);var n=g3(),r=h(n),s=w(h(r));he(s,21,()=>t.data.rows,a=>a.shardId,(a,o)=>{var l=b3(),c=h(l),u=h(c,!0);v(c);var d=w(c),f=h(d,!0);v(d),v(l),N(p=>{O(u,i(o).shardId),O(f,p)},[()=>i(o).zones.join(", ")]),E(a,l)}),v(s),v(r),v(n),E(e,n),se()}var y3=A('<div class="shell-rich-zonetree svelte-13iiyr1"><pre class="svelte-13iiyr1"> </pre></div>');function w3(e,t){re(t,!0);var n=y3(),r=h(n),s=h(r,!0);v(r),v(n),N(a=>O(s,a),[()=>JSON.stringify(t.data.value,null,2)]),E(e,n),se()}const k3={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:_3,props:{data:{rows:n}},ts:Date.now()})}},x3={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:w3,props:{data:{value:s}},ts:Date.now()})}};function S3(e,t){if(t.startsWith("/"))return E3(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 E3(e){return e.split("/").filter(t=>t&&t!==".").join("/")}const I3={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+`
19
+ `],ts:Date.now()})}},A3={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=S3(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(a){e.scrollback.push({kind:"status",text:`cd: ${a.message}`,level:"error",ts:Date.now()});return}e.session.cwd=s}},C3={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)":""}
20
+ `],ts:Date.now()})}};var T3=A('<tr><td class="svelte-1ox8vog"> </td><td class="svelte-1ox8vog"> </td></tr>'),R3=A('<div class="shell-rich-env svelte-1ox8vog"><table class="svelte-1ox8vog"><thead><tr><th class="svelte-1ox8vog">Key</th><th class="svelte-1ox8vog">Value</th></tr></thead><tbody></tbody></table></div>');function j3(e,t){re(t,!0);var n=R3(),r=h(n),s=w(h(r));he(s,21,()=>Object.entries(t.data.env),([a,o])=>a,(a,o)=>{var l=W(()=>Kc(i(o),2));let c=()=>i(l)[0],u=()=>i(l)[1];var d=T3(),f=h(d),p=h(f,!0);v(f);var b=w(f),x=h(b,!0);v(b),v(d),N(()=>{O(p,c()),O(x,u())}),E(a,d)}),v(s),v(r),v(n),E(e,n),se()}const D3={name:"env",summary:"Show the session environment.",async run(e){const t=e.session.env;e.scrollback.push({kind:"rich",component:j3,props:{data:{env:t}},ts:Date.now()})}},P3={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(`
21
+ `);e.scrollback.push({kind:"text",stream:"stdout",chunks:[n||"(empty)"],ts:Date.now()})}},M3={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 O3(){try{const{TauriStoreBackend:e}=await wr(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:Bc}}}async function z3(){try{const{LazyStore:e}=await wr(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 L3={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 z3(),location.reload()}};function N3(e){e.registerVerb(KS()),e.registerVerb(WS),e.registerVerb(YS),e.registerVerb(ZS),e.registerVerb(r3),e.registerVerb(s3),e.registerVerb(l3),e.registerVerb(f3),e.registerVerb(v3),e.registerVerb(m3),e.registerVerb(h3),e.registerVerb(p3),e.registerVerb(k3),e.registerVerb(x3),e.registerVerb(I3),e.registerVerb(A3),e.registerVerb(D3),e.registerVerb(C3),e.registerVerb(P3),e.registerVerb(M3),e.registerVerb(L3)}function ov(e){return e.type==="tabs"?e.tabs.filter(t=>t.viewId!==null):e.type==="split"?e.children.flatMap(ov):e.viewId!==null?[{slotId:e.slotId,viewId:e.viewId,label:e.viewId}]:[]}function q3(e){return{listApps(){return nr().map(t=>({id:t.id,label:t.label}))},getActiveApp(){const t=bd();return t?{id:t.id,label:t.label}:null},launchApp(t){bn(t)},listShards(){return Array.from(un.values()).map(t=>({id:t.manifest.id,label:t.manifest.label,version:t.manifest.version}))},listViewsInCurrentLayout(){try{const{root:t}=Mf();return ov(t.docked).map(n=>({slotId:n.slotId,viewId:n.viewId??"",label:n.label}))}catch{return[]}},openViewInCurrentLayout(t){try{if(Ya(t))return{ok:!0};const n=uc().find(r=>r.viewId===t);if(n){const r=`standalone:${t}:${Date.now()}`;return tl({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 uc()},popoutSlot(t){try{const n=Lf(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 Nf(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 Vf(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 $o(t),{ok:!0}},listZones(t){return[]},readZone(t,n){return null},whoAmI(){return{userId:Tr()?.id??"guest",admin:ht()}},setMode(t){return!1},listModes(){return[]}}}const V3={manifest:eS,activate(e){N3(e);const t=q3();e.actions.register({id:"shell.terminal.toggle",label:"Open Terminal",scope:["home","app"],defaultShortcut:"²",allowInInputs:!1,run(){Ya("shell:terminal")||lt.open("shell:terminal",{title:"Shell"})}});const n={mount(r,s){const a=typeof location<"u"&&location.protocol==="https:"?"wss":"ws",o=typeof location<"u"?location.host:"localhost",l=`${a}://${o}/api/shell/session`,u=Tr()?.id??"guest",d=ht()?"admin":"user",f=Ne(BS,{target:r,props:{shell:t,wsUrl:l,userId:u,role:d,contributions:e.contributions}});return{unmount(){Ge(f)},closable:!0}}};e.registerView("shell:terminal",n)},autostart(){}},B3={manifest:{id:"sh3-store-app",label:"Package Store",version:fn,requiredShards:["sh3-store"],layoutVersion:1,admin:!0},initialLayout:{type:"tabs",activeTab:0,tabs:[{slotId:"store.browse",viewId:"sh3-store:browse",label:"Browse"}]}};var F3=A('<div class="admin-error svelte-4q792t"> </div>'),U3=A('<form class="admin-create-form svelte-4q792t"><input class="admin-input svelte-4q792t" type="text" placeholder="Username"/> <input class="admin-input svelte-4q792t" type="text" placeholder="Display name"/> <input class="admin-input svelte-4q792t" type="password" placeholder="Password"/> <select class="admin-input svelte-4q792t"><option>User</option><option>Admin</option></select> <button type="submit" class="admin-btn svelte-4q792t">Create</button> <!></form>'),H3=A('<p class="admin-muted svelte-4q792t">Loading...</p>'),K3=A('<p class="admin-error svelte-4q792t"> </p>'),W3=A('<form class="admin-edit-form svelte-4q792t"><input class="admin-input svelte-4q792t" type="text"/> <input class="admin-input svelte-4q792t" type="password" placeholder="New password (leave empty to keep)"/> <select class="admin-input svelte-4q792t"><option>User</option><option>Admin</option></select> <div class="admin-edit-actions svelte-4q792t"><button type="submit" class="admin-btn svelte-4q792t">Save</button> <button type="button" class="admin-btn-secondary svelte-4q792t">Cancel</button></div></form>'),Y3=A('<div class="admin-user-info svelte-4q792t"><span class="admin-user-name svelte-4q792t"> </span> <span class="admin-user-meta svelte-4q792t"> </span></div> <div class="admin-user-actions svelte-4q792t"><button type="button" class="admin-btn-secondary svelte-4q792t">Edit</button> <button type="button" class="admin-btn-danger svelte-4q792t">Delete</button></div>',1),G3=A('<li class="admin-user-item svelte-4q792t"><!></li>'),X3=A('<ul class="admin-user-list svelte-4q792t"></ul>'),J3=A('<div class="admin-users svelte-4q792t"><div class="admin-users-header svelte-4q792t"><h2 class="svelte-4q792t">Users</h2> <button type="button" class="admin-btn svelte-4q792t"> </button></div> <!> <!></div>');function Z3(e,t){re(t,!0);let n=F(oe([])),r=F(!0),s=F(null),a=F(!1),o=F(""),l=F(""),c=F(""),u=F("user"),d=F(null),f=F(null),p=F(""),b=F("user"),x=F("");async function g(){S(r,!0),S(s,null);try{const L=await fetch("/api/admin/users",{credentials:"include"});if(!L.ok)throw new Error("Failed to fetch users");S(n,await L.json(),!0)}catch(L){S(s,L instanceof Error?L.message:"Failed to load users",!0)}finally{S(r,!1)}}async function y(){S(d,null);try{const L=await fetch("/api/admin/users",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:i(o),displayName:i(l)||i(o),password:i(c),role:i(u)})});if(!L.ok){const U=await L.json().catch(()=>({}));S(d,U.error||"Failed to create user",!0);return}S(o,""),S(l,""),S(c,""),S(u,"user"),S(a,!1),await g()}catch{S(d,"Network error")}}function k(L){S(f,L.id,!0),S(p,L.displayName,!0),S(b,L.role,!0),S(x,"")}async function _(){if(!i(f))return;const L={displayName:i(p),role:i(b)};i(x).trim()&&(L.password=i(x));try{if(!(await fetch(`/api/admin/users/${i(f)}`,{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(L)})).ok)return;S(f,null),await g()}catch{}}async function m(L){try{await fetch(`/api/admin/users/${L}`,{method:"DELETE",credentials:"include"}),await g()}catch{}}g();var I=J3(),D=h(I),T=w(h(D),2),j=h(T,!0);v(T),v(D);var z=w(D,2);{var R=L=>{var U=U3(),V=h(U);ge(V);var q=w(V,2);ge(q);var G=w(q,2);ge(G);var X=w(G,2),ae=h(X);ae.value=ae.__value="user";var Y=w(ae);Y.value=Y.__value="admin",v(X);var J=w(X,2),ie=w(J,2);{var fe=Q=>{var pe=F3(),ke=h(pe,!0);v(pe),N(()=>O(ke,i(d))),E(Q,pe)};K(ie,Q=>{i(d)&&Q(fe)})}v(U),N(Q=>J.disabled=Q,[()=>!i(o).trim()||!i(c).trim()]),De("submit",U,Q=>{Q.preventDefault(),y()}),Ee(V,()=>i(o),Q=>S(o,Q)),Ee(q,()=>i(l),Q=>S(l,Q)),Ee(G,()=>i(c),Q=>S(c,Q)),as(X,()=>i(u),Q=>S(u,Q)),E(L,U)};K(z,L=>{i(a)&&L(R)})}var M=w(z,2);{var C=L=>{var U=H3();E(L,U)},P=L=>{var U=K3(),V=h(U,!0);v(U),N(()=>O(V,i(s))),E(L,U)},B=L=>{var U=X3();he(U,21,()=>i(n),V=>V.id,(V,q)=>{var G=G3(),X=h(G);{var ae=J=>{var ie=W3(),fe=h(ie);ge(fe);var Q=w(fe,2);ge(Q);var pe=w(Q,2),ke=h(pe);ke.value=ke.__value="user";var _t=w(ke);_t.value=_t.__value="admin",v(pe);var Le=w(pe,2),Tt=w(h(Le),2);v(Le),v(ie),De("submit",ie,Ft=>{Ft.preventDefault(),_()}),Ee(fe,()=>i(p),Ft=>S(p,Ft)),Ee(Q,()=>i(x),Ft=>S(x,Ft)),as(pe,()=>i(b),Ft=>S(b,Ft)),H("click",Tt,()=>{S(f,null)}),E(J,ie)},Y=J=>{var ie=Y3(),fe=ve(ie),Q=h(fe),pe=h(Q,!0);v(Q);var ke=w(Q,2),_t=h(ke);v(ke),v(fe);var Le=w(fe,2),Tt=h(Le),Ft=w(Tt,2);v(Le),N(()=>{O(pe,i(q).displayName),O(_t,`${i(q).username??""} · ${i(q).role??""}`)}),H("click",Tt,()=>k(i(q))),H("click",Ft,()=>m(i(q).id)),E(J,ie)};K(X,J=>{i(f)===i(q).id?J(ae):J(Y,-1)})}v(G),E(V,G)}),v(U),E(L,U)};K(M,L=>{i(r)?L(C):i(s)?L(P,1):L(B,-1)})}v(I),N(()=>O(j,i(a)?"Cancel":"New user")),H("click",T,()=>{S(a,!i(a))}),E(e,I),se()}le(["click"]);var Q3=A('<p class="admin-muted svelte-1hsgdb4">Loading...</p>'),$3=A('<div class="admin-error svelte-1hsgdb4"> </div>'),e2=A('<div class="admin-auth-fields svelte-1hsgdb4"><label class="admin-toggle svelte-1hsgdb4"><input type="checkbox" class="svelte-1hsgdb4"/> <span>Require sign-in</span> <span class="admin-hint svelte-1hsgdb4">When enabled, unauthenticated visitors see a sign-in wall.</span></label> <label class="admin-toggle svelte-1hsgdb4"><input type="checkbox" class="svelte-1hsgdb4"/> <span>Allow guest browsing</span> <span class="admin-hint svelte-1hsgdb4">When sign-in is required, guests can still browse with session-only data.</span></label> <label class="admin-toggle svelte-1hsgdb4"><input type="checkbox" class="svelte-1hsgdb4"/> <span>Self-registration</span> <span class="admin-hint svelte-1hsgdb4">Visitors can create their own accounts from the sign-in screen.</span></label> <label class="admin-field svelte-1hsgdb4"><span class="svelte-1hsgdb4">Session lifetime (hours)</span> <input type="number" class="admin-input admin-input-sm svelte-1hsgdb4" min="1" max="8760"/></label> <button type="button" class="admin-btn svelte-1hsgdb4"> </button></div> <!>',1),t2=A('<div class="admin-auth svelte-1hsgdb4"><h2 class="svelte-1hsgdb4">Auth Settings</h2> <!></div>');function n2(e,t){re(t,!0);let n=F(null),r=F(!0),s=F(!1),a=F(null);async function o(){S(r,!0);try{const p=await fetch("/api/admin/settings",{credentials:"include"});if(!p.ok)throw new Error("Failed to fetch settings");S(n,await p.json(),!0)}catch(p){S(a,p instanceof Error?p.message:"Failed to load settings",!0)}finally{S(r,!1)}}async function l(){if(i(n)){S(s,!0),S(a,null);try{const p=await fetch("/api/admin/settings",{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(i(n))});if(!p.ok)throw new Error("Failed to save settings");S(n,await p.json(),!0)}catch(p){S(a,p instanceof Error?p.message:"Failed to save",!0)}finally{S(s,!1)}}}o();var c=t2(),u=w(h(c),2);{var d=p=>{var b=Q3();E(p,b)},f=p=>{var b=e2(),x=ve(b),g=h(x),y=h(g);ge(y),Gt(4),v(g);var k=w(g,2),_=h(k);ge(_),Gt(4),v(k);var m=w(k,2),I=h(m);ge(I),Gt(4),v(m);var D=w(m,2),T=w(h(D),2);ge(T),v(D);var j=w(D,2),z=h(j,!0);v(j),v(x);var R=w(x,2);{var M=C=>{var P=$3(),B=h(P,!0);v(P),N(()=>O(B,i(a))),E(C,P)};K(R,C=>{i(a)&&C(M)})}N(()=>{j.disabled=i(s),O(z,i(s)?"Saving...":"Save")}),Qr(y,()=>i(n).auth.required,C=>i(n).auth.required=C),Qr(_,()=>i(n).auth.guestAllowed,C=>i(n).auth.guestAllowed=C),Qr(I,()=>i(n).auth.selfRegistration,C=>i(n).auth.selfRegistration=C),Ee(T,()=>i(n).auth.sessionTTL,C=>i(n).auth.sessionTTL=C),H("click",j,l),E(p,b)};K(u,p=>{i(r)?p(d):i(n)&&p(f,1)})}v(c),E(e,c),se()}le(["click"]);var r2=A('<button type="button"> </button>'),s2=A('<div class="admin-error svelte-1gkiloq"> </div>'),a2=A('<div class="admin-error svelte-1gkiloq"> </div>'),i2=A(`<div class="admin-system svelte-1gkiloq"><h2 class="svelte-1gkiloq">System</h2> <div class="admin-system-info svelte-1gkiloq"><div class="admin-system-row svelte-1gkiloq"><span class="admin-system-label svelte-1gkiloq">Server version</span> <span> </span></div></div> <section class="admin-system-section svelte-1gkiloq"><h3 class="svelte-1gkiloq">Package bundle cache</h3> <p class="admin-system-hint svelte-1gkiloq">Controls the <code>Cache-Control</code> header on <code>/packages/:id/client.js</code>.
22
+ Set to <strong>0</strong> during development so drop-in bundle replacements take effect on F5.
23
+ 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 o2(e,t){re(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=F("..."),s=F(!1),a=F(null),o=F(31536e3),l=F(31536e3),c=F(!1),u=F(null);const d=W(()=>i(o)!==i(l)),f=W(()=>p(i(o)));function p(Q){return Q===0?"0 seconds (off — browsers never cache)":Q<60?`${Q} seconds`:Q<3600?`${Math.round(Q/60)} minutes`:Q<86400?`${Math.round(Q/3600)} hours`:Q<31536e3?`${Math.round(Q/86400)} days`:`${Math.round(Q/31536e3)} years`}async function b(){try{const Q=await fetch("/api/version");if(Q.ok){const pe=await Q.json();S(r,pe.version,!0)}}catch{}}async function x(){try{const Q=await fetch("/api/admin/settings",{credentials:"include"});if(Q.ok){const ke=(await Q.json()).packages?.cacheMaxAge??31536e3;S(o,ke,!0),S(l,ke,!0)}}catch{}}async function g(){S(c,!0),S(u,null);try{const Q=await fetch("/api/admin/settings",{method:"PUT",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({packages:{cacheMaxAge:i(o)}})});if(Q.ok){const pe=await Q.json();S(l,pe.packages?.cacheMaxAge??i(o),!0),S(o,i(l),!0)}else{const pe=await Q.json().catch(()=>({}));S(u,pe.error||"Save failed",!0)}}catch{S(u,"Network error")}finally{S(c,!1)}}async function y(){S(s,!0),S(a,null);try{const Q=await fetch("/api/admin/restart",{method:"POST",credentials:"include"});if(!Q.ok){const pe=await Q.json().catch(()=>({}));S(a,pe.error||"Restart failed",!0),S(s,!1)}}catch{S(a,"Network error"),S(s,!1)}}b(),x();var k=i2(),_=w(h(k),2),m=h(_),I=w(h(m),2),D=h(I,!0);v(I),v(m),v(_);var T=w(_,2),j=w(h(T),4);ge(j);var z=w(j,2),R=h(z),M=h(R,!0);v(R);var C=w(R);v(z);var P=w(z,2);he(P,21,()=>n,Q=>Q.value,(Q,pe)=>{var ke=r2();let _t;var Le=h(ke,!0);v(ke),N(()=>{_t=ce(ke,1,"admin-snap svelte-1gkiloq",null,_t,{active:i(o)===i(pe).value}),ke.disabled=i(c),O(Le,i(pe).label)}),H("click",ke,()=>S(o,i(pe).value,!0)),E(Q,ke)}),v(P);var B=w(P,2),L=h(B),U=h(L,!0);v(L);var V=w(L,2),q=w(V,2);{var G=Q=>{var pe=s2(),ke=h(pe,!0);v(pe),N(()=>O(ke,i(u))),E(Q,pe)};K(q,Q=>{i(u)&&Q(G)})}v(B),v(T);var X=w(T,2),ae=w(h(X),2),Y=h(ae),J=h(Y,!0);v(Y);var ie=w(Y,2);{var fe=Q=>{var pe=a2(),ke=h(pe,!0);v(pe),N(()=>O(ke,i(a))),E(Q,pe)};K(ie,Q=>{i(a)&&Q(fe)})}v(ae),v(X),v(k),N(()=>{O(D,i(r)),j.disabled=i(c),O(M,i(o)),O(C,` — ${i(f)??""}`),L.disabled=!i(d)||i(c),O(U,i(c)?"Saving...":"Save"),V.disabled=!i(d)||i(c),Y.disabled=i(s),O(J,i(s)?"Restarting...":"Restart server")}),Ee(j,()=>i(o),Q=>S(o,Q)),H("click",L,g),H("click",V,()=>S(o,i(l),!0)),H("click",Y,y),E(e,k),se()}le(["click"]);var l2=A(`<div class="admin-key-created"><div class="admin-key-created-label">New key — copy now, it won't be shown again:</div> <code class="admin-key-value svelte-1afg5z5"> </code> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Dismiss</button></div>`),c2=A('<div class="admin-error svelte-1afg5z5"> </div>'),u2=A('<form class="admin-create-form svelte-1afg5z5"><input class="admin-input svelte-1afg5z5" type="text" placeholder="Key label"/> <button type="submit" class="admin-btn svelte-1afg5z5">Create</button> <!></form>'),d2=A('<p class="admin-muted svelte-1afg5z5">Loading...</p>'),f2=A('<p class="admin-error svelte-1afg5z5"> </p>'),v2=A('<p class="admin-muted svelte-1afg5z5">No API keys. Create one to enable external access.</p>'),h2=A('<button type="button" class="admin-btn-danger svelte-1afg5z5">Confirm</button> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Cancel</button>',1),p2=A('<button type="button" class="admin-btn-danger svelte-1afg5z5">Revoke</button>'),m2=A('<li class="admin-key-item svelte-1afg5z5"><div class="admin-key-info svelte-1afg5z5"><span class="admin-key-label svelte-1afg5z5"> </span> <span class="admin-key-meta svelte-1afg5z5"> </span></div> <div class="admin-key-actions svelte-1afg5z5"><!></div></li>'),b2=A('<ul class="admin-key-list svelte-1afg5z5"></ul>'),g2=A('<div class="admin-keys svelte-1afg5z5"><div class="admin-keys-header svelte-1afg5z5"><h2 class="svelte-1afg5z5">API Keys</h2> <button type="button" class="admin-btn svelte-1afg5z5"> </button></div> <!> <!> <!></div>');function _2(e,t){re(t,!0);let n=F(oe([])),r=F(!0),s=F(null),a=F(!1),o=F(""),l=F(null),c=F(null),u=F(null);async function d(){S(r,!0),S(s,null);try{const C=await fetch("/api/admin/keys",{credentials:"include"});if(!C.ok)throw new Error("Failed to fetch keys");S(n,await C.json(),!0)}catch(C){S(s,C instanceof Error?C.message:"Failed to load keys",!0)}finally{S(r,!1)}}async function f(){S(l,null);try{const C=await fetch("/api/admin/keys",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({label:i(o)})});if(!C.ok){const B=await C.json().catch(()=>({}));S(l,B.error||"Failed to create key",!0);return}const P=await C.json();S(c,{id:P.id,key:P.key},!0),S(o,""),S(a,!1),await d()}catch{S(l,"Network error")}}async function p(C){S(u,null);try{await fetch(`/api/admin/keys/${C}`,{method:"DELETE",credentials:"include"}),i(c)?.id===C&&S(c,null),await d()}catch{}}function b(C){return new Date(C).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}d();var x=g2(),g=h(x),y=w(h(g),2),k=h(y,!0);v(y),v(g);var _=w(g,2);{var m=C=>{var P=l2(),B=w(h(P),2),L=h(B,!0);v(B);var U=w(B,2);v(P),N(()=>O(L,i(c).key)),H("click",U,()=>{S(c,null)}),E(C,P)};K(_,C=>{i(c)&&C(m)})}var I=w(_,2);{var D=C=>{var P=u2(),B=h(P);ge(B);var L=w(B,2),U=w(L,2);{var V=q=>{var G=c2(),X=h(G,!0);v(G),N(()=>O(X,i(l))),E(q,G)};K(U,q=>{i(l)&&q(V)})}v(P),N(q=>L.disabled=q,[()=>!i(o).trim()]),De("submit",P,q=>{q.preventDefault(),f()}),Ee(B,()=>i(o),q=>S(o,q)),E(C,P)};K(I,C=>{i(a)&&C(D)})}var T=w(I,2);{var j=C=>{var P=d2();E(C,P)},z=C=>{var P=f2(),B=h(P,!0);v(P),N(()=>O(B,i(s))),E(C,P)},R=C=>{var P=v2();E(C,P)},M=C=>{var P=b2();he(P,21,()=>i(n),B=>B.id,(B,L)=>{var U=m2(),V=h(U),q=h(V),G=h(q,!0);v(q);var X=w(q,2),ae=h(X);v(X),v(V);var Y=w(V,2),J=h(Y);{var ie=Q=>{var pe=h2(),ke=ve(pe),_t=w(ke,2);H("click",ke,()=>p(i(L).id)),H("click",_t,()=>{S(u,null)}),E(Q,pe)},fe=Q=>{var pe=p2();H("click",pe,()=>{S(u,i(L).id,!0)}),E(Q,pe)};K(J,Q=>{i(u)===i(L).id?Q(ie):Q(fe,-1)})}v(Y),v(U),N(Q=>{O(G,i(L).label),O(ae,`${i(L).id??""} · ${Q??""}`)},[()=>b(i(L).createdAt)]),E(B,U)}),v(P),E(C,P)};K(T,C=>{i(r)?C(j):i(s)?C(z,1):i(n).length===0?C(R,2):C(M,-1)})}v(x),N(()=>O(k,i(a)?"Cancel":"New key")),H("click",y,()=>{S(a,!i(a))}),E(e,x),se()}le(["click"]);const y2={manifest:{id:"sh3-admin",label:"Admin",version:fn,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(a,o){const l=Ne(Z3,{target:a});return{unmount(){Ge(l)}}}},n={mount(a,o){const l=Ne(n2,{target:a});return{unmount(){Ge(l)}}}},r={mount(a,o){const l=Ne(o2,{target:a});return{unmount(){Ge(l)}}}},s={mount(a,o){const l=Ne(_2,{target:a});return{unmount(){Ge(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)}},w2={manifest:{id:"sh3-admin-app",label:"Admin",version:fn,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"}]}},xc="sh3:migrations:shell-rename:done",Sc="__shell__:",k2="__sh3core__:",Ec="sh3:user:__shell__:theme",Ic="sh3:user:__sh3core__:theme";function x2(e,t){if(t.getItem(xc))return;const n=t.getItem(Ec);n!==null&&t.getItem(Ic)===null&&(t.setItem(Ic,n),t.removeItem(Ec));for(const r of e.keys()){if(!r.startsWith(Sc))continue;const s=k2+r.slice(Sc.length),a=e.read(r);e.write(s,a),e.delete(r)}t.setItem(xc,"1")}const Ac="sh3:migrations:mode-id-rename:done",S2="sh3.shell.lastMode.",Cc={dev:"bash",user:"sh3"};function E2(e){if(typeof e._keys=="function")return e._keys();const t=e;if(typeof t.length=="number"&&typeof t.key=="function"){const n=[];for(let r=0;r<t.length;r++){const s=t.key(r);s!==null&&n.push(s)}return n}return[]}function I2(e){if(!e.getItem(Ac)){for(const t of E2(e)){if(!t.startsWith(S2))continue;const n=e.getItem(t);n&&Object.prototype.hasOwnProperty.call(Cc,n)&&e.setItem(t,Cc[n])}e.setItem(Ac,"1")}}let Tc=!1,Rc=null;function A2(){Tc||(Tc=!0,Rc=e=>{const t=e.state?.sh3;t==="anchor"?(Cg(),history.forward()):t==="forward-bumper"&&(Tg(),history.back())},window.addEventListener("popstate",Rc),history.replaceState({sh3:"anchor"},""),history.pushState({sh3:"main"},""),history.pushState({sh3:"forward-bumper"},""),history.back())}function C2(e){Zo(e)}function T2(){const e=tn.workspace;return{keys:()=>e.list(),read:t=>e.read(t),write:(t,n)=>e.write(t,n),delete:t=>e.delete(t)}}async function R2(e){if(typeof globalThis.localStorage<"u"){x2(T2(),globalThis.localStorage),I2(globalThis.localStorage);const{migrateLegacyWorkspaceKeys:a}=await wr(async()=>{const{migrateLegacyWorkspaceKeys:l}=await import("./workspace-rekey-DRgvbNY-.js");return{migrateLegacyWorkspaceKeys:l}},[]),{getActiveScopeId:o}=await wr(async()=>{const{getActiveScopeId:l}=await Promise.resolve().then(()=>kw);return{getActiveScopeId:l}},void 0);a(o())}const t=new Set(e?.excludeShards),n=[$x,V3,Cx,y2,Zk,p0];for(const a of n)t.has(a.manifest.id)||Zo(a);const r=[B3,w2];for(const a of r)Do(a);await K0();for(const[a,o]of un)if(o.autostart){qy(a);try{await Tf(a,{phase:"autostart"})}catch{}}const s=Df();if(s&&Cn.has(s))try{await bn(s)}catch(a){console.error(`[sh3] Auto-launch of "${s}" failed:`,a),Pf()}Ig({returnToHome:Ds,launchApp:bn}),typeof window<"u"&&typeof history<"u"&&A2()}var j2=A('<button type="button" aria-label="Expand pane"><span class="collapse-icon"> </span></button>'),D2=A('<button type="button" aria-label="Collapse pane"><span class="collapse-icon"> </span></button>'),P2=A('<!> <div class="pane-content svelte-1adl4o1"><!></div>',1),M2=A('<div role="separator"></div>'),O2=A("<div><!></div> <!>",1),z2=A("<div></div>");function L2(e,t){re(t,!0);const n=40,r=28;let s;const a=k=>t.pinned?.[k]??"fr",o=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 _=k>0?!l(k-1):!1,m=k<t.count-1?!l(k+1):!1;return _||m}function d(k){return o(k)?`0 0 ${r}px`:a(k)==="px"?`0 0 ${Math.max(n,t.sizes[k])}px`:`${Math.max(1e-4,t.sizes[k])} 1 0`}let f=F(null);function p(k,_){if(o(_)||o(_+1)||c(_))return;k.preventDefault(),k.target.setPointerCapture(k.pointerId);const m=s.getBoundingClientRect(),I=t.direction==="horizontal"?m.width:m.height;let D=0,T=0;for(let j=0;j<t.sizes.length;j++)a(j)==="fr"?D+=t.sizes[j]:T+=Math.max(n,t.sizes[j]);S(f,{handleIndex:_,startClient:t.direction==="horizontal"?k.clientX:k.clientY,startSizes:t.sizes.slice(),containerPx:I,totalFr:D,frAvailPx:Math.max(1,I-T)},!0)}function b(k){if(!i(f))return;const m=(t.direction==="horizontal"?k.clientX:k.clientY)-i(f).startClient,I=i(f).handleIndex,D=I+1,T=a(I),j=a(D),z=i(f).totalFr/i(f).frAvailPx;if(T==="fr"&&j==="fr"){const R=n*z,M=m*z,C=i(f).startSizes[D]-R,P=-(i(f).startSizes[I]-R),B=Math.min(Math.max(M,P),C);t.onResize?.(I,i(f).startSizes[I]+B),t.onResize?.(D,i(f).startSizes[D]-B)}else if(T==="px"&&j==="fr"){const R=i(f).frAvailPx-n,M=n-i(f).startSizes[I];t.onResize?.(I,i(f).startSizes[I]+Math.min(Math.max(m,M),R))}else if(T==="fr"&&j==="px"){const R=i(f).startSizes[D]-n,M=-(i(f).frAvailPx-n);t.onResize?.(D,i(f).startSizes[D]-Math.min(Math.max(m,M),R))}else{const R=i(f).startSizes[D]-n,M=-(i(f).startSizes[I]-n),C=Math.min(Math.max(m,M),R);t.onResize?.(I,i(f).startSizes[I]+C),t.onResize?.(D,i(f).startSizes[D]-C)}}function x(k){i(f)&&(k.target.releasePointerCapture(k.pointerId),S(f,null))}var g=z2();let y;he(g,21,()=>Array(t.count),mt,(k,_,m)=>{var I=O2(),D=ve(I);let T;var j=h(D);{var z=B=>{var L=j2();let U;var V=h(L),q=h(V,!0);v(V),v(L),N(()=>{U=ce(L,1,"collapse-header svelte-1adl4o1",null,U,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),O(q,t.direction==="horizontal"?"▸":"▾")}),H("click",L,()=>t.onCollapseToggle?.(m,!1)),E(B,L)},R=W(()=>o(m)),M=B=>{var L=P2(),U=ve(L);{var V=ae=>{var Y=D2();let J;ne(Y,"data-testid",`collapse-toggle-${m}`);var ie=h(Y),fe=h(ie,!0);v(ie),v(Y),N(()=>{J=ce(Y,1,"collapse-header expanded svelte-1adl4o1",null,J,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),O(fe,t.direction==="horizontal"?"◂":"▴")}),H("click",Y,()=>t.onCollapseToggle?.(m,!0)),E(ae,Y)},q=W(()=>t.onCollapseToggle&&u(m));K(U,ae=>{i(q)&&ae(V)})}var G=w(U,2),X=h(G);en(X,()=>t.pane,()=>m),v(G),E(B,L)};K(j,B=>{i(R)?B(z):B(M,-1)})}v(D);var C=w(D,2);{var P=B=>{var L=M2();let U;ne(L,"data-testid",`splitter-handle-${m}`),N(V=>{U=ce(L,1,"splitter-handle svelte-1adl4o1",null,U,V),ne(L,"aria-orientation",t.direction==="horizontal"?"vertical":"horizontal")},[()=>({dragging:i(f)?.handleIndex===m,disabled:o(m)||o(m+1),frozen:c(m)})]),H("pointerdown",L,V=>p(V,m)),H("pointermove",L,b),H("pointerup",L,x),De("pointercancel",L,x),H("dblclick",L,()=>{c(m)||!u(m)&&!o(m)||t.onCollapseToggle?.(m,!o(m))}),E(B,L)};K(C,B=>{m<t.count-1&&B(P)})}N((B,L)=>{T=ce(D,1,"splitter-pane svelte-1adl4o1",null,T,B),We(D,`flex: ${L??""};`)},[()=>({collapsed:o(m)}),()=>d(m)]),E(k,I)}),v(g),Pe(g,k=>s=k,()=>s),N(()=>y=ce(g,1,"splitter svelte-1adl4o1",null,y,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"})),E(e,g),se()}le(["click","pointerdown","pointermove","pointerup","dblclick"]);function N2(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 a=Math.max(0,Math.min(e,s.length));let o;return a===s.length?o=s[s.length-1].getBoundingClientRect().right:o=s[a].getBoundingClientRect().left,{left:o-r.left-1,top:2,height:r.height-4}}var q2=A('<span class="tab-dirty svelte-1kxcyhf" title="Unsaved changes"></span>'),V2=A('<span class="tab-icon svelte-1kxcyhf"> </span>'),B2=A('<span class="tab-close svelte-1kxcyhf" role="button" tabindex="-1" title="Close">&#x2715;</span>'),F2=A('<button type="button" role="tab"><!> <!> <span class="tab-label svelte-1kxcyhf"> </span> <!></button>'),U2=A('<div class="drop-indicator svelte-1kxcyhf"></div>'),H2=A("<div><!></div>"),K2=A('<div class="tabbed-panel svelte-1kxcyhf"><div class="tab-strip svelte-1kxcyhf" role="tablist" tabindex="-1"><!> <!></div> <div class="tab-body svelte-1kxcyhf" role="tabpanel"></div></div>');function W2(e,t){re(t,!0);function n(y){t.clickGuard?.()||t.onActiveChange?.(y)}function r(y,k){k.stopPropagation(),t.onClose?.(y)}let s=F(void 0);const a=oe([]);let o=F(null);function l(y,k){if(!t.dragController)return;const _=a[y];_&&t.dragController.onPointerDown(y,k,_)}function c(y){if(!t.dragController||!t.dragController.isDragging||!i(s))return;const k=i(s).getBoundingClientRect(),_=a.filter(m=>!!m).map(m=>m.getBoundingClientRect());S(o,t.dragController.onStripHover(k,y.clientX,y.clientY,_),!0)}function u(){t.dragController&&(S(o,null),t.dragController.onStripLeave())}var d=K2(),f=h(d),p=h(f);he(p,17,()=>t.labels,mt,(y,k,_)=>{var m=F2();let I;var D=h(m);{var T=B=>{var L=q2();E(B,L)};K(D,B=>{t.dirty?.[_]&&B(T)})}var j=w(D,2);{var z=B=>{var L=V2(),U=h(L,!0);v(L),N(()=>O(U,t.icons[_])),E(B,L)};K(j,B=>{t.icons?.[_]&&B(z)})}var R=w(j,2),M=h(R,!0);v(R);var C=w(R,2);{var P=B=>{var L=B2();N(()=>ne(L,"data-testid",t.tabIds?.[_]?`tab-close-${t.tabIds[_]}`:void 0)),H("click",L,U=>r(_,U)),H("keydown",L,U=>{(U.key==="Enter"||U.key===" ")&&r(_,U)}),E(B,L)};K(C,B=>{t.closable?.[_]&&B(P)})}v(m),Pe(m,(B,L)=>a[L]=B,B=>a?.[B],()=>[_]),N(()=>{I=ce(m,1,"tab svelte-1kxcyhf",null,I,{active:t.activeTab===_}),ne(m,"aria-selected",t.activeTab===_),O(M,i(k))}),H("click",m,()=>n(_)),H("pointerdown",m,B=>l(_,B)),De("auxclick",m,B=>{B.button===1&&t.closable?.[_]&&r(_,B)}),E(y,m)});var b=w(p,2);{var x=y=>{const k=W(()=>N2(i(o),a,i(s)));var _=Ue(),m=ve(_);{var I=D=>{var T=U2();N(()=>We(T,`left: ${i(k).left??""}px; height: ${i(k).height??""}px; top: ${i(k).top??""}px;`)),E(D,T)};K(m,D=>{i(k)&&D(I)})}E(y,_)};K(b,y=>{i(o)!==null&&t.dragController?.isDragging&&y(x)})}v(f),Pe(f,y=>S(s,y),()=>i(s));var g=w(f,2);he(g,21,()=>t.labels,mt,(y,k,_)=>{var m=H2();let I;var D=h(m);en(D,()=>t.body,()=>_),v(m),N(()=>I=ce(m,1,"tab-body-pane svelte-1kxcyhf",null,I,{active:t.activeTab===_})),E(y,m)}),v(g),v(d),H("pointermove",f,c),De("pointerleave",f,u),E(e,d),se()}le(["pointermove","click","pointerdown","keydown"]);var Y2=A('no factory for <code class="svelte-1czj0s8"> </code>',1),G2=A("<em>empty slot</em>"),X2=A('<div class="slot-placeholder svelte-1czj0s8"><div class="slot-id svelte-1czj0s8"> </div> <div class="slot-meta svelte-1czj0s8"><!></div> <div class="slot-dims svelte-1czj0s8"> </div></div>'),J2=A('<div class="slot svelte-1czj0s8"><!></div>');function jc(e,t){re(t,!0);let n=Z(t,"label",3,""),r=F(void 0),s=F(0),a=F(0);const o=W(()=>t.node.viewId?!!Bd(t.node.viewId):!1);xe(()=>{if(!i(r))return;const d=t.node.slotId,f=i(r),p=Uo(d,t.node.viewId,n()||t.node.viewId||d,t.meta);f.appendChild(p);const b=new ResizeObserver(x=>{for(const g of x){const y=g.contentRect;S(s,Math.round(y.width),!0),S(a,Math.round(y.height),!0)}});return b.observe(f),()=>{b.disconnect(),Ho(d,f)}});var l=J2(),c=h(l);{var u=d=>{var f=X2(),p=h(f),b=h(p,!0);v(p);var x=w(p,2),g=h(x);{var y=I=>{var D=Y2(),T=w(ve(D)),j=h(T,!0);v(T),N(()=>O(j,t.node.viewId)),E(I,D)},k=I=>{var D=G2();E(I,D)};K(g,I=>{t.node.viewId?I(y):I(k,-1)})}v(x);var _=w(x,2),m=h(_);v(_),v(f),N(()=>{O(b,t.node.slotId),O(m,`${i(s)??""} × ${i(a)??""}`)}),E(d,f)};K(c,d=>{i(o)||d(u)})}v(l),Pe(l,d=>S(r,d),()=>i(r)),N(()=>{ne(l,"data-slot-id",t.node.slotId),ne(l,"data-view-id",t.node.viewId??"")}),E(e,l),se()}const _e=oe({phase:"idle",source:null,pointerX:0,pointerY:0,target:null});let lv=0;function Z2(){return performance.now()<lv}const Dc=4;let cv=0,uv=0;function Q2(e,t,n,r,s){if(_e.phase!=="idle")return;const a=s.getBoundingClientRect();_e.phase="pending",_e.source={slotId:e,entry:t,sourceRoot:n,startRect:a,offsetX:r.clientX-a.left,offsetY:r.clientY-a.top},_e.pointerX=r.clientX,_e.pointerY=r.clientY,_e.target=null,cv=r.clientX,uv=r.clientY,$2()}function $2(){window.addEventListener("pointermove",dv,!0),window.addEventListener("pointerup",fv,!0),window.addEventListener("pointercancel",vv,!0),document.body.style.userSelect="none",document.body.dataset.dragging=""}function eE(){window.removeEventListener("pointermove",dv,!0),window.removeEventListener("pointerup",fv,!0),window.removeEventListener("pointercancel",vv,!0),document.body.style.userSelect="",delete document.body.dataset.dragging}function dv(e){if(_e.pointerX=e.clientX,_e.pointerY=e.clientY,_e.phase==="pending"){const t=e.clientX-cv,n=e.clientY-uv;t*t+n*n>=Dc*Dc&&(_e.phase="dragging")}}function fv(e){_e.phase==="dragging"&&(tE(),lv=performance.now()+50),hv()}function vv(e){hv()}function Pc(e){const t=ln.tree;if(e.kind==="docked")return t.docked;const n=t.floats.find(r=>r.id===e.floatId);return n?n.content:null}function Mc(e){if(e.kind!=="float")return;const t=ln.tree,n=t.floats.findIndex(r=>r.id===e.floatId);n<0||Id(t.floats[n].content)&&t.floats.splice(n,1)}function tE(){const{source:e,target:t}=_e;if(!e||!t)return;const n=Pc(e.sourceRoot),r=Pc(t.root);if(!n||!r)return;if(t.kind==="strip"){const a=t.tabsNode.tabs.findIndex(o=>o.slotId===e.slotId);if(a>=0){_y(t.tabsNode,a,t.insertIndex),hr(n),r!==n&&hr(r),Mc(e.sourceRoot);return}}const s=Na(n,e.slotId);s&&(t.kind==="strip"?gy(t.tabsNode,s,t.insertIndex):Hd(r,t.path,s,t.side),hr(n),r!==n&&hr(r),Mc(e.sourceRoot))}function hv(){_e.phase="idle",_e.source=null,_e.target=null,eE()}function Qi(e){_e.phase==="dragging"&&(_e.target=e)}function _r(e){_e.phase==="dragging"&&_e.target&&(e&&!e(_e.target)||(_e.target=null))}var nE=A("<div></div>"),rE=A('<div class="quad-target quad-left svelte-re71zu" data-testid="drop-zone-left"></div> <div class="quad-target quad-right svelte-re71zu" data-testid="drop-zone-right"></div> <div class="quad-target quad-top svelte-re71zu" data-testid="drop-zone-top"></div> <div class="quad-target quad-bottom svelte-re71zu" data-testid="drop-zone-bottom"></div>',1),sE=A("<!> <!>",1),aE=A("<div><!></div>");function Oc(e,t){re(t,!0);let n=F(void 0),r=F(null);const s=W(()=>_e.phase==="dragging"),a=W(()=>{let b;return t.rootRef.kind==="docked"?b=ln.root:b=ln.tree.floats.find(g=>g.id===t.rootRef.floatId)?.content??null,b?Kd(b,t.path):!1});function o(b,x,g){const y=g.left+g.width/2,k=g.top+g.height/2,_=b-y,m=x-k,I=_/g.width,D=m/g.height;return Math.abs(I)>Math.abs(D)?I<0?"left":"right":D<0?"top":"bottom"}function l(b){if(!i(n))return;if(i(a)){i(r)!==null&&(S(r,null),_r(y=>y.kind==="split"&&y.path.join("/")===t.path.join("/")));return}const x=i(n).getBoundingClientRect();if(b.clientX<x.left||b.clientX>x.right||b.clientY<x.top||b.clientY>x.bottom){i(r)!==null&&(S(r,null),_r(y=>y.kind==="split"&&y.path.join("/")===t.path.join("/")));return}const g=o(b.clientX,b.clientY,x);if(g!==i(r)){S(r,g,!0);const y={kind:"split",root:t.rootRef,path:[...t.path],side:g};Qi(y)}}function c(){i(r)!==null&&(S(r,null),_r(b=>b.kind==="split"&&b.path.join("/")===t.path.join("/")))}var u=aE();let d;var f=h(u);{var p=b=>{var x=sE(),g=ve(x);{var y=m=>{var I=nE();N(()=>ce(I,1,`quad-highlight quad-${i(r)??""}`,"svelte-re71zu")),E(m,I)};K(g,m=>{i(r)&&m(y)})}var k=w(g,2);{var _=m=>{var I=rE();Gt(6),E(m,I)};K(k,m=>{i(s)&&m(_)})}E(b,x)};K(f,b=>{i(a)||b(p)})}v(u),Pe(u,b=>S(n,b),()=>i(n)),N(()=>d=ce(u,1,"slot-drop-zone svelte-re71zu",null,d,{active:i(s),locked:i(a)})),H("pointermove",u,l),De("pointerleave",u,c),E(e,u),se()}le(["pointermove"]);var iE=A('<div class="tab-slot-wrapper svelte-1gw9g38"><!> <!></div>'),oE=A('<div class="empty-tabs-custom svelte-1gw9g38"></div>'),lE=A('<div class="empty-tabs-default svelte-1gw9g38"><div class="empty-tabs-drop svelte-1gw9g38"></div></div>'),cE=A('<div class="empty-tabs-placeholder svelte-1gw9g38"><!></div>'),uE=A('<div class="leaf-slot-wrapper svelte-1gw9g38"><!> <!></div>');function dl(e,t){re(t,!0);let n=Z(t,"path",19,()=>[]),r=Z(t,"rootRef",19,()=>({kind:"docked"}));const s=W(()=>{let _;return r().kind==="docked"?_=ln.root:_=ln.tree.floats.find(I=>I.id===r().floatId)?.content??null,_?us(_,n()):null});function a(_){return{get isDragging(){return _e.phase==="dragging"},onPointerDown(m,I,D){const T=_.tabs[m];T&&Q2(T.slotId,T,r(),I,D)},onStripHover(m,I,D,T){if(D<m.top||D>m.bottom)return _r(R=>R.kind==="strip"&&R.tabsNode===_),null;let j=T.length;for(let R=0;R<T.length;R++){const M=T[R],C=M.left+M.width/2;if(I<C){j=R;break}}const z=_e.source;if(z){const R=_.tabs.findIndex(M=>M.slotId===z.slotId);R>=0&&R<j&&(j-=1)}return Qi({kind:"strip",root:r(),tabsNode:_,insertIndex:j}),j},onStripLeave(){_r(m=>m.kind==="strip"&&m.tabsNode===_)}}}function o(_){return _.type==="split"?_:null}function l(_){return _.type==="tabs"?_:null}function c(_){return _.type==="slot"?_:null}function u(_){return _.map(m=>Sy(m.slotId)||void 0)}function d(_){return _.map(m=>xy(m.slotId)||void 0)}function f(_,m){const I=_[m];I&&$o(I.slotId)}function p(_,m){m(_)}function b(_,m){_e.phase==="dragging"&&Qi({kind:"strip",root:r(),tabsNode:m,insertIndex:0})}function x(){_r(_=>_.kind==="strip"&&_.insertIndex===0)}var g=Ue(),y=ve(g);{var k=_=>{var m=Ue(),I=ve(m);{var D=z=>{const R=(C,P=kt)=>{{let B=W(()=>[...n(),P()]);dl(C,{get rootRef(){return r()},get path(){return i(B)}})}},M=W(()=>o(i(s)));L2(z,{get direction(){return i(M).direction},get sizes(){return i(M).sizes},get pinned(){return i(M).pinned},get collapsed(){return i(M).collapsed},get fixed(){return i(M).fixed},get count(){return i(M).children.length},get pane(){return R},onResize:(C,P)=>i(M).sizes[C]=P,onCollapseToggle:(C,P)=>{i(M).collapsed||(i(M).collapsed=i(M).children.map(()=>!1)),i(M).collapsed[C]=P}})},T=z=>{const R=W(()=>l(i(s)));var M=Ue(),C=ve(M);{var P=L=>{const U=(q,G=kt)=>{const X=W(()=>i(R)?.tabs[G()]);var ae=Ue(),Y=ve(ae);{var J=ie=>{var fe=iE(),Q=h(fe);{let ke=W(()=>({type:"slot",slotId:i(X).slotId,viewId:i(X).viewId}));jc(Q,{get node(){return i(ke)},get label(){return i(X).label},get meta(){return i(X).meta}})}var pe=w(Q,2);Oc(pe,{get rootRef(){return r()},get path(){return n()}}),v(fe),E(ie,fe)};K(Y,ie=>{i(X)&&ie(J)})}E(q,ae)},V=W(()=>a(i(R)));{let q=W(()=>i(R).tabs.map(J=>J.label)),G=W(()=>i(R).tabs.map(J=>J.icon)),X=W(()=>u(i(R).tabs)),ae=W(()=>d(i(R).tabs)),Y=W(()=>i(R).tabs.map(J=>J.slotId));W2(L,{get labels(){return i(q)},get icons(){return i(G)},get activeTab(){return i(R).activeTab},onActiveChange:J=>i(R).activeTab=J,get body(){return U},get dragController(){return i(V)},get clickGuard(){return Z2},get closable(){return i(X)},get dirty(){return i(ae)},onClose:J=>f(i(R).tabs,J),get tabIds(){return i(Y)}})}},B=L=>{var U=cE(),V=h(U);{var q=X=>{var ae=oE();ld(ae,(Y,J)=>p?.(Y,J),()=>i(R).emptyRenderer),E(X,ae)},G=X=>{var ae=lE(),Y=h(ae);v(ae),H("pointermove",Y,J=>b(J,i(R))),De("pointerleave",Y,x),E(X,ae)};K(V,X=>{i(R).emptyRenderer?X(q):X(G,-1)})}v(U),E(L,U)};K(C,L=>{i(R)&&i(R).tabs.length>0?L(P):i(R)?.persistent&&L(B,1)})}E(z,M)},j=z=>{const R=W(()=>c(i(s)));var M=uE(),C=h(M);jc(C,{get node(){return i(R)},get meta(){return i(R).meta}});var P=w(C,2);Oc(P,{get rootRef(){return r()},get path(){return n()}}),v(M),E(z,M)};K(I,z=>{i(s).type==="split"?z(D):i(s).type==="tabs"?z(T,1):z(j,-1)})}E(_,m)};K(y,_=>{i(s)&&_(k)})}E(e,g),se()}le(["pointermove"]);var dE=A('<span class="drag-preview-icon svelte-133fiip"> </span>'),fE=A('<div class="drag-preview svelte-133fiip"><!> <span class="drag-preview-label svelte-133fiip"> </span></div>');function vE(e,t){re(t,!0);const n=W(()=>_e.phase==="dragging"&&!!_e.source),r=W(()=>_e.source?_e.pointerX-_e.source.offsetX:0),s=W(()=>_e.source?_e.pointerY-_e.source.offsetY:0),a=W(()=>_e.source?.startRect.width??0),o=W(()=>_e.source?.startRect.height??0),l=W(()=>_e.source?.entry.label??""),c=W(()=>_e.source?.entry.icon);var u=Ue(),d=ve(u);{var f=p=>{var b=fE(),x=h(b);{var g=_=>{var m=dE(),I=h(m,!0);v(m),N(()=>O(I,i(c))),E(_,m)};K(x,_=>{i(c)&&_(g)})}var y=w(x,2),k=h(y,!0);v(y),v(b),N(()=>{We(b,`left: ${i(r)??""}px; top: ${i(s)??""}px; width: ${i(a)??""}px; height: ${i(o)??""}px;`),O(k,i(l))}),E(p,b)};K(d,p=>{i(n)&&p(f)})}E(e,u),se()}const yr=new Map;let ga=!1;function pv(e){if(yr.size===0)return;const t=e.target;if(!t)return;const n=Array.from(yr.keys());for(const r of n){const s=yr.get(r);s&&(s.contains(t)||lt.close(r))}}function hE(){ga||typeof document>"u"||(document.addEventListener("pointerdown",pv,!0),ga=!0)}function pE(){ga&&(yr.size>0||(document.removeEventListener("pointerdown",pv,!0),ga=!1))}function mE(e,t){yr.set(e,t),hE()}function bE(e){yr.delete(e),pE()}var gE=A('<header class="sh3-float-header svelte-1p734al"><span class="sh3-float-title svelte-1p734al"> </span> <button class="sh3-float-close svelte-1p734al" aria-label="Close float">×</button></header>'),_E=A('<div class="sh3-float-frame svelte-1p734al" data-shell-overlay-host="float" role="dialog" tabindex="-1"><!> <div class="sh3-float-body svelte-1p734al"><!></div></div>');function yE(e,t){re(t,!0);const n=Z(t,"entry",7);let r=F(!1),s={x:0,y:0},a=F(void 0);xe(()=>{if(n().dismissable&&i(a))return mE(n().id,i(a)),()=>bE(n().id)}),xe(()=>{if(!i(a))return;const k=$g(n().id);if(k)return k.appendChild(i(a)),()=>{i(a)?.parentNode===k&&i(a).remove()}});function o(k){if(k.button!==0||k.target.closest(".sh3-float-close"))return;k.currentTarget.setPointerCapture(k.pointerId),S(r,!0),s={x:k.clientX-n().position.x,y:k.clientY-n().position.y},lt.focus(n().id)}function l(k){i(r)&&(n().position.x=k.clientX-s.x,n().position.y=k.clientY-s.y)}function c(k){if(!i(r))return;S(r,!1);const _=k.currentTarget;_.hasPointerCapture(k.pointerId)&&_.releasePointerCapture(k.pointerId)}function u(){lt.focus(n().id)}function d(k){k.stopPropagation(),lt.close(n().id)}var f=_E();let p;var b=h(f);{var x=k=>{var _=gE(),m=h(_),I=h(m,!0);v(m);var D=w(m,2);v(_),N(()=>O(I,n().title)),H("pointerdown",_,o),H("pointermove",_,l),H("pointerup",_,c),De("pointercancel",_,c),H("click",D,d),E(k,_)};K(b,k=>{n().title&&k(x)})}var g=w(b,2),y=h(g);{let k=W(()=>({kind:"float",floatId:n().id}));dl(y,{get rootRef(){return i(k)},path:[]})}v(g),v(f),Pe(f,k=>S(a,k),()=>i(a)),N(()=>{ne(f,"aria-label",n().title??"Float panel"),p=We(f,"",p,{left:`${n().position.x??""}px`,top:`${n().position.y??""}px`,width:`${n().size.w??""}px`,height:`${n().size.h??""}px`})}),H("click",f,u),E(e,f),se()}le(["click","pointerdown","pointermove","pointerup"]);var wE=A('<div class="sh3-float-layer svelte-1rzcset"></div>');function kE(e,t){re(t,!0);const n=W(()=>ln.floats);var r=wE();he(r,21,()=>i(n),s=>s.id,(s,a)=>{yE(s,{get entry(){return i(a)}})}),v(r),E(e,r),se()}var xE=A('<div class="guest-signin-error svelte-pymkh"> </div>'),SE=A('<div class="guest-signin-overlay svelte-pymkh" role="dialog"><div class="guest-signin-card svelte-pymkh"><form class="guest-signin-form svelte-pymkh"><input class="guest-signin-input svelte-pymkh" type="text" placeholder="Username" autocomplete="username"/> <input class="guest-signin-input svelte-pymkh" type="password" placeholder="Password" autocomplete="current-password"/> <div class="guest-signin-actions svelte-pymkh"><button type="submit" class="guest-signin-btn svelte-pymkh"> </button> <button type="button" class="guest-signin-cancel svelte-pymkh">Cancel</button></div></form> <!></div></div>'),EE=A('<div class="guest-banner svelte-pymkh"><span class="guest-banner-text">Browsing as guest. Sign in to save your work.</span> <button type="button" class="guest-banner-action svelte-pymkh">Sign in</button></div> <!>',1),IE=A('<div class="guest-banner-slot"><!></div>');function AE(e,t){re(t,!0);let n=F(!1),r=F(""),s=F(""),a=F(null),o=F(!1);async function l(){if(!i(r).trim()||!i(s).trim()||i(o))return;S(o,!0),S(a,null);const p=await bf(i(r).trim(),i(s).trim());S(o,!1),p.ok?S(n,!1):S(a,p.error,!0)}var c=IE(),u=h(c);{var d=p=>{var b=EE(),x=ve(b),g=w(h(x),2);v(x);var y=w(x,2);{var k=_=>{var m=SE(),I=h(m),D=h(I),T=h(D);ge(T);var j=w(T,2);ge(j);var z=w(j,2),R=h(z),M=h(R,!0);v(R);var C=w(R,2);v(z),v(D);var P=w(D,2);{var B=L=>{var U=xE(),V=h(U,!0);v(U),N(()=>O(V,i(a))),E(L,U)};K(P,L=>{i(a)&&L(B)})}v(I),v(m),N(L=>{T.disabled=i(o),j.disabled=i(o),R.disabled=L,O(M,i(o)?"Signing in...":"Sign in")},[()=>i(o)||!i(r).trim()||!i(s).trim()]),De("submit",D,L=>{L.preventDefault(),l()}),Ee(T,()=>i(r),L=>S(r,L)),Ee(j,()=>i(s),L=>S(s,L)),H("click",C,()=>{S(n,!1),S(a,null)}),E(_,m)};K(y,_=>{i(n)&&_(k)})}H("click",g,()=>{S(n,!0)}),E(p,b)},f=W(()=>gf());K(u,p=>{i(f)&&p(d)})}v(c),E(e,c),se()}le(["click"]);var CE=A('<code class="sh3-consent-scope svelte-14me5sj"> </code>'),TE=A('<dt class="svelte-14me5sj">Peer</dt> <dd class="svelte-14me5sj"> </dd>',1),RE=A('<dt class="svelte-14me5sj">Expires in</dt> <dd class="svelte-14me5sj"> </dd>',1),jE=A('<div class="sh3-consent-backdrop svelte-14me5sj" role="dialog" aria-modal="true" aria-label="Key creation consent"><div class="sh3-consent-card svelte-14me5sj"><h2 class="sh3-consent-title svelte-14me5sj"><span class="svelte-14me5sj"> </span> wants to create a key</h2> <dl class="sh3-consent-fields svelte-14me5sj"><dt class="svelte-14me5sj">Label</dt> <dd class="svelte-14me5sj"> </dd> <dt class="svelte-14me5sj">Scopes</dt> <dd class="sh3-consent-scopes svelte-14me5sj"></dd> <!> <!></dl> <div class="sh3-consent-actions svelte-14me5sj"><button type="button" class="sh3-consent-deny svelte-14me5sj">Deny</button> <button type="button" class="sh3-consent-approve svelte-14me5sj">Approve</button></div></div></div>');function DE(e,t){re(t,!0);let n=F(null);xe(()=>Af(u=>{S(n,u,!0)}));function r(){i(n)&&(Ki(i(n).requestId,!0),S(n,null))}function s(){i(n)&&(Ki(i(n).requestId,!1),S(n,null))}var a=Ue(),o=ve(a);{var l=c=>{var u=jE(),d=h(u),f=h(d),p=h(f),b=h(p,!0);v(p),Gt(),v(f);var x=w(f,2),g=w(h(x),2),y=h(g,!0);v(g);var k=w(g,4);he(k,20,()=>i(n).scopes,R=>R,(R,M)=>{var C=CE(),P=h(C,!0);v(C),N(()=>O(P,M)),E(R,C)}),v(k);var _=w(k,2);{var m=R=>{var M=TE(),C=w(ve(M),2),P=h(C);v(C),N(()=>O(P,`${i(n).peerRole??"—"??""}${i(n).peerId?` · ${i(n).peerId}`:""}`)),E(R,M)};K(_,R=>{(i(n).peerRole||i(n).peerId)&&R(m)})}var I=w(_,2);{var D=R=>{var M=RE(),C=w(ve(M),2),P=h(C);v(C),N(B=>O(P,`${B??""}s`),[()=>Math.round(i(n).expiresIn/1e3)]),E(R,M)};K(I,R=>{i(n).expiresIn&&R(D)})}v(x);var T=w(x,2),j=h(T);Mr(j,!0);var z=w(j,2);v(T),v(d),v(u),N(()=>{O(b,i(n).shardId),O(y,i(n).label)}),H("click",j,s),H("click",z,r),E(c,u)};K(o,c=>{i(n)&&c(l)})}E(e,a),se()}le(["click"]);var PE=A('<span class="sh3-brand svelte-18lk809">SH3</span>'),ME=A('<span class="sh3-brand sh3-brand-app svelte-18lk809"> </span>'),OE=A('<span class="sh3-brand svelte-18lk809">SH3</span> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <button type="button" class="sh3-brand-crumb svelte-18lk809"> </button>',1),zE=A('<button type="button" class="sh3-brand sh3-brand-clickable svelte-18lk809" title="Exit project">SH3</button> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <span class="sh3-brand-project svelte-18lk809"> </span>',1),LE=A('<span class="sh3-brand sh3-brand-project svelte-18lk809"> </span> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <span class="sh3-brand sh3-brand-app svelte-18lk809"> </span>',1),NE=A('<button type="button" class="sh3-brand sh3-brand-clickable svelte-18lk809" title="Exit project">SH3</button> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <button type="button" class="sh3-brand-crumb svelte-18lk809"> </button> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <button type="button" class="sh3-brand-crumb svelte-18lk809"> </button>',1),qE=A('<div class="sh3-brand-slot svelte-18lk809"><!></div>');function VE(e,t){re(t,!0);const n=W(()=>Jt().activeAppId),r=W(Eg),s=W(()=>Qn.activeProjectId),a=W(()=>i(n)?Tn(i(n))?.manifest.label??i(n):null),o=W(()=>i(r)?Tn(i(r))?.manifest.label??i(r):null),l=W(()=>i(s)?zt.projects.find(I=>I.id===i(s))?.name??i(s):null),c=W(()=>i(s)?i(n)?"project-app":i(r)?"project-breadcrumb":"project-home":i(n)?"app":i(r)?"breadcrumb":"brand");function u(){i(r)&&bn(i(r))}function d(){Rf(null)}function f(){i(n)&&Ds()}var p=qE(),b=h(p);{var x=I=>{var D=PE();E(I,D)},g=I=>{var D=ME(),T=h(D,!0);v(D),N(()=>O(T,i(a))),E(I,D)},y=I=>{var D=OE(),T=w(ve(D),4),j=h(T,!0);v(T),N(()=>O(j,i(o))),H("click",T,u),E(I,D)},k=I=>{var D=zE(),T=ve(D),j=w(T,4),z=h(j,!0);v(j),N(()=>O(z,i(l))),H("click",T,d),E(I,D)},_=I=>{var D=LE(),T=ve(D),j=h(T,!0);v(T);var z=w(T,4),R=h(z,!0);v(z),N(()=>{O(j,i(l)),O(R,i(a))}),E(I,D)},m=I=>{var D=NE(),T=ve(D),j=w(T,4),z=h(j,!0);v(j);var R=w(j,4),M=h(R,!0);v(R),N(()=>{O(z,i(l)),O(M,i(o))}),H("click",T,d),H("click",j,f),H("click",R,u),E(I,D)};K(b,I=>{i(c)==="brand"?I(x):i(c)==="app"?I(g,1):i(c)==="breadcrumb"?I(y,2):i(c)==="project-home"?I(k,3):i(c)==="project-app"?I(_,4):i(c)==="project-breadcrumb"&&I(m,5)})}v(p),E(e,p),se()}le(["click"]);const BE=Object.freeze([{id:"file",label:"File"},{id:"edit",label:"Edit"},{id:"view",label:"View"},{id:"window",label:"Window"},{id:"help",label:"Help"}]);function _a(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function FE(e,t){if(e==null)return[];if(t==null)return BE.slice();const n=t.map((r,s)=>({c:r,i:s}));return n.sort((r,s)=>{const a=r.c.order,o=s.c.order;return a!=null&&o!=null?a-o||r.i-s.i:a!=null?-1:o!=null?1:r.i-s.i}),n.map(r=>r.c)}function UE(e,t,n){const r=[],s=new Set;for(const a of e)a.action.menuItem!==n||a.action.submenuOf!==void 0||s.has(a.action.id)||!js(a.action.scope,t,a.ownerShardId)||(s.add(a.action.id),r.push({id:a.action.id,label:Bt(a.action),shortcut:Rs(a.action,t.bindings,t.platform),group:a.action.group??"",icon:a.action.icon,checked:_a(a.action.checked),disabled:_a(a.action.disabled),submenu:a.action.submenu===!0}));return r}function HE(e,t,n){const r=[],s=new Set;for(const a of e)a.action.submenuOf!==n||s.has(a.action.id)||!js(a.action.scope,t,a.ownerShardId)||(s.add(a.action.id),r.push({id:a.action.id,label:Bt(a.action),shortcut:Rs(a.action,t.bindings,t.platform),group:a.action.group??"",icon:a.action.icon,checked:_a(a.action.checked),disabled:_a(a.action.disabled),submenu:a.action.submenu===!0}));return r}var KE=A('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),WE=A('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),YE=A('<button type="button" class="sh3-menubar-button svelte-bke3dt"><!> <span class="sh3-menubar-label"> </span> <!></button>');function GE(e,t){re(t,!0);let n=F(void 0);function r(g){const y=new Map,k=[];for(const _ of g){const m=_.group||"";y.has(m)||(y.set(m,[]),k.push(m)),y.get(m).push(_)}return k.map(_=>({id:`group:${_||"_default"}`,items:y.get(_)}))}function s(g,y,k){const _=tt().find(m=>m.action.id===g);if(!(!_||typeof _.action.run!="function")){try{_.action.run({action:{id:g,label:Bt(_.action)},appId:y.activeAppId,viewId:y.focusedViewId??void 0,selection:y.selection??void 0,invokedVia:"palette",dispatch:()=>{}})}catch(m){console.error(`[sh3] menu-bar action "${g}" threw:`,m)}k.close()}}function a(g,y,k){const _=document.querySelector(".sh3-popup-host");if(!_)return;const m=document.createElement("div");m.className="sh3-popup-submenu",m.style.position="absolute",m.style.pointerEvents="auto";const D=(_.querySelector(".sh3-ctx-active")??_).getBoundingClientRect();m.style.left=`${D.right+2}px`,m.style.top=`${D.top}px`,_.appendChild(m);const T=HE(tt(),y,g),j=Ne(va,{target:m,props:{sections:r(T),onInvoke:z=>s(z,y,k),onDismiss:()=>{Ge(j),m.remove()}}})}function o(){if(!i(n))return;const g=Jt(),y=Oi.show(va,{anchor:i(n),placement:"bottom-start"},{sections:r(t.items),onInvoke:k=>{const _=tt().find(m=>m.action.id===k);if(_){if(_.action.submenu===!0){a(k,g,y);return}s(k,g,y)}},onDismiss:()=>Oi.close()})}const l=W(()=>t.container.iconPosition??"before");var c=YE(),u=h(c);{var d=g=>{var y=KE();N(()=>ne(y,"data-icon",t.container.icon)),E(g,y)};K(u,g=>{t.container.icon&&i(l)==="before"&&g(d)})}var f=w(u,2),p=h(f,!0);v(f);var b=w(f,2);{var x=g=>{var y=WE();N(()=>ne(y,"data-icon",t.container.icon)),E(g,y)};K(b,g=>{t.container.icon&&i(l)==="after"&&g(x)})}v(c),Pe(c,g=>S(n,g),()=>i(n)),N(()=>O(p,t.container.label)),H("click",c,o),E(e,c),se()}le(["click"]);var XE=A('<div class="sh3-menubar svelte-7gc0wa" role="menubar"></div>');function JE(e,t){re(t,!0);const n=W(Jt),r=W(()=>i(n).activeAppId),s=W(()=>{if(i(r))return Tn(i(r))?.manifest.menus}),a=W(()=>FE(i(r),i(s))),o=W(()=>{const c=[],u=tt();for(const d of i(a)){const f=UE(u,i(n),d.id);f.length>0&&c.push({container:d,items:f})}return c});var l=XE();he(l,21,()=>i(o),({container:c,items:u})=>c.id,(c,u)=>{let d=()=>i(u).container,f=()=>i(u).items;GE(c,{get container(){return d()},get items(){return f()}})}),v(l),E(e,l),se()}var ZE=A('<button type="button" class="shell-tabbar-signout svelte-187fra4" title="Sign out"><svg class="shell-tabbar-signout-icon svelte-187fra4" aria-hidden="true"><use></use></svg></button>'),QE=A('<div class="shell-tabbar-user svelte-187fra4"><span class="shell-tabbar-user-name svelte-187fra4"> </span> <span class="shell-tabbar-tag svelte-187fra4"> </span> <!></div>'),$E=A('<div class="shell-overlay-root svelte-187fra4"><!></div>'),eI=A('<div class="shell svelte-187fra4"><header class="shell-tabbar svelte-187fra4" data-shell-region="tabbar"><button type="button" class="shell-tabbar-home-button svelte-187fra4" title="Home"><svg class="shell-tabbar-home-icon svelte-187fra4" aria-hidden="true"><use></use></svg></button> <!> <!> <!></header> <!> <main class="shell-content svelte-187fra4" data-shell-region="content" data-shell-layer="0"><!></main> <footer class="shell-statusbar svelte-187fra4" data-shell-region="statusbar"></footer> <div class="shell-overlays svelte-187fra4" aria-hidden="true"></div> <!></div>');function tI(e,t){re(t,!0);const n=W(Ui),r=W(Tr),s=W(ht),a=W(()=>Qd()==="home"),o=[{layer:1,name:"floating"},{layer:2,name:"drag-preview"},{layer:3,name:"popup"},{layer:4,name:"modal"},{layer:5,name:"toast"},{layer:6,name:"command"}],l=oe({});xe(()=>{for(const{name:T}of o){const j=l[T];j&&xg(T,j)}return()=>{for(const{name:T}of o)Sg(T)}}),xe(()=>{const T=ln.tree;return Zg(T.floats,()=>({w:window.innerWidth,h:window.innerHeight})),()=>Qg()}),xe(()=>{ln.tree,Ny()}),xe(()=>Ui()?Fw():void 0);var c=eI(),u=h(c),d=h(u),f=h(d),p=h(f);v(f),v(d);var b=w(d,2);VE(b,{});var x=w(b,2);JE(x,{});var g=w(x,2);{var y=T=>{var j=QE(),z=h(j),R=h(z,!0);v(z);var M=w(z,2),C=h(M,!0);v(M);var P=w(M,2);{var B=U=>{var V=ZE(),q=h(V),G=h(q);v(q),v(V),N(()=>ne(G,"href",`${$n}#log-out`)),H("click",V,()=>Iw()),E(U,V)},L=W(()=>!Cw());K(P,U=>{i(L)&&U(B)})}v(j),N(()=>{O(R,i(r).displayName),O(C,i(s)?"admin":"user")}),E(T,j)};K(g,T=>{i(n)&&i(r)&&T(y)})}v(u);var k=w(u,2);AE(k,{});var _=w(k,2),m=h(_);dl(m,{}),v(_);var I=w(_,4);he(I,21,()=>o,({layer:T,name:j})=>T,(T,j)=>{let z=()=>i(j).layer,R=()=>i(j).name;var M=$E(),C=h(M);{var P=L=>{kE(L,{})},B=L=>{vE(L,{})};K(C,L=>{R()==="floating"?L(P):R()==="drag-preview"&&L(B,1)})}v(M),Pe(M,(L,U)=>l[U]=L,L=>l?.[L],()=>[R()]),N(()=>{ne(M,"data-shell-overlay",R()),ne(M,"data-shell-layer",z()),We(M,`z-index: var(--shell-z-layer-${z()??""});`)}),E(T,M)}),v(I);var D=w(I,2);DE(D,{}),v(c),N(()=>{d.disabled=i(a),ne(p,"href",`${$n}#house`)}),H("click",d,()=>Ds()),E(e,c),se()}le(["click"]);var nI=A('<button type="button" class="signin-link svelte-lh4k15">Create an account</button>'),rI=A('<form class="signin-form svelte-lh4k15"><input class="signin-input svelte-lh4k15" type="text" placeholder="Username" autocomplete="username"/> <input class="signin-input svelte-lh4k15" type="password" placeholder="Password" autocomplete="current-password"/> <button type="submit" class="signin-btn svelte-lh4k15"> </button></form> <!>',1),sI=A('<form class="signin-form svelte-lh4k15"><input class="signin-input svelte-lh4k15" type="text" placeholder="Username" autocomplete="username"/> <input class="signin-input svelte-lh4k15" type="text" placeholder="Display name (optional)"/> <input class="signin-input svelte-lh4k15" type="password" placeholder="Password" autocomplete="new-password"/> <button type="submit" class="signin-btn svelte-lh4k15"> </button></form> <button type="button" class="signin-link svelte-lh4k15">Back to sign in</button>',1),aI=A('<div class="signin-error svelte-lh4k15"> </div>'),iI=A('<div class="signin-wall svelte-lh4k15"><div class="signin-card svelte-lh4k15"><h1 class="signin-brand svelte-lh4k15">SH3</h1> <!> <!></div></div>');function oI(e,t){re(t,!0);let n=F("login"),r=F(""),s=F(""),a=F(""),o=F(null),l=F(!1);async function c(){if(!i(r).trim()||!i(s).trim()||i(l))return;S(l,!0),S(o,null);const _=await bf(i(r).trim(),i(s).trim());S(l,!1),_.ok?t.onSuccess():S(o,_.error,!0)}async function u(){if(!i(r).trim()||!i(s).trim()||i(l))return;S(l,!0),S(o,null);const _=await Ew(i(r).trim(),i(s).trim(),i(a).trim()||void 0);S(l,!1),_.ok?t.onSuccess():S(o,_.error,!0)}function d(_){S(n,_,!0),S(o,null)}var f=iI(),p=h(f),b=w(h(p),2);{var x=_=>{var m=rI(),I=ve(m),D=h(I);ge(D);var T=w(D,2);ge(T);var j=w(T,2),z=h(j,!0);v(j),v(I);var R=w(I,2);{var M=C=>{var P=nI();H("click",P,()=>d("register")),E(C,P)};K(R,C=>{t.selfRegistration&&C(M)})}N(C=>{D.disabled=i(l),T.disabled=i(l),j.disabled=C,O(z,i(l)?"Signing in...":"Sign in")},[()=>i(l)||!i(r).trim()||!i(s).trim()]),De("submit",I,C=>{C.preventDefault(),c()}),Ee(D,()=>i(r),C=>S(r,C)),Ee(T,()=>i(s),C=>S(s,C)),E(_,m)},g=_=>{var m=sI(),I=ve(m),D=h(I);ge(D);var T=w(D,2);ge(T);var j=w(T,2);ge(j);var z=w(j,2),R=h(z,!0);v(z),v(I);var M=w(I,2);N(C=>{D.disabled=i(l),T.disabled=i(l),j.disabled=i(l),z.disabled=C,O(R,i(l)?"Creating...":"Create account")},[()=>i(l)||!i(r).trim()||!i(s).trim()]),De("submit",I,C=>{C.preventDefault(),u()}),Ee(D,()=>i(r),C=>S(r,C)),Ee(T,()=>i(a),C=>S(a,C)),Ee(j,()=>i(s),C=>S(s,C)),H("click",M,()=>d("login")),E(_,m)};K(b,_=>{i(n)==="login"?_(x):_(g,-1)})}var y=w(b,2);{var k=_=>{var m=aI(),I=h(m,!0);v(m),N(()=>O(I,i(o))),E(_,m)};K(y,_=>{i(o)&&_(k)})}v(p),v(f),E(e,f),se()}le(["click"]);async function lI(e){const t=e?.serverUrl??"",n=await O3();n.backends&&(Wl("workspace",n.backends.workspace),Wl("user",n.backends.user)),n.localOwner&&Aw(),_f(t),l1();const r=typeof e?.target=="string"?document.querySelector(e.target):e?.target??document.getElementById("app");if(!r)throw new Error("SH3: mount target not found");let s=null;if(!n.localOwner)try{const o=await fetch(`${t}/api/boot`,{credentials:"include"});o.ok&&(s=await o.json())}catch{}if(n.localOwner)Js("local");else if(s){cc(t,s),Js(s.tenantId);const{auth:o,session:l}=s;if(!l&&o.required&&!o.guestAllowed){await cI(r,s);const c=await fetch(`${t}/api/boot`,{credentials:"include"});c.ok&&(s=await c.json(),cc(t,s),Js(s.tenantId))}}if(e?.discoveredPackages?.length)for(const o of e.discoveredPackages)try{const l=await fetch(o.bundleUrl);if(!l.ok){console.warn(`[sh3] Failed to fetch discovered package "${o.id}": HTTP ${l.status}`);continue}const c=await l.arrayBuffer(),u=await Ps(c);ol(u,{version:o.version,sourceRegistry:o.sourceRegistry??"",contractVersion:o.contractVersion??""}),console.log(`[sh3] Loaded discovered package: ${o.id}`)}catch(l){console.warn(`[sh3] Failed to load discovered package "${o.id}":`,l)}if(e?.shards)for(const o of e.shards)C2(o);if(e?.apps)for(const o of e.apps)Do(o);const a={};e?.excludeShards&&(a.excludeShards=e.excludeShards),await R2(a),vf(),Ne(tI,{target:r})}function cI(e,t){return new Promise(n=>{const r=Ne(oI,{target:e,props:{selfRegistration:t.auth.selfRegistration,onSuccess:()=>{Ge(r),n()}}})})}const fl=window.location.origin;_f(fl);mf(new mw(fl));let mv=[];try{const e=await fetch("/api/packages");e.ok&&(mv=await e.json())}catch{}await lI({discoveredPackages:mv,serverUrl:fl});
24
+ //# sourceMappingURL=index-cLzwBtUk.js.map