sh3-server 0.14.3 → 0.15.1
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-vrVBfm18.css → index-C6k1cYzj.css} +1 -1
- package/app/assets/index-Drf5d4ev.js +24 -0
- package/app/assets/index-Drf5d4ev.js.map +1 -0
- package/app/index.html +2 -2
- package/package.json +1 -1
- package/app/assets/index-cLzwBtUk.js +0 -24
- package/app/assets/index-cLzwBtUk.js.map +0 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/tauri-backend-BNhKUiUG.js","assets/index-56jHh6nx.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const a of s)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(s){const a={};return s.integrity&&(a.integrity=s.integrity),s.referrerPolicy&&(a.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?a.credentials="include":s.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(s){if(s.ep)return;s.ep=!0;const a=n(s);fetch(s.href,a)}})();const Xv="modulepreload",Jv=function(e){return"/"+e},El={},Sr=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=Jv(c),c in El)return;El[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":Xv,u||(f.as="script"),f.crossOrigin="",f.href=c,l&&f.setAttribute("nonce",l),document.head.appendChild(f),u)return new Promise((p,b)=>{f.addEventListener("load",p),f.addEventListener("error",()=>b(new Error(`Unable to preload CSS for ${c}`)))})}))}function a(o){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return s.then(o=>{for(const l of o||[])l.status==="rejected"&&a(l.reason);return t().catch(a)})},Zv=1,Qv=2,Bc=4,$v=8,eh=16,th=1,Fc=4,nh=8,rh=16,sh=1,ah=2,ih=4,ao=1,Uc=2,oh=4,lh=8,Sa="[",Ea="[!",Il="[?",Ia="]",Wn={},Te=Symbol(),kt=Symbol("filename"),cr=Symbol("hmr"),Hc="http://www.w3.org/1999/xhtml",_s="http://www.w3.org/2000/svg",io="http://www.w3.org/1998/Math/MathML",Kc="@attach",Wc=!1;var Mr=Array.isArray,ch=Array.prototype.indexOf,Er=Array.prototype.includes,Aa=Array.from,ra=Object.keys,Yn=Object.defineProperty,Wt=Object.getOwnPropertyDescriptor,Yc=Object.getOwnPropertyDescriptors,Gc=Object.prototype,uh=Array.prototype,Ca=Object.getPrototypeOf,Al=Object.isExtensible,dh=Object.prototype.hasOwnProperty;function ur(e){return typeof e=="function"}const xt=()=>{};function Cl(e){return typeof e?.then=="function"}function fh(e){return e()}function wi(e){for(var t=0;t<e.length;t++)e[t]()}function Xc(){var e,t,n=new Promise((r,s)=>{e=r,t=s});return{promise:n,resolve:e,reject:t}}function vh(e,t,n=!1){return e===void 0?n?t():t:e}function Jc(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 hh(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 Ze=2,Gn=4,ys=8,oo=1<<24,Yt=16,Zt=32,gn=64,ki=128,Lt=512,Fe=1024,Je=2048,Qt=4096,ot=8192,vt=16384,wn=32768,xi=1<<25,$t=65536,as=1<<17,Zc=1<<18,Dn=1<<19,Qc=1<<20,an=1<<25,Xn=65536,Si=1<<21,Ir=1<<22,Cn=1<<23,tt=Symbol("$state"),Ta=Symbol("legacy props"),ph=Symbol(""),mh=Symbol("proxy path"),bh=Symbol("hmr anchor"),nn=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},sr=!!globalThis.document?.contentType&&globalThis.document.contentType.includes("xml"),$c=1,ws=3,kn=8,eu=11;function tu(e){throw new Error("https://svelte.dev/e/experimental_async_required")}function gh(){throw new Error("https://svelte.dev/e/invalid_default_snippet")}function Tl(){throw new Error("https://svelte.dev/e/invalid_snippet_arguments")}function Or(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function _h(){throw new Error("https://svelte.dev/e/missing_context")}function yh(){throw new Error("https://svelte.dev/e/snippet_without_render_tag")}function wh(e){throw new Error("https://svelte.dev/e/store_invalid_shape")}function kh(){throw new Error("https://svelte.dev/e/svelte_element_invalid_this_value")}function xh(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Sh(e,t){throw new Error("https://svelte.dev/e/component_api_changed")}function Eh(e,t){throw new Error("https://svelte.dev/e/component_api_invalid_new")}function Ih(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Ah(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Ch(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Th(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Rh(){throw new Error("https://svelte.dev/e/effect_pending_outside_reaction")}function jh(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Ph(){throw new Error("https://svelte.dev/e/fork_discarded")}function Dh(){throw new Error("https://svelte.dev/e/fork_timing")}function zh(){throw new Error("https://svelte.dev/e/get_abort_signal_outside_reaction")}function Mh(){throw new Error("https://svelte.dev/e/hydration_failed")}function nu(e){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}function Oh(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Lh(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Nh(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function qh(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Vh(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}function Bh(e,t){console.warn("https://svelte.dev/e/assignment_value_stale")}function Fh(e,t){console.warn("https://svelte.dev/e/binding_property_non_reactive")}function Uh(e){console.warn("https://svelte.dev/e/console_log_state")}function Hh(){console.warn("https://svelte.dev/e/derived_inert")}function Kh(e,t){console.warn("https://svelte.dev/e/event_handler_invalid")}function Wh(e){console.warn("https://svelte.dev/e/hydratable_missing_but_expected")}function ks(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function Yh(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_binding")}function Gh(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_mutation")}function Xh(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function ru(e){console.warn("https://svelte.dev/e/state_proxy_equality_mismatch")}function Jh(){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 ks(),Wn;return ue=e}function ct(){return Ie(Et(ue))}function v(e){if(te){if(Et(ue)!==null)throw ks(),Wn;ue=e}}function Zh(e){te&&(ue=e.content)}function Gt(e=1){if(te){for(var t=e,n=ue;t--;)n=Et(n);ue=n}}function Jn(e=!0){for(var t=0,n=ue;;){if(n.nodeType===kn){var r=n.data;if(r===Ia){if(t===0)return n;t-=1}else(r===Sa||r===Ea||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var s=Et(n);e&&n.remove(),n=s}}function lo(e){if(!e||e.nodeType!==kn)throw ks(),Wn;return e.data}function su(e){return e===this.v}function au(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function iu(e){return!au(e,this.v)}let Qh=!1;function $h(e){console.warn("https://svelte.dev/e/dynamic_void_element_content")}const ep=[];function Zn(e,t=!1,n=!1){return Bs(e,new Map,"",ep,null,n)}function Bs(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(Mr(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]=Bs(u,t,n,r,null,a))}return l}if(Ca(e)===Gc){l={},t.set(e,l),s!==null&&t.set(s,l);for(var d of Object.keys(e))l[d]=Bs(e[d],t,n,r,null,a);return l}if(e instanceof Date)return structuredClone(e);if(typeof e.toJSON=="function"&&!a)return Bs(e.toJSON(),t,n,r,e)}if(e instanceof EventTarget)return e;try{return structuredClone(e)}catch{return e}}let ir=null;function ou(e,t){const n=e.v;if(n===Te)return;const r=tp(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&&tt in n?Zn(n,!0):n),r==="$derived"){const c=new Set(e.deps);for(const u of c)ou(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 tp(e){return e.f&(Ze|Ir)?"$derived":e.label?.startsWith("$")?"store":"$state"}function np(e,t){var n=ir;try{ir={entries:new Map,reaction:be};var r=performance.now(),s=t(),a=(performance.now()-r).toFixed(2),o=we(e);if(!As())console.log(`${o} %cran outside of an effect (${a}ms)`,"color: grey");else if(ir.entries.size===0)console.log(`${o} %cno reactive dependencies (${a}ms)`,"color: grey");else{console.group(`${o} %c(${a}ms)`,"color: grey");var l=ir.entries;we(()=>{for(const[c,u]of l)ou(c,u)}),ir=null,console.groupEnd()}return s}finally{ir=n}}function rp(e,t){return e.label=t,lu(e.v,t),e}function lu(e,t){return e?.[mh]?.(t),e}function sp(e){const t=new Error,n=ap();return n.length===0?null:(n.unshift(`
|
|
3
|
+
`),Yn(t,"stack",{value:n.join(`
|
|
4
|
+
`)}),Yn(t,"name",{value:e}),t)}function ap(){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 Ar(e){Se=e}let Fs=null;function ip(e,t,n,r,s,a){const o=Fs;Fs={type:t,file:n[kt],line:r,column:s,parent:o,...a};try{return e()}finally{Fs=o}}let co=null;function Rl(e){co=e}function op(){const e={};return[()=>(cu(e)||_h(),uo(e)),t=>fo(e,t)]}function uo(e){return Ra().get(e)}function fo(e,t){return Ra().set(e,t),t}function cu(e){return Ra().has(e)}function lp(){return Ra()}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)Lu(r)}return e!==void 0&&(t.x=e),t.i=!0,Se=t.p,e??{}}function uu(){return!0}function Ra(e){return Se===null&&Or(),Se.c??=new Map(cp(Se)||void 0)}function cp(e){let t=e.p;for(;t!==null;){const n=t.c;if(n!==null)return n;t=t.p}return null}let qn=[];function du(){var e=qn;qn=[],wi(e)}function lt(e){if(qn.length===0&&!gr){var t=qn;queueMicrotask(()=>{t===qn&&du()})}qn.push(e)}function up(){for(;qn.length>0;)du()}function fu(e){var t=de;if(t===null)return be.f|=Cn,e;if(!(t.f&wn)&&!(t.f&Gn))throw e;on(e,t)}function on(e,t){for(;t!==null;){if(t.f&ki){if(!(t.f&wn))throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const dp=-7169;function De(e,t){e.f=e.f&dp|t}function vo(e){e.f&Lt||e.deps===null?De(e,Fe):De(e,Qt)}function vu(e){if(e!==null)for(const t of e)!(t.f&Ze)||!(t.f&Xn)||(t.f^=Xn,vu(t.deps))}function hu(e,t,n){e.f&Je?t.add(e):e.f&Qt&&n.add(e),vu(e.deps),De(e,Fe)}function pu(e,t,n){if(e==null)return t(void 0),xt;const r=we(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}function fp(e){let t;return pu(e,n=>t=n)(),t}let Ei=!1,Jr=!1,Ii=Symbol();function vp(e,t,n){const r=n[t]??={store:null,source:Da(void 0),unsubscribe:xt};if(r.store!==e&&!(Ii in n))if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=xt;else{var s=!0;r.unsubscribe=pu(e,a=>{s?r.source.v=a:x(r.source,a)}),s=!1}return e&&Ii in n?fp(e):i(r.source)}function hp(e,t,n){let r=n[t];return r&&r.store!==e&&(r.unsubscribe(),r.unsubscribe=xt),e}function mu(e,t){return ja(e,t),t}function pp(e,t){var n=e[t];n.store!==null&&mu(n.store,n.source.v)}function mp(){const e={};function t(){At(()=>{for(var n in e)e[n].unsubscribe();Yn(e,Ii,{enumerable:!1,value:!0})})}return[e,t]}function ja(e,t){Ei=!0;try{e.set(t)}finally{Ei=!1}}function bp(e,t,n){return ja(e,n),t}function gp(e,t,n=1){return ja(e,t+n),t}function _p(e,t,n=1){const r=t+n;return ja(e,r),r}function yp(){Jr=!0}function bu(e){var t=Jr;try{return Jr=!1,[e(),Jr]}finally{Jr=t}}const hn=new Set;let me=null,it=null,Ai=null,gr=!1,li=!1,hr=null,Us=null;var jl=0;let wp=1;class Vt{id=wp++;current=new Map;previous=new Map;#e=new Set;#t=new Set;#n=new Set;#s=new Map;#r=new Map;#i=null;#a=[];#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.#r.size>0}#g(){for(const r of this.#v)for(const s of r.#r.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)De(s,Je),n(s);for(s of r.m)De(s,Qt),n(s)}this.#f.add(t)}#p(){if(jl++>1e3&&(hn.delete(this),kp()),!this.#d()){for(const l of this.#l)this.#u.delete(l),De(l,Je),this.schedule(l);for(const l of this.#u)De(l,Qt),this.schedule(l)}const t=this.#a;this.#a=[],this.apply();var n=hr=[],r=[],s=Us=[];for(const l of t)try{this.#b(l,n,r)}catch(c){throw wu(l),c}if(me=null,s.length>0){var a=Vt.ensure();for(const l of s)a.schedule(l)}if(hr=null,Us=null,this.#d()||this.#g()){this.#m(r),this.#m(n);for(const[l,c]of this.#c)yu(l,c)}else{this.#s.size===0&&hn.delete(this),this.#l.clear(),this.#u.clear();for(const l of this.#e)l(this);this.#e.clear(),Pl(r),Pl(n),this.#i?.resolve()}var o=me;if(this.#a.length>0){const l=o??=this;l.#a.push(...this.#a.filter(c=>!l.#a.includes(c)))}o!==null&&(hn.add(o),o.#p())}#b(t,n,r){t.f^=Fe;for(var s=t.first;s!==null;){var a=s.f,o=(a&(Zt|gn))!==0,l=o&&(a&Fe)!==0,c=l||(a&ot)!==0||this.#c.has(s);if(!c&&s.fn!==null){o?s.f^=Fe:a&Gn?n.push(s):Nr(s)&&(a&Yt&&this.#u.add(s),$n(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)hu(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&Cn||(this.current.set(t,[n,r]),it?.set(t,n)),this.is_fork||(t.v=n)}activate(){me=this}deactivate(){me=null,it=null}flush(){try{li=!0,me=this,this.#p()}finally{jl=0,Ai=null,hr=null,Us=null,li=!1,me=null,it=null,Un.clear()}}discard(){for(const t of this.#t)t(this);this.#t.clear(),this.#n.clear(),hn.delete(this)}register_created_effect(t){this.#o.push(t)}#_(){for(const d of hn){var t=d.id<this.id,n=[];for(const[f,[p,b]]of this.current){if(d.current.has(f)){var r=d.current.get(f)[0];if(t&&p!==r)d.current.set(f,[p,b]);else continue}n.push(f)}var s=[...d.current.keys()].filter(f=>!this.current.has(f));if(s.length===0)t&&d.discard();else if(n.length>0){if(t)for(const f of this.#f)d.unskip_effect(f,p=>{p.f&(Yt|Ir)?d.schedule(p):d.#m([p])});d.activate();var a=new Set,o=new Map;for(var l of n)gu(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|ot|as))&&ho(f,c,o)&&(f.f&(Ir|Yt)?(De(f,Je),d.schedule(f)):d.#l.add(f));if(d.#a.length>0){d.apply();for(var u of d.#a)d.#b(u,[],[]);d.#a=[]}d.deactivate()}}for(const d of hn)d.#v.has(this)&&(d.#v.delete(this),d.#v.size===0&&!d.#d()&&(d.activate(),d.#p()))}increment(t,n){let r=this.#s.get(n)??0;if(this.#s.set(n,r+1),t){let s=this.#r.get(n)??0;this.#r.set(n,s+1)}}decrement(t,n,r){let s=this.#s.get(n)??0;if(s===1?this.#s.delete(n):this.#s.set(n,s-1),t){let a=this.#r.get(n)??0;a===1?this.#r.delete(n):this.#r.set(n,a-1)}this.#h||r||(this.#h=!0,lt(()=>{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??=Xc()).promise}static ensure(){if(me===null){const t=me=new Vt;li||(hn.add(me),gr||lt(()=>{me===t&&t.flush()}))}return me}apply(){{it=null;return}}schedule(t){if(Ai=t,t.b?.is_pending&&t.f&(Gn|ys|oo)&&!(t.f&wn)){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var r=n.f;if(hr!==null&&n===de&&(be===null||!(be.f&Ze))&&!Ei)return;if(r&(gn|Zt)){if(!(r&Fe))return;n.f^=Fe}}this.#a.push(n)}}function Rn(e){var t=gr;gr=!0;try{var n;for(e&&(me!==null&&!me.is_fork&&me.flush(),n=e());;){if(up(),me===null)return n;me.flush()}}finally{gr=t}}function kp(){try{jh()}catch(e){on(e,Ai)}}let pn=null;function Pl(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&(vt|ot))&&Nr(r)&&(pn=new Set,$n(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Uu(r),pn?.size>0)){Un.clear();for(const s of pn){if(s.f&(vt|ot))continue;const a=[s];let o=s.parent;for(;o!==null;)pn.has(o)&&(pn.delete(o),a.push(o)),o=o.parent;for(let l=a.length-1;l>=0;l--){const c=a[l];c.f&(vt|ot)||$n(c)}}pn.clear()}}pn=null}}function gu(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&Ze?gu(s,t,n,r):a&(Ir|Yt)&&!(a&Je)&&ho(s,t,r)&&(De(s,Je),po(s))}}function _u(e,t){if(e.reactions!==null)for(const n of e.reactions){const r=n.f;r&Ze?_u(n,t):r&as&&(De(n,Je),t.add(n))}}function ho(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(Er.call(t,s))return!0;if(s.f&Ze&&ho(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function po(e){me.schedule(e)}let sa=[];function xp(){Rn(()=>{const e=sa;sa=[];for(const t of e)Cr(t)})}function Sp(e){var t=pt(0),n=!0,r=void 0;return i(t),qu(()=>{if(n){var s=it;try{it=null,r=e()}finally{it=s}return}sa.length===0&<(xp),sa.push(t)}),n=!1,r}function yu(e,t){if(!(e.f&Zt&&e.f&Fe)){e.f&Je?t.d.push(e):e.f&Qt&&t.m.push(e),De(e,Fe);for(var n=e.first;n!==null;)yu(n,t),n=n.next}}function wu(e){De(e,Fe);for(var t=e.first;t!==null;)wu(t),t=t.next}function Ep(e){tu(),me!==null&&Dh();var t=Vt.ensure();t.is_fork=!0,it=new Map;var n=!1,r=t.settled();return Rn(e),{commit:async()=>{if(n){await r;return}hn.has(t)||Ph(),n=!0,t.is_fork=!1;for(var[s,[a]]of t.current)s.v=a,s.wv=ia();t.activate(),t.run_fork_commit_callbacks(),t.deactivate(),Rn(()=>{var o=new Set;for(var l of t.current.keys())_u(l,o);Op(o),Cu()}),t.flush(),await r},discard:()=>{for(var s of t.current.keys())s.wv=ia();!n&&hn.has(t)&&t.discard()}}}function Ip(e){let t=0,n=pt(0),r;return()=>{As()&&(i(n),Ve(()=>(t===0&&(r=we(()=>e(()=>rn(n)))),t+=1,()=>{lt(()=>{t-=1,t===0&&(r?.(),r=void 0,rn(n))})})))}}var Ap=$t|Dn;function ku(e,t,n,r){new Cp(e,t,n,r)}class Cp{parent;is_pending=!1;transform_error;#e;#t=te?ue:null;#n;#s;#r;#i=null;#a=null;#o=null;#l=null;#u=0;#c=0;#f=!1;#h=new Set;#v=new Set;#d=null;#g=Ip(()=>(this.#d=pt(this.#u),()=>{this.#d=null}));constructor(t,n,r,s){this.#e=t,this.#n=n,this.#s=a=>{var o=de;o.b=this,o.f|=ki,r(a)},this.parent=de.b,this.transform_error=s??this.parent?.transform_error??(a=>a),this.#r=fn(()=>{if(te){const a=this.#t;ct();const o=a.data===Ea;if(a.data.startsWith(Il)){const c=JSON.parse(a.data.slice(Il.length));this.#b(c)}else o?this.#m():this.#p()}else this.#_()},Ap),te&&(this.#e=ue)}#p(){try{this.#i=st(()=>this.#s(this.#e))}catch(t){this.error(t)}}#b(t){const n=this.#n.failed;n&&(this.#o=st(()=>{n(this.#e,()=>t,()=>()=>{})}))}#m(){const t=this.#n.pending;t&&(this.is_pending=!0,this.#a=st(()=>t(this.#e)),lt(()=>{var n=this.#l=document.createDocumentFragment(),r=$e();n.append(r),this.#i=this.#w(()=>st(()=>this.#s(r))),this.#c===0&&(this.#e.before(n),this.#l=null,Hn(this.#a,()=>{this.#a=null}),this.#y(me))}))}#_(){try{if(this.is_pending=this.has_pending_snippet(),this.#c=0,this.#u=0,this.#i=st(()=>{this.#s(this.#e)}),this.#c>0){var t=this.#l=document.createDocumentFragment();So(this.#i,t);const n=this.#n.pending;this.#a=st(()=>n(this.#e))}else this.#y(me)}catch(n){this.error(n)}}#y(t){this.is_pending=!1,t.transfer_effects(this.#h,this.#v)}defer_effect(t){hu(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;rt(this.#r),mt(this.#r),Ar(this.#r.ctx);try{return Vt.ensure(),t()}catch(a){return fu(a),null}finally{rt(n),mt(r),Ar(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.#a&&Hn(this.#a,()=>{this.#a=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,lt(()=>{this.#f=!1,this.#d&&ln(this.#d,this.#u)}))}get_effect_pending(){return this.#g(),i(this.#d)}error(t){if(!this.#n.onerror&&!this.#n.failed)throw t;me?.is_fork?(this.#i&&me.skip_effect(this.#i),this.#a&&me.skip_effect(this.#a),this.#o&&me.skip_effect(this.#o),me.on_fork_commit(()=>{this.#x(t)})):this.#x(t)}#x(t){this.#i&&(Ke(this.#i),this.#i=null),this.#a&&(Ke(this.#a),this.#a=null),this.#o&&(Ke(this.#o),this.#o=null),te&&(Ie(this.#t),Gt(),Ie(Jn()));var n=this.#n.onerror;let r=this.#n.failed;var s=!1,a=!1;const o=()=>{if(s){Jh();return}s=!0,a&&Vh(),this.#o!==null&&Hn(this.#o,()=>{this.#o=null}),this.#w(()=>{this.#_()})},l=c=>{try{a=!0,n?.(c,o),a=!1}catch(u){on(u,this.#r&&this.#r.parent)}r&&(this.#o=this.#w(()=>{try{return st(()=>{var u=de;u.b=this,u.f|=ki,r(this.#e,()=>c,()=>o)})}catch(u){return on(u,this.#r.parent),null}}))};lt(()=>{var c;try{c=this.transform_error(t)}catch(u){on(u,this.#r&&this.#r.parent);return}c!==null&&typeof c=="object"&&typeof c.then=="function"?c.then(l,u=>on(u,this.#r&&this.#r.parent)):l(c)})}}function Tp(){de===null&&Rh();var e=de.b;return e===null?0:e.get_effect_pending()}function xs(e,t,n,r){const s=Es;var a=e.filter(p=>!p.settled);if(n.length===0&&a.length===0){r(t.map(s));return}var o=de,l=Pa(),c=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(p=>p.promise)):null;function u(p){l();try{r(p)}catch(b){o.f&vt||on(b,o)}Qn()}if(n.length===0){c.then(()=>u(t.map(s)));return}var d=Ss();function f(){Promise.all(n.map(p=>Su(p))).then(p=>u([...t.map(s),...p])).catch(p=>on(p,o)).finally(()=>d())}c?c.then(()=>{l(),f(),Qn()}):f()}function xu(e,t){xs(e,[],[],t)}function Pa(){var e=de,t=be,n=Se,r=me;return function(a=!0){rt(e),mt(t),Ar(n),a&&!(e.f&vt)&&(r?.activate(),r?.apply())}}async function Rp(e){var t=Pa(),n=await e;return()=>(t(),n)}async function Ci(e){var t=$r;queueMicrotask(()=>{$r===t&&Hs(null)});var n=await e;return()=>(Hs(t),queueMicrotask(()=>{$r===t&&Hs(null)}),n)}async function*jp(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 Ci(t.next()))();if(s){n=!0;break}var r=$r;yield a,Hs(r)}}finally{if(!n&&t.return!==void 0)return(await Ci(t.return()))().value}}function Qn(e=!0){rt(null),mt(null),Ar(null),e&&me?.deactivate()}function Pp(e){const t=Pa(),n=Ss();var r=de,s=null;const a=u=>{s={error:u},ji(r)||on(u,r)};var o=Promise.resolve(e[0]()).catch(a),l={promise:o,settled:!1},c=[l];o.finally(()=>{l.settled=!0,Qn()});for(const u of e.slice(1)){o=o.then(()=>{if(t(),s)throw s.error;if(ji(r))throw nn;return u()}).catch(a);const d={promise:o,settled:!1};c.push(d),o.finally(()=>{d.settled=!0,Qn()})}return o.then(()=>Promise.resolve()).finally(()=>n()),c}function Dp(e){return Promise.all(e.map(t=>t.promise))}function Ss(){var e=de,t=e.b,n=me,r=t.is_rendered();return t.update_pending_count(1,n),n.increment(r,e),(s=!1)=>{t.update_pending_count(-1,n),n.decrement(r,e,s)}}let $r=null;function Hs(e){$r=e}function Es(e){var t=Ze|Je;return de!==null&&(de.f|=Dn),{ctx:Se,deps:null,effects:null,equals:su,f:t,fn:e,reactions:null,rv:0,v:Te,wv:0,parent:de,ac:null}}function Su(e,t,n){let r=de;r===null&&xh();var s=void 0,a=pt(Te),o=!be,l=new Map;return Yp(()=>{var c=de,u=Xc();s=u.promise;try{Promise.resolve(e()).then(u.resolve,u.reject).finally(Qn)}catch(b){u.reject(b),Qn()}var d=me;if(o){if(c.f&wn)var f=Ss();if(r.b.is_rendered())l.get(d)?.reject(nn),l.delete(d);else{for(const b of l.values())b.reject(nn);l.clear()}l.set(d,u)}const p=(b,k=void 0)=>{if(f){var g=k===nn;f(g)}if(!(k===nn||c.f&vt)){if(d.activate(),k)a.f|=Cn,ln(a,k);else{a.f&Cn&&(a.f^=Cn),ln(a,b);for(const[_,E]of l){if(l.delete(_),_===d)break;E.reject(nn)}}d.deactivate()}};u.promise.then(p,b=>p(null,b||"unknown"))}),At(()=>{for(const c of l.values())c.reject(nn)}),new Promise(c=>{function u(d){function f(){d===s?c(a):u(s)}d.then(f,f)}u(s)})}function W(e){const t=Es(e);return Wu(t),t}function mo(e){const t=Es(e);return t.equals=iu,t}function zp(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)Ke(t[n])}}function bo(e){var t,n=de,r=e.parent;if(!_n&&r!==null&&r.f&(vt|ot))return Hh(),e.v;rt(r);try{e.f&=~Xn,zp(e),t=Xu(e)}finally{rt(n)}return t}function Eu(e){var t=bo(e);if(!e.equals(t)&&(e.wv=ia(),(!me?.is_fork||e.deps===null)&&(me!==null?me.capture(e,t,!0):e.v=t,e.deps===null))){De(e,Fe);return}_n||(it!==null?(As()||me?.is_fork)&&it.set(e,t):vo(e))}function Mp(e){if(e.effects!==null)for(const t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(nn),t.teardown=xt,t.ac=null,is(t,0),ko(t))}function Iu(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&$n(t)}let aa=new Set;const Un=new Map;function Op(e){aa=e}let Au=!1;function pt(e,t){var n={f:0,v:e,reactions:null,equals:su,rv:0,wv:0};return n}function U(e,t){const n=pt(e);return Wu(n),n}function Da(e,t=!1,n=!0){const r=pt(e);return t||(r.equals=iu),r}function Lp(e,t){return x(e,we(()=>i(e))),t}function x(e,t,n=!1){be!==null&&(!Kt||be.f&as)&&uu()&&be.f&(Ze|Yt|Ir|as)&&(Nt===null||!Er.call(Nt,e))&&qh();let r=n?oe(t):t;return ln(e,r,Us)}function ln(e,t,n=null){if(!e.equals(t)){Un.set(e,_n?t:e.v);var r=Vt.ensure();if(r.capture(e,t),e.f&Ze){const s=e;e.f&Je&&bo(s),it===null&&vo(s)}e.wv=ia(),Tu(e,Je,n),de!==null&&de.f&Fe&&!(de.f&(Zt|gn))&&(zt===null?Qp([e]):zt.push(e)),!r.is_fork&&aa.size>0&&!Au&&Cu()}return t}function Cu(){Au=!1;for(const e of aa)e.f&Fe&&De(e,Qt),Nr(e)&&$n(e);aa.clear()}function Cr(e,t=1){var n=i(e),r=t===1?n++:n--;return x(e,n),r}function Np(e,t=1){var n=i(e);return x(e,t===1?++n:--n)}function rn(e){x(e,e.v+1)}function Tu(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&Je)===0;if(c&&De(o,t),l&Ze){var u=o;it?.delete(u),l&Xn||(l&Lt&&(o.f|=Xn),Tu(u,Qt,n))}else if(c){var d=o;l&Yt&&pn!==null&&pn.add(d),n!==null?n.push(d):po(d)}}}function oe(e){if(typeof e!="object"||e===null||tt in e)return e;const t=Ca(e);if(t!==Gc&&t!==uh)return e;var n=new Map,r=Mr(e),s=U(0),a=mn,o=l=>{if(mn===a)return l();var c=be,u=mn;mt(null),Ml(a);var d=l();return mt(c),Ml(u),d};return r&&n.set("length",U(e.length)),new Proxy(e,{defineProperty(l,c,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&Lh();var d=n.get(c);return d===void 0?o(()=>{var f=U(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(()=>U(Te));n.set(c,d),rn(s)}}else x(u,Te),rn(s);return!0},get(l,c,u){if(c===tt)return e;var d=n.get(c),f=c in l;if(d===void 0&&(!f||Wt(l,c)?.writable)&&(d=o(()=>{var b=oe(f?l[c]:Te),k=U(b);return k}),n.set(c,d)),d!==void 0){var p=i(d);return p===Te?void 0:p}return Reflect.get(l,c,u)},getOwnPropertyDescriptor(l,c){var u=Reflect.getOwnPropertyDescriptor(l,c);if(u&&"value"in u){var d=n.get(c);d&&(u.value=i(d))}else if(u===void 0){var f=n.get(c),p=f?.v;if(f!==void 0&&p!==Te)return{enumerable:!0,configurable:!0,value:p,writable:!0}}return u},has(l,c){if(c===tt)return!0;var u=n.get(c),d=u!==void 0&&u.v!==Te||Reflect.has(l,c);if(u!==void 0||de!==null&&(!d||Wt(l,c)?.writable)){u===void 0&&(u=o(()=>{var p=d?oe(l[c]):Te,b=U(p);return b}),n.set(c,u));var f=i(u);if(f===Te)return!1}return d},set(l,c,u,d){var f=n.get(c),p=c in l;if(r&&c==="length")for(var b=u;b<f.v;b+=1){var k=n.get(b+"");k!==void 0?x(k,Te):b in l&&(k=o(()=>U(Te)),n.set(b+"",k))}if(f===void 0)(!p||Wt(l,c)?.writable)&&(f=o(()=>U(void 0)),x(f,oe(u)),n.set(c,f));else{p=f.v!==Te;var g=o(()=>oe(u));x(f,g)}var _=Reflect.getOwnPropertyDescriptor(l,c);if(_?.set&&_.set.call(d,u),!p){if(r&&typeof c=="string"){var E=n.get("length"),y=Number(c);Number.isInteger(y)&&y>=E.v&&x(E,y+1)}rn(s)}return!0},ownKeys(l){i(s);var c=Reflect.ownKeys(l).filter(f=>{var p=n.get(f);return p===void 0||p.v!==Te});for(var[u,d]of n)d.v!==Te&&!(u in l)&&c.push(u);return c},setPrototypeOf(){Nh()}})}function Tr(e){try{if(e!==null&&typeof e=="object"&&tt in e)return e[tt]}catch{}return e}function Ru(e,t){return Object.is(Tr(e),Tr(t))}function qp(e,t,n=!0){try{e===t!=(Tr(e)===Tr(t))&&ru(n?"===":"!==")}catch{}return e===t===n}function Vp(e,t,n=!0){return e==t!=(Tr(e)==Tr(t))&&ru(),e==t===n}var Ti,ju,go,Pu,Du;function Ri(){if(Ti===void 0){Ti=window,ju=document,go=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Pu=Wt(t,"firstChild").get,Du=Wt(t,"nextSibling").get,Al(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),Al(n)&&(n.__t=void 0)}}function $e(e=""){return document.createTextNode(e)}function je(e){return Pu.call(e)}function Et(e){return Du.call(e)}function h(e,t){if(!te)return je(e);var n=je(ue);if(n===null)n=ue.appendChild($e());else if(t&&n.nodeType!==ws){var r=$e();return n?.before(r),Ie(r),r}return t&&za(n),Ie(n),n}function ve(e,t=!1){if(!te){var n=je(e);return n instanceof Comment&&n.data===""?Et(n):n}if(t){if(ue?.nodeType!==ws){var r=$e();return ue?.before(r),Ie(r),r}za(ue)}return ue}function w(e,t=1,n=!1){let r=te?ue:e;for(var s;t--;)s=r,r=Et(r);if(!te)return r;if(n){if(r?.nodeType!==ws){var a=$e();return r===null?s?.after(a):r.before(a),Ie(a),a}za(r)}return Ie(r),r}function _o(e){e.textContent=""}function zu(){return!1}function zn(e,t,n){let r=n?{is:n}:void 0;return document.createElementNS(t??Hc,e,r)}function Bp(){return document.createDocumentFragment()}function Mu(e=""){return document.createComment(e)}function Fp(e,t,n=""){if(t.startsWith("xlink:")){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n);return}return e.setAttribute(t,n)}function za(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===ws;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function Lr(e,t){if(t){const n=document.body;e.autofocus=!0,lt(()=>{document.activeElement===n&&e.focus()})}}function yo(e){te&&je(e)!==null&&_o(e)}let Dl=!1;function Ou(){Dl||(Dl=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function gt(e,t,n,r=!0){r&&n();for(var s of t)e.addEventListener(s,n);At(()=>{for(var a of t)e.removeEventListener(a,n)})}function Mn(e){var t=be,n=de;mt(null),rt(null);try{return e()}finally{mt(t),rt(n)}}function Is(e,t,n,r=n){e.addEventListener(t,()=>Mn(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),Ou()}function wo(e){de===null&&(be===null&&Th(),Ch()),_n&&Ah()}function Up(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function _t(e,t){var n=de;n!==null&&n.f&ot&&(e|=ot);var r={ctx:Se,deps:null,nodes:null,f:e|Je|Lt,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};me?.register_created_effect(r);var s=r;if(e&Gn)hr!==null?hr.push(r):Vt.ensure().schedule(r);else if(t!==null){try{$n(r)}catch(o){throw Ke(r),o}s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&!(s.f&Dn)&&(s=s.first,e&Yt&&e&$t&&s!==null&&(s.f|=$t))}if(s!==null&&(s.parent=n,n!==null&&Up(s,n),be!==null&&be.f&Ze&&!(e&gn))){var a=be;(a.effects??=[]).push(s)}return r}function As(){return be!==null&&!Kt}function At(e){const t=_t(ys,null);return De(t,Fe),t.teardown=e,t}function xe(e){wo();var t=de.f,n=!be&&(t&Zt)!==0&&(t&wn)===0;if(n){var r=Se;(r.e??=[]).push(e)}else return Lu(e)}function Lu(e){return _t(Gn|Qc,e)}function Nu(e){return wo(),_t(ys|Qc,e)}function qu(e){return _t(as,e)}function Cs(e){Vt.ensure();const t=_t(gn|Dn,e);return()=>{Ke(t)}}function Hp(e){Vt.ensure();const t=_t(gn|Dn,e);return(n={})=>new Promise(r=>{n.outro?Hn(t,()=>{Ke(t),r(void 0)}):(Ke(t),r(void 0))})}function It(e){return _t(Gn,e)}function Kp(e,t){var n=Se,r={effect:null,ran:!1,deps:e};n.l.$.push(r),r.effect=Ve(()=>{if(e(),!r.ran){r.ran=!0;var s=de;try{rt(s.parent),we(t)}finally{rt(s)}}})}function Wp(){var e=Se;Ve(()=>{for(var t of e.l.$){t.deps();var n=t.effect;n.f&Fe&&n.deps!==null&&De(n,Qt),Nr(n)&&$n(n),t.ran=!1}})}function Yp(e){return _t(Ir|Dn,e)}function Ve(e,t=0){return _t(ys|t,e)}function N(e,t=[],n=[],r=[]){xs(r,t,n,s=>{_t(ys,()=>e(...s.map(i)))})}function Gp(e,t=[],n=[],r=[]){if(n.length>0||r.length>0)var s=Ss();xs(r,t,n,a=>{_t(Gn,()=>e(...a.map(i))),s&&s()})}function fn(e,t=0){var n=_t(Yt|t,e);return n}function Vu(e,t=0){var n=_t(oo|t,e);return n}function st(e){return _t(Zt|Dn,e)}function Bu(e){var t=e.teardown;if(t!==null){const n=_n,r=be;zl(!0),mt(null);try{t.call(null)}finally{zl(n),mt(r)}}}function ko(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&Mn(()=>{s.abort(nn)});var r=n.next;n.f&gn?n.parent=null:Ke(n,t),n=r}}function Xp(e){for(var t=e.first;t!==null;){var n=t.next;t.f&Zt||Ke(t),t=n}}function Ke(e,t=!0){var n=!1;(t||e.f&Zc)&&e.nodes!==null&&e.nodes.end!==null&&(Fu(e.nodes.start,e.nodes.end),n=!0),De(e,xi),ko(e,t&&!n),is(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const a of r)a.stop();Bu(e),e.f^=xi,e.f|=vt;var s=e.parent;s!==null&&s.first!==null&&Uu(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Fu(e,t){for(;e!==null;){var n=e===t?null:Et(e);e.remove(),e=n}}function Uu(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 Hn(e,t,n=!0){var r=[];Hu(e,r,!0);var s=()=>{n&&Ke(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||s();for(var l of r)l.out(o)}else s()}function Hu(e,t,n){if(!(e.f&ot)){e.f^=ot;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&gn)){var o=(s.f&$t)!==0||(s.f&Zt)!==0&&(e.f&Yt)!==0;Hu(s,t,o?n:!1)}s=a}}}function xo(e){Ku(e,!0)}function Ku(e,t){if(e.f&ot){e.f^=ot,e.f&Fe||(De(e,Je),Vt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&$t)!==0||(n.f&Zt)!==0;Ku(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 ji(e=de){return(e.f&vt)!==0}function So(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:Et(n);t.append(n),n=s}}let dr=null;function Jp(e){var t=dr;try{if(dr=new Set,we(e),t!==null)for(var n of dr)t.add(n);return dr}finally{dr=t}}function Zp(e){for(var t of Jp(e))ln(t,t.v)}let Ks=!1,_n=!1;function zl(e){_n=e}let be=null,Kt=!1;function mt(e){be=e}let de=null;function rt(e){de=e}let Nt=null;function Wu(e){be!==null&&(Nt===null?Nt=[e]:Nt.push(e))}let dt=null,wt=0,zt=null;function Qp(e){zt=e}let Yu=1,Vn=0,mn=Vn;function Ml(e){mn=e}function ia(){return++Yu}function Nr(e){var t=e.f;if(t&Je)return!0;if(t&Ze&&(e.f&=~Xn),t&Qt){for(var n=e.deps,r=n.length,s=0;s<r;s++){var a=n[s];if(Nr(a)&&Eu(a),a.wv>e.wv)return!0}t&Lt&&it===null&&De(e,Fe)}return!1}function Gu(e,t,n=!0){var r=e.reactions;if(r!==null&&!(Nt!==null&&Er.call(Nt,e)))for(var s=0;s<r.length;s++){var a=r[s];a.f&Ze?Gu(a,t,!1):t===a&&(n?De(a,Je):a.f&Fe&&De(a,Qt),po(a))}}function Xu(e){var t=dt,n=wt,r=zt,s=be,a=Nt,o=Se,l=Kt,c=mn,u=e.f;dt=null,wt=0,zt=null,be=u&(Zt|gn)?null:e,Nt=null,Ar(e.ctx),Kt=!1,mn=++Vn,e.ac!==null&&(Mn(()=>{e.ac.abort(nn)}),e.ac=null);try{e.f|=Si;var d=e.fn,f=d();e.f|=wn;var p=e.deps,b=me?.is_fork;if(dt!==null){var k;if(b||is(e,wt),p!==null&&wt>0)for(p.length=wt+dt.length,k=0;k<dt.length;k++)p[wt+k]=dt[k];else e.deps=p=dt;if(As()&&e.f&Lt)for(k=wt;k<p.length;k++)(p[k].reactions??=[]).push(e)}else!b&&p!==null&&wt<p.length&&(is(e,wt),p.length=wt);if(uu()&&zt!==null&&!Kt&&p!==null&&!(e.f&(Ze|Qt|Je)))for(k=0;k<zt.length;k++)Gu(zt[k],e);if(s!==null&&s!==e){if(Vn++,s.deps!==null)for(let g=0;g<n;g+=1)s.deps[g].rv=Vn;if(t!==null)for(const g of t)g.rv=Vn;zt!==null&&(r===null?r=zt:r.push(...zt))}return e.f&Cn&&(e.f^=Cn),f}catch(g){return fu(g)}finally{e.f^=Si,dt=t,wt=n,zt=r,be=s,Nt=a,Ar(o),Kt=l,mn=c}}function $p(e,t){let n=t.reactions;if(n!==null){var r=ch.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&Ze&&(dt===null||!Er.call(dt,t))){var a=t;a.f&Lt&&(a.f^=Lt,a.f&=~Xn),a.v!==Te&&vo(a),Mp(a),is(a,0)}}function is(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)$p(e,n[r])}function $n(e){var t=e.f;if(!(t&vt)){De(e,Fe);var n=de,r=Ks;de=e,Ks=!0;try{t&(Yt|oo)?Xp(e):ko(e),Bu(e);var s=Xu(e);e.teardown=typeof s=="function"?s:null,e.wv=Yu;var a;Wc&&Qh&&e.f&Je&&e.deps}finally{Ks=r,de=n}}}async function Ts(){await Promise.resolve(),Rn()}function em(){return Vt.ensure().settled()}function i(e){var t=e.f,n=(t&Ze)!==0;if(dr?.add(e),be!==null&&!Kt){var r=de!==null&&(de.f&vt)!==0;if(!r&&(Nt===null||!Er.call(Nt,e))){var s=be.deps;if(be.f&Si)e.rv<Vn&&(e.rv=Vn,dt===null&&s!==null&&s[wt]===e?wt++:dt===null?dt=[e]:dt.push(e));else{(be.deps??=[]).push(e);var a=e.reactions;a===null?e.reactions=[be]:Er.call(a,be)||a.push(be)}}}if(_n&&Un.has(e))return Un.get(e);if(n){var o=e;if(_n){var l=o.v;return(!(o.f&Fe)&&o.reactions!==null||Zu(o))&&(l=bo(o)),Un.set(o,l),l}var c=(o.f&Lt)===0&&!Kt&&be!==null&&(Ks||(be.f&Lt)!==0),u=(o.f&wn)===0;Nr(o)&&(c&&(o.f|=Lt),Eu(o)),c&&!u&&(Iu(o),Ju(o))}if(it?.has(e))return it.get(e);if(e.f&Cn)throw e.v;return e.v}function Ju(e){if(e.f|=Lt,e.deps!==null)for(const t of e.deps)(t.reactions??=[]).push(e),t.f&Ze&&!(t.f&Lt)&&(Iu(t),Ju(t))}function Zu(e){if(e.v===Te)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(Un.has(t)||t.f&Ze&&Zu(t))return!0;return!1}function tm(e){return e&&i(e)}function we(e){var t=Kt;try{return Kt=!0,e()}finally{Kt=t}}function Eo(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if(tt in e)oa(e);else if(!Array.isArray(e))for(let t in e){const n=e[t];typeof n=="object"&&n&&tt in n&&oa(n)}}}function oa(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{oa(e[r],t)}catch{}const n=Ca(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){const r=Yc(n);for(let s in r){const a=r[s].get;if(a)try{a.call(e)}catch{}}}}}function nm(e,t){if(tu(),te){const n=window.__svelte?.h;if(n?.has(e))return n.get(e);Wh()}return t()}const Zr=Symbol("events"),Qu=new Set,Pi=new Set;function rm(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 $u(e,t,n,r={}){function s(a){if(r.capture||Di.call(t,a),!a.cancelBubble)return Mn(()=>n?.call(this,a))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?lt(()=>{t.addEventListener(e,s,r)}):t.addEventListener(e,s,r),s}function Pe(e,t,n,r,s){var a={capture:r,passive:s},o=$u(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&At(()=>{t.removeEventListener(e,o,a)})}function H(e,t,n){(t[Zr]??={})[e]=n}function le(e){for(var t=0;t<e.length;t++)Qu.add(e[t]);for(var n of Pi)n(e)}let Ol=null;function Di(e){var t=this,n=t.ownerDocument,r=e.type,s=e.composedPath?.()||[],a=s[0]||e.target;Ol=e;var o=0,l=Ol===e&&e[Zr];if(l){var c=s.indexOf(l);if(c!==-1&&(t===document||t===window)){e[Zr]=t;return}var u=s.indexOf(t);if(u===-1)return;c<=u&&(o=c)}if(a=s[o]||e.target,a!==t){Yn(e,"currentTarget",{configurable:!0,get(){return a||n}});var d=be,f=de;mt(null),rt(null);try{for(var p,b=[];a!==null;){var k=a.assignedSlot||a.parentNode||a.host||null;try{var g=a[Zr]?.[r];g!=null&&(!a.disabled||e.target===a)&&g.call(a,e)}catch(_){p?b.push(_):p=_}if(e.cancelBubble||k===t||k===null)break;a=k}if(p){for(let _ of b)queueMicrotask(()=>{throw _});throw p}}finally{e[Zr]=t,delete e.currentTarget,mt(d),rt(f)}}}function sm(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?.[kt];s?`${u}${s[0]}${s[1]}`:`${u}`;const d=n[0]?.eventPhase<Event.BUBBLING_PHASE?"capture":"";if(n[0]?.type+d,Kh(),c)throw c}l?.apply(t,n)}const am=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function ed(e){return am?.createHTML(e)??e}function Io(e){var t=zn("template");return t.innerHTML=ed(e.replaceAll("<!>","<!---->")),t.content}const im=sr?"template":"TEMPLATE",om=sr?"script":"SCRIPT";function We(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&ao)!==0,r=(t&Uc)!==0,s,a=!e.startsWith("<!>");return()=>{if(te)return We(ue,null),ue;s===void 0&&(s=Io(a?e:"<!>"+e),n||(s=je(s)));var o=r||go?document.importNode(s,!0):s.cloneNode(!0);if(n){var l=je(o),c=o.lastChild;We(l,c)}else We(o,o);return o}}function td(e,t,n="svg"){var r=!e.startsWith("<!>"),s=(t&ao)!==0,a=`<${n}>${r?e:"<!>"+e}</${n}>`,o;return()=>{if(te)return We(ue,null),ue;if(!o){var l=Io(a),c=je(l);if(s)for(o=document.createDocumentFragment();je(c);)o.appendChild(je(c));else o=je(c)}var u=o.cloneNode(!0);if(s){var d=je(u),f=u.lastChild;We(d,f)}else We(u,u);return u}}function Ao(e,t){return td(e,t,"svg")}function lm(e,t){return td(e,t,"math")}function nd(e,t){var n=Bp();for(var r of e){if(typeof r=="string"){n.append($e(r));continue}if(r===void 0||r[0][0]==="/"){n.append(Mu(r?r[0].slice(3):""));continue}const[l,c,...u]=r,d=l==="svg"?_s:l==="math"?io:t;var s=zn(l,d,c?.is);for(var a in c)Fp(s,a,c[a]);if(u.length>0){var o=s.nodeName===im?s.content:s;o.append(nd(u,s.nodeName==="foreignObject"?void 0:d))}n.append(s)}return n}function cm(e,t){var n=(t&ao)!==0,r=(t&Uc)!==0,s;return()=>{if(te)return We(ue,null),ue;if(s===void 0){const c=t&oh?_s:t&lh?io:void 0;s=nd(e,c),n||(s=je(s))}var a=r||go?document.importNode(s,!0):s.cloneNode(!0);if(n){var o=je(a),l=a.lastChild;We(o,l)}else We(a,a);return a}}function um(e){return()=>dm(e())}function dm(e){if(te)return e;const t=e.nodeType===eu,n=e.nodeName===om?[e]:e.querySelectorAll("script"),r=de;for(const a of n){const o=zn("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=$e(e+"");return We(t,t),t}var n=ue;return n.nodeType!==ws?(n.before(n=$e()),Ie(n)):za(n),We(n,n),n}function He(){if(te)return We(ue,null),ue;var e=document.createDocumentFragment(),t=document.createComment(""),n=$e();return e.append(t,n),We(t,n),e}function S(e,t){if(te){var n=de;(!(n.f&wn)||n.nodes.end===null)&&(n.nodes.end=ue),ct();return}e!==null&&e.before(t)}function fm(){if(te&&ue&&ue.nodeType===kn&&ue.textContent?.startsWith("$")){const e=ue.textContent.substring(1);return ct(),e}return(window.__svelte??={}).uid??=1,`c${window.__svelte.uid++}`}const vm=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function hm(e){return vm.includes(e)||e.toLowerCase()==="!doctype"}function pm(e){return e.endsWith("capture")&&e!=="gotpointercapture"&&e!=="lostpointercapture"}const mm=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function bm(e){return mm.includes(e)}const gm={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 _m(e){return e=e.toLowerCase(),gm[e]??e}const ym=["touchstart","touchmove"];function wm(e){return ym.includes(e)}const km=["textarea","script","style","title"];function xm(e){return km.includes(e)}function rd(e){return e?.replace(/\//g,"/")}let la=!0;function pr(e){la=e}function M(e,t){var n=t==null?"":typeof t=="object"?`${t}`:t;n!==(e.__t??=e.nodeValue)&&(e.__t=n,e.nodeValue=`${n}`)}function qe(e,t){return ad(e,t)}function sd(e,t){Ri(),t.intro=t.intro??!1;const n=t.target,r=te,s=ue;try{for(var a=je(n);a&&(a.nodeType!==kn||a.data!==Sa);)a=Et(a);if(!a)throw Wn;Ce(!0),Ie(a);const o=ad(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!==Wn&&console.warn("Failed to hydrate: ",o),t.recover===!1&&Mh(),Ri(),_o(n),Ce(!1),qe(e,t)}finally{Ce(r),Ie(s)}}const qs=new Map;function ad(e,{target:t,anchor:n,props:r={},events:s,context:a,intro:o=!0,transformError:l}){Ri();var c=void 0,u=Hp(()=>{var d=n??t.appendChild($e());ku(d,{pending:()=>{}},b=>{re({});var k=Se;if(a&&(k.c=a),s&&(r.$$events=s),te&&We(b,null),la=o,c=e(b,r)||{},la=!0,te&&(de.nodes.end=ue,ue===null||ue.nodeType!==kn||ue.data!==Ia))throw ks(),Wn;se()},l);var f=new Set,p=b=>{for(var k=0;k<b.length;k++){var g=b[k];if(!f.has(g)){f.add(g);var _=wm(g);for(const m of[t,document]){var E=qs.get(m);E===void 0&&(E=new Map,qs.set(m,E));var y=E.get(g);y===void 0?(m.addEventListener(g,Di,{passive:_}),E.set(g,1)):E.set(g,y+1)}}}};return p(Aa(Qu)),Pi.add(p),()=>{for(var b of f)for(const _ of[t,document]){var k=qs.get(_),g=k.get(b);--g==0?(_.removeEventListener(b,Di),k.delete(b),k.size===0&&qs.delete(_)):k.set(b,g)}Pi.delete(p),d!==n&&d.parentNode?.removeChild(d)}});return zi.set(c,u),c}let zi=new WeakMap;function Xe(e,t){const n=zi.get(e);return n?(zi.delete(e),n(t)):Promise.resolve()}function Sm(e){const t=e();t&&hm(t)&&$h()}function Em(e){const t=e();t&&!(typeof t=="string")&&kh()}function Im(e,t){e!=null&&typeof e.subscribe!="function"&&wh()}function id(e){return e.toString=()=>(yh(),""),e}class qr{anchor;#e=new Map;#t=new Map;#n=new Map;#s=new Set;#r=!0;constructor(t,n=!0){this.anchor=t,this.#r=n}#i=t=>{if(this.#e.has(t)){var n=this.#e.get(t),r=this.#t.get(n);if(r)xo(r),this.#s.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&&(Ke(l.effect),this.#n.delete(o))}for(const[a,o]of this.#t){if(a===n||this.#s.has(a))continue;const l=()=>{if(Array.from(this.#e.values()).includes(a)){var u=document.createDocumentFragment();So(o,u),u.append($e()),this.#n.set(a,{effect:o,fragment:u})}else Ke(o);this.#s.delete(a),this.#t.delete(a)};this.#r||!r?(this.#s.add(a),Hn(o,l,!1)):l()}}};#a=t=>{this.#e.delete(t);const n=Array.from(this.#e.values());for(const[r,s]of this.#n)n.includes(r)||(Ke(s.effect),this.#n.delete(r))};ensure(t,n){var r=me,s=zu();if(n&&!this.#t.has(t)&&!this.#n.has(t))if(s){var a=document.createDocumentFragment(),o=$e();a.append(o),this.#n.set(t,{effect:st(()=>n(o)),fragment:a})}else this.#t.set(t,st(()=>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.#a)}else te&&(this.anchor=ue),this.#i(r)}}function en(e,t,...n){var r=new qr(e);fn(()=>{const s=t()??null;r.ensure(s,s&&(a=>s(a,...n)))},$t)}function Am(e,t){const n=(r,...s)=>{var a=co;Rl(e);try{return t(r,...s)}finally{Rl(a)}};return id(n),n}function Cm(e){return(t,...n)=>{var r=e(...n),s;if(te)s=ue,ct();else{var a=r.render().trim(),o=Io(a);s=je(o),t.before(s)}const l=r.setup?.(s);We(s,s),typeof l=="function"&&At(l)}}function Tm(){return be===null&&zh(),(be.ac??=new AbortController).signal}function Co(e){Se===null&&Or(),xe(()=>{const t=we(e);if(typeof t=="function")return t})}function To(e){Se===null&&Or(),Co(()=>()=>we(e))}function Rm(e,t,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(e,{detail:t,bubbles:n,cancelable:r})}function jm(){const e=Se;return e===null&&Or(),(t,n,r)=>{const s=e.s.$$events?.[t];if(s){const a=Mr(s)?s.slice():[s],o=Rm(t,n,r);for(const l of a)l.call(e.x,o);return!o.defaultPrevented}return!0}}function Pm(e){Se===null&&Or(),Se.l===null&&nu(),od(Se).b.push(e)}function Dm(e){Se===null&&Or(),Se.l===null&&nu(),od(Se).a.push(e)}function od(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}const ld=Object.freeze(Object.defineProperty({__proto__:null,afterUpdate:Dm,beforeUpdate:Pm,createContext:op,createEventDispatcher:jm,createRawSnippet:Cm,flushSync:Rn,fork:Ep,getAbortSignal:Tm,getAllContexts:lp,getContext:uo,hasContext:cu,hydratable:nm,hydrate:sd,mount:qe,onDestroy:To,onMount:Co,setContext:fo,settled:em,tick:Ts,unmount:Xe,untrack:we},Symbol.toStringTag,{value:"Module"}));function zm(){return Symbol(Kc)}function cd(e,t,n,r){return e!==t&&typeof t=="object"&&tt in t&&Bh(n,rd(r)),e}function Mm(e,t,n,r,s){return cd(n==="="?e[t]=r:n==="&&="?e[t]&&=r():n==="||="?e[t]||=r():n==="??="?e[t]??=r():null,we(()=>e[t]),t,s)}async function Om(e,t,n,r,s){return cd(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 Ll=new Map;function Lm(e){var t=Ll.get(e);if(t){for(const n of t)n.remove();Ll.delete(e)}}function Nm(e,t,n){return(...r)=>{const s=e(...r);var a=te?s:s.nodeType===eu?s.firstChild:s;return ud(a,t,n),s}}function qm(e,t,n){e.__svelte_meta={parent:Fs,loc:{file:t,line:n[0],column:n[1]}},n[2]&&ud(e.firstChild,t,n[2])}function ud(e,t,n){for(var r=0,s=0;e&&r<n.length;){if(te&&e.nodeType===kn){var a=e;a.data[0]===Sa?s+=1:a.data[0]===Ia&&(s-=1)}s===0&&e.nodeType===$c&&qm(e,t,n[r++]),e=e.nextSibling}}function Vm(e){const t=pt(e);function n(r,s){let a={},o={},l,c=!1,u=r;return fn(()=>{if(a!==(a=i(t))){if(l){for(var d in o)delete o[d];Ke(l)}l=st(()=>{u=u[bh]??u,c&&pr(!1);var f=new.target?new a(u,s):a(u,s);f&&Object.defineProperties(o,Object.getOwnPropertyDescriptors(f)),c&&pr(!0)}),de.nodes=l.nodes}},$t),c=!0,te&&(u=ue),o}return n[kt]=e[kt],n[cr]={fn:e,current:t,update:r=>{x(n[cr].current,r[cr].fn),r[cr].current=n[cr].current}},n}function Bm(e){const t=Se?.function,n=Se?.p?.function;return{mutation:(r,s,a,o,l)=>{const c=s[0];if(Nl(e,c)||!n)return a;let u=e;for(let f=0;f<s.length-1;f++)if(u=u[s[f]],!u?.[tt])return a;const d=rd(`${t[kt]}:${o}:${l}`);return Gh(c,d,r,n[kt]),a},binding:(r,s,a)=>{!Nl(e,r)&&n&&a()?.[tt]&&Yh(t[kt],r,s[kt],n[kt])}}}function Nl(e,t){const n=tt in e||Ta in e;return!!Wt(e,t)?.set||n&&t in e||!(t in e)}function Fm(e){e&&Eh(e[kt]??"a component",e.name)}function Um(){const e=Se?.function;function t(n){Sh(n,e[kt])}return{$destroy:()=>t("$destroy()"),$on:()=>t("$on(...)"),$set:()=>t("$set(...)")}}function Hm(e,t,n=!1){wo();let r=!0,s=Te;qu(()=>{try{var a=e()}catch(l){s=l;return}var o=Zn(a,!0,!0);we(()=>{if(n){if(t(...o),!r){const l=sp("$inspect(...)");l&&(console.groupCollapsed("stack trace"),console.log(l),console.groupEnd())}}else t(r?"init":"update",...o)}),r=!1}),Ve(()=>{try{e()}catch{}s!==Te&&(console.error(s),s=Te)})}function Km(e,t=[],n=[],r){var s=te,a=null;if(s&&(ct(),a=Jn(!1)),n.length===0&&t.every(c=>c.settled)){r(e),s&&Ie(a);return}const o=Ss();if(s){var l=ue;Ie(a)}xs(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 Wm(e,...t){(typeof e!="object"||!(e instanceof Node))&&Tl();for(let n of t)typeof n!="function"&&Tl()}const ql=0,Vl=1,Ym=2;function Gm(e,t,n,r,s){te&&ct();var a=Te,o=pt(a),l=pt(a),c=new qr(e);fn(()=>{var u=me;u.deactivate();var d=t();u.activate();var f=!1;let p=te&&Cl(d)===(e.data===Ea);if(p&&(Ie(Jn()),Ce(!1)),Cl(d)){var b=Pa(),k=!1;const g=_=>{if(!f){k=!0,b(!1),Vt.ensure(),te&&Ce(!1);try{_()}finally{Qn(!1),gr||Rn()}}};d.then(_=>{g(()=>{ln(o,_),c.ensure(Vl,r&&(E=>r(E,o)))})},_=>{g(()=>{if(ln(l,_),c.ensure(Ym,s&&(E=>s(E,l))),!s)throw l.v})}),te?c.ensure(ql,n):lt(()=>{k||g(()=>{c.ensure(ql,n)})})}else ln(o,d),c.ensure(Vl,r&&(g=>r(g,o)));return p&&Ce(!0),()=>{f=!0}})}function K(e,t,n=!1){var r;te&&(r=ue,ct());var s=new qr(e),a=n?$t:0;function o(l,c){if(te){var u=lo(r);if(l!==parseInt(u.substring(1))){var d=Jn();Ie(d),s.anchor=d,Ce(!1),s.ensure(l,c),Ce(!0);return}}s.ensure(l,c)}fn(()=>{var l=!1;t((c,u=0)=>{l=!0,o(u,c)}),l||o(-1,null)},a)}const Xm=Symbol("NaN");function Jm(e,t,n){te&&ct();var r=new qr(e);fn(()=>{var s=t();s!==s&&(s=Xm),r.ensure(s,n)})}function Zm(e,t){te&&Ie(je(e)),Ve(()=>{var n=t();for(var r in n){var s=n[r];s?e.style.setProperty(r,s):e.style.removeProperty(r)}})}function bt(e,t){return t}function Qm(e,t,n){for(var r=[],s=t.length,a,o=t.length,l=0;l<s;l++){let f=t[l];Hn(f,()=>{if(a){if(a.pending.delete(f),a.done.add(f),a.pending.size===0){var p=e.outrogroups;Mi(e,Aa(a.done)),p.delete(a),p.size===0&&(e.outrogroups=null)}}else o-=1},!1)}if(o===0){var c=r.length===0&&n!==null;if(c){var u=n,d=u.parentNode;_o(d),d.append(u),e.items.clear()}Mi(e,t,!c)}else a={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(a)}function Mi(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|=an;const o=document.createDocumentFragment();So(a,o)}else Ke(t[s],n)}}var Bl;function he(e,t,n,r,s,a=null){var o=e,l=new Map,c=(t&Bc)!==0;if(c){var u=e;o=te?Ie(je(u)):u.appendChild($e())}te&&ct();var d=null,f=mo(()=>{var m=n();return Mr(m)?m:m==null?[]:Aa(m)}),p,b=new Map,k=!0;function g(m){y.effect.f&vt||(y.pending.delete(m),y.fallback=d,$m(y,p,o,t,r),d!==null&&(p.length===0?d.f&an?(d.f^=an,Qr(d,null,o)):xo(d):Hn(d,()=>{d=null})))}function _(m){y.pending.delete(m)}var E=fn(()=>{p=i(f);var m=p.length;let I=!1;if(te){var z=lo(o)===Ea;z!==(m===0)&&(o=Jn(),Ie(o),Ce(!1),I=!0)}for(var j=new Set,P=me,O=zu(),R=0;R<m;R+=1){te&&ue.nodeType===kn&&ue.data===Ia&&(o=ue,I=!0,Ce(!1));var T=p[R],A=r(T,R),D=k?null:l.get(A);D?(D.v&&ln(D.v,T),D.i&&ln(D.i,R),O&&P.unskip_effect(D.e)):(D=eb(l,k?o:Bl??=$e(),T,A,R,s,t,n),k||(D.e.f|=an),l.set(A,D)),j.add(A)}if(m===0&&a&&!d&&(k?d=st(()=>a(o)):(d=st(()=>a(Bl??=$e())),d.f|=an)),m>j.size&&Ih(),te&&m>0&&Ie(Jn()),!k)if(b.set(P,j),O){for(const[B,L]of l)j.has(B)||P.skip_effect(L.e);P.oncommit(g),P.ondiscard(_)}else g(P);I&&Ce(!0),i(f)}),y={effect:E,items:l,pending:b,outrogroups:null,fallback:d};k=!1,te&&(o=ue)}function Yr(e){for(;e!==null&&!(e.f&Zt);)e=e.next;return e}function $m(e,t,n,r,s){var a=(r&$v)!==0,o=t.length,l=e.items,c=Yr(e.effect.first),u,d=null,f,p=[],b=[],k,g,_,E;if(a)for(E=0;E<o;E+=1)k=t[E],g=s(k,E),_=l.get(g).e,_.f&an||(_.nodes?.a?.measure(),(f??=new Set).add(_));for(E=0;E<o;E+=1){if(k=t[E],g=s(k,E),_=l.get(g).e,e.outrogroups!==null)for(const T of e.outrogroups)T.pending.delete(_),T.done.delete(_);if(_.f&ot&&(xo(_),a&&(_.nodes?.a?.unfix(),(f??=new Set).delete(_))),_.f&an)if(_.f^=an,_===c)Qr(_,null,n);else{var y=d?d.next:c;_===e.effect.last&&(e.effect.last=_.prev),_.prev&&(_.prev.next=_.next),_.next&&(_.next.prev=_.prev),En(e,d,_),En(e,_,y),Qr(_,y,n),d=_,p=[],b=[],c=Yr(d.next);continue}if(_!==c){if(u!==void 0&&u.has(_)){if(p.length<b.length){var m=b[0],I;d=m.prev;var z=p[0],j=p[p.length-1];for(I=0;I<p.length;I+=1)Qr(p[I],m,n);for(I=0;I<b.length;I+=1)u.delete(b[I]);En(e,z.prev,j.next),En(e,d,z),En(e,j,m),c=m,d=j,E-=1,p=[],b=[]}else u.delete(_),Qr(_,c,n),En(e,_.prev,_.next),En(e,_,d===null?e.effect.first:d.next),En(e,d,_),d=_;continue}for(p=[],b=[];c!==null&&c!==_;)(u??=new Set).add(c),b.push(c),c=Yr(c.next);if(c===null)continue}_.f&an||p.push(_),d=_,c=Yr(_.next)}if(e.outrogroups!==null){for(const T of e.outrogroups)T.pending.size===0&&(Mi(e,Aa(T.done)),e.outrogroups?.delete(T));e.outrogroups.size===0&&(e.outrogroups=null)}if(c!==null||u!==void 0){var P=[];if(u!==void 0)for(_ of u)_.f&ot||P.push(_);for(;c!==null;)!(c.f&ot)&&c!==e.fallback&&P.push(c),c=Yr(c.next);var O=P.length;if(O>0){var R=r&Bc&&o===0?n:null;if(a){for(E=0;E<O;E+=1)P[E].nodes?.a?.measure();for(E=0;E<O;E+=1)P[E].nodes?.a?.fix()}Qm(e,P,R)}}a&<(()=>{if(f!==void 0)for(_ of f)_.nodes?.a?.apply()})}function eb(e,t,n,r,s,a,o,l){var c=o&Zv?o&eh?pt(n):Da(n,!1,!1):null,u=o&Qv?pt(s):null;return{v:c,i:u,e:st(()=>(a(t,c??n,u??s,l),()=>{e.delete(r)}))}}function Qr(e,t,n){if(e.nodes)for(var r=e.nodes.start,s=e.nodes.end,a=t&&!(t.f&an)?t.nodes.start:n;r!==null;){var o=Et(r);if(a.before(r),r===s)return;r=o}}function En(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function tb(e,t,n=!1,r=!1,s=!1,a=!1){var o=e,l="";if(n){var c=e;te&&(o=Ie(je(c)))}N(()=>{var u=de;if(l===(l=t()??"")){te&&ct();return}if(n&&!te){u.nodes=null,c.innerHTML=l,l!==""&&We(je(c),c.lastChild);return}if(u.nodes!==null&&(Fu(u.nodes.start,u.nodes.end),u.nodes=null),l!==""){if(te){ue.data;for(var d=ct(),f=d;d!==null&&(d.nodeType!==kn||d.data!=="");)f=d,d=Et(d);if(d===null)throw ks(),Wn;We(ue,f),o=Ie(d);return}var p=r?_s:s?io:void 0,b=zn(r?"svg":s?"math":"template",p);b.innerHTML=l;var k=r||s?b:b.content;if(We(je(k),k.lastChild),r||s)for(;je(k);)o.before(je(k));else o.before(k)}})}function nb(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 rb(e){const t={};e.children&&(t.default=!0);for(const n in e.$$slots)t[n]=!0;return t}function Rs(e,t,n){var r;te&&(r=ue,ct());var s=new qr(e);fn(()=>{var a=t()??null;if(te){var o=lo(r),l=o===Sa,c=a!==null;if(l!==c){var u=Jn();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 sb=()=>performance.now(),sn={tick:e=>requestAnimationFrame(e),now:()=>sb(),tasks:new Set};function dd(){const e=sn.now();sn.tasks.forEach(t=>{t.c(e)||(sn.tasks.delete(t),t.f())}),sn.tasks.size!==0&&sn.tick(dd)}function ab(e){let t;return sn.tasks.size===0&&sn.tick(dd),{promise:new Promise(n=>{sn.tasks.add(t={c:e,f:n})}),abort(){sn.tasks.delete(t)}}}function ca(e,t){Mn(()=>{e.dispatchEvent(new CustomEvent(t))})}function ib(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 Fl(e){const t={},n=e.split(";");for(const r of n){const[s,a]=r.split(":");if(!s||a===void 0)break;const o=ib(s.trim());t[o]=a.trim()}return t}const ob=e=>e;let fd=null;function Ul(e){fd=e}function lb(e,t,n){var r=fd??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=ua(this.element,u,void 0,1,()=>{l?.abort(),l=void 0})}},fix(){if(!e.getAnimations().length){var{position:u,width:d,height:f}=getComputedStyle(e);if(u!=="absolute"&&u!=="fixed"){var p=e.style;c={position:p.position,width:p.width,height:p.height,transform:p.transform},p.position="absolute",p.width=d,p.height=f;var b=e.getBoundingClientRect();if(a.left!==b.left||a.top!==b.top){var k=`translate(${a.left-b.left}px, ${a.top-b.top}px)`;p.transform=p.transform?`${p.transform} ${k}`:k}}}},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 cb(e,t,n,r){var s=(e&sh)!==0,a=(e&ah)!==0,o=s&&a,l=(e&ih)!==0,c=o?"both":s?"in":"out",u,d=t.inert,f=t.style.overflow,p,b;function k(){return Mn(()=>u??=n()(t,r?.()??{},{direction:c}))}var g={is_global:l,in(){if(t.inert=d,!s){b?.abort(),b?.reset?.();return}a||p?.abort(),p=ua(t,k(),b,1,()=>{ca(t,"introend"),p?.abort(),p=u=void 0,t.style.overflow=f})},out(m){if(!a){m?.(),u=void 0;return}t.inert=!0,b=ua(t,k(),p,0,()=>{ca(t,"outroend"),m?.()})},stop:()=>{p?.abort(),b?.abort()}},_=de;if((_.nodes.t??=[]).push(g),s&&la){var E=l;if(!E){for(var y=_.parent;y&&y.f&$t;)for(;(y=y.parent)&&!(y.f&Yt););E=!y||(y.f&wn)!==0}E&&It(()=>{we(()=>g.in())})}}function ua(e,t,n,r,s){var a=r===1;if(ur(t)){var o,l=!1;return lt(()=>{if(!l){var _=t({direction:a?"in":"out"});o=ua(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 ca(e,a?"introstart":"outrostart"),s(),{abort:xt,deactivate:xt,reset:xt,t:()=>r};const{delay:c=0,css:u,tick:d,easing:f=ob}=t;var p=[];if(a&&n===void 0&&(d&&d(0,1),u)){var b=Fl(u(0,1));p.push(b,b)}var k=()=>1-r,g=e.animate(p,{duration:c,fill:"forwards"});return g.onfinish=()=>{g.cancel(),ca(e,a?"introstart":"outrostart");var _=n?.t()??1-r;n?.abort();var E=r-_,y=t.duration*Math.abs(E),m=[];if(y>0){var I=!1;if(u)for(var z=Math.ceil(y/16.666666666666668),j=0;j<=z;j+=1){var P=_+E*f(j/z),O=Fl(u(P,1-P));m.push(O),I||=O.overflow==="hidden"}I&&(e.style.overflow="hidden"),k=()=>{var R=g.currentTime;return _+E*f(R/y)},d&&ab(()=>{if(g.playState!=="running")return!1;var R=k();return d(R,1-R),!0})}g=e.animate(m,{duration:y,fill:"forwards"}),g.onfinish=()=>{k=()=>r,d?.(r,1-r),s()}},{abort:()=>{g&&(g.cancel(),g.effect=null,g.onfinish=xt)},deactivate:()=>{s=xt},reset:()=>{r===0&&d?.(1,0)},t:()=>k()}}function ub(e,t,n,r,s,a){let o=te;te&&ct();var l=null;te&&ue.nodeType===$c&&(l=ue,ct());var c=te?ue:e,u=de,d=new qr(c,!1);fn(()=>{const f=t()||null;var p=s?s():n||f==="svg"?_s:void 0;if(f===null){d.ensure(null,null),pr(!0);return}return d.ensure(f,b=>{if(f){if(l=te?l:zn(f,p),We(l,l),r){te&&xm(f)&&l.append(document.createComment(""));var k=te?je(l):l.appendChild($e());te&&(k===null?Ce(!1):Ie(k)),Ul(u),r(l,k),Ul(null)}de.nodes.end=l,b.before(l)}te&&Ie(b)}),pr(!0),()=>{f&&pr(!1)}},$t),At(()=>{pr(!0)}),o&&(Ce(!0),Ie(c))}function db(e,t){let n=null,r=te;var s;if(te){n=ue;for(var a=je(document.head);a!==null&&(a.nodeType!==kn||a.data!==e);)a=Et(a);if(a===null)Ce(!1);else{var o=Et(a);a.remove(),Ie(o)}}te||(s=document.head.appendChild($e()));try{fn(()=>t(s),Zc|Dn)}finally{r&&(Ce(!0),Ie(n))}}function fb(e,t){It(()=>{var n=e.getRootNode(),r=n.host?n:n.head??n.ownerDocument.head;if(!r.querySelector("#"+t.hash)){const s=zn("style");s.id=t.hash,s.textContent=t.code,r.appendChild(s)}})}function vd(e,t,n){It(()=>{var r=we(()=>t(e,n?.())||{});if(n&&r?.update){var s=!1,a={};Ve(()=>{var o=n();Eo(o),s&&au(a,o)&&(a=o,r.update(o))}),s=!0}if(r?.destroy)return()=>r.destroy()})}function Ro(e,t){var n=void 0,r;Vu(()=>{n!==(n=t())&&(r&&(Ke(r),r=null),n&&(r=st(()=>{It(()=>n(e))})))})}const vb=/[&"<]/g;function hb(e,t){const n=String(e??""),r=vb;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 hd(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=hd(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function pb(){for(var e,t,n=0,r="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=hd(e))&&(r&&(r+=" "),r+=t);return r}const Hl={translate:new Map([[!0,"yes"],[!1,"no"]])};function mb(e,t,n=!1){if(e==="hidden"&&t!=="until-found"&&(n=!0),t==null||!t&&n)return"";const r=dh.call(Hl,e)&&Hl[e].get(t)||t,s=n?'=""':`="${hb(r)}"`;return` ${e}${s}`}function pd(e){return typeof e=="object"?pb(e):e??""}const Kl=[...`
|
|
7
|
+
\r\f \v\uFEFF`];function bb(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||Kl.includes(r[o-1]))&&(l===r.length||Kl.includes(r[l]))?r=(o===0?"":r.substring(0,o))+r.substring(l+1):o=l}}return r===""?null:r}function Wl(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 ci(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function gb(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(ci)),s&&c.push(...Object.keys(s).map(ci));var u=0,d=-1;const g=e.length;for(var f=0;f<g;f++){var p=e[f];if(l?p==="/"&&e[f-1]==="*"&&(l=!1):a?a===p&&(a=!1):p==="/"&&e[f+1]==="*"?l=!0:p==='"'||p==="'"?a=p:p==="("?o++:p===")"&&o--,!l&&a===!1&&o===0){if(p===":"&&d===-1)d=f;else if(p===";"||f===g-1){if(d!==-1){var b=ci(e.substring(u,d).trim());if(!c.includes(b)){p!==";"&&f++;var k=e.substring(u,f).trim();n+=" "+k+";"}}u=f+1,d=-1}}}}return r&&(n+=Wl(r)),s&&(n+=Wl(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=bb(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 ui(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 Ye(e,t,n,r){var s=e.__style;if(te||s!==t){var a=gb(t,r);(!te||a!==e.getAttribute("style"))&&(a==null?e.removeAttribute("style"):e.style.cssText=a),e.__style=t}else r&&(Array.isArray(r)?(ui(e,n?.[0],r[0]),ui(e,n?.[1],r[1],"important")):ui(e,n,r));return r}function os(e,t,n=!1){if(e.multiple){if(t==null)return;if(!Mr(t))return Xh();for(var r of e.options)r.selected=t.includes(es(r));return}for(r of e.options){var s=es(r);if(Ru(s,t)){r.selected=!0;return}}(!n||t!==void 0)&&(e.selectedIndex=-1)}function jo(e){var t=new MutationObserver(()=>{os(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),At(()=>{t.disconnect()})}function ls(e,t,n=t){var r=new WeakSet,s=!0;Is(e,"change",a=>{var o=a?"[selected]":":checked",l;if(e.multiple)l=[].map.call(e.querySelectorAll(o),es);else{var c=e.querySelector(o)??e.querySelector("option:not([disabled])");l=c&&es(c)}n(l),e.__value=l,me!==null&&r.add(me)}),It(()=>{var a=t();if(e===document.activeElement){var o=me;if(r.has(o))return}if(os(e,a,s),s&&a===void 0){var l=e.querySelector(":checked");l!==null&&(a=es(l),n(a))}e.__value=a,s=!1}),jo(e)}function es(e){return"__value"in e?e.__value:e.value}const fr=Symbol("class"),vr=Symbol("style"),md=Symbol("is custom element"),bd=Symbol("is html"),_b=sr?"link":"LINK",yb=sr?"input":"INPUT",wb=sr?"option":"OPTION",kb=sr?"select":"SELECT",xb=sr?"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,lt(n),Ou()}}function cs(e,t){var n=Ma(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==xb)||(e.value=t??"")}function Po(e,t){var n=Ma(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function Do(e,t){t?e.hasAttribute("selected")||e.setAttribute("selected",""):e.removeAttribute("selected")}function Sb(e,t){const n=e.checked;e.defaultChecked=t,e.checked=n}function Eb(e,t){const n=e.value;e.defaultValue=t,e.value=n}function ne(e,t,n,r){var s=Ma(e);te&&(s[t]=e.getAttribute(t),t==="src"||t==="srcset"||t==="href"&&e.nodeName===_b)||s[t]!==(s[t]=n)&&(t==="loading"&&(e[ph]=n),n==null?e.removeAttribute(t):typeof n!="string"&&zo(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function Ib(e,t,n){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n)}function Ab(e,t,n){var r=be,s=de;let a=te;te&&Ce(!1),mt(null),rt(null);try{t!=="style"&&(Oi.has(e.getAttribute("is")||e.nodeName)||!customElements||customElements.get(e.getAttribute("is")||e.nodeName.toLowerCase())?zo(e).includes(t):n&&typeof n=="object")?e[t]=n:ne(e,t,n==null?n:String(n))}finally{mt(r),rt(s),a&&Ce(!0)}}function Cb(e,t,n,r,s=!1,a=!1){if(te&&s&&e.nodeName===yb){var o=e,l=o.type==="checkbox"?"defaultChecked":"defaultValue";l in n||ge(o)}var c=Ma(e),u=c[md],d=!c[bd];let f=te&&u;f&&Ce(!1);var p=t||{},b=e.nodeName===wb;for(var k in t)k in n||(n[k]=null);n.class?n.class=pd(n.class):(r||n[fr])&&(n.class=null),n[vr]&&(n.style??=null);var g=zo(e);for(const j in n){let P=n[j];if(b&&j==="value"&&P==null){e.value=e.__value="",p[j]=P;continue}if(j==="class"){var _=e.namespaceURI==="http://www.w3.org/1999/xhtml";ce(e,_,P,r,t?.[fr],n[fr]),p[j]=P,p[fr]=n[fr];continue}if(j==="style"){Ye(e,P,t?.[vr],n[vr]),p[j]=P,p[vr]=n[vr];continue}var E=p[j];if(!(P===E&&!(P===void 0&&e.hasAttribute(j)))){p[j]=P;var y=j[0]+j[1];if(y!=="$$")if(y==="on"){const O={},R="$$"+j;let T=j.slice(2);var m=bm(T);if(pm(T)&&(T=T.slice(0,-7),O.capture=!0),!m&&E){if(P!=null)continue;e.removeEventListener(T,p[R],O),p[R]=null}if(m)H(T,e,P),le([T]);else if(P!=null){let A=function(D){p[j].call(this,D)};p[R]=$u(T,e,A,O)}}else if(j==="style")ne(e,j,P);else if(j==="autofocus")Lr(e,!!P);else if(!u&&(j==="__value"||j==="value"&&P!=null))e.value=e.__value=P;else if(j==="selected"&&b)Do(e,P);else{var I=j;d||(I=_m(I));var z=I==="defaultValue"||I==="defaultChecked";if(P==null&&!u&&!z)if(c[j]=null,I==="value"||I==="checked"){let O=e;const R=t===void 0;if(I==="value"){let T=O.defaultValue;O.removeAttribute(I),O.defaultValue=T,O.value=O.__value=R?T:null}else{let T=O.defaultChecked;O.removeAttribute(I),O.defaultChecked=T,O.checked=R?T:!1}}else e.removeAttribute(j);else z||g.includes(I)&&(u||typeof P!="string")?(e[I]=P,I in c&&(c[I]=Te)):typeof P!="function"&&ne(e,I,P)}}}return f&&Ce(!0),p}function Tb(e,t,n=[],r=[],s=[],a,o=!1,l=!1){xs(s,n,r,c=>{var u=void 0,d={},f=e.nodeName===kb,p=!1;if(Vu(()=>{var k=t(...c.map(i)),g=Cb(e,u,k,a,o,l);p&&f&&"value"in k&&os(e,k.value);for(let E of Object.getOwnPropertySymbols(d))k[E]||Ke(d[E]);for(let E of Object.getOwnPropertySymbols(k)){var _=k[E];E.description===Kc&&(!u||_!==u[E])&&(d[E]&&Ke(d[E]),d[E]=st(()=>Ro(e,()=>_))),g[E]=_}u=g}),f){var b=e;It(()=>{os(b,u.value,!0),jo(b)})}p=!0})}function Ma(e){return e.__attributes??={[md]:e.nodeName.includes("-"),[bd]:e.namespaceURI===Hc}}var Oi=new Map;function zo(e){var t=e.getAttribute("is")||e.nodeName,n=Oi.get(t);if(n)return n;Oi.set(t,n=[]);for(var r,s=e,a=Element.prototype;a!==s;){r=Yc(s);for(var o in r)r[o].set&&n.push(o);s=Ca(s)}return n}let di=null;function gd(){if(di===null){var e=zn("select");e.innerHTML=ed("<option><span>t</span></option>"),di=e.firstChild?.firstChild?.nodeType===1}return di}function Rb(e,t){gd()&&Ro(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 jb(e,t){var n=te;gd()||(Ce(!1),e.textContent="",e.append(Mu("")));try{t()}finally{n&&(te?v(e):(Ce(!0),Ie(e)))}}function Pb(e){gt(document,["focusin","focusout"],t=>{t&&t.type==="focusout"&&t.relatedTarget||e(document.activeElement)})}function Ee(e,t,n=t){var r=new WeakSet;Is(e,"input",async s=>{var a=s?e.defaultValue:e.value;if(a=vi(e)?hi(a):a,n(a),me!==null&&r.add(me),await Ts(),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(vi(e)?hi(e.value):e.value),me!==null&&r.add(me)),Ve(()=>{var s=t();if(e===document.activeElement){var a=me;if(r.has(a))return}vi(e)&&s===hi(e.value)||e.type==="date"&&!s&&!e.value||s!==e.value&&(e.value=s??"")})}const fi=new Set;function Db(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),Is(n,"change",()=>{var u=n.__value;a&&(u=Yl(o,u,n.checked)),s(u)},()=>s(a?[]:null)),Ve(()=>{var u=r();if(te&&n.defaultChecked!==n.checked){l=!0;return}a?(u=u||[],n.checked=u.includes(n.__value)):n.checked=Ru(n.__value,u)}),At(()=>{var u=o.indexOf(n);u!==-1&&o.splice(u,1)}),fi.has(o)||(fi.add(o),lt(()=>{o.sort((u,d)=>u.compareDocumentPosition(d)===4?-1:1),fi.delete(o)})),lt(()=>{if(l){var u;if(a)u=Yl(o,u,n.checked);else{var d=o.find(f=>f.checked);u=d?.__value}s(u)}})}function ts(e,t,n=t){Is(e,"change",r=>{var s=r?e.defaultChecked:e.checked;n(s)}),(te&&e.defaultChecked!==e.checked||we(t)==null)&&n(e.checked),Ve(()=>{var r=t();e.checked=!!r})}function Yl(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 vi(e){var t=e.type;return t==="number"||t==="range"}function hi(e){return e===""?null:+e}function zb(e,t,n=t){Is(e,"change",()=>{n(e.files)}),te&&e.files&&n(e.files),Ve(()=>{e.files=t()})}function Mo(e){for(var t=[],n=0;n<e.length;n+=1)t.push({start:e.start(n),end:e.end(n)});return t}function Mb(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),Ve(()=>{var o=Number(t());s!==o&&!isNaN(o)&&(e.currentTime=s=o)}),At(()=>{cancelAnimationFrame(r),e.removeEventListener("timeupdate",a)})}function Ob(e,t){var n;gt(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=Mo(r),t(n))})}function Lb(e,t){gt(e,["loadedmetadata"],()=>t(Mo(e.seekable)))}function Nb(e,t){gt(e,["timeupdate"],()=>t(Mo(e.played)))}function qb(e,t){gt(e,["seeking","seeked"],()=>t(e.seeking))}function Vb(e,t){gt(e,["timeupdate","ended"],()=>t(e.ended))}function Bb(e,t){gt(e,["loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","emptied"],()=>t(e.readyState))}function Fb(e,t,n=t){It(()=>{var r=Number(t());r!==e.playbackRate&&!isNaN(r)&&(e.playbackRate=r)}),It(()=>{gt(e,["ratechange"],()=>{n(e.playbackRate)})})}function Ub(e,t,n=t){var r=t(),s=()=>{r!==e.paused&&n(r=e.paused)};gt(e,["play","pause","canplay"],s,r==null),It(()=>{(r=!!t())!==e.paused&&(r?e.pause():e.play().catch(a=>{throw n(r=!0),a}))})}function Hb(e,t,n=t){var r=()=>{n(e.volume)};t()==null&&r(),gt(e,["volumechange"],r,!1),Ve(()=>{var s=Number(t());s!==e.volume&&!isNaN(s)&&(e.volume=s)})}function Kb(e,t,n=t){var r=()=>{n(e.muted)};t()==null&&r(),gt(e,["volumechange"],r,!1),Ve(()=>{var s=!!t();e.muted!==s&&(e.muted=s)})}function Wb(e){gt(window,["online","offline"],()=>{e(navigator.onLine)})}function Yb(e,t,n){var r=Wt(e,t);r&&r.set&&(e[t]=n,At(()=>{e[t]=null}))}class js{#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.#s().observe(t,this.#n),()=>{var s=this.#e.get(t);s.delete(n),s.size===0&&(this.#e.delete(t),this.#t.unobserve(t))}}#s(){return this.#t??(this.#t=new ResizeObserver(t=>{for(var n of t){js.entries.set(n.target,n);for(var r of this.#e.get(n.target)||[])r(n)}}))}}var Gb=new js({box:"content-box"}),_d=new js({box:"border-box"}),Xb=new js({box:"device-pixel-content-box"});function Jb(e,t,n){var r=t==="contentRect"||t==="contentBoxSize"?Gb:t==="borderBoxSize"?_d:Xb,s=r.observe(e,a=>n(a[t]));At(s)}function Zb(e,t,n){var r=_d.observe(e,()=>n(e[t]));It(()=>(we(()=>n(e[t])),r))}function Gl(e,t){return e===t||e?.[tt]===t}function ze(e={},t,n,r){var s=Se.r,a=de;return It(()=>{var o,l;return Ve(()=>{o=l,l=r?.()||[],we(()=>{e!==n(...l)&&(t(e,...l),o&&Gl(n(...o),e)&&t(null,...o))})}),()=>{let c=a;for(;c!==s&&c.parent!==null&&c.parent.fξ)c=c.parent;const u=()=>{l&&Gl(n(...l),e)&&t(null,...l)},d=c.teardown;c.teardown=()=>{u(),d?.()}}}),e}function Qb(e,t,n,r=n){t.addEventListener("input",()=>{r(t[e])}),Ve(()=>{var s=n();if(t[e]!==s)if(s==null){var a=t[e];r(a)}else t[e]=s+""})}function $b(e,t,n,r,s){var a=()=>{r(n[e])};n.addEventListener(t,a),s?Ve(()=>{n[e]=s()}):a(),(n===document.body||n===window||n===document)&&At(()=>{n.removeEventListener(t,a)})}function eg(e,t){gt(e,["focus","blur"],()=>{t(e===document.activeElement)})}function tg(e,t,n=t){var r=e==="x",s=()=>Mn(()=>{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;Ve(()=>{var u=t();c?c=!1:!a&&u!=null&&(a=!0,clearTimeout(o),r?scrollTo(u,window.scrollY):scrollTo(window.scrollX,u),o=setTimeout(l,100))}),It(s),At(()=>{removeEventListener("scroll",s)})}function ng(e,t){gt(window,["resize"],()=>Mn(()=>t(window[e])))}function rg(e){return function(...t){var n=t[0];n.isTrusted&&e?.apply(this,t)}}function sg(e){return function(...t){var n=t[0];n.target===this&&e?.apply(this,t)}}function ag(e){return function(...t){var n=t[0];return n.stopPropagation(),e?.apply(this,t)}}function ig(e){var t=!1;return function(...n){if(!t)return t=!0,e?.apply(this,n)}}function og(e){return function(...t){var n=t[0];return n.stopImmediatePropagation(),e?.apply(this,t)}}function lg(e){return function(...t){var n=t[0];return n.preventDefault(),e?.apply(this,t)}}function cg(e=!1){const t=Se,n=t.l.u;if(!n)return;let r=()=>Eo(t.s);if(e){let s=0,a={};const o=Es(()=>{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&&Nu(()=>{Xl(t,r),wi(n.b)}),xe(()=>{const s=we(()=>n.m.map(fh));return()=>{for(const a of s)typeof a=="function"&&a()}}),n.a.length&&xe(()=>{Xl(t,r),wi(n.a)})}function Xl(e,t){if(e.l.s)for(const n of e.l.s)i(n);t()}function ug(e){var t=pt(0);return function(){return arguments.length===1?(x(t,i(t)+1),arguments[0]):(i(t),e())}}function dg(e,t){var n=e.$$events?.[t.type],r=Mr(n)?n.slice():n==null?[]:[n];for(var s of r)s.call(this,t)}function fg(e,t,n){e.$$events||={},e.$$events[t]||=[],e.$$events[t].push(n)}function vg(e){for(var t in e)t in this&&(this[t]=e[t])}function hg(e,t=1){const n=e();return e(n+t),n}function pg(e,t=1){const n=e()+t;return e(n),n}const mg={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 bg(e,t,n){return new Proxy({props:e,exclude:t},mg)}const gg={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{rt(e.parent_effect),e.special[t]=Z({get[t](){return e.props[t]}},t,Fc)}finally{rt(r)}}return e.special[t](n),Cr(e.version),!0},getOwnPropertyDescriptor(e,t){if(!e.exclude.includes(t)&&t in e.props)return{enumerable:!0,configurable:!0,value:e.props[t]}},deleteProperty(e,t){return e.exclude.includes(t)||(e.exclude.push(t),Cr(e.version)),!0},has(e,t){return e.exclude.includes(t)?!1:t in e.props},ownKeys(e){return Reflect.ownKeys(e.props).filter(t=>!e.exclude.includes(t))}};function _g(e,t){return new Proxy({props:e,exclude:t,special:{},version:pt(0),parent_effect:de},gg)}const yg={get(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(ur(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];ur(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(ur(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===tt||t===Ta)return!1;for(let n of e.props)if(ur(n)&&(n=n()),n!=null&&t in n)return!0;return!1},ownKeys(e){const t=[];for(let n of e.props)if(ur(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 Ps(...e){return new Proxy({props:e},yg)}function Z(e,t,n,r){var s=(n&nh)!==0,a=(n&rh)!==0,o=r,l=!0,c=()=>(l&&(l=!1,o=a?we(r):r),o);let u;if(s){var d=tt in e||Ta in e;u=Wt(e,t)?.set??(d&&t in e?y=>e[t]=y:void 0)}var f,p=!1;s?[f,p]=bu(()=>e[t]):f=e[t],f===void 0&&r!==void 0&&(f=c(),u&&(Oh(),u(f)));var b;if(b=()=>{var y=e[t];return y===void 0?c():(l=!0,y)},!(n&Fc))return b;if(u){var k=e.$$legacy;return function(y,m){return arguments.length>0?((!m||k||p)&&u(m?b():y),y):b()}}var g=!1,_=(n&th?Es:mo)(()=>(g=!1,b()));s&&i(_);var E=de;return function(y,m){if(arguments.length>0){const I=m?i(_):s?oe(y):y;return x(_,I),g=!0,o!==void 0&&(o=I),y}return _n&&g||E.f&vt?_.v:i(_)}}function wg(e,t,n,r,s,a){xu(t,()=>{var o=!1;co?.[kt],Ve(()=>{if(!o){var[l,c]=bu(n);if(!c){var u=r(),d=!1,f=Ve(()=>{d||l[u]});d=!0,f.deps===null&&(Fh(),o=!0)}}})})}function kg(e){return new xg(e)}class xg{#e;#t;constructor(t){var n=new Map,r=(a,o)=>{var l=Da(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===Ta?!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?sd:qe)(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)&&Rn(),this.#e=s.$$events;for(const a of Object.keys(this.#t))a==="$set"||a==="$destroy"||a==="$on"||Yn(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=()=>{Xe(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 yd;typeof HTMLElement=="function"&&(yd=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=zn("slot");r!=="default"&&(a.name=r),S(s,a)}};if(await Promise.resolve(),!this.$$cn||this.$$c)return;const t={},n=Sg(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]=Ws(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=kg({component:this.$$ctor,target:this.$$shadowRoot||this,props:{...this.$$d,$$slots:t,$$host:this}}),this.$$me=Cs(()=>{Ve(()=>{this.$$r=!0;for(const r of ra(this.$$c)){if(!this.$$p_d[r]?.reflect)continue;this.$$d[r]=this.$$c[r];const s=Ws(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]=Ws(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 ra(this.$$p_d).find(t=>this.$$p_d[t].attribute===e||!this.$$p_d[t].attribute&&t.toLowerCase()===e)||e}});function Ws(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 Sg(e){const t={};return e.childNodes.forEach(n=>{t[n.slot||"default"]=!0}),t}function Eg(e,t,n,r,s,a){let o=class extends yd{constructor(){super(e,n,s),this.$$p_d=t}static get observedAttributes(){return ra(t).map(l=>(t[l].attribute||l).toLowerCase())}};return ra(t).forEach(l=>{Yn(o.prototype,l,{get(){return this.$$c&&l in this.$$c?this.$$c[l]:this.$$d[l]},set(c){c=Ws(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=>{Yn(o.prototype,l,{get(){return this.$$c?.[l]}})}),a&&(o=a(o)),e.element=o,o}function Ig(e,...t){return we(()=>{try{let n=!1;const r=[];for(const s of t)s&&typeof s=="object"&&tt in s?(r.push(Zn(s,!0)),n=!0):r.push(s);n&&(Uh(e),console.log("%c[snapshot]","color: grey",...r))}catch{}}),t}const wd=Object.freeze(Object.defineProperty({__proto__:null,CLASS:fr,FILENAME:kt,HMR:cr,NAMESPACE_SVG:_s,STYLE:vr,aborted:ji,action:vd,get active_effect(){return de},add_legacy_event_listener:fg,add_locations:Nm,add_svelte_meta:ip,animation:lb,append:S,append_styles:fb,apply:sm,assign:Mm,assign_async:Om,async:Km,async_derived:Su,attach:Ro,attachment:zm,attr:mb,attribute_effect:Tb,autofocus:Lr,await:Gm,bind_active_element:Pb,bind_buffered:Ob,bind_checked:ts,bind_content_editable:Qb,bind_current_time:Mb,bind_element_size:Zb,bind_ended:Vb,bind_files:zb,bind_focused:eg,bind_group:Db,bind_muted:Kb,bind_online:Wb,bind_paused:Ub,bind_playback_rate:Fb,bind_played:Nb,bind_prop:Yb,bind_property:$b,bind_ready_state:Bb,bind_resize_observer:Jb,bind_seekable:Lb,bind_seeking:qb,bind_select_value:ls,bind_this:ze,bind_value:Ee,bind_volume:Hb,bind_window_scroll:tg,bind_window_size:ng,boundary:ku,bubble_event:dg,check_target:Fm,child:h,cleanup_styles:Lm,clsx:pd,comment:He,component:Rs,create_custom_element:Eg,create_ownership_validator:Bm,css_props:Zm,customizable_select:jb,deep_read:oa,deep_read_state:Eo,deferred_template_effect:Gp,delegate:le,delegated:H,derived:W,derived_safe_equal:mo,get document(){return ju},each:he,eager:Sp,effect:It,effect_root:Cs,effect_tracking:As,element:ub,equals:Vp,event:Pe,exclude_from_object:hh,fallback:vh,first_child:ve,flush:Rn,for_await_track_reactivity_loss:jp,from_html:C,from_mathml:lm,from_svg:Ao,from_tree:cm,get:i,head:db,hmr:Vm,html:tb,hydrate_template:Zh,if:K,index:bt,init:cg,init_select:jo,inspect:Hm,invalid_default_snippet:gh,invalidate_inner_signals:Zp,invalidate_store:pp,invoke_error_boundary:on,key:Jm,legacy_api:Um,legacy_pre_effect:Kp,legacy_pre_effect_reset:Wp,legacy_rest_props:_g,log_if_contains_state:Ig,mark_store_binding:yp,mutable_source:Da,mutate:Lp,next:Gt,noop:xt,once:ig,pending:Tp,pop:se,preventDefault:lg,prevent_snippet_stringification:id,prop:Z,props_id:fm,proxy:oe,push:re,raf:sn,reactive_import:ug,remove_input_defaults:ge,remove_textarea_child:yo,render_effect:Ve,replay_events:rm,reset:v,rest_props:bg,run:Pp,run_after_blockers:xu,safe_get:tm,sanitize_slots:rb,save:Rp,select_option:os,selectedcontent:Rb,self:sg,set:x,set_attribute:ne,set_checked:Po,set_class:ce,set_custom_element_data:Ab,set_default_checked:Sb,set_default_value:Eb,set_selected:Do,set_style:Ye,set_text:M,set_value:cs,set_xlink_attribute:Ib,setup_stores:mp,sibling:w,slot:nb,snapshot:Zn,snippet:en,spread_props:Ps,state:U,stopImmediatePropagation:og,stopPropagation:ag,store_get:vp,store_mutate:bp,store_set:mu,store_unsub:hp,strict_equals:qp,tag:rp,tag_proxy:lu,template_effect:N,text:Xt,tick:Ts,to_array:Jc,trace:np,track_reactivity_loss:Ci,transition:cb,trusted:rg,untrack:we,update:Cr,update_legacy_props:vg,update_pre:Np,update_pre_prop:pg,update_pre_store:_p,update_prop:hg,update_store:gp,user_effect:xe,user_pre_effect:Nu,validate_binding:wg,validate_dynamic_element_tag:Em,validate_snippet_args:Wm,validate_store:Im,validate_void_dynamic_element:Sm,wait:Dp,get window(){return Ti},with_script:um,wrap_snippet:Am},Symbol.toStringTag,{value:"Module"}));class Jl{#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 Zl{#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 Ag=["workspace","user"],Oo="state:manage",tn={ephemeral:new Jl,session:new Jl,workspace:new Zl("sh3:workspace:"),user:new Zl("sh3:user:")},pi=new Map;let mi=!1;function Cg(e,t,n){pi.set(`${e}:${t}`,{zone:e,shardId:t,value:n}),!mi&&(mi=!0,queueMicrotask(()=>{mi=!1;for(const{zone:r,shardId:s,value:a}of pi.values())tn[r].write(s,a);pi.clear()}))}function Oa(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,Ag.includes(r)&&Cs(()=>{let u=!0;xe(()=>{const d=Zn(c);if(u){u=!1;return}Cg(r,e,d)})})}return n}function Ql(e,t){tn[e]=t}function Tg(e,t){return tn[e].read(t)}function Li(e,t){tn[e].delete(t)}const Rg="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(Rg);const jg=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function Pg(e){const t=document.activeElement;function n(){return Array.from(e.querySelectorAll(jg))}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 Dg=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 zg(e,t){re(t,!0);let n;xe(()=>{if(n)return Pg(n)});function r(l){t.onBackdropClick&&l.target===l.currentTarget&&t.onBackdropClick()}var s=Dg(),a=h(s),o=h(a);Rs(o,()=>t.Content,(l,c)=>{c(l,Ps(()=>t.contentProps,{get close(){return t.close}}))}),v(a),ze(a,l=>n=l,()=>n),v(s),N(()=>Ye(a,t.boxStyle)),H("click",s,r),S(e,s),se()}le(["click"]);const Lo={};function Mg(e,t){Lo[e]=t}function Og(e){delete Lo[e]}function La(e){const t=Lo[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 jn=oe(new Map),at=oe({id:null}),Rr=oe({id:null});function Lg(){return Rr.id}function No(e){jn.set(e.manifest.id,e)}function ar(){return Array.from(jn.values()).map(e=>e.manifest)}function kd(){const e=at.id;return e?jn.get(e)?.manifest??null:null}function Pn(e){return jn.get(e)}const ns=[],_r=[];let us=null;function Ng(e){us=e}function qg(e){if(!at.id)throw new Error("pushNavEntry requires an active app");const t=Symbol("nav-entry");return _r.push({id:t,label:e.label,onPop:e.onPop}),{remove(){const n=_r.findIndex(r=>r.id===t);n>=0&&_r.splice(n,1)}}}function xd(e){const t=Symbol("dismissable");return ns.push({id:t,dismiss:e}),{unregister(){const n=ns.findIndex(r=>r.id===t);n>=0&&ns.splice(n,1)}}}function Sd(){_r.length=0}function Vg(){if(ns.length>0){ns.pop().dismiss();return}if(_r.length>0){_r.pop().onPop();return}at.id&&us&&us.returnToHome()}function Bg(){at.id||Rr.id&&us&&us.launchApp(Rr.id)}const St=[];let da=!1,Pt=null;const Fg=.5;function Ed(){const e=La("modal");if(St.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, ${Fg})`);const t=St[St.length-1].host;e.insertBefore(Pt,t)}function Id(e){e.key==="Escape"&&St.length!==0&&(e.stopPropagation(),e.preventDefault(),St[St.length-1].handle.close())}function Ug(){da||(da=!0,document.addEventListener("keydown",Id,!0))}function Hg(){St.length>0||da&&(da=!1,document.removeEventListener("keydown",Id,!0))}function Ad(e){const t=St.indexOf(e);t<0||(St.splice(t,1),Xe(e.frame),e.host.remove(),Ed(),Hg())}function Kg(e,t,n){const r=La("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:()=>Ad(a)},l=xd(()=>o.close()),c=o.close;o.close=()=>{l.unregister(),c()};const u=qe(zg,{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,St.push(a),Ed(),Ug(),o}function Wg(){for(;St.length>0;)Ad(St[St.length-1])}const xn={open:Kg,closeAll:Wg};var Yg=C('<div class="popup-frame svelte-mp81cl" role="menu" tabindex="-1"><!></div>');function Gg(e,t){re(t,!0);let n,r=U(-9999),s=U(-9999);xe(()=>{if(!n)return;const l=n.getBoundingClientRect(),c=4,u=window.innerWidth,d=window.innerHeight;let f=t.anchorRect.bottom+c,p=t.anchorRect.left;if(p+l.width>u-c&&(p=Math.max(c,u-l.width-c)),f+l.height>d-c){const b=t.anchorRect.top-l.height-c;f=b>=c?b:Math.max(c,d-l.height-c)}x(r,f,!0),x(s,p,!0)});var a=Yg(),o=h(a);Rs(o,()=>t.Content,(l,c)=>{c(l,Ps(()=>t.contentProps,{get close(){return t.close}}))}),v(a),ze(a,l=>n=l,()=>n),N(()=>Ye(a,`top: ${i(r)??""}px; left: ${i(s)??""}px;`)),S(e,a),se()}function Xg(e){return e instanceof HTMLElement?e.getBoundingClientRect():new DOMRect(e.x,e.y,0,0)}let qt=null;function Cd(e){if(!qt)return;const t=e.target;t&&qt.host.contains(t)||qt.handle.close()}function Td(e){qt&&e.key==="Escape"&&(e.stopPropagation(),e.preventDefault(),qt.handle.close())}function Jg(){document.addEventListener("pointerdown",Cd,!0),document.addEventListener("keydown",Td,!0)}function Zg(){document.removeEventListener("pointerdown",Cd,!0),document.removeEventListener("keydown",Td,!0)}function Ni(e){qt===e&&(qt=null,Zg(),Xe(e.frame),e.host.remove())}function Qg(e,t,n){qt&&Ni(qt);const r=La("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=Xg(t.anchor),o={},l={close:()=>Ni(o)},c=xd(()=>l.close()),u=l.close;l.close=()=>{c.unregister(),u()};const d=qe(Gg,{target:s,props:{Content:e,contentProps:n??{},anchorRect:a,close:l.close}});return o.host=s,o.frame=d,o.handle=l,qt=o,queueMicrotask(Jg),l}function $g(){qt&&Ni(qt)}const qi={show:Qg,close:$g};var e_=C('<div role="status" aria-live="polite"><span class="toast-level svelte-12gwnj0"> </span> <span class="toast-message svelte-12gwnj0"> </span></div>');function t_(e,t){var n=e_(),r=h(n),s=h(r,!0);v(r);var a=w(r,2),o=h(a,!0);v(a),v(n),N(()=>{ce(n,1,`toast toast-${t.level??""}`,"svelte-12gwnj0"),M(s,t.level),M(o,t.message)}),H("click",n,function(...l){t.close?.apply(this,l)}),S(e,n)}le(["click"]);const fa=new Set;let ut=null;function n_(){if(ut&&ut.isConnected)return ut;const e=La("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 Vi(e){fa.has(e)&&(fa.delete(e),e.timer!==null&&(clearTimeout(e.timer),e.timer=null),Xe(e.instance),e.host.remove())}function r_(e,t={}){const n=t.level??"info",r=t.duration??3e3,s=n_(),a=document.createElement("div");a.className="sh3-toast-host",s.appendChild(a);const o={},l={close:()=>Vi(o)},c=qe(t_,{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(()=>Vi(o),r):null,fa.add(o),l}function s_(){for(const e of[...fa])Vi(e)}const An={notify:r_,clear:s_},$l={w:120,h:80};function qo(e){if(e.type==="slot")return{...$l};if(e.type==="tabs")return{...$l};const t=e.children.map(qo);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 ec=32,tc={x:48,y:48};function a_(e,t){if(e.length===0)return{...tc};const n=e[e.length-1],r={x:n.position.x+ec,y:n.position.y+ec};return r.x+120>t.w||r.y+32>t.h?{...tc}:r}let nc=0;function i_(){return nc+=1,`float-${Date.now().toString(36)}-${nc.toString(36)}`}function Rd(e){return e.type==="slot"?e.viewId==null:e.type==="tabs"?e.tabs.every(t=>t.viewId==null):e.children.every(Rd)}function o_(e){return e.closest("[data-shell-overlay-host]")}class l_ extends Map{#e=new Map;#t=U(0);#n=U(0);#s=mn||-1;constructor(t){if(super(),t){for(var[n,r]of t)super.set(n,r);this.#n.v=super.size}}#r(t){return mn===this.#s?U(t):pt(t)}has(t){var n=this.#e,r=n.get(t);if(r===void 0)if(super.has(t))r=this.#r(0),n.set(t,r);else return i(this.#t),!1;return i(r),!0}forEach(t,n){this.#i(),super.forEach(t,n)}get(t){var n=this.#e,r=n.get(t);if(r===void 0)if(super.has(t))r=this.#r(0),n.set(t,r);else{i(this.#t);return}return i(r),super.get(t)}set(t,n){var r=this.#e,s=r.get(t),a=super.get(t),o=super.set(t,n),l=this.#t;if(s===void 0)s=this.#r(0),r.set(t,s),x(this.#n,super.size),rn(l);else if(a!==n){rn(s);var c=l.reactions===null?null:new Set(l.reactions),u=c===null||!s.reactions?.every(d=>c.has(d));u&&rn(l)}return o}delete(t){var n=this.#e,r=n.get(t),s=super.delete(t);return r!==void 0&&(n.delete(t),x(r,-1)),s&&(x(this.#n,super.size),rn(this.#t)),s}clear(){if(super.size!==0){super.clear();var t=this.#e;x(this.#n,0);for(var n of t.values())x(n,-1);rn(this.#t),t.clear()}}#i(){i(this.#t);var t=this.#e;if(this.#n.v!==t.size){for(var n of super.keys())if(!t.has(n)){var r=this.#r(0);t.set(n,r)}}for([,r]of this.#e)i(r)}keys(){return i(this.#t),super.keys()}values(){return this.#i(),super.values()}entries(){return this.#i(),super.entries()}[Symbol.iterator](){return this.entries()}get size(){return i(this.#n),super.size}}const Bi=new l_;function ds(e,t){t?Bi.set(e,!0):Bi.delete(e)}function c_(e){return Bi.get(e)??!1}let u_=[],Vo=null,Na=()=>({w:1600,h:900});function d_(e,t){Vo=e,Na=t}function f_(){Vo=null,Na=()=>({w:1600,h:900})}function Vr(){return Vo??u_}const Bo=new Map;function v_(e){return Bo.get(e)}const bn=new Map;let rc=0;function h_(e){return rc+=1,`float:${e}:${rc}`}const p_={w:600,h:400};function m_(e,t){return{w:Math.max(e.w,t.w),h:Math.max(e.h,t.h)}}function b_(e,t={}){const n=Vr(),r=i_(),s=h_(e);let a;if(t.dismissable){const d={type:"slot",slotId:s,viewId:e};t.meta&&(d.meta=t.meta),a=d}else{const d=t.title??e,f={slotId:s,viewId:e,label:d};t.meta&&(f.meta=t.meta),a={type:"tabs",tabs:[f],activeTab:0}}const o=qo(a),l=t.size??m_(p_,o),c=t.position??a_(n,Na()),u={id:r,content:a,position:c,size:l,title:t.title};if(t.dismissable&&(u.dismissable=!0),t.dismissable&&t.anchor){const d=o_(t.anchor);d&&Bo.set(r,d)}return n.push(u),r}function g_(e){const t=Vr(),n=t.findIndex(r=>r.id===e);n<0||(t.splice(n,1),Bo.delete(e),bn.delete(e),ds(e,!1))}function __(){return Vr().slice()}function jd(e){const t=Vr(),n=t.findIndex(s=>s.id===e);if(n<0||n===t.length-1)return;const[r]=t.splice(n,1);t.push(r)}function Pd(e){if(bn.has(e))return;const t=Vr().find(r=>r.id===e);if(!t)return;bn.set(e,{position:{x:t.position.x,y:t.position.y},size:{w:t.size.w,h:t.size.h}}),ds(e,!0);const n=Na();t.position.x=0,t.position.y=0,t.size.w=n.w,t.size.h=n.h,jd(e)}function Dd(e){const t=bn.get(e);if(!t)return;const n=Vr().find(r=>r.id===e);if(!n){bn.delete(e),ds(e,!1);return}n.position.x=t.position.x,n.position.y=t.position.y,n.size.w=t.size.w,n.size.h=t.size.h,bn.delete(e),ds(e,!1)}function y_(e){bn.has(e)?Dd(e):Pd(e)}function w_(e){bn.has(e)&&(bn.delete(e),ds(e,!1))}function k_(e){return c_(e)}const Re={open:b_,close:g_,list:__,focus:jd,maximize:Pd,restore:Dd,toggleMaximize:y_,unmaximize:w_,isMaximized:k_};let va=null;function x_(e){va=e}function S_(){va=null}function Fo(){if(!va)throw new Error("presetManager: no app attached — bind an AppLayoutBlob first");return va}function E_(){return Object.keys(Fo().presets)}function I_(){return Fo().activePreset}function A_(e){const t=Fo();if(!(e in t.presets))throw new Error(`presetManager.switch: unknown preset "${e}"`);t.activePreset=e}const C_={list:E_,active:I_,switch:A_},mr=new Map,Ys=new Map,Fi=new Set;function sc(e){const t=Ys.get(e);if(t)for(const n of t)n();for(const n of Fi)n(e)}function zd(e,t){const n=Symbol();let r=mr.get(e);r||(r=new Map,mr.set(e,r)),r.set(n,t),sc(e);let s=!1;return()=>{if(s)return;s=!0;const a=mr.get(e);a&&a.delete(n)&&(a.size===0&&mr.delete(e),sc(e))}}function qa(e){const t=mr.get(e);return t?Array.from(t.values()):[]}function T_(){return Array.from(mr.keys())}function Md(e,t){let n=Ys.get(e);n||(n=new Set,Ys.set(e,n)),n.add(t);let r=!1;return()=>{r||(r=!0,n.delete(t),n.size===0&&Ys.delete(e))}}function R_(e){Fi.add(e);let t=!1;return()=>{t||(t=!0,Fi.delete(e))}}const j_=Object.freeze([".md",".txt",".json",".guml",".css",".js",".ts",".tsx",".jsx",".html",".svg",".csv",".yaml",".yml",".xml",".log",".ini",".toml"]);function P_(e){return e.kind?e.kind:e.extension&&j_.includes(e.extension.toLowerCase())?"text":"binary"}const Gs=[];function ac(e){return Gs.push(e),()=>{const t=Gs.indexOf(e);t>=0&&Gs.splice(t,1)}}function D_(e,t=[]){return[...Gs,...t].filter(r=>{try{return r.appliesTo(e)}catch{return!1}}).sort((r,s)=>(s.priority??0)-(r.priority??0))[0]??null}var z_=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),O_=C("<option> </option>"),L_=C("<button> </button>"),N_=C('<pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre>'),q_=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>'),V_=C('<div class="sh3-conflict-text svelte-iwgja4"><!></div>');function B_(e,t){re(t,!0);let n=U("");xe(()=>{(!i(n)||!t.item.branches.find(b=>b.origin===i(n)))&&x(n,t.item.branches[0]?.origin??"local",!0)});const r=W(()=>t.item.branches.length===2),s=W(()=>i(r)?t.item.branches[0]:t.item.branches.find(b=>b.origin===i(n))??t.item.branches[0]),a=W(()=>i(r)?t.item.branches[1]:t.item.branches.find(b=>b.origin===t.selectedOrigin)??t.item.branches[1]??t.item.branches[0]);function o(b,k){const g=(b??"").split(/\r?\n/),_=(k??"").split(/\r?\n/),E=[],y=Math.max(g.length,_.length);for(let m=0;m<y;m++){const I=g[m],z=_[m];I===z?typeof I=="string"&&E.push({kind:"same",text:I}):(typeof I=="string"&&E.push({kind:"left",text:I}),typeof z=="string"&&E.push({kind:"right",text:z}))}return E}const l=W(()=>!i(s)||!i(a)?[]:o(i(s).content??"",i(a).content??"")),c=W(()=>i(l).filter(b=>b.kind!=="same").length);var u=V_(),d=h(u);{var f=b=>{var k=M_(),g=ve(k),_=h(g);let E;var y=h(_),m=h(y);v(y);var I=w(y,2),z=h(I),j=h(z,!0);v(z),v(I),v(_);var P=w(_,2);let O;var R=h(P),T=h(R);v(R);var A=w(R,2),D=h(A),B=h(D,!0);v(D),v(A),v(P),v(g);var L=w(g,2),F=h(L),V=h(F);v(F);var q=w(F,2),G=h(q);he(G,21,()=>i(l),bt,(X,ae)=>{var Y=z_(),J=h(Y);v(Y),N(()=>{ce(Y,1,`diff-${i(ae).kind}`,"svelte-iwgja4"),M(J,`${i(ae).kind==="same"?" ":i(ae).kind==="left"?"- ":"+ "}${i(ae).text??""}
|
|
8
|
+
`)}),S(X,Y)}),v(G),v(q),v(L),N(()=>{E=ce(_,1,"sh3-conflict-text-pane svelte-iwgja4",null,E,{selected:i(s).origin===t.selectedOrigin}),M(m,`${i(s).origin??""} · v${i(s).version??""}`),M(j,i(s).content??""),O=ce(P,1,"sh3-conflict-text-pane svelte-iwgja4",null,O,{selected:i(a).origin===t.selectedOrigin}),M(T,`${i(a).origin??""} · v${i(a).version??""}`),M(B,i(a).content??""),M(V,`Line diff (${i(c)??""} difference${i(c)===1?"":"s"})`)}),H("click",_,()=>t.onSelect(i(s).origin)),H("keydown",_,X=>{(X.key==="Enter"||X.key===" ")&&t.onSelect(i(s).origin)}),H("click",P,()=>t.onSelect(i(a).origin)),H("keydown",P,X=>{(X.key==="Enter"||X.key===" ")&&t.onSelect(i(a).origin)}),S(b,k)},p=b=>{var k=q_(),g=h(k),_=h(g),E=w(h(_));he(E,21,()=>t.item.branches,z=>z.origin,(z,j)=>{var P=O_(),O=h(P,!0);v(P);var R={};N(()=>{M(O,i(j).origin),R!==(R=i(j).origin)&&(P.value=(P.__value=i(j).origin)??"")}),S(z,P)}),v(E),v(_),v(g);var y=w(g,2);he(y,21,()=>t.item.branches,z=>z.origin,(z,j)=>{var P=L_();let O;var R=h(P);v(P),N(()=>{O=ce(P,1,"sh3-conflict-text-tab svelte-iwgja4",null,O,{selected:i(j).origin===t.selectedOrigin}),M(R,`${i(j).origin??""} · v${i(j).version??""}`)}),H("click",P,()=>t.onSelect(i(j).origin)),S(z,P)}),v(y);var m=w(y,2);{var I=z=>{var j=N_(),P=h(j),O=h(P,!0);v(P),v(j),N(()=>M(O,i(a).content??"")),S(z,j)};K(m,z=>{i(a)&&z(I)})}v(k),ls(E,()=>i(n),z=>x(n,z)),S(b,k)};K(d,b=>{i(r)&&i(s)&&i(a)?b(f):b(p,-1)})}v(u),S(e,u),se()}le(["click","keydown"]);var F_=C("· <code> </code>",1),U_=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>'),H_=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 K_(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=H_(),a=w(h(s),2);he(a,21,()=>t.item.branches,o=>o.origin,(o,l)=>{var c=U_(),u=h(c);let d;var f=h(u),p=h(f,!0);v(f);var b=w(f,2),k=h(b),g=w(k);{var _=E=>{var y=F_(),m=w(ve(y)),I=h(m,!0);v(m),N(()=>M(I,i(l).hashPreview)),S(E,y)};K(g,E=>{i(l).hashPreview&&E(_)})}v(b),v(u),v(c),N((E,y)=>{d=ce(u,1,"sh3-conflict-meta-row svelte-1nz3djn",null,d,{selected:i(l).origin===t.selectedOrigin}),M(p,i(l).origin),M(k,`v${i(l).version??""} · ${E??""} · ${y??""} `)},[()=>r(i(l).at),()=>n(i(l).sizeBytes)]),H("click",u,()=>t.onSelect(i(l).origin)),S(o,c)}),v(a),v(s),S(e,s),se()}le(["click"]);const W_=1048576;function Y_(e){return typeof e=="number"&&e>W_}const G_={id:"sh3-core.text",priority:1,appliesTo:e=>P_(e)!=="text"?!1:!e.branches.some(t=>Y_(t.sizeBytes)),mount(e,t){const n=qe(B_,{target:e,props:t});return()=>{Xe(n)}}},X_={id:"sh3-core.meta",priority:0,appliesTo:()=>!0,mount(e,t){const n=qe(K_,{target:e,props:t});return()=>{Xe(n)}}};let ic=!1;function J_(){ic||(ic=!0,ac(G_),ac(X_))}var Z_=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 Q_(e,t){var n=Z_(),r=h(n),s=h(r);v(r);var a=w(r,4),o=h(a);Lr(o,!0);var l=w(o,2),c=w(l,2);v(a),v(n),N(()=>M(s,`${t.count??""} conflict${t.count===1?"":"s"} to resolve`)),H("click",o,function(...u){t.onOverwriteMostRecent?.apply(this,u)}),H("click",l,function(...u){t.onResolveIndividually?.apply(this,u)}),H("click",c,function(...u){t.onCancel?.apply(this,u)}),S(e,n)}le(["click"]);var $_=C('<span class="sh3-conflict-detail-counter svelte-pw8iv6"> </span>'),ey=C('<button type="button"><span><!></span> <span class="sh3-conflict-detail-rail-label svelte-pw8iv6"> </span></button>'),ty=C('<aside class="sh3-conflict-detail-rail svelte-pw8iv6"></aside>'),ny=C('<label class="sh3-conflict-detail-branch svelte-pw8iv6"><input type="radio"/> <span> </span></label>'),ry=C('<div class="sh3-conflict-detail-branches svelte-pw8iv6"></div> <div class="sh3-conflict-detail-renderer svelte-pw8iv6"></div>',1),sy=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 ay(e,t){re(t,!0);const n=W(()=>t.items[t.currentIndex]),r=W(()=>i(n)?t.selections[i(n).id]??i(n).branches[0]?.origin??"":""),s=W(()=>i(n)?D_(i(n),t.contributed):null);let a=U(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:V=>t.onSelect(i(n).id,V)};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=W(()=>t.items.map(F=>t.skipped[F.id]?"skipped":t.selections[F.id]?"resolved":"pending"));var d=sy(),f=h(d),p=h(f),b=h(p,!0);v(p);var k=w(p,2);{var g=F=>{var V=$_(),q=h(V);v(V),N(()=>M(q,`${t.currentIndex+1} / ${t.items.length??""}`)),S(F,V)};K(k,F=>{t.items.length>1&&F(g)})}v(f);var _=w(f,2),E=h(_);{var y=F=>{var V=ty();he(V,23,()=>t.items,q=>q.id,(q,G,X)=>{var ae=ey();let Y;var J=h(ae),ie=h(J);{var fe=Ne=>{var Tt=Xt("✓");S(Ne,Tt)},Q=Ne=>{var Tt=Xt("⟶");S(Ne,Tt)},pe=Ne=>{var Tt=Xt("·");S(Ne,Tt)};K(ie,Ne=>{i(u)[i(X)]==="resolved"?Ne(fe):i(u)[i(X)]==="skipped"?Ne(Q,1):Ne(pe,-1)})}v(J);var ke=w(J,2),yt=h(ke,!0);v(ke),v(ae),N(()=>{Y=ce(ae,1,"sh3-conflict-detail-rail-item svelte-pw8iv6",null,Y,{selected:i(X)===t.currentIndex}),ce(J,1,`sh3-conflict-detail-rail-state ${i(u)[i(X)]??""}`,"svelte-pw8iv6"),M(yt,i(G).label)}),H("click",ae,()=>t.onNavigate(i(X))),S(q,ae)}),v(V),S(F,V)};K(E,F=>{t.items.length>1&&F(y)})}var m=w(E,2),I=h(m);{var z=F=>{var V=ry(),q=ve(V);he(q,21,()=>i(n).branches,X=>X.origin,(X,ae)=>{var Y=ny(),J=h(Y);ge(J);var ie=w(J,2),fe=h(ie);v(ie),v(Y),N(()=>{ne(J,"name",`branch-${i(n).id??""}`),cs(J,i(ae).origin),Po(J,i(r)===i(ae).origin),M(fe,`${i(ae).origin??""} · v${i(ae).version??""}`)}),H("change",J,()=>t.onSelect(i(n).id,i(ae).origin)),S(X,Y)}),v(q);var G=w(q,2);ze(G,X=>x(a,X),()=>i(a)),S(F,V)};K(I,F=>{i(n)&&F(z)})}v(m),v(_);var j=w(_,2),P=h(j),O=h(P),R=w(O,2),T=h(R,!0);v(R);var A=w(R,2);v(P);var D=w(P,2),B=h(D),L=w(B,2);v(D),v(j),v(d),N(()=>{M(b,t.title),O.disabled=t.currentIndex===0,M(T,i(n)&&t.skipped[i(n).id]?"Unskip":"Skip"),A.disabled=t.currentIndex>=t.items.length-1}),H("click",O,l),H("click",R,()=>i(n)&&t.onToggleSkip(i(n).id)),H("click",A,c),H("click",B,function(...F){t.onCancel?.apply(this,F)}),H("click",L,function(...F){t.onDone?.apply(this,F)}),S(e,d),se()}le(["click","change"]);function Od(e,t){return t.at-e.at}function iy(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(Od)[0]}}function oy(e,t){re(t,!0);const n=t.items.length>=2||t.requirePrompt;let r=U(oe(n?"prompt":"detail")),s=U(oe(Object.fromEntries(t.items.map(m=>{const I=iy(m.branches,t.mostRecentBy)?.origin??m.branches[0]?.origin??"";return[m.id,I]})))),a=U(oe({})),o=U(0),l=!1;To(()=>{l||(l=!0,t.onCancel())});function c(){if(l)return;l=!0;const m=[],I=[];for(const z of t.items){if(i(a)[z.id]){I.push(z.id);continue}const j=i(s)[z.id],P=z.branches.find(O=>O.origin===j);P&&m.push({itemId:z.id,chosen:P,meta:z.meta})}t.onResolve(m,I),t.close()}function u(){l||(l=!0,t.onCancel(),t.close())}function d(){c()}function f(){x(r,"detail")}function p(m,I){if(x(s,{...i(s),[m]:I},!0),i(a)[m]){const z={...i(a)};delete z[m],x(a,z,!0)}}function b(m){x(a,{...i(a),[m]:!i(a)[m]},!0)}function k(m){x(o,m,!0)}var g=He(),_=ve(g);{var E=m=>{Q_(m,{get count(){return t.items.length},onOverwriteMostRecent:d,onResolveIndividually:f,onCancel:u})},y=m=>{ay(m,{get items(){return t.items},get selections(){return i(s)},get skipped(){return i(a)},get currentIndex(){return i(o)},get title(){return t.title},get contributed(){return t.contributed},onSelect:p,onNavigate:k,onToggleSkip:b,onDone:c,onCancel:u})};K(_,m=>{i(r)==="prompt"?m(E):m(y,-1)})}S(e,g),se()}const Ld="sh3-core.conflictRenderer";class Nd extends Error{constructor(t){super(t),this.name="ConflictPermissionError"}}class ly extends Error{constructor(){super("Caller shard deactivated while conflict session was active"),this.name="ConflictSessionOrphanedError"}}function cy(){try{return qa(Ld)}catch{return[]}}function qd(e,t={}){return J_(),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??Od,a=t.requirePrompt??!1,o=cy();let l=!1;const d={items:e,title:r,mostRecentBy:s,requirePrompt:a,contributed:o,onResolve:(f,p)=>{l||(l=!0,n({status:"resolved",choices:f,skipped:p}))},onCancel:()=>{l||(l=!0,n({status:"cancelled"}))}};xn.open(oy,d,{boxStyle:"max-width: none; min-width: 360px; padding: 0;"})})}function uy(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 dy(e,t){const n=e.browse;if(!n?.statusFrom||!n?.readBranchFrom||!n?.resolveConflictFrom)throw new Nd(`Cross-shard resolveDocuments requires documents:browse + documents:read + documents:write (shardId=${t})`);return{status:r=>n.statusFrom(t,r),readBranch:(r,s)=>n.readBranchFrom(t,r,s),resolveConflict:(r,s)=>n.resolveConflictFrom(t,r,s)}}function fy(e){const t=e.lastIndexOf(".");if(t<0)return;const n=e.lastIndexOf("/");if(!(t<n))return e.slice(t)}async function vy(e,t,n={}){const r=e.shardId,s=t.shardId===r?uy(e):dy(e,t.shardId),a=[];for(const d of t.paths){const f=await s.status(d);f&&f.syncState==="conflict"&&f.branches&&f.branches.length>0&&a.push({path:d,status:f})}if(a.length===0)return{status:"resolved",resolved:[],failed:[],skipped:[]};const o=[];for(const{path:d,status:f}of a){const p=fy(d),b=[];for(const k of f.branches??[]){const g=await s.readBranch(d,k.origin).catch(()=>null);b.push({origin:k.origin,version:k.version,at:k.at,content:g??void 0,sizeBytes:g?new TextEncoder().encode(g).length:void 0})}o.push({id:d,label:d,extension:p,branches:b,meta:{shardId:t.shardId,path:d,docVersion:f.version}})}const l=await qd(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 hy={resolve:qd,resolveDocuments:vy},Vd="sh3.color-picker",py={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 my(e={}){return[...qa(Vd),py].sort((r,s)=>(s.priority??0)-(r.priority??0))[0].open(e)}const by={pick:my};let Bn=null;function gy(e){Bn=e}async function yr(e){return Bn?{...Bn.bindings[e]??{}}:{}}async function oc(e,t,n){if(!Bn)return;const r={...Bn.bindings[e]??{}};n===void 0?delete r[t]:r[t]=n,Bn.bindings={...Bn.bindings,[e]:r}}const Uo="sh3.actions",bi=new Set;function _y(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.`),()=>{};bi.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.`),bi.add(e.id);const r=zd(Uo,{action:e,ownerShardId:t});let s=!1;return()=>{s||(s=!0,r(),bi.delete(e.id))}}function nt(){return qa(Uo)}function yy(e){return Md(Uo,e)}function Bt(e){return typeof e.label=="function"?e.label():e.label}const wy=["Ctrl","Alt","Shift","Meta"],lc={control:"Ctrl",ctrl:"Ctrl",alt:"Alt",option:"Alt",shift:"Shift",meta:"Meta",cmd:"Meta",command:"Meta",super:"Meta",win:"Meta"},ky=new Set(["Control","Alt","Shift","Meta"]);function Bd(e){return e.length===1?e.toUpperCase():e}function Ho(e){if(!e)throw new Error("Empty shortcut");const t=e.split("+");if(t.some(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 lc)r.add(lc[l]);else{if(s!==void 0)throw new Error(`Multiple keys in shortcut: "${e}"`);s=Bd(o)}}if(s===void 0)throw new Error(`No key in shortcut: "${e}"`);return[...wy.filter(o=>r.has(o)),s].join("+")}function Fd(e,t){if(!e.toLowerCase().includes("mod"))return e;const n=e.split("+").map(r=>r.toLowerCase()==="mod"?t==="mac"?"Meta":"Ctrl":r);return Ho(n.join("+"))}function xy(e){if(ky.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=Bd(e.key);return[...t,n].join("+")}function Sy(){return typeof navigator>"u"?"other":/Mac|iPhone|iPad|iPod/i.test(navigator.platform)?"mac":"other"}function Ds(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?null:Ho(r)}return e.defaultShortcut?Fd(e.defaultShortcut,n):null}function Ey(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?{shortcut:null,source:"disabled"}:{shortcut:Ho(r),source:"user"}}return e.defaultShortcut?{shortcut:Fd(e.defaultShortcut,n),source:"default"}:{shortcut:null,source:"none"}}function Va(e){return e==="home"?"home":e==="app"?"app":typeof e=="string"&&e.startsWith("view:")?"view":typeof e=="string"&&e.startsWith("focus:")?"focus":"element"}function Ko(e){return Array.isArray(e)?e:[e]}function Ud(e){return e==="home"||e==="app"?null:typeof e=="string"?e:e.element}function zs(e,t,n){const r=Ko(e),s={};for(const a of r){const o=Va(a);(s[o]??=[]).push(a)}for(const a of Ba){const o=s[a];if(o){for(const l of o)if(fs(l,t,n))return l}}return null}function Iy(e,t){return typeof e=="string"||typeof t=="string"?e===t:e.element===t.element}function Hd(e){return typeof e=="string"?e:`element:${e.element}`}function Ay(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 Ba=["element","focus","view","app","home"];function fs(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=Ds(r.action,t.bindings,t.platform);if(s)for(const a of Ko(r.action.scope)){if(!fs(a,t,r.ownerShardId))continue;const o=Va(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 Ty(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 Ry(e){const t=Cy(e.entries,e.state),n=new Map(e.entries.map(r=>[r.action.id,r]));for(const r of Ba){const s=t[r].get(e.shortcut);if(!s)continue;const a=n.get(s);if(a)return Ty(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=U(null);function Wo(){return i(Ut)}function Kd(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 Wd(e){i(Ut)&&i(Ut).ownerShardId===e&&x(Ut,null)}function jy(){x(Ut,null)}const ha=new Map,Yd=new Set;function Py(e){Yd.add(e)}function Dy(e,t){if(ha.has(e))throw new Error(`View "${e}" is already registered`);ha.set(e,t);for(const n of Yd)n(e,t)}function Gd(e){return ha.get(e)}function Xd(e){ha.delete(e)}const jr=new Map;function zy(e,t,n){if(jr.has(e))throw new Error(`Verb "${e}" is already registered`);jr.set(e,{verb:t,shardId:n})}function pa(e){return jr.get(e)?.verb}function Jd(e){jr.delete(e)}function Yo(){return Array.from(jr.values()).map(e=>e.verb).sort((e,t)=>e.name.localeCompare(t.name))}function Zd(){return Array.from(jr.values()).map(e=>({...e}))}function Pr(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 Go(e,t){if(Ui(e.docked,t))return{kind:"docked"};for(const n of e.floats)if(Ui(n.content,t))return{kind:"float",floatId:n.id};return null}function Ui(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(Ui(n,t))return!0;return!1}function Fa(e,t){const n=Pr(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 Oy(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 cc(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 Ly(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 Qd(e,t,n,r){const s=vs(e,t);if(!s||$d(e,t))return;if(t.length===0){const u=Ly(s),d=cc(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=cc(s,n,r),o=t.slice(0,-1),l=t[t.length-1],c=vs(e,o);!c||c.type!=="split"||(c.children[l]=a)}function vs(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 $d(e,t){if(t.length===0)return!1;const n=vs(e,t.slice(0,-1));return!n||n.type!=="split"?!1:n.fixed?.[t[t.length-1]]===!0}function br(e){let t=!0;for(;t;)t=ef(e,null,0)}function ef(e,t,n){if(e.type==="split"){let r=!1;for(let s=0;s<e.children.length;s++)ef(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 Tn=new Map,Xs=new Set;function Ny(e,t){for(const[n,r]of Tn.entries()){if(r.viewId!==e||r.handle!==void 0)continue;const s={slotId:n,viewId:e,label:r.label,meta:r.meta,setDirty(a){Ua[n]=a},location(){return Go(Ct(),n)}};queueMicrotask(()=>{if(Tn.has(n)&&r.handle===void 0&&(r.handle=t.mount(r.host,s),(r.handle?.closable||n.startsWith("float:"))&&(Ha[n]=!0),r.handle?.onResize)){const a=r.handle.onResize.bind(r.handle);r.resizeObserver=new ResizeObserver(o=>{for(const l of o){const c=l.contentRect;a(Math.round(c.width),Math.round(c.height))}}),r.resizeObserver.observe(r.host)}})}}Py(Ny);const Ua=oe({}),Ha=oe({});function qy(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",Hd(`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?Gd(t):void 0,c={slotId:e,viewId:t??"",label:n,meta:r,setDirty(u){Ua[e]=u},location(){return Go(Ct(),e)}};if(o.handle=l?.mount(s,c),(o.handle?.closable||e.startsWith("float:"))&&(Ha[e]=!0),o.handle?.onResize){const u=o.handle.onResize.bind(o.handle);o.resizeObserver=new ResizeObserver(d=>{for(const f of d){const p=f.contentRect;u(Math.round(p.width),Math.round(p.height))}}),o.resizeObserver.observe(s)}}),o}function Xo(e,t,n,r){Xs.delete(e);let s=Tn.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",Hd(`focus:${t}`))):(s.host.removeAttribute("data-sh3-view"),s.host.removeAttribute("data-sh3-scope"))):(s=qy(e,t,n,r),Tn.set(e,s)),s.refcount++,s.host}function Jo(e,t){const n=Tn.get(e);if(n){if(n.refcount--,n.refcount>0){t&&n.host.parentNode===t&&n.host.remove();return}Xs.add(e),queueMicrotask(()=>{if(!Xs.has(e))return;Xs.delete(e);const r=Tn.get(e);!r||r.refcount>0||(r.resizeObserver?.disconnect(),r.handle?.unmount(),r.cancelPendingMount(),r.host.remove(),Tn.delete(e),delete Ua[e],delete Ha[e])})}}function tf(e){const t=Hi.get(e);return t||Tn.get(e)?.handle}function Vy(e){return Ua[e]??!1}function By(e){return Hi.has(e)?!!Hi.get(e).closable:Ha[e]??!1}const Hi=new Map;function nf(e){if(!e||typeof e!="object")return!1;const t=e.type;return t==="split"||t==="tabs"||t==="slot"}function Fy(e){if(!e||typeof e!="object")return!1;const t=e;return nf(t.docked)&&Array.isArray(t.floats)}function Uy(e){return{docked:e,floats:[]}}function Hy(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 rf(e){if(Array.isArray(e))return e.map(Hy);if(Fy(e))return[{name:"default",variants:{default:e}}];if(nf(e))return[{name:"default",variants:{default:Uy(e)}}];throw new Error("normalizeInitialLayout: input is not a LayoutNode, LayoutTree, or LayoutPreset[]")}function uc(e){const t=[],n=r=>{if(r.type==="slot"){t.push({slotId:r.slotId,viewId:r.viewId,label:r.viewId||r.slotId,meta:r.meta});return}if(r.type==="tabs"){for(const s of r.tabs)t.push({slotId:s.slotId,viewId:s.viewId,label:s.label,meta:s.meta});return}for(const s of r.children)n(s)};return n(e),t}function Zo(e){const t=uc(e.docked);for(const n of e.floats)t.push(...uc(n.content));return t}Li("workspace","__shell__");const Ky={type:"slot",slotId:"sh3core.home",viewId:"sh3core:home"},Wy=oe({docked:Ky,floats:[]});let Be=U(null),Ka=U("home");function Yy(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 Gy(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 Xy(e){if(i(Be))throw new Error(`Layout manager cannot attach app "${e.manifest.id}": app "${i(Be).appId}" is still attached`);const t=`__sh3core__:app:${e.manifest.id}`,n=rf(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=Tg("workspace",t),a=Yy(s);(a&&a.layoutVersion!==e.manifest.layoutVersion||s&&!a)&&Li("workspace",t);const l=Oa(t,{workspace:r}).workspace;x(Be,{appId:e.manifest.id,proxy:l,heldSlotIds:[]},!0),x_(l)}function Jy(){if(!i(Be))throw new Error("acquireAppSlotHolds: no app attached");if(i(Be).heldSlotIds.length>0)return;const e=Gy(i(Be).proxy),t=Zo(e);for(const{slotId:n,viewId:r,label:s,meta:a}of t)Xo(n,r,s,a),i(Be).heldSlotIds.push(n)}function Zy(){if(!i(Be))throw new Error("resetActivePresetToDefault: no app attached");const e=Pn(i(Be).appId);if(!e)throw new Error(`resetActivePresetToDefault: attached app "${i(Be).appId}" not in registry`);const t=rf(e.initialLayout),n=i(Be).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(Be).heldSlotIds)Jo(l);i(Be).heldSlotIds=[];const a=structuredClone(s.variants.default);n.presets[n.activePreset].default=a;const o=Zo(a);for(const{slotId:l,viewId:c,label:u,meta:d}of o)Xo(l,c,u,d),i(Be).heldSlotIds.push(l)}function sf(){if(i(Be)){S_();for(const e of i(Be).heldSlotIds)Jo(e);x(Be,null)}}function af(){x(Ka,"home")}function dc(){if(!i(Be))throw new Error("Cannot switchToApp: no app is attached");x(Ka,"app")}const Js=W(()=>{if(i(Ka)==="app"&&i(Be)){const e=i(Be).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 Wy});function Ct(){return i(Js)}function of(){return i(Ka)}const cn={get root(){return i(Js).docked},get tree(){return i(Js)},get floats(){return i(Js).floats}};let lf=U(null),cf=U(oe(new Set)),Zs=U(oe(new Set)),uf=U(oe(new Set)),df=U(null),ff=U(oe({}));const Qy=Sy(),Ki=new Set;function Br(){for(const e of Ki)try{e()}catch(t){console.error("[sh3] onActiveChange listener threw",t)}}function $y(e){return Ki.add(e),()=>{Ki.delete(e)}}function ew(){Br()}function ma(e,t){x(lf,e,!0),x(cf,new Set(t),!0),Br()}function tw(){const e=Zo(cn.tree),t=new Set;for(const n of e)n.viewId!==null&&t.add(n.viewId);x(uf,t,!0),Br()}function vf(e){x(df,e,!0),Br()}function hs(e){x(ff,{...e},!0),Br()}function Jt(){return{activeAppId:i(lf),activeAppRequiredShards:i(cf),autostartShards:i(Zs),mountedViewIds:i(uf),focusedViewId:i(df),selection:Wo(),bindings:i(ff),platform:Qy}}function nw(e){i(Zs).has(e)||(x(Zs,new Set([...i(Zs),e]),!0),Br())}var rw=C('<div class="sh3-ctx-sep svelte-1667pfa" role="separator"></div>'),sw=C('<span class="sh3-ctx-chevron svelte-1667pfa">▸</span>'),aw=C('<span class="sh3-ctx-shortcut svelte-1667pfa"> </span>'),iw=C('<button role="menuitem"><span class="sh3-ctx-check svelte-1667pfa"> </span> <span class="sh3-ctx-label svelte-1667pfa"> </span> <!></button>'),ow=C("<!> <!>",1),lw=C('<div class="sh3-context-menu svelte-1667pfa" role="menu" tabindex="0"></div>');function ba(e,t){re(t,!0);const n=W(()=>t.sections.flatMap(c=>c.items));let r=U(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 p=(d+f)%i(n).length,b=i(n)[p];if(!b.disabled&&b.label.toLowerCase().startsWith(u)){x(r,p);break}}}}function o(c){c.disabled||(t.onInvoke(c.id),c.submenu||t.onDismiss())}var l=lw();Lr(l,!0),he(l,23,()=>t.sections,c=>c.id,(c,u,d)=>{var f=ow(),p=ve(f);{var b=g=>{var _=rw();S(g,_)};K(p,g=>{i(d)>0&&g(b)})}var k=w(p,2);he(k,17,()=>i(u).items,g=>g.id,(g,_)=>{const E=W(()=>i(n).indexOf(i(_)));var y=iw();let m;var I=h(y),z=h(I,!0);v(I);var j=w(I,2),P=h(j,!0);v(j);var O=w(j,2);{var R=A=>{var D=sw();S(A,D)},T=A=>{var D=aw(),B=h(D,!0);v(D),N(()=>M(B,i(_).shortcut)),S(A,D)};K(O,A=>{i(_).submenu?A(R):i(_).shortcut&&A(T,1)})}v(y),N(()=>{m=ce(y,1,"sh3-ctx-item svelte-1667pfa",null,m,{"sh3-ctx-active":i(E)===i(r),"sh3-ctx-disabled":i(_).disabled}),ne(y,"aria-disabled",i(_).disabled||void 0),M(z,i(_).checked?"✓":""),M(P,i(_).label)}),Pe("pointerenter",y,()=>{i(_).disabled||x(r,i(E),!0)}),H("click",y,()=>o(i(_))),S(g,y)}),S(c,f)}),v(l),H("keydown",l,a),S(e,l),se()}le(["keydown","click"]);function hf(e,t){re(t,!0);const n=W(()=>t.model.tiers.map(r=>({id:`tier:${r.tier}`,items:r.items.map(s=>({...s,icon:void 0}))})));ba(e,{get sections(){return i(n)},get onInvoke(){return t.onInvoke},get onDismiss(){return t.onClose}}),se()}function fc(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function pf(e,t){return{id:e.action.id,label:Bt(e.action),shortcut:Ds(e.action,t.bindings,t.platform),group:e.action.group??"",icon:e.action.icon,checked:fc(e.action.checked),disabled:fc(e.action.disabled),submenu:e.action.submenu===!0}}function mf(e,t,n,r){return Ko(e.scope).some(a=>Iy(a,n))?n==="app"||n==="home"||typeof n=="object"&&"element"in n?fs(n,r,t):!0:!1}function bf(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)||!mf(a.action,a.ownerShardId,n,t))continue;const o=zs(a.action.scope,t,a.ownerShardId)??n;s.add(a.action.id),r[Va(o)].push(pf(a,t))}return{tiers:Ba.map(a=>({tier:a,items:r[a]})).filter(a=>a.items.length>0)}}function cw(e,t,n,r){const s=[],a=new Set;for(const o of e)o.action.submenuOf===n&&(a.has(o.action.id)||mf(o.action,o.ownerShardId,r,t)&&(a.add(o.action.id),s.push(pf(o,t))));return s}function uw(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 dw(e,t,n){const r=[];for(const a of e){if(t===""&&a.submenuOf!==void 0)continue;const o=uw(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 fw=C('<span class="sh3-palette-badge svelte-1qdcgk6"> </span>'),vw=C('<span class="sh3-palette-shortcut svelte-1qdcgk6"> </span>'),hw=C('<button role="option"><span class="sh3-palette-label svelte-1qdcgk6"> </span> <!> <!></button>'),pw=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 mw(e,t){re(t,!0);let n=Z(t,"prefill",3,""),r=U(oe(n())),s=U(0);const a=W(()=>dw(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=pw(),c=h(l);ge(c),Lr(c,!0);var u=w(c,2);he(u,23,()=>i(a),d=>d.id,(d,f,p)=>{var b=hw();let k;var g=h(b),_=h(g,!0);v(g);var E=w(g,2);{var y=z=>{var j=fw(),P=h(j);v(j),N(()=>M(P,`[${i(f).scopeBadge??""}]`)),S(z,j)};K(E,z=>{i(f).scopeBadge&&z(y)})}var m=w(E,2);{var I=z=>{var j=vw(),P=h(j,!0);v(j),N(()=>M(P,i(f).shortcut)),S(z,j)};K(m,z=>{i(f).shortcut&&z(I)})}v(b),N(()=>{k=ce(b,1,"sh3-palette-item svelte-1qdcgk6",null,k,{"sh3-palette-active":i(p)===i(s)}),ne(b,"aria-selected",i(p)===i(s)),M(_,i(f).label)}),Pe("pointerenter",b,()=>x(s,i(p),!0)),H("click",b,()=>{t.onInvoke(i(f).id),t.onClose()}),S(d,b)}),v(u),v(l),H("keydown",l,o),Ee(c,()=>i(r),d=>x(r,d)),S(e,l),se()}le(["keydown","click"]);function bw(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function gw(e,t,n={}){const r=[],s=new Set,a=n.filter?.submenuOf;for(const o of e){if(o.action.paletteItem===!1||bw(o.action.disabled)||a!==void 0&&o.action.submenuOf!==a||s.has(o.action.id))continue;const l=zs(o.action.scope,t,o.ownerShardId);l&&(s.add(o.action.id),r.push({id:o.action.id,label:Bt(o.action),shortcut:Ds(o.action,t.bindings,t.platform),scopeBadge:Ud(l),submenu:o.action.submenu===!0,submenuOf:a!==void 0?void 0:o.action.submenuOf}))}return r}let vc=!1;function Qo(e){return e?e.closest("[data-sh3-view]")?.getAttribute("data-sh3-view")??null:null}function gf(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=Ay(n.getAttribute("data-sh3-scope")??"");if(s&&!(typeof s=="object"&&"element"in s&&!fs(s,e.state)))return s;const a=n.parentElement;n=a?a.closest("[data-sh3-scope]"):null}const r=Qo(t);if(r)return`focus:${r}`}return e.state.activeAppId?"app":"home"}function _f(e,t){const n=nt().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 Fr(e){const t=nt().find(r=>r.action.id===e);if(!t){console.warn(`[sh3] ctx.dispatch("${e}") — no action registered with that id.`);return}const n=Jt();_f(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:Fr})}function _w(e){const t=Qo(e.target);vf(t)}function yw(e){queueMicrotask(()=>{const t=Qo(document.activeElement);vf(t)})}function ww(e){return e instanceof Element?e.closest('[data-sh3-context-menu="native"]')!==null:!1}function yf(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=cw(nt(),t,e,r);qe(ba,{target:a,props:{sections:[{id:`submenu:${e}`,items:c}],onInvoke:u=>{const d=nt().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:Fr})}catch(f){console.error(`[sh3] context-menu submenu action "${u}" threw:`,f)}n.close()}},onDismiss:()=>n.close()}})}function kw(e){if(ww(e.target))return;const t=nt(),n=Jt(),r=gf({event:e,state:n}),s=bf(t,n,r);if(s.tiers.length===0)return;e.preventDefault();const a=On.popup.show(hf,{anchor:{x:e.clientX,y:e.clientY}},{model:s,onInvoke:o=>{const l=nt().find(c=>c.action.id===o);if(l){if(l.action.submenu===!0){yf(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:Fr})}catch(c){console.error(`[sh3] context-menu action "${o}" threw:`,c)}}},onClose:()=>a.close()})}function xw(e){const t=xy(e);if(!t)return;const n=nt(),r=Jt();Ry({target:e.target,shortcut:t,state:r,entries:n,runAction:_f,dispatch:Fr})&&e.preventDefault()}function wf(){vc||(vc=!0,document.addEventListener("keydown",xw),document.addEventListener("focusin",_w),document.addEventListener("focusout",yw),document.addEventListener("contextmenu",kw))}function $o(e){const t=nt(),n=Jt(),r=gf({explicit:e.scope,state:n}),s=bf(t,n,r);if(s.tiers.length===0)return;const a=On.popup.show(hf,{anchor:{x:e.x,y:e.y}},{model:s,onInvoke:o=>{const l=nt().find(c=>c.action.id===o);if(l){if(l.action.submenu===!0){yf(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:Fr})}catch(c){console.error(`[sh3] context-menu action "${o}" threw:`,c)}}},onClose:()=>a.close()})}const Sw=20;let Wi=[];function Ew(e){Wi=[e,...Wi.filter(t=>t!==e)].slice(0,Sw)}function Wa(e){const t=nt(),n=Jt(),r=gw(t,n,{filter:e?.filter}),s=On.modal.open(mw,{candidates:r,recency:Wi,prefill:e?.prefill??"",onInvoke:a=>{const o=nt().find(l=>l.action.id===a);if(o){if(Ew(a),o.action.submenu===!0&&typeof o.action.run!="function"){s.close(),Wa({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:Fr})}catch(l){console.error(`[sh3] palette action "${a}" threw:`,l)}}},onClose:()=>s.close()},{dismissOnBackdrop:!0})}const Iw=Object.freeze(Object.defineProperty({__proto__:null,attachGlobalListeners:wf,openContextMenu:$o,openPalette:Wa},Symbol.toStringTag,{value:"Module"}));function Aw(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=zs(s.action.scope,t,s.ownerShardId);if(!a)continue;r.add(s.action.id);const{shortcut:o,source:l}=Ey(s.action,t.bindings,t.platform);n[Va(a)].push({id:s.action.id,label:Bt(s.action),effectiveShortcut:o,bindingSource:l,scope:a,scopeBadge:Ud(a),group:s.action.group,icon:s.action.icon,ownerShardId:s.ownerShardId,paletteItem:s.action.paletteItem!==!1,contextItem:s.action.contextItem!==!1})}return Ba.flatMap(s=>n[s])}const Cw={async rebind(e,t,n){await oc(e,t,n),Jt().activeAppId===e&&hs(await yr(e))},async resetBinding(e,t){await oc(e,t,void 0),Jt().activeAppId===e&&hs(await yr(e))},async bindingsFor(e){const t=await yr(e),n={};for(const[r,s]of Object.entries(t))s!==null&&(n[r]=s);return n},openContextMenu:$o,openPalette:Wa,listActive(){return Aw(nt(),Jt())},onActiveChange(e){const t=$y(e),n=yy(()=>{ew()});return()=>{t(),n()}}},On={state:Oa,modal:xn,popup:qi,toast:An,float:Re,presets:C_,conflicts:hy,color:by,actions:Cw};function Tw(e){return tn[e].list()}function Rw(e,t){return tn[e].read(t)}function jw(e,t){tn[e].delete(t)}function Pw(e){for(const t of tn[e].list())tn[e].delete(t)}function kf(){return{list:Tw,peek:Rw,clear:jw,clearAll:Pw}}function or(e,t,n){return`${e}/${t}/${n}`}function Dw(e,t){return`${e}/${t}/`}const zw="sh3-documents",Dt="docs",Mw=2;class Ow{#e=null;#t(){return this.#e||(this.#e=new Promise((t,n)=>{const r=indexedDB.open(zw,Mw);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=or(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=or(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=or(t,n,r);await this.#n("readwrite",a=>a.delete(s))}async rename(t,n,r,s){const a=or(t,n,r),o=or(t,n,s),l=await this.#t();return new Promise((c,u)=>{let d=!1;const f=l.transaction(Dt,"readwrite"),p=f.objectStore(Dt),b=p.get(a);b.onsuccess=()=>{const k=b.result;if(!k){d=!0,f.abort(),u(new Error(`Document not found at ${r}`));return}const g=p.getKey(o);g.onsuccess=()=>{if(g.result!==void 0){d=!0,f.abort(),u(new Error(`Document already exists at ${s}`));return}const _={...k,lastModified:Date.now()};p.put(_,o),p.delete(a)},g.onerror=()=>u(g.error)},b.onerror=()=>u(b.error),f.oncomplete=()=>c(),f.onerror=()=>{d||u(f.error)},f.onabort=()=>{}})}async list(t,n){const r=Dw(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 p=d.result;if(p){const b=p.value;f.push({path:p.key.slice(r.length),size:b.size,lastModified:b.lastModified}),p.continue()}else a(f)},d.onerror=()=>o(d.error)})}async exists(t,n,r){const s=or(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 p=f.key.slice(n.length),b=p.indexOf("/");b>=0&&d.add(p.slice(0,b)),f.continue()}else s([...d])},u.onerror=()=>a(u.error)})}async listAllDocuments(t){const n=`${t}/`,r=await this.#t();return new Promise((s,a)=>{const l=r.transaction(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 p=f.key.slice(n.length),b=p.indexOf("/");if(b>=0){const k=f.value;d.push({shardId:p.slice(0,b),path:p.slice(b+1),size:k.size,lastModified:k.lastModified})}f.continue()}else s(d)},u.onerror=()=>a(u.error)})}}const Lw="local";let el=Lw,xf=new Ow;function Sf(){return el}function Qs(){return el}function Yi(){return xf}function $s(e){el=e}function Ef(e){xf=e}const Nw=Object.freeze(Object.defineProperty({__proto__:null,__setActiveScope:$s,__setDocumentBackend:Ef,getActiveScopeId:Sf,getDocumentBackend:Yi,getTenantId:Qs},Symbol.toStringTag,{value:"Module"})),er=oe({activeProjectId:null});function If(e){if(er.activeProjectId===e)return;const t=at.id;er.activeProjectId=e,Rr.id=null,t&&Sr(()=>Promise.resolve().then(()=>Vw),void 0).then(n=>n.unloadApp(t))}const Af=Oa("__sh3core__:last-app",{user:{id:null}});function Cf(){return Af.user.id}function ps(e){Af.user.id=e}function Tf(){ps(null)}const Gi=new Map;function qw(){return er.activeProjectId??Sf()}function Vs(e,t){let n=Gi.get(e);if(!n){const r=Pn(e),s=qw();n={scopeId:s,state:a=>Oa(`__app__:${e}:scope:${s}`,a),zones:r?.manifest.permissions?.includes(Oo)?kf():void 0},Gi.set(e,n)}return n}async function yn(e){const t=Pn(e);if(!t)throw new Error(`Cannot launch app "${e}": not registered`);if(at.id&&at.id!==e)tl(at.id);else if(at.id===e){for(const n of t.manifest.requiredShards){const r=dn.get(n),s=k1(n);r&&s&&r.resume?.(s)}t.resume?.(Vs(e)),dc(),t.onAppReady?.(Vs(e)),ps(e),Rr.id=e,ma(e,new Set(t.manifest.requiredShards??[])),yr(e).then(hs);return}for(const n of t.manifest.requiredShards)if(!dn.has(n))throw new Error(`App "${e}" requires shard "${n}" which is not registered`);Xy(t);try{for(const n of t.manifest.requiredShards)await $f(n,{phase:"launch"})}catch(n){sf();try{An.notify(`Couldn't launch "${t.manifest.label??e}": ${n instanceof Error?n.message:String(n)}`,{level:"error",duration:6e3})}catch{}throw n}Jy(),t.activate?.(Vs(e)),at.id=e,ma(e,new Set(t.manifest.requiredShards??[])),yr(e).then(hs),dc(),t.onAppReady?.(Vs(e)),ps(e),Rr.id=e}function tl(e){if(at.id!==e)return;const t=Pn(e);if(t){t.deactivate?.(),af(),sf();for(const n of t.manifest.requiredShards){const r=dn.get(n);r&&(r.autostart||Qa(n))}at.id=null,ma(null,new Set),jy(),Sd(),yr("sh3.home").then(hs),Gi.delete(e)}}function Ya(e){jn.has(e)&&(at.id===e&&(tl(e),ps(null)),jn.delete(e))}async function Ms(){const e=at.id?Pn(at.id):null;if(e){for(const t of e.manifest.requiredShards){const n=dn.get(t);if(n?.suspend&&await n.suspend()===!1)return!1}if(e.suspend&&await e.suspend()===!1)return!1}return Sd(),af(),ma(null,new Set),ps(null),!0}const Vw=Object.freeze(Object.defineProperty({__proto__:null,clearLastApp:Tf,launchApp:yn,readLastApp:Cf,returnToHome:Ms,unloadApp:tl,unregisterApp:Ya},Symbol.toStringTag,{value:"Module"}));function Rf(){return{root:Ct(),source:of()}}function Bw(e){const t=Ct().docked,n=rl(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 Fw(e){const t=Ct();return Xa(t.docked,n=>n.slotId===e)?!0:jf(t,n=>n.slotId===e)}function Ga(e){const t=Ct();return Xa(t.docked,n=>n.viewId===e)?!0:jf(t,n=>n.viewId===e)}function Xa(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(Xa(n,t))return!0}return!1}function jf(e,t){for(const n of e.floats)if(Xa(n.content,t))return Re.focus(n.id),!0;return!1}function Uw(e,t){return Pf(e,t,!0)}function Hw(e,t){return Pf(e,t,!1)}function Pf(e,t,n){const r=Ct().docked,s=vs(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 nl(e){const t=Ct(),n=t.docked;if(!Pr(n,e))return Kw(t,e);const a=tf(e)?.closable;return!a||typeof a=="object"&&(!await a.canClose()||!Pr(n,e))?!1:(Fa(n,e),br(n),!0)}async function Kw(e,t){for(const n of e.floats){if(!Pr(n.content,t))continue;const a=tf(t)?.closable;if(typeof a=="object"&&(!await a.canClose()||!Pr(n.content,t)))return!1;Fa(n.content,t);const o=n.content.type==="tabs"?n.content:null;return(!o||o.tabs.length===0)&&Re.close(n.id),!0}return!1}function Df(e){const t=Ct(),n=Pr(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 Fa(t.docked,e),br(t.docked),Re.open(s,{title:a,meta:o})}function zf(e){const n=Ct().floats.find(l=>l.id===e);if(!n)return!1;const r=n.content,s=r.type==="tabs"?r:null;if(!s||s.tabs.length===0)return Re.close(e),!1;const a=s.tabs[s.activeTab??0]??s.tabs[0],o=sl({slotId:a.slotId,viewId:a.viewId,label:a.label,meta:a.meta});return o&&Re.close(e),o}function rl(e){if(e.type==="tabs")return e;if(e.type==="split")for(const t of e.children){const n=rl(t);if(n)return n}return null}function Mf(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=Mf(e.children[n],[...t,n]);if(r)return r}return null}function sl(e){const t=Ct().docked;if(Ga(e.viewId??""))return!0;const n=rl(t);if(n)return n.tabs.push(e),n.activeTab=n.tabs.length-1,!0;const r=Mf(t);return r?(Qd(t,r,e,"right"),!0):!1}function Of(e){return Go(Ct(),e)}let Ur=U(null),un=U(null),Hr=U(!1),Ja="",Xi=null;function hc(e,t){Ja=e,Xi=t.auth,x(Ur,t.user,!0),x(un,t.session,!0),x(Hr,!t.session&&!t.user,!0)}async function Lf(e,t){try{const n=await fetch(`${Ja}/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(Ur,r.user,!0),x(un,r.session,!0),x(Hr,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function Ww(e,t,n){try{const r=await fetch(`${Ja}/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(Ur,s.user,!0),x(un,s.session,!0),x(Hr,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function Yw(){try{await fetch(`${Ja}/api/auth/logout`,{method:"POST",credentials:"include"})}catch{}if(Xi?.required&&!Xi.guestAllowed){window.location.reload();return}x(Ur,null),x(un,null),x(Hr,!0)}function Gw(){x(Ur,{id:"local",username:"local",displayName:"Local Owner",role:"admin",createdAt:"",updatedAt:""},!0),x(un,{token:"local",userId:"local",role:"admin",expiresAt:1/0},!0),x(Hr,!1)}function Xw(){return i(un)?.token==="local"}function ht(){return i(un)?.role==="admin"}function Ji(){return i(un)!==null}function Nf(){return i(Hr)}function Dr(){return i(Ur)}function Za(){return i(un)?`Bearer ${i(un).token}`:null}function qf(e){return e.type==="tabs"?e.tabs.filter(t=>t.viewId!==null):e.type==="split"?e.children.flatMap(qf):e.viewId!==null?[{slotId:e.slotId,viewId:e.viewId,label:e.viewId}]:[]}function Vf(){return{listApps(){return ar().map(e=>({id:e.id,label:e.label}))},getActiveApp(){const e=kd();return e?{id:e.id,label:e.label}:null},launchApp(e){yn(e)},listShards(){return Array.from(dn.values()).map(e=>({id:e.manifest.id,label:e.manifest.label,version:e.manifest.version}))},listViewsInCurrentLayout(){try{const{root:e}=Rf();return qf(e.docked).map(t=>({slotId:t.slotId,viewId:t.viewId??"",label:t.label}))}catch{return[]}},openViewInCurrentLayout(e){try{if(Ga(e))return{ok:!0};const t=mc().find(n=>n.viewId===e);if(t){const n=`standalone:${e}:${Date.now()}`;return sl({slotId:n,viewId:e,label:t.label})?{ok:!0}:{ok:!1,error:`could not dock "${e}" — no available slot`}}return{ok:!1,error:`view "${e}" not found in current layout`}}catch(t){return{ok:!1,error:t instanceof Error?t.message:String(t)}}},listStandaloneViews(){return mc()},popoutSlot(e){try{const t=Df(e);return t?{ok:!0,floatId:t}:{ok:!1,error:`slot "${e}" not found in docked tree`}}catch(t){return{ok:!1,error:t instanceof Error?t.message:String(t)}}},dockFloat(e){try{return zf(e)?{ok:!0}:{ok:!1,error:`float "${e}" not found or has no dockable content`}}catch(t){return{ok:!1,error:t instanceof Error?t.message:String(t)}}},locateSlot(e){try{return Of(e)}catch{return null}},listFloats(){return Re.list().map(e=>{const t=e.content.type==="tabs"?e.content:null,n=t?t.tabs[t.activeTab??0]??t.tabs[0]:null;return{floatId:e.id,viewId:n?.viewId??null,label:e.title??n?.label??e.id}})},closeSlot(e){return nl(e),{ok:!0}},listZones(e){return[]},readZone(e,t){return null},whoAmI(){return{userId:Dr()?.id??"guest",admin:ht()}},setMode(e){return!1},listModes(){return[]},getMode(){return{id:"sh3",label:"sh3"}}}}const Jw=2e3;let Zw=0;function Qw(){return`e${++Zw}`}class $w{#e;get entries(){return i(this.#e)}set entries(t){x(this.#e,t,!0)}constructor(t=Jw){this.#e=U(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:Qw()};this.entries.push(r),this.entries.length>this.cap&&this.entries.splice(0,this.entries.length-this.cap)}clear(){this.entries.length=0}}const pc=[1e3,2e3,5e3,1e4];class Bf{#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)}#s;get history(){return i(this.#s)}set history(t){x(this.#s,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=U(!1),this.#t=U(""),this.#n=U(oe({})),this.#s=U(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=pc[Math.min(this.backoffIndex,pc.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 Ff{constructor(t=""){this.base=t}async list(t){return(await(await this.#e("/api/fs/list",t)).json()).entries}async stat(t){return await(await this.#e("/api/fs/stat",t)).json()}async read(t){return await(await this.#e("/api/fs/read",t)).text()}async#e(t,n){const r=`${this.base}${t}?path=${encodeURIComponent(n)}`,s=await fetch(r,{credentials:"include"});if(!s.ok){let a=`HTTP ${s.status}`;try{const o=await s.json();o.error&&(a=o.error)}catch{}throw new Error(a)}return s}}function e1(e){const t=pa(e);if(!t)return null;const r=Zd().find(s=>s.verb===t);return r?{verb:r.verb,shardId:r.shardId}:null}async function Uf(e,t,n,r){if(!tr.has(e))throw new Error(`unknown shard: ${e}`);const s=pa(t);if(!s)throw new Error(`unknown verb: ${t}`);if(!s.programmatic)throw new Error(`verb "${t}" is not programmatic`);const a=[],o=n1(a),l=await t1({sinkScrollback:o,opts:r});return{result:await s.run(l,n),scrollback:a}}async function t1(e){const t={shell:Vf(),scrollback:e.sinkScrollback,session:r1(),cwd:"/",fs:new Ff,async dispatch(n){const r=n.trim();if(!r)return;const s=r.indexOf(" "),a=s===-1?r:r.slice(0,s),o=s===-1?"":r.slice(s+1),l=o.length?o.split(/\s+/):[],c=e1(a);if(!c)throw new Error(`dispatch: unknown verb "${a}"`);const u={...t,structuredArgs:void 0};await c.verb.run(u,l)},structuredArgs:e.opts?.structured,signal:e.opts?.signal};return t}function n1(e){let t=0;return{entries:e,push(r){const s={...r,id:`runverb-${++t}`};e.push(s)},clear(){e.length=0}}}function r1(){return new Bf("")}class s1{#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 a1{#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 In=new a1,i1=1e3;function o1(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){In.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),In.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=In.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 l1(c,u,d?.debounceMs??i1);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 l1{#e;#t;#n;#s=null;#r=null;#i=!1;#a=!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.#a||(this.#s=t,this.#i=!0,this.#o())}async flush(){if(this.#l(),this.#s!==null){const t=this.#s;this.#s=null,this.#i=!1,await this.#e.write(this.#t,t)}}async dispose(){this.#a||(this.#a=!0,await this.flush())}#o(){this.#l(),this.#r=setTimeout(()=>{this.#r=null,this.flush()},this.#n)}#l(){this.#r!==null&&(clearTimeout(this.#r),this.#r=null)}}const c1="sync:peer",u1="sync:policy";let Kr="";function Hf(e){Kr=e}async function d1(e){const t=await fetch(`${Kr}/api/env-state/${encodeURIComponent(e)}`);return t.ok?await t.json():(console.warn(`[sh3] Failed to fetch env state for "${e}": HTTP ${t.status}`),{})}async function f1(e,t){if(!ht())throw new Error("Cannot update env state: not elevated to admin");const n=Za(),r={"Content-Type":"application/json"};n&&(r.Authorization=n);const s=await fetch(`${Kr}/api/env-state/${encodeURIComponent(e)}`,{method:"PUT",headers:r,body:JSON.stringify(t)});if(!s.ok){const a=await s.json().catch(()=>({}));throw new Error(`Env state update failed: HTTP ${s.status} — ${a.error??"unknown"}`)}}async function al(e,t,n){if(!ht())throw new Error("Cannot install: not elevated to admin");const r=Za(),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(`${Kr}/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 v1(e){if(!ht())throw new Error("Cannot uninstall: not elevated to admin");const t=Za(),n={"Content-Type":"application/json"};t&&(n.Authorization=t);const r=await fetch(`${Kr}/api/packages/uninstall`,{method:"POST",headers:n,body:JSON.stringify({id:e})});if(!r.ok){const s=await r.json().catch(()=>({}));throw new Error(`Uninstall failed: HTTP ${r.status} — ${s.error??"unknown"}`)}}async function h1(){const e=await fetch(`${Kr}/api/packages`);return e.ok?await e.json():[]}const Kf="documents:browse",Wf="documents:read",Yf="documents:write";function p1(e,t,n={canRead:!1,canWrite:!1}){const r={listDocuments:()=>t.listAllDocuments(e),listShards:()=>t.listAllShards(e),watchDocuments:s=>In.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),In.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),In.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),In.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&&In.emit({type:"delete",path:a,tenantId:e,shardId:s})}),r}const Gf="keys:mint";class Xf extends Error{constructor(t){super(`Shard may not mint a key with scope '${t}' — not declared in manifest.`),this.name="ScopeEscalationError"}}class Jf extends Error{constructor(){super("User denied key creation."),this.name="ConsentDeniedError"}}const Zi=new Map;let rs=null;function Zf(e){return rs=e,()=>{rs===e&&(rs=null)}}async function m1(e,t){if(!rs)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=>{Zi.set(n,{resolve:r}),rs({...t,shardId:e,requestId:n})})}function Qi(e,t){const n=Zi.get(e);n&&(Zi.delete(e),n.resolve(t))}const ga=new Map,ea=new Map,b1=5e3;function g1(e,t){let n=ea.get(e);n||(n=new Set,ea.set(e,n)),n.add(t),setTimeout(()=>{n.delete(t),n.size===0&&ea.delete(e)},b1)}function _1(e,t){return ea.get(e)?.has(t)??!1}function il(e,t){const n=ga.get(e)??new Set;return n.add(t),ga.set(e,n),()=>{n.delete(t)}}function Qf(e,t){if(!e||_1(e,t))return;g1(e,t);const n=ga.get(e);if(n)for(const s of n)s(t);const r=ga.get("*");if(r)for(const s of r)s(t)}function y1(){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);Qf(n.shardId,n.id)}catch{}},()=>e.close()}function w1(e){const{shardId:t,shardPermissions:n}=e,r=s=>{for(const a of s)if(!n.includes(a)&&!n.includes("admin:*"))throw new Xf(a)};return{async mint(s){if(r(s.scopes),!await m1(t,s))throw new Jf;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}`);Qf(t,s)}}}const dn=oe(new Map),wr=new Map,tr=oe(new Map),_a=oe(new Map);function ol(e){const t=e.manifest.id;dn.has(t)&&tr.has(t)&&Qa(t),dn.set(t,e),_a.delete(t)}async function $f(e,t){const n=dn.get(e);if(!n)throw new Error(`Cannot activate shard "${e}": not registered`);if(wr.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=zd(l,c);return r.cleanupFns.push(async()=>u()),u},list(l){return qa(l)},listPoints(){return T_()},onChange(l,c){const u=Md(l,c);return r.cleanupFns.push(async()=>u()),u},onAnyChange(l){const c=R_(l);return r.cleanupFns.push(async()=>c()),c}},o={state:l=>On.state(e,l),registerView:(l,c)=>{Dy(l,c),r.viewIds.add(l)},registerVerb:l=>{const c=e==="shell"?l.name:`${e}:${l.name}`;zy(c,{...l,name:c},e),r.verbNames.add(c)},documents:l=>{const c=o1(Qs(),e,Yi(),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=Zn(s.proxy);Object.assign(s.proxy,l);try{const u=Zn(s.proxy);await f1(e,u)}catch(u){throw Object.assign(s.proxy,c),u}},get isAdmin(){return ht()},get tenantId(){return Qs()},zones:n.manifest.permissions?.includes(Oo)?kf():void 0,browse:n.manifest.permissions?.includes(Kf)?p1(Qs(),Yi(),{canRead:n.manifest.permissions.includes(Wf),canWrite:n.manifest.permissions.includes(Yf)}):void 0,keys:n.manifest.permissions?.includes(Gf)?w1({shardId:e,shardPermissions:n.manifest.permissions??[]}):void 0,contributions:a,actions:{register(l){const c=_y(l,e);return r.cleanupFns.push(async()=>c()),c},selection:Kd(e),openContextMenu(l){$o(l)},openPalette(l){Wa(l)}},listVerbs(l){const c=Zd();return(l?.programmaticOnly?c.filter(({verb:d})=>d.programmatic===!0):c).map(({verb:d,shardId:f})=>({shardId:f,name:d.name,summary:d.summary,programmatic:d.programmatic,schema:d.schema}))},runVerb(l,c,u,d){return Uf(l,c,u,d)}};if(r.ctx=o,n.onKeyRevoked){const l=il(e,async c=>{try{await n.onKeyRevoked(c)}catch(u){console.error(`[sh3] onKeyRevoked failed in "${e}":`,u)}});r.cleanupFns.push(async()=>l())}wr.set(e,r),tr.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 d1(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)Jd(c);for(const c of r.viewIds)Xd(c);throw Wd(e),wr.delete(e),tr.delete(e),_a.set(e,{id:e,error:l,phase:t?.phase??"launch",timestamp:Date.now()}),console.error(`[sh3] Shard "${e}" failed to activate:`,l),l}_a.delete(e),n.autostart?.(o)}function Qa(e){const t=wr.get(e);if(t){t.shard.deactivate?.();for(const n of t.cleanupFns)n();for(const n of t.verbNames)Jd(n);for(const n of t.viewIds)Xd(n);Wd(e),wr.delete(e),tr.delete(e)}}function k1(e){return wr.get(e)?.ctx}function mc(){const e=[];for(const t of tr.values())for(const n of t.manifest.views)n.standalone&&e.push({shardId:t.manifest.id,viewId:n.id,label:n.label});return e}class ft extends Error{constructor(t,n){super(`Registry validation error at ${t}: ${n}`),this.name="RegistryValidationError",this.path=t}}function ev(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)=>x1(r,`$.packages[${s}]`))}}function x1(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new ft(t,"expected an object");const n=e;Ht(n,"id",t),I1(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)=>S1(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 S1(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new ft(t,"expected an object");const n=e;Ht(n,"version",t),Ht(n,"contractVersion",t);const r="bundleUrl"in n&&n.bundleUrl!==void 0,s="integrity"in n&&n.integrity!==void 0;if(r&&Ht(n,"bundleUrl",t),s&&Ht(n,"integrity",t),r!==s)throw new ft(t,"bundleUrl and integrity must be provided together");const a="serverBundleUrl"in n&&n.serverBundleUrl!==void 0;if(a&&Ht(n,"serverBundleUrl",t),"serverIntegrity"in n&&n.serverIntegrity!==void 0&&Ht(n,"serverIntegrity",t),!r&&!a)throw new ft(t,"expected at least one of bundleUrl+integrity or serverBundleUrl");let o;if(n.requires!==void 0){if(!Array.isArray(n.requires))throw new ft(`${t}.requires`,"expected an array");o=n.requires.map((l,c)=>E1(l,`${t}.requires[${c}]`))}return{version:n.version,contractVersion:n.contractVersion,bundleUrl:typeof n.bundleUrl=="string"?n.bundleUrl:void 0,integrity:typeof n.integrity=="string"?n.integrity:void 0,serverBundleUrl:typeof n.serverBundleUrl=="string"?n.serverBundleUrl:void 0,serverIntegrity:typeof n.serverIntegrity=="string"?n.serverIntegrity:void 0,requires:o}}function E1(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new ft(t,"expected an object");const n=e;return Ht(n,"id",t),Ht(n,"versionRange",t),{id:n.id,versionRange:n.versionRange}}function Ht(e,t,n){const r=e[t];if(typeof r!="string"||r.length===0)throw new ft(`${n}.${t}`,"expected a non-empty string")}function I1(e,t,n,r){if(!n.includes(e[t]))throw new ft(`${r}.${t}`,`expected one of: ${n.join(", ")}`)}const bc=["sha256","sha384","sha512"];function A1(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(!bc.includes(n))throw new Error(`Unsupported SRI algorithm: ${n}. Supported: ${bc.join(", ")}`);if(!r)throw new Error(`Empty hash in SRI: ${e}`);return{algorithm:n,hash:r}}function C1(e){return`SHA-${e.slice(3)}`}function T1(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 ll(e,t){const{algorithm:n,hash:r}=A1(t),s=C1(n),a=await crypto.subtle.digest(s,e),o=T1(a);if(o!==r)throw new Error(`Integrity check failed for ${n}. Expected: ${r}, got: ${o}`)}async function tv(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=ev(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 $a(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 ll(s,e.integrity),s}async function cl(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 ll(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 ei(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 ss="sh3.shell.mode";function R1(e,t){return e.contributions.register(ss,t)}const vn="0.15.1",ul="sh3:user:__sh3core__:theme";let ms=[];function j1(e){const t=Object.keys(e);for(const n of ms)t.includes(n)||document.documentElement.style.removeProperty(`--${n}`);for(const[n,r]of Object.entries(e))document.documentElement.style.setProperty(`--${n}`,r);ms=t;try{localStorage.setItem(ul,JSON.stringify(e))}catch{}}function P1(){for(const e of ms)document.documentElement.style.removeProperty(`--${e}`);ms=[];try{localStorage.removeItem(ul)}catch{}}function nv(){try{const e=localStorage.getItem(ul);if(!e)return{};const t=JSON.parse(e);return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{}}catch{return{}}}function D1(){const e=nv();if(Object.keys(e).length!==0){for(const[t,n]of Object.entries(e))document.documentElement.style.setProperty(`--${t}`,n);ms=Object.keys(e)}}const nr="/assets/icons-2eVU8BA9.svg",rv=Symbol("sh3.icon-sprite");function z1(e){fo(rv,e)}function sv(){return uo(rv)}var M1=Ao('<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>'),O1=Ao('<svg class="sh3-btn__icon svelte-t4hi97" aria-hidden="true"><use></use></svg>'),L1=C('<span class="sh3-btn__label svelte-t4hi97"><!></span>'),N1=C("<button><!> <!></button>");function q1(e,t){re(t,!0);let n=Z(t,"variant",3,"default"),r=Z(t,"disabled",3,!1),s=Z(t,"type",3,"button");const a=sv();function o(m){return m.includes("/")||m.endsWith(".svg")}const l=W(()=>t.icon?o(t.icon)?t.icon:`${t.sprite??a??nr}#${t.icon}`:void 0);let c=U(!1);const u=W(()=>t.loading??i(c)),d=W(()=>n()==="icon"||!!t.icon&&!t.children);async function f(m){if(!t.onclick)return;const I=t.onclick(m);if(I&&typeof I.then=="function"){x(c,!0);try{await I}finally{x(c,!1)}}}var p=N1();let b;var k=h(p);{var g=m=>{var I=M1();S(m,I)},_=m=>{var I=O1(),z=h(I);v(I),N(()=>ne(z,"href",i(l))),S(m,I)};K(k,m=>{i(u)?m(g):i(l)&&m(_,1)})}var E=w(k,2);{var y=m=>{var I=L1(),z=h(I);en(z,()=>t.children),v(I),S(m,I)};K(E,m=>{t.children&&m(y)})}v(p),N(()=>{ne(p,"type",s()),b=ce(p,1,`sh3-btn sh3-btn--${n()??""}`,"svelte-t4hi97",b,{"sh3-btn--icon-only":i(d)}),p.disabled=r()||i(u),ne(p,"aria-busy",i(u)||void 0),ne(p,"title",t.title),ne(p,"aria-label",t.ariaLabel??(i(d)?t.title:void 0))}),H("click",p,f),S(e,p),se()}le(["click"]);var V1=C('<span class="sh3-collapsible__title svelte-lvydsb"> </span>'),B1=C('<div class="sh3-collapsible__body svelte-lvydsb"><!></div>'),F1=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 U1(e,t){re(t,!0);let n=Z(t,"open",15,!1);function r(){n(!n()),t.onopenchange?.(n())}var s=F1();let a;var o=h(s),l=w(h(o),2);{var c=p=>{var b=He(),k=ve(b);en(k,()=>t.header),S(p,b)},u=p=>{var b=V1(),k=h(b,!0);v(b),N(()=>M(k,t.title)),S(p,b)};K(l,p=>{t.header?p(c):t.title&&p(u,1)})}v(o);var d=w(o,2);{var f=p=>{var b=B1(),k=h(b);en(k,()=>t.children),v(b),S(p,b)};K(d,p=>{n()&&p(f)})}v(s),N(()=>{a=ce(s,1,"sh3-collapsible svelte-lvydsb",null,a,{"sh3-collapsible--open":n()}),ne(o,"aria-expanded",n())}),H("click",o,r),S(e,s),se()}le(["click"]);var H1=C('<span aria-hidden="true">*</span>'),K1=C('<span class="sh3-field__label svelte-m4dkl"> <!></span>'),W1=C('<span class="sh3-field__affix svelte-m4dkl"><!></span>'),Y1=C('<span class="sh3-field__affix svelte-m4dkl"><!></span>'),G1=C("<span> </span>"),X1=C('<label><!> <span class="sh3-field__row svelte-m4dkl"><!> <input class="sh3-field__input svelte-m4dkl"/> <!></span> <!></label>');function J1(e,t){re(t,!0);let n=Z(t,"value",15,""),r=Z(t,"type",3,"text"),s=Z(t,"disabled",3,!1),a=Z(t,"invalid",3,!1),o=Z(t,"size",3,"md"),l=Z(t,"required",3,!1);const c=W(()=>a()&&!!t.error),u=W(()=>i(c)?t.error:t.helper);var d=X1();let f;var p=h(d);{var b=j=>{var P=K1(),O=h(P,!0),R=w(O);{var T=A=>{var D=H1();S(A,D)};K(R,A=>{l()&&A(T)})}v(P),N(()=>M(O,t.label)),S(j,P)};K(p,j=>{t.label&&j(b)})}var k=w(p,2),g=h(k);{var _=j=>{var P=W1(),O=h(P);en(O,()=>t.prefix),v(P),S(j,P)};K(g,j=>{t.prefix&&j(_)})}var E=w(g,2);ge(E);var y=w(E,2);{var m=j=>{var P=Y1(),O=h(P);en(O,()=>t.suffix),v(P),S(j,P)};K(y,j=>{t.suffix&&j(m)})}v(k);var I=w(k,2);{var z=j=>{var P=G1();let O;var R=h(P,!0);v(P),N(()=>{O=ce(P,1,"sh3-field__helper svelte-m4dkl",null,O,{"sh3-field__helper--error":i(c)}),M(R,i(u))}),S(j,P)};K(I,j=>{i(u)&&j(z)})}v(d),N(()=>{f=ce(d,1,"sh3-field svelte-m4dkl",null,f,{"sh3-field--invalid":a(),"sh3-field--sm":o()==="sm"}),ne(E,"type",r()),ne(E,"placeholder",t.placeholder),E.disabled=s(),E.required=l(),ne(E,"autocomplete",t.autocomplete),ne(E,"aria-invalid",a()||void 0)}),H("input",E,()=>t.oninput?.(n())),Pe("blur",E,()=>t.onchange?.(n())),Ee(E,n),S(e,d),se()}le(["input"]);var Z1=C('<span aria-hidden="true">*</span>'),Q1=C('<span class="sh3-textarea__label svelte-668c6r"> <!></span>'),$1=C("<span> </span>"),ek=C('<label><!> <textarea class="sh3-textarea__input svelte-668c6r"></textarea> <!></label>');function tk(e,t){re(t,!0);let n=Z(t,"value",15,""),r=Z(t,"disabled",3,!1),s=Z(t,"invalid",3,!1),a=Z(t,"size",3,"md"),o=Z(t,"required",3,!1),l=Z(t,"rows",3,3),c=Z(t,"resize",3,"vertical");const u=W(()=>s()&&!!t.error),d=W(()=>i(u)?t.error:t.helper);var f=ek();let p;var b=h(f);{var k=m=>{var I=Q1(),z=h(I,!0),j=w(z);{var P=O=>{var R=Z1();S(O,R)};K(j,O=>{o()&&O(P)})}v(I),N(()=>M(z,t.label)),S(m,I)};K(b,m=>{t.label&&m(k)})}var g=w(b,2);yo(g);let _;var E=w(g,2);{var y=m=>{var I=$1();let z;var j=h(I,!0);v(I),N(()=>{z=ce(I,1,"sh3-textarea__helper svelte-668c6r",null,z,{"sh3-textarea__helper--error":i(u)}),M(j,i(d))}),S(m,I)};K(E,m=>{i(d)&&m(y)})}v(f),N(()=>{p=ce(f,1,"sh3-textarea svelte-668c6r",null,p,{"sh3-textarea--invalid":s(),"sh3-textarea--sm":a()==="sm"}),ne(g,"placeholder",t.placeholder),g.disabled=r(),g.required=o(),ne(g,"rows",l()),ne(g,"aria-invalid",s()||void 0),_=Ye(g,"",_,{resize:c()})}),H("input",g,()=>t.oninput?.(n())),Pe("blur",g,()=>t.onchange?.(n())),Ee(g,n),S(e,f),se()}le(["input"]);function nk(e,t,n){let r=e;return t!==void 0&&r<t&&(r=t),n!==void 0&&r>n&&(r=n),r}function rk(e,t){const n=t.min??0,r=Math.round((e-n)/t.step);return n+r*t.step}var sk=C('<span class="sh3-num__label svelte-1qa0x3m"> </span>'),ak=C('<span class="sh3-num__affix svelte-1qa0x3m"><!></span>'),ik=C('<span class="sh3-num__affix svelte-1qa0x3m"><!></span>'),ok=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 lk(e,t){re(t,!0);let n=Z(t,"value",15,0),r=Z(t,"step",3,1),s=Z(t,"disabled",3,!1),a=Z(t,"invalid",3,!1),o=Z(t,"size",3,"md");function l(A){if(Number.isNaN(A))return;let D=nk(rk(A,{min:t.min,step:r()}),t.min,t.max);t.precision!==void 0&&(D=Number(D.toFixed(t.precision))),n(D)}function c(A){l(n()+A*r()),t.oninput?.(n())}let u=null,d=null,f=!1;function p(A){s()||(f=!0,c(A),u=setTimeout(()=>{let D=0;d=setInterval(()=>{c(A),D+=60,D>1500&&d&&(clearInterval(d),d=setInterval(()=>c(A),20))},60)},350))}function b(){u&&(clearTimeout(u),u=null),d&&(clearInterval(d),d=null),f&&(f=!1,t.onchange?.(n()))}var k=ok();let g;var _=h(k);{var E=A=>{var D=sk(),B=h(D,!0);v(D),N(()=>M(B,t.label)),S(A,D)};K(_,A=>{t.label&&A(E)})}var y=w(_,2),m=h(y);{var I=A=>{var D=ak(),B=h(D);en(B,()=>t.prefix),v(D),S(A,D)};K(m,A=>{t.prefix&&A(I)})}var z=w(m,2);ge(z);var j=w(z,2);{var P=A=>{var D=ik(),B=h(D);en(B,()=>t.suffix),v(D),S(A,D)};K(j,A=>{t.suffix&&A(P)})}var O=w(j,2),R=h(O),T=w(R,2);v(O),v(y),v(k),N(()=>{g=ce(k,1,"sh3-num svelte-1qa0x3m",null,g,{"sh3-num--invalid":a(),"sh3-num--sm":o()==="sm"}),ne(z,"min",t.min),ne(z,"max",t.max),ne(z,"step",r()),z.disabled=s(),ne(z,"aria-invalid",a()||void 0),cs(z,n()),R.disabled=s(),T.disabled=s()}),H("input",z,A=>{const D=A.currentTarget.valueAsNumber;Number.isNaN(D)||(n(D),t.oninput?.(D))}),Pe("blur",z,()=>{l(n()),t.onchange?.(n())}),H("pointerdown",R,()=>p(1)),H("pointerup",R,b),Pe("pointerleave",R,b),H("pointerdown",T,()=>p(-1)),H("pointerup",T,b),Pe("pointerleave",T,b),S(e,k),se()}le(["input","pointerdown","pointerup"]);function ti(e){return e.filter(t=>!t.disabled)}function ck(e,t){const n=ti(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 uk(e,t){const n=ti(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 dk(e){return ti(e)[0]?.value}function fk(e){const t=ti(e);return t[t.length-1]?.value}var vk=C('<button type="button" role="radio"> </button>'),hk=C('<div role="radiogroup" tabindex="-1"></div>');function av(e,t){re(t,!0);let n=Z(t,"value",31,()=>oe(t.options[0]?.value??"")),r=Z(t,"size",3,"md"),s=Z(t,"disabled",3,!1);function a(u){n(u),t.onchange?.(u)}function o(u){if(s())return;let d;switch(u.key){case"ArrowRight":case"ArrowDown":d=ck(t.options,n());break;case"ArrowLeft":case"ArrowUp":d=uk(t.options,n());break;case"Home":d=dk(t.options);break;case"End":d=fk(t.options);break;default:return}u.preventDefault(),d!==void 0&&a(d)}var l=hk();let c;he(l,21,()=>t.options,bt,(u,d)=>{var f=vk();let p;var b=h(f,!0);v(f),N(()=>{ne(f,"aria-checked",n()===i(d).value),ne(f,"tabindex",n()===i(d).value?0:-1),f.disabled=s()||i(d).disabled,p=ce(f,1,"svelte-17xsko9",null,p,{"sh3-seg__btn--active":n()===i(d).value}),M(b,i(d).label)}),H("click",f,()=>{!i(d).disabled&&!s()&&a(i(d).value)}),S(u,f)}),v(l),N(()=>c=ce(l,1,"sh3-seg svelte-17xsko9",null,c,{"sh3-seg--sm":r()==="sm"})),H("keydown",l,o),S(e,l),se()}le(["keydown","click"]);function pk(e,t){return e===t?"":t}function mk(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var bk=C('<button type="button"><!></button>'),gk=C('<div role="group"></div>');function _k(e,t){re(t,!0);let n=Z(t,"multiple",3,!1),r=Z(t,"value",31,()=>oe(n()?[]:t.options[0]?.value??"")),s=Z(t,"disabled",3,!1),a=Z(t,"size",3,"md");function o(d){return n()&&Array.isArray(r())?r().includes(d):r()===d}function l(d){if(!s()){if(n()){const f=Array.isArray(r())?r():[];r(mk(f,d))}else r(pk(typeof r()=="string"?r():"",d));t.onchange?.(r())}}var c=gk();let u;he(c,21,()=>t.options,bt,(d,f)=>{var p=bk();let b;var k=h(p);en(k,()=>i(f).icon),v(p),N((g,_)=>{ne(p,"title",i(f).tooltip),ne(p,"aria-label",i(f).tooltip),ne(p,"aria-pressed",g),p.disabled=s(),b=ce(p,1,"svelte-13knxr5",null,b,_)},[()=>o(i(f).value),()=>({"sh3-itg__btn--active":o(i(f).value)})]),H("click",p,()=>l(i(f).value)),S(d,p)}),v(c),N(()=>u=ce(c,1,"sh3-itg svelte-13knxr5",null,u,{"sh3-itg--sm":a()==="sm"})),S(e,c),se()}le(["click"]);function ya(e,t,n){return n===t?0:(e-t)/(n-t)*100}var yk=C('<span class="sh3-slider__tick svelte-13va6lu"></span>'),wk=C('<output class="sh3-slider__value svelte-13va6lu"> </output>'),kk=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 iv(e,t){re(t,!0);let n=Z(t,"value",15,0),r=Z(t,"min",3,0),s=Z(t,"max",3,100),a=Z(t,"step",3,1),o=Z(t,"showValue",3,!1),l=Z(t,"disabled",3,!1),c=Z(t,"invalid",3,!1),u=Z(t,"size",3,"md"),d=Z(t,"orientation",3,"horizontal");const f=W(()=>ya(n(),r(),s()));var p=kk();let b;var k=h(p),g=h(k);let _;var E=w(g,2);{var y=j=>{var P=He(),O=ve(P);he(O,17,()=>t.ticks,bt,(R,T)=>{var A=yk();let D;N(B=>D=Ye(A,"",D,B),[()=>({"--tick-pct":`${ya(i(T),r(),s())??""}%`})]),S(R,A)}),S(j,P)};K(E,j=>{t.ticks&&j(y)})}v(k);var m=w(k,2);ge(m);var I=w(m,2);{var z=j=>{var P=wk();let O;var R=h(P,!0);v(P),N(()=>{O=Ye(P,"",O,{"--pct":`${i(f)??""}%`}),M(R,n())}),S(j,P)};K(I,j=>{o()&&j(z)})}v(p),N(()=>{b=ce(p,1,`sh3-slider sh3-slider--${d()??""}`,"svelte-13va6lu",b,{"sh3-slider--sm":u()==="sm","sh3-slider--invalid":c()}),_=Ye(g,"",_,{"--pct":`${i(f)??""}%`}),ne(m,"min",r()),ne(m,"max",s()),ne(m,"step",a()),m.disabled=l(),ne(m,"aria-invalid",c()||void 0)}),H("input",m,()=>t.oninput?.(n())),H("change",m,()=>t.onchange?.(n())),Ee(m,n),S(e,p),se()}le(["input","change"]);function gc(e,t,n){const[r,s]=e;return t==="low"?[Math.min(n,s),s]:[r,Math.max(n,r)]}var xk=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 Sk(e,t){re(t,!0);let n=Z(t,"value",31,()=>oe([0,100])),r=Z(t,"min",3,0),s=Z(t,"max",3,100),a=Z(t,"step",3,1),o=Z(t,"disabled",3,!1),l=Z(t,"invalid",3,!1),c=Z(t,"size",3,"md");const u=W(()=>ya(n()[0],r(),s())),d=W(()=>ya(n()[1],r(),s()));function f(I){n(gc(n(),"low",I)),t.oninput?.(n())}function p(I){n(gc(n(),"high",I)),t.oninput?.(n())}var b=xk();let k;var g=h(b),_=h(g);let E;v(g);var y=w(g,2);ge(y);var m=w(y,2);ge(m),v(b),N(()=>{k=ce(b,1,"sh3-range svelte-rdbrc5",null,k,{"sh3-range--sm":c()==="sm","sh3-range--invalid":l()}),E=Ye(_,"",E,{"--lo":`${i(u)??""}%`,"--hi":`${i(d)??""}%`}),ne(y,"min",r()),ne(y,"max",s()),ne(y,"step",a()),y.disabled=o(),cs(y,n()[0]),ne(m,"min",r()),ne(m,"max",s()),ne(m,"step",a()),m.disabled=o(),cs(m,n()[1])}),H("input",y,I=>f(parseFloat(I.currentTarget.value))),H("change",y,()=>t.onchange?.(n())),H("input",m,I=>p(parseFloat(I.currentTarget.value))),H("change",m,()=>t.onchange?.(n())),S(e,b),se()}le(["input","change"]);var Ek=C('<div class="sh3-sg__channel svelte-1lqyi0d"><span class="sh3-sg__label svelte-1lqyi0d"> </span> <!></div>'),Ik=C("<div></div>");function Ak(e,t){re(t,!0);let n=Z(t,"orientation",3,"horizontal"),r=Z(t,"values",31,()=>oe({})),s=Z(t,"showValues",3,!1),a=Z(t,"disabled",3,!1),o=Z(t,"size",3,"md");var l=Ik();he(l,21,()=>t.channels,c=>c.id,(c,u)=>{var d=Ek(),f=h(d),p=h(f,!0);v(f);var b=w(f,2),k=()=>r()[i(u).id]??0,g=_=>r({...r(),[i(u).id]:_});{let _=W(()=>i(u).min??0),E=W(()=>i(u).max??100),y=W(()=>i(u).step??1);iv(b,{get orientation(){return n()},get min(){return i(_)},get max(){return i(E)},get step(){return i(y)},get disabled(){return a()},get size(){return o()},get showValue(){return s()},get value(){return k()},set value(m){g(m)},oninput:()=>t.oninput?.(r()),onchange:()=>t.onchange?.(r())})}v(d),N(()=>M(p,i(u).label)),S(c,d)}),v(l),N(()=>ce(l,1,`sh3-sg sh3-sg--${n()??""}`,"svelte-1lqyi0d")),S(e,l),se()}var Ck=C('<span class="sh3-swatch__label svelte-6ri2j2"> </span>'),Tk=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 ov(e,t){re(t,!0);let n=Z(t,"value",15,"#000000"),r=Z(t,"disabled",3,!1),s=Z(t,"size",3,"md"),a;async function o(){if(r())return;const g=await On.color.pick({initial:n(),anchor:a});g!=null&&(n(g),t.onchange?.(g))}var l=Tk();let c;var u=h(l);{var d=g=>{var _=Ck(),E=h(_,!0);v(_),N(()=>M(E,t.label)),S(g,_)};K(u,g=>{t.label&&g(d)})}var f=w(u,2);let p;var b=w(h(f)),k=h(b,!0);v(b),v(f),ze(f,g=>a=g,()=>a),v(l),N(()=>{c=ce(l,1,"sh3-swatch svelte-6ri2j2",null,c,{"sh3-swatch--sm":s()==="sm"}),f.disabled=r(),ne(f,"aria-label",`${t.label??"Color"??""} (current ${n()??""})`),p=Ye(f,"",p,{"--swatch-color":n()}),M(k,n())}),H("click",f,o),S(e,l),se()}le(["click"]);function Rk(e,t){return!e||e.length===0?t?[]:null:t?Array.from(e):e[0]}function jk(e){return e===null?"":Array.isArray(e)?e.length===0?"":e.length===1?e[0].name:`${e.length} files`:e.name}var Pk=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 Dk(e,t){re(t,!0);let n=Z(t,"value",15,null),r=Z(t,"multiple",3,!1),s=Z(t,"disabled",3,!1),a=Z(t,"invalid",3,!1),o=Z(t,"size",3,"md"),l=Z(t,"buttonLabel",3,"Choose file...");function c(E){const y=E.currentTarget;n(Rk(y.files,r())),t.onchange?.(n())}const u=W(()=>jk(n()));var d=Pk();let f;var p=h(d),b=w(p,2),k=h(b,!0);v(b);var g=w(b,2),_=h(g,!0);v(g),v(d),N(()=>{f=ce(d,1,"sh3-fp svelte-24jk95",null,f,{"sh3-fp--sm":o()==="sm","sh3-fp--invalid":a()}),ne(p,"accept",t.accept),p.multiple=r(),p.disabled=s(),M(k,l()),M(_,i(u)||"no file")}),H("change",p,c),S(e,d),se()}le(["change"]);const zk=8;function Mk(e){return e.length>=zk}function Ok(e,t){if(!t)return e.slice();const n=t.toLowerCase();return e.filter(r=>r.label.toLowerCase().includes(n))}function Lk(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 Nk(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 qk(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…"/>'),Bk=C('<span aria-hidden="true"></span>'),Fk=C('<div role="option" tabindex="-1"><!> <span class="sh3-listbox__label"> </span></div>'),Uk=C('<div class="sh3-listbox__empty svelte-1tyxvrs">No matches</div>'),Hk=C('<div class="sh3-listbox svelte-1tyxvrs" role="listbox" tabindex="-1"><!> <div class="sh3-listbox__list svelte-1tyxvrs"><!> <!></div></div>');function Kk(e,t){re(t,!0);const n=W(()=>t.getValue());function r(){t.onClose?.(),t.close()}const s=W(()=>Mk(t.options));function a(){if(t.multiple)return 0;const O=typeof i(n)=="string"?i(n):"",R=t.options.findIndex(T=>T.value===O&&!T.disabled);return R>=0?R:0}let o=U(""),l=U(oe(a())),c=U(void 0),u=U(void 0),d="",f=null;const p=W(()=>Ok(t.options,i(o)));xe(()=>{i(l)>=i(p).length&&x(l,0),b()});async function b(){if(await Ts(),!i(c))return;i(c).querySelector(`[data-idx="${i(l)}"]`)?.scrollIntoView({block:"nearest"})}function k(O){return t.multiple&&Array.isArray(i(n))?i(n).includes(O.value):i(n)===O.value}function g(O){const R=i(p)[O];!R||R.disabled||(t.onSelect(R.value),t.multiple||r())}function _(O){if(i(p).length!==0)switch(O.key){case"ArrowDown":O.preventDefault(),x(l,(i(l)+1)%i(p).length);break;case"ArrowUp":O.preventDefault(),x(l,(i(l)-1+i(p).length)%i(p).length);break;case"Home":O.preventDefault(),x(l,0);break;case"End":O.preventDefault(),x(l,i(p).length-1);break;case"Enter":O.preventDefault(),g(i(l));break;case" ":case"Space":O.preventDefault(),g(i(l));break;case"Escape":O.preventDefault(),r();break;default:if(i(s)&&document.activeElement===i(u)||O.key.length!==1||O.metaKey||O.ctrlKey||O.altKey)return;d+=O.key,f&&clearTimeout(f),f=setTimeout(()=>{d=""},500);const R=Lk(i(p),d,i(l));R>=0&&x(l,R,!0)}}var E=Hk(),y=h(E);{var m=O=>{var R=Vk();ge(R),ze(R,T=>x(u,T),()=>i(u)),Ee(R,()=>i(o),T=>x(o,T)),S(O,R)};K(y,O=>{i(s)&&O(m)})}var I=w(y,2),z=h(I);he(z,17,()=>i(p),bt,(O,R,T)=>{var A=Fk();ne(A,"data-idx",T);let D;var B=h(A);{var L=q=>{var G=Bk();let X;N(ae=>X=ce(G,1,"sh3-listbox__check svelte-1tyxvrs",null,X,ae),[()=>({"sh3-listbox__check--on":k(i(R))})]),S(q,G)};K(B,q=>{t.multiple&&q(L)})}var F=w(B,2),V=h(F,!0);v(F),v(A),N((q,G)=>{ne(A,"aria-selected",q),ne(A,"aria-disabled",i(R).disabled),D=ce(A,1,"svelte-1tyxvrs",null,D,G),M(V,i(R).label)},[()=>k(i(R)),()=>({"sh3-listbox__opt--active":T===i(l),"sh3-listbox__opt--selected":k(i(R))})]),H("click",A,()=>g(T)),Pe("mouseenter",A,()=>x(l,T,!0)),S(O,A)});var j=w(z,2);{var P=O=>{var R=Uk();S(O,R)};K(j,O=>{i(p).length===0&&O(P)})}v(I),ze(I,O=>x(c,O),()=>i(c)),v(E),N(()=>ne(E,"aria-multiselectable",t.multiple)),H("keydown",E,_),S(e,E),se()}le(["keydown","click"]);var Wk=C('<span class="sh3-select__label svelte-1q3zxph"> </span>'),Yk=C("<option> </option>"),Gk=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 Xk(e,t){re(t,!0);let n=Z(t,"multiple",3,!1),r=Z(t,"value",31,()=>oe(n()?[]:"")),s=Z(t,"placeholder",3,"Select…"),a=Z(t,"disabled",3,!1),o=Z(t,"invalid",3,!1),l=Z(t,"size",3,"md"),c=U(void 0),u=U(void 0),d=U(!1);const f=W(()=>Nk(t.options,r(),n()));function p(){x(d,!1),i(c)?.focus()}async function b(){if(a()||i(d)||!i(c))return;x(d,!0);const R=On.popup.show(Kk,{anchor:i(c)},{options:t.options,getValue:()=>r(),multiple:n(),onSelect:D=>{if(n()){const B=Array.isArray(r())?r():[];r(qk(B,D))}else r(D);t.onchange?.(r())},onClose:p}),T=R.close;R.close=()=>{T(),p()},await Ts(),document.querySelector(".sh3-listbox")?.focus()}function k(R){if(!(a()||i(d)))switch(R.key){case"ArrowDown":case"ArrowUp":case"Enter":case" ":R.preventDefault(),b();break}}function g(){i(u)&&(n()?r(Array.from(i(u).selectedOptions).map(R=>R.value)):r(i(u).value),t.onchange?.(r()))}var _=Gk();let E;var y=h(_);{var m=R=>{var T=Wk(),A=h(T,!0);v(T),N(()=>M(A,t.label)),S(R,T)};K(y,R=>{t.label&&R(m)})}var I=w(y,2),z=h(I);let j;var P=h(z,!0);v(z),Gt(2),v(I),ze(I,R=>x(c,R),()=>i(c));var O=w(I,2);ne(O,"tabindex",-1),he(O,21,()=>t.options,bt,(R,T)=>{var A=Yk(),D=h(A,!0);v(A);var B={};N(L=>{Do(A,L),M(D,i(T).label),B!==(B=i(T).value)&&(A.value=(A.__value=i(T).value)??"")},[()=>n()?Array.isArray(r())&&r().includes(i(T).value):r()===i(T).value]),S(R,A)}),v(O),ze(O,R=>x(u,R),()=>i(u)),v(_),N(()=>{E=ce(_,1,"sh3-select svelte-1q3zxph",null,E,{"sh3-select--invalid":o(),"sh3-select--sm":l()==="sm"}),I.disabled=a(),ne(I,"aria-expanded",i(d)),j=ce(z,1,"sh3-select__display svelte-1q3zxph",null,j,{"sh3-select__display--placeholder":!i(f)}),M(P,i(f)||s()),O.multiple=n(),O.disabled=a()}),H("click",I,b),H("keydown",I,k),H("change",O,g),S(e,_),se()}le(["click","keydown","change"]);function Jk(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 Zk(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var Qk=C('<input type="search" class="sh3-picker__search svelte-1rlwvrb" placeholder="Filter…"/>'),$k=C('<p class="sh3-picker__status svelte-1rlwvrb">Loading…</p>'),e0=C('<button type="button" class="sh3-picker__retry svelte-1rlwvrb">Retry</button>'),t0=C('<p class="sh3-picker__status sh3-picker__status--error svelte-1rlwvrb"> </p> <!>',1),n0=C('<p class="sh3-picker__status svelte-1rlwvrb"> </p>'),r0=C('<span class="sh3-picker__row-sub svelte-1rlwvrb"> </span>'),s0=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>'),a0=C('<div><!> <div class="sh3-picker__list svelte-1rlwvrb"><!></div> <p class="sh3-picker__footer svelte-1rlwvrb"> </p></div>');function lv(e,t){re(t,!0);let n=Z(t,"value",31,()=>oe([])),r=Z(t,"loading",3,!1),s=Z(t,"error",3,null),a=Z(t,"emptyText",3,"No items."),o=Z(t,"searchThreshold",3,8),l=Z(t,"disabled",3,!1),c=Z(t,"size",3,"md"),u=U("");const d=W(()=>t.items.length>=o()),f=W(()=>Jk(t.items,i(u))),p=W(()=>t.items.length),b=W(()=>n().length);function k(A){if(l())return;const D=Zk(n(),A);n(D),t.onchange?.(D)}var g=a0();let _;var E=h(g);{var y=A=>{var D=Qk();ge(D),N(()=>D.disabled=l()),Ee(D,()=>i(u),B=>x(u,B)),S(A,D)};K(E,A=>{i(d)&&A(y)})}var m=w(E,2),I=h(m);{var z=A=>{var D=$k();S(A,D)},j=A=>{var D=t0(),B=ve(D),L=h(B,!0);v(B);var F=w(B,2);{var V=q=>{var G=e0();H("click",G,()=>t.onRetry?.()),S(q,G)};K(F,q=>{t.onRetry&&q(V)})}N(()=>M(L,s())),S(A,D)},P=A=>{var D=n0(),B=h(D,!0);v(D),N(()=>M(B,a())),S(A,D)},O=A=>{var D=He(),B=ve(D);he(B,17,()=>i(f),L=>L.id,(L,F)=>{var V=s0(),q=h(V);ge(q);var G=w(q,2),X=h(G),ae=h(X,!0);v(X);var Y=w(X,2);{var J=ie=>{var fe=r0(),Q=h(fe,!0);v(fe),N(()=>M(Q,i(F).sublabel)),S(ie,fe)};K(Y,ie=>{i(F).sublabel&&ie(J)})}v(G),v(V),N(ie=>{Po(q,ie),q.disabled=l(),M(ae,i(F).label)},[()=>n().includes(i(F).id)]),H("change",q,()=>k(i(F).id)),S(L,V)}),S(A,D)};K(I,A=>{r()?A(z):s()?A(j,1):t.items.length===0?A(P,2):A(O,-1)})}v(m);var R=w(m,2),T=h(R);v(R),v(g),N(()=>{_=ce(g,1,"sh3-picker svelte-1rlwvrb",null,_,{"sh3-picker--sm":c()==="sm","sh3-picker--disabled":l()}),M(T,`${i(b)??""} of ${i(p)??""} selected`)}),S(e,g),se()}le(["click","change"]);function cv(e,t){re(t,!0);const n=new Set(["sh3-admin-app","sh3-store-app"]);let r=Z(t,"value",31,()=>oe([])),s=Z(t,"disabled",3,!1),a=Z(t,"size",3,"md");const o=W(()=>ar().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)}lv(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 Gr=null;function _c(){return Gr||(Mt.loading=!0,Mt.error=null,Gr=(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,Gr=null}})(),Gr)}function uv(e,t){re(t,!0);let n=Z(t,"value",31,()=>oe([])),r=Z(t,"disabled",3,!1),s=Z(t,"size",3,"md");Mt.users.length===0&&!Mt.loading&&!Mt.error&&_c();const a=W(()=>Mt.users.map(l=>({id:l.id,label:l.displayName||l.username,sublabel:l.username})));function o(l){n(l),t.onchange?.(l)}lv(e,{get items(){return i(a)},get value(){return n()},onchange:o,get loading(){return Mt.loading},get error(){return Mt.error},onRetry:()=>void _c(),emptyText:"No users found.",get disabled(){return r()},get size(){return s()}}),se()}const i0={hotInstall:typeof Blob<"u"&&typeof URL.createObjectURL=="function"},dv=["__sh3core__","shell","sh3-store","sh3-admin"],fv=Object.freeze(Object.defineProperty({__proto__:null,AppPicker:cv,Button:q1,COLOR_PICKER_POINT:Vd,CONFLICT_RENDERER_POINT:Ld,Collapsible:U1,ColorSwatch:ov,ConflictPermissionError:Nd,ConflictSessionOrphanedError:ly,ConsentDeniedError:Jf,FRAMEWORK_SHARD_IDS:dv,Field:J1,FilePicker:Dk,IconToggleGroup:_k,NumberInput:lk,PERMISSION_DOCUMENTS_BROWSE:Kf,PERMISSION_DOCUMENTS_READ:Wf,PERMISSION_DOCUMENTS_WRITE:Yf,PERMISSION_KEYS_MINT:Gf,PERMISSION_STATE_MANAGE:Oo,PERMISSION_SYNC_PEER:c1,PERMISSION_SYNC_POLICY:u1,RangeSlider:Sk,SHELL_MODE_CONTRIBUTION_POINT:ss,ScopeEscalationError:Xf,Segmented:av,Select:Xk,Slider:iv,SliderGroup:Ak,Textarea:tk,UserPicker:uv,VERSION:vn,activeShards:tr,buildPackageMeta:ei,capabilities:i0,clearTokenOverrides:P1,closeTab:nl,collapseChild:Uw,dockFloat:zf,dockIntoActiveLayout:sl,erroredShards:_a,expandChild:Hw,fetchBundle:$a,fetchRegistries:tv,focusTab:Fw,focusView:Ga,getActiveApp:kd,getAuthHeader:Za,getIconSprite:sv,getTokenOverrides:nv,getUser:Dr,inspectActiveLayout:Rf,isAdmin:ht,isAuthenticated:Ji,isGuest:Nf,launchApp:yn,listRegisteredApps:ar,listVerbs:Yo,locateSlot:Of,popoutView:Df,provideIcons:z1,pushNavEntry:qg,registerConsentListener:Zf,registerShellMode:R1,registeredShards:dn,resolveConsent:Qi,returnToHome:Ms,runVerbProgrammatic:Uf,setTokenOverrides:j1,shell:On,spliceIntoActiveLayout:Bw,subscribeKeyRevocation:il,unregisterApp:Ya,validateRegistryIndex:ev},Symbol.toStringTag,{value:"Module"})),o0="/assets/SH3-BG5NVpSD.png",l0="https://cdn.jsdelivr.net/npm/p5@1.11.13/lib/p5.min.js";let Xr=null;function c0(){return Xr||(Xr=new Promise((e,t)=>{const n=window.p5;if(n){e(n);return}const r=document.createElement("script");r.src=l0,r.async=!0,r.onload=()=>e(window.p5),r.onerror=s=>{Xr=null,t(s)},document.head.appendChild(r)}),Xr)}var u0=C('<h1 class="shell-title-fallback svelte-1ifjvh5">SH3</h1>'),d0=C('<div class="shell-title svelte-1ifjvh5"></div>');function f0(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=U(void 0),p=null,b=U(!1);const k=()=>m=>{const z=getComputedStyle(document.documentElement).getPropertyValue("--shell-accent").trim();let j,P,O=!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),P=m.loadImage(o0,()=>{j=m.createGraphics(r,s),j.pixelDensity(1),j.image(P,0,0,r,s),j.loadPixels(),O=!0},()=>{x(b,!0)})},m.draw=()=>{if(!O)return;const R=m.millis()*.001;let T;m.clear(),m.background(0,0),m.fill(z);for(let A=0;A<s;A++)for(let D=0;D<r;D++){const B=(A*r+D)*4;if(j.pixels[B]<64){if(T=m.noise(D/r*2,A/s*2,R*.15),T>.33)continue;m.text(n[Math.floor(T*n.length*.25)],(D+.5)*a,(A+.5)*o);continue}T=m.noise(D/r*4,A/s*4,R*.5),m.text(n[Math.floor(T*n.length)],(D+.5)*a,(A+.5)*o)}}};xe(()=>{if(i(b))return;let m=!1;return c0().then(I=>{if(!(m||!i(f)))try{p=new I(k(),i(f))}catch(z){console.error("[ShellTitle] p5 sketch failed to start",z),x(b,!0)}}).catch(I=>{console.error("[ShellTitle] failed to load p5 from CDN",I),x(b,!0)}),()=>{m=!0,p&&(p.remove(),p=null)}});var g=He(),_=ve(g);{var E=m=>{var I=u0();S(m,I)},y=m=>{var I=d0();Ye(I,"",{},{width:"216.7195767195767px",height:"80px","--shell-title-scale":d}),ze(I,z=>x(f,z),()=>i(f)),S(m,I)};K(_,m=>{i(b)?m(E):m(y,-1)})}S(e,g),se()}async function lr(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 ta={async list(){return(await lr("/api/projects",{method:"GET"})).projects},async listAll(){return(await lr("/api/projects/all",{method:"GET"})).projects},async get(e){return lr(`/api/projects/${encodeURIComponent(e)}`,{method:"GET"})},async create(e){return lr("/api/projects",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e)})},async update(e,t){return lr(`/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 lr(`/api/projects/${encodeURIComponent(e)}${n}`,{method:"DELETE"})}};var v0=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 h0(e,t){re(t,!0);let n=U(void 0),r=U(!1),s=U(!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=v0(),c=h(l),u=h(c);v(c);var d=w(c,4),f=h(d);ge(f);var p=w(f,2),b=w(h(p)),k=h(b);v(b),v(p),v(d);var g=w(d,2),_=h(g);ze(_,y=>x(n,y),()=>i(n));var E=w(_,2);v(g),v(l),N(()=>{M(u,`Delete project '${t.projectName??""}'?`),f.disabled=i(r),M(k,`<dataDir>/docs/${t.projectId??""}/`),_.disabled=i(r),E.disabled=i(r)}),ts(f,()=>i(s),y=>x(s,y)),H("click",_,o),H("click",E,a),S(e,l),se()}le(["click"]);var p0=C('<p class="project-id svelte-1oy3640">ID: <code class="svelte-1oy3640"> </code></p>'),m0=C('<span class="hint svelte-1oy3640">Your id: <code class="svelte-1oy3640"> </code> </span>'),b0=C('<p class="error svelte-1oy3640"> </p>'),g0=C('<button type="button" class="danger svelte-1oy3640">Delete</button>'),_0=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 y0(e,t){re(t,!0);let n=Z(t,"project",3,null);const r=W(()=>n()!==null),s=W(Dr);let a=U(oe(we(()=>n()?.name??""))),o=U(oe(we(()=>n()?.description??""))),l=U(oe(we(()=>{if(n())return[...n().members];const Y=Dr()?.id;return Y?[Y]:[]}))),c=U(oe(we(()=>n()?[...n().appAllowlist]:[]))),u=U(!1),d=U(null);async function f(){if(!i(a).trim()){x(d,"Name is required");return}x(u,!0),x(d,null);const Y={name:i(a).trim(),description:i(o).trim()||void 0,members:i(l),appAllowlist:i(c)};try{i(r)&&n()?await ta.update(n().id,Y):await ta.create(Y),await wa(),t.onClose()}catch(J){x(d,J.message,!0)}finally{x(u,!1)}}function p(){if(!i(r)||!n())return;const Y=n();xn.open(h0,{projectName:Y.name,projectId:Y.id,onConfirm:async({wipeData:J})=>{x(u,!0),x(d,null);try{await ta.delete(Y.id,{wipeData:J}),await wa(),t.onClose()}catch(ie){x(d,ie.message,!0)}finally{x(u,!1)}}})}var b=_0(),k=h(b),g=h(k),_=h(g,!0);v(g);var E=w(g,2);{var y=Y=>{var J=p0(),ie=w(h(J)),fe=h(ie,!0);v(ie),v(J),N(()=>M(fe,n().id)),S(Y,J)};K(E,Y=>{i(r)&&Y(y)})}var m=w(E,2),I=w(h(m),2);ge(I),v(m);var z=w(m,2),j=w(h(z),2);yo(j),ne(j,"rows",2),v(z);var P=w(z,2),O=w(h(P),2);uv(O,{get disabled(){return i(u)},get value(){return i(l)},set value(Y){x(l,Y,!0)}});var R=w(O,2);{var T=Y=>{var J=m0(),ie=w(h(J)),fe=h(ie,!0);v(ie);var Q=w(ie);v(J),N(()=>{M(fe,i(s).id),M(Q,` (${i(s).username??i(s).displayName??""})`)}),S(Y,J)};K(R,Y=>{i(s)&&Y(T)})}v(P);var A=w(P,2),D=w(h(A),2);cv(D,{get disabled(){return i(u)},get value(){return i(c)},set value(Y){x(c,Y,!0)}}),v(A);var B=w(A,2);{var L=Y=>{var J=b0(),ie=h(J,!0);v(J),N(()=>M(ie,i(d))),S(Y,J)};K(B,Y=>{i(d)&&Y(L)})}v(k);var F=w(k,2),V=h(F),q=h(V,!0);v(V);var G=w(V,2),X=w(G,2);{var ae=Y=>{var J=g0();N(()=>J.disabled=i(u)),H("click",J,p),S(Y,J)};K(X,Y=>{i(r)&&Y(ae)})}v(F),v(b),N(()=>{M(_,i(r)?`Edit ${n().name}`:"Create Project"),I.disabled=i(u),j.disabled=i(u),V.disabled=i(u),M(q,i(r)?"Save":"Create"),G.disabled=i(u)}),Ee(I,()=>i(a),Y=>x(a,Y)),Ee(j,()=>i(o),Y=>x(o,Y)),H("click",V,f),H("click",G,function(...Y){t.onClose?.apply(this,Y)}),S(e,b),se()}le(["click"]);const Ot=oe({projects:[],loading:!1,error:null});async function wa(){Ot.loading=!0,Ot.error=null;try{Ot.projects=await ta.list()}catch(e){Ot.error=e.message}finally{Ot.loading=!1}}const $i="projects:manage";let eo=null;function w0(){const e=eo;return eo=null,e}function to(e){eo=e,Re.open($i,{title:e?`Edit ${e.name}`:"Create Project",size:{w:560,h:620},dismissable:!0})}const k0={manifest:{id:"__projects__",label:"Projects",version:vn,views:[{id:$i,label:"Project Manager"}]},activate(e){wa(),typeof document<"u"&&document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&wa()});const t={mount(r,s){const a=w0(),o=Re.list(),l=o.length>0?o[o.length-1].id:null,u=qe(y0,{target:r,props:{project:a,onClose:()=>{l&&Re.close(l)}}});return{unmount(){Xe(u)}}}};e.registerView($i,t),e.actions.register({id:"sh3.project.create",label:"Create Project…",scope:["home","app"],paletteItem:!0,disabled:()=>!ht(),run:()=>{ht()&&to(null)}}),e.actions.register({id:"sh3.project.manage",label:"Manage Project…",scope:["home","app"],submenu:!0,paletteItem:!0,disabled:()=>!ht()});const n=new Map;Cs(()=>{xe(()=>{const r=new Set;for(const s of Ot.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=Ot.projects.find(l=>l.id===s.id);o&&to(o)}});n.set(s.id,a)}for(const s of[...n.keys()])r.has(s)||(n.get(s)(),n.delete(s))})})},autostart(){}};var x0=C('<button type="button" class="project-card-edit svelte-yosqc3" aria-label="Edit project" title="Edit project">⚙</button>'),S0=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>'),E0=C('<section class="projects-section svelte-yosqc3"><h2 class="projects-heading svelte-yosqc3">Projects</h2> <div class="projects-grid svelte-yosqc3"></div></section>');function I0(e,t){re(t,!0);const n=W(()=>Ot.projects.length>0),r=W(()=>er.activeProjectId),s=W(ht);function a(d){If(i(r)===d?null:d)}function o(d,f){f.stopPropagation();const p=Ot.projects.find(b=>b.id===d)??null;p&&to(p)}var l=He(),c=ve(l);{var u=d=>{var f=E0(),p=w(h(f),2);he(p,21,()=>Ot.projects,b=>b.id,(b,k)=>{var g=S0(),_=h(g);let E;var y=h(_),m=h(y,!0);v(y);var I=w(y,2),z=h(I);v(I),v(_);var j=w(_,2);{var P=O=>{var R=x0();H("click",R,T=>o(i(k).id,T)),S(O,R)};K(j,O=>{i(s)&&O(P)})}v(g),N(()=>{E=ce(_,1,"project-card svelte-yosqc3",null,E,{active:i(r)===i(k).id}),ne(_,"title",i(k).description??`${i(k).members.length} member${i(k).members.length===1?"":"s"}`),M(m,i(k).name),M(z,`${i(k).members.length??""} member${i(k).members.length===1?"":"s"}`)}),H("click",_,()=>a(i(k).id)),S(b,g)}),v(p),v(f),S(d,f)};K(c,d=>{i(n)&&d(u)})}S(e,l),se()}le(["click"]);const yc=["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 A0=C('<span class="sh3-icon-picker__label svelte-h9dluc"> </span>'),C0=C('<button type="button"><svg viewBox="0 0 24 24" class="svelte-h9dluc"><use></use></svg></button>'),T0=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=Z(t,"value",15,void 0),r=Z(t,"disabled",3,!1),s=U("");const a=W(()=>i(s).trim()===""?yc:yc.filter(_=>_.includes(i(s).trim().toLowerCase())));function o(_){r()||(n(_),t.onchange?.(_))}var l=T0();let c;var u=h(l);{var d=_=>{var E=A0(),y=h(E,!0);v(E),N(()=>M(y,t.label)),S(_,E)};K(u,_=>{t.label&&_(d)})}var f=w(u,2);ge(f);var p=w(f,2),b=h(p);let k;var g=w(b,2);he(g,16,()=>i(a),_=>_,(_,E)=>{var y=C0();let m;var I=h(y),z=h(I);v(I),v(y),N(()=>{m=ce(y,1,"sh3-icon-picker__tile svelte-h9dluc",null,m,{"sh3-icon-picker__tile--selected":n()===E}),ne(y,"aria-label",E),ne(y,"title",E),y.disabled=r(),ne(z,"href",`${nr}#${E??""}`)}),H("click",y,()=>o(E)),S(_,y)}),v(p),v(l),N(()=>{c=ce(l,1,"sh3-icon-picker svelte-h9dluc",null,c,{"sh3-icon-picker--disabled":r()}),f.disabled=r(),k=ce(b,1,"sh3-icon-picker__tile sh3-icon-picker__tile--none svelte-h9dluc",null,k,{"sh3-icon-picker__tile--selected":n()===void 0}),b.disabled=r()}),Ee(f,()=>i(s),_=>x(s,_)),H("click",b,()=>o(void 0)),S(e,l),se()}le(["click"]);let Kn=null;function j0(e){Kn=e}function P0(){Kn=null}function vv(e){return e.icon===void 0&&e.color===void 0&&e.label===void 0}function no(e){const t=Kn?.user.overrides;if(!t)return;const n=t[e];if(n&&!vv(n))return n}function wc(e,t){if(!Kn)return;const r={...Kn.user.overrides};t===void 0||vv(t)?delete r[e]:r[e]=t,Kn.user.overrides=r}function D0(){Kn={ephemeral:{},session:{},workspace:{},user:{overrides:{}}}}D0();var z0=C('<button type="button" class="link svelte-7szqlz">Change icon</button>'),M0=C('<!> <button type="button" class="link link--align-right svelte-7szqlz">Hide picker</button>',1),O0=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 L0(e,t){re(t,!0);const n=we(()=>no(t.appId)),r=we(()=>ar().find(Y=>Y.id===t.appId)?.icon);let s=U(oe(n?.icon)),a=U(oe(n?.color)),o=U(oe(n?.label??"")),l=U(n?.icon!==void 0);const c=W(()=>n!==void 0),u=W(()=>i(o).trim()===""?t.appLabel:i(o).trim()),d=W(()=>i(s)??r??"box");function f(){const Y=i(o).trim();wc(t.appId,{icon:i(s),color:i(a),label:Y===""?void 0:Y}),t.close()}function p(){wc(t.appId,void 0),t.close()}var b=O0(),k=h(b),g=h(k);v(k);var _=w(k,2),E=h(_);let y,m;var I=h(E),z=h(I),j=h(z);v(z),v(I);var P=w(I,2),O=h(P,!0);v(P),v(E),v(_);var R=w(_,2),T=w(h(R),2);ge(T),v(R);var A=w(R,2),D=w(h(A),2);{var B=Y=>{var J=z0();H("click",J,()=>x(l,!0)),S(Y,J)},L=Y=>{var J=M0(),ie=ve(J);R0(ie,{get value(){return i(s)},set value(Q){x(s,Q,!0)}});var fe=w(ie,2);H("click",fe,()=>x(l,!1)),S(Y,J)};K(D,Y=>{i(l)?Y(L,-1):Y(B)})}v(A);var F=w(A,2),V=w(h(F),2);{let Y=W(()=>i(a)??"#888888");ov(V,{get value(){return i(Y)},onchange:J=>x(a,J,!0)})}v(F);var q=w(F,2),G=h(q),X=w(G,2),ae=w(X,2);v(q),v(b),N(()=>{M(g,`Customize ${t.appLabel??""}`),y=ce(E,1,"preview-card svelte-7szqlz",null,y,{"preview-card--tinted":i(a)!==void 0}),m=Ye(E,"",m,{"--card-color":i(a)??"transparent"}),ne(j,"href",`${nr}#${i(d)??""}`),M(O,i(u)),ne(T,"placeholder",t.appLabel),X.disabled=!i(c)}),Ee(T,()=>i(o),Y=>x(o,Y)),H("click",G,f),H("click",X,p),H("click",ae,function(...Y){t.close?.apply(this,Y)}),S(e,b),se()}le(["click"]);function N0(){const e=Wo();return!e||e.type!=="app"?null:e.ref}function q0(e){const t=N0();if(!t)return;const n=ar().find(s=>s.id===t.appId),r={appId:t.appId,appLabel:n?.label??t.appId};xn.open(L0,r)}const V0={manifest:{id:"__app-appearance__",label:"App Appearance",version:vn,views:[]},activate(e){const t=e.state({user:{overrides:{}}});j0(t);const n={id:"app.customize",label:"Customize…",scope:{element:"app"},contextItem:!0,group:"appearance",run:q0};e.actions.register(n)},autostart(){},deactivate(){P0()}};var B0=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>'),F0=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>'),U0=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>'),H0=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>'),K0=C('<p class="shell-home-empty svelte-cpn2x2"><!></p>'),W0=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=Kd("__sh3core__");function r(D,B){D.preventDefault(),n.set({type:"app",ref:{appId:B}}),On.actions.openContextMenu({x:D.clientX,y:D.clientY,scope:{element:"app"}})}let s=U("");const a=W(ar),o=W(ht),l=W(()=>er.activeProjectId?Ot.projects.find(D=>D.id===er.activeProjectId)??null:null);function c(D,B){if(!B)return!0;const L=B.toLowerCase();return D.label.toLowerCase().includes(L)||D.id.toLowerCase().includes(L)}function u(D){return i(l)?i(l).appAllowlist.includes(D):!0}const d=W(()=>i(a).filter(D=>!D.admin&&c(D,i(s))&&u(D.id))),f=W(()=>i(a).filter(D=>D.admin&&c(D,i(s)))),p=W(()=>i(d).length+(i(o)?i(f).length:0));var b=W0(),k=h(b),g=h(k),_=h(g);f0(_,{});var E=w(_,2),y=h(E);v(E),Gt(2),v(g),Gt(2),v(k);var m=w(k,2),I=h(m);ge(I),v(m);var z=w(m,2);I0(z,{});var j=w(z,2);{var P=D=>{var B=F0(),L=w(h(B),2);he(L,21,()=>i(d),F=>F.id,(F,V)=>{const q=W(()=>no(i(V).id));var G=B0();let X,ae;var Y=h(G),J=h(Y),ie=h(J);v(J),v(Y);var fe=w(Y,2),Q=h(fe,!0);v(fe),v(G),N(()=>{X=ce(G,1,"shell-home-card svelte-cpn2x2",null,X,{"shell-home-card--tinted":i(q)?.color}),ae=Ye(G,"",ae,{"--card-color":i(q)?.color??"transparent"}),ne(ie,"href",`${nr}#${i(q)?.icon??i(V).icon??"box"??""}`),M(Q,i(q)?.label??i(V).label)}),H("click",G,()=>yn(i(V).id)),H("contextmenu",G,pe=>r(pe,i(V).id)),S(F,G)}),v(L),v(B),S(D,B)};K(j,D=>{i(d).length>0&&D(P)})}var O=w(j,2);{var R=D=>{var B=H0(),L=w(h(B),2);he(L,21,()=>i(f),F=>F.id,(F,V)=>{const q=W(()=>no(i(V).id));var G=U0();let X,ae;var Y=h(G),J=h(Y),ie=h(J);v(J),v(Y);var fe=w(Y,2),Q=h(fe,!0);v(fe),v(G),N(()=>{X=ce(G,1,"shell-home-card svelte-cpn2x2",null,X,{"shell-home-card--tinted":i(q)?.color}),ae=Ye(G,"",ae,{"--card-color":i(q)?.color??"transparent"}),ne(ie,"href",`${nr}#${i(q)?.icon??i(V).icon??"box"??""}`),M(Q,i(q)?.label??i(V).label)}),H("click",G,()=>yn(i(V).id)),H("contextmenu",G,pe=>r(pe,i(V).id)),S(F,G)}),v(L),v(B),S(D,B)};K(O,D=>{i(o)&&i(f).length>0&&D(R)})}var T=w(O,2);{var A=D=>{var B=K0(),L=h(B);{var F=q=>{var G=Xt("No apps registered.");S(q,G)},V=q=>{var G=Xt();N(()=>M(G,`No apps match “${i(s)??""}”.`)),S(q,G)};K(L,q=>{i(a).length===0?q(F):q(V,-1)})}v(B),S(D,B)};K(T,D=>{i(p)===0&&D(A)})}v(b),N(()=>M(y,`v${vn}`)),Ee(I,()=>i(s),D=>x(s,D)),S(e,b),se()}le(["click","contextmenu"]);var G0=C('<p class="keys-peers-muted svelte-19l5m7c">Loading...</p>'),X0=C('<p class="keys-peers-error svelte-19l5m7c"> </p>'),J0=C('<p class="keys-peers-muted svelte-19l5m7c">No keys yet. Shards will ask your permission before creating one.</p>'),Z0=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),Q0=C('<button type="button" class="keys-peers-btn-danger svelte-19l5m7c">Revoke</button>'),$0=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>'),ex=C('<ul class="keys-peers-list svelte-19l5m7c"></ul>'),tx=C('<div class="keys-peers svelte-19l5m7c"><div class="keys-peers-header svelte-19l5m7c"><h2 class="svelte-19l5m7c">Keys & Peers</h2></div> <!></div>');function nx(e,t){re(t,!0);let n=U(oe([])),r=U(null),s=U(!0),a=U(null);async function o(){x(r,null),x(s,!0);try{const g=await fetch("/api/keys",{credentials:"include"});if(!g.ok)throw new Error(`HTTP ${g.status}`);x(n,await g.json(),!0)}catch(g){x(r,g instanceof Error?g.message:String(g),!0)}finally{x(s,!1)}}async function l(g){x(a,null);const _=await fetch(`/api/keys/${encodeURIComponent(g)}`,{method:"DELETE",credentials:"include"});(_.ok||_.status===404)&&x(n,i(n).filter(E=>E.id!==g),!0)}function c(g){return new Date(g).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}xe(()=>{o()}),xe(()=>il("*",()=>{o()}));var u=tx(),d=w(h(u),2);{var f=g=>{var _=G0();S(g,_)},p=g=>{var _=X0(),E=h(_);v(_),N(()=>M(E,`Failed to load: ${i(r)??""}`)),S(g,_)},b=g=>{var _=J0();S(g,_)},k=g=>{var _=ex();he(_,21,()=>i(n),E=>E.id,(E,y)=>{var m=$0(),I=h(m),z=h(I),j=h(z,!0);v(z);var P=w(z,2),O=h(P);v(P);var R=w(P,2),T=h(R);v(R);var A=w(R,2),D=h(A);v(A),v(I);var B=w(I,2),L=h(B);{var F=q=>{var G=Z0(),X=ve(G),ae=w(X,2);H("click",X,()=>l(i(y).id)),H("click",ae,()=>{x(a,null)}),S(q,G)},V=q=>{var G=Q0();H("click",G,()=>{x(a,i(y).id,!0)}),S(q,G)};K(L,q=>{i(a)===i(y).id?q(F):q(V,-1)})}v(B),v(m),N((q,G,X)=>{M(j,i(y).label),M(O,`Minted by: ${i(y).mintedByShardId??"system"??""}${i(y).peerRole||i(y).peerId?` · Peer: ${i(y).peerRole??"—"}${i(y).peerId?` (${i(y).peerId})`:""}`:""}`),M(T,`Scopes: ${q??""}`),M(D,`Created: ${G??""} · Expires: ${X??""}`)},[()=>i(y).scopes.join(", "),()=>c(i(y).createdAt),()=>i(y).expiresAt?c(i(y).expiresAt):"never"]),S(E,m)}),v(_),S(g,_)};K(d,g=>{i(s)?g(f):i(r)?g(p,1):i(n).length===0?g(b,2):g(k,-1)})}v(u),S(e,u),se()}le(["click"]);var rx=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 sx(e,t){re(t,!0);let n=Z(t,"confirmLabel",3,"Confirm"),r=Z(t,"cancelLabel",3,"Cancel"),s=Z(t,"confirmTone",3,"default"),a=U(void 0),o=U(!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=rx(),d=h(u),f=h(d,!0);v(d);var p=w(d,2),b=h(p,!0);v(p);var k=w(p,2),g=h(k),_=h(g,!0);v(g),ze(g,I=>x(a,I),()=>i(a));var E=w(g,2);let y;var m=h(E,!0);v(E),v(k),v(u),N(()=>{M(f,t.title),M(b,t.body),g.disabled=i(o),M(_,r()),y=ce(E,1,"confirm-dialog-btn svelte-1k1962w",null,y,{"confirm-dialog-btn-danger":s()==="danger","confirm-dialog-btn-default":s()==="default"}),E.disabled=i(o),M(m,n())}),H("click",g,c),H("click",E,l),S(e,u),se()}le(["click"]);const kc=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 gi(e,t){const n=Object.keys(t),r=n.filter(o=>!kc.has(o)),s=n.filter(o=>kc.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 dl=globalThis;dl.__sh3__=fv;dl.__sh3_svelte__=ld;dl.__sh3_svelte_internal_client__=wd;const fl={"sh3-core":gi("__sh3__",fv),svelte:gi("__sh3_svelte__",ld),"svelte/internal/client":gi("__sh3_svelte_internal_client__",wd)};fl["svelte/internal/disclose-version"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));fl["sh3-core/tokens.css"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));const ax=/(?:from|import)\s*(['"])(sh3-core(?:\/[^'"]*)?|svelte(?:\/[^'"]*)?)\1/g;function ix(e){return e.replace(ax,(t,n,r)=>{const s=fl[r];return s?`${t.startsWith("from")?"from":"import"} '${s}'`:t})}async function Os(e){const t=new TextDecoder().decode(e),n=ix(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;ox(c)?o.shards.push(c):lx(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 ox(e){return"activate"in e&&typeof e.activate=="function"&&Array.isArray(e.manifest.views)}function lx(e){return"initialLayout"in e&&Array.isArray(e.manifest.requiredShards)}const cx="sh3-packages",ux=1,bs="bundles",zr="meta";function Ls(){return new Promise((e,t)=>{const n=indexedDB.open(cx,ux);n.onupgradeneeded=()=>{const r=n.result;r.objectStoreNames.contains(bs)||r.createObjectStore(bs),r.objectStoreNames.contains(zr)||r.createObjectStore(zr)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}function rr(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 hv(e,t,n){const r=await Ls();await rr(r,bs,"readwrite",s=>s.put(t,e)),await rr(r,zr,"readwrite",s=>s.put(n,e)),r.close()}async function pv(e){const t=await Ls(),n=await rr(t,bs,"readonly",r=>r.get(e));return t.close(),n??null}async function dx(e){const t=await Ls(),n=await rr(t,zr,"readonly",r=>r.get(e));return t.close(),n??null}async function mv(){const e=await Ls(),t=await rr(e,zr,"readonly",n=>n.getAll());return e.close(),t??[]}async function fx(e){const t=await Ls();await rr(t,bs,"readwrite",n=>n.delete(e)),await rr(t,zr,"readwrite",n=>n.delete(e)),t.close()}function vl(e,t){for(const n of e.shards)n.manifest={...n.manifest,version:t.version},ol(n);for(const n of e.apps)n.manifest={...n.manifest,version:t.version},No(n)}const vx={"state:manage":{title:"Manage shell state zones",description:"Read and write state zones belonging to other shards."},"documents:browse":{title:"Browse tenant documents",description:"Observe all documents stored by the current tenant."},"documents:read":{title:"Read tenant documents",description:"Read the content of any document in the current tenant, across all shards. Required for backup connectors that need to pull document bodies (not just metadata) out of other shards."},"documents:write":{title:"Write tenant documents",description:"Create and overwrite documents in any shard's namespace within the current tenant. Required for restore-class connectors that re-import documents back into their owning shards."},"documents:sync":{title:"Sync documents with peers",description:"Participate in cross-peer document synchronization."},"sync:peer":{title:"Act as a sync peer",description:"Exchange document updates with remote peers."},"sync:policy":{title:"Define sync policy",description:"Configure which documents sync and with whom."},"keys:mint":{title:"Mint API keys",description:"Issue long-lived access tokens for this shell."}};function _i(e){return vx[e]??{title:e,description:"Unknown permission."}}function hl(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 pl(e,t,n){if(!t.integrity)return{success:!1,hotLoaded:!1,error:"Missing integrity hash — refusing to install unverified bundle"};try{await ll(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 Os(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:hl(r)};try{await hv(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{Qa(t.id)}catch{}(t.type==="app"||t.type==="combo")&&Ya(t.id);let a=!0;try{vl(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 hx(e){try{Qa(e)}catch{}Ya(e),await fx(e)}async function px(){return mv()}async function mx(){let e;try{e=await mv()}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 pv(t.id);if(!n){console.warn(`[sh3] No bundle found for installed package "${t.id}", skipping`);continue}const r=await Os(n);vl(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 xc={version:1};var bx=C('<span class="perm-modal-author svelte-1ipp1r6"> </span>'),gx=C('<p class="perm-modal-empty svelte-1ipp1r6">This package requires no special permissions.</p>'),_x=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>'),yx=C('<p class="perm-modal-intro svelte-1ipp1r6">This package requests the following permissions:</p> <ul class="perm-modal-list svelte-1ipp1r6"></ul>',1),wx=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>'),kx=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),xx=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>'),Sx=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),Ex=C("<!> <!>",1),Ix=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 ro(e,t){re(t,!0);const n=Z(t,"permissions",19,()=>[]),r=Z(t,"added",19,()=>[]),s=Z(t,"removed",19,()=>[]),a=W(()=>t.mode==="install"?"Install":"Update");var o=Ix(),l=h(o),c=h(l),u=h(c),d=h(u);v(u);var f=w(u,2),p=h(f);{var b=R=>{var T=Xt();N(()=>M(T,`${t.fromVersion??""} → ${t.pkg.version??""}`)),S(R,T)},k=R=>{var T=Xt();N(()=>M(T,`v${t.pkg.version??""}`)),S(R,T)};K(p,R=>{t.mode==="update"&&t.fromVersion?R(b):R(k,-1)})}var g=w(p,2);{var _=R=>{var T=bx(),A=h(T);v(T),N(()=>M(A,`by ${t.pkg.author??""}`)),S(R,T)};K(g,R=>{t.pkg.author&&R(_)})}v(f),v(c);var E=w(c,2),y=h(E);{var m=R=>{var T=He(),A=ve(T);{var D=L=>{var F=gx();S(L,F)},B=L=>{var F=yx(),V=w(ve(F),2);he(V,20,n,q=>q,(q,G)=>{const X=W(()=>_i(G));var ae=_x(),Y=h(ae),J=h(Y,!0);v(Y);var ie=w(Y,2),fe=h(ie,!0);v(ie),v(ae),N(()=>{M(J,i(X).title),M(fe,i(X).description)}),S(q,ae)}),v(V),S(L,F)};K(A,L=>{n().length===0?L(D):L(B,-1)})}S(R,T)},I=R=>{var T=Ex(),A=ve(T);{var D=F=>{var V=kx(),q=w(ve(V),2);he(q,20,r,G=>G,(G,X)=>{const ae=W(()=>_i(X));var Y=wx(),J=h(Y),ie=h(J,!0);v(J);var fe=w(J,2),Q=h(fe,!0);v(fe),v(Y),N(()=>{M(ie,i(ae).title),M(Q,i(ae).description)}),S(G,Y)}),v(q),S(F,V)};K(A,F=>{r().length>0&&F(D)})}var B=w(A,2);{var L=F=>{var V=Sx(),q=w(ve(V),2);he(q,20,s,G=>G,(G,X)=>{const ae=W(()=>_i(X));var Y=xx(),J=h(Y),ie=h(J,!0);v(J);var fe=w(J,2),Q=h(fe,!0);v(fe),v(Y),N(()=>{M(ie,i(ae).title),M(Q,i(ae).description)}),S(G,Y)}),v(q),S(F,V)};K(B,F=>{s().length>0&&F(L)})}S(R,T)};K(y,R=>{t.mode==="install"?R(m):R(I,-1)})}v(E);var z=w(E,2),j=h(z),P=w(j,2),O=h(P,!0);v(P),v(z),v(l),v(o),N(()=>{ne(o,"aria-label",`${i(a)??""} ${t.pkg.label??""}`),M(d,`${i(a)??""} ${t.pkg.label??""}`),M(O,i(a))}),H("click",o,function(...R){t.onCancel?.apply(this,R)}),H("keydown",o,R=>{R.key==="Escape"&&t.onCancel()}),H("click",l,R=>R.stopPropagation()),H("click",j,function(...R){t.onCancel?.apply(this,R)}),H("click",P,function(...R){t.onConfirm?.apply(this,R)}),S(e,o),se()}le(["click","keydown"]);function ml(e){return e==="shard"?"shard":"app"}function Ax(e){return ml(e)==="shard"?"Shard":"App"}function Cx(e,t){return t==="all"?!0:ml(e)===t}var Tx=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>'),jx=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>'),Px=C('<div class="store-error svelte-1aafzt0"> </div>'),Dx=C('<div class="store-error svelte-1aafzt0"> </div>'),zx=C('<img alt="" class="store-icon-img svelte-1aafzt0"/>'),Mx=C('<span class="store-icon-placeholder svelte-1aafzt0"> </span>'),Ox=C('<div class="store-card-warning svelte-1aafzt0"> </div>'),Lx=C('<button class="store-update-btn svelte-1aafzt0"> </button>'),Nx=C('<span class="store-installed-label svelte-1aafzt0">Installed</span>'),qx=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>'),Bx=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>'),Fx=C("No packages found. <!>",1),Ux=C('<div class="store-empty svelte-1aafzt0"><!></div>'),Hx=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 Kx(e,t){re(t,!0);let n=U(""),r=U("all"),s=U(oe(new Set)),a=U(oe(new Set)),o=U(null),l=U(""),c=U(null),u=U(null);const d=Qe;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 p($){try{await d.removeRegistry($),d.refreshCatalog()}catch(ee){x(o,ee instanceof Error?ee.message:String(ee),!0)}}const b=W(()=>{const $=i(n).toLowerCase().trim();return d.state.ephemeral.catalog.filter(ee=>Cx(ee.entry.type,i(r))?$?ee.entry.id.toLowerCase().includes($)||ee.entry.label.toLowerCase().includes($)||ee.entry.description.toLowerCase().includes($):!0:!1)});function k($){return d.state.ephemeral.installed.some(ee=>ee.id===$)}function g($){return String($.latest.contractVersion)!==String(xc.version)}function _($){return $ in d.state.ephemeral.updatable}function E($){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 Me=new Set(dv);for(const ye of ee)(ye.type==="shard"||ye.type==="combo")&&Me.add(ye.id);return Ae.filter(ye=>!Me.has(ye))}async function m($){if(!i(a).has($)){x(a,new Set([...i(a),$]),!0),x(o,null);try{await d.updatePackage($,(ee,Ae)=>new Promise(Me=>{const ye=d.state.ephemeral.updatable[$],Ue=d.state.ephemeral.installed.find(et=>et.id===$);if(!ye||!Ue){Me(!0);return}x(u,{pkg:ye,fromVersion:Ue.version,added:ee,removed:Ae,resolve:Me},!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 I(){const $=i(u);$&&(x(u,null),$.resolve(!0))}function z(){const $=i(u);$&&(x(u,null),$.resolve(!1))}async function j($){const ee=$.entry.id;if(!i(s).has(ee)){x(s,new Set([...i(s),ee]),!0),x(o,null);try{const Ae=await $a($.latest,$.sourceRegistry),Me=ei($,$.latest),ye=await Os(Ae),Ue=hl(ye);let et;$.latest.serverBundleUrl&&(et=await cl($.latest,$.sourceRegistry)),x(c,{pkg:$,permissions:Ue,loaded:ye,bundle:Ae,meta:Me,serverBundle:et},!0)}catch(Ae){x(o,Ae instanceof Error?Ae.message:String(Ae),!0);const Me=new Set(i(s));Me.delete(ee),x(s,Me,!0)}}}async function P(){const $=i(c);if(!$)return;x(c,null);const{pkg:ee,loaded:Ae,bundle:Me,meta:ye,serverBundle:Ue}=$,et=ee.entry.id;try{const Ge={id:ye.id,type:ye.type,label:ee.entry.label,version:ye.version,contractVersion:ye.contractVersion,sourceRegistry:ye.sourceRegistry,requiredShards:ee.latest.requires?.map(Rt=>Rt.id)??[],installedAt:new Date().toISOString()},Ln=await al(Ge,Me,Ue);if(!Ln.ok){x(o,Ln.error??"Server install failed",!0);return}const Sn=await pl(Me,ye,{loaded:Ae});Sn.success||console.warn(`[sh3-store] Server install ok but local hot-load failed: ${Sn.error}`),await d.refreshInstalled()}catch(Ge){x(o,Ge instanceof Error?Ge.message:String(Ge),!0)}finally{const Ge=new Set(i(s));Ge.delete(et),x(s,Ge,!0)}}function O(){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 T=Hx(),A=ve(T),D=h(A),B=w(h(D),2),L=h(B);ge(L);var F=w(L,2),V=h(F);V.value=V.__value="all";var q=w(V);q.value=q.__value="shard";var G=w(q);G.value=G.__value="app",v(F);var X=w(F,2),ae=h(X,!0);v(X),v(B),v(D);var Y=w(D,2);{var J=$=>{var ee=Rx();he(ee,21,()=>d.env.registries,bt,(Ae,Me)=>{var ye=Tx(),Ue=h(ye),et=h(Ue,!0);v(Ue);var Ge=w(Ue,2);v(ye),N(()=>M(et,i(Me))),H("click",Ge,()=>p(i(Me))),S(Ae,ye)}),v(ee),S($,ee)};K(Y,$=>{d.isAdmin&&d.env.registries.length>0&&$(J)})}var ie=w(Y,2);{var fe=$=>{var ee=jx(),Ae=h(ee);ge(Ae);var Me=w(Ae,2);v(ee),N(ye=>Me.disabled=ye,[()=>!i(l).trim()]),Pe("submit",ee,ye=>{ye.preventDefault(),f()}),Ee(Ae,()=>i(l),ye=>x(l,ye)),S($,ee)};K(ie,$=>{d.isAdmin&&$(fe)})}var Q=w(ie,2);{var pe=$=>{var ee=Px(),Ae=h(ee,!0);v(ee),N(()=>M(Ae,d.state.ephemeral.error)),S($,ee)};K(Q,$=>{d.state.ephemeral.error&&$(pe)})}var ke=w(Q,2);{var yt=$=>{var ee=Dx(),Ae=h(ee,!0);v(ee),N(()=>M(Ae,i(o))),S($,ee)};K(ke,$=>{i(o)&&$(yt)})}var Ne=w(ke,2);he(Ne,21,()=>i(b),$=>$.entry.id,($,ee)=>{const Ae=W(()=>k(i(ee).entry.id)),Me=W(()=>g(i(ee))),ye=W(()=>i(s).has(i(ee).entry.id)),Ue=W(()=>_(i(ee).entry.id)),et=W(()=>i(a).has(i(ee).entry.id)),Ge=W(()=>y(i(ee),d.state.ephemeral.installed)),Ln=W(()=>ml(i(ee).entry.type));var Sn=Bx(),Rt=h(Sn),Nn=h(Rt),Pv=h(Nn);{var Dv=Oe=>{var Le=zx();N(()=>ne(Le,"src",i(ee).entry.icon)),S(Oe,Le)},zv=Oe=>{var Le=Mx(),jt=h(Le,!0);v(Le),N(()=>M(jt,i(ee).entry.type==="shard"?"S":"A")),S(Oe,Le)};K(Pv,Oe=>{i(ee).entry.icon?Oe(Dv):Oe(zv,-1)})}v(Nn);var yl=w(Nn,2),ri=h(yl),Mv=h(ri,!0);v(ri);var Ns=w(ri,2);let wl;var Ov=h(Ns,!0);v(Ns);var kl=w(Ns,2),Lv=h(kl,!0);v(kl),v(yl),v(Rt);var si=w(Rt,2),Nv=h(si,!0);v(si);var ai=w(si,2),qv=h(ai,!0);v(ai);var xl=w(ai,2);{var Vv=Oe=>{var Le=Ox(),jt=h(Le);v(Le),N(()=>M(jt,`Contract mismatch: package targets v${i(ee).latest.contractVersion??""}, running v${xc.version}`)),S(Oe,Le)};K(xl,Oe=>{i(Me)&&Oe(Vv)})}var Sl=w(xl,2),Bv=h(Sl);{var Fv=Oe=>{var Le=Lx(),jt=h(Le,!0);v(Le),N(ii=>{Le.disabled=i(et),M(jt,ii)},[()=>i(et)?"Updating...":`Update ${E(i(ee).entry.id)} -> ${i(ee).latest.version}`]),H("click",Le,()=>m(i(ee).entry.id)),S(Oe,Le)},Uv=Oe=>{var Le=Nx();S(Oe,Le)},Hv=Oe=>{var Le=Vx(),jt=h(Le),ii=h(jt,!0);v(jt);var Kv=w(jt,2);{var Wv=Wr=>{var oi=qx(),Yv=h(oi);v(oi),N(Gv=>M(Yv,`requires: ${Gv??""}`),[()=>i(Ge).join(", ")]),S(Wr,oi)};K(Kv,Wr=>{i(Ge).length>0&&Wr(Wv)})}v(Le),N(Wr=>{jt.disabled=i(ye)||i(Ge).length>0,ne(jt,"title",Wr),M(ii,i(ye)?"Installing...":"Install")},[()=>i(Ge).length>0?`Missing required shards: ${i(Ge).join(", ")}`:void 0]),H("click",jt,()=>j(i(ee))),S(Oe,Le)};K(Bv,Oe=>{i(Ae)&&i(Ue)?Oe(Fv):i(Ae)?Oe(Uv,1):Oe(Hv,-1)})}v(Sl),v(Sn),N(Oe=>{M(Mv,i(ee).entry.label),wl=ce(Ns,1,"store-card-badge svelte-1aafzt0",null,wl,{"badge-shard":i(Ln)==="shard","badge-app":i(Ln)==="app"}),M(Ov,Oe),M(Lv,i(ee).latest.version),M(Nv,i(ee).entry.description),M(qv,i(ee).entry.author.name)},[()=>Ax(i(ee).entry.type)]),S($,Sn)}),v(Ne);var Tt=w(Ne,2);{var Ft=$=>{var ee=Ux(),Ae=h(ee);{var Me=Ue=>{var et=Fx(),Ge=w(ve(et));{var Ln=Rt=>{var Nn=Xt("Add a registry URL above to get started.");S(Rt,Nn)},Sn=Rt=>{var Nn=Xt("No registries configured.");S(Rt,Nn)};K(Ge,Rt=>{d.isAdmin?Rt(Ln):Rt(Sn,-1)})}S(Ue,et)},ye=Ue=>{var et=Xt("No packages match the current filter.");S(Ue,et)};K(Ae,Ue=>{d.env.registries.length===0?Ue(Me):Ue(ye,-1)})}v(ee),S($,ee)};K(Tt,$=>{!d.state.ephemeral.loading&&i(b).length===0&&$(Ft)})}v(A);var _l=w(A,2);{var Tv=$=>{{let ee=W(()=>({label:i(c).pkg.entry.label,version:i(c).pkg.latest.version,author:i(c).pkg.entry.author.name}));ro($,{mode:"install",get pkg(){return i(ee)},get permissions(){return i(c).permissions},onConfirm:P,onCancel:O})}};K(_l,$=>{i(c)&&$(Tv)})}var Rv=w(_l,2);{var jv=$=>{{let ee=W(()=>({label:i(u).pkg.entry.label,version:i(u).pkg.latest.version,author:i(u).pkg.entry.author.name}));ro($,{mode:"update",get pkg(){return i(ee)},get fromVersion(){return i(u).fromVersion},get added(){return i(u).added},get removed(){return i(u).removed},onConfirm:I,onCancel:z})}};K(Rv,$=>{i(u)&&$(jv)})}N(()=>{X.disabled=d.state.ephemeral.loading,M(ae,d.state.ephemeral.loading?"Loading...":"Refresh")}),Ee(L,()=>i(n),$=>x(n,$)),ls(F,()=>i(r),$=>x(r,$)),H("click",X,R),S(e,T),se()}le(["click"]);function bv(e){return Qe.state.ephemeral.catalog.find(t=>t.entry.id===e)}function gs(e){return Qe.state.ephemeral.installed.find(t=>t.id===e)}const Wx={name:"install",summary:"Install a package by id from the catalog.",programmatic:!0,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=gs(n);if(r){e.scrollback.push({kind:"status",text:`${n} is already installed (v${r.version})`,level:"warn",ts:Date.now()});return}const s=bv(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 $a(s.latest,s.sourceRegistry),o=ei(s,s.latest);let l;s.latest.serverBundleUrl&&(l=await cl(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 al(c,a,l);if(!u.ok){let f=`install failed: ${u.error??"server error"}`;u.code==="missing-shards"&&u.missing&&(f=`install failed: missing required shard(s): ${u.missing.map(b=>b.id).join(", ")}`),e.scrollback.push({kind:"status",text:f,level:"error",ts:Date.now()});return}const d=await pl(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 Qe.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.",programmatic:!0,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(!gs(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 Qe.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()})}}},Gx={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).",programmatic:!0,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=gs(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 Qe.updatePackage(n,l,r);const c=r??gs(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()})}}},Xx={name:"appinfo",summary:"Show info about a package (installed status, version, catalog details).",programmatic:!0,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=gs(n),s=bv(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 Jx(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 Zx(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 Qx(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 Qe;const $x={manifest:{id:"sh3-store",label:"Package Store",version:vn,views:[{id:"sh3-store:browse",label:"Store"}]},activate(e){const t=e.env({registries:[]}),n=e.state({ephemeral:{catalog:[],installed:[],updatable:{},loading:!1,error:null}});function r(){const f={};for(const p of n.ephemeral.installed){const b=n.ephemeral.catalog.find(k=>k.entry.id===p.id);b&&Jx(b.latest.version,p.version)&&(f[p.id]=b)}n.ephemeral.updatable=f}async function s(){n.ephemeral.loading=!0,n.ephemeral.error=null;try{const f=await tv(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 h1();n.ephemeral.installed=f.map(p=>({id:p.id,type:p.type,version:p.version,sourceRegistry:p.sourceRegistry??"",contractVersion:p.contractVersion??"",installedAt:p.installedAt??"",permissions:[]})),r()}catch(f){console.warn("[sh3-store] Failed to list installed packages:",f instanceof Error?f.message:f);try{const p=await px();n.ephemeral.installed=p,r()}catch{}}}async function o(f){const p=[...t.registries];p.includes(f)||(p.push(f),await e.envUpdate({registries:p}))}async function l(f){const p=t.registries.filter(b=>b!==f);await e.envUpdate({registries:p})}async function c(f,p,b){let k;if(b===void 0?k=n.ephemeral.updatable[f]:k=n.ephemeral.catalog.find(L=>L.entry.id===f),!k)return;const g=n.ephemeral.installed.find(L=>L.id===f);if(!g)return;const _=Zx(k,b),E=await $a(_,k.sourceRegistry);let y;_.serverBundleUrl&&(y=await cl(_,k.sourceRegistry));const m=ei(k,_),I=await Os(E),z=hl(I);let j=[];try{const L=await dx(f);L?.permissions&&(j=L.permissions)}catch{}const{added:P,removed:O}=Qx(j,z);if((P.length>0||O.length>0)&&p&&!await p(P,O))return;const R=await pv(f),T={...g,permissions:j},A={id:m.id,type:m.type,label:k.entry.label,version:m.version,contractVersion:m.contractVersion,sourceRegistry:m.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:_.requires?.map(L=>L.id)??[]},D=await al(A,E,y);if(!D.ok){let L=D.error??"Server update failed";throw D.code==="missing-shards"&&D.missing&&(L=`missing required shard(s): ${D.missing.map(V=>V.id).join(", ")}`),new Error(L)}const B=await pl(E,m,{loaded:I});if(!B.success){if(R)try{await hv(f,R,T)}catch(L){console.warn(`[sh3-store] Rollback failed for "${f}":`,L instanceof Error?L.message:L)}throw new Error(B.error??"Local install failed during update")}await a()}async function u(f){await v1(f),await hx(f),await a()}Qe={env:t,state:n,get isAdmin(){return e.isAdmin},refreshCatalog:s,refreshInstalled:a,updatePackage:c,uninstallPackage:u,addRegistry:o,removeRegistry:l};const d={mount(f,p){const b=qe(Kx,{target:f});return{unmount(){Xe(b)}}}};e.registerView("sh3-store:browse",d),e.registerVerb(Wx),e.registerVerb(Yx),e.registerVerb(Xx),e.registerVerb(Gx),a()},autostart(){Qe.refreshCatalog()}};function eS(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=xn.open(ro,a)})}var tS=C('<p class="error svelte-1tiy4hy"> </p>'),nS=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 rS(e,t){re(t,!0);let n=U(!1),r=U(null);async function s(){if(!i(n)){x(n,!0),x(r,null);try{await t.onConfirm(),t.close()}catch(j){x(r,j.message,!0)}finally{x(n,!1)}}}var a=nS(),o=w(h(a),2),l=h(o),c=h(l,!0);v(l);var u=w(l,2),d=h(u);v(u);var f=w(u,2),p=h(f);v(f),Gt(),v(o);var b=w(o,2),k=w(h(b)),g=h(k,!0);v(k),v(b);var _=w(b,2);{var E=j=>{var P=tS(),O=h(P,!0);v(P),N(()=>M(O,i(r))),S(j,P)};K(_,j=>{i(r)&&j(E)})}var y=w(_,2),m=h(y),I=h(m,!0);v(m);var z=w(m,2);v(y),v(a),N(()=>{M(c,t.appLabel),M(d,`v${t.fromVersion??""}`),M(p,`v${t.toVersion??""}`),M(g,t.appId),m.disabled=i(n),M(I,i(n)?"Updating…":"Update"),z.disabled=i(n)}),H("click",m,s),H("click",z,function(...j){t.close?.apply(this,j)}),S(e,a),se()}le(["click"]);var sS=C('<p class="error svelte-86mxbl"> </p>'),aS=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 iS(e,t){re(t,!0);let n=U(!1),r=U(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=aS(),o=h(a),l=h(o);v(o);var c=w(o,2),u=w(h(c)),d=h(u,!0);v(u);var f=w(u,2),p=h(f);v(f),v(c);var b=w(c,4);{var k=m=>{var I=sS(),z=h(I,!0);v(I),N(()=>M(z,i(r))),S(m,I)};K(b,m=>{i(r)&&m(k)})}var g=w(b,2),_=h(g),E=h(_,!0);v(_);var y=w(_,2);v(g),v(a),N(()=>{M(l,`Uninstall ${t.appLabel??""}?`),M(d,t.appId),M(p,`v${t.version??""}`),_.disabled=i(n),M(E,i(n)?"Uninstalling…":"Uninstall"),y.disabled=i(n)}),H("click",_,s),H("click",y,function(...m){t.close?.apply(this,m)}),S(e,a),se()}le(["click"]);var oS=C('<span class="badge built-in svelte-1w44jyn">built-in</span>'),lS=C('<section class="description svelte-1w44jyn"><span class="label svelte-1w44jyn">Description</span> <p class="svelte-1w44jyn"> </p></section>'),cS=C('<p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Author</span> <span> </span></p>'),uS=C('<li><code class="svelte-1w44jyn"> </code></li>'),dS=C('<section class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Required shards</span> <ul class="chips svelte-1w44jyn"></ul></section>'),fS=C('<li><code class="svelte-1w44jyn"> </code></li>'),vS=C('<section class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Permissions</span> <ul class="chips svelte-1w44jyn"></ul></section>'),hS=C('<p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Installed</span><span> </span></p>'),pS=C('<section class="installed svelte-1w44jyn"><p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Source registry</span><code class="svelte-1w44jyn"> </code></p> <!> <p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Contract</span><code class="svelte-1w44jyn"> </code></p></section>'),mS=C('<div class="app-info-modal svelte-1w44jyn"><header class="svelte-1w44jyn"><h2 class="svelte-1w44jyn"> </h2> <code class="id svelte-1w44jyn"> </code></header> <p class="version svelte-1w44jyn"><span class="label svelte-1w44jyn">Version</span> <code class="svelte-1w44jyn"> </code> <!></p> <!> <!> <!> <!> <!> <div class="actions svelte-1w44jyn"><button type="button" class="svelte-1w44jyn">Close</button></div></div>');function bS(e,t){re(t,!0);let n=W(()=>{if(!t.installed)return null;const T=new Date(t.installed.installedAt);return isNaN(T.getTime())?t.installed.installedAt:T.toLocaleString()});var r=mS(),s=h(r),a=h(s),o=h(a,!0);v(a);var l=w(a,2),c=h(l,!0);v(l),v(s);var u=w(s,2),d=w(h(u),2),f=h(d);v(d);var p=w(d,2);{var b=T=>{var A=oS();S(T,A)};K(p,T=>{t.installed||T(b)})}v(u);var k=w(u,2);{var g=T=>{var A=lS(),D=w(h(A),2),B=h(D,!0);v(D),v(A),N(()=>M(B,t.catalogEntry.description)),S(T,A)};K(k,T=>{t.catalogEntry?.description&&T(g)})}var _=w(k,2);{var E=T=>{var A=cS(),D=w(h(A),2),B=h(D,!0);v(D),v(A),N(()=>M(B,t.catalogEntry.author.name)),S(T,A)};K(_,T=>{t.catalogEntry?.author?.name&&T(E)})}var y=w(_,2);{var m=T=>{var A=dS(),D=w(h(A),2);he(D,21,()=>t.manifest.requiredShards,bt,(B,L)=>{var F=uS(),V=h(F),q=h(V,!0);v(V),v(F),N(()=>M(q,i(L))),S(B,F)}),v(D),v(A),S(T,A)};K(y,T=>{t.manifest.requiredShards.length>0&&T(m)})}var I=w(y,2);{var z=T=>{var A=vS(),D=w(h(A),2);he(D,21,()=>t.manifest.permissions,bt,(B,L)=>{var F=fS(),V=h(F),q=h(V,!0);v(V),v(F),N(()=>M(q,i(L))),S(B,F)}),v(D),v(A),S(T,A)};K(I,T=>{t.manifest.permissions&&t.manifest.permissions.length>0&&T(z)})}var j=w(I,2);{var P=T=>{var A=pS(),D=h(A),B=w(h(D)),L=h(B,!0);v(B),v(D);var F=w(D,2);{var V=ae=>{var Y=hS(),J=w(h(Y)),ie=h(J,!0);v(J),v(Y),N(()=>M(ie,i(n))),S(ae,Y)};K(F,ae=>{i(n)&&ae(V)})}var q=w(F,2),G=w(h(q)),X=h(G);v(G),v(q),v(A),N(()=>{M(L,t.installed.sourceRegistry),M(X,`v${t.installed.contractVersion??""}`)}),S(T,A)};K(j,T=>{t.installed&&T(P)})}var O=w(j,2),R=h(O);v(O),v(r),N(()=>{M(o,t.manifest.label),M(c,t.manifest.id),M(f,`v${t.manifest.version??""}`)}),H("click",R,function(...T){t.close?.apply(this,T)}),S(e,r),se()}le(["click"]);function gS(e){return!e.admin||e.builtin}function Sc(e){return e.admin?e.builtin?" · built-in":"":" · admin only"}function Fn(){const e=Wo();return!e||e.type!=="app"?null:e.ref}function ni(e){return ar().find(t=>t.id===e)}function _S(e){return!Qe.state.ephemeral.installed.some(t=>t.id===e)}function yi(e){return{admin:ht(),builtin:_S(e)}}function yS(e){const t=Fn();if(!t)return;const n=ni(t.appId);if(!n)return;const r=Qe.state.ephemeral.installed.find(o=>o.id===t.appId)??null,s=Qe.state.ephemeral.catalog.find(o=>o.entry.id===t.appId)?.entry??null,a={manifest:n,installed:r,catalogEntry:s};xn.open(bS,a)}async function wS(e){const t=Fn();if(!t)return;const{appId:n}=t,r=An.notify("Checking for updates…",{duration:1/0});try{await Qe.refreshCatalog()}finally{r.close()}const s=Qe.state.ephemeral.updatable[n],a=Qe.state.ephemeral.installed.find(c=>c.id===n),o=ni(n)?.label??n;if(!s||!a){An.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 Qe.updatePackage(n,(c,u)=>eS({label:a.id,version:a.version},s.latest.version,c,u)),An.notify(`Updated to v${s.latest.version}`,{level:"success"})}catch(c){throw An.notify(`Update failed: ${c.message}`,{level:"error",duration:5e3}),c}}};xn.open(rS,l)}function kS(e){const t=Fn();if(!t)return;const{appId:n}=t,r=Qe.state.ephemeral.installed.find(o=>o.id===n);if(!r)return;const s=ni(n)?.label??n,a={appId:n,appLabel:s,version:r.version,onConfirm:async()=>{try{await Qe.uninstallPackage(n),An.notify(`Uninstalled ${s}`,{level:"success"})}catch(o){throw An.notify(`Uninstall failed: ${o.message}`,{level:"error",duration:5e3}),o}}};xn.open(iS,a)}function xS(e){const t=()=>{const l=Fn();if(!l)return"Info…";const c=ni(l.appId);return c?`Info — ${c.label} v${c.version}`:`Info — ${l.appId}`},n=()=>{const l=Fn();return l?`Check for updates${Sc(yi(l.appId))}`:"Check for updates"},r=()=>{const l=Fn();return l?`Uninstall…${Sc(yi(l.appId))}`:"Uninstall…"},s=()=>{const l=Fn();return l?gS(yi(l.appId)):!0},o=[{id:"app.info",label:t,scope:{element:"app"},contextItem:!0,group:"info",run:yS},{id:"app.checkUpdate",label:n,scope:{element:"app"},contextItem:!0,group:"update",disabled:s,run:wS},{id:"app.uninstall",label:r,scope:{element:"app"},contextItem:!0,group:"uninstall",disabled:s,run:kS}].map(l=>e.actions.register(l));return()=>o.forEach(l=>l())}function SS(){return{id:"sh3.float.toggleMaximize",label:"Toggle Float Maximize",scope:["home","app"],paletteItem:!0,contextItem:!1,defaultShortcut:"Ctrl+Shift+M",disabled:()=>Re.list().length===0,run(){const e=Re.list().at(-1);e&&Re.toggleMaximize(e.id)}}}const ES={manifest:{id:"__sh3core__",label:"SH3 Core",version:vn,views:[{id:"sh3core:home",label:"Home"},{id:"shell:keys-and-peers",label:"Keys & Peers"}]},activate(e){const t=e.state({user:{bindings:{}}});gy(t.user),e.actions.register({id:"sh3.palette.open",label:"Command Palette…",scope:["home","app"],defaultShortcut:"Mod+K",contextItem:!1,paletteItem:!1,run(a){Sr(async()=>{const{openPalette:o}=await Promise.resolve().then(()=>Iw);return{openPalette:o}},[]).then(({openPalette:o})=>o())}}),e.actions.register(SS()),e.actions.register({id:"sh3.app.reset-layout",label:"Reset Current Layout",scope:["app"],paletteItem:!0,contextItem:!1,run(){xn.open(sx,{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:()=>Zy()})}});const n={mount(a,o){const l=qe(Y0,{target:a});return{unmount(){Xe(l)}}}},r={mount(a,o){const l=qe(nx,{target:a});return{unmount(){Xe(l)}}}};e.registerView("sh3core:home",n),e.registerView("shell:keys-and-peers",r),xS(e),e.actions.register({id:"sh3.app.launch",label:"Launch app",scope:["home","app"],submenu:!0,paletteItem:!0});const s=new Map;Cs(()=>{xe(()=>{const a=new Set;for(const[o,l]of jn){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(){yn(o)}});s.set(o,c)}for(const o of[...s.keys()])a.has(o)||(s.get(o)(),s.delete(o))})})},autostart(){}},IS={id:"shell",label:"Shell",version:vn,views:[{id:"shell:terminal",label:"Shell",standalone:!0}],permissions:[]};var AS=C("<pre> </pre>");function CS(e,t){re(t,!0);const n=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,r=W(()=>t.chunks.join("").replace(n,""));var s=AS();let a;var o=h(s,!0);v(s),N(()=>{a=ce(s,1,"shell-text svelte-ypr8s",null,a,{stderr:t.stream==="stderr"}),M(o,i(r))}),S(e,s),se()}var TS=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 RS(e,t){var n=TS(),r=h(n),s=h(r,!0);v(r);var a=w(r,4),o=h(a,!0);v(a),v(n),N(()=>{M(s,t.cwd),M(o,t.line)}),S(e,n)}var jS=C("<div> </div>");function PS(e,t){var n=jS();let r;var s=h(n,!0);v(n),N(()=>{r=ce(n,1,"shell-status svelte-nfxdpt",null,r,{info:t.level==="info",warn:t.level==="warn",error:t.level==="error"}),M(s,t.text)}),S(e,n)}var DS=C('<div class="shell-rich svelte-1rnhl05"><!></div>');function zS(e,t){var n=DS(),r=h(n);Rs(r,()=>t.component,(s,a)=>{a(s,Ps(()=>t.componentProps))}),v(n),S(e,n)}var MS=C('<div class="shell-scrollback svelte-isy3jt"><div class="content"></div></div>');function OS(e,t){re(t,!0);let n=U(null),r=U(null),s=!0;const a=4;function o(d){return d.scrollHeight-d.scrollTop-d.clientHeight<=a}function l(){i(n)&&(s=o(i(n)))}xe(()=>{if(!i(r)||!i(n))return;const d=new ResizeObserver(()=>{i(n)&&s&&(i(n).scrollTop=i(n).scrollHeight)});return d.observe(i(r)),()=>d.disconnect()});var c=MS(),u=h(c);he(u,21,()=>t.scrollback.entries,d=>d.id,(d,f)=>{var p=He(),b=ve(p);{var k=y=>{CS(y,{get stream(){return i(f).stream},get chunks(){return i(f).chunks}})},g=y=>{RS(y,{get cwd(){return i(f).cwd},get line(){return i(f).line}})},_=y=>{PS(y,{get text(){return i(f).text},get level(){return i(f).level}})},E=y=>{zS(y,{get component(){return i(f).component},get componentProps(){return i(f).props}})};K(b,y=>{i(f).kind==="text"?y(k):i(f).kind==="prompt"?y(g,1):i(f).kind==="status"?y(_,2):i(f).kind==="rich"&&y(E,3)})}S(d,p)}),v(u),ze(u,d=>x(r,d),()=>i(r)),v(c),ze(c,d=>x(n,d),()=>i(n)),Pe("scroll",c,l),S(e,c),se()}var LS=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=U(""),r=U(null),s=U(""),a=U(null);function o(){if(t.locked)return;const g=i(n);g.trim()&&(x(n,""),x(r,null),t.onSubmit(g))}function l(){t.history.length!==0&&(i(r)===null?(x(s,i(n),!0),x(r,t.history.length-1)):i(r)>0&&Cr(r,-1),x(n,t.history[i(r)]??"",!0))}function c(){i(r)!==null&&(i(r)<t.history.length-1?(Cr(r),x(n,t.history[i(r)],!0)):(x(r,null),x(n,i(s),!0)))}function u(g){if(t.locked){if(g.ctrlKey&&g.key==="c"){g.preventDefault(),t.session.send({t:"signal",sig:"SIGINT"});return}if(g.ctrlKey&&g.key==="d"){g.preventDefault(),t.session.send({t:"signal",sig:"EOF"});return}g.preventDefault();return}g.key==="Enter"?(g.preventDefault(),o()):g.key==="ArrowUp"?(g.preventDefault(),l()):g.key==="ArrowDown"?(g.preventDefault(),c()):g.ctrlKey&&g.key==="c"?(g.preventDefault(),x(n,""),x(r,null)):g.ctrlKey&&g.key==="l"&&(g.preventDefault(),x(n,"clear"),o())}xe(()=>{!t.locked&&i(a)&&i(a).focus()});var d=LS();let f;var p=h(d),b=h(p,!0);v(p);var k=w(p,4);ge(k),ze(k,g=>x(a,g),()=>i(a)),v(d),N(()=>{f=ce(d,1,"shell-input svelte-1dfv2gk",null,f,{locked:t.locked}),M(b,t.cwd),k.disabled=t.locked}),H("keydown",k,u),Ee(k,()=>i(n),g=>x(n,g)),S(e,d),se()}le(["keydown"]);class qS{list(){return Yo()}get(t){return pa(t)}resolve(t,n={}){const r=t.trim();if(!r)return{kind:"forward",line:t};if(r.startsWith("$ "))return{kind:"forward",line:r.slice(2)};if(r==="$")return{kind:"forward",line:""};const s=r.indexOf(" "),a=s===-1?r:r.slice(0,s),o=s===-1?"":r.slice(s+1),l=pa(a);if(!l)return{kind:"forward",line:t};if(n.globalOnly&&!l.globalVerb)return{kind:"forward",line:t};const c=o.length?o.split(/\s+/):[];return{kind:"local",verb:l,args:c,line:t}}}class VS{#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 BS={id:"bash",label:"Bash",requiresRole:"admin",transport:"ws",autoRelocate:!1},FS={id:"sh3",label:"SH3",transport:"none",autoRelocate:!0};function US(e){e.register(BS),e.register(FS)}function gv(e){return`sh3.shell.lastMode.${e}`}function _v(e){try{return globalThis.localStorage?.getItem(gv(e))??null}catch{return null}}function Ec(e,t){try{globalThis.localStorage?.setItem(gv(e),t)}catch{}}function HS(e,t,n){const r=_v(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 na(e,t){return e.entries.find(n=>n.kind==="rich"&&n.id===t)}function KS(e,t){return{update(n){const r=na(e,t);r&&Object.assign(r.props,n)}}}function Ic(e){return e.entries[e.entries.length-1].id}function Ac(e){const t=e.scrollback;return{text(n,r){t.push({kind:"text",stream:n,chunks:[r],ts:Date.now()})},status(n,r){t.push({kind:"status",text:r,level:n,ts:Date.now()})},rich(n,r){return t.push({kind:"rich",component:n,props:{...r},ts:Date.now()}),KS(t,Ic(t))},stream(n,r){t.push({kind:"rich",component:n,props:{...r,__streamState:"streaming"},ts:Date.now()});const s=Ic(t);return{append(a){const o=na(t,s);o&&Object.assign(o.props,a)},complete(){const a=na(t,s);a&&(a.props.__streamState="complete")},error(a){const o=na(t,s);o&&(o.props.__streamState="error"),t.push({kind:"status",text:`mode: ${a?.message??String(a)}`,level:"error",ts:Date.now()})}}},busy(n){const r=e.busy(n);let s=!1;return{clear(){s||(s=!0,r())}}},invoke(n,r){return e.invoke(n,r)}}}function WS(e){let t=null,n=!1;async function r(a,o){const l=e.mode();if(a===l.id)throw new Error(`invoke: cannot invoke own mode '${a}'`);if(a==="sh3"){const d=e.resolver.resolve(o,{globalOnly:!1});if(d.kind==="forward"){const f=o.trim().split(/\s+/)[0]??"";throw new Error(`invoke: unknown sh3 verb '${f}'`)}await d.verb.run({shell:e.shell,scrollback:e.scrollback,session:e.session,cwd:e.cwd(),dispatch:s,fs:e.fs},d.args);return}if(a==="bash"){if(e.role()!=="admin")throw new Error("invoke: 'bash' requires admin role");n||(n=!0,e.session.connect()),e.session.send({t:"submit",line:o});return}const c=e.customMode?.(a)??null;if(!c)throw new Error(`invoke: unknown mode '${a}'`);if(c.requiresRole&&c.requiresRole!==e.role())throw new Error(`invoke: mode '${a}' requires ${c.requiresRole} role`);if(c.runsOn==="server")throw new Error("invoke: server-side modes are not yet supported");const u=Ac({scrollback:e.scrollback,busy:e.busy,invoke:r});await c.dispatch({line:o,cwd:e.cwd(),signal:t?.signal??new AbortController().signal},u)}async function s(a){t?.abort();const o=new AbortController;t=o;const l=e.mode();if(e.session.history.push(a),l.transport==="none"&&a.trimStart().startsWith("$ ")){e.scrollback.push({kind:"prompt",cwd:e.cwd(),line:a,ts:Date.now()}),e.scrollback.push({kind:"status",text:"shell: server shell not available in user mode",level:"error",ts:Date.now()});return}const c=e.resolver.resolve(a,{globalOnly:l.id!=="sh3"});if(c.kind==="local"){l.transport==="ws"&&e.session.send({t:"history-log",line:a}),e.scrollback.push({kind:"prompt",cwd:e.cwd(),line:a,ts:Date.now()});try{await c.verb.run({shell:e.shell,scrollback:e.scrollback,session:e.session,cwd:e.cwd(),dispatch:s,fs:e.fs},c.args)}catch(d){e.scrollback.push({kind:"status",text:`shell: verb ${c.verb.name} threw — ${d.message}`,level:"error",ts:Date.now()})}return}if(l.transport==="ws"){e.session.send({t:"submit",line:c.line});return}if(l.transport==="custom"){e.scrollback.push({kind:"prompt",cwd:e.cwd(),line:c.line,ts:Date.now()});const d=e.customMode?.(l.id)??null;if(!d){e.scrollback.push({kind:"status",text:`mode '${l.id}' is no longer available`,level:"error",ts:Date.now()});return}if(d.runsOn==="server"){e.scrollback.push({kind:"status",text:"server-side modes are not yet supported (planned for a future release)",level:"error",ts:Date.now()});return}const f=Ac({scrollback:e.scrollback,busy:e.busy,invoke:r}),p=e.busy();try{await d.dispatch({line:c.line,cwd:e.cwd(),signal:o.signal},f)}catch(b){b?.name==="AbortError"?e.scrollback.push({kind:"status",text:"mode dispatch aborted",level:"info",ts:Date.now()}):e.scrollback.push({kind:"status",text:`mode '${l.id}' threw — ${b?.message??String(b)}`,level:"error",ts:Date.now()})}finally{p()}return}const u=c.line.split(/\s+/)[0]??"";e.scrollback.push({kind:"prompt",cwd:e.cwd(),line:c.line,ts:Date.now()}),e.scrollback.push({kind:"status",text:`unknown verb: ${u}`,level:"error",ts:Date.now()})}return{dispatch:s,cancel:()=>t?.abort()}}async function YS(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 GS=C('<div class="toolbar svelte-gnowwz"><div class="toolbar-slots svelte-gnowwz"></div></div>');function XS(e,t){re(t,!0);let n=Z(t,"slotProps",19,()=>({})),r=W(()=>t.registry.list(t.ctx));var s=GS(),a=h(s);he(a,21,()=>i(r),o=>o.id,(o,l)=>{const c=W(()=>i(l).component);var u=He(),d=ve(u);Rs(d,()=>i(c),(f,p)=>{p(f,Ps(()=>n()[i(l).id]??{}))}),S(o,u)}),v(a),v(s),S(e,s),se()}class JS{#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 ZS=C('<span class="mode-label svelte-1i4cqlj"> </span>');function QS(e,t){re(t,!0);let n=W(()=>t.modes.map(l=>({value:l.id,label:l.label})));var r=He(),s=ve(r);{var a=l=>{av(l,{get options(){return i(n)},get value(){return t.mode.id},size:"sm",onchange:c=>t.onSelect(c)})},o=l=>{var c=ZS(),u=h(c,!0);v(c),N(()=>M(u,t.mode.label)),S(l,c)};K(s,l=>{t.modes.length>=2?l(a):t.modes.length===1&&l(o,1)})}S(e,r),se()}var $S=C('<button class="focus-lock-btn svelte-1q6gbap"> </button>');function e3(e,t){var n=$S(),r=h(n,!0);v(n),N(()=>{ne(n,"title",t.locked?"Unlock focus":"Lock focus"),M(r,t.locked?"🔒":"🔓")}),H("click",n,function(...s){t.onToggle?.apply(this,s)}),S(e,n)}le(["click"]);var t3=C('<span class="target-shard svelte-1nn2m6x" title="Target shard"> </span>');function n3(e,t){var n=t3(),r=h(n);v(n),N(()=>M(r,`→ ${t.target??"—"??""}`)),S(e,n)}var r3=C('<span class="label"> </span>'),s3=C('<div class="busy svelte-7wyurd" role="status" aria-live="polite"><span class="spinner svelte-7wyurd" aria-hidden="true"></span> <!></div>');function a3(e,t){var n=He(),r=ve(n);{var s=a=>{var o=s3(),l=w(h(o),2);{var c=u=>{var d=r3(),f=h(d,!0);v(d),N(()=>M(f,t.label)),S(u,d)};K(l,u=>{t.label&&u(c)})}v(o),S(a,o)};K(r,a=>{t.active&&a(s)})}S(e,n)}var i3=C('<div class="shell-terminal svelte-13komre"><!> <!> <!></div>');function o3(e,t){re(t,!0);const n=new $w,r=new qS,s=new Ff,a=new VS;US(a);let o=U(oe(we(()=>t.contributions.list(ss))));xe(()=>{const V=t.contributions.onChange(ss,()=>{x(o,t.contributions.list(ss),!0)});return()=>V()});function l(V){return{id:V.id,label:V.label,requiresRole:V.requiresRole,transport:"custom",autoRelocate:V.autoRelocate??!1}}let c=W(()=>[...a.list(t.role),...i(o).filter(V=>!V.requiresRole||V.requiresRole===t.role).map(l)]),u=U(oe(we(()=>{const V=_v(t.userId);if(V){const G=[...a.list(t.role),...i(o).filter(X=>!X.requiresRole||X.requiresRole===t.role).map(l)].find(X=>X.id===V);if(G)return G}return HS(a,t.userId,t.role)})));function d(V){const q=i(c).find(G=>G.id===V);q&&(q.requiresRole&&q.requiresRole!==t.role||(m(),x(u,q,!0),Ec(t.userId,V),q.transport!=="ws"&&n.push({kind:"status",text:"mode switch: reload to take effect for server-shell changes",level:"info",ts:Date.now()})))}xe(()=>{if(!i(c).find(V=>V.id===i(u).id)){const V=i(c).find(q=>q.id==="sh3")??i(c)[0];if(V){const q=i(u).id;x(u,V,!0),Ec(t.userId,V.id),n.push({kind:"status",text:`mode '${q}' is no longer available — switched to '${V.id}'`,level:"warn",ts:Date.now()})}}});const f=we(()=>({...t.shell,setMode:V=>{const q=i(c).find(G=>G.id===V);return!q||q.requiresRole&&q.requiresRole!==t.role?!1:(d(V),!0)},listModes:()=>i(c).map(V=>({id:V.id,label:V.label})),getMode:()=>({id:i(u).id,label:i(u).label})})),p=we(()=>new Bf(t.wsUrl));let b=0,k=U(oe(new Map));function g(V){const q=++b;i(k).set(q,V),x(k,new Map(i(k)),!0);let G=!1;return()=>{G||(G=!0,i(k).delete(q),x(k,new Map(i(k)),!0))}}let _=W(()=>i(k).size>0),E=W(()=>{if(i(k).size===0)return null;let V;for(const q of i(k).values())V=q;return V??null});const{dispatch:y,cancel:m}=we(()=>WS({mode:()=>i(u),role:()=>t.role,resolver:r,scrollback:n,session:p,shell:f,fs:s,cwd:()=>p.cwd,busy:g,customMode:V=>i(o).find(q=>q.id===V)??null}));let I=U(!1),z=U(!1),j=U(null);const P=new JS;P.register({id:"busy",order:5,visible:()=>!0,component:a3}),P.register({id:"mode",order:10,visible:()=>!0,component:QS}),P.register({id:"focus-lock",order:20,visible:V=>V.mode.id==="sh3",component:e3}),P.register({id:"target-shard",order:30,visible:V=>V.mode.id==="sh3",component:n3});function O(V){if(V.type==="tabs")return V.tabs[V.activeTab]?.viewId??null;if(V.type==="split"){for(const q of V.children){const G=O(q);if(G!==null)return G}return null}return V.viewId??null}function R(){try{const V=Ct(),q=O(V.docked);if(!q)return null;const G=q.indexOf(":");return G>=0?q.slice(0,G):q}catch{return null}}xe(()=>{const V=R(),q=i(u).autoRelocate,G=i(z);(async()=>{const X=await YS({modeAutoRelocate:q,focusLocked:G,focusedShardId:V,currentShardId:"shell"},s);X.kind==="relocate"&&X.path!==void 0&&(p.cwd=X.path),V&&V!=="shell"?x(j,V,!0):V||x(j,null)})()});function T(V){if(V.t!=="event")return;const q=V.event;switch(q.kind){case"prompt":n.push({kind:"prompt",cwd:q.cwd,line:q.line,ts:q.ts}),x(I,!0);break;case"stdout":n.push({kind:"text",stream:"stdout",chunks:[q.data],ts:q.ts});break;case"stderr":n.push({kind:"text",stream:"stderr",chunks:[q.data],ts:q.ts});break;case"exit":(q.signal||q.code!==null&&q.code!==0)&&n.push({kind:"status",text:q.signal?`shell: process exited (${q.signal})`:`shell: process exited (${q.code})`,level:"error",ts:q.ts}),x(I,!1);break;case"status":n.push({kind:"status",text:q.text,level:q.level,ts:q.ts});break}}let A=null;Co(()=>{A=p.onMessage(T),i(u).transport==="ws"&&p.connect()}),To(()=>{A?.(),p.close()});var D=i3(),B=h(D);{let V=W(()=>({mode:i(u),role:t.role})),q=W(()=>({busy:{active:i(_),label:i(E)},mode:{mode:i(u),modes:i(c),onSelect:d},"focus-lock":{locked:i(z),onToggle:()=>x(z,!i(z))},"target-shard":{target:i(j)}}));XS(B,{get registry(){return P},get ctx(){return i(V)},get slotProps(){return i(q)}})}var L=w(B,2);OS(L,{get scrollback(){return n}});var F=w(L,2);NS(F,{get cwd(){return p.cwd},get locked(){return i(I)},get history(){return p.history},get session(){return p},get onSubmit(){return y}}),v(D),S(e,D),se()}var l3=C('<tr><td class="svelte-m248jy"><button type="button" class="svelte-m248jy"> </button></td><td class="svelte-m248jy"> </td></tr>'),c3=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 u3(e,t){re(t,!0);var n=c3(),r=h(n),s=w(h(r));he(s,21,()=>t.data.rows,a=>a.name,(a,o)=>{var l=l3(),c=h(l),u=h(c),d=h(u,!0);v(u),v(c);var f=w(c),p=h(f,!0);v(f),v(l),N(()=>{M(d,i(o).name),M(p,i(o).summary)}),H("click",u,()=>t.data.onClickName(i(o).name)),S(a,l)}),v(s),v(r),v(n),S(e,n),se()}le(["click"]);function d3(){return{name:"help",summary:"List verbs or show detail for one.",globalVerb:!0,async run(e){const t=e.shell.getMode().id==="sh3",n=Yo().filter(r=>t||r.globalVerb===!0).map(r=>({name:r.name,summary:r.summary}));e.scrollback.push({kind:"rich",component:u3,props:{data:{rows:n,onClickName:r=>e.dispatch(r)}},ts:Date.now()})}}}const f3={name:"clear",summary:"Clear the scrollback (local only — other views are unaffected).",globalVerb:!0,async run(e){e.scrollback.clear()}},v3={name:"mode",summary:"List or switch shell modes. Usage: mode | mode <id>",globalVerb:!0,async run(e,t){const n=Date.now();if(t.length===0){const o=e.shell.listModes().map(l=>` ${l.id.padEnd(12)} ${l.label}`);e.scrollback.push({kind:"text",stream:"stdout",chunks:[["Available modes:",...o].join(`
|
|
15
|
+
`)+`
|
|
16
|
+
`],ts:n});return}const r=t[0];e.shell.setMode(r)||e.scrollback.push({kind:"status",text:`mode: unknown or restricted mode '${r}'`,level:"error",ts:n})}};var h3=C('<li class="svelte-o8m437"><button type="button" class="svelte-o8m437"> </button></li>'),p3=C('<div class="shell-rich-history svelte-o8m437"><ol class="svelte-o8m437"></ol></div>');function m3(e,t){re(t,!0);var n=p3(),r=h(n);he(r,21,()=>t.data.lines,bt,(s,a)=>{var o=h3(),l=h(o),c=h(l,!0);v(l),v(o),N(()=>M(c,i(a))),H("click",l,()=>t.data.onClickLine(i(a))),S(s,o)}),v(r),v(n),S(e,n),se()}le(["click"]);const b3={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:m3,props:{data:{lines:r,onClickLine:s=>e.dispatch(s)}},ts:Date.now()})}};var g3=C('<tr><td class="svelte-1u5krjz"><button type="button" class="svelte-1u5krjz"> </button></td><td class="svelte-1u5krjz"> </td></tr>'),_3=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 y3(e,t){re(t,!0);var n=_3(),r=h(n),s=w(h(r));he(s,21,()=>t.data.apps,a=>a.id,(a,o)=>{var l=g3(),c=h(l),u=h(c),d=h(u,!0);v(u),v(c);var f=w(c),p=h(f,!0);v(f),v(l),N(()=>{M(d,i(o).id),M(p,i(o).label)}),H("click",u,()=>t.data.onClickApp(i(o).id)),S(a,l)}),v(s),v(r),v(n),S(e,n),se()}le(["click"]);var w3=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 k3(e,t){re(t,!0);var n=w3(),r=h(n),s=h(r,!0);v(r);var a=w(r,2),o=w(h(a));v(a);var l=w(a,2),c=w(h(l));v(l),v(n),N(u=>{M(s,t.data.label),M(o,` ${t.data.id??""}`),M(c,` ${u??""}`)},[()=>t.data.shards.join(", ")]),S(e,n),se()}const x3={name:"apps",summary:"List installed apps. Click a row to launch.",programmatic:!0,async run(e){const t=e.shell.listApps();e.scrollback.push({kind:"rich",component:y3,props:{data:{apps:t,onClickApp:n=>{e.shell.launchApp(n),e.scrollback.push({kind:"status",text:`shell: launched app ${n}`,level:"info",ts:Date.now()})}}},ts:Date.now()})}},S3={name:"app",summary:"Show the currently active app.",programmatic:!0,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:k3,props:{data:{id:t.id,label:t.label,shards:[]}},ts:Date.now()})}};var E3=C('<tr><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td></tr>'),I3=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 A3(e,t){re(t,!0);var n=I3(),r=h(n),s=w(h(r));he(s,21,()=>t.data.shards,a=>a.id,(a,o)=>{var l=E3(),c=h(l),u=h(c,!0);v(c);var d=w(c),f=h(d,!0);v(d);var p=w(d),b=h(p,!0);v(p),v(l),N(()=>{M(u,i(o).id),M(f,i(o).label),M(b,i(o).version)}),S(a,l)}),v(s),v(r),v(n),S(e,n),se()}const C3={name:"shards",summary:"List active shards.",programmatic:!0,async run(e){const t=e.shell.listShards();e.scrollback.push({kind:"rich",component:A3,props:{data:{shards:t}},ts:Date.now()})}};var T3=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>'),R3=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 j3(e,t){re(t,!0);var n=R3(),r=h(n),s=w(h(r));he(s,21,()=>t.data.views,a=>a.slotId,(a,o)=>{var l=T3(),c=h(l),u=h(c,!0);v(c);var d=w(c),f=h(d,!0);v(d);var p=w(d),b=h(p,!0);v(p);var k=w(p),g=h(k);v(k),v(l),N(()=>{M(u,i(o).slotId),M(f,i(o).viewId),M(b,i(o).label)}),H("click",g,()=>t.data.onClose(i(o).slotId)),S(a,l)}),v(s),v(r),v(n),S(e,n),se()}le(["click"]);const P3={name:"views",summary:"List views currently mounted. Pass --standalone to list summonable views instead.",programmatic:!0,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:j3,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()})}},D3={name:"open",summary:"Open a view from any active shard into the current layout.",programmatic:!0,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()})}},z3={name:"popout",summary:"Pop a docked view out into a float by slot id.",programmatic:!0,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()})}},M3={name:"dock",summary:"Dock a float back into the current layout by float id. Run with no args to list floats.",programmatic:!0,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()})}},O3={name:"close",summary:"Close a view by slot id.",programmatic:!0,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 L3=C('<tr><td class="svelte-1w7onag"> </td><td class="svelte-1w7onag"> </td></tr>'),N3=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 q3(e,t){re(t,!0);var n=N3(),r=h(n),s=w(h(r));he(s,21,()=>t.data.rows,a=>a.shardId,(a,o)=>{var l=L3(),c=h(l),u=h(c,!0);v(c);var d=w(c),f=h(d,!0);v(d),v(l),N(p=>{M(u,i(o).shardId),M(f,p)},[()=>i(o).zones.join(", ")]),S(a,l)}),v(s),v(r),v(n),S(e,n),se()}var V3=C('<div class="shell-rich-zonetree svelte-13iiyr1"><pre class="svelte-13iiyr1"> </pre></div>');function B3(e,t){re(t,!0);var n=V3(),r=h(n),s=h(r,!0);v(r),v(n),N(a=>M(s,a),[()=>JSON.stringify(t.data.value,null,2)]),S(e,n),se()}const F3={name:"zones",summary:"List zones for the current user (optionally scoped to a shard).",programmatic:!0,async run(e,t){const n=e.shell.listZones(t[0]);e.scrollback.push({kind:"rich",component:q3,props:{data:{rows:n}},ts:Date.now()})}},U3={name:"zone",summary:"Dump the contents of a zone as a collapsible JSON tree.",programmatic:!0,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:B3,props:{data:{value:s}},ts:Date.now()})}};function H3(e,t){if(t.startsWith("/"))return K3(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 K3(e){return e.split("/").filter(t=>t&&t!==".").join("/")}const W3={name:"pwd",summary:"Show the current working directory.",programmatic:!0,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()})}},Y3={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=H3(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}},G3={name:"whoami",summary:"Show the current admin user and session info.",programmatic:!0,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 X3=C('<tr><td class="svelte-1ox8vog"> </td><td class="svelte-1ox8vog"> </td></tr>'),J3=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 Z3(e,t){re(t,!0);var n=J3(),r=h(n),s=w(h(r));he(s,21,()=>Object.entries(t.data.env),([a,o])=>a,(a,o)=>{var l=W(()=>Jc(i(o),2));let c=()=>i(l)[0],u=()=>i(l)[1];var d=X3(),f=h(d),p=h(f,!0);v(f);var b=w(f),k=h(b,!0);v(b),v(d),N(()=>{M(p,c()),M(k,u())}),S(a,d)}),v(s),v(r),v(n),S(e,n),se()}const Q3={name:"env",summary:"Show the session environment.",async run(e){const t=e.session.env;e.scrollback.push({kind:"rich",component:Z3,props:{data:{env:t}},ts:Date.now()})}},$3={name:"ls",summary:"List the current directory.",programmatic:!0,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()})}},e2={name:"cat",summary:"Read a file into the scrollback.",programmatic:!0,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 t2(){try{const{TauriStoreBackend:e}=await Sr(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:Wc}}}async function n2(){try{const{LazyStore:e}=await Sr(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 r2={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 n2(),location.reload()}};function s2(e){e.registerVerb(d3()),e.registerVerb(f3),e.registerVerb(v3),e.registerVerb(b3),e.registerVerb(x3),e.registerVerb(S3),e.registerVerb(C3),e.registerVerb(P3),e.registerVerb(D3),e.registerVerb(O3),e.registerVerb(z3),e.registerVerb(M3),e.registerVerb(F3),e.registerVerb(U3),e.registerVerb(W3),e.registerVerb(Y3),e.registerVerb(Q3),e.registerVerb(G3),e.registerVerb($3),e.registerVerb(e2),e.registerVerb(r2)}const a2={manifest:IS,activate(e){s2(e);const t=Vf();e.actions.register({id:"shell.terminal.toggle",label:"Open Terminal",scope:["home","app"],defaultShortcut:"²",allowInInputs:!1,run(){Ga("shell:terminal")||Re.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=Dr()?.id??"guest",d=ht()?"admin":"user",f=qe(o3,{target:r,props:{shell:t,wsUrl:l,userId:u,role:d,contributions:e.contributions}});return{unmount(){Xe(f)},closable:!0}}};e.registerView("shell:terminal",n)},autostart(){}},i2={manifest:{id:"sh3-store-app",label:"Package Store",version:vn,requiredShards:["sh3-store"],layoutVersion:1,admin:!0},initialLayout:{type:"tabs",activeTab:0,tabs:[{slotId:"store.browse",viewId:"sh3-store:browse",label:"Browse"}]}};var o2=C('<div class="admin-error svelte-4q792t"> </div>'),l2=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>'),c2=C('<p class="admin-muted svelte-4q792t">Loading...</p>'),u2=C('<p class="admin-error svelte-4q792t"> </p>'),d2=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>'),f2=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),v2=C('<li class="admin-user-item svelte-4q792t"><!></li>'),h2=C('<ul class="admin-user-list svelte-4q792t"></ul>'),p2=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 m2(e,t){re(t,!0);let n=U(oe([])),r=U(!0),s=U(null),a=U(!1),o=U(""),l=U(""),c=U(""),u=U("user"),d=U(null),f=U(null),p=U(""),b=U("user"),k=U("");async function g(){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 g()}catch{x(d,"Network error")}}function E(L){x(f,L.id,!0),x(p,L.displayName,!0),x(b,L.role,!0),x(k,"")}async function y(){if(!i(f))return;const L={displayName:i(p),role:i(b)};i(k).trim()&&(L.password=i(k));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 g()}catch{}}async function m(L){try{await fetch(`/api/admin/users/${L}`,{method:"DELETE",credentials:"include"}),await g()}catch{}}g();var I=p2(),z=h(I),j=w(h(z),2),P=h(j,!0);v(j),v(z);var O=w(z,2);{var R=L=>{var F=l2(),V=h(F);ge(V);var q=w(V,2);ge(q);var G=w(q,2);ge(G);var X=w(G,2),ae=h(X);ae.value=ae.__value="user";var Y=w(ae);Y.value=Y.__value="admin",v(X);var J=w(X,2),ie=w(J,2);{var fe=Q=>{var pe=o2(),ke=h(pe,!0);v(pe),N(()=>M(ke,i(d))),S(Q,pe)};K(ie,Q=>{i(d)&&Q(fe)})}v(F),N(Q=>J.disabled=Q,[()=>!i(o).trim()||!i(c).trim()]),Pe("submit",F,Q=>{Q.preventDefault(),_()}),Ee(V,()=>i(o),Q=>x(o,Q)),Ee(q,()=>i(l),Q=>x(l,Q)),Ee(G,()=>i(c),Q=>x(c,Q)),ls(X,()=>i(u),Q=>x(u,Q)),S(L,F)};K(O,L=>{i(a)&&L(R)})}var T=w(O,2);{var A=L=>{var F=c2();S(L,F)},D=L=>{var F=u2(),V=h(F,!0);v(F),N(()=>M(V,i(s))),S(L,F)},B=L=>{var F=h2();he(F,21,()=>i(n),V=>V.id,(V,q)=>{var G=v2(),X=h(G);{var ae=J=>{var ie=d2(),fe=h(ie);ge(fe);var Q=w(fe,2);ge(Q);var pe=w(Q,2),ke=h(pe);ke.value=ke.__value="user";var yt=w(ke);yt.value=yt.__value="admin",v(pe);var Ne=w(pe,2),Tt=w(h(Ne),2);v(Ne),v(ie),Pe("submit",ie,Ft=>{Ft.preventDefault(),y()}),Ee(fe,()=>i(p),Ft=>x(p,Ft)),Ee(Q,()=>i(k),Ft=>x(k,Ft)),ls(pe,()=>i(b),Ft=>x(b,Ft)),H("click",Tt,()=>{x(f,null)}),S(J,ie)},Y=J=>{var ie=f2(),fe=ve(ie),Q=h(fe),pe=h(Q,!0);v(Q);var ke=w(Q,2),yt=h(ke);v(ke),v(fe);var Ne=w(fe,2),Tt=h(Ne),Ft=w(Tt,2);v(Ne),N(()=>{M(pe,i(q).displayName),M(yt,`${i(q).username??""} · ${i(q).role??""}`)}),H("click",Tt,()=>E(i(q))),H("click",Ft,()=>m(i(q).id)),S(J,ie)};K(X,J=>{i(f)===i(q).id?J(ae):J(Y,-1)})}v(G),S(V,G)}),v(F),S(L,F)};K(T,L=>{i(r)?L(A):i(s)?L(D,1):L(B,-1)})}v(I),N(()=>M(P,i(a)?"Cancel":"New user")),H("click",j,()=>{x(a,!i(a))}),S(e,I),se()}le(["click"]);var b2=C('<p class="admin-muted svelte-1hsgdb4">Loading...</p>'),g2=C('<div class="admin-error svelte-1hsgdb4"> </div>'),_2=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),y2=C('<div class="admin-auth svelte-1hsgdb4"><h2 class="svelte-1hsgdb4">Auth Settings</h2> <!></div>');function w2(e,t){re(t,!0);let n=U(null),r=U(!0),s=U(!1),a=U(null);async function o(){x(r,!0);try{const p=await fetch("/api/admin/settings",{credentials:"include"});if(!p.ok)throw new Error("Failed to fetch settings");x(n,await p.json(),!0)}catch(p){x(a,p instanceof Error?p.message:"Failed to load settings",!0)}finally{x(r,!1)}}async function l(){if(i(n)){x(s,!0),x(a,null);try{const p=await fetch("/api/admin/settings",{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(i(n))});if(!p.ok)throw new Error("Failed to save settings");x(n,await p.json(),!0)}catch(p){x(a,p instanceof Error?p.message:"Failed to save",!0)}finally{x(s,!1)}}}o();var c=y2(),u=w(h(c),2);{var d=p=>{var b=b2();S(p,b)},f=p=>{var b=_2(),k=ve(b),g=h(k),_=h(g);ge(_),Gt(4),v(g);var E=w(g,2),y=h(E);ge(y),Gt(4),v(E);var m=w(E,2),I=h(m);ge(I),Gt(4),v(m);var z=w(m,2),j=w(h(z),2);ge(j),v(z);var P=w(z,2),O=h(P,!0);v(P),v(k);var R=w(k,2);{var T=A=>{var D=g2(),B=h(D,!0);v(D),N(()=>M(B,i(a))),S(A,D)};K(R,A=>{i(a)&&A(T)})}N(()=>{P.disabled=i(s),M(O,i(s)?"Saving...":"Save")}),ts(_,()=>i(n).auth.required,A=>i(n).auth.required=A),ts(y,()=>i(n).auth.guestAllowed,A=>i(n).auth.guestAllowed=A),ts(I,()=>i(n).auth.selfRegistration,A=>i(n).auth.selfRegistration=A),Ee(j,()=>i(n).auth.sessionTTL,A=>i(n).auth.sessionTTL=A),H("click",P,l),S(p,b)};K(u,p=>{i(r)?p(d):i(n)&&p(f,1)})}v(c),S(e,c),se()}le(["click"]);var k2=C('<button type="button"> </button>'),x2=C('<div class="admin-error svelte-1gkiloq"> </div>'),S2=C('<div class="admin-error svelte-1gkiloq"> </div>'),E2=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 I2(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=U("..."),s=U(!1),a=U(null),o=U(31536e3),l=U(31536e3),c=U(!1),u=U(null);const d=W(()=>i(o)!==i(l)),f=W(()=>p(i(o)));function p(Q){return Q===0?"0 seconds (off — browsers never cache)":Q<60?`${Q} seconds`:Q<3600?`${Math.round(Q/60)} minutes`:Q<86400?`${Math.round(Q/3600)} hours`:Q<31536e3?`${Math.round(Q/86400)} days`:`${Math.round(Q/31536e3)} years`}async function b(){try{const Q=await fetch("/api/version");if(Q.ok){const pe=await Q.json();x(r,pe.version,!0)}}catch{}}async function k(){try{const Q=await fetch("/api/admin/settings",{credentials:"include"});if(Q.ok){const ke=(await Q.json()).packages?.cacheMaxAge??31536e3;x(o,ke,!0),x(l,ke,!0)}}catch{}}async function g(){x(c,!0),x(u,null);try{const Q=await fetch("/api/admin/settings",{method:"PUT",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({packages:{cacheMaxAge:i(o)}})});if(Q.ok){const pe=await Q.json();x(l,pe.packages?.cacheMaxAge??i(o),!0),x(o,i(l),!0)}else{const pe=await Q.json().catch(()=>({}));x(u,pe.error||"Save failed",!0)}}catch{x(u,"Network error")}finally{x(c,!1)}}async function _(){x(s,!0),x(a,null);try{const Q=await fetch("/api/admin/restart",{method:"POST",credentials:"include"});if(!Q.ok){const pe=await Q.json().catch(()=>({}));x(a,pe.error||"Restart failed",!0),x(s,!1)}}catch{x(a,"Network error"),x(s,!1)}}b(),k();var E=E2(),y=w(h(E),2),m=h(y),I=w(h(m),2),z=h(I,!0);v(I),v(m),v(y);var j=w(y,2),P=w(h(j),4);ge(P);var O=w(P,2),R=h(O),T=h(R,!0);v(R);var A=w(R);v(O);var D=w(O,2);he(D,21,()=>n,Q=>Q.value,(Q,pe)=>{var ke=k2();let yt;var Ne=h(ke,!0);v(ke),N(()=>{yt=ce(ke,1,"admin-snap svelte-1gkiloq",null,yt,{active:i(o)===i(pe).value}),ke.disabled=i(c),M(Ne,i(pe).label)}),H("click",ke,()=>x(o,i(pe).value,!0)),S(Q,ke)}),v(D);var B=w(D,2),L=h(B),F=h(L,!0);v(L);var V=w(L,2),q=w(V,2);{var G=Q=>{var pe=x2(),ke=h(pe,!0);v(pe),N(()=>M(ke,i(u))),S(Q,pe)};K(q,Q=>{i(u)&&Q(G)})}v(B),v(j);var X=w(j,2),ae=w(h(X),2),Y=h(ae),J=h(Y,!0);v(Y);var ie=w(Y,2);{var fe=Q=>{var pe=S2(),ke=h(pe,!0);v(pe),N(()=>M(ke,i(a))),S(Q,pe)};K(ie,Q=>{i(a)&&Q(fe)})}v(ae),v(X),v(E),N(()=>{M(z,i(r)),P.disabled=i(c),M(T,i(o)),M(A,` — ${i(f)??""}`),L.disabled=!i(d)||i(c),M(F,i(c)?"Saving...":"Save"),V.disabled=!i(d)||i(c),Y.disabled=i(s),M(J,i(s)?"Restarting...":"Restart server")}),Ee(P,()=>i(o),Q=>x(o,Q)),H("click",L,g),H("click",V,()=>x(o,i(l),!0)),H("click",Y,_),S(e,E),se()}le(["click"]);var A2=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>`),C2=C('<div class="admin-error svelte-1afg5z5"> </div>'),T2=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>'),R2=C('<p class="admin-muted svelte-1afg5z5">Loading...</p>'),j2=C('<p class="admin-error svelte-1afg5z5"> </p>'),P2=C('<p class="admin-muted svelte-1afg5z5">No API keys. Create one to enable external access.</p>'),D2=C('<button type="button" class="admin-btn-danger svelte-1afg5z5">Confirm</button> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Cancel</button>',1),z2=C('<button type="button" class="admin-btn-danger svelte-1afg5z5">Revoke</button>'),M2=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>'),O2=C('<ul class="admin-key-list svelte-1afg5z5"></ul>'),L2=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 N2(e,t){re(t,!0);let n=U(oe([])),r=U(!0),s=U(null),a=U(!1),o=U(""),l=U(null),c=U(null),u=U(null);async function d(){x(r,!0),x(s,null);try{const A=await fetch("/api/admin/keys",{credentials:"include"});if(!A.ok)throw new Error("Failed to fetch keys");x(n,await A.json(),!0)}catch(A){x(s,A instanceof Error?A.message:"Failed to load keys",!0)}finally{x(r,!1)}}async function f(){x(l,null);try{const A=await fetch("/api/admin/keys",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({label:i(o)})});if(!A.ok){const B=await A.json().catch(()=>({}));x(l,B.error||"Failed to create key",!0);return}const D=await A.json();x(c,{id:D.id,key:D.key},!0),x(o,""),x(a,!1),await d()}catch{x(l,"Network error")}}async function p(A){x(u,null);try{await fetch(`/api/admin/keys/${A}`,{method:"DELETE",credentials:"include"}),i(c)?.id===A&&x(c,null),await d()}catch{}}function b(A){return new Date(A).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}d();var k=L2(),g=h(k),_=w(h(g),2),E=h(_,!0);v(_),v(g);var y=w(g,2);{var m=A=>{var D=A2(),B=w(h(D),2),L=h(B,!0);v(B);var F=w(B,2);v(D),N(()=>M(L,i(c).key)),H("click",F,()=>{x(c,null)}),S(A,D)};K(y,A=>{i(c)&&A(m)})}var I=w(y,2);{var z=A=>{var D=T2(),B=h(D);ge(B);var L=w(B,2),F=w(L,2);{var V=q=>{var G=C2(),X=h(G,!0);v(G),N(()=>M(X,i(l))),S(q,G)};K(F,q=>{i(l)&&q(V)})}v(D),N(q=>L.disabled=q,[()=>!i(o).trim()]),Pe("submit",D,q=>{q.preventDefault(),f()}),Ee(B,()=>i(o),q=>x(o,q)),S(A,D)};K(I,A=>{i(a)&&A(z)})}var j=w(I,2);{var P=A=>{var D=R2();S(A,D)},O=A=>{var D=j2(),B=h(D,!0);v(D),N(()=>M(B,i(s))),S(A,D)},R=A=>{var D=P2();S(A,D)},T=A=>{var D=O2();he(D,21,()=>i(n),B=>B.id,(B,L)=>{var F=M2(),V=h(F),q=h(V),G=h(q,!0);v(q);var X=w(q,2),ae=h(X);v(X),v(V);var Y=w(V,2),J=h(Y);{var ie=Q=>{var pe=D2(),ke=ve(pe),yt=w(ke,2);H("click",ke,()=>p(i(L).id)),H("click",yt,()=>{x(u,null)}),S(Q,pe)},fe=Q=>{var pe=z2();H("click",pe,()=>{x(u,i(L).id,!0)}),S(Q,pe)};K(J,Q=>{i(u)===i(L).id?Q(ie):Q(fe,-1)})}v(Y),v(F),N(Q=>{M(G,i(L).label),M(ae,`${i(L).id??""} · ${Q??""}`)},[()=>b(i(L).createdAt)]),S(B,F)}),v(D),S(A,D)};K(j,A=>{i(r)?A(P):i(s)?A(O,1):i(n).length===0?A(R,2):A(T,-1)})}v(k),N(()=>M(E,i(a)?"Cancel":"New key")),H("click",_,()=>{x(a,!i(a))}),S(e,k),se()}le(["click"]);const q2={manifest:{id:"sh3-admin",label:"Admin",version:vn,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=qe(m2,{target:a});return{unmount(){Xe(l)}}}},n={mount(a,o){const l=qe(w2,{target:a});return{unmount(){Xe(l)}}}},r={mount(a,o){const l=qe(I2,{target:a});return{unmount(){Xe(l)}}}},s={mount(a,o){const l=qe(N2,{target:a});return{unmount(){Xe(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)}},V2={manifest:{id:"sh3-admin-app",label:"Admin",version:vn,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"}]}},Cc="sh3:migrations:shell-rename:done",Tc="__shell__:",B2="__sh3core__:",Rc="sh3:user:__shell__:theme",jc="sh3:user:__sh3core__:theme";function F2(e,t){if(t.getItem(Cc))return;const n=t.getItem(Rc);n!==null&&t.getItem(jc)===null&&(t.setItem(jc,n),t.removeItem(Rc));for(const r of e.keys()){if(!r.startsWith(Tc))continue;const s=B2+r.slice(Tc.length),a=e.read(r);e.write(s,a),e.delete(r)}t.setItem(Cc,"1")}const Pc="sh3:migrations:mode-id-rename:done",U2="sh3.shell.lastMode.",Dc={dev:"bash",user:"sh3"};function H2(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 K2(e){if(!e.getItem(Pc)){for(const t of H2(e)){if(!t.startsWith(U2))continue;const n=e.getItem(t);n&&Object.prototype.hasOwnProperty.call(Dc,n)&&e.setItem(t,Dc[n])}e.setItem(Pc,"1")}}let zc=!1,Mc=null;function W2(){zc||(zc=!0,Mc=e=>{const t=e.state?.sh3;t==="anchor"?(Vg(),history.forward()):t==="forward-bumper"&&(Bg(),history.back())},window.addEventListener("popstate",Mc),history.replaceState({sh3:"anchor"},""),history.pushState({sh3:"main"},""),history.pushState({sh3:"forward-bumper"},""),history.back())}function Y2(e){ol(e)}function G2(){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 X2(e){if(typeof globalThis.localStorage<"u"){F2(G2(),globalThis.localStorage),K2(globalThis.localStorage);const{migrateLegacyWorkspaceKeys:a}=await Sr(async()=>{const{migrateLegacyWorkspaceKeys:l}=await import("./workspace-rekey-DRgvbNY-.js");return{migrateLegacyWorkspaceKeys:l}},[]),{getActiveScopeId:o}=await Sr(async()=>{const{getActiveScopeId:l}=await Promise.resolve().then(()=>Nw);return{getActiveScopeId:l}},void 0);a(o())}const t=new Set(e?.excludeShards),n=[ES,a2,$x,q2,k0,V0];for(const a of n)t.has(a.manifest.id)||ol(a);const r=[i2,V2];for(const a of r)No(a);await mx();for(const[a,o]of dn)if(o.autostart){nw(a);try{await $f(a,{phase:"autostart"})}catch{}}const s=Cf();if(s&&jn.has(s))try{await yn(s)}catch(a){console.error(`[sh3] Auto-launch of "${s}" failed:`,a),Tf()}Ng({returnToHome:Ms,launchApp:yn}),typeof window<"u"&&typeof history<"u"&&W2()}var J2=C('<button type="button" aria-label="Expand pane"><span class="collapse-icon"> </span></button>'),Z2=C('<button type="button" aria-label="Collapse pane"><span class="collapse-icon"> </span></button>'),Q2=C('<!> <div class="pane-content svelte-1adl4o1"><!></div>',1),$2=C('<div role="separator"></div>'),eE=C("<div><!></div> <!>",1),tE=C("<div></div>");function nE(e,t){re(t,!0);const n=40,r=28;let s;const a=E=>t.pinned?.[E]??"fr",o=E=>t.collapsed?.[E]??!1,l=E=>t.fixed?.[E]??!1,c=E=>l(E)||l(E+1);function u(E){if(l(E))return!1;const y=E>0?!l(E-1):!1,m=E<t.count-1?!l(E+1):!1;return y||m}function d(E){return o(E)?`0 0 ${r}px`:a(E)==="px"?`0 0 ${Math.max(n,t.sizes[E])}px`:`${Math.max(1e-4,t.sizes[E])} 1 0`}let f=U(null);function p(E,y){if(o(y)||o(y+1)||c(y))return;E.preventDefault(),E.target.setPointerCapture(E.pointerId);const m=s.getBoundingClientRect(),I=t.direction==="horizontal"?m.width:m.height;let z=0,j=0;for(let P=0;P<t.sizes.length;P++)a(P)==="fr"?z+=t.sizes[P]:j+=Math.max(n,t.sizes[P]);x(f,{handleIndex:y,startClient:t.direction==="horizontal"?E.clientX:E.clientY,startSizes:t.sizes.slice(),containerPx:I,totalFr:z,frAvailPx:Math.max(1,I-j)},!0)}function b(E){if(!i(f))return;const m=(t.direction==="horizontal"?E.clientX:E.clientY)-i(f).startClient,I=i(f).handleIndex,z=I+1,j=a(I),P=a(z),O=i(f).totalFr/i(f).frAvailPx;if(j==="fr"&&P==="fr"){const R=n*O,T=m*O,A=i(f).startSizes[z]-R,D=-(i(f).startSizes[I]-R),B=Math.min(Math.max(T,D),A);t.onResize?.(I,i(f).startSizes[I]+B),t.onResize?.(z,i(f).startSizes[z]-B)}else if(j==="px"&&P==="fr"){const R=i(f).frAvailPx-n,T=n-i(f).startSizes[I];t.onResize?.(I,i(f).startSizes[I]+Math.min(Math.max(m,T),R))}else if(j==="fr"&&P==="px"){const R=i(f).startSizes[z]-n,T=-(i(f).frAvailPx-n);t.onResize?.(z,i(f).startSizes[z]-Math.min(Math.max(m,T),R))}else{const R=i(f).startSizes[z]-n,T=-(i(f).startSizes[I]-n),A=Math.min(Math.max(m,T),R);t.onResize?.(I,i(f).startSizes[I]+A),t.onResize?.(z,i(f).startSizes[z]-A)}}function k(E){i(f)&&(E.target.releasePointerCapture(E.pointerId),x(f,null))}var g=tE();let _;he(g,21,()=>Array(t.count),bt,(E,y,m)=>{var I=eE(),z=ve(I);let j;var P=h(z);{var O=B=>{var L=J2();let F;var V=h(L),q=h(V,!0);v(V),v(L),N(()=>{F=ce(L,1,"collapse-header svelte-1adl4o1",null,F,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),M(q,t.direction==="horizontal"?"▸":"▾")}),H("click",L,()=>t.onCollapseToggle?.(m,!1)),S(B,L)},R=W(()=>o(m)),T=B=>{var L=Q2(),F=ve(L);{var V=ae=>{var Y=Z2();let J;ne(Y,"data-testid",`collapse-toggle-${m}`);var ie=h(Y),fe=h(ie,!0);v(ie),v(Y),N(()=>{J=ce(Y,1,"collapse-header expanded svelte-1adl4o1",null,J,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),M(fe,t.direction==="horizontal"?"◂":"▴")}),H("click",Y,()=>t.onCollapseToggle?.(m,!0)),S(ae,Y)},q=W(()=>t.onCollapseToggle&&u(m));K(F,ae=>{i(q)&&ae(V)})}var G=w(F,2),X=h(G);en(X,()=>t.pane,()=>m),v(G),S(B,L)};K(P,B=>{i(R)?B(O):B(T,-1)})}v(z);var A=w(z,2);{var D=B=>{var L=$2();let F;ne(L,"data-testid",`splitter-handle-${m}`),N(V=>{F=ce(L,1,"splitter-handle svelte-1adl4o1",null,F,V),ne(L,"aria-orientation",t.direction==="horizontal"?"vertical":"horizontal")},[()=>({dragging:i(f)?.handleIndex===m,disabled:o(m)||o(m+1),frozen:c(m)})]),H("pointerdown",L,V=>p(V,m)),H("pointermove",L,b),H("pointerup",L,k),Pe("pointercancel",L,k),H("dblclick",L,()=>{c(m)||!u(m)&&!o(m)||t.onCollapseToggle?.(m,!o(m))}),S(B,L)};K(A,B=>{m<t.count-1&&B(D)})}N((B,L)=>{j=ce(z,1,"splitter-pane svelte-1adl4o1",null,j,B),Ye(z,`flex: ${L??""};`)},[()=>({collapsed:o(m)}),()=>d(m)]),S(E,I)}),v(g),ze(g,E=>s=E,()=>s),N(()=>_=ce(g,1,"splitter svelte-1adl4o1",null,_,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"})),S(e,g),se()}le(["click","pointerdown","pointermove","pointerup","dblclick"]);function rE(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 sE=C('<span class="tab-dirty svelte-1kxcyhf" title="Unsaved changes"></span>'),aE=C('<span class="tab-icon svelte-1kxcyhf"> </span>'),iE=C('<span class="tab-close svelte-1kxcyhf" role="button" tabindex="-1" title="Close">✕</span>'),oE=C('<button type="button" role="tab"><!> <!> <span class="tab-label svelte-1kxcyhf"> </span> <!></button>'),lE=C('<div class="drop-indicator svelte-1kxcyhf"></div>'),cE=C("<div><!></div>"),uE=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 dE(e,t){re(t,!0);function n(_){t.clickGuard?.()||t.onActiveChange?.(_)}function r(_,E){E.stopPropagation(),t.onClose?.(_)}let s=U(void 0);const a=oe([]);let o=U(null);function l(_,E){if(!t.dragController)return;const y=a[_];y&&t.dragController.onPointerDown(_,E,y)}function c(_){if(!t.dragController||!t.dragController.isDragging||!i(s))return;const E=i(s).getBoundingClientRect(),y=a.filter(m=>!!m).map(m=>m.getBoundingClientRect());x(o,t.dragController.onStripHover(E,_.clientX,_.clientY,y),!0)}function u(){t.dragController&&(x(o,null),t.dragController.onStripLeave())}var d=uE(),f=h(d),p=h(f);he(p,17,()=>t.labels,bt,(_,E,y)=>{var m=oE();let I;var z=h(m);{var j=B=>{var L=sE();S(B,L)};K(z,B=>{t.dirty?.[y]&&B(j)})}var P=w(z,2);{var O=B=>{var L=aE(),F=h(L,!0);v(L),N(()=>M(F,t.icons[y])),S(B,L)};K(P,B=>{t.icons?.[y]&&B(O)})}var R=w(P,2),T=h(R,!0);v(R);var A=w(R,2);{var D=B=>{var L=iE();N(()=>ne(L,"data-testid",t.tabIds?.[y]?`tab-close-${t.tabIds[y]}`:void 0)),H("click",L,F=>r(y,F)),H("keydown",L,F=>{(F.key==="Enter"||F.key===" ")&&r(y,F)}),S(B,L)};K(A,B=>{t.closable?.[y]&&B(D)})}v(m),ze(m,(B,L)=>a[L]=B,B=>a?.[B],()=>[y]),N(()=>{I=ce(m,1,"tab svelte-1kxcyhf",null,I,{active:t.activeTab===y}),ne(m,"aria-selected",t.activeTab===y),M(T,i(E))}),H("click",m,()=>n(y)),H("pointerdown",m,B=>l(y,B)),Pe("auxclick",m,B=>{B.button===1&&t.closable?.[y]&&r(y,B)}),S(_,m)});var b=w(p,2);{var k=_=>{const E=W(()=>rE(i(o),a,i(s)));var y=He(),m=ve(y);{var I=z=>{var j=lE();N(()=>Ye(j,`left: ${i(E).left??""}px; height: ${i(E).height??""}px; top: ${i(E).top??""}px;`)),S(z,j)};K(m,z=>{i(E)&&z(I)})}S(_,y)};K(b,_=>{i(o)!==null&&t.dragController?.isDragging&&_(k)})}v(f),ze(f,_=>x(s,_),()=>i(s));var g=w(f,2);he(g,21,()=>t.labels,bt,(_,E,y)=>{var m=cE();let I;var z=h(m);en(z,()=>t.body,()=>y),v(m),N(()=>I=ce(m,1,"tab-body-pane svelte-1kxcyhf",null,I,{active:t.activeTab===y})),S(_,m)}),v(g),v(d),H("pointermove",f,c),Pe("pointerleave",f,u),S(e,d),se()}le(["pointermove","click","pointerdown","keydown"]);var fE=C('no factory for <code class="svelte-1czj0s8"> </code>',1),vE=C("<em>empty slot</em>"),hE=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>'),pE=C('<div class="slot svelte-1czj0s8"><!></div>');function Oc(e,t){re(t,!0);let n=Z(t,"label",3,""),r=U(void 0),s=U(0),a=U(0);const o=W(()=>t.node.viewId?!!Gd(t.node.viewId):!1);xe(()=>{if(!i(r))return;const d=t.node.slotId,f=i(r),p=Xo(d,t.node.viewId,n()||t.node.viewId||d,t.meta);f.appendChild(p);const b=new ResizeObserver(k=>{for(const g of k){const _=g.contentRect;x(s,Math.round(_.width),!0),x(a,Math.round(_.height),!0)}});return b.observe(f),()=>{b.disconnect(),Jo(d,f)}});var l=pE(),c=h(l);{var u=d=>{var f=hE(),p=h(f),b=h(p,!0);v(p);var k=w(p,2),g=h(k);{var _=I=>{var z=fE(),j=w(ve(z)),P=h(j,!0);v(j),N(()=>M(P,t.node.viewId)),S(I,z)},E=I=>{var z=vE();S(I,z)};K(g,I=>{t.node.viewId?I(_):I(E,-1)})}v(k);var y=w(k,2),m=h(y);v(y),v(f),N(()=>{M(b,t.node.slotId),M(m,`${i(s)??""} × ${i(a)??""}`)}),S(d,f)};K(c,d=>{i(o)||d(u)})}v(l),ze(l,d=>x(r,d),()=>i(r)),N(()=>{ne(l,"data-slot-id",t.node.slotId),ne(l,"data-view-id",t.node.viewId??"")}),S(e,l),se()}const _e=oe({phase:"idle",source:null,pointerX:0,pointerY:0,target:null});let yv=0;function mE(){return performance.now()<yv}const Lc=4;let wv=0,kv=0;function bE(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,wv=r.clientX,kv=r.clientY,gE()}function gE(){window.addEventListener("pointermove",xv,!0),window.addEventListener("pointerup",Sv,!0),window.addEventListener("pointercancel",Ev,!0),document.body.style.userSelect="none",document.body.dataset.dragging=""}function _E(){window.removeEventListener("pointermove",xv,!0),window.removeEventListener("pointerup",Sv,!0),window.removeEventListener("pointercancel",Ev,!0),document.body.style.userSelect="",delete document.body.dataset.dragging}function xv(e){if(_e.pointerX=e.clientX,_e.pointerY=e.clientY,_e.phase==="pending"){const t=e.clientX-wv,n=e.clientY-kv;t*t+n*n>=Lc*Lc&&(_e.phase="dragging")}}function Sv(e){_e.phase==="dragging"&&(yE(),yv=performance.now()+50),Iv()}function Ev(e){Iv()}function Nc(e){const t=cn.tree;if(e.kind==="docked")return t.docked;const n=t.floats.find(r=>r.id===e.floatId);return n?n.content:null}function qc(e){if(e.kind!=="float")return;const t=cn.tree,n=t.floats.findIndex(r=>r.id===e.floatId);n<0||Rd(t.floats[n].content)&&t.floats.splice(n,1)}function yE(){const{source:e,target:t}=_e;if(!e||!t)return;const n=Nc(e.sourceRoot),r=Nc(t.root);if(!n||!r)return;if(t.kind==="strip"){const a=t.tabsNode.tabs.findIndex(o=>o.slotId===e.slotId);if(a>=0){Oy(t.tabsNode,a,t.insertIndex),br(n),r!==n&&br(r),qc(e.sourceRoot);return}}const s=Fa(n,e.slotId);s&&(t.kind==="strip"?My(t.tabsNode,s,t.insertIndex):Qd(r,t.path,s,t.side),br(n),r!==n&&br(r),qc(e.sourceRoot))}function Iv(){_e.phase="idle",_e.source=null,_e.target=null,_E()}function so(e){_e.phase==="dragging"&&(_e.target=e)}function kr(e){_e.phase==="dragging"&&_e.target&&(e&&!e(_e.target)||(_e.target=null))}var wE=C("<div></div>"),kE=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),xE=C("<!> <!>",1),SE=C("<div><!></div>");function Vc(e,t){re(t,!0);let n=U(void 0),r=U(null);const s=W(()=>_e.phase==="dragging"),a=W(()=>{let b;return t.rootRef.kind==="docked"?b=cn.root:b=cn.tree.floats.find(g=>g.id===t.rootRef.floatId)?.content??null,b?$d(b,t.path):!1});function o(b,k,g){const _=g.left+g.width/2,E=g.top+g.height/2,y=b-_,m=k-E,I=y/g.width,z=m/g.height;return Math.abs(I)>Math.abs(z)?I<0?"left":"right":z<0?"top":"bottom"}function l(b){if(!i(n))return;if(i(a)){i(r)!==null&&(x(r,null),kr(_=>_.kind==="split"&&_.path.join("/")===t.path.join("/")));return}const k=i(n).getBoundingClientRect();if(b.clientX<k.left||b.clientX>k.right||b.clientY<k.top||b.clientY>k.bottom){i(r)!==null&&(x(r,null),kr(_=>_.kind==="split"&&_.path.join("/")===t.path.join("/")));return}const g=o(b.clientX,b.clientY,k);if(g!==i(r)){x(r,g,!0);const _={kind:"split",root:t.rootRef,path:[...t.path],side:g};so(_)}}function c(){i(r)!==null&&(x(r,null),kr(b=>b.kind==="split"&&b.path.join("/")===t.path.join("/")))}var u=SE();let d;var f=h(u);{var p=b=>{var k=xE(),g=ve(k);{var _=m=>{var I=wE();N(()=>ce(I,1,`quad-highlight quad-${i(r)??""}`,"svelte-re71zu")),S(m,I)};K(g,m=>{i(r)&&m(_)})}var E=w(g,2);{var y=m=>{var I=kE();Gt(6),S(m,I)};K(E,m=>{i(s)&&m(y)})}S(b,k)};K(f,b=>{i(a)||b(p)})}v(u),ze(u,b=>x(n,b),()=>i(n)),N(()=>d=ce(u,1,"slot-drop-zone svelte-re71zu",null,d,{active:i(s),locked:i(a)})),H("pointermove",u,l),Pe("pointerleave",u,c),S(e,u),se()}le(["pointermove"]);var EE=C('<div class="tab-slot-wrapper svelte-1gw9g38"><!> <!></div>'),IE=C('<div class="empty-tabs-custom svelte-1gw9g38"></div>'),AE=C('<div class="empty-tabs-default svelte-1gw9g38"><div class="empty-tabs-drop svelte-1gw9g38"></div></div>'),CE=C('<div class="empty-tabs-placeholder svelte-1gw9g38"><!></div>'),TE=C('<div class="leaf-slot-wrapper svelte-1gw9g38"><!> <!></div>');function bl(e,t){re(t,!0);let n=Z(t,"path",19,()=>[]),r=Z(t,"rootRef",19,()=>({kind:"docked"}));const s=W(()=>{let y;return r().kind==="docked"?y=cn.root:y=cn.tree.floats.find(I=>I.id===r().floatId)?.content??null,y?vs(y,n()):null});function a(y){return{get isDragging(){return _e.phase==="dragging"},onPointerDown(m,I,z){const j=y.tabs[m];j&&bE(j.slotId,j,r(),I,z)},onStripHover(m,I,z,j){if(z<m.top||z>m.bottom)return kr(R=>R.kind==="strip"&&R.tabsNode===y),null;let P=j.length;for(let R=0;R<j.length;R++){const T=j[R],A=T.left+T.width/2;if(I<A){P=R;break}}const O=_e.source;if(O){const R=y.tabs.findIndex(T=>T.slotId===O.slotId);R>=0&&R<P&&(P-=1)}return so({kind:"strip",root:r(),tabsNode:y,insertIndex:P}),P},onStripLeave(){kr(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=>By(m.slotId)||void 0)}function d(y){return y.map(m=>Vy(m.slotId)||void 0)}function f(y,m){const I=y[m];I&&nl(I.slotId)}function p(y,m){m(y)}function b(y,m){_e.phase==="dragging"&&so({kind:"strip",root:r(),tabsNode:m,insertIndex:0})}function k(){kr(y=>y.kind==="strip"&&y.insertIndex===0)}var g=He(),_=ve(g);{var E=y=>{var m=He(),I=ve(m);{var z=O=>{const R=(A,D=xt)=>{{let B=W(()=>[...n(),D()]);bl(A,{get rootRef(){return r()},get path(){return i(B)}})}},T=W(()=>o(i(s)));nE(O,{get direction(){return i(T).direction},get sizes(){return i(T).sizes},get pinned(){return i(T).pinned},get collapsed(){return i(T).collapsed},get fixed(){return i(T).fixed},get count(){return i(T).children.length},get pane(){return R},onResize:(A,D)=>i(T).sizes[A]=D,onCollapseToggle:(A,D)=>{i(T).collapsed||(i(T).collapsed=i(T).children.map(()=>!1)),i(T).collapsed[A]=D}})},j=O=>{const R=W(()=>l(i(s)));var T=He(),A=ve(T);{var D=L=>{const F=(q,G=xt)=>{const X=W(()=>i(R)?.tabs[G()]);var ae=He(),Y=ve(ae);{var J=ie=>{var fe=EE(),Q=h(fe);{let ke=W(()=>({type:"slot",slotId:i(X).slotId,viewId:i(X).viewId}));Oc(Q,{get node(){return i(ke)},get label(){return i(X).label},get meta(){return i(X).meta}})}var pe=w(Q,2);Vc(pe,{get rootRef(){return r()},get path(){return n()}}),v(fe),S(ie,fe)};K(Y,ie=>{i(X)&&ie(J)})}S(q,ae)},V=W(()=>a(i(R)));{let q=W(()=>i(R).tabs.map(J=>J.label)),G=W(()=>i(R).tabs.map(J=>J.icon)),X=W(()=>u(i(R).tabs)),ae=W(()=>d(i(R).tabs)),Y=W(()=>i(R).tabs.map(J=>J.slotId));dE(L,{get labels(){return i(q)},get icons(){return i(G)},get activeTab(){return i(R).activeTab},onActiveChange:J=>i(R).activeTab=J,get body(){return F},get dragController(){return i(V)},get clickGuard(){return mE},get closable(){return i(X)},get dirty(){return i(ae)},onClose:J=>f(i(R).tabs,J),get tabIds(){return i(Y)}})}},B=L=>{var F=CE(),V=h(F);{var q=X=>{var ae=IE();vd(ae,(Y,J)=>p?.(Y,J),()=>i(R).emptyRenderer),S(X,ae)},G=X=>{var ae=AE(),Y=h(ae);v(ae),H("pointermove",Y,J=>b(J,i(R))),Pe("pointerleave",Y,k),S(X,ae)};K(V,X=>{i(R).emptyRenderer?X(q):X(G,-1)})}v(F),S(L,F)};K(A,L=>{i(R)&&i(R).tabs.length>0?L(D):i(R)?.persistent&&L(B,1)})}S(O,T)},P=O=>{const R=W(()=>c(i(s)));var T=TE(),A=h(T);Oc(A,{get node(){return i(R)},get meta(){return i(R).meta}});var D=w(A,2);Vc(D,{get rootRef(){return r()},get path(){return n()}}),v(T),S(O,T)};K(I,O=>{i(s).type==="split"?O(z):i(s).type==="tabs"?O(j,1):O(P,-1)})}S(y,m)};K(_,y=>{i(s)&&y(E)})}S(e,g),se()}le(["pointermove"]);var RE=C('<span class="drag-preview-icon svelte-133fiip"> </span>'),jE=C('<div class="drag-preview svelte-133fiip"><!> <span class="drag-preview-label svelte-133fiip"> </span></div>');function PE(e,t){re(t,!0);const n=W(()=>_e.phase==="dragging"&&!!_e.source),r=W(()=>_e.source?_e.pointerX-_e.source.offsetX:0),s=W(()=>_e.source?_e.pointerY-_e.source.offsetY:0),a=W(()=>_e.source?.startRect.width??0),o=W(()=>_e.source?.startRect.height??0),l=W(()=>_e.source?.entry.label??""),c=W(()=>_e.source?.entry.icon);var u=He(),d=ve(u);{var f=p=>{var b=jE(),k=h(b);{var g=y=>{var m=RE(),I=h(m,!0);v(m),N(()=>M(I,i(c))),S(y,m)};K(k,y=>{i(c)&&y(g)})}var _=w(k,2),E=h(_,!0);v(_),v(b),N(()=>{Ye(b,`left: ${i(r)??""}px; top: ${i(s)??""}px; width: ${i(a)??""}px; height: ${i(o)??""}px;`),M(E,i(l))}),S(p,b)};K(d,p=>{i(n)&&p(f)})}S(e,u),se()}const xr=new Map;let ka=!1;function Av(e){if(xr.size===0)return;const t=e.target;if(!t)return;const n=Array.from(xr.keys());for(const r of n){const s=xr.get(r);s&&(s.contains(t)||Re.close(r))}}function DE(){ka||typeof document>"u"||(document.addEventListener("pointerdown",Av,!0),ka=!0)}function zE(){ka&&(xr.size>0||(document.removeEventListener("pointerdown",Av,!0),ka=!1))}function ME(e,t){xr.set(e,t),DE()}function OE(e){xr.delete(e),zE()}var LE=C('<header class="sh3-float-header svelte-1p734al"><span class="sh3-float-title svelte-1p734al"> </span> <span class="sh3-float-header-actions svelte-1p734al"><button class="sh3-float-maximize svelte-1p734al"> </button> <button class="sh3-float-close svelte-1p734al" aria-label="Close float">×</button></span></header>'),NE=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 class="sh3-float-resize-grip svelte-1p734al" role="presentation" aria-hidden="true"></div></div>');function qE(e,t){re(t,!0);let n=Z(t,"entry",15),r=U(!1),s={x:0,y:0},a=U(!1),o={pointer:{x:0,y:0},size:{w:0,h:0},min:{w:0,h:0}},l=U(void 0);const c=W(()=>Re.isMaximized(n().id));xe(()=>{if(n().dismissable&&i(l))return ME(n().id,i(l)),()=>OE(n().id)}),xe(()=>{if(!i(l))return;const T=v_(n().id);if(T)return T.appendChild(i(l)),()=>{i(l)?.parentNode===T&&i(l).remove()}});function u(T){if(T.button!==0||T.target.closest(".sh3-float-close")||T.target.closest(".sh3-float-maximize"))return;T.currentTarget.setPointerCapture?.(T.pointerId),x(r,!0),s={x:T.clientX-n().position.x,y:T.clientY-n().position.y},Re.focus(n().id)}function d(T){i(r)&&(Re.unmaximize(n().id),n(n().position.x=T.clientX-s.x,!0),n(n().position.y=T.clientY-s.y,!0))}function f(T){if(!i(r))return;x(r,!1);const A=T.currentTarget;A.hasPointerCapture?.(T.pointerId)&&A.releasePointerCapture(T.pointerId)}function p(T){T.target.closest(".sh3-float-close")||T.target.closest(".sh3-float-maximize")||Re.toggleMaximize(n().id)}function b(T){if(T.button!==0)return;T.stopPropagation(),T.currentTarget.setPointerCapture?.(T.pointerId),x(a,!0),o={pointer:{x:T.clientX,y:T.clientY},size:{w:n().size.w,h:n().size.h},min:qo(n().content)},Re.focus(n().id)}function k(T){if(!i(a))return;Re.unmaximize(n().id);const A=T.clientX-o.pointer.x,D=T.clientY-o.pointer.y;n(n().size.w=Math.max(o.min.w,o.size.w+A),!0),n(n().size.h=Math.max(o.min.h,o.size.h+D),!0)}function g(T){if(!i(a))return;x(a,!1);const A=T.currentTarget;A.hasPointerCapture?.(T.pointerId)&&A.releasePointerCapture(T.pointerId)}function _(){Re.focus(n().id)}function E(T){T.stopPropagation(),Re.toggleMaximize(n().id)}function y(T){T.stopPropagation(),Re.close(n().id)}var m=NE();let I;var z=h(m);{var j=T=>{var A=LE(),D=h(A),B=h(D,!0);v(D);var L=w(D,2),F=h(L),V=h(F,!0);v(F);var q=w(F,2);v(L),v(A),N(()=>{M(B,n().title),ne(F,"aria-label",i(c)?"Restore float":"Maximize float"),ne(F,"aria-pressed",i(c)),M(V,i(c)?"🗗":"🗖")}),H("pointerdown",A,u),H("pointermove",A,d),H("pointerup",A,f),Pe("pointercancel",A,f),H("dblclick",A,p),H("click",F,E),H("click",q,y),S(T,A)};K(z,T=>{n().title&&T(j)})}var P=w(z,2),O=h(P);{let T=W(()=>({kind:"float",floatId:n().id}));bl(O,{get rootRef(){return i(T)},path:[]})}v(P);var R=w(P,2);v(m),ze(m,T=>x(l,T),()=>i(l)),N(()=>{ne(m,"aria-label",n().title??"Float panel"),I=Ye(m,"",I,{left:`${n().position.x??""}px`,top:`${n().position.y??""}px`,width:`${n().size.w??""}px`,height:`${n().size.h??""}px`})}),H("click",m,_),H("pointerdown",R,b),H("pointermove",R,k),H("pointerup",R,g),Pe("pointercancel",R,g),S(e,m),se()}le(["click","pointerdown","pointermove","pointerup","dblclick"]);var VE=C('<div class="sh3-float-layer svelte-1rzcset"></div>');function BE(e,t){re(t,!0);const n=W(()=>cn.floats);var r=VE();he(r,23,()=>i(n),s=>s.id,(s,a,o)=>{qE(s,{get entry(){return i(n)[i(o)]},set entry(l){i(n)[i(o)]=l}})}),v(r),S(e,r),se()}var FE=C('<div class="guest-signin-error svelte-pymkh"> </div>'),UE=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>'),HE=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),KE=C('<div class="guest-banner-slot"><!></div>');function WE(e,t){re(t,!0);let n=U(!1),r=U(""),s=U(""),a=U(null),o=U(!1);async function l(){if(!i(r).trim()||!i(s).trim()||i(o))return;x(o,!0),x(a,null);const p=await Lf(i(r).trim(),i(s).trim());x(o,!1),p.ok?x(n,!1):x(a,p.error,!0)}var c=KE(),u=h(c);{var d=p=>{var b=HE(),k=ve(b),g=w(h(k),2);v(k);var _=w(k,2);{var E=y=>{var m=UE(),I=h(m),z=h(I),j=h(z);ge(j);var P=w(j,2);ge(P);var O=w(P,2),R=h(O),T=h(R,!0);v(R);var A=w(R,2);v(O),v(z);var D=w(z,2);{var B=L=>{var F=FE(),V=h(F,!0);v(F),N(()=>M(V,i(a))),S(L,F)};K(D,L=>{i(a)&&L(B)})}v(I),v(m),N(L=>{j.disabled=i(o),P.disabled=i(o),R.disabled=L,M(T,i(o)?"Signing in...":"Sign in")},[()=>i(o)||!i(r).trim()||!i(s).trim()]),Pe("submit",z,L=>{L.preventDefault(),l()}),Ee(j,()=>i(r),L=>x(r,L)),Ee(P,()=>i(s),L=>x(s,L)),H("click",A,()=>{x(n,!1),x(a,null)}),S(y,m)};K(_,y=>{i(n)&&y(E)})}H("click",g,()=>{x(n,!0)}),S(p,b)},f=W(()=>Nf());K(u,p=>{i(f)&&p(d)})}v(c),S(e,c),se()}le(["click"]);var YE=C('<code class="sh3-consent-scope svelte-14me5sj"> </code>'),GE=C('<dt class="svelte-14me5sj">Peer</dt> <dd class="svelte-14me5sj"> </dd>',1),XE=C('<dt class="svelte-14me5sj">Expires in</dt> <dd class="svelte-14me5sj"> </dd>',1),JE=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 ZE(e,t){re(t,!0);let n=U(null);xe(()=>Zf(u=>{x(n,u,!0)}));function r(){i(n)&&(Qi(i(n).requestId,!0),x(n,null))}function s(){i(n)&&(Qi(i(n).requestId,!1),x(n,null))}var a=He(),o=ve(a);{var l=c=>{var u=JE(),d=h(u),f=h(d),p=h(f),b=h(p,!0);v(p),Gt(),v(f);var k=w(f,2),g=w(h(k),2),_=h(g,!0);v(g);var E=w(g,4);he(E,20,()=>i(n).scopes,R=>R,(R,T)=>{var A=YE(),D=h(A,!0);v(A),N(()=>M(D,T)),S(R,A)}),v(E);var y=w(E,2);{var m=R=>{var T=GE(),A=w(ve(T),2),D=h(A);v(A),N(()=>M(D,`${i(n).peerRole??"—"??""}${i(n).peerId?` · ${i(n).peerId}`:""}`)),S(R,T)};K(y,R=>{(i(n).peerRole||i(n).peerId)&&R(m)})}var I=w(y,2);{var z=R=>{var T=XE(),A=w(ve(T),2),D=h(A);v(A),N(B=>M(D,`${B??""}s`),[()=>Math.round(i(n).expiresIn/1e3)]),S(R,T)};K(I,R=>{i(n).expiresIn&&R(z)})}v(k);var j=w(k,2),P=h(j);Lr(P,!0);var O=w(P,2);v(j),v(d),v(u),N(()=>{M(b,i(n).shardId),M(_,i(n).label)}),H("click",P,s),H("click",O,r),S(c,u)};K(o,c=>{i(n)&&c(l)})}S(e,a),se()}le(["click"]);var QE=C('<span class="sh3-brand svelte-18lk809">SH3</span>'),$E=C('<span class="sh3-brand sh3-brand-app svelte-18lk809"> </span>'),eI=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),tI=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),nI=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),rI=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),sI=C('<div class="sh3-brand-slot svelte-18lk809"><!></div>');function aI(e,t){re(t,!0);const n=W(()=>Jt().activeAppId),r=W(Lg),s=W(()=>er.activeProjectId),a=W(()=>i(n)?Pn(i(n))?.manifest.label??i(n):null),o=W(()=>i(r)?Pn(i(r))?.manifest.label??i(r):null),l=W(()=>i(s)?Ot.projects.find(I=>I.id===i(s))?.name??i(s):null),c=W(()=>i(s)?i(n)?"project-app":i(r)?"project-breadcrumb":"project-home":i(n)?"app":i(r)?"breadcrumb":"brand");function u(){i(r)&&yn(i(r))}function d(){If(null)}function f(){i(n)&&Ms()}var p=sI(),b=h(p);{var k=I=>{var z=QE();S(I,z)},g=I=>{var z=$E(),j=h(z,!0);v(z),N(()=>M(j,i(a))),S(I,z)},_=I=>{var z=eI(),j=w(ve(z),4),P=h(j,!0);v(j),N(()=>M(P,i(o))),H("click",j,u),S(I,z)},E=I=>{var z=tI(),j=ve(z),P=w(j,4),O=h(P,!0);v(P),N(()=>M(O,i(l))),H("click",j,d),S(I,z)},y=I=>{var z=nI(),j=ve(z),P=h(j,!0);v(j);var O=w(j,4),R=h(O,!0);v(O),N(()=>{M(P,i(l)),M(R,i(a))}),S(I,z)},m=I=>{var z=rI(),j=ve(z),P=w(j,4),O=h(P,!0);v(P);var R=w(P,4),T=h(R,!0);v(R),N(()=>{M(O,i(l)),M(T,i(o))}),H("click",j,d),H("click",P,f),H("click",R,u),S(I,z)};K(b,I=>{i(c)==="brand"?I(k):i(c)==="app"?I(g,1):i(c)==="breadcrumb"?I(_,2):i(c)==="project-home"?I(E,3):i(c)==="project-app"?I(y,4):i(c)==="project-breadcrumb"&&I(m,5)})}v(p),S(e,p),se()}le(["click"]);const iI=Object.freeze([{id:"file",label:"File"},{id:"edit",label:"Edit"},{id:"view",label:"View"},{id:"window",label:"Window"},{id:"help",label:"Help"}]);function xa(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function oI(e,t){if(e==null)return[];if(t==null)return iI.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 lI(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)||!zs(a.action.scope,t,a.ownerShardId)||(s.add(a.action.id),r.push({id:a.action.id,label:Bt(a.action),shortcut:Ds(a.action,t.bindings,t.platform),group:a.action.group??"",icon:a.action.icon,checked:xa(a.action.checked),disabled:xa(a.action.disabled),submenu:a.action.submenu===!0}));return r}function cI(e,t,n){const r=[],s=new Set;for(const a of e)a.action.submenuOf!==n||s.has(a.action.id)||!zs(a.action.scope,t,a.ownerShardId)||(s.add(a.action.id),r.push({id:a.action.id,label:Bt(a.action),shortcut:Ds(a.action,t.bindings,t.platform),group:a.action.group??"",icon:a.action.icon,checked:xa(a.action.checked),disabled:xa(a.action.disabled),submenu:a.action.submenu===!0}));return r}var uI=C('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),dI=C('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),fI=C('<button type="button" class="sh3-menubar-button svelte-bke3dt"><!> <span class="sh3-menubar-label"> </span> <!></button>');function vI(e,t){re(t,!0);let n=U(void 0);function r(g){const _=new Map,E=[];for(const y of g){const m=y.group||"";_.has(m)||(_.set(m,[]),E.push(m)),_.get(m).push(y)}return E.map(y=>({id:`group:${y||"_default"}`,items:_.get(y)}))}function s(g,_,E){const y=nt().find(m=>m.action.id===g);if(!(!y||typeof y.action.run!="function")){try{y.action.run({action:{id:g,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 "${g}" threw:`,m)}E.close()}}function a(g,_,E){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 z=(y.querySelector(".sh3-ctx-active")??y).getBoundingClientRect();m.style.left=`${z.right+2}px`,m.style.top=`${z.top}px`,y.appendChild(m);const j=cI(nt(),_,g),P=qe(ba,{target:m,props:{sections:r(j),onInvoke:O=>s(O,_,E),onDismiss:()=>{Xe(P),m.remove()}}})}function o(){if(!i(n))return;const g=Jt(),_=qi.show(ba,{anchor:i(n),placement:"bottom-start"},{sections:r(t.items),onInvoke:E=>{const y=nt().find(m=>m.action.id===E);if(y){if(y.action.submenu===!0){a(E,g,_);return}s(E,g,_)}},onDismiss:()=>qi.close()})}const l=W(()=>t.container.iconPosition??"before");var c=fI(),u=h(c);{var d=g=>{var _=uI();N(()=>ne(_,"data-icon",t.container.icon)),S(g,_)};K(u,g=>{t.container.icon&&i(l)==="before"&&g(d)})}var f=w(u,2),p=h(f,!0);v(f);var b=w(f,2);{var k=g=>{var _=dI();N(()=>ne(_,"data-icon",t.container.icon)),S(g,_)};K(b,g=>{t.container.icon&&i(l)==="after"&&g(k)})}v(c),ze(c,g=>x(n,g),()=>i(n)),N(()=>M(p,t.container.label)),H("click",c,o),S(e,c),se()}le(["click"]);var hI=C('<div class="sh3-menubar svelte-7gc0wa" role="menubar"></div>');function pI(e,t){re(t,!0);const n=W(Jt),r=W(()=>i(n).activeAppId),s=W(()=>{if(i(r))return Pn(i(r))?.manifest.menus}),a=W(()=>oI(i(r),i(s))),o=W(()=>{const c=[],u=nt();for(const d of i(a)){const f=lI(u,i(n),d.id);f.length>0&&c.push({container:d,items:f})}return c});var l=hI();he(l,21,()=>i(o),({container:c,items:u})=>c.id,(c,u)=>{let d=()=>i(u).container,f=()=>i(u).items;vI(c,{get container(){return d()},get items(){return f()}})}),v(l),S(e,l),se()}var mI=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>'),bI=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>'),gI=C('<div class="shell-overlay-root svelte-187fra4"><!></div>'),_I=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 yI(e,t){re(t,!0);const n=W(Ji),r=W(Dr),s=W(ht),a=W(()=>of()==="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:j}of o){const P=l[j];P&&Mg(j,P)}return()=>{for(const{name:j}of o)Og(j)}}),xe(()=>{const j=cn.tree;return d_(j.floats,()=>({w:window.innerWidth,h:window.innerHeight})),()=>f_()}),xe(()=>{cn.tree,tw()}),xe(()=>Ji()?y1():void 0);var c=_I(),u=h(c),d=h(u),f=h(d),p=h(f);v(f),v(d);var b=w(d,2);aI(b,{});var k=w(b,2);pI(k,{});var g=w(k,2);{var _=j=>{var P=bI(),O=h(P),R=h(O,!0);v(O);var T=w(O,2),A=h(T,!0);v(T);var D=w(T,2);{var B=F=>{var V=mI(),q=h(V),G=h(q);v(q),v(V),N(()=>ne(G,"href",`${nr}#log-out`)),H("click",V,()=>Yw()),S(F,V)},L=W(()=>!Xw());K(D,F=>{i(L)&&F(B)})}v(P),N(()=>{M(R,i(r).displayName),M(A,i(s)?"admin":"user")}),S(j,P)};K(g,j=>{i(n)&&i(r)&&j(_)})}v(u);var E=w(u,2);WE(E,{});var y=w(E,2),m=h(y);bl(m,{}),v(y);var I=w(y,4);he(I,21,()=>o,({layer:j,name:P})=>j,(j,P)=>{let O=()=>i(P).layer,R=()=>i(P).name;var T=gI(),A=h(T);{var D=L=>{BE(L,{})},B=L=>{PE(L,{})};K(A,L=>{R()==="floating"?L(D):R()==="drag-preview"&&L(B,1)})}v(T),ze(T,(L,F)=>l[F]=L,L=>l?.[L],()=>[R()]),N(()=>{ne(T,"data-shell-overlay",R()),ne(T,"data-shell-layer",O()),Ye(T,`z-index: var(--shell-z-layer-${O()??""});`)}),S(j,T)}),v(I);var z=w(I,2);ZE(z,{}),v(c),N(()=>{d.disabled=i(a),ne(p,"href",`${nr}#house`)}),H("click",d,()=>Ms()),S(e,c),se()}le(["click"]);var wI=C('<button type="button" class="signin-link svelte-lh4k15">Create an account</button>'),kI=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),xI=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),SI=C('<div class="signin-error svelte-lh4k15"> </div>'),EI=C('<div class="signin-wall svelte-lh4k15"><div class="signin-card svelte-lh4k15"><h1 class="signin-brand svelte-lh4k15">SH3</h1> <!> <!></div></div>');function II(e,t){re(t,!0);let n=U("login"),r=U(""),s=U(""),a=U(""),o=U(null),l=U(!1);async function c(){if(!i(r).trim()||!i(s).trim()||i(l))return;x(l,!0),x(o,null);const y=await Lf(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 Ww(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=EI(),p=h(f),b=w(h(p),2);{var k=y=>{var m=kI(),I=ve(m),z=h(I);ge(z);var j=w(z,2);ge(j);var P=w(j,2),O=h(P,!0);v(P),v(I);var R=w(I,2);{var T=A=>{var D=wI();H("click",D,()=>d("register")),S(A,D)};K(R,A=>{t.selfRegistration&&A(T)})}N(A=>{z.disabled=i(l),j.disabled=i(l),P.disabled=A,M(O,i(l)?"Signing in...":"Sign in")},[()=>i(l)||!i(r).trim()||!i(s).trim()]),Pe("submit",I,A=>{A.preventDefault(),c()}),Ee(z,()=>i(r),A=>x(r,A)),Ee(j,()=>i(s),A=>x(s,A)),S(y,m)},g=y=>{var m=xI(),I=ve(m),z=h(I);ge(z);var j=w(z,2);ge(j);var P=w(j,2);ge(P);var O=w(P,2),R=h(O,!0);v(O),v(I);var T=w(I,2);N(A=>{z.disabled=i(l),j.disabled=i(l),P.disabled=i(l),O.disabled=A,M(R,i(l)?"Creating...":"Create account")},[()=>i(l)||!i(r).trim()||!i(s).trim()]),Pe("submit",I,A=>{A.preventDefault(),u()}),Ee(z,()=>i(r),A=>x(r,A)),Ee(j,()=>i(a),A=>x(a,A)),Ee(P,()=>i(s),A=>x(s,A)),H("click",T,()=>d("login")),S(y,m)};K(b,y=>{i(n)==="login"?y(k):y(g,-1)})}var _=w(b,2);{var E=y=>{var m=SI(),I=h(m,!0);v(m),N(()=>M(I,i(o))),S(y,m)};K(_,y=>{i(o)&&y(E)})}v(p),v(f),S(e,f),se()}le(["click"]);async function AI(e){const t=e?.serverUrl??"",n=await t2();n.backends&&(Ql("workspace",n.backends.workspace),Ql("user",n.backends.user)),n.localOwner&&Gw(),Hf(t),D1();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)$s("local");else if(s){hc(t,s),$s(s.tenantId);const{auth:o,session:l}=s;if(!l&&o.required&&!o.guestAllowed){await CI(r,s);const c=await fetch(`${t}/api/boot`,{credentials:"include"});c.ok&&(s=await c.json(),hc(t,s),$s(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 Os(c);vl(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)Y2(o);if(e?.apps)for(const o of e.apps)No(o);const a={};e?.excludeShards&&(a.excludeShards=e.excludeShards),await X2(a),wf(),qe(yI,{target:r})}function CI(e,t){return new Promise(n=>{const r=qe(II,{target:e,props:{selfRegistration:t.auth.selfRegistration,onSuccess:()=>{Xe(r),n()}}})})}const gl=window.location.origin;Hf(gl);Ef(new s1(gl));let Cv=[];try{const e=await fetch("/api/packages");e.ok&&(Cv=await e.json())}catch{}await AI({discoveredPackages:Cv,serverUrl:gl});
|
|
24
|
+
//# sourceMappingURL=index-Drf5d4ev.js.map
|