sh3-server 0.15.1 → 0.15.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/assets/index-CuexSuRN.css +1 -0
- package/app/assets/index-dcWTOW90.js +21 -0
- package/app/assets/index-dcWTOW90.js.map +1 -0
- package/app/index.html +2 -2
- package/dist/shell-shard/history-store.d.ts +6 -4
- package/dist/shell-shard/history-store.js +31 -14
- package/dist/shell-shard/index.js +2 -1
- package/dist/shell-shard/session-manager.d.ts +11 -5
- package/dist/shell-shard/session-manager.js +18 -10
- package/dist/shell-shard/ws.js +2 -2
- package/package.json +1 -1
- package/app/assets/index-C6k1cYzj.css +0 -1
- package/app/assets/index-Drf5d4ev.js +0 -24
- package/app/assets/index-Drf5d4ev.js.map +0 -1
|
@@ -0,0 +1,21 @@
|
|
|
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 Dh="modulepreload",Mh=function(e){return"/"+e},Ol={},Cr=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=Mh(c),c in Ol)return;Ol[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":Dh,u||(f.as="script"),f.crossOrigin="",f.href=c,l&&f.setAttribute("nonce",l),document.head.appendChild(f),u)return new Promise((h,b)=>{f.addEventListener("load",h),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)})},Lh=1,zh=2,tu=4,Oh=8,Nh=16,qh=1,nu=4,Bh=8,Vh=16,Fh=1,Uh=2,Hh=4,bo=1,ru=2,Kh=4,Wh=8,ja="[",Pa="[!",Nl="[?",Da="]",Jn={},Re=Symbol(),xt=Symbol("filename"),vr=Symbol("hmr"),su="http://www.w3.org/1999/xhtml",Es="http://www.w3.org/2000/svg",go="http://www.w3.org/1998/Math/MathML",au="@attach",iu=!1;var qr=Array.isArray,Yh=Array.prototype.indexOf,Tr=Array.prototype.includes,Ma=Array.from,ua=Object.keys,Zn=Object.defineProperty,Zt=Object.getOwnPropertyDescriptor,ou=Object.getOwnPropertyDescriptors,lu=Object.prototype,Gh=Array.prototype,La=Object.getPrototypeOf,ql=Object.isExtensible,Xh=Object.prototype.hasOwnProperty;function hr(e){return typeof e=="function"}const St=()=>{};function Bl(e){return typeof e?.then=="function"}function Jh(e){return e()}function Ri(e){for(var t=0;t<e.length;t++)e[t]()}function cu(){var e,t,n=new Promise((r,s)=>{e=r,t=s});return{promise:n,resolve:e,reject:t}}function Zh(e,t,n=!1){return e===void 0?n?t():t:e}function uu(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 Qh(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,Qn=4,Is=8,yo=1<<24,Qt=16,en=32,kn=64,ji=128,Nt=512,Ue=1024,Je=2048,tn=4096,lt=8192,mt=16384,En=32768,Pi=1<<25,nn=65536,us=1<<17,du=1<<18,On=1<<19,fu=1<<20,cn=1<<25,$n=65536,Di=1<<21,Rr=1<<22,jn=1<<23,nt=Symbol("$state"),za=Symbol("legacy props"),$h=Symbol(""),ep=Symbol("proxy path"),tp=Symbol("hmr anchor"),an=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},lr=!!globalThis.document?.contentType&&globalThis.document.contentType.includes("xml"),vu=1,As=3,In=8,hu=11;function pu(e){throw new Error("https://svelte.dev/e/experimental_async_required")}function np(){throw new Error("https://svelte.dev/e/invalid_default_snippet")}function Vl(){throw new Error("https://svelte.dev/e/invalid_snippet_arguments")}function Br(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function rp(){throw new Error("https://svelte.dev/e/missing_context")}function sp(){throw new Error("https://svelte.dev/e/snippet_without_render_tag")}function ap(e){throw new Error("https://svelte.dev/e/store_invalid_shape")}function ip(){throw new Error("https://svelte.dev/e/svelte_element_invalid_this_value")}function op(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function lp(e,t){throw new Error("https://svelte.dev/e/component_api_changed")}function cp(e,t){throw new Error("https://svelte.dev/e/component_api_invalid_new")}function up(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function dp(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function fp(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function vp(e){throw new Error("https://svelte.dev/e/effect_orphan")}function hp(){throw new Error("https://svelte.dev/e/effect_pending_outside_reaction")}function pp(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function mp(){throw new Error("https://svelte.dev/e/fork_discarded")}function bp(){throw new Error("https://svelte.dev/e/fork_timing")}function gp(){throw new Error("https://svelte.dev/e/get_abort_signal_outside_reaction")}function yp(){throw new Error("https://svelte.dev/e/hydration_failed")}function mu(e){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}function _p(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function wp(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function kp(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function xp(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Sp(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}function Ep(e,t){console.warn("https://svelte.dev/e/assignment_value_stale")}function Ip(e,t){console.warn("https://svelte.dev/e/binding_property_non_reactive")}function Ap(e){console.warn("https://svelte.dev/e/console_log_state")}function Cp(){console.warn("https://svelte.dev/e/derived_inert")}function Tp(e,t){console.warn("https://svelte.dev/e/event_handler_invalid")}function Rp(e){console.warn("https://svelte.dev/e/hydratable_missing_but_expected")}function Cs(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function jp(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_binding")}function Pp(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_mutation")}function Dp(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function bu(e){console.warn("https://svelte.dev/e/state_proxy_equality_mismatch")}function Mp(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let re=!1;function Te(e){re=e}let de;function Ie(e){if(e===null)throw Cs(),Jn;return de=e}function ut(){return Ie(It(de))}function v(e){if(re){if(It(de)!==null)throw Cs(),Jn;de=e}}function Lp(e){re&&(de=e.content)}function qt(e=1){if(re){for(var t=e,n=de;t--;)n=It(n);de=n}}function er(e=!0){for(var t=0,n=de;;){if(n.nodeType===In){var r=n.data;if(r===Da){if(t===0)return n;t-=1}else(r===ja||r===Pa||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var s=It(n);e&&n.remove(),n=s}}function _o(e){if(!e||e.nodeType!==In)throw Cs(),Jn;return e.data}function gu(e){return e===this.v}function yu(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function _u(e){return!yu(e,this.v)}let zp=!1;function Op(e){console.warn("https://svelte.dev/e/dynamic_void_element_content")}const Np=[];function tr(e,t=!1,n=!1){return Gs(e,new Map,"",Np,null,n)}function Gs(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(qr(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]=Gs(u,t,n,r,null,a))}return l}if(La(e)===lu){l={},t.set(e,l),s!==null&&t.set(s,l);for(var d of Object.keys(e))l[d]=Gs(e[d],t,n,r,null,a);return l}if(e instanceof Date)return structuredClone(e);if(typeof e.toJSON=="function"&&!a)return Gs(e.toJSON(),t,n,r,e)}if(e instanceof EventTarget)return e;try{return structuredClone(e)}catch{return e}}let ur=null;function wu(e,t){const n=e.v;if(n===Re)return;const r=qp(e),s=ye,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&&nt in n?tr(n,!0):n),r==="$derived"){const c=new Set(e.deps);for(const u of c)wu(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 qp(e){return e.f&(Ze|Rr)?"$derived":e.label?.startsWith("$")?"store":"$state"}function Bp(e,t){var n=ur;try{ur={entries:new Map,reaction:ye};var r=performance.now(),s=t(),a=(performance.now()-r).toFixed(2),o=we(e);if(!Ds())console.log(`${o} %cran outside of an effect (${a}ms)`,"color: grey");else if(ur.entries.size===0)console.log(`${o} %cno reactive dependencies (${a}ms)`,"color: grey");else{console.group(`${o} %c(${a}ms)`,"color: grey");var l=ur.entries;we(()=>{for(const[c,u]of l)wu(c,u)}),ur=null,console.groupEnd()}return s}finally{ur=n}}function Vp(e,t){return e.label=t,ku(e.v,t),e}function ku(e,t){return e?.[ep]?.(t),e}function Fp(e){const t=new Error,n=Up();return n.length===0?null:(n.unshift(`
|
|
3
|
+
`),Zn(t,"stack",{value:n.join(`
|
|
4
|
+
`)}),Zn(t,"name",{value:e}),t)}function Up(){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 Ee=null;function jr(e){Ee=e}let Xs=null;function Hp(e,t,n,r,s,a){const o=Xs;Xs={type:t,file:n[xt],line:r,column:s,parent:o,...a};try{return e()}finally{Xs=o}}let wo=null;function Fl(e){wo=e}function Kp(){const e={};return[()=>(xu(e)||rp(),ko(e)),t=>xo(e,t)]}function ko(e){return Oa().get(e)}function xo(e,t){return Oa().set(e,t),t}function xu(e){return Oa().has(e)}function Wp(){return Oa()}function se(e,t=!1,n){Ee={p:Ee,i:!1,c:null,e:null,s:e,x:null,r:fe,l:null}}function ae(e){var t=Ee,n=t.e;if(n!==null){t.e=null;for(var r of n)Zu(r)}return e!==void 0&&(t.x=e),t.i=!0,Ee=t.p,e??{}}function Su(){return!0}function Oa(e){return Ee===null&&Br(),Ee.c??=new Map(Yp(Ee)||void 0)}function Yp(e){let t=e.p;for(;t!==null;){const n=t.c;if(n!==null)return n;t=t.p}return null}let Fn=[];function Eu(){var e=Fn;Fn=[],Ri(e)}function ct(e){if(Fn.length===0&&!kr){var t=Fn;queueMicrotask(()=>{t===Fn&&Eu()})}Fn.push(e)}function Gp(){for(;Fn.length>0;)Eu()}function Iu(e){var t=fe;if(t===null)return ye.f|=jn,e;if(!(t.f&En)&&!(t.f&Qn))throw e;un(e,t)}function un(e,t){for(;t!==null;){if(t.f&ji){if(!(t.f&En))throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const Xp=-7169;function Me(e,t){e.f=e.f&Xp|t}function So(e){e.f&Nt||e.deps===null?Me(e,Ue):Me(e,tn)}function Au(e){if(e!==null)for(const t of e)!(t.f&Ze)||!(t.f&$n)||(t.f^=$n,Au(t.deps))}function Cu(e,t,n){e.f&Je?t.add(e):e.f&tn&&n.add(e),Au(e.deps),Me(e,Ue)}function Tu(e,t,n){if(e==null)return t(void 0),St;const r=we(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}function Jp(e){let t;return Tu(e,n=>t=n)(),t}let Mi=!1,ts=!1,Li=Symbol();function Zp(e,t,n){const r=n[t]??={store:null,source:Ba(void 0),unsubscribe:St};if(r.store!==e&&!(Li in n))if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=St;else{var s=!0;r.unsubscribe=Tu(e,a=>{s?r.source.v=a:S(r.source,a)}),s=!1}return e&&Li in n?Jp(e):i(r.source)}function Qp(e,t,n){let r=n[t];return r&&r.store!==e&&(r.unsubscribe(),r.unsubscribe=St),e}function Ru(e,t){return Na(e,t),t}function $p(e,t){var n=e[t];n.store!==null&&Ru(n.store,n.source.v)}function em(){const e={};function t(){Ct(()=>{for(var n in e)e[n].unsubscribe();Zn(e,Li,{enumerable:!1,value:!0})})}return[e,t]}function Na(e,t){Mi=!0;try{e.set(t)}finally{Mi=!1}}function tm(e,t,n){return Na(e,n),t}function nm(e,t,n=1){return Na(e,t+n),t}function rm(e,t,n=1){const r=t+n;return Na(e,r),r}function sm(){ts=!0}function ju(e){var t=ts;try{return ts=!1,[e(),ts]}finally{ts=t}}const gn=new Set;let me=null,ot=null,zi=null,kr=!1,bi=!1,gr=null,Js=null;var Ul=0;let am=1;class Ut{id=am++;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)Me(s,Je),n(s);for(s of r.m)Me(s,tn),n(s)}this.#f.add(t)}#p(){if(Ul++>1e3&&(gn.delete(this),im()),!this.#d()){for(const l of this.#l)this.#u.delete(l),Me(l,Je),this.schedule(l);for(const l of this.#u)Me(l,tn),this.schedule(l)}const t=this.#a;this.#a=[],this.apply();var n=gr=[],r=[],s=Js=[];for(const l of t)try{this.#b(l,n,r)}catch(c){throw Lu(l),c}if(me=null,s.length>0){var a=Ut.ensure();for(const l of s)a.schedule(l)}if(gr=null,Js=null,this.#d()||this.#g()){this.#m(r),this.#m(n);for(const[l,c]of this.#c)Mu(l,c)}else{this.#s.size===0&&gn.delete(this),this.#l.clear(),this.#u.clear();for(const l of this.#e)l(this);this.#e.clear(),Hl(r),Hl(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&&(gn.add(o),o.#p())}#b(t,n,r){t.f^=Ue;for(var s=t.first;s!==null;){var a=s.f,o=(a&(en|kn))!==0,l=o&&(a&Ue)!==0,c=l||(a<)!==0||this.#c.has(s);if(!c&&s.fn!==null){o?s.f^=Ue:a&Qn?n.push(s):Ur(s)&&(a&Qt&&this.#u.add(s),rr(s));var u=s.first;if(u!==null){s=u;continue}}for(;s!==null;){var d=s.next;if(d!==null){s=d;break}s=s.parent}}}#m(t){for(var n=0;n<t.length;n+=1)Cu(t[n],this.#l,this.#u)}capture(t,n,r=!1){t.v!==Re&&!this.previous.has(t)&&this.previous.set(t,t.v),t.f&jn||(this.current.set(t,[n,r]),ot?.set(t,n)),this.is_fork||(t.v=n)}activate(){me=this}deactivate(){me=null,ot=null}flush(){try{bi=!0,me=this,this.#p()}finally{Ul=0,zi=null,gr=null,Js=null,bi=!1,me=null,ot=null,Wn.clear()}}discard(){for(const t of this.#t)t(this);this.#t.clear(),this.#n.clear(),gn.delete(this)}register_created_effect(t){this.#o.push(t)}#y(){for(const d of gn){var t=d.id<this.id,n=[];for(const[f,[h,b]]of this.current){if(d.current.has(f)){var r=d.current.get(f)[0];if(t&&h!==r)d.current.set(f,[h,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,h=>{h.f&(Qt|Rr)?d.schedule(h):d.#m([h])});d.activate();var a=new Set,o=new Map;for(var l of n)Pu(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&(mt|lt|us))&&Eo(f,c,o)&&(f.f&(Rr|Qt)?(Me(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 gn)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,ct(()=>{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??=cu()).promise}static ensure(){if(me===null){const t=me=new Ut;bi||(gn.add(me),kr||ct(()=>{me===t&&t.flush()}))}return me}apply(){{ot=null;return}}schedule(t){if(zi=t,t.b?.is_pending&&t.f&(Qn|Is|yo)&&!(t.f&En)){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var r=n.f;if(gr!==null&&n===fe&&(ye===null||!(ye.f&Ze))&&!Mi)return;if(r&(kn|en)){if(!(r&Ue))return;n.f^=Ue}}this.#a.push(n)}}function Dn(e){var t=kr;kr=!0;try{var n;for(e&&(me!==null&&!me.is_fork&&me.flush(),n=e());;){if(Gp(),me===null)return n;me.flush()}}finally{kr=t}}function im(){try{pp()}catch(e){un(e,zi)}}let yn=null;function Hl(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&(mt|lt))&&Ur(r)&&(yn=new Set,rr(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&rd(r),yn?.size>0)){Wn.clear();for(const s of yn){if(s.f&(mt|lt))continue;const a=[s];let o=s.parent;for(;o!==null;)yn.has(o)&&(yn.delete(o),a.push(o)),o=o.parent;for(let l=a.length-1;l>=0;l--){const c=a[l];c.f&(mt|lt)||rr(c)}}yn.clear()}}yn=null}}function Pu(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?Pu(s,t,n,r):a&(Rr|Qt)&&!(a&Je)&&Eo(s,t,r)&&(Me(s,Je),Io(s))}}function Du(e,t){if(e.reactions!==null)for(const n of e.reactions){const r=n.f;r&Ze?Du(n,t):r&us&&(Me(n,Je),t.add(n))}}function Eo(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(Tr.call(t,s))return!0;if(s.f&Ze&&Eo(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function Io(e){me.schedule(e)}let da=[];function om(){Dn(()=>{const e=da;da=[];for(const t of e)Pr(t)})}function lm(e){var t=gt(0),n=!0,r=void 0;return i(t),$u(()=>{if(n){var s=ot;try{ot=null,r=e()}finally{ot=s}return}da.length===0&&ct(om),da.push(t)}),n=!1,r}function Mu(e,t){if(!(e.f&en&&e.f&Ue)){e.f&Je?t.d.push(e):e.f&tn&&t.m.push(e),Me(e,Ue);for(var n=e.first;n!==null;)Mu(n,t),n=n.next}}function Lu(e){Me(e,Ue);for(var t=e.first;t!==null;)Lu(t),t=t.next}function cm(e){pu(),me!==null&&bp();var t=Ut.ensure();t.is_fork=!0,ot=new Map;var n=!1,r=t.settled();return Dn(e),{commit:async()=>{if(n){await r;return}gn.has(t)||mp(),n=!0,t.is_fork=!1;for(var[s,[a]]of t.current)s.v=a,s.wv=va();t.activate(),t.run_fork_commit_callbacks(),t.deactivate(),Dn(()=>{var o=new Set;for(var l of t.current.keys())Du(l,o);_m(o),Fu()}),t.flush(),await r},discard:()=>{for(var s of t.current.keys())s.wv=va();!n&&gn.has(t)&&t.discard()}}}function um(e){let t=0,n=gt(0),r;return()=>{Ds()&&(i(n),Ve(()=>(t===0&&(r=we(()=>e(()=>on(n)))),t+=1,()=>{ct(()=>{t-=1,t===0&&(r?.(),r=void 0,on(n))})})))}}var dm=nn|On;function zu(e,t,n,r){new fm(e,t,n,r)}class fm{parent;is_pending=!1;transform_error;#e;#t=re?de: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=um(()=>(this.#d=gt(this.#u),()=>{this.#d=null}));constructor(t,n,r,s){this.#e=t,this.#n=n,this.#s=a=>{var o=fe;o.b=this,o.f|=ji,r(a)},this.parent=fe.b,this.transform_error=s??this.parent?.transform_error??(a=>a),this.#r=mn(()=>{if(re){const a=this.#t;ut();const o=a.data===Pa;if(a.data.startsWith(Nl)){const c=JSON.parse(a.data.slice(Nl.length));this.#b(c)}else o?this.#m():this.#p()}else this.#y()},dm),re&&(this.#e=de)}#p(){try{this.#i=at(()=>this.#s(this.#e))}catch(t){this.error(t)}}#b(t){const n=this.#n.failed;n&&(this.#o=at(()=>{n(this.#e,()=>t,()=>()=>{})}))}#m(){const t=this.#n.pending;t&&(this.is_pending=!0,this.#a=at(()=>t(this.#e)),ct(()=>{var n=this.#l=document.createDocumentFragment(),r=$e();n.append(r),this.#i=this.#w(()=>at(()=>this.#s(r))),this.#c===0&&(this.#e.before(n),this.#l=null,Yn(this.#a,()=>{this.#a=null}),this.#_(me))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#c=0,this.#u=0,this.#i=at(()=>{this.#s(this.#e)}),this.#c>0){var t=this.#l=document.createDocumentFragment();Lo(this.#i,t);const n=this.#n.pending;this.#a=at(()=>n(this.#e))}else this.#_(me)}catch(n){this.error(n)}}#_(t){this.is_pending=!1,t.transfer_effects(this.#h,this.#v)}defer_effect(t){Cu(t,this.#h,this.#v)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#n.pending}#w(t){var n=fe,r=ye,s=Ee;rt(this.#r),yt(this.#r),jr(this.#r.ctx);try{return Ut.ensure(),t()}catch(a){return Iu(a),null}finally{rt(n),yt(r),jr(s)}}#k(t,n){if(!this.has_pending_snippet()){this.parent&&this.parent.#k(t,n);return}this.#c+=t,this.#c===0&&(this.#_(n),this.#a&&Yn(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,ct(()=>{this.#f=!1,this.#d&&fn(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&&(We(this.#i),this.#i=null),this.#a&&(We(this.#a),this.#a=null),this.#o&&(We(this.#o),this.#o=null),re&&(Ie(this.#t),qt(),Ie(er()));var n=this.#n.onerror;let r=this.#n.failed;var s=!1,a=!1;const o=()=>{if(s){Mp();return}s=!0,a&&Sp(),this.#o!==null&&Yn(this.#o,()=>{this.#o=null}),this.#w(()=>{this.#y()})},l=c=>{try{a=!0,n?.(c,o),a=!1}catch(u){un(u,this.#r&&this.#r.parent)}r&&(this.#o=this.#w(()=>{try{return at(()=>{var u=fe;u.b=this,u.f|=ji,r(this.#e,()=>c,()=>o)})}catch(u){return un(u,this.#r.parent),null}}))};ct(()=>{var c;try{c=this.transform_error(t)}catch(u){un(u,this.#r&&this.#r.parent);return}c!==null&&typeof c=="object"&&typeof c.then=="function"?c.then(l,u=>un(u,this.#r&&this.#r.parent)):l(c)})}}function vm(){fe===null&&hp();var e=fe.b;return e===null?0:e.get_effect_pending()}function Ts(e,t,n,r){const s=js;var a=e.filter(h=>!h.settled);if(n.length===0&&a.length===0){r(t.map(s));return}var o=fe,l=qa(),c=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(h=>h.promise)):null;function u(h){l();try{r(h)}catch(b){o.f&mt||un(b,o)}nr()}if(n.length===0){c.then(()=>u(t.map(s)));return}var d=Rs();function f(){Promise.all(n.map(h=>Nu(h))).then(h=>u([...t.map(s),...h])).catch(h=>un(h,o)).finally(()=>d())}c?c.then(()=>{l(),f(),nr()}):f()}function Ou(e,t){Ts(e,[],[],t)}function qa(){var e=fe,t=ye,n=Ee,r=me;return function(a=!0){rt(e),yt(t),jr(n),a&&!(e.f&mt)&&(r?.activate(),r?.apply())}}async function hm(e){var t=qa(),n=await e;return()=>(t(),n)}async function Oi(e){var t=ss;queueMicrotask(()=>{ss===t&&Zs(null)});var n=await e;return()=>(Zs(t),queueMicrotask(()=>{ss===t&&Zs(null)}),n)}async function*pm(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 Oi(t.next()))();if(s){n=!0;break}var r=ss;yield a,Zs(r)}}finally{if(!n&&t.return!==void 0)return(await Oi(t.return()))().value}}function nr(e=!0){rt(null),yt(null),jr(null),e&&me?.deactivate()}function mm(e){const t=qa(),n=Rs();var r=fe,s=null;const a=u=>{s={error:u},Bi(r)||un(u,r)};var o=Promise.resolve(e[0]()).catch(a),l={promise:o,settled:!1},c=[l];o.finally(()=>{l.settled=!0,nr()});for(const u of e.slice(1)){o=o.then(()=>{if(t(),s)throw s.error;if(Bi(r))throw an;return u()}).catch(a);const d={promise:o,settled:!1};c.push(d),o.finally(()=>{d.settled=!0,nr()})}return o.then(()=>Promise.resolve()).finally(()=>n()),c}function bm(e){return Promise.all(e.map(t=>t.promise))}function Rs(){var e=fe,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 ss=null;function Zs(e){ss=e}function js(e){var t=Ze|Je;return fe!==null&&(fe.f|=On),{ctx:Ee,deps:null,effects:null,equals:gu,f:t,fn:e,reactions:null,rv:0,v:Re,wv:0,parent:fe,ac:null}}function Nu(e,t,n){let r=fe;r===null&&op();var s=void 0,a=gt(Re),o=!ye,l=new Map;return jm(()=>{var c=fe,u=cu();s=u.promise;try{Promise.resolve(e()).then(u.resolve,u.reject).finally(nr)}catch(b){u.reject(b),nr()}var d=me;if(o){if(c.f&En)var f=Rs();if(r.b.is_rendered())l.get(d)?.reject(an),l.delete(d);else{for(const b of l.values())b.reject(an);l.clear()}l.set(d,u)}const h=(b,E=void 0)=>{if(f){var y=E===an;f(y)}if(!(E===an||c.f&mt)){if(d.activate(),E)a.f|=jn,fn(a,E);else{a.f&jn&&(a.f^=jn),fn(a,b);for(const[g,x]of l){if(l.delete(g),g===d)break;x.reject(an)}}d.deactivate()}};u.promise.then(h,b=>h(null,b||"unknown"))}),Ct(()=>{for(const c of l.values())c.reject(an)}),new Promise(c=>{function u(d){function f(){d===s?c(a):u(s)}d.then(f,f)}u(s)})}function K(e){const t=js(e);return id(t),t}function Ao(e){const t=js(e);return t.equals=_u,t}function gm(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)We(t[n])}}function Co(e){var t,n=fe,r=e.parent;if(!xn&&r!==null&&r.f&(mt|lt))return Cp(),e.v;rt(r);try{e.f&=~$n,gm(e),t=cd(e)}finally{rt(n)}return t}function qu(e){var t=Co(e);if(!e.equals(t)&&(e.wv=va(),(!me?.is_fork||e.deps===null)&&(me!==null?me.capture(e,t,!0):e.v=t,e.deps===null))){Me(e,Ue);return}xn||(ot!==null?(Ds()||me?.is_fork)&&ot.set(e,t):So(e))}function ym(e){if(e.effects!==null)for(const t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(an),t.teardown=St,t.ac=null,ds(t,0),Do(t))}function Bu(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&rr(t)}let fa=new Set;const Wn=new Map;function _m(e){fa=e}let Vu=!1;function gt(e,t){var n={f:0,v:e,reactions:null,equals:gu,rv:0,wv:0};return n}function F(e,t){const n=gt(e);return id(n),n}function Ba(e,t=!1,n=!0){const r=gt(e);return t||(r.equals=_u),r}function wm(e,t){return S(e,we(()=>i(e))),t}function S(e,t,n=!1){ye!==null&&(!Jt||ye.f&us)&&Su()&&ye.f&(Ze|Qt|Rr|us)&&(Bt===null||!Tr.call(Bt,e))&&xp();let r=n?oe(t):t;return fn(e,r,Js)}function fn(e,t,n=null){if(!e.equals(t)){Wn.set(e,xn?t:e.v);var r=Ut.ensure();if(r.capture(e,t),e.f&Ze){const s=e;e.f&Je&&Co(s),ot===null&&So(s)}e.wv=va(),Uu(e,Je,n),fe!==null&&fe.f&Ue&&!(fe.f&(en|kn))&&(Lt===null?zm([e]):Lt.push(e)),!r.is_fork&&fa.size>0&&!Vu&&Fu()}return t}function Fu(){Vu=!1;for(const e of fa)e.f&Ue&&Me(e,tn),Ur(e)&&rr(e);fa.clear()}function Pr(e,t=1){var n=i(e),r=t===1?n++:n--;return S(e,n),r}function km(e,t=1){var n=i(e);return S(e,t===1?++n:--n)}function on(e){S(e,e.v+1)}function Uu(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&&Me(o,t),l&Ze){var u=o;ot?.delete(u),l&$n||(l&Nt&&(o.f|=$n),Uu(u,tn,n))}else if(c){var d=o;l&Qt&&yn!==null&&yn.add(d),n!==null?n.push(d):Io(d)}}}function oe(e){if(typeof e!="object"||e===null||nt in e)return e;const t=La(e);if(t!==lu&&t!==Gh)return e;var n=new Map,r=qr(e),s=F(0),a=_n,o=l=>{if(_n===a)return l();var c=ye,u=_n;yt(null),Yl(a);var d=l();return yt(c),Yl(u),d};return r&&n.set("length",F(e.length)),new Proxy(e,{defineProperty(l,c,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&wp();var d=n.get(c);return d===void 0?o(()=>{var f=F(u.value);return n.set(c,f),f}):S(d,u.value,!0),!0},deleteProperty(l,c){var u=n.get(c);if(u===void 0){if(c in l){const d=o(()=>F(Re));n.set(c,d),on(s)}}else S(u,Re),on(s);return!0},get(l,c,u){if(c===nt)return e;var d=n.get(c),f=c in l;if(d===void 0&&(!f||Zt(l,c)?.writable)&&(d=o(()=>{var b=oe(f?l[c]:Re),E=F(b);return E}),n.set(c,d)),d!==void 0){var h=i(d);return h===Re?void 0:h}return Reflect.get(l,c,u)},getOwnPropertyDescriptor(l,c){var u=Reflect.getOwnPropertyDescriptor(l,c);if(u&&"value"in u){var d=n.get(c);d&&(u.value=i(d))}else if(u===void 0){var f=n.get(c),h=f?.v;if(f!==void 0&&h!==Re)return{enumerable:!0,configurable:!0,value:h,writable:!0}}return u},has(l,c){if(c===nt)return!0;var u=n.get(c),d=u!==void 0&&u.v!==Re||Reflect.has(l,c);if(u!==void 0||fe!==null&&(!d||Zt(l,c)?.writable)){u===void 0&&(u=o(()=>{var h=d?oe(l[c]):Re,b=F(h);return b}),n.set(c,u));var f=i(u);if(f===Re)return!1}return d},set(l,c,u,d){var f=n.get(c),h=c in l;if(r&&c==="length")for(var b=u;b<f.v;b+=1){var E=n.get(b+"");E!==void 0?S(E,Re):b in l&&(E=o(()=>F(Re)),n.set(b+"",E))}if(f===void 0)(!h||Zt(l,c)?.writable)&&(f=o(()=>F(void 0)),S(f,oe(u)),n.set(c,f));else{h=f.v!==Re;var y=o(()=>oe(u));S(f,y)}var g=Reflect.getOwnPropertyDescriptor(l,c);if(g?.set&&g.set.call(d,u),!h){if(r&&typeof c=="string"){var x=n.get("length"),_=Number(c);Number.isInteger(_)&&_>=x.v&&S(x,_+1)}on(s)}return!0},ownKeys(l){i(s);var c=Reflect.ownKeys(l).filter(f=>{var h=n.get(f);return h===void 0||h.v!==Re});for(var[u,d]of n)d.v!==Re&&!(u in l)&&c.push(u);return c},setPrototypeOf(){kp()}})}function Dr(e){try{if(e!==null&&typeof e=="object"&&nt in e)return e[nt]}catch{}return e}function Hu(e,t){return Object.is(Dr(e),Dr(t))}function xm(e,t,n=!0){try{e===t!=(Dr(e)===Dr(t))&&bu(n?"===":"!==")}catch{}return e===t===n}function Sm(e,t,n=!0){return e==t!=(Dr(e)==Dr(t))&&bu(),e==t===n}var Ni,Ku,To,Wu,Yu;function qi(){if(Ni===void 0){Ni=window,Ku=document,To=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Wu=Zt(t,"firstChild").get,Yu=Zt(t,"nextSibling").get,ql(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),ql(n)&&(n.__t=void 0)}}function $e(e=""){return document.createTextNode(e)}function je(e){return Wu.call(e)}function It(e){return Yu.call(e)}function p(e,t){if(!re)return je(e);var n=je(de);if(n===null)n=de.appendChild($e());else if(t&&n.nodeType!==As){var r=$e();return n?.before(r),Ie(r),r}return t&&Va(n),Ie(n),n}function ve(e,t=!1){if(!re){var n=je(e);return n instanceof Comment&&n.data===""?It(n):n}if(t){if(de?.nodeType!==As){var r=$e();return de?.before(r),Ie(r),r}Va(de)}return de}function w(e,t=1,n=!1){let r=re?de:e;for(var s;t--;)s=r,r=It(r);if(!re)return r;if(n){if(r?.nodeType!==As){var a=$e();return r===null?s?.after(a):r.before(a),Ie(a),a}Va(r)}return Ie(r),r}function Ro(e){e.textContent=""}function Gu(){return!1}function Nn(e,t,n){let r=n?{is:n}:void 0;return document.createElementNS(t??su,e,r)}function Em(){return document.createDocumentFragment()}function Xu(e=""){return document.createComment(e)}function Im(e,t,n=""){if(t.startsWith("xlink:")){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n);return}return e.setAttribute(t,n)}function Va(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===As;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function Vr(e,t){if(t){const n=document.body;e.autofocus=!0,ct(()=>{document.activeElement===n&&e.focus()})}}function jo(e){re&&je(e)!==null&&Ro(e)}let Kl=!1;function Ju(){Kl||(Kl=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function _t(e,t,n,r=!0){r&&n();for(var s of t)e.addEventListener(s,n);Ct(()=>{for(var a of t)e.removeEventListener(a,n)})}function qn(e){var t=ye,n=fe;yt(null),rt(null);try{return e()}finally{yt(t),rt(n)}}function Ps(e,t,n,r=n){e.addEventListener(t,()=>qn(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),Ju()}function Po(e){fe===null&&(ye===null&&vp(),fp()),xn&&dp()}function Am(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function wt(e,t){var n=fe;n!==null&&n.f<&&(e|=lt);var r={ctx:Ee,deps:null,nodes:null,f:e|Je|Nt,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&Qn)gr!==null?gr.push(r):Ut.ensure().schedule(r);else if(t!==null){try{rr(r)}catch(o){throw We(r),o}s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&!(s.f&On)&&(s=s.first,e&Qt&&e&nn&&s!==null&&(s.f|=nn))}if(s!==null&&(s.parent=n,n!==null&&Am(s,n),ye!==null&&ye.f&Ze&&!(e&kn))){var a=ye;(a.effects??=[]).push(s)}return r}function Ds(){return ye!==null&&!Jt}function Ct(e){const t=wt(Is,null);return Me(t,Ue),t.teardown=e,t}function xe(e){Po();var t=fe.f,n=!ye&&(t&en)!==0&&(t&En)===0;if(n){var r=Ee;(r.e??=[]).push(e)}else return Zu(e)}function Zu(e){return wt(Qn|fu,e)}function Qu(e){return Po(),wt(Is|fu,e)}function $u(e){return wt(us,e)}function Fr(e){Ut.ensure();const t=wt(kn|On,e);return()=>{We(t)}}function Cm(e){Ut.ensure();const t=wt(kn|On,e);return(n={})=>new Promise(r=>{n.outro?Yn(t,()=>{We(t),r(void 0)}):(We(t),r(void 0))})}function At(e){return wt(Qn,e)}function Tm(e,t){var n=Ee,r={effect:null,ran:!1,deps:e};n.l.$.push(r),r.effect=Ve(()=>{if(e(),!r.ran){r.ran=!0;var s=fe;try{rt(s.parent),we(t)}finally{rt(s)}}})}function Rm(){var e=Ee;Ve(()=>{for(var t of e.l.$){t.deps();var n=t.effect;n.f&Ue&&n.deps!==null&&Me(n,tn),Ur(n)&&rr(n),t.ran=!1}})}function jm(e){return wt(Rr|On,e)}function Ve(e,t=0){return wt(Is|t,e)}function q(e,t=[],n=[],r=[]){Ts(r,t,n,s=>{wt(Is,()=>e(...s.map(i)))})}function Pm(e,t=[],n=[],r=[]){if(n.length>0||r.length>0)var s=Rs();Ts(r,t,n,a=>{wt(Qn,()=>e(...a.map(i))),s&&s()})}function mn(e,t=0){var n=wt(Qt|t,e);return n}function ed(e,t=0){var n=wt(yo|t,e);return n}function at(e){return wt(en|On,e)}function td(e){var t=e.teardown;if(t!==null){const n=xn,r=ye;Wl(!0),yt(null);try{t.call(null)}finally{Wl(n),yt(r)}}}function Do(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&qn(()=>{s.abort(an)});var r=n.next;n.f&kn?n.parent=null:We(n,t),n=r}}function Dm(e){for(var t=e.first;t!==null;){var n=t.next;t.f&en||We(t),t=n}}function We(e,t=!0){var n=!1;(t||e.f&du)&&e.nodes!==null&&e.nodes.end!==null&&(nd(e.nodes.start,e.nodes.end),n=!0),Me(e,Pi),Do(e,t&&!n),ds(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const a of r)a.stop();td(e),e.f^=Pi,e.f|=mt;var s=e.parent;s!==null&&s.first!==null&&rd(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function nd(e,t){for(;e!==null;){var n=e===t?null:It(e);e.remove(),e=n}}function rd(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 Yn(e,t,n=!0){var r=[];sd(e,r,!0);var s=()=>{n&&We(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||s();for(var l of r)l.out(o)}else s()}function sd(e,t,n){if(!(e.f<)){e.f^=lt;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&kn)){var o=(s.f&nn)!==0||(s.f&en)!==0&&(e.f&Qt)!==0;sd(s,t,o?n:!1)}s=a}}}function Mo(e){ad(e,!0)}function ad(e,t){if(e.f<){e.f^=lt,e.f&Ue||(Me(e,Je),Ut.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&nn)!==0||(n.f&en)!==0;ad(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 Bi(e=fe){return(e.f&mt)!==0}function Lo(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:It(n);t.append(n),n=s}}let pr=null;function Mm(e){var t=pr;try{if(pr=new Set,we(e),t!==null)for(var n of pr)t.add(n);return pr}finally{pr=t}}function Lm(e){for(var t of Mm(e))fn(t,t.v)}let Qs=!1,xn=!1;function Wl(e){xn=e}let ye=null,Jt=!1;function yt(e){ye=e}let fe=null;function rt(e){fe=e}let Bt=null;function id(e){ye!==null&&(Bt===null?Bt=[e]:Bt.push(e))}let vt=null,kt=0,Lt=null;function zm(e){Lt=e}let od=1,Un=0,_n=Un;function Yl(e){_n=e}function va(){return++od}function Ur(e){var t=e.f;if(t&Je)return!0;if(t&Ze&&(e.f&=~$n),t&tn){for(var n=e.deps,r=n.length,s=0;s<r;s++){var a=n[s];if(Ur(a)&&qu(a),a.wv>e.wv)return!0}t&Nt&&ot===null&&Me(e,Ue)}return!1}function ld(e,t,n=!0){var r=e.reactions;if(r!==null&&!(Bt!==null&&Tr.call(Bt,e)))for(var s=0;s<r.length;s++){var a=r[s];a.f&Ze?ld(a,t,!1):t===a&&(n?Me(a,Je):a.f&Ue&&Me(a,tn),Io(a))}}function cd(e){var t=vt,n=kt,r=Lt,s=ye,a=Bt,o=Ee,l=Jt,c=_n,u=e.f;vt=null,kt=0,Lt=null,ye=u&(en|kn)?null:e,Bt=null,jr(e.ctx),Jt=!1,_n=++Un,e.ac!==null&&(qn(()=>{e.ac.abort(an)}),e.ac=null);try{e.f|=Di;var d=e.fn,f=d();e.f|=En;var h=e.deps,b=me?.is_fork;if(vt!==null){var E;if(b||ds(e,kt),h!==null&&kt>0)for(h.length=kt+vt.length,E=0;E<vt.length;E++)h[kt+E]=vt[E];else e.deps=h=vt;if(Ds()&&e.f&Nt)for(E=kt;E<h.length;E++)(h[E].reactions??=[]).push(e)}else!b&&h!==null&&kt<h.length&&(ds(e,kt),h.length=kt);if(Su()&&Lt!==null&&!Jt&&h!==null&&!(e.f&(Ze|tn|Je)))for(E=0;E<Lt.length;E++)ld(Lt[E],e);if(s!==null&&s!==e){if(Un++,s.deps!==null)for(let y=0;y<n;y+=1)s.deps[y].rv=Un;if(t!==null)for(const y of t)y.rv=Un;Lt!==null&&(r===null?r=Lt:r.push(...Lt))}return e.f&jn&&(e.f^=jn),f}catch(y){return Iu(y)}finally{e.f^=Di,vt=t,kt=n,Lt=r,ye=s,Bt=a,jr(o),Jt=l,_n=c}}function Om(e,t){let n=t.reactions;if(n!==null){var r=Yh.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&&(vt===null||!Tr.call(vt,t))){var a=t;a.f&Nt&&(a.f^=Nt,a.f&=~$n),a.v!==Re&&So(a),ym(a),ds(a,0)}}function ds(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)Om(e,n[r])}function rr(e){var t=e.f;if(!(t&mt)){Me(e,Ue);var n=fe,r=Qs;fe=e,Qs=!0;try{t&(Qt|yo)?Dm(e):Do(e),td(e);var s=cd(e);e.teardown=typeof s=="function"?s:null,e.wv=od;var a;iu&&zp&&e.f&Je&&e.deps}finally{Qs=r,fe=n}}}async function Ms(){await Promise.resolve(),Dn()}function Nm(){return Ut.ensure().settled()}function i(e){var t=e.f,n=(t&Ze)!==0;if(pr?.add(e),ye!==null&&!Jt){var r=fe!==null&&(fe.f&mt)!==0;if(!r&&(Bt===null||!Tr.call(Bt,e))){var s=ye.deps;if(ye.f&Di)e.rv<Un&&(e.rv=Un,vt===null&&s!==null&&s[kt]===e?kt++:vt===null?vt=[e]:vt.push(e));else{(ye.deps??=[]).push(e);var a=e.reactions;a===null?e.reactions=[ye]:Tr.call(a,ye)||a.push(ye)}}}if(xn&&Wn.has(e))return Wn.get(e);if(n){var o=e;if(xn){var l=o.v;return(!(o.f&Ue)&&o.reactions!==null||dd(o))&&(l=Co(o)),Wn.set(o,l),l}var c=(o.f&Nt)===0&&!Jt&&ye!==null&&(Qs||(ye.f&Nt)!==0),u=(o.f&En)===0;Ur(o)&&(c&&(o.f|=Nt),qu(o)),c&&!u&&(Bu(o),ud(o))}if(ot?.has(e))return ot.get(e);if(e.f&jn)throw e.v;return e.v}function ud(e){if(e.f|=Nt,e.deps!==null)for(const t of e.deps)(t.reactions??=[]).push(e),t.f&Ze&&!(t.f&Nt)&&(Bu(t),ud(t))}function dd(e){if(e.v===Re)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(Wn.has(t)||t.f&Ze&&dd(t))return!0;return!1}function qm(e){return e&&i(e)}function we(e){var t=Jt;try{return Jt=!0,e()}finally{Jt=t}}function zo(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if(nt in e)ha(e);else if(!Array.isArray(e))for(let t in e){const n=e[t];typeof n=="object"&&n&&nt in n&&ha(n)}}}function ha(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{ha(e[r],t)}catch{}const n=La(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){const r=ou(n);for(let s in r){const a=r[s].get;if(a)try{a.call(e)}catch{}}}}}function Bm(e,t){if(pu(),re){const n=window.__svelte?.h;if(n?.has(e))return n.get(e);Rp()}return t()}const ns=Symbol("events"),fd=new Set,Vi=new Set;function Vm(e){if(!re)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 vd(e,t,n,r={}){function s(a){if(r.capture||Fi.call(t,a),!a.cancelBubble)return qn(()=>n?.call(this,a))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?ct(()=>{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=vd(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&Ct(()=>{t.removeEventListener(e,o,a)})}function H(e,t,n){(t[ns]??={})[e]=n}function le(e){for(var t=0;t<e.length;t++)fd.add(e[t]);for(var n of Vi)n(e)}let Gl=null;function Fi(e){var t=this,n=t.ownerDocument,r=e.type,s=e.composedPath?.()||[],a=s[0]||e.target;Gl=e;var o=0,l=Gl===e&&e[ns];if(l){var c=s.indexOf(l);if(c!==-1&&(t===document||t===window)){e[ns]=t;return}var u=s.indexOf(t);if(u===-1)return;c<=u&&(o=c)}if(a=s[o]||e.target,a!==t){Zn(e,"currentTarget",{configurable:!0,get(){return a||n}});var d=ye,f=fe;yt(null),rt(null);try{for(var h,b=[];a!==null;){var E=a.assignedSlot||a.parentNode||a.host||null;try{var y=a[ns]?.[r];y!=null&&(!a.disabled||e.target===a)&&y.call(a,e)}catch(g){h?b.push(g):h=g}if(e.cancelBubble||E===t||E===null)break;a=E}if(h){for(let g of b)queueMicrotask(()=>{throw g});throw h}}finally{e[ns]=t,delete e.currentTarget,yt(d),rt(f)}}}function Fm(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?.[xt];s?`${u}${s[0]}${s[1]}`:`${u}`;const d=n[0]?.eventPhase<Event.BUBBLING_PHASE?"capture":"";if(n[0]?.type+d,Tp(),c)throw c}l?.apply(t,n)}const Um=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function hd(e){return Um?.createHTML(e)??e}function Oo(e){var t=Nn("template");return t.innerHTML=hd(e.replaceAll("<!>","<!---->")),t.content}const Hm=lr?"template":"TEMPLATE",Km=lr?"script":"SCRIPT";function Ye(e,t){var n=fe;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function A(e,t){var n=(t&bo)!==0,r=(t&ru)!==0,s,a=!e.startsWith("<!>");return()=>{if(re)return Ye(de,null),de;s===void 0&&(s=Oo(a?e:"<!>"+e),n||(s=je(s)));var o=r||To?document.importNode(s,!0):s.cloneNode(!0);if(n){var l=je(o),c=o.lastChild;Ye(l,c)}else Ye(o,o);return o}}function pd(e,t,n="svg"){var r=!e.startsWith("<!>"),s=(t&bo)!==0,a=`<${n}>${r?e:"<!>"+e}</${n}>`,o;return()=>{if(re)return Ye(de,null),de;if(!o){var l=Oo(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;Ye(d,f)}else Ye(u,u);return u}}function No(e,t){return pd(e,t,"svg")}function Wm(e,t){return pd(e,t,"math")}function md(e,t){var n=Em();for(var r of e){if(typeof r=="string"){n.append($e(r));continue}if(r===void 0||r[0][0]==="/"){n.append(Xu(r?r[0].slice(3):""));continue}const[l,c,...u]=r,d=l==="svg"?Es:l==="math"?go:t;var s=Nn(l,d,c?.is);for(var a in c)Im(s,a,c[a]);if(u.length>0){var o=s.nodeName===Hm?s.content:s;o.append(md(u,s.nodeName==="foreignObject"?void 0:d))}n.append(s)}return n}function Ym(e,t){var n=(t&bo)!==0,r=(t&ru)!==0,s;return()=>{if(re)return Ye(de,null),de;if(s===void 0){const c=t&Kh?Es:t&Wh?go:void 0;s=md(e,c),n||(s=je(s))}var a=r||To?document.importNode(s,!0):s.cloneNode(!0);if(n){var o=je(a),l=a.lastChild;Ye(o,l)}else Ye(a,a);return a}}function Gm(e){return()=>Xm(e())}function Xm(e){if(re)return e;const t=e.nodeType===hu,n=e.nodeName===Km?[e]:e.querySelectorAll("script"),r=fe;for(const a of n){const o=Nn("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 $t(e=""){if(!re){var t=$e(e+"");return Ye(t,t),t}var n=de;return n.nodeType!==As?(n.before(n=$e()),Ie(n)):Va(n),Ye(n,n),n}function qe(){if(re)return Ye(de,null),de;var e=document.createDocumentFragment(),t=document.createComment(""),n=$e();return e.append(t,n),Ye(t,n),e}function k(e,t){if(re){var n=fe;(!(n.f&En)||n.nodes.end===null)&&(n.nodes.end=de),ut();return}e!==null&&e.before(t)}function Jm(){if(re&&de&&de.nodeType===In&&de.textContent?.startsWith("$")){const e=de.textContent.substring(1);return ut(),e}return(window.__svelte??={}).uid??=1,`c${window.__svelte.uid++}`}const Zm=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function Qm(e){return Zm.includes(e)||e.toLowerCase()==="!doctype"}function $m(e){return e.endsWith("capture")&&e!=="gotpointercapture"&&e!=="lostpointercapture"}const eb=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function tb(e){return eb.includes(e)}const nb={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 rb(e){return e=e.toLowerCase(),nb[e]??e}const sb=["touchstart","touchmove"];function ab(e){return sb.includes(e)}const ib=["textarea","script","style","title"];function ob(e){return ib.includes(e)}function bd(e){return e?.replace(/\//g,"/")}let pa=!0;function yr(e){pa=e}function O(e,t){var n=t==null?"":typeof t=="object"?`${t}`:t;n!==(e.__t??=e.nodeValue)&&(e.__t=n,e.nodeValue=`${n}`)}function Be(e,t){return yd(e,t)}function gd(e,t){qi(),t.intro=t.intro??!1;const n=t.target,r=re,s=de;try{for(var a=je(n);a&&(a.nodeType!==In||a.data!==ja);)a=It(a);if(!a)throw Jn;Te(!0),Ie(a);const o=yd(e,{...t,anchor:a});return Te(!1),o}catch(o){if(o instanceof Error&&o.message.split(`
|
|
6
|
+
`).some(l=>l.startsWith("https://svelte.dev/e/")))throw o;return o!==Jn&&console.warn("Failed to hydrate: ",o),t.recover===!1&&yp(),qi(),Ro(n),Te(!1),Be(e,t)}finally{Te(r),Ie(s)}}const Ws=new Map;function yd(e,{target:t,anchor:n,props:r={},events:s,context:a,intro:o=!0,transformError:l}){qi();var c=void 0,u=Cm(()=>{var d=n??t.appendChild($e());zu(d,{pending:()=>{}},b=>{se({});var E=Ee;if(a&&(E.c=a),s&&(r.$$events=s),re&&Ye(b,null),pa=o,c=e(b,r)||{},pa=!0,re&&(fe.nodes.end=de,de===null||de.nodeType!==In||de.data!==Da))throw Cs(),Jn;ae()},l);var f=new Set,h=b=>{for(var E=0;E<b.length;E++){var y=b[E];if(!f.has(y)){f.add(y);var g=ab(y);for(const m of[t,document]){var x=Ws.get(m);x===void 0&&(x=new Map,Ws.set(m,x));var _=x.get(y);_===void 0?(m.addEventListener(y,Fi,{passive:g}),x.set(y,1)):x.set(y,_+1)}}}};return h(Ma(fd)),Vi.add(h),()=>{for(var b of f)for(const g of[t,document]){var E=Ws.get(g),y=E.get(b);--y==0?(g.removeEventListener(b,Fi),E.delete(b),E.size===0&&Ws.delete(g)):E.set(b,y)}Vi.delete(h),d!==n&&d.parentNode?.removeChild(d)}});return Ui.set(c,u),c}let Ui=new WeakMap;function Xe(e,t){const n=Ui.get(e);return n?(Ui.delete(e),n(t)):Promise.resolve()}function lb(e){const t=e();t&&Qm(t)&&Op()}function cb(e){const t=e();t&&!(typeof t=="string")&&ip()}function ub(e,t){e!=null&&typeof e.subscribe!="function"&&ap()}function _d(e){return e.toString=()=>(sp(),""),e}class Hr{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)Mo(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&&(We(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();Lo(o,u),u.append($e()),this.#n.set(a,{effect:o,fragment:u})}else We(o);this.#s.delete(a),this.#t.delete(a)};this.#r||!r?(this.#s.add(a),Yn(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)||(We(s.effect),this.#n.delete(r))};ensure(t,n){var r=me,s=Gu();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:at(()=>n(o)),fragment:a})}else this.#t.set(t,at(()=>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 re&&(this.anchor=de),this.#i(r)}}function Ht(e,t,...n){var r=new Hr(e);mn(()=>{const s=t()??null;r.ensure(s,s&&(a=>s(a,...n)))},nn)}function db(e,t){const n=(r,...s)=>{var a=wo;Fl(e);try{return t(r,...s)}finally{Fl(a)}};return _d(n),n}function fb(e){return(t,...n)=>{var r=e(...n),s;if(re)s=de,ut();else{var a=r.render().trim(),o=Oo(a);s=je(o),t.before(s)}const l=r.setup?.(s);Ye(s,s),typeof l=="function"&&Ct(l)}}function vb(){return ye===null&&gp(),(ye.ac??=new AbortController).signal}function qo(e){Ee===null&&Br(),xe(()=>{const t=we(e);if(typeof t=="function")return t})}function Bo(e){Ee===null&&Br(),qo(()=>()=>we(e))}function hb(e,t,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(e,{detail:t,bubbles:n,cancelable:r})}function pb(){const e=Ee;return e===null&&Br(),(t,n,r)=>{const s=e.s.$$events?.[t];if(s){const a=qr(s)?s.slice():[s],o=hb(t,n,r);for(const l of a)l.call(e.x,o);return!o.defaultPrevented}return!0}}function mb(e){Ee===null&&Br(),Ee.l===null&&mu(),wd(Ee).b.push(e)}function bb(e){Ee===null&&Br(),Ee.l===null&&mu(),wd(Ee).a.push(e)}function wd(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}const kd=Object.freeze(Object.defineProperty({__proto__:null,afterUpdate:bb,beforeUpdate:mb,createContext:Kp,createEventDispatcher:pb,createRawSnippet:fb,flushSync:Dn,fork:cm,getAbortSignal:vb,getAllContexts:Wp,getContext:ko,hasContext:xu,hydratable:Bm,hydrate:gd,mount:Be,onDestroy:Bo,onMount:qo,setContext:xo,settled:Nm,tick:Ms,unmount:Xe,untrack:we},Symbol.toStringTag,{value:"Module"}));function gb(){return Symbol(au)}function xd(e,t,n,r){return e!==t&&typeof t=="object"&&nt in t&&Ep(n,bd(r)),e}function yb(e,t,n,r,s){return xd(n==="="?e[t]=r:n==="&&="?e[t]&&=r():n==="||="?e[t]||=r():n==="??="?e[t]??=r():null,we(()=>e[t]),t,s)}async function _b(e,t,n,r,s){return xd(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 Xl=new Map;function wb(e){var t=Xl.get(e);if(t){for(const n of t)n.remove();Xl.delete(e)}}function kb(e,t,n){return(...r)=>{const s=e(...r);var a=re?s:s.nodeType===hu?s.firstChild:s;return Sd(a,t,n),s}}function xb(e,t,n){e.__svelte_meta={parent:Xs,loc:{file:t,line:n[0],column:n[1]}},n[2]&&Sd(e.firstChild,t,n[2])}function Sd(e,t,n){for(var r=0,s=0;e&&r<n.length;){if(re&&e.nodeType===In){var a=e;a.data[0]===ja?s+=1:a.data[0]===Da&&(s-=1)}s===0&&e.nodeType===vu&&xb(e,t,n[r++]),e=e.nextSibling}}function Sb(e){const t=gt(e);function n(r,s){let a={},o={},l,c=!1,u=r;return mn(()=>{if(a!==(a=i(t))){if(l){for(var d in o)delete o[d];We(l)}l=at(()=>{u=u[tp]??u,c&&yr(!1);var f=new.target?new a(u,s):a(u,s);f&&Object.defineProperties(o,Object.getOwnPropertyDescriptors(f)),c&&yr(!0)}),fe.nodes=l.nodes}},nn),c=!0,re&&(u=de),o}return n[xt]=e[xt],n[vr]={fn:e,current:t,update:r=>{S(n[vr].current,r[vr].fn),r[vr].current=n[vr].current}},n}function Eb(e){const t=Ee?.function,n=Ee?.p?.function;return{mutation:(r,s,a,o,l)=>{const c=s[0];if(Jl(e,c)||!n)return a;let u=e;for(let f=0;f<s.length-1;f++)if(u=u[s[f]],!u?.[nt])return a;const d=bd(`${t[xt]}:${o}:${l}`);return Pp(c,d,r,n[xt]),a},binding:(r,s,a)=>{!Jl(e,r)&&n&&a()?.[nt]&&jp(t[xt],r,s[xt],n[xt])}}}function Jl(e,t){const n=nt in e||za in e;return!!Zt(e,t)?.set||n&&t in e||!(t in e)}function Ib(e){e&&cp(e[xt]??"a component",e.name)}function Ab(){const e=Ee?.function;function t(n){lp(n,e[xt])}return{$destroy:()=>t("$destroy()"),$on:()=>t("$on(...)"),$set:()=>t("$set(...)")}}function Cb(e,t,n=!1){Po();let r=!0,s=Re;$u(()=>{try{var a=e()}catch(l){s=l;return}var o=tr(a,!0,!0);we(()=>{if(n){if(t(...o),!r){const l=Fp("$inspect(...)");l&&(console.groupCollapsed("stack trace"),console.log(l),console.groupEnd())}}else t(r?"init":"update",...o)}),r=!1}),Ve(()=>{try{e()}catch{}s!==Re&&(console.error(s),s=Re)})}function Tb(e,t=[],n=[],r){var s=re,a=null;if(s&&(ut(),a=er(!1)),n.length===0&&t.every(c=>c.settled)){r(e),s&&Ie(a);return}const o=Rs();if(s){var l=de;Ie(a)}Ts(t,[],n,c=>{s&&(Te(!0),Ie(l));try{for(const u of c)i(u);r(e,...c)}finally{s&&Te(!1),o()}})}function Rb(e,...t){(typeof e!="object"||!(e instanceof Node))&&Vl();for(let n of t)typeof n!="function"&&Vl()}const Zl=0,Ql=1,jb=2;function Pb(e,t,n,r,s){re&&ut();var a=Re,o=gt(a),l=gt(a),c=new Hr(e);mn(()=>{var u=me;u.deactivate();var d=t();u.activate();var f=!1;let h=re&&Bl(d)===(e.data===Pa);if(h&&(Ie(er()),Te(!1)),Bl(d)){var b=qa(),E=!1;const y=g=>{if(!f){E=!0,b(!1),Ut.ensure(),re&&Te(!1);try{g()}finally{nr(!1),kr||Dn()}}};d.then(g=>{y(()=>{fn(o,g),c.ensure(Ql,r&&(x=>r(x,o)))})},g=>{y(()=>{if(fn(l,g),c.ensure(jb,s&&(x=>s(x,l))),!s)throw l.v})}),re?c.ensure(Zl,n):ct(()=>{E||y(()=>{c.ensure(Zl,n)})})}else fn(o,d),c.ensure(Ql,r&&(y=>r(y,o)));return h&&Te(!0),()=>{f=!0}})}function W(e,t,n=!1){var r;re&&(r=de,ut());var s=new Hr(e),a=n?nn:0;function o(l,c){if(re){var u=_o(r);if(l!==parseInt(u.substring(1))){var d=er();Ie(d),s.anchor=d,Te(!1),s.ensure(l,c),Te(!0);return}}s.ensure(l,c)}mn(()=>{var l=!1;t((c,u=0)=>{l=!0,o(u,c)}),l||o(-1,null)},a)}const Db=Symbol("NaN");function Mb(e,t,n){re&&ut();var r=new Hr(e);mn(()=>{var s=t();s!==s&&(s=Db),r.ensure(s,n)})}function Lb(e,t){re&&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 dt(e,t){return t}function zb(e,t,n){for(var r=[],s=t.length,a,o=t.length,l=0;l<s;l++){let f=t[l];Yn(f,()=>{if(a){if(a.pending.delete(f),a.done.add(f),a.pending.size===0){var h=e.outrogroups;Hi(e,Ma(a.done)),h.delete(a),h.size===0&&(e.outrogroups=null)}}else o-=1},!1)}if(o===0){var c=r.length===0&&n!==null;if(c){var u=n,d=u.parentNode;Ro(d),d.append(u),e.items.clear()}Hi(e,t,!c)}else a={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(a)}function Hi(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|=cn;const o=document.createDocumentFragment();Lo(a,o)}else We(t[s],n)}}var $l;function he(e,t,n,r,s,a=null){var o=e,l=new Map,c=(t&tu)!==0;if(c){var u=e;o=re?Ie(je(u)):u.appendChild($e())}re&&ut();var d=null,f=Ao(()=>{var m=n();return qr(m)?m:m==null?[]:Ma(m)}),h,b=new Map,E=!0;function y(m){_.effect.f&mt||(_.pending.delete(m),_.fallback=d,Ob(_,h,o,t,r),d!==null&&(h.length===0?d.f&cn?(d.f^=cn,rs(d,null,o)):Mo(d):Yn(d,()=>{d=null})))}function g(m){_.pending.delete(m)}var x=mn(()=>{h=i(f);var m=h.length;let I=!1;if(re){var R=_o(o)===Pa;R!==(m===0)&&(o=er(),Ie(o),Te(!1),I=!0)}for(var T=new Set,D=me,L=Gu(),j=0;j<m;j+=1){re&&de.nodeType===In&&de.data===Da&&(o=de,I=!0,Te(!1));var M=h[j],C=r(M,j),P=E?null:l.get(C);P?(P.v&&fn(P.v,M),P.i&&fn(P.i,j),L&&D.unskip_effect(P.e)):(P=Nb(l,E?o:$l??=$e(),M,C,j,s,t,n),E||(P.e.f|=cn),l.set(C,P)),T.add(C)}if(m===0&&a&&!d&&(E?d=at(()=>a(o)):(d=at(()=>a($l??=$e())),d.f|=cn)),m>T.size&&up(),re&&m>0&&Ie(er()),!E)if(b.set(D,T),L){for(const[N,z]of l)T.has(N)||D.skip_effect(z.e);D.oncommit(y),D.ondiscard(g)}else y(D);I&&Te(!0),i(f)}),_={effect:x,items:l,pending:b,outrogroups:null,fallback:d};E=!1,re&&(o=de)}function Qr(e){for(;e!==null&&!(e.f&en);)e=e.next;return e}function Ob(e,t,n,r,s){var a=(r&Oh)!==0,o=t.length,l=e.items,c=Qr(e.effect.first),u,d=null,f,h=[],b=[],E,y,g,x;if(a)for(x=0;x<o;x+=1)E=t[x],y=s(E,x),g=l.get(y).e,g.f&cn||(g.nodes?.a?.measure(),(f??=new Set).add(g));for(x=0;x<o;x+=1){if(E=t[x],y=s(E,x),g=l.get(y).e,e.outrogroups!==null)for(const M of e.outrogroups)M.pending.delete(g),M.done.delete(g);if(g.f<&&(Mo(g),a&&(g.nodes?.a?.unfix(),(f??=new Set).delete(g))),g.f&cn)if(g.f^=cn,g===c)rs(g,null,n);else{var _=d?d.next:c;g===e.effect.last&&(e.effect.last=g.prev),g.prev&&(g.prev.next=g.next),g.next&&(g.next.prev=g.prev),Tn(e,d,g),Tn(e,g,_),rs(g,_,n),d=g,h=[],b=[],c=Qr(d.next);continue}if(g!==c){if(u!==void 0&&u.has(g)){if(h.length<b.length){var m=b[0],I;d=m.prev;var R=h[0],T=h[h.length-1];for(I=0;I<h.length;I+=1)rs(h[I],m,n);for(I=0;I<b.length;I+=1)u.delete(b[I]);Tn(e,R.prev,T.next),Tn(e,d,R),Tn(e,T,m),c=m,d=T,x-=1,h=[],b=[]}else u.delete(g),rs(g,c,n),Tn(e,g.prev,g.next),Tn(e,g,d===null?e.effect.first:d.next),Tn(e,d,g),d=g;continue}for(h=[],b=[];c!==null&&c!==g;)(u??=new Set).add(c),b.push(c),c=Qr(c.next);if(c===null)continue}g.f&cn||h.push(g),d=g,c=Qr(g.next)}if(e.outrogroups!==null){for(const M of e.outrogroups)M.pending.size===0&&(Hi(e,Ma(M.done)),e.outrogroups?.delete(M));e.outrogroups.size===0&&(e.outrogroups=null)}if(c!==null||u!==void 0){var D=[];if(u!==void 0)for(g of u)g.f<||D.push(g);for(;c!==null;)!(c.f<)&&c!==e.fallback&&D.push(c),c=Qr(c.next);var L=D.length;if(L>0){var j=r&tu&&o===0?n:null;if(a){for(x=0;x<L;x+=1)D[x].nodes?.a?.measure();for(x=0;x<L;x+=1)D[x].nodes?.a?.fix()}zb(e,D,j)}}a&&ct(()=>{if(f!==void 0)for(g of f)g.nodes?.a?.apply()})}function Nb(e,t,n,r,s,a,o,l){var c=o&Lh?o&Nh?gt(n):Ba(n,!1,!1):null,u=o&zh?gt(s):null;return{v:c,i:u,e:at(()=>(a(t,c??n,u??s,l),()=>{e.delete(r)}))}}function rs(e,t,n){if(e.nodes)for(var r=e.nodes.start,s=e.nodes.end,a=t&&!(t.f&cn)?t.nodes.start:n;r!==null;){var o=It(r);if(a.before(r),r===s)return;r=o}}function Tn(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function qb(e,t,n=!1,r=!1,s=!1,a=!1){var o=e,l="";if(n){var c=e;re&&(o=Ie(je(c)))}q(()=>{var u=fe;if(l===(l=t()??"")){re&&ut();return}if(n&&!re){u.nodes=null,c.innerHTML=l,l!==""&&Ye(je(c),c.lastChild);return}if(u.nodes!==null&&(nd(u.nodes.start,u.nodes.end),u.nodes=null),l!==""){if(re){de.data;for(var d=ut(),f=d;d!==null&&(d.nodeType!==In||d.data!=="");)f=d,d=It(d);if(d===null)throw Cs(),Jn;Ye(de,f),o=Ie(d);return}var h=r?Es:s?go:void 0,b=Nn(r?"svg":s?"math":"template",h);b.innerHTML=l;var E=r||s?b:b.content;if(Ye(je(E),E.lastChild),r||s)for(;je(E);)o.before(je(E));else o.before(E)}})}function Bb(e,t,n,r,s){re&&ut();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 Vb(e){const t={};e.children&&(t.default=!0);for(const n in e.$$slots)t[n]=!0;return t}function Ls(e,t,n){var r;re&&(r=de,ut());var s=new Hr(e);mn(()=>{var a=t()??null;if(re){var o=_o(r),l=o===ja,c=a!==null;if(l!==c){var u=er();Ie(u),s.anchor=u,Te(!1),s.ensure(a,a&&(d=>n(d,a))),Te(!0);return}}s.ensure(a,a&&(d=>n(d,a)))},nn)}const Fb=()=>performance.now(),ln={tick:e=>requestAnimationFrame(e),now:()=>Fb(),tasks:new Set};function Ed(){const e=ln.now();ln.tasks.forEach(t=>{t.c(e)||(ln.tasks.delete(t),t.f())}),ln.tasks.size!==0&&ln.tick(Ed)}function Ub(e){let t;return ln.tasks.size===0&&ln.tick(Ed),{promise:new Promise(n=>{ln.tasks.add(t={c:e,f:n})}),abort(){ln.tasks.delete(t)}}}function ma(e,t){qn(()=>{e.dispatchEvent(new CustomEvent(t))})}function Hb(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 ec(e){const t={},n=e.split(";");for(const r of n){const[s,a]=r.split(":");if(!s||a===void 0)break;const o=Hb(s.trim());t[o]=a.trim()}return t}const Kb=e=>e;let Id=null;function tc(e){Id=e}function Wb(e,t,n){var r=Id??fe,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=ba(this.element,u,void 0,1,()=>{l?.abort(),l=void 0})}},fix(){if(!e.getAnimations().length){var{position:u,width:d,height:f}=getComputedStyle(e);if(u!=="absolute"&&u!=="fixed"){var h=e.style;c={position:h.position,width:h.width,height:h.height,transform:h.transform},h.position="absolute",h.width=d,h.height=f;var b=e.getBoundingClientRect();if(a.left!==b.left||a.top!==b.top){var E=`translate(${a.left-b.left}px, ${a.top-b.top}px)`;h.transform=h.transform?`${h.transform} ${E}`:E}}}},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 Yb(e,t,n,r){var s=(e&Fh)!==0,a=(e&Uh)!==0,o=s&&a,l=(e&Hh)!==0,c=o?"both":s?"in":"out",u,d=t.inert,f=t.style.overflow,h,b;function E(){return qn(()=>u??=n()(t,r?.()??{},{direction:c}))}var y={is_global:l,in(){if(t.inert=d,!s){b?.abort(),b?.reset?.();return}a||h?.abort(),h=ba(t,E(),b,1,()=>{ma(t,"introend"),h?.abort(),h=u=void 0,t.style.overflow=f})},out(m){if(!a){m?.(),u=void 0;return}t.inert=!0,b=ba(t,E(),h,0,()=>{ma(t,"outroend"),m?.()})},stop:()=>{h?.abort(),b?.abort()}},g=fe;if((g.nodes.t??=[]).push(y),s&&pa){var x=l;if(!x){for(var _=g.parent;_&&_.f&nn;)for(;(_=_.parent)&&!(_.f&Qt););x=!_||(_.f&En)!==0}x&&At(()=>{we(()=>y.in())})}}function ba(e,t,n,r,s){var a=r===1;if(hr(t)){var o,l=!1;return ct(()=>{if(!l){var g=t({direction:a?"in":"out"});o=ba(e,g,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 ma(e,a?"introstart":"outrostart"),s(),{abort:St,deactivate:St,reset:St,t:()=>r};const{delay:c=0,css:u,tick:d,easing:f=Kb}=t;var h=[];if(a&&n===void 0&&(d&&d(0,1),u)){var b=ec(u(0,1));h.push(b,b)}var E=()=>1-r,y=e.animate(h,{duration:c,fill:"forwards"});return y.onfinish=()=>{y.cancel(),ma(e,a?"introstart":"outrostart");var g=n?.t()??1-r;n?.abort();var x=r-g,_=t.duration*Math.abs(x),m=[];if(_>0){var I=!1;if(u)for(var R=Math.ceil(_/16.666666666666668),T=0;T<=R;T+=1){var D=g+x*f(T/R),L=ec(u(D,1-D));m.push(L),I||=L.overflow==="hidden"}I&&(e.style.overflow="hidden"),E=()=>{var j=y.currentTime;return g+x*f(j/_)},d&&Ub(()=>{if(y.playState!=="running")return!1;var j=E();return d(j,1-j),!0})}y=e.animate(m,{duration:_,fill:"forwards"}),y.onfinish=()=>{E=()=>r,d?.(r,1-r),s()}},{abort:()=>{y&&(y.cancel(),y.effect=null,y.onfinish=St)},deactivate:()=>{s=St},reset:()=>{r===0&&d?.(1,0)},t:()=>E()}}function Gb(e,t,n,r,s,a){let o=re;re&&ut();var l=null;re&&de.nodeType===vu&&(l=de,ut());var c=re?de:e,u=fe,d=new Hr(c,!1);mn(()=>{const f=t()||null;var h=s?s():n||f==="svg"?Es:void 0;if(f===null){d.ensure(null,null),yr(!0);return}return d.ensure(f,b=>{if(f){if(l=re?l:Nn(f,h),Ye(l,l),r){re&&ob(f)&&l.append(document.createComment(""));var E=re?je(l):l.appendChild($e());re&&(E===null?Te(!1):Ie(E)),tc(u),r(l,E),tc(null)}fe.nodes.end=l,b.before(l)}re&&Ie(b)}),yr(!0),()=>{f&&yr(!1)}},nn),Ct(()=>{yr(!0)}),o&&(Te(!0),Ie(c))}function Xb(e,t){let n=null,r=re;var s;if(re){n=de;for(var a=je(document.head);a!==null&&(a.nodeType!==In||a.data!==e);)a=It(a);if(a===null)Te(!1);else{var o=It(a);a.remove(),Ie(o)}}re||(s=document.head.appendChild($e()));try{mn(()=>t(s),du|On)}finally{r&&(Te(!0),Ie(n))}}function Jb(e,t){At(()=>{var n=e.getRootNode(),r=n.host?n:n.head??n.ownerDocument.head;if(!r.querySelector("#"+t.hash)){const s=Nn("style");s.id=t.hash,s.textContent=t.code,r.appendChild(s)}})}function Ad(e,t,n){At(()=>{var r=we(()=>t(e,n?.())||{});if(n&&r?.update){var s=!1,a={};Ve(()=>{var o=n();zo(o),s&&yu(a,o)&&(a=o,r.update(o))}),s=!0}if(r?.destroy)return()=>r.destroy()})}function Vo(e,t){var n=void 0,r;ed(()=>{n!==(n=t())&&(r&&(We(r),r=null),n&&(r=at(()=>{At(()=>n(e))})))})}const Zb=/[&"<]/g;function Qb(e,t){const n=String(e??""),r=Zb;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 Cd(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t<s;t++)e[t]&&(n=Cd(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function $b(){for(var e,t,n=0,r="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=Cd(e))&&(r&&(r+=" "),r+=t);return r}const nc={translate:new Map([[!0,"yes"],[!1,"no"]])};function eg(e,t,n=!1){if(e==="hidden"&&t!=="until-found"&&(n=!0),t==null||!t&&n)return"";const r=Xh.call(nc,e)&&nc[e].get(t)||t,s=n?'=""':`="${Qb(r)}"`;return` ${e}${s}`}function Td(e){return typeof e=="object"?$b(e):e??""}const rc=[...`
|
|
7
|
+
\r\f \v\uFEFF`];function tg(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||rc.includes(r[o-1]))&&(l===r.length||rc.includes(r[l]))?r=(o===0?"":r.substring(0,o))+r.substring(l+1):o=l}}return r===""?null:r}function sc(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 gi(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function ng(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(gi)),s&&c.push(...Object.keys(s).map(gi));var u=0,d=-1;const y=e.length;for(var f=0;f<y;f++){var h=e[f];if(l?h==="/"&&e[f-1]==="*"&&(l=!1):a?a===h&&(a=!1):h==="/"&&e[f+1]==="*"?l=!0:h==='"'||h==="'"?a=h:h==="("?o++:h===")"&&o--,!l&&a===!1&&o===0){if(h===":"&&d===-1)d=f;else if(h===";"||f===y-1){if(d!==-1){var b=gi(e.substring(u,d).trim());if(!c.includes(b)){h!==";"&&f++;var E=e.substring(u,f).trim();n+=" "+E+";"}}u=f+1,d=-1}}}}return r&&(n+=sc(r)),s&&(n+=sc(s,!0)),n=n.trim(),n===""?null:n}return e==null?null:String(e)}function ue(e,t,n,r,s,a){var o=e.__className;if(re||o!==n||o===void 0){var l=tg(n,r,a);(!re||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 yi(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 He(e,t,n,r){var s=e.__style;if(re||s!==t){var a=ng(t,r);(!re||a!==e.getAttribute("style"))&&(a==null?e.removeAttribute("style"):e.style.cssText=a),e.__style=t}else r&&(Array.isArray(r)?(yi(e,n?.[0],r[0]),yi(e,n?.[1],r[1],"important")):yi(e,n,r));return r}function fs(e,t,n=!1){if(e.multiple){if(t==null)return;if(!qr(t))return Dp();for(var r of e.options)r.selected=t.includes(as(r));return}for(r of e.options){var s=as(r);if(Hu(s,t)){r.selected=!0;return}}(!n||t!==void 0)&&(e.selectedIndex=-1)}function Fo(e){var t=new MutationObserver(()=>{fs(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),Ct(()=>{t.disconnect()})}function vs(e,t,n=t){var r=new WeakSet,s=!0;Ps(e,"change",a=>{var o=a?"[selected]":":checked",l;if(e.multiple)l=[].map.call(e.querySelectorAll(o),as);else{var c=e.querySelector(o)??e.querySelector("option:not([disabled])");l=c&&as(c)}n(l),e.__value=l,me!==null&&r.add(me)}),At(()=>{var a=t();if(e===document.activeElement){var o=me;if(r.has(o))return}if(fs(e,a,s),s&&a===void 0){var l=e.querySelector(":checked");l!==null&&(a=as(l),n(a))}e.__value=a,s=!1}),Fo(e)}function as(e){return"__value"in e?e.__value:e.value}const mr=Symbol("class"),br=Symbol("style"),Rd=Symbol("is custom element"),jd=Symbol("is html"),rg=lr?"link":"LINK",sg=lr?"input":"INPUT",ag=lr?"option":"OPTION",ig=lr?"select":"SELECT",og=lr?"progress":"PROGRESS";function ge(e){if(re){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,ct(n),Ju()}}function hs(e,t){var n=Fa(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==og)||(e.value=t??"")}function Uo(e,t){var n=Fa(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function Ho(e,t){t?e.hasAttribute("selected")||e.setAttribute("selected",""):e.removeAttribute("selected")}function lg(e,t){const n=e.checked;e.defaultChecked=t,e.checked=n}function cg(e,t){const n=e.value;e.defaultValue=t,e.value=n}function ne(e,t,n,r){var s=Fa(e);re&&(s[t]=e.getAttribute(t),t==="src"||t==="srcset"||t==="href"&&e.nodeName===rg)||s[t]!==(s[t]=n)&&(t==="loading"&&(e[$h]=n),n==null?e.removeAttribute(t):typeof n!="string"&&Ko(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function ug(e,t,n){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n)}function dg(e,t,n){var r=ye,s=fe;let a=re;re&&Te(!1),yt(null),rt(null);try{t!=="style"&&(Ki.has(e.getAttribute("is")||e.nodeName)||!customElements||customElements.get(e.getAttribute("is")||e.nodeName.toLowerCase())?Ko(e).includes(t):n&&typeof n=="object")?e[t]=n:ne(e,t,n==null?n:String(n))}finally{yt(r),rt(s),a&&Te(!0)}}function fg(e,t,n,r,s=!1,a=!1){if(re&&s&&e.nodeName===sg){var o=e,l=o.type==="checkbox"?"defaultChecked":"defaultValue";l in n||ge(o)}var c=Fa(e),u=c[Rd],d=!c[jd];let f=re&&u;f&&Te(!1);var h=t||{},b=e.nodeName===ag;for(var E in t)E in n||(n[E]=null);n.class?n.class=Td(n.class):(r||n[mr])&&(n.class=null),n[br]&&(n.style??=null);var y=Ko(e);for(const T in n){let D=n[T];if(b&&T==="value"&&D==null){e.value=e.__value="",h[T]=D;continue}if(T==="class"){var g=e.namespaceURI==="http://www.w3.org/1999/xhtml";ue(e,g,D,r,t?.[mr],n[mr]),h[T]=D,h[mr]=n[mr];continue}if(T==="style"){He(e,D,t?.[br],n[br]),h[T]=D,h[br]=n[br];continue}var x=h[T];if(!(D===x&&!(D===void 0&&e.hasAttribute(T)))){h[T]=D;var _=T[0]+T[1];if(_!=="$$")if(_==="on"){const L={},j="$$"+T;let M=T.slice(2);var m=tb(M);if($m(M)&&(M=M.slice(0,-7),L.capture=!0),!m&&x){if(D!=null)continue;e.removeEventListener(M,h[j],L),h[j]=null}if(m)H(M,e,D),le([M]);else if(D!=null){let C=function(P){h[T].call(this,P)};h[j]=vd(M,e,C,L)}}else if(T==="style")ne(e,T,D);else if(T==="autofocus")Vr(e,!!D);else if(!u&&(T==="__value"||T==="value"&&D!=null))e.value=e.__value=D;else if(T==="selected"&&b)Ho(e,D);else{var I=T;d||(I=rb(I));var R=I==="defaultValue"||I==="defaultChecked";if(D==null&&!u&&!R)if(c[T]=null,I==="value"||I==="checked"){let L=e;const j=t===void 0;if(I==="value"){let M=L.defaultValue;L.removeAttribute(I),L.defaultValue=M,L.value=L.__value=j?M:null}else{let M=L.defaultChecked;L.removeAttribute(I),L.defaultChecked=M,L.checked=j?M:!1}}else e.removeAttribute(T);else R||y.includes(I)&&(u||typeof D!="string")?(e[I]=D,I in c&&(c[I]=Re)):typeof D!="function"&&ne(e,I,D)}}}return f&&Te(!0),h}function vg(e,t,n=[],r=[],s=[],a,o=!1,l=!1){Ts(s,n,r,c=>{var u=void 0,d={},f=e.nodeName===ig,h=!1;if(ed(()=>{var E=t(...c.map(i)),y=fg(e,u,E,a,o,l);h&&f&&"value"in E&&fs(e,E.value);for(let x of Object.getOwnPropertySymbols(d))E[x]||We(d[x]);for(let x of Object.getOwnPropertySymbols(E)){var g=E[x];x.description===au&&(!u||g!==u[x])&&(d[x]&&We(d[x]),d[x]=at(()=>Vo(e,()=>g))),y[x]=g}u=y}),f){var b=e;At(()=>{fs(b,u.value,!0),Fo(b)})}h=!0})}function Fa(e){return e.__attributes??={[Rd]:e.nodeName.includes("-"),[jd]:e.namespaceURI===su}}var Ki=new Map;function Ko(e){var t=e.getAttribute("is")||e.nodeName,n=Ki.get(t);if(n)return n;Ki.set(t,n=[]);for(var r,s=e,a=Element.prototype;a!==s;){r=ou(s);for(var o in r)r[o].set&&n.push(o);s=La(s)}return n}let _i=null;function Pd(){if(_i===null){var e=Nn("select");e.innerHTML=hd("<option><span>t</span></option>"),_i=e.firstChild?.firstChild?.nodeType===1}return _i}function hg(e,t){Pd()&&Vo(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 pg(e,t){var n=re;Pd()||(Te(!1),e.textContent="",e.append(Xu("")));try{t()}finally{n&&(re?v(e):(Te(!0),Ie(e)))}}function mg(e){_t(document,["focusin","focusout"],t=>{t&&t.type==="focusout"&&t.relatedTarget||e(document.activeElement)})}function Se(e,t,n=t){var r=new WeakSet;Ps(e,"input",async s=>{var a=s?e.defaultValue:e.value;if(a=ki(e)?xi(a):a,n(a),me!==null&&r.add(me),await Ms(),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))}}}),(re&&e.defaultValue!==e.value||we(t)==null&&e.value)&&(n(ki(e)?xi(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}ki(e)&&s===xi(e.value)||e.type==="date"&&!s&&!e.value||s!==e.value&&(e.value=s??"")})}const wi=new Set;function bg(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),Ps(n,"change",()=>{var u=n.__value;a&&(u=ac(o,u,n.checked)),s(u)},()=>s(a?[]:null)),Ve(()=>{var u=r();if(re&&n.defaultChecked!==n.checked){l=!0;return}a?(u=u||[],n.checked=u.includes(n.__value)):n.checked=Hu(n.__value,u)}),Ct(()=>{var u=o.indexOf(n);u!==-1&&o.splice(u,1)}),wi.has(o)||(wi.add(o),ct(()=>{o.sort((u,d)=>u.compareDocumentPosition(d)===4?-1:1),wi.delete(o)})),ct(()=>{if(l){var u;if(a)u=ac(o,u,n.checked);else{var d=o.find(f=>f.checked);u=d?.__value}s(u)}})}function is(e,t,n=t){Ps(e,"change",r=>{var s=r?e.defaultChecked:e.checked;n(s)}),(re&&e.defaultChecked!==e.checked||we(t)==null)&&n(e.checked),Ve(()=>{var r=t();e.checked=!!r})}function ac(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 ki(e){var t=e.type;return t==="number"||t==="range"}function xi(e){return e===""?null:+e}function gg(e,t,n=t){Ps(e,"change",()=>{n(e.files)}),re&&e.files&&n(e.files),Ve(()=>{e.files=t()})}function Wo(e){for(var t=[],n=0;n<e.length;n+=1)t.push({start:e.start(n),end:e.end(n)});return t}function yg(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)}),Ct(()=>{cancelAnimationFrame(r),e.removeEventListener("timeupdate",a)})}function _g(e,t){var n;_t(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=Wo(r),t(n))})}function wg(e,t){_t(e,["loadedmetadata"],()=>t(Wo(e.seekable)))}function kg(e,t){_t(e,["timeupdate"],()=>t(Wo(e.played)))}function xg(e,t){_t(e,["seeking","seeked"],()=>t(e.seeking))}function Sg(e,t){_t(e,["timeupdate","ended"],()=>t(e.ended))}function Eg(e,t){_t(e,["loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","emptied"],()=>t(e.readyState))}function Ig(e,t,n=t){At(()=>{var r=Number(t());r!==e.playbackRate&&!isNaN(r)&&(e.playbackRate=r)}),At(()=>{_t(e,["ratechange"],()=>{n(e.playbackRate)})})}function Ag(e,t,n=t){var r=t(),s=()=>{r!==e.paused&&n(r=e.paused)};_t(e,["play","pause","canplay"],s,r==null),At(()=>{(r=!!t())!==e.paused&&(r?e.pause():e.play().catch(a=>{throw n(r=!0),a}))})}function Cg(e,t,n=t){var r=()=>{n(e.volume)};t()==null&&r(),_t(e,["volumechange"],r,!1),Ve(()=>{var s=Number(t());s!==e.volume&&!isNaN(s)&&(e.volume=s)})}function Tg(e,t,n=t){var r=()=>{n(e.muted)};t()==null&&r(),_t(e,["volumechange"],r,!1),Ve(()=>{var s=!!t();e.muted!==s&&(e.muted=s)})}function Rg(e){_t(window,["online","offline"],()=>{e(navigator.onLine)})}function jg(e,t,n){var r=Zt(e,t);r&&r.set&&(e[t]=n,Ct(()=>{e[t]=null}))}class zs{#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){zs.entries.set(n.target,n);for(var r of this.#e.get(n.target)||[])r(n)}}))}}var Pg=new zs({box:"content-box"}),Dd=new zs({box:"border-box"}),Dg=new zs({box:"device-pixel-content-box"});function Mg(e,t,n){var r=t==="contentRect"||t==="contentBoxSize"?Pg:t==="borderBoxSize"?Dd:Dg,s=r.observe(e,a=>n(a[t]));Ct(s)}function Lg(e,t,n){var r=Dd.observe(e,()=>n(e[t]));At(()=>(we(()=>n(e[t])),r))}function ic(e,t){return e===t||e?.[nt]===t}function Le(e={},t,n,r){var s=Ee.r,a=fe;return At(()=>{var o,l;return Ve(()=>{o=l,l=r?.()||[],we(()=>{e!==n(...l)&&(t(e,...l),o&&ic(n(...o),e)&&t(null,...o))})}),()=>{let c=a;for(;c!==s&&c.parent!==null&&c.parent.fΠ)c=c.parent;const u=()=>{l&&ic(n(...l),e)&&t(null,...l)},d=c.teardown;c.teardown=()=>{u(),d?.()}}}),e}function zg(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 Og(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)&&Ct(()=>{n.removeEventListener(t,a)})}function Ng(e,t){_t(e,["focus","blur"],()=>{t(e===document.activeElement)})}function qg(e,t,n=t){var r=e==="x",s=()=>qn(()=>{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))}),At(s),Ct(()=>{removeEventListener("scroll",s)})}function Bg(e,t){_t(window,["resize"],()=>qn(()=>t(window[e])))}function Vg(e){return function(...t){var n=t[0];n.isTrusted&&e?.apply(this,t)}}function Fg(e){return function(...t){var n=t[0];n.target===this&&e?.apply(this,t)}}function Ug(e){return function(...t){var n=t[0];return n.stopPropagation(),e?.apply(this,t)}}function Hg(e){var t=!1;return function(...n){if(!t)return t=!0,e?.apply(this,n)}}function Kg(e){return function(...t){var n=t[0];return n.stopImmediatePropagation(),e?.apply(this,t)}}function Wg(e){return function(...t){var n=t[0];return n.preventDefault(),e?.apply(this,t)}}function Yg(e=!1){const t=Ee,n=t.l.u;if(!n)return;let r=()=>zo(t.s);if(e){let s=0,a={};const o=js(()=>{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&&Qu(()=>{oc(t,r),Ri(n.b)}),xe(()=>{const s=we(()=>n.m.map(Jh));return()=>{for(const a of s)typeof a=="function"&&a()}}),n.a.length&&xe(()=>{oc(t,r),Ri(n.a)})}function oc(e,t){if(e.l.s)for(const n of e.l.s)i(n);t()}function Gg(e){var t=gt(0);return function(){return arguments.length===1?(S(t,i(t)+1),arguments[0]):(i(t),e())}}function Xg(e,t){var n=e.$$events?.[t.type],r=qr(n)?n.slice():n==null?[]:[n];for(var s of r)s.call(this,t)}function Jg(e,t,n){e.$$events||={},e.$$events[t]||=[],e.$$events[t].push(n)}function Zg(e){for(var t in e)t in this&&(this[t]=e[t])}function Qg(e,t=1){const n=e();return e(n+t),n}function $g(e,t=1){const n=e()+t;return e(n),n}const ey={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 ty(e,t,n){return new Proxy({props:e,exclude:t},ey)}const ny={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=fe;try{rt(e.parent_effect),e.special[t]=Q({get[t](){return e.props[t]}},t,nu)}finally{rt(r)}}return e.special[t](n),Pr(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),Pr(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 ry(e,t){return new Proxy({props:e,exclude:t,special:{},version:gt(0),parent_effect:fe},ny)}const sy={get(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(hr(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];hr(s)&&(s=s());const a=Zt(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(hr(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r){const s=Zt(r,t);return s&&!s.configurable&&(s.configurable=!0),s}}},has(e,t){if(t===nt||t===za)return!1;for(let n of e.props)if(hr(n)&&(n=n()),n!=null&&t in n)return!0;return!1},ownKeys(e){const t=[];for(let n of e.props)if(hr(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 Os(...e){return new Proxy({props:e},sy)}function Q(e,t,n,r){var s=(n&Bh)!==0,a=(n&Vh)!==0,o=r,l=!0,c=()=>(l&&(l=!1,o=a?we(r):r),o);let u;if(s){var d=nt in e||za in e;u=Zt(e,t)?.set??(d&&t in e?_=>e[t]=_:void 0)}var f,h=!1;s?[f,h]=ju(()=>e[t]):f=e[t],f===void 0&&r!==void 0&&(f=c(),u&&(_p(),u(f)));var b;if(b=()=>{var _=e[t];return _===void 0?c():(l=!0,_)},!(n&nu))return b;if(u){var E=e.$$legacy;return function(_,m){return arguments.length>0?((!m||E||h)&&u(m?b():_),_):b()}}var y=!1,g=(n&qh?js:Ao)(()=>(y=!1,b()));s&&i(g);var x=fe;return function(_,m){if(arguments.length>0){const I=m?i(g):s?oe(_):_;return S(g,I),y=!0,o!==void 0&&(o=I),_}return xn&&y||x.f&mt?g.v:i(g)}}function ay(e,t,n,r,s,a){Ou(t,()=>{var o=!1;wo?.[xt],Ve(()=>{if(!o){var[l,c]=ju(n);if(!c){var u=r(),d=!1,f=Ve(()=>{d||l[u]});d=!0,f.deps===null&&(Ip(),o=!0)}}})})}function iy(e){return new oy(e)}class oy{#e;#t;constructor(t){var n=new Map,r=(a,o)=>{var l=Ba(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===za?!0:(i(n.get(o)??r(o,Reflect.get(a,o))),Reflect.has(a,o))},set(a,o,l){return S(n.get(o)??r(o,l),l),Reflect.set(a,o,l)}});this.#t=(t.hydrate?gd:Be)(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)&&Dn(),this.#e=s.$$events;for(const a of Object.keys(this.#t))a==="$set"||a==="$destroy"||a==="$on"||Zn(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 Md;typeof HTMLElement=="function"&&(Md=class extends HTMLElement{$$ctor;$$s;$$c;$$cn=!1;$$d={};$$r=!1;$$p_d={};$$l={};$$l_u=new Map;$$me;$$shadowRoot=null;constructor(e,t,n){super(),this.$$ctor=e,this.$$s=t,n&&(this.$$shadowRoot=this.attachShadow(n))}addEventListener(e,t,n){if(this.$$l[e]=this.$$l[e]||[],this.$$l[e].push(t),this.$$c){const r=this.$$c.$on(e,t);this.$$l_u.set(t,r)}super.addEventListener(e,t,n)}removeEventListener(e,t,n){if(super.removeEventListener(e,t,n),this.$$c){const r=this.$$l_u.get(t);r&&(r(),this.$$l_u.delete(t))}}async connectedCallback(){if(this.$$cn=!0,!this.$$c){let e=function(r){return s=>{const a=Nn("slot");r!=="default"&&(a.name=r),k(s,a)}};if(await Promise.resolve(),!this.$$cn||this.$$c)return;const t={},n=ly(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]=$s(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=iy({component:this.$$ctor,target:this.$$shadowRoot||this,props:{...this.$$d,$$slots:t,$$host:this}}),this.$$me=Fr(()=>{Ve(()=>{this.$$r=!0;for(const r of ua(this.$$c)){if(!this.$$p_d[r]?.reflect)continue;this.$$d[r]=this.$$c[r];const s=$s(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]=$s(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 ua(this.$$p_d).find(t=>this.$$p_d[t].attribute===e||!this.$$p_d[t].attribute&&t.toLowerCase()===e)||e}});function $s(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 ly(e){const t={};return e.childNodes.forEach(n=>{t[n.slot||"default"]=!0}),t}function cy(e,t,n,r,s,a){let o=class extends Md{constructor(){super(e,n,s),this.$$p_d=t}static get observedAttributes(){return ua(t).map(l=>(t[l].attribute||l).toLowerCase())}};return ua(t).forEach(l=>{Zn(o.prototype,l,{get(){return this.$$c&&l in this.$$c?this.$$c[l]:this.$$d[l]},set(c){c=$s(l,c,t),this.$$d[l]=c;var u=this.$$c;if(u){var d=Zt(u,l)?.get;d?u[l]=c:u.$set({[l]:c})}}})}),r.forEach(l=>{Zn(o.prototype,l,{get(){return this.$$c?.[l]}})}),a&&(o=a(o)),e.element=o,o}function uy(e,...t){return we(()=>{try{let n=!1;const r=[];for(const s of t)s&&typeof s=="object"&&nt in s?(r.push(tr(s,!0)),n=!0):r.push(s);n&&(Ap(e),console.log("%c[snapshot]","color: grey",...r))}catch{}}),t}const Ld=Object.freeze(Object.defineProperty({__proto__:null,CLASS:mr,FILENAME:xt,HMR:vr,NAMESPACE_SVG:Es,STYLE:br,aborted:Bi,action:Ad,get active_effect(){return fe},add_legacy_event_listener:Jg,add_locations:kb,add_svelte_meta:Hp,animation:Wb,append:k,append_styles:Jb,apply:Fm,assign:yb,assign_async:_b,async:Tb,async_derived:Nu,attach:Vo,attachment:gb,attr:eg,attribute_effect:vg,autofocus:Vr,await:Pb,bind_active_element:mg,bind_buffered:_g,bind_checked:is,bind_content_editable:zg,bind_current_time:yg,bind_element_size:Lg,bind_ended:Sg,bind_files:gg,bind_focused:Ng,bind_group:bg,bind_muted:Tg,bind_online:Rg,bind_paused:Ag,bind_playback_rate:Ig,bind_played:kg,bind_prop:jg,bind_property:Og,bind_ready_state:Eg,bind_resize_observer:Mg,bind_seekable:wg,bind_seeking:xg,bind_select_value:vs,bind_this:Le,bind_value:Se,bind_volume:Cg,bind_window_scroll:qg,bind_window_size:Bg,boundary:zu,bubble_event:Xg,check_target:Ib,child:p,cleanup_styles:wb,clsx:Td,comment:qe,component:Ls,create_custom_element:cy,create_ownership_validator:Eb,css_props:Lb,customizable_select:pg,deep_read:ha,deep_read_state:zo,deferred_template_effect:Pm,delegate:le,delegated:H,derived:K,derived_safe_equal:Ao,get document(){return Ku},each:he,eager:lm,effect:At,effect_root:Fr,effect_tracking:Ds,element:Gb,equals:Sm,event:Pe,exclude_from_object:Qh,fallback:Zh,first_child:ve,flush:Dn,for_await_track_reactivity_loss:pm,from_html:A,from_mathml:Wm,from_svg:No,from_tree:Ym,get:i,head:Xb,hmr:Sb,html:qb,hydrate_template:Lp,if:W,index:dt,init:Yg,init_select:Fo,inspect:Cb,invalid_default_snippet:np,invalidate_inner_signals:Lm,invalidate_store:$p,invoke_error_boundary:un,key:Mb,legacy_api:Ab,legacy_pre_effect:Tm,legacy_pre_effect_reset:Rm,legacy_rest_props:ry,log_if_contains_state:uy,mark_store_binding:sm,mutable_source:Ba,mutate:wm,next:qt,noop:St,once:Hg,pending:vm,pop:ae,preventDefault:Wg,prevent_snippet_stringification:_d,prop:Q,props_id:Jm,proxy:oe,push:se,raf:ln,reactive_import:Gg,remove_input_defaults:ge,remove_textarea_child:jo,render_effect:Ve,replay_events:Vm,reset:v,rest_props:ty,run:mm,run_after_blockers:Ou,safe_get:qm,sanitize_slots:Vb,save:hm,select_option:fs,selectedcontent:hg,self:Fg,set:S,set_attribute:ne,set_checked:Uo,set_class:ue,set_custom_element_data:dg,set_default_checked:lg,set_default_value:cg,set_selected:Ho,set_style:He,set_text:O,set_value:hs,set_xlink_attribute:ug,setup_stores:em,sibling:w,slot:Bb,snapshot:tr,snippet:Ht,spread_props:Os,state:F,stopImmediatePropagation:Kg,stopPropagation:Ug,store_get:Zp,store_mutate:tm,store_set:Ru,store_unsub:Qp,strict_equals:xm,tag:Vp,tag_proxy:ku,template_effect:q,text:$t,tick:Ms,to_array:uu,trace:Bp,track_reactivity_loss:Oi,transition:Yb,trusted:Vg,untrack:we,update:Pr,update_legacy_props:Zg,update_pre:km,update_pre_prop:$g,update_pre_store:rm,update_prop:Qg,update_store:nm,user_effect:xe,user_pre_effect:Qu,validate_binding:ay,validate_dynamic_element_tag:cb,validate_snippet_args:Rb,validate_store:ub,validate_void_dynamic_element:lb,wait:bm,get window(){return Ni},with_script:Gm,wrap_snippet:db},Symbol.toStringTag,{value:"Module"}));class lc{#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 cc{#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 dy=["workspace","user"],Ua="state:manage",rn={ephemeral:new lc,session:new lc,workspace:new cc("sh3:workspace:"),user:new cc("sh3:user:")},Si=new Map;let Ei=!1;function fy(e,t,n){Si.set(`${e}:${t}`,{zone:e,shardId:t,value:n}),!Ei&&(Ei=!0,queueMicrotask(()=>{Ei=!1;for(const{zone:r,shardId:s,value:a}of Si.values())rn[r].write(s,a);Si.clear()}))}function Ha(e,t){const n={};for(const r of Object.keys(t)){const s=t[r],o=rn[r].read(e),l={...s,...o??{}},c=oe(l);n[r]=c,dy.includes(r)&&Fr(()=>{let u=!0;xe(()=>{const d=tr(c);if(u){u=!1;return}fy(r,e,d)})})}return n}function uc(e,t){rn[e]=t}function vy(e,t){return rn[e].read(t)}function Wi(e,t){rn[e].delete(t)}const hy="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(hy);const py=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function my(e){const t=document.activeElement;function n(){return Array.from(e.querySelectorAll(py))}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 by=A('<div class="modal-frame svelte-2tcvcm" role="presentation"><div class="modal-box svelte-2tcvcm" role="dialog" aria-modal="true" tabindex="-1"><!></div></div>');function gy(e,t){se(t,!0);let n;xe(()=>{if(n)return my(n)});function r(l){t.onBackdropClick&&l.target===l.currentTarget&&t.onBackdropClick()}var s=by(),a=p(s),o=p(a);Ls(o,()=>t.Content,(l,c)=>{c(l,Os(()=>t.contentProps,{get close(){return t.close}}))}),v(a),Le(a,l=>n=l,()=>n),v(s),q(()=>He(a,t.boxStyle)),H("click",s,r),k(e,s),ae()}le(["click"]);const Yo={};function yy(e,t){Yo[e]=t}function _y(e){delete Yo[e]}function Ka(e){const t=Yo[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 Mn=oe(new Map),it=oe({id:null}),Mr=oe({id:null});function wy(){return Mr.id}function Go(e){Mn.set(e.manifest.id,e)}function Kr(){return Array.from(Mn.values()).map(e=>e.manifest)}function zd(){const e=it.id;return e?Mn.get(e)?.manifest??null:null}function Ln(e){return Mn.get(e)}const os=[],xr=[];let ps=null;function ky(e){ps=e}function xy(e){if(!it.id)throw new Error("pushNavEntry requires an active app");const t=Symbol("nav-entry");return xr.push({id:t,label:e.label,onPop:e.onPop}),{remove(){const n=xr.findIndex(r=>r.id===t);n>=0&&xr.splice(n,1)}}}function Od(e){const t=Symbol("dismissable");return os.push({id:t,dismiss:e}),{unregister(){const n=os.findIndex(r=>r.id===t);n>=0&&os.splice(n,1)}}}function Nd(){xr.length=0}function Sy(){if(os.length>0){os.pop().dismiss();return}if(xr.length>0){xr.pop().onPop();return}it.id&&ps&&ps.returnToHome()}function Ey(){it.id||Mr.id&&ps&&ps.launchApp(Mr.id)}const Et=[];let ga=!1,Dt=null;const Iy=.5;function qd(){const e=Ka("modal");if(Et.length===0){Dt&&(Dt.remove(),Dt=null);return}Dt||(Dt=document.createElement("div"),Dt.className="sh3-modal-backdrop",Dt.style.position="absolute",Dt.style.inset="0",Dt.style.pointerEvents="auto",Dt.style.transition="background-color 120ms ease",Dt.style.background=`rgba(0, 0, 0, ${Iy})`);const t=Et[Et.length-1].host;e.insertBefore(Dt,t)}function Bd(e){e.key==="Escape"&&Et.length!==0&&(e.stopPropagation(),e.preventDefault(),Et[Et.length-1].handle.close())}function Ay(){ga||(ga=!0,document.addEventListener("keydown",Bd,!0))}function Cy(){Et.length>0||ga&&(ga=!1,document.removeEventListener("keydown",Bd,!0))}function Vd(e){const t=Et.indexOf(e);t<0||(Et.splice(t,1),Xe(e.frame),e.host.remove(),qd(),Cy())}function Ty(e,t,n){const r=Ka("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:()=>Vd(a)},l=Od(()=>o.close()),c=o.close;o.close=()=>{l.unregister(),c()};const u=Be(gy,{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,Et.push(a),qd(),Ay(),o}function Ry(){for(;Et.length>0;)Vd(Et[Et.length-1])}const Kt={open:Ty,closeAll:Ry};var jy=A('<div class="popup-frame svelte-mp81cl" role="menu" tabindex="-1"><!></div>');function Py(e,t){se(t,!0);let n,r=F(-9999),s=F(-9999);xe(()=>{if(!n)return;const l=n.getBoundingClientRect(),c=4,u=window.innerWidth,d=window.innerHeight;let f=t.anchorRect.bottom+c,h=t.anchorRect.left;if(h+l.width>u-c&&(h=Math.max(c,u-l.width-c)),f+l.height>d-c){const b=t.anchorRect.top-l.height-c;f=b>=c?b:Math.max(c,d-l.height-c)}S(r,f,!0),S(s,h,!0)});var a=jy(),o=p(a);Ls(o,()=>t.Content,(l,c)=>{c(l,Os(()=>t.contentProps,{get close(){return t.close}}))}),v(a),Le(a,l=>n=l,()=>n),q(()=>He(a,`top: ${i(r)??""}px; left: ${i(s)??""}px;`)),k(e,a),ae()}function Dy(e){return e instanceof HTMLElement?e.getBoundingClientRect():new DOMRect(e.x,e.y,0,0)}let Vt=null;function Fd(e){if(!Vt)return;const t=e.target;t&&Vt.host.contains(t)||Vt.handle.close()}function Ud(e){Vt&&e.key==="Escape"&&(e.stopPropagation(),e.preventDefault(),Vt.handle.close())}function My(){document.addEventListener("pointerdown",Fd,!0),document.addEventListener("keydown",Ud,!0)}function Ly(){document.removeEventListener("pointerdown",Fd,!0),document.removeEventListener("keydown",Ud,!0)}function Yi(e){Vt===e&&(Vt=null,Ly(),Xe(e.frame),e.host.remove())}function zy(e,t,n){Vt&&Yi(Vt);const r=Ka("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=Dy(t.anchor),o={},l={close:()=>Yi(o)},c=Od(()=>l.close()),u=l.close;l.close=()=>{c.unregister(),u()};const d=Be(Py,{target:s,props:{Content:e,contentProps:n??{},anchorRect:a,close:l.close}});return o.host=s,o.frame=d,o.handle=l,Vt=o,queueMicrotask(My),l}function Oy(){Vt&&Yi(Vt)}const Gi={show:zy,close:Oy};var Ny=A('<div role="status" aria-live="polite"><span class="toast-level svelte-12gwnj0"> </span> <span class="toast-message svelte-12gwnj0"> </span></div>');function qy(e,t){var n=Ny(),r=p(n),s=p(r,!0);v(r);var a=w(r,2),o=p(a,!0);v(a),v(n),q(()=>{ue(n,1,`toast toast-${t.level??""}`,"svelte-12gwnj0"),O(s,t.level),O(o,t.message)}),H("click",n,function(...l){t.close?.apply(this,l)}),k(e,n)}le(["click"]);const ya=new Set;let ft=null;function By(){if(ft&&ft.isConnected)return ft;const e=Ka("toast");return ft=document.createElement("div"),ft.className="sh3-toast-stack",ft.style.position="absolute",ft.style.right="16px",ft.style.bottom="16px",ft.style.display="flex",ft.style.flexDirection="column-reverse",ft.style.gap="6px",ft.style.pointerEvents="none",e.appendChild(ft),ft}function Xi(e){ya.has(e)&&(ya.delete(e),e.timer!==null&&(clearTimeout(e.timer),e.timer=null),Xe(e.instance),e.host.remove())}function Vy(e,t={}){const n=t.level??"info",r=t.duration??3e3,s=By(),a=document.createElement("div");a.className="sh3-toast-host",s.appendChild(a);const o={},l={close:()=>Xi(o)},c=Be(qy,{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(()=>Xi(o),r):null,ya.add(o),l}function Fy(){for(const e of[...ya])Xi(e)}const dn={notify:Vy,clear:Fy},dc={w:120,h:80};function Xo(e){if(e.type==="slot")return{...dc};if(e.type==="tabs")return{...dc};const t=e.children.map(Xo);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 fc=32,vc={x:48,y:48};function Hd(e,t){if(e.length===0)return{...vc};const n=e[e.length-1],r={x:n.position.x+fc,y:n.position.y+fc};return r.x+120>t.w||r.y+32>t.h?{...vc}:r}let hc=0;function Kd(){return hc+=1,`float-${Date.now().toString(36)}-${hc.toString(36)}`}function Wd(e){return e.type==="slot"?e.viewId==null:e.type==="tabs"?e.tabs.every(t=>t.viewId==null):e.children.every(Wd)}function Uy(e){return e.closest("[data-shell-overlay-host]")}class Hy extends Map{#e=new Map;#t=F(0);#n=F(0);#s=_n||-1;constructor(t){if(super(),t){for(var[n,r]of t)super.set(n,r);this.#n.v=super.size}}#r(t){return _n===this.#s?F(t):gt(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),S(this.#n,super.size),on(l);else if(a!==n){on(s);var c=l.reactions===null?null:new Set(l.reactions),u=c===null||!s.reactions?.every(d=>c.has(d));u&&on(l)}return o}delete(t){var n=this.#e,r=n.get(t),s=super.delete(t);return r!==void 0&&(n.delete(t),S(r,-1)),s&&(S(this.#n,super.size),on(this.#t)),s}clear(){if(super.size!==0){super.clear();var t=this.#e;S(this.#n,0);for(var n of t.values())S(n,-1);on(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 Ji=new Hy;function ms(e,t){t?Ji.set(e,!0):Ji.delete(e)}function Ky(e){return Ji.get(e)??!1}let Wy=[],Jo=null,Ns=()=>({w:1600,h:900});function Yy(e,t){Jo=e,Ns=t}function Gy(){Jo=null,Ns=()=>({w:1600,h:900})}function cr(){return Jo??Wy}const Zo=new Map;function Xy(e){return Zo.get(e)}const wn=new Map;let pc=0;function Jy(e){return pc+=1,`float:${e}:${pc}`}const Zy={w:600,h:400};function Qy(e,t){return{w:Math.max(e.w,t.w),h:Math.max(e.h,t.h)}}function $y(e,t={}){const n=cr(),r=Kd(),s=Jy(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=Xo(a),l=t.size??Qy(Zy,o),c=t.position??Hd(n,Ns()),u={id:r,content:a,position:c,size:l,title:t.title};if(t.dismissable&&(u.dismissable=!0),t.dismissable&&t.anchor){const d=Uy(t.anchor);d&&Zo.set(r,d)}return n.push(u),r}function e_(e){const t=cr(),n=Kd(),r=e.position??Hd(t,Ns()),s={id:n,content:e.content,position:r,size:e.size,title:e.title};return t.push(s),n}function t_(e){const t=cr(),n=t.findIndex(r=>r.id===e);n<0||(t.splice(n,1),Zo.delete(e),wn.delete(e),ms(e,!1))}function n_(){return cr().slice()}function Yd(e){const t=cr(),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 Gd(e){if(wn.has(e))return;const t=cr().find(r=>r.id===e);if(!t)return;wn.set(e,{position:{x:t.position.x,y:t.position.y},size:{w:t.size.w,h:t.size.h}}),ms(e,!0);const n=Ns();t.position.x=0,t.position.y=0,t.size.w=n.w,t.size.h=n.h,Yd(e)}function Xd(e){const t=wn.get(e);if(!t)return;const n=cr().find(r=>r.id===e);if(!n){wn.delete(e),ms(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,wn.delete(e),ms(e,!1)}function r_(e){wn.has(e)?Xd(e):Gd(e)}function s_(e){wn.has(e)&&(wn.delete(e),ms(e,!1))}function a_(e){return Ky(e)}const Ce={open:$y,openWithContent:e_,close:t_,list:n_,focus:Yd,maximize:Gd,restore:Xd,toggleMaximize:r_,unmaximize:s_,isMaximized:a_};let _a=null;function i_(e){_a=e}function o_(){_a=null}function Qo(){if(!_a)throw new Error("presetManager: no app attached — bind an AppLayoutBlob first");return _a}function l_(){return Object.keys(Qo().presets)}function c_(){return Qo().activePreset}function u_(e){const t=Qo();if(!(e in t.presets))throw new Error(`presetManager.switch: unknown preset "${e}"`);t.activePreset=e}const d_={list:l_,active:c_,switch:u_},_r=new Map,ea=new Map,Zi=new Set;function mc(e){const t=ea.get(e);if(t)for(const n of t)n();for(const n of Zi)n(e)}function Jd(e,t){const n=Symbol();let r=_r.get(e);r||(r=new Map,_r.set(e,r)),r.set(n,t),mc(e);let s=!1;return()=>{if(s)return;s=!0;const a=_r.get(e);a&&a.delete(n)&&(a.size===0&&_r.delete(e),mc(e))}}function Wa(e){const t=_r.get(e);return t?Array.from(t.values()):[]}function f_(){return Array.from(_r.keys())}function Zd(e,t){let n=ea.get(e);n||(n=new Set,ea.set(e,n)),n.add(t);let r=!1;return()=>{r||(r=!0,n.delete(t),n.size===0&&ea.delete(e))}}function v_(e){Zi.add(e);let t=!1;return()=>{t||(t=!0,Zi.delete(e))}}const h_=Object.freeze([".md",".txt",".json",".guml",".css",".js",".ts",".tsx",".jsx",".html",".svg",".csv",".yaml",".yml",".xml",".log",".ini",".toml"]);function p_(e){return e.kind?e.kind:e.extension&&h_.includes(e.extension.toLowerCase())?"text":"binary"}const ta=[];function bc(e){return ta.push(e),()=>{const t=ta.indexOf(e);t>=0&&ta.splice(t,1)}}function m_(e,t=[]){return[...ta,...t].filter(r=>{try{return r.appliesTo(e)}catch{return!1}}).sort((r,s)=>(s.priority??0)-(r.priority??0))[0]??null}var b_=A("<span> </span>"),g_=A('<div class="sh3-conflict-text-dual svelte-iwgja4"><div role="button" tabindex="0"><header class="sh3-conflict-text-head svelte-iwgja4"> </header> <pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre></div> <div role="button" tabindex="0"><header class="sh3-conflict-text-head svelte-iwgja4"> </header> <pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre></div></div> <details class="sh3-conflict-text-diff svelte-iwgja4"><summary> </summary> <pre class="svelte-iwgja4"><code></code></pre></details>',1),y_=A("<option> </option>"),__=A("<button> </button>"),w_=A('<pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre>'),k_=A('<div class="sh3-conflict-text-tabs svelte-iwgja4"><div class="sh3-conflict-text-picker svelte-iwgja4"><label>Reference: <select class="svelte-iwgja4"></select></label></div> <div class="sh3-conflict-text-tablist svelte-iwgja4"></div> <!></div>'),x_=A('<div class="sh3-conflict-text svelte-iwgja4"><!></div>');function S_(e,t){se(t,!0);let n=F("");xe(()=>{(!i(n)||!t.item.branches.find(b=>b.origin===i(n)))&&S(n,t.item.branches[0]?.origin??"local",!0)});const r=K(()=>t.item.branches.length===2),s=K(()=>i(r)?t.item.branches[0]:t.item.branches.find(b=>b.origin===i(n))??t.item.branches[0]),a=K(()=>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,E){const y=(b??"").split(/\r?\n/),g=(E??"").split(/\r?\n/),x=[],_=Math.max(y.length,g.length);for(let m=0;m<_;m++){const I=y[m],R=g[m];I===R?typeof I=="string"&&x.push({kind:"same",text:I}):(typeof I=="string"&&x.push({kind:"left",text:I}),typeof R=="string"&&x.push({kind:"right",text:R}))}return x}const l=K(()=>!i(s)||!i(a)?[]:o(i(s).content??"",i(a).content??"")),c=K(()=>i(l).filter(b=>b.kind!=="same").length);var u=x_(),d=p(u);{var f=b=>{var E=g_(),y=ve(E),g=p(y);let x;var _=p(g),m=p(_);v(_);var I=w(_,2),R=p(I),T=p(R,!0);v(R),v(I),v(g);var D=w(g,2);let L;var j=p(D),M=p(j);v(j);var C=w(j,2),P=p(C),N=p(P,!0);v(P),v(C),v(D),v(y);var z=w(y,2),U=p(z),X=p(U);v(U);var Y=w(U,2),B=p(Y);he(B,21,()=>i(l),dt,(V,Z)=>{var G=b_(),$=p(G);v(G),q(()=>{ue(G,1,`diff-${i(Z).kind}`,"svelte-iwgja4"),O($,`${i(Z).kind==="same"?" ":i(Z).kind==="left"?"- ":"+ "}${i(Z).text??""}
|
|
8
|
+
`)}),k(V,G)}),v(B),v(Y),v(z),q(()=>{x=ue(g,1,"sh3-conflict-text-pane svelte-iwgja4",null,x,{selected:i(s).origin===t.selectedOrigin}),O(m,`${i(s).origin??""} · v${i(s).version??""}`),O(T,i(s).content??""),L=ue(D,1,"sh3-conflict-text-pane svelte-iwgja4",null,L,{selected:i(a).origin===t.selectedOrigin}),O(M,`${i(a).origin??""} · v${i(a).version??""}`),O(N,i(a).content??""),O(X,`Line diff (${i(c)??""} difference${i(c)===1?"":"s"})`)}),H("click",g,()=>t.onSelect(i(s).origin)),H("keydown",g,V=>{(V.key==="Enter"||V.key===" ")&&t.onSelect(i(s).origin)}),H("click",D,()=>t.onSelect(i(a).origin)),H("keydown",D,V=>{(V.key==="Enter"||V.key===" ")&&t.onSelect(i(a).origin)}),k(b,E)},h=b=>{var E=k_(),y=p(E),g=p(y),x=w(p(g));he(x,21,()=>t.item.branches,R=>R.origin,(R,T)=>{var D=y_(),L=p(D,!0);v(D);var j={};q(()=>{O(L,i(T).origin),j!==(j=i(T).origin)&&(D.value=(D.__value=i(T).origin)??"")}),k(R,D)}),v(x),v(g),v(y);var _=w(y,2);he(_,21,()=>t.item.branches,R=>R.origin,(R,T)=>{var D=__();let L;var j=p(D);v(D),q(()=>{L=ue(D,1,"sh3-conflict-text-tab svelte-iwgja4",null,L,{selected:i(T).origin===t.selectedOrigin}),O(j,`${i(T).origin??""} · v${i(T).version??""}`)}),H("click",D,()=>t.onSelect(i(T).origin)),k(R,D)}),v(_);var m=w(_,2);{var I=R=>{var T=w_(),D=p(T),L=p(D,!0);v(D),v(T),q(()=>O(L,i(a).content??"")),k(R,T)};W(m,R=>{i(a)&&R(I)})}v(E),vs(x,()=>i(n),R=>S(n,R)),k(b,E)};W(d,b=>{i(r)&&i(s)&&i(a)?b(f):b(h,-1)})}v(u),k(e,u),ae()}le(["click","keydown"]);var E_=A("· <code> </code>",1),I_=A('<li class="sh3-conflict-meta-li svelte-1nz3djn"><button type="button"><div class="sh3-conflict-meta-origin svelte-1nz3djn"> </div> <div class="sh3-conflict-meta-detail svelte-1nz3djn"> <!></div></button></li>'),A_=A('<div class="sh3-conflict-meta svelte-1nz3djn"><div class="sh3-conflict-meta-note svelte-1nz3djn">No preview available for this content. Pick the branch you want to keep.</div> <ul class="sh3-conflict-meta-list svelte-1nz3djn"></ul></div>');function C_(e,t){se(t,!0);function n(o){return typeof o!="number"?"—":o<1024?`${o} B`:o<1024*1024?`${(o/1024).toFixed(1)} KiB`:`${(o/(1024*1024)).toFixed(2)} MiB`}function r(o){const l=Date.now()-o;return l<6e4?"just now":l<36e5?`${Math.floor(l/6e4)}m ago`:l<864e5?`${Math.floor(l/36e5)}h ago`:new Date(o).toLocaleString()}var s=A_(),a=w(p(s),2);he(a,21,()=>t.item.branches,o=>o.origin,(o,l)=>{var c=I_(),u=p(c);let d;var f=p(u),h=p(f,!0);v(f);var b=w(f,2),E=p(b),y=w(E);{var g=x=>{var _=E_(),m=w(ve(_)),I=p(m,!0);v(m),q(()=>O(I,i(l).hashPreview)),k(x,_)};W(y,x=>{i(l).hashPreview&&x(g)})}v(b),v(u),v(c),q((x,_)=>{d=ue(u,1,"sh3-conflict-meta-row svelte-1nz3djn",null,d,{selected:i(l).origin===t.selectedOrigin}),O(h,i(l).origin),O(E,`v${i(l).version??""} · ${x??""} · ${_??""} `)},[()=>r(i(l).at),()=>n(i(l).sizeBytes)]),H("click",u,()=>t.onSelect(i(l).origin)),k(o,c)}),v(a),v(s),k(e,s),ae()}le(["click"]);const T_=1048576;function R_(e){return typeof e=="number"&&e>T_}const j_={id:"sh3-core.text",priority:1,appliesTo:e=>p_(e)!=="text"?!1:!e.branches.some(t=>R_(t.sizeBytes)),mount(e,t){const n=Be(S_,{target:e,props:t});return()=>{Xe(n)}}},P_={id:"sh3-core.meta",priority:0,appliesTo:()=>!0,mount(e,t){const n=Be(C_,{target:e,props:t});return()=>{Xe(n)}}};let gc=!1;function D_(){gc||(gc=!0,bc(j_),bc(P_))}var M_=A('<div class="sh3-conflict-prompt svelte-1jvtzud"><h3 class="sh3-conflict-prompt-title svelte-1jvtzud"> </h3> <p class="sh3-conflict-prompt-intro svelte-1jvtzud">Pick one option for the whole batch, or resolve each conflict individually.</p> <div class="sh3-conflict-prompt-actions svelte-1jvtzud"><button type="button" class="sh3-conflict-prompt-primary svelte-1jvtzud">Overwrite with most recent</button> <button type="button" class="sh3-conflict-prompt-secondary svelte-1jvtzud">Resolve individually</button> <button type="button" class="sh3-conflict-prompt-cancel svelte-1jvtzud">Cancel</button></div></div>');function L_(e,t){var n=M_(),r=p(n),s=p(r);v(r);var a=w(r,4),o=p(a);Vr(o,!0);var l=w(o,2),c=w(l,2);v(a),v(n),q(()=>O(s,`${t.count??""} conflict${t.count===1?"":"s"} to resolve`)),H("click",o,function(...u){t.onOverwriteMostRecent?.apply(this,u)}),H("click",l,function(...u){t.onResolveIndividually?.apply(this,u)}),H("click",c,function(...u){t.onCancel?.apply(this,u)}),k(e,n)}le(["click"]);var z_=A('<span class="sh3-conflict-detail-counter svelte-pw8iv6"> </span>'),O_=A('<button type="button"><span><!></span> <span class="sh3-conflict-detail-rail-label svelte-pw8iv6"> </span></button>'),N_=A('<aside class="sh3-conflict-detail-rail svelte-pw8iv6"></aside>'),q_=A('<label class="sh3-conflict-detail-branch svelte-pw8iv6"><input type="radio"/> <span> </span></label>'),B_=A('<div class="sh3-conflict-detail-branches svelte-pw8iv6"></div> <div class="sh3-conflict-detail-renderer svelte-pw8iv6"></div>',1),V_=A('<div class="sh3-conflict-detail svelte-pw8iv6"><header class="sh3-conflict-detail-head svelte-pw8iv6"><h3 class="svelte-pw8iv6"> </h3> <!></header> <div class="sh3-conflict-detail-body svelte-pw8iv6"><!> <section class="sh3-conflict-detail-main svelte-pw8iv6"><!></section></div> <footer class="sh3-conflict-detail-foot svelte-pw8iv6"><div class="sh3-conflict-detail-nav svelte-pw8iv6"><button type="button" class="svelte-pw8iv6">← Prev</button> <button type="button" class="svelte-pw8iv6"> </button> <button type="button" class="svelte-pw8iv6">Next →</button></div> <div class="sh3-conflict-detail-actions svelte-pw8iv6"><button type="button" class="sh3-conflict-detail-cancel svelte-pw8iv6">Cancel</button> <button type="button" class="sh3-conflict-detail-done svelte-pw8iv6">Done</button></div></footer></div>');function F_(e,t){se(t,!0);const n=K(()=>t.items[t.currentIndex]),r=K(()=>i(n)?t.selections[i(n).id]??i(n).branches[0]?.origin??"":""),s=K(()=>i(n)?m_(i(n),t.contributed):null);let a=F(void 0),o=null;xe(()=>{if(i(n),i(s),i(r),o&&(o(),o=null),!i(a)||!i(n)||!i(s))return;const U={item:i(n),selectedOrigin:i(r),onSelect:X=>t.onSelect(i(n).id,X)};return o=i(s).mount(i(a),U),()=>{o&&(o(),o=null)}});function l(){t.currentIndex>0&&t.onNavigate(t.currentIndex-1)}function c(){t.currentIndex<t.items.length-1&&t.onNavigate(t.currentIndex+1)}const u=K(()=>t.items.map(U=>t.skipped[U.id]?"skipped":t.selections[U.id]?"resolved":"pending"));var d=V_(),f=p(d),h=p(f),b=p(h,!0);v(h);var E=w(h,2);{var y=U=>{var X=z_(),Y=p(X);v(X),q(()=>O(Y,`${t.currentIndex+1} / ${t.items.length??""}`)),k(U,X)};W(E,U=>{t.items.length>1&&U(y)})}v(f);var g=w(f,2),x=p(g);{var _=U=>{var X=N_();he(X,23,()=>t.items,Y=>Y.id,(Y,B,V)=>{var Z=O_();let G;var $=p(Z),ie=p($);{var pe=De=>{var Rt=$t("✓");k(De,Rt)},J=De=>{var Rt=$t("⟶");k(De,Rt)},ce=De=>{var Rt=$t("·");k(De,Rt)};W(ie,De=>{i(u)[i(V)]==="resolved"?De(pe):i(u)[i(V)]==="skipped"?De(J,1):De(ce,-1)})}v($);var be=w($,2),st=p(be,!0);v(be),v(Z),q(()=>{G=ue(Z,1,"sh3-conflict-detail-rail-item svelte-pw8iv6",null,G,{selected:i(V)===t.currentIndex}),ue($,1,`sh3-conflict-detail-rail-state ${i(u)[i(V)]??""}`,"svelte-pw8iv6"),O(st,i(B).label)}),H("click",Z,()=>t.onNavigate(i(V))),k(Y,Z)}),v(X),k(U,X)};W(x,U=>{t.items.length>1&&U(_)})}var m=w(x,2),I=p(m);{var R=U=>{var X=B_(),Y=ve(X);he(Y,21,()=>i(n).branches,V=>V.origin,(V,Z)=>{var G=q_(),$=p(G);ge($);var ie=w($,2),pe=p(ie);v(ie),v(G),q(()=>{ne($,"name",`branch-${i(n).id??""}`),hs($,i(Z).origin),Uo($,i(r)===i(Z).origin),O(pe,`${i(Z).origin??""} · v${i(Z).version??""}`)}),H("change",$,()=>t.onSelect(i(n).id,i(Z).origin)),k(V,G)}),v(Y);var B=w(Y,2);Le(B,V=>S(a,V),()=>i(a)),k(U,X)};W(I,U=>{i(n)&&U(R)})}v(m),v(g);var T=w(g,2),D=p(T),L=p(D),j=w(L,2),M=p(j,!0);v(j);var C=w(j,2);v(D);var P=w(D,2),N=p(P),z=w(N,2);v(P),v(T),v(d),q(()=>{O(b,t.title),L.disabled=t.currentIndex===0,O(M,i(n)&&t.skipped[i(n).id]?"Unskip":"Skip"),C.disabled=t.currentIndex>=t.items.length-1}),H("click",L,l),H("click",j,()=>i(n)&&t.onToggleSkip(i(n).id)),H("click",C,c),H("click",N,function(...U){t.onCancel?.apply(this,U)}),H("click",z,function(...U){t.onDone?.apply(this,U)}),k(e,d),ae()}le(["click","change"]);function Qd(e,t){return t.at-e.at}function U_(e,t){if(e.length===0)return null;try{return[...e].sort(t)[0]}catch(n){return console.warn("[sh3-core] mostRecentBy comparator threw; falling back to default",n),[...e].sort(Qd)[0]}}function H_(e,t){se(t,!0);const n=t.items.length>=2||t.requirePrompt;let r=F(oe(n?"prompt":"detail")),s=F(oe(Object.fromEntries(t.items.map(m=>{const I=U_(m.branches,t.mostRecentBy)?.origin??m.branches[0]?.origin??"";return[m.id,I]})))),a=F(oe({})),o=F(0),l=!1;Bo(()=>{l||(l=!0,t.onCancel())});function c(){if(l)return;l=!0;const m=[],I=[];for(const R of t.items){if(i(a)[R.id]){I.push(R.id);continue}const T=i(s)[R.id],D=R.branches.find(L=>L.origin===T);D&&m.push({itemId:R.id,chosen:D,meta:R.meta})}t.onResolve(m,I),t.close()}function u(){l||(l=!0,t.onCancel(),t.close())}function d(){c()}function f(){S(r,"detail")}function h(m,I){if(S(s,{...i(s),[m]:I},!0),i(a)[m]){const R={...i(a)};delete R[m],S(a,R,!0)}}function b(m){S(a,{...i(a),[m]:!i(a)[m]},!0)}function E(m){S(o,m,!0)}var y=qe(),g=ve(y);{var x=m=>{L_(m,{get count(){return t.items.length},onOverwriteMostRecent:d,onResolveIndividually:f,onCancel:u})},_=m=>{F_(m,{get items(){return t.items},get selections(){return i(s)},get skipped(){return i(a)},get currentIndex(){return i(o)},get title(){return t.title},get contributed(){return t.contributed},onSelect:h,onNavigate:E,onToggleSkip:b,onDone:c,onCancel:u})};W(g,m=>{i(r)==="prompt"?m(x):m(_,-1)})}k(e,y),ae()}const $d="sh3-core.conflictRenderer";class ef extends Error{constructor(t){super(t),this.name="ConflictPermissionError"}}class K_ extends Error{constructor(){super("Caller shard deactivated while conflict session was active"),this.name="ConflictSessionOrphanedError"}}function W_(){try{return Wa($d)}catch{return[]}}function tf(e,t={}){return D_(),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??Qd,a=t.requirePrompt??!1,o=W_();let l=!1;const d={items:e,title:r,mostRecentBy:s,requirePrompt:a,contributed:o,onResolve:(f,h)=>{l||(l=!0,n({status:"resolved",choices:f,skipped:h}))},onCancel:()=>{l||(l=!0,n({status:"cancelled"}))}};Kt.open(H_,d,{boxStyle:"max-width: none; min-width: 360px; padding: 0;"})})}function Y_(e){const t=e.documents({format:"text"});return{status:n=>t.status(n),readBranch:(n,r)=>t.readBranch(n,r),resolveConflict:(n,r)=>t.resolveConflict(n,r)}}function G_(e,t){const n=e.browse;if(!n?.statusFrom||!n?.readBranchFrom||!n?.resolveConflictFrom)throw new ef(`Cross-shard resolveDocuments requires documents:browse + documents:read + documents:write (shardId=${t})`);return{status:r=>n.statusFrom(t,r),readBranch:(r,s)=>n.readBranchFrom(t,r,s),resolveConflict:(r,s)=>n.resolveConflictFrom(t,r,s)}}function X_(e){const t=e.lastIndexOf(".");if(t<0)return;const n=e.lastIndexOf("/");if(!(t<n))return e.slice(t)}async function J_(e,t,n={}){const r=e.shardId,s=t.shardId===r?Y_(e):G_(e,t.shardId),a=[];for(const d of t.paths){const f=await s.status(d);f&&f.syncState==="conflict"&&f.branches&&f.branches.length>0&&a.push({path:d,status:f})}if(a.length===0)return{status:"resolved",resolved:[],failed:[],skipped:[]};const o=[];for(const{path:d,status:f}of a){const h=X_(d),b=[];for(const E of f.branches??[]){const y=await s.readBranch(d,E.origin).catch(()=>null);b.push({origin:E.origin,version:E.version,at:E.at,content:y??void 0,sizeBytes:y?new TextEncoder().encode(y).length:void 0})}o.push({id:d,label:d,extension:h,branches:b,meta:{shardId:t.shardId,path:d,docVersion:f.version}})}const l=await tf(o,n);if(l.status==="cancelled")return{status:"cancelled"};const c=[],u=[];for(const d of l.choices)try{await s.resolveConflict(d.itemId,{origin:d.chosen.origin});const f=await s.status(d.itemId).catch(()=>null);c.push({path:d.itemId,chosen:d.chosen,appliedVersion:f?.version??-1})}catch(f){u.push({path:d.itemId,error:f instanceof Error?f.message:String(f)})}return{status:"resolved",resolved:c,failed:u,skipped:l.skipped}}const Z_={resolve:tf,resolveDocuments:J_},nf="sh3.color-picker",Q_={id:"sh3.color-picker.native",priority:0,open:({initial:e})=>new Promise(t=>{const n=document.createElement("input");n.type="color",e&&/^#[0-9a-f]{6}$/i.test(e)&&(n.value=e);let r=!1;const s=a=>{r||(r=!0,n.remove(),t(a))};n.addEventListener("change",()=>s(n.value)),n.addEventListener("cancel",()=>s(null)),n.style.position="fixed",n.style.left="-9999px",document.body.appendChild(n),n.click()})};function $_(e={}){return[...Wa(nf),Q_].sort((r,s)=>(s.priority??0)-(r.priority??0))[0].open(e)}const ew={pick:$_};let Hn=null;function tw(e){Hn=e}async function Sr(e){return Hn?{...Hn.bindings[e]??{}}:{}}async function yc(e,t,n){if(!Hn)return;const r={...Hn.bindings[e]??{}};n===void 0?delete r[t]:r[t]=n,Hn.bindings={...Hn.bindings,[e]:r}}const $o="sh3.actions",Ii=new Set;function nw(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.`),()=>{};Ii.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.`),Ii.add(e.id);const r=Jd($o,{action:e,ownerShardId:t});let s=!1;return()=>{s||(s=!0,r(),Ii.delete(e.id))}}function et(){return Wa($o)}function rw(e){return Zd($o,e)}function Wt(e){return typeof e.label=="function"?e.label():e.label}const sw=["Ctrl","Alt","Shift","Meta"],_c={control:"Ctrl",ctrl:"Ctrl",alt:"Alt",option:"Alt",shift:"Shift",meta:"Meta",cmd:"Meta",command:"Meta",super:"Meta",win:"Meta"},aw=new Set(["Control","Alt","Shift","Meta"]);function rf(e){return e.length===1?e.toUpperCase():e}function el(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 _c)r.add(_c[l]);else{if(s!==void 0)throw new Error(`Multiple keys in shortcut: "${e}"`);s=rf(o)}}if(s===void 0)throw new Error(`No key in shortcut: "${e}"`);return[...sw.filter(o=>r.has(o)),s].join("+")}function sf(e,t){if(!e.toLowerCase().includes("mod"))return e;const n=e.split("+").map(r=>r.toLowerCase()==="mod"?t==="mac"?"Meta":"Ctrl":r);return el(n.join("+"))}function iw(e){if(aw.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=rf(e.key);return[...t,n].join("+")}function ow(){return typeof navigator>"u"?"other":/Mac|iPhone|iPad|iPod/i.test(navigator.platform)?"mac":"other"}function qs(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?null:el(r)}return e.defaultShortcut?sf(e.defaultShortcut,n):null}function lw(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?{shortcut:null,source:"disabled"}:{shortcut:el(r),source:"user"}}return e.defaultShortcut?{shortcut:sf(e.defaultShortcut,n),source:"default"}:{shortcut:null,source:"none"}}function Ya(e){return e==="home"?"home":e==="app"?"app":typeof e=="string"&&e.startsWith("view:")?"view":typeof e=="string"&&e.startsWith("focus:")?"focus":"element"}function tl(e){return Array.isArray(e)?e:[e]}function af(e){return e==="home"||e==="app"?null:typeof e=="string"?e:e.element}function Bs(e,t,n){const r=tl(e),s={};for(const a of r){const o=Ya(a);(s[o]??=[]).push(a)}for(const a of Ga){const o=s[a];if(o){for(const l of o)if(bs(l,t,n))return l}}return null}function cw(e,t){return typeof e=="string"||typeof t=="string"?e===t:e.element===t.element}function of(e){return typeof e=="string"?e:`element:${e.element}`}function uw(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 Ga=["element","focus","view","app","home"];function bs(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 dw(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=qs(r.action,t.bindings,t.platform);if(s)for(const a of tl(r.action.scope)){if(!bs(a,t,r.ownerShardId))continue;const o=Ya(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 fw(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 vw(e){return e instanceof Element?e.closest("[data-sh3-passthrough-modifiers]")!==null:!1}function hw(e){return/(?:^|\+)(?:Ctrl|Alt|Meta)\+/.test(e)}function pw(e){const t=dw(e.entries,e.state),n=new Map(e.entries.map(r=>[r.action.id,r]));for(const r of Ga){const s=t[r].get(e.shortcut);if(!s)continue;const a=n.get(s);if(a)return fw(e.target)&&!a.action.allowInInputs&&!(vw(e.target)&&hw(e.shortcut))?null:(e.runAction(s,{action:{id:a.action.id,label:Wt(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}function mw(e){const t=e.action.disabled;return typeof t=="function"?!!t():!!t}function bw(e){const t=e.action.scope;return Array.isArray(t)?t[0]:t}function nl(e,t){const n={element:[],focus:[],view:[],app:[],home:[]},r=[],s=new Set;for(const a of e){if(s.has(a.action.id))continue;s.add(a.action.id);const{shortcut:o,source:l}=lw(a.action,t.bindings,t.platform),c=Bs(a.action.scope,t,a.ownerShardId),u=typeof a.action.run=="function",d=c!==null&&u&&!mw(a),f=d?c:bw(a),h={id:a.action.id,label:Wt(a.action),effectiveShortcut:o,bindingSource:l,scope:f,scopeBadge:af(f),group:a.action.group,icon:a.action.icon,ownerShardId:a.ownerShardId,paletteItem:a.action.paletteItem!==!1,contextItem:a.action.contextItem!==!1,active:d};d?n[Ya(c)].push(h):r.push(h)}return[...Ga.flatMap(a=>n[a]),...r]}function gw(e,t){return nl(e,t).filter(n=>n.active)}let Gt=F(null);function Vs(){return i(Gt)}function Xa(e){return{get(){return i(Gt)},set(t){S(Gt,{type:t.type,ref:t.ref,ownerShardId:e},!0)},clear(){if(i(Gt)){if(i(Gt).ownerShardId!==e){console.warn(`[sh3] Shard "${e}" tried to clear selection owned by "${i(Gt).ownerShardId}". Ignoring.`);return}S(Gt,null)}}}}function lf(e){i(Gt)&&i(Gt).ownerShardId===e&&S(Gt,null)}function yw(){S(Gt,null)}const wa=new Map,cf=new Set;function _w(e){cf.add(e)}function ww(e,t){if(wa.has(e))throw new Error(`View "${e}" is already registered`);wa.set(e,t);for(const n of cf)n(e,t)}function uf(e){return wa.get(e)}function df(e){wa.delete(e)}const Lr=new Map;function kw(e,t,n){if(Lr.has(e))throw new Error(`Verb "${e}" is already registered`);Lr.set(e,{verb:t,shardId:n})}function ka(e){return Lr.get(e)?.verb}function ff(e){Lr.delete(e)}function rl(){return Array.from(Lr.values()).map(e=>e.verb).sort((e,t)=>e.name.localeCompare(t.name))}function vf(){return Array.from(Lr.values()).map(e=>({...e}))}function zr(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 sl(e,t){if(Qi(e.docked,t))return{kind:"docked"};for(const n of e.floats)if(Qi(n.content,t))return{kind:"float",floatId:n.id};return null}function Qi(e,t){if(e.type==="slot")return e.slotId===t;if(e.type==="tabs")return e.tabs.some(n=>n.slotId===t);for(const n of e.children)if(Qi(n,t))return!0;return!1}function Ja(e,t){const n=zr(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 xw(e,t,n){const r=Math.max(0,Math.min(n,e.tabs.length));e.tabs.splice(r,0,t),e.activeTab=r}function Sw(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 wc(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 Ew(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 hf(e,t,n,r){const s=gs(e,t);if(!s||pf(e,t))return;if(t.length===0){const u=Ew(s),d=wc(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=wc(s,n,r),o=t.slice(0,-1),l=t[t.length-1],c=gs(e,o);!c||c.type!=="split"||(c.children[l]=a)}function gs(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 pf(e,t){if(t.length===0)return!1;const n=gs(e,t.slice(0,-1));return!n||n.type!=="split"?!1:n.fixed?.[t[t.length-1]]===!0}function wr(e){let t=!0;for(;t;)t=mf(e,null,0)}function mf(e,t,n){if(e.type==="split"){let r=!1;for(let s=0;s<e.children.length;s++)mf(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 Pn=new Map,na=new Set;function Iw(e,t){for(const[n,r]of Pn.entries()){if(r.viewId!==e||r.handle!==void 0)continue;const s={slotId:n,viewId:e,label:r.label,meta:r.meta,setDirty(a){Za[n]=a},location(){return sl(Tt(),n)}};queueMicrotask(()=>{if(Pn.has(n)&&r.handle===void 0&&(r.handle=t.mount(r.host,s),(r.handle?.closable||n.startsWith("float:"))&&(Qa[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)}})}}_w(Iw);const Za=oe({}),Qa=oe({});function Aw(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",of(`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?uf(t):void 0,c={slotId:e,viewId:t??"",label:n,meta:r,setDirty(u){Za[e]=u},location(){return sl(Tt(),e)}};if(o.handle=l?.mount(s,c),(o.handle?.closable||e.startsWith("float:"))&&(Qa[e]=!0),o.handle?.onResize){const u=o.handle.onResize.bind(o.handle);o.resizeObserver=new ResizeObserver(d=>{for(const f of d){const h=f.contentRect;u(Math.round(h.width),Math.round(h.height))}}),o.resizeObserver.observe(s)}}),o}function al(e,t,n,r){na.delete(e);let s=Pn.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",of(`focus:${t}`))):(s.host.removeAttribute("data-sh3-view"),s.host.removeAttribute("data-sh3-scope"))):(s=Aw(e,t,n,r),Pn.set(e,s)),s.refcount++,s.host}function il(e,t){const n=Pn.get(e);if(n){if(n.refcount--,n.refcount>0){t&&n.host.parentNode===t&&n.host.remove();return}na.add(e),queueMicrotask(()=>{if(!na.has(e))return;na.delete(e);const r=Pn.get(e);!r||r.refcount>0||(r.resizeObserver?.disconnect(),r.handle?.unmount(),r.cancelPendingMount(),r.host.remove(),Pn.delete(e),delete Za[e],delete Qa[e])})}}function bf(e){const t=$i.get(e);return t||Pn.get(e)?.handle}function Cw(e){return Za[e]??!1}function Tw(e){return $i.has(e)?!!$i.get(e).closable:Qa[e]??!1}const $i=new Map;function gf(e){if(!e||typeof e!="object")return!1;const t=e.type;return t==="split"||t==="tabs"||t==="slot"}function Rw(e){if(!e||typeof e!="object")return!1;const t=e;return gf(t.docked)&&Array.isArray(t.floats)}function jw(e){return{docked:e,floats:[]}}function Pw(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 yf(e){if(Array.isArray(e))return e.map(Pw);if(Rw(e))return[{name:"default",variants:{default:e}}];if(gf(e))return[{name:"default",variants:{default:jw(e)}}];throw new Error("normalizeInitialLayout: input is not a LayoutNode, LayoutTree, or LayoutPreset[]")}function kc(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 ol(e){const t=kc(e.docked);for(const n of e.floats)t.push(...kc(n.content));return t}Wi("workspace","__shell__");const Dw={type:"slot",slotId:"sh3core.home",viewId:"sh3core:home"},Mw=oe({docked:Dw,floats:[]});let Fe=F(null),$a=F("home");function Lw(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 zw(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 Ow(e){if(i(Fe))throw new Error(`Layout manager cannot attach app "${e.manifest.id}": app "${i(Fe).appId}" is still attached`);const t=`__sh3core__:app:${e.manifest.id}`,n=yf(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=vy("workspace",t),a=Lw(s);(a&&a.layoutVersion!==e.manifest.layoutVersion||s&&!a)&&Wi("workspace",t);const l=Ha(t,{workspace:r}).workspace;S(Fe,{appId:e.manifest.id,proxy:l,heldSlotIds:[]},!0),i_(l)}function Nw(){if(!i(Fe))throw new Error("acquireAppSlotHolds: no app attached");if(i(Fe).heldSlotIds.length>0)return;const e=zw(i(Fe).proxy),t=ol(e);for(const{slotId:n,viewId:r,label:s,meta:a}of t)al(n,r,s,a),i(Fe).heldSlotIds.push(n)}function qw(){if(!i(Fe))throw new Error("resetActivePresetToDefault: no app attached");const e=Ln(i(Fe).appId);if(!e)throw new Error(`resetActivePresetToDefault: attached app "${i(Fe).appId}" not in registry`);const t=yf(e.initialLayout),n=i(Fe).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(Fe).heldSlotIds)il(l);i(Fe).heldSlotIds=[];const a=structuredClone(s.variants.default);n.presets[n.activePreset].default=a;const o=ol(a);for(const{slotId:l,viewId:c,label:u,meta:d}of o)al(l,c,u,d),i(Fe).heldSlotIds.push(l)}function _f(){if(i(Fe)){o_();for(const e of i(Fe).heldSlotIds)il(e);S(Fe,null)}}function wf(){S($a,"home")}function xc(){if(!i(Fe))throw new Error("Cannot switchToApp: no app is attached");S($a,"app")}const ra=K(()=>{if(i($a)==="app"&&i(Fe)){const e=i(Fe).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 Mw});function Tt(){return i(ra)}function kf(){return i($a)}const vn={get root(){return i(ra).docked},get tree(){return i(ra)},get floats(){return i(ra).floats}};let xf=F(null),Sf=F(oe(new Set)),sa=F(oe(new Set)),Ef=F(oe(new Set)),If=F(null),Af=F(oe({}));const Bw=ow(),eo=new Set;function Wr(){for(const e of eo)try{e()}catch(t){console.error("[sh3] onActiveChange listener threw",t)}}function Vw(e){return eo.add(e),()=>{eo.delete(e)}}function Fw(){Wr()}function xa(e,t){S(xf,e,!0),S(Sf,new Set(t),!0),Wr()}function Uw(){const e=ol(vn.tree),t=new Set;for(const n of e)n.viewId!==null&&t.add(n.viewId);S(Ef,t,!0),Wr()}function Cf(e){S(If,e,!0),Wr()}function ys(e){S(Af,{...e},!0),Wr()}function Ft(){return{activeAppId:i(xf),activeAppRequiredShards:i(Sf),autostartShards:i(sa),mountedViewIds:i(Ef),focusedViewId:i(If),selection:Vs(),bindings:i(Af),platform:Bw}}function Hw(e){i(sa).has(e)||(S(sa,new Set([...i(sa),e]),!0),Wr())}var Kw=A('<div class="sh3-ctx-sep svelte-1667pfa" role="separator"></div>'),Ww=A('<span class="sh3-ctx-chevron svelte-1667pfa">▸</span>'),Yw=A('<span class="sh3-ctx-shortcut svelte-1667pfa"> </span>'),Gw=A('<button role="menuitem"><span class="sh3-ctx-check svelte-1667pfa"> </span> <span class="sh3-ctx-label svelte-1667pfa"> </span> <!></button>'),Xw=A("<!> <!>",1),Jw=A('<div class="sh3-context-menu svelte-1667pfa" role="menu" tabindex="0"></div>');function Sa(e,t){se(t,!0);const n=K(()=>t.sections.flatMap(c=>c.items));let r=F(0);function s(c,u){if(i(n).length===0)return 0;let d=c;for(let f=0;f<i(n).length;f++)if(d=(d+u+i(n).length)%i(n).length,!i(n)[d].disabled)return d;return c}function a(c){if(c.key==="ArrowDown")S(r,s(i(r),1),!0),c.preventDefault();else if(c.key==="ArrowUp")S(r,s(i(r),-1),!0),c.preventDefault();else if(c.key==="Enter"){const u=i(n)[i(r)];u&&!u.disabled&&(t.onInvoke(u.id),u.submenu||t.onDismiss()),c.preventDefault()}else if(c.key==="Escape")t.onDismiss(),c.preventDefault();else if(c.key.length===1){const u=c.key.toLowerCase(),d=(i(r)+1)%i(n).length;for(let f=0;f<i(n).length;f++){const h=(d+f)%i(n).length,b=i(n)[h];if(!b.disabled&&b.label.toLowerCase().startsWith(u)){S(r,h);break}}}}function o(c){c.disabled||(t.onInvoke(c.id),c.submenu||t.onDismiss())}var l=Jw();Vr(l,!0),he(l,23,()=>t.sections,c=>c.id,(c,u,d)=>{var f=Xw(),h=ve(f);{var b=y=>{var g=Kw();k(y,g)};W(h,y=>{i(d)>0&&y(b)})}var E=w(h,2);he(E,17,()=>i(u).items,y=>y.id,(y,g)=>{const x=K(()=>i(n).indexOf(i(g)));var _=Gw();let m;var I=p(_),R=p(I,!0);v(I);var T=w(I,2),D=p(T,!0);v(T);var L=w(T,2);{var j=C=>{var P=Ww();k(C,P)},M=C=>{var P=Yw(),N=p(P,!0);v(P),q(()=>O(N,i(g).shortcut)),k(C,P)};W(L,C=>{i(g).submenu?C(j):i(g).shortcut&&C(M,1)})}v(_),q(()=>{m=ue(_,1,"sh3-ctx-item svelte-1667pfa",null,m,{"sh3-ctx-active":i(x)===i(r),"sh3-ctx-disabled":i(g).disabled}),ne(_,"aria-disabled",i(g).disabled||void 0),O(R,i(g).checked?"✓":""),O(D,i(g).label)}),Pe("pointerenter",_,()=>{i(g).disabled||S(r,i(x),!0)}),H("click",_,()=>o(i(g))),k(y,_)}),k(c,f)}),v(l),H("keydown",l,a),k(e,l),ae()}le(["keydown","click"]);function Tf(e,t){se(t,!0);const n=K(()=>t.model.tiers.map(r=>({id:`tier:${r.tier}`,items:r.items.map(s=>({...s,icon:void 0}))})));Sa(e,{get sections(){return i(n)},get onInvoke(){return t.onInvoke},get onDismiss(){return t.onClose}}),ae()}function Sc(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function Rf(e,t){return{id:e.action.id,label:Wt(e.action),shortcut:qs(e.action,t.bindings,t.platform),group:e.action.group??"",icon:e.action.icon,checked:Sc(e.action.checked),disabled:Sc(e.action.disabled),submenu:e.action.submenu===!0}}function jf(e,t,n,r){return tl(e.scope).some(a=>cw(a,n))?n==="app"||n==="home"||typeof n=="object"&&"element"in n?bs(n,r,t):!0:!1}function Pf(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)||!jf(a.action,a.ownerShardId,n,t))continue;const o=Bs(a.action.scope,t,a.ownerShardId)??n;s.add(a.action.id),r[Ya(o)].push(Rf(a,t))}return{tiers:Ga.map(a=>({tier:a,items:r[a]})).filter(a=>a.items.length>0)}}function Zw(e,t,n,r){const s=[],a=new Set;for(const o of e)o.action.submenuOf===n&&(a.has(o.action.id)||jf(o.action,o.ownerShardId,r,t)&&(a.add(o.action.id),s.push(Rf(o,t))));return s}function Qw(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 $w(e,t,n){const r=[];for(const a of e){if(t===""&&a.submenuOf!==void 0)continue;const o=Qw(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 e1=A('<span class="sh3-palette-badge svelte-1qdcgk6"> </span>'),t1=A('<span class="sh3-palette-shortcut svelte-1qdcgk6"> </span>'),n1=A('<button role="option"><span class="sh3-palette-label svelte-1qdcgk6"> </span> <!> <!></button>'),r1=A('<div class="sh3-palette svelte-1qdcgk6" role="dialog" aria-label="Command palette" aria-modal="true" tabindex="-1"><input class="sh3-palette-input hell-base-input svelte-1qdcgk6" placeholder="Command…"/> <div class="sh3-palette-list svelte-1qdcgk6" role="listbox"></div></div>');function s1(e,t){se(t,!0);let n=Q(t,"prefill",3,""),r=F(oe(n())),s=F(0);const a=K(()=>$w(t.candidates,i(r),t.recency));xe(()=>{i(s)>=i(a).length&&S(s,0)});function o(d){d.key==="ArrowDown"?(S(s,Math.min(i(s)+1,Math.max(0,i(a).length-1)),!0),d.preventDefault()):d.key==="ArrowUp"?(S(s,Math.max(i(s)-1,0),!0),d.preventDefault()):d.key==="Enter"?(i(a)[i(s)]&&(t.onInvoke(i(a)[i(s)].id),t.onClose()),d.preventDefault()):d.key==="Escape"&&(t.onClose(),d.preventDefault())}var l=r1(),c=p(l);ge(c),Vr(c,!0);var u=w(c,2);he(u,23,()=>i(a),d=>d.id,(d,f,h)=>{var b=n1();let E;var y=p(b),g=p(y,!0);v(y);var x=w(y,2);{var _=R=>{var T=e1(),D=p(T);v(T),q(()=>O(D,`[${i(f).scopeBadge??""}]`)),k(R,T)};W(x,R=>{i(f).scopeBadge&&R(_)})}var m=w(x,2);{var I=R=>{var T=t1(),D=p(T,!0);v(T),q(()=>O(D,i(f).shortcut)),k(R,T)};W(m,R=>{i(f).shortcut&&R(I)})}v(b),q(()=>{E=ue(b,1,"sh3-palette-item svelte-1qdcgk6",null,E,{"sh3-palette-active":i(h)===i(s)}),ne(b,"aria-selected",i(h)===i(s)),O(g,i(f).label)}),Pe("pointerenter",b,()=>S(s,i(h),!0)),H("click",b,()=>{t.onInvoke(i(f).id),t.onClose()}),k(d,b)}),v(u),v(l),H("keydown",l,o),Se(c,()=>i(r),d=>S(r,d)),k(e,l),ae()}le(["keydown","click"]);function a1(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function i1(e,t,n={}){const r=[],s=new Set,a=n.filter?.submenuOf;for(const o of e){if(o.action.paletteItem===!1||a1(o.action.disabled)||a!==void 0&&o.action.submenuOf!==a||s.has(o.action.id))continue;const l=Bs(o.action.scope,t,o.ownerShardId);l&&(s.add(o.action.id),r.push({id:o.action.id,label:Wt(o.action),shortcut:qs(o.action,t.bindings,t.platform),scopeBadge:af(l),submenu:o.action.submenu===!0,submenuOf:a!==void 0?void 0:o.action.submenuOf}))}return r}let Ec=!1;function ll(e){return e?e.closest("[data-sh3-view]")?.getAttribute("data-sh3-view")??null:null}function Df(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=uw(n.getAttribute("data-sh3-scope")??"");if(s&&!(typeof s=="object"&&"element"in s&&!bs(s,e.state)))return s;const a=n.parentElement;n=a?a.closest("[data-sh3-scope]"):null}const r=ll(t);if(r)return`focus:${r}`}return e.state.activeAppId?"app":"home"}function o1(e,t){const n=et().find(r=>r.action.id===e);if(!(!n||typeof n.action.run!="function"))try{n.action.run(t)}catch(r){console.error(`[sh3] action "${e}" threw:`,r)}}function cl(e,t){const n=et(),r=n.find(l=>l.action.id===e);if(!r)return Promise.reject(new Error(`action "${e}" not registered`));const s=Ft(),a=nl(n,s).find(l=>l.id===e);if(!a||!a.active)return Promise.reject(new Error(`action "${e}" is not active in current scope`));const o=r.action.run;try{const l=o({action:{id:r.action.id,label:Wt(r.action)},appId:s.activeAppId,viewId:s.focusedViewId??void 0,selection:s.selection??void 0,invokedVia:"programmatic",dispatch:Yr});return Promise.resolve(l).then(()=>{})}catch(l){return Promise.reject(l)}}function Yr(e){cl(e).catch(t=>{console.error(`[sh3] ctx.dispatch("${e}"):`,t)})}function l1(e){const t=ll(e.target);Cf(t)}function c1(e){queueMicrotask(()=>{const t=ll(document.activeElement);Cf(t)})}function u1(e){return e instanceof Element?e.closest('[data-sh3-context-menu="native"]')!==null:!1}function Mf(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=Zw(et(),t,e,r);Be(Sa,{target:a,props:{sections:[{id:`submenu:${e}`,items:c}],onInvoke:u=>{const d=et().find(f=>f.action.id===u);if(!(!d||typeof d.action.run!="function")){try{d.action.run({action:{id:u,label:Wt(d.action)},appId:t.activeAppId,viewId:t.focusedViewId??void 0,selection:t.selection??void 0,invokedVia:"context-menu",dispatch:Yr})}catch(f){console.error(`[sh3] context-menu submenu action "${u}" threw:`,f)}n.close()}},onDismiss:()=>n.close()}})}function d1(e){if(u1(e.target))return;const t=et(),n=Ft(),r=Df({event:e,state:n}),s=Pf(t,n,r);if(s.tiers.length===0)return;e.preventDefault();const a=bn.popup.show(Tf,{anchor:{x:e.clientX,y:e.clientY}},{model:s,onInvoke:o=>{const l=et().find(c=>c.action.id===o);if(l){if(l.action.submenu===!0){Mf(o,n,a,r);return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:Wt(l.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:Yr})}catch(c){console.error(`[sh3] context-menu action "${o}" threw:`,c)}}},onClose:()=>a.close()})}function f1(e){const t=iw(e);if(!t)return;const n=et(),r=Ft();pw({target:e.target,shortcut:t,state:r,entries:n,runAction:o1,dispatch:Yr})&&e.preventDefault()}function Lf(){Ec||(Ec=!0,document.addEventListener("keydown",f1),document.addEventListener("focusin",l1),document.addEventListener("focusout",c1),document.addEventListener("contextmenu",d1))}function ul(e){const t=et(),n=Ft(),r=Df({explicit:e.scope,state:n}),s=Pf(t,n,r);if(s.tiers.length===0)return;const a=bn.popup.show(Tf,{anchor:{x:e.x,y:e.y}},{model:s,onInvoke:o=>{const l=et().find(c=>c.action.id===o);if(l){if(l.action.submenu===!0){Mf(o,n,a,r);return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:Wt(l.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:Yr})}catch(c){console.error(`[sh3] context-menu action "${o}" threw:`,c)}}},onClose:()=>a.close()})}const v1=20;let to=[];function h1(e){to=[e,...to.filter(t=>t!==e)].slice(0,v1)}function ei(e){const t=et(),n=Ft(),r=i1(t,n,{filter:e?.filter}),s=typeof document<"u"&&document.activeElement instanceof HTMLElement?document.activeElement:null,a=bn.modal.open(s1,{candidates:r,recency:to,prefill:e?.prefill??"",onInvoke:o=>{const l=et().find(c=>c.action.id===o);if(l){if(h1(o),l.action.submenu===!0&&typeof l.action.run!="function"){a.close(),ei({filter:{submenuOf:o}});return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:Wt(l.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"palette",dispatch:Yr})}catch(c){console.error(`[sh3] palette action "${o}" threw:`,c)}}},onClose:()=>a.close()},{dismissOnBackdrop:!0});if(s){const o=a.close;a.close=()=>{o(),queueMicrotask(()=>{(document.activeElement===document.body||document.activeElement===null)&&s.focus()})}}}const p1=Object.freeze(Object.defineProperty({__proto__:null,attachGlobalListeners:Lf,dispatchActionProgrammatic:cl,openContextMenu:ul,openPalette:ei},Symbol.toStringTag,{value:"Module"})),m1={async rebind(e,t,n){await yc(e,t,n),Ft().activeAppId===e&&ys(await Sr(e))},async resetBinding(e,t){await yc(e,t,void 0),Ft().activeAppId===e&&ys(await Sr(e))},async bindingsFor(e){const t=await Sr(e),n={};for(const[r,s]of Object.entries(t))s!==null&&(n[r]=s);return n},openContextMenu:ul,openPalette:ei,listActive(){return gw(et(),Ft())},onActiveChange(e){const t=Vw(e),n=rw(()=>{Fw()});return()=>{t(),n()}}},bn={state:Ha,modal:Kt,popup:Gi,toast:dn,float:Ce,presets:d_,conflicts:Z_,color:ew,actions:m1};function b1(e){return rn[e].list()}function g1(e,t){return rn[e].read(t)}function y1(e,t){rn[e].delete(t)}function _1(e){for(const t of rn[e].list())rn[e].delete(t)}function zf(){return{list:b1,peek:g1,clear:y1,clearAll:_1}}function dr(e,t,n){return`${e}/${t}/${n}`}function w1(e,t){return`${e}/${t}/`}const k1="sh3-documents",Mt="docs",x1=2;class S1{#e=null;#t(){return this.#e||(this.#e=new Promise((t,n)=>{const r=indexedDB.open(k1,x1);r.onupgradeneeded=()=>{const s=r.result;s.objectStoreNames.contains(Mt)||s.createObjectStore(Mt)},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(Mt,t).objectStore(Mt),c=n(l);c.onsuccess=()=>s(c.result),c.onerror=()=>a(c.error)})}async read(t,n,r){const s=dr(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=dr(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=dr(t,n,r);await this.#n("readwrite",a=>a.delete(s))}async rename(t,n,r,s){const a=dr(t,n,r),o=dr(t,n,s),l=await this.#t();return new Promise((c,u)=>{let d=!1;const f=l.transaction(Mt,"readwrite"),h=f.objectStore(Mt),b=h.get(a);b.onsuccess=()=>{const E=b.result;if(!E){d=!0,f.abort(),u(new Error(`Document not found at ${r}`));return}const y=h.getKey(o);y.onsuccess=()=>{if(y.result!==void 0){d=!0,f.abort(),u(new Error(`Document already exists at ${s}`));return}const g={...E,lastModified:Date.now()};h.put(g,o),h.delete(a)},y.onerror=()=>u(y.error)},b.onerror=()=>u(b.error),f.oncomplete=()=>c(),f.onerror=()=>{d||u(f.error)},f.onabort=()=>{}})}async list(t,n){const r=w1(t,n),s=await this.#t();return new Promise((a,o)=>{const c=s.transaction(Mt,"readonly").objectStore(Mt),u=IDBKeyRange.bound(r,r+"",!1,!1),d=c.openCursor(u),f=[];d.onsuccess=()=>{const h=d.result;if(h){const b=h.value;f.push({path:h.key.slice(r.length),size:b.size,lastModified:b.lastModified}),h.continue()}else a(f)},d.onerror=()=>o(d.error)})}async exists(t,n,r){const s=dr(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(Mt,"readonly").objectStore(Mt),c=IDBKeyRange.bound(n,n+"",!1,!1),u=l.openKeyCursor(c),d=new Set;u.onsuccess=()=>{const f=u.result;if(f){const h=f.key.slice(n.length),b=h.indexOf("/");b>=0&&d.add(h.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(Mt,"readonly").objectStore(Mt),c=IDBKeyRange.bound(n,n+"",!1,!1),u=l.openCursor(c),d=[];u.onsuccess=()=>{const f=u.result;if(f){const h=f.key.slice(n.length),b=h.indexOf("/");if(b>=0){const E=f.value;d.push({shardId:h.slice(0,b),path:h.slice(b+1),size:E.size,lastModified:E.lastModified})}f.continue()}else s(d)},u.onerror=()=>a(u.error)})}}const E1="local";let dl=E1,Of=new S1;function Nf(){return dl}function aa(){return dl}function no(){return Of}function ia(e){dl=e}function qf(e){Of=e}const I1=Object.freeze(Object.defineProperty({__proto__:null,__setActiveScope:ia,__setDocumentBackend:qf,getActiveScopeId:Nf,getDocumentBackend:no,getTenantId:aa},Symbol.toStringTag,{value:"Module"})),sr=oe({activeProjectId:null});function Bf(e){if(sr.activeProjectId===e)return;const t=it.id;sr.activeProjectId=e,Mr.id=null,t&&Cr(()=>Promise.resolve().then(()=>C1),void 0).then(n=>n.unloadApp(t))}const Vf=Ha("__sh3core__:last-app",{user:{id:null}});function Ff(){return Vf.user.id}function _s(e){Vf.user.id=e}function Uf(){_s(null)}const ro=new Map;function A1(){return sr.activeProjectId??Nf()}function Ys(e,t){let n=ro.get(e);if(!n){const r=Ln(e),s=A1();n={scopeId:s,state:a=>Ha(`__app__:${e}:scope:${s}`,a),zones:r?.manifest.permissions?.includes(Ua)?zf():void 0},ro.set(e,n)}return n}async function Sn(e){const t=Ln(e);if(!t)throw new Error(`Cannot launch app "${e}": not registered`);if(it.id&&it.id!==e)fl(it.id);else if(it.id===e){for(const n of t.manifest.requiredShards){const r=pn.get(n),s=uk(n);r&&s&&r.resume?.(s)}t.resume?.(Ys(e)),xc(),t.onAppReady?.(Ys(e)),_s(e),Mr.id=e,xa(e,new Set(t.manifest.requiredShards??[])),Sr(e).then(ys);return}for(const n of t.manifest.requiredShards)if(!pn.has(n))throw new Error(`App "${e}" requires shard "${n}" which is not registered`);Ow(t);try{for(const n of t.manifest.requiredShards)await vv(n,{phase:"launch"})}catch(n){_f();try{dn.notify(`Couldn't launch "${t.manifest.label??e}": ${n instanceof Error?n.message:String(n)}`,{level:"error",duration:6e3})}catch{}throw n}Nw(),t.activate?.(Ys(e)),it.id=e,xa(e,new Set(t.manifest.requiredShards??[])),Sr(e).then(ys),xc(),t.onAppReady?.(Ys(e)),_s(e),Mr.id=e}function fl(e){if(it.id!==e)return;const t=Ln(e);if(t){t.deactivate?.(),wf(),_f();for(const n of t.manifest.requiredShards){const r=pn.get(n);r&&(r.autostart||ii(n))}it.id=null,xa(null,new Set),yw(),Nd(),Sr("sh3.home").then(ys),ro.delete(e)}}function ti(e){Mn.has(e)&&(it.id===e&&(fl(e),_s(null)),Mn.delete(e))}async function Fs(){const e=it.id?Ln(it.id):null;if(e){for(const t of e.manifest.requiredShards){const n=pn.get(t);if(n?.suspend&&await n.suspend()===!1)return!1}if(e.suspend&&await e.suspend()===!1)return!1}return Nd(),wf(),xa(null,new Set),_s(null),!0}const C1=Object.freeze(Object.defineProperty({__proto__:null,clearLastApp:Uf,launchApp:Sn,readLastApp:Ff,returnToHome:Fs,unloadApp:fl,unregisterApp:ti},Symbol.toStringTag,{value:"Module"}));function Hf(){return{root:Tt(),source:kf()}}function T1(e){const t=Tt().docked,n=hl(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 R1(e){const t=Tt();return ri(t.docked,n=>n.slotId===e)?!0:Kf(t,n=>n.slotId===e)}function ni(e){const t=Tt();return ri(t.docked,n=>n.viewId===e)?!0:Kf(t,n=>n.viewId===e)}function ri(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(ri(n,t))return!0}return!1}function Kf(e,t){for(const n of e.floats)if(ri(n.content,t))return Ce.focus(n.id),!0;return!1}function j1(e,t){return Wf(e,t,!0)}function P1(e,t){return Wf(e,t,!1)}function Wf(e,t,n){const r=Tt().docked,s=gs(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 vl(e){const t=Tt(),n=t.docked;if(!zr(n,e))return D1(t,e);const a=bf(e)?.closable;return!a||typeof a=="object"&&(!await a.canClose()||!zr(n,e))?!1:(Ja(n,e),wr(n),!0)}async function D1(e,t){for(const n of e.floats){if(!zr(n.content,t))continue;const a=bf(t)?.closable;if(typeof a=="object"&&(!await a.canClose()||!zr(n.content,t)))return!1;Ja(n.content,t);const o=n.content.type==="tabs"?n.content:null;return(!o||o.tabs.length===0)&&Ce.close(n.id),!0}return!1}function Yf(e){const t=Tt(),n=zr(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 Ja(t.docked,e),wr(t.docked),Ce.open(s,{title:a,meta:o})}function Gf(e){const n=Tt().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 Ce.close(e),!1;const a=s.tabs[s.activeTab??0]??s.tabs[0],o=pl({slotId:a.slotId,viewId:a.viewId,label:a.label,meta:a.meta});return o&&Ce.close(e),o}function hl(e){if(e.type==="tabs")return e;if(e.type==="split")for(const t of e.children){const n=hl(t);if(n)return n}return null}function Xf(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=Xf(e.children[n],[...t,n]);if(r)return r}return null}function pl(e){const t=Tt().docked;if(ni(e.viewId??""))return!0;const n=hl(t);if(n)return n.tabs.push(e),n.activeTab=n.tabs.length-1,!0;const r=Xf(t);return r?(hf(t,r,e,"right"),!0):!1}function Jf(e){return sl(Tt(),e)}let Gr=F(null),hn=F(null),Xr=F(!1),si="",so=null;function Ic(e,t){si=e,so=t.auth,S(Gr,t.user,!0),S(hn,t.session,!0),S(Xr,!t.session&&!t.user,!0)}async function Zf(e,t){try{const n=await fetch(`${si}/api/auth/login`,{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:e,password:t})});if(!n.ok)return{ok:!1,error:(await n.json().catch(()=>({}))).error||"Login failed"};const r=await n.json();return S(Gr,r.user,!0),S(hn,r.session,!0),S(Xr,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function M1(e,t,n){try{const r=await fetch(`${si}/api/auth/register`,{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:e,password:t,displayName:n})});if(!r.ok)return{ok:!1,error:(await r.json().catch(()=>({}))).error||"Registration failed"};const s=await r.json();return S(Gr,s.user,!0),S(hn,s.session,!0),S(Xr,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function L1(){try{await fetch(`${si}/api/auth/logout`,{method:"POST",credentials:"include"})}catch{}if(so?.required&&!so.guestAllowed){window.location.reload();return}S(Gr,null),S(hn,null),S(Xr,!0)}function z1(){S(Gr,{id:"local",username:"local",displayName:"Local Owner",role:"admin",createdAt:"",updatedAt:""},!0),S(hn,{token:"local",userId:"local",role:"admin",expiresAt:1/0},!0),S(Xr,!1)}function O1(){return i(hn)?.token==="local"}function bt(){return i(hn)?.role==="admin"}function ao(){return i(hn)!==null}function Qf(){return i(Xr)}function Or(){return i(Gr)}function ai(){return i(hn)?`Bearer ${i(hn).token}`:null}const Ac=["ephemeral","session","workspace","user"];function $f(e){return e.type==="tabs"?e.tabs.filter(t=>t.viewId!==null):e.type==="split"?e.children.flatMap($f):e.viewId!==null?[{slotId:e.slotId,viewId:e.viewId,label:e.viewId}]:[]}function ev(e){return{listApps(){return Kr().map(t=>({id:t.id,label:t.label}))},getActiveApp(){const t=zd();return t?{id:t.id,label:t.label}:null},launchApp(t){Sn(t)},listShards(){return Array.from(pn.values()).map(t=>({id:t.manifest.id,label:t.manifest.label,version:t.manifest.version}))},listViewsInCurrentLayout(){try{const{root:t}=Hf();return $f(t.docked).map(n=>({slotId:n.slotId,viewId:n.viewId??"",label:n.label}))}catch{return[]}},openViewInCurrentLayout(t){try{if(ni(t))return{ok:!0};const n=ws().find(r=>r.viewId===t);if(n){const r=`standalone:${t}:${Date.now()}`;return pl({slotId:r,viewId:t,label:n.label})?{ok:!0}:{ok:!1,error:`could not dock "${t}" — no available slot`}}return{ok:!1,error:`view "${t}" not found in current layout`}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}},listStandaloneViews(){return ws()},popoutSlot(t){try{const n=Yf(t);return n?{ok:!0,floatId:n}:{ok:!1,error:`slot "${t}" not found in docked tree`}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}},dockFloat(t){try{return Gf(t)?{ok:!0}:{ok:!1,error:`float "${t}" not found or has no dockable content`}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}},locateSlot(t){try{return Jf(t)}catch{return null}},listFloats(){return Ce.list().map(t=>{const n=t.content.type==="tabs"?t.content:null,r=n?n.tabs[n.activeTab??0]??n.tabs[0]:null;return{floatId:t.id,viewId:r?.viewId??null,label:t.title??r?.label??t.id}})},closeSlot(t){return vl(t),{ok:!0}},listZones(t){if(!e)return[];const n=new Map;for(const r of Ac)for(const s of e.list(r)){if(t&&s!==t)continue;let a=n.get(s);a||(a=new Set,n.set(s,a)),a.add(r)}return Array.from(n.entries()).map(([r,s])=>({shardId:r,zones:Array.from(s)}))},readZone(t,n){return!e||!Ac.includes(n)?null:e.peek(n,t)??null},whoAmI(){return{userId:Or()?.id??"guest",admin:bt()}},setMode(t){return!1},listModes(){return[]},getMode(){return{id:"sh3",label:"sh3"}}}}const N1=2e3;let io=0;function q1(){return`e${++io}`}function B1(e){if(e.length<2||e.charCodeAt(0)!==101)return NaN;const t=Number(e.slice(1));return Number.isInteger(t)?t:NaN}class V1{#e;get entries(){return i(this.#e)}set entries(t){S(this.#e,t,!0)}constructor(t=N1){this.#e=F(oe([])),this.cap=t}push(t){const n=this.entries[this.entries.length-1];if(n&&n.kind==="text"&&t.kind==="text"&&n.stream===t.stream){n.chunks.push(...t.chunks);return}const r={...t,id:q1()};this.entries.push(r),this.entries.length>this.cap&&this.entries.splice(0,this.entries.length-this.cap)}clear(){this.entries.length=0}restore(t){let n=0;for(const r of t){const s=B1(r.id);Number.isFinite(s)&&s>n&&(n=s)}n>io&&(io=n),this.entries.splice(0,this.entries.length,...t)}}const Cc=[1e3,2e3,5e3,1e4];class tv{#e;get connected(){return i(this.#e)}set connected(t){S(this.#e,t,!0)}#t;get cwd(){return i(this.#t)}set cwd(t){S(this.#t,t,!0)}#n;get tenantRoot(){return i(this.#n)}set tenantRoot(t){S(this.#n,t,!0)}#s;get env(){return i(this.#s)}set env(t){S(this.#s,t,!0)}#r;get historyByMode(){return i(this.#r)}set historyByMode(t){S(this.#r,t,!0)}#i;get lastSeq(){return i(this.#i)}set lastSeq(t){S(this.#i,t,!0)}constructor(t){this.url=t,this.ws=null,this.handlers=new Set,this.pendingHistoryLogs=[],this.backoffIndex=0,this.closed=!1,this.#e=F(!1),this.#t=F(""),this.#n=F(""),this.#s=F(oe({})),this.#r=F(oe({})),this.#i=F(0)}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.tenantRoot=n.tenantRoot,this.env=n.env,this.lastSeq=n.seq),n.t==="cwd"&&(this.cwd=n.cwd),n.t==="history-bundle"&&(this.historyByMode=n.byMode);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=Cc[Math.min(this.backoffIndex,Cc.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 nv{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 F1(e){const t=ka(e);if(!t)return null;const r=vf().find(s=>s.verb===t);return r?{verb:r.verb,shardId:r.shardId}:null}async function rv(e,t,n,r){if(!ar.has(e))throw new Error(`unknown shard: ${e}`);const s=ka(t);if(!s)throw new Error(`unknown verb: ${t}`);if(!s.programmatic)throw new Error(`verb "${t}" is not programmatic`);const a=[],o=H1(a),l=await U1({sinkScrollback:o,opts:r});return{result:await s.run(l,n),scrollback:a}}async function U1(e){const t={shell:ev(),scrollback:e.sinkScrollback,session:K1(),cwd:"/",fs:new nv,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=F1(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 H1(e){let t=0;return{entries:e,push(r){const s={...r,id:`runverb-${++t}`};e.push(s)},clear(){e.length=0}}}function K1(){return new tv("")}class W1{#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 Y1{#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 Rn=new Y1,G1=1e3;function X1(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){Rn.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),Rn.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=Rn.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 J1(c,u,d?.debounceMs??G1);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 J1{#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 Z1="sync:peer",Q1="sync:policy";let Jr="";function sv(e){Jr=e}async function $1(e){const t=await fetch(`${Jr}/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 ek(e,t){if(!bt())throw new Error("Cannot update env state: not elevated to admin");const n=ai(),r={"Content-Type":"application/json"};n&&(r.Authorization=n);const s=await fetch(`${Jr}/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 ml(e,t,n){if(!bt())throw new Error("Cannot install: not elevated to admin");const r=ai(),s=new FormData;s.append("manifest",new Blob([JSON.stringify(e)],{type:"application/json"}),"manifest.json"),s.append("client",new Blob([t],{type:"application/javascript"}),"client.js"),n!==void 0&&s.append("server",new Blob([n],{type:"application/javascript"}),"server.js");const a={};r&&(a.Authorization=r);const o=await fetch(`${Jr}/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 tk(e){if(!bt())throw new Error("Cannot uninstall: not elevated to admin");const t=ai(),n={"Content-Type":"application/json"};t&&(n.Authorization=t);const r=await fetch(`${Jr}/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 nk(){const e=await fetch(`${Jr}/api/packages`);return e.ok?await e.json():[]}const av="documents:browse",iv="documents:read",ov="documents:write";function rk(e,t,n={canRead:!1,canWrite:!1}){const r={listDocuments:()=>t.listAllDocuments(e),listShards:()=>t.listAllShards(e),watchDocuments:s=>Rn.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),Rn.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),Rn.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),Rn.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&&Rn.emit({type:"delete",path:a,tenantId:e,shardId:s})}),r}const lv="keys:mint";class cv extends Error{constructor(t){super(`Shard may not mint a key with scope '${t}' — not declared in manifest.`),this.name="ScopeEscalationError"}}class uv extends Error{constructor(){super("User denied key creation."),this.name="ConsentDeniedError"}}const oo=new Map;let ls=null;function dv(e){return ls=e,()=>{ls===e&&(ls=null)}}async function sk(e,t){if(!ls)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=>{oo.set(n,{resolve:r}),ls({...t,shardId:e,requestId:n})})}function lo(e,t){const n=oo.get(e);n&&(oo.delete(e),n.resolve(t))}const Ea=new Map,oa=new Map,ak=5e3;function ik(e,t){let n=oa.get(e);n||(n=new Set,oa.set(e,n)),n.add(t),setTimeout(()=>{n.delete(t),n.size===0&&oa.delete(e)},ak)}function ok(e,t){return oa.get(e)?.has(t)??!1}function bl(e,t){const n=Ea.get(e)??new Set;return n.add(t),Ea.set(e,n),()=>{n.delete(t)}}function fv(e,t){if(!e||ok(e,t))return;ik(e,t);const n=Ea.get(e);if(n)for(const s of n)s(t);const r=Ea.get("*");if(r)for(const s of r)s(t)}function lk(){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);fv(n.shardId,n.id)}catch{}},()=>e.close()}function ck(e){const{shardId:t,shardPermissions:n}=e,r=s=>{for(const a of s)if(!n.includes(a)&&!n.includes("admin:*"))throw new cv(a)};return{async mint(s){if(r(s.scopes),!await sk(t,s))throw new uv;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}`);fv(t,s)}}}const pn=oe(new Map),Er=new Map,ar=oe(new Map),Ia=oe(new Map);function gl(e){const t=e.manifest.id;pn.has(t)&&ar.has(t)&&ii(t),pn.set(t,e),Ia.delete(t)}async function vv(e,t){const n=pn.get(e);if(!n)throw new Error(`Cannot activate shard "${e}": not registered`);if(Er.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=Jd(l,c);return r.cleanupFns.push(async()=>u()),u},list(l){return Wa(l)},listPoints(){return f_()},onChange(l,c){const u=Zd(l,c);return r.cleanupFns.push(async()=>u()),u},onAnyChange(l){const c=v_(l);return r.cleanupFns.push(async()=>c()),c}},o={state:l=>bn.state(e,l),registerView:(l,c)=>{ww(l,c),r.viewIds.add(l)},registerVerb:l=>{const c=e==="shell"?l.name:`${e}:${l.name}`;kw(c,{...l,name:c},e),r.verbNames.add(c)},documents:l=>{const c=X1(aa(),e,no(),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=tr(s.proxy);Object.assign(s.proxy,l);try{const u=tr(s.proxy);await ek(e,u)}catch(u){throw Object.assign(s.proxy,c),u}},get isAdmin(){return bt()},get tenantId(){return aa()},zones:n.manifest.permissions?.includes(Ua)?zf():void 0,browse:n.manifest.permissions?.includes(av)?rk(aa(),no(),{canRead:n.manifest.permissions.includes(iv),canWrite:n.manifest.permissions.includes(ov)}):void 0,keys:n.manifest.permissions?.includes(lv)?ck({shardId:e,shardPermissions:n.manifest.permissions??[]}):void 0,contributions:a,actions:{register(l){const c=nw(l,e);return r.cleanupFns.push(async()=>c()),c},selection:Xa(e),openContextMenu(l){ul(l)},openPalette(l){ei(l)}},listVerbs(l){const c=vf();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 rv(l,c,u,d)},listActions(l){const c=nl(et(),Ft());return l?.activeOnly?c.filter(u=>u.active):c},runAction(l,c){return cl(l)}};if(r.ctx=o,n.onKeyRevoked){const l=bl(e,async c=>{try{await n.onKeyRevoked(c)}catch(u){console.error(`[sh3] onKeyRevoked failed in "${e}":`,u)}});r.cleanupFns.push(async()=>l())}Er.set(e,r),ar.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 $1(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)ff(c);for(const c of r.viewIds)df(c);throw lf(e),Er.delete(e),ar.delete(e),Ia.set(e,{id:e,error:l,phase:t?.phase??"launch",timestamp:Date.now()}),console.error(`[sh3] Shard "${e}" failed to activate:`,l),l}Ia.delete(e),n.autostart?.(o)}function ii(e){const t=Er.get(e);if(t){t.shard.deactivate?.();for(const n of t.cleanupFns)n();for(const n of t.verbNames)ff(n);for(const n of t.viewIds)df(n);lf(e),Er.delete(e),ar.delete(e)}}function uk(e){return Er.get(e)?.ctx}function ws(){const e=[];for(const t of ar.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 ht extends Error{constructor(t,n){super(`Registry validation error at ${t}: ${n}`),this.name="RegistryValidationError",this.path=t}}function hv(e){if(!e||typeof e!="object"||Array.isArray(e))throw new ht("$","expected an object");const t=e;if(t.version!==1)throw new ht("$.version",`expected 1, got ${JSON.stringify(t.version)}`);if(!Array.isArray(t.packages))throw new ht("$.packages","expected an array");return{version:1,packages:t.packages.map((r,s)=>dk(r,`$.packages[${s}]`))}}function dk(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new ht(t,"expected an object");const n=e;Xt(n,"id",t),hk(n,"type",["shard","app","combo"],t),Xt(n,"label",t),Xt(n,"description",t);const r=`${t}.author`;if(!n.author||typeof n.author!="object"||Array.isArray(n.author))throw new ht(r,"expected an object");const s=n.author;if(typeof s.name!="string"||s.name.length===0)throw new ht(`${r}.name`,"expected a non-empty string");if(!Array.isArray(n.versions)||n.versions.length===0)throw new ht(`${t}.versions`,"expected a non-empty array");const a=n.versions.map((o,l)=>fk(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 fk(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new ht(t,"expected an object");const n=e;Xt(n,"version",t),Xt(n,"contractVersion",t);const r="bundleUrl"in n&&n.bundleUrl!==void 0,s="integrity"in n&&n.integrity!==void 0;if(r&&Xt(n,"bundleUrl",t),s&&Xt(n,"integrity",t),r!==s)throw new ht(t,"bundleUrl and integrity must be provided together");const a="serverBundleUrl"in n&&n.serverBundleUrl!==void 0;if(a&&Xt(n,"serverBundleUrl",t),"serverIntegrity"in n&&n.serverIntegrity!==void 0&&Xt(n,"serverIntegrity",t),!r&&!a)throw new ht(t,"expected at least one of bundleUrl+integrity or serverBundleUrl");let o;if(n.requires!==void 0){if(!Array.isArray(n.requires))throw new ht(`${t}.requires`,"expected an array");o=n.requires.map((l,c)=>vk(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 vk(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new ht(t,"expected an object");const n=e;return Xt(n,"id",t),Xt(n,"versionRange",t),{id:n.id,versionRange:n.versionRange}}function Xt(e,t,n){const r=e[t];if(typeof r!="string"||r.length===0)throw new ht(`${n}.${t}`,"expected a non-empty string")}function hk(e,t,n,r){if(!n.includes(e[t]))throw new ht(`${r}.${t}`,`expected one of: ${n.join(", ")}`)}const Tc=["sha256","sha384","sha512"];function pk(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(!Tc.includes(n))throw new Error(`Unsupported SRI algorithm: ${n}. Supported: ${Tc.join(", ")}`);if(!r)throw new Error(`Empty hash in SRI: ${e}`);return{algorithm:n,hash:r}}function mk(e){return`SHA-${e.slice(3)}`}function bk(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 yl(e,t){const{algorithm:n,hash:r}=pk(t),s=mk(n),a=await crypto.subtle.digest(s,e),o=bk(a);if(o!==r)throw new Error(`Integrity check failed for ${n}. Expected: ${r}, got: ${o}`)}async function pv(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=hv(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 oi(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 yl(s,e.integrity),s}async function _l(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 yl(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 li(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 cs="sh3.shell.mode";function gk(e,t){return e.contributions.register(cs,t)}const sn="0.15.2",wl="sh3:user:__sh3core__:theme";let ks=[];function yk(e){const t=Object.keys(e);for(const n of ks)t.includes(n)||document.documentElement.style.removeProperty(`--${n}`);for(const[n,r]of Object.entries(e))document.documentElement.style.setProperty(`--${n}`,r);ks=t;try{localStorage.setItem(wl,JSON.stringify(e))}catch{}}function _k(){for(const e of ks)document.documentElement.style.removeProperty(`--${e}`);ks=[];try{localStorage.removeItem(wl)}catch{}}function mv(){try{const e=localStorage.getItem(wl);if(!e)return{};const t=JSON.parse(e);return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{}}catch{return{}}}function wk(){const e=mv();if(Object.keys(e).length!==0){for(const[t,n]of Object.entries(e))document.documentElement.style.setProperty(`--${t}`,n);ks=Object.keys(e)}}const zn="/assets/icons-2eVU8BA9.svg",bv=Symbol("sh3.icon-sprite");function kk(e){xo(bv,e)}function gv(){return ko(bv)}var xk=No('<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>'),Sk=No('<svg class="sh3-btn__icon svelte-t4hi97" aria-hidden="true"><use></use></svg>'),Ek=A('<span class="sh3-btn__label svelte-t4hi97"><!></span>'),Ik=A("<button><!> <!></button>");function Ak(e,t){se(t,!0);let n=Q(t,"variant",3,"default"),r=Q(t,"disabled",3,!1),s=Q(t,"type",3,"button");const a=gv();function o(m){return m.includes("/")||m.endsWith(".svg")}const l=K(()=>t.icon?o(t.icon)?t.icon:`${t.sprite??a??zn}#${t.icon}`:void 0);let c=F(!1);const u=K(()=>t.loading??i(c)),d=K(()=>n()==="icon"||!!t.icon&&!t.children);async function f(m){if(!t.onclick)return;const I=t.onclick(m);if(I&&typeof I.then=="function"){S(c,!0);try{await I}finally{S(c,!1)}}}var h=Ik();let b;var E=p(h);{var y=m=>{var I=xk();k(m,I)},g=m=>{var I=Sk(),R=p(I);v(I),q(()=>ne(R,"href",i(l))),k(m,I)};W(E,m=>{i(u)?m(y):i(l)&&m(g,1)})}var x=w(E,2);{var _=m=>{var I=Ek(),R=p(I);Ht(R,()=>t.children),v(I),k(m,I)};W(x,m=>{t.children&&m(_)})}v(h),q(()=>{ne(h,"type",s()),b=ue(h,1,`sh3-btn sh3-btn--${n()??""}`,"svelte-t4hi97",b,{"sh3-btn--icon-only":i(d)}),h.disabled=r()||i(u),ne(h,"aria-busy",i(u)||void 0),ne(h,"title",t.title),ne(h,"aria-label",t.ariaLabel??(i(d)?t.title:void 0))}),H("click",h,f),k(e,h),ae()}le(["click"]);var Ck=A('<span class="sh3-collapsible__title svelte-lvydsb"> </span>'),Tk=A('<div class="sh3-collapsible__body svelte-lvydsb"><!></div>'),Rk=A('<div><button class="sh3-collapsible__head svelte-lvydsb" type="button"><svg class="sh3-collapsible__caret svelte-lvydsb" aria-hidden="true" viewBox="0 0 16 16"><path d="M5 3l6 5-6 5" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg> <!></button> <!></div>');function jk(e,t){se(t,!0);let n=Q(t,"open",15,!1);function r(){n(!n()),t.onopenchange?.(n())}var s=Rk();let a;var o=p(s),l=w(p(o),2);{var c=h=>{var b=qe(),E=ve(b);Ht(E,()=>t.header),k(h,b)},u=h=>{var b=Ck(),E=p(b,!0);v(b),q(()=>O(E,t.title)),k(h,b)};W(l,h=>{t.header?h(c):t.title&&h(u,1)})}v(o);var d=w(o,2);{var f=h=>{var b=Tk(),E=p(b);Ht(E,()=>t.children),v(b),k(h,b)};W(d,h=>{n()&&h(f)})}v(s),q(()=>{a=ue(s,1,"sh3-collapsible svelte-lvydsb",null,a,{"sh3-collapsible--open":n()}),ne(o,"aria-expanded",n())}),H("click",o,r),k(e,s),ae()}le(["click"]);var Pk=A('<span aria-hidden="true">*</span>'),Dk=A('<span class="sh3-field__label svelte-m4dkl"> <!></span>'),Mk=A('<span class="sh3-field__affix svelte-m4dkl"><!></span>'),Lk=A('<span class="sh3-field__affix svelte-m4dkl"><!></span>'),zk=A("<span> </span>"),Ok=A('<label><!> <span class="sh3-field__row svelte-m4dkl"><!> <input class="sh3-field__input svelte-m4dkl"/> <!></span> <!></label>');function Nk(e,t){se(t,!0);let n=Q(t,"value",15,""),r=Q(t,"type",3,"text"),s=Q(t,"disabled",3,!1),a=Q(t,"invalid",3,!1),o=Q(t,"size",3,"md"),l=Q(t,"required",3,!1);const c=K(()=>a()&&!!t.error),u=K(()=>i(c)?t.error:t.helper);var d=Ok();let f;var h=p(d);{var b=T=>{var D=Dk(),L=p(D,!0),j=w(L);{var M=C=>{var P=Pk();k(C,P)};W(j,C=>{l()&&C(M)})}v(D),q(()=>O(L,t.label)),k(T,D)};W(h,T=>{t.label&&T(b)})}var E=w(h,2),y=p(E);{var g=T=>{var D=Mk(),L=p(D);Ht(L,()=>t.prefix),v(D),k(T,D)};W(y,T=>{t.prefix&&T(g)})}var x=w(y,2);ge(x);var _=w(x,2);{var m=T=>{var D=Lk(),L=p(D);Ht(L,()=>t.suffix),v(D),k(T,D)};W(_,T=>{t.suffix&&T(m)})}v(E);var I=w(E,2);{var R=T=>{var D=zk();let L;var j=p(D,!0);v(D),q(()=>{L=ue(D,1,"sh3-field__helper svelte-m4dkl",null,L,{"sh3-field__helper--error":i(c)}),O(j,i(u))}),k(T,D)};W(I,T=>{i(u)&&T(R)})}v(d),q(()=>{f=ue(d,1,"sh3-field svelte-m4dkl",null,f,{"sh3-field--invalid":a(),"sh3-field--sm":o()==="sm"}),ne(x,"type",r()),ne(x,"placeholder",t.placeholder),x.disabled=s(),x.required=l(),ne(x,"autocomplete",t.autocomplete),ne(x,"aria-invalid",a()||void 0)}),H("input",x,()=>t.oninput?.(n())),Pe("blur",x,()=>t.onchange?.(n())),Se(x,n),k(e,d),ae()}le(["input"]);var qk=A('<span aria-hidden="true">*</span>'),Bk=A('<span class="sh3-textarea__label svelte-668c6r"> <!></span>'),Vk=A("<span> </span>"),Fk=A('<label><!> <textarea class="sh3-textarea__input svelte-668c6r"></textarea> <!></label>');function Uk(e,t){se(t,!0);let n=Q(t,"value",15,""),r=Q(t,"disabled",3,!1),s=Q(t,"invalid",3,!1),a=Q(t,"size",3,"md"),o=Q(t,"required",3,!1),l=Q(t,"rows",3,3),c=Q(t,"resize",3,"vertical");const u=K(()=>s()&&!!t.error),d=K(()=>i(u)?t.error:t.helper);var f=Fk();let h;var b=p(f);{var E=m=>{var I=Bk(),R=p(I,!0),T=w(R);{var D=L=>{var j=qk();k(L,j)};W(T,L=>{o()&&L(D)})}v(I),q(()=>O(R,t.label)),k(m,I)};W(b,m=>{t.label&&m(E)})}var y=w(b,2);jo(y);let g;var x=w(y,2);{var _=m=>{var I=Vk();let R;var T=p(I,!0);v(I),q(()=>{R=ue(I,1,"sh3-textarea__helper svelte-668c6r",null,R,{"sh3-textarea__helper--error":i(u)}),O(T,i(d))}),k(m,I)};W(x,m=>{i(d)&&m(_)})}v(f),q(()=>{h=ue(f,1,"sh3-textarea svelte-668c6r",null,h,{"sh3-textarea--invalid":s(),"sh3-textarea--sm":a()==="sm"}),ne(y,"placeholder",t.placeholder),y.disabled=r(),y.required=o(),ne(y,"rows",l()),ne(y,"aria-invalid",s()||void 0),g=He(y,"",g,{resize:c()})}),H("input",y,()=>t.oninput?.(n())),Pe("blur",y,()=>t.onchange?.(n())),Se(y,n),k(e,f),ae()}le(["input"]);function Hk(e,t,n){let r=e;return t!==void 0&&r<t&&(r=t),n!==void 0&&r>n&&(r=n),r}function Kk(e,t){const n=t.min??0,r=Math.round((e-n)/t.step);return n+r*t.step}var Wk=A('<span class="sh3-num__label svelte-1qa0x3m"> </span>'),Yk=A('<span class="sh3-num__affix svelte-1qa0x3m"><!></span>'),Gk=A('<span class="sh3-num__affix svelte-1qa0x3m"><!></span>'),Xk=A('<label><!> <span class="sh3-num__row svelte-1qa0x3m"><!> <input class="sh3-num__input svelte-1qa0x3m" type="number"/> <!> <span class="sh3-num__steppers svelte-1qa0x3m"><button type="button" aria-label="Increase" class="svelte-1qa0x3m">▲</button> <button type="button" aria-label="Decrease" class="svelte-1qa0x3m">▼</button></span></span></label>');function Jk(e,t){se(t,!0);let n=Q(t,"value",15,0),r=Q(t,"step",3,1),s=Q(t,"disabled",3,!1),a=Q(t,"invalid",3,!1),o=Q(t,"size",3,"md");function l(C){if(Number.isNaN(C))return;let P=Hk(Kk(C,{min:t.min,step:r()}),t.min,t.max);t.precision!==void 0&&(P=Number(P.toFixed(t.precision))),n(P)}function c(C){l(n()+C*r()),t.oninput?.(n())}let u=null,d=null,f=!1;function h(C){s()||(f=!0,c(C),u=setTimeout(()=>{let P=0;d=setInterval(()=>{c(C),P+=60,P>1500&&d&&(clearInterval(d),d=setInterval(()=>c(C),20))},60)},350))}function b(){u&&(clearTimeout(u),u=null),d&&(clearInterval(d),d=null),f&&(f=!1,t.onchange?.(n()))}var E=Xk();let y;var g=p(E);{var x=C=>{var P=Wk(),N=p(P,!0);v(P),q(()=>O(N,t.label)),k(C,P)};W(g,C=>{t.label&&C(x)})}var _=w(g,2),m=p(_);{var I=C=>{var P=Yk(),N=p(P);Ht(N,()=>t.prefix),v(P),k(C,P)};W(m,C=>{t.prefix&&C(I)})}var R=w(m,2);ge(R);var T=w(R,2);{var D=C=>{var P=Gk(),N=p(P);Ht(N,()=>t.suffix),v(P),k(C,P)};W(T,C=>{t.suffix&&C(D)})}var L=w(T,2),j=p(L),M=w(j,2);v(L),v(_),v(E),q(()=>{y=ue(E,1,"sh3-num svelte-1qa0x3m",null,y,{"sh3-num--invalid":a(),"sh3-num--sm":o()==="sm"}),ne(R,"min",t.min),ne(R,"max",t.max),ne(R,"step",r()),R.disabled=s(),ne(R,"aria-invalid",a()||void 0),hs(R,n()),j.disabled=s(),M.disabled=s()}),H("input",R,C=>{const P=C.currentTarget.valueAsNumber;Number.isNaN(P)||(n(P),t.oninput?.(P))}),Pe("blur",R,()=>{l(n()),t.onchange?.(n())}),H("pointerdown",j,()=>h(1)),H("pointerup",j,b),Pe("pointerleave",j,b),H("pointerdown",M,()=>h(-1)),H("pointerup",M,b),Pe("pointerleave",M,b),k(e,E),ae()}le(["input","pointerdown","pointerup"]);function ci(e){return e.filter(t=>!t.disabled)}function Zk(e,t){const n=ci(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 Qk(e,t){const n=ci(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 $k(e){return ci(e)[0]?.value}function e0(e){const t=ci(e);return t[t.length-1]?.value}var t0=A('<button type="button" role="radio"> </button>'),n0=A('<div role="radiogroup" tabindex="-1"></div>');function yv(e,t){se(t,!0);let n=Q(t,"value",31,()=>oe(t.options[0]?.value??"")),r=Q(t,"size",3,"md"),s=Q(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=Zk(t.options,n());break;case"ArrowLeft":case"ArrowUp":d=Qk(t.options,n());break;case"Home":d=$k(t.options);break;case"End":d=e0(t.options);break;default:return}u.preventDefault(),d!==void 0&&a(d)}var l=n0();let c;he(l,21,()=>t.options,dt,(u,d)=>{var f=t0();let h;var b=p(f,!0);v(f),q(()=>{ne(f,"aria-checked",n()===i(d).value),ne(f,"tabindex",n()===i(d).value?0:-1),f.disabled=s()||i(d).disabled,h=ue(f,1,"svelte-17xsko9",null,h,{"sh3-seg__btn--active":n()===i(d).value}),O(b,i(d).label)}),H("click",f,()=>{!i(d).disabled&&!s()&&a(i(d).value)}),k(u,f)}),v(l),q(()=>c=ue(l,1,"sh3-seg svelte-17xsko9",null,c,{"sh3-seg--sm":r()==="sm"})),H("keydown",l,o),k(e,l),ae()}le(["keydown","click"]);function r0(e,t){return e===t?"":t}function s0(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var a0=A('<button type="button"><!></button>'),i0=A('<div role="group"></div>');function o0(e,t){se(t,!0);let n=Q(t,"multiple",3,!1),r=Q(t,"value",31,()=>oe(n()?[]:t.options[0]?.value??"")),s=Q(t,"disabled",3,!1),a=Q(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(s0(f,d))}else r(r0(typeof r()=="string"?r():"",d));t.onchange?.(r())}}var c=i0();let u;he(c,21,()=>t.options,dt,(d,f)=>{var h=a0();let b;var E=p(h);Ht(E,()=>i(f).icon),v(h),q((y,g)=>{ne(h,"title",i(f).tooltip),ne(h,"aria-label",i(f).tooltip),ne(h,"aria-pressed",y),h.disabled=s(),b=ue(h,1,"svelte-13knxr5",null,b,g)},[()=>o(i(f).value),()=>({"sh3-itg__btn--active":o(i(f).value)})]),H("click",h,()=>l(i(f).value)),k(d,h)}),v(c),q(()=>u=ue(c,1,"sh3-itg svelte-13knxr5",null,u,{"sh3-itg--sm":a()==="sm"})),k(e,c),ae()}le(["click"]);function Aa(e,t,n){return n===t?0:(e-t)/(n-t)*100}var l0=A('<span class="sh3-slider__tick svelte-13va6lu"></span>'),c0=A('<output class="sh3-slider__value svelte-13va6lu"> </output>'),u0=A('<div><div class="sh3-slider__track svelte-13va6lu"><div class="sh3-slider__fill svelte-13va6lu"></div> <!></div> <input type="range" class="sh3-slider__native svelte-13va6lu"/> <!></div>');function _v(e,t){se(t,!0);let n=Q(t,"value",15,0),r=Q(t,"min",3,0),s=Q(t,"max",3,100),a=Q(t,"step",3,1),o=Q(t,"showValue",3,!1),l=Q(t,"disabled",3,!1),c=Q(t,"invalid",3,!1),u=Q(t,"size",3,"md"),d=Q(t,"orientation",3,"horizontal");const f=K(()=>Aa(n(),r(),s()));var h=u0();let b;var E=p(h),y=p(E);let g;var x=w(y,2);{var _=T=>{var D=qe(),L=ve(D);he(L,17,()=>t.ticks,dt,(j,M)=>{var C=l0();let P;q(N=>P=He(C,"",P,N),[()=>({"--tick-pct":`${Aa(i(M),r(),s())??""}%`})]),k(j,C)}),k(T,D)};W(x,T=>{t.ticks&&T(_)})}v(E);var m=w(E,2);ge(m);var I=w(m,2);{var R=T=>{var D=c0();let L;var j=p(D,!0);v(D),q(()=>{L=He(D,"",L,{"--pct":`${i(f)??""}%`}),O(j,n())}),k(T,D)};W(I,T=>{o()&&T(R)})}v(h),q(()=>{b=ue(h,1,`sh3-slider sh3-slider--${d()??""}`,"svelte-13va6lu",b,{"sh3-slider--sm":u()==="sm","sh3-slider--invalid":c()}),g=He(y,"",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())),Se(m,n),k(e,h),ae()}le(["input","change"]);function Rc(e,t,n){const[r,s]=e;return t==="low"?[Math.min(n,s),s]:[r,Math.max(n,r)]}var d0=A('<div><div class="sh3-range__track svelte-rdbrc5"><div class="sh3-range__fill svelte-rdbrc5"></div></div> <input type="range" class="sh3-range__native sh3-range__native--low svelte-rdbrc5"/> <input type="range" class="sh3-range__native sh3-range__native--high svelte-rdbrc5"/></div>');function f0(e,t){se(t,!0);let n=Q(t,"value",31,()=>oe([0,100])),r=Q(t,"min",3,0),s=Q(t,"max",3,100),a=Q(t,"step",3,1),o=Q(t,"disabled",3,!1),l=Q(t,"invalid",3,!1),c=Q(t,"size",3,"md");const u=K(()=>Aa(n()[0],r(),s())),d=K(()=>Aa(n()[1],r(),s()));function f(I){n(Rc(n(),"low",I)),t.oninput?.(n())}function h(I){n(Rc(n(),"high",I)),t.oninput?.(n())}var b=d0();let E;var y=p(b),g=p(y);let x;v(y);var _=w(y,2);ge(_);var m=w(_,2);ge(m),v(b),q(()=>{E=ue(b,1,"sh3-range svelte-rdbrc5",null,E,{"sh3-range--sm":c()==="sm","sh3-range--invalid":l()}),x=He(g,"",x,{"--lo":`${i(u)??""}%`,"--hi":`${i(d)??""}%`}),ne(_,"min",r()),ne(_,"max",s()),ne(_,"step",a()),_.disabled=o(),hs(_,n()[0]),ne(m,"min",r()),ne(m,"max",s()),ne(m,"step",a()),m.disabled=o(),hs(m,n()[1])}),H("input",_,I=>f(parseFloat(I.currentTarget.value))),H("change",_,()=>t.onchange?.(n())),H("input",m,I=>h(parseFloat(I.currentTarget.value))),H("change",m,()=>t.onchange?.(n())),k(e,b),ae()}le(["input","change"]);var v0=A('<div class="sh3-sg__channel svelte-1lqyi0d"><span class="sh3-sg__label svelte-1lqyi0d"> </span> <!></div>'),h0=A("<div></div>");function p0(e,t){se(t,!0);let n=Q(t,"orientation",3,"horizontal"),r=Q(t,"values",31,()=>oe({})),s=Q(t,"showValues",3,!1),a=Q(t,"disabled",3,!1),o=Q(t,"size",3,"md");var l=h0();he(l,21,()=>t.channels,c=>c.id,(c,u)=>{var d=v0(),f=p(d),h=p(f,!0);v(f);var b=w(f,2),E=()=>r()[i(u).id]??0,y=g=>r({...r(),[i(u).id]:g});{let g=K(()=>i(u).min??0),x=K(()=>i(u).max??100),_=K(()=>i(u).step??1);_v(b,{get orientation(){return n()},get min(){return i(g)},get max(){return i(x)},get step(){return i(_)},get disabled(){return a()},get size(){return o()},get showValue(){return s()},get value(){return E()},set value(m){y(m)},oninput:()=>t.oninput?.(r()),onchange:()=>t.onchange?.(r())})}v(d),q(()=>O(h,i(u).label)),k(c,d)}),v(l),q(()=>ue(l,1,`sh3-sg sh3-sg--${n()??""}`,"svelte-1lqyi0d")),k(e,l),ae()}var m0=A('<span class="sh3-swatch__label svelte-6ri2j2"> </span>'),b0=A('<label><!> <button type="button" class="sh3-swatch__btn svelte-6ri2j2"><span class="sh3-swatch__dot svelte-6ri2j2"></span><span class="sh3-swatch__hex svelte-6ri2j2"> </span></button></label>');function wv(e,t){se(t,!0);let n=Q(t,"value",15,"#000000"),r=Q(t,"disabled",3,!1),s=Q(t,"size",3,"md"),a;async function o(){if(r())return;const y=await bn.color.pick({initial:n(),anchor:a});y!=null&&(n(y),t.onchange?.(y))}var l=b0();let c;var u=p(l);{var d=y=>{var g=m0(),x=p(g,!0);v(g),q(()=>O(x,t.label)),k(y,g)};W(u,y=>{t.label&&y(d)})}var f=w(u,2);let h;var b=w(p(f)),E=p(b,!0);v(b),v(f),Le(f,y=>a=y,()=>a),v(l),q(()=>{c=ue(l,1,"sh3-swatch svelte-6ri2j2",null,c,{"sh3-swatch--sm":s()==="sm"}),f.disabled=r(),ne(f,"aria-label",`${t.label??"Color"??""} (current ${n()??""})`),h=He(f,"",h,{"--swatch-color":n()}),O(E,n())}),H("click",f,o),k(e,l),ae()}le(["click"]);function g0(e,t){return!e||e.length===0?t?[]:null:t?Array.from(e):e[0]}function y0(e){return e===null?"":Array.isArray(e)?e.length===0?"":e.length===1?e[0].name:`${e.length} files`:e.name}var _0=A('<label><input class="sh3-fp__native svelte-24jk95" type="file"/> <span class="sh3-fp__btn svelte-24jk95" tabindex="-1"> </span> <span class="sh3-fp__name svelte-24jk95"> </span></label>');function w0(e,t){se(t,!0);let n=Q(t,"value",15,null),r=Q(t,"multiple",3,!1),s=Q(t,"disabled",3,!1),a=Q(t,"invalid",3,!1),o=Q(t,"size",3,"md"),l=Q(t,"buttonLabel",3,"Choose file...");function c(x){const _=x.currentTarget;n(g0(_.files,r())),t.onchange?.(n())}const u=K(()=>y0(n()));var d=_0();let f;var h=p(d),b=w(h,2),E=p(b,!0);v(b);var y=w(b,2),g=p(y,!0);v(y),v(d),q(()=>{f=ue(d,1,"sh3-fp svelte-24jk95",null,f,{"sh3-fp--sm":o()==="sm","sh3-fp--invalid":a()}),ne(h,"accept",t.accept),h.multiple=r(),h.disabled=s(),O(E,l()),O(g,i(u)||"no file")}),H("change",h,c),k(e,d),ae()}le(["change"]);const k0=8;function x0(e){return e.length>=k0}function S0(e,t){if(!t)return e.slice();const n=t.toLowerCase();return e.filter(r=>r.label.toLowerCase().includes(n))}function E0(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 I0(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 A0(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var C0=A('<input class="sh3-listbox__search svelte-1tyxvrs" type="search" placeholder="Filter…"/>'),T0=A('<span aria-hidden="true"></span>'),R0=A('<div role="option" tabindex="-1"><!> <span class="sh3-listbox__label"> </span></div>'),j0=A('<div class="sh3-listbox__empty svelte-1tyxvrs">No matches</div>'),P0=A('<div class="sh3-listbox svelte-1tyxvrs" role="listbox" tabindex="-1"><!> <div class="sh3-listbox__list svelte-1tyxvrs"><!> <!></div></div>');function D0(e,t){se(t,!0);const n=K(()=>t.getValue());function r(){t.onClose?.(),t.close()}const s=K(()=>x0(t.options));function a(){if(t.multiple)return 0;const L=typeof i(n)=="string"?i(n):"",j=t.options.findIndex(M=>M.value===L&&!M.disabled);return j>=0?j:0}let o=F(""),l=F(oe(a())),c=F(void 0),u=F(void 0),d="",f=null;const h=K(()=>S0(t.options,i(o)));xe(()=>{i(l)>=i(h).length&&S(l,0),b()});async function b(){if(await Ms(),!i(c))return;i(c).querySelector(`[data-idx="${i(l)}"]`)?.scrollIntoView({block:"nearest"})}function E(L){return t.multiple&&Array.isArray(i(n))?i(n).includes(L.value):i(n)===L.value}function y(L){const j=i(h)[L];!j||j.disabled||(t.onSelect(j.value),t.multiple||r())}function g(L){if(i(h).length!==0)switch(L.key){case"ArrowDown":L.preventDefault(),S(l,(i(l)+1)%i(h).length);break;case"ArrowUp":L.preventDefault(),S(l,(i(l)-1+i(h).length)%i(h).length);break;case"Home":L.preventDefault(),S(l,0);break;case"End":L.preventDefault(),S(l,i(h).length-1);break;case"Enter":L.preventDefault(),y(i(l));break;case" ":case"Space":L.preventDefault(),y(i(l));break;case"Escape":L.preventDefault(),r();break;default:if(i(s)&&document.activeElement===i(u)||L.key.length!==1||L.metaKey||L.ctrlKey||L.altKey)return;d+=L.key,f&&clearTimeout(f),f=setTimeout(()=>{d=""},500);const j=E0(i(h),d,i(l));j>=0&&S(l,j,!0)}}var x=P0(),_=p(x);{var m=L=>{var j=C0();ge(j),Le(j,M=>S(u,M),()=>i(u)),Se(j,()=>i(o),M=>S(o,M)),k(L,j)};W(_,L=>{i(s)&&L(m)})}var I=w(_,2),R=p(I);he(R,17,()=>i(h),dt,(L,j,M)=>{var C=R0();ne(C,"data-idx",M);let P;var N=p(C);{var z=Y=>{var B=T0();let V;q(Z=>V=ue(B,1,"sh3-listbox__check svelte-1tyxvrs",null,V,Z),[()=>({"sh3-listbox__check--on":E(i(j))})]),k(Y,B)};W(N,Y=>{t.multiple&&Y(z)})}var U=w(N,2),X=p(U,!0);v(U),v(C),q((Y,B)=>{ne(C,"aria-selected",Y),ne(C,"aria-disabled",i(j).disabled),P=ue(C,1,"svelte-1tyxvrs",null,P,B),O(X,i(j).label)},[()=>E(i(j)),()=>({"sh3-listbox__opt--active":M===i(l),"sh3-listbox__opt--selected":E(i(j))})]),H("click",C,()=>y(M)),Pe("mouseenter",C,()=>S(l,M,!0)),k(L,C)});var T=w(R,2);{var D=L=>{var j=j0();k(L,j)};W(T,L=>{i(h).length===0&&L(D)})}v(I),Le(I,L=>S(c,L),()=>i(c)),v(x),q(()=>ne(x,"aria-multiselectable",t.multiple)),H("keydown",x,g),k(e,x),ae()}le(["keydown","click"]);var M0=A('<span class="sh3-select__label svelte-1q3zxph"> </span>'),L0=A("<option> </option>"),z0=A('<label><!> <button type="button" class="sh3-select__btn svelte-1q3zxph" aria-haspopup="listbox"><span> </span> <span class="sh3-select__chevron svelte-1q3zxph" aria-hidden="true">▾</span></button> <select class="sh3-select__native svelte-1q3zxph" aria-hidden="true"></select></label>');function O0(e,t){se(t,!0);let n=Q(t,"multiple",3,!1),r=Q(t,"value",31,()=>oe(n()?[]:"")),s=Q(t,"placeholder",3,"Select…"),a=Q(t,"disabled",3,!1),o=Q(t,"invalid",3,!1),l=Q(t,"size",3,"md"),c=F(void 0),u=F(void 0),d=F(!1);const f=K(()=>I0(t.options,r(),n()));function h(){S(d,!1),i(c)?.focus()}async function b(){if(a()||i(d)||!i(c))return;S(d,!0);const j=bn.popup.show(D0,{anchor:i(c)},{options:t.options,getValue:()=>r(),multiple:n(),onSelect:P=>{if(n()){const N=Array.isArray(r())?r():[];r(A0(N,P))}else r(P);t.onchange?.(r())},onClose:h}),M=j.close;j.close=()=>{M(),h()},await Ms(),document.querySelector(".sh3-listbox")?.focus()}function E(j){if(!(a()||i(d)))switch(j.key){case"ArrowDown":case"ArrowUp":case"Enter":case" ":j.preventDefault(),b();break}}function y(){i(u)&&(n()?r(Array.from(i(u).selectedOptions).map(j=>j.value)):r(i(u).value),t.onchange?.(r()))}var g=z0();let x;var _=p(g);{var m=j=>{var M=M0(),C=p(M,!0);v(M),q(()=>O(C,t.label)),k(j,M)};W(_,j=>{t.label&&j(m)})}var I=w(_,2),R=p(I);let T;var D=p(R,!0);v(R),qt(2),v(I),Le(I,j=>S(c,j),()=>i(c));var L=w(I,2);ne(L,"tabindex",-1),he(L,21,()=>t.options,dt,(j,M)=>{var C=L0(),P=p(C,!0);v(C);var N={};q(z=>{Ho(C,z),O(P,i(M).label),N!==(N=i(M).value)&&(C.value=(C.__value=i(M).value)??"")},[()=>n()?Array.isArray(r())&&r().includes(i(M).value):r()===i(M).value]),k(j,C)}),v(L),Le(L,j=>S(u,j),()=>i(u)),v(g),q(()=>{x=ue(g,1,"sh3-select svelte-1q3zxph",null,x,{"sh3-select--invalid":o(),"sh3-select--sm":l()==="sm"}),I.disabled=a(),ne(I,"aria-expanded",i(d)),T=ue(R,1,"sh3-select__display svelte-1q3zxph",null,T,{"sh3-select__display--placeholder":!i(f)}),O(D,i(f)||s()),L.multiple=n(),L.disabled=a()}),H("click",I,b),H("keydown",I,E),H("change",L,y),k(e,g),ae()}le(["click","keydown","change"]);function N0(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 q0(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var B0=A('<input type="search" class="sh3-picker__search svelte-1rlwvrb" placeholder="Filter…"/>'),V0=A('<p class="sh3-picker__status svelte-1rlwvrb">Loading…</p>'),F0=A('<button type="button" class="sh3-picker__retry svelte-1rlwvrb">Retry</button>'),U0=A('<p class="sh3-picker__status sh3-picker__status--error svelte-1rlwvrb"> </p> <!>',1),H0=A('<p class="sh3-picker__status svelte-1rlwvrb"> </p>'),K0=A('<span class="sh3-picker__row-sub svelte-1rlwvrb"> </span>'),W0=A('<label class="sh3-picker__row svelte-1rlwvrb"><input type="checkbox"/> <span class="sh3-picker__row-text svelte-1rlwvrb"><span class="sh3-picker__row-label svelte-1rlwvrb"> </span> <!></span></label>'),Y0=A('<div><!> <div class="sh3-picker__list svelte-1rlwvrb"><!></div> <p class="sh3-picker__footer svelte-1rlwvrb"> </p></div>');function kv(e,t){se(t,!0);let n=Q(t,"value",31,()=>oe([])),r=Q(t,"loading",3,!1),s=Q(t,"error",3,null),a=Q(t,"emptyText",3,"No items."),o=Q(t,"searchThreshold",3,8),l=Q(t,"disabled",3,!1),c=Q(t,"size",3,"md"),u=F("");const d=K(()=>t.items.length>=o()),f=K(()=>N0(t.items,i(u))),h=K(()=>t.items.length),b=K(()=>n().length);function E(C){if(l())return;const P=q0(n(),C);n(P),t.onchange?.(P)}var y=Y0();let g;var x=p(y);{var _=C=>{var P=B0();ge(P),q(()=>P.disabled=l()),Se(P,()=>i(u),N=>S(u,N)),k(C,P)};W(x,C=>{i(d)&&C(_)})}var m=w(x,2),I=p(m);{var R=C=>{var P=V0();k(C,P)},T=C=>{var P=U0(),N=ve(P),z=p(N,!0);v(N);var U=w(N,2);{var X=Y=>{var B=F0();H("click",B,()=>t.onRetry?.()),k(Y,B)};W(U,Y=>{t.onRetry&&Y(X)})}q(()=>O(z,s())),k(C,P)},D=C=>{var P=H0(),N=p(P,!0);v(P),q(()=>O(N,a())),k(C,P)},L=C=>{var P=qe(),N=ve(P);he(N,17,()=>i(f),z=>z.id,(z,U)=>{var X=W0(),Y=p(X);ge(Y);var B=w(Y,2),V=p(B),Z=p(V,!0);v(V);var G=w(V,2);{var $=ie=>{var pe=K0(),J=p(pe,!0);v(pe),q(()=>O(J,i(U).sublabel)),k(ie,pe)};W(G,ie=>{i(U).sublabel&&ie($)})}v(B),v(X),q(ie=>{Uo(Y,ie),Y.disabled=l(),O(Z,i(U).label)},[()=>n().includes(i(U).id)]),H("change",Y,()=>E(i(U).id)),k(z,X)}),k(C,P)};W(I,C=>{r()?C(R):s()?C(T,1):t.items.length===0?C(D,2):C(L,-1)})}v(m);var j=w(m,2),M=p(j);v(j),v(y),q(()=>{g=ue(y,1,"sh3-picker svelte-1rlwvrb",null,g,{"sh3-picker--sm":c()==="sm","sh3-picker--disabled":l()}),O(M,`${i(b)??""} of ${i(h)??""} selected`)}),k(e,y),ae()}le(["click","change"]);function xv(e,t){se(t,!0);const n=new Set(["sh3-admin-app","sh3-store-app"]);let r=Q(t,"value",31,()=>oe([])),s=Q(t,"disabled",3,!1),a=Q(t,"size",3,"md");const o=K(()=>Kr().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)}kv(e,{get items(){return i(o)},get value(){return r()},onchange:l,get disabled(){return s()},get size(){return a()},emptyText:"No apps installed."}),ae()}const zt=oe({users:[],loading:!1,error:null});let $r=null;function jc(){return $r||(zt.loading=!0,zt.error=null,$r=(async()=>{try{const e=await fetch("/api/admin/users",{credentials:"include"});if(!e.ok){zt.error=`GET /api/admin/users failed: ${e.status}`;return}zt.users=await e.json()}catch(e){zt.error=e.message}finally{zt.loading=!1,$r=null}})(),$r)}function Sv(e,t){se(t,!0);let n=Q(t,"value",31,()=>oe([])),r=Q(t,"disabled",3,!1),s=Q(t,"size",3,"md");zt.users.length===0&&!zt.loading&&!zt.error&&jc();const a=K(()=>zt.users.map(l=>({id:l.id,label:l.displayName||l.username,sublabel:l.username})));function o(l){n(l),t.onchange?.(l)}kv(e,{get items(){return i(a)},get value(){return n()},onchange:o,get loading(){return zt.loading},get error(){return zt.error},onRetry:()=>void jc(),emptyText:"No users found.",get disabled(){return r()},get size(){return s()}}),ae()}const G0={hotInstall:typeof Blob<"u"&&typeof URL.createObjectURL=="function"},Ev=["__sh3core__","shell","sh3-store","sh3-admin"],Iv=Object.freeze(Object.defineProperty({__proto__:null,AppPicker:xv,Button:Ak,COLOR_PICKER_POINT:nf,CONFLICT_RENDERER_POINT:$d,Collapsible:jk,ColorSwatch:wv,ConflictPermissionError:ef,ConflictSessionOrphanedError:K_,ConsentDeniedError:uv,FRAMEWORK_SHARD_IDS:Ev,Field:Nk,FilePicker:w0,IconToggleGroup:o0,NumberInput:Jk,PERMISSION_DOCUMENTS_BROWSE:av,PERMISSION_DOCUMENTS_READ:iv,PERMISSION_DOCUMENTS_WRITE:ov,PERMISSION_KEYS_MINT:lv,PERMISSION_STATE_MANAGE:Ua,PERMISSION_SYNC_PEER:Z1,PERMISSION_SYNC_POLICY:Q1,RangeSlider:f0,SHELL_MODE_CONTRIBUTION_POINT:cs,ScopeEscalationError:cv,Segmented:yv,Select:O0,Slider:_v,SliderGroup:p0,Textarea:Uk,UserPicker:Sv,VERSION:sn,activeShards:ar,buildPackageMeta:li,capabilities:G0,clearTokenOverrides:_k,closeTab:vl,collapseChild:j1,dockFloat:Gf,dockIntoActiveLayout:pl,erroredShards:Ia,expandChild:P1,fetchBundle:oi,fetchRegistries:pv,focusTab:R1,focusView:ni,getActiveApp:zd,getAuthHeader:ai,getIconSprite:gv,getTokenOverrides:mv,getUser:Or,inspectActiveLayout:Hf,isAdmin:bt,isAuthenticated:ao,isGuest:Qf,launchApp:Sn,listRegisteredApps:Kr,listVerbs:rl,locateSlot:Jf,popoutView:Yf,provideIcons:kk,pushNavEntry:xy,registerConsentListener:dv,registerShellMode:gk,registeredShards:pn,resolveConsent:lo,returnToHome:Fs,runVerbProgrammatic:rv,setTokenOverrides:yk,shell:bn,spliceIntoActiveLayout:T1,subscribeKeyRevocation:bl,unregisterApp:ti,validateRegistryIndex:hv},Symbol.toStringTag,{value:"Module"})),X0="/assets/SH3-BG5NVpSD.png",J0="https://cdn.jsdelivr.net/npm/p5@1.11.13/lib/p5.min.js";let es=null;function Z0(){return es||(es=new Promise((e,t)=>{const n=window.p5;if(n){e(n);return}const r=document.createElement("script");r.src=J0,r.async=!0,r.onload=()=>e(window.p5),r.onerror=s=>{es=null,t(s)},document.head.appendChild(r)}),es)}var Q0=A('<h1 class="shell-title-fallback svelte-1ifjvh5">SH3</h1>'),$0=A('<div class="shell-title svelte-1ifjvh5"></div>');function ex(e,t){se(t,!0);const n="`.-':;,^\"~=+<>*?!/\\|()[]{}x1ltzrcvunsXYUJCLQ0OZmwqpdbkhao*#MW&8%B@$",r=64,s=Math.floor(64/(442/193)),a=8,o=7,l=80,c=r*a,u=s*o,d=l/u;let f=F(void 0),h=null,b=F(!1);const E=()=>m=>{const R=getComputedStyle(document.documentElement).getPropertyValue("--shell-accent").trim();let T,D,L=!1;m.setup=()=>{m.createCanvas(c,u),m.noSmooth(),m.noStroke(),m.textAlign(m.CENTER,m.CENTER),m.textFont("monospace"),m.textSize(10),m.textStyle(m.BOLD),D=m.loadImage(X0,()=>{T=m.createGraphics(r,s),T.pixelDensity(1),T.image(D,0,0,r,s),T.loadPixels(),L=!0},()=>{S(b,!0)})},m.draw=()=>{if(!L)return;const j=m.millis()*.001;let M;m.clear(),m.background(0,0),m.fill(R);for(let C=0;C<s;C++)for(let P=0;P<r;P++){const N=(C*r+P)*4;if(T.pixels[N]<64){if(M=m.noise(P/r*2,C/s*2,j*.15),M>.33)continue;m.text(n[Math.floor(M*n.length*.25)],(P+.5)*a,(C+.5)*o);continue}M=m.noise(P/r*4,C/s*4,j*.5),m.text(n[Math.floor(M*n.length)],(P+.5)*a,(C+.5)*o)}}};xe(()=>{if(i(b))return;let m=!1;return Z0().then(I=>{if(!(m||!i(f)))try{h=new I(E(),i(f))}catch(R){console.error("[ShellTitle] p5 sketch failed to start",R),S(b,!0)}}).catch(I=>{console.error("[ShellTitle] failed to load p5 from CDN",I),S(b,!0)}),()=>{m=!0,h&&(h.remove(),h=null)}});var y=qe(),g=ve(y);{var x=m=>{var I=Q0();k(m,I)},_=m=>{var I=$0();He(I,"",{},{width:"216.7195767195767px",height:"80px","--shell-title-scale":d}),Le(I,R=>S(f,R),()=>i(f)),k(m,I)};W(g,m=>{i(b)?m(x):m(_,-1)})}k(e,y),ae()}async function fr(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 la={async list(){return(await fr("/api/projects",{method:"GET"})).projects},async listAll(){return(await fr("/api/projects/all",{method:"GET"})).projects},async get(e){return fr(`/api/projects/${encodeURIComponent(e)}`,{method:"GET"})},async create(e){return fr("/api/projects",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e)})},async update(e,t){return fr(`/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 fr(`/api/projects/${encodeURIComponent(e)}${n}`,{method:"DELETE"})}};var tx=A(`<div class="delete-project-dialog svelte-6j13aq"><div class="delete-project-dialog__title svelte-6j13aq"> </div> <div class="delete-project-dialog__body svelte-6j13aq">The project record will be removed and any members will lose access.
|
|
9
|
+
Documents already written under the project's namespace remain on disk
|
|
10
|
+
unless you tick the option below.</div> <label class="delete-project-dialog__opt svelte-6j13aq"><input type="checkbox" class="svelte-6j13aq"/> <span>Also delete project files <code class="delete-project-dialog__path svelte-6j13aq"> </code></span></label> <div class="delete-project-dialog__actions svelte-6j13aq"><button type="button" class="delete-project-dialog__btn svelte-6j13aq" data-delete-project-cancel="">Cancel</button> <button type="button" class="delete-project-dialog__btn delete-project-dialog__btn--danger svelte-6j13aq" data-delete-project-confirm="">Delete</button></div></div>`);function nx(e,t){se(t,!0);let n=F(void 0),r=F(!1),s=F(!1);xe(()=>{i(n)?.focus()});async function a(){if(!i(r)){S(r,!0);try{await t.onConfirm({wipeData:i(s)})}finally{t.close()}}}function o(){i(r)||(t.onCancel?.(),t.close())}var l=tx(),c=p(l),u=p(c);v(c);var d=w(c,4),f=p(d);ge(f);var h=w(f,2),b=w(p(h)),E=p(b);v(b),v(h),v(d);var y=w(d,2),g=p(y);Le(g,_=>S(n,_),()=>i(n));var x=w(g,2);v(y),v(l),q(()=>{O(u,`Delete project '${t.projectName??""}'?`),f.disabled=i(r),O(E,`<dataDir>/docs/${t.projectId??""}/`),g.disabled=i(r),x.disabled=i(r)}),is(f,()=>i(s),_=>S(s,_)),H("click",g,o),H("click",x,a),k(e,l),ae()}le(["click"]);var rx=A('<p class="project-id svelte-1oy3640">ID: <code class="svelte-1oy3640"> </code></p>'),sx=A('<span class="hint svelte-1oy3640">Your id: <code class="svelte-1oy3640"> </code> </span>'),ax=A('<p class="error svelte-1oy3640"> </p>'),ix=A('<button type="button" class="danger svelte-1oy3640">Delete</button>'),ox=A('<div class="project-manage svelte-1oy3640"><div class="body svelte-1oy3640"><h2 class="svelte-1oy3640"> </h2> <!> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">Name</span> <input type="text" placeholder="Acme Website" class="svelte-1oy3640"/></label> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">Description</span> <textarea class="svelte-1oy3640"></textarea></label> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">Members</span> <!> <!></label> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">App allowlist</span> <!></label> <!></div> <div class="actions svelte-1oy3640"><button type="button" class="primary svelte-1oy3640"> </button> <button type="button" class="svelte-1oy3640">Cancel</button> <!></div></div>');function lx(e,t){se(t,!0);let n=Q(t,"project",3,null);const r=K(()=>n()!==null),s=K(Or);let a=F(oe(we(()=>n()?.name??""))),o=F(oe(we(()=>n()?.description??""))),l=F(oe(we(()=>{if(n())return[...n().members];const G=Or()?.id;return G?[G]:[]}))),c=F(oe(we(()=>n()?[...n().appAllowlist]:[]))),u=F(!1),d=F(null);async function f(){if(!i(a).trim()){S(d,"Name is required");return}S(u,!0),S(d,null);const G={name:i(a).trim(),description:i(o).trim()||void 0,members:i(l),appAllowlist:i(c)};try{i(r)&&n()?await la.update(n().id,G):await la.create(G),await Ca(),t.onClose()}catch($){S(d,$.message,!0)}finally{S(u,!1)}}function h(){if(!i(r)||!n())return;const G=n();Kt.open(nx,{projectName:G.name,projectId:G.id,onConfirm:async({wipeData:$})=>{S(u,!0),S(d,null);try{await la.delete(G.id,{wipeData:$}),await Ca(),t.onClose()}catch(ie){S(d,ie.message,!0)}finally{S(u,!1)}}})}var b=ox(),E=p(b),y=p(E),g=p(y,!0);v(y);var x=w(y,2);{var _=G=>{var $=rx(),ie=w(p($)),pe=p(ie,!0);v(ie),v($),q(()=>O(pe,n().id)),k(G,$)};W(x,G=>{i(r)&&G(_)})}var m=w(x,2),I=w(p(m),2);ge(I),v(m);var R=w(m,2),T=w(p(R),2);jo(T),ne(T,"rows",2),v(R);var D=w(R,2),L=w(p(D),2);Sv(L,{get disabled(){return i(u)},get value(){return i(l)},set value(G){S(l,G,!0)}});var j=w(L,2);{var M=G=>{var $=sx(),ie=w(p($)),pe=p(ie,!0);v(ie);var J=w(ie);v($),q(()=>{O(pe,i(s).id),O(J,` (${i(s).username??i(s).displayName??""})`)}),k(G,$)};W(j,G=>{i(s)&&G(M)})}v(D);var C=w(D,2),P=w(p(C),2);xv(P,{get disabled(){return i(u)},get value(){return i(c)},set value(G){S(c,G,!0)}}),v(C);var N=w(C,2);{var z=G=>{var $=ax(),ie=p($,!0);v($),q(()=>O(ie,i(d))),k(G,$)};W(N,G=>{i(d)&&G(z)})}v(E);var U=w(E,2),X=p(U),Y=p(X,!0);v(X);var B=w(X,2),V=w(B,2);{var Z=G=>{var $=ix();q(()=>$.disabled=i(u)),H("click",$,h),k(G,$)};W(V,G=>{i(r)&&G(Z)})}v(U),v(b),q(()=>{O(g,i(r)?`Edit ${n().name}`:"Create Project"),I.disabled=i(u),T.disabled=i(u),X.disabled=i(u),O(Y,i(r)?"Save":"Create"),B.disabled=i(u)}),Se(I,()=>i(a),G=>S(a,G)),Se(T,()=>i(o),G=>S(o,G)),H("click",X,f),H("click",B,function(...G){t.onClose?.apply(this,G)}),k(e,b),ae()}le(["click"]);const Ot=oe({projects:[],loading:!1,error:null});async function Ca(){Ot.loading=!0,Ot.error=null;try{Ot.projects=await la.list()}catch(e){Ot.error=e.message}finally{Ot.loading=!1}}const co="projects:manage";let uo=null;function cx(){const e=uo;return uo=null,e}function fo(e){uo=e,Ce.open(co,{title:e?`Edit ${e.name}`:"Create Project",size:{w:560,h:620},dismissable:!0})}const ux={manifest:{id:"__projects__",label:"Projects",version:sn,views:[{id:co,label:"Project Manager"}]},activate(e){Ca(),typeof document<"u"&&document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&Ca()});const t={mount(r,s){const a=cx(),o=Ce.list(),l=o.length>0?o[o.length-1].id:null,u=Be(lx,{target:r,props:{project:a,onClose:()=>{l&&Ce.close(l)}}});return{unmount(){Xe(u)}}}};e.registerView(co,t),e.actions.register({id:"sh3.project.create",label:"Create Project…",scope:["home","app"],paletteItem:!0,disabled:()=>!bt(),run:()=>{bt()&&fo(null)}}),e.actions.register({id:"sh3.project.manage",label:"Manage Project…",scope:["home","app"],submenu:!0,paletteItem:!0,disabled:()=>!bt()});const n=new Map;Fr(()=>{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&&fo(o)}});n.set(s.id,a)}for(const s of[...n.keys()])r.has(s)||(n.get(s)(),n.delete(s))})})},autostart(){}};var dx=A('<button type="button" class="project-card-edit svelte-yosqc3" aria-label="Edit project" title="Edit project">⚙</button>'),fx=A('<div class="project-card-wrap svelte-yosqc3"><button type="button"><span class="project-name svelte-yosqc3"> </span> <span class="project-meta svelte-yosqc3"> </span></button> <!></div>'),vx=A('<section class="projects-section svelte-yosqc3"><h2 class="projects-heading svelte-yosqc3">Projects</h2> <div class="projects-grid svelte-yosqc3"></div></section>');function hx(e,t){se(t,!0);const n=K(()=>Ot.projects.length>0),r=K(()=>sr.activeProjectId),s=K(bt);function a(d){Bf(i(r)===d?null:d)}function o(d,f){f.stopPropagation();const h=Ot.projects.find(b=>b.id===d)??null;h&&fo(h)}var l=qe(),c=ve(l);{var u=d=>{var f=vx(),h=w(p(f),2);he(h,21,()=>Ot.projects,b=>b.id,(b,E)=>{var y=fx(),g=p(y);let x;var _=p(g),m=p(_,!0);v(_);var I=w(_,2),R=p(I);v(I),v(g);var T=w(g,2);{var D=L=>{var j=dx();H("click",j,M=>o(i(E).id,M)),k(L,j)};W(T,L=>{i(s)&&L(D)})}v(y),q(()=>{x=ue(g,1,"project-card svelte-yosqc3",null,x,{active:i(r)===i(E).id}),ne(g,"title",i(E).description??`${i(E).members.length} member${i(E).members.length===1?"":"s"}`),O(m,i(E).name),O(R,`${i(E).members.length??""} member${i(E).members.length===1?"":"s"}`)}),H("click",g,()=>a(i(E).id)),k(b,y)}),v(h),v(f),k(d,f)};W(c,d=>{i(n)&&d(u)})}k(e,l),ae()}le(["click"]);let pt=null;function px(e){pt=e}function mx(){pt=null}function ir(){return pt?.user.layouts??[]}function bx(e){pt&&(pt.user.layouts=[...pt.user.layouts,e])}function Av(e,t){if(!pt)return;const n=pt.user.layouts.findIndex(s=>s.id===e);if(n<0)return;const r=[...pt.user.layouts];r[n]={...r[n],...t},pt.user.layouts=r}function gx(e){pt&&(pt.user.layouts=pt.user.layouts.filter(t=>t.id!==e))}function yx(){pt={ephemeral:{},session:{},workspace:{},user:{layouts:[]}}}yx();function ui(e,t){if(e.type==="slot")return e.viewId===null||!t(e.viewId)?null:e;if(e.type==="tabs"){const s=[];let a=!1,o=0;for(let l=0;l<e.tabs.length;l++){const c=e.tabs[l];c.viewId!==null&&t(c.viewId)&&(l===e.activeTab&&(a=!0,o=s.length),s.push(c))}return s.length===0?null:{type:"tabs",tabs:s,activeTab:a?o:0}}const n=[],r=[];for(let s=0;s<e.children.length;s++){const a=ui(e.children[s],t);a!==null&&(n.push(a),r.push(e.sizes[s]??1))}return n.length===0?null:n.length===1?n[0]:{type:"split",direction:e.direction,sizes:r,children:n}}function Cv(e){return JSON.parse(JSON.stringify(e))}function _x(e,t){const n=Ce.list().find(s=>s.id===e);if(!n)return null;const r=ui(n.content,t);return r===null?null:{size:{w:n.size.w,h:n.size.h},content:Cv(r)}}function Tv(e,t,n){const r=ui(e.content,t);return r===null?(n(`Saved layout "${e.name}" has no available standalone views`,"warn"),""):Ce.openWithContent({content:Cv(r),size:{w:e.size.w,h:e.size.h},title:e.name})}var wx=A('<button type="button" data-sh3-scope="element:saved-layout"><span class="saved-layout-card-square svelte-1ncltuf"><svg class="saved-layout-card-icon svelte-1ncltuf"><use></use></svg></span> <span class="saved-layout-card-label svelte-1ncltuf"> </span></button>'),kx=A('<section class="saved-layouts-section svelte-1ncltuf"><h2 class="saved-layouts-heading svelte-1ncltuf">Saved Layouts</h2> <div class="saved-layouts-grid svelte-1ncltuf"></div></section>');function xx(e,t){se(t,!0);const n=K(ir),r=Xa("__layouts__");function s(f){return ws().some(h=>h.viewId===f)}function a(f,h){dn.notify(f,{level:h})}function o(f){const h=ir().find(b=>b.id===f);h&&Tv(h,s,a)}function l(f,h){f.preventDefault(),r.set({type:"saved-layout",ref:{layoutId:h}}),bn.actions.openContextMenu({x:f.clientX,y:f.clientY,scope:{element:"saved-layout"}})}var c=qe(),u=ve(c);{var d=f=>{var h=kx(),b=w(p(h),2);he(b,21,()=>i(n),E=>E.id,(E,y)=>{var g=wx();let x,_;var m=p(g),I=p(m),R=p(I);v(I),v(m);var T=w(m,2),D=p(T,!0);v(T),v(g),q(()=>{x=ue(g,1,"saved-layout-card svelte-1ncltuf",null,x,{"saved-layout-card--tinted":i(y).appearance?.color}),ne(g,"data-saved-layout-id",i(y).id),_=He(g,"",_,{"--card-color":i(y).appearance?.color??"transparent"}),ne(R,"href",`${zn}#${i(y).appearance?.icon??"eye"??""}`),O(D,i(y).name)}),H("click",g,()=>o(i(y).id)),H("contextmenu",g,L=>l(L,i(y).id)),k(E,g)}),v(b),v(h),k(f,h)};W(u,f=>{i(n).length>0&&f(d)})}k(e,c),ae()}le(["click","contextmenu"]);const Pc=["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 Sx=A('<span class="sh3-icon-picker__label svelte-h9dluc"> </span>'),Ex=A('<button type="button"><svg viewBox="0 0 24 24" class="svelte-h9dluc"><use></use></svg></button>'),Ix=A('<div><!> <input type="search" placeholder="Search icons…" aria-label="Filter icons" class="svelte-h9dluc"/> <div class="sh3-icon-picker__grid svelte-h9dluc"><button type="button" aria-label="No icon">×</button> <!></div></div>');function Ax(e,t){se(t,!0);let n=Q(t,"value",15,void 0),r=Q(t,"disabled",3,!1),s=F("");const a=K(()=>i(s).trim()===""?Pc:Pc.filter(g=>g.includes(i(s).trim().toLowerCase())));function o(g){r()||(n(g),t.onchange?.(g))}var l=Ix();let c;var u=p(l);{var d=g=>{var x=Sx(),_=p(x,!0);v(x),q(()=>O(_,t.label)),k(g,x)};W(u,g=>{t.label&&g(d)})}var f=w(u,2);ge(f);var h=w(f,2),b=p(h);let E;var y=w(b,2);he(y,16,()=>i(a),g=>g,(g,x)=>{var _=Ex();let m;var I=p(_),R=p(I);v(I),v(_),q(()=>{m=ue(_,1,"sh3-icon-picker__tile svelte-h9dluc",null,m,{"sh3-icon-picker__tile--selected":n()===x}),ne(_,"aria-label",x),ne(_,"title",x),_.disabled=r(),ne(R,"href",`${zn}#${x??""}`)}),H("click",_,()=>o(x)),k(g,_)}),v(h),v(l),q(()=>{c=ue(l,1,"sh3-icon-picker svelte-h9dluc",null,c,{"sh3-icon-picker--disabled":r()}),f.disabled=r(),E=ue(b,1,"sh3-icon-picker__tile sh3-icon-picker__tile--none svelte-h9dluc",null,E,{"sh3-icon-picker__tile--selected":n()===void 0}),b.disabled=r()}),Se(f,()=>i(s),g=>S(s,g)),H("click",b,()=>o(void 0)),k(e,l),ae()}le(["click"]);var Cx=A('<em class="svelte-1v8d4f6">(empty = default)</em>'),Tx=A('<button type="button" class="link svelte-1v8d4f6">Change icon</button>'),Rx=A('<!> <button type="button" class="link link--align-right svelte-1v8d4f6">Hide picker</button>',1),jx=A('<div class="app-appearance svelte-1v8d4f6"><h2 class="svelte-1v8d4f6"> </h2> <div class="preview svelte-1v8d4f6"><div><span class="preview-card-square svelte-1v8d4f6"><svg class="preview-card-icon svelte-1v8d4f6"><use></use></svg></span> <span class="preview-card-label svelte-1v8d4f6"> </span></div></div> <label class="row svelte-1v8d4f6"><span class="svelte-1v8d4f6">Name <!></span> <input type="text" class="name-input svelte-1v8d4f6"/></label> <div class="row svelte-1v8d4f6"><span class="svelte-1v8d4f6">Icon</span> <!></div> <label class="row svelte-1v8d4f6"><span class="svelte-1v8d4f6">Color</span> <!></label> <div class="actions svelte-1v8d4f6"><button type="button" class="primary svelte-1v8d4f6">Save</button> <button type="button" data-role="reset" class="svelte-1v8d4f6">Reset</button> <button type="button" class="svelte-1v8d4f6">Cancel</button></div></div>');function Rv(e,t){se(t,!0);const n=we(()=>t.initialAppearance);let r=F(oe(n?.icon)),s=F(oe(n?.color)),a=F(oe(we(()=>t.entityLabel))),o=F(n?.icon!==void 0);const l=K(()=>i(a).trim()),c=K(()=>t.requireLabel&&i(l)===""),u=K(()=>i(l)===""?t.entityLabel:i(l)),d=K(()=>i(r)??t.defaultIcon),f=K(()=>n!==void 0);function h(){i(c)||(t.onSave({label:i(l),icon:i(r),color:i(s)}),t.close())}function b(){t.onReset(),t.close()}var E=jx(),y=p(E),g=p(y);v(y);var x=w(y,2),_=p(x);let m,I;var R=p(_),T=p(R),D=p(T);v(T),v(R);var L=w(R,2),j=p(L,!0);v(L),v(_),v(x);var M=w(x,2),C=p(M),P=w(p(C));{var N=J=>{var ce=Cx();k(J,ce)};W(P,J=>{t.requireLabel||J(N)})}v(C);var z=w(C,2);ge(z),v(M);var U=w(M,2),X=w(p(U),2);{var Y=J=>{var ce=Tx();H("click",ce,()=>S(o,!0)),k(J,ce)},B=J=>{var ce=Rx(),be=ve(ce);Ax(be,{get value(){return i(r)},set value(De){S(r,De,!0)}});var st=w(be,2);H("click",st,()=>S(o,!1)),k(J,ce)};W(X,J=>{i(o)?J(B,-1):J(Y)})}v(U);var V=w(U,2),Z=w(p(V),2);{let J=K(()=>i(s)??"#888888");wv(Z,{get value(){return i(J)},onchange:ce=>S(s,ce,!0)})}v(V);var G=w(V,2),$=p(G),ie=w($,2),pe=w(ie,2);v(G),v(E),q(()=>{O(g,`Customize ${t.entityLabel??""}`),m=ue(_,1,"preview-card svelte-1v8d4f6",null,m,{"preview-card--tinted":i(s)!==void 0}),I=He(_,"",I,{"--card-color":i(s)??"transparent"}),ne(D,"href",`${zn}#${i(d)??""}`),O(j,i(u)),ne(z,"placeholder",t.entityLabel),$.disabled=i(c),ie.disabled=!i(f)}),Se(z,()=>i(a),J=>S(a,J)),H("click",$,h),H("click",ie,b),H("click",pe,()=>t.close()),k(e,E),ae()}le(["click"]);let Gn=null;function Px(e){Gn=e}function Dx(){Gn=null}function jv(e){return e.icon===void 0&&e.color===void 0&&e.label===void 0}function vo(e){const t=Gn?.user.overrides;if(!t)return;const n=t[e];if(n&&!jv(n))return n}function Dc(e,t){if(!Gn)return;const r={...Gn.user.overrides};t===void 0||jv(t)?delete r[e]:r[e]=t,Gn.user.overrides=r}function Mx(){Gn={ephemeral:{},session:{},workspace:{},user:{overrides:{}}}}Mx();function Lx(){const e=Vs();return!e||e.type!=="app"?null:e.ref}function zx(e){const t=Lx();if(!t)return;const n=Kr().find(l=>l.id===t.appId),r=n?.label??t.appId,s=n?.icon??"box",a=vo(t.appId),o={entityLabel:a?.label??r,initialAppearance:a,defaultIcon:s,requireLabel:!1,onSave:l=>{Dc(t.appId,{label:l.label===""?void 0:l.label,icon:l.icon,color:l.color})},onReset:()=>Dc(t.appId,void 0)};Kt.open(Rv,o)}const Ox={manifest:{id:"__app-appearance__",label:"App Appearance",version:sn,views:[]},activate(e){const t=e.state({user:{overrides:{}}});Px(t);const n={id:"app.customize",label:"Customize…",scope:{element:"app"},contextItem:!0,group:"appearance",run:zx};e.actions.register(n)},autostart(){},deactivate(){Dx()}};var Nx=A('<button type="button" data-sh3-scope="element:app"><span class="shell-home-card-square svelte-cpn2x2"><svg class="shell-home-card-icon svelte-cpn2x2"><use></use></svg></span> <span class="shell-home-card-label svelte-cpn2x2"> </span></button>'),qx=A('<section class="shell-home-section svelte-cpn2x2"><h2 class="shell-home-section-title svelte-cpn2x2">Apps</h2> <div class="shell-home-grid svelte-cpn2x2"></div></section>'),Bx=A('<button type="button" data-sh3-scope="element:app"><span class="shell-home-card-square svelte-cpn2x2"><svg class="shell-home-card-icon svelte-cpn2x2"><use></use></svg></span> <span class="shell-home-card-label svelte-cpn2x2"> </span></button>'),Vx=A('<section class="shell-home-section svelte-cpn2x2"><h2 class="shell-home-section-title svelte-cpn2x2">Admin</h2> <div class="shell-home-grid svelte-cpn2x2"></div></section>'),Fx=A('<p class="shell-home-empty svelte-cpn2x2"><!></p>'),Ux=A('<div class="shell-home svelte-cpn2x2"><header class="shell-home-header svelte-cpn2x2"><div class="shell-home-title-row svelte-cpn2x2"><!> <span class="shell-home-version svelte-cpn2x2"> </span> <span class="shell-home-alpha svelte-cpn2x2">alpha</span></div> <div class="shell-home-credit svelte-cpn2x2">Art: by <a href="https://www.andbc.co/" target="_blank" rel="noopener noreferrer" class="svelte-cpn2x2">andbc</a></div></header> <div class="shell-home-filter svelte-cpn2x2"><input type="search" placeholder="Filter apps…" aria-label="Filter apps by name" class="shell-home-filter-input svelte-cpn2x2"/></div> <!> <!> <!> <!> <!></div>');function Hx(e,t){se(t,!0);const n=Xa("__sh3core__");function r(N,z){N.preventDefault(),n.set({type:"app",ref:{appId:z}}),bn.actions.openContextMenu({x:N.clientX,y:N.clientY,scope:{element:"app"}})}let s=F("");const a=K(Kr),o=K(bt),l=K(()=>sr.activeProjectId?Ot.projects.find(N=>N.id===sr.activeProjectId)??null:null);function c(N,z){if(!z)return!0;const U=z.toLowerCase();return N.label.toLowerCase().includes(U)||N.id.toLowerCase().includes(U)}function u(N){return i(l)?i(l).appAllowlist.includes(N):!0}const d=K(()=>i(a).filter(N=>!N.admin&&c(N,i(s))&&u(N.id))),f=K(()=>i(a).filter(N=>N.admin&&c(N,i(s)))),h=K(()=>i(d).length+(i(o)?i(f).length:0));var b=Ux(),E=p(b),y=p(E),g=p(y);ex(g,{});var x=w(g,2),_=p(x);v(x),qt(2),v(y),qt(2),v(E);var m=w(E,2),I=p(m);ge(I),v(m);var R=w(m,2);hx(R,{});var T=w(R,2);xx(T,{});var D=w(T,2);{var L=N=>{var z=qx(),U=w(p(z),2);he(U,21,()=>i(d),X=>X.id,(X,Y)=>{const B=K(()=>vo(i(Y).id));var V=Nx();let Z,G;var $=p(V),ie=p($),pe=p(ie);v(ie),v($);var J=w($,2),ce=p(J,!0);v(J),v(V),q(()=>{Z=ue(V,1,"shell-home-card svelte-cpn2x2",null,Z,{"shell-home-card--tinted":i(B)?.color}),G=He(V,"",G,{"--card-color":i(B)?.color??"transparent"}),ne(pe,"href",`${zn}#${i(B)?.icon??i(Y).icon??"box"??""}`),O(ce,i(B)?.label??i(Y).label)}),H("click",V,()=>Sn(i(Y).id)),H("contextmenu",V,be=>r(be,i(Y).id)),k(X,V)}),v(U),v(z),k(N,z)};W(D,N=>{i(d).length>0&&N(L)})}var j=w(D,2);{var M=N=>{var z=Vx(),U=w(p(z),2);he(U,21,()=>i(f),X=>X.id,(X,Y)=>{const B=K(()=>vo(i(Y).id));var V=Bx();let Z,G;var $=p(V),ie=p($),pe=p(ie);v(ie),v($);var J=w($,2),ce=p(J,!0);v(J),v(V),q(()=>{Z=ue(V,1,"shell-home-card svelte-cpn2x2",null,Z,{"shell-home-card--tinted":i(B)?.color}),G=He(V,"",G,{"--card-color":i(B)?.color??"transparent"}),ne(pe,"href",`${zn}#${i(B)?.icon??i(Y).icon??"box"??""}`),O(ce,i(B)?.label??i(Y).label)}),H("click",V,()=>Sn(i(Y).id)),H("contextmenu",V,be=>r(be,i(Y).id)),k(X,V)}),v(U),v(z),k(N,z)};W(j,N=>{i(o)&&i(f).length>0&&N(M)})}var C=w(j,2);{var P=N=>{var z=Fx(),U=p(z);{var X=B=>{var V=$t("No apps registered.");k(B,V)},Y=B=>{var V=$t();q(()=>O(V,`No apps match “${i(s)??""}”.`)),k(B,V)};W(U,B=>{i(a).length===0?B(X):B(Y,-1)})}v(z),k(N,z)};W(C,N=>{i(h)===0&&N(P)})}v(b),q(()=>O(_,`v${sn}`)),Se(I,()=>i(s),N=>S(s,N)),k(e,b),ae()}le(["click","contextmenu"]);var Kx=A('<p class="keys-peers-muted svelte-19l5m7c">Loading...</p>'),Wx=A('<p class="keys-peers-error svelte-19l5m7c"> </p>'),Yx=A('<p class="keys-peers-muted svelte-19l5m7c">No keys yet. Shards will ask your permission before creating one.</p>'),Gx=A('<button type="button" class="keys-peers-btn-danger svelte-19l5m7c">Confirm</button> <button type="button" class="keys-peers-btn-secondary svelte-19l5m7c">Cancel</button>',1),Xx=A('<button type="button" class="keys-peers-btn-danger svelte-19l5m7c">Revoke</button>'),Jx=A('<li class="keys-peers-item svelte-19l5m7c"><div class="keys-peers-info svelte-19l5m7c"><span class="keys-peers-label svelte-19l5m7c"> </span> <span class="keys-peers-meta svelte-19l5m7c"> </span> <span class="keys-peers-meta svelte-19l5m7c"> </span> <span class="keys-peers-meta svelte-19l5m7c"> </span></div> <div class="keys-peers-actions svelte-19l5m7c"><!></div></li>'),Zx=A('<ul class="keys-peers-list svelte-19l5m7c"></ul>'),Qx=A('<div class="keys-peers svelte-19l5m7c"><div class="keys-peers-header svelte-19l5m7c"><h2 class="svelte-19l5m7c">Keys & Peers</h2></div> <!></div>');function $x(e,t){se(t,!0);let n=F(oe([])),r=F(null),s=F(!0),a=F(null);async function o(){S(r,null),S(s,!0);try{const y=await fetch("/api/keys",{credentials:"include"});if(!y.ok)throw new Error(`HTTP ${y.status}`);S(n,await y.json(),!0)}catch(y){S(r,y instanceof Error?y.message:String(y),!0)}finally{S(s,!1)}}async function l(y){S(a,null);const g=await fetch(`/api/keys/${encodeURIComponent(y)}`,{method:"DELETE",credentials:"include"});(g.ok||g.status===404)&&S(n,i(n).filter(x=>x.id!==y),!0)}function c(y){return new Date(y).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}xe(()=>{o()}),xe(()=>bl("*",()=>{o()}));var u=Qx(),d=w(p(u),2);{var f=y=>{var g=Kx();k(y,g)},h=y=>{var g=Wx(),x=p(g);v(g),q(()=>O(x,`Failed to load: ${i(r)??""}`)),k(y,g)},b=y=>{var g=Yx();k(y,g)},E=y=>{var g=Zx();he(g,21,()=>i(n),x=>x.id,(x,_)=>{var m=Jx(),I=p(m),R=p(I),T=p(R,!0);v(R);var D=w(R,2),L=p(D);v(D);var j=w(D,2),M=p(j);v(j);var C=w(j,2),P=p(C);v(C),v(I);var N=w(I,2),z=p(N);{var U=Y=>{var B=Gx(),V=ve(B),Z=w(V,2);H("click",V,()=>l(i(_).id)),H("click",Z,()=>{S(a,null)}),k(Y,B)},X=Y=>{var B=Xx();H("click",B,()=>{S(a,i(_).id,!0)}),k(Y,B)};W(z,Y=>{i(a)===i(_).id?Y(U):Y(X,-1)})}v(N),v(m),q((Y,B,V)=>{O(T,i(_).label),O(L,`Minted by: ${i(_).mintedByShardId??"system"??""}${i(_).peerRole||i(_).peerId?` · Peer: ${i(_).peerRole??"—"}${i(_).peerId?` (${i(_).peerId})`:""}`:""}`),O(M,`Scopes: ${Y??""}`),O(P,`Created: ${B??""} · Expires: ${V??""}`)},[()=>i(_).scopes.join(", "),()=>c(i(_).createdAt),()=>i(_).expiresAt?c(i(_).expiresAt):"never"]),k(x,m)}),v(g),k(y,g)};W(d,y=>{i(s)?y(f):i(r)?y(h,1):i(n).length===0?y(b,2):y(E,-1)})}v(u),k(e,u),ae()}le(["click"]);var eS=A('<div class="confirm-dialog svelte-1k1962w"><div class="confirm-dialog-title svelte-1k1962w"> </div> <div class="confirm-dialog-body svelte-1k1962w"> </div> <div class="confirm-dialog-actions svelte-1k1962w"><button type="button" class="confirm-dialog-btn confirm-dialog-btn-cancel svelte-1k1962w" data-confirm-dialog-cancel=""> </button> <button type="button" data-confirm-dialog-confirm=""> </button></div></div>');function Pv(e,t){se(t,!0);let n=Q(t,"confirmLabel",3,"Confirm"),r=Q(t,"cancelLabel",3,"Cancel"),s=Q(t,"confirmTone",3,"default"),a=F(void 0),o=F(!1);xe(()=>{i(a)?.focus()});async function l(){if(!i(o)){S(o,!0);try{await t.onConfirm()}finally{t.close()}}}function c(){i(o)||(t.onCancel?.(),t.close())}var u=eS(),d=p(u),f=p(d,!0);v(d);var h=w(d,2),b=p(h,!0);v(h);var E=w(h,2),y=p(E),g=p(y,!0);v(y),Le(y,I=>S(a,I),()=>i(a));var x=w(y,2);let _;var m=p(x,!0);v(x),v(E),v(u),q(()=>{O(f,t.title),O(b,t.body),y.disabled=i(o),O(g,r()),_=ue(x,1,"confirm-dialog-btn svelte-1k1962w",null,_,{"confirm-dialog-btn-danger":s()==="danger","confirm-dialog-btn-default":s()==="default"}),x.disabled=i(o),O(m,n())}),H("click",y,c),H("click",x,l),k(e,u),ae()}le(["click"]);const Mc=new Set(["await","break","case","catch","class","const","continue","debugger","default","delete","do","else","enum","export","extends","false","finally","for","function","if","import","in","instanceof","let","new","null","return","super","switch","this","throw","true","try","typeof","var","void","while","with","yield"]);function Ai(e,t){const n=Object.keys(t),r=n.filter(o=>!Mc.has(o)),s=n.filter(o=>Mc.has(o)),a=[`const __m__ = globalThis.${e};`];r.length>0&&a.push(`export const { ${r.join(", ")} } = __m__;`);for(const o of s)a.push(`const __r_${o}__ = __m__['${o}']; export { __r_${o}__ as ${o} };`);return a.push("export default __m__.default;"),URL.createObjectURL(new Blob([a.join(`
|
|
11
|
+
`)],{type:"application/javascript"}))}const kl=globalThis;kl.__sh3__=Iv;kl.__sh3_svelte__=kd;kl.__sh3_svelte_internal_client__=Ld;const xl={"sh3-core":Ai("__sh3__",Iv),svelte:Ai("__sh3_svelte__",kd),"svelte/internal/client":Ai("__sh3_svelte_internal_client__",Ld)};xl["svelte/internal/disclose-version"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));xl["sh3-core/tokens.css"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));const tS=/(?:from|import)\s*(['"])(sh3-core(?:\/[^'"]*)?|svelte(?:\/[^'"]*)?)\1/g;function nS(e){return e.replace(tS,(t,n,r)=>{const s=xl[r];return s?`${t.startsWith("from")?"from":"import"} '${s}'`:t})}async function Us(e){const t=new TextDecoder().decode(e),n=nS(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;rS(c)?o.shards.push(c):sS(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 rS(e){return"activate"in e&&typeof e.activate=="function"&&Array.isArray(e.manifest.views)}function sS(e){return"initialLayout"in e&&Array.isArray(e.manifest.requiredShards)}const aS="sh3-packages",iS=1,xs="bundles",Nr="meta";function Hs(){return new Promise((e,t)=>{const n=indexedDB.open(aS,iS);n.onupgradeneeded=()=>{const r=n.result;r.objectStoreNames.contains(xs)||r.createObjectStore(xs),r.objectStoreNames.contains(Nr)||r.createObjectStore(Nr)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}function or(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 Dv(e,t,n){const r=await Hs();await or(r,xs,"readwrite",s=>s.put(t,e)),await or(r,Nr,"readwrite",s=>s.put(n,e)),r.close()}async function Mv(e){const t=await Hs(),n=await or(t,xs,"readonly",r=>r.get(e));return t.close(),n??null}async function oS(e){const t=await Hs(),n=await or(t,Nr,"readonly",r=>r.get(e));return t.close(),n??null}async function Lv(){const e=await Hs(),t=await or(e,Nr,"readonly",n=>n.getAll());return e.close(),t??[]}async function lS(e){const t=await Hs();await or(t,xs,"readwrite",n=>n.delete(e)),await or(t,Nr,"readwrite",n=>n.delete(e)),t.close()}function Sl(e,t){for(const n of e.shards)n.manifest={...n.manifest,version:t.version},gl(n);for(const n of e.apps)n.manifest={...n.manifest,version:t.version},Go(n)}const cS={"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 Ci(e){return cS[e]??{title:e,description:"Unknown permission."}}function El(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 Il(e,t,n){if(!t.integrity)return{success:!1,hotLoaded:!1,error:"Missing integrity hash — refusing to install unverified bundle"};try{await yl(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 Us(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:El(r)};try{await Dv(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{ii(t.id)}catch{}(t.type==="app"||t.type==="combo")&&ti(t.id);let a=!0;try{Sl(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 uS(e){try{ii(e)}catch{}ti(e),await lS(e)}async function dS(){return Lv()}async function fS(){let e;try{e=await Lv()}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 Mv(t.id);if(!n){console.warn(`[sh3] No bundle found for installed package "${t.id}", skipping`);continue}const r=await Us(n);Sl(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 Lc={version:1};var vS=A('<span class="perm-modal-author svelte-1ipp1r6"> </span>'),hS=A('<p class="perm-modal-empty svelte-1ipp1r6">This package requires no special permissions.</p>'),pS=A('<li class="perm-modal-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6"> </div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),mS=A('<p class="perm-modal-intro svelte-1ipp1r6">This package requests the following permissions:</p> <ul class="perm-modal-list svelte-1ipp1r6"></ul>',1),bS=A('<li class="perm-modal-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6"> </div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),gS=A('<p class="perm-modal-intro svelte-1ipp1r6">New permissions in this update:</p> <ul class="perm-modal-list perm-modal-added svelte-1ipp1r6"></ul>',1),yS=A('<li class="perm-modal-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6"> </div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),_S=A('<p class="perm-modal-intro svelte-1ipp1r6">Permissions no longer requested:</p> <ul class="perm-modal-list perm-modal-removed svelte-1ipp1r6"></ul>',1),wS=A("<!> <!>",1),kS=A('<div class="perm-modal-backdrop svelte-1ipp1r6" role="dialog" aria-modal="true" tabindex="-1"><div class="perm-modal-panel svelte-1ipp1r6" role="document"><header class="perm-modal-header svelte-1ipp1r6"><h3 class="svelte-1ipp1r6"> </h3> <div class="perm-modal-subtitle svelte-1ipp1r6"><!> <!></div></header> <div class="perm-modal-body svelte-1ipp1r6"><!></div> <footer class="perm-modal-footer svelte-1ipp1r6"><button class="perm-modal-cancel svelte-1ipp1r6">Cancel</button> <button class="perm-modal-confirm svelte-1ipp1r6"> </button></footer></div></div>');function ho(e,t){se(t,!0);const n=Q(t,"permissions",19,()=>[]),r=Q(t,"added",19,()=>[]),s=Q(t,"removed",19,()=>[]),a=K(()=>t.mode==="install"?"Install":"Update");var o=kS(),l=p(o),c=p(l),u=p(c),d=p(u);v(u);var f=w(u,2),h=p(f);{var b=j=>{var M=$t();q(()=>O(M,`${t.fromVersion??""} → ${t.pkg.version??""}`)),k(j,M)},E=j=>{var M=$t();q(()=>O(M,`v${t.pkg.version??""}`)),k(j,M)};W(h,j=>{t.mode==="update"&&t.fromVersion?j(b):j(E,-1)})}var y=w(h,2);{var g=j=>{var M=vS(),C=p(M);v(M),q(()=>O(C,`by ${t.pkg.author??""}`)),k(j,M)};W(y,j=>{t.pkg.author&&j(g)})}v(f),v(c);var x=w(c,2),_=p(x);{var m=j=>{var M=qe(),C=ve(M);{var P=z=>{var U=hS();k(z,U)},N=z=>{var U=mS(),X=w(ve(U),2);he(X,20,n,Y=>Y,(Y,B)=>{const V=K(()=>Ci(B));var Z=pS(),G=p(Z),$=p(G,!0);v(G);var ie=w(G,2),pe=p(ie,!0);v(ie),v(Z),q(()=>{O($,i(V).title),O(pe,i(V).description)}),k(Y,Z)}),v(X),k(z,U)};W(C,z=>{n().length===0?z(P):z(N,-1)})}k(j,M)},I=j=>{var M=wS(),C=ve(M);{var P=U=>{var X=gS(),Y=w(ve(X),2);he(Y,20,r,B=>B,(B,V)=>{const Z=K(()=>Ci(V));var G=bS(),$=p(G),ie=p($,!0);v($);var pe=w($,2),J=p(pe,!0);v(pe),v(G),q(()=>{O(ie,i(Z).title),O(J,i(Z).description)}),k(B,G)}),v(Y),k(U,X)};W(C,U=>{r().length>0&&U(P)})}var N=w(C,2);{var z=U=>{var X=_S(),Y=w(ve(X),2);he(Y,20,s,B=>B,(B,V)=>{const Z=K(()=>Ci(V));var G=yS(),$=p(G),ie=p($,!0);v($);var pe=w($,2),J=p(pe,!0);v(pe),v(G),q(()=>{O(ie,i(Z).title),O(J,i(Z).description)}),k(B,G)}),v(Y),k(U,X)};W(N,U=>{s().length>0&&U(z)})}k(j,M)};W(_,j=>{t.mode==="install"?j(m):j(I,-1)})}v(x);var R=w(x,2),T=p(R),D=w(T,2),L=p(D,!0);v(D),v(R),v(l),v(o),q(()=>{ne(o,"aria-label",`${i(a)??""} ${t.pkg.label??""}`),O(d,`${i(a)??""} ${t.pkg.label??""}`),O(L,i(a))}),H("click",o,function(...j){t.onCancel?.apply(this,j)}),H("keydown",o,j=>{j.key==="Escape"&&t.onCancel()}),H("click",l,j=>j.stopPropagation()),H("click",T,function(...j){t.onCancel?.apply(this,j)}),H("click",D,function(...j){t.onConfirm?.apply(this,j)}),k(e,o),ae()}le(["click","keydown"]);function Al(e){return e==="shard"?"shard":"app"}function xS(e){return Al(e)==="shard"?"Shard":"App"}function SS(e,t){return t==="all"?!0:Al(e)===t}var ES=A('<div class="store-registry-entry svelte-1aafzt0"><span class="store-registry-url svelte-1aafzt0"> </span> <button class="store-registry-remove svelte-1aafzt0">Remove</button></div>'),IS=A('<div class="store-registries svelte-1aafzt0"></div>'),AS=A('<form class="store-add-registry svelte-1aafzt0"><input class="store-registry-input svelte-1aafzt0" type="url" placeholder="Registry URL (e.g. https://sh3.example.com/registry.json)"/> <button type="submit" class="store-add-btn svelte-1aafzt0">Add</button></form>'),CS=A('<div class="store-error svelte-1aafzt0"> </div>'),TS=A('<div class="store-error svelte-1aafzt0"> </div>'),RS=A('<img alt="" class="store-icon-img svelte-1aafzt0"/>'),jS=A('<span class="store-icon-placeholder svelte-1aafzt0"> </span>'),PS=A('<div class="store-card-warning svelte-1aafzt0"> </div>'),DS=A('<button class="store-update-btn svelte-1aafzt0"> </button>'),MS=A('<span class="store-installed-label svelte-1aafzt0">Installed</span>'),LS=A('<span class="store-card-missing svelte-1aafzt0"> </span>'),zS=A('<div class="store-install-wrap svelte-1aafzt0"><button class="store-install-btn svelte-1aafzt0"> </button> <!></div>'),OS=A('<div class="store-card svelte-1aafzt0"><div class="store-card-header svelte-1aafzt0"><div class="store-card-icon svelte-1aafzt0"><!></div> <div class="store-card-title svelte-1aafzt0"><span class="store-card-label svelte-1aafzt0"> </span> <span> </span> <span class="store-card-version svelte-1aafzt0"> </span></div></div> <p class="store-card-desc svelte-1aafzt0"> </p> <div class="store-card-author svelte-1aafzt0"> </div> <!> <div class="store-card-actions svelte-1aafzt0"><!></div></div>'),NS=A("No packages found. <!>",1),qS=A('<div class="store-empty svelte-1aafzt0"><!></div>'),BS=A('<div class="store-view svelte-1aafzt0"><header class="store-header svelte-1aafzt0"><h2 class="svelte-1aafzt0">Package Store</h2> <div class="store-controls svelte-1aafzt0"><input class="store-search svelte-1aafzt0" type="text" placeholder="Search packages..."/> <select class="store-filter svelte-1aafzt0"><option>All</option><option>Shards</option><option>Apps</option></select> <button class="store-refresh svelte-1aafzt0"> </button></div></header> <!> <!> <!> <!> <div class="store-grid svelte-1aafzt0"></div> <!></div> <!> <!>',1);function VS(e,t){se(t,!0);let n=F(""),r=F("all"),s=F(oe(new Set)),a=F(oe(new Set)),o=F(null),l=F(""),c=F(null),u=F(null);const d=Qe;async function f(){const ee=i(l).trim();if(ee&&!d.env.registries.includes(ee))try{await d.addRegistry(ee),S(l,""),d.refreshCatalog(),d.refreshInstalled()}catch(te){S(o,te instanceof Error?te.message:String(te),!0)}}async function h(ee){try{await d.removeRegistry(ee),d.refreshCatalog()}catch(te){S(o,te instanceof Error?te.message:String(te),!0)}}const b=K(()=>{const ee=i(n).toLowerCase().trim();return d.state.ephemeral.catalog.filter(te=>SS(te.entry.type,i(r))?ee?te.entry.id.toLowerCase().includes(ee)||te.entry.label.toLowerCase().includes(ee)||te.entry.description.toLowerCase().includes(ee):!0:!1)});function E(ee){return d.state.ephemeral.installed.some(te=>te.id===ee)}function y(ee){return String(ee.latest.contractVersion)!==String(Lc.version)}function g(ee){return ee in d.state.ephemeral.updatable}function x(ee){return d.state.ephemeral.installed.find(te=>te.id===ee)?.version??""}function _(ee,te){const Ae=ee.latest.requires?.map(ke=>ke.id)??[];if(Ae.length===0)return[];const ze=new Set(Ev);for(const ke of te)(ke.type==="shard"||ke.type==="combo")&&ze.add(ke.id);return Ae.filter(ke=>!ze.has(ke))}async function m(ee){if(!i(a).has(ee)){S(a,new Set([...i(a),ee]),!0),S(o,null);try{await d.updatePackage(ee,(te,Ae)=>new Promise(ze=>{const ke=d.state.ephemeral.updatable[ee],Ke=d.state.ephemeral.installed.find(tt=>tt.id===ee);if(!ke||!Ke){ze(!0);return}S(u,{pkg:ke,fromVersion:Ke.version,added:te,removed:Ae,resolve:ze},!0)}))}catch(te){S(o,te instanceof Error?te.message:String(te),!0)}finally{const te=new Set(i(a));te.delete(ee),S(a,te,!0)}}}function I(){const ee=i(u);ee&&(S(u,null),ee.resolve(!0))}function R(){const ee=i(u);ee&&(S(u,null),ee.resolve(!1))}async function T(ee){const te=ee.entry.id;if(!i(s).has(te)){S(s,new Set([...i(s),te]),!0),S(o,null);try{const Ae=await oi(ee.latest,ee.sourceRegistry),ze=li(ee,ee.latest),ke=await Us(Ae),Ke=El(ke);let tt;ee.latest.serverBundleUrl&&(tt=await _l(ee.latest,ee.sourceRegistry)),S(c,{pkg:ee,permissions:Ke,loaded:ke,bundle:Ae,meta:ze,serverBundle:tt},!0)}catch(Ae){S(o,Ae instanceof Error?Ae.message:String(Ae),!0);const ze=new Set(i(s));ze.delete(te),S(s,ze,!0)}}}async function D(){const ee=i(c);if(!ee)return;S(c,null);const{pkg:te,loaded:Ae,bundle:ze,meta:ke,serverBundle:Ke}=ee,tt=te.entry.id;try{const Ge={id:ke.id,type:ke.type,label:te.entry.label,version:ke.version,contractVersion:ke.contractVersion,sourceRegistry:ke.sourceRegistry,requiredShards:te.latest.requires?.map(jt=>jt.id)??[],installedAt:new Date().toISOString()},Bn=await ml(Ge,ze,Ke);if(!Bn.ok){S(o,Bn.error??"Server install failed",!0);return}const Cn=await Il(ze,ke,{loaded:Ae});Cn.success||console.warn(`[sh3-store] Server install ok but local hot-load failed: ${Cn.error}`),await d.refreshInstalled()}catch(Ge){S(o,Ge instanceof Error?Ge.message:String(Ge),!0)}finally{const Ge=new Set(i(s));Ge.delete(tt),S(s,Ge,!0)}}function L(){if(!i(c))return;const ee=i(c).pkg.entry.id;S(c,null);const te=new Set(i(s));te.delete(ee),S(s,te,!0)}function j(){d.refreshCatalog(),d.refreshInstalled()}var M=BS(),C=ve(M),P=p(C),N=w(p(P),2),z=p(N);ge(z);var U=w(z,2),X=p(U);X.value=X.__value="all";var Y=w(X);Y.value=Y.__value="shard";var B=w(Y);B.value=B.__value="app",v(U);var V=w(U,2),Z=p(V,!0);v(V),v(N),v(P);var G=w(P,2);{var $=ee=>{var te=IS();he(te,21,()=>d.env.registries,dt,(Ae,ze)=>{var ke=ES(),Ke=p(ke),tt=p(Ke,!0);v(Ke);var Ge=w(Ke,2);v(ke),q(()=>O(tt,i(ze))),H("click",Ge,()=>h(i(ze))),k(Ae,ke)}),v(te),k(ee,te)};W(G,ee=>{d.isAdmin&&d.env.registries.length>0&&ee($)})}var ie=w(G,2);{var pe=ee=>{var te=AS(),Ae=p(te);ge(Ae);var ze=w(Ae,2);v(te),q(ke=>ze.disabled=ke,[()=>!i(l).trim()]),Pe("submit",te,ke=>{ke.preventDefault(),f()}),Se(Ae,()=>i(l),ke=>S(l,ke)),k(ee,te)};W(ie,ee=>{d.isAdmin&&ee(pe)})}var J=w(ie,2);{var ce=ee=>{var te=CS(),Ae=p(te,!0);v(te),q(()=>O(Ae,d.state.ephemeral.error)),k(ee,te)};W(J,ee=>{d.state.ephemeral.error&&ee(ce)})}var be=w(J,2);{var st=ee=>{var te=TS(),Ae=p(te,!0);v(te),q(()=>O(Ae,i(o))),k(ee,te)};W(be,ee=>{i(o)&&ee(st)})}var De=w(be,2);he(De,21,()=>i(b),ee=>ee.entry.id,(ee,te)=>{const Ae=K(()=>E(i(te).entry.id)),ze=K(()=>y(i(te))),ke=K(()=>i(s).has(i(te).entry.id)),Ke=K(()=>g(i(te).entry.id)),tt=K(()=>i(a).has(i(te).entry.id)),Ge=K(()=>_(i(te),d.state.ephemeral.installed)),Bn=K(()=>Al(i(te).entry.type));var Cn=OS(),jt=p(Cn),Vn=p(jt),mh=p(Vn);{var bh=Oe=>{var Ne=RS();q(()=>ne(Ne,"src",i(te).entry.icon)),k(Oe,Ne)},gh=Oe=>{var Ne=jS(),Pt=p(Ne,!0);v(Ne),q(()=>O(Pt,i(te).entry.type==="shard"?"S":"A")),k(Oe,Ne)};W(mh,Oe=>{i(te).entry.icon?Oe(bh):Oe(gh,-1)})}v(Vn);var Pl=w(Vn,2),fi=p(Pl),yh=p(fi,!0);v(fi);var Ks=w(fi,2);let Dl;var _h=p(Ks,!0);v(Ks);var Ml=w(Ks,2),wh=p(Ml,!0);v(Ml),v(Pl),v(jt);var vi=w(jt,2),kh=p(vi,!0);v(vi);var hi=w(vi,2),xh=p(hi,!0);v(hi);var Ll=w(hi,2);{var Sh=Oe=>{var Ne=PS(),Pt=p(Ne);v(Ne),q(()=>O(Pt,`Contract mismatch: package targets v${i(te).latest.contractVersion??""}, running v${Lc.version}`)),k(Oe,Ne)};W(Ll,Oe=>{i(ze)&&Oe(Sh)})}var zl=w(Ll,2),Eh=p(zl);{var Ih=Oe=>{var Ne=DS(),Pt=p(Ne,!0);v(Ne),q(pi=>{Ne.disabled=i(tt),O(Pt,pi)},[()=>i(tt)?"Updating...":`Update ${x(i(te).entry.id)} -> ${i(te).latest.version}`]),H("click",Ne,()=>m(i(te).entry.id)),k(Oe,Ne)},Ah=Oe=>{var Ne=MS();k(Oe,Ne)},Ch=Oe=>{var Ne=zS(),Pt=p(Ne),pi=p(Pt,!0);v(Pt);var Th=w(Pt,2);{var Rh=Zr=>{var mi=LS(),jh=p(mi);v(mi),q(Ph=>O(jh,`requires: ${Ph??""}`),[()=>i(Ge).join(", ")]),k(Zr,mi)};W(Th,Zr=>{i(Ge).length>0&&Zr(Rh)})}v(Ne),q(Zr=>{Pt.disabled=i(ke)||i(Ge).length>0,ne(Pt,"title",Zr),O(pi,i(ke)?"Installing...":"Install")},[()=>i(Ge).length>0?`Missing required shards: ${i(Ge).join(", ")}`:void 0]),H("click",Pt,()=>T(i(te))),k(Oe,Ne)};W(Eh,Oe=>{i(Ae)&&i(Ke)?Oe(Ih):i(Ae)?Oe(Ah,1):Oe(Ch,-1)})}v(zl),v(Cn),q(Oe=>{O(yh,i(te).entry.label),Dl=ue(Ks,1,"store-card-badge svelte-1aafzt0",null,Dl,{"badge-shard":i(Bn)==="shard","badge-app":i(Bn)==="app"}),O(_h,Oe),O(wh,i(te).latest.version),O(kh,i(te).entry.description),O(xh,i(te).entry.author.name)},[()=>xS(i(te).entry.type)]),k(ee,Cn)}),v(De);var Rt=w(De,2);{var Yt=ee=>{var te=qS(),Ae=p(te);{var ze=Ke=>{var tt=NS(),Ge=w(ve(tt));{var Bn=jt=>{var Vn=$t("Add a registry URL above to get started.");k(jt,Vn)},Cn=jt=>{var Vn=$t("No registries configured.");k(jt,Vn)};W(Ge,jt=>{d.isAdmin?jt(Bn):jt(Cn,-1)})}k(Ke,tt)},ke=Ke=>{var tt=$t("No packages match the current filter.");k(Ke,tt)};W(Ae,Ke=>{d.env.registries.length===0?Ke(ze):Ke(ke,-1)})}v(te),k(ee,te)};W(Rt,ee=>{!d.state.ephemeral.loading&&i(b).length===0&&ee(Yt)})}v(C);var jl=w(C,2);{var vh=ee=>{{let te=K(()=>({label:i(c).pkg.entry.label,version:i(c).pkg.latest.version,author:i(c).pkg.entry.author.name}));ho(ee,{mode:"install",get pkg(){return i(te)},get permissions(){return i(c).permissions},onConfirm:D,onCancel:L})}};W(jl,ee=>{i(c)&&ee(vh)})}var hh=w(jl,2);{var ph=ee=>{{let te=K(()=>({label:i(u).pkg.entry.label,version:i(u).pkg.latest.version,author:i(u).pkg.entry.author.name}));ho(ee,{mode:"update",get pkg(){return i(te)},get fromVersion(){return i(u).fromVersion},get added(){return i(u).added},get removed(){return i(u).removed},onConfirm:I,onCancel:R})}};W(hh,ee=>{i(u)&&ee(ph)})}q(()=>{V.disabled=d.state.ephemeral.loading,O(Z,d.state.ephemeral.loading?"Loading...":"Refresh")}),Se(z,()=>i(n),ee=>S(n,ee)),vs(U,()=>i(r),ee=>S(r,ee)),H("click",V,j),k(e,M),ae()}le(["click"]);function zv(e){return Qe.state.ephemeral.catalog.find(t=>t.entry.id===e)}function Ss(e){return Qe.state.ephemeral.installed.find(t=>t.id===e)}const FS={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=Ss(n);if(r){e.scrollback.push({kind:"status",text:`${n} is already installed (v${r.version})`,level:"warn",ts:Date.now()});return}const s=zv(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 oi(s.latest,s.sourceRegistry),o=li(s,s.latest);let l;s.latest.serverBundleUrl&&(l=await _l(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 ml(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 Il(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()})}}},US={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(!Ss(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()})}}},HS={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=Ss(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??Ss(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()})}}},KS={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=Ss(n),s=zv(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 WS(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 YS(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 GS(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 XS={manifest:{id:"sh3-store",label:"Package Store",version:sn,views:[{id:"sh3-store:browse",label:"Store"}]},activate(e){const t=e.env({registries:[]}),n=e.state({ephemeral:{catalog:[],installed:[],updatable:{},loading:!1,error:null}});function r(){const f={};for(const h of n.ephemeral.installed){const b=n.ephemeral.catalog.find(E=>E.entry.id===h.id);b&&WS(b.latest.version,h.version)&&(f[h.id]=b)}n.ephemeral.updatable=f}async function s(){n.ephemeral.loading=!0,n.ephemeral.error=null;try{const f=await pv(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 nk();n.ephemeral.installed=f.map(h=>({id:h.id,type:h.type,version:h.version,sourceRegistry:h.sourceRegistry??"",contractVersion:h.contractVersion??"",installedAt:h.installedAt??"",permissions:[]})),r()}catch(f){console.warn("[sh3-store] Failed to list installed packages:",f instanceof Error?f.message:f);try{const h=await dS();n.ephemeral.installed=h,r()}catch{}}}async function o(f){const h=[...t.registries];h.includes(f)||(h.push(f),await e.envUpdate({registries:h}))}async function l(f){const h=t.registries.filter(b=>b!==f);await e.envUpdate({registries:h})}async function c(f,h,b){let E;if(b===void 0?E=n.ephemeral.updatable[f]:E=n.ephemeral.catalog.find(z=>z.entry.id===f),!E)return;const y=n.ephemeral.installed.find(z=>z.id===f);if(!y)return;const g=YS(E,b),x=await oi(g,E.sourceRegistry);let _;g.serverBundleUrl&&(_=await _l(g,E.sourceRegistry));const m=li(E,g),I=await Us(x),R=El(I);let T=[];try{const z=await oS(f);z?.permissions&&(T=z.permissions)}catch{}const{added:D,removed:L}=GS(T,R);if((D.length>0||L.length>0)&&h&&!await h(D,L))return;const j=await Mv(f),M={...y,permissions:T},C={id:m.id,type:m.type,label:E.entry.label,version:m.version,contractVersion:m.contractVersion,sourceRegistry:m.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:g.requires?.map(z=>z.id)??[]},P=await ml(C,x,_);if(!P.ok){let z=P.error??"Server update failed";throw P.code==="missing-shards"&&P.missing&&(z=`missing required shard(s): ${P.missing.map(X=>X.id).join(", ")}`),new Error(z)}const N=await Il(x,m,{loaded:I});if(!N.success){if(j)try{await Dv(f,j,M)}catch(z){console.warn(`[sh3-store] Rollback failed for "${f}":`,z instanceof Error?z.message:z)}throw new Error(N.error??"Local install failed during update")}await a()}async function u(f){await tk(f),await uS(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,h){const b=Be(VS,{target:f});return{unmount(){Xe(b)}}}};e.registerView("sh3-store:browse",d),e.registerVerb(FS),e.registerVerb(US),e.registerVerb(KS),e.registerVerb(HS),a()},autostart(){Qe.refreshCatalog()}};function JS(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=Kt.open(ho,a)})}var ZS=A('<p class="error svelte-1tiy4hy"> </p>'),QS=A('<div class="app-update-modal svelte-1tiy4hy"><h2 class="svelte-1tiy4hy">Update available</h2> <p class="svelte-1tiy4hy"><strong> </strong> can be updated from <code class="svelte-1tiy4hy"> </code> to <code class="svelte-1tiy4hy"> </code>.</p> <p class="hint svelte-1tiy4hy">Package id: <code class="svelte-1tiy4hy"> </code></p> <!> <div class="actions svelte-1tiy4hy"><button type="button" class="primary svelte-1tiy4hy"> </button> <button type="button" class="svelte-1tiy4hy">Cancel</button></div></div>');function $S(e,t){se(t,!0);let n=F(!1),r=F(null);async function s(){if(!i(n)){S(n,!0),S(r,null);try{await t.onConfirm(),t.close()}catch(T){S(r,T.message,!0)}finally{S(n,!1)}}}var a=QS(),o=w(p(a),2),l=p(o),c=p(l,!0);v(l);var u=w(l,2),d=p(u);v(u);var f=w(u,2),h=p(f);v(f),qt(),v(o);var b=w(o,2),E=w(p(b)),y=p(E,!0);v(E),v(b);var g=w(b,2);{var x=T=>{var D=ZS(),L=p(D,!0);v(D),q(()=>O(L,i(r))),k(T,D)};W(g,T=>{i(r)&&T(x)})}var _=w(g,2),m=p(_),I=p(m,!0);v(m);var R=w(m,2);v(_),v(a),q(()=>{O(c,t.appLabel),O(d,`v${t.fromVersion??""}`),O(h,`v${t.toVersion??""}`),O(y,t.appId),m.disabled=i(n),O(I,i(n)?"Updating…":"Update"),R.disabled=i(n)}),H("click",m,s),H("click",R,function(...T){t.close?.apply(this,T)}),k(e,a),ae()}le(["click"]);var e3=A('<p class="error svelte-86mxbl"> </p>'),t3=A(`<div class="uninstall-dialog svelte-86mxbl"><h2 class="svelte-86mxbl"> </h2> <p class="hint svelte-86mxbl">Package id: <code class="svelte-86mxbl"> </code> · current version: <code class="svelte-86mxbl"> </code></p> <p class="svelte-86mxbl">The package will be removed from this server. App data stored in your
|
|
14
|
+
browser will remain until you clear it manually.</p> <!> <div class="actions svelte-86mxbl"><button type="button" class="danger svelte-86mxbl"> </button> <button type="button" class="svelte-86mxbl">Cancel</button></div></div>`);function n3(e,t){se(t,!0);let n=F(!1),r=F(null);async function s(){if(!i(n)){S(n,!0),S(r,null);try{await t.onConfirm(),t.close()}catch(m){S(r,m.message,!0)}finally{S(n,!1)}}}var a=t3(),o=p(a),l=p(o);v(o);var c=w(o,2),u=w(p(c)),d=p(u,!0);v(u);var f=w(u,2),h=p(f);v(f),v(c);var b=w(c,4);{var E=m=>{var I=e3(),R=p(I,!0);v(I),q(()=>O(R,i(r))),k(m,I)};W(b,m=>{i(r)&&m(E)})}var y=w(b,2),g=p(y),x=p(g,!0);v(g);var _=w(g,2);v(y),v(a),q(()=>{O(l,`Uninstall ${t.appLabel??""}?`),O(d,t.appId),O(h,`v${t.version??""}`),g.disabled=i(n),O(x,i(n)?"Uninstalling…":"Uninstall"),_.disabled=i(n)}),H("click",g,s),H("click",_,function(...m){t.close?.apply(this,m)}),k(e,a),ae()}le(["click"]);var r3=A('<span class="badge built-in svelte-1w44jyn">built-in</span>'),s3=A('<section class="description svelte-1w44jyn"><span class="label svelte-1w44jyn">Description</span> <p class="svelte-1w44jyn"> </p></section>'),a3=A('<p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Author</span> <span> </span></p>'),i3=A('<li><code class="svelte-1w44jyn"> </code></li>'),o3=A('<section class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Required shards</span> <ul class="chips svelte-1w44jyn"></ul></section>'),l3=A('<li><code class="svelte-1w44jyn"> </code></li>'),c3=A('<section class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Permissions</span> <ul class="chips svelte-1w44jyn"></ul></section>'),u3=A('<p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Installed</span><span> </span></p>'),d3=A('<section class="installed svelte-1w44jyn"><p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Source registry</span><code class="svelte-1w44jyn"> </code></p> <!> <p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Contract</span><code class="svelte-1w44jyn"> </code></p></section>'),f3=A('<div class="app-info-modal svelte-1w44jyn"><header class="svelte-1w44jyn"><h2 class="svelte-1w44jyn"> </h2> <code class="id svelte-1w44jyn"> </code></header> <p class="version svelte-1w44jyn"><span class="label svelte-1w44jyn">Version</span> <code class="svelte-1w44jyn"> </code> <!></p> <!> <!> <!> <!> <!> <div class="actions svelte-1w44jyn"><button type="button" class="svelte-1w44jyn">Close</button></div></div>');function v3(e,t){se(t,!0);let n=K(()=>{if(!t.installed)return null;const M=new Date(t.installed.installedAt);return isNaN(M.getTime())?t.installed.installedAt:M.toLocaleString()});var r=f3(),s=p(r),a=p(s),o=p(a,!0);v(a);var l=w(a,2),c=p(l,!0);v(l),v(s);var u=w(s,2),d=w(p(u),2),f=p(d);v(d);var h=w(d,2);{var b=M=>{var C=r3();k(M,C)};W(h,M=>{t.installed||M(b)})}v(u);var E=w(u,2);{var y=M=>{var C=s3(),P=w(p(C),2),N=p(P,!0);v(P),v(C),q(()=>O(N,t.catalogEntry.description)),k(M,C)};W(E,M=>{t.catalogEntry?.description&&M(y)})}var g=w(E,2);{var x=M=>{var C=a3(),P=w(p(C),2),N=p(P,!0);v(P),v(C),q(()=>O(N,t.catalogEntry.author.name)),k(M,C)};W(g,M=>{t.catalogEntry?.author?.name&&M(x)})}var _=w(g,2);{var m=M=>{var C=o3(),P=w(p(C),2);he(P,21,()=>t.manifest.requiredShards,dt,(N,z)=>{var U=i3(),X=p(U),Y=p(X,!0);v(X),v(U),q(()=>O(Y,i(z))),k(N,U)}),v(P),v(C),k(M,C)};W(_,M=>{t.manifest.requiredShards.length>0&&M(m)})}var I=w(_,2);{var R=M=>{var C=c3(),P=w(p(C),2);he(P,21,()=>t.manifest.permissions,dt,(N,z)=>{var U=l3(),X=p(U),Y=p(X,!0);v(X),v(U),q(()=>O(Y,i(z))),k(N,U)}),v(P),v(C),k(M,C)};W(I,M=>{t.manifest.permissions&&t.manifest.permissions.length>0&&M(R)})}var T=w(I,2);{var D=M=>{var C=d3(),P=p(C),N=w(p(P)),z=p(N,!0);v(N),v(P);var U=w(P,2);{var X=Z=>{var G=u3(),$=w(p(G)),ie=p($,!0);v($),v(G),q(()=>O(ie,i(n))),k(Z,G)};W(U,Z=>{i(n)&&Z(X)})}var Y=w(U,2),B=w(p(Y)),V=p(B);v(B),v(Y),v(C),q(()=>{O(z,t.installed.sourceRegistry),O(V,`v${t.installed.contractVersion??""}`)}),k(M,C)};W(T,M=>{t.installed&&M(D)})}var L=w(T,2),j=p(L);v(L),v(r),q(()=>{O(o,t.manifest.label),O(c,t.manifest.id),O(f,`v${t.manifest.version??""}`)}),H("click",j,function(...M){t.close?.apply(this,M)}),k(e,r),ae()}le(["click"]);function h3(e){return!e.admin||e.builtin}function zc(e){return e.admin?e.builtin?" · built-in":"":" · admin only"}function Kn(){const e=Vs();return!e||e.type!=="app"?null:e.ref}function di(e){return Kr().find(t=>t.id===e)}function p3(e){return!Qe.state.ephemeral.installed.some(t=>t.id===e)}function Ti(e){return{admin:bt(),builtin:p3(e)}}function m3(e){const t=Kn();if(!t)return;const n=di(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};Kt.open(v3,a)}async function b3(e){const t=Kn();if(!t)return;const{appId:n}=t,r=dn.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=di(n)?.label??n;if(!s||!a){dn.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)=>JS({label:a.id,version:a.version},s.latest.version,c,u)),dn.notify(`Updated to v${s.latest.version}`,{level:"success"})}catch(c){throw dn.notify(`Update failed: ${c.message}`,{level:"error",duration:5e3}),c}}};Kt.open($S,l)}function g3(e){const t=Kn();if(!t)return;const{appId:n}=t,r=Qe.state.ephemeral.installed.find(o=>o.id===n);if(!r)return;const s=di(n)?.label??n,a={appId:n,appLabel:s,version:r.version,onConfirm:async()=>{try{await Qe.uninstallPackage(n),dn.notify(`Uninstalled ${s}`,{level:"success"})}catch(o){throw dn.notify(`Uninstall failed: ${o.message}`,{level:"error",duration:5e3}),o}}};Kt.open(n3,a)}function y3(e){const t=()=>{const l=Kn();if(!l)return"Info…";const c=di(l.appId);return c?`Info — ${c.label} v${c.version}`:`Info — ${l.appId}`},n=()=>{const l=Kn();return l?`Check for updates${zc(Ti(l.appId))}`:"Check for updates"},r=()=>{const l=Kn();return l?`Uninstall…${zc(Ti(l.appId))}`:"Uninstall…"},s=()=>{const l=Kn();return l?h3(Ti(l.appId)):!0},o=[{id:"app.info",label:t,scope:{element:"app"},contextItem:!0,group:"info",run:m3},{id:"app.checkUpdate",label:n,scope:{element:"app"},contextItem:!0,group:"update",disabled:s,run:b3},{id:"app.uninstall",label:r,scope:{element:"app"},contextItem:!0,group:"uninstall",disabled:s,run:g3}].map(l=>e.actions.register(l));return()=>o.forEach(l=>l())}function _3(){return{id:"sh3.float.toggleMaximize",label:"Toggle Float Maximize",scope:["home","app"],paletteItem:!0,contextItem:!1,defaultShortcut:"Ctrl+Shift+M",disabled:()=>Ce.list().length===0,run(){const e=Ce.list().at(-1);e&&Ce.toggleMaximize(e.id)}}}const w3={manifest:{id:"__sh3core__",label:"SH3 Core",version:sn,views:[{id:"sh3core:home",label:"Home"},{id:"shell:keys-and-peers",label:"Keys & Peers"}]},activate(e){const t=e.state({user:{bindings:{}}});tw(t.user),e.actions.register({id:"sh3.palette.open",label:"Command Palette…",scope:["home","app"],defaultShortcut:"Mod+K",contextItem:!1,paletteItem:!1,run(a){Cr(async()=>{const{openPalette:o}=await Promise.resolve().then(()=>p1);return{openPalette:o}},[]).then(({openPalette:o})=>o())}}),e.actions.register(_3()),e.actions.register({id:"sh3.app.reset-layout",label:"Reset Current Layout",scope:["app"],paletteItem:!0,contextItem:!1,run(){Kt.open(Pv,{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:()=>qw()})}});const n={mount(a,o){const l=Be(Hx,{target:a});return{unmount(){Xe(l)}}}},r={mount(a,o){const l=Be($x,{target:a});return{unmount(){Xe(l)}}}};e.registerView("sh3core:home",n),e.registerView("shell:keys-and-peers",r),y3(e),e.actions.register({id:"sh3.app.launch",label:"Launch app",scope:["home","app"],submenu:!0,paletteItem:!0});const s=new Map;Fr(()=>{xe(()=>{const a=new Set;for(const[o,l]of Mn){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(){Sn(o)}});s.set(o,c)}for(const o of[...s.keys()])a.has(o)||(s.get(o)(),s.delete(o))})})},autostart(){}},k3={id:"shell",label:"Shell",version:sn,views:[{id:"shell:terminal",label:"Shell",standalone:!0}],permissions:[Ua]};class x3{#e;get history(){return i(this.#e)}set history(t){S(this.#e,t,!0)}#t;get locked(){return i(this.#t)}set locked(t){S(this.#t,t,!0)}constructor(t){this.#e=F(oe([])),this.#t=F(!1),this.modeId=t,this.scrollback=new V1}}let Xn=null;function S3(e){Xn=e}function E3(){Xn=null}function Oc(e){return Xn?.workspace.buffers[e]}function I3(e,t){Xn&&(Xn.workspace.buffers={...Xn.workspace.buffers,[e]:t})}function A3(){Xn={ephemeral:{},session:{},workspace:{buffers:{}},user:{}}}A3();const C3=200;class T3{constructor(){this.timers=new Map}hydrate(t){const n=Oc(t.modeId);if(!n)return;const r=[];for(const s of n.entries)r.push(this.toLive(s));t.scrollback.restore(r),t.history=[...n.history]}flush(t,n){const r=this.timers.get(t.modeId);r&&clearTimeout(r);const s=setTimeout(()=>{this.timers.delete(t.modeId),this.write(t,n)},C3);this.timers.set(t.modeId,s)}forceFlush(t,n){const r=this.timers.get(t.modeId);r&&(clearTimeout(r),this.timers.delete(t.modeId)),this.write(t,n)}readLastSeq(t){return Oc(t)?.lastSeq}write(t,n){const s={entries:t.scrollback.entries.slice(-500).map(a=>this.toPersisted(a)),history:[...t.history],...n!==void 0?{lastSeq:n}:{}};I3(t.modeId,s)}toPersisted(t){if(t.kind==="rich"){const n=t.componentKey;if(!n)return{id:t.id,kind:"status",text:"<rich entry: not restorable (no componentKey)>",level:"info",ts:t.ts};try{const r=JSON.stringify(t.props);return{id:t.id,kind:"rich",componentKey:n,props:JSON.parse(r),ts:t.ts}}catch{return{id:t.id,kind:"status",text:`<rich entry: ${n} not restorable>`,level:"info",ts:t.ts}}}return t.kind==="prompt"?{id:t.id,kind:"prompt",cwd:t.cwd,line:t.line,ts:t.ts}:t.kind==="text"?{id:t.id,kind:"text",stream:t.stream,chunks:[...t.chunks],ts:t.ts}:{id:t.id,kind:"status",text:t.text,level:t.level,ts:t.ts}}toLive(t){return t.kind==="rich"?{id:t.id,kind:"rich",componentKey:t.componentKey,component:void 0,props:t.props,ts:t.ts}:t.kind==="prompt"?{id:t.id,kind:"prompt",cwd:t.cwd,line:t.line,ts:t.ts}:t.kind==="text"?{id:t.id,kind:"text",stream:t.stream,chunks:[...t.chunks],ts:t.ts}:{id:t.id,kind:"status",text:t.text,level:t.level,ts:t.ts}}}function R3(e,t){for(const n of t)switch(n.kind){case"prompt":e.scrollback.push({kind:"prompt",cwd:n.cwd,line:n.line,ts:n.ts}),e.locked=!0;break;case"stdout":e.scrollback.push({kind:"text",stream:"stdout",chunks:[n.data],ts:n.ts});break;case"stderr":e.scrollback.push({kind:"text",stream:"stderr",chunks:[n.data],ts:n.ts});break;case"exit":(n.signal||n.code!==null&&n.code!==0)&&e.scrollback.push({kind:"status",text:n.signal?`shell: process exited (${n.signal})`:`shell: process exited (${n.code})`,level:"error",ts:n.ts}),e.locked=!1;break;case"status":e.scrollback.push({kind:"status",text:n.text,level:n.level,ts:n.ts});break}}function j3(e,t){if(!e||!t)return e;if(e===t)return"~";if(e.length>t.length&&e.startsWith(t)){const n=e.charAt(t.length);if(n==="/"||n==="\\")return`~/${e.slice(t.length+1).replace(/\\/g,"/")}`}return e}var P3=A("<pre> </pre>");function D3(e,t){se(t,!0);const n=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,r=K(()=>t.chunks.join("").replace(n,""));var s=P3();let a;var o=p(s,!0);v(s),q(()=>{a=ue(s,1,"shell-text svelte-ypr8s",null,a,{stderr:t.stream==="stderr"}),O(o,i(r))}),k(e,s),ae()}var M3=A('<div class="shell-prompt svelte-u0gb59"><span class="shell-prompt-cwd svelte-u0gb59"> </span> <span class="shell-prompt-arrow svelte-u0gb59">❯</span> <span class="shell-prompt-line svelte-u0gb59"> </span></div>');function L3(e,t){var n=M3(),r=p(n),s=p(r,!0);v(r);var a=w(r,4),o=p(a,!0);v(a),v(n),q(()=>{O(s,t.cwd),O(o,t.line)}),k(e,n)}var z3=A("<div> </div>");function Nc(e,t){var n=z3();let r;var s=p(n,!0);v(n),q(()=>{r=ue(n,1,"shell-status svelte-nfxdpt",null,r,{info:t.level==="info",warn:t.level==="warn",error:t.level==="error"}),O(s,t.text)}),k(e,n)}var O3=A('<div class="shell-rich svelte-1rnhl05"><!></div>');function N3(e,t){var n=O3(),r=p(n);Ls(r,()=>t.component,(s,a)=>{a(s,Os(()=>t.componentProps))}),v(n),k(e,n)}const po=new Map;function An(e,t){const n=po.get(e);if(n&&n!==t){console.warn(`[shell-shard/rich-registry] duplicate registration for key "${e}" — keeping first`);return}po.set(e,t)}function q3(e){return po.get(e)??null}var B3=A('<div class="shell-scrollback svelte-isy3jt"><div class="content"></div></div>');function V3(e,t){se(t,!0);let n=F(null),r=F(null),s=!0;const a=4;function o(d){return d.scrollHeight-d.scrollTop-d.clientHeight<=a}function l(){i(n)&&(s=o(i(n)))}xe(()=>{if(!i(r)||!i(n))return;const d=new ResizeObserver(()=>{i(n)&&s&&(i(n).scrollTop=i(n).scrollHeight)});return d.observe(i(r)),()=>d.disconnect()});var c=B3(),u=p(c);he(u,21,()=>t.scrollback.entries,d=>d.id,(d,f)=>{var h=qe(),b=ve(h);{var E=_=>{D3(_,{get stream(){return i(f).stream},get chunks(){return i(f).chunks}})},y=_=>{{let m=K(()=>t.showPromptCwd?i(f).cwd:"");L3(_,{get cwd(){return i(m)},get line(){return i(f).line}})}},g=_=>{Nc(_,{get text(){return i(f).text},get level(){return i(f).level}})},x=_=>{const m=K(()=>i(f).component??(i(f).componentKey?q3(i(f).componentKey):null));var I=qe(),R=ve(I);{var T=L=>{N3(L,{get component(){return i(m)},get componentProps(){return i(f).props}})},D=L=>{{let j=K(()=>`<rich entry: ${i(f).componentKey??"unknown"} not registered>`);Nc(L,{get text(){return i(j)},level:"info"})}};W(R,L=>{i(m)?L(T):L(D,-1)})}k(_,I)};W(b,_=>{i(f).kind==="text"?_(E):i(f).kind==="prompt"?_(y,1):i(f).kind==="status"?_(g,2):i(f).kind==="rich"&&_(x,3)})}k(d,h)}),v(u),Le(u,d=>S(r,d),()=>i(r)),v(c),Le(c,d=>S(n,d),()=>i(n)),Pe("scroll",c,l),k(e,c),ae()}var F3=A('<span class="sh3-cmdline__prefix svelte-ngn09j"><!></span>'),U3=A('<div data-sh3-passthrough-modifiers=""><!> <input type="text" class="sh3-cmdline__decoy svelte-ngn09j" tabindex="-1" aria-hidden="true"/> <input type="password" class="sh3-cmdline__decoy svelte-ngn09j" tabindex="-1" aria-hidden="true"/> <input type="search" spellcheck="false" autocomplete="off" autocapitalize="off" aria-autocomplete="none" data-1p-ignore="" data-lpignore="true" class="sh3-cmdline__input svelte-ngn09j"/></div>');function H3(e,t){se(t,!0);let n=Q(t,"value",15,""),r=Q(t,"disabled",3,!1),s=F(null);function a(h){return h.selectionStart!==null&&h.selectionEnd!==null&&h.selectionStart!==h.selectionEnd}function o(h){(h.ctrlKey||h.metaKey)&&!h.altKey&&h.key==="c"&&i(s)&&a(i(s))||t.onkeydown?.(h)}xe(()=>{!r()&&i(s)&&i(s).focus()});var l=U3();let c;var u=p(l);{var d=h=>{var b=F3(),E=p(b);Ht(E,()=>t.prefix),v(b),k(h,b)};W(u,h=>{t.prefix&&h(d)})}var f=w(u,6);ge(f),Le(f,h=>S(s,h),()=>i(s)),v(l),q(()=>{c=ue(l,1,"sh3-cmdline svelte-ngn09j",null,c,{"sh3-cmdline--disabled":r()}),ne(f,"name",t.name),f.disabled=r()}),H("keydown",f,o),Se(f,n),k(e,l),ae()}le(["keydown"]);var K3=A('<span class="shell-input-cwd svelte-1dfv2gk"> </span>'),W3=A('<!> <span class="shell-input-arrow svelte-1dfv2gk">❯</span>',1),Y3=A('<div class="shell-input-row svelte-1dfv2gk"><!></div>');function G3(e,t){se(t,!0);let n=Q(t,"showCwd",3,!0),r=F(""),s=F(null),a=F("");function o(){if(t.locked)return;const h=i(r);h.trim()&&(S(r,""),S(s,null),t.onSubmit(h))}function l(){t.history.length!==0&&(i(s)===null?(S(a,i(r),!0),S(s,t.history.length-1)):i(s)>0&&Pr(s,-1),S(r,t.history[i(s)]??"",!0))}function c(){i(s)!==null&&(i(s)<t.history.length-1?(Pr(s),S(r,t.history[i(s)],!0)):(S(s,null),S(r,i(a),!0)))}function u(h){if(t.locked){if(h.ctrlKey&&h.key==="c"){h.preventDefault(),t.session.send({t:"signal",sig:"SIGINT"});return}if(h.ctrlKey&&h.key==="d"){h.preventDefault(),t.session.send({t:"signal",sig:"EOF"});return}h.preventDefault();return}h.key==="Enter"?(h.preventDefault(),o()):h.key==="ArrowUp"?(h.preventDefault(),l()):h.key==="ArrowDown"?(h.preventDefault(),c()):h.ctrlKey&&h.key==="c"?(h.preventDefault(),S(r,""),S(s,null)):h.ctrlKey&&h.key==="l"&&(h.preventDefault(),S(r,"clear"),o())}var d=Y3(),f=p(d);H3(f,{get disabled(){return t.locked},name:"shell-cmdline",onkeydown:u,get value(){return i(r)},set value(b){S(r,b,!0)},prefix:b=>{var E=W3(),y=ve(E);{var g=x=>{var _=K3(),m=p(_,!0);v(_),q(()=>O(m,t.cwd)),k(x,_)};W(y,x=>{n()&&x(g)})}qt(2),k(b,E)},$$slots:{prefix:!0}}),v(d),k(e,d),ae()}class X3{list(){return rl()}get(t){return ka(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=ka(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 J3{#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 Z3={id:"bash",label:"Bash",requiresRole:"admin",transport:"ws",autoRelocate:!1,showCwd:!0},Q3={id:"sh3",label:"SH3",transport:"none",autoRelocate:!0,showCwd:!1};function $3(e){e.register(Z3),e.register(Q3)}function Ov(e){return`sh3.shell.lastMode.${e}`}function Nv(e){try{return globalThis.localStorage?.getItem(Ov(e))??null}catch{return null}}function qc(e,t){try{globalThis.localStorage?.setItem(Ov(e),t)}catch{}}function e2(e,t,n){const r=Nv(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 ca(e,t){return e.entries.find(n=>n.kind==="rich"&&n.id===t)}function t2(e,t){return{update(n){const r=ca(e,t);r&&Object.assign(r.props,n)}}}function Bc(e){return e.entries[e.entries.length-1].id}function Vc(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()}),t2(t,Bc(t))},stream(n,r){t.push({kind:"rich",component:n,props:{...r,__streamState:"streaming"},ts:Date.now()});const s=Bc(t);return{append(a){const o=ca(t,s);o&&Object.assign(o.props,a)},complete(){const a=ca(t,s);a&&(a.props.__streamState="complete")},error(a){const o=ca(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 n2(e){let t=null;async function n(s,a){const o=e.mode();if(s===o.id)throw new Error(`invoke: cannot invoke own mode '${s}'`);if(s==="sh3"){const u=e.resolver.resolve(a,{globalOnly:!1});if(u.kind==="forward"){const d=a.trim().split(/\s+/)[0]??"";throw new Error(`invoke: unknown sh3 verb '${d}'`)}await u.verb.run({shell:e.shell,scrollback:e.buffer().scrollback,session:e.session,cwd:e.cwd(),dispatch:r,fs:e.fs},u.args);return}if(s==="bash"){if(e.role()!=="admin")throw new Error("invoke: 'bash' requires admin role");e.session.send({t:"submit",line:a,mode:"bash"});return}const l=e.customMode?.(s)??null;if(!l)throw new Error(`invoke: unknown mode '${s}'`);if(l.requiresRole&&l.requiresRole!==e.role())throw new Error(`invoke: mode '${s}' requires ${l.requiresRole} role`);if(l.runsOn==="server")throw new Error("invoke: server-side modes are not yet supported");const c=Vc({scrollback:e.buffer().scrollback,busy:e.busy,invoke:n});await l.dispatch({line:a,cwd:e.cwd(),signal:t?.signal??new AbortController().signal},c)}async function r(s){t?.abort();const a=new AbortController;t=a;const o=e.mode();if(e.buffer().history.push(s),o.transport==="none"&&s.trimStart().startsWith("$ ")){e.buffer().scrollback.push({kind:"prompt",cwd:e.cwd(),line:s,ts:Date.now()}),e.buffer().scrollback.push({kind:"status",text:"shell: server shell not available in user mode",level:"error",ts:Date.now()});return}const l=e.resolver.resolve(s,{globalOnly:o.id!=="sh3"});if(l.kind==="local"){e.session.send({t:"history-log",line:s,mode:o.id}),e.buffer().scrollback.push({kind:"prompt",cwd:e.cwd(),line:s,ts:Date.now()});try{await l.verb.run({shell:e.shell,scrollback:e.buffer().scrollback,session:e.session,cwd:e.cwd(),dispatch:r,fs:e.fs},l.args)}catch(u){e.buffer().scrollback.push({kind:"status",text:`shell: verb ${l.verb.name} threw — ${u.message}`,level:"error",ts:Date.now()})}return}if(o.transport==="ws"){e.session.send({t:"submit",line:l.line,mode:o.id});return}if(o.transport==="custom"){e.buffer().scrollback.push({kind:"prompt",cwd:e.cwd(),line:l.line,ts:Date.now()});const u=e.customMode?.(o.id)??null;if(!u){e.buffer().scrollback.push({kind:"status",text:`mode '${o.id}' is no longer available`,level:"error",ts:Date.now()});return}if(u.runsOn==="server"){e.buffer().scrollback.push({kind:"status",text:"server-side modes are not yet supported (planned for a future release)",level:"error",ts:Date.now()});return}const d=Vc({scrollback:e.buffer().scrollback,busy:e.busy,invoke:n}),f=e.busy();try{await u.dispatch({line:l.line,cwd:e.cwd(),signal:a.signal},d)}catch(h){h?.name==="AbortError"?e.buffer().scrollback.push({kind:"status",text:"mode dispatch aborted",level:"info",ts:Date.now()}):e.buffer().scrollback.push({kind:"status",text:`mode '${o.id}' threw — ${h?.message??String(h)}`,level:"error",ts:Date.now()})}finally{f()}return}const c=l.line.split(/\s+/)[0]??"";e.buffer().scrollback.push({kind:"prompt",cwd:e.cwd(),line:l.line,ts:Date.now()}),e.buffer().scrollback.push({kind:"status",text:`unknown verb: ${c}`,level:"error",ts:Date.now()})}return{dispatch:r,cancel:()=>t?.abort()}}async function r2(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 s2=A('<div class="toolbar svelte-gnowwz"><div class="toolbar-slots svelte-gnowwz"></div></div>');function a2(e,t){se(t,!0);let n=Q(t,"slotProps",19,()=>({})),r=K(()=>t.registry.list(t.ctx));var s=s2(),a=p(s);he(a,21,()=>i(r),o=>o.id,(o,l)=>{const c=K(()=>i(l).component);var u=qe(),d=ve(u);Ls(d,()=>i(c),(f,h)=>{h(f,Os(()=>n()[i(l).id]??{}))}),k(o,u)}),v(a),v(s),k(e,s),ae()}class i2{#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 o2=A('<span class="mode-label svelte-1i4cqlj"> </span>');function l2(e,t){se(t,!0);let n=K(()=>t.modes.map(l=>({value:l.id,label:l.label})));var r=qe(),s=ve(r);{var a=l=>{yv(l,{get options(){return i(n)},get value(){return t.mode.id},size:"sm",onchange:c=>t.onSelect(c)})},o=l=>{var c=o2(),u=p(c,!0);v(c),q(()=>O(u,t.mode.label)),k(l,c)};W(s,l=>{t.modes.length>=2?l(a):t.modes.length===1&&l(o,1)})}k(e,r),ae()}var c2=A('<button class="focus-lock-btn svelte-1q6gbap"> </button>');function u2(e,t){var n=c2(),r=p(n,!0);v(n),q(()=>{ne(n,"title",t.locked?"Unlock focus":"Lock focus"),O(r,t.locked?"🔒":"🔓")}),H("click",n,function(...s){t.onToggle?.apply(this,s)}),k(e,n)}le(["click"]);var d2=A('<span class="target-shard svelte-1nn2m6x" title="Target shard"> </span>');function f2(e,t){var n=d2(),r=p(n);v(n),q(()=>O(r,`→ ${t.target??"—"??""}`)),k(e,n)}var v2=A('<span class="label"> </span>'),h2=A('<div class="busy svelte-7wyurd" role="status" aria-live="polite"><span class="spinner svelte-7wyurd" aria-hidden="true"></span> <!></div>');function p2(e,t){var n=qe(),r=ve(n);{var s=a=>{var o=h2(),l=w(p(o),2);{var c=u=>{var d=v2(),f=p(d,!0);v(d),q(()=>O(f,t.label)),k(u,d)};W(l,u=>{t.label&&u(c)})}v(o),k(a,o)};W(r,a=>{t.active&&a(s)})}k(e,n)}var m2=A('<div class="shell-terminal svelte-13komre"><!> <!> <!></div>');function b2(e,t){se(t,!0);const n=we(()=>new T3),r=new Map;function s(B){let V=r.get(B);return V||(V=new x3(B),n.hydrate(V),r.set(B,V)),V}const a=new X3,o=new nv,l=new J3;$3(l);let c=F(oe(we(()=>t.contributions.list(cs))));xe(()=>{const B=t.contributions.onChange(cs,()=>{S(c,t.contributions.list(cs),!0)});return()=>B()});function u(B){return{id:B.id,label:B.label,requiresRole:B.requiresRole,transport:"custom",autoRelocate:B.autoRelocate??!1,showCwd:B.showCwd??!1}}let d=K(()=>[...l.list(t.role),...i(c).filter(B=>!B.requiresRole||B.requiresRole===t.role).map(u)]),f=F(oe(we(()=>{const B=Nv(t.userId);if(B){const Z=[...l.list(t.role),...i(c).filter(G=>!G.requiresRole||G.requiresRole===t.role).map(u)].find(G=>G.id===B);if(Z)return Z}return e2(l,t.userId,t.role)})));const h=K(()=>s(i(f).id));xe(()=>{for(const[B,V]of Object.entries(y.historyByMode)){const Z=s(B);Z.history.length<V.length&&(Z.history=[...V])}}),xe(()=>{i(h).scrollback.entries.length,i(h).history.length,i(h).modeId==="bash"?n.flush(i(h),y.lastSeq):n.flush(i(h))});function b(B){const V=i(d).find(Z=>Z.id===B);V&&(V.requiresRole&&V.requiresRole!==t.role||(T(),S(f,V,!0),qc(t.userId,B)))}xe(()=>{if(!i(d).find(B=>B.id===i(f).id)){const B=i(d).find(V=>V.id==="sh3")??i(d)[0];if(B){const V=i(f).id;S(f,B,!0),qc(t.userId,B.id),s(B.id).scrollback.push({kind:"status",text:`mode '${V}' is no longer available — switched to '${B.id}'`,level:"warn",ts:Date.now()})}}});const E=we(()=>({...t.shell,setMode:B=>{const V=i(d).find(Z=>Z.id===B);return!V||V.requiresRole&&V.requiresRole!==t.role?!1:(b(B),!0)},listModes:()=>i(d).map(B=>({id:B.id,label:B.label})),getMode:()=>({id:i(f).id,label:i(f).label})})),y=we(()=>new tv(t.wsUrl));let g=0,x=F(oe(new Map));function _(B){const V=++g;i(x).set(V,B),S(x,new Map(i(x)),!0);let Z=!1;return()=>{Z||(Z=!0,i(x).delete(V),S(x,new Map(i(x)),!0))}}let m=K(()=>i(x).size>0),I=K(()=>{if(i(x).size===0)return null;let B;for(const V of i(x).values())B=V;return B??null});const{dispatch:R,cancel:T}=we(()=>n2({mode:()=>i(f),role:()=>t.role,resolver:a,buffer:()=>i(h),session:y,shell:E,fs:o,cwd:()=>y.cwd,busy:_,customMode:B=>i(c).find(V=>V.id===B)??null}));let D=F(!1),L=F(null);const j=new i2;j.register({id:"busy",order:5,visible:()=>!0,component:p2}),j.register({id:"mode",order:10,visible:()=>!0,component:l2}),j.register({id:"focus-lock",order:20,visible:B=>B.mode.id==="sh3",component:u2}),j.register({id:"target-shard",order:30,visible:B=>B.mode.id==="sh3",component:f2});function M(B){if(B.type==="tabs")return B.tabs[B.activeTab]?.viewId??null;if(B.type==="split"){for(const V of B.children){const Z=M(V);if(Z!==null)return Z}return null}return B.viewId??null}function C(){try{const B=Tt(),V=M(B.docked);if(!V)return null;const Z=V.indexOf(":");return Z>=0?V.slice(0,Z):V}catch{return null}}xe(()=>{const B=C(),V=i(f).autoRelocate,Z=i(D);(async()=>{const G=await r2({modeAutoRelocate:V,focusLocked:Z,focusedShardId:B,currentShardId:"shell"},o);G.kind==="relocate"&&G.path!==void 0&&(y.cwd=G.path),B&&B!=="shell"?S(L,B,!0):B||S(L,null)})()});function P(B){if(B.t==="replay"){R3(s("bash"),B.events);return}if(B.t!=="event")return;const V=B.event,Z=s("bash");switch(V.kind){case"prompt":Z.scrollback.push({kind:"prompt",cwd:V.cwd,line:V.line,ts:V.ts}),Z.locked=!0;break;case"stdout":Z.scrollback.push({kind:"text",stream:"stdout",chunks:[V.data],ts:V.ts});break;case"stderr":Z.scrollback.push({kind:"text",stream:"stderr",chunks:[V.data],ts:V.ts});break;case"exit":(V.signal||V.code!==null&&V.code!==0)&&Z.scrollback.push({kind:"status",text:V.signal?`shell: process exited (${V.signal})`:`shell: process exited (${V.code})`,level:"error",ts:V.ts}),Z.locked=!1;break;case"status":Z.scrollback.push({kind:"status",text:V.text,level:V.level,ts:V.ts});break}}let N=null;qo(()=>{N=y.onMessage(P),s("bash");const B=n.readLastSeq("bash");B!==void 0&&(y.lastSeq=B),y.connect()}),Bo(()=>{N?.(),y.close()});var z=m2(),U=p(z);{let B=K(()=>({mode:i(f),role:t.role})),V=K(()=>({busy:{active:i(m),label:i(I)},mode:{mode:i(f),modes:i(d),onSelect:b},"focus-lock":{locked:i(D),onToggle:()=>S(D,!i(D))},"target-shard":{target:i(L)}}));a2(U,{get registry(){return j},get ctx(){return i(B)},get slotProps(){return i(V)}})}var X=w(U,2);{let B=K(()=>i(f).showCwd||!1);V3(X,{get showPromptCwd(){return i(B)},get scrollback(){return i(h).scrollback}})}var Y=w(X,2);{let B=K(()=>j3(y.cwd,y.tenantRoot)),V=K(()=>i(f).showCwd!==!1);G3(Y,{get cwd(){return i(B)},get showCwd(){return i(V)},get locked(){return i(h).locked},get history(){return i(h).history},get session(){return y},get onSubmit(){return R}})}v(z),k(e,z),ae()}var g2=A('<tr><td class="svelte-m248jy"><button type="button" class="svelte-m248jy"> </button></td><td class="svelte-m248jy"> </td></tr>'),y2=A('<div class="shell-rich-help svelte-m248jy"><table class="svelte-m248jy"><thead><tr><th class="svelte-m248jy">Name</th><th class="svelte-m248jy">Summary</th></tr></thead><tbody></tbody></table></div>');function qv(e,t){se(t,!0);var n=y2(),r=p(n),s=w(p(r));he(s,21,()=>t.data.rows,a=>a.name,(a,o)=>{var l=g2(),c=p(l),u=p(c),d=p(u,!0);v(u),v(c);var f=w(c),h=p(f,!0);v(f),v(l),q(()=>{O(d,i(o).name),O(h,i(o).summary)}),H("click",u,()=>t.data.onClickName(i(o).name)),k(a,l)}),v(s),v(r),v(n),k(e,n),ae()}le(["click"]);const Bv="help-table";An(Bv,qv);function _2(){return{name:"help",summary:"List verbs or show detail for one.",globalVerb:!0,async run(e){const t=e.shell.getMode().id==="sh3",n=rl().filter(r=>t||r.globalVerb===!0).map(r=>({name:r.name,summary:r.summary}));e.scrollback.push({kind:"rich",componentKey:Bv,component:qv,props:{data:{rows:n,onClickName:r=>e.dispatch(r)}},ts:Date.now()})}}}const w2={name:"clear",summary:"Clear the scrollback (local only — other views are unaffected).",globalVerb:!0,async run(e){e.scrollback.clear()}},k2={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 x2=A('<li class="svelte-o8m437"><button type="button" class="svelte-o8m437"> </button></li>'),S2=A('<div class="shell-rich-history svelte-o8m437"><ol class="svelte-o8m437"></ol></div>');function Vv(e,t){se(t,!0);var n=S2(),r=p(n);he(r,21,()=>t.data.lines,dt,(s,a)=>{var o=x2(),l=p(o),c=p(l,!0);v(l),v(o),q(()=>O(c,i(a))),H("click",l,()=>t.data.onClickLine(i(a))),k(s,o)}),v(r),v(n),k(e,n),ae()}le(["click"]);const Fv="history-list";An(Fv,Vv);const E2={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.shell.getMode().id,a=(e.session.historyByMode[r]??[]).slice(-n);e.scrollback.push({kind:"rich",componentKey:Fv,component:Vv,props:{data:{lines:a,onClickLine:o=>e.dispatch(o)}},ts:Date.now()})}};var I2=A('<tr><td class="svelte-1u5krjz"><button type="button" class="svelte-1u5krjz"> </button></td><td class="svelte-1u5krjz"> </td></tr>'),A2=A('<div class="shell-rich-apps svelte-1u5krjz"><table class="svelte-1u5krjz"><thead><tr><th class="svelte-1u5krjz">ID</th><th class="svelte-1u5krjz">Label</th></tr></thead><tbody></tbody></table></div>');function Uv(e,t){se(t,!0);var n=A2(),r=p(n),s=w(p(r));he(s,21,()=>t.data.apps,a=>a.id,(a,o)=>{var l=I2(),c=p(l),u=p(c),d=p(u,!0);v(u),v(c);var f=w(c),h=p(f,!0);v(f),v(l),q(()=>{O(d,i(o).id),O(h,i(o).label)}),H("click",u,()=>t.data.onClickApp(i(o).id)),k(a,l)}),v(s),v(r),v(n),k(e,n),ae()}le(["click"]);var C2=A('<div class="shell-rich-appcard svelte-npcp8i"><h3 class="svelte-npcp8i"> </h3> <p class="svelte-npcp8i"><strong>ID:</strong> </p> <p class="svelte-npcp8i"><strong>Shards:</strong> </p></div>');function Hv(e,t){se(t,!0);var n=C2(),r=p(n),s=p(r,!0);v(r);var a=w(r,2),o=w(p(a));v(a);var l=w(a,2),c=w(p(l));v(l),v(n),q(u=>{O(s,t.data.label),O(o,` ${t.data.id??""}`),O(c,` ${u??""}`)},[()=>t.data.shards.join(", ")]),k(e,n),ae()}const Kv="apps-table",Wv="app-card";An(Kv,Uv);An(Wv,Hv);const T2={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",componentKey:Kv,component:Uv,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()})}},R2={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",componentKey:Wv,component:Hv,props:{data:{id:t.id,label:t.label,shards:[]}},ts:Date.now()})}};var j2=A('<tr><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td></tr>'),P2=A('<div class="shell-rich-shards svelte-sc3ux4"><table class="svelte-sc3ux4"><thead><tr><th class="svelte-sc3ux4">ID</th><th class="svelte-sc3ux4">Label</th><th class="svelte-sc3ux4">Version</th></tr></thead><tbody></tbody></table></div>');function Yv(e,t){se(t,!0);var n=P2(),r=p(n),s=w(p(r));he(s,21,()=>t.data.shards,a=>a.id,(a,o)=>{var l=j2(),c=p(l),u=p(c,!0);v(c);var d=w(c),f=p(d,!0);v(d);var h=w(d),b=p(h,!0);v(h),v(l),q(()=>{O(u,i(o).id),O(f,i(o).label),O(b,i(o).version)}),k(a,l)}),v(s),v(r),v(n),k(e,n),ae()}const Gv="shards-table";An(Gv,Yv);const D2={name:"shards",summary:"List active shards.",programmatic:!0,async run(e){const t=e.shell.listShards();e.scrollback.push({kind:"rich",componentKey:Gv,component:Yv,props:{data:{shards:t}},ts:Date.now()})}};var M2=A('<tr><td class="svelte-15elbr1"> </td><td class="svelte-15elbr1"> </td><td class="svelte-15elbr1"> </td><td class="svelte-15elbr1"><button type="button" class="svelte-15elbr1">Close</button></td></tr>'),L2=A('<div class="shell-rich-views svelte-15elbr1"><table class="svelte-15elbr1"><thead><tr><th class="svelte-15elbr1">Slot ID</th><th class="svelte-15elbr1">View ID</th><th class="svelte-15elbr1">Label</th><th class="svelte-15elbr1">Action</th></tr></thead><tbody></tbody></table></div>');function Xv(e,t){se(t,!0);var n=L2(),r=p(n),s=w(p(r));he(s,21,()=>t.data.views,a=>a.slotId,(a,o)=>{var l=M2(),c=p(l),u=p(c,!0);v(c);var d=w(c),f=p(d,!0);v(d);var h=w(d),b=p(h,!0);v(h);var E=w(h),y=p(E);v(E),v(l),q(()=>{O(u,i(o).slotId),O(f,i(o).viewId),O(b,i(o).label)}),H("click",y,()=>t.data.onClose(i(o).slotId)),k(a,l)}),v(s),v(r),v(n),k(e,n),ae()}le(["click"]);const Jv="views-table";An(Jv,Xv);const z2={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",componentKey:Jv,component:Xv,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()})}},O2={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()})}},N2={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()})}},q2={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()})}},B2={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 V2=A('<tr><td class="svelte-1w7onag"> </td><td class="svelte-1w7onag"> </td></tr>'),F2=A('<div class="shell-rich-zones svelte-1w7onag"><table class="svelte-1w7onag"><thead><tr><th class="svelte-1w7onag">Shard ID</th><th class="svelte-1w7onag">Zones</th></tr></thead><tbody></tbody></table></div>');function Zv(e,t){se(t,!0);var n=F2(),r=p(n),s=w(p(r));he(s,21,()=>t.data.rows,a=>a.shardId,(a,o)=>{var l=V2(),c=p(l),u=p(c,!0);v(c);var d=w(c),f=p(d,!0);v(d),v(l),q(h=>{O(u,i(o).shardId),O(f,h)},[()=>i(o).zones.join(", ")]),k(a,l)}),v(s),v(r),v(n),k(e,n),ae()}var U2=A('<div class="shell-rich-zonetree svelte-13iiyr1"><pre class="svelte-13iiyr1"> </pre></div>');function Qv(e,t){se(t,!0);var n=U2(),r=p(n),s=p(r,!0);v(r),v(n),q(a=>O(s,a),[()=>JSON.stringify(t.data.value,null,2)]),k(e,n),ae()}const $v="zones-table",eh="zone-tree";An($v,Zv);An(eh,Qv);const H2={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",componentKey:$v,component:Zv,props:{data:{rows:n}},ts:Date.now()})}},K2={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",componentKey:eh,component:Qv,props:{data:{value:s}},ts:Date.now()})}};var W2=A('<tr><td class="svelte-1ox8vog"> </td><td class="svelte-1ox8vog"> </td></tr>'),Y2=A('<div class="shell-rich-env svelte-1ox8vog"><table class="svelte-1ox8vog"><thead><tr><th class="svelte-1ox8vog">Key</th><th class="svelte-1ox8vog">Value</th></tr></thead><tbody></tbody></table></div>');function th(e,t){se(t,!0);var n=Y2(),r=p(n),s=w(p(r));he(s,21,()=>Object.entries(t.data.env),([a,o])=>a,(a,o)=>{var l=K(()=>uu(i(o),2));let c=()=>i(l)[0],u=()=>i(l)[1];var d=W2(),f=p(d),h=p(f,!0);v(f);var b=w(f),E=p(b,!0);v(b),v(d),q(()=>{O(h,c()),O(E,u())}),k(a,d)}),v(s),v(r),v(n),k(e,n),ae()}const nh="env-table";An(nh,th);const G2={name:"env",summary:"Show the session environment.",async run(e){const t=e.session.env;e.scrollback.push({kind:"rich",componentKey:nh,component:th,props:{data:{env:t}},ts:Date.now()})}};async function X2(){try{const{TauriStoreBackend:e}=await Cr(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:iu}}}async function J2(){try{const{LazyStore:e}=await Cr(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 Z2={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 J2(),location.reload()}};function Q2(e){e.registerVerb(_2()),e.registerVerb(w2),e.registerVerb(k2),e.registerVerb(E2),e.registerVerb(T2),e.registerVerb(R2),e.registerVerb(D2),e.registerVerb(z2),e.registerVerb(O2),e.registerVerb(B2),e.registerVerb(N2),e.registerVerb(q2),e.registerVerb(H2),e.registerVerb(K2),e.registerVerb(G2),e.registerVerb(Z2)}const $2={manifest:k3,activate(e){Q2(e);const t=ev(e.zones),n=e.state({workspace:{buffers:{}}});S3(n),e.actions.register({id:"shell.terminal.toggle",label:"Open Terminal",scope:["home","app"],defaultShortcut:"²",allowInInputs:!1,run(){ni("shell:terminal")||Ce.open("shell:terminal",{title:"Shell"})}});const r={mount(s,a){const o=typeof location<"u"&&location.protocol==="https:"?"wss":"ws",l=typeof location<"u"?location.host:"localhost",c=`${o}://${l}/api/shell/session`,d=Or()?.id??"guest",f=bt()?"admin":"user",h=Be(b2,{target:s,props:{shell:t,wsUrl:c,userId:d,role:f,contributions:e.contributions}});return{unmount(){Xe(h)},closable:!0}}};e.registerView("shell:terminal",r)},autostart(){},deactivate(){E3()}};var eE=A('<p class="error svelte-1w8uhw5">The source float was closed.</p>'),tE=A('<p class="error svelte-1w8uhw5">No standalone views in this float.</p>'),nE=A('<li class="svelte-1w8uhw5"> <span class="muted svelte-1w8uhw5"> </span></li>'),rE=A('<div class="preview svelte-1w8uhw5"><div class="preview-label svelte-1w8uhw5"> </div> <ul class="preview-list svelte-1w8uhw5"></ul></div>'),sE=A('<div class="layout-save svelte-1w8uhw5"><h2 class="svelte-1w8uhw5">Save layout as…</h2> <label class="row svelte-1w8uhw5"><span class="svelte-1w8uhw5">Name</span> <input type="text" class="name-input svelte-1w8uhw5" placeholder="Layout name"/></label> <!> <div class="actions svelte-1w8uhw5"><button type="button" class="primary svelte-1w8uhw5">Save</button> <button type="button" class="svelte-1w8uhw5">Cancel</button></div></div>');function aE(e,t){se(t,!0);const n=we(()=>Ce.list().find(R=>R.id===t.floatId)?.content??null),r=K(()=>n?ui(n,t.isStandalone):null),s=K(()=>i(r)?u(i(r)):[]),a=K(()=>n===null),o=K(()=>!i(a)&&i(r)===null);let l=F(oe(we(()=>t.defaultName)));const c=K(()=>i(l).trim()===""||i(a)||i(o));function u(R){if(R.type==="slot")return R.viewId?[R.viewId]:[];if(R.type==="tabs"){const T=[];for(const D of R.tabs)D.viewId&&T.push(D.viewId);return T}return R.children.flatMap(u)}function d(){i(c)||(t.onConfirm(i(l).trim()),t.close())}var f=sE(),h=w(p(f),2),b=w(p(h),2);ge(b),v(h);var E=w(h,2);{var y=R=>{var T=eE();k(R,T)},g=R=>{var T=tE();k(R,T)},x=R=>{var T=rE(),D=p(T),L=p(D);v(D);var j=w(D,2);he(j,21,()=>i(s),dt,(M,C)=>{var P=nE(),N=p(P),z=w(N),U=p(z);v(z),v(P),q(X=>{O(N,`${X??""} `),O(U,`(${i(C)??""})`)},[()=>t.resolveLabel(i(C))]),k(M,P)}),v(j),v(T),q(()=>O(L,`Captured views (${i(s).length??""}):`)),k(R,T)};W(E,R=>{i(a)?R(y):i(o)?R(g,1):R(x,-1)})}var _=w(E,2),m=p(_),I=w(m,2);v(_),v(f),q(()=>m.disabled=i(c)),Se(b,()=>i(l),R=>S(l,R)),H("click",m,d),H("click",I,()=>t.close()),k(e,f),ae()}le(["click"]);function iE(){const e=Vs();return!e||e.type!=="float-header"?null:e.ref}function Cl(e){return ws().some(t=>t.viewId===e)}function oE(e){return ws().find(t=>t.viewId===e)?.label??e}function lE(){return`sl-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function cE(e,t){const n=_x(e,Cl);if(n===null)return null;const r={id:lE(),name:t,createdAt:Date.now(),size:n.size,content:n.content};return bx(r),r}function rh(){const e=Vs();return!e||e.type!=="saved-layout"?null:e.ref}function uE(e,t){const n=t.icon===void 0&&t.color===void 0?void 0:{icon:t.icon,color:t.color};Av(e,{name:t.label,appearance:n})}function dE(e){Av(e,{appearance:void 0})}function fE(e){const t=rh();if(!t)return;const n=ir().find(s=>s.id===t.layoutId);if(!n)return;const r={entityLabel:n.name,initialAppearance:n.appearance,defaultIcon:"eye",requireLabel:!0,onSave:s=>uE(t.layoutId,s),onReset:()=>dE(t.layoutId)};Kt.open(Rv,r)}function vE(e){gx(e)}function hE(e){const t=rh();if(!t)return;const n=ir().find(r=>r.id===t.layoutId);n&&Kt.open(Pv,{title:`Delete saved layout "${n.name}"?`,body:"This cannot be undone.",confirmLabel:"Delete",confirmTone:"danger",onConfirm:()=>vE(t.layoutId)})}function pE(e){const t=iE();if(!t)return;const n={floatId:t.floatId,isStandalone:Cl,resolveLabel:oE,defaultName:`Layout ${ir().length+1}`,onConfirm:r=>{cE(t.floatId,r)}};Kt.open(aE,n)}const mE={manifest:{id:"__layouts__",label:"Saved Layouts",version:sn,views:[]},activate(e){const t=e.state({user:{layouts:[]}});px(t);const n=(o,l)=>{dn.notify(o,{level:l})},r={id:"sh3.layout.save",label:"Save layout as…",scope:{element:"float-header"},contextItem:!0,paletteItem:!1,run:pE};e.actions.register(r),e.actions.register({id:"sh3.layout.open",label:"Open saved layout",scope:["home","app"],submenu:!0,paletteItem:!0}),e.actions.register({id:"sh3.layout.customize",label:"Customize…",scope:{element:"saved-layout"},contextItem:!0,group:"appearance",run:fE}),e.actions.register({id:"sh3.layout.delete",label:"Delete",scope:{element:"saved-layout"},contextItem:!0,run:hE});const s=new Map,a=new Map;Fr(()=>{xe(()=>{const o=ir(),l=new Set;for(const c of o){l.add(c.id);const u=s.get(c.id);if(u&&a.get(c.id)===c.name)continue;u&&(u(),s.delete(c.id),a.delete(c.id));const d=e.actions.register({id:`sh3.layout.open:${c.id}`,label:c.name,scope:["home","app"],submenuOf:"sh3.layout.open",run:()=>{const f=ir().find(h=>h.id===c.id);f&&Tv(f,Cl,n)}});s.set(c.id,d),a.set(c.id,c.name)}for(const c of[...s.keys()])l.has(c)||(s.get(c)(),s.delete(c),a.delete(c))})})},autostart(){},deactivate(){mx()}},bE={manifest:{id:"sh3-store-app",label:"Package Store",version:sn,requiredShards:["sh3-store"],layoutVersion:1,admin:!0},initialLayout:{type:"tabs",activeTab:0,tabs:[{slotId:"store.browse",viewId:"sh3-store:browse",label:"Browse"}]}};var gE=A('<div class="admin-error svelte-4q792t"> </div>'),yE=A('<form class="admin-create-form svelte-4q792t"><input class="admin-input svelte-4q792t" type="text" placeholder="Username"/> <input class="admin-input svelte-4q792t" type="text" placeholder="Display name"/> <input class="admin-input svelte-4q792t" type="password" placeholder="Password"/> <select class="admin-input svelte-4q792t"><option>User</option><option>Admin</option></select> <button type="submit" class="admin-btn svelte-4q792t">Create</button> <!></form>'),_E=A('<p class="admin-muted svelte-4q792t">Loading...</p>'),wE=A('<p class="admin-error svelte-4q792t"> </p>'),kE=A('<form class="admin-edit-form svelte-4q792t"><input class="admin-input svelte-4q792t" type="text"/> <input class="admin-input svelte-4q792t" type="password" placeholder="New password (leave empty to keep)"/> <select class="admin-input svelte-4q792t"><option>User</option><option>Admin</option></select> <div class="admin-edit-actions svelte-4q792t"><button type="submit" class="admin-btn svelte-4q792t">Save</button> <button type="button" class="admin-btn-secondary svelte-4q792t">Cancel</button></div></form>'),xE=A('<div class="admin-user-info svelte-4q792t"><span class="admin-user-name svelte-4q792t"> </span> <span class="admin-user-meta svelte-4q792t"> </span></div> <div class="admin-user-actions svelte-4q792t"><button type="button" class="admin-btn-secondary svelte-4q792t">Edit</button> <button type="button" class="admin-btn-danger svelte-4q792t">Delete</button></div>',1),SE=A('<li class="admin-user-item svelte-4q792t"><!></li>'),EE=A('<ul class="admin-user-list svelte-4q792t"></ul>'),IE=A('<div class="admin-users svelte-4q792t"><div class="admin-users-header svelte-4q792t"><h2 class="svelte-4q792t">Users</h2> <button type="button" class="admin-btn svelte-4q792t"> </button></div> <!> <!></div>');function AE(e,t){se(t,!0);let n=F(oe([])),r=F(!0),s=F(null),a=F(!1),o=F(""),l=F(""),c=F(""),u=F("user"),d=F(null),f=F(null),h=F(""),b=F("user"),E=F("");async function y(){S(r,!0),S(s,null);try{const z=await fetch("/api/admin/users",{credentials:"include"});if(!z.ok)throw new Error("Failed to fetch users");S(n,await z.json(),!0)}catch(z){S(s,z instanceof Error?z.message:"Failed to load users",!0)}finally{S(r,!1)}}async function g(){S(d,null);try{const z=await fetch("/api/admin/users",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:i(o),displayName:i(l)||i(o),password:i(c),role:i(u)})});if(!z.ok){const U=await z.json().catch(()=>({}));S(d,U.error||"Failed to create user",!0);return}S(o,""),S(l,""),S(c,""),S(u,"user"),S(a,!1),await y()}catch{S(d,"Network error")}}function x(z){S(f,z.id,!0),S(h,z.displayName,!0),S(b,z.role,!0),S(E,"")}async function _(){if(!i(f))return;const z={displayName:i(h),role:i(b)};i(E).trim()&&(z.password=i(E));try{if(!(await fetch(`/api/admin/users/${i(f)}`,{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(z)})).ok)return;S(f,null),await y()}catch{}}async function m(z){try{await fetch(`/api/admin/users/${z}`,{method:"DELETE",credentials:"include"}),await y()}catch{}}y();var I=IE(),R=p(I),T=w(p(R),2),D=p(T,!0);v(T),v(R);var L=w(R,2);{var j=z=>{var U=yE(),X=p(U);ge(X);var Y=w(X,2);ge(Y);var B=w(Y,2);ge(B);var V=w(B,2),Z=p(V);Z.value=Z.__value="user";var G=w(Z);G.value=G.__value="admin",v(V);var $=w(V,2),ie=w($,2);{var pe=J=>{var ce=gE(),be=p(ce,!0);v(ce),q(()=>O(be,i(d))),k(J,ce)};W(ie,J=>{i(d)&&J(pe)})}v(U),q(J=>$.disabled=J,[()=>!i(o).trim()||!i(c).trim()]),Pe("submit",U,J=>{J.preventDefault(),g()}),Se(X,()=>i(o),J=>S(o,J)),Se(Y,()=>i(l),J=>S(l,J)),Se(B,()=>i(c),J=>S(c,J)),vs(V,()=>i(u),J=>S(u,J)),k(z,U)};W(L,z=>{i(a)&&z(j)})}var M=w(L,2);{var C=z=>{var U=_E();k(z,U)},P=z=>{var U=wE(),X=p(U,!0);v(U),q(()=>O(X,i(s))),k(z,U)},N=z=>{var U=EE();he(U,21,()=>i(n),X=>X.id,(X,Y)=>{var B=SE(),V=p(B);{var Z=$=>{var ie=kE(),pe=p(ie);ge(pe);var J=w(pe,2);ge(J);var ce=w(J,2),be=p(ce);be.value=be.__value="user";var st=w(be);st.value=st.__value="admin",v(ce);var De=w(ce,2),Rt=w(p(De),2);v(De),v(ie),Pe("submit",ie,Yt=>{Yt.preventDefault(),_()}),Se(pe,()=>i(h),Yt=>S(h,Yt)),Se(J,()=>i(E),Yt=>S(E,Yt)),vs(ce,()=>i(b),Yt=>S(b,Yt)),H("click",Rt,()=>{S(f,null)}),k($,ie)},G=$=>{var ie=xE(),pe=ve(ie),J=p(pe),ce=p(J,!0);v(J);var be=w(J,2),st=p(be);v(be),v(pe);var De=w(pe,2),Rt=p(De),Yt=w(Rt,2);v(De),q(()=>{O(ce,i(Y).displayName),O(st,`${i(Y).username??""} · ${i(Y).role??""}`)}),H("click",Rt,()=>x(i(Y))),H("click",Yt,()=>m(i(Y).id)),k($,ie)};W(V,$=>{i(f)===i(Y).id?$(Z):$(G,-1)})}v(B),k(X,B)}),v(U),k(z,U)};W(M,z=>{i(r)?z(C):i(s)?z(P,1):z(N,-1)})}v(I),q(()=>O(D,i(a)?"Cancel":"New user")),H("click",T,()=>{S(a,!i(a))}),k(e,I),ae()}le(["click"]);var CE=A('<p class="admin-muted svelte-1hsgdb4">Loading...</p>'),TE=A('<div class="admin-error svelte-1hsgdb4"> </div>'),RE=A('<div class="admin-auth-fields svelte-1hsgdb4"><label class="admin-toggle svelte-1hsgdb4"><input type="checkbox" class="svelte-1hsgdb4"/> <span>Require sign-in</span> <span class="admin-hint svelte-1hsgdb4">When enabled, unauthenticated visitors see a sign-in wall.</span></label> <label class="admin-toggle svelte-1hsgdb4"><input type="checkbox" class="svelte-1hsgdb4"/> <span>Allow guest browsing</span> <span class="admin-hint svelte-1hsgdb4">When sign-in is required, guests can still browse with session-only data.</span></label> <label class="admin-toggle svelte-1hsgdb4"><input type="checkbox" class="svelte-1hsgdb4"/> <span>Self-registration</span> <span class="admin-hint svelte-1hsgdb4">Visitors can create their own accounts from the sign-in screen.</span></label> <label class="admin-field svelte-1hsgdb4"><span class="svelte-1hsgdb4">Session lifetime (hours)</span> <input type="number" class="admin-input admin-input-sm svelte-1hsgdb4" min="1" max="8760"/></label> <button type="button" class="admin-btn svelte-1hsgdb4"> </button></div> <!>',1),jE=A('<div class="admin-auth svelte-1hsgdb4"><h2 class="svelte-1hsgdb4">Auth Settings</h2> <!></div>');function PE(e,t){se(t,!0);let n=F(null),r=F(!0),s=F(!1),a=F(null);async function o(){S(r,!0);try{const h=await fetch("/api/admin/settings",{credentials:"include"});if(!h.ok)throw new Error("Failed to fetch settings");S(n,await h.json(),!0)}catch(h){S(a,h instanceof Error?h.message:"Failed to load settings",!0)}finally{S(r,!1)}}async function l(){if(i(n)){S(s,!0),S(a,null);try{const h=await fetch("/api/admin/settings",{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(i(n))});if(!h.ok)throw new Error("Failed to save settings");S(n,await h.json(),!0)}catch(h){S(a,h instanceof Error?h.message:"Failed to save",!0)}finally{S(s,!1)}}}o();var c=jE(),u=w(p(c),2);{var d=h=>{var b=CE();k(h,b)},f=h=>{var b=RE(),E=ve(b),y=p(E),g=p(y);ge(g),qt(4),v(y);var x=w(y,2),_=p(x);ge(_),qt(4),v(x);var m=w(x,2),I=p(m);ge(I),qt(4),v(m);var R=w(m,2),T=w(p(R),2);ge(T),v(R);var D=w(R,2),L=p(D,!0);v(D),v(E);var j=w(E,2);{var M=C=>{var P=TE(),N=p(P,!0);v(P),q(()=>O(N,i(a))),k(C,P)};W(j,C=>{i(a)&&C(M)})}q(()=>{D.disabled=i(s),O(L,i(s)?"Saving...":"Save")}),is(g,()=>i(n).auth.required,C=>i(n).auth.required=C),is(_,()=>i(n).auth.guestAllowed,C=>i(n).auth.guestAllowed=C),is(I,()=>i(n).auth.selfRegistration,C=>i(n).auth.selfRegistration=C),Se(T,()=>i(n).auth.sessionTTL,C=>i(n).auth.sessionTTL=C),H("click",D,l),k(h,b)};W(u,h=>{i(r)?h(d):i(n)&&h(f,1)})}v(c),k(e,c),ae()}le(["click"]);var DE=A('<button type="button"> </button>'),ME=A('<div class="admin-error svelte-1gkiloq"> </div>'),LE=A('<div class="admin-error svelte-1gkiloq"> </div>'),zE=A(`<div class="admin-system svelte-1gkiloq"><h2 class="svelte-1gkiloq">System</h2> <div class="admin-system-info svelte-1gkiloq"><div class="admin-system-row svelte-1gkiloq"><span class="admin-system-label svelte-1gkiloq">Server version</span> <span> </span></div></div> <section class="admin-system-section svelte-1gkiloq"><h3 class="svelte-1gkiloq">Package bundle cache</h3> <p class="admin-system-hint svelte-1gkiloq">Controls the <code>Cache-Control</code> header on <code>/packages/:id/client.js</code>.
|
|
19
|
+
Set to <strong>0</strong> during development so drop-in bundle replacements take effect on F5.
|
|
20
|
+
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 OE(e,t){se(t,!0);const n=[{value:0,label:"Off (no-store)"},{value:5,label:"5s (dev)"},{value:60,label:"1 min"},{value:3600,label:"1 hour"},{value:86400,label:"1 day"},{value:31536e3,label:"1 year"}];let r=F("..."),s=F(!1),a=F(null),o=F(31536e3),l=F(31536e3),c=F(!1),u=F(null);const d=K(()=>i(o)!==i(l)),f=K(()=>h(i(o)));function h(J){return J===0?"0 seconds (off — browsers never cache)":J<60?`${J} seconds`:J<3600?`${Math.round(J/60)} minutes`:J<86400?`${Math.round(J/3600)} hours`:J<31536e3?`${Math.round(J/86400)} days`:`${Math.round(J/31536e3)} years`}async function b(){try{const J=await fetch("/api/version");if(J.ok){const ce=await J.json();S(r,ce.version,!0)}}catch{}}async function E(){try{const J=await fetch("/api/admin/settings",{credentials:"include"});if(J.ok){const be=(await J.json()).packages?.cacheMaxAge??31536e3;S(o,be,!0),S(l,be,!0)}}catch{}}async function y(){S(c,!0),S(u,null);try{const J=await fetch("/api/admin/settings",{method:"PUT",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({packages:{cacheMaxAge:i(o)}})});if(J.ok){const ce=await J.json();S(l,ce.packages?.cacheMaxAge??i(o),!0),S(o,i(l),!0)}else{const ce=await J.json().catch(()=>({}));S(u,ce.error||"Save failed",!0)}}catch{S(u,"Network error")}finally{S(c,!1)}}async function g(){S(s,!0),S(a,null);try{const J=await fetch("/api/admin/restart",{method:"POST",credentials:"include"});if(!J.ok){const ce=await J.json().catch(()=>({}));S(a,ce.error||"Restart failed",!0),S(s,!1)}}catch{S(a,"Network error"),S(s,!1)}}b(),E();var x=zE(),_=w(p(x),2),m=p(_),I=w(p(m),2),R=p(I,!0);v(I),v(m),v(_);var T=w(_,2),D=w(p(T),4);ge(D);var L=w(D,2),j=p(L),M=p(j,!0);v(j);var C=w(j);v(L);var P=w(L,2);he(P,21,()=>n,J=>J.value,(J,ce)=>{var be=DE();let st;var De=p(be,!0);v(be),q(()=>{st=ue(be,1,"admin-snap svelte-1gkiloq",null,st,{active:i(o)===i(ce).value}),be.disabled=i(c),O(De,i(ce).label)}),H("click",be,()=>S(o,i(ce).value,!0)),k(J,be)}),v(P);var N=w(P,2),z=p(N),U=p(z,!0);v(z);var X=w(z,2),Y=w(X,2);{var B=J=>{var ce=ME(),be=p(ce,!0);v(ce),q(()=>O(be,i(u))),k(J,ce)};W(Y,J=>{i(u)&&J(B)})}v(N),v(T);var V=w(T,2),Z=w(p(V),2),G=p(Z),$=p(G,!0);v(G);var ie=w(G,2);{var pe=J=>{var ce=LE(),be=p(ce,!0);v(ce),q(()=>O(be,i(a))),k(J,ce)};W(ie,J=>{i(a)&&J(pe)})}v(Z),v(V),v(x),q(()=>{O(R,i(r)),D.disabled=i(c),O(M,i(o)),O(C,` — ${i(f)??""}`),z.disabled=!i(d)||i(c),O(U,i(c)?"Saving...":"Save"),X.disabled=!i(d)||i(c),G.disabled=i(s),O($,i(s)?"Restarting...":"Restart server")}),Se(D,()=>i(o),J=>S(o,J)),H("click",z,y),H("click",X,()=>S(o,i(l),!0)),H("click",G,g),k(e,x),ae()}le(["click"]);var NE=A(`<div class="admin-key-created"><div class="admin-key-created-label">New key — copy now, it won't be shown again:</div> <code class="admin-key-value svelte-1afg5z5"> </code> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Dismiss</button></div>`),qE=A('<div class="admin-error svelte-1afg5z5"> </div>'),BE=A('<form class="admin-create-form svelte-1afg5z5"><input class="admin-input svelte-1afg5z5" type="text" placeholder="Key label"/> <button type="submit" class="admin-btn svelte-1afg5z5">Create</button> <!></form>'),VE=A('<p class="admin-muted svelte-1afg5z5">Loading...</p>'),FE=A('<p class="admin-error svelte-1afg5z5"> </p>'),UE=A('<p class="admin-muted svelte-1afg5z5">No API keys. Create one to enable external access.</p>'),HE=A('<button type="button" class="admin-btn-danger svelte-1afg5z5">Confirm</button> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Cancel</button>',1),KE=A('<button type="button" class="admin-btn-danger svelte-1afg5z5">Revoke</button>'),WE=A('<li class="admin-key-item svelte-1afg5z5"><div class="admin-key-info svelte-1afg5z5"><span class="admin-key-label svelte-1afg5z5"> </span> <span class="admin-key-meta svelte-1afg5z5"> </span></div> <div class="admin-key-actions svelte-1afg5z5"><!></div></li>'),YE=A('<ul class="admin-key-list svelte-1afg5z5"></ul>'),GE=A('<div class="admin-keys svelte-1afg5z5"><div class="admin-keys-header svelte-1afg5z5"><h2 class="svelte-1afg5z5">API Keys</h2> <button type="button" class="admin-btn svelte-1afg5z5"> </button></div> <!> <!> <!></div>');function XE(e,t){se(t,!0);let n=F(oe([])),r=F(!0),s=F(null),a=F(!1),o=F(""),l=F(null),c=F(null),u=F(null);async function d(){S(r,!0),S(s,null);try{const C=await fetch("/api/admin/keys",{credentials:"include"});if(!C.ok)throw new Error("Failed to fetch keys");S(n,await C.json(),!0)}catch(C){S(s,C instanceof Error?C.message:"Failed to load keys",!0)}finally{S(r,!1)}}async function f(){S(l,null);try{const C=await fetch("/api/admin/keys",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({label:i(o)})});if(!C.ok){const N=await C.json().catch(()=>({}));S(l,N.error||"Failed to create key",!0);return}const P=await C.json();S(c,{id:P.id,key:P.key},!0),S(o,""),S(a,!1),await d()}catch{S(l,"Network error")}}async function h(C){S(u,null);try{await fetch(`/api/admin/keys/${C}`,{method:"DELETE",credentials:"include"}),i(c)?.id===C&&S(c,null),await d()}catch{}}function b(C){return new Date(C).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}d();var E=GE(),y=p(E),g=w(p(y),2),x=p(g,!0);v(g),v(y);var _=w(y,2);{var m=C=>{var P=NE(),N=w(p(P),2),z=p(N,!0);v(N);var U=w(N,2);v(P),q(()=>O(z,i(c).key)),H("click",U,()=>{S(c,null)}),k(C,P)};W(_,C=>{i(c)&&C(m)})}var I=w(_,2);{var R=C=>{var P=BE(),N=p(P);ge(N);var z=w(N,2),U=w(z,2);{var X=Y=>{var B=qE(),V=p(B,!0);v(B),q(()=>O(V,i(l))),k(Y,B)};W(U,Y=>{i(l)&&Y(X)})}v(P),q(Y=>z.disabled=Y,[()=>!i(o).trim()]),Pe("submit",P,Y=>{Y.preventDefault(),f()}),Se(N,()=>i(o),Y=>S(o,Y)),k(C,P)};W(I,C=>{i(a)&&C(R)})}var T=w(I,2);{var D=C=>{var P=VE();k(C,P)},L=C=>{var P=FE(),N=p(P,!0);v(P),q(()=>O(N,i(s))),k(C,P)},j=C=>{var P=UE();k(C,P)},M=C=>{var P=YE();he(P,21,()=>i(n),N=>N.id,(N,z)=>{var U=WE(),X=p(U),Y=p(X),B=p(Y,!0);v(Y);var V=w(Y,2),Z=p(V);v(V),v(X);var G=w(X,2),$=p(G);{var ie=J=>{var ce=HE(),be=ve(ce),st=w(be,2);H("click",be,()=>h(i(z).id)),H("click",st,()=>{S(u,null)}),k(J,ce)},pe=J=>{var ce=KE();H("click",ce,()=>{S(u,i(z).id,!0)}),k(J,ce)};W($,J=>{i(u)===i(z).id?J(ie):J(pe,-1)})}v(G),v(U),q(J=>{O(B,i(z).label),O(Z,`${i(z).id??""} · ${J??""}`)},[()=>b(i(z).createdAt)]),k(N,U)}),v(P),k(C,P)};W(T,C=>{i(r)?C(D):i(s)?C(L,1):i(n).length===0?C(j,2):C(M,-1)})}v(E),q(()=>O(x,i(a)?"Cancel":"New key")),H("click",g,()=>{S(a,!i(a))}),k(e,E),ae()}le(["click"]);const JE={manifest:{id:"sh3-admin",label:"Admin",version:sn,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=Be(AE,{target:a});return{unmount(){Xe(l)}}}},n={mount(a,o){const l=Be(PE,{target:a});return{unmount(){Xe(l)}}}},r={mount(a,o){const l=Be(OE,{target:a});return{unmount(){Xe(l)}}}},s={mount(a,o){const l=Be(XE,{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)}},ZE={manifest:{id:"sh3-admin-app",label:"Admin",version:sn,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"}]}},Fc="sh3:migrations:shell-rename:done",Uc="__shell__:",QE="__sh3core__:",Hc="sh3:user:__shell__:theme",Kc="sh3:user:__sh3core__:theme";function $E(e,t){if(t.getItem(Fc))return;const n=t.getItem(Hc);n!==null&&t.getItem(Kc)===null&&(t.setItem(Kc,n),t.removeItem(Hc));for(const r of e.keys()){if(!r.startsWith(Uc))continue;const s=QE+r.slice(Uc.length),a=e.read(r);e.write(s,a),e.delete(r)}t.setItem(Fc,"1")}const Wc="sh3:migrations:mode-id-rename:done",eI="sh3.shell.lastMode.",Yc={dev:"bash",user:"sh3"};function tI(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 nI(e){if(!e.getItem(Wc)){for(const t of tI(e)){if(!t.startsWith(eI))continue;const n=e.getItem(t);n&&Object.prototype.hasOwnProperty.call(Yc,n)&&e.setItem(t,Yc[n])}e.setItem(Wc,"1")}}let Gc=!1,Xc=null;function rI(){Gc||(Gc=!0,Xc=e=>{const t=e.state?.sh3;t==="anchor"?(Sy(),history.forward()):t==="forward-bumper"&&(Ey(),history.back())},window.addEventListener("popstate",Xc),history.replaceState({sh3:"anchor"},""),history.pushState({sh3:"main"},""),history.pushState({sh3:"forward-bumper"},""),history.back())}function sI(e){gl(e)}function aI(){const e=rn.workspace;return{keys:()=>e.list(),read:t=>e.read(t),write:(t,n)=>e.write(t,n),delete:t=>e.delete(t)}}async function iI(e){if(typeof globalThis.localStorage<"u"){$E(aI(),globalThis.localStorage),nI(globalThis.localStorage);const{migrateLegacyWorkspaceKeys:a}=await Cr(async()=>{const{migrateLegacyWorkspaceKeys:l}=await import("./workspace-rekey-DRgvbNY-.js");return{migrateLegacyWorkspaceKeys:l}},[]),{getActiveScopeId:o}=await Cr(async()=>{const{getActiveScopeId:l}=await Promise.resolve().then(()=>I1);return{getActiveScopeId:l}},void 0);a(o())}const t=new Set(e?.excludeShards),n=[w3,$2,XS,JE,ux,Ox,mE];for(const a of n)t.has(a.manifest.id)||gl(a);const r=[bE,ZE];for(const a of r)Go(a);await fS();for(const[a,o]of pn)if(o.autostart){Hw(a);try{await vv(a,{phase:"autostart"})}catch{}}const s=Ff();if(s&&Mn.has(s))try{await Sn(s)}catch(a){console.error(`[sh3] Auto-launch of "${s}" failed:`,a),Uf()}ky({returnToHome:Fs,launchApp:Sn}),typeof window<"u"&&typeof history<"u"&&rI()}var oI=A('<button type="button" aria-label="Expand pane"><span class="collapse-icon"> </span></button>'),lI=A('<button type="button" aria-label="Collapse pane"><span class="collapse-icon"> </span></button>'),cI=A('<!> <div class="pane-content svelte-1adl4o1"><!></div>',1),uI=A('<div role="separator"></div>'),dI=A("<div><!></div> <!>",1),fI=A("<div></div>");function vI(e,t){se(t,!0);const n=40,r=28;let s;const a=x=>t.pinned?.[x]??"fr",o=x=>t.collapsed?.[x]??!1,l=x=>t.fixed?.[x]??!1,c=x=>l(x)||l(x+1);function u(x){if(l(x))return!1;const _=x>0?!l(x-1):!1,m=x<t.count-1?!l(x+1):!1;return _||m}function d(x){return o(x)?`0 0 ${r}px`:a(x)==="px"?`0 0 ${Math.max(n,t.sizes[x])}px`:`${Math.max(1e-4,t.sizes[x])} 1 0`}let f=F(null);function h(x,_){if(o(_)||o(_+1)||c(_))return;x.preventDefault(),x.target.setPointerCapture(x.pointerId);const m=s.getBoundingClientRect(),I=t.direction==="horizontal"?m.width:m.height;let R=0,T=0;for(let D=0;D<t.sizes.length;D++)a(D)==="fr"?R+=t.sizes[D]:T+=Math.max(n,t.sizes[D]);S(f,{handleIndex:_,startClient:t.direction==="horizontal"?x.clientX:x.clientY,startSizes:t.sizes.slice(),containerPx:I,totalFr:R,frAvailPx:Math.max(1,I-T)},!0)}function b(x){if(!i(f))return;const m=(t.direction==="horizontal"?x.clientX:x.clientY)-i(f).startClient,I=i(f).handleIndex,R=I+1,T=a(I),D=a(R),L=i(f).totalFr/i(f).frAvailPx;if(T==="fr"&&D==="fr"){const j=n*L,M=m*L,C=i(f).startSizes[R]-j,P=-(i(f).startSizes[I]-j),N=Math.min(Math.max(M,P),C);t.onResize?.(I,i(f).startSizes[I]+N),t.onResize?.(R,i(f).startSizes[R]-N)}else if(T==="px"&&D==="fr"){const j=i(f).frAvailPx-n,M=n-i(f).startSizes[I];t.onResize?.(I,i(f).startSizes[I]+Math.min(Math.max(m,M),j))}else if(T==="fr"&&D==="px"){const j=i(f).startSizes[R]-n,M=-(i(f).frAvailPx-n);t.onResize?.(R,i(f).startSizes[R]-Math.min(Math.max(m,M),j))}else{const j=i(f).startSizes[R]-n,M=-(i(f).startSizes[I]-n),C=Math.min(Math.max(m,M),j);t.onResize?.(I,i(f).startSizes[I]+C),t.onResize?.(R,i(f).startSizes[R]-C)}}function E(x){i(f)&&(x.target.releasePointerCapture(x.pointerId),S(f,null))}var y=fI();let g;he(y,21,()=>Array(t.count),dt,(x,_,m)=>{var I=dI(),R=ve(I);let T;var D=p(R);{var L=N=>{var z=oI();let U;var X=p(z),Y=p(X,!0);v(X),v(z),q(()=>{U=ue(z,1,"collapse-header svelte-1adl4o1",null,U,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),O(Y,t.direction==="horizontal"?"▸":"▾")}),H("click",z,()=>t.onCollapseToggle?.(m,!1)),k(N,z)},j=K(()=>o(m)),M=N=>{var z=cI(),U=ve(z);{var X=Z=>{var G=lI();let $;ne(G,"data-testid",`collapse-toggle-${m}`);var ie=p(G),pe=p(ie,!0);v(ie),v(G),q(()=>{$=ue(G,1,"collapse-header expanded svelte-1adl4o1",null,$,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),O(pe,t.direction==="horizontal"?"◂":"▴")}),H("click",G,()=>t.onCollapseToggle?.(m,!0)),k(Z,G)},Y=K(()=>t.onCollapseToggle&&u(m));W(U,Z=>{i(Y)&&Z(X)})}var B=w(U,2),V=p(B);Ht(V,()=>t.pane,()=>m),v(B),k(N,z)};W(D,N=>{i(j)?N(L):N(M,-1)})}v(R);var C=w(R,2);{var P=N=>{var z=uI();let U;ne(z,"data-testid",`splitter-handle-${m}`),q(X=>{U=ue(z,1,"splitter-handle svelte-1adl4o1",null,U,X),ne(z,"aria-orientation",t.direction==="horizontal"?"vertical":"horizontal")},[()=>({dragging:i(f)?.handleIndex===m,disabled:o(m)||o(m+1),frozen:c(m)})]),H("pointerdown",z,X=>h(X,m)),H("pointermove",z,b),H("pointerup",z,E),Pe("pointercancel",z,E),H("dblclick",z,()=>{c(m)||!u(m)&&!o(m)||t.onCollapseToggle?.(m,!o(m))}),k(N,z)};W(C,N=>{m<t.count-1&&N(P)})}q((N,z)=>{T=ue(R,1,"splitter-pane svelte-1adl4o1",null,T,N),He(R,`flex: ${z??""};`)},[()=>({collapsed:o(m)}),()=>d(m)]),k(x,I)}),v(y),Le(y,x=>s=x,()=>s),q(()=>g=ue(y,1,"splitter svelte-1adl4o1",null,g,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"})),k(e,y),ae()}le(["click","pointerdown","pointermove","pointerup","dblclick"]);function hI(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 pI=A('<span class="tab-dirty svelte-1kxcyhf" title="Unsaved changes"></span>'),mI=A('<span class="tab-icon svelte-1kxcyhf"> </span>'),bI=A('<span class="tab-close svelte-1kxcyhf" role="button" tabindex="-1" title="Close">✕</span>'),gI=A('<button type="button" role="tab"><!> <!> <span class="tab-label svelte-1kxcyhf"> </span> <!></button>'),yI=A('<div class="drop-indicator svelte-1kxcyhf"></div>'),_I=A("<div><!></div>"),wI=A('<div class="tabbed-panel svelte-1kxcyhf"><div class="tab-strip svelte-1kxcyhf" role="tablist" tabindex="-1"><!> <!></div> <div class="tab-body svelte-1kxcyhf" role="tabpanel"></div></div>');function kI(e,t){se(t,!0);function n(g){t.clickGuard?.()||t.onActiveChange?.(g)}function r(g,x){x.stopPropagation(),t.onClose?.(g)}let s=F(void 0);const a=oe([]);let o=F(null);function l(g,x){if(!t.dragController)return;const _=a[g];_&&t.dragController.onPointerDown(g,x,_)}function c(g){if(!t.dragController||!t.dragController.isDragging||!i(s))return;const x=i(s).getBoundingClientRect(),_=a.filter(m=>!!m).map(m=>m.getBoundingClientRect());S(o,t.dragController.onStripHover(x,g.clientX,g.clientY,_),!0)}function u(){t.dragController&&(S(o,null),t.dragController.onStripLeave())}var d=wI(),f=p(d),h=p(f);he(h,17,()=>t.labels,dt,(g,x,_)=>{var m=gI();let I;var R=p(m);{var T=N=>{var z=pI();k(N,z)};W(R,N=>{t.dirty?.[_]&&N(T)})}var D=w(R,2);{var L=N=>{var z=mI(),U=p(z,!0);v(z),q(()=>O(U,t.icons[_])),k(N,z)};W(D,N=>{t.icons?.[_]&&N(L)})}var j=w(D,2),M=p(j,!0);v(j);var C=w(j,2);{var P=N=>{var z=bI();q(()=>ne(z,"data-testid",t.tabIds?.[_]?`tab-close-${t.tabIds[_]}`:void 0)),H("click",z,U=>r(_,U)),H("keydown",z,U=>{(U.key==="Enter"||U.key===" ")&&r(_,U)}),k(N,z)};W(C,N=>{t.closable?.[_]&&N(P)})}v(m),Le(m,(N,z)=>a[z]=N,N=>a?.[N],()=>[_]),q(()=>{I=ue(m,1,"tab svelte-1kxcyhf",null,I,{active:t.activeTab===_}),ne(m,"aria-selected",t.activeTab===_),O(M,i(x))}),H("click",m,()=>n(_)),H("pointerdown",m,N=>l(_,N)),Pe("auxclick",m,N=>{N.button===1&&t.closable?.[_]&&r(_,N)}),k(g,m)});var b=w(h,2);{var E=g=>{const x=K(()=>hI(i(o),a,i(s)));var _=qe(),m=ve(_);{var I=R=>{var T=yI();q(()=>He(T,`left: ${i(x).left??""}px; height: ${i(x).height??""}px; top: ${i(x).top??""}px;`)),k(R,T)};W(m,R=>{i(x)&&R(I)})}k(g,_)};W(b,g=>{i(o)!==null&&t.dragController?.isDragging&&g(E)})}v(f),Le(f,g=>S(s,g),()=>i(s));var y=w(f,2);he(y,21,()=>t.labels,dt,(g,x,_)=>{var m=_I();let I;var R=p(m);Ht(R,()=>t.body,()=>_),v(m),q(()=>I=ue(m,1,"tab-body-pane svelte-1kxcyhf",null,I,{active:t.activeTab===_})),k(g,m)}),v(y),v(d),H("pointermove",f,c),Pe("pointerleave",f,u),k(e,d),ae()}le(["pointermove","click","pointerdown","keydown"]);var xI=A('no factory for <code class="svelte-1czj0s8"> </code>',1),SI=A("<em>empty slot</em>"),EI=A('<div class="slot-placeholder svelte-1czj0s8"><div class="slot-id svelte-1czj0s8"> </div> <div class="slot-meta svelte-1czj0s8"><!></div> <div class="slot-dims svelte-1czj0s8"> </div></div>'),II=A('<div class="slot svelte-1czj0s8"><!></div>');function Jc(e,t){se(t,!0);let n=Q(t,"label",3,""),r=F(void 0),s=F(0),a=F(0);const o=K(()=>t.node.viewId?!!uf(t.node.viewId):!1);xe(()=>{if(!i(r))return;const d=t.node.slotId,f=i(r),h=al(d,t.node.viewId,n()||t.node.viewId||d,t.meta);f.appendChild(h);const b=new ResizeObserver(E=>{for(const y of E){const g=y.contentRect;S(s,Math.round(g.width),!0),S(a,Math.round(g.height),!0)}});return b.observe(f),()=>{b.disconnect(),il(d,f)}});var l=II(),c=p(l);{var u=d=>{var f=EI(),h=p(f),b=p(h,!0);v(h);var E=w(h,2),y=p(E);{var g=I=>{var R=xI(),T=w(ve(R)),D=p(T,!0);v(T),q(()=>O(D,t.node.viewId)),k(I,R)},x=I=>{var R=SI();k(I,R)};W(y,I=>{t.node.viewId?I(g):I(x,-1)})}v(E);var _=w(E,2),m=p(_);v(_),v(f),q(()=>{O(b,t.node.slotId),O(m,`${i(s)??""} × ${i(a)??""}`)}),k(d,f)};W(c,d=>{i(o)||d(u)})}v(l),Le(l,d=>S(r,d),()=>i(r)),q(()=>{ne(l,"data-slot-id",t.node.slotId),ne(l,"data-view-id",t.node.viewId??"")}),k(e,l),ae()}const _e=oe({phase:"idle",source:null,pointerX:0,pointerY:0,target:null});let sh=0;function AI(){return performance.now()<sh}const Zc=4;let ah=0,ih=0;function CI(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,ah=r.clientX,ih=r.clientY,TI()}function TI(){window.addEventListener("pointermove",oh,!0),window.addEventListener("pointerup",lh,!0),window.addEventListener("pointercancel",ch,!0),document.body.style.userSelect="none",document.body.dataset.dragging=""}function RI(){window.removeEventListener("pointermove",oh,!0),window.removeEventListener("pointerup",lh,!0),window.removeEventListener("pointercancel",ch,!0),document.body.style.userSelect="",delete document.body.dataset.dragging}function oh(e){if(_e.pointerX=e.clientX,_e.pointerY=e.clientY,_e.phase==="pending"){const t=e.clientX-ah,n=e.clientY-ih;t*t+n*n>=Zc*Zc&&(_e.phase="dragging")}}function lh(e){_e.phase==="dragging"&&(jI(),sh=performance.now()+50),uh()}function ch(e){uh()}function Qc(e){const t=vn.tree;if(e.kind==="docked")return t.docked;const n=t.floats.find(r=>r.id===e.floatId);return n?n.content:null}function $c(e){if(e.kind!=="float")return;const t=vn.tree,n=t.floats.findIndex(r=>r.id===e.floatId);n<0||Wd(t.floats[n].content)&&t.floats.splice(n,1)}function jI(){const{source:e,target:t}=_e;if(!e||!t)return;const n=Qc(e.sourceRoot),r=Qc(t.root);if(!n||!r)return;if(t.kind==="strip"){const a=t.tabsNode.tabs.findIndex(o=>o.slotId===e.slotId);if(a>=0){Sw(t.tabsNode,a,t.insertIndex),wr(n),r!==n&&wr(r),$c(e.sourceRoot);return}}const s=Ja(n,e.slotId);s&&(t.kind==="strip"?xw(t.tabsNode,s,t.insertIndex):hf(r,t.path,s,t.side),wr(n),r!==n&&wr(r),$c(e.sourceRoot))}function uh(){_e.phase="idle",_e.source=null,_e.target=null,RI()}function mo(e){_e.phase==="dragging"&&(_e.target=e)}function Ir(e){_e.phase==="dragging"&&_e.target&&(e&&!e(_e.target)||(_e.target=null))}var PI=A("<div></div>"),DI=A('<div class="quad-target quad-left svelte-re71zu" data-testid="drop-zone-left"></div> <div class="quad-target quad-right svelte-re71zu" data-testid="drop-zone-right"></div> <div class="quad-target quad-top svelte-re71zu" data-testid="drop-zone-top"></div> <div class="quad-target quad-bottom svelte-re71zu" data-testid="drop-zone-bottom"></div>',1),MI=A("<!> <!>",1),LI=A("<div><!></div>");function eu(e,t){se(t,!0);let n=F(void 0),r=F(null);const s=K(()=>_e.phase==="dragging"),a=K(()=>{let b;return t.rootRef.kind==="docked"?b=vn.root:b=vn.tree.floats.find(y=>y.id===t.rootRef.floatId)?.content??null,b?pf(b,t.path):!1});function o(b,E,y){const g=y.left+y.width/2,x=y.top+y.height/2,_=b-g,m=E-x,I=_/y.width,R=m/y.height;return Math.abs(I)>Math.abs(R)?I<0?"left":"right":R<0?"top":"bottom"}function l(b){if(!i(n))return;if(i(a)){i(r)!==null&&(S(r,null),Ir(g=>g.kind==="split"&&g.path.join("/")===t.path.join("/")));return}const E=i(n).getBoundingClientRect();if(b.clientX<E.left||b.clientX>E.right||b.clientY<E.top||b.clientY>E.bottom){i(r)!==null&&(S(r,null),Ir(g=>g.kind==="split"&&g.path.join("/")===t.path.join("/")));return}const y=o(b.clientX,b.clientY,E);if(y!==i(r)){S(r,y,!0);const g={kind:"split",root:t.rootRef,path:[...t.path],side:y};mo(g)}}function c(){i(r)!==null&&(S(r,null),Ir(b=>b.kind==="split"&&b.path.join("/")===t.path.join("/")))}var u=LI();let d;var f=p(u);{var h=b=>{var E=MI(),y=ve(E);{var g=m=>{var I=PI();q(()=>ue(I,1,`quad-highlight quad-${i(r)??""}`,"svelte-re71zu")),k(m,I)};W(y,m=>{i(r)&&m(g)})}var x=w(y,2);{var _=m=>{var I=DI();qt(6),k(m,I)};W(x,m=>{i(s)&&m(_)})}k(b,E)};W(f,b=>{i(a)||b(h)})}v(u),Le(u,b=>S(n,b),()=>i(n)),q(()=>d=ue(u,1,"slot-drop-zone svelte-re71zu",null,d,{active:i(s),locked:i(a)})),H("pointermove",u,l),Pe("pointerleave",u,c),k(e,u),ae()}le(["pointermove"]);var zI=A('<div class="tab-slot-wrapper svelte-1gw9g38"><!> <!></div>'),OI=A('<div class="empty-tabs-custom svelte-1gw9g38"></div>'),NI=A('<div class="empty-tabs-default svelte-1gw9g38"><div class="empty-tabs-drop svelte-1gw9g38"></div></div>'),qI=A('<div class="empty-tabs-placeholder svelte-1gw9g38"><!></div>'),BI=A('<div class="leaf-slot-wrapper svelte-1gw9g38"><!> <!></div>');function Tl(e,t){se(t,!0);let n=Q(t,"path",19,()=>[]),r=Q(t,"rootRef",19,()=>({kind:"docked"}));const s=K(()=>{let _;return r().kind==="docked"?_=vn.root:_=vn.tree.floats.find(I=>I.id===r().floatId)?.content??null,_?gs(_,n()):null});function a(_){return{get isDragging(){return _e.phase==="dragging"},onPointerDown(m,I,R){const T=_.tabs[m];T&&CI(T.slotId,T,r(),I,R)},onStripHover(m,I,R,T){if(R<m.top||R>m.bottom)return Ir(j=>j.kind==="strip"&&j.tabsNode===_),null;let D=T.length;for(let j=0;j<T.length;j++){const M=T[j],C=M.left+M.width/2;if(I<C){D=j;break}}const L=_e.source;if(L){const j=_.tabs.findIndex(M=>M.slotId===L.slotId);j>=0&&j<D&&(D-=1)}return mo({kind:"strip",root:r(),tabsNode:_,insertIndex:D}),D},onStripLeave(){Ir(m=>m.kind==="strip"&&m.tabsNode===_)}}}function o(_){return _.type==="split"?_:null}function l(_){return _.type==="tabs"?_:null}function c(_){return _.type==="slot"?_:null}function u(_){return _.map(m=>Tw(m.slotId)||void 0)}function d(_){return _.map(m=>Cw(m.slotId)||void 0)}function f(_,m){const I=_[m];I&&vl(I.slotId)}function h(_,m){m(_)}function b(_,m){_e.phase==="dragging"&&mo({kind:"strip",root:r(),tabsNode:m,insertIndex:0})}function E(){Ir(_=>_.kind==="strip"&&_.insertIndex===0)}var y=qe(),g=ve(y);{var x=_=>{var m=qe(),I=ve(m);{var R=L=>{const j=(C,P=St)=>{{let N=K(()=>[...n(),P()]);Tl(C,{get rootRef(){return r()},get path(){return i(N)}})}},M=K(()=>o(i(s)));vI(L,{get direction(){return i(M).direction},get sizes(){return i(M).sizes},get pinned(){return i(M).pinned},get collapsed(){return i(M).collapsed},get fixed(){return i(M).fixed},get count(){return i(M).children.length},get pane(){return j},onResize:(C,P)=>i(M).sizes[C]=P,onCollapseToggle:(C,P)=>{i(M).collapsed||(i(M).collapsed=i(M).children.map(()=>!1)),i(M).collapsed[C]=P}})},T=L=>{const j=K(()=>l(i(s)));var M=qe(),C=ve(M);{var P=z=>{const U=(Y,B=St)=>{const V=K(()=>i(j)?.tabs[B()]);var Z=qe(),G=ve(Z);{var $=ie=>{var pe=zI(),J=p(pe);{let be=K(()=>({type:"slot",slotId:i(V).slotId,viewId:i(V).viewId}));Jc(J,{get node(){return i(be)},get label(){return i(V).label},get meta(){return i(V).meta}})}var ce=w(J,2);eu(ce,{get rootRef(){return r()},get path(){return n()}}),v(pe),k(ie,pe)};W(G,ie=>{i(V)&&ie($)})}k(Y,Z)},X=K(()=>a(i(j)));{let Y=K(()=>i(j).tabs.map($=>$.label)),B=K(()=>i(j).tabs.map($=>$.icon)),V=K(()=>u(i(j).tabs)),Z=K(()=>d(i(j).tabs)),G=K(()=>i(j).tabs.map($=>$.slotId));kI(z,{get labels(){return i(Y)},get icons(){return i(B)},get activeTab(){return i(j).activeTab},onActiveChange:$=>i(j).activeTab=$,get body(){return U},get dragController(){return i(X)},get clickGuard(){return AI},get closable(){return i(V)},get dirty(){return i(Z)},onClose:$=>f(i(j).tabs,$),get tabIds(){return i(G)}})}},N=z=>{var U=qI(),X=p(U);{var Y=V=>{var Z=OI();Ad(Z,(G,$)=>h?.(G,$),()=>i(j).emptyRenderer),k(V,Z)},B=V=>{var Z=NI(),G=p(Z);v(Z),H("pointermove",G,$=>b($,i(j))),Pe("pointerleave",G,E),k(V,Z)};W(X,V=>{i(j).emptyRenderer?V(Y):V(B,-1)})}v(U),k(z,U)};W(C,z=>{i(j)&&i(j).tabs.length>0?z(P):i(j)?.persistent&&z(N,1)})}k(L,M)},D=L=>{const j=K(()=>c(i(s)));var M=BI(),C=p(M);Jc(C,{get node(){return i(j)},get meta(){return i(j).meta}});var P=w(C,2);eu(P,{get rootRef(){return r()},get path(){return n()}}),v(M),k(L,M)};W(I,L=>{i(s).type==="split"?L(R):i(s).type==="tabs"?L(T,1):L(D,-1)})}k(_,m)};W(g,_=>{i(s)&&_(x)})}k(e,y),ae()}le(["pointermove"]);var VI=A('<span class="drag-preview-icon svelte-133fiip"> </span>'),FI=A('<div class="drag-preview svelte-133fiip"><!> <span class="drag-preview-label svelte-133fiip"> </span></div>');function UI(e,t){se(t,!0);const n=K(()=>_e.phase==="dragging"&&!!_e.source),r=K(()=>_e.source?_e.pointerX-_e.source.offsetX:0),s=K(()=>_e.source?_e.pointerY-_e.source.offsetY:0),a=K(()=>_e.source?.startRect.width??0),o=K(()=>_e.source?.startRect.height??0),l=K(()=>_e.source?.entry.label??""),c=K(()=>_e.source?.entry.icon);var u=qe(),d=ve(u);{var f=h=>{var b=FI(),E=p(b);{var y=_=>{var m=VI(),I=p(m,!0);v(m),q(()=>O(I,i(c))),k(_,m)};W(E,_=>{i(c)&&_(y)})}var g=w(E,2),x=p(g,!0);v(g),v(b),q(()=>{He(b,`left: ${i(r)??""}px; top: ${i(s)??""}px; width: ${i(a)??""}px; height: ${i(o)??""}px;`),O(x,i(l))}),k(h,b)};W(d,h=>{i(n)&&h(f)})}k(e,u),ae()}const Ar=new Map;let Ta=!1;function dh(e){if(Ar.size===0)return;const t=e.target;if(!t)return;const n=Array.from(Ar.keys());for(const r of n){const s=Ar.get(r);s&&(s.contains(t)||Ce.close(r))}}function HI(){Ta||typeof document>"u"||(document.addEventListener("pointerdown",dh,!0),Ta=!0)}function KI(){Ta&&(Ar.size>0||(document.removeEventListener("pointerdown",dh,!0),Ta=!1))}function WI(e,t){Ar.set(e,t),HI()}function YI(e){Ar.delete(e),KI()}var GI=A('<header class="sh3-float-header svelte-1p734al" data-sh3-scope="element:float-header"><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>'),XI=A('<div class="sh3-float-frame svelte-1p734al" data-shell-overlay-host="float" role="dialog" tabindex="-1"><!> <div class="sh3-float-body svelte-1p734al"><!></div> <div class="sh3-float-resize-grip svelte-1p734al" role="presentation" aria-hidden="true"></div></div>');function JI(e,t){se(t,!0);const n=Xa("__layouts__");function r(P){P.preventDefault(),n.set({type:"float-header",ref:{floatId:s().id}}),bn.actions.openContextMenu({x:P.clientX,y:P.clientY,scope:{element:"float-header"}})}let s=Q(t,"entry",15),a=F(!1),o={x:0,y:0},l=F(!1),c={pointer:{x:0,y:0},size:{w:0,h:0},min:{w:0,h:0}},u=F(void 0);const d=K(()=>Ce.isMaximized(s().id));xe(()=>{if(s().dismissable&&i(u))return WI(s().id,i(u)),()=>YI(s().id)}),xe(()=>{if(!i(u))return;const P=Xy(s().id);if(P)return P.appendChild(i(u)),()=>{i(u)?.parentNode===P&&i(u).remove()}});function f(P){if(P.button!==0||P.target.closest(".sh3-float-close")||P.target.closest(".sh3-float-maximize"))return;P.currentTarget.setPointerCapture?.(P.pointerId),S(a,!0),o={x:P.clientX-s().position.x,y:P.clientY-s().position.y},Ce.focus(s().id)}function h(P){i(a)&&(Ce.unmaximize(s().id),s(s().position.x=P.clientX-o.x,!0),s(s().position.y=P.clientY-o.y,!0))}function b(P){if(!i(a))return;S(a,!1);const N=P.currentTarget;N.hasPointerCapture?.(P.pointerId)&&N.releasePointerCapture(P.pointerId)}function E(P){P.target.closest(".sh3-float-close")||P.target.closest(".sh3-float-maximize")||Ce.toggleMaximize(s().id)}function y(P){if(P.button!==0)return;P.stopPropagation(),P.currentTarget.setPointerCapture?.(P.pointerId),S(l,!0),c={pointer:{x:P.clientX,y:P.clientY},size:{w:s().size.w,h:s().size.h},min:Xo(s().content)},Ce.focus(s().id)}function g(P){if(!i(l))return;Ce.unmaximize(s().id);const N=P.clientX-c.pointer.x,z=P.clientY-c.pointer.y;s(s().size.w=Math.max(c.min.w,c.size.w+N),!0),s(s().size.h=Math.max(c.min.h,c.size.h+z),!0)}function x(P){if(!i(l))return;S(l,!1);const N=P.currentTarget;N.hasPointerCapture?.(P.pointerId)&&N.releasePointerCapture(P.pointerId)}function _(){Ce.focus(s().id)}function m(P){P.stopPropagation(),Ce.toggleMaximize(s().id)}function I(P){P.stopPropagation(),Ce.close(s().id)}var R=XI();let T;var D=p(R);{var L=P=>{var N=GI(),z=p(N),U=p(z,!0);v(z);var X=w(z,2),Y=p(X),B=p(Y,!0);v(Y);var V=w(Y,2);v(X),v(N),q(()=>{ne(N,"data-float-id",s().id),O(U,s().title),ne(Y,"aria-label",i(d)?"Restore float":"Maximize float"),ne(Y,"aria-pressed",i(d)),O(B,i(d)?"🗗":"🗖")}),H("pointerdown",N,f),H("pointermove",N,h),H("pointerup",N,b),Pe("pointercancel",N,b),H("dblclick",N,E),H("contextmenu",N,r),H("click",Y,m),H("click",V,I),k(P,N)};W(D,P=>{s().title&&P(L)})}var j=w(D,2),M=p(j);{let P=K(()=>({kind:"float",floatId:s().id}));Tl(M,{get rootRef(){return i(P)},path:[]})}v(j);var C=w(j,2);v(R),Le(R,P=>S(u,P),()=>i(u)),q(()=>{ne(R,"aria-label",s().title??"Float panel"),T=He(R,"",T,{left:`${s().position.x??""}px`,top:`${s().position.y??""}px`,width:`${s().size.w??""}px`,height:`${s().size.h??""}px`})}),H("click",R,_),H("pointerdown",C,y),H("pointermove",C,g),H("pointerup",C,x),Pe("pointercancel",C,x),k(e,R),ae()}le(["click","pointerdown","pointermove","pointerup","dblclick","contextmenu"]);var ZI=A('<div class="sh3-float-layer svelte-1rzcset"></div>');function QI(e,t){se(t,!0);const n=K(()=>vn.floats);var r=ZI();he(r,23,()=>i(n),s=>s.id,(s,a,o)=>{JI(s,{get entry(){return i(n)[i(o)]},set entry(l){i(n)[i(o)]=l}})}),v(r),k(e,r),ae()}var $I=A('<div class="guest-signin-error svelte-pymkh"> </div>'),eA=A('<div class="guest-signin-overlay svelte-pymkh" role="dialog"><div class="guest-signin-card svelte-pymkh"><form class="guest-signin-form svelte-pymkh"><input class="guest-signin-input svelte-pymkh" type="text" placeholder="Username" autocomplete="username"/> <input class="guest-signin-input svelte-pymkh" type="password" placeholder="Password" autocomplete="current-password"/> <div class="guest-signin-actions svelte-pymkh"><button type="submit" class="guest-signin-btn svelte-pymkh"> </button> <button type="button" class="guest-signin-cancel svelte-pymkh">Cancel</button></div></form> <!></div></div>'),tA=A('<div class="guest-banner svelte-pymkh"><span class="guest-banner-text">Browsing as guest. Sign in to save your work.</span> <button type="button" class="guest-banner-action svelte-pymkh">Sign in</button></div> <!>',1),nA=A('<div class="guest-banner-slot"><!></div>');function rA(e,t){se(t,!0);let n=F(!1),r=F(""),s=F(""),a=F(null),o=F(!1);async function l(){if(!i(r).trim()||!i(s).trim()||i(o))return;S(o,!0),S(a,null);const h=await Zf(i(r).trim(),i(s).trim());S(o,!1),h.ok?S(n,!1):S(a,h.error,!0)}var c=nA(),u=p(c);{var d=h=>{var b=tA(),E=ve(b),y=w(p(E),2);v(E);var g=w(E,2);{var x=_=>{var m=eA(),I=p(m),R=p(I),T=p(R);ge(T);var D=w(T,2);ge(D);var L=w(D,2),j=p(L),M=p(j,!0);v(j);var C=w(j,2);v(L),v(R);var P=w(R,2);{var N=z=>{var U=$I(),X=p(U,!0);v(U),q(()=>O(X,i(a))),k(z,U)};W(P,z=>{i(a)&&z(N)})}v(I),v(m),q(z=>{T.disabled=i(o),D.disabled=i(o),j.disabled=z,O(M,i(o)?"Signing in...":"Sign in")},[()=>i(o)||!i(r).trim()||!i(s).trim()]),Pe("submit",R,z=>{z.preventDefault(),l()}),Se(T,()=>i(r),z=>S(r,z)),Se(D,()=>i(s),z=>S(s,z)),H("click",C,()=>{S(n,!1),S(a,null)}),k(_,m)};W(g,_=>{i(n)&&_(x)})}H("click",y,()=>{S(n,!0)}),k(h,b)},f=K(()=>Qf());W(u,h=>{i(f)&&h(d)})}v(c),k(e,c),ae()}le(["click"]);var sA=A('<code class="sh3-consent-scope svelte-14me5sj"> </code>'),aA=A('<dt class="svelte-14me5sj">Peer</dt> <dd class="svelte-14me5sj"> </dd>',1),iA=A('<dt class="svelte-14me5sj">Expires in</dt> <dd class="svelte-14me5sj"> </dd>',1),oA=A('<div class="sh3-consent-backdrop svelte-14me5sj" role="dialog" aria-modal="true" aria-label="Key creation consent"><div class="sh3-consent-card svelte-14me5sj"><h2 class="sh3-consent-title svelte-14me5sj"><span class="svelte-14me5sj"> </span> wants to create a key</h2> <dl class="sh3-consent-fields svelte-14me5sj"><dt class="svelte-14me5sj">Label</dt> <dd class="svelte-14me5sj"> </dd> <dt class="svelte-14me5sj">Scopes</dt> <dd class="sh3-consent-scopes svelte-14me5sj"></dd> <!> <!></dl> <div class="sh3-consent-actions svelte-14me5sj"><button type="button" class="sh3-consent-deny svelte-14me5sj">Deny</button> <button type="button" class="sh3-consent-approve svelte-14me5sj">Approve</button></div></div></div>');function lA(e,t){se(t,!0);let n=F(null);xe(()=>dv(u=>{S(n,u,!0)}));function r(){i(n)&&(lo(i(n).requestId,!0),S(n,null))}function s(){i(n)&&(lo(i(n).requestId,!1),S(n,null))}var a=qe(),o=ve(a);{var l=c=>{var u=oA(),d=p(u),f=p(d),h=p(f),b=p(h,!0);v(h),qt(),v(f);var E=w(f,2),y=w(p(E),2),g=p(y,!0);v(y);var x=w(y,4);he(x,20,()=>i(n).scopes,j=>j,(j,M)=>{var C=sA(),P=p(C,!0);v(C),q(()=>O(P,M)),k(j,C)}),v(x);var _=w(x,2);{var m=j=>{var M=aA(),C=w(ve(M),2),P=p(C);v(C),q(()=>O(P,`${i(n).peerRole??"—"??""}${i(n).peerId?` · ${i(n).peerId}`:""}`)),k(j,M)};W(_,j=>{(i(n).peerRole||i(n).peerId)&&j(m)})}var I=w(_,2);{var R=j=>{var M=iA(),C=w(ve(M),2),P=p(C);v(C),q(N=>O(P,`${N??""}s`),[()=>Math.round(i(n).expiresIn/1e3)]),k(j,M)};W(I,j=>{i(n).expiresIn&&j(R)})}v(E);var T=w(E,2),D=p(T);Vr(D,!0);var L=w(D,2);v(T),v(d),v(u),q(()=>{O(b,i(n).shardId),O(g,i(n).label)}),H("click",D,s),H("click",L,r),k(c,u)};W(o,c=>{i(n)&&c(l)})}k(e,a),ae()}le(["click"]);var cA=A('<span class="sh3-brand svelte-18lk809">SH3</span>'),uA=A('<span class="sh3-brand sh3-brand-app svelte-18lk809"> </span>'),dA=A('<span class="sh3-brand svelte-18lk809">SH3</span> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <button type="button" class="sh3-brand-crumb svelte-18lk809"> </button>',1),fA=A('<button type="button" class="sh3-brand sh3-brand-clickable svelte-18lk809" title="Exit project">SH3</button> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <span class="sh3-brand-project svelte-18lk809"> </span>',1),vA=A('<span class="sh3-brand sh3-brand-project svelte-18lk809"> </span> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <span class="sh3-brand sh3-brand-app svelte-18lk809"> </span>',1),hA=A('<button type="button" class="sh3-brand sh3-brand-clickable svelte-18lk809" title="Exit project">SH3</button> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <button type="button" class="sh3-brand-crumb svelte-18lk809"> </button> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <button type="button" class="sh3-brand-crumb svelte-18lk809"> </button>',1),pA=A('<div class="sh3-brand-slot svelte-18lk809"><!></div>');function mA(e,t){se(t,!0);const n=K(()=>Ft().activeAppId),r=K(wy),s=K(()=>sr.activeProjectId),a=K(()=>i(n)?Ln(i(n))?.manifest.label??i(n):null),o=K(()=>i(r)?Ln(i(r))?.manifest.label??i(r):null),l=K(()=>i(s)?Ot.projects.find(I=>I.id===i(s))?.name??i(s):null),c=K(()=>i(s)?i(n)?"project-app":i(r)?"project-breadcrumb":"project-home":i(n)?"app":i(r)?"breadcrumb":"brand");function u(){i(r)&&Sn(i(r))}function d(){Bf(null)}function f(){i(n)&&Fs()}var h=pA(),b=p(h);{var E=I=>{var R=cA();k(I,R)},y=I=>{var R=uA(),T=p(R,!0);v(R),q(()=>O(T,i(a))),k(I,R)},g=I=>{var R=dA(),T=w(ve(R),4),D=p(T,!0);v(T),q(()=>O(D,i(o))),H("click",T,u),k(I,R)},x=I=>{var R=fA(),T=ve(R),D=w(T,4),L=p(D,!0);v(D),q(()=>O(L,i(l))),H("click",T,d),k(I,R)},_=I=>{var R=vA(),T=ve(R),D=p(T,!0);v(T);var L=w(T,4),j=p(L,!0);v(L),q(()=>{O(D,i(l)),O(j,i(a))}),k(I,R)},m=I=>{var R=hA(),T=ve(R),D=w(T,4),L=p(D,!0);v(D);var j=w(D,4),M=p(j,!0);v(j),q(()=>{O(L,i(l)),O(M,i(o))}),H("click",T,d),H("click",D,f),H("click",j,u),k(I,R)};W(b,I=>{i(c)==="brand"?I(E):i(c)==="app"?I(y,1):i(c)==="breadcrumb"?I(g,2):i(c)==="project-home"?I(x,3):i(c)==="project-app"?I(_,4):i(c)==="project-breadcrumb"&&I(m,5)})}v(h),k(e,h),ae()}le(["click"]);const bA=Object.freeze([{id:"file",label:"File"},{id:"edit",label:"Edit"},{id:"view",label:"View"},{id:"window",label:"Window"},{id:"help",label:"Help"}]);function Ra(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function gA(e,t){if(e==null)return[];if(t==null)return bA.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 yA(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)||!Bs(a.action.scope,t,a.ownerShardId)||(s.add(a.action.id),r.push({id:a.action.id,label:Wt(a.action),shortcut:qs(a.action,t.bindings,t.platform),group:a.action.group??"",icon:a.action.icon,checked:Ra(a.action.checked),disabled:Ra(a.action.disabled),submenu:a.action.submenu===!0}));return r}function _A(e,t,n){const r=[],s=new Set;for(const a of e)a.action.submenuOf!==n||s.has(a.action.id)||!Bs(a.action.scope,t,a.ownerShardId)||(s.add(a.action.id),r.push({id:a.action.id,label:Wt(a.action),shortcut:qs(a.action,t.bindings,t.platform),group:a.action.group??"",icon:a.action.icon,checked:Ra(a.action.checked),disabled:Ra(a.action.disabled),submenu:a.action.submenu===!0}));return r}var wA=A('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),kA=A('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),xA=A('<button type="button" class="sh3-menubar-button svelte-bke3dt"><!> <span class="sh3-menubar-label"> </span> <!></button>');function SA(e,t){se(t,!0);let n=F(void 0);function r(y){const g=new Map,x=[];for(const _ of y){const m=_.group||"";g.has(m)||(g.set(m,[]),x.push(m)),g.get(m).push(_)}return x.map(_=>({id:`group:${_||"_default"}`,items:g.get(_)}))}function s(y,g,x){const _=et().find(m=>m.action.id===y);if(!(!_||typeof _.action.run!="function")){try{_.action.run({action:{id:y,label:Wt(_.action)},appId:g.activeAppId,viewId:g.focusedViewId??void 0,selection:g.selection??void 0,invokedVia:"palette",dispatch:()=>{}})}catch(m){console.error(`[sh3] menu-bar action "${y}" threw:`,m)}x.close()}}function a(y,g,x){const _=document.querySelector(".sh3-popup-host");if(!_)return;const m=document.createElement("div");m.className="sh3-popup-submenu",m.style.position="absolute",m.style.pointerEvents="auto";const R=(_.querySelector(".sh3-ctx-active")??_).getBoundingClientRect();m.style.left=`${R.right+2}px`,m.style.top=`${R.top}px`,_.appendChild(m);const T=_A(et(),g,y),D=Be(Sa,{target:m,props:{sections:r(T),onInvoke:L=>s(L,g,x),onDismiss:()=>{Xe(D),m.remove()}}})}function o(){if(!i(n))return;const y=Ft(),g=Gi.show(Sa,{anchor:i(n),placement:"bottom-start"},{sections:r(t.items),onInvoke:x=>{const _=et().find(m=>m.action.id===x);if(_){if(_.action.submenu===!0){a(x,y,g);return}s(x,y,g)}},onDismiss:()=>Gi.close()})}const l=K(()=>t.container.iconPosition??"before");var c=xA(),u=p(c);{var d=y=>{var g=wA();q(()=>ne(g,"data-icon",t.container.icon)),k(y,g)};W(u,y=>{t.container.icon&&i(l)==="before"&&y(d)})}var f=w(u,2),h=p(f,!0);v(f);var b=w(f,2);{var E=y=>{var g=kA();q(()=>ne(g,"data-icon",t.container.icon)),k(y,g)};W(b,y=>{t.container.icon&&i(l)==="after"&&y(E)})}v(c),Le(c,y=>S(n,y),()=>i(n)),q(()=>O(h,t.container.label)),H("click",c,o),k(e,c),ae()}le(["click"]);var EA=A('<div class="sh3-menubar svelte-7gc0wa" role="menubar"></div>');function IA(e,t){se(t,!0);const n=K(Ft),r=K(()=>i(n).activeAppId),s=K(()=>{if(i(r))return Ln(i(r))?.manifest.menus}),a=K(()=>gA(i(r),i(s))),o=K(()=>{const c=[],u=et();for(const d of i(a)){const f=yA(u,i(n),d.id);f.length>0&&c.push({container:d,items:f})}return c});var l=EA();he(l,21,()=>i(o),({container:c,items:u})=>c.id,(c,u)=>{let d=()=>i(u).container,f=()=>i(u).items;SA(c,{get container(){return d()},get items(){return f()}})}),v(l),k(e,l),ae()}var AA=A('<button type="button" class="shell-tabbar-signout svelte-187fra4" title="Sign out"><svg class="shell-tabbar-signout-icon svelte-187fra4" aria-hidden="true"><use></use></svg></button>'),CA=A('<div class="shell-tabbar-user svelte-187fra4"><span class="shell-tabbar-user-name svelte-187fra4"> </span> <span class="shell-tabbar-tag svelte-187fra4"> </span> <!></div>'),TA=A('<div class="shell-overlay-root svelte-187fra4"><!></div>'),RA=A('<div class="shell svelte-187fra4"><header class="shell-tabbar svelte-187fra4" data-shell-region="tabbar"><button type="button" class="shell-tabbar-home-button svelte-187fra4" title="Home"><svg class="shell-tabbar-home-icon svelte-187fra4" aria-hidden="true"><use></use></svg></button> <!> <!> <!></header> <!> <main class="shell-content svelte-187fra4" data-shell-region="content" data-shell-layer="0"><!></main> <footer class="shell-statusbar svelte-187fra4" data-shell-region="statusbar"></footer> <div class="shell-overlays svelte-187fra4" aria-hidden="true"></div> <!></div>');function jA(e,t){se(t,!0);const n=K(ao),r=K(Or),s=K(bt),a=K(()=>kf()==="home"),o=[{layer:1,name:"floating"},{layer:2,name:"drag-preview"},{layer:3,name:"popup"},{layer:4,name:"modal"},{layer:5,name:"toast"},{layer:6,name:"command"}],l=oe({});xe(()=>{for(const{name:T}of o){const D=l[T];D&&yy(T,D)}return()=>{for(const{name:T}of o)_y(T)}}),xe(()=>{const T=vn.tree;return Yy(T.floats,()=>({w:window.innerWidth,h:window.innerHeight})),()=>Gy()}),xe(()=>{vn.tree,Uw()}),xe(()=>ao()?lk():void 0);var c=RA(),u=p(c),d=p(u),f=p(d),h=p(f);v(f),v(d);var b=w(d,2);mA(b,{});var E=w(b,2);IA(E,{});var y=w(E,2);{var g=T=>{var D=CA(),L=p(D),j=p(L,!0);v(L);var M=w(L,2),C=p(M,!0);v(M);var P=w(M,2);{var N=U=>{var X=AA(),Y=p(X),B=p(Y);v(Y),v(X),q(()=>ne(B,"href",`${zn}#log-out`)),H("click",X,()=>L1()),k(U,X)},z=K(()=>!O1());W(P,U=>{i(z)&&U(N)})}v(D),q(()=>{O(j,i(r).displayName),O(C,i(s)?"admin":"user")}),k(T,D)};W(y,T=>{i(n)&&i(r)&&T(g)})}v(u);var x=w(u,2);rA(x,{});var _=w(x,2),m=p(_);Tl(m,{}),v(_);var I=w(_,4);he(I,21,()=>o,({layer:T,name:D})=>T,(T,D)=>{let L=()=>i(D).layer,j=()=>i(D).name;var M=TA(),C=p(M);{var P=z=>{QI(z,{})},N=z=>{UI(z,{})};W(C,z=>{j()==="floating"?z(P):j()==="drag-preview"&&z(N,1)})}v(M),Le(M,(z,U)=>l[U]=z,z=>l?.[z],()=>[j()]),q(()=>{ne(M,"data-shell-overlay",j()),ne(M,"data-shell-layer",L()),He(M,`z-index: var(--shell-z-layer-${L()??""});`)}),k(T,M)}),v(I);var R=w(I,2);lA(R,{}),v(c),q(()=>{d.disabled=i(a),ne(h,"href",`${zn}#house`)}),H("click",d,()=>Fs()),k(e,c),ae()}le(["click"]);var PA=A('<button type="button" class="signin-link svelte-lh4k15">Create an account</button>'),DA=A('<form class="signin-form svelte-lh4k15"><input class="signin-input svelte-lh4k15" type="text" placeholder="Username" autocomplete="username"/> <input class="signin-input svelte-lh4k15" type="password" placeholder="Password" autocomplete="current-password"/> <button type="submit" class="signin-btn svelte-lh4k15"> </button></form> <!>',1),MA=A('<form class="signin-form svelte-lh4k15"><input class="signin-input svelte-lh4k15" type="text" placeholder="Username" autocomplete="username"/> <input class="signin-input svelte-lh4k15" type="text" placeholder="Display name (optional)"/> <input class="signin-input svelte-lh4k15" type="password" placeholder="Password" autocomplete="new-password"/> <button type="submit" class="signin-btn svelte-lh4k15"> </button></form> <button type="button" class="signin-link svelte-lh4k15">Back to sign in</button>',1),LA=A('<div class="signin-error svelte-lh4k15"> </div>'),zA=A('<div class="signin-wall svelte-lh4k15"><div class="signin-card svelte-lh4k15"><h1 class="signin-brand svelte-lh4k15">SH3</h1> <!> <!></div></div>');function OA(e,t){se(t,!0);let n=F("login"),r=F(""),s=F(""),a=F(""),o=F(null),l=F(!1);async function c(){if(!i(r).trim()||!i(s).trim()||i(l))return;S(l,!0),S(o,null);const _=await Zf(i(r).trim(),i(s).trim());S(l,!1),_.ok?t.onSuccess():S(o,_.error,!0)}async function u(){if(!i(r).trim()||!i(s).trim()||i(l))return;S(l,!0),S(o,null);const _=await M1(i(r).trim(),i(s).trim(),i(a).trim()||void 0);S(l,!1),_.ok?t.onSuccess():S(o,_.error,!0)}function d(_){S(n,_,!0),S(o,null)}var f=zA(),h=p(f),b=w(p(h),2);{var E=_=>{var m=DA(),I=ve(m),R=p(I);ge(R);var T=w(R,2);ge(T);var D=w(T,2),L=p(D,!0);v(D),v(I);var j=w(I,2);{var M=C=>{var P=PA();H("click",P,()=>d("register")),k(C,P)};W(j,C=>{t.selfRegistration&&C(M)})}q(C=>{R.disabled=i(l),T.disabled=i(l),D.disabled=C,O(L,i(l)?"Signing in...":"Sign in")},[()=>i(l)||!i(r).trim()||!i(s).trim()]),Pe("submit",I,C=>{C.preventDefault(),c()}),Se(R,()=>i(r),C=>S(r,C)),Se(T,()=>i(s),C=>S(s,C)),k(_,m)},y=_=>{var m=MA(),I=ve(m),R=p(I);ge(R);var T=w(R,2);ge(T);var D=w(T,2);ge(D);var L=w(D,2),j=p(L,!0);v(L),v(I);var M=w(I,2);q(C=>{R.disabled=i(l),T.disabled=i(l),D.disabled=i(l),L.disabled=C,O(j,i(l)?"Creating...":"Create account")},[()=>i(l)||!i(r).trim()||!i(s).trim()]),Pe("submit",I,C=>{C.preventDefault(),u()}),Se(R,()=>i(r),C=>S(r,C)),Se(T,()=>i(a),C=>S(a,C)),Se(D,()=>i(s),C=>S(s,C)),H("click",M,()=>d("login")),k(_,m)};W(b,_=>{i(n)==="login"?_(E):_(y,-1)})}var g=w(b,2);{var x=_=>{var m=LA(),I=p(m,!0);v(m),q(()=>O(I,i(o))),k(_,m)};W(g,_=>{i(o)&&_(x)})}v(h),v(f),k(e,f),ae()}le(["click"]);async function NA(e){const t=e?.serverUrl??"",n=await X2();n.backends&&(uc("workspace",n.backends.workspace),uc("user",n.backends.user)),n.localOwner&&z1(),sv(t),wk();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)ia("local");else if(s){Ic(t,s),ia(s.tenantId);const{auth:o,session:l}=s;if(!l&&o.required&&!o.guestAllowed){await qA(r,s);const c=await fetch(`${t}/api/boot`,{credentials:"include"});c.ok&&(s=await c.json(),Ic(t,s),ia(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 Us(c);Sl(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)sI(o);if(e?.apps)for(const o of e.apps)Go(o);const a={};e?.excludeShards&&(a.excludeShards=e.excludeShards),await iI(a),Lf(),Be(jA,{target:r})}function qA(e,t){return new Promise(n=>{const r=Be(OA,{target:e,props:{selfRegistration:t.auth.selfRegistration,onSuccess:()=>{Xe(r),n()}}})})}const Rl=window.location.origin;sv(Rl);qf(new W1(Rl));let fh=[];try{const e=await fetch("/api/packages");e.ok&&(fh=await e.json())}catch{}await NA({discoveredPackages:fh,serverUrl:Rl});
|
|
21
|
+
//# sourceMappingURL=index-dcWTOW90.js.map
|