sh3-server 0.14.0 → 0.14.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/assets/index-cLzwBtUk.js +24 -0
- package/app/assets/index-cLzwBtUk.js.map +1 -0
- package/app/assets/index-vrVBfm18.css +1 -0
- package/app/index.html +2 -2
- package/package.json +1 -1
- package/app/assets/index-BXigV0NV.js +0 -24
- package/app/assets/index-BXigV0NV.js.map +0 -1
- package/app/assets/index-DkcDH5Yi.css +0 -1
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/tauri-backend-BNhKUiUG.js","assets/index-56jHh6nx.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const 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 zv="modulepreload",Lv=function(e){return"/"+e},_l={},wr=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),l=o?.nonce||o?.getAttribute("nonce");s=Promise.allSettled(n.map(c=>{if(c=Lv(c),c in _l)return;_l[c]=!0;const u=c.endsWith(".css"),d=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${d}`))return;const f=document.createElement("link");if(f.rel=u?"stylesheet":zv,u||(f.as="script"),f.crossOrigin="",f.href=c,l&&f.setAttribute("nonce",l),document.head.appendChild(f),u)return new Promise((h,g)=>{f.addEventListener("load",h),f.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${c}`)))})}))}function 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)})},Ov=1,Nv=2,zc=4,qv=8,Vv=16,Bv=1,Lc=4,Fv=8,Uv=16,Hv=1,Kv=2,Wv=4,Qi=1,Oc=2,Yv=4,Gv=8,ya="[",wa="[!",yl="[?",ka="]",Un={},Te=Symbol(),yt=Symbol("filename"),ar=Symbol("hmr"),Nc="http://www.w3.org/1999/xhtml",ms="http://www.w3.org/2000/svg",$i="http://www.w3.org/1998/Math/MathML",qc="@attach",Vc=!1;var Dr=Array.isArray,Xv=Array.prototype.indexOf,kr=Array.prototype.includes,xa=Array.from,ea=Object.keys,Hn=Object.defineProperty,Wt=Object.getOwnPropertyDescriptor,Bc=Object.getOwnPropertyDescriptors,Fc=Object.prototype,Jv=Array.prototype,Sa=Object.getPrototypeOf,wl=Object.isExtensible,Zv=Object.prototype.hasOwnProperty;function ir(e){return typeof e=="function"}const wt=()=>{};function kl(e){return typeof e?.then=="function"}function Qv(e){return e()}function mi(e){for(var t=0;t<e.length;t++)e[t]()}function Uc(){var e,t,n=new Promise((r,s)=>{e=r,t=s});return{promise:n,resolve:e,reject:t}}function $v(e,t,n=!1){return e===void 0?n?t():t:e}function Hc(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 eh(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,Kn=4,bs=8,eo=1<<24,Yt=16,Zt=32,pn=64,bi=128,Lt=512,Be=1024,Xe=2048,Qt=4096,it=8192,vt=16384,gn=32768,gi=1<<25,$t=65536,ns=1<<17,Kc=1<<18,Tn=1<<19,Wc=1<<20,sn=1<<25,Wn=65536,_i=1<<21,xr=1<<22,Sn=1<<23,$e=Symbol("$state"),Ea=Symbol("legacy props"),th=Symbol(""),nh=Symbol("proxy path"),rh=Symbol("hmr anchor"),nn=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},er=!!globalThis.document?.contentType&&globalThis.document.contentType.includes("xml"),Yc=1,gs=3,_n=8,Gc=11;function Xc(e){throw new Error("https://svelte.dev/e/experimental_async_required")}function sh(){throw new Error("https://svelte.dev/e/invalid_default_snippet")}function xl(){throw new Error("https://svelte.dev/e/invalid_snippet_arguments")}function jr(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function ah(){throw new Error("https://svelte.dev/e/missing_context")}function ih(){throw new Error("https://svelte.dev/e/snippet_without_render_tag")}function oh(e){throw new Error("https://svelte.dev/e/store_invalid_shape")}function lh(){throw new Error("https://svelte.dev/e/svelte_element_invalid_this_value")}function ch(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function uh(e,t){throw new Error("https://svelte.dev/e/component_api_changed")}function dh(e,t){throw new Error("https://svelte.dev/e/component_api_invalid_new")}function fh(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function vh(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function hh(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function ph(e){throw new Error("https://svelte.dev/e/effect_orphan")}function mh(){throw new Error("https://svelte.dev/e/effect_pending_outside_reaction")}function bh(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function gh(){throw new Error("https://svelte.dev/e/fork_discarded")}function _h(){throw new Error("https://svelte.dev/e/fork_timing")}function yh(){throw new Error("https://svelte.dev/e/get_abort_signal_outside_reaction")}function wh(){throw new Error("https://svelte.dev/e/hydration_failed")}function Jc(e){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}function kh(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function xh(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Sh(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Eh(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Ih(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}function Ah(e,t){console.warn("https://svelte.dev/e/assignment_value_stale")}function Ch(e,t){console.warn("https://svelte.dev/e/binding_property_non_reactive")}function Th(e){console.warn("https://svelte.dev/e/console_log_state")}function Rh(){console.warn("https://svelte.dev/e/derived_inert")}function Ph(e,t){console.warn("https://svelte.dev/e/event_handler_invalid")}function Dh(e){console.warn("https://svelte.dev/e/hydratable_missing_but_expected")}function _s(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function jh(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_binding")}function Mh(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_mutation")}function zh(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function Zc(e){console.warn("https://svelte.dev/e/state_proxy_equality_mismatch")}function Lh(){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(),Un;return ue=e}function ct(){return Ie(St(ue))}function v(e){if(te){if(St(ue)!==null)throw _s(),Un;ue=e}}function Oh(e){te&&(ue=e.content)}function Gt(e=1){if(te){for(var t=e,n=ue;t--;)n=St(n);ue=n}}function Yn(e=!0){for(var t=0,n=ue;;){if(n.nodeType===_n){var r=n.data;if(r===ka){if(t===0)return n;t-=1}else(r===ya||r===wa||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var s=St(n);e&&n.remove(),n=s}}function to(e){if(!e||e.nodeType!==_n)throw _s(),Un;return e.data}function Qc(e){return e===this.v}function $c(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function eu(e){return!$c(e,this.v)}let Nh=!1;function qh(e){console.warn("https://svelte.dev/e/dynamic_void_element_content")}const Vh=[];function Gn(e,t=!1,n=!1){return Ns(e,new Map,"",Vh,null,n)}function Ns(e,t,n,r,s=null,a=!1){if(typeof e=="object"&&e!==null){var o=t.get(e);if(o!==void 0)return o;if(e instanceof Map)return new Map(e);if(e instanceof Set)return new Set(e);if(Dr(e)){var l=Array(e.length);t.set(e,l),s!==null&&t.set(s,l);for(var c=0;c<e.length;c+=1){var u=e[c];c in e&&(l[c]=Ns(u,t,n,r,null,a))}return l}if(Sa(e)===Fc){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 nr=null;function tu(e,t){const n=e.v;if(n===Te)return;const r=Bh(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&&$e in n?Gn(n,!0):n),r==="$derived"){const c=new Set(e.deps);for(const u of c)tu(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 Bh(e){return e.f&(Je|xr)?"$derived":e.label?.startsWith("$")?"store":"$state"}function Fh(e,t){var n=nr;try{nr={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(nr.entries.size===0)console.log(`${o} %cno reactive dependencies (${a}ms)`,"color: grey");else{console.group(`${o} %c(${a}ms)`,"color: grey");var l=nr.entries;we(()=>{for(const[c,u]of l)tu(c,u)}),nr=null,console.groupEnd()}return s}finally{nr=n}}function Uh(e,t){return e.label=t,nu(e.v,t),e}function nu(e,t){return e?.[nh]?.(t),e}function Hh(e){const t=new Error,n=Kh();return n.length===0?null:(n.unshift(`
|
|
3
|
-
`),Hn(t,"stack",{value:n.join(`
|
|
4
|
-
`)}),Hn(t,"name",{value:e}),t)}function Kh(){const e=Error.stackTraceLimit;Error.stackTraceLimit=1/0;const t=new Error().stack;if(Error.stackTraceLimit=e,!t)return[];const n=t.split(`
|
|
5
|
-
`),r=[];for(let s=0;s<n.length;s++){const a=n[s],o=a.replaceAll("\\","/");if(a.trim()!=="Error"){if(a.includes("validate_each_keys"))return[];o.includes("svelte/src/internal")||o.includes("node_modules/.vite")||r.push(a)}}return r}let Se=null;function Sr(e){Se=e}let qs=null;function Wh(e,t,n,r,s,a){const o=qs;qs={type:t,file:n[yt],line:r,column:s,parent:o,...a};try{return e()}finally{qs=o}}let no=null;function Sl(e){no=e}function Yh(){const e={};return[()=>(ru(e)||ah(),ro(e)),t=>so(e,t)]}function ro(e){return Ia().get(e)}function so(e,t){return Ia().set(e,t),t}function ru(e){return Ia().has(e)}function Gh(){return Ia()}function re(e,t=!1,n){Se={p:Se,i:!1,c:null,e:null,s:e,x:null,r:de,l:null}}function se(e){var t=Se,n=t.e;if(n!==null){t.e=null;for(var r of n)Pu(r)}return e!==void 0&&(t.x=e),t.i=!0,Se=t.p,e??{}}function su(){return!0}function Ia(e){return Se===null&&jr(),Se.c??=new Map(Xh(Se)||void 0)}function Xh(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 au(){var e=Ln;Ln=[],mi(e)}function ot(e){if(Ln.length===0&&!pr){var t=Ln;queueMicrotask(()=>{t===Ln&&au()})}Ln.push(e)}function Jh(){for(;Ln.length>0;)au()}function iu(e){var t=de;if(t===null)return be.f|=Sn,e;if(!(t.f&gn)&&!(t.f&Kn))throw e;an(e,t)}function an(e,t){for(;t!==null;){if(t.f&bi){if(!(t.f&gn))throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const Zh=-7169;function Pe(e,t){e.f=e.f&Zh|t}function ao(e){e.f&Lt||e.deps===null?Pe(e,Be):Pe(e,Qt)}function ou(e){if(e!==null)for(const t of e)!(t.f&Je)||!(t.f&Wn)||(t.f^=Wn,ou(t.deps))}function lu(e,t,n){e.f&Xe?t.add(e):e.f&Qt&&n.add(e),ou(e.deps),Pe(e,Be)}function cu(e,t,n){if(e==null)return t(void 0),wt;const r=we(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}function Qh(e){let t;return cu(e,n=>t=n)(),t}let yi=!1,Wr=!1,wi=Symbol();function $h(e,t,n){const r=n[t]??={store:null,source:Ta(void 0),unsubscribe:wt};if(r.store!==e&&!(wi in n))if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=wt;else{var s=!0;r.unsubscribe=cu(e,a=>{s?r.source.v=a:x(r.source,a)}),s=!1}return e&&wi in n?Qh(e):i(r.source)}function ep(e,t,n){let r=n[t];return r&&r.store!==e&&(r.unsubscribe(),r.unsubscribe=wt),e}function uu(e,t){return Aa(e,t),t}function tp(e,t){var n=e[t];n.store!==null&&uu(n.store,n.source.v)}function np(){const e={};function t(){It(()=>{for(var n in e)e[n].unsubscribe();Hn(e,wi,{enumerable:!1,value:!0})})}return[e,t]}function Aa(e,t){yi=!0;try{e.set(t)}finally{yi=!1}}function rp(e,t,n){return Aa(e,n),t}function sp(e,t,n=1){return Aa(e,t+n),t}function ap(e,t,n=1){const r=t+n;return Aa(e,r),r}function ip(){Wr=!0}function du(e){var t=Wr;try{return Wr=!1,[e(),Wr]}finally{Wr=t}}const vn=new Set;let pe=null,st=null,ki=null,pr=!1,ri=!1,ur=null,Vs=null;var El=0;let op=1;class qt{id=op++;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)Pe(s,Xe),n(s);for(s of r.m)Pe(s,Qt),n(s)}this.#f.add(t)}#p(){if(El++>1e3&&(vn.delete(this),lp()),!this.#d()){for(const l of this.#l)this.#u.delete(l),Pe(l,Xe),this.schedule(l);for(const l of this.#u)Pe(l,Qt),this.schedule(l)}const t=this.#r;this.#r=[],this.apply();var n=ur=[],r=[],s=Vs=[];for(const l of t)try{this.#b(l,n,r)}catch(c){throw pu(l),c}if(pe=null,s.length>0){var a=qt.ensure();for(const l of s)a.schedule(l)}if(ur=null,Vs=null,this.#d()||this.#g()){this.#m(r),this.#m(n);for(const[l,c]of this.#c)hu(l,c)}else{this.#a.size===0&&vn.delete(this),this.#l.clear(),this.#u.clear();for(const l of this.#e)l(this);this.#e.clear(),Il(r),Il(n),this.#i?.resolve()}var o=pe;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&Kn?n.push(s):zr(s)&&(a&Yt&&this.#u.add(s),Jn(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)lu(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&Sn||(this.current.set(t,[n,r]),st?.set(t,n)),this.is_fork||(t.v=n)}activate(){pe=this}deactivate(){pe=null,st=null}flush(){try{ri=!0,pe=this,this.#p()}finally{El=0,ki=null,ur=null,Vs=null,ri=!1,pe=null,st=null,qn.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,[h,g]]of this.current){if(d.current.has(f)){var r=d.current.get(f)[0];if(t&&h!==r)d.current.set(f,[h,g]);else continue}n.push(f)}var s=[...d.current.keys()].filter(f=>!this.current.has(f));if(s.length===0)t&&d.discard();else if(n.length>0){if(t)for(const f of this.#f)d.unskip_effect(f,h=>{h.f&(Yt|xr)?d.schedule(h):d.#m([h])});d.activate();var a=new Set,o=new Map;for(var l of n)fu(l,s,a,o);o=new Map;var c=[...d.current.keys()].filter(f=>this.current.has(f)?this.current.get(f)[0]!==f:!0);for(const f of this.#o)!(f.f&(vt|it|ns))&&io(f,c,o)&&(f.f&(xr|Yt)?(Pe(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??=Uc()).promise}static ensure(){if(pe===null){const t=pe=new qt;ri||(vn.add(pe),pr||ot(()=>{pe===t&&t.flush()}))}return pe}apply(){{st=null;return}}schedule(t){if(ki=t,t.b?.is_pending&&t.f&(Kn|bs|eo)&&!(t.f&gn)){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var r=n.f;if(ur!==null&&n===de&&(be===null||!(be.f&Je))&&!yi)return;if(r&(pn|Zt)){if(!(r&Be))return;n.f^=Be}}this.#r.push(n)}}function In(e){var t=pr;pr=!0;try{var n;for(e&&(pe!==null&&!pe.is_fork&&pe.flush(),n=e());;){if(Jh(),pe===null)return n;pe.flush()}}finally{pr=t}}function lp(){try{bh()}catch(e){an(e,ki)}}let hn=null;function Il(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&(vt|it))&&zr(r)&&(hn=new Set,Jn(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Ou(r),hn?.size>0)){qn.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)||Jn(c)}}hn.clear()}}hn=null}}function fu(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?fu(s,t,n,r):a&(xr|Yt)&&!(a&Xe)&&io(s,t,r)&&(Pe(s,Xe),oo(s))}}function vu(e,t){if(e.reactions!==null)for(const n of e.reactions){const r=n.f;r&Je?vu(n,t):r&ns&&(Pe(n,Xe),t.add(n))}}function io(e,t,n){const r=n.get(e);if(r!==void 0)return r;if(e.deps!==null)for(const s of e.deps){if(kr.call(t,s))return!0;if(s.f&Je&&io(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function oo(e){pe.schedule(e)}let ta=[];function cp(){In(()=>{const e=ta;ta=[];for(const t of e)Er(t)})}function up(e){var t=xt(0),n=!0,r=void 0;return i(t),ju(()=>{if(n){var s=st;try{st=null,r=e()}finally{st=s}return}ta.length===0&&ot(cp),ta.push(t)}),n=!1,r}function hu(e,t){if(!(e.f&Zt&&e.f&Be)){e.f&Xe?t.d.push(e):e.f&Qt&&t.m.push(e),Pe(e,Be);for(var n=e.first;n!==null;)hu(n,t),n=n.next}}function pu(e){Pe(e,Be);for(var t=e.first;t!==null;)pu(t),t=t.next}function dp(e){Xc(),pe!==null&&_h();var t=qt.ensure();t.is_fork=!0,st=new Map;var n=!1,r=t.settled();return In(e),{commit:async()=>{if(n){await r;return}vn.has(t)||gh(),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(),In(()=>{var o=new Set;for(var l of t.current.keys())vu(l,o);kp(o),ku()}),t.flush(),await r},discard:()=>{for(var s of t.current.keys())s.wv=ra();!n&&vn.has(t)&&t.discard()}}}function fp(e){let t=0,n=xt(0),r;return()=>{Ss()&&(i(n),qe(()=>(t===0&&(r=we(()=>e(()=>Jr(n)))),t+=1,()=>{ot(()=>{t-=1,t===0&&(r?.(),r=void 0,Jr(n))})})))}}var vp=$t|Tn;function mu(e,t,n,r){new hp(e,t,n,r)}class hp{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=fp(()=>(this.#d=xt(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|=bi,r(a)},this.parent=de.b,this.transform_error=s??this.parent?.transform_error??(a=>a),this.#s=dn(()=>{if(te){const a=this.#t;ct();const o=a.data===wa;if(a.data.startsWith(yl)){const c=JSON.parse(a.data.slice(yl.length));this.#b(c)}else o?this.#m():this.#p()}else this.#_()},vp),te&&(this.#e=ue)}#p(){try{this.#i=nt(()=>this.#a(this.#e))}catch(t){this.error(t)}}#b(t){const n=this.#n.failed;n&&(this.#o=nt(()=>{n(this.#e,()=>t,()=>()=>{})}))}#m(){const t=this.#n.pending;t&&(this.is_pending=!0,this.#r=nt(()=>t(this.#e)),ot(()=>{var n=this.#l=document.createDocumentFragment(),r=Ze();n.append(r),this.#i=this.#w(()=>nt(()=>this.#a(r))),this.#c===0&&(this.#e.before(n),this.#l=null,Vn(this.#r,()=>{this.#r=null}),this.#y(pe))}))}#_(){try{if(this.is_pending=this.has_pending_snippet(),this.#c=0,this.#u=0,this.#i=nt(()=>{this.#a(this.#e)}),this.#c>0){var t=this.#l=document.createDocumentFragment();bo(this.#i,t);const n=this.#n.pending;this.#r=nt(()=>n(this.#e))}else this.#y(pe)}catch(n){this.error(n)}}#y(t){this.is_pending=!1,t.transfer_effects(this.#h,this.#v)}defer_effect(t){lu(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;tt(this.#s),pt(this.#s),Sr(this.#s.ctx);try{return qt.ensure(),t()}catch(a){return iu(a),null}finally{tt(n),pt(r),Sr(s)}}#k(t,n){if(!this.has_pending_snippet()){this.parent&&this.parent.#k(t,n);return}this.#c+=t,this.#c===0&&(this.#y(n),this.#r&&Vn(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;pe?.is_fork?(this.#i&&pe.skip_effect(this.#i),this.#r&&pe.skip_effect(this.#r),this.#o&&pe.skip_effect(this.#o),pe.on_fork_commit(()=>{this.#x(t)})):this.#x(t)}#x(t){this.#i&&(Ue(this.#i),this.#i=null),this.#r&&(Ue(this.#r),this.#r=null),this.#o&&(Ue(this.#o),this.#o=null),te&&(Ie(this.#t),Gt(),Ie(Yn()));var n=this.#n.onerror;let r=this.#n.failed;var s=!1,a=!1;const o=()=>{if(s){Lh();return}s=!0,a&&Ih(),this.#o!==null&&Vn(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 nt(()=>{var u=de;u.b=this,u.f|=bi,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 pp(){de===null&&mh();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(h=>!h.settled);if(n.length===0&&a.length===0){r(t.map(s));return}var o=de,l=Ca(),c=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(h=>h.promise)):null;function u(h){l();try{r(h)}catch(g){o.f&vt||an(g,o)}Xn()}if(n.length===0){c.then(()=>u(t.map(s)));return}var d=ws();function f(){Promise.all(n.map(h=>gu(h))).then(h=>u([...t.map(s),...h])).catch(h=>an(h,o)).finally(()=>d())}c?c.then(()=>{l(),f(),Xn()}):f()}function bu(e,t){ys(e,[],[],t)}function Ca(){var e=de,t=be,n=Se,r=pe;return function(a=!0){tt(e),pt(t),Sr(n),a&&!(e.f&vt)&&(r?.activate(),r?.apply())}}async function mp(e){var t=Ca(),n=await e;return()=>(t(),n)}async function xi(e){var t=Xr;queueMicrotask(()=>{Xr===t&&Bs(null)});var n=await e;return()=>(Bs(t),queueMicrotask(()=>{Xr===t&&Bs(null)}),n)}async function*bp(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 xi(t.next()))();if(s){n=!0;break}var r=Xr;yield a,Bs(r)}}finally{if(!n&&t.return!==void 0)return(await xi(t.return()))().value}}function Xn(e=!0){tt(null),pt(null),Sr(null),e&&pe?.deactivate()}function gp(e){const t=Ca(),n=ws();var r=de,s=null;const a=u=>{s={error:u},Ii(r)||an(u,r)};var o=Promise.resolve(e[0]()).catch(a),l={promise:o,settled:!1},c=[l];o.finally(()=>{l.settled=!0,Xn()});for(const u of e.slice(1)){o=o.then(()=>{if(t(),s)throw s.error;if(Ii(r))throw nn;return u()}).catch(a);const d={promise:o,settled:!1};c.push(d),o.finally(()=>{d.settled=!0,Xn()})}return o.then(()=>Promise.resolve()).finally(()=>n()),c}function _p(e){return Promise.all(e.map(t=>t.promise))}function ws(){var e=de,t=e.b,n=pe,r=t.is_rendered();return t.update_pending_count(1,n),n.increment(r,e),(s=!1)=>{t.update_pending_count(-1,n),n.decrement(r,e,s)}}let Xr=null;function Bs(e){Xr=e}function ks(e){var t=Je|Xe;return de!==null&&(de.f|=Tn),{ctx:Se,deps:null,effects:null,equals:Qc,f:t,fn:e,reactions:null,rv:0,v:Te,wv:0,parent:de,ac:null}}function gu(e,t,n){let r=de;r===null&&ch();var s=void 0,a=xt(Te),o=!be,l=new Map;return jp(()=>{var c=de,u=Uc();s=u.promise;try{Promise.resolve(e()).then(u.resolve,u.reject).finally(Xn)}catch(g){u.reject(g),Xn()}var d=pe;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 g of l.values())g.reject(nn);l.clear()}l.set(d,u)}const h=(g,S=void 0)=>{if(f){var b=S===nn;f(b)}if(!(S===nn||c.f&vt)){if(d.activate(),S)a.f|=Sn,on(a,S);else{a.f&Sn&&(a.f^=Sn),on(a,g);for(const[_,w]of l){if(l.delete(_),_===d)break;w.reject(nn)}}d.deactivate()}};u.promise.then(h,g=>h(null,g||"unknown"))}),It(()=>{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 U(e){const t=ks(e);return Vu(t),t}function lo(e){const t=ks(e);return t.equals=eu,t}function yp(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)Ue(t[n])}}function co(e){var t,n=de,r=e.parent;if(!mn&&r!==null&&r.f&(vt|it))return Rh(),e.v;tt(r);try{e.f&=~Wn,yp(e),t=Uu(e)}finally{tt(n)}return t}function _u(e){var t=co(e);if(!e.equals(t)&&(e.wv=ra(),(!pe?.is_fork||e.deps===null)&&(pe!==null?pe.capture(e,t,!0):e.v=t,e.deps===null))){Pe(e,Be);return}mn||(st!==null?(Ss()||pe?.is_fork)&&st.set(e,t):ao(e))}function wp(e){if(e.effects!==null)for(const t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(nn),t.teardown=wt,t.ac=null,rs(t,0),po(t))}function yu(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&Jn(t)}let na=new Set;const qn=new Map;function kp(e){na=e}let wu=!1;function xt(e,t){var n={f:0,v:e,reactions:null,equals:Qc,rv:0,wv:0};return n}function V(e,t){const n=xt(e);return Vu(n),n}function Ta(e,t=!1,n=!0){const r=xt(e);return t||(r.equals=eu),r}function xp(e,t){return x(e,we(()=>i(e))),t}function x(e,t,n=!1){be!==null&&(!Kt||be.f&ns)&&su()&&be.f&(Je|Yt|xr|ns)&&(Ot===null||!kr.call(Ot,e))&&Eh();let r=n?oe(t):t;return on(e,r,Vs)}function on(e,t,n=null){if(!e.equals(t)){qn.set(e,mn?t:e.v);var r=qt.ensure();if(r.capture(e,t),e.f&Je){const s=e;e.f&Xe&&co(s),st===null&&ao(s)}e.wv=ra(),xu(e,Xe,n),de!==null&&de.f&Be&&!(de.f&(Zt|pn))&&(jt===null?Np([e]):jt.push(e)),!r.is_fork&&na.size>0&&!wu&&ku()}return t}function ku(){wu=!1;for(const e of na)e.f&Be&&Pe(e,Qt),zr(e)&&Jn(e);na.clear()}function Er(e,t=1){var n=i(e),r=t===1?n++:n--;return x(e,n),r}function Sp(e,t=1){var n=i(e);return x(e,t===1?++n:--n)}function Jr(e){x(e,e.v+1)}function xu(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&&Pe(o,t),l&Je){var u=o;st?.delete(u),l&Wn||(l&Lt&&(o.f|=Wn),xu(u,Qt,n))}else if(c){var d=o;l&Yt&&hn!==null&&hn.add(d),n!==null?n.push(d):oo(d)}}}function oe(e){if(typeof e!="object"||e===null||$e in e)return e;const t=Sa(e);if(t!==Fc&&t!==Jv)return e;var n=new Map,r=Dr(e),s=V(0),a=Bn,o=l=>{if(Bn===a)return l();var c=be,u=Bn;pt(null),Tl(a);var d=l();return pt(c),Tl(u),d};return r&&n.set("length",V(e.length)),new Proxy(e,{defineProperty(l,c,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&xh();var d=n.get(c);return d===void 0?o(()=>{var f=V(u.value);return n.set(c,f),f}):x(d,u.value,!0),!0},deleteProperty(l,c){var u=n.get(c);if(u===void 0){if(c in l){const d=o(()=>V(Te));n.set(c,d),Jr(s)}}else x(u,Te),Jr(s);return!0},get(l,c,u){if(c===$e)return e;var d=n.get(c),f=c in l;if(d===void 0&&(!f||Wt(l,c)?.writable)&&(d=o(()=>{var g=oe(f?l[c]:Te),S=V(g);return S}),n.set(c,d)),d!==void 0){var h=i(d);return h===Te?void 0:h}return Reflect.get(l,c,u)},getOwnPropertyDescriptor(l,c){var u=Reflect.getOwnPropertyDescriptor(l,c);if(u&&"value"in u){var d=n.get(c);d&&(u.value=i(d))}else if(u===void 0){var f=n.get(c),h=f?.v;if(f!==void 0&&h!==Te)return{enumerable:!0,configurable:!0,value:h,writable:!0}}return u},has(l,c){if(c===$e)return!0;var u=n.get(c),d=u!==void 0&&u.v!==Te||Reflect.has(l,c);if(u!==void 0||de!==null&&(!d||Wt(l,c)?.writable)){u===void 0&&(u=o(()=>{var h=d?oe(l[c]):Te,g=V(h);return g}),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),h=c in l;if(r&&c==="length")for(var g=u;g<f.v;g+=1){var S=n.get(g+"");S!==void 0?x(S,Te):g in l&&(S=o(()=>V(Te)),n.set(g+"",S))}if(f===void 0)(!h||Wt(l,c)?.writable)&&(f=o(()=>V(void 0)),x(f,oe(u)),n.set(c,f));else{h=f.v!==Te;var b=o(()=>oe(u));x(f,b)}var _=Reflect.getOwnPropertyDescriptor(l,c);if(_?.set&&_.set.call(d,u),!h){if(r&&typeof c=="string"){var w=n.get("length"),y=Number(c);Number.isInteger(y)&&y>=w.v&&x(w,y+1)}Jr(s)}return!0},ownKeys(l){i(s);var c=Reflect.ownKeys(l).filter(f=>{var h=n.get(f);return h===void 0||h.v!==Te});for(var[u,d]of n)d.v!==Te&&!(u in l)&&c.push(u);return c},setPrototypeOf(){Sh()}})}function Ir(e){try{if(e!==null&&typeof e=="object"&&$e in e)return e[$e]}catch{}return e}function Su(e,t){return Object.is(Ir(e),Ir(t))}function Ep(e,t,n=!0){try{e===t!=(Ir(e)===Ir(t))&&Zc(n?"===":"!==")}catch{}return e===t===n}function Ip(e,t,n=!0){return e==t!=(Ir(e)==Ir(t))&&Zc(),e==t===n}var Si,Eu,uo,Iu,Au;function Ei(){if(Si===void 0){Si=window,Eu=document,uo=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Iu=Wt(t,"firstChild").get,Au=Wt(t,"nextSibling").get,wl(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),wl(n)&&(n.__t=void 0)}}function Ze(e=""){return document.createTextNode(e)}function Re(e){return Iu.call(e)}function St(e){return Au.call(e)}function p(e,t){if(!te)return Re(e);var n=Re(ue);if(n===null)n=ue.appendChild(Ze());else if(t&&n.nodeType!==gs){var r=Ze();return n?.before(r),Ie(r),r}return t&&Ra(n),Ie(n),n}function he(e,t=!1){if(!te){var n=Re(e);return n instanceof Comment&&n.data===""?St(n):n}if(t){if(ue?.nodeType!==gs){var r=Ze();return ue?.before(r),Ie(r),r}Ra(ue)}return ue}function k(e,t=1,n=!1){let r=te?ue:e;for(var s;t--;)s=r,r=St(r);if(!te)return r;if(n){if(r?.nodeType!==gs){var a=Ze();return r===null?s?.after(a):r.before(a),Ie(a),a}Ra(r)}return Ie(r),r}function fo(e){e.textContent=""}function Cu(){return!1}function Rn(e,t,n){let r=n?{is:n}:void 0;return document.createElementNS(t??Nc,e,r)}function Ap(){return document.createDocumentFragment()}function Tu(e=""){return document.createComment(e)}function Cp(e,t,n=""){if(t.startsWith("xlink:")){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n);return}return e.setAttribute(t,n)}function Ra(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===gs;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function Mr(e,t){if(t){const n=document.body;e.autofocus=!0,ot(()=>{document.activeElement===n&&e.focus()})}}function vo(e){te&&Re(e)!==null&&fo(e)}let Al=!1;function Ru(){Al||(Al=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function mt(e,t,n,r=!0){r&&n();for(var s of t)e.addEventListener(s,n);It(()=>{for(var a of t)e.removeEventListener(a,n)})}function Pn(e){var t=be,n=de;pt(null),tt(null);try{return e()}finally{pt(t),tt(n)}}function xs(e,t,n,r=n){e.addEventListener(t,()=>Pn(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),Ru()}function ho(e){de===null&&(be===null&&ph(),hh()),mn&&vh()}function Tp(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function bt(e,t){var n=de;n!==null&&n.f&it&&(e|=it);var r={ctx:Se,deps:null,nodes:null,f:e|Xe|Lt,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};pe?.register_created_effect(r);var s=r;if(e&Kn)ur!==null?ur.push(r):qt.ensure().schedule(r);else if(t!==null){try{Jn(r)}catch(o){throw Ue(r),o}s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&!(s.f&Tn)&&(s=s.first,e&Yt&&e&$t&&s!==null&&(s.f|=$t))}if(s!==null&&(s.parent=n,n!==null&&Tp(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 It(e){const t=bt(bs,null);return Pe(t,Be),t.teardown=e,t}function xe(e){ho();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 bt(Kn|Wc,e)}function Du(e){return ho(),bt(bs|Wc,e)}function ju(e){return bt(ns,e)}function Es(e){qt.ensure();const t=bt(pn|Tn,e);return()=>{Ue(t)}}function Rp(e){qt.ensure();const t=bt(pn|Tn,e);return(n={})=>new Promise(r=>{n.outro?Vn(t,()=>{Ue(t),r(void 0)}):(Ue(t),r(void 0))})}function Et(e){return bt(Kn,e)}function Pp(e,t){var n=Se,r={effect:null,ran:!1,deps:e};n.l.$.push(r),r.effect=qe(()=>{if(e(),!r.ran){r.ran=!0;var s=de;try{tt(s.parent),we(t)}finally{tt(s)}}})}function Dp(){var e=Se;qe(()=>{for(var t of e.l.$){t.deps();var n=t.effect;n.f&Be&&n.deps!==null&&Pe(n,Qt),zr(n)&&Jn(n),t.ran=!1}})}function jp(e){return bt(xr|Tn,e)}function qe(e,t=0){return bt(bs|t,e)}function N(e,t=[],n=[],r=[]){ys(r,t,n,s=>{bt(bs,()=>e(...s.map(i)))})}function Mp(e,t=[],n=[],r=[]){if(n.length>0||r.length>0)var s=ws();ys(r,t,n,a=>{bt(Kn,()=>e(...a.map(i))),s&&s()})}function dn(e,t=0){var n=bt(Yt|t,e);return n}function Mu(e,t=0){var n=bt(eo|t,e);return n}function nt(e){return bt(Zt|Tn,e)}function zu(e){var t=e.teardown;if(t!==null){const n=mn,r=be;Cl(!0),pt(null);try{t.call(null)}finally{Cl(n),pt(r)}}}function po(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&Pn(()=>{s.abort(nn)});var r=n.next;n.f&pn?n.parent=null:Ue(n,t),n=r}}function zp(e){for(var t=e.first;t!==null;){var n=t.next;t.f&Zt||Ue(t),t=n}}function Ue(e,t=!0){var n=!1;(t||e.f&Kc)&&e.nodes!==null&&e.nodes.end!==null&&(Lu(e.nodes.start,e.nodes.end),n=!0),Pe(e,gi),po(e,t&&!n),rs(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const a of r)a.stop();zu(e),e.f^=gi,e.f|=vt;var s=e.parent;s!==null&&s.first!==null&&Ou(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Lu(e,t){for(;e!==null;){var n=e===t?null:St(e);e.remove(),e=n}}function Ou(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 Vn(e,t,n=!0){var r=[];Nu(e,r,!0);var s=()=>{n&&Ue(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||s();for(var l of r)l.out(o)}else s()}function Nu(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;Nu(s,t,o?n:!1)}s=a}}}function mo(e){qu(e,!0)}function qu(e,t){if(e.f&it){e.f^=it,e.f&Be||(Pe(e,Xe),qt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&$t)!==0||(n.f&Zt)!==0;qu(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 Ii(e=de){return(e.f&vt)!==0}function bo(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:St(n);t.append(n),n=s}}let or=null;function Lp(e){var t=or;try{if(or=new Set,we(e),t!==null)for(var n of or)t.add(n);return or}finally{or=t}}function Op(e){for(var t of Lp(e))on(t,t.v)}let Fs=!1,mn=!1;function Cl(e){mn=e}let be=null,Kt=!1;function pt(e){be=e}let de=null;function tt(e){de=e}let Ot=null;function Vu(e){be!==null&&(Ot===null?Ot=[e]:Ot.push(e))}let dt=null,_t=0,jt=null;function Np(e){jt=e}let Bu=1,On=0,Bn=On;function Tl(e){Bn=e}function ra(){return++Bu}function zr(e){var t=e.f;if(t&Xe)return!0;if(t&Je&&(e.f&=~Wn),t&Qt){for(var n=e.deps,r=n.length,s=0;s<r;s++){var a=n[s];if(zr(a)&&_u(a),a.wv>e.wv)return!0}t&Lt&&st===null&&Pe(e,Be)}return!1}function Fu(e,t,n=!0){var r=e.reactions;if(r!==null&&!(Ot!==null&&kr.call(Ot,e)))for(var s=0;s<r.length;s++){var a=r[s];a.f&Je?Fu(a,t,!1):t===a&&(n?Pe(a,Xe):a.f&Be&&Pe(a,Qt),oo(a))}}function Uu(e){var t=dt,n=_t,r=jt,s=be,a=Ot,o=Se,l=Kt,c=Bn,u=e.f;dt=null,_t=0,jt=null,be=u&(Zt|pn)?null:e,Ot=null,Sr(e.ctx),Kt=!1,Bn=++On,e.ac!==null&&(Pn(()=>{e.ac.abort(nn)}),e.ac=null);try{e.f|=_i;var d=e.fn,f=d();e.f|=gn;var h=e.deps,g=pe?.is_fork;if(dt!==null){var S;if(g||rs(e,_t),h!==null&&_t>0)for(h.length=_t+dt.length,S=0;S<dt.length;S++)h[_t+S]=dt[S];else e.deps=h=dt;if(Ss()&&e.f&Lt)for(S=_t;S<h.length;S++)(h[S].reactions??=[]).push(e)}else!g&&h!==null&&_t<h.length&&(rs(e,_t),h.length=_t);if(su()&&jt!==null&&!Kt&&h!==null&&!(e.f&(Je|Qt|Xe)))for(S=0;S<jt.length;S++)Fu(jt[S],e);if(s!==null&&s!==e){if(On++,s.deps!==null)for(let b=0;b<n;b+=1)s.deps[b].rv=On;if(t!==null)for(const b of t)b.rv=On;jt!==null&&(r===null?r=jt:r.push(...jt))}return e.f&Sn&&(e.f^=Sn),f}catch(b){return iu(b)}finally{e.f^=_i,dt=t,_t=n,jt=r,be=s,Ot=a,Sr(o),Kt=l,Bn=c}}function qp(e,t){let n=t.reactions;if(n!==null){var r=Xv.call(n,e);if(r!==-1){var s=n.length-1;s===0?n=t.reactions=null:(n[r]=n[s],n.pop())}}if(n===null&&t.f&Je&&(dt===null||!kr.call(dt,t))){var a=t;a.f&Lt&&(a.f^=Lt,a.f&=~Wn),a.v!==Te&&ao(a),wp(a),rs(a,0)}}function rs(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)qp(e,n[r])}function Jn(e){var t=e.f;if(!(t&vt)){Pe(e,Be);var n=de,r=Fs;de=e,Fs=!0;try{t&(Yt|eo)?zp(e):po(e),zu(e);var s=Uu(e);e.teardown=typeof s=="function"?s:null,e.wv=Bu;var a;Vc&&Nh&&e.f&Xe&&e.deps}finally{Fs=r,de=n}}}async function Is(){await Promise.resolve(),In()}function Vp(){return qt.ensure().settled()}function i(e){var t=e.f,n=(t&Je)!==0;if(or?.add(e),be!==null&&!Kt){var r=de!==null&&(de.f&vt)!==0;if(!r&&(Ot===null||!kr.call(Ot,e))){var s=be.deps;if(be.f&_i)e.rv<On&&(e.rv=On,dt===null&&s!==null&&s[_t]===e?_t++:dt===null?dt=[e]:dt.push(e));else{(be.deps??=[]).push(e);var a=e.reactions;a===null?e.reactions=[be]:kr.call(a,be)||a.push(be)}}}if(mn&&qn.has(e))return qn.get(e);if(n){var o=e;if(mn){var l=o.v;return(!(o.f&Be)&&o.reactions!==null||Ku(o))&&(l=co(o)),qn.set(o,l),l}var c=(o.f&Lt)===0&&!Kt&&be!==null&&(Fs||(be.f&Lt)!==0),u=(o.f&gn)===0;zr(o)&&(c&&(o.f|=Lt),_u(o)),c&&!u&&(yu(o),Hu(o))}if(st?.has(e))return st.get(e);if(e.f&Sn)throw e.v;return e.v}function Hu(e){if(e.f|=Lt,e.deps!==null)for(const t of e.deps)(t.reactions??=[]).push(e),t.f&Je&&!(t.f&Lt)&&(yu(t),Hu(t))}function Ku(e){if(e.v===Te)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(qn.has(t)||t.f&Je&&Ku(t))return!0;return!1}function Bp(e){return e&&i(e)}function we(e){var t=Kt;try{return Kt=!0,e()}finally{Kt=t}}function go(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if($e in e)sa(e);else if(!Array.isArray(e))for(let t in e){const n=e[t];typeof n=="object"&&n&&$e in n&&sa(n)}}}function sa(e,t=new Set){if(typeof e=="object"&&e!==null&&!(e instanceof EventTarget)&&!t.has(e)){t.add(e),e instanceof Date&&e.getTime();for(let r in e)try{sa(e[r],t)}catch{}const n=Sa(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){const r=Bc(n);for(let s in r){const a=r[s].get;if(a)try{a.call(e)}catch{}}}}}function Fp(e,t){if(Xc(),te){const n=window.__svelte?.h;if(n?.has(e))return n.get(e);Dh()}return t()}const Yr=Symbol("events"),Wu=new Set,Ai=new Set;function Up(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 Yu(e,t,n,r={}){function s(a){if(r.capture||Ci.call(t,a),!a.cancelBubble)return Pn(()=>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 ze(e,t,n,r,s){var a={capture:r,passive:s},o=Yu(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&It(()=>{t.removeEventListener(e,o,a)})}function B(e,t,n){(t[Yr]??={})[e]=n}function le(e){for(var t=0;t<e.length;t++)Wu.add(e[t]);for(var n of Ai)n(e)}let Rl=null;function Ci(e){var t=this,n=t.ownerDocument,r=e.type,s=e.composedPath?.()||[],a=s[0]||e.target;Rl=e;var o=0,l=Rl===e&&e[Yr];if(l){var c=s.indexOf(l);if(c!==-1&&(t===document||t===window)){e[Yr]=t;return}var u=s.indexOf(t);if(u===-1)return;c<=u&&(o=c)}if(a=s[o]||e.target,a!==t){Hn(e,"currentTarget",{configurable:!0,get(){return a||n}});var d=be,f=de;pt(null),tt(null);try{for(var h,g=[];a!==null;){var S=a.assignedSlot||a.parentNode||a.host||null;try{var b=a[Yr]?.[r];b!=null&&(!a.disabled||e.target===a)&&b.call(a,e)}catch(_){h?g.push(_):h=_}if(e.cancelBubble||S===t||S===null)break;a=S}if(h){for(let _ of g)queueMicrotask(()=>{throw _});throw h}}finally{e[Yr]=t,delete e.currentTarget,pt(d),tt(f)}}}function Hp(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?.[yt];s?`${u}${s[0]}${s[1]}`:`${u}`;const d=n[0]?.eventPhase<Event.BUBBLING_PHASE?"capture":"";if(n[0]?.type+d,Ph(),c)throw c}l?.apply(t,n)}const Kp=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function Gu(e){return Kp?.createHTML(e)??e}function _o(e){var t=Rn("template");return t.innerHTML=Gu(e.replaceAll("<!>","<!---->")),t.content}const Wp=er?"template":"TEMPLATE",Yp=er?"script":"SCRIPT";function He(e,t){var n=de;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function C(e,t){var n=(t&Qi)!==0,r=(t&Oc)!==0,s,a=!e.startsWith("<!>");return()=>{if(te)return He(ue,null),ue;s===void 0&&(s=_o(a?e:"<!>"+e),n||(s=Re(s)));var o=r||uo?document.importNode(s,!0):s.cloneNode(!0);if(n){var l=Re(o),c=o.lastChild;He(l,c)}else He(o,o);return o}}function Xu(e,t,n="svg"){var r=!e.startsWith("<!>"),s=(t&Qi)!==0,a=`<${n}>${r?e:"<!>"+e}</${n}>`,o;return()=>{if(te)return He(ue,null),ue;if(!o){var l=_o(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;He(d,f)}else He(u,u);return u}}function yo(e,t){return Xu(e,t,"svg")}function Gp(e,t){return Xu(e,t,"math")}function Ju(e,t){var n=Ap();for(var r of e){if(typeof r=="string"){n.append(Ze(r));continue}if(r===void 0||r[0][0]==="/"){n.append(Tu(r?r[0].slice(3):""));continue}const[l,c,...u]=r,d=l==="svg"?ms:l==="math"?$i:t;var s=Rn(l,d,c?.is);for(var a in c)Cp(s,a,c[a]);if(u.length>0){var o=s.nodeName===Wp?s.content:s;o.append(Ju(u,s.nodeName==="foreignObject"?void 0:d))}n.append(s)}return n}function Xp(e,t){var n=(t&Qi)!==0,r=(t&Oc)!==0,s;return()=>{if(te)return He(ue,null),ue;if(s===void 0){const c=t&Yv?ms:t&Gv?$i:void 0;s=Ju(e,c),n||(s=Re(s))}var a=r||uo?document.importNode(s,!0):s.cloneNode(!0);if(n){var o=Re(a),l=a.lastChild;He(o,l)}else He(a,a);return a}}function Jp(e){return()=>Zp(e())}function Zp(e){if(te)return e;const t=e.nodeType===Gc,n=e.nodeName===Yp?[e]:e.querySelectorAll("script"),r=de;for(const a of n){const o=Rn("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=Ze(e+"");return He(t,t),t}var n=ue;return n.nodeType!==gs?(n.before(n=Ze()),Ie(n)):Ra(n),He(n,n),n}function Ye(){if(te)return He(ue,null),ue;var e=document.createDocumentFragment(),t=document.createComment(""),n=Ze();return e.append(t,n),He(t,n),e}function I(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 Qp(){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 $p=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function em(e){return $p.includes(e)||e.toLowerCase()==="!doctype"}function tm(e){return e.endsWith("capture")&&e!=="gotpointercapture"&&e!=="lostpointercapture"}const nm=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function rm(e){return nm.includes(e)}const sm={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 am(e){return e=e.toLowerCase(),sm[e]??e}const im=["touchstart","touchmove"];function om(e){return im.includes(e)}const lm=["textarea","script","style","title"];function cm(e){return lm.includes(e)}function Zu(e){return e?.replace(/\//g,"/")}let aa=!0;function dr(e){aa=e}function z(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 $u(e,t)}function Qu(e,t){Ei(),t.intro=t.intro??!1;const n=t.target,r=te,s=ue;try{for(var a=Re(n);a&&(a.nodeType!==_n||a.data!==ya);)a=St(a);if(!a)throw Un;Ce(!0),Ie(a);const o=$u(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!==Un&&console.warn("Failed to hydrate: ",o),t.recover===!1&&wh(),Ei(),fo(n),Ce(!1),Ne(e,t)}finally{Ce(r),Ie(s)}}const Ls=new Map;function $u(e,{target:t,anchor:n,props:r={},events:s,context:a,intro:o=!0,transformError:l}){Ei();var c=void 0,u=Rp(()=>{var d=n??t.appendChild(Ze());mu(d,{pending:()=>{}},g=>{re({});var S=Se;if(a&&(S.c=a),s&&(r.$$events=s),te&&He(g,null),aa=o,c=e(g,r)||{},aa=!0,te&&(de.nodes.end=ue,ue===null||ue.nodeType!==_n||ue.data!==ka))throw _s(),Un;se()},l);var f=new Set,h=g=>{for(var S=0;S<g.length;S++){var b=g[S];if(!f.has(b)){f.add(b);var _=om(b);for(const m of[t,document]){var w=Ls.get(m);w===void 0&&(w=new Map,Ls.set(m,w));var y=w.get(b);y===void 0?(m.addEventListener(b,Ci,{passive:_}),w.set(b,1)):w.set(b,y+1)}}}};return h(xa(Wu)),Ai.add(h),()=>{for(var g of f)for(const _ of[t,document]){var S=Ls.get(_),b=S.get(g);--b==0?(_.removeEventListener(g,Ci),S.delete(g),S.size===0&&Ls.delete(_)):S.set(g,b)}Ai.delete(h),d!==n&&d.parentNode?.removeChild(d)}});return Ti.set(c,u),c}let Ti=new WeakMap;function Ge(e,t){const n=Ti.get(e);return n?(Ti.delete(e),n(t)):Promise.resolve()}function um(e){const t=e();t&&em(t)&&qh()}function dm(e){const t=e();t&&!(typeof t=="string")&&lh()}function fm(e,t){e!=null&&typeof e.subscribe!="function"&&oh()}function ed(e){return e.toString=()=>(ih(),""),e}class Lr{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)mo(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&&(Ue(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();bo(o,u),u.append(Ze()),this.#n.set(a,{effect:o,fragment:u})}else Ue(o);this.#a.delete(a),this.#t.delete(a)};this.#s||!r?(this.#a.add(a),Vn(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)||(Ue(s.effect),this.#n.delete(r))};ensure(t,n){var r=pe,s=Cu();if(n&&!this.#t.has(t)&&!this.#n.has(t))if(s){var a=document.createDocumentFragment(),o=Ze();a.append(o),this.#n.set(t,{effect:nt(()=>n(o)),fragment:a})}else this.#t.set(t,nt(()=>n(this.anchor)));if(this.#e.set(r,t),s){for(const[l,c]of this.#t)l===t?r.unskip_effect(c):r.skip_effect(c);for(const[l,c]of this.#n)l===t?r.unskip_effect(c.effect):r.skip_effect(c.effect);r.oncommit(this.#i),r.ondiscard(this.#r)}else te&&(this.anchor=ue),this.#i(r)}}function en(e,t,...n){var r=new Lr(e);dn(()=>{const s=t()??null;r.ensure(s,s&&(a=>s(a,...n)))},$t)}function vm(e,t){const n=(r,...s)=>{var a=no;Sl(e);try{return t(r,...s)}finally{Sl(a)}};return ed(n),n}function hm(e){return(t,...n)=>{var r=e(...n),s;if(te)s=ue,ct();else{var a=r.render().trim(),o=_o(a);s=Re(o),t.before(s)}const l=r.setup?.(s);He(s,s),typeof l=="function"&&It(l)}}function pm(){return be===null&&yh(),(be.ac??=new AbortController).signal}function wo(e){Se===null&&jr(),xe(()=>{const t=we(e);if(typeof t=="function")return t})}function ko(e){Se===null&&jr(),wo(()=>()=>we(e))}function mm(e,t,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(e,{detail:t,bubbles:n,cancelable:r})}function bm(){const e=Se;return e===null&&jr(),(t,n,r)=>{const s=e.s.$$events?.[t];if(s){const a=Dr(s)?s.slice():[s],o=mm(t,n,r);for(const l of a)l.call(e.x,o);return!o.defaultPrevented}return!0}}function gm(e){Se===null&&jr(),Se.l===null&&Jc(),td(Se).b.push(e)}function _m(e){Se===null&&jr(),Se.l===null&&Jc(),td(Se).a.push(e)}function td(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}const nd=Object.freeze(Object.defineProperty({__proto__:null,afterUpdate:_m,beforeUpdate:gm,createContext:Yh,createEventDispatcher:bm,createRawSnippet:hm,flushSync:In,fork:dp,getAbortSignal:pm,getAllContexts:Gh,getContext:ro,hasContext:ru,hydratable:Fp,hydrate:Qu,mount:Ne,onDestroy:ko,onMount:wo,setContext:so,settled:Vp,tick:Is,unmount:Ge,untrack:we},Symbol.toStringTag,{value:"Module"}));function ym(){return Symbol(qc)}function rd(e,t,n,r){return e!==t&&typeof t=="object"&&$e in t&&Ah(n,Zu(r)),e}function wm(e,t,n,r,s){return rd(n==="="?e[t]=r:n==="&&="?e[t]&&=r():n==="||="?e[t]||=r():n==="??="?e[t]??=r():null,we(()=>e[t]),t,s)}async function km(e,t,n,r,s){return rd(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 xm(e){var t=Pl.get(e);if(t){for(const n of t)n.remove();Pl.delete(e)}}function Sm(e,t,n){return(...r)=>{const s=e(...r);var a=te?s:s.nodeType===Gc?s.firstChild:s;return sd(a,t,n),s}}function Em(e,t,n){e.__svelte_meta={parent:qs,loc:{file:t,line:n[0],column:n[1]}},n[2]&&sd(e.firstChild,t,n[2])}function sd(e,t,n){for(var r=0,s=0;e&&r<n.length;){if(te&&e.nodeType===_n){var a=e;a.data[0]===ya?s+=1:a.data[0]===ka&&(s-=1)}s===0&&e.nodeType===Yc&&Em(e,t,n[r++]),e=e.nextSibling}}function Im(e){const t=xt(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];Ue(l)}l=nt(()=>{u=u[rh]??u,c&&dr(!1);var f=new.target?new a(u,s):a(u,s);f&&Object.defineProperties(o,Object.getOwnPropertyDescriptors(f)),c&&dr(!0)}),de.nodes=l.nodes}},$t),c=!0,te&&(u=ue),o}return n[yt]=e[yt],n[ar]={fn:e,current:t,update:r=>{x(n[ar].current,r[ar].fn),r[ar].current=n[ar].current}},n}function Am(e){const t=Se?.function,n=Se?.p?.function;return{mutation:(r,s,a,o,l)=>{const c=s[0];if(Dl(e,c)||!n)return a;let u=e;for(let f=0;f<s.length-1;f++)if(u=u[s[f]],!u?.[$e])return a;const d=Zu(`${t[yt]}:${o}:${l}`);return Mh(c,d,r,n[yt]),a},binding:(r,s,a)=>{!Dl(e,r)&&n&&a()?.[$e]&&jh(t[yt],r,s[yt],n[yt])}}}function Dl(e,t){const n=$e in e||Ea in e;return!!Wt(e,t)?.set||n&&t in e||!(t in e)}function Cm(e){e&&dh(e[yt]??"a component",e.name)}function Tm(){const e=Se?.function;function t(n){uh(n,e[yt])}return{$destroy:()=>t("$destroy()"),$on:()=>t("$on(...)"),$set:()=>t("$set(...)")}}function Rm(e,t,n=!1){ho();let r=!0,s=Te;ju(()=>{try{var a=e()}catch(l){s=l;return}var o=Gn(a,!0,!0);we(()=>{if(n){if(t(...o),!r){const l=Hh("$inspect(...)");l&&(console.groupCollapsed("stack trace"),console.log(l),console.groupEnd())}}else t(r?"init":"update",...o)}),r=!1}),qe(()=>{try{e()}catch{}s!==Te&&(console.error(s),s=Te)})}function Pm(e,t=[],n=[],r){var s=te,a=null;if(s&&(ct(),a=Yn(!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 Dm(e,...t){(typeof e!="object"||!(e instanceof Node))&&xl();for(let n of t)typeof n!="function"&&xl()}const jl=0,Ml=1,jm=2;function Mm(e,t,n,r,s){te&&ct();var a=Te,o=xt(a),l=xt(a),c=new Lr(e);dn(()=>{var u=pe;u.deactivate();var d=t();u.activate();var f=!1;let h=te&&kl(d)===(e.data===wa);if(h&&(Ie(Yn()),Ce(!1)),kl(d)){var g=Ca(),S=!1;const b=_=>{if(!f){S=!0,g(!1),qt.ensure(),te&&Ce(!1);try{_()}finally{Xn(!1),pr||In()}}};d.then(_=>{b(()=>{on(o,_),c.ensure(Ml,r&&(w=>r(w,o)))})},_=>{b(()=>{if(on(l,_),c.ensure(jm,s&&(w=>s(w,l))),!s)throw l.v})}),te?c.ensure(jl,n):ot(()=>{S||b(()=>{c.ensure(jl,n)})})}else on(o,d),c.ensure(Ml,r&&(b=>r(b,o)));return h&&Ce(!0),()=>{f=!0}})}function H(e,t,n=!1){var r;te&&(r=ue,ct());var s=new Lr(e),a=n?$t:0;function o(l,c){if(te){var u=to(r);if(l!==parseInt(u.substring(1))){var d=Yn();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 zm=Symbol("NaN");function Lm(e,t,n){te&&ct();var r=new Lr(e);dn(()=>{var s=t();s!==s&&(s=zm),r.ensure(s,n)})}function Om(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 Vt(e,t){return t}function Nm(e,t,n){for(var r=[],s=t.length,a,o=t.length,l=0;l<s;l++){let f=t[l];Vn(f,()=>{if(a){if(a.pending.delete(f),a.done.add(f),a.pending.size===0){var h=e.outrogroups;Ri(e,xa(a.done)),h.delete(a),h.size===0&&(e.outrogroups=null)}}else o-=1},!1)}if(o===0){var c=r.length===0&&n!==null;if(c){var u=n,d=u.parentNode;fo(d),d.append(u),e.items.clear()}Ri(e,t,!c)}else a={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(a)}function Ri(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();bo(a,o)}else Ue(t[s],n)}}var zl;function me(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(Ze())}te&&ct();var d=null,f=lo(()=>{var m=n();return Dr(m)?m:m==null?[]:xa(m)}),h,g=new Map,S=!0;function b(m){y.effect.f&vt||(y.pending.delete(m),y.fallback=d,qm(y,h,o,t,r),d!==null&&(h.length===0?d.f&sn?(d.f^=sn,Gr(d,null,o)):mo(d):Vn(d,()=>{d=null})))}function _(m){y.pending.delete(m)}var w=dn(()=>{h=i(f);var m=h.length;let A=!1;if(te){var j=to(o)===wa;j!==(m===0)&&(o=Yn(),Ie(o),Ce(!1),A=!0)}for(var P=new Set,D=pe,M=Cu(),R=0;R<m;R+=1){te&&ue.nodeType===_n&&ue.data===ka&&(o=ue,A=!0,Ce(!1));var O=h[R],E=r(O,R),T=S?null:l.get(E);T?(T.v&&on(T.v,O),T.i&&on(T.i,R),M&&D.unskip_effect(T.e)):(T=Vm(l,S?o:zl??=Ze(),O,E,R,s,t,n),S||(T.e.f|=sn),l.set(E,T)),P.add(E)}if(m===0&&a&&!d&&(S?d=nt(()=>a(o)):(d=nt(()=>a(zl??=Ze())),d.f|=sn)),m>P.size&&fh(),te&&m>0&&Ie(Yn()),!S)if(g.set(D,P),M){for(const[q,L]of l)P.has(q)||D.skip_effect(L.e);D.oncommit(b),D.ondiscard(_)}else b(D);A&&Ce(!0),i(f)}),y={effect:w,items:l,pending:g,outrogroups:null,fallback:d};S=!1,te&&(o=ue)}function Ur(e){for(;e!==null&&!(e.f&Zt);)e=e.next;return e}function qm(e,t,n,r,s){var a=(r&qv)!==0,o=t.length,l=e.items,c=Ur(e.effect.first),u,d=null,f,h=[],g=[],S,b,_,w;if(a)for(w=0;w<o;w+=1)S=t[w],b=s(S,w),_=l.get(b).e,_.f&sn||(_.nodes?.a?.measure(),(f??=new Set).add(_));for(w=0;w<o;w+=1){if(S=t[w],b=s(S,w),_=l.get(b).e,e.outrogroups!==null)for(const O of e.outrogroups)O.pending.delete(_),O.done.delete(_);if(_.f&it&&(mo(_),a&&(_.nodes?.a?.unfix(),(f??=new Set).delete(_))),_.f&sn)if(_.f^=sn,_===c)Gr(_,null,n);else{var y=d?d.next:c;_===e.effect.last&&(e.effect.last=_.prev),_.prev&&(_.prev.next=_.next),_.next&&(_.next.prev=_.prev),wn(e,d,_),wn(e,_,y),Gr(_,y,n),d=_,h=[],g=[],c=Ur(d.next);continue}if(_!==c){if(u!==void 0&&u.has(_)){if(h.length<g.length){var m=g[0],A;d=m.prev;var j=h[0],P=h[h.length-1];for(A=0;A<h.length;A+=1)Gr(h[A],m,n);for(A=0;A<g.length;A+=1)u.delete(g[A]);wn(e,j.prev,P.next),wn(e,d,j),wn(e,P,m),c=m,d=P,w-=1,h=[],g=[]}else u.delete(_),Gr(_,c,n),wn(e,_.prev,_.next),wn(e,_,d===null?e.effect.first:d.next),wn(e,d,_),d=_;continue}for(h=[],g=[];c!==null&&c!==_;)(u??=new Set).add(c),g.push(c),c=Ur(c.next);if(c===null)continue}_.f&sn||h.push(_),d=_,c=Ur(_.next)}if(e.outrogroups!==null){for(const O of e.outrogroups)O.pending.size===0&&(Ri(e,xa(O.done)),e.outrogroups?.delete(O));e.outrogroups.size===0&&(e.outrogroups=null)}if(c!==null||u!==void 0){var D=[];if(u!==void 0)for(_ of u)_.f&it||D.push(_);for(;c!==null;)!(c.f&it)&&c!==e.fallback&&D.push(c),c=Ur(c.next);var M=D.length;if(M>0){var R=r&zc&&o===0?n:null;if(a){for(w=0;w<M;w+=1)D[w].nodes?.a?.measure();for(w=0;w<M;w+=1)D[w].nodes?.a?.fix()}Nm(e,D,R)}}a&&ot(()=>{if(f!==void 0)for(_ of f)_.nodes?.a?.apply()})}function Vm(e,t,n,r,s,a,o,l){var c=o&Ov?o&Vv?xt(n):Ta(n,!1,!1):null,u=o&Nv?xt(s):null;return{v:c,i:u,e:nt(()=>(a(t,c??n,u??s,l),()=>{e.delete(r)}))}}function Gr(e,t,n){if(e.nodes)for(var r=e.nodes.start,s=e.nodes.end,a=t&&!(t.f&sn)?t.nodes.start:n;r!==null;){var o=St(r);if(a.before(r),r===s)return;r=o}}function wn(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function Bm(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!==""&&He(Re(c),c.lastChild);return}if(u.nodes!==null&&(Lu(u.nodes.start,u.nodes.end),u.nodes=null),l!==""){if(te){ue.data;for(var d=ct(),f=d;d!==null&&(d.nodeType!==_n||d.data!=="");)f=d,d=St(d);if(d===null)throw _s(),Un;He(ue,f),o=Ie(d);return}var h=r?ms:s?$i:void 0,g=Rn(r?"svg":s?"math":"template",h);g.innerHTML=l;var S=r||s?g:g.content;if(He(Re(S),S.lastChild),r||s)for(;Re(S);)o.before(Re(S));else o.before(S)}})}function Fm(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 Um(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 Lr(e);dn(()=>{var a=t()??null;if(te){var o=to(r),l=o===ya,c=a!==null;if(l!==c){var u=Yn();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 Hm=()=>performance.now(),rn={tick:e=>requestAnimationFrame(e),now:()=>Hm(),tasks:new Set};function ad(){const e=rn.now();rn.tasks.forEach(t=>{t.c(e)||(rn.tasks.delete(t),t.f())}),rn.tasks.size!==0&&rn.tick(ad)}function Km(e){let t;return rn.tasks.size===0&&rn.tick(ad),{promise:new Promise(n=>{rn.tasks.add(t={c:e,f:n})}),abort(){rn.tasks.delete(t)}}}function ia(e,t){Pn(()=>{e.dispatchEvent(new CustomEvent(t))})}function Wm(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 Ll(e){const t={},n=e.split(";");for(const r of n){const[s,a]=r.split(":");if(!s||a===void 0)break;const o=Wm(s.trim());t[o]=a.trim()}return t}const Ym=e=>e;let id=null;function Ol(e){id=e}function Gm(e,t,n){var r=id??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 h=e.style;c={position:h.position,width:h.width,height:h.height,transform:h.transform},h.position="absolute",h.width=d,h.height=f;var g=e.getBoundingClientRect();if(a.left!==g.left||a.top!==g.top){var S=`translate(${a.left-g.left}px, ${a.top-g.top}px)`;h.transform=h.transform?`${h.transform} ${S}`:S}}}},unfix(){if(c){var u=e.style;u.position=c.position,u.width=c.width,u.height=c.height,u.transform=c.transform}}},s.a.element=e}function Xm(e,t,n,r){var s=(e&Hv)!==0,a=(e&Kv)!==0,o=s&&a,l=(e&Wv)!==0,c=o?"both":s?"in":"out",u,d=t.inert,f=t.style.overflow,h,g;function S(){return Pn(()=>u??=n()(t,r?.()??{},{direction:c}))}var b={is_global:l,in(){if(t.inert=d,!s){g?.abort(),g?.reset?.();return}a||h?.abort(),h=oa(t,S(),g,1,()=>{ia(t,"introend"),h?.abort(),h=u=void 0,t.style.overflow=f})},out(m){if(!a){m?.(),u=void 0;return}t.inert=!0,g=oa(t,S(),h,0,()=>{ia(t,"outroend"),m?.()})},stop:()=>{h?.abort(),g?.abort()}},_=de;if((_.nodes.t??=[]).push(b),s&&aa){var w=l;if(!w){for(var y=_.parent;y&&y.f&$t;)for(;(y=y.parent)&&!(y.f&Yt););w=!y||(y.f&gn)!==0}w&&Et(()=>{we(()=>b.in())})}}function oa(e,t,n,r,s){var a=r===1;if(ir(t)){var o,l=!1;return ot(()=>{if(!l){var _=t({direction:a?"in":"out"});o=oa(e,_,n,r,s)}}),{abort:()=>{l=!0,o?.abort()},deactivate:()=>o.deactivate(),reset:()=>o.reset(),t:()=>o.t()}}if(n?.deactivate(),!t?.duration&&!t?.delay)return ia(e,a?"introstart":"outrostart"),s(),{abort:wt,deactivate:wt,reset:wt,t:()=>r};const{delay:c=0,css:u,tick:d,easing:f=Ym}=t;var h=[];if(a&&n===void 0&&(d&&d(0,1),u)){var g=Ll(u(0,1));h.push(g,g)}var S=()=>1-r,b=e.animate(h,{duration:c,fill:"forwards"});return b.onfinish=()=>{b.cancel(),ia(e,a?"introstart":"outrostart");var _=n?.t()??1-r;n?.abort();var w=r-_,y=t.duration*Math.abs(w),m=[];if(y>0){var A=!1;if(u)for(var j=Math.ceil(y/16.666666666666668),P=0;P<=j;P+=1){var D=_+w*f(P/j),M=Ll(u(D,1-D));m.push(M),A||=M.overflow==="hidden"}A&&(e.style.overflow="hidden"),S=()=>{var R=b.currentTime;return _+w*f(R/y)},d&&Km(()=>{if(b.playState!=="running")return!1;var R=S();return d(R,1-R),!0})}b=e.animate(m,{duration:y,fill:"forwards"}),b.onfinish=()=>{S=()=>r,d?.(r,1-r),s()}},{abort:()=>{b&&(b.cancel(),b.effect=null,b.onfinish=wt)},deactivate:()=>{s=wt},reset:()=>{r===0&&d?.(1,0)},t:()=>S()}}function Jm(e,t,n,r,s,a){let o=te;te&&ct();var l=null;te&&ue.nodeType===Yc&&(l=ue,ct());var c=te?ue:e,u=de,d=new Lr(c,!1);dn(()=>{const f=t()||null;var h=s?s():n||f==="svg"?ms:void 0;if(f===null){d.ensure(null,null),dr(!0);return}return d.ensure(f,g=>{if(f){if(l=te?l:Rn(f,h),He(l,l),r){te&&cm(f)&&l.append(document.createComment(""));var S=te?Re(l):l.appendChild(Ze());te&&(S===null?Ce(!1):Ie(S)),Ol(u),r(l,S),Ol(null)}de.nodes.end=l,g.before(l)}te&&Ie(g)}),dr(!0),()=>{f&&dr(!1)}},$t),It(()=>{dr(!0)}),o&&(Ce(!0),Ie(c))}function Zm(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=St(a);if(a===null)Ce(!1);else{var o=St(a);a.remove(),Ie(o)}}te||(s=document.head.appendChild(Ze()));try{dn(()=>t(s),Kc|Tn)}finally{r&&(Ce(!0),Ie(n))}}function Qm(e,t){Et(()=>{var n=e.getRootNode(),r=n.host?n:n.head??n.ownerDocument.head;if(!r.querySelector("#"+t.hash)){const s=Rn("style");s.id=t.hash,s.textContent=t.code,r.appendChild(s)}})}function od(e,t,n){Et(()=>{var r=we(()=>t(e,n?.())||{});if(n&&r?.update){var s=!1,a={};qe(()=>{var o=n();go(o),s&&$c(a,o)&&(a=o,r.update(o))}),s=!0}if(r?.destroy)return()=>r.destroy()})}function xo(e,t){var n=void 0,r;Mu(()=>{n!==(n=t())&&(r&&(Ue(r),r=null),n&&(r=nt(()=>{Et(()=>n(e))})))})}const $m=/[&"<]/g;function eb(e,t){const n=String(e??""),r=$m;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==="&"?"&":l==='"'?""":"<"),a=o+1}return s+n.substring(a)}function ld(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=ld(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function tb(){for(var e,t,n=0,r="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=ld(e))&&(r&&(r+=" "),r+=t);return r}const Nl={translate:new Map([[!0,"yes"],[!1,"no"]])};function nb(e,t,n=!1){if(e==="hidden"&&t!=="until-found"&&(n=!0),t==null||!t&&n)return"";const r=Zv.call(Nl,e)&&Nl[e].get(t)||t,s=n?'=""':`="${eb(r)}"`;return` ${e}${s}`}function cd(e){return typeof e=="object"?tb(e):e??""}const ql=[...`
|
|
7
|
-
\r\f \v\uFEFF`];function rb(e,t,n){var r=e==null?"":""+e;if(t&&(r=r?r+" "+t:t),n){for(var s of Object.keys(n))if(n[s])r=r?r+" "+s:s;else if(r.length)for(var a=s.length,o=0;(o=r.indexOf(s,o))>=0;){var l=o+a;(o===0||ql.includes(r[o-1]))&&(l===r.length||ql.includes(r[l]))?r=(o===0?"":r.substring(0,o))+r.substring(l+1):o=l}}return r===""?null:r}function Vl(e,t=!1){var n=t?" !important;":";",r="";for(var s of Object.keys(e)){var a=e[s];a!=null&&a!==""&&(r+=" "+s+": "+a+n)}return r}function si(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function sb(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(si)),s&&c.push(...Object.keys(s).map(si));var u=0,d=-1;const b=e.length;for(var f=0;f<b;f++){var h=e[f];if(l?h==="/"&&e[f-1]==="*"&&(l=!1):a?a===h&&(a=!1):h==="/"&&e[f+1]==="*"?l=!0:h==='"'||h==="'"?a=h:h==="("?o++:h===")"&&o--,!l&&a===!1&&o===0){if(h===":"&&d===-1)d=f;else if(h===";"||f===b-1){if(d!==-1){var g=si(e.substring(u,d).trim());if(!c.includes(g)){h!==";"&&f++;var S=e.substring(u,f).trim();n+=" "+S+";"}}u=f+1,d=-1}}}}return r&&(n+=Vl(r)),s&&(n+=Vl(s,!0)),n=n.trim(),n===""?null:n}return e==null?null:String(e)}function ce(e,t,n,r,s,a){var o=e.__className;if(te||o!==n||o===void 0){var l=rb(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 ai(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 Ke(e,t,n,r){var s=e.__style;if(te||s!==t){var a=sb(t,r);(!te||a!==e.getAttribute("style"))&&(a==null?e.removeAttribute("style"):e.style.cssText=a),e.__style=t}else r&&(Array.isArray(r)?(ai(e,n?.[0],r[0]),ai(e,n?.[1],r[1],"important")):ai(e,n,r));return r}function ss(e,t,n=!1){if(e.multiple){if(t==null)return;if(!Dr(t))return zh();for(var r of e.options)r.selected=t.includes(Zr(r));return}for(r of e.options){var s=Zr(r);if(Su(s,t)){r.selected=!0;return}}(!n||t!==void 0)&&(e.selectedIndex=-1)}function So(e){var t=new MutationObserver(()=>{ss(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),It(()=>{t.disconnect()})}function as(e,t,n=t){var r=new WeakSet,s=!0;xs(e,"change",a=>{var o=a?"[selected]":":checked",l;if(e.multiple)l=[].map.call(e.querySelectorAll(o),Zr);else{var c=e.querySelector(o)??e.querySelector("option:not([disabled])");l=c&&Zr(c)}n(l),e.__value=l,pe!==null&&r.add(pe)}),Et(()=>{var a=t();if(e===document.activeElement){var o=pe;if(r.has(o))return}if(ss(e,a,s),s&&a===void 0){var l=e.querySelector(":checked");l!==null&&(a=Zr(l),n(a))}e.__value=a,s=!1}),So(e)}function Zr(e){return"__value"in e?e.__value:e.value}const lr=Symbol("class"),cr=Symbol("style"),ud=Symbol("is custom element"),dd=Symbol("is html"),ab=er?"link":"LINK",ib=er?"input":"INPUT",ob=er?"option":"OPTION",lb=er?"select":"SELECT",cb=er?"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),Ru()}}function is(e,t){var n=Pa(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==cb)||(e.value=t??"")}function Eo(e,t){var n=Pa(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function Io(e,t){t?e.hasAttribute("selected")||e.setAttribute("selected",""):e.removeAttribute("selected")}function ub(e,t){const n=e.checked;e.defaultChecked=t,e.checked=n}function db(e,t){const n=e.value;e.defaultValue=t,e.value=n}function ne(e,t,n,r){var s=Pa(e);te&&(s[t]=e.getAttribute(t),t==="src"||t==="srcset"||t==="href"&&e.nodeName===ab)||s[t]!==(s[t]=n)&&(t==="loading"&&(e[th]=n),n==null?e.removeAttribute(t):typeof n!="string"&&Ao(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function fb(e,t,n){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n)}function vb(e,t,n){var r=be,s=de;let a=te;te&&Ce(!1),pt(null),tt(null);try{t!=="style"&&(Pi.has(e.getAttribute("is")||e.nodeName)||!customElements||customElements.get(e.getAttribute("is")||e.nodeName.toLowerCase())?Ao(e).includes(t):n&&typeof n=="object")?e[t]=n:ne(e,t,n==null?n:String(n))}finally{pt(r),tt(s),a&&Ce(!0)}}function hb(e,t,n,r,s=!1,a=!1){if(te&&s&&e.nodeName===ib){var o=e,l=o.type==="checkbox"?"defaultChecked":"defaultValue";l in n||ge(o)}var c=Pa(e),u=c[ud],d=!c[dd];let f=te&&u;f&&Ce(!1);var h=t||{},g=e.nodeName===ob;for(var S in t)S in n||(n[S]=null);n.class?n.class=cd(n.class):(r||n[lr])&&(n.class=null),n[cr]&&(n.style??=null);var b=Ao(e);for(const P in n){let D=n[P];if(g&&P==="value"&&D==null){e.value=e.__value="",h[P]=D;continue}if(P==="class"){var _=e.namespaceURI==="http://www.w3.org/1999/xhtml";ce(e,_,D,r,t?.[lr],n[lr]),h[P]=D,h[lr]=n[lr];continue}if(P==="style"){Ke(e,D,t?.[cr],n[cr]),h[P]=D,h[cr]=n[cr];continue}var w=h[P];if(!(D===w&&!(D===void 0&&e.hasAttribute(P)))){h[P]=D;var y=P[0]+P[1];if(y!=="$$")if(y==="on"){const M={},R="$$"+P;let O=P.slice(2);var m=rm(O);if(tm(O)&&(O=O.slice(0,-7),M.capture=!0),!m&&w){if(D!=null)continue;e.removeEventListener(O,h[R],M),h[R]=null}if(m)B(O,e,D),le([O]);else if(D!=null){let E=function(T){h[P].call(this,T)};h[R]=Yu(O,e,E,M)}}else if(P==="style")ne(e,P,D);else if(P==="autofocus")Mr(e,!!D);else if(!u&&(P==="__value"||P==="value"&&D!=null))e.value=e.__value=D;else if(P==="selected"&&g)Io(e,D);else{var A=P;d||(A=am(A));var j=A==="defaultValue"||A==="defaultChecked";if(D==null&&!u&&!j)if(c[P]=null,A==="value"||A==="checked"){let M=e;const R=t===void 0;if(A==="value"){let O=M.defaultValue;M.removeAttribute(A),M.defaultValue=O,M.value=M.__value=R?O:null}else{let O=M.defaultChecked;M.removeAttribute(A),M.defaultChecked=O,M.checked=R?O:!1}}else e.removeAttribute(P);else j||b.includes(A)&&(u||typeof D!="string")?(e[A]=D,A in c&&(c[A]=Te)):typeof D!="function"&&ne(e,A,D)}}}return f&&Ce(!0),h}function pb(e,t,n=[],r=[],s=[],a,o=!1,l=!1){ys(s,n,r,c=>{var u=void 0,d={},f=e.nodeName===lb,h=!1;if(Mu(()=>{var S=t(...c.map(i)),b=hb(e,u,S,a,o,l);h&&f&&"value"in S&&ss(e,S.value);for(let w of Object.getOwnPropertySymbols(d))S[w]||Ue(d[w]);for(let w of Object.getOwnPropertySymbols(S)){var _=S[w];w.description===qc&&(!u||_!==u[w])&&(d[w]&&Ue(d[w]),d[w]=nt(()=>xo(e,()=>_))),b[w]=_}u=b}),f){var g=e;Et(()=>{ss(g,u.value,!0),So(g)})}h=!0})}function Pa(e){return e.__attributes??={[ud]:e.nodeName.includes("-"),[dd]:e.namespaceURI===Nc}}var Pi=new Map;function Ao(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=Bc(s);for(var o in r)r[o].set&&n.push(o);s=Sa(s)}return n}let ii=null;function fd(){if(ii===null){var e=Rn("select");e.innerHTML=Gu("<option><span>t</span></option>"),ii=e.firstChild?.firstChild?.nodeType===1}return ii}function mb(e,t){fd()&&xo(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 bb(e,t){var n=te;fd()||(Ce(!1),e.textContent="",e.append(Tu("")));try{t()}finally{n&&(te?v(e):(Ce(!0),Ie(e)))}}function gb(e){mt(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=li(e)?ci(a):a,n(a),pe!==null&&r.add(pe),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(li(e)?ci(e.value):e.value),pe!==null&&r.add(pe)),qe(()=>{var s=t();if(e===document.activeElement){var a=pe;if(r.has(a))return}li(e)&&s===ci(e.value)||e.type==="date"&&!s&&!e.value||s!==e.value&&(e.value=s??"")})}const oi=new Set;function _b(e,t,n,r,s=r){var a=n.getAttribute("type")==="checkbox",o=e;let l=!1;if(t!==null)for(var c of t)o=o[c]??=[];o.push(n),xs(n,"change",()=>{var u=n.__value;a&&(u=Bl(o,u,n.checked)),s(u)},()=>s(a?[]:null)),qe(()=>{var u=r();if(te&&n.defaultChecked!==n.checked){l=!0;return}a?(u=u||[],n.checked=u.includes(n.__value)):n.checked=Su(n.__value,u)}),It(()=>{var u=o.indexOf(n);u!==-1&&o.splice(u,1)}),oi.has(o)||(oi.add(o),ot(()=>{o.sort((u,d)=>u.compareDocumentPosition(d)===4?-1:1),oi.delete(o)})),ot(()=>{if(l){var u;if(a)u=Bl(o,u,n.checked);else{var d=o.find(f=>f.checked);u=d?.__value}s(u)}})}function Qr(e,t,n=t){xs(e,"change",r=>{var s=r?e.defaultChecked:e.checked;n(s)}),(te&&e.defaultChecked!==e.checked||we(t)==null)&&n(e.checked),qe(()=>{var r=t();e.checked=!!r})}function Bl(e,t,n){for(var r=new Set,s=0;s<e.length;s+=1)e[s].checked&&r.add(e[s].__value);return n||r.delete(t),Array.from(r)}function li(e){var t=e.type;return t==="number"||t==="range"}function ci(e){return e===""?null:+e}function yb(e,t,n=t){xs(e,"change",()=>{n(e.files)}),te&&e.files&&n(e.files),qe(()=>{e.files=t()})}function Co(e){for(var t=[],n=0;n<e.length;n+=1)t.push({start:e.start(n),end:e.end(n)});return t}function wb(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)}),It(()=>{cancelAnimationFrame(r),e.removeEventListener("timeupdate",a)})}function kb(e,t){var n;mt(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=Co(r),t(n))})}function xb(e,t){mt(e,["loadedmetadata"],()=>t(Co(e.seekable)))}function Sb(e,t){mt(e,["timeupdate"],()=>t(Co(e.played)))}function Eb(e,t){mt(e,["seeking","seeked"],()=>t(e.seeking))}function Ib(e,t){mt(e,["timeupdate","ended"],()=>t(e.ended))}function Ab(e,t){mt(e,["loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","emptied"],()=>t(e.readyState))}function Cb(e,t,n=t){Et(()=>{var r=Number(t());r!==e.playbackRate&&!isNaN(r)&&(e.playbackRate=r)}),Et(()=>{mt(e,["ratechange"],()=>{n(e.playbackRate)})})}function Tb(e,t,n=t){var r=t(),s=()=>{r!==e.paused&&n(r=e.paused)};mt(e,["play","pause","canplay"],s,r==null),Et(()=>{(r=!!t())!==e.paused&&(r?e.pause():e.play().catch(a=>{throw n(r=!0),a}))})}function Rb(e,t,n=t){var r=()=>{n(e.volume)};t()==null&&r(),mt(e,["volumechange"],r,!1),qe(()=>{var s=Number(t());s!==e.volume&&!isNaN(s)&&(e.volume=s)})}function Pb(e,t,n=t){var r=()=>{n(e.muted)};t()==null&&r(),mt(e,["volumechange"],r,!1),qe(()=>{var s=!!t();e.muted!==s&&(e.muted=s)})}function Db(e){mt(window,["online","offline"],()=>{e(navigator.onLine)})}function jb(e,t,n){var r=Wt(e,t);r&&r.set&&(e[t]=n,It(()=>{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 Mb=new Cs({box:"content-box"}),vd=new Cs({box:"border-box"}),zb=new Cs({box:"device-pixel-content-box"});function Lb(e,t,n){var r=t==="contentRect"||t==="contentBoxSize"?Mb:t==="borderBoxSize"?vd:zb,s=r.observe(e,a=>n(a[t]));It(s)}function Ob(e,t,n){var r=vd.observe(e,()=>n(e[t]));Et(()=>(we(()=>n(e[t])),r))}function Fl(e,t){return e===t||e?.[$e]===t}function Le(e={},t,n,r){var s=Se.r,a=de;return Et(()=>{var o,l;return qe(()=>{o=l,l=r?.()||[],we(()=>{e!==n(...l)&&(t(e,...l),o&&Fl(n(...o),e)&&t(null,...o))})}),()=>{let c=a;for(;c!==s&&c.parent!==null&&c.parent.f&gi;)c=c.parent;const u=()=>{l&&Fl(n(...l),e)&&t(null,...l)},d=c.teardown;c.teardown=()=>{u(),d?.()}}}),e}function Nb(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 qb(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)&&It(()=>{n.removeEventListener(t,a)})}function Vb(e,t){mt(e,["focus","blur"],()=>{t(e===document.activeElement)})}function Bb(e,t,n=t){var r=e==="x",s=()=>Pn(()=>{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))}),Et(s),It(()=>{removeEventListener("scroll",s)})}function Fb(e,t){mt(window,["resize"],()=>Pn(()=>t(window[e])))}function Ub(e){return function(...t){var n=t[0];n.isTrusted&&e?.apply(this,t)}}function Hb(e){return function(...t){var n=t[0];n.target===this&&e?.apply(this,t)}}function Kb(e){return function(...t){var n=t[0];return n.stopPropagation(),e?.apply(this,t)}}function Wb(e){var t=!1;return function(...n){if(!t)return t=!0,e?.apply(this,n)}}function Yb(e){return function(...t){var n=t[0];return n.stopImmediatePropagation(),e?.apply(this,t)}}function Gb(e){return function(...t){var n=t[0];return n.preventDefault(),e?.apply(this,t)}}function Xb(e=!1){const t=Se,n=t.l.u;if(!n)return;let r=()=>go(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&&Du(()=>{Ul(t,r),mi(n.b)}),xe(()=>{const s=we(()=>n.m.map(Qv));return()=>{for(const a of s)typeof a=="function"&&a()}}),n.a.length&&xe(()=>{Ul(t,r),mi(n.a)})}function Ul(e,t){if(e.l.s)for(const n of e.l.s)i(n);t()}function Jb(e){var t=xt(0);return function(){return arguments.length===1?(x(t,i(t)+1),arguments[0]):(i(t),e())}}function Zb(e,t){var n=e.$$events?.[t.type],r=Dr(n)?n.slice():n==null?[]:[n];for(var s of r)s.call(this,t)}function Qb(e,t,n){e.$$events||={},e.$$events[t]||=[],e.$$events[t].push(n)}function $b(e){for(var t in e)t in this&&(this[t]=e[t])}function eg(e,t=1){const n=e();return e(n+t),n}function tg(e,t=1){const n=e()+t;return e(n),n}const ng={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 rg(e,t,n){return new Proxy({props:e,exclude:t},ng)}const sg={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{tt(e.parent_effect),e.special[t]=G({get[t](){return e.props[t]}},t,Lc)}finally{tt(r)}}return e.special[t](n),Er(e.version),!0},getOwnPropertyDescriptor(e,t){if(!e.exclude.includes(t)&&t in e.props)return{enumerable:!0,configurable:!0,value:e.props[t]}},deleteProperty(e,t){return e.exclude.includes(t)||(e.exclude.push(t),Er(e.version)),!0},has(e,t){return e.exclude.includes(t)?!1:t in e.props},ownKeys(e){return Reflect.ownKeys(e.props).filter(t=>!e.exclude.includes(t))}};function ag(e,t){return new Proxy({props:e,exclude:t,special:{},version:xt(0),parent_effect:de},sg)}const ig={get(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(ir(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];ir(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(ir(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===$e||t===Ea)return!1;for(let n of e.props)if(ir(n)&&(n=n()),n!=null&&t in n)return!0;return!1},ownKeys(e){const t=[];for(let n of e.props)if(ir(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},ig)}function G(e,t,n,r){var s=(n&Fv)!==0,a=(n&Uv)!==0,o=r,l=!0,c=()=>(l&&(l=!1,o=a?we(r):r),o);let u;if(s){var d=$e in e||Ea in e;u=Wt(e,t)?.set??(d&&t in e?y=>e[t]=y:void 0)}var f,h=!1;s?[f,h]=du(()=>e[t]):f=e[t],f===void 0&&r!==void 0&&(f=c(),u&&(kh(),u(f)));var g;if(g=()=>{var y=e[t];return y===void 0?c():(l=!0,y)},!(n&Lc))return g;if(u){var S=e.$$legacy;return function(y,m){return arguments.length>0?((!m||S||h)&&u(m?g():y),y):g()}}var b=!1,_=(n&Bv?ks:lo)(()=>(b=!1,g()));s&&i(_);var w=de;return function(y,m){if(arguments.length>0){const A=m?i(_):s?oe(y):y;return x(_,A),b=!0,o!==void 0&&(o=A),y}return mn&&b||w.f&vt?_.v:i(_)}}function og(e,t,n,r,s,a){bu(t,()=>{var o=!1;no?.[yt],qe(()=>{if(!o){var[l,c]=du(n);if(!c){var u=r(),d=!1,f=qe(()=>{d||l[u]});d=!0,f.deps===null&&(Ch(),o=!0)}}})})}function lg(e){return new cg(e)}class cg{#e;#t;constructor(t){var n=new Map,r=(a,o)=>{var l=Ta(o,!1,!1);return n.set(a,l),l};const s=new Proxy({...t.props||{},$$events:{}},{get(a,o){return i(n.get(o)??r(o,Reflect.get(a,o)))},has(a,o){return o===Ea?!0:(i(n.get(o)??r(o,Reflect.get(a,o))),Reflect.has(a,o))},set(a,o,l){return x(n.get(o)??r(o,l),l),Reflect.set(a,o,l)}});this.#t=(t.hydrate?Qu: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)&&In(),this.#e=s.$$events;for(const a of Object.keys(this.#t))a==="$set"||a==="$destroy"||a==="$on"||Hn(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 hd;typeof HTMLElement=="function"&&(hd=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=Rn("slot");r!=="default"&&(a.name=r),I(s,a)}};if(await Promise.resolve(),!this.$$cn||this.$$c)return;const t={},n=ug(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=lg({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 ug(e){const t={};return e.childNodes.forEach(n=>{t[n.slot||"default"]=!0}),t}function dg(e,t,n,r,s,a){let o=class extends hd{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=>{Hn(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=>{Hn(o.prototype,l,{get(){return this.$$c?.[l]}})}),a&&(o=a(o)),e.element=o,o}function fg(e,...t){return we(()=>{try{let n=!1;const r=[];for(const s of t)s&&typeof s=="object"&&$e in s?(r.push(Gn(s,!0)),n=!0):r.push(s);n&&(Th(e),console.log("%c[snapshot]","color: grey",...r))}catch{}}),t}const pd=Object.freeze(Object.defineProperty({__proto__:null,CLASS:lr,FILENAME:yt,HMR:ar,NAMESPACE_SVG:ms,STYLE:cr,aborted:Ii,action:od,get active_effect(){return de},add_legacy_event_listener:Qb,add_locations:Sm,add_svelte_meta:Wh,animation:Gm,append:I,append_styles:Qm,apply:Hp,assign:wm,assign_async:km,async:Pm,async_derived:gu,attach:xo,attachment:ym,attr:nb,attribute_effect:pb,autofocus:Mr,await:Mm,bind_active_element:gb,bind_buffered:kb,bind_checked:Qr,bind_content_editable:Nb,bind_current_time:wb,bind_element_size:Ob,bind_ended:Ib,bind_files:yb,bind_focused:Vb,bind_group:_b,bind_muted:Pb,bind_online:Db,bind_paused:Tb,bind_playback_rate:Cb,bind_played:Sb,bind_prop:jb,bind_property:qb,bind_ready_state:Ab,bind_resize_observer:Lb,bind_seekable:xb,bind_seeking:Eb,bind_select_value:as,bind_this:Le,bind_value:Ee,bind_volume:Rb,bind_window_scroll:Bb,bind_window_size:Fb,boundary:mu,bubble_event:Zb,check_target:Cm,child:p,cleanup_styles:xm,clsx:cd,comment:Ye,component:As,create_custom_element:dg,create_ownership_validator:Am,css_props:Om,customizable_select:bb,deep_read:sa,deep_read_state:go,deferred_template_effect:Mp,delegate:le,delegated:B,derived:U,derived_safe_equal:lo,get document(){return Eu},each:me,eager:up,effect:Et,effect_root:Es,effect_tracking:Ss,element:Jm,equals:Ip,event:ze,exclude_from_object:eh,fallback:$v,first_child:he,flush:In,for_await_track_reactivity_loss:bp,from_html:C,from_mathml:Gp,from_svg:yo,from_tree:Xp,get:i,head:Zm,hmr:Im,html:Bm,hydrate_template:Oh,if:H,index:Vt,init:Xb,init_select:So,inspect:Rm,invalid_default_snippet:sh,invalidate_inner_signals:Op,invalidate_store:tp,invoke_error_boundary:an,key:Lm,legacy_api:Tm,legacy_pre_effect:Pp,legacy_pre_effect_reset:Dp,legacy_rest_props:ag,log_if_contains_state:fg,mark_store_binding:ip,mutable_source:Ta,mutate:xp,next:Gt,noop:wt,once:Wb,pending:pp,pop:se,preventDefault:Gb,prevent_snippet_stringification:ed,prop:G,props_id:Qp,proxy:oe,push:re,raf:rn,reactive_import:Jb,remove_input_defaults:ge,remove_textarea_child:vo,render_effect:qe,replay_events:Up,reset:v,rest_props:rg,run:gp,run_after_blockers:bu,safe_get:Bp,sanitize_slots:Um,save:mp,select_option:ss,selectedcontent:mb,self:Hb,set:x,set_attribute:ne,set_checked:Eo,set_class:ce,set_custom_element_data:vb,set_default_checked:ub,set_default_value:db,set_selected:Io,set_style:Ke,set_text:z,set_value:is,set_xlink_attribute:fb,setup_stores:np,sibling:k,slot:Fm,snapshot:Gn,snippet:en,spread_props:Ts,state:V,stopImmediatePropagation:Yb,stopPropagation:Kb,store_get:$h,store_mutate:rp,store_set:uu,store_unsub:ep,strict_equals:Ep,tag:Uh,tag_proxy:nu,template_effect:N,text:Xt,tick:Is,to_array:Hc,trace:Fh,track_reactivity_loss:xi,transition:Xm,trusted:Ub,untrack:we,update:Er,update_legacy_props:$b,update_pre:Sp,update_pre_prop:tg,update_pre_store:ap,update_prop:eg,update_store:sp,user_effect:xe,user_pre_effect:Du,validate_binding:og,validate_dynamic_element_tag:dm,validate_snippet_args:Dm,validate_store:fm,validate_void_dynamic_element:um,wait:_p,get window(){return Si},with_script:Jp,wrap_snippet:vm},Symbol.toStringTag,{value:"Module"}));class Hl{#e=new Map;read(t){return this.#e.get(t)}write(t,n){this.#e.set(t,n)}delete(t){this.#e.delete(t)}list(){return[...this.#e.keys()]}}class Kl{#e;constructor(t){this.#e=t}read(t){if(typeof localStorage>"u")return;const n=localStorage.getItem(this.#e+t);if(n!=null)try{return JSON.parse(n)}catch{return}}write(t,n){if(!(typeof localStorage>"u"))try{localStorage.setItem(this.#e+t,JSON.stringify(n))}catch{}}delete(t){typeof localStorage>"u"||localStorage.removeItem(this.#e+t)}list(){if(typeof localStorage>"u")return[];const t=[];for(let n=0;n<localStorage.length;n++){const r=localStorage.key(n);r&&r.startsWith(this.#e)&&t.push(r.slice(this.#e.length))}return t}}const vg=["workspace","user"],To="state:manage",tn={ephemeral:new Hl,session:new Hl,workspace:new Kl("sh3:workspace:"),user:new Kl("sh3:user:")},ui=new Map;let di=!1;function hg(e,t,n){ui.set(`${e}:${t}`,{zone:e,shardId:t,value:n}),!di&&(di=!0,queueMicrotask(()=>{di=!1;for(const{zone:r,shardId:s,value:a}of ui.values())tn[r].write(s,a);ui.clear()}))}function Da(e,t){const n={};for(const r of Object.keys(t)){const s=t[r],o=tn[r].read(e),l={...s,...o??{}},c=oe(l);n[r]=c,vg.includes(r)&&Es(()=>{let u=!0;xe(()=>{const d=Gn(c);if(u){u=!1;return}hg(r,e,d)})})}return n}function Wl(e,t){tn[e]=t}function pg(e,t){return tn[e].read(t)}function Di(e,t){tn[e].delete(t)}const mg="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(mg);const bg=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function gg(e){const t=document.activeElement;function n(){return Array.from(e.querySelectorAll(bg))}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 _g=C('<div class="modal-frame svelte-2tcvcm" role="presentation"><div class="modal-box svelte-2tcvcm" role="dialog" aria-modal="true" tabindex="-1"><!></div></div>');function yg(e,t){re(t,!0);let n;xe(()=>{if(n)return gg(n)});function r(l){t.onBackdropClick&&l.target===l.currentTarget&&t.onBackdropClick()}var s=_g(),a=p(s),o=p(a);As(o,()=>t.Content,(l,c)=>{c(l,Ts(()=>t.contentProps,{get close(){return t.close}}))}),v(a),Le(a,l=>n=l,()=>n),v(s),N(()=>Ke(a,t.boxStyle)),B("click",s,r),I(e,s),se()}le(["click"]);const Ro={};function wg(e,t){Ro[e]=t}function kg(e){delete Ro[e]}function ja(e){const t=Ro[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 An=oe(new Map),rt=oe({id:null}),Ar=oe({id:null});function xg(){return Ar.id}function Po(e){An.set(e.manifest.id,e)}function tr(){return Array.from(An.values()).map(e=>e.manifest)}function md(){const e=rt.id;return e?An.get(e)?.manifest??null:null}function Cn(e){return An.get(e)}const $r=[],mr=[];let os=null;function Sg(e){os=e}function Eg(e){if(!rt.id)throw new Error("pushNavEntry requires an active app");const t=Symbol("nav-entry");return mr.push({id:t,label:e.label,onPop:e.onPop}),{remove(){const n=mr.findIndex(r=>r.id===t);n>=0&&mr.splice(n,1)}}}function bd(e){const t=Symbol("dismissable");return $r.push({id:t,dismiss:e}),{unregister(){const n=$r.findIndex(r=>r.id===t);n>=0&&$r.splice(n,1)}}}function gd(){mr.length=0}function Ig(){if($r.length>0){$r.pop().dismiss();return}if(mr.length>0){mr.pop().onPop();return}rt.id&&os&&os.returnToHome()}function Ag(){rt.id||Ar.id&&os&&os.launchApp(Ar.id)}const kt=[];let la=!1,Pt=null;const Cg=.5;function _d(){const e=ja("modal");if(kt.length===0){Pt&&(Pt.remove(),Pt=null);return}Pt||(Pt=document.createElement("div"),Pt.className="sh3-modal-backdrop",Pt.style.position="absolute",Pt.style.inset="0",Pt.style.pointerEvents="auto",Pt.style.transition="background-color 120ms ease",Pt.style.background=`rgba(0, 0, 0, ${Cg})`);const t=kt[kt.length-1].host;e.insertBefore(Pt,t)}function yd(e){e.key==="Escape"&&kt.length!==0&&(e.stopPropagation(),e.preventDefault(),kt[kt.length-1].handle.close())}function Tg(){la||(la=!0,document.addEventListener("keydown",yd,!0))}function Rg(){kt.length>0||la&&(la=!1,document.removeEventListener("keydown",yd,!0))}function wd(e){const t=kt.indexOf(e);t<0||(kt.splice(t,1),Ge(e.frame),e.host.remove(),_d(),Rg())}function Pg(e,t,n){const r=ja("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:()=>wd(a)},l=bd(()=>o.close()),c=o.close;o.close=()=>{l.unregister(),c()};const u=Ne(yg,{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,kt.push(a),_d(),Tg(),o}function Dg(){for(;kt.length>0;)wd(kt[kt.length-1])}const Dn={open:Pg,closeAll:Dg};var jg=C('<div class="popup-frame svelte-mp81cl" role="menu" tabindex="-1"><!></div>');function Mg(e,t){re(t,!0);let n,r=V(-9999),s=V(-9999);xe(()=>{if(!n)return;const l=n.getBoundingClientRect(),c=4,u=window.innerWidth,d=window.innerHeight;let f=t.anchorRect.bottom+c,h=t.anchorRect.left;if(h+l.width>u-c&&(h=Math.max(c,u-l.width-c)),f+l.height>d-c){const g=t.anchorRect.top-l.height-c;f=g>=c?g:Math.max(c,d-l.height-c)}x(r,f,!0),x(s,h,!0)});var a=jg(),o=p(a);As(o,()=>t.Content,(l,c)=>{c(l,Ts(()=>t.contentProps,{get close(){return t.close}}))}),v(a),Le(a,l=>n=l,()=>n),N(()=>Ke(a,`top: ${i(r)??""}px; left: ${i(s)??""}px;`)),I(e,a),se()}function zg(e){return e instanceof HTMLElement?e.getBoundingClientRect():new DOMRect(e.x,e.y,0,0)}let Nt=null;function kd(e){if(!Nt)return;const t=e.target;t&&Nt.host.contains(t)||Nt.handle.close()}function xd(e){Nt&&e.key==="Escape"&&(e.stopPropagation(),e.preventDefault(),Nt.handle.close())}function Lg(){document.addEventListener("pointerdown",kd,!0),document.addEventListener("keydown",xd,!0)}function Og(){document.removeEventListener("pointerdown",kd,!0),document.removeEventListener("keydown",xd,!0)}function ji(e){Nt===e&&(Nt=null,Og(),Ge(e.frame),e.host.remove())}function Ng(e,t,n){Nt&&ji(Nt);const r=ja("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=zg(t.anchor),o={},l={close:()=>ji(o)},c=bd(()=>l.close()),u=l.close;l.close=()=>{c.unregister(),u()};const d=Ne(Mg,{target:s,props:{Content:e,contentProps:n??{},anchorRect:a,close:l.close}});return o.host=s,o.frame=d,o.handle=l,Nt=o,queueMicrotask(Lg),l}function qg(){Nt&&ji(Nt)}const Mi={show:Ng,close:qg};var Vg=C('<div role="status" aria-live="polite"><span class="toast-level svelte-12gwnj0"> </span> <span class="toast-message svelte-12gwnj0"> </span></div>');function Bg(e,t){var n=Vg(),r=p(n),s=p(r,!0);v(r);var a=k(r,2),o=p(a,!0);v(a),v(n),N(()=>{ce(n,1,`toast toast-${t.level??""}`,"svelte-12gwnj0"),z(s,t.level),z(o,t.message)}),B("click",n,function(...l){t.close?.apply(this,l)}),I(e,n)}le(["click"]);const ca=new Set;let ut=null;function Fg(){if(ut&&ut.isConnected)return ut;const e=ja("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 Ug(e,t={}){const n=t.level??"info",r=t.duration??3e3,s=Fg(),a=document.createElement("div");a.className="sh3-toast-host",s.appendChild(a);const o={},l={close:()=>zi(o)},c=Ne(Bg,{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 Hg(){for(const e of[...ca])zi(e)}const xn={notify:Ug,clear:Hg},Yl={w:120,h:80};function Sd(e){if(e.type==="slot")return{...Yl};if(e.type==="tabs")return{...Yl};const t=e.children.map(Sd);return e.direction==="horizontal"?{w:t.reduce((n,r)=>n+r.w,0),h:t.reduce((n,r)=>Math.max(n,r.h),0)}:{w:t.reduce((n,r)=>Math.max(n,r.w),0),h:t.reduce((n,r)=>n+r.h,0)}}const Gl=32,Xl={x:48,y:48};function Kg(e,t){if(e.length===0)return{...Xl};const n=e[e.length-1],r={x:n.position.x+Gl,y:n.position.y+Gl};return r.x+120>t.w||r.y+32>t.h?{...Xl}:r}let Jl=0;function Wg(){return Jl+=1,`float-${Date.now().toString(36)}-${Jl.toString(36)}`}function Ed(e){return e.type==="slot"?e.viewId==null:e.type==="tabs"?e.tabs.every(t=>t.viewId==null):e.children.every(Ed)}function Yg(e){return e.closest("[data-shell-overlay-host]")}let Gg=[],Do=null,jo=()=>({w:1600,h:900});function Xg(e,t){Do=e,jo=t}function Jg(){Do=null,jo=()=>({w:1600,h:900})}function Ma(){return Do??Gg}const Mo=new Map;function Zg(e){return Mo.get(e)}let Zl=0;function Qg(e){return Zl+=1,`float:${e}:${Zl}`}const $g={w:600,h:400};function e_(e,t){return{w:Math.max(e.w,t.w),h:Math.max(e.h,t.h)}}function t_(e,t={}){const n=Ma(),r=Wg(),s=Qg(e);let a;if(t.dismissable)a={type:"slot",slotId:s,viewId:e};else{const d=t.title??e,f={slotId:s,viewId:e,label:d};t.meta&&(f.meta=t.meta),a={type:"tabs",tabs:[f],activeTab:0}}const o=Sd(a),l=t.size??e_($g,o),c=t.position??Kg(n,jo()),u={id:r,content:a,position:c,size:l,title:t.title};if(t.dismissable&&(u.dismissable=!0),t.dismissable&&t.anchor){const d=Yg(t.anchor);d&&Mo.set(r,d)}return n.push(u),r}function n_(e){const t=Ma(),n=t.findIndex(r=>r.id===e);n<0||(t.splice(n,1),Mo.delete(e))}function r_(){return Ma().slice()}function s_(e){const t=Ma(),n=t.findIndex(s=>s.id===e);if(n<0||n===t.length-1)return;const[r]=t.splice(n,1);t.push(r)}const lt={open:t_,close:n_,list:r_,focus:s_};let ua=null;function a_(e){ua=e}function i_(){ua=null}function zo(){if(!ua)throw new Error("presetManager: no app attached — bind an AppLayoutBlob first");return ua}function o_(){return Object.keys(zo().presets)}function l_(){return zo().activePreset}function c_(e){const t=zo();if(!(e in t.presets))throw new Error(`presetManager.switch: unknown preset "${e}"`);t.activePreset=e}const u_={list:o_,active:l_,switch:c_},fr=new Map,Hs=new Map;function Ql(e){const t=Hs.get(e);if(t)for(const n of t)n()}function Id(e,t){const n=Symbol();let r=fr.get(e);r||(r=new Map,fr.set(e,r)),r.set(n,t),Ql(e);let s=!1;return()=>{if(s)return;s=!0;const a=fr.get(e);a&&a.delete(n)&&(a.size===0&&fr.delete(e),Ql(e))}}function za(e){const t=fr.get(e);return t?Array.from(t.values()):[]}function d_(){return Array.from(fr.keys())}function Ad(e,t){let n=Hs.get(e);n||(n=new Set,Hs.set(e,n)),n.add(t);let r=!1;return()=>{r||(r=!0,n.delete(t),n.size===0&&Hs.delete(e))}}const f_=Object.freeze([".md",".txt",".json",".guml",".css",".js",".ts",".tsx",".jsx",".html",".svg",".csv",".yaml",".yml",".xml",".log",".ini",".toml"]);function v_(e){return e.kind?e.kind:e.extension&&f_.includes(e.extension.toLowerCase())?"text":"binary"}const Ks=[];function $l(e){return Ks.push(e),()=>{const t=Ks.indexOf(e);t>=0&&Ks.splice(t,1)}}function h_(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 p_=C("<span> </span>"),m_=C('<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),b_=C("<option> </option>"),g_=C("<button> </button>"),__=C('<pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre>'),y_=C('<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>'),w_=C('<div class="sh3-conflict-text svelte-iwgja4"><!></div>');function k_(e,t){re(t,!0);let n=V("");xe(()=>{(!i(n)||!t.item.branches.find(g=>g.origin===i(n)))&&x(n,t.item.branches[0]?.origin??"local",!0)});const r=U(()=>t.item.branches.length===2),s=U(()=>i(r)?t.item.branches[0]:t.item.branches.find(g=>g.origin===i(n))??t.item.branches[0]),a=U(()=>i(r)?t.item.branches[1]:t.item.branches.find(g=>g.origin===t.selectedOrigin)??t.item.branches[1]??t.item.branches[0]);function o(g,S){const b=(g??"").split(/\r?\n/),_=(S??"").split(/\r?\n/),w=[],y=Math.max(b.length,_.length);for(let m=0;m<y;m++){const A=b[m],j=_[m];A===j?typeof A=="string"&&w.push({kind:"same",text:A}):(typeof A=="string"&&w.push({kind:"left",text:A}),typeof j=="string"&&w.push({kind:"right",text:j}))}return w}const l=U(()=>!i(s)||!i(a)?[]:o(i(s).content??"",i(a).content??"")),c=U(()=>i(l).filter(g=>g.kind!=="same").length);var u=w_(),d=p(u);{var f=g=>{var S=m_(),b=he(S),_=p(b);let w;var y=p(_),m=p(y);v(y);var A=k(y,2),j=p(A),P=p(j,!0);v(j),v(A),v(_);var D=k(_,2);let M;var R=p(D),O=p(R);v(R);var E=k(R,2),T=p(E),q=p(T,!0);v(T),v(E),v(D),v(b);var L=k(b,2),F=p(L),Y=p(F);v(F);var W=k(F,2),J=p(W);me(J,21,()=>i(l),Vt,(Q,ae)=>{var K=p_(),X=p(K);v(K),N(()=>{ce(K,1,`diff-${i(ae).kind}`,"svelte-iwgja4"),z(X,`${i(ae).kind==="same"?" ":i(ae).kind==="left"?"- ":"+ "}${i(ae).text??""}
|
|
8
|
-
`)}),I(Q,K)}),v(J),v(W),v(L),N(()=>{w=ce(_,1,"sh3-conflict-text-pane svelte-iwgja4",null,w,{selected:i(s).origin===t.selectedOrigin}),z(m,`${i(s).origin??""} · v${i(s).version??""}`),z(P,i(s).content??""),M=ce(D,1,"sh3-conflict-text-pane svelte-iwgja4",null,M,{selected:i(a).origin===t.selectedOrigin}),z(O,`${i(a).origin??""} · v${i(a).version??""}`),z(q,i(a).content??""),z(Y,`Line diff (${i(c)??""} difference${i(c)===1?"":"s"})`)}),B("click",_,()=>t.onSelect(i(s).origin)),B("keydown",_,Q=>{(Q.key==="Enter"||Q.key===" ")&&t.onSelect(i(s).origin)}),B("click",D,()=>t.onSelect(i(a).origin)),B("keydown",D,Q=>{(Q.key==="Enter"||Q.key===" ")&&t.onSelect(i(a).origin)}),I(g,S)},h=g=>{var S=y_(),b=p(S),_=p(b),w=k(p(_));me(w,21,()=>t.item.branches,j=>j.origin,(j,P)=>{var D=b_(),M=p(D,!0);v(D);var R={};N(()=>{z(M,i(P).origin),R!==(R=i(P).origin)&&(D.value=(D.__value=i(P).origin)??"")}),I(j,D)}),v(w),v(_),v(b);var y=k(b,2);me(y,21,()=>t.item.branches,j=>j.origin,(j,P)=>{var D=g_();let M;var R=p(D);v(D),N(()=>{M=ce(D,1,"sh3-conflict-text-tab svelte-iwgja4",null,M,{selected:i(P).origin===t.selectedOrigin}),z(R,`${i(P).origin??""} · v${i(P).version??""}`)}),B("click",D,()=>t.onSelect(i(P).origin)),I(j,D)}),v(y);var m=k(y,2);{var A=j=>{var P=__(),D=p(P),M=p(D,!0);v(D),v(P),N(()=>z(M,i(a).content??"")),I(j,P)};H(m,j=>{i(a)&&j(A)})}v(S),as(w,()=>i(n),j=>x(n,j)),I(g,S)};H(d,g=>{i(r)&&i(s)&&i(a)?g(f):g(h,-1)})}v(u),I(e,u),se()}le(["click","keydown"]);var x_=C("· <code> </code>",1),S_=C('<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>'),E_=C('<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 I_(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=E_(),a=k(p(s),2);me(a,21,()=>t.item.branches,o=>o.origin,(o,l)=>{var c=S_(),u=p(c);let d;var f=p(u),h=p(f,!0);v(f);var g=k(f,2),S=p(g),b=k(S);{var _=w=>{var y=x_(),m=k(he(y)),A=p(m,!0);v(m),N(()=>z(A,i(l).hashPreview)),I(w,y)};H(b,w=>{i(l).hashPreview&&w(_)})}v(g),v(u),v(c),N((w,y)=>{d=ce(u,1,"sh3-conflict-meta-row svelte-1nz3djn",null,d,{selected:i(l).origin===t.selectedOrigin}),z(h,i(l).origin),z(S,`v${i(l).version??""} · ${w??""} · ${y??""} `)},[()=>r(i(l).at),()=>n(i(l).sizeBytes)]),B("click",u,()=>t.onSelect(i(l).origin)),I(o,c)}),v(a),v(s),I(e,s),se()}le(["click"]);const A_=1048576;function C_(e){return typeof e=="number"&&e>A_}const T_={id:"sh3-core.text",priority:1,appliesTo:e=>v_(e)!=="text"?!1:!e.branches.some(t=>C_(t.sizeBytes)),mount(e,t){const n=Ne(k_,{target:e,props:t});return()=>{Ge(n)}}},R_={id:"sh3-core.meta",priority:0,appliesTo:()=>!0,mount(e,t){const n=Ne(I_,{target:e,props:t});return()=>{Ge(n)}}};let ec=!1;function P_(){ec||(ec=!0,$l(T_),$l(R_))}var D_=C('<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 j_(e,t){var n=D_(),r=p(n),s=p(r);v(r);var a=k(r,4),o=p(a);Mr(o,!0);var l=k(o,2),c=k(l,2);v(a),v(n),N(()=>z(s,`${t.count??""} conflict${t.count===1?"":"s"} to resolve`)),B("click",o,function(...u){t.onOverwriteMostRecent?.apply(this,u)}),B("click",l,function(...u){t.onResolveIndividually?.apply(this,u)}),B("click",c,function(...u){t.onCancel?.apply(this,u)}),I(e,n)}le(["click"]);var M_=C('<span class="sh3-conflict-detail-counter svelte-pw8iv6"> </span>'),z_=C('<button type="button"><span><!></span> <span class="sh3-conflict-detail-rail-label svelte-pw8iv6"> </span></button>'),L_=C('<aside class="sh3-conflict-detail-rail svelte-pw8iv6"></aside>'),O_=C('<label class="sh3-conflict-detail-branch svelte-pw8iv6"><input type="radio"/> <span> </span></label>'),N_=C('<div class="sh3-conflict-detail-branches svelte-pw8iv6"></div> <div class="sh3-conflict-detail-renderer svelte-pw8iv6"></div>',1),q_=C('<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 V_(e,t){re(t,!0);const n=U(()=>t.items[t.currentIndex]),r=U(()=>i(n)?t.selections[i(n).id]??i(n).branches[0]?.origin??"":""),s=U(()=>i(n)?h_(i(n),t.contributed):null);let a=V(void 0),o=null;xe(()=>{if(i(n),i(s),i(r),o&&(o(),o=null),!i(a)||!i(n)||!i(s))return;const F={item:i(n),selectedOrigin:i(r),onSelect:Y=>t.onSelect(i(n).id,Y)};return o=i(s).mount(i(a),F),()=>{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=U(()=>t.items.map(F=>t.skipped[F.id]?"skipped":t.selections[F.id]?"resolved":"pending"));var d=q_(),f=p(d),h=p(f),g=p(h,!0);v(h);var S=k(h,2);{var b=F=>{var Y=M_(),W=p(Y);v(Y),N(()=>z(W,`${t.currentIndex+1} / ${t.items.length??""}`)),I(F,Y)};H(S,F=>{t.items.length>1&&F(b)})}v(f);var _=k(f,2),w=p(_);{var y=F=>{var Y=L_();me(Y,23,()=>t.items,W=>W.id,(W,J,Q)=>{var ae=z_();let K;var X=p(ae),ie=p(X);{var fe=Oe=>{var Ct=Xt("✓");I(Oe,Ct)},Z=Oe=>{var Ct=Xt("⟶");I(Oe,Ct)},ve=Oe=>{var Ct=Xt("·");I(Oe,Ct)};H(ie,Oe=>{i(u)[i(Q)]==="resolved"?Oe(fe):i(u)[i(Q)]==="skipped"?Oe(Z,1):Oe(ve,-1)})}v(X);var ke=k(X,2),gt=p(ke,!0);v(ke),v(ae),N(()=>{K=ce(ae,1,"sh3-conflict-detail-rail-item svelte-pw8iv6",null,K,{selected:i(Q)===t.currentIndex}),ce(X,1,`sh3-conflict-detail-rail-state ${i(u)[i(Q)]??""}`,"svelte-pw8iv6"),z(gt,i(J).label)}),B("click",ae,()=>t.onNavigate(i(Q))),I(W,ae)}),v(Y),I(F,Y)};H(w,F=>{t.items.length>1&&F(y)})}var m=k(w,2),A=p(m);{var j=F=>{var Y=N_(),W=he(Y);me(W,21,()=>i(n).branches,Q=>Q.origin,(Q,ae)=>{var K=O_(),X=p(K);ge(X);var ie=k(X,2),fe=p(ie);v(ie),v(K),N(()=>{ne(X,"name",`branch-${i(n).id??""}`),is(X,i(ae).origin),Eo(X,i(r)===i(ae).origin),z(fe,`${i(ae).origin??""} · v${i(ae).version??""}`)}),B("change",X,()=>t.onSelect(i(n).id,i(ae).origin)),I(Q,K)}),v(W);var J=k(W,2);Le(J,Q=>x(a,Q),()=>i(a)),I(F,Y)};H(A,F=>{i(n)&&F(j)})}v(m),v(_);var P=k(_,2),D=p(P),M=p(D),R=k(M,2),O=p(R,!0);v(R);var E=k(R,2);v(D);var T=k(D,2),q=p(T),L=k(q,2);v(T),v(P),v(d),N(()=>{z(g,t.title),M.disabled=t.currentIndex===0,z(O,i(n)&&t.skipped[i(n).id]?"Unskip":"Skip"),E.disabled=t.currentIndex>=t.items.length-1}),B("click",M,l),B("click",R,()=>i(n)&&t.onToggleSkip(i(n).id)),B("click",E,c),B("click",q,function(...F){t.onCancel?.apply(this,F)}),B("click",L,function(...F){t.onDone?.apply(this,F)}),I(e,d),se()}le(["click","change"]);function Cd(e,t){return t.at-e.at}function B_(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(Cd)[0]}}function F_(e,t){re(t,!0);const n=t.items.length>=2||t.requirePrompt;let r=V(oe(n?"prompt":"detail")),s=V(oe(Object.fromEntries(t.items.map(m=>{const A=B_(m.branches,t.mostRecentBy)?.origin??m.branches[0]?.origin??"";return[m.id,A]})))),a=V(oe({})),o=V(0),l=!1;ko(()=>{l||(l=!0,t.onCancel())});function c(){if(l)return;l=!0;const m=[],A=[];for(const j of t.items){if(i(a)[j.id]){A.push(j.id);continue}const P=i(s)[j.id],D=j.branches.find(M=>M.origin===P);D&&m.push({itemId:j.id,chosen:D,meta:j.meta})}t.onResolve(m,A),t.close()}function u(){l||(l=!0,t.onCancel(),t.close())}function d(){c()}function f(){x(r,"detail")}function h(m,A){if(x(s,{...i(s),[m]:A},!0),i(a)[m]){const j={...i(a)};delete j[m],x(a,j,!0)}}function g(m){x(a,{...i(a),[m]:!i(a)[m]},!0)}function S(m){x(o,m,!0)}var b=Ye(),_=he(b);{var w=m=>{j_(m,{get count(){return t.items.length},onOverwriteMostRecent:d,onResolveIndividually:f,onCancel:u})},y=m=>{V_(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:h,onNavigate:S,onToggleSkip:g,onDone:c,onCancel:u})};H(_,m=>{i(r)==="prompt"?m(w):m(y,-1)})}I(e,b),se()}const Td="sh3-core.conflictRenderer";class Rd extends Error{constructor(t){super(t),this.name="ConflictPermissionError"}}class U_ extends Error{constructor(){super("Caller shard deactivated while conflict session was active"),this.name="ConflictSessionOrphanedError"}}function H_(){try{return za(Td)}catch{return[]}}function Pd(e,t={}){return P_(),e.length===0?Promise.resolve({status:"resolved",choices:[],skipped:[]}):new Promise(n=>{const r=t.title??(e.length===1?"Resolve conflict":"Resolve conflicts"),s=t.mostRecentBy??Cd,a=t.requirePrompt??!1,o=H_();let l=!1;const d={items:e,title:r,mostRecentBy:s,requirePrompt:a,contributed:o,onResolve:(f,h)=>{l||(l=!0,n({status:"resolved",choices:f,skipped:h}))},onCancel:()=>{l||(l=!0,n({status:"cancelled"}))}};Dn.open(F_,d,{boxStyle:"max-width: none; min-width: 360px; padding: 0;"})})}function K_(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 W_(e,t){const n=e.browse;if(!n?.statusFrom||!n?.readBranchFrom||!n?.resolveConflictFrom)throw new Rd(`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 Y_(e){const t=e.lastIndexOf(".");if(t<0)return;const n=e.lastIndexOf("/");if(!(t<n))return e.slice(t)}async function G_(e,t,n={}){const r=e.shardId,s=t.shardId===r?K_(e):W_(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 h=Y_(d),g=[];for(const S of f.branches??[]){const b=await s.readBranch(d,S.origin).catch(()=>null);g.push({origin:S.origin,version:S.version,at:S.at,content:b??void 0,sizeBytes:b?new TextEncoder().encode(b).length:void 0})}o.push({id:d,label:d,extension:h,branches:g,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 X_={resolve:Pd,resolveDocuments:G_},Dd="sh3.color-picker",J_={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 Z_(e={}){return[...za(Dd),J_].sort((r,s)=>(s.priority??0)-(r.priority??0))[0].open(e)}const Q_={pick:Z_};let Nn=null;function $_(e){Nn=e}async function br(e){return Nn?{...Nn.bindings[e]??{}}:{}}async function tc(e,t,n){if(!Nn)return;const r={...Nn.bindings[e]??{}};n===void 0?delete r[t]:r[t]=n,Nn.bindings={...Nn.bindings,[e]:r}}const Lo="sh3.actions",fi=new Set;function ey(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.`),()=>{};fi.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.`),fi.add(e.id);const r=Id(Lo,{action:e,ownerShardId:t});let s=!1;return()=>{s||(s=!0,r(),fi.delete(e.id))}}function et(){return za(Lo)}function ty(e){return Ad(Lo,e)}function Bt(e){return typeof e.label=="function"?e.label():e.label}const ny=["Ctrl","Alt","Shift","Meta"],nc={control:"Ctrl",ctrl:"Ctrl",alt:"Alt",option:"Alt",shift:"Shift",meta:"Meta",cmd:"Meta",command:"Meta",super:"Meta",win:"Meta"},ry=new Set(["Control","Alt","Shift","Meta"]);function jd(e){return e.length===1?e.toUpperCase():e}function Oo(e){if(!e)throw new Error("Empty shortcut");const t=e.split("+");if(t.some(o=>o.trim()===""))throw new Error(`Malformed shortcut: "${e}"`);const n=t.map(o=>o.trim());if(n.length===0)throw new Error(`Malformed shortcut: "${e}"`);const r=new Set;let s;for(const o of n){const l=o.toLowerCase();if(l in nc)r.add(nc[l]);else{if(s!==void 0)throw new Error(`Multiple keys in shortcut: "${e}"`);s=jd(o)}}if(s===void 0)throw new Error(`No key in shortcut: "${e}"`);return[...ny.filter(o=>r.has(o)),s].join("+")}function Md(e,t){if(!e.toLowerCase().includes("mod"))return e;const n=e.split("+").map(r=>r.toLowerCase()==="mod"?t==="mac"?"Meta":"Ctrl":r);return Oo(n.join("+"))}function sy(e){if(ry.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=jd(e.key);return[...t,n].join("+")}function ay(){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:Oo(r)}return e.defaultShortcut?Md(e.defaultShortcut,n):null}function iy(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?{shortcut:null,source:"disabled"}:{shortcut:Oo(r),source:"user"}}return e.defaultShortcut?{shortcut:Md(e.defaultShortcut,n),source:"default"}:{shortcut:null,source:"none"}}function La(e){return e==="home"?"home":e==="app"?"app":typeof e=="string"&&e.startsWith("view:")?"view":typeof e=="string"&&e.startsWith("focus:")?"focus":"element"}function No(e){return Array.isArray(e)?e:[e]}function zd(e){return e==="home"||e==="app"?null:typeof e=="string"?e:e.element}function Ps(e,t,n){const r=No(e),s={};for(const a of r){const o=La(a);(s[o]??=[]).push(a)}for(const a of Oa){const o=s[a];if(o){for(const l of o)if(ls(l,t,n))return l}}return null}function oy(e,t){return typeof e=="string"||typeof t=="string"?e===t:e.element===t.element}function Ld(e){return typeof e=="string"?e:`element:${e.element}`}function ly(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 Oa=["element","focus","view","app","home"];function ls(e,t,n){if(e==="home")return t.activeAppId===null;if(e==="app")return t.activeAppId===null||!n?!1:t.activeAppRequiredShards.has(n)||t.autostartShards.has(n);if(typeof e=="string"){if(e.startsWith("view:"))return t.mountedViewIds.has(e.slice(5));if(e.startsWith("focus:"))return t.focusedViewId===e.slice(6)}return typeof e=="object"&&"element"in e?t.selection!==null&&t.selection.type===e.element:!1}function cy(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 No(r.action.scope)){if(!ls(a,t,r.ownerShardId))continue;const o=La(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 uy(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 dy(e){const t=cy(e.entries,e.state),n=new Map(e.entries.map(r=>[r.action.id,r]));for(const r of Oa){const s=t[r].get(e.shortcut);if(!s)continue;const a=n.get(s);if(a)return uy(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=V(null);function qo(){return i(Ut)}function Od(e){return{get(){return i(Ut)},set(t){x(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}x(Ut,null)}}}}function Nd(e){i(Ut)&&i(Ut).ownerShardId===e&&x(Ut,null)}function fy(){x(Ut,null)}const da=new Map,qd=new Set;function vy(e){qd.add(e)}function hy(e,t){if(da.has(e))throw new Error(`View "${e}" is already registered`);da.set(e,t);for(const n of qd)n(e,t)}function Vd(e){return da.get(e)}function Bd(e){da.delete(e)}const cs=new Map;function py(e,t){if(cs.has(e))throw new Error(`Verb "${e}" is already registered`);cs.set(e,t)}function rc(e){return cs.get(e)}function Fd(e){cs.delete(e)}function Vo(){return Array.from(cs.values()).sort((e,t)=>e.name.localeCompare(t.name))}function Cr(e,t){const n=(r,s)=>{if(r.type==="tabs"){const a=r.tabs.findIndex(o=>o.slotId===t);if(a>=0)return{tabsNode:r,tabsPath:s,tabIndex:a,entry:r.tabs[a]}}else if(r.type==="split")for(let a=0;a<r.children.length;a++){const o=n(r.children[a],[...s,a]);if(o)return o}return null};return n(e,[])}function Bo(e,t){if(Li(e.docked,t))return{kind:"docked"};for(const n of e.floats)if(Li(n.content,t))return{kind:"float",floatId:n.id};return null}function Li(e,t){if(e.type==="slot")return e.slotId===t;if(e.type==="tabs")return e.tabs.some(n=>n.slotId===t);for(const n of e.children)if(Li(n,t))return!0;return!1}function Na(e,t){const n=Cr(e,t);if(!n)return null;const{tabsNode:r,tabIndex:s,entry:a}=n;return r.tabs.splice(s,1),r.tabs.length===0?r.activeTab=0:s<r.activeTab?r.activeTab-=1:r.activeTab>=r.tabs.length&&(r.activeTab=r.tabs.length-1),a}function my(e,t,n){const r=Math.max(0,Math.min(n,e.tabs.length));e.tabs.splice(r,0,t),e.activeTab=r}function by(e,t,n){const r=e.tabs.slice(),[s]=r.splice(t,1),a=Math.max(0,Math.min(n,r.length));r.splice(a,0,s),e.tabs=r,e.activeTab=a}function sc(e,t,n){const r=n==="left"||n==="right"?"horizontal":"vertical",s={type:"tabs",activeTab:0,tabs:[t]};return{type:"split",direction:r,sizes:[1,1],children:n==="left"||n==="top"?[s,e]:[e,s]}}function gy(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 Ud(e,t,n,r){const s=us(e,t);if(!s||Hd(e,t))return;if(t.length===0){const u=gy(s),d=sc(u,n,r),f=e;delete f.tabs,delete f.activeTab,delete f.slotId,delete f.viewId,delete f.direction,delete f.sizes,delete f.pinned,delete f.collapsed,delete f.children,Object.assign(f,d);return}const a=sc(s,n,r),o=t.slice(0,-1),l=t[t.length-1],c=us(e,o);!c||c.type!=="split"||(c.children[l]=a)}function us(e,t){let n=e;for(const r of t){if(n.type!=="split"||r<0||r>=n.children.length)return null;n=n.children[r]}return n}function Hd(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 vr(e){let t=!0;for(;t;)t=Kd(e,null,0)}function Kd(e,t,n){if(e.type==="split"){let r=!1;for(let s=0;s<e.children.length;s++)Kd(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 En=new Map,Ws=new Set;function _y(e,t){for(const[n,r]of En.entries()){if(r.viewId!==e||r.handle!==void 0)continue;const s={slotId:n,viewId:e,label:r.label,meta:r.meta,setDirty(a){qa[n]=a},location(){return Bo(At(),n)}};queueMicrotask(()=>{if(En.has(n)&&r.handle===void 0&&(r.handle=t.mount(r.host,s),(r.handle?.closable||n.startsWith("float:"))&&(Va[n]=!0),r.handle?.onResize)){const a=r.handle.onResize.bind(r.handle);r.resizeObserver=new ResizeObserver(o=>{for(const l of o){const c=l.contentRect;a(Math.round(c.width),Math.round(c.height))}}),r.resizeObserver.observe(r.host)}})}}vy(_y);const qa=oe({}),Va=oe({});function yy(e,t,n,r){const s=document.createElement("div");s.className="slot-host",s.dataset.slotId=e,t&&(s.setAttribute("data-sh3-view",t),s.setAttribute("data-sh3-scope",Ld(`focus:${t}`))),s.style.position="absolute",s.style.inset="0",s.style.minWidth="0",s.style.minHeight="0";let a=!1;const o={host:s,handle:void 0,viewId:t,label:n,meta:r,refcount:0,resizeObserver:void 0,cancelPendingMount:()=>{a=!0}};return queueMicrotask(()=>{if(a)return;const l=t?Vd(t):void 0,c={slotId:e,viewId:t??"",label:n,meta:r,setDirty(u){qa[e]=u},location(){return Bo(At(),e)}};if(o.handle=l?.mount(s,c),(o.handle?.closable||e.startsWith("float:"))&&(Va[e]=!0),o.handle?.onResize){const u=o.handle.onResize.bind(o.handle);o.resizeObserver=new ResizeObserver(d=>{for(const f of d){const h=f.contentRect;u(Math.round(h.width),Math.round(h.height))}}),o.resizeObserver.observe(s)}}),o}function Fo(e,t,n,r){Ws.delete(e);let s=En.get(e);return s?s.viewId!==t&&(console.warn(`[sh3] acquireSlotHost("${e}") called with viewId "${t}" but existing pooled entry has viewId "${s.viewId}". Attribute synced; view handle unchanged.`),s.viewId=t,t?(s.host.setAttribute("data-sh3-view",t),s.host.setAttribute("data-sh3-scope",Ld(`focus:${t}`))):(s.host.removeAttribute("data-sh3-view"),s.host.removeAttribute("data-sh3-scope"))):(s=yy(e,t,n,r),En.set(e,s)),s.refcount++,s.host}function Uo(e,t){const n=En.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=En.get(e);!r||r.refcount>0||(r.resizeObserver?.disconnect(),r.handle?.unmount(),r.cancelPendingMount(),r.host.remove(),En.delete(e),delete qa[e],delete Va[e])})}}function Wd(e){const t=Oi.get(e);return t||En.get(e)?.handle}function wy(e){return qa[e]??!1}function ky(e){return Oi.has(e)?!!Oi.get(e).closable:Va[e]??!1}const Oi=new Map;function Yd(e){if(!e||typeof e!="object")return!1;const t=e.type;return t==="split"||t==="tabs"||t==="slot"}function xy(e){if(!e||typeof e!="object")return!1;const t=e;return Yd(t.docked)&&Array.isArray(t.floats)}function Sy(e){return{docked:e,floats:[]}}function Ey(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 Gd(e){if(Array.isArray(e))return e.map(Ey);if(xy(e))return[{name:"default",variants:{default:e}}];if(Yd(e))return[{name:"default",variants:{default:Sy(e)}}];throw new Error("normalizeInitialLayout: input is not a LayoutNode, LayoutTree, or LayoutPreset[]")}function ac(e){const t=[],n=r=>{if(r.type==="slot"){t.push({slotId:r.slotId,viewId:r.viewId,label:r.viewId||r.slotId});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 Ho(e){const t=ac(e.docked);for(const n of e.floats)t.push(...ac(n.content));return t}Di("workspace","__shell__");const Iy={type:"slot",slotId:"sh3core.home",viewId:"sh3core:home"},Ay=oe({docked:Iy,floats:[]});let Ve=V(null),Ba=V("home");function Cy(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 Ty(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 Ry(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=Gd(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=pg("workspace",t),a=Cy(s);(a&&a.layoutVersion!==e.manifest.layoutVersion||s&&!a)&&Di("workspace",t);const l=Da(t,{workspace:r}).workspace;x(Ve,{appId:e.manifest.id,proxy:l,heldSlotIds:[]},!0),a_(l)}function Py(){if(!i(Ve))throw new Error("acquireAppSlotHolds: no app attached");if(i(Ve).heldSlotIds.length>0)return;const e=Ty(i(Ve).proxy),t=Ho(e);for(const{slotId:n,viewId:r,label:s,meta:a}of t)Fo(n,r,s,a),i(Ve).heldSlotIds.push(n)}function Dy(){if(!i(Ve))throw new Error("resetActivePresetToDefault: no app attached");const e=Cn(i(Ve).appId);if(!e)throw new Error(`resetActivePresetToDefault: attached app "${i(Ve).appId}" not in registry`);const t=Gd(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)Uo(l);i(Ve).heldSlotIds=[];const a=structuredClone(s.variants.default);n.presets[n.activePreset].default=a;const o=Ho(a);for(const{slotId:l,viewId:c,label:u,meta:d}of o)Fo(l,c,u,d),i(Ve).heldSlotIds.push(l)}function Xd(){if(i(Ve)){i_();for(const e of i(Ve).heldSlotIds)Uo(e);x(Ve,null)}}function Jd(){x(Ba,"home")}function ic(){if(!i(Ve))throw new Error("Cannot switchToApp: no app is attached");x(Ba,"app")}const Ys=U(()=>{if(i(Ba)==="app"&&i(Ve)){const e=i(Ve).proxy,t=e.activePreset,n=e.presets[t];if(!n)throw new Error(`AppLayoutBlob active preset "${t}" not found in presets map`);return n.default}return Ay});function At(){return i(Ys)}function Zd(){return i(Ba)}const ln={get root(){return i(Ys).docked},get tree(){return i(Ys)},get floats(){return i(Ys).floats}};let Qd=V(null),$d=V(oe(new Set)),Gs=V(oe(new Set)),ef=V(oe(new Set)),tf=V(null),nf=V(oe({}));const jy=ay(),Ni=new Set;function Or(){for(const e of Ni)try{e()}catch(t){console.error("[sh3] onActiveChange listener threw",t)}}function My(e){return Ni.add(e),()=>{Ni.delete(e)}}function zy(){Or()}function fa(e,t){x(Qd,e,!0),x($d,new Set(t),!0),Or()}function Ly(){const e=Ho(ln.tree),t=new Set;for(const n of e)n.viewId!==null&&t.add(n.viewId);x(ef,t,!0),Or()}function rf(e){x(tf,e,!0),Or()}function ds(e){x(nf,{...e},!0),Or()}function Jt(){return{activeAppId:i(Qd),activeAppRequiredShards:i($d),autostartShards:i(Gs),mountedViewIds:i(ef),focusedViewId:i(tf),selection:qo(),bindings:i(nf),platform:jy}}function Oy(e){i(Gs).has(e)||(x(Gs,new Set([...i(Gs),e]),!0),Or())}var Ny=C('<div class="sh3-ctx-sep svelte-1667pfa" role="separator"></div>'),qy=C('<span class="sh3-ctx-chevron svelte-1667pfa">▸</span>'),Vy=C('<span class="sh3-ctx-shortcut svelte-1667pfa"> </span>'),By=C('<button role="menuitem"><span class="sh3-ctx-check svelte-1667pfa"> </span> <span class="sh3-ctx-label svelte-1667pfa"> </span> <!></button>'),Fy=C("<!> <!>",1),Uy=C('<div class="sh3-context-menu svelte-1667pfa" role="menu" tabindex="0"></div>');function va(e,t){re(t,!0);const n=U(()=>t.sections.flatMap(c=>c.items));let r=V(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")x(r,s(i(r),1),!0),c.preventDefault();else if(c.key==="ArrowUp")x(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 h=(d+f)%i(n).length,g=i(n)[h];if(!g.disabled&&g.label.toLowerCase().startsWith(u)){x(r,h);break}}}}function o(c){c.disabled||(t.onInvoke(c.id),c.submenu||t.onDismiss())}var l=Uy();Mr(l,!0),me(l,23,()=>t.sections,c=>c.id,(c,u,d)=>{var f=Fy(),h=he(f);{var g=b=>{var _=Ny();I(b,_)};H(h,b=>{i(d)>0&&b(g)})}var S=k(h,2);me(S,17,()=>i(u).items,b=>b.id,(b,_)=>{const w=U(()=>i(n).indexOf(i(_)));var y=By();let m;var A=p(y),j=p(A,!0);v(A);var P=k(A,2),D=p(P,!0);v(P);var M=k(P,2);{var R=E=>{var T=qy();I(E,T)},O=E=>{var T=Vy(),q=p(T,!0);v(T),N(()=>z(q,i(_).shortcut)),I(E,T)};H(M,E=>{i(_).submenu?E(R):i(_).shortcut&&E(O,1)})}v(y),N(()=>{m=ce(y,1,"sh3-ctx-item svelte-1667pfa",null,m,{"sh3-ctx-active":i(w)===i(r),"sh3-ctx-disabled":i(_).disabled}),ne(y,"aria-disabled",i(_).disabled||void 0),z(j,i(_).checked?"✓":""),z(D,i(_).label)}),ze("pointerenter",y,()=>{i(_).disabled||x(r,i(w),!0)}),B("click",y,()=>o(i(_))),I(b,y)}),I(c,f)}),v(l),B("keydown",l,a),I(e,l),se()}le(["keydown","click"]);function sf(e,t){re(t,!0);const n=U(()=>t.model.tiers.map(r=>({id:`tier:${r.tier}`,items:r.items.map(s=>({...s,icon:void 0}))})));va(e,{get sections(){return i(n)},get onInvoke(){return t.onInvoke},get onDismiss(){return t.onClose}}),se()}function oc(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function af(e,t){return{id:e.action.id,label:Bt(e.action),shortcut:Rs(e.action,t.bindings,t.platform),group:e.action.group??"",icon:e.action.icon,checked:oc(e.action.checked),disabled:oc(e.action.disabled),submenu:e.action.submenu===!0}}function of(e,t,n,r){return No(e.scope).some(a=>oy(a,n))?n==="app"||n==="home"||typeof n=="object"&&"element"in n?ls(n,r,t):!0:!1}function lf(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)||!of(a.action,a.ownerShardId,n,t))continue;const o=Ps(a.action.scope,t,a.ownerShardId)??n;s.add(a.action.id),r[La(o)].push(af(a,t))}return{tiers:Oa.map(a=>({tier:a,items:r[a]})).filter(a=>a.items.length>0)}}function Hy(e,t,n,r){const s=[],a=new Set;for(const o of e)o.action.submenuOf===n&&(a.has(o.action.id)||of(o.action,o.ownerShardId,r,t)&&(a.add(o.action.id),s.push(af(o,t))));return s}function Ky(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 Wy(e,t,n){const r=[];for(const a of e){if(t===""&&a.submenuOf!==void 0)continue;const o=Ky(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 Yy=C('<span class="sh3-palette-badge svelte-1qdcgk6"> </span>'),Gy=C('<span class="sh3-palette-shortcut svelte-1qdcgk6"> </span>'),Xy=C('<button role="option"><span class="sh3-palette-label svelte-1qdcgk6"> </span> <!> <!></button>'),Jy=C('<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 Zy(e,t){re(t,!0);let n=G(t,"prefill",3,""),r=V(oe(n())),s=V(0);const a=U(()=>Wy(t.candidates,i(r),t.recency));xe(()=>{i(s)>=i(a).length&&x(s,0)});function o(d){d.key==="ArrowDown"?(x(s,Math.min(i(s)+1,Math.max(0,i(a).length-1)),!0),d.preventDefault()):d.key==="ArrowUp"?(x(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=Jy(),c=p(l);ge(c),Mr(c,!0);var u=k(c,2);me(u,23,()=>i(a),d=>d.id,(d,f,h)=>{var g=Xy();let S;var b=p(g),_=p(b,!0);v(b);var w=k(b,2);{var y=j=>{var P=Yy(),D=p(P);v(P),N(()=>z(D,`[${i(f).scopeBadge??""}]`)),I(j,P)};H(w,j=>{i(f).scopeBadge&&j(y)})}var m=k(w,2);{var A=j=>{var P=Gy(),D=p(P,!0);v(P),N(()=>z(D,i(f).shortcut)),I(j,P)};H(m,j=>{i(f).shortcut&&j(A)})}v(g),N(()=>{S=ce(g,1,"sh3-palette-item svelte-1qdcgk6",null,S,{"sh3-palette-active":i(h)===i(s)}),ne(g,"aria-selected",i(h)===i(s)),z(_,i(f).label)}),ze("pointerenter",g,()=>x(s,i(h),!0)),B("click",g,()=>{t.onInvoke(i(f).id),t.onClose()}),I(d,g)}),v(u),v(l),B("keydown",l,o),Ee(c,()=>i(r),d=>x(r,d)),I(e,l),se()}le(["keydown","click"]);function Qy(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function $y(e,t,n={}){const r=[],s=new Set,a=n.filter?.submenuOf;for(const o of e){if(o.action.paletteItem===!1||Qy(o.action.disabled)||a!==void 0&&o.action.submenuOf!==a||s.has(o.action.id))continue;const l=Ps(o.action.scope,t,o.ownerShardId);l&&(s.add(o.action.id),r.push({id:o.action.id,label:Bt(o.action),shortcut:Rs(o.action,t.bindings,t.platform),scopeBadge:zd(l),submenu:o.action.submenu===!0,submenuOf:a!==void 0?void 0:o.action.submenuOf}))}return r}let lc=!1;function Ko(e){return e?e.closest("[data-sh3-view]")?.getAttribute("data-sh3-view")??null:null}function cf(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=ly(n.getAttribute("data-sh3-scope")??"");if(s&&!(typeof s=="object"&&"element"in s&&!ls(s,e.state)))return s;const a=n.parentElement;n=a?a.closest("[data-sh3-scope]"):null}const r=Ko(t);if(r)return`focus:${r}`}return e.state.activeAppId?"app":"home"}function uf(e,t){const n=et().find(r=>r.action.id===e);if(!(!n||typeof n.action.run!="function"))try{n.action.run(t)}catch(r){console.error(`[sh3] action "${e}" threw:`,r)}}function Nr(e){const t=et().find(r=>r.action.id===e);if(!t){console.warn(`[sh3] ctx.dispatch("${e}") — no action registered with that id.`);return}const n=Jt();uf(e,{action:{id:t.action.id,label:Bt(t.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"programmatic",dispatch:Nr})}function ew(e){const t=Ko(e.target);rf(t)}function tw(e){queueMicrotask(()=>{const t=Ko(document.activeElement);rf(t)})}function nw(e){return e instanceof Element?e.closest('[data-sh3-context-menu="native"]')!==null:!1}function df(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=Hy(et(),t,e,r);Ne(va,{target:a,props:{sections:[{id:`submenu:${e}`,items:c}],onInvoke:u=>{const d=et().find(f=>f.action.id===u);if(!(!d||typeof d.action.run!="function")){try{d.action.run({action:{id:u,label:Bt(d.action)},appId:t.activeAppId,viewId:t.focusedViewId??void 0,selection:t.selection??void 0,invokedVia:"context-menu",dispatch:Nr})}catch(f){console.error(`[sh3] context-menu submenu action "${u}" threw:`,f)}n.close()}},onDismiss:()=>n.close()}})}function rw(e){if(nw(e.target))return;const t=et(),n=Jt(),r=cf({event:e,state:n}),s=lf(t,n,r);if(s.tiers.length===0)return;e.preventDefault();const a=jn.popup.show(sf,{anchor:{x:e.clientX,y:e.clientY}},{model:s,onInvoke:o=>{const l=et().find(c=>c.action.id===o);if(l){if(l.action.submenu===!0){df(o,n,a,r);return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:Bt(l.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:Nr})}catch(c){console.error(`[sh3] context-menu action "${o}" threw:`,c)}}},onClose:()=>a.close()})}function sw(e){const t=sy(e);if(!t)return;const n=et(),r=Jt();dy({target:e.target,shortcut:t,state:r,entries:n,runAction:uf,dispatch:Nr})&&e.preventDefault()}function ff(){lc||(lc=!0,document.addEventListener("keydown",sw),document.addEventListener("focusin",ew),document.addEventListener("focusout",tw),document.addEventListener("contextmenu",rw))}function Wo(e){const t=et(),n=Jt(),r=cf({explicit:e.scope,state:n}),s=lf(t,n,r);if(s.tiers.length===0)return;const a=jn.popup.show(sf,{anchor:{x:e.x,y:e.y}},{model:s,onInvoke:o=>{const l=et().find(c=>c.action.id===o);if(l){if(l.action.submenu===!0){df(o,n,a,r);return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:Bt(l.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:Nr})}catch(c){console.error(`[sh3] context-menu action "${o}" threw:`,c)}}},onClose:()=>a.close()})}const aw=20;let qi=[];function iw(e){qi=[e,...qi.filter(t=>t!==e)].slice(0,aw)}function Fa(e){const t=et(),n=Jt(),r=$y(t,n,{filter:e?.filter}),s=jn.modal.open(Zy,{candidates:r,recency:qi,prefill:e?.prefill??"",onInvoke:a=>{const o=et().find(l=>l.action.id===a);if(o){if(iw(a),o.action.submenu===!0&&typeof o.action.run!="function"){s.close(),Fa({filter:{submenuOf:a}});return}if(typeof o.action.run=="function")try{o.action.run({action:{id:a,label:Bt(o.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"palette",dispatch:Nr})}catch(l){console.error(`[sh3] palette action "${a}" threw:`,l)}}},onClose:()=>s.close()},{dismissOnBackdrop:!0})}const ow=Object.freeze(Object.defineProperty({__proto__:null,attachGlobalListeners:ff,openContextMenu:Wo,openPalette:Fa},Symbol.toStringTag,{value:"Module"}));function lw(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=Ps(s.action.scope,t,s.ownerShardId);if(!a)continue;r.add(s.action.id);const{shortcut:o,source:l}=iy(s.action,t.bindings,t.platform);n[La(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 Oa.flatMap(s=>n[s])}const cw={async rebind(e,t,n){await tc(e,t,n),Jt().activeAppId===e&&ds(await br(e))},async resetBinding(e,t){await tc(e,t,void 0),Jt().activeAppId===e&&ds(await br(e))},async bindingsFor(e){const t=await br(e),n={};for(const[r,s]of Object.entries(t))s!==null&&(n[r]=s);return n},openContextMenu:Wo,openPalette:Fa,listActive(){return lw(et(),Jt())},onActiveChange(e){const t=My(e),n=ty(()=>{zy()});return()=>{t(),n()}}},jn={state:Da,modal:Dn,popup:Mi,toast:xn,float:lt,presets:u_,conflicts:X_,color:Q_,actions:cw};function rr(e,t,n){return`${e}/${t}/${n}`}function uw(e,t){return`${e}/${t}/`}const dw="sh3-documents",Dt="docs",fw=2;class vw{#e=null;#t(){return this.#e||(this.#e=new Promise((t,n)=>{const r=indexedDB.open(dw,fw);r.onupgradeneeded=()=>{const s=r.result;s.objectStoreNames.contains(Dt)||s.createObjectStore(Dt)},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(Dt,t).objectStore(Dt),c=n(l);c.onsuccess=()=>s(c.result),c.onerror=()=>a(c.error)})}async read(t,n,r){const s=rr(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=rr(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=rr(t,n,r);await this.#n("readwrite",a=>a.delete(s))}async rename(t,n,r,s){const a=rr(t,n,r),o=rr(t,n,s),l=await this.#t();return new Promise((c,u)=>{let d=!1;const f=l.transaction(Dt,"readwrite"),h=f.objectStore(Dt),g=h.get(a);g.onsuccess=()=>{const S=g.result;if(!S){d=!0,f.abort(),u(new Error(`Document not found at ${r}`));return}const b=h.getKey(o);b.onsuccess=()=>{if(b.result!==void 0){d=!0,f.abort(),u(new Error(`Document already exists at ${s}`));return}const _={...S,lastModified:Date.now()};h.put(_,o),h.delete(a)},b.onerror=()=>u(b.error)},g.onerror=()=>u(g.error),f.oncomplete=()=>c(),f.onerror=()=>{d||u(f.error)},f.onabort=()=>{}})}async list(t,n){const r=uw(t,n),s=await this.#t();return new Promise((a,o)=>{const c=s.transaction(Dt,"readonly").objectStore(Dt),u=IDBKeyRange.bound(r,r+"",!1,!1),d=c.openCursor(u),f=[];d.onsuccess=()=>{const h=d.result;if(h){const g=h.value;f.push({path:h.key.slice(r.length),size:g.size,lastModified:g.lastModified}),h.continue()}else a(f)},d.onerror=()=>o(d.error)})}async exists(t,n,r){const s=rr(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(Dt,"readonly").objectStore(Dt),c=IDBKeyRange.bound(n,n+"",!1,!1),u=l.openKeyCursor(c),d=new Set;u.onsuccess=()=>{const f=u.result;if(f){const h=f.key.slice(n.length),g=h.indexOf("/");g>=0&&d.add(h.slice(0,g)),f.continue()}else s([...d])},u.onerror=()=>a(u.error)})}async listAllDocuments(t){const n=`${t}/`,r=await this.#t();return new Promise((s,a)=>{const l=r.transaction(Dt,"readonly").objectStore(Dt),c=IDBKeyRange.bound(n,n+"",!1,!1),u=l.openCursor(c),d=[];u.onsuccess=()=>{const f=u.result;if(f){const h=f.key.slice(n.length),g=h.indexOf("/");if(g>=0){const S=f.value;d.push({shardId:h.slice(0,g),path:h.slice(g+1),size:S.size,lastModified:S.lastModified})}f.continue()}else s(d)},u.onerror=()=>a(u.error)})}}class hw{#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 pw{#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 kn=new pw,mw=1e3;function bw(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){kn.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),kn.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=kn.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 gw(c,u,d?.debounceMs??mw);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 gw{#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="local";let Yo=_w,vf=new vw;function hf(){return Yo}function Xs(){return Yo}function Vi(){return vf}function Js(e){Yo=e}function pf(e){vf=e}const yw=Object.freeze(Object.defineProperty({__proto__:null,__setActiveScope:Js,__setDocumentBackend:pf,getActiveScopeId:hf,getDocumentBackend:Vi,getTenantId:Xs},Symbol.toStringTag,{value:"Module"})),ww="sync:peer",kw="sync:policy";let qr=V(null),cn=V(null),Vr=V(!1),Ua="",Bi=null;function cc(e,t){Ua=e,Bi=t.auth,x(qr,t.user,!0),x(cn,t.session,!0),x(Vr,!t.session&&!t.user,!0)}async function mf(e,t){try{const n=await fetch(`${Ua}/api/auth/login`,{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:e,password:t})});if(!n.ok)return{ok:!1,error:(await n.json().catch(()=>({}))).error||"Login failed"};const r=await n.json();return x(qr,r.user,!0),x(cn,r.session,!0),x(Vr,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function xw(e,t,n){try{const r=await fetch(`${Ua}/api/auth/register`,{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:e,password:t,displayName:n})});if(!r.ok)return{ok:!1,error:(await r.json().catch(()=>({}))).error||"Registration failed"};const s=await r.json();return x(qr,s.user,!0),x(cn,s.session,!0),x(Vr,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function Sw(){try{await fetch(`${Ua}/api/auth/logout`,{method:"POST",credentials:"include"})}catch{}if(Bi?.required&&!Bi.guestAllowed){window.location.reload();return}x(qr,null),x(cn,null),x(Vr,!0)}function Ew(){x(qr,{id:"local",username:"local",displayName:"Local Owner",role:"admin",createdAt:"",updatedAt:""},!0),x(cn,{token:"local",userId:"local",role:"admin",expiresAt:1/0},!0),x(Vr,!1)}function Iw(){return i(cn)?.token==="local"}function ht(){return i(cn)?.role==="admin"}function Fi(){return i(cn)!==null}function bf(){return i(Vr)}function Tr(){return i(qr)}function Ha(){return i(cn)?`Bearer ${i(cn).token}`:null}let Br="";function gf(e){Br=e}async function Aw(e){const t=await fetch(`${Br}/api/env-state/${encodeURIComponent(e)}`);return t.ok?await t.json():(console.warn(`[sh3] Failed to fetch env state for "${e}": HTTP ${t.status}`),{})}async function Cw(e,t){if(!ht())throw new Error("Cannot update env state: not elevated to admin");const n=Ha(),r={"Content-Type":"application/json"};n&&(r.Authorization=n);const s=await fetch(`${Br}/api/env-state/${encodeURIComponent(e)}`,{method:"PUT",headers:r,body:JSON.stringify(t)});if(!s.ok){const a=await s.json().catch(()=>({}));throw new Error(`Env state update failed: HTTP ${s.status} — ${a.error??"unknown"}`)}}async function Go(e,t,n){if(!ht())throw new Error("Cannot install: not elevated to admin");const r=Ha(),s=new FormData;s.append("manifest",new Blob([JSON.stringify(e)],{type:"application/json"}),"manifest.json"),s.append("client",new Blob([t],{type:"application/javascript"}),"client.js"),n!==void 0&&s.append("server",new Blob([n],{type:"application/javascript"}),"server.js");const a={};r&&(a.Authorization=r);const o=await fetch(`${Br}/api/packages/install`,{method:"POST",headers:a,body:s});if(!o.ok){let l={};try{l=await o.json()}catch{}return{ok:!1,error:typeof l.error=="string"?l.error:`HTTP ${o.status}`,code:typeof l.code=="string"?l.code:void 0,missing:Array.isArray(l.missing)?l.missing:void 0}}return{ok:!0}}async function Tw(e){if(!ht())throw new Error("Cannot uninstall: not elevated to admin");const t=Ha(),n={"Content-Type":"application/json"};t&&(n.Authorization=t);const r=await fetch(`${Br}/api/packages/uninstall`,{method:"POST",headers:n,body:JSON.stringify({id:e})});if(!r.ok){const s=await r.json().catch(()=>({}));throw new Error(`Uninstall failed: HTTP ${r.status} — ${s.error??"unknown"}`)}}async function Rw(){const e=await fetch(`${Br}/api/packages`);return e.ok?await e.json():[]}function Pw(e){return tn[e].list()}function Dw(e,t){return tn[e].read(t)}function jw(e,t){tn[e].delete(t)}function Mw(e){for(const t of tn[e].list())tn[e].delete(t)}function _f(){return{list:Pw,peek:Dw,clear:jw,clearAll:Mw}}const yf="documents:browse",wf="documents:read",kf="documents:write";function zw(e,t,n={canRead:!1,canWrite:!1}){const r={listDocuments:()=>t.listAllDocuments(e),listShards:()=>t.listAllShards(e),watchDocuments:s=>kn.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),kn.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),kn.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),kn.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&&kn.emit({type:"delete",path:a,tenantId:e,shardId:s})}),r}const xf="keys:mint";class Sf extends Error{constructor(t){super(`Shard may not mint a key with scope '${t}' — not declared in manifest.`),this.name="ScopeEscalationError"}}class Ef extends Error{constructor(){super("User denied key creation."),this.name="ConsentDeniedError"}}const Ui=new Map;let es=null;function If(e){return es=e,()=>{es===e&&(es=null)}}async function Lw(e,t){if(!es)throw new Error("No consent listener registered — the shell must mount ConsentDialog.");const n=`c_${Math.random().toString(36).slice(2)}${Date.now()}`;return new Promise(r=>{Ui.set(n,{resolve:r}),es({...t,shardId:e,requestId:n})})}function Hi(e,t){const n=Ui.get(e);n&&(Ui.delete(e),n.resolve(t))}const ha=new Map,Zs=new Map,Ow=5e3;function Nw(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)},Ow)}function qw(e,t){return Zs.get(e)?.has(t)??!1}function Xo(e,t){const n=ha.get(e)??new Set;return n.add(t),ha.set(e,n),()=>{n.delete(t)}}function Af(e,t){if(!e||qw(e,t))return;Nw(e,t);const n=ha.get(e);if(n)for(const s of n)s(t);const r=ha.get("*");if(r)for(const s of r)s(t)}function Vw(){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);Af(n.shardId,n.id)}catch{}},()=>e.close()}function Bw(e){const{shardId:t,shardPermissions:n}=e,r=s=>{for(const a of s)if(!n.includes(a)&&!n.includes("admin:*"))throw new Sf(a)};return{async mint(s){if(r(s.scopes),!await Lw(t,s))throw new Ef;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}`);Af(t,s)}}}const un=oe(new Map),gr=new Map,Rr=oe(new Map),pa=oe(new Map);function Jo(e){const t=e.manifest.id;un.has(t)&&Rr.has(t)&&Ka(t),un.set(t,e),pa.delete(t)}async function Cf(e,t){const n=un.get(e);if(!n)throw new Error(`Cannot activate shard "${e}": not registered`);if(gr.has(e))return;const r={shard:n,ctx:void 0,viewIds:new Set,verbNames:new Set,cleanupFns:[]},s=oe({proxy:null,defaults:null}),a={register(l,c){const u=Id(l,c);return r.cleanupFns.push(async()=>u()),u},list(l){return za(l)},listPoints(){return d_()},onChange(l,c){const u=Ad(l,c);return r.cleanupFns.push(async()=>u()),u}},o={state:l=>jn.state(e,l),registerView:(l,c)=>{hy(l,c),r.viewIds.add(l)},registerVerb:l=>{const c=e==="shell"?l.name:`${e}:${l.name}`;py(c,{...l,name:c}),r.verbNames.add(c)},documents:l=>{const c=bw(Xs(),e,Vi(),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=Gn(s.proxy);Object.assign(s.proxy,l);try{const u=Gn(s.proxy);await Cw(e,u)}catch(u){throw Object.assign(s.proxy,c),u}},get isAdmin(){return ht()},get tenantId(){return Xs()},zones:n.manifest.permissions?.includes(To)?_f():void 0,browse:n.manifest.permissions?.includes(yf)?zw(Xs(),Vi(),{canRead:n.manifest.permissions.includes(wf),canWrite:n.manifest.permissions.includes(kf)}):void 0,keys:n.manifest.permissions?.includes(xf)?Bw({shardId:e,shardPermissions:n.manifest.permissions??[]}):void 0,contributions:a,actions:{register(l){const c=ey(l,e);return r.cleanupFns.push(async()=>c()),c},selection:Od(e),openContextMenu(l){Wo(l)},openPalette(l){Fa(l)}}};if(r.ctx=o,n.onKeyRevoked){const l=Xo(e,async c=>{try{await n.onKeyRevoked(c)}catch(u){console.error(`[sh3] onKeyRevoked failed in "${e}":`,u)}});r.cleanupFns.push(async()=>l())}gr.set(e,r),Rr.set(e,n);try{await n.activate(o);for(const l of n.manifest.views)if(!r.viewIds.has(l.id))throw new Error(`Shard "${e}" declared view "${l.id}" in its manifest but registered no factory for it.`);if(s.proxy&&s.defaults)try{const l=await Aw(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)Fd(c);for(const c of r.viewIds)Bd(c);throw Nd(e),gr.delete(e),Rr.delete(e),pa.set(e,{id:e,error:l,phase:t?.phase??"launch",timestamp:Date.now()}),console.error(`[sh3] Shard "${e}" failed to activate:`,l),l}pa.delete(e),n.autostart?.(o)}function Ka(e){const t=gr.get(e);if(t){t.shard.deactivate?.();for(const n of t.cleanupFns)n();for(const n of t.verbNames)Fd(n);for(const n of t.viewIds)Bd(n);Nd(e),gr.delete(e),Rr.delete(e)}}function Fw(e){return gr.get(e)?.ctx}function uc(){const e=[];for(const t of Rr.values())for(const n of t.manifest.views)n.standalone&&e.push({shardId:t.manifest.id,viewId:n.id,label:n.label});return e}const Zn=oe({activeProjectId:null});function Tf(e){if(Zn.activeProjectId===e)return;const t=rt.id;Zn.activeProjectId=e,Ar.id=null,t&&wr(()=>Promise.resolve().then(()=>Hw),void 0).then(n=>n.unloadApp(t))}const Rf=Da("__sh3core__:last-app",{user:{id:null}});function Pf(){return Rf.user.id}function fs(e){Rf.user.id=e}function Df(){fs(null)}const Ki=new Map;function Uw(){return Zn.activeProjectId??hf()}function Os(e,t){let n=Ki.get(e);if(!n){const r=Cn(e),s=Uw();n={scopeId:s,state:a=>Da(`__app__:${e}:scope:${s}`,a),zones:r?.manifest.permissions?.includes(To)?_f():void 0},Ki.set(e,n)}return n}async function bn(e){const t=Cn(e);if(!t)throw new Error(`Cannot launch app "${e}": not registered`);if(rt.id&&rt.id!==e)Zo(rt.id);else if(rt.id===e){for(const n of t.manifest.requiredShards){const r=un.get(n),s=Fw(n);r&&s&&r.resume?.(s)}t.resume?.(Os(e)),ic(),t.onAppReady?.(Os(e)),fs(e),Ar.id=e,fa(e,new Set(t.manifest.requiredShards??[])),br(e).then(ds);return}for(const n of t.manifest.requiredShards)if(!un.has(n))throw new Error(`App "${e}" requires shard "${n}" which is not registered`);Ry(t);try{for(const n of t.manifest.requiredShards)await Cf(n,{phase:"launch"})}catch(n){Xd();try{xn.notify(`Couldn't launch "${t.manifest.label??e}": ${n instanceof Error?n.message:String(n)}`,{level:"error",duration:6e3})}catch{}throw n}Py(),t.activate?.(Os(e)),rt.id=e,fa(e,new Set(t.manifest.requiredShards??[])),br(e).then(ds),ic(),t.onAppReady?.(Os(e)),fs(e),Ar.id=e}function Zo(e){if(rt.id!==e)return;const t=Cn(e);if(t){t.deactivate?.(),Jd(),Xd();for(const n of t.manifest.requiredShards){const r=un.get(n);r&&(r.autostart||Ka(n))}rt.id=null,fa(null,new Set),fy(),gd(),br("sh3.home").then(ds),Ki.delete(e)}}function Wa(e){An.has(e)&&(rt.id===e&&(Zo(e),fs(null)),An.delete(e))}async function Ds(){const e=rt.id?Cn(rt.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 gd(),Jd(),fa(null,new Set),fs(null),!0}const Hw=Object.freeze(Object.defineProperty({__proto__:null,clearLastApp:Df,launchApp:bn,readLastApp:Pf,returnToHome:Ds,unloadApp:Zo,unregisterApp:Wa},Symbol.toStringTag,{value:"Module"}));function jf(){return{root:At(),source:Zd()}}function Kw(e){const t=At().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 Ww(e){const t=At();return Ga(t.docked,n=>n.slotId===e)?!0:Mf(t,n=>n.slotId===e)}function Ya(e){const t=At();return Ga(t.docked,n=>n.viewId===e)?!0:Mf(t,n=>n.viewId===e)}function Ga(e,t){if(e.type==="tabs"){const n=e.tabs.findIndex(t);return n>=0?(e.activeTab=n,!0):!1}if(e.type==="split"){for(const n of e.children)if(Ga(n,t))return!0}return!1}function Mf(e,t){for(const n of e.floats)if(Ga(n.content,t))return lt.focus(n.id),!0;return!1}function Yw(e,t){return zf(e,t,!0)}function Gw(e,t){return zf(e,t,!1)}function zf(e,t,n){const r=At().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=At(),n=t.docked;if(!Cr(n,e))return Xw(t,e);const a=Wd(e)?.closable;return!a||typeof a=="object"&&(!await a.canClose()||!Cr(n,e))?!1:(Na(n,e),vr(n),!0)}async function Xw(e,t){for(const n of e.floats){if(!Cr(n.content,t))continue;const a=Wd(t)?.closable;if(typeof a=="object"&&(!await a.canClose()||!Cr(n.content,t)))return!1;Na(n.content,t);const o=n.content.type==="tabs"?n.content:null;return(!o||o.tabs.length===0)&<.close(n.id),!0}return!1}function Lf(e){const t=At(),n=Cr(t.docked,e);if(!n)return null;const r=n.entry,s=r.viewId;if(!s)return null;const a=r.label,o=r.meta;return Na(t.docked,e),vr(t.docked),lt.open(s,{title:a,meta:o})}function Of(e){const n=At().floats.find(l=>l.id===e);if(!n)return!1;const r=n.content,s=r.type==="tabs"?r:null;if(!s||s.tabs.length===0)return lt.close(e),!1;const 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&<.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 Nf(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=Nf(e.children[n],[...t,n]);if(r)return r}return null}function el(e){const t=At().docked;if(Ya(e.viewId??""))return!0;const n=$o(t);if(n)return n.tabs.push(e),n.activeTab=n.tabs.length-1,!0;const r=Nf(t);return r?(Ud(t,r,e,"right"),!0):!1}function qf(e){return Bo(At(),e)}class ft extends Error{constructor(t,n){super(`Registry validation error at ${t}: ${n}`),this.name="RegistryValidationError",this.path=t}}function Vf(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)=>Jw(r,`$.packages[${s}]`))}}function Jw(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new ft(t,"expected an object");const n=e;Ht(n,"id",t),$w(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)=>Zw(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 Zw(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)=>Qw(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 Qw(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 $w(e,t,n,r){if(!n.includes(e[t]))throw new ft(`${r}.${t}`,`expected one of: ${n.join(", ")}`)}const dc=["sha256","sha384","sha512"];function e1(e){const t=e.indexOf("-");if(t===-1)throw new Error(`Invalid SRI format: ${e}`);const n=e.slice(0,t),r=e.slice(t+1);if(!dc.includes(n))throw new Error(`Unsupported SRI algorithm: ${n}. Supported: ${dc.join(", ")}`);if(!r)throw new Error(`Empty hash in SRI: ${e}`);return{algorithm:n,hash:r}}function t1(e){return`SHA-${e.slice(3)}`}function n1(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 tl(e,t){const{algorithm:n,hash:r}=e1(t),s=t1(n),a=await crypto.subtle.digest(s,e),o=n1(a);if(o!==r)throw new Error(`Integrity check failed for ${n}. Expected: ${r}, got: ${o}`)}async function Bf(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=Vf(s)}catch(o){console.warn(`[sh3] Registry ${r} failed validation: ${o instanceof Error?o.message:String(o)}`);continue}for(const o of a.packages)t.has(o.id)||(t.add(o.id),n.push({entry:o,latest:o.versions[0],sourceRegistry:r}))}return n}async function Xa(e,t){if(!e.bundleUrl||!e.integrity)throw new Error("fetchBundle called on a version with no client bundle");let n=e.bundleUrl;t&&!/^https?:\/\//i.test(n)&&(n=new URL(n,t).href);const r=await fetch(n);if(!r.ok)throw new Error(`Bundle fetch failed: HTTP ${r.status} ${r.statusText} from ${n}`);const s=await r.arrayBuffer();return await tl(s,e.integrity),s}async function nl(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 tl(s,e.serverIntegrity):console.warn(`[sh3] Server bundle at ${n} has no serverIntegrity declared — skipping SRI check. This will become an error once the formal registry spec (ADR-015) lands.`),s}function Ja(e,t){return{id:e.entry.id,type:e.entry.type,version:t.version,contractVersion:t.contractVersion,sourceRegistry:e.sourceRegistry,integrity:t.integrity,requires:t.requires,hasServerBundle:!!t.serverBundleUrl,serverIntegrity:t.serverIntegrity}}const ts="sh3.shell.mode";function r1(e,t){return e.contributions.register(ts,t)}const fn="0.14.0",rl="sh3:user:__sh3core__:theme";let vs=[];function s1(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(rl,JSON.stringify(e))}catch{}}function a1(){for(const e of vs)document.documentElement.style.removeProperty(`--${e}`);vs=[];try{localStorage.removeItem(rl)}catch{}}function Ff(){try{const e=localStorage.getItem(rl);if(!e)return{};const t=JSON.parse(e);return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{}}catch{return{}}}function i1(){const e=Ff();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 Qn="/assets/icons-2eVU8BA9.svg",Uf=Symbol("sh3.icon-sprite");function o1(e){so(Uf,e)}function Hf(){return ro(Uf)}var l1=yo('<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>'),c1=yo('<svg class="sh3-btn__icon svelte-t4hi97" aria-hidden="true"><use></use></svg>'),u1=C('<span class="sh3-btn__label svelte-t4hi97"><!></span>'),d1=C("<button><!> <!></button>");function f1(e,t){re(t,!0);let n=G(t,"variant",3,"default"),r=G(t,"disabled",3,!1),s=G(t,"type",3,"button");const a=Hf();function o(m){return m.includes("/")||m.endsWith(".svg")}const l=U(()=>t.icon?o(t.icon)?t.icon:`${t.sprite??a??Qn}#${t.icon}`:void 0);let c=V(!1);const u=U(()=>t.loading??i(c)),d=U(()=>n()==="icon"||!!t.icon&&!t.children);async function f(m){if(!t.onclick)return;const A=t.onclick(m);if(A&&typeof A.then=="function"){x(c,!0);try{await A}finally{x(c,!1)}}}var h=d1();let g;var S=p(h);{var b=m=>{var A=l1();I(m,A)},_=m=>{var A=c1(),j=p(A);v(A),N(()=>ne(j,"href",i(l))),I(m,A)};H(S,m=>{i(u)?m(b):i(l)&&m(_,1)})}var w=k(S,2);{var y=m=>{var A=u1(),j=p(A);en(j,()=>t.children),v(A),I(m,A)};H(w,m=>{t.children&&m(y)})}v(h),N(()=>{ne(h,"type",s()),g=ce(h,1,`sh3-btn sh3-btn--${n()??""}`,"svelte-t4hi97",g,{"sh3-btn--icon-only":i(d)}),h.disabled=r()||i(u),ne(h,"aria-busy",i(u)||void 0),ne(h,"title",t.title),ne(h,"aria-label",t.ariaLabel??(i(d)?t.title:void 0))}),B("click",h,f),I(e,h),se()}le(["click"]);var v1=C('<span class="sh3-collapsible__title svelte-lvydsb"> </span>'),h1=C('<div class="sh3-collapsible__body svelte-lvydsb"><!></div>'),p1=C('<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 m1(e,t){re(t,!0);let n=G(t,"open",15,!1);function r(){n(!n()),t.onopenchange?.(n())}var s=p1();let a;var o=p(s),l=k(p(o),2);{var c=h=>{var g=Ye(),S=he(g);en(S,()=>t.header),I(h,g)},u=h=>{var g=v1(),S=p(g,!0);v(g),N(()=>z(S,t.title)),I(h,g)};H(l,h=>{t.header?h(c):t.title&&h(u,1)})}v(o);var d=k(o,2);{var f=h=>{var g=h1(),S=p(g);en(S,()=>t.children),v(g),I(h,g)};H(d,h=>{n()&&h(f)})}v(s),N(()=>{a=ce(s,1,"sh3-collapsible svelte-lvydsb",null,a,{"sh3-collapsible--open":n()}),ne(o,"aria-expanded",n())}),B("click",o,r),I(e,s),se()}le(["click"]);var b1=C('<span aria-hidden="true">*</span>'),g1=C('<span class="sh3-field__label svelte-m4dkl"> <!></span>'),_1=C('<span class="sh3-field__affix svelte-m4dkl"><!></span>'),y1=C('<span class="sh3-field__affix svelte-m4dkl"><!></span>'),w1=C("<span> </span>"),k1=C('<label><!> <span class="sh3-field__row svelte-m4dkl"><!> <input class="sh3-field__input svelte-m4dkl"/> <!></span> <!></label>');function x1(e,t){re(t,!0);let n=G(t,"value",15,""),r=G(t,"type",3,"text"),s=G(t,"disabled",3,!1),a=G(t,"invalid",3,!1),o=G(t,"size",3,"md"),l=G(t,"required",3,!1);const c=U(()=>a()&&!!t.error),u=U(()=>i(c)?t.error:t.helper);var d=k1();let f;var h=p(d);{var g=P=>{var D=g1(),M=p(D,!0),R=k(M);{var O=E=>{var T=b1();I(E,T)};H(R,E=>{l()&&E(O)})}v(D),N(()=>z(M,t.label)),I(P,D)};H(h,P=>{t.label&&P(g)})}var S=k(h,2),b=p(S);{var _=P=>{var D=_1(),M=p(D);en(M,()=>t.prefix),v(D),I(P,D)};H(b,P=>{t.prefix&&P(_)})}var w=k(b,2);ge(w);var y=k(w,2);{var m=P=>{var D=y1(),M=p(D);en(M,()=>t.suffix),v(D),I(P,D)};H(y,P=>{t.suffix&&P(m)})}v(S);var A=k(S,2);{var j=P=>{var D=w1();let M;var R=p(D,!0);v(D),N(()=>{M=ce(D,1,"sh3-field__helper svelte-m4dkl",null,M,{"sh3-field__helper--error":i(c)}),z(R,i(u))}),I(P,D)};H(A,P=>{i(u)&&P(j)})}v(d),N(()=>{f=ce(d,1,"sh3-field svelte-m4dkl",null,f,{"sh3-field--invalid":a(),"sh3-field--sm":o()==="sm"}),ne(w,"type",r()),ne(w,"placeholder",t.placeholder),w.disabled=s(),w.required=l(),ne(w,"autocomplete",t.autocomplete),ne(w,"aria-invalid",a()||void 0)}),B("input",w,()=>t.oninput?.(n())),ze("blur",w,()=>t.onchange?.(n())),Ee(w,n),I(e,d),se()}le(["input"]);var S1=C('<span aria-hidden="true">*</span>'),E1=C('<span class="sh3-textarea__label svelte-668c6r"> <!></span>'),I1=C("<span> </span>"),A1=C('<label><!> <textarea class="sh3-textarea__input svelte-668c6r"></textarea> <!></label>');function C1(e,t){re(t,!0);let n=G(t,"value",15,""),r=G(t,"disabled",3,!1),s=G(t,"invalid",3,!1),a=G(t,"size",3,"md"),o=G(t,"required",3,!1),l=G(t,"rows",3,3),c=G(t,"resize",3,"vertical");const u=U(()=>s()&&!!t.error),d=U(()=>i(u)?t.error:t.helper);var f=A1();let h;var g=p(f);{var S=m=>{var A=E1(),j=p(A,!0),P=k(j);{var D=M=>{var R=S1();I(M,R)};H(P,M=>{o()&&M(D)})}v(A),N(()=>z(j,t.label)),I(m,A)};H(g,m=>{t.label&&m(S)})}var b=k(g,2);vo(b);let _;var w=k(b,2);{var y=m=>{var A=I1();let j;var P=p(A,!0);v(A),N(()=>{j=ce(A,1,"sh3-textarea__helper svelte-668c6r",null,j,{"sh3-textarea__helper--error":i(u)}),z(P,i(d))}),I(m,A)};H(w,m=>{i(d)&&m(y)})}v(f),N(()=>{h=ce(f,1,"sh3-textarea svelte-668c6r",null,h,{"sh3-textarea--invalid":s(),"sh3-textarea--sm":a()==="sm"}),ne(b,"placeholder",t.placeholder),b.disabled=r(),b.required=o(),ne(b,"rows",l()),ne(b,"aria-invalid",s()||void 0),_=Ke(b,"",_,{resize:c()})}),B("input",b,()=>t.oninput?.(n())),ze("blur",b,()=>t.onchange?.(n())),Ee(b,n),I(e,f),se()}le(["input"]);function T1(e,t,n){let r=e;return t!==void 0&&r<t&&(r=t),n!==void 0&&r>n&&(r=n),r}function R1(e,t){const n=t.min??0,r=Math.round((e-n)/t.step);return n+r*t.step}var P1=C('<span class="sh3-num__label svelte-1qa0x3m"> </span>'),D1=C('<span class="sh3-num__affix svelte-1qa0x3m"><!></span>'),j1=C('<span class="sh3-num__affix svelte-1qa0x3m"><!></span>'),M1=C('<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 z1(e,t){re(t,!0);let n=G(t,"value",15,0),r=G(t,"step",3,1),s=G(t,"disabled",3,!1),a=G(t,"invalid",3,!1),o=G(t,"size",3,"md");function l(E){if(Number.isNaN(E))return;let T=T1(R1(E,{min:t.min,step:r()}),t.min,t.max);t.precision!==void 0&&(T=Number(T.toFixed(t.precision))),n(T)}function c(E){l(n()+E*r()),t.oninput?.(n())}let u=null,d=null,f=!1;function h(E){s()||(f=!0,c(E),u=setTimeout(()=>{let T=0;d=setInterval(()=>{c(E),T+=60,T>1500&&d&&(clearInterval(d),d=setInterval(()=>c(E),20))},60)},350))}function g(){u&&(clearTimeout(u),u=null),d&&(clearInterval(d),d=null),f&&(f=!1,t.onchange?.(n()))}var S=M1();let b;var _=p(S);{var w=E=>{var T=P1(),q=p(T,!0);v(T),N(()=>z(q,t.label)),I(E,T)};H(_,E=>{t.label&&E(w)})}var y=k(_,2),m=p(y);{var A=E=>{var T=D1(),q=p(T);en(q,()=>t.prefix),v(T),I(E,T)};H(m,E=>{t.prefix&&E(A)})}var j=k(m,2);ge(j);var P=k(j,2);{var D=E=>{var T=j1(),q=p(T);en(q,()=>t.suffix),v(T),I(E,T)};H(P,E=>{t.suffix&&E(D)})}var M=k(P,2),R=p(M),O=k(R,2);v(M),v(y),v(S),N(()=>{b=ce(S,1,"sh3-num svelte-1qa0x3m",null,b,{"sh3-num--invalid":a(),"sh3-num--sm":o()==="sm"}),ne(j,"min",t.min),ne(j,"max",t.max),ne(j,"step",r()),j.disabled=s(),ne(j,"aria-invalid",a()||void 0),is(j,n()),R.disabled=s(),O.disabled=s()}),B("input",j,E=>{const T=E.currentTarget.valueAsNumber;Number.isNaN(T)||(n(T),t.oninput?.(T))}),ze("blur",j,()=>{l(n()),t.onchange?.(n())}),B("pointerdown",R,()=>h(1)),B("pointerup",R,g),ze("pointerleave",R,g),B("pointerdown",O,()=>h(-1)),B("pointerup",O,g),ze("pointerleave",O,g),I(e,S),se()}le(["input","pointerdown","pointerup"]);function Za(e){return e.filter(t=>!t.disabled)}function L1(e,t){const n=Za(e);if(n.length===0)return t;const r=n.findIndex(a=>a.value===t);return n[(r+1+n.length)%n.length].value}function O1(e,t){const n=Za(e);if(n.length===0)return t;const r=n.findIndex(a=>a.value===t);return n[(r-1+n.length)%n.length].value}function N1(e){return Za(e)[0]?.value}function q1(e){const t=Za(e);return t[t.length-1]?.value}var V1=C('<button type="button" role="radio"> </button>'),B1=C('<div role="radiogroup" tabindex="-1"></div>');function Kf(e,t){re(t,!0);let n=G(t,"value",31,()=>oe(t.options[0]?.value??"")),r=G(t,"size",3,"md"),s=G(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=L1(t.options,n());break;case"ArrowLeft":case"ArrowUp":d=O1(t.options,n());break;case"Home":d=N1(t.options);break;case"End":d=q1(t.options);break;default:return}u.preventDefault(),d!==void 0&&a(d)}var l=B1();let c;me(l,21,()=>t.options,Vt,(u,d)=>{var f=V1();let h;var g=p(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,h=ce(f,1,"svelte-17xsko9",null,h,{"sh3-seg__btn--active":n()===i(d).value}),z(g,i(d).label)}),B("click",f,()=>{!i(d).disabled&&!s()&&a(i(d).value)}),I(u,f)}),v(l),N(()=>c=ce(l,1,"sh3-seg svelte-17xsko9",null,c,{"sh3-seg--sm":r()==="sm"})),B("keydown",l,o),I(e,l),se()}le(["keydown","click"]);function F1(e,t){return e===t?"":t}function U1(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var H1=C('<button type="button"><!></button>'),K1=C('<div role="group"></div>');function W1(e,t){re(t,!0);let n=G(t,"multiple",3,!1),r=G(t,"value",31,()=>oe(n()?[]:t.options[0]?.value??"")),s=G(t,"disabled",3,!1),a=G(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(U1(f,d))}else r(F1(typeof r()=="string"?r():"",d));t.onchange?.(r())}}var c=K1();let u;me(c,21,()=>t.options,Vt,(d,f)=>{var h=H1();let g;var S=p(h);en(S,()=>i(f).icon),v(h),N((b,_)=>{ne(h,"title",i(f).tooltip),ne(h,"aria-label",i(f).tooltip),ne(h,"aria-pressed",b),h.disabled=s(),g=ce(h,1,"svelte-13knxr5",null,g,_)},[()=>o(i(f).value),()=>({"sh3-itg__btn--active":o(i(f).value)})]),B("click",h,()=>l(i(f).value)),I(d,h)}),v(c),N(()=>u=ce(c,1,"sh3-itg svelte-13knxr5",null,u,{"sh3-itg--sm":a()==="sm"})),I(e,c),se()}le(["click"]);function ma(e,t,n){return n===t?0:(e-t)/(n-t)*100}var Y1=C('<span class="sh3-slider__tick svelte-13va6lu"></span>'),G1=C('<output class="sh3-slider__value svelte-13va6lu"> </output>'),X1=C('<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 Wf(e,t){re(t,!0);let n=G(t,"value",15,0),r=G(t,"min",3,0),s=G(t,"max",3,100),a=G(t,"step",3,1),o=G(t,"showValue",3,!1),l=G(t,"disabled",3,!1),c=G(t,"invalid",3,!1),u=G(t,"size",3,"md"),d=G(t,"orientation",3,"horizontal");const f=U(()=>ma(n(),r(),s()));var h=X1();let g;var S=p(h),b=p(S);let _;var w=k(b,2);{var y=P=>{var D=Ye(),M=he(D);me(M,17,()=>t.ticks,Vt,(R,O)=>{var E=Y1();let T;N(q=>T=Ke(E,"",T,q),[()=>({"--tick-pct":`${ma(i(O),r(),s())??""}%`})]),I(R,E)}),I(P,D)};H(w,P=>{t.ticks&&P(y)})}v(S);var m=k(S,2);ge(m);var A=k(m,2);{var j=P=>{var D=G1();let M;var R=p(D,!0);v(D),N(()=>{M=Ke(D,"",M,{"--pct":`${i(f)??""}%`}),z(R,n())}),I(P,D)};H(A,P=>{o()&&P(j)})}v(h),N(()=>{g=ce(h,1,`sh3-slider sh3-slider--${d()??""}`,"svelte-13va6lu",g,{"sh3-slider--sm":u()==="sm","sh3-slider--invalid":c()}),_=Ke(b,"",_,{"--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)}),B("input",m,()=>t.oninput?.(n())),B("change",m,()=>t.onchange?.(n())),Ee(m,n),I(e,h),se()}le(["input","change"]);function fc(e,t,n){const[r,s]=e;return t==="low"?[Math.min(n,s),s]:[r,Math.max(n,r)]}var J1=C('<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 Z1(e,t){re(t,!0);let n=G(t,"value",31,()=>oe([0,100])),r=G(t,"min",3,0),s=G(t,"max",3,100),a=G(t,"step",3,1),o=G(t,"disabled",3,!1),l=G(t,"invalid",3,!1),c=G(t,"size",3,"md");const u=U(()=>ma(n()[0],r(),s())),d=U(()=>ma(n()[1],r(),s()));function f(A){n(fc(n(),"low",A)),t.oninput?.(n())}function h(A){n(fc(n(),"high",A)),t.oninput?.(n())}var g=J1();let S;var b=p(g),_=p(b);let w;v(b);var y=k(b,2);ge(y);var m=k(y,2);ge(m),v(g),N(()=>{S=ce(g,1,"sh3-range svelte-rdbrc5",null,S,{"sh3-range--sm":c()==="sm","sh3-range--invalid":l()}),w=Ke(_,"",w,{"--lo":`${i(u)??""}%`,"--hi":`${i(d)??""}%`}),ne(y,"min",r()),ne(y,"max",s()),ne(y,"step",a()),y.disabled=o(),is(y,n()[0]),ne(m,"min",r()),ne(m,"max",s()),ne(m,"step",a()),m.disabled=o(),is(m,n()[1])}),B("input",y,A=>f(parseFloat(A.currentTarget.value))),B("change",y,()=>t.onchange?.(n())),B("input",m,A=>h(parseFloat(A.currentTarget.value))),B("change",m,()=>t.onchange?.(n())),I(e,g),se()}le(["input","change"]);var Q1=C('<div class="sh3-sg__channel svelte-1lqyi0d"><span class="sh3-sg__label svelte-1lqyi0d"> </span> <!></div>'),$1=C("<div></div>");function ek(e,t){re(t,!0);let n=G(t,"orientation",3,"horizontal"),r=G(t,"values",31,()=>oe({})),s=G(t,"showValues",3,!1),a=G(t,"disabled",3,!1),o=G(t,"size",3,"md");var l=$1();me(l,21,()=>t.channels,c=>c.id,(c,u)=>{var d=Q1(),f=p(d),h=p(f,!0);v(f);var g=k(f,2),S=()=>r()[i(u).id]??0,b=_=>r({...r(),[i(u).id]:_});{let _=U(()=>i(u).min??0),w=U(()=>i(u).max??100),y=U(()=>i(u).step??1);Wf(g,{get orientation(){return n()},get min(){return i(_)},get max(){return i(w)},get step(){return i(y)},get disabled(){return a()},get size(){return o()},get showValue(){return s()},get value(){return S()},set value(m){b(m)},oninput:()=>t.oninput?.(r()),onchange:()=>t.onchange?.(r())})}v(d),N(()=>z(h,i(u).label)),I(c,d)}),v(l),N(()=>ce(l,1,`sh3-sg sh3-sg--${n()??""}`,"svelte-1lqyi0d")),I(e,l),se()}var tk=C('<span class="sh3-swatch__label svelte-6ri2j2"> </span>'),nk=C('<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 Yf(e,t){re(t,!0);let n=G(t,"value",15,"#000000"),r=G(t,"disabled",3,!1),s=G(t,"size",3,"md"),a;async function o(){if(r())return;const b=await jn.color.pick({initial:n(),anchor:a});b!=null&&(n(b),t.onchange?.(b))}var l=nk();let c;var u=p(l);{var d=b=>{var _=tk(),w=p(_,!0);v(_),N(()=>z(w,t.label)),I(b,_)};H(u,b=>{t.label&&b(d)})}var f=k(u,2);let h;var g=k(p(f)),S=p(g,!0);v(g),v(f),Le(f,b=>a=b,()=>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()??""})`),h=Ke(f,"",h,{"--swatch-color":n()}),z(S,n())}),B("click",f,o),I(e,l),se()}le(["click"]);function rk(e,t){return!e||e.length===0?t?[]:null:t?Array.from(e):e[0]}function sk(e){return e===null?"":Array.isArray(e)?e.length===0?"":e.length===1?e[0].name:`${e.length} files`:e.name}var ak=C('<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 ik(e,t){re(t,!0);let n=G(t,"value",15,null),r=G(t,"multiple",3,!1),s=G(t,"disabled",3,!1),a=G(t,"invalid",3,!1),o=G(t,"size",3,"md"),l=G(t,"buttonLabel",3,"Choose file...");function c(w){const y=w.currentTarget;n(rk(y.files,r())),t.onchange?.(n())}const u=U(()=>sk(n()));var d=ak();let f;var h=p(d),g=k(h,2),S=p(g,!0);v(g);var b=k(g,2),_=p(b,!0);v(b),v(d),N(()=>{f=ce(d,1,"sh3-fp svelte-24jk95",null,f,{"sh3-fp--sm":o()==="sm","sh3-fp--invalid":a()}),ne(h,"accept",t.accept),h.multiple=r(),h.disabled=s(),z(S,l()),z(_,i(u)||"no file")}),B("change",h,c),I(e,d),se()}le(["change"]);const ok=8;function lk(e){return e.length>=ok}function ck(e,t){if(!t)return e.slice();const n=t.toLowerCase();return e.filter(r=>r.label.toLowerCase().includes(n))}function uk(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 dk(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 fk(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var vk=C('<input class="sh3-listbox__search svelte-1tyxvrs" type="search" placeholder="Filter…"/>'),hk=C('<span aria-hidden="true"></span>'),pk=C('<div role="option" tabindex="-1"><!> <span class="sh3-listbox__label"> </span></div>'),mk=C('<div class="sh3-listbox__empty svelte-1tyxvrs">No matches</div>'),bk=C('<div class="sh3-listbox svelte-1tyxvrs" role="listbox" tabindex="-1"><!> <div class="sh3-listbox__list svelte-1tyxvrs"><!> <!></div></div>');function gk(e,t){re(t,!0);const n=U(()=>t.getValue());function r(){t.onClose?.(),t.close()}const s=U(()=>lk(t.options));function a(){if(t.multiple)return 0;const M=typeof i(n)=="string"?i(n):"",R=t.options.findIndex(O=>O.value===M&&!O.disabled);return R>=0?R:0}let o=V(""),l=V(oe(a())),c=V(void 0),u=V(void 0),d="",f=null;const h=U(()=>ck(t.options,i(o)));xe(()=>{i(l)>=i(h).length&&x(l,0),g()});async function g(){if(await Is(),!i(c))return;i(c).querySelector(`[data-idx="${i(l)}"]`)?.scrollIntoView({block:"nearest"})}function S(M){return t.multiple&&Array.isArray(i(n))?i(n).includes(M.value):i(n)===M.value}function b(M){const R=i(h)[M];!R||R.disabled||(t.onSelect(R.value),t.multiple||r())}function _(M){if(i(h).length!==0)switch(M.key){case"ArrowDown":M.preventDefault(),x(l,(i(l)+1)%i(h).length);break;case"ArrowUp":M.preventDefault(),x(l,(i(l)-1+i(h).length)%i(h).length);break;case"Home":M.preventDefault(),x(l,0);break;case"End":M.preventDefault(),x(l,i(h).length-1);break;case"Enter":M.preventDefault(),b(i(l));break;case" ":case"Space":M.preventDefault(),b(i(l));break;case"Escape":M.preventDefault(),r();break;default:if(i(s)&&document.activeElement===i(u)||M.key.length!==1||M.metaKey||M.ctrlKey||M.altKey)return;d+=M.key,f&&clearTimeout(f),f=setTimeout(()=>{d=""},500);const R=uk(i(h),d,i(l));R>=0&&x(l,R,!0)}}var w=bk(),y=p(w);{var m=M=>{var R=vk();ge(R),Le(R,O=>x(u,O),()=>i(u)),Ee(R,()=>i(o),O=>x(o,O)),I(M,R)};H(y,M=>{i(s)&&M(m)})}var A=k(y,2),j=p(A);me(j,17,()=>i(h),Vt,(M,R,O)=>{var E=pk();ne(E,"data-idx",O);let T;var q=p(E);{var L=W=>{var J=hk();let Q;N(ae=>Q=ce(J,1,"sh3-listbox__check svelte-1tyxvrs",null,Q,ae),[()=>({"sh3-listbox__check--on":S(i(R))})]),I(W,J)};H(q,W=>{t.multiple&&W(L)})}var F=k(q,2),Y=p(F,!0);v(F),v(E),N((W,J)=>{ne(E,"aria-selected",W),ne(E,"aria-disabled",i(R).disabled),T=ce(E,1,"svelte-1tyxvrs",null,T,J),z(Y,i(R).label)},[()=>S(i(R)),()=>({"sh3-listbox__opt--active":O===i(l),"sh3-listbox__opt--selected":S(i(R))})]),B("click",E,()=>b(O)),ze("mouseenter",E,()=>x(l,O,!0)),I(M,E)});var P=k(j,2);{var D=M=>{var R=mk();I(M,R)};H(P,M=>{i(h).length===0&&M(D)})}v(A),Le(A,M=>x(c,M),()=>i(c)),v(w),N(()=>ne(w,"aria-multiselectable",t.multiple)),B("keydown",w,_),I(e,w),se()}le(["keydown","click"]);var _k=C('<span class="sh3-select__label svelte-1q3zxph"> </span>'),yk=C("<option> </option>"),wk=C('<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 kk(e,t){re(t,!0);let n=G(t,"multiple",3,!1),r=G(t,"value",31,()=>oe(n()?[]:"")),s=G(t,"placeholder",3,"Select…"),a=G(t,"disabled",3,!1),o=G(t,"invalid",3,!1),l=G(t,"size",3,"md"),c=V(void 0),u=V(void 0),d=V(!1);const f=U(()=>dk(t.options,r(),n()));function h(){x(d,!1),i(c)?.focus()}async function g(){if(a()||i(d)||!i(c))return;x(d,!0);const R=jn.popup.show(gk,{anchor:i(c)},{options:t.options,getValue:()=>r(),multiple:n(),onSelect:T=>{if(n()){const q=Array.isArray(r())?r():[];r(fk(q,T))}else r(T);t.onchange?.(r())},onClose:h}),O=R.close;R.close=()=>{O(),h()},await Is(),document.querySelector(".sh3-listbox")?.focus()}function S(R){if(!(a()||i(d)))switch(R.key){case"ArrowDown":case"ArrowUp":case"Enter":case" ":R.preventDefault(),g();break}}function b(){i(u)&&(n()?r(Array.from(i(u).selectedOptions).map(R=>R.value)):r(i(u).value),t.onchange?.(r()))}var _=wk();let w;var y=p(_);{var m=R=>{var O=_k(),E=p(O,!0);v(O),N(()=>z(E,t.label)),I(R,O)};H(y,R=>{t.label&&R(m)})}var A=k(y,2),j=p(A);let P;var D=p(j,!0);v(j),Gt(2),v(A),Le(A,R=>x(c,R),()=>i(c));var M=k(A,2);ne(M,"tabindex",-1),me(M,21,()=>t.options,Vt,(R,O)=>{var E=yk(),T=p(E,!0);v(E);var q={};N(L=>{Io(E,L),z(T,i(O).label),q!==(q=i(O).value)&&(E.value=(E.__value=i(O).value)??"")},[()=>n()?Array.isArray(r())&&r().includes(i(O).value):r()===i(O).value]),I(R,E)}),v(M),Le(M,R=>x(u,R),()=>i(u)),v(_),N(()=>{w=ce(_,1,"sh3-select svelte-1q3zxph",null,w,{"sh3-select--invalid":o(),"sh3-select--sm":l()==="sm"}),A.disabled=a(),ne(A,"aria-expanded",i(d)),P=ce(j,1,"sh3-select__display svelte-1q3zxph",null,P,{"sh3-select__display--placeholder":!i(f)}),z(D,i(f)||s()),M.multiple=n(),M.disabled=a()}),B("click",A,g),B("keydown",A,S),B("change",M,b),I(e,_),se()}le(["click","keydown","change"]);function xk(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 Sk(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var Ek=C('<input type="search" class="sh3-picker__search svelte-1rlwvrb" placeholder="Filter…"/>'),Ik=C('<p class="sh3-picker__status svelte-1rlwvrb">Loading…</p>'),Ak=C('<button type="button" class="sh3-picker__retry svelte-1rlwvrb">Retry</button>'),Ck=C('<p class="sh3-picker__status sh3-picker__status--error svelte-1rlwvrb"> </p> <!>',1),Tk=C('<p class="sh3-picker__status svelte-1rlwvrb"> </p>'),Rk=C('<span class="sh3-picker__row-sub svelte-1rlwvrb"> </span>'),Pk=C('<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>'),Dk=C('<div><!> <div class="sh3-picker__list svelte-1rlwvrb"><!></div> <p class="sh3-picker__footer svelte-1rlwvrb"> </p></div>');function Gf(e,t){re(t,!0);let n=G(t,"value",31,()=>oe([])),r=G(t,"loading",3,!1),s=G(t,"error",3,null),a=G(t,"emptyText",3,"No items."),o=G(t,"searchThreshold",3,8),l=G(t,"disabled",3,!1),c=G(t,"size",3,"md"),u=V("");const d=U(()=>t.items.length>=o()),f=U(()=>xk(t.items,i(u))),h=U(()=>t.items.length),g=U(()=>n().length);function S(E){if(l())return;const T=Sk(n(),E);n(T),t.onchange?.(T)}var b=Dk();let _;var w=p(b);{var y=E=>{var T=Ek();ge(T),N(()=>T.disabled=l()),Ee(T,()=>i(u),q=>x(u,q)),I(E,T)};H(w,E=>{i(d)&&E(y)})}var m=k(w,2),A=p(m);{var j=E=>{var T=Ik();I(E,T)},P=E=>{var T=Ck(),q=he(T),L=p(q,!0);v(q);var F=k(q,2);{var Y=W=>{var J=Ak();B("click",J,()=>t.onRetry?.()),I(W,J)};H(F,W=>{t.onRetry&&W(Y)})}N(()=>z(L,s())),I(E,T)},D=E=>{var T=Tk(),q=p(T,!0);v(T),N(()=>z(q,a())),I(E,T)},M=E=>{var T=Ye(),q=he(T);me(q,17,()=>i(f),L=>L.id,(L,F)=>{var Y=Pk(),W=p(Y);ge(W);var J=k(W,2),Q=p(J),ae=p(Q,!0);v(Q);var K=k(Q,2);{var X=ie=>{var fe=Rk(),Z=p(fe,!0);v(fe),N(()=>z(Z,i(F).sublabel)),I(ie,fe)};H(K,ie=>{i(F).sublabel&&ie(X)})}v(J),v(Y),N(ie=>{Eo(W,ie),W.disabled=l(),z(ae,i(F).label)},[()=>n().includes(i(F).id)]),B("change",W,()=>S(i(F).id)),I(L,Y)}),I(E,T)};H(A,E=>{r()?E(j):s()?E(P,1):t.items.length===0?E(D,2):E(M,-1)})}v(m);var R=k(m,2),O=p(R);v(R),v(b),N(()=>{_=ce(b,1,"sh3-picker svelte-1rlwvrb",null,_,{"sh3-picker--sm":c()==="sm","sh3-picker--disabled":l()}),z(O,`${i(g)??""} of ${i(h)??""} selected`)}),I(e,b),se()}le(["click","change"]);function Xf(e,t){re(t,!0);const n=new Set(["sh3-admin-app","sh3-store-app"]);let r=G(t,"value",31,()=>oe([])),s=G(t,"disabled",3,!1),a=G(t,"size",3,"md");const o=U(()=>tr().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)}Gf(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 Mt=oe({users:[],loading:!1,error:null});let Hr=null;function vc(){return Hr||(Mt.loading=!0,Mt.error=null,Hr=(async()=>{try{const e=await fetch("/api/admin/users",{credentials:"include"});if(!e.ok){Mt.error=`GET /api/admin/users failed: ${e.status}`;return}Mt.users=await e.json()}catch(e){Mt.error=e.message}finally{Mt.loading=!1,Hr=null}})(),Hr)}function Jf(e,t){re(t,!0);let n=G(t,"value",31,()=>oe([])),r=G(t,"disabled",3,!1),s=G(t,"size",3,"md");Mt.users.length===0&&!Mt.loading&&!Mt.error&&vc();const a=U(()=>Mt.users.map(l=>({id:l.id,label:l.displayName||l.username,sublabel:l.username})));function o(l){n(l),t.onchange?.(l)}Gf(e,{get items(){return i(a)},get value(){return n()},onchange:o,get loading(){return Mt.loading},get error(){return Mt.error},onRetry:()=>void vc(),emptyText:"No users found.",get disabled(){return r()},get size(){return s()}}),se()}const jk={hotInstall:typeof Blob<"u"&&typeof URL.createObjectURL=="function"},Zf=["__sh3core__","shell","sh3-store","sh3-admin"],Qf=Object.freeze(Object.defineProperty({__proto__:null,AppPicker:Xf,Button:f1,COLOR_PICKER_POINT:Dd,CONFLICT_RENDERER_POINT:Td,Collapsible:m1,ColorSwatch:Yf,ConflictPermissionError:Rd,ConflictSessionOrphanedError:U_,ConsentDeniedError:Ef,FRAMEWORK_SHARD_IDS:Zf,Field:x1,FilePicker:ik,IconToggleGroup:W1,NumberInput:z1,PERMISSION_DOCUMENTS_BROWSE:yf,PERMISSION_DOCUMENTS_READ:wf,PERMISSION_DOCUMENTS_WRITE:kf,PERMISSION_KEYS_MINT:xf,PERMISSION_STATE_MANAGE:To,PERMISSION_SYNC_PEER:ww,PERMISSION_SYNC_POLICY:kw,RangeSlider:Z1,SHELL_MODE_CONTRIBUTION_POINT:ts,ScopeEscalationError:Sf,Segmented:Kf,Select:kk,Slider:Wf,SliderGroup:ek,Textarea:C1,UserPicker:Jf,VERSION:fn,activeShards:Rr,buildPackageMeta:Ja,capabilities:jk,clearTokenOverrides:a1,closeTab:Qo,collapseChild:Yw,dockFloat:Of,dockIntoActiveLayout:el,erroredShards:pa,expandChild:Gw,fetchBundle:Xa,fetchRegistries:Bf,focusTab:Ww,focusView:Ya,getActiveApp:md,getAuthHeader:Ha,getIconSprite:Hf,getTokenOverrides:Ff,getUser:Tr,inspectActiveLayout:jf,isAdmin:ht,isAuthenticated:Fi,isGuest:bf,launchApp:bn,listRegisteredApps:tr,listVerbs:Vo,locateSlot:qf,popoutView:Lf,provideIcons:o1,pushNavEntry:Eg,registerConsentListener:If,registerShellMode:r1,registeredShards:un,resolveConsent:Hi,returnToHome:Ds,setTokenOverrides:s1,shell:jn,spliceIntoActiveLayout:Kw,subscribeKeyRevocation:Xo,unregisterApp:Wa,validateRegistryIndex:Vf},Symbol.toStringTag,{value:"Module"})),Mk="/assets/SH3-BG5NVpSD.png",zk="https://cdn.jsdelivr.net/npm/p5@1.11.13/lib/p5.min.js";let Kr=null;function Lk(){return Kr||(Kr=new Promise((e,t)=>{const n=window.p5;if(n){e(n);return}const r=document.createElement("script");r.src=zk,r.async=!0,r.onload=()=>e(window.p5),r.onerror=s=>{Kr=null,t(s)},document.head.appendChild(r)}),Kr)}var Ok=C('<h1 class="shell-title-fallback svelte-1ifjvh5">SH3</h1>'),Nk=C('<div class="shell-title svelte-1ifjvh5"></div>');function qk(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=V(void 0),h=null,g=V(!1);const S=()=>m=>{const j=getComputedStyle(document.documentElement).getPropertyValue("--shell-accent").trim();let P,D,M=!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),D=m.loadImage(Mk,()=>{P=m.createGraphics(r,s),P.pixelDensity(1),P.image(D,0,0,r,s),P.loadPixels(),M=!0},()=>{x(g,!0)})},m.draw=()=>{if(!M)return;const R=m.millis()*.001;let O;m.clear(),m.background(0,0),m.fill(j);for(let E=0;E<s;E++)for(let T=0;T<r;T++){const q=(E*r+T)*4;if(P.pixels[q]<64){if(O=m.noise(T/r*2,E/s*2,R*.15),O>.33)continue;m.text(n[Math.floor(O*n.length*.25)],(T+.5)*a,(E+.5)*o);continue}O=m.noise(T/r*4,E/s*4,R*.5),m.text(n[Math.floor(O*n.length)],(T+.5)*a,(E+.5)*o)}}};xe(()=>{if(i(g))return;let m=!1;return Lk().then(A=>{if(!(m||!i(f)))try{h=new A(S(),i(f))}catch(j){console.error("[ShellTitle] p5 sketch failed to start",j),x(g,!0)}}).catch(A=>{console.error("[ShellTitle] failed to load p5 from CDN",A),x(g,!0)}),()=>{m=!0,h&&(h.remove(),h=null)}});var b=Ye(),_=he(b);{var w=m=>{var A=Ok();I(m,A)},y=m=>{var A=Nk();Ke(A,"",{},{width:"216.7195767195767px",height:"80px","--shell-title-scale":d}),Le(A,j=>x(f,j),()=>i(f)),I(m,A)};H(_,m=>{i(g)?m(w):m(y,-1)})}I(e,b),se()}async function sr(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 sr("/api/projects",{method:"GET"})).projects},async listAll(){return(await sr("/api/projects/all",{method:"GET"})).projects},async get(e){return sr(`/api/projects/${encodeURIComponent(e)}`,{method:"GET"})},async create(e){return sr("/api/projects",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e)})},async update(e,t){return sr(`/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 sr(`/api/projects/${encodeURIComponent(e)}${n}`,{method:"DELETE"})}};var Vk=C(`<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 Bk(e,t){re(t,!0);let n=V(void 0),r=V(!1),s=V(!1);xe(()=>{i(n)?.focus()});async function a(){if(!i(r)){x(r,!0);try{await t.onConfirm({wipeData:i(s)})}finally{t.close()}}}function o(){i(r)||(t.onCancel?.(),t.close())}var l=Vk(),c=p(l),u=p(c);v(c);var d=k(c,4),f=p(d);ge(f);var h=k(f,2),g=k(p(h)),S=p(g);v(g),v(h),v(d);var b=k(d,2),_=p(b);Le(_,y=>x(n,y),()=>i(n));var w=k(_,2);v(b),v(l),N(()=>{z(u,`Delete project '${t.projectName??""}'?`),f.disabled=i(r),z(S,`<dataDir>/docs/${t.projectId??""}/`),_.disabled=i(r),w.disabled=i(r)}),Qr(f,()=>i(s),y=>x(s,y)),B("click",_,o),B("click",w,a),I(e,l),se()}le(["click"]);var Fk=C('<p class="project-id svelte-1oy3640">ID: <code class="svelte-1oy3640"> </code></p>'),Uk=C('<span class="hint svelte-1oy3640">Your id: <code class="svelte-1oy3640"> </code> </span>'),Hk=C('<p class="error svelte-1oy3640"> </p>'),Kk=C('<button type="button" class="danger svelte-1oy3640">Delete</button>'),Wk=C('<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 Yk(e,t){re(t,!0);let n=G(t,"project",3,null);const r=U(()=>n()!==null),s=U(Tr);let a=V(oe(we(()=>n()?.name??""))),o=V(oe(we(()=>n()?.description??""))),l=V(oe(we(()=>{if(n())return[...n().members];const K=Tr()?.id;return K?[K]:[]}))),c=V(oe(we(()=>n()?[...n().appAllowlist]:[]))),u=V(!1),d=V(null);async function f(){if(!i(a).trim()){x(d,"Name is required");return}x(u,!0),x(d,null);const K={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,K):await Qs.create(K),await ba(),t.onClose()}catch(X){x(d,X.message,!0)}finally{x(u,!1)}}function h(){if(!i(r)||!n())return;const K=n();Dn.open(Bk,{projectName:K.name,projectId:K.id,onConfirm:async({wipeData:X})=>{x(u,!0),x(d,null);try{await Qs.delete(K.id,{wipeData:X}),await ba(),t.onClose()}catch(ie){x(d,ie.message,!0)}finally{x(u,!1)}}})}var g=Wk(),S=p(g),b=p(S),_=p(b,!0);v(b);var w=k(b,2);{var y=K=>{var X=Fk(),ie=k(p(X)),fe=p(ie,!0);v(ie),v(X),N(()=>z(fe,n().id)),I(K,X)};H(w,K=>{i(r)&&K(y)})}var m=k(w,2),A=k(p(m),2);ge(A),v(m);var j=k(m,2),P=k(p(j),2);vo(P),ne(P,"rows",2),v(j);var D=k(j,2),M=k(p(D),2);Jf(M,{get disabled(){return i(u)},get value(){return i(l)},set value(K){x(l,K,!0)}});var R=k(M,2);{var O=K=>{var X=Uk(),ie=k(p(X)),fe=p(ie,!0);v(ie);var Z=k(ie);v(X),N(()=>{z(fe,i(s).id),z(Z,` (${i(s).username??i(s).displayName??""})`)}),I(K,X)};H(R,K=>{i(s)&&K(O)})}v(D);var E=k(D,2),T=k(p(E),2);Xf(T,{get disabled(){return i(u)},get value(){return i(c)},set value(K){x(c,K,!0)}}),v(E);var q=k(E,2);{var L=K=>{var X=Hk(),ie=p(X,!0);v(X),N(()=>z(ie,i(d))),I(K,X)};H(q,K=>{i(d)&&K(L)})}v(S);var F=k(S,2),Y=p(F),W=p(Y,!0);v(Y);var J=k(Y,2),Q=k(J,2);{var ae=K=>{var X=Kk();N(()=>X.disabled=i(u)),B("click",X,h),I(K,X)};H(Q,K=>{i(r)&&K(ae)})}v(F),v(g),N(()=>{z(_,i(r)?`Edit ${n().name}`:"Create Project"),A.disabled=i(u),P.disabled=i(u),Y.disabled=i(u),z(W,i(r)?"Save":"Create"),J.disabled=i(u)}),Ee(A,()=>i(a),K=>x(a,K)),Ee(P,()=>i(o),K=>x(o,K)),B("click",Y,f),B("click",J,function(...K){t.onClose?.apply(this,K)}),I(e,g),se()}le(["click"]);const zt=oe({projects:[],loading:!1,error:null});async function ba(){zt.loading=!0,zt.error=null;try{zt.projects=await Qs.list()}catch(e){zt.error=e.message}finally{zt.loading=!1}}const Wi="projects:manage";let Yi=null;function Gk(){const e=Yi;return Yi=null,e}function Gi(e){Yi=e,lt.open(Wi,{title:e?`Edit ${e.name}`:"Create Project",size:{w:560,h:620},dismissable:!0})}const Xk={manifest:{id:"__projects__",label:"Projects",version:fn,views:[{id:Wi,label:"Project Manager"}]},activate(e){ba(),typeof document<"u"&&document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&ba()});const t={mount(r,s){const a=Gk(),o=lt.list(),l=o.length>0?o[o.length-1].id:null,u=Ne(Yk,{target:r,props:{project:a,onClose:()=>{l&<.close(l)}}});return{unmount(){Ge(u)}}}};e.registerView(Wi,t),e.actions.register({id:"sh3.project.create",label:"Create Project…",scope:["home","app"],paletteItem:!0,disabled:()=>!ht(),run:()=>{ht()&&Gi(null)}}),e.actions.register({id:"sh3.project.manage",label:"Manage Project…",scope:["home","app"],submenu:!0,paletteItem:!0,disabled:()=>!ht()});const n=new Map;Es(()=>{xe(()=>{const r=new Set;for(const s of zt.projects){if(r.add(s.id),n.has(s.id))continue;const a=e.actions.register({id:`sh3.project.manage:${s.id}`,label:s.name,scope:["home","app"],submenuOf:"sh3.project.manage",run:()=>{const o=zt.projects.find(l=>l.id===s.id);o&&Gi(o)}});n.set(s.id,a)}for(const s of[...n.keys()])r.has(s)||(n.get(s)(),n.delete(s))})})},autostart(){}};var Jk=C('<button type="button" class="project-card-edit svelte-yosqc3" aria-label="Edit project" title="Edit project">⚙</button>'),Zk=C('<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>'),Qk=C('<section class="projects-section svelte-yosqc3"><h2 class="projects-heading svelte-yosqc3">Projects</h2> <div class="projects-grid svelte-yosqc3"></div></section>');function $k(e,t){re(t,!0);const n=U(()=>zt.projects.length>0),r=U(()=>Zn.activeProjectId),s=U(ht);function a(d){Tf(i(r)===d?null:d)}function o(d,f){f.stopPropagation();const h=zt.projects.find(g=>g.id===d)??null;h&&Gi(h)}var l=Ye(),c=he(l);{var u=d=>{var f=Qk(),h=k(p(f),2);me(h,21,()=>zt.projects,g=>g.id,(g,S)=>{var b=Zk(),_=p(b);let w;var y=p(_),m=p(y,!0);v(y);var A=k(y,2),j=p(A);v(A),v(_);var P=k(_,2);{var D=M=>{var R=Jk();B("click",R,O=>o(i(S).id,O)),I(M,R)};H(P,M=>{i(s)&&M(D)})}v(b),N(()=>{w=ce(_,1,"project-card svelte-yosqc3",null,w,{active:i(r)===i(S).id}),ne(_,"title",i(S).description??`${i(S).members.length} member${i(S).members.length===1?"":"s"}`),z(m,i(S).name),z(j,`${i(S).members.length??""} member${i(S).members.length===1?"":"s"}`)}),B("click",_,()=>a(i(S).id)),I(g,b)}),v(h),v(f),I(d,f)};H(c,d=>{i(n)&&d(u)})}I(e,l),se()}le(["click"]);const hc=["activity","align-horizontal-justify-center","align-horizontal-justify-end","align-horizontal-justify-start","app-window","archive","archive-restore","axis-3d","box","brick-wall","bug","building-2","cable","calendar","camera","check","chevron-down","chevron-right","circle-check","circle-dot","circle-minus","circle-x","clipboard","clipboard-paste","clock","compass","component","copy","cpu","crop","crosshair","crown","dollar-sign","download","droplet","eraser","euro","external-link","eye","eye-off","file","file-archive","file-diff","file-plus","file-text","flame","flip-horizontal-2","flip-vertical-2","folder","folder-open","folder-plus","folder-tree","gallery-vertical-end","gamepad-2","gauge","gem","git-branch","git-commit-horizontal","git-merge","globe","grid-2x2","grid-3x3","group","hard-drive","heart","history","house","image","info","joystick","key","layers","layout-dashboard","layout-grid","layout-list","layout-panel-left","layout-panel-top","layout-template","lightbulb","link","list-ordered","list-tree","lock","log-out","magnet","mail","map","maximize","minimize","moon","mouse-pointer","move","move-3d","music","navigation","network","notebook-pen","palette","pause","pencil","pipette","play","plus","pointer","pound-sterling","receipt","redo-2","refresh-cw","rocket","rotate-3d","rotate-ccw","rotate-cw","ruler","save","scissors","scroll-text","search","send","server","settings","shield","skull","sliders-horizontal","snowflake","sparkles","square","square-terminal","star","sun","sword","table-properties","target","texture","timer","trash-2","triangle-alert","type","undo-2","ungroup","unity","upload","user","users","video","volume-2","wand-sparkles","wind","x","zap","zoom-in","zoom-out"];var e0=C('<span class="sh3-icon-picker__label svelte-h9dluc"> </span>'),t0=C('<button type="button"><svg viewBox="0 0 24 24" class="svelte-h9dluc"><use></use></svg></button>'),n0=C('<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 r0(e,t){re(t,!0);let n=G(t,"value",15,void 0),r=G(t,"disabled",3,!1),s=V("");const a=U(()=>i(s).trim()===""?hc:hc.filter(_=>_.includes(i(s).trim().toLowerCase())));function o(_){r()||(n(_),t.onchange?.(_))}var l=n0();let c;var u=p(l);{var d=_=>{var w=e0(),y=p(w,!0);v(w),N(()=>z(y,t.label)),I(_,w)};H(u,_=>{t.label&&_(d)})}var f=k(u,2);ge(f);var h=k(f,2),g=p(h);let S;var b=k(g,2);me(b,16,()=>i(a),_=>_,(_,w)=>{var y=t0();let m;var A=p(y),j=p(A);v(A),v(y),N(()=>{m=ce(y,1,"sh3-icon-picker__tile svelte-h9dluc",null,m,{"sh3-icon-picker__tile--selected":n()===w}),ne(y,"aria-label",w),ne(y,"title",w),y.disabled=r(),ne(j,"href",`${Qn}#${w??""}`)}),B("click",y,()=>o(w)),I(_,y)}),v(h),v(l),N(()=>{c=ce(l,1,"sh3-icon-picker svelte-h9dluc",null,c,{"sh3-icon-picker--disabled":r()}),f.disabled=r(),S=ce(g,1,"sh3-icon-picker__tile sh3-icon-picker__tile--none svelte-h9dluc",null,S,{"sh3-icon-picker__tile--selected":n()===void 0}),g.disabled=r()}),Ee(f,()=>i(s),_=>x(s,_)),B("click",g,()=>o(void 0)),I(e,l),se()}le(["click"]);let Fn=null;function s0(e){Fn=e}function a0(){Fn=null}function $f(e){return e.icon===void 0&&e.color===void 0&&e.label===void 0}function Xi(e){const t=Fn?.user.overrides;if(!t)return;const n=t[e];if(n&&!$f(n))return n}function pc(e,t){if(!Fn)return;const r={...Fn.user.overrides};t===void 0||$f(t)?delete r[e]:r[e]=t,Fn.user.overrides=r}function i0(){Fn={ephemeral:{},session:{},workspace:{},user:{overrides:{}}}}i0();var o0=C('<button type="button" class="link svelte-7szqlz">Change icon</button>'),l0=C('<!> <button type="button" class="link link--align-right svelte-7szqlz">Hide picker</button>',1),c0=C('<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 u0(e,t){re(t,!0);const n=we(()=>Xi(t.appId)),r=we(()=>tr().find(K=>K.id===t.appId)?.icon);let s=V(oe(n?.icon)),a=V(oe(n?.color)),o=V(oe(n?.label??"")),l=V(n?.icon!==void 0);const c=U(()=>n!==void 0),u=U(()=>i(o).trim()===""?t.appLabel:i(o).trim()),d=U(()=>i(s)??r??"box");function f(){const K=i(o).trim();pc(t.appId,{icon:i(s),color:i(a),label:K===""?void 0:K}),t.close()}function h(){pc(t.appId,void 0),t.close()}var g=c0(),S=p(g),b=p(S);v(S);var _=k(S,2),w=p(_);let y,m;var A=p(w),j=p(A),P=p(j);v(j),v(A);var D=k(A,2),M=p(D,!0);v(D),v(w),v(_);var R=k(_,2),O=k(p(R),2);ge(O),v(R);var E=k(R,2),T=k(p(E),2);{var q=K=>{var X=o0();B("click",X,()=>x(l,!0)),I(K,X)},L=K=>{var X=l0(),ie=he(X);r0(ie,{get value(){return i(s)},set value(Z){x(s,Z,!0)}});var fe=k(ie,2);B("click",fe,()=>x(l,!1)),I(K,X)};H(T,K=>{i(l)?K(L,-1):K(q)})}v(E);var F=k(E,2),Y=k(p(F),2);{let K=U(()=>i(a)??"#888888");Yf(Y,{get value(){return i(K)},onchange:X=>x(a,X,!0)})}v(F);var W=k(F,2),J=p(W),Q=k(J,2),ae=k(Q,2);v(W),v(g),N(()=>{z(b,`Customize ${t.appLabel??""}`),y=ce(w,1,"preview-card svelte-7szqlz",null,y,{"preview-card--tinted":i(a)!==void 0}),m=Ke(w,"",m,{"--card-color":i(a)??"transparent"}),ne(P,"href",`${Qn}#${i(d)??""}`),z(M,i(u)),ne(O,"placeholder",t.appLabel),Q.disabled=!i(c)}),Ee(O,()=>i(o),K=>x(o,K)),B("click",J,f),B("click",Q,h),B("click",ae,function(...K){t.close?.apply(this,K)}),I(e,g),se()}le(["click"]);function d0(){const e=qo();return!e||e.type!=="app"?null:e.ref}function f0(e){const t=d0();if(!t)return;const n=tr().find(s=>s.id===t.appId),r={appId:t.appId,appLabel:n?.label??t.appId};Dn.open(u0,r)}const v0={manifest:{id:"__app-appearance__",label:"App Appearance",version:fn,views:[]},activate(e){const t=e.state({user:{overrides:{}}});s0(t);const n={id:"app.customize",label:"Customize…",scope:{element:"app"},contextItem:!0,group:"appearance",run:f0};e.actions.register(n)},autostart(){},deactivate(){a0()}};var h0=C('<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>'),p0=C('<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>'),m0=C('<button type="button" data-sh3-scope="element:app"><span class="shell-home-card-square svelte-cpn2x2"><svg class="shell-home-card-icon svelte-cpn2x2"><use></use></svg></span> <span class="shell-home-card-label svelte-cpn2x2"> </span></button>'),b0=C('<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>'),g0=C('<p class="shell-home-empty svelte-cpn2x2"><!></p>'),_0=C('<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 y0(e,t){re(t,!0);const n=Od("__sh3core__");function r(T,q){T.preventDefault(),n.set({type:"app",ref:{appId:q}}),jn.actions.openContextMenu({x:T.clientX,y:T.clientY,scope:{element:"app"}})}let s=V("");const a=U(tr),o=U(ht),l=U(()=>Zn.activeProjectId?zt.projects.find(T=>T.id===Zn.activeProjectId)??null:null);function c(T,q){if(!q)return!0;const L=q.toLowerCase();return T.label.toLowerCase().includes(L)||T.id.toLowerCase().includes(L)}function u(T){return i(l)?i(l).appAllowlist.includes(T):!0}const d=U(()=>i(a).filter(T=>!T.admin&&c(T,i(s))&&u(T.id))),f=U(()=>i(a).filter(T=>T.admin&&c(T,i(s)))),h=U(()=>i(d).length+(i(o)?i(f).length:0));var g=_0(),S=p(g),b=p(S),_=p(b);qk(_,{});var w=k(_,2),y=p(w);v(w),Gt(2),v(b),Gt(2),v(S);var m=k(S,2),A=p(m);ge(A),v(m);var j=k(m,2);$k(j,{});var P=k(j,2);{var D=T=>{var q=p0(),L=k(p(q),2);me(L,21,()=>i(d),F=>F.id,(F,Y)=>{const W=U(()=>Xi(i(Y).id));var J=h0();let Q,ae;var K=p(J),X=p(K),ie=p(X);v(X),v(K);var fe=k(K,2),Z=p(fe,!0);v(fe),v(J),N(()=>{Q=ce(J,1,"shell-home-card svelte-cpn2x2",null,Q,{"shell-home-card--tinted":i(W)?.color}),ae=Ke(J,"",ae,{"--card-color":i(W)?.color??"transparent"}),ne(ie,"href",`${Qn}#${i(W)?.icon??i(Y).icon??"box"??""}`),z(Z,i(W)?.label??i(Y).label)}),B("click",J,()=>bn(i(Y).id)),B("contextmenu",J,ve=>r(ve,i(Y).id)),I(F,J)}),v(L),v(q),I(T,q)};H(P,T=>{i(d).length>0&&T(D)})}var M=k(P,2);{var R=T=>{var q=b0(),L=k(p(q),2);me(L,21,()=>i(f),F=>F.id,(F,Y)=>{const W=U(()=>Xi(i(Y).id));var J=m0();let Q,ae;var K=p(J),X=p(K),ie=p(X);v(X),v(K);var fe=k(K,2),Z=p(fe,!0);v(fe),v(J),N(()=>{Q=ce(J,1,"shell-home-card svelte-cpn2x2",null,Q,{"shell-home-card--tinted":i(W)?.color}),ae=Ke(J,"",ae,{"--card-color":i(W)?.color??"transparent"}),ne(ie,"href",`${Qn}#${i(W)?.icon??i(Y).icon??"box"??""}`),z(Z,i(W)?.label??i(Y).label)}),B("click",J,()=>bn(i(Y).id)),B("contextmenu",J,ve=>r(ve,i(Y).id)),I(F,J)}),v(L),v(q),I(T,q)};H(M,T=>{i(o)&&i(f).length>0&&T(R)})}var O=k(M,2);{var E=T=>{var q=g0(),L=p(q);{var F=W=>{var J=Xt("No apps registered.");I(W,J)},Y=W=>{var J=Xt();N(()=>z(J,`No apps match “${i(s)??""}”.`)),I(W,J)};H(L,W=>{i(a).length===0?W(F):W(Y,-1)})}v(q),I(T,q)};H(O,T=>{i(h)===0&&T(E)})}v(g),N(()=>z(y,`v${fn}`)),Ee(A,()=>i(s),T=>x(s,T)),I(e,g),se()}le(["click","contextmenu"]);var w0=C('<p class="keys-peers-muted svelte-19l5m7c">Loading...</p>'),k0=C('<p class="keys-peers-error svelte-19l5m7c"> </p>'),x0=C('<p class="keys-peers-muted svelte-19l5m7c">No keys yet. Shards will ask your permission before creating one.</p>'),S0=C('<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),E0=C('<button type="button" class="keys-peers-btn-danger svelte-19l5m7c">Revoke</button>'),I0=C('<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>'),A0=C('<ul class="keys-peers-list svelte-19l5m7c"></ul>'),C0=C('<div class="keys-peers svelte-19l5m7c"><div class="keys-peers-header svelte-19l5m7c"><h2 class="svelte-19l5m7c">Keys & Peers</h2></div> <!></div>');function T0(e,t){re(t,!0);let n=V(oe([])),r=V(null),s=V(!0),a=V(null);async function o(){x(r,null),x(s,!0);try{const b=await fetch("/api/keys",{credentials:"include"});if(!b.ok)throw new Error(`HTTP ${b.status}`);x(n,await b.json(),!0)}catch(b){x(r,b instanceof Error?b.message:String(b),!0)}finally{x(s,!1)}}async function l(b){x(a,null);const _=await fetch(`/api/keys/${encodeURIComponent(b)}`,{method:"DELETE",credentials:"include"});(_.ok||_.status===404)&&x(n,i(n).filter(w=>w.id!==b),!0)}function c(b){return new Date(b).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}xe(()=>{o()}),xe(()=>Xo("*",()=>{o()}));var u=C0(),d=k(p(u),2);{var f=b=>{var _=w0();I(b,_)},h=b=>{var _=k0(),w=p(_);v(_),N(()=>z(w,`Failed to load: ${i(r)??""}`)),I(b,_)},g=b=>{var _=x0();I(b,_)},S=b=>{var _=A0();me(_,21,()=>i(n),w=>w.id,(w,y)=>{var m=I0(),A=p(m),j=p(A),P=p(j,!0);v(j);var D=k(j,2),M=p(D);v(D);var R=k(D,2),O=p(R);v(R);var E=k(R,2),T=p(E);v(E),v(A);var q=k(A,2),L=p(q);{var F=W=>{var J=S0(),Q=he(J),ae=k(Q,2);B("click",Q,()=>l(i(y).id)),B("click",ae,()=>{x(a,null)}),I(W,J)},Y=W=>{var J=E0();B("click",J,()=>{x(a,i(y).id,!0)}),I(W,J)};H(L,W=>{i(a)===i(y).id?W(F):W(Y,-1)})}v(q),v(m),N((W,J,Q)=>{z(P,i(y).label),z(M,`Minted by: ${i(y).mintedByShardId??"system"??""}${i(y).peerRole||i(y).peerId?` · Peer: ${i(y).peerRole??"—"}${i(y).peerId?` (${i(y).peerId})`:""}`:""}`),z(O,`Scopes: ${W??""}`),z(T,`Created: ${J??""} · Expires: ${Q??""}`)},[()=>i(y).scopes.join(", "),()=>c(i(y).createdAt),()=>i(y).expiresAt?c(i(y).expiresAt):"never"]),I(w,m)}),v(_),I(b,_)};H(d,b=>{i(s)?b(f):i(r)?b(h,1):i(n).length===0?b(g,2):b(S,-1)})}v(u),I(e,u),se()}le(["click"]);var R0=C('<div class="confirm-dialog svelte-1k1962w"><div class="confirm-dialog-title svelte-1k1962w"> </div> <div class="confirm-dialog-body svelte-1k1962w"> </div> <div class="confirm-dialog-actions svelte-1k1962w"><button type="button" class="confirm-dialog-btn confirm-dialog-btn-cancel svelte-1k1962w" data-confirm-dialog-cancel=""> </button> <button type="button" data-confirm-dialog-confirm=""> </button></div></div>');function P0(e,t){re(t,!0);let n=G(t,"confirmLabel",3,"Confirm"),r=G(t,"cancelLabel",3,"Cancel"),s=G(t,"confirmTone",3,"default"),a=V(void 0),o=V(!1);xe(()=>{i(a)?.focus()});async function l(){if(!i(o)){x(o,!0);try{await t.onConfirm()}finally{t.close()}}}function c(){i(o)||(t.onCancel?.(),t.close())}var u=R0(),d=p(u),f=p(d,!0);v(d);var h=k(d,2),g=p(h,!0);v(h);var S=k(h,2),b=p(S),_=p(b,!0);v(b),Le(b,A=>x(a,A),()=>i(a));var w=k(b,2);let y;var m=p(w,!0);v(w),v(S),v(u),N(()=>{z(f,t.title),z(g,t.body),b.disabled=i(o),z(_,r()),y=ce(w,1,"confirm-dialog-btn svelte-1k1962w",null,y,{"confirm-dialog-btn-danger":s()==="danger","confirm-dialog-btn-default":s()==="default"}),w.disabled=i(o),z(m,n())}),B("click",b,c),B("click",w,l),I(e,u),se()}le(["click"]);const mc=new Set(["await","break","case","catch","class","const","continue","debugger","default","delete","do","else","enum","export","extends","false","finally","for","function","if","import","in","instanceof","let","new","null","return","super","switch","this","throw","true","try","typeof","var","void","while","with","yield"]);function vi(e,t){const n=Object.keys(t),r=n.filter(o=>!mc.has(o)),s=n.filter(o=>mc.has(o)),a=[`const __m__ = globalThis.${e};`];r.length>0&&a.push(`export const { ${r.join(", ")} } = __m__;`);for(const o of s)a.push(`const __r_${o}__ = __m__['${o}']; export { __r_${o}__ as ${o} };`);return a.push("export default __m__.default;"),URL.createObjectURL(new Blob([a.join(`
|
|
11
|
-
`)],{type:"application/javascript"}))}const sl=globalThis;sl.__sh3__=Qf;sl.__sh3_svelte__=nd;sl.__sh3_svelte_internal_client__=pd;const al={"sh3-core":vi("__sh3__",Qf),svelte:vi("__sh3_svelte__",nd),"svelte/internal/client":vi("__sh3_svelte_internal_client__",pd)};al["svelte/internal/disclose-version"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));al["sh3-core/tokens.css"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));const D0=/(?:from|import)\s*(['"])(sh3-core(?:\/[^'"]*)?|svelte(?:\/[^'"]*)?)\1/g;function j0(e){return e.replace(D0,(t,n,r)=>{const s=al[r];return s?`${t.startsWith("from")?"from":"import"} '${s}'`:t})}async function js(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;M0(c)?o.shards.push(c):z0(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 M0(e){return"activate"in e&&typeof e.activate=="function"&&Array.isArray(e.manifest.views)}function z0(e){return"initialLayout"in e&&Array.isArray(e.manifest.requiredShards)}const L0="sh3-packages",O0=1,hs="bundles",Pr="meta";function Ms(){return new Promise((e,t)=>{const n=indexedDB.open(L0,O0);n.onupgradeneeded=()=>{const r=n.result;r.objectStoreNames.contains(hs)||r.createObjectStore(hs),r.objectStoreNames.contains(Pr)||r.createObjectStore(Pr)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}function $n(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 ev(e,t,n){const r=await Ms();await $n(r,hs,"readwrite",s=>s.put(t,e)),await $n(r,Pr,"readwrite",s=>s.put(n,e)),r.close()}async function tv(e){const t=await Ms(),n=await $n(t,hs,"readonly",r=>r.get(e));return t.close(),n??null}async function N0(e){const t=await Ms(),n=await $n(t,Pr,"readonly",r=>r.get(e));return t.close(),n??null}async function nv(){const e=await Ms(),t=await $n(e,Pr,"readonly",n=>n.getAll());return e.close(),t??[]}async function q0(e){const t=await Ms();await $n(t,hs,"readwrite",n=>n.delete(e)),await $n(t,Pr,"readwrite",n=>n.delete(e)),t.close()}function il(e,t){for(const n of e.shards)n.manifest={...n.manifest,version:t.version},Jo(n);for(const n of e.apps)n.manifest={...n.manifest,version:t.version},Po(n)}const V0={"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 hi(e){return V0[e]??{title:e,description:"Unknown permission."}}function ol(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 ll(e,t,n){if(!t.integrity)return{success:!1,hotLoaded:!1,error:"Missing integrity hash — refusing to install unverified bundle"};try{await tl(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 js(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:ol(r)};try{await ev(t.id,e,s)}catch(o){return{success:!1,hotLoaded:!1,error:`Failed to persist package: ${o instanceof Error?o.message:String(o)}`}}if(t.type==="shard"||t.type==="combo")try{Ka(t.id)}catch{}(t.type==="app"||t.type==="combo")&&Wa(t.id);let a=!0;try{il(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 B0(e){try{Ka(e)}catch{}Wa(e),await q0(e)}async function F0(){return nv()}async function U0(){let e;try{e=await nv()}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 tv(t.id);if(!n){console.warn(`[sh3] No bundle found for installed package "${t.id}", skipping`);continue}const r=await js(n);il(r,{version:t.version,sourceRegistry:t.sourceRegistry,contractVersion:t.contractVersion}),r.shards.length===0&&r.apps.length===0&&console.warn(`[sh3] Package "${t.id}" contains no valid shards or apps, skipping`)}catch(n){console.warn(`[sh3] Failed to load installed package "${t.id}":`,n instanceof Error?n.message:n)}}const bc={version:1};var H0=C('<span class="perm-modal-author svelte-1ipp1r6"> </span>'),K0=C('<p class="perm-modal-empty svelte-1ipp1r6">This package requires no special permissions.</p>'),W0=C('<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>'),Y0=C('<p class="perm-modal-intro svelte-1ipp1r6">This package requests the following permissions:</p> <ul class="perm-modal-list svelte-1ipp1r6"></ul>',1),G0=C('<li class="perm-modal-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6"> </div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),X0=C('<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),J0=C('<li class="perm-modal-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6"> </div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),Z0=C('<p class="perm-modal-intro svelte-1ipp1r6">Permissions no longer requested:</p> <ul class="perm-modal-list perm-modal-removed svelte-1ipp1r6"></ul>',1),Q0=C("<!> <!>",1),$0=C('<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 Ji(e,t){re(t,!0);const n=G(t,"permissions",19,()=>[]),r=G(t,"added",19,()=>[]),s=G(t,"removed",19,()=>[]),a=U(()=>t.mode==="install"?"Install":"Update");var o=$0(),l=p(o),c=p(l),u=p(c),d=p(u);v(u);var f=k(u,2),h=p(f);{var g=R=>{var O=Xt();N(()=>z(O,`${t.fromVersion??""} → ${t.pkg.version??""}`)),I(R,O)},S=R=>{var O=Xt();N(()=>z(O,`v${t.pkg.version??""}`)),I(R,O)};H(h,R=>{t.mode==="update"&&t.fromVersion?R(g):R(S,-1)})}var b=k(h,2);{var _=R=>{var O=H0(),E=p(O);v(O),N(()=>z(E,`by ${t.pkg.author??""}`)),I(R,O)};H(b,R=>{t.pkg.author&&R(_)})}v(f),v(c);var w=k(c,2),y=p(w);{var m=R=>{var O=Ye(),E=he(O);{var T=L=>{var F=K0();I(L,F)},q=L=>{var F=Y0(),Y=k(he(F),2);me(Y,20,n,W=>W,(W,J)=>{const Q=U(()=>hi(J));var ae=W0(),K=p(ae),X=p(K,!0);v(K);var ie=k(K,2),fe=p(ie,!0);v(ie),v(ae),N(()=>{z(X,i(Q).title),z(fe,i(Q).description)}),I(W,ae)}),v(Y),I(L,F)};H(E,L=>{n().length===0?L(T):L(q,-1)})}I(R,O)},A=R=>{var O=Q0(),E=he(O);{var T=F=>{var Y=X0(),W=k(he(Y),2);me(W,20,r,J=>J,(J,Q)=>{const ae=U(()=>hi(Q));var K=G0(),X=p(K),ie=p(X,!0);v(X);var fe=k(X,2),Z=p(fe,!0);v(fe),v(K),N(()=>{z(ie,i(ae).title),z(Z,i(ae).description)}),I(J,K)}),v(W),I(F,Y)};H(E,F=>{r().length>0&&F(T)})}var q=k(E,2);{var L=F=>{var Y=Z0(),W=k(he(Y),2);me(W,20,s,J=>J,(J,Q)=>{const ae=U(()=>hi(Q));var K=J0(),X=p(K),ie=p(X,!0);v(X);var fe=k(X,2),Z=p(fe,!0);v(fe),v(K),N(()=>{z(ie,i(ae).title),z(Z,i(ae).description)}),I(J,K)}),v(W),I(F,Y)};H(q,F=>{s().length>0&&F(L)})}I(R,O)};H(y,R=>{t.mode==="install"?R(m):R(A,-1)})}v(w);var j=k(w,2),P=p(j),D=k(P,2),M=p(D,!0);v(D),v(j),v(l),v(o),N(()=>{ne(o,"aria-label",`${i(a)??""} ${t.pkg.label??""}`),z(d,`${i(a)??""} ${t.pkg.label??""}`),z(M,i(a))}),B("click",o,function(...R){t.onCancel?.apply(this,R)}),B("keydown",o,R=>{R.key==="Escape"&&t.onCancel()}),B("click",l,R=>R.stopPropagation()),B("click",P,function(...R){t.onCancel?.apply(this,R)}),B("click",D,function(...R){t.onConfirm?.apply(this,R)}),I(e,o),se()}le(["click","keydown"]);function cl(e){return e==="shard"?"shard":"app"}function ex(e){return cl(e)==="shard"?"Shard":"App"}function tx(e,t){return t==="all"?!0:cl(e)===t}var nx=C('<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>'),rx=C('<div class="store-registries svelte-1aafzt0"></div>'),sx=C('<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>'),ax=C('<div class="store-error svelte-1aafzt0"> </div>'),ix=C('<div class="store-error svelte-1aafzt0"> </div>'),ox=C('<img alt="" class="store-icon-img svelte-1aafzt0"/>'),lx=C('<span class="store-icon-placeholder svelte-1aafzt0"> </span>'),cx=C('<div class="store-card-warning svelte-1aafzt0"> </div>'),ux=C('<button class="store-update-btn svelte-1aafzt0"> </button>'),dx=C('<span class="store-installed-label svelte-1aafzt0">Installed</span>'),fx=C('<span class="store-card-missing svelte-1aafzt0"> </span>'),vx=C('<div class="store-install-wrap svelte-1aafzt0"><button class="store-install-btn svelte-1aafzt0"> </button> <!></div>'),hx=C('<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>'),px=C("No packages found. <!>",1),mx=C('<div class="store-empty svelte-1aafzt0"><!></div>'),bx=C('<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 gx(e,t){re(t,!0);let n=V(""),r=V("all"),s=V(oe(new Set)),a=V(oe(new Set)),o=V(null),l=V(""),c=V(null),u=V(null);const d=at;async function f(){const $=i(l).trim();if($&&!d.env.registries.includes($))try{await d.addRegistry($),x(l,""),d.refreshCatalog(),d.refreshInstalled()}catch(ee){x(o,ee instanceof Error?ee.message:String(ee),!0)}}async function h($){try{await d.removeRegistry($),d.refreshCatalog()}catch(ee){x(o,ee instanceof Error?ee.message:String(ee),!0)}}const g=U(()=>{const $=i(n).toLowerCase().trim();return d.state.ephemeral.catalog.filter(ee=>tx(ee.entry.type,i(r))?$?ee.entry.id.toLowerCase().includes($)||ee.entry.label.toLowerCase().includes($)||ee.entry.description.toLowerCase().includes($):!0:!1)});function S($){return d.state.ephemeral.installed.some(ee=>ee.id===$)}function b($){return String($.latest.contractVersion)!==String(bc.version)}function _($){return $ in d.state.ephemeral.updatable}function w($){return d.state.ephemeral.installed.find(ee=>ee.id===$)?.version??""}function y($,ee){const Ae=$.latest.requires?.map(ye=>ye.id)??[];if(Ae.length===0)return[];const De=new Set(Zf);for(const ye of ee)(ye.type==="shard"||ye.type==="combo")&&De.add(ye.id);return Ae.filter(ye=>!De.has(ye))}async function m($){if(!i(a).has($)){x(a,new Set([...i(a),$]),!0),x(o,null);try{await d.updatePackage($,(ee,Ae)=>new Promise(De=>{const ye=d.state.ephemeral.updatable[$],Fe=d.state.ephemeral.installed.find(Qe=>Qe.id===$);if(!ye||!Fe){De(!0);return}x(u,{pkg:ye,fromVersion:Fe.version,added:ee,removed:Ae,resolve:De},!0)}))}catch(ee){x(o,ee instanceof Error?ee.message:String(ee),!0)}finally{const ee=new Set(i(a));ee.delete($),x(a,ee,!0)}}}function A(){const $=i(u);$&&(x(u,null),$.resolve(!0))}function j(){const $=i(u);$&&(x(u,null),$.resolve(!1))}async function P($){const ee=$.entry.id;if(!i(s).has(ee)){x(s,new Set([...i(s),ee]),!0),x(o,null);try{const Ae=await Xa($.latest,$.sourceRegistry),De=Ja($,$.latest),ye=await js(Ae),Fe=ol(ye);let Qe;$.latest.serverBundleUrl&&(Qe=await nl($.latest,$.sourceRegistry)),x(c,{pkg:$,permissions:Fe,loaded:ye,bundle:Ae,meta:De,serverBundle:Qe},!0)}catch(Ae){x(o,Ae instanceof Error?Ae.message:String(Ae),!0);const De=new Set(i(s));De.delete(ee),x(s,De,!0)}}}async function D(){const $=i(c);if(!$)return;x(c,null);const{pkg:ee,loaded:Ae,bundle:De,meta:ye,serverBundle:Fe}=$,Qe=ee.entry.id;try{const We={id:ye.id,type:ye.type,label:ee.entry.label,version:ye.version,contractVersion:ye.contractVersion,sourceRegistry:ye.sourceRegistry,requiredShards:ee.latest.requires?.map(Tt=>Tt.id)??[],installedAt:new Date().toISOString()},Mn=await Go(We,De,Fe);if(!Mn.ok){x(o,Mn.error??"Server install failed",!0);return}const yn=await ll(De,ye,{loaded:Ae});yn.success||console.warn(`[sh3-store] Server install ok but local hot-load failed: ${yn.error}`),await d.refreshInstalled()}catch(We){x(o,We instanceof Error?We.message:String(We),!0)}finally{const We=new Set(i(s));We.delete(Qe),x(s,We,!0)}}function M(){if(!i(c))return;const $=i(c).pkg.entry.id;x(c,null);const ee=new Set(i(s));ee.delete($),x(s,ee,!0)}function R(){d.refreshCatalog(),d.refreshInstalled()}var O=bx(),E=he(O),T=p(E),q=k(p(T),2),L=p(q);ge(L);var F=k(L,2),Y=p(F);Y.value=Y.__value="all";var W=k(Y);W.value=W.__value="shard";var J=k(W);J.value=J.__value="app",v(F);var Q=k(F,2),ae=p(Q,!0);v(Q),v(q),v(T);var K=k(T,2);{var X=$=>{var ee=rx();me(ee,21,()=>d.env.registries,Vt,(Ae,De)=>{var ye=nx(),Fe=p(ye),Qe=p(Fe,!0);v(Fe);var We=k(Fe,2);v(ye),N(()=>z(Qe,i(De))),B("click",We,()=>h(i(De))),I(Ae,ye)}),v(ee),I($,ee)};H(K,$=>{d.isAdmin&&d.env.registries.length>0&&$(X)})}var ie=k(K,2);{var fe=$=>{var ee=sx(),Ae=p(ee);ge(Ae);var De=k(Ae,2);v(ee),N(ye=>De.disabled=ye,[()=>!i(l).trim()]),ze("submit",ee,ye=>{ye.preventDefault(),f()}),Ee(Ae,()=>i(l),ye=>x(l,ye)),I($,ee)};H(ie,$=>{d.isAdmin&&$(fe)})}var Z=k(ie,2);{var ve=$=>{var ee=ax(),Ae=p(ee,!0);v(ee),N(()=>z(Ae,d.state.ephemeral.error)),I($,ee)};H(Z,$=>{d.state.ephemeral.error&&$(ve)})}var ke=k(Z,2);{var gt=$=>{var ee=ix(),Ae=p(ee,!0);v(ee),N(()=>z(Ae,i(o))),I($,ee)};H(ke,$=>{i(o)&&$(gt)})}var Oe=k(ke,2);me(Oe,21,()=>i(g),$=>$.entry.id,($,ee)=>{const Ae=U(()=>S(i(ee).entry.id)),De=U(()=>b(i(ee))),ye=U(()=>i(s).has(i(ee).entry.id)),Fe=U(()=>_(i(ee).entry.id)),Qe=U(()=>i(a).has(i(ee).entry.id)),We=U(()=>y(i(ee),d.state.ephemeral.installed)),Mn=U(()=>cl(i(ee).entry.type));var yn=hx(),Tt=p(yn),zn=p(Tt),gv=p(zn);{var _v=je=>{var Me=ox();N(()=>ne(Me,"src",i(ee).entry.icon)),I(je,Me)},yv=je=>{var Me=lx(),Rt=p(Me,!0);v(Me),N(()=>z(Rt,i(ee).entry.type==="shard"?"S":"A")),I(je,Me)};H(gv,je=>{i(ee).entry.icon?je(_v):je(yv,-1)})}v(zn);var hl=k(zn,2),Qa=p(hl),wv=p(Qa,!0);v(Qa);var zs=k(Qa,2);let pl;var kv=p(zs,!0);v(zs);var ml=k(zs,2),xv=p(ml,!0);v(ml),v(hl),v(Tt);var $a=k(Tt,2),Sv=p($a,!0);v($a);var ei=k($a,2),Ev=p(ei,!0);v(ei);var bl=k(ei,2);{var Iv=je=>{var Me=cx(),Rt=p(Me);v(Me),N(()=>z(Rt,`Contract mismatch: package targets v${i(ee).latest.contractVersion??""}, running v${bc.version}`)),I(je,Me)};H(bl,je=>{i(De)&&je(Iv)})}var gl=k(bl,2),Av=p(gl);{var Cv=je=>{var Me=ux(),Rt=p(Me,!0);v(Me),N(ti=>{Me.disabled=i(Qe),z(Rt,ti)},[()=>i(Qe)?"Updating...":`Update ${w(i(ee).entry.id)} -> ${i(ee).latest.version}`]),B("click",Me,()=>m(i(ee).entry.id)),I(je,Me)},Tv=je=>{var Me=dx();I(je,Me)},Rv=je=>{var Me=vx(),Rt=p(Me),ti=p(Rt,!0);v(Rt);var Pv=k(Rt,2);{var Dv=Fr=>{var ni=fx(),jv=p(ni);v(ni),N(Mv=>z(jv,`requires: ${Mv??""}`),[()=>i(We).join(", ")]),I(Fr,ni)};H(Pv,Fr=>{i(We).length>0&&Fr(Dv)})}v(Me),N(Fr=>{Rt.disabled=i(ye)||i(We).length>0,ne(Rt,"title",Fr),z(ti,i(ye)?"Installing...":"Install")},[()=>i(We).length>0?`Missing required shards: ${i(We).join(", ")}`:void 0]),B("click",Rt,()=>P(i(ee))),I(je,Me)};H(Av,je=>{i(Ae)&&i(Fe)?je(Cv):i(Ae)?je(Tv,1):je(Rv,-1)})}v(gl),v(yn),N(je=>{z(wv,i(ee).entry.label),pl=ce(zs,1,"store-card-badge svelte-1aafzt0",null,pl,{"badge-shard":i(Mn)==="shard","badge-app":i(Mn)==="app"}),z(kv,je),z(xv,i(ee).latest.version),z(Sv,i(ee).entry.description),z(Ev,i(ee).entry.author.name)},[()=>ex(i(ee).entry.type)]),I($,yn)}),v(Oe);var Ct=k(Oe,2);{var Ft=$=>{var ee=mx(),Ae=p(ee);{var De=Fe=>{var Qe=px(),We=k(he(Qe));{var Mn=Tt=>{var zn=Xt("Add a registry URL above to get started.");I(Tt,zn)},yn=Tt=>{var zn=Xt("No registries configured.");I(Tt,zn)};H(We,Tt=>{d.isAdmin?Tt(Mn):Tt(yn,-1)})}I(Fe,Qe)},ye=Fe=>{var Qe=Xt("No packages match the current filter.");I(Fe,Qe)};H(Ae,Fe=>{d.env.registries.length===0?Fe(De):Fe(ye,-1)})}v(ee),I($,ee)};H(Ct,$=>{!d.state.ephemeral.loading&&i(g).length===0&&$(Ft)})}v(E);var vl=k(E,2);{var pv=$=>{{let ee=U(()=>({label:i(c).pkg.entry.label,version:i(c).pkg.latest.version,author:i(c).pkg.entry.author.name}));Ji($,{mode:"install",get pkg(){return i(ee)},get permissions(){return i(c).permissions},onConfirm:D,onCancel:M})}};H(vl,$=>{i(c)&&$(pv)})}var mv=k(vl,2);{var bv=$=>{{let ee=U(()=>({label:i(u).pkg.entry.label,version:i(u).pkg.latest.version,author:i(u).pkg.entry.author.name}));Ji($,{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:A,onCancel:j})}};H(mv,$=>{i(u)&&$(bv)})}N(()=>{Q.disabled=d.state.ephemeral.loading,z(ae,d.state.ephemeral.loading?"Loading...":"Refresh")}),Ee(L,()=>i(n),$=>x(n,$)),as(F,()=>i(r),$=>x(r,$)),B("click",Q,R),I(e,O),se()}le(["click"]);function rv(e){return at.state.ephemeral.catalog.find(t=>t.entry.id===e)}function ps(e){return at.state.ephemeral.installed.find(t=>t.id===e)}const _x={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=rv(n);if(!s){e.scrollback.push({kind:"status",text:`package "${n}" not found in catalog — try refreshing the store`,level:"error",ts:Date.now()});return}e.scrollback.push({kind:"status",text:`installing ${n} v${s.latest.version}...`,level:"info",ts:Date.now()});try{const a=await Xa(s.latest,s.sourceRegistry),o=Ja(s,s.latest);let l;s.latest.serverBundleUrl&&(l=await nl(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 Go(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(g=>g.id).join(", ")}`),e.scrollback.push({kind:"status",text:f,level:"error",ts:Date.now()});return}const d=await ll(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 at.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()})}}},yx={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 at.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()})}}},wx={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 at.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()})}}},kx={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=rv(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 xx(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 Sx(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 Ex(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 at;const Ix={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 h of n.ephemeral.installed){const g=n.ephemeral.catalog.find(S=>S.entry.id===h.id);g&&xx(g.latest.version,h.version)&&(f[h.id]=g)}n.ephemeral.updatable=f}async function s(){n.ephemeral.loading=!0,n.ephemeral.error=null;try{const f=await Bf(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 Rw();n.ephemeral.installed=f.map(h=>({id:h.id,type:h.type,version:h.version,sourceRegistry:h.sourceRegistry??"",contractVersion:h.contractVersion??"",installedAt:h.installedAt??"",permissions:[]})),r()}catch(f){console.warn("[sh3-store] Failed to list installed packages:",f instanceof Error?f.message:f);try{const h=await F0();n.ephemeral.installed=h,r()}catch{}}}async function o(f){const h=[...t.registries];h.includes(f)||(h.push(f),await e.envUpdate({registries:h}))}async function l(f){const h=t.registries.filter(g=>g!==f);await e.envUpdate({registries:h})}async function c(f,h,g){let S;if(g===void 0?S=n.ephemeral.updatable[f]:S=n.ephemeral.catalog.find(L=>L.entry.id===f),!S)return;const b=n.ephemeral.installed.find(L=>L.id===f);if(!b)return;const _=Sx(S,g),w=await Xa(_,S.sourceRegistry);let y;_.serverBundleUrl&&(y=await nl(_,S.sourceRegistry));const m=Ja(S,_),A=await js(w),j=ol(A);let P=[];try{const L=await N0(f);L?.permissions&&(P=L.permissions)}catch{}const{added:D,removed:M}=Ex(P,j);if((D.length>0||M.length>0)&&h&&!await h(D,M))return;const R=await tv(f),O={...b,permissions:P},E={id:m.id,type:m.type,label:S.entry.label,version:m.version,contractVersion:m.contractVersion,sourceRegistry:m.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:_.requires?.map(L=>L.id)??[]},T=await Go(E,w,y);if(!T.ok){let L=T.error??"Server update failed";throw T.code==="missing-shards"&&T.missing&&(L=`missing required shard(s): ${T.missing.map(Y=>Y.id).join(", ")}`),new Error(L)}const q=await ll(w,m,{loaded:A});if(!q.success){if(R)try{await ev(f,R,O)}catch(L){console.warn(`[sh3-store] Rollback failed for "${f}":`,L instanceof Error?L.message:L)}throw new Error(q.error??"Local install failed during update")}await a()}async function u(f){await Tw(f),await B0(f),await a()}at={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,h){const g=Ne(gx,{target:f});return{unmount(){Ge(g)}}}};e.registerView("sh3-store:browse",d),e.registerVerb(_x),e.registerVerb(yx),e.registerVerb(kx),e.registerVerb(wx),a()},autostart(){at.refreshCatalog()}};function Ax(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=Dn.open(Ji,a)})}var Cx=C('<p class="error svelte-1tiy4hy"> </p>'),Tx=C('<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 Rx(e,t){re(t,!0);let n=V(!1),r=V(null);async function s(){if(!i(n)){x(n,!0),x(r,null);try{await t.onConfirm(),t.close()}catch(P){x(r,P.message,!0)}finally{x(n,!1)}}}var a=Tx(),o=k(p(a),2),l=p(o),c=p(l,!0);v(l);var u=k(l,2),d=p(u);v(u);var f=k(u,2),h=p(f);v(f),Gt(),v(o);var g=k(o,2),S=k(p(g)),b=p(S,!0);v(S),v(g);var _=k(g,2);{var w=P=>{var D=Cx(),M=p(D,!0);v(D),N(()=>z(M,i(r))),I(P,D)};H(_,P=>{i(r)&&P(w)})}var y=k(_,2),m=p(y),A=p(m,!0);v(m);var j=k(m,2);v(y),v(a),N(()=>{z(c,t.appLabel),z(d,`v${t.fromVersion??""}`),z(h,`v${t.toVersion??""}`),z(b,t.appId),m.disabled=i(n),z(A,i(n)?"Updating…":"Update"),j.disabled=i(n)}),B("click",m,s),B("click",j,function(...P){t.close?.apply(this,P)}),I(e,a),se()}le(["click"]);var Px=C('<p class="error svelte-86mxbl"> </p>'),Dx=C(`<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=V(!1),r=V(null);async function s(){if(!i(n)){x(n,!0),x(r,null);try{await t.onConfirm(),t.close()}catch(m){x(r,m.message,!0)}finally{x(n,!1)}}}var a=Dx(),o=p(a),l=p(o);v(o);var c=k(o,2),u=k(p(c)),d=p(u,!0);v(u);var f=k(u,2),h=p(f);v(f),v(c);var g=k(c,4);{var S=m=>{var A=Px(),j=p(A,!0);v(A),N(()=>z(j,i(r))),I(m,A)};H(g,m=>{i(r)&&m(S)})}var b=k(g,2),_=p(b),w=p(_,!0);v(_);var y=k(_,2);v(b),v(a),N(()=>{z(l,`Uninstall ${t.appLabel??""}?`),z(d,t.appId),z(h,`v${t.version??""}`),_.disabled=i(n),z(w,i(n)?"Uninstalling…":"Uninstall"),y.disabled=i(n)}),B("click",_,s),B("click",y,function(...m){t.close?.apply(this,m)}),I(e,a),se()}le(["click"]);function Mx(e){return!e.admin||e.builtin}function gc(e){return e.admin?e.builtin?" · built-in":"":" · admin only"}function hr(){const e=qo();return!e||e.type!=="app"?null:e.ref}function ul(e){return tr().find(t=>t.id===e)}function zx(e){return!at.state.ephemeral.installed.some(t=>t.id===e)}function pi(e){return{admin:ht(),builtin:zx(e)}}async function Lx(e){const t=hr();if(!t)return;const{appId:n}=t,r=xn.notify("Checking for updates…",{duration:1/0});try{await at.refreshCatalog()}finally{r.close()}const s=at.state.ephemeral.updatable[n],a=at.state.ephemeral.installed.find(c=>c.id===n),o=ul(n)?.label??n;if(!s||!a){xn.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 at.updatePackage(n,(c,u)=>Ax({label:a.id,version:a.version},s.latest.version,c,u)),xn.notify(`Updated to v${s.latest.version}`,{level:"success"})}catch(c){throw xn.notify(`Update failed: ${c.message}`,{level:"error",duration:5e3}),c}}};Dn.open(Rx,l)}function Ox(e){const t=hr();if(!t)return;const{appId:n}=t,r=at.state.ephemeral.installed.find(o=>o.id===n);if(!r)return;const s=ul(n)?.label??n,a={appId:n,appLabel:s,version:r.version,onConfirm:async()=>{try{await at.uninstallPackage(n),xn.notify(`Uninstalled ${s}`,{level:"success"})}catch(o){throw xn.notify(`Uninstall failed: ${o.message}`,{level:"error",duration:5e3}),o}}};Dn.open(jx,a)}function Nx(e){const t=()=>{const l=hr();if(!l)return"";const c=ul(l.appId);return c?`${c.id} v${c.version}`:l.appId},n=()=>{const l=hr();return l?`Check for updates${gc(pi(l.appId))}`:"Check for updates"},r=()=>{const l=hr();return l?`Uninstall…${gc(pi(l.appId))}`:"Uninstall…"},s=()=>{const l=hr();return l?Mx(pi(l.appId)):!0},o=[{id:"app.info",label:t,scope:{element:"app"},contextItem:!0,group:"info",disabled:!0},{id:"app.checkUpdate",label:n,scope:{element:"app"},contextItem:!0,group:"update",disabled:s,run:Lx},{id:"app.uninstall",label:r,scope:{element:"app"},contextItem:!0,group:"uninstall",disabled:s,run:Ox}].map(l=>e.actions.register(l));return()=>o.forEach(l=>l())}const qx={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:{}}});$_(t.user),e.actions.register({id:"sh3.palette.open",label:"Command Palette…",scope:["home","app"],defaultShortcut:"Mod+K",contextItem:!1,paletteItem:!1,run(a){wr(async()=>{const{openPalette:o}=await Promise.resolve().then(()=>ow);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(){Dn.open(P0,{title:"Reset layout?",body:"This discards the current arrangement of the active preset and rebuilds it from the app default. Floats will be removed.",confirmLabel:"Reset",confirmTone:"danger",onConfirm:()=>Dy()})}});const n={mount(a,o){const l=Ne(y0,{target:a});return{unmount(){Ge(l)}}}},r={mount(a,o){const l=Ne(T0,{target:a});return{unmount(){Ge(l)}}}};e.registerView("sh3core:home",n),e.registerView("shell:keys-and-peers",r),Nx(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 An){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(){}},Vx={id:"shell",label:"Shell",version:fn,views:[{id:"shell:terminal",label:"Shell",standalone:!0}],permissions:[]},Bx=2e3;let Fx=0;function Ux(){return`e${++Fx}`}class Hx{#e;get entries(){return i(this.#e)}set entries(t){x(this.#e,t,!0)}constructor(t=Bx){this.#e=V(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:Ux()};this.entries.push(r),this.entries.length>this.cap&&this.entries.splice(0,this.entries.length-this.cap)}clear(){this.entries.length=0}}var Kx=C("<pre> </pre>");function Wx(e,t){re(t,!0);const n=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,r=U(()=>t.chunks.join("").replace(n,""));var s=Kx();let a;var o=p(s,!0);v(s),N(()=>{a=ce(s,1,"shell-text svelte-ypr8s",null,a,{stderr:t.stream==="stderr"}),z(o,i(r))}),I(e,s),se()}var Yx=C('<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 Gx(e,t){var n=Yx(),r=p(n),s=p(r,!0);v(r);var a=k(r,4),o=p(a,!0);v(a),v(n),N(()=>{z(s,t.cwd),z(o,t.line)}),I(e,n)}var Xx=C("<div> </div>");function Jx(e,t){var n=Xx();let r;var s=p(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"}),z(s,t.text)}),I(e,n)}var Zx=C('<div class="shell-rich svelte-1rnhl05"><!></div>');function Qx(e,t){var n=Zx(),r=p(n);As(r,()=>t.component,(s,a)=>{a(s,Ts(()=>t.componentProps))}),v(n),I(e,n)}var $x=C('<div class="shell-scrollback svelte-isy3jt"></div>');function eS(e,t){re(t,!0);let n=V(null);xe(()=>{t.scrollback.entries.length,i(n)&&(i(n).scrollTop=i(n).scrollHeight)});var r=$x();me(r,21,()=>t.scrollback.entries,s=>s.id,(s,a)=>{var o=Ye(),l=he(o);{var c=h=>{Wx(h,{get stream(){return i(a).stream},get chunks(){return i(a).chunks}})},u=h=>{Gx(h,{get cwd(){return i(a).cwd},get line(){return i(a).line}})},d=h=>{Jx(h,{get text(){return i(a).text},get level(){return i(a).level}})},f=h=>{Qx(h,{get component(){return i(a).component},get componentProps(){return i(a).props}})};H(l,h=>{i(a).kind==="text"?h(c):i(a).kind==="prompt"?h(u,1):i(a).kind==="status"?h(d,2):i(a).kind==="rich"&&h(f,3)})}I(s,o)}),v(r),Le(r,s=>x(n,s),()=>i(n)),I(e,r),se()}var tS=C('<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 nS(e,t){re(t,!0);let n=V(""),r=V(null),s=V(""),a=V(null);function o(){if(t.locked)return;const b=i(n);b.trim()&&(x(n,""),x(r,null),t.onSubmit(b))}function l(){t.history.length!==0&&(i(r)===null?(x(s,i(n),!0),x(r,t.history.length-1)):i(r)>0&&Er(r,-1),x(n,t.history[i(r)]??"",!0))}function c(){i(r)!==null&&(i(r)<t.history.length-1?(Er(r),x(n,t.history[i(r)],!0)):(x(r,null),x(n,i(s),!0)))}function u(b){if(t.locked){if(b.ctrlKey&&b.key==="c"){b.preventDefault(),t.session.send({t:"signal",sig:"SIGINT"});return}if(b.ctrlKey&&b.key==="d"){b.preventDefault(),t.session.send({t:"signal",sig:"EOF"});return}b.preventDefault();return}b.key==="Enter"?(b.preventDefault(),o()):b.key==="ArrowUp"?(b.preventDefault(),l()):b.key==="ArrowDown"?(b.preventDefault(),c()):b.ctrlKey&&b.key==="c"?(b.preventDefault(),x(n,""),x(r,null)):b.ctrlKey&&b.key==="l"&&(b.preventDefault(),x(n,"clear"),o())}xe(()=>{!t.locked&&i(a)&&i(a).focus()});var d=tS();let f;var h=p(d),g=p(h,!0);v(h);var S=k(h,4);ge(S),Le(S,b=>x(a,b),()=>i(a)),v(d),N(()=>{f=ce(d,1,"shell-input svelte-1dfv2gk",null,f,{locked:t.locked}),z(g,t.cwd),S.disabled=t.locked}),B("keydown",S,u),Ee(S,()=>i(n),b=>x(n,b)),I(e,d),se()}le(["keydown"]);const _c=[1e3,2e3,5e3,1e4];class rS{#e;get connected(){return i(this.#e)}set connected(t){x(this.#e,t,!0)}#t;get cwd(){return i(this.#t)}set cwd(t){x(this.#t,t,!0)}#n;get env(){return i(this.#n)}set env(t){x(this.#n,t,!0)}#a;get history(){return i(this.#a)}set history(t){x(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=V(!1),this.#t=V(""),this.#n=V(oe({})),this.#a=V(oe([]))}connect(){if(!this.closed){try{this.ws=new WebSocket(this.url)}catch{this.scheduleReconnect();return}this.ws.addEventListener("open",()=>{this.backoffIndex=0,this.connected=!0;const t=this.lastSeq>0?{t:"hello",replayFrom:this.lastSeq}:{t:"hello"};this.sendRaw(t);for(const n of this.pendingHistoryLogs)this.sendRaw(n);this.pendingHistoryLogs=[]}),this.ws.addEventListener("message",t=>{let n;try{n=JSON.parse(t.data)}catch{return}n.t==="event"&&typeof n.event.seq=="number"&&(this.lastSeq=n.event.seq),n.t==="welcome"&&(this.cwd=n.cwd,this.env=n.env,this.lastSeq=n.seq),n.t==="cwd"&&(this.cwd=n.cwd),n.t==="history"&&(this.history=n.lines);for(const r of this.handlers)r(n)}),this.ws.addEventListener("close",()=>{this.connected=!1,this.ws=null,this.scheduleReconnect()}),this.ws.addEventListener("error",()=>{})}}scheduleReconnect(){if(this.closed)return;const t=_c[Math.min(this.backoffIndex,_c.length-1)];this.backoffIndex++,setTimeout(()=>this.connect(),t)}send(t){if(t.t==="history-log"&&!this.connected){this.pendingHistoryLogs.push(t);return}this.sendRaw(t)}sendRaw(t){!this.ws||this.ws.readyState!==WebSocket.OPEN||this.ws.send(JSON.stringify(t))}onMessage(t){return this.handlers.add(t),()=>this.handlers.delete(t)}close(){this.closed=!0,this.ws?.close(),this.ws=null}}class sS{list(){return Vo()}get(t){return rc(t)}resolve(t){const n=t.trim();if(!n)return{kind:"forward",line:t};if(n.startsWith("$ "))return{kind:"forward",line:n.slice(2)};if(n==="$")return{kind:"forward",line:""};const r=n.indexOf(" "),s=r===-1?n:n.slice(0,r),a=r===-1?"":n.slice(r+1),o=rc(s);if(!o)return{kind:"forward",line:t};const l=a.length?a.split(/\s+/):[];return{kind:"local",verb:o,args:l,line:t}}}class aS{constructor(t=""){this.base=t}async list(t){return(await(await this.#e("/api/fs/list",t)).json()).entries}async stat(t){return await(await this.#e("/api/fs/stat",t)).json()}async read(t){return await(await this.#e("/api/fs/read",t)).text()}async#e(t,n){const r=`${this.base}${t}?path=${encodeURIComponent(n)}`,s=await fetch(r,{credentials:"include"});if(!s.ok){let a=`HTTP ${s.status}`;try{const o=await s.json();o.error&&(a=o.error)}catch{}throw new Error(a)}return s}}class iS{#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 oS={id:"bash",label:"Bash",requiresRole:"admin",transport:"ws",autoRelocate:!1},lS={id:"sh3",label:"SH3",transport:"none",autoRelocate:!0};function cS(e){e.register(oS),e.register(lS)}function sv(e){return`sh3.shell.lastMode.${e}`}function uS(e){try{return globalThis.localStorage?.getItem(sv(e))??null}catch{return null}}function yc(e,t){try{globalThis.localStorage?.setItem(sv(e),t)}catch{}}function dS(e,t,n){const r=uS(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 fS(e,t){return{update(n){const r=$s(e,t);r&&Object.assign(r.props,n)}}}function wc(e){return e.entries[e.entries.length-1].id}function vS(e){return{text(t,n){e.push({kind:"text",stream:t,chunks:[n],ts:Date.now()})},status(t,n){e.push({kind:"status",text:n,level:t,ts:Date.now()})},rich(t,n){return e.push({kind:"rich",component:t,props:{...n},ts:Date.now()}),fS(e,wc(e))},stream(t,n){e.push({kind:"rich",component:t,props:{...n,__streamState:"streaming"},ts:Date.now()});const r=wc(e);return{append(s){const a=$s(e,r);a&&Object.assign(a.props,s)},complete(){const s=$s(e,r);s&&(s.props.__streamState="complete")},error(s){const a=$s(e,r);a&&(a.props.__streamState="error"),e.push({kind:"status",text:`mode: ${s?.message??String(s)}`,level:"error",ts:Date.now()})}}}}}function hS(e){let t=null;async function n(r){t?.abort();const s=new AbortController;t=s;const a=e.mode();if(e.session.history.push(r),a.transport==="none"&&r.trimStart().startsWith("$ ")){e.scrollback.push({kind:"prompt",cwd:e.cwd(),line:r,ts:Date.now()}),e.scrollback.push({kind:"status",text:"shell: server shell not available in user mode",level:"error",ts:Date.now()});return}const o=e.resolver.resolve(r);if(o.kind==="local"){a.transport==="ws"&&e.session.send({t:"history-log",line:r}),e.scrollback.push({kind:"prompt",cwd:e.cwd(),line:r,ts:Date.now()});try{await o.verb.run({shell:e.shell,scrollback:e.scrollback,session:e.session,cwd:e.cwd(),dispatch:n,fs:e.fs},o.args)}catch(c){e.scrollback.push({kind:"status",text:`shell: verb ${o.verb.name} threw — ${c.message}`,level:"error",ts:Date.now()})}return}if(a.transport==="ws"){e.session.send({t:"submit",line:o.line});return}if(a.transport==="custom"){e.scrollback.push({kind:"prompt",cwd:e.cwd(),line:o.line,ts:Date.now()});const c=e.customMode?.(a.id)??null;if(!c){e.scrollback.push({kind:"status",text:`mode '${a.id}' is no longer available`,level:"error",ts:Date.now()});return}if(c.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 u=vS(e.scrollback);try{await c.dispatch({line:o.line,cwd:e.cwd(),signal:s.signal},u)}catch(d){d?.name==="AbortError"?e.scrollback.push({kind:"status",text:"mode dispatch aborted",level:"info",ts:Date.now()}):e.scrollback.push({kind:"status",text:`mode '${a.id}' threw — ${d?.message??String(d)}`,level:"error",ts:Date.now()})}return}const l=o.line.split(/\s+/)[0]??"";e.scrollback.push({kind:"prompt",cwd:e.cwd(),line:o.line,ts:Date.now()}),e.scrollback.push({kind:"status",text:`unknown verb: ${l}`,level:"error",ts:Date.now()})}return{dispatch:n,cancel:()=>t?.abort()}}async function pS(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 mS=C('<div class="toolbar svelte-gnowwz"><div class="toolbar-slots svelte-gnowwz"></div></div>');function bS(e,t){re(t,!0);let n=G(t,"slotProps",19,()=>({})),r=U(()=>t.registry.list(t.ctx));var s=mS(),a=p(s);me(a,21,()=>i(r),o=>o.id,(o,l)=>{const c=U(()=>i(l).component);var u=Ye(),d=he(u);As(d,()=>i(c),(f,h)=>{h(f,Ts(()=>n()[i(l).id]??{}))}),I(o,u)}),v(a),v(s),I(e,s),se()}class gS{#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 _S=C('<span class="mode-label svelte-1i4cqlj"> </span>');function yS(e,t){re(t,!0);let n=U(()=>t.modes.map(l=>({value:l.id,label:l.label})));var r=Ye(),s=he(r);{var a=l=>{Kf(l,{get options(){return i(n)},get value(){return t.mode.id},size:"sm",onchange:c=>t.onSelect(c)})},o=l=>{var c=_S(),u=p(c,!0);v(c),N(()=>z(u,t.mode.label)),I(l,c)};H(s,l=>{t.modes.length>=2?l(a):t.modes.length===1&&l(o,1)})}I(e,r),se()}var wS=C('<button class="focus-lock-btn svelte-1q6gbap"> </button>');function kS(e,t){var n=wS(),r=p(n,!0);v(n),N(()=>{ne(n,"title",t.locked?"Unlock focus":"Lock focus"),z(r,t.locked?"🔒":"🔓")}),B("click",n,function(...s){t.onToggle?.apply(this,s)}),I(e,n)}le(["click"]);var xS=C('<span class="target-shard svelte-1nn2m6x" title="Target shard"> </span>');function SS(e,t){var n=xS(),r=p(n);v(n),N(()=>z(r,`→ ${t.target??"—"??""}`)),I(e,n)}var ES=C('<div class="shell-terminal svelte-13komre"><!> <!> <!></div>');function IS(e,t){re(t,!0);const n=new Hx,r=new sS,s=new aS,a=new iS;cS(a);let o=V(oe(we(()=>t.contributions.list(ts))));xe(()=>{const E=t.contributions.onChange(ts,()=>{x(o,t.contributions.list(ts),!0)});return()=>E()});function l(E){return{id:E.id,label:E.label,requiresRole:E.requiresRole,transport:"custom",autoRelocate:E.autoRelocate??!1}}let c=U(()=>[...a.list(t.role),...i(o).filter(E=>!E.requiresRole||E.requiresRole===t.role).map(l)]),u=V(oe(we(()=>dS(a,t.userId,t.role))));function d(E){const T=i(c).find(q=>q.id===E);T&&(T.requiresRole&&T.requiresRole!==t.role||(S(),x(u,T,!0),yc(t.userId,E),T.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(E=>E.id===i(u).id)){const E=i(c).find(T=>T.id==="sh3")??i(c)[0];if(E){const T=i(u).id;x(u,E,!0),yc(t.userId,E.id),n.push({kind:"status",text:`mode '${T}' is no longer available — switched to '${E.id}'`,level:"warn",ts:Date.now()})}}});const f=we(()=>({...t.shell,setMode:E=>{const T=i(c).find(q=>q.id===E);return!T||T.requiresRole&&T.requiresRole!==t.role?!1:(d(E),!0)},listModes:()=>i(c).map(E=>({id:E.id,label:E.label}))})),h=we(()=>new rS(t.wsUrl)),{dispatch:g,cancel:S}=we(()=>hS({mode:()=>i(u),resolver:r,scrollback:n,session:h,shell:f,fs:s,cwd:()=>h.cwd,customMode:E=>i(o).find(T=>T.id===E)??null}));let b=V(!1),_=V(!1),w=V(null);const y=new gS;y.register({id:"mode",order:10,visible:()=>!0,component:yS}),y.register({id:"focus-lock",order:20,visible:E=>E.mode.id==="sh3",component:kS}),y.register({id:"target-shard",order:30,visible:E=>E.mode.id==="sh3",component:SS});function m(E){if(E.type==="tabs")return E.tabs[E.activeTab]?.viewId??null;if(E.type==="split"){for(const T of E.children){const q=m(T);if(q!==null)return q}return null}return E.viewId??null}function A(){try{const E=At(),T=m(E.docked);if(!T)return null;const q=T.indexOf(":");return q>=0?T.slice(0,q):T}catch{return null}}xe(()=>{const E=A(),T=i(u).autoRelocate,q=i(_);(async()=>{const L=await pS({modeAutoRelocate:T,focusLocked:q,focusedShardId:E,currentShardId:"shell"},s);L.kind==="relocate"&&L.path!==void 0&&(h.cwd=L.path),E&&E!=="shell"?x(w,E,!0):E||x(w,null)})()});function j(E){if(E.t!=="event")return;const T=E.event;switch(T.kind){case"prompt":n.push({kind:"prompt",cwd:T.cwd,line:T.line,ts:T.ts}),x(b,!0);break;case"stdout":n.push({kind:"text",stream:"stdout",chunks:[T.data],ts:T.ts});break;case"stderr":n.push({kind:"text",stream:"stderr",chunks:[T.data],ts:T.ts});break;case"exit":(T.signal||T.code!==null&&T.code!==0)&&n.push({kind:"status",text:T.signal?`shell: process exited (${T.signal})`:`shell: process exited (${T.code})`,level:"error",ts:T.ts}),x(b,!1);break;case"status":n.push({kind:"status",text:T.text,level:T.level,ts:T.ts});break}}let P=null;wo(()=>{P=h.onMessage(j),i(u).transport==="ws"&&h.connect()}),ko(()=>{P?.(),h.close()});var D=ES(),M=p(D);{let E=U(()=>({mode:i(u),role:t.role})),T=U(()=>({mode:{mode:i(u),modes:i(c),onSelect:d},"focus-lock":{locked:i(_),onToggle:()=>x(_,!i(_))},"target-shard":{target:i(w)}}));bS(M,{get registry(){return y},get ctx(){return i(E)},get slotProps(){return i(T)}})}var R=k(M,2);eS(R,{get scrollback(){return n}});var O=k(R,2);nS(O,{get cwd(){return h.cwd},get locked(){return i(b)},get history(){return h.history},get session(){return h},get onSubmit(){return g}}),v(D),I(e,D),se()}var AS=C('<tr><td class="svelte-m248jy"><button type="button" class="svelte-m248jy"> </button></td><td class="svelte-m248jy"> </td></tr>'),CS=C('<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 TS(e,t){re(t,!0);var n=CS(),r=p(n),s=k(p(r));me(s,21,()=>t.data.rows,a=>a.name,(a,o)=>{var l=AS(),c=p(l),u=p(c),d=p(u,!0);v(u),v(c);var f=k(c),h=p(f,!0);v(f),v(l),N(()=>{z(d,i(o).name),z(h,i(o).summary)}),B("click",u,()=>t.data.onClickName(i(o).name)),I(a,l)}),v(s),v(r),v(n),I(e,n),se()}le(["click"]);function RS(){return{name:"help",summary:"List verbs or show detail for one.",async run(e){const t=Vo().map(n=>({name:n.name,summary:n.summary}));e.scrollback.push({kind:"rich",component:TS,props:{data:{rows:t,onClickName:n=>e.dispatch(n)}},ts:Date.now()})}}}const PS={name:"clear",summary:"Clear the scrollback (local only — other views are unaffected).",async run(e){e.scrollback.clear()}},DS={name:"mode",summary:"List or switch shell modes. Usage: mode | mode <id>",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 jS=C('<li class="svelte-o8m437"><button type="button" class="svelte-o8m437"> </button></li>'),MS=C('<div class="shell-rich-history svelte-o8m437"><ol class="svelte-o8m437"></ol></div>');function zS(e,t){re(t,!0);var n=MS(),r=p(n);me(r,21,()=>t.data.lines,Vt,(s,a)=>{var o=jS(),l=p(o),c=p(l,!0);v(l),v(o),N(()=>z(c,i(a))),B("click",l,()=>t.data.onClickLine(i(a))),I(s,o)}),v(r),v(n),I(e,n),se()}le(["click"]);const LS={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:zS,props:{data:{lines:r,onClickLine:s=>e.dispatch(s)}},ts:Date.now()})}};var OS=C('<tr><td class="svelte-1u5krjz"><button type="button" class="svelte-1u5krjz"> </button></td><td class="svelte-1u5krjz"> </td></tr>'),NS=C('<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 qS(e,t){re(t,!0);var n=NS(),r=p(n),s=k(p(r));me(s,21,()=>t.data.apps,a=>a.id,(a,o)=>{var l=OS(),c=p(l),u=p(c),d=p(u,!0);v(u),v(c);var f=k(c),h=p(f,!0);v(f),v(l),N(()=>{z(d,i(o).id),z(h,i(o).label)}),B("click",u,()=>t.data.onClickApp(i(o).id)),I(a,l)}),v(s),v(r),v(n),I(e,n),se()}le(["click"]);var VS=C('<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 BS(e,t){re(t,!0);var n=VS(),r=p(n),s=p(r,!0);v(r);var a=k(r,2),o=k(p(a));v(a);var l=k(a,2),c=k(p(l));v(l),v(n),N(u=>{z(s,t.data.label),z(o,` ${t.data.id??""}`),z(c,` ${u??""}`)},[()=>t.data.shards.join(", ")]),I(e,n),se()}const FS={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:qS,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()})}},US={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:BS,props:{data:{id:t.id,label:t.label,shards:[]}},ts:Date.now()})}};var HS=C('<tr><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td></tr>'),KS=C('<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 WS(e,t){re(t,!0);var n=KS(),r=p(n),s=k(p(r));me(s,21,()=>t.data.shards,a=>a.id,(a,o)=>{var l=HS(),c=p(l),u=p(c,!0);v(c);var d=k(c),f=p(d,!0);v(d);var h=k(d),g=p(h,!0);v(h),v(l),N(()=>{z(u,i(o).id),z(f,i(o).label),z(g,i(o).version)}),I(a,l)}),v(s),v(r),v(n),I(e,n),se()}const YS={name:"shards",summary:"List active shards.",async run(e){const t=e.shell.listShards();e.scrollback.push({kind:"rich",component:WS,props:{data:{shards:t}},ts:Date.now()})}};var GS=C('<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>'),XS=C('<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 JS(e,t){re(t,!0);var n=XS(),r=p(n),s=k(p(r));me(s,21,()=>t.data.views,a=>a.slotId,(a,o)=>{var l=GS(),c=p(l),u=p(c,!0);v(c);var d=k(c),f=p(d,!0);v(d);var h=k(d),g=p(h,!0);v(h);var S=k(h),b=p(S);v(S),v(l),N(()=>{z(u,i(o).slotId),z(f,i(o).viewId),z(g,i(o).label)}),B("click",b,()=>t.data.onClose(i(o).slotId)),I(a,l)}),v(s),v(r),v(n),I(e,n),se()}le(["click"]);const ZS={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:JS,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()})}},QS={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()})}},$S={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()})}},e3={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()})}},t3={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 n3=C('<tr><td class="svelte-1w7onag"> </td><td class="svelte-1w7onag"> </td></tr>'),r3=C('<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 s3(e,t){re(t,!0);var n=r3(),r=p(n),s=k(p(r));me(s,21,()=>t.data.rows,a=>a.shardId,(a,o)=>{var l=n3(),c=p(l),u=p(c,!0);v(c);var d=k(c),f=p(d,!0);v(d),v(l),N(h=>{z(u,i(o).shardId),z(f,h)},[()=>i(o).zones.join(", ")]),I(a,l)}),v(s),v(r),v(n),I(e,n),se()}var a3=C('<div class="shell-rich-zonetree svelte-13iiyr1"><pre class="svelte-13iiyr1"> </pre></div>');function i3(e,t){re(t,!0);var n=a3(),r=p(n),s=p(r,!0);v(r),v(n),N(a=>z(s,a),[()=>JSON.stringify(t.data.value,null,2)]),I(e,n),se()}const o3={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:s3,props:{data:{rows:n}},ts:Date.now()})}},l3={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:i3,props:{data:{value:s}},ts:Date.now()})}};function c3(e,t){if(t.startsWith("/"))return u3(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 u3(e){return e.split("/").filter(t=>t&&t!==".").join("/")}const d3={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()})}},f3={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=c3(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}},v3={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 h3=C('<tr><td class="svelte-1ox8vog"> </td><td class="svelte-1ox8vog"> </td></tr>'),p3=C('<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 m3(e,t){re(t,!0);var n=p3(),r=p(n),s=k(p(r));me(s,21,()=>Object.entries(t.data.env),([a,o])=>a,(a,o)=>{var l=U(()=>Hc(i(o),2));let c=()=>i(l)[0],u=()=>i(l)[1];var d=h3(),f=p(d),h=p(f,!0);v(f);var g=k(f),S=p(g,!0);v(g),v(d),N(()=>{z(h,c()),z(S,u())}),I(a,d)}),v(s),v(r),v(n),I(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:m3,props:{data:{env:t}},ts:Date.now()})}},g3={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()})}},_3={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 y3(){try{const{TauriStoreBackend:e}=await wr(async()=>{const{TauriStoreBackend:r}=await import("./tauri-backend-BNhKUiUG.js");return{TauriStoreBackend:r}},__vite__mapDeps([0,1])),t=new e("workspace"),n=new e("user");return await Promise.all([t.init(),n.init()]),{backends:{workspace:t,user:n},localOwner:!0}}catch{return{backends:null,localOwner:Vc}}}async function w3(){try{const{LazyStore:e}=await wr(async()=>{const{LazyStore:r}=await import("./index-56jHh6nx.js");return{LazyStore:r}},[]),t=new e("workspace.json",{defaults:{},autoSave:!0}),n=new e("user.json",{defaults:{},autoSave:!0});await t.clear(),await n.clear()}catch{}if(typeof localStorage<"u"){const e=[];for(let t=0;t<localStorage.length;t++){const n=localStorage.key(t);n&&n.startsWith("sh3:")&&e.push(n)}for(const t of e)localStorage.removeItem(t)}typeof indexedDB<"u"&&await new Promise(e=>{const t=indexedDB.deleteDatabase("sh3-packages");t.onsuccess=()=>e(),t.onerror=()=>e(),t.onblocked=()=>e()})}const k3={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 w3(),location.reload()}};function x3(e){e.registerVerb(RS()),e.registerVerb(PS),e.registerVerb(DS),e.registerVerb(LS),e.registerVerb(FS),e.registerVerb(US),e.registerVerb(YS),e.registerVerb(ZS),e.registerVerb(QS),e.registerVerb(t3),e.registerVerb($S),e.registerVerb(e3),e.registerVerb(o3),e.registerVerb(l3),e.registerVerb(d3),e.registerVerb(f3),e.registerVerb(b3),e.registerVerb(v3),e.registerVerb(g3),e.registerVerb(_3),e.registerVerb(k3)}function av(e){return e.type==="tabs"?e.tabs.filter(t=>t.viewId!==null):e.type==="split"?e.children.flatMap(av):e.viewId!==null?[{slotId:e.slotId,viewId:e.viewId,label:e.viewId}]:[]}function S3(e){return{listApps(){return tr().map(t=>({id:t.id,label:t.label}))},getActiveApp(){const t=md();return t?{id:t.id,label:t.label}:null},launchApp(t){bn(t)},listShards(){return Array.from(un.values()).map(t=>({id:t.manifest.id,label:t.manifest.label,version:t.manifest.version}))},listViewsInCurrentLayout(){try{const{root:t}=jf();return av(t.docked).map(n=>({slotId:n.slotId,viewId:n.viewId??"",label:n.label}))}catch{return[]}},openViewInCurrentLayout(t){try{if(Ya(t))return{ok:!0};const n=uc().find(r=>r.viewId===t);if(n){const r=`standalone:${t}:${Date.now()}`;return el({slotId:r,viewId:t,label:n.label})?{ok:!0}:{ok:!1,error:`could not dock "${t}" — no available slot`}}return{ok:!1,error:`view "${t}" not found in current layout`}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}},listStandaloneViews(){return uc()},popoutSlot(t){try{const n=Lf(t);return n?{ok:!0,floatId:n}:{ok:!1,error:`slot "${t}" not found in docked tree`}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}},dockFloat(t){try{return Of(t)?{ok:!0}:{ok:!1,error:`float "${t}" not found or has no dockable content`}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}},locateSlot(t){try{return qf(t)}catch{return null}},listFloats(){return lt.list().map(t=>{const n=t.content.type==="tabs"?t.content:null,r=n?n.tabs[n.activeTab??0]??n.tabs[0]:null;return{floatId:t.id,viewId:r?.viewId??null,label:t.title??r?.label??t.id}})},closeSlot(t){return Qo(t),{ok:!0}},listZones(t){return[]},readZone(t,n){return null},whoAmI(){return{userId:Tr()?.id??"guest",admin:ht()}},setMode(t){return!1},listModes(){return[]}}}const E3={manifest:Vx,activate(e){x3(e);const t=S3();e.actions.register({id:"shell.terminal.toggle",label:"Open Terminal",scope:["home","app"],defaultShortcut:"²",allowInInputs:!1,run(){Ya("shell:terminal")||lt.open("shell:terminal",{title:"Shell"})}});const n={mount(r,s){const a=typeof location<"u"&&location.protocol==="https:"?"wss":"ws",o=typeof location<"u"?location.host:"localhost",l=`${a}://${o}/api/shell/session`,u=Tr()?.id??"guest",d=ht()?"admin":"user",f=Ne(IS,{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(){}},I3={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 A3=C('<div class="admin-error svelte-4q792t"> </div>'),C3=C('<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>'),T3=C('<p class="admin-muted svelte-4q792t">Loading...</p>'),R3=C('<p class="admin-error svelte-4q792t"> </p>'),P3=C('<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>'),D3=C('<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),j3=C('<li class="admin-user-item svelte-4q792t"><!></li>'),M3=C('<ul class="admin-user-list svelte-4q792t"></ul>'),z3=C('<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 L3(e,t){re(t,!0);let n=V(oe([])),r=V(!0),s=V(null),a=V(!1),o=V(""),l=V(""),c=V(""),u=V("user"),d=V(null),f=V(null),h=V(""),g=V("user"),S=V("");async function b(){x(r,!0),x(s,null);try{const L=await fetch("/api/admin/users",{credentials:"include"});if(!L.ok)throw new Error("Failed to fetch users");x(n,await L.json(),!0)}catch(L){x(s,L instanceof Error?L.message:"Failed to load users",!0)}finally{x(r,!1)}}async function _(){x(d,null);try{const L=await fetch("/api/admin/users",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:i(o),displayName:i(l)||i(o),password:i(c),role:i(u)})});if(!L.ok){const F=await L.json().catch(()=>({}));x(d,F.error||"Failed to create user",!0);return}x(o,""),x(l,""),x(c,""),x(u,"user"),x(a,!1),await b()}catch{x(d,"Network error")}}function w(L){x(f,L.id,!0),x(h,L.displayName,!0),x(g,L.role,!0),x(S,"")}async function y(){if(!i(f))return;const L={displayName:i(h),role:i(g)};i(S).trim()&&(L.password=i(S));try{if(!(await fetch(`/api/admin/users/${i(f)}`,{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(L)})).ok)return;x(f,null),await b()}catch{}}async function m(L){try{await fetch(`/api/admin/users/${L}`,{method:"DELETE",credentials:"include"}),await b()}catch{}}b();var A=z3(),j=p(A),P=k(p(j),2),D=p(P,!0);v(P),v(j);var M=k(j,2);{var R=L=>{var F=C3(),Y=p(F);ge(Y);var W=k(Y,2);ge(W);var J=k(W,2);ge(J);var Q=k(J,2),ae=p(Q);ae.value=ae.__value="user";var K=k(ae);K.value=K.__value="admin",v(Q);var X=k(Q,2),ie=k(X,2);{var fe=Z=>{var ve=A3(),ke=p(ve,!0);v(ve),N(()=>z(ke,i(d))),I(Z,ve)};H(ie,Z=>{i(d)&&Z(fe)})}v(F),N(Z=>X.disabled=Z,[()=>!i(o).trim()||!i(c).trim()]),ze("submit",F,Z=>{Z.preventDefault(),_()}),Ee(Y,()=>i(o),Z=>x(o,Z)),Ee(W,()=>i(l),Z=>x(l,Z)),Ee(J,()=>i(c),Z=>x(c,Z)),as(Q,()=>i(u),Z=>x(u,Z)),I(L,F)};H(M,L=>{i(a)&&L(R)})}var O=k(M,2);{var E=L=>{var F=T3();I(L,F)},T=L=>{var F=R3(),Y=p(F,!0);v(F),N(()=>z(Y,i(s))),I(L,F)},q=L=>{var F=M3();me(F,21,()=>i(n),Y=>Y.id,(Y,W)=>{var J=j3(),Q=p(J);{var ae=X=>{var ie=P3(),fe=p(ie);ge(fe);var Z=k(fe,2);ge(Z);var ve=k(Z,2),ke=p(ve);ke.value=ke.__value="user";var gt=k(ke);gt.value=gt.__value="admin",v(ve);var Oe=k(ve,2),Ct=k(p(Oe),2);v(Oe),v(ie),ze("submit",ie,Ft=>{Ft.preventDefault(),y()}),Ee(fe,()=>i(h),Ft=>x(h,Ft)),Ee(Z,()=>i(S),Ft=>x(S,Ft)),as(ve,()=>i(g),Ft=>x(g,Ft)),B("click",Ct,()=>{x(f,null)}),I(X,ie)},K=X=>{var ie=D3(),fe=he(ie),Z=p(fe),ve=p(Z,!0);v(Z);var ke=k(Z,2),gt=p(ke);v(ke),v(fe);var Oe=k(fe,2),Ct=p(Oe),Ft=k(Ct,2);v(Oe),N(()=>{z(ve,i(W).displayName),z(gt,`${i(W).username??""} · ${i(W).role??""}`)}),B("click",Ct,()=>w(i(W))),B("click",Ft,()=>m(i(W).id)),I(X,ie)};H(Q,X=>{i(f)===i(W).id?X(ae):X(K,-1)})}v(J),I(Y,J)}),v(F),I(L,F)};H(O,L=>{i(r)?L(E):i(s)?L(T,1):L(q,-1)})}v(A),N(()=>z(D,i(a)?"Cancel":"New user")),B("click",P,()=>{x(a,!i(a))}),I(e,A),se()}le(["click"]);var O3=C('<p class="admin-muted svelte-1hsgdb4">Loading...</p>'),N3=C('<div class="admin-error svelte-1hsgdb4"> </div>'),q3=C('<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),V3=C('<div class="admin-auth svelte-1hsgdb4"><h2 class="svelte-1hsgdb4">Auth Settings</h2> <!></div>');function B3(e,t){re(t,!0);let n=V(null),r=V(!0),s=V(!1),a=V(null);async function o(){x(r,!0);try{const h=await fetch("/api/admin/settings",{credentials:"include"});if(!h.ok)throw new Error("Failed to fetch settings");x(n,await h.json(),!0)}catch(h){x(a,h instanceof Error?h.message:"Failed to load settings",!0)}finally{x(r,!1)}}async function l(){if(i(n)){x(s,!0),x(a,null);try{const h=await fetch("/api/admin/settings",{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(i(n))});if(!h.ok)throw new Error("Failed to save settings");x(n,await h.json(),!0)}catch(h){x(a,h instanceof Error?h.message:"Failed to save",!0)}finally{x(s,!1)}}}o();var c=V3(),u=k(p(c),2);{var d=h=>{var g=O3();I(h,g)},f=h=>{var g=q3(),S=he(g),b=p(S),_=p(b);ge(_),Gt(4),v(b);var w=k(b,2),y=p(w);ge(y),Gt(4),v(w);var m=k(w,2),A=p(m);ge(A),Gt(4),v(m);var j=k(m,2),P=k(p(j),2);ge(P),v(j);var D=k(j,2),M=p(D,!0);v(D),v(S);var R=k(S,2);{var O=E=>{var T=N3(),q=p(T,!0);v(T),N(()=>z(q,i(a))),I(E,T)};H(R,E=>{i(a)&&E(O)})}N(()=>{D.disabled=i(s),z(M,i(s)?"Saving...":"Save")}),Qr(_,()=>i(n).auth.required,E=>i(n).auth.required=E),Qr(y,()=>i(n).auth.guestAllowed,E=>i(n).auth.guestAllowed=E),Qr(A,()=>i(n).auth.selfRegistration,E=>i(n).auth.selfRegistration=E),Ee(P,()=>i(n).auth.sessionTTL,E=>i(n).auth.sessionTTL=E),B("click",D,l),I(h,g)};H(u,h=>{i(r)?h(d):i(n)&&h(f,1)})}v(c),I(e,c),se()}le(["click"]);var F3=C('<button type="button"> </button>'),U3=C('<div class="admin-error svelte-1gkiloq"> </div>'),H3=C('<div class="admin-error svelte-1gkiloq"> </div>'),K3=C(`<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 W3(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=V("..."),s=V(!1),a=V(null),o=V(31536e3),l=V(31536e3),c=V(!1),u=V(null);const d=U(()=>i(o)!==i(l)),f=U(()=>h(i(o)));function h(Z){return Z===0?"0 seconds (off — browsers never cache)":Z<60?`${Z} seconds`:Z<3600?`${Math.round(Z/60)} minutes`:Z<86400?`${Math.round(Z/3600)} hours`:Z<31536e3?`${Math.round(Z/86400)} days`:`${Math.round(Z/31536e3)} years`}async function g(){try{const Z=await fetch("/api/version");if(Z.ok){const ve=await Z.json();x(r,ve.version,!0)}}catch{}}async function S(){try{const Z=await fetch("/api/admin/settings",{credentials:"include"});if(Z.ok){const ke=(await Z.json()).packages?.cacheMaxAge??31536e3;x(o,ke,!0),x(l,ke,!0)}}catch{}}async function b(){x(c,!0),x(u,null);try{const Z=await fetch("/api/admin/settings",{method:"PUT",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({packages:{cacheMaxAge:i(o)}})});if(Z.ok){const ve=await Z.json();x(l,ve.packages?.cacheMaxAge??i(o),!0),x(o,i(l),!0)}else{const ve=await Z.json().catch(()=>({}));x(u,ve.error||"Save failed",!0)}}catch{x(u,"Network error")}finally{x(c,!1)}}async function _(){x(s,!0),x(a,null);try{const Z=await fetch("/api/admin/restart",{method:"POST",credentials:"include"});if(!Z.ok){const ve=await Z.json().catch(()=>({}));x(a,ve.error||"Restart failed",!0),x(s,!1)}}catch{x(a,"Network error"),x(s,!1)}}g(),S();var w=K3(),y=k(p(w),2),m=p(y),A=k(p(m),2),j=p(A,!0);v(A),v(m),v(y);var P=k(y,2),D=k(p(P),4);ge(D);var M=k(D,2),R=p(M),O=p(R,!0);v(R);var E=k(R);v(M);var T=k(M,2);me(T,21,()=>n,Z=>Z.value,(Z,ve)=>{var ke=F3();let gt;var Oe=p(ke,!0);v(ke),N(()=>{gt=ce(ke,1,"admin-snap svelte-1gkiloq",null,gt,{active:i(o)===i(ve).value}),ke.disabled=i(c),z(Oe,i(ve).label)}),B("click",ke,()=>x(o,i(ve).value,!0)),I(Z,ke)}),v(T);var q=k(T,2),L=p(q),F=p(L,!0);v(L);var Y=k(L,2),W=k(Y,2);{var J=Z=>{var ve=U3(),ke=p(ve,!0);v(ve),N(()=>z(ke,i(u))),I(Z,ve)};H(W,Z=>{i(u)&&Z(J)})}v(q),v(P);var Q=k(P,2),ae=k(p(Q),2),K=p(ae),X=p(K,!0);v(K);var ie=k(K,2);{var fe=Z=>{var ve=H3(),ke=p(ve,!0);v(ve),N(()=>z(ke,i(a))),I(Z,ve)};H(ie,Z=>{i(a)&&Z(fe)})}v(ae),v(Q),v(w),N(()=>{z(j,i(r)),D.disabled=i(c),z(O,i(o)),z(E,` — ${i(f)??""}`),L.disabled=!i(d)||i(c),z(F,i(c)?"Saving...":"Save"),Y.disabled=!i(d)||i(c),K.disabled=i(s),z(X,i(s)?"Restarting...":"Restart server")}),Ee(D,()=>i(o),Z=>x(o,Z)),B("click",L,b),B("click",Y,()=>x(o,i(l),!0)),B("click",K,_),I(e,w),se()}le(["click"]);var Y3=C(`<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>`),G3=C('<div class="admin-error svelte-1afg5z5"> </div>'),X3=C('<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>'),J3=C('<p class="admin-muted svelte-1afg5z5">Loading...</p>'),Z3=C('<p class="admin-error svelte-1afg5z5"> </p>'),Q3=C('<p class="admin-muted svelte-1afg5z5">No API keys. Create one to enable external access.</p>'),$3=C('<button type="button" class="admin-btn-danger svelte-1afg5z5">Confirm</button> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Cancel</button>',1),e2=C('<button type="button" class="admin-btn-danger svelte-1afg5z5">Revoke</button>'),t2=C('<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>'),n2=C('<ul class="admin-key-list svelte-1afg5z5"></ul>'),r2=C('<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 s2(e,t){re(t,!0);let n=V(oe([])),r=V(!0),s=V(null),a=V(!1),o=V(""),l=V(null),c=V(null),u=V(null);async function d(){x(r,!0),x(s,null);try{const E=await fetch("/api/admin/keys",{credentials:"include"});if(!E.ok)throw new Error("Failed to fetch keys");x(n,await E.json(),!0)}catch(E){x(s,E instanceof Error?E.message:"Failed to load keys",!0)}finally{x(r,!1)}}async function f(){x(l,null);try{const E=await fetch("/api/admin/keys",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({label:i(o)})});if(!E.ok){const q=await E.json().catch(()=>({}));x(l,q.error||"Failed to create key",!0);return}const T=await E.json();x(c,{id:T.id,key:T.key},!0),x(o,""),x(a,!1),await d()}catch{x(l,"Network error")}}async function h(E){x(u,null);try{await fetch(`/api/admin/keys/${E}`,{method:"DELETE",credentials:"include"}),i(c)?.id===E&&x(c,null),await d()}catch{}}function g(E){return new Date(E).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}d();var S=r2(),b=p(S),_=k(p(b),2),w=p(_,!0);v(_),v(b);var y=k(b,2);{var m=E=>{var T=Y3(),q=k(p(T),2),L=p(q,!0);v(q);var F=k(q,2);v(T),N(()=>z(L,i(c).key)),B("click",F,()=>{x(c,null)}),I(E,T)};H(y,E=>{i(c)&&E(m)})}var A=k(y,2);{var j=E=>{var T=X3(),q=p(T);ge(q);var L=k(q,2),F=k(L,2);{var Y=W=>{var J=G3(),Q=p(J,!0);v(J),N(()=>z(Q,i(l))),I(W,J)};H(F,W=>{i(l)&&W(Y)})}v(T),N(W=>L.disabled=W,[()=>!i(o).trim()]),ze("submit",T,W=>{W.preventDefault(),f()}),Ee(q,()=>i(o),W=>x(o,W)),I(E,T)};H(A,E=>{i(a)&&E(j)})}var P=k(A,2);{var D=E=>{var T=J3();I(E,T)},M=E=>{var T=Z3(),q=p(T,!0);v(T),N(()=>z(q,i(s))),I(E,T)},R=E=>{var T=Q3();I(E,T)},O=E=>{var T=n2();me(T,21,()=>i(n),q=>q.id,(q,L)=>{var F=t2(),Y=p(F),W=p(Y),J=p(W,!0);v(W);var Q=k(W,2),ae=p(Q);v(Q),v(Y);var K=k(Y,2),X=p(K);{var ie=Z=>{var ve=$3(),ke=he(ve),gt=k(ke,2);B("click",ke,()=>h(i(L).id)),B("click",gt,()=>{x(u,null)}),I(Z,ve)},fe=Z=>{var ve=e2();B("click",ve,()=>{x(u,i(L).id,!0)}),I(Z,ve)};H(X,Z=>{i(u)===i(L).id?Z(ie):Z(fe,-1)})}v(K),v(F),N(Z=>{z(J,i(L).label),z(ae,`${i(L).id??""} · ${Z??""}`)},[()=>g(i(L).createdAt)]),I(q,F)}),v(T),I(E,T)};H(P,E=>{i(r)?E(D):i(s)?E(M,1):i(n).length===0?E(R,2):E(O,-1)})}v(S),N(()=>z(w,i(a)?"Cancel":"New key")),B("click",_,()=>{x(a,!i(a))}),I(e,S),se()}le(["click"]);const a2={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(L3,{target:a});return{unmount(){Ge(l)}}}},n={mount(a,o){const l=Ne(B3,{target:a});return{unmount(){Ge(l)}}}},r={mount(a,o){const l=Ne(W3,{target:a});return{unmount(){Ge(l)}}}},s={mount(a,o){const l=Ne(s2,{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)}},i2={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"}]}},kc="sh3:migrations:shell-rename:done",xc="__shell__:",o2="__sh3core__:",Sc="sh3:user:__shell__:theme",Ec="sh3:user:__sh3core__:theme";function l2(e,t){if(t.getItem(kc))return;const n=t.getItem(Sc);n!==null&&t.getItem(Ec)===null&&(t.setItem(Ec,n),t.removeItem(Sc));for(const r of e.keys()){if(!r.startsWith(xc))continue;const s=o2+r.slice(xc.length),a=e.read(r);e.write(s,a),e.delete(r)}t.setItem(kc,"1")}const Ic="sh3:migrations:mode-id-rename:done",c2="sh3.shell.lastMode.",Ac={dev:"bash",user:"sh3"};function u2(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 d2(e){if(!e.getItem(Ic)){for(const t of u2(e)){if(!t.startsWith(c2))continue;const n=e.getItem(t);n&&Object.prototype.hasOwnProperty.call(Ac,n)&&e.setItem(t,Ac[n])}e.setItem(Ic,"1")}}let Cc=!1,Tc=null;function f2(){Cc||(Cc=!0,Tc=e=>{const t=e.state?.sh3;t==="anchor"?(Ig(),history.forward()):t==="forward-bumper"&&(Ag(),history.back())},window.addEventListener("popstate",Tc),history.replaceState({sh3:"anchor"},""),history.pushState({sh3:"main"},""),history.pushState({sh3:"forward-bumper"},""),history.back())}function v2(e){Jo(e)}function h2(){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 p2(e){if(typeof globalThis.localStorage<"u"){l2(h2(),globalThis.localStorage),d2(globalThis.localStorage);const{migrateLegacyWorkspaceKeys:a}=await wr(async()=>{const{migrateLegacyWorkspaceKeys:l}=await import("./workspace-rekey-DRgvbNY-.js");return{migrateLegacyWorkspaceKeys:l}},[]),{getActiveScopeId:o}=await wr(async()=>{const{getActiveScopeId:l}=await Promise.resolve().then(()=>yw);return{getActiveScopeId:l}},void 0);a(o())}const t=new Set(e?.excludeShards),n=[qx,E3,Ix,a2,Xk,v0];for(const a of n)t.has(a.manifest.id)||Jo(a);const r=[I3,i2];for(const a of r)Po(a);await U0();for(const[a,o]of un)if(o.autostart){Oy(a);try{await Cf(a,{phase:"autostart"})}catch{}}const s=Pf();if(s&&An.has(s))try{await bn(s)}catch(a){console.error(`[sh3] Auto-launch of "${s}" failed:`,a),Df()}Sg({returnToHome:Ds,launchApp:bn}),typeof window<"u"&&typeof history<"u"&&f2()}var m2=C('<button type="button" aria-label="Expand pane"><span class="collapse-icon"> </span></button>'),b2=C('<button type="button" aria-label="Collapse pane"><span class="collapse-icon"> </span></button>'),g2=C('<!> <div class="pane-content svelte-1adl4o1"><!></div>',1),_2=C('<div role="separator"></div>'),y2=C("<div><!></div> <!>",1),w2=C("<div></div>");function k2(e,t){re(t,!0);const n=40,r=28;let s;const a=w=>t.pinned?.[w]??"fr",o=w=>t.collapsed?.[w]??!1,l=w=>t.fixed?.[w]??!1,c=w=>l(w)||l(w+1);function u(w){if(l(w))return!1;const y=w>0?!l(w-1):!1,m=w<t.count-1?!l(w+1):!1;return y||m}function d(w){return o(w)?`0 0 ${r}px`:a(w)==="px"?`0 0 ${Math.max(n,t.sizes[w])}px`:`${Math.max(1e-4,t.sizes[w])} 1 0`}let f=V(null);function h(w,y){if(o(y)||o(y+1)||c(y))return;w.preventDefault(),w.target.setPointerCapture(w.pointerId);const m=s.getBoundingClientRect(),A=t.direction==="horizontal"?m.width:m.height;let j=0,P=0;for(let D=0;D<t.sizes.length;D++)a(D)==="fr"?j+=t.sizes[D]:P+=Math.max(n,t.sizes[D]);x(f,{handleIndex:y,startClient:t.direction==="horizontal"?w.clientX:w.clientY,startSizes:t.sizes.slice(),containerPx:A,totalFr:j,frAvailPx:Math.max(1,A-P)},!0)}function g(w){if(!i(f))return;const m=(t.direction==="horizontal"?w.clientX:w.clientY)-i(f).startClient,A=i(f).handleIndex,j=A+1,P=a(A),D=a(j),M=i(f).totalFr/i(f).frAvailPx;if(P==="fr"&&D==="fr"){const R=n*M,O=m*M,E=i(f).startSizes[j]-R,T=-(i(f).startSizes[A]-R),q=Math.min(Math.max(O,T),E);t.onResize?.(A,i(f).startSizes[A]+q),t.onResize?.(j,i(f).startSizes[j]-q)}else if(P==="px"&&D==="fr"){const R=i(f).frAvailPx-n,O=n-i(f).startSizes[A];t.onResize?.(A,i(f).startSizes[A]+Math.min(Math.max(m,O),R))}else if(P==="fr"&&D==="px"){const R=i(f).startSizes[j]-n,O=-(i(f).frAvailPx-n);t.onResize?.(j,i(f).startSizes[j]-Math.min(Math.max(m,O),R))}else{const R=i(f).startSizes[j]-n,O=-(i(f).startSizes[A]-n),E=Math.min(Math.max(m,O),R);t.onResize?.(A,i(f).startSizes[A]+E),t.onResize?.(j,i(f).startSizes[j]-E)}}function S(w){i(f)&&(w.target.releasePointerCapture(w.pointerId),x(f,null))}var b=w2();let _;me(b,21,()=>Array(t.count),Vt,(w,y,m)=>{var A=y2(),j=he(A);let P;var D=p(j);{var M=q=>{var L=m2();let F;var Y=p(L),W=p(Y,!0);v(Y),v(L),N(()=>{F=ce(L,1,"collapse-header svelte-1adl4o1",null,F,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),z(W,t.direction==="horizontal"?"▸":"▾")}),B("click",L,()=>t.onCollapseToggle?.(m,!1)),I(q,L)},R=U(()=>o(m)),O=q=>{var L=g2(),F=he(L);{var Y=ae=>{var K=b2();let X;ne(K,"data-testid",`collapse-toggle-${m}`);var ie=p(K),fe=p(ie,!0);v(ie),v(K),N(()=>{X=ce(K,1,"collapse-header expanded svelte-1adl4o1",null,X,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),z(fe,t.direction==="horizontal"?"◂":"▴")}),B("click",K,()=>t.onCollapseToggle?.(m,!0)),I(ae,K)},W=U(()=>t.onCollapseToggle&&u(m));H(F,ae=>{i(W)&&ae(Y)})}var J=k(F,2),Q=p(J);en(Q,()=>t.pane,()=>m),v(J),I(q,L)};H(D,q=>{i(R)?q(M):q(O,-1)})}v(j);var E=k(j,2);{var T=q=>{var L=_2();let F;ne(L,"data-testid",`splitter-handle-${m}`),N(Y=>{F=ce(L,1,"splitter-handle svelte-1adl4o1",null,F,Y),ne(L,"aria-orientation",t.direction==="horizontal"?"vertical":"horizontal")},[()=>({dragging:i(f)?.handleIndex===m,disabled:o(m)||o(m+1),frozen:c(m)})]),B("pointerdown",L,Y=>h(Y,m)),B("pointermove",L,g),B("pointerup",L,S),ze("pointercancel",L,S),B("dblclick",L,()=>{c(m)||!u(m)&&!o(m)||t.onCollapseToggle?.(m,!o(m))}),I(q,L)};H(E,q=>{m<t.count-1&&q(T)})}N((q,L)=>{P=ce(j,1,"splitter-pane svelte-1adl4o1",null,P,q),Ke(j,`flex: ${L??""};`)},[()=>({collapsed:o(m)}),()=>d(m)]),I(w,A)}),v(b),Le(b,w=>s=w,()=>s),N(()=>_=ce(b,1,"splitter svelte-1adl4o1",null,_,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"})),I(e,b),se()}le(["click","pointerdown","pointermove","pointerup","dblclick"]);function x2(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 S2=C('<span class="tab-dirty svelte-1kxcyhf" title="Unsaved changes"></span>'),E2=C('<span class="tab-icon svelte-1kxcyhf"> </span>'),I2=C('<span class="tab-close svelte-1kxcyhf" role="button" tabindex="-1" title="Close">✕</span>'),A2=C('<button type="button" role="tab"><!> <!> <span class="tab-label svelte-1kxcyhf"> </span> <!></button>'),C2=C('<div class="drop-indicator svelte-1kxcyhf"></div>'),T2=C("<div><!></div>"),R2=C('<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 P2(e,t){re(t,!0);function n(_){t.clickGuard?.()||t.onActiveChange?.(_)}function r(_,w){w.stopPropagation(),t.onClose?.(_)}let s=V(void 0);const a=oe([]);let o=V(null);function l(_,w){if(!t.dragController)return;const y=a[_];y&&t.dragController.onPointerDown(_,w,y)}function c(_){if(!t.dragController||!t.dragController.isDragging||!i(s))return;const w=i(s).getBoundingClientRect(),y=a.filter(m=>!!m).map(m=>m.getBoundingClientRect());x(o,t.dragController.onStripHover(w,_.clientX,_.clientY,y),!0)}function u(){t.dragController&&(x(o,null),t.dragController.onStripLeave())}var d=R2(),f=p(d),h=p(f);me(h,17,()=>t.labels,Vt,(_,w,y)=>{var m=A2();let A;var j=p(m);{var P=q=>{var L=S2();I(q,L)};H(j,q=>{t.dirty?.[y]&&q(P)})}var D=k(j,2);{var M=q=>{var L=E2(),F=p(L,!0);v(L),N(()=>z(F,t.icons[y])),I(q,L)};H(D,q=>{t.icons?.[y]&&q(M)})}var R=k(D,2),O=p(R,!0);v(R);var E=k(R,2);{var T=q=>{var L=I2();N(()=>ne(L,"data-testid",t.tabIds?.[y]?`tab-close-${t.tabIds[y]}`:void 0)),B("click",L,F=>r(y,F)),B("keydown",L,F=>{(F.key==="Enter"||F.key===" ")&&r(y,F)}),I(q,L)};H(E,q=>{t.closable?.[y]&&q(T)})}v(m),Le(m,(q,L)=>a[L]=q,q=>a?.[q],()=>[y]),N(()=>{A=ce(m,1,"tab svelte-1kxcyhf",null,A,{active:t.activeTab===y}),ne(m,"aria-selected",t.activeTab===y),z(O,i(w))}),B("click",m,()=>n(y)),B("pointerdown",m,q=>l(y,q)),ze("auxclick",m,q=>{q.button===1&&t.closable?.[y]&&r(y,q)}),I(_,m)});var g=k(h,2);{var S=_=>{const w=U(()=>x2(i(o),a,i(s)));var y=Ye(),m=he(y);{var A=j=>{var P=C2();N(()=>Ke(P,`left: ${i(w).left??""}px; height: ${i(w).height??""}px; top: ${i(w).top??""}px;`)),I(j,P)};H(m,j=>{i(w)&&j(A)})}I(_,y)};H(g,_=>{i(o)!==null&&t.dragController?.isDragging&&_(S)})}v(f),Le(f,_=>x(s,_),()=>i(s));var b=k(f,2);me(b,21,()=>t.labels,Vt,(_,w,y)=>{var m=T2();let A;var j=p(m);en(j,()=>t.body,()=>y),v(m),N(()=>A=ce(m,1,"tab-body-pane svelte-1kxcyhf",null,A,{active:t.activeTab===y})),I(_,m)}),v(b),v(d),B("pointermove",f,c),ze("pointerleave",f,u),I(e,d),se()}le(["pointermove","click","pointerdown","keydown"]);var D2=C('no factory for <code class="svelte-1czj0s8"> </code>',1),j2=C("<em>empty slot</em>"),M2=C('<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>'),z2=C('<div class="slot svelte-1czj0s8"><!></div>');function Rc(e,t){re(t,!0);let n=G(t,"label",3,""),r=V(void 0),s=V(0),a=V(0);const o=U(()=>t.node.viewId?!!Vd(t.node.viewId):!1);xe(()=>{if(!i(r))return;const d=t.node.slotId,f=i(r),h=Fo(d,t.node.viewId,n()||t.node.viewId||d,t.meta);f.appendChild(h);const g=new ResizeObserver(S=>{for(const b of S){const _=b.contentRect;x(s,Math.round(_.width),!0),x(a,Math.round(_.height),!0)}});return g.observe(f),()=>{g.disconnect(),Uo(d,f)}});var l=z2(),c=p(l);{var u=d=>{var f=M2(),h=p(f),g=p(h,!0);v(h);var S=k(h,2),b=p(S);{var _=A=>{var j=D2(),P=k(he(j)),D=p(P,!0);v(P),N(()=>z(D,t.node.viewId)),I(A,j)},w=A=>{var j=j2();I(A,j)};H(b,A=>{t.node.viewId?A(_):A(w,-1)})}v(S);var y=k(S,2),m=p(y);v(y),v(f),N(()=>{z(g,t.node.slotId),z(m,`${i(s)??""} × ${i(a)??""}`)}),I(d,f)};H(c,d=>{i(o)||d(u)})}v(l),Le(l,d=>x(r,d),()=>i(r)),N(()=>{ne(l,"data-slot-id",t.node.slotId),ne(l,"data-view-id",t.node.viewId??"")}),I(e,l),se()}const _e=oe({phase:"idle",source:null,pointerX:0,pointerY:0,target:null});let iv=0;function L2(){return performance.now()<iv}const Pc=4;let ov=0,lv=0;function O2(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,ov=r.clientX,lv=r.clientY,N2()}function N2(){window.addEventListener("pointermove",cv,!0),window.addEventListener("pointerup",uv,!0),window.addEventListener("pointercancel",dv,!0),document.body.style.userSelect="none",document.body.dataset.dragging=""}function q2(){window.removeEventListener("pointermove",cv,!0),window.removeEventListener("pointerup",uv,!0),window.removeEventListener("pointercancel",dv,!0),document.body.style.userSelect="",delete document.body.dataset.dragging}function cv(e){if(_e.pointerX=e.clientX,_e.pointerY=e.clientY,_e.phase==="pending"){const t=e.clientX-ov,n=e.clientY-lv;t*t+n*n>=Pc*Pc&&(_e.phase="dragging")}}function uv(e){_e.phase==="dragging"&&(V2(),iv=performance.now()+50),fv()}function dv(e){fv()}function Dc(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 jc(e){if(e.kind!=="float")return;const t=ln.tree,n=t.floats.findIndex(r=>r.id===e.floatId);n<0||Ed(t.floats[n].content)&&t.floats.splice(n,1)}function V2(){const{source:e,target:t}=_e;if(!e||!t)return;const n=Dc(e.sourceRoot),r=Dc(t.root);if(!n||!r)return;if(t.kind==="strip"){const a=t.tabsNode.tabs.findIndex(o=>o.slotId===e.slotId);if(a>=0){by(t.tabsNode,a,t.insertIndex),vr(n),r!==n&&vr(r),jc(e.sourceRoot);return}}const s=Na(n,e.slotId);s&&(t.kind==="strip"?my(t.tabsNode,s,t.insertIndex):Ud(r,t.path,s,t.side),vr(n),r!==n&&vr(r),jc(e.sourceRoot))}function fv(){_e.phase="idle",_e.source=null,_e.target=null,q2()}function Zi(e){_e.phase==="dragging"&&(_e.target=e)}function _r(e){_e.phase==="dragging"&&_e.target&&(e&&!e(_e.target)||(_e.target=null))}var B2=C("<div></div>"),F2=C('<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),U2=C("<!> <!>",1),H2=C("<div><!></div>");function Mc(e,t){re(t,!0);let n=V(void 0),r=V(null);const s=U(()=>_e.phase==="dragging"),a=U(()=>{let g;return t.rootRef.kind==="docked"?g=ln.root:g=ln.tree.floats.find(b=>b.id===t.rootRef.floatId)?.content??null,g?Hd(g,t.path):!1});function o(g,S,b){const _=b.left+b.width/2,w=b.top+b.height/2,y=g-_,m=S-w,A=y/b.width,j=m/b.height;return Math.abs(A)>Math.abs(j)?A<0?"left":"right":j<0?"top":"bottom"}function l(g){if(!i(n))return;if(i(a)){i(r)!==null&&(x(r,null),_r(_=>_.kind==="split"&&_.path.join("/")===t.path.join("/")));return}const S=i(n).getBoundingClientRect();if(g.clientX<S.left||g.clientX>S.right||g.clientY<S.top||g.clientY>S.bottom){i(r)!==null&&(x(r,null),_r(_=>_.kind==="split"&&_.path.join("/")===t.path.join("/")));return}const b=o(g.clientX,g.clientY,S);if(b!==i(r)){x(r,b,!0);const _={kind:"split",root:t.rootRef,path:[...t.path],side:b};Zi(_)}}function c(){i(r)!==null&&(x(r,null),_r(g=>g.kind==="split"&&g.path.join("/")===t.path.join("/")))}var u=H2();let d;var f=p(u);{var h=g=>{var S=U2(),b=he(S);{var _=m=>{var A=B2();N(()=>ce(A,1,`quad-highlight quad-${i(r)??""}`,"svelte-re71zu")),I(m,A)};H(b,m=>{i(r)&&m(_)})}var w=k(b,2);{var y=m=>{var A=F2();Gt(6),I(m,A)};H(w,m=>{i(s)&&m(y)})}I(g,S)};H(f,g=>{i(a)||g(h)})}v(u),Le(u,g=>x(n,g),()=>i(n)),N(()=>d=ce(u,1,"slot-drop-zone svelte-re71zu",null,d,{active:i(s),locked:i(a)})),B("pointermove",u,l),ze("pointerleave",u,c),I(e,u),se()}le(["pointermove"]);var K2=C('<div class="tab-slot-wrapper svelte-1gw9g38"><!> <!></div>'),W2=C('<div class="empty-tabs-custom svelte-1gw9g38"></div>'),Y2=C('<div class="empty-tabs-default svelte-1gw9g38"><div class="empty-tabs-drop svelte-1gw9g38"></div></div>'),G2=C('<div class="empty-tabs-placeholder svelte-1gw9g38"><!></div>'),X2=C('<div class="leaf-slot-wrapper svelte-1gw9g38"><!> <!></div>');function dl(e,t){re(t,!0);let n=G(t,"path",19,()=>[]),r=G(t,"rootRef",19,()=>({kind:"docked"}));const s=U(()=>{let y;return r().kind==="docked"?y=ln.root:y=ln.tree.floats.find(A=>A.id===r().floatId)?.content??null,y?us(y,n()):null});function a(y){return{get isDragging(){return _e.phase==="dragging"},onPointerDown(m,A,j){const P=y.tabs[m];P&&O2(P.slotId,P,r(),A,j)},onStripHover(m,A,j,P){if(j<m.top||j>m.bottom)return _r(R=>R.kind==="strip"&&R.tabsNode===y),null;let D=P.length;for(let R=0;R<P.length;R++){const O=P[R],E=O.left+O.width/2;if(A<E){D=R;break}}const M=_e.source;if(M){const R=y.tabs.findIndex(O=>O.slotId===M.slotId);R>=0&&R<D&&(D-=1)}return Zi({kind:"strip",root:r(),tabsNode:y,insertIndex:D}),D},onStripLeave(){_r(m=>m.kind==="strip"&&m.tabsNode===y)}}}function o(y){return y.type==="split"?y:null}function l(y){return y.type==="tabs"?y:null}function c(y){return y.type==="slot"?y:null}function u(y){return y.map(m=>ky(m.slotId)||void 0)}function d(y){return y.map(m=>wy(m.slotId)||void 0)}function f(y,m){const A=y[m];A&&Qo(A.slotId)}function h(y,m){m(y)}function g(y,m){_e.phase==="dragging"&&Zi({kind:"strip",root:r(),tabsNode:m,insertIndex:0})}function S(){_r(y=>y.kind==="strip"&&y.insertIndex===0)}var b=Ye(),_=he(b);{var w=y=>{var m=Ye(),A=he(m);{var j=M=>{const R=(E,T=wt)=>{{let q=U(()=>[...n(),T()]);dl(E,{get rootRef(){return r()},get path(){return i(q)}})}},O=U(()=>o(i(s)));k2(M,{get direction(){return i(O).direction},get sizes(){return i(O).sizes},get pinned(){return i(O).pinned},get collapsed(){return i(O).collapsed},get fixed(){return i(O).fixed},get count(){return i(O).children.length},get pane(){return R},onResize:(E,T)=>i(O).sizes[E]=T,onCollapseToggle:(E,T)=>{i(O).collapsed||(i(O).collapsed=i(O).children.map(()=>!1)),i(O).collapsed[E]=T}})},P=M=>{const R=U(()=>l(i(s)));var O=Ye(),E=he(O);{var T=L=>{const F=(W,J=wt)=>{const Q=U(()=>i(R)?.tabs[J()]);var ae=Ye(),K=he(ae);{var X=ie=>{var fe=K2(),Z=p(fe);{let ke=U(()=>({type:"slot",slotId:i(Q).slotId,viewId:i(Q).viewId}));Rc(Z,{get node(){return i(ke)},get label(){return i(Q).label},get meta(){return i(Q).meta}})}var ve=k(Z,2);Mc(ve,{get rootRef(){return r()},get path(){return n()}}),v(fe),I(ie,fe)};H(K,ie=>{i(Q)&&ie(X)})}I(W,ae)},Y=U(()=>a(i(R)));{let W=U(()=>i(R).tabs.map(X=>X.label)),J=U(()=>i(R).tabs.map(X=>X.icon)),Q=U(()=>u(i(R).tabs)),ae=U(()=>d(i(R).tabs)),K=U(()=>i(R).tabs.map(X=>X.slotId));P2(L,{get labels(){return i(W)},get icons(){return i(J)},get activeTab(){return i(R).activeTab},onActiveChange:X=>i(R).activeTab=X,get body(){return F},get dragController(){return i(Y)},get clickGuard(){return L2},get closable(){return i(Q)},get dirty(){return i(ae)},onClose:X=>f(i(R).tabs,X),get tabIds(){return i(K)}})}},q=L=>{var F=G2(),Y=p(F);{var W=Q=>{var ae=W2();od(ae,(K,X)=>h?.(K,X),()=>i(R).emptyRenderer),I(Q,ae)},J=Q=>{var ae=Y2(),K=p(ae);v(ae),B("pointermove",K,X=>g(X,i(R))),ze("pointerleave",K,S),I(Q,ae)};H(Y,Q=>{i(R).emptyRenderer?Q(W):Q(J,-1)})}v(F),I(L,F)};H(E,L=>{i(R)&&i(R).tabs.length>0?L(T):i(R)?.persistent&&L(q,1)})}I(M,O)},D=M=>{const R=U(()=>c(i(s)));var O=X2(),E=p(O);Rc(E,{get node(){return i(R)}});var T=k(E,2);Mc(T,{get rootRef(){return r()},get path(){return n()}}),v(O),I(M,O)};H(A,M=>{i(s).type==="split"?M(j):i(s).type==="tabs"?M(P,1):M(D,-1)})}I(y,m)};H(_,y=>{i(s)&&y(w)})}I(e,b),se()}le(["pointermove"]);var J2=C('<span class="drag-preview-icon svelte-133fiip"> </span>'),Z2=C('<div class="drag-preview svelte-133fiip"><!> <span class="drag-preview-label svelte-133fiip"> </span></div>');function Q2(e,t){re(t,!0);const n=U(()=>_e.phase==="dragging"&&!!_e.source),r=U(()=>_e.source?_e.pointerX-_e.source.offsetX:0),s=U(()=>_e.source?_e.pointerY-_e.source.offsetY:0),a=U(()=>_e.source?.startRect.width??0),o=U(()=>_e.source?.startRect.height??0),l=U(()=>_e.source?.entry.label??""),c=U(()=>_e.source?.entry.icon);var u=Ye(),d=he(u);{var f=h=>{var g=Z2(),S=p(g);{var b=y=>{var m=J2(),A=p(m,!0);v(m),N(()=>z(A,i(c))),I(y,m)};H(S,y=>{i(c)&&y(b)})}var _=k(S,2),w=p(_,!0);v(_),v(g),N(()=>{Ke(g,`left: ${i(r)??""}px; top: ${i(s)??""}px; width: ${i(a)??""}px; height: ${i(o)??""}px;`),z(w,i(l))}),I(h,g)};H(d,h=>{i(n)&&h(f)})}I(e,u),se()}const yr=new Map;let ga=!1;function vv(e){if(yr.size===0)return;const t=e.target;if(!t)return;const n=Array.from(yr.keys());for(const r of n){const s=yr.get(r);s&&(s.contains(t)||lt.close(r))}}function $2(){ga||typeof document>"u"||(document.addEventListener("pointerdown",vv,!0),ga=!0)}function eE(){ga&&(yr.size>0||(document.removeEventListener("pointerdown",vv,!0),ga=!1))}function tE(e,t){yr.set(e,t),$2()}function nE(e){yr.delete(e),eE()}var rE=C('<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>'),sE=C('<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 aE(e,t){re(t,!0);const n=G(t,"entry",7);let r=V(!1),s={x:0,y:0},a=V(void 0);xe(()=>{if(n().dismissable&&i(a))return tE(n().id,i(a)),()=>nE(n().id)}),xe(()=>{if(!i(a))return;const w=Zg(n().id);if(!w)return;const y=i(a).parentNode;return w.appendChild(i(a)),()=>{i(a)?.parentNode===w&&y&&y.appendChild(i(a))}});function o(w){if(w.button!==0||w.target.closest(".sh3-float-close"))return;w.currentTarget.setPointerCapture(w.pointerId),x(r,!0),s={x:w.clientX-n().position.x,y:w.clientY-n().position.y},lt.focus(n().id)}function l(w){i(r)&&(n().position.x=w.clientX-s.x,n().position.y=w.clientY-s.y)}function c(w){if(!i(r))return;x(r,!1);const y=w.currentTarget;y.hasPointerCapture(w.pointerId)&&y.releasePointerCapture(w.pointerId)}function u(){lt.focus(n().id)}function d(w){w.stopPropagation(),lt.close(n().id)}var f=sE();let h;var g=p(f);{var S=w=>{var y=rE(),m=p(y),A=p(m,!0);v(m);var j=k(m,2);v(y),N(()=>z(A,n().title)),B("pointerdown",y,o),B("pointermove",y,l),B("pointerup",y,c),ze("pointercancel",y,c),B("click",j,d),I(w,y)};H(g,w=>{n().title&&w(S)})}var b=k(g,2),_=p(b);{let w=U(()=>({kind:"float",floatId:n().id}));dl(_,{get rootRef(){return i(w)},path:[]})}v(b),v(f),Le(f,w=>x(a,w),()=>i(a)),N(()=>{ne(f,"aria-label",n().title??"Float panel"),h=Ke(f,"",h,{left:`${n().position.x??""}px`,top:`${n().position.y??""}px`,width:`${n().size.w??""}px`,height:`${n().size.h??""}px`})}),B("click",f,u),I(e,f),se()}le(["click","pointerdown","pointermove","pointerup"]);var iE=C('<div class="sh3-float-layer svelte-1rzcset"></div>');function oE(e,t){re(t,!0);const n=U(()=>ln.floats);var r=iE();me(r,21,()=>i(n),s=>s.id,(s,a)=>{aE(s,{get entry(){return i(a)}})}),v(r),I(e,r),se()}var lE=C('<div class="guest-signin-error svelte-pymkh"> </div>'),cE=C('<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>'),uE=C('<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),dE=C('<div class="guest-banner-slot"><!></div>');function fE(e,t){re(t,!0);let n=V(!1),r=V(""),s=V(""),a=V(null),o=V(!1);async function l(){if(!i(r).trim()||!i(s).trim()||i(o))return;x(o,!0),x(a,null);const h=await mf(i(r).trim(),i(s).trim());x(o,!1),h.ok?x(n,!1):x(a,h.error,!0)}var c=dE(),u=p(c);{var d=h=>{var g=uE(),S=he(g),b=k(p(S),2);v(S);var _=k(S,2);{var w=y=>{var m=cE(),A=p(m),j=p(A),P=p(j);ge(P);var D=k(P,2);ge(D);var M=k(D,2),R=p(M),O=p(R,!0);v(R);var E=k(R,2);v(M),v(j);var T=k(j,2);{var q=L=>{var F=lE(),Y=p(F,!0);v(F),N(()=>z(Y,i(a))),I(L,F)};H(T,L=>{i(a)&&L(q)})}v(A),v(m),N(L=>{P.disabled=i(o),D.disabled=i(o),R.disabled=L,z(O,i(o)?"Signing in...":"Sign in")},[()=>i(o)||!i(r).trim()||!i(s).trim()]),ze("submit",j,L=>{L.preventDefault(),l()}),Ee(P,()=>i(r),L=>x(r,L)),Ee(D,()=>i(s),L=>x(s,L)),B("click",E,()=>{x(n,!1),x(a,null)}),I(y,m)};H(_,y=>{i(n)&&y(w)})}B("click",b,()=>{x(n,!0)}),I(h,g)},f=U(()=>bf());H(u,h=>{i(f)&&h(d)})}v(c),I(e,c),se()}le(["click"]);var vE=C('<code class="sh3-consent-scope svelte-14me5sj"> </code>'),hE=C('<dt class="svelte-14me5sj">Peer</dt> <dd class="svelte-14me5sj"> </dd>',1),pE=C('<dt class="svelte-14me5sj">Expires in</dt> <dd class="svelte-14me5sj"> </dd>',1),mE=C('<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 bE(e,t){re(t,!0);let n=V(null);xe(()=>If(u=>{x(n,u,!0)}));function r(){i(n)&&(Hi(i(n).requestId,!0),x(n,null))}function s(){i(n)&&(Hi(i(n).requestId,!1),x(n,null))}var a=Ye(),o=he(a);{var l=c=>{var u=mE(),d=p(u),f=p(d),h=p(f),g=p(h,!0);v(h),Gt(),v(f);var S=k(f,2),b=k(p(S),2),_=p(b,!0);v(b);var w=k(b,4);me(w,20,()=>i(n).scopes,R=>R,(R,O)=>{var E=vE(),T=p(E,!0);v(E),N(()=>z(T,O)),I(R,E)}),v(w);var y=k(w,2);{var m=R=>{var O=hE(),E=k(he(O),2),T=p(E);v(E),N(()=>z(T,`${i(n).peerRole??"—"??""}${i(n).peerId?` · ${i(n).peerId}`:""}`)),I(R,O)};H(y,R=>{(i(n).peerRole||i(n).peerId)&&R(m)})}var A=k(y,2);{var j=R=>{var O=pE(),E=k(he(O),2),T=p(E);v(E),N(q=>z(T,`${q??""}s`),[()=>Math.round(i(n).expiresIn/1e3)]),I(R,O)};H(A,R=>{i(n).expiresIn&&R(j)})}v(S);var P=k(S,2),D=p(P);Mr(D,!0);var M=k(D,2);v(P),v(d),v(u),N(()=>{z(g,i(n).shardId),z(_,i(n).label)}),B("click",D,s),B("click",M,r),I(c,u)};H(o,c=>{i(n)&&c(l)})}I(e,a),se()}le(["click"]);var gE=C('<span class="sh3-brand svelte-18lk809">SH3</span>'),_E=C('<span class="sh3-brand sh3-brand-app svelte-18lk809"> </span>'),yE=C('<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),wE=C('<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=C('<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),xE=C('<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),SE=C('<div class="sh3-brand-slot svelte-18lk809"><!></div>');function EE(e,t){re(t,!0);const n=U(()=>Jt().activeAppId),r=U(xg),s=U(()=>Zn.activeProjectId),a=U(()=>i(n)?Cn(i(n))?.manifest.label??i(n):null),o=U(()=>i(r)?Cn(i(r))?.manifest.label??i(r):null),l=U(()=>i(s)?zt.projects.find(A=>A.id===i(s))?.name??i(s):null),c=U(()=>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(){Tf(null)}function f(){i(n)&&Ds()}var h=SE(),g=p(h);{var S=A=>{var j=gE();I(A,j)},b=A=>{var j=_E(),P=p(j,!0);v(j),N(()=>z(P,i(a))),I(A,j)},_=A=>{var j=yE(),P=k(he(j),4),D=p(P,!0);v(P),N(()=>z(D,i(o))),B("click",P,u),I(A,j)},w=A=>{var j=wE(),P=he(j),D=k(P,4),M=p(D,!0);v(D),N(()=>z(M,i(l))),B("click",P,d),I(A,j)},y=A=>{var j=kE(),P=he(j),D=p(P,!0);v(P);var M=k(P,4),R=p(M,!0);v(M),N(()=>{z(D,i(l)),z(R,i(a))}),I(A,j)},m=A=>{var j=xE(),P=he(j),D=k(P,4),M=p(D,!0);v(D);var R=k(D,4),O=p(R,!0);v(R),N(()=>{z(M,i(l)),z(O,i(o))}),B("click",P,d),B("click",D,f),B("click",R,u),I(A,j)};H(g,A=>{i(c)==="brand"?A(S):i(c)==="app"?A(b,1):i(c)==="breadcrumb"?A(_,2):i(c)==="project-home"?A(w,3):i(c)==="project-app"?A(y,4):i(c)==="project-breadcrumb"&&A(m,5)})}v(h),I(e,h),se()}le(["click"]);const IE=Object.freeze([{id:"file",label:"File"},{id:"edit",label:"Edit"},{id:"view",label:"View"},{id:"window",label:"Window"},{id:"help",label:"Help"}]);function _a(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function AE(e,t){if(e==null)return[];if(t==null)return IE.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 CE(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)||!Ps(a.action.scope,t,a.ownerShardId)||(s.add(a.action.id),r.push({id:a.action.id,label:Bt(a.action),shortcut:Rs(a.action,t.bindings,t.platform),group:a.action.group??"",icon:a.action.icon,checked:_a(a.action.checked),disabled:_a(a.action.disabled),submenu:a.action.submenu===!0}));return r}function TE(e,t,n){const r=[],s=new Set;for(const a of e)a.action.submenuOf!==n||s.has(a.action.id)||!Ps(a.action.scope,t,a.ownerShardId)||(s.add(a.action.id),r.push({id:a.action.id,label:Bt(a.action),shortcut:Rs(a.action,t.bindings,t.platform),group:a.action.group??"",icon:a.action.icon,checked:_a(a.action.checked),disabled:_a(a.action.disabled),submenu:a.action.submenu===!0}));return r}var RE=C('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),PE=C('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),DE=C('<button type="button" class="sh3-menubar-button svelte-bke3dt"><!> <span class="sh3-menubar-label"> </span> <!></button>');function jE(e,t){re(t,!0);let n=V(void 0);function r(b){const _=new Map,w=[];for(const y of b){const m=y.group||"";_.has(m)||(_.set(m,[]),w.push(m)),_.get(m).push(y)}return w.map(y=>({id:`group:${y||"_default"}`,items:_.get(y)}))}function s(b,_,w){const y=et().find(m=>m.action.id===b);if(!(!y||typeof y.action.run!="function")){try{y.action.run({action:{id:b,label:Bt(y.action)},appId:_.activeAppId,viewId:_.focusedViewId??void 0,selection:_.selection??void 0,invokedVia:"palette",dispatch:()=>{}})}catch(m){console.error(`[sh3] menu-bar action "${b}" threw:`,m)}w.close()}}function a(b,_,w){const y=document.querySelector(".sh3-popup-host");if(!y)return;const m=document.createElement("div");m.className="sh3-popup-submenu",m.style.position="absolute",m.style.pointerEvents="auto";const j=(y.querySelector(".sh3-ctx-active")??y).getBoundingClientRect();m.style.left=`${j.right+2}px`,m.style.top=`${j.top}px`,y.appendChild(m);const P=TE(et(),_,b),D=Ne(va,{target:m,props:{sections:r(P),onInvoke:M=>s(M,_,w),onDismiss:()=>{Ge(D),m.remove()}}})}function o(){if(!i(n))return;const b=Jt(),_=Mi.show(va,{anchor:i(n),placement:"bottom-start"},{sections:r(t.items),onInvoke:w=>{const y=et().find(m=>m.action.id===w);if(y){if(y.action.submenu===!0){a(w,b,_);return}s(w,b,_)}},onDismiss:()=>Mi.close()})}const l=U(()=>t.container.iconPosition??"before");var c=DE(),u=p(c);{var d=b=>{var _=RE();N(()=>ne(_,"data-icon",t.container.icon)),I(b,_)};H(u,b=>{t.container.icon&&i(l)==="before"&&b(d)})}var f=k(u,2),h=p(f,!0);v(f);var g=k(f,2);{var S=b=>{var _=PE();N(()=>ne(_,"data-icon",t.container.icon)),I(b,_)};H(g,b=>{t.container.icon&&i(l)==="after"&&b(S)})}v(c),Le(c,b=>x(n,b),()=>i(n)),N(()=>z(h,t.container.label)),B("click",c,o),I(e,c),se()}le(["click"]);var ME=C('<div class="sh3-menubar svelte-7gc0wa" role="menubar"></div>');function zE(e,t){re(t,!0);const n=U(Jt),r=U(()=>i(n).activeAppId),s=U(()=>{if(i(r))return Cn(i(r))?.manifest.menus}),a=U(()=>AE(i(r),i(s))),o=U(()=>{const c=[],u=et();for(const d of i(a)){const f=CE(u,i(n),d.id);f.length>0&&c.push({container:d,items:f})}return c});var l=ME();me(l,21,()=>i(o),({container:c,items:u})=>c.id,(c,u)=>{let d=()=>i(u).container,f=()=>i(u).items;jE(c,{get container(){return d()},get items(){return f()}})}),v(l),I(e,l),se()}var LE=C('<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>'),OE=C('<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>'),NE=C('<div class="shell-overlay-root svelte-187fra4"><!></div>'),qE=C('<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 VE(e,t){re(t,!0);const n=U(Fi),r=U(Tr),s=U(ht),a=U(()=>Zd()==="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:P}of o){const D=l[P];D&&wg(P,D)}return()=>{for(const{name:P}of o)kg(P)}}),xe(()=>{const P=ln.tree;return Xg(P.floats,()=>({w:window.innerWidth,h:window.innerHeight})),()=>Jg()}),xe(()=>{ln.tree,Ly()}),xe(()=>Fi()?Vw():void 0);var c=qE(),u=p(c),d=p(u),f=p(d),h=p(f);v(f),v(d);var g=k(d,2);EE(g,{});var S=k(g,2);zE(S,{});var b=k(S,2);{var _=P=>{var D=OE(),M=p(D),R=p(M,!0);v(M);var O=k(M,2),E=p(O,!0);v(O);var T=k(O,2);{var q=F=>{var Y=LE(),W=p(Y),J=p(W);v(W),v(Y),N(()=>ne(J,"href",`${Qn}#log-out`)),B("click",Y,()=>Sw()),I(F,Y)},L=U(()=>!Iw());H(T,F=>{i(L)&&F(q)})}v(D),N(()=>{z(R,i(r).displayName),z(E,i(s)?"admin":"user")}),I(P,D)};H(b,P=>{i(n)&&i(r)&&P(_)})}v(u);var w=k(u,2);fE(w,{});var y=k(w,2),m=p(y);dl(m,{}),v(y);var A=k(y,4);me(A,21,()=>o,({layer:P,name:D})=>P,(P,D)=>{let M=()=>i(D).layer,R=()=>i(D).name;var O=NE(),E=p(O);{var T=L=>{oE(L,{})},q=L=>{Q2(L,{})};H(E,L=>{R()==="floating"?L(T):R()==="drag-preview"&&L(q,1)})}v(O),Le(O,(L,F)=>l[F]=L,L=>l?.[L],()=>[R()]),N(()=>{ne(O,"data-shell-overlay",R()),ne(O,"data-shell-layer",M()),Ke(O,`z-index: var(--shell-z-layer-${M()??""});`)}),I(P,O)}),v(A);var j=k(A,2);bE(j,{}),v(c),N(()=>{d.disabled=i(a),ne(h,"href",`${Qn}#house`)}),B("click",d,()=>Ds()),I(e,c),se()}le(["click"]);var BE=C('<button type="button" class="signin-link svelte-lh4k15">Create an account</button>'),FE=C('<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),UE=C('<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),HE=C('<div class="signin-error svelte-lh4k15"> </div>'),KE=C('<div class="signin-wall svelte-lh4k15"><div class="signin-card svelte-lh4k15"><h1 class="signin-brand svelte-lh4k15">SH3</h1> <!> <!></div></div>');function WE(e,t){re(t,!0);let n=V("login"),r=V(""),s=V(""),a=V(""),o=V(null),l=V(!1);async function c(){if(!i(r).trim()||!i(s).trim()||i(l))return;x(l,!0),x(o,null);const y=await mf(i(r).trim(),i(s).trim());x(l,!1),y.ok?t.onSuccess():x(o,y.error,!0)}async function u(){if(!i(r).trim()||!i(s).trim()||i(l))return;x(l,!0),x(o,null);const y=await xw(i(r).trim(),i(s).trim(),i(a).trim()||void 0);x(l,!1),y.ok?t.onSuccess():x(o,y.error,!0)}function d(y){x(n,y,!0),x(o,null)}var f=KE(),h=p(f),g=k(p(h),2);{var S=y=>{var m=FE(),A=he(m),j=p(A);ge(j);var P=k(j,2);ge(P);var D=k(P,2),M=p(D,!0);v(D),v(A);var R=k(A,2);{var O=E=>{var T=BE();B("click",T,()=>d("register")),I(E,T)};H(R,E=>{t.selfRegistration&&E(O)})}N(E=>{j.disabled=i(l),P.disabled=i(l),D.disabled=E,z(M,i(l)?"Signing in...":"Sign in")},[()=>i(l)||!i(r).trim()||!i(s).trim()]),ze("submit",A,E=>{E.preventDefault(),c()}),Ee(j,()=>i(r),E=>x(r,E)),Ee(P,()=>i(s),E=>x(s,E)),I(y,m)},b=y=>{var m=UE(),A=he(m),j=p(A);ge(j);var P=k(j,2);ge(P);var D=k(P,2);ge(D);var M=k(D,2),R=p(M,!0);v(M),v(A);var O=k(A,2);N(E=>{j.disabled=i(l),P.disabled=i(l),D.disabled=i(l),M.disabled=E,z(R,i(l)?"Creating...":"Create account")},[()=>i(l)||!i(r).trim()||!i(s).trim()]),ze("submit",A,E=>{E.preventDefault(),u()}),Ee(j,()=>i(r),E=>x(r,E)),Ee(P,()=>i(a),E=>x(a,E)),Ee(D,()=>i(s),E=>x(s,E)),B("click",O,()=>d("login")),I(y,m)};H(g,y=>{i(n)==="login"?y(S):y(b,-1)})}var _=k(g,2);{var w=y=>{var m=HE(),A=p(m,!0);v(m),N(()=>z(A,i(o))),I(y,m)};H(_,y=>{i(o)&&y(w)})}v(h),v(f),I(e,f),se()}le(["click"]);async function YE(e){const t=e?.serverUrl??"",n=await y3();n.backends&&(Wl("workspace",n.backends.workspace),Wl("user",n.backends.user)),n.localOwner&&Ew(),gf(t),i1();const r=typeof e?.target=="string"?document.querySelector(e.target):e?.target??document.getElementById("app");if(!r)throw new Error("SH3: mount target not found");let s=null;if(!n.localOwner)try{const o=await fetch(`${t}/api/boot`,{credentials:"include"});o.ok&&(s=await o.json())}catch{}if(n.localOwner)Js("local");else if(s){cc(t,s),Js(s.tenantId);const{auth:o,session:l}=s;if(!l&&o.required&&!o.guestAllowed){await GE(r,s);const c=await fetch(`${t}/api/boot`,{credentials:"include"});c.ok&&(s=await c.json(),cc(t,s),Js(s.tenantId))}}if(e?.discoveredPackages?.length)for(const o of e.discoveredPackages)try{const l=await fetch(o.bundleUrl);if(!l.ok){console.warn(`[sh3] Failed to fetch discovered package "${o.id}": HTTP ${l.status}`);continue}const c=await l.arrayBuffer(),u=await js(c);il(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)v2(o);if(e?.apps)for(const o of e.apps)Po(o);const a={};e?.excludeShards&&(a.excludeShards=e.excludeShards),await p2(a),ff(),Ne(VE,{target:r})}function GE(e,t){return new Promise(n=>{const r=Ne(WE,{target:e,props:{selfRegistration:t.auth.selfRegistration,onSuccess:()=>{Ge(r),n()}}})})}const fl=window.location.origin;gf(fl);pf(new hw(fl));let hv=[];try{const e=await fetch("/api/packages");e.ok&&(hv=await e.json())}catch{}await YE({discoveredPackages:hv,serverUrl:fl});
|
|
24
|
-
//# sourceMappingURL=index-BXigV0NV.js.map
|