sh3-server 0.20.1 → 0.20.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,26 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/tauri-backend-CPdbYLHz.js","assets/index-BRw5Wfxx.js","assets/core-DsojzR6k.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 o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();const Bm="modulepreload",Vm=function(e){return"/"+e},gu={},Wo=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");s=Promise.allSettled(n.map(c=>{if(c=Vm(c),c in gu)return;gu[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":Bm,u||(f.as="script"),f.crossOrigin="",f.href=c,l&&f.setAttribute("nonce",l),document.head.appendChild(f),u)return new Promise((v,m)=>{f.addEventListener("load",v),f.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${c}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return s.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})},Um=1,Hm=2,nf=4,Km=8,Wm=16,Ym=1,rf=4,Xm=8,Gm=16,Jm=1,Zm=2,Qm=4,Ql=1,sf=2,$m=4,eb=8,Yo="[",Xo="[!",yu="[?",Go="]",zr={},rt=Symbol(),tn=Symbol("filename"),rs=Symbol("hmr"),af="http://www.w3.org/1999/xhtml",Ia="http://www.w3.org/2000/svg",$l="http://www.w3.org/1998/Math/MathML",of="@attach",lf=!1;var Rs=Array.isArray,tb=Array.prototype.indexOf,gs=Array.prototype.includes,Jo=Array.from,mo=Object.keys,Or=Object.defineProperty,Pn=Object.getOwnPropertyDescriptor,cf=Object.getOwnPropertyDescriptors,uf=Object.prototype,nb=Array.prototype,Zo=Object.getPrototypeOf,_u=Object.isExtensible,rb=Object.prototype.hasOwnProperty;function ss(e){return typeof e=="function"}const Ft=()=>{};function wu(e){return typeof e?.then=="function"}function sb(e){return e()}function rl(e){for(var t=0;t<e.length;t++)e[t]()}function df(){var e,t,n=new Promise((r,s)=>{e=r,t=s});return{promise:n,resolve:e,reject:t}}function ab(e,t,n=!1){return e===void 0?n?t():t:e}function ff(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 ob(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 _t=2,Nr=4,Ea=8,ec=1<<24,Ln=16,Mn=32,or=64,sl=128,gn=512,dt=1024,yt=2048,jn=4096,Dt=8192,Ut=16384,ur=32768,al=1<<25,zn=65536,oa=1<<17,vf=1<<18,wr=1<<19,hf=1<<20,Kn=1<<25,qr=65536,ol=1<<21,ys=1<<22,mr=1<<23,Et=Symbol("$state"),Qo=Symbol("legacy props"),ib=Symbol(""),lb=Symbol("proxy path"),cb=Symbol("hmr anchor"),Vn=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},Gr=!!globalThis.document?.contentType&&globalThis.document.contentType.includes("xml"),pf=1,Ca=3,dr=8,mf=11;function bf(e){throw new Error("https://svelte.dev/e/experimental_async_required")}function ub(){throw new Error("https://svelte.dev/e/invalid_default_snippet")}function ku(){throw new Error("https://svelte.dev/e/invalid_snippet_arguments")}function Ps(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function db(){throw new Error("https://svelte.dev/e/missing_context")}function fb(){throw new Error("https://svelte.dev/e/snippet_without_render_tag")}function vb(e){throw new Error("https://svelte.dev/e/store_invalid_shape")}function hb(){throw new Error("https://svelte.dev/e/svelte_element_invalid_this_value")}function pb(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function mb(e,t){throw new Error("https://svelte.dev/e/component_api_changed")}function bb(e,t){throw new Error("https://svelte.dev/e/component_api_invalid_new")}function gb(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function yb(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function _b(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function wb(e){throw new Error("https://svelte.dev/e/effect_orphan")}function kb(){throw new Error("https://svelte.dev/e/effect_pending_outside_reaction")}function xb(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Sb(){throw new Error("https://svelte.dev/e/fork_discarded")}function Ib(){throw new Error("https://svelte.dev/e/fork_timing")}function Eb(){throw new Error("https://svelte.dev/e/get_abort_signal_outside_reaction")}function Cb(){throw new Error("https://svelte.dev/e/hydration_failed")}function gf(e){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}function Ab(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Tb(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Rb(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Pb(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Lb(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}function Db(e,t){console.warn("https://svelte.dev/e/assignment_value_stale")}function Mb(e,t){console.warn("https://svelte.dev/e/binding_property_non_reactive")}function jb(e){console.warn("https://svelte.dev/e/console_log_state")}function zb(){console.warn("https://svelte.dev/e/derived_inert")}function Ob(e,t){console.warn("https://svelte.dev/e/event_handler_invalid")}function Nb(e){console.warn("https://svelte.dev/e/hydratable_missing_but_expected")}function Aa(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function qb(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_binding")}function Fb(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_mutation")}function Bb(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function yf(e){console.warn("https://svelte.dev/e/state_proxy_equality_mismatch")}function Vb(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let ve=!1;function $e(e){ve=e}let Re;function Je(e){if(e===null)throw Aa(),zr;return Re=e}function zt(){return Je(an(Re))}function h(e){if(ve){if(an(Re)!==null)throw Aa(),zr;Re=e}}function Ub(e){ve&&(Re=e.content)}function Wt(e=1){if(ve){for(var t=e,n=Re;t--;)n=an(n);Re=n}}function Fr(e=!0){for(var t=0,n=Re;;){if(n.nodeType===dr){var r=n.data;if(r===Go){if(t===0)return n;t-=1}else(r===Yo||r===Xo||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var s=an(n);e&&n.remove(),n=s}}function tc(e){if(!e||e.nodeType!==dr)throw Aa(),zr;return e.data}function _f(e){return e===this.v}function wf(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function kf(e){return!wf(e,this.v)}let Hb=!1;function Kb(e){console.warn("https://svelte.dev/e/dynamic_void_element_content")}const Wb=[];function Br(e,t=!1,n=!1){return to(e,new Map,"",Wb,null,n)}function to(e,t,n,r,s=null,o=!1){if(typeof e=="object"&&e!==null){var i=t.get(e);if(i!==void 0)return i;if(e instanceof Map)return new Map(e);if(e instanceof Set)return new Set(e);if(Rs(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]=to(u,t,n,r,null,o))}return l}if(Zo(e)===uf){l={},t.set(e,l),s!==null&&t.set(s,l);for(var d of Object.keys(e))l[d]=to(e[d],t,n,r,null,o);return l}if(e instanceof Date)return structuredClone(e);if(typeof e.toJSON=="function"&&!o)return to(e.toJSON(),t,n,r,e)}if(e instanceof EventTarget)return e;try{return structuredClone(e)}catch{return e}}let ts=null;function xf(e,t){const n=e.v;if(n===rt)return;const r=Yb(e),s=Be,o=e.wv>s.wv||s.wv===0,i=o?"color: CornflowerBlue; font-weight: bold":"color: grey; font-weight: normal";if(console.groupCollapsed(e.label?`%c${r}%c ${e.label}`:`%c${r}%c`,i,o?"font-weight: normal":i,typeof n=="object"&&n!==null&&Et in n?Br(n,!0):n),r==="$derived"){const c=new Set(e.deps);for(const u of c)xf(u)}if(e.created&&console.log(e.created),o&&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 Yb(e){return e.f&(_t|ys)?"$derived":e.label?.startsWith("$")?"store":"$state"}function Xb(e,t){var n=ts;try{ts={entries:new Map,reaction:Be};var r=performance.now(),s=t(),o=(performance.now()-r).toFixed(2),i=Oe(e);if(!Da())console.log(`${i} %cran outside of an effect (${o}ms)`,"color: grey");else if(ts.entries.size===0)console.log(`${i} %cno reactive dependencies (${o}ms)`,"color: grey");else{console.group(`${i} %c(${o}ms)`,"color: grey");var l=ts.entries;Oe(()=>{for(const[c,u]of l)xf(c,u)}),ts=null,console.groupEnd()}return s}finally{ts=n}}function Gb(e,t){return e.label=t,Sf(e.v,t),e}function Sf(e,t){return e?.[lb]?.(t),e}function Jb(e){const t=new Error,n=Zb();return n.length===0?null:(n.unshift(`
3
+ `),Or(t,"stack",{value:n.join(`
4
+ `)}),Or(t,"name",{value:e}),t)}function Zb(){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 o=n[s],i=o.replaceAll("\\","/");if(o.trim()!=="Error"){if(o.includes("validate_each_keys"))return[];i.includes("svelte/src/internal")||i.includes("node_modules/.vite")||r.push(o)}}return r}let We=null;function _s(e){We=e}let no=null;function Qb(e,t,n,r,s,o){const i=no;no={type:t,file:n[tn],line:r,column:s,parent:i,...o};try{return e()}finally{no=i}}let nc=null;function xu(e){nc=e}function $b(){const e={};return[()=>(If(e)||db(),rc(e)),t=>sc(e,t)]}function rc(e){return $o().get(e)}function sc(e,t){return $o().set(e,t),t}function If(e){return $o().has(e)}function eg(){return $o()}function ce(e,t=!1,n){We={p:We,i:!1,c:null,e:null,s:e,x:null,r:Pe,l:null}}function ue(e){var t=We,n=t.e;if(n!==null){t.e=null;for(var r of n)$f(r)}return e!==void 0&&(t.x=e),t.i=!0,We=t.p,e??{}}function Ef(){return!0}function $o(e){return We===null&&Ps(),We.c??=new Map(tg(We)||void 0)}function tg(e){let t=e.p;for(;t!==null;){const n=t.c;if(n!==null)return n;t=t.p}return null}let Cr=[];function Cf(){var e=Cr;Cr=[],rl(e)}function Mt(e){if(Cr.length===0&&!fs){var t=Cr;queueMicrotask(()=>{t===Cr&&Cf()})}Cr.push(e)}function ng(){for(;Cr.length>0;)Cf()}function Af(e){var t=Pe;if(t===null)return Be.f|=mr,e;if(!(t.f&ur)&&!(t.f&Nr))throw e;Wn(e,t)}function Wn(e,t){for(;t!==null;){if(t.f&sl){if(!(t.f&ur))throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const rg=-7169;function ot(e,t){e.f=e.f&rg|t}function ac(e){e.f&gn||e.deps===null?ot(e,dt):ot(e,jn)}function Tf(e){if(e!==null)for(const t of e)!(t.f&_t)||!(t.f&qr)||(t.f^=qr,Tf(t.deps))}function Rf(e,t,n){e.f&yt?t.add(e):e.f&jn&&n.add(e),Tf(e.deps),ot(e,dt)}function Pf(e,t,n){if(e==null)return t(void 0),Ft;const r=Oe(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}function sg(e){let t;return Pf(e,n=>t=n)(),t}let il=!1,Ys=!1,ll=Symbol();function ag(e,t,n){const r=n[t]??={store:null,source:ni(void 0),unsubscribe:Ft};if(r.store!==e&&!(ll in n))if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=Ft;else{var s=!0;r.unsubscribe=Pf(e,o=>{s?r.source.v=o:b(r.source,o)}),s=!1}return e&&ll in n?sg(e):a(r.source)}function og(e,t,n){let r=n[t];return r&&r.store!==e&&(r.unsubscribe(),r.unsubscribe=Ft),e}function Lf(e,t){return ei(e,t),t}function ig(e,t){var n=e[t];n.store!==null&&Lf(n.store,n.source.v)}function lg(){const e={};function t(){cn(()=>{for(var n in e)e[n].unsubscribe();Or(e,ll,{enumerable:!1,value:!0})})}return[e,t]}function ei(e,t){il=!0;try{e.set(t)}finally{il=!1}}function cg(e,t,n){return ei(e,n),t}function ug(e,t,n=1){return ei(e,t+n),t}function dg(e,t,n=1){const r=t+n;return ei(e,r),r}function fg(){Ys=!0}function Df(e){var t=Ys;try{return Ys=!1,[e(),Ys]}finally{Ys=t}}const $n=new Set;let je=null,Lt=null,cl=null,fs=!1,Di=!1,ls=null,ro=null;var Su=0;let vg=1;class wn{id=vg++;current=new Map;previous=new Map;#e=new Set;#t=new Set;#n=new Set;#r=new Map;#s=new Map;#o=null;#a=[];#i=[];#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)ot(s,yt),n(s);for(s of r.m)ot(s,jn),n(s)}this.#f.add(t)}#p(){if(Su++>1e3&&($n.delete(this),hg()),!this.#d()){for(const l of this.#l)this.#u.delete(l),ot(l,yt),this.schedule(l);for(const l of this.#u)ot(l,jn),this.schedule(l)}const t=this.#a;this.#a=[],this.apply();var n=ls=[],r=[],s=ro=[];for(const l of t)try{this.#b(l,n,r)}catch(c){throw Of(l),c}if(je=null,s.length>0){var o=wn.ensure();for(const l of s)o.schedule(l)}if(ls=null,ro=null,this.#d()||this.#g()){this.#m(r),this.#m(n);for(const[l,c]of this.#c)zf(l,c)}else{this.#r.size===0&&$n.delete(this),this.#l.clear(),this.#u.clear();for(const l of this.#e)l(this);this.#e.clear(),Iu(r),Iu(n),this.#o?.resolve()}var i=je;if(this.#a.length>0){const l=i??=this;l.#a.push(...this.#a.filter(c=>!l.#a.includes(c)))}i!==null&&($n.add(i),i.#p())}#b(t,n,r){t.f^=dt;for(var s=t.first;s!==null;){var o=s.f,i=(o&(Mn|or))!==0,l=i&&(o&dt)!==0,c=l||(o&Dt)!==0||this.#c.has(s);if(!c&&s.fn!==null){i?s.f^=dt:o&Nr?n.push(s):Ds(s)&&(o&Ln&&this.#u.add(s),Hr(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)Rf(t[n],this.#l,this.#u)}capture(t,n,r=!1){t.v!==rt&&!this.previous.has(t)&&this.previous.set(t,t.v),t.f&mr||(this.current.set(t,[n,r]),Lt?.set(t,n)),this.is_fork||(t.v=n)}activate(){je=this}deactivate(){je=null,Lt=null}flush(){try{Di=!0,je=this,this.#p()}finally{Su=0,cl=null,ls=null,ro=null,Di=!1,je=null,Lt=null,Pr.clear()}}discard(){for(const t of this.#t)t(this);this.#t.clear(),this.#n.clear(),$n.delete(this)}register_created_effect(t){this.#i.push(t)}#y(){for(const d of $n){var t=d.id<this.id,n=[];for(const[f,[v,m]]of this.current){if(d.current.has(f)){var r=d.current.get(f)[0];if(t&&v!==r)d.current.set(f,[v,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,v=>{v.f&(Ln|ys)?d.schedule(v):d.#m([v])});d.activate();var o=new Set,i=new Map;for(var l of n)Mf(l,s,o,i);i=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.#i)!(f.f&(Ut|Dt|oa))&&oc(f,c,i)&&(f.f&(ys|Ln)?(ot(f,yt),d.schedule(f)):d.#l.add(f));if(d.#a.length>0){d.apply();for(var u of d.#a)d.#b(u,[],[]);d.#a=[]}d.deactivate()}}for(const d of $n)d.#v.has(this)&&(d.#v.delete(this),d.#v.size===0&&!d.#d()&&(d.activate(),d.#p()))}increment(t,n){let r=this.#r.get(n)??0;if(this.#r.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.#r.get(n)??0;if(s===1?this.#r.delete(n):this.#r.set(n,s-1),t){let o=this.#s.get(n)??0;o===1?this.#s.delete(n):this.#s.set(n,o-1)}this.#h||r||(this.#h=!0,Mt(()=>{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.#o??=df()).promise}static ensure(){if(je===null){const t=je=new wn;Di||($n.add(je),fs||Mt(()=>{je===t&&t.flush()}))}return je}apply(){{Lt=null;return}}schedule(t){if(cl=t,t.b?.is_pending&&t.f&(Nr|Ea|ec)&&!(t.f&ur)){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var r=n.f;if(ls!==null&&n===Pe&&(Be===null||!(Be.f&_t))&&!il)return;if(r&(or|Mn)){if(!(r&dt))return;n.f^=dt}}this.#a.push(n)}}function gr(e){var t=fs;fs=!0;try{var n;for(e&&(je!==null&&!je.is_fork&&je.flush(),n=e());;){if(ng(),je===null)return n;je.flush()}}finally{fs=t}}function hg(){try{xb()}catch(e){Wn(e,cl)}}let er=null;function Iu(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&(Ut|Dt))&&Ds(r)&&(er=new Set,Hr(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&av(r),er?.size>0)){Pr.clear();for(const s of er){if(s.f&(Ut|Dt))continue;const o=[s];let i=s.parent;for(;i!==null;)er.has(i)&&(er.delete(i),o.push(i)),i=i.parent;for(let l=o.length-1;l>=0;l--){const c=o[l];c.f&(Ut|Dt)||Hr(c)}}er.clear()}}er=null}}function Mf(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(const s of e.reactions){const o=s.f;o&_t?Mf(s,t,n,r):o&(ys|Ln)&&!(o&yt)&&oc(s,t,r)&&(ot(s,yt),ic(s))}}function jf(e,t){if(e.reactions!==null)for(const n of e.reactions){const r=n.f;r&_t?jf(n,t):r&oa&&(ot(n,yt),t.add(n))}}function oc(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(gs.call(t,s))return!0;if(s.f&_t&&oc(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function ic(e){je.schedule(e)}let bo=[];function pg(){gr(()=>{const e=bo;bo=[];for(const t of e)Ur(t)})}function mg(e){var t=Yt(0),n=!0,r=void 0;return a(t),tv(()=>{if(n){var s=Lt;try{Lt=null,r=e()}finally{Lt=s}return}bo.length===0&&Mt(pg),bo.push(t)}),n=!1,r}function zf(e,t){if(!(e.f&Mn&&e.f&dt)){e.f&yt?t.d.push(e):e.f&jn&&t.m.push(e),ot(e,dt);for(var n=e.first;n!==null;)zf(n,t),n=n.next}}function Of(e){ot(e,dt);for(var t=e.first;t!==null;)Of(t),t=t.next}function bg(e){bf(),je!==null&&Ib();var t=wn.ensure();t.is_fork=!0,Lt=new Map;var n=!1,r=t.settled();return gr(e),{commit:async()=>{if(n){await r;return}$n.has(t)||Sb(),n=!0,t.is_fork=!1;for(var[s,[o]]of t.current)s.v=o,s.wv=yo();t.activate(),t.run_fork_commit_callbacks(),t.deactivate(),gr(()=>{var i=new Set;for(var l of t.current.keys())jf(l,i);Ag(i),Hf()}),t.flush(),await r},discard:()=>{for(var s of t.current.keys())s.wv=yo();!n&&$n.has(t)&&t.discard()}}}function gg(e){let t=0,n=Yt(0),r;return()=>{Da()&&(a(n),lt(()=>(t===0&&(r=Oe(()=>e(()=>Un(n)))),t+=1,()=>{Mt(()=>{t-=1,t===0&&(r?.(),r=void 0,Un(n))})})))}}var yg=zn|wr;function Nf(e,t,n,r){new _g(e,t,n,r)}class _g{parent;is_pending=!1;transform_error;#e;#t=ve?Re:null;#n;#r;#s;#o=null;#a=null;#i=null;#l=null;#u=0;#c=0;#f=!1;#h=new Set;#v=new Set;#d=null;#g=gg(()=>(this.#d=Yt(this.#u),()=>{this.#d=null}));constructor(t,n,r,s){this.#e=t,this.#n=n,this.#r=o=>{var i=Pe;i.b=this,i.f|=sl,r(o)},this.parent=Pe.b,this.transform_error=s??this.parent?.transform_error??(o=>o),this.#s=Jn(()=>{if(ve){const o=this.#t;zt();const i=o.data===Xo;if(o.data.startsWith(yu)){const c=JSON.parse(o.data.slice(yu.length));this.#b(c)}else i?this.#m():this.#p()}else this.#y()},yg),ve&&(this.#e=Re)}#p(){try{this.#o=Rt(()=>this.#r(this.#e))}catch(t){this.error(t)}}#b(t){const n=this.#n.failed;n&&(this.#i=Rt(()=>{n(this.#e,()=>t,()=>()=>{})}))}#m(){const t=this.#n.pending;t&&(this.is_pending=!0,this.#a=Rt(()=>t(this.#e)),Mt(()=>{var n=this.#l=document.createDocumentFragment(),r=kt();n.append(r),this.#o=this.#w(()=>Rt(()=>this.#r(r))),this.#c===0&&(this.#e.before(n),this.#l=null,Lr(this.#a,()=>{this.#a=null}),this.#_(je))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#c=0,this.#u=0,this.#o=Rt(()=>{this.#r(this.#e)}),this.#c>0){var t=this.#l=document.createDocumentFragment();mc(this.#o,t);const n=this.#n.pending;this.#a=Rt(()=>n(this.#e))}else this.#_(je)}catch(n){this.error(n)}}#_(t){this.is_pending=!1,t.transfer_effects(this.#h,this.#v)}defer_effect(t){Rf(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=Pe,r=Be,s=We;At(this.#s),Xt(this.#s),_s(this.#s.ctx);try{return wn.ensure(),t()}catch(o){return Af(o),null}finally{At(n),Xt(r),_s(s)}}#k(t,n){if(!this.has_pending_snippet()){this.parent&&this.parent.#k(t,n);return}this.#c+=t,this.#c===0&&(this.#_(n),this.#a&&Lr(this.#a,()=>{this.#a=null}),this.#l&&(this.#e.before(this.#l),this.#l=null))}update_pending_count(t,n){this.#k(t,n),this.#u+=t,!(!this.#d||this.#f)&&(this.#f=!0,Mt(()=>{this.#f=!1,this.#d&&Xn(this.#d,this.#u)}))}get_effect_pending(){return this.#g(),a(this.#d)}error(t){if(!this.#n.onerror&&!this.#n.failed)throw t;je?.is_fork?(this.#o&&je.skip_effect(this.#o),this.#a&&je.skip_effect(this.#a),this.#i&&je.skip_effect(this.#i),je.on_fork_commit(()=>{this.#x(t)})):this.#x(t)}#x(t){this.#o&&(ht(this.#o),this.#o=null),this.#a&&(ht(this.#a),this.#a=null),this.#i&&(ht(this.#i),this.#i=null),ve&&(Je(this.#t),Wt(),Je(Fr()));var n=this.#n.onerror;let r=this.#n.failed;var s=!1,o=!1;const i=()=>{if(s){Vb();return}s=!0,o&&Lb(),this.#i!==null&&Lr(this.#i,()=>{this.#i=null}),this.#w(()=>{this.#y()})},l=c=>{try{o=!0,n?.(c,i),o=!1}catch(u){Wn(u,this.#s&&this.#s.parent)}r&&(this.#i=this.#w(()=>{try{return Rt(()=>{var u=Pe;u.b=this,u.f|=sl,r(this.#e,()=>c,()=>i)})}catch(u){return Wn(u,this.#s.parent),null}}))};Mt(()=>{var c;try{c=this.transform_error(t)}catch(u){Wn(u,this.#s&&this.#s.parent);return}c!==null&&typeof c=="object"&&typeof c.then=="function"?c.then(l,u=>Wn(u,this.#s&&this.#s.parent)):l(c)})}}function wg(){Pe===null&&kb();var e=Pe.b;return e===null?0:e.get_effect_pending()}function Ta(e,t,n,r){const s=Pa;var o=e.filter(v=>!v.settled);if(n.length===0&&o.length===0){r(t.map(s));return}var i=Pe,l=ti(),c=o.length===1?o[0].promise:o.length>1?Promise.all(o.map(v=>v.promise)):null;function u(v){l();try{r(v)}catch(m){i.f&Ut||Wn(m,i)}Vr()}if(n.length===0){c.then(()=>u(t.map(s)));return}var d=Ra();function f(){Promise.all(n.map(v=>Ff(v))).then(v=>u([...t.map(s),...v])).catch(v=>Wn(v,i)).finally(()=>d())}c?c.then(()=>{l(),f(),Vr()}):f()}function qf(e,t){Ta(e,[],[],t)}function ti(){var e=Pe,t=Be,n=We,r=je;return function(o=!0){At(e),Xt(t),_s(n),o&&!(e.f&Ut)&&(r?.activate(),r?.apply())}}async function kg(e){var t=ti(),n=await e;return()=>(t(),n)}async function ul(e){var t=$s;queueMicrotask(()=>{$s===t&&so(null)});var n=await e;return()=>(so(t),queueMicrotask(()=>{$s===t&&so(null)}),n)}async function*xg(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:o}=(await ul(t.next()))();if(s){n=!0;break}var r=$s;yield o,so(r)}}finally{if(!n&&t.return!==void 0)return(await ul(t.return()))().value}}function Vr(e=!0){At(null),Xt(null),_s(null),e&&je?.deactivate()}function Sg(e){const t=ti(),n=Ra();var r=Pe,s=null;const o=u=>{s={error:u},fl(r)||Wn(u,r)};var i=Promise.resolve(e[0]()).catch(o),l={promise:i,settled:!1},c=[l];i.finally(()=>{l.settled=!0,Vr()});for(const u of e.slice(1)){i=i.then(()=>{if(t(),s)throw s.error;if(fl(r))throw Vn;return u()}).catch(o);const d={promise:i,settled:!1};c.push(d),i.finally(()=>{d.settled=!0,Vr()})}return i.then(()=>Promise.resolve()).finally(()=>n()),c}function Ig(e){return Promise.all(e.map(t=>t.promise))}function Ra(){var e=Pe,t=e.b,n=je,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 $s=null;function so(e){$s=e}function Pa(e){var t=_t|yt;return Pe!==null&&(Pe.f|=wr),{ctx:We,deps:null,effects:null,equals:_f,f:t,fn:e,reactions:null,rv:0,v:rt,wv:0,parent:Pe,ac:null}}function Ff(e,t,n){let r=Pe;r===null&&pb();var s=void 0,o=Yt(rt),i=!Be,l=new Map;return qg(()=>{var c=Pe,u=df();s=u.promise;try{Promise.resolve(e()).then(u.resolve,u.reject).finally(Vr)}catch(m){u.reject(m),Vr()}var d=je;if(i){if(c.f&ur)var f=Ra();if(r.b.is_rendered())l.get(d)?.reject(Vn),l.delete(d);else{for(const m of l.values())m.reject(Vn);l.clear()}l.set(d,u)}const v=(m,S=void 0)=>{if(f){var y=S===Vn;f(y)}if(!(S===Vn||c.f&Ut)){if(d.activate(),S)o.f|=mr,Xn(o,S);else{o.f&mr&&(o.f^=mr),Xn(o,m);for(const[w,I]of l){if(l.delete(w),w===d)break;I.reject(Vn)}}d.deactivate()}};u.promise.then(v,m=>v(null,m||"unknown"))}),cn(()=>{for(const c of l.values())c.reject(Vn)}),new Promise(c=>{function u(d){function f(){d===s?c(o):u(s)}d.then(f,f)}u(s)})}function B(e){const t=Pa(e);return lv(t),t}function lc(e){const t=Pa(e);return t.equals=kf,t}function Eg(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)ht(t[n])}}function cc(e){var t,n=Pe,r=e.parent;if(!ir&&r!==null&&r.f&(Ut|Dt))return zb(),e.v;At(r);try{e.f&=~qr,Eg(e),t=dv(e)}finally{At(n)}return t}function Bf(e){var t=cc(e);if(!e.equals(t)&&(e.wv=yo(),(!je?.is_fork||e.deps===null)&&(je!==null?je.capture(e,t,!0):e.v=t,e.deps===null))){ot(e,dt);return}ir||(Lt!==null?(Da()||je?.is_fork)&&Lt.set(e,t):ac(e))}function Cg(e){if(e.effects!==null)for(const t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(Vn),t.teardown=Ft,t.ac=null,la(t,0),hc(t))}function Vf(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&Hr(t)}let go=new Set;const Pr=new Map;function Ag(e){go=e}let Uf=!1;function Yt(e,t){var n={f:0,v:e,reactions:null,equals:_f,rv:0,wv:0};return n}function q(e,t){const n=Yt(e);return lv(n),n}function ni(e,t=!1,n=!0){const r=Yt(e);return t||(r.equals=kf),r}function Tg(e,t){return b(e,Oe(()=>a(e))),t}function b(e,t,n=!1){Be!==null&&(!Tn||Be.f&oa)&&Ef()&&Be.f&(_t|Ln|ys|oa)&&(yn===null||!gs.call(yn,e))&&Pb();let r=n?he(t):t;return Xn(e,r,ro)}function Xn(e,t,n=null){if(!e.equals(t)){Pr.set(e,ir?t:e.v);var r=wn.ensure();if(r.capture(e,t),e.f&_t){const s=e;e.f&yt&&cc(s),Lt===null&&ac(s)}e.wv=yo(),Kf(e,yt,n),Pe!==null&&Pe.f&dt&&!(Pe.f&(Mn|or))&&(pn===null?Hg([e]):pn.push(e)),!r.is_fork&&go.size>0&&!Uf&&Hf()}return t}function Hf(){Uf=!1;for(const e of go)e.f&dt&&ot(e,jn),Ds(e)&&Hr(e);go.clear()}function Ur(e,t=1){var n=a(e),r=t===1?n++:n--;return b(e,n),r}function Rg(e,t=1){var n=a(e);return b(e,t===1?++n:--n)}function Un(e){b(e,e.v+1)}function Kf(e,t,n){var r=e.reactions;if(r!==null)for(var s=r.length,o=0;o<s;o++){var i=r[o],l=i.f,c=(l&yt)===0;if(c&&ot(i,t),l&_t){var u=i;Lt?.delete(u),l&qr||(l&gn&&(i.f|=qr),Kf(u,jn,n))}else if(c){var d=i;l&Ln&&er!==null&&er.add(d),n!==null?n.push(d):ic(d)}}}function he(e){if(typeof e!="object"||e===null||Et in e)return e;const t=Zo(e);if(t!==uf&&t!==nb)return e;var n=new Map,r=Rs(e),s=q(0),o=nr,i=l=>{if(nr===o)return l();var c=Be,u=nr;Xt(null),Au(o);var d=l();return Xt(c),Au(u),d};return r&&n.set("length",q(e.length)),new Proxy(e,{defineProperty(l,c,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&Tb();var d=n.get(c);return d===void 0?i(()=>{var f=q(u.value);return n.set(c,f),f}):b(d,u.value,!0),!0},deleteProperty(l,c){var u=n.get(c);if(u===void 0){if(c in l){const d=i(()=>q(rt));n.set(c,d),Un(s)}}else b(u,rt),Un(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||Pn(l,c)?.writable)&&(d=i(()=>{var m=he(f?l[c]:rt),S=q(m);return S}),n.set(c,d)),d!==void 0){var v=a(d);return v===rt?void 0:v}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=a(d))}else if(u===void 0){var f=n.get(c),v=f?.v;if(f!==void 0&&v!==rt)return{enumerable:!0,configurable:!0,value:v,writable:!0}}return u},has(l,c){if(c===Et)return!0;var u=n.get(c),d=u!==void 0&&u.v!==rt||Reflect.has(l,c);if(u!==void 0||Pe!==null&&(!d||Pn(l,c)?.writable)){u===void 0&&(u=i(()=>{var v=d?he(l[c]):rt,m=q(v);return m}),n.set(c,u));var f=a(u);if(f===rt)return!1}return d},set(l,c,u,d){var f=n.get(c),v=c in l;if(r&&c==="length")for(var m=u;m<f.v;m+=1){var S=n.get(m+"");S!==void 0?b(S,rt):m in l&&(S=i(()=>q(rt)),n.set(m+"",S))}if(f===void 0)(!v||Pn(l,c)?.writable)&&(f=i(()=>q(void 0)),b(f,he(u)),n.set(c,f));else{v=f.v!==rt;var y=i(()=>he(u));b(f,y)}var w=Reflect.getOwnPropertyDescriptor(l,c);if(w?.set&&w.set.call(d,u),!v){if(r&&typeof c=="string"){var I=n.get("length"),x=Number(c);Number.isInteger(x)&&x>=I.v&&b(I,x+1)}Un(s)}return!0},ownKeys(l){a(s);var c=Reflect.ownKeys(l).filter(f=>{var v=n.get(f);return v===void 0||v.v!==rt});for(var[u,d]of n)d.v!==rt&&!(u in l)&&c.push(u);return c},setPrototypeOf(){Rb()}})}function ws(e){try{if(e!==null&&typeof e=="object"&&Et in e)return e[Et]}catch{}return e}function Wf(e,t){return Object.is(ws(e),ws(t))}function Pg(e,t,n=!0){try{e===t!=(ws(e)===ws(t))&&yf(n?"===":"!==")}catch{}return e===t===n}function Lg(e,t,n=!0){return e==t!=(ws(e)==ws(t))&&yf(),e==t===n}var ia,Yf,uc,Xf,Gf;function dl(){if(ia===void 0){ia=window,Yf=document,uc=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Xf=Pn(t,"firstChild").get,Gf=Pn(t,"nextSibling").get,_u(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),_u(n)&&(n.__t=void 0)}}function kt(e=""){return document.createTextNode(e)}function st(e){return Xf.call(e)}function an(e){return Gf.call(e)}function p(e,t){if(!ve)return st(e);var n=st(Re);if(n===null)n=Re.appendChild(kt());else if(t&&n.nodeType!==Ca){var r=kt();return n?.before(r),Je(r),r}return t&&ri(n),Je(n),n}function ke(e,t=!1){if(!ve){var n=st(e);return n instanceof Comment&&n.data===""?an(n):n}if(t){if(Re?.nodeType!==Ca){var r=kt();return Re?.before(r),Je(r),r}ri(Re)}return Re}function g(e,t=1,n=!1){let r=ve?Re:e;for(var s;t--;)s=r,r=an(r);if(!ve)return r;if(n){if(r?.nodeType!==Ca){var o=kt();return r===null?s?.after(o):r.before(o),Je(o),o}ri(r)}return Je(r),r}function dc(e){e.textContent=""}function Jf(){return!1}function kr(e,t,n){let r=n?{is:n}:void 0;return document.createElementNS(t??af,e,r)}function Dg(){return document.createDocumentFragment()}function Zf(e=""){return document.createComment(e)}function Mg(e,t,n=""){if(t.startsWith("xlink:")){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n);return}return e.setAttribute(t,n)}function ri(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===Ca;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function br(e,t){if(t){const n=document.body;e.autofocus=!0,Mt(()=>{document.activeElement===n&&e.focus()})}}function fc(e){ve&&st(e)!==null&&dc(e)}let Eu=!1;function Qf(){Eu||(Eu=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function Gt(e,t,n,r=!0){r&&n();for(var s of t)e.addEventListener(s,n);cn(()=>{for(var o of t)e.removeEventListener(o,n)})}function xr(e){var t=Be,n=Pe;Xt(null),At(null);try{return e()}finally{Xt(t),At(n)}}function La(e,t,n,r=n){e.addEventListener(t,()=>xr(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),Qf()}function vc(e){Pe===null&&(Be===null&&wb(),_b()),ir&&yb()}function jg(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function Jt(e,t){var n=Pe;n!==null&&n.f&Dt&&(e|=Dt);var r={ctx:We,deps:null,nodes:null,f:e|yt|gn,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};je?.register_created_effect(r);var s=r;if(e&Nr)ls!==null?ls.push(r):wn.ensure().schedule(r);else if(t!==null){try{Hr(r)}catch(i){throw ht(r),i}s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&!(s.f&wr)&&(s=s.first,e&Ln&&e&zn&&s!==null&&(s.f|=zn))}if(s!==null&&(s.parent=n,n!==null&&jg(s,n),Be!==null&&Be.f&_t&&!(e&or))){var o=Be;(o.effects??=[]).push(s)}return r}function Da(){return Be!==null&&!Tn}function cn(e){const t=Jt(Ea,null);return ot(t,dt),t.teardown=e,t}function Ne(e){vc();var t=Pe.f,n=!Be&&(t&Mn)!==0&&(t&ur)===0;if(n){var r=We;(r.e??=[]).push(e)}else return $f(e)}function $f(e){return Jt(Nr|hf,e)}function ev(e){return vc(),Jt(Ea|hf,e)}function tv(e){return Jt(oa,e)}function Ls(e){wn.ensure();const t=Jt(or|wr,e);return()=>{ht(t)}}function zg(e){wn.ensure();const t=Jt(or|wr,e);return(n={})=>new Promise(r=>{n.outro?Lr(t,()=>{ht(t),r(void 0)}):(ht(t),r(void 0))})}function on(e){return Jt(Nr,e)}function Og(e,t){var n=We,r={effect:null,ran:!1,deps:e};n.l.$.push(r),r.effect=lt(()=>{if(e(),!r.ran){r.ran=!0;var s=Pe;try{At(s.parent),Oe(t)}finally{At(s)}}})}function Ng(){var e=We;lt(()=>{for(var t of e.l.$){t.deps();var n=t.effect;n.f&dt&&n.deps!==null&&ot(n,jn),Ds(n)&&Hr(n),t.ran=!1}})}function qg(e){return Jt(ys|wr,e)}function lt(e,t=0){return Jt(Ea|t,e)}function N(e,t=[],n=[],r=[]){Ta(r,t,n,s=>{Jt(Ea,()=>e(...s.map(a)))})}function Fg(e,t=[],n=[],r=[]){if(n.length>0||r.length>0)var s=Ra();Ta(r,t,n,o=>{Jt(Nr,()=>e(...o.map(a))),s&&s()})}function Jn(e,t=0){var n=Jt(Ln|t,e);return n}function nv(e,t=0){var n=Jt(ec|t,e);return n}function Rt(e){return Jt(Mn|wr,e)}function rv(e){var t=e.teardown;if(t!==null){const n=ir,r=Be;Cu(!0),Xt(null);try{t.call(null)}finally{Cu(n),Xt(r)}}}function hc(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&xr(()=>{s.abort(Vn)});var r=n.next;n.f&or?n.parent=null:ht(n,t),n=r}}function Bg(e){for(var t=e.first;t!==null;){var n=t.next;t.f&Mn||ht(t),t=n}}function ht(e,t=!0){var n=!1;(t||e.f&vf)&&e.nodes!==null&&e.nodes.end!==null&&(sv(e.nodes.start,e.nodes.end),n=!0),ot(e,al),hc(e,t&&!n),la(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const o of r)o.stop();rv(e),e.f^=al,e.f|=Ut;var s=e.parent;s!==null&&s.first!==null&&av(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function sv(e,t){for(;e!==null;){var n=e===t?null:an(e);e.remove(),e=n}}function av(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 Lr(e,t,n=!0){var r=[];ov(e,r,!0);var s=()=>{n&&ht(e),t&&t()},o=r.length;if(o>0){var i=()=>--o||s();for(var l of r)l.out(i)}else s()}function ov(e,t,n){if(!(e.f&Dt)){e.f^=Dt;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 o=s.next;if(!(s.f&or)){var i=(s.f&zn)!==0||(s.f&Mn)!==0&&(e.f&Ln)!==0;ov(s,t,i?n:!1)}s=o}}}function pc(e){iv(e,!0)}function iv(e,t){if(e.f&Dt){e.f^=Dt,e.f&dt||(ot(e,yt),wn.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&zn)!==0||(n.f&Mn)!==0;iv(n,s?t:!1),n=r}var o=e.nodes&&e.nodes.t;if(o!==null)for(const i of o)(i.is_global||t)&&i.in()}}function fl(e=Pe){return(e.f&Ut)!==0}function mc(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:an(n);t.append(n),n=s}}let as=null;function Vg(e){var t=as;try{if(as=new Set,Oe(e),t!==null)for(var n of as)t.add(n);return as}finally{as=t}}function Ug(e){for(var t of Vg(e))Xn(t,t.v)}let ao=!1,ir=!1;function Cu(e){ir=e}let Be=null,Tn=!1;function Xt(e){Be=e}let Pe=null;function At(e){Pe=e}let yn=null;function lv(e){Be!==null&&(yn===null?yn=[e]:yn.push(e))}let Nt=null,en=0,pn=null;function Hg(e){pn=e}let cv=1,Ar=0,nr=Ar;function Au(e){nr=e}function yo(){return++cv}function Ds(e){var t=e.f;if(t&yt)return!0;if(t&_t&&(e.f&=~qr),t&jn){for(var n=e.deps,r=n.length,s=0;s<r;s++){var o=n[s];if(Ds(o)&&Bf(o),o.wv>e.wv)return!0}t&gn&&Lt===null&&ot(e,dt)}return!1}function uv(e,t,n=!0){var r=e.reactions;if(r!==null&&!(yn!==null&&gs.call(yn,e)))for(var s=0;s<r.length;s++){var o=r[s];o.f&_t?uv(o,t,!1):t===o&&(n?ot(o,yt):o.f&dt&&ot(o,jn),ic(o))}}function dv(e){var t=Nt,n=en,r=pn,s=Be,o=yn,i=We,l=Tn,c=nr,u=e.f;Nt=null,en=0,pn=null,Be=u&(Mn|or)?null:e,yn=null,_s(e.ctx),Tn=!1,nr=++Ar,e.ac!==null&&(xr(()=>{e.ac.abort(Vn)}),e.ac=null);try{e.f|=ol;var d=e.fn,f=d();e.f|=ur;var v=e.deps,m=je?.is_fork;if(Nt!==null){var S;if(m||la(e,en),v!==null&&en>0)for(v.length=en+Nt.length,S=0;S<Nt.length;S++)v[en+S]=Nt[S];else e.deps=v=Nt;if(Da()&&e.f&gn)for(S=en;S<v.length;S++)(v[S].reactions??=[]).push(e)}else!m&&v!==null&&en<v.length&&(la(e,en),v.length=en);if(Ef()&&pn!==null&&!Tn&&v!==null&&!(e.f&(_t|jn|yt)))for(S=0;S<pn.length;S++)uv(pn[S],e);if(s!==null&&s!==e){if(Ar++,s.deps!==null)for(let y=0;y<n;y+=1)s.deps[y].rv=Ar;if(t!==null)for(const y of t)y.rv=Ar;pn!==null&&(r===null?r=pn:r.push(...pn))}return e.f&mr&&(e.f^=mr),f}catch(y){return Af(y)}finally{e.f^=ol,Nt=t,en=n,pn=r,Be=s,yn=o,_s(i),Tn=l,nr=c}}function Kg(e,t){let n=t.reactions;if(n!==null){var r=tb.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&_t&&(Nt===null||!gs.call(Nt,t))){var o=t;o.f&gn&&(o.f^=gn,o.f&=~qr),o.v!==rt&&ac(o),Cg(o),la(o,0)}}function la(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)Kg(e,n[r])}function Hr(e){var t=e.f;if(!(t&Ut)){ot(e,dt);var n=Pe,r=ao;Pe=e,ao=!0;try{t&(Ln|ec)?Bg(e):hc(e),rv(e);var s=dv(e);e.teardown=typeof s=="function"?s:null,e.wv=cv;var o;lf&&Hb&&e.f&yt&&e.deps}finally{ao=r,Pe=n}}}async function Ma(){await Promise.resolve(),gr()}function Wg(){return wn.ensure().settled()}function a(e){var t=e.f,n=(t&_t)!==0;if(as?.add(e),Be!==null&&!Tn){var r=Pe!==null&&(Pe.f&Ut)!==0;if(!r&&(yn===null||!gs.call(yn,e))){var s=Be.deps;if(Be.f&ol)e.rv<Ar&&(e.rv=Ar,Nt===null&&s!==null&&s[en]===e?en++:Nt===null?Nt=[e]:Nt.push(e));else{(Be.deps??=[]).push(e);var o=e.reactions;o===null?e.reactions=[Be]:gs.call(o,Be)||o.push(Be)}}}if(ir&&Pr.has(e))return Pr.get(e);if(n){var i=e;if(ir){var l=i.v;return(!(i.f&dt)&&i.reactions!==null||vv(i))&&(l=cc(i)),Pr.set(i,l),l}var c=(i.f&gn)===0&&!Tn&&Be!==null&&(ao||(Be.f&gn)!==0),u=(i.f&ur)===0;Ds(i)&&(c&&(i.f|=gn),Bf(i)),c&&!u&&(Vf(i),fv(i))}if(Lt?.has(e))return Lt.get(e);if(e.f&mr)throw e.v;return e.v}function fv(e){if(e.f|=gn,e.deps!==null)for(const t of e.deps)(t.reactions??=[]).push(e),t.f&_t&&!(t.f&gn)&&(Vf(t),fv(t))}function vv(e){if(e.v===rt)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(Pr.has(t)||t.f&_t&&vv(t))return!0;return!1}function Yg(e){return e&&a(e)}function Oe(e){var t=Tn;try{return Tn=!0,e()}finally{Tn=t}}function bc(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if(Et in e)_o(e);else if(!Array.isArray(e))for(let t in e){const n=e[t];typeof n=="object"&&n&&Et in n&&_o(n)}}}function _o(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{_o(e[r],t)}catch{}const n=Zo(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){const r=cf(n);for(let s in r){const o=r[s].get;if(o)try{o.call(e)}catch{}}}}}function Xg(e,t){if(bf(),ve){const n=window.__svelte?.h;if(n?.has(e))return n.get(e);Nb()}return t()}const Xs=Symbol("events"),hv=new Set,vl=new Set;function Gg(e){if(!ve)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 pv(e,t,n,r={}){function s(o){if(r.capture||hl.call(t,o),!o.cancelBubble)return xr(()=>n?.call(this,o))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?Mt(()=>{t.addEventListener(e,s,r)}):t.addEventListener(e,s,r),s}function Ke(e,t,n,r,s){var o={capture:r,passive:s},i=pv(e,t,n,o);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&cn(()=>{t.removeEventListener(e,i,o)})}function K(e,t,n){(t[Xs]??={})[e]=n}function _e(e){for(var t=0;t<e.length;t++)hv.add(e[t]);for(var n of vl)n(e)}let Tu=null;function hl(e){var t=this,n=t.ownerDocument,r=e.type,s=e.composedPath?.()||[],o=s[0]||e.target;Tu=e;var i=0,l=Tu===e&&e[Xs];if(l){var c=s.indexOf(l);if(c!==-1&&(t===document||t===window)){e[Xs]=t;return}var u=s.indexOf(t);if(u===-1)return;c<=u&&(i=c)}if(o=s[i]||e.target,o!==t){Or(e,"currentTarget",{configurable:!0,get(){return o||n}});var d=Be,f=Pe;Xt(null),At(null);try{for(var v,m=[];o!==null;){var S=o.assignedSlot||o.parentNode||o.host||null;try{var y=o[Xs]?.[r];y!=null&&(!o.disabled||e.target===o)&&y.call(o,e)}catch(w){v?m.push(w):v=w}if(e.cancelBubble||S===t||S===null)break;o=S}if(v){for(let w of m)queueMicrotask(()=>{throw w});throw v}}finally{e[Xs]=t,delete e.currentTarget,Xt(d),At(f)}}}function Jg(e,t,n,r,s,o=!1,i=!1){let l,c;try{l=e()}catch(u){c=u}if(typeof l!="function"&&(o||l!=null||c)){const u=r?.[tn];s?`${u}${s[0]}${s[1]}`:`${u}`;const d=n[0]?.eventPhase<Event.BUBBLING_PHASE?"capture":"";if(n[0]?.type+d,Ob(),c)throw c}l?.apply(t,n)}const Zg=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function mv(e){return Zg?.createHTML(e)??e}function gc(e){var t=kr("template");return t.innerHTML=mv(e.replaceAll("<!>","<!---->")),t.content}const Qg=Gr?"template":"TEMPLATE",$g=Gr?"script":"SCRIPT";function pt(e,t){var n=Pe;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function E(e,t){var n=(t&Ql)!==0,r=(t&sf)!==0,s,o=!e.startsWith("<!>");return()=>{if(ve)return pt(Re,null),Re;s===void 0&&(s=gc(o?e:"<!>"+e),n||(s=st(s)));var i=r||uc?document.importNode(s,!0):s.cloneNode(!0);if(n){var l=st(i),c=i.lastChild;pt(l,c)}else pt(i,i);return i}}function bv(e,t,n="svg"){var r=!e.startsWith("<!>"),s=(t&Ql)!==0,o=`<${n}>${r?e:"<!>"+e}</${n}>`,i;return()=>{if(ve)return pt(Re,null),Re;if(!i){var l=gc(o),c=st(l);if(s)for(i=document.createDocumentFragment();st(c);)i.appendChild(st(c));else i=st(c)}var u=i.cloneNode(!0);if(s){var d=st(u),f=u.lastChild;pt(d,f)}else pt(u,u);return u}}function yc(e,t){return bv(e,t,"svg")}function ey(e,t){return bv(e,t,"math")}function gv(e,t){var n=Dg();for(var r of e){if(typeof r=="string"){n.append(kt(r));continue}if(r===void 0||r[0][0]==="/"){n.append(Zf(r?r[0].slice(3):""));continue}const[l,c,...u]=r,d=l==="svg"?Ia:l==="math"?$l:t;var s=kr(l,d,c?.is);for(var o in c)Mg(s,o,c[o]);if(u.length>0){var i=s.nodeName===Qg?s.content:s;i.append(gv(u,s.nodeName==="foreignObject"?void 0:d))}n.append(s)}return n}function ty(e,t){var n=(t&Ql)!==0,r=(t&sf)!==0,s;return()=>{if(ve)return pt(Re,null),Re;if(s===void 0){const c=t&$m?Ia:t&eb?$l:void 0;s=gv(e,c),n||(s=st(s))}var o=r||uc?document.importNode(s,!0):s.cloneNode(!0);if(n){var i=st(o),l=o.lastChild;pt(i,l)}else pt(o,o);return o}}function ny(e){return()=>ry(e())}function ry(e){if(ve)return e;const t=e.nodeType===mf,n=e.nodeName===$g?[e]:e.querySelectorAll("script"),r=Pe;for(const o of n){const i=kr("script");for(var s of o.attributes)i.setAttribute(s.name,s.value);i.textContent=o.textContent,(t?e.firstChild===o:e===o)&&(r.nodes.start=i),(t?e.lastChild===o:e===o)&&(r.nodes.end=i),o.replaceWith(i)}return e}function Ht(e=""){if(!ve){var t=kt(e+"");return pt(t,t),t}var n=Re;return n.nodeType!==Ca?(n.before(n=kt()),Je(n)):ri(n),pt(n,n),n}function Ze(){if(ve)return pt(Re,null),Re;var e=document.createDocumentFragment(),t=document.createComment(""),n=kt();return e.append(t,n),pt(t,n),e}function k(e,t){if(ve){var n=Pe;(!(n.f&ur)||n.nodes.end===null)&&(n.nodes.end=Re),zt();return}e!==null&&e.before(t)}function sy(){if(ve&&Re&&Re.nodeType===dr&&Re.textContent?.startsWith("$")){const e=Re.textContent.substring(1);return zt(),e}return(window.__svelte??={}).uid??=1,`c${window.__svelte.uid++}`}const ay=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function oy(e){return ay.includes(e)||e.toLowerCase()==="!doctype"}function iy(e){return e.endsWith("capture")&&e!=="gotpointercapture"&&e!=="lostpointercapture"}const ly=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function cy(e){return ly.includes(e)}const uy={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 dy(e){return e=e.toLowerCase(),uy[e]??e}const fy=["touchstart","touchmove"];function vy(e){return fy.includes(e)}const hy=["textarea","script","style","title"];function py(e){return hy.includes(e)}function yv(e){return e?.replace(/\//g,"/​")}let wo=!0;function cs(e){wo=e}function z(e,t){var n=t==null?"":typeof t=="object"?`${t}`:t;n!==(e.__t??=e.nodeValue)&&(e.__t=n,e.nodeValue=`${n}`)}function at(e,t){return wv(e,t)}function _v(e,t){dl(),t.intro=t.intro??!1;const n=t.target,r=ve,s=Re;try{for(var o=st(n);o&&(o.nodeType!==dr||o.data!==Yo);)o=an(o);if(!o)throw zr;$e(!0),Je(o);const i=wv(e,{...t,anchor:o});return $e(!1),i}catch(i){if(i instanceof Error&&i.message.split(`
6
+ `).some(l=>l.startsWith("https://svelte.dev/e/")))throw i;return i!==zr&&console.warn("Failed to hydrate: ",i),t.recover===!1&&Cb(),dl(),dc(n),$e(!1),at(e,t)}finally{$e(r),Je(s)}}const Ga=new Map;function wv(e,{target:t,anchor:n,props:r={},events:s,context:o,intro:i=!0,transformError:l}){dl();var c=void 0,u=zg(()=>{var d=n??t.appendChild(kt());Nf(d,{pending:()=>{}},m=>{ce({});var S=We;if(o&&(S.c=o),s&&(r.$$events=s),ve&&pt(m,null),wo=i,c=e(m,r)||{},wo=!0,ve&&(Pe.nodes.end=Re,Re===null||Re.nodeType!==dr||Re.data!==Go))throw Aa(),zr;ue()},l);var f=new Set,v=m=>{for(var S=0;S<m.length;S++){var y=m[S];if(!f.has(y)){f.add(y);var w=vy(y);for(const _ of[t,document]){var I=Ga.get(_);I===void 0&&(I=new Map,Ga.set(_,I));var x=I.get(y);x===void 0?(_.addEventListener(y,hl,{passive:w}),I.set(y,1)):I.set(y,x+1)}}}};return v(Jo(hv)),vl.add(v),()=>{for(var m of f)for(const w of[t,document]){var S=Ga.get(w),y=S.get(m);--y==0?(w.removeEventListener(m,hl),S.delete(m),S.size===0&&Ga.delete(w)):S.set(m,y)}vl.delete(v),d!==n&&d.parentNode?.removeChild(d)}});return pl.set(c,u),c}let pl=new WeakMap;function ft(e,t){const n=pl.get(e);return n?(pl.delete(e),n(t)):Promise.resolve()}function my(e){const t=e();t&&oy(t)&&Kb()}function by(e){const t=e();t&&!(typeof t=="string")&&hb()}function gy(e,t){e!=null&&typeof e.subscribe!="function"&&vb()}function kv(e){return e.toString=()=>(fb(),""),e}class Ms{anchor;#e=new Map;#t=new Map;#n=new Map;#r=new Set;#s=!0;constructor(t,n=!0){this.anchor=t,this.#s=n}#o=t=>{if(this.#e.has(t)){var n=this.#e.get(t),r=this.#t.get(n);if(r)pc(r),this.#r.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[o,i]of this.#e){if(this.#e.delete(o),o===t)break;const l=this.#n.get(i);l&&(ht(l.effect),this.#n.delete(i))}for(const[o,i]of this.#t){if(o===n||this.#r.has(o))continue;const l=()=>{if(Array.from(this.#e.values()).includes(o)){var u=document.createDocumentFragment();mc(i,u),u.append(kt()),this.#n.set(o,{effect:i,fragment:u})}else ht(i);this.#r.delete(o),this.#t.delete(o)};this.#s||!r?(this.#r.add(o),Lr(i,l,!1)):l()}}};#a=t=>{this.#e.delete(t);const n=Array.from(this.#e.values());for(const[r,s]of this.#n)n.includes(r)||(ht(s.effect),this.#n.delete(r))};ensure(t,n){var r=je,s=Jf();if(n&&!this.#t.has(t)&&!this.#n.has(t))if(s){var o=document.createDocumentFragment(),i=kt();o.append(i),this.#n.set(t,{effect:Rt(()=>n(i)),fragment:o})}else this.#t.set(t,Rt(()=>n(this.anchor)));if(this.#e.set(r,t),s){for(const[l,c]of this.#t)l===t?r.unskip_effect(c):r.skip_effect(c);for(const[l,c]of this.#n)l===t?r.unskip_effect(c.effect):r.skip_effect(c.effect);r.oncommit(this.#o),r.ondiscard(this.#a)}else ve&&(this.anchor=Re),this.#o(r)}}function ln(e,t,...n){var r=new Ms(e);Jn(()=>{const s=t()??null;r.ensure(s,s&&(o=>s(o,...n)))},zn)}function yy(e,t){const n=(r,...s)=>{var o=nc;xu(e);try{return t(r,...s)}finally{xu(o)}};return kv(n),n}function _y(e){return(t,...n)=>{var r=e(...n),s;if(ve)s=Re,zt();else{var o=r.render().trim(),i=gc(o);s=st(i),t.before(s)}const l=r.setup?.(s);pt(s,s),typeof l=="function"&&cn(l)}}function wy(){return Be===null&&Eb(),(Be.ac??=new AbortController).signal}function _c(e){We===null&&Ps(),Ne(()=>{const t=Oe(e);if(typeof t=="function")return t})}function wc(e){We===null&&Ps(),_c(()=>()=>Oe(e))}function ky(e,t,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(e,{detail:t,bubbles:n,cancelable:r})}function xy(){const e=We;return e===null&&Ps(),(t,n,r)=>{const s=e.s.$$events?.[t];if(s){const o=Rs(s)?s.slice():[s],i=ky(t,n,r);for(const l of o)l.call(e.x,i);return!i.defaultPrevented}return!0}}function Sy(e){We===null&&Ps(),We.l===null&&gf(),xv(We).b.push(e)}function Iy(e){We===null&&Ps(),We.l===null&&gf(),xv(We).a.push(e)}function xv(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}const Sv=Object.freeze(Object.defineProperty({__proto__:null,afterUpdate:Iy,beforeUpdate:Sy,createContext:$b,createEventDispatcher:xy,createRawSnippet:_y,flushSync:gr,fork:bg,getAbortSignal:wy,getAllContexts:eg,getContext:rc,hasContext:If,hydratable:Xg,hydrate:_v,mount:at,onDestroy:wc,onMount:_c,setContext:sc,settled:Wg,tick:Ma,unmount:ft,untrack:Oe},Symbol.toStringTag,{value:"Module"}));function Ey(){return Symbol(of)}function Iv(e,t,n,r){return e!==t&&typeof t=="object"&&Et in t&&Db(n,yv(r)),e}function Cy(e,t,n,r,s){return Iv(n==="="?e[t]=r:n==="&&="?e[t]&&=r():n==="||="?e[t]||=r():n==="??="?e[t]??=r():null,Oe(()=>e[t]),t,s)}async function Ay(e,t,n,r,s){return Iv(n==="="?e[t]=await r:n==="&&="?e[t]&&=await r():n==="||="?e[t]||=await r():n==="??="?e[t]??=await r():null,Oe(()=>e[t]),t,s)}var Ru=new Map;function Ty(e){var t=Ru.get(e);if(t){for(const n of t)n.remove();Ru.delete(e)}}function Ry(e,t,n){return(...r)=>{const s=e(...r);var o=ve?s:s.nodeType===mf?s.firstChild:s;return Ev(o,t,n),s}}function Py(e,t,n){e.__svelte_meta={parent:no,loc:{file:t,line:n[0],column:n[1]}},n[2]&&Ev(e.firstChild,t,n[2])}function Ev(e,t,n){for(var r=0,s=0;e&&r<n.length;){if(ve&&e.nodeType===dr){var o=e;o.data[0]===Yo?s+=1:o.data[0]===Go&&(s-=1)}s===0&&e.nodeType===pf&&Py(e,t,n[r++]),e=e.nextSibling}}function Ly(e){const t=Yt(e);function n(r,s){let o={},i={},l,c=!1,u=r;return Jn(()=>{if(o!==(o=a(t))){if(l){for(var d in i)delete i[d];ht(l)}l=Rt(()=>{u=u[cb]??u,c&&cs(!1);var f=new.target?new o(u,s):o(u,s);f&&Object.defineProperties(i,Object.getOwnPropertyDescriptors(f)),c&&cs(!0)}),Pe.nodes=l.nodes}},zn),c=!0,ve&&(u=Re),i}return n[tn]=e[tn],n[rs]={fn:e,current:t,update:r=>{b(n[rs].current,r[rs].fn),r[rs].current=n[rs].current}},n}function Dy(e){const t=We?.function,n=We?.p?.function;return{mutation:(r,s,o,i,l)=>{const c=s[0];if(Pu(e,c)||!n)return o;let u=e;for(let f=0;f<s.length-1;f++)if(u=u[s[f]],!u?.[Et])return o;const d=yv(`${t[tn]}:${i}:${l}`);return Fb(c,d,r,n[tn]),o},binding:(r,s,o)=>{!Pu(e,r)&&n&&o()?.[Et]&&qb(t[tn],r,s[tn],n[tn])}}}function Pu(e,t){const n=Et in e||Qo in e;return!!Pn(e,t)?.set||n&&t in e||!(t in e)}function My(e){e&&bb(e[tn]??"a component",e.name)}function jy(){const e=We?.function;function t(n){mb(n,e[tn])}return{$destroy:()=>t("$destroy()"),$on:()=>t("$on(...)"),$set:()=>t("$set(...)")}}function zy(e,t,n=!1){vc();let r=!0,s=rt;tv(()=>{try{var o=e()}catch(l){s=l;return}var i=Br(o,!0,!0);Oe(()=>{if(n){if(t(...i),!r){const l=Jb("$inspect(...)");l&&(console.groupCollapsed("stack trace"),console.log(l),console.groupEnd())}}else t(r?"init":"update",...i)}),r=!1}),lt(()=>{try{e()}catch{}s!==rt&&(console.error(s),s=rt)})}function Oy(e,t=[],n=[],r){var s=ve,o=null;if(s&&(zt(),o=Fr(!1)),n.length===0&&t.every(c=>c.settled)){r(e),s&&Je(o);return}const i=Ra();if(s){var l=Re;Je(o)}Ta(t,[],n,c=>{s&&($e(!0),Je(l));try{for(const u of c)a(u);r(e,...c)}finally{s&&$e(!1),i()}})}function Ny(e,...t){(typeof e!="object"||!(e instanceof Node))&&ku();for(let n of t)typeof n!="function"&&ku()}const Lu=0,Du=1,qy=2;function Fy(e,t,n,r,s){ve&&zt();var o=rt,i=Yt(o),l=Yt(o),c=new Ms(e);Jn(()=>{var u=je;u.deactivate();var d=t();u.activate();var f=!1;let v=ve&&wu(d)===(e.data===Xo);if(v&&(Je(Fr()),$e(!1)),wu(d)){var m=ti(),S=!1;const y=w=>{if(!f){S=!0,m(!1),wn.ensure(),ve&&$e(!1);try{w()}finally{Vr(!1),fs||gr()}}};d.then(w=>{y(()=>{Xn(i,w),c.ensure(Du,r&&(I=>r(I,i)))})},w=>{y(()=>{if(Xn(l,w),c.ensure(qy,s&&(I=>s(I,l))),!s)throw l.v})}),ve?c.ensure(Lu,n):Mt(()=>{S||y(()=>{c.ensure(Lu,n)})})}else Xn(i,d),c.ensure(Du,r&&(y=>r(y,i)));return v&&$e(!0),()=>{f=!0}})}function U(e,t,n=!1){var r;ve&&(r=Re,zt());var s=new Ms(e),o=n?zn:0;function i(l,c){if(ve){var u=tc(r);if(l!==parseInt(u.substring(1))){var d=Fr();Je(d),s.anchor=d,$e(!1),s.ensure(l,c),$e(!0);return}}s.ensure(l,c)}Jn(()=>{var l=!1;t((c,u=0)=>{l=!0,i(u,c)}),l||i(-1,null)},o)}const By=Symbol("NaN");function Vy(e,t,n){ve&&zt();var r=new Ms(e);Jn(()=>{var s=t();s!==s&&(s=By),r.ensure(s,n)})}function Uy(e,t){ve&&Je(st(e)),lt(()=>{var n=t();for(var r in n){var s=n[r];s?e.style.setProperty(r,s):e.style.removeProperty(r)}})}function xt(e,t){return t}function Hy(e,t,n){for(var r=[],s=t.length,o,i=t.length,l=0;l<s;l++){let f=t[l];Lr(f,()=>{if(o){if(o.pending.delete(f),o.done.add(f),o.pending.size===0){var v=e.outrogroups;ml(e,Jo(o.done)),v.delete(o),v.size===0&&(e.outrogroups=null)}}else i-=1},!1)}if(i===0){var c=r.length===0&&n!==null;if(c){var u=n,d=u.parentNode;dc(d),d.append(u),e.items.clear()}ml(e,t,!c)}else o={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(o)}function ml(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(const i of e.pending.values())for(const l of i)r.add(e.items.get(l).e)}for(var s=0;s<t.length;s++){var o=t[s];if(r?.has(o)){o.f|=Kn;const i=document.createDocumentFragment();mc(o,i)}else ht(t[s],n)}}var Mu;function Se(e,t,n,r,s,o=null){var i=e,l=new Map,c=(t&nf)!==0;if(c){var u=e;i=ve?Je(st(u)):u.appendChild(kt())}ve&&zt();var d=null,f=lc(()=>{var _=n();return Rs(_)?_:_==null?[]:Jo(_)}),v,m=new Map,S=!0;function y(_){x.effect.f&Ut||(x.pending.delete(_),x.fallback=d,Ky(x,v,i,t,r),d!==null&&(v.length===0?d.f&Kn?(d.f^=Kn,Gs(d,null,i)):pc(d):Lr(d,()=>{d=null})))}function w(_){x.pending.delete(_)}var I=Jn(()=>{v=a(f);var _=v.length;let T=!1;if(ve){var C=tc(i)===Xo;C!==(_===0)&&(i=Fr(),Je(i),$e(!1),T=!0)}for(var D=new Set,P=je,R=Jf(),A=0;A<_;A+=1){ve&&Re.nodeType===dr&&Re.data===Go&&(i=Re,T=!0,$e(!1));var M=v[A],L=r(M,A),j=S?null:l.get(L);j?(j.v&&Xn(j.v,M),j.i&&Xn(j.i,A),R&&P.unskip_effect(j.e)):(j=Wy(l,S?i:Mu??=kt(),M,L,A,s,t,n),S||(j.e.f|=Kn),l.set(L,j)),D.add(L)}if(_===0&&o&&!d&&(S?d=Rt(()=>o(i)):(d=Rt(()=>o(Mu??=kt())),d.f|=Kn)),_>D.size&&gb(),ve&&_>0&&Je(Fr()),!S)if(m.set(P,D),R){for(const[F,V]of l)D.has(F)||P.skip_effect(V.e);P.oncommit(y),P.ondiscard(w)}else y(P);T&&$e(!0),a(f)}),x={effect:I,items:l,pending:m,outrogroups:null,fallback:d};S=!1,ve&&(i=Re)}function Us(e){for(;e!==null&&!(e.f&Mn);)e=e.next;return e}function Ky(e,t,n,r,s){var o=(r&Km)!==0,i=t.length,l=e.items,c=Us(e.effect.first),u,d=null,f,v=[],m=[],S,y,w,I;if(o)for(I=0;I<i;I+=1)S=t[I],y=s(S,I),w=l.get(y).e,w.f&Kn||(w.nodes?.a?.measure(),(f??=new Set).add(w));for(I=0;I<i;I+=1){if(S=t[I],y=s(S,I),w=l.get(y).e,e.outrogroups!==null)for(const M of e.outrogroups)M.pending.delete(w),M.done.delete(w);if(w.f&Dt&&(pc(w),o&&(w.nodes?.a?.unfix(),(f??=new Set).delete(w))),w.f&Kn)if(w.f^=Kn,w===c)Gs(w,null,n);else{var x=d?d.next:c;w===e.effect.last&&(e.effect.last=w.prev),w.prev&&(w.prev.next=w.next),w.next&&(w.next.prev=w.prev),vr(e,d,w),vr(e,w,x),Gs(w,x,n),d=w,v=[],m=[],c=Us(d.next);continue}if(w!==c){if(u!==void 0&&u.has(w)){if(v.length<m.length){var _=m[0],T;d=_.prev;var C=v[0],D=v[v.length-1];for(T=0;T<v.length;T+=1)Gs(v[T],_,n);for(T=0;T<m.length;T+=1)u.delete(m[T]);vr(e,C.prev,D.next),vr(e,d,C),vr(e,D,_),c=_,d=D,I-=1,v=[],m=[]}else u.delete(w),Gs(w,c,n),vr(e,w.prev,w.next),vr(e,w,d===null?e.effect.first:d.next),vr(e,d,w),d=w;continue}for(v=[],m=[];c!==null&&c!==w;)(u??=new Set).add(c),m.push(c),c=Us(c.next);if(c===null)continue}w.f&Kn||v.push(w),d=w,c=Us(w.next)}if(e.outrogroups!==null){for(const M of e.outrogroups)M.pending.size===0&&(ml(e,Jo(M.done)),e.outrogroups?.delete(M));e.outrogroups.size===0&&(e.outrogroups=null)}if(c!==null||u!==void 0){var P=[];if(u!==void 0)for(w of u)w.f&Dt||P.push(w);for(;c!==null;)!(c.f&Dt)&&c!==e.fallback&&P.push(c),c=Us(c.next);var R=P.length;if(R>0){var A=r&nf&&i===0?n:null;if(o){for(I=0;I<R;I+=1)P[I].nodes?.a?.measure();for(I=0;I<R;I+=1)P[I].nodes?.a?.fix()}Hy(e,P,A)}}o&&Mt(()=>{if(f!==void 0)for(w of f)w.nodes?.a?.apply()})}function Wy(e,t,n,r,s,o,i,l){var c=i&Um?i&Wm?Yt(n):ni(n,!1,!1):null,u=i&Hm?Yt(s):null;return{v:c,i:u,e:Rt(()=>(o(t,c??n,u??s,l),()=>{e.delete(r)}))}}function Gs(e,t,n){if(e.nodes)for(var r=e.nodes.start,s=e.nodes.end,o=t&&!(t.f&Kn)?t.nodes.start:n;r!==null;){var i=an(r);if(o.before(r),r===s)return;r=i}}function vr(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function Yy(e,t,n=!1,r=!1,s=!1,o=!1){var i=e,l="";if(n){var c=e;ve&&(i=Je(st(c)))}N(()=>{var u=Pe;if(l===(l=t()??"")){ve&&zt();return}if(n&&!ve){u.nodes=null,c.innerHTML=l,l!==""&&pt(st(c),c.lastChild);return}if(u.nodes!==null&&(sv(u.nodes.start,u.nodes.end),u.nodes=null),l!==""){if(ve){Re.data;for(var d=zt(),f=d;d!==null&&(d.nodeType!==dr||d.data!=="");)f=d,d=an(d);if(d===null)throw Aa(),zr;pt(Re,f),i=Je(d);return}var v=r?Ia:s?$l:void 0,m=kr(r?"svg":s?"math":"template",v);m.innerHTML=l;var S=r||s?m:m.content;if(pt(st(S),S.lastChild),r||s)for(;st(S);)i.before(st(S));else i.before(S)}})}function Xy(e,t,n,r,s){ve&&zt();var o=t.$$slots?.[n],i=!1;o===!0&&(o=t[n==="default"?"children":n],i=!0),o===void 0?s!==null&&s(e):o(e,i?()=>r:r)}function Gy(e){const t={};e.children&&(t.default=!0);for(const n in e.$$slots)t[n]=!0;return t}function ja(e,t,n){var r;ve&&(r=Re,zt());var s=new Ms(e);Jn(()=>{var o=t()??null;if(ve){var i=tc(r),l=i===Yo,c=o!==null;if(l!==c){var u=Fr();Je(u),s.anchor=u,$e(!1),s.ensure(o,o&&(d=>n(d,o))),$e(!0);return}}s.ensure(o,o&&(d=>n(d,o)))},zn)}const Jy=()=>performance.now(),Hn={tick:e=>requestAnimationFrame(e),now:()=>Jy(),tasks:new Set};function Cv(){const e=Hn.now();Hn.tasks.forEach(t=>{t.c(e)||(Hn.tasks.delete(t),t.f())}),Hn.tasks.size!==0&&Hn.tick(Cv)}function Zy(e){let t;return Hn.tasks.size===0&&Hn.tick(Cv),{promise:new Promise(n=>{Hn.tasks.add(t={c:e,f:n})}),abort(){Hn.tasks.delete(t)}}}function ko(e,t){xr(()=>{e.dispatchEvent(new CustomEvent(t))})}function Qy(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 ju(e){const t={},n=e.split(";");for(const r of n){const[s,o]=r.split(":");if(!s||o===void 0)break;const i=Qy(s.trim());t[i]=o.trim()}return t}const $y=e=>e;let Av=null;function zu(e){Av=e}function e_(e,t,n){var r=Av??Pe,s=r.nodes,o,i,l,c=null;s.a??={element:e,measure(){o=this.element.getBoundingClientRect()},apply(){if(l?.abort(),i=this.element.getBoundingClientRect(),o.left!==i.left||o.right!==i.right||o.top!==i.top||o.bottom!==i.bottom){const u=t()(this.element,{from:o,to:i},n?.());l=xo(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 v=e.style;c={position:v.position,width:v.width,height:v.height,transform:v.transform},v.position="absolute",v.width=d,v.height=f;var m=e.getBoundingClientRect();if(o.left!==m.left||o.top!==m.top){var S=`translate(${o.left-m.left}px, ${o.top-m.top}px)`;v.transform=v.transform?`${v.transform} ${S}`:S}}}},unfix(){if(c){var u=e.style;u.position=c.position,u.width=c.width,u.height=c.height,u.transform=c.transform}}},s.a.element=e}function t_(e,t,n,r){var s=(e&Jm)!==0,o=(e&Zm)!==0,i=s&&o,l=(e&Qm)!==0,c=i?"both":s?"in":"out",u,d=t.inert,f=t.style.overflow,v,m;function S(){return xr(()=>u??=n()(t,r?.()??{},{direction:c}))}var y={is_global:l,in(){if(t.inert=d,!s){m?.abort(),m?.reset?.();return}o||v?.abort(),v=xo(t,S(),m,1,()=>{ko(t,"introend"),v?.abort(),v=u=void 0,t.style.overflow=f})},out(_){if(!o){_?.(),u=void 0;return}t.inert=!0,m=xo(t,S(),v,0,()=>{ko(t,"outroend"),_?.()})},stop:()=>{v?.abort(),m?.abort()}},w=Pe;if((w.nodes.t??=[]).push(y),s&&wo){var I=l;if(!I){for(var x=w.parent;x&&x.f&zn;)for(;(x=x.parent)&&!(x.f&Ln););I=!x||(x.f&ur)!==0}I&&on(()=>{Oe(()=>y.in())})}}function xo(e,t,n,r,s){var o=r===1;if(ss(t)){var i,l=!1;return Mt(()=>{if(!l){var w=t({direction:o?"in":"out"});i=xo(e,w,n,r,s)}}),{abort:()=>{l=!0,i?.abort()},deactivate:()=>i.deactivate(),reset:()=>i.reset(),t:()=>i.t()}}if(n?.deactivate(),!t?.duration&&!t?.delay)return ko(e,o?"introstart":"outrostart"),s(),{abort:Ft,deactivate:Ft,reset:Ft,t:()=>r};const{delay:c=0,css:u,tick:d,easing:f=$y}=t;var v=[];if(o&&n===void 0&&(d&&d(0,1),u)){var m=ju(u(0,1));v.push(m,m)}var S=()=>1-r,y=e.animate(v,{duration:c,fill:"forwards"});return y.onfinish=()=>{y.cancel(),ko(e,o?"introstart":"outrostart");var w=n?.t()??1-r;n?.abort();var I=r-w,x=t.duration*Math.abs(I),_=[];if(x>0){var T=!1;if(u)for(var C=Math.ceil(x/16.666666666666668),D=0;D<=C;D+=1){var P=w+I*f(D/C),R=ju(u(P,1-P));_.push(R),T||=R.overflow==="hidden"}T&&(e.style.overflow="hidden"),S=()=>{var A=y.currentTime;return w+I*f(A/x)},d&&Zy(()=>{if(y.playState!=="running")return!1;var A=S();return d(A,1-A),!0})}y=e.animate(_,{duration:x,fill:"forwards"}),y.onfinish=()=>{S=()=>r,d?.(r,1-r),s()}},{abort:()=>{y&&(y.cancel(),y.effect=null,y.onfinish=Ft)},deactivate:()=>{s=Ft},reset:()=>{r===0&&d?.(1,0)},t:()=>S()}}function n_(e,t,n,r,s,o){let i=ve;ve&&zt();var l=null;ve&&Re.nodeType===pf&&(l=Re,zt());var c=ve?Re:e,u=Pe,d=new Ms(c,!1);Jn(()=>{const f=t()||null;var v=s?s():n||f==="svg"?Ia:void 0;if(f===null){d.ensure(null,null),cs(!0);return}return d.ensure(f,m=>{if(f){if(l=ve?l:kr(f,v),pt(l,l),r){ve&&py(f)&&l.append(document.createComment(""));var S=ve?st(l):l.appendChild(kt());ve&&(S===null?$e(!1):Je(S)),zu(u),r(l,S),zu(null)}Pe.nodes.end=l,m.before(l)}ve&&Je(m)}),cs(!0),()=>{f&&cs(!1)}},zn),cn(()=>{cs(!0)}),i&&($e(!0),Je(c))}function r_(e,t){let n=null,r=ve;var s;if(ve){n=Re;for(var o=st(document.head);o!==null&&(o.nodeType!==dr||o.data!==e);)o=an(o);if(o===null)$e(!1);else{var i=an(o);o.remove(),Je(i)}}ve||(s=document.head.appendChild(kt()));try{Jn(()=>t(s),vf|wr)}finally{r&&($e(!0),Je(n))}}function s_(e,t){on(()=>{var n=e.getRootNode(),r=n.host?n:n.head??n.ownerDocument.head;if(!r.querySelector("#"+t.hash)){const s=kr("style");s.id=t.hash,s.textContent=t.code,r.appendChild(s)}})}function Tv(e,t,n){on(()=>{var r=Oe(()=>t(e,n?.())||{});if(n&&r?.update){var s=!1,o={};lt(()=>{var i=n();bc(i),s&&wf(o,i)&&(o=i,r.update(i))}),s=!0}if(r?.destroy)return()=>r.destroy()})}function kc(e,t){var n=void 0,r;nv(()=>{n!==(n=t())&&(r&&(ht(r),r=null),n&&(r=Rt(()=>{on(()=>n(e))})))})}const a_=/[&"<]/g;function o_(e,t){const n=String(e??""),r=a_;r.lastIndex=0;let s="",o=0;for(;r.test(n);){const i=r.lastIndex-1,l=n[i];s+=n.substring(o,i)+(l==="&"?"&amp;":l==='"'?"&quot;":"&lt;"),o=i+1}return s+n.substring(o)}function Rv(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=Rv(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function i_(){for(var e,t,n=0,r="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=Rv(e))&&(r&&(r+=" "),r+=t);return r}const Ou={translate:new Map([[!0,"yes"],[!1,"no"]])};function l_(e,t,n=!1){if(e==="hidden"&&t!=="until-found"&&(n=!0),t==null||!t&&n)return"";const r=rb.call(Ou,e)&&Ou[e].get(t)||t,s=n?'=""':`="${o_(r)}"`;return` ${e}${s}`}function Pv(e){return typeof e=="object"?i_(e):e??""}const Nu=[...`
7
+ \r\f \v\uFEFF`];function c_(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 o=s.length,i=0;(i=r.indexOf(s,i))>=0;){var l=i+o;(i===0||Nu.includes(r[i-1]))&&(l===r.length||Nu.includes(r[l]))?r=(i===0?"":r.substring(0,i))+r.substring(l+1):i=l}}return r===""?null:r}function qu(e,t=!1){var n=t?" !important;":";",r="";for(var s of Object.keys(e)){var o=e[s];o!=null&&o!==""&&(r+=" "+s+": "+o+n)}return r}function Mi(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function u_(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 o=!1,i=0,l=!1,c=[];r&&c.push(...Object.keys(r).map(Mi)),s&&c.push(...Object.keys(s).map(Mi));var u=0,d=-1;const y=e.length;for(var f=0;f<y;f++){var v=e[f];if(l?v==="/"&&e[f-1]==="*"&&(l=!1):o?o===v&&(o=!1):v==="/"&&e[f+1]==="*"?l=!0:v==='"'||v==="'"?o=v:v==="("?i++:v===")"&&i--,!l&&o===!1&&i===0){if(v===":"&&d===-1)d=f;else if(v===";"||f===y-1){if(d!==-1){var m=Mi(e.substring(u,d).trim());if(!c.includes(m)){v!==";"&&f++;var S=e.substring(u,f).trim();n+=" "+S+";"}}u=f+1,d=-1}}}}return r&&(n+=qu(r)),s&&(n+=qu(s,!0)),n=n.trim(),n===""?null:n}return e==null?null:String(e)}function xe(e,t,n,r,s,o){var i=e.__className;if(ve||i!==n||i===void 0){var l=c_(n,r,o);(!ve||l!==e.getAttribute("class"))&&(l==null?e.removeAttribute("class"):t?e.className=l:e.setAttribute("class",l)),e.__className=n}else if(o&&s!==o)for(var c in o){var u=!!o[c];(s==null||u!==!!s[c])&&e.classList.toggle(c,u)}return o}function ji(e,t={},n,r){for(var s in n){var o=n[s];t[s]!==o&&(n[s]==null?e.style.removeProperty(s):e.style.setProperty(s,o,r))}}function tt(e,t,n,r){var s=e.__style;if(ve||s!==t){var o=u_(t,r);(!ve||o!==e.getAttribute("style"))&&(o==null?e.removeAttribute("style"):e.style.cssText=o),e.__style=t}else r&&(Array.isArray(r)?(ji(e,n?.[0],r[0]),ji(e,n?.[1],r[1],"important")):ji(e,n,r));return r}function ca(e,t,n=!1){if(e.multiple){if(t==null)return;if(!Rs(t))return Bb();for(var r of e.options)r.selected=t.includes(ea(r));return}for(r of e.options){var s=ea(r);if(Wf(s,t)){r.selected=!0;return}}(!n||t!==void 0)&&(e.selectedIndex=-1)}function xc(e){var t=new MutationObserver(()=>{ca(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),cn(()=>{t.disconnect()})}function ua(e,t,n=t){var r=new WeakSet,s=!0;La(e,"change",o=>{var i=o?"[selected]":":checked",l;if(e.multiple)l=[].map.call(e.querySelectorAll(i),ea);else{var c=e.querySelector(i)??e.querySelector("option:not([disabled])");l=c&&ea(c)}n(l),e.__value=l,je!==null&&r.add(je)}),on(()=>{var o=t();if(e===document.activeElement){var i=je;if(r.has(i))return}if(ca(e,o,s),s&&o===void 0){var l=e.querySelector(":checked");l!==null&&(o=ea(l),n(o))}e.__value=o,s=!1}),xc(e)}function ea(e){return"__value"in e?e.__value:e.value}const os=Symbol("class"),is=Symbol("style"),Lv=Symbol("is custom element"),Dv=Symbol("is html"),d_=Gr?"link":"LINK",f_=Gr?"input":"INPUT",v_=Gr?"option":"OPTION",h_=Gr?"select":"SELECT",p_=Gr?"progress":"PROGRESS";function De(e){if(ve){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute("value")){var r=e.value;ie(e,"value",null),e.value=r}if(e.hasAttribute("checked")){var s=e.checked;ie(e,"checked",null),e.checked=s}}};e.__on_r=n,Mt(n),Qf()}}function da(e,t){var n=si(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==p_)||(e.value=t??"")}function za(e,t){var n=si(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function Sc(e,t){t?e.hasAttribute("selected")||e.setAttribute("selected",""):e.removeAttribute("selected")}function m_(e,t){const n=e.checked;e.defaultChecked=t,e.checked=n}function b_(e,t){const n=e.value;e.defaultValue=t,e.value=n}function ie(e,t,n,r){var s=si(e);ve&&(s[t]=e.getAttribute(t),t==="src"||t==="srcset"||t==="href"&&e.nodeName===d_)||s[t]!==(s[t]=n)&&(t==="loading"&&(e[ib]=n),n==null?e.removeAttribute(t):typeof n!="string"&&Ic(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function g_(e,t,n){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n)}function y_(e,t,n){var r=Be,s=Pe;let o=ve;ve&&$e(!1),Xt(null),At(null);try{t!=="style"&&(bl.has(e.getAttribute("is")||e.nodeName)||!customElements||customElements.get(e.getAttribute("is")||e.nodeName.toLowerCase())?Ic(e).includes(t):n&&typeof n=="object")?e[t]=n:ie(e,t,n==null?n:String(n))}finally{Xt(r),At(s),o&&$e(!0)}}function __(e,t,n,r,s=!1,o=!1){if(ve&&s&&e.nodeName===f_){var i=e,l=i.type==="checkbox"?"defaultChecked":"defaultValue";l in n||De(i)}var c=si(e),u=c[Lv],d=!c[Dv];let f=ve&&u;f&&$e(!1);var v=t||{},m=e.nodeName===v_;for(var S in t)S in n||(n[S]=null);n.class?n.class=Pv(n.class):(r||n[os])&&(n.class=null),n[is]&&(n.style??=null);var y=Ic(e);for(const P in n){let R=n[P];if(m&&P==="value"&&R==null){e.value=e.__value="",v[P]=R;continue}if(P==="class"){var w=e.namespaceURI==="http://www.w3.org/1999/xhtml";xe(e,w,R,r,t?.[os],n[os]),v[P]=R,v[os]=n[os];continue}if(P==="style"){tt(e,R,t?.[is],n[is]),v[P]=R,v[is]=n[is];continue}var I=v[P];if(!(R===I&&!(R===void 0&&e.hasAttribute(P)))){v[P]=R;var x=P[0]+P[1];if(x!=="$$")if(x==="on"){const A={},M="$$"+P;let L=P.slice(2);var _=cy(L);if(iy(L)&&(L=L.slice(0,-7),A.capture=!0),!_&&I){if(R!=null)continue;e.removeEventListener(L,v[M],A),v[M]=null}if(_)K(L,e,R),_e([L]);else if(R!=null){let j=function(F){v[P].call(this,F)};var D=j;v[M]=pv(L,e,j,A)}}else if(P==="style")ie(e,P,R);else if(P==="autofocus")br(e,!!R);else if(!u&&(P==="__value"||P==="value"&&R!=null))e.value=e.__value=R;else if(P==="selected"&&m)Sc(e,R);else{var T=P;d||(T=dy(T));var C=T==="defaultValue"||T==="defaultChecked";if(R==null&&!u&&!C)if(c[P]=null,T==="value"||T==="checked"){let A=e;const M=t===void 0;if(T==="value"){let L=A.defaultValue;A.removeAttribute(T),A.defaultValue=L,A.value=A.__value=M?L:null}else{let L=A.defaultChecked;A.removeAttribute(T),A.defaultChecked=L,A.checked=M?L:!1}}else e.removeAttribute(P);else C||y.includes(T)&&(u||typeof R!="string")?(e[T]=R,T in c&&(c[T]=rt)):typeof R!="function"&&ie(e,T,R)}}}return f&&$e(!0),v}function w_(e,t,n=[],r=[],s=[],o,i=!1,l=!1){Ta(s,n,r,c=>{var u=void 0,d={},f=e.nodeName===h_,v=!1;if(nv(()=>{var S=t(...c.map(a)),y=__(e,u,S,o,i,l);v&&f&&"value"in S&&ca(e,S.value);for(let I of Object.getOwnPropertySymbols(d))S[I]||ht(d[I]);for(let I of Object.getOwnPropertySymbols(S)){var w=S[I];I.description===of&&(!u||w!==u[I])&&(d[I]&&ht(d[I]),d[I]=Rt(()=>kc(e,()=>w))),y[I]=w}u=y}),f){var m=e;on(()=>{ca(m,u.value,!0),xc(m)})}v=!0})}function si(e){return e.__attributes??={[Lv]:e.nodeName.includes("-"),[Dv]:e.namespaceURI===af}}var bl=new Map;function Ic(e){var t=e.getAttribute("is")||e.nodeName,n=bl.get(t);if(n)return n;bl.set(t,n=[]);for(var r,s=e,o=Element.prototype;o!==s;){r=cf(s);for(var i in r)r[i].set&&n.push(i);s=Zo(s)}return n}let zi=null;function Mv(){if(zi===null){var e=kr("select");e.innerHTML=mv("<option><span>t</span></option>"),zi=e.firstChild?.firstChild?.nodeType===1}return zi}function k_(e,t){Mv()&&kc(e,()=>()=>{const n=e.closest("select");if(!n)return;const r=new MutationObserver(s=>{var o=!1;for(const i of s){if(i.target===e)return;o||=!!i.target.parentElement?.closest("option")?.selected}o&&(e.replaceWith(e=e.cloneNode(!0)),t(e))});return r.observe(n,{childList:!0,characterData:!0,subtree:!0}),()=>{r.disconnect()}})}function x_(e,t){var n=ve;Mv()||($e(!1),e.textContent="",e.append(Zf("")));try{t()}finally{n&&(ve?h(e):($e(!0),Je(e)))}}function S_(e){Gt(document,["focusin","focusout"],t=>{t&&t.type==="focusout"&&t.relatedTarget||e(document.activeElement)})}function qe(e,t,n=t){var r=new WeakSet;La(e,"input",async s=>{var o=s?e.defaultValue:e.value;if(o=Ni(e)?qi(o):o,n(o),je!==null&&r.add(je),await Ma(),o!==(o=t())){var i=e.selectionStart,l=e.selectionEnd,c=e.value.length;if(e.value=o??"",l!==null){var u=e.value.length;i===l&&l===c&&u>c?(e.selectionStart=u,e.selectionEnd=u):(e.selectionStart=i,e.selectionEnd=Math.min(l,u))}}}),(ve&&e.defaultValue!==e.value||Oe(t)==null&&e.value)&&(n(Ni(e)?qi(e.value):e.value),je!==null&&r.add(je)),lt(()=>{var s=t();if(e===document.activeElement){var o=je;if(r.has(o))return}Ni(e)&&s===qi(e.value)||e.type==="date"&&!s&&!e.value||s!==e.value&&(e.value=s??"")})}const Oi=new Set;function I_(e,t,n,r,s=r){var o=n.getAttribute("type")==="checkbox",i=e;let l=!1;if(t!==null)for(var c of t)i=i[c]??=[];i.push(n),La(n,"change",()=>{var u=n.__value;o&&(u=Fu(i,u,n.checked)),s(u)},()=>s(o?[]:null)),lt(()=>{var u=r();if(ve&&n.defaultChecked!==n.checked){l=!0;return}o?(u=u||[],n.checked=u.includes(n.__value)):n.checked=Wf(n.__value,u)}),cn(()=>{var u=i.indexOf(n);u!==-1&&i.splice(u,1)}),Oi.has(i)||(Oi.add(i),Mt(()=>{i.sort((u,d)=>u.compareDocumentPosition(d)===4?-1:1),Oi.delete(i)})),Mt(()=>{if(l){var u;if(o)u=Fu(i,u,n.checked);else{var d=i.find(f=>f.checked);u=d?.__value}s(u)}})}function So(e,t,n=t){La(e,"change",r=>{var s=r?e.defaultChecked:e.checked;n(s)}),(ve&&e.defaultChecked!==e.checked||Oe(t)==null)&&n(e.checked),lt(()=>{var r=t();e.checked=!!r})}function Fu(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 Ni(e){var t=e.type;return t==="number"||t==="range"}function qi(e){return e===""?null:+e}function E_(e,t,n=t){La(e,"change",()=>{n(e.files)}),ve&&e.files&&n(e.files),lt(()=>{e.files=t()})}function Ec(e){for(var t=[],n=0;n<e.length;n+=1)t.push({start:e.start(n),end:e.end(n)});return t}function C_(e,t,n=t){var r,s,o=()=>{cancelAnimationFrame(r),e.paused||(r=requestAnimationFrame(o));var i=e.currentTime;s!==i&&n(s=i)};r=requestAnimationFrame(o),e.addEventListener("timeupdate",o),lt(()=>{var i=Number(t());s!==i&&!isNaN(i)&&(e.currentTime=s=i)}),cn(()=>{cancelAnimationFrame(r),e.removeEventListener("timeupdate",o)})}function A_(e,t){var n;Gt(e,["loadedmetadata","progress","timeupdate","seeking"],()=>{var r=e.buffered;(!n||n.length!==r.length||n.some((s,o)=>r.start(o)!==s.start||r.end(o)!==s.end))&&(n=Ec(r),t(n))})}function T_(e,t){Gt(e,["loadedmetadata"],()=>t(Ec(e.seekable)))}function R_(e,t){Gt(e,["timeupdate"],()=>t(Ec(e.played)))}function P_(e,t){Gt(e,["seeking","seeked"],()=>t(e.seeking))}function L_(e,t){Gt(e,["timeupdate","ended"],()=>t(e.ended))}function D_(e,t){Gt(e,["loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","emptied"],()=>t(e.readyState))}function M_(e,t,n=t){on(()=>{var r=Number(t());r!==e.playbackRate&&!isNaN(r)&&(e.playbackRate=r)}),on(()=>{Gt(e,["ratechange"],()=>{n(e.playbackRate)})})}function j_(e,t,n=t){var r=t(),s=()=>{r!==e.paused&&n(r=e.paused)};Gt(e,["play","pause","canplay"],s,r==null),on(()=>{(r=!!t())!==e.paused&&(r?e.pause():e.play().catch(o=>{throw n(r=!0),o}))})}function z_(e,t,n=t){var r=()=>{n(e.volume)};t()==null&&r(),Gt(e,["volumechange"],r,!1),lt(()=>{var s=Number(t());s!==e.volume&&!isNaN(s)&&(e.volume=s)})}function O_(e,t,n=t){var r=()=>{n(e.muted)};t()==null&&r(),Gt(e,["volumechange"],r,!1),lt(()=>{var s=!!t();e.muted!==s&&(e.muted=s)})}function N_(e){Gt(window,["online","offline"],()=>{e(navigator.onLine)})}function q_(e,t,n){var r=Pn(e,t);r&&r.set&&(e[t]=n,cn(()=>{e[t]=null}))}class Oa{#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.#r().observe(t,this.#n),()=>{var s=this.#e.get(t);s.delete(n),s.size===0&&(this.#e.delete(t),this.#t.unobserve(t))}}#r(){return this.#t??(this.#t=new ResizeObserver(t=>{for(var n of t){Oa.entries.set(n.target,n);for(var r of this.#e.get(n.target)||[])r(n)}}))}}var F_=new Oa({box:"content-box"}),jv=new Oa({box:"border-box"}),B_=new Oa({box:"device-pixel-content-box"});function V_(e,t,n){var r=t==="contentRect"||t==="contentBoxSize"?F_:t==="borderBoxSize"?jv:B_,s=r.observe(e,o=>n(o[t]));cn(s)}function U_(e,t,n){var r=jv.observe(e,()=>n(e[t]));on(()=>(Oe(()=>n(e[t])),r))}function Bu(e,t){return e===t||e?.[Et]===t}function Qe(e={},t,n,r){var s=We.r,o=Pe;return on(()=>{var i,l;return lt(()=>{i=l,l=r?.()||[],Oe(()=>{e!==n(...l)&&(t(e,...l),i&&Bu(n(...i),e)&&t(null,...i))})}),()=>{let c=o;for(;c!==s&&c.parent!==null&&c.parent.f&al;)c=c.parent;const u=()=>{l&&Bu(n(...l),e)&&t(null,...l)},d=c.teardown;c.teardown=()=>{u(),d?.()}}}),e}function H_(e,t,n,r=n){t.addEventListener("input",()=>{r(t[e])}),lt(()=>{var s=n();if(t[e]!==s)if(s==null){var o=t[e];r(o)}else t[e]=s+""})}function K_(e,t,n,r,s){var o=()=>{r(n[e])};n.addEventListener(t,o),s?lt(()=>{n[e]=s()}):o(),(n===document.body||n===window||n===document)&&cn(()=>{n.removeEventListener(t,o)})}function W_(e,t){Gt(e,["focus","blur"],()=>{t(e===document.activeElement)})}function Y_(e,t,n=t){var r=e==="x",s=()=>xr(()=>{o=!0,clearTimeout(i),i=setTimeout(l,100),n(window[r?"scrollX":"scrollY"])});addEventListener("scroll",s,{passive:!0});var o=!1,i,l=()=>{o=!1},c=!0;lt(()=>{var u=t();c?c=!1:!o&&u!=null&&(o=!0,clearTimeout(i),r?scrollTo(u,window.scrollY):scrollTo(window.scrollX,u),i=setTimeout(l,100))}),on(s),cn(()=>{removeEventListener("scroll",s)})}function X_(e,t){Gt(window,["resize"],()=>xr(()=>t(window[e])))}function G_(e){return function(...t){var n=t[0];n.isTrusted&&e?.apply(this,t)}}function J_(e){return function(...t){var n=t[0];n.target===this&&e?.apply(this,t)}}function Z_(e){return function(...t){var n=t[0];return n.stopPropagation(),e?.apply(this,t)}}function Q_(e){var t=!1;return function(...n){if(!t)return t=!0,e?.apply(this,n)}}function $_(e){return function(...t){var n=t[0];return n.stopImmediatePropagation(),e?.apply(this,t)}}function ew(e){return function(...t){var n=t[0];return n.preventDefault(),e?.apply(this,t)}}function tw(e=!1){const t=We,n=t.l.u;if(!n)return;let r=()=>bc(t.s);if(e){let s=0,o={};const i=Pa(()=>{let l=!1;const c=t.s;for(const u in c)c[u]!==o[u]&&(o[u]=c[u],l=!0);return l&&s++,s});r=()=>a(i)}n.b.length&&ev(()=>{Vu(t,r),rl(n.b)}),Ne(()=>{const s=Oe(()=>n.m.map(sb));return()=>{for(const o of s)typeof o=="function"&&o()}}),n.a.length&&Ne(()=>{Vu(t,r),rl(n.a)})}function Vu(e,t){if(e.l.s)for(const n of e.l.s)a(n);t()}function nw(e){var t=Yt(0);return function(){return arguments.length===1?(b(t,a(t)+1),arguments[0]):(a(t),e())}}function rw(e,t){var n=e.$$events?.[t.type],r=Rs(n)?n.slice():n==null?[]:[n];for(var s of r)s.call(this,t)}function sw(e,t,n){e.$$events||={},e.$$events[t]||=[],e.$$events[t].push(n)}function aw(e){for(var t in e)t in this&&(this[t]=e[t])}function ow(e,t=1){const n=e();return e(n+t),n}function iw(e,t=1){const n=e()+t;return e(n),n}const lw={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 cw(e,t,n){return new Proxy({props:e,exclude:t},lw)}const uw={get(e,t){if(!e.exclude.includes(t))return a(e.version),t in e.special?e.special[t]():e.props[t]},set(e,t,n){if(!(t in e.special)){var r=Pe;try{At(e.parent_effect),e.special[t]=te({get[t](){return e.props[t]}},t,rf)}finally{At(r)}}return e.special[t](n),Ur(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),Ur(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 dw(e,t){return new Proxy({props:e,exclude:t,special:{},version:Yt(0),parent_effect:Pe},uw)}const fw={get(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(ss(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];ss(s)&&(s=s());const o=Pn(s,t);if(o&&o.set)return o.set(n),!0}return!1},getOwnPropertyDescriptor(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(ss(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r){const s=Pn(r,t);return s&&!s.configurable&&(s.configurable=!0),s}}},has(e,t){if(t===Et||t===Qo)return!1;for(let n of e.props)if(ss(n)&&(n=n()),n!=null&&t in n)return!0;return!1},ownKeys(e){const t=[];for(let n of e.props)if(ss(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 Na(...e){return new Proxy({props:e},fw)}function te(e,t,n,r){var s=(n&Xm)!==0,o=(n&Gm)!==0,i=r,l=!0,c=()=>(l&&(l=!1,i=o?Oe(r):r),i);let u;if(s){var d=Et in e||Qo in e;u=Pn(e,t)?.set??(d&&t in e?x=>e[t]=x:void 0)}var f,v=!1;s?[f,v]=Df(()=>e[t]):f=e[t],f===void 0&&r!==void 0&&(f=c(),u&&(Ab(),u(f)));var m;if(m=()=>{var x=e[t];return x===void 0?c():(l=!0,x)},!(n&rf))return m;if(u){var S=e.$$legacy;return function(x,_){return arguments.length>0?((!_||S||v)&&u(_?m():x),x):m()}}var y=!1,w=(n&Ym?Pa:lc)(()=>(y=!1,m()));s&&a(w);var I=Pe;return function(x,_){if(arguments.length>0){const T=_?a(w):s?he(x):x;return b(w,T),y=!0,i!==void 0&&(i=T),x}return ir&&y||I.f&Ut?w.v:a(w)}}function vw(e,t,n,r,s,o){qf(t,()=>{var i=!1;nc?.[tn],lt(()=>{if(!i){var[l,c]=Df(n);if(!c){var u=r(),d=!1,f=lt(()=>{d||l[u]});d=!0,f.deps===null&&(Mb(),i=!0)}}})})}function hw(e){return new pw(e)}class pw{#e;#t;constructor(t){var n=new Map,r=(o,i)=>{var l=ni(i,!1,!1);return n.set(o,l),l};const s=new Proxy({...t.props||{},$$events:{}},{get(o,i){return a(n.get(i)??r(i,Reflect.get(o,i)))},has(o,i){return i===Qo?!0:(a(n.get(i)??r(i,Reflect.get(o,i))),Reflect.has(o,i))},set(o,i,l){return b(n.get(i)??r(i,l),l),Reflect.set(o,i,l)}});this.#t=(t.hydrate?_v:at)(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)&&gr(),this.#e=s.$$events;for(const o of Object.keys(this.#t))o==="$set"||o==="$destroy"||o==="$on"||Or(this,o,{get(){return this.#t[o]},set(i){this.#t[o]=i},enumerable:!0});this.#t.$set=o=>{Object.assign(s,o)},this.#t.$destroy=()=>{ft(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 zv;typeof HTMLElement=="function"&&(zv=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 t=function(s){return o=>{const i=kr("slot");s!=="default"&&(i.name=s),k(o,i)}};var e=t;if(await Promise.resolve(),!this.$$cn||this.$$c)return;const n={},r=mw(this);for(const s of this.$$s)s in r&&(s==="default"&&!this.$$d.children?(this.$$d.children=t(s),n.default=!0):n[s]=t(s));for(const s of this.attributes){const o=this.$$g_p(s.name);o in this.$$d||(this.$$d[o]=oo(o,s.value,this.$$p_d,"toProp"))}for(const s in this.$$p_d)!(s in this.$$d)&&this[s]!==void 0&&(this.$$d[s]=this[s],delete this[s]);this.$$c=hw({component:this.$$ctor,target:this.$$shadowRoot||this,props:{...this.$$d,$$slots:n,$$host:this}}),this.$$me=Ls(()=>{lt(()=>{this.$$r=!0;for(const s of mo(this.$$c)){if(!this.$$p_d[s]?.reflect)continue;this.$$d[s]=this.$$c[s];const o=oo(s,this.$$d[s],this.$$p_d,"toAttribute");o==null?this.removeAttribute(this.$$p_d[s].attribute||s):this.setAttribute(this.$$p_d[s].attribute||s,o)}this.$$r=!1})});for(const s in this.$$l)for(const o of this.$$l[s]){const i=this.$$c.$on(s,o);this.$$l_u.set(o,i)}this.$$l={}}}attributeChangedCallback(e,t,n){this.$$r||(e=this.$$g_p(e),this.$$d[e]=oo(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 mo(this.$$p_d).find(t=>this.$$p_d[t].attribute===e||!this.$$p_d[t].attribute&&t.toLowerCase()===e)||e}});function oo(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 mw(e){const t={};return e.childNodes.forEach(n=>{t[n.slot||"default"]=!0}),t}function bw(e,t,n,r,s,o){let i=class extends zv{constructor(){super(e,n,s),this.$$p_d=t}static get observedAttributes(){return mo(t).map(l=>(t[l].attribute||l).toLowerCase())}};return mo(t).forEach(l=>{Or(i.prototype,l,{get(){return this.$$c&&l in this.$$c?this.$$c[l]:this.$$d[l]},set(c){c=oo(l,c,t),this.$$d[l]=c;var u=this.$$c;if(u){var d=Pn(u,l)?.get;d?u[l]=c:u.$set({[l]:c})}}})}),r.forEach(l=>{Or(i.prototype,l,{get(){return this.$$c?.[l]}})}),o&&(i=o(i)),e.element=i,i}function gw(e,...t){return Oe(()=>{try{let n=!1;const r=[];for(const s of t)s&&typeof s=="object"&&Et in s?(r.push(Br(s,!0)),n=!0):r.push(s);n&&(jb(e),console.log("%c[snapshot]","color: grey",...r))}catch{}}),t}const Ov=Object.freeze(Object.defineProperty({__proto__:null,CLASS:os,FILENAME:tn,HMR:rs,NAMESPACE_SVG:Ia,STYLE:is,aborted:fl,action:Tv,get active_effect(){return Pe},add_legacy_event_listener:sw,add_locations:Ry,add_svelte_meta:Qb,animation:e_,append:k,append_styles:s_,apply:Jg,assign:Cy,assign_async:Ay,async:Oy,async_derived:Ff,attach:kc,attachment:Ey,attr:l_,attribute_effect:w_,autofocus:br,await:Fy,bind_active_element:S_,bind_buffered:A_,bind_checked:So,bind_content_editable:H_,bind_current_time:C_,bind_element_size:U_,bind_ended:L_,bind_files:E_,bind_focused:W_,bind_group:I_,bind_muted:O_,bind_online:N_,bind_paused:j_,bind_playback_rate:M_,bind_played:R_,bind_prop:q_,bind_property:K_,bind_ready_state:D_,bind_resize_observer:V_,bind_seekable:T_,bind_seeking:P_,bind_select_value:ua,bind_this:Qe,bind_value:qe,bind_volume:z_,bind_window_scroll:Y_,bind_window_size:X_,boundary:Nf,bubble_event:rw,check_target:My,child:p,cleanup_styles:Ty,clsx:Pv,comment:Ze,component:ja,create_custom_element:bw,create_ownership_validator:Dy,css_props:Uy,customizable_select:x_,deep_read:_o,deep_read_state:bc,deferred_template_effect:Fg,delegate:_e,delegated:K,derived:B,derived_safe_equal:lc,get document(){return Yf},each:Se,eager:mg,effect:on,effect_root:Ls,effect_tracking:Da,element:n_,equals:Lg,event:Ke,exclude_from_object:ob,fallback:ab,first_child:ke,flush:gr,for_await_track_reactivity_loss:xg,from_html:E,from_mathml:ey,from_svg:yc,from_tree:ty,get:a,head:r_,hmr:Ly,html:Yy,hydrate_template:Ub,if:U,index:xt,init:tw,init_select:xc,inspect:zy,invalid_default_snippet:ub,invalidate_inner_signals:Ug,invalidate_store:ig,invoke_error_boundary:Wn,key:Vy,legacy_api:jy,legacy_pre_effect:Og,legacy_pre_effect_reset:Ng,legacy_rest_props:dw,log_if_contains_state:gw,mark_store_binding:fg,mutable_source:ni,mutate:Tg,next:Wt,noop:Ft,once:Q_,pending:wg,pop:ue,preventDefault:ew,prevent_snippet_stringification:kv,prop:te,props_id:sy,proxy:he,push:ce,raf:Hn,reactive_import:nw,remove_input_defaults:De,remove_textarea_child:fc,render_effect:lt,replay_events:Gg,reset:h,rest_props:cw,run:Sg,run_after_blockers:qf,safe_get:Yg,sanitize_slots:Gy,save:kg,select_option:ca,selectedcontent:k_,self:J_,set:b,set_attribute:ie,set_checked:za,set_class:xe,set_custom_element_data:y_,set_default_checked:m_,set_default_value:b_,set_selected:Sc,set_style:tt,set_text:z,set_value:da,set_xlink_attribute:g_,setup_stores:lg,sibling:g,slot:Xy,snapshot:Br,snippet:ln,spread_props:Na,state:q,stopImmediatePropagation:$_,stopPropagation:Z_,store_get:ag,store_mutate:cg,store_set:Lf,store_unsub:og,strict_equals:Pg,tag:Gb,tag_proxy:Sf,template_effect:N,text:Ht,tick:Ma,to_array:ff,trace:Xb,track_reactivity_loss:ul,transition:t_,trusted:G_,untrack:Oe,update:Ur,update_legacy_props:aw,update_pre:Rg,update_pre_prop:iw,update_pre_store:dg,update_prop:ow,update_store:ug,user_effect:Ne,user_pre_effect:ev,validate_binding:vw,validate_dynamic_element_tag:by,validate_snippet_args:Ny,validate_store:gy,validate_void_dynamic_element:my,wait:Ig,get window(){return ia},with_script:ny,wrap_snippet:yy},Symbol.toStringTag,{value:"Module"}));class gl{#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 Uu{#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 yw=["workspace","user"],fa="state:manage",On={ephemeral:new gl,session:new gl,workspace:new Uu("sh3:workspace:"),user:new Uu("sh3:user:")},Fi=new Map;let Bi=!1;function _w(e,t,n){Fi.set(`${e}:${t}`,{zone:e,shardId:t,value:n}),!Bi&&(Bi=!0,queueMicrotask(()=>{Bi=!1;for(const{zone:r,shardId:s,value:o}of Fi.values())On[r].write(s,o);Fi.clear()}))}function ai(e,t){const n={};for(const r of Object.keys(t)){const s=t[r],i=On[r].read(e),l={...s,...i??{}},c=he(l);n[r]=c,yw.includes(r)&&Ls(()=>{let u=!0;Ne(()=>{const d=Br(c);if(u){u=!1;return}_w(r,e,d)})})}return n}function Vi(e,t){On[e]=t}function ww(e,t){return On[e].read(t)}function yl(e,t){On[e].delete(t)}const kw="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(kw);const xw=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function Sw(e,t={}){const n=document.activeElement;function r(){return Array.from(e.querySelectorAll(xw))}function s(o){if(o.key!=="Tab")return;const i=r();if(i.length===0){o.preventDefault();return}const l=i[0],c=i[i.length-1],u=document.activeElement;o.shiftKey&&(u===l||!e.contains(u))?(o.preventDefault(),c.focus()):!o.shiftKey&&(u===c||!e.contains(u))&&(o.preventDefault(),l.focus())}return e.addEventListener("keydown",s),t.initialFocus!==!1&&queueMicrotask(()=>{(r()[0]??e).focus()}),()=>{e.removeEventListener("keydown",s),n&&document.contains(n)&&n.focus()}}var Iw=E('<div class="modal-frame svelte-2tcvcm" role="presentation"><div class="modal-box svelte-2tcvcm" role="dialog" aria-modal="true" tabindex="-1"><!></div></div>');function Ew(e,t){ce(t,!0);let n=te(t,"initialFocus",3,!0),r;Ne(()=>{if(r)return Sw(r,{initialFocus:n()})});function s(c){t.onBackdropClick&&c.target===c.currentTarget&&t.onBackdropClick()}var o=Iw(),i=p(o),l=p(i);ja(l,()=>t.Content,(c,u)=>{u(c,Na(()=>t.contentProps,{get close(){return t.close}}))}),h(i),Qe(i,c=>r=c,()=>r),h(o),N(()=>tt(i,t.boxStyle)),K("click",o,s),k(e,o),ue()}_e(["click"]);const Cc={};function Cw(e,t){Cc[e]=t}function Aw(e){delete Cc[e]}function oi(e){const t=Cc[e];if(!t)throw new Error(`Overlay layer "${e}" root is not registered — Sh3.svelte must mount before opening overlays on this layer.`);return t}const yr=he(new Map),It=he({id:null}),ks=he({id:null});function Tw(){return ks.id}function va(e){yr.set(e.manifest.id,e)}function js(){return Array.from(yr.values()).map(e=>e.manifest)}function Ac(){const e=It.id;return e?yr.get(e)?.manifest??null:null}function Nn(e){return yr.get(e)}const ta=[],vs=[];let ha=null;function Rw(e){ha=e}function Pw(e){if(!It.id)throw new Error("pushNavEntry requires an active app");const t=Symbol("nav-entry");return vs.push({id:t,label:e.label,onPop:e.onPop}),{remove(){const n=vs.findIndex(r=>r.id===t);n>=0&&vs.splice(n,1)}}}function Nv(e){const t=Symbol("dismissable");return ta.push({id:t,dismiss:e}),{unregister(){const n=ta.findIndex(r=>r.id===t);n>=0&&ta.splice(n,1)}}}function qv(){vs.length=0}function Lw(){if(ta.length>0){ta.pop().dismiss();return}if(vs.length>0){vs.pop().onPop();return}It.id&&ha&&ha.returnToHome()}function Dw(){It.id||ks.id&&ha&&ha.launchApp(ks.id)}const sn=[];let Io=!1,hn=null;const Mw=.5;function Fv(){const e=oi("modal");if(sn.length===0){hn&&(hn.remove(),hn=null);return}hn||(hn=document.createElement("div"),hn.className="sh3-modal-backdrop",hn.style.position="absolute",hn.style.inset="0",hn.style.pointerEvents="auto",hn.style.transition="background-color 120ms ease",hn.style.background=`rgba(0, 0, 0, ${Mw})`);const t=sn[sn.length-1].host;e.insertBefore(hn,t)}function Bv(e){e.key==="Escape"&&sn.length!==0&&(e.stopPropagation(),e.preventDefault(),sn[sn.length-1].handle.close())}function jw(){Io||(Io=!0,document.addEventListener("keydown",Bv,!0))}function zw(){sn.length>0||Io&&(Io=!1,document.removeEventListener("keydown",Bv,!0))}function Vv(e){const t=sn.indexOf(e);t<0||(sn.splice(t,1),ft(e.frame),e.host.remove(),Fv(),zw())}function Ow(e,t,n){const r=oi("modal"),s=document.createElement("div");s.className="sh3-modal-host",s.dataset.sh3OverlayHost="modal",s.style.position="absolute",s.style.inset="0",s.style.pointerEvents="auto",r.appendChild(s);const o={},i={close:()=>Vv(o)},l=Nv(()=>i.close()),c=i.close;i.close=()=>{l.unregister(),c()};const u=at(Ew,{target:s,props:{Content:e,contentProps:t??{},close:i.close,boxStyle:n?.boxStyle,onBackdropClick:n?.dismissOnBackdrop?i.close:void 0,initialFocus:n?.initialFocus}});return o.host=s,o.frame=u,o.handle=i,sn.push(o),Fv(),jw(),i}function Nw(){for(;sn.length>0;)Vv(sn[sn.length-1])}const xn={open:Ow,closeAll:Nw},hr=new Map;function qa(e,t){const n=hr.get(e);return!n||n.priority==="edge"&&t.priority==="normal"||t.priority===n.priority&&t.depth>n.depth?(hr.set(e,t),!0):!1}function Kr(e,t){hr.get(e)?.ownerId===t&&hr.delete(e)}function Uv(e){return hr.get(e)??null}function qw(e,t){return hr.get(e)?.ownerId===t}let Fw=0;function Bw(){return`sh3:gesture:${Fw++}`}function Vw(e){let t=0,n=e;for(;n;)t++,n=n.parentElement;return t}function Hu(e){const t=[];return e.ctrlKey&&t.push("Control"),e.shiftKey&&t.push("Shift"),e.altKey&&t.push("Alt"),e.metaKey&&t.push("Meta"),t}function Ui(e,t){return e.length!==t.length?!1:e.every(n=>t.includes(n))}function Uw(e){if(!e)return{register:()=>({enable(){},disable(){},destroy(){}}),destroy(){}};const t=[],n=new Map;function r(c){if(!c.isPrimary)return;const u=Hu(c);for(const d of t)if(!(!d.enabled||d.destroyed)){if(d.opts.type==="pan"||d.opts.type==="drag"){const f=d.opts,v=f.button??0;if(c.button!==v||!Ui(f.modifiers??[],u))continue;const m=f.container??e;if(!m||!m.contains(c.target))continue;const S=Vw(m);if(!qa(c.pointerId,{ownerId:d.id,axis:f.axis??"xy",priority:"normal",depth:S}))continue;n.set(c.pointerId,{handlerId:d.id,startX:c.clientX,startY:c.clientY,lastX:c.clientX,lastY:c.clientY});const w={pointerId:c.pointerId,x:c.clientX,y:c.clientY,dx:0,dy:0};f.onStart(w),document.addEventListener("pointermove",s),document.addEventListener("pointerup",o),document.addEventListener("pointercancel",i);return}if(d.opts.type==="button"){const f=d.opts;if(c.button!==f.button||!Ui(f.modifiers??[],u))continue;const v=f.container??e;if(!v||!v.contains(c.target))continue;const m=f.on??"down";(m==="down"||m==="both")&&f.onButton({button:c.button,modifiers:u,x:c.clientX,y:c.clientY})}}}function s(c){const u=n.get(c.pointerId);if(!u)return;const d=t.find(m=>m.id===u.handlerId);if(!d||!d.enabled)return;const f=d.opts,v={pointerId:c.pointerId,x:c.clientX,y:c.clientY,dx:c.clientX-u.startX,dy:c.clientY-u.startY};u.lastX=c.clientX,u.lastY=c.clientY,f.onMove(v)}function o(c){const u=n.get(c.pointerId);if(!u)return;n.delete(c.pointerId),Kr(c.pointerId,u.handlerId),document.removeEventListener("pointermove",s),document.removeEventListener("pointerup",o),document.removeEventListener("pointercancel",i);const d=t.find(S=>S.id===u.handlerId);if(!d)return;const f=d.opts,v=c.clientX-u.startX,m=c.clientY-u.startY;if(f.type==="drag"){const S=f.clickThreshold??6,y=Math.sqrt(v*v+m*m);f.onEnd({pointerId:c.pointerId,x:c.clientX,y:c.clientY,dx:v,dy:m,cancelled:!1,wasClick:y<S})}else f.onEnd({pointerId:c.pointerId,x:c.clientX,y:c.clientY,dx:v,dy:m,cancelled:!1})}function i(c){const u=n.get(c.pointerId);if(!u)return;n.delete(c.pointerId),Kr(c.pointerId,u.handlerId),document.removeEventListener("pointermove",s),document.removeEventListener("pointerup",o),document.removeEventListener("pointercancel",i);const d=t.find(S=>S.id===u.handlerId);if(!d)return;const f=d.opts,v=u.lastX-u.startX,m=u.lastY-u.startY;f.type==="drag"?f.onEnd({pointerId:c.pointerId,x:u.lastX,y:u.lastY,dx:v,dy:m,cancelled:!0,wasClick:!1}):f.onEnd({pointerId:c.pointerId,x:u.lastX,y:u.lastY,dx:v,dy:m,cancelled:!0})}function l(c){const u=Hu(c);for(const d of t){if(!d.enabled||d.destroyed||d.opts.type!=="scroll")continue;const f=d.opts;if(!Ui(f.modifiers??[],u))continue;const v=f.container??e;if(!(!v||!v.contains(c.target))){f.onScroll({deltaX:c.deltaX,deltaY:c.deltaY,deltaZ:c.deltaZ,modifiers:u});return}}}return e.addEventListener("pointerdown",r),e.addEventListener("wheel",l),{register(c){const d={id:Bw(),opts:c,enabled:!1,destroyed:!1};return t.push(d),{enable(){d.destroyed||(d.enabled=!0)},disable(){d.enabled=!1},destroy(){d.enabled=!1,d.destroyed=!0;const f=t.indexOf(d);f>=0&&t.splice(f,1)}}},destroy(){e.removeEventListener("pointerdown",r),e.removeEventListener("wheel",l),t.length=0}}}function Tc(e){let t=0,n=e;for(;n;)t++,n=n.parentElement;return t}const Eo=24;function tr(e,t,n){if(typeof console>"u")return;const r=t?.target,s=r?.tagName??"-",o=r?.className??"",i=typeof o=="string"?o:"";console.log("[sh3:gesture]",e,{pointerId:t?.pointerId,pointerType:t?.pointerType,type:t?.type,target:i?`${s}.${i}`:s,...n})}var Hw=E('<div class="popup-frame svelte-mp81cl" role="menu" tabindex="-1"><!></div>');function Kw(e,t){ce(t,!0);let n,r=q(-9999),s=q(-9999);Ne(()=>{if(!n)return;const l=n.getBoundingClientRect(),c=4,u=window.innerWidth,d=window.innerHeight;let f=t.anchorRect.bottom+c,v=t.anchorRect.left;if(v+l.width>u-c&&(v=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)}b(r,f,!0),b(s,v,!0)});var o=Hw(),i=p(o);ja(i,()=>t.Content,(l,c)=>{c(l,Na(()=>t.contentProps,{get close(){return t.close}}))}),h(o),Qe(o,l=>n=l,()=>n),N(()=>tt(o,`top: ${a(r)??""}px; left: ${a(s)??""}px;`)),k(e,o),ue()}function Ww(e){return e instanceof HTMLElement?e.getBoundingClientRect():new DOMRect(e.x,e.y,0,0)}let _n=null;function Hv(e){if(!_n||Uv(e.pointerId))return;const t=e.target;t&&_n.host.contains(t)||_n.handle.close()}function Kv(e){_n&&e.key==="Escape"&&(e.stopPropagation(),e.preventDefault(),_n.handle.close())}function Yw(){document.addEventListener("pointerdown",Hv,!0),document.addEventListener("keydown",Kv,!0)}function Xw(){document.removeEventListener("pointerdown",Hv,!0),document.removeEventListener("keydown",Kv,!0)}function _l(e){_n===e&&(_n=null,Xw(),ft(e.frame),e.host.remove())}function Gw(e,t,n){_n&&_l(_n);const r=oi("popup"),s=document.createElement("div");s.className="sh3-popup-host",s.dataset.sh3OverlayHost="popup",s.style.position="absolute",s.style.inset="0",s.style.pointerEvents="none",r.appendChild(s);const o=Ww(t.anchor),i={},l={close:()=>_l(i)},c=Nv(()=>l.close()),u=l.close;l.close=()=>{c.unregister(),u()};const d=at(Kw,{target:s,props:{Content:e,contentProps:n??{},anchorRect:o,close:l.close}});return i.host=s,i.frame=d,i.handle=l,_n=i,queueMicrotask(Yw),l}function Jw(){_n&&_l(_n)}const wl={show:Gw,close:Jw};var Zw=E('<div role="status" aria-live="polite"><span class="toast-level svelte-12gwnj0"> </span> <span class="toast-message svelte-12gwnj0"> </span></div>');function Qw(e,t){var n=Zw(),r=p(n),s=p(r,!0);h(r);var o=g(r,2),i=p(o,!0);h(o),h(n),N(()=>{xe(n,1,`toast toast-${t.level??""}`,"svelte-12gwnj0"),z(s,t.level),z(i,t.message)}),K("click",n,function(...l){t.close?.apply(this,l)}),k(e,n)}_e(["click"]);const Co=new Set;let Ot=null;function $w(){if(Ot&&Ot.isConnected)return Ot;const e=oi("toast");return Ot=document.createElement("div"),Ot.className="sh3-toast-stack",Ot.style.position="absolute",Ot.style.right="16px",Ot.style.bottom="16px",Ot.style.display="flex",Ot.style.flexDirection="column-reverse",Ot.style.gap="6px",Ot.style.pointerEvents="none",e.appendChild(Ot),Ot}function kl(e){Co.has(e)&&(Co.delete(e),e.timer!==null&&(clearTimeout(e.timer),e.timer=null),ft(e.instance),e.host.remove())}function e1(e,t={}){const n=t.level??"info",r=t.duration??3e3,s=$w(),o=document.createElement("div");o.className="sh3-toast-host",s.appendChild(o);const i={},l={close:()=>kl(i)},c=at(Qw,{target:o,props:{message:e,level:n,close:l.close}});return i.host=o,i.instance=c,i.handle=l,i.timer=Number.isFinite(r)&&r>0?setTimeout(()=>kl(i),r):null,Co.add(i),l}function t1(){for(const e of[...Co])kl(e)}const Yn={notify:e1,clear:t1},Ku={w:120,h:80};function ii(e){if(e.type==="slot")return{...Ku};if(e.type==="tabs")return{...Ku};const t=e.children.map(ii);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 Wu=32,Yu={x:48,y:48};function Wv(e,t){if(e.length===0)return{...Yu};const n=e[e.length-1],r={x:n.position.x+Wu,y:n.position.y+Wu};return r.x+120>t.w||r.y+32>t.h?{...Yu}:r}let Xu=0;function Yv(){return Xu+=1,`float-${Date.now().toString(36)}-${Xu.toString(36)}`}function n1(e,t,n){const r=Math.max(t.w,Math.min(e.size.w,n.w)),s=Math.max(t.h,Math.min(e.size.h,n.h)),o=Math.max(0,n.w-r),i=Math.max(0,n.h-s),l=Math.max(0,Math.min(e.position.x,o)),c=Math.max(0,Math.min(e.position.y,i));return{position:{x:l,y:c},size:{w:r,h:s}}}function Xv(e){return e.type==="slot"?e.viewId==null:e.type==="tabs"?e.tabs.every(t=>t.viewId==null):e.children.every(Xv)}function r1(e){return e.closest("[data-sh3-overlay-host]")}const Ao=new Map,Rc=new Map,Gv=new Set;function s1(e){Gv.add(e)}function a1(e,t,n){if(Ao.has(e))throw new Error(`View "${e}" is already registered`);Ao.set(e,t),n!==void 0&&Rc.set(e,n);for(const r of Gv)r(e,t)}function Jv(e){return Ao.get(e)}function Gu(e){return Rc.get(e)}function Zv(e){Ao.delete(e),Rc.delete(e)}const xs=new Map;function o1(e,t,n){const r=xs.get(e);return r?(console.warn(`[sh3] verb "${e}" already registered by shard "${r.shardId}"; skipping registration from "${n}"`),!1):(xs.set(e,{verb:t,shardId:n}),!0)}function To(e){return xs.get(e)?.verb}function Qv(e){xs.delete(e)}function Pc(){return Array.from(xs.values()).map(e=>e.verb).sort((e,t)=>e.name.localeCompare(t.name))}function $v(){return Array.from(xs.values()).map(e=>({...e}))}function Ss(e,t){const n=(r,s)=>{if(r.type==="tabs"){const o=r.tabs.findIndex(i=>i.slotId===t);if(o>=0)return{tabsNode:r,tabsPath:s,tabIndex:o,entry:r.tabs[o]}}else if(r.type==="split")for(let o=0;o<r.children.length;o++){const i=n(r.children[o],[...s,o]);if(i)return i}return null};return n(e,[])}function Lc(e,t){if(xl(e.docked,t))return{kind:"docked"};for(const n of e.floats)if(xl(n.content,t))return{kind:"float",floatId:n.id};return null}function xl(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(xl(n,t))return!0;return!1}function li(e,t){const n=Ss(e,t);if(!n)return null;const{tabsNode:r,tabIndex:s,entry:o}=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),o}function i1(e,t,n){const r=Math.max(0,Math.min(n,e.tabs.length));e.tabs.splice(r,0,t),e.activeTab=r}function l1(e,t,n){const r=e.tabs.slice(),[s]=r.splice(t,1),o=Math.max(0,Math.min(n,r.length));r.splice(o,0,s),e.tabs=r,e.activeTab=o}function Ju(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 c1(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 Sl(e,t,n,r){const s=Is(e,t);if(!s||eh(e,t))return;if(t.length===0){const u=c1(s),d=Ju(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 o=Ju(s,n,r),i=t.slice(0,-1),l=t[t.length-1],c=Is(e,i);!c||c.type!=="split"||(c.children[l]=o)}function Is(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 eh(e,t){if(t.length===0)return!1;const n=Is(e,t.slice(0,-1));return!n||n.type!=="split"?!1:n.fixed?.[t[t.length-1]]===!0}function us(e){let t=!0;for(;t;)t=th(e,null,0)}function th(e,t,n){if(e.type==="split"){let r=!1;for(let s=0;s<e.children.length;s++)th(e.children[s],e,s)&&(r=!0);for(let s=e.children.length-1;s>=0;s--){const o=e.children[s];o.type==="tabs"&&o.tabs.length===0&&!o.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],o=e;return delete o.direction,delete o.sizes,delete o.pinned,delete o.collapsed,delete o.children,Object.assign(o,s),!0}return r}return e.type==="tabs",!1}function un(e){return typeof e.label=="function"?e.label():e.label}const u1=["Ctrl","Alt","Shift","Meta"],Zu={control:"Ctrl",ctrl:"Ctrl",alt:"Alt",option:"Alt",shift:"Shift",meta:"Meta",cmd:"Meta",command:"Meta",super:"Meta",win:"Meta"},d1=new Set(["Control","Alt","Shift","Meta"]);function nh(e){return e.length===1?e.toUpperCase():e}function Dc(e){if(!e)throw new Error("Empty shortcut");const t=e.split("+");if(t.some(i=>i.trim()===""))throw new Error(`Malformed shortcut: "${e}"`);const n=t.map(i=>i.trim());if(n.length===0)throw new Error(`Malformed shortcut: "${e}"`);const r=new Set;let s;for(const i of n){const l=i.toLowerCase();if(l in Zu)r.add(Zu[l]);else{if(s!==void 0)throw new Error(`Multiple keys in shortcut: "${e}"`);s=nh(i)}}if(s===void 0)throw new Error(`No key in shortcut: "${e}"`);return[...u1.filter(i=>r.has(i)),s].join("+")}function rh(e,t){if(!e.toLowerCase().includes("mod"))return e;const n=e.split("+").map(r=>r.toLowerCase()==="mod"?t==="mac"?"Meta":"Ctrl":r);return Dc(n.join("+"))}function f1(e){if(d1.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=nh(e.key);return[...t,n].join("+")}function v1(){return typeof navigator>"u"?"other":/Mac|iPhone|iPad|iPod/i.test(navigator.platform)?"mac":"other"}function Fa(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?null:Dc(r)}return e.defaultShortcut?rh(e.defaultShortcut,n):null}function h1(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?{shortcut:null,source:"disabled"}:{shortcut:Dc(r),source:"user"}}return e.defaultShortcut?{shortcut:rh(e.defaultShortcut,n),source:"default"}:{shortcut:null,source:"none"}}const ci=["element","focus","view","app","home"];function pa(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 p1(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=Fa(r.action,t.bindings,t.platform);if(s)for(const o of Mc(r.action.scope)){if(!pa(o,t,r.ownerShardId))continue;const i=ui(o),l=n[i].get(s);if(l&&l!==r.action.id){console.warn(`[sh3] Shortcut "${s}" in tier "${i}" is bound to both "${l}" and "${r.action.id}"; first-registered wins. Users can rebind to resolve.`);continue}n[i].set(s,r.action.id)}}return n}function m1(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 b1(e){return e instanceof Element?e.closest("[data-sh3-passthrough-modifiers]")!==null:!1}function g1(e){return/(?:^|\+)(?:Ctrl|Alt|Meta)\+/.test(e)}function y1(e){const t=p1(e.entries,e.state),n=new Map(e.entries.map(r=>[r.action.id,r]));for(const r of ci){const s=t[r].get(e.shortcut);if(!s)continue;const o=n.get(s);if(o)return m1(e.target)&&!o.action.allowInInputs&&!(b1(e.target)&&g1(e.shortcut))?null:(e.runAction(s,{action:{id:o.action.id,label:un(o.action)},appId:e.state.activeAppId,viewId:e.state.focusedViewId??void 0,selection:e.state.selection??void 0,invokedVia:"keyboard",dispatch:e.dispatch??(()=>{})}),s)}return null}function ui(e){return e==="home"?"home":e==="app"?"app":typeof e=="string"&&e.startsWith("view:")?"view":typeof e=="string"&&e.startsWith("focus:")?"focus":"element"}function Mc(e){return Array.isArray(e)?e:[e]}function sh(e){return e==="home"||e==="app"?null:typeof e=="string"?e:e.element}function Ba(e,t,n){const r=Mc(e),s={};for(const o of r){const i=ui(o);(s[i]??=[]).push(o)}for(const o of ci){const i=s[o];if(i){for(const l of i)if(pa(l,t,n))return l}}return null}function _1(e,t){return typeof e=="string"||typeof t=="string"?e===t:e.element===t.element}function ah(e){return typeof e=="string"?e:`element:${e.element}`}function w1(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 ds=new Map,io=new Map,Il=new Set,Es=new Map;function Qu(e){const t=io.get(e);if(t)for(const n of t)n();for(const n of Il)n(e)}function k1(e,t){let n=Es.get(e);n||(n=new Set,Es.set(e,n)),n.add(t)}function x1(e,t){const n=Es.get(e);n&&(n.delete(t),n.size===0&&Es.delete(e))}function oh(e,t,n){const r=Symbol();let s=ds.get(e);s||(s=new Map,ds.set(e,s)),s.set(r,t),Qu(e);const o=n?.scope?.slotId;let i=!1;const l=()=>{if(i)return;i=!0,o&&x1(o,l);const c=ds.get(e);c&&c.delete(r)&&(c.size===0&&ds.delete(e),Qu(e))};return o&&k1(o,l),l}function Jr(e){const t=ds.get(e);return t?Array.from(t.values()):[]}function S1(){return Array.from(ds.keys())}function di(e,t){let n=io.get(e);n||(n=new Set,io.set(e,n)),n.add(t);let r=!1;return()=>{r||(r=!0,n.delete(t),n.size===0&&io.delete(e))}}function I1(e){Il.add(e);let t=!1;return()=>{t||(t=!0,Il.delete(e))}}function E1(e){const t=Es.get(e);if(!t)return;const n=Array.from(t);for(const r of n)r();Es.delete(e)}const rr=new Map,lo=new Set;function C1(e,t){for(const[n,r]of rr.entries()){if(r.viewId!==e||r.handle!==void 0)continue;const s={slotId:n,viewId:e,label:r.label,meta:r.meta,setDirty(o){fi[n]=o},location(){return Lc(dn(),n)}};queueMicrotask(()=>{if(rr.has(n)&&r.handle===void 0&&(r.handle=t.mount(r.host,s),(r.handle?.closable||n.startsWith("float:"))&&(vi[n]=!0),r.handle?.onResize)){const o=r.handle.onResize.bind(r.handle);r.resizeObserver=new ResizeObserver(i=>{for(const l of i){const c=l.contentRect;o(Math.round(c.width),Math.round(c.height))}}),r.resizeObserver.observe(r.host)}})}}s1(C1);const fi=he({}),vi=he({});function A1(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",ah(`focus:${t}`))),s.style.position="absolute",s.style.inset="0",s.style.minWidth="0",s.style.minHeight="0";let o=!1;const i={host:s,handle:void 0,viewId:t,label:n,meta:r,refcount:0,resizeObserver:void 0,cancelPendingMount:()=>{o=!0}};return queueMicrotask(()=>{if(o)return;const l=t?Jv(t):void 0,c={slotId:e,viewId:t??"",label:n,meta:r,setDirty(u){fi[e]=u},location(){return Lc(dn(),e)}};if(i.handle=l?.mount(s,c),(i.handle?.closable||e.startsWith("float:"))&&(vi[e]=!0),i.handle?.onResize){const u=i.handle.onResize.bind(i.handle);i.resizeObserver=new ResizeObserver(d=>{for(const f of d){const v=f.contentRect;u(Math.round(v.width),Math.round(v.height))}}),i.resizeObserver.observe(s)}}),i}function jc(e,t,n,r){lo.delete(e);let s=rr.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",ah(`focus:${t}`))):(s.host.removeAttribute("data-sh3-view"),s.host.removeAttribute("data-sh3-scope"))):(s=A1(e,t,n,r),rr.set(e,s)),s.refcount++,s.host}function zc(e,t){const n=rr.get(e);if(n){if(n.refcount--,n.refcount>0){t&&n.host.parentNode===t&&n.host.remove();return}lo.add(e),queueMicrotask(()=>{if(!lo.has(e))return;lo.delete(e);const r=rr.get(e);!r||r.refcount>0||(r.resizeObserver?.disconnect(),E1(e),r.handle?.unmount(),r.cancelPendingMount(),r.host.remove(),rr.delete(e),delete fi[e],delete vi[e])})}}function Hi(e){const t=rr.get(e);if(t)return{host:t.host,refcount:t.refcount}}function ih(e){const t=El.get(e);return t||rr.get(e)?.handle}function T1(e){return fi[e]??!1}function R1(e){return El.has(e)?!!El.get(e).closable:vi[e]??!1}const El=new Map;function lh(e){if(!e||typeof e!="object")return!1;const t=e.type;return t==="split"||t==="tabs"||t==="slot"}function P1(e){if(!e||typeof e!="object")return!1;const t=e;return lh(t.docked)&&Array.isArray(t.floats)}function L1(e){return{docked:e,floats:[]}}function D1(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 M1(e,t){return t==="compact"&&e.variants.compact?e.variants.compact:e.variants.default}function ch(e){if(Array.isArray(e))return e.map(D1);if(P1(e))return[{name:"default",variants:{default:e}}];if(lh(e))return[{name:"default",variants:{default:L1(e)}}];throw new Error("normalizeInitialLayout: input is not a LayoutNode, LayoutTree, or LayoutPreset[]")}function j1(e){return e.coarsePointer&&e.noHover||e.width<720||e.coarsePointer&&e.dpr>=2&&e.width<1100?"compact":"desktop"}let Js=q(null);const Zs=new Set;function uh(){if(typeof window>"u")return{class:"desktop",width:1920,height:1080,coarsePointer:!1,noHover:!1,dpr:1};const e=window.innerWidth,t=window.innerHeight,n=window.matchMedia("(pointer: coarse)").matches,r=window.matchMedia("(hover: none)").matches,s=window.devicePixelRatio;return{class:a(Js)??j1({width:e,coarsePointer:n,noHover:r,dpr:s}),width:e,height:t,coarsePointer:n,noHover:r,dpr:s}}let Ro=q(he(uh()));function Qs(){const e=uh(),t=a(Ro).class;if(b(Ro,e,!0),e.class!==t)for(const n of Zs)n(e)}typeof window<"u"&&(window.addEventListener("resize",Qs),window.matchMedia("(pointer: coarse)").addEventListener("change",Qs),window.matchMedia("(hover: none)").addEventListener("change",Qs),typeof screen<"u"&&screen.orientation&&screen.orientation.addEventListener("change",Qs));const Rn={get current(){return a(Ro)},subscribe(e){return Zs.add(e),()=>{Zs.delete(e)}},override(e){if(a(Js)!==e){b(Js,e,!0),Qs();for(const t of Zs)t(a(Ro))}},get pinned(){return a(Js)},__reset(){b(Js,null),Zs.clear()}};function $u(e){const t=[],n=r=>{if(r.type==="slot"){t.push({slotId:r.slotId,viewId:r.viewId,label:r.viewId||r.slotId,meta:r.meta});return}if(r.type==="tabs"){for(const s of r.tabs)t.push({slotId:s.slotId,viewId:s.viewId,label:s.label,meta:s.meta});return}for(const s of r.children)n(s)};return n(e),t}function Oc(e){const t=$u(e.docked);for(const n of e.floats)t.push(...$u(n.content));return t}let Po=null;function z1(e){Po=e}function O1(){Po=null}function Nc(){if(!Po)throw new Error("presetManager: no app attached — bind an AppLayoutBlob first");return Po}function N1(){return Object.keys(Nc().presets)}function q1(){return Nc().activePreset}function F1(e){const t=Nc();if(!(e in t.presets))throw new Error(`presetManager.switch: unknown preset "${e}"`);t.activePreset=e}const B1={list:N1,active:q1,switch:F1};function dh(){return{left:{open:!1,activeSlotId:null},right:{open:!1,activeSlotId:null},top:{open:!1,activeSlotId:null}}}const En=he(dh());let Lo=null;function Ja(){Lo&&Lo(En)}const nn={get state(){return En},open(e){En[e].open=!0,Ja()},close(e){En[e].open=!1,Ja()},toggle(e){En[e].open=!En[e].open,Ja()},activate(e,t){En[e].activeSlotId=t,Ja()},__setWriteThrough(e){Lo=e},__hydrate(e){for(const t of["left","right","top"])En[t].open=e[t].open,En[t].activeSlotId=e[t].activeSlotId},__reset(){Lo=null;const e=dh();for(const t of["left","right","top"])En[t].open=e[t].open,En[t].activeSlotId=e[t].activeSlotId}};yl("workspace","__shell__");const V1={type:"slot",slotId:"sh3core.home",viewId:"sh3core:home"},Cl=he({docked:V1,floats:[]});let ut=q(null),Va=q("home");function U1(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 H1(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 K1(e){if(a(ut))throw new Error(`Layout manager cannot attach app "${e.manifest.id}": app "${a(ut).appId}" is still attached`);const t=`__sh3core__:app:${e.manifest.id}`,n=ch(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=ww("workspace",t),o=U1(s);(o&&o.layoutVersion!==e.manifest.layoutVersion||s&&!o)&&yl("workspace",t);const l=ai(t,{workspace:r}).workspace;b(ut,{appId:e.manifest.id,proxy:l,heldSlotIds:[]},!0),z1(l),W1(l)}function W1(e){const t=e.activePreset,n=()=>(e.drawers||(e.drawers={}),e.drawers[t]||(e.drawers[t]={}),e.drawers[t].compact||(e.drawers[t].compact={left:{open:!1,activeSlotId:null},right:{open:!1,activeSlotId:null},top:{open:!1,activeSlotId:null}}),e.drawers),r=n();nn.__hydrate(r[t].compact),nn.__setWriteThrough(s=>{const o=n();o[t].compact={left:{...s.left},right:{...s.right},top:{...s.top}}})}function Y1(){if(!a(ut))throw new Error("acquireAppSlotHolds: no app attached");if(a(ut).heldSlotIds.length>0)return;const e=H1(a(ut).proxy),t=Oc(e);for(const{slotId:n,viewId:r,label:s,meta:o}of t)jc(n,r,s,o),a(ut).heldSlotIds.push(n)}function X1(){if(!a(ut))throw new Error("resetActivePresetToDefault: no app attached");const e=Nn(a(ut).appId);if(!e)throw new Error(`resetActivePresetToDefault: attached app "${a(ut).appId}" not in registry`);const t=ch(e.initialLayout),n=a(ut).proxy,r=n.activePreset;let s=t.find(l=>l.name===r);s||(s=t[0],n.activePreset=s.name);for(const l of a(ut).heldSlotIds)zc(l);a(ut).heldSlotIds=[];const o=structuredClone(s.variants.default);n.presets[n.activePreset].default=o;const i=Oc(o);for(const{slotId:l,viewId:c,label:u,meta:d}of i)jc(l,c,u,d),a(ut).heldSlotIds.push(l)}function fh(){if(a(ut)){O1(),nn.__setWriteThrough(null),nn.__hydrate({left:{open:!1,activeSlotId:null},right:{open:!1,activeSlotId:null},top:{open:!1,activeSlotId:null}});for(const e of a(ut).heldSlotIds)zc(e);b(ut,null)}}function vh(){b(Va,"home")}function ed(){if(!a(ut))throw new Error("Cannot switchToApp: no app is attached");b(Va,"app")}const co=B(()=>{if(a(Va)==="app"&&a(ut)){const e=a(ut).proxy,t=e.activePreset,n=e.presets[t];if(!n)throw new Error(`AppLayoutBlob active preset "${t}" not found in presets map`);return M1({variants:n},Rn.current.class)}return Cl});function dn(){return a(co)}function hi(){return a(Va)}const Ct={get root(){return a(co).docked},get tree(){return a(co)},get floats(){return a(co).floats}};function G1(e){Cl.docked=e,Cl.floats=[],b(Va,"home")}let na=q(he({kind:"docked"}));const Dn={get current(){return a(na)},setRoot(e){if(e.kind==="float"&&!Ct.tree.floats.some(n=>n.id===e.floatId))throw new Error(`compactRootStore.setRoot: float id "${e.floatId}" is not in the active tree`);b(na,e,!0)},reset(){b(na,{kind:"docked"},!0)}};function hh(){const e=a(na);if(e.kind==="docked")return Ct.root;const t=Ct.tree.floats.find(n=>n.id===e.floatId);return t?t.content:(b(na,{kind:"docked"},!0),Ct.root)}class J1 extends Map{#e=new Map;#t=q(0);#n=q(0);#r=nr||-1;constructor(t){if(super(),t){for(var[n,r]of t)super.set(n,r);this.#n.v=super.size}}#s(t){return nr===this.#r?q(t):Yt(t)}has(t){var n=this.#e,r=n.get(t);if(r===void 0)if(super.has(t))r=this.#s(0),n.set(t,r);else return a(this.#t),!1;return a(r),!0}forEach(t,n){this.#o(),super.forEach(t,n)}get(t){var n=this.#e,r=n.get(t);if(r===void 0)if(super.has(t))r=this.#s(0),n.set(t,r);else{a(this.#t);return}return a(r),super.get(t)}set(t,n){var r=this.#e,s=r.get(t),o=super.get(t),i=super.set(t,n),l=this.#t;if(s===void 0)s=this.#s(0),r.set(t,s),b(this.#n,super.size),Un(l);else if(o!==n){Un(s);var c=l.reactions===null?null:new Set(l.reactions),u=c===null||!s.reactions?.every(d=>c.has(d));u&&Un(l)}return i}delete(t){var n=this.#e,r=n.get(t),s=super.delete(t);return r!==void 0&&(n.delete(t),b(r,-1)),s&&(b(this.#n,super.size),Un(this.#t)),s}clear(){if(super.size!==0){super.clear();var t=this.#e;b(this.#n,0);for(var n of t.values())b(n,-1);Un(this.#t),t.clear()}}#o(){a(this.#t);var t=this.#e;if(this.#n.v!==t.size){for(var n of super.keys())if(!t.has(n)){var r=this.#s(0);t.set(n,r)}}for([,r]of this.#e)a(r)}keys(){return a(this.#t),super.keys()}values(){return this.#o(),super.values()}entries(){return this.#o(),super.entries()}[Symbol.iterator](){return this.entries()}get size(){return a(this.#n),super.size}}const Al=new J1;function ma(e,t){t?Al.set(e,!0):Al.delete(e)}function Z1(e){return Al.get(e)??!1}let Q1=[],qc=null,Ua=()=>({w:1600,h:900});const ba=new Set;function Fc(e,t){const n=ii(e.content),r=n1({position:e.position,size:e.size},n,t);e.position.x=r.position.x,e.position.y=r.position.y,e.size.w=r.size.w,e.size.h=r.size.h}function $1(e,t){qc=e,Ua=t;const n=t();for(const r of e)ba.has(r.id)||(Fc(r,n),ba.add(r.id));Dn.reset()}function ek(){qc=null,Ua=()=>({w:1600,h:900})}function Zr(){return qc??Q1}const Bc=new Map;function tk(e){return Bc.get(e)}const sr=new Map;let td=0;function nk(e){return td+=1,`float:${e}:${td}`}const nd={w:600,h:400};function rk(e,t){return{w:Math.max(e.w,Math.min(nd.w,t.w)),h:Math.max(e.h,Math.min(nd.h,t.h))}}function sk(e,t={}){const n=Zr(),r=Yv(),s=nk(e);let o;if(t.dismissable){const f={type:"slot",slotId:s,viewId:e};t.meta&&(f.meta=t.meta),o=f}else{const f=t.title??e,v={slotId:s,viewId:e,label:f};t.meta&&(v.meta=t.meta),o={type:"tabs",tabs:[v],activeTab:0}}const i=ii(o),l=Ua(),c=t.size??rk(i,l),u=t.position??Wv(n,l),d={id:r,content:o,position:u,size:c,title:t.title};if(t.dismissable&&(d.dismissable=!0),t.dismissable&&t.anchor){const f=r1(t.anchor);f&&Bc.set(r,f)}return Fc(d,l),ba.add(r),n.push(d),Rn.current.class==="compact"&&!t.dismissable&&Dn.setRoot({kind:"float",floatId:r}),r}function ak(e){const t=Zr(),n=Yv(),r=Ua(),s=e.position??Wv(t,r),o={id:n,content:e.content,position:s,size:e.size,title:e.title};return Fc(o,r),ba.add(n),t.push(o),Rn.current.class==="compact"&&Dn.setRoot({kind:"float",floatId:n}),n}function ok(e){const t=Zr(),n=t.findIndex(s=>s.id===e);if(n<0)return;t.splice(n,1),Bc.delete(e),sr.delete(e);const r=Dn.current;r.kind==="float"&&r.floatId===e&&Dn.reset(),ba.delete(e),ma(e,!1)}function ik(){return Zr().slice()}function ph(e){const t=Zr(),n=t.findIndex(s=>s.id===e);if(n<0||n===t.length-1)return;const[r]=t.splice(n,1);t.push(r)}function mh(e){if(sr.has(e))return;const t=Zr().find(r=>r.id===e);if(!t)return;sr.set(e,{position:{x:t.position.x,y:t.position.y},size:{w:t.size.w,h:t.size.h}}),ma(e,!0);const n=Ua();t.position.x=0,t.position.y=0,t.size.w=n.w,t.size.h=n.h,ph(e)}function bh(e){const t=sr.get(e);if(!t)return;const n=Zr().find(r=>r.id===e);if(!n){sr.delete(e),ma(e,!1);return}n.position.x=t.position.x,n.position.y=t.position.y,n.size.w=t.size.w,n.size.h=t.size.h,sr.delete(e),ma(e,!1)}function lk(e){sr.has(e)?bh(e):mh(e)}function ck(e){sr.has(e)&&(sr.delete(e),ma(e,!1))}function uk(e){return Z1(e)}const Ge={open:sk,openWithContent:ak,close:ok,list:ik,focus:ph,maximize:mh,restore:bh,toggleMaximize:lk,unmaximize:ck,isMaximized:uk},dk=Object.freeze([".md",".txt",".json",".guml",".css",".js",".ts",".tsx",".jsx",".html",".svg",".csv",".yaml",".yml",".xml",".log",".ini",".toml"]);function fk(e){return e.kind?e.kind:e.extension&&dk.includes(e.extension.toLowerCase())?"text":"binary"}const uo=[];function rd(e){return uo.push(e),()=>{const t=uo.indexOf(e);t>=0&&uo.splice(t,1)}}function vk(e,t=[]){return[...uo,...t].filter(r=>{try{return r.appliesTo(e)}catch{return!1}}).sort((r,s)=>(s.priority??0)-(r.priority??0))[0]??null}var hk=E("<span> </span>"),pk=E('<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),mk=E("<option> </option>"),bk=E("<button> </button>"),gk=E('<pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre>'),yk=E('<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>'),_k=E('<div class="sh3-conflict-text svelte-iwgja4"><!></div>');function wk(e,t){ce(t,!0);let n=q("");Ne(()=>{(!a(n)||!t.item.branches.find(m=>m.origin===a(n)))&&b(n,t.item.branches[0]?.origin??"local",!0)});const r=B(()=>t.item.branches.length===2),s=B(()=>a(r)?t.item.branches[0]:t.item.branches.find(m=>m.origin===a(n))??t.item.branches[0]),o=B(()=>a(r)?t.item.branches[1]:t.item.branches.find(m=>m.origin===t.selectedOrigin)??t.item.branches[1]??t.item.branches[0]);function i(m,S){const y=(m??"").split(/\r?\n/),w=(S??"").split(/\r?\n/),I=[],x=Math.max(y.length,w.length);for(let _=0;_<x;_++){const T=y[_],C=w[_];T===C?typeof T=="string"&&I.push({kind:"same",text:T}):(typeof T=="string"&&I.push({kind:"left",text:T}),typeof C=="string"&&I.push({kind:"right",text:C}))}return I}const l=B(()=>!a(s)||!a(o)?[]:i(a(s).content??"",a(o).content??"")),c=B(()=>a(l).filter(m=>m.kind!=="same").length);var u=_k(),d=p(u);{var f=m=>{var S=pk(),y=ke(S),w=p(y);let I;var x=p(w),_=p(x);h(x);var T=g(x,2),C=p(T),D=p(C,!0);h(C),h(T),h(w);var P=g(w,2);let R;var A=p(P),M=p(A);h(A);var L=g(A,2),j=p(L),F=p(j,!0);h(j),h(L),h(P),h(y);var V=g(y,2),W=p(V),Q=p(W);h(W);var G=g(W,2),$=p(G);Se($,21,()=>a(l),xt,(ae,Y)=>{var Z=hk(),O=p(Z);h(Z),N(()=>{xe(Z,1,`diff-${a(Y).kind}`,"svelte-iwgja4"),z(O,`${a(Y).kind==="same"?" ":a(Y).kind==="left"?"- ":"+ "}${a(Y).text??""}
8
+ `)}),k(ae,Z)}),h($),h(G),h(V),N(()=>{I=xe(w,1,"sh3-conflict-text-pane svelte-iwgja4",null,I,{selected:a(s).origin===t.selectedOrigin}),z(_,`${a(s).origin??""} · v${a(s).version??""}`),z(D,a(s).content??""),R=xe(P,1,"sh3-conflict-text-pane svelte-iwgja4",null,R,{selected:a(o).origin===t.selectedOrigin}),z(M,`${a(o).origin??""} · v${a(o).version??""}`),z(F,a(o).content??""),z(Q,`Line diff (${a(c)??""} difference${a(c)===1?"":"s"})`)}),K("click",w,()=>t.onSelect(a(s).origin)),K("keydown",w,ae=>{(ae.key==="Enter"||ae.key===" ")&&t.onSelect(a(s).origin)}),K("click",P,()=>t.onSelect(a(o).origin)),K("keydown",P,ae=>{(ae.key==="Enter"||ae.key===" ")&&t.onSelect(a(o).origin)}),k(m,S)},v=m=>{var S=yk(),y=p(S),w=p(y),I=g(p(w));Se(I,21,()=>t.item.branches,C=>C.origin,(C,D)=>{var P=mk(),R=p(P,!0);h(P);var A={};N(()=>{z(R,a(D).origin),A!==(A=a(D).origin)&&(P.value=(P.__value=a(D).origin)??"")}),k(C,P)}),h(I),h(w),h(y);var x=g(y,2);Se(x,21,()=>t.item.branches,C=>C.origin,(C,D)=>{var P=bk();let R;var A=p(P);h(P),N(()=>{R=xe(P,1,"sh3-conflict-text-tab svelte-iwgja4",null,R,{selected:a(D).origin===t.selectedOrigin}),z(A,`${a(D).origin??""} · v${a(D).version??""}`)}),K("click",P,()=>t.onSelect(a(D).origin)),k(C,P)}),h(x);var _=g(x,2);{var T=C=>{var D=gk(),P=p(D),R=p(P,!0);h(P),h(D),N(()=>z(R,a(o).content??"")),k(C,D)};U(_,C=>{a(o)&&C(T)})}h(S),ua(I,()=>a(n),C=>b(n,C)),k(m,S)};U(d,m=>{a(r)&&a(s)&&a(o)?m(f):m(v,-1)})}h(u),k(e,u),ue()}_e(["click","keydown"]);var kk=E("· <code> </code>",1),xk=E('<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>'),Sk=E('<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 Ik(e,t){ce(t,!0);function n(i){return typeof i!="number"?"—":i<1024?`${i} B`:i<1024*1024?`${(i/1024).toFixed(1)} KiB`:`${(i/(1024*1024)).toFixed(2)} MiB`}function r(i){const l=Date.now()-i;return l<6e4?"just now":l<36e5?`${Math.floor(l/6e4)}m ago`:l<864e5?`${Math.floor(l/36e5)}h ago`:new Date(i).toLocaleString()}var s=Sk(),o=g(p(s),2);Se(o,21,()=>t.item.branches,i=>i.origin,(i,l)=>{var c=xk(),u=p(c);let d;var f=p(u),v=p(f,!0);h(f);var m=g(f,2),S=p(m),y=g(S);{var w=I=>{var x=kk(),_=g(ke(x)),T=p(_,!0);h(_),N(()=>z(T,a(l).hashPreview)),k(I,x)};U(y,I=>{a(l).hashPreview&&I(w)})}h(m),h(u),h(c),N((I,x)=>{d=xe(u,1,"sh3-conflict-meta-row svelte-1nz3djn",null,d,{selected:a(l).origin===t.selectedOrigin}),z(v,a(l).origin),z(S,`v${a(l).version??""} · ${I??""} · ${x??""} `)},[()=>r(a(l).at),()=>n(a(l).sizeBytes)]),K("click",u,()=>t.onSelect(a(l).origin)),k(i,c)}),h(o),h(s),k(e,s),ue()}_e(["click"]);const Ek=1048576;function Ck(e){return typeof e=="number"&&e>Ek}const Ak={id:"sh3-core.text",priority:1,appliesTo:e=>fk(e)!=="text"?!1:!e.branches.some(t=>Ck(t.sizeBytes)),mount(e,t){const n=at(wk,{target:e,props:t});return()=>{ft(n)}}},Tk={id:"sh3-core.meta",priority:0,appliesTo:()=>!0,mount(e,t){const n=at(Ik,{target:e,props:t});return()=>{ft(n)}}};let sd=!1;function Rk(){sd||(sd=!0,rd(Ak),rd(Tk))}var Pk=E('<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 Lk(e,t){var n=Pk(),r=p(n),s=p(r);h(r);var o=g(r,4),i=p(o);br(i,!0);var l=g(i,2),c=g(l,2);h(o),h(n),N(()=>z(s,`${t.count??""} conflict${t.count===1?"":"s"} to resolve`)),K("click",i,function(...u){t.onOverwriteMostRecent?.apply(this,u)}),K("click",l,function(...u){t.onResolveIndividually?.apply(this,u)}),K("click",c,function(...u){t.onCancel?.apply(this,u)}),k(e,n)}_e(["click"]);var Dk=E('<span class="sh3-conflict-detail-counter svelte-pw8iv6"> </span>'),Mk=E('<button type="button"><span><!></span> <span class="sh3-conflict-detail-rail-label svelte-pw8iv6"> </span></button>'),jk=E('<aside class="sh3-conflict-detail-rail svelte-pw8iv6"></aside>'),zk=E('<label class="sh3-conflict-detail-branch svelte-pw8iv6"><input type="radio"/> <span> </span></label>'),Ok=E('<div class="sh3-conflict-detail-branches svelte-pw8iv6"></div> <div class="sh3-conflict-detail-renderer svelte-pw8iv6"></div>',1),Nk=E('<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 qk(e,t){ce(t,!0);const n=B(()=>t.items[t.currentIndex]),r=B(()=>a(n)?t.selections[a(n).id]??a(n).branches[0]?.origin??"":""),s=B(()=>a(n)?vk(a(n),t.contributed):null);let o=q(void 0),i=null;Ne(()=>{if(a(n),a(s),a(r),i&&(i(),i=null),!a(o)||!a(n)||!a(s))return;const W={item:a(n),selectedOrigin:a(r),onSelect:Q=>t.onSelect(a(n).id,Q)};return i=a(s).mount(a(o),W),()=>{i&&(i(),i=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=B(()=>t.items.map(W=>t.skipped[W.id]?"skipped":t.selections[W.id]?"resolved":"pending"));var d=Nk(),f=p(d),v=p(f),m=p(v,!0);h(v);var S=g(v,2);{var y=W=>{var Q=Dk(),G=p(Q);h(Q),N(()=>z(G,`${t.currentIndex+1} / ${t.items.length??""}`)),k(W,Q)};U(S,W=>{t.items.length>1&&W(y)})}h(f);var w=g(f,2),I=p(w);{var x=W=>{var Q=jk();Se(Q,23,()=>t.items,G=>G.id,(G,$,ae)=>{var Y=Mk();let Z;var O=p(Y),H=p(O);{var J=de=>{var ye=Ht("✓");k(de,ye)},X=de=>{var ye=Ht("⟶");k(de,ye)},le=de=>{var ye=Ht("·");k(de,ye)};U(H,de=>{a(u)[a(ae)]==="resolved"?de(J):a(u)[a(ae)]==="skipped"?de(X,1):de(le,-1)})}h(O);var me=g(O,2),se=p(me,!0);h(me),h(Y),N(()=>{Z=xe(Y,1,"sh3-conflict-detail-rail-item svelte-pw8iv6",null,Z,{selected:a(ae)===t.currentIndex}),xe(O,1,`sh3-conflict-detail-rail-state ${a(u)[a(ae)]??""}`,"svelte-pw8iv6"),z(se,a($).label)}),K("click",Y,()=>t.onNavigate(a(ae))),k(G,Y)}),h(Q),k(W,Q)};U(I,W=>{t.items.length>1&&W(x)})}var _=g(I,2),T=p(_);{var C=W=>{var Q=Ok(),G=ke(Q);Se(G,21,()=>a(n).branches,ae=>ae.origin,(ae,Y)=>{var Z=zk(),O=p(Z);De(O);var H=g(O,2),J=p(H);h(H),h(Z),N(()=>{ie(O,"name",`branch-${a(n).id??""}`),da(O,a(Y).origin),za(O,a(r)===a(Y).origin),z(J,`${a(Y).origin??""} · v${a(Y).version??""}`)}),K("change",O,()=>t.onSelect(a(n).id,a(Y).origin)),k(ae,Z)}),h(G);var $=g(G,2);Qe($,ae=>b(o,ae),()=>a(o)),k(W,Q)};U(T,W=>{a(n)&&W(C)})}h(_),h(w);var D=g(w,2),P=p(D),R=p(P),A=g(R,2),M=p(A,!0);h(A);var L=g(A,2);h(P);var j=g(P,2),F=p(j),V=g(F,2);h(j),h(D),h(d),N(()=>{z(m,t.title),R.disabled=t.currentIndex===0,z(M,a(n)&&t.skipped[a(n).id]?"Unskip":"Skip"),L.disabled=t.currentIndex>=t.items.length-1}),K("click",R,l),K("click",A,()=>a(n)&&t.onToggleSkip(a(n).id)),K("click",L,c),K("click",F,function(...W){t.onCancel?.apply(this,W)}),K("click",V,function(...W){t.onDone?.apply(this,W)}),k(e,d),ue()}_e(["click","change"]);function gh(e,t){return t.at-e.at}function Fk(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(gh)[0]}}function Bk(e,t){ce(t,!0);const n=t.items.length>=2||t.requirePrompt;let r=q(he(n?"prompt":"detail")),s=q(he(Object.fromEntries(t.items.map(_=>{const T=Fk(_.branches,t.mostRecentBy)?.origin??_.branches[0]?.origin??"";return[_.id,T]})))),o=q(he({})),i=q(0),l=!1;wc(()=>{l||(l=!0,t.onCancel())});function c(){if(l)return;l=!0;const _=[],T=[];for(const C of t.items){if(a(o)[C.id]){T.push(C.id);continue}const D=a(s)[C.id],P=C.branches.find(R=>R.origin===D);P&&_.push({itemId:C.id,chosen:P,meta:C.meta})}t.onResolve(_,T),t.close()}function u(){l||(l=!0,t.onCancel(),t.close())}function d(){c()}function f(){b(r,"detail")}function v(_,T){if(b(s,{...a(s),[_]:T},!0),a(o)[_]){const C={...a(o)};delete C[_],b(o,C,!0)}}function m(_){b(o,{...a(o),[_]:!a(o)[_]},!0)}function S(_){b(i,_,!0)}var y=Ze(),w=ke(y);{var I=_=>{Lk(_,{get count(){return t.items.length},onOverwriteMostRecent:d,onResolveIndividually:f,onCancel:u})},x=_=>{qk(_,{get items(){return t.items},get selections(){return a(s)},get skipped(){return a(o)},get currentIndex(){return a(i)},get title(){return t.title},get contributed(){return t.contributed},onSelect:v,onNavigate:S,onToggleSkip:m,onDone:c,onCancel:u})};U(w,_=>{a(r)==="prompt"?_(I):_(x,-1)})}k(e,y),ue()}const yh="sh3-core.conflictRenderer";class _h extends Error{constructor(t){super(t),this.name="ConflictPermissionError"}}class Vk extends Error{constructor(){super("Caller shard deactivated while conflict session was active"),this.name="ConflictSessionOrphanedError"}}function Uk(){try{return Jr(yh)}catch{return[]}}function wh(e,t={}){return Rk(),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??gh,o=t.requirePrompt??!1,i=Uk();let l=!1;const d={items:e,title:r,mostRecentBy:s,requirePrompt:o,contributed:i,onResolve:(f,v)=>{l||(l=!0,n({status:"resolved",choices:f,skipped:v}))},onCancel:()=>{l||(l=!0,n({status:"cancelled"}))}};xn.open(Bk,d,{boxStyle:"max-width: none; min-width: 360px; padding: 0;"})})}function Hk(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 Kk(e,t){const n=e.browse;if(!n?.statusFrom||!n?.readBranchFrom||!n?.resolveConflictFrom)throw new _h(`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 Wk(e){const t=e.lastIndexOf(".");if(t<0)return;const n=e.lastIndexOf("/");if(!(t<n))return e.slice(t)}async function Yk(e,t,n={}){const r=e.shardId,s=t.shardId===r?Hk(e):Kk(e,t.shardId),o=[];for(const d of t.paths){const f=await s.status(d);f&&f.syncState==="conflict"&&f.branches&&f.branches.length>0&&o.push({path:d,status:f})}if(o.length===0)return{status:"resolved",resolved:[],failed:[],skipped:[]};const i=[];for(const{path:d,status:f}of o){const v=Wk(d),m=[];for(const S of f.branches??[]){const y=await s.readBranch(d,S.origin).catch(()=>null);m.push({origin:S.origin,version:S.version,at:S.at,content:y??void 0,sizeBytes:y?new TextEncoder().encode(y).length:void 0})}i.push({id:d,label:d,extension:v,branches:m,meta:{shardId:t.shardId,path:d,docVersion:f.version}})}const l=await wh(i,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 Xk={resolve:wh,resolveDocuments:Yk},kh="sh3.color-picker",Gk={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=o=>{r||(r=!0,n.remove(),t(o))};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 Jk(e={}){return[...Jr(kh),Gk].sort((r,s)=>(s.priority??0)-(r.priority??0))[0].open(e)}const Zk={pick:Jk};let Tr=null;function Qk(e){Tr=e}async function hs(e){return Tr?{...Tr.bindings[e]??{}}:{}}async function ad(e,t,n){if(!Tr)return;const r={...Tr.bindings[e]??{}};n===void 0?delete r[t]:r[t]=n,Tr.bindings={...Tr.bindings,[e]:r}}const Vc="sh3.actions",Ki=new Set;function $k(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.`),()=>{};Ki.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.`),Ki.add(e.id);const r=oh(Vc,{action:e,ownerShardId:t});let s=!1;return()=>{s||(s=!0,r(),Ki.delete(e.id))}}function mt(){return Jr(Vc)}function e0(e){return di(Vc,e)}function t0(e){const t=e.action.disabled;return typeof t=="function"?!!t():!!t}function n0(e){const t=e.action.scope;return Array.isArray(t)?t[0]:t}function Uc(e,t){const n={element:[],focus:[],view:[],app:[],home:[]},r=[],s=new Set;for(const o of e){if(s.has(o.action.id))continue;s.add(o.action.id);const{shortcut:i,source:l}=h1(o.action,t.bindings,t.platform),c=Ba(o.action.scope,t,o.ownerShardId),u=typeof o.action.run=="function",d=c!==null&&u&&!t0(o),f=d?c:n0(o),v={id:o.action.id,label:un(o.action),effectiveShortcut:i,bindingSource:l,scope:f,scopeBadge:sh(f),group:o.action.group,icon:o.action.icon,ownerShardId:o.ownerShardId,paletteItem:o.action.paletteItem!==!1,contextItem:o.action.contextItem!==!1,submenu:o.action.submenu,submenuOf:o.action.submenuOf,active:d};d?n[ui(c)].push(v):r.push(v)}return[...ci.flatMap(o=>n[o]),...r]}function r0(e,t){return Uc(e,t).filter(n=>n.active)}let Cn=q(null);function Ha(){return a(Cn)}function pi(e){return{get(){return a(Cn)},set(t){b(Cn,{type:t.type,ref:t.ref,ownerShardId:e},!0)},clear(){if(a(Cn)){if(a(Cn).ownerShardId!==e){console.warn(`[sh3] Shard "${e}" tried to clear selection owned by "${a(Cn).ownerShardId}". Ignoring.`);return}b(Cn,null)}}}}function xh(e){a(Cn)&&a(Cn).ownerShardId===e&&b(Cn,null)}function s0(){b(Cn,null)}let Sh=q(null),Ih=q(he(new Set)),fo=q(he(new Set)),Eh=q(he(new Set)),Ch=q(null),Ah=q(he({}));const a0=v1(),Tl=new Set;function zs(){for(const e of Tl)try{e()}catch(t){console.error("[sh3] onActiveChange listener threw",t)}}function o0(e){return Tl.add(e),()=>{Tl.delete(e)}}function i0(){zs()}function Do(e,t){b(Sh,e,!0),b(Ih,new Set(t),!0),zs()}function l0(){const e=Oc(Ct.tree),t=new Set;for(const n of e)n.viewId!==null&&t.add(n.viewId);b(Eh,t,!0),zs()}function Th(e){b(Ch,e,!0),zs()}function ga(e){b(Ah,{...e},!0),zs()}function jt(){return{activeAppId:a(Sh),activeAppRequiredShards:a(Ih),autostartShards:a(fo),mountedViewIds:a(Eh),focusedViewId:a(Ch),selection:Ha(),bindings:a(Ah),platform:a0}}function Rh(e){a(fo).has(e)||(b(fo,new Set([...a(fo),e]),!0),zs())}var c0=E('<div class="sh3-ctx-sep svelte-1667pfa" role="separator"></div>'),u0=E('<span class="sh3-ctx-chevron svelte-1667pfa">▸</span>'),d0=E('<span class="sh3-ctx-shortcut svelte-1667pfa"> </span>'),f0=E('<button role="menuitem"><span class="sh3-ctx-check svelte-1667pfa"> </span> <span class="sh3-ctx-label svelte-1667pfa"> </span> <!></button>'),v0=E("<!> <!>",1),h0=E('<div class="sh3-context-menu svelte-1667pfa" role="menu" tabindex="0"></div>');function Mo(e,t){ce(t,!0);const n=B(()=>t.sections.flatMap(c=>c.items));let r=q(0);function s(c,u){if(a(n).length===0)return 0;let d=c;for(let f=0;f<a(n).length;f++)if(d=(d+u+a(n).length)%a(n).length,!a(n)[d].disabled)return d;return c}function o(c){if(c.key==="ArrowDown")b(r,s(a(r),1),!0),c.preventDefault();else if(c.key==="ArrowUp")b(r,s(a(r),-1),!0),c.preventDefault();else if(c.key==="Enter"){const u=a(n)[a(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=(a(r)+1)%a(n).length;for(let f=0;f<a(n).length;f++){const v=(d+f)%a(n).length,m=a(n)[v];if(!m.disabled&&m.label.toLowerCase().startsWith(u)){b(r,v);break}}}}function i(c){c.disabled||(t.onInvoke(c.id),c.submenu||t.onDismiss())}var l=h0();br(l,!0),Se(l,23,()=>t.sections,c=>c.id,(c,u,d)=>{var f=v0(),v=ke(f);{var m=y=>{var w=c0();k(y,w)};U(v,y=>{a(d)>0&&y(m)})}var S=g(v,2);Se(S,17,()=>a(u).items,y=>y.id,(y,w)=>{const I=B(()=>a(n).indexOf(a(w)));var x=f0();let _;var T=p(x),C=p(T,!0);h(T);var D=g(T,2),P=p(D,!0);h(D);var R=g(D,2);{var A=L=>{var j=u0();k(L,j)},M=L=>{var j=d0(),F=p(j,!0);h(j),N(()=>z(F,a(w).shortcut)),k(L,j)};U(R,L=>{a(w).submenu?L(A):a(w).shortcut&&L(M,1)})}h(x),N(()=>{_=xe(x,1,"sh3-ctx-item svelte-1667pfa",null,_,{"sh3-ctx-active":a(I)===a(r),"sh3-ctx-disabled":a(w).disabled}),ie(x,"aria-disabled",a(w).disabled||void 0),z(C,a(w).checked?"✓":""),z(P,a(w).label)}),Ke("pointerenter",x,()=>{a(w).disabled||b(r,a(I),!0)}),K("click",x,()=>i(a(w))),k(y,x)}),k(c,f)}),h(l),K("keydown",l,o),k(e,l),ue()}_e(["keydown","click"]);function Ph(e,t){ce(t,!0);const n=B(()=>t.model.tiers.map(r=>({id:`tier:${r.tier}`,items:r.items.map(s=>({...s,icon:void 0}))})));Mo(e,{get sections(){return a(n)},get onInvoke(){return t.onInvoke},get onDismiss(){return t.onClose}}),ue()}function od(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function Lh(e,t){return{id:e.action.id,label:un(e.action),shortcut:Fa(e.action,t.bindings,t.platform),group:e.action.group??"",icon:e.action.icon,checked:od(e.action.checked),disabled:od(e.action.disabled),submenu:e.action.submenu===!0}}function Dh(e,t,n,r){return Mc(e.scope).some(o=>_1(o,n))?n==="app"||n==="home"||typeof n=="object"&&"element"in n?pa(n,r,t):!0:!1}function Mh(e,t,n){const r={element:[],focus:[],view:[],app:[],home:[]},s=new Set;for(const o of e){if(!o.action.contextItem||o.action.submenuOf!==void 0||s.has(o.action.id)||!Dh(o.action,o.ownerShardId,n,t))continue;const i=Ba(o.action.scope,t,o.ownerShardId)??n;s.add(o.action.id),r[ui(i)].push(Lh(o,t))}return{tiers:ci.map(o=>({tier:o,items:r[o]})).filter(o=>o.items.length>0)}}function p0(e,t,n,r){const s=[],o=new Set;for(const i of e)i.action.submenuOf===n&&(o.has(i.action.id)||Dh(i.action,i.ownerShardId,r,t)&&(o.add(i.action.id),s.push(Lh(i,t))));return s}function m0(e,t){if(!t)return 0;const n=e.toLowerCase(),r=t.toLowerCase();let s=0,o=0,i=0,l=0,c=-2;for(;s<n.length&&o<r.length;){if(n[s]===r[o]){const u=s===0?5:0,d=s===c+1?++l:l=1;i+=1+u+d,c=s,o++}else l=0;s++}return o===r.length?i:null}function b0(e,t,n){const r=[];for(const o of e){if(t===""&&o.submenuOf!==void 0)continue;const i=m0(o.label,t);i!==null&&r.push({...o,score:i})}const s=new Map;return n.forEach((o,i)=>s.set(o,n.length-i)),r.sort((o,i)=>{if(o.score!==i.score)return i.score-o.score;const l=s.get(o.id)??0;return(s.get(i.id)??0)-l}),r}var g0=E('<span class="sh3-palette-badge svelte-1qdcgk6"> </span>'),y0=E('<span class="sh3-palette-shortcut svelte-1qdcgk6"> </span>'),_0=E('<button role="option"><span class="sh3-palette-label svelte-1qdcgk6"> </span> <!> <!></button>'),w0=E('<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 k0(e,t){ce(t,!0);let n=te(t,"prefill",3,""),r=q(he(n())),s=q(0);const o=B(()=>b0(t.candidates,a(r),t.recency));Ne(()=>{a(s)>=a(o).length&&b(s,0)});function i(d){d.key==="ArrowDown"?(b(s,Math.min(a(s)+1,Math.max(0,a(o).length-1)),!0),d.preventDefault()):d.key==="ArrowUp"?(b(s,Math.max(a(s)-1,0),!0),d.preventDefault()):d.key==="Enter"?(a(o)[a(s)]&&(t.onInvoke(a(o)[a(s)].id),t.onClose()),d.preventDefault()):d.key==="Escape"&&(t.onClose(),d.preventDefault())}var l=w0(),c=p(l);De(c);var u=g(c,2);Se(u,23,()=>a(o),d=>d.id,(d,f,v)=>{var m=_0();let S;var y=p(m),w=p(y,!0);h(y);var I=g(y,2);{var x=C=>{var D=g0(),P=p(D);h(D),N(()=>z(P,`[${a(f).scopeBadge??""}]`)),k(C,D)};U(I,C=>{a(f).scopeBadge&&C(x)})}var _=g(I,2);{var T=C=>{var D=y0(),P=p(D,!0);h(D),N(()=>z(P,a(f).shortcut)),k(C,D)};U(_,C=>{a(f).shortcut&&C(T)})}h(m),N(()=>{S=xe(m,1,"sh3-palette-item svelte-1qdcgk6",null,S,{"sh3-palette-active":a(v)===a(s)}),ie(m,"aria-selected",a(v)===a(s)),z(w,a(f).label)}),Ke("pointerenter",m,()=>b(s,a(v),!0)),K("click",m,()=>{t.onInvoke(a(f).id),t.onClose()}),k(d,m)}),h(u),h(l),K("keydown",l,i),qe(c,()=>a(r),d=>b(r,d)),k(e,l),ue()}_e(["keydown","click"]);function x0(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function S0(e,t,n={}){const r=[],s=new Set,o=n.filter?.submenuOf;for(const i of e){if(i.action.paletteItem===!1||x0(i.action.disabled)||o!==void 0&&i.action.submenuOf!==o||s.has(i.action.id))continue;const l=Ba(i.action.scope,t,i.ownerShardId);l&&(s.add(i.action.id),r.push({id:i.action.id,label:un(i.action),shortcut:Fa(i.action,t.bindings,t.platform),scopeBadge:sh(l),submenu:i.action.submenu===!0,submenuOf:o!==void 0?void 0:i.action.submenuOf}))}return r}let id=!1;function Hc(e){return e?e.closest("[data-sh3-view]")?.getAttribute("data-sh3-view")??null:null}function jh(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=w1(n.getAttribute("data-sh3-scope")??"");if(s&&!(typeof s=="object"&&"element"in s&&!pa(s,e.state)))return s;const o=n.parentElement;n=o?o.closest("[data-sh3-scope]"):null}const r=Hc(t);if(r)return`focus:${r}`}return e.state.activeAppId?"app":"home"}function I0(e,t){const n=mt().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 zh(e,t){const n=mt(),r=n.find(l=>l.action.id===e);if(!r)return Promise.reject(new Error(`action "${e}" not registered`));const s=jt(),o=Uc(n,s).find(l=>l.id===e);if(!o||!o.active)return r.action.submenu===!0&&typeof r.action.run!="function"?Promise.reject(new Error(`action "${e}" is a submenu parent — list children with listActions({ submenuOf: "${e}" })`)):Promise.reject(new Error(`action "${e}" is not active in current scope`));const i=r.action.run;try{const l=i({action:{id:r.action.id,label:un(r.action)},appId:s.activeAppId,viewId:s.focusedViewId??void 0,selection:s.selection??void 0,invokedVia:"programmatic",dispatch:Os});return Promise.resolve(l).then(()=>{})}catch(l){return Promise.reject(l)}}function Os(e){zh(e).catch(t=>{console.error(`[sh3] ctx.dispatch("${e}"):`,t)})}function E0(e){const t=Hc(e.target);Th(t)}function C0(e){queueMicrotask(()=>{const t=Hc(document.activeElement);Th(t)})}function A0(e){return e instanceof Element?e.closest('[data-sh3-context-menu="native"]')!==null:!1}function Oh(e,t,n,r){const s=document.querySelector(".sh3-popup-host");if(!s)return;const o=document.createElement("div");o.className="sh3-popup-submenu",o.style.position="absolute",o.style.pointerEvents="auto";const l=(s.querySelector(".sh3-ctx-active")??s).getBoundingClientRect();o.style.left=`${l.right+2}px`,o.style.top=`${l.top}px`,s.appendChild(o);const c=p0(mt(),t,e,r);at(Mo,{target:o,props:{sections:[{id:`submenu:${e}`,items:c}],onInvoke:u=>{const d=mt().find(f=>f.action.id===u);if(!(!d||typeof d.action.run!="function")){try{d.action.run({action:{id:u,label:un(d.action)},appId:t.activeAppId,viewId:t.focusedViewId??void 0,selection:t.selection??void 0,invokedVia:"context-menu",dispatch:Os})}catch(f){console.error(`[sh3] context-menu submenu action "${u}" threw:`,f)}n.close()}},onDismiss:()=>n.close()}})}function T0(e){if(A0(e.target))return;const t=mt(),n=jt(),r=jh({event:e,state:n}),s=Mh(t,n,r);if(s.tiers.length===0)return;e.preventDefault();const o=vt.popup.show(Ph,{anchor:{x:e.clientX,y:e.clientY}},{model:s,onInvoke:i=>{const l=mt().find(c=>c.action.id===i);if(l){if(l.action.submenu===!0){Oh(i,n,o,r);return}if(typeof l.action.run=="function")try{l.action.run({action:{id:i,label:un(l.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:Os})}catch(c){console.error(`[sh3] context-menu action "${i}" threw:`,c)}}},onClose:()=>o.close()})}function R0(e){const t=f1(e);if(!t)return;const n=mt(),r=jt();y1({target:e.target,shortcut:t,state:r,entries:n,runAction:I0,dispatch:Os})&&e.preventDefault()}function ld(){id||(id=!0,document.addEventListener("keydown",R0),document.addEventListener("focusin",E0),document.addEventListener("focusout",C0),document.addEventListener("contextmenu",T0))}function Nh(e){const t=mt(),n=jt(),r=jh({explicit:e.scope,state:n}),s=Mh(t,n,r);if(s.tiers.length===0)return;const o=vt.popup.show(Ph,{anchor:{x:e.x,y:e.y}},{model:s,onInvoke:i=>{const l=mt().find(c=>c.action.id===i);if(l){if(l.action.submenu===!0){Oh(i,n,o,r);return}if(typeof l.action.run=="function")try{l.action.run({action:{id:i,label:un(l.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:Os})}catch(c){console.error(`[sh3] context-menu action "${i}" threw:`,c)}}},onClose:()=>o.close()})}const P0=20;let Rl=[];function L0(e){Rl=[e,...Rl.filter(t=>t!==e)].slice(0,P0)}function mi(e){const t=mt(),n=jt(),r=S0(t,n,{filter:e?.filter}),s=typeof document<"u"&&document.activeElement instanceof HTMLElement?document.activeElement:null,o=vt.modal.open(k0,{candidates:r,recency:Rl,prefill:e?.prefill??"",onInvoke:i=>{const l=mt().find(c=>c.action.id===i);if(l){if(L0(i),l.action.submenu===!0&&typeof l.action.run!="function"){o.close(),mi({filter:{submenuOf:i}});return}if(typeof l.action.run=="function")try{l.action.run({action:{id:i,label:un(l.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"palette",dispatch:Os})}catch(c){console.error(`[sh3] palette action "${i}" threw:`,c)}}},onClose:()=>o.close()},{dismissOnBackdrop:!0,initialFocus:!(typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(hover: none) and (pointer: coarse)").matches)});if(s){const i=o.close;o.close=()=>{i(),queueMicrotask(()=>{(document.activeElement===document.body||document.activeElement===null)&&s.focus()})}}}const Rr=[];let D0=0;function M0(){return`term-${++D0}`}function j0(e){Rr.push(e);let t=!1;return()=>{if(t)return;t=!0;const n=Rr.indexOf(e);n!==-1&&Rr.splice(n,1)}}function z0(){if(Rr.length===0)return{ok:!1,error:"no-terminal"};if(Rr.length===1)return{ok:!0,handle:Rr[0]};let e=null,t=0;for(const n of Rr){const r=n.getFocusStamp();r>0&&r>=t&&(e=n,t=r)}return e===null?{ok:!1,error:"ambiguous"}:{ok:!0,handle:e}}const cd={"no-terminal":"no terminal open",ambiguous:"multiple terminals open; focus one first","no-active-context":"dispatchToTerminal is not available in this context"};function Kc(e){return e.headless?()=>({ok:!1,error:"no-active-context",message:cd["no-active-context"]}):t=>{const n=z0();return n.ok?(n.handle.dispatch(t),{ok:!0,terminalId:n.handle.id}):{ok:!1,error:n.error,message:cd[n.error]}}}const O0={async rebind(e,t,n){await ad(e,t,n),jt().activeAppId===e&&ga(await hs(e))},async resetBinding(e,t){await ad(e,t,void 0),jt().activeAppId===e&&ga(await hs(e))},async bindingsFor(e){const t=await hs(e),n={};for(const[r,s]of Object.entries(t))s!==null&&(n[r]=s);return n},openContextMenu:Nh,openPalette:mi,listActive(){return r0(mt(),jt())},onActiveChange(e){const t=o0(e),n=e0(()=>{i0()});return()=>{t(),n()}}},vt={state:ai,modal:xn,popup:wl,toast:Yn,float:Ge,presets:B1,conflicts:Xk,color:Zk,actions:O0,dispatchToTerminal:Kc({headless:!1}),viewport:{get current(){return Rn.current},subscribe:e=>Rn.subscribe(e),override:e=>Rn.override(e),get pinned(){return Rn.pinned}},drawers:{get state(){return nn.state},open:e=>{Za("open"),nn.open(e)},close:e=>{Za("close"),nn.close(e)},toggle:e=>{Za("toggle"),nn.toggle(e)},activate:(e,t)=>{Za("activate"),nn.activate(e,t)}}};function Za(e){const t=Rn.current.class;if(t!=="compact")throw new Error(`Sh3.drawers.${e}: viewport class is "${t}"; drawers exist only on compact`)}function N0(e){return On[e].list()}function q0(e,t){return On[e].read(t)}function F0(e,t){On[e].delete(t)}function B0(e){for(const t of On[e].list())On[e].delete(t)}function Pl(){return{list:N0,peek:q0,clear:F0,clearAll:B0}}function In(e,t,n){return`${e}/${t}/${n}`}function ud(e,t){return`${e}/${t}/`}const V0="sh3-documents",bt="docs",$t="folders",U0=3;class qh{#e=null;#t(){return this.#e||(this.#e=new Promise((t,n)=>{const r=indexedDB.open(V0,U0);r.onupgradeneeded=()=>{const s=r.result;s.objectStoreNames.contains(bt)||s.createObjectStore(bt),s.objectStoreNames.contains($t)||s.createObjectStore($t)},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,o)=>{const l=r.transaction(bt,t).objectStore(bt),c=n(l);c.onsuccess=()=>s(c.result),c.onerror=()=>o(c.error)})}async#r(t,n,r){const s=await this.#t();return new Promise((o,i)=>{const c=s.transaction(t,n).objectStore(t),u=r(c);u.onsuccess=()=>o(u.result),u.onerror=()=>i(u.error)})}async read(t,n,r){const s=In(t,n,r),o=await this.#n("readonly",i=>i.get(s));return o?o.content:null}async write(t,n,r,s){const o=In(t,n,r),i=typeof s=="string"?new Blob([s]).size:s.byteLength,l={content:s,size:i,lastModified:Date.now()};await this.#n("readwrite",c=>c.put(l,o))}async delete(t,n,r){const s=In(t,n,r);await this.#n("readwrite",o=>o.delete(s))}async rename(t,n,r,s){const o=In(t,n,r),i=In(t,n,s),l=await this.#t();return new Promise((c,u)=>{let d=!1;const f=l.transaction(bt,"readwrite"),v=f.objectStore(bt),m=v.get(o);m.onsuccess=()=>{const S=m.result;if(!S){d=!0,f.abort(),u(new Error(`Document not found at ${r}`));return}const y=v.getKey(i);y.onsuccess=()=>{if(y.result!==void 0){d=!0,f.abort(),u(new Error(`Document already exists at ${s}`));return}const w={...S,lastModified:Date.now()};v.put(w,i),v.delete(o)},y.onerror=()=>u(y.error)},m.onerror=()=>u(m.error),f.oncomplete=()=>c(),f.onerror=()=>{d||u(f.error)},f.onabort=()=>{}})}async list(t,n){const r=ud(t,n),s=await this.#t();return new Promise((o,i)=>{const c=s.transaction(bt,"readonly").objectStore(bt),u=IDBKeyRange.bound(r,r+"￿",!1,!1),d=c.openCursor(u),f=[];d.onsuccess=()=>{const v=d.result;if(v){const m=v.value;f.push({path:v.key.slice(r.length),size:m.size,lastModified:m.lastModified}),v.continue()}else o(f)},d.onerror=()=>i(d.error)})}async exists(t,n,r){const s=In(t,n,r);return await this.#n("readonly",i=>i.getKey(s))!==void 0}async listAllShards(t){const n=`${t}/`,r=await this.#t();return new Promise((s,o)=>{const l=r.transaction(bt,"readonly").objectStore(bt),c=IDBKeyRange.bound(n,n+"￿",!1,!1),u=l.openKeyCursor(c),d=new Set;u.onsuccess=()=>{const f=u.result;if(f){const v=f.key.slice(n.length),m=v.indexOf("/");m>=0&&d.add(v.slice(0,m)),f.continue()}else s([...d])},u.onerror=()=>o(u.error)})}async listAllDocuments(t){const n=`${t}/`,r=await this.#t();return new Promise((s,o)=>{const l=r.transaction(bt,"readonly").objectStore(bt),c=IDBKeyRange.bound(n,n+"￿",!1,!1),u=l.openCursor(c),d=[];u.onsuccess=()=>{const f=u.result;if(f){const v=f.key.slice(n.length),m=v.indexOf("/");if(m>=0){const S=f.value;d.push({shardId:v.slice(0,m),path:v.slice(m+1),size:S.size,lastModified:S.lastModified})}f.continue()}else s(d)},u.onerror=()=>o(u.error)})}async mkdir(t,n,r){const s=In(t,n,r);if(await this.#n("readonly",i=>i.getKey(s))!==void 0)throw new Error(`Cannot mkdir ${r}: a document occupies this path`);await this.#r($t,"readwrite",i=>i.put(1,s))}async rmdir(t,n,r,s){const o=In(t,n,r),i=o+"/",l=i+"￿",c=await this.#n("readonly",f=>f.getAllKeys(IDBKeyRange.bound(i,l,!1,!1))),u=await this.#r($t,"readonly",f=>f.getAllKeys(IDBKeyRange.bound(i,l,!1,!1)));if(!s.recursive&&(c.length>0||u.length>0))throw new Error(`Cannot rmdir ${r}: folder is not empty`);const d=await this.#t();await new Promise((f,v)=>{const m=d.transaction([bt,$t],"readwrite"),S=m.objectStore(bt),y=m.objectStore($t);for(const w of c)S.delete(w);for(const w of u)y.delete(w);y.delete(o),m.oncomplete=()=>f(),m.onerror=()=>v(m.error)})}async renameFolder(t,n,r,s){const o=In(t,n,r),i=In(t,n,s),l=o+"/",c=i+"/",u=l+"￿",d=c+"￿",[f,v,m,S,y,w]=await Promise.all([this.#n("readonly",_=>_.getAllKeys(IDBKeyRange.bound(l,u,!1,!1))),this.#r($t,"readonly",_=>_.getAllKeys(IDBKeyRange.bound(l,u,!1,!1))),this.#r($t,"readonly",_=>_.getKey(o)),this.#n("readonly",_=>_.getAllKeys(IDBKeyRange.bound(c,d,!1,!1))),this.#r($t,"readonly",_=>_.getAllKeys(IDBKeyRange.bound(c,d,!1,!1))),this.#r($t,"readonly",_=>_.getKey(i))]);if(f.length===0&&v.length===0&&m===void 0)throw new Error(`Cannot rename folder ${r}: does not exist`);if(S.length>0||y.length>0||w!==void 0)throw new Error(`Cannot rename folder to ${s}: already exists`);const I=await new Promise((_,T)=>{this.#t().then(C=>{const R=C.transaction(bt,"readonly").objectStore(bt).openCursor(IDBKeyRange.bound(l,u,!1,!1)),A=[];R.onsuccess=()=>{const M=R.result;M?(A.push({key:M.key,value:M.value}),M.continue()):_(A)},R.onerror=()=>T(R.error)})}),x=await this.#t();await new Promise((_,T)=>{const C=x.transaction([bt,$t],"readwrite"),D=C.objectStore(bt),P=C.objectStore($t);for(const{key:R,value:A}of I){const M=i+"/"+R.slice(l.length);D.delete(R),D.put({...A,lastModified:Date.now()},M)}m!==void 0&&P.delete(o),P.put(1,i);for(const R of v){const A=R,M=i+"/"+A.slice(l.length);P.delete(R),P.put(1,M)}C.oncomplete=()=>_(),C.onerror=()=>T(C.error)})}async listFolders(t,n,r){const s=r?In(t,n,r)+"/":ud(t,n),o=s+"￿",i=new Set,l=await this.#r($t,"readonly",u=>u.getAllKeys(IDBKeyRange.bound(s,o,!1,!1)));for(const u of l){const d=u.slice(s.length),f=d.indexOf("/");i.add(f>=0?d.slice(0,f):d)}const c=await this.#n("readonly",u=>u.getAllKeys(IDBKeyRange.bound(s,o,!1,!1)));for(const u of c){const d=u.slice(s.length),f=d.indexOf("/");f>=0&&i.add(d.slice(0,f))}return[...i].sort()}}const H0="local";let Wc=H0,Fh=new qh,Bh=null;function dd(e){Bh=e}function Ka(){return Bh?.()??Wc}function K0(){return Wc}function Wi(){return Ka()}function Yi(){return Fh}function Hs(e){Wc=e}function fd(e){Fh=e}const bn=he({activeProjectId:null});function Vh(e){if(bn.activeProjectId===e)return;const t=It.id;bn.activeProjectId=e,ks.id=null,t&&Yc(t)}const Uh=ai("__sh3core__:last-app",{user:{id:null}});function W0(){return Uh.user.id}function ya(e){Uh.user.id=e}function Y0(){ya(null)}const Ll=new Map;function X0(){return bn.activeProjectId??Ka()}function Qa(e,t,n){let r=Ll.get(e);if(!r){const s=Nn(e),o=X0();r={scopeId:o,getScope:()=>bn.activeProjectId?"project":"tenant",args:n??{},state:i=>ai(`__app__:${e}:scope:${o}`,i),zones:s?.manifest.permissions?.includes(fa)?Pl():void 0,gestures:Uw(typeof document<"u"?document.body:null)},Ll.set(e,r)}return r}async function lr(e,t={}){const n=Nn(e);if(!n)throw new Error(`Cannot launch app "${e}": not registered`);if(It.id&&It.id!==e)Yc(It.id,t.skipSwitchToHome);else if(It.id===e){for(const r of n.manifest.requiredShards){const s=kn.get(r),o=f3(r);s&&o&&s.resume?.(o)}n.resume?.(Qa(e)),ed(),n.onAppReady?.(Qa(e)),t.skipLastApp||ya(e),ks.id=e,Do(e,new Set(n.manifest.requiredShards??[])),hs(e).then(ga);return}for(const r of n.manifest.requiredShards)if(!kn.has(r))throw new Error(`App "${e}" requires shard "${r}" which is not registered`);K1(n);try{for(const r of n.manifest.requiredShards)await qo(r,{phase:"launch"})}catch(r){fh();try{Yn.notify(`Couldn't launch "${n.manifest.label??e}": ${r instanceof Error?r.message:String(r)}`,{level:"error",duration:6e3})}catch{}throw r}Y1(),n.activate?.(Qa(e,void 0,t.args)),It.id=e,Do(e,new Set(n.manifest.requiredShards??[])),hs(e).then(ga),ed(),n.onAppReady?.(Qa(e)),t.skipLastApp||ya(e),ks.id=e}function Yc(e,t=!1){if(It.id!==e)return;const n=Nn(e);if(n){n.deactivate?.(),t||vh(),fh();for(const r of n.manifest.requiredShards){const s=kn.get(r);s&&(s.autostart||Si(r))}It.id=null,Do(null,new Set),s0(),qv(),hs("sh3.home").then(ga),Ll.delete(e)}}function Xc(e){yr.has(e)&&(It.id===e&&(Yc(e),ya(null)),yr.delete(e))}async function Ns(){const e=It.id?Nn(It.id):null;if(e){for(const t of e.manifest.requiredShards){const n=kn.get(t);if(n?.suspend&&await n.suspend()===!1)return!1}if(e.suspend&&await e.suspend()===!1)return!1}return qv(),vh(),Do(null,new Set),ya(null),!0}function Gc(e){Rn.current.class==="compact"&&(e.kind==="float"?Dn.setRoot({kind:"float",floatId:e.floatId}):Dn.reset())}function Hh(){return{root:dn(),source:hi()}}function G0(e){const t=dn().docked,n=Zc(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 J0(e){const t=dn();return gi(t.docked,n=>n.slotId===e)?(Gc({kind:"docked"}),!0):Kh(t,n=>n.slotId===e)}function bi(e){const t=dn();return gi(t.docked,n=>n.viewId===e)?(Gc({kind:"docked"}),!0):Kh(t,n=>n.viewId===e)}function gi(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(gi(n,t))return!0}return!1}function Kh(e,t){for(const n of e.floats)if(gi(n.content,t))return Ge.focus(n.id),Gc({kind:"float",floatId:n.id}),!0;return!1}function Z0(e,t){return Wh(e,t,!0)}function Q0(e,t){return Wh(e,t,!1)}function Wh(e,t,n){const r=dn().docked,s=Is(r,e);if(!s||s.type!=="split")return!1;const o=s;return t<0||t>=o.children.length?!1:(o.collapsed||(o.collapsed=o.children.map(()=>!1)),o.collapsed[t]=n,!0)}async function Jc(e){const t=dn(),n=t.docked;if(!Ss(n,e))return $0(t,e);const o=ih(e)?.closable;return!o||typeof o=="object"&&(!await o.canClose()||!Ss(n,e))?!1:(li(n,e),us(n),!0)}async function $0(e,t){for(const n of e.floats){if(!Ss(n.content,t))continue;const o=ih(t)?.closable;if(typeof o=="object"&&(!await o.canClose()||!Ss(n.content,t)))return!1;li(n.content,t);const i=n.content.type==="tabs"?n.content:null;return(!i||i.tabs.length===0)&&Ge.close(n.id),!0}return!1}function Yh(e){const t=dn(),n=Ss(t.docked,e);if(!n)return null;const r=n.entry,s=r.viewId;if(!s)return null;const o=r.label,i=r.meta;return li(t.docked,e),us(t.docked),Ge.open(s,{title:o,meta:i})}function Xh(e){const n=dn().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 Ge.close(e),!1;const o=s.tabs[s.activeTab??0]??s.tabs[0],i=Qc({slotId:o.slotId,viewId:o.viewId,label:o.label,meta:o.meta});return i&&Ge.close(e),i}function Zc(e){if(e.type==="tabs")return e;if(e.type==="split")for(const t of e.children){const n=Zc(t);if(n)return n}return null}function Gh(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=Gh(e.children[n],[...t,n]);if(r)return r}return null}function Qc(e){const t=dn().docked;if(bi(e.viewId??""))return!0;const n=Jh(t);if(n)return n.tabs.push(e),n.activeTab=n.tabs.length-1,!0;const r=Zh(t);if(r)return Sl(t,r,e,"right"),!0;const s=Zc(t);if(s)return s.tabs.push(e),s.activeTab=s.tabs.length-1,!0;const o=Gh(t);return o?(Sl(t,o,e,"right"),!0):!1}function Jh(e){if(e.type==="tabs")return e.role==="body"?e:null;if(e.type==="split")for(const t of e.children){const n=Jh(t);if(n)return n}return null}function Zh(e,t=[]){if(e.type==="slot")return e.role==="body"?t:null;if(e.type==="split")for(let n=0;n<e.children.length;n++){const r=Zh(e.children[n],[...t,n]);if(r)return r}return null}function Qh(e){return Lc(dn(),e)}const Dl="sh3:authToken";let jo=null,Ml=!1;function ex(){if(!Ml&&(Ml=!0,!(typeof localStorage>"u")))try{jo=localStorage.getItem(Dl)}catch{jo=null}}function yi(e){if(Ml=!0,jo=e,!(typeof localStorage>"u"))try{e?localStorage.setItem(Dl,e):localStorage.removeItem(Dl)}catch{}}function $h(){return ex(),jo}let $a=null,vd=!1;function ep(){return typeof window>"u"?!1:"__TAURI_INTERNALS__"in window||"__TAURI__"in window}async function tx(){if(vd)return $a;if(vd=!0,!ep())return null;try{$a=(await import("@tauri-apps/plugin-http")).fetch}catch{$a=null}return $a}function Ie(e,t){const n=$h();let r=t??{};if(n){const s=new Headers(r.headers??{});s.has("Authorization")||(s.set("Authorization",`Bearer ${n}`),r={...r,headers:s})}return ep()?tx().then(s=>s?s(e,r):fetch(e,{credentials:"include",...r})):fetch(e,{credentials:"include",...r})}let qs=q(null),Gn=q(null),Fs=q(!1),_i="",jl=null;function Xi(e,t){_i=e,jl=t.auth,b(qs,t.user,!0),b(Gn,t.session,!0),b(Fs,!t.session&&!t.user,!0),yi(t.session?.token??null)}async function tp(e,t){try{const n=await Ie(`${_i}/api/auth/login`,{method:"POST",headers:{"Content-Type":"application/json"},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 b(qs,r.user,!0),b(Gn,r.session,!0),b(Fs,!1),yi(r.session?.token??null),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function nx(e,t,n){try{const r=await Ie(`${_i}/api/auth/register`,{method:"POST",headers:{"Content-Type":"application/json"},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 b(qs,s.user,!0),b(Gn,s.session,!0),b(Fs,!1),yi(s.session?.token??null),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function rx(){try{await Ie(`${_i}/api/auth/logout`,{method:"POST"})}catch{}if(yi(null),jl&&!jl.guestAllowed){window.location.reload();return}b(qs,null),b(Gn,null),b(Fs,!0)}function sx(){b(qs,{id:"local",username:"local",displayName:"Local Owner",role:"admin",createdAt:"",updatedAt:""},!0),b(Gn,{token:"local",userId:"local",role:"admin",expiresAt:1/0},!0),b(Fs,!1)}function ax(){return a(Gn)?.token==="local"}function Kt(){return a(Gn)?.role==="admin"}function zl(){return a(Gn)!==null}function np(){return a(Fs)}function Dr(){return a(qs)}function wi(){return a(Gn)?`Bearer ${a(Gn).token}`:null}const ox=2e3;let Ol=0;function ix(){return`e${++Ol}`}function lx(e){if(e.length<2||e.charCodeAt(0)!==101)return NaN;const t=Number(e.slice(1));return Number.isInteger(t)?t:NaN}class cx{#e;get entries(){return a(this.#e)}set entries(t){b(this.#e,t,!0)}constructor(t=ox){this.#e=q(he([])),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:ix()};this.entries.push(r),this.entries.length>this.cap&&this.entries.splice(0,this.entries.length-this.cap)}clear(){this.entries.length=0}restore(t){let n=0;for(const r of t){const s=lx(r.id);Number.isFinite(s)&&s>n&&(n=s)}n>Ol&&(Ol=n),this.entries.splice(0,this.entries.length,...t)}}const hd=[1e3,2e3,5e3,1e4];class rp{#e;get connected(){return a(this.#e)}set connected(t){b(this.#e,t,!0)}#t;get cwd(){return a(this.#t)}set cwd(t){b(this.#t,t,!0)}#n;get tenantRoot(){return a(this.#n)}set tenantRoot(t){b(this.#n,t,!0)}#r;get env(){return a(this.#r)}set env(t){b(this.#r,t,!0)}#s;get historyByMode(){return a(this.#s)}set historyByMode(t){b(this.#s,t,!0)}#o;get lastSeq(){return a(this.#o)}set lastSeq(t){b(this.#o,t,!0)}constructor(t){this.url=t,this.ws=null,this.handlers=new Set,this.pendingHistoryLogs=[],this.backoffIndex=0,this.closed=!1,this.#e=q(!1),this.#t=q(""),this.#n=q(""),this.#r=q(he({})),this.#s=q(he({})),this.#o=q(0)}connect(){if(!this.closed){try{this.ws=new WebSocket(this.url)}catch{this.scheduleReconnect();return}this.ws.addEventListener("open",()=>{this.backoffIndex=0,this.connected=!0;const t=this.lastSeq>0?{t:"hello",replayFrom:this.lastSeq}:{t:"hello"};this.sendRaw(t);for(const n of this.pendingHistoryLogs)this.sendRaw(n);this.pendingHistoryLogs=[]}),this.ws.addEventListener("message",t=>{let n;try{n=JSON.parse(t.data)}catch{return}n.t==="event"&&typeof n.event.seq=="number"&&(this.lastSeq=n.event.seq),n.t==="welcome"&&(this.cwd=n.cwd,this.tenantRoot=n.tenantRoot,this.env=n.env,this.lastSeq=n.seq),n.t==="cwd"&&(this.cwd=n.cwd),n.t==="history-bundle"&&(this.historyByMode=n.byMode);for(const r of this.handlers)r(n)}),this.ws.addEventListener("close",()=>{this.connected=!1,this.ws=null,this.scheduleReconnect()}),this.ws.addEventListener("error",()=>{})}}scheduleReconnect(){if(this.closed)return;const t=hd[Math.min(this.backoffIndex,hd.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 sp{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 Ie(r);if(!s.ok){let o=`HTTP ${s.status}`;try{const i=await s.json();i.error&&(o=i.error)}catch{}throw new Error(o)}return s}}function ux(e){const t=To(e);if(!t)return null;const r=$v().find(s=>s.verb===t);return r?{verb:r.verb,shardId:r.shardId}:null}async function ap(e,t,n,r){if(!Wr.has(e))throw new Error(`unknown shard: ${e}`);const s=To(t);if(!s)throw new Error(`unknown verb: ${t}`);if(!s.programmatic)throw new Error(`verb "${t}" is not programmatic`);const o=[],i=fx(o),l=await dx({sinkScrollback:i,opts:r});return{result:await s.run(l,n),scrollback:o}}async function dx(e){const t={sh3:eu({callerKind:"verb"}),scrollback:e.sinkScrollback,session:vx(),cwd:"/",fs:new sp,async dispatch(n){const r=n.trim();if(!r)return;const s=r.indexOf(" "),o=s===-1?r:r.slice(0,s),i=s===-1?"":r.slice(s+1),l=i.length?i.split(/\s+/):[],c=ux(o);if(!c)throw new Error(`dispatch: unknown verb "${o}"`);const u={...t,structuredArgs:void 0};await c.verb.run(u,l)},structuredArgs:e.opts?.structured,signal:e.opts?.signal};return t}function fx(e){let t=0;return{entries:e,push(r){const s={...r,id:`runverb-${++t}`};e.push(s)},clear(){e.length=0}}}function vx(){return new rp("")}const _a="sh3.controllable-field",Nl="sh3.walker";function $c(){return Jr(_a)}function op(e){for(const t of $c())if(t.owner.shardId===e.shardId&&(t.owner.slotId??void 0)===(e.slotId??void 0)&&t.descriptor.fieldId===e.fieldId)return t}function hx(e){return e.shape==="readonly"?!0:e.shape==="imperative"?typeof e.set!="function":!1}function px(e){if(e.shape==="element"||e.shape==="imperative"||e.shape==="readonly")return e.element}function mx(e){const t=e.descriptor,n={shardId:e.owner.shardId,fieldId:t.fieldId,label:t.label,kind:t.kind,description:t.description,enumValues:t.enumValues,readonly:hx(t),source:"contributed"};e.owner.slotId!==void 0&&(n.slotId=e.owner.slotId);const r=px(t);return r!==void 0&&(n.element=r),n}function bx(e={}){const t=[];for(const n of $c())e.shardId!==void 0&&n.owner.shardId!==e.shardId||e.slotId!==void 0&&n.owner.slotId!==e.slotId||e.kind!==void 0&&n.descriptor.kind!==e.kind||t.push(mx(n));return t}function gx(e){return e.get()}function yx(e){const t=e.element;return t instanceof HTMLInputElement&&t.type==="checkbox"?t.checked:t.value}function _x(e){const t=op(e);if(!t)throw new Error(`unknown field: ${e.shardId}::${e.slotId??""}::${e.fieldId}`);const n=t.descriptor;return n.shape==="element"?yx(n):gx(n)}function ip(e,t){e instanceof HTMLInputElement&&e.type==="checkbox"?e.checked=!!t:e.value=String(t),e.dispatchEvent(new Event("input",{bubbles:!0})),e.dispatchEvent(new Event("change",{bubbles:!0}))}async function wx(e,t){const n=op(e);if(!n)throw new Error(`unknown field: ${e.shardId}::${e.slotId??""}::${e.fieldId}`);const r=n.descriptor;if(r.shape==="readonly")throw new Error(`field is read-only: ${e.shardId}::${e.slotId??""}::${e.fieldId}`);if(r.shape==="imperative"){if(typeof r.set!="function")throw new Error(`field is read-only: ${e.shardId}::${e.slotId??""}::${e.fieldId}`);await r.set(t);return}ip(r.element,t)}const kx=new Set(["submit","button","reset","file","hidden"]);function xx(e){return e.type==="number"?"number":e.type==="checkbox"?"boolean":"string"}function Sx(e){return Array.from(e.options).map(t=>t.value)}function pd(e){return e.toLowerCase().trim().replace(/[^a-z0-9.\-_ ]/g,"").replace(/\s+/g,"-").replace(/^-+|-+$/g,"")}function lp(e){if(e.id){const n=e.ownerDocument.querySelector(`label[for="${CSS.escape(e.id)}"]`);if(n&&n.textContent)return n.textContent}let t=e.parentElement;for(;t;){if(t.tagName==="LABEL"&&t.textContent)return t.textContent;t=t.parentElement}return null}function Ix(e,t){const n=e.getAttribute("data-sh3-field");if(n&&n.length>0)return n;const r=e.name;if(r)return r;const s=lp(e);if(s){const i=pd(s);if(i.length>0)return i}if(e.id)return e.id;const o=e.placeholder;if(o){const i=pd(o);if(i.length>0)return i}return`field-${t}`}function Ex(e){return lp(e)?.trim()??e.placeholder??null}function Cx(e){return e.hasAttribute("data-sh3-field")?!0:e instanceof HTMLInputElement?!kx.has(e.type):e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement}function Gi(e,t){const n=new Set;for(const i of $c()){const l=i.descriptor;l.shape==="element"&&n.add(l.element)}const r=t.querySelectorAll("input, textarea, select, [data-sh3-field]"),s=[];let o=0;for(const i of Array.from(r)){if(!Cx(i)||n.has(i))continue;let l="string",c;if(i instanceof HTMLInputElement)l=xx(i);else if(i instanceof HTMLSelectElement)l="enum",c=Sx(i);else if(i.hasAttribute("data-sh3-field")){const f=i.getAttribute("data-sh3-field-kind");f&&["string","number","integer","boolean","enum","json"].includes(f)&&(l=f)}const u=Ix(i,o);/^field-\d+$/.test(u)&&(o+=1);const d={shardId:Nl,slotId:e,fieldId:u,label:Ex(i)??u,kind:l,readonly:!1,source:"walker",element:i};c!==void 0&&(d.enumValues=c),s.push(d)}return s}const ki=new Set;let eo=null,Ji=null,md=null,Zi=!1;function Ax(){if(eo&&eo.isConnected)return eo;const e=document.createElement("div");return e.className="sh3-decoration-layer",e.style.cssText="position: fixed; inset: 0; pointer-events: none;",document.body.appendChild(e),eo=e,Ji||(Ji=()=>ql(),window.addEventListener("resize",Ji)),md||(md=di(_a,()=>{const t=new Set;for(const n of Jr(_a))t.add(zo({shardId:n.owner.shardId,slotId:n.owner.slotId,fieldId:n.descriptor.fieldId}));for(const n of Array.from(ki))t.has(zo(n.addr))||cp(n)})),e}function zo(e){return`${e.shardId}::${e.slotId??""}::${e.fieldId}`}function Tx(e){for(const t of Jr(_a))if(t.owner.shardId===e.shardId&&(t.owner.slotId??void 0)===(e.slotId??void 0)&&t.descriptor.fieldId===e.fieldId)return t}function Rx(e){const t=e.descriptor;if(t.shape==="element"||t.shape==="imperative"||t.shape==="readonly")return t.element}function Px(e){let t=e.parentElement;for(;t;){const n=getComputedStyle(t);if(/auto|scroll/.test(n.overflowY)||/auto|scroll/.test(n.overflowX))return t;t=t.parentElement}return window}function Lx(e){if(e.disposed)return;const t=e.target.getBoundingClientRect();e.wrapper.style.left=`${t.left}px`,e.wrapper.style.top=`${t.top}px`,e.wrapper.style.width=`${t.width}px`,e.wrapper.style.height=`${t.height}px`,e.handle?.update?.(t)}function ql(){Zi||(Zi=!0,requestAnimationFrame(()=>{Zi=!1;for(const e of ki)Lx(e)}))}function cp(e){if(!e.disposed){e.disposed=!0,ki.delete(e),e.resizeObserver.disconnect(),e.scrollAncestor===window?window.removeEventListener("scroll",e.scrollListener,!0):e.scrollAncestor.removeEventListener("scroll",e.scrollListener);try{e.handle?.dispose?.()}catch(t){console.error("[sh3] decoration dispose threw",t)}e.wrapper.parentElement&&e.wrapper.parentElement.removeChild(e.wrapper)}}function Dx(e,t){const n=Tx(e);if(!n)throw new Error(`unknown field: ${zo(e)}`);const r=Rx(n);if(!r)throw new Error(`field has no element to anchor to: ${zo(e)}`);const s=Ax(),o=r.getBoundingClientRect(),i=t({element:r,rect:o});let l,c=null;i instanceof HTMLElement?l=i:(l=i.element,c=i);const u=document.createElement("div");u.className="sh3-decoration",u.style.cssText=`position: absolute; left: ${o.left}px; top: ${o.top}px; width: ${o.width}px; height: ${o.height}px; pointer-events: none;`,u.appendChild(l),s.appendChild(u);const d=Px(r),f={addr:e,element:l,wrapper:u,target:r,handle:c,resizeObserver:new ResizeObserver(()=>ql()),scrollAncestor:d,scrollListener:()=>ql(),disposed:!1};return f.resizeObserver.observe(r),d===window?window.addEventListener("scroll",f.scrollListener,!0):d.addEventListener("scroll",f.scrollListener),ki.add(f),()=>cp(f)}async function ns(e,t){const n=await Ie(e,t);if(!n.ok)throw new Error(`${t?.method??"GET"} ${e} failed: ${n.status}`);return n.json()}const vo={async list(){return(await ns("/api/projects",{method:"GET"})).projects},async listAll(){return(await ns("/api/projects/all",{method:"GET"})).projects},async get(e){return ns(`/api/projects/${encodeURIComponent(e)}`,{method:"GET"})},async create(e){return ns("/api/projects",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e)})},async update(e,t){return ns(`/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 ns(`/api/projects/${encodeURIComponent(e)}${n}`,{method:"DELETE"})}},qn="0.20.2";function Mx(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 jx(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var zx=E('<input type="search" class="sh3-picker__search svelte-1rlwvrb" placeholder="Filter…"/>'),Ox=E('<p class="sh3-picker__status svelte-1rlwvrb">Loading…</p>'),Nx=E('<button type="button" class="sh3-picker__retry svelte-1rlwvrb">Retry</button>'),qx=E('<p class="sh3-picker__status sh3-picker__status--error svelte-1rlwvrb"> </p> <!>',1),Fx=E('<p class="sh3-picker__status svelte-1rlwvrb"> </p>'),Bx=E('<span class="sh3-picker__row-sub svelte-1rlwvrb"> </span>'),Vx=E('<label class="sh3-picker__row svelte-1rlwvrb"><input type="checkbox" class="sh3-base-check"/> <span class="sh3-picker__row-text svelte-1rlwvrb"><span class="sh3-picker__row-label svelte-1rlwvrb"> </span> <!></span></label>'),Ux=E('<div><!> <div class="sh3-picker__list svelte-1rlwvrb"><!></div> <p class="sh3-picker__footer svelte-1rlwvrb"> </p></div>');function up(e,t){ce(t,!0);let n=te(t,"value",31,()=>he([])),r=te(t,"loading",3,!1),s=te(t,"error",3,null),o=te(t,"emptyText",3,"No items."),i=te(t,"searchThreshold",3,8),l=te(t,"disabled",3,!1),c=te(t,"size",3,"md"),u=q("");const d=B(()=>t.items.length>=i()),f=B(()=>Mx(t.items,a(u))),v=B(()=>t.items.length),m=B(()=>n().length);function S(L){if(l())return;const j=jx(n(),L);n(j),t.onchange?.(j)}var y=Ux();let w;var I=p(y);{var x=L=>{var j=zx();De(j),N(()=>j.disabled=l()),qe(j,()=>a(u),F=>b(u,F)),k(L,j)};U(I,L=>{a(d)&&L(x)})}var _=g(I,2),T=p(_);{var C=L=>{var j=Ox();k(L,j)},D=L=>{var j=qx(),F=ke(j),V=p(F,!0);h(F);var W=g(F,2);{var Q=G=>{var $=Nx();K("click",$,()=>t.onRetry?.()),k(G,$)};U(W,G=>{t.onRetry&&G(Q)})}N(()=>z(V,s())),k(L,j)},P=L=>{var j=Fx(),F=p(j,!0);h(j),N(()=>z(F,o())),k(L,j)},R=L=>{var j=Ze(),F=ke(j);Se(F,17,()=>a(f),V=>V.id,(V,W)=>{var Q=Vx(),G=p(Q);De(G);var $=g(G,2),ae=p($),Y=p(ae,!0);h(ae);var Z=g(ae,2);{var O=H=>{var J=Bx(),X=p(J,!0);h(J),N(()=>z(X,a(W).sublabel)),k(H,J)};U(Z,H=>{a(W).sublabel&&H(O)})}h($),h(Q),N(H=>{za(G,H),G.disabled=l(),z(Y,a(W).label)},[()=>n().includes(a(W).id)]),K("change",G,()=>S(a(W).id)),k(V,Q)}),k(L,j)};U(T,L=>{r()?L(C):s()?L(D,1):t.items.length===0?L(P,2):L(R,-1)})}h(_);var A=g(_,2),M=p(A);h(A),h(y),N(()=>{w=xe(y,1,"sh3-picker svelte-1rlwvrb",null,w,{"sh3-picker--sm":c()==="sm","sh3-picker--disabled":l()}),z(M,`${a(m)??""} of ${a(v)??""} selected`)}),k(e,y),ue()}_e(["click","change"]);function dp(e,t){ce(t,!0);const n=new Set(["sh3-admin-app","sh3-store-app"]);let r=te(t,"value",31,()=>he([])),s=te(t,"disabled",3,!1),o=te(t,"size",3,"md");const i=B(()=>js().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)}up(e,{get items(){return a(i)},get value(){return r()},onchange:l,get disabled(){return s()},get size(){return o()},emptyText:"No apps installed."}),ue()}const mn=he({users:[],loading:!1,error:null});let Ks=null;function bd(){return Ks||(mn.loading=!0,mn.error=null,Ks=(async()=>{try{const e=await Ie("/api/admin/users");if(!e.ok){mn.error=`GET /api/admin/users failed: ${e.status}`;return}mn.users=await e.json()}catch(e){mn.error=e.message}finally{mn.loading=!1,Ks=null}})(),Ks)}function fp(e,t){ce(t,!0);let n=te(t,"value",31,()=>he([])),r=te(t,"disabled",3,!1),s=te(t,"size",3,"md");mn.users.length===0&&!mn.loading&&!mn.error&&bd();const o=B(()=>mn.users.map(l=>({id:l.id,label:l.displayName||l.username,sublabel:l.username})));function i(l){n(l),t.onchange?.(l)}up(e,{get items(){return a(o)},get value(){return n()},onchange:i,get loading(){return mn.loading},get error(){return mn.error},onRetry:()=>void bd(),emptyText:"No users found.",get disabled(){return r()},get size(){return s()}}),ue()}function Hx(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 o=Math.max(0,Math.min(e,s.length));let i;return o===s.length?i=s[s.length-1].getBoundingClientRect().right:i=s[o].getBoundingClientRect().left,{left:i-r.left-1,top:2,height:r.height-4}}var Kx=E('<span class="tab-dirty svelte-1kxcyhf" title="Unsaved changes"></span>'),Wx=E('<span class="tab-icon svelte-1kxcyhf"> </span>'),Yx=E('<span class="tab-close svelte-1kxcyhf" role="button" tabindex="-1" title="Close">&#x2715;</span>'),Xx=E('<button type="button" role="tab"><!> <!> <span class="tab-label svelte-1kxcyhf"> </span> <!></button>'),Gx=E('<div class="drop-indicator svelte-1kxcyhf"></div>'),Jx=E("<div><!></div>"),Zx=E('<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 vp(e,t){ce(t,!0);function n(w){t.clickGuard?.()||t.onActiveChange?.(w)}function r(w,I){I.stopPropagation(),t.onClose?.(w)}let s=q(void 0);const o=he([]);let i=q(null);function l(w,I){if(!t.dragController)return;const x=o[w];x&&t.dragController.onPointerDown(w,I,x)}function c(w){if(!t.dragController||!t.dragController.isDragging||!a(s))return;const I=a(s).getBoundingClientRect(),x=o.filter(_=>!!_).map(_=>_.getBoundingClientRect());b(i,t.dragController.onStripHover(I,w.clientX,w.clientY,x),!0)}function u(){t.dragController&&(b(i,null),t.dragController.onStripLeave())}var d=Zx(),f=p(d),v=p(f);Se(v,17,()=>t.labels,xt,(w,I,x)=>{var _=Xx();let T;var C=p(_);{var D=F=>{var V=Kx();k(F,V)};U(C,F=>{t.dirty?.[x]&&F(D)})}var P=g(C,2);{var R=F=>{var V=Wx(),W=p(V,!0);h(V),N(()=>z(W,t.icons[x])),k(F,V)};U(P,F=>{t.icons?.[x]&&F(R)})}var A=g(P,2),M=p(A,!0);h(A);var L=g(A,2);{var j=F=>{var V=Yx();N(()=>ie(V,"data-testid",t.tabIds?.[x]?`tab-close-${t.tabIds[x]}`:void 0)),K("click",V,W=>r(x,W)),K("keydown",V,W=>{(W.key==="Enter"||W.key===" ")&&r(x,W)}),k(F,V)};U(L,F=>{t.closable?.[x]&&F(j)})}h(_),Qe(_,(F,V)=>o[V]=F,F=>o?.[F],()=>[x]),N(()=>{T=xe(_,1,"tab svelte-1kxcyhf",null,T,{active:t.activeTab===x}),ie(_,"aria-selected",t.activeTab===x),z(M,a(I))}),K("click",_,()=>n(x)),K("pointerdown",_,F=>l(x,F)),Ke("auxclick",_,F=>{F.button===1&&t.closable?.[x]&&r(x,F)}),k(w,_)});var m=g(v,2);{var S=w=>{const I=B(()=>Hx(a(i),o,a(s)));var x=Ze(),_=ke(x);{var T=C=>{var D=Gx();N(()=>tt(D,`left: ${a(I).left??""}px; height: ${a(I).height??""}px; top: ${a(I).top??""}px;`)),k(C,D)};U(_,C=>{a(I)&&C(T)})}k(w,x)};U(m,w=>{a(i)!==null&&t.dragController?.isDragging&&w(S)})}h(f),Qe(f,w=>b(s,w),()=>a(s));var y=g(f,2);Se(y,21,()=>t.labels,xt,(w,I,x)=>{var _=Jx();let T;var C=p(_);ln(C,()=>t.body,()=>x),h(_),N(()=>T=xe(_,1,"tab-body-pane svelte-1kxcyhf",null,T,{active:t.activeTab===x})),k(w,_)}),h(y),h(d),K("pointermove",f,c),Ke("pointerleave",f,u),k(e,d),ue()}_e(["pointermove","click","pointerdown","keydown"]);var Qx=E(`<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 $x(e,t){ce(t,!0);let n=q(void 0),r=q(!1),s=q(!1);Ne(()=>{a(n)?.focus()});async function o(){if(!a(r)){b(r,!0);try{await t.onConfirm({wipeData:a(s)})}finally{t.close()}}}function i(){a(r)||(t.onCancel?.(),t.close())}var l=Qx(),c=p(l),u=p(c);h(c);var d=g(c,4),f=p(d);De(f);var v=g(f,2),m=g(p(v)),S=p(m);h(m),h(v),h(d);var y=g(d,2),w=p(y);Qe(w,x=>b(n,x),()=>a(n));var I=g(w,2);h(y),h(l),N(()=>{z(u,`Delete project '${t.projectName??""}'?`),f.disabled=a(r),z(S,`<dataDir>/docs/${t.projectId??""}/`),w.disabled=a(r),I.disabled=a(r)}),So(f,()=>a(s),x=>b(s,x)),K("click",w,i),K("click",I,o),k(e,l),ue()}_e(["click"]);var eS=E('<label class="field svelte-1oy3640"><span class="svelte-1oy3640">App allowlist</span> <!></label>'),tS=E('<span class="hint svelte-1oy3640">Your id: <code class="svelte-1oy3640"> </code> </span>'),nS=E('<label class="field svelte-1oy3640"><span class="svelte-1oy3640">Members</span> <!> <!></label>'),rS=E('<p class="muted svelte-1oy3640">Loading mounts...</p>'),sS=E('<p class="error svelte-1oy3640"> </p>'),aS=E('<p class="muted svelte-1oy3640">No mounts configured. Create mounts first.</p>'),oS=E('<li class="mount-row svelte-1oy3640"><label class="svelte-1oy3640"><input class="sh3-base-check svelte-1oy3640" type="checkbox"/> <span class="mount-status svelte-1oy3640"></span> <span class="mount-label svelte-1oy3640"> </span> <span class="mount-id svelte-1oy3640"> </span></label></li>'),iS=E('<ul class="mount-list svelte-1oy3640"></ul>'),lS=E('<div class="tab-pane svelte-1oy3640"><!></div>'),cS=E('<p class="project-id svelte-1oy3640">ID: <code class="svelte-1oy3640"> </code></p>'),uS=E('<p class="error svelte-1oy3640"> </p>'),dS=E('<button type="button" class="danger svelte-1oy3640">Delete</button>'),fS=E('<div class="project-manage svelte-1oy3640"><header class="header 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></header> <div class="tabs svelte-1oy3640"><!></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 vS(e,t){ce(t,!0);const n=(oe,be=Ft)=>{var Ae=lS(),ne=p(Ae);{var re=pe=>{var ze=eS(),ee=g(p(ze),2);dp(ee,{get disabled(){return a(d)},get value(){return a(u)},set value(fe){b(u,fe,!0)}}),h(ze),k(pe,ze)},ge=pe=>{var ze=nS(),ee=g(p(ze),2);fp(ee,{get disabled(){return a(d)},get value(){return a(c)},set value(Te){b(c,Te,!0)}});var fe=g(ee,2);{var Ce=Te=>{var Fe=tS(),He=g(p(Fe)),Ye=p(He,!0);h(He);var Xe=g(He);h(Fe),N(()=>{z(Ye,a(o).id),z(Xe,` (${a(o).username??a(o).displayName??""})`)}),k(Te,Fe)};U(fe,Te=>{a(o)&&Te(Ce)})}h(ze),k(pe,ze)},we=pe=>{var ze=Ze(),ee=ke(ze);{var fe=He=>{var Ye=rS();k(He,Ye)},Ce=He=>{var Ye=sS(),Xe=p(Ye,!0);h(Ye),N(()=>z(Xe,a(w))),k(He,Ye)},Te=He=>{var Ye=aS();k(He,Ye)},Fe=He=>{var Ye=iS();Se(Ye,21,()=>a(m),Xe=>Xe.id,(Xe,Me)=>{var Ue=oS(),it=p(Ue),fn=p(it);De(fn);var Fn=g(fn,2),St=g(Fn,2),Qr=p(St,!0);h(St);var Sr=g(St,2),Bs=p(Sr,!0);h(Sr),h(it),h(Ue),N(Zn=>{ie(Ue,"data-mount-row",a(Me).id),za(fn,Zn),fn.disabled=a(d),ie(Fn,"data-status",a(Me).status),z(Qr,a(Me).label??a(Me).id),z(Bs,a(Me).id)},[()=>a(S).has(a(Me).id)]),K("change",fn,Zn=>L(a(Me).id,Zn.currentTarget.checked)),k(Xe,Ue)}),h(Ye),k(He,Ye)};U(ee,He=>{a(y)?He(fe):a(w)?He(Ce,1):a(m).length===0?He(Te,2):He(Fe,-1)})}k(pe,ze)};U(ne,pe=>{be()===0?pe(re):be()===1?pe(ge,1):pe(we,-1)})}h(Ae),k(oe,Ae)};let r=te(t,"project",3,null);const s=B(()=>r()!==null),o=B(Dr);let i=q(he(Oe(()=>r()?.name??""))),l=q(he(Oe(()=>r()?.description??""))),c=q(he(Oe(()=>{if(r())return[...r().members];const oe=Dr()?.id;return oe?[oe]:[]}))),u=q(he(Oe(()=>r()?[...r().appAllowlist]:[]))),d=q(!1),f=q(null),v=q(0),m=q(he([])),S=q(he(new Set)),y=q(!0),w=q(null),I=he(Oe(()=>r()?[...r().appAllowlist]:[])),x=he(Oe(()=>{if(r())return[...r().members];const oe=Dr()?.id;return oe?[oe]:[]})),_=q(he(new Set));function T(oe,be){if(oe.length!==be.length)return!1;const Ae=[...oe].sort(),ne=[...be].sort();return Ae.every((re,ge)=>re===ne[ge])}function C(oe,be){if(oe.size!==be.size)return!1;for(const Ae of oe)if(!be.has(Ae))return!1;return!0}const D=B(()=>!T(a(u),I)),P=B(()=>!T(a(c),x)),R=B(()=>!C(a(S),a(_)));async function A(){if(!a(i).trim()){b(f,"Name is required");return}b(d,!0),b(f,null);const oe={name:a(i).trim(),description:a(l).trim()||void 0,members:a(c),appAllowlist:a(u)};try{const Ae=(a(s)&&r()?await vo.update(r().id,oe):await vo.create(oe)).id,ne=[],re=[];for(const we of a(S))a(_).has(we)||ne.push(we);for(const we of a(_))a(S).has(we)||re.push(we);const ge=[];for(const we of ne)try{const pe=await Ie("/api/admin/mount-attachments",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({mountId:we,tenantId:Ae})});pe.ok||ge.push(`attach ${we}: ${pe.status}`)}catch(pe){ge.push(`attach ${we}: ${pe.message}`)}for(const we of re)try{const pe=await Ie("/api/admin/mount-attachments",{method:"DELETE",headers:{"content-type":"application/json"},body:JSON.stringify({mountId:we,tenantId:Ae})});!pe.ok&&pe.status!==204&&ge.push(`detach ${we}: ${pe.status}`)}catch(pe){ge.push(`detach ${we}: ${pe.message}`)}if(ge.length>0){b(f,`Mount changes failed: ${ge.join("; ")}`),b(_,new Set(a(S)),!0),await ra();return}b(_,new Set(a(S)),!0),await ra(),t.onClose()}catch(be){b(f,be.message,!0)}finally{b(d,!1)}}function M(){if(!a(s)||!r())return;const oe=r();xn.open($x,{projectName:oe.name,projectId:oe.id,onConfirm:async({wipeData:be})=>{b(d,!0),b(f,null);try{await vo.delete(oe.id,{wipeData:be}),await ra(),t.onClose()}catch(Ae){b(f,Ae.message,!0)}finally{b(d,!1)}}})}function L(oe,be){const Ae=new Set(a(S));be?Ae.add(oe):Ae.delete(oe),b(S,Ae,!0)}async function j(){b(y,!0),b(w,null);try{const oe=[Ie("/api/admin/mounts")];r()&&oe.push(Ie(`/api/admin/tenants/${encodeURIComponent(r().id)}/attachments`));const be=await Promise.all(oe),Ae=be[0],ne=be[1];if(!Ae.ok)throw new Error(`GET /api/admin/mounts failed: ${Ae.status}`);if(b(m,await Ae.json(),!0),ne){if(!ne.ok)throw new Error(`GET tenant attachments failed: ${ne.status}`);const re=await ne.json();b(S,new Set(re.map(ge=>ge.mountId)),!0),b(_,new Set(a(S)),!0)}}catch(oe){b(w,oe.message,!0)}finally{b(y,!1)}}j();var F=fS(),V=p(F),W=p(V),Q=p(W,!0);h(W);var G=g(W,2);{var $=oe=>{var be=cS(),Ae=g(p(be)),ne=p(Ae,!0);h(Ae),h(be),N(()=>z(ne,r().id)),k(oe,be)};U(G,oe=>{a(s)&&oe($)})}var ae=g(G,2),Y=g(p(ae),2);De(Y),h(ae);var Z=g(ae,2),O=g(p(Z),2);fc(O),ie(O,"rows",2),h(Z),h(V);var H=g(V,2),J=p(H);{let oe=B(()=>[a(D),a(P),a(R)]);vp(J,{labels:["Apps","Users","Mounts"],get activeTab(){return a(v)},onActiveChange:be=>b(v,be,!0),get dirty(){return a(oe)},get body(){return n}})}h(H);var X=g(H,2);{var le=oe=>{var be=uS(),Ae=p(be,!0);h(be),N(()=>z(Ae,a(f))),k(oe,be)};U(X,oe=>{a(f)&&oe(le)})}var me=g(X,2),se=p(me),de=p(se,!0);h(se);var ye=g(se,2),Ee=g(ye,2);{var Le=oe=>{var be=dS();N(()=>be.disabled=a(d)),K("click",be,M),k(oe,be)};U(Ee,oe=>{a(s)&&oe(Le)})}h(me),h(F),N(()=>{z(Q,a(s)?`Edit ${r().name}`:"Create Project"),Y.disabled=a(d),O.disabled=a(d),se.disabled=a(d),z(de,a(s)?"Save":"Create"),ye.disabled=a(d)}),qe(Y,()=>a(i),oe=>b(i,oe)),qe(O,()=>a(l),oe=>b(l,oe)),K("click",se,A),K("click",ye,function(...oe){t.onClose?.apply(this,oe)}),k(e,F),ue()}_e(["change","click"]);const rn=he({projects:[],loading:!1,error:null});async function ra(){rn.loading=!0,rn.error=null;try{rn.projects=await vo.list()}catch(e){rn.error=e.message}finally{rn.loading=!1}}const Fl="projects:manage";let Bl=null;function hS(){const e=Bl;return Bl=null,e}function Vl(e){Bl=e,Ge.open(Fl,{title:e?`Edit ${e.name}`:"Create Project",size:{w:560,h:620},dismissable:!0})}const hp={manifest:{id:"__projects__",label:"Projects",version:qn,views:[{id:Fl,label:"Project Manager"}]},activate(e){ra(),typeof document<"u"&&document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&ra()});const t={mount(r,s){const o=hS(),i=Ge.list(),l=i.length>0?i[i.length-1].id:null,u=at(vS,{target:r,props:{project:o,onClose:()=>{l&&Ge.close(l)}}});return{unmount(){ft(u)}}}};e.registerView(Fl,t),e.actions.register({id:"sh3.project.create",label:"Create Project…",scope:["home","app"],paletteItem:!0,disabled:()=>!Kt(),run:()=>{Kt()&&Vl(null)}}),e.actions.register({id:"sh3.project.manage",label:"Manage Project…",scope:["home","app"],submenu:!0,paletteItem:!0,disabled:()=>!Kt()});const n=new Map;Ls(()=>{Ne(()=>{const r=new Set;for(const s of rn.projects){if(r.add(s.id),n.has(s.id))continue;const o=e.actions.register({id:`sh3.project.manage:${s.id}`,label:s.name,scope:["home","app"],submenuOf:"sh3.project.manage",run:()=>{const i=rn.projects.find(l=>l.id===s.id);i&&Vl(i)}});n.set(s.id,o)}for(const s of[...n.keys()])r.has(s)||(n.get(s)(),n.delete(s))})})},autostart(){}},gd=["ephemeral","session","workspace","user"];function pp(e){return e.type==="tabs"?e.tabs.filter(t=>t.viewId!==null):e.type==="split"?e.children.flatMap(pp):e.viewId!==null?[{slotId:e.slotId,viewId:e.viewId,label:e.viewId}]:[]}function eu(e){e?.callerKind,e?.callerShardId;const t=e?.zones;function n(){try{const{root:l}=Hh();return pp(l.docked).map(c=>({slotId:c.slotId,viewId:c.viewId??"",label:c.label}))}catch{return[]}}function r(l){if(!l.slotId)throw new Error(`walker field requires slotId: ${l.shardId}::::${l.fieldId}`);const c=Hi(l.slotId);if(!c?.host)throw new Error(`unknown field: ${l.shardId}::${l.slotId}::${l.fieldId}`);const u=Gi(l.slotId,c.host).find(d=>d.fieldId===l.fieldId);if(!u||!u.element)throw new Error(`unknown field: ${l.shardId}::${l.slotId}::${l.fieldId}`);return u}function s(l){const u=r(l).element;return u instanceof HTMLInputElement&&u.type==="checkbox"?u.checked:u instanceof HTMLInputElement||u instanceof HTMLTextAreaElement||u instanceof HTMLSelectElement?u.value:u.textContent??""}function o(l,c){const d=r(l).element;if(d instanceof HTMLInputElement||d instanceof HTMLTextAreaElement||d instanceof HTMLSelectElement){ip(d,c);return}throw new Error(`walker field "${l.fieldId}" is a [data-sh3-field] custom element; the framework cannot write into it. Use an explicit imperative registration with set().`)}const i={list(l){const c=bx({slotId:l?.slotId,shardId:l?.shardId,kind:l?.kind}),u=l?.walker??"off";if(u==="off")return c;const d=l?.slotId?[l.slotId]:Array.from(new Set(c.map(v=>v.slotId).filter(v=>!!v)));let f=c;for(const v of d){const m=Hi(v);if(!m?.host)continue;const S=c.some(y=>y.slotId===v);u==="fallback"&&S||(f=f.concat(Gi(v,m.host)))}return l?.kind&&(f=f.filter(v=>v.kind===l.kind)),f},get(l){return l.shardId===Nl?s(l):_x(l)},async set(l,c){if(l.shardId===Nl){o(l,c);return}return wx(l,c)},walk(l){const c=Hi(l);if(!c?.host)throw new Error(`unknown slot: ${l}`);return Gi(l,c.host)},onChange(l){return di(_a,l)},attachDecoration(l,c){return Dx(l,c)}};return{listApps(){return js().map(l=>({id:l.id,label:l.label}))},getActiveApp(){const l=Ac();return l?{id:l.id,label:l.label}:null},launchApp(l){lr(l)},listShards(){return Array.from(kn.values()).map(l=>({id:l.manifest.id,label:l.manifest.label,version:l.manifest.version}))},listViewsInCurrentLayout(){return n()},openViewInCurrentLayout(l){try{if(bi(l))return{ok:!0};const c=wa().find(u=>u.viewId===l);if(c){const u=`standalone:${l}:${Date.now()}`;return Qc({slotId:u,viewId:l,label:c.label})?{ok:!0}:{ok:!1,error:`could not dock "${l}" — no available slot`}}return{ok:!1,error:`view "${l}" not found in current layout`}}catch(c){return{ok:!1,error:c instanceof Error?c.message:String(c)}}},listStandaloneViews(){return wa()},popoutSlot(l){try{const c=Yh(l);return c?{ok:!0,floatId:c}:{ok:!1,error:`slot "${l}" not found in docked tree`}}catch(c){return{ok:!1,error:c instanceof Error?c.message:String(c)}}},dockFloat(l){try{return Xh(l)?{ok:!0}:{ok:!1,error:`float "${l}" not found or has no dockable content`}}catch(c){return{ok:!1,error:c instanceof Error?c.message:String(c)}}},locateSlot(l){try{return Qh(l)}catch{return null}},listFloats(){return Ge.list().map(l=>{const c=l.content.type==="tabs"?l.content:null,u=c?c.tabs[c.activeTab??0]??c.tabs[0]:null;return{floatId:l.id,viewId:u?.viewId??null,label:l.title??u?.label??l.id}})},closeSlot(l){return Jc(l),{ok:!0}},listZones(l){if(!t)return[];const c=new Map;for(const u of gd)for(const d of t.list(u)){if(l&&d!==l)continue;let f=c.get(d);f||(f=new Set,c.set(d,f)),f.add(u)}return Array.from(c.entries()).map(([u,d])=>({shardId:u,zones:Array.from(d)}))},readZone(l,c){return!t||!gd.includes(c)?null:t.peek(c,l)??null},whoAmI(){return{userId:Dr()?.id??"guest",admin:Kt()}},setMode(l){return!1},listModes(){return[]},getMode(){return{id:"sh3",label:"sh3"}},dispatchToTerminal:Kc({headless:!0}),listVerbs(l){const c=l?.programmaticOnly===!0,u=$v().map(({verb:d,shardId:f})=>({shardId:f,name:d.name,summary:d.summary,programmatic:d.programmatic,schema:d.schema}));return c?u.filter(d=>d.programmatic===!0):u},async runVerb(l,c,u,d){return ap(l,c,u,d)},listActions(l){let u=Uc(mt(),jt());if(l?.submenuOf!==void 0){const d=l.submenuOf;u=u.filter(f=>f.submenuOf===d)}return l?.activeOnly&&(u=u.filter(d=>d.active)),u},runAction(l,c){return zh(l)},listViews(){return n()},fields:i,getActiveScope(){const l=Ka(),c=K0();return{id:l,isProject:l!==c,personalId:c}},listProjects(){return rn.projects.map(l=>({id:l.id,name:l.name}))}}}function pS(e){return eu({callerKind:"verb",zones:e})}class mS{#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}`,o=await Ie(s,{credentials:"include"});if(o.status===404)return null;if(!o.ok)throw new Error(`Document read failed: ${o.status}`);return(o.headers.get("content-type")??"").includes("application/octet-stream")?o.arrayBuffer():o.text()}async write(t,n,r,s){const o=`${this.#e}/api/docs/${t}/${n}/${r}`,i={...this.#n(),"Content-Type":typeof s=="string"?"text/plain":"application/octet-stream"},l=await Ie(o,{method:"PUT",headers:i,body:s,credentials:"include"});if(!l.ok){let c=`HTTP ${l.status}`;try{const u=await l.json();u.error&&(c=u.error)}catch{}throw new Error(`Document write failed: ${c}`)}}async delete(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}`,o=await Ie(s,{method:"DELETE",headers:this.#n(),credentials:"include"});if(!o.ok)throw new Error(`Document delete failed: ${o.status}`)}async list(t,n){const r=`${this.#e}/api/docs/${t}/${n}`,s=await Ie(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 Ie(s,{method:"HEAD",credentials:"include"})).ok}async listAllShards(t){const n=`${this.#e}/api/docs/${t}/_shards`,r=await Ie(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 Ie(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`,o=await Ie(s,{credentials:"include"});if(!o.ok)throw new Error(`readMeta failed: ${o.status}`);const i=await o.json();return i.exists?i:null}async resolve(t,n,r,s){const o=`${this.#e}/api/docs/${t}/${n}/${r}/resolve`,i=typeof s=="string"?{choice:s}:{choice:s.origin},l=await Ie(o,{method:"POST",credentials:"include",headers:{...this.#n(),"Content-Type":"application/json"},body:JSON.stringify(i)});if(!l.ok)throw new Error(`resolve failed: ${l.status}`)}async readBranch(t,n,r,s){const o=`${this.#e}/api/docs/${t}/${n}/${r}/branch?origin=${encodeURIComponent(s)}`,i=await Ie(o,{credentials:"include"});if(i.status===404)return null;if(!i.ok)throw new Error(`readBranch failed: ${i.status}`);return i.text()}async rename(t,n,r,s){const o=`${this.#e}/api/docs/${t}/${n}/${r}/rename`,i={...this.#n(),"Content-Type":"application/json"},l=await Ie(o,{method:"POST",headers:i,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}`)}async mkdir(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}/mkdir`,o=await Ie(s,{method:"POST",headers:this.#n(),credentials:"include"});if(!o.ok){let i=`HTTP ${o.status}`;try{const l=await o.json();l.error&&(i=l.error)}catch{}throw new Error(`mkdir failed: ${i}`)}}async rmdir(t,n,r,s){const o=`${this.#e}/api/docs/${t}/${n}/${r}/rmdir`,i=await Ie(o,{method:"POST",headers:{...this.#n(),"Content-Type":"application/json"},body:JSON.stringify({recursive:s.recursive}),credentials:"include"});if(!i.ok){let l=`HTTP ${i.status}`;try{const c=await i.json();c.error&&(l=c.error)}catch{}throw new Error(`rmdir failed: ${l}`)}}async renameFolder(t,n,r,s){const o=`${this.#e}/api/docs/${t}/${n}/${r}/rename-folder`,i=await Ie(o,{method:"POST",headers:{...this.#n(),"Content-Type":"application/json"},body:JSON.stringify({to:s}),credentials:"include"});if(i.status===404)throw new Error(`Folder not found at ${r}`);if(i.status===409)throw new Error(`Folder already exists at ${s}`);if(!i.ok)throw new Error(`renameFolder failed: ${i.status}`)}async listFolders(t,n,r){const s=r?`${this.#e}/api/docs/${t}/${n}/${r}?folders=1`:`${this.#e}/api/docs/${t}/${n}?folders=1`,o=await Ie(s,{credentials:"include"});if(!o.ok)throw new Error(`listFolders failed: ${o.status}`);return o.json()}#n(){return this.#t?{Authorization:`Bearer ${this.#t}`}:{}}}class bS{#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 qt=new bS,gS=1e3;function yS(e,t,n,r){const s=new Set,o=new Set;function i(d){return!r.extensions||r.extensions.length===0?!0:r.extensions.some(f=>d.endsWith(f))}function l(d){return d?.scope??e}function c(d,f,v){qt.emit({type:d,path:f,tenantId:v,shardId:t})}const u={async list(d){const f=l(d),v=await n.list(f,t);return!r.extensions||r.extensions.length===0?v:v.filter(m=>i(m.path))},async read(d,f){const v=await n.read(l(f),t,d);return v===null?null:typeof v=="string"?v:new TextDecoder().decode(v)},async write(d,f,v){const m=l(v),S=await n.exists(m,t,d);await n.write(m,t,d,f),c(S?"update":"create",d,m)},async delete(d,f){const v=l(f),m=await n.exists(v,t,d);await n.delete(v,t,d),m&&c("delete",d,v)},async rename(d,f,v){if(!i(f))throw new Error(`Cannot rename to ${f}: violates handle extensions filter`);for(const S of s)if(S.path===d)throw new Error(`Cannot rename: active autosave on ${d}; flush and dispose first`);const m=l(v);await n.rename(m,t,d,f),qt.emit({type:"rename",path:f,oldPath:d,tenantId:m,shardId:t})},async mkdir(d,f){const v=l(f);await n.mkdir(v,t,d),qt.emit({type:"folder-create",path:d,tenantId:v,shardId:t})},async rmdir(d,f){const v=f?.recursive??!1;if(v){const S=d+"/";for(const y of s)if(y.path===d||y.path.startsWith(S))throw new Error(`Cannot rmdir ${d}: active autosave on ${y.path}; flush and dispose first`)}const m=l(f);await n.rmdir(m,t,d,{recursive:v}),qt.emit({type:"folder-delete",path:d,tenantId:m,shardId:t})},async renameFolder(d,f,v){const m=d+"/";for(const y of s)if(y.path===d||y.path.startsWith(m))throw new Error(`Cannot rename folder ${d}: active autosave on ${y.path}; flush and dispose first`);const S=l(v);await n.renameFolder(S,t,d,f),qt.emit({type:"folder-rename",path:f,oldPath:d,tenantId:S,shardId:t})},async listFolders(d,f){return n.listFolders(l(f),t,d??"")},async exists(d){return n.exists(e,t,d)},async status(d){if(!n.readMeta)throw new Error("Backend does not support status()");return n.readMeta(e,t,d)},async resolveConflict(d,f){if(!n.resolve)throw new Error("Backend does not support resolveConflict()");if(typeof f!="string"&&!(typeof f=="object"&&"origin"in f))throw new Error("choice must be a string or { origin } object");return n.resolve(e,t,d,f)},async readBranch(d,f){if(!n.readBranch)throw new Error("Backend does not support readBranch()");return n.readBranch(e,t,d,f)},watch(d){const f=qt.subscribe(v=>{v.tenantId===e&&v.shardId===t&&i(v.path)&&d(v)});return o.add(f),()=>{f(),o.delete(f)}},autosave(d,f){const v=new _S(u,d,f?.debounceMs??gS);return s.add(v),v},async dispose(){const d=[...s].map(f=>f.dispose());await Promise.all(d),s.clear();for(const f of o)f();o.clear()}};return u}class _S{#e;#t;#n;#r=null;#s=null;#o=!1;#a=!1;constructor(t,n,r){this.#e=t,this.#t=n,this.#n=r}get dirty(){return this.#o}get path(){return this.#t}update(t){this.#a||(this.#r=t,this.#o=!0,this.#i())}async flush(){if(this.#l(),this.#r!==null){const t=this.#r;this.#r=null,this.#o=!1,await this.#e.write(this.#t,t)}}async dispose(){this.#a||(this.#a=!0,await this.flush())}#i(){this.#l(),this.#s=setTimeout(()=>{this.#s=null,this.flush()},this.#n)}#l(){this.#s!==null&&(clearTimeout(this.#s),this.#s=null)}}const wS="sync:peer",kS="sync:policy";let mp="";function bp(e){mp=e}function gt(){return mp}async function xS(e){const t=await Ie(`${gt()}/api/env-state/${encodeURIComponent(e)}`,{credentials:"omit"});return t.ok?await t.json():(console.warn(`[sh3] Failed to fetch env state for "${e}": HTTP ${t.status}`),{})}async function SS(e,t){if(!Kt())throw new Error("Cannot update env state: not elevated to admin");const n=wi(),r={"Content-Type":"application/json"};n&&(r.Authorization=n);const s=await Ie(`${gt()}/api/env-state/${encodeURIComponent(e)}`,{method:"PUT",headers:r,body:JSON.stringify(t),credentials:"omit"});if(!s.ok){const o=await s.json().catch(()=>({}));throw new Error(`Env state update failed: HTTP ${s.status} — ${o.error??"unknown"}`)}}async function tu(e,t,n){if(!Kt())throw new Error("Cannot install: not elevated to admin");const r=wi(),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 o={};r&&(o.Authorization=r);const i=await Ie(`${gt()}/api/packages/install`,{method:"POST",headers:o,body:s,credentials:"omit"});if(!i.ok){let c={};try{c=await i.json()}catch{}return{ok:!1,error:typeof c.error=="string"?c.error:`HTTP ${i.status}`,code:typeof c.code=="string"?c.code:void 0,missing:Array.isArray(c.missing)?c.missing:void 0}}return{ok:!0,warnings:(await i.json()).warnings??[]}}async function IS(e){if(!Kt())throw new Error("Cannot uninstall: not elevated to admin");const t=wi(),n={"Content-Type":"application/json"};t&&(n.Authorization=t);const r=await Ie(`${gt()}/api/packages/uninstall`,{method:"POST",headers:n,body:JSON.stringify({id:e}),credentials:"omit"});if(!r.ok){const s=await r.json().catch(()=>({}));throw new Error(`Uninstall failed: HTTP ${r.status} — ${s.error??"unknown"}`)}}async function ES(){const e=await Ie(`${gt()}/api/packages`,{credentials:"omit"});return e.ok?await e.json():[]}const nu="documents:browse",ru="documents:read",su="documents:write";function CS(e,t,n={canRead:!1,canWrite:!1}){const r={listDocuments:()=>t.listAllDocuments(e()),listShards:()=>t.listAllShards(e()),watchDocuments:s=>qt.subscribe(o=>{o.tenantId===e()&&s(o)})};return n.canRead&&(r.readFrom=(s,o)=>t.read(e(),s,o),r.statusFrom=async(s,o)=>t.readMeta?t.readMeta(e(),s,o):null,r.readBranchFrom=async(s,o,i)=>t.readBranch?t.readBranch(e(),s,o,i):null),n.canWrite&&(r.writeTo=async(s,o,i)=>{const l=e(),c=await t.exists(l,s,o);await t.write(l,s,o,i),qt.emit({type:c?"update":"create",path:o,tenantId:l,shardId:s})},r.resolveConflictFrom=async(s,o,i)=>{if(!t.resolve)throw new Error("Backend does not support resolveConflict");const l=e();await t.resolve(l,s,o,i),qt.emit({type:"update",path:o,tenantId:l,shardId:s})},r.renameFrom=async(s,o,i,l)=>{if(l?.newShardId!==void 0)throw new Error("Cross-shard move is not yet supported (ADR-018 amendment 2026-04-27)");const c=e();await t.rename(c,s,o,i),qt.emit({type:"rename",path:i,oldPath:o,tenantId:c,shardId:s})},r.deleteFrom=async(s,o)=>{const i=e(),l=await t.exists(i,s,o);await t.delete(i,s,o),l&&qt.emit({type:"delete",path:o,tenantId:i,shardId:s})},r.transferToScope=async(s,o,i,l)=>{const c=e();if(i===c)throw new Error("targetScope must differ from the active tenant");const u=l?.targetShardId??s,d=await t.read(c,s,o);if(d===null)throw new Error(`Document not found at ${s}/${o} in scope ${c}`);const f=await t.exists(i,u,o);await t.write(i,u,o,d),qt.emit({type:f?"update":"create",path:o,tenantId:i,shardId:u}),l?.delete&&(await t.delete(c,s,o),qt.emit({type:"delete",path:o,tenantId:c,shardId:s}))}),r}function AS(e,t,n,r){if(n===null)return[...new Set(e.map(v=>v.shardId))].sort().map(v=>({kind:"folder",name:v,fullPath:v}));const s=e.filter(f=>f.shardId===n),o=new Map,i=[],l=r?r+"/":"",c=l.length;for(const f of s){if(!f.path.startsWith(l))continue;const v=f.path.slice(c),m=v.indexOf("/");if(m>=0){const S=v.slice(0,m),y=r?`${r}/${S}`:S;o.has(S)||o.set(S,y)}else i.push({kind:"file",name:v,doc:f})}for(const f of t){if(o.has(f))continue;const v=r?`${r}/${f}`:f;o.set(f,v)}const u=[...o.entries()].map(([f,v])=>({kind:"folder",name:f,fullPath:v})).sort((f,v)=>f.name.localeCompare(v.name)),d=i.sort((f,v)=>f.name.localeCompare(v.name));return[...u,...d]}function TS(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function RS(e){const t=new Date(e);return t.toLocaleDateString("en-US",{month:"short",day:"numeric",year:t.getFullYear()!==new Date().getFullYear()?"numeric":void 0})}const PS={guml:"⬡",glsl:"◇",md:"≡",obj:"△",png:"▦"};function LS(e){const t=e.slice(e.lastIndexOf(".")+1).toLowerCase();return PS[t]??"▯"}function DS(e,t){const n=[{label:"SH3",level:0,targetShard:null,targetPrefix:""}];if(e&&(n.push({label:e,level:1,targetShard:e,targetPrefix:""}),t)){const r=t.split("/");for(let s=0;s<r.length;s++)n.push({label:r[s],level:2+s,targetShard:e,targetPrefix:r.slice(0,s+1).join("/")})}return n}const cr="/assets/icons-OMmH0JiM.svg",gp=Symbol("sh3.icon-sprite");function MS(e){sc(gp,e)}function yp(){return rc(gp)}var jS=yc('<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>'),zS=yc('<svg class="sh3-btn__icon svelte-t4hi97" aria-hidden="true"><use></use></svg>'),OS=E('<span class="sh3-btn__label svelte-t4hi97"><!></span>'),NS=E("<button><!> <!></button>");function Pt(e,t){ce(t,!0);let n=te(t,"variant",3,"default"),r=te(t,"disabled",3,!1),s=te(t,"type",3,"button");const o=yp();function i(_){return _.includes("/")||_.endsWith(".svg")}const l=B(()=>t.icon?i(t.icon)?t.icon:`${t.sprite??o??cr}#${t.icon}`:void 0);let c=q(!1);const u=B(()=>t.loading??a(c)),d=B(()=>n()==="icon"||!!t.icon&&!t.children);async function f(_){if(!t.onclick)return;const T=t.onclick(_);if(T&&typeof T.then=="function"){b(c,!0);try{await T}finally{b(c,!1)}}}var v=NS();let m;var S=p(v);{var y=_=>{var T=jS();k(_,T)},w=_=>{var T=zS(),C=p(T);h(T),N(()=>ie(C,"href",a(l))),k(_,T)};U(S,_=>{a(u)?_(y):a(l)&&_(w,1)})}var I=g(S,2);{var x=_=>{var T=OS(),C=p(T);ln(C,()=>t.children),h(T),k(_,T)};U(I,_=>{t.children&&_(x)})}h(v),N(()=>{ie(v,"type",s()),m=xe(v,1,`sh3-btn sh3-btn--${n()??""}`,"svelte-t4hi97",m,{"sh3-btn--icon-only":a(d),"sh3-btn--pressed":t.pressed}),v.disabled=r()||a(u),ie(v,"aria-busy",a(u)||void 0),ie(v,"aria-pressed",t.pressed??void 0),ie(v,"title",t.title),ie(v,"aria-label",t.ariaLabel??(a(d)?t.title:void 0))}),K("click",v,f),k(e,v),ue()}_e(["click"]);var qS=E('<div class="sh3-confirm-delete svelte-10j1eb1"><div class="sh3-confirm-delete__title svelte-10j1eb1"><!></div> <div class="sh3-confirm-delete__buttons svelte-10j1eb1"><button type="button" class="sh3-confirm-delete__btn svelte-10j1eb1">Cancel</button> <button type="button" class="sh3-confirm-delete__btn sh3-confirm-delete__btn--danger svelte-10j1eb1">Delete</button></div></div>');function FS(e,t){ce(t,!0);var n=qS(),r=p(n),s=p(r);{var o=f=>{var v=Ht();N(()=>z(v,`Delete "${t.item.name??""}"?`)),k(f,v)},i=f=>{var v=Ht();N(()=>z(v,`Delete folder "${t.item.name??""}"?`)),k(f,v)},l=f=>{var v=Ht();N(()=>z(v,`Delete folder "${t.item.name??""}" and ${t.childCount??""} item${t.childCount===1?"":"s"}?`)),k(f,v)};U(s,f=>{t.item.kind==="file"?f(o):t.childCount===0?f(i,1):f(l,-1)})}h(r);var c=g(r,2),u=p(c),d=g(u,2);h(c),h(n),K("click",u,function(...f){t.onCancel?.apply(this,f)}),K("click",d,function(...f){t.onConfirm?.apply(this,f)}),k(e,n),ue()}_e(["click"]);var BS=E('<span class="sh3-doc-browser__crumb-sep svelte-16fo6d5">/</span>'),VS=E('<!> <button type="button"> </button>',1),US=E('<span class="sh3-doc-browser__toolbar-error svelte-16fo6d5"> </span>'),HS=E('<div class="sh3-doc-browser__toolbar svelte-16fo6d5"><!> <!> <!> <!> <!> <!></div>'),KS=E('<div class="sh3-doc-browser__confirm-overlay svelte-16fo6d5"><!></div>'),WS=E('<div class="sh3-doc-browser__empty svelte-16fo6d5"> </div>'),YS=E('<div class="sh3-doc-browser__item sh3-doc-browser__item--folder sh3-doc-browser__item--editing svelte-16fo6d5"><span class="sh3-doc-browser__icon sh3-doc-browser__icon--folder svelte-16fo6d5" aria-hidden="true">📁</span> <input class="sh3-doc-browser__rename-input svelte-16fo6d5" type="text"/></div>'),XS=E('<input class="sh3-doc-browser__rename-input svelte-16fo6d5" type="text"/>'),GS=E('<span class="sh3-doc-browser__name svelte-16fo6d5"> </span> <span class="sh3-doc-browser__meta svelte-16fo6d5"></span>',1),JS=E('<span class="sh3-doc-browser__icon sh3-doc-browser__icon--folder svelte-16fo6d5" aria-hidden="true">📁</span> <!>',1),ZS=E('<input class="sh3-doc-browser__rename-input svelte-16fo6d5" type="text"/>'),QS=E('<span class="sh3-doc-browser__name svelte-16fo6d5"> </span> <span class="sh3-doc-browser__meta svelte-16fo6d5"> <span class="sh3-doc-browser__date svelte-16fo6d5"> </span></span>',1),$S=E('<span class="sh3-doc-browser__icon svelte-16fo6d5" aria-hidden="true"> </span> <!>',1),e3=E('<div role="option" tabindex="-1"><!></div>'),t3=E("<!> <!> <!>",1),n3=E('<div class="sh3-doc-browser__save-row svelte-16fo6d5"><span class="sh3-doc-browser__save-label svelte-16fo6d5">Filename:</span> <input class="sh3-doc-browser__save-input svelte-16fo6d5" type="text" placeholder="filename.ext"/></div>'),r3=E('<div class="sh3-doc-browser svelte-16fo6d5" tabindex="-1"><div class="sh3-doc-browser__head svelte-16fo6d5"><span class="sh3-doc-browser__title svelte-16fo6d5"> </span></div> <nav class="sh3-doc-browser__crumbs svelte-16fo6d5"></nav> <!> <div class="sh3-doc-browser__list svelte-16fo6d5"><!></div> <!> <div class="sh3-doc-browser__footer svelte-16fo6d5"><button type="button" class="sh3-doc-browser__btn sh3-doc-browser__btn--cancel svelte-16fo6d5">Cancel</button> <button type="button" class="sh3-doc-browser__btn sh3-doc-browser__btn--primary svelte-16fo6d5"> </button></div></div>');function Ul(e,t){ce(t,!0);let n=te(t,"suggestedName",3,""),r=te(t,"selectable",3,"file"),s=q(null),o=q(""),i=q(null),l=q(he(Oe(()=>n()))),c=q(0),u=q(void 0),d=q(he([]));Ne(()=>{if(b(d,[],!0),!t.listFolders||a(s)===null)return;const ee=a(s),fe=a(o);let Ce=!1;return(async()=>{try{const Te=await t.listFolders(ee,fe);Ce||b(d,Te,!0)}catch{}})(),()=>{Ce=!0}});const f=B(()=>AS(t.docs,a(d),a(s),a(o))),v=B(()=>DS(a(s),a(o)));Ne(()=>{a(f),b(c,Math.min(a(c),a(f).length-1),!0)});const m=B(()=>a(s)!==null&&!!t.handle&&!(t.readOnlyShard?.(a(s))??!1));let S=q(!1),y=q(""),w=q(null),I=q(""),x=q(null),_=q(null),T=q(null);function C(ee){b(x,ee,!0),setTimeout(()=>{a(x)===ee&&b(x,null)},3e3)}function D(ee){b(s,ee,!0),b(o,""),b(i,null),b(l,""),b(c,0)}function P(ee){a(s)===null?D(ee):(b(o,ee,!0),b(i,null),b(l,""),b(c,0))}function R(ee){ee.kind==="folder"?r()!=="file"?b(i,{kind:"folder",fullPath:ee.fullPath,name:ee.name},!0):P(ee.fullPath):(t.mode==="open"&&b(i,{kind:"file",doc:ee.doc},!0),t.mode==="save"&&b(l,ee.name,!0))}function A(){if(t.mode==="open"&&a(i))a(i).kind==="file"?t.onCommit({shardId:a(i).doc.shardId,path:a(i).doc.path,kind:"file"}):t.onCommit({shardId:a(s),path:a(i).fullPath,kind:"folder"}),t.close();else if(t.mode==="save"&&a(l).trim()&&a(s)){const ee=a(o)?`${a(s)}/${a(o)}/${a(l)}`:`${a(s)}/${a(l)}`;t.onCommit(ee),t.close()}}function M(){t.onCancel(),t.close()}function L(){return t.mode==="open"?a(i)?r()==="file"?a(i).kind==="file":r()==="folder"?a(i).kind==="folder":!0:!1:a(l).trim().length>0&&a(s)!==null}function j(){!t.handle||a(s)===null||(b(S,!0),b(y,""))}async function F(){const ee=a(y).trim();if(b(S,!1),!ee||!t.handle||a(s)===null)return;if(a(f).some(Ce=>Ce.name===ee)){C(`"${ee}" already exists`);return}const fe=a(o)?`${a(o)}/${ee}`:ee;try{await t.handle.mkdir(a(s),fe)}catch(Ce){C(String(Ce?.message??Ce))}}function V(){b(S,!1),b(y,"")}function W(){a(i)&&(a(i).kind==="file"?(b(w,a(i).doc.path,!0),b(I,a(i).doc.path.split("/").pop()??"",!0)):(b(w,a(i).fullPath,!0),b(I,a(i).name,!0)))}async function Q(){const ee=a(w),fe=a(I).trim();if(b(w,null),!ee||!fe||!t.handle||a(s)===null)return;const Ce=a(f).find(Te=>Te.kind==="file"&&Te.doc.path===ee||Te.kind==="folder"&&Te.fullPath===ee);if(!(!Ce||fe===Ce.name)){if(a(f).some(Te=>Te!==Ce&&Te.name===fe)){C(`"${fe}" already exists`);return}try{if(Ce.kind==="file"){const Te=a(o)?`${a(o)}/${fe}`:fe;await t.handle.rename(a(s),Ce.doc.path,Te)}else{const Te=a(o)?`${a(o)}/${fe}`:fe;await t.handle.renameFolder(a(s),Ce.fullPath,Te)}}catch(Te){C(String(Te?.message??Te))}}}function G(){b(w,null),b(I,"")}function $(){if(a(i))if(a(i).kind==="file"){const ee=a(i).doc.path;b(_,a(f).find(fe=>fe.kind==="file"&&fe.doc.path===ee)??null,!0)}else{const ee=a(i).fullPath;b(_,a(f).find(fe=>fe.kind==="folder"&&fe.fullPath===ee)??null,!0)}}async function ae(ee){const fe=a(_);if(b(_,null),!(!fe||!t.handle||a(s)===null))try{fe.kind==="file"?await t.handle.delete(a(s),fe.doc.path):await t.handle.rmdir(a(s),fe.fullPath,{recursive:ee}),b(i,null)}catch(Ce){C(String(Ce?.message??Ce))}}function Y(){!a(i)||a(s)===null||(a(i).kind==="file"?b(T,{kind:"file",shardId:a(s),path:a(i).doc.path},!0):b(T,{kind:"folder",shardId:a(s),path:a(i).fullPath},!0))}function Z(){if(!a(T)||!t.handle||a(s)===null||a(T).shardId!==a(s))return!1;const ee=a(o);return!(a(T).kind==="folder"&&(ee===a(T).path||ee.startsWith(a(T).path+"/"))||(a(T).path.includes("/")?a(T).path.slice(0,a(T).path.lastIndexOf("/")):"")===ee)}async function O(){if(!Z()||!a(T)||!t.handle||a(s)===null)return;const ee=a(T).path.split("/").pop(),fe=a(o)?`${a(o)}/${ee}`:ee;try{a(T).kind==="file"?await t.handle.rename(a(s),a(T).path,fe):await t.handle.renameFolder(a(s),a(T).path,fe),b(T,null)}catch(Ce){C(String(Ce?.message??Ce))}}function H(ee){if(!(ee.target instanceof HTMLInputElement))switch(ee.key){case"ArrowDown":ee.preventDefault(),b(c,Math.min(a(c)+1,a(f).length-1),!0);break;case"ArrowUp":ee.preventDefault(),b(c,Math.max(a(c)-1,0),!0);break;case"Enter":ee.preventDefault(),a(c)>=0&&a(c)<a(f).length&&R(a(f)[a(c)]);break;case"Escape":ee.preventDefault(),M();break;case"F2":ee.preventDefault(),W();break;case"Delete":ee.preventDefault(),$();break;case"x":(ee.ctrlKey||ee.metaKey)&&(ee.preventDefault(),Y());break;case"v":(ee.ctrlKey||ee.metaKey)&&(ee.preventDefault(),O());break;case"N":(ee.ctrlKey||ee.metaKey)&&ee.shiftKey&&(ee.preventDefault(),j());break;case"Backspace":if(a(o)){ee.preventDefault();const fe=a(o).split("/");fe.pop(),b(o,fe.join("/"),!0),b(c,0)}else a(s)&&(ee.preventDefault(),b(s,null),b(c,0));break}}function J(ee){ee.kind==="folder"?P(ee.fullPath):t.mode==="open"&&(t.onCommit({shardId:ee.doc.shardId,path:ee.doc.path,kind:"file"}),t.close())}Ne(()=>{const ee=qt.subscribe(async fe=>{if(!(a(s)!==null&&fe.shardId!==a(s))&&t.listFolders&&a(s)!==null)try{b(d,await t.listFolders(a(s),a(o)),!0)}catch{}});return()=>ee()});var X=r3(),le=p(X),me=p(le),se=p(me,!0);h(me),h(le);var de=g(le,2);Se(de,21,()=>a(v),xt,(ee,fe,Ce)=>{var Te=VS(),Fe=ke(Te);{var He=Ue=>{var it=BS();k(Ue,it)};U(Fe,Ue=>{Ce>0&&Ue(He)})}var Ye=g(Fe,2);let Xe;var Me=p(Ye,!0);h(Ye),N(()=>{Xe=xe(Ye,1,"sh3-doc-browser__crumb svelte-16fo6d5",null,Xe,{"sh3-doc-browser__crumb--last":Ce===a(v).length-1}),z(Me,a(fe).label)}),K("click",Ye,()=>{b(s,a(fe).targetShard,!0),b(o,a(fe).targetPrefix,!0),b(i,null),b(l,""),b(c,0)}),k(ee,Te)}),h(de);var ye=g(de,2);{var Ee=ee=>{var fe=HS(),Ce=p(fe);Pt(Ce,{variant:"icon",icon:"folder-plus",title:"New folder",onclick:j,get disabled(){return a(S)}});var Te=g(Ce,2);{let Ue=B(()=>!a(i));Pt(Te,{variant:"icon",icon:"pencil",title:"Rename",onclick:W,get disabled(){return a(Ue)}})}var Fe=g(Te,2);{let Ue=B(()=>!a(i));Pt(Fe,{variant:"icon",icon:"trash-2",title:"Delete",onclick:$,get disabled(){return a(Ue)}})}var He=g(Fe,2);{let Ue=B(()=>!a(i));Pt(He,{variant:"icon",icon:"scissors",title:"Cut",onclick:Y,get disabled(){return a(Ue)}})}var Ye=g(He,2);{let Ue=B(()=>!Z());Pt(Ye,{variant:"icon",icon:"clipboard",title:"Paste",onclick:()=>void O(),get disabled(){return a(Ue)}})}var Xe=g(Ye,2);{var Me=Ue=>{var it=US(),fn=p(it,!0);h(it),N(()=>z(fn,a(x))),k(Ue,it)};U(Xe,Ue=>{a(x)&&Ue(Me)})}h(fe),k(ee,fe)};U(ye,ee=>{a(m)&&ee(Ee)})}var Le=g(ye,2),oe=p(Le);{var be=ee=>{const fe=B(()=>a(_).kind==="folder"?t.docs.filter(Fe=>Fe.shardId===a(s)&&Fe.path.startsWith(a(_).fullPath+"/")).length:0);var Ce=KS(),Te=p(Ce);{let Fe=B(()=>({kind:a(_).kind,name:a(_).name}));FS(Te,{get item(){return a(Fe)},get childCount(){return a(fe)},onConfirm:()=>void ae(a(_).kind==="folder"),onCancel:()=>{b(_,null)}})}h(Ce),k(ee,Ce)},Ae=ee=>{var fe=t3(),Ce=ke(fe);{var Te=Xe=>{var Me=WS(),Ue=p(Me,!0);h(Me),N(()=>z(Ue,a(s)===null?"No shards available.":a(o)?"Empty directory.":"No documents in this shard.")),k(Xe,Me)};U(Ce,Xe=>{a(f).length===0&&!a(S)&&Xe(Te)})}var Fe=g(Ce,2);{var He=Xe=>{var Me=YS(),Ue=g(p(Me),2);De(Ue),br(Ue,!0),h(Me),K("keydown",Ue,it=>{it.key==="Enter"&&(it.preventDefault(),F()),it.key==="Escape"&&(it.preventDefault(),V())}),Ke("blur",Ue,()=>void F()),qe(Ue,()=>a(y),it=>b(y,it)),k(Xe,Me)};U(Fe,Xe=>{a(S)&&Xe(He)})}var Ye=g(Fe,2);Se(Ye,17,()=>a(f),xt,(Xe,Me,Ue)=>{const it=B(()=>Ue===a(c)),fn=B(()=>a(Me).kind==="file"&&t.mode==="open"&&a(i)?.kind==="file"&&a(i).doc.path===a(Me).doc.path&&a(i).doc.shardId===a(Me).doc.shardId||a(Me).kind==="folder"&&a(i)?.kind==="folder"&&a(i).fullPath===a(Me).fullPath),Fn=B(()=>a(w)!==null&&(a(Me).kind==="file"&&a(Me).doc.path===a(w)||a(Me).kind==="folder"&&a(Me).fullPath===a(w)));var St=e3();let Qr;var Sr=p(St);{var Bs=Bn=>{var Qn=JS(),Ir=g(ke(Qn),2);{var $r=Sn=>{var Zt=XS();De(Zt),br(Zt,!0),K("keydown",Zt,ct=>{ct.key==="Enter"&&(ct.preventDefault(),Q()),ct.key==="Escape"&&(ct.preventDefault(),G())}),Ke("blur",Zt,()=>void Q()),qe(Zt,()=>a(I),ct=>b(I,ct)),k(Sn,Zt)},Vs=Sn=>{var Zt=GS(),ct=ke(Zt),Qt=p(ct,!0);h(ct),Wt(2),N(()=>z(Qt,a(Me).name)),k(Sn,Zt)};U(Ir,Sn=>{a(Fn)?Sn($r):Sn(Vs,-1)})}k(Bn,Qn)},Zn=Bn=>{var Qn=$S(),Ir=ke(Qn),$r=p(Ir,!0);h(Ir);var Vs=g(Ir,2);{var Sn=ct=>{var Qt=ZS();De(Qt),br(Qt,!0),K("keydown",Qt,vn=>{vn.key==="Enter"&&(vn.preventDefault(),Q()),vn.key==="Escape"&&(vn.preventDefault(),G())}),Ke("blur",Qt,()=>void Q()),qe(Qt,()=>a(I),vn=>b(I,vn)),k(ct,Qt)},Zt=ct=>{var Qt=QS(),vn=ke(Qt),nt=p(vn,!0);h(vn);var et=g(vn,2),Tt=p(et),es=g(Tt),Ri=p(es,!0);h(es),h(et),N((Pi,Er)=>{z(nt,a(Me).name),z(Tt,`${Pi??""} `),z(Ri,Er)},[()=>TS(a(Me).doc.size),()=>RS(a(Me).doc.lastModified)]),k(ct,Qt)};U(Vs,ct=>{a(Fn)?ct(Sn):ct(Zt,-1)})}N(ct=>z($r,ct),[()=>LS(a(Me).name)]),k(Bn,Qn)};U(Sr,Bn=>{a(Me).kind==="folder"?Bn(Bs):Bn(Zn,-1)})}h(St),N(()=>{Qr=xe(St,1,"sh3-doc-browser__item svelte-16fo6d5",null,Qr,{"sh3-doc-browser__item--active":a(it),"sh3-doc-browser__item--selected":a(fn),"sh3-doc-browser__item--folder":a(Me).kind==="folder"}),ie(St,"aria-selected",a(fn))}),K("click",St,()=>R(a(Me))),K("keydown",St,Bn=>{Bn.key==="Enter"&&R(a(Me))}),K("dblclick",St,()=>J(a(Me))),Ke("mouseenter",St,()=>b(c,Ue,!0)),k(Xe,St)}),k(ee,fe)};U(oe,ee=>{a(_)?ee(be):ee(Ae,-1)})}h(Le),Qe(Le,ee=>b(u,ee),()=>a(u));var ne=g(Le,2);{var re=ee=>{var fe=n3(),Ce=g(p(fe),2);De(Ce),h(fe),K("keydown",Ce,Te=>{Te.key==="Enter"&&L()&&A()}),qe(Ce,()=>a(l),Te=>b(l,Te)),k(ee,fe)};U(ne,ee=>{t.mode==="save"&&a(s)!==null&&ee(re)})}var ge=g(ne,2),we=p(ge),pe=g(we,2),ze=p(pe,!0);h(pe),h(ge),h(X),N(ee=>{z(se,t.mode==="open"?"Open Document":"Save Document"),pe.disabled=ee,z(ze,t.mode==="open"?"Open":"Save")},[()=>!L()]),K("keydown",X,H),K("click",we,M),K("click",pe,A),k(e,X),ue()}_e(["keydown","click","dblclick"]);const s3="max-width: min(800px, 95vw);",a3={dismissOnBackdrop:!0,boxStyle:s3};function yd(e){function t(o,i){if(i){const l=i.getBoundingClientRect();return vt.popup.show(Ul,{anchor:{x:l.left+l.width/2,y:l.top}},o)}return vt.modal.open(Ul,o,a3)}function n(o,i){const l=o.close;o.close=()=>{l(),i(null)}}async function r(o){const i=await e();return new Promise(l=>{const c=t({mode:"open",docs:i,onCommit:u=>{l(u)},onCancel:()=>{l(null)}},o?.anchor);n(c,l)})}async function s(o){const i=await e();return new Promise(l=>{const c=t({mode:"save",docs:i,suggestedName:o?.suggestedName,onCommit:u=>{l(u)},onCancel:()=>{l(null)}},o?.anchor);n(c,l)})}return{open:r,save:s}}const _p="keys:mint";class wp extends Error{constructor(t){super(`Shard may not mint a key with scope '${t}' — not declared in manifest.`),this.name="ScopeEscalationError"}}class kp extends Error{constructor(){super("User denied key creation."),this.name="ConsentDeniedError"}}const Hl=new Map;let sa=null;function xp(e){return sa=e,()=>{sa===e&&(sa=null)}}async function o3(e,t){if(!sa)throw new Error("No consent listener registered — the sh3 must mount ConsentDialog.");const n=`c_${Math.random().toString(36).slice(2)}${Date.now()}`;return new Promise(r=>{Hl.set(n,{resolve:r}),sa({...t,shardId:e,requestId:n})})}function Kl(e,t){const n=Hl.get(e);n&&(Hl.delete(e),n.resolve(t))}const Oo=new Map,ho=new Map,i3=5e3;function l3(e,t){let n=ho.get(e);n||(n=new Set,ho.set(e,n)),n.add(t),setTimeout(()=>{n.delete(t),n.size===0&&ho.delete(e)},i3)}function c3(e,t){return ho.get(e)?.has(t)??!1}function au(e,t){const n=Oo.get(e)??new Set;return n.add(t),Oo.set(e,n),()=>{n.delete(t)}}function Sp(e,t){if(!e||c3(e,t))return;l3(e,t);const n=Oo.get(e);if(n)for(const s of n)s(t);const r=Oo.get("*");if(r)for(const s of r)s(t)}function u3(){if(typeof EventSource>"u")return()=>{};const e=gt(),t=$h(),n=t?`${e}/api/keys/events?token=${encodeURIComponent(t)}`:`${e}/api/keys/events`,r=new EventSource(n,t?{}:{withCredentials:!0});return r.onmessage=s=>{try{const o=JSON.parse(s.data);Sp(o.shardId,o.id)}catch{}},()=>r.close()}function d3(e){const{shardId:t,shardPermissions:n}=e,r=s=>{for(const o of s)if(!n.includes(o)&&!n.includes("admin:*"))throw new wp(o)};return{async mint(s){if(r(s.scopes),!await o3(t,s))throw new kp;const i=await Ie(`${gt()}/api/keys/consent`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({shardId:t,...s})});if(!i.ok)throw new Error(`Consent ticket failed: ${i.status}`);const{ticket:l}=await i.json(),c=await Ie(`${gt()}/api/keys`,{method:"POST",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 Ie(`${gt()}/api/keys`);if(!s.ok)throw new Error(`List failed: ${s.status}`);return(await s.json()).filter(i=>i.mintedByShardId===t)},async revoke(s){const o=await Ie(`${gt()}/api/keys/${encodeURIComponent(s)}`,{method:"DELETE"});if(!o.ok&&o.status!==404)throw new Error(`Revoke failed: ${o.status}`);Sp(t,s)}}}const kn=he(new Map),ps=new Map,Wr=he(new Map),No=he(new Map);let Ip=null;function _d(e){Ip=e}function xi(e){const t=e.manifest.id;kn.has(t)&&Wr.has(t)&&Si(t),kn.set(t,e),No.delete(t)}async function qo(e,t){const n=kn.get(e);if(!n)throw new Error(`Cannot activate shard "${e}": not registered`);if(ps.has(e))return;const r={shard:n,ctx:void 0,viewIds:new Set,verbNames:new Set,cleanupFns:[]},s=he({proxy:null,defaults:null}),o={register(u,d,f){let v=d;if(u==="sh3.controllable-field"){const S={shardId:e};f?.scope?.slotId!==void 0&&(S.slotId=f.scope.slotId),v={owner:S,descriptor:d}}const m=oh(u,v,f);return r.cleanupFns.push(async()=>m()),m},list(u){return Jr(u)},listPoints(){return S1()},onChange(u,d){const f=di(u,d);return r.cleanupFns.push(async()=>f()),f},onAnyChange(u){const d=I1(u);return r.cleanupFns.push(async()=>d()),d}},l=n.manifest.permissions?.includes(nu)?CS(()=>Wi(),Yi(),{canRead:n.manifest.permissions?.includes(ru)??!1,canWrite:n.manifest.permissions?.includes(su)??!1}):void 0,c={state:u=>vt.state(e,u),registerView:(u,d)=>{a1(u,d,n.manifest.id),r.viewIds.add(u)},registerVerb:u=>{let d;e==="shell"?d=u.name:d=`${n.manifest.verbNamespace??e}:${u.name}`,o1(d,{...u,name:d},e)&&r.verbNames.add(d)},documents:u=>{const d=yS(Ka(),e,Yi(),u);return r.cleanupFns.push(()=>d.dispose()),d},fetch(u,d){return Ie(this.resolveUrl(u),d)},get serverUrl(){return gt()},resolveUrl(u){if(u.startsWith("http://")||u.startsWith("https://"))return u;const f=gt(),v=u.startsWith("/")?"":"/";return`${f}${v}${u}`},env(u){return s.proxy?(console.warn(`[sh3] Shard "${e}" called ctx.env() more than once; extra calls are ignored.`),s.proxy):(s.defaults=u,s.proxy={...u},s.proxy)},async envUpdate(u){if(!s.proxy||!s.defaults)throw new Error(`Shard "${e}" called envUpdate() without declaring env state`);const d=Br(s.proxy);Object.assign(s.proxy,u);try{const f=Br(s.proxy);await SS(e,f)}catch(f){throw Object.assign(s.proxy,d),f}},get isAdmin(){return Kt()},get tenantId(){return Wi()},getScope:()=>Ip?.()??"tenant",zones:n.manifest.permissions?.includes(fa)?Pl():void 0,browse:l,documentPicker:yd(l?()=>l.listDocuments():async()=>(await Yi().list(Wi(),e)).map(d=>({...d,shardId:e}))),keys:n.manifest.permissions?.includes(_p)?d3({shardId:e,shardPermissions:n.manifest.permissions??[]}):void 0,contributions:o,actions:{register(u){const d=$k(u,e);return r.cleanupFns.push(async()=>d()),d},selection:pi(e),openContextMenu(u){Nh(u)},openPalette(u){mi(u)}},sh3:eu({callerKind:"shard",callerShardId:e,zones:n.manifest.permissions?.includes(fa)?Pl():void 0})};if(r.ctx=c,n.onKeyRevoked){const u=au(e,async d=>{try{await n.onKeyRevoked(d)}catch(f){console.error(`[sh3] onKeyRevoked failed in "${e}":`,f)}});r.cleanupFns.push(async()=>u())}ps.set(e,r),Wr.set(e,n);try{await n.activate(c);for(const u of n.manifest.views)if(!r.viewIds.has(u.id))throw new Error(`Shard "${e}" declared view "${u.id}" in its manifest but registered no factory for it.`);if(s.proxy&&s.defaults)try{const u=await xS(e),d=Object.assign({},s.defaults,u);Object.assign(s.proxy,d)}catch(u){console.warn(`[sh3] Failed to hydrate env state for shard "${e}":`,u instanceof Error?u.message:u)}}catch(u){for(const d of r.cleanupFns)try{d()}catch{}for(const d of r.verbNames)Qv(d);for(const d of r.viewIds)Zv(d);throw xh(e),ps.delete(e),Wr.delete(e),No.set(e,{id:e,error:u,phase:t?.phase??"launch",timestamp:Date.now()}),console.error(`[sh3] Shard "${e}" failed to activate:`,u),u}No.delete(e),n.autostart?.(c)}function Si(e){const t=ps.get(e);if(t){t.shard.deactivate?.();for(const n of t.cleanupFns)n();for(const n of t.verbNames)Qv(n);for(const n of t.viewIds)Zv(n);xh(e),ps.delete(e),Wr.delete(e)}}function f3(e){return ps.get(e)?.ctx}function wa(){const e=[];for(const t of Wr.values())for(const n of t.manifest.views)n.standalone&&e.push({shardId:t.manifest.id,viewId:n.id,label:n.label});return e}function v3(e){return btoa(JSON.stringify(e)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function h3(e){let t;try{const r=e.replace(/-/g,"+").replace(/_/g,"/");t=atob(r)}catch(r){throw new Error(`Invalid satellite payload encoding: ${r.message}`)}let n;try{n=JSON.parse(t)}catch(r){throw new Error(`Invalid satellite payload JSON: ${r.message}`)}return p3(n)}function p3(e){if(!e||typeof e!="object")throw new Error("Satellite payload must be an object");const t=e;if(t.kind==="float"){if(!t.content||typeof t.content!="object")throw new Error("Float payload missing content");if(!t.size||typeof t.size!="object")throw new Error("Float payload missing size");if(!Array.isArray(t.activateShards))throw new Error("Float payload missing activateShards");return t}if(t.kind==="app"){if(typeof t.appId!="string")throw new Error("App payload missing appId");if(!Array.isArray(t.activateShards))throw new Error("App payload missing activateShards");return t}throw new Error(`Unknown satellite payload kind: ${String(t.kind)}`)}function m3(){return typeof globalThis.__TAURI_INTERNALS__<"u"}let wd=0;function b3(){return wd+=1,`sh3-satellite-${Date.now()}-${wd}`}async function Ii(e,t={}){if(!m3())return console.warn("[sh3] sh3.window.spawn called outside Tauri — no-op"),"";const{invoke:n}=await Wo(async()=>{const{invoke:c}=await import("./core-DsojzR6k.js");return{invoke:c}},[]),r=v3(e),s=b3(),o=t.title??(e.kind==="float"?e.title??"SH3":`SH3 — ${e.appId}`),i=t.width??(e.kind==="float"?e.size.w:1024),l=t.height??(e.kind==="float"?e.size.h:768);return n("sh3_spawn_satellite",{payload:r,label:s,title:o,width:i,height:l})}class Bt extends Error{constructor(t,n){super(`Registry validation error at ${t}: ${n}`),this.name="RegistryValidationError",this.path=t}}function Ep(e){if(!e||typeof e!="object"||Array.isArray(e))throw new Bt("$","expected an object");const t=e;if(t.version!==1)throw new Bt("$.version",`expected 1, got ${JSON.stringify(t.version)}`);if(!Array.isArray(t.packages))throw new Bt("$.packages","expected an array");return{version:1,packages:t.packages.map((r,s)=>g3(r,`$.packages[${s}]`))}}function g3(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new Bt(t,"expected an object");const n=e;An(n,"id",t),w3(n,"type",["shard","app","combo"],t),An(n,"label",t),An(n,"description",t);const r=`${t}.author`;if(!n.author||typeof n.author!="object"||Array.isArray(n.author))throw new Bt(r,"expected an object");const s=n.author;if(typeof s.name!="string"||s.name.length===0)throw new Bt(`${r}.name`,"expected a non-empty string");if(!Array.isArray(n.versions)||n.versions.length===0)throw new Bt(`${t}.versions`,"expected a non-empty array");const o=n.versions.map((i,l)=>y3(i,`${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:o}}function y3(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new Bt(t,"expected an object");const n=e;An(n,"version",t),An(n,"contractVersion",t);const r="bundleUrl"in n&&n.bundleUrl!==void 0,s="integrity"in n&&n.integrity!==void 0;if(r&&An(n,"bundleUrl",t),s&&An(n,"integrity",t),r!==s)throw new Bt(t,"bundleUrl and integrity must be provided together");const o="serverBundleUrl"in n&&n.serverBundleUrl!==void 0;if(o&&An(n,"serverBundleUrl",t),"serverIntegrity"in n&&n.serverIntegrity!==void 0&&An(n,"serverIntegrity",t),!r&&!o)throw new Bt(t,"expected at least one of bundleUrl+integrity or serverBundleUrl");let i;if(n.requires!==void 0){if(!Array.isArray(n.requires))throw new Bt(`${t}.requires`,"expected an array");i=n.requires.map((l,c)=>_3(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:i}}function _3(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new Bt(t,"expected an object");const n=e;return An(n,"id",t),An(n,"versionRange",t),{id:n.id,versionRange:n.versionRange}}function An(e,t,n){const r=e[t];if(typeof r!="string"||r.length===0)throw new Bt(`${n}.${t}`,"expected a non-empty string")}function w3(e,t,n,r){if(!n.includes(e[t]))throw new Bt(`${r}.${t}`,`expected one of: ${n.join(", ")}`)}const kd=["sha256","sha384","sha512"];function k3(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(!kd.includes(n))throw new Error(`Unsupported SRI algorithm: ${n}. Supported: ${kd.join(", ")}`);if(!r)throw new Error(`Empty hash in SRI: ${e}`);return{algorithm:n,hash:r}}function x3(e){return`SHA-${e.slice(3)}`}function S3(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 ou(e,t){const{algorithm:n,hash:r}=k3(t),s=x3(n),o=await crypto.subtle.digest(s,e),i=S3(o);if(i!==r)throw new Error(`Integrity check failed for ${n}. Expected: ${r}, got: ${i}`)}async function Cp(e){const t=new Set,n=[];for(const r of e){let s;try{const i=await fetch(r);if(!i.ok){console.warn(`[sh3] Registry fetch failed for ${r}: HTTP ${i.status}`);continue}s=await i.json()}catch(i){console.warn(`[sh3] Registry ${r}: ${i instanceof Error?i.message:String(i)}`);continue}let o;try{o=Ep(s)}catch(i){console.warn(`[sh3] Registry ${r} failed validation: ${i instanceof Error?i.message:String(i)}`);continue}for(const i of o.packages)t.has(i.id)||(t.add(i.id),n.push({entry:i,latest:i.versions[0],sourceRegistry:r}))}return n}async function Ei(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 ou(s,e.integrity),s}async function iu(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 ou(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 Ci(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 aa="sh3.shell.mode";function I3(e,t){return e.contributions.register(aa,t)}const lu="sh3:user:__sh3core__:theme";let ka=[];function E3(e){const t=Object.keys(e);for(const n of ka)t.includes(n)||document.documentElement.style.removeProperty(`--${n}`);for(const[n,r]of Object.entries(e))document.documentElement.style.setProperty(`--${n}`,r);ka=t;try{localStorage.setItem(lu,JSON.stringify(e))}catch{}}function C3(){for(const e of ka)document.documentElement.style.removeProperty(`--${e}`);ka=[];try{localStorage.removeItem(lu)}catch{}}function Ap(){try{const e=localStorage.getItem(lu);if(!e)return{};const t=JSON.parse(e);return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{}}catch{return{}}}function A3(){const e=Ap();if(Object.keys(e).length!==0){for(const[t,n]of Object.entries(e))document.documentElement.style.setProperty(`--${t}`,n);ka=Object.keys(e)}}var T3=E('<span class="sh3-collapsible__title svelte-lvydsb"> </span>'),R3=E('<div class="sh3-collapsible__body svelte-lvydsb"><!></div>'),P3=E('<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 L3(e,t){ce(t,!0);let n=te(t,"open",15,!1);function r(){n(!n()),t.onopenchange?.(n())}var s=P3();let o;var i=p(s),l=g(p(i),2);{var c=v=>{var m=Ze(),S=ke(m);ln(S,()=>t.header),k(v,m)},u=v=>{var m=T3(),S=p(m,!0);h(m),N(()=>z(S,t.title)),k(v,m)};U(l,v=>{t.header?v(c):t.title&&v(u,1)})}h(i);var d=g(i,2);{var f=v=>{var m=R3(),S=p(m);ln(S,()=>t.children),h(m),k(v,m)};U(d,v=>{n()&&v(f)})}h(s),N(()=>{o=xe(s,1,"sh3-collapsible svelte-lvydsb",null,o,{"sh3-collapsible--open":n()}),ie(i,"aria-expanded",n())}),K("click",i,r),k(e,s),ue()}_e(["click"]);var D3=E('<span aria-hidden="true">*</span>'),M3=E('<span class="sh3-field__label svelte-m4dkl"> <!></span>'),j3=E('<span class="sh3-field__affix svelte-m4dkl"><!></span>'),z3=E('<span class="sh3-field__affix svelte-m4dkl"><!></span>'),O3=E("<span> </span>"),N3=E('<label><!> <span class="sh3-field__row svelte-m4dkl"><!> <input class="sh3-field__input svelte-m4dkl"/> <!></span> <!></label>');function q3(e,t){ce(t,!0);let n=te(t,"value",15,""),r=te(t,"type",3,"text"),s=te(t,"disabled",3,!1),o=te(t,"invalid",3,!1),i=te(t,"size",3,"md"),l=te(t,"required",3,!1);const c=B(()=>o()&&!!t.error),u=B(()=>a(c)?t.error:t.helper);var d=N3();let f;var v=p(d);{var m=D=>{var P=M3(),R=p(P,!0),A=g(R);{var M=L=>{var j=D3();k(L,j)};U(A,L=>{l()&&L(M)})}h(P),N(()=>z(R,t.label)),k(D,P)};U(v,D=>{t.label&&D(m)})}var S=g(v,2),y=p(S);{var w=D=>{var P=j3(),R=p(P);ln(R,()=>t.prefix),h(P),k(D,P)};U(y,D=>{t.prefix&&D(w)})}var I=g(y,2);De(I);var x=g(I,2);{var _=D=>{var P=z3(),R=p(P);ln(R,()=>t.suffix),h(P),k(D,P)};U(x,D=>{t.suffix&&D(_)})}h(S);var T=g(S,2);{var C=D=>{var P=O3();let R;var A=p(P,!0);h(P),N(()=>{R=xe(P,1,"sh3-field__helper svelte-m4dkl",null,R,{"sh3-field__helper--error":a(c)}),z(A,a(u))}),k(D,P)};U(T,D=>{a(u)&&D(C)})}h(d),N(()=>{f=xe(d,1,"sh3-field svelte-m4dkl",null,f,{"sh3-field--invalid":o(),"sh3-field--sm":i()==="sm"}),ie(I,"type",r()),ie(I,"placeholder",t.placeholder),I.disabled=s(),I.required=l(),ie(I,"autocomplete",t.autocomplete),ie(I,"aria-invalid",o()||void 0)}),K("input",I,()=>t.oninput?.(n())),Ke("blur",I,()=>t.onchange?.(n())),qe(I,n),k(e,d),ue()}_e(["input"]);var F3=E('<span aria-hidden="true">*</span>'),B3=E('<span class="sh3-textarea__label svelte-668c6r"> <!></span>'),V3=E("<span> </span>"),U3=E('<label><!> <textarea class="sh3-textarea__input svelte-668c6r"></textarea> <!></label>');function H3(e,t){ce(t,!0);let n=te(t,"value",15,""),r=te(t,"disabled",3,!1),s=te(t,"invalid",3,!1),o=te(t,"size",3,"md"),i=te(t,"required",3,!1),l=te(t,"rows",3,3),c=te(t,"resize",3,"vertical");const u=B(()=>s()&&!!t.error),d=B(()=>a(u)?t.error:t.helper);var f=U3();let v;var m=p(f);{var S=_=>{var T=B3(),C=p(T,!0),D=g(C);{var P=R=>{var A=F3();k(R,A)};U(D,R=>{i()&&R(P)})}h(T),N(()=>z(C,t.label)),k(_,T)};U(m,_=>{t.label&&_(S)})}var y=g(m,2);fc(y);let w;var I=g(y,2);{var x=_=>{var T=V3();let C;var D=p(T,!0);h(T),N(()=>{C=xe(T,1,"sh3-textarea__helper svelte-668c6r",null,C,{"sh3-textarea__helper--error":a(u)}),z(D,a(d))}),k(_,T)};U(I,_=>{a(d)&&_(x)})}h(f),N(()=>{v=xe(f,1,"sh3-textarea svelte-668c6r",null,v,{"sh3-textarea--invalid":s(),"sh3-textarea--sm":o()==="sm"}),ie(y,"placeholder",t.placeholder),y.disabled=r(),y.required=i(),ie(y,"rows",l()),ie(y,"aria-invalid",s()||void 0),w=tt(y,"",w,{resize:c()})}),K("input",y,()=>t.oninput?.(n())),Ke("blur",y,()=>t.onchange?.(n())),qe(y,n),k(e,f),ue()}_e(["input"]);function K3(e,t,n){let r=e;return t!==void 0&&r<t&&(r=t),n!==void 0&&r>n&&(r=n),r}function W3(e,t){const n=t.min??0,r=Math.round((e-n)/t.step);return n+r*t.step}var Y3=E('<span class="sh3-num__label svelte-1qa0x3m"> </span>'),X3=E('<span class="sh3-num__affix svelte-1qa0x3m"><!></span>'),G3=E('<span class="sh3-num__affix svelte-1qa0x3m"><!></span>'),J3=E('<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 Z3(e,t){ce(t,!0);let n=te(t,"value",15,0),r=te(t,"step",3,1),s=te(t,"disabled",3,!1),o=te(t,"invalid",3,!1),i=te(t,"size",3,"md");function l(L){if(Number.isNaN(L))return;let j=K3(W3(L,{min:t.min,step:r()}),t.min,t.max);t.precision!==void 0&&(j=Number(j.toFixed(t.precision))),n(j)}function c(L){l(n()+L*r()),t.oninput?.(n())}let u=null,d=null,f=!1;function v(L){s()||(f=!0,c(L),u=setTimeout(()=>{let j=0;d=setInterval(()=>{c(L),j+=60,j>1500&&d&&(clearInterval(d),d=setInterval(()=>c(L),20))},60)},350))}function m(){u&&(clearTimeout(u),u=null),d&&(clearInterval(d),d=null),f&&(f=!1,t.onchange?.(n()))}var S=J3();let y;var w=p(S);{var I=L=>{var j=Y3(),F=p(j,!0);h(j),N(()=>z(F,t.label)),k(L,j)};U(w,L=>{t.label&&L(I)})}var x=g(w,2),_=p(x);{var T=L=>{var j=X3(),F=p(j);ln(F,()=>t.prefix),h(j),k(L,j)};U(_,L=>{t.prefix&&L(T)})}var C=g(_,2);De(C);var D=g(C,2);{var P=L=>{var j=G3(),F=p(j);ln(F,()=>t.suffix),h(j),k(L,j)};U(D,L=>{t.suffix&&L(P)})}var R=g(D,2),A=p(R),M=g(A,2);h(R),h(x),h(S),N(()=>{y=xe(S,1,"sh3-num svelte-1qa0x3m",null,y,{"sh3-num--invalid":o(),"sh3-num--sm":i()==="sm"}),ie(C,"min",t.min),ie(C,"max",t.max),ie(C,"step",r()),C.disabled=s(),ie(C,"aria-invalid",o()||void 0),da(C,n()),A.disabled=s(),M.disabled=s()}),K("input",C,L=>{const j=L.currentTarget.valueAsNumber;Number.isNaN(j)||(n(j),t.oninput?.(j))}),Ke("blur",C,()=>{l(n()),t.onchange?.(n())}),K("pointerdown",A,()=>v(1)),K("pointerup",A,m),Ke("pointerleave",A,m),K("pointerdown",M,()=>v(-1)),K("pointerup",M,m),Ke("pointerleave",M,m),k(e,S),ue()}_e(["input","pointerdown","pointerup"]);function Ai(e){return e.filter(t=>!t.disabled)}function Q3(e,t){const n=Ai(e);if(n.length===0)return t;const r=n.findIndex(o=>o.value===t);return n[(r+1+n.length)%n.length].value}function $3(e,t){const n=Ai(e);if(n.length===0)return t;const r=n.findIndex(o=>o.value===t);return n[(r-1+n.length)%n.length].value}function eI(e){return Ai(e)[0]?.value}function tI(e){const t=Ai(e);return t[t.length-1]?.value}var nI=E('<button type="button" role="radio"> </button>'),rI=E('<div role="radiogroup" tabindex="-1"></div>');function Tp(e,t){ce(t,!0);let n=te(t,"value",31,()=>he(t.options[0]?.value??"")),r=te(t,"size",3,"md"),s=te(t,"disabled",3,!1);function o(u){n(u),t.onchange?.(u)}function i(u){if(s())return;let d;switch(u.key){case"ArrowRight":case"ArrowDown":d=Q3(t.options,n());break;case"ArrowLeft":case"ArrowUp":d=$3(t.options,n());break;case"Home":d=eI(t.options);break;case"End":d=tI(t.options);break;default:return}u.preventDefault(),d!==void 0&&o(d)}var l=rI();let c;Se(l,21,()=>t.options,xt,(u,d)=>{var f=nI();let v;var m=p(f,!0);h(f),N(()=>{ie(f,"aria-checked",n()===a(d).value),ie(f,"tabindex",n()===a(d).value?0:-1),f.disabled=s()||a(d).disabled,v=xe(f,1,"svelte-17xsko9",null,v,{"sh3-seg__btn--active":n()===a(d).value}),z(m,a(d).label)}),K("click",f,()=>{!a(d).disabled&&!s()&&o(a(d).value)}),k(u,f)}),h(l),N(()=>c=xe(l,1,"sh3-seg svelte-17xsko9",null,c,{"sh3-seg--sm":r()==="sm"})),K("keydown",l,i),k(e,l),ue()}_e(["keydown","click"]);function sI(e,t){return e===t?"":t}function aI(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var oI=E('<button type="button"><!></button>'),iI=E('<div role="group"></div>');function lI(e,t){ce(t,!0);let n=te(t,"multiple",3,!1),r=te(t,"value",31,()=>he(n()?[]:t.options[0]?.value??"")),s=te(t,"disabled",3,!1),o=te(t,"size",3,"md");function i(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(aI(f,d))}else r(sI(typeof r()=="string"?r():"",d));t.onchange?.(r())}}var c=iI();let u;Se(c,21,()=>t.options,xt,(d,f)=>{var v=oI();let m;var S=p(v);ln(S,()=>a(f).icon),h(v),N((y,w)=>{ie(v,"title",a(f).tooltip),ie(v,"aria-label",a(f).tooltip),ie(v,"aria-pressed",y),v.disabled=s(),m=xe(v,1,"svelte-13knxr5",null,m,w)},[()=>i(a(f).value),()=>({"sh3-itg__btn--active":i(a(f).value)})]),K("click",v,()=>l(a(f).value)),k(d,v)}),h(c),N(()=>u=xe(c,1,"sh3-itg svelte-13knxr5",null,u,{"sh3-itg--sm":o()==="sm"})),k(e,c),ue()}_e(["click"]);function Fo(e,t,n){return n===t?0:(e-t)/(n-t)*100}var cI=E('<span class="sh3-slider__tick svelte-13va6lu"></span>'),uI=E('<output class="sh3-slider__value svelte-13va6lu"> </output>'),dI=E('<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 Rp(e,t){ce(t,!0);let n=te(t,"value",15,0),r=te(t,"min",3,0),s=te(t,"max",3,100),o=te(t,"step",3,1),i=te(t,"showValue",3,!1),l=te(t,"disabled",3,!1),c=te(t,"invalid",3,!1),u=te(t,"size",3,"md"),d=te(t,"orientation",3,"horizontal");const f=B(()=>Fo(n(),r(),s()));var v=dI();let m;var S=p(v),y=p(S);let w;var I=g(y,2);{var x=D=>{var P=Ze(),R=ke(P);Se(R,17,()=>t.ticks,xt,(A,M)=>{var L=cI();let j;N(F=>j=tt(L,"",j,F),[()=>({"--tick-pct":`${Fo(a(M),r(),s())??""}%`})]),k(A,L)}),k(D,P)};U(I,D=>{t.ticks&&D(x)})}h(S);var _=g(S,2);De(_);var T=g(_,2);{var C=D=>{var P=uI();let R;var A=p(P,!0);h(P),N(()=>{R=tt(P,"",R,{"--pct":`${a(f)??""}%`}),z(A,n())}),k(D,P)};U(T,D=>{i()&&D(C)})}h(v),N(()=>{m=xe(v,1,`sh3-slider sh3-slider--${d()??""}`,"svelte-13va6lu",m,{"sh3-slider--sm":u()==="sm","sh3-slider--invalid":c()}),w=tt(y,"",w,{"--pct":`${a(f)??""}%`}),ie(_,"min",r()),ie(_,"max",s()),ie(_,"step",o()),_.disabled=l(),ie(_,"aria-invalid",c()||void 0)}),K("input",_,()=>t.oninput?.(n())),K("change",_,()=>t.onchange?.(n())),qe(_,n),k(e,v),ue()}_e(["input","change"]);function xd(e,t,n){const[r,s]=e;return t==="low"?[Math.min(n,s),s]:[r,Math.max(n,r)]}var fI=E('<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 vI(e,t){ce(t,!0);let n=te(t,"value",31,()=>he([0,100])),r=te(t,"min",3,0),s=te(t,"max",3,100),o=te(t,"step",3,1),i=te(t,"disabled",3,!1),l=te(t,"invalid",3,!1),c=te(t,"size",3,"md");const u=B(()=>Fo(n()[0],r(),s())),d=B(()=>Fo(n()[1],r(),s()));function f(T){n(xd(n(),"low",T)),t.oninput?.(n())}function v(T){n(xd(n(),"high",T)),t.oninput?.(n())}var m=fI();let S;var y=p(m),w=p(y);let I;h(y);var x=g(y,2);De(x);var _=g(x,2);De(_),h(m),N(()=>{S=xe(m,1,"sh3-range svelte-rdbrc5",null,S,{"sh3-range--sm":c()==="sm","sh3-range--invalid":l()}),I=tt(w,"",I,{"--lo":`${a(u)??""}%`,"--hi":`${a(d)??""}%`}),ie(x,"min",r()),ie(x,"max",s()),ie(x,"step",o()),x.disabled=i(),da(x,n()[0]),ie(_,"min",r()),ie(_,"max",s()),ie(_,"step",o()),_.disabled=i(),da(_,n()[1])}),K("input",x,T=>f(parseFloat(T.currentTarget.value))),K("change",x,()=>t.onchange?.(n())),K("input",_,T=>v(parseFloat(T.currentTarget.value))),K("change",_,()=>t.onchange?.(n())),k(e,m),ue()}_e(["input","change"]);var hI=E('<div class="sh3-sg__channel svelte-1lqyi0d"><span class="sh3-sg__label svelte-1lqyi0d"> </span> <!></div>'),pI=E("<div></div>");function mI(e,t){ce(t,!0);let n=te(t,"orientation",3,"horizontal"),r=te(t,"values",31,()=>he({})),s=te(t,"showValues",3,!1),o=te(t,"disabled",3,!1),i=te(t,"size",3,"md");var l=pI();Se(l,21,()=>t.channels,c=>c.id,(c,u)=>{var d=hI(),f=p(d),v=p(f,!0);h(f);var m=g(f,2),S=()=>r()[a(u).id]??0,y=w=>r({...r(),[a(u).id]:w});{let w=B(()=>a(u).min??0),I=B(()=>a(u).max??100),x=B(()=>a(u).step??1);Rp(m,{get orientation(){return n()},get min(){return a(w)},get max(){return a(I)},get step(){return a(x)},get disabled(){return o()},get size(){return i()},get showValue(){return s()},get value(){return S()},set value(_){y(_)},oninput:()=>t.oninput?.(r()),onchange:()=>t.onchange?.(r())})}h(d),N(()=>z(v,a(u).label)),k(c,d)}),h(l),N(()=>xe(l,1,`sh3-sg sh3-sg--${n()??""}`,"svelte-1lqyi0d")),k(e,l),ue()}var bI=E('<span class="sh3-swatch__label svelte-6ri2j2"> </span>'),gI=E('<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 Pp(e,t){ce(t,!0);let n=te(t,"value",15,"#000000"),r=te(t,"disabled",3,!1),s=te(t,"size",3,"md"),o;async function i(){if(r())return;const y=await vt.color.pick({initial:n(),anchor:o});y!=null&&(n(y),t.onchange?.(y))}var l=gI();let c;var u=p(l);{var d=y=>{var w=bI(),I=p(w,!0);h(w),N(()=>z(I,t.label)),k(y,w)};U(u,y=>{t.label&&y(d)})}var f=g(u,2);let v;var m=g(p(f)),S=p(m,!0);h(m),h(f),Qe(f,y=>o=y,()=>o),h(l),N(()=>{c=xe(l,1,"sh3-swatch svelte-6ri2j2",null,c,{"sh3-swatch--sm":s()==="sm"}),f.disabled=r(),ie(f,"aria-label",`${t.label??"Color"??""} (current ${n()??""})`),v=tt(f,"",v,{"--swatch-color":n()}),z(S,n())}),K("click",f,i),k(e,l),ue()}_e(["click"]);function yI(e,t){return!e||e.length===0?t?[]:null:t?Array.from(e):e[0]}function _I(e){return e===null?"":Array.isArray(e)?e.length===0?"":e.length===1?e[0].name:`${e.length} files`:e.name}var wI=E('<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 kI(e,t){ce(t,!0);let n=te(t,"value",15,null),r=te(t,"multiple",3,!1),s=te(t,"disabled",3,!1),o=te(t,"invalid",3,!1),i=te(t,"size",3,"md"),l=te(t,"buttonLabel",3,"Choose file...");function c(I){const x=I.currentTarget;n(yI(x.files,r())),t.onchange?.(n())}const u=B(()=>_I(n()));var d=wI();let f;var v=p(d),m=g(v,2),S=p(m,!0);h(m);var y=g(m,2),w=p(y,!0);h(y),h(d),N(()=>{f=xe(d,1,"sh3-fp svelte-24jk95",null,f,{"sh3-fp--sm":i()==="sm","sh3-fp--invalid":o()}),ie(v,"accept",t.accept),v.multiple=r(),v.disabled=s(),z(S,l()),z(w,a(u)||"no file")}),K("change",v,c),k(e,d),ue()}_e(["change"]);const xI=8;function SI(e){return e.length>=xI}function II(e,t){if(!t)return e.slice();const n=t.toLowerCase();return e.filter(r=>r.label.toLowerCase().includes(n))}function EI(e,t,n){if(!t)return-1;const r=t.toLowerCase(),s=e.length;for(let o=1;o<=s;o++){const i=(n+o)%s;if(!e[i].disabled&&e[i].label.toLowerCase().startsWith(r))return i}return-1}function CI(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 AI(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var TI=E('<input class="sh3-listbox__search svelte-1tyxvrs" type="search" placeholder="Filter…"/>'),RI=E('<span aria-hidden="true"></span>'),PI=E('<div role="option" tabindex="-1"><!> <span class="sh3-listbox__label"> </span></div>'),LI=E('<div class="sh3-listbox__empty svelte-1tyxvrs">No matches</div>'),DI=E('<div class="sh3-listbox svelte-1tyxvrs" role="listbox" tabindex="-1"><!> <div class="sh3-listbox__list svelte-1tyxvrs"><!> <!></div></div>');function MI(e,t){ce(t,!0);const n=B(()=>t.getValue());function r(){t.onClose?.(),t.close()}const s=B(()=>SI(t.options));function o(){if(t.multiple)return 0;const R=typeof a(n)=="string"?a(n):"",A=t.options.findIndex(M=>M.value===R&&!M.disabled);return A>=0?A:0}let i=q(""),l=q(he(o())),c=q(void 0),u=q(void 0),d="",f=null;const v=B(()=>II(t.options,a(i)));Ne(()=>{a(l)>=a(v).length&&b(l,0),m()});async function m(){if(await Ma(),!a(c))return;a(c).querySelector(`[data-idx="${a(l)}"]`)?.scrollIntoView({block:"nearest"})}function S(R){return t.multiple&&Array.isArray(a(n))?a(n).includes(R.value):a(n)===R.value}function y(R){const A=a(v)[R];!A||A.disabled||(t.onSelect(A.value),t.multiple||r())}function w(R){if(a(v).length!==0)switch(R.key){case"ArrowDown":R.preventDefault(),b(l,(a(l)+1)%a(v).length);break;case"ArrowUp":R.preventDefault(),b(l,(a(l)-1+a(v).length)%a(v).length);break;case"Home":R.preventDefault(),b(l,0);break;case"End":R.preventDefault(),b(l,a(v).length-1);break;case"Enter":R.preventDefault(),y(a(l));break;case" ":case"Space":R.preventDefault(),y(a(l));break;case"Escape":R.preventDefault(),r();break;default:if(a(s)&&document.activeElement===a(u)||R.key.length!==1||R.metaKey||R.ctrlKey||R.altKey)return;d+=R.key,f&&clearTimeout(f),f=setTimeout(()=>{d=""},500);const A=EI(a(v),d,a(l));A>=0&&b(l,A,!0)}}var I=DI(),x=p(I);{var _=R=>{var A=TI();De(A),Qe(A,M=>b(u,M),()=>a(u)),qe(A,()=>a(i),M=>b(i,M)),k(R,A)};U(x,R=>{a(s)&&R(_)})}var T=g(x,2),C=p(T);Se(C,17,()=>a(v),xt,(R,A,M)=>{var L=PI();ie(L,"data-idx",M);let j;var F=p(L);{var V=G=>{var $=RI();let ae;N(Y=>ae=xe($,1,"sh3-listbox__check svelte-1tyxvrs",null,ae,Y),[()=>({"sh3-listbox__check--on":S(a(A))})]),k(G,$)};U(F,G=>{t.multiple&&G(V)})}var W=g(F,2),Q=p(W,!0);h(W),h(L),N((G,$)=>{ie(L,"aria-selected",G),ie(L,"aria-disabled",a(A).disabled),j=xe(L,1,"svelte-1tyxvrs",null,j,$),z(Q,a(A).label)},[()=>S(a(A)),()=>({"sh3-listbox__opt--active":M===a(l),"sh3-listbox__opt--selected":S(a(A))})]),K("click",L,()=>y(M)),Ke("mouseenter",L,()=>b(l,M,!0)),k(R,L)});var D=g(C,2);{var P=R=>{var A=LI();k(R,A)};U(D,R=>{a(v).length===0&&R(P)})}h(T),Qe(T,R=>b(c,R),()=>a(c)),h(I),N(()=>ie(I,"aria-multiselectable",t.multiple)),K("keydown",I,w),k(e,I),ue()}_e(["keydown","click"]);var jI=E('<span class="sh3-select__label svelte-1q3zxph"> </span>'),zI=E("<option> </option>"),OI=E('<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 NI(e,t){ce(t,!0);let n=te(t,"multiple",3,!1),r=te(t,"value",31,()=>he(n()?[]:"")),s=te(t,"placeholder",3,"Select…"),o=te(t,"disabled",3,!1),i=te(t,"invalid",3,!1),l=te(t,"size",3,"md"),c=q(void 0),u=q(void 0),d=q(!1);const f=B(()=>CI(t.options,r(),n()));function v(){b(d,!1),a(c)?.focus()}async function m(){if(o()||a(d)||!a(c))return;b(d,!0);const A=vt.popup.show(MI,{anchor:a(c)},{options:t.options,getValue:()=>r(),multiple:n(),onSelect:j=>{if(n()){const F=Array.isArray(r())?r():[];r(AI(F,j))}else r(j);t.onchange?.(r())},onClose:v}),M=A.close;A.close=()=>{M(),v()},await Ma(),document.querySelector(".sh3-listbox")?.focus()}function S(A){if(!(o()||a(d)))switch(A.key){case"ArrowDown":case"ArrowUp":case"Enter":case" ":A.preventDefault(),m();break}}function y(){a(u)&&(n()?r(Array.from(a(u).selectedOptions).map(A=>A.value)):r(a(u).value),t.onchange?.(r()))}var w=OI();let I;var x=p(w);{var _=A=>{var M=jI(),L=p(M,!0);h(M),N(()=>z(L,t.label)),k(A,M)};U(x,A=>{t.label&&A(_)})}var T=g(x,2),C=p(T);let D;var P=p(C,!0);h(C),Wt(2),h(T),Qe(T,A=>b(c,A),()=>a(c));var R=g(T,2);ie(R,"tabindex",-1),Se(R,21,()=>t.options,xt,(A,M)=>{var L=zI(),j=p(L,!0);h(L);var F={};N(V=>{Sc(L,V),z(j,a(M).label),F!==(F=a(M).value)&&(L.value=(L.__value=a(M).value)??"")},[()=>n()?Array.isArray(r())&&r().includes(a(M).value):r()===a(M).value]),k(A,L)}),h(R),Qe(R,A=>b(u,A),()=>a(u)),h(w),N(()=>{I=xe(w,1,"sh3-select svelte-1q3zxph",null,I,{"sh3-select--invalid":i(),"sh3-select--sm":l()==="sm"}),T.disabled=o(),ie(T,"aria-expanded",a(d)),D=xe(C,1,"sh3-select__display svelte-1q3zxph",null,D,{"sh3-select__display--placeholder":!a(f)}),z(P,a(f)||s()),R.multiple=n(),R.disabled=o()}),K("click",T,m),K("keydown",T,S),K("change",R,y),k(e,w),ue()}_e(["click","keydown","change"]);var qI=E('<label><button type="button" class="sh3-dfp__btn svelte-hcr0gi" aria-haspopup="dialog"><span class="sh3-dfp__label svelte-hcr0gi"> </span> <span> </span> <span class="sh3-dfp__chevron svelte-hcr0gi" aria-hidden="true">▾</span></button></label>');function cu(e,t){ce(t,!0);let n=te(t,"value",15,null),r=te(t,"disabled",3,!1),s=te(t,"invalid",3,!1),o=te(t,"size",3,"md"),i=te(t,"buttonLabel",3,"Choose…"),l=te(t,"selectable",3,"file"),c=q(void 0),u=q(!1);const d=B(()=>n()?typeof n()=="string"?n():n().kind==="folder"?`${n().shardId}/${n().path}/`:`${n().shardId}/${n().path}`:null);function f(D){n(D),t.onchange?.(D)}function v(){b(u,!1),a(c)?.focus()}async function m(){if(r()||a(u)||!a(c))return;b(u,!0);let D=[];try{D=await t.listDocuments()}catch{b(u,!1);return}const P=vt.modal.open(Ul,{mode:t.mode,docs:D,selectable:l(),listFolders:t.listFolders,handle:t.handle,readOnlyShard:t.readOnlyShard,onCommit:A=>{f(A)},onCancel:()=>{}},{dismissOnBackdrop:!0,boxStyle:"max-width: min(800px, 95vw);"}),R=P.close;P.close=()=>{R(),v()}}var S=qI();let y;var w=p(S),I=p(w),x=p(I,!0);h(I);var _=g(I,2);let T;var C=p(_,!0);h(_),Wt(2),h(w),Qe(w,D=>b(c,D),()=>a(c)),h(S),N(()=>{y=xe(S,1,"sh3-dfp svelte-hcr0gi",null,y,{"sh3-dfp--sm":o()==="sm","sh3-dfp--invalid":s()}),w.disabled=r(),ie(w,"aria-expanded",a(u)),z(x,i()),T=xe(_,1,"sh3-dfp__path svelte-hcr0gi",null,T,{"sh3-dfp__path--empty":!a(d)}),z(C,a(d)??(t.mode==="open"?"no document":"choose path…"))}),K("click",w,m),k(e,S),ue()}_e(["click"]);function FI(e,t){ce(t,!0);let n=te(t,"value",15,null),r=te(t,"selectable",3,"file"),s=te(t,"disabled",3,!1),o=te(t,"invalid",3,!1),i=te(t,"size",3,"md"),l=te(t,"buttonLabel",3,"Open document…");cu(e,{mode:"open",get listDocuments(){return t.listDocuments},get listFolders(){return t.listFolders},get handle(){return t.handle},get readOnlyShard(){return t.readOnlyShard},get selectable(){return r()},get disabled(){return s()},get invalid(){return o()},get size(){return i()},get buttonLabel(){return l()},get onchange(){return t.onchange},get value(){return n()},set value(c){n(c)}}),ue()}function BI(e,t){ce(t,!0);let n=te(t,"value",15,null),r=te(t,"disabled",3,!1),s=te(t,"invalid",3,!1),o=te(t,"size",3,"md"),i=te(t,"buttonLabel",3,"Save as…");cu(e,{mode:"save",get listDocuments(){return t.listDocuments},get listFolders(){return t.listFolders},get handle(){return t.handle},get readOnlyShard(){return t.readOnlyShard},get disabled(){return r()},get invalid(){return s()},get size(){return o()},get buttonLabel(){return i()},get onchange(){return t.onchange},get value(){return n()},set value(l){n(l)}}),ue()}const VI=/^[a-zA-Z0-9.\-_]+$/,UI=/^[a-zA-Z0-9.\-_]*$/;function Bo(e,t){if(e.length===0)throw new Error(`fieldAddress: ${t} is empty`);if(!VI.test(e))throw new Error(`fieldAddress: invalid ${t} "${e}" (must match [a-zA-Z0-9.\\-_]+)`)}function Lp(e){if(!UI.test(e))throw new Error(`fieldAddress: invalid slotId "${e}"`)}function HI(e){return Bo(e.shardId,"shardId"),Bo(e.fieldId,"fieldId"),e.slotId!==void 0&&Lp(e.slotId),`${e.shardId}::${e.slotId??""}::${e.fieldId}`}function KI(e){const t=e.split("::");if(t.length!==3)throw new Error(`fieldAddress: malformed "${e}" (expected three ::-separated parts)`);const[n,r,s]=t;Bo(n,"shardId"),Bo(s,"fieldId"),Lp(r);const o={shardId:n,fieldId:s};return r.length>0&&(o.slotId=r),o}const WI={hotInstall:typeof Blob<"u"&&typeof URL.createObjectURL=="function"},Dp=["__sh3core__","shell","sh3-store","sh3-admin"],Mp=Object.freeze(Object.defineProperty({__proto__:null,AppPicker:dp,Button:Pt,COLOR_PICKER_POINT:kh,CONFLICT_RENDERER_POINT:yh,Collapsible:L3,ColorSwatch:Pp,ConflictPermissionError:_h,ConflictSessionOrphanedError:Vk,ConsentDeniedError:kp,DocumentFilePicker:cu,DocumentOpener:FI,DocumentSaver:BI,FRAMEWORK_SHARD_IDS:Dp,Field:q3,FilePicker:kI,IconToggleGroup:lI,NumberInput:Z3,PERMISSION_DOCUMENTS_BROWSE:nu,PERMISSION_DOCUMENTS_READ:ru,PERMISSION_DOCUMENTS_WRITE:su,PERMISSION_KEYS_MINT:_p,PERMISSION_STATE_MANAGE:fa,PERMISSION_SYNC_PEER:wS,PERMISSION_SYNC_POLICY:kS,RangeSlider:vI,SHELL_MODE_CONTRIBUTION_POINT:aa,ScopeEscalationError:wp,Segmented:Tp,Select:NI,Slider:Rp,SliderGroup:mI,Textarea:H3,UserPicker:fp,VERSION:qn,activeShards:Wr,buildPackageMeta:Ci,capabilities:WI,clearTokenOverrides:C3,closeTab:Jc,collapseChild:Z0,dockFloat:Xh,dockIntoActiveLayout:Qc,erroredShards:No,expandChild:Q0,fetchBundle:Ei,fetchRegistries:Cp,fieldAddressFromString:KI,fieldAddressToString:HI,focusTab:J0,focusView:bi,getActiveApp:Ac,getAuthHeader:wi,getIconSprite:yp,getTokenOverrides:Ap,getUser:Dr,inspectActiveLayout:Hh,isAdmin:Kt,isAuthenticated:zl,isGuest:np,launchApp:lr,listRegisteredApps:js,listVerbs:Pc,locateSlot:Qh,popoutView:Yh,provideIcons:MS,pushNavEntry:Pw,registerConsentListener:xp,registerShellMode:I3,registeredShards:kn,resolveConsent:Kl,returnToHome:Ns,runVerbProgrammatic:ap,setTokenOverrides:E3,sh3:vt,spawnSatellite:Ii,spliceIntoActiveLayout:G0,subscribeKeyRevocation:au,unregisterApp:Xc,validateRegistryIndex:Ep},Symbol.toStringTag,{value:"Module"})),YI="/assets/SH3-BG5NVpSD.png",XI="https://cdn.jsdelivr.net/npm/p5@1.11.13/lib/p5.min.js";let Ws=null;function GI(){return Ws||(Ws=new Promise((e,t)=>{const n=window.p5;if(n){e(n);return}const r=document.createElement("script");r.src=XI,r.async=!0,r.onload=()=>e(window.p5),r.onerror=s=>{Ws=null,t(s)},document.head.appendChild(r)}),Ws)}var JI=E('<h1 class="sh3-title-fallback svelte-foqg2v">SH3</h1>'),ZI=E('<div class="sh3-title svelte-foqg2v"></div>');function QI(e,t){ce(t,!0);const n="`.-':;,^\"~=+<>*?!/\\|()[]{}x1ltzrcvunsXYUJCLQ0OZmwqpdbkhao*#MW&8%B@$",r=64,s=Math.floor(64/(442/193)),o=8,i=7,l=80,c=r*o,u=s*i,d=l/u;let f=q(void 0),v=null,m=q(!1);const S=()=>_=>{const C=getComputedStyle(document.documentElement).getPropertyValue("--sh3-accent").trim();let D,P,R=!1;_.setup=()=>{_.createCanvas(c,u),_.noSmooth(),_.noStroke(),_.textAlign(_.CENTER,_.CENTER),_.textFont("monospace"),_.textSize(10),_.textStyle(_.BOLD),P=_.loadImage(YI,()=>{D=_.createGraphics(r,s),D.pixelDensity(1),D.image(P,0,0,r,s),D.loadPixels(),R=!0},()=>{b(m,!0)})},_.draw=()=>{if(!R)return;const A=_.millis()*.001;let M;_.clear(),_.background(0,0),_.fill(C);for(let L=0;L<s;L++)for(let j=0;j<r;j++){const F=(L*r+j)*4;if(D.pixels[F]<64){if(M=_.noise(j/r*2,L/s*2,A*.15),M>.33)continue;_.text(n[Math.floor(M*n.length*.25)],(j+.5)*o,(L+.5)*i);continue}M=_.noise(j/r*4,L/s*4,A*.5),_.text(n[Math.floor(M*n.length)],(j+.5)*o,(L+.5)*i)}}};Ne(()=>{if(a(m))return;let _=!1;return GI().then(T=>{if(!(_||!a(f)))try{v=new T(S(),a(f))}catch(C){console.error("[Sh3Title] p5 sketch failed to start",C),b(m,!0)}}).catch(T=>{console.error("[Sh3Title] failed to load p5 from CDN",T),b(m,!0)}),()=>{_=!0,v&&(v.remove(),v=null)}});var y=Ze(),w=ke(y);{var I=_=>{var T=JI();k(_,T)},x=_=>{var T=ZI();tt(T,"",{},{width:"216.7195767195767px",height:"80px","--sh3-title-scale":d}),Qe(T,C=>b(f,C),()=>a(f)),k(_,T)};U(w,_=>{a(m)?_(I):_(x,-1)})}k(e,y),ue()}var $I=E('<div class="home-section-body"><!></div>'),eE=E('<section class="home-section svelte-1bwi92v"><button type="button" class="home-section-header svelte-1bwi92v"><svg aria-hidden="true"><use></use></svg> <span class="home-section-title svelte-1bwi92v"> </span></button> <!></section>');function Vo(e,t){const n=te(t,"defaultExpanded",3,!0),r=B(()=>`sh3:home-section:${t.persistKey}`),s=B(()=>`sh3-home-section-${t.persistKey}`);function o(){if(typeof localStorage>"u")return n();const I=localStorage.getItem(`sh3:home-section:${t.persistKey}`);return I==="1"?!0:I==="0"?!1:n()}let i=q(he(o()));function l(){b(i,!a(i)),typeof localStorage<"u"&&localStorage.setItem(a(r),a(i)?"1":"0")}var c=eE(),u=p(c),d=p(u);let f;var v=p(d);h(d);var m=g(d,2),S=p(m,!0);h(m),h(u);var y=g(u,2);{var w=I=>{var x=$I(),_=p(x);ln(_,()=>t.children),h(x),N(()=>ie(x,"id",a(s))),k(I,x)};U(y,I=>{a(i)&&I(w)})}h(c),N(()=>{ie(u,"aria-expanded",a(i)),ie(u,"aria-controls",a(s)),f=xe(d,0,"home-section-chevron svelte-1bwi92v",null,f,{open:a(i)}),ie(v,"href",`${cr}#chevron-right`),z(S,t.title)}),K("click",u,l),k(e,c)}_e(["click"]);var tE=E('<button type="button" class="project-card-edit svelte-yosqc3" aria-label="Edit project" title="Edit project">⚙</button>'),nE=E('<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>'),rE=E('<div class="projects-grid svelte-yosqc3"></div>');function sE(e,t){ce(t,!0);const n=B(()=>rn.projects.length>0),r=B(()=>bn.activeProjectId),s=B(Kt);function o(d){Vh(a(r)===d?null:d)}function i(d,f){f.stopPropagation();const v=rn.projects.find(m=>m.id===d)??null;v&&Vl(v)}var l=Ze(),c=ke(l);{var u=d=>{Vo(d,{title:"Projects",persistKey:"projects",children:(f,v)=>{var m=rE();Se(m,21,()=>rn.projects,S=>S.id,(S,y)=>{var w=nE(),I=p(w);let x;var _=p(I),T=p(_,!0);h(_);var C=g(_,2),D=p(C);h(C),h(I);var P=g(I,2);{var R=A=>{var M=tE();K("click",M,L=>i(a(y).id,L)),k(A,M)};U(P,A=>{a(s)&&A(R)})}h(w),N(()=>{x=xe(I,1,"project-card svelte-yosqc3",null,x,{active:a(r)===a(y).id}),ie(I,"title",a(y).description??`${a(y).members.length} member${a(y).members.length===1?"":"s"}`),z(T,a(y).name),z(D,`${a(y).members.length??""} member${a(y).members.length===1?"":"s"}`)}),K("click",I,()=>o(a(y).id)),k(S,w)}),h(m),k(f,m)},$$slots:{default:!0}})};U(c,d=>{a(n)&&d(u)})}k(e,l),ue()}_e(["click"]);let Vt=null;function aE(e){Vt=e}function oE(){Vt=null}function Yr(){return Vt?.user.layouts??[]}function iE(e){Vt&&(Vt.user.layouts=[...Vt.user.layouts,e])}function jp(e,t){if(!Vt)return;const n=Vt.user.layouts.findIndex(s=>s.id===e);if(n<0)return;const r=[...Vt.user.layouts];r[n]={...r[n],...t},Vt.user.layouts=r}function lE(e){Vt&&(Vt.user.layouts=Vt.user.layouts.filter(t=>t.id!==e))}function cE(){Vt={ephemeral:{},session:{},workspace:{},user:{layouts:[]}}}cE();function Ti(e,t){if(e.type==="slot")return e.viewId===null||!t(e.viewId)?null:e;if(e.type==="tabs"){const s=[];let o=!1,i=0;for(let l=0;l<e.tabs.length;l++){const c=e.tabs[l];c.viewId!==null&&t(c.viewId)&&(l===e.activeTab&&(o=!0,i=s.length),s.push(c))}return s.length===0?null:{type:"tabs",tabs:s,activeTab:o?i:0}}const n=[],r=[];for(let s=0;s<e.children.length;s++){const o=Ti(e.children[s],t);o!==null&&(n.push(o),r.push(e.sizes[s]??1))}return n.length===0?null:n.length===1?n[0]:{type:"split",direction:e.direction,sizes:r,children:n}}function zp(e){return JSON.parse(JSON.stringify(e))}function uE(e,t){const n=Ge.list().find(s=>s.id===e);if(!n)return null;const r=Ti(n.content,t);return r===null?null:{size:{w:n.size.w,h:n.size.h},content:zp(r)}}function Op(e,t,n){const r=Ti(e.content,t);return r===null?(n(`Saved layout "${e.name}" has no available standalone views`,"warn"),""):Ge.openWithContent({content:zp(r),size:{w:e.size.w,h:e.size.h},title:e.name})}var dE=E('<button type="button" data-sh3-scope="element:saved-layout"><span class="saved-layout-card-square svelte-1ncltuf"><svg class="saved-layout-card-icon svelte-1ncltuf"><use></use></svg></span> <span class="saved-layout-card-label svelte-1ncltuf"> </span></button>'),fE=E('<div class="saved-layouts-grid svelte-1ncltuf"></div>');function vE(e,t){ce(t,!0);const n=B(Yr),r=pi("__layouts__");function s(f){return wa().some(v=>v.viewId===f)}function o(f,v){Yn.notify(f,{level:v})}function i(f){const v=Yr().find(m=>m.id===f);v&&Op(v,s,o)}function l(f,v){f.preventDefault(),r.set({type:"saved-layout",ref:{layoutId:v}}),vt.actions.openContextMenu({x:f.clientX,y:f.clientY,scope:{element:"saved-layout"}})}var c=Ze(),u=ke(c);{var d=f=>{Vo(f,{title:"Saved Layouts",persistKey:"layouts",children:(v,m)=>{var S=fE();Se(S,21,()=>a(n),y=>y.id,(y,w)=>{var I=dE();let x,_;var T=p(I),C=p(T),D=p(C);h(C),h(T);var P=g(T,2),R=p(P,!0);h(P),h(I),N(()=>{x=xe(I,1,"saved-layout-card svelte-1ncltuf",null,x,{"saved-layout-card--tinted":a(w).appearance?.color}),ie(I,"data-saved-layout-id",a(w).id),_=tt(I,"",_,{"--card-color":a(w).appearance?.color??"transparent"}),ie(D,"href",`${cr}#${a(w).appearance?.icon??"eye"??""}`),z(R,a(w).name)}),K("click",I,()=>i(a(w).id)),K("contextmenu",I,A=>l(A,a(w).id)),k(y,I)}),h(S),k(v,S)},$$slots:{default:!0}})};U(u,f=>{a(n).length>0&&f(d)})}k(e,c),ue()}_e(["click","contextmenu"]);const Sd=["activity","align-horizontal-justify-center","align-horizontal-justify-end","align-horizontal-justify-start","app-window","archive","archive-restore","axis-3d","box","brick-wall","bug","building-2","cable","calendar","camera","check","chevron-down","chevron-left","chevron-right","circle-check","circle-dot","circle-minus","circle-x","clipboard","clipboard-paste","clock","command","compass","component","copy","cpu","crop","crosshair","crown","dollar-sign","download","droplet","ellipsis-vertical","eraser","euro","external-link","eye","eye-off","file","file-archive","file-diff","file-plus","file-text","flame","flip-horizontal-2","flip-vertical-2","folder","folder-open","folder-plus","folder-tree","gallery-vertical-end","gamepad-2","gauge","gem","git-branch","git-commit-horizontal","git-merge","globe","grid-2x2","grid-3x3","group","hard-drive","heart","history","house","image","info","joystick","key","layers","layout-dashboard","layout-grid","layout-list","layout-panel-left","layout-panel-top","layout-template","lightbulb","link","list-ordered","list-tree","lock","log-out","magnet","mail","map","maximize","menu","minimize","moon","mouse-pointer","move","move-3d","music","navigation","network","notebook-pen","palette","panel-right","panel-top","pause","pencil","pipette","play","plus","pointer","pound-sterling","receipt","redo-2","refresh-cw","rocket","rotate-3d","rotate-ccw","rotate-cw","ruler","save","scissors","scroll-text","search","send","server","settings","shield","skull","sliders-horizontal","snowflake","sparkles","square","square-terminal","star","sun","sword","table-properties","target","texture","timer","trash-2","triangle-alert","type","undo-2","ungroup","unity","upload","user","users","video","volume-2","wand-sparkles","wind","x","zap","zoom-in","zoom-out"];var hE=E('<span class="sh3-icon-picker__label svelte-h9dluc"> </span>'),pE=E('<button type="button"><svg viewBox="0 0 24 24" class="svelte-h9dluc"><use></use></svg></button>'),mE=E('<div><!> <input type="search" placeholder="Search icons…" aria-label="Filter icons" class="svelte-h9dluc"/> <div class="sh3-icon-picker__grid svelte-h9dluc"><button type="button" aria-label="No icon">×</button> <!></div></div>');function bE(e,t){ce(t,!0);let n=te(t,"value",15,void 0),r=te(t,"disabled",3,!1),s=q("");const o=B(()=>a(s).trim()===""?Sd:Sd.filter(w=>w.includes(a(s).trim().toLowerCase())));function i(w){r()||(n(w),t.onchange?.(w))}var l=mE();let c;var u=p(l);{var d=w=>{var I=hE(),x=p(I,!0);h(I),N(()=>z(x,t.label)),k(w,I)};U(u,w=>{t.label&&w(d)})}var f=g(u,2);De(f);var v=g(f,2),m=p(v);let S;var y=g(m,2);Se(y,16,()=>a(o),w=>w,(w,I)=>{var x=pE();let _;var T=p(x),C=p(T);h(T),h(x),N(()=>{_=xe(x,1,"sh3-icon-picker__tile svelte-h9dluc",null,_,{"sh3-icon-picker__tile--selected":n()===I}),ie(x,"aria-label",I),ie(x,"title",I),x.disabled=r(),ie(C,"href",`${cr}#${I??""}`)}),K("click",x,()=>i(I)),k(w,x)}),h(v),h(l),N(()=>{c=xe(l,1,"sh3-icon-picker svelte-h9dluc",null,c,{"sh3-icon-picker--disabled":r()}),f.disabled=r(),S=xe(m,1,"sh3-icon-picker__tile sh3-icon-picker__tile--none svelte-h9dluc",null,S,{"sh3-icon-picker__tile--selected":n()===void 0}),m.disabled=r()}),qe(f,()=>a(s),w=>b(s,w)),K("click",m,()=>i(void 0)),k(e,l),ue()}_e(["click"]);var gE=E('<em class="svelte-1v8d4f6">(empty = default)</em>'),yE=E('<button type="button" class="link svelte-1v8d4f6">Change icon</button>'),_E=E('<!> <button type="button" class="link link--align-right svelte-1v8d4f6">Hide picker</button>',1),wE=E('<div class="app-appearance svelte-1v8d4f6"><h2 class="svelte-1v8d4f6"> </h2> <div class="preview svelte-1v8d4f6"><div><span class="preview-card-square svelte-1v8d4f6"><svg class="preview-card-icon svelte-1v8d4f6"><use></use></svg></span> <span class="preview-card-label svelte-1v8d4f6"> </span></div></div> <label class="row svelte-1v8d4f6"><span class="svelte-1v8d4f6">Name <!></span> <input type="text" class="name-input svelte-1v8d4f6"/></label> <div class="row svelte-1v8d4f6"><span class="svelte-1v8d4f6">Icon</span> <!></div> <label class="row svelte-1v8d4f6"><span class="svelte-1v8d4f6">Color</span> <!></label> <div class="actions svelte-1v8d4f6"><button type="button" class="primary svelte-1v8d4f6">Save</button> <button type="button" data-role="reset" class="svelte-1v8d4f6">Reset</button> <button type="button" class="svelte-1v8d4f6">Cancel</button></div></div>');function Np(e,t){ce(t,!0);const n=Oe(()=>t.initialAppearance);let r=q(he(n?.icon)),s=q(he(n?.color)),o=q(he(Oe(()=>t.entityLabel))),i=q(n?.icon!==void 0);const l=B(()=>a(o).trim()),c=B(()=>t.requireLabel&&a(l)===""),u=B(()=>a(l)===""?t.entityLabel:a(l)),d=B(()=>a(r)??t.defaultIcon),f=B(()=>n!==void 0);function v(){a(c)||(t.onSave({label:a(l),icon:a(r),color:a(s)}),t.close())}function m(){t.onReset(),t.close()}var S=wE(),y=p(S),w=p(y);h(y);var I=g(y,2),x=p(I);let _,T;var C=p(x),D=p(C),P=p(D);h(D),h(C);var R=g(C,2),A=p(R,!0);h(R),h(x),h(I);var M=g(I,2),L=p(M),j=g(p(L));{var F=X=>{var le=gE();k(X,le)};U(j,X=>{t.requireLabel||X(F)})}h(L);var V=g(L,2);De(V),h(M);var W=g(M,2),Q=g(p(W),2);{var G=X=>{var le=yE();K("click",le,()=>b(i,!0)),k(X,le)},$=X=>{var le=_E(),me=ke(le);bE(me,{get value(){return a(r)},set value(de){b(r,de,!0)}});var se=g(me,2);K("click",se,()=>b(i,!1)),k(X,le)};U(Q,X=>{a(i)?X($,-1):X(G)})}h(W);var ae=g(W,2),Y=g(p(ae),2);{let X=B(()=>a(s)??"#888888");Pp(Y,{get value(){return a(X)},onchange:le=>b(s,le,!0)})}h(ae);var Z=g(ae,2),O=p(Z),H=g(O,2),J=g(H,2);h(Z),h(S),N(()=>{z(w,`Customize ${t.entityLabel??""}`),_=xe(x,1,"preview-card svelte-1v8d4f6",null,_,{"preview-card--tinted":a(s)!==void 0}),T=tt(x,"",T,{"--card-color":a(s)??"transparent"}),ie(P,"href",`${cr}#${a(d)??""}`),z(A,a(u)),ie(V,"placeholder",t.entityLabel),O.disabled=a(c),H.disabled=!a(f)}),qe(V,()=>a(o),X=>b(o,X)),K("click",O,v),K("click",H,m),K("click",J,()=>t.close()),k(e,S),ue()}_e(["click"]);let Mr=null;function kE(e){Mr=e}function xE(){Mr=null}function qp(e){return e.icon===void 0&&e.color===void 0&&e.label===void 0}function Wl(e){const t=Mr?.user.overrides;if(!t)return;const n=t[e];if(n&&!qp(n))return n}function Id(e,t){if(!Mr)return;const r={...Mr.user.overrides};t===void 0||qp(t)?delete r[e]:r[e]=t,Mr.user.overrides=r}function SE(){Mr={ephemeral:{},session:{},workspace:{},user:{overrides:{}}}}SE();function IE(){const e=Ha();return!e||e.type!=="app"?null:e.ref}function EE(e){const t=IE();if(!t)return;const n=js().find(l=>l.id===t.appId),r=n?.label??t.appId,s=n?.icon??"box",o=Wl(t.appId),i={entityLabel:o?.label??r,initialAppearance:o,defaultIcon:s,requireLabel:!1,onSave:l=>{Id(t.appId,{label:l.label===""?void 0:l.label,icon:l.icon,color:l.color})},onReset:()=>Id(t.appId,void 0)};xn.open(Np,i)}const Fp={manifest:{id:"__app-appearance__",label:"App Appearance",version:qn,views:[]},activate(e){const t=e.state({user:{overrides:{}}});kE(t);const n={id:"app.customize",label:"Customize…",scope:{element:"app"},contextItem:!0,group:"appearance",run:EE};e.actions.register(n)},autostart(){},deactivate(){xE()}};var CE=E('<button type="button" data-sh3-scope="element:app"><span class="sh3-home-card-square svelte-11gxeaw"><svg class="sh3-home-card-icon svelte-11gxeaw"><use></use></svg></span> <span class="sh3-home-card-label svelte-11gxeaw"> </span></button>'),AE=E('<div class="sh3-home-grid svelte-11gxeaw"></div>'),TE=E('<button type="button" data-sh3-scope="element:app"><span class="sh3-home-card-square svelte-11gxeaw"><svg class="sh3-home-card-icon svelte-11gxeaw"><use></use></svg></span> <span class="sh3-home-card-label svelte-11gxeaw"> </span></button>'),RE=E('<div class="sh3-home-grid svelte-11gxeaw"></div>'),PE=E('<p class="sh3-home-empty svelte-11gxeaw"><!></p>'),LE=E('<div class="sh3-home svelte-11gxeaw"><header class="sh3-home-header svelte-11gxeaw"><div class="sh3-home-title-row svelte-11gxeaw"><!> <span class="sh3-home-version svelte-11gxeaw"> </span> <span class="sh3-home-alpha svelte-11gxeaw">alpha</span></div> <div class="sh3-home-credit svelte-11gxeaw">Art: by <a href="https://www.andbc.co/" target="_blank" rel="noopener noreferrer" class="svelte-11gxeaw">andbc</a></div></header> <div class="sh3-home-filter svelte-11gxeaw"><input type="search" placeholder="Filter apps…" aria-label="Filter apps by name" class="sh3-home-filter-input svelte-11gxeaw"/></div> <!> <!> <!> <!> <!></div>');function DE(e,t){ce(t,!0);const n=pi("__sh3core__");function r(F,V){F.preventDefault(),n.set({type:"app",ref:{appId:V}}),vt.actions.openContextMenu({x:F.clientX,y:F.clientY,scope:{element:"app"}})}let s=q("");const o=B(js),i=B(Kt),l=B(()=>bn.activeProjectId?rn.projects.find(F=>F.id===bn.activeProjectId)??null:null);function c(F,V){if(!V)return!0;const W=V.toLowerCase();return F.label.toLowerCase().includes(W)||F.id.toLowerCase().includes(W)}function u(F){return a(l)?a(l).appAllowlist.includes(F):!0}const d=B(()=>a(o).filter(F=>!F.admin&&c(F,a(s))&&u(F.id))),f=B(()=>a(o).filter(F=>F.admin&&c(F,a(s)))),v=B(()=>a(d).length+(a(i)&&!a(l)?a(f).length:0));var m=LE(),S=p(m),y=p(S),w=p(y);QI(w,{});var I=g(w,2),x=p(I);h(I),Wt(2),h(y),Wt(2),h(S);var _=g(S,2),T=p(_);De(T),h(_);var C=g(_,2);sE(C,{});var D=g(C,2);{var P=F=>{Vo(F,{title:"Apps",persistKey:"apps",children:(V,W)=>{var Q=AE();Se(Q,21,()=>a(d),G=>G.id,(G,$)=>{const ae=B(()=>Wl(a($).id));var Y=CE();let Z,O;var H=p(Y),J=p(H),X=p(J);h(J),h(H);var le=g(H,2),me=p(le,!0);h(le),h(Y),N(()=>{Z=xe(Y,1,"sh3-home-card svelte-11gxeaw",null,Z,{"sh3-home-card--tinted":a(ae)?.color}),O=tt(Y,"",O,{"--card-color":a(ae)?.color??"transparent"}),ie(X,"href",`${cr}#${a(ae)?.icon??a($).icon??"box"??""}`),z(me,a(ae)?.label??a($).label)}),K("click",Y,()=>lr(a($).id)),K("contextmenu",Y,se=>r(se,a($).id)),k(G,Y)}),h(Q),k(V,Q)},$$slots:{default:!0}})};U(D,F=>{a(d).length>0&&F(P)})}var R=g(D,2);vE(R,{});var A=g(R,2);{var M=F=>{Vo(F,{title:"Admin",persistKey:"admin",children:(V,W)=>{var Q=RE();Se(Q,21,()=>a(f),G=>G.id,(G,$)=>{const ae=B(()=>Wl(a($).id));var Y=TE();let Z,O;var H=p(Y),J=p(H),X=p(J);h(J),h(H);var le=g(H,2),me=p(le,!0);h(le),h(Y),N(()=>{Z=xe(Y,1,"sh3-home-card svelte-11gxeaw",null,Z,{"sh3-home-card--tinted":a(ae)?.color}),O=tt(Y,"",O,{"--card-color":a(ae)?.color??"transparent"}),ie(X,"href",`${cr}#${a(ae)?.icon??a($).icon??"box"??""}`),z(me,a(ae)?.label??a($).label)}),K("click",Y,()=>lr(a($).id)),K("contextmenu",Y,se=>r(se,a($).id)),k(G,Y)}),h(Q),k(V,Q)},$$slots:{default:!0}})};U(A,F=>{a(i)&&!a(l)&&a(f).length>0&&F(M)})}var L=g(A,2);{var j=F=>{var V=PE(),W=p(V);{var Q=$=>{var ae=Ht("No apps registered.");k($,ae)},G=$=>{var ae=Ht();N(()=>z(ae,`No apps match “${a(s)??""}”.`)),k($,ae)};U(W,$=>{a(o).length===0?$(Q):$(G,-1)})}h(V),k(F,V)};U(L,F=>{a(v)===0&&F(j)})}h(m),N(()=>z(x,`v${qn}`)),qe(T,()=>a(s),F=>b(s,F)),k(e,m),ue()}_e(["click","contextmenu"]);var ME=E('<p class="keys-peers-muted svelte-1s56qq">Loading...</p>'),jE=E('<p class="keys-peers-error svelte-1s56qq"> </p>'),zE=E('<p class="keys-peers-muted svelte-1s56qq">No keys yet. Shards will ask your permission before creating one.</p>'),OE=E('<button type="button" class="keys-peers-btn-danger svelte-1s56qq">Confirm</button> <button type="button" class="keys-peers-btn-secondary svelte-1s56qq">Cancel</button>',1),NE=E('<button type="button" class="keys-peers-btn-danger svelte-1s56qq">Revoke</button>'),qE=E('<li class="keys-peers-item svelte-1s56qq"><div class="keys-peers-info svelte-1s56qq"><span class="keys-peers-label svelte-1s56qq"> </span> <span class="keys-peers-meta svelte-1s56qq"> </span> <span class="keys-peers-meta svelte-1s56qq"> </span> <span class="keys-peers-meta svelte-1s56qq"> </span></div> <div class="keys-peers-actions svelte-1s56qq"><!></div></li>'),FE=E('<ul class="keys-peers-list svelte-1s56qq"></ul>'),BE=E('<div class="keys-peers svelte-1s56qq"><div class="keys-peers-header svelte-1s56qq"><h2 class="svelte-1s56qq">Keys &amp; Peers</h2></div> <!></div>');function VE(e,t){ce(t,!0);let n=q(he([])),r=q(null),s=q(!0),o=q(null);async function i(){b(r,null),b(s,!0);try{const y=await Ie(`${gt()}/api/keys`);if(!y.ok)throw new Error(`HTTP ${y.status}`);b(n,await y.json(),!0)}catch(y){b(r,y instanceof Error?y.message:String(y),!0)}finally{b(s,!1)}}async function l(y){b(o,null);const w=await Ie(`${gt()}/api/keys/${encodeURIComponent(y)}`,{method:"DELETE"});(w.ok||w.status===404)&&b(n,a(n).filter(I=>I.id!==y),!0)}function c(y){return new Date(y).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}Ne(()=>{i()}),Ne(()=>au("*",()=>{i()}));var u=BE(),d=g(p(u),2);{var f=y=>{var w=ME();k(y,w)},v=y=>{var w=jE(),I=p(w);h(w),N(()=>z(I,`Failed to load: ${a(r)??""}`)),k(y,w)},m=y=>{var w=zE();k(y,w)},S=y=>{var w=FE();Se(w,21,()=>a(n),I=>I.id,(I,x)=>{var _=qE(),T=p(_),C=p(T),D=p(C,!0);h(C);var P=g(C,2),R=p(P);h(P);var A=g(P,2),M=p(A);h(A);var L=g(A,2),j=p(L);h(L),h(T);var F=g(T,2),V=p(F);{var W=G=>{var $=OE(),ae=ke($),Y=g(ae,2);K("click",ae,()=>l(a(x).id)),K("click",Y,()=>{b(o,null)}),k(G,$)},Q=G=>{var $=NE();K("click",$,()=>{b(o,a(x).id,!0)}),k(G,$)};U(V,G=>{a(o)===a(x).id?G(W):G(Q,-1)})}h(F),h(_),N((G,$,ae)=>{z(D,a(x).label),z(R,`Minted by: ${a(x).mintedByShardId??"system"??""}${a(x).peerRole||a(x).peerId?` · Peer: ${a(x).peerRole??"—"}${a(x).peerId?` (${a(x).peerId})`:""}`:""}`),z(M,`Scopes: ${G??""}`),z(j,`Created: ${$??""} · Expires: ${ae??""}`)},[()=>a(x).scopes.join(", "),()=>c(a(x).createdAt),()=>a(x).expiresAt?c(a(x).expiresAt):"never"]),k(I,_)}),h(w),k(y,w)};U(d,y=>{a(s)?y(f):a(r)?y(v,1):a(n).length===0?y(m,2):y(S,-1)})}h(u),k(e,u),ue()}_e(["click"]);var UE=E('<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 Bp(e,t){ce(t,!0);let n=te(t,"confirmLabel",3,"Confirm"),r=te(t,"cancelLabel",3,"Cancel"),s=te(t,"confirmTone",3,"default"),o=q(void 0),i=q(!1);Ne(()=>{a(o)?.focus()});async function l(){if(!a(i)){b(i,!0);try{await t.onConfirm()}finally{t.close()}}}function c(){a(i)||(t.onCancel?.(),t.close())}var u=UE(),d=p(u),f=p(d,!0);h(d);var v=g(d,2),m=p(v,!0);h(v);var S=g(v,2),y=p(S),w=p(y,!0);h(y),Qe(y,T=>b(o,T),()=>a(o));var I=g(y,2);let x;var _=p(I,!0);h(I),h(S),h(u),N(()=>{z(f,t.title),z(m,t.body),y.disabled=a(i),z(w,r()),x=xe(I,1,"confirm-dialog-btn svelte-1k1962w",null,x,{"confirm-dialog-btn-danger":s()==="danger","confirm-dialog-btn-default":s()==="default"}),I.disabled=a(i),z(_,n())}),K("click",y,c),K("click",I,l),k(e,u),ue()}_e(["click"]);const Ed=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 Qi(e,t){const n=Object.keys(t),r=n.filter(i=>!Ed.has(i)),s=n.filter(i=>Ed.has(i)),o=[`const __m__ = globalThis.${e};`];r.length>0&&o.push(`export const { ${r.join(", ")} } = __m__;`);for(const i of s)o.push(`const __r_${i}__ = __m__['${i}']; export { __r_${i}__ as ${i} };`);return o.push("export default __m__.default;"),URL.createObjectURL(new Blob([o.join(`
11
+ `)],{type:"application/javascript"}))}const uu=globalThis;uu.__sh3__=Mp;uu.__sh3_svelte__=Sv;uu.__sh3_svelte_internal_client__=Ov;const du={"sh3-core":Qi("__sh3__",Mp),svelte:Qi("__sh3_svelte__",Sv),"svelte/internal/client":Qi("__sh3_svelte_internal_client__",Ov)};du["svelte/internal/disclose-version"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));du["sh3-core/tokens.css"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));const HE=/(?:from|import)\s*(['"])(sh3-core(?:\/[^'"]*)?|svelte(?:\/[^'"]*)?)\1/g;function KE(e){return e.replace(HE,(t,n,r)=>{const s=du[r];return s?`${t.startsWith("from")?"from":"import"} '${s}'`:t})}async function Wa(e){const t=new TextDecoder().decode(e),n=KE(t),r=new Blob([n],{type:"application/javascript"}),s=URL.createObjectURL(r);try{const o=await import(s),i={shards:[],apps:[]};for(const l of Object.values(o)){if(!l||typeof l!="object"||!("manifest"in l))continue;const c=l;WE(c)?i.shards.push(c):YE(c)&&i.apps.push(c)}if(i.shards.length===0&&i.apps.length===0)throw new Error('Bundle has no exports with a "manifest" property — expected at least one shard or app');return i}finally{URL.revokeObjectURL(s)}}function WE(e){return"activate"in e&&typeof e.activate=="function"&&Array.isArray(e.manifest.views)}function YE(e){return"initialLayout"in e&&Array.isArray(e.manifest.requiredShards)}const XE="sh3-packages",GE=1,xa="bundles",Cs="meta";function Ya(){return new Promise((e,t)=>{const n=indexedDB.open(XE,GE);n.onupgradeneeded=()=>{const r=n.result;r.objectStoreNames.contains(xa)||r.createObjectStore(xa),r.objectStoreNames.contains(Cs)||r.createObjectStore(Cs)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}function Xr(e,t,n,r){return new Promise((s,o)=>{const l=e.transaction(t,n).objectStore(t),c=r(l);c.onsuccess=()=>s(c.result),c.onerror=()=>o(c.error)})}async function Vp(e,t,n){const r=await Ya();await Xr(r,xa,"readwrite",s=>s.put(t,e)),await Xr(r,Cs,"readwrite",s=>s.put(n,e)),r.close()}async function Up(e){const t=await Ya(),n=await Xr(t,xa,"readonly",r=>r.get(e));return t.close(),n??null}async function JE(e){const t=await Ya(),n=await Xr(t,Cs,"readonly",r=>r.get(e));return t.close(),n??null}async function Hp(){const e=await Ya(),t=await Xr(e,Cs,"readonly",n=>n.getAll());return e.close(),t??[]}async function ZE(e){const t=await Ya();await Xr(t,xa,"readwrite",n=>n.delete(e)),await Xr(t,Cs,"readwrite",n=>n.delete(e)),t.close()}function fu(e,t){for(const n of e.shards)n.manifest={...n.manifest,version:t.version},xi(n);for(const n of e.apps)n.manifest={...n.manifest,version:t.version},va(n)}const QE={"state:manage":{title:"Manage sh3 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."},"documents:mount":{title:"Manage document mounts",description:"Define and manage filesystem mount points that feed into the document API."},"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 sh3."}};function $i(e){return QE[e]??{title:e,description:"Unknown permission."}}function vu(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 hu(e,t,n){if(!t.integrity)return{success:!1,hotLoaded:!1,error:"Missing integrity hash — refusing to install unverified bundle"};try{await ou(e,t.integrity)}catch(i){return{success:!1,hotLoaded:!1,error:`Integrity check failed: ${i instanceof Error?i.message:String(i)}`}}let r;if(n?.loaded)r=n.loaded;else try{r=await Wa(e)}catch(i){return{success:!1,hotLoaded:!1,error:`Failed to load bundle: ${i instanceof Error?i.message:String(i)}`}}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:vu(r)};try{await Vp(t.id,e,s)}catch(i){return{success:!1,hotLoaded:!1,error:`Failed to persist package: ${i instanceof Error?i.message:String(i)}`}}if(t.type==="shard"||t.type==="combo")try{Si(t.id)}catch{}(t.type==="app"||t.type==="combo")&&Xc(t.id);let o=!0;try{fu(r,{version:t.version,sourceRegistry:t.sourceRegistry,contractVersion:t.contractVersion})}catch(i){console.warn(`[sh3] Package "${t.id}" installed but registration failed (will retry on next boot):`,i instanceof Error?i.message:i),o=!1}return{success:!0,package:s,hotLoaded:o}}async function $E(e){try{Si(e)}catch{}Xc(e),await ZE(e)}async function e2(){return Hp()}async function Kp(){let e;try{e=await Hp()}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 Up(t.id);if(!n){console.warn(`[sh3] No bundle found for installed package "${t.id}", skipping`);continue}const r=await Wa(n);fu(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)}}function t2(e){const t=[],n=/\/api\//g;let r;for(;(r=n.exec(e))!==null;)t.push(r.index);if(t.length===0)return[];const s=/(?<!\.)fetch\s*\(/g;for(;(r=s.exec(e))!==null;){const o=r.index;if(t.some(i=>Math.abs(i-o)<=200))return["raw fetch() call with /api/ path — use ctx.fetch() for cross-origin compatibility"]}return[]}const Cd={version:1};var n2=E('<span class="perm-modal-author svelte-1ipp1r6"> </span>'),r2=E('<p class="perm-modal-empty svelte-1ipp1r6">This package requires no special permissions.</p>'),s2=E('<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>'),a2=E('<p class="perm-modal-intro svelte-1ipp1r6">This package requests the following permissions:</p> <ul class="perm-modal-list svelte-1ipp1r6"></ul>',1),o2=E('<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>'),i2=E('<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),l2=E('<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>'),c2=E('<p class="perm-modal-intro svelte-1ipp1r6">Permissions no longer requested:</p> <ul class="perm-modal-list perm-modal-removed svelte-1ipp1r6"></ul>',1),u2=E("<!> <!>",1),d2=E('<li class="perm-modal-item perm-modal-warn-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6">⚠ Compatibility warning</div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),f2=E('<p class="perm-modal-intro perm-modal-warn-heading svelte-1ipp1r6">Potential compatibility issues:</p> <ul class="perm-modal-list perm-modal-warnings svelte-1ipp1r6"></ul>',1),v2=E('<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 Yl(e,t){ce(t,!0);const n=te(t,"permissions",19,()=>[]),r=te(t,"added",19,()=>[]),s=te(t,"removed",19,()=>[]),o=te(t,"warnings",19,()=>[]),i=B(()=>t.mode==="install"?"Install":"Update");var l=v2(),c=p(l),u=p(c),d=p(u),f=p(d);h(d);var v=g(d,2),m=p(v);{var S=j=>{var F=Ht();N(()=>z(F,`${t.fromVersion??""} → ${t.pkg.version??""}`)),k(j,F)},y=j=>{var F=Ht();N(()=>z(F,`v${t.pkg.version??""}`)),k(j,F)};U(m,j=>{t.mode==="update"&&t.fromVersion?j(S):j(y,-1)})}var w=g(m,2);{var I=j=>{var F=n2(),V=p(F);h(F),N(()=>z(V,`by ${t.pkg.author??""}`)),k(j,F)};U(w,j=>{t.pkg.author&&j(I)})}h(v),h(u);var x=g(u,2),_=p(x);{var T=j=>{var F=Ze(),V=ke(F);{var W=G=>{var $=r2();k(G,$)},Q=G=>{var $=a2(),ae=g(ke($),2);Se(ae,20,n,Y=>Y,(Y,Z)=>{const O=B(()=>$i(Z));var H=s2(),J=p(H),X=p(J,!0);h(J);var le=g(J,2),me=p(le,!0);h(le),h(H),N(()=>{z(X,a(O).title),z(me,a(O).description)}),k(Y,H)}),h(ae),k(G,$)};U(V,G=>{n().length===0?G(W):G(Q,-1)})}k(j,F)},C=j=>{var F=u2(),V=ke(F);{var W=$=>{var ae=i2(),Y=g(ke(ae),2);Se(Y,20,r,Z=>Z,(Z,O)=>{const H=B(()=>$i(O));var J=o2(),X=p(J),le=p(X,!0);h(X);var me=g(X,2),se=p(me,!0);h(me),h(J),N(()=>{z(le,a(H).title),z(se,a(H).description)}),k(Z,J)}),h(Y),k($,ae)};U(V,$=>{r().length>0&&$(W)})}var Q=g(V,2);{var G=$=>{var ae=c2(),Y=g(ke(ae),2);Se(Y,20,s,Z=>Z,(Z,O)=>{const H=B(()=>$i(O));var J=l2(),X=p(J),le=p(X,!0);h(X);var me=g(X,2),se=p(me,!0);h(me),h(J),N(()=>{z(le,a(H).title),z(se,a(H).description)}),k(Z,J)}),h(Y),k($,ae)};U(Q,$=>{s().length>0&&$(G)})}k(j,F)};U(_,j=>{t.mode==="install"?j(T):j(C,-1)})}var D=g(_,2);{var P=j=>{var F=f2(),V=g(ke(F),2);Se(V,20,o,W=>W,(W,Q)=>{var G=d2(),$=g(p(G),2),ae=p($,!0);h($),h(G),N(()=>z(ae,Q)),k(W,G)}),h(V),k(j,F)};U(D,j=>{o().length>0&&j(P)})}h(x);var R=g(x,2),A=p(R),M=g(A,2),L=p(M,!0);h(M),h(R),h(c),h(l),N(()=>{ie(l,"aria-label",`${a(i)??""} ${t.pkg.label??""}`),z(f,`${a(i)??""} ${t.pkg.label??""}`),z(L,a(i))}),K("click",l,function(...j){t.onCancel?.apply(this,j)}),K("keydown",l,j=>{j.key==="Escape"&&t.onCancel()}),K("click",c,j=>j.stopPropagation()),K("click",A,function(...j){t.onCancel?.apply(this,j)}),K("click",M,function(...j){t.onConfirm?.apply(this,j)}),k(e,l),ue()}_e(["click","keydown"]);function pu(e){return e==="shard"?"shard":"app"}function h2(e){return pu(e)==="shard"?"Shard":"App"}function p2(e,t){return t==="all"?!0:pu(e)===t}var m2=E('<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>'),b2=E('<div class="store-registries svelte-1aafzt0"></div>'),g2=E('<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>'),y2=E('<div class="store-error svelte-1aafzt0"> </div>'),_2=E('<div class="store-error svelte-1aafzt0"> </div>'),w2=E('<img alt="" class="store-icon-img svelte-1aafzt0"/>'),k2=E('<span class="store-icon-placeholder svelte-1aafzt0"> </span>'),x2=E('<div class="store-card-warning svelte-1aafzt0"> </div>'),S2=E('<button class="store-update-btn svelte-1aafzt0"> </button>'),I2=E('<span class="store-installed-label svelte-1aafzt0">Installed</span>'),E2=E('<span class="store-card-missing svelte-1aafzt0"> </span>'),C2=E('<div class="store-install-wrap svelte-1aafzt0"><button class="store-install-btn svelte-1aafzt0"> </button> <!></div>'),A2=E('<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>'),T2=E("No packages found. <!>",1),R2=E('<div class="store-empty svelte-1aafzt0"><!></div>'),P2=E('<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 L2(e,t){ce(t,!0);let n=q(""),r=q("all"),s=q(he(new Set)),o=q(he(new Set)),i=q(null),l=q(""),c=q(null),u=q(null);const d=wt;async function f(){const ne=a(l).trim();if(ne&&!d.env.registries.includes(ne))try{await d.addRegistry(ne),b(l,""),d.refreshCatalog(),d.refreshInstalled()}catch(re){b(i,re instanceof Error?re.message:String(re),!0)}}async function v(ne){try{await d.removeRegistry(ne),d.refreshCatalog()}catch(re){b(i,re instanceof Error?re.message:String(re),!0)}}const m=B(()=>{const ne=a(n).toLowerCase().trim();return d.state.ephemeral.catalog.filter(re=>p2(re.entry.type,a(r))?ne?re.entry.id.toLowerCase().includes(ne)||re.entry.label.toLowerCase().includes(ne)||re.entry.description.toLowerCase().includes(ne):!0:!1)});function S(ne){return d.state.ephemeral.installed.some(re=>re.id===ne)}function y(ne){return String(ne.latest.contractVersion)!==String(Cd.version)}function w(ne){return ne in d.state.ephemeral.updatable}function I(ne){return d.state.ephemeral.installed.find(re=>re.id===ne)?.version??""}function x(ne,re){const ge=ne.latest.requires?.map(pe=>pe.id)??[];if(ge.length===0)return[];const we=new Set(Dp);for(const pe of re)(pe.type==="shard"||pe.type==="combo")&&we.add(pe.id);return ge.filter(pe=>!we.has(pe))}async function _(ne){if(!a(o).has(ne)){b(o,new Set([...a(o),ne]),!0),b(i,null);try{await d.updatePackage(ne,(re,ge)=>new Promise(we=>{const pe=d.state.ephemeral.updatable[ne],ze=d.state.ephemeral.installed.find(ee=>ee.id===ne);if(!pe||!ze){we(!0);return}b(u,{pkg:pe,fromVersion:ze.version,added:re,removed:ge,resolve:we},!0)}))}catch(re){b(i,re instanceof Error?re.message:String(re),!0)}finally{const re=new Set(a(o));re.delete(ne),b(o,re,!0)}}}function T(){const ne=a(u);ne&&(b(u,null),ne.resolve(!0))}function C(){const ne=a(u);ne&&(b(u,null),ne.resolve(!1))}async function D(ne){const re=ne.entry.id;if(!a(s).has(re)){b(s,new Set([...a(s),re]),!0),b(i,null);try{const ge=await Ei(ne.latest,ne.sourceRegistry),we=Ci(ne,ne.latest),pe=await Wa(ge),ze=vu(pe);let ee;ne.latest.serverBundleUrl&&(ee=await iu(ne.latest,ne.sourceRegistry));const fe=new TextDecoder().decode(new Uint8Array(ge)),Ce=t2(fe);b(c,{pkg:ne,permissions:ze,loaded:pe,bundle:ge,meta:we,serverBundle:ee,warnings:Ce},!0)}catch(ge){b(i,ge instanceof Error?ge.message:String(ge),!0);const we=new Set(a(s));we.delete(re),b(s,we,!0)}}}async function P(){const ne=a(c);if(!ne)return;b(c,null);const{pkg:re,loaded:ge,bundle:we,meta:pe,serverBundle:ze}=ne,ee=re.entry.id;try{const fe={id:pe.id,type:pe.type,label:re.entry.label,version:pe.version,contractVersion:pe.contractVersion,sourceRegistry:pe.sourceRegistry,requiredShards:re.latest.requires?.map(Fe=>Fe.id)??[],installedAt:new Date().toISOString()},Ce=await tu(fe,we,ze);if(!Ce.ok){b(i,Ce.error??"Server install failed",!0);return}const Te=await hu(we,pe,{loaded:ge});Te.success||console.warn(`[sh3-store] Server install ok but local hot-load failed: ${Te.error}`),await d.refreshInstalled()}catch(fe){b(i,fe instanceof Error?fe.message:String(fe),!0)}finally{const fe=new Set(a(s));fe.delete(ee),b(s,fe,!0)}}function R(){if(!a(c))return;const ne=a(c).pkg.entry.id;b(c,null);const re=new Set(a(s));re.delete(ne),b(s,re,!0)}function A(){d.refreshCatalog(),d.refreshInstalled()}var M=P2(),L=ke(M),j=p(L),F=g(p(j),2),V=p(F);De(V);var W=g(V,2),Q=p(W);Q.value=Q.__value="all";var G=g(Q);G.value=G.__value="shard";var $=g(G);$.value=$.__value="app",h(W);var ae=g(W,2),Y=p(ae,!0);h(ae),h(F),h(j);var Z=g(j,2);{var O=ne=>{var re=b2();Se(re,21,()=>d.env.registries,xt,(ge,we)=>{var pe=m2(),ze=p(pe),ee=p(ze,!0);h(ze);var fe=g(ze,2);h(pe),N(()=>z(ee,a(we))),K("click",fe,()=>v(a(we))),k(ge,pe)}),h(re),k(ne,re)};U(Z,ne=>{d.isAdmin&&d.env.registries.length>0&&ne(O)})}var H=g(Z,2);{var J=ne=>{var re=g2(),ge=p(re);De(ge);var we=g(ge,2);h(re),N(pe=>we.disabled=pe,[()=>!a(l).trim()]),Ke("submit",re,pe=>{pe.preventDefault(),f()}),qe(ge,()=>a(l),pe=>b(l,pe)),k(ne,re)};U(H,ne=>{d.isAdmin&&ne(J)})}var X=g(H,2);{var le=ne=>{var re=y2(),ge=p(re,!0);h(re),N(()=>z(ge,d.state.ephemeral.error)),k(ne,re)};U(X,ne=>{d.state.ephemeral.error&&ne(le)})}var me=g(X,2);{var se=ne=>{var re=_2(),ge=p(re,!0);h(re),N(()=>z(ge,a(i))),k(ne,re)};U(me,ne=>{a(i)&&ne(se)})}var de=g(me,2);Se(de,21,()=>a(m),ne=>ne.entry.id,(ne,re)=>{const ge=B(()=>S(a(re).entry.id)),we=B(()=>y(a(re))),pe=B(()=>a(s).has(a(re).entry.id)),ze=B(()=>w(a(re).entry.id)),ee=B(()=>a(o).has(a(re).entry.id)),fe=B(()=>x(a(re),d.state.ephemeral.installed)),Ce=B(()=>pu(a(re).entry.type));var Te=A2(),Fe=p(Te),He=p(Fe),Ye=p(He);{var Xe=nt=>{var et=w2();N(()=>ie(et,"src",a(re).entry.icon)),k(nt,et)},Me=nt=>{var et=k2(),Tt=p(et,!0);h(et),N(()=>z(Tt,a(re).entry.type==="shard"?"S":"A")),k(nt,et)};U(Ye,nt=>{a(re).entry.icon?nt(Xe):nt(Me,-1)})}h(He);var Ue=g(He,2),it=p(Ue),fn=p(it,!0);h(it);var Fn=g(it,2);let St;var Qr=p(Fn,!0);h(Fn);var Sr=g(Fn,2),Bs=p(Sr,!0);h(Sr),h(Ue),h(Fe);var Zn=g(Fe,2),Bn=p(Zn,!0);h(Zn);var Qn=g(Zn,2),Ir=p(Qn,!0);h(Qn);var $r=g(Qn,2);{var Vs=nt=>{var et=x2(),Tt=p(et);h(et),N(()=>z(Tt,`Contract mismatch: package targets v${a(re).latest.contractVersion??""}, running v${Cd.version}`)),k(nt,et)};U($r,nt=>{a(we)&&nt(Vs)})}var Sn=g($r,2),Zt=p(Sn);{var ct=nt=>{var et=S2(),Tt=p(et,!0);h(et),N(es=>{et.disabled=a(ee),z(Tt,es)},[()=>a(ee)?"Updating...":`Update ${I(a(re).entry.id)} -> ${a(re).latest.version}`]),K("click",et,()=>_(a(re).entry.id)),k(nt,et)},Qt=nt=>{var et=I2();k(nt,et)},vn=nt=>{var et=C2(),Tt=p(et),es=p(Tt,!0);h(Tt);var Ri=g(Tt,2);{var Pi=Er=>{var Li=E2(),qm=p(Li);h(Li),N(Fm=>z(qm,`requires: ${Fm??""}`),[()=>a(fe).join(", ")]),k(Er,Li)};U(Ri,Er=>{a(fe).length>0&&Er(Pi)})}h(et),N(Er=>{Tt.disabled=a(pe)||a(fe).length>0,ie(Tt,"title",Er),z(es,a(pe)?"Installing...":"Install")},[()=>a(fe).length>0?`Missing required shards: ${a(fe).join(", ")}`:void 0]),K("click",Tt,()=>D(a(re))),k(nt,et)};U(Zt,nt=>{a(ge)&&a(ze)?nt(ct):a(ge)?nt(Qt,1):nt(vn,-1)})}h(Sn),h(Te),N(nt=>{z(fn,a(re).entry.label),St=xe(Fn,1,"store-card-badge svelte-1aafzt0",null,St,{"badge-shard":a(Ce)==="shard","badge-app":a(Ce)==="app"}),z(Qr,nt),z(Bs,a(re).latest.version),z(Bn,a(re).entry.description),z(Ir,a(re).entry.author.name)},[()=>h2(a(re).entry.type)]),k(ne,Te)}),h(de);var ye=g(de,2);{var Ee=ne=>{var re=R2(),ge=p(re);{var we=ze=>{var ee=T2(),fe=g(ke(ee));{var Ce=Fe=>{var He=Ht("Add a registry URL above to get started.");k(Fe,He)},Te=Fe=>{var He=Ht("No registries configured.");k(Fe,He)};U(fe,Fe=>{d.isAdmin?Fe(Ce):Fe(Te,-1)})}k(ze,ee)},pe=ze=>{var ee=Ht("No packages match the current filter.");k(ze,ee)};U(ge,ze=>{d.env.registries.length===0?ze(we):ze(pe,-1)})}h(re),k(ne,re)};U(ye,ne=>{!d.state.ephemeral.loading&&a(m).length===0&&ne(Ee)})}h(L);var Le=g(L,2);{var oe=ne=>{{let re=B(()=>({label:a(c).pkg.entry.label,version:a(c).pkg.latest.version,author:a(c).pkg.entry.author.name}));Yl(ne,{mode:"install",get pkg(){return a(re)},get permissions(){return a(c).permissions},get warnings(){return a(c).warnings},onConfirm:P,onCancel:R})}};U(Le,ne=>{a(c)&&ne(oe)})}var be=g(Le,2);{var Ae=ne=>{{let re=B(()=>({label:a(u).pkg.entry.label,version:a(u).pkg.latest.version,author:a(u).pkg.entry.author.name}));Yl(ne,{mode:"update",get pkg(){return a(re)},get fromVersion(){return a(u).fromVersion},get added(){return a(u).added},get removed(){return a(u).removed},onConfirm:T,onCancel:C})}};U(be,ne=>{a(u)&&ne(Ae)})}N(()=>{ae.disabled=d.state.ephemeral.loading,z(Y,d.state.ephemeral.loading?"Loading...":"Refresh")}),qe(V,()=>a(n),ne=>b(n,ne)),ua(W,()=>a(r),ne=>b(r,ne)),K("click",ae,A),k(e,M),ue()}_e(["click"]);function Wp(e){return wt.state.ephemeral.catalog.find(t=>t.entry.id===e)}function Sa(e){return wt.state.ephemeral.installed.find(t=>t.id===e)}const D2={name:"install",summary:"Install a package by id from the catalog.",programmatic:!0,async run(e,t){const n=t[0];if(!n){e.scrollback.push({kind:"status",text:"usage: sh3-store:install <package-id>",level:"warn",ts:Date.now()});return}const r=Sa(n);if(r){e.scrollback.push({kind:"status",text:`${n} is already installed (v${r.version})`,level:"warn",ts:Date.now()});return}const s=Wp(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 o=await Ei(s.latest,s.sourceRegistry),i=Ci(s,s.latest);let l;s.latest.serverBundleUrl&&(l=await iu(s.latest,s.sourceRegistry));const c={id:i.id,type:i.type,label:s.entry.label,version:i.version,contractVersion:i.contractVersion,sourceRegistry:i.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:s.latest.requires?.map(f=>f.id)??[]},u=await tu(c,o,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 hu(o,i);d.success||e.scrollback.push({kind:"status",text:`server ok but local hot-load failed: ${d.error}`,level:"warn",ts:Date.now()}),await wt.refreshInstalled(),e.scrollback.push({kind:"status",text:`installed ${n} v${s.latest.version}`,level:"info",ts:Date.now()})}catch(o){e.scrollback.push({kind:"status",text:`install failed: ${o instanceof Error?o.message:String(o)}`,level:"error",ts:Date.now()})}}},M2={name:"uninstall",summary:"Uninstall an installed package by id.",programmatic:!0,async run(e,t){const n=t[0];if(!n){e.scrollback.push({kind:"status",text:"usage: sh3-store:uninstall <package-id>",level:"warn",ts:Date.now()});return}if(!Sa(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 wt.uninstallPackage(n),e.scrollback.push({kind:"status",text:`uninstalled ${n}`,level:"info",ts:Date.now()})}catch(s){e.scrollback.push({kind:"status",text:`uninstall failed: ${s instanceof Error?s.message:String(s)}`,level:"error",ts:Date.now()})}}},j2={name:"update",summary:"Update an installed package (sh3-store:update <id> [version]). When version is omitted, bumps to latest; with a version, installs that exact version (downgrade or same-version reinstall allowed).",programmatic:!0,async run(e,t){const n=t[0],r=t[1];if(!n){e.scrollback.push({kind:"status",text:"usage: sh3-store:update <package-id> [version]",level:"warn",ts:Date.now()});return}const s=Sa(n);if(!s){e.scrollback.push({kind:"status",text:`package "${n}" is not installed`,level:"error",ts:Date.now()});return}const o=s.version,i=r&&r===o?"reinstalling":r?`updating ${n} from v${o} to v${r}`:`updating ${n} from v${o} to latest`;e.scrollback.push({kind:"status",text:i.startsWith("reinstalling")?`reinstalling ${n} v${r}…`:`${i}…`,level:"info",ts:Date.now()});const l=async(c,u)=>(e.scrollback.push({kind:"status",text:`permission change required (added: ${c.join(", ")||"none"}; removed: ${u.join(", ")||"none"}) — open the store and use the Update button to review and apply.`,level:"warn",ts:Date.now()}),!1);try{await wt.updatePackage(n,l,r);const c=r??Sa(n)?.version??"?";e.scrollback.push({kind:"status",text:r&&r===o?`reinstalled ${n} v${c}`:`updated ${n} v${c}`,level:"info",ts:Date.now()})}catch(c){e.scrollback.push({kind:"status",text:`update failed: ${c instanceof Error?c.message:String(c)}`,level:"error",ts:Date.now()})}}},z2={name:"appinfo",summary:"Show info about a package (installed status, version, catalog details).",programmatic:!0,async run(e,t){const n=t[0];if(!n){e.scrollback.push({kind:"status",text:"usage: sh3-store:appinfo <package-id>",level:"warn",ts:Date.now()});return}const r=Sa(n),s=Wp(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 o=[];o.push(`--- ${n} ---`),r?(o.push(" installed: yes"),o.push(` version: ${r.version}`),o.push(` type: ${r.type}`),o.push(` contract: v${r.contractVersion}`),o.push(` source: ${r.sourceRegistry}`),r.installedAt&&o.push(` installed: ${r.installedAt}`)):o.push(" installed: no"),s?(o.push(" catalog: yes"),o.push(` latest: ${s.latest.version}`),o.push(` label: ${s.entry.label}`),o.push(` author: ${s.entry.author.name}`),o.push(` desc: ${s.entry.description}`)):o.push(" catalog: no (not in any configured registry)"),e.scrollback.push({kind:"text",stream:"stdout",chunks:[o.join(`
12
+ `)+`
13
+ `],ts:Date.now()})}};function O2(e,t){const[n="",r=""]=e.split("+"),[s="",o=""]=t.split("+"),i=n.split(".").map(f=>parseInt(f,10)||0),l=s.split(".").map(f=>parseInt(f,10)||0),c=Math.max(i.length,l.length);for(let f=0;f<c;f++){const v=i[f]??0,m=l[f]??0;if(v>m)return!0;if(v<m)return!1}if(r===o||r==="")return!1;if(o==="")return!0;const u=parseInt(r,10),d=parseInt(o,10);return!isNaN(u)&&!isNaN(d)?u>d:r>o}function N2(e,t){if(t===void 0)return e.latest;const n=e.entry.versions.find(r=>r.version===t);if(!n)throw new Error(`version ${t} not in catalog for ${e.entry.id}`);return n}function q2(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 wt;const Yp={manifest:{id:"sh3-store",label:"Package Store",version:qn,views:[{id:"sh3-store:browse",label:"Store"}]},activate(e){const t=e.env({registries:[]}),n=e.state({ephemeral:{catalog:[],installed:[],updatable:{},loading:!1,error:null}});function r(){const f={};for(const v of n.ephemeral.installed){const m=n.ephemeral.catalog.find(S=>S.entry.id===v.id);m&&O2(m.latest.version,v.version)&&(f[v.id]=m)}n.ephemeral.updatable=f}async function s(){n.ephemeral.loading=!0,n.ephemeral.error=null;try{const f=await Cp(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 o(){try{const f=await ES();n.ephemeral.installed=f.map(v=>({id:v.id,type:v.type,version:v.version,sourceRegistry:v.sourceRegistry??"",contractVersion:v.contractVersion??"",installedAt:v.installedAt??"",permissions:[]})),r()}catch(f){console.warn("[sh3-store] Failed to list installed packages:",f instanceof Error?f.message:f);try{const v=await e2();n.ephemeral.installed=v,r()}catch{}}}async function i(f){const v=[...t.registries];v.includes(f)||(v.push(f),await e.envUpdate({registries:v}))}async function l(f){const v=t.registries.filter(m=>m!==f);await e.envUpdate({registries:v})}async function c(f,v,m){let S;if(m===void 0?S=n.ephemeral.updatable[f]:S=n.ephemeral.catalog.find(V=>V.entry.id===f),!S)return;const y=n.ephemeral.installed.find(V=>V.id===f);if(!y)return;const w=N2(S,m),I=await Ei(w,S.sourceRegistry);let x;w.serverBundleUrl&&(x=await iu(w,S.sourceRegistry));const _=Ci(S,w),T=await Wa(I),C=vu(T);let D=[];try{const V=await JE(f);V?.permissions&&(D=V.permissions)}catch{}const{added:P,removed:R}=q2(D,C);if((P.length>0||R.length>0)&&v&&!await v(P,R))return;const A=await Up(f),M={...y,permissions:D},L={id:_.id,type:_.type,label:S.entry.label,version:_.version,contractVersion:_.contractVersion,sourceRegistry:_.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:w.requires?.map(V=>V.id)??[]},j=await tu(L,I,x);if(!j.ok){let V=j.error??"Server update failed";throw j.code==="missing-shards"&&j.missing&&(V=`missing required shard(s): ${j.missing.map(Q=>Q.id).join(", ")}`),new Error(V)}const F=await hu(I,_,{loaded:T});if(!F.success){if(A)try{await Vp(f,A,M)}catch(V){console.warn(`[sh3-store] Rollback failed for "${f}":`,V instanceof Error?V.message:V)}throw new Error(F.error??"Local install failed during update")}await o()}async function u(f){await IS(f),await $E(f),await o()}wt={env:t,state:n,get isAdmin(){return e.isAdmin},refreshCatalog:s,refreshInstalled:o,updatePackage:c,uninstallPackage:u,addRegistry:i,removeRegistry:l};const d={mount(f,v){const m=at(L2,{target:f});return{unmount(){ft(m)}}}};e.registerView("sh3-store:browse",d),e.registerVerb(D2),e.registerVerb(M2),e.registerVerb(z2),e.registerVerb(j2),o()},autostart(){wt.refreshCatalog()}};function F2(e,t,n,r){return new Promise(s=>{const o={mode:"update",pkg:{label:e.label,version:t},fromVersion:e.version,added:n,removed:r,onConfirm:()=>{i.close(),s(!0)},onCancel:()=>{i.close(),s(!1)}},i=xn.open(Yl,o)})}var B2=E('<p class="error svelte-1tiy4hy"> </p>'),V2=E('<div class="app-update-modal svelte-1tiy4hy"><h2 class="svelte-1tiy4hy">Update available</h2> <p class="svelte-1tiy4hy"><strong> </strong> can be updated from <code class="svelte-1tiy4hy"> </code> to <code class="svelte-1tiy4hy"> </code>.</p> <p class="hint svelte-1tiy4hy">Package id: <code class="svelte-1tiy4hy"> </code></p> <!> <div class="actions svelte-1tiy4hy"><button type="button" class="primary svelte-1tiy4hy"> </button> <button type="button" class="svelte-1tiy4hy">Cancel</button></div></div>');function U2(e,t){ce(t,!0);let n=q(!1),r=q(null);async function s(){if(!a(n)){b(n,!0),b(r,null);try{await t.onConfirm(),t.close()}catch(D){b(r,D.message,!0)}finally{b(n,!1)}}}var o=V2(),i=g(p(o),2),l=p(i),c=p(l,!0);h(l);var u=g(l,2),d=p(u);h(u);var f=g(u,2),v=p(f);h(f),Wt(),h(i);var m=g(i,2),S=g(p(m)),y=p(S,!0);h(S),h(m);var w=g(m,2);{var I=D=>{var P=B2(),R=p(P,!0);h(P),N(()=>z(R,a(r))),k(D,P)};U(w,D=>{a(r)&&D(I)})}var x=g(w,2),_=p(x),T=p(_,!0);h(_);var C=g(_,2);h(x),h(o),N(()=>{z(c,t.appLabel),z(d,`v${t.fromVersion??""}`),z(v,`v${t.toVersion??""}`),z(y,t.appId),_.disabled=a(n),z(T,a(n)?"Updating…":"Update"),C.disabled=a(n)}),K("click",_,s),K("click",C,function(...D){t.close?.apply(this,D)}),k(e,o),ue()}_e(["click"]);var H2=E('<p class="error svelte-86mxbl"> </p>'),K2=E(`<div class="uninstall-dialog svelte-86mxbl"><h2 class="svelte-86mxbl"> </h2> <p class="hint svelte-86mxbl">Package id: <code class="svelte-86mxbl"> </code> · current version: <code class="svelte-86mxbl"> </code></p> <p class="svelte-86mxbl">The package will be removed from this server. App data stored in your
14
+ browser will remain until you clear it manually.</p> <!> <div class="actions svelte-86mxbl"><button type="button" class="danger svelte-86mxbl"> </button> <button type="button" class="svelte-86mxbl">Cancel</button></div></div>`);function W2(e,t){ce(t,!0);let n=q(!1),r=q(null);async function s(){if(!a(n)){b(n,!0),b(r,null);try{await t.onConfirm(),t.close()}catch(_){b(r,_.message,!0)}finally{b(n,!1)}}}var o=K2(),i=p(o),l=p(i);h(i);var c=g(i,2),u=g(p(c)),d=p(u,!0);h(u);var f=g(u,2),v=p(f);h(f),h(c);var m=g(c,4);{var S=_=>{var T=H2(),C=p(T,!0);h(T),N(()=>z(C,a(r))),k(_,T)};U(m,_=>{a(r)&&_(S)})}var y=g(m,2),w=p(y),I=p(w,!0);h(w);var x=g(w,2);h(y),h(o),N(()=>{z(l,`Uninstall ${t.appLabel??""}?`),z(d,t.appId),z(v,`v${t.version??""}`),w.disabled=a(n),z(I,a(n)?"Uninstalling…":"Uninstall"),x.disabled=a(n)}),K("click",w,s),K("click",x,function(..._){t.close?.apply(this,_)}),k(e,o),ue()}_e(["click"]);var Y2=E('<span class="badge built-in svelte-1w44jyn">built-in</span>'),X2=E('<section class="description svelte-1w44jyn"><span class="label svelte-1w44jyn">Description</span> <p class="svelte-1w44jyn"> </p></section>'),G2=E('<p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Author</span> <span> </span></p>'),J2=E('<li><code class="svelte-1w44jyn"> </code></li>'),Z2=E('<section class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Required shards</span> <ul class="chips svelte-1w44jyn"></ul></section>'),Q2=E('<li><code class="svelte-1w44jyn"> </code></li>'),$2=E('<section class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Permissions</span> <ul class="chips svelte-1w44jyn"></ul></section>'),eC=E('<p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Installed</span><span> </span></p>'),tC=E('<section class="installed svelte-1w44jyn"><p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Source registry</span><code class="svelte-1w44jyn"> </code></p> <!> <p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Contract</span><code class="svelte-1w44jyn"> </code></p></section>'),nC=E('<div class="app-info-modal svelte-1w44jyn"><header class="svelte-1w44jyn"><h2 class="svelte-1w44jyn"> </h2> <code class="id svelte-1w44jyn"> </code></header> <p class="version svelte-1w44jyn"><span class="label svelte-1w44jyn">Version</span> <code class="svelte-1w44jyn"> </code> <!></p> <!> <!> <!> <!> <!> <div class="actions svelte-1w44jyn"><button type="button" class="svelte-1w44jyn">Close</button></div></div>');function rC(e,t){ce(t,!0);let n=B(()=>{if(!t.installed)return null;const M=new Date(t.installed.installedAt);return isNaN(M.getTime())?t.installed.installedAt:M.toLocaleString()});var r=nC(),s=p(r),o=p(s),i=p(o,!0);h(o);var l=g(o,2),c=p(l,!0);h(l),h(s);var u=g(s,2),d=g(p(u),2),f=p(d);h(d);var v=g(d,2);{var m=M=>{var L=Y2();k(M,L)};U(v,M=>{t.installed||M(m)})}h(u);var S=g(u,2);{var y=M=>{var L=X2(),j=g(p(L),2),F=p(j,!0);h(j),h(L),N(()=>z(F,t.catalogEntry.description)),k(M,L)};U(S,M=>{t.catalogEntry?.description&&M(y)})}var w=g(S,2);{var I=M=>{var L=G2(),j=g(p(L),2),F=p(j,!0);h(j),h(L),N(()=>z(F,t.catalogEntry.author.name)),k(M,L)};U(w,M=>{t.catalogEntry?.author?.name&&M(I)})}var x=g(w,2);{var _=M=>{var L=Z2(),j=g(p(L),2);Se(j,21,()=>t.manifest.requiredShards,xt,(F,V)=>{var W=J2(),Q=p(W),G=p(Q,!0);h(Q),h(W),N(()=>z(G,a(V))),k(F,W)}),h(j),h(L),k(M,L)};U(x,M=>{t.manifest.requiredShards.length>0&&M(_)})}var T=g(x,2);{var C=M=>{var L=$2(),j=g(p(L),2);Se(j,21,()=>t.manifest.permissions,xt,(F,V)=>{var W=Q2(),Q=p(W),G=p(Q,!0);h(Q),h(W),N(()=>z(G,a(V))),k(F,W)}),h(j),h(L),k(M,L)};U(T,M=>{t.manifest.permissions&&t.manifest.permissions.length>0&&M(C)})}var D=g(T,2);{var P=M=>{var L=tC(),j=p(L),F=g(p(j)),V=p(F,!0);h(F),h(j);var W=g(j,2);{var Q=Y=>{var Z=eC(),O=g(p(Z)),H=p(O,!0);h(O),h(Z),N(()=>z(H,a(n))),k(Y,Z)};U(W,Y=>{a(n)&&Y(Q)})}var G=g(W,2),$=g(p(G)),ae=p($);h($),h(G),h(L),N(()=>{z(V,t.installed.sourceRegistry),z(ae,`v${t.installed.contractVersion??""}`)}),k(M,L)};U(D,M=>{t.installed&&M(P)})}var R=g(D,2),A=p(R);h(R),h(r),N(()=>{z(i,t.manifest.label),z(c,t.manifest.id),z(f,`v${t.manifest.version??""}`)}),K("click",A,function(...M){t.close?.apply(this,M)}),k(e,r),ue()}_e(["click"]);const Ad=typeof globalThis.__TAURI_INTERNALS__<"u";function sC(e){return!e.admin||e.builtin}function Td(e){return e.admin?e.builtin?" · built-in":"":" · admin only"}function pr(){const e=Ha();return!e||e.type!=="app"?null:e.ref}function Xa(e){return js().find(t=>t.id===e)}function aC(e){return!wt.state.ephemeral.installed.some(t=>t.id===e)}function el(e){return{admin:Kt(),builtin:aC(e)}}function oC(e){const t=pr();if(!t)return;const n=Xa(t.appId);if(!n)return;const r=wt.state.ephemeral.installed.find(i=>i.id===t.appId)??null,s=wt.state.ephemeral.catalog.find(i=>i.entry.id===t.appId)?.entry??null,o={manifest:n,installed:r,catalogEntry:s};xn.open(rC,o)}async function iC(e){const t=pr();if(!t)return;const{appId:n}=t,r=Yn.notify("Checking for updates…",{duration:1/0});try{await wt.refreshCatalog()}finally{r.close()}const s=wt.state.ephemeral.updatable[n],o=wt.state.ephemeral.installed.find(c=>c.id===n),i=Xa(n)?.label??n;if(!s||!o){Yn.notify(`${i} is up to date`,{level:"info",duration:2500});return}const l={appId:n,appLabel:i,fromVersion:o.version,toVersion:s.latest.version,onConfirm:async()=>{try{await wt.updatePackage(n,(c,u)=>F2({label:o.id,version:o.version},s.latest.version,c,u)),Yn.notify(`Updated to v${s.latest.version}`,{level:"success"})}catch(c){throw Yn.notify(`Update failed: ${c.message}`,{level:"error",duration:5e3}),c}}};xn.open(U2,l)}function lC(e){const t=pr();if(!t)return;const n=Xa(t.appId);n&&Ii({kind:"app",appId:t.appId,activateShards:n.requiredShards??[]})}async function cC(e){const t=Ac();if(!t)return;const n=t.id,r=t.requiredShards??[];await Ns(),Ii({kind:"app",appId:n,activateShards:r})}function uC(e){const t=pr();if(!t)return;const{appId:n}=t,r=wt.state.ephemeral.installed.find(i=>i.id===n);if(!r)return;const s=Xa(n)?.label??n,o={appId:n,appLabel:s,version:r.version,onConfirm:async()=>{try{await wt.uninstallPackage(n),Yn.notify(`Uninstalled ${s}`,{level:"success"})}catch(i){throw Yn.notify(`Uninstall failed: ${i.message}`,{level:"error",duration:5e3}),i}}};xn.open(W2,o)}function dC(e){const t=()=>{const l=pr();if(!l)return"Info…";const c=Xa(l.appId);return c?`Info — ${c.label} v${c.version}`:`Info — ${l.appId}`},n=()=>{const l=pr();return l?`Check for updates${Td(el(l.appId))}`:"Check for updates"},r=()=>{const l=pr();return l?`Uninstall…${Td(el(l.appId))}`:"Uninstall…"},s=()=>{const l=pr();return l?sC(el(l.appId)):!0},i=[{id:"app.info",label:t,scope:{element:"app"},contextItem:!0,group:"info",run:oC},{id:"app.checkUpdate",label:n,scope:{element:"app"},contextItem:!0,group:"update",disabled:s,run:iC},{id:"app.uninstall",label:r,scope:{element:"app"},contextItem:!0,group:"uninstall",disabled:s,run:uC},{id:"app.popout",label:"Open in standalone view",scope:{element:"app"},contextItem:!0,paletteItem:!1,group:"window",disabled:()=>!Ad,run:lC},{id:"app.popoutCurrent",label:"Pop out current app",scope:"app",contextItem:!1,paletteItem:!0,disabled:()=>!Ad||It.id==null,run:cC}].map(l=>e.actions.register(l));return()=>i.forEach(l=>l())}function fC(){return{id:"sh3.float.toggleMaximize",label:"Toggle Float Maximize",scope:["home","app"],paletteItem:!0,contextItem:!1,defaultShortcut:"Ctrl+Shift+M",disabled:()=>Ge.list().length===0,run(){const e=Ge.list().at(-1);e&&Ge.toggleMaximize(e.id)}}}const Xp={manifest:{id:"__sh3core__",label:"SH3 Core",version:qn,views:[{id:"sh3core:home",label:"Home"},{id:"sh3:keys-and-peers",label:"Keys & Peers"}]},activate(e){const t=e.state({user:{bindings:{}}});Qk(t.user),e.actions.register({id:"sh3.palette.open",label:"Command Palette…",scope:["home","app"],defaultShortcut:"Mod+K",contextItem:!1,paletteItem:!1,run(o){mi()}}),e.actions.register(fC()),e.actions.register({id:"sh3.app.reset-layout",label:"Reset Current Layout",scope:["app"],paletteItem:!0,contextItem:!1,run(){xn.open(Bp,{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:()=>X1()})}});const n={mount(o,i){const l=at(DE,{target:o});return{unmount(){ft(l)}}}},r={mount(o,i){const l=at(VE,{target:o});return{unmount(){ft(l)}}}};e.registerView("sh3core:home",n),e.registerView("sh3:keys-and-peers",r),dC(e),e.actions.register({id:"sh3.app.launch",label:"Launch app",scope:["home","app"],submenu:!0,paletteItem:!0});const s=new Map;Ls(()=>{Ne(()=>{const o=new Set;for(const[i,l]of yr){if(o.add(i),s.has(i))continue;const c=e.actions.register({id:`sh3.app.launch:${i}`,label:l.manifest.label,scope:["home","app"],submenuOf:"sh3.app.launch",run(){lr(i)}});s.set(i,c)}for(const i of[...s.keys()])o.has(i)||(s.get(i)(),s.delete(i))})})},autostart(){}},vC={id:"shell",label:"Sh3",version:qn,views:[{id:"shell:terminal",label:"Sh3",standalone:!0}],permissions:[fa,nu,ru,su]};class hC{#e;get history(){return a(this.#e)}set history(t){b(this.#e,t,!0)}#t;get locked(){return a(this.#t)}set locked(t){b(this.#t,t,!0)}constructor(t){this.#e=q(he([])),this.#t=q(!1),this.modeId=t,this.scrollback=new cx}}let jr=null;function pC(e){jr=e}function mC(){jr=null}function Rd(e){return jr?.workspace.buffers[e]}function bC(e,t){jr&&(jr.workspace.buffers={...jr.workspace.buffers,[e]:t})}function gC(){jr={ephemeral:{},session:{},workspace:{buffers:{}},user:{}}}gC();const yC=200;class _C{constructor(){this.timers=new Map}hydrate(t){const n=Rd(t.modeId);if(!n)return;const r=[];for(const s of n.entries)r.push(this.toLive(s));t.scrollback.restore(r),t.history=[...n.history]}flush(t,n){const r=this.timers.get(t.modeId);r&&clearTimeout(r);const s=setTimeout(()=>{this.timers.delete(t.modeId),this.write(t,n)},yC);this.timers.set(t.modeId,s)}forceFlush(t,n){const r=this.timers.get(t.modeId);r&&(clearTimeout(r),this.timers.delete(t.modeId)),this.write(t,n)}readLastSeq(t){return Rd(t)?.lastSeq}write(t,n){const s={entries:t.scrollback.entries.slice(-500).map(o=>this.toPersisted(o)),history:[...t.history],...n!==void 0?{lastSeq:n}:{}};bC(t.modeId,s)}toPersisted(t){if(t.kind==="rich"){const n=t.componentKey;if(!n)return{id:t.id,kind:"status",text:"<rich entry: not restorable (no componentKey)>",level:"info",ts:t.ts};try{const r=JSON.stringify(t.props);return{id:t.id,kind:"rich",componentKey:n,props:JSON.parse(r),ts:t.ts}}catch{return{id:t.id,kind:"status",text:`<rich entry: ${n} not restorable>`,level:"info",ts:t.ts}}}return t.kind==="prompt"?{id:t.id,kind:"prompt",cwd:t.cwd,line:t.line,ts:t.ts}:t.kind==="text"?{id:t.id,kind:"text",stream:t.stream,chunks:[...t.chunks],ts:t.ts}:{id:t.id,kind:"status",text:t.text,level:t.level,ts:t.ts}}toLive(t){return t.kind==="rich"?{id:t.id,kind:"rich",componentKey:t.componentKey,component:void 0,props:t.props,ts:t.ts}:t.kind==="prompt"?{id:t.id,kind:"prompt",cwd:t.cwd,line:t.line,ts:t.ts}:t.kind==="text"?{id:t.id,kind:"text",stream:t.stream,chunks:[...t.chunks],ts:t.ts}:{id:t.id,kind:"status",text:t.text,level:t.level,ts:t.ts}}}function wC(e,t){for(const n of t)switch(n.kind){case"prompt":e.scrollback.push({kind:"prompt",cwd:n.cwd,line:n.line,ts:n.ts}),e.locked=!0;break;case"stdout":e.scrollback.push({kind:"text",stream:"stdout",chunks:[n.data],ts:n.ts});break;case"stderr":e.scrollback.push({kind:"text",stream:"stderr",chunks:[n.data],ts:n.ts});break;case"exit":(n.signal||n.code!==null&&n.code!==0)&&e.scrollback.push({kind:"status",text:n.signal?`shell: process exited (${n.signal})`:`shell: process exited (${n.code})`,level:"error",ts:n.ts}),e.locked=!1;break;case"status":e.scrollback.push({kind:"status",text:n.text,level:n.level,ts:n.ts});break}}function kC(e,t){if(!e||!t)return e;if(e===t)return"~";if(e.length>t.length&&e.startsWith(t)){const n=e.charAt(t.length);if(n==="/"||n==="\\")return`~/${e.slice(t.length+1).replace(/\\/g,"/")}`}return e}function xC(e){const{scrollTop:t,scrollHeight:n,clientHeight:r,threshold:s}=e;return n-t-r<=s}var SC=E("<pre> </pre>");function IC(e,t){ce(t,!0);const n=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,r=B(()=>t.chunks.join("").replace(n,""));var s=SC();let o;var i=p(s,!0);h(s),N(()=>{o=xe(s,1,"shell-text svelte-ypr8s",null,o,{stderr:t.stream==="stderr"}),z(i,a(r))}),k(e,s),ue()}var EC=E('<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 CC(e,t){var n=EC(),r=p(n),s=p(r,!0);h(r);var o=g(r,4),i=p(o,!0);h(o),h(n),N(()=>{z(s,t.cwd),z(i,t.line)}),k(e,n)}var AC=E("<div> </div>");function Pd(e,t){var n=AC();let r;var s=p(n,!0);h(n),N(()=>{r=xe(n,1,"shell-status svelte-nfxdpt",null,r,{info:t.level==="info",warn:t.level==="warn",error:t.level==="error"}),z(s,t.text)}),k(e,n)}var TC=E('<div class="shell-rich svelte-1rnhl05"><!></div>');function RC(e,t){var n=TC(),r=p(n);ja(r,()=>t.component,(s,o)=>{o(s,Na(()=>t.componentProps))}),h(n),k(e,n)}const Xl=new Map;function fr(e,t){const n=Xl.get(e);if(n&&n!==t){console.warn(`[shell-shard/rich-registry] duplicate registration for key "${e}" — keeping first`);return}Xl.set(e,t)}function PC(e){return Xl.get(e)??null}var LC=E('<span class="jump-pill__count svelte-isy3jt"> </span>'),DC=E('<div class="jump-pill svelte-isy3jt" data-sh3-jump-pill=""><!></div>'),MC=E('<div class="shell-scrollback-wrap svelte-isy3jt"><div class="shell-scrollback svelte-isy3jt"><div class="content"></div></div> <!></div>');function jC(e,t){ce(t,!0);let n=q(null),r=q(null),s=q(!0),o=q(0);const i=4;function l(){return a(n)?xC({scrollTop:a(n).scrollTop,scrollHeight:a(n).scrollHeight,clientHeight:a(n).clientHeight,threshold:i}):!0}function c(){a(n)&&(a(n).scrollTop=a(n).scrollHeight,b(s,!0),b(o,0))}function u(){l()?(b(s,!0),b(o,0)):b(s,!1)}let d=0;Ne(()=>{if(!a(r)||!a(n))return;d=a(n).scrollHeight;const w=new ResizeObserver(()=>{if(!a(n))return;const I=a(n).scrollHeight,x=I>d;d=I,a(s)?a(n).scrollTop=I:x&&Ur(o)});return w.observe(a(r)),()=>w.disconnect()});var f=MC(),v=p(f),m=p(v);Se(m,21,()=>t.scrollback.entries,w=>w.id,(w,I)=>{var x=Ze(),_=ke(x);{var T=R=>{IC(R,{get stream(){return a(I).stream},get chunks(){return a(I).chunks}})},C=R=>{{let A=B(()=>t.showPromptCwd?a(I).cwd:"");CC(R,{get cwd(){return a(A)},get line(){return a(I).line}})}},D=R=>{Pd(R,{get text(){return a(I).text},get level(){return a(I).level}})},P=R=>{const A=B(()=>a(I).component??(a(I).componentKey?PC(a(I).componentKey):null));var M=Ze(),L=ke(M);{var j=V=>{RC(V,{get component(){return a(A)},get componentProps(){return a(I).props}})},F=V=>{{let W=B(()=>`<rich entry: ${a(I).componentKey??"unknown"} not registered>`);Pd(V,{get text(){return a(W)},level:"info"})}};U(L,V=>{a(A)?V(j):V(F,-1)})}k(R,M)};U(_,R=>{a(I).kind==="text"?R(T):a(I).kind==="prompt"?R(C,1):a(I).kind==="status"?R(D,2):a(I).kind==="rich"&&R(P,3)})}k(w,x)}),h(m),Qe(m,w=>b(r,w),()=>a(r)),h(v),Qe(v,w=>b(n,w),()=>a(n));var S=g(v,2);{var y=w=>{var I=DC(),x=p(I);{let _=B(()=>a(o)>0?`${a(o)} New — jump to bottom`:"Jump to bottom"),T=B(()=>a(o)>0?`Jump to bottom, ${a(o)} New`:"Jump to bottom");Pt(x,{variant:"default",icon:"chevron-down",get title(){return a(_)},get ariaLabel(){return a(T)},onclick:c,children:(C,D)=>{var P=Ze(),R=ke(P);{var A=M=>{var L=LC(),j=p(L);h(L),N(()=>z(j,`${a(o)??""} New`)),k(M,L)};U(R,M=>{a(o)>0&&M(A)})}k(C,P)},$$slots:{default:!0}})}h(I),k(w,I)};U(S,w=>{a(s)||w(y)})}h(f),Ke("scroll",v,u),k(e,f),ue()}var zC=E('<span class="sh3-cmdline__prefix svelte-ngn09j"><!></span>'),OC=E('<div data-sh3-passthrough-modifiers=""><!> <input type="text" class="sh3-cmdline__decoy svelte-ngn09j" tabindex="-1" aria-hidden="true"/> <input type="password" class="sh3-cmdline__decoy svelte-ngn09j" tabindex="-1" aria-hidden="true"/> <input type="search" spellcheck="false" autocomplete="off" autocapitalize="off" aria-autocomplete="none" data-1p-ignore="" data-lpignore="true" class="sh3-cmdline__input svelte-ngn09j"/></div>');function NC(e,t){ce(t,!0);let n=te(t,"value",15,""),r=te(t,"disabled",3,!1),s=q(null);function o(v){return v.selectionStart!==null&&v.selectionEnd!==null&&v.selectionStart!==v.selectionEnd}function i(v){(v.ctrlKey||v.metaKey)&&!v.altKey&&v.key==="c"&&a(s)&&o(a(s))||t.onkeydown?.(v)}Ne(()=>{!r()&&a(s)&&a(s).focus()});var l=OC();let c;var u=p(l);{var d=v=>{var m=zC(),S=p(m);ln(S,()=>t.prefix),h(m),k(v,m)};U(u,v=>{t.prefix&&v(d)})}var f=g(u,6);De(f),Qe(f,v=>b(s,v),()=>a(s)),h(l),N(()=>{c=xe(l,1,"sh3-cmdline svelte-ngn09j",null,c,{"sh3-cmdline--disabled":r()}),ie(f,"name",t.name),f.disabled=r()}),K("keydown",f,i),Ke("focus",f,function(...v){t.onfocus?.apply(this,v)}),qe(f,n),k(e,l),ue()}_e(["keydown"]);var qC=E('<span class="shell-input-cwd svelte-1dfv2gk"> </span>'),FC=E('<!> <span class="shell-input-arrow svelte-1dfv2gk">❯</span>',1),BC=E('<div class="shell-input-row svelte-1dfv2gk"><!></div>');function VC(e,t){ce(t,!0);let n=te(t,"showCwd",3,!0),r=q(""),s=q(null),o=q("");function i(){if(t.locked)return;const v=a(r);v.trim()&&(b(r,""),b(s,null),t.onSubmit(v))}function l(){t.history.length!==0&&(a(s)===null?(b(o,a(r),!0),b(s,t.history.length-1)):a(s)>0&&Ur(s,-1),b(r,t.history[a(s)]??"",!0))}function c(){a(s)!==null&&(a(s)<t.history.length-1?(Ur(s),b(r,t.history[a(s)],!0)):(b(s,null),b(r,a(o),!0)))}function u(v){if(t.locked){if(v.ctrlKey&&v.key==="c"){v.preventDefault(),t.session.send({t:"signal",sig:"SIGINT"});return}if(v.ctrlKey&&v.key==="d"){v.preventDefault(),t.session.send({t:"signal",sig:"EOF"});return}v.preventDefault();return}v.key==="Enter"?(v.preventDefault(),i()):v.key==="ArrowUp"?(v.preventDefault(),l()):v.key==="ArrowDown"?(v.preventDefault(),c()):v.ctrlKey&&v.key==="c"?(v.preventDefault(),b(r,""),b(s,null)):v.ctrlKey&&v.key==="l"&&(v.preventDefault(),b(r,"clear"),i())}var d=BC(),f=p(d);NC(f,{get disabled(){return t.locked},name:"shell-cmdline",onkeydown:u,onfocus:()=>t.onFocus?.(),get value(){return a(r)},set value(m){b(r,m,!0)},prefix:m=>{var S=FC(),y=ke(S);{var w=I=>{var x=qC(),_=p(x,!0);h(x),N(()=>z(_,t.cwd)),k(I,x)};U(y,I=>{n()&&I(w)})}Wt(2),k(m,S)},$$slots:{prefix:!0}}),h(d),k(e,d),ue()}class UC{list(){return Pc()}get(t){return To(t)}resolve(t,n={}){const r=t.trim();if(!r)return{kind:"forward",line:t};if(r.startsWith("$ "))return{kind:"forward",line:r.slice(2)};if(r==="$")return{kind:"forward",line:""};if(r.startsWith("/")){const u=r.slice(1).trimStart();return u?this.resolve(u,{globalOnly:!1}):{kind:"forward",line:""}}const s=r.indexOf(" "),o=s===-1?r:r.slice(0,s),i=s===-1?"":r.slice(s+1),l=To(o);if(!l)return{kind:"forward",line:t};if(n.globalOnly&&!l.globalVerb)return{kind:"forward",line:t};const c=i.length?i.split(/\s+/):[];return{kind:"local",verb:l,args:c,line:t}}}class HC{#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 KC={id:"bash",label:"Bash",requiresRole:"admin",transport:"ws",autoRelocate:!1,showCwd:!0},WC={id:"sh3",label:"SH3",transport:"none",autoRelocate:!0,showCwd:!1};function YC(e){e.register(KC),e.register(WC)}function Gp(e){return`sh3.shell.lastMode.${e}`}function Jp(e){try{return globalThis.localStorage?.getItem(Gp(e))??null}catch{return null}}function Ld(e,t){try{globalThis.localStorage?.setItem(Gp(e),t)}catch{}}function XC(e,t,n){const r=Jp(t);if(r){const o=e.get(r);if(o&&(!o.requiresRole||o.requiresRole===n))return o}const s=n==="admin"?"bash":"sh3";return e.get(s)}function po(e,t){return e.entries.find(n=>n.kind==="rich"&&n.id===t)}function GC(e,t){return{update(n){const r=po(e,t);r&&Object.assign(r.props,n)}}}function Dd(e){return e.entries[e.entries.length-1].id}function Md(e){const t=e.scrollback;return{text(n,r){t.push({kind:"text",stream:n,chunks:[r],ts:Date.now()})},status(n,r){t.push({kind:"status",text:r,level:n,ts:Date.now()})},rich(n,r){return t.push({kind:"rich",component:n,props:{...r},ts:Date.now()}),GC(t,Dd(t))},stream(n,r){t.push({kind:"rich",component:n,props:{...r,__streamState:"streaming"},ts:Date.now()});const s=Dd(t);return{append(o){const i=po(t,s);i&&Object.assign(i.props,o)},complete(){const o=po(t,s);o&&(o.props.__streamState="complete")},error(o){const i=po(t,s);i&&(i.props.__streamState="error"),t.push({kind:"status",text:`mode: ${o?.message??String(o)}`,level:"error",ts:Date.now()})}}},busy(n){const r=e.busy(n);let s=!1;return{clear(){s||(s=!0,r())}}},invoke(n,r){return e.invoke(n,r)}}}function JC(e){let t=null;async function n(s,o){const i=e.mode();if(s===i.id)throw new Error(`invoke: cannot invoke own mode '${s}'`);if(s==="sh3"){const u=e.resolver.resolve(o,{globalOnly:!1});if(u.kind==="forward"){const d=o.trim().split(/\s+/)[0]??"";throw new Error(`invoke: unknown sh3 verb '${d}'`)}await u.verb.run({sh3:e.sh3,scrollback:e.buffer().scrollback,session:e.session,cwd:e.cwd(),dispatch:r,fs:e.fs,docs:e.docs},u.args);return}if(s==="bash"){if(e.role()!=="admin")throw new Error("invoke: 'bash' requires admin role");e.session.send({t:"submit",line:o,mode:"bash"});return}const l=e.customMode?.(s)??null;if(!l)throw new Error(`invoke: unknown mode '${s}'`);if(l.requiresRole&&l.requiresRole!==e.role())throw new Error(`invoke: mode '${s}' requires ${l.requiresRole} role`);if(l.runsOn==="server")throw new Error("invoke: server-side modes are not yet supported");const c=Md({scrollback:e.buffer().scrollback,busy:e.busy,invoke:n});await l.dispatch({line:o,cwd:e.cwd(),signal:t?.signal??new AbortController().signal},c)}async function r(s){t?.abort();const o=new AbortController;t=o;const i=e.mode();if(e.buffer().history.push(s),i.transport==="none"&&s.trimStart().startsWith("$ ")){e.buffer().scrollback.push({kind:"prompt",cwd:e.cwd(),line:s,ts:Date.now()}),e.buffer().scrollback.push({kind:"status",text:"shell: server shell not available in user mode",level:"error",ts:Date.now()});return}const l=e.resolver.resolve(s,{globalOnly:i.id!=="sh3"});if(l.kind==="local"){e.session.send({t:"history-log",line:s,mode:i.id}),s.trimStart().startsWith("/")||e.buffer().scrollback.push({kind:"prompt",cwd:e.cwd(),line:s,ts:Date.now()});try{await l.verb.run({sh3:e.sh3,scrollback:e.buffer().scrollback,session:e.session,cwd:e.cwd(),dispatch:r,fs:e.fs,docs:e.docs},l.args)}catch(d){e.buffer().scrollback.push({kind:"status",text:`shell: verb ${l.verb.name} threw — ${d.message}`,level:"error",ts:Date.now()})}return}if(i.transport==="ws"){e.session.send({t:"submit",line:l.line,mode:i.id});return}if(i.transport==="custom"){e.buffer().scrollback.push({kind:"prompt",cwd:e.cwd(),line:l.line,ts:Date.now()});const u=e.customMode?.(i.id)??null;if(!u){e.buffer().scrollback.push({kind:"status",text:`mode '${i.id}' is no longer available`,level:"error",ts:Date.now()});return}if(u.runsOn==="server"){e.buffer().scrollback.push({kind:"status",text:"server-side modes are not yet supported (planned for a future release)",level:"error",ts:Date.now()});return}const d=Md({scrollback:e.buffer().scrollback,busy:e.busy,invoke:n}),f=e.busy();try{await u.dispatch({line:l.line,cwd:e.cwd(),signal:o.signal},d)}catch(v){v?.name==="AbortError"?e.buffer().scrollback.push({kind:"status",text:"mode dispatch aborted",level:"info",ts:Date.now()}):e.buffer().scrollback.push({kind:"status",text:`mode '${i.id}' threw — ${v?.message??String(v)}`,level:"error",ts:Date.now()})}finally{f()}return}const c=l.line.split(/\s+/)[0]??"";e.buffer().scrollback.push({kind:"prompt",cwd:e.cwd(),line:l.line,ts:Date.now()}),e.buffer().scrollback.push({kind:"status",text:`unknown verb: ${c}`,level:"error",ts:Date.now()})}return{dispatch:r,cancel:()=>t?.abort()}}async function ZC(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 QC=E('<div class="toolbar svelte-gnowwz"><div class="toolbar-slots svelte-gnowwz"></div></div>');function $C(e,t){ce(t,!0);let n=te(t,"slotProps",19,()=>({})),r=B(()=>t.registry.list(t.ctx));var s=QC(),o=p(s);Se(o,21,()=>a(r),i=>i.id,(i,l)=>{const c=B(()=>a(l).component);var u=Ze(),d=ke(u);ja(d,()=>a(c),(f,v)=>{v(f,Na(()=>n()[a(l).id]??{}))}),k(i,u)}),h(o),h(s),k(e,s),ue()}class eA{#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 tA=E('<span class="mode-label svelte-1i4cqlj"> </span>');function nA(e,t){ce(t,!0);let n=B(()=>t.modes.map(l=>({value:l.id,label:l.label})));var r=Ze(),s=ke(r);{var o=l=>{Tp(l,{get options(){return a(n)},get value(){return t.mode.id},size:"sm",onchange:c=>t.onSelect(c)})},i=l=>{var c=tA(),u=p(c,!0);h(c),N(()=>z(u,t.mode.label)),k(l,c)};U(s,l=>{t.modes.length>=2?l(o):t.modes.length===1&&l(i,1)})}k(e,r),ue()}var rA=E('<button class="focus-lock-btn svelte-1q6gbap"> </button>');function sA(e,t){var n=rA(),r=p(n,!0);h(n),N(()=>{ie(n,"title",t.locked?"Unlock focus":"Lock focus"),z(r,t.locked?"🔒":"🔓")}),K("click",n,function(...s){t.onToggle?.apply(this,s)}),k(e,n)}_e(["click"]);var aA=E('<span class="target-shard svelte-1nn2m6x" title="Target shard"> </span>');function oA(e,t){var n=aA(),r=p(n);h(n),N(()=>z(r,`→ ${t.target??"—"??""}`)),k(e,n)}var iA=E('<span class="label"> </span>'),lA=E('<div class="busy svelte-7wyurd" role="status" aria-live="polite"><span class="spinner svelte-7wyurd" aria-hidden="true"></span> <!></div>');function cA(e,t){var n=Ze(),r=ke(n);{var s=o=>{var i=lA(),l=g(p(i),2);{var c=u=>{var d=iA(),f=p(d,!0);h(d),N(()=>z(f,t.label)),k(u,d)};U(l,u=>{t.label&&u(c)})}h(i),k(o,i)};U(r,o=>{t.active&&o(s)})}k(e,n)}var uA=E('<div class="shell-terminal svelte-13komre"><!> <!> <!></div>');function dA(e,t){ce(t,!0);const n=Oe(()=>new _C),r=new Map;function s(O){let H=r.get(O);return H||(H=new hC(O),n.hydrate(H),r.set(O,H)),H}const o=new UC,i=new sp,l=new HC;YC(l);let c=q(he(Oe(()=>t.contributions.list(aa))));Ne(()=>{const O=t.contributions.onChange(aa,()=>{b(c,t.contributions.list(aa),!0)});return()=>O()});function u(O){return{id:O.id,label:O.label,requiresRole:O.requiresRole,transport:"custom",autoRelocate:O.autoRelocate??!1,showCwd:O.showCwd??!1}}let d=B(()=>[...l.list(t.role),...a(c).filter(O=>!O.requiresRole||O.requiresRole===t.role).map(u)]),f=q(he(Oe(()=>{const O=Jp(t.userId);if(O){const J=[...l.list(t.role),...a(c).filter(X=>!X.requiresRole||X.requiresRole===t.role).map(u)].find(X=>X.id===O);if(J)return J}return XC(l,t.userId,t.role)}))),v=q(0);function m(){b(v,performance.now(),!0)}const S=Oe(()=>M0()),y=B(()=>s(a(f).id));Ne(()=>{for(const[O,H]of Object.entries(x.historyByMode)){const J=s(O);J.history.length<H.length&&(J.history=[...H])}}),Ne(()=>{a(y).scrollback.entries.length,a(y).history.length,a(y).modeId==="bash"?n.flush(a(y),x.lastSeq):n.flush(a(y))});function w(O){const H=a(d).find(J=>J.id===O);H&&(H.requiresRole&&H.requiresRole!==t.role||(A(),b(f,H,!0),Ld(t.userId,O)))}Ne(()=>{if(!a(d).find(O=>O.id===a(f).id)){const O=a(d).find(H=>H.id==="sh3")??a(d)[0];if(O){const H=a(f).id;b(f,O,!0),Ld(t.userId,O.id),s(O.id).scrollback.push({kind:"status",text:`mode '${H}' is no longer available — switched to '${O.id}'`,level:"warn",ts:Date.now()})}}});const I=Oe(()=>({...t.shell,setMode:O=>{const H=a(d).find(J=>J.id===O);return!H||H.requiresRole&&H.requiresRole!==t.role?!1:(w(O),!0)},listModes:()=>a(d).map(O=>({id:O.id,label:O.label})),getMode:()=>({id:a(f).id,label:a(f).label}),dispatchToTerminal:Kc({headless:!1})})),x=Oe(()=>new rp(t.wsUrl));let _=0,T=q(he(new Map));function C(O){const H=++_;a(T).set(H,O),b(T,new Map(a(T)),!0);let J=!1;return()=>{J||(J=!0,a(T).delete(H),b(T,new Map(a(T)),!0))}}let D=B(()=>a(T).size>0),P=B(()=>{if(a(T).size===0)return null;let O;for(const H of a(T).values())O=H;return O??null});const{dispatch:R,cancel:A}=Oe(()=>JC({mode:()=>a(f),role:()=>t.role,resolver:o,buffer:()=>a(y),session:x,sh3:I,fs:i,docs:t.docs,cwd:()=>x.cwd,busy:C,customMode:O=>a(c).find(H=>H.id===O)??null}));let M=q(!1),L=q(null);const j=new eA;j.register({id:"busy",order:5,visible:()=>!0,component:cA}),j.register({id:"mode",order:10,visible:()=>!0,component:nA}),j.register({id:"focus-lock",order:20,visible:O=>O.mode.id==="sh3",component:sA}),j.register({id:"target-shard",order:30,visible:O=>O.mode.id==="sh3",component:oA});function F(O){if(O.type==="tabs")return O.tabs[O.activeTab]?.viewId??null;if(O.type==="split"){for(const H of O.children){const J=F(H);if(J!==null)return J}return null}return O.viewId??null}function V(){try{const O=dn(),H=F(O.docked);if(!H)return null;const J=H.indexOf(":");return J>=0?H.slice(0,J):H}catch{return null}}Ne(()=>{const O=V(),H=a(f).autoRelocate,J=a(M);(async()=>{const X=await ZC({modeAutoRelocate:H,focusLocked:J,focusedShardId:O,currentShardId:"shell"},i);X.kind==="relocate"&&X.path!==void 0&&(x.cwd=X.path),O&&O!=="shell"?b(L,O,!0):O||b(L,null)})()});function W(O){if(O.t==="replay"){wC(s("bash"),O.events);return}if(O.t!=="event")return;const H=O.event,J=s("bash");switch(H.kind){case"prompt":J.scrollback.push({kind:"prompt",cwd:H.cwd,line:H.line,ts:H.ts}),J.locked=!0;break;case"stdout":J.scrollback.push({kind:"text",stream:"stdout",chunks:[H.data],ts:H.ts});break;case"stderr":J.scrollback.push({kind:"text",stream:"stderr",chunks:[H.data],ts:H.ts});break;case"exit":(H.signal||H.code!==null&&H.code!==0)&&J.scrollback.push({kind:"status",text:H.signal?`shell: process exited (${H.signal})`:`shell: process exited (${H.code})`,level:"error",ts:H.ts}),J.locked=!1;break;case"status":J.scrollback.push({kind:"status",text:H.text,level:H.level,ts:H.ts});break}}let Q=null,G=null;_c(()=>{Q=x.onMessage(W),s("bash");const O=n.readLastSeq("bash");O!==void 0&&(x.lastSeq=O),x.connect(),G=j0({id:S,dispatch:R,getFocusStamp:()=>a(v),getMode:()=>a(f)})}),wc(()=>{Q?.(),x.close(),G?.()});var $=uA(),ae=p($);{let O=B(()=>({mode:a(f),role:t.role})),H=B(()=>({busy:{active:a(D),label:a(P)},mode:{mode:a(f),modes:a(d),onSelect:w},"focus-lock":{locked:a(M),onToggle:()=>b(M,!a(M))},"target-shard":{target:a(L)}}));$C(ae,{get registry(){return j},get ctx(){return a(O)},get slotProps(){return a(H)}})}var Y=g(ae,2);{let O=B(()=>a(f).showCwd||!1);jC(Y,{get showPromptCwd(){return a(O)},get scrollback(){return a(y).scrollback}})}var Z=g(Y,2);{let O=B(()=>kC(x.cwd,x.tenantRoot)),H=B(()=>a(f).showCwd!==!1);VC(Z,{get cwd(){return a(O)},get showCwd(){return a(H)},get locked(){return a(y).locked},get history(){return a(y).history},get session(){return x},get onSubmit(){return R},onFocus:m})}h($),k(e,$),ue()}var fA=E('<tr><td class="svelte-m248jy"><button type="button" class="svelte-m248jy"> </button></td><td class="svelte-m248jy"> </td></tr>'),vA=E('<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 Zp(e,t){ce(t,!0);var n=vA(),r=p(n),s=g(p(r));Se(s,21,()=>t.data.rows,o=>o.name,(o,i)=>{var l=fA(),c=p(l),u=p(c),d=p(u,!0);h(u),h(c);var f=g(c),v=p(f,!0);h(f),h(l),N(()=>{z(d,a(i).name),z(v,a(i).summary)}),K("click",u,()=>t.data.onClickName(a(i).name)),k(o,l)}),h(s),h(r),h(n),k(e,n),ue()}_e(["click"]);const Qp="help-table";fr(Qp,Zp);function hA(){return{name:"help",summary:"List verbs or show detail for one.",globalVerb:!0,async run(e){const t=Pc().map(n=>({name:n.name,summary:n.summary}));e.scrollback.push({kind:"rich",componentKey:Qp,component:Zp,props:{data:{rows:t,onClickName:n=>e.dispatch(n)}},ts:Date.now()})}}}const pA={name:"clear",summary:"Clear the scrollback (local only — other views are unaffected).",globalVerb:!0,async run(e){e.scrollback.clear()}},mA={name:"mode",summary:"List or switch shell modes. Usage: mode | mode <id>",globalVerb:!0,async run(e,t){const n=Date.now();if(t.length===0){const i=e.sh3.listModes().map(l=>` ${l.id.padEnd(12)} ${l.label}`);e.scrollback.push({kind:"text",stream:"stdout",chunks:[["Available modes:",...i].join(`
15
+ `)+`
16
+ `],ts:n});return}const r=t[0];e.sh3.setMode(r)||e.scrollback.push({kind:"status",text:`mode: unknown or restricted mode '${r}'`,level:"error",ts:n})}};var bA=E('<li class="svelte-o8m437"><button type="button" class="svelte-o8m437"> </button></li>'),gA=E('<div class="shell-rich-history svelte-o8m437"><ol class="svelte-o8m437"></ol></div>');function $p(e,t){ce(t,!0);var n=gA(),r=p(n);Se(r,21,()=>t.data.lines,xt,(s,o)=>{var i=bA(),l=p(i),c=p(l,!0);h(l),h(i),N(()=>z(c,a(o))),K("click",l,()=>t.data.onClickLine(a(o))),k(s,i)}),h(r),h(n),k(e,n),ue()}_e(["click"]);const em="history-list";fr(em,$p);const yA={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.sh3.getMode().id,o=(e.session.historyByMode[r]??[]).slice(-n);e.scrollback.push({kind:"rich",componentKey:em,component:$p,props:{data:{lines:o,onClickLine:i=>e.dispatch(i)}},ts:Date.now()})}};var _A=E('<tr><td class="svelte-1u5krjz"><button type="button" class="svelte-1u5krjz"> </button></td><td class="svelte-1u5krjz"> </td></tr>'),wA=E('<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 tm(e,t){ce(t,!0);var n=wA(),r=p(n),s=g(p(r));Se(s,21,()=>t.data.apps,o=>o.id,(o,i)=>{var l=_A(),c=p(l),u=p(c),d=p(u,!0);h(u),h(c);var f=g(c),v=p(f,!0);h(f),h(l),N(()=>{z(d,a(i).id),z(v,a(i).label)}),K("click",u,()=>t.data.onClickApp(a(i).id)),k(o,l)}),h(s),h(r),h(n),k(e,n),ue()}_e(["click"]);var kA=E('<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 nm(e,t){ce(t,!0);var n=kA(),r=p(n),s=p(r,!0);h(r);var o=g(r,2),i=g(p(o));h(o);var l=g(o,2),c=g(p(l));h(l),h(n),N(u=>{z(s,t.data.label),z(i,` ${t.data.id??""}`),z(c,` ${u??""}`)},[()=>t.data.shards.join(", ")]),k(e,n),ue()}const rm="apps-table",sm="app-card";fr(rm,tm);fr(sm,nm);const xA={name:"apps",summary:"List installed apps. Click a row to launch.",programmatic:!0,async run(e){const t=e.sh3.listApps();e.scrollback.push({kind:"rich",componentKey:rm,component:tm,props:{data:{apps:t,onClickApp:n=>{e.sh3.launchApp(n),e.scrollback.push({kind:"status",text:`shell: launched app ${n}`,level:"info",ts:Date.now()})}}},ts:Date.now()})}},SA={name:"app",summary:"Show the currently active app.",programmatic:!0,async run(e){const t=e.sh3.getActiveApp();if(!t){e.scrollback.push({kind:"status",text:"shell: no active app",level:"info",ts:Date.now()});return}e.scrollback.push({kind:"rich",componentKey:sm,component:nm,props:{data:{id:t.id,label:t.label,shards:[]}},ts:Date.now()})}};var IA=E('<tr><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td></tr>'),EA=E('<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 am(e,t){ce(t,!0);var n=EA(),r=p(n),s=g(p(r));Se(s,21,()=>t.data.shards,o=>o.id,(o,i)=>{var l=IA(),c=p(l),u=p(c,!0);h(c);var d=g(c),f=p(d,!0);h(d);var v=g(d),m=p(v,!0);h(v),h(l),N(()=>{z(u,a(i).id),z(f,a(i).label),z(m,a(i).version)}),k(o,l)}),h(s),h(r),h(n),k(e,n),ue()}const om="shards-table";fr(om,am);const CA={name:"shards",summary:"List active shards.",programmatic:!0,async run(e){const t=e.sh3.listShards();e.scrollback.push({kind:"rich",componentKey:om,component:am,props:{data:{shards:t}},ts:Date.now()})}};var AA=E('<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>'),TA=E('<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 im(e,t){ce(t,!0);var n=TA(),r=p(n),s=g(p(r));Se(s,21,()=>t.data.views,o=>o.slotId,(o,i)=>{var l=AA(),c=p(l),u=p(c,!0);h(c);var d=g(c),f=p(d,!0);h(d);var v=g(d),m=p(v,!0);h(v);var S=g(v),y=p(S);h(S),h(l),N(()=>{z(u,a(i).slotId),z(f,a(i).viewId),z(m,a(i).label)}),K("click",y,()=>t.data.onClose(a(i).slotId)),k(o,l)}),h(s),h(r),h(n),k(e,n),ue()}_e(["click"]);const lm="views-table";fr(lm,im);const RA={name:"views",summary:"List views currently mounted. Pass --standalone to list summonable views instead.",programmatic:!0,async run(e,t){if(t.includes("--standalone")){const r=e.sh3.listStandaloneViews();if(r.length===0){e.scrollback.push({kind:"status",text:"shell: no standalone views are currently available.",level:"info",ts:Date.now()});return}e.scrollback.push({kind:"status",text:r.map(s=>` ${s.viewId.padEnd(32)} ${s.label}`).join(`
17
+ `),level:"info",ts:Date.now()});return}const n=e.sh3.listViewsInCurrentLayout();e.scrollback.push({kind:"rich",componentKey:lm,component:im,props:{data:{views:n,onClose:r=>{const s=e.sh3.closeSlot(r);s.ok||e.scrollback.push({kind:"status",text:`shell: close failed — ${s.error??"unknown"}`,level:"error",ts:Date.now()})}}},ts:Date.now()})}},PA={name:"open",summary:"Open a view from any active shard into the current layout.",programmatic:!0,async run(e,t){const n=t[0];if(!n){e.scrollback.push({kind:"status",text:"usage: open <viewId>",level:"warn",ts:Date.now()});return}const r=e.sh3.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()})}},LA={name:"popout",summary:"Pop a docked view out into a float by slot id.",programmatic:!0,async run(e,t){const n=t[0];if(!n){e.scrollback.push({kind:"status",text:"usage: popout <slotId>",level:"warn",ts:Date.now()});return}const r=e.sh3.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()})}},DA={name:"dock",summary:"Dock a float back into the current layout by float id. Run with no args to list floats.",programmatic:!0,async run(e,t){const n=t[0];if(!n){const s=e.sh3.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(o=>` ${o.floatId.padEnd(24)} ${o.viewId??"-"} ${o.label}`).join(`
18
+ `),level:"info",ts:Date.now()});return}const r=e.sh3.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()})}},MA={name:"close",summary:"Close a view by slot id.",programmatic:!0,async run(e,t){const n=t[0];if(!n){e.scrollback.push({kind:"status",text:"usage: close <slotId>",level:"warn",ts:Date.now()});return}const r=e.sh3.closeSlot(n);r.ok||e.scrollback.push({kind:"status",text:`shell: close failed — ${r.error??"unknown"}`,level:"error",ts:Date.now()})}};var jA=E('<tr><td class="svelte-1w7onag"> </td><td class="svelte-1w7onag"> </td></tr>'),zA=E('<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 cm(e,t){ce(t,!0);var n=zA(),r=p(n),s=g(p(r));Se(s,21,()=>t.data.rows,o=>o.shardId,(o,i)=>{var l=jA(),c=p(l),u=p(c,!0);h(c);var d=g(c),f=p(d,!0);h(d),h(l),N(v=>{z(u,a(i).shardId),z(f,v)},[()=>a(i).zones.join(", ")]),k(o,l)}),h(s),h(r),h(n),k(e,n),ue()}var OA=E('<div class="shell-rich-zonetree svelte-13iiyr1"><pre class="svelte-13iiyr1"> </pre></div>');function um(e,t){ce(t,!0);var n=OA(),r=p(n),s=p(r,!0);h(r),h(n),N(o=>z(s,o),[()=>JSON.stringify(t.data.value,null,2)]),k(e,n),ue()}const dm="zones-table",fm="zone-tree";fr(dm,cm);fr(fm,um);const NA={name:"zones",summary:"List zones for the current user (optionally scoped to a shard).",programmatic:!0,async run(e,t){const n=e.sh3.listZones(t[0]);e.scrollback.push({kind:"rich",componentKey:dm,component:cm,props:{data:{rows:n}},ts:Date.now()})}},qA={name:"zone",summary:"Dump the contents of a zone as a collapsible JSON tree.",programmatic:!0,async run(e,t){const[n,r]=t;if(!n||!r){e.scrollback.push({kind:"status",text:"usage: zone <shardId> <zoneName>",level:"warn",ts:Date.now()});return}const s=e.sh3.readZone(n,r);e.scrollback.push({kind:"rich",componentKey:fm,component:um,props:{data:{value:s}},ts:Date.now()})}};var FA=E('<tr><td class="svelte-1ox8vog"> </td><td class="svelte-1ox8vog"> </td></tr>'),BA=E('<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 vm(e,t){ce(t,!0);var n=BA(),r=p(n),s=g(p(r));Se(s,21,()=>Object.entries(t.data.env),([o,i])=>o,(o,i)=>{var l=B(()=>ff(a(i),2));let c=()=>a(l)[0],u=()=>a(l)[1];var d=FA(),f=p(d),v=p(f,!0);h(f);var m=g(f),S=p(m,!0);h(m),h(d),N(()=>{z(v,c()),z(S,u())}),k(o,d)}),h(s),h(r),h(n),k(e,n),ue()}const hm="env-table";fr(hm,vm);const VA={name:"env",summary:"Show the session environment.",async run(e){const t=e.session.env;e.scrollback.push({kind:"rich",componentKey:hm,component:vm,props:{data:{env:t}},ts:Date.now()})}};async function UA(){try{const{TauriStoreBackend:e}=await Wo(async()=>{const{TauriStoreBackend:r}=await import("./tauri-backend-CPdbYLHz.js");return{TauriStoreBackend:r}},__vite__mapDeps([0,1,2])),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:lf}}}async function HA(){try{const{LazyStore:e}=await Wo(async()=>{const{LazyStore:r}=await import("./index-BRw5Wfxx.js");return{LazyStore:r}},__vite__mapDeps([1,2])),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 KA={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 HA(),location.reload()}};function _r(e){if(!e)return null;let t=null,n=e;const r=e.indexOf(":");if(r>0){const i=e.slice(0,r);(i==="@me"||i.startsWith("@project-"))&&(t=i,n=e.slice(r+1))}if(!n)return null;const s=n.indexOf("/");if(s<0)return{scope:t,shardId:n,path:""};const o=n.slice(0,s);return o?{scope:t,shardId:o,path:n.slice(s+1)}:null}function jd(e,t,n){if(e===null)return t;if(e==="@me")return n;if(e.startsWith("@project-"))return e.slice(9);throw new Error(`Unknown scope alias: ${e}`)}const WA={name:"ls",summary:"List documents. Usage: ls | ls <shardId> | ls <shardId>/<prefix>",programmatic:!0,async run(e,t){const n=Date.now();if(!e.docs){e.scrollback.push({kind:"status",text:"ls: document capability not available",level:"error",ts:n});return}const r=await e.docs.listDocuments(),s=t[0];if(!s){const d=new Map;for(const v of r)d.set(v.shardId,(d.get(v.shardId)??0)+1);if(d.size===0){e.scrollback.push({kind:"status",text:"ls: no documents in active scope",level:"info",ts:n});return}const f=[...d.entries()].sort(([v],[m])=>v.localeCompare(m)).map(([v,m])=>` ${v.padEnd(24)} ${m} doc${m!==1?"s":""}`);e.scrollback.push({kind:"text",stream:"stdout",chunks:[f.join(`
19
+ `)+`
20
+ `],ts:n});return}const o=_r(s),i=o?.shardId??s,l=o?.path??"",c=r.filter(d=>d.shardId!==i?!1:l?d.path.startsWith(l):!0);if(c.length===0){e.scrollback.push({kind:"status",text:`ls: no documents in ${s}`,level:"info",ts:n});return}const u=c.sort((d,f)=>d.path.localeCompare(f.path)).map(d=>` ${d.path}`);e.scrollback.push({kind:"text",stream:"stdout",chunks:[u.join(`
21
+ `)+`
22
+ `],ts:n})}},YA={name:"cat",summary:"Print document content. Usage: cat <shardId>/<path>",programmatic:!0,async run(e,t){const n=Date.now();if(!e.docs){e.scrollback.push({kind:"status",text:"cat: document capability not available",level:"error",ts:n});return}if(!t[0]){e.scrollback.push({kind:"status",text:"usage: cat <shardId>/<path>",level:"error",ts:n});return}const r=_r(t[0]);if(!r||!r.path){e.scrollback.push({kind:"status",text:`cat: invalid path '${t[0]}'`,level:"error",ts:n});return}if(!e.docs.readFrom){e.scrollback.push({kind:"status",text:"cat: read permission not granted",level:"error",ts:n});return}const s=await e.docs.readFrom(r.shardId,r.path);if(s===null){e.scrollback.push({kind:"status",text:`cat: not found: ${t[0]}`,level:"error",ts:n});return}const o=s instanceof ArrayBuffer?`<binary ${s.byteLength}b>`:s;e.scrollback.push({kind:"text",stream:"stdout",chunks:[o],ts:n})}},XA={name:"rm",summary:"Delete a document. Usage: rm <shardId>/<path>",programmatic:!0,async run(e,t){const n=Date.now();if(!e.docs){e.scrollback.push({kind:"status",text:"rm: document capability not available",level:"error",ts:n});return}if(!t[0]){e.scrollback.push({kind:"status",text:"usage: rm <shardId>/<path>",level:"error",ts:n});return}if(!e.docs.deleteFrom){e.scrollback.push({kind:"status",text:"rm: write permission not granted",level:"error",ts:n});return}const r=_r(t[0]);if(!r||!r.path){e.scrollback.push({kind:"status",text:`rm: invalid path '${t[0]}'`,level:"error",ts:n});return}await e.docs.deleteFrom(r.shardId,r.path),e.scrollback.push({kind:"status",text:`rm: deleted ${t[0]}`,level:"info",ts:n})}},GA={name:"mkdir",summary:"Create a folder. Usage: mkdir <shardId>/<folder>",programmatic:!0,async run(e,t){const n=Date.now();if(!e.docs){e.scrollback.push({kind:"status",text:"mkdir: document capability not available",level:"error",ts:n});return}if(!t[0]){e.scrollback.push({kind:"status",text:"usage: mkdir <shardId>/<folder>",level:"error",ts:n});return}if(!e.docs.writeTo){e.scrollback.push({kind:"status",text:"mkdir: write permission not granted",level:"error",ts:n});return}const r=_r(t[0]);if(!r||!r.path){e.scrollback.push({kind:"status",text:`mkdir: invalid path '${t[0]}'`,level:"error",ts:n});return}const s=r.path.replace(/\/$/,"")+"/.keep";await e.docs.writeTo(r.shardId,s,""),e.scrollback.push({kind:"status",text:`mkdir: created ${t[0]}`,level:"info",ts:n})}},JA={name:"mv",summary:"Rename a document within a shard. Usage: mv <shardId>/<old> <shardId>/<new>",programmatic:!0,async run(e,t){const n=Date.now();if(!e.docs){e.scrollback.push({kind:"status",text:"mv: document capability not available",level:"error",ts:n});return}if(t.length<2){e.scrollback.push({kind:"status",text:"usage: mv <shardId>/<old> <shardId>/<new>",level:"error",ts:n});return}if(!e.docs.renameFrom){e.scrollback.push({kind:"status",text:"mv: write permission not granted",level:"error",ts:n});return}const r=_r(t[0]),s=_r(t[1]);if(!r?.path||!s?.path){e.scrollback.push({kind:"status",text:"mv: invalid path",level:"error",ts:n});return}if(r.shardId!==s.shardId){e.scrollback.push({kind:"status",text:"mv: src and dst must be in the same shard (use xfer for cross-scope moves)",level:"error",ts:n});return}await e.docs.renameFrom(r.shardId,r.path,s.path),e.scrollback.push({kind:"status",text:`mv: renamed ${t[0]} → ${t[1]}`,level:"info",ts:n})}},ZA={name:"xfer",summary:["Transfer docs across scopes. Usage: xfer [-R] [-C] <src> <dst>"," Scopes: @me | @project-<slug> (e.g. @project-acme:notes/draft.md)"," -R recursive (src is a folder prefix)"," -C copy only, do not delete source"].join(`
23
+ `),programmatic:!0,async run(e,t){const n=Date.now();if(!e.docs){e.scrollback.push({kind:"status",text:"xfer: document capability not available",level:"error",ts:n});return}const r=e.sh3.getActiveScope();if(!r.isProject){e.scrollback.push({kind:"status",text:"xfer: only available when a project scope is active",level:"error",ts:n});return}let s=!1,o=!1;const i=[];for(const I of t){if(I==="-R"){s=!0;continue}if(I==="-C"){o=!0;continue}i.push(I)}if(i.length<2){e.scrollback.push({kind:"status",text:"usage: xfer [-R] [-C] <src> <dst>",level:"error",ts:n});return}if(!e.docs.transferToScope){e.scrollback.push({kind:"status",text:"xfer: write permission not granted",level:"error",ts:n});return}const l=_r(i[0]),c=_r(i[1]);if(!l||!c){e.scrollback.push({kind:"status",text:"xfer: invalid path",level:"error",ts:n});return}let u,d;try{u=jd(l.scope,r.id,r.personalId),d=jd(c.scope,r.id,r.personalId)}catch(I){e.scrollback.push({kind:"status",text:`xfer: ${I.message}`,level:"error",ts:n});return}if(u!==r.id){e.scrollback.push({kind:"status",text:"xfer: source must be the active project scope in v1 — switch to the source scope first",level:"error",ts:n});return}const f={delete:!o,targetShardId:c.shardId};if(!s){if(!l.path){e.scrollback.push({kind:"status",text:"xfer: path required (use -R for folder recursion)",level:"error",ts:n});return}await e.docs.transferToScope(l.shardId,l.path,d,f);const I=o?"copied":"moved";e.scrollback.push({kind:"status",text:`xfer: ${I} ${i[0]} → ${i[1]}`,level:"info",ts:n});return}const v=l.path,S=(await e.docs.listDocuments()).filter(I=>I.shardId===l.shardId&&(!v||I.path.startsWith(v)));if(S.length===0){e.scrollback.push({kind:"status",text:`xfer: no documents found under ${i[0]}`,level:"info",ts:n});return}let y=0;for(const I of S)await e.docs.transferToScope(I.shardId,I.path,d,f),y++;const w=o?"copied":"moved";e.scrollback.push({kind:"status",text:`xfer: ${w} ${y} document${y!==1?"s":""}`,level:"info",ts:n})}};function QA(e){e.registerVerb(hA()),e.registerVerb(pA),e.registerVerb(mA),e.registerVerb(yA),e.registerVerb(xA),e.registerVerb(SA),e.registerVerb(CA),e.registerVerb(RA),e.registerVerb(PA),e.registerVerb(MA),e.registerVerb(LA),e.registerVerb(DA),e.registerVerb(NA),e.registerVerb(qA),e.registerVerb(VA),e.registerVerb(KA),e.registerVerb(WA),e.registerVerb(YA),e.registerVerb(XA),e.registerVerb(GA),e.registerVerb(JA),e.registerVerb(ZA)}const pm={manifest:vC,activate(e){QA(e);const t=pS(e.zones),n=e.state({workspace:{buffers:{}}});pC(n),e.actions.register({id:"shell.terminal.toggle",label:"Open Terminal",scope:["home","app"],defaultShortcut:"²",allowInInputs:!1,run(){bi("shell:terminal")||Ge.open("shell:terminal",{title:"Sh3"})}});const r={mount(s,o){const i=typeof location<"u"&&location.protocol==="https:"?"wss":"ws",l=typeof location<"u"?location.host:"localhost",c=`${i}://${l}/api/shell/session`,d=Dr()?.id??"guest",f=Kt()?"admin":"user",v=at(dA,{target:s,props:{shell:t,wsUrl:c,userId:d,role:f,contributions:e.contributions,docs:e.browse}});return{unmount(){ft(v)},closable:!0}}};e.registerView("shell:terminal",r)},autostart(){},deactivate(){mC()}};var $A=E('<p class="error svelte-1w8uhw5">The source float was closed.</p>'),eT=E('<p class="error svelte-1w8uhw5">No standalone views in this float.</p>'),tT=E('<li class="svelte-1w8uhw5"> <span class="muted svelte-1w8uhw5"> </span></li>'),nT=E('<div class="preview svelte-1w8uhw5"><div class="preview-label svelte-1w8uhw5"> </div> <ul class="preview-list svelte-1w8uhw5"></ul></div>'),rT=E('<div class="layout-save svelte-1w8uhw5"><h2 class="svelte-1w8uhw5">Save layout as…</h2> <label class="row svelte-1w8uhw5"><span class="svelte-1w8uhw5">Name</span> <input type="text" class="name-input svelte-1w8uhw5" placeholder="Layout name"/></label> <!> <div class="actions svelte-1w8uhw5"><button type="button" class="primary svelte-1w8uhw5">Save</button> <button type="button" class="svelte-1w8uhw5">Cancel</button></div></div>');function sT(e,t){ce(t,!0);const n=Oe(()=>Ge.list().find(C=>C.id===t.floatId)?.content??null),r=B(()=>n?Ti(n,t.isStandalone):null),s=B(()=>a(r)?u(a(r)):[]),o=B(()=>n===null),i=B(()=>!a(o)&&a(r)===null);let l=q(he(Oe(()=>t.defaultName)));const c=B(()=>a(l).trim()===""||a(o)||a(i));function u(C){if(C.type==="slot")return C.viewId?[C.viewId]:[];if(C.type==="tabs"){const D=[];for(const P of C.tabs)P.viewId&&D.push(P.viewId);return D}return C.children.flatMap(u)}function d(){a(c)||(t.onConfirm(a(l).trim()),t.close())}var f=rT(),v=g(p(f),2),m=g(p(v),2);De(m),h(v);var S=g(v,2);{var y=C=>{var D=$A();k(C,D)},w=C=>{var D=eT();k(C,D)},I=C=>{var D=nT(),P=p(D),R=p(P);h(P);var A=g(P,2);Se(A,21,()=>a(s),xt,(M,L)=>{var j=tT(),F=p(j),V=g(F),W=p(V);h(V),h(j),N(Q=>{z(F,`${Q??""} `),z(W,`(${a(L)??""})`)},[()=>t.resolveLabel(a(L))]),k(M,j)}),h(A),h(D),N(()=>z(R,`Captured views (${a(s).length??""}):`)),k(C,D)};U(S,C=>{a(o)?C(y):a(i)?C(w,1):C(I,-1)})}var x=g(S,2),_=p(x),T=g(_,2);h(x),h(f),N(()=>_.disabled=a(c)),qe(m,()=>a(l),C=>b(l,C)),K("click",_,d),K("click",T,()=>t.close()),k(e,f),ue()}_e(["click"]);function aT(){const e=Ha();return!e||e.type!=="float-header"?null:e.ref}function mu(e){return wa().some(t=>t.viewId===e)}function oT(e){return wa().find(t=>t.viewId===e)?.label??e}function iT(){return`sl-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function lT(e,t){const n=uE(e,mu);if(n===null)return null;const r={id:iT(),name:t,createdAt:Date.now(),size:n.size,content:n.content};return iE(r),r}function mm(){const e=Ha();return!e||e.type!=="saved-layout"?null:e.ref}function cT(e,t){const n=t.icon===void 0&&t.color===void 0?void 0:{icon:t.icon,color:t.color};jp(e,{name:t.label,appearance:n})}function uT(e){jp(e,{appearance:void 0})}function dT(e){const t=mm();if(!t)return;const n=Yr().find(s=>s.id===t.layoutId);if(!n)return;const r={entityLabel:n.name,initialAppearance:n.appearance,defaultIcon:"eye",requireLabel:!0,onSave:s=>cT(t.layoutId,s),onReset:()=>uT(t.layoutId)};xn.open(Np,r)}function fT(e){lE(e)}function vT(e){const t=mm();if(!t)return;const n=Yr().find(r=>r.id===t.layoutId);n&&xn.open(Bp,{title:`Delete saved layout "${n.name}"?`,body:"This cannot be undone.",confirmLabel:"Delete",confirmTone:"danger",onConfirm:()=>fT(t.layoutId)})}function hT(e){const t=aT();if(!t)return;const n={floatId:t.floatId,isStandalone:mu,resolveLabel:oT,defaultName:`Layout ${Yr().length+1}`,onConfirm:r=>{lT(t.floatId,r)}};xn.open(sT,n)}const bm={manifest:{id:"__layouts__",label:"Saved Layouts",version:qn,views:[]},activate(e){const t=e.state({user:{layouts:[]}});aE(t);const n=(i,l)=>{Yn.notify(i,{level:l})},r={id:"sh3.layout.save",label:"Save layout as…",scope:{element:"float-header"},contextItem:!0,paletteItem:!1,run:hT};e.actions.register(r),e.actions.register({id:"sh3.layout.open",label:"Open saved layout",scope:["home","app"],submenu:!0,paletteItem:!0}),e.actions.register({id:"sh3.layout.customize",label:"Customize…",scope:{element:"saved-layout"},contextItem:!0,group:"appearance",run:dT}),e.actions.register({id:"sh3.layout.delete",label:"Delete",scope:{element:"saved-layout"},contextItem:!0,run:vT});const s=new Map,o=new Map;Ls(()=>{Ne(()=>{const i=Yr(),l=new Set;for(const c of i){l.add(c.id);const u=s.get(c.id);if(u&&o.get(c.id)===c.name)continue;u&&(u(),s.delete(c.id),o.delete(c.id));const d=e.actions.register({id:`sh3.layout.open:${c.id}`,label:c.name,scope:["home","app"],submenuOf:"sh3.layout.open",run:()=>{const f=Yr().find(v=>v.id===c.id);f&&Op(f,mu,n)}});s.set(c.id,d),o.set(c.id,c.name)}for(const c of[...s.keys()])l.has(c)||(s.get(c)(),s.delete(c),o.delete(c))})})},autostart(){},deactivate(){oE()}},gm={manifest:{id:"sh3-store-app",label:"Package Store",version:qn,requiredShards:["sh3-store"],layoutVersion:1,admin:!0},initialLayout:{type:"tabs",activeTab:0,tabs:[{slotId:"store.browse",viewId:"sh3-store:browse",label:"Browse"}]}};var pT=E('<div class="admin-error svelte-4q792t"> </div>'),mT=E('<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>'),bT=E('<p class="admin-muted svelte-4q792t">Loading...</p>'),gT=E('<p class="admin-error svelte-4q792t"> </p>'),yT=E('<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>'),_T=E('<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">Mounts</button> <button type="button" class="admin-btn-secondary svelte-4q792t">Edit</button> <button type="button" class="admin-btn-danger svelte-4q792t">Delete</button></div>',1),wT=E('<li class="admin-user-item svelte-4q792t"><!></li>'),kT=E('<ul class="admin-user-list svelte-4q792t"></ul>'),xT=E('<p class="admin-muted svelte-4q792t">Loading...</p>'),ST=E('<p class="admin-muted svelte-4q792t">No mounts configured. Create mounts first.</p>'),IT=E('<li class="admin-mount-checklist-item svelte-4q792t"><label class="admin-checklist-label svelte-4q792t"><input class="sh3-base-check svelte-4q792t" type="checkbox"/> <span class="admin-status-dot svelte-4q792t"></span> <span> </span> <span class="admin-mount-id svelte-4q792t"> </span></label></li>'),ET=E('<ul class="admin-mount-checklist svelte-4q792t"></ul>'),CT=E('<div class="admin-modal-root svelte-4q792t"><button type="button" class="admin-modal-backdrop svelte-4q792t" aria-label="Close dialog"></button> <div class="admin-modal svelte-4q792t" role="dialog" aria-modal="true" aria-labelledby="mount-modal-title"><h3 id="mount-modal-title" class="svelte-4q792t"> </h3> <!> <div class="admin-modal-actions svelte-4q792t"><button type="button" class="admin-btn svelte-4q792t">Close</button></div></div></div>'),AT=E('<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 TT(e,t){ce(t,!0);let n=q(he([])),r=q(!0),s=q(null),o=q(!1),i=q(""),l=q(""),c=q(""),u=q("user"),d=q(null),f=q(null),v=q(""),m=q("user"),S=q(""),y=q(null),w=q(he([])),I=q(he(new Set)),x=q(!1);async function _(O){b(y,O,!0),b(x,!0);try{const[H,J]=await Promise.all([Ie("/api/admin/mounts"),Ie(`/api/admin/tenants/${O.id}/attachments`)]);b(w,H.ok?await H.json():[],!0);const X=J.ok?await J.json():[];b(I,new Set(X.map(le=>le.mountId)),!0)}catch{}b(x,!1)}async function T(O){if(!a(y))return;const H=a(I).has(O);try{H?(await Ie("/api/admin/mount-attachments",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({mountId:O,tenantId:a(y).id})}),b(I,new Set([...a(I)].filter(J=>J!==O)),!0)):(await Ie("/api/admin/mount-attachments",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({mountId:O,tenantId:a(y).id})}),b(I,new Set([...a(I),O]),!0))}catch{}}async function C(){b(r,!0),b(s,null);try{const O=await Ie("/api/admin/users");if(!O.ok)throw new Error("Failed to fetch users");b(n,await O.json(),!0)}catch(O){b(s,O instanceof Error?O.message:"Failed to load users",!0)}finally{b(r,!1)}}async function D(){b(d,null);try{const O=await Ie("/api/admin/users",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:a(i),displayName:a(l)||a(i),password:a(c),role:a(u)})});if(!O.ok){const H=await O.json().catch(()=>({}));b(d,H.error||"Failed to create user",!0);return}b(i,""),b(l,""),b(c,""),b(u,"user"),b(o,!1),await C()}catch{b(d,"Network error")}}function P(O){b(f,O.id,!0),b(v,O.displayName,!0),b(m,O.role,!0),b(S,"")}async function R(){if(!a(f))return;const O={displayName:a(v),role:a(m)};a(S).trim()&&(O.password=a(S));try{if(!(await Ie(`/api/admin/users/${a(f)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(O)})).ok)return;b(f,null),await C()}catch{}}async function A(O){try{await Ie(`/api/admin/users/${O}`,{method:"DELETE"}),await C()}catch{}}C();var M=AT();Ke("keydown",ia,O=>{O.key==="Escape"&&a(y)&&b(y,null)});var L=p(M),j=g(p(L),2),F=p(j,!0);h(j),h(L);var V=g(L,2);{var W=O=>{var H=mT(),J=p(H);De(J);var X=g(J,2);De(X);var le=g(X,2);De(le);var me=g(le,2),se=p(me);se.value=se.__value="user";var de=g(se);de.value=de.__value="admin",h(me);var ye=g(me,2),Ee=g(ye,2);{var Le=oe=>{var be=pT(),Ae=p(be,!0);h(be),N(()=>z(Ae,a(d))),k(oe,be)};U(Ee,oe=>{a(d)&&oe(Le)})}h(H),N(oe=>ye.disabled=oe,[()=>!a(i).trim()||!a(c).trim()]),Ke("submit",H,oe=>{oe.preventDefault(),D()}),qe(J,()=>a(i),oe=>b(i,oe)),qe(X,()=>a(l),oe=>b(l,oe)),qe(le,()=>a(c),oe=>b(c,oe)),ua(me,()=>a(u),oe=>b(u,oe)),k(O,H)};U(V,O=>{a(o)&&O(W)})}var Q=g(V,2);{var G=O=>{var H=bT();k(O,H)},$=O=>{var H=gT(),J=p(H,!0);h(H),N(()=>z(J,a(s))),k(O,H)},ae=O=>{var H=kT();Se(H,21,()=>a(n),J=>J.id,(J,X)=>{var le=wT(),me=p(le);{var se=ye=>{var Ee=yT(),Le=p(Ee);De(Le);var oe=g(Le,2);De(oe);var be=g(oe,2),Ae=p(be);Ae.value=Ae.__value="user";var ne=g(Ae);ne.value=ne.__value="admin",h(be);var re=g(be,2),ge=g(p(re),2);h(re),h(Ee),Ke("submit",Ee,we=>{we.preventDefault(),R()}),qe(Le,()=>a(v),we=>b(v,we)),qe(oe,()=>a(S),we=>b(S,we)),ua(be,()=>a(m),we=>b(m,we)),K("click",ge,()=>{b(f,null)}),k(ye,Ee)},de=ye=>{var Ee=_T(),Le=ke(Ee),oe=p(Le),be=p(oe,!0);h(oe);var Ae=g(oe,2),ne=p(Ae);h(Ae),h(Le);var re=g(Le,2),ge=p(re),we=g(ge,2),pe=g(we,2);h(re),N(()=>{z(be,a(X).displayName),z(ne,`${a(X).username??""} · ${a(X).role??""}`)}),K("click",ge,()=>_(a(X))),K("click",we,()=>P(a(X))),K("click",pe,()=>A(a(X).id)),k(ye,Ee)};U(me,ye=>{a(f)===a(X).id?ye(se):ye(de,-1)})}h(le),k(J,le)}),h(H),k(O,H)};U(Q,O=>{a(r)?O(G):a(s)?O($,1):O(ae,-1)})}var Y=g(Q,2);{var Z=O=>{var H=CT(),J=p(H),X=g(J,2),le=p(X),me=p(le);h(le);var se=g(le,2);{var de=be=>{var Ae=xT();k(be,Ae)},ye=be=>{var Ae=ST();k(be,Ae)},Ee=be=>{var Ae=ET();Se(Ae,21,()=>a(w),ne=>ne.id,(ne,re)=>{var ge=IT(),we=p(ge),pe=p(we);De(pe);var ze=g(pe,2),ee=g(ze,2),fe=p(ee,!0);h(ee);var Ce=g(ee,2),Te=p(Ce,!0);h(Ce),h(we),h(ge),N(Fe=>{za(pe,Fe),tt(ze,`background: ${a(re).status==="resolved"?"#4caf50":a(re).status==="unresolved"?"#ff9800":"#f44336"}`),z(fe,a(re).label||a(re).id),z(Te,a(re).id)},[()=>a(I).has(a(re).id)]),K("change",pe,()=>T(a(re).id)),k(ne,ge)}),h(Ae),k(be,Ae)};U(se,be=>{a(x)?be(de):a(w).length===0?be(ye,1):be(Ee,-1)})}var Le=g(se,2),oe=p(Le);h(Le),h(X),h(H),N(()=>z(me,`Mount Attachments for ${a(y).displayName??""}`)),K("click",J,()=>{b(y,null)}),K("click",oe,()=>{b(y,null)}),k(O,H)};U(Y,O=>{a(y)&&O(Z)})}h(M),N(()=>z(F,a(o)?"Cancel":"New user")),K("click",j,()=>{b(o,!a(o))}),k(e,M),ue()}_e(["click","change"]);var RT=E('<p class="admin-muted svelte-1hsgdb4">Loading...</p>'),PT=E('<div class="admin-error svelte-1hsgdb4"> </div>'),LT=E('<div class="admin-auth-fields svelte-1hsgdb4"><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),DT=E('<div class="admin-auth svelte-1hsgdb4"><h2 class="svelte-1hsgdb4">Auth Settings</h2> <!></div>');function MT(e,t){ce(t,!0);let n=q(null),r=q(!0),s=q(!1),o=q(null);async function i(){b(r,!0);try{const v=await Ie("/api/admin/settings");if(!v.ok)throw new Error("Failed to fetch settings");b(n,await v.json(),!0)}catch(v){b(o,v instanceof Error?v.message:"Failed to load settings",!0)}finally{b(r,!1)}}async function l(){if(a(n)){b(s,!0),b(o,null);try{const v=await Ie("/api/admin/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a(n))});if(!v.ok)throw new Error("Failed to save settings");b(n,await v.json(),!0)}catch(v){b(o,v instanceof Error?v.message:"Failed to save",!0)}finally{b(s,!1)}}}i();var c=DT(),u=g(p(c),2);{var d=v=>{var m=RT();k(v,m)},f=v=>{var m=LT(),S=ke(m),y=p(S),w=p(y);De(w),Wt(4),h(y);var I=g(y,2),x=p(I);De(x),Wt(4),h(I);var _=g(I,2),T=g(p(_),2);De(T),h(_);var C=g(_,2),D=p(C,!0);h(C),h(S);var P=g(S,2);{var R=A=>{var M=PT(),L=p(M,!0);h(M),N(()=>z(L,a(o))),k(A,M)};U(P,A=>{a(o)&&A(R)})}N(()=>{C.disabled=a(s),z(D,a(s)?"Saving...":"Save")}),So(w,()=>a(n).auth.guestAllowed,A=>a(n).auth.guestAllowed=A),So(x,()=>a(n).auth.selfRegistration,A=>a(n).auth.selfRegistration=A),qe(T,()=>a(n).auth.sessionTTL,A=>a(n).auth.sessionTTL=A),K("click",C,l),k(v,m)};U(u,v=>{a(r)?v(d):a(n)&&v(f,1)})}h(c),k(e,c),ue()}_e(["click"]);var jT=E('<button type="button"> </button>'),zT=E('<div class="admin-error svelte-1gkiloq"> </div>'),OT=E('<div class="admin-error svelte-1gkiloq"> </div>'),NT=E(`<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>.
24
+ Set to <strong>0</strong> during development so drop-in bundle replacements take effect on F5.
25
+ 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 qT(e,t){ce(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=q("..."),s=q(!1),o=q(null),i=q(31536e3),l=q(31536e3),c=q(!1),u=q(null);const d=B(()=>a(i)!==a(l)),f=B(()=>v(a(i)));function v(X){return X===0?"0 seconds (off — browsers never cache)":X<60?`${X} seconds`:X<3600?`${Math.round(X/60)} minutes`:X<86400?`${Math.round(X/3600)} hours`:X<31536e3?`${Math.round(X/86400)} days`:`${Math.round(X/31536e3)} years`}async function m(){try{const X=await Ie("/api/version");if(X.ok){const le=await X.json();b(r,le.version,!0)}}catch{}}async function S(){try{const X=await Ie("/api/admin/settings");if(X.ok){const me=(await X.json()).packages?.cacheMaxAge??31536e3;b(i,me,!0),b(l,me,!0)}}catch{}}async function y(){b(c,!0),b(u,null);try{const X=await Ie("/api/admin/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({packages:{cacheMaxAge:a(i)}})});if(X.ok){const le=await X.json();b(l,le.packages?.cacheMaxAge??a(i),!0),b(i,a(l),!0)}else{const le=await X.json().catch(()=>({}));b(u,le.error||"Save failed",!0)}}catch{b(u,"Network error")}finally{b(c,!1)}}async function w(){b(s,!0),b(o,null);try{const X=await Ie("/api/admin/restart",{method:"POST"});if(!X.ok){const le=await X.json().catch(()=>({}));b(o,le.error||"Restart failed",!0),b(s,!1)}}catch{b(o,"Network error"),b(s,!1)}}m(),S();var I=NT(),x=g(p(I),2),_=p(x),T=g(p(_),2),C=p(T,!0);h(T),h(_),h(x);var D=g(x,2),P=g(p(D),4);De(P);var R=g(P,2),A=p(R),M=p(A,!0);h(A);var L=g(A);h(R);var j=g(R,2);Se(j,21,()=>n,X=>X.value,(X,le)=>{var me=jT();let se;var de=p(me,!0);h(me),N(()=>{se=xe(me,1,"admin-snap svelte-1gkiloq",null,se,{active:a(i)===a(le).value}),me.disabled=a(c),z(de,a(le).label)}),K("click",me,()=>b(i,a(le).value,!0)),k(X,me)}),h(j);var F=g(j,2),V=p(F),W=p(V,!0);h(V);var Q=g(V,2),G=g(Q,2);{var $=X=>{var le=zT(),me=p(le,!0);h(le),N(()=>z(me,a(u))),k(X,le)};U(G,X=>{a(u)&&X($)})}h(F),h(D);var ae=g(D,2),Y=g(p(ae),2),Z=p(Y),O=p(Z,!0);h(Z);var H=g(Z,2);{var J=X=>{var le=OT(),me=p(le,!0);h(le),N(()=>z(me,a(o))),k(X,le)};U(H,X=>{a(o)&&X(J)})}h(Y),h(ae),h(I),N(()=>{z(C,a(r)),P.disabled=a(c),z(M,a(i)),z(L,` — ${a(f)??""}`),V.disabled=!a(d)||a(c),z(W,a(c)?"Saving...":"Save"),Q.disabled=!a(d)||a(c),Z.disabled=a(s),z(O,a(s)?"Restarting...":"Restart server")}),qe(P,()=>a(i),X=>b(i,X)),K("click",V,y),K("click",Q,()=>b(i,a(l),!0)),K("click",Z,w),k(e,I),ue()}_e(["click"]);var FT=E(`<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>`),BT=E('<div class="admin-error svelte-1afg5z5"> </div>'),VT=E('<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>'),UT=E('<p class="admin-muted svelte-1afg5z5">Loading...</p>'),HT=E('<p class="admin-error svelte-1afg5z5"> </p>'),KT=E('<p class="admin-muted svelte-1afg5z5">No API keys. Create one to enable external access.</p>'),WT=E('<button type="button" class="admin-btn-danger svelte-1afg5z5">Confirm</button> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Cancel</button>',1),YT=E('<button type="button" class="admin-btn-danger svelte-1afg5z5">Revoke</button>'),XT=E('<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>'),GT=E('<ul class="admin-key-list svelte-1afg5z5"></ul>'),JT=E('<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 ZT(e,t){ce(t,!0);let n=q(he([])),r=q(!0),s=q(null),o=q(!1),i=q(""),l=q(null),c=q(null),u=q(null);async function d(){b(r,!0),b(s,null);try{const L=await Ie(`${gt()}/api/admin/keys`);if(!L.ok)throw new Error("Failed to fetch keys");b(n,await L.json(),!0)}catch(L){b(s,L instanceof Error?L.message:"Failed to load keys",!0)}finally{b(r,!1)}}async function f(){b(l,null);try{const L=await Ie(`${gt()}/api/admin/keys`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({label:a(i)})});if(!L.ok){const F=await L.json().catch(()=>({}));b(l,F.error||"Failed to create key",!0);return}const j=await L.json();b(c,{id:j.id,key:j.key},!0),b(i,""),b(o,!1),await d()}catch{b(l,"Network error")}}async function v(L){b(u,null);try{await Ie(`${gt()}/api/admin/keys/${L}`,{method:"DELETE"}),a(c)?.id===L&&b(c,null),await d()}catch{}}function m(L){return new Date(L).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}d();var S=JT(),y=p(S),w=g(p(y),2),I=p(w,!0);h(w),h(y);var x=g(y,2);{var _=L=>{var j=FT(),F=g(p(j),2),V=p(F,!0);h(F);var W=g(F,2);h(j),N(()=>z(V,a(c).key)),K("click",W,()=>{b(c,null)}),k(L,j)};U(x,L=>{a(c)&&L(_)})}var T=g(x,2);{var C=L=>{var j=VT(),F=p(j);De(F);var V=g(F,2),W=g(V,2);{var Q=G=>{var $=BT(),ae=p($,!0);h($),N(()=>z(ae,a(l))),k(G,$)};U(W,G=>{a(l)&&G(Q)})}h(j),N(G=>V.disabled=G,[()=>!a(i).trim()]),Ke("submit",j,G=>{G.preventDefault(),f()}),qe(F,()=>a(i),G=>b(i,G)),k(L,j)};U(T,L=>{a(o)&&L(C)})}var D=g(T,2);{var P=L=>{var j=UT();k(L,j)},R=L=>{var j=HT(),F=p(j,!0);h(j),N(()=>z(F,a(s))),k(L,j)},A=L=>{var j=KT();k(L,j)},M=L=>{var j=GT();Se(j,21,()=>a(n),F=>F.id,(F,V)=>{var W=XT(),Q=p(W),G=p(Q),$=p(G,!0);h(G);var ae=g(G,2),Y=p(ae);h(ae),h(Q);var Z=g(Q,2),O=p(Z);{var H=X=>{var le=WT(),me=ke(le),se=g(me,2);K("click",me,()=>v(a(V).id)),K("click",se,()=>{b(u,null)}),k(X,le)},J=X=>{var le=YT();K("click",le,()=>{b(u,a(V).id,!0)}),k(X,le)};U(O,X=>{a(u)===a(V).id?X(H):X(J,-1)})}h(Z),h(W),N(X=>{z($,a(V).label),z(Y,`${a(V).id??""} · ${X??""}`)},[()=>m(a(V).createdAt)]),k(F,W)}),h(j),k(L,j)};U(D,L=>{a(r)?L(P):a(s)?L(R,1):a(n).length===0?L(A,2):L(M,-1)})}h(S),N(()=>z(I,a(o)?"Cancel":"New key")),K("click",w,()=>{b(o,!a(o))}),k(e,S),ue()}_e(["click"]);var QT=E('<div class="admin-warning svelte-1h1ud6x"> </div>'),$T=E('<div class="admin-error svelte-1h1ud6x"> </div>'),eR=E('<form class="admin-create-form svelte-1h1ud6x"><input class="admin-input svelte-1h1ud6x" type="text" placeholder="Mount ID (slug, e.g. game-assets)"/> <input class="admin-input svelte-1h1ud6x" type="text" placeholder="Label (optional)"/> <input class="admin-input svelte-1h1ud6x" type="text" placeholder="Absolute path on server"/> <button type="submit" class="admin-btn svelte-1h1ud6x">Create</button> <!> <!></form>'),tR=E('<p class="admin-muted svelte-1h1ud6x">Loading...</p>'),nR=E('<p class="admin-error svelte-1h1ud6x"> </p>'),rR=E('<form class="admin-edit-form svelte-1h1ud6x"><input class="admin-input svelte-1h1ud6x" type="text" placeholder="Label"/> <input class="admin-input svelte-1h1ud6x" type="text" placeholder="Path"/> <div class="admin-edit-actions svelte-1h1ud6x"><button type="submit" class="admin-btn svelte-1h1ud6x">Save</button> <button type="button" class="admin-btn-secondary svelte-1h1ud6x">Cancel</button></div></form>'),sR=E('<div class="admin-mount-info svelte-1h1ud6x"><div class="admin-mount-top svelte-1h1ud6x"><span class="admin-status-dot svelte-1h1ud6x"></span> <span class="admin-mount-name svelte-1h1ud6x"> </span> <span class="admin-mount-id svelte-1h1ud6x"> </span></div> <span class="admin-mount-path svelte-1h1ud6x"> </span> <span class="admin-mount-meta svelte-1h1ud6x"> </span></div> <div class="admin-mount-actions svelte-1h1ud6x"><button type="button" class="admin-btn-secondary svelte-1h1ud6x"> </button> <button type="button" class="admin-btn-secondary svelte-1h1ud6x">Edit</button> <button type="button" class="admin-btn-danger svelte-1h1ud6x">Delete</button></div>',1),aR=E('<p class="admin-error svelte-1h1ud6x"> </p>'),oR=E('<p class="admin-muted svelte-1h1ud6x">Empty directory</p>'),iR=E('<span class="admin-browse-size svelte-1h1ud6x"> </span>'),lR=E('<li class="admin-browse-item svelte-1h1ud6x"><span class="admin-browse-kind svelte-1h1ud6x"> </span> <span> </span> <!></li>'),cR=E('<ul class="admin-browse-list svelte-1h1ud6x"></ul>'),uR=E('<div class="admin-mount-browse svelte-1h1ud6x"><!></div>'),dR=E('<li class="admin-mount-item svelte-1h1ud6x"><div class="admin-mount-main svelte-1h1ud6x"><!></div> <!></li>'),fR=E('<ul class="admin-mount-list svelte-1h1ud6x"></ul>'),vR=E('<div class="admin-modal-root svelte-1h1ud6x"><button type="button" class="admin-modal-backdrop svelte-1h1ud6x" aria-label="Close dialog"></button> <div class="admin-modal svelte-1h1ud6x" role="dialog" aria-modal="true" aria-labelledby="delete-mount-title"><h3 id="delete-mount-title" class="svelte-1h1ud6x">Delete Mount</h3> <p class="svelte-1h1ud6x">This will remove the mount and all its tenant attachments. This cannot be undone.</p> <div class="admin-modal-actions svelte-1h1ud6x"><button type="button" class="admin-btn-danger svelte-1h1ud6x">Delete</button> <button type="button" class="admin-btn-secondary svelte-1h1ud6x">Cancel</button></div></div></div>'),hR=E('<div class="admin-mounts svelte-1h1ud6x"><div class="admin-section-header svelte-1h1ud6x"><h2 class="svelte-1h1ud6x">Mounts</h2> <button type="button" class="admin-btn svelte-1h1ud6x"> </button></div> <!> <!> <!></div>');function pR(e,t){ce(t,!0);let n=q(he([])),r=q(!0),s=q(null),o=q(!1),i=q(""),l=q(""),c=q(""),u=q(null),d=q(null),f=q(null),v=q(""),m=q(""),S=q(null),y=q(he([])),w=q(null),I=q(null);async function x(){b(r,!0),b(s,null);try{const Z=await Ie("/api/admin/mounts");if(!Z.ok)throw new Error("Failed to fetch mounts");b(n,await Z.json(),!0)}catch(Z){b(s,Z instanceof Error?Z.message:"Failed to load mounts",!0)}finally{b(r,!1)}}async function _(){b(u,null),b(d,null);try{const Z=await Ie("/api/admin/mounts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:a(i),label:a(l)||void 0,path:a(c)})}),O=await Z.json();if(!Z.ok){b(u,O.error||"Failed to create mount",!0);return}O.warning&&b(d,O.warning,!0),b(i,""),b(l,""),b(c,""),b(o,!1),b(d,null),await x()}catch{b(u,"Network error")}}function T(Z){b(f,Z.id,!0),b(v,Z.label||"",!0),b(m,Z.path,!0)}async function C(){if(a(f))try{if(!(await Ie(`/api/admin/mounts/${a(f)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({label:a(v)||void 0,path:a(m)})})).ok)return;b(f,null),await x()}catch{}}async function D(Z){try{await Ie(`/api/admin/mounts/${Z}`,{method:"DELETE"}),b(I,null),await x()}catch{}}async function P(Z){if(a(S)===Z){b(S,null);return}b(S,Z,!0),b(w,null),b(y,[],!0);try{const O=await Ie(`/api/admin/mounts/${Z}/browse`);if(!O.ok){const H=await O.json().catch(()=>({}));b(w,H.error||"Failed to browse",!0);return}b(y,await O.json(),!0)}catch{b(w,"Network error")}}function R(Z){return Z==="resolved"?"#4caf50":Z==="unresolved"?"#ff9800":"#f44336"}x();var A=hR();Ke("keydown",ia,Z=>{Z.key==="Escape"&&a(I)&&b(I,null)});var M=p(A),L=g(p(M),2),j=p(L,!0);h(L),h(M);var F=g(M,2);{var V=Z=>{var O=eR(),H=p(O);De(H);var J=g(H,2);De(J);var X=g(J,2);De(X);var le=g(X,2),me=g(le,2);{var se=Ee=>{var Le=QT(),oe=p(Le,!0);h(Le),N(()=>z(oe,a(d))),k(Ee,Le)};U(me,Ee=>{a(d)&&Ee(se)})}var de=g(me,2);{var ye=Ee=>{var Le=$T(),oe=p(Le,!0);h(Le),N(()=>z(oe,a(u))),k(Ee,Le)};U(de,Ee=>{a(u)&&Ee(ye)})}h(O),N(Ee=>le.disabled=Ee,[()=>!a(i).trim()||!a(c).trim()]),Ke("submit",O,Ee=>{Ee.preventDefault(),_()}),qe(H,()=>a(i),Ee=>b(i,Ee)),qe(J,()=>a(l),Ee=>b(l,Ee)),qe(X,()=>a(c),Ee=>b(c,Ee)),k(Z,O)};U(F,Z=>{a(o)&&Z(V)})}var W=g(F,2);{var Q=Z=>{var O=tR();k(Z,O)},G=Z=>{var O=nR(),H=p(O,!0);h(O),N(()=>z(H,a(s))),k(Z,O)},$=Z=>{var O=fR();Se(O,21,()=>a(n),H=>H.id,(H,J)=>{var X=dR(),le=p(X),me=p(le);{var se=Le=>{var oe=rR(),be=p(oe);De(be);var Ae=g(be,2);De(Ae);var ne=g(Ae,2),re=g(p(ne),2);h(ne),h(oe),Ke("submit",oe,ge=>{ge.preventDefault(),C()}),qe(be,()=>a(v),ge=>b(v,ge)),qe(Ae,()=>a(m),ge=>b(m,ge)),K("click",re,()=>{b(f,null)}),k(Le,oe)},de=Le=>{var oe=sR(),be=ke(oe),Ae=p(be),ne=p(Ae),re=g(ne,2),ge=p(re,!0);h(re);var we=g(re,2),pe=p(we,!0);h(we),h(Ae);var ze=g(Ae,2),ee=p(ze,!0);h(ze);var fe=g(ze,2),Ce=p(fe);h(fe),h(be);var Te=g(be,2),Fe=p(Te),He=p(Fe,!0);h(Fe);var Ye=g(Fe,2),Xe=g(Ye,2);h(Te),N(Me=>{tt(ne,`background: ${Me??""}`),ie(ne,"title",a(J).status),z(ge,a(J).label||a(J).id),z(pe,a(J).id),ie(ze,"title",a(J).path),z(ee,a(J).path),z(Ce,`${a(J).attachmentCount??""} tenant(s) attached`),z(He,a(S)===a(J).id?"Close":"Browse")},[()=>R(a(J).status)]),K("click",Fe,()=>P(a(J).id)),K("click",Ye,()=>T(a(J))),K("click",Xe,()=>{b(I,a(J).id,!0)}),k(Le,oe)};U(me,Le=>{a(f)===a(J).id?Le(se):Le(de,-1)})}h(le);var ye=g(le,2);{var Ee=Le=>{var oe=uR(),be=p(oe);{var Ae=ge=>{var we=aR(),pe=p(we,!0);h(we),N(()=>z(pe,a(w))),k(ge,we)},ne=ge=>{var we=oR();k(ge,we)},re=ge=>{var we=cR();Se(we,21,()=>a(y),pe=>pe.name,(pe,ze)=>{var ee=lR(),fe=p(ee),Ce=p(fe,!0);h(fe);var Te=g(fe,2),Fe=p(Te,!0);h(Te);var He=g(Te,2);{var Ye=Xe=>{var Me=iR(),Ue=p(Me);h(Me),N(()=>z(Ue,`${a(ze).size??""} B`)),k(Xe,Me)};U(He,Xe=>{a(ze).size!==void 0&&Xe(Ye)})}h(ee),N(()=>{z(Ce,a(ze).kind==="directory"?"[_]":"[ ]"),z(Fe,a(ze).name)}),k(pe,ee)}),h(we),k(ge,we)};U(be,ge=>{a(w)?ge(Ae):a(y).length===0?ge(ne,1):ge(re,-1)})}h(oe),k(Le,oe)};U(ye,Le=>{a(S)===a(J).id&&Le(Ee)})}h(X),k(H,X)}),h(O),k(Z,O)};U(W,Z=>{a(r)?Z(Q):a(s)?Z(G,1):Z($,-1)})}var ae=g(W,2);{var Y=Z=>{var O=vR(),H=p(O),J=g(H,2),X=g(p(J),4),le=p(X),me=g(le,2);h(X),h(J),h(O),K("click",H,()=>{b(I,null)}),K("click",le,()=>D(a(I))),K("click",me,()=>{b(I,null)}),k(Z,O)};U(ae,Z=>{a(I)&&Z(Y)})}h(A),N(()=>z(j,a(o)?"Cancel":"New mount")),K("click",L,()=>{b(o,!a(o))}),k(e,A),ue()}_e(["click"]);const ym={manifest:{id:"sh3-admin",label:"Admin",version:qn,permissions:["documents:mount"],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"},{id:"sh3-admin:mounts",label:"Mounts"}]},activate(e){const t={mount(i,l){const c=at(TT,{target:i});return{unmount(){ft(c)}}}},n={mount(i,l){const c=at(MT,{target:i});return{unmount(){ft(c)}}}},r={mount(i,l){const c=at(qT,{target:i});return{unmount(){ft(c)}}}},s={mount(i,l){const c=at(ZT,{target:i});return{unmount(){ft(c)}}}},o={mount(i,l){const c=at(pR,{target:i});return{unmount(){ft(c)}}}};e.registerView("sh3-admin:users",t),e.registerView("sh3-admin:auth",n),e.registerView("sh3-admin:system",r),e.registerView("sh3-admin:keys",s),e.registerView("sh3-admin:mounts",o)}},_m={manifest:{id:"sh3-admin-app",label:"Admin",version:qn,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"},{slotId:"admin.mounts",viewId:"sh3-admin:mounts",label:"Mounts"}]}},zd="sh3:migrations:shell-rename:done",Od="__shell__:",mR="__sh3core__:",Nd="sh3:user:__shell__:theme",qd="sh3:user:__sh3core__:theme";function bR(e,t){if(t.getItem(zd))return;const n=t.getItem(Nd);n!==null&&t.getItem(qd)===null&&(t.setItem(qd,n),t.removeItem(Nd));for(const r of e.keys()){if(!r.startsWith(Od))continue;const s=mR+r.slice(Od.length),o=e.read(r);e.write(s,o),e.delete(r)}t.setItem(zd,"1")}const Fd="sh3:migrations:mode-id-rename:done",gR="sh3.shell.lastMode.",Bd={dev:"bash",user:"sh3"};function yR(e){if(typeof e._keys=="function")return e._keys();const t=e;if(typeof t.length=="number"&&typeof t.key=="function"){const n=[];for(let r=0;r<t.length;r++){const s=t.key(r);s!==null&&n.push(s)}return n}return[]}function _R(e){if(!e.getItem(Fd)){for(const t of yR(e)){if(!t.startsWith(gR))continue;const n=e.getItem(t);n&&Object.prototype.hasOwnProperty.call(Bd,n)&&e.setItem(t,Bd[n])}e.setItem(Fd,"1")}}let Vd=!1,Ud=null;function wR(){Vd||(Vd=!0,Ud=e=>{const t=e.state?.sh3;t==="anchor"?(Lw(),history.forward()):t==="forward-bumper"&&(Dw(),history.back())},window.addEventListener("popstate",Ud),history.replaceState({sh3:"anchor"},""),history.pushState({sh3:"main"},""),history.pushState({sh3:"forward-bumper"},""),history.back())}function Hd(e){xi(e)}function kR(){const e=On.workspace;return{keys:()=>e.list(),read:t=>e.read(t),write:(t,n)=>e.write(t,n),delete:t=>e.delete(t)}}async function xR(e){if(typeof globalThis.localStorage<"u"){bR(kR(),globalThis.localStorage),_R(globalThis.localStorage);const{migrateLegacyWorkspaceKeys:o}=await Wo(async()=>{const{migrateLegacyWorkspaceKeys:i}=await import("./workspace-rekey-DRgvbNY-.js");return{migrateLegacyWorkspaceKeys:i}},[]);o(Ka())}const t=new Set(e?.excludeShards),n=[Xp,pm,Yp,ym,hp,Fp,bm];for(const o of n)t.has(o.manifest.id)||xi(o);const r=[gm,_m];for(const o of r)va(o);await Kp();for(const[o,i]of kn)if(i.autostart){Rh(o);try{await qo(o,{phase:"autostart"})}catch{}}const s=W0();if(s&&yr.has(s))try{await lr(s)}catch(o){console.error(`[sh3] Auto-launch of "${s}" failed:`,o),Y0()}Rw({returnToHome:Ns,launchApp:lr}),typeof window<"u"&&typeof history<"u"&&wR()}async function SR(e){const t=[Xp,pm,Yp,ym,hp,Fp,bm];for(const s of t)xi(s);const n=[gm,_m];for(const s of n)va(s);await Kp();const r=new Set;for(const[s,o]of kn)if(o.autostart){Rh(s);try{await qo(s,{phase:"autostart"}),r.add(s)}catch{}}for(const s of e.activateShardIds)if(!r.has(s))if(kn.has(s))try{await qo(s,{phase:"satellite"})}catch(o){console.error(`[sh3] satellite activation of "${s}" failed:`,o)}else console.warn(`[sh3] satellite requested shard "${s}" but it is not registered`)}var IR=E('<div aria-hidden="true"></div>'),ER=E('<button type="button" aria-label="Expand pane"><span class="collapse-icon"> </span></button>'),CR=E('<button type="button" aria-label="Collapse pane"><span class="collapse-icon"> </span></button>'),AR=E('<!> <div class="pane-content svelte-1adl4o1"><!></div>',1),TR=E('<div role="separator"></div>'),RR=E("<div><!></div> <!>",1),PR=E("<div></div>");function LR(e,t){ce(t,!0);const n=40,r=28;let s=te(t,"compact",3,!1),o;const i=C=>t.pinned?.[C]??"fr",l=C=>t.collapsed?.[C]??!1,c=C=>t.fixed?.[C]??!1,u=C=>c(C)||c(C+1);function d(C){if(c(C))return!1;const D=C>0?!c(C-1):!1,P=C<t.count-1?!c(C+1):!1;return D||P}function f(C){return l(C)?`0 0 ${r}px`:i(C)==="px"?`0 0 ${Math.max(n,t.sizes[C])}px`:`${Math.max(1e-4,t.sizes[C])} 1 0`}let v=q(null),m=null;function S(C,D){if(s()||l(D)||l(D+1)||u(D))return;const P=o?Tc(o):0;if(!qa(C.pointerId,{ownerId:"sh3:splitter",axis:"xy",priority:"normal",depth:P}))return;m=C.pointerId,C.preventDefault(),document.addEventListener("pointermove",y),document.addEventListener("pointerup",I),document.addEventListener("pointercancel",x);const A=o.getBoundingClientRect(),M=t.direction==="horizontal"?A.width:A.height;let L=0,j=0;for(let F=0;F<t.sizes.length;F++)i(F)==="fr"?L+=t.sizes[F]:j+=Math.max(n,t.sizes[F]);b(v,{handleIndex:D,startClient:t.direction==="horizontal"?C.clientX:C.clientY,startSizes:t.sizes.slice(),containerPx:M,totalFr:L,frAvailPx:Math.max(1,M-j)},!0)}function y(C){if(!a(v)||C.pointerId!==m)return;const P=(t.direction==="horizontal"?C.clientX:C.clientY)-a(v).startClient,R=a(v).handleIndex,A=R+1,M=i(R),L=i(A),j=a(v).totalFr/a(v).frAvailPx;if(M==="fr"&&L==="fr"){const F=n*j,V=P*j,W=a(v).startSizes[A]-F,Q=-(a(v).startSizes[R]-F),G=Math.min(Math.max(V,Q),W);t.onResize?.(R,a(v).startSizes[R]+G),t.onResize?.(A,a(v).startSizes[A]-G)}else if(M==="px"&&L==="fr"){const F=a(v).frAvailPx-n,V=n-a(v).startSizes[R];t.onResize?.(R,a(v).startSizes[R]+Math.min(Math.max(P,V),F))}else if(M==="fr"&&L==="px"){const F=a(v).startSizes[A]-n,V=-(a(v).frAvailPx-n);t.onResize?.(A,a(v).startSizes[A]-Math.min(Math.max(P,V),F))}else{const F=a(v).startSizes[A]-n,V=-(a(v).startSizes[R]-n),W=Math.min(Math.max(P,V),F);t.onResize?.(R,a(v).startSizes[R]+W),t.onResize?.(A,a(v).startSizes[A]-W)}}function w(){m!==null&&(Kr(m,"sh3:splitter"),m=null),b(v,null),document.removeEventListener("pointermove",y),document.removeEventListener("pointerup",I),document.removeEventListener("pointercancel",x)}function I(C){a(v)&&C.pointerId===m&&w()}function x(C){if(a(v)){if(C.pointerId!==m){tr("splitter:cancel-other-id",C,{activeDragPointerId:m});return}tr("splitter:cancel-our-id",C,{activeDragPointerId:m}),w()}}Ne(()=>()=>{a(v)&&w()});var _=PR();let T;Se(_,21,()=>Array(t.count),xt,(C,D,P)=>{var R=RR(),A=ke(R);let M;var L=p(A);{var j=G=>{var $=Ze(),ae=ke($);{var Y=O=>{var H=IR();let J;N(()=>J=xe(H,1,"collapse-header inert svelte-1adl4o1",null,J,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"})),k(O,H)},Z=O=>{var H=ER();let J;var X=p(H),le=p(X,!0);h(X),h(H),N(()=>{J=xe(H,1,"collapse-header svelte-1adl4o1",null,J,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),z(le,t.direction==="horizontal"?"▸":"▾")}),K("click",H,()=>t.onCollapseToggle?.(P,!1)),k(O,H)};U(ae,O=>{s()?O(Y):O(Z,-1)})}k(G,$)},F=B(()=>l(P)),V=G=>{var $=AR(),ae=ke($);{var Y=J=>{var X=CR();let le;ie(X,"data-testid",`collapse-toggle-${P}`);var me=p(X),se=p(me,!0);h(me),h(X),N(()=>{le=xe(X,1,"collapse-header expanded svelte-1adl4o1",null,le,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),z(se,t.direction==="horizontal"?"◂":"▴")}),K("click",X,()=>t.onCollapseToggle?.(P,!0)),k(J,X)},Z=B(()=>!s()&&t.onCollapseToggle&&d(P));U(ae,J=>{a(Z)&&J(Y)})}var O=g(ae,2),H=p(O);ln(H,()=>t.pane,()=>P),h(O),k(G,$)};U(L,G=>{a(F)?G(j):G(V,-1)})}h(A);var W=g(A,2);{var Q=G=>{var $=TR();let ae;ie($,"data-testid",`splitter-handle-${P}`),N(Y=>{ae=xe($,1,"splitter-handle svelte-1adl4o1",null,ae,Y),ie($,"aria-orientation",t.direction==="horizontal"?"vertical":"horizontal")},[()=>({dragging:a(v)?.handleIndex===P,disabled:l(P)||l(P+1),frozen:u(P)})]),K("pointerdown",$,Y=>S(Y,P)),K("dblclick",$,()=>{u(P)||!d(P)&&!l(P)||t.onCollapseToggle?.(P,!l(P))}),k(G,$)};U(W,G=>{P<t.count-1&&G(Q)})}N((G,$)=>{M=xe(A,1,"splitter-pane svelte-1adl4o1",null,M,G),tt(A,`flex: ${$??""};`)},[()=>({collapsed:l(P)}),()=>f(P)]),k(C,R)}),h(_),Qe(_,C=>o=C,()=>o),N(()=>T=xe(_,1,"splitter svelte-1adl4o1",null,T,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical",compact:s()})),k(e,_),ue()}_e(["click","pointerdown","dblclick"]);var DR=E('no factory for <code class="svelte-1czj0s8"> </code>',1),MR=E("<em>empty slot</em>"),jR=E('<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>'),zR=E('<div class="slot svelte-1czj0s8"><!></div>');function Uo(e,t){ce(t,!0);let n=te(t,"label",3,""),r=q(void 0),s=q(0),o=q(0);const i=B(()=>t.node.viewId?!!Jv(t.node.viewId):!1);Ne(()=>{if(!a(r))return;const d=t.node.slotId,f=a(r),v=jc(d,t.node.viewId,n()||t.node.viewId||d,t.meta);f.appendChild(v);const m=new ResizeObserver(S=>{for(const y of S){const w=y.contentRect;b(s,Math.round(w.width),!0),b(o,Math.round(w.height),!0)}});return m.observe(f),()=>{m.disconnect(),zc(d,f)}});var l=zR(),c=p(l);{var u=d=>{var f=jR(),v=p(f),m=p(v,!0);h(v);var S=g(v,2),y=p(S);{var w=T=>{var C=DR(),D=g(ke(C)),P=p(D,!0);h(D),N(()=>z(P,t.node.viewId)),k(T,C)},I=T=>{var C=MR();k(T,C)};U(y,T=>{t.node.viewId?T(w):T(I,-1)})}h(S);var x=g(S,2),_=p(x);h(x),h(f),N(()=>{z(m,t.node.slotId),z(_,`${a(s)??""} × ${a(o)??""}`)}),k(d,f)};U(c,d=>{a(i)||d(u)})}h(l),Qe(l,d=>b(r,d),()=>a(r)),N(()=>{ie(l,"data-slot-id",t.node.slotId),ie(l,"data-view-id",t.node.viewId??"")}),k(e,l),ue()}const Ve=he({phase:"idle",source:null,pointerX:0,pointerY:0,target:null});let wm=0;function OR(){return performance.now()<wm}const Kd=4;let km=0,xm=0,ar=null;function NR(e,t,n,r,s){if(Ve.phase!=="idle")return;const o=Tc(s);if(!qa(r.pointerId,{ownerId:"sh3:tabdrag",axis:"xy",priority:"normal",depth:o}))return;ar=r.pointerId;const l=s.getBoundingClientRect();Ve.phase="pending",Ve.source={slotId:e,entry:t,sourceRoot:n,startRect:l,offsetX:r.clientX-l.left,offsetY:r.clientY-l.top},Ve.pointerX=r.clientX,Ve.pointerY=r.clientY,Ve.target=null,km=r.clientX,xm=r.clientY,qR()}function qR(){window.addEventListener("pointermove",Sm,!0),window.addEventListener("pointerup",Im,!0),window.addEventListener("pointercancel",Em,!0),document.body.style.userSelect="none",document.body.dataset.dragging=""}function FR(){window.removeEventListener("pointermove",Sm,!0),window.removeEventListener("pointerup",Im,!0),window.removeEventListener("pointercancel",Em,!0),document.body.style.userSelect="",delete document.body.dataset.dragging}function Sm(e){if(e.pointerId===ar&&(Ve.pointerX=e.clientX,Ve.pointerY=e.clientY,Ve.phase==="pending")){const t=e.clientX-km,n=e.clientY-xm;t*t+n*n>=Kd*Kd&&(Ve.phase="dragging")}}function Im(e){if(e.pointerId!==ar)return;Ve.phase==="dragging"&&(BR(),wm=performance.now()+50),Cm()}function Em(e){if(e.pointerId!==ar){tr("tabdrag:cancel-other-id",e,{activeDragPointerId:ar});return}tr("tabdrag:cancel-our-id",e,{activeDragPointerId:ar}),Cm()}function Wd(e){const t=Ct.tree;if(e.kind==="docked")return t.docked;const n=t.floats.find(r=>r.id===e.floatId);return n?n.content:null}function Yd(e){if(e.kind!=="float")return;const t=Ct.tree,n=t.floats.findIndex(r=>r.id===e.floatId);n<0||Xv(t.floats[n].content)&&t.floats.splice(n,1)}function BR(){const{source:e,target:t}=Ve;if(!e||!t)return;const n=Wd(e.sourceRoot),r=Wd(t.root);if(!n||!r)return;if(t.kind==="strip"){const o=t.tabsNode.tabs.findIndex(i=>i.slotId===e.slotId);if(o>=0){l1(t.tabsNode,o,t.insertIndex),us(n),r!==n&&us(r),Yd(e.sourceRoot);return}}const s=li(n,e.slotId);s&&(t.kind==="strip"?i1(t.tabsNode,s,t.insertIndex):Sl(r,t.path,s,t.side),us(n),r!==n&&us(r),Yd(e.sourceRoot))}function Cm(){ar!==null&&(Kr(ar,"sh3:tabdrag"),ar=null),Ve.phase="idle",Ve.source=null,Ve.target=null,FR()}function Gl(e){Ve.phase==="dragging"&&(Ve.target=e)}function ms(e){Ve.phase==="dragging"&&Ve.target&&(e&&!e(Ve.target)||(Ve.target=null))}var VR=E("<div></div>"),UR=E('<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),HR=E("<!> <!>",1),KR=E("<div><!></div>");function Jl(e,t){ce(t,!0);let n=q(void 0),r=q(null);const s=B(()=>Ve.phase==="dragging"),o=B(()=>{let m;return t.rootRef.kind==="docked"?m=Ct.root:m=Ct.tree.floats.find(y=>y.id===t.rootRef.floatId)?.content??null,m?eh(m,t.path):!1});function i(m,S,y){const w=y.left+y.width/2,I=y.top+y.height/2,x=m-w,_=S-I,T=x/y.width,C=_/y.height;return Math.abs(T)>Math.abs(C)?T<0?"left":"right":C<0?"top":"bottom"}function l(m){if(!a(n))return;if(a(o)){a(r)!==null&&(b(r,null),ms(w=>w.kind==="split"&&w.path.join("/")===t.path.join("/")));return}const S=a(n).getBoundingClientRect();if(m.clientX<S.left||m.clientX>S.right||m.clientY<S.top||m.clientY>S.bottom){a(r)!==null&&(b(r,null),ms(w=>w.kind==="split"&&w.path.join("/")===t.path.join("/")));return}const y=i(m.clientX,m.clientY,S);if(y!==a(r)){b(r,y,!0);const w={kind:"split",root:t.rootRef,path:[...t.path],side:y};Gl(w)}}function c(){a(r)!==null&&(b(r,null),ms(m=>m.kind==="split"&&m.path.join("/")===t.path.join("/")))}var u=KR();let d;var f=p(u);{var v=m=>{var S=HR(),y=ke(S);{var w=_=>{var T=VR();N(()=>xe(T,1,`quad-highlight quad-${a(r)??""}`,"svelte-re71zu")),k(_,T)};U(y,_=>{a(r)&&_(w)})}var I=g(y,2);{var x=_=>{var T=UR();Wt(6),k(_,T)};U(I,_=>{a(s)&&_(x)})}k(m,S)};U(f,m=>{a(o)||m(v)})}h(u),Qe(u,m=>b(n,m),()=>a(n)),N(()=>d=xe(u,1,"slot-drop-zone svelte-re71zu",null,d,{active:a(s),locked:a(o)})),K("pointermove",u,l),Ke("pointerleave",u,c),k(e,u),ue()}_e(["pointermove"]);var WR=E('<div class="sh3-carousel-slide svelte-1qo3ctb" data-sh3-slide=""><!> <!></div>'),YR=E('<span data-sh3-pager-dot=""></span>'),XR=E('<div class="sh3-carousel-pager svelte-1qo3ctb" data-sh3-pager=""></div>'),GR=E('<div class="sh3-carousel svelte-1qo3ctb" data-sh3-region="carousel"><div data-sh3-carousel-track=""></div> <!></div>');function JR(e,t){ce(t,!0);let n=te(t,"node",7),r=te(t,"rootRef",19,()=>({kind:"docked"})),s=te(t,"path",19,()=>[]),o=q(null),i=q(0);Ne(()=>{if(!a(o))return;const se=a(o).getBoundingClientRect();if(se.width>0)b(i,se.width,!0);else if(a(o).parentElement){const ye=a(o).parentElement.getBoundingClientRect();ye.width>0&&b(i,ye.width,!0)}const de=new ResizeObserver(ye=>{for(const Ee of ye)b(i,Ee.contentRect.width,!0)});return de.observe(a(o)),()=>de.disconnect()});const l=B(()=>n().tabs.length),c=B(()=>a(l)>1);let u=q(0),d=q(!1),f=q(!1),v=null,m=!1,S=0,y=null,w=null;const I=1.2,x=6,_=.4,T=500,C=.3,D=100;function P(se,de){tr(`carousel:${se}`,de,{claimed:a(f),dragging:a(d),downId:y?.id})}const R=250;function A(se){let de=se;for(;de&&de!==a(o);){const ye=getComputedStyle(de).overflowX;if((ye==="auto"||ye==="scroll")&&de.scrollWidth>de.clientWidth)return!0;de=de.parentElement}return!1}function M(se){if(!a(o)||a(i)===0)return!1;const de=a(o).getBoundingClientRect(),ye=se-de.left;return ye<Eo||ye>a(i)-Eo}function L(se){const de=se;if(!de||typeof de.tagName!="string")return!1;const ye=de.tagName;if(ye==="INPUT"||ye==="TEXTAREA"||ye==="SELECT"||de.isContentEditable===!0)return!0;const Ee=de.closest?.('[contenteditable=""], [contenteditable="true"]');return Ee!=null}function j(se,de){if(de===0)return 0;const ye=de*C;return Math.sign(se)*ye*(1-Math.exp(-Math.abs(se)/ye))}function F(se){if(!t.wrap){const de=n().activeTab===0&&se>0,ye=n().activeTab===a(l)-1&&se<0;if(de||ye)return j(se,a(i))}return se}function V(se){if(a(l)<2||a(i)===0||se.isPrimary===!1)return;const de=M(se.clientX);if(!de&&(L(se.target)||A(se.target)))return;const ye=a(o)?Tc(a(o)):0;qa(se.pointerId,{ownerId:"sh3:carousel",axis:"x",priority:"normal",depth:ye})&&(v=se.pointerId,m=de,S=0,y={id:se.pointerId,x:se.clientX,y:se.clientY,t:performance.now()},w={...y},b(d,!1),b(f,!1),b(u,0),document.addEventListener("pointermove",W),document.addEventListener("pointerup",Q),document.addEventListener("pointercancel",G))}function W(se){if(!y||se.pointerId!==y.id)return;if(!qw(se.pointerId,"sh3:carousel")){P("claim-stolen",se),$();return}const de=se.clientX-y.x,ye=se.clientY-y.y;if(!a(f)){const Ee=performance.now()-y.t,Le=Math.abs(de)>Math.abs(ye)*I&&Math.abs(de)>x;if(Math.abs(ye)>Math.abs(de)*I&&Math.abs(ye)>x){$();return}if((Math.abs(de)>x||Math.abs(ye)>x)&&Ee>R){$();return}if(!Le)return;if(b(f,!0),b(d,!0),m&&a(o))try{a(o).setPointerCapture(se.pointerId),S=performance.now()+D}catch{}typeof window<"u"&&window.getSelection()?.removeAllRanges()}typeof se.preventDefault=="function"&&se.preventDefault(),b(u,F(de),!0),w={id:se.pointerId,x:se.clientX,y:se.clientY,t:performance.now()}}function Q(se){if(!y)return;if(se.pointerId!==y.id){P("pointerup-other-id",se);return}const de=se.clientX-y.x;let ye=0;w&&w.t!==y.t&&(ye=(se.clientX-w.x)/Math.max(1,performance.now()-w.t)*1e3),ae(de,ye),$()}function G(se){if(y){if(se.pointerId!==y.id){P("cancel-other-id",se);return}if(performance.now()<S){P("cancel-ignored-transfer",se),S=0;return}P("cancel-our-id",se),$()}}function $(){if(m&&a(o)&&v!==null)try{a(o).hasPointerCapture?.(v)&&a(o).releasePointerCapture(v)}catch{}v!==null&&(Kr(v,"sh3:carousel"),v=null),document.removeEventListener("pointermove",W),document.removeEventListener("pointerup",Q),document.removeEventListener("pointercancel",G),y=null,w=null,b(d,!1),b(f,!1),b(u,0),m=!1,S=0}function ae(se,de){if(!a(f)||a(i)===0)return;const ye=Math.abs(se)>a(i)*_,Ee=Math.abs(de)>T;if(!(ye||Ee))return;const Le=se<0?1:-1;let oe=n().activeTab+Le;if(oe<0)if(t.wrap)oe=a(l)-1;else return;else if(oe>=a(l))if(t.wrap)oe=0;else return;n().activeTab=oe}const Y=B(()=>a(i)===0?"translateX(0px)":`translateX(${-n().activeTab*a(i)+a(u)}px)`),Z=B(()=>a(d)?"none":"");function O(se){return se.slotId}var H=GR(),J=p(H);let X;Se(J,23,()=>n().tabs,se=>O(se),(se,de,ye)=>{var Ee=WR(),Le=p(Ee);{let be=B(()=>({type:"slot",slotId:a(de).slotId,viewId:a(de).viewId}));Uo(Le,{get node(){return a(be)},get label(){return a(de).label},get meta(){return a(de).meta}})}var oe=g(Le,2);Jl(oe,{get rootRef(){return r()},get path(){return s()}}),h(Ee),N(()=>{ie(Ee,"data-sh3-slide-index",a(ye)),tt(Ee,`width: ${a(i)??""}px;`)}),k(se,Ee)}),h(J);var le=g(J,2);{var me=se=>{var de=XR();Se(de,23,()=>n().tabs,(ye,Ee)=>`dot-${Ee}`,(ye,Ee,Le)=>{var oe=YR();let be;N(()=>{be=xe(oe,1,"sh3-carousel-dot svelte-1qo3ctb",null,be,{"sh3-carousel-dot--active":a(Le)===n().activeTab}),ie(oe,"aria-current",a(Le)===n().activeTab?"true":void 0)}),k(ye,oe)}),h(de),k(se,de)};U(le,se=>{a(c)&&se(me)})}h(H),Qe(H,se=>b(o,se),()=>a(o)),N(()=>{X=xe(J,1,"sh3-carousel-track svelte-1qo3ctb",null,X,{"sh3-carousel-track--dragging":a(d)}),tt(J,`transform: ${a(Y)??""}; width: ${a(l)*100}%; ${a(Z)?`transition: ${a(Z)};`:""}`)}),K("pointerdown",J,V),k(e,H),ue()}_e(["pointerdown"]);function Am(e){return e.join(".")}function ZR(e){const t=new Map;function n(r,s,o){if(r.type==="tabs"){if(s){const i=r.tabs[r.activeTab];t.set(Am(o),{wrap:r.wrap??!1,activeLabel:i?.label??""})}return}if(r.type==="split"){const i=s&&r.direction==="vertical";for(let l=0;l<r.children.length;l++)n(r.children[l],i,[...o,l]);return}}return n(e,!0,[]),t}var QR=E('<div class="tab-slot-wrapper svelte-1gw9g38"><!> <!></div>'),$R=E('<div class="empty-tabs-custom svelte-1gw9g38"></div>'),eP=E('<div class="empty-tabs-default svelte-1gw9g38"><div class="empty-tabs-drop svelte-1gw9g38"></div></div>'),tP=E('<div class="empty-tabs-placeholder svelte-1gw9g38"><!></div>'),nP=E('<div class="leaf-slot-wrapper svelte-1gw9g38"><!> <!></div>');function As(e,t){ce(t,!0);let n=te(t,"path",19,()=>[]),r=te(t,"rootRef",19,()=>({kind:"docked"}));const s=B(()=>{if(t.rootOverride!==void 0)return Is(t.rootOverride,n());let x;return r().kind==="docked"?x=Ct.root:x=Ct.tree.floats.find(T=>T.id===r().floatId)?.content??null,x?Is(x,n()):null});function o(x){return{get isDragging(){return Ve.phase==="dragging"},onPointerDown(_,T,C){const D=x.tabs[_];D&&NR(D.slotId,D,r(),T,C)},onStripHover(_,T,C,D){if(C<_.top||C>_.bottom)return ms(A=>A.kind==="strip"&&A.tabsNode===x),null;let P=D.length;for(let A=0;A<D.length;A++){const M=D[A],L=M.left+M.width/2;if(T<L){P=A;break}}const R=Ve.source;if(R){const A=x.tabs.findIndex(M=>M.slotId===R.slotId);A>=0&&A<P&&(P-=1)}return Gl({kind:"strip",root:r(),tabsNode:x,insertIndex:P}),P},onStripLeave(){ms(_=>_.kind==="strip"&&_.tabsNode===x)}}}function i(x){return x.type==="split"?x:null}function l(x){return x.type==="tabs"?x:null}function c(x){return x.type==="slot"?x:null}function u(x){return x.map(_=>R1(_.slotId)||void 0)}function d(x){return x.map(_=>T1(_.slotId)||void 0)}function f(x,_){const T=x[_];T&&Jc(T.slotId)}function v(x,_){_(x)}function m(x,_){Ve.phase==="dragging"&&Gl({kind:"strip",root:r(),tabsNode:_,insertIndex:0})}function S(){ms(x=>x.kind==="strip"&&x.insertIndex===0)}var y=Ze(),w=ke(y);{var I=x=>{var _=Ze(),T=ke(_);{var C=R=>{const A=(L,j=Ft)=>{{let F=B(()=>[...n(),j()]);As(L,{get rootRef(){return r()},get path(){return a(F)},get rootOverride(){return t.rootOverride},get carousels(){return t.carousels}})}},M=B(()=>i(a(s)));{let L=B(()=>Rn.current.class==="compact");LR(R,{get direction(){return a(M).direction},get sizes(){return a(M).sizes},get pinned(){return a(M).pinned},get collapsed(){return a(M).collapsed},get fixed(){return a(M).fixed},get count(){return a(M).children.length},get pane(){return A},get compact(){return a(L)},onResize:(j,F)=>a(M).sizes[j]=F,onCollapseToggle:(j,F)=>{a(M).collapsed||(a(M).collapsed=a(M).children.map(()=>!1)),a(M).collapsed[j]=F}})}},D=R=>{const A=B(()=>l(a(s))),M=B(()=>t.carousels?.get(Am(n())));var L=Ze(),j=ke(L);{var F=Q=>{JR(Q,{get node(){return a(A)},get wrap(){return a(M).wrap},get rootRef(){return r()},get path(){return n()}})},V=Q=>{const G=(ae,Y=Ft)=>{const Z=B(()=>a(A)?.tabs[Y()]);var O=Ze(),H=ke(O);{var J=X=>{var le=QR(),me=p(le);{let de=B(()=>({type:"slot",slotId:a(Z).slotId,viewId:a(Z).viewId}));Uo(me,{get node(){return a(de)},get label(){return a(Z).label},get meta(){return a(Z).meta}})}var se=g(me,2);Jl(se,{get rootRef(){return r()},get path(){return n()}}),h(le),k(X,le)};U(H,X=>{a(Z)&&X(J)})}k(ae,O)},$=B(()=>o(a(A)));{let ae=B(()=>a(A).tabs.map(J=>J.label)),Y=B(()=>a(A).tabs.map(J=>J.icon)),Z=B(()=>u(a(A).tabs)),O=B(()=>d(a(A).tabs)),H=B(()=>a(A).tabs.map(J=>J.slotId));vp(Q,{get labels(){return a(ae)},get icons(){return a(Y)},get activeTab(){return a(A).activeTab},onActiveChange:J=>a(A).activeTab=J,get body(){return G},get dragController(){return a($)},get clickGuard(){return OR},get closable(){return a(Z)},get dirty(){return a(O)},onClose:J=>f(a(A).tabs,J),get tabIds(){return a(H)}})}},W=Q=>{var G=tP(),$=p(G);{var ae=Z=>{var O=$R();Tv(O,(H,J)=>v?.(H,J),()=>a(A).emptyRenderer),k(Z,O)},Y=Z=>{var O=eP(),H=p(O);h(O),K("pointermove",H,J=>m(J,a(A))),Ke("pointerleave",H,S),k(Z,O)};U($,Z=>{a(A).emptyRenderer?Z(ae):Z(Y,-1)})}h(G),k(Q,G)};U(j,Q=>{a(M)&&a(A)&&a(A).tabs.length>0?Q(F):a(A)&&a(A).tabs.length>0?Q(V,1):a(A)?.persistent&&Q(W,2)})}k(R,L)},P=R=>{const A=B(()=>c(a(s)));var M=nP(),L=p(M);Uo(L,{get node(){return a(A)},get meta(){return a(A).meta}});var j=g(L,2);Jl(j,{get rootRef(){return r()},get path(){return n()}}),h(M),k(R,M)};U(T,R=>{a(s).type==="split"?R(C):a(s).type==="tabs"?R(D,1):R(P,-1)})}k(x,_)};U(w,x=>{a(s)&&x(I)})}k(e,y),ue()}_e(["pointermove"]);var rP=E('<span class="drag-preview-icon svelte-133fiip"> </span>'),sP=E('<div class="drag-preview svelte-133fiip"><!> <span class="drag-preview-label svelte-133fiip"> </span></div>');function aP(e,t){ce(t,!0);const n=B(()=>Ve.phase==="dragging"&&!!Ve.source),r=B(()=>Ve.source?Ve.pointerX-Ve.source.offsetX:0),s=B(()=>Ve.source?Ve.pointerY-Ve.source.offsetY:0),o=B(()=>Ve.source?.startRect.width??0),i=B(()=>Ve.source?.startRect.height??0),l=B(()=>Ve.source?.entry.label??""),c=B(()=>Ve.source?.entry.icon);var u=Ze(),d=ke(u);{var f=v=>{var m=sP(),S=p(m);{var y=x=>{var _=rP(),T=p(_,!0);h(_),N(()=>z(T,a(c))),k(x,_)};U(S,x=>{a(c)&&x(y)})}var w=g(S,2),I=p(w,!0);h(w),h(m),N(()=>{tt(m,`left: ${a(r)??""}px; top: ${a(s)??""}px; width: ${a(o)??""}px; height: ${a(i)??""}px;`),z(I,a(l))}),k(v,m)};U(d,v=>{a(n)&&v(f)})}k(e,u),ue()}const bs=new Map;let Ho=!1;function Tm(e){if(bs.size===0||Uv(e.pointerId))return;const t=e.target;if(!t)return;const n=Array.from(bs.keys());for(const r of n){const s=bs.get(r);s&&(s.contains(t)||Ge.close(r))}}function oP(){Ho||typeof document>"u"||(document.addEventListener("pointerdown",Tm,!0),Ho=!0)}function iP(){Ho&&(bs.size>0||(document.removeEventListener("pointerdown",Tm,!0),Ho=!1))}function lP(e,t){bs.set(e,t),oP()}function cP(e){bs.delete(e),iP()}function uP(e){const t=new Set;return Rm(e,t),[...t]}function Rm(e,t){switch(e.type){case"slot":{if(e.viewId!==null){const n=Gu(e.viewId);n&&t.add(n)}return}case"tabs":{for(const n of e.tabs)if(n.viewId!==null){const r=Gu(n.viewId);r&&t.add(r)}return}case"split":{for(const n of e.children)Rm(n,t);return}}}var dP=E('<button class="sh3-float-popout svelte-1p734al" aria-label="Open in own window" title="Open in own window">⧉</button>'),fP=E('<header class="sh3-float-header svelte-1p734al" data-sh3-scope="element:float-header"><span class="sh3-float-title svelte-1p734al"> </span> <span class="sh3-float-header-actions svelte-1p734al"><!> <button class="sh3-float-maximize svelte-1p734al"> </button> <button class="sh3-float-close svelte-1p734al" aria-label="Close float">×</button></span></header>'),vP=E('<div class="sh3-float-frame svelte-1p734al" data-sh3-overlay-host="float" role="dialog" tabindex="-1"><!> <div class="sh3-float-body svelte-1p734al"><!></div> <div class="sh3-float-resize-grip svelte-1p734al" role="presentation" aria-hidden="true"></div></div>');function hP(e,t){ce(t,!0);const n=typeof globalThis.__TAURI_INTERNALS__<"u",r=pi("__layouts__");function s(Y){Y.preventDefault(),r.set({type:"float-header",ref:{floatId:o().id}}),vt.actions.openContextMenu({x:Y.clientX,y:Y.clientY,scope:{element:"float-header"}})}let o=te(t,"entry",15),i=q(!1),l={x:0,y:0},c=null,u=q(!1),d={pointer:{x:0,y:0},size:{w:0,h:0},min:{w:0,h:0}},f=null,v=q(void 0);const m=B(()=>Ge.isMaximized(o().id));Ne(()=>{if(o().dismissable&&a(v))return lP(o().id,a(v)),()=>cP(o().id)}),Ne(()=>{if(!a(v))return;const Y=tk(o().id);if(Y)return Y.appendChild(a(v)),()=>{a(v)?.parentNode===Y&&a(v).remove()}}),Ne(()=>()=>{a(i)&&w(),a(u)&&D()});function S(Y){Y.button===0&&(Y.target.closest(".sh3-float-close")||Y.target.closest(".sh3-float-maximize")||Y.target.closest(".sh3-float-popout")||a(i)||(b(i,!0),c=Y.pointerId,l={x:Y.clientX-o().position.x,y:Y.clientY-o().position.y},Ge.focus(o().id),document.addEventListener("pointermove",y),document.addEventListener("pointerup",I),document.addEventListener("pointercancel",x)))}function y(Y){!a(i)||Y.pointerId!==c||(Ge.unmaximize(o().id),o(o().position.x=Y.clientX-l.x,!0),o(o().position.y=Y.clientY-l.y,!0))}function w(){b(i,!1),c=null,document.removeEventListener("pointermove",y),document.removeEventListener("pointerup",I),document.removeEventListener("pointercancel",x)}function I(Y){!a(i)||Y.pointerId!==c||w()}function x(Y){if(Y.pointerId!==c){tr("floatframe:cancel-other-id",Y,{dragPointerId:c});return}tr("floatframe:cancel-our-id",Y,{dragPointerId:c}),w()}function _(Y){Y.target.closest(".sh3-float-close")||Y.target.closest(".sh3-float-maximize")||Y.target.closest(".sh3-float-popout")||Ge.toggleMaximize(o().id)}function T(Y){Y.button===0&&(Y.stopPropagation(),!a(u)&&(b(u,!0),f=Y.pointerId,d={pointer:{x:Y.clientX,y:Y.clientY},size:{w:o().size.w,h:o().size.h},min:ii(o().content)},Ge.focus(o().id),document.addEventListener("pointermove",C),document.addEventListener("pointerup",P),document.addEventListener("pointercancel",R)))}function C(Y){if(!a(u)||Y.pointerId!==f)return;Ge.unmaximize(o().id);const Z=Y.clientX-d.pointer.x,O=Y.clientY-d.pointer.y;o(o().size.w=Math.max(d.min.w,d.size.w+Z),!0),o(o().size.h=Math.max(d.min.h,d.size.h+O),!0)}function D(){b(u,!1),f=null,document.removeEventListener("pointermove",C),document.removeEventListener("pointerup",P),document.removeEventListener("pointercancel",R)}function P(Y){!a(u)||Y.pointerId!==f||D()}function R(Y){if(Y.pointerId!==f){tr("floatframe-grip:cancel-other-id",Y,{resizePointerId:f});return}tr("floatframe-grip:cancel-our-id",Y,{resizePointerId:f}),D()}function A(){Ge.focus(o().id)}function M(Y){Y.stopPropagation(),Ge.toggleMaximize(o().id)}function L(Y){Y.stopPropagation(),Ge.close(o().id)}async function j(Y){Y.stopPropagation();try{await Ii({kind:"float",content:o().content,title:o().title,size:{w:o().size.w,h:o().size.h},activateShards:uP(o().content)}),Ge.close(o().id)}catch(Z){vt.toast.notify(`Pop-out failed: ${Z.message}`,{level:"error",duration:5e3})}}var F=vP();let V;var W=p(F);{var Q=Y=>{var Z=fP(),O=p(Z),H=p(O,!0);h(O);var J=g(O,2),X=p(J);{var le=ye=>{var Ee=dP();K("click",Ee,j),k(ye,Ee)};U(X,ye=>{n&&ye(le)})}var me=g(X,2),se=p(me,!0);h(me);var de=g(me,2);h(J),h(Z),N(()=>{ie(Z,"data-float-id",o().id),z(H,o().title),ie(me,"aria-label",a(m)?"Restore float":"Maximize float"),ie(me,"aria-pressed",a(m)),z(se,a(m)?"🗗":"🗖")}),K("pointerdown",Z,S),K("dblclick",Z,_),K("contextmenu",Z,s),K("click",me,M),K("click",de,L),k(Y,Z)};U(W,Y=>{o().title&&Y(Q)})}var G=g(W,2),$=p(G);{let Y=B(()=>({kind:"float",floatId:o().id}));As($,{get rootRef(){return a(Y)},path:[]})}h(G);var ae=g(G,2);h(F),Qe(F,Y=>b(v,Y),()=>a(v)),N(()=>{ie(F,"aria-label",o().title??"Float panel"),V=tt(F,"",V,{left:`${o().position.x??""}px`,top:`${o().position.y??""}px`,width:`${o().size.w??""}px`,height:`${o().size.h??""}px`})}),K("click",F,A),K("pointerdown",ae,T),k(e,F),ue()}_e(["click","pointerdown","dblclick","contextmenu"]);var pP=E('<div class="sh3-float-layer svelte-1rzcset"></div>');function mP(e,t){ce(t,!0);const n=B(()=>Ct.floats),r=B(()=>Rn.current.class==="compact");function s(i){return!a(r)||i.dismissable===!0}var o=pP();Se(o,23,()=>a(n),i=>i.id,(i,l,c)=>{var u=Ze(),d=ke(u);{var f=m=>{hP(m,{get entry(){return a(n)[a(c)]},set entry(S){a(n)[a(c)]=S}})},v=B(()=>s(a(l)));U(d,m=>{a(v)&&m(f)})}k(i,u)}),h(o),k(e,o),ue()}var bP=E('<div class="sh3-overlay-root svelte-4ykdm7"><!></div>'),gP=E('<div class="sh3-overlays svelte-4ykdm7" aria-hidden="true"></div>');function Pm(e,t){ce(t,!0);const n=[{layer:"drawers",name:"drawers",zToken:"--sh3-z-layer-drawers"},{layer:1,name:"floating",zToken:"--sh3-z-layer-1"},{layer:2,name:"drag-preview",zToken:"--sh3-z-layer-2"},{layer:3,name:"popup",zToken:"--sh3-z-layer-3"},{layer:4,name:"modal",zToken:"--sh3-z-layer-4"},{layer:5,name:"toast",zToken:"--sh3-z-layer-5"},{layer:6,name:"command",zToken:"--sh3-z-layer-6"}],r=he({});Ne(()=>{for(const{name:o}of n){const i=r[o];i&&Cw(o,i)}return()=>{for(const{name:o}of n)Aw(o)}}),Ne(()=>{const o=Ct.tree;return $1(o.floats,()=>({w:window.innerWidth,h:window.innerHeight})),()=>ek()});var s=gP();Se(s,21,()=>n,({layer:o,name:i,zToken:l})=>o,(o,i)=>{let l=()=>a(i).layer,c=()=>a(i).name,u=()=>a(i).zToken;var d=bP(),f=p(d);{var v=S=>{mP(S,{})},m=S=>{aP(S,{})};U(f,S=>{c()==="floating"?S(v):c()==="drag-preview"&&S(m,1)})}h(d),Qe(d,(S,y)=>r[y]=S,S=>r?.[S],()=>[c()]),N(()=>{ie(d,"data-sh3-overlay",c()),ie(d,"data-sh3-layer",l()),tt(d,`z-index: var(${u()??""});`)}),k(o,d)}),h(s),k(e,s),ue()}var yP=E('<div class="guest-signin-error svelte-pymkh"> </div>'),_P=E('<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>'),wP=E('<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),kP=E('<div class="guest-banner-slot"><!></div>');function xP(e,t){ce(t,!0);let n=q(!1),r=q(""),s=q(""),o=q(null),i=q(!1);async function l(){if(!a(r).trim()||!a(s).trim()||a(i))return;b(i,!0),b(o,null);const v=await tp(a(r).trim(),a(s).trim());b(i,!1),v.ok?b(n,!1):b(o,v.error,!0)}var c=kP(),u=p(c);{var d=v=>{var m=wP(),S=ke(m),y=g(p(S),2);h(S);var w=g(S,2);{var I=x=>{var _=_P(),T=p(_),C=p(T),D=p(C);De(D);var P=g(D,2);De(P);var R=g(P,2),A=p(R),M=p(A,!0);h(A);var L=g(A,2);h(R),h(C);var j=g(C,2);{var F=V=>{var W=yP(),Q=p(W,!0);h(W),N(()=>z(Q,a(o))),k(V,W)};U(j,V=>{a(o)&&V(F)})}h(T),h(_),N(V=>{D.disabled=a(i),P.disabled=a(i),A.disabled=V,z(M,a(i)?"Signing in...":"Sign in")},[()=>a(i)||!a(r).trim()||!a(s).trim()]),Ke("submit",C,V=>{V.preventDefault(),l()}),qe(D,()=>a(r),V=>b(r,V)),qe(P,()=>a(s),V=>b(s,V)),K("click",L,()=>{b(n,!1),b(o,null)}),k(x,_)};U(w,x=>{a(n)&&x(I)})}K("click",y,()=>{b(n,!0)}),k(v,m)},f=B(()=>np());U(u,v=>{a(f)&&v(d)})}h(c),k(e,c),ue()}_e(["click"]);var SP=E('<code class="sh3-consent-scope svelte-14me5sj"> </code>'),IP=E('<dt class="svelte-14me5sj">Peer</dt> <dd class="svelte-14me5sj"> </dd>',1),EP=E('<dt class="svelte-14me5sj">Expires in</dt> <dd class="svelte-14me5sj"> </dd>',1),CP=E('<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 AP(e,t){ce(t,!0);let n=q(null);Ne(()=>xp(u=>{b(n,u,!0)}));function r(){a(n)&&(Kl(a(n).requestId,!0),b(n,null))}function s(){a(n)&&(Kl(a(n).requestId,!1),b(n,null))}var o=Ze(),i=ke(o);{var l=c=>{var u=CP(),d=p(u),f=p(d),v=p(f),m=p(v,!0);h(v),Wt(),h(f);var S=g(f,2),y=g(p(S),2),w=p(y,!0);h(y);var I=g(y,4);Se(I,20,()=>a(n).scopes,A=>A,(A,M)=>{var L=SP(),j=p(L,!0);h(L),N(()=>z(j,M)),k(A,L)}),h(I);var x=g(I,2);{var _=A=>{var M=IP(),L=g(ke(M),2),j=p(L);h(L),N(()=>z(j,`${a(n).peerRole??"—"??""}${a(n).peerId?` · ${a(n).peerId}`:""}`)),k(A,M)};U(x,A=>{(a(n).peerRole||a(n).peerId)&&A(_)})}var T=g(x,2);{var C=A=>{var M=EP(),L=g(ke(M),2),j=p(L);h(L),N(F=>z(j,`${F??""}s`),[()=>Math.round(a(n).expiresIn/1e3)]),k(A,M)};U(T,A=>{a(n).expiresIn&&A(C)})}h(S);var D=g(S,2),P=p(D);br(P,!0);var R=g(P,2);h(D),h(d),h(u),N(()=>{z(m,a(n).shardId),z(w,a(n).label)}),K("click",P,s),K("click",R,r),k(c,u)};U(i,c=>{a(n)&&c(l)})}k(e,o),ue()}_e(["click"]);var TP=E('<span class="sh3-brand svelte-18lk809">SH3</span>'),RP=E('<span class="sh3-brand sh3-brand-app svelte-18lk809"> </span>'),PP=E('<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),LP=E('<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),DP=E('<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),MP=E('<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),jP=E('<div class="sh3-brand-slot svelte-18lk809"><!></div>');function Lm(e,t){ce(t,!0);const n=B(()=>jt().activeAppId),r=B(Tw),s=B(()=>bn.activeProjectId),o=B(()=>a(n)?Nn(a(n))?.manifest.label??a(n):null),i=B(()=>a(r)?Nn(a(r))?.manifest.label??a(r):null),l=B(()=>a(s)?rn.projects.find(T=>T.id===a(s))?.name??a(s):null),c=B(()=>a(s)?a(n)?"project-app":a(r)?"project-breadcrumb":"project-home":a(n)?"app":a(r)?"breadcrumb":"brand");function u(){a(r)&&lr(a(r))}function d(){Vh(null)}function f(){a(n)&&Ns()}var v=jP(),m=p(v);{var S=T=>{var C=TP();k(T,C)},y=T=>{var C=RP(),D=p(C,!0);h(C),N(()=>z(D,a(o))),k(T,C)},w=T=>{var C=PP(),D=g(ke(C),4),P=p(D,!0);h(D),N(()=>z(P,a(i))),K("click",D,u),k(T,C)},I=T=>{var C=LP(),D=ke(C),P=g(D,4),R=p(P,!0);h(P),N(()=>z(R,a(l))),K("click",D,d),k(T,C)},x=T=>{var C=DP(),D=ke(C),P=p(D,!0);h(D);var R=g(D,4),A=p(R,!0);h(R),N(()=>{z(P,a(l)),z(A,a(o))}),k(T,C)},_=T=>{var C=MP(),D=ke(C),P=g(D,4),R=p(P,!0);h(P);var A=g(P,4),M=p(A,!0);h(A),N(()=>{z(R,a(l)),z(M,a(i))}),K("click",D,d),K("click",P,f),K("click",A,u),k(T,C)};U(m,T=>{a(c)==="brand"?T(S):a(c)==="app"?T(y,1):a(c)==="breadcrumb"?T(w,2):a(c)==="project-home"?T(I,3):a(c)==="project-app"?T(x,4):a(c)==="project-breadcrumb"&&T(_,5)})}h(v),k(e,v),ue()}_e(["click"]);const zP=Object.freeze([{id:"file",label:"File"},{id:"edit",label:"Edit"},{id:"view",label:"View"},{id:"window",label:"Window"},{id:"help",label:"Help"}]);function Ko(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function Dm(e,t){if(e==null)return[];if(t==null)return zP.slice();const n=t.map((r,s)=>({c:r,i:s}));return n.sort((r,s)=>{const o=r.c.order,i=s.c.order;return o!=null&&i!=null?o-i||r.i-s.i:o!=null?-1:i!=null?1:r.i-s.i}),n.map(r=>r.c)}function Zl(e,t,n){const r=[],s=new Set;for(const o of e){if(o.action.menuItem!==n||o.action.submenuOf!==void 0||s.has(o.action.id))continue;const i=Ba(o.action.scope,t,o.ownerShardId);i&&(i==="app"&&!t.activeAppRequiredShards.has(o.ownerShardId)||(s.add(o.action.id),r.push({id:o.action.id,label:un(o.action),shortcut:Fa(o.action,t.bindings,t.platform),group:o.action.group??"",icon:o.action.icon,checked:Ko(o.action.checked),disabled:Ko(o.action.disabled),submenu:o.action.submenu===!0})))}return r}function Mm(e,t,n){const r=[],s=new Set;for(const o of e){if(o.action.submenuOf!==n||s.has(o.action.id))continue;const i=Ba(o.action.scope,t,o.ownerShardId);i&&(i==="app"&&!t.activeAppRequiredShards.has(o.ownerShardId)||(s.add(o.action.id),r.push({id:o.action.id,label:un(o.action),shortcut:Fa(o.action,t.bindings,t.platform),group:o.action.group??"",icon:o.action.icon,checked:Ko(o.action.checked),disabled:Ko(o.action.disabled),submenu:o.action.submenu===!0})))}return r}var OP=E('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),NP=E('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),qP=E('<button type="button" class="sh3-menubar-button svelte-bke3dt"><!> <span class="sh3-menubar-label"> </span> <!></button>');function FP(e,t){ce(t,!0);let n=q(void 0);function r(y){const w=new Map,I=[];for(const x of y){const _=x.group||"";w.has(_)||(w.set(_,[]),I.push(_)),w.get(_).push(x)}return I.map(x=>({id:`group:${x||"_default"}`,items:w.get(x)}))}function s(y,w,I){const x=mt().find(_=>_.action.id===y);if(!(!x||typeof x.action.run!="function")){try{x.action.run({action:{id:y,label:un(x.action)},appId:w.activeAppId,viewId:w.focusedViewId??void 0,selection:w.selection??void 0,invokedVia:"palette",dispatch:()=>{}})}catch(_){console.error(`[sh3] menu-bar action "${y}" threw:`,_)}I.close()}}function o(y,w,I){const x=document.querySelector(".sh3-popup-host");if(!x)return;const _=document.createElement("div");_.className="sh3-popup-submenu",_.style.position="absolute",_.style.pointerEvents="auto";const C=(x.querySelector(".sh3-ctx-active")??x).getBoundingClientRect();_.style.left=`${C.right+2}px`,_.style.top=`${C.top}px`,x.appendChild(_);const D=Mm(mt(),w,y),P=at(Mo,{target:_,props:{sections:r(D),onInvoke:R=>s(R,w,I),onDismiss:()=>{ft(P),_.remove()}}})}function i(){if(!a(n))return;const y=jt(),w=wl.show(Mo,{anchor:a(n),placement:"bottom-start"},{sections:r(t.items),onInvoke:I=>{const x=mt().find(_=>_.action.id===I);if(x){if(x.action.submenu===!0){o(I,y,w);return}s(I,y,w)}},onDismiss:()=>wl.close()})}const l=B(()=>t.container.iconPosition??"before");var c=qP(),u=p(c);{var d=y=>{var w=OP();N(()=>ie(w,"data-icon",t.container.icon)),k(y,w)};U(u,y=>{t.container.icon&&a(l)==="before"&&y(d)})}var f=g(u,2),v=p(f,!0);h(f);var m=g(f,2);{var S=y=>{var w=NP();N(()=>ie(w,"data-icon",t.container.icon)),k(y,w)};U(m,y=>{t.container.icon&&a(l)==="after"&&y(S)})}h(c),Qe(c,y=>b(n,y),()=>a(n)),N(()=>z(v,t.container.label)),K("click",c,i),k(e,c),ue()}_e(["click"]);var BP=E('<div class="sh3-menubar svelte-7gc0wa" role="menubar"></div>');function jm(e,t){ce(t,!0);const n=B(jt),r=B(()=>a(n).activeAppId),s=B(()=>{if(a(r))return Nn(a(r))?.manifest.menus}),o=B(()=>Dm(a(r),a(s))),i=B(()=>{const c=[],u=mt();for(const d of a(o)){const f=Zl(u,a(n),d.id);f.length>0&&c.push({container:d,items:f})}return c});var l=BP();Se(l,21,()=>a(i),({container:c,items:u})=>c.id,(c,u)=>{let d=()=>a(u).container,f=()=>a(u).items;FP(c,{get container(){return d()},get items(){return f()}})}),h(l),k(e,l),ue()}const VP={type:"slot",slotId:"__sh3core__:compact:empty",viewId:null,role:"body"};function Ts(e){return e??"body"}function zm(e){return e.type==="slot"?[{slotId:e.slotId,viewId:e.viewId,label:e.slotId,role:Ts(e.role)}]:e.type==="tabs"?e.tabs.map(t=>({slotId:t.slotId,viewId:t.viewId,label:t.label,icon:t.icon,role:Ts(e.role)})):e.children.flatMap(zm)}function Xd(e){return zm(e).some(t=>t.role==="body")}function Om(e){if(e.type==="slot"||e.type==="tabs")return Ts(e.role)==="body"?e:null;const t=[];for(let n=0;n<e.children.length;n++){const r=Om(e.children[n]);r&&t.push({child:r,size:e.sizes[n]})}return t.length===0?null:t.length===1?t[0].child:{type:"split",direction:e.direction,sizes:t.map(n=>n.size),children:t.map(n=>n.child)}}function Gd(e){return e==="inspector"?"right":"left"}function UP(e){const t={left:[],right:[],top:[]};function n(r,s){if(r.type==="slot"){const o=Ts(r.role);if(o==="body")return;const i=s??Gd(o);t[i].push({slotId:r.slotId,viewId:r.viewId,label:r.slotId,role:o});return}if(r.type==="tabs"){const o=Ts(r.role);if(o==="body")return;const i=s??Gd(o);for(const l of r.tabs)t[i].push({slotId:l.slotId,viewId:l.viewId,label:l.label,icon:l.icon,role:o});return}if(r.direction==="horizontal")for(let o=0;o<r.children.length;o++){const i=r.children[o];let l=s;s===null&&!Xd(i)&&(o===0?l="left":o===r.children.length-1&&(l="right")),n(i,l)}else for(let o=0;o<r.children.length;o++){const i=r.children[o];let l=s;s===null&&o===0&&!Xd(i)&&(l="top"),n(i,l)}}return n(e,null),t}function tl(e){return e.length===0?null:{slots:e.map(t=>({slotId:t.slotId,viewId:t.viewId,label:t.label,icon:t.icon,role:t.role}))}}function Nm(e){const n=Om(e)??VP,r=UP(e);return{bodyRoot:n,drawers:{left:tl(r.left),right:tl(r.right),top:tl(r.top)},carousels:ZR(n)}}var HP=E('<span class="chevron svelte-vkxo1d">›</span>'),KP=E('<span class="shortcut svelte-vkxo1d"> </span>'),WP=E('<button class="item svelte-vkxo1d"><span class="label svelte-vkxo1d"> </span> <!></button>'),YP=E('<div class="empty svelte-vkxo1d">No menu items available.</div>'),XP=E('<div class="sh3-menu-sheet svelte-vkxo1d" role="dialog" aria-label="Menu" tabindex="-1" data-sh3-region="menu-sheet"><div class="head svelte-vkxo1d"><!> <span class="title svelte-vkxo1d"> </span></div> <div class="scroll svelte-vkxo1d"></div> <!></div>');function GP(e,t){ce(t,!0);const n=B(jt),r=B(()=>a(n).activeAppId),s=B(()=>{if(a(r))return Nn(a(r))?.manifest.menus}),o=B(()=>Dm(a(r),a(s)));let i=q(he([{kind:"root"}]));const l=B(()=>a(i)[a(i).length-1]);function c(P){b(i,[...a(i),P],!0)}function u(){a(i).length<=1||b(i,a(i).slice(0,-1),!0)}const d=B(()=>{const P=mt(),R=a(l);return R.kind==="root"?a(o).filter(M=>Zl(P,a(n),M.id).length>0).map(M=>({id:M.id,label:M.label,isContainer:!0})):R.kind==="container"?Zl(P,a(n),R.containerId).map(L=>({id:L.id,label:L.label,shortcut:L.shortcut,isSubmenu:L.submenu===!0,disabled:L.disabled})):Mm(P,a(n),R.parentId).map(M=>({id:M.id,label:M.label,shortcut:M.shortcut,disabled:M.disabled,isSubmenu:M.submenu===!0}))});function f(P){if(P.isContainer){const A=a(o).find(M=>M.id===P.id);A&&c({kind:"container",containerId:A.id,label:A.label});return}if(P.isSubmenu){c({kind:"submenu",parentId:P.id,label:P.label});return}const R=mt().find(A=>A.action.id===P.id);if(!(!R||typeof R.action.run!="function")){try{R.action.run({action:{id:P.id,label:un(R.action)},appId:a(n).activeAppId,viewId:a(n).focusedViewId??void 0,selection:a(n).selection??void 0,invokedVia:"palette",dispatch:()=>{}})}catch(A){console.error(`[sh3] menu-sheet action "${P.id}" threw:`,A)}t.close()}}function v(){u()}function m(P){if(P.key==="Escape"){a(i).length>1?(u(),P.preventDefault()):t.close();return}}var S=XP(),y=p(S),w=p(y);{var I=P=>{Pt(P,{variant:"icon",icon:"chevron-left",ariaLabel:"Back",title:"Back",onclick:v})};U(w,P=>{a(i).length>1&&P(I)})}var x=g(w,2),_=p(x,!0);h(x),h(y);var T=g(y,2);Se(T,21,()=>a(d),P=>P.id,(P,R)=>{var A=WP(),M=p(A),L=p(M,!0);h(M);var j=g(M,2);{var F=W=>{var Q=HP();k(W,Q)},V=W=>{var Q=KP(),G=p(Q,!0);h(Q),N(()=>z(G,a(R).shortcut)),k(W,Q)};U(j,W=>{a(R).isContainer||a(R).isSubmenu?W(F):a(R).shortcut&&W(V,1)})}h(A),N(()=>{A.disabled=a(R).disabled,z(L,a(R).label)}),K("click",A,()=>f(a(R))),k(P,A)}),h(T);var C=g(T,2);{var D=P=>{var R=YP();k(P,R)};U(C,P=>{a(d).length===0&&P(D)})}h(S),N(()=>z(_,a(l).kind==="root"?"Menu":a(l).label)),K("keydown",S,m),k(e,S),ue()}_e(["keydown","click"]);var JP=E('<span class="kind svelte-cq4vzh">layout</span>'),ZP=E('<span class="kind svelte-cq4vzh">float</span>'),QP=E('<button class="row svelte-cq4vzh"><span class="label svelte-cq4vzh"> </span> <!></button>'),$P=E('<div class="sh3-floats-sheet svelte-cq4vzh" role="dialog" aria-label="Floats" data-sh3-region="floats-sheet"><div class="scroll svelte-cq4vzh"></div> <button class="cancel svelte-cq4vzh">Cancel</button></div>');function eL(e,t){ce(t,!0);const n=B(jt),r=B(()=>{if(hi()==="home")return"Home";const R=a(n).activeAppId;return R?Nn(R)?.manifest.label??R:"Home"});function s(R){if(R.title)return R.title;if(R.content.type==="tabs"){const A=R.content.tabs[R.content.activeTab]??R.content.tabs[0];if(A)return A.label}return R.id}const o=B(()=>{const R=[{id:"docked",label:a(r)}];for(const A of Ct.tree.floats)A.dismissable||R.push({id:A.id,label:s(A)});return R});function i(R){const A=Dn.current;return R==="docked"?A.kind==="docked":A.kind==="float"&&A.floatId===R}function l(R){R==="docked"?Dn.reset():Dn.setRoot({kind:"float",floatId:R}),t.close()}const c=.4;let u=q(null),d=q(0),f=0,v=null,m=null;function S(R){return a(u)===R?a(d):0}function y(R){return a(u)===R?"none":"transform 160ms ease-out"}function w(R,A){A!=="docked"&&R.button===0&&a(u)===null&&(b(u,A,!0),f=R.clientX,b(d,0),v=R.pointerId,m=R.currentTarget??document.querySelector(`[data-sh3-floats-row="${A}"]`),document.addEventListener("pointermove",I),document.addEventListener("pointerup",_),document.addEventListener("pointercancel",T))}function I(R){R.pointerId===v&&b(d,R.clientX-f)}function x(){document.removeEventListener("pointermove",I),document.removeEventListener("pointerup",_),document.removeEventListener("pointercancel",T),b(u,null),v=null,f=0,b(d,0),m=null}function _(R){if(R.pointerId!==v)return;const A=a(u),M=m?.clientWidth??0,L=a(d);x(),A&&A!=="docked"&&M>0&&Math.abs(L)>=M*c&&Ge.close(A)}function T(R){R.pointerId===v&&x()}var C=$P(),D=p(C);Se(D,21,()=>a(o),R=>R.id,(R,A)=>{var M=QP();let L;var j=p(M),F=p(j,!0);h(j);var V=g(j,2);{var W=G=>{var $=JP();k(G,$)},Q=G=>{var $=ZP();k(G,$)};U(V,G=>{a(A).id==="docked"?G(W):G(Q,-1)})}h(M),N((G,$)=>{ie(M,"data-sh3-floats-row",a(A).id),ie(M,"data-current",G),L=tt(M,"",L,$),z(F,a(A).label)},[()=>i(a(A).id)?"true":"false",()=>({transform:`translateX(${S(a(A).id)??""}px)`,transition:y(a(A).id)})]),K("click",M,()=>l(a(A).id)),K("pointerdown",M,G=>w(G,a(A).id)),k(R,M)}),h(D);var P=g(D,2);h(C),K("click",P,()=>t.close()),k(e,C),ue()}_e(["click","pointerdown"]);var tL=E('<span data-sh3-anchor="left" class="svelte-q1hcw0"><!></span>'),nL=E('<span data-sh3-anchor="right" class="svelte-q1hcw0"><!></span>'),rL=E('<span data-sh3-anchor="top" class="svelte-q1hcw0"><!></span>'),sL=E('<header class="sh3-compact-chrome svelte-q1hcw0" data-sh3-region="compact-chrome"><div class="leading svelte-q1hcw0"><!> <!> <!> <!></div> <div class="title svelte-q1hcw0"> </div> <div class="trailing svelte-q1hcw0"><!> <!> <!></div></header>');function aL(e,t){ce(t,!0);const n=B(hh),r=B(()=>Nm(a(n))),s=B(jt),o=B(()=>hi()==="home"),i=B(()=>{const V=a(s).activeAppId;return V?Nn(V)?.manifest.label??V:"SH3"}),l=B(()=>{if(a(r).carousels.size===0)return null;let V=null,W="";for(const[Q,G]of a(r).carousels)(V===null||Q<V)&&(V=Q,W=G.activeLabel);return W}),c=B(()=>{const V=Dn.current;if(V.kind!=="float")return null;const W=Ct.tree.floats.find(Q=>Q.id===V.floatId);return W?W.title?W.title:W.content.type==="tabs"?(W.content.tabs[W.content.activeTab]??W.content.tabs[0])?.label??null:null:null}),u=B(()=>{if(a(c))return a(c);const V=a(l);return V?`${a(i)} › ${V}`:a(i)});let d=q(!1);function f(){vt.modal.open(GP,{},{dismissOnBackdrop:!0,boxStyle:"max-width: 320px;"})}function v(){if(a(d))return;b(d,!0);const V=vt.modal.open(eL,{},{dismissOnBackdrop:!0,boxStyle:"max-width: 320px;"}),W=V.close;V.close=()=>{W(),b(d,!1)}}function m(V){vt.drawers.toggle(V)}function S(){vt.actions.openPalette()}var y=sL(),w=p(y),I=p(w);Pt(I,{variant:"icon",icon:"house",ariaLabel:"Home",title:"Home",get disabled(){return a(o)},onclick:()=>Ns()});var x=g(I,2);{var _=V=>{var W=tL(),Q=p(W);Pt(Q,{variant:"icon",icon:"menu",ariaLabel:"Toggle left drawer",title:"Toggle left drawer",onclick:()=>m("left")}),h(W),k(V,W)};U(x,V=>{a(r).drawers.left&&V(_)})}var T=g(x,2);{var C=V=>{var W=nL(),Q=p(W);Pt(Q,{variant:"icon",icon:"panel-right",ariaLabel:"Toggle right drawer",title:"Toggle right drawer",onclick:()=>m("right")}),h(W),k(V,W)};U(T,V=>{a(r).drawers.right&&V(C)})}var D=g(T,2);{var P=V=>{var W=rL(),Q=p(W);Pt(Q,{variant:"icon",icon:"panel-top",ariaLabel:"Toggle top drawer",title:"Toggle top drawer",onclick:()=>m("top")}),h(W),k(V,W)};U(D,V=>{a(r).drawers.top&&V(P)})}h(w);var R=g(w,2),A=p(R,!0);h(R);var M=g(R,2),L=p(M);Pt(L,{variant:"icon",icon:"command",ariaLabel:"Open command palette",title:"Open command palette",onclick:S});var j=g(L,2);Pt(j,{variant:"icon",icon:"layers",ariaLabel:"Floats",title:"Floats",get pressed(){return a(d)},onclick:v});var F=g(j,2);Pt(F,{variant:"icon",icon:"ellipsis-vertical",ariaLabel:"Open menu",title:"Open menu",onclick:f}),h(M),h(y),N(()=>z(A,a(u))),k(e,y),ue()}var oL=E('<button role="tab"> </button>'),iL=E('<div class="tab-strip svelte-8dp9bg" role="tablist"></div>'),lL=E('<div class="drawer-backdrop svelte-8dp9bg" role="presentation"></div> <div data-sh3-region="drawer"><header class="svelte-8dp9bg"><span class="title svelte-8dp9bg"> </span> <button class="close svelte-8dp9bg" aria-label="Close drawer">×</button></header> <!> <div class="body svelte-8dp9bg"><!></div></div>',1);function cL(e,t){ce(t,!0);const n=B(()=>t.spec.slots.find(l=>l.slotId===t.activeSlotId)??t.spec.slots[0]),r=B(()=>({type:"slot",slotId:a(n).slotId,viewId:a(n).viewId,role:a(n).role}));var s=Ze(),o=ke(s);{var i=l=>{var c=lL(),u=ke(c),d=g(u,2),f=p(d),v=p(f),m=p(v,!0);h(v);var S=g(v,2);h(f);var y=g(f,2);{var w=_=>{var T=iL();Se(T,21,()=>t.spec.slots,C=>C.slotId,(C,D)=>{var P=oL();let R;var A=p(P,!0);h(P),N(()=>{ie(P,"aria-selected",a(D).slotId===a(n).slotId),R=xe(P,1,"svelte-8dp9bg",null,R,{active:a(D).slotId===a(n).slotId}),z(A,a(D).label)}),K("click",P,()=>t.onActivate(a(D).slotId)),k(C,P)}),h(T),k(_,T)};U(y,_=>{t.spec.slots.length>1&&_(w)})}var I=g(y,2),x=p(I);Uo(x,{get node(){return a(r)},get label(){return a(n).label}}),h(I),h(d),N(()=>{xe(d,1,`drawer drawer-${t.anchor??""}`,"svelte-8dp9bg"),ie(d,"data-sh3-anchor",t.anchor),z(m,a(n).label)}),K("click",u,function(..._){t.onClose?.apply(this,_)}),K("keydown",u,_=>{_.key==="Escape"&&t.onClose()}),K("click",S,function(..._){t.onClose?.apply(this,_)}),k(l,c)};U(o,l=>{t.open&&l(i)})}k(e,s),ue()}_e(["click","keydown"]);var uL=E('<div class="compact-body svelte-1sc410j" data-sh3-region="compact-body"><!></div> <!>',1);function dL(e,t){ce(t,!0);const n=B(hh),r=B(()=>Nm(a(n))),s=["left","right","top"];var o=uL(),i=ke(o),l=p(i);As(l,{get rootOverride(){return a(r).bodyRoot},get carousels(){return a(r).carousels}}),h(i);var c=g(i,2);Se(c,16,()=>s,u=>u,(u,d)=>{const f=B(()=>a(r).drawers[d]);var v=Ze(),m=ke(v);{var S=y=>{cL(y,{get anchor(){return d},get spec(){return a(f)},get open(){return nn.state[d].open},get activeSlotId(){return nn.state[d].activeSlotId},onClose:()=>nn.close(d),onActivate:w=>nn.activate(d,w)})};U(m,y=>{a(f)&&y(S)})}k(u,v)}),k(e,o),ue()}var fL=E('<button type="button" class="sh3-tabbar-signout svelte-1amm732" title="Sign out"><svg class="sh3-tabbar-signout-icon svelte-1amm732" aria-hidden="true"><use></use></svg></button>'),vL=E('<div class="sh3-tabbar-user svelte-1amm732"><span class="sh3-tabbar-user-name svelte-1amm732"> </span> <span class="sh3-tabbar-tag svelte-1amm732"> </span> <!></div>'),hL=E('<header class="sh3-tabbar svelte-1amm732" data-sh3-region="tabbar"><button type="button" class="sh3-tabbar-home-button svelte-1amm732" title="Home"><svg class="sh3-tabbar-home-icon svelte-1amm732" aria-hidden="true"><use></use></svg></button> <!> <!> <!></header>'),pL=E('<footer class="sh3-statusbar svelte-1amm732" data-sh3-region="statusbar"></footer>'),mL=E('<div class="sh3 svelte-1amm732"><!> <!> <main class="sh3-content svelte-1amm732" data-sh3-region="content" data-sh3-layer="0"><!></main> <!> <!> <!></div>');function bL(e,t){ce(t,!0);let n=q(void 0);const r=B(zl),s=B(Dr),o=B(Kt),i=B(()=>hi()==="home"),l=B(()=>vt.viewport.current.class);Ne(()=>{Ct.tree,l0()}),Ne(()=>zl()?u3():void 0),Ne(()=>{const C=a(n);if(!C)return;const D=new Set;function P(A){const M=C.getBoundingClientRect(),L=A.clientX-M.left;if(L>=Eo&&L<=M.width-Eo)return;qa(A.pointerId,{ownerId:"sh3:edge",axis:"x",priority:"edge",depth:0})&&D.add(A.pointerId)}function R(A){D.has(A.pointerId)&&(Kr(A.pointerId,"sh3:edge"),D.delete(A.pointerId))}return C.addEventListener("pointerdown",P),C.addEventListener("pointerup",R),C.addEventListener("pointercancel",R),()=>{C.removeEventListener("pointerdown",P),C.removeEventListener("pointerup",R),C.removeEventListener("pointercancel",R);for(const A of D)Kr(A,"sh3:edge");D.clear()}});var c=mL(),u=p(c);{var d=C=>{var D=hL(),P=p(D),R=p(P),A=p(R);h(R),h(P);var M=g(P,2);Lm(M,{});var L=g(M,2);jm(L,{});var j=g(L,2);{var F=V=>{var W=vL(),Q=p(W),G=p(Q,!0);h(Q);var $=g(Q,2),ae=p($,!0);h($);var Y=g($,2);{var Z=H=>{var J=fL(),X=p(J),le=p(X);h(X),h(J),N(()=>ie(le,"href",`${cr}#log-out`)),K("click",J,()=>rx()),k(H,J)},O=B(()=>!ax());U(Y,H=>{a(O)&&H(Z)})}h(W),N(()=>{z(G,a(s).displayName),z(ae,a(o)?"admin":"user")}),k(V,W)};U(j,V=>{a(r)&&a(s)&&V(F)})}h(D),N(()=>{P.disabled=a(i),ie(A,"href",`${cr}#house`)}),K("click",P,()=>Ns()),k(C,D)},f=C=>{aL(C,{})};U(u,C=>{a(l)==="desktop"?C(d):C(f,-1)})}var v=g(u,2);xP(v,{});var m=g(v,2),S=p(m);{var y=C=>{As(C,{})},w=C=>{dL(C,{})};U(S,C=>{a(l)==="desktop"?C(y):C(w,-1)})}h(m),Qe(m,C=>b(n,C),()=>a(n));var I=g(m,2);{var x=C=>{var D=pL();k(C,D)};U(I,C=>{a(l)==="desktop"&&C(x)})}var _=g(I,2);Pm(_,{});var T=g(_,2);AP(T,{}),h(c),N(()=>ie(c,"data-sh3-viewport",a(l))),k(e,c),ue()}_e(["click"]);var gL=E('<button type="button" class="signin-link svelte-lh4k15">Create an account</button>'),yL=E('<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),_L=E('<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),wL=E('<div class="signin-error svelte-lh4k15"> </div>'),kL=E('<div class="signin-wall svelte-lh4k15"><div class="signin-card svelte-lh4k15"><h1 class="signin-brand svelte-lh4k15">SH3</h1> <!> <!></div></div>');function xL(e,t){ce(t,!0);let n=q("login"),r=q(""),s=q(""),o=q(""),i=q(null),l=q(!1);async function c(){if(!a(r).trim()||!a(s).trim()||a(l))return;b(l,!0),b(i,null);const x=await tp(a(r).trim(),a(s).trim());b(l,!1),x.ok?t.onSuccess():b(i,x.error,!0)}async function u(){if(!a(r).trim()||!a(s).trim()||a(l))return;b(l,!0),b(i,null);const x=await nx(a(r).trim(),a(s).trim(),a(o).trim()||void 0);b(l,!1),x.ok?t.onSuccess():b(i,x.error,!0)}function d(x){b(n,x,!0),b(i,null)}var f=kL(),v=p(f),m=g(p(v),2);{var S=x=>{var _=yL(),T=ke(_),C=p(T);De(C);var D=g(C,2);De(D);var P=g(D,2),R=p(P,!0);h(P),h(T);var A=g(T,2);{var M=L=>{var j=gL();K("click",j,()=>d("register")),k(L,j)};U(A,L=>{t.selfRegistration&&L(M)})}N(L=>{C.disabled=a(l),D.disabled=a(l),P.disabled=L,z(R,a(l)?"Signing in...":"Sign in")},[()=>a(l)||!a(r).trim()||!a(s).trim()]),Ke("submit",T,L=>{L.preventDefault(),c()}),qe(C,()=>a(r),L=>b(r,L)),qe(D,()=>a(s),L=>b(s,L)),k(x,_)},y=x=>{var _=_L(),T=ke(_),C=p(T);De(C);var D=g(C,2);De(D);var P=g(D,2);De(P);var R=g(P,2),A=p(R,!0);h(R),h(T);var M=g(T,2);N(L=>{C.disabled=a(l),D.disabled=a(l),P.disabled=a(l),R.disabled=L,z(A,a(l)?"Creating...":"Create account")},[()=>a(l)||!a(r).trim()||!a(s).trim()]),Ke("submit",T,L=>{L.preventDefault(),u()}),qe(C,()=>a(r),L=>b(r,L)),qe(D,()=>a(o),L=>b(o,L)),qe(P,()=>a(s),L=>b(s,L)),K("click",M,()=>d("login")),k(x,_)};U(m,x=>{a(n)==="login"?x(S):x(y,-1)})}var w=g(m,2);{var I=x=>{var _=wL(),T=p(_,!0);h(_),N(()=>z(T,a(i))),k(x,_)};U(w,x=>{a(i)&&x(I)})}h(v),h(f),k(e,f),ue()}_e(["click"]);function SL(){if(typeof window>"u")return null;const e=new URLSearchParams(window.location.search);if(e.get("mode")!=="satellite")return null;const t=e.get("payload");if(!t)return{error:"Satellite mode requires payload param"};try{return{payload:h3(t)}}catch(n){return{error:n.message}}}function IL(e){return e.kind==="float"?{docked:e.content,floats:[]}:{docked:{type:"slot",slotId:"satellite:root",viewId:null},floats:[]}}var EL=E('<header class="sh3-satellite-tabbar svelte-191z0e1" data-sh3-region="tabbar"><!> <!> <div class="sh3-satellite-floats-slot svelte-191z0e1" aria-hidden="true"></div></header> <main class="sh3-satellite-content svelte-191z0e1" data-sh3-region="content" data-sh3-layer="0"><!></main>',1),CL=E("<div><!> <!></div>");function AL(e,t){ce(t,!0),Ne(()=>{if(t.payload.kind==="float")G1(IL(t.payload).docked);else if(t.payload.kind==="app"){const c=t.payload.appId;queueMicrotask(()=>{lr(c,{skipLastApp:!0,skipSwitchToHome:!0})})}});var n=CL();let r;var s=p(n);{var o=c=>{var u=EL(),d=ke(u),f=p(d);Lm(f,{});var v=g(f,2);jm(v,{}),Wt(2),h(d);var m=g(d,2),S=p(m);As(S,{}),h(m),k(c,u)},i=c=>{As(c,{})};U(s,c=>{t.payload.kind==="app"?c(o):c(i,-1)})}var l=g(s,2);Pm(l,{}),h(n),N(()=>r=xe(n,1,"sh3-satellite-root svelte-191z0e1",null,r,{"sh3-satellite-app":t.payload.kind==="app"})),k(e,n),ue()}async function Jd(e){const t=e?.serverUrl??"",n=await UA();n.backends&&(Vi("workspace",n.backends.workspace),Vi("user",n.backends.user)),bp(t),A3();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");const s=SL();if(s){if("error"in s){r.textContent=`Invalid satellite payload: ${s.error}`;return}if(Vi("workspace",new gl),n.localOwner&&Hs("local"),dd(()=>bn.activeProjectId),_d(()=>bn.activeProjectId?"project":"tenant"),e?.shards)for(const l of e.shards)Hd(l);if(e?.apps)for(const l of e.apps)va(l);await Zd(e?.discoveredPackages),await SR({activateShardIds:s.payload.kind==="app"?[]:s.payload.activateShards}),ld(),at(AL,{target:r,props:{payload:s.payload}});return}let o=null;try{const l=await Ie(`${t}/api/boot`);l.ok&&(o=await l.json())}catch{}if(n.localOwner&&!e?.remoteAuth)o?(Xi(t,o),Hs(o.tenantId)):(sx(),Hs("local"));else if(o){Xi(t,o),Hs(o.tenantId);const{auth:l,session:c}=o;if(!c&&!l.guestAllowed){await TL(r,o);const u=await Ie(`${t}/api/boot`);u.ok&&(o=await u.json(),Xi(t,o),Hs(o.tenantId))}}if(await Zd(e?.discoveredPackages),e?.shards)for(const l of e.shards)Hd(l);if(e?.apps)for(const l of e.apps)va(l);const i={};e?.excludeShards&&(i.excludeShards=e.excludeShards),await xR(i),dd(()=>bn.activeProjectId),_d(()=>bn.activeProjectId?"project":"tenant"),ld(),at(bL,{target:r})}async function Zd(e){if(e?.length)for(const t of e)try{const n=t.bundleUrl.startsWith("http://")||t.bundleUrl.startsWith("https://"),r=gt(),s=t.bundleUrl.startsWith("/")?"":"/",o=n?t.bundleUrl:`${r}${s}${t.bundleUrl}`,i=await Ie(o);if(!i.ok){console.warn(`[sh3] Failed to fetch discovered package "${t.id}": HTTP ${i.status}`);continue}const l=await i.arrayBuffer(),c=await Wa(l);fu(c,{version:t.version,sourceRegistry:t.sourceRegistry??"",contractVersion:t.contractVersion??""}),console.log(`[sh3] Loaded discovered package: ${t.id}`)}catch(n){console.warn(`[sh3] Failed to load discovered package "${t.id}":`,n)}}function TL(e,t){return new Promise(n=>{const r=at(xL,{target:e,props:{selfRegistration:t.auth.selfRegistration,onSuccess:()=>{ft(r),n()}}})})}var RL=E('<div class="onboarding-error svelte-c2abmw" data-role="error-banner"> </div>'),PL=E('<div class="onboarding-wall svelte-c2abmw"><div class="onboarding-card svelte-c2abmw"><h1 class="onboarding-brand svelte-c2abmw">SH3</h1> <p class="onboarding-tagline svelte-c2abmw">Connect to your SH3 server</p> <form class="onboarding-form svelte-c2abmw"><input class="onboarding-input svelte-c2abmw" name="url" type="url" placeholder="https://my.sh3.example.com" autocomplete="url"/> <input class="onboarding-input svelte-c2abmw" name="label" type="text" placeholder="Friendly name (optional)"/> <button type="submit" class="onboarding-btn svelte-c2abmw" data-action="connect"> </button></form> <div class="onboarding-divider svelte-c2abmw">or</div> <button type="button" class="onboarding-btn-secondary svelte-c2abmw" data-action="local">Run locally (limited)</button> <p class="onboarding-hint svelte-c2abmw">Local-only documents, no installed-via-server apps.</p> <!></div></div>');function LL(e,t){ce(t,!0);let n=q(he(Oe(()=>t.prefillUrl))),r=q(he(Oe(()=>t.prefillLabel))),s=q(he(Oe(()=>t.error))),o=q(!1);async function i(){if(!(!a(n).trim()||a(o))){b(o,!0),b(s,null);try{const x=a(n).trim().replace(/\/$/,""),_=await fetch(`${x}/api/boot`,{credentials:"include"});if(!_.ok){b(s,"Not an SH3 server");return}let T;try{T=await _.json()}catch{b(s,"Not an SH3 server");return}if(!(!!T.auth&&typeof T.auth=="object"&&"required"in T.auth&&"guestAllowed"in T.auth&&"selfRegistration"in T.auth&&typeof T.tenantId=="string")){b(s,"Not an SH3 server");return}const D=typeof T.version=="string"?T.version:"unknown";t.onResolved({mode:"remote",url:x,label:a(r).trim()||x,version:D})}catch(x){b(s,`Could not reach ${a(n)} — ${x.message}`)}finally{b(o,!1)}}}function l(){t.onResolved({mode:"local"})}var c=PL(),u=p(c),d=g(p(u),4),f=p(d);De(f);var v=g(f,2);De(v);var m=g(v,2),S=p(m,!0);h(m),h(d);var y=g(d,4),w=g(y,4);{var I=x=>{var _=RL(),T=p(_,!0);h(_),N(()=>z(T,a(s))),k(x,_)};U(w,x=>{a(s)&&x(I)})}h(u),h(c),N(x=>{f.disabled=a(o),v.disabled=a(o),m.disabled=x,z(S,a(o)?"Connecting…":"Connect"),y.disabled=a(o)},[()=>a(o)||!a(n).trim()]),Ke("submit",d,x=>{x.preventDefault(),i()}),qe(f,()=>a(n),x=>b(n,x)),qe(v,()=>a(r),x=>b(r,x)),K("click",y,l),k(e,c),ue()}_e(["click"]);const bu="sh3:identity";function DL(){const e=localStorage.getItem(bu);if(!e)return null;let t;try{t=JSON.parse(e)}catch{return null}if(!t||typeof t!="object")return null;const n=t;return n.mode==="remote"?typeof n.url=="string"&&typeof n.label=="string"&&typeof n.version=="string"?{mode:"remote",url:n.url,label:n.label,version:n.version}:null:n.mode==="local"?{mode:"local"}:null}function Qd(e){localStorage.setItem(bu,JSON.stringify(e))}function ML(){localStorage.removeItem(bu)}const $d={manifest:{id:"sh3.server-onboarding",label:"Server Onboarding",version:"0.18.0",views:[]},activate(e){e.registerVerb({name:"switch",summary:"Clear the saved SH3 server and re-onboard",async run(){ML(),location.reload()}})}},jL=typeof window<"u"&&("__TAURI_INTERNALS__"in window||"__TAURI__"in window),nl=window.location.origin;async function ef(e){try{const t=await fetch(`${e}/api/boot`,{credentials:"include"});if(!t.ok)return!1;const n=await t.json().catch(()=>null);return!!n&&typeof n=="object"}catch{return!1}}function tf(e){return new Promise(t=>{const n=document.getElementById("app"),r=at(LL,{target:n,props:{prefillUrl:e.prefillUrl,prefillLabel:e.prefillLabel,error:e.error,onResolved:s=>{ft(r),t(s)}}})})}async function zL(){if(!jL)return{identity:null,serverUrl:nl};if(await ef(nl))return{identity:null,serverUrl:nl};let e=DL();e?.mode==="remote"?await ef(e.url)||(e=await tf({prefillUrl:e.url,prefillLabel:e.label,error:`Could not reach ${e.url}`}),Qd(e)):e||(e=await tf({prefillUrl:"",prefillLabel:"",error:null}),Qd(e));const t=e.mode==="remote"?e.url:"";return{identity:e,serverUrl:t}}async function OL(){const{identity:e,serverUrl:t}=await zL();if(e?.mode==="local"){fd(new qh),await Jd({serverUrl:"",shards:[$d]});return}bp(t),fd(new mS(t));let n=[];try{const r=await fetch(`${t}/api/packages`);r.ok&&(n=await r.json())}catch{}await Jd({discoveredPackages:n,serverUrl:t,remoteAuth:e?.mode==="remote",shards:e?[$d]:[]})}OL();
26
+ //# sourceMappingURL=index-C6sN7l5X.js.map