sh3-server 0.14.3 → 0.15.0

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