sh3-server 0.13.2 → 0.13.4
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-DmBBvfu7.js +22 -0
- package/app/assets/index-DmBBvfu7.js.map +1 -0
- package/app/assets/index-t9VhuTHe.css +1 -0
- package/app/index.html +2 -2
- package/package.json +1 -1
- package/app/assets/index-B1K1agdD.css +0 -1
- package/app/assets/index-eXElR_9t.js +0 -21
- package/app/assets/index-eXElR_9t.js.map +0 -1
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/tauri-backend-BNhKUiUG.js","assets/index-56jHh6nx.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const a of s)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(s){const a={};return s.integrity&&(a.integrity=s.integrity),s.referrerPolicy&&(a.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?a.credentials="include":s.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(s){if(s.ep)return;s.ep=!0;const a=n(s);fetch(s.href,a)}})();const hv="modulepreload",pv=function(e){return"/"+e},ul={},hr=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=pv(c),c in ul)return;ul[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":hv,u||(f.as="script"),f.crossOrigin="",f.href=c,l&&f.setAttribute("nonce",l),document.head.appendChild(f),u)return new Promise((h,m)=>{f.addEventListener("load",h),f.addEventListener("error",()=>m(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)})},mv=1,bv=2,_c=4,gv=8,_v=16,yv=1,yc=4,wv=8,kv=16,xv=1,Sv=2,Ev=4,Yi=1,wc=2,Iv=4,Av=8,va="[",ha="[!",dl="[?",pa="]",zn={},Re=Symbol(),yt=Symbol("filename"),$n=Symbol("hmr"),kc="http://www.w3.org/1999/xhtml",os="http://www.w3.org/2000/svg",Gi="http://www.w3.org/1998/Math/MathML",xc="@attach",Sc=!1;var Sr=Array.isArray,Cv=Array.prototype.indexOf,pr=Array.prototype.includes,ma=Array.from,Ys=Object.keys,qn=Object.defineProperty,Ht=Object.getOwnPropertyDescriptor,Ec=Object.getOwnPropertyDescriptors,Ic=Object.prototype,Tv=Array.prototype,ba=Object.getPrototypeOf,fl=Object.isExtensible,Rv=Object.prototype.hasOwnProperty;function er(e){return typeof e=="function"}const wt=()=>{};function vl(e){return typeof e?.then=="function"}function Pv(e){return e()}function di(e){for(var t=0;t<e.length;t++)e[t]()}function Ac(){var e,t,n=new Promise((r,s)=>{e=r,t=s});return{promise:n,resolve:e,reject:t}}function jv(e,t,n=!1){return e===void 0?n?t():t:e}function Cc(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 Dv(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 Xe=2,Vn=4,ls=8,Xi=1<<24,Kt=16,Gt=32,fn=64,fi=128,Ot=512,Be=1024,Ge=2048,Xt=4096,ot=8192,pt=16384,pn=32768,vi=1<<25,Jt=65536,Gr=1<<17,Tc=1<<18,Cn=1<<19,Rc=1<<20,tn=1<<25,Bn=65536,hi=1<<21,mr=1<<22,kn=1<<23,et=Symbol("$state"),ga=Symbol("legacy props"),Lv=Symbol(""),Mv=Symbol("proxy path"),Ov=Symbol("hmr anchor"),$t=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},Gn=!!globalThis.document?.contentType&&globalThis.document.contentType.includes("xml"),Pc=1,cs=3,mn=8,jc=11;function Dc(e){throw new Error("https://svelte.dev/e/experimental_async_required")}function Nv(){throw new Error("https://svelte.dev/e/invalid_default_snippet")}function hl(){throw new Error("https://svelte.dev/e/invalid_snippet_arguments")}function Er(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function zv(){throw new Error("https://svelte.dev/e/missing_context")}function qv(){throw new Error("https://svelte.dev/e/snippet_without_render_tag")}function Vv(e){throw new Error("https://svelte.dev/e/store_invalid_shape")}function Bv(){throw new Error("https://svelte.dev/e/svelte_element_invalid_this_value")}function Fv(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Uv(e,t){throw new Error("https://svelte.dev/e/component_api_changed")}function Hv(e,t){throw new Error("https://svelte.dev/e/component_api_invalid_new")}function Kv(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Wv(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Yv(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Gv(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Xv(){throw new Error("https://svelte.dev/e/effect_pending_outside_reaction")}function Jv(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Zv(){throw new Error("https://svelte.dev/e/fork_discarded")}function Qv(){throw new Error("https://svelte.dev/e/fork_timing")}function $v(){throw new Error("https://svelte.dev/e/get_abort_signal_outside_reaction")}function eh(){throw new Error("https://svelte.dev/e/hydration_failed")}function Lc(e){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}function th(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function nh(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function rh(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function sh(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function ah(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}function ih(e,t){console.warn("https://svelte.dev/e/assignment_value_stale")}function oh(e,t){console.warn("https://svelte.dev/e/binding_property_non_reactive")}function lh(e){console.warn("https://svelte.dev/e/console_log_state")}function ch(){console.warn("https://svelte.dev/e/derived_inert")}function uh(e,t){console.warn("https://svelte.dev/e/event_handler_invalid")}function dh(e){console.warn("https://svelte.dev/e/hydratable_missing_but_expected")}function us(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function fh(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_binding")}function vh(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_mutation")}function hh(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function Mc(e){console.warn("https://svelte.dev/e/state_proxy_equality_mismatch")}function ph(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let ee=!1;function Ae(e){ee=e}let ce;function xe(e){if(e===null)throw us(),zn;return ce=e}function ut(){return xe(Et(ce))}function v(e){if(ee){if(Et(ce)!==null)throw us(),zn;ce=e}}function mh(e){ee&&(ce=e.content)}function rn(e=1){if(ee){for(var t=e,n=ce;t--;)n=Et(n);ce=n}}function Fn(e=!0){for(var t=0,n=ce;;){if(n.nodeType===mn){var r=n.data;if(r===pa){if(t===0)return n;t-=1}else(r===va||r===ha||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var s=Et(n);e&&n.remove(),n=s}}function Ji(e){if(!e||e.nodeType!==mn)throw us(),zn;return e.data}function Oc(e){return e===this.v}function Nc(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function zc(e){return!Nc(e,this.v)}let bh=!1;function gh(e){console.warn("https://svelte.dev/e/dynamic_void_element_content")}const _h=[];function Un(e,t=!1,n=!1){return js(e,new Map,"",_h,null,n)}function js(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(Sr(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]=js(u,t,n,r,null,a))}return l}if(ba(e)===Ic){l={},t.set(e,l),s!==null&&t.set(s,l);for(var d of Object.keys(e))l[d]=js(e[d],t,n,r,null,a);return l}if(e instanceof Date)return structuredClone(e);if(typeof e.toJSON=="function"&&!a)return js(e.toJSON(),t,n,r,e)}if(e instanceof EventTarget)return e;try{return structuredClone(e)}catch{return e}}let Jn=null;function qc(e,t){const n=e.v;if(n===Re)return;const r=yh(e),s=be,a=e.wv>s.wv||s.wv===0,o=a?"color: CornflowerBlue; font-weight: bold":"color: grey; font-weight: normal";if(console.groupCollapsed(e.label?`%c${r}%c ${e.label}`:`%c${r}%c`,o,a?"font-weight: normal":o,typeof n=="object"&&n!==null&&et in n?Un(n,!0):n),r==="$derived"){const c=new Set(e.deps);for(const u of c)qc(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 yh(e){return e.f&(Xe|mr)?"$derived":e.label?.startsWith("$")?"store":"$state"}function wh(e,t){var n=Jn;try{Jn={entries:new Map,reaction:be};var r=performance.now(),s=t(),a=(performance.now()-r).toFixed(2),o=Ce(e);if(!ps())console.log(`${o} %cran outside of an effect (${a}ms)`,"color: grey");else if(Jn.entries.size===0)console.log(`${o} %cno reactive dependencies (${a}ms)`,"color: grey");else{console.group(`${o} %c(${a}ms)`,"color: grey");var l=Jn.entries;Ce(()=>{for(const[c,u]of l)qc(c,u)}),Jn=null,console.groupEnd()}return s}finally{Jn=n}}function kh(e,t){return e.label=t,Vc(e.v,t),e}function Vc(e,t){return e?.[Mv]?.(t),e}function xh(e){const t=new Error,n=Sh();return n.length===0?null:(n.unshift(`
|
|
3
|
-
`),qn(t,"stack",{value:n.join(`
|
|
4
|
-
`)}),qn(t,"name",{value:e}),t)}function Sh(){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 ke=null;function br(e){ke=e}let Ds=null;function Eh(e,t,n,r,s,a){const o=Ds;Ds={type:t,file:n[yt],line:r,column:s,parent:o,...a};try{return e()}finally{Ds=o}}let Zi=null;function pl(e){Zi=e}function Ih(){const e={};return[()=>(Bc(e)||zv(),Qi(e)),t=>$i(e,t)]}function Qi(e){return _a().get(e)}function $i(e,t){return _a().set(e,t),t}function Bc(e){return _a().has(e)}function Ah(){return _a()}function re(e,t=!1,n){ke={p:ke,i:!1,c:null,e:null,s:e,x:null,r:ue,l:null}}function se(e){var t=ke,n=t.e;if(n!==null){t.e=null;for(var r of n)pu(r)}return e!==void 0&&(t.x=e),t.i=!0,ke=t.p,e??{}}function Fc(){return!0}function _a(e){return ke===null&&Er(),ke.c??=new Map(Ch(ke)||void 0)}function Ch(e){let t=e.p;for(;t!==null;){const n=t.c;if(n!==null)return n;t=t.p}return null}let jn=[];function Uc(){var e=jn;jn=[],di(e)}function lt(e){if(jn.length===0&&!lr){var t=jn;queueMicrotask(()=>{t===jn&&Uc()})}jn.push(e)}function Th(){for(;jn.length>0;)Uc()}function Hc(e){var t=ue;if(t===null)return be.f|=kn,e;if(!(t.f&pn)&&!(t.f&Vn))throw e;nn(e,t)}function nn(e,t){for(;t!==null;){if(t.f&fi){if(!(t.f&pn))throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const Rh=-7169;function je(e,t){e.f=e.f&Rh|t}function eo(e){e.f&Ot||e.deps===null?je(e,Be):je(e,Xt)}function Kc(e){if(e!==null)for(const t of e)!(t.f&Xe)||!(t.f&Bn)||(t.f^=Bn,Kc(t.deps))}function Wc(e,t,n){e.f&Ge?t.add(e):e.f&Xt&&n.add(e),Kc(e.deps),je(e,Be)}function Yc(e,t,n){if(e==null)return t(void 0),wt;const r=Ce(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}function Ph(e){let t;return Yc(e,n=>t=n)(),t}let pi=!1,qr=!1,mi=Symbol();function jh(e,t,n){const r=n[t]??={store:null,source:ka(void 0),unsubscribe:wt};if(r.store!==e&&!(mi in n))if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=wt;else{var s=!0;r.unsubscribe=Yc(e,a=>{s?r.source.v=a:x(r.source,a)}),s=!1}return e&&mi in n?Ph(e):i(r.source)}function Dh(e,t,n){let r=n[t];return r&&r.store!==e&&(r.unsubscribe(),r.unsubscribe=wt),e}function Gc(e,t){return ya(e,t),t}function Lh(e,t){var n=e[t];n.store!==null&&Gc(n.store,n.source.v)}function Mh(){const e={};function t(){At(()=>{for(var n in e)e[n].unsubscribe();qn(e,mi,{enumerable:!1,value:!0})})}return[e,t]}function ya(e,t){pi=!0;try{e.set(t)}finally{pi=!1}}function Oh(e,t,n){return ya(e,n),t}function Nh(e,t,n=1){return ya(e,t+n),t}function zh(e,t,n=1){const r=t+n;return ya(e,r),r}function qh(){qr=!0}function Xc(e){var t=qr;try{return qr=!1,[e(),qr]}finally{qr=t}}const un=new Set;let he=null,it=null,bi=null,lr=!1,$a=!1,sr=null,Ls=null;var ml=0;let Vh=1;class qt{id=Vh++;current=new Map;previous=new Map;#e=new Set;#t=new Set;#n=new Set;#a=new Map;#s=new Map;#i=null;#r=[];#o=[];#l=new Set;#u=new Set;#c=new Map;#f=new Set;is_fork=!1;#h=!1;#v=new Set;#d(){return this.is_fork||this.#s.size>0}#g(){for(const r of this.#v)for(const s of r.#s.keys()){for(var t=!1,n=s;n.parent!==null;){if(this.#c.has(n)){t=!0;break}n=n.parent}if(!t)return!0}return!1}skip_effect(t){this.#c.has(t)||this.#c.set(t,{d:[],m:[]}),this.#f.delete(t)}unskip_effect(t,n=r=>this.schedule(r)){var r=this.#c.get(t);if(r){this.#c.delete(t);for(var s of r.d)je(s,Ge),n(s);for(s of r.m)je(s,Xt),n(s)}this.#f.add(t)}#p(){if(ml++>1e3&&(un.delete(this),Bh()),!this.#d()){for(const l of this.#l)this.#u.delete(l),je(l,Ge),this.schedule(l);for(const l of this.#u)je(l,Xt),this.schedule(l)}const t=this.#r;this.#r=[],this.apply();var n=sr=[],r=[],s=Ls=[];for(const l of t)try{this.#b(l,n,r)}catch(c){throw $c(l),c}if(he=null,s.length>0){var a=qt.ensure();for(const l of s)a.schedule(l)}if(sr=null,Ls=null,this.#d()||this.#g()){this.#m(r),this.#m(n);for(const[l,c]of this.#c)Qc(l,c)}else{this.#a.size===0&&un.delete(this),this.#l.clear(),this.#u.clear();for(const l of this.#e)l(this);this.#e.clear(),bl(r),bl(n),this.#i?.resolve()}var o=he;if(this.#r.length>0){const l=o??=this;l.#r.push(...this.#r.filter(c=>!l.#r.includes(c)))}o!==null&&(un.add(o),o.#p())}#b(t,n,r){t.f^=Be;for(var s=t.first;s!==null;){var a=s.f,o=(a&(Gt|fn))!==0,l=o&&(a&Be)!==0,c=l||(a&ot)!==0||this.#c.has(s);if(!c&&s.fn!==null){o?s.f^=Be:a&Vn?n.push(s):Ar(s)&&(a&Kt&&this.#u.add(s),Kn(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)Wc(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&kn||(this.current.set(t,[n,r]),it?.set(t,n)),this.is_fork||(t.v=n)}activate(){he=this}deactivate(){he=null,it=null}flush(){try{$a=!0,he=this,this.#p()}finally{ml=0,bi=null,sr=null,Ls=null,$a=!1,he=null,it=null,Mn.clear()}}discard(){for(const t of this.#t)t(this);this.#t.clear(),this.#n.clear(),un.delete(this)}register_created_effect(t){this.#o.push(t)}#_(){for(const d of un){var t=d.id<this.id,n=[];for(const[f,[h,m]]of this.current){if(d.current.has(f)){var r=d.current.get(f)[0];if(t&&h!==r)d.current.set(f,[h,m]);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&(Kt|mr)?d.schedule(h):d.#m([h])});d.activate();var a=new Set,o=new Map;for(var l of n)Jc(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&(pt|ot|Gr))&&to(f,c,o)&&(f.f&(mr|Kt)?(je(f,Ge),d.schedule(f)):d.#l.add(f));if(d.#r.length>0){d.apply();for(var u of d.#r)d.#b(u,[],[]);d.#r=[]}d.deactivate()}}for(const d of un)d.#v.has(this)&&(d.#v.delete(this),d.#v.size===0&&!d.#d()&&(d.activate(),d.#p()))}increment(t,n){let r=this.#a.get(n)??0;if(this.#a.set(n,r+1),t){let s=this.#s.get(n)??0;this.#s.set(n,s+1)}}decrement(t,n,r){let s=this.#a.get(n)??0;if(s===1?this.#a.delete(n):this.#a.set(n,s-1),t){let a=this.#s.get(n)??0;a===1?this.#s.delete(n):this.#s.set(n,a-1)}this.#h||r||(this.#h=!0,lt(()=>{this.#h=!1,this.flush()}))}transfer_effects(t,n){for(const r of t)this.#l.add(r);for(const r of n)this.#u.add(r);t.clear(),n.clear()}oncommit(t){this.#e.add(t)}ondiscard(t){this.#t.add(t)}on_fork_commit(t){this.#n.add(t)}run_fork_commit_callbacks(){for(const t of this.#n)t(this);this.#n.clear()}settled(){return(this.#i??=Ac()).promise}static ensure(){if(he===null){const t=he=new qt;$a||(un.add(he),lr||lt(()=>{he===t&&t.flush()}))}return he}apply(){{it=null;return}}schedule(t){if(bi=t,t.b?.is_pending&&t.f&(Vn|ls|Xi)&&!(t.f&pn)){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var r=n.f;if(sr!==null&&n===ue&&(be===null||!(be.f&Xe))&&!pi)return;if(r&(fn|Gt)){if(!(r&Be))return;n.f^=Be}}this.#r.push(n)}}function Sn(e){var t=lr;lr=!0;try{var n;for(e&&(he!==null&&!he.is_fork&&he.flush(),n=e());;){if(Th(),he===null)return n;he.flush()}}finally{lr=t}}function Bh(){try{Jv()}catch(e){nn(e,bi)}}let dn=null;function bl(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&(pt|ot))&&Ar(r)&&(dn=new Set,Kn(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&wu(r),dn?.size>0)){Mn.clear();for(const s of dn){if(s.f&(pt|ot))continue;const a=[s];let o=s.parent;for(;o!==null;)dn.has(o)&&(dn.delete(o),a.push(o)),o=o.parent;for(let l=a.length-1;l>=0;l--){const c=a[l];c.f&(pt|ot)||Kn(c)}}dn.clear()}}dn=null}}function Jc(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&Xe?Jc(s,t,n,r):a&(mr|Kt)&&!(a&Ge)&&to(s,t,r)&&(je(s,Ge),no(s))}}function Zc(e,t){if(e.reactions!==null)for(const n of e.reactions){const r=n.f;r&Xe?Zc(n,t):r&Gr&&(je(n,Ge),t.add(n))}}function to(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(pr.call(t,s))return!0;if(s.f&Xe&&to(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function no(e){he.schedule(e)}let Gs=[];function Fh(){Sn(()=>{const e=Gs;Gs=[];for(const t of e)gr(t)})}function Uh(e){var t=St(0),n=!0,r=void 0;return i(t),bu(()=>{if(n){var s=it;try{it=null,r=e()}finally{it=s}return}Gs.length===0&<(Fh),Gs.push(t)}),n=!1,r}function Qc(e,t){if(!(e.f&Gt&&e.f&Be)){e.f&Ge?t.d.push(e):e.f&Xt&&t.m.push(e),je(e,Be);for(var n=e.first;n!==null;)Qc(n,t),n=n.next}}function $c(e){je(e,Be);for(var t=e.first;t!==null;)$c(t),t=t.next}function Hh(e){Dc(),he!==null&&Qv();var t=qt.ensure();t.is_fork=!0,it=new Map;var n=!1,r=t.settled();return Sn(e),{commit:async()=>{if(n){await r;return}un.has(t)||Zv(),n=!0,t.is_fork=!1;for(var[s,[a]]of t.current)s.v=a,s.wv=Js();t.activate(),t.run_fork_commit_callbacks(),t.deactivate(),Sn(()=>{var o=new Set;for(var l of t.current.keys())Zc(l,o);tp(o),iu()}),t.flush(),await r},discard:()=>{for(var s of t.current.keys())s.wv=Js();!n&&un.has(t)&&t.discard()}}}function Kh(e){let t=0,n=St(0),r;return()=>{ps()&&(i(n),ze(()=>(t===0&&(r=Ce(()=>e(()=>Ur(n)))),t+=1,()=>{lt(()=>{t-=1,t===0&&(r?.(),r=void 0,Ur(n))})})))}}var Wh=Jt|Cn;function eu(e,t,n,r){new Yh(e,t,n,r)}class Yh{parent;is_pending=!1;transform_error;#e;#t=ee?ce:null;#n;#a;#s;#i=null;#r=null;#o=null;#l=null;#u=0;#c=0;#f=!1;#h=new Set;#v=new Set;#d=null;#g=Kh(()=>(this.#d=St(this.#u),()=>{this.#d=null}));constructor(t,n,r,s){this.#e=t,this.#n=n,this.#a=a=>{var o=ue;o.b=this,o.f|=fi,r(a)},this.parent=ue.b,this.transform_error=s??this.parent?.transform_error??(a=>a),this.#s=cn(()=>{if(ee){const a=this.#t;ut();const o=a.data===ha;if(a.data.startsWith(dl)){const c=JSON.parse(a.data.slice(dl.length));this.#b(c)}else o?this.#m():this.#p()}else this.#_()},Wh),ee&&(this.#e=ce)}#p(){try{this.#i=st(()=>this.#a(this.#e))}catch(t){this.error(t)}}#b(t){const n=this.#n.failed;n&&(this.#o=st(()=>{n(this.#e,()=>t,()=>()=>{})}))}#m(){const t=this.#n.pending;t&&(this.is_pending=!0,this.#r=st(()=>t(this.#e)),lt(()=>{var n=this.#l=document.createDocumentFragment(),r=Je();n.append(r),this.#i=this.#w(()=>st(()=>this.#a(r))),this.#c===0&&(this.#e.before(n),this.#l=null,On(this.#r,()=>{this.#r=null}),this.#y(he))}))}#_(){try{if(this.is_pending=this.has_pending_snippet(),this.#c=0,this.#u=0,this.#i=st(()=>{this.#a(this.#e)}),this.#c>0){var t=this.#l=document.createDocumentFragment();fo(this.#i,t);const n=this.#n.pending;this.#r=st(()=>n(this.#e))}else this.#y(he)}catch(n){this.error(n)}}#y(t){this.is_pending=!1,t.transfer_effects(this.#h,this.#v)}defer_effect(t){Wc(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=ue,r=be,s=ke;rt(this.#s),mt(this.#s),br(this.#s.ctx);try{return qt.ensure(),t()}catch(a){return Hc(a),null}finally{rt(n),mt(r),br(s)}}#k(t,n){if(!this.has_pending_snippet()){this.parent&&this.parent.#k(t,n);return}this.#c+=t,this.#c===0&&(this.#y(n),this.#r&&On(this.#r,()=>{this.#r=null}),this.#l&&(this.#e.before(this.#l),this.#l=null))}update_pending_count(t,n){this.#k(t,n),this.#u+=t,!(!this.#d||this.#f)&&(this.#f=!0,lt(()=>{this.#f=!1,this.#d&&sn(this.#d,this.#u)}))}get_effect_pending(){return this.#g(),i(this.#d)}error(t){if(!this.#n.onerror&&!this.#n.failed)throw t;he?.is_fork?(this.#i&&he.skip_effect(this.#i),this.#r&&he.skip_effect(this.#r),this.#o&&he.skip_effect(this.#o),he.on_fork_commit(()=>{this.#x(t)})):this.#x(t)}#x(t){this.#i&&(He(this.#i),this.#i=null),this.#r&&(He(this.#r),this.#r=null),this.#o&&(He(this.#o),this.#o=null),ee&&(xe(this.#t),rn(),xe(Fn()));var n=this.#n.onerror;let r=this.#n.failed;var s=!1,a=!1;const o=()=>{if(s){ph();return}s=!0,a&&ah(),this.#o!==null&&On(this.#o,()=>{this.#o=null}),this.#w(()=>{this.#_()})},l=c=>{try{a=!0,n?.(c,o),a=!1}catch(u){nn(u,this.#s&&this.#s.parent)}r&&(this.#o=this.#w(()=>{try{return st(()=>{var u=ue;u.b=this,u.f|=fi,r(this.#e,()=>c,()=>o)})}catch(u){return nn(u,this.#s.parent),null}}))};lt(()=>{var c;try{c=this.transform_error(t)}catch(u){nn(u,this.#s&&this.#s.parent);return}c!==null&&typeof c=="object"&&typeof c.then=="function"?c.then(l,u=>nn(u,this.#s&&this.#s.parent)):l(c)})}}function Gh(){ue===null&&Xv();var e=ue.b;return e===null?0:e.get_effect_pending()}function ds(e,t,n,r){const s=vs;var a=e.filter(h=>!h.settled);if(n.length===0&&a.length===0){r(t.map(s));return}var o=ue,l=wa(),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(m){o.f&pt||nn(m,o)}Hn()}if(n.length===0){c.then(()=>u(t.map(s)));return}var d=fs();function f(){Promise.all(n.map(h=>nu(h))).then(h=>u([...t.map(s),...h])).catch(h=>nn(h,o)).finally(()=>d())}c?c.then(()=>{l(),f(),Hn()}):f()}function tu(e,t){ds(e,[],[],t)}function wa(){var e=ue,t=be,n=ke,r=he;return function(a=!0){rt(e),mt(t),br(n),a&&!(e.f&pt)&&(r?.activate(),r?.apply())}}async function Xh(e){var t=wa(),n=await e;return()=>(t(),n)}async function gi(e){var t=Fr;queueMicrotask(()=>{Fr===t&&Ms(null)});var n=await e;return()=>(Ms(t),queueMicrotask(()=>{Fr===t&&Ms(null)}),n)}async function*Jh(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 gi(t.next()))();if(s){n=!0;break}var r=Fr;yield a,Ms(r)}}finally{if(!n&&t.return!==void 0)return(await gi(t.return()))().value}}function Hn(e=!0){rt(null),mt(null),br(null),e&&he?.deactivate()}function Zh(e){const t=wa(),n=fs();var r=ue,s=null;const a=u=>{s={error:u},wi(r)||nn(u,r)};var o=Promise.resolve(e[0]()).catch(a),l={promise:o,settled:!1},c=[l];o.finally(()=>{l.settled=!0,Hn()});for(const u of e.slice(1)){o=o.then(()=>{if(t(),s)throw s.error;if(wi(r))throw $t;return u()}).catch(a);const d={promise:o,settled:!1};c.push(d),o.finally(()=>{d.settled=!0,Hn()})}return o.then(()=>Promise.resolve()).finally(()=>n()),c}function Qh(e){return Promise.all(e.map(t=>t.promise))}function fs(){var e=ue,t=e.b,n=he,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 Fr=null;function Ms(e){Fr=e}function vs(e){var t=Xe|Ge;return ue!==null&&(ue.f|=Cn),{ctx:ke,deps:null,effects:null,equals:Oc,f:t,fn:e,reactions:null,rv:0,v:Re,wv:0,parent:ue,ac:null}}function nu(e,t,n){let r=ue;r===null&&Fv();var s=void 0,a=St(Re),o=!be,l=new Map;return fp(()=>{var c=ue,u=Ac();s=u.promise;try{Promise.resolve(e()).then(u.resolve,u.reject).finally(Hn)}catch(m){u.reject(m),Hn()}var d=he;if(o){if(c.f&pn)var f=fs();if(r.b.is_rendered())l.get(d)?.reject($t),l.delete(d);else{for(const m of l.values())m.reject($t);l.clear()}l.set(d,u)}const h=(m,I=void 0)=>{if(f){var g=I===$t;f(g)}if(!(I===$t||c.f&pt)){if(d.activate(),I)a.f|=kn,sn(a,I);else{a.f&kn&&(a.f^=kn),sn(a,m);for(const[y,w]of l){if(l.delete(y),y===d)break;w.reject($t)}}d.deactivate()}};u.promise.then(h,m=>h(null,m||"unknown"))}),At(()=>{for(const c of l.values())c.reject($t)}),new Promise(c=>{function u(d){function f(){d===s?c(a):u(s)}d.then(f,f)}u(s)})}function H(e){const t=vs(e);return Su(t),t}function ro(e){const t=vs(e);return t.equals=zc,t}function $h(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)He(t[n])}}function so(e){var t,n=ue,r=e.parent;if(!vn&&r!==null&&r.f&(pt|ot))return ch(),e.v;rt(r);try{e.f&=~Bn,$h(e),t=Au(e)}finally{rt(n)}return t}function ru(e){var t=so(e);if(!e.equals(t)&&(e.wv=Js(),(!he?.is_fork||e.deps===null)&&(he!==null?he.capture(e,t,!0):e.v=t,e.deps===null))){je(e,Be);return}vn||(it!==null?(ps()||he?.is_fork)&&it.set(e,t):eo(e))}function ep(e){if(e.effects!==null)for(const t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort($t),t.teardown=wt,t.ac=null,Xr(t,0),co(t))}function su(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&Kn(t)}let Xs=new Set;const Mn=new Map;function tp(e){Xs=e}let au=!1;function St(e,t){var n={f:0,v:e,reactions:null,equals:Oc,rv:0,wv:0};return n}function V(e,t){const n=St(e);return Su(n),n}function ka(e,t=!1,n=!0){const r=St(e);return t||(r.equals=zc),r}function np(e,t){return x(e,Ce(()=>i(e))),t}function x(e,t,n=!1){be!==null&&(!Ut||be.f&Gr)&&Fc()&&be.f&(Xe|Kt|mr|Gr)&&(Nt===null||!pr.call(Nt,e))&&sh();let r=n?ie(t):t;return sn(e,r,Ls)}function sn(e,t,n=null){if(!e.equals(t)){Mn.set(e,vn?t:e.v);var r=qt.ensure();if(r.capture(e,t),e.f&Xe){const s=e;e.f&Ge&&so(s),it===null&&eo(s)}e.wv=Js(),ou(e,Ge,n),ue!==null&&ue.f&Be&&!(ue.f&(Gt|fn))&&(Dt===null?bp([e]):Dt.push(e)),!r.is_fork&&Xs.size>0&&!au&&iu()}return t}function iu(){au=!1;for(const e of Xs)e.f&Be&&je(e,Xt),Ar(e)&&Kn(e);Xs.clear()}function gr(e,t=1){var n=i(e),r=t===1?n++:n--;return x(e,n),r}function rp(e,t=1){var n=i(e);return x(e,t===1?++n:--n)}function Ur(e){x(e,e.v+1)}function ou(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&Ge)===0;if(c&&je(o,t),l&Xe){var u=o;it?.delete(u),l&Bn||(l&Ot&&(o.f|=Bn),ou(u,Xt,n))}else if(c){var d=o;l&Kt&&dn!==null&&dn.add(d),n!==null?n.push(d):no(d)}}}function ie(e){if(typeof e!="object"||e===null||et in e)return e;const t=ba(e);if(t!==Ic&&t!==Tv)return e;var n=new Map,r=Sr(e),s=V(0),a=Nn,o=l=>{if(Nn===a)return l();var c=be,u=Nn;mt(null),yl(a);var d=l();return mt(c),yl(u),d};return r&&n.set("length",V(e.length)),new Proxy(e,{defineProperty(l,c,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&nh();var d=n.get(c);return d===void 0?o(()=>{var f=V(u.value);return n.set(c,f),f}):x(d,u.value,!0),!0},deleteProperty(l,c){var u=n.get(c);if(u===void 0){if(c in l){const d=o(()=>V(Re));n.set(c,d),Ur(s)}}else x(u,Re),Ur(s);return!0},get(l,c,u){if(c===et)return e;var d=n.get(c),f=c in l;if(d===void 0&&(!f||Ht(l,c)?.writable)&&(d=o(()=>{var m=ie(f?l[c]:Re),I=V(m);return I}),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===et)return!0;var u=n.get(c),d=u!==void 0&&u.v!==Re||Reflect.has(l,c);if(u!==void 0||ue!==null&&(!d||Ht(l,c)?.writable)){u===void 0&&(u=o(()=>{var h=d?ie(l[c]):Re,m=V(h);return m}),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 m=u;m<f.v;m+=1){var I=n.get(m+"");I!==void 0?x(I,Re):m in l&&(I=o(()=>V(Re)),n.set(m+"",I))}if(f===void 0)(!h||Ht(l,c)?.writable)&&(f=o(()=>V(void 0)),x(f,ie(u)),n.set(c,f));else{h=f.v!==Re;var g=o(()=>ie(u));x(f,g)}var y=Reflect.getOwnPropertyDescriptor(l,c);if(y?.set&&y.set.call(d,u),!h){if(r&&typeof c=="string"){var w=n.get("length"),_=Number(c);Number.isInteger(_)&&_>=w.v&&x(w,_+1)}Ur(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(){rh()}})}function _r(e){try{if(e!==null&&typeof e=="object"&&et in e)return e[et]}catch{}return e}function lu(e,t){return Object.is(_r(e),_r(t))}function sp(e,t,n=!0){try{e===t!=(_r(e)===_r(t))&&Mc(n?"===":"!==")}catch{}return e===t===n}function ap(e,t,n=!0){return e==t!=(_r(e)==_r(t))&&Mc(),e==t===n}var _i,cu,ao,uu,du;function yi(){if(_i===void 0){_i=window,cu=document,ao=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;uu=Ht(t,"firstChild").get,du=Ht(t,"nextSibling").get,fl(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),fl(n)&&(n.__t=void 0)}}function Je(e=""){return document.createTextNode(e)}function Pe(e){return uu.call(e)}function Et(e){return du.call(e)}function p(e,t){if(!ee)return Pe(e);var n=Pe(ce);if(n===null)n=ce.appendChild(Je());else if(t&&n.nodeType!==cs){var r=Je();return n?.before(r),xe(r),r}return t&&xa(n),xe(n),n}function pe(e,t=!1){if(!ee){var n=Pe(e);return n instanceof Comment&&n.data===""?Et(n):n}if(t){if(ce?.nodeType!==cs){var r=Je();return ce?.before(r),xe(r),r}xa(ce)}return ce}function k(e,t=1,n=!1){let r=ee?ce:e;for(var s;t--;)s=r,r=Et(r);if(!ee)return r;if(n){if(r?.nodeType!==cs){var a=Je();return r===null?s?.after(a):r.before(a),xe(a),a}xa(r)}return xe(r),r}function io(e){e.textContent=""}function fu(){return!1}function Tn(e,t,n){let r=n?{is:n}:void 0;return document.createElementNS(t??kc,e,r)}function ip(){return document.createDocumentFragment()}function vu(e=""){return document.createComment(e)}function op(e,t,n=""){if(t.startsWith("xlink:")){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n);return}return e.setAttribute(t,n)}function xa(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===cs;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function Ir(e,t){if(t){const n=document.body;e.autofocus=!0,lt(()=>{document.activeElement===n&&e.focus()})}}function oo(e){ee&&Pe(e)!==null&&io(e)}let gl=!1;function hu(){gl||(gl=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function bt(e,t,n,r=!0){r&&n();for(var s of t)e.addEventListener(s,n);At(()=>{for(var a of t)e.removeEventListener(a,n)})}function Rn(e){var t=be,n=ue;mt(null),rt(null);try{return e()}finally{mt(t),rt(n)}}function hs(e,t,n,r=n){e.addEventListener(t,()=>Rn(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),hu()}function lo(e){ue===null&&(be===null&&Gv(),Yv()),vn&&Wv()}function lp(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function gt(e,t){var n=ue;n!==null&&n.f&ot&&(e|=ot);var r={ctx:ke,deps:null,nodes:null,f:e|Ge|Ot,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};he?.register_created_effect(r);var s=r;if(e&Vn)sr!==null?sr.push(r):qt.ensure().schedule(r);else if(t!==null){try{Kn(r)}catch(o){throw He(r),o}s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&!(s.f&Cn)&&(s=s.first,e&Kt&&e&Jt&&s!==null&&(s.f|=Jt))}if(s!==null&&(s.parent=n,n!==null&&lp(s,n),be!==null&&be.f&Xe&&!(e&fn))){var a=be;(a.effects??=[]).push(s)}return r}function ps(){return be!==null&&!Ut}function At(e){const t=gt(ls,null);return je(t,Be),t.teardown=e,t}function Ie(e){lo();var t=ue.f,n=!be&&(t&Gt)!==0&&(t&pn)===0;if(n){var r=ke;(r.e??=[]).push(e)}else return pu(e)}function pu(e){return gt(Vn|Rc,e)}function mu(e){return lo(),gt(ls|Rc,e)}function bu(e){return gt(Gr,e)}function ms(e){qt.ensure();const t=gt(fn|Cn,e);return()=>{He(t)}}function cp(e){qt.ensure();const t=gt(fn|Cn,e);return(n={})=>new Promise(r=>{n.outro?On(t,()=>{He(t),r(void 0)}):(He(t),r(void 0))})}function It(e){return gt(Vn,e)}function up(e,t){var n=ke,r={effect:null,ran:!1,deps:e};n.l.$.push(r),r.effect=ze(()=>{if(e(),!r.ran){r.ran=!0;var s=ue;try{rt(s.parent),Ce(t)}finally{rt(s)}}})}function dp(){var e=ke;ze(()=>{for(var t of e.l.$){t.deps();var n=t.effect;n.f&Be&&n.deps!==null&&je(n,Xt),Ar(n)&&Kn(n),t.ran=!1}})}function fp(e){return gt(mr|Cn,e)}function ze(e,t=0){return gt(ls|t,e)}function z(e,t=[],n=[],r=[]){ds(r,t,n,s=>{gt(ls,()=>e(...s.map(i)))})}function vp(e,t=[],n=[],r=[]){if(n.length>0||r.length>0)var s=fs();ds(r,t,n,a=>{gt(Vn,()=>e(...a.map(i))),s&&s()})}function cn(e,t=0){var n=gt(Kt|t,e);return n}function gu(e,t=0){var n=gt(Xi|t,e);return n}function st(e){return gt(Gt|Cn,e)}function _u(e){var t=e.teardown;if(t!==null){const n=vn,r=be;_l(!0),mt(null);try{t.call(null)}finally{_l(n),mt(r)}}}function co(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&Rn(()=>{s.abort($t)});var r=n.next;n.f&fn?n.parent=null:He(n,t),n=r}}function hp(e){for(var t=e.first;t!==null;){var n=t.next;t.f&Gt||He(t),t=n}}function He(e,t=!0){var n=!1;(t||e.f&Tc)&&e.nodes!==null&&e.nodes.end!==null&&(yu(e.nodes.start,e.nodes.end),n=!0),je(e,vi),co(e,t&&!n),Xr(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const a of r)a.stop();_u(e),e.f^=vi,e.f|=pt;var s=e.parent;s!==null&&s.first!==null&&wu(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function yu(e,t){for(;e!==null;){var n=e===t?null:Et(e);e.remove(),e=n}}function wu(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 On(e,t,n=!0){var r=[];ku(e,r,!0);var s=()=>{n&&He(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||s();for(var l of r)l.out(o)}else s()}function ku(e,t,n){if(!(e.f&ot)){e.f^=ot;var r=e.nodes&&e.nodes.t;if(r!==null)for(const l of r)(l.is_global||n)&&t.push(l);for(var s=e.first;s!==null;){var a=s.next;if(!(s.f&fn)){var o=(s.f&Jt)!==0||(s.f&Gt)!==0&&(e.f&Kt)!==0;ku(s,t,o?n:!1)}s=a}}}function uo(e){xu(e,!0)}function xu(e,t){if(e.f&ot){e.f^=ot,e.f&Be||(je(e,Ge),qt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&Jt)!==0||(n.f&Gt)!==0;xu(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 wi(e=ue){return(e.f&pt)!==0}function fo(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:Et(n);t.append(n),n=s}}let tr=null;function pp(e){var t=tr;try{if(tr=new Set,Ce(e),t!==null)for(var n of tr)t.add(n);return tr}finally{tr=t}}function mp(e){for(var t of pp(e))sn(t,t.v)}let Os=!1,vn=!1;function _l(e){vn=e}let be=null,Ut=!1;function mt(e){be=e}let ue=null;function rt(e){ue=e}let Nt=null;function Su(e){be!==null&&(Nt===null?Nt=[e]:Nt.push(e))}let vt=null,_t=0,Dt=null;function bp(e){Dt=e}let Eu=1,Dn=0,Nn=Dn;function yl(e){Nn=e}function Js(){return++Eu}function Ar(e){var t=e.f;if(t&Ge)return!0;if(t&Xe&&(e.f&=~Bn),t&Xt){for(var n=e.deps,r=n.length,s=0;s<r;s++){var a=n[s];if(Ar(a)&&ru(a),a.wv>e.wv)return!0}t&Ot&&it===null&&je(e,Be)}return!1}function Iu(e,t,n=!0){var r=e.reactions;if(r!==null&&!(Nt!==null&&pr.call(Nt,e)))for(var s=0;s<r.length;s++){var a=r[s];a.f&Xe?Iu(a,t,!1):t===a&&(n?je(a,Ge):a.f&Be&&je(a,Xt),no(a))}}function Au(e){var t=vt,n=_t,r=Dt,s=be,a=Nt,o=ke,l=Ut,c=Nn,u=e.f;vt=null,_t=0,Dt=null,be=u&(Gt|fn)?null:e,Nt=null,br(e.ctx),Ut=!1,Nn=++Dn,e.ac!==null&&(Rn(()=>{e.ac.abort($t)}),e.ac=null);try{e.f|=hi;var d=e.fn,f=d();e.f|=pn;var h=e.deps,m=he?.is_fork;if(vt!==null){var I;if(m||Xr(e,_t),h!==null&&_t>0)for(h.length=_t+vt.length,I=0;I<vt.length;I++)h[_t+I]=vt[I];else e.deps=h=vt;if(ps()&&e.f&Ot)for(I=_t;I<h.length;I++)(h[I].reactions??=[]).push(e)}else!m&&h!==null&&_t<h.length&&(Xr(e,_t),h.length=_t);if(Fc()&&Dt!==null&&!Ut&&h!==null&&!(e.f&(Xe|Xt|Ge)))for(I=0;I<Dt.length;I++)Iu(Dt[I],e);if(s!==null&&s!==e){if(Dn++,s.deps!==null)for(let g=0;g<n;g+=1)s.deps[g].rv=Dn;if(t!==null)for(const g of t)g.rv=Dn;Dt!==null&&(r===null?r=Dt:r.push(...Dt))}return e.f&kn&&(e.f^=kn),f}catch(g){return Hc(g)}finally{e.f^=hi,vt=t,_t=n,Dt=r,be=s,Nt=a,br(o),Ut=l,Nn=c}}function gp(e,t){let n=t.reactions;if(n!==null){var r=Cv.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&Xe&&(vt===null||!pr.call(vt,t))){var a=t;a.f&Ot&&(a.f^=Ot,a.f&=~Bn),a.v!==Re&&eo(a),ep(a),Xr(a,0)}}function Xr(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)gp(e,n[r])}function Kn(e){var t=e.f;if(!(t&pt)){je(e,Be);var n=ue,r=Os;ue=e,Os=!0;try{t&(Kt|Xi)?hp(e):co(e),_u(e);var s=Au(e);e.teardown=typeof s=="function"?s:null,e.wv=Eu;var a;Sc&&bh&&e.f&Ge&&e.deps}finally{Os=r,ue=n}}}async function bs(){await Promise.resolve(),Sn()}function _p(){return qt.ensure().settled()}function i(e){var t=e.f,n=(t&Xe)!==0;if(tr?.add(e),be!==null&&!Ut){var r=ue!==null&&(ue.f&pt)!==0;if(!r&&(Nt===null||!pr.call(Nt,e))){var s=be.deps;if(be.f&hi)e.rv<Dn&&(e.rv=Dn,vt===null&&s!==null&&s[_t]===e?_t++:vt===null?vt=[e]:vt.push(e));else{(be.deps??=[]).push(e);var a=e.reactions;a===null?e.reactions=[be]:pr.call(a,be)||a.push(be)}}}if(vn&&Mn.has(e))return Mn.get(e);if(n){var o=e;if(vn){var l=o.v;return(!(o.f&Be)&&o.reactions!==null||Tu(o))&&(l=so(o)),Mn.set(o,l),l}var c=(o.f&Ot)===0&&!Ut&&be!==null&&(Os||(be.f&Ot)!==0),u=(o.f&pn)===0;Ar(o)&&(c&&(o.f|=Ot),ru(o)),c&&!u&&(su(o),Cu(o))}if(it?.has(e))return it.get(e);if(e.f&kn)throw e.v;return e.v}function Cu(e){if(e.f|=Ot,e.deps!==null)for(const t of e.deps)(t.reactions??=[]).push(e),t.f&Xe&&!(t.f&Ot)&&(su(t),Cu(t))}function Tu(e){if(e.v===Re)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(Mn.has(t)||t.f&Xe&&Tu(t))return!0;return!1}function yp(e){return e&&i(e)}function Ce(e){var t=Ut;try{return Ut=!0,e()}finally{Ut=t}}function vo(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if(et in e)Zs(e);else if(!Array.isArray(e))for(let t in e){const n=e[t];typeof n=="object"&&n&&et in n&&Zs(n)}}}function Zs(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{Zs(e[r],t)}catch{}const n=ba(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){const r=Ec(n);for(let s in r){const a=r[s].get;if(a)try{a.call(e)}catch{}}}}}function wp(e,t){if(Dc(),ee){const n=window.__svelte?.h;if(n?.has(e))return n.get(e);dh()}return t()}const Vr=Symbol("events"),Ru=new Set,ki=new Set;function kp(e){if(!ee)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 Pu(e,t,n,r={}){function s(a){if(r.capture||xi.call(t,a),!a.cancelBubble)return Rn(()=>n?.call(this,a))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?lt(()=>{t.addEventListener(e,s,r)}):t.addEventListener(e,s,r),s}function Oe(e,t,n,r,s){var a={capture:r,passive:s},o=Pu(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&At(()=>{t.removeEventListener(e,o,a)})}function F(e,t,n){(t[Vr]??={})[e]=n}function oe(e){for(var t=0;t<e.length;t++)Ru.add(e[t]);for(var n of ki)n(e)}let wl=null;function xi(e){var t=this,n=t.ownerDocument,r=e.type,s=e.composedPath?.()||[],a=s[0]||e.target;wl=e;var o=0,l=wl===e&&e[Vr];if(l){var c=s.indexOf(l);if(c!==-1&&(t===document||t===window)){e[Vr]=t;return}var u=s.indexOf(t);if(u===-1)return;c<=u&&(o=c)}if(a=s[o]||e.target,a!==t){qn(e,"currentTarget",{configurable:!0,get(){return a||n}});var d=be,f=ue;mt(null),rt(null);try{for(var h,m=[];a!==null;){var I=a.assignedSlot||a.parentNode||a.host||null;try{var g=a[Vr]?.[r];g!=null&&(!a.disabled||e.target===a)&&g.call(a,e)}catch(y){h?m.push(y):h=y}if(e.cancelBubble||I===t||I===null)break;a=I}if(h){for(let y of m)queueMicrotask(()=>{throw y});throw h}}finally{e[Vr]=t,delete e.currentTarget,mt(d),rt(f)}}}function xp(e,t,n,r,s,a=!1,o=!1){let l,c;try{l=e()}catch(u){c=u}if(typeof l!="function"&&(a||l!=null||c)){const u=r?.[yt];s?`${u}${s[0]}${s[1]}`:`${u}`;const d=n[0]?.eventPhase<Event.BUBBLING_PHASE?"capture":"";if(n[0]?.type+d,uh(),c)throw c}l?.apply(t,n)}const Sp=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function ju(e){return Sp?.createHTML(e)??e}function ho(e){var t=Tn("template");return t.innerHTML=ju(e.replaceAll("<!>","<!---->")),t.content}const Ep=Gn?"template":"TEMPLATE",Ip=Gn?"script":"SCRIPT";function Ke(e,t){var n=ue;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function T(e,t){var n=(t&Yi)!==0,r=(t&wc)!==0,s,a=!e.startsWith("<!>");return()=>{if(ee)return Ke(ce,null),ce;s===void 0&&(s=ho(a?e:"<!>"+e),n||(s=Pe(s)));var o=r||ao?document.importNode(s,!0):s.cloneNode(!0);if(n){var l=Pe(o),c=o.lastChild;Ke(l,c)}else Ke(o,o);return o}}function Du(e,t,n="svg"){var r=!e.startsWith("<!>"),s=(t&Yi)!==0,a=`<${n}>${r?e:"<!>"+e}</${n}>`,o;return()=>{if(ee)return Ke(ce,null),ce;if(!o){var l=ho(a),c=Pe(l);if(s)for(o=document.createDocumentFragment();Pe(c);)o.appendChild(Pe(c));else o=Pe(c)}var u=o.cloneNode(!0);if(s){var d=Pe(u),f=u.lastChild;Ke(d,f)}else Ke(u,u);return u}}function po(e,t){return Du(e,t,"svg")}function Ap(e,t){return Du(e,t,"math")}function Lu(e,t){var n=ip();for(var r of e){if(typeof r=="string"){n.append(Je(r));continue}if(r===void 0||r[0][0]==="/"){n.append(vu(r?r[0].slice(3):""));continue}const[l,c,...u]=r,d=l==="svg"?os:l==="math"?Gi:t;var s=Tn(l,d,c?.is);for(var a in c)op(s,a,c[a]);if(u.length>0){var o=s.nodeName===Ep?s.content:s;o.append(Lu(u,s.nodeName==="foreignObject"?void 0:d))}n.append(s)}return n}function Cp(e,t){var n=(t&Yi)!==0,r=(t&wc)!==0,s;return()=>{if(ee)return Ke(ce,null),ce;if(s===void 0){const c=t&Iv?os:t&Av?Gi:void 0;s=Lu(e,c),n||(s=Pe(s))}var a=r||ao?document.importNode(s,!0):s.cloneNode(!0);if(n){var o=Pe(a),l=a.lastChild;Ke(o,l)}else Ke(a,a);return a}}function Tp(e){return()=>Rp(e())}function Rp(e){if(ee)return e;const t=e.nodeType===jc,n=e.nodeName===Ip?[e]:e.querySelectorAll("script"),r=ue;for(const a of n){const o=Tn("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 Wt(e=""){if(!ee){var t=Je(e+"");return Ke(t,t),t}var n=ce;return n.nodeType!==cs?(n.before(n=Je()),xe(n)):xa(n),Ke(n,n),n}function Ye(){if(ee)return Ke(ce,null),ce;var e=document.createDocumentFragment(),t=document.createComment(""),n=Je();return e.append(t,n),Ke(t,n),e}function E(e,t){if(ee){var n=ue;(!(n.f&pn)||n.nodes.end===null)&&(n.nodes.end=ce),ut();return}e!==null&&e.before(t)}function Pp(){if(ee&&ce&&ce.nodeType===mn&&ce.textContent?.startsWith("$")){const e=ce.textContent.substring(1);return ut(),e}return(window.__svelte??={}).uid??=1,`c${window.__svelte.uid++}`}const jp=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function Dp(e){return jp.includes(e)||e.toLowerCase()==="!doctype"}function Lp(e){return e.endsWith("capture")&&e!=="gotpointercapture"&&e!=="lostpointercapture"}const Mp=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function Op(e){return Mp.includes(e)}const Np={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 zp(e){return e=e.toLowerCase(),Np[e]??e}const qp=["touchstart","touchmove"];function Vp(e){return qp.includes(e)}const Bp=["textarea","script","style","title"];function Fp(e){return Bp.includes(e)}function Mu(e){return e?.replace(/\//g,"/")}let Qs=!0;function ar(e){Qs=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 Me(e,t){return Nu(e,t)}function Ou(e,t){yi(),t.intro=t.intro??!1;const n=t.target,r=ee,s=ce;try{for(var a=Pe(n);a&&(a.nodeType!==mn||a.data!==va);)a=Et(a);if(!a)throw zn;Ae(!0),xe(a);const o=Nu(e,{...t,anchor:a});return Ae(!1),o}catch(o){if(o instanceof Error&&o.message.split(`
|
|
6
|
-
`).some(l=>l.startsWith("https://svelte.dev/e/")))throw o;return o!==zn&&console.warn("Failed to hydrate: ",o),t.recover===!1&&eh(),yi(),io(n),Ae(!1),Me(e,t)}finally{Ae(r),xe(s)}}const Rs=new Map;function Nu(e,{target:t,anchor:n,props:r={},events:s,context:a,intro:o=!0,transformError:l}){yi();var c=void 0,u=cp(()=>{var d=n??t.appendChild(Je());eu(d,{pending:()=>{}},m=>{re({});var I=ke;if(a&&(I.c=a),s&&(r.$$events=s),ee&&Ke(m,null),Qs=o,c=e(m,r)||{},Qs=!0,ee&&(ue.nodes.end=ce,ce===null||ce.nodeType!==mn||ce.data!==pa))throw us(),zn;se()},l);var f=new Set,h=m=>{for(var I=0;I<m.length;I++){var g=m[I];if(!f.has(g)){f.add(g);var y=Vp(g);for(const b of[t,document]){var w=Rs.get(b);w===void 0&&(w=new Map,Rs.set(b,w));var _=w.get(g);_===void 0?(b.addEventListener(g,xi,{passive:y}),w.set(g,1)):w.set(g,_+1)}}}};return h(ma(Ru)),ki.add(h),()=>{for(var m of f)for(const y of[t,document]){var I=Rs.get(y),g=I.get(m);--g==0?(y.removeEventListener(m,xi),I.delete(m),I.size===0&&Rs.delete(y)):I.set(m,g)}ki.delete(h),d!==n&&d.parentNode?.removeChild(d)}});return Si.set(c,u),c}let Si=new WeakMap;function Ue(e,t){const n=Si.get(e);return n?(Si.delete(e),n(t)):Promise.resolve()}function Up(e){const t=e();t&&Dp(t)&&gh()}function Hp(e){const t=e();t&&!(typeof t=="string")&&Bv()}function Kp(e,t){e!=null&&typeof e.subscribe!="function"&&Vv()}function zu(e){return e.toString=()=>(qv(),""),e}class Cr{anchor;#e=new Map;#t=new Map;#n=new Map;#a=new Set;#s=!0;constructor(t,n=!0){this.anchor=t,this.#s=n}#i=t=>{if(this.#e.has(t)){var n=this.#e.get(t),r=this.#t.get(n);if(r)uo(r),this.#a.delete(n);else{var s=this.#n.get(n);s&&(this.#t.set(n,s.effect),this.#n.delete(n),s.fragment.lastChild.remove(),this.anchor.before(s.fragment),r=s.effect)}for(const[a,o]of this.#e){if(this.#e.delete(a),a===t)break;const l=this.#n.get(o);l&&(He(l.effect),this.#n.delete(o))}for(const[a,o]of this.#t){if(a===n||this.#a.has(a))continue;const l=()=>{if(Array.from(this.#e.values()).includes(a)){var u=document.createDocumentFragment();fo(o,u),u.append(Je()),this.#n.set(a,{effect:o,fragment:u})}else He(o);this.#a.delete(a),this.#t.delete(a)};this.#s||!r?(this.#a.add(a),On(o,l,!1)):l()}}};#r=t=>{this.#e.delete(t);const n=Array.from(this.#e.values());for(const[r,s]of this.#n)n.includes(r)||(He(s.effect),this.#n.delete(r))};ensure(t,n){var r=he,s=fu();if(n&&!this.#t.has(t)&&!this.#n.has(t))if(s){var a=document.createDocumentFragment(),o=Je();a.append(o),this.#n.set(t,{effect:st(()=>n(o)),fragment:a})}else this.#t.set(t,st(()=>n(this.anchor)));if(this.#e.set(r,t),s){for(const[l,c]of this.#t)l===t?r.unskip_effect(c):r.skip_effect(c);for(const[l,c]of this.#n)l===t?r.unskip_effect(c.effect):r.skip_effect(c.effect);r.oncommit(this.#i),r.ondiscard(this.#r)}else ee&&(this.anchor=ce),this.#i(r)}}function Zt(e,t,...n){var r=new Cr(e);cn(()=>{const s=t()??null;r.ensure(s,s&&(a=>s(a,...n)))},Jt)}function Wp(e,t){const n=(r,...s)=>{var a=Zi;pl(e);try{return t(r,...s)}finally{pl(a)}};return zu(n),n}function Yp(e){return(t,...n)=>{var r=e(...n),s;if(ee)s=ce,ut();else{var a=r.render().trim(),o=ho(a);s=Pe(o),t.before(s)}const l=r.setup?.(s);Ke(s,s),typeof l=="function"&&At(l)}}function Gp(){return be===null&&$v(),(be.ac??=new AbortController).signal}function mo(e){ke===null&&Er(),Ie(()=>{const t=Ce(e);if(typeof t=="function")return t})}function bo(e){ke===null&&Er(),mo(()=>()=>Ce(e))}function Xp(e,t,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(e,{detail:t,bubbles:n,cancelable:r})}function Jp(){const e=ke;return e===null&&Er(),(t,n,r)=>{const s=e.s.$$events?.[t];if(s){const a=Sr(s)?s.slice():[s],o=Xp(t,n,r);for(const l of a)l.call(e.x,o);return!o.defaultPrevented}return!0}}function Zp(e){ke===null&&Er(),ke.l===null&&Lc(),qu(ke).b.push(e)}function Qp(e){ke===null&&Er(),ke.l===null&&Lc(),qu(ke).a.push(e)}function qu(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}const Vu=Object.freeze(Object.defineProperty({__proto__:null,afterUpdate:Qp,beforeUpdate:Zp,createContext:Ih,createEventDispatcher:Jp,createRawSnippet:Yp,flushSync:Sn,fork:Hh,getAbortSignal:Gp,getAllContexts:Ah,getContext:Qi,hasContext:Bc,hydratable:wp,hydrate:Ou,mount:Me,onDestroy:bo,onMount:mo,setContext:$i,settled:_p,tick:bs,unmount:Ue,untrack:Ce},Symbol.toStringTag,{value:"Module"}));function $p(){return Symbol(xc)}function Bu(e,t,n,r){return e!==t&&typeof t=="object"&&et in t&&ih(n,Mu(r)),e}function em(e,t,n,r,s){return Bu(n==="="?e[t]=r:n==="&&="?e[t]&&=r():n==="||="?e[t]||=r():n==="??="?e[t]??=r():null,Ce(()=>e[t]),t,s)}async function tm(e,t,n,r,s){return Bu(n==="="?e[t]=await r:n==="&&="?e[t]&&=await r():n==="||="?e[t]||=await r():n==="??="?e[t]??=await r():null,Ce(()=>e[t]),t,s)}var kl=new Map;function nm(e){var t=kl.get(e);if(t){for(const n of t)n.remove();kl.delete(e)}}function rm(e,t,n){return(...r)=>{const s=e(...r);var a=ee?s:s.nodeType===jc?s.firstChild:s;return Fu(a,t,n),s}}function sm(e,t,n){e.__svelte_meta={parent:Ds,loc:{file:t,line:n[0],column:n[1]}},n[2]&&Fu(e.firstChild,t,n[2])}function Fu(e,t,n){for(var r=0,s=0;e&&r<n.length;){if(ee&&e.nodeType===mn){var a=e;a.data[0]===va?s+=1:a.data[0]===pa&&(s-=1)}s===0&&e.nodeType===Pc&&sm(e,t,n[r++]),e=e.nextSibling}}function am(e){const t=St(e);function n(r,s){let a={},o={},l,c=!1,u=r;return cn(()=>{if(a!==(a=i(t))){if(l){for(var d in o)delete o[d];He(l)}l=st(()=>{u=u[Ov]??u,c&&ar(!1);var f=new.target?new a(u,s):a(u,s);f&&Object.defineProperties(o,Object.getOwnPropertyDescriptors(f)),c&&ar(!0)}),ue.nodes=l.nodes}},Jt),c=!0,ee&&(u=ce),o}return n[yt]=e[yt],n[$n]={fn:e,current:t,update:r=>{x(n[$n].current,r[$n].fn),r[$n].current=n[$n].current}},n}function im(e){const t=ke?.function,n=ke?.p?.function;return{mutation:(r,s,a,o,l)=>{const c=s[0];if(xl(e,c)||!n)return a;let u=e;for(let f=0;f<s.length-1;f++)if(u=u[s[f]],!u?.[et])return a;const d=Mu(`${t[yt]}:${o}:${l}`);return vh(c,d,r,n[yt]),a},binding:(r,s,a)=>{!xl(e,r)&&n&&a()?.[et]&&fh(t[yt],r,s[yt],n[yt])}}}function xl(e,t){const n=et in e||ga in e;return!!Ht(e,t)?.set||n&&t in e||!(t in e)}function om(e){e&&Hv(e[yt]??"a component",e.name)}function lm(){const e=ke?.function;function t(n){Uv(n,e[yt])}return{$destroy:()=>t("$destroy()"),$on:()=>t("$on(...)"),$set:()=>t("$set(...)")}}function cm(e,t,n=!1){lo();let r=!0,s=Re;bu(()=>{try{var a=e()}catch(l){s=l;return}var o=Un(a,!0,!0);Ce(()=>{if(n){if(t(...o),!r){const l=xh("$inspect(...)");l&&(console.groupCollapsed("stack trace"),console.log(l),console.groupEnd())}}else t(r?"init":"update",...o)}),r=!1}),ze(()=>{try{e()}catch{}s!==Re&&(console.error(s),s=Re)})}function um(e,t=[],n=[],r){var s=ee,a=null;if(s&&(ut(),a=Fn(!1)),n.length===0&&t.every(c=>c.settled)){r(e),s&&xe(a);return}const o=fs();if(s){var l=ce;xe(a)}ds(t,[],n,c=>{s&&(Ae(!0),xe(l));try{for(const u of c)i(u);r(e,...c)}finally{s&&Ae(!1),o()}})}function dm(e,...t){(typeof e!="object"||!(e instanceof Node))&&hl();for(let n of t)typeof n!="function"&&hl()}const Sl=0,El=1,fm=2;function vm(e,t,n,r,s){ee&&ut();var a=Re,o=St(a),l=St(a),c=new Cr(e);cn(()=>{var u=he;u.deactivate();var d=t();u.activate();var f=!1;let h=ee&&vl(d)===(e.data===ha);if(h&&(xe(Fn()),Ae(!1)),vl(d)){var m=wa(),I=!1;const g=y=>{if(!f){I=!0,m(!1),qt.ensure(),ee&&Ae(!1);try{y()}finally{Hn(!1),lr||Sn()}}};d.then(y=>{g(()=>{sn(o,y),c.ensure(El,r&&(w=>r(w,o)))})},y=>{g(()=>{if(sn(l,y),c.ensure(fm,s&&(w=>s(w,l))),!s)throw l.v})}),ee?c.ensure(Sl,n):lt(()=>{I||g(()=>{c.ensure(Sl,n)})})}else sn(o,d),c.ensure(El,r&&(g=>r(g,o)));return h&&Ae(!0),()=>{f=!0}})}function U(e,t,n=!1){var r;ee&&(r=ce,ut());var s=new Cr(e),a=n?Jt:0;function o(l,c){if(ee){var u=Ji(r);if(l!==parseInt(u.substring(1))){var d=Fn();xe(d),s.anchor=d,Ae(!1),s.ensure(l,c),Ae(!0);return}}s.ensure(l,c)}cn(()=>{var l=!1;t((c,u=0)=>{l=!0,o(u,c)}),l||o(-1,null)},a)}const hm=Symbol("NaN");function pm(e,t,n){ee&&ut();var r=new Cr(e);cn(()=>{var s=t();s!==s&&(s=hm),r.ensure(s,n)})}function mm(e,t){ee&&xe(Pe(e)),ze(()=>{var n=t();for(var r in n){var s=n[r];s?e.style.setProperty(r,s):e.style.removeProperty(r)}})}function Vt(e,t){return t}function bm(e,t,n){for(var r=[],s=t.length,a,o=t.length,l=0;l<s;l++){let f=t[l];On(f,()=>{if(a){if(a.pending.delete(f),a.done.add(f),a.pending.size===0){var h=e.outrogroups;Ei(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;io(d),d.append(u),e.items.clear()}Ei(e,t,!c)}else a={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(a)}function Ei(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|=tn;const o=document.createDocumentFragment();fo(a,o)}else He(t[s],n)}}var Il;function fe(e,t,n,r,s,a=null){var o=e,l=new Map,c=(t&_c)!==0;if(c){var u=e;o=ee?xe(Pe(u)):u.appendChild(Je())}ee&&ut();var d=null,f=ro(()=>{var b=n();return Sr(b)?b:b==null?[]:ma(b)}),h,m=new Map,I=!0;function g(b){_.effect.f&pt||(_.pending.delete(b),_.fallback=d,gm(_,h,o,t,r),d!==null&&(h.length===0?d.f&tn?(d.f^=tn,Br(d,null,o)):uo(d):On(d,()=>{d=null})))}function y(b){_.pending.delete(b)}var w=cn(()=>{h=i(f);var b=h.length;let A=!1;if(ee){var L=Ji(o)===ha;L!==(b===0)&&(o=Fn(),xe(o),Ae(!1),A=!0)}for(var C=new Set,S=he,j=fu(),P=0;P<b;P+=1){ee&&ce.nodeType===mn&&ce.data===pa&&(o=ce,A=!0,Ae(!1));var D=h[P],R=r(D,P),M=I?null:l.get(R);M?(M.v&&sn(M.v,D),M.i&&sn(M.i,P),j&&S.unskip_effect(M.e)):(M=_m(l,I?o:Il??=Je(),D,R,P,s,t,n),I||(M.e.f|=tn),l.set(R,M)),C.add(R)}if(b===0&&a&&!d&&(I?d=st(()=>a(o)):(d=st(()=>a(Il??=Je())),d.f|=tn)),b>C.size&&Kv(),ee&&b>0&&xe(Fn()),!I)if(m.set(S,C),j){for(const[B,N]of l)C.has(B)||S.skip_effect(N.e);S.oncommit(g),S.ondiscard(y)}else g(S);A&&Ae(!0),i(f)}),_={effect:w,items:l,pending:m,outrogroups:null,fallback:d};I=!1,ee&&(o=ce)}function Or(e){for(;e!==null&&!(e.f&Gt);)e=e.next;return e}function gm(e,t,n,r,s){var a=(r&gv)!==0,o=t.length,l=e.items,c=Or(e.effect.first),u,d=null,f,h=[],m=[],I,g,y,w;if(a)for(w=0;w<o;w+=1)I=t[w],g=s(I,w),y=l.get(g).e,y.f&tn||(y.nodes?.a?.measure(),(f??=new Set).add(y));for(w=0;w<o;w+=1){if(I=t[w],g=s(I,w),y=l.get(g).e,e.outrogroups!==null)for(const D of e.outrogroups)D.pending.delete(y),D.done.delete(y);if(y.f&ot&&(uo(y),a&&(y.nodes?.a?.unfix(),(f??=new Set).delete(y))),y.f&tn)if(y.f^=tn,y===c)Br(y,null,n);else{var _=d?d.next:c;y===e.effect.last&&(e.effect.last=y.prev),y.prev&&(y.prev.next=y.next),y.next&&(y.next.prev=y.prev),yn(e,d,y),yn(e,y,_),Br(y,_,n),d=y,h=[],m=[],c=Or(d.next);continue}if(y!==c){if(u!==void 0&&u.has(y)){if(h.length<m.length){var b=m[0],A;d=b.prev;var L=h[0],C=h[h.length-1];for(A=0;A<h.length;A+=1)Br(h[A],b,n);for(A=0;A<m.length;A+=1)u.delete(m[A]);yn(e,L.prev,C.next),yn(e,d,L),yn(e,C,b),c=b,d=C,w-=1,h=[],m=[]}else u.delete(y),Br(y,c,n),yn(e,y.prev,y.next),yn(e,y,d===null?e.effect.first:d.next),yn(e,d,y),d=y;continue}for(h=[],m=[];c!==null&&c!==y;)(u??=new Set).add(c),m.push(c),c=Or(c.next);if(c===null)continue}y.f&tn||h.push(y),d=y,c=Or(y.next)}if(e.outrogroups!==null){for(const D of e.outrogroups)D.pending.size===0&&(Ei(e,ma(D.done)),e.outrogroups?.delete(D));e.outrogroups.size===0&&(e.outrogroups=null)}if(c!==null||u!==void 0){var S=[];if(u!==void 0)for(y of u)y.f&ot||S.push(y);for(;c!==null;)!(c.f&ot)&&c!==e.fallback&&S.push(c),c=Or(c.next);var j=S.length;if(j>0){var P=r&_c&&o===0?n:null;if(a){for(w=0;w<j;w+=1)S[w].nodes?.a?.measure();for(w=0;w<j;w+=1)S[w].nodes?.a?.fix()}bm(e,S,P)}}a&<(()=>{if(f!==void 0)for(y of f)y.nodes?.a?.apply()})}function _m(e,t,n,r,s,a,o,l){var c=o&mv?o&_v?St(n):ka(n,!1,!1):null,u=o&bv?St(s):null;return{v:c,i:u,e:st(()=>(a(t,c??n,u??s,l),()=>{e.delete(r)}))}}function Br(e,t,n){if(e.nodes)for(var r=e.nodes.start,s=e.nodes.end,a=t&&!(t.f&tn)?t.nodes.start:n;r!==null;){var o=Et(r);if(a.before(r),r===s)return;r=o}}function yn(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function ym(e,t,n=!1,r=!1,s=!1,a=!1){var o=e,l="";if(n){var c=e;ee&&(o=xe(Pe(c)))}z(()=>{var u=ue;if(l===(l=t()??"")){ee&&ut();return}if(n&&!ee){u.nodes=null,c.innerHTML=l,l!==""&&Ke(Pe(c),c.lastChild);return}if(u.nodes!==null&&(yu(u.nodes.start,u.nodes.end),u.nodes=null),l!==""){if(ee){ce.data;for(var d=ut(),f=d;d!==null&&(d.nodeType!==mn||d.data!=="");)f=d,d=Et(d);if(d===null)throw us(),zn;Ke(ce,f),o=xe(d);return}var h=r?os:s?Gi:void 0,m=Tn(r?"svg":s?"math":"template",h);m.innerHTML=l;var I=r||s?m:m.content;if(Ke(Pe(I),I.lastChild),r||s)for(;Pe(I);)o.before(Pe(I));else o.before(I)}})}function wm(e,t,n,r,s){ee&&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 km(e){const t={};e.children&&(t.default=!0);for(const n in e.$$slots)t[n]=!0;return t}function gs(e,t,n){var r;ee&&(r=ce,ut());var s=new Cr(e);cn(()=>{var a=t()??null;if(ee){var o=Ji(r),l=o===va,c=a!==null;if(l!==c){var u=Fn();xe(u),s.anchor=u,Ae(!1),s.ensure(a,a&&(d=>n(d,a))),Ae(!0);return}}s.ensure(a,a&&(d=>n(d,a)))},Jt)}const xm=()=>performance.now(),en={tick:e=>requestAnimationFrame(e),now:()=>xm(),tasks:new Set};function Uu(){const e=en.now();en.tasks.forEach(t=>{t.c(e)||(en.tasks.delete(t),t.f())}),en.tasks.size!==0&&en.tick(Uu)}function Sm(e){let t;return en.tasks.size===0&&en.tick(Uu),{promise:new Promise(n=>{en.tasks.add(t={c:e,f:n})}),abort(){en.tasks.delete(t)}}}function $s(e,t){Rn(()=>{e.dispatchEvent(new CustomEvent(t))})}function Em(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 Al(e){const t={},n=e.split(";");for(const r of n){const[s,a]=r.split(":");if(!s||a===void 0)break;const o=Em(s.trim());t[o]=a.trim()}return t}const Im=e=>e;let Hu=null;function Cl(e){Hu=e}function Am(e,t,n){var r=Hu??ue,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=ea(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 m=e.getBoundingClientRect();if(a.left!==m.left||a.top!==m.top){var I=`translate(${a.left-m.left}px, ${a.top-m.top}px)`;h.transform=h.transform?`${h.transform} ${I}`:I}}}},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 Cm(e,t,n,r){var s=(e&xv)!==0,a=(e&Sv)!==0,o=s&&a,l=(e&Ev)!==0,c=o?"both":s?"in":"out",u,d=t.inert,f=t.style.overflow,h,m;function I(){return Rn(()=>u??=n()(t,r?.()??{},{direction:c}))}var g={is_global:l,in(){if(t.inert=d,!s){m?.abort(),m?.reset?.();return}a||h?.abort(),h=ea(t,I(),m,1,()=>{$s(t,"introend"),h?.abort(),h=u=void 0,t.style.overflow=f})},out(b){if(!a){b?.(),u=void 0;return}t.inert=!0,m=ea(t,I(),h,0,()=>{$s(t,"outroend"),b?.()})},stop:()=>{h?.abort(),m?.abort()}},y=ue;if((y.nodes.t??=[]).push(g),s&&Qs){var w=l;if(!w){for(var _=y.parent;_&&_.f&Jt;)for(;(_=_.parent)&&!(_.f&Kt););w=!_||(_.f&pn)!==0}w&&It(()=>{Ce(()=>g.in())})}}function ea(e,t,n,r,s){var a=r===1;if(er(t)){var o,l=!1;return lt(()=>{if(!l){var y=t({direction:a?"in":"out"});o=ea(e,y,n,r,s)}}),{abort:()=>{l=!0,o?.abort()},deactivate:()=>o.deactivate(),reset:()=>o.reset(),t:()=>o.t()}}if(n?.deactivate(),!t?.duration&&!t?.delay)return $s(e,a?"introstart":"outrostart"),s(),{abort:wt,deactivate:wt,reset:wt,t:()=>r};const{delay:c=0,css:u,tick:d,easing:f=Im}=t;var h=[];if(a&&n===void 0&&(d&&d(0,1),u)){var m=Al(u(0,1));h.push(m,m)}var I=()=>1-r,g=e.animate(h,{duration:c,fill:"forwards"});return g.onfinish=()=>{g.cancel(),$s(e,a?"introstart":"outrostart");var y=n?.t()??1-r;n?.abort();var w=r-y,_=t.duration*Math.abs(w),b=[];if(_>0){var A=!1;if(u)for(var L=Math.ceil(_/16.666666666666668),C=0;C<=L;C+=1){var S=y+w*f(C/L),j=Al(u(S,1-S));b.push(j),A||=j.overflow==="hidden"}A&&(e.style.overflow="hidden"),I=()=>{var P=g.currentTime;return y+w*f(P/_)},d&&Sm(()=>{if(g.playState!=="running")return!1;var P=I();return d(P,1-P),!0})}g=e.animate(b,{duration:_,fill:"forwards"}),g.onfinish=()=>{I=()=>r,d?.(r,1-r),s()}},{abort:()=>{g&&(g.cancel(),g.effect=null,g.onfinish=wt)},deactivate:()=>{s=wt},reset:()=>{r===0&&d?.(1,0)},t:()=>I()}}function Tm(e,t,n,r,s,a){let o=ee;ee&&ut();var l=null;ee&&ce.nodeType===Pc&&(l=ce,ut());var c=ee?ce:e,u=ue,d=new Cr(c,!1);cn(()=>{const f=t()||null;var h=s?s():n||f==="svg"?os:void 0;if(f===null){d.ensure(null,null),ar(!0);return}return d.ensure(f,m=>{if(f){if(l=ee?l:Tn(f,h),Ke(l,l),r){ee&&Fp(f)&&l.append(document.createComment(""));var I=ee?Pe(l):l.appendChild(Je());ee&&(I===null?Ae(!1):xe(I)),Cl(u),r(l,I),Cl(null)}ue.nodes.end=l,m.before(l)}ee&&xe(m)}),ar(!0),()=>{f&&ar(!1)}},Jt),At(()=>{ar(!0)}),o&&(Ae(!0),xe(c))}function Rm(e,t){let n=null,r=ee;var s;if(ee){n=ce;for(var a=Pe(document.head);a!==null&&(a.nodeType!==mn||a.data!==e);)a=Et(a);if(a===null)Ae(!1);else{var o=Et(a);a.remove(),xe(o)}}ee||(s=document.head.appendChild(Je()));try{cn(()=>t(s),Tc|Cn)}finally{r&&(Ae(!0),xe(n))}}function Pm(e,t){It(()=>{var n=e.getRootNode(),r=n.host?n:n.head??n.ownerDocument.head;if(!r.querySelector("#"+t.hash)){const s=Tn("style");s.id=t.hash,s.textContent=t.code,r.appendChild(s)}})}function Ku(e,t,n){It(()=>{var r=Ce(()=>t(e,n?.())||{});if(n&&r?.update){var s=!1,a={};ze(()=>{var o=n();vo(o),s&&Nc(a,o)&&(a=o,r.update(o))}),s=!0}if(r?.destroy)return()=>r.destroy()})}function go(e,t){var n=void 0,r;gu(()=>{n!==(n=t())&&(r&&(He(r),r=null),n&&(r=st(()=>{It(()=>n(e))})))})}const jm=/[&"<]/g;function Dm(e,t){const n=String(e??""),r=jm;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 Wu(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=Wu(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function Lm(){for(var e,t,n=0,r="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=Wu(e))&&(r&&(r+=" "),r+=t);return r}const Tl={translate:new Map([[!0,"yes"],[!1,"no"]])};function Mm(e,t,n=!1){if(e==="hidden"&&t!=="until-found"&&(n=!0),t==null||!t&&n)return"";const r=Rv.call(Tl,e)&&Tl[e].get(t)||t,s=n?'=""':`="${Dm(r)}"`;return` ${e}${s}`}function Yu(e){return typeof e=="object"?Lm(e):e??""}const Rl=[...`
|
|
7
|
-
\r\f \v\uFEFF`];function Om(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||Rl.includes(r[o-1]))&&(l===r.length||Rl.includes(r[l]))?r=(o===0?"":r.substring(0,o))+r.substring(l+1):o=l}}return r===""?null:r}function Pl(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 ei(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function Nm(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(ei)),s&&c.push(...Object.keys(s).map(ei));var u=0,d=-1;const g=e.length;for(var f=0;f<g;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===g-1){if(d!==-1){var m=ei(e.substring(u,d).trim());if(!c.includes(m)){h!==";"&&f++;var I=e.substring(u,f).trim();n+=" "+I+";"}}u=f+1,d=-1}}}}return r&&(n+=Pl(r)),s&&(n+=Pl(s,!0)),n=n.trim(),n===""?null:n}return e==null?null:String(e)}function de(e,t,n,r,s,a){var o=e.__className;if(ee||o!==n||o===void 0){var l=Om(n,r,a);(!ee||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 ti(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 tt(e,t,n,r){var s=e.__style;if(ee||s!==t){var a=Nm(t,r);(!ee||a!==e.getAttribute("style"))&&(a==null?e.removeAttribute("style"):e.style.cssText=a),e.__style=t}else r&&(Array.isArray(r)?(ti(e,n?.[0],r[0]),ti(e,n?.[1],r[1],"important")):ti(e,n,r));return r}function Jr(e,t,n=!1){if(e.multiple){if(t==null)return;if(!Sr(t))return hh();for(var r of e.options)r.selected=t.includes(Hr(r));return}for(r of e.options){var s=Hr(r);if(lu(s,t)){r.selected=!0;return}}(!n||t!==void 0)&&(e.selectedIndex=-1)}function _o(e){var t=new MutationObserver(()=>{Jr(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),At(()=>{t.disconnect()})}function Zr(e,t,n=t){var r=new WeakSet,s=!0;hs(e,"change",a=>{var o=a?"[selected]":":checked",l;if(e.multiple)l=[].map.call(e.querySelectorAll(o),Hr);else{var c=e.querySelector(o)??e.querySelector("option:not([disabled])");l=c&&Hr(c)}n(l),e.__value=l,he!==null&&r.add(he)}),It(()=>{var a=t();if(e===document.activeElement){var o=he;if(r.has(o))return}if(Jr(e,a,s),s&&a===void 0){var l=e.querySelector(":checked");l!==null&&(a=Hr(l),n(a))}e.__value=a,s=!1}),_o(e)}function Hr(e){return"__value"in e?e.__value:e.value}const nr=Symbol("class"),rr=Symbol("style"),Gu=Symbol("is custom element"),Xu=Symbol("is html"),zm=Gn?"link":"LINK",qm=Gn?"input":"INPUT",Vm=Gn?"option":"OPTION",Bm=Gn?"select":"SELECT",Fm=Gn?"progress":"PROGRESS";function _e(e){if(ee){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute("value")){var r=e.value;ne(e,"value",null),e.value=r}if(e.hasAttribute("checked")){var s=e.checked;ne(e,"checked",null),e.checked=s}}};e.__on_r=n,lt(n),hu()}}function Qr(e,t){var n=Sa(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==Fm)||(e.value=t??"")}function yo(e,t){var n=Sa(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function wo(e,t){t?e.hasAttribute("selected")||e.setAttribute("selected",""):e.removeAttribute("selected")}function Um(e,t){const n=e.checked;e.defaultChecked=t,e.checked=n}function Hm(e,t){const n=e.value;e.defaultValue=t,e.value=n}function ne(e,t,n,r){var s=Sa(e);ee&&(s[t]=e.getAttribute(t),t==="src"||t==="srcset"||t==="href"&&e.nodeName===zm)||s[t]!==(s[t]=n)&&(t==="loading"&&(e[Lv]=n),n==null?e.removeAttribute(t):typeof n!="string"&&ko(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function Km(e,t,n){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n)}function Wm(e,t,n){var r=be,s=ue;let a=ee;ee&&Ae(!1),mt(null),rt(null);try{t!=="style"&&(Ii.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{mt(r),rt(s),a&&Ae(!0)}}function Ym(e,t,n,r,s=!1,a=!1){if(ee&&s&&e.nodeName===qm){var o=e,l=o.type==="checkbox"?"defaultChecked":"defaultValue";l in n||_e(o)}var c=Sa(e),u=c[Gu],d=!c[Xu];let f=ee&&u;f&&Ae(!1);var h=t||{},m=e.nodeName===Vm;for(var I in t)I in n||(n[I]=null);n.class?n.class=Yu(n.class):(r||n[nr])&&(n.class=null),n[rr]&&(n.style??=null);var g=ko(e);for(const C in n){let S=n[C];if(m&&C==="value"&&S==null){e.value=e.__value="",h[C]=S;continue}if(C==="class"){var y=e.namespaceURI==="http://www.w3.org/1999/xhtml";de(e,y,S,r,t?.[nr],n[nr]),h[C]=S,h[nr]=n[nr];continue}if(C==="style"){tt(e,S,t?.[rr],n[rr]),h[C]=S,h[rr]=n[rr];continue}var w=h[C];if(!(S===w&&!(S===void 0&&e.hasAttribute(C)))){h[C]=S;var _=C[0]+C[1];if(_!=="$$")if(_==="on"){const j={},P="$$"+C;let D=C.slice(2);var b=Op(D);if(Lp(D)&&(D=D.slice(0,-7),j.capture=!0),!b&&w){if(S!=null)continue;e.removeEventListener(D,h[P],j),h[P]=null}if(b)F(D,e,S),oe([D]);else if(S!=null){let R=function(M){h[C].call(this,M)};h[P]=Pu(D,e,R,j)}}else if(C==="style")ne(e,C,S);else if(C==="autofocus")Ir(e,!!S);else if(!u&&(C==="__value"||C==="value"&&S!=null))e.value=e.__value=S;else if(C==="selected"&&m)wo(e,S);else{var A=C;d||(A=zp(A));var L=A==="defaultValue"||A==="defaultChecked";if(S==null&&!u&&!L)if(c[C]=null,A==="value"||A==="checked"){let j=e;const P=t===void 0;if(A==="value"){let D=j.defaultValue;j.removeAttribute(A),j.defaultValue=D,j.value=j.__value=P?D:null}else{let D=j.defaultChecked;j.removeAttribute(A),j.defaultChecked=D,j.checked=P?D:!1}}else e.removeAttribute(C);else L||g.includes(A)&&(u||typeof S!="string")?(e[A]=S,A in c&&(c[A]=Re)):typeof S!="function"&&ne(e,A,S)}}}return f&&Ae(!0),h}function Gm(e,t,n=[],r=[],s=[],a,o=!1,l=!1){ds(s,n,r,c=>{var u=void 0,d={},f=e.nodeName===Bm,h=!1;if(gu(()=>{var I=t(...c.map(i)),g=Ym(e,u,I,a,o,l);h&&f&&"value"in I&&Jr(e,I.value);for(let w of Object.getOwnPropertySymbols(d))I[w]||He(d[w]);for(let w of Object.getOwnPropertySymbols(I)){var y=I[w];w.description===xc&&(!u||y!==u[w])&&(d[w]&&He(d[w]),d[w]=st(()=>go(e,()=>y))),g[w]=y}u=g}),f){var m=e;It(()=>{Jr(m,u.value,!0),_o(m)})}h=!0})}function Sa(e){return e.__attributes??={[Gu]:e.nodeName.includes("-"),[Xu]:e.namespaceURI===kc}}var Ii=new Map;function ko(e){var t=e.getAttribute("is")||e.nodeName,n=Ii.get(t);if(n)return n;Ii.set(t,n=[]);for(var r,s=e,a=Element.prototype;a!==s;){r=Ec(s);for(var o in r)r[o].set&&n.push(o);s=ba(s)}return n}let ni=null;function Ju(){if(ni===null){var e=Tn("select");e.innerHTML=ju("<option><span>t</span></option>"),ni=e.firstChild?.firstChild?.nodeType===1}return ni}function Xm(e,t){Ju()&&go(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 Jm(e,t){var n=ee;Ju()||(Ae(!1),e.textContent="",e.append(vu("")));try{t()}finally{n&&(ee?v(e):(Ae(!0),xe(e)))}}function Zm(e){bt(document,["focusin","focusout"],t=>{t&&t.type==="focusout"&&t.relatedTarget||e(document.activeElement)})}function Ee(e,t,n=t){var r=new WeakSet;hs(e,"input",async s=>{var a=s?e.defaultValue:e.value;if(a=si(e)?ai(a):a,n(a),he!==null&&r.add(he),await bs(),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))}}}),(ee&&e.defaultValue!==e.value||Ce(t)==null&&e.value)&&(n(si(e)?ai(e.value):e.value),he!==null&&r.add(he)),ze(()=>{var s=t();if(e===document.activeElement){var a=he;if(r.has(a))return}si(e)&&s===ai(e.value)||e.type==="date"&&!s&&!e.value||s!==e.value&&(e.value=s??"")})}const ri=new Set;function Qm(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),hs(n,"change",()=>{var u=n.__value;a&&(u=jl(o,u,n.checked)),s(u)},()=>s(a?[]:null)),ze(()=>{var u=r();if(ee&&n.defaultChecked!==n.checked){l=!0;return}a?(u=u||[],n.checked=u.includes(n.__value)):n.checked=lu(n.__value,u)}),At(()=>{var u=o.indexOf(n);u!==-1&&o.splice(u,1)}),ri.has(o)||(ri.add(o),lt(()=>{o.sort((u,d)=>u.compareDocumentPosition(d)===4?-1:1),ri.delete(o)})),lt(()=>{if(l){var u;if(a)u=jl(o,u,n.checked);else{var d=o.find(f=>f.checked);u=d?.__value}s(u)}})}function Kr(e,t,n=t){hs(e,"change",r=>{var s=r?e.defaultChecked:e.checked;n(s)}),(ee&&e.defaultChecked!==e.checked||Ce(t)==null)&&n(e.checked),ze(()=>{var r=t();e.checked=!!r})}function jl(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 si(e){var t=e.type;return t==="number"||t==="range"}function ai(e){return e===""?null:+e}function $m(e,t,n=t){hs(e,"change",()=>{n(e.files)}),ee&&e.files&&n(e.files),ze(()=>{e.files=t()})}function xo(e){for(var t=[],n=0;n<e.length;n+=1)t.push({start:e.start(n),end:e.end(n)});return t}function eb(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),ze(()=>{var o=Number(t());s!==o&&!isNaN(o)&&(e.currentTime=s=o)}),At(()=>{cancelAnimationFrame(r),e.removeEventListener("timeupdate",a)})}function tb(e,t){var n;bt(e,["loadedmetadata","progress","timeupdate","seeking"],()=>{var r=e.buffered;(!n||n.length!==r.length||n.some((s,a)=>r.start(a)!==s.start||r.end(a)!==s.end))&&(n=xo(r),t(n))})}function nb(e,t){bt(e,["loadedmetadata"],()=>t(xo(e.seekable)))}function rb(e,t){bt(e,["timeupdate"],()=>t(xo(e.played)))}function sb(e,t){bt(e,["seeking","seeked"],()=>t(e.seeking))}function ab(e,t){bt(e,["timeupdate","ended"],()=>t(e.ended))}function ib(e,t){bt(e,["loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","emptied"],()=>t(e.readyState))}function ob(e,t,n=t){It(()=>{var r=Number(t());r!==e.playbackRate&&!isNaN(r)&&(e.playbackRate=r)}),It(()=>{bt(e,["ratechange"],()=>{n(e.playbackRate)})})}function lb(e,t,n=t){var r=t(),s=()=>{r!==e.paused&&n(r=e.paused)};bt(e,["play","pause","canplay"],s,r==null),It(()=>{(r=!!t())!==e.paused&&(r?e.pause():e.play().catch(a=>{throw n(r=!0),a}))})}function cb(e,t,n=t){var r=()=>{n(e.volume)};t()==null&&r(),bt(e,["volumechange"],r,!1),ze(()=>{var s=Number(t());s!==e.volume&&!isNaN(s)&&(e.volume=s)})}function ub(e,t,n=t){var r=()=>{n(e.muted)};t()==null&&r(),bt(e,["volumechange"],r,!1),ze(()=>{var s=!!t();e.muted!==s&&(e.muted=s)})}function db(e){bt(window,["online","offline"],()=>{e(navigator.onLine)})}function fb(e,t,n){var r=Ht(e,t);r&&r.set&&(e[t]=n,At(()=>{e[t]=null}))}class _s{#e=new WeakMap;#t;#n;static entries=new WeakMap;constructor(t){this.#n=t}observe(t,n){var r=this.#e.get(t)||new Set;return r.add(n),this.#e.set(t,r),this.#a().observe(t,this.#n),()=>{var s=this.#e.get(t);s.delete(n),s.size===0&&(this.#e.delete(t),this.#t.unobserve(t))}}#a(){return this.#t??(this.#t=new ResizeObserver(t=>{for(var n of t){_s.entries.set(n.target,n);for(var r of this.#e.get(n.target)||[])r(n)}}))}}var vb=new _s({box:"content-box"}),Zu=new _s({box:"border-box"}),hb=new _s({box:"device-pixel-content-box"});function pb(e,t,n){var r=t==="contentRect"||t==="contentBoxSize"?vb:t==="borderBoxSize"?Zu:hb,s=r.observe(e,a=>n(a[t]));At(s)}function mb(e,t,n){var r=Zu.observe(e,()=>n(e[t]));It(()=>(Ce(()=>n(e[t])),r))}function Dl(e,t){return e===t||e?.[et]===t}function Ne(e={},t,n,r){var s=ke.r,a=ue;return It(()=>{var o,l;return ze(()=>{o=l,l=r?.()||[],Ce(()=>{e!==n(...l)&&(t(e,...l),o&&Dl(n(...o),e)&&t(null,...o))})}),()=>{let c=a;for(;c!==s&&c.parent!==null&&c.parent.f&vi;)c=c.parent;const u=()=>{l&&Dl(n(...l),e)&&t(null,...l)},d=c.teardown;c.teardown=()=>{u(),d?.()}}}),e}function bb(e,t,n,r=n){t.addEventListener("input",()=>{r(t[e])}),ze(()=>{var s=n();if(t[e]!==s)if(s==null){var a=t[e];r(a)}else t[e]=s+""})}function gb(e,t,n,r,s){var a=()=>{r(n[e])};n.addEventListener(t,a),s?ze(()=>{n[e]=s()}):a(),(n===document.body||n===window||n===document)&&At(()=>{n.removeEventListener(t,a)})}function _b(e,t){bt(e,["focus","blur"],()=>{t(e===document.activeElement)})}function yb(e,t,n=t){var r=e==="x",s=()=>Rn(()=>{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;ze(()=>{var u=t();c?c=!1:!a&&u!=null&&(a=!0,clearTimeout(o),r?scrollTo(u,window.scrollY):scrollTo(window.scrollX,u),o=setTimeout(l,100))}),It(s),At(()=>{removeEventListener("scroll",s)})}function wb(e,t){bt(window,["resize"],()=>Rn(()=>t(window[e])))}function kb(e){return function(...t){var n=t[0];n.isTrusted&&e?.apply(this,t)}}function xb(e){return function(...t){var n=t[0];n.target===this&&e?.apply(this,t)}}function Sb(e){return function(...t){var n=t[0];return n.stopPropagation(),e?.apply(this,t)}}function Eb(e){var t=!1;return function(...n){if(!t)return t=!0,e?.apply(this,n)}}function Ib(e){return function(...t){var n=t[0];return n.stopImmediatePropagation(),e?.apply(this,t)}}function Ab(e){return function(...t){var n=t[0];return n.preventDefault(),e?.apply(this,t)}}function Cb(e=!1){const t=ke,n=t.l.u;if(!n)return;let r=()=>vo(t.s);if(e){let s=0,a={};const o=vs(()=>{let l=!1;const c=t.s;for(const u in c)c[u]!==a[u]&&(a[u]=c[u],l=!0);return l&&s++,s});r=()=>i(o)}n.b.length&&mu(()=>{Ll(t,r),di(n.b)}),Ie(()=>{const s=Ce(()=>n.m.map(Pv));return()=>{for(const a of s)typeof a=="function"&&a()}}),n.a.length&&Ie(()=>{Ll(t,r),di(n.a)})}function Ll(e,t){if(e.l.s)for(const n of e.l.s)i(n);t()}function Tb(e){var t=St(0);return function(){return arguments.length===1?(x(t,i(t)+1),arguments[0]):(i(t),e())}}function Rb(e,t){var n=e.$$events?.[t.type],r=Sr(n)?n.slice():n==null?[]:[n];for(var s of r)s.call(this,t)}function Pb(e,t,n){e.$$events||={},e.$$events[t]||=[],e.$$events[t].push(n)}function jb(e){for(var t in e)t in this&&(this[t]=e[t])}function Db(e,t=1){const n=e();return e(n+t),n}function Lb(e,t=1){const n=e()+t;return e(n),n}const Mb={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 Ob(e,t,n){return new Proxy({props:e,exclude:t},Mb)}const Nb={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=ue;try{rt(e.parent_effect),e.special[t]=G({get[t](){return e.props[t]}},t,yc)}finally{rt(r)}}return e.special[t](n),gr(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),gr(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 zb(e,t){return new Proxy({props:e,exclude:t,special:{},version:St(0),parent_effect:ue},Nb)}const qb={get(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(er(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];er(s)&&(s=s());const a=Ht(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(er(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r){const s=Ht(r,t);return s&&!s.configurable&&(s.configurable=!0),s}}},has(e,t){if(t===et||t===ga)return!1;for(let n of e.props)if(er(n)&&(n=n()),n!=null&&t in n)return!0;return!1},ownKeys(e){const t=[];for(let n of e.props)if(er(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 ys(...e){return new Proxy({props:e},qb)}function G(e,t,n,r){var s=(n&wv)!==0,a=(n&kv)!==0,o=r,l=!0,c=()=>(l&&(l=!1,o=a?Ce(r):r),o);let u;if(s){var d=et in e||ga in e;u=Ht(e,t)?.set??(d&&t in e?_=>e[t]=_:void 0)}var f,h=!1;s?[f,h]=Xc(()=>e[t]):f=e[t],f===void 0&&r!==void 0&&(f=c(),u&&(th(),u(f)));var m;if(m=()=>{var _=e[t];return _===void 0?c():(l=!0,_)},!(n&yc))return m;if(u){var I=e.$$legacy;return function(_,b){return arguments.length>0?((!b||I||h)&&u(b?m():_),_):m()}}var g=!1,y=(n&yv?vs:ro)(()=>(g=!1,m()));s&&i(y);var w=ue;return function(_,b){if(arguments.length>0){const A=b?i(y):s?ie(_):_;return x(y,A),g=!0,o!==void 0&&(o=A),_}return vn&&g||w.f&pt?y.v:i(y)}}function Vb(e,t,n,r,s,a){tu(t,()=>{var o=!1;Zi?.[yt],ze(()=>{if(!o){var[l,c]=Xc(n);if(!c){var u=r(),d=!1,f=ze(()=>{d||l[u]});d=!0,f.deps===null&&(oh(),o=!0)}}})})}function Bb(e){return new Fb(e)}class Fb{#e;#t;constructor(t){var n=new Map,r=(a,o)=>{var l=ka(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===ga?!0:(i(n.get(o)??r(o,Reflect.get(a,o))),Reflect.has(a,o))},set(a,o,l){return x(n.get(o)??r(o,l),l),Reflect.set(a,o,l)}});this.#t=(t.hydrate?Ou:Me)(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)&&Sn(),this.#e=s.$$events;for(const a of Object.keys(this.#t))a==="$set"||a==="$destroy"||a==="$on"||qn(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=()=>{Ue(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 Qu;typeof HTMLElement=="function"&&(Qu=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=Tn("slot");r!=="default"&&(a.name=r),E(s,a)}};if(await Promise.resolve(),!this.$$cn||this.$$c)return;const t={},n=Ub(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]=Ns(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=Bb({component:this.$$ctor,target:this.$$shadowRoot||this,props:{...this.$$d,$$slots:t,$$host:this}}),this.$$me=ms(()=>{ze(()=>{this.$$r=!0;for(const r of Ys(this.$$c)){if(!this.$$p_d[r]?.reflect)continue;this.$$d[r]=this.$$c[r];const s=Ns(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]=Ns(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 Ys(this.$$p_d).find(t=>this.$$p_d[t].attribute===e||!this.$$p_d[t].attribute&&t.toLowerCase()===e)||e}});function Ns(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 Ub(e){const t={};return e.childNodes.forEach(n=>{t[n.slot||"default"]=!0}),t}function Hb(e,t,n,r,s,a){let o=class extends Qu{constructor(){super(e,n,s),this.$$p_d=t}static get observedAttributes(){return Ys(t).map(l=>(t[l].attribute||l).toLowerCase())}};return Ys(t).forEach(l=>{qn(o.prototype,l,{get(){return this.$$c&&l in this.$$c?this.$$c[l]:this.$$d[l]},set(c){c=Ns(l,c,t),this.$$d[l]=c;var u=this.$$c;if(u){var d=Ht(u,l)?.get;d?u[l]=c:u.$set({[l]:c})}}})}),r.forEach(l=>{qn(o.prototype,l,{get(){return this.$$c?.[l]}})}),a&&(o=a(o)),e.element=o,o}function Kb(e,...t){return Ce(()=>{try{let n=!1;const r=[];for(const s of t)s&&typeof s=="object"&&et in s?(r.push(Un(s,!0)),n=!0):r.push(s);n&&(lh(e),console.log("%c[snapshot]","color: grey",...r))}catch{}}),t}const $u=Object.freeze(Object.defineProperty({__proto__:null,CLASS:nr,FILENAME:yt,HMR:$n,NAMESPACE_SVG:os,STYLE:rr,aborted:wi,action:Ku,get active_effect(){return ue},add_legacy_event_listener:Pb,add_locations:rm,add_svelte_meta:Eh,animation:Am,append:E,append_styles:Pm,apply:xp,assign:em,assign_async:tm,async:um,async_derived:nu,attach:go,attachment:$p,attr:Mm,attribute_effect:Gm,autofocus:Ir,await:vm,bind_active_element:Zm,bind_buffered:tb,bind_checked:Kr,bind_content_editable:bb,bind_current_time:eb,bind_element_size:mb,bind_ended:ab,bind_files:$m,bind_focused:_b,bind_group:Qm,bind_muted:ub,bind_online:db,bind_paused:lb,bind_playback_rate:ob,bind_played:rb,bind_prop:fb,bind_property:gb,bind_ready_state:ib,bind_resize_observer:pb,bind_seekable:nb,bind_seeking:sb,bind_select_value:Zr,bind_this:Ne,bind_value:Ee,bind_volume:cb,bind_window_scroll:yb,bind_window_size:wb,boundary:eu,bubble_event:Rb,check_target:om,child:p,cleanup_styles:nm,clsx:Yu,comment:Ye,component:gs,create_custom_element:Hb,create_ownership_validator:im,css_props:mm,customizable_select:Jm,deep_read:Zs,deep_read_state:vo,deferred_template_effect:vp,delegate:oe,delegated:F,derived:H,derived_safe_equal:ro,get document(){return cu},each:fe,eager:Uh,effect:It,effect_root:ms,effect_tracking:ps,element:Tm,equals:ap,event:Oe,exclude_from_object:Dv,fallback:jv,first_child:pe,flush:Sn,for_await_track_reactivity_loss:Jh,from_html:T,from_mathml:Ap,from_svg:po,from_tree:Cp,get:i,head:Rm,hmr:am,html:ym,hydrate_template:mh,if:U,index:Vt,init:Cb,init_select:_o,inspect:cm,invalid_default_snippet:Nv,invalidate_inner_signals:mp,invalidate_store:Lh,invoke_error_boundary:nn,key:pm,legacy_api:lm,legacy_pre_effect:up,legacy_pre_effect_reset:dp,legacy_rest_props:zb,log_if_contains_state:Kb,mark_store_binding:qh,mutable_source:ka,mutate:np,next:rn,noop:wt,once:Eb,pending:Gh,pop:se,preventDefault:Ab,prevent_snippet_stringification:zu,prop:G,props_id:Pp,proxy:ie,push:re,raf:en,reactive_import:Tb,remove_input_defaults:_e,remove_textarea_child:oo,render_effect:ze,replay_events:kp,reset:v,rest_props:Ob,run:Zh,run_after_blockers:tu,safe_get:yp,sanitize_slots:km,save:Xh,select_option:Jr,selectedcontent:Xm,self:xb,set:x,set_attribute:ne,set_checked:yo,set_class:de,set_custom_element_data:Wm,set_default_checked:Um,set_default_value:Hm,set_selected:wo,set_style:tt,set_text:O,set_value:Qr,set_xlink_attribute:Km,setup_stores:Mh,sibling:k,slot:wm,snapshot:Un,snippet:Zt,spread_props:ys,state:V,stopImmediatePropagation:Ib,stopPropagation:Sb,store_get:jh,store_mutate:Oh,store_set:Gc,store_unsub:Dh,strict_equals:sp,tag:kh,tag_proxy:Vc,template_effect:z,text:Wt,tick:bs,to_array:Cc,trace:wh,track_reactivity_loss:gi,transition:Cm,trusted:kb,untrack:Ce,update:gr,update_legacy_props:jb,update_pre:rp,update_pre_prop:Lb,update_pre_store:zh,update_prop:Db,update_store:Nh,user_effect:Ie,user_pre_effect:mu,validate_binding:Vb,validate_dynamic_element_tag:Hp,validate_snippet_args:dm,validate_store:Kp,validate_void_dynamic_element:Up,wait:Qh,get window(){return _i},with_script:Tp,wrap_snippet:Wp},Symbol.toStringTag,{value:"Module"}));class Ml{#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 Ol{#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 Wb=["workspace","user"],So="state:manage",Qt={ephemeral:new Ml,session:new Ml,workspace:new Ol("sh3:workspace:"),user:new Ol("sh3:user:")},ii=new Map;let oi=!1;function Yb(e,t,n){ii.set(`${e}:${t}`,{zone:e,shardId:t,value:n}),!oi&&(oi=!0,queueMicrotask(()=>{oi=!1;for(const{zone:r,shardId:s,value:a}of ii.values())Qt[r].write(s,a);ii.clear()}))}function Ea(e,t){const n={};for(const r of Object.keys(t)){const s=t[r],o=Qt[r].read(e),l={...s,...o??{}},c=ie(l);n[r]=c,Wb.includes(r)&&ms(()=>{let u=!0;Ie(()=>{const d=Un(c);if(u){u=!1;return}Yb(r,e,d)})})}return n}function Nl(e,t){Qt[e]=t}function Gb(e,t){return Qt[e].read(t)}function Ai(e,t){Qt[e].delete(t)}const Xb="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(Xb);const Jb=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function Zb(e){const t=document.activeElement;function n(){return Array.from(e.querySelectorAll(Jb))}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 Qb=T('<div class="modal-frame svelte-2tcvcm" role="presentation"><div class="modal-box svelte-2tcvcm" role="dialog" aria-modal="true" tabindex="-1"><!></div></div>');function $b(e,t){re(t,!0);let n;Ie(()=>{if(n)return Zb(n)});function r(l){t.onBackdropClick&&l.target===l.currentTarget&&t.onBackdropClick()}var s=Qb(),a=p(s),o=p(a);gs(o,()=>t.Content,(l,c)=>{c(l,ys(()=>t.contentProps,{get close(){return t.close}}))}),v(a),Ne(a,l=>n=l,()=>n),v(s),z(()=>tt(a,t.boxStyle)),F("click",s,r),E(e,s),se()}oe(["click"]);const Eo={};function eg(e,t){Eo[e]=t}function tg(e){delete Eo[e]}function Ia(e){const t=Eo[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 En=ie(new Map),at=ie({id:null}),yr=ie({id:null});function ng(){return yr.id}function Io(e){En.set(e.manifest.id,e)}function Aa(){return Array.from(En.values()).map(e=>e.manifest)}function ed(){const e=at.id;return e?En.get(e)?.manifest??null:null}function In(e){return En.get(e)}const Wr=[],cr=[];let $r=null;function rg(e){$r=e}function sg(e){if(!at.id)throw new Error("pushNavEntry requires an active app");const t=Symbol("nav-entry");return cr.push({id:t,label:e.label,onPop:e.onPop}),{remove(){const n=cr.findIndex(r=>r.id===t);n>=0&&cr.splice(n,1)}}}function td(e){const t=Symbol("dismissable");return Wr.push({id:t,dismiss:e}),{unregister(){const n=Wr.findIndex(r=>r.id===t);n>=0&&Wr.splice(n,1)}}}function nd(){cr.length=0}function ag(){if(Wr.length>0){Wr.pop().dismiss();return}if(cr.length>0){cr.pop().onPop();return}at.id&&$r&&$r.returnToHome()}function ig(){at.id||yr.id&&$r&&$r.launchApp(yr.id)}const kt=[];let ta=!1,Pt=null;const og=.5;function rd(){const e=Ia("modal");if(kt.length===0){Pt&&(Pt.remove(),Pt=null);return}Pt||(Pt=document.createElement("div"),Pt.className="sh3-modal-backdrop",Pt.style.position="absolute",Pt.style.inset="0",Pt.style.pointerEvents="auto",Pt.style.transition="background-color 120ms ease",Pt.style.background=`rgba(0, 0, 0, ${og})`);const t=kt[kt.length-1].host;e.insertBefore(Pt,t)}function sd(e){e.key==="Escape"&&kt.length!==0&&(e.stopPropagation(),e.preventDefault(),kt[kt.length-1].handle.close())}function lg(){ta||(ta=!0,document.addEventListener("keydown",sd,!0))}function cg(){kt.length>0||ta&&(ta=!1,document.removeEventListener("keydown",sd,!0))}function ad(e){const t=kt.indexOf(e);t<0||(kt.splice(t,1),Ue(e.frame),e.host.remove(),rd(),cg())}function ug(e,t,n){const r=Ia("modal"),s=document.createElement("div");s.className="sh3-modal-host",s.style.position="absolute",s.style.inset="0",s.style.pointerEvents="auto",r.appendChild(s);const a={},o={close:()=>ad(a)},l=td(()=>o.close()),c=o.close;o.close=()=>{l.unregister(),c()};const u=Me($b,{target:s,props:{Content:e,contentProps:t??{},close:o.close,boxStyle:n?.boxStyle,onBackdropClick:n?.dismissOnBackdrop?o.close:void 0}});return a.host=s,a.frame=u,a.handle=o,kt.push(a),rd(),lg(),o}function dg(){for(;kt.length>0;)ad(kt[kt.length-1])}const Ca={open:ug,closeAll:dg};var fg=T('<div class="popup-frame svelte-mp81cl" role="menu" tabindex="-1"><!></div>');function vg(e,t){re(t,!0);let n,r=V(-9999),s=V(-9999);Ie(()=>{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 m=t.anchorRect.top-l.height-c;f=m>=c?m:Math.max(c,d-l.height-c)}x(r,f,!0),x(s,h,!0)});var a=fg(),o=p(a);gs(o,()=>t.Content,(l,c)=>{c(l,ys(()=>t.contentProps,{get close(){return t.close}}))}),v(a),Ne(a,l=>n=l,()=>n),z(()=>tt(a,`top: ${i(r)??""}px; left: ${i(s)??""}px;`)),E(e,a),se()}function hg(e){return e instanceof HTMLElement?e.getBoundingClientRect():new DOMRect(e.x,e.y,0,0)}let zt=null;function id(e){if(!zt)return;const t=e.target;t&&zt.host.contains(t)||zt.handle.close()}function od(e){zt&&e.key==="Escape"&&(e.stopPropagation(),e.preventDefault(),zt.handle.close())}function pg(){document.addEventListener("pointerdown",id,!0),document.addEventListener("keydown",od,!0)}function mg(){document.removeEventListener("pointerdown",id,!0),document.removeEventListener("keydown",od,!0)}function Ci(e){zt===e&&(zt=null,mg(),Ue(e.frame),e.host.remove())}function bg(e,t,n){zt&&Ci(zt);const r=Ia("popup"),s=document.createElement("div");s.className="sh3-popup-host",s.style.position="absolute",s.style.inset="0",s.style.pointerEvents="none",r.appendChild(s);const a=hg(t.anchor),o={},l={close:()=>Ci(o)},c=td(()=>l.close()),u=l.close;l.close=()=>{c.unregister(),u()};const d=Me(vg,{target:s,props:{Content:e,contentProps:n??{},anchorRect:a,close:l.close}});return o.host=s,o.frame=d,o.handle=l,zt=o,queueMicrotask(pg),l}function gg(){zt&&Ci(zt)}const Ti={show:bg,close:gg};var _g=T('<div role="status" aria-live="polite"><span class="toast-level svelte-12gwnj0"> </span> <span class="toast-message svelte-12gwnj0"> </span></div>');function yg(e,t){var n=_g(),r=p(n),s=p(r,!0);v(r);var a=k(r,2),o=p(a,!0);v(a),v(n),z(()=>{de(n,1,`toast toast-${t.level??""}`,"svelte-12gwnj0"),O(s,t.level),O(o,t.message)}),F("click",n,function(...l){t.close?.apply(this,l)}),E(e,n)}oe(["click"]);const na=new Set;let ft=null;function wg(){if(ft&&ft.isConnected)return ft;const e=Ia("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 Ri(e){na.has(e)&&(na.delete(e),e.timer!==null&&(clearTimeout(e.timer),e.timer=null),Ue(e.instance),e.host.remove())}function kg(e,t={}){const n=t.level??"info",r=t.duration??3e3,s=wg(),a=document.createElement("div");a.className="sh3-toast-host",s.appendChild(a);const o={},l={close:()=>Ri(o)},c=Me(yg,{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(()=>Ri(o),r):null,na.add(o),l}function xg(){for(const e of[...na])Ri(e)}const ld={notify:kg,clear:xg},zl={w:120,h:80};function cd(e){if(e.type==="slot")return{...zl};if(e.type==="tabs")return{...zl};const t=e.children.map(cd);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 ql=32,Vl={x:48,y:48};function Sg(e,t){if(e.length===0)return{...Vl};const n=e[e.length-1],r={x:n.position.x+ql,y:n.position.y+ql};return r.x+120>t.w||r.y+32>t.h?{...Vl}:r}let Bl=0;function Eg(){return Bl+=1,`float-${Date.now().toString(36)}-${Bl.toString(36)}`}function ud(e){return e.type==="slot"?e.viewId==null:e.type==="tabs"?e.tabs.every(t=>t.viewId==null):e.children.every(ud)}let Ig=[],Ao=null,Co=()=>({w:1600,h:900});function Ag(e,t){Ao=e,Co=t}function Cg(){Ao=null,Co=()=>({w:1600,h:900})}function Ta(){return Ao??Ig}let Fl=0;function Tg(e){return Fl+=1,`float:${e}:${Fl}`}const Rg={w:600,h:400};function Pg(e,t){return{w:Math.max(e.w,t.w),h:Math.max(e.h,t.h)}}function jg(e,t={}){const n=Ta(),r=Eg(),s=Tg(e);let a;if(t.dismissable)a={type:"slot",slotId:s,viewId:e};else{const d=t.title??e,f={slotId:s,viewId:e,label:d};t.meta&&(f.meta=t.meta),a={type:"tabs",tabs:[f],activeTab:0}}const o=cd(a),l=t.size??Pg(Rg,o),c=t.position??Sg(n,Co()),u={id:r,content:a,position:c,size:l,title:t.title};return t.dismissable&&(u.dismissable=!0),n.push(u),r}function Dg(e){const t=Ta(),n=t.findIndex(r=>r.id===e);n<0||t.splice(n,1)}function Lg(){return Ta().slice()}function Mg(e){const t=Ta(),n=t.findIndex(s=>s.id===e);if(n<0||n===t.length-1)return;const[r]=t.splice(n,1);t.push(r)}const ct={open:jg,close:Dg,list:Lg,focus:Mg};let ra=null;function Og(e){ra=e}function Ng(){ra=null}function To(){if(!ra)throw new Error("presetManager: no app attached — bind an AppLayoutBlob first");return ra}function zg(){return Object.keys(To().presets)}function qg(){return To().activePreset}function Vg(e){const t=To();if(!(e in t.presets))throw new Error(`presetManager.switch: unknown preset "${e}"`);t.activePreset=e}const Bg={list:zg,active:qg,switch:Vg},ir=new Map,zs=new Map;function Ul(e){const t=zs.get(e);if(t)for(const n of t)n()}function dd(e,t){const n=Symbol();let r=ir.get(e);r||(r=new Map,ir.set(e,r)),r.set(n,t),Ul(e);let s=!1;return()=>{if(s)return;s=!0;const a=ir.get(e);a&&a.delete(n)&&(a.size===0&&ir.delete(e),Ul(e))}}function Ra(e){const t=ir.get(e);return t?Array.from(t.values()):[]}function Fg(){return Array.from(ir.keys())}function fd(e,t){let n=zs.get(e);n||(n=new Set,zs.set(e,n)),n.add(t);let r=!1;return()=>{r||(r=!0,n.delete(t),n.size===0&&zs.delete(e))}}const Ug=Object.freeze([".md",".txt",".json",".guml",".css",".js",".ts",".tsx",".jsx",".html",".svg",".csv",".yaml",".yml",".xml",".log",".ini",".toml"]);function Hg(e){return e.kind?e.kind:e.extension&&Ug.includes(e.extension.toLowerCase())?"text":"binary"}const qs=[];function Hl(e){return qs.push(e),()=>{const t=qs.indexOf(e);t>=0&&qs.splice(t,1)}}function Kg(e,t=[]){return[...qs,...t].filter(r=>{try{return r.appliesTo(e)}catch{return!1}}).sort((r,s)=>(s.priority??0)-(r.priority??0))[0]??null}var Wg=T("<span> </span>"),Yg=T('<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),Gg=T("<option> </option>"),Xg=T("<button> </button>"),Jg=T('<pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre>'),Zg=T('<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>'),Qg=T('<div class="sh3-conflict-text svelte-iwgja4"><!></div>');function $g(e,t){re(t,!0);let n=V("");Ie(()=>{(!i(n)||!t.item.branches.find(m=>m.origin===i(n)))&&x(n,t.item.branches[0]?.origin??"local",!0)});const r=H(()=>t.item.branches.length===2),s=H(()=>i(r)?t.item.branches[0]:t.item.branches.find(m=>m.origin===i(n))??t.item.branches[0]),a=H(()=>i(r)?t.item.branches[1]:t.item.branches.find(m=>m.origin===t.selectedOrigin)??t.item.branches[1]??t.item.branches[0]);function o(m,I){const g=(m??"").split(/\r?\n/),y=(I??"").split(/\r?\n/),w=[],_=Math.max(g.length,y.length);for(let b=0;b<_;b++){const A=g[b],L=y[b];A===L?typeof A=="string"&&w.push({kind:"same",text:A}):(typeof A=="string"&&w.push({kind:"left",text:A}),typeof L=="string"&&w.push({kind:"right",text:L}))}return w}const l=H(()=>!i(s)||!i(a)?[]:o(i(s).content??"",i(a).content??"")),c=H(()=>i(l).filter(m=>m.kind!=="same").length);var u=Qg(),d=p(u);{var f=m=>{var I=Yg(),g=pe(I),y=p(g);let w;var _=p(y),b=p(_);v(_);var A=k(_,2),L=p(A),C=p(L,!0);v(L),v(A),v(y);var S=k(y,2);let j;var P=p(S),D=p(P);v(P);var R=k(P,2),M=p(R),B=p(M,!0);v(M),v(R),v(S),v(g);var N=k(g,2),q=p(N),K=p(q);v(q);var Y=k(q,2),te=p(Y);fe(te,21,()=>i(l),Vt,(J,ae)=>{var W=Wg(),Z=p(W);v(W),z(()=>{de(W,1,`diff-${i(ae).kind}`,"svelte-iwgja4"),O(Z,`${i(ae).kind==="same"?" ":i(ae).kind==="left"?"- ":"+ "}${i(ae).text??""}
|
|
8
|
-
`)}),E(J,W)}),v(te),v(Y),v(N),z(()=>{w=de(y,1,"sh3-conflict-text-pane svelte-iwgja4",null,w,{selected:i(s).origin===t.selectedOrigin}),O(b,`${i(s).origin??""} · v${i(s).version??""}`),O(C,i(s).content??""),j=de(S,1,"sh3-conflict-text-pane svelte-iwgja4",null,j,{selected:i(a).origin===t.selectedOrigin}),O(D,`${i(a).origin??""} · v${i(a).version??""}`),O(B,i(a).content??""),O(K,`Line diff (${i(c)??""} difference${i(c)===1?"":"s"})`)}),F("click",y,()=>t.onSelect(i(s).origin)),F("keydown",y,J=>{(J.key==="Enter"||J.key===" ")&&t.onSelect(i(s).origin)}),F("click",S,()=>t.onSelect(i(a).origin)),F("keydown",S,J=>{(J.key==="Enter"||J.key===" ")&&t.onSelect(i(a).origin)}),E(m,I)},h=m=>{var I=Zg(),g=p(I),y=p(g),w=k(p(y));fe(w,21,()=>t.item.branches,L=>L.origin,(L,C)=>{var S=Gg(),j=p(S,!0);v(S);var P={};z(()=>{O(j,i(C).origin),P!==(P=i(C).origin)&&(S.value=(S.__value=i(C).origin)??"")}),E(L,S)}),v(w),v(y),v(g);var _=k(g,2);fe(_,21,()=>t.item.branches,L=>L.origin,(L,C)=>{var S=Xg();let j;var P=p(S);v(S),z(()=>{j=de(S,1,"sh3-conflict-text-tab svelte-iwgja4",null,j,{selected:i(C).origin===t.selectedOrigin}),O(P,`${i(C).origin??""} · v${i(C).version??""}`)}),F("click",S,()=>t.onSelect(i(C).origin)),E(L,S)}),v(_);var b=k(_,2);{var A=L=>{var C=Jg(),S=p(C),j=p(S,!0);v(S),v(C),z(()=>O(j,i(a).content??"")),E(L,C)};U(b,L=>{i(a)&&L(A)})}v(I),Zr(w,()=>i(n),L=>x(n,L)),E(m,I)};U(d,m=>{i(r)&&i(s)&&i(a)?m(f):m(h,-1)})}v(u),E(e,u),se()}oe(["click","keydown"]);var e_=T("· <code> </code>",1),t_=T('<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>'),n_=T('<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 r_(e,t){re(t,!0);function n(o){return typeof o!="number"?"—":o<1024?`${o} B`:o<1024*1024?`${(o/1024).toFixed(1)} KiB`:`${(o/(1024*1024)).toFixed(2)} MiB`}function r(o){const l=Date.now()-o;return l<6e4?"just now":l<36e5?`${Math.floor(l/6e4)}m ago`:l<864e5?`${Math.floor(l/36e5)}h ago`:new Date(o).toLocaleString()}var s=n_(),a=k(p(s),2);fe(a,21,()=>t.item.branches,o=>o.origin,(o,l)=>{var c=t_(),u=p(c);let d;var f=p(u),h=p(f,!0);v(f);var m=k(f,2),I=p(m),g=k(I);{var y=w=>{var _=e_(),b=k(pe(_)),A=p(b,!0);v(b),z(()=>O(A,i(l).hashPreview)),E(w,_)};U(g,w=>{i(l).hashPreview&&w(y)})}v(m),v(u),v(c),z((w,_)=>{d=de(u,1,"sh3-conflict-meta-row svelte-1nz3djn",null,d,{selected:i(l).origin===t.selectedOrigin}),O(h,i(l).origin),O(I,`v${i(l).version??""} · ${w??""} · ${_??""} `)},[()=>r(i(l).at),()=>n(i(l).sizeBytes)]),F("click",u,()=>t.onSelect(i(l).origin)),E(o,c)}),v(a),v(s),E(e,s),se()}oe(["click"]);const s_=1048576;function a_(e){return typeof e=="number"&&e>s_}const i_={id:"sh3-core.text",priority:1,appliesTo:e=>Hg(e)!=="text"?!1:!e.branches.some(t=>a_(t.sizeBytes)),mount(e,t){const n=Me($g,{target:e,props:t});return()=>{Ue(n)}}},o_={id:"sh3-core.meta",priority:0,appliesTo:()=>!0,mount(e,t){const n=Me(r_,{target:e,props:t});return()=>{Ue(n)}}};let Kl=!1;function l_(){Kl||(Kl=!0,Hl(i_),Hl(o_))}var c_=T('<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 u_(e,t){var n=c_(),r=p(n),s=p(r);v(r);var a=k(r,4),o=p(a);Ir(o,!0);var l=k(o,2),c=k(l,2);v(a),v(n),z(()=>O(s,`${t.count??""} conflict${t.count===1?"":"s"} to resolve`)),F("click",o,function(...u){t.onOverwriteMostRecent?.apply(this,u)}),F("click",l,function(...u){t.onResolveIndividually?.apply(this,u)}),F("click",c,function(...u){t.onCancel?.apply(this,u)}),E(e,n)}oe(["click"]);var d_=T('<span class="sh3-conflict-detail-counter svelte-pw8iv6"> </span>'),f_=T('<button type="button"><span><!></span> <span class="sh3-conflict-detail-rail-label svelte-pw8iv6"> </span></button>'),v_=T('<aside class="sh3-conflict-detail-rail svelte-pw8iv6"></aside>'),h_=T('<label class="sh3-conflict-detail-branch svelte-pw8iv6"><input type="radio"/> <span> </span></label>'),p_=T('<div class="sh3-conflict-detail-branches svelte-pw8iv6"></div> <div class="sh3-conflict-detail-renderer svelte-pw8iv6"></div>',1),m_=T('<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 b_(e,t){re(t,!0);const n=H(()=>t.items[t.currentIndex]),r=H(()=>i(n)?t.selections[i(n).id]??i(n).branches[0]?.origin??"":""),s=H(()=>i(n)?Kg(i(n),t.contributed):null);let a=V(void 0),o=null;Ie(()=>{if(i(n),i(s),i(r),o&&(o(),o=null),!i(a)||!i(n)||!i(s))return;const q={item:i(n),selectedOrigin:i(r),onSelect:K=>t.onSelect(i(n).id,K)};return o=i(s).mount(i(a),q),()=>{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=H(()=>t.items.map(q=>t.skipped[q.id]?"skipped":t.selections[q.id]?"resolved":"pending"));var d=m_(),f=p(d),h=p(f),m=p(h,!0);v(h);var I=k(h,2);{var g=q=>{var K=d_(),Y=p(K);v(K),z(()=>O(Y,`${t.currentIndex+1} / ${t.items.length??""}`)),E(q,K)};U(I,q=>{t.items.length>1&&q(g)})}v(f);var y=k(f,2),w=p(y);{var _=q=>{var K=v_();fe(K,23,()=>t.items,Y=>Y.id,(Y,te,J)=>{var ae=f_();let W;var Z=p(ae),le=p(Z);{var me=Te=>{var dt=Wt("✓");E(Te,dt)},Q=Te=>{var dt=Wt("⟶");E(Te,dt)},ve=Te=>{var dt=Wt("·");E(Te,dt)};U(le,Te=>{i(u)[i(J)]==="resolved"?Te(me):i(u)[i(J)]==="skipped"?Te(Q,1):Te(ve,-1)})}v(Z);var ye=k(Z,2),Ze=p(ye,!0);v(ye),v(ae),z(()=>{W=de(ae,1,"sh3-conflict-detail-rail-item svelte-pw8iv6",null,W,{selected:i(J)===t.currentIndex}),de(Z,1,`sh3-conflict-detail-rail-state ${i(u)[i(J)]??""}`,"svelte-pw8iv6"),O(Ze,i(te).label)}),F("click",ae,()=>t.onNavigate(i(J))),E(Y,ae)}),v(K),E(q,K)};U(w,q=>{t.items.length>1&&q(_)})}var b=k(w,2),A=p(b);{var L=q=>{var K=p_(),Y=pe(K);fe(Y,21,()=>i(n).branches,J=>J.origin,(J,ae)=>{var W=h_(),Z=p(W);_e(Z);var le=k(Z,2),me=p(le);v(le),v(W),z(()=>{ne(Z,"name",`branch-${i(n).id??""}`),Qr(Z,i(ae).origin),yo(Z,i(r)===i(ae).origin),O(me,`${i(ae).origin??""} · v${i(ae).version??""}`)}),F("change",Z,()=>t.onSelect(i(n).id,i(ae).origin)),E(J,W)}),v(Y);var te=k(Y,2);Ne(te,J=>x(a,J),()=>i(a)),E(q,K)};U(A,q=>{i(n)&&q(L)})}v(b),v(y);var C=k(y,2),S=p(C),j=p(S),P=k(j,2),D=p(P,!0);v(P);var R=k(P,2);v(S);var M=k(S,2),B=p(M),N=k(B,2);v(M),v(C),v(d),z(()=>{O(m,t.title),j.disabled=t.currentIndex===0,O(D,i(n)&&t.skipped[i(n).id]?"Unskip":"Skip"),R.disabled=t.currentIndex>=t.items.length-1}),F("click",j,l),F("click",P,()=>i(n)&&t.onToggleSkip(i(n).id)),F("click",R,c),F("click",B,function(...q){t.onCancel?.apply(this,q)}),F("click",N,function(...q){t.onDone?.apply(this,q)}),E(e,d),se()}oe(["click","change"]);function vd(e,t){return t.at-e.at}function g_(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(vd)[0]}}function __(e,t){re(t,!0);const n=t.items.length>=2||t.requirePrompt;let r=V(ie(n?"prompt":"detail")),s=V(ie(Object.fromEntries(t.items.map(b=>{const A=g_(b.branches,t.mostRecentBy)?.origin??b.branches[0]?.origin??"";return[b.id,A]})))),a=V(ie({})),o=V(0),l=!1;bo(()=>{l||(l=!0,t.onCancel())});function c(){if(l)return;l=!0;const b=[],A=[];for(const L of t.items){if(i(a)[L.id]){A.push(L.id);continue}const C=i(s)[L.id],S=L.branches.find(j=>j.origin===C);S&&b.push({itemId:L.id,chosen:S,meta:L.meta})}t.onResolve(b,A),t.close()}function u(){l||(l=!0,t.onCancel(),t.close())}function d(){c()}function f(){x(r,"detail")}function h(b,A){if(x(s,{...i(s),[b]:A},!0),i(a)[b]){const L={...i(a)};delete L[b],x(a,L,!0)}}function m(b){x(a,{...i(a),[b]:!i(a)[b]},!0)}function I(b){x(o,b,!0)}var g=Ye(),y=pe(g);{var w=b=>{u_(b,{get count(){return t.items.length},onOverwriteMostRecent:d,onResolveIndividually:f,onCancel:u})},_=b=>{b_(b,{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:I,onToggleSkip:m,onDone:c,onCancel:u})};U(y,b=>{i(r)==="prompt"?b(w):b(_,-1)})}E(e,g),se()}const hd="sh3-core.conflictRenderer";class pd extends Error{constructor(t){super(t),this.name="ConflictPermissionError"}}class y_ extends Error{constructor(){super("Caller shard deactivated while conflict session was active"),this.name="ConflictSessionOrphanedError"}}function w_(){try{return Ra(hd)}catch{return[]}}function md(e,t={}){return l_(),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??vd,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"}))}};Ca.open(__,d,{boxStyle:"max-width: none; min-width: 360px; padding: 0;"})})}function k_(e){const t=e.documents({format:"text"});return{status:n=>t.status(n),readBranch:(n,r)=>t.readBranch(n,r),resolveConflict:(n,r)=>t.resolveConflict(n,r)}}function x_(e,t){const n=e.browse;if(!n?.statusFrom||!n?.readBranchFrom||!n?.resolveConflictFrom)throw new pd(`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 S_(e){const t=e.lastIndexOf(".");if(t<0)return;const n=e.lastIndexOf("/");if(!(t<n))return e.slice(t)}async function E_(e,t,n={}){const r=e.shardId,s=t.shardId===r?k_(e):x_(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=S_(d),m=[];for(const I of f.branches??[]){const g=await s.readBranch(d,I.origin).catch(()=>null);m.push({origin:I.origin,version:I.version,at:I.at,content:g??void 0,sizeBytes:g?new TextEncoder().encode(g).length:void 0})}o.push({id:d,label:d,extension:h,branches:m,meta:{shardId:t.shardId,path:d,docVersion:f.version}})}const l=await md(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 I_={resolve:md,resolveDocuments:E_},bd="sh3.color-picker",A_={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 C_(e={}){return[...Ra(bd),A_].sort((r,s)=>(s.priority??0)-(r.priority??0))[0].open(e)}const T_={pick:C_};let Ln=null;function R_(e){Ln=e}async function ur(e){return Ln?{...Ln.bindings[e]??{}}:{}}async function Wl(e,t,n){if(!Ln)return;const r={...Ln.bindings[e]??{}};n===void 0?delete r[t]:r[t]=n,Ln.bindings={...Ln.bindings,[e]:r}}const Ro="sh3.actions",li=new Set;function P_(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.`),()=>{};li.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.`),li.add(e.id);const r=dd(Ro,{action:e,ownerShardId:t});let s=!1;return()=>{s||(s=!0,r(),li.delete(e.id))}}function nt(){return Ra(Ro)}function j_(e){return fd(Ro,e)}const D_=["Ctrl","Alt","Shift","Meta"],Yl={control:"Ctrl",ctrl:"Ctrl",alt:"Alt",option:"Alt",shift:"Shift",meta:"Meta",cmd:"Meta",command:"Meta",super:"Meta",win:"Meta"},L_=new Set(["Control","Alt","Shift","Meta"]);function gd(e){return e.length===1?e.toUpperCase():e}function Po(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 Yl)r.add(Yl[l]);else{if(s!==void 0)throw new Error(`Multiple keys in shortcut: "${e}"`);s=gd(o)}}if(s===void 0)throw new Error(`No key in shortcut: "${e}"`);return[...D_.filter(o=>r.has(o)),s].join("+")}function _d(e,t){if(!e.toLowerCase().includes("mod"))return e;const n=e.split("+").map(r=>r.toLowerCase()==="mod"?t==="mac"?"Meta":"Ctrl":r);return Po(n.join("+"))}function M_(e){if(L_.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=gd(e.key);return[...t,n].join("+")}function O_(){return typeof navigator>"u"?"other":/Mac|iPhone|iPad|iPod/i.test(navigator.platform)?"mac":"other"}function ws(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?null:Po(r)}return e.defaultShortcut?_d(e.defaultShortcut,n):null}function N_(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?{shortcut:null,source:"disabled"}:{shortcut:Po(r),source:"user"}}return e.defaultShortcut?{shortcut:_d(e.defaultShortcut,n),source:"default"}:{shortcut:null,source:"none"}}function Pa(e){return e==="home"?"home":e==="app"?"app":typeof e=="string"&&e.startsWith("view:")?"view":typeof e=="string"&&e.startsWith("focus:")?"focus":"element"}function jo(e){return Array.isArray(e)?e:[e]}function yd(e){return e==="home"||e==="app"?null:typeof e=="string"?e:e.element}function ks(e,t,n){const r=jo(e),s={};for(const a of r){const o=Pa(a);(s[o]??=[]).push(a)}for(const a of ja){const o=s[a];if(o){for(const l of o)if(es(l,t,n))return l}}return null}function z_(e,t){return typeof e=="string"||typeof t=="string"?e===t:e.element===t.element}function wd(e){return typeof e=="string"?e:`element:${e.element}`}function q_(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 ja=["element","focus","view","app","home"];function es(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 V_(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=ws(r.action,t.bindings,t.platform);if(s)for(const a of jo(r.action.scope)){if(!es(a,t,r.ownerShardId))continue;const o=Pa(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 B_(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 F_(e){const t=V_(e.entries,e.state),n=new Map(e.entries.map(r=>[r.action.id,r]));for(const r of ja){const s=t[r].get(e.shortcut);if(!s)continue;const a=n.get(s);if(a)return B_(e.target)&&!a.action.allowInInputs?null:(e.runAction(s,{action:{id:a.action.id,label:a.action.label},appId:e.state.activeAppId,viewId:e.state.focusedViewId??void 0,selection:e.state.selection??void 0,invokedVia:"keyboard",dispatch:e.dispatch??(()=>{})}),s)}return null}let Bt=V(null);function U_(){return i(Bt)}function H_(e){return{get(){return i(Bt)},set(t){x(Bt,{type:t.type,ref:t.ref,ownerShardId:e},!0)},clear(){if(i(Bt)){if(i(Bt).ownerShardId!==e){console.warn(`[sh3] Shard "${e}" tried to clear selection owned by "${i(Bt).ownerShardId}". Ignoring.`);return}x(Bt,null)}}}}function kd(e){i(Bt)&&i(Bt).ownerShardId===e&&x(Bt,null)}function K_(){x(Bt,null)}const sa=new Map,xd=new Set;function W_(e){xd.add(e)}function Y_(e,t){if(sa.has(e))throw new Error(`View "${e}" is already registered`);sa.set(e,t);for(const n of xd)n(e,t)}function Sd(e){return sa.get(e)}function Ed(e){sa.delete(e)}const ts=new Map;function G_(e,t){if(ts.has(e))throw new Error(`Verb "${e}" is already registered`);ts.set(e,t)}function Gl(e){return ts.get(e)}function Id(e){ts.delete(e)}function Do(){return Array.from(ts.values()).sort((e,t)=>e.name.localeCompare(t.name))}function wr(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 Lo(e,t){if(Pi(e.docked,t))return{kind:"docked"};for(const n of e.floats)if(Pi(n.content,t))return{kind:"float",floatId:n.id};return null}function Pi(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(Pi(n,t))return!0;return!1}function Da(e,t){const n=wr(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 X_(e,t,n){const r=Math.max(0,Math.min(n,e.tabs.length));e.tabs.splice(r,0,t),e.activeTab=r}function J_(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 Xl(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 Z_(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 Ad(e,t,n,r){const s=ns(e,t);if(!s||Cd(e,t))return;if(t.length===0){const u=Z_(s),d=Xl(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=Xl(s,n,r),o=t.slice(0,-1),l=t[t.length-1],c=ns(e,o);!c||c.type!=="split"||(c.children[l]=a)}function ns(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 Cd(e,t){if(t.length===0)return!1;const n=ns(e,t.slice(0,-1));return!n||n.type!=="split"?!1:n.fixed?.[t[t.length-1]]===!0}function or(e){let t=!0;for(;t;)t=Td(e,null,0)}function Td(e,t,n){if(e.type==="split"){let r=!1;for(let s=0;s<e.children.length;s++)Td(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 xn=new Map,Vs=new Set;function Q_(e,t){for(const[n,r]of xn.entries()){if(r.viewId!==e||r.handle!==void 0)continue;const s={slotId:n,viewId:e,label:r.label,meta:r.meta,setDirty(a){La[n]=a},location(){return Lo(Ct(),n)}};queueMicrotask(()=>{if(xn.has(n)&&r.handle===void 0&&(r.handle=t.mount(r.host,s),(r.handle?.closable||n.startsWith("float:"))&&(Ma[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_(Q_);const La=ie({}),Ma=ie({});function $_(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",wd(`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?Sd(t):void 0,c={slotId:e,viewId:t??"",label:n,meta:r,setDirty(u){La[e]=u},location(){return Lo(Ct(),e)}};if(o.handle=l?.mount(s,c),(o.handle?.closable||e.startsWith("float:"))&&(Ma[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 Mo(e,t,n,r){Vs.delete(e);let s=xn.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",wd(`focus:${t}`))):(s.host.removeAttribute("data-sh3-view"),s.host.removeAttribute("data-sh3-scope"))):(s=$_(e,t,n,r),xn.set(e,s)),s.refcount++,s.host}function Oo(e,t){const n=xn.get(e);if(n){if(n.refcount--,n.refcount>0){t&&n.host.parentNode===t&&n.host.remove();return}Vs.add(e),queueMicrotask(()=>{if(!Vs.has(e))return;Vs.delete(e);const r=xn.get(e);!r||r.refcount>0||(r.resizeObserver?.disconnect(),r.handle?.unmount(),r.cancelPendingMount(),r.host.remove(),xn.delete(e),delete La[e],delete Ma[e])})}}function Rd(e){const t=ji.get(e);return t||xn.get(e)?.handle}function ey(e){return La[e]??!1}function ty(e){return ji.has(e)?!!ji.get(e).closable:Ma[e]??!1}const ji=new Map;function Pd(e){if(!e||typeof e!="object")return!1;const t=e.type;return t==="split"||t==="tabs"||t==="slot"}function ny(e){if(!e||typeof e!="object")return!1;const t=e;return Pd(t.docked)&&Array.isArray(t.floats)}function ry(e){return{docked:e,floats:[]}}function sy(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 jd(e){if(Array.isArray(e))return e.map(sy);if(ny(e))return[{name:"default",variants:{default:e}}];if(Pd(e))return[{name:"default",variants:{default:ry(e)}}];throw new Error("normalizeInitialLayout: input is not a LayoutNode, LayoutTree, or LayoutPreset[]")}function Jl(e){const t=[],n=r=>{if(r.type==="slot"){t.push({slotId:r.slotId,viewId:r.viewId,label:r.viewId||r.slotId});return}if(r.type==="tabs"){for(const s of r.tabs)t.push({slotId:s.slotId,viewId:s.viewId,label:s.label,meta:s.meta});return}for(const s of r.children)n(s)};return n(e),t}function No(e){const t=Jl(e.docked);for(const n of e.floats)t.push(...Jl(n.content));return t}Ai("workspace","__shell__");const ay={type:"slot",slotId:"sh3core.home",viewId:"sh3core:home"},iy=ie({docked:ay,floats:[]});let Ve=V(null),Oa=V("home");function oy(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 ly(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 cy(e){if(i(Ve))throw new Error(`Layout manager cannot attach app "${e.manifest.id}": app "${i(Ve).appId}" is still attached`);const t=`__sh3core__:app:${e.manifest.id}`,n=jd(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=Gb("workspace",t),a=oy(s);(a&&a.layoutVersion!==e.manifest.layoutVersion||s&&!a)&&Ai("workspace",t);const l=Ea(t,{workspace:r}).workspace;x(Ve,{appId:e.manifest.id,proxy:l,heldSlotIds:[]},!0),Og(l)}function uy(){if(!i(Ve))throw new Error("acquireAppSlotHolds: no app attached");if(i(Ve).heldSlotIds.length>0)return;const e=ly(i(Ve).proxy),t=No(e);for(const{slotId:n,viewId:r,label:s,meta:a}of t)Mo(n,r,s,a),i(Ve).heldSlotIds.push(n)}function dy(){if(!i(Ve))throw new Error("resetActivePresetToDefault: no app attached");const e=In(i(Ve).appId);if(!e)throw new Error(`resetActivePresetToDefault: attached app "${i(Ve).appId}" not in registry`);const t=jd(e.initialLayout),n=i(Ve).proxy,r=n.activePreset;let s=t.find(l=>l.name===r);s||(s=t[0],n.activePreset=s.name);for(const l of i(Ve).heldSlotIds)Oo(l);i(Ve).heldSlotIds=[];const a=structuredClone(s.variants.default);n.presets[n.activePreset].default=a;const o=No(a);for(const{slotId:l,viewId:c,label:u,meta:d}of o)Mo(l,c,u,d),i(Ve).heldSlotIds.push(l)}function Dd(){if(i(Ve)){Ng();for(const e of i(Ve).heldSlotIds)Oo(e);x(Ve,null)}}function Ld(){x(Oa,"home")}function Zl(){if(!i(Ve))throw new Error("Cannot switchToApp: no app is attached");x(Oa,"app")}const Bs=H(()=>{if(i(Oa)==="app"&&i(Ve)){const e=i(Ve).proxy,t=e.activePreset,n=e.presets[t];if(!n)throw new Error(`AppLayoutBlob active preset "${t}" not found in presets map`);return n.default}return iy});function Ct(){return i(Bs)}function Md(){return i(Oa)}const an={get root(){return i(Bs).docked},get tree(){return i(Bs)},get floats(){return i(Bs).floats}};let Od=V(null),Nd=V(ie(new Set)),Fs=V(ie(new Set)),zd=V(ie(new Set)),qd=V(null),Vd=V(ie({}));const fy=O_(),Di=new Set;function Tr(){for(const e of Di)try{e()}catch(t){console.error("[sh3] onActiveChange listener threw",t)}}function vy(e){return Di.add(e),()=>{Di.delete(e)}}function hy(){Tr()}function aa(e,t){x(Od,e,!0),x(Nd,new Set(t),!0),Tr()}function py(){const e=No(an.tree),t=new Set;for(const n of e)n.viewId!==null&&t.add(n.viewId);x(zd,t,!0),Tr()}function Bd(e){x(qd,e,!0),Tr()}function rs(e){x(Vd,{...e},!0),Tr()}function Yt(){return{activeAppId:i(Od),activeAppRequiredShards:i(Nd),autostartShards:i(Fs),mountedViewIds:i(zd),focusedViewId:i(qd),selection:U_(),bindings:i(Vd),platform:fy}}function my(e){i(Fs).has(e)||(x(Fs,new Set([...i(Fs),e]),!0),Tr())}var by=T('<div class="sh3-ctx-sep svelte-1667pfa" role="separator"></div>'),gy=T('<span class="sh3-ctx-chevron svelte-1667pfa">▸</span>'),_y=T('<span class="sh3-ctx-shortcut svelte-1667pfa"> </span>'),yy=T('<button role="menuitem"><span class="sh3-ctx-check svelte-1667pfa"> </span> <span class="sh3-ctx-label svelte-1667pfa"> </span> <!></button>'),wy=T("<!> <!>",1),ky=T('<div class="sh3-context-menu svelte-1667pfa" role="menu" tabindex="0"></div>');function ia(e,t){re(t,!0);const n=H(()=>t.sections.flatMap(c=>c.items));let r=V(0);function s(c,u){if(i(n).length===0)return 0;let d=c;for(let f=0;f<i(n).length;f++)if(d=(d+u+i(n).length)%i(n).length,!i(n)[d].disabled)return d;return c}function a(c){if(c.key==="ArrowDown")x(r,s(i(r),1),!0),c.preventDefault();else if(c.key==="ArrowUp")x(r,s(i(r),-1),!0),c.preventDefault();else if(c.key==="Enter"){const u=i(n)[i(r)];u&&!u.disabled&&(t.onInvoke(u.id),u.submenu||t.onDismiss()),c.preventDefault()}else if(c.key==="Escape")t.onDismiss(),c.preventDefault();else if(c.key.length===1){const u=c.key.toLowerCase(),d=(i(r)+1)%i(n).length;for(let f=0;f<i(n).length;f++){const h=(d+f)%i(n).length,m=i(n)[h];if(!m.disabled&&m.label.toLowerCase().startsWith(u)){x(r,h);break}}}}function o(c){c.disabled||(t.onInvoke(c.id),c.submenu||t.onDismiss())}var l=ky();Ir(l,!0),fe(l,23,()=>t.sections,c=>c.id,(c,u,d)=>{var f=wy(),h=pe(f);{var m=g=>{var y=by();E(g,y)};U(h,g=>{i(d)>0&&g(m)})}var I=k(h,2);fe(I,17,()=>i(u).items,g=>g.id,(g,y)=>{const w=H(()=>i(n).indexOf(i(y)));var _=yy();let b;var A=p(_),L=p(A,!0);v(A);var C=k(A,2),S=p(C,!0);v(C);var j=k(C,2);{var P=R=>{var M=gy();E(R,M)},D=R=>{var M=_y(),B=p(M,!0);v(M),z(()=>O(B,i(y).shortcut)),E(R,M)};U(j,R=>{i(y).submenu?R(P):i(y).shortcut&&R(D,1)})}v(_),z(()=>{b=de(_,1,"sh3-ctx-item svelte-1667pfa",null,b,{"sh3-ctx-active":i(w)===i(r),"sh3-ctx-disabled":i(y).disabled}),ne(_,"aria-disabled",i(y).disabled||void 0),O(L,i(y).checked?"✓":""),O(S,i(y).label)}),Oe("pointerenter",_,()=>{i(y).disabled||x(r,i(w),!0)}),F("click",_,()=>o(i(y))),E(g,_)}),E(c,f)}),v(l),F("keydown",l,a),E(e,l),se()}oe(["keydown","click"]);function Fd(e,t){re(t,!0);const n=H(()=>t.model.tiers.map(r=>({id:`tier:${r.tier}`,items:r.items.map(s=>({...s,icon:void 0}))})));ia(e,{get sections(){return i(n)},get onInvoke(){return t.onInvoke},get onDismiss(){return t.onClose}}),se()}function Ql(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function Ud(e,t){return{id:e.action.id,label:e.action.label,shortcut:ws(e.action,t.bindings,t.platform),group:e.action.group??"",icon:e.action.icon,checked:Ql(e.action.checked),disabled:Ql(e.action.disabled),submenu:e.action.submenu===!0}}function Hd(e,t,n,r){return jo(e.scope).some(a=>z_(a,n))?n==="app"||n==="home"||typeof n=="object"&&"element"in n?es(n,r,t):!0:!1}function Kd(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)||!Hd(a.action,a.ownerShardId,n,t))continue;const o=ks(a.action.scope,t,a.ownerShardId)??n;s.add(a.action.id),r[Pa(o)].push(Ud(a,t))}return{tiers:ja.map(a=>({tier:a,items:r[a]})).filter(a=>a.items.length>0)}}function xy(e,t,n,r){const s=[],a=new Set;for(const o of e)o.action.submenuOf===n&&(a.has(o.action.id)||Hd(o.action,o.ownerShardId,r,t)&&(a.add(o.action.id),s.push(Ud(o,t))));return s}function Sy(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 Ey(e,t,n){const r=[];for(const a of e){if(t===""&&a.submenuOf!==void 0)continue;const o=Sy(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 Iy=T('<span class="sh3-palette-badge svelte-1qdcgk6"> </span>'),Ay=T('<span class="sh3-palette-shortcut svelte-1qdcgk6"> </span>'),Cy=T('<button role="option"><span class="sh3-palette-label svelte-1qdcgk6"> </span> <!> <!></button>'),Ty=T('<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 Ry(e,t){re(t,!0);let n=G(t,"prefill",3,""),r=V(ie(n())),s=V(0);const a=H(()=>Ey(t.candidates,i(r),t.recency));Ie(()=>{i(s)>=i(a).length&&x(s,0)});function o(d){d.key==="ArrowDown"?(x(s,Math.min(i(s)+1,Math.max(0,i(a).length-1)),!0),d.preventDefault()):d.key==="ArrowUp"?(x(s,Math.max(i(s)-1,0),!0),d.preventDefault()):d.key==="Enter"?(i(a)[i(s)]&&(t.onInvoke(i(a)[i(s)].id),t.onClose()),d.preventDefault()):d.key==="Escape"&&(t.onClose(),d.preventDefault())}var l=Ty(),c=p(l);_e(c),Ir(c,!0);var u=k(c,2);fe(u,23,()=>i(a),d=>d.id,(d,f,h)=>{var m=Cy();let I;var g=p(m),y=p(g,!0);v(g);var w=k(g,2);{var _=L=>{var C=Iy(),S=p(C);v(C),z(()=>O(S,`[${i(f).scopeBadge??""}]`)),E(L,C)};U(w,L=>{i(f).scopeBadge&&L(_)})}var b=k(w,2);{var A=L=>{var C=Ay(),S=p(C,!0);v(C),z(()=>O(S,i(f).shortcut)),E(L,C)};U(b,L=>{i(f).shortcut&&L(A)})}v(m),z(()=>{I=de(m,1,"sh3-palette-item svelte-1qdcgk6",null,I,{"sh3-palette-active":i(h)===i(s)}),ne(m,"aria-selected",i(h)===i(s)),O(y,i(f).label)}),Oe("pointerenter",m,()=>x(s,i(h),!0)),F("click",m,()=>{t.onInvoke(i(f).id),t.onClose()}),E(d,m)}),v(u),v(l),F("keydown",l,o),Ee(c,()=>i(r),d=>x(r,d)),E(e,l),se()}oe(["keydown","click"]);function Py(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function jy(e,t,n={}){const r=[],s=new Set,a=n.filter?.submenuOf;for(const o of e){if(o.action.paletteItem===!1||Py(o.action.disabled)||a!==void 0&&o.action.submenuOf!==a||s.has(o.action.id))continue;const l=ks(o.action.scope,t,o.ownerShardId);l&&(s.add(o.action.id),r.push({id:o.action.id,label:o.action.label,shortcut:ws(o.action,t.bindings,t.platform),scopeBadge:yd(l),submenu:o.action.submenu===!0,submenuOf:a!==void 0?void 0:o.action.submenuOf}))}return r}let $l=!1;function zo(e){return e?e.closest("[data-sh3-view]")?.getAttribute("data-sh3-view")??null:null}function Wd(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=q_(n.getAttribute("data-sh3-scope")??"");if(s&&!(typeof s=="object"&&"element"in s&&!es(s,e.state)))return s;const a=n.parentElement;n=a?a.closest("[data-sh3-scope]"):null}const r=zo(t);if(r)return`focus:${r}`}return e.state.activeAppId?"app":"home"}function Yd(e,t){const n=nt().find(r=>r.action.id===e);if(!(!n||typeof n.action.run!="function"))try{n.action.run(t)}catch(r){console.error(`[sh3] action "${e}" threw:`,r)}}function Rr(e){const t=nt().find(r=>r.action.id===e);if(!t){console.warn(`[sh3] ctx.dispatch("${e}") — no action registered with that id.`);return}const n=Yt();Yd(e,{action:{id:t.action.id,label:t.action.label},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"programmatic",dispatch:Rr})}function Dy(e){const t=zo(e.target);Bd(t)}function Ly(e){queueMicrotask(()=>{const t=zo(document.activeElement);Bd(t)})}function My(e){return e instanceof Element?e.closest('[data-sh3-context-menu="native"]')!==null:!1}function Gd(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=xy(nt(),t,e,r);Me(ia,{target:a,props:{sections:[{id:`submenu:${e}`,items:c}],onInvoke:u=>{const d=nt().find(f=>f.action.id===u);if(!(!d||typeof d.action.run!="function")){try{d.action.run({action:{id:u,label:d.action.label},appId:t.activeAppId,viewId:t.focusedViewId??void 0,selection:t.selection??void 0,invokedVia:"context-menu",dispatch:Rr})}catch(f){console.error(`[sh3] context-menu submenu action "${u}" threw:`,f)}n.close()}},onDismiss:()=>n.close()}})}function Oy(e){if(My(e.target))return;const t=nt(),n=Yt(),r=Wd({event:e,state:n}),s=Kd(t,n,r);if(s.tiers.length===0)return;e.preventDefault();const a=Xn.popup.show(Fd,{anchor:{x:e.clientX,y:e.clientY}},{model:s,onInvoke:o=>{const l=nt().find(c=>c.action.id===o);if(l){if(l.action.submenu===!0){Gd(o,n,a,r);return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:l.action.label},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:Rr})}catch(c){console.error(`[sh3] context-menu action "${o}" threw:`,c)}}},onClose:()=>a.close()})}function Ny(e){const t=M_(e);if(!t)return;const n=nt(),r=Yt();F_({target:e.target,shortcut:t,state:r,entries:n,runAction:Yd,dispatch:Rr})&&e.preventDefault()}function Xd(){$l||($l=!0,document.addEventListener("keydown",Ny),document.addEventListener("focusin",Dy),document.addEventListener("focusout",Ly),document.addEventListener("contextmenu",Oy))}function qo(e){const t=nt(),n=Yt(),r=Wd({explicit:e.scope,state:n}),s=Kd(t,n,r);if(s.tiers.length===0)return;const a=Xn.popup.show(Fd,{anchor:{x:e.x,y:e.y}},{model:s,onInvoke:o=>{const l=nt().find(c=>c.action.id===o);if(l){if(l.action.submenu===!0){Gd(o,n,a,r);return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:l.action.label},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:Rr})}catch(c){console.error(`[sh3] context-menu action "${o}" threw:`,c)}}},onClose:()=>a.close()})}const zy=20;let Li=[];function qy(e){Li=[e,...Li.filter(t=>t!==e)].slice(0,zy)}function Na(e){const t=nt(),n=Yt(),r=jy(t,n,{filter:e?.filter}),s=Xn.modal.open(Ry,{candidates:r,recency:Li,prefill:e?.prefill??"",onInvoke:a=>{const o=nt().find(l=>l.action.id===a);if(o){if(qy(a),o.action.submenu===!0&&typeof o.action.run!="function"){s.close(),Na({filter:{submenuOf:a}});return}if(typeof o.action.run=="function")try{o.action.run({action:{id:a,label:o.action.label},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"palette",dispatch:Rr})}catch(l){console.error(`[sh3] palette action "${a}" threw:`,l)}}},onClose:()=>s.close()},{dismissOnBackdrop:!0})}const Vy=Object.freeze(Object.defineProperty({__proto__:null,attachGlobalListeners:Xd,openContextMenu:qo,openPalette:Na},Symbol.toStringTag,{value:"Module"}));function By(e,t){const n={element:[],focus:[],view:[],app:[],home:[]},r=new Set;for(const s of e){if(r.has(s.action.id))continue;const a=ks(s.action.scope,t,s.ownerShardId);if(!a)continue;r.add(s.action.id);const{shortcut:o,source:l}=N_(s.action,t.bindings,t.platform);n[Pa(a)].push({id:s.action.id,label:s.action.label,effectiveShortcut:o,bindingSource:l,scope:a,scopeBadge:yd(a),group:s.action.group,icon:s.action.icon,ownerShardId:s.ownerShardId,paletteItem:s.action.paletteItem!==!1,contextItem:s.action.contextItem!==!1})}return ja.flatMap(s=>n[s])}const Fy={async rebind(e,t,n){await Wl(e,t,n),Yt().activeAppId===e&&rs(await ur(e))},async resetBinding(e,t){await Wl(e,t,void 0),Yt().activeAppId===e&&rs(await ur(e))},async bindingsFor(e){const t=await ur(e),n={};for(const[r,s]of Object.entries(t))s!==null&&(n[r]=s);return n},openContextMenu:qo,openPalette:Na,listActive(){return By(nt(),Yt())},onActiveChange(e){const t=vy(e),n=j_(()=>{hy()});return()=>{t(),n()}}},Xn={state:Ea,modal:Ca,popup:Ti,toast:ld,float:ct,presets:Bg,conflicts:I_,color:T_,actions:Fy};function Zn(e,t,n){return`${e}/${t}/${n}`}function Uy(e,t){return`${e}/${t}/`}const Hy="sh3-documents",jt="docs",Ky=2;class Wy{#e=null;#t(){return this.#e||(this.#e=new Promise((t,n)=>{const r=indexedDB.open(Hy,Ky);r.onupgradeneeded=()=>{const s=r.result;s.objectStoreNames.contains(jt)||s.createObjectStore(jt)},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(jt,t).objectStore(jt),c=n(l);c.onsuccess=()=>s(c.result),c.onerror=()=>a(c.error)})}async read(t,n,r){const s=Zn(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=Zn(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=Zn(t,n,r);await this.#n("readwrite",a=>a.delete(s))}async rename(t,n,r,s){const a=Zn(t,n,r),o=Zn(t,n,s),l=await this.#t();return new Promise((c,u)=>{let d=!1;const f=l.transaction(jt,"readwrite"),h=f.objectStore(jt),m=h.get(a);m.onsuccess=()=>{const I=m.result;if(!I){d=!0,f.abort(),u(new Error(`Document not found at ${r}`));return}const g=h.getKey(o);g.onsuccess=()=>{if(g.result!==void 0){d=!0,f.abort(),u(new Error(`Document already exists at ${s}`));return}const y={...I,lastModified:Date.now()};h.put(y,o),h.delete(a)},g.onerror=()=>u(g.error)},m.onerror=()=>u(m.error),f.oncomplete=()=>c(),f.onerror=()=>{d||u(f.error)},f.onabort=()=>{}})}async list(t,n){const r=Uy(t,n),s=await this.#t();return new Promise((a,o)=>{const c=s.transaction(jt,"readonly").objectStore(jt),u=IDBKeyRange.bound(r,r+"",!1,!1),d=c.openCursor(u),f=[];d.onsuccess=()=>{const h=d.result;if(h){const m=h.value;f.push({path:h.key.slice(r.length),size:m.size,lastModified:m.lastModified}),h.continue()}else a(f)},d.onerror=()=>o(d.error)})}async exists(t,n,r){const s=Zn(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(jt,"readonly").objectStore(jt),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),m=h.indexOf("/");m>=0&&d.add(h.slice(0,m)),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(jt,"readonly").objectStore(jt),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),m=h.indexOf("/");if(m>=0){const I=f.value;d.push({shardId:h.slice(0,m),path:h.slice(m+1),size:I.size,lastModified:I.lastModified})}f.continue()}else s(d)},u.onerror=()=>a(u.error)})}}class Yy{#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 Gy{#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 wn=new Gy,Xy=1e3;function Jy(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){wn.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),wn.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=wn.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 Zy(c,u,d?.debounceMs??Xy);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 Zy{#e;#t;#n;#a=null;#s=null;#i=!1;#r=!1;constructor(t,n,r){this.#e=t,this.#t=n,this.#n=r}get dirty(){return this.#i}get path(){return this.#t}update(t){this.#r||(this.#a=t,this.#i=!0,this.#o())}async flush(){if(this.#l(),this.#a!==null){const t=this.#a;this.#a=null,this.#i=!1,await this.#e.write(this.#t,t)}}async dispose(){this.#r||(this.#r=!0,await this.flush())}#o(){this.#l(),this.#s=setTimeout(()=>{this.#s=null,this.flush()},this.#n)}#l(){this.#s!==null&&(clearTimeout(this.#s),this.#s=null)}}const Qy="local";let Vo=Qy,Jd=new Wy;function Zd(){return Vo}function Us(){return Vo}function Mi(){return Jd}function Hs(e){Vo=e}function Qd(e){Jd=e}const $y=Object.freeze(Object.defineProperty({__proto__:null,__setActiveScope:Hs,__setDocumentBackend:Qd,getActiveScopeId:Zd,getDocumentBackend:Mi,getTenantId:Us},Symbol.toStringTag,{value:"Module"})),ew="sync:peer",tw="sync:policy";let Pr=V(null),on=V(null),jr=V(!1),za="",Oi=null;function ec(e,t){za=e,Oi=t.auth,x(Pr,t.user,!0),x(on,t.session,!0),x(jr,!t.session&&!t.user,!0)}async function $d(e,t){try{const n=await fetch(`${za}/api/auth/login`,{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:e,password:t})});if(!n.ok)return{ok:!1,error:(await n.json().catch(()=>({}))).error||"Login failed"};const r=await n.json();return x(Pr,r.user,!0),x(on,r.session,!0),x(jr,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function nw(e,t,n){try{const r=await fetch(`${za}/api/auth/register`,{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:e,password:t,displayName:n})});if(!r.ok)return{ok:!1,error:(await r.json().catch(()=>({}))).error||"Registration failed"};const s=await r.json();return x(Pr,s.user,!0),x(on,s.session,!0),x(jr,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function rw(){try{await fetch(`${za}/api/auth/logout`,{method:"POST",credentials:"include"})}catch{}if(Oi?.required&&!Oi.guestAllowed){window.location.reload();return}x(Pr,null),x(on,null),x(jr,!0)}function sw(){x(Pr,{id:"local",username:"local",displayName:"Local Owner",role:"admin",createdAt:"",updatedAt:""},!0),x(on,{token:"local",userId:"local",role:"admin",expiresAt:1/0},!0),x(jr,!1)}function aw(){return i(on)?.token==="local"}function xt(){return i(on)?.role==="admin"}function Ni(){return i(on)!==null}function ef(){return i(jr)}function xs(){return i(Pr)}function qa(){return i(on)?`Bearer ${i(on).token}`:null}let Dr="";function tf(e){Dr=e}async function iw(e){const t=await fetch(`${Dr}/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 ow(e,t){if(!xt())throw new Error("Cannot update env state: not elevated to admin");const n=qa(),r={"Content-Type":"application/json"};n&&(r.Authorization=n);const s=await fetch(`${Dr}/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 Bo(e,t,n){if(!xt())throw new Error("Cannot install: not elevated to admin");const r=qa(),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(`${Dr}/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 nf(e){if(!xt())throw new Error("Cannot uninstall: not elevated to admin");const t=qa(),n={"Content-Type":"application/json"};t&&(n.Authorization=t);const r=await fetch(`${Dr}/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 lw(){const e=await fetch(`${Dr}/api/packages`);return e.ok?await e.json():[]}function cw(e){return Qt[e].list()}function uw(e,t){return Qt[e].read(t)}function dw(e,t){Qt[e].delete(t)}function fw(e){for(const t of Qt[e].list())Qt[e].delete(t)}function rf(){return{list:cw,peek:uw,clear:dw,clearAll:fw}}const sf="documents:browse",af="documents:read",of="documents:write";function vw(e,t,n={canRead:!1,canWrite:!1}){const r={listDocuments:()=>t.listAllDocuments(e),listShards:()=>t.listAllShards(e),watchDocuments:s=>wn.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),wn.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),wn.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),wn.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&&wn.emit({type:"delete",path:a,tenantId:e,shardId:s})}),r}const lf="keys:mint";class cf extends Error{constructor(t){super(`Shard may not mint a key with scope '${t}' — not declared in manifest.`),this.name="ScopeEscalationError"}}class uf extends Error{constructor(){super("User denied key creation."),this.name="ConsentDeniedError"}}const zi=new Map;let Yr=null;function df(e){return Yr=e,()=>{Yr===e&&(Yr=null)}}async function hw(e,t){if(!Yr)throw new Error("No consent listener registered — the shell must mount ConsentDialog.");const n=`c_${Math.random().toString(36).slice(2)}${Date.now()}`;return new Promise(r=>{zi.set(n,{resolve:r}),Yr({...t,shardId:e,requestId:n})})}function qi(e,t){const n=zi.get(e);n&&(zi.delete(e),n.resolve(t))}const oa=new Map,Ks=new Map,pw=5e3;function mw(e,t){let n=Ks.get(e);n||(n=new Set,Ks.set(e,n)),n.add(t),setTimeout(()=>{n.delete(t),n.size===0&&Ks.delete(e)},pw)}function bw(e,t){return Ks.get(e)?.has(t)??!1}function Fo(e,t){const n=oa.get(e)??new Set;return n.add(t),oa.set(e,n),()=>{n.delete(t)}}function ff(e,t){if(!e||bw(e,t))return;mw(e,t);const n=oa.get(e);if(n)for(const s of n)s(t);const r=oa.get("*");if(r)for(const s of r)s(t)}function gw(){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);ff(n.shardId,n.id)}catch{}},()=>e.close()}function _w(e){const{shardId:t,shardPermissions:n}=e,r=s=>{for(const a of s)if(!n.includes(a)&&!n.includes("admin:*"))throw new cf(a)};return{async mint(s){if(r(s.scopes),!await hw(t,s))throw new uf;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}`);ff(t,s)}}}const ln=ie(new Map),dr=new Map,kr=ie(new Map),la=ie(new Map);function Uo(e){const t=e.manifest.id;ln.has(t)&&kr.has(t)&&Va(t),ln.set(t,e),la.delete(t)}async function vf(e,t){const n=ln.get(e);if(!n)throw new Error(`Cannot activate shard "${e}": not registered`);if(dr.has(e))return;const r={shard:n,ctx:void 0,viewIds:new Set,verbNames:new Set,cleanupFns:[]},s=ie({proxy:null,defaults:null}),a={register(l,c){const u=dd(l,c);return r.cleanupFns.push(async()=>u()),u},list(l){return Ra(l)},listPoints(){return Fg()},onChange(l,c){const u=fd(l,c);return r.cleanupFns.push(async()=>u()),u}},o={state:l=>Xn.state(e,l),registerView:(l,c)=>{Y_(l,c),r.viewIds.add(l)},registerVerb:l=>{const c=e==="shell"?l.name:`${e}:${l.name}`;G_(c,{...l,name:c}),r.verbNames.add(c)},documents:l=>{const c=Jy(Us(),e,Mi(),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=Un(s.proxy);Object.assign(s.proxy,l);try{const u=Un(s.proxy);await ow(e,u)}catch(u){throw Object.assign(s.proxy,c),u}},get isAdmin(){return xt()},get tenantId(){return Us()},zones:n.manifest.permissions?.includes(So)?rf():void 0,browse:n.manifest.permissions?.includes(sf)?vw(Us(),Mi(),{canRead:n.manifest.permissions.includes(af),canWrite:n.manifest.permissions.includes(of)}):void 0,keys:n.manifest.permissions?.includes(lf)?_w({shardId:e,shardPermissions:n.manifest.permissions??[]}):void 0,contributions:a,actions:{register(l){const c=P_(l,e);return r.cleanupFns.push(async()=>c()),c},selection:H_(e),openContextMenu(l){qo(l)},openPalette(l){Na(l)}}};if(r.ctx=o,n.onKeyRevoked){const l=Fo(e,async c=>{try{await n.onKeyRevoked(c)}catch(u){console.error(`[sh3] onKeyRevoked failed in "${e}":`,u)}});r.cleanupFns.push(async()=>l())}dr.set(e,r),kr.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 iw(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)Id(c);for(const c of r.viewIds)Ed(c);throw kd(e),dr.delete(e),kr.delete(e),la.set(e,{id:e,error:l,phase:t?.phase??"launch",timestamp:Date.now()}),console.error(`[sh3] Shard "${e}" failed to activate:`,l),l}la.delete(e),n.autostart?.(o)}function Va(e){const t=dr.get(e);if(t){t.shard.deactivate?.();for(const n of t.cleanupFns)n();for(const n of t.verbNames)Id(n);for(const n of t.viewIds)Ed(n);kd(e),dr.delete(e),kr.delete(e)}}function yw(e){return dr.get(e)?.ctx}function tc(){const e=[];for(const t of kr.values())for(const n of t.manifest.views)n.standalone&&e.push({shardId:t.manifest.id,viewId:n.id,label:n.label});return e}const Wn=ie({activeProjectId:null});function hf(e){if(Wn.activeProjectId===e)return;const t=at.id;Wn.activeProjectId=e,yr.id=null,t&&hr(()=>Promise.resolve().then(()=>kw),void 0).then(n=>n.unloadApp(t))}const pf=Ea("__sh3core__:last-app",{user:{id:null}});function mf(){return pf.user.id}function ss(e){pf.user.id=e}function bf(){ss(null)}const Vi=new Map;function ww(){return Wn.activeProjectId??Zd()}function Ps(e,t){let n=Vi.get(e);if(!n){const r=In(e),s=ww();n={scopeId:s,state:a=>Ea(`__app__:${e}:scope:${s}`,a),zones:r?.manifest.permissions?.includes(So)?rf():void 0},Vi.set(e,n)}return n}async function hn(e){const t=In(e);if(!t)throw new Error(`Cannot launch app "${e}": not registered`);if(at.id&&at.id!==e)Ho(at.id);else if(at.id===e){for(const n of t.manifest.requiredShards){const r=ln.get(n),s=yw(n);r&&s&&r.resume?.(s)}t.resume?.(Ps(e)),Zl(),t.onAppReady?.(Ps(e)),ss(e),yr.id=e,aa(e,new Set(t.manifest.requiredShards??[])),ur(e).then(rs);return}for(const n of t.manifest.requiredShards)if(!ln.has(n))throw new Error(`App "${e}" requires shard "${n}" which is not registered`);cy(t);try{for(const n of t.manifest.requiredShards)await vf(n,{phase:"launch"})}catch(n){Dd();try{ld.notify(`Couldn't launch "${t.manifest.label??e}": ${n instanceof Error?n.message:String(n)}`,{level:"error",duration:6e3})}catch{}throw n}uy(),t.activate?.(Ps(e)),at.id=e,aa(e,new Set(t.manifest.requiredShards??[])),ur(e).then(rs),Zl(),t.onAppReady?.(Ps(e)),ss(e),yr.id=e}function Ho(e){if(at.id!==e)return;const t=In(e);if(t){t.deactivate?.(),Ld(),Dd();for(const n of t.manifest.requiredShards){const r=ln.get(n);r&&(r.autostart||Va(n))}at.id=null,aa(null,new Set),K_(),nd(),ur("sh3.home").then(rs),Vi.delete(e)}}function Ba(e){En.has(e)&&(at.id===e&&(Ho(e),ss(null)),En.delete(e))}async function Ss(){const e=at.id?In(at.id):null;if(e){for(const t of e.manifest.requiredShards){const n=ln.get(t);if(n?.suspend&&await n.suspend()===!1)return!1}if(e.suspend&&await e.suspend()===!1)return!1}return nd(),Ld(),aa(null,new Set),ss(null),!0}const kw=Object.freeze(Object.defineProperty({__proto__:null,clearLastApp:bf,launchApp:hn,readLastApp:mf,returnToHome:Ss,unloadApp:Ho,unregisterApp:Ba},Symbol.toStringTag,{value:"Module"}));function gf(){return{root:Ct(),source:Md()}}function xw(e){const t=Ct().docked,n=Wo(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 Sw(e){const t=Ct();return Ua(t.docked,n=>n.slotId===e)?!0:_f(t,n=>n.slotId===e)}function Fa(e){const t=Ct();return Ua(t.docked,n=>n.viewId===e)?!0:_f(t,n=>n.viewId===e)}function Ua(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(Ua(n,t))return!0}return!1}function _f(e,t){for(const n of e.floats)if(Ua(n.content,t))return ct.focus(n.id),!0;return!1}function Ew(e,t){return yf(e,t,!0)}function Iw(e,t){return yf(e,t,!1)}function yf(e,t,n){const r=Ct().docked,s=ns(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 Ko(e){const t=Ct(),n=t.docked;if(!wr(n,e))return Aw(t,e);const a=Rd(e)?.closable;return!a||typeof a=="object"&&(!await a.canClose()||!wr(n,e))?!1:(Da(n,e),or(n),!0)}async function Aw(e,t){for(const n of e.floats){if(!wr(n.content,t))continue;const a=Rd(t)?.closable;if(typeof a=="object"&&(!await a.canClose()||!wr(n.content,t)))return!1;Da(n.content,t);const o=n.content.type==="tabs"?n.content:null;return(!o||o.tabs.length===0)&&ct.close(n.id),!0}return!1}function wf(e){const t=Ct(),n=wr(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 Da(t.docked,e),or(t.docked),ct.open(s,{title:a,meta:o})}function kf(e){const n=Ct().floats.find(l=>l.id===e);if(!n)return!1;const r=n.content,s=r.type==="tabs"?r:null;if(!s||s.tabs.length===0)return ct.close(e),!1;const a=s.tabs[s.activeTab??0]??s.tabs[0],o=Yo({slotId:a.slotId,viewId:a.viewId,label:a.label,meta:a.meta});return o&&ct.close(e),o}function Wo(e){if(e.type==="tabs")return e;if(e.type==="split")for(const t of e.children){const n=Wo(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 Yo(e){const t=Ct().docked;if(Fa(e.viewId??""))return!0;const n=Wo(t);if(n)return n.tabs.push(e),n.activeTab=n.tabs.length-1,!0;const r=xf(t);return r?(Ad(t,r,e,"right"),!0):!1}function Sf(e){return Lo(Ct(),e)}class ht extends Error{constructor(t,n){super(`Registry validation error at ${t}: ${n}`),this.name="RegistryValidationError",this.path=t}}function Ef(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)=>Cw(r,`$.packages[${s}]`))}}function Cw(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new ht(t,"expected an object");const n=e;Ft(n,"id",t),Pw(n,"type",["shard","app","combo"],t),Ft(n,"label",t),Ft(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)=>Tw(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 Tw(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new ht(t,"expected an object");const n=e;Ft(n,"version",t),Ft(n,"contractVersion",t);const r="bundleUrl"in n&&n.bundleUrl!==void 0,s="integrity"in n&&n.integrity!==void 0;if(r&&Ft(n,"bundleUrl",t),s&&Ft(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&&Ft(n,"serverBundleUrl",t),"serverIntegrity"in n&&n.serverIntegrity!==void 0&&Ft(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)=>Rw(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 Rw(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new ht(t,"expected an object");const n=e;return Ft(n,"id",t),Ft(n,"versionRange",t),{id:n.id,versionRange:n.versionRange}}function Ft(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 Pw(e,t,n,r){if(!n.includes(e[t]))throw new ht(`${r}.${t}`,`expected one of: ${n.join(", ")}`)}const nc=["sha256","sha384","sha512"];function jw(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(!nc.includes(n))throw new Error(`Unsupported SRI algorithm: ${n}. Supported: ${nc.join(", ")}`);if(!r)throw new Error(`Empty hash in SRI: ${e}`);return{algorithm:n,hash:r}}function Dw(e){return`SHA-${e.slice(3)}`}function Lw(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 Go(e,t){const{algorithm:n,hash:r}=jw(t),s=Dw(n),a=await crypto.subtle.digest(s,e),o=Lw(a);if(o!==r)throw new Error(`Integrity check failed for ${n}. Expected: ${r}, got: ${o}`)}async function If(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=Ef(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 Ha(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 Go(s,e.integrity),s}async function Xo(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 Go(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 Ka(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 bn="0.13.2",Jo="sh3:user:__sh3core__:theme";let as=[];function Mw(e){const t=Object.keys(e);for(const n of as)t.includes(n)||document.documentElement.style.removeProperty(`--${n}`);for(const[n,r]of Object.entries(e))document.documentElement.style.setProperty(`--${n}`,r);as=t;try{localStorage.setItem(Jo,JSON.stringify(e))}catch{}}function Ow(){for(const e of as)document.documentElement.style.removeProperty(`--${e}`);as=[];try{localStorage.removeItem(Jo)}catch{}}function Af(){try{const e=localStorage.getItem(Jo);if(!e)return{};const t=JSON.parse(e);return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{}}catch{return{}}}function Nw(){const e=Af();if(Object.keys(e).length!==0){for(const[t,n]of Object.entries(e))document.documentElement.style.setProperty(`--${t}`,n);as=Object.keys(e)}}const Bi="/assets/icons-2eVU8BA9.svg",Cf=Symbol("sh3.icon-sprite");function zw(e){$i(Cf,e)}function Tf(){return Qi(Cf)}var qw=po('<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>'),Vw=po('<svg class="sh3-btn__icon svelte-t4hi97" aria-hidden="true"><use></use></svg>'),Bw=T('<span class="sh3-btn__label svelte-t4hi97"><!></span>'),Fw=T("<button><!> <!></button>");function Uw(e,t){re(t,!0);let n=G(t,"variant",3,"default"),r=G(t,"disabled",3,!1),s=G(t,"type",3,"button");const a=Tf();function o(b){return b.includes("/")||b.endsWith(".svg")}const l=H(()=>t.icon?o(t.icon)?t.icon:`${t.sprite??a??Bi}#${t.icon}`:void 0);let c=V(!1);const u=H(()=>t.loading??i(c)),d=H(()=>n()==="icon"||!!t.icon&&!t.children);async function f(b){if(!t.onclick)return;const A=t.onclick(b);if(A&&typeof A.then=="function"){x(c,!0);try{await A}finally{x(c,!1)}}}var h=Fw();let m;var I=p(h);{var g=b=>{var A=qw();E(b,A)},y=b=>{var A=Vw(),L=p(A);v(A),z(()=>ne(L,"href",i(l))),E(b,A)};U(I,b=>{i(u)?b(g):i(l)&&b(y,1)})}var w=k(I,2);{var _=b=>{var A=Bw(),L=p(A);Zt(L,()=>t.children),v(A),E(b,A)};U(w,b=>{t.children&&b(_)})}v(h),z(()=>{ne(h,"type",s()),m=de(h,1,`sh3-btn sh3-btn--${n()??""}`,"svelte-t4hi97",m,{"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))}),F("click",h,f),E(e,h),se()}oe(["click"]);var Hw=T('<span class="sh3-collapsible__title svelte-lvydsb"> </span>'),Kw=T('<div class="sh3-collapsible__body svelte-lvydsb"><!></div>'),Ww=T('<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 Yw(e,t){re(t,!0);let n=G(t,"open",15,!1);function r(){n(!n()),t.onopenchange?.(n())}var s=Ww();let a;var o=p(s),l=k(p(o),2);{var c=h=>{var m=Ye(),I=pe(m);Zt(I,()=>t.header),E(h,m)},u=h=>{var m=Hw(),I=p(m,!0);v(m),z(()=>O(I,t.title)),E(h,m)};U(l,h=>{t.header?h(c):t.title&&h(u,1)})}v(o);var d=k(o,2);{var f=h=>{var m=Kw(),I=p(m);Zt(I,()=>t.children),v(m),E(h,m)};U(d,h=>{n()&&h(f)})}v(s),z(()=>{a=de(s,1,"sh3-collapsible svelte-lvydsb",null,a,{"sh3-collapsible--open":n()}),ne(o,"aria-expanded",n())}),F("click",o,r),E(e,s),se()}oe(["click"]);var Gw=T('<span aria-hidden="true">*</span>'),Xw=T('<span class="sh3-field__label svelte-m4dkl"> <!></span>'),Jw=T('<span class="sh3-field__affix svelte-m4dkl"><!></span>'),Zw=T('<span class="sh3-field__affix svelte-m4dkl"><!></span>'),Qw=T("<span> </span>"),$w=T('<label><!> <span class="sh3-field__row svelte-m4dkl"><!> <input class="sh3-field__input svelte-m4dkl"/> <!></span> <!></label>');function e1(e,t){re(t,!0);let n=G(t,"value",15,""),r=G(t,"type",3,"text"),s=G(t,"disabled",3,!1),a=G(t,"invalid",3,!1),o=G(t,"size",3,"md"),l=G(t,"required",3,!1);const c=H(()=>a()&&!!t.error),u=H(()=>i(c)?t.error:t.helper);var d=$w();let f;var h=p(d);{var m=C=>{var S=Xw(),j=p(S,!0),P=k(j);{var D=R=>{var M=Gw();E(R,M)};U(P,R=>{l()&&R(D)})}v(S),z(()=>O(j,t.label)),E(C,S)};U(h,C=>{t.label&&C(m)})}var I=k(h,2),g=p(I);{var y=C=>{var S=Jw(),j=p(S);Zt(j,()=>t.prefix),v(S),E(C,S)};U(g,C=>{t.prefix&&C(y)})}var w=k(g,2);_e(w);var _=k(w,2);{var b=C=>{var S=Zw(),j=p(S);Zt(j,()=>t.suffix),v(S),E(C,S)};U(_,C=>{t.suffix&&C(b)})}v(I);var A=k(I,2);{var L=C=>{var S=Qw();let j;var P=p(S,!0);v(S),z(()=>{j=de(S,1,"sh3-field__helper svelte-m4dkl",null,j,{"sh3-field__helper--error":i(c)}),O(P,i(u))}),E(C,S)};U(A,C=>{i(u)&&C(L)})}v(d),z(()=>{f=de(d,1,"sh3-field svelte-m4dkl",null,f,{"sh3-field--invalid":a(),"sh3-field--sm":o()==="sm"}),ne(w,"type",r()),ne(w,"placeholder",t.placeholder),w.disabled=s(),w.required=l(),ne(w,"autocomplete",t.autocomplete),ne(w,"aria-invalid",a()||void 0)}),F("input",w,()=>t.oninput?.(n())),Oe("blur",w,()=>t.onchange?.(n())),Ee(w,n),E(e,d),se()}oe(["input"]);var t1=T('<span aria-hidden="true">*</span>'),n1=T('<span class="sh3-textarea__label svelte-668c6r"> <!></span>'),r1=T("<span> </span>"),s1=T('<label><!> <textarea class="sh3-textarea__input svelte-668c6r"></textarea> <!></label>');function a1(e,t){re(t,!0);let n=G(t,"value",15,""),r=G(t,"disabled",3,!1),s=G(t,"invalid",3,!1),a=G(t,"size",3,"md"),o=G(t,"required",3,!1),l=G(t,"rows",3,3),c=G(t,"resize",3,"vertical");const u=H(()=>s()&&!!t.error),d=H(()=>i(u)?t.error:t.helper);var f=s1();let h;var m=p(f);{var I=b=>{var A=n1(),L=p(A,!0),C=k(L);{var S=j=>{var P=t1();E(j,P)};U(C,j=>{o()&&j(S)})}v(A),z(()=>O(L,t.label)),E(b,A)};U(m,b=>{t.label&&b(I)})}var g=k(m,2);oo(g);let y;var w=k(g,2);{var _=b=>{var A=r1();let L;var C=p(A,!0);v(A),z(()=>{L=de(A,1,"sh3-textarea__helper svelte-668c6r",null,L,{"sh3-textarea__helper--error":i(u)}),O(C,i(d))}),E(b,A)};U(w,b=>{i(d)&&b(_)})}v(f),z(()=>{h=de(f,1,"sh3-textarea svelte-668c6r",null,h,{"sh3-textarea--invalid":s(),"sh3-textarea--sm":a()==="sm"}),ne(g,"placeholder",t.placeholder),g.disabled=r(),g.required=o(),ne(g,"rows",l()),ne(g,"aria-invalid",s()||void 0),y=tt(g,"",y,{resize:c()})}),F("input",g,()=>t.oninput?.(n())),Oe("blur",g,()=>t.onchange?.(n())),Ee(g,n),E(e,f),se()}oe(["input"]);function i1(e,t,n){let r=e;return t!==void 0&&r<t&&(r=t),n!==void 0&&r>n&&(r=n),r}function o1(e,t){const n=t.min??0,r=Math.round((e-n)/t.step);return n+r*t.step}var l1=T('<span class="sh3-num__label svelte-1qa0x3m"> </span>'),c1=T('<span class="sh3-num__affix svelte-1qa0x3m"><!></span>'),u1=T('<span class="sh3-num__affix svelte-1qa0x3m"><!></span>'),d1=T('<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 f1(e,t){re(t,!0);let n=G(t,"value",15,0),r=G(t,"step",3,1),s=G(t,"disabled",3,!1),a=G(t,"invalid",3,!1),o=G(t,"size",3,"md");function l(R){if(Number.isNaN(R))return;let M=i1(o1(R,{min:t.min,step:r()}),t.min,t.max);t.precision!==void 0&&(M=Number(M.toFixed(t.precision))),n(M)}function c(R){l(n()+R*r()),t.oninput?.(n())}let u=null,d=null,f=!1;function h(R){s()||(f=!0,c(R),u=setTimeout(()=>{let M=0;d=setInterval(()=>{c(R),M+=60,M>1500&&d&&(clearInterval(d),d=setInterval(()=>c(R),20))},60)},350))}function m(){u&&(clearTimeout(u),u=null),d&&(clearInterval(d),d=null),f&&(f=!1,t.onchange?.(n()))}var I=d1();let g;var y=p(I);{var w=R=>{var M=l1(),B=p(M,!0);v(M),z(()=>O(B,t.label)),E(R,M)};U(y,R=>{t.label&&R(w)})}var _=k(y,2),b=p(_);{var A=R=>{var M=c1(),B=p(M);Zt(B,()=>t.prefix),v(M),E(R,M)};U(b,R=>{t.prefix&&R(A)})}var L=k(b,2);_e(L);var C=k(L,2);{var S=R=>{var M=u1(),B=p(M);Zt(B,()=>t.suffix),v(M),E(R,M)};U(C,R=>{t.suffix&&R(S)})}var j=k(C,2),P=p(j),D=k(P,2);v(j),v(_),v(I),z(()=>{g=de(I,1,"sh3-num svelte-1qa0x3m",null,g,{"sh3-num--invalid":a(),"sh3-num--sm":o()==="sm"}),ne(L,"min",t.min),ne(L,"max",t.max),ne(L,"step",r()),L.disabled=s(),ne(L,"aria-invalid",a()||void 0),Qr(L,n()),P.disabled=s(),D.disabled=s()}),F("input",L,R=>{const M=R.currentTarget.valueAsNumber;Number.isNaN(M)||(n(M),t.oninput?.(M))}),Oe("blur",L,()=>{l(n()),t.onchange?.(n())}),F("pointerdown",P,()=>h(1)),F("pointerup",P,m),Oe("pointerleave",P,m),F("pointerdown",D,()=>h(-1)),F("pointerup",D,m),Oe("pointerleave",D,m),E(e,I),se()}oe(["input","pointerdown","pointerup"]);function Wa(e){return e.filter(t=>!t.disabled)}function v1(e,t){const n=Wa(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 h1(e,t){const n=Wa(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 p1(e){return Wa(e)[0]?.value}function m1(e){const t=Wa(e);return t[t.length-1]?.value}var b1=T('<button type="button" role="radio"> </button>'),g1=T('<div role="radiogroup" tabindex="-1"></div>');function _1(e,t){re(t,!0);let n=G(t,"value",31,()=>ie(t.options[0]?.value??"")),r=G(t,"size",3,"md"),s=G(t,"disabled",3,!1);function a(u){n(u),t.onchange?.(u)}function o(u){if(s())return;let d;switch(u.key){case"ArrowRight":case"ArrowDown":d=v1(t.options,n());break;case"ArrowLeft":case"ArrowUp":d=h1(t.options,n());break;case"Home":d=p1(t.options);break;case"End":d=m1(t.options);break;default:return}u.preventDefault(),d!==void 0&&a(d)}var l=g1();let c;fe(l,21,()=>t.options,Vt,(u,d)=>{var f=b1();let h;var m=p(f,!0);v(f),z(()=>{ne(f,"aria-checked",n()===i(d).value),ne(f,"tabindex",n()===i(d).value?0:-1),f.disabled=s()||i(d).disabled,h=de(f,1,"svelte-17xsko9",null,h,{"sh3-seg__btn--active":n()===i(d).value}),O(m,i(d).label)}),F("click",f,()=>{!i(d).disabled&&!s()&&a(i(d).value)}),E(u,f)}),v(l),z(()=>c=de(l,1,"sh3-seg svelte-17xsko9",null,c,{"sh3-seg--sm":r()==="sm"})),F("keydown",l,o),E(e,l),se()}oe(["keydown","click"]);function y1(e,t){return e===t?"":t}function w1(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var k1=T('<button type="button"><!></button>'),x1=T('<div role="group"></div>');function S1(e,t){re(t,!0);let n=G(t,"multiple",3,!1),r=G(t,"value",31,()=>ie(n()?[]:t.options[0]?.value??"")),s=G(t,"disabled",3,!1),a=G(t,"size",3,"md");function o(d){return n()&&Array.isArray(r())?r().includes(d):r()===d}function l(d){if(!s()){if(n()){const f=Array.isArray(r())?r():[];r(w1(f,d))}else r(y1(typeof r()=="string"?r():"",d));t.onchange?.(r())}}var c=x1();let u;fe(c,21,()=>t.options,Vt,(d,f)=>{var h=k1();let m;var I=p(h);Zt(I,()=>i(f).icon),v(h),z((g,y)=>{ne(h,"title",i(f).tooltip),ne(h,"aria-label",i(f).tooltip),ne(h,"aria-pressed",g),h.disabled=s(),m=de(h,1,"svelte-13knxr5",null,m,y)},[()=>o(i(f).value),()=>({"sh3-itg__btn--active":o(i(f).value)})]),F("click",h,()=>l(i(f).value)),E(d,h)}),v(c),z(()=>u=de(c,1,"sh3-itg svelte-13knxr5",null,u,{"sh3-itg--sm":a()==="sm"})),E(e,c),se()}oe(["click"]);function ca(e,t,n){return n===t?0:(e-t)/(n-t)*100}var E1=T('<span class="sh3-slider__tick svelte-13va6lu"></span>'),I1=T('<output class="sh3-slider__value svelte-13va6lu"> </output>'),A1=T('<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 Rf(e,t){re(t,!0);let n=G(t,"value",15,0),r=G(t,"min",3,0),s=G(t,"max",3,100),a=G(t,"step",3,1),o=G(t,"showValue",3,!1),l=G(t,"disabled",3,!1),c=G(t,"invalid",3,!1),u=G(t,"size",3,"md"),d=G(t,"orientation",3,"horizontal");const f=H(()=>ca(n(),r(),s()));var h=A1();let m;var I=p(h),g=p(I);let y;var w=k(g,2);{var _=C=>{var S=Ye(),j=pe(S);fe(j,17,()=>t.ticks,Vt,(P,D)=>{var R=E1();let M;z(B=>M=tt(R,"",M,B),[()=>({"--tick-pct":`${ca(i(D),r(),s())??""}%`})]),E(P,R)}),E(C,S)};U(w,C=>{t.ticks&&C(_)})}v(I);var b=k(I,2);_e(b);var A=k(b,2);{var L=C=>{var S=I1();let j;var P=p(S,!0);v(S),z(()=>{j=tt(S,"",j,{"--pct":`${i(f)??""}%`}),O(P,n())}),E(C,S)};U(A,C=>{o()&&C(L)})}v(h),z(()=>{m=de(h,1,`sh3-slider sh3-slider--${d()??""}`,"svelte-13va6lu",m,{"sh3-slider--sm":u()==="sm","sh3-slider--invalid":c()}),y=tt(g,"",y,{"--pct":`${i(f)??""}%`}),ne(b,"min",r()),ne(b,"max",s()),ne(b,"step",a()),b.disabled=l(),ne(b,"aria-invalid",c()||void 0)}),F("input",b,()=>t.oninput?.(n())),F("change",b,()=>t.onchange?.(n())),Ee(b,n),E(e,h),se()}oe(["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 C1=T('<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 T1(e,t){re(t,!0);let n=G(t,"value",31,()=>ie([0,100])),r=G(t,"min",3,0),s=G(t,"max",3,100),a=G(t,"step",3,1),o=G(t,"disabled",3,!1),l=G(t,"invalid",3,!1),c=G(t,"size",3,"md");const u=H(()=>ca(n()[0],r(),s())),d=H(()=>ca(n()[1],r(),s()));function f(A){n(rc(n(),"low",A)),t.oninput?.(n())}function h(A){n(rc(n(),"high",A)),t.oninput?.(n())}var m=C1();let I;var g=p(m),y=p(g);let w;v(g);var _=k(g,2);_e(_);var b=k(_,2);_e(b),v(m),z(()=>{I=de(m,1,"sh3-range svelte-rdbrc5",null,I,{"sh3-range--sm":c()==="sm","sh3-range--invalid":l()}),w=tt(y,"",w,{"--lo":`${i(u)??""}%`,"--hi":`${i(d)??""}%`}),ne(_,"min",r()),ne(_,"max",s()),ne(_,"step",a()),_.disabled=o(),Qr(_,n()[0]),ne(b,"min",r()),ne(b,"max",s()),ne(b,"step",a()),b.disabled=o(),Qr(b,n()[1])}),F("input",_,A=>f(parseFloat(A.currentTarget.value))),F("change",_,()=>t.onchange?.(n())),F("input",b,A=>h(parseFloat(A.currentTarget.value))),F("change",b,()=>t.onchange?.(n())),E(e,m),se()}oe(["input","change"]);var R1=T('<div class="sh3-sg__channel svelte-1lqyi0d"><span class="sh3-sg__label svelte-1lqyi0d"> </span> <!></div>'),P1=T("<div></div>");function j1(e,t){re(t,!0);let n=G(t,"orientation",3,"horizontal"),r=G(t,"values",31,()=>ie({})),s=G(t,"showValues",3,!1),a=G(t,"disabled",3,!1),o=G(t,"size",3,"md");var l=P1();fe(l,21,()=>t.channels,c=>c.id,(c,u)=>{var d=R1(),f=p(d),h=p(f,!0);v(f);var m=k(f,2),I=()=>r()[i(u).id]??0,g=y=>r({...r(),[i(u).id]:y});{let y=H(()=>i(u).min??0),w=H(()=>i(u).max??100),_=H(()=>i(u).step??1);Rf(m,{get orientation(){return n()},get min(){return i(y)},get max(){return i(w)},get step(){return i(_)},get disabled(){return a()},get size(){return o()},get showValue(){return s()},get value(){return I()},set value(b){g(b)},oninput:()=>t.oninput?.(r()),onchange:()=>t.onchange?.(r())})}v(d),z(()=>O(h,i(u).label)),E(c,d)}),v(l),z(()=>de(l,1,`sh3-sg sh3-sg--${n()??""}`,"svelte-1lqyi0d")),E(e,l),se()}var D1=T('<span class="sh3-swatch__label svelte-6ri2j2"> </span>'),L1=T('<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 M1(e,t){re(t,!0);let n=G(t,"value",15,"#000000"),r=G(t,"disabled",3,!1),s=G(t,"size",3,"md"),a;async function o(){if(r())return;const g=await Xn.color.pick({initial:n(),anchor:a});g!=null&&(n(g),t.onchange?.(g))}var l=L1();let c;var u=p(l);{var d=g=>{var y=D1(),w=p(y,!0);v(y),z(()=>O(w,t.label)),E(g,y)};U(u,g=>{t.label&&g(d)})}var f=k(u,2);let h;var m=k(p(f)),I=p(m,!0);v(m),v(f),Ne(f,g=>a=g,()=>a),v(l),z(()=>{c=de(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=tt(f,"",h,{"--swatch-color":n()}),O(I,n())}),F("click",f,o),E(e,l),se()}oe(["click"]);function O1(e,t){return!e||e.length===0?t?[]:null:t?Array.from(e):e[0]}function N1(e){return e===null?"":Array.isArray(e)?e.length===0?"":e.length===1?e[0].name:`${e.length} files`:e.name}var z1=T('<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 q1(e,t){re(t,!0);let n=G(t,"value",15,null),r=G(t,"multiple",3,!1),s=G(t,"disabled",3,!1),a=G(t,"invalid",3,!1),o=G(t,"size",3,"md"),l=G(t,"buttonLabel",3,"Choose file...");function c(w){const _=w.currentTarget;n(O1(_.files,r())),t.onchange?.(n())}const u=H(()=>N1(n()));var d=z1();let f;var h=p(d),m=k(h,2),I=p(m,!0);v(m);var g=k(m,2),y=p(g,!0);v(g),v(d),z(()=>{f=de(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(I,l()),O(y,i(u)||"no file")}),F("change",h,c),E(e,d),se()}oe(["change"]);const V1=8;function B1(e){return e.length>=V1}function F1(e,t){if(!t)return e.slice();const n=t.toLowerCase();return e.filter(r=>r.label.toLowerCase().includes(n))}function U1(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 H1(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 K1(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var W1=T('<input class="sh3-listbox__search svelte-1tyxvrs" type="search" placeholder="Filter…"/>'),Y1=T('<span aria-hidden="true"></span>'),G1=T('<div role="option" tabindex="-1"><!> <span class="sh3-listbox__label"> </span></div>'),X1=T('<div class="sh3-listbox__empty svelte-1tyxvrs">No matches</div>'),J1=T('<div class="sh3-listbox svelte-1tyxvrs" role="listbox" tabindex="-1"><!> <div class="sh3-listbox__list svelte-1tyxvrs"><!> <!></div></div>');function Z1(e,t){re(t,!0);const n=H(()=>t.getValue());function r(){t.onClose?.(),t.close()}const s=H(()=>B1(t.options));function a(){if(t.multiple)return 0;const j=typeof i(n)=="string"?i(n):"",P=t.options.findIndex(D=>D.value===j&&!D.disabled);return P>=0?P:0}let o=V(""),l=V(ie(a())),c=V(void 0),u=V(void 0),d="",f=null;const h=H(()=>F1(t.options,i(o)));Ie(()=>{i(l)>=i(h).length&&x(l,0),m()});async function m(){if(await bs(),!i(c))return;i(c).querySelector(`[data-idx="${i(l)}"]`)?.scrollIntoView({block:"nearest"})}function I(j){return t.multiple&&Array.isArray(i(n))?i(n).includes(j.value):i(n)===j.value}function g(j){const P=i(h)[j];!P||P.disabled||(t.onSelect(P.value),t.multiple||r())}function y(j){if(i(h).length!==0)switch(j.key){case"ArrowDown":j.preventDefault(),x(l,(i(l)+1)%i(h).length);break;case"ArrowUp":j.preventDefault(),x(l,(i(l)-1+i(h).length)%i(h).length);break;case"Home":j.preventDefault(),x(l,0);break;case"End":j.preventDefault(),x(l,i(h).length-1);break;case"Enter":j.preventDefault(),g(i(l));break;case" ":case"Space":j.preventDefault(),g(i(l));break;case"Escape":j.preventDefault(),r();break;default:if(i(s)&&document.activeElement===i(u)||j.key.length!==1||j.metaKey||j.ctrlKey||j.altKey)return;d+=j.key,f&&clearTimeout(f),f=setTimeout(()=>{d=""},500);const P=U1(i(h),d,i(l));P>=0&&x(l,P,!0)}}var w=J1(),_=p(w);{var b=j=>{var P=W1();_e(P),Ne(P,D=>x(u,D),()=>i(u)),Ee(P,()=>i(o),D=>x(o,D)),E(j,P)};U(_,j=>{i(s)&&j(b)})}var A=k(_,2),L=p(A);fe(L,17,()=>i(h),Vt,(j,P,D)=>{var R=G1();ne(R,"data-idx",D);let M;var B=p(R);{var N=Y=>{var te=Y1();let J;z(ae=>J=de(te,1,"sh3-listbox__check svelte-1tyxvrs",null,J,ae),[()=>({"sh3-listbox__check--on":I(i(P))})]),E(Y,te)};U(B,Y=>{t.multiple&&Y(N)})}var q=k(B,2),K=p(q,!0);v(q),v(R),z((Y,te)=>{ne(R,"aria-selected",Y),ne(R,"aria-disabled",i(P).disabled),M=de(R,1,"svelte-1tyxvrs",null,M,te),O(K,i(P).label)},[()=>I(i(P)),()=>({"sh3-listbox__opt--active":D===i(l),"sh3-listbox__opt--selected":I(i(P))})]),F("click",R,()=>g(D)),Oe("mouseenter",R,()=>x(l,D,!0)),E(j,R)});var C=k(L,2);{var S=j=>{var P=X1();E(j,P)};U(C,j=>{i(h).length===0&&j(S)})}v(A),Ne(A,j=>x(c,j),()=>i(c)),v(w),z(()=>ne(w,"aria-multiselectable",t.multiple)),F("keydown",w,y),E(e,w),se()}oe(["keydown","click"]);var Q1=T('<span class="sh3-select__label svelte-1q3zxph"> </span>'),$1=T("<option> </option>"),ek=T('<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 tk(e,t){re(t,!0);let n=G(t,"multiple",3,!1),r=G(t,"value",31,()=>ie(n()?[]:"")),s=G(t,"placeholder",3,"Select…"),a=G(t,"disabled",3,!1),o=G(t,"invalid",3,!1),l=G(t,"size",3,"md"),c=V(void 0),u=V(void 0),d=V(!1);const f=H(()=>H1(t.options,r(),n()));function h(){x(d,!1),i(c)?.focus()}async function m(){if(a()||i(d)||!i(c))return;x(d,!0);const P=Xn.popup.show(Z1,{anchor:i(c)},{options:t.options,getValue:()=>r(),multiple:n(),onSelect:M=>{if(n()){const B=Array.isArray(r())?r():[];r(K1(B,M))}else r(M);t.onchange?.(r())},onClose:h}),D=P.close;P.close=()=>{D(),h()},await bs(),document.querySelector(".sh3-listbox")?.focus()}function I(P){if(!(a()||i(d)))switch(P.key){case"ArrowDown":case"ArrowUp":case"Enter":case" ":P.preventDefault(),m();break}}function g(){i(u)&&(n()?r(Array.from(i(u).selectedOptions).map(P=>P.value)):r(i(u).value),t.onchange?.(r()))}var y=ek();let w;var _=p(y);{var b=P=>{var D=Q1(),R=p(D,!0);v(D),z(()=>O(R,t.label)),E(P,D)};U(_,P=>{t.label&&P(b)})}var A=k(_,2),L=p(A);let C;var S=p(L,!0);v(L),rn(2),v(A),Ne(A,P=>x(c,P),()=>i(c));var j=k(A,2);ne(j,"tabindex",-1),fe(j,21,()=>t.options,Vt,(P,D)=>{var R=$1(),M=p(R,!0);v(R);var B={};z(N=>{wo(R,N),O(M,i(D).label),B!==(B=i(D).value)&&(R.value=(R.__value=i(D).value)??"")},[()=>n()?Array.isArray(r())&&r().includes(i(D).value):r()===i(D).value]),E(P,R)}),v(j),Ne(j,P=>x(u,P),()=>i(u)),v(y),z(()=>{w=de(y,1,"sh3-select svelte-1q3zxph",null,w,{"sh3-select--invalid":o(),"sh3-select--sm":l()==="sm"}),A.disabled=a(),ne(A,"aria-expanded",i(d)),C=de(L,1,"sh3-select__display svelte-1q3zxph",null,C,{"sh3-select__display--placeholder":!i(f)}),O(S,i(f)||s()),j.multiple=n(),j.disabled=a()}),F("click",A,m),F("keydown",A,I),F("change",j,g),E(e,y),se()}oe(["click","keydown","change"]);function nk(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 rk(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var sk=T('<input type="search" class="sh3-picker__search svelte-1rlwvrb" placeholder="Filter…"/>'),ak=T('<p class="sh3-picker__status svelte-1rlwvrb">Loading…</p>'),ik=T('<button type="button" class="sh3-picker__retry svelte-1rlwvrb">Retry</button>'),ok=T('<p class="sh3-picker__status sh3-picker__status--error svelte-1rlwvrb"> </p> <!>',1),lk=T('<p class="sh3-picker__status svelte-1rlwvrb"> </p>'),ck=T('<span class="sh3-picker__row-sub svelte-1rlwvrb"> </span>'),uk=T('<label class="sh3-picker__row svelte-1rlwvrb"><input type="checkbox"/> <span class="sh3-picker__row-text svelte-1rlwvrb"><span class="sh3-picker__row-label svelte-1rlwvrb"> </span> <!></span></label>'),dk=T('<div><!> <div class="sh3-picker__list svelte-1rlwvrb"><!></div> <p class="sh3-picker__footer svelte-1rlwvrb"> </p></div>');function Pf(e,t){re(t,!0);let n=G(t,"value",31,()=>ie([])),r=G(t,"loading",3,!1),s=G(t,"error",3,null),a=G(t,"emptyText",3,"No items."),o=G(t,"searchThreshold",3,8),l=G(t,"disabled",3,!1),c=G(t,"size",3,"md"),u=V("");const d=H(()=>t.items.length>=o()),f=H(()=>nk(t.items,i(u))),h=H(()=>t.items.length),m=H(()=>n().length);function I(R){if(l())return;const M=rk(n(),R);n(M),t.onchange?.(M)}var g=dk();let y;var w=p(g);{var _=R=>{var M=sk();_e(M),z(()=>M.disabled=l()),Ee(M,()=>i(u),B=>x(u,B)),E(R,M)};U(w,R=>{i(d)&&R(_)})}var b=k(w,2),A=p(b);{var L=R=>{var M=ak();E(R,M)},C=R=>{var M=ok(),B=pe(M),N=p(B,!0);v(B);var q=k(B,2);{var K=Y=>{var te=ik();F("click",te,()=>t.onRetry?.()),E(Y,te)};U(q,Y=>{t.onRetry&&Y(K)})}z(()=>O(N,s())),E(R,M)},S=R=>{var M=lk(),B=p(M,!0);v(M),z(()=>O(B,a())),E(R,M)},j=R=>{var M=Ye(),B=pe(M);fe(B,17,()=>i(f),N=>N.id,(N,q)=>{var K=uk(),Y=p(K);_e(Y);var te=k(Y,2),J=p(te),ae=p(J,!0);v(J);var W=k(J,2);{var Z=le=>{var me=ck(),Q=p(me,!0);v(me),z(()=>O(Q,i(q).sublabel)),E(le,me)};U(W,le=>{i(q).sublabel&&le(Z)})}v(te),v(K),z(le=>{yo(Y,le),Y.disabled=l(),O(ae,i(q).label)},[()=>n().includes(i(q).id)]),F("change",Y,()=>I(i(q).id)),E(N,K)}),E(R,M)};U(A,R=>{r()?R(L):s()?R(C,1):t.items.length===0?R(S,2):R(j,-1)})}v(b);var P=k(b,2),D=p(P);v(P),v(g),z(()=>{y=de(g,1,"sh3-picker svelte-1rlwvrb",null,y,{"sh3-picker--sm":c()==="sm","sh3-picker--disabled":l()}),O(D,`${i(m)??""} of ${i(h)??""} selected`)}),E(e,g),se()}oe(["click","change"]);function jf(e,t){re(t,!0);const n=new Set(["sh3-admin-app","sh3-store-app"]);let r=G(t,"value",31,()=>ie([])),s=G(t,"disabled",3,!1),a=G(t,"size",3,"md");const o=H(()=>Aa().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)}Pf(e,{get items(){return i(o)},get value(){return r()},onchange:l,get disabled(){return s()},get size(){return a()},emptyText:"No apps installed."}),se()}const Lt=ie({users:[],loading:!1,error:null});let Nr=null;function sc(){return Nr||(Lt.loading=!0,Lt.error=null,Nr=(async()=>{try{const e=await fetch("/api/admin/users",{credentials:"include"});if(!e.ok){Lt.error=`GET /api/admin/users failed: ${e.status}`;return}Lt.users=await e.json()}catch(e){Lt.error=e.message}finally{Lt.loading=!1,Nr=null}})(),Nr)}function Df(e,t){re(t,!0);let n=G(t,"value",31,()=>ie([])),r=G(t,"disabled",3,!1),s=G(t,"size",3,"md");Lt.users.length===0&&!Lt.loading&&!Lt.error&&sc();const a=H(()=>Lt.users.map(l=>({id:l.id,label:l.displayName||l.username,sublabel:l.username})));function o(l){n(l),t.onchange?.(l)}Pf(e,{get items(){return i(a)},get value(){return n()},onchange:o,get loading(){return Lt.loading},get error(){return Lt.error},onRetry:()=>void sc(),emptyText:"No users found.",get disabled(){return r()},get size(){return s()}}),se()}const fk={hotInstall:typeof Blob<"u"&&typeof URL.createObjectURL=="function"},Lf=["__sh3core__","shell","sh3-store","sh3-admin"],Mf=Object.freeze(Object.defineProperty({__proto__:null,AppPicker:jf,Button:Uw,COLOR_PICKER_POINT:bd,CONFLICT_RENDERER_POINT:hd,Collapsible:Yw,ColorSwatch:M1,ConflictPermissionError:pd,ConflictSessionOrphanedError:y_,ConsentDeniedError:uf,FRAMEWORK_SHARD_IDS:Lf,Field:e1,FilePicker:q1,IconToggleGroup:S1,NumberInput:f1,PERMISSION_DOCUMENTS_BROWSE:sf,PERMISSION_DOCUMENTS_READ:af,PERMISSION_DOCUMENTS_WRITE:of,PERMISSION_KEYS_MINT:lf,PERMISSION_STATE_MANAGE:So,PERMISSION_SYNC_PEER:ew,PERMISSION_SYNC_POLICY:tw,RangeSlider:T1,ScopeEscalationError:cf,Segmented:_1,Select:tk,Slider:Rf,SliderGroup:j1,Textarea:a1,UserPicker:Df,VERSION:bn,activeShards:kr,buildPackageMeta:Ka,capabilities:fk,clearTokenOverrides:Ow,closeTab:Ko,collapseChild:Ew,dockFloat:kf,dockIntoActiveLayout:Yo,erroredShards:la,expandChild:Iw,fetchBundle:Ha,fetchRegistries:If,focusTab:Sw,focusView:Fa,getActiveApp:ed,getAuthHeader:qa,getIconSprite:Tf,getTokenOverrides:Af,getUser:xs,inspectActiveLayout:gf,isAdmin:xt,isAuthenticated:Ni,isGuest:ef,launchApp:hn,listRegisteredApps:Aa,listVerbs:Do,locateSlot:Sf,popoutView:wf,provideIcons:zw,pushNavEntry:sg,registerConsentListener:df,registeredShards:ln,resolveConsent:qi,returnToHome:Ss,setTokenOverrides:Mw,shell:Xn,spliceIntoActiveLayout:xw,subscribeKeyRevocation:Fo,unregisterApp:Ba,validateRegistryIndex:Ef},Symbol.toStringTag,{value:"Module"})),vk="/assets/SH3-BG5NVpSD.png",hk="https://cdn.jsdelivr.net/npm/p5@1.11.13/lib/p5.min.js";let zr=null;function pk(){return zr||(zr=new Promise((e,t)=>{const n=window.p5;if(n){e(n);return}const r=document.createElement("script");r.src=hk,r.async=!0,r.onload=()=>e(window.p5),r.onerror=s=>{zr=null,t(s)},document.head.appendChild(r)}),zr)}var mk=T('<h1 class="shell-title-fallback svelte-1ifjvh5">SH3</h1>'),bk=T('<div class="shell-title svelte-1ifjvh5"></div>');function gk(e,t){re(t,!0);const n="`.-':;,^\"~=+<>*?!/\\|()[]{}x1ltzrcvunsXYUJCLQ0OZmwqpdbkhao*#MW&8%B@$",r=64,s=Math.floor(64/(442/193)),a=8,o=7,l=80,c=r*a,u=s*o,d=l/u;let f=V(void 0),h=null,m=V(!1);const I=()=>b=>{const L=getComputedStyle(document.documentElement).getPropertyValue("--shell-accent").trim();let C,S,j=!1;b.setup=()=>{b.createCanvas(c,u),b.noSmooth(),b.noStroke(),b.textAlign(b.CENTER,b.CENTER),b.textFont("monospace"),b.textSize(10),b.textStyle(b.BOLD),S=b.loadImage(vk,()=>{C=b.createGraphics(r,s),C.pixelDensity(1),C.image(S,0,0,r,s),C.loadPixels(),j=!0},()=>{x(m,!0)})},b.draw=()=>{if(!j)return;const P=b.millis()*.001;let D;b.clear(),b.background(0,0),b.fill(L);for(let R=0;R<s;R++)for(let M=0;M<r;M++){const B=(R*r+M)*4;if(C.pixels[B]<64){if(D=b.noise(M/r*2,R/s*2,P*.15),D>.33)continue;b.text(n[Math.floor(D*n.length*.25)],(M+.5)*a,(R+.5)*o);continue}D=b.noise(M/r*4,R/s*4,P*.5),b.text(n[Math.floor(D*n.length)],(M+.5)*a,(R+.5)*o)}}};Ie(()=>{if(i(m))return;let b=!1;return pk().then(A=>{if(!(b||!i(f)))try{h=new A(I(),i(f))}catch(L){console.error("[ShellTitle] p5 sketch failed to start",L),x(m,!0)}}).catch(A=>{console.error("[ShellTitle] failed to load p5 from CDN",A),x(m,!0)}),()=>{b=!0,h&&(h.remove(),h=null)}});var g=Ye(),y=pe(g);{var w=b=>{var A=mk();E(b,A)},_=b=>{var A=bk();tt(A,"",{},{width:"216.7195767195767px",height:"80px","--shell-title-scale":d}),Ne(A,L=>x(f,L),()=>i(f)),E(b,A)};U(y,b=>{i(m)?b(w):b(_,-1)})}E(e,g),se()}async function Qn(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 Ws={async list(){return(await Qn("/api/projects",{method:"GET"})).projects},async listAll(){return(await Qn("/api/projects/all",{method:"GET"})).projects},async get(e){return Qn(`/api/projects/${encodeURIComponent(e)}`,{method:"GET"})},async create(e){return Qn("/api/projects",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e)})},async update(e,t){return Qn(`/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 Qn(`/api/projects/${encodeURIComponent(e)}${n}`,{method:"DELETE"})}};var _k=T(`<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 yk(e,t){re(t,!0);let n=V(void 0),r=V(!1),s=V(!1);Ie(()=>{i(n)?.focus()});async function a(){if(!i(r)){x(r,!0);try{await t.onConfirm({wipeData:i(s)})}finally{t.close()}}}function o(){i(r)||(t.onCancel?.(),t.close())}var l=_k(),c=p(l),u=p(c);v(c);var d=k(c,4),f=p(d);_e(f);var h=k(f,2),m=k(p(h)),I=p(m);v(m),v(h),v(d);var g=k(d,2),y=p(g);Ne(y,_=>x(n,_),()=>i(n));var w=k(y,2);v(g),v(l),z(()=>{O(u,`Delete project '${t.projectName??""}'?`),f.disabled=i(r),O(I,`<dataDir>/docs/${t.projectId??""}/`),y.disabled=i(r),w.disabled=i(r)}),Kr(f,()=>i(s),_=>x(s,_)),F("click",y,o),F("click",w,a),E(e,l),se()}oe(["click"]);var wk=T('<p class="project-id svelte-1oy3640">ID: <code class="svelte-1oy3640"> </code></p>'),kk=T('<span class="hint svelte-1oy3640">Your id: <code class="svelte-1oy3640"> </code> </span>'),xk=T('<p class="error svelte-1oy3640"> </p>'),Sk=T('<button type="button" class="danger svelte-1oy3640">Delete</button>'),Ek=T('<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 Ik(e,t){re(t,!0);let n=G(t,"project",3,null);const r=H(()=>n()!==null),s=H(xs);let a=V(ie(n()?.name??"")),o=V(ie(n()?.description??"")),l=V(ie(n()?[...n().members]:i(s)?.id?[i(s).id]:[])),c=V(ie(n()?[...n().appAllowlist]:[])),u=V(!1),d=V(null);async function f(){if(!i(a).trim()){x(d,"Name is required");return}x(u,!0),x(d,null);const W={name:i(a).trim(),description:i(o).trim()||void 0,members:i(l),appAllowlist:i(c)};try{i(r)&&n()?await Ws.update(n().id,W):await Ws.create(W),await ua(),t.onClose()}catch(Z){x(d,Z.message,!0)}finally{x(u,!1)}}function h(){if(!i(r)||!n())return;const W=n();Ca.open(yk,{projectName:W.name,projectId:W.id,onConfirm:async({wipeData:Z})=>{x(u,!0),x(d,null);try{await Ws.delete(W.id,{wipeData:Z}),await ua(),t.onClose()}catch(le){x(d,le.message,!0)}finally{x(u,!1)}}})}var m=Ek(),I=p(m),g=p(I),y=p(g,!0);v(g);var w=k(g,2);{var _=W=>{var Z=wk(),le=k(p(Z)),me=p(le,!0);v(le),v(Z),z(()=>O(me,n().id)),E(W,Z)};U(w,W=>{i(r)&&W(_)})}var b=k(w,2),A=k(p(b),2);_e(A),v(b);var L=k(b,2),C=k(p(L),2);oo(C),ne(C,"rows",2),v(L);var S=k(L,2),j=k(p(S),2);Df(j,{get disabled(){return i(u)},get value(){return i(l)},set value(W){x(l,W,!0)}});var P=k(j,2);{var D=W=>{var Z=kk(),le=k(p(Z)),me=p(le,!0);v(le);var Q=k(le);v(Z),z(()=>{O(me,i(s).id),O(Q,` (${i(s).username??i(s).displayName??""})`)}),E(W,Z)};U(P,W=>{i(s)&&W(D)})}v(S);var R=k(S,2),M=k(p(R),2);jf(M,{get disabled(){return i(u)},get value(){return i(c)},set value(W){x(c,W,!0)}}),v(R);var B=k(R,2);{var N=W=>{var Z=xk(),le=p(Z,!0);v(Z),z(()=>O(le,i(d))),E(W,Z)};U(B,W=>{i(d)&&W(N)})}v(I);var q=k(I,2),K=p(q),Y=p(K,!0);v(K);var te=k(K,2),J=k(te,2);{var ae=W=>{var Z=Sk();z(()=>Z.disabled=i(u)),F("click",Z,h),E(W,Z)};U(J,W=>{i(r)&&W(ae)})}v(q),v(m),z(()=>{O(y,i(r)?`Edit ${n().name}`:"Create Project"),A.disabled=i(u),C.disabled=i(u),K.disabled=i(u),O(Y,i(r)?"Save":"Create"),te.disabled=i(u)}),Ee(A,()=>i(a),W=>x(a,W)),Ee(C,()=>i(o),W=>x(o,W)),F("click",K,f),F("click",te,function(...W){t.onClose?.apply(this,W)}),E(e,m),se()}oe(["click"]);const Mt=ie({projects:[],loading:!1,error:null});async function ua(){Mt.loading=!0,Mt.error=null;try{Mt.projects=await Ws.list()}catch(e){Mt.error=e.message}finally{Mt.loading=!1}}const Fi="projects:manage";let Ui=null;function Ak(){const e=Ui;return Ui=null,e}function Hi(e){Ui=e,ct.open(Fi,{title:e?`Edit ${e.name}`:"Create Project",size:{w:560,h:620},dismissable:!0})}const Ck={manifest:{id:"__projects__",label:"Projects",version:bn,views:[{id:Fi,label:"Project Manager"}]},activate(e){ua(),typeof document<"u"&&document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&ua()});const t={mount(r,s){const a=Ak(),o=ct.list(),l=o.length>0?o[o.length-1].id:null,u=Me(Ik,{target:r,props:{project:a,onClose:()=>{l&&ct.close(l)}}});return{unmount(){Ue(u)}}}};e.registerView(Fi,t),e.actions.register({id:"sh3.project.create",label:"Create Project…",scope:["home","app"],paletteItem:!0,disabled:()=>!xt(),run:()=>{xt()&&Hi(null)}}),e.actions.register({id:"sh3.project.manage",label:"Manage Project…",scope:["home","app"],submenu:!0,paletteItem:!0,disabled:()=>!xt()});const n=new Map;ms(()=>{Ie(()=>{const r=new Set;for(const s of Mt.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=Mt.projects.find(l=>l.id===s.id);o&&Hi(o)}});n.set(s.id,a)}for(const s of[...n.keys()])r.has(s)||(n.get(s)(),n.delete(s))})})},autostart(){}};var Tk=T('<button type="button" class="project-card-edit svelte-yosqc3" aria-label="Edit project" title="Edit project">⚙</button>'),Rk=T('<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>'),Pk=T('<section class="projects-section svelte-yosqc3"><h2 class="projects-heading svelte-yosqc3">Projects</h2> <div class="projects-grid svelte-yosqc3"></div></section>');function jk(e,t){re(t,!0);const n=H(()=>Mt.projects.length>0),r=H(()=>Wn.activeProjectId),s=H(xt);function a(d){hf(i(r)===d?null:d)}function o(d,f){f.stopPropagation();const h=Mt.projects.find(m=>m.id===d)??null;h&&Hi(h)}var l=Ye(),c=pe(l);{var u=d=>{var f=Pk(),h=k(p(f),2);fe(h,21,()=>Mt.projects,m=>m.id,(m,I)=>{var g=Rk(),y=p(g);let w;var _=p(y),b=p(_,!0);v(_);var A=k(_,2),L=p(A);v(A),v(y);var C=k(y,2);{var S=j=>{var P=Tk();F("click",P,D=>o(i(I).id,D)),E(j,P)};U(C,j=>{i(s)&&j(S)})}v(g),z(()=>{w=de(y,1,"project-card svelte-yosqc3",null,w,{active:i(r)===i(I).id}),ne(y,"title",i(I).description??`${i(I).members.length} member${i(I).members.length===1?"":"s"}`),O(b,i(I).name),O(L,`${i(I).members.length??""} member${i(I).members.length===1?"":"s"}`)}),F("click",y,()=>a(i(I).id)),E(m,g)}),v(h),v(f),E(d,f)};U(c,d=>{i(n)&&d(u)})}E(e,l),se()}oe(["click"]);var Dk=T('<button type="button" class="shell-home-card svelte-cpn2x2"><div class="shell-home-card-label svelte-cpn2x2"> </div> <div class="shell-home-card-meta svelte-cpn2x2"><span class="shell-home-card-id svelte-cpn2x2"> </span> <span class="shell-home-card-version svelte-cpn2x2"> </span></div></button>'),Lk=T('<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>'),Mk=T('<button type="button" class="shell-home-card svelte-cpn2x2"><div class="shell-home-card-label svelte-cpn2x2"> </div> <div class="shell-home-card-meta svelte-cpn2x2"><span class="shell-home-card-id svelte-cpn2x2"> </span> <span class="shell-home-card-version svelte-cpn2x2"> </span></div></button>'),Ok=T('<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>'),Nk=T('<p class="shell-home-empty svelte-cpn2x2"><!></p>'),zk=T('<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 qk(e,t){re(t,!0);let n=V("");const r=H(Aa),s=H(xt),a=H(()=>Wn.activeProjectId?Mt.projects.find(D=>D.id===Wn.activeProjectId)??null:null);function o(D,R){if(!R)return!0;const M=R.toLowerCase();return D.label.toLowerCase().includes(M)||D.id.toLowerCase().includes(M)}function l(D){return i(a)?i(a).appAllowlist.includes(D):!0}const c=H(()=>i(r).filter(D=>!D.admin&&o(D,i(n))&&l(D.id))),u=H(()=>i(r).filter(D=>D.admin&&o(D,i(n)))),d=H(()=>i(c).length+(i(s)?i(u).length:0));var f=zk(),h=p(f),m=p(h),I=p(m);gk(I,{});var g=k(I,2),y=p(g);v(g),rn(2),v(m),rn(2),v(h);var w=k(h,2),_=p(w);_e(_),v(w);var b=k(w,2);jk(b,{});var A=k(b,2);{var L=D=>{var R=Lk(),M=k(p(R),2);fe(M,21,()=>i(c),B=>B.id,(B,N)=>{var q=Dk(),K=p(q),Y=p(K,!0);v(K);var te=k(K,2),J=p(te),ae=p(J,!0);v(J);var W=k(J,2),Z=p(W);v(W),v(te),v(q),z(()=>{ne(q,"title",`Launch ${i(N).label??""}`),O(Y,i(N).label),O(ae,i(N).id),O(Z,`v${i(N).version??""}`)}),F("click",q,()=>hn(i(N).id)),E(B,q)}),v(M),v(R),E(D,R)};U(A,D=>{i(c).length>0&&D(L)})}var C=k(A,2);{var S=D=>{var R=Ok(),M=k(p(R),2);fe(M,21,()=>i(u),B=>B.id,(B,N)=>{var q=Mk(),K=p(q),Y=p(K,!0);v(K);var te=k(K,2),J=p(te),ae=p(J,!0);v(J);var W=k(J,2),Z=p(W);v(W),v(te),v(q),z(()=>{ne(q,"title",`Launch ${i(N).label??""}`),O(Y,i(N).label),O(ae,i(N).id),O(Z,`v${i(N).version??""}`)}),F("click",q,()=>hn(i(N).id)),E(B,q)}),v(M),v(R),E(D,R)};U(C,D=>{i(s)&&i(u).length>0&&D(S)})}var j=k(C,2);{var P=D=>{var R=Nk(),M=p(R);{var B=q=>{var K=Wt("No apps registered.");E(q,K)},N=q=>{var K=Wt();z(()=>O(K,`No apps match “${i(n)??""}”.`)),E(q,K)};U(M,q=>{i(r).length===0?q(B):q(N,-1)})}v(R),E(D,R)};U(j,D=>{i(d)===0&&D(P)})}v(f),z(()=>O(y,`v${bn}`)),Ee(_,()=>i(n),D=>x(n,D)),E(e,f),se()}oe(["click"]);var Vk=T('<p class="keys-peers-muted svelte-19l5m7c">Loading...</p>'),Bk=T('<p class="keys-peers-error svelte-19l5m7c"> </p>'),Fk=T('<p class="keys-peers-muted svelte-19l5m7c">No keys yet. Shards will ask your permission before creating one.</p>'),Uk=T('<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),Hk=T('<button type="button" class="keys-peers-btn-danger svelte-19l5m7c">Revoke</button>'),Kk=T('<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>'),Wk=T('<ul class="keys-peers-list svelte-19l5m7c"></ul>'),Yk=T('<div class="keys-peers svelte-19l5m7c"><div class="keys-peers-header svelte-19l5m7c"><h2 class="svelte-19l5m7c">Keys & Peers</h2></div> <!></div>');function Gk(e,t){re(t,!0);let n=V(ie([])),r=V(null),s=V(!0),a=V(null);async function o(){x(r,null),x(s,!0);try{const g=await fetch("/api/keys",{credentials:"include"});if(!g.ok)throw new Error(`HTTP ${g.status}`);x(n,await g.json(),!0)}catch(g){x(r,g instanceof Error?g.message:String(g),!0)}finally{x(s,!1)}}async function l(g){x(a,null);const y=await fetch(`/api/keys/${encodeURIComponent(g)}`,{method:"DELETE",credentials:"include"});(y.ok||y.status===404)&&x(n,i(n).filter(w=>w.id!==g),!0)}function c(g){return new Date(g).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}Ie(()=>{o()}),Ie(()=>Fo("*",()=>{o()}));var u=Yk(),d=k(p(u),2);{var f=g=>{var y=Vk();E(g,y)},h=g=>{var y=Bk(),w=p(y);v(y),z(()=>O(w,`Failed to load: ${i(r)??""}`)),E(g,y)},m=g=>{var y=Fk();E(g,y)},I=g=>{var y=Wk();fe(y,21,()=>i(n),w=>w.id,(w,_)=>{var b=Kk(),A=p(b),L=p(A),C=p(L,!0);v(L);var S=k(L,2),j=p(S);v(S);var P=k(S,2),D=p(P);v(P);var R=k(P,2),M=p(R);v(R),v(A);var B=k(A,2),N=p(B);{var q=Y=>{var te=Uk(),J=pe(te),ae=k(J,2);F("click",J,()=>l(i(_).id)),F("click",ae,()=>{x(a,null)}),E(Y,te)},K=Y=>{var te=Hk();F("click",te,()=>{x(a,i(_).id,!0)}),E(Y,te)};U(N,Y=>{i(a)===i(_).id?Y(q):Y(K,-1)})}v(B),v(b),z((Y,te,J)=>{O(C,i(_).label),O(j,`Minted by: ${i(_).mintedByShardId??"system"??""}${i(_).peerRole||i(_).peerId?` · Peer: ${i(_).peerRole??"—"}${i(_).peerId?` (${i(_).peerId})`:""}`:""}`),O(D,`Scopes: ${Y??""}`),O(M,`Created: ${te??""} · Expires: ${J??""}`)},[()=>i(_).scopes.join(", "),()=>c(i(_).createdAt),()=>i(_).expiresAt?c(i(_).expiresAt):"never"]),E(w,b)}),v(y),E(g,y)};U(d,g=>{i(s)?g(f):i(r)?g(h,1):i(n).length===0?g(m,2):g(I,-1)})}v(u),E(e,u),se()}oe(["click"]);var Xk=T('<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 Jk(e,t){re(t,!0);let n=G(t,"confirmLabel",3,"Confirm"),r=G(t,"cancelLabel",3,"Cancel"),s=G(t,"confirmTone",3,"default"),a=V(void 0),o=V(!1);Ie(()=>{i(a)?.focus()});async function l(){if(!i(o)){x(o,!0);try{await t.onConfirm()}finally{t.close()}}}function c(){i(o)||(t.onCancel?.(),t.close())}var u=Xk(),d=p(u),f=p(d,!0);v(d);var h=k(d,2),m=p(h,!0);v(h);var I=k(h,2),g=p(I),y=p(g,!0);v(g),Ne(g,A=>x(a,A),()=>i(a));var w=k(g,2);let _;var b=p(w,!0);v(w),v(I),v(u),z(()=>{O(f,t.title),O(m,t.body),g.disabled=i(o),O(y,r()),_=de(w,1,"confirm-dialog-btn svelte-1k1962w",null,_,{"confirm-dialog-btn-danger":s()==="danger","confirm-dialog-btn-default":s()==="default"}),w.disabled=i(o),O(b,n())}),F("click",g,c),F("click",w,l),E(e,u),se()}oe(["click"]);const Zk={manifest:{id:"__sh3core__",label:"SH3 Core",version:bn,views:[{id:"sh3core:home",label:"Home"},{id:"shell:keys-and-peers",label:"Keys & Peers"}]},activate(e){const t=e.state({user:{bindings:{}}});R_(t.user),e.actions.register({id:"sh3.palette.open",label:"Command Palette…",scope:["home","app"],defaultShortcut:"Mod+K",contextItem:!1,paletteItem:!1,run(a){hr(async()=>{const{openPalette:o}=await Promise.resolve().then(()=>Vy);return{openPalette:o}},void 0).then(({openPalette:o})=>o())}}),e.actions.register({id:"sh3.app.reset-layout",label:"Reset Current Layout",scope:["app"],paletteItem:!0,contextItem:!1,run(){Ca.open(Jk,{title:"Reset layout?",body:"This discards the current arrangement of the active preset and rebuilds it from the app default. Floats will be removed.",confirmLabel:"Reset",confirmTone:"danger",onConfirm:()=>dy()})}});const n={mount(a,o){const l=Me(qk,{target:a});return{unmount(){Ue(l)}}}},r={mount(a,o){const l=Me(Gk,{target:a});return{unmount(){Ue(l)}}}};e.registerView("sh3core:home",n),e.registerView("shell:keys-and-peers",r),e.actions.register({id:"sh3.app.launch",label:"Launch app",scope:["home","app"],submenu:!0,paletteItem:!0});const s=new Map;ms(()=>{Ie(()=>{const a=new Set;for(const[o,l]of En){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(){hn(o)}});s.set(o,c)}for(const o of[...s.keys()])a.has(o)||(s.get(o)(),s.delete(o))})})},autostart(){}},Qk={id:"shell",label:"Shell",version:bn,views:[{id:"shell:terminal",label:"Shell",standalone:!0}],permissions:[]},$k=2e3;let e0=0;function t0(){return`e${++e0}`}class n0{#e;get entries(){return i(this.#e)}set entries(t){x(this.#e,t,!0)}constructor(t=$k){this.#e=V(ie([])),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:t0()};this.entries.push(r),this.entries.length>this.cap&&this.entries.splice(0,this.entries.length-this.cap)}clear(){this.entries.length=0}}var r0=T("<pre> </pre>");function s0(e,t){re(t,!0);const n=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,r=H(()=>t.chunks.join("").replace(n,""));var s=r0();let a;var o=p(s,!0);v(s),z(()=>{a=de(s,1,"shell-text svelte-ypr8s",null,a,{stderr:t.stream==="stderr"}),O(o,i(r))}),E(e,s),se()}var a0=T('<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 i0(e,t){var n=a0(),r=p(n),s=p(r,!0);v(r);var a=k(r,4),o=p(a,!0);v(a),v(n),z(()=>{O(s,t.cwd),O(o,t.line)}),E(e,n)}var o0=T("<div> </div>");function l0(e,t){var n=o0();let r;var s=p(n,!0);v(n),z(()=>{r=de(n,1,"shell-status svelte-nfxdpt",null,r,{info:t.level==="info",warn:t.level==="warn",error:t.level==="error"}),O(s,t.text)}),E(e,n)}var c0=T('<div class="shell-rich svelte-1rnhl05"><!></div>');function u0(e,t){var n=c0(),r=p(n);gs(r,()=>t.component,(s,a)=>{a(s,ys(()=>t.componentProps))}),v(n),E(e,n)}var d0=T('<div class="shell-scrollback svelte-isy3jt"></div>');function f0(e,t){re(t,!0);let n=V(null);Ie(()=>{t.scrollback.entries.length,i(n)&&(i(n).scrollTop=i(n).scrollHeight)});var r=d0();fe(r,21,()=>t.scrollback.entries,s=>s.id,(s,a)=>{var o=Ye(),l=pe(o);{var c=h=>{s0(h,{get stream(){return i(a).stream},get chunks(){return i(a).chunks}})},u=h=>{i0(h,{get cwd(){return i(a).cwd},get line(){return i(a).line}})},d=h=>{l0(h,{get text(){return i(a).text},get level(){return i(a).level}})},f=h=>{u0(h,{get component(){return i(a).component},get componentProps(){return i(a).props}})};U(l,h=>{i(a).kind==="text"?h(c):i(a).kind==="prompt"?h(u,1):i(a).kind==="status"?h(d,2):i(a).kind==="rich"&&h(f,3)})}E(s,o)}),v(r),Ne(r,s=>x(n,s),()=>i(n)),E(e,r),se()}var v0=T('<div><span class="shell-input-cwd svelte-1dfv2gk"> </span> <span class="shell-input-arrow svelte-1dfv2gk">❯</span> <input type="text" spellcheck="false" autocomplete="off" autocapitalize="off" class="shell-input-field svelte-1dfv2gk"/></div>');function h0(e,t){re(t,!0);let n=V(""),r=V(null),s=V(""),a=V(null);function o(){if(t.locked)return;const g=i(n);g.trim()&&(x(n,""),x(r,null),t.onSubmit(g))}function l(){t.history.length!==0&&(i(r)===null?(x(s,i(n),!0),x(r,t.history.length-1)):i(r)>0&&gr(r,-1),x(n,t.history[i(r)]??"",!0))}function c(){i(r)!==null&&(i(r)<t.history.length-1?(gr(r),x(n,t.history[i(r)],!0)):(x(r,null),x(n,i(s),!0)))}function u(g){if(t.locked){if(g.ctrlKey&&g.key==="c"){g.preventDefault(),t.session.send({t:"signal",sig:"SIGINT"});return}if(g.ctrlKey&&g.key==="d"){g.preventDefault(),t.session.send({t:"signal",sig:"EOF"});return}g.preventDefault();return}g.key==="Enter"?(g.preventDefault(),o()):g.key==="ArrowUp"?(g.preventDefault(),l()):g.key==="ArrowDown"?(g.preventDefault(),c()):g.ctrlKey&&g.key==="c"?(g.preventDefault(),x(n,""),x(r,null)):g.ctrlKey&&g.key==="l"&&(g.preventDefault(),x(n,"clear"),o())}Ie(()=>{!t.locked&&i(a)&&i(a).focus()});var d=v0();let f;var h=p(d),m=p(h,!0);v(h);var I=k(h,4);_e(I),Ne(I,g=>x(a,g),()=>i(a)),v(d),z(()=>{f=de(d,1,"shell-input svelte-1dfv2gk",null,f,{locked:t.locked}),O(m,t.cwd),I.disabled=t.locked}),F("keydown",I,u),Ee(I,()=>i(n),g=>x(n,g)),E(e,d),se()}oe(["keydown"]);const ac=[1e3,2e3,5e3,1e4];class p0{#e;get connected(){return i(this.#e)}set connected(t){x(this.#e,t,!0)}#t;get cwd(){return i(this.#t)}set cwd(t){x(this.#t,t,!0)}#n;get env(){return i(this.#n)}set env(t){x(this.#n,t,!0)}#a;get history(){return i(this.#a)}set history(t){x(this.#a,t,!0)}constructor(t){this.url=t,this.ws=null,this.handlers=new Set,this.pendingHistoryLogs=[],this.lastSeq=0,this.backoffIndex=0,this.closed=!1,this.#e=V(!1),this.#t=V(""),this.#n=V(ie({})),this.#a=V(ie([]))}connect(){if(!this.closed){try{this.ws=new WebSocket(this.url)}catch{this.scheduleReconnect();return}this.ws.addEventListener("open",()=>{this.backoffIndex=0,this.connected=!0;const t=this.lastSeq>0?{t:"hello",replayFrom:this.lastSeq}:{t:"hello"};this.sendRaw(t);for(const n of this.pendingHistoryLogs)this.sendRaw(n);this.pendingHistoryLogs=[]}),this.ws.addEventListener("message",t=>{let n;try{n=JSON.parse(t.data)}catch{return}n.t==="event"&&typeof n.event.seq=="number"&&(this.lastSeq=n.event.seq),n.t==="welcome"&&(this.cwd=n.cwd,this.env=n.env,this.lastSeq=n.seq),n.t==="cwd"&&(this.cwd=n.cwd),n.t==="history"&&(this.history=n.lines);for(const r of this.handlers)r(n)}),this.ws.addEventListener("close",()=>{this.connected=!1,this.ws=null,this.scheduleReconnect()}),this.ws.addEventListener("error",()=>{})}}scheduleReconnect(){if(this.closed)return;const t=ac[Math.min(this.backoffIndex,ac.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 m0{list(){return Do()}get(t){return Gl(t)}resolve(t){const n=t.trim();if(!n)return{kind:"forward",line:t};if(n.startsWith("$ "))return{kind:"forward",line:n.slice(2)};if(n==="$")return{kind:"forward",line:""};const r=n.indexOf(" "),s=r===-1?n:n.slice(0,r),a=r===-1?"":n.slice(r+1),o=Gl(s);if(!o)return{kind:"forward",line:t};const l=a.length?a.split(/\s+/):[];return{kind:"local",verb:o,args:l,line:t}}}class b0{constructor(t=""){this.base=t}async list(t){return(await(await this.#e("/api/fs/list",t)).json()).entries}async stat(t){return await(await this.#e("/api/fs/stat",t)).json()}async read(t){return await(await this.#e("/api/fs/read",t)).text()}async#e(t,n){const r=`${this.base}${t}?path=${encodeURIComponent(n)}`,s=await fetch(r,{credentials:"include"});if(!s.ok){let a=`HTTP ${s.status}`;try{const o=await s.json();o.error&&(a=o.error)}catch{}throw new Error(a)}return s}}class g0{#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 _0={id:"dev",label:"Dev",requiresRole:"admin",transport:"ws",autoRelocate:!1},y0={id:"user",label:"User",transport:"none",autoRelocate:!0};function w0(e){e.register(_0),e.register(y0)}function Of(e){return`sh3.shell.lastMode.${e}`}function k0(e){try{return globalThis.localStorage?.getItem(Of(e))??null}catch{return null}}function x0(e,t){try{globalThis.localStorage?.setItem(Of(e),t)}catch{}}function S0(e,t,n){const r=k0(t);if(r){const a=e.get(r);if(a&&(!a.requiresRole||a.requiresRole===n))return a}const s=n==="admin"?"dev":"user";return e.get(s)}function E0(e){return async function t(n){const r=e.mode();if(e.session.history.push(n),r.transport==="none"&&n.trimStart().startsWith("$ ")){e.scrollback.push({kind:"prompt",cwd:e.cwd(),line:n,ts:Date.now()}),e.scrollback.push({kind:"status",text:"shell: server shell not available in user mode",level:"error",ts:Date.now()});return}const s=e.resolver.resolve(n);if(s.kind==="local"){r.transport==="ws"&&e.session.send({t:"history-log",line:n}),e.scrollback.push({kind:"prompt",cwd:e.cwd(),line:n,ts:Date.now()});try{await s.verb.run({shell:e.shell,scrollback:e.scrollback,session:e.session,cwd:e.cwd(),dispatch:t,fs:e.fs},s.args)}catch(a){e.scrollback.push({kind:"status",text:`shell: verb ${s.verb.name} threw — ${a.message}`,level:"error",ts:Date.now()})}return}if(r.transport==="ws")e.session.send({t:"submit",line:s.line});else{const a=s.line.split(/\s+/)[0]??"";e.scrollback.push({kind:"prompt",cwd:e.cwd(),line:s.line,ts:Date.now()}),e.scrollback.push({kind:"status",text:`unknown verb: ${a}`,level:"error",ts:Date.now()})}}}async function I0(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 A0=T('<div class="toolbar svelte-gnowwz"><div class="toolbar-slots svelte-gnowwz"></div></div>');function C0(e,t){re(t,!0);let n=G(t,"slotProps",19,()=>({})),r=H(()=>t.registry.list(t.ctx));var s=A0(),a=p(s);fe(a,21,()=>i(r),o=>o.id,(o,l)=>{const c=H(()=>i(l).component);var u=Ye(),d=pe(u);gs(d,()=>i(c),(f,h)=>{h(f,ys(()=>n()[i(l).id]??{}))}),E(o,u)}),v(a),v(s),E(e,s),se()}class T0{#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 R0=T('<button type="button"> </button>'),P0=T('<div class="mode-bar svelte-1i4cqlj" role="toolbar" aria-label="Shell mode"></div>'),j0=T('<span class="mode-label svelte-1i4cqlj"> </span>');function D0(e,t){re(t,!0);let n=H(()=>t.registry.list(t.role));var r=Ye(),s=pe(r);{var a=l=>{var c=P0();fe(c,21,()=>i(n),u=>u.id,(u,d)=>{var f=R0();let h;var m=p(f,!0);v(f),z(()=>{h=de(f,1,"mode-btn svelte-1i4cqlj",null,h,{active:i(d).id===t.mode.id}),ne(f,"aria-pressed",i(d).id===t.mode.id),O(m,i(d).label)}),F("click",f,()=>t.onSelect(i(d).id)),E(u,f)}),v(c),E(l,c)},o=l=>{var c=j0(),u=p(c,!0);v(c),z(()=>O(u,t.mode.label)),E(l,c)};U(s,l=>{t.role==="admin"?l(a):l(o,-1)})}E(e,r),se()}oe(["click"]);var L0=T('<button class="focus-lock-btn svelte-1q6gbap"> </button>');function M0(e,t){var n=L0(),r=p(n,!0);v(n),z(()=>{ne(n,"title",t.locked?"Unlock focus":"Lock focus"),O(r,t.locked?"🔒":"🔓")}),F("click",n,function(...s){t.onToggle?.apply(this,s)}),E(e,n)}oe(["click"]);var O0=T('<span class="target-shard svelte-1nn2m6x" title="Target shard"> </span>');function N0(e,t){var n=O0(),r=p(n);v(n),z(()=>O(r,`→ ${t.target??"—"??""}`)),E(e,n)}var z0=T('<div class="shell-terminal svelte-13komre"><!> <!> <!></div>');function q0(e,t){re(t,!0);const n=new n0,r=new m0,s=new b0,a=new g0;w0(a);let o=V(ie(Ce(()=>S0(a,t.userId,t.role))));function l(C){const S=a.get(C);S&&(S.requiresRole&&S.requiresRole!==t.role||(x(o,S,!0),x0(t.userId,C),S.transport!=="ws"&&n.push({kind:"status",text:"mode switch: reload to take effect for server-shell changes",level:"info",ts:Date.now()})))}const c=Ce(()=>new p0(t.wsUrl)),u=Ce(()=>E0({mode:()=>i(o),resolver:r,scrollback:n,session:c,shell:t.shell,fs:s,cwd:()=>c.cwd}));let d=V(!1),f=V(!1),h=V(null);const m=new T0;m.register({id:"mode",order:10,visible:()=>!0,component:D0}),m.register({id:"focus-lock",order:20,visible:C=>C.mode.id==="user",component:M0}),m.register({id:"target-shard",order:30,visible:C=>C.mode.id==="user",component:N0});function I(C){if(C.type==="tabs")return C.tabs[C.activeTab]?.viewId??null;if(C.type==="split"){for(const S of C.children){const j=I(S);if(j!==null)return j}return null}return C.viewId??null}function g(){try{const C=Ct(),S=I(C.docked);if(!S)return null;const j=S.indexOf(":");return j>=0?S.slice(0,j):S}catch{return null}}Ie(()=>{const C=g(),S=i(o).autoRelocate,j=i(f);(async()=>{const P=await I0({modeAutoRelocate:S,focusLocked:j,focusedShardId:C,currentShardId:"shell"},s);P.kind==="relocate"&&P.path!==void 0&&(c.cwd=P.path),C&&C!=="shell"?x(h,C,!0):C||x(h,null)})()});function y(C){if(C.t!=="event")return;const S=C.event;switch(S.kind){case"prompt":n.push({kind:"prompt",cwd:S.cwd,line:S.line,ts:S.ts}),x(d,!0);break;case"stdout":n.push({kind:"text",stream:"stdout",chunks:[S.data],ts:S.ts});break;case"stderr":n.push({kind:"text",stream:"stderr",chunks:[S.data],ts:S.ts});break;case"exit":(S.signal||S.code!==null&&S.code!==0)&&n.push({kind:"status",text:S.signal?`shell: process exited (${S.signal})`:`shell: process exited (${S.code})`,level:"error",ts:S.ts}),x(d,!1);break;case"status":n.push({kind:"status",text:S.text,level:S.level,ts:S.ts});break}}let w=null;mo(()=>{w=c.onMessage(y),i(o).transport==="ws"&&c.connect()}),bo(()=>{w?.(),c.close()});var _=z0(),b=p(_);{let C=H(()=>({mode:i(o),role:t.role})),S=H(()=>({mode:{mode:i(o),role:t.role,registry:a,onSelect:l},"focus-lock":{locked:i(f),onToggle:()=>x(f,!i(f))},"target-shard":{target:i(h)}}));C0(b,{get registry(){return m},get ctx(){return i(C)},get slotProps(){return i(S)}})}var A=k(b,2);f0(A,{get scrollback(){return n}});var L=k(A,2);h0(L,{get cwd(){return c.cwd},get locked(){return i(d)},get history(){return c.history},get session(){return c},get onSubmit(){return u}}),v(_),E(e,_),se()}var V0=T('<tr><td class="svelte-m248jy"><button type="button" class="svelte-m248jy"> </button></td><td class="svelte-m248jy"> </td></tr>'),B0=T('<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 F0(e,t){re(t,!0);var n=B0(),r=p(n),s=k(p(r));fe(s,21,()=>t.data.rows,a=>a.name,(a,o)=>{var l=V0(),c=p(l),u=p(c),d=p(u,!0);v(u),v(c);var f=k(c),h=p(f,!0);v(f),v(l),z(()=>{O(d,i(o).name),O(h,i(o).summary)}),F("click",u,()=>t.data.onClickName(i(o).name)),E(a,l)}),v(s),v(r),v(n),E(e,n),se()}oe(["click"]);function U0(){return{name:"help",summary:"List verbs or show detail for one.",async run(e){const t=Do().map(n=>({name:n.name,summary:n.summary}));e.scrollback.push({kind:"rich",component:F0,props:{data:{rows:t,onClickName:n=>e.dispatch(n)}},ts:Date.now()})}}}const H0={name:"clear",summary:"Clear the scrollback (local only — other views are unaffected).",async run(e){e.scrollback.clear()}};var K0=T('<li class="svelte-o8m437"><button type="button" class="svelte-o8m437"> </button></li>'),W0=T('<div class="shell-rich-history svelte-o8m437"><ol class="svelte-o8m437"></ol></div>');function Y0(e,t){re(t,!0);var n=W0(),r=p(n);fe(r,21,()=>t.data.lines,Vt,(s,a)=>{var o=K0(),l=p(o),c=p(l,!0);v(l),v(o),z(()=>O(c,i(a))),F("click",l,()=>t.data.onClickLine(i(a))),E(s,o)}),v(r),v(n),E(e,n),se()}oe(["click"]);const G0={name:"history",summary:"Show the last N history lines. Default 50.",async run(e,t){const n=t[0]?Math.max(1,parseInt(t[0],10)||50):50,r=e.session.history.slice(-n);e.scrollback.push({kind:"rich",component:Y0,props:{data:{lines:r,onClickLine:s=>e.dispatch(s)}},ts:Date.now()})}};var X0=T('<tr><td class="svelte-1u5krjz"><button type="button" class="svelte-1u5krjz"> </button></td><td class="svelte-1u5krjz"> </td></tr>'),J0=T('<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 Z0(e,t){re(t,!0);var n=J0(),r=p(n),s=k(p(r));fe(s,21,()=>t.data.apps,a=>a.id,(a,o)=>{var l=X0(),c=p(l),u=p(c),d=p(u,!0);v(u),v(c);var f=k(c),h=p(f,!0);v(f),v(l),z(()=>{O(d,i(o).id),O(h,i(o).label)}),F("click",u,()=>t.data.onClickApp(i(o).id)),E(a,l)}),v(s),v(r),v(n),E(e,n),se()}oe(["click"]);var Q0=T('<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 $0(e,t){re(t,!0);var n=Q0(),r=p(n),s=p(r,!0);v(r);var a=k(r,2),o=k(p(a));v(a);var l=k(a,2),c=k(p(l));v(l),v(n),z(u=>{O(s,t.data.label),O(o,` ${t.data.id??""}`),O(c,` ${u??""}`)},[()=>t.data.shards.join(", ")]),E(e,n),se()}const ex={name:"apps",summary:"List installed apps. Click a row to launch.",async run(e){const t=e.shell.listApps();e.scrollback.push({kind:"rich",component:Z0,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()})}},tx={name:"app",summary:"Show the currently active app.",async run(e){const t=e.shell.getActiveApp();if(!t){e.scrollback.push({kind:"status",text:"shell: no active app",level:"info",ts:Date.now()});return}e.scrollback.push({kind:"rich",component:$0,props:{data:{id:t.id,label:t.label,shards:[]}},ts:Date.now()})}};var nx=T('<tr><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td></tr>'),rx=T('<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 sx(e,t){re(t,!0);var n=rx(),r=p(n),s=k(p(r));fe(s,21,()=>t.data.shards,a=>a.id,(a,o)=>{var l=nx(),c=p(l),u=p(c,!0);v(c);var d=k(c),f=p(d,!0);v(d);var h=k(d),m=p(h,!0);v(h),v(l),z(()=>{O(u,i(o).id),O(f,i(o).label),O(m,i(o).version)}),E(a,l)}),v(s),v(r),v(n),E(e,n),se()}const ax={name:"shards",summary:"List active shards.",async run(e){const t=e.shell.listShards();e.scrollback.push({kind:"rich",component:sx,props:{data:{shards:t}},ts:Date.now()})}};var ix=T('<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>'),ox=T('<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 lx(e,t){re(t,!0);var n=ox(),r=p(n),s=k(p(r));fe(s,21,()=>t.data.views,a=>a.slotId,(a,o)=>{var l=ix(),c=p(l),u=p(c,!0);v(c);var d=k(c),f=p(d,!0);v(d);var h=k(d),m=p(h,!0);v(h);var I=k(h),g=p(I);v(I),v(l),z(()=>{O(u,i(o).slotId),O(f,i(o).viewId),O(m,i(o).label)}),F("click",g,()=>t.data.onClose(i(o).slotId)),E(a,l)}),v(s),v(r),v(n),E(e,n),se()}oe(["click"]);const cx={name:"views",summary:"List views currently mounted. Pass --standalone to list summonable views instead.",async run(e,t){if(t.includes("--standalone")){const r=e.shell.listStandaloneViews();if(r.length===0){e.scrollback.push({kind:"status",text:"shell: no standalone views are currently available.",level:"info",ts:Date.now()});return}e.scrollback.push({kind:"status",text:r.map(s=>` ${s.viewId.padEnd(32)} ${s.label}`).join(`
|
|
11
|
-
`),level:"info",ts:Date.now()});return}const n=e.shell.listViewsInCurrentLayout();e.scrollback.push({kind:"rich",component:lx,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()})}},ux={name:"open",summary:"Open a view from any active shard into the current layout.",async run(e,t){const n=t[0];if(!n){e.scrollback.push({kind:"status",text:"usage: open <viewId>",level:"warn",ts:Date.now()});return}const r=e.shell.openViewInCurrentLayout(n);r.ok?e.scrollback.push({kind:"status",text:`shell: opened ${n}`,level:"info",ts:Date.now()}):e.scrollback.push({kind:"status",text:`shell: open failed — ${r.error??"unknown"}`,level:"error",ts:Date.now()})}},dx={name:"popout",summary:"Pop a docked view out into a float by slot id.",async run(e,t){const n=t[0];if(!n){e.scrollback.push({kind:"status",text:"usage: popout <slotId>",level:"warn",ts:Date.now()});return}const r=e.shell.popoutSlot(n);r.ok?e.scrollback.push({kind:"status",text:`shell: popped out ${n} → ${r.floatId}`,level:"info",ts:Date.now()}):e.scrollback.push({kind:"status",text:`shell: popout failed — ${r.error??"unknown"}`,level:"error",ts:Date.now()})}},fx={name:"dock",summary:"Dock a float back into the current layout by float id. Run with no args to list floats.",async run(e,t){const n=t[0];if(!n){const s=e.shell.listFloats();if(s.length===0){e.scrollback.push({kind:"status",text:"shell: no active floats.",level:"info",ts:Date.now()});return}e.scrollback.push({kind:"status",text:s.map(a=>` ${a.floatId.padEnd(24)} ${a.viewId??"-"} ${a.label}`).join(`
|
|
12
|
-
`),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()})}},vx={name:"close",summary:"Close a view by slot id.",async run(e,t){const n=t[0];if(!n){e.scrollback.push({kind:"status",text:"usage: close <slotId>",level:"warn",ts:Date.now()});return}const r=e.shell.closeSlot(n);r.ok||e.scrollback.push({kind:"status",text:`shell: close failed — ${r.error??"unknown"}`,level:"error",ts:Date.now()})}};var hx=T('<tr><td class="svelte-1w7onag"> </td><td class="svelte-1w7onag"> </td></tr>'),px=T('<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 mx(e,t){re(t,!0);var n=px(),r=p(n),s=k(p(r));fe(s,21,()=>t.data.rows,a=>a.shardId,(a,o)=>{var l=hx(),c=p(l),u=p(c,!0);v(c);var d=k(c),f=p(d,!0);v(d),v(l),z(h=>{O(u,i(o).shardId),O(f,h)},[()=>i(o).zones.join(", ")]),E(a,l)}),v(s),v(r),v(n),E(e,n),se()}var bx=T('<div class="shell-rich-zonetree svelte-13iiyr1"><pre class="svelte-13iiyr1"> </pre></div>');function gx(e,t){re(t,!0);var n=bx(),r=p(n),s=p(r,!0);v(r),v(n),z(a=>O(s,a),[()=>JSON.stringify(t.data.value,null,2)]),E(e,n),se()}const _x={name:"zones",summary:"List zones for the current user (optionally scoped to a shard).",async run(e,t){const n=e.shell.listZones(t[0]);e.scrollback.push({kind:"rich",component:mx,props:{data:{rows:n}},ts:Date.now()})}},yx={name:"zone",summary:"Dump the contents of a zone as a collapsible JSON tree.",async run(e,t){const[n,r]=t;if(!n||!r){e.scrollback.push({kind:"status",text:"usage: zone <shardId> <zoneName>",level:"warn",ts:Date.now()});return}const s=e.shell.readZone(n,r);e.scrollback.push({kind:"rich",component:gx,props:{data:{value:s}},ts:Date.now()})}};function wx(e,t){if(t.startsWith("/"))return kx(t.slice(1));const n=[...e.split("/").filter(Boolean),...t.split("/")],r=[];for(const s of n)if(!(s===""||s===".")){if(s===".."){r.pop();continue}r.push(s)}return r.join("/")}function kx(e){return e.split("/").filter(t=>t&&t!==".").join("/")}const xx={name:"pwd",summary:"Show the current working directory.",async run(e){const t=e.session.cwd||"",n=t.startsWith("/")?t:`/${t}`;e.scrollback.push({kind:"text",stream:"stdout",chunks:[n+`
|
|
13
|
-
`],ts:Date.now()})}},Sx={name:"cd",summary:"Change the session working directory.",async run(e,t){const n=t[0]??"";if(n===""){e.session.cwd="";return}const r=e.session.cwd,s=wx(r,n);try{if((await e.fs.stat(s)).kind!=="dir"){e.scrollback.push({kind:"status",text:`cd: not a directory: ${n}`,level:"error",ts:Date.now()});return}}catch(a){e.scrollback.push({kind:"status",text:`cd: ${a.message}`,level:"error",ts:Date.now()});return}e.session.cwd=s}},Ex={name:"whoami",summary:"Show the current admin user and session info.",async run(e){const t=e.shell.whoAmI();e.scrollback.push({kind:"text",stream:"stdout",chunks:[`${t.userId}${t.admin?" (admin)":""}
|
|
14
|
-
`],ts:Date.now()})}};var Ix=T('<tr><td class="svelte-1ox8vog"> </td><td class="svelte-1ox8vog"> </td></tr>'),Ax=T('<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 Cx(e,t){re(t,!0);var n=Ax(),r=p(n),s=k(p(r));fe(s,21,()=>Object.entries(t.data.env),([a,o])=>a,(a,o)=>{var l=H(()=>Cc(i(o),2));let c=()=>i(l)[0],u=()=>i(l)[1];var d=Ix(),f=p(d),h=p(f,!0);v(f);var m=k(f),I=p(m,!0);v(m),v(d),z(()=>{O(h,c()),O(I,u())}),E(a,d)}),v(s),v(r),v(n),E(e,n),se()}const Tx={name:"env",summary:"Show the session environment.",async run(e){const t=e.session.env;e.scrollback.push({kind:"rich",component:Cx,props:{data:{env:t}},ts:Date.now()})}},Rx={name:"ls",summary:"List the current directory.",async run(e){let t;try{t=await e.fs.list(e.session.cwd)}catch(r){e.scrollback.push({kind:"status",text:`ls: ${r.message}`,level:"error",ts:Date.now()});return}const n=t.sort((r,s)=>r.name.localeCompare(s.name)).map(r=>r.kind==="dir"?`${r.name}/`:r.name).join(`
|
|
15
|
-
`);e.scrollback.push({kind:"text",stream:"stdout",chunks:[n||"(empty)"],ts:Date.now()})}},Px={name:"cat",summary:"Read a file into the scrollback.",async run(e,t){if(t.length===0){e.scrollback.push({kind:"status",text:"cat: missing file argument",level:"error",ts:Date.now()});return}const n=t[0],r=e.session.cwd?`${e.session.cwd}/${n}`:n;try{const s=await e.fs.read(r);e.scrollback.push({kind:"text",stream:"stdout",chunks:[s],ts:Date.now()})}catch(s){e.scrollback.push({kind:"status",text:`cat: ${s.message}`,level:"error",ts:Date.now()})}}};async function jx(){try{const{TauriStoreBackend:e}=await hr(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:Sc}}}async function Dx(){try{const{LazyStore:e}=await hr(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 Lx={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 Dx(),location.reload()}};function Mx(e){e.registerVerb(U0()),e.registerVerb(H0),e.registerVerb(G0),e.registerVerb(ex),e.registerVerb(tx),e.registerVerb(ax),e.registerVerb(cx),e.registerVerb(ux),e.registerVerb(vx),e.registerVerb(dx),e.registerVerb(fx),e.registerVerb(_x),e.registerVerb(yx),e.registerVerb(xx),e.registerVerb(Sx),e.registerVerb(Tx),e.registerVerb(Ex),e.registerVerb(Rx),e.registerVerb(Px),e.registerVerb(Lx)}function Nf(e){return e.type==="tabs"?e.tabs.filter(t=>t.viewId!==null):e.type==="split"?e.children.flatMap(Nf):e.viewId!==null?[{slotId:e.slotId,viewId:e.viewId,label:e.viewId}]:[]}function Ox(e){return{listApps(){return Aa().map(t=>({id:t.id,label:t.label}))},getActiveApp(){const t=ed();return t?{id:t.id,label:t.label}:null},launchApp(t){hn(t)},listShards(){return Array.from(ln.values()).map(t=>({id:t.manifest.id,label:t.manifest.label,version:t.manifest.version}))},listViewsInCurrentLayout(){try{const{root:t}=gf();return Nf(t.docked).map(n=>({slotId:n.slotId,viewId:n.viewId??"",label:n.label}))}catch{return[]}},openViewInCurrentLayout(t){try{if(Fa(t))return{ok:!0};const n=tc().find(r=>r.viewId===t);if(n){const r=`standalone:${t}:${Date.now()}`;return Yo({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 tc()},popoutSlot(t){try{const n=wf(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 kf(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 Sf(t)}catch{return null}},listFloats(){return ct.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 Ko(t),{ok:!0}},listZones(t){return[]},readZone(t,n){return null},whoAmI(){return{userId:xs()?.id??"guest",admin:xt()}}}}const Nx={manifest:Qk,activate(e){Mx(e);const t=Ox();e.actions.register({id:"shell.terminal.toggle",label:"Open Terminal",scope:["home","app"],defaultShortcut:"²",allowInInputs:!1,run(){Fa("shell:terminal")||ct.open("shell:terminal",{title:"Shell"})}});const n={mount(r,s){const a=typeof location<"u"&&location.protocol==="https:"?"wss":"ws",o=typeof location<"u"?location.host:"localhost",l=`${a}://${o}/api/shell/session`,u=xs()?.id??"guest",d=xt()?"admin":"user",f=Me(q0,{target:r,props:{shell:t,wsUrl:l,userId:u,role:d}});return{unmount(){Ue(f)},closable:!0}}};e.registerView("shell:terminal",n)},autostart(){}},ic=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 ci(e,t){const n=Object.keys(t),r=n.filter(o=>!ic.has(o)),s=n.filter(o=>ic.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(`
|
|
16
|
-
`)],{type:"application/javascript"}))}const Zo=globalThis;Zo.__sh3__=Mf;Zo.__sh3_svelte__=Vu;Zo.__sh3_svelte_internal_client__=$u;const Qo={"sh3-core":ci("__sh3__",Mf),svelte:ci("__sh3_svelte__",Vu),"svelte/internal/client":ci("__sh3_svelte_internal_client__",$u)};Qo["svelte/internal/disclose-version"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));Qo["sh3-core/tokens.css"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));const zx=/(?:from|import)\s*(['"])(sh3-core(?:\/[^'"]*)?|svelte(?:\/[^'"]*)?)\1/g;function qx(e){return e.replace(zx,(t,n,r)=>{const s=Qo[r];return s?`${t.startsWith("from")?"from":"import"} '${s}'`:t})}async function Es(e){const t=new TextDecoder().decode(e),n=qx(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;Vx(c)?o.shards.push(c):Bx(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 Vx(e){return"activate"in e&&typeof e.activate=="function"&&Array.isArray(e.manifest.views)}function Bx(e){return"initialLayout"in e&&Array.isArray(e.manifest.requiredShards)}const Fx="sh3-packages",Ux=1,is="bundles",xr="meta";function Is(){return new Promise((e,t)=>{const n=indexedDB.open(Fx,Ux);n.onupgradeneeded=()=>{const r=n.result;r.objectStoreNames.contains(is)||r.createObjectStore(is),r.objectStoreNames.contains(xr)||r.createObjectStore(xr)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}function Yn(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 zf(e,t,n){const r=await Is();await Yn(r,is,"readwrite",s=>s.put(t,e)),await Yn(r,xr,"readwrite",s=>s.put(n,e)),r.close()}async function qf(e){const t=await Is(),n=await Yn(t,is,"readonly",r=>r.get(e));return t.close(),n??null}async function Hx(e){const t=await Is(),n=await Yn(t,xr,"readonly",r=>r.get(e));return t.close(),n??null}async function Vf(){const e=await Is(),t=await Yn(e,xr,"readonly",n=>n.getAll());return e.close(),t??[]}async function Kx(e){const t=await Is();await Yn(t,is,"readwrite",n=>n.delete(e)),await Yn(t,xr,"readwrite",n=>n.delete(e)),t.close()}function $o(e,t){for(const n of e.shards)n.manifest={...n.manifest,version:t.version},Uo(n);for(const n of e.apps)n.manifest={...n.manifest,version:t.version},Io(n)}const Wx={"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 ui(e){return Wx[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 tl(e,t,n){if(!t.integrity)return{success:!1,hotLoaded:!1,error:"Missing integrity hash — refusing to install unverified bundle"};try{await Go(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 Es(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 zf(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{Va(t.id)}catch{}(t.type==="app"||t.type==="combo")&&Ba(t.id);let a=!0;try{$o(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 Bf(e){try{Va(e)}catch{}Ba(e),await Kx(e)}async function Yx(){return Vf()}async function Gx(){let e;try{e=await Vf()}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 qf(t.id);if(!n){console.warn(`[sh3] No bundle found for installed package "${t.id}", skipping`);continue}const r=await Es(n);$o(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 oc={version:1};var Xx=T('<span class="perm-modal-author svelte-1ipp1r6"> </span>'),Jx=T('<p class="perm-modal-empty svelte-1ipp1r6">This package requires no special permissions.</p>'),Zx=T('<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>'),Qx=T('<p class="perm-modal-intro svelte-1ipp1r6">This package requests the following permissions:</p> <ul class="perm-modal-list svelte-1ipp1r6"></ul>',1),$x=T('<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>'),eS=T('<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),tS=T('<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>'),nS=T('<p class="perm-modal-intro svelte-1ipp1r6">Permissions no longer requested:</p> <ul class="perm-modal-list perm-modal-removed svelte-1ipp1r6"></ul>',1),rS=T("<!> <!>",1),sS=T('<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 Ki(e,t){re(t,!0);const n=G(t,"permissions",19,()=>[]),r=G(t,"added",19,()=>[]),s=G(t,"removed",19,()=>[]),a=H(()=>t.mode==="install"?"Install":"Update");var o=sS(),l=p(o),c=p(l),u=p(c),d=p(u);v(u);var f=k(u,2),h=p(f);{var m=P=>{var D=Wt();z(()=>O(D,`${t.fromVersion??""} → ${t.pkg.version??""}`)),E(P,D)},I=P=>{var D=Wt();z(()=>O(D,`v${t.pkg.version??""}`)),E(P,D)};U(h,P=>{t.mode==="update"&&t.fromVersion?P(m):P(I,-1)})}var g=k(h,2);{var y=P=>{var D=Xx(),R=p(D);v(D),z(()=>O(R,`by ${t.pkg.author??""}`)),E(P,D)};U(g,P=>{t.pkg.author&&P(y)})}v(f),v(c);var w=k(c,2),_=p(w);{var b=P=>{var D=Ye(),R=pe(D);{var M=N=>{var q=Jx();E(N,q)},B=N=>{var q=Qx(),K=k(pe(q),2);fe(K,20,n,Y=>Y,(Y,te)=>{const J=H(()=>ui(te));var ae=Zx(),W=p(ae),Z=p(W,!0);v(W);var le=k(W,2),me=p(le,!0);v(le),v(ae),z(()=>{O(Z,i(J).title),O(me,i(J).description)}),E(Y,ae)}),v(K),E(N,q)};U(R,N=>{n().length===0?N(M):N(B,-1)})}E(P,D)},A=P=>{var D=rS(),R=pe(D);{var M=q=>{var K=eS(),Y=k(pe(K),2);fe(Y,20,r,te=>te,(te,J)=>{const ae=H(()=>ui(J));var W=$x(),Z=p(W),le=p(Z,!0);v(Z);var me=k(Z,2),Q=p(me,!0);v(me),v(W),z(()=>{O(le,i(ae).title),O(Q,i(ae).description)}),E(te,W)}),v(Y),E(q,K)};U(R,q=>{r().length>0&&q(M)})}var B=k(R,2);{var N=q=>{var K=nS(),Y=k(pe(K),2);fe(Y,20,s,te=>te,(te,J)=>{const ae=H(()=>ui(J));var W=tS(),Z=p(W),le=p(Z,!0);v(Z);var me=k(Z,2),Q=p(me,!0);v(me),v(W),z(()=>{O(le,i(ae).title),O(Q,i(ae).description)}),E(te,W)}),v(Y),E(q,K)};U(B,q=>{s().length>0&&q(N)})}E(P,D)};U(_,P=>{t.mode==="install"?P(b):P(A,-1)})}v(w);var L=k(w,2),C=p(L),S=k(C,2),j=p(S,!0);v(S),v(L),v(l),v(o),z(()=>{ne(o,"aria-label",`${i(a)??""} ${t.pkg.label??""}`),O(d,`${i(a)??""} ${t.pkg.label??""}`),O(j,i(a))}),F("click",o,function(...P){t.onCancel?.apply(this,P)}),F("keydown",o,P=>{P.key==="Escape"&&t.onCancel()}),F("click",l,P=>P.stopPropagation()),F("click",C,function(...P){t.onCancel?.apply(this,P)}),F("click",S,function(...P){t.onConfirm?.apply(this,P)}),E(e,o),se()}oe(["click","keydown"]);var aS=T('<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=T('<div class="store-registries svelte-1aafzt0"></div>'),oS=T('<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>'),lS=T('<div class="store-error svelte-1aafzt0"> </div>'),cS=T('<div class="store-error svelte-1aafzt0"> </div>'),uS=T('<img alt="" class="store-icon-img svelte-1aafzt0"/>'),dS=T('<span class="store-icon-placeholder svelte-1aafzt0"> </span>'),fS=T('<div class="store-card-warning svelte-1aafzt0"> </div>'),vS=T('<button class="store-update-btn svelte-1aafzt0"> </button>'),hS=T('<span class="store-installed-label svelte-1aafzt0">Installed</span>'),pS=T('<span class="store-card-missing svelte-1aafzt0"> </span>'),mS=T('<div class="store-install-wrap svelte-1aafzt0"><button class="store-install-btn svelte-1aafzt0"> </button> <!></div>'),bS=T('<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>'),gS=T("No packages found. <!>",1),_S=T('<div class="store-empty svelte-1aafzt0"><!></div>'),yS=T('<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 wS(e,t){re(t,!0);let n=V(""),r=V("all"),s=V(ie(new Set)),a=V(ie(new Set)),o=V(null),l=V(""),c=V(null),u=V(null);const d=An;async function f(){const X=i(l).trim();if(X&&!d.env.registries.includes(X))try{await d.addRegistry(X),x(l,""),d.refreshCatalog(),d.refreshInstalled()}catch($){x(o,$ instanceof Error?$.message:String($),!0)}}async function h(X){try{await d.removeRegistry(X),d.refreshCatalog()}catch($){x(o,$ instanceof Error?$.message:String($),!0)}}const m=H(()=>{const X=i(n).toLowerCase().trim();return d.state.ephemeral.catalog.filter($=>i(r)!=="all"&&$.entry.type!==i(r)?!1:X?$.entry.id.toLowerCase().includes(X)||$.entry.label.toLowerCase().includes(X)||$.entry.description.toLowerCase().includes(X):!0)});function I(X){return d.state.ephemeral.installed.some($=>$.id===X)}function g(X){return String(X.latest.contractVersion)!==String(oc.version)}function y(X){return X in d.state.ephemeral.updatable}function w(X){return d.state.ephemeral.installed.find($=>$.id===X)?.version??""}function _(X,$){const Se=X.latest.requires?.map(we=>we.id)??[];if(Se.length===0)return[];const De=new Set(Lf);for(const we of $)(we.type==="shard"||we.type==="combo")&&De.add(we.id);return Se.filter(we=>!De.has(we))}async function b(X){if(!i(a).has(X)){x(a,new Set([...i(a),X]),!0),x(o,null);try{await d.updatePackage(X,($,Se)=>new Promise(De=>{const we=d.state.ephemeral.updatable[X],Fe=d.state.ephemeral.installed.find($e=>$e.id===X);if(!we||!Fe){De(!0);return}x(u,{pkg:we,fromVersion:Fe.version,added:$,removed:Se,resolve:De},!0)}))}catch($){x(o,$ instanceof Error?$.message:String($),!0)}finally{const $=new Set(i(a));$.delete(X),x(a,$,!0)}}}function A(){const X=i(u);X&&(x(u,null),X.resolve(!0))}function L(){const X=i(u);X&&(x(u,null),X.resolve(!1))}async function C(X){const $=X.entry.id;if(!i(s).has($)){x(s,new Set([...i(s),$]),!0),x(o,null);try{const Se=await Ha(X.latest,X.sourceRegistry),De=Ka(X,X.latest),we=await Es(Se),Fe=el(we);let $e;X.latest.serverBundleUrl&&($e=await Xo(X.latest,X.sourceRegistry)),x(c,{pkg:X,permissions:Fe,loaded:we,bundle:Se,meta:De,serverBundle:$e},!0)}catch(Se){x(o,Se instanceof Error?Se.message:String(Se),!0);const De=new Set(i(s));De.delete($),x(s,De,!0)}}}async function S(){const X=i(c);if(!X)return;x(c,null);const{pkg:$,loaded:Se,bundle:De,meta:we,serverBundle:Fe}=X,$e=$.entry.id;try{const We={id:we.id,type:we.type,label:$.entry.label,version:we.version,contractVersion:we.contractVersion,sourceRegistry:we.sourceRegistry,requiredShards:$.latest.requires?.map(Tt=>Tt.id)??[],installedAt:new Date().toISOString()},gn=await Bo(We,De,Fe);if(!gn.ok){x(o,gn.error??"Server install failed",!0);return}const _n=await tl(De,we,{loaded:Se});_n.success||console.warn(`[sh3-store] Server install ok but local hot-load failed: ${_n.error}`),await d.refreshInstalled()}catch(We){x(o,We instanceof Error?We.message:String(We),!0)}finally{const We=new Set(i(s));We.delete($e),x(s,We,!0)}}function j(){if(!i(c))return;const X=i(c).pkg.entry.id;x(c,null);const $=new Set(i(s));$.delete(X),x(s,$,!0)}function P(){d.refreshCatalog(),d.refreshInstalled()}var D=yS(),R=pe(D),M=p(R),B=k(p(M),2),N=p(B);_e(N);var q=k(N,2),K=p(q);K.value=K.__value="all";var Y=k(K);Y.value=Y.__value="shard";var te=k(Y);te.value=te.__value="app",v(q);var J=k(q,2),ae=p(J,!0);v(J),v(B),v(M);var W=k(M,2);{var Z=X=>{var $=iS();fe($,21,()=>d.env.registries,Vt,(Se,De)=>{var we=aS(),Fe=p(we),$e=p(Fe,!0);v(Fe);var We=k(Fe,2);v(we),z(()=>O($e,i(De))),F("click",We,()=>h(i(De))),E(Se,we)}),v($),E(X,$)};U(W,X=>{d.isAdmin&&d.env.registries.length>0&&X(Z)})}var le=k(W,2);{var me=X=>{var $=oS(),Se=p($);_e(Se);var De=k(Se,2);v($),z(we=>De.disabled=we,[()=>!i(l).trim()]),Oe("submit",$,we=>{we.preventDefault(),f()}),Ee(Se,()=>i(l),we=>x(l,we)),E(X,$)};U(le,X=>{d.isAdmin&&X(me)})}var Q=k(le,2);{var ve=X=>{var $=lS(),Se=p($,!0);v($),z(()=>O(Se,d.state.ephemeral.error)),E(X,$)};U(Q,X=>{d.state.ephemeral.error&&X(ve)})}var ye=k(Q,2);{var Ze=X=>{var $=cS(),Se=p($,!0);v($),z(()=>O(Se,i(o))),E(X,$)};U(ye,X=>{i(o)&&X(Ze)})}var Te=k(ye,2);fe(Te,21,()=>i(m),X=>X.entry.id,(X,$)=>{const Se=H(()=>I(i($).entry.id)),De=H(()=>g(i($))),we=H(()=>i(s).has(i($).entry.id)),Fe=H(()=>y(i($).entry.id)),$e=H(()=>i(a).has(i($).entry.id)),We=H(()=>_(i($),d.state.ephemeral.installed));var gn=bS(),_n=p(gn),Tt=p(_n),Lr=p(Tt);{var Qf=qe=>{var Le=uS();z(()=>ne(Le,"src",i($).entry.icon)),E(qe,Le)},$f=qe=>{var Le=dS(),Rt=p(Le,!0);v(Le),z(()=>O(Rt,i($).entry.type==="shard"?"S":"A")),E(qe,Le)};U(Lr,qe=>{i($).entry.icon?qe(Qf):qe($f,-1)})}v(Tt);var al=k(Tt,2),Ga=p(al),ev=p(Ga,!0);v(Ga);var Ts=k(Ga,2);let il;var tv=p(Ts,!0);v(Ts);var ol=k(Ts,2),nv=p(ol,!0);v(ol),v(al),v(_n);var Xa=k(_n,2),rv=p(Xa,!0);v(Xa);var Ja=k(Xa,2),sv=p(Ja,!0);v(Ja);var ll=k(Ja,2);{var av=qe=>{var Le=fS(),Rt=p(Le);v(Le),z(()=>O(Rt,`Contract mismatch: package targets v${i($).latest.contractVersion??""}, running v${oc.version}`)),E(qe,Le)};U(ll,qe=>{i(De)&&qe(av)})}var cl=k(ll,2),iv=p(cl);{var ov=qe=>{var Le=vS(),Rt=p(Le,!0);v(Le),z(Za=>{Le.disabled=i($e),O(Rt,Za)},[()=>i($e)?"Updating...":`Update ${w(i($).entry.id)} -> ${i($).latest.version}`]),F("click",Le,()=>b(i($).entry.id)),E(qe,Le)},lv=qe=>{var Le=hS();E(qe,Le)},cv=qe=>{var Le=mS(),Rt=p(Le),Za=p(Rt,!0);v(Rt);var uv=k(Rt,2);{var dv=Mr=>{var Qa=pS(),fv=p(Qa);v(Qa),z(vv=>O(fv,`requires: ${vv??""}`),[()=>i(We).join(", ")]),E(Mr,Qa)};U(uv,Mr=>{i(We).length>0&&Mr(dv)})}v(Le),z(Mr=>{Rt.disabled=i(we)||i(We).length>0,ne(Rt,"title",Mr),O(Za,i(we)?"Installing...":"Install")},[()=>i(We).length>0?`Missing required shards: ${i(We).join(", ")}`:void 0]),F("click",Rt,()=>C(i($))),E(qe,Le)};U(iv,qe=>{i(Se)&&i(Fe)?qe(ov):i(Se)?qe(lv,1):qe(cv,-1)})}v(cl),v(gn),z(()=>{O(ev,i($).entry.label),il=de(Ts,1,"store-card-badge svelte-1aafzt0",null,il,{"badge-shard":i($).entry.type==="shard","badge-app":i($).entry.type==="app"}),O(tv,i($).entry.type),O(nv,i($).latest.version),O(rv,i($).entry.description),O(sv,i($).entry.author.name)}),E(X,gn)}),v(Te);var dt=k(Te,2);{var Qe=X=>{var $=_S(),Se=p($);{var De=Fe=>{var $e=gS(),We=k(pe($e));{var gn=Tt=>{var Lr=Wt("Add a registry URL above to get started.");E(Tt,Lr)},_n=Tt=>{var Lr=Wt("No registries configured.");E(Tt,Lr)};U(We,Tt=>{d.isAdmin?Tt(gn):Tt(_n,-1)})}E(Fe,$e)},we=Fe=>{var $e=Wt("No packages match the current filter.");E(Fe,$e)};U(Se,Fe=>{d.env.registries.length===0?Fe(De):Fe(we,-1)})}v($),E(X,$)};U(dt,X=>{!d.state.ephemeral.loading&&i(m).length===0&&X(Qe)})}v(R);var As=k(R,2);{var Pn=X=>{{let $=H(()=>({label:i(c).pkg.entry.label,version:i(c).pkg.latest.version,author:i(c).pkg.entry.author.name}));Ki(X,{mode:"install",get pkg(){return i($)},get permissions(){return i(c).permissions},onConfirm:S,onCancel:j})}};U(As,X=>{i(c)&&X(Pn)})}var Ya=k(As,2);{var Cs=X=>{{let $=H(()=>({label:i(u).pkg.entry.label,version:i(u).pkg.latest.version,author:i(u).pkg.entry.author.name}));Ki(X,{mode:"update",get pkg(){return i($)},get fromVersion(){return i(u).fromVersion},get added(){return i(u).added},get removed(){return i(u).removed},onConfirm:A,onCancel:L})}};U(Ya,X=>{i(u)&&X(Cs)})}z(()=>{J.disabled=d.state.ephemeral.loading,O(ae,d.state.ephemeral.loading?"Loading...":"Refresh")}),Ee(N,()=>i(n),X=>x(n,X)),Zr(q,()=>i(r),X=>x(r,X)),F("click",J,P),E(e,D),se()}oe(["click"]);var kS=T('<div class="installed-error svelte-1hqclkp"> </div>'),xS=T('<div class="installed-empty svelte-1hqclkp">No packages installed.</div>'),SS=T('<button class="installed-update-btn svelte-1hqclkp"> </button>'),ES=T('<li class="installed-item svelte-1hqclkp"><div class="installed-item-main svelte-1hqclkp"><span class="installed-item-id svelte-1hqclkp"> </span> <span> </span> <span class="installed-item-version svelte-1hqclkp"> </span></div> <div class="installed-item-meta svelte-1hqclkp"><span> </span> <span> </span> <span> </span></div> <div class="installed-item-actions svelte-1hqclkp"><!> <button class="installed-uninstall-btn svelte-1hqclkp"> </button></div></li>'),IS=T('<ul class="installed-list svelte-1hqclkp"></ul>'),AS=T('<div class="installed-view svelte-1hqclkp"><header class="installed-header svelte-1hqclkp"><h2 class="svelte-1hqclkp">Installed Packages</h2> <button>Refresh</button></header> <!> <!> <!></div>');function CS(e,t){re(t,!0);const n=An;let r=V(ie(new Set)),s=V(ie(new Set)),a=V(null),o=V(null);async function l(S){if(!i(r).has(S)){x(r,new Set([...i(r),S]),!0);try{await nf(S),await Bf(S),await n.refreshInstalled()}catch(j){console.warn("[sh3-store] Uninstall failed:",j instanceof Error?j.message:j)}finally{const j=new Set(i(r));j.delete(S),x(r,j,!0)}}}async function c(S){if(!i(s).has(S)){x(s,new Set([...i(s),S]),!0),x(a,null);try{await n.updatePackage(S,(j,P)=>new Promise(D=>{const R=n.state.ephemeral.installed.find(B=>B.id===S),M=n.state.ephemeral.updatable[S];if(!R||!M){D(!0);return}x(o,{pkg:R,toVersion:M.latest.version,added:j,removed:P,resolve:D},!0)}))}catch(j){x(a,j instanceof Error?j.message:String(j),!0)}finally{const j=new Set(i(s));j.delete(S),x(s,j,!0)}}}function u(){const S=i(o);S&&(x(o,null),S.resolve(!0))}function d(){const S=i(o);S&&(x(o,null),S.resolve(!1))}function f(){n.refreshInstalled()}function h(S){try{return new Date(S).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}catch{return S}}var m=AS(),I=p(m),g=k(p(I),2);v(I);var y=k(I,2);{var w=S=>{var j=kS(),P=p(j,!0);v(j),z(()=>O(P,i(a))),E(S,j)};U(y,S=>{i(a)&&S(w)})}var _=k(y,2);{var b=S=>{var j=xS();E(S,j)},A=S=>{var j=IS();fe(j,21,()=>n.state.ephemeral.installed,P=>P.id,(P,D)=>{const R=H(()=>i(r).has(i(D).id));var M=ES(),B=p(M),N=p(B),q=p(N,!0);v(N);var K=k(N,2);let Y;var te=p(K,!0);v(K);var J=k(K,2),ae=p(J,!0);v(J),v(B);var W=k(B,2),Z=p(W),le=p(Z);v(Z);var me=k(Z,2),Q=p(me);v(me);var ve=k(me,2),ye=p(ve);v(ve),v(W);var Ze=k(W,2),Te=p(Ze);{var dt=Pn=>{const Ya=H(()=>n.state.ephemeral.updatable[i(D).id]),Cs=H(()=>i(s).has(i(D).id));var X=SS(),$=p(X,!0);v(X),z(()=>{X.disabled=i(Cs)||i(R),O($,i(Cs)?"Updating...":`Update -> ${i(Ya).latest.version}`)}),F("click",X,()=>c(i(D).id)),E(Pn,X)};U(Te,Pn=>{i(D).id in n.state.ephemeral.updatable&&Pn(dt)})}var Qe=k(Te,2),As=p(Qe,!0);v(Qe),v(Ze),v(M),z(Pn=>{O(q,i(D).id),Y=de(K,1,"installed-item-badge svelte-1hqclkp",null,Y,{"badge-shard":i(D).type==="shard","badge-app":i(D).type==="app"}),O(te,i(D).type),O(ae,i(D).version),O(le,`Contract: v${i(D).contractVersion??""}`),O(Q,`Source: ${i(D).sourceRegistry??""}`),O(ye,`Installed: ${Pn??""}`),Qe.disabled=i(R),O(As,i(R)?"Removing...":"Uninstall")},[()=>h(i(D).installedAt)]),F("click",Qe,()=>l(i(D).id)),E(P,M)}),v(j),E(S,j)};U(_,S=>{n.state.ephemeral.installed.length===0?S(b):S(A,-1)})}var L=k(_,2);{var C=S=>{{let j=H(()=>({label:i(o).pkg.id,version:i(o).toVersion}));Ki(S,{mode:"update",get pkg(){return i(j)},get fromVersion(){return i(o).pkg.version},get added(){return i(o).added},get removed(){return i(o).removed},onConfirm:u,onCancel:d})}};U(L,S=>{i(o)&&S(C)})}v(m),F("click",g,f),E(e,m),se()}oe(["click"]);function Ff(e){return An.state.ephemeral.catalog.find(t=>t.entry.id===e)}function nl(e){return An.state.ephemeral.installed.find(t=>t.id===e)}const TS={name:"install",summary:"Install a package by id from the catalog.",async run(e,t){const n=t[0];if(!n){e.scrollback.push({kind:"status",text:"usage: sh3-store:install <package-id>",level:"warn",ts:Date.now()});return}const r=nl(n);if(r){e.scrollback.push({kind:"status",text:`${n} is already installed (v${r.version})`,level:"warn",ts:Date.now()});return}const s=Ff(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 Ha(s.latest,s.sourceRegistry),o=Ka(s,s.latest);let l;s.latest.serverBundleUrl&&(l=await Xo(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 Bo(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(m=>m.id).join(", ")}`),e.scrollback.push({kind:"status",text:f,level:"error",ts:Date.now()});return}const d=await tl(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 An.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()})}}},RS={name:"uninstall",summary:"Uninstall an installed package by id.",async run(e,t){const n=t[0];if(!n){e.scrollback.push({kind:"status",text:"usage: sh3-store:uninstall <package-id>",level:"warn",ts:Date.now()});return}if(!nl(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 nf(n),await Bf(n),await An.refreshInstalled(),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()})}}},PS={name:"appinfo",summary:"Show info about a package (installed status, version, catalog details).",async run(e,t){const n=t[0];if(!n){e.scrollback.push({kind:"status",text:"usage: sh3-store:appinfo <package-id>",level:"warn",ts:Date.now()});return}const r=nl(n),s=Ff(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(`
|
|
17
|
-
`)+`
|
|
18
|
-
`],ts:Date.now()})}};function jS(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 DS(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 An;const LS={manifest:{id:"sh3-store",label:"Package Store",version:bn,views:[{id:"sh3-store:browse",label:"Store"},{id:"sh3-store:installed",label:"Installed"}]},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 m=n.ephemeral.catalog.find(I=>I.entry.id===h.id);m&&jS(m.latest.version,h.version)&&(f[h.id]=m)}n.ephemeral.updatable=f}async function s(){n.ephemeral.loading=!0,n.ephemeral.error=null;try{const f=await If(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 lw();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 Yx();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(m=>m!==f);await e.envUpdate({registries:h})}async function c(f,h){const m=n.ephemeral.updatable[f];if(!m)return;const I=n.ephemeral.installed.find(M=>M.id===f);if(!I)return;const g=await Ha(m.latest,m.sourceRegistry);let y;m.latest.serverBundleUrl&&(y=await Xo(m.latest,m.sourceRegistry));const w=Ka(m,m.latest),_=await Es(g),b=el(_);let A=[];try{const M=await Hx(f);M?.permissions&&(A=M.permissions)}catch{}const{added:L,removed:C}=DS(A,b);if((L.length>0||C.length>0)&&h&&!await h(L,C))return;const S=await qf(f),j={...I,permissions:A},P={id:w.id,type:w.type,label:m.entry.label,version:w.version,contractVersion:w.contractVersion,sourceRegistry:w.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:m.latest.requires?.map(M=>M.id)??[]},D=await Bo(P,g,y);if(!D.ok){let M=D.error??"Server update failed";throw D.code==="missing-shards"&&D.missing&&(M=`missing required shard(s): ${D.missing.map(N=>N.id).join(", ")}`),new Error(M)}const R=await tl(g,w,{loaded:_});if(!R.success){if(S)try{await zf(f,S,j)}catch(M){console.warn(`[sh3-store] Rollback failed for "${f}":`,M instanceof Error?M.message:M)}throw new Error(R.error??"Local install failed during update")}await a()}An={env:t,state:n,get isAdmin(){return e.isAdmin},refreshCatalog:s,refreshInstalled:a,updatePackage:c,addRegistry:o,removeRegistry:l};const u={mount(f,h){const m=Me(wS,{target:f});return{unmount(){Ue(m)}}}},d={mount(f,h){const m=Me(CS,{target:f});return{unmount(){Ue(m)}}}};e.registerView("sh3-store:browse",u),e.registerView("sh3-store:installed",d),e.registerVerb(TS),e.registerVerb(RS),e.registerVerb(PS),a()},autostart(){An.refreshCatalog()}},MS={manifest:{id:"sh3-store-app",label:"Package Store",version:bn,requiredShards:["sh3-store"],layoutVersion:1,admin:!0},initialLayout:{type:"tabs",activeTab:0,tabs:[{slotId:"store.browse",viewId:"sh3-store:browse",label:"Browse"},{slotId:"store.installed",viewId:"sh3-store:installed",label:"Installed"}]}};var OS=T('<div class="admin-error svelte-4q792t"> </div>'),NS=T('<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>'),zS=T('<p class="admin-muted svelte-4q792t">Loading...</p>'),qS=T('<p class="admin-error svelte-4q792t"> </p>'),VS=T('<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>'),BS=T('<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),FS=T('<li class="admin-user-item svelte-4q792t"><!></li>'),US=T('<ul class="admin-user-list svelte-4q792t"></ul>'),HS=T('<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 KS(e,t){re(t,!0);let n=V(ie([])),r=V(!0),s=V(null),a=V(!1),o=V(""),l=V(""),c=V(""),u=V("user"),d=V(null),f=V(null),h=V(""),m=V("user"),I=V("");async function g(){x(r,!0),x(s,null);try{const N=await fetch("/api/admin/users",{credentials:"include"});if(!N.ok)throw new Error("Failed to fetch users");x(n,await N.json(),!0)}catch(N){x(s,N instanceof Error?N.message:"Failed to load users",!0)}finally{x(r,!1)}}async function y(){x(d,null);try{const N=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(!N.ok){const q=await N.json().catch(()=>({}));x(d,q.error||"Failed to create user",!0);return}x(o,""),x(l,""),x(c,""),x(u,"user"),x(a,!1),await g()}catch{x(d,"Network error")}}function w(N){x(f,N.id,!0),x(h,N.displayName,!0),x(m,N.role,!0),x(I,"")}async function _(){if(!i(f))return;const N={displayName:i(h),role:i(m)};i(I).trim()&&(N.password=i(I));try{if(!(await fetch(`/api/admin/users/${i(f)}`,{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(N)})).ok)return;x(f,null),await g()}catch{}}async function b(N){try{await fetch(`/api/admin/users/${N}`,{method:"DELETE",credentials:"include"}),await g()}catch{}}g();var A=HS(),L=p(A),C=k(p(L),2),S=p(C,!0);v(C),v(L);var j=k(L,2);{var P=N=>{var q=NS(),K=p(q);_e(K);var Y=k(K,2);_e(Y);var te=k(Y,2);_e(te);var J=k(te,2),ae=p(J);ae.value=ae.__value="user";var W=k(ae);W.value=W.__value="admin",v(J);var Z=k(J,2),le=k(Z,2);{var me=Q=>{var ve=OS(),ye=p(ve,!0);v(ve),z(()=>O(ye,i(d))),E(Q,ve)};U(le,Q=>{i(d)&&Q(me)})}v(q),z(Q=>Z.disabled=Q,[()=>!i(o).trim()||!i(c).trim()]),Oe("submit",q,Q=>{Q.preventDefault(),y()}),Ee(K,()=>i(o),Q=>x(o,Q)),Ee(Y,()=>i(l),Q=>x(l,Q)),Ee(te,()=>i(c),Q=>x(c,Q)),Zr(J,()=>i(u),Q=>x(u,Q)),E(N,q)};U(j,N=>{i(a)&&N(P)})}var D=k(j,2);{var R=N=>{var q=zS();E(N,q)},M=N=>{var q=qS(),K=p(q,!0);v(q),z(()=>O(K,i(s))),E(N,q)},B=N=>{var q=US();fe(q,21,()=>i(n),K=>K.id,(K,Y)=>{var te=FS(),J=p(te);{var ae=Z=>{var le=VS(),me=p(le);_e(me);var Q=k(me,2);_e(Q);var ve=k(Q,2),ye=p(ve);ye.value=ye.__value="user";var Ze=k(ye);Ze.value=Ze.__value="admin",v(ve);var Te=k(ve,2),dt=k(p(Te),2);v(Te),v(le),Oe("submit",le,Qe=>{Qe.preventDefault(),_()}),Ee(me,()=>i(h),Qe=>x(h,Qe)),Ee(Q,()=>i(I),Qe=>x(I,Qe)),Zr(ve,()=>i(m),Qe=>x(m,Qe)),F("click",dt,()=>{x(f,null)}),E(Z,le)},W=Z=>{var le=BS(),me=pe(le),Q=p(me),ve=p(Q,!0);v(Q);var ye=k(Q,2),Ze=p(ye);v(ye),v(me);var Te=k(me,2),dt=p(Te),Qe=k(dt,2);v(Te),z(()=>{O(ve,i(Y).displayName),O(Ze,`${i(Y).username??""} · ${i(Y).role??""}`)}),F("click",dt,()=>w(i(Y))),F("click",Qe,()=>b(i(Y).id)),E(Z,le)};U(J,Z=>{i(f)===i(Y).id?Z(ae):Z(W,-1)})}v(te),E(K,te)}),v(q),E(N,q)};U(D,N=>{i(r)?N(R):i(s)?N(M,1):N(B,-1)})}v(A),z(()=>O(S,i(a)?"Cancel":"New user")),F("click",C,()=>{x(a,!i(a))}),E(e,A),se()}oe(["click"]);var WS=T('<p class="admin-muted svelte-1hsgdb4">Loading...</p>'),YS=T('<div class="admin-error svelte-1hsgdb4"> </div>'),GS=T('<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),XS=T('<div class="admin-auth svelte-1hsgdb4"><h2 class="svelte-1hsgdb4">Auth Settings</h2> <!></div>');function JS(e,t){re(t,!0);let n=V(null),r=V(!0),s=V(!1),a=V(null);async function o(){x(r,!0);try{const h=await fetch("/api/admin/settings",{credentials:"include"});if(!h.ok)throw new Error("Failed to fetch settings");x(n,await h.json(),!0)}catch(h){x(a,h instanceof Error?h.message:"Failed to load settings",!0)}finally{x(r,!1)}}async function l(){if(i(n)){x(s,!0),x(a,null);try{const h=await fetch("/api/admin/settings",{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(i(n))});if(!h.ok)throw new Error("Failed to save settings");x(n,await h.json(),!0)}catch(h){x(a,h instanceof Error?h.message:"Failed to save",!0)}finally{x(s,!1)}}}o();var c=XS(),u=k(p(c),2);{var d=h=>{var m=WS();E(h,m)},f=h=>{var m=GS(),I=pe(m),g=p(I),y=p(g);_e(y),rn(4),v(g);var w=k(g,2),_=p(w);_e(_),rn(4),v(w);var b=k(w,2),A=p(b);_e(A),rn(4),v(b);var L=k(b,2),C=k(p(L),2);_e(C),v(L);var S=k(L,2),j=p(S,!0);v(S),v(I);var P=k(I,2);{var D=R=>{var M=YS(),B=p(M,!0);v(M),z(()=>O(B,i(a))),E(R,M)};U(P,R=>{i(a)&&R(D)})}z(()=>{S.disabled=i(s),O(j,i(s)?"Saving...":"Save")}),Kr(y,()=>i(n).auth.required,R=>i(n).auth.required=R),Kr(_,()=>i(n).auth.guestAllowed,R=>i(n).auth.guestAllowed=R),Kr(A,()=>i(n).auth.selfRegistration,R=>i(n).auth.selfRegistration=R),Ee(C,()=>i(n).auth.sessionTTL,R=>i(n).auth.sessionTTL=R),F("click",S,l),E(h,m)};U(u,h=>{i(r)?h(d):i(n)&&h(f,1)})}v(c),E(e,c),se()}oe(["click"]);var ZS=T('<button type="button"> </button>'),QS=T('<div class="admin-error svelte-1gkiloq"> </div>'),$S=T('<div class="admin-error svelte-1gkiloq"> </div>'),e3=T(`<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 t3(e,t){re(t,!0);const n=[{value:0,label:"Off (no-store)"},{value:5,label:"5s (dev)"},{value:60,label:"1 min"},{value:3600,label:"1 hour"},{value:86400,label:"1 day"},{value:31536e3,label:"1 year"}];let r=V("..."),s=V(!1),a=V(null),o=V(31536e3),l=V(31536e3),c=V(!1),u=V(null);const d=H(()=>i(o)!==i(l)),f=H(()=>h(i(o)));function h(Q){return Q===0?"0 seconds (off — browsers never cache)":Q<60?`${Q} seconds`:Q<3600?`${Math.round(Q/60)} minutes`:Q<86400?`${Math.round(Q/3600)} hours`:Q<31536e3?`${Math.round(Q/86400)} days`:`${Math.round(Q/31536e3)} years`}async function m(){try{const Q=await fetch("/api/version");if(Q.ok){const ve=await Q.json();x(r,ve.version,!0)}}catch{}}async function I(){try{const Q=await fetch("/api/admin/settings",{credentials:"include"});if(Q.ok){const ye=(await Q.json()).packages?.cacheMaxAge??31536e3;x(o,ye,!0),x(l,ye,!0)}}catch{}}async function g(){x(c,!0),x(u,null);try{const Q=await fetch("/api/admin/settings",{method:"PUT",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({packages:{cacheMaxAge:i(o)}})});if(Q.ok){const ve=await Q.json();x(l,ve.packages?.cacheMaxAge??i(o),!0),x(o,i(l),!0)}else{const ve=await Q.json().catch(()=>({}));x(u,ve.error||"Save failed",!0)}}catch{x(u,"Network error")}finally{x(c,!1)}}async function y(){x(s,!0),x(a,null);try{const Q=await fetch("/api/admin/restart",{method:"POST",credentials:"include"});if(!Q.ok){const ve=await Q.json().catch(()=>({}));x(a,ve.error||"Restart failed",!0),x(s,!1)}}catch{x(a,"Network error"),x(s,!1)}}m(),I();var w=e3(),_=k(p(w),2),b=p(_),A=k(p(b),2),L=p(A,!0);v(A),v(b),v(_);var C=k(_,2),S=k(p(C),4);_e(S);var j=k(S,2),P=p(j),D=p(P,!0);v(P);var R=k(P);v(j);var M=k(j,2);fe(M,21,()=>n,Q=>Q.value,(Q,ve)=>{var ye=ZS();let Ze;var Te=p(ye,!0);v(ye),z(()=>{Ze=de(ye,1,"admin-snap svelte-1gkiloq",null,Ze,{active:i(o)===i(ve).value}),ye.disabled=i(c),O(Te,i(ve).label)}),F("click",ye,()=>x(o,i(ve).value,!0)),E(Q,ye)}),v(M);var B=k(M,2),N=p(B),q=p(N,!0);v(N);var K=k(N,2),Y=k(K,2);{var te=Q=>{var ve=QS(),ye=p(ve,!0);v(ve),z(()=>O(ye,i(u))),E(Q,ve)};U(Y,Q=>{i(u)&&Q(te)})}v(B),v(C);var J=k(C,2),ae=k(p(J),2),W=p(ae),Z=p(W,!0);v(W);var le=k(W,2);{var me=Q=>{var ve=$S(),ye=p(ve,!0);v(ve),z(()=>O(ye,i(a))),E(Q,ve)};U(le,Q=>{i(a)&&Q(me)})}v(ae),v(J),v(w),z(()=>{O(L,i(r)),S.disabled=i(c),O(D,i(o)),O(R,` — ${i(f)??""}`),N.disabled=!i(d)||i(c),O(q,i(c)?"Saving...":"Save"),K.disabled=!i(d)||i(c),W.disabled=i(s),O(Z,i(s)?"Restarting...":"Restart server")}),Ee(S,()=>i(o),Q=>x(o,Q)),F("click",N,g),F("click",K,()=>x(o,i(l),!0)),F("click",W,y),E(e,w),se()}oe(["click"]);var n3=T(`<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>`),r3=T('<div class="admin-error svelte-1afg5z5"> </div>'),s3=T('<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>'),a3=T('<p class="admin-muted svelte-1afg5z5">Loading...</p>'),i3=T('<p class="admin-error svelte-1afg5z5"> </p>'),o3=T('<p class="admin-muted svelte-1afg5z5">No API keys. Create one to enable external access.</p>'),l3=T('<button type="button" class="admin-btn-danger svelte-1afg5z5">Confirm</button> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Cancel</button>',1),c3=T('<button type="button" class="admin-btn-danger svelte-1afg5z5">Revoke</button>'),u3=T('<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>'),d3=T('<ul class="admin-key-list svelte-1afg5z5"></ul>'),f3=T('<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 v3(e,t){re(t,!0);let n=V(ie([])),r=V(!0),s=V(null),a=V(!1),o=V(""),l=V(null),c=V(null),u=V(null);async function d(){x(r,!0),x(s,null);try{const R=await fetch("/api/admin/keys",{credentials:"include"});if(!R.ok)throw new Error("Failed to fetch keys");x(n,await R.json(),!0)}catch(R){x(s,R instanceof Error?R.message:"Failed to load keys",!0)}finally{x(r,!1)}}async function f(){x(l,null);try{const R=await fetch("/api/admin/keys",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({label:i(o)})});if(!R.ok){const B=await R.json().catch(()=>({}));x(l,B.error||"Failed to create key",!0);return}const M=await R.json();x(c,{id:M.id,key:M.key},!0),x(o,""),x(a,!1),await d()}catch{x(l,"Network error")}}async function h(R){x(u,null);try{await fetch(`/api/admin/keys/${R}`,{method:"DELETE",credentials:"include"}),i(c)?.id===R&&x(c,null),await d()}catch{}}function m(R){return new Date(R).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}d();var I=f3(),g=p(I),y=k(p(g),2),w=p(y,!0);v(y),v(g);var _=k(g,2);{var b=R=>{var M=n3(),B=k(p(M),2),N=p(B,!0);v(B);var q=k(B,2);v(M),z(()=>O(N,i(c).key)),F("click",q,()=>{x(c,null)}),E(R,M)};U(_,R=>{i(c)&&R(b)})}var A=k(_,2);{var L=R=>{var M=s3(),B=p(M);_e(B);var N=k(B,2),q=k(N,2);{var K=Y=>{var te=r3(),J=p(te,!0);v(te),z(()=>O(J,i(l))),E(Y,te)};U(q,Y=>{i(l)&&Y(K)})}v(M),z(Y=>N.disabled=Y,[()=>!i(o).trim()]),Oe("submit",M,Y=>{Y.preventDefault(),f()}),Ee(B,()=>i(o),Y=>x(o,Y)),E(R,M)};U(A,R=>{i(a)&&R(L)})}var C=k(A,2);{var S=R=>{var M=a3();E(R,M)},j=R=>{var M=i3(),B=p(M,!0);v(M),z(()=>O(B,i(s))),E(R,M)},P=R=>{var M=o3();E(R,M)},D=R=>{var M=d3();fe(M,21,()=>i(n),B=>B.id,(B,N)=>{var q=u3(),K=p(q),Y=p(K),te=p(Y,!0);v(Y);var J=k(Y,2),ae=p(J);v(J),v(K);var W=k(K,2),Z=p(W);{var le=Q=>{var ve=l3(),ye=pe(ve),Ze=k(ye,2);F("click",ye,()=>h(i(N).id)),F("click",Ze,()=>{x(u,null)}),E(Q,ve)},me=Q=>{var ve=c3();F("click",ve,()=>{x(u,i(N).id,!0)}),E(Q,ve)};U(Z,Q=>{i(u)===i(N).id?Q(le):Q(me,-1)})}v(W),v(q),z(Q=>{O(te,i(N).label),O(ae,`${i(N).id??""} · ${Q??""}`)},[()=>m(i(N).createdAt)]),E(B,q)}),v(M),E(R,M)};U(C,R=>{i(r)?R(S):i(s)?R(j,1):i(n).length===0?R(P,2):R(D,-1)})}v(I),z(()=>O(w,i(a)?"Cancel":"New key")),F("click",y,()=>{x(a,!i(a))}),E(e,I),se()}oe(["click"]);const h3={manifest:{id:"sh3-admin",label:"Admin",version:bn,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=Me(KS,{target:a});return{unmount(){Ue(l)}}}},n={mount(a,o){const l=Me(JS,{target:a});return{unmount(){Ue(l)}}}},r={mount(a,o){const l=Me(t3,{target:a});return{unmount(){Ue(l)}}}},s={mount(a,o){const l=Me(v3,{target:a});return{unmount(){Ue(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)}},p3={manifest:{id:"sh3-admin-app",label:"Admin",version:bn,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"}]}},lc="sh3:migrations:shell-rename:done",cc="__shell__:",m3="__sh3core__:",uc="sh3:user:__shell__:theme",dc="sh3:user:__sh3core__:theme";function b3(e,t){if(t.getItem(lc))return;const n=t.getItem(uc);n!==null&&t.getItem(dc)===null&&(t.setItem(dc,n),t.removeItem(uc));for(const r of e.keys()){if(!r.startsWith(cc))continue;const s=m3+r.slice(cc.length),a=e.read(r);e.write(s,a),e.delete(r)}t.setItem(lc,"1")}let fc=!1,vc=null;function g3(){fc||(fc=!0,vc=e=>{const t=e.state?.sh3;t==="anchor"?(ag(),history.forward()):t==="forward-bumper"&&(ig(),history.back())},window.addEventListener("popstate",vc),history.replaceState({sh3:"anchor"},""),history.pushState({sh3:"main"},""),history.pushState({sh3:"forward-bumper"},""),history.back())}function _3(e){Uo(e)}function y3(){const e=Qt.workspace;return{keys:()=>e.list(),read:t=>e.read(t),write:(t,n)=>e.write(t,n),delete:t=>e.delete(t)}}async function w3(e){if(typeof globalThis.localStorage<"u"){b3(y3(),globalThis.localStorage);const{migrateLegacyWorkspaceKeys:a}=await hr(async()=>{const{migrateLegacyWorkspaceKeys:l}=await import("./workspace-rekey-DRgvbNY-.js");return{migrateLegacyWorkspaceKeys:l}},[]),{getActiveScopeId:o}=await hr(async()=>{const{getActiveScopeId:l}=await Promise.resolve().then(()=>$y);return{getActiveScopeId:l}},void 0);a(o())}const t=new Set(e?.excludeShards),n=[Zk,Nx,LS,h3,Ck];for(const a of n)t.has(a.manifest.id)||Uo(a);const r=[MS,p3];for(const a of r)Io(a);await Gx();for(const[a,o]of ln)if(o.autostart){my(a);try{await vf(a,{phase:"autostart"})}catch{}}const s=mf();if(s&&En.has(s))try{await hn(s)}catch(a){console.error(`[sh3] Auto-launch of "${s}" failed:`,a),bf()}rg({returnToHome:Ss,launchApp:hn}),typeof window<"u"&&typeof history<"u"&&g3()}var k3=T('<button type="button" aria-label="Expand pane"><span class="collapse-icon"> </span></button>'),x3=T('<button type="button" aria-label="Collapse pane"><span class="collapse-icon"> </span></button>'),S3=T('<!> <div class="pane-content svelte-1adl4o1"><!></div>',1),E3=T('<div role="separator"></div>'),I3=T("<div><!></div> <!>",1),A3=T("<div></div>");function C3(e,t){re(t,!0);const n=40,r=28;let s;const a=w=>t.pinned?.[w]??"fr",o=w=>t.collapsed?.[w]??!1,l=w=>t.fixed?.[w]??!1,c=w=>l(w)||l(w+1);function u(w){if(l(w))return!1;const _=w>0?!l(w-1):!1,b=w<t.count-1?!l(w+1):!1;return _||b}function d(w){return o(w)?`0 0 ${r}px`:a(w)==="px"?`0 0 ${Math.max(n,t.sizes[w])}px`:`${Math.max(1e-4,t.sizes[w])} 1 0`}let f=V(null);function h(w,_){if(o(_)||o(_+1)||c(_))return;w.preventDefault(),w.target.setPointerCapture(w.pointerId);const b=s.getBoundingClientRect(),A=t.direction==="horizontal"?b.width:b.height;let L=0,C=0;for(let S=0;S<t.sizes.length;S++)a(S)==="fr"?L+=t.sizes[S]:C+=Math.max(n,t.sizes[S]);x(f,{handleIndex:_,startClient:t.direction==="horizontal"?w.clientX:w.clientY,startSizes:t.sizes.slice(),containerPx:A,totalFr:L,frAvailPx:Math.max(1,A-C)},!0)}function m(w){if(!i(f))return;const b=(t.direction==="horizontal"?w.clientX:w.clientY)-i(f).startClient,A=i(f).handleIndex,L=A+1,C=a(A),S=a(L),j=i(f).totalFr/i(f).frAvailPx;if(C==="fr"&&S==="fr"){const P=n*j,D=b*j,R=i(f).startSizes[L]-P,M=-(i(f).startSizes[A]-P),B=Math.min(Math.max(D,M),R);t.onResize?.(A,i(f).startSizes[A]+B),t.onResize?.(L,i(f).startSizes[L]-B)}else if(C==="px"&&S==="fr"){const P=i(f).frAvailPx-n,D=n-i(f).startSizes[A];t.onResize?.(A,i(f).startSizes[A]+Math.min(Math.max(b,D),P))}else if(C==="fr"&&S==="px"){const P=i(f).startSizes[L]-n,D=-(i(f).frAvailPx-n);t.onResize?.(L,i(f).startSizes[L]-Math.min(Math.max(b,D),P))}else{const P=i(f).startSizes[L]-n,D=-(i(f).startSizes[A]-n),R=Math.min(Math.max(b,D),P);t.onResize?.(A,i(f).startSizes[A]+R),t.onResize?.(L,i(f).startSizes[L]-R)}}function I(w){i(f)&&(w.target.releasePointerCapture(w.pointerId),x(f,null))}var g=A3();let y;fe(g,21,()=>Array(t.count),Vt,(w,_,b)=>{var A=I3(),L=pe(A);let C;var S=p(L);{var j=B=>{var N=k3();let q;var K=p(N),Y=p(K,!0);v(K),v(N),z(()=>{q=de(N,1,"collapse-header svelte-1adl4o1",null,q,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),O(Y,t.direction==="horizontal"?"▸":"▾")}),F("click",N,()=>t.onCollapseToggle?.(b,!1)),E(B,N)},P=H(()=>o(b)),D=B=>{var N=S3(),q=pe(N);{var K=ae=>{var W=x3();let Z;ne(W,"data-testid",`collapse-toggle-${b}`);var le=p(W),me=p(le,!0);v(le),v(W),z(()=>{Z=de(W,1,"collapse-header expanded svelte-1adl4o1",null,Z,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),O(me,t.direction==="horizontal"?"◂":"▴")}),F("click",W,()=>t.onCollapseToggle?.(b,!0)),E(ae,W)},Y=H(()=>t.onCollapseToggle&&u(b));U(q,ae=>{i(Y)&&ae(K)})}var te=k(q,2),J=p(te);Zt(J,()=>t.pane,()=>b),v(te),E(B,N)};U(S,B=>{i(P)?B(j):B(D,-1)})}v(L);var R=k(L,2);{var M=B=>{var N=E3();let q;ne(N,"data-testid",`splitter-handle-${b}`),z(K=>{q=de(N,1,"splitter-handle svelte-1adl4o1",null,q,K),ne(N,"aria-orientation",t.direction==="horizontal"?"vertical":"horizontal")},[()=>({dragging:i(f)?.handleIndex===b,disabled:o(b)||o(b+1),frozen:c(b)})]),F("pointerdown",N,K=>h(K,b)),F("pointermove",N,m),F("pointerup",N,I),Oe("pointercancel",N,I),F("dblclick",N,()=>{c(b)||!u(b)&&!o(b)||t.onCollapseToggle?.(b,!o(b))}),E(B,N)};U(R,B=>{b<t.count-1&&B(M)})}z((B,N)=>{C=de(L,1,"splitter-pane svelte-1adl4o1",null,C,B),tt(L,`flex: ${N??""};`)},[()=>({collapsed:o(b)}),()=>d(b)]),E(w,A)}),v(g),Ne(g,w=>s=w,()=>s),z(()=>y=de(g,1,"splitter svelte-1adl4o1",null,y,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"})),E(e,g),se()}oe(["click","pointerdown","pointermove","pointerup","dblclick"]);function T3(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 R3=T('<span class="tab-dirty svelte-1kxcyhf" title="Unsaved changes"></span>'),P3=T('<span class="tab-icon svelte-1kxcyhf"> </span>'),j3=T('<span class="tab-close svelte-1kxcyhf" role="button" tabindex="-1" title="Close">✕</span>'),D3=T('<button type="button" role="tab"><!> <!> <span class="tab-label svelte-1kxcyhf"> </span> <!></button>'),L3=T('<div class="drop-indicator svelte-1kxcyhf"></div>'),M3=T("<div><!></div>"),O3=T('<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 N3(e,t){re(t,!0);function n(y){t.clickGuard?.()||t.onActiveChange?.(y)}function r(y,w){w.stopPropagation(),t.onClose?.(y)}let s=V(void 0);const a=ie([]);let o=V(null);function l(y,w){if(!t.dragController)return;const _=a[y];_&&t.dragController.onPointerDown(y,w,_)}function c(y){if(!t.dragController||!t.dragController.isDragging||!i(s))return;const w=i(s).getBoundingClientRect(),_=a.filter(b=>!!b).map(b=>b.getBoundingClientRect());x(o,t.dragController.onStripHover(w,y.clientX,y.clientY,_),!0)}function u(){t.dragController&&(x(o,null),t.dragController.onStripLeave())}var d=O3(),f=p(d),h=p(f);fe(h,17,()=>t.labels,Vt,(y,w,_)=>{var b=D3();let A;var L=p(b);{var C=B=>{var N=R3();E(B,N)};U(L,B=>{t.dirty?.[_]&&B(C)})}var S=k(L,2);{var j=B=>{var N=P3(),q=p(N,!0);v(N),z(()=>O(q,t.icons[_])),E(B,N)};U(S,B=>{t.icons?.[_]&&B(j)})}var P=k(S,2),D=p(P,!0);v(P);var R=k(P,2);{var M=B=>{var N=j3();z(()=>ne(N,"data-testid",t.tabIds?.[_]?`tab-close-${t.tabIds[_]}`:void 0)),F("click",N,q=>r(_,q)),F("keydown",N,q=>{(q.key==="Enter"||q.key===" ")&&r(_,q)}),E(B,N)};U(R,B=>{t.closable?.[_]&&B(M)})}v(b),Ne(b,(B,N)=>a[N]=B,B=>a?.[B],()=>[_]),z(()=>{A=de(b,1,"tab svelte-1kxcyhf",null,A,{active:t.activeTab===_}),ne(b,"aria-selected",t.activeTab===_),O(D,i(w))}),F("click",b,()=>n(_)),F("pointerdown",b,B=>l(_,B)),Oe("auxclick",b,B=>{B.button===1&&t.closable?.[_]&&r(_,B)}),E(y,b)});var m=k(h,2);{var I=y=>{const w=H(()=>T3(i(o),a,i(s)));var _=Ye(),b=pe(_);{var A=L=>{var C=L3();z(()=>tt(C,`left: ${i(w).left??""}px; height: ${i(w).height??""}px; top: ${i(w).top??""}px;`)),E(L,C)};U(b,L=>{i(w)&&L(A)})}E(y,_)};U(m,y=>{i(o)!==null&&t.dragController?.isDragging&&y(I)})}v(f),Ne(f,y=>x(s,y),()=>i(s));var g=k(f,2);fe(g,21,()=>t.labels,Vt,(y,w,_)=>{var b=M3();let A;var L=p(b);Zt(L,()=>t.body,()=>_),v(b),z(()=>A=de(b,1,"tab-body-pane svelte-1kxcyhf",null,A,{active:t.activeTab===_})),E(y,b)}),v(g),v(d),F("pointermove",f,c),Oe("pointerleave",f,u),E(e,d),se()}oe(["pointermove","click","pointerdown","keydown"]);var z3=T('no factory for <code class="svelte-1czj0s8"> </code>',1),q3=T("<em>empty slot</em>"),V3=T('<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>'),B3=T('<div class="slot svelte-1czj0s8"><!></div>');function hc(e,t){re(t,!0);let n=G(t,"label",3,""),r=V(void 0),s=V(0),a=V(0);const o=H(()=>t.node.viewId?!!Sd(t.node.viewId):!1);Ie(()=>{if(!i(r))return;const d=t.node.slotId,f=i(r),h=Mo(d,t.node.viewId,n()||t.node.viewId||d,t.meta);f.appendChild(h);const m=new ResizeObserver(I=>{for(const g of I){const y=g.contentRect;x(s,Math.round(y.width),!0),x(a,Math.round(y.height),!0)}});return m.observe(f),()=>{m.disconnect(),Oo(d,f)}});var l=B3(),c=p(l);{var u=d=>{var f=V3(),h=p(f),m=p(h,!0);v(h);var I=k(h,2),g=p(I);{var y=A=>{var L=z3(),C=k(pe(L)),S=p(C,!0);v(C),z(()=>O(S,t.node.viewId)),E(A,L)},w=A=>{var L=q3();E(A,L)};U(g,A=>{t.node.viewId?A(y):A(w,-1)})}v(I);var _=k(I,2),b=p(_);v(_),v(f),z(()=>{O(m,t.node.slotId),O(b,`${i(s)??""} × ${i(a)??""}`)}),E(d,f)};U(c,d=>{i(o)||d(u)})}v(l),Ne(l,d=>x(r,d),()=>i(r)),z(()=>{ne(l,"data-slot-id",t.node.slotId),ne(l,"data-view-id",t.node.viewId??"")}),E(e,l),se()}const ge=ie({phase:"idle",source:null,pointerX:0,pointerY:0,target:null});let Uf=0;function F3(){return performance.now()<Uf}const pc=4;let Hf=0,Kf=0;function U3(e,t,n,r,s){if(ge.phase!=="idle")return;const a=s.getBoundingClientRect();ge.phase="pending",ge.source={slotId:e,entry:t,sourceRoot:n,startRect:a,offsetX:r.clientX-a.left,offsetY:r.clientY-a.top},ge.pointerX=r.clientX,ge.pointerY=r.clientY,ge.target=null,Hf=r.clientX,Kf=r.clientY,H3()}function H3(){window.addEventListener("pointermove",Wf,!0),window.addEventListener("pointerup",Yf,!0),window.addEventListener("pointercancel",Gf,!0),document.body.style.userSelect="none",document.body.dataset.dragging=""}function K3(){window.removeEventListener("pointermove",Wf,!0),window.removeEventListener("pointerup",Yf,!0),window.removeEventListener("pointercancel",Gf,!0),document.body.style.userSelect="",delete document.body.dataset.dragging}function Wf(e){if(ge.pointerX=e.clientX,ge.pointerY=e.clientY,ge.phase==="pending"){const t=e.clientX-Hf,n=e.clientY-Kf;t*t+n*n>=pc*pc&&(ge.phase="dragging")}}function Yf(e){ge.phase==="dragging"&&(W3(),Uf=performance.now()+50),Xf()}function Gf(e){Xf()}function mc(e){const t=an.tree;if(e.kind==="docked")return t.docked;const n=t.floats.find(r=>r.id===e.floatId);return n?n.content:null}function bc(e){if(e.kind!=="float")return;const t=an.tree,n=t.floats.findIndex(r=>r.id===e.floatId);n<0||ud(t.floats[n].content)&&t.floats.splice(n,1)}function W3(){const{source:e,target:t}=ge;if(!e||!t)return;const n=mc(e.sourceRoot),r=mc(t.root);if(!n||!r)return;if(t.kind==="strip"){const a=t.tabsNode.tabs.findIndex(o=>o.slotId===e.slotId);if(a>=0){J_(t.tabsNode,a,t.insertIndex),or(n),r!==n&&or(r),bc(e.sourceRoot);return}}const s=Da(n,e.slotId);s&&(t.kind==="strip"?X_(t.tabsNode,s,t.insertIndex):Ad(r,t.path,s,t.side),or(n),r!==n&&or(r),bc(e.sourceRoot))}function Xf(){ge.phase="idle",ge.source=null,ge.target=null,K3()}function Wi(e){ge.phase==="dragging"&&(ge.target=e)}function fr(e){ge.phase==="dragging"&&ge.target&&(e&&!e(ge.target)||(ge.target=null))}var Y3=T("<div></div>"),G3=T('<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),X3=T("<!> <!>",1),J3=T("<div><!></div>");function gc(e,t){re(t,!0);let n=V(void 0),r=V(null);const s=H(()=>ge.phase==="dragging"),a=H(()=>{let m;return t.rootRef.kind==="docked"?m=an.root:m=an.tree.floats.find(g=>g.id===t.rootRef.floatId)?.content??null,m?Cd(m,t.path):!1});function o(m,I,g){const y=g.left+g.width/2,w=g.top+g.height/2,_=m-y,b=I-w,A=_/g.width,L=b/g.height;return Math.abs(A)>Math.abs(L)?A<0?"left":"right":L<0?"top":"bottom"}function l(m){if(!i(n))return;if(i(a)){i(r)!==null&&(x(r,null),fr(y=>y.kind==="split"&&y.path.join("/")===t.path.join("/")));return}const I=i(n).getBoundingClientRect();if(m.clientX<I.left||m.clientX>I.right||m.clientY<I.top||m.clientY>I.bottom){i(r)!==null&&(x(r,null),fr(y=>y.kind==="split"&&y.path.join("/")===t.path.join("/")));return}const g=o(m.clientX,m.clientY,I);if(g!==i(r)){x(r,g,!0);const y={kind:"split",root:t.rootRef,path:[...t.path],side:g};Wi(y)}}function c(){i(r)!==null&&(x(r,null),fr(m=>m.kind==="split"&&m.path.join("/")===t.path.join("/")))}var u=J3();let d;var f=p(u);{var h=m=>{var I=X3(),g=pe(I);{var y=b=>{var A=Y3();z(()=>de(A,1,`quad-highlight quad-${i(r)??""}`,"svelte-re71zu")),E(b,A)};U(g,b=>{i(r)&&b(y)})}var w=k(g,2);{var _=b=>{var A=G3();rn(6),E(b,A)};U(w,b=>{i(s)&&b(_)})}E(m,I)};U(f,m=>{i(a)||m(h)})}v(u),Ne(u,m=>x(n,m),()=>i(n)),z(()=>d=de(u,1,"slot-drop-zone svelte-re71zu",null,d,{active:i(s),locked:i(a)})),F("pointermove",u,l),Oe("pointerleave",u,c),E(e,u),se()}oe(["pointermove"]);var Z3=T('<div class="tab-slot-wrapper svelte-1gw9g38"><!> <!></div>'),Q3=T('<div class="empty-tabs-custom svelte-1gw9g38"></div>'),$3=T('<div class="empty-tabs-default svelte-1gw9g38"><div class="empty-tabs-drop svelte-1gw9g38"></div></div>'),eE=T('<div class="empty-tabs-placeholder svelte-1gw9g38"><!></div>'),tE=T('<div class="leaf-slot-wrapper svelte-1gw9g38"><!> <!></div>');function rl(e,t){re(t,!0);let n=G(t,"path",19,()=>[]),r=G(t,"rootRef",19,()=>({kind:"docked"}));const s=H(()=>{let _;return r().kind==="docked"?_=an.root:_=an.tree.floats.find(A=>A.id===r().floatId)?.content??null,_?ns(_,n()):null});function a(_){return{get isDragging(){return ge.phase==="dragging"},onPointerDown(b,A,L){const C=_.tabs[b];C&&U3(C.slotId,C,r(),A,L)},onStripHover(b,A,L,C){if(L<b.top||L>b.bottom)return fr(P=>P.kind==="strip"&&P.tabsNode===_),null;let S=C.length;for(let P=0;P<C.length;P++){const D=C[P],R=D.left+D.width/2;if(A<R){S=P;break}}const j=ge.source;if(j){const P=_.tabs.findIndex(D=>D.slotId===j.slotId);P>=0&&P<S&&(S-=1)}return Wi({kind:"strip",root:r(),tabsNode:_,insertIndex:S}),S},onStripLeave(){fr(b=>b.kind==="strip"&&b.tabsNode===_)}}}function o(_){return _.type==="split"?_:null}function l(_){return _.type==="tabs"?_:null}function c(_){return _.type==="slot"?_:null}function u(_){return _.map(b=>ty(b.slotId)||void 0)}function d(_){return _.map(b=>ey(b.slotId)||void 0)}function f(_,b){const A=_[b];A&&Ko(A.slotId)}function h(_,b){b(_)}function m(_,b){ge.phase==="dragging"&&Wi({kind:"strip",root:r(),tabsNode:b,insertIndex:0})}function I(){fr(_=>_.kind==="strip"&&_.insertIndex===0)}var g=Ye(),y=pe(g);{var w=_=>{var b=Ye(),A=pe(b);{var L=j=>{const P=(R,M=wt)=>{{let B=H(()=>[...n(),M()]);rl(R,{get rootRef(){return r()},get path(){return i(B)}})}},D=H(()=>o(i(s)));C3(j,{get direction(){return i(D).direction},get sizes(){return i(D).sizes},get pinned(){return i(D).pinned},get collapsed(){return i(D).collapsed},get fixed(){return i(D).fixed},get count(){return i(D).children.length},get pane(){return P},onResize:(R,M)=>i(D).sizes[R]=M,onCollapseToggle:(R,M)=>{i(D).collapsed||(i(D).collapsed=i(D).children.map(()=>!1)),i(D).collapsed[R]=M}})},C=j=>{const P=H(()=>l(i(s)));var D=Ye(),R=pe(D);{var M=N=>{const q=(Y,te=wt)=>{const J=H(()=>i(P)?.tabs[te()]);var ae=Ye(),W=pe(ae);{var Z=le=>{var me=Z3(),Q=p(me);{let ye=H(()=>({type:"slot",slotId:i(J).slotId,viewId:i(J).viewId}));hc(Q,{get node(){return i(ye)},get label(){return i(J).label},get meta(){return i(J).meta}})}var ve=k(Q,2);gc(ve,{get rootRef(){return r()},get path(){return n()}}),v(me),E(le,me)};U(W,le=>{i(J)&&le(Z)})}E(Y,ae)},K=H(()=>a(i(P)));{let Y=H(()=>i(P).tabs.map(Z=>Z.label)),te=H(()=>i(P).tabs.map(Z=>Z.icon)),J=H(()=>u(i(P).tabs)),ae=H(()=>d(i(P).tabs)),W=H(()=>i(P).tabs.map(Z=>Z.slotId));N3(N,{get labels(){return i(Y)},get icons(){return i(te)},get activeTab(){return i(P).activeTab},onActiveChange:Z=>i(P).activeTab=Z,get body(){return q},get dragController(){return i(K)},get clickGuard(){return F3},get closable(){return i(J)},get dirty(){return i(ae)},onClose:Z=>f(i(P).tabs,Z),get tabIds(){return i(W)}})}},B=N=>{var q=eE(),K=p(q);{var Y=J=>{var ae=Q3();Ku(ae,(W,Z)=>h?.(W,Z),()=>i(P).emptyRenderer),E(J,ae)},te=J=>{var ae=$3(),W=p(ae);v(ae),F("pointermove",W,Z=>m(Z,i(P))),Oe("pointerleave",W,I),E(J,ae)};U(K,J=>{i(P).emptyRenderer?J(Y):J(te,-1)})}v(q),E(N,q)};U(R,N=>{i(P)&&i(P).tabs.length>0?N(M):i(P)?.persistent&&N(B,1)})}E(j,D)},S=j=>{const P=H(()=>c(i(s)));var D=tE(),R=p(D);hc(R,{get node(){return i(P)}});var M=k(R,2);gc(M,{get rootRef(){return r()},get path(){return n()}}),v(D),E(j,D)};U(A,j=>{i(s).type==="split"?j(L):i(s).type==="tabs"?j(C,1):j(S,-1)})}E(_,b)};U(y,_=>{i(s)&&_(w)})}E(e,g),se()}oe(["pointermove"]);var nE=T('<span class="drag-preview-icon svelte-133fiip"> </span>'),rE=T('<div class="drag-preview svelte-133fiip"><!> <span class="drag-preview-label svelte-133fiip"> </span></div>');function sE(e,t){re(t,!0);const n=H(()=>ge.phase==="dragging"&&!!ge.source),r=H(()=>ge.source?ge.pointerX-ge.source.offsetX:0),s=H(()=>ge.source?ge.pointerY-ge.source.offsetY:0),a=H(()=>ge.source?.startRect.width??0),o=H(()=>ge.source?.startRect.height??0),l=H(()=>ge.source?.entry.label??""),c=H(()=>ge.source?.entry.icon);var u=Ye(),d=pe(u);{var f=h=>{var m=rE(),I=p(m);{var g=_=>{var b=nE(),A=p(b,!0);v(b),z(()=>O(A,i(c))),E(_,b)};U(I,_=>{i(c)&&_(g)})}var y=k(I,2),w=p(y,!0);v(y),v(m),z(()=>{tt(m,`left: ${i(r)??""}px; top: ${i(s)??""}px; width: ${i(a)??""}px; height: ${i(o)??""}px;`),O(w,i(l))}),E(h,m)};U(d,h=>{i(n)&&h(f)})}E(e,u),se()}const vr=new Map;let da=!1;function Jf(e){if(vr.size===0)return;const t=e.target;if(!t)return;const n=Array.from(vr.keys());for(const r of n){const s=vr.get(r);s&&(s.contains(t)||ct.close(r))}}function aE(){da||typeof document>"u"||(document.addEventListener("pointerdown",Jf,!0),da=!0)}function iE(){da&&(vr.size>0||(document.removeEventListener("pointerdown",Jf,!0),da=!1))}function oE(e,t){vr.set(e,t),aE()}function lE(e){vr.delete(e),iE()}var cE=T('<header class="sh3-float-header svelte-1p734al"><span class="sh3-float-title svelte-1p734al"> </span> <button class="sh3-float-close svelte-1p734al" aria-label="Close float">×</button></header>'),uE=T('<div class="sh3-float-frame svelte-1p734al" role="dialog" tabindex="-1"><!> <div class="sh3-float-body svelte-1p734al"><!></div></div>');function dE(e,t){re(t,!0);const n=G(t,"entry",7);let r=V(!1),s={x:0,y:0},a=V(void 0);Ie(()=>{if(n().dismissable&&i(a))return oE(n().id,i(a)),()=>lE(n().id)});function o(w){if(w.button!==0||w.target.closest(".sh3-float-close"))return;w.currentTarget.setPointerCapture(w.pointerId),x(r,!0),s={x:w.clientX-n().position.x,y:w.clientY-n().position.y},ct.focus(n().id)}function l(w){i(r)&&(n().position.x=w.clientX-s.x,n().position.y=w.clientY-s.y)}function c(w){if(!i(r))return;x(r,!1);const _=w.currentTarget;_.hasPointerCapture(w.pointerId)&&_.releasePointerCapture(w.pointerId)}function u(){ct.focus(n().id)}function d(w){w.stopPropagation(),ct.close(n().id)}var f=uE();let h;var m=p(f);{var I=w=>{var _=cE(),b=p(_),A=p(b,!0);v(b);var L=k(b,2);v(_),z(()=>O(A,n().title)),F("pointerdown",_,o),F("pointermove",_,l),F("pointerup",_,c),Oe("pointercancel",_,c),F("click",L,d),E(w,_)};U(m,w=>{n().title&&w(I)})}var g=k(m,2),y=p(g);{let w=H(()=>({kind:"float",floatId:n().id}));rl(y,{get rootRef(){return i(w)},path:[]})}v(g),v(f),Ne(f,w=>x(a,w),()=>i(a)),z(()=>{ne(f,"aria-label",n().title??"Float panel"),h=tt(f,"",h,{left:`${n().position.x??""}px`,top:`${n().position.y??""}px`,width:`${n().size.w??""}px`,height:`${n().size.h??""}px`})}),F("click",f,u),E(e,f),se()}oe(["click","pointerdown","pointermove","pointerup"]);var fE=T('<div class="sh3-float-layer svelte-1rzcset"></div>');function vE(e,t){re(t,!0);const n=H(()=>an.floats);var r=fE();fe(r,21,()=>i(n),s=>s.id,(s,a)=>{dE(s,{get entry(){return i(a)}})}),v(r),E(e,r),se()}var hE=T('<div class="guest-signin-error svelte-pymkh"> </div>'),pE=T('<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>'),mE=T('<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),bE=T('<div class="guest-banner-slot"><!></div>');function gE(e,t){re(t,!0);let n=V(!1),r=V(""),s=V(""),a=V(null),o=V(!1);async function l(){if(!i(r).trim()||!i(s).trim()||i(o))return;x(o,!0),x(a,null);const h=await $d(i(r).trim(),i(s).trim());x(o,!1),h.ok?x(n,!1):x(a,h.error,!0)}var c=bE(),u=p(c);{var d=h=>{var m=mE(),I=pe(m),g=k(p(I),2);v(I);var y=k(I,2);{var w=_=>{var b=pE(),A=p(b),L=p(A),C=p(L);_e(C);var S=k(C,2);_e(S);var j=k(S,2),P=p(j),D=p(P,!0);v(P);var R=k(P,2);v(j),v(L);var M=k(L,2);{var B=N=>{var q=hE(),K=p(q,!0);v(q),z(()=>O(K,i(a))),E(N,q)};U(M,N=>{i(a)&&N(B)})}v(A),v(b),z(N=>{C.disabled=i(o),S.disabled=i(o),P.disabled=N,O(D,i(o)?"Signing in...":"Sign in")},[()=>i(o)||!i(r).trim()||!i(s).trim()]),Oe("submit",L,N=>{N.preventDefault(),l()}),Ee(C,()=>i(r),N=>x(r,N)),Ee(S,()=>i(s),N=>x(s,N)),F("click",R,()=>{x(n,!1),x(a,null)}),E(_,b)};U(y,_=>{i(n)&&_(w)})}F("click",g,()=>{x(n,!0)}),E(h,m)},f=H(()=>ef());U(u,h=>{i(f)&&h(d)})}v(c),E(e,c),se()}oe(["click"]);var _E=T('<code class="sh3-consent-scope svelte-14me5sj"> </code>'),yE=T('<dt class="svelte-14me5sj">Peer</dt> <dd class="svelte-14me5sj"> </dd>',1),wE=T('<dt class="svelte-14me5sj">Expires in</dt> <dd class="svelte-14me5sj"> </dd>',1),kE=T('<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 xE(e,t){re(t,!0);let n=V(null);Ie(()=>df(u=>{x(n,u,!0)}));function r(){i(n)&&(qi(i(n).requestId,!0),x(n,null))}function s(){i(n)&&(qi(i(n).requestId,!1),x(n,null))}var a=Ye(),o=pe(a);{var l=c=>{var u=kE(),d=p(u),f=p(d),h=p(f),m=p(h,!0);v(h),rn(),v(f);var I=k(f,2),g=k(p(I),2),y=p(g,!0);v(g);var w=k(g,4);fe(w,20,()=>i(n).scopes,P=>P,(P,D)=>{var R=_E(),M=p(R,!0);v(R),z(()=>O(M,D)),E(P,R)}),v(w);var _=k(w,2);{var b=P=>{var D=yE(),R=k(pe(D),2),M=p(R);v(R),z(()=>O(M,`${i(n).peerRole??"—"??""}${i(n).peerId?` · ${i(n).peerId}`:""}`)),E(P,D)};U(_,P=>{(i(n).peerRole||i(n).peerId)&&P(b)})}var A=k(_,2);{var L=P=>{var D=wE(),R=k(pe(D),2),M=p(R);v(R),z(B=>O(M,`${B??""}s`),[()=>Math.round(i(n).expiresIn/1e3)]),E(P,D)};U(A,P=>{i(n).expiresIn&&P(L)})}v(I);var C=k(I,2),S=p(C);Ir(S,!0);var j=k(S,2);v(C),v(d),v(u),z(()=>{O(m,i(n).shardId),O(y,i(n).label)}),F("click",S,s),F("click",j,r),E(c,u)};U(o,c=>{i(n)&&c(l)})}E(e,a),se()}oe(["click"]);var SE=T('<span class="sh3-brand svelte-18lk809">SH3</span>'),EE=T('<span class="sh3-brand sh3-brand-app svelte-18lk809"> </span>'),IE=T('<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),AE=T('<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),CE=T('<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),TE=T('<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),RE=T('<div class="sh3-brand-slot svelte-18lk809"><!></div>');function PE(e,t){re(t,!0);const n=H(()=>Yt().activeAppId),r=H(ng),s=H(()=>Wn.activeProjectId),a=H(()=>i(n)?In(i(n))?.manifest.label??i(n):null),o=H(()=>i(r)?In(i(r))?.manifest.label??i(r):null),l=H(()=>i(s)?Mt.projects.find(A=>A.id===i(s))?.name??i(s):null),c=H(()=>i(s)?i(n)?"project-app":i(r)?"project-breadcrumb":"project-home":i(n)?"app":i(r)?"breadcrumb":"brand");function u(){i(r)&&hn(i(r))}function d(){hf(null)}function f(){i(n)&&Ss()}var h=RE(),m=p(h);{var I=A=>{var L=SE();E(A,L)},g=A=>{var L=EE(),C=p(L,!0);v(L),z(()=>O(C,i(a))),E(A,L)},y=A=>{var L=IE(),C=k(pe(L),4),S=p(C,!0);v(C),z(()=>O(S,i(o))),F("click",C,u),E(A,L)},w=A=>{var L=AE(),C=pe(L),S=k(C,4),j=p(S,!0);v(S),z(()=>O(j,i(l))),F("click",C,d),E(A,L)},_=A=>{var L=CE(),C=pe(L),S=p(C,!0);v(C);var j=k(C,4),P=p(j,!0);v(j),z(()=>{O(S,i(l)),O(P,i(a))}),E(A,L)},b=A=>{var L=TE(),C=pe(L),S=k(C,4),j=p(S,!0);v(S);var P=k(S,4),D=p(P,!0);v(P),z(()=>{O(j,i(l)),O(D,i(o))}),F("click",C,d),F("click",S,f),F("click",P,u),E(A,L)};U(m,A=>{i(c)==="brand"?A(I):i(c)==="app"?A(g,1):i(c)==="breadcrumb"?A(y,2):i(c)==="project-home"?A(w,3):i(c)==="project-app"?A(_,4):i(c)==="project-breadcrumb"&&A(b,5)})}v(h),E(e,h),se()}oe(["click"]);const jE=Object.freeze([{id:"file",label:"File"},{id:"edit",label:"Edit"},{id:"view",label:"View"},{id:"window",label:"Window"},{id:"help",label:"Help"}]);function fa(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function DE(e,t){if(e==null)return[];if(t==null)return jE.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 LE(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)||!ks(a.action.scope,t,a.ownerShardId)||(s.add(a.action.id),r.push({id:a.action.id,label:a.action.label,shortcut:ws(a.action,t.bindings,t.platform),group:a.action.group??"",icon:a.action.icon,checked:fa(a.action.checked),disabled:fa(a.action.disabled),submenu:a.action.submenu===!0}));return r}function ME(e,t,n){const r=[],s=new Set;for(const a of e)a.action.submenuOf!==n||s.has(a.action.id)||!ks(a.action.scope,t,a.ownerShardId)||(s.add(a.action.id),r.push({id:a.action.id,label:a.action.label,shortcut:ws(a.action,t.bindings,t.platform),group:a.action.group??"",icon:a.action.icon,checked:fa(a.action.checked),disabled:fa(a.action.disabled),submenu:a.action.submenu===!0}));return r}var OE=T('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),NE=T('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),zE=T('<button type="button" class="sh3-menubar-button svelte-bke3dt"><!> <span class="sh3-menubar-label"> </span> <!></button>');function qE(e,t){re(t,!0);let n=V(void 0);function r(g){const y=new Map,w=[];for(const _ of g){const b=_.group||"";y.has(b)||(y.set(b,[]),w.push(b)),y.get(b).push(_)}return w.map(_=>({id:`group:${_||"_default"}`,items:y.get(_)}))}function s(g,y,w){const _=nt().find(b=>b.action.id===g);if(!(!_||typeof _.action.run!="function")){try{_.action.run({action:{id:g,label:_.action.label},appId:y.activeAppId,viewId:y.focusedViewId??void 0,selection:y.selection??void 0,invokedVia:"palette",dispatch:()=>{}})}catch(b){console.error(`[sh3] menu-bar action "${g}" threw:`,b)}w.close()}}function a(g,y,w){const _=document.querySelector(".sh3-popup-host");if(!_)return;const b=document.createElement("div");b.className="sh3-popup-submenu",b.style.position="absolute",b.style.pointerEvents="auto";const L=(_.querySelector(".sh3-ctx-active")??_).getBoundingClientRect();b.style.left=`${L.right+2}px`,b.style.top=`${L.top}px`,_.appendChild(b);const C=ME(nt(),y,g),S=Me(ia,{target:b,props:{sections:r(C),onInvoke:j=>s(j,y,w),onDismiss:()=>{Ue(S),b.remove()}}})}function o(){if(!i(n))return;const g=Yt(),y=Ti.show(ia,{anchor:i(n),placement:"bottom-start"},{sections:r(t.items),onInvoke:w=>{const _=nt().find(b=>b.action.id===w);if(_){if(_.action.submenu===!0){a(w,g,y);return}s(w,g,y)}},onDismiss:()=>Ti.close()})}const l=H(()=>t.container.iconPosition??"before");var c=zE(),u=p(c);{var d=g=>{var y=OE();z(()=>ne(y,"data-icon",t.container.icon)),E(g,y)};U(u,g=>{t.container.icon&&i(l)==="before"&&g(d)})}var f=k(u,2),h=p(f,!0);v(f);var m=k(f,2);{var I=g=>{var y=NE();z(()=>ne(y,"data-icon",t.container.icon)),E(g,y)};U(m,g=>{t.container.icon&&i(l)==="after"&&g(I)})}v(c),Ne(c,g=>x(n,g),()=>i(n)),z(()=>O(h,t.container.label)),F("click",c,o),E(e,c),se()}oe(["click"]);var VE=T('<div class="sh3-menubar svelte-7gc0wa" role="menubar"></div>');function BE(e,t){re(t,!0);const n=H(Yt),r=H(()=>i(n).activeAppId),s=H(()=>{if(i(r))return In(i(r))?.manifest.menus}),a=H(()=>DE(i(r),i(s))),o=H(()=>{const c=[],u=nt();for(const d of i(a)){const f=LE(u,i(n),d.id);f.length>0&&c.push({container:d,items:f})}return c});var l=VE();fe(l,21,()=>i(o),({container:c,items:u})=>c.id,(c,u)=>{let d=()=>i(u).container,f=()=>i(u).items;qE(c,{get container(){return d()},get items(){return f()}})}),v(l),E(e,l),se()}var FE=T('<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>'),UE=T('<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>'),HE=T('<div class="shell-overlay-root svelte-187fra4"><!></div>'),KE=T('<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 WE(e,t){re(t,!0);const n=H(Ni),r=H(xs),s=H(xt),a=H(()=>Md()==="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=ie({});Ie(()=>{for(const{name:C}of o){const S=l[C];S&&eg(C,S)}return()=>{for(const{name:C}of o)tg(C)}}),Ie(()=>{const C=an.tree;return Ag(C.floats,()=>({w:window.innerWidth,h:window.innerHeight})),()=>Cg()}),Ie(()=>{an.tree,py()}),Ie(()=>Ni()?gw():void 0);var c=KE(),u=p(c),d=p(u),f=p(d),h=p(f);v(f),v(d);var m=k(d,2);PE(m,{});var I=k(m,2);BE(I,{});var g=k(I,2);{var y=C=>{var S=UE(),j=p(S),P=p(j,!0);v(j);var D=k(j,2),R=p(D,!0);v(D);var M=k(D,2);{var B=q=>{var K=FE(),Y=p(K),te=p(Y);v(Y),v(K),z(()=>ne(te,"href",`${Bi}#log-out`)),F("click",K,()=>rw()),E(q,K)},N=H(()=>!aw());U(M,q=>{i(N)&&q(B)})}v(S),z(()=>{O(P,i(r).displayName),O(R,i(s)?"admin":"user")}),E(C,S)};U(g,C=>{i(n)&&i(r)&&C(y)})}v(u);var w=k(u,2);gE(w,{});var _=k(w,2),b=p(_);rl(b,{}),v(_);var A=k(_,4);fe(A,21,()=>o,({layer:C,name:S})=>C,(C,S)=>{let j=()=>i(S).layer,P=()=>i(S).name;var D=HE(),R=p(D);{var M=N=>{vE(N,{})},B=N=>{sE(N,{})};U(R,N=>{P()==="floating"?N(M):P()==="drag-preview"&&N(B,1)})}v(D),Ne(D,(N,q)=>l[q]=N,N=>l?.[N],()=>[P()]),z(()=>{ne(D,"data-shell-overlay",P()),ne(D,"data-shell-layer",j()),tt(D,`z-index: var(--shell-z-layer-${j()??""});`)}),E(C,D)}),v(A);var L=k(A,2);xE(L,{}),v(c),z(()=>{d.disabled=i(a),ne(h,"href",`${Bi}#house`)}),F("click",d,()=>Ss()),E(e,c),se()}oe(["click"]);var YE=T('<button type="button" class="signin-link svelte-lh4k15">Create an account</button>'),GE=T('<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),XE=T('<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),JE=T('<div class="signin-error svelte-lh4k15"> </div>'),ZE=T('<div class="signin-wall svelte-lh4k15"><div class="signin-card svelte-lh4k15"><h1 class="signin-brand svelte-lh4k15">SH3</h1> <!> <!></div></div>');function QE(e,t){re(t,!0);let n=V("login"),r=V(""),s=V(""),a=V(""),o=V(null),l=V(!1);async function c(){if(!i(r).trim()||!i(s).trim()||i(l))return;x(l,!0),x(o,null);const _=await $d(i(r).trim(),i(s).trim());x(l,!1),_.ok?t.onSuccess():x(o,_.error,!0)}async function u(){if(!i(r).trim()||!i(s).trim()||i(l))return;x(l,!0),x(o,null);const _=await nw(i(r).trim(),i(s).trim(),i(a).trim()||void 0);x(l,!1),_.ok?t.onSuccess():x(o,_.error,!0)}function d(_){x(n,_,!0),x(o,null)}var f=ZE(),h=p(f),m=k(p(h),2);{var I=_=>{var b=GE(),A=pe(b),L=p(A);_e(L);var C=k(L,2);_e(C);var S=k(C,2),j=p(S,!0);v(S),v(A);var P=k(A,2);{var D=R=>{var M=YE();F("click",M,()=>d("register")),E(R,M)};U(P,R=>{t.selfRegistration&&R(D)})}z(R=>{L.disabled=i(l),C.disabled=i(l),S.disabled=R,O(j,i(l)?"Signing in...":"Sign in")},[()=>i(l)||!i(r).trim()||!i(s).trim()]),Oe("submit",A,R=>{R.preventDefault(),c()}),Ee(L,()=>i(r),R=>x(r,R)),Ee(C,()=>i(s),R=>x(s,R)),E(_,b)},g=_=>{var b=XE(),A=pe(b),L=p(A);_e(L);var C=k(L,2);_e(C);var S=k(C,2);_e(S);var j=k(S,2),P=p(j,!0);v(j),v(A);var D=k(A,2);z(R=>{L.disabled=i(l),C.disabled=i(l),S.disabled=i(l),j.disabled=R,O(P,i(l)?"Creating...":"Create account")},[()=>i(l)||!i(r).trim()||!i(s).trim()]),Oe("submit",A,R=>{R.preventDefault(),u()}),Ee(L,()=>i(r),R=>x(r,R)),Ee(C,()=>i(a),R=>x(a,R)),Ee(S,()=>i(s),R=>x(s,R)),F("click",D,()=>d("login")),E(_,b)};U(m,_=>{i(n)==="login"?_(I):_(g,-1)})}var y=k(m,2);{var w=_=>{var b=JE(),A=p(b,!0);v(b),z(()=>O(A,i(o))),E(_,b)};U(y,_=>{i(o)&&_(w)})}v(h),v(f),E(e,f),se()}oe(["click"]);async function $E(e){const t=e?.serverUrl??"",n=await jx();n.backends&&(Nl("workspace",n.backends.workspace),Nl("user",n.backends.user)),n.localOwner&&sw(),tf(t),Nw();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)Hs("local");else if(s){ec(t,s),Hs(s.tenantId);const{auth:o,session:l}=s;if(!l&&o.required&&!o.guestAllowed){await e2(r,s);const c=await fetch(`${t}/api/boot`,{credentials:"include"});c.ok&&(s=await c.json(),ec(t,s),Hs(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 Es(c);$o(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)_3(o);if(e?.apps)for(const o of e.apps)Io(o);const a={};e?.excludeShards&&(a.excludeShards=e.excludeShards),await w3(a),Xd(),Me(WE,{target:r})}function e2(e,t){return new Promise(n=>{const r=Me(QE,{target:e,props:{selfRegistration:t.auth.selfRegistration,onSuccess:()=>{Ue(r),n()}}})})}const sl=window.location.origin;tf(sl);Qd(new Yy(sl));let Zf=[];try{const e=await fetch("/api/packages");e.ok&&(Zf=await e.json())}catch{}await $E({discoveredPackages:Zf,serverUrl:sl});
|
|
21
|
-
//# sourceMappingURL=index-eXElR_9t.js.map
|