sh3-server 0.19.1 → 0.19.5

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,21 @@
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 a of s)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(s){const a={};return s.integrity&&(a.integrity=s.integrity),s.referrerPolicy&&(a.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?a.credentials="include":s.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(s){if(s.ep)return;s.ep=!0;const a=n(s);fetch(s.href,a)}})();const Cm="modulepreload",Tm=function(e){return"/"+e},Yc={},bi=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),l=o?.nonce||o?.getAttribute("nonce");s=Promise.allSettled(n.map(c=>{if(c=Tm(c),c in Yc)return;Yc[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":Cm,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 a(o){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return s.then(o=>{for(const l of o||[])l.status==="rejected"&&a(l.reason);return t().catch(a)})},Rm=1,Lm=2,Cd=4,Mm=8,Pm=16,Dm=1,Td=4,zm=8,jm=16,Om=1,Nm=2,qm=4,Sl=1,Rd=2,Bm=4,Fm=8,gi="[",yi="[!",Xc="[?",_i="]",dr={},Fe=Symbol(),zt=Symbol("filename"),Lr=Symbol("hmr"),Ld="http://www.w3.org/1999/xhtml",Zs="http://www.w3.org/2000/svg",Il="http://www.w3.org/1998/Math/MathML",Md="@attach",Pd=!1;var as=Array.isArray,Vm=Array.prototype.indexOf,Wr=Array.prototype.includes,wi=Array.from,Va=Object.keys,fr=Object.defineProperty,dn=Object.getOwnPropertyDescriptor,Dd=Object.getOwnPropertyDescriptors,zd=Object.prototype,Um=Array.prototype,ki=Object.getPrototypeOf,Gc=Object.isExtensible,Hm=Object.prototype.hasOwnProperty;function Mr(e){return typeof e=="function"}const jt=()=>{};function Jc(e){return typeof e?.then=="function"}function Km(e){return e()}function Ro(e){for(var t=0;t<e.length;t++)e[t]()}function jd(){var e,t,n=new Promise((r,s)=>{e=r,t=s});return{promise:n,resolve:e,reject:t}}function Wm(e,t,n=!1){return e===void 0?n?t():t:e}function Od(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 Ym(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 it=2,vr=4,Qs=8,El=1<<24,fn=16,pn=32,qn=64,Lo=128,Jt=512,$e=1024,at=2048,mn=4096,gt=8192,Ct=16384,Vn=32768,Mo=1<<25,bn=65536,Ps=1<<17,Nd=1<<18,$n=1<<19,qd=1<<20,In=1<<25,hr=65536,Po=1<<21,Yr=1<<22,Gn=1<<23,vt=Symbol("$state"),xi=Symbol("legacy props"),Xm=Symbol(""),Gm=Symbol("proxy path"),Jm=Symbol("hmr anchor"),kn=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},Ir=!!globalThis.document?.contentType&&globalThis.document.contentType.includes("xml"),Bd=1,$s=3,Un=8,Fd=11;function Vd(e){throw new Error("https://svelte.dev/e/experimental_async_required")}function Zm(){throw new Error("https://svelte.dev/e/invalid_default_snippet")}function Zc(){throw new Error("https://svelte.dev/e/invalid_snippet_arguments")}function is(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function Qm(){throw new Error("https://svelte.dev/e/missing_context")}function $m(){throw new Error("https://svelte.dev/e/snippet_without_render_tag")}function eb(e){throw new Error("https://svelte.dev/e/store_invalid_shape")}function tb(){throw new Error("https://svelte.dev/e/svelte_element_invalid_this_value")}function nb(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function rb(e,t){throw new Error("https://svelte.dev/e/component_api_changed")}function sb(e,t){throw new Error("https://svelte.dev/e/component_api_invalid_new")}function ab(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function ib(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function ob(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function lb(e){throw new Error("https://svelte.dev/e/effect_orphan")}function cb(){throw new Error("https://svelte.dev/e/effect_pending_outside_reaction")}function ub(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function db(){throw new Error("https://svelte.dev/e/fork_discarded")}function fb(){throw new Error("https://svelte.dev/e/fork_timing")}function vb(){throw new Error("https://svelte.dev/e/get_abort_signal_outside_reaction")}function hb(){throw new Error("https://svelte.dev/e/hydration_failed")}function Ud(e){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}function pb(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function mb(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function bb(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function gb(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function yb(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}function _b(e,t){console.warn("https://svelte.dev/e/assignment_value_stale")}function wb(e,t){console.warn("https://svelte.dev/e/binding_property_non_reactive")}function kb(e){console.warn("https://svelte.dev/e/console_log_state")}function xb(){console.warn("https://svelte.dev/e/derived_inert")}function Sb(e,t){console.warn("https://svelte.dev/e/event_handler_invalid")}function Ib(e){console.warn("https://svelte.dev/e/hydratable_missing_but_expected")}function ea(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function Eb(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_binding")}function Ab(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_mutation")}function Cb(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function Hd(e){console.warn("https://svelte.dev/e/state_proxy_equality_mismatch")}function Tb(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let ue=!1;function Ne(e){ue=e}let ge;function De(e){if(e===null)throw ea(),dr;return ge=e}function kt(){return De(qt(ge))}function h(e){if(ue){if(qt(ge)!==null)throw ea(),dr;ge=e}}function Rb(e){ue&&(ge=e.content)}function yt(e=1){if(ue){for(var t=e,n=ge;t--;)n=qt(n);ge=n}}function pr(e=!0){for(var t=0,n=ge;;){if(n.nodeType===Un){var r=n.data;if(r===_i){if(t===0)return n;t-=1}else(r===gi||r===yi||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var s=qt(n);e&&n.remove(),n=s}}function Al(e){if(!e||e.nodeType!==Un)throw ea(),dr;return e.data}function Kd(e){return e===this.v}function Wd(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function Yd(e){return!Wd(e,this.v)}let Lb=!1;function Mb(e){console.warn("https://svelte.dev/e/dynamic_void_element_content")}const Pb=[];function mr(e,t=!1,n=!1){return Ca(e,new Map,"",Pb,null,n)}function Ca(e,t,n,r,s=null,a=!1){if(typeof e=="object"&&e!==null){var o=t.get(e);if(o!==void 0)return o;if(e instanceof Map)return new Map(e);if(e instanceof Set)return new Set(e);if(as(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]=Ca(u,t,n,r,null,a))}return l}if(ki(e)===zd){l={},t.set(e,l),s!==null&&t.set(s,l);for(var d of Object.keys(e))l[d]=Ca(e[d],t,n,r,null,a);return l}if(e instanceof Date)return structuredClone(e);if(typeof e.toJSON=="function"&&!a)return Ca(e.toJSON(),t,n,r,e)}if(e instanceof EventTarget)return e;try{return structuredClone(e)}catch{return e}}let Cr=null;function Xd(e,t){const n=e.v;if(n===Fe)return;const r=Db(e),s=Ae,a=e.wv>s.wv||s.wv===0,o=a?"color: CornflowerBlue; font-weight: bold":"color: grey; font-weight: normal";if(console.groupCollapsed(e.label?`%c${r}%c ${e.label}`:`%c${r}%c`,o,a?"font-weight: normal":o,typeof n=="object"&&n!==null&&vt in n?mr(n,!0):n),r==="$derived"){const c=new Set(e.deps);for(const u of c)Xd(u)}if(e.created&&console.log(e.created),a&&e.updated)for(const c of e.updated.values())c.error&&console.log(c.error);if(t)for(var l of t.traces)console.log(l);console.groupEnd()}function Db(e){return e.f&(it|Yr)?"$derived":e.label?.startsWith("$")?"store":"$state"}function zb(e,t){var n=Cr;try{Cr={entries:new Map,reaction:Ae};var r=performance.now(),s=t(),a=(performance.now()-r).toFixed(2),o=Se(e);if(!ia())console.log(`${o} %cran outside of an effect (${a}ms)`,"color: grey");else if(Cr.entries.size===0)console.log(`${o} %cno reactive dependencies (${a}ms)`,"color: grey");else{console.group(`${o} %c(${a}ms)`,"color: grey");var l=Cr.entries;Se(()=>{for(const[c,u]of l)Xd(c,u)}),Cr=null,console.groupEnd()}return s}finally{Cr=n}}function jb(e,t){return e.label=t,Gd(e.v,t),e}function Gd(e,t){return e?.[Gm]?.(t),e}function Ob(e){const t=new Error,n=Nb();return n.length===0?null:(n.unshift(`
3
+ `),fr(t,"stack",{value:n.join(`
4
+ `)}),fr(t,"name",{value:e}),t)}function Nb(){const e=Error.stackTraceLimit;Error.stackTraceLimit=1/0;const t=new Error().stack;if(Error.stackTraceLimit=e,!t)return[];const n=t.split(`
5
+ `),r=[];for(let s=0;s<n.length;s++){const a=n[s],o=a.replaceAll("\\","/");if(a.trim()!=="Error"){if(a.includes("validate_each_keys"))return[];o.includes("svelte/src/internal")||o.includes("node_modules/.vite")||r.push(a)}}return r}let Le=null;function Xr(e){Le=e}let Ta=null;function qb(e,t,n,r,s,a){const o=Ta;Ta={type:t,file:n[zt],line:r,column:s,parent:o,...a};try{return e()}finally{Ta=o}}let Cl=null;function Qc(e){Cl=e}function Bb(){const e={};return[()=>(Jd(e)||Qm(),Tl(e)),t=>Rl(e,t)]}function Tl(e){return Si().get(e)}function Rl(e,t){return Si().set(e,t),t}function Jd(e){return Si().has(e)}function Fb(){return Si()}function ae(e,t=!1,n){Le={p:Le,i:!1,c:null,e:null,s:e,x:null,r:ye,l:null}}function ie(e){var t=Le,n=t.e;if(n!==null){t.e=null;for(var r of n)If(r)}return e!==void 0&&(t.x=e),t.i=!0,Le=t.p,e??{}}function Zd(){return!0}function Si(e){return Le===null&&is(),Le.c??=new Map(Vb(Le)||void 0)}function Vb(e){let t=e.p;for(;t!==null;){const n=t.c;if(n!==null)return n;t=t.p}return null}let rr=[];function Qd(){var e=rr;rr=[],Ro(e)}function _t(e){if(rr.length===0&&!Br){var t=rr;queueMicrotask(()=>{t===rr&&Qd()})}rr.push(e)}function Ub(){for(;rr.length>0;)Qd()}function $d(e){var t=ye;if(t===null)return Ae.f|=Gn,e;if(!(t.f&Vn)&&!(t.f&vr))throw e;En(e,t)}function En(e,t){for(;t!==null;){if(t.f&Lo){if(!(t.f&Vn))throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const Hb=-7169;function He(e,t){e.f=e.f&Hb|t}function Ll(e){e.f&Jt||e.deps===null?He(e,$e):He(e,mn)}function ef(e){if(e!==null)for(const t of e)!(t.f&it)||!(t.f&hr)||(t.f^=hr,ef(t.deps))}function tf(e,t,n){e.f&at?t.add(e):e.f&mn&&n.add(e),ef(e.deps),He(e,$e)}function nf(e,t,n){if(e==null)return t(void 0),jt;const r=Se(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}function Kb(e){let t;return nf(e,n=>t=n)(),t}let Do=!1,_s=!1,zo=Symbol();function Wb(e,t,n){const r=n[t]??={store:null,source:Ai(void 0),unsubscribe:jt};if(r.store!==e&&!(zo in n))if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=jt;else{var s=!0;r.unsubscribe=nf(e,a=>{s?r.source.v=a:k(r.source,a)}),s=!1}return e&&zo in n?Kb(e):i(r.source)}function Yb(e,t,n){let r=n[t];return r&&r.store!==e&&(r.unsubscribe(),r.unsubscribe=jt),e}function rf(e,t){return Ii(e,t),t}function Xb(e,t){var n=e[t];n.store!==null&&rf(n.store,n.source.v)}function Gb(){const e={};function t(){Ft(()=>{for(var n in e)e[n].unsubscribe();fr(e,zo,{enumerable:!1,value:!0})})}return[e,t]}function Ii(e,t){Do=!0;try{e.set(t)}finally{Do=!1}}function Jb(e,t,n){return Ii(e,n),t}function Zb(e,t,n=1){return Ii(e,t+n),t}function Qb(e,t,n=1){const r=t+n;return Ii(e,r),r}function $b(){_s=!0}function sf(e){var t=_s;try{return _s=!1,[e(),_s]}finally{_s=t}}const Ln=new Set;let _e=null,bt=null,jo=null,Br=!1,oo=!1,jr=null,Ra=null;var $c=0;let eg=1;class $t{id=eg++;current=new Map;previous=new Map;#e=new Set;#t=new Set;#n=new Set;#s=new Map;#r=new Map;#i=null;#a=[];#o=[];#l=new Set;#u=new Set;#c=new Map;#f=new Set;is_fork=!1;#h=!1;#v=new Set;#d(){return this.is_fork||this.#r.size>0}#g(){for(const r of this.#v)for(const s of r.#r.keys()){for(var t=!1,n=s;n.parent!==null;){if(this.#c.has(n)){t=!0;break}n=n.parent}if(!t)return!0}return!1}skip_effect(t){this.#c.has(t)||this.#c.set(t,{d:[],m:[]}),this.#f.delete(t)}unskip_effect(t,n=r=>this.schedule(r)){var r=this.#c.get(t);if(r){this.#c.delete(t);for(var s of r.d)He(s,at),n(s);for(s of r.m)He(s,mn),n(s)}this.#f.add(t)}#p(){if($c++>1e3&&(Ln.delete(this),tg()),!this.#d()){for(const l of this.#l)this.#u.delete(l),He(l,at),this.schedule(l);for(const l of this.#u)He(l,mn),this.schedule(l)}const t=this.#a;this.#a=[],this.apply();var n=jr=[],r=[],s=Ra=[];for(const l of t)try{this.#b(l,n,r)}catch(c){throw cf(l),c}if(_e=null,s.length>0){var a=$t.ensure();for(const l of s)a.schedule(l)}if(jr=null,Ra=null,this.#d()||this.#g()){this.#m(r),this.#m(n);for(const[l,c]of this.#c)lf(l,c)}else{this.#s.size===0&&Ln.delete(this),this.#l.clear(),this.#u.clear();for(const l of this.#e)l(this);this.#e.clear(),eu(r),eu(n),this.#i?.resolve()}var o=_e;if(this.#a.length>0){const l=o??=this;l.#a.push(...this.#a.filter(c=>!l.#a.includes(c)))}o!==null&&(Ln.add(o),o.#p())}#b(t,n,r){t.f^=$e;for(var s=t.first;s!==null;){var a=s.f,o=(a&(pn|qn))!==0,l=o&&(a&$e)!==0,c=l||(a&gt)!==0||this.#c.has(s);if(!c&&s.fn!==null){o?s.f^=$e:a&vr?n.push(s):ls(s)&&(a&fn&&this.#u.add(s),yr(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)tf(t[n],this.#l,this.#u)}capture(t,n,r=!1){t.v!==Fe&&!this.previous.has(t)&&this.previous.set(t,t.v),t.f&Gn||(this.current.set(t,[n,r]),bt?.set(t,n)),this.is_fork||(t.v=n)}activate(){_e=this}deactivate(){_e=null,bt=null}flush(){try{oo=!0,_e=this,this.#p()}finally{$c=0,jo=null,jr=null,Ra=null,oo=!1,_e=null,bt=null,or.clear()}}discard(){for(const t of this.#t)t(this);this.#t.clear(),this.#n.clear(),Ln.delete(this)}register_created_effect(t){this.#o.push(t)}#y(){for(const d of Ln){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&(fn|Yr)?d.schedule(v):d.#m([v])});d.activate();var a=new Set,o=new Map;for(var l of n)af(l,s,a,o);o=new Map;var c=[...d.current.keys()].filter(f=>this.current.has(f)?this.current.get(f)[0]!==f:!0);for(const f of this.#o)!(f.f&(Ct|gt|Ps))&&Ml(f,c,o)&&(f.f&(Yr|fn)?(He(f,at),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 Ln)d.#v.has(this)&&(d.#v.delete(this),d.#v.size===0&&!d.#d()&&(d.activate(),d.#p()))}increment(t,n){let r=this.#s.get(n)??0;if(this.#s.set(n,r+1),t){let s=this.#r.get(n)??0;this.#r.set(n,s+1)}}decrement(t,n,r){let s=this.#s.get(n)??0;if(s===1?this.#s.delete(n):this.#s.set(n,s-1),t){let a=this.#r.get(n)??0;a===1?this.#r.delete(n):this.#r.set(n,a-1)}this.#h||r||(this.#h=!0,_t(()=>{this.#h=!1,this.flush()}))}transfer_effects(t,n){for(const r of t)this.#l.add(r);for(const r of n)this.#u.add(r);t.clear(),n.clear()}oncommit(t){this.#e.add(t)}ondiscard(t){this.#t.add(t)}on_fork_commit(t){this.#n.add(t)}run_fork_commit_callbacks(){for(const t of this.#n)t(this);this.#n.clear()}settled(){return(this.#i??=jd()).promise}static ensure(){if(_e===null){const t=_e=new $t;oo||(Ln.add(_e),Br||_t(()=>{_e===t&&t.flush()}))}return _e}apply(){{bt=null;return}}schedule(t){if(jo=t,t.b?.is_pending&&t.f&(vr|Qs|El)&&!(t.f&Vn)){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var r=n.f;if(jr!==null&&n===ye&&(Ae===null||!(Ae.f&it))&&!Do)return;if(r&(qn|pn)){if(!(r&$e))return;n.f^=$e}}this.#a.push(n)}}function Jn(e){var t=Br;Br=!0;try{var n;for(e&&(_e!==null&&!_e.is_fork&&_e.flush(),n=e());;){if(Ub(),_e===null)return n;_e.flush()}}finally{Br=t}}function tg(){try{ub()}catch(e){En(e,jo)}}let Mn=null;function eu(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&(Ct|gt))&&ls(r)&&(Mn=new Set,yr(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Lf(r),Mn?.size>0)){or.clear();for(const s of Mn){if(s.f&(Ct|gt))continue;const a=[s];let o=s.parent;for(;o!==null;)Mn.has(o)&&(Mn.delete(o),a.push(o)),o=o.parent;for(let l=a.length-1;l>=0;l--){const c=a[l];c.f&(Ct|gt)||yr(c)}}Mn.clear()}}Mn=null}}function af(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(const s of e.reactions){const a=s.f;a&it?af(s,t,n,r):a&(Yr|fn)&&!(a&at)&&Ml(s,t,r)&&(He(s,at),Pl(s))}}function of(e,t){if(e.reactions!==null)for(const n of e.reactions){const r=n.f;r&it?of(n,t):r&Ps&&(He(n,at),t.add(n))}}function Ml(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(Wr.call(t,s))return!0;if(s.f&it&&Ml(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function Pl(e){_e.schedule(e)}let Ua=[];function ng(){Jn(()=>{const e=Ua;Ua=[];for(const t of e)gr(t)})}function rg(e){var t=Rt(0),n=!0,r=void 0;return i(t),Af(()=>{if(n){var s=bt;try{bt=null,r=e()}finally{bt=s}return}Ua.length===0&&_t(ng),Ua.push(t)}),n=!1,r}function lf(e,t){if(!(e.f&pn&&e.f&$e)){e.f&at?t.d.push(e):e.f&mn&&t.m.push(e),He(e,$e);for(var n=e.first;n!==null;)lf(n,t),n=n.next}}function cf(e){He(e,$e);for(var t=e.first;t!==null;)cf(t),t=t.next}function sg(e){Vd(),_e!==null&&fb();var t=$t.ensure();t.is_fork=!0,bt=new Map;var n=!1,r=t.settled();return Jn(e),{commit:async()=>{if(n){await r;return}Ln.has(t)||db(),n=!0,t.is_fork=!1;for(var[s,[a]]of t.current)s.v=a,s.wv=Ka();t.activate(),t.run_fork_commit_callbacks(),t.deactivate(),Jn(()=>{var o=new Set;for(var l of t.current.keys())of(l,o);pg(o),mf()}),t.flush(),await r},discard:()=>{for(var s of t.current.keys())s.wv=Ka();!n&&Ln.has(t)&&t.discard()}}}function ag(e){let t=0,n=Rt(0),r;return()=>{ia()&&(i(n),Ze(()=>(t===0&&(r=Se(()=>e(()=>xn(n)))),t+=1,()=>{_t(()=>{t-=1,t===0&&(r?.(),r=void 0,xn(n))})})))}}var ig=bn|$n;function uf(e,t,n,r){new og(e,t,n,r)}class og{parent;is_pending=!1;transform_error;#e;#t=ue?ge:null;#n;#s;#r;#i=null;#a=null;#o=null;#l=null;#u=0;#c=0;#f=!1;#h=new Set;#v=new Set;#d=null;#g=ag(()=>(this.#d=Rt(this.#u),()=>{this.#d=null}));constructor(t,n,r,s){this.#e=t,this.#n=n,this.#s=a=>{var o=ye;o.b=this,o.f|=Lo,r(a)},this.parent=ye.b,this.transform_error=s??this.parent?.transform_error??(a=>a),this.#r=Rn(()=>{if(ue){const a=this.#t;kt();const o=a.data===yi;if(a.data.startsWith(Xc)){const c=JSON.parse(a.data.slice(Xc.length));this.#b(c)}else o?this.#m():this.#p()}else this.#y()},ig),ue&&(this.#e=ge)}#p(){try{this.#i=mt(()=>this.#s(this.#e))}catch(t){this.error(t)}}#b(t){const n=this.#n.failed;n&&(this.#o=mt(()=>{n(this.#e,()=>t,()=>()=>{})}))}#m(){const t=this.#n.pending;t&&(this.is_pending=!0,this.#a=mt(()=>t(this.#e)),_t(()=>{var n=this.#l=document.createDocumentFragment(),r=ct();n.append(r),this.#i=this.#w(()=>mt(()=>this.#s(r))),this.#c===0&&(this.#e.before(n),this.#l=null,lr(this.#a,()=>{this.#a=null}),this.#_(_e))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#c=0,this.#u=0,this.#i=mt(()=>{this.#s(this.#e)}),this.#c>0){var t=this.#l=document.createDocumentFragment();Vl(this.#i,t);const n=this.#n.pending;this.#a=mt(()=>n(this.#e))}else this.#_(_e)}catch(n){this.error(n)}}#_(t){this.is_pending=!1,t.transfer_effects(this.#h,this.#v)}defer_effect(t){tf(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=ye,r=Ae,s=Le;pt(this.#r),Lt(this.#r),Xr(this.#r.ctx);try{return $t.ensure(),t()}catch(a){return $d(a),null}finally{pt(n),Lt(r),Xr(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,_t(()=>{this.#f=!1,this.#d&&Cn(this.#d,this.#u)}))}get_effect_pending(){return this.#g(),i(this.#d)}error(t){if(!this.#n.onerror&&!this.#n.failed)throw t;_e?.is_fork?(this.#i&&_e.skip_effect(this.#i),this.#a&&_e.skip_effect(this.#a),this.#o&&_e.skip_effect(this.#o),_e.on_fork_commit(()=>{this.#x(t)})):this.#x(t)}#x(t){this.#i&&(nt(this.#i),this.#i=null),this.#a&&(nt(this.#a),this.#a=null),this.#o&&(nt(this.#o),this.#o=null),ue&&(De(this.#t),yt(),De(pr()));var n=this.#n.onerror;let r=this.#n.failed;var s=!1,a=!1;const o=()=>{if(s){Tb();return}s=!0,a&&yb(),this.#o!==null&&lr(this.#o,()=>{this.#o=null}),this.#w(()=>{this.#y()})},l=c=>{try{a=!0,n?.(c,o),a=!1}catch(u){En(u,this.#r&&this.#r.parent)}r&&(this.#o=this.#w(()=>{try{return mt(()=>{var u=ye;u.b=this,u.f|=Lo,r(this.#e,()=>c,()=>o)})}catch(u){return En(u,this.#r.parent),null}}))};_t(()=>{var c;try{c=this.transform_error(t)}catch(u){En(u,this.#r&&this.#r.parent);return}c!==null&&typeof c=="object"&&typeof c.then=="function"?c.then(l,u=>En(u,this.#r&&this.#r.parent)):l(c)})}}function lg(){ye===null&&cb();var e=ye.b;return e===null?0:e.get_effect_pending()}function ta(e,t,n,r){const s=ra;var a=e.filter(v=>!v.settled);if(n.length===0&&a.length===0){r(t.map(s));return}var o=ye,l=Ei(),c=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(v=>v.promise)):null;function u(v){l();try{r(v)}catch(m){o.f&Ct||En(m,o)}br()}if(n.length===0){c.then(()=>u(t.map(s)));return}var d=na();function f(){Promise.all(n.map(v=>ff(v))).then(v=>u([...t.map(s),...v])).catch(v=>En(v,o)).finally(()=>d())}c?c.then(()=>{l(),f(),br()}):f()}function df(e,t){ta(e,[],[],t)}function Ei(){var e=ye,t=Ae,n=Le,r=_e;return function(a=!0){pt(e),Lt(t),Xr(n),a&&!(e.f&Ct)&&(r?.activate(),r?.apply())}}async function cg(e){var t=Ei(),n=await e;return()=>(t(),n)}async function Oo(e){var t=Es;queueMicrotask(()=>{Es===t&&La(null)});var n=await e;return()=>(La(t),queueMicrotask(()=>{Es===t&&La(null)}),n)}async function*ug(e){const t=e[Symbol.asyncIterator]?.()??e[Symbol.iterator]?.();if(t===void 0)throw new TypeError("value is not async iterable");let n=!1;try{for(;;){const{done:s,value:a}=(await Oo(t.next()))();if(s){n=!0;break}var r=Es;yield a,La(r)}}finally{if(!n&&t.return!==void 0)return(await Oo(t.return()))().value}}function br(e=!0){pt(null),Lt(null),Xr(null),e&&_e?.deactivate()}function dg(e){const t=Ei(),n=na();var r=ye,s=null;const a=u=>{s={error:u},Bo(r)||En(u,r)};var o=Promise.resolve(e[0]()).catch(a),l={promise:o,settled:!1},c=[l];o.finally(()=>{l.settled=!0,br()});for(const u of e.slice(1)){o=o.then(()=>{if(t(),s)throw s.error;if(Bo(r))throw kn;return u()}).catch(a);const d={promise:o,settled:!1};c.push(d),o.finally(()=>{d.settled=!0,br()})}return o.then(()=>Promise.resolve()).finally(()=>n()),c}function fg(e){return Promise.all(e.map(t=>t.promise))}function na(){var e=ye,t=e.b,n=_e,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 Es=null;function La(e){Es=e}function ra(e){var t=it|at;return ye!==null&&(ye.f|=$n),{ctx:Le,deps:null,effects:null,equals:Kd,f:t,fn:e,reactions:null,rv:0,v:Fe,wv:0,parent:ye,ac:null}}function ff(e,t,n){let r=ye;r===null&&nb();var s=void 0,a=Rt(Fe),o=!Ae,l=new Map;return Eg(()=>{var c=ye,u=jd();s=u.promise;try{Promise.resolve(e()).then(u.resolve,u.reject).finally(br)}catch(m){u.reject(m),br()}var d=_e;if(o){if(c.f&Vn)var f=na();if(r.b.is_rendered())l.get(d)?.reject(kn),l.delete(d);else{for(const m of l.values())m.reject(kn);l.clear()}l.set(d,u)}const v=(m,S=void 0)=>{if(f){var g=S===kn;f(g)}if(!(S===kn||c.f&Ct)){if(d.activate(),S)a.f|=Gn,Cn(a,S);else{a.f&Gn&&(a.f^=Gn),Cn(a,m);for(const[b,A]of l){if(l.delete(b),b===d)break;A.reject(kn)}}d.deactivate()}};u.promise.then(v,m=>v(null,m||"unknown"))}),Ft(()=>{for(const c of l.values())c.reject(kn)}),new Promise(c=>{function u(d){function f(){d===s?c(a):u(s)}d.then(f,f)}u(s)})}function V(e){const t=ra(e);return Df(t),t}function Dl(e){const t=ra(e);return t.equals=Yd,t}function vg(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)nt(t[n])}}function zl(e){var t,n=ye,r=e.parent;if(!Bn&&r!==null&&r.f&(Ct|gt))return xb(),e.v;pt(r);try{e.f&=~hr,vg(e),t=Of(e)}finally{pt(n)}return t}function vf(e){var t=zl(e);if(!e.equals(t)&&(e.wv=Ka(),(!_e?.is_fork||e.deps===null)&&(_e!==null?_e.capture(e,t,!0):e.v=t,e.deps===null))){He(e,$e);return}Bn||(bt!==null?(ia()||_e?.is_fork)&&bt.set(e,t):Ll(e))}function hg(e){if(e.effects!==null)for(const t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(kn),t.teardown=jt,t.ac=null,Ds(t,0),Bl(t))}function hf(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&yr(t)}let Ha=new Set;const or=new Map;function pg(e){Ha=e}let pf=!1;function Rt(e,t){var n={f:0,v:e,reactions:null,equals:Kd,rv:0,wv:0};return n}function U(e,t){const n=Rt(e);return Df(n),n}function Ai(e,t=!1,n=!0){const r=Rt(e);return t||(r.equals=Yd),r}function mg(e,t){return k(e,Se(()=>i(e))),t}function k(e,t,n=!1){Ae!==null&&(!cn||Ae.f&Ps)&&Zd()&&Ae.f&(it|fn|Yr|Ps)&&(Zt===null||!Wr.call(Zt,e))&&gb();let r=n?ve(t):t;return Cn(e,r,Ra)}function Cn(e,t,n=null){if(!e.equals(t)){or.set(e,Bn?t:e.v);var r=$t.ensure();if(r.capture(e,t),e.f&it){const s=e;e.f&at&&zl(s),bt===null&&Ll(s)}e.wv=Ka(),bf(e,at,n),ye!==null&&ye.f&$e&&!(ye.f&(pn|qn))&&(Yt===null?Lg([e]):Yt.push(e)),!r.is_fork&&Ha.size>0&&!pf&&mf()}return t}function mf(){pf=!1;for(const e of Ha)e.f&$e&&He(e,mn),ls(e)&&yr(e);Ha.clear()}function gr(e,t=1){var n=i(e),r=t===1?n++:n--;return k(e,n),r}function bg(e,t=1){var n=i(e);return k(e,t===1?++n:--n)}function xn(e){k(e,e.v+1)}function bf(e,t,n){var r=e.reactions;if(r!==null)for(var s=r.length,a=0;a<s;a++){var o=r[a],l=o.f,c=(l&at)===0;if(c&&He(o,t),l&it){var u=o;bt?.delete(u),l&hr||(l&Jt&&(o.f|=hr),bf(u,mn,n))}else if(c){var d=o;l&fn&&Mn!==null&&Mn.add(d),n!==null?n.push(d):Pl(d)}}}function ve(e){if(typeof e!="object"||e===null||vt in e)return e;const t=ki(e);if(t!==zd&&t!==Um)return e;var n=new Map,r=as(e),s=U(0),a=zn,o=l=>{if(zn===a)return l();var c=Ae,u=zn;Lt(null),ru(a);var d=l();return Lt(c),ru(u),d};return r&&n.set("length",U(e.length)),new Proxy(e,{defineProperty(l,c,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&mb();var d=n.get(c);return d===void 0?o(()=>{var f=U(u.value);return n.set(c,f),f}):k(d,u.value,!0),!0},deleteProperty(l,c){var u=n.get(c);if(u===void 0){if(c in l){const d=o(()=>U(Fe));n.set(c,d),xn(s)}}else k(u,Fe),xn(s);return!0},get(l,c,u){if(c===vt)return e;var d=n.get(c),f=c in l;if(d===void 0&&(!f||dn(l,c)?.writable)&&(d=o(()=>{var m=ve(f?l[c]:Fe),S=U(m);return S}),n.set(c,d)),d!==void 0){var v=i(d);return v===Fe?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=i(d))}else if(u===void 0){var f=n.get(c),v=f?.v;if(f!==void 0&&v!==Fe)return{enumerable:!0,configurable:!0,value:v,writable:!0}}return u},has(l,c){if(c===vt)return!0;var u=n.get(c),d=u!==void 0&&u.v!==Fe||Reflect.has(l,c);if(u!==void 0||ye!==null&&(!d||dn(l,c)?.writable)){u===void 0&&(u=o(()=>{var v=d?ve(l[c]):Fe,m=U(v);return m}),n.set(c,u));var f=i(u);if(f===Fe)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?k(S,Fe):m in l&&(S=o(()=>U(Fe)),n.set(m+"",S))}if(f===void 0)(!v||dn(l,c)?.writable)&&(f=o(()=>U(void 0)),k(f,ve(u)),n.set(c,f));else{v=f.v!==Fe;var g=o(()=>ve(u));k(f,g)}var b=Reflect.getOwnPropertyDescriptor(l,c);if(b?.set&&b.set.call(d,u),!v){if(r&&typeof c=="string"){var A=n.get("length"),w=Number(c);Number.isInteger(w)&&w>=A.v&&k(A,w+1)}xn(s)}return!0},ownKeys(l){i(s);var c=Reflect.ownKeys(l).filter(f=>{var v=n.get(f);return v===void 0||v.v!==Fe});for(var[u,d]of n)d.v!==Fe&&!(u in l)&&c.push(u);return c},setPrototypeOf(){bb()}})}function Gr(e){try{if(e!==null&&typeof e=="object"&&vt in e)return e[vt]}catch{}return e}function gf(e,t){return Object.is(Gr(e),Gr(t))}function gg(e,t,n=!0){try{e===t!=(Gr(e)===Gr(t))&&Hd(n?"===":"!==")}catch{}return e===t===n}function yg(e,t,n=!0){return e==t!=(Gr(e)==Gr(t))&&Hd(),e==t===n}var No,yf,jl,_f,wf;function qo(){if(No===void 0){No=window,yf=document,jl=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;_f=dn(t,"firstChild").get,wf=dn(t,"nextSibling").get,Gc(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),Gc(n)&&(n.__t=void 0)}}function ct(e=""){return document.createTextNode(e)}function Ve(e){return _f.call(e)}function qt(e){return wf.call(e)}function p(e,t){if(!ue)return Ve(e);var n=Ve(ge);if(n===null)n=ge.appendChild(ct());else if(t&&n.nodeType!==$s){var r=ct();return n?.before(r),De(r),r}return t&&Ci(n),De(n),n}function fe(e,t=!1){if(!ue){var n=Ve(e);return n instanceof Comment&&n.data===""?qt(n):n}if(t){if(ge?.nodeType!==$s){var r=ct();return ge?.before(r),De(r),r}Ci(ge)}return ge}function _(e,t=1,n=!1){let r=ue?ge:e;for(var s;t--;)s=r,r=qt(r);if(!ue)return r;if(n){if(r?.nodeType!==$s){var a=ct();return r===null?s?.after(a):r.before(a),De(a),a}Ci(r)}return De(r),r}function Ol(e){e.textContent=""}function kf(){return!1}function er(e,t,n){let r=n?{is:n}:void 0;return document.createElementNS(t??Ld,e,r)}function _g(){return document.createDocumentFragment()}function xf(e=""){return document.createComment(e)}function wg(e,t,n=""){if(t.startsWith("xlink:")){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n);return}return e.setAttribute(t,n)}function Ci(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===$s;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function sa(e,t){if(t){const n=document.body;e.autofocus=!0,_t(()=>{document.activeElement===n&&e.focus()})}}function Nl(e){ue&&Ve(e)!==null&&Ol(e)}let tu=!1;function Sf(){tu||(tu=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function Mt(e,t,n,r=!0){r&&n();for(var s of t)e.addEventListener(s,n);Ft(()=>{for(var a of t)e.removeEventListener(a,n)})}function tr(e){var t=Ae,n=ye;Lt(null),pt(null);try{return e()}finally{Lt(t),pt(n)}}function aa(e,t,n,r=n){e.addEventListener(t,()=>tr(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),Sf()}function ql(e){ye===null&&(Ae===null&&lb(),ob()),Bn&&ib()}function kg(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function Pt(e,t){var n=ye;n!==null&&n.f&gt&&(e|=gt);var r={ctx:Le,deps:null,nodes:null,f:e|at|Jt,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};_e?.register_created_effect(r);var s=r;if(e&vr)jr!==null?jr.push(r):$t.ensure().schedule(r);else if(t!==null){try{yr(r)}catch(o){throw nt(r),o}s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&!(s.f&$n)&&(s=s.first,e&fn&&e&bn&&s!==null&&(s.f|=bn))}if(s!==null&&(s.parent=n,n!==null&&kg(s,n),Ae!==null&&Ae.f&it&&!(e&qn))){var a=Ae;(a.effects??=[]).push(s)}return r}function ia(){return Ae!==null&&!cn}function Ft(e){const t=Pt(Qs,null);return He(t,$e),t.teardown=e,t}function Ie(e){ql();var t=ye.f,n=!Ae&&(t&pn)!==0&&(t&Vn)===0;if(n){var r=Le;(r.e??=[]).push(e)}else return If(e)}function If(e){return Pt(vr|qd,e)}function Ef(e){return ql(),Pt(Qs|qd,e)}function Af(e){return Pt(Ps,e)}function os(e){$t.ensure();const t=Pt(qn|$n,e);return()=>{nt(t)}}function xg(e){$t.ensure();const t=Pt(qn|$n,e);return(n={})=>new Promise(r=>{n.outro?lr(t,()=>{nt(t),r(void 0)}):(nt(t),r(void 0))})}function Bt(e){return Pt(vr,e)}function Sg(e,t){var n=Le,r={effect:null,ran:!1,deps:e};n.l.$.push(r),r.effect=Ze(()=>{if(e(),!r.ran){r.ran=!0;var s=ye;try{pt(s.parent),Se(t)}finally{pt(s)}}})}function Ig(){var e=Le;Ze(()=>{for(var t of e.l.$){t.deps();var n=t.effect;n.f&$e&&n.deps!==null&&He(n,mn),ls(n)&&yr(n),t.ran=!1}})}function Eg(e){return Pt(Yr|$n,e)}function Ze(e,t=0){return Pt(Qs|t,e)}function N(e,t=[],n=[],r=[]){ta(r,t,n,s=>{Pt(Qs,()=>e(...s.map(i)))})}function Ag(e,t=[],n=[],r=[]){if(n.length>0||r.length>0)var s=na();ta(r,t,n,a=>{Pt(vr,()=>e(...a.map(i))),s&&s()})}function Rn(e,t=0){var n=Pt(fn|t,e);return n}function Cf(e,t=0){var n=Pt(El|t,e);return n}function mt(e){return Pt(pn|$n,e)}function Tf(e){var t=e.teardown;if(t!==null){const n=Bn,r=Ae;nu(!0),Lt(null);try{t.call(null)}finally{nu(n),Lt(r)}}}function Bl(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&tr(()=>{s.abort(kn)});var r=n.next;n.f&qn?n.parent=null:nt(n,t),n=r}}function Cg(e){for(var t=e.first;t!==null;){var n=t.next;t.f&pn||nt(t),t=n}}function nt(e,t=!0){var n=!1;(t||e.f&Nd)&&e.nodes!==null&&e.nodes.end!==null&&(Rf(e.nodes.start,e.nodes.end),n=!0),He(e,Mo),Bl(e,t&&!n),Ds(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const a of r)a.stop();Tf(e),e.f^=Mo,e.f|=Ct;var s=e.parent;s!==null&&s.first!==null&&Lf(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Rf(e,t){for(;e!==null;){var n=e===t?null:qt(e);e.remove(),e=n}}function Lf(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=[];Mf(e,r,!0);var s=()=>{n&&nt(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||s();for(var l of r)l.out(o)}else s()}function Mf(e,t,n){if(!(e.f&gt)){e.f^=gt;var r=e.nodes&&e.nodes.t;if(r!==null)for(const l of r)(l.is_global||n)&&t.push(l);for(var s=e.first;s!==null;){var a=s.next;if(!(s.f&qn)){var o=(s.f&bn)!==0||(s.f&pn)!==0&&(e.f&fn)!==0;Mf(s,t,o?n:!1)}s=a}}}function Fl(e){Pf(e,!0)}function Pf(e,t){if(e.f&gt){e.f^=gt,e.f&$e||(He(e,at),$t.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&bn)!==0||(n.f&pn)!==0;Pf(n,s?t:!1),n=r}var a=e.nodes&&e.nodes.t;if(a!==null)for(const o of a)(o.is_global||t)&&o.in()}}function Bo(e=ye){return(e.f&Ct)!==0}function Vl(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:qt(n);t.append(n),n=s}}let Pr=null;function Tg(e){var t=Pr;try{if(Pr=new Set,Se(e),t!==null)for(var n of Pr)t.add(n);return Pr}finally{Pr=t}}function Rg(e){for(var t of Tg(e))Cn(t,t.v)}let Ma=!1,Bn=!1;function nu(e){Bn=e}let Ae=null,cn=!1;function Lt(e){Ae=e}let ye=null;function pt(e){ye=e}let Zt=null;function Df(e){Ae!==null&&(Zt===null?Zt=[e]:Zt.push(e))}let It=null,Dt=0,Yt=null;function Lg(e){Yt=e}let zf=1,sr=0,zn=sr;function ru(e){zn=e}function Ka(){return++zf}function ls(e){var t=e.f;if(t&at)return!0;if(t&it&&(e.f&=~hr),t&mn){for(var n=e.deps,r=n.length,s=0;s<r;s++){var a=n[s];if(ls(a)&&vf(a),a.wv>e.wv)return!0}t&Jt&&bt===null&&He(e,$e)}return!1}function jf(e,t,n=!0){var r=e.reactions;if(r!==null&&!(Zt!==null&&Wr.call(Zt,e)))for(var s=0;s<r.length;s++){var a=r[s];a.f&it?jf(a,t,!1):t===a&&(n?He(a,at):a.f&$e&&He(a,mn),Pl(a))}}function Of(e){var t=It,n=Dt,r=Yt,s=Ae,a=Zt,o=Le,l=cn,c=zn,u=e.f;It=null,Dt=0,Yt=null,Ae=u&(pn|qn)?null:e,Zt=null,Xr(e.ctx),cn=!1,zn=++sr,e.ac!==null&&(tr(()=>{e.ac.abort(kn)}),e.ac=null);try{e.f|=Po;var d=e.fn,f=d();e.f|=Vn;var v=e.deps,m=_e?.is_fork;if(It!==null){var S;if(m||Ds(e,Dt),v!==null&&Dt>0)for(v.length=Dt+It.length,S=0;S<It.length;S++)v[Dt+S]=It[S];else e.deps=v=It;if(ia()&&e.f&Jt)for(S=Dt;S<v.length;S++)(v[S].reactions??=[]).push(e)}else!m&&v!==null&&Dt<v.length&&(Ds(e,Dt),v.length=Dt);if(Zd()&&Yt!==null&&!cn&&v!==null&&!(e.f&(it|mn|at)))for(S=0;S<Yt.length;S++)jf(Yt[S],e);if(s!==null&&s!==e){if(sr++,s.deps!==null)for(let g=0;g<n;g+=1)s.deps[g].rv=sr;if(t!==null)for(const g of t)g.rv=sr;Yt!==null&&(r===null?r=Yt:r.push(...Yt))}return e.f&Gn&&(e.f^=Gn),f}catch(g){return $d(g)}finally{e.f^=Po,It=t,Dt=n,Yt=r,Ae=s,Zt=a,Xr(o),cn=l,zn=c}}function Mg(e,t){let n=t.reactions;if(n!==null){var r=Vm.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&it&&(It===null||!Wr.call(It,t))){var a=t;a.f&Jt&&(a.f^=Jt,a.f&=~hr),a.v!==Fe&&Ll(a),hg(a),Ds(a,0)}}function Ds(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)Mg(e,n[r])}function yr(e){var t=e.f;if(!(t&Ct)){He(e,$e);var n=ye,r=Ma;ye=e,Ma=!0;try{t&(fn|El)?Cg(e):Bl(e),Tf(e);var s=Of(e);e.teardown=typeof s=="function"?s:null,e.wv=zf;var a;Pd&&Lb&&e.f&at&&e.deps}finally{Ma=r,ye=n}}}async function oa(){await Promise.resolve(),Jn()}function Pg(){return $t.ensure().settled()}function i(e){var t=e.f,n=(t&it)!==0;if(Pr?.add(e),Ae!==null&&!cn){var r=ye!==null&&(ye.f&Ct)!==0;if(!r&&(Zt===null||!Wr.call(Zt,e))){var s=Ae.deps;if(Ae.f&Po)e.rv<sr&&(e.rv=sr,It===null&&s!==null&&s[Dt]===e?Dt++:It===null?It=[e]:It.push(e));else{(Ae.deps??=[]).push(e);var a=e.reactions;a===null?e.reactions=[Ae]:Wr.call(a,Ae)||a.push(Ae)}}}if(Bn&&or.has(e))return or.get(e);if(n){var o=e;if(Bn){var l=o.v;return(!(o.f&$e)&&o.reactions!==null||qf(o))&&(l=zl(o)),or.set(o,l),l}var c=(o.f&Jt)===0&&!cn&&Ae!==null&&(Ma||(Ae.f&Jt)!==0),u=(o.f&Vn)===0;ls(o)&&(c&&(o.f|=Jt),vf(o)),c&&!u&&(hf(o),Nf(o))}if(bt?.has(e))return bt.get(e);if(e.f&Gn)throw e.v;return e.v}function Nf(e){if(e.f|=Jt,e.deps!==null)for(const t of e.deps)(t.reactions??=[]).push(e),t.f&it&&!(t.f&Jt)&&(hf(t),Nf(t))}function qf(e){if(e.v===Fe)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(or.has(t)||t.f&it&&qf(t))return!0;return!1}function Dg(e){return e&&i(e)}function Se(e){var t=cn;try{return cn=!0,e()}finally{cn=t}}function Ul(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if(vt in e)Wa(e);else if(!Array.isArray(e))for(let t in e){const n=e[t];typeof n=="object"&&n&&vt in n&&Wa(n)}}}function Wa(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{Wa(e[r],t)}catch{}const n=ki(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){const r=Dd(n);for(let s in r){const a=r[s].get;if(a)try{a.call(e)}catch{}}}}}function zg(e,t){if(Vd(),ue){const n=window.__svelte?.h;if(n?.has(e))return n.get(e);Ib()}return t()}const ws=Symbol("events"),Bf=new Set,Fo=new Set;function jg(e){if(!ue)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 Ff(e,t,n,r={}){function s(a){if(r.capture||Vo.call(t,a),!a.cancelBubble)return tr(()=>n?.call(this,a))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?_t(()=>{t.addEventListener(e,s,r)}):t.addEventListener(e,s,r),s}function Ue(e,t,n,r,s){var a={capture:r,passive:s},o=Ff(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&Ft(()=>{t.removeEventListener(e,o,a)})}function K(e,t,n){(t[ws]??={})[e]=n}function me(e){for(var t=0;t<e.length;t++)Bf.add(e[t]);for(var n of Fo)n(e)}let su=null;function Vo(e){var t=this,n=t.ownerDocument,r=e.type,s=e.composedPath?.()||[],a=s[0]||e.target;su=e;var o=0,l=su===e&&e[ws];if(l){var c=s.indexOf(l);if(c!==-1&&(t===document||t===window)){e[ws]=t;return}var u=s.indexOf(t);if(u===-1)return;c<=u&&(o=c)}if(a=s[o]||e.target,a!==t){fr(e,"currentTarget",{configurable:!0,get(){return a||n}});var d=Ae,f=ye;Lt(null),pt(null);try{for(var v,m=[];a!==null;){var S=a.assignedSlot||a.parentNode||a.host||null;try{var g=a[ws]?.[r];g!=null&&(!a.disabled||e.target===a)&&g.call(a,e)}catch(b){v?m.push(b):v=b}if(e.cancelBubble||S===t||S===null)break;a=S}if(v){for(let b of m)queueMicrotask(()=>{throw b});throw v}}finally{e[ws]=t,delete e.currentTarget,Lt(d),pt(f)}}}function Og(e,t,n,r,s,a=!1,o=!1){let l,c;try{l=e()}catch(u){c=u}if(typeof l!="function"&&(a||l!=null||c)){const u=r?.[zt];s?`${u}${s[0]}${s[1]}`:`${u}`;const d=n[0]?.eventPhase<Event.BUBBLING_PHASE?"capture":"";if(n[0]?.type+d,Sb(),c)throw c}l?.apply(t,n)}const Ng=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function Vf(e){return Ng?.createHTML(e)??e}function Hl(e){var t=er("template");return t.innerHTML=Vf(e.replaceAll("<!>","<!---->")),t.content}const qg=Ir?"template":"TEMPLATE",Bg=Ir?"script":"SCRIPT";function rt(e,t){var n=ye;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function E(e,t){var n=(t&Sl)!==0,r=(t&Rd)!==0,s,a=!e.startsWith("<!>");return()=>{if(ue)return rt(ge,null),ge;s===void 0&&(s=Hl(a?e:"<!>"+e),n||(s=Ve(s)));var o=r||jl?document.importNode(s,!0):s.cloneNode(!0);if(n){var l=Ve(o),c=o.lastChild;rt(l,c)}else rt(o,o);return o}}function Uf(e,t,n="svg"){var r=!e.startsWith("<!>"),s=(t&Sl)!==0,a=`<${n}>${r?e:"<!>"+e}</${n}>`,o;return()=>{if(ue)return rt(ge,null),ge;if(!o){var l=Hl(a),c=Ve(l);if(s)for(o=document.createDocumentFragment();Ve(c);)o.appendChild(Ve(c));else o=Ve(c)}var u=o.cloneNode(!0);if(s){var d=Ve(u),f=u.lastChild;rt(d,f)}else rt(u,u);return u}}function Kl(e,t){return Uf(e,t,"svg")}function Fg(e,t){return Uf(e,t,"math")}function Hf(e,t){var n=_g();for(var r of e){if(typeof r=="string"){n.append(ct(r));continue}if(r===void 0||r[0][0]==="/"){n.append(xf(r?r[0].slice(3):""));continue}const[l,c,...u]=r,d=l==="svg"?Zs:l==="math"?Il:t;var s=er(l,d,c?.is);for(var a in c)wg(s,a,c[a]);if(u.length>0){var o=s.nodeName===qg?s.content:s;o.append(Hf(u,s.nodeName==="foreignObject"?void 0:d))}n.append(s)}return n}function Vg(e,t){var n=(t&Sl)!==0,r=(t&Rd)!==0,s;return()=>{if(ue)return rt(ge,null),ge;if(s===void 0){const c=t&Bm?Zs:t&Fm?Il:void 0;s=Hf(e,c),n||(s=Ve(s))}var a=r||jl?document.importNode(s,!0):s.cloneNode(!0);if(n){var o=Ve(a),l=a.lastChild;rt(o,l)}else rt(a,a);return a}}function Ug(e){return()=>Hg(e())}function Hg(e){if(ue)return e;const t=e.nodeType===Fd,n=e.nodeName===Bg?[e]:e.querySelectorAll("script"),r=ye;for(const a of n){const o=er("script");for(var s of a.attributes)o.setAttribute(s.name,s.value);o.textContent=a.textContent,(t?e.firstChild===a:e===a)&&(r.nodes.start=o),(t?e.lastChild===a:e===a)&&(r.nodes.end=o),a.replaceWith(o)}return e}function vn(e=""){if(!ue){var t=ct(e+"");return rt(t,t),t}var n=ge;return n.nodeType!==$s?(n.before(n=ct()),De(n)):Ci(n),rt(n,n),n}function Me(){if(ue)return rt(ge,null),ge;var e=document.createDocumentFragment(),t=document.createComment(""),n=ct();return e.append(t,n),rt(t,n),e}function x(e,t){if(ue){var n=ye;(!(n.f&Vn)||n.nodes.end===null)&&(n.nodes.end=ge),kt();return}e!==null&&e.before(t)}function Kg(){if(ue&&ge&&ge.nodeType===Un&&ge.textContent?.startsWith("$")){const e=ge.textContent.substring(1);return kt(),e}return(window.__svelte??={}).uid??=1,`c${window.__svelte.uid++}`}const Wg=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function Yg(e){return Wg.includes(e)||e.toLowerCase()==="!doctype"}function Xg(e){return e.endsWith("capture")&&e!=="gotpointercapture"&&e!=="lostpointercapture"}const Gg=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function Jg(e){return Gg.includes(e)}const Zg={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 Qg(e){return e=e.toLowerCase(),Zg[e]??e}const $g=["touchstart","touchmove"];function ey(e){return $g.includes(e)}const ty=["textarea","script","style","title"];function ny(e){return ty.includes(e)}function Kf(e){return e?.replace(/\//g,"/​")}let Ya=!0;function Or(e){Ya=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 Ke(e,t){return Yf(e,t)}function Wf(e,t){qo(),t.intro=t.intro??!1;const n=t.target,r=ue,s=ge;try{for(var a=Ve(n);a&&(a.nodeType!==Un||a.data!==gi);)a=qt(a);if(!a)throw dr;Ne(!0),De(a);const o=Yf(e,{...t,anchor:a});return Ne(!1),o}catch(o){if(o instanceof Error&&o.message.split(`
6
+ `).some(l=>l.startsWith("https://svelte.dev/e/")))throw o;return o!==dr&&console.warn("Failed to hydrate: ",o),t.recover===!1&&hb(),qo(),Ol(n),Ne(!1),Ke(e,t)}finally{Ne(r),De(s)}}const wa=new Map;function Yf(e,{target:t,anchor:n,props:r={},events:s,context:a,intro:o=!0,transformError:l}){qo();var c=void 0,u=xg(()=>{var d=n??t.appendChild(ct());uf(d,{pending:()=>{}},m=>{ae({});var S=Le;if(a&&(S.c=a),s&&(r.$$events=s),ue&&rt(m,null),Ya=o,c=e(m,r)||{},Ya=!0,ue&&(ye.nodes.end=ge,ge===null||ge.nodeType!==Un||ge.data!==_i))throw ea(),dr;ie()},l);var f=new Set,v=m=>{for(var S=0;S<m.length;S++){var g=m[S];if(!f.has(g)){f.add(g);var b=ey(g);for(const y of[t,document]){var A=wa.get(y);A===void 0&&(A=new Map,wa.set(y,A));var w=A.get(g);w===void 0?(y.addEventListener(g,Vo,{passive:b}),A.set(g,1)):A.set(g,w+1)}}}};return v(wi(Bf)),Fo.add(v),()=>{for(var m of f)for(const b of[t,document]){var S=wa.get(b),g=S.get(m);--g==0?(b.removeEventListener(m,Vo),S.delete(m),S.size===0&&wa.delete(b)):S.set(m,g)}Fo.delete(v),d!==n&&d.parentNode?.removeChild(d)}});return Uo.set(c,u),c}let Uo=new WeakMap;function tt(e,t){const n=Uo.get(e);return n?(Uo.delete(e),n(t)):Promise.resolve()}function ry(e){const t=e();t&&Yg(t)&&Mb()}function sy(e){const t=e();t&&!(typeof t=="string")&&tb()}function ay(e,t){e!=null&&typeof e.subscribe!="function"&&eb()}function Xf(e){return e.toString=()=>($m(),""),e}class cs{anchor;#e=new Map;#t=new Map;#n=new Map;#s=new Set;#r=!0;constructor(t,n=!0){this.anchor=t,this.#r=n}#i=t=>{if(this.#e.has(t)){var n=this.#e.get(t),r=this.#t.get(n);if(r)Fl(r),this.#s.delete(n);else{var s=this.#n.get(n);s&&(this.#t.set(n,s.effect),this.#n.delete(n),s.fragment.lastChild.remove(),this.anchor.before(s.fragment),r=s.effect)}for(const[a,o]of this.#e){if(this.#e.delete(a),a===t)break;const l=this.#n.get(o);l&&(nt(l.effect),this.#n.delete(o))}for(const[a,o]of this.#t){if(a===n||this.#s.has(a))continue;const l=()=>{if(Array.from(this.#e.values()).includes(a)){var u=document.createDocumentFragment();Vl(o,u),u.append(ct()),this.#n.set(a,{effect:o,fragment:u})}else nt(o);this.#s.delete(a),this.#t.delete(a)};this.#r||!r?(this.#s.add(a),lr(o,l,!1)):l()}}};#a=t=>{this.#e.delete(t);const n=Array.from(this.#e.values());for(const[r,s]of this.#n)n.includes(r)||(nt(s.effect),this.#n.delete(r))};ensure(t,n){var r=_e,s=kf();if(n&&!this.#t.has(t)&&!this.#n.has(t))if(s){var a=document.createDocumentFragment(),o=ct();a.append(o),this.#n.set(t,{effect:mt(()=>n(o)),fragment:a})}else this.#t.set(t,mt(()=>n(this.anchor)));if(this.#e.set(r,t),s){for(const[l,c]of this.#t)l===t?r.unskip_effect(c):r.skip_effect(c);for(const[l,c]of this.#n)l===t?r.unskip_effect(c.effect):r.skip_effect(c.effect);r.oncommit(this.#i),r.ondiscard(this.#a)}else ue&&(this.anchor=ge),this.#i(r)}}function en(e,t,...n){var r=new cs(e);Rn(()=>{const s=t()??null;r.ensure(s,s&&(a=>s(a,...n)))},bn)}function iy(e,t){const n=(r,...s)=>{var a=Cl;Qc(e);try{return t(r,...s)}finally{Qc(a)}};return Xf(n),n}function oy(e){return(t,...n)=>{var r=e(...n),s;if(ue)s=ge,kt();else{var a=r.render().trim(),o=Hl(a);s=Ve(o),t.before(s)}const l=r.setup?.(s);rt(s,s),typeof l=="function"&&Ft(l)}}function ly(){return Ae===null&&vb(),(Ae.ac??=new AbortController).signal}function Wl(e){Le===null&&is(),Ie(()=>{const t=Se(e);if(typeof t=="function")return t})}function Yl(e){Le===null&&is(),Wl(()=>()=>Se(e))}function cy(e,t,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(e,{detail:t,bubbles:n,cancelable:r})}function uy(){const e=Le;return e===null&&is(),(t,n,r)=>{const s=e.s.$$events?.[t];if(s){const a=as(s)?s.slice():[s],o=cy(t,n,r);for(const l of a)l.call(e.x,o);return!o.defaultPrevented}return!0}}function dy(e){Le===null&&is(),Le.l===null&&Ud(),Gf(Le).b.push(e)}function fy(e){Le===null&&is(),Le.l===null&&Ud(),Gf(Le).a.push(e)}function Gf(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}const Jf=Object.freeze(Object.defineProperty({__proto__:null,afterUpdate:fy,beforeUpdate:dy,createContext:Bb,createEventDispatcher:uy,createRawSnippet:oy,flushSync:Jn,fork:sg,getAbortSignal:ly,getAllContexts:Fb,getContext:Tl,hasContext:Jd,hydratable:zg,hydrate:Wf,mount:Ke,onDestroy:Yl,onMount:Wl,setContext:Rl,settled:Pg,tick:oa,unmount:tt,untrack:Se},Symbol.toStringTag,{value:"Module"}));function vy(){return Symbol(Md)}function Zf(e,t,n,r){return e!==t&&typeof t=="object"&&vt in t&&_b(n,Kf(r)),e}function hy(e,t,n,r,s){return Zf(n==="="?e[t]=r:n==="&&="?e[t]&&=r():n==="||="?e[t]||=r():n==="??="?e[t]??=r():null,Se(()=>e[t]),t,s)}async function py(e,t,n,r,s){return Zf(n==="="?e[t]=await r:n==="&&="?e[t]&&=await r():n==="||="?e[t]||=await r():n==="??="?e[t]??=await r():null,Se(()=>e[t]),t,s)}var au=new Map;function my(e){var t=au.get(e);if(t){for(const n of t)n.remove();au.delete(e)}}function by(e,t,n){return(...r)=>{const s=e(...r);var a=ue?s:s.nodeType===Fd?s.firstChild:s;return Qf(a,t,n),s}}function gy(e,t,n){e.__svelte_meta={parent:Ta,loc:{file:t,line:n[0],column:n[1]}},n[2]&&Qf(e.firstChild,t,n[2])}function Qf(e,t,n){for(var r=0,s=0;e&&r<n.length;){if(ue&&e.nodeType===Un){var a=e;a.data[0]===gi?s+=1:a.data[0]===_i&&(s-=1)}s===0&&e.nodeType===Bd&&gy(e,t,n[r++]),e=e.nextSibling}}function yy(e){const t=Rt(e);function n(r,s){let a={},o={},l,c=!1,u=r;return Rn(()=>{if(a!==(a=i(t))){if(l){for(var d in o)delete o[d];nt(l)}l=mt(()=>{u=u[Jm]??u,c&&Or(!1);var f=new.target?new a(u,s):a(u,s);f&&Object.defineProperties(o,Object.getOwnPropertyDescriptors(f)),c&&Or(!0)}),ye.nodes=l.nodes}},bn),c=!0,ue&&(u=ge),o}return n[zt]=e[zt],n[Lr]={fn:e,current:t,update:r=>{k(n[Lr].current,r[Lr].fn),r[Lr].current=n[Lr].current}},n}function _y(e){const t=Le?.function,n=Le?.p?.function;return{mutation:(r,s,a,o,l)=>{const c=s[0];if(iu(e,c)||!n)return a;let u=e;for(let f=0;f<s.length-1;f++)if(u=u[s[f]],!u?.[vt])return a;const d=Kf(`${t[zt]}:${o}:${l}`);return Ab(c,d,r,n[zt]),a},binding:(r,s,a)=>{!iu(e,r)&&n&&a()?.[vt]&&Eb(t[zt],r,s[zt],n[zt])}}}function iu(e,t){const n=vt in e||xi in e;return!!dn(e,t)?.set||n&&t in e||!(t in e)}function wy(e){e&&sb(e[zt]??"a component",e.name)}function ky(){const e=Le?.function;function t(n){rb(n,e[zt])}return{$destroy:()=>t("$destroy()"),$on:()=>t("$on(...)"),$set:()=>t("$set(...)")}}function xy(e,t,n=!1){ql();let r=!0,s=Fe;Af(()=>{try{var a=e()}catch(l){s=l;return}var o=mr(a,!0,!0);Se(()=>{if(n){if(t(...o),!r){const l=Ob("$inspect(...)");l&&(console.groupCollapsed("stack trace"),console.log(l),console.groupEnd())}}else t(r?"init":"update",...o)}),r=!1}),Ze(()=>{try{e()}catch{}s!==Fe&&(console.error(s),s=Fe)})}function Sy(e,t=[],n=[],r){var s=ue,a=null;if(s&&(kt(),a=pr(!1)),n.length===0&&t.every(c=>c.settled)){r(e),s&&De(a);return}const o=na();if(s){var l=ge;De(a)}ta(t,[],n,c=>{s&&(Ne(!0),De(l));try{for(const u of c)i(u);r(e,...c)}finally{s&&Ne(!1),o()}})}function Iy(e,...t){(typeof e!="object"||!(e instanceof Node))&&Zc();for(let n of t)typeof n!="function"&&Zc()}const ou=0,lu=1,Ey=2;function Ay(e,t,n,r,s){ue&&kt();var a=Fe,o=Rt(a),l=Rt(a),c=new cs(e);Rn(()=>{var u=_e;u.deactivate();var d=t();u.activate();var f=!1;let v=ue&&Jc(d)===(e.data===yi);if(v&&(De(pr()),Ne(!1)),Jc(d)){var m=Ei(),S=!1;const g=b=>{if(!f){S=!0,m(!1),$t.ensure(),ue&&Ne(!1);try{b()}finally{br(!1),Br||Jn()}}};d.then(b=>{g(()=>{Cn(o,b),c.ensure(lu,r&&(A=>r(A,o)))})},b=>{g(()=>{if(Cn(l,b),c.ensure(Ey,s&&(A=>s(A,l))),!s)throw l.v})}),ue?c.ensure(ou,n):_t(()=>{S||g(()=>{c.ensure(ou,n)})})}else Cn(o,d),c.ensure(lu,r&&(g=>r(g,o)));return v&&Ne(!0),()=>{f=!0}})}function W(e,t,n=!1){var r;ue&&(r=ge,kt());var s=new cs(e),a=n?bn:0;function o(l,c){if(ue){var u=Al(r);if(l!==parseInt(u.substring(1))){var d=pr();De(d),s.anchor=d,Ne(!1),s.ensure(l,c),Ne(!0);return}}s.ensure(l,c)}Rn(()=>{var l=!1;t((c,u=0)=>{l=!0,o(u,c)}),l||o(-1,null)},a)}const Cy=Symbol("NaN");function Ty(e,t,n){ue&&kt();var r=new cs(e);Rn(()=>{var s=t();s!==s&&(s=Cy),r.ensure(s,n)})}function Ry(e,t){ue&&De(Ve(e)),Ze(()=>{var n=t();for(var r in n){var s=n[r];s?e.style.setProperty(r,s):e.style.removeProperty(r)}})}function ut(e,t){return t}function Ly(e,t,n){for(var r=[],s=t.length,a,o=t.length,l=0;l<s;l++){let f=t[l];lr(f,()=>{if(a){if(a.pending.delete(f),a.done.add(f),a.pending.size===0){var v=e.outrogroups;Ho(e,wi(a.done)),v.delete(a),v.size===0&&(e.outrogroups=null)}}else o-=1},!1)}if(o===0){var c=r.length===0&&n!==null;if(c){var u=n,d=u.parentNode;Ol(d),d.append(u),e.items.clear()}Ho(e,t,!c)}else a={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(a)}function Ho(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(const o of e.pending.values())for(const l of o)r.add(e.items.get(l).e)}for(var s=0;s<t.length;s++){var a=t[s];if(r?.has(a)){a.f|=In;const o=document.createDocumentFragment();Vl(a,o)}else nt(t[s],n)}}var cu;function be(e,t,n,r,s,a=null){var o=e,l=new Map,c=(t&Cd)!==0;if(c){var u=e;o=ue?De(Ve(u)):u.appendChild(ct())}ue&&kt();var d=null,f=Dl(()=>{var y=n();return as(y)?y:y==null?[]:wi(y)}),v,m=new Map,S=!0;function g(y){w.effect.f&Ct||(w.pending.delete(y),w.fallback=d,My(w,v,o,t,r),d!==null&&(v.length===0?d.f&In?(d.f^=In,ks(d,null,o)):Fl(d):lr(d,()=>{d=null})))}function b(y){w.pending.delete(y)}var A=Rn(()=>{v=i(f);var y=v.length;let C=!1;if(ue){var I=Al(o)===yi;I!==(y===0)&&(o=pr(),De(o),Ne(!1),C=!0)}for(var P=new Set,L=_e,R=kf(),M=0;M<y;M+=1){ue&&ge.nodeType===Un&&ge.data===_i&&(o=ge,C=!0,Ne(!1));var O=v[M],T=r(O,M),D=S?null:l.get(T);D?(D.v&&Cn(D.v,O),D.i&&Cn(D.i,M),R&&L.unskip_effect(D.e)):(D=Py(l,S?o:cu??=ct(),O,T,M,s,t,n),S||(D.e.f|=In),l.set(T,D)),P.add(T)}if(y===0&&a&&!d&&(S?d=mt(()=>a(o)):(d=mt(()=>a(cu??=ct())),d.f|=In)),y>P.size&&ab(),ue&&y>0&&De(pr()),!S)if(m.set(L,P),R){for(const[j,B]of l)P.has(j)||L.skip_effect(B.e);L.oncommit(g),L.ondiscard(b)}else g(L);C&&Ne(!0),i(f)}),w={effect:A,items:l,pending:m,outrogroups:null,fallback:d};S=!1,ue&&(o=ge)}function bs(e){for(;e!==null&&!(e.f&pn);)e=e.next;return e}function My(e,t,n,r,s){var a=(r&Mm)!==0,o=t.length,l=e.items,c=bs(e.effect.first),u,d=null,f,v=[],m=[],S,g,b,A;if(a)for(A=0;A<o;A+=1)S=t[A],g=s(S,A),b=l.get(g).e,b.f&In||(b.nodes?.a?.measure(),(f??=new Set).add(b));for(A=0;A<o;A+=1){if(S=t[A],g=s(S,A),b=l.get(g).e,e.outrogroups!==null)for(const O of e.outrogroups)O.pending.delete(b),O.done.delete(b);if(b.f&gt&&(Fl(b),a&&(b.nodes?.a?.unfix(),(f??=new Set).delete(b))),b.f&In)if(b.f^=In,b===c)ks(b,null,n);else{var w=d?d.next:c;b===e.effect.last&&(e.effect.last=b.prev),b.prev&&(b.prev.next=b.next),b.next&&(b.next.prev=b.prev),Kn(e,d,b),Kn(e,b,w),ks(b,w,n),d=b,v=[],m=[],c=bs(d.next);continue}if(b!==c){if(u!==void 0&&u.has(b)){if(v.length<m.length){var y=m[0],C;d=y.prev;var I=v[0],P=v[v.length-1];for(C=0;C<v.length;C+=1)ks(v[C],y,n);for(C=0;C<m.length;C+=1)u.delete(m[C]);Kn(e,I.prev,P.next),Kn(e,d,I),Kn(e,P,y),c=y,d=P,A-=1,v=[],m=[]}else u.delete(b),ks(b,c,n),Kn(e,b.prev,b.next),Kn(e,b,d===null?e.effect.first:d.next),Kn(e,d,b),d=b;continue}for(v=[],m=[];c!==null&&c!==b;)(u??=new Set).add(c),m.push(c),c=bs(c.next);if(c===null)continue}b.f&In||v.push(b),d=b,c=bs(b.next)}if(e.outrogroups!==null){for(const O of e.outrogroups)O.pending.size===0&&(Ho(e,wi(O.done)),e.outrogroups?.delete(O));e.outrogroups.size===0&&(e.outrogroups=null)}if(c!==null||u!==void 0){var L=[];if(u!==void 0)for(b of u)b.f&gt||L.push(b);for(;c!==null;)!(c.f&gt)&&c!==e.fallback&&L.push(c),c=bs(c.next);var R=L.length;if(R>0){var M=r&Cd&&o===0?n:null;if(a){for(A=0;A<R;A+=1)L[A].nodes?.a?.measure();for(A=0;A<R;A+=1)L[A].nodes?.a?.fix()}Ly(e,L,M)}}a&&_t(()=>{if(f!==void 0)for(b of f)b.nodes?.a?.apply()})}function Py(e,t,n,r,s,a,o,l){var c=o&Rm?o&Pm?Rt(n):Ai(n,!1,!1):null,u=o&Lm?Rt(s):null;return{v:c,i:u,e:mt(()=>(a(t,c??n,u??s,l),()=>{e.delete(r)}))}}function ks(e,t,n){if(e.nodes)for(var r=e.nodes.start,s=e.nodes.end,a=t&&!(t.f&In)?t.nodes.start:n;r!==null;){var o=qt(r);if(a.before(r),r===s)return;r=o}}function Kn(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function Dy(e,t,n=!1,r=!1,s=!1,a=!1){var o=e,l="";if(n){var c=e;ue&&(o=De(Ve(c)))}N(()=>{var u=ye;if(l===(l=t()??"")){ue&&kt();return}if(n&&!ue){u.nodes=null,c.innerHTML=l,l!==""&&rt(Ve(c),c.lastChild);return}if(u.nodes!==null&&(Rf(u.nodes.start,u.nodes.end),u.nodes=null),l!==""){if(ue){ge.data;for(var d=kt(),f=d;d!==null&&(d.nodeType!==Un||d.data!=="");)f=d,d=qt(d);if(d===null)throw ea(),dr;rt(ge,f),o=De(d);return}var v=r?Zs:s?Il:void 0,m=er(r?"svg":s?"math":"template",v);m.innerHTML=l;var S=r||s?m:m.content;if(rt(Ve(S),S.lastChild),r||s)for(;Ve(S);)o.before(Ve(S));else o.before(S)}})}function zy(e,t,n,r,s){ue&&kt();var a=t.$$slots?.[n],o=!1;a===!0&&(a=t[n==="default"?"children":n],o=!0),a===void 0?s!==null&&s(e):a(e,o?()=>r:r)}function jy(e){const t={};e.children&&(t.default=!0);for(const n in e.$$slots)t[n]=!0;return t}function la(e,t,n){var r;ue&&(r=ge,kt());var s=new cs(e);Rn(()=>{var a=t()??null;if(ue){var o=Al(r),l=o===gi,c=a!==null;if(l!==c){var u=pr();De(u),s.anchor=u,Ne(!1),s.ensure(a,a&&(d=>n(d,a))),Ne(!0);return}}s.ensure(a,a&&(d=>n(d,a)))},bn)}const Oy=()=>performance.now(),Sn={tick:e=>requestAnimationFrame(e),now:()=>Oy(),tasks:new Set};function $f(){const e=Sn.now();Sn.tasks.forEach(t=>{t.c(e)||(Sn.tasks.delete(t),t.f())}),Sn.tasks.size!==0&&Sn.tick($f)}function Ny(e){let t;return Sn.tasks.size===0&&Sn.tick($f),{promise:new Promise(n=>{Sn.tasks.add(t={c:e,f:n})}),abort(){Sn.tasks.delete(t)}}}function Xa(e,t){tr(()=>{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 uu(e){const t={},n=e.split(";");for(const r of n){const[s,a]=r.split(":");if(!s||a===void 0)break;const o=qy(s.trim());t[o]=a.trim()}return t}const By=e=>e;let ev=null;function du(e){ev=e}function Fy(e,t,n){var r=ev??ye,s=r.nodes,a,o,l,c=null;s.a??={element:e,measure(){a=this.element.getBoundingClientRect()},apply(){if(l?.abort(),o=this.element.getBoundingClientRect(),a.left!==o.left||a.right!==o.right||a.top!==o.top||a.bottom!==o.bottom){const u=t()(this.element,{from:a,to:o},n?.());l=Ga(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(a.left!==m.left||a.top!==m.top){var S=`translate(${a.left-m.left}px, ${a.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 Vy(e,t,n,r){var s=(e&Om)!==0,a=(e&Nm)!==0,o=s&&a,l=(e&qm)!==0,c=o?"both":s?"in":"out",u,d=t.inert,f=t.style.overflow,v,m;function S(){return tr(()=>u??=n()(t,r?.()??{},{direction:c}))}var g={is_global:l,in(){if(t.inert=d,!s){m?.abort(),m?.reset?.();return}a||v?.abort(),v=Ga(t,S(),m,1,()=>{Xa(t,"introend"),v?.abort(),v=u=void 0,t.style.overflow=f})},out(y){if(!a){y?.(),u=void 0;return}t.inert=!0,m=Ga(t,S(),v,0,()=>{Xa(t,"outroend"),y?.()})},stop:()=>{v?.abort(),m?.abort()}},b=ye;if((b.nodes.t??=[]).push(g),s&&Ya){var A=l;if(!A){for(var w=b.parent;w&&w.f&bn;)for(;(w=w.parent)&&!(w.f&fn););A=!w||(w.f&Vn)!==0}A&&Bt(()=>{Se(()=>g.in())})}}function Ga(e,t,n,r,s){var a=r===1;if(Mr(t)){var o,l=!1;return _t(()=>{if(!l){var b=t({direction:a?"in":"out"});o=Ga(e,b,n,r,s)}}),{abort:()=>{l=!0,o?.abort()},deactivate:()=>o.deactivate(),reset:()=>o.reset(),t:()=>o.t()}}if(n?.deactivate(),!t?.duration&&!t?.delay)return Xa(e,a?"introstart":"outrostart"),s(),{abort:jt,deactivate:jt,reset:jt,t:()=>r};const{delay:c=0,css:u,tick:d,easing:f=By}=t;var v=[];if(a&&n===void 0&&(d&&d(0,1),u)){var m=uu(u(0,1));v.push(m,m)}var S=()=>1-r,g=e.animate(v,{duration:c,fill:"forwards"});return g.onfinish=()=>{g.cancel(),Xa(e,a?"introstart":"outrostart");var b=n?.t()??1-r;n?.abort();var A=r-b,w=t.duration*Math.abs(A),y=[];if(w>0){var C=!1;if(u)for(var I=Math.ceil(w/16.666666666666668),P=0;P<=I;P+=1){var L=b+A*f(P/I),R=uu(u(L,1-L));y.push(R),C||=R.overflow==="hidden"}C&&(e.style.overflow="hidden"),S=()=>{var M=g.currentTime;return b+A*f(M/w)},d&&Ny(()=>{if(g.playState!=="running")return!1;var M=S();return d(M,1-M),!0})}g=e.animate(y,{duration:w,fill:"forwards"}),g.onfinish=()=>{S=()=>r,d?.(r,1-r),s()}},{abort:()=>{g&&(g.cancel(),g.effect=null,g.onfinish=jt)},deactivate:()=>{s=jt},reset:()=>{r===0&&d?.(1,0)},t:()=>S()}}function Uy(e,t,n,r,s,a){let o=ue;ue&&kt();var l=null;ue&&ge.nodeType===Bd&&(l=ge,kt());var c=ue?ge:e,u=ye,d=new cs(c,!1);Rn(()=>{const f=t()||null;var v=s?s():n||f==="svg"?Zs:void 0;if(f===null){d.ensure(null,null),Or(!0);return}return d.ensure(f,m=>{if(f){if(l=ue?l:er(f,v),rt(l,l),r){ue&&ny(f)&&l.append(document.createComment(""));var S=ue?Ve(l):l.appendChild(ct());ue&&(S===null?Ne(!1):De(S)),du(u),r(l,S),du(null)}ye.nodes.end=l,m.before(l)}ue&&De(m)}),Or(!0),()=>{f&&Or(!1)}},bn),Ft(()=>{Or(!0)}),o&&(Ne(!0),De(c))}function Hy(e,t){let n=null,r=ue;var s;if(ue){n=ge;for(var a=Ve(document.head);a!==null&&(a.nodeType!==Un||a.data!==e);)a=qt(a);if(a===null)Ne(!1);else{var o=qt(a);a.remove(),De(o)}}ue||(s=document.head.appendChild(ct()));try{Rn(()=>t(s),Nd|$n)}finally{r&&(Ne(!0),De(n))}}function Ky(e,t){Bt(()=>{var n=e.getRootNode(),r=n.host?n:n.head??n.ownerDocument.head;if(!r.querySelector("#"+t.hash)){const s=er("style");s.id=t.hash,s.textContent=t.code,r.appendChild(s)}})}function tv(e,t,n){Bt(()=>{var r=Se(()=>t(e,n?.())||{});if(n&&r?.update){var s=!1,a={};Ze(()=>{var o=n();Ul(o),s&&Wd(a,o)&&(a=o,r.update(o))}),s=!0}if(r?.destroy)return()=>r.destroy()})}function Xl(e,t){var n=void 0,r;Cf(()=>{n!==(n=t())&&(r&&(nt(r),r=null),n&&(r=mt(()=>{Bt(()=>n(e))})))})}const Wy=/[&"<]/g;function Yy(e,t){const n=String(e??""),r=Wy;r.lastIndex=0;let s="",a=0;for(;r.test(n);){const o=r.lastIndex-1,l=n[o];s+=n.substring(a,o)+(l==="&"?"&amp;":l==='"'?"&quot;":"&lt;"),a=o+1}return s+n.substring(a)}function nv(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=nv(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function Xy(){for(var e,t,n=0,r="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=nv(e))&&(r&&(r+=" "),r+=t);return r}const fu={translate:new Map([[!0,"yes"],[!1,"no"]])};function Gy(e,t,n=!1){if(e==="hidden"&&t!=="until-found"&&(n=!0),t==null||!t&&n)return"";const r=Hm.call(fu,e)&&fu[e].get(t)||t,s=n?'=""':`="${Yy(r)}"`;return` ${e}${s}`}function rv(e){return typeof e=="object"?Xy(e):e??""}const vu=[...`
7
+ \r\f \v\uFEFF`];function Jy(e,t,n){var r=e==null?"":""+e;if(t&&(r=r?r+" "+t:t),n){for(var s of Object.keys(n))if(n[s])r=r?r+" "+s:s;else if(r.length)for(var a=s.length,o=0;(o=r.indexOf(s,o))>=0;){var l=o+a;(o===0||vu.includes(r[o-1]))&&(l===r.length||vu.includes(r[l]))?r=(o===0?"":r.substring(0,o))+r.substring(l+1):o=l}}return r===""?null:r}function hu(e,t=!1){var n=t?" !important;":";",r="";for(var s of Object.keys(e)){var a=e[s];a!=null&&a!==""&&(r+=" "+s+": "+a+n)}return r}function lo(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function Zy(e,t){if(t){var n="",r,s;if(Array.isArray(t)?(r=t[0],s=t[1]):r=t,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var a=!1,o=0,l=!1,c=[];r&&c.push(...Object.keys(r).map(lo)),s&&c.push(...Object.keys(s).map(lo));var u=0,d=-1;const g=e.length;for(var f=0;f<g;f++){var v=e[f];if(l?v==="/"&&e[f-1]==="*"&&(l=!1):a?a===v&&(a=!1):v==="/"&&e[f+1]==="*"?l=!0:v==='"'||v==="'"?a=v:v==="("?o++:v===")"&&o--,!l&&a===!1&&o===0){if(v===":"&&d===-1)d=f;else if(v===";"||f===g-1){if(d!==-1){var m=lo(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+=hu(r)),s&&(n+=hu(s,!0)),n=n.trim(),n===""?null:n}return e==null?null:String(e)}function he(e,t,n,r,s,a){var o=e.__className;if(ue||o!==n||o===void 0){var l=Jy(n,r,a);(!ue||l!==e.getAttribute("class"))&&(l==null?e.removeAttribute("class"):t?e.className=l:e.setAttribute("class",l)),e.__className=n}else if(a&&s!==a)for(var c in a){var u=!!a[c];(s==null||u!==!!s[c])&&e.classList.toggle(c,u)}return a}function co(e,t={},n,r){for(var s in n){var a=n[s];t[s]!==a&&(n[s]==null?e.style.removeProperty(s):e.style.setProperty(s,a,r))}}function We(e,t,n,r){var s=e.__style;if(ue||s!==t){var a=Zy(t,r);(!ue||a!==e.getAttribute("style"))&&(a==null?e.removeAttribute("style"):e.style.cssText=a),e.__style=t}else r&&(Array.isArray(r)?(co(e,n?.[0],r[0]),co(e,n?.[1],r[1],"important")):co(e,n,r));return r}function zs(e,t,n=!1){if(e.multiple){if(t==null)return;if(!as(t))return Cb();for(var r of e.options)r.selected=t.includes(As(r));return}for(r of e.options){var s=As(r);if(gf(s,t)){r.selected=!0;return}}(!n||t!==void 0)&&(e.selectedIndex=-1)}function Gl(e){var t=new MutationObserver(()=>{zs(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),Ft(()=>{t.disconnect()})}function js(e,t,n=t){var r=new WeakSet,s=!0;aa(e,"change",a=>{var o=a?"[selected]":":checked",l;if(e.multiple)l=[].map.call(e.querySelectorAll(o),As);else{var c=e.querySelector(o)??e.querySelector("option:not([disabled])");l=c&&As(c)}n(l),e.__value=l,_e!==null&&r.add(_e)}),Bt(()=>{var a=t();if(e===document.activeElement){var o=_e;if(r.has(o))return}if(zs(e,a,s),s&&a===void 0){var l=e.querySelector(":checked");l!==null&&(a=As(l),n(a))}e.__value=a,s=!1}),Gl(e)}function As(e){return"__value"in e?e.__value:e.value}const Dr=Symbol("class"),zr=Symbol("style"),sv=Symbol("is custom element"),av=Symbol("is html"),Qy=Ir?"link":"LINK",$y=Ir?"input":"INPUT",e_=Ir?"option":"OPTION",t_=Ir?"select":"SELECT",n_=Ir?"progress":"PROGRESS";function xe(e){if(ue){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute("value")){var r=e.value;re(e,"value",null),e.value=r}if(e.hasAttribute("checked")){var s=e.checked;re(e,"checked",null),e.checked=s}}};e.__on_r=n,_t(n),Sf()}}function Os(e,t){var n=Ti(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==n_)||(e.value=t??"")}function Jl(e,t){var n=Ti(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function Zl(e,t){t?e.hasAttribute("selected")||e.setAttribute("selected",""):e.removeAttribute("selected")}function r_(e,t){const n=e.checked;e.defaultChecked=t,e.checked=n}function s_(e,t){const n=e.value;e.defaultValue=t,e.value=n}function re(e,t,n,r){var s=Ti(e);ue&&(s[t]=e.getAttribute(t),t==="src"||t==="srcset"||t==="href"&&e.nodeName===Qy)||s[t]!==(s[t]=n)&&(t==="loading"&&(e[Xm]=n),n==null?e.removeAttribute(t):typeof n!="string"&&Ql(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function a_(e,t,n){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n)}function i_(e,t,n){var r=Ae,s=ye;let a=ue;ue&&Ne(!1),Lt(null),pt(null);try{t!=="style"&&(Ko.has(e.getAttribute("is")||e.nodeName)||!customElements||customElements.get(e.getAttribute("is")||e.nodeName.toLowerCase())?Ql(e).includes(t):n&&typeof n=="object")?e[t]=n:re(e,t,n==null?n:String(n))}finally{Lt(r),pt(s),a&&Ne(!0)}}function o_(e,t,n,r,s=!1,a=!1){if(ue&&s&&e.nodeName===$y){var o=e,l=o.type==="checkbox"?"defaultChecked":"defaultValue";l in n||xe(o)}var c=Ti(e),u=c[sv],d=!c[av];let f=ue&&u;f&&Ne(!1);var v=t||{},m=e.nodeName===e_;for(var S in t)S in n||(n[S]=null);n.class?n.class=rv(n.class):(r||n[Dr])&&(n.class=null),n[zr]&&(n.style??=null);var g=Ql(e);for(const L in n){let R=n[L];if(m&&L==="value"&&R==null){e.value=e.__value="",v[L]=R;continue}if(L==="class"){var b=e.namespaceURI==="http://www.w3.org/1999/xhtml";he(e,b,R,r,t?.[Dr],n[Dr]),v[L]=R,v[Dr]=n[Dr];continue}if(L==="style"){We(e,R,t?.[zr],n[zr]),v[L]=R,v[zr]=n[zr];continue}var A=v[L];if(!(R===A&&!(R===void 0&&e.hasAttribute(L)))){v[L]=R;var w=L[0]+L[1];if(w!=="$$")if(w==="on"){const M={},O="$$"+L;let T=L.slice(2);var y=Jg(T);if(Xg(T)&&(T=T.slice(0,-7),M.capture=!0),!y&&A){if(R!=null)continue;e.removeEventListener(T,v[O],M),v[O]=null}if(y)K(T,e,R),me([T]);else if(R!=null){let D=function(j){v[L].call(this,j)};var P=D;v[O]=Ff(T,e,D,M)}}else if(L==="style")re(e,L,R);else if(L==="autofocus")sa(e,!!R);else if(!u&&(L==="__value"||L==="value"&&R!=null))e.value=e.__value=R;else if(L==="selected"&&m)Zl(e,R);else{var C=L;d||(C=Qg(C));var I=C==="defaultValue"||C==="defaultChecked";if(R==null&&!u&&!I)if(c[L]=null,C==="value"||C==="checked"){let M=e;const O=t===void 0;if(C==="value"){let T=M.defaultValue;M.removeAttribute(C),M.defaultValue=T,M.value=M.__value=O?T:null}else{let T=M.defaultChecked;M.removeAttribute(C),M.defaultChecked=T,M.checked=O?T:!1}}else e.removeAttribute(L);else I||g.includes(C)&&(u||typeof R!="string")?(e[C]=R,C in c&&(c[C]=Fe)):typeof R!="function"&&re(e,C,R)}}}return f&&Ne(!0),v}function l_(e,t,n=[],r=[],s=[],a,o=!1,l=!1){ta(s,n,r,c=>{var u=void 0,d={},f=e.nodeName===t_,v=!1;if(Cf(()=>{var S=t(...c.map(i)),g=o_(e,u,S,a,o,l);v&&f&&"value"in S&&zs(e,S.value);for(let A of Object.getOwnPropertySymbols(d))S[A]||nt(d[A]);for(let A of Object.getOwnPropertySymbols(S)){var b=S[A];A.description===Md&&(!u||b!==u[A])&&(d[A]&&nt(d[A]),d[A]=mt(()=>Xl(e,()=>b))),g[A]=b}u=g}),f){var m=e;Bt(()=>{zs(m,u.value,!0),Gl(m)})}v=!0})}function Ti(e){return e.__attributes??={[sv]:e.nodeName.includes("-"),[av]:e.namespaceURI===Ld}}var Ko=new Map;function Ql(e){var t=e.getAttribute("is")||e.nodeName,n=Ko.get(t);if(n)return n;Ko.set(t,n=[]);for(var r,s=e,a=Element.prototype;a!==s;){r=Dd(s);for(var o in r)r[o].set&&n.push(o);s=ki(s)}return n}let uo=null;function iv(){if(uo===null){var e=er("select");e.innerHTML=Vf("<option><span>t</span></option>"),uo=e.firstChild?.firstChild?.nodeType===1}return uo}function c_(e,t){iv()&&Xl(e,()=>()=>{const n=e.closest("select");if(!n)return;const r=new MutationObserver(s=>{var a=!1;for(const o of s){if(o.target===e)return;a||=!!o.target.parentElement?.closest("option")?.selected}a&&(e.replaceWith(e=e.cloneNode(!0)),t(e))});return r.observe(n,{childList:!0,characterData:!0,subtree:!0}),()=>{r.disconnect()}})}function u_(e,t){var n=ue;iv()||(Ne(!1),e.textContent="",e.append(xf("")));try{t()}finally{n&&(ue?h(e):(Ne(!0),De(e)))}}function d_(e){Mt(document,["focusin","focusout"],t=>{t&&t.type==="focusout"&&t.relatedTarget||e(document.activeElement)})}function Te(e,t,n=t){var r=new WeakSet;aa(e,"input",async s=>{var a=s?e.defaultValue:e.value;if(a=vo(e)?ho(a):a,n(a),_e!==null&&r.add(_e),await oa(),a!==(a=t())){var o=e.selectionStart,l=e.selectionEnd,c=e.value.length;if(e.value=a??"",l!==null){var u=e.value.length;o===l&&l===c&&u>c?(e.selectionStart=u,e.selectionEnd=u):(e.selectionStart=o,e.selectionEnd=Math.min(l,u))}}}),(ue&&e.defaultValue!==e.value||Se(t)==null&&e.value)&&(n(vo(e)?ho(e.value):e.value),_e!==null&&r.add(_e)),Ze(()=>{var s=t();if(e===document.activeElement){var a=_e;if(r.has(a))return}vo(e)&&s===ho(e.value)||e.type==="date"&&!s&&!e.value||s!==e.value&&(e.value=s??"")})}const fo=new Set;function f_(e,t,n,r,s=r){var a=n.getAttribute("type")==="checkbox",o=e;let l=!1;if(t!==null)for(var c of t)o=o[c]??=[];o.push(n),aa(n,"change",()=>{var u=n.__value;a&&(u=pu(o,u,n.checked)),s(u)},()=>s(a?[]:null)),Ze(()=>{var u=r();if(ue&&n.defaultChecked!==n.checked){l=!0;return}a?(u=u||[],n.checked=u.includes(n.__value)):n.checked=gf(n.__value,u)}),Ft(()=>{var u=o.indexOf(n);u!==-1&&o.splice(u,1)}),fo.has(o)||(fo.add(o),_t(()=>{o.sort((u,d)=>u.compareDocumentPosition(d)===4?-1:1),fo.delete(o)})),_t(()=>{if(l){var u;if(a)u=pu(o,u,n.checked);else{var d=o.find(f=>f.checked);u=d?.__value}s(u)}})}function Cs(e,t,n=t){aa(e,"change",r=>{var s=r?e.defaultChecked:e.checked;n(s)}),(ue&&e.defaultChecked!==e.checked||Se(t)==null)&&n(e.checked),Ze(()=>{var r=t();e.checked=!!r})}function pu(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 vo(e){var t=e.type;return t==="number"||t==="range"}function ho(e){return e===""?null:+e}function v_(e,t,n=t){aa(e,"change",()=>{n(e.files)}),ue&&e.files&&n(e.files),Ze(()=>{e.files=t()})}function $l(e){for(var t=[],n=0;n<e.length;n+=1)t.push({start:e.start(n),end:e.end(n)});return t}function h_(e,t,n=t){var r,s,a=()=>{cancelAnimationFrame(r),e.paused||(r=requestAnimationFrame(a));var o=e.currentTime;s!==o&&n(s=o)};r=requestAnimationFrame(a),e.addEventListener("timeupdate",a),Ze(()=>{var o=Number(t());s!==o&&!isNaN(o)&&(e.currentTime=s=o)}),Ft(()=>{cancelAnimationFrame(r),e.removeEventListener("timeupdate",a)})}function p_(e,t){var n;Mt(e,["loadedmetadata","progress","timeupdate","seeking"],()=>{var r=e.buffered;(!n||n.length!==r.length||n.some((s,a)=>r.start(a)!==s.start||r.end(a)!==s.end))&&(n=$l(r),t(n))})}function m_(e,t){Mt(e,["loadedmetadata"],()=>t($l(e.seekable)))}function b_(e,t){Mt(e,["timeupdate"],()=>t($l(e.played)))}function g_(e,t){Mt(e,["seeking","seeked"],()=>t(e.seeking))}function y_(e,t){Mt(e,["timeupdate","ended"],()=>t(e.ended))}function __(e,t){Mt(e,["loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","emptied"],()=>t(e.readyState))}function w_(e,t,n=t){Bt(()=>{var r=Number(t());r!==e.playbackRate&&!isNaN(r)&&(e.playbackRate=r)}),Bt(()=>{Mt(e,["ratechange"],()=>{n(e.playbackRate)})})}function k_(e,t,n=t){var r=t(),s=()=>{r!==e.paused&&n(r=e.paused)};Mt(e,["play","pause","canplay"],s,r==null),Bt(()=>{(r=!!t())!==e.paused&&(r?e.pause():e.play().catch(a=>{throw n(r=!0),a}))})}function x_(e,t,n=t){var r=()=>{n(e.volume)};t()==null&&r(),Mt(e,["volumechange"],r,!1),Ze(()=>{var s=Number(t());s!==e.volume&&!isNaN(s)&&(e.volume=s)})}function S_(e,t,n=t){var r=()=>{n(e.muted)};t()==null&&r(),Mt(e,["volumechange"],r,!1),Ze(()=>{var s=!!t();e.muted!==s&&(e.muted=s)})}function I_(e){Mt(window,["online","offline"],()=>{e(navigator.onLine)})}function E_(e,t,n){var r=dn(e,t);r&&r.set&&(e[t]=n,Ft(()=>{e[t]=null}))}class ca{#e=new WeakMap;#t;#n;static entries=new WeakMap;constructor(t){this.#n=t}observe(t,n){var r=this.#e.get(t)||new Set;return r.add(n),this.#e.set(t,r),this.#s().observe(t,this.#n),()=>{var s=this.#e.get(t);s.delete(n),s.size===0&&(this.#e.delete(t),this.#t.unobserve(t))}}#s(){return this.#t??(this.#t=new ResizeObserver(t=>{for(var n of t){ca.entries.set(n.target,n);for(var r of this.#e.get(n.target)||[])r(n)}}))}}var A_=new ca({box:"content-box"}),ov=new ca({box:"border-box"}),C_=new ca({box:"device-pixel-content-box"});function T_(e,t,n){var r=t==="contentRect"||t==="contentBoxSize"?A_:t==="borderBoxSize"?ov:C_,s=r.observe(e,a=>n(a[t]));Ft(s)}function R_(e,t,n){var r=ov.observe(e,()=>n(e[t]));Bt(()=>(Se(()=>n(e[t])),r))}function mu(e,t){return e===t||e?.[vt]===t}function Oe(e={},t,n,r){var s=Le.r,a=ye;return Bt(()=>{var o,l;return Ze(()=>{o=l,l=r?.()||[],Se(()=>{e!==n(...l)&&(t(e,...l),o&&mu(n(...o),e)&&t(null,...o))})}),()=>{let c=a;for(;c!==s&&c.parent!==null&&c.parent.f&Mo;)c=c.parent;const u=()=>{l&&mu(n(...l),e)&&t(null,...l)},d=c.teardown;c.teardown=()=>{u(),d?.()}}}),e}function L_(e,t,n,r=n){t.addEventListener("input",()=>{r(t[e])}),Ze(()=>{var s=n();if(t[e]!==s)if(s==null){var a=t[e];r(a)}else t[e]=s+""})}function M_(e,t,n,r,s){var a=()=>{r(n[e])};n.addEventListener(t,a),s?Ze(()=>{n[e]=s()}):a(),(n===document.body||n===window||n===document)&&Ft(()=>{n.removeEventListener(t,a)})}function P_(e,t){Mt(e,["focus","blur"],()=>{t(e===document.activeElement)})}function D_(e,t,n=t){var r=e==="x",s=()=>tr(()=>{a=!0,clearTimeout(o),o=setTimeout(l,100),n(window[r?"scrollX":"scrollY"])});addEventListener("scroll",s,{passive:!0});var a=!1,o,l=()=>{a=!1},c=!0;Ze(()=>{var u=t();c?c=!1:!a&&u!=null&&(a=!0,clearTimeout(o),r?scrollTo(u,window.scrollY):scrollTo(window.scrollX,u),o=setTimeout(l,100))}),Bt(s),Ft(()=>{removeEventListener("scroll",s)})}function z_(e,t){Mt(window,["resize"],()=>tr(()=>t(window[e])))}function j_(e){return function(...t){var n=t[0];n.isTrusted&&e?.apply(this,t)}}function O_(e){return function(...t){var n=t[0];n.target===this&&e?.apply(this,t)}}function N_(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 B_(e){return function(...t){var n=t[0];return n.stopImmediatePropagation(),e?.apply(this,t)}}function F_(e){return function(...t){var n=t[0];return n.preventDefault(),e?.apply(this,t)}}function V_(e=!1){const t=Le,n=t.l.u;if(!n)return;let r=()=>Ul(t.s);if(e){let s=0,a={};const o=ra(()=>{let l=!1;const c=t.s;for(const u in c)c[u]!==a[u]&&(a[u]=c[u],l=!0);return l&&s++,s});r=()=>i(o)}n.b.length&&Ef(()=>{bu(t,r),Ro(n.b)}),Ie(()=>{const s=Se(()=>n.m.map(Km));return()=>{for(const a of s)typeof a=="function"&&a()}}),n.a.length&&Ie(()=>{bu(t,r),Ro(n.a)})}function bu(e,t){if(e.l.s)for(const n of e.l.s)i(n);t()}function U_(e){var t=Rt(0);return function(){return arguments.length===1?(k(t,i(t)+1),arguments[0]):(i(t),e())}}function H_(e,t){var n=e.$$events?.[t.type],r=as(n)?n.slice():n==null?[]:[n];for(var s of r)s.call(this,t)}function K_(e,t,n){e.$$events||={},e.$$events[t]||=[],e.$$events[t].push(n)}function W_(e){for(var t in e)t in this&&(this[t]=e[t])}function Y_(e,t=1){const n=e();return e(n+t),n}function X_(e,t=1){const n=e()+t;return e(n),n}const G_={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 J_(e,t,n){return new Proxy({props:e,exclude:t},G_)}const Z_={get(e,t){if(!e.exclude.includes(t))return i(e.version),t in e.special?e.special[t]():e.props[t]},set(e,t,n){if(!(t in e.special)){var r=ye;try{pt(e.parent_effect),e.special[t]=te({get[t](){return e.props[t]}},t,Td)}finally{pt(r)}}return e.special[t](n),gr(e.version),!0},getOwnPropertyDescriptor(e,t){if(!e.exclude.includes(t)&&t in e.props)return{enumerable:!0,configurable:!0,value:e.props[t]}},deleteProperty(e,t){return e.exclude.includes(t)||(e.exclude.push(t),gr(e.version)),!0},has(e,t){return e.exclude.includes(t)?!1:t in e.props},ownKeys(e){return Reflect.ownKeys(e.props).filter(t=>!e.exclude.includes(t))}};function Q_(e,t){return new Proxy({props:e,exclude:t,special:{},version:Rt(0),parent_effect:ye},Z_)}const $_={get(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(Mr(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];Mr(s)&&(s=s());const a=dn(s,t);if(a&&a.set)return a.set(n),!0}return!1},getOwnPropertyDescriptor(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(Mr(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r){const s=dn(r,t);return s&&!s.configurable&&(s.configurable=!0),s}}},has(e,t){if(t===vt||t===xi)return!1;for(let n of e.props)if(Mr(n)&&(n=n()),n!=null&&t in n)return!0;return!1},ownKeys(e){const t=[];for(let n of e.props)if(Mr(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 ua(...e){return new Proxy({props:e},$_)}function te(e,t,n,r){var s=(n&zm)!==0,a=(n&jm)!==0,o=r,l=!0,c=()=>(l&&(l=!1,o=a?Se(r):r),o);let u;if(s){var d=vt in e||xi in e;u=dn(e,t)?.set??(d&&t in e?w=>e[t]=w:void 0)}var f,v=!1;s?[f,v]=sf(()=>e[t]):f=e[t],f===void 0&&r!==void 0&&(f=c(),u&&(pb(),u(f)));var m;if(m=()=>{var w=e[t];return w===void 0?c():(l=!0,w)},!(n&Td))return m;if(u){var S=e.$$legacy;return function(w,y){return arguments.length>0?((!y||S||v)&&u(y?m():w),w):m()}}var g=!1,b=(n&Dm?ra:Dl)(()=>(g=!1,m()));s&&i(b);var A=ye;return function(w,y){if(arguments.length>0){const C=y?i(b):s?ve(w):w;return k(b,C),g=!0,o!==void 0&&(o=C),w}return Bn&&g||A.f&Ct?b.v:i(b)}}function ew(e,t,n,r,s,a){df(t,()=>{var o=!1;Cl?.[zt],Ze(()=>{if(!o){var[l,c]=sf(n);if(!c){var u=r(),d=!1,f=Ze(()=>{d||l[u]});d=!0,f.deps===null&&(wb(),o=!0)}}})})}function tw(e){return new nw(e)}class nw{#e;#t;constructor(t){var n=new Map,r=(a,o)=>{var l=Ai(o,!1,!1);return n.set(a,l),l};const s=new Proxy({...t.props||{},$$events:{}},{get(a,o){return i(n.get(o)??r(o,Reflect.get(a,o)))},has(a,o){return o===xi?!0:(i(n.get(o)??r(o,Reflect.get(a,o))),Reflect.has(a,o))},set(a,o,l){return k(n.get(o)??r(o,l),l),Reflect.set(a,o,l)}});this.#t=(t.hydrate?Wf:Ke)(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)&&Jn(),this.#e=s.$$events;for(const a of Object.keys(this.#t))a==="$set"||a==="$destroy"||a==="$on"||fr(this,a,{get(){return this.#t[a]},set(o){this.#t[a]=o},enumerable:!0});this.#t.$set=a=>{Object.assign(s,a)},this.#t.$destroy=()=>{tt(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 lv;typeof HTMLElement=="function"&&(lv=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 a=>{const o=er("slot");s!=="default"&&(o.name=s),x(a,o)}};var e=t;if(await Promise.resolve(),!this.$$cn||this.$$c)return;const n={},r=rw(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 a=this.$$g_p(s.name);a in this.$$d||(this.$$d[a]=Pa(a,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=tw({component:this.$$ctor,target:this.$$shadowRoot||this,props:{...this.$$d,$$slots:n,$$host:this}}),this.$$me=os(()=>{Ze(()=>{this.$$r=!0;for(const s of Va(this.$$c)){if(!this.$$p_d[s]?.reflect)continue;this.$$d[s]=this.$$c[s];const a=Pa(s,this.$$d[s],this.$$p_d,"toAttribute");a==null?this.removeAttribute(this.$$p_d[s].attribute||s):this.setAttribute(this.$$p_d[s].attribute||s,a)}this.$$r=!1})});for(const s in this.$$l)for(const a of this.$$l[s]){const o=this.$$c.$on(s,a);this.$$l_u.set(a,o)}this.$$l={}}}attributeChangedCallback(e,t,n){this.$$r||(e=this.$$g_p(e),this.$$d[e]=Pa(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 Va(this.$$p_d).find(t=>this.$$p_d[t].attribute===e||!this.$$p_d[t].attribute&&t.toLowerCase()===e)||e}});function Pa(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 rw(e){const t={};return e.childNodes.forEach(n=>{t[n.slot||"default"]=!0}),t}function sw(e,t,n,r,s,a){let o=class extends lv{constructor(){super(e,n,s),this.$$p_d=t}static get observedAttributes(){return Va(t).map(l=>(t[l].attribute||l).toLowerCase())}};return Va(t).forEach(l=>{fr(o.prototype,l,{get(){return this.$$c&&l in this.$$c?this.$$c[l]:this.$$d[l]},set(c){c=Pa(l,c,t),this.$$d[l]=c;var u=this.$$c;if(u){var d=dn(u,l)?.get;d?u[l]=c:u.$set({[l]:c})}}})}),r.forEach(l=>{fr(o.prototype,l,{get(){return this.$$c?.[l]}})}),a&&(o=a(o)),e.element=o,o}function aw(e,...t){return Se(()=>{try{let n=!1;const r=[];for(const s of t)s&&typeof s=="object"&&vt in s?(r.push(mr(s,!0)),n=!0):r.push(s);n&&(kb(e),console.log("%c[snapshot]","color: grey",...r))}catch{}}),t}const cv=Object.freeze(Object.defineProperty({__proto__:null,CLASS:Dr,FILENAME:zt,HMR:Lr,NAMESPACE_SVG:Zs,STYLE:zr,aborted:Bo,action:tv,get active_effect(){return ye},add_legacy_event_listener:K_,add_locations:by,add_svelte_meta:qb,animation:Fy,append:x,append_styles:Ky,apply:Og,assign:hy,assign_async:py,async:Sy,async_derived:ff,attach:Xl,attachment:vy,attr:Gy,attribute_effect:l_,autofocus:sa,await:Ay,bind_active_element:d_,bind_buffered:p_,bind_checked:Cs,bind_content_editable:L_,bind_current_time:h_,bind_element_size:R_,bind_ended:y_,bind_files:v_,bind_focused:P_,bind_group:f_,bind_muted:S_,bind_online:I_,bind_paused:k_,bind_playback_rate:w_,bind_played:b_,bind_prop:E_,bind_property:M_,bind_ready_state:__,bind_resize_observer:T_,bind_seekable:m_,bind_seeking:g_,bind_select_value:js,bind_this:Oe,bind_value:Te,bind_volume:x_,bind_window_scroll:D_,bind_window_size:z_,boundary:uf,bubble_event:H_,check_target:wy,child:p,cleanup_styles:my,clsx:rv,comment:Me,component:la,create_custom_element:sw,create_ownership_validator:_y,css_props:Ry,customizable_select:u_,deep_read:Wa,deep_read_state:Ul,deferred_template_effect:Ag,delegate:me,delegated:K,derived:V,derived_safe_equal:Dl,get document(){return yf},each:be,eager:rg,effect:Bt,effect_root:os,effect_tracking:ia,element:Uy,equals:yg,event:Ue,exclude_from_object:Ym,fallback:Wm,first_child:fe,flush:Jn,for_await_track_reactivity_loss:ug,from_html:E,from_mathml:Fg,from_svg:Kl,from_tree:Vg,get:i,head:Hy,hmr:yy,html:Dy,hydrate_template:Rb,if:W,index:ut,init:V_,init_select:Gl,inspect:xy,invalid_default_snippet:Zm,invalidate_inner_signals:Rg,invalidate_store:Xb,invoke_error_boundary:En,key:Ty,legacy_api:ky,legacy_pre_effect:Sg,legacy_pre_effect_reset:Ig,legacy_rest_props:Q_,log_if_contains_state:aw,mark_store_binding:$b,mutable_source:Ai,mutate:mg,next:yt,noop:jt,once:q_,pending:lg,pop:ie,preventDefault:F_,prevent_snippet_stringification:Xf,prop:te,props_id:Kg,proxy:ve,push:ae,raf:Sn,reactive_import:U_,remove_input_defaults:xe,remove_textarea_child:Nl,render_effect:Ze,replay_events:jg,reset:h,rest_props:J_,run:dg,run_after_blockers:df,safe_get:Dg,sanitize_slots:jy,save:cg,select_option:zs,selectedcontent:c_,self:O_,set:k,set_attribute:re,set_checked:Jl,set_class:he,set_custom_element_data:i_,set_default_checked:r_,set_default_value:s_,set_selected:Zl,set_style:We,set_text:z,set_value:Os,set_xlink_attribute:a_,setup_stores:Gb,sibling:_,slot:zy,snapshot:mr,snippet:en,spread_props:ua,state:U,stopImmediatePropagation:B_,stopPropagation:N_,store_get:Wb,store_mutate:Jb,store_set:rf,store_unsub:Yb,strict_equals:gg,tag:jb,tag_proxy:Gd,template_effect:N,text:vn,tick:oa,to_array:Od,trace:zb,track_reactivity_loss:Oo,transition:Vy,trusted:j_,untrack:Se,update:gr,update_legacy_props:W_,update_pre:bg,update_pre_prop:X_,update_pre_store:Qb,update_prop:Y_,update_store:Zb,user_effect:Ie,user_pre_effect:Ef,validate_binding:ew,validate_dynamic_element_tag:sy,validate_snippet_args:Iy,validate_store:ay,validate_void_dynamic_element:ry,wait:fg,get window(){return No},with_script:Ug,wrap_snippet:iy},Symbol.toStringTag,{value:"Module"}));class Wo{#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 gu{#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 iw=["workspace","user"],Ns="state:manage",gn={ephemeral:new Wo,session:new Wo,workspace:new gu("sh3:workspace:"),user:new gu("sh3:user:")},po=new Map;let mo=!1;function ow(e,t,n){po.set(`${e}:${t}`,{zone:e,shardId:t,value:n}),!mo&&(mo=!0,queueMicrotask(()=>{mo=!1;for(const{zone:r,shardId:s,value:a}of po.values())gn[r].write(s,a);po.clear()}))}function Ri(e,t){const n={};for(const r of Object.keys(t)){const s=t[r],o=gn[r].read(e),l={...s,...o??{}},c=ve(l);n[r]=c,iw.includes(r)&&os(()=>{let u=!0;Ie(()=>{const d=mr(c);if(u){u=!1;return}ow(r,e,d)})})}return n}function bo(e,t){gn[e]=t}function lw(e,t){return gn[e].read(t)}function Yo(e,t){gn[e].delete(t)}const cw="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(cw);const uw=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function dw(e,t={}){const n=document.activeElement;function r(){return Array.from(e.querySelectorAll(uw))}function s(a){if(a.key!=="Tab")return;const o=r();if(o.length===0){a.preventDefault();return}const l=o[0],c=o[o.length-1],u=document.activeElement;a.shiftKey&&(u===l||!e.contains(u))?(a.preventDefault(),c.focus()):!a.shiftKey&&(u===c||!e.contains(u))&&(a.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 fw=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 vw(e,t){ae(t,!0);let n=te(t,"initialFocus",3,!0),r;Ie(()=>{if(r)return dw(r,{initialFocus:n()})});function s(c){t.onBackdropClick&&c.target===c.currentTarget&&t.onBackdropClick()}var a=fw(),o=p(a),l=p(o);la(l,()=>t.Content,(c,u)=>{u(c,ua(()=>t.contentProps,{get close(){return t.close}}))}),h(o),Oe(o,c=>r=c,()=>r),h(a),N(()=>We(o,t.boxStyle)),K("click",a,s),x(e,a),ie()}me(["click"]);const ec={};function hw(e,t){ec[e]=t}function pw(e){delete ec[e]}function Li(e){const t=ec[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 Zn=ve(new Map),ft=ve({id:null}),Jr=ve({id:null});function mw(){return Jr.id}function qs(e){Zn.set(e.manifest.id,e)}function us(){return Array.from(Zn.values()).map(e=>e.manifest)}function tc(){const e=ft.id;return e?Zn.get(e)?.manifest??null:null}function yn(e){return Zn.get(e)}const Ts=[],Fr=[];let Bs=null;function bw(e){Bs=e}function gw(e){if(!ft.id)throw new Error("pushNavEntry requires an active app");const t=Symbol("nav-entry");return Fr.push({id:t,label:e.label,onPop:e.onPop}),{remove(){const n=Fr.findIndex(r=>r.id===t);n>=0&&Fr.splice(n,1)}}}function uv(e){const t=Symbol("dismissable");return Ts.push({id:t,dismiss:e}),{unregister(){const n=Ts.findIndex(r=>r.id===t);n>=0&&Ts.splice(n,1)}}}function dv(){Fr.length=0}function yw(){if(Ts.length>0){Ts.pop().dismiss();return}if(Fr.length>0){Fr.pop().onPop();return}ft.id&&Bs&&Bs.returnToHome()}function _w(){ft.id||Jr.id&&Bs&&Bs.launchApp(Jr.id)}const Nt=[];let Ja=!1,Kt=null;const ww=.5;function fv(){const e=Li("modal");if(Nt.length===0){Kt&&(Kt.remove(),Kt=null);return}Kt||(Kt=document.createElement("div"),Kt.className="sh3-modal-backdrop",Kt.style.position="absolute",Kt.style.inset="0",Kt.style.pointerEvents="auto",Kt.style.transition="background-color 120ms ease",Kt.style.background=`rgba(0, 0, 0, ${ww})`);const t=Nt[Nt.length-1].host;e.insertBefore(Kt,t)}function vv(e){e.key==="Escape"&&Nt.length!==0&&(e.stopPropagation(),e.preventDefault(),Nt[Nt.length-1].handle.close())}function kw(){Ja||(Ja=!0,document.addEventListener("keydown",vv,!0))}function xw(){Nt.length>0||Ja&&(Ja=!1,document.removeEventListener("keydown",vv,!0))}function hv(e){const t=Nt.indexOf(e);t<0||(Nt.splice(t,1),tt(e.frame),e.host.remove(),fv(),xw())}function Sw(e,t,n){const r=Li("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 a={},o={close:()=>hv(a)},l=uv(()=>o.close()),c=o.close;o.close=()=>{l.unregister(),c()};const u=Ke(vw,{target:s,props:{Content:e,contentProps:t??{},close:o.close,boxStyle:n?.boxStyle,onBackdropClick:n?.dismissOnBackdrop?o.close:void 0,initialFocus:n?.initialFocus}});return a.host=s,a.frame=u,a.handle=o,Nt.push(a),fv(),kw(),o}function Iw(){for(;Nt.length>0;)hv(Nt[Nt.length-1])}const nn={open:Sw,closeAll:Iw},Yn=new Map;function da(e,t){const n=Yn.get(e);return!n||n.priority==="edge"&&t.priority==="normal"||t.priority===n.priority&&t.depth>n.depth?(Yn.set(e,t),!0):!1}function _r(e,t){Yn.get(e)?.ownerId===t&&Yn.delete(e)}function pv(e){return Yn.get(e)??null}function Ew(e,t){return Yn.get(e)?.ownerId===t}let Aw=0;function Cw(){return`sh3:gesture:${Aw++}`}function Tw(e){let t=0,n=e;for(;n;)t++,n=n.parentElement;return t}function yu(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 go(e,t){return e.length!==t.length?!1:e.every(n=>t.includes(n))}function Rw(e){if(!e)return{register:()=>({enable(){},disable(){},destroy(){}}),destroy(){}};const t=[],n=new Map;function r(c){if(!c.isPrimary)return;const u=yu(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||!go(f.modifiers??[],u))continue;const m=f.container??e;if(!m||!m.contains(c.target))continue;const S=Tw(m);if(!da(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 b={pointerId:c.pointerId,x:c.clientX,y:c.clientY,dx:0,dy:0};f.onStart(b),document.addEventListener("pointermove",s),document.addEventListener("pointerup",a),document.addEventListener("pointercancel",o);return}if(d.opts.type==="button"){const f=d.opts;if(c.button!==f.button||!go(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 a(c){const u=n.get(c.pointerId);if(!u)return;n.delete(c.pointerId),_r(c.pointerId,u.handlerId),document.removeEventListener("pointermove",s),document.removeEventListener("pointerup",a),document.removeEventListener("pointercancel",o);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,g=Math.sqrt(v*v+m*m);f.onEnd({pointerId:c.pointerId,x:c.clientX,y:c.clientY,dx:v,dy:m,cancelled:!1,wasClick:g<S})}else f.onEnd({pointerId:c.pointerId,x:c.clientX,y:c.clientY,dx:v,dy:m,cancelled:!1})}function o(c){const u=n.get(c.pointerId);if(!u)return;n.delete(c.pointerId),_r(c.pointerId,u.handlerId),document.removeEventListener("pointermove",s),document.removeEventListener("pointerup",a),document.removeEventListener("pointercancel",o);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=yu(c);for(const d of t){if(!d.enabled||d.destroyed||d.opts.type!=="scroll")continue;const f=d.opts;if(!go(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:Cw(),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 nc(e){let t=0,n=e;for(;n;)t++,n=n.parentElement;return t}const Za=24;function Dn(e,t,n){if(typeof console>"u")return;const r=t?.target,s=r?.tagName??"-",a=r?.className??"",o=typeof a=="string"?a:"";console.log("[sh3:gesture]",e,{pointerId:t?.pointerId,pointerType:t?.pointerType,type:t?.type,target:o?`${s}.${o}`:s,...n})}var Lw=E('<div class="popup-frame svelte-mp81cl" role="menu" tabindex="-1"><!></div>');function Mw(e,t){ae(t,!0);let n,r=U(-9999),s=U(-9999);Ie(()=>{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)}k(r,f,!0),k(s,v,!0)});var a=Lw(),o=p(a);la(o,()=>t.Content,(l,c)=>{c(l,ua(()=>t.contentProps,{get close(){return t.close}}))}),h(a),Oe(a,l=>n=l,()=>n),N(()=>We(a,`top: ${i(r)??""}px; left: ${i(s)??""}px;`)),x(e,a),ie()}function Pw(e){return e instanceof HTMLElement?e.getBoundingClientRect():new DOMRect(e.x,e.y,0,0)}let Qt=null;function mv(e){if(!Qt||pv(e.pointerId))return;const t=e.target;t&&Qt.host.contains(t)||Qt.handle.close()}function bv(e){Qt&&e.key==="Escape"&&(e.stopPropagation(),e.preventDefault(),Qt.handle.close())}function Dw(){document.addEventListener("pointerdown",mv,!0),document.addEventListener("keydown",bv,!0)}function zw(){document.removeEventListener("pointerdown",mv,!0),document.removeEventListener("keydown",bv,!0)}function Xo(e){Qt===e&&(Qt=null,zw(),tt(e.frame),e.host.remove())}function jw(e,t,n){Qt&&Xo(Qt);const r=Li("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 a=Pw(t.anchor),o={},l={close:()=>Xo(o)},c=uv(()=>l.close()),u=l.close;l.close=()=>{c.unregister(),u()};const d=Ke(Mw,{target:s,props:{Content:e,contentProps:n??{},anchorRect:a,close:l.close}});return o.host=s,o.frame=d,o.handle=l,Qt=o,queueMicrotask(Dw),l}function Ow(){Qt&&Xo(Qt)}const Go={show:jw,close:Ow};var Nw=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=Nw(),r=p(n),s=p(r,!0);h(r);var a=_(r,2),o=p(a,!0);h(a),h(n),N(()=>{he(n,1,`toast toast-${t.level??""}`,"svelte-12gwnj0"),z(s,t.level),z(o,t.message)}),K("click",n,function(...l){t.close?.apply(this,l)}),x(e,n)}me(["click"]);const Qa=new Set;let St=null;function Bw(){if(St&&St.isConnected)return St;const e=Li("toast");return St=document.createElement("div"),St.className="sh3-toast-stack",St.style.position="absolute",St.style.right="16px",St.style.bottom="16px",St.style.display="flex",St.style.flexDirection="column-reverse",St.style.gap="6px",St.style.pointerEvents="none",e.appendChild(St),St}function Jo(e){Qa.has(e)&&(Qa.delete(e),e.timer!==null&&(clearTimeout(e.timer),e.timer=null),tt(e.instance),e.host.remove())}function Fw(e,t={}){const n=t.level??"info",r=t.duration??3e3,s=Bw(),a=document.createElement("div");a.className="sh3-toast-host",s.appendChild(a);const o={},l={close:()=>Jo(o)},c=Ke(qw,{target:a,props:{message:e,level:n,close:l.close}});return o.host=a,o.instance=c,o.handle=l,o.timer=Number.isFinite(r)&&r>0?setTimeout(()=>Jo(o),r):null,Qa.add(o),l}function Vw(){for(const e of[...Qa])Jo(e)}const An={notify:Fw,clear:Vw},_u={w:120,h:80};function Mi(e){if(e.type==="slot")return{..._u};if(e.type==="tabs")return{..._u};const t=e.children.map(Mi);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,ku={x:48,y:48};function gv(e,t){if(e.length===0)return{...ku};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?{...ku}:r}let xu=0;function yv(){return xu+=1,`float-${Date.now().toString(36)}-${xu.toString(36)}`}function Uw(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)),a=Math.max(0,n.w-r),o=Math.max(0,n.h-s),l=Math.max(0,Math.min(e.position.x,a)),c=Math.max(0,Math.min(e.position.y,o));return{position:{x:l,y:c},size:{w:r,h:s}}}function _v(e){return e.type==="slot"?e.viewId==null:e.type==="tabs"?e.tabs.every(t=>t.viewId==null):e.children.every(_v)}function Hw(e){return e.closest("[data-sh3-overlay-host]")}const $a=new Map,rc=new Map,wv=new Set;function Kw(e){wv.add(e)}function Ww(e,t,n){if($a.has(e))throw new Error(`View "${e}" is already registered`);$a.set(e,t),n!==void 0&&rc.set(e,n);for(const r of wv)r(e,t)}function kv(e){return $a.get(e)}function Su(e){return rc.get(e)}function xv(e){$a.delete(e),rc.delete(e)}const Zr=new Map;function Yw(e,t,n){const r=Zr.get(e);return r?(console.warn(`[sh3] verb "${e}" already registered by shard "${r.shardId}"; skipping registration from "${n}"`),!1):(Zr.set(e,{verb:t,shardId:n}),!0)}function ei(e){return Zr.get(e)?.verb}function Sv(e){Zr.delete(e)}function sc(){return Array.from(Zr.values()).map(e=>e.verb).sort((e,t)=>e.name.localeCompare(t.name))}function Iv(){return Array.from(Zr.values()).map(e=>({...e}))}function Qr(e,t){const n=(r,s)=>{if(r.type==="tabs"){const a=r.tabs.findIndex(o=>o.slotId===t);if(a>=0)return{tabsNode:r,tabsPath:s,tabIndex:a,entry:r.tabs[a]}}else if(r.type==="split")for(let a=0;a<r.children.length;a++){const o=n(r.children[a],[...s,a]);if(o)return o}return null};return n(e,[])}function ac(e,t){if(Zo(e.docked,t))return{kind:"docked"};for(const n of e.floats)if(Zo(n.content,t))return{kind:"float",floatId:n.id};return null}function Zo(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(Zo(n,t))return!0;return!1}function Pi(e,t){const n=Qr(e,t);if(!n)return null;const{tabsNode:r,tabIndex:s,entry:a}=n;return r.tabs.splice(s,1),r.tabs.length===0?r.activeTab=0:s<r.activeTab?r.activeTab-=1:r.activeTab>=r.tabs.length&&(r.activeTab=r.tabs.length-1),a}function Xw(e,t,n){const r=Math.max(0,Math.min(n,e.tabs.length));e.tabs.splice(r,0,t),e.activeTab=r}function Gw(e,t,n){const r=e.tabs.slice(),[s]=r.splice(t,1),a=Math.max(0,Math.min(n,r.length));r.splice(a,0,s),e.tabs=r,e.activeTab=a}function Iu(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 Jw(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 Qo(e,t,n,r){const s=$r(e,t);if(!s||Ev(e,t))return;if(t.length===0){const u=Jw(s),d=Iu(u,n,r),f=e;delete f.tabs,delete f.activeTab,delete f.slotId,delete f.viewId,delete f.direction,delete f.sizes,delete f.pinned,delete f.collapsed,delete f.children,Object.assign(f,d);return}const a=Iu(s,n,r),o=t.slice(0,-1),l=t[t.length-1],c=$r(e,o);!c||c.type!=="split"||(c.children[l]=a)}function $r(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 Ev(e,t){if(t.length===0)return!1;const n=$r(e,t.slice(0,-1));return!n||n.type!=="split"?!1:n.fixed?.[t[t.length-1]]===!0}function Nr(e){let t=!0;for(;t;)t=Av(e,null,0)}function Av(e,t,n){if(e.type==="split"){let r=!1;for(let s=0;s<e.children.length;s++)Av(e.children[s],e,s)&&(r=!0);for(let s=e.children.length-1;s>=0;s--){const a=e.children[s];a.type==="tabs"&&a.tabs.length===0&&!a.persistent&&!e.fixed?.[s]&&(e.children.splice(s,1),e.sizes.splice(s,1),e.pinned&&e.pinned.splice(s,1),e.collapsed&&e.collapsed.splice(s,1),e.fixed&&e.fixed.splice(s,1),r=!0)}if(e.children.length<=1&&t)return e.children.length===1?t.children[n]=e.children[0]:(t.children.splice(n,1),t.sizes.splice(n,1),t.pinned&&t.pinned.splice(n,1),t.collapsed&&t.collapsed.splice(n,1)),!0;if(e.children.length===1&&!t){const s=e.children[0],a=e;return delete a.direction,delete a.sizes,delete a.pinned,delete a.collapsed,delete a.children,Object.assign(a,s),!0}return r}return e.type==="tabs",!1}function Vt(e){return typeof e.label=="function"?e.label():e.label}const Zw=["Ctrl","Alt","Shift","Meta"],Eu={control:"Ctrl",ctrl:"Ctrl",alt:"Alt",option:"Alt",shift:"Shift",meta:"Meta",cmd:"Meta",command:"Meta",super:"Meta",win:"Meta"},Qw=new Set(["Control","Alt","Shift","Meta"]);function Cv(e){return e.length===1?e.toUpperCase():e}function ic(e){if(!e)throw new Error("Empty shortcut");const t=e.split("+");if(t.some(o=>o.trim()===""))throw new Error(`Malformed shortcut: "${e}"`);const n=t.map(o=>o.trim());if(n.length===0)throw new Error(`Malformed shortcut: "${e}"`);const r=new Set;let s;for(const o of n){const l=o.toLowerCase();if(l in Eu)r.add(Eu[l]);else{if(s!==void 0)throw new Error(`Multiple keys in shortcut: "${e}"`);s=Cv(o)}}if(s===void 0)throw new Error(`No key in shortcut: "${e}"`);return[...Zw.filter(o=>r.has(o)),s].join("+")}function Tv(e,t){if(!e.toLowerCase().includes("mod"))return e;const n=e.split("+").map(r=>r.toLowerCase()==="mod"?t==="mac"?"Meta":"Ctrl":r);return ic(n.join("+"))}function $w(e){if(Qw.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=Cv(e.key);return[...t,n].join("+")}function e1(){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:ic(r)}return e.defaultShortcut?Tv(e.defaultShortcut,n):null}function t1(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?{shortcut:null,source:"disabled"}:{shortcut:ic(r),source:"user"}}return e.defaultShortcut?{shortcut:Tv(e.defaultShortcut,n),source:"default"}:{shortcut:null,source:"none"}}const Di=["element","focus","view","app","home"];function Fs(e,t,n){if(e==="home")return t.activeAppId===null;if(e==="app")return t.activeAppId===null||!n?!1:t.activeAppRequiredShards.has(n)||t.autostartShards.has(n);if(typeof e=="string"){if(e.startsWith("view:"))return t.mountedViewIds.has(e.slice(5));if(e.startsWith("focus:"))return t.focusedViewId===e.slice(6)}return typeof e=="object"&&"element"in e?t.selection!==null&&t.selection.type===e.element:!1}function n1(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 a of oc(r.action.scope)){if(!Fs(a,t,r.ownerShardId))continue;const o=zi(a),l=n[o].get(s);if(l&&l!==r.action.id){console.warn(`[sh3] Shortcut "${s}" in tier "${o}" is bound to both "${l}" and "${r.action.id}"; first-registered wins. Users can rebind to resolve.`);continue}n[o].set(s,r.action.id)}}return n}function r1(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 s1(e){return e instanceof Element?e.closest("[data-sh3-passthrough-modifiers]")!==null:!1}function a1(e){return/(?:^|\+)(?:Ctrl|Alt|Meta)\+/.test(e)}function i1(e){const t=n1(e.entries,e.state),n=new Map(e.entries.map(r=>[r.action.id,r]));for(const r of Di){const s=t[r].get(e.shortcut);if(!s)continue;const a=n.get(s);if(a)return r1(e.target)&&!a.action.allowInInputs&&!(s1(e.target)&&a1(e.shortcut))?null:(e.runAction(s,{action:{id:a.action.id,label:Vt(a.action)},appId:e.state.activeAppId,viewId:e.state.focusedViewId??void 0,selection:e.state.selection??void 0,invokedVia:"keyboard",dispatch:e.dispatch??(()=>{})}),s)}return null}function zi(e){return e==="home"?"home":e==="app"?"app":typeof e=="string"&&e.startsWith("view:")?"view":typeof e=="string"&&e.startsWith("focus:")?"focus":"element"}function oc(e){return Array.isArray(e)?e:[e]}function Rv(e){return e==="home"||e==="app"?null:typeof e=="string"?e:e.element}function va(e,t,n){const r=oc(e),s={};for(const a of r){const o=zi(a);(s[o]??=[]).push(a)}for(const a of Di){const o=s[a];if(o){for(const l of o)if(Fs(l,t,n))return l}}return null}function o1(e,t){return typeof e=="string"||typeof t=="string"?e===t:e.element===t.element}function Lv(e){return typeof e=="string"?e:`element:${e.element}`}function l1(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 qr=new Map,Da=new Map,$o=new Set,es=new Map;function Au(e){const t=Da.get(e);if(t)for(const n of t)n();for(const n of $o)n(e)}function c1(e,t){let n=es.get(e);n||(n=new Set,es.set(e,n)),n.add(t)}function u1(e,t){const n=es.get(e);n&&(n.delete(t),n.size===0&&es.delete(e))}function Mv(e,t,n){const r=Symbol();let s=qr.get(e);s||(s=new Map,qr.set(e,s)),s.set(r,t),Au(e);const a=n?.scope?.slotId;let o=!1;const l=()=>{if(o)return;o=!0,a&&u1(a,l);const c=qr.get(e);c&&c.delete(r)&&(c.size===0&&qr.delete(e),Au(e))};return a&&c1(a,l),l}function Er(e){const t=qr.get(e);return t?Array.from(t.values()):[]}function d1(){return Array.from(qr.keys())}function ji(e,t){let n=Da.get(e);n||(n=new Set,Da.set(e,n)),n.add(t);let r=!1;return()=>{r||(r=!0,n.delete(t),n.size===0&&Da.delete(e))}}function f1(e){$o.add(e);let t=!1;return()=>{t||(t=!0,$o.delete(e))}}function v1(e){const t=es.get(e);if(!t)return;const n=Array.from(t);for(const r of n)r();es.delete(e)}const jn=new Map,za=new Set;function h1(e,t){for(const[n,r]of jn.entries()){if(r.viewId!==e||r.handle!==void 0)continue;const s={slotId:n,viewId:e,label:r.label,meta:r.meta,setDirty(a){Oi[n]=a},location(){return ac(Ut(),n)}};queueMicrotask(()=>{if(jn.has(n)&&r.handle===void 0&&(r.handle=t.mount(r.host,s),(r.handle?.closable||n.startsWith("float:"))&&(Ni[n]=!0),r.handle?.onResize)){const a=r.handle.onResize.bind(r.handle);r.resizeObserver=new ResizeObserver(o=>{for(const l of o){const c=l.contentRect;a(Math.round(c.width),Math.round(c.height))}}),r.resizeObserver.observe(r.host)}})}}Kw(h1);const Oi=ve({}),Ni=ve({});function p1(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",Lv(`focus:${t}`))),s.style.position="absolute",s.style.inset="0",s.style.minWidth="0",s.style.minHeight="0";let a=!1;const o={host:s,handle:void 0,viewId:t,label:n,meta:r,refcount:0,resizeObserver:void 0,cancelPendingMount:()=>{a=!0}};return queueMicrotask(()=>{if(a)return;const l=t?kv(t):void 0,c={slotId:e,viewId:t??"",label:n,meta:r,setDirty(u){Oi[e]=u},location(){return ac(Ut(),e)}};if(o.handle=l?.mount(s,c),(o.handle?.closable||e.startsWith("float:"))&&(Ni[e]=!0),o.handle?.onResize){const u=o.handle.onResize.bind(o.handle);o.resizeObserver=new ResizeObserver(d=>{for(const f of d){const v=f.contentRect;u(Math.round(v.width),Math.round(v.height))}}),o.resizeObserver.observe(s)}}),o}function lc(e,t,n,r){za.delete(e);let s=jn.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",Lv(`focus:${t}`))):(s.host.removeAttribute("data-sh3-view"),s.host.removeAttribute("data-sh3-scope"))):(s=p1(e,t,n,r),jn.set(e,s)),s.refcount++,s.host}function cc(e,t){const n=jn.get(e);if(n){if(n.refcount--,n.refcount>0){t&&n.host.parentNode===t&&n.host.remove();return}za.add(e),queueMicrotask(()=>{if(!za.has(e))return;za.delete(e);const r=jn.get(e);!r||r.refcount>0||(r.resizeObserver?.disconnect(),v1(e),r.handle?.unmount(),r.cancelPendingMount(),r.host.remove(),jn.delete(e),delete Oi[e],delete Ni[e])})}}function yo(e){const t=jn.get(e);if(t)return{host:t.host,refcount:t.refcount}}function Pv(e){const t=el.get(e);return t||jn.get(e)?.handle}function m1(e){return Oi[e]??!1}function b1(e){return el.has(e)?!!el.get(e).closable:Ni[e]??!1}const el=new Map;function Dv(e){if(!e||typeof e!="object")return!1;const t=e.type;return t==="split"||t==="tabs"||t==="slot"}function g1(e){if(!e||typeof e!="object")return!1;const t=e;return Dv(t.docked)&&Array.isArray(t.floats)}function y1(e){return{docked:e,floats:[]}}function _1(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 w1(e,t){return t==="compact"&&e.variants.compact?e.variants.compact:e.variants.default}function zv(e){if(Array.isArray(e))return e.map(_1);if(g1(e))return[{name:"default",variants:{default:e}}];if(Dv(e))return[{name:"default",variants:{default:y1(e)}}];throw new Error("normalizeInitialLayout: input is not a LayoutNode, LayoutTree, or LayoutPreset[]")}function k1(e){return e.coarsePointer&&e.noHover||e.width<720||e.coarsePointer&&e.dpr>=2&&e.width<1100?"compact":"desktop"}let xs=U(null);const Ss=new Set;function jv(){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:i(xs)??k1({width:e,coarsePointer:n,noHover:r,dpr:s}),width:e,height:t,coarsePointer:n,noHover:r,dpr:s}}let ti=U(ve(jv()));function Is(){const e=jv(),t=i(ti).class;if(k(ti,e,!0),e.class!==t)for(const n of Ss)n(e)}typeof window<"u"&&(window.addEventListener("resize",Is),window.matchMedia("(pointer: coarse)").addEventListener("change",Is),window.matchMedia("(hover: none)").addEventListener("change",Is),typeof screen<"u"&&screen.orientation&&screen.orientation.addEventListener("change",Is));const un={get current(){return i(ti)},subscribe(e){return Ss.add(e),()=>{Ss.delete(e)}},override(e){if(i(xs)!==e){k(xs,e,!0),Is();for(const t of Ss)t(i(ti))}},get pinned(){return i(xs)},__reset(){k(xs,null),Ss.clear()}};function Cu(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 uc(e){const t=Cu(e.docked);for(const n of e.floats)t.push(...Cu(n.content));return t}let ni=null;function x1(e){ni=e}function S1(){ni=null}function dc(){if(!ni)throw new Error("presetManager: no app attached — bind an AppLayoutBlob first");return ni}function I1(){return Object.keys(dc().presets)}function E1(){return dc().activePreset}function A1(e){const t=dc();if(!(e in t.presets))throw new Error(`presetManager.switch: unknown preset "${e}"`);t.activePreset=e}const C1={list:I1,active:E1,switch:A1};function Ov(){return{left:{open:!1,activeSlotId:null},right:{open:!1,activeSlotId:null},top:{open:!1,activeSlotId:null}}}const an=ve(Ov());let ri=null;function ka(){ri&&ri(an)}const Ot={get state(){return an},open(e){an[e].open=!0,ka()},close(e){an[e].open=!1,ka()},toggle(e){an[e].open=!an[e].open,ka()},activate(e,t){an[e].activeSlotId=t,ka()},__setWriteThrough(e){ri=e},__hydrate(e){for(const t of["left","right","top"])an[t].open=e[t].open,an[t].activeSlotId=e[t].activeSlotId},__reset(){ri=null;const e=Ov();for(const t of["left","right","top"])an[t].open=e[t].open,an[t].activeSlotId=e[t].activeSlotId}};Yo("workspace","__shell__");const T1={type:"slot",slotId:"sh3core.home",viewId:"sh3core:home"},tl=ve({docked:T1,floats:[]});let Qe=U(null),ha=U("home");function R1(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 L1(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 M1(e){if(i(Qe))throw new Error(`Layout manager cannot attach app "${e.manifest.id}": app "${i(Qe).appId}" is still attached`);const t=`__sh3core__:app:${e.manifest.id}`,n=zv(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=lw("workspace",t),a=R1(s);(a&&a.layoutVersion!==e.manifest.layoutVersion||s&&!a)&&Yo("workspace",t);const l=Ri(t,{workspace:r}).workspace;k(Qe,{appId:e.manifest.id,proxy:l,heldSlotIds:[]},!0),x1(l),P1(l)}function P1(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();Ot.__hydrate(r[t].compact),Ot.__setWriteThrough(s=>{const a=n();a[t].compact={left:{...s.left},right:{...s.right},top:{...s.top}}})}function D1(){if(!i(Qe))throw new Error("acquireAppSlotHolds: no app attached");if(i(Qe).heldSlotIds.length>0)return;const e=L1(i(Qe).proxy),t=uc(e);for(const{slotId:n,viewId:r,label:s,meta:a}of t)lc(n,r,s,a),i(Qe).heldSlotIds.push(n)}function z1(){if(!i(Qe))throw new Error("resetActivePresetToDefault: no app attached");const e=yn(i(Qe).appId);if(!e)throw new Error(`resetActivePresetToDefault: attached app "${i(Qe).appId}" not in registry`);const t=zv(e.initialLayout),n=i(Qe).proxy,r=n.activePreset;let s=t.find(l=>l.name===r);s||(s=t[0],n.activePreset=s.name);for(const l of i(Qe).heldSlotIds)cc(l);i(Qe).heldSlotIds=[];const a=structuredClone(s.variants.default);n.presets[n.activePreset].default=a;const o=uc(a);for(const{slotId:l,viewId:c,label:u,meta:d}of o)lc(l,c,u,d),i(Qe).heldSlotIds.push(l)}function Nv(){if(i(Qe)){S1(),Ot.__setWriteThrough(null),Ot.__hydrate({left:{open:!1,activeSlotId:null},right:{open:!1,activeSlotId:null},top:{open:!1,activeSlotId:null}});for(const e of i(Qe).heldSlotIds)cc(e);k(Qe,null)}}function qv(){k(ha,"home")}function Tu(){if(!i(Qe))throw new Error("Cannot switchToApp: no app is attached");k(ha,"app")}const ja=V(()=>{if(i(ha)==="app"&&i(Qe)){const e=i(Qe).proxy,t=e.activePreset,n=e.presets[t];if(!n)throw new Error(`AppLayoutBlob active preset "${t}" not found in presets map`);return w1({variants:n},un.current.class)}return tl});function Ut(){return i(ja)}function qi(){return i(ha)}const ht={get root(){return i(ja).docked},get tree(){return i(ja)},get floats(){return i(ja).floats}};function j1(e){tl.docked=e,tl.floats=[],k(ha,"home")}let Rs=U(ve({kind:"docked"}));const hn={get current(){return i(Rs)},setRoot(e){if(e.kind==="float"&&!ht.tree.floats.some(n=>n.id===e.floatId))throw new Error(`compactRootStore.setRoot: float id "${e.floatId}" is not in the active tree`);k(Rs,e,!0)},reset(){k(Rs,{kind:"docked"},!0)}};function Bv(){const e=i(Rs);if(e.kind==="docked")return ht.root;const t=ht.tree.floats.find(n=>n.id===e.floatId);return t?t.content:(k(Rs,{kind:"docked"},!0),ht.root)}class O1 extends Map{#e=new Map;#t=U(0);#n=U(0);#s=zn||-1;constructor(t){if(super(),t){for(var[n,r]of t)super.set(n,r);this.#n.v=super.size}}#r(t){return zn===this.#s?U(t):Rt(t)}has(t){var n=this.#e,r=n.get(t);if(r===void 0)if(super.has(t))r=this.#r(0),n.set(t,r);else return i(this.#t),!1;return i(r),!0}forEach(t,n){this.#i(),super.forEach(t,n)}get(t){var n=this.#e,r=n.get(t);if(r===void 0)if(super.has(t))r=this.#r(0),n.set(t,r);else{i(this.#t);return}return i(r),super.get(t)}set(t,n){var r=this.#e,s=r.get(t),a=super.get(t),o=super.set(t,n),l=this.#t;if(s===void 0)s=this.#r(0),r.set(t,s),k(this.#n,super.size),xn(l);else if(a!==n){xn(s);var c=l.reactions===null?null:new Set(l.reactions),u=c===null||!s.reactions?.every(d=>c.has(d));u&&xn(l)}return o}delete(t){var n=this.#e,r=n.get(t),s=super.delete(t);return r!==void 0&&(n.delete(t),k(r,-1)),s&&(k(this.#n,super.size),xn(this.#t)),s}clear(){if(super.size!==0){super.clear();var t=this.#e;k(this.#n,0);for(var n of t.values())k(n,-1);xn(this.#t),t.clear()}}#i(){i(this.#t);var t=this.#e;if(this.#n.v!==t.size){for(var n of super.keys())if(!t.has(n)){var r=this.#r(0);t.set(n,r)}}for([,r]of this.#e)i(r)}keys(){return i(this.#t),super.keys()}values(){return this.#i(),super.values()}entries(){return this.#i(),super.entries()}[Symbol.iterator](){return this.entries()}get size(){return i(this.#n),super.size}}const nl=new O1;function Vs(e,t){t?nl.set(e,!0):nl.delete(e)}function N1(e){return nl.get(e)??!1}let q1=[],fc=null,pa=()=>({w:1600,h:900});const Us=new Set;function vc(e,t){const n=Mi(e.content),r=Uw({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 B1(e,t){fc=e,pa=t;const n=t();for(const r of e)Us.has(r.id)||(vc(r,n),Us.add(r.id));hn.reset()}function F1(){fc=null,pa=()=>({w:1600,h:900})}function Ar(){return fc??q1}const hc=new Map;function V1(e){return hc.get(e)}const On=new Map;let Ru=0;function U1(e){return Ru+=1,`float:${e}:${Ru}`}const Lu={w:600,h:400};function H1(e,t){return{w:Math.max(e.w,Math.min(Lu.w,t.w)),h:Math.max(e.h,Math.min(Lu.h,t.h))}}function K1(e,t={}){const n=Ar(),r=yv(),s=U1(e);let a;if(t.dismissable){const f={type:"slot",slotId:s,viewId:e};t.meta&&(f.meta=t.meta),a=f}else{const f=t.title??e,v={slotId:s,viewId:e,label:f};t.meta&&(v.meta=t.meta),a={type:"tabs",tabs:[v],activeTab:0}}const o=Mi(a),l=pa(),c=t.size??H1(o,l),u=t.position??gv(n,l),d={id:r,content:a,position:u,size:c,title:t.title};if(t.dismissable&&(d.dismissable=!0),t.dismissable&&t.anchor){const f=Hw(t.anchor);f&&hc.set(r,f)}return vc(d,l),Us.add(r),n.push(d),un.current.class==="compact"&&!t.dismissable&&hn.setRoot({kind:"float",floatId:r}),r}function W1(e){const t=Ar(),n=yv(),r=pa(),s=e.position??gv(t,r),a={id:n,content:e.content,position:s,size:e.size,title:e.title};return vc(a,r),Us.add(n),t.push(a),un.current.class==="compact"&&hn.setRoot({kind:"float",floatId:n}),n}function Y1(e){const t=Ar(),n=t.findIndex(s=>s.id===e);if(n<0)return;t.splice(n,1),hc.delete(e),On.delete(e);const r=hn.current;r.kind==="float"&&r.floatId===e&&hn.reset(),Us.delete(e),Vs(e,!1)}function X1(){return Ar().slice()}function Fv(e){const t=Ar(),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 Vv(e){if(On.has(e))return;const t=Ar().find(r=>r.id===e);if(!t)return;On.set(e,{position:{x:t.position.x,y:t.position.y},size:{w:t.size.w,h:t.size.h}}),Vs(e,!0);const n=pa();t.position.x=0,t.position.y=0,t.size.w=n.w,t.size.h=n.h,Fv(e)}function Uv(e){const t=On.get(e);if(!t)return;const n=Ar().find(r=>r.id===e);if(!n){On.delete(e),Vs(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,On.delete(e),Vs(e,!1)}function G1(e){On.has(e)?Uv(e):Vv(e)}function J1(e){On.has(e)&&(On.delete(e),Vs(e,!1))}function Z1(e){return N1(e)}const Pe={open:K1,openWithContent:W1,close:Y1,list:X1,focus:Fv,maximize:Vv,restore:Uv,toggleMaximize:G1,unmaximize:J1,isMaximized:Z1},Q1=Object.freeze([".md",".txt",".json",".guml",".css",".js",".ts",".tsx",".jsx",".html",".svg",".csv",".yaml",".yml",".xml",".log",".ini",".toml"]);function $1(e){return e.kind?e.kind:e.extension&&Q1.includes(e.extension.toLowerCase())?"text":"binary"}const Oa=[];function Mu(e){return Oa.push(e),()=>{const t=Oa.indexOf(e);t>=0&&Oa.splice(t,1)}}function ek(e,t=[]){return[...Oa,...t].filter(r=>{try{return r.appliesTo(e)}catch{return!1}}).sort((r,s)=>(s.priority??0)-(r.priority??0))[0]??null}var tk=E("<span> </span>"),nk=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),rk=E("<option> </option>"),sk=E("<button> </button>"),ak=E('<pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre>'),ik=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>'),ok=E('<div class="sh3-conflict-text svelte-iwgja4"><!></div>');function lk(e,t){ae(t,!0);let n=U("");Ie(()=>{(!i(n)||!t.item.branches.find(m=>m.origin===i(n)))&&k(n,t.item.branches[0]?.origin??"local",!0)});const r=V(()=>t.item.branches.length===2),s=V(()=>i(r)?t.item.branches[0]:t.item.branches.find(m=>m.origin===i(n))??t.item.branches[0]),a=V(()=>i(r)?t.item.branches[1]:t.item.branches.find(m=>m.origin===t.selectedOrigin)??t.item.branches[1]??t.item.branches[0]);function o(m,S){const g=(m??"").split(/\r?\n/),b=(S??"").split(/\r?\n/),A=[],w=Math.max(g.length,b.length);for(let y=0;y<w;y++){const C=g[y],I=b[y];C===I?typeof C=="string"&&A.push({kind:"same",text:C}):(typeof C=="string"&&A.push({kind:"left",text:C}),typeof I=="string"&&A.push({kind:"right",text:I}))}return A}const l=V(()=>!i(s)||!i(a)?[]:o(i(s).content??"",i(a).content??"")),c=V(()=>i(l).filter(m=>m.kind!=="same").length);var u=ok(),d=p(u);{var f=m=>{var S=nk(),g=fe(S),b=p(g);let A;var w=p(b),y=p(w);h(w);var C=_(w,2),I=p(C),P=p(I,!0);h(I),h(C),h(b);var L=_(b,2);let R;var M=p(L),O=p(M);h(M);var T=_(M,2),D=p(T),j=p(D,!0);h(D),h(T),h(L),h(g);var B=_(g,2),Y=p(B),Z=p(Y);h(Y);var q=_(Y,2),X=p(q);be(X,21,()=>i(l),ut,($,G)=>{var Q=tk(),F=p(Q);h(Q),N(()=>{he(Q,1,`diff-${i(G).kind}`,"svelte-iwgja4"),z(F,`${i(G).kind==="same"?" ":i(G).kind==="left"?"- ":"+ "}${i(G).text??""}
8
+ `)}),x($,Q)}),h(X),h(q),h(B),N(()=>{A=he(b,1,"sh3-conflict-text-pane svelte-iwgja4",null,A,{selected:i(s).origin===t.selectedOrigin}),z(y,`${i(s).origin??""} · v${i(s).version??""}`),z(P,i(s).content??""),R=he(L,1,"sh3-conflict-text-pane svelte-iwgja4",null,R,{selected:i(a).origin===t.selectedOrigin}),z(O,`${i(a).origin??""} · v${i(a).version??""}`),z(j,i(a).content??""),z(Z,`Line diff (${i(c)??""} difference${i(c)===1?"":"s"})`)}),K("click",b,()=>t.onSelect(i(s).origin)),K("keydown",b,$=>{($.key==="Enter"||$.key===" ")&&t.onSelect(i(s).origin)}),K("click",L,()=>t.onSelect(i(a).origin)),K("keydown",L,$=>{($.key==="Enter"||$.key===" ")&&t.onSelect(i(a).origin)}),x(m,S)},v=m=>{var S=ik(),g=p(S),b=p(g),A=_(p(b));be(A,21,()=>t.item.branches,I=>I.origin,(I,P)=>{var L=rk(),R=p(L,!0);h(L);var M={};N(()=>{z(R,i(P).origin),M!==(M=i(P).origin)&&(L.value=(L.__value=i(P).origin)??"")}),x(I,L)}),h(A),h(b),h(g);var w=_(g,2);be(w,21,()=>t.item.branches,I=>I.origin,(I,P)=>{var L=sk();let R;var M=p(L);h(L),N(()=>{R=he(L,1,"sh3-conflict-text-tab svelte-iwgja4",null,R,{selected:i(P).origin===t.selectedOrigin}),z(M,`${i(P).origin??""} · v${i(P).version??""}`)}),K("click",L,()=>t.onSelect(i(P).origin)),x(I,L)}),h(w);var y=_(w,2);{var C=I=>{var P=ak(),L=p(P),R=p(L,!0);h(L),h(P),N(()=>z(R,i(a).content??"")),x(I,P)};W(y,I=>{i(a)&&I(C)})}h(S),js(A,()=>i(n),I=>k(n,I)),x(m,S)};W(d,m=>{i(r)&&i(s)&&i(a)?m(f):m(v,-1)})}h(u),x(e,u),ie()}me(["click","keydown"]);var ck=E("· <code> </code>",1),uk=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>'),dk=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 fk(e,t){ae(t,!0);function n(o){return typeof o!="number"?"—":o<1024?`${o} B`:o<1024*1024?`${(o/1024).toFixed(1)} KiB`:`${(o/(1024*1024)).toFixed(2)} MiB`}function r(o){const l=Date.now()-o;return l<6e4?"just now":l<36e5?`${Math.floor(l/6e4)}m ago`:l<864e5?`${Math.floor(l/36e5)}h ago`:new Date(o).toLocaleString()}var s=dk(),a=_(p(s),2);be(a,21,()=>t.item.branches,o=>o.origin,(o,l)=>{var c=uk(),u=p(c);let d;var f=p(u),v=p(f,!0);h(f);var m=_(f,2),S=p(m),g=_(S);{var b=A=>{var w=ck(),y=_(fe(w)),C=p(y,!0);h(y),N(()=>z(C,i(l).hashPreview)),x(A,w)};W(g,A=>{i(l).hashPreview&&A(b)})}h(m),h(u),h(c),N((A,w)=>{d=he(u,1,"sh3-conflict-meta-row svelte-1nz3djn",null,d,{selected:i(l).origin===t.selectedOrigin}),z(v,i(l).origin),z(S,`v${i(l).version??""} · ${A??""} · ${w??""} `)},[()=>r(i(l).at),()=>n(i(l).sizeBytes)]),K("click",u,()=>t.onSelect(i(l).origin)),x(o,c)}),h(a),h(s),x(e,s),ie()}me(["click"]);const vk=1048576;function hk(e){return typeof e=="number"&&e>vk}const pk={id:"sh3-core.text",priority:1,appliesTo:e=>$1(e)!=="text"?!1:!e.branches.some(t=>hk(t.sizeBytes)),mount(e,t){const n=Ke(lk,{target:e,props:t});return()=>{tt(n)}}},mk={id:"sh3-core.meta",priority:0,appliesTo:()=>!0,mount(e,t){const n=Ke(fk,{target:e,props:t});return()=>{tt(n)}}};let Pu=!1;function bk(){Pu||(Pu=!0,Mu(pk),Mu(mk))}var gk=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 yk(e,t){var n=gk(),r=p(n),s=p(r);h(r);var a=_(r,4),o=p(a);sa(o,!0);var l=_(o,2),c=_(l,2);h(a),h(n),N(()=>z(s,`${t.count??""} conflict${t.count===1?"":"s"} to resolve`)),K("click",o,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)}),x(e,n)}me(["click"]);var _k=E('<span class="sh3-conflict-detail-counter svelte-pw8iv6"> </span>'),wk=E('<button type="button"><span><!></span> <span class="sh3-conflict-detail-rail-label svelte-pw8iv6"> </span></button>'),kk=E('<aside class="sh3-conflict-detail-rail svelte-pw8iv6"></aside>'),xk=E('<label class="sh3-conflict-detail-branch svelte-pw8iv6"><input type="radio"/> <span> </span></label>'),Sk=E('<div class="sh3-conflict-detail-branches svelte-pw8iv6"></div> <div class="sh3-conflict-detail-renderer svelte-pw8iv6"></div>',1),Ik=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 Ek(e,t){ae(t,!0);const n=V(()=>t.items[t.currentIndex]),r=V(()=>i(n)?t.selections[i(n).id]??i(n).branches[0]?.origin??"":""),s=V(()=>i(n)?ek(i(n),t.contributed):null);let a=U(void 0),o=null;Ie(()=>{if(i(n),i(s),i(r),o&&(o(),o=null),!i(a)||!i(n)||!i(s))return;const Y={item:i(n),selectedOrigin:i(r),onSelect:Z=>t.onSelect(i(n).id,Z)};return o=i(s).mount(i(a),Y),()=>{o&&(o(),o=null)}});function l(){t.currentIndex>0&&t.onNavigate(t.currentIndex-1)}function c(){t.currentIndex<t.items.length-1&&t.onNavigate(t.currentIndex+1)}const u=V(()=>t.items.map(Y=>t.skipped[Y.id]?"skipped":t.selections[Y.id]?"resolved":"pending"));var d=Ik(),f=p(d),v=p(f),m=p(v,!0);h(v);var S=_(v,2);{var g=Y=>{var Z=_k(),q=p(Z);h(Z),N(()=>z(q,`${t.currentIndex+1} / ${t.items.length??""}`)),x(Y,Z)};W(S,Y=>{t.items.length>1&&Y(g)})}h(f);var b=_(f,2),A=p(b);{var w=Y=>{var Z=kk();be(Z,23,()=>t.items,q=>q.id,(q,X,$)=>{var G=wk();let Q;var F=p(G),H=p(F);{var ee=le=>{var pe=vn("✓");x(le,pe)},J=le=>{var pe=vn("⟶");x(le,pe)},ce=le=>{var pe=vn("·");x(le,pe)};W(H,le=>{i(u)[i($)]==="resolved"?le(ee):i(u)[i($)]==="skipped"?le(J,1):le(ce,-1)})}h(F);var de=_(F,2),ne=p(de,!0);h(de),h(G),N(()=>{Q=he(G,1,"sh3-conflict-detail-rail-item svelte-pw8iv6",null,Q,{selected:i($)===t.currentIndex}),he(F,1,`sh3-conflict-detail-rail-state ${i(u)[i($)]??""}`,"svelte-pw8iv6"),z(ne,i(X).label)}),K("click",G,()=>t.onNavigate(i($))),x(q,G)}),h(Z),x(Y,Z)};W(A,Y=>{t.items.length>1&&Y(w)})}var y=_(A,2),C=p(y);{var I=Y=>{var Z=Sk(),q=fe(Z);be(q,21,()=>i(n).branches,$=>$.origin,($,G)=>{var Q=xk(),F=p(Q);xe(F);var H=_(F,2),ee=p(H);h(H),h(Q),N(()=>{re(F,"name",`branch-${i(n).id??""}`),Os(F,i(G).origin),Jl(F,i(r)===i(G).origin),z(ee,`${i(G).origin??""} · v${i(G).version??""}`)}),K("change",F,()=>t.onSelect(i(n).id,i(G).origin)),x($,Q)}),h(q);var X=_(q,2);Oe(X,$=>k(a,$),()=>i(a)),x(Y,Z)};W(C,Y=>{i(n)&&Y(I)})}h(y),h(b);var P=_(b,2),L=p(P),R=p(L),M=_(R,2),O=p(M,!0);h(M);var T=_(M,2);h(L);var D=_(L,2),j=p(D),B=_(j,2);h(D),h(P),h(d),N(()=>{z(m,t.title),R.disabled=t.currentIndex===0,z(O,i(n)&&t.skipped[i(n).id]?"Unskip":"Skip"),T.disabled=t.currentIndex>=t.items.length-1}),K("click",R,l),K("click",M,()=>i(n)&&t.onToggleSkip(i(n).id)),K("click",T,c),K("click",j,function(...Y){t.onCancel?.apply(this,Y)}),K("click",B,function(...Y){t.onDone?.apply(this,Y)}),x(e,d),ie()}me(["click","change"]);function Hv(e,t){return t.at-e.at}function Ak(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(Hv)[0]}}function Ck(e,t){ae(t,!0);const n=t.items.length>=2||t.requirePrompt;let r=U(ve(n?"prompt":"detail")),s=U(ve(Object.fromEntries(t.items.map(y=>{const C=Ak(y.branches,t.mostRecentBy)?.origin??y.branches[0]?.origin??"";return[y.id,C]})))),a=U(ve({})),o=U(0),l=!1;Yl(()=>{l||(l=!0,t.onCancel())});function c(){if(l)return;l=!0;const y=[],C=[];for(const I of t.items){if(i(a)[I.id]){C.push(I.id);continue}const P=i(s)[I.id],L=I.branches.find(R=>R.origin===P);L&&y.push({itemId:I.id,chosen:L,meta:I.meta})}t.onResolve(y,C),t.close()}function u(){l||(l=!0,t.onCancel(),t.close())}function d(){c()}function f(){k(r,"detail")}function v(y,C){if(k(s,{...i(s),[y]:C},!0),i(a)[y]){const I={...i(a)};delete I[y],k(a,I,!0)}}function m(y){k(a,{...i(a),[y]:!i(a)[y]},!0)}function S(y){k(o,y,!0)}var g=Me(),b=fe(g);{var A=y=>{yk(y,{get count(){return t.items.length},onOverwriteMostRecent:d,onResolveIndividually:f,onCancel:u})},w=y=>{Ek(y,{get items(){return t.items},get selections(){return i(s)},get skipped(){return i(a)},get currentIndex(){return i(o)},get title(){return t.title},get contributed(){return t.contributed},onSelect:v,onNavigate:S,onToggleSkip:m,onDone:c,onCancel:u})};W(b,y=>{i(r)==="prompt"?y(A):y(w,-1)})}x(e,g),ie()}const Kv="sh3-core.conflictRenderer";class Wv extends Error{constructor(t){super(t),this.name="ConflictPermissionError"}}class Tk extends Error{constructor(){super("Caller shard deactivated while conflict session was active"),this.name="ConflictSessionOrphanedError"}}function Rk(){try{return Er(Kv)}catch{return[]}}function Yv(e,t={}){return bk(),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??Hv,a=t.requirePrompt??!1,o=Rk();let l=!1;const d={items:e,title:r,mostRecentBy:s,requirePrompt:a,contributed:o,onResolve:(f,v)=>{l||(l=!0,n({status:"resolved",choices:f,skipped:v}))},onCancel:()=>{l||(l=!0,n({status:"cancelled"}))}};nn.open(Ck,d,{boxStyle:"max-width: none; min-width: 360px; padding: 0;"})})}function Lk(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 Mk(e,t){const n=e.browse;if(!n?.statusFrom||!n?.readBranchFrom||!n?.resolveConflictFrom)throw new Wv(`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 Pk(e){const t=e.lastIndexOf(".");if(t<0)return;const n=e.lastIndexOf("/");if(!(t<n))return e.slice(t)}async function Dk(e,t,n={}){const r=e.shardId,s=t.shardId===r?Lk(e):Mk(e,t.shardId),a=[];for(const d of t.paths){const f=await s.status(d);f&&f.syncState==="conflict"&&f.branches&&f.branches.length>0&&a.push({path:d,status:f})}if(a.length===0)return{status:"resolved",resolved:[],failed:[],skipped:[]};const o=[];for(const{path:d,status:f}of a){const v=Pk(d),m=[];for(const S of f.branches??[]){const g=await s.readBranch(d,S.origin).catch(()=>null);m.push({origin:S.origin,version:S.version,at:S.at,content:g??void 0,sizeBytes:g?new TextEncoder().encode(g).length:void 0})}o.push({id:d,label:d,extension:v,branches:m,meta:{shardId:t.shardId,path:d,docVersion:f.version}})}const l=await Yv(o,n);if(l.status==="cancelled")return{status:"cancelled"};const c=[],u=[];for(const d of l.choices)try{await s.resolveConflict(d.itemId,{origin:d.chosen.origin});const f=await s.status(d.itemId).catch(()=>null);c.push({path:d.itemId,chosen:d.chosen,appliedVersion:f?.version??-1})}catch(f){u.push({path:d.itemId,error:f instanceof Error?f.message:String(f)})}return{status:"resolved",resolved:c,failed:u,skipped:l.skipped}}const zk={resolve:Yv,resolveDocuments:Dk},Xv="sh3.color-picker",jk={id:"sh3.color-picker.native",priority:0,open:({initial:e})=>new Promise(t=>{const n=document.createElement("input");n.type="color",e&&/^#[0-9a-f]{6}$/i.test(e)&&(n.value=e);let r=!1;const s=a=>{r||(r=!0,n.remove(),t(a))};n.addEventListener("change",()=>s(n.value)),n.addEventListener("cancel",()=>s(null)),n.style.position="fixed",n.style.left="-9999px",document.body.appendChild(n),n.click()})};function Ok(e={}){return[...Er(Xv),jk].sort((r,s)=>(s.priority??0)-(r.priority??0))[0].open(e)}const Nk={pick:Ok};let ar=null;function qk(e){ar=e}async function Vr(e){return ar?{...ar.bindings[e]??{}}:{}}async function Du(e,t,n){if(!ar)return;const r={...ar.bindings[e]??{}};n===void 0?delete r[t]:r[t]=n,ar.bindings={...ar.bindings,[e]:r}}const pc="sh3.actions",_o=new Set;function Bk(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.`),()=>{};_o.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.`),_o.add(e.id);const r=Mv(pc,{action:e,ownerShardId:t});let s=!1;return()=>{s||(s=!0,r(),_o.delete(e.id))}}function et(){return Er(pc)}function Fk(e){return ji(pc,e)}function Vk(e){const t=e.action.disabled;return typeof t=="function"?!!t():!!t}function Uk(e){const t=e.action.scope;return Array.isArray(t)?t[0]:t}function mc(e,t){const n={element:[],focus:[],view:[],app:[],home:[]},r=[],s=new Set;for(const a of e){if(s.has(a.action.id))continue;s.add(a.action.id);const{shortcut:o,source:l}=t1(a.action,t.bindings,t.platform),c=va(a.action.scope,t,a.ownerShardId),u=typeof a.action.run=="function",d=c!==null&&u&&!Vk(a),f=d?c:Uk(a),v={id:a.action.id,label:Vt(a.action),effectiveShortcut:o,bindingSource:l,scope:f,scopeBadge:Rv(f),group:a.action.group,icon:a.action.icon,ownerShardId:a.ownerShardId,paletteItem:a.action.paletteItem!==!1,contextItem:a.action.contextItem!==!1,submenu:a.action.submenu,submenuOf:a.action.submenuOf,active:d};d?n[zi(c)].push(v):r.push(v)}return[...Di.flatMap(a=>n[a]),...r]}function Hk(e,t){return mc(e,t).filter(n=>n.active)}let on=U(null);function ma(){return i(on)}function Bi(e){return{get(){return i(on)},set(t){k(on,{type:t.type,ref:t.ref,ownerShardId:e},!0)},clear(){if(i(on)){if(i(on).ownerShardId!==e){console.warn(`[sh3] Shard "${e}" tried to clear selection owned by "${i(on).ownerShardId}". Ignoring.`);return}k(on,null)}}}}function Gv(e){i(on)&&i(on).ownerShardId===e&&k(on,null)}function Kk(){k(on,null)}let Jv=U(null),Zv=U(ve(new Set)),Na=U(ve(new Set)),Qv=U(ve(new Set)),$v=U(null),eh=U(ve({}));const Wk=e1(),rl=new Set;function ds(){for(const e of rl)try{e()}catch(t){console.error("[sh3] onActiveChange listener threw",t)}}function Yk(e){return rl.add(e),()=>{rl.delete(e)}}function Xk(){ds()}function si(e,t){k(Jv,e,!0),k(Zv,new Set(t),!0),ds()}function Gk(){const e=uc(ht.tree),t=new Set;for(const n of e)n.viewId!==null&&t.add(n.viewId);k(Qv,t,!0),ds()}function th(e){k($v,e,!0),ds()}function Hs(e){k(eh,{...e},!0),ds()}function wt(){return{activeAppId:i(Jv),activeAppRequiredShards:i(Zv),autostartShards:i(Na),mountedViewIds:i(Qv),focusedViewId:i($v),selection:ma(),bindings:i(eh),platform:Wk}}function nh(e){i(Na).has(e)||(k(Na,new Set([...i(Na),e]),!0),ds())}var Jk=E('<div class="sh3-ctx-sep svelte-1667pfa" role="separator"></div>'),Zk=E('<span class="sh3-ctx-chevron svelte-1667pfa">▸</span>'),Qk=E('<span class="sh3-ctx-shortcut svelte-1667pfa"> </span>'),$k=E('<button role="menuitem"><span class="sh3-ctx-check svelte-1667pfa"> </span> <span class="sh3-ctx-label svelte-1667pfa"> </span> <!></button>'),e0=E("<!> <!>",1),t0=E('<div class="sh3-context-menu svelte-1667pfa" role="menu" tabindex="0"></div>');function ai(e,t){ae(t,!0);const n=V(()=>t.sections.flatMap(c=>c.items));let r=U(0);function s(c,u){if(i(n).length===0)return 0;let d=c;for(let f=0;f<i(n).length;f++)if(d=(d+u+i(n).length)%i(n).length,!i(n)[d].disabled)return d;return c}function a(c){if(c.key==="ArrowDown")k(r,s(i(r),1),!0),c.preventDefault();else if(c.key==="ArrowUp")k(r,s(i(r),-1),!0),c.preventDefault();else if(c.key==="Enter"){const u=i(n)[i(r)];u&&!u.disabled&&(t.onInvoke(u.id),u.submenu||t.onDismiss()),c.preventDefault()}else if(c.key==="Escape")t.onDismiss(),c.preventDefault();else if(c.key.length===1){const u=c.key.toLowerCase(),d=(i(r)+1)%i(n).length;for(let f=0;f<i(n).length;f++){const v=(d+f)%i(n).length,m=i(n)[v];if(!m.disabled&&m.label.toLowerCase().startsWith(u)){k(r,v);break}}}}function o(c){c.disabled||(t.onInvoke(c.id),c.submenu||t.onDismiss())}var l=t0();sa(l,!0),be(l,23,()=>t.sections,c=>c.id,(c,u,d)=>{var f=e0(),v=fe(f);{var m=g=>{var b=Jk();x(g,b)};W(v,g=>{i(d)>0&&g(m)})}var S=_(v,2);be(S,17,()=>i(u).items,g=>g.id,(g,b)=>{const A=V(()=>i(n).indexOf(i(b)));var w=$k();let y;var C=p(w),I=p(C,!0);h(C);var P=_(C,2),L=p(P,!0);h(P);var R=_(P,2);{var M=T=>{var D=Zk();x(T,D)},O=T=>{var D=Qk(),j=p(D,!0);h(D),N(()=>z(j,i(b).shortcut)),x(T,D)};W(R,T=>{i(b).submenu?T(M):i(b).shortcut&&T(O,1)})}h(w),N(()=>{y=he(w,1,"sh3-ctx-item svelte-1667pfa",null,y,{"sh3-ctx-active":i(A)===i(r),"sh3-ctx-disabled":i(b).disabled}),re(w,"aria-disabled",i(b).disabled||void 0),z(I,i(b).checked?"✓":""),z(L,i(b).label)}),Ue("pointerenter",w,()=>{i(b).disabled||k(r,i(A),!0)}),K("click",w,()=>o(i(b))),x(g,w)}),x(c,f)}),h(l),K("keydown",l,a),x(e,l),ie()}me(["keydown","click"]);function rh(e,t){ae(t,!0);const n=V(()=>t.model.tiers.map(r=>({id:`tier:${r.tier}`,items:r.items.map(s=>({...s,icon:void 0}))})));ai(e,{get sections(){return i(n)},get onInvoke(){return t.onInvoke},get onDismiss(){return t.onClose}}),ie()}function zu(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function sh(e,t){return{id:e.action.id,label:Vt(e.action),shortcut:fa(e.action,t.bindings,t.platform),group:e.action.group??"",icon:e.action.icon,checked:zu(e.action.checked),disabled:zu(e.action.disabled),submenu:e.action.submenu===!0}}function ah(e,t,n,r){return oc(e.scope).some(a=>o1(a,n))?n==="app"||n==="home"||typeof n=="object"&&"element"in n?Fs(n,r,t):!0:!1}function ih(e,t,n){const r={element:[],focus:[],view:[],app:[],home:[]},s=new Set;for(const a of e){if(!a.action.contextItem||a.action.submenuOf!==void 0||s.has(a.action.id)||!ah(a.action,a.ownerShardId,n,t))continue;const o=va(a.action.scope,t,a.ownerShardId)??n;s.add(a.action.id),r[zi(o)].push(sh(a,t))}return{tiers:Di.map(a=>({tier:a,items:r[a]})).filter(a=>a.items.length>0)}}function n0(e,t,n,r){const s=[],a=new Set;for(const o of e)o.action.submenuOf===n&&(a.has(o.action.id)||ah(o.action,o.ownerShardId,r,t)&&(a.add(o.action.id),s.push(sh(o,t))));return s}function r0(e,t){if(!t)return 0;const n=e.toLowerCase(),r=t.toLowerCase();let s=0,a=0,o=0,l=0,c=-2;for(;s<n.length&&a<r.length;){if(n[s]===r[a]){const u=s===0?5:0,d=s===c+1?++l:l=1;o+=1+u+d,c=s,a++}else l=0;s++}return a===r.length?o:null}function s0(e,t,n){const r=[];for(const a of e){if(t===""&&a.submenuOf!==void 0)continue;const o=r0(a.label,t);o!==null&&r.push({...a,score:o})}const s=new Map;return n.forEach((a,o)=>s.set(a,n.length-o)),r.sort((a,o)=>{if(a.score!==o.score)return o.score-a.score;const l=s.get(a.id)??0;return(s.get(o.id)??0)-l}),r}var a0=E('<span class="sh3-palette-badge svelte-1qdcgk6"> </span>'),i0=E('<span class="sh3-palette-shortcut svelte-1qdcgk6"> </span>'),o0=E('<button role="option"><span class="sh3-palette-label svelte-1qdcgk6"> </span> <!> <!></button>'),l0=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 c0(e,t){ae(t,!0);let n=te(t,"prefill",3,""),r=U(ve(n())),s=U(0);const a=V(()=>s0(t.candidates,i(r),t.recency));Ie(()=>{i(s)>=i(a).length&&k(s,0)});function o(d){d.key==="ArrowDown"?(k(s,Math.min(i(s)+1,Math.max(0,i(a).length-1)),!0),d.preventDefault()):d.key==="ArrowUp"?(k(s,Math.max(i(s)-1,0),!0),d.preventDefault()):d.key==="Enter"?(i(a)[i(s)]&&(t.onInvoke(i(a)[i(s)].id),t.onClose()),d.preventDefault()):d.key==="Escape"&&(t.onClose(),d.preventDefault())}var l=l0(),c=p(l);xe(c);var u=_(c,2);be(u,23,()=>i(a),d=>d.id,(d,f,v)=>{var m=o0();let S;var g=p(m),b=p(g,!0);h(g);var A=_(g,2);{var w=I=>{var P=a0(),L=p(P);h(P),N(()=>z(L,`[${i(f).scopeBadge??""}]`)),x(I,P)};W(A,I=>{i(f).scopeBadge&&I(w)})}var y=_(A,2);{var C=I=>{var P=i0(),L=p(P,!0);h(P),N(()=>z(L,i(f).shortcut)),x(I,P)};W(y,I=>{i(f).shortcut&&I(C)})}h(m),N(()=>{S=he(m,1,"sh3-palette-item svelte-1qdcgk6",null,S,{"sh3-palette-active":i(v)===i(s)}),re(m,"aria-selected",i(v)===i(s)),z(b,i(f).label)}),Ue("pointerenter",m,()=>k(s,i(v),!0)),K("click",m,()=>{t.onInvoke(i(f).id),t.onClose()}),x(d,m)}),h(u),h(l),K("keydown",l,o),Te(c,()=>i(r),d=>k(r,d)),x(e,l),ie()}me(["keydown","click"]);function u0(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function d0(e,t,n={}){const r=[],s=new Set,a=n.filter?.submenuOf;for(const o of e){if(o.action.paletteItem===!1||u0(o.action.disabled)||a!==void 0&&o.action.submenuOf!==a||s.has(o.action.id))continue;const l=va(o.action.scope,t,o.ownerShardId);l&&(s.add(o.action.id),r.push({id:o.action.id,label:Vt(o.action),shortcut:fa(o.action,t.bindings,t.platform),scopeBadge:Rv(l),submenu:o.action.submenu===!0,submenuOf:a!==void 0?void 0:o.action.submenuOf}))}return r}let ju=!1;function bc(e){return e?e.closest("[data-sh3-view]")?.getAttribute("data-sh3-view")??null:null}function oh(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=l1(n.getAttribute("data-sh3-scope")??"");if(s&&!(typeof s=="object"&&"element"in s&&!Fs(s,e.state)))return s;const a=n.parentElement;n=a?a.closest("[data-sh3-scope]"):null}const r=bc(t);if(r)return`focus:${r}`}return e.state.activeAppId?"app":"home"}function f0(e,t){const n=et().find(r=>r.action.id===e);if(!(!n||typeof n.action.run!="function"))try{n.action.run(t)}catch(r){console.error(`[sh3] action "${e}" threw:`,r)}}function lh(e,t){const n=et(),r=n.find(l=>l.action.id===e);if(!r)return Promise.reject(new Error(`action "${e}" not registered`));const s=wt(),a=mc(n,s).find(l=>l.id===e);if(!a||!a.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 o=r.action.run;try{const l=o({action:{id:r.action.id,label:Vt(r.action)},appId:s.activeAppId,viewId:s.focusedViewId??void 0,selection:s.selection??void 0,invokedVia:"programmatic",dispatch:fs});return Promise.resolve(l).then(()=>{})}catch(l){return Promise.reject(l)}}function fs(e){lh(e).catch(t=>{console.error(`[sh3] ctx.dispatch("${e}"):`,t)})}function v0(e){const t=bc(e.target);th(t)}function h0(e){queueMicrotask(()=>{const t=bc(document.activeElement);th(t)})}function p0(e){return e instanceof Element?e.closest('[data-sh3-context-menu="native"]')!==null:!1}function ch(e,t,n,r){const s=document.querySelector(".sh3-popup-host");if(!s)return;const a=document.createElement("div");a.className="sh3-popup-submenu",a.style.position="absolute",a.style.pointerEvents="auto";const l=(s.querySelector(".sh3-ctx-active")??s).getBoundingClientRect();a.style.left=`${l.right+2}px`,a.style.top=`${l.top}px`,s.appendChild(a);const c=n0(et(),t,e,r);Ke(ai,{target:a,props:{sections:[{id:`submenu:${e}`,items:c}],onInvoke:u=>{const d=et().find(f=>f.action.id===u);if(!(!d||typeof d.action.run!="function")){try{d.action.run({action:{id:u,label:Vt(d.action)},appId:t.activeAppId,viewId:t.focusedViewId??void 0,selection:t.selection??void 0,invokedVia:"context-menu",dispatch:fs})}catch(f){console.error(`[sh3] context-menu submenu action "${u}" threw:`,f)}n.close()}},onDismiss:()=>n.close()}})}function m0(e){if(p0(e.target))return;const t=et(),n=wt(),r=oh({event:e,state:n}),s=ih(t,n,r);if(s.tiers.length===0)return;e.preventDefault();const a=xt.popup.show(rh,{anchor:{x:e.clientX,y:e.clientY}},{model:s,onInvoke:o=>{const l=et().find(c=>c.action.id===o);if(l){if(l.action.submenu===!0){ch(o,n,a,r);return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:Vt(l.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:fs})}catch(c){console.error(`[sh3] context-menu action "${o}" threw:`,c)}}},onClose:()=>a.close()})}function b0(e){const t=$w(e);if(!t)return;const n=et(),r=wt();i1({target:e.target,shortcut:t,state:r,entries:n,runAction:f0,dispatch:fs})&&e.preventDefault()}function Ou(){ju||(ju=!0,document.addEventListener("keydown",b0),document.addEventListener("focusin",v0),document.addEventListener("focusout",h0),document.addEventListener("contextmenu",m0))}function uh(e){const t=et(),n=wt(),r=oh({explicit:e.scope,state:n}),s=ih(t,n,r);if(s.tiers.length===0)return;const a=xt.popup.show(rh,{anchor:{x:e.x,y:e.y}},{model:s,onInvoke:o=>{const l=et().find(c=>c.action.id===o);if(l){if(l.action.submenu===!0){ch(o,n,a,r);return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:Vt(l.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:fs})}catch(c){console.error(`[sh3] context-menu action "${o}" threw:`,c)}}},onClose:()=>a.close()})}const g0=20;let sl=[];function y0(e){sl=[e,...sl.filter(t=>t!==e)].slice(0,g0)}function Fi(e){const t=et(),n=wt(),r=d0(t,n,{filter:e?.filter}),s=typeof document<"u"&&document.activeElement instanceof HTMLElement?document.activeElement:null,a=xt.modal.open(c0,{candidates:r,recency:sl,prefill:e?.prefill??"",onInvoke:o=>{const l=et().find(c=>c.action.id===o);if(l){if(y0(o),l.action.submenu===!0&&typeof l.action.run!="function"){a.close(),Fi({filter:{submenuOf:o}});return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:Vt(l.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"palette",dispatch:fs})}catch(c){console.error(`[sh3] palette action "${o}" threw:`,c)}}},onClose:()=>a.close()},{dismissOnBackdrop:!0,initialFocus:!(typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(hover: none) and (pointer: coarse)").matches)});if(s){const o=a.close;a.close=()=>{o(),queueMicrotask(()=>{(document.activeElement===document.body||document.activeElement===null)&&s.focus()})}}}const ir=[];let _0=0;function w0(){return`term-${++_0}`}function k0(e){ir.push(e);let t=!1;return()=>{if(t)return;t=!0;const n=ir.indexOf(e);n!==-1&&ir.splice(n,1)}}function x0(){if(ir.length===0)return{ok:!1,error:"no-terminal"};if(ir.length===1)return{ok:!0,handle:ir[0]};let e=null,t=0;for(const n of ir){const r=n.getFocusStamp();r>0&&r>=t&&(e=n,t=r)}return e===null?{ok:!1,error:"ambiguous"}:{ok:!0,handle:e}}const Nu={"no-terminal":"no terminal open",ambiguous:"multiple terminals open; focus one first","no-active-context":"dispatchToTerminal is not available in this context"};function gc(e){return e.headless?()=>({ok:!1,error:"no-active-context",message:Nu["no-active-context"]}):t=>{const n=x0();return n.ok?(n.handle.dispatch(t),{ok:!0,terminalId:n.handle.id}):{ok:!1,error:n.error,message:Nu[n.error]}}}const S0={async rebind(e,t,n){await Du(e,t,n),wt().activeAppId===e&&Hs(await Vr(e))},async resetBinding(e,t){await Du(e,t,void 0),wt().activeAppId===e&&Hs(await Vr(e))},async bindingsFor(e){const t=await Vr(e),n={};for(const[r,s]of Object.entries(t))s!==null&&(n[r]=s);return n},openContextMenu:uh,openPalette:Fi,listActive(){return Hk(et(),wt())},onActiveChange(e){const t=Yk(e),n=Fk(()=>{Xk()});return()=>{t(),n()}}},xt={state:Ri,modal:nn,popup:Go,toast:An,float:Pe,presets:C1,conflicts:zk,color:Nk,actions:S0,dispatchToTerminal:gc({headless:!1}),viewport:{get current(){return un.current},subscribe:e=>un.subscribe(e),override:e=>un.override(e),get pinned(){return un.pinned}},drawers:{get state(){return Ot.state},open:e=>{xa("open"),Ot.open(e)},close:e=>{xa("close"),Ot.close(e)},toggle:e=>{xa("toggle"),Ot.toggle(e)},activate:(e,t)=>{xa("activate"),Ot.activate(e,t)}}};function xa(e){const t=un.current.class;if(t!=="compact")throw new Error(`Sh3.drawers.${e}: viewport class is "${t}"; drawers exist only on compact`)}function I0(e){return gn[e].list()}function E0(e,t){return gn[e].read(t)}function A0(e,t){gn[e].delete(t)}function C0(e){for(const t of gn[e].list())gn[e].delete(t)}function al(){return{list:I0,peek:E0,clear:A0,clearAll:C0}}function Tr(e,t,n){return`${e}/${t}/${n}`}function T0(e,t){return`${e}/${t}/`}const R0="sh3-documents",Wt="docs",L0=2;class dh{#e=null;#t(){return this.#e||(this.#e=new Promise((t,n)=>{const r=indexedDB.open(R0,L0);r.onupgradeneeded=()=>{const s=r.result;s.objectStoreNames.contains(Wt)||s.createObjectStore(Wt)},r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)})),this.#e}async#n(t,n){const r=await this.#t();return new Promise((s,a)=>{const l=r.transaction(Wt,t).objectStore(Wt),c=n(l);c.onsuccess=()=>s(c.result),c.onerror=()=>a(c.error)})}async read(t,n,r){const s=Tr(t,n,r),a=await this.#n("readonly",o=>o.get(s));return a?a.content:null}async write(t,n,r,s){const a=Tr(t,n,r),o=typeof s=="string"?new Blob([s]).size:s.byteLength,l={content:s,size:o,lastModified:Date.now()};await this.#n("readwrite",c=>c.put(l,a))}async delete(t,n,r){const s=Tr(t,n,r);await this.#n("readwrite",a=>a.delete(s))}async rename(t,n,r,s){const a=Tr(t,n,r),o=Tr(t,n,s),l=await this.#t();return new Promise((c,u)=>{let d=!1;const f=l.transaction(Wt,"readwrite"),v=f.objectStore(Wt),m=v.get(a);m.onsuccess=()=>{const S=m.result;if(!S){d=!0,f.abort(),u(new Error(`Document not found at ${r}`));return}const g=v.getKey(o);g.onsuccess=()=>{if(g.result!==void 0){d=!0,f.abort(),u(new Error(`Document already exists at ${s}`));return}const b={...S,lastModified:Date.now()};v.put(b,o),v.delete(a)},g.onerror=()=>u(g.error)},m.onerror=()=>u(m.error),f.oncomplete=()=>c(),f.onerror=()=>{d||u(f.error)},f.onabort=()=>{}})}async list(t,n){const r=T0(t,n),s=await this.#t();return new Promise((a,o)=>{const c=s.transaction(Wt,"readonly").objectStore(Wt),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 a(f)},d.onerror=()=>o(d.error)})}async exists(t,n,r){const s=Tr(t,n,r);return await this.#n("readonly",o=>o.getKey(s))!==void 0}async listAllShards(t){const n=`${t}/`,r=await this.#t();return new Promise((s,a)=>{const l=r.transaction(Wt,"readonly").objectStore(Wt),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=()=>a(u.error)})}async listAllDocuments(t){const n=`${t}/`,r=await this.#t();return new Promise((s,a)=>{const l=r.transaction(Wt,"readonly").objectStore(Wt),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=()=>a(u.error)})}}const M0="local";let yc=M0,fh=new dh;function vh(){return yc}function wo(){return yc}function qu(){return fh}function Sa(e){yc=e}function Bu(e){fh=e}const wr=ve({activeProjectId:null});function hh(e){if(wr.activeProjectId===e)return;const t=ft.id;wr.activeProjectId=e,Jr.id=null,t&&_c(t)}const ph=Ri("__sh3core__:last-app",{user:{id:null}});function P0(){return ph.user.id}function Ks(e){ph.user.id=e}function D0(){Ks(null)}const il=new Map;function z0(){return wr.activeProjectId??vh()}function Ia(e,t,n){let r=il.get(e);if(!r){const s=yn(e),a=z0();r={scopeId:a,args:n??{},state:o=>Ri(`__app__:${e}:scope:${a}`,o),zones:s?.manifest.permissions?.includes(Ns)?al():void 0,gestures:Rw(typeof document<"u"?document.body:null)},il.set(e,r)}return r}async function Fn(e,t={}){const n=yn(e);if(!n)throw new Error(`Cannot launch app "${e}": not registered`);if(ft.id&&ft.id!==e)_c(ft.id,t.skipSwitchToHome);else if(ft.id===e){for(const r of n.manifest.requiredShards){const s=tn.get(r),a=Fx(r);s&&a&&s.resume?.(a)}n.resume?.(Ia(e)),Tu(),n.onAppReady?.(Ia(e)),t.skipLastApp||Ks(e),Jr.id=e,si(e,new Set(n.manifest.requiredShards??[])),Vr(e).then(Hs);return}for(const r of n.manifest.requiredShards)if(!tn.has(r))throw new Error(`App "${e}" requires shard "${r}" which is not registered`);M1(n);try{for(const r of n.manifest.requiredShards)await ui(r,{phase:"launch"})}catch(r){Nv();try{An.notify(`Couldn't launch "${n.manifest.label??e}": ${r instanceof Error?r.message:String(r)}`,{level:"error",duration:6e3})}catch{}throw r}D1(),n.activate?.(Ia(e,void 0,t.args)),ft.id=e,si(e,new Set(n.manifest.requiredShards??[])),Vr(e).then(Hs),Tu(),n.onAppReady?.(Ia(e)),t.skipLastApp||Ks(e),Jr.id=e}function _c(e,t=!1){if(ft.id!==e)return;const n=yn(e);if(n){n.deactivate?.(),t||qv(),Nv();for(const r of n.manifest.requiredShards){const s=tn.get(r);s&&(s.autostart||Gi(r))}ft.id=null,si(null,new Set),Kk(),dv(),Vr("sh3.home").then(Hs),il.delete(e)}}function wc(e){Zn.has(e)&&(ft.id===e&&(_c(e),Ks(null)),Zn.delete(e))}async function vs(){const e=ft.id?yn(ft.id):null;if(e){for(const t of e.manifest.requiredShards){const n=tn.get(t);if(n?.suspend&&await n.suspend()===!1)return!1}if(e.suspend&&await e.suspend()===!1)return!1}return dv(),qv(),si(null,new Set),Ks(null),!0}function kc(e){un.current.class==="compact"&&(e.kind==="float"?hn.setRoot({kind:"float",floatId:e.floatId}):hn.reset())}function mh(){return{root:Ut(),source:qi()}}function j0(e){const t=Ut().docked,n=Sc(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 O0(e){const t=Ut();return Ui(t.docked,n=>n.slotId===e)?(kc({kind:"docked"}),!0):bh(t,n=>n.slotId===e)}function Vi(e){const t=Ut();return Ui(t.docked,n=>n.viewId===e)?(kc({kind:"docked"}),!0):bh(t,n=>n.viewId===e)}function Ui(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(Ui(n,t))return!0}return!1}function bh(e,t){for(const n of e.floats)if(Ui(n.content,t))return Pe.focus(n.id),kc({kind:"float",floatId:n.id}),!0;return!1}function N0(e,t){return gh(e,t,!0)}function q0(e,t){return gh(e,t,!1)}function gh(e,t,n){const r=Ut().docked,s=$r(r,e);if(!s||s.type!=="split")return!1;const a=s;return t<0||t>=a.children.length?!1:(a.collapsed||(a.collapsed=a.children.map(()=>!1)),a.collapsed[t]=n,!0)}async function xc(e){const t=Ut(),n=t.docked;if(!Qr(n,e))return B0(t,e);const a=Pv(e)?.closable;return!a||typeof a=="object"&&(!await a.canClose()||!Qr(n,e))?!1:(Pi(n,e),Nr(n),!0)}async function B0(e,t){for(const n of e.floats){if(!Qr(n.content,t))continue;const a=Pv(t)?.closable;if(typeof a=="object"&&(!await a.canClose()||!Qr(n.content,t)))return!1;Pi(n.content,t);const o=n.content.type==="tabs"?n.content:null;return(!o||o.tabs.length===0)&&Pe.close(n.id),!0}return!1}function yh(e){const t=Ut(),n=Qr(t.docked,e);if(!n)return null;const r=n.entry,s=r.viewId;if(!s)return null;const a=r.label,o=r.meta;return Pi(t.docked,e),Nr(t.docked),Pe.open(s,{title:a,meta:o})}function _h(e){const n=Ut().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 Pe.close(e),!1;const a=s.tabs[s.activeTab??0]??s.tabs[0],o=Ic({slotId:a.slotId,viewId:a.viewId,label:a.label,meta:a.meta});return o&&Pe.close(e),o}function Sc(e){if(e.type==="tabs")return e;if(e.type==="split")for(const t of e.children){const n=Sc(t);if(n)return n}return null}function wh(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=wh(e.children[n],[...t,n]);if(r)return r}return null}function Ic(e){const t=Ut().docked;if(Vi(e.viewId??""))return!0;const n=kh(t);if(n)return n.tabs.push(e),n.activeTab=n.tabs.length-1,!0;const r=xh(t);if(r)return Qo(t,r,e,"right"),!0;const s=Sc(t);if(s)return s.tabs.push(e),s.activeTab=s.tabs.length-1,!0;const a=wh(t);return a?(Qo(t,a,e,"right"),!0):!1}function kh(e){if(e.type==="tabs")return e.role==="body"?e:null;if(e.type==="split")for(const t of e.children){const n=kh(t);if(n)return n}return null}function xh(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=xh(e.children[n],[...t,n]);if(r)return r}return null}function Sh(e){return ac(Ut(),e)}const ol="sh3:authToken";let ii=null,ll=!1;function F0(){if(!ll&&(ll=!0,!(typeof localStorage>"u")))try{ii=localStorage.getItem(ol)}catch{ii=null}}function Hi(e){if(ll=!0,ii=e,!(typeof localStorage>"u"))try{e?localStorage.setItem(ol,e):localStorage.removeItem(ol)}catch{}}function Ih(){return F0(),ii}let Ea=null,Fu=!1;function V0(){return typeof window>"u"?!1:"__TAURI_INTERNALS__"in window||"__TAURI__"in window}async function U0(){if(Fu)return Ea;if(Fu=!0,!V0())return null;try{Ea=(await import("@tauri-apps/plugin-http")).fetch}catch{Ea=null}return Ea}async function Re(e,t){const n=Ih();let r=t??{};if(n){const a=new Headers(r.headers??{});a.has("Authorization")||(a.set("Authorization",`Bearer ${n}`),r={...r,headers:a})}const s=await U0();return s?s(e,r):fetch(e,{credentials:"include",...r})}let hs=U(null),Tn=U(null),ps=U(!1),Ki="",cl=null;function Vu(e,t){Ki=e,cl=t.auth,k(hs,t.user,!0),k(Tn,t.session,!0),k(ps,!t.session&&!t.user,!0),Hi(t.session?.token??null)}async function Eh(e,t){try{const n=await Re(`${Ki}/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 k(hs,r.user,!0),k(Tn,r.session,!0),k(ps,!1),Hi(r.session?.token??null),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function H0(e,t,n){try{const r=await Re(`${Ki}/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 k(hs,s.user,!0),k(Tn,s.session,!0),k(ps,!1),Hi(s.session?.token??null),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function K0(){try{await Re(`${Ki}/api/auth/logout`,{method:"POST"})}catch{}if(Hi(null),cl?.required&&!cl.guestAllowed){window.location.reload();return}k(hs,null),k(Tn,null),k(ps,!0)}function W0(){k(hs,{id:"local",username:"local",displayName:"Local Owner",role:"admin",createdAt:"",updatedAt:""},!0),k(Tn,{token:"local",userId:"local",role:"admin",expiresAt:1/0},!0),k(ps,!1)}function Y0(){return i(Tn)?.token==="local"}function Tt(){return i(Tn)?.role==="admin"}function ul(){return i(Tn)!==null}function Ah(){return i(ps)}function ts(){return i(hs)}function Wi(){return i(Tn)?`Bearer ${i(Tn).token}`:null}const X0=2e3;let dl=0;function G0(){return`e${++dl}`}function J0(e){if(e.length<2||e.charCodeAt(0)!==101)return NaN;const t=Number(e.slice(1));return Number.isInteger(t)?t:NaN}class Z0{#e;get entries(){return i(this.#e)}set entries(t){k(this.#e,t,!0)}constructor(t=X0){this.#e=U(ve([])),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:G0()};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=J0(r.id);Number.isFinite(s)&&s>n&&(n=s)}n>dl&&(dl=n),this.entries.splice(0,this.entries.length,...t)}}const Uu=[1e3,2e3,5e3,1e4];class Ch{#e;get connected(){return i(this.#e)}set connected(t){k(this.#e,t,!0)}#t;get cwd(){return i(this.#t)}set cwd(t){k(this.#t,t,!0)}#n;get tenantRoot(){return i(this.#n)}set tenantRoot(t){k(this.#n,t,!0)}#s;get env(){return i(this.#s)}set env(t){k(this.#s,t,!0)}#r;get historyByMode(){return i(this.#r)}set historyByMode(t){k(this.#r,t,!0)}#i;get lastSeq(){return i(this.#i)}set lastSeq(t){k(this.#i,t,!0)}constructor(t){this.url=t,this.ws=null,this.handlers=new Set,this.pendingHistoryLogs=[],this.backoffIndex=0,this.closed=!1,this.#e=U(!1),this.#t=U(""),this.#n=U(""),this.#s=U(ve({})),this.#r=U(ve({})),this.#i=U(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=Uu[Math.min(this.backoffIndex,Uu.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 Th{constructor(t=""){this.base=t}async list(t){return(await(await this.#e("/api/fs/list",t)).json()).entries}async stat(t){return await(await this.#e("/api/fs/stat",t)).json()}async read(t){return await(await this.#e("/api/fs/read",t)).text()}async#e(t,n){const r=`${this.base}${t}?path=${encodeURIComponent(n)}`,s=await fetch(r,{credentials:"include"});if(!s.ok){let a=`HTTP ${s.status}`;try{const o=await s.json();o.error&&(a=o.error)}catch{}throw new Error(a)}return s}}function Q0(e){const t=ei(e);if(!t)return null;const r=Iv().find(s=>s.verb===t);return r?{verb:r.verb,shardId:r.shardId}:null}async function Rh(e,t,n,r){if(!kr.has(e))throw new Error(`unknown shard: ${e}`);const s=ei(t);if(!s)throw new Error(`unknown verb: ${t}`);if(!s.programmatic)throw new Error(`verb "${t}" is not programmatic`);const a=[],o=ex(a),l=await $0({sinkScrollback:o,opts:r});return{result:await s.run(l,n),scrollback:a}}async function $0(e){const t={sh3:Ac({callerKind:"verb"}),scrollback:e.sinkScrollback,session:tx(),cwd:"/",fs:new Th,async dispatch(n){const r=n.trim();if(!r)return;const s=r.indexOf(" "),a=s===-1?r:r.slice(0,s),o=s===-1?"":r.slice(s+1),l=o.length?o.split(/\s+/):[],c=Q0(a);if(!c)throw new Error(`dispatch: unknown verb "${a}"`);const u={...t,structuredArgs:void 0};await c.verb.run(u,l)},structuredArgs:e.opts?.structured,signal:e.opts?.signal};return t}function ex(e){let t=0;return{entries:e,push(r){const s={...r,id:`runverb-${++t}`};e.push(s)},clear(){e.length=0}}}function tx(){return new Ch("")}const Ws="sh3.controllable-field",fl="sh3.walker";function Ec(){return Er(Ws)}function Lh(e){for(const t of Ec())if(t.owner.shardId===e.shardId&&(t.owner.slotId??void 0)===(e.slotId??void 0)&&t.descriptor.fieldId===e.fieldId)return t}function nx(e){return e.shape==="readonly"?!0:e.shape==="imperative"?typeof e.set!="function":!1}function rx(e){if(e.shape==="element"||e.shape==="imperative"||e.shape==="readonly")return e.element}function sx(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:nx(t),source:"contributed"};e.owner.slotId!==void 0&&(n.slotId=e.owner.slotId);const r=rx(t);return r!==void 0&&(n.element=r),n}function ax(e={}){const t=[];for(const n of Ec())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(sx(n));return t}function ix(e){return e.get()}function ox(e){const t=e.element;return t instanceof HTMLInputElement&&t.type==="checkbox"?t.checked:t.value}function lx(e){const t=Lh(e);if(!t)throw new Error(`unknown field: ${e.shardId}::${e.slotId??""}::${e.fieldId}`);const n=t.descriptor;return n.shape==="element"?ox(n):ix(n)}function Mh(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 cx(e,t){const n=Lh(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}Mh(r.element,t)}const ux=new Set(["submit","button","reset","file","hidden"]);function dx(e){return e.type==="number"?"number":e.type==="checkbox"?"boolean":"string"}function fx(e){return Array.from(e.options).map(t=>t.value)}function Hu(e){return e.toLowerCase().trim().replace(/[^a-z0-9.\-_ ]/g,"").replace(/\s+/g,"-").replace(/^-+|-+$/g,"")}function Ph(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 vx(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=Ph(e);if(s){const o=Hu(s);if(o.length>0)return o}if(e.id)return e.id;const a=e.placeholder;if(a){const o=Hu(a);if(o.length>0)return o}return`field-${t}`}function hx(e){return Ph(e)?.trim()??e.placeholder??null}function px(e){return e.hasAttribute("data-sh3-field")?!0:e instanceof HTMLInputElement?!ux.has(e.type):e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement}function ko(e,t){const n=new Set;for(const o of Ec()){const l=o.descriptor;l.shape==="element"&&n.add(l.element)}const r=t.querySelectorAll("input, textarea, select, [data-sh3-field]"),s=[];let a=0;for(const o of Array.from(r)){if(!px(o)||n.has(o))continue;let l="string",c;if(o instanceof HTMLInputElement)l=dx(o);else if(o instanceof HTMLSelectElement)l="enum",c=fx(o);else if(o.hasAttribute("data-sh3-field")){const f=o.getAttribute("data-sh3-field-kind");f&&["string","number","integer","boolean","enum","json"].includes(f)&&(l=f)}const u=vx(o,a);/^field-\d+$/.test(u)&&(a+=1);const d={shardId:fl,slotId:e,fieldId:u,label:hx(o)??u,kind:l,readonly:!1,source:"walker",element:o};c!==void 0&&(d.enumValues=c),s.push(d)}return s}const Yi=new Set;let Aa=null,xo=null,Ku=null,So=!1;function mx(){if(Aa&&Aa.isConnected)return Aa;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),Aa=e,xo||(xo=()=>vl(),window.addEventListener("resize",xo)),Ku||(Ku=ji(Ws,()=>{const t=new Set;for(const n of Er(Ws))t.add(oi({shardId:n.owner.shardId,slotId:n.owner.slotId,fieldId:n.descriptor.fieldId}));for(const n of Array.from(Yi))t.has(oi(n.addr))||Dh(n)})),e}function oi(e){return`${e.shardId}::${e.slotId??""}::${e.fieldId}`}function bx(e){for(const t of Er(Ws))if(t.owner.shardId===e.shardId&&(t.owner.slotId??void 0)===(e.slotId??void 0)&&t.descriptor.fieldId===e.fieldId)return t}function gx(e){const t=e.descriptor;if(t.shape==="element"||t.shape==="imperative"||t.shape==="readonly")return t.element}function yx(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 _x(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 vl(){So||(So=!0,requestAnimationFrame(()=>{So=!1;for(const e of Yi)_x(e)}))}function Dh(e){if(!e.disposed){e.disposed=!0,Yi.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 wx(e,t){const n=bx(e);if(!n)throw new Error(`unknown field: ${oi(e)}`);const r=gx(n);if(!r)throw new Error(`field has no element to anchor to: ${oi(e)}`);const s=mx(),a=r.getBoundingClientRect(),o=t({element:r,rect:a});let l,c=null;o instanceof HTMLElement?l=o:(l=o.element,c=o);const u=document.createElement("div");u.className="sh3-decoration",u.style.cssText=`position: absolute; left: ${a.left}px; top: ${a.top}px; width: ${a.width}px; height: ${a.height}px; pointer-events: none;`,u.appendChild(l),s.appendChild(u);const d=yx(r),f={addr:e,element:l,wrapper:u,target:r,handle:c,resizeObserver:new ResizeObserver(()=>vl()),scrollAncestor:d,scrollListener:()=>vl(),disposed:!1};return f.resizeObserver.observe(r),d===window?window.addEventListener("scroll",f.scrollListener,!0):d.addEventListener("scroll",f.scrollListener),Yi.add(f),()=>Dh(f)}const Wu=["ephemeral","session","workspace","user"];function zh(e){return e.type==="tabs"?e.tabs.filter(t=>t.viewId!==null):e.type==="split"?e.children.flatMap(zh):e.viewId!==null?[{slotId:e.slotId,viewId:e.viewId,label:e.viewId}]:[]}function Ac(e){e?.callerKind,e?.callerShardId;const t=e?.zones;function n(){try{const{root:l}=mh();return zh(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=yo(l.slotId);if(!c?.host)throw new Error(`unknown field: ${l.shardId}::${l.slotId}::${l.fieldId}`);const u=ko(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 a(l,c){const d=r(l).element;if(d instanceof HTMLInputElement||d instanceof HTMLTextAreaElement||d instanceof HTMLSelectElement){Mh(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 o={list(l){const c=ax({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=yo(v);if(!m?.host)continue;const S=c.some(g=>g.slotId===v);u==="fallback"&&S||(f=f.concat(ko(v,m.host)))}return l?.kind&&(f=f.filter(v=>v.kind===l.kind)),f},get(l){return l.shardId===fl?s(l):lx(l)},async set(l,c){if(l.shardId===fl){a(l,c);return}return cx(l,c)},walk(l){const c=yo(l);if(!c?.host)throw new Error(`unknown slot: ${l}`);return ko(l,c.host)},onChange(l){return ji(Ws,l)},attachDecoration(l,c){return wx(l,c)}};return{listApps(){return us().map(l=>({id:l.id,label:l.label}))},getActiveApp(){const l=tc();return l?{id:l.id,label:l.label}:null},launchApp(l){Fn(l)},listShards(){return Array.from(tn.values()).map(l=>({id:l.manifest.id,label:l.manifest.label,version:l.manifest.version}))},listViewsInCurrentLayout(){return n()},openViewInCurrentLayout(l){try{if(Vi(l))return{ok:!0};const c=Ys().find(u=>u.viewId===l);if(c){const u=`standalone:${l}:${Date.now()}`;return Ic({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 Ys()},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 _h(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 Sh(l)}catch{return null}},listFloats(){return Pe.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 xc(l),{ok:!0}},listZones(l){if(!t)return[];const c=new Map;for(const u of Wu)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||!Wu.includes(c)?null:t.peek(c,l)??null},whoAmI(){return{userId:ts()?.id??"guest",admin:Tt()}},setMode(l){return!1},listModes(){return[]},getMode(){return{id:"sh3",label:"sh3"}},dispatchToTerminal:gc({headless:!0}),listVerbs(l){const c=l?.programmaticOnly===!0,u=Iv().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 Rh(l,c,u,d)},listActions(l){let u=mc(et(),wt());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 lh(l)},listViews(){return n()},fields:o}}function kx(e){return Ac({callerKind:"verb",zones:e})}class xx{#e;#t;constructor(t,n){this.#e=t.replace(/\/$/,""),this.#t=n}async read(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}`,a=await Re(s,{credentials:"include"});if(a.status===404)return null;if(!a.ok)throw new Error(`Document read failed: ${a.status}`);return(a.headers.get("content-type")??"").includes("application/octet-stream")?a.arrayBuffer():a.text()}async write(t,n,r,s){const a=`${this.#e}/api/docs/${t}/${n}/${r}`,o={...this.#n(),"Content-Type":typeof s=="string"?"text/plain":"application/octet-stream"},l=await Re(a,{method:"PUT",headers:o,body:s,credentials:"include"});if(!l.ok)throw new Error(`Document write failed: ${l.status}`)}async delete(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}`,a=await Re(s,{method:"DELETE",headers:this.#n(),credentials:"include"});if(!a.ok)throw new Error(`Document delete failed: ${a.status}`)}async list(t,n){const r=`${this.#e}/api/docs/${t}/${n}`,s=await Re(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 Re(s,{method:"HEAD",credentials:"include"})).ok}async listAllShards(t){const n=`${this.#e}/api/docs/${t}/_shards`,r=await Re(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 Re(n,{credentials:"include"});if(!r.ok)throw new Error(`listAllDocuments failed: ${r.status}`);return r.json()}async readMeta(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}?meta=1`,a=await Re(s,{credentials:"include"});if(!a.ok)throw new Error(`readMeta failed: ${a.status}`);const o=await a.json();return o.exists?o:null}async resolve(t,n,r,s){const a=`${this.#e}/api/docs/${t}/${n}/${r}/resolve`,o=typeof s=="string"?{choice:s}:{choice:s.origin},l=await Re(a,{method:"POST",credentials:"include",headers:{...this.#n(),"Content-Type":"application/json"},body:JSON.stringify(o)});if(!l.ok)throw new Error(`resolve failed: ${l.status}`)}async readBranch(t,n,r,s){const a=`${this.#e}/api/docs/${t}/${n}/${r}/branch?origin=${encodeURIComponent(s)}`,o=await Re(a,{credentials:"include"});if(o.status===404)return null;if(!o.ok)throw new Error(`readBranch failed: ${o.status}`);return o.text()}async rename(t,n,r,s){const a=`${this.#e}/api/docs/${t}/${n}/${r}/rename`,o={...this.#n(),"Content-Type":"application/json"},l=await Re(a,{method:"POST",headers:o,body:JSON.stringify({to:s}),credentials:"include"});if(l.status===404)throw new Error(`Document not found at ${r}`);if(l.status===409)throw new Error(`Document already exists at ${s}`);if(!l.ok)throw new Error(`Document rename failed: ${l.status}`)}#n(){return this.#t?{Authorization:`Bearer ${this.#t}`}:{}}}class Sx{#e=new Set;subscribe(t){return this.#e.add(t),()=>{this.#e.delete(t)}}emit(t){for(const n of this.#e)try{n(t)}catch(r){console.error("SH3: document change listener threw",r)}}}const Wn=new Sx,Ix=1e3;function Ex(e,t,n,r){const s=new Set,a=new Set;function o(u){return!r.extensions||r.extensions.length===0?!0:r.extensions.some(d=>u.endsWith(d))}function l(u,d){Wn.emit({type:u,path:d,tenantId:e,shardId:t})}const c={async list(){const u=await n.list(e,t);return!r.extensions||r.extensions.length===0?u:u.filter(d=>o(d.path))},async read(u){const d=await n.read(e,t,u);return d===null?null:typeof d=="string"?d:new TextDecoder().decode(d)},async write(u,d){const f=await n.exists(e,t,u);await n.write(e,t,u,d),l(f?"update":"create",u)},async delete(u){const d=await n.exists(e,t,u);await n.delete(e,t,u),d&&l("delete",u)},async rename(u,d){if(!o(d))throw new Error(`Cannot rename to ${d}: violates handle extensions filter`);for(const f of s)if(f.path===u)throw new Error(`Cannot rename: active autosave on ${u}; flush and dispose first`);await n.rename(e,t,u,d),Wn.emit({type:"rename",path:d,oldPath:u,tenantId:e,shardId:t})},async exists(u){return n.exists(e,t,u)},async status(u){if(!n.readMeta)throw new Error("Backend does not support status()");return n.readMeta(e,t,u)},async resolveConflict(u,d){if(!n.resolve)throw new Error("Backend does not support resolveConflict()");if(typeof d!="string"&&!(typeof d=="object"&&"origin"in d))throw new Error("choice must be a string or { origin } object");return n.resolve(e,t,u,d)},async readBranch(u,d){if(!n.readBranch)throw new Error("Backend does not support readBranch()");return n.readBranch(e,t,u,d)},watch(u){const d=Wn.subscribe(f=>{f.tenantId===e&&f.shardId===t&&o(f.path)&&u(f)});return a.add(d),()=>{d(),a.delete(d)}},autosave(u,d){const f=new Ax(c,u,d?.debounceMs??Ix);return s.add(f),f},async dispose(){const u=[...s].map(d=>d.dispose());await Promise.all(u),s.clear();for(const d of a)d();a.clear()}};return c}class Ax{#e;#t;#n;#s=null;#r=null;#i=!1;#a=!1;constructor(t,n,r){this.#e=t,this.#t=n,this.#n=r}get dirty(){return this.#i}get path(){return this.#t}update(t){this.#a||(this.#s=t,this.#i=!0,this.#o())}async flush(){if(this.#l(),this.#s!==null){const t=this.#s;this.#s=null,this.#i=!1,await this.#e.write(this.#t,t)}}async dispose(){this.#a||(this.#a=!0,await this.flush())}#o(){this.#l(),this.#r=setTimeout(()=>{this.#r=null,this.flush()},this.#n)}#l(){this.#r!==null&&(clearTimeout(this.#r),this.#r=null)}}const Cx="sync:peer",Tx="sync:policy";let jh="";function Oh(e){jh=e}function st(){return jh}async function Rx(e){const t=await Re(`${st()}/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 Lx(e,t){if(!Tt())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 Re(`${st()}/api/env-state/${encodeURIComponent(e)}`,{method:"PUT",headers:r,body:JSON.stringify(t),credentials:"omit"});if(!s.ok){const a=await s.json().catch(()=>({}));throw new Error(`Env state update failed: HTTP ${s.status} — ${a.error??"unknown"}`)}}async function Cc(e,t,n){if(!Tt())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 a={};r&&(a.Authorization=r);const o=await Re(`${st()}/api/packages/install`,{method:"POST",headers:a,body:s,credentials:"omit"});if(!o.ok){let c={};try{c=await o.json()}catch{}return{ok:!1,error:typeof c.error=="string"?c.error:`HTTP ${o.status}`,code:typeof c.code=="string"?c.code:void 0,missing:Array.isArray(c.missing)?c.missing:void 0}}return{ok:!0,warnings:(await o.json()).warnings??[]}}async function Mx(e){if(!Tt())throw new Error("Cannot uninstall: not elevated to admin");const t=Wi(),n={"Content-Type":"application/json"};t&&(n.Authorization=t);const r=await Re(`${st()}/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 Px(){const e=await Re(`${st()}/api/packages`,{credentials:"omit"});return e.ok?await e.json():[]}const Nh="documents:browse",qh="documents:read",Bh="documents:write";function Dx(e,t,n={canRead:!1,canWrite:!1}){const r={listDocuments:()=>t.listAllDocuments(e),listShards:()=>t.listAllShards(e),watchDocuments:s=>Wn.subscribe(a=>{a.tenantId===e&&s(a)})};return n.canRead&&(r.readFrom=(s,a)=>t.read(e,s,a),r.statusFrom=async(s,a)=>t.readMeta?t.readMeta(e,s,a):null,r.readBranchFrom=async(s,a,o)=>t.readBranch?t.readBranch(e,s,a,o):null),n.canWrite&&(r.writeTo=async(s,a,o)=>{const l=await t.exists(e,s,a);await t.write(e,s,a,o),Wn.emit({type:l?"update":"create",path:a,tenantId:e,shardId:s})},r.resolveConflictFrom=async(s,a,o)=>{if(!t.resolve)throw new Error("Backend does not support resolveConflict");await t.resolve(e,s,a,o),Wn.emit({type:"update",path:a,tenantId:e,shardId:s})},r.renameFrom=async(s,a,o,l)=>{if(l?.newShardId!==void 0)throw new Error("Cross-shard move is not yet supported (ADR-018 amendment 2026-04-27)");await t.rename(e,s,a,o),Wn.emit({type:"rename",path:o,oldPath:a,tenantId:e,shardId:s})},r.deleteFrom=async(s,a)=>{const o=await t.exists(e,s,a);await t.delete(e,s,a),o&&Wn.emit({type:"delete",path:a,tenantId:e,shardId:s})}),r}const Fh="keys:mint";class Vh extends Error{constructor(t){super(`Shard may not mint a key with scope '${t}' — not declared in manifest.`),this.name="ScopeEscalationError"}}class Uh extends Error{constructor(){super("User denied key creation."),this.name="ConsentDeniedError"}}const hl=new Map;let Ls=null;function Hh(e){return Ls=e,()=>{Ls===e&&(Ls=null)}}async function zx(e,t){if(!Ls)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}),Ls({...t,shardId:e,requestId:n})})}function pl(e,t){const n=hl.get(e);n&&(hl.delete(e),n.resolve(t))}const li=new Map,qa=new Map,jx=5e3;function Ox(e,t){let n=qa.get(e);n||(n=new Set,qa.set(e,n)),n.add(t),setTimeout(()=>{n.delete(t),n.size===0&&qa.delete(e)},jx)}function Nx(e,t){return qa.get(e)?.has(t)??!1}function Tc(e,t){const n=li.get(e)??new Set;return n.add(t),li.set(e,n),()=>{n.delete(t)}}function Kh(e,t){if(!e||Nx(e,t))return;Ox(e,t);const n=li.get(e);if(n)for(const s of n)s(t);const r=li.get("*");if(r)for(const s of r)s(t)}function qx(){if(typeof EventSource>"u")return()=>{};const e=st(),t=Ih(),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 a=JSON.parse(s.data);Kh(a.shardId,a.id)}catch{}},()=>r.close()}function Bx(e){const{shardId:t,shardPermissions:n}=e,r=s=>{for(const a of s)if(!n.includes(a)&&!n.includes("admin:*"))throw new Vh(a)};return{async mint(s){if(r(s.scopes),!await zx(t,s))throw new Uh;const o=await Re(`${st()}/api/keys/consent`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({shardId:t,...s})});if(!o.ok)throw new Error(`Consent ticket failed: ${o.status}`);const{ticket:l}=await o.json(),c=await Re(`${st()}/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 Re(`${st()}/api/keys`);if(!s.ok)throw new Error(`List failed: ${s.status}`);return(await s.json()).filter(o=>o.mintedByShardId===t)},async revoke(s){const a=await Re(`${st()}/api/keys/${encodeURIComponent(s)}`,{method:"DELETE"});if(!a.ok&&a.status!==404)throw new Error(`Revoke failed: ${a.status}`);Kh(t,s)}}}const tn=ve(new Map),Ur=new Map,kr=ve(new Map),ci=ve(new Map);function Xi(e){const t=e.manifest.id;tn.has(t)&&kr.has(t)&&Gi(t),tn.set(t,e),ci.delete(t)}async function ui(e,t){const n=tn.get(e);if(!n)throw new Error(`Cannot activate shard "${e}": not registered`);if(Ur.has(e))return;const r={shard:n,ctx:void 0,viewIds:new Set,verbNames:new Set,cleanupFns:[]},s=ve({proxy:null,defaults:null}),a={register(l,c,u){let d=c;if(l==="sh3.controllable-field"){const v={shardId:e};u?.scope?.slotId!==void 0&&(v.slotId=u.scope.slotId),d={owner:v,descriptor:c}}const f=Mv(l,d,u);return r.cleanupFns.push(async()=>f()),f},list(l){return Er(l)},listPoints(){return d1()},onChange(l,c){const u=ji(l,c);return r.cleanupFns.push(async()=>u()),u},onAnyChange(l){const c=f1(l);return r.cleanupFns.push(async()=>c()),c}},o={state:l=>xt.state(e,l),registerView:(l,c)=>{Ww(l,c,n.manifest.id),r.viewIds.add(l)},registerVerb:l=>{let c;e==="shell"?c=l.name:c=`${n.manifest.verbNamespace??e}:${l.name}`,Yw(c,{...l,name:c},e)&&r.verbNames.add(c)},documents:l=>{const c=Ex(wo(),e,qu(),l);return r.cleanupFns.push(()=>c.dispose()),c},fetch(l,c){return Re(this.resolveUrl(l),c)},get serverUrl(){return st()},resolveUrl(l){if(l.startsWith("http://")||l.startsWith("https://"))return l;const u=st(),d=l.startsWith("/")?"":"/";return`${u}${d}${l}`},env(l){return s.proxy?(console.warn(`[sh3] Shard "${e}" called ctx.env() more than once; extra calls are ignored.`),s.proxy):(s.defaults=l,s.proxy={...l},s.proxy)},async envUpdate(l){if(!s.proxy||!s.defaults)throw new Error(`Shard "${e}" called envUpdate() without declaring env state`);const c=mr(s.proxy);Object.assign(s.proxy,l);try{const u=mr(s.proxy);await Lx(e,u)}catch(u){throw Object.assign(s.proxy,c),u}},get isAdmin(){return Tt()},get tenantId(){return wo()},zones:n.manifest.permissions?.includes(Ns)?al():void 0,browse:n.manifest.permissions?.includes(Nh)?Dx(wo(),qu(),{canRead:n.manifest.permissions.includes(qh),canWrite:n.manifest.permissions.includes(Bh)}):void 0,keys:n.manifest.permissions?.includes(Fh)?Bx({shardId:e,shardPermissions:n.manifest.permissions??[]}):void 0,contributions:a,actions:{register(l){const c=Bk(l,e);return r.cleanupFns.push(async()=>c()),c},selection:Bi(e),openContextMenu(l){uh(l)},openPalette(l){Fi(l)}},sh3:Ac({callerKind:"shard",callerShardId:e,zones:n.manifest.permissions?.includes(Ns)?al():void 0})};if(r.ctx=o,n.onKeyRevoked){const l=Tc(e,async c=>{try{await n.onKeyRevoked(c)}catch(u){console.error(`[sh3] onKeyRevoked failed in "${e}":`,u)}});r.cleanupFns.push(async()=>l())}Ur.set(e,r),kr.set(e,n);try{await n.activate(o);for(const l of n.manifest.views)if(!r.viewIds.has(l.id))throw new Error(`Shard "${e}" declared view "${l.id}" in its manifest but registered no factory for it.`);if(s.proxy&&s.defaults)try{const l=await Rx(e),c=Object.assign({},s.defaults,l);Object.assign(s.proxy,c)}catch(l){console.warn(`[sh3] Failed to hydrate env state for shard "${e}":`,l instanceof Error?l.message:l)}}catch(l){for(const c of r.cleanupFns)try{c()}catch{}for(const c of r.verbNames)Sv(c);for(const c of r.viewIds)xv(c);throw Gv(e),Ur.delete(e),kr.delete(e),ci.set(e,{id:e,error:l,phase:t?.phase??"launch",timestamp:Date.now()}),console.error(`[sh3] Shard "${e}" failed to activate:`,l),l}ci.delete(e),n.autostart?.(o)}function Gi(e){const t=Ur.get(e);if(t){t.shard.deactivate?.();for(const n of t.cleanupFns)n();for(const n of t.verbNames)Sv(n);for(const n of t.viewIds)xv(n);Gv(e),Ur.delete(e),kr.delete(e)}}function Fx(e){return Ur.get(e)?.ctx}function Ys(){const e=[];for(const t of kr.values())for(const n of t.manifest.views)n.standalone&&e.push({shardId:t.manifest.id,viewId:n.id,label:n.label});return e}function Vx(e){return btoa(JSON.stringify(e)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function Ux(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 Hx(n)}function Hx(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 Kx(){return typeof globalThis.__TAURI_INTERNALS__<"u"}let Yu=0;function Wx(){return Yu+=1,`sh3-satellite-${Date.now()}-${Yu}`}async function Ji(e,t={}){if(!Kx())return console.warn("[sh3] sh3.window.spawn called outside Tauri — no-op"),"";const{invoke:n}=await bi(async()=>{const{invoke:c}=await import("./core-DsojzR6k.js");return{invoke:c}},[]),r=Vx(e),s=Wx(),a=t.title??(e.kind==="float"?e.title??"SH3":`SH3 — ${e.appId}`),o=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:a,width:o,height:l})}class Et extends Error{constructor(t,n){super(`Registry validation error at ${t}: ${n}`),this.name="RegistryValidationError",this.path=t}}function Wh(e){if(!e||typeof e!="object"||Array.isArray(e))throw new Et("$","expected an object");const t=e;if(t.version!==1)throw new Et("$.version",`expected 1, got ${JSON.stringify(t.version)}`);if(!Array.isArray(t.packages))throw new Et("$.packages","expected an array");return{version:1,packages:t.packages.map((r,s)=>Yx(r,`$.packages[${s}]`))}}function Yx(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new Et(t,"expected an object");const n=e;ln(n,"id",t),Jx(n,"type",["shard","app","combo"],t),ln(n,"label",t),ln(n,"description",t);const r=`${t}.author`;if(!n.author||typeof n.author!="object"||Array.isArray(n.author))throw new Et(r,"expected an object");const s=n.author;if(typeof s.name!="string"||s.name.length===0)throw new Et(`${r}.name`,"expected a non-empty string");if(!Array.isArray(n.versions)||n.versions.length===0)throw new Et(`${t}.versions`,"expected a non-empty array");const a=n.versions.map((o,l)=>Xx(o,`${t}.versions[${l}]`));return{id:n.id,type:n.type,label:n.label,description:n.description,author:{name:s.name},icon:typeof n.icon=="string"?n.icon:void 0,versions:a}}function Xx(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new Et(t,"expected an object");const n=e;ln(n,"version",t),ln(n,"contractVersion",t);const r="bundleUrl"in n&&n.bundleUrl!==void 0,s="integrity"in n&&n.integrity!==void 0;if(r&&ln(n,"bundleUrl",t),s&&ln(n,"integrity",t),r!==s)throw new Et(t,"bundleUrl and integrity must be provided together");const a="serverBundleUrl"in n&&n.serverBundleUrl!==void 0;if(a&&ln(n,"serverBundleUrl",t),"serverIntegrity"in n&&n.serverIntegrity!==void 0&&ln(n,"serverIntegrity",t),!r&&!a)throw new Et(t,"expected at least one of bundleUrl+integrity or serverBundleUrl");let o;if(n.requires!==void 0){if(!Array.isArray(n.requires))throw new Et(`${t}.requires`,"expected an array");o=n.requires.map((l,c)=>Gx(l,`${t}.requires[${c}]`))}return{version:n.version,contractVersion:n.contractVersion,bundleUrl:typeof n.bundleUrl=="string"?n.bundleUrl:void 0,integrity:typeof n.integrity=="string"?n.integrity:void 0,serverBundleUrl:typeof n.serverBundleUrl=="string"?n.serverBundleUrl:void 0,serverIntegrity:typeof n.serverIntegrity=="string"?n.serverIntegrity:void 0,requires:o}}function Gx(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new Et(t,"expected an object");const n=e;return ln(n,"id",t),ln(n,"versionRange",t),{id:n.id,versionRange:n.versionRange}}function ln(e,t,n){const r=e[t];if(typeof r!="string"||r.length===0)throw new Et(`${n}.${t}`,"expected a non-empty string")}function Jx(e,t,n,r){if(!n.includes(e[t]))throw new Et(`${r}.${t}`,`expected one of: ${n.join(", ")}`)}const Xu=["sha256","sha384","sha512"];function Zx(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(!Xu.includes(n))throw new Error(`Unsupported SRI algorithm: ${n}. Supported: ${Xu.join(", ")}`);if(!r)throw new Error(`Empty hash in SRI: ${e}`);return{algorithm:n,hash:r}}function Qx(e){return`SHA-${e.slice(3)}`}function $x(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 Rc(e,t){const{algorithm:n,hash:r}=Zx(t),s=Qx(n),a=await crypto.subtle.digest(s,e),o=$x(a);if(o!==r)throw new Error(`Integrity check failed for ${n}. Expected: ${r}, got: ${o}`)}async function Yh(e){const t=new Set,n=[];for(const r of e){let s;try{const o=await fetch(r);if(!o.ok){console.warn(`[sh3] Registry fetch failed for ${r}: HTTP ${o.status}`);continue}s=await o.json()}catch(o){console.warn(`[sh3] Registry ${r}: ${o instanceof Error?o.message:String(o)}`);continue}let a;try{a=Wh(s)}catch(o){console.warn(`[sh3] Registry ${r} failed validation: ${o instanceof Error?o.message:String(o)}`);continue}for(const o of a.packages)t.has(o.id)||(t.add(o.id),n.push({entry:o,latest:o.versions[0],sourceRegistry:r}))}return n}async function Zi(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 Rc(s,e.integrity),s}async function Lc(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 Rc(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 Qi(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 Ms="sh3.shell.mode";function eS(e,t){return e.contributions.register(Ms,t)}const _n="0.19.5",Mc="sh3:user:__sh3core__:theme";let Xs=[];function tS(e){const t=Object.keys(e);for(const n of Xs)t.includes(n)||document.documentElement.style.removeProperty(`--${n}`);for(const[n,r]of Object.entries(e))document.documentElement.style.setProperty(`--${n}`,r);Xs=t;try{localStorage.setItem(Mc,JSON.stringify(e))}catch{}}function nS(){for(const e of Xs)document.documentElement.style.removeProperty(`--${e}`);Xs=[];try{localStorage.removeItem(Mc)}catch{}}function Xh(){try{const e=localStorage.getItem(Mc);if(!e)return{};const t=JSON.parse(e);return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{}}catch{return{}}}function rS(){const e=Xh();if(Object.keys(e).length!==0){for(const[t,n]of Object.entries(e))document.documentElement.style.setProperty(`--${t}`,n);Xs=Object.keys(e)}}const Qn="/assets/icons-nOyIoORC.svg",Gh=Symbol("sh3.icon-sprite");function sS(e){Rl(Gh,e)}function Jh(){return Tl(Gh)}var aS=Kl('<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>'),iS=Kl('<svg class="sh3-btn__icon svelte-t4hi97" aria-hidden="true"><use></use></svg>'),oS=E('<span class="sh3-btn__label svelte-t4hi97"><!></span>'),lS=E("<button><!> <!></button>");function Pn(e,t){ae(t,!0);let n=te(t,"variant",3,"default"),r=te(t,"disabled",3,!1),s=te(t,"type",3,"button");const a=Jh();function o(y){return y.includes("/")||y.endsWith(".svg")}const l=V(()=>t.icon?o(t.icon)?t.icon:`${t.sprite??a??Qn}#${t.icon}`:void 0);let c=U(!1);const u=V(()=>t.loading??i(c)),d=V(()=>n()==="icon"||!!t.icon&&!t.children);async function f(y){if(!t.onclick)return;const C=t.onclick(y);if(C&&typeof C.then=="function"){k(c,!0);try{await C}finally{k(c,!1)}}}var v=lS();let m;var S=p(v);{var g=y=>{var C=aS();x(y,C)},b=y=>{var C=iS(),I=p(C);h(C),N(()=>re(I,"href",i(l))),x(y,C)};W(S,y=>{i(u)?y(g):i(l)&&y(b,1)})}var A=_(S,2);{var w=y=>{var C=oS(),I=p(C);en(I,()=>t.children),h(C),x(y,C)};W(A,y=>{t.children&&y(w)})}h(v),N(()=>{re(v,"type",s()),m=he(v,1,`sh3-btn sh3-btn--${n()??""}`,"svelte-t4hi97",m,{"sh3-btn--icon-only":i(d),"sh3-btn--pressed":t.pressed}),v.disabled=r()||i(u),re(v,"aria-busy",i(u)||void 0),re(v,"aria-pressed",t.pressed??void 0),re(v,"title",t.title),re(v,"aria-label",t.ariaLabel??(i(d)?t.title:void 0))}),K("click",v,f),x(e,v),ie()}me(["click"]);var cS=E('<span class="sh3-collapsible__title svelte-lvydsb"> </span>'),uS=E('<div class="sh3-collapsible__body svelte-lvydsb"><!></div>'),dS=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 fS(e,t){ae(t,!0);let n=te(t,"open",15,!1);function r(){n(!n()),t.onopenchange?.(n())}var s=dS();let a;var o=p(s),l=_(p(o),2);{var c=v=>{var m=Me(),S=fe(m);en(S,()=>t.header),x(v,m)},u=v=>{var m=cS(),S=p(m,!0);h(m),N(()=>z(S,t.title)),x(v,m)};W(l,v=>{t.header?v(c):t.title&&v(u,1)})}h(o);var d=_(o,2);{var f=v=>{var m=uS(),S=p(m);en(S,()=>t.children),h(m),x(v,m)};W(d,v=>{n()&&v(f)})}h(s),N(()=>{a=he(s,1,"sh3-collapsible svelte-lvydsb",null,a,{"sh3-collapsible--open":n()}),re(o,"aria-expanded",n())}),K("click",o,r),x(e,s),ie()}me(["click"]);var vS=E('<span aria-hidden="true">*</span>'),hS=E('<span class="sh3-field__label svelte-m4dkl"> <!></span>'),pS=E('<span class="sh3-field__affix svelte-m4dkl"><!></span>'),mS=E('<span class="sh3-field__affix svelte-m4dkl"><!></span>'),bS=E("<span> </span>"),gS=E('<label><!> <span class="sh3-field__row svelte-m4dkl"><!> <input class="sh3-field__input svelte-m4dkl"/> <!></span> <!></label>');function yS(e,t){ae(t,!0);let n=te(t,"value",15,""),r=te(t,"type",3,"text"),s=te(t,"disabled",3,!1),a=te(t,"invalid",3,!1),o=te(t,"size",3,"md"),l=te(t,"required",3,!1);const c=V(()=>a()&&!!t.error),u=V(()=>i(c)?t.error:t.helper);var d=gS();let f;var v=p(d);{var m=P=>{var L=hS(),R=p(L,!0),M=_(R);{var O=T=>{var D=vS();x(T,D)};W(M,T=>{l()&&T(O)})}h(L),N(()=>z(R,t.label)),x(P,L)};W(v,P=>{t.label&&P(m)})}var S=_(v,2),g=p(S);{var b=P=>{var L=pS(),R=p(L);en(R,()=>t.prefix),h(L),x(P,L)};W(g,P=>{t.prefix&&P(b)})}var A=_(g,2);xe(A);var w=_(A,2);{var y=P=>{var L=mS(),R=p(L);en(R,()=>t.suffix),h(L),x(P,L)};W(w,P=>{t.suffix&&P(y)})}h(S);var C=_(S,2);{var I=P=>{var L=bS();let R;var M=p(L,!0);h(L),N(()=>{R=he(L,1,"sh3-field__helper svelte-m4dkl",null,R,{"sh3-field__helper--error":i(c)}),z(M,i(u))}),x(P,L)};W(C,P=>{i(u)&&P(I)})}h(d),N(()=>{f=he(d,1,"sh3-field svelte-m4dkl",null,f,{"sh3-field--invalid":a(),"sh3-field--sm":o()==="sm"}),re(A,"type",r()),re(A,"placeholder",t.placeholder),A.disabled=s(),A.required=l(),re(A,"autocomplete",t.autocomplete),re(A,"aria-invalid",a()||void 0)}),K("input",A,()=>t.oninput?.(n())),Ue("blur",A,()=>t.onchange?.(n())),Te(A,n),x(e,d),ie()}me(["input"]);var _S=E('<span aria-hidden="true">*</span>'),wS=E('<span class="sh3-textarea__label svelte-668c6r"> <!></span>'),kS=E("<span> </span>"),xS=E('<label><!> <textarea class="sh3-textarea__input svelte-668c6r"></textarea> <!></label>');function SS(e,t){ae(t,!0);let n=te(t,"value",15,""),r=te(t,"disabled",3,!1),s=te(t,"invalid",3,!1),a=te(t,"size",3,"md"),o=te(t,"required",3,!1),l=te(t,"rows",3,3),c=te(t,"resize",3,"vertical");const u=V(()=>s()&&!!t.error),d=V(()=>i(u)?t.error:t.helper);var f=xS();let v;var m=p(f);{var S=y=>{var C=wS(),I=p(C,!0),P=_(I);{var L=R=>{var M=_S();x(R,M)};W(P,R=>{o()&&R(L)})}h(C),N(()=>z(I,t.label)),x(y,C)};W(m,y=>{t.label&&y(S)})}var g=_(m,2);Nl(g);let b;var A=_(g,2);{var w=y=>{var C=kS();let I;var P=p(C,!0);h(C),N(()=>{I=he(C,1,"sh3-textarea__helper svelte-668c6r",null,I,{"sh3-textarea__helper--error":i(u)}),z(P,i(d))}),x(y,C)};W(A,y=>{i(d)&&y(w)})}h(f),N(()=>{v=he(f,1,"sh3-textarea svelte-668c6r",null,v,{"sh3-textarea--invalid":s(),"sh3-textarea--sm":a()==="sm"}),re(g,"placeholder",t.placeholder),g.disabled=r(),g.required=o(),re(g,"rows",l()),re(g,"aria-invalid",s()||void 0),b=We(g,"",b,{resize:c()})}),K("input",g,()=>t.oninput?.(n())),Ue("blur",g,()=>t.onchange?.(n())),Te(g,n),x(e,f),ie()}me(["input"]);function IS(e,t,n){let r=e;return t!==void 0&&r<t&&(r=t),n!==void 0&&r>n&&(r=n),r}function ES(e,t){const n=t.min??0,r=Math.round((e-n)/t.step);return n+r*t.step}var AS=E('<span class="sh3-num__label svelte-1qa0x3m"> </span>'),CS=E('<span class="sh3-num__affix svelte-1qa0x3m"><!></span>'),TS=E('<span class="sh3-num__affix svelte-1qa0x3m"><!></span>'),RS=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 LS(e,t){ae(t,!0);let n=te(t,"value",15,0),r=te(t,"step",3,1),s=te(t,"disabled",3,!1),a=te(t,"invalid",3,!1),o=te(t,"size",3,"md");function l(T){if(Number.isNaN(T))return;let D=IS(ES(T,{min:t.min,step:r()}),t.min,t.max);t.precision!==void 0&&(D=Number(D.toFixed(t.precision))),n(D)}function c(T){l(n()+T*r()),t.oninput?.(n())}let u=null,d=null,f=!1;function v(T){s()||(f=!0,c(T),u=setTimeout(()=>{let D=0;d=setInterval(()=>{c(T),D+=60,D>1500&&d&&(clearInterval(d),d=setInterval(()=>c(T),20))},60)},350))}function m(){u&&(clearTimeout(u),u=null),d&&(clearInterval(d),d=null),f&&(f=!1,t.onchange?.(n()))}var S=RS();let g;var b=p(S);{var A=T=>{var D=AS(),j=p(D,!0);h(D),N(()=>z(j,t.label)),x(T,D)};W(b,T=>{t.label&&T(A)})}var w=_(b,2),y=p(w);{var C=T=>{var D=CS(),j=p(D);en(j,()=>t.prefix),h(D),x(T,D)};W(y,T=>{t.prefix&&T(C)})}var I=_(y,2);xe(I);var P=_(I,2);{var L=T=>{var D=TS(),j=p(D);en(j,()=>t.suffix),h(D),x(T,D)};W(P,T=>{t.suffix&&T(L)})}var R=_(P,2),M=p(R),O=_(M,2);h(R),h(w),h(S),N(()=>{g=he(S,1,"sh3-num svelte-1qa0x3m",null,g,{"sh3-num--invalid":a(),"sh3-num--sm":o()==="sm"}),re(I,"min",t.min),re(I,"max",t.max),re(I,"step",r()),I.disabled=s(),re(I,"aria-invalid",a()||void 0),Os(I,n()),M.disabled=s(),O.disabled=s()}),K("input",I,T=>{const D=T.currentTarget.valueAsNumber;Number.isNaN(D)||(n(D),t.oninput?.(D))}),Ue("blur",I,()=>{l(n()),t.onchange?.(n())}),K("pointerdown",M,()=>v(1)),K("pointerup",M,m),Ue("pointerleave",M,m),K("pointerdown",O,()=>v(-1)),K("pointerup",O,m),Ue("pointerleave",O,m),x(e,S),ie()}me(["input","pointerdown","pointerup"]);function $i(e){return e.filter(t=>!t.disabled)}function MS(e,t){const n=$i(e);if(n.length===0)return t;const r=n.findIndex(a=>a.value===t);return n[(r+1+n.length)%n.length].value}function PS(e,t){const n=$i(e);if(n.length===0)return t;const r=n.findIndex(a=>a.value===t);return n[(r-1+n.length)%n.length].value}function DS(e){return $i(e)[0]?.value}function zS(e){const t=$i(e);return t[t.length-1]?.value}var jS=E('<button type="button" role="radio"> </button>'),OS=E('<div role="radiogroup" tabindex="-1"></div>');function Zh(e,t){ae(t,!0);let n=te(t,"value",31,()=>ve(t.options[0]?.value??"")),r=te(t,"size",3,"md"),s=te(t,"disabled",3,!1);function a(u){n(u),t.onchange?.(u)}function o(u){if(s())return;let d;switch(u.key){case"ArrowRight":case"ArrowDown":d=MS(t.options,n());break;case"ArrowLeft":case"ArrowUp":d=PS(t.options,n());break;case"Home":d=DS(t.options);break;case"End":d=zS(t.options);break;default:return}u.preventDefault(),d!==void 0&&a(d)}var l=OS();let c;be(l,21,()=>t.options,ut,(u,d)=>{var f=jS();let v;var m=p(f,!0);h(f),N(()=>{re(f,"aria-checked",n()===i(d).value),re(f,"tabindex",n()===i(d).value?0:-1),f.disabled=s()||i(d).disabled,v=he(f,1,"svelte-17xsko9",null,v,{"sh3-seg__btn--active":n()===i(d).value}),z(m,i(d).label)}),K("click",f,()=>{!i(d).disabled&&!s()&&a(i(d).value)}),x(u,f)}),h(l),N(()=>c=he(l,1,"sh3-seg svelte-17xsko9",null,c,{"sh3-seg--sm":r()==="sm"})),K("keydown",l,o),x(e,l),ie()}me(["keydown","click"]);function NS(e,t){return e===t?"":t}function qS(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var BS=E('<button type="button"><!></button>'),FS=E('<div role="group"></div>');function VS(e,t){ae(t,!0);let n=te(t,"multiple",3,!1),r=te(t,"value",31,()=>ve(n()?[]:t.options[0]?.value??"")),s=te(t,"disabled",3,!1),a=te(t,"size",3,"md");function o(d){return n()&&Array.isArray(r())?r().includes(d):r()===d}function l(d){if(!s()){if(n()){const f=Array.isArray(r())?r():[];r(qS(f,d))}else r(NS(typeof r()=="string"?r():"",d));t.onchange?.(r())}}var c=FS();let u;be(c,21,()=>t.options,ut,(d,f)=>{var v=BS();let m;var S=p(v);en(S,()=>i(f).icon),h(v),N((g,b)=>{re(v,"title",i(f).tooltip),re(v,"aria-label",i(f).tooltip),re(v,"aria-pressed",g),v.disabled=s(),m=he(v,1,"svelte-13knxr5",null,m,b)},[()=>o(i(f).value),()=>({"sh3-itg__btn--active":o(i(f).value)})]),K("click",v,()=>l(i(f).value)),x(d,v)}),h(c),N(()=>u=he(c,1,"sh3-itg svelte-13knxr5",null,u,{"sh3-itg--sm":a()==="sm"})),x(e,c),ie()}me(["click"]);function di(e,t,n){return n===t?0:(e-t)/(n-t)*100}var US=E('<span class="sh3-slider__tick svelte-13va6lu"></span>'),HS=E('<output class="sh3-slider__value svelte-13va6lu"> </output>'),KS=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 Qh(e,t){ae(t,!0);let n=te(t,"value",15,0),r=te(t,"min",3,0),s=te(t,"max",3,100),a=te(t,"step",3,1),o=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=V(()=>di(n(),r(),s()));var v=KS();let m;var S=p(v),g=p(S);let b;var A=_(g,2);{var w=P=>{var L=Me(),R=fe(L);be(R,17,()=>t.ticks,ut,(M,O)=>{var T=US();let D;N(j=>D=We(T,"",D,j),[()=>({"--tick-pct":`${di(i(O),r(),s())??""}%`})]),x(M,T)}),x(P,L)};W(A,P=>{t.ticks&&P(w)})}h(S);var y=_(S,2);xe(y);var C=_(y,2);{var I=P=>{var L=HS();let R;var M=p(L,!0);h(L),N(()=>{R=We(L,"",R,{"--pct":`${i(f)??""}%`}),z(M,n())}),x(P,L)};W(C,P=>{o()&&P(I)})}h(v),N(()=>{m=he(v,1,`sh3-slider sh3-slider--${d()??""}`,"svelte-13va6lu",m,{"sh3-slider--sm":u()==="sm","sh3-slider--invalid":c()}),b=We(g,"",b,{"--pct":`${i(f)??""}%`}),re(y,"min",r()),re(y,"max",s()),re(y,"step",a()),y.disabled=l(),re(y,"aria-invalid",c()||void 0)}),K("input",y,()=>t.oninput?.(n())),K("change",y,()=>t.onchange?.(n())),Te(y,n),x(e,v),ie()}me(["input","change"]);function Gu(e,t,n){const[r,s]=e;return t==="low"?[Math.min(n,s),s]:[r,Math.max(n,r)]}var WS=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 YS(e,t){ae(t,!0);let n=te(t,"value",31,()=>ve([0,100])),r=te(t,"min",3,0),s=te(t,"max",3,100),a=te(t,"step",3,1),o=te(t,"disabled",3,!1),l=te(t,"invalid",3,!1),c=te(t,"size",3,"md");const u=V(()=>di(n()[0],r(),s())),d=V(()=>di(n()[1],r(),s()));function f(C){n(Gu(n(),"low",C)),t.oninput?.(n())}function v(C){n(Gu(n(),"high",C)),t.oninput?.(n())}var m=WS();let S;var g=p(m),b=p(g);let A;h(g);var w=_(g,2);xe(w);var y=_(w,2);xe(y),h(m),N(()=>{S=he(m,1,"sh3-range svelte-rdbrc5",null,S,{"sh3-range--sm":c()==="sm","sh3-range--invalid":l()}),A=We(b,"",A,{"--lo":`${i(u)??""}%`,"--hi":`${i(d)??""}%`}),re(w,"min",r()),re(w,"max",s()),re(w,"step",a()),w.disabled=o(),Os(w,n()[0]),re(y,"min",r()),re(y,"max",s()),re(y,"step",a()),y.disabled=o(),Os(y,n()[1])}),K("input",w,C=>f(parseFloat(C.currentTarget.value))),K("change",w,()=>t.onchange?.(n())),K("input",y,C=>v(parseFloat(C.currentTarget.value))),K("change",y,()=>t.onchange?.(n())),x(e,m),ie()}me(["input","change"]);var XS=E('<div class="sh3-sg__channel svelte-1lqyi0d"><span class="sh3-sg__label svelte-1lqyi0d"> </span> <!></div>'),GS=E("<div></div>");function JS(e,t){ae(t,!0);let n=te(t,"orientation",3,"horizontal"),r=te(t,"values",31,()=>ve({})),s=te(t,"showValues",3,!1),a=te(t,"disabled",3,!1),o=te(t,"size",3,"md");var l=GS();be(l,21,()=>t.channels,c=>c.id,(c,u)=>{var d=XS(),f=p(d),v=p(f,!0);h(f);var m=_(f,2),S=()=>r()[i(u).id]??0,g=b=>r({...r(),[i(u).id]:b});{let b=V(()=>i(u).min??0),A=V(()=>i(u).max??100),w=V(()=>i(u).step??1);Qh(m,{get orientation(){return n()},get min(){return i(b)},get max(){return i(A)},get step(){return i(w)},get disabled(){return a()},get size(){return o()},get showValue(){return s()},get value(){return S()},set value(y){g(y)},oninput:()=>t.oninput?.(r()),onchange:()=>t.onchange?.(r())})}h(d),N(()=>z(v,i(u).label)),x(c,d)}),h(l),N(()=>he(l,1,`sh3-sg sh3-sg--${n()??""}`,"svelte-1lqyi0d")),x(e,l),ie()}var ZS=E('<span class="sh3-swatch__label svelte-6ri2j2"> </span>'),QS=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 $h(e,t){ae(t,!0);let n=te(t,"value",15,"#000000"),r=te(t,"disabled",3,!1),s=te(t,"size",3,"md"),a;async function o(){if(r())return;const g=await xt.color.pick({initial:n(),anchor:a});g!=null&&(n(g),t.onchange?.(g))}var l=QS();let c;var u=p(l);{var d=g=>{var b=ZS(),A=p(b,!0);h(b),N(()=>z(A,t.label)),x(g,b)};W(u,g=>{t.label&&g(d)})}var f=_(u,2);let v;var m=_(p(f)),S=p(m,!0);h(m),h(f),Oe(f,g=>a=g,()=>a),h(l),N(()=>{c=he(l,1,"sh3-swatch svelte-6ri2j2",null,c,{"sh3-swatch--sm":s()==="sm"}),f.disabled=r(),re(f,"aria-label",`${t.label??"Color"??""} (current ${n()??""})`),v=We(f,"",v,{"--swatch-color":n()}),z(S,n())}),K("click",f,o),x(e,l),ie()}me(["click"]);function $S(e,t){return!e||e.length===0?t?[]:null:t?Array.from(e):e[0]}function e3(e){return e===null?"":Array.isArray(e)?e.length===0?"":e.length===1?e[0].name:`${e.length} files`:e.name}var t3=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 n3(e,t){ae(t,!0);let n=te(t,"value",15,null),r=te(t,"multiple",3,!1),s=te(t,"disabled",3,!1),a=te(t,"invalid",3,!1),o=te(t,"size",3,"md"),l=te(t,"buttonLabel",3,"Choose file...");function c(A){const w=A.currentTarget;n($S(w.files,r())),t.onchange?.(n())}const u=V(()=>e3(n()));var d=t3();let f;var v=p(d),m=_(v,2),S=p(m,!0);h(m);var g=_(m,2),b=p(g,!0);h(g),h(d),N(()=>{f=he(d,1,"sh3-fp svelte-24jk95",null,f,{"sh3-fp--sm":o()==="sm","sh3-fp--invalid":a()}),re(v,"accept",t.accept),v.multiple=r(),v.disabled=s(),z(S,l()),z(b,i(u)||"no file")}),K("change",v,c),x(e,d),ie()}me(["change"]);const r3=8;function s3(e){return e.length>=r3}function a3(e,t){if(!t)return e.slice();const n=t.toLowerCase();return e.filter(r=>r.label.toLowerCase().includes(n))}function i3(e,t,n){if(!t)return-1;const r=t.toLowerCase(),s=e.length;for(let a=1;a<=s;a++){const o=(n+a)%s;if(!e[o].disabled&&e[o].label.toLowerCase().startsWith(r))return o}return-1}function o3(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 l3(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var c3=E('<input class="sh3-listbox__search svelte-1tyxvrs" type="search" placeholder="Filter…"/>'),u3=E('<span aria-hidden="true"></span>'),d3=E('<div role="option" tabindex="-1"><!> <span class="sh3-listbox__label"> </span></div>'),f3=E('<div class="sh3-listbox__empty svelte-1tyxvrs">No matches</div>'),v3=E('<div class="sh3-listbox svelte-1tyxvrs" role="listbox" tabindex="-1"><!> <div class="sh3-listbox__list svelte-1tyxvrs"><!> <!></div></div>');function h3(e,t){ae(t,!0);const n=V(()=>t.getValue());function r(){t.onClose?.(),t.close()}const s=V(()=>s3(t.options));function a(){if(t.multiple)return 0;const R=typeof i(n)=="string"?i(n):"",M=t.options.findIndex(O=>O.value===R&&!O.disabled);return M>=0?M:0}let o=U(""),l=U(ve(a())),c=U(void 0),u=U(void 0),d="",f=null;const v=V(()=>a3(t.options,i(o)));Ie(()=>{i(l)>=i(v).length&&k(l,0),m()});async function m(){if(await oa(),!i(c))return;i(c).querySelector(`[data-idx="${i(l)}"]`)?.scrollIntoView({block:"nearest"})}function S(R){return t.multiple&&Array.isArray(i(n))?i(n).includes(R.value):i(n)===R.value}function g(R){const M=i(v)[R];!M||M.disabled||(t.onSelect(M.value),t.multiple||r())}function b(R){if(i(v).length!==0)switch(R.key){case"ArrowDown":R.preventDefault(),k(l,(i(l)+1)%i(v).length);break;case"ArrowUp":R.preventDefault(),k(l,(i(l)-1+i(v).length)%i(v).length);break;case"Home":R.preventDefault(),k(l,0);break;case"End":R.preventDefault(),k(l,i(v).length-1);break;case"Enter":R.preventDefault(),g(i(l));break;case" ":case"Space":R.preventDefault(),g(i(l));break;case"Escape":R.preventDefault(),r();break;default:if(i(s)&&document.activeElement===i(u)||R.key.length!==1||R.metaKey||R.ctrlKey||R.altKey)return;d+=R.key,f&&clearTimeout(f),f=setTimeout(()=>{d=""},500);const M=i3(i(v),d,i(l));M>=0&&k(l,M,!0)}}var A=v3(),w=p(A);{var y=R=>{var M=c3();xe(M),Oe(M,O=>k(u,O),()=>i(u)),Te(M,()=>i(o),O=>k(o,O)),x(R,M)};W(w,R=>{i(s)&&R(y)})}var C=_(w,2),I=p(C);be(I,17,()=>i(v),ut,(R,M,O)=>{var T=d3();re(T,"data-idx",O);let D;var j=p(T);{var B=q=>{var X=u3();let $;N(G=>$=he(X,1,"sh3-listbox__check svelte-1tyxvrs",null,$,G),[()=>({"sh3-listbox__check--on":S(i(M))})]),x(q,X)};W(j,q=>{t.multiple&&q(B)})}var Y=_(j,2),Z=p(Y,!0);h(Y),h(T),N((q,X)=>{re(T,"aria-selected",q),re(T,"aria-disabled",i(M).disabled),D=he(T,1,"svelte-1tyxvrs",null,D,X),z(Z,i(M).label)},[()=>S(i(M)),()=>({"sh3-listbox__opt--active":O===i(l),"sh3-listbox__opt--selected":S(i(M))})]),K("click",T,()=>g(O)),Ue("mouseenter",T,()=>k(l,O,!0)),x(R,T)});var P=_(I,2);{var L=R=>{var M=f3();x(R,M)};W(P,R=>{i(v).length===0&&R(L)})}h(C),Oe(C,R=>k(c,R),()=>i(c)),h(A),N(()=>re(A,"aria-multiselectable",t.multiple)),K("keydown",A,b),x(e,A),ie()}me(["keydown","click"]);var p3=E('<span class="sh3-select__label svelte-1q3zxph"> </span>'),m3=E("<option> </option>"),b3=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 g3(e,t){ae(t,!0);let n=te(t,"multiple",3,!1),r=te(t,"value",31,()=>ve(n()?[]:"")),s=te(t,"placeholder",3,"Select…"),a=te(t,"disabled",3,!1),o=te(t,"invalid",3,!1),l=te(t,"size",3,"md"),c=U(void 0),u=U(void 0),d=U(!1);const f=V(()=>o3(t.options,r(),n()));function v(){k(d,!1),i(c)?.focus()}async function m(){if(a()||i(d)||!i(c))return;k(d,!0);const M=xt.popup.show(h3,{anchor:i(c)},{options:t.options,getValue:()=>r(),multiple:n(),onSelect:D=>{if(n()){const j=Array.isArray(r())?r():[];r(l3(j,D))}else r(D);t.onchange?.(r())},onClose:v}),O=M.close;M.close=()=>{O(),v()},await oa(),document.querySelector(".sh3-listbox")?.focus()}function S(M){if(!(a()||i(d)))switch(M.key){case"ArrowDown":case"ArrowUp":case"Enter":case" ":M.preventDefault(),m();break}}function g(){i(u)&&(n()?r(Array.from(i(u).selectedOptions).map(M=>M.value)):r(i(u).value),t.onchange?.(r()))}var b=b3();let A;var w=p(b);{var y=M=>{var O=p3(),T=p(O,!0);h(O),N(()=>z(T,t.label)),x(M,O)};W(w,M=>{t.label&&M(y)})}var C=_(w,2),I=p(C);let P;var L=p(I,!0);h(I),yt(2),h(C),Oe(C,M=>k(c,M),()=>i(c));var R=_(C,2);re(R,"tabindex",-1),be(R,21,()=>t.options,ut,(M,O)=>{var T=m3(),D=p(T,!0);h(T);var j={};N(B=>{Zl(T,B),z(D,i(O).label),j!==(j=i(O).value)&&(T.value=(T.__value=i(O).value)??"")},[()=>n()?Array.isArray(r())&&r().includes(i(O).value):r()===i(O).value]),x(M,T)}),h(R),Oe(R,M=>k(u,M),()=>i(u)),h(b),N(()=>{A=he(b,1,"sh3-select svelte-1q3zxph",null,A,{"sh3-select--invalid":o(),"sh3-select--sm":l()==="sm"}),C.disabled=a(),re(C,"aria-expanded",i(d)),P=he(I,1,"sh3-select__display svelte-1q3zxph",null,P,{"sh3-select__display--placeholder":!i(f)}),z(L,i(f)||s()),R.multiple=n(),R.disabled=a()}),K("click",C,m),K("keydown",C,S),K("change",R,g),x(e,b),ie()}me(["click","keydown","change"]);function y3(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 _3(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var w3=E('<input type="search" class="sh3-picker__search svelte-1rlwvrb" placeholder="Filter…"/>'),k3=E('<p class="sh3-picker__status svelte-1rlwvrb">Loading…</p>'),x3=E('<button type="button" class="sh3-picker__retry svelte-1rlwvrb">Retry</button>'),S3=E('<p class="sh3-picker__status sh3-picker__status--error svelte-1rlwvrb"> </p> <!>',1),I3=E('<p class="sh3-picker__status svelte-1rlwvrb"> </p>'),E3=E('<span class="sh3-picker__row-sub svelte-1rlwvrb"> </span>'),A3=E('<label class="sh3-picker__row svelte-1rlwvrb"><input type="checkbox"/> <span class="sh3-picker__row-text svelte-1rlwvrb"><span class="sh3-picker__row-label svelte-1rlwvrb"> </span> <!></span></label>'),C3=E('<div><!> <div class="sh3-picker__list svelte-1rlwvrb"><!></div> <p class="sh3-picker__footer svelte-1rlwvrb"> </p></div>');function ep(e,t){ae(t,!0);let n=te(t,"value",31,()=>ve([])),r=te(t,"loading",3,!1),s=te(t,"error",3,null),a=te(t,"emptyText",3,"No items."),o=te(t,"searchThreshold",3,8),l=te(t,"disabled",3,!1),c=te(t,"size",3,"md"),u=U("");const d=V(()=>t.items.length>=o()),f=V(()=>y3(t.items,i(u))),v=V(()=>t.items.length),m=V(()=>n().length);function S(T){if(l())return;const D=_3(n(),T);n(D),t.onchange?.(D)}var g=C3();let b;var A=p(g);{var w=T=>{var D=w3();xe(D),N(()=>D.disabled=l()),Te(D,()=>i(u),j=>k(u,j)),x(T,D)};W(A,T=>{i(d)&&T(w)})}var y=_(A,2),C=p(y);{var I=T=>{var D=k3();x(T,D)},P=T=>{var D=S3(),j=fe(D),B=p(j,!0);h(j);var Y=_(j,2);{var Z=q=>{var X=x3();K("click",X,()=>t.onRetry?.()),x(q,X)};W(Y,q=>{t.onRetry&&q(Z)})}N(()=>z(B,s())),x(T,D)},L=T=>{var D=I3(),j=p(D,!0);h(D),N(()=>z(j,a())),x(T,D)},R=T=>{var D=Me(),j=fe(D);be(j,17,()=>i(f),B=>B.id,(B,Y)=>{var Z=A3(),q=p(Z);xe(q);var X=_(q,2),$=p(X),G=p($,!0);h($);var Q=_($,2);{var F=H=>{var ee=E3(),J=p(ee,!0);h(ee),N(()=>z(J,i(Y).sublabel)),x(H,ee)};W(Q,H=>{i(Y).sublabel&&H(F)})}h(X),h(Z),N(H=>{Jl(q,H),q.disabled=l(),z(G,i(Y).label)},[()=>n().includes(i(Y).id)]),K("change",q,()=>S(i(Y).id)),x(B,Z)}),x(T,D)};W(C,T=>{r()?T(I):s()?T(P,1):t.items.length===0?T(L,2):T(R,-1)})}h(y);var M=_(y,2),O=p(M);h(M),h(g),N(()=>{b=he(g,1,"sh3-picker svelte-1rlwvrb",null,b,{"sh3-picker--sm":c()==="sm","sh3-picker--disabled":l()}),z(O,`${i(m)??""} of ${i(v)??""} selected`)}),x(e,g),ie()}me(["click","change"]);function tp(e,t){ae(t,!0);const n=new Set(["sh3-admin-app","sh3-store-app"]);let r=te(t,"value",31,()=>ve([])),s=te(t,"disabled",3,!1),a=te(t,"size",3,"md");const o=V(()=>us().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)}ep(e,{get items(){return i(o)},get value(){return r()},onchange:l,get disabled(){return s()},get size(){return a()},emptyText:"No apps installed."}),ie()}const Xt=ve({users:[],loading:!1,error:null});let gs=null;function Ju(){return gs||(Xt.loading=!0,Xt.error=null,gs=(async()=>{try{const e=await fetch("/api/admin/users",{credentials:"include"});if(!e.ok){Xt.error=`GET /api/admin/users failed: ${e.status}`;return}Xt.users=await e.json()}catch(e){Xt.error=e.message}finally{Xt.loading=!1,gs=null}})(),gs)}function np(e,t){ae(t,!0);let n=te(t,"value",31,()=>ve([])),r=te(t,"disabled",3,!1),s=te(t,"size",3,"md");Xt.users.length===0&&!Xt.loading&&!Xt.error&&Ju();const a=V(()=>Xt.users.map(l=>({id:l.id,label:l.displayName||l.username,sublabel:l.username})));function o(l){n(l),t.onchange?.(l)}ep(e,{get items(){return i(a)},get value(){return n()},onchange:o,get loading(){return Xt.loading},get error(){return Xt.error},onRetry:()=>void Ju(),emptyText:"No users found.",get disabled(){return r()},get size(){return s()}}),ie()}function T3(e,t,n){if(t===null)return[...new Set(e.map(f=>f.shardId))].sort().map(f=>({kind:"folder",name:f,fullPath:f}));const r=e.filter(d=>d.shardId===t),s=new Map,a=[],o=n?n+"/":"",l=o.length;for(const d of r){if(!d.path.startsWith(o))continue;const f=d.path.slice(l),v=f.indexOf("/");if(v>=0){const m=f.slice(0,v),S=n?`${n}/${m}`:m;s.has(m)||s.set(m,S)}else a.push({kind:"file",name:f,doc:d})}const c=[...s.entries()].map(([d,f])=>({kind:"folder",name:d,fullPath:f})).sort((d,f)=>d.name.localeCompare(f.name)),u=a.sort((d,f)=>d.name.localeCompare(f.name));return[...c,...u]}function R3(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function L3(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 M3={guml:"⬡",glsl:"◇",md:"≡",obj:"△",png:"▦"};function P3(e){const t=e.slice(e.lastIndexOf(".")+1).toLowerCase();return M3[t]??"▯"}function D3(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}var z3=E('<span class="sh3-doc-browser__crumb-sep svelte-16fo6d5">/</span>'),j3=E('<!> <button type="button"> </button>',1),O3=E('<div class="sh3-doc-browser__empty svelte-16fo6d5"> </div>'),N3=E('<span class="sh3-doc-browser__icon sh3-doc-browser__icon--folder svelte-16fo6d5" aria-hidden="true">📁</span> <span class="sh3-doc-browser__name svelte-16fo6d5"> </span> <span class="sh3-doc-browser__meta svelte-16fo6d5"></span>',1),q3=E('<span class="sh3-doc-browser__icon svelte-16fo6d5" aria-hidden="true"> </span> <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),B3=E('<div role="option" tabindex="-1"><!></div>'),F3=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>'),V3=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 U3(e,t){ae(t,!0);let n=U(null),r=U(""),s=U(null),a=U(""),o=U(0),l=U(void 0);const c=V(()=>T3(t.docs,i(n),i(r))),u=V(()=>D3(i(n),i(r)));Ie(()=>{i(c),k(o,Math.min(i(o),i(c).length-1),!0)});function d(q){k(n,q,!0),k(r,""),k(s,null),k(a,""),k(o,0)}function f(q){i(n)===null?d(q):(k(r,q,!0),k(s,null),k(a,""),k(o,0))}function v(q){q.kind==="folder"?f(q.fullPath):(t.mode==="open"&&k(s,q.doc,!0),t.mode==="save"&&k(a,q.name,!0))}function m(){if(t.mode==="open"&&i(s))t.onCommit({shardId:i(s).shardId,path:i(s).path}),t.close();else if(t.mode==="save"&&i(a).trim()&&i(n)){const q=i(r)?`${i(n)}/${i(r)}/${i(a)}`:`${i(n)}/${i(a)}`;t.onCommit(q),t.close()}}function S(){t.onCancel(),t.close()}function g(){return t.mode==="open"?i(s)!==null:i(a).trim().length>0&&i(n)!==null}function b(q){if(!(q.target instanceof HTMLInputElement))switch(q.key){case"ArrowDown":q.preventDefault(),k(o,Math.min(i(o)+1,i(c).length-1),!0);break;case"ArrowUp":q.preventDefault(),k(o,Math.max(i(o)-1,0),!0);break;case"Enter":q.preventDefault(),i(o)>=0&&i(o)<i(c).length&&v(i(c)[i(o)]);break;case"Escape":q.preventDefault(),S();break;case"Backspace":if(i(r)){q.preventDefault();const X=i(r).split("/");X.pop(),k(r,X.join("/"),!0),k(o,0)}else i(n)&&(q.preventDefault(),k(n,null),k(o,0));break}}function A(q){q.kind==="folder"?f(q.fullPath):t.mode==="open"&&(t.onCommit({shardId:q.doc.shardId,path:q.doc.path}),t.close())}var w=V3(),y=p(w),C=p(y),I=p(C,!0);h(C),h(y);var P=_(y,2);be(P,21,()=>i(u),ut,(q,X,$)=>{var G=j3(),Q=fe(G);{var F=ce=>{var de=z3();x(ce,de)};W(Q,ce=>{$>0&&ce(F)})}var H=_(Q,2);let ee;var J=p(H,!0);h(H),N(()=>{ee=he(H,1,"sh3-doc-browser__crumb svelte-16fo6d5",null,ee,{"sh3-doc-browser__crumb--last":$===i(u).length-1}),z(J,i(X).label)}),K("click",H,()=>{k(n,i(X).targetShard,!0),k(r,i(X).targetPrefix,!0),k(s,null),k(a,""),k(o,0)}),x(q,G)}),h(P);var L=_(P,2),R=p(L);{var M=q=>{var X=O3(),$=p(X,!0);h(X),N(()=>z($,i(n)===null?"No shards available.":i(r)?"Empty directory.":"No documents in this shard.")),x(q,X)},O=q=>{var X=Me(),$=fe(X);be($,17,()=>i(c),ut,(G,Q,F)=>{const H=V(()=>F===i(o)),ee=V(()=>i(Q).kind==="file"&&t.mode==="open"&&i(s)?.path===i(Q).doc.path&&i(s)?.shardId===i(Q).doc.shardId);var J=B3();let ce;var de=p(J);{var ne=pe=>{var we=N3(),qe=_(fe(we),2),Be=p(qe,!0);h(qe),yt(2),N(()=>z(Be,i(Q).name)),x(pe,we)},le=pe=>{var we=q3(),qe=fe(we),Be=p(qe,!0);h(qe);var ot=_(qe,2),nr=p(ot,!0);h(ot);var oe=_(ot,2),se=p(oe),Ee=_(se),ze=p(Ee,!0);h(Ee),h(oe),N((ke,je,Ye)=>{z(Be,ke),z(nr,i(Q).name),z(se,`${je??""} `),z(ze,Ye)},[()=>P3(i(Q).name),()=>R3(i(Q).doc.size),()=>L3(i(Q).doc.lastModified)]),x(pe,we)};W(de,pe=>{i(Q).kind==="folder"?pe(ne):pe(le,-1)})}h(J),N(()=>{ce=he(J,1,"sh3-doc-browser__item svelte-16fo6d5",null,ce,{"sh3-doc-browser__item--active":i(H),"sh3-doc-browser__item--selected":i(ee),"sh3-doc-browser__item--folder":i(Q).kind==="folder"}),re(J,"aria-selected",i(ee))}),K("click",J,()=>v(i(Q))),K("keydown",J,pe=>{pe.key==="Enter"&&v(i(Q))}),K("dblclick",J,()=>A(i(Q))),Ue("mouseenter",J,()=>k(o,F,!0)),x(G,J)}),x(q,X)};W(R,q=>{i(c).length===0?q(M):q(O,-1)})}h(L),Oe(L,q=>k(l,q),()=>i(l));var T=_(L,2);{var D=q=>{var X=F3(),$=_(p(X),2);xe($),h(X),K("keydown",$,G=>{G.key==="Enter"&&g()&&m()}),Te($,()=>i(a),G=>k(a,G)),x(q,X)};W(T,q=>{t.mode==="save"&&i(n)!==null&&q(D)})}var j=_(T,2),B=p(j),Y=_(B,2),Z=p(Y,!0);h(Y),h(j),h(w),N(q=>{z(I,t.mode==="open"?"Open Document":"Save Document"),Y.disabled=q,z(Z,t.mode==="open"?"Open":"Save")},[()=>!g()]),K("keydown",w,b),K("click",B,S),K("click",Y,m),x(e,w),ie()}me(["keydown","click","dblclick"]);var H3=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 Pc(e,t){ae(t,!0);let n=te(t,"value",15,null),r=te(t,"disabled",3,!1),s=te(t,"invalid",3,!1),a=te(t,"size",3,"md"),o=te(t,"buttonLabel",3,"Choose…"),l=U(void 0),c=U(!1);const u=V(()=>n()?typeof n()=="string"?n():`${n().shardId}/${n().path}`:null);function d(I){n(I),t.onchange?.(I)}function f(){k(c,!1),i(l)?.focus()}async function v(){if(r()||i(c)||!i(l))return;k(c,!0);let I=[];try{I=await t.listDocuments()}catch{k(c,!1);return}const P=xt.popup.show(U3,{anchor:i(l)},{mode:t.mode,docs:I,onCommit:R=>{d(R)},onCancel:()=>{}}),L=P.close;P.close=()=>{L(),f()}}var m=H3();let S;var g=p(m),b=p(g),A=p(b,!0);h(b);var w=_(b,2);let y;var C=p(w,!0);h(w),yt(2),h(g),Oe(g,I=>k(l,I),()=>i(l)),h(m),N(()=>{S=he(m,1,"sh3-dfp svelte-hcr0gi",null,S,{"sh3-dfp--sm":a()==="sm","sh3-dfp--invalid":s()}),g.disabled=r(),re(g,"aria-expanded",i(c)),z(A,o()),y=he(w,1,"sh3-dfp__path svelte-hcr0gi",null,y,{"sh3-dfp__path--empty":!i(u)}),z(C,i(u)??(t.mode==="open"?"no document":"choose path…"))}),K("click",g,v),x(e,m),ie()}me(["click"]);function K3(e,t){ae(t,!0);let n=te(t,"value",15,null),r=te(t,"disabled",3,!1),s=te(t,"invalid",3,!1),a=te(t,"size",3,"md"),o=te(t,"buttonLabel",3,"Open document…");Pc(e,{mode:"open",get listDocuments(){return t.listDocuments},get disabled(){return r()},get invalid(){return s()},get size(){return a()},get buttonLabel(){return o()},get onchange(){return t.onchange},get value(){return n()},set value(l){n(l)}}),ie()}function W3(e,t){ae(t,!0);let n=te(t,"value",15,null),r=te(t,"disabled",3,!1),s=te(t,"invalid",3,!1),a=te(t,"size",3,"md"),o=te(t,"buttonLabel",3,"Save as…");Pc(e,{mode:"save",get listDocuments(){return t.listDocuments},get disabled(){return r()},get invalid(){return s()},get size(){return a()},get buttonLabel(){return o()},get onchange(){return t.onchange},get value(){return n()},set value(l){n(l)}}),ie()}const Y3=/^[a-zA-Z0-9.\-_]+$/,X3=/^[a-zA-Z0-9.\-_]*$/;function fi(e,t){if(e.length===0)throw new Error(`fieldAddress: ${t} is empty`);if(!Y3.test(e))throw new Error(`fieldAddress: invalid ${t} "${e}" (must match [a-zA-Z0-9.\\-_]+)`)}function rp(e){if(!X3.test(e))throw new Error(`fieldAddress: invalid slotId "${e}"`)}function G3(e){return fi(e.shardId,"shardId"),fi(e.fieldId,"fieldId"),e.slotId!==void 0&&rp(e.slotId),`${e.shardId}::${e.slotId??""}::${e.fieldId}`}function J3(e){const t=e.split("::");if(t.length!==3)throw new Error(`fieldAddress: malformed "${e}" (expected three ::-separated parts)`);const[n,r,s]=t;fi(n,"shardId"),fi(s,"fieldId"),rp(r);const a={shardId:n,fieldId:s};return r.length>0&&(a.slotId=r),a}const Z3={hotInstall:typeof Blob<"u"&&typeof URL.createObjectURL=="function"},sp=["__sh3core__","shell","sh3-store","sh3-admin"],ap=Object.freeze(Object.defineProperty({__proto__:null,AppPicker:tp,Button:Pn,COLOR_PICKER_POINT:Xv,CONFLICT_RENDERER_POINT:Kv,Collapsible:fS,ColorSwatch:$h,ConflictPermissionError:Wv,ConflictSessionOrphanedError:Tk,ConsentDeniedError:Uh,DocumentFilePicker:Pc,DocumentOpener:K3,DocumentSaver:W3,FRAMEWORK_SHARD_IDS:sp,Field:yS,FilePicker:n3,IconToggleGroup:VS,NumberInput:LS,PERMISSION_DOCUMENTS_BROWSE:Nh,PERMISSION_DOCUMENTS_READ:qh,PERMISSION_DOCUMENTS_WRITE:Bh,PERMISSION_KEYS_MINT:Fh,PERMISSION_STATE_MANAGE:Ns,PERMISSION_SYNC_PEER:Cx,PERMISSION_SYNC_POLICY:Tx,RangeSlider:YS,SHELL_MODE_CONTRIBUTION_POINT:Ms,ScopeEscalationError:Vh,Segmented:Zh,Select:g3,Slider:Qh,SliderGroup:JS,Textarea:SS,UserPicker:np,VERSION:_n,activeShards:kr,buildPackageMeta:Qi,capabilities:Z3,clearTokenOverrides:nS,closeTab:xc,collapseChild:N0,dockFloat:_h,dockIntoActiveLayout:Ic,erroredShards:ci,expandChild:q0,fetchBundle:Zi,fetchRegistries:Yh,fieldAddressFromString:J3,fieldAddressToString:G3,focusTab:O0,focusView:Vi,getActiveApp:tc,getAuthHeader:Wi,getIconSprite:Jh,getTokenOverrides:Xh,getUser:ts,inspectActiveLayout:mh,isAdmin:Tt,isAuthenticated:ul,isGuest:Ah,launchApp:Fn,listRegisteredApps:us,listVerbs:sc,locateSlot:Sh,popoutView:yh,provideIcons:sS,pushNavEntry:gw,registerConsentListener:Hh,registerShellMode:eS,registeredShards:tn,resolveConsent:pl,returnToHome:vs,runVerbProgrammatic:Rh,setTokenOverrides:tS,sh3:xt,spawnSatellite:Ji,spliceIntoActiveLayout:j0,subscribeKeyRevocation:Tc,unregisterApp:wc,validateRegistryIndex:Wh},Symbol.toStringTag,{value:"Module"})),Q3="/assets/SH3-BG5NVpSD.png",$3="https://cdn.jsdelivr.net/npm/p5@1.11.13/lib/p5.min.js";let ys=null;function eI(){return ys||(ys=new Promise((e,t)=>{const n=window.p5;if(n){e(n);return}const r=document.createElement("script");r.src=$3,r.async=!0,r.onload=()=>e(window.p5),r.onerror=s=>{ys=null,t(s)},document.head.appendChild(r)}),ys)}var tI=E('<h1 class="sh3-title-fallback svelte-foqg2v">SH3</h1>'),nI=E('<div class="sh3-title svelte-foqg2v"></div>');function rI(e,t){ae(t,!0);const n="`.-':;,^\"~=+<>*?!/\\|()[]{}x1ltzrcvunsXYUJCLQ0OZmwqpdbkhao*#MW&8%B@$",r=64,s=Math.floor(64/(442/193)),a=8,o=7,l=80,c=r*a,u=s*o,d=l/u;let f=U(void 0),v=null,m=U(!1);const S=()=>y=>{const I=getComputedStyle(document.documentElement).getPropertyValue("--sh3-accent").trim();let P,L,R=!1;y.setup=()=>{y.createCanvas(c,u),y.noSmooth(),y.noStroke(),y.textAlign(y.CENTER,y.CENTER),y.textFont("monospace"),y.textSize(10),y.textStyle(y.BOLD),L=y.loadImage(Q3,()=>{P=y.createGraphics(r,s),P.pixelDensity(1),P.image(L,0,0,r,s),P.loadPixels(),R=!0},()=>{k(m,!0)})},y.draw=()=>{if(!R)return;const M=y.millis()*.001;let O;y.clear(),y.background(0,0),y.fill(I);for(let T=0;T<s;T++)for(let D=0;D<r;D++){const j=(T*r+D)*4;if(P.pixels[j]<64){if(O=y.noise(D/r*2,T/s*2,M*.15),O>.33)continue;y.text(n[Math.floor(O*n.length*.25)],(D+.5)*a,(T+.5)*o);continue}O=y.noise(D/r*4,T/s*4,M*.5),y.text(n[Math.floor(O*n.length)],(D+.5)*a,(T+.5)*o)}}};Ie(()=>{if(i(m))return;let y=!1;return eI().then(C=>{if(!(y||!i(f)))try{v=new C(S(),i(f))}catch(I){console.error("[Sh3Title] p5 sketch failed to start",I),k(m,!0)}}).catch(C=>{console.error("[Sh3Title] failed to load p5 from CDN",C),k(m,!0)}),()=>{y=!0,v&&(v.remove(),v=null)}});var g=Me(),b=fe(g);{var A=y=>{var C=tI();x(y,C)},w=y=>{var C=nI();We(C,"",{},{width:"216.7195767195767px",height:"80px","--sh3-title-scale":d}),Oe(C,I=>k(f,I),()=>i(f)),x(y,C)};W(b,y=>{i(m)?y(A):y(w,-1)})}x(e,g),ie()}async function Rr(e,t){const n=await fetch(e,{credentials:"include",...t});if(!n.ok)throw new Error(`${t?.method??"GET"} ${e} failed: ${n.status}`);return n.json()}const Ba={async list(){return(await Rr("/api/projects",{method:"GET"})).projects},async listAll(){return(await Rr("/api/projects/all",{method:"GET"})).projects},async get(e){return Rr(`/api/projects/${encodeURIComponent(e)}`,{method:"GET"})},async create(e){return Rr("/api/projects",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e)})},async update(e,t){return Rr(`/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 Rr(`/api/projects/${encodeURIComponent(e)}${n}`,{method:"DELETE"})}};var sI=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 aI(e,t){ae(t,!0);let n=U(void 0),r=U(!1),s=U(!1);Ie(()=>{i(n)?.focus()});async function a(){if(!i(r)){k(r,!0);try{await t.onConfirm({wipeData:i(s)})}finally{t.close()}}}function o(){i(r)||(t.onCancel?.(),t.close())}var l=sI(),c=p(l),u=p(c);h(c);var d=_(c,4),f=p(d);xe(f);var v=_(f,2),m=_(p(v)),S=p(m);h(m),h(v),h(d);var g=_(d,2),b=p(g);Oe(b,w=>k(n,w),()=>i(n));var A=_(b,2);h(g),h(l),N(()=>{z(u,`Delete project '${t.projectName??""}'?`),f.disabled=i(r),z(S,`<dataDir>/docs/${t.projectId??""}/`),b.disabled=i(r),A.disabled=i(r)}),Cs(f,()=>i(s),w=>k(s,w)),K("click",b,o),K("click",A,a),x(e,l),ie()}me(["click"]);var iI=E('<p class="project-id svelte-1oy3640">ID: <code class="svelte-1oy3640"> </code></p>'),oI=E('<span class="hint svelte-1oy3640">Your id: <code class="svelte-1oy3640"> </code> </span>'),lI=E('<p class="error svelte-1oy3640"> </p>'),cI=E('<button type="button" class="danger svelte-1oy3640">Delete</button>'),uI=E('<div class="project-manage svelte-1oy3640"><div class="body svelte-1oy3640"><h2 class="svelte-1oy3640"> </h2> <!> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">Name</span> <input type="text" placeholder="Acme Website" class="svelte-1oy3640"/></label> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">Description</span> <textarea class="svelte-1oy3640"></textarea></label> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">Members</span> <!> <!></label> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">App allowlist</span> <!></label> <!></div> <div class="actions svelte-1oy3640"><button type="button" class="primary svelte-1oy3640"> </button> <button type="button" class="svelte-1oy3640">Cancel</button> <!></div></div>');function dI(e,t){ae(t,!0);let n=te(t,"project",3,null);const r=V(()=>n()!==null),s=V(ts);let a=U(ve(Se(()=>n()?.name??""))),o=U(ve(Se(()=>n()?.description??""))),l=U(ve(Se(()=>{if(n())return[...n().members];const Q=ts()?.id;return Q?[Q]:[]}))),c=U(ve(Se(()=>n()?[...n().appAllowlist]:[]))),u=U(!1),d=U(null);async function f(){if(!i(a).trim()){k(d,"Name is required");return}k(u,!0),k(d,null);const Q={name:i(a).trim(),description:i(o).trim()||void 0,members:i(l),appAllowlist:i(c)};try{i(r)&&n()?await Ba.update(n().id,Q):await Ba.create(Q),await vi(),t.onClose()}catch(F){k(d,F.message,!0)}finally{k(u,!1)}}function v(){if(!i(r)||!n())return;const Q=n();nn.open(aI,{projectName:Q.name,projectId:Q.id,onConfirm:async({wipeData:F})=>{k(u,!0),k(d,null);try{await Ba.delete(Q.id,{wipeData:F}),await vi(),t.onClose()}catch(H){k(d,H.message,!0)}finally{k(u,!1)}}})}var m=uI(),S=p(m),g=p(S),b=p(g,!0);h(g);var A=_(g,2);{var w=Q=>{var F=iI(),H=_(p(F)),ee=p(H,!0);h(H),h(F),N(()=>z(ee,n().id)),x(Q,F)};W(A,Q=>{i(r)&&Q(w)})}var y=_(A,2),C=_(p(y),2);xe(C),h(y);var I=_(y,2),P=_(p(I),2);Nl(P),re(P,"rows",2),h(I);var L=_(I,2),R=_(p(L),2);np(R,{get disabled(){return i(u)},get value(){return i(l)},set value(Q){k(l,Q,!0)}});var M=_(R,2);{var O=Q=>{var F=oI(),H=_(p(F)),ee=p(H,!0);h(H);var J=_(H);h(F),N(()=>{z(ee,i(s).id),z(J,` (${i(s).username??i(s).displayName??""})`)}),x(Q,F)};W(M,Q=>{i(s)&&Q(O)})}h(L);var T=_(L,2),D=_(p(T),2);tp(D,{get disabled(){return i(u)},get value(){return i(c)},set value(Q){k(c,Q,!0)}}),h(T);var j=_(T,2);{var B=Q=>{var F=lI(),H=p(F,!0);h(F),N(()=>z(H,i(d))),x(Q,F)};W(j,Q=>{i(d)&&Q(B)})}h(S);var Y=_(S,2),Z=p(Y),q=p(Z,!0);h(Z);var X=_(Z,2),$=_(X,2);{var G=Q=>{var F=cI();N(()=>F.disabled=i(u)),K("click",F,v),x(Q,F)};W($,Q=>{i(r)&&Q(G)})}h(Y),h(m),N(()=>{z(b,i(r)?`Edit ${n().name}`:"Create Project"),C.disabled=i(u),P.disabled=i(u),Z.disabled=i(u),z(q,i(r)?"Save":"Create"),X.disabled=i(u)}),Te(C,()=>i(a),Q=>k(a,Q)),Te(P,()=>i(o),Q=>k(o,Q)),K("click",Z,f),K("click",X,function(...Q){t.onClose?.apply(this,Q)}),x(e,m),ie()}me(["click"]);const Gt=ve({projects:[],loading:!1,error:null});async function vi(){Gt.loading=!0,Gt.error=null;try{Gt.projects=await Ba.list()}catch(e){Gt.error=e.message}finally{Gt.loading=!1}}const ml="projects:manage";let bl=null;function fI(){const e=bl;return bl=null,e}function gl(e){bl=e,Pe.open(ml,{title:e?`Edit ${e.name}`:"Create Project",size:{w:560,h:620},dismissable:!0})}const ip={manifest:{id:"__projects__",label:"Projects",version:_n,views:[{id:ml,label:"Project Manager"}]},activate(e){vi(),typeof document<"u"&&document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&vi()});const t={mount(r,s){const a=fI(),o=Pe.list(),l=o.length>0?o[o.length-1].id:null,u=Ke(dI,{target:r,props:{project:a,onClose:()=>{l&&Pe.close(l)}}});return{unmount(){tt(u)}}}};e.registerView(ml,t),e.actions.register({id:"sh3.project.create",label:"Create Project…",scope:["home","app"],paletteItem:!0,disabled:()=>!Tt(),run:()=>{Tt()&&gl(null)}}),e.actions.register({id:"sh3.project.manage",label:"Manage Project…",scope:["home","app"],submenu:!0,paletteItem:!0,disabled:()=>!Tt()});const n=new Map;os(()=>{Ie(()=>{const r=new Set;for(const s of Gt.projects){if(r.add(s.id),n.has(s.id))continue;const a=e.actions.register({id:`sh3.project.manage:${s.id}`,label:s.name,scope:["home","app"],submenuOf:"sh3.project.manage",run:()=>{const o=Gt.projects.find(l=>l.id===s.id);o&&gl(o)}});n.set(s.id,a)}for(const s of[...n.keys()])r.has(s)||(n.get(s)(),n.delete(s))})})},autostart(){}};var vI=E('<button type="button" class="project-card-edit svelte-yosqc3" aria-label="Edit project" title="Edit project">⚙</button>'),hI=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>'),pI=E('<section class="projects-section svelte-yosqc3"><h2 class="projects-heading svelte-yosqc3">Projects</h2> <div class="projects-grid svelte-yosqc3"></div></section>');function mI(e,t){ae(t,!0);const n=V(()=>Gt.projects.length>0),r=V(()=>wr.activeProjectId),s=V(Tt);function a(d){hh(i(r)===d?null:d)}function o(d,f){f.stopPropagation();const v=Gt.projects.find(m=>m.id===d)??null;v&&gl(v)}var l=Me(),c=fe(l);{var u=d=>{var f=pI(),v=_(p(f),2);be(v,21,()=>Gt.projects,m=>m.id,(m,S)=>{var g=hI(),b=p(g);let A;var w=p(b),y=p(w,!0);h(w);var C=_(w,2),I=p(C);h(C),h(b);var P=_(b,2);{var L=R=>{var M=vI();K("click",M,O=>o(i(S).id,O)),x(R,M)};W(P,R=>{i(s)&&R(L)})}h(g),N(()=>{A=he(b,1,"project-card svelte-yosqc3",null,A,{active:i(r)===i(S).id}),re(b,"title",i(S).description??`${i(S).members.length} member${i(S).members.length===1?"":"s"}`),z(y,i(S).name),z(I,`${i(S).members.length??""} member${i(S).members.length===1?"":"s"}`)}),K("click",b,()=>a(i(S).id)),x(m,g)}),h(v),h(f),x(d,f)};W(c,d=>{i(n)&&d(u)})}x(e,l),ie()}me(["click"]);let At=null;function bI(e){At=e}function gI(){At=null}function xr(){return At?.user.layouts??[]}function yI(e){At&&(At.user.layouts=[...At.user.layouts,e])}function op(e,t){if(!At)return;const n=At.user.layouts.findIndex(s=>s.id===e);if(n<0)return;const r=[...At.user.layouts];r[n]={...r[n],...t},At.user.layouts=r}function _I(e){At&&(At.user.layouts=At.user.layouts.filter(t=>t.id!==e))}function wI(){At={ephemeral:{},session:{},workspace:{},user:{layouts:[]}}}wI();function eo(e,t){if(e.type==="slot")return e.viewId===null||!t(e.viewId)?null:e;if(e.type==="tabs"){const s=[];let a=!1,o=0;for(let l=0;l<e.tabs.length;l++){const c=e.tabs[l];c.viewId!==null&&t(c.viewId)&&(l===e.activeTab&&(a=!0,o=s.length),s.push(c))}return s.length===0?null:{type:"tabs",tabs:s,activeTab:a?o:0}}const n=[],r=[];for(let s=0;s<e.children.length;s++){const a=eo(e.children[s],t);a!==null&&(n.push(a),r.push(e.sizes[s]??1))}return n.length===0?null:n.length===1?n[0]:{type:"split",direction:e.direction,sizes:r,children:n}}function lp(e){return JSON.parse(JSON.stringify(e))}function kI(e,t){const n=Pe.list().find(s=>s.id===e);if(!n)return null;const r=eo(n.content,t);return r===null?null:{size:{w:n.size.w,h:n.size.h},content:lp(r)}}function cp(e,t,n){const r=eo(e.content,t);return r===null?(n(`Saved layout "${e.name}" has no available standalone views`,"warn"),""):Pe.openWithContent({content:lp(r),size:{w:e.size.w,h:e.size.h},title:e.name})}var xI=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>'),SI=E('<section class="saved-layouts-section svelte-1ncltuf"><h2 class="saved-layouts-heading svelte-1ncltuf">Saved Layouts</h2> <div class="saved-layouts-grid svelte-1ncltuf"></div></section>');function II(e,t){ae(t,!0);const n=V(xr),r=Bi("__layouts__");function s(f){return Ys().some(v=>v.viewId===f)}function a(f,v){An.notify(f,{level:v})}function o(f){const v=xr().find(m=>m.id===f);v&&cp(v,s,a)}function l(f,v){f.preventDefault(),r.set({type:"saved-layout",ref:{layoutId:v}}),xt.actions.openContextMenu({x:f.clientX,y:f.clientY,scope:{element:"saved-layout"}})}var c=Me(),u=fe(c);{var d=f=>{var v=SI(),m=_(p(v),2);be(m,21,()=>i(n),S=>S.id,(S,g)=>{var b=xI();let A,w;var y=p(b),C=p(y),I=p(C);h(C),h(y);var P=_(y,2),L=p(P,!0);h(P),h(b),N(()=>{A=he(b,1,"saved-layout-card svelte-1ncltuf",null,A,{"saved-layout-card--tinted":i(g).appearance?.color}),re(b,"data-saved-layout-id",i(g).id),w=We(b,"",w,{"--card-color":i(g).appearance?.color??"transparent"}),re(I,"href",`${Qn}#${i(g).appearance?.icon??"eye"??""}`),z(L,i(g).name)}),K("click",b,()=>o(i(g).id)),K("contextmenu",b,R=>l(R,i(g).id)),x(S,b)}),h(m),h(v),x(f,v)};W(u,f=>{i(n).length>0&&f(d)})}x(e,c),ie()}me(["click","contextmenu"]);const Zu=["activity","align-horizontal-justify-center","align-horizontal-justify-end","align-horizontal-justify-start","app-window","archive","archive-restore","axis-3d","box","brick-wall","bug","building-2","cable","calendar","camera","check","chevron-down","chevron-right","circle-check","circle-dot","circle-minus","circle-x","clipboard","clipboard-paste","clock","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 EI=E('<span class="sh3-icon-picker__label svelte-h9dluc"> </span>'),AI=E('<button type="button"><svg viewBox="0 0 24 24" class="svelte-h9dluc"><use></use></svg></button>'),CI=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 TI(e,t){ae(t,!0);let n=te(t,"value",15,void 0),r=te(t,"disabled",3,!1),s=U("");const a=V(()=>i(s).trim()===""?Zu:Zu.filter(b=>b.includes(i(s).trim().toLowerCase())));function o(b){r()||(n(b),t.onchange?.(b))}var l=CI();let c;var u=p(l);{var d=b=>{var A=EI(),w=p(A,!0);h(A),N(()=>z(w,t.label)),x(b,A)};W(u,b=>{t.label&&b(d)})}var f=_(u,2);xe(f);var v=_(f,2),m=p(v);let S;var g=_(m,2);be(g,16,()=>i(a),b=>b,(b,A)=>{var w=AI();let y;var C=p(w),I=p(C);h(C),h(w),N(()=>{y=he(w,1,"sh3-icon-picker__tile svelte-h9dluc",null,y,{"sh3-icon-picker__tile--selected":n()===A}),re(w,"aria-label",A),re(w,"title",A),w.disabled=r(),re(I,"href",`${Qn}#${A??""}`)}),K("click",w,()=>o(A)),x(b,w)}),h(v),h(l),N(()=>{c=he(l,1,"sh3-icon-picker svelte-h9dluc",null,c,{"sh3-icon-picker--disabled":r()}),f.disabled=r(),S=he(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()}),Te(f,()=>i(s),b=>k(s,b)),K("click",m,()=>o(void 0)),x(e,l),ie()}me(["click"]);var RI=E('<em class="svelte-1v8d4f6">(empty = default)</em>'),LI=E('<button type="button" class="link svelte-1v8d4f6">Change icon</button>'),MI=E('<!> <button type="button" class="link link--align-right svelte-1v8d4f6">Hide picker</button>',1),PI=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 up(e,t){ae(t,!0);const n=Se(()=>t.initialAppearance);let r=U(ve(n?.icon)),s=U(ve(n?.color)),a=U(ve(Se(()=>t.entityLabel))),o=U(n?.icon!==void 0);const l=V(()=>i(a).trim()),c=V(()=>t.requireLabel&&i(l)===""),u=V(()=>i(l)===""?t.entityLabel:i(l)),d=V(()=>i(r)??t.defaultIcon),f=V(()=>n!==void 0);function v(){i(c)||(t.onSave({label:i(l),icon:i(r),color:i(s)}),t.close())}function m(){t.onReset(),t.close()}var S=PI(),g=p(S),b=p(g);h(g);var A=_(g,2),w=p(A);let y,C;var I=p(w),P=p(I),L=p(P);h(P),h(I);var R=_(I,2),M=p(R,!0);h(R),h(w),h(A);var O=_(A,2),T=p(O),D=_(p(T));{var j=J=>{var ce=RI();x(J,ce)};W(D,J=>{t.requireLabel||J(j)})}h(T);var B=_(T,2);xe(B),h(O);var Y=_(O,2),Z=_(p(Y),2);{var q=J=>{var ce=LI();K("click",ce,()=>k(o,!0)),x(J,ce)},X=J=>{var ce=MI(),de=fe(ce);TI(de,{get value(){return i(r)},set value(le){k(r,le,!0)}});var ne=_(de,2);K("click",ne,()=>k(o,!1)),x(J,ce)};W(Z,J=>{i(o)?J(X,-1):J(q)})}h(Y);var $=_(Y,2),G=_(p($),2);{let J=V(()=>i(s)??"#888888");$h(G,{get value(){return i(J)},onchange:ce=>k(s,ce,!0)})}h($);var Q=_($,2),F=p(Q),H=_(F,2),ee=_(H,2);h(Q),h(S),N(()=>{z(b,`Customize ${t.entityLabel??""}`),y=he(w,1,"preview-card svelte-1v8d4f6",null,y,{"preview-card--tinted":i(s)!==void 0}),C=We(w,"",C,{"--card-color":i(s)??"transparent"}),re(L,"href",`${Qn}#${i(d)??""}`),z(M,i(u)),re(B,"placeholder",t.entityLabel),F.disabled=i(c),H.disabled=!i(f)}),Te(B,()=>i(a),J=>k(a,J)),K("click",F,v),K("click",H,m),K("click",ee,()=>t.close()),x(e,S),ie()}me(["click"]);let cr=null;function DI(e){cr=e}function zI(){cr=null}function dp(e){return e.icon===void 0&&e.color===void 0&&e.label===void 0}function yl(e){const t=cr?.user.overrides;if(!t)return;const n=t[e];if(n&&!dp(n))return n}function Qu(e,t){if(!cr)return;const r={...cr.user.overrides};t===void 0||dp(t)?delete r[e]:r[e]=t,cr.user.overrides=r}function jI(){cr={ephemeral:{},session:{},workspace:{},user:{overrides:{}}}}jI();function OI(){const e=ma();return!e||e.type!=="app"?null:e.ref}function NI(e){const t=OI();if(!t)return;const n=us().find(l=>l.id===t.appId),r=n?.label??t.appId,s=n?.icon??"box",a=yl(t.appId),o={entityLabel:a?.label??r,initialAppearance:a,defaultIcon:s,requireLabel:!1,onSave:l=>{Qu(t.appId,{label:l.label===""?void 0:l.label,icon:l.icon,color:l.color})},onReset:()=>Qu(t.appId,void 0)};nn.open(up,o)}const fp={manifest:{id:"__app-appearance__",label:"App Appearance",version:_n,views:[]},activate(e){const t=e.state({user:{overrides:{}}});DI(t);const n={id:"app.customize",label:"Customize…",scope:{element:"app"},contextItem:!0,group:"appearance",run:NI};e.actions.register(n)},autostart(){},deactivate(){zI()}};var qI=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>'),BI=E('<section class="sh3-home-section svelte-11gxeaw"><h2 class="sh3-home-section-title svelte-11gxeaw">Apps</h2> <div class="sh3-home-grid svelte-11gxeaw"></div></section>'),FI=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>'),VI=E('<section class="sh3-home-section svelte-11gxeaw"><h2 class="sh3-home-section-title svelte-11gxeaw">Admin</h2> <div class="sh3-home-grid svelte-11gxeaw"></div></section>'),UI=E('<p class="sh3-home-empty svelte-11gxeaw"><!></p>'),HI=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 KI(e,t){ae(t,!0);const n=Bi("__sh3core__");function r(j,B){j.preventDefault(),n.set({type:"app",ref:{appId:B}}),xt.actions.openContextMenu({x:j.clientX,y:j.clientY,scope:{element:"app"}})}let s=U("");const a=V(us),o=V(Tt),l=V(()=>wr.activeProjectId?Gt.projects.find(j=>j.id===wr.activeProjectId)??null:null);function c(j,B){if(!B)return!0;const Y=B.toLowerCase();return j.label.toLowerCase().includes(Y)||j.id.toLowerCase().includes(Y)}function u(j){return i(l)?i(l).appAllowlist.includes(j):!0}const d=V(()=>i(a).filter(j=>!j.admin&&c(j,i(s))&&u(j.id))),f=V(()=>i(a).filter(j=>j.admin&&c(j,i(s)))),v=V(()=>i(d).length+(i(o)?i(f).length:0));var m=HI(),S=p(m),g=p(S),b=p(g);rI(b,{});var A=_(b,2),w=p(A);h(A),yt(2),h(g),yt(2),h(S);var y=_(S,2),C=p(y);xe(C),h(y);var I=_(y,2);mI(I,{});var P=_(I,2);II(P,{});var L=_(P,2);{var R=j=>{var B=BI(),Y=_(p(B),2);be(Y,21,()=>i(d),Z=>Z.id,(Z,q)=>{const X=V(()=>yl(i(q).id));var $=qI();let G,Q;var F=p($),H=p(F),ee=p(H);h(H),h(F);var J=_(F,2),ce=p(J,!0);h(J),h($),N(()=>{G=he($,1,"sh3-home-card svelte-11gxeaw",null,G,{"sh3-home-card--tinted":i(X)?.color}),Q=We($,"",Q,{"--card-color":i(X)?.color??"transparent"}),re(ee,"href",`${Qn}#${i(X)?.icon??i(q).icon??"box"??""}`),z(ce,i(X)?.label??i(q).label)}),K("click",$,()=>Fn(i(q).id)),K("contextmenu",$,de=>r(de,i(q).id)),x(Z,$)}),h(Y),h(B),x(j,B)};W(L,j=>{i(d).length>0&&j(R)})}var M=_(L,2);{var O=j=>{var B=VI(),Y=_(p(B),2);be(Y,21,()=>i(f),Z=>Z.id,(Z,q)=>{const X=V(()=>yl(i(q).id));var $=FI();let G,Q;var F=p($),H=p(F),ee=p(H);h(H),h(F);var J=_(F,2),ce=p(J,!0);h(J),h($),N(()=>{G=he($,1,"sh3-home-card svelte-11gxeaw",null,G,{"sh3-home-card--tinted":i(X)?.color}),Q=We($,"",Q,{"--card-color":i(X)?.color??"transparent"}),re(ee,"href",`${Qn}#${i(X)?.icon??i(q).icon??"box"??""}`),z(ce,i(X)?.label??i(q).label)}),K("click",$,()=>Fn(i(q).id)),K("contextmenu",$,de=>r(de,i(q).id)),x(Z,$)}),h(Y),h(B),x(j,B)};W(M,j=>{i(o)&&i(f).length>0&&j(O)})}var T=_(M,2);{var D=j=>{var B=UI(),Y=p(B);{var Z=X=>{var $=vn("No apps registered.");x(X,$)},q=X=>{var $=vn();N(()=>z($,`No apps match “${i(s)??""}”.`)),x(X,$)};W(Y,X=>{i(a).length===0?X(Z):X(q,-1)})}h(B),x(j,B)};W(T,j=>{i(v)===0&&j(D)})}h(m),N(()=>z(w,`v${_n}`)),Te(C,()=>i(s),j=>k(s,j)),x(e,m),ie()}me(["click","contextmenu"]);var WI=E('<p class="keys-peers-muted svelte-1s56qq">Loading...</p>'),YI=E('<p class="keys-peers-error svelte-1s56qq"> </p>'),XI=E('<p class="keys-peers-muted svelte-1s56qq">No keys yet. Shards will ask your permission before creating one.</p>'),GI=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),JI=E('<button type="button" class="keys-peers-btn-danger svelte-1s56qq">Revoke</button>'),ZI=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>'),QI=E('<ul class="keys-peers-list svelte-1s56qq"></ul>'),$I=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 eE(e,t){ae(t,!0);let n=U(ve([])),r=U(null),s=U(!0),a=U(null);async function o(){k(r,null),k(s,!0);try{const g=await Re(`${st()}/api/keys`);if(!g.ok)throw new Error(`HTTP ${g.status}`);k(n,await g.json(),!0)}catch(g){k(r,g instanceof Error?g.message:String(g),!0)}finally{k(s,!1)}}async function l(g){k(a,null);const b=await Re(`${st()}/api/keys/${encodeURIComponent(g)}`,{method:"DELETE"});(b.ok||b.status===404)&&k(n,i(n).filter(A=>A.id!==g),!0)}function c(g){return new Date(g).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}Ie(()=>{o()}),Ie(()=>Tc("*",()=>{o()}));var u=$I(),d=_(p(u),2);{var f=g=>{var b=WI();x(g,b)},v=g=>{var b=YI(),A=p(b);h(b),N(()=>z(A,`Failed to load: ${i(r)??""}`)),x(g,b)},m=g=>{var b=XI();x(g,b)},S=g=>{var b=QI();be(b,21,()=>i(n),A=>A.id,(A,w)=>{var y=ZI(),C=p(y),I=p(C),P=p(I,!0);h(I);var L=_(I,2),R=p(L);h(L);var M=_(L,2),O=p(M);h(M);var T=_(M,2),D=p(T);h(T),h(C);var j=_(C,2),B=p(j);{var Y=q=>{var X=GI(),$=fe(X),G=_($,2);K("click",$,()=>l(i(w).id)),K("click",G,()=>{k(a,null)}),x(q,X)},Z=q=>{var X=JI();K("click",X,()=>{k(a,i(w).id,!0)}),x(q,X)};W(B,q=>{i(a)===i(w).id?q(Y):q(Z,-1)})}h(j),h(y),N((q,X,$)=>{z(P,i(w).label),z(R,`Minted by: ${i(w).mintedByShardId??"system"??""}${i(w).peerRole||i(w).peerId?` · Peer: ${i(w).peerRole??"—"}${i(w).peerId?` (${i(w).peerId})`:""}`:""}`),z(O,`Scopes: ${q??""}`),z(D,`Created: ${X??""} · Expires: ${$??""}`)},[()=>i(w).scopes.join(", "),()=>c(i(w).createdAt),()=>i(w).expiresAt?c(i(w).expiresAt):"never"]),x(A,y)}),h(b),x(g,b)};W(d,g=>{i(s)?g(f):i(r)?g(v,1):i(n).length===0?g(m,2):g(S,-1)})}h(u),x(e,u),ie()}me(["click"]);var tE=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 vp(e,t){ae(t,!0);let n=te(t,"confirmLabel",3,"Confirm"),r=te(t,"cancelLabel",3,"Cancel"),s=te(t,"confirmTone",3,"default"),a=U(void 0),o=U(!1);Ie(()=>{i(a)?.focus()});async function l(){if(!i(o)){k(o,!0);try{await t.onConfirm()}finally{t.close()}}}function c(){i(o)||(t.onCancel?.(),t.close())}var u=tE(),d=p(u),f=p(d,!0);h(d);var v=_(d,2),m=p(v,!0);h(v);var S=_(v,2),g=p(S),b=p(g,!0);h(g),Oe(g,C=>k(a,C),()=>i(a));var A=_(g,2);let w;var y=p(A,!0);h(A),h(S),h(u),N(()=>{z(f,t.title),z(m,t.body),g.disabled=i(o),z(b,r()),w=he(A,1,"confirm-dialog-btn svelte-1k1962w",null,w,{"confirm-dialog-btn-danger":s()==="danger","confirm-dialog-btn-default":s()==="default"}),A.disabled=i(o),z(y,n())}),K("click",g,c),K("click",A,l),x(e,u),ie()}me(["click"]);const $u=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 Io(e,t){const n=Object.keys(t),r=n.filter(o=>!$u.has(o)),s=n.filter(o=>$u.has(o)),a=[`const __m__ = globalThis.${e};`];r.length>0&&a.push(`export const { ${r.join(", ")} } = __m__;`);for(const o of s)a.push(`const __r_${o}__ = __m__['${o}']; export { __r_${o}__ as ${o} };`);return a.push("export default __m__.default;"),URL.createObjectURL(new Blob([a.join(`
11
+ `)],{type:"application/javascript"}))}const Dc=globalThis;Dc.__sh3__=ap;Dc.__sh3_svelte__=Jf;Dc.__sh3_svelte_internal_client__=cv;const zc={"sh3-core":Io("__sh3__",ap),svelte:Io("__sh3_svelte__",Jf),"svelte/internal/client":Io("__sh3_svelte_internal_client__",cv)};zc["svelte/internal/disclose-version"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));zc["sh3-core/tokens.css"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));const nE=/(?:from|import)\s*(['"])(sh3-core(?:\/[^'"]*)?|svelte(?:\/[^'"]*)?)\1/g;function rE(e){return e.replace(nE,(t,n,r)=>{const s=zc[r];return s?`${t.startsWith("from")?"from":"import"} '${s}'`:t})}async function ba(e){const t=new TextDecoder().decode(e),n=rE(t),r=new Blob([n],{type:"application/javascript"}),s=URL.createObjectURL(r);try{const a=await import(s),o={shards:[],apps:[]};for(const l of Object.values(a)){if(!l||typeof l!="object"||!("manifest"in l))continue;const c=l;sE(c)?o.shards.push(c):aE(c)&&o.apps.push(c)}if(o.shards.length===0&&o.apps.length===0)throw new Error('Bundle has no exports with a "manifest" property — expected at least one shard or app');return o}finally{URL.revokeObjectURL(s)}}function sE(e){return"activate"in e&&typeof e.activate=="function"&&Array.isArray(e.manifest.views)}function aE(e){return"initialLayout"in e&&Array.isArray(e.manifest.requiredShards)}const iE="sh3-packages",oE=1,Gs="bundles",ns="meta";function ga(){return new Promise((e,t)=>{const n=indexedDB.open(iE,oE);n.onupgradeneeded=()=>{const r=n.result;r.objectStoreNames.contains(Gs)||r.createObjectStore(Gs),r.objectStoreNames.contains(ns)||r.createObjectStore(ns)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}function Sr(e,t,n,r){return new Promise((s,a)=>{const l=e.transaction(t,n).objectStore(t),c=r(l);c.onsuccess=()=>s(c.result),c.onerror=()=>a(c.error)})}async function hp(e,t,n){const r=await ga();await Sr(r,Gs,"readwrite",s=>s.put(t,e)),await Sr(r,ns,"readwrite",s=>s.put(n,e)),r.close()}async function pp(e){const t=await ga(),n=await Sr(t,Gs,"readonly",r=>r.get(e));return t.close(),n??null}async function lE(e){const t=await ga(),n=await Sr(t,ns,"readonly",r=>r.get(e));return t.close(),n??null}async function mp(){const e=await ga(),t=await Sr(e,ns,"readonly",n=>n.getAll());return e.close(),t??[]}async function cE(e){const t=await ga();await Sr(t,Gs,"readwrite",n=>n.delete(e)),await Sr(t,ns,"readwrite",n=>n.delete(e)),t.close()}function jc(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},qs(n)}const uE={"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."},"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 Eo(e){return uE[e]??{title:e,description:"Unknown permission."}}function Oc(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 Nc(e,t,n){if(!t.integrity)return{success:!1,hotLoaded:!1,error:"Missing integrity hash — refusing to install unverified bundle"};try{await Rc(e,t.integrity)}catch(o){return{success:!1,hotLoaded:!1,error:`Integrity check failed: ${o instanceof Error?o.message:String(o)}`}}let r;if(n?.loaded)r=n.loaded;else try{r=await ba(e)}catch(o){return{success:!1,hotLoaded:!1,error:`Failed to load bundle: ${o instanceof Error?o.message:String(o)}`}}if(t.type==="shard"&&r.shards.length===0)return{success:!1,hotLoaded:!1,error:`Package "${t.id}" declared type "shard" but bundle contains no valid shard`};if(t.type==="app"&&r.apps.length===0)return{success:!1,hotLoaded:!1,error:`Package "${t.id}" declared type "app" but bundle contains no valid app`};const s={id:t.id,type:t.type,version:t.version,sourceRegistry:t.sourceRegistry,contractVersion:t.contractVersion,installedAt:new Date().toISOString(),permissions:Oc(r)};try{await hp(t.id,e,s)}catch(o){return{success:!1,hotLoaded:!1,error:`Failed to persist package: ${o instanceof Error?o.message:String(o)}`}}if(t.type==="shard"||t.type==="combo")try{Gi(t.id)}catch{}(t.type==="app"||t.type==="combo")&&wc(t.id);let a=!0;try{jc(r,{version:t.version,sourceRegistry:t.sourceRegistry,contractVersion:t.contractVersion})}catch(o){console.warn(`[sh3] Package "${t.id}" installed but registration failed (will retry on next boot):`,o instanceof Error?o.message:o),a=!1}return{success:!0,package:s,hotLoaded:a}}async function dE(e){try{Gi(e)}catch{}wc(e),await cE(e)}async function fE(){return mp()}async function bp(){let e;try{e=await mp()}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 pp(t.id);if(!n){console.warn(`[sh3] No bundle found for installed package "${t.id}", skipping`);continue}const r=await ba(n);jc(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 vE(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 a=r.index;if(t.some(o=>Math.abs(o-a)<=200))return["raw fetch() call with /api/ path — use ctx.fetch() for cross-origin compatibility"]}return[]}const ed={version:1};var hE=E('<span class="perm-modal-author svelte-1ipp1r6"> </span>'),pE=E('<p class="perm-modal-empty svelte-1ipp1r6">This package requires no special permissions.</p>'),mE=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>'),bE=E('<p class="perm-modal-intro svelte-1ipp1r6">This package requests the following permissions:</p> <ul class="perm-modal-list svelte-1ipp1r6"></ul>',1),gE=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>'),yE=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),_E=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>'),wE=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),kE=E("<!> <!>",1),xE=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>'),SE=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),IE=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 _l(e,t){ae(t,!0);const n=te(t,"permissions",19,()=>[]),r=te(t,"added",19,()=>[]),s=te(t,"removed",19,()=>[]),a=te(t,"warnings",19,()=>[]),o=V(()=>t.mode==="install"?"Install":"Update");var l=IE(),c=p(l),u=p(c),d=p(u),f=p(d);h(d);var v=_(d,2),m=p(v);{var S=D=>{var j=vn();N(()=>z(j,`${t.fromVersion??""} → ${t.pkg.version??""}`)),x(D,j)},g=D=>{var j=vn();N(()=>z(j,`v${t.pkg.version??""}`)),x(D,j)};W(m,D=>{t.mode==="update"&&t.fromVersion?D(S):D(g,-1)})}var b=_(m,2);{var A=D=>{var j=hE(),B=p(j);h(j),N(()=>z(B,`by ${t.pkg.author??""}`)),x(D,j)};W(b,D=>{t.pkg.author&&D(A)})}h(v),h(u);var w=_(u,2),y=p(w);{var C=D=>{var j=Me(),B=fe(j);{var Y=q=>{var X=pE();x(q,X)},Z=q=>{var X=bE(),$=_(fe(X),2);be($,20,n,G=>G,(G,Q)=>{const F=V(()=>Eo(Q));var H=mE(),ee=p(H),J=p(ee,!0);h(ee);var ce=_(ee,2),de=p(ce,!0);h(ce),h(H),N(()=>{z(J,i(F).title),z(de,i(F).description)}),x(G,H)}),h($),x(q,X)};W(B,q=>{n().length===0?q(Y):q(Z,-1)})}x(D,j)},I=D=>{var j=kE(),B=fe(j);{var Y=X=>{var $=yE(),G=_(fe($),2);be(G,20,r,Q=>Q,(Q,F)=>{const H=V(()=>Eo(F));var ee=gE(),J=p(ee),ce=p(J,!0);h(J);var de=_(J,2),ne=p(de,!0);h(de),h(ee),N(()=>{z(ce,i(H).title),z(ne,i(H).description)}),x(Q,ee)}),h(G),x(X,$)};W(B,X=>{r().length>0&&X(Y)})}var Z=_(B,2);{var q=X=>{var $=wE(),G=_(fe($),2);be(G,20,s,Q=>Q,(Q,F)=>{const H=V(()=>Eo(F));var ee=_E(),J=p(ee),ce=p(J,!0);h(J);var de=_(J,2),ne=p(de,!0);h(de),h(ee),N(()=>{z(ce,i(H).title),z(ne,i(H).description)}),x(Q,ee)}),h(G),x(X,$)};W(Z,X=>{s().length>0&&X(q)})}x(D,j)};W(y,D=>{t.mode==="install"?D(C):D(I,-1)})}var P=_(y,2);{var L=D=>{var j=SE(),B=_(fe(j),2);be(B,20,a,Y=>Y,(Y,Z)=>{var q=xE(),X=_(p(q),2),$=p(X,!0);h(X),h(q),N(()=>z($,Z)),x(Y,q)}),h(B),x(D,j)};W(P,D=>{a().length>0&&D(L)})}h(w);var R=_(w,2),M=p(R),O=_(M,2),T=p(O,!0);h(O),h(R),h(c),h(l),N(()=>{re(l,"aria-label",`${i(o)??""} ${t.pkg.label??""}`),z(f,`${i(o)??""} ${t.pkg.label??""}`),z(T,i(o))}),K("click",l,function(...D){t.onCancel?.apply(this,D)}),K("keydown",l,D=>{D.key==="Escape"&&t.onCancel()}),K("click",c,D=>D.stopPropagation()),K("click",M,function(...D){t.onCancel?.apply(this,D)}),K("click",O,function(...D){t.onConfirm?.apply(this,D)}),x(e,l),ie()}me(["click","keydown"]);function qc(e){return e==="shard"?"shard":"app"}function EE(e){return qc(e)==="shard"?"Shard":"App"}function AE(e,t){return t==="all"?!0:qc(e)===t}var CE=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>'),TE=E('<div class="store-registries svelte-1aafzt0"></div>'),RE=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>'),LE=E('<div class="store-error svelte-1aafzt0"> </div>'),ME=E('<div class="store-error svelte-1aafzt0"> </div>'),PE=E('<img alt="" class="store-icon-img svelte-1aafzt0"/>'),DE=E('<span class="store-icon-placeholder svelte-1aafzt0"> </span>'),zE=E('<div class="store-card-warning svelte-1aafzt0"> </div>'),jE=E('<button class="store-update-btn svelte-1aafzt0"> </button>'),OE=E('<span class="store-installed-label svelte-1aafzt0">Installed</span>'),NE=E('<span class="store-card-missing svelte-1aafzt0"> </span>'),qE=E('<div class="store-install-wrap svelte-1aafzt0"><button class="store-install-btn svelte-1aafzt0"> </button> <!></div>'),BE=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>'),FE=E("No packages found. <!>",1),VE=E('<div class="store-empty svelte-1aafzt0"><!></div>'),UE=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 HE(e,t){ae(t,!0);let n=U(""),r=U("all"),s=U(ve(new Set)),a=U(ve(new Set)),o=U(null),l=U(""),c=U(null),u=U(null);const d=lt;async function f(){const oe=i(l).trim();if(oe&&!d.env.registries.includes(oe))try{await d.addRegistry(oe),k(l,""),d.refreshCatalog(),d.refreshInstalled()}catch(se){k(o,se instanceof Error?se.message:String(se),!0)}}async function v(oe){try{await d.removeRegistry(oe),d.refreshCatalog()}catch(se){k(o,se instanceof Error?se.message:String(se),!0)}}const m=V(()=>{const oe=i(n).toLowerCase().trim();return d.state.ephemeral.catalog.filter(se=>AE(se.entry.type,i(r))?oe?se.entry.id.toLowerCase().includes(oe)||se.entry.label.toLowerCase().includes(oe)||se.entry.description.toLowerCase().includes(oe):!0:!1)});function S(oe){return d.state.ephemeral.installed.some(se=>se.id===oe)}function g(oe){return String(oe.latest.contractVersion)!==String(ed.version)}function b(oe){return oe in d.state.ephemeral.updatable}function A(oe){return d.state.ephemeral.installed.find(se=>se.id===oe)?.version??""}function w(oe,se){const Ee=oe.latest.requires?.map(ke=>ke.id)??[];if(Ee.length===0)return[];const ze=new Set(sp);for(const ke of se)(ke.type==="shard"||ke.type==="combo")&&ze.add(ke.id);return Ee.filter(ke=>!ze.has(ke))}async function y(oe){if(!i(a).has(oe)){k(a,new Set([...i(a),oe]),!0),k(o,null);try{await d.updatePackage(oe,(se,Ee)=>new Promise(ze=>{const ke=d.state.ephemeral.updatable[oe],je=d.state.ephemeral.installed.find(Ye=>Ye.id===oe);if(!ke||!je){ze(!0);return}k(u,{pkg:ke,fromVersion:je.version,added:se,removed:Ee,resolve:ze},!0)}))}catch(se){k(o,se instanceof Error?se.message:String(se),!0)}finally{const se=new Set(i(a));se.delete(oe),k(a,se,!0)}}}function C(){const oe=i(u);oe&&(k(u,null),oe.resolve(!0))}function I(){const oe=i(u);oe&&(k(u,null),oe.resolve(!1))}async function P(oe){const se=oe.entry.id;if(!i(s).has(se)){k(s,new Set([...i(s),se]),!0),k(o,null);try{const Ee=await Zi(oe.latest,oe.sourceRegistry),ze=Qi(oe,oe.latest),ke=await ba(Ee),je=Oc(ke);let Ye;oe.latest.serverBundleUrl&&(Ye=await Lc(oe.latest,oe.sourceRegistry));const Xe=new TextDecoder().decode(new Uint8Array(Ee)),rn=vE(Xe);k(c,{pkg:oe,permissions:je,loaded:ke,bundle:Ee,meta:ze,serverBundle:Ye,warnings:rn},!0)}catch(Ee){k(o,Ee instanceof Error?Ee.message:String(Ee),!0);const ze=new Set(i(s));ze.delete(se),k(s,ze,!0)}}}async function L(){const oe=i(c);if(!oe)return;k(c,null);const{pkg:se,loaded:Ee,bundle:ze,meta:ke,serverBundle:je}=oe,Ye=se.entry.id;try{const Xe={id:ke.id,type:ke.type,label:se.entry.label,version:ke.version,contractVersion:ke.contractVersion,sourceRegistry:ke.sourceRegistry,requiredShards:se.latest.requires?.map(dt=>dt.id)??[],installedAt:new Date().toISOString()},rn=await Cc(Xe,ze,je);if(!rn.ok){k(o,rn.error??"Server install failed",!0);return}const wn=await Nc(ze,ke,{loaded:Ee});wn.success||console.warn(`[sh3-store] Server install ok but local hot-load failed: ${wn.error}`),await d.refreshInstalled()}catch(Xe){k(o,Xe instanceof Error?Xe.message:String(Xe),!0)}finally{const Xe=new Set(i(s));Xe.delete(Ye),k(s,Xe,!0)}}function R(){if(!i(c))return;const oe=i(c).pkg.entry.id;k(c,null);const se=new Set(i(s));se.delete(oe),k(s,se,!0)}function M(){d.refreshCatalog(),d.refreshInstalled()}var O=UE(),T=fe(O),D=p(T),j=_(p(D),2),B=p(j);xe(B);var Y=_(B,2),Z=p(Y);Z.value=Z.__value="all";var q=_(Z);q.value=q.__value="shard";var X=_(q);X.value=X.__value="app",h(Y);var $=_(Y,2),G=p($,!0);h($),h(j),h(D);var Q=_(D,2);{var F=oe=>{var se=TE();be(se,21,()=>d.env.registries,ut,(Ee,ze)=>{var ke=CE(),je=p(ke),Ye=p(je,!0);h(je);var Xe=_(je,2);h(ke),N(()=>z(Ye,i(ze))),K("click",Xe,()=>v(i(ze))),x(Ee,ke)}),h(se),x(oe,se)};W(Q,oe=>{d.isAdmin&&d.env.registries.length>0&&oe(F)})}var H=_(Q,2);{var ee=oe=>{var se=RE(),Ee=p(se);xe(Ee);var ze=_(Ee,2);h(se),N(ke=>ze.disabled=ke,[()=>!i(l).trim()]),Ue("submit",se,ke=>{ke.preventDefault(),f()}),Te(Ee,()=>i(l),ke=>k(l,ke)),x(oe,se)};W(H,oe=>{d.isAdmin&&oe(ee)})}var J=_(H,2);{var ce=oe=>{var se=LE(),Ee=p(se,!0);h(se),N(()=>z(Ee,d.state.ephemeral.error)),x(oe,se)};W(J,oe=>{d.state.ephemeral.error&&oe(ce)})}var de=_(J,2);{var ne=oe=>{var se=ME(),Ee=p(se,!0);h(se),N(()=>z(Ee,i(o))),x(oe,se)};W(de,oe=>{i(o)&&oe(ne)})}var le=_(de,2);be(le,21,()=>i(m),oe=>oe.entry.id,(oe,se)=>{const Ee=V(()=>S(i(se).entry.id)),ze=V(()=>g(i(se))),ke=V(()=>i(s).has(i(se).entry.id)),je=V(()=>b(i(se).entry.id)),Ye=V(()=>i(a).has(i(se).entry.id)),Xe=V(()=>w(i(se),d.state.ephemeral.installed)),rn=V(()=>qc(i(se).entry.type));var wn=BE(),dt=p(wn),sn=p(dt),to=p(sn);{var fm=Ge=>{var Je=PE();N(()=>re(Je,"src",i(se).entry.icon)),x(Ge,Je)},vm=Ge=>{var Je=DE(),Ht=p(Je,!0);h(Je),N(()=>z(Ht,i(se).entry.type==="shard"?"S":"A")),x(Ge,Je)};W(to,Ge=>{i(se).entry.icon?Ge(fm):Ge(vm,-1)})}h(sn);var Vc=_(sn,2),no=p(Vc),hm=p(no,!0);h(no);var _a=_(no,2);let Uc;var pm=p(_a,!0);h(_a);var Hc=_(_a,2),mm=p(Hc,!0);h(Hc),h(Vc),h(dt);var ro=_(dt,2),bm=p(ro,!0);h(ro);var so=_(ro,2),gm=p(so,!0);h(so);var Kc=_(so,2);{var ym=Ge=>{var Je=zE(),Ht=p(Je);h(Je),N(()=>z(Ht,`Contract mismatch: package targets v${i(se).latest.contractVersion??""}, running v${ed.version}`)),x(Ge,Je)};W(Kc,Ge=>{i(ze)&&Ge(ym)})}var Wc=_(Kc,2),_m=p(Wc);{var wm=Ge=>{var Je=jE(),Ht=p(Je,!0);h(Je),N(ao=>{Je.disabled=i(Ye),z(Ht,ao)},[()=>i(Ye)?"Updating...":`Update ${A(i(se).entry.id)} -> ${i(se).latest.version}`]),K("click",Je,()=>y(i(se).entry.id)),x(Ge,Je)},km=Ge=>{var Je=OE();x(Ge,Je)},xm=Ge=>{var Je=qE(),Ht=p(Je),ao=p(Ht,!0);h(Ht);var Sm=_(Ht,2);{var Im=ms=>{var io=NE(),Em=p(io);h(io),N(Am=>z(Em,`requires: ${Am??""}`),[()=>i(Xe).join(", ")]),x(ms,io)};W(Sm,ms=>{i(Xe).length>0&&ms(Im)})}h(Je),N(ms=>{Ht.disabled=i(ke)||i(Xe).length>0,re(Ht,"title",ms),z(ao,i(ke)?"Installing...":"Install")},[()=>i(Xe).length>0?`Missing required shards: ${i(Xe).join(", ")}`:void 0]),K("click",Ht,()=>P(i(se))),x(Ge,Je)};W(_m,Ge=>{i(Ee)&&i(je)?Ge(wm):i(Ee)?Ge(km,1):Ge(xm,-1)})}h(Wc),h(wn),N(Ge=>{z(hm,i(se).entry.label),Uc=he(_a,1,"store-card-badge svelte-1aafzt0",null,Uc,{"badge-shard":i(rn)==="shard","badge-app":i(rn)==="app"}),z(pm,Ge),z(mm,i(se).latest.version),z(bm,i(se).entry.description),z(gm,i(se).entry.author.name)},[()=>EE(i(se).entry.type)]),x(oe,wn)}),h(le);var pe=_(le,2);{var we=oe=>{var se=VE(),Ee=p(se);{var ze=je=>{var Ye=FE(),Xe=_(fe(Ye));{var rn=dt=>{var sn=vn("Add a registry URL above to get started.");x(dt,sn)},wn=dt=>{var sn=vn("No registries configured.");x(dt,sn)};W(Xe,dt=>{d.isAdmin?dt(rn):dt(wn,-1)})}x(je,Ye)},ke=je=>{var Ye=vn("No packages match the current filter.");x(je,Ye)};W(Ee,je=>{d.env.registries.length===0?je(ze):je(ke,-1)})}h(se),x(oe,se)};W(pe,oe=>{!d.state.ephemeral.loading&&i(m).length===0&&oe(we)})}h(T);var qe=_(T,2);{var Be=oe=>{{let se=V(()=>({label:i(c).pkg.entry.label,version:i(c).pkg.latest.version,author:i(c).pkg.entry.author.name}));_l(oe,{mode:"install",get pkg(){return i(se)},get permissions(){return i(c).permissions},get warnings(){return i(c).warnings},onConfirm:L,onCancel:R})}};W(qe,oe=>{i(c)&&oe(Be)})}var ot=_(qe,2);{var nr=oe=>{{let se=V(()=>({label:i(u).pkg.entry.label,version:i(u).pkg.latest.version,author:i(u).pkg.entry.author.name}));_l(oe,{mode:"update",get pkg(){return i(se)},get fromVersion(){return i(u).fromVersion},get added(){return i(u).added},get removed(){return i(u).removed},onConfirm:C,onCancel:I})}};W(ot,oe=>{i(u)&&oe(nr)})}N(()=>{$.disabled=d.state.ephemeral.loading,z(G,d.state.ephemeral.loading?"Loading...":"Refresh")}),Te(B,()=>i(n),oe=>k(n,oe)),js(Y,()=>i(r),oe=>k(r,oe)),K("click",$,M),x(e,O),ie()}me(["click"]);function gp(e){return lt.state.ephemeral.catalog.find(t=>t.entry.id===e)}function Js(e){return lt.state.ephemeral.installed.find(t=>t.id===e)}const KE={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=Js(n);if(r){e.scrollback.push({kind:"status",text:`${n} is already installed (v${r.version})`,level:"warn",ts:Date.now()});return}const s=gp(n);if(!s){e.scrollback.push({kind:"status",text:`package "${n}" not found in catalog — try refreshing the store`,level:"error",ts:Date.now()});return}e.scrollback.push({kind:"status",text:`installing ${n} v${s.latest.version}...`,level:"info",ts:Date.now()});try{const a=await Zi(s.latest,s.sourceRegistry),o=Qi(s,s.latest);let l;s.latest.serverBundleUrl&&(l=await Lc(s.latest,s.sourceRegistry));const c={id:o.id,type:o.type,label:s.entry.label,version:o.version,contractVersion:o.contractVersion,sourceRegistry:o.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:s.latest.requires?.map(f=>f.id)??[]},u=await Cc(c,a,l);if(!u.ok){let f=`install failed: ${u.error??"server error"}`;u.code==="missing-shards"&&u.missing&&(f=`install failed: missing required shard(s): ${u.missing.map(m=>m.id).join(", ")}`),e.scrollback.push({kind:"status",text:f,level:"error",ts:Date.now()});return}const d=await Nc(a,o);d.success||e.scrollback.push({kind:"status",text:`server ok but local hot-load failed: ${d.error}`,level:"warn",ts:Date.now()}),await lt.refreshInstalled(),e.scrollback.push({kind:"status",text:`installed ${n} v${s.latest.version}`,level:"info",ts:Date.now()})}catch(a){e.scrollback.push({kind:"status",text:`install failed: ${a instanceof Error?a.message:String(a)}`,level:"error",ts:Date.now()})}}},WE={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(!Js(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 lt.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()})}}},YE={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=Js(n);if(!s){e.scrollback.push({kind:"status",text:`package "${n}" is not installed`,level:"error",ts:Date.now()});return}const a=s.version,o=r&&r===a?"reinstalling":r?`updating ${n} from v${a} to v${r}`:`updating ${n} from v${a} to latest`;e.scrollback.push({kind:"status",text:o.startsWith("reinstalling")?`reinstalling ${n} v${r}…`:`${o}…`,level:"info",ts:Date.now()});const l=async(c,u)=>(e.scrollback.push({kind:"status",text:`permission change required (added: ${c.join(", ")||"none"}; removed: ${u.join(", ")||"none"}) — open the store and use the Update button to review and apply.`,level:"warn",ts:Date.now()}),!1);try{await lt.updatePackage(n,l,r);const c=r??Js(n)?.version??"?";e.scrollback.push({kind:"status",text:r&&r===a?`reinstalled ${n} v${c}`:`updated ${n} v${c}`,level:"info",ts:Date.now()})}catch(c){e.scrollback.push({kind:"status",text:`update failed: ${c instanceof Error?c.message:String(c)}`,level:"error",ts:Date.now()})}}},XE={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=Js(n),s=gp(n);if(!r&&!s){e.scrollback.push({kind:"status",text:`package "${n}" not found in catalog or installed list`,level:"error",ts:Date.now()});return}const a=[];a.push(`--- ${n} ---`),r?(a.push(" installed: yes"),a.push(` version: ${r.version}`),a.push(` type: ${r.type}`),a.push(` contract: v${r.contractVersion}`),a.push(` source: ${r.sourceRegistry}`),r.installedAt&&a.push(` installed: ${r.installedAt}`)):a.push(" installed: no"),s?(a.push(" catalog: yes"),a.push(` latest: ${s.latest.version}`),a.push(` label: ${s.entry.label}`),a.push(` author: ${s.entry.author.name}`),a.push(` desc: ${s.entry.description}`)):a.push(" catalog: no (not in any configured registry)"),e.scrollback.push({kind:"text",stream:"stdout",chunks:[a.join(`
12
+ `)+`
13
+ `],ts:Date.now()})}};function GE(e,t){const[n="",r=""]=e.split("+"),[s="",a=""]=t.split("+"),o=n.split(".").map(f=>parseInt(f,10)||0),l=s.split(".").map(f=>parseInt(f,10)||0),c=Math.max(o.length,l.length);for(let f=0;f<c;f++){const v=o[f]??0,m=l[f]??0;if(v>m)return!0;if(v<m)return!1}if(r===a||r==="")return!1;if(a==="")return!0;const u=parseInt(r,10),d=parseInt(a,10);return!isNaN(u)&&!isNaN(d)?u>d:r>a}function JE(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 ZE(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 lt;const yp={manifest:{id:"sh3-store",label:"Package Store",version:_n,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&&GE(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 Yh(t.registries);n.ephemeral.catalog=f,r()}catch(f){n.ephemeral.error=f instanceof Error?f.message:String(f)}finally{n.ephemeral.loading=!1}}async function a(){try{const f=await Px();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 fE();n.ephemeral.installed=v,r()}catch{}}}async function o(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(B=>B.entry.id===f),!S)return;const g=n.ephemeral.installed.find(B=>B.id===f);if(!g)return;const b=JE(S,m),A=await Zi(b,S.sourceRegistry);let w;b.serverBundleUrl&&(w=await Lc(b,S.sourceRegistry));const y=Qi(S,b),C=await ba(A),I=Oc(C);let P=[];try{const B=await lE(f);B?.permissions&&(P=B.permissions)}catch{}const{added:L,removed:R}=ZE(P,I);if((L.length>0||R.length>0)&&v&&!await v(L,R))return;const M=await pp(f),O={...g,permissions:P},T={id:y.id,type:y.type,label:S.entry.label,version:y.version,contractVersion:y.contractVersion,sourceRegistry:y.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:b.requires?.map(B=>B.id)??[]},D=await Cc(T,A,w);if(!D.ok){let B=D.error??"Server update failed";throw D.code==="missing-shards"&&D.missing&&(B=`missing required shard(s): ${D.missing.map(Z=>Z.id).join(", ")}`),new Error(B)}const j=await Nc(A,y,{loaded:C});if(!j.success){if(M)try{await hp(f,M,O)}catch(B){console.warn(`[sh3-store] Rollback failed for "${f}":`,B instanceof Error?B.message:B)}throw new Error(j.error??"Local install failed during update")}await a()}async function u(f){await Mx(f),await dE(f),await a()}lt={env:t,state:n,get isAdmin(){return e.isAdmin},refreshCatalog:s,refreshInstalled:a,updatePackage:c,uninstallPackage:u,addRegistry:o,removeRegistry:l};const d={mount(f,v){const m=Ke(HE,{target:f});return{unmount(){tt(m)}}}};e.registerView("sh3-store:browse",d),e.registerVerb(KE),e.registerVerb(WE),e.registerVerb(XE),e.registerVerb(YE),a()},autostart(){lt.refreshCatalog()}};function QE(e,t,n,r){return new Promise(s=>{const a={mode:"update",pkg:{label:e.label,version:t},fromVersion:e.version,added:n,removed:r,onConfirm:()=>{o.close(),s(!0)},onCancel:()=>{o.close(),s(!1)}},o=nn.open(_l,a)})}var $E=E('<p class="error svelte-1tiy4hy"> </p>'),e2=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 t2(e,t){ae(t,!0);let n=U(!1),r=U(null);async function s(){if(!i(n)){k(n,!0),k(r,null);try{await t.onConfirm(),t.close()}catch(P){k(r,P.message,!0)}finally{k(n,!1)}}}var a=e2(),o=_(p(a),2),l=p(o),c=p(l,!0);h(l);var u=_(l,2),d=p(u);h(u);var f=_(u,2),v=p(f);h(f),yt(),h(o);var m=_(o,2),S=_(p(m)),g=p(S,!0);h(S),h(m);var b=_(m,2);{var A=P=>{var L=$E(),R=p(L,!0);h(L),N(()=>z(R,i(r))),x(P,L)};W(b,P=>{i(r)&&P(A)})}var w=_(b,2),y=p(w),C=p(y,!0);h(y);var I=_(y,2);h(w),h(a),N(()=>{z(c,t.appLabel),z(d,`v${t.fromVersion??""}`),z(v,`v${t.toVersion??""}`),z(g,t.appId),y.disabled=i(n),z(C,i(n)?"Updating…":"Update"),I.disabled=i(n)}),K("click",y,s),K("click",I,function(...P){t.close?.apply(this,P)}),x(e,a),ie()}me(["click"]);var n2=E('<p class="error svelte-86mxbl"> </p>'),r2=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 s2(e,t){ae(t,!0);let n=U(!1),r=U(null);async function s(){if(!i(n)){k(n,!0),k(r,null);try{await t.onConfirm(),t.close()}catch(y){k(r,y.message,!0)}finally{k(n,!1)}}}var a=r2(),o=p(a),l=p(o);h(o);var c=_(o,2),u=_(p(c)),d=p(u,!0);h(u);var f=_(u,2),v=p(f);h(f),h(c);var m=_(c,4);{var S=y=>{var C=n2(),I=p(C,!0);h(C),N(()=>z(I,i(r))),x(y,C)};W(m,y=>{i(r)&&y(S)})}var g=_(m,2),b=p(g),A=p(b,!0);h(b);var w=_(b,2);h(g),h(a),N(()=>{z(l,`Uninstall ${t.appLabel??""}?`),z(d,t.appId),z(v,`v${t.version??""}`),b.disabled=i(n),z(A,i(n)?"Uninstalling…":"Uninstall"),w.disabled=i(n)}),K("click",b,s),K("click",w,function(...y){t.close?.apply(this,y)}),x(e,a),ie()}me(["click"]);var a2=E('<span class="badge built-in svelte-1w44jyn">built-in</span>'),i2=E('<section class="description svelte-1w44jyn"><span class="label svelte-1w44jyn">Description</span> <p class="svelte-1w44jyn"> </p></section>'),o2=E('<p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Author</span> <span> </span></p>'),l2=E('<li><code class="svelte-1w44jyn"> </code></li>'),c2=E('<section class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Required shards</span> <ul class="chips svelte-1w44jyn"></ul></section>'),u2=E('<li><code class="svelte-1w44jyn"> </code></li>'),d2=E('<section class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Permissions</span> <ul class="chips svelte-1w44jyn"></ul></section>'),f2=E('<p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Installed</span><span> </span></p>'),v2=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>'),h2=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 p2(e,t){ae(t,!0);let n=V(()=>{if(!t.installed)return null;const O=new Date(t.installed.installedAt);return isNaN(O.getTime())?t.installed.installedAt:O.toLocaleString()});var r=h2(),s=p(r),a=p(s),o=p(a,!0);h(a);var l=_(a,2),c=p(l,!0);h(l),h(s);var u=_(s,2),d=_(p(u),2),f=p(d);h(d);var v=_(d,2);{var m=O=>{var T=a2();x(O,T)};W(v,O=>{t.installed||O(m)})}h(u);var S=_(u,2);{var g=O=>{var T=i2(),D=_(p(T),2),j=p(D,!0);h(D),h(T),N(()=>z(j,t.catalogEntry.description)),x(O,T)};W(S,O=>{t.catalogEntry?.description&&O(g)})}var b=_(S,2);{var A=O=>{var T=o2(),D=_(p(T),2),j=p(D,!0);h(D),h(T),N(()=>z(j,t.catalogEntry.author.name)),x(O,T)};W(b,O=>{t.catalogEntry?.author?.name&&O(A)})}var w=_(b,2);{var y=O=>{var T=c2(),D=_(p(T),2);be(D,21,()=>t.manifest.requiredShards,ut,(j,B)=>{var Y=l2(),Z=p(Y),q=p(Z,!0);h(Z),h(Y),N(()=>z(q,i(B))),x(j,Y)}),h(D),h(T),x(O,T)};W(w,O=>{t.manifest.requiredShards.length>0&&O(y)})}var C=_(w,2);{var I=O=>{var T=d2(),D=_(p(T),2);be(D,21,()=>t.manifest.permissions,ut,(j,B)=>{var Y=u2(),Z=p(Y),q=p(Z,!0);h(Z),h(Y),N(()=>z(q,i(B))),x(j,Y)}),h(D),h(T),x(O,T)};W(C,O=>{t.manifest.permissions&&t.manifest.permissions.length>0&&O(I)})}var P=_(C,2);{var L=O=>{var T=v2(),D=p(T),j=_(p(D)),B=p(j,!0);h(j),h(D);var Y=_(D,2);{var Z=G=>{var Q=f2(),F=_(p(Q)),H=p(F,!0);h(F),h(Q),N(()=>z(H,i(n))),x(G,Q)};W(Y,G=>{i(n)&&G(Z)})}var q=_(Y,2),X=_(p(q)),$=p(X);h(X),h(q),h(T),N(()=>{z(B,t.installed.sourceRegistry),z($,`v${t.installed.contractVersion??""}`)}),x(O,T)};W(P,O=>{t.installed&&O(L)})}var R=_(P,2),M=p(R);h(R),h(r),N(()=>{z(o,t.manifest.label),z(c,t.manifest.id),z(f,`v${t.manifest.version??""}`)}),K("click",M,function(...O){t.close?.apply(this,O)}),x(e,r),ie()}me(["click"]);const td=typeof globalThis.__TAURI_INTERNALS__<"u";function m2(e){return!e.admin||e.builtin}function nd(e){return e.admin?e.builtin?" · built-in":"":" · admin only"}function Xn(){const e=ma();return!e||e.type!=="app"?null:e.ref}function ya(e){return us().find(t=>t.id===e)}function b2(e){return!lt.state.ephemeral.installed.some(t=>t.id===e)}function Ao(e){return{admin:Tt(),builtin:b2(e)}}function g2(e){const t=Xn();if(!t)return;const n=ya(t.appId);if(!n)return;const r=lt.state.ephemeral.installed.find(o=>o.id===t.appId)??null,s=lt.state.ephemeral.catalog.find(o=>o.entry.id===t.appId)?.entry??null,a={manifest:n,installed:r,catalogEntry:s};nn.open(p2,a)}async function y2(e){const t=Xn();if(!t)return;const{appId:n}=t,r=An.notify("Checking for updates…",{duration:1/0});try{await lt.refreshCatalog()}finally{r.close()}const s=lt.state.ephemeral.updatable[n],a=lt.state.ephemeral.installed.find(c=>c.id===n),o=ya(n)?.label??n;if(!s||!a){An.notify(`${o} is up to date`,{level:"info",duration:2500});return}const l={appId:n,appLabel:o,fromVersion:a.version,toVersion:s.latest.version,onConfirm:async()=>{try{await lt.updatePackage(n,(c,u)=>QE({label:a.id,version:a.version},s.latest.version,c,u)),An.notify(`Updated to v${s.latest.version}`,{level:"success"})}catch(c){throw An.notify(`Update failed: ${c.message}`,{level:"error",duration:5e3}),c}}};nn.open(t2,l)}function _2(e){const t=Xn();if(!t)return;const n=ya(t.appId);n&&Ji({kind:"app",appId:t.appId,activateShards:n.requiredShards??[]})}async function w2(e){const t=tc();if(!t)return;const n=t.id,r=t.requiredShards??[];await vs(),Ji({kind:"app",appId:n,activateShards:r})}function k2(e){const t=Xn();if(!t)return;const{appId:n}=t,r=lt.state.ephemeral.installed.find(o=>o.id===n);if(!r)return;const s=ya(n)?.label??n,a={appId:n,appLabel:s,version:r.version,onConfirm:async()=>{try{await lt.uninstallPackage(n),An.notify(`Uninstalled ${s}`,{level:"success"})}catch(o){throw An.notify(`Uninstall failed: ${o.message}`,{level:"error",duration:5e3}),o}}};nn.open(s2,a)}function x2(e){const t=()=>{const l=Xn();if(!l)return"Info…";const c=ya(l.appId);return c?`Info — ${c.label} v${c.version}`:`Info — ${l.appId}`},n=()=>{const l=Xn();return l?`Check for updates${nd(Ao(l.appId))}`:"Check for updates"},r=()=>{const l=Xn();return l?`Uninstall…${nd(Ao(l.appId))}`:"Uninstall…"},s=()=>{const l=Xn();return l?m2(Ao(l.appId)):!0},o=[{id:"app.info",label:t,scope:{element:"app"},contextItem:!0,group:"info",run:g2},{id:"app.checkUpdate",label:n,scope:{element:"app"},contextItem:!0,group:"update",disabled:s,run:y2},{id:"app.uninstall",label:r,scope:{element:"app"},contextItem:!0,group:"uninstall",disabled:s,run:k2},{id:"app.popout",label:"Open in standalone view",scope:{element:"app"},contextItem:!0,paletteItem:!1,group:"window",disabled:()=>!td,run:_2},{id:"app.popoutCurrent",label:"Pop out current app",scope:"app",contextItem:!1,paletteItem:!0,disabled:()=>!td||ft.id==null,run:w2}].map(l=>e.actions.register(l));return()=>o.forEach(l=>l())}function S2(){return{id:"sh3.float.toggleMaximize",label:"Toggle Float Maximize",scope:["home","app"],paletteItem:!0,contextItem:!1,defaultShortcut:"Ctrl+Shift+M",disabled:()=>Pe.list().length===0,run(){const e=Pe.list().at(-1);e&&Pe.toggleMaximize(e.id)}}}const _p={manifest:{id:"__sh3core__",label:"SH3 Core",version:_n,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(a){Fi()}}),e.actions.register(S2()),e.actions.register({id:"sh3.app.reset-layout",label:"Reset Current Layout",scope:["app"],paletteItem:!0,contextItem:!1,run(){nn.open(vp,{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:()=>z1()})}});const n={mount(a,o){const l=Ke(KI,{target:a});return{unmount(){tt(l)}}}},r={mount(a,o){const l=Ke(eE,{target:a});return{unmount(){tt(l)}}}};e.registerView("sh3core:home",n),e.registerView("sh3:keys-and-peers",r),x2(e),e.actions.register({id:"sh3.app.launch",label:"Launch app",scope:["home","app"],submenu:!0,paletteItem:!0});const s=new Map;os(()=>{Ie(()=>{const a=new Set;for(const[o,l]of Zn){if(a.add(o),s.has(o))continue;const c=e.actions.register({id:`sh3.app.launch:${o}`,label:l.manifest.label,scope:["home","app"],submenuOf:"sh3.app.launch",run(){Fn(o)}});s.set(o,c)}for(const o of[...s.keys()])a.has(o)||(s.get(o)(),s.delete(o))})})},autostart(){}},I2={id:"shell",label:"Sh3",version:_n,views:[{id:"shell:terminal",label:"Sh3",standalone:!0}],permissions:[Ns]};class E2{#e;get history(){return i(this.#e)}set history(t){k(this.#e,t,!0)}#t;get locked(){return i(this.#t)}set locked(t){k(this.#t,t,!0)}constructor(t){this.#e=U(ve([])),this.#t=U(!1),this.modeId=t,this.scrollback=new Z0}}let ur=null;function A2(e){ur=e}function C2(){ur=null}function rd(e){return ur?.workspace.buffers[e]}function T2(e,t){ur&&(ur.workspace.buffers={...ur.workspace.buffers,[e]:t})}function R2(){ur={ephemeral:{},session:{},workspace:{buffers:{}},user:{}}}R2();const L2=200;class M2{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)},L2);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(a=>this.toPersisted(a)),history:[...t.history],...n!==void 0?{lastSeq:n}:{}};T2(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 P2(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 D2(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 z2(e){const{scrollTop:t,scrollHeight:n,clientHeight:r,threshold:s}=e;return n-t-r<=s}var j2=E("<pre> </pre>");function O2(e,t){ae(t,!0);const n=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,r=V(()=>t.chunks.join("").replace(n,""));var s=j2();let a;var o=p(s,!0);h(s),N(()=>{a=he(s,1,"shell-text svelte-ypr8s",null,a,{stderr:t.stream==="stderr"}),z(o,i(r))}),x(e,s),ie()}var N2=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 q2(e,t){var n=N2(),r=p(n),s=p(r,!0);h(r);var a=_(r,4),o=p(a,!0);h(a),h(n),N(()=>{z(s,t.cwd),z(o,t.line)}),x(e,n)}var B2=E("<div> </div>");function sd(e,t){var n=B2();let r;var s=p(n,!0);h(n),N(()=>{r=he(n,1,"shell-status svelte-nfxdpt",null,r,{info:t.level==="info",warn:t.level==="warn",error:t.level==="error"}),z(s,t.text)}),x(e,n)}var F2=E('<div class="shell-rich svelte-1rnhl05"><!></div>');function V2(e,t){var n=F2(),r=p(n);la(r,()=>t.component,(s,a)=>{a(s,ua(()=>t.componentProps))}),h(n),x(e,n)}const wl=new Map;function Hn(e,t){const n=wl.get(e);if(n&&n!==t){console.warn(`[shell-shard/rich-registry] duplicate registration for key "${e}" — keeping first`);return}wl.set(e,t)}function U2(e){return wl.get(e)??null}var H2=E('<span class="jump-pill__count svelte-isy3jt"> </span>'),K2=E('<div class="jump-pill svelte-isy3jt" data-sh3-jump-pill=""><!></div>'),W2=E('<div class="shell-scrollback-wrap svelte-isy3jt"><div class="shell-scrollback svelte-isy3jt"><div class="content"></div></div> <!></div>');function Y2(e,t){ae(t,!0);let n=U(null),r=U(null),s=U(!0),a=U(0);const o=4;function l(){return i(n)?z2({scrollTop:i(n).scrollTop,scrollHeight:i(n).scrollHeight,clientHeight:i(n).clientHeight,threshold:o}):!0}function c(){i(n)&&(i(n).scrollTop=i(n).scrollHeight,k(s,!0),k(a,0))}function u(){l()?(k(s,!0),k(a,0)):k(s,!1)}let d=0;Ie(()=>{if(!i(r)||!i(n))return;d=i(n).scrollHeight;const b=new ResizeObserver(()=>{if(!i(n))return;const A=i(n).scrollHeight,w=A>d;d=A,i(s)?i(n).scrollTop=A:w&&gr(a)});return b.observe(i(r)),()=>b.disconnect()});var f=W2(),v=p(f),m=p(v);be(m,21,()=>t.scrollback.entries,b=>b.id,(b,A)=>{var w=Me(),y=fe(w);{var C=R=>{O2(R,{get stream(){return i(A).stream},get chunks(){return i(A).chunks}})},I=R=>{{let M=V(()=>t.showPromptCwd?i(A).cwd:"");q2(R,{get cwd(){return i(M)},get line(){return i(A).line}})}},P=R=>{sd(R,{get text(){return i(A).text},get level(){return i(A).level}})},L=R=>{const M=V(()=>i(A).component??(i(A).componentKey?U2(i(A).componentKey):null));var O=Me(),T=fe(O);{var D=B=>{V2(B,{get component(){return i(M)},get componentProps(){return i(A).props}})},j=B=>{{let Y=V(()=>`<rich entry: ${i(A).componentKey??"unknown"} not registered>`);sd(B,{get text(){return i(Y)},level:"info"})}};W(T,B=>{i(M)?B(D):B(j,-1)})}x(R,O)};W(y,R=>{i(A).kind==="text"?R(C):i(A).kind==="prompt"?R(I,1):i(A).kind==="status"?R(P,2):i(A).kind==="rich"&&R(L,3)})}x(b,w)}),h(m),Oe(m,b=>k(r,b),()=>i(r)),h(v),Oe(v,b=>k(n,b),()=>i(n));var S=_(v,2);{var g=b=>{var A=K2(),w=p(A);{let y=V(()=>i(a)>0?`${i(a)} New — jump to bottom`:"Jump to bottom"),C=V(()=>i(a)>0?`Jump to bottom, ${i(a)} New`:"Jump to bottom");Pn(w,{variant:"default",icon:"chevron-down",get title(){return i(y)},get ariaLabel(){return i(C)},onclick:c,children:(I,P)=>{var L=Me(),R=fe(L);{var M=O=>{var T=H2(),D=p(T);h(T),N(()=>z(D,`${i(a)??""} New`)),x(O,T)};W(R,O=>{i(a)>0&&O(M)})}x(I,L)},$$slots:{default:!0}})}h(A),x(b,A)};W(S,b=>{i(s)||b(g)})}h(f),Ue("scroll",v,u),x(e,f),ie()}var X2=E('<span class="sh3-cmdline__prefix svelte-ngn09j"><!></span>'),G2=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 J2(e,t){ae(t,!0);let n=te(t,"value",15,""),r=te(t,"disabled",3,!1),s=U(null);function a(v){return v.selectionStart!==null&&v.selectionEnd!==null&&v.selectionStart!==v.selectionEnd}function o(v){(v.ctrlKey||v.metaKey)&&!v.altKey&&v.key==="c"&&i(s)&&a(i(s))||t.onkeydown?.(v)}Ie(()=>{!r()&&i(s)&&i(s).focus()});var l=G2();let c;var u=p(l);{var d=v=>{var m=X2(),S=p(m);en(S,()=>t.prefix),h(m),x(v,m)};W(u,v=>{t.prefix&&v(d)})}var f=_(u,6);xe(f),Oe(f,v=>k(s,v),()=>i(s)),h(l),N(()=>{c=he(l,1,"sh3-cmdline svelte-ngn09j",null,c,{"sh3-cmdline--disabled":r()}),re(f,"name",t.name),f.disabled=r()}),K("keydown",f,o),Ue("focus",f,function(...v){t.onfocus?.apply(this,v)}),Te(f,n),x(e,l),ie()}me(["keydown"]);var Z2=E('<span class="shell-input-cwd svelte-1dfv2gk"> </span>'),Q2=E('<!> <span class="shell-input-arrow svelte-1dfv2gk">❯</span>',1),$2=E('<div class="shell-input-row svelte-1dfv2gk"><!></div>');function eA(e,t){ae(t,!0);let n=te(t,"showCwd",3,!0),r=U(""),s=U(null),a=U("");function o(){if(t.locked)return;const v=i(r);v.trim()&&(k(r,""),k(s,null),t.onSubmit(v))}function l(){t.history.length!==0&&(i(s)===null?(k(a,i(r),!0),k(s,t.history.length-1)):i(s)>0&&gr(s,-1),k(r,t.history[i(s)]??"",!0))}function c(){i(s)!==null&&(i(s)<t.history.length-1?(gr(s),k(r,t.history[i(s)],!0)):(k(s,null),k(r,i(a),!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(),o()):v.key==="ArrowUp"?(v.preventDefault(),l()):v.key==="ArrowDown"?(v.preventDefault(),c()):v.ctrlKey&&v.key==="c"?(v.preventDefault(),k(r,""),k(s,null)):v.ctrlKey&&v.key==="l"&&(v.preventDefault(),k(r,"clear"),o())}var d=$2(),f=p(d);J2(f,{get disabled(){return t.locked},name:"shell-cmdline",onkeydown:u,onfocus:()=>t.onFocus?.(),get value(){return i(r)},set value(m){k(r,m,!0)},prefix:m=>{var S=Q2(),g=fe(S);{var b=A=>{var w=Z2(),y=p(w,!0);h(w),N(()=>z(y,t.cwd)),x(A,w)};W(g,A=>{n()&&A(b)})}yt(2),x(m,S)},$$slots:{prefix:!0}}),h(d),x(e,d),ie()}class tA{list(){return sc()}get(t){return ei(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(" "),a=s===-1?r:r.slice(0,s),o=s===-1?"":r.slice(s+1),l=ei(a);if(!l)return{kind:"forward",line:t};if(n.globalOnly&&!l.globalVerb)return{kind:"forward",line:t};const c=o.length?o.split(/\s+/):[];return{kind:"local",verb:l,args:c,line:t}}}class nA{#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 rA={id:"bash",label:"Bash",requiresRole:"admin",transport:"ws",autoRelocate:!1,showCwd:!0},sA={id:"sh3",label:"SH3",transport:"none",autoRelocate:!0,showCwd:!1};function aA(e){e.register(rA),e.register(sA)}function wp(e){return`sh3.shell.lastMode.${e}`}function kp(e){try{return globalThis.localStorage?.getItem(wp(e))??null}catch{return null}}function ad(e,t){try{globalThis.localStorage?.setItem(wp(e),t)}catch{}}function iA(e,t,n){const r=kp(t);if(r){const a=e.get(r);if(a&&(!a.requiresRole||a.requiresRole===n))return a}const s=n==="admin"?"bash":"sh3";return e.get(s)}function Fa(e,t){return e.entries.find(n=>n.kind==="rich"&&n.id===t)}function oA(e,t){return{update(n){const r=Fa(e,t);r&&Object.assign(r.props,n)}}}function id(e){return e.entries[e.entries.length-1].id}function od(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()}),oA(t,id(t))},stream(n,r){t.push({kind:"rich",component:n,props:{...r,__streamState:"streaming"},ts:Date.now()});const s=id(t);return{append(a){const o=Fa(t,s);o&&Object.assign(o.props,a)},complete(){const a=Fa(t,s);a&&(a.props.__streamState="complete")},error(a){const o=Fa(t,s);o&&(o.props.__streamState="error"),t.push({kind:"status",text:`mode: ${a?.message??String(a)}`,level:"error",ts:Date.now()})}}},busy(n){const r=e.busy(n);let s=!1;return{clear(){s||(s=!0,r())}}},invoke(n,r){return e.invoke(n,r)}}}function lA(e){let t=null;async function n(s,a){const o=e.mode();if(s===o.id)throw new Error(`invoke: cannot invoke own mode '${s}'`);if(s==="sh3"){const u=e.resolver.resolve(a,{globalOnly:!1});if(u.kind==="forward"){const d=a.trim().split(/\s+/)[0]??"";throw new Error(`invoke: unknown sh3 verb '${d}'`)}await u.verb.run({sh3:e.sh3,scrollback:e.buffer().scrollback,session:e.session,cwd:e.cwd(),dispatch:r,fs:e.fs},u.args);return}if(s==="bash"){if(e.role()!=="admin")throw new Error("invoke: 'bash' requires admin role");e.session.send({t:"submit",line:a,mode:"bash"});return}const l=e.customMode?.(s)??null;if(!l)throw new Error(`invoke: unknown mode '${s}'`);if(l.requiresRole&&l.requiresRole!==e.role())throw new Error(`invoke: mode '${s}' requires ${l.requiresRole} role`);if(l.runsOn==="server")throw new Error("invoke: server-side modes are not yet supported");const c=od({scrollback:e.buffer().scrollback,busy:e.busy,invoke:n});await l.dispatch({line:a,cwd:e.cwd(),signal:t?.signal??new AbortController().signal},c)}async function r(s){t?.abort();const a=new AbortController;t=a;const o=e.mode();if(e.buffer().history.push(s),o.transport==="none"&&s.trimStart().startsWith("$ ")){e.buffer().scrollback.push({kind:"prompt",cwd:e.cwd(),line:s,ts:Date.now()}),e.buffer().scrollback.push({kind:"status",text:"shell: server shell not available in user mode",level:"error",ts:Date.now()});return}const l=e.resolver.resolve(s,{globalOnly:o.id!=="sh3"});if(l.kind==="local"){e.session.send({t:"history-log",line:s,mode:o.id}),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},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(o.transport==="ws"){e.session.send({t:"submit",line:l.line,mode:o.id});return}if(o.transport==="custom"){e.buffer().scrollback.push({kind:"prompt",cwd:e.cwd(),line:l.line,ts:Date.now()});const u=e.customMode?.(o.id)??null;if(!u){e.buffer().scrollback.push({kind:"status",text:`mode '${o.id}' is no longer available`,level:"error",ts:Date.now()});return}if(u.runsOn==="server"){e.buffer().scrollback.push({kind:"status",text:"server-side modes are not yet supported (planned for a future release)",level:"error",ts:Date.now()});return}const d=od({scrollback:e.buffer().scrollback,busy:e.busy,invoke:n}),f=e.busy();try{await u.dispatch({line:l.line,cwd:e.cwd(),signal:a.signal},d)}catch(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 '${o.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 cA(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 uA=E('<div class="toolbar svelte-gnowwz"><div class="toolbar-slots svelte-gnowwz"></div></div>');function dA(e,t){ae(t,!0);let n=te(t,"slotProps",19,()=>({})),r=V(()=>t.registry.list(t.ctx));var s=uA(),a=p(s);be(a,21,()=>i(r),o=>o.id,(o,l)=>{const c=V(()=>i(l).component);var u=Me(),d=fe(u);la(d,()=>i(c),(f,v)=>{v(f,ua(()=>n()[i(l).id]??{}))}),x(o,u)}),h(a),h(s),x(e,s),ie()}class fA{#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 vA=E('<span class="mode-label svelte-1i4cqlj"> </span>');function hA(e,t){ae(t,!0);let n=V(()=>t.modes.map(l=>({value:l.id,label:l.label})));var r=Me(),s=fe(r);{var a=l=>{Zh(l,{get options(){return i(n)},get value(){return t.mode.id},size:"sm",onchange:c=>t.onSelect(c)})},o=l=>{var c=vA(),u=p(c,!0);h(c),N(()=>z(u,t.mode.label)),x(l,c)};W(s,l=>{t.modes.length>=2?l(a):t.modes.length===1&&l(o,1)})}x(e,r),ie()}var pA=E('<button class="focus-lock-btn svelte-1q6gbap"> </button>');function mA(e,t){var n=pA(),r=p(n,!0);h(n),N(()=>{re(n,"title",t.locked?"Unlock focus":"Lock focus"),z(r,t.locked?"🔒":"🔓")}),K("click",n,function(...s){t.onToggle?.apply(this,s)}),x(e,n)}me(["click"]);var bA=E('<span class="target-shard svelte-1nn2m6x" title="Target shard"> </span>');function gA(e,t){var n=bA(),r=p(n);h(n),N(()=>z(r,`→ ${t.target??"—"??""}`)),x(e,n)}var yA=E('<span class="label"> </span>'),_A=E('<div class="busy svelte-7wyurd" role="status" aria-live="polite"><span class="spinner svelte-7wyurd" aria-hidden="true"></span> <!></div>');function wA(e,t){var n=Me(),r=fe(n);{var s=a=>{var o=_A(),l=_(p(o),2);{var c=u=>{var d=yA(),f=p(d,!0);h(d),N(()=>z(f,t.label)),x(u,d)};W(l,u=>{t.label&&u(c)})}h(o),x(a,o)};W(r,a=>{t.active&&a(s)})}x(e,n)}var kA=E('<div class="shell-terminal svelte-13komre"><!> <!> <!></div>');function xA(e,t){ae(t,!0);const n=Se(()=>new M2),r=new Map;function s(F){let H=r.get(F);return H||(H=new E2(F),n.hydrate(H),r.set(F,H)),H}const a=new tA,o=new Th,l=new nA;aA(l);let c=U(ve(Se(()=>t.contributions.list(Ms))));Ie(()=>{const F=t.contributions.onChange(Ms,()=>{k(c,t.contributions.list(Ms),!0)});return()=>F()});function u(F){return{id:F.id,label:F.label,requiresRole:F.requiresRole,transport:"custom",autoRelocate:F.autoRelocate??!1,showCwd:F.showCwd??!1}}let d=V(()=>[...l.list(t.role),...i(c).filter(F=>!F.requiresRole||F.requiresRole===t.role).map(u)]),f=U(ve(Se(()=>{const F=kp(t.userId);if(F){const ee=[...l.list(t.role),...i(c).filter(J=>!J.requiresRole||J.requiresRole===t.role).map(u)].find(J=>J.id===F);if(ee)return ee}return iA(l,t.userId,t.role)}))),v=U(0);function m(){k(v,performance.now(),!0)}const S=Se(()=>w0()),g=V(()=>s(i(f).id));Ie(()=>{for(const[F,H]of Object.entries(w.historyByMode)){const ee=s(F);ee.history.length<H.length&&(ee.history=[...H])}}),Ie(()=>{i(g).scrollback.entries.length,i(g).history.length,i(g).modeId==="bash"?n.flush(i(g),w.lastSeq):n.flush(i(g))});function b(F){const H=i(d).find(ee=>ee.id===F);H&&(H.requiresRole&&H.requiresRole!==t.role||(M(),k(f,H,!0),ad(t.userId,F)))}Ie(()=>{if(!i(d).find(F=>F.id===i(f).id)){const F=i(d).find(H=>H.id==="sh3")??i(d)[0];if(F){const H=i(f).id;k(f,F,!0),ad(t.userId,F.id),s(F.id).scrollback.push({kind:"status",text:`mode '${H}' is no longer available — switched to '${F.id}'`,level:"warn",ts:Date.now()})}}});const A=Se(()=>({...t.shell,setMode:F=>{const H=i(d).find(ee=>ee.id===F);return!H||H.requiresRole&&H.requiresRole!==t.role?!1:(b(F),!0)},listModes:()=>i(d).map(F=>({id:F.id,label:F.label})),getMode:()=>({id:i(f).id,label:i(f).label}),dispatchToTerminal:gc({headless:!1})})),w=Se(()=>new Ch(t.wsUrl));let y=0,C=U(ve(new Map));function I(F){const H=++y;i(C).set(H,F),k(C,new Map(i(C)),!0);let ee=!1;return()=>{ee||(ee=!0,i(C).delete(H),k(C,new Map(i(C)),!0))}}let P=V(()=>i(C).size>0),L=V(()=>{if(i(C).size===0)return null;let F;for(const H of i(C).values())F=H;return F??null});const{dispatch:R,cancel:M}=Se(()=>lA({mode:()=>i(f),role:()=>t.role,resolver:a,buffer:()=>i(g),session:w,sh3:A,fs:o,cwd:()=>w.cwd,busy:I,customMode:F=>i(c).find(H=>H.id===F)??null}));let O=U(!1),T=U(null);const D=new fA;D.register({id:"busy",order:5,visible:()=>!0,component:wA}),D.register({id:"mode",order:10,visible:()=>!0,component:hA}),D.register({id:"focus-lock",order:20,visible:F=>F.mode.id==="sh3",component:mA}),D.register({id:"target-shard",order:30,visible:F=>F.mode.id==="sh3",component:gA});function j(F){if(F.type==="tabs")return F.tabs[F.activeTab]?.viewId??null;if(F.type==="split"){for(const H of F.children){const ee=j(H);if(ee!==null)return ee}return null}return F.viewId??null}function B(){try{const F=Ut(),H=j(F.docked);if(!H)return null;const ee=H.indexOf(":");return ee>=0?H.slice(0,ee):H}catch{return null}}Ie(()=>{const F=B(),H=i(f).autoRelocate,ee=i(O);(async()=>{const J=await cA({modeAutoRelocate:H,focusLocked:ee,focusedShardId:F,currentShardId:"shell"},o);J.kind==="relocate"&&J.path!==void 0&&(w.cwd=J.path),F&&F!=="shell"?k(T,F,!0):F||k(T,null)})()});function Y(F){if(F.t==="replay"){P2(s("bash"),F.events);return}if(F.t!=="event")return;const H=F.event,ee=s("bash");switch(H.kind){case"prompt":ee.scrollback.push({kind:"prompt",cwd:H.cwd,line:H.line,ts:H.ts}),ee.locked=!0;break;case"stdout":ee.scrollback.push({kind:"text",stream:"stdout",chunks:[H.data],ts:H.ts});break;case"stderr":ee.scrollback.push({kind:"text",stream:"stderr",chunks:[H.data],ts:H.ts});break;case"exit":(H.signal||H.code!==null&&H.code!==0)&&ee.scrollback.push({kind:"status",text:H.signal?`shell: process exited (${H.signal})`:`shell: process exited (${H.code})`,level:"error",ts:H.ts}),ee.locked=!1;break;case"status":ee.scrollback.push({kind:"status",text:H.text,level:H.level,ts:H.ts});break}}let Z=null,q=null;Wl(()=>{Z=w.onMessage(Y),s("bash");const F=n.readLastSeq("bash");F!==void 0&&(w.lastSeq=F),w.connect(),q=k0({id:S,dispatch:R,getFocusStamp:()=>i(v),getMode:()=>i(f)})}),Yl(()=>{Z?.(),w.close(),q?.()});var X=kA(),$=p(X);{let F=V(()=>({mode:i(f),role:t.role})),H=V(()=>({busy:{active:i(P),label:i(L)},mode:{mode:i(f),modes:i(d),onSelect:b},"focus-lock":{locked:i(O),onToggle:()=>k(O,!i(O))},"target-shard":{target:i(T)}}));dA($,{get registry(){return D},get ctx(){return i(F)},get slotProps(){return i(H)}})}var G=_($,2);{let F=V(()=>i(f).showCwd||!1);Y2(G,{get showPromptCwd(){return i(F)},get scrollback(){return i(g).scrollback}})}var Q=_(G,2);{let F=V(()=>D2(w.cwd,w.tenantRoot)),H=V(()=>i(f).showCwd!==!1);eA(Q,{get cwd(){return i(F)},get showCwd(){return i(H)},get locked(){return i(g).locked},get history(){return i(g).history},get session(){return w},get onSubmit(){return R},onFocus:m})}h(X),x(e,X),ie()}var SA=E('<tr><td class="svelte-m248jy"><button type="button" class="svelte-m248jy"> </button></td><td class="svelte-m248jy"> </td></tr>'),IA=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 xp(e,t){ae(t,!0);var n=IA(),r=p(n),s=_(p(r));be(s,21,()=>t.data.rows,a=>a.name,(a,o)=>{var l=SA(),c=p(l),u=p(c),d=p(u,!0);h(u),h(c);var f=_(c),v=p(f,!0);h(f),h(l),N(()=>{z(d,i(o).name),z(v,i(o).summary)}),K("click",u,()=>t.data.onClickName(i(o).name)),x(a,l)}),h(s),h(r),h(n),x(e,n),ie()}me(["click"]);const Sp="help-table";Hn(Sp,xp);function EA(){return{name:"help",summary:"List verbs or show detail for one.",globalVerb:!0,async run(e){const t=sc().map(n=>({name:n.name,summary:n.summary}));e.scrollback.push({kind:"rich",componentKey:Sp,component:xp,props:{data:{rows:t,onClickName:n=>e.dispatch(n)}},ts:Date.now()})}}}const AA={name:"clear",summary:"Clear the scrollback (local only — other views are unaffected).",globalVerb:!0,async run(e){e.scrollback.clear()}},CA={name:"mode",summary:"List or switch shell modes. Usage: mode | mode <id>",globalVerb:!0,async run(e,t){const n=Date.now();if(t.length===0){const o=e.sh3.listModes().map(l=>` ${l.id.padEnd(12)} ${l.label}`);e.scrollback.push({kind:"text",stream:"stdout",chunks:[["Available modes:",...o].join(`
15
+ `)+`
16
+ `],ts:n});return}const r=t[0];e.sh3.setMode(r)||e.scrollback.push({kind:"status",text:`mode: unknown or restricted mode '${r}'`,level:"error",ts:n})}};var TA=E('<li class="svelte-o8m437"><button type="button" class="svelte-o8m437"> </button></li>'),RA=E('<div class="shell-rich-history svelte-o8m437"><ol class="svelte-o8m437"></ol></div>');function Ip(e,t){ae(t,!0);var n=RA(),r=p(n);be(r,21,()=>t.data.lines,ut,(s,a)=>{var o=TA(),l=p(o),c=p(l,!0);h(l),h(o),N(()=>z(c,i(a))),K("click",l,()=>t.data.onClickLine(i(a))),x(s,o)}),h(r),h(n),x(e,n),ie()}me(["click"]);const Ep="history-list";Hn(Ep,Ip);const LA={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,a=(e.session.historyByMode[r]??[]).slice(-n);e.scrollback.push({kind:"rich",componentKey:Ep,component:Ip,props:{data:{lines:a,onClickLine:o=>e.dispatch(o)}},ts:Date.now()})}};var MA=E('<tr><td class="svelte-1u5krjz"><button type="button" class="svelte-1u5krjz"> </button></td><td class="svelte-1u5krjz"> </td></tr>'),PA=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 Ap(e,t){ae(t,!0);var n=PA(),r=p(n),s=_(p(r));be(s,21,()=>t.data.apps,a=>a.id,(a,o)=>{var l=MA(),c=p(l),u=p(c),d=p(u,!0);h(u),h(c);var f=_(c),v=p(f,!0);h(f),h(l),N(()=>{z(d,i(o).id),z(v,i(o).label)}),K("click",u,()=>t.data.onClickApp(i(o).id)),x(a,l)}),h(s),h(r),h(n),x(e,n),ie()}me(["click"]);var DA=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 Cp(e,t){ae(t,!0);var n=DA(),r=p(n),s=p(r,!0);h(r);var a=_(r,2),o=_(p(a));h(a);var l=_(a,2),c=_(p(l));h(l),h(n),N(u=>{z(s,t.data.label),z(o,` ${t.data.id??""}`),z(c,` ${u??""}`)},[()=>t.data.shards.join(", ")]),x(e,n),ie()}const Tp="apps-table",Rp="app-card";Hn(Tp,Ap);Hn(Rp,Cp);const zA={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:Tp,component:Ap,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()})}},jA={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:Rp,component:Cp,props:{data:{id:t.id,label:t.label,shards:[]}},ts:Date.now()})}};var OA=E('<tr><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td></tr>'),NA=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 Lp(e,t){ae(t,!0);var n=NA(),r=p(n),s=_(p(r));be(s,21,()=>t.data.shards,a=>a.id,(a,o)=>{var l=OA(),c=p(l),u=p(c,!0);h(c);var d=_(c),f=p(d,!0);h(d);var v=_(d),m=p(v,!0);h(v),h(l),N(()=>{z(u,i(o).id),z(f,i(o).label),z(m,i(o).version)}),x(a,l)}),h(s),h(r),h(n),x(e,n),ie()}const Mp="shards-table";Hn(Mp,Lp);const qA={name:"shards",summary:"List active shards.",programmatic:!0,async run(e){const t=e.sh3.listShards();e.scrollback.push({kind:"rich",componentKey:Mp,component:Lp,props:{data:{shards:t}},ts:Date.now()})}};var BA=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>'),FA=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 Pp(e,t){ae(t,!0);var n=FA(),r=p(n),s=_(p(r));be(s,21,()=>t.data.views,a=>a.slotId,(a,o)=>{var l=BA(),c=p(l),u=p(c,!0);h(c);var d=_(c),f=p(d,!0);h(d);var v=_(d),m=p(v,!0);h(v);var S=_(v),g=p(S);h(S),h(l),N(()=>{z(u,i(o).slotId),z(f,i(o).viewId),z(m,i(o).label)}),K("click",g,()=>t.data.onClose(i(o).slotId)),x(a,l)}),h(s),h(r),h(n),x(e,n),ie()}me(["click"]);const Dp="views-table";Hn(Dp,Pp);const VA={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:Dp,component:Pp,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()})}},UA={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()})}},HA={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()})}},KA={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(a=>` ${a.floatId.padEnd(24)} ${a.viewId??"-"} ${a.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()})}},WA={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 YA=E('<tr><td class="svelte-1w7onag"> </td><td class="svelte-1w7onag"> </td></tr>'),XA=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 zp(e,t){ae(t,!0);var n=XA(),r=p(n),s=_(p(r));be(s,21,()=>t.data.rows,a=>a.shardId,(a,o)=>{var l=YA(),c=p(l),u=p(c,!0);h(c);var d=_(c),f=p(d,!0);h(d),h(l),N(v=>{z(u,i(o).shardId),z(f,v)},[()=>i(o).zones.join(", ")]),x(a,l)}),h(s),h(r),h(n),x(e,n),ie()}var GA=E('<div class="shell-rich-zonetree svelte-13iiyr1"><pre class="svelte-13iiyr1"> </pre></div>');function jp(e,t){ae(t,!0);var n=GA(),r=p(n),s=p(r,!0);h(r),h(n),N(a=>z(s,a),[()=>JSON.stringify(t.data.value,null,2)]),x(e,n),ie()}const Op="zones-table",Np="zone-tree";Hn(Op,zp);Hn(Np,jp);const JA={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:Op,component:zp,props:{data:{rows:n}},ts:Date.now()})}},ZA={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:Np,component:jp,props:{data:{value:s}},ts:Date.now()})}};var QA=E('<tr><td class="svelte-1ox8vog"> </td><td class="svelte-1ox8vog"> </td></tr>'),$A=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 qp(e,t){ae(t,!0);var n=$A(),r=p(n),s=_(p(r));be(s,21,()=>Object.entries(t.data.env),([a,o])=>a,(a,o)=>{var l=V(()=>Od(i(o),2));let c=()=>i(l)[0],u=()=>i(l)[1];var d=QA(),f=p(d),v=p(f,!0);h(f);var m=_(f),S=p(m,!0);h(m),h(d),N(()=>{z(v,c()),z(S,u())}),x(a,d)}),h(s),h(r),h(n),x(e,n),ie()}const Bp="env-table";Hn(Bp,qp);const eC={name:"env",summary:"Show the session environment.",async run(e){const t=e.session.env;e.scrollback.push({kind:"rich",componentKey:Bp,component:qp,props:{data:{env:t}},ts:Date.now()})}};async function tC(){try{const{TauriStoreBackend:e}=await bi(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:Pd}}}async function nC(){try{const{LazyStore:e}=await bi(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 rC={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 nC(),location.reload()}};function sC(e){e.registerVerb(EA()),e.registerVerb(AA),e.registerVerb(CA),e.registerVerb(LA),e.registerVerb(zA),e.registerVerb(jA),e.registerVerb(qA),e.registerVerb(VA),e.registerVerb(UA),e.registerVerb(WA),e.registerVerb(HA),e.registerVerb(KA),e.registerVerb(JA),e.registerVerb(ZA),e.registerVerb(eC),e.registerVerb(rC)}const Fp={manifest:I2,activate(e){sC(e);const t=kx(e.zones),n=e.state({workspace:{buffers:{}}});A2(n),e.actions.register({id:"shell.terminal.toggle",label:"Open Terminal",scope:["home","app"],defaultShortcut:"²",allowInInputs:!1,run(){Vi("shell:terminal")||Pe.open("shell:terminal",{title:"Sh3"})}});const r={mount(s,a){const o=typeof location<"u"&&location.protocol==="https:"?"wss":"ws",l=typeof location<"u"?location.host:"localhost",c=`${o}://${l}/api/shell/session`,d=ts()?.id??"guest",f=Tt()?"admin":"user",v=Ke(xA,{target:s,props:{shell:t,wsUrl:c,userId:d,role:f,contributions:e.contributions}});return{unmount(){tt(v)},closable:!0}}};e.registerView("shell:terminal",r)},autostart(){},deactivate(){C2()}};var aC=E('<p class="error svelte-1w8uhw5">The source float was closed.</p>'),iC=E('<p class="error svelte-1w8uhw5">No standalone views in this float.</p>'),oC=E('<li class="svelte-1w8uhw5"> <span class="muted svelte-1w8uhw5"> </span></li>'),lC=E('<div class="preview svelte-1w8uhw5"><div class="preview-label svelte-1w8uhw5"> </div> <ul class="preview-list svelte-1w8uhw5"></ul></div>'),cC=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 uC(e,t){ae(t,!0);const n=Se(()=>Pe.list().find(I=>I.id===t.floatId)?.content??null),r=V(()=>n?eo(n,t.isStandalone):null),s=V(()=>i(r)?u(i(r)):[]),a=V(()=>n===null),o=V(()=>!i(a)&&i(r)===null);let l=U(ve(Se(()=>t.defaultName)));const c=V(()=>i(l).trim()===""||i(a)||i(o));function u(I){if(I.type==="slot")return I.viewId?[I.viewId]:[];if(I.type==="tabs"){const P=[];for(const L of I.tabs)L.viewId&&P.push(L.viewId);return P}return I.children.flatMap(u)}function d(){i(c)||(t.onConfirm(i(l).trim()),t.close())}var f=cC(),v=_(p(f),2),m=_(p(v),2);xe(m),h(v);var S=_(v,2);{var g=I=>{var P=aC();x(I,P)},b=I=>{var P=iC();x(I,P)},A=I=>{var P=lC(),L=p(P),R=p(L);h(L);var M=_(L,2);be(M,21,()=>i(s),ut,(O,T)=>{var D=oC(),j=p(D),B=_(j),Y=p(B);h(B),h(D),N(Z=>{z(j,`${Z??""} `),z(Y,`(${i(T)??""})`)},[()=>t.resolveLabel(i(T))]),x(O,D)}),h(M),h(P),N(()=>z(R,`Captured views (${i(s).length??""}):`)),x(I,P)};W(S,I=>{i(a)?I(g):i(o)?I(b,1):I(A,-1)})}var w=_(S,2),y=p(w),C=_(y,2);h(w),h(f),N(()=>y.disabled=i(c)),Te(m,()=>i(l),I=>k(l,I)),K("click",y,d),K("click",C,()=>t.close()),x(e,f),ie()}me(["click"]);function dC(){const e=ma();return!e||e.type!=="float-header"?null:e.ref}function Bc(e){return Ys().some(t=>t.viewId===e)}function fC(e){return Ys().find(t=>t.viewId===e)?.label??e}function vC(){return`sl-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function hC(e,t){const n=kI(e,Bc);if(n===null)return null;const r={id:vC(),name:t,createdAt:Date.now(),size:n.size,content:n.content};return yI(r),r}function Vp(){const e=ma();return!e||e.type!=="saved-layout"?null:e.ref}function pC(e,t){const n=t.icon===void 0&&t.color===void 0?void 0:{icon:t.icon,color:t.color};op(e,{name:t.label,appearance:n})}function mC(e){op(e,{appearance:void 0})}function bC(e){const t=Vp();if(!t)return;const n=xr().find(s=>s.id===t.layoutId);if(!n)return;const r={entityLabel:n.name,initialAppearance:n.appearance,defaultIcon:"eye",requireLabel:!0,onSave:s=>pC(t.layoutId,s),onReset:()=>mC(t.layoutId)};nn.open(up,r)}function gC(e){_I(e)}function yC(e){const t=Vp();if(!t)return;const n=xr().find(r=>r.id===t.layoutId);n&&nn.open(vp,{title:`Delete saved layout "${n.name}"?`,body:"This cannot be undone.",confirmLabel:"Delete",confirmTone:"danger",onConfirm:()=>gC(t.layoutId)})}function _C(e){const t=dC();if(!t)return;const n={floatId:t.floatId,isStandalone:Bc,resolveLabel:fC,defaultName:`Layout ${xr().length+1}`,onConfirm:r=>{hC(t.floatId,r)}};nn.open(uC,n)}const Up={manifest:{id:"__layouts__",label:"Saved Layouts",version:_n,views:[]},activate(e){const t=e.state({user:{layouts:[]}});bI(t);const n=(o,l)=>{An.notify(o,{level:l})},r={id:"sh3.layout.save",label:"Save layout as…",scope:{element:"float-header"},contextItem:!0,paletteItem:!1,run:_C};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:bC}),e.actions.register({id:"sh3.layout.delete",label:"Delete",scope:{element:"saved-layout"},contextItem:!0,run:yC});const s=new Map,a=new Map;os(()=>{Ie(()=>{const o=xr(),l=new Set;for(const c of o){l.add(c.id);const u=s.get(c.id);if(u&&a.get(c.id)===c.name)continue;u&&(u(),s.delete(c.id),a.delete(c.id));const d=e.actions.register({id:`sh3.layout.open:${c.id}`,label:c.name,scope:["home","app"],submenuOf:"sh3.layout.open",run:()=>{const f=xr().find(v=>v.id===c.id);f&&cp(f,Bc,n)}});s.set(c.id,d),a.set(c.id,c.name)}for(const c of[...s.keys()])l.has(c)||(s.get(c)(),s.delete(c),a.delete(c))})})},autostart(){},deactivate(){gI()}},Hp={manifest:{id:"sh3-store-app",label:"Package Store",version:_n,requiredShards:["sh3-store"],layoutVersion:1,admin:!0},initialLayout:{type:"tabs",activeTab:0,tabs:[{slotId:"store.browse",viewId:"sh3-store:browse",label:"Browse"}]}};var wC=E('<div class="admin-error svelte-4q792t"> </div>'),kC=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>'),xC=E('<p class="admin-muted svelte-4q792t">Loading...</p>'),SC=E('<p class="admin-error svelte-4q792t"> </p>'),IC=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>'),EC=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">Edit</button> <button type="button" class="admin-btn-danger svelte-4q792t">Delete</button></div>',1),AC=E('<li class="admin-user-item svelte-4q792t"><!></li>'),CC=E('<ul class="admin-user-list svelte-4q792t"></ul>'),TC=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 RC(e,t){ae(t,!0);let n=U(ve([])),r=U(!0),s=U(null),a=U(!1),o=U(""),l=U(""),c=U(""),u=U("user"),d=U(null),f=U(null),v=U(""),m=U("user"),S=U("");async function g(){k(r,!0),k(s,null);try{const B=await fetch("/api/admin/users",{credentials:"include"});if(!B.ok)throw new Error("Failed to fetch users");k(n,await B.json(),!0)}catch(B){k(s,B instanceof Error?B.message:"Failed to load users",!0)}finally{k(r,!1)}}async function b(){k(d,null);try{const B=await fetch("/api/admin/users",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:i(o),displayName:i(l)||i(o),password:i(c),role:i(u)})});if(!B.ok){const Y=await B.json().catch(()=>({}));k(d,Y.error||"Failed to create user",!0);return}k(o,""),k(l,""),k(c,""),k(u,"user"),k(a,!1),await g()}catch{k(d,"Network error")}}function A(B){k(f,B.id,!0),k(v,B.displayName,!0),k(m,B.role,!0),k(S,"")}async function w(){if(!i(f))return;const B={displayName:i(v),role:i(m)};i(S).trim()&&(B.password=i(S));try{if(!(await fetch(`/api/admin/users/${i(f)}`,{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(B)})).ok)return;k(f,null),await g()}catch{}}async function y(B){try{await fetch(`/api/admin/users/${B}`,{method:"DELETE",credentials:"include"}),await g()}catch{}}g();var C=TC(),I=p(C),P=_(p(I),2),L=p(P,!0);h(P),h(I);var R=_(I,2);{var M=B=>{var Y=kC(),Z=p(Y);xe(Z);var q=_(Z,2);xe(q);var X=_(q,2);xe(X);var $=_(X,2),G=p($);G.value=G.__value="user";var Q=_(G);Q.value=Q.__value="admin",h($);var F=_($,2),H=_(F,2);{var ee=J=>{var ce=wC(),de=p(ce,!0);h(ce),N(()=>z(de,i(d))),x(J,ce)};W(H,J=>{i(d)&&J(ee)})}h(Y),N(J=>F.disabled=J,[()=>!i(o).trim()||!i(c).trim()]),Ue("submit",Y,J=>{J.preventDefault(),b()}),Te(Z,()=>i(o),J=>k(o,J)),Te(q,()=>i(l),J=>k(l,J)),Te(X,()=>i(c),J=>k(c,J)),js($,()=>i(u),J=>k(u,J)),x(B,Y)};W(R,B=>{i(a)&&B(M)})}var O=_(R,2);{var T=B=>{var Y=xC();x(B,Y)},D=B=>{var Y=SC(),Z=p(Y,!0);h(Y),N(()=>z(Z,i(s))),x(B,Y)},j=B=>{var Y=CC();be(Y,21,()=>i(n),Z=>Z.id,(Z,q)=>{var X=AC(),$=p(X);{var G=F=>{var H=IC(),ee=p(H);xe(ee);var J=_(ee,2);xe(J);var ce=_(J,2),de=p(ce);de.value=de.__value="user";var ne=_(de);ne.value=ne.__value="admin",h(ce);var le=_(ce,2),pe=_(p(le),2);h(le),h(H),Ue("submit",H,we=>{we.preventDefault(),w()}),Te(ee,()=>i(v),we=>k(v,we)),Te(J,()=>i(S),we=>k(S,we)),js(ce,()=>i(m),we=>k(m,we)),K("click",pe,()=>{k(f,null)}),x(F,H)},Q=F=>{var H=EC(),ee=fe(H),J=p(ee),ce=p(J,!0);h(J);var de=_(J,2),ne=p(de);h(de),h(ee);var le=_(ee,2),pe=p(le),we=_(pe,2);h(le),N(()=>{z(ce,i(q).displayName),z(ne,`${i(q).username??""} · ${i(q).role??""}`)}),K("click",pe,()=>A(i(q))),K("click",we,()=>y(i(q).id)),x(F,H)};W($,F=>{i(f)===i(q).id?F(G):F(Q,-1)})}h(X),x(Z,X)}),h(Y),x(B,Y)};W(O,B=>{i(r)?B(T):i(s)?B(D,1):B(j,-1)})}h(C),N(()=>z(L,i(a)?"Cancel":"New user")),K("click",P,()=>{k(a,!i(a))}),x(e,C),ie()}me(["click"]);var LC=E('<p class="admin-muted svelte-1hsgdb4">Loading...</p>'),MC=E('<div class="admin-error svelte-1hsgdb4"> </div>'),PC=E('<div class="admin-auth-fields svelte-1hsgdb4"><label class="admin-toggle svelte-1hsgdb4"><input type="checkbox" class="svelte-1hsgdb4"/> <span>Require sign-in</span> <span class="admin-hint svelte-1hsgdb4">When enabled, unauthenticated visitors see a sign-in wall.</span></label> <label class="admin-toggle svelte-1hsgdb4"><input type="checkbox" class="svelte-1hsgdb4"/> <span>Allow guest browsing</span> <span class="admin-hint svelte-1hsgdb4">When sign-in is required, guests can still browse with session-only data.</span></label> <label class="admin-toggle svelte-1hsgdb4"><input type="checkbox" class="svelte-1hsgdb4"/> <span>Self-registration</span> <span class="admin-hint svelte-1hsgdb4">Visitors can create their own accounts from the sign-in screen.</span></label> <label class="admin-field svelte-1hsgdb4"><span class="svelte-1hsgdb4">Session lifetime (hours)</span> <input type="number" class="admin-input admin-input-sm svelte-1hsgdb4" min="1" max="8760"/></label> <button type="button" class="admin-btn svelte-1hsgdb4"> </button></div> <!>',1),DC=E('<div class="admin-auth svelte-1hsgdb4"><h2 class="svelte-1hsgdb4">Auth Settings</h2> <!></div>');function zC(e,t){ae(t,!0);let n=U(null),r=U(!0),s=U(!1),a=U(null);async function o(){k(r,!0);try{const v=await fetch("/api/admin/settings",{credentials:"include"});if(!v.ok)throw new Error("Failed to fetch settings");k(n,await v.json(),!0)}catch(v){k(a,v instanceof Error?v.message:"Failed to load settings",!0)}finally{k(r,!1)}}async function l(){if(i(n)){k(s,!0),k(a,null);try{const v=await fetch("/api/admin/settings",{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(i(n))});if(!v.ok)throw new Error("Failed to save settings");k(n,await v.json(),!0)}catch(v){k(a,v instanceof Error?v.message:"Failed to save",!0)}finally{k(s,!1)}}}o();var c=DC(),u=_(p(c),2);{var d=v=>{var m=LC();x(v,m)},f=v=>{var m=PC(),S=fe(m),g=p(S),b=p(g);xe(b),yt(4),h(g);var A=_(g,2),w=p(A);xe(w),yt(4),h(A);var y=_(A,2),C=p(y);xe(C),yt(4),h(y);var I=_(y,2),P=_(p(I),2);xe(P),h(I);var L=_(I,2),R=p(L,!0);h(L),h(S);var M=_(S,2);{var O=T=>{var D=MC(),j=p(D,!0);h(D),N(()=>z(j,i(a))),x(T,D)};W(M,T=>{i(a)&&T(O)})}N(()=>{L.disabled=i(s),z(R,i(s)?"Saving...":"Save")}),Cs(b,()=>i(n).auth.required,T=>i(n).auth.required=T),Cs(w,()=>i(n).auth.guestAllowed,T=>i(n).auth.guestAllowed=T),Cs(C,()=>i(n).auth.selfRegistration,T=>i(n).auth.selfRegistration=T),Te(P,()=>i(n).auth.sessionTTL,T=>i(n).auth.sessionTTL=T),K("click",L,l),x(v,m)};W(u,v=>{i(r)?v(d):i(n)&&v(f,1)})}h(c),x(e,c),ie()}me(["click"]);var jC=E('<button type="button"> </button>'),OC=E('<div class="admin-error svelte-1gkiloq"> </div>'),NC=E('<div class="admin-error svelte-1gkiloq"> </div>'),qC=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>.
19
+ Set to <strong>0</strong> during development so drop-in bundle replacements take effect on F5.
20
+ Use a long value in production.</p> <input type="range" min="0" max="31536000" step="1" class="svelte-1gkiloq"/> <div class="admin-system-readout svelte-1gkiloq"><code> </code> </div> <div class="admin-system-snaps svelte-1gkiloq"></div> <div class="admin-system-actions svelte-1gkiloq"><button type="button" class="admin-btn svelte-1gkiloq"> </button> <button type="button" class="admin-btn-ghost svelte-1gkiloq">Reset</button> <!></div></section> <section class="admin-system-section svelte-1gkiloq"><h3 class="svelte-1gkiloq">Server control</h3> <div class="admin-system-actions svelte-1gkiloq"><button type="button" class="admin-btn-danger svelte-1gkiloq"> </button> <!></div></section></div>`);function BC(e,t){ae(t,!0);const n=[{value:0,label:"Off (no-store)"},{value:5,label:"5s (dev)"},{value:60,label:"1 min"},{value:3600,label:"1 hour"},{value:86400,label:"1 day"},{value:31536e3,label:"1 year"}];let r=U("..."),s=U(!1),a=U(null),o=U(31536e3),l=U(31536e3),c=U(!1),u=U(null);const d=V(()=>i(o)!==i(l)),f=V(()=>v(i(o)));function v(J){return J===0?"0 seconds (off — browsers never cache)":J<60?`${J} seconds`:J<3600?`${Math.round(J/60)} minutes`:J<86400?`${Math.round(J/3600)} hours`:J<31536e3?`${Math.round(J/86400)} days`:`${Math.round(J/31536e3)} years`}async function m(){try{const J=await fetch("/api/version");if(J.ok){const ce=await J.json();k(r,ce.version,!0)}}catch{}}async function S(){try{const J=await fetch("/api/admin/settings",{credentials:"include"});if(J.ok){const de=(await J.json()).packages?.cacheMaxAge??31536e3;k(o,de,!0),k(l,de,!0)}}catch{}}async function g(){k(c,!0),k(u,null);try{const J=await fetch("/api/admin/settings",{method:"PUT",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({packages:{cacheMaxAge:i(o)}})});if(J.ok){const ce=await J.json();k(l,ce.packages?.cacheMaxAge??i(o),!0),k(o,i(l),!0)}else{const ce=await J.json().catch(()=>({}));k(u,ce.error||"Save failed",!0)}}catch{k(u,"Network error")}finally{k(c,!1)}}async function b(){k(s,!0),k(a,null);try{const J=await fetch("/api/admin/restart",{method:"POST",credentials:"include"});if(!J.ok){const ce=await J.json().catch(()=>({}));k(a,ce.error||"Restart failed",!0),k(s,!1)}}catch{k(a,"Network error"),k(s,!1)}}m(),S();var A=qC(),w=_(p(A),2),y=p(w),C=_(p(y),2),I=p(C,!0);h(C),h(y),h(w);var P=_(w,2),L=_(p(P),4);xe(L);var R=_(L,2),M=p(R),O=p(M,!0);h(M);var T=_(M);h(R);var D=_(R,2);be(D,21,()=>n,J=>J.value,(J,ce)=>{var de=jC();let ne;var le=p(de,!0);h(de),N(()=>{ne=he(de,1,"admin-snap svelte-1gkiloq",null,ne,{active:i(o)===i(ce).value}),de.disabled=i(c),z(le,i(ce).label)}),K("click",de,()=>k(o,i(ce).value,!0)),x(J,de)}),h(D);var j=_(D,2),B=p(j),Y=p(B,!0);h(B);var Z=_(B,2),q=_(Z,2);{var X=J=>{var ce=OC(),de=p(ce,!0);h(ce),N(()=>z(de,i(u))),x(J,ce)};W(q,J=>{i(u)&&J(X)})}h(j),h(P);var $=_(P,2),G=_(p($),2),Q=p(G),F=p(Q,!0);h(Q);var H=_(Q,2);{var ee=J=>{var ce=NC(),de=p(ce,!0);h(ce),N(()=>z(de,i(a))),x(J,ce)};W(H,J=>{i(a)&&J(ee)})}h(G),h($),h(A),N(()=>{z(I,i(r)),L.disabled=i(c),z(O,i(o)),z(T,` — ${i(f)??""}`),B.disabled=!i(d)||i(c),z(Y,i(c)?"Saving...":"Save"),Z.disabled=!i(d)||i(c),Q.disabled=i(s),z(F,i(s)?"Restarting...":"Restart server")}),Te(L,()=>i(o),J=>k(o,J)),K("click",B,g),K("click",Z,()=>k(o,i(l),!0)),K("click",Q,b),x(e,A),ie()}me(["click"]);var FC=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>`),VC=E('<div class="admin-error svelte-1afg5z5"> </div>'),UC=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>'),HC=E('<p class="admin-muted svelte-1afg5z5">Loading...</p>'),KC=E('<p class="admin-error svelte-1afg5z5"> </p>'),WC=E('<p class="admin-muted svelte-1afg5z5">No API keys. Create one to enable external access.</p>'),YC=E('<button type="button" class="admin-btn-danger svelte-1afg5z5">Confirm</button> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Cancel</button>',1),XC=E('<button type="button" class="admin-btn-danger svelte-1afg5z5">Revoke</button>'),GC=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>'),JC=E('<ul class="admin-key-list svelte-1afg5z5"></ul>'),ZC=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 QC(e,t){ae(t,!0);let n=U(ve([])),r=U(!0),s=U(null),a=U(!1),o=U(""),l=U(null),c=U(null),u=U(null);async function d(){k(r,!0),k(s,null);try{const T=await Re(`${st()}/api/admin/keys`);if(!T.ok)throw new Error("Failed to fetch keys");k(n,await T.json(),!0)}catch(T){k(s,T instanceof Error?T.message:"Failed to load keys",!0)}finally{k(r,!1)}}async function f(){k(l,null);try{const T=await Re(`${st()}/api/admin/keys`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({label:i(o)})});if(!T.ok){const j=await T.json().catch(()=>({}));k(l,j.error||"Failed to create key",!0);return}const D=await T.json();k(c,{id:D.id,key:D.key},!0),k(o,""),k(a,!1),await d()}catch{k(l,"Network error")}}async function v(T){k(u,null);try{await Re(`${st()}/api/admin/keys/${T}`,{method:"DELETE"}),i(c)?.id===T&&k(c,null),await d()}catch{}}function m(T){return new Date(T).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}d();var S=ZC(),g=p(S),b=_(p(g),2),A=p(b,!0);h(b),h(g);var w=_(g,2);{var y=T=>{var D=FC(),j=_(p(D),2),B=p(j,!0);h(j);var Y=_(j,2);h(D),N(()=>z(B,i(c).key)),K("click",Y,()=>{k(c,null)}),x(T,D)};W(w,T=>{i(c)&&T(y)})}var C=_(w,2);{var I=T=>{var D=UC(),j=p(D);xe(j);var B=_(j,2),Y=_(B,2);{var Z=q=>{var X=VC(),$=p(X,!0);h(X),N(()=>z($,i(l))),x(q,X)};W(Y,q=>{i(l)&&q(Z)})}h(D),N(q=>B.disabled=q,[()=>!i(o).trim()]),Ue("submit",D,q=>{q.preventDefault(),f()}),Te(j,()=>i(o),q=>k(o,q)),x(T,D)};W(C,T=>{i(a)&&T(I)})}var P=_(C,2);{var L=T=>{var D=HC();x(T,D)},R=T=>{var D=KC(),j=p(D,!0);h(D),N(()=>z(j,i(s))),x(T,D)},M=T=>{var D=WC();x(T,D)},O=T=>{var D=JC();be(D,21,()=>i(n),j=>j.id,(j,B)=>{var Y=GC(),Z=p(Y),q=p(Z),X=p(q,!0);h(q);var $=_(q,2),G=p($);h($),h(Z);var Q=_(Z,2),F=p(Q);{var H=J=>{var ce=YC(),de=fe(ce),ne=_(de,2);K("click",de,()=>v(i(B).id)),K("click",ne,()=>{k(u,null)}),x(J,ce)},ee=J=>{var ce=XC();K("click",ce,()=>{k(u,i(B).id,!0)}),x(J,ce)};W(F,J=>{i(u)===i(B).id?J(H):J(ee,-1)})}h(Q),h(Y),N(J=>{z(X,i(B).label),z(G,`${i(B).id??""} · ${J??""}`)},[()=>m(i(B).createdAt)]),x(j,Y)}),h(D),x(T,D)};W(P,T=>{i(r)?T(L):i(s)?T(R,1):i(n).length===0?T(M,2):T(O,-1)})}h(S),N(()=>z(A,i(a)?"Cancel":"New key")),K("click",b,()=>{k(a,!i(a))}),x(e,S),ie()}me(["click"]);const Kp={manifest:{id:"sh3-admin",label:"Admin",version:_n,views:[{id:"sh3-admin:users",label:"Users"},{id:"sh3-admin:auth",label:"Auth Settings"},{id:"sh3-admin:system",label:"System"},{id:"sh3-admin:keys",label:"API Keys"}]},activate(e){const t={mount(a,o){const l=Ke(RC,{target:a});return{unmount(){tt(l)}}}},n={mount(a,o){const l=Ke(zC,{target:a});return{unmount(){tt(l)}}}},r={mount(a,o){const l=Ke(BC,{target:a});return{unmount(){tt(l)}}}},s={mount(a,o){const l=Ke(QC,{target:a});return{unmount(){tt(l)}}}};e.registerView("sh3-admin:users",t),e.registerView("sh3-admin:auth",n),e.registerView("sh3-admin:system",r),e.registerView("sh3-admin:keys",s)}},Wp={manifest:{id:"sh3-admin-app",label:"Admin",version:_n,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"}]}},ld="sh3:migrations:shell-rename:done",cd="__shell__:",$C="__sh3core__:",ud="sh3:user:__shell__:theme",dd="sh3:user:__sh3core__:theme";function eT(e,t){if(t.getItem(ld))return;const n=t.getItem(ud);n!==null&&t.getItem(dd)===null&&(t.setItem(dd,n),t.removeItem(ud));for(const r of e.keys()){if(!r.startsWith(cd))continue;const s=$C+r.slice(cd.length),a=e.read(r);e.write(s,a),e.delete(r)}t.setItem(ld,"1")}const fd="sh3:migrations:mode-id-rename:done",tT="sh3.shell.lastMode.",vd={dev:"bash",user:"sh3"};function nT(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 rT(e){if(!e.getItem(fd)){for(const t of nT(e)){if(!t.startsWith(tT))continue;const n=e.getItem(t);n&&Object.prototype.hasOwnProperty.call(vd,n)&&e.setItem(t,vd[n])}e.setItem(fd,"1")}}let hd=!1,pd=null;function sT(){hd||(hd=!0,pd=e=>{const t=e.state?.sh3;t==="anchor"?(yw(),history.forward()):t==="forward-bumper"&&(_w(),history.back())},window.addEventListener("popstate",pd),history.replaceState({sh3:"anchor"},""),history.pushState({sh3:"main"},""),history.pushState({sh3:"forward-bumper"},""),history.back())}function md(e){Xi(e)}function aT(){const e=gn.workspace;return{keys:()=>e.list(),read:t=>e.read(t),write:(t,n)=>e.write(t,n),delete:t=>e.delete(t)}}async function iT(e){if(typeof globalThis.localStorage<"u"){eT(aT(),globalThis.localStorage),rT(globalThis.localStorage);const{migrateLegacyWorkspaceKeys:a}=await bi(async()=>{const{migrateLegacyWorkspaceKeys:o}=await import("./workspace-rekey-DRgvbNY-.js");return{migrateLegacyWorkspaceKeys:o}},[]);a(vh())}const t=new Set(e?.excludeShards),n=[_p,Fp,yp,Kp,ip,fp,Up];for(const a of n)t.has(a.manifest.id)||Xi(a);const r=[Hp,Wp];for(const a of r)qs(a);await bp();for(const[a,o]of tn)if(o.autostart){nh(a);try{await ui(a,{phase:"autostart"})}catch{}}const s=P0();if(s&&Zn.has(s))try{await Fn(s)}catch(a){console.error(`[sh3] Auto-launch of "${s}" failed:`,a),D0()}bw({returnToHome:vs,launchApp:Fn}),typeof window<"u"&&typeof history<"u"&&sT()}async function oT(e){const t=[_p,Fp,yp,Kp,ip,fp,Up];for(const s of t)Xi(s);const n=[Hp,Wp];for(const s of n)qs(s);await bp();const r=new Set;for(const[s,a]of tn)if(a.autostart){nh(s);try{await ui(s,{phase:"autostart"}),r.add(s)}catch{}}for(const s of e.activateShardIds)if(!r.has(s))if(tn.has(s))try{await ui(s,{phase:"satellite"})}catch(a){console.error(`[sh3] satellite activation of "${s}" failed:`,a)}else console.warn(`[sh3] satellite requested shard "${s}" but it is not registered`)}var lT=E('<div aria-hidden="true"></div>'),cT=E('<button type="button" aria-label="Expand pane"><span class="collapse-icon"> </span></button>'),uT=E('<button type="button" aria-label="Collapse pane"><span class="collapse-icon"> </span></button>'),dT=E('<!> <div class="pane-content svelte-1adl4o1"><!></div>',1),fT=E('<div role="separator"></div>'),vT=E("<div><!></div> <!>",1),hT=E("<div></div>");function pT(e,t){ae(t,!0);const n=40,r=28;let s=te(t,"compact",3,!1),a;const o=I=>t.pinned?.[I]??"fr",l=I=>t.collapsed?.[I]??!1,c=I=>t.fixed?.[I]??!1,u=I=>c(I)||c(I+1);function d(I){if(c(I))return!1;const P=I>0?!c(I-1):!1,L=I<t.count-1?!c(I+1):!1;return P||L}function f(I){return l(I)?`0 0 ${r}px`:o(I)==="px"?`0 0 ${Math.max(n,t.sizes[I])}px`:`${Math.max(1e-4,t.sizes[I])} 1 0`}let v=U(null),m=null;function S(I,P){if(s()||l(P)||l(P+1)||u(P))return;const L=a?nc(a):0;if(!da(I.pointerId,{ownerId:"sh3:splitter",axis:"xy",priority:"normal",depth:L}))return;m=I.pointerId,I.preventDefault(),document.addEventListener("pointermove",g),document.addEventListener("pointerup",A),document.addEventListener("pointercancel",w);const M=a.getBoundingClientRect(),O=t.direction==="horizontal"?M.width:M.height;let T=0,D=0;for(let j=0;j<t.sizes.length;j++)o(j)==="fr"?T+=t.sizes[j]:D+=Math.max(n,t.sizes[j]);k(v,{handleIndex:P,startClient:t.direction==="horizontal"?I.clientX:I.clientY,startSizes:t.sizes.slice(),containerPx:O,totalFr:T,frAvailPx:Math.max(1,O-D)},!0)}function g(I){if(!i(v)||I.pointerId!==m)return;const L=(t.direction==="horizontal"?I.clientX:I.clientY)-i(v).startClient,R=i(v).handleIndex,M=R+1,O=o(R),T=o(M),D=i(v).totalFr/i(v).frAvailPx;if(O==="fr"&&T==="fr"){const j=n*D,B=L*D,Y=i(v).startSizes[M]-j,Z=-(i(v).startSizes[R]-j),q=Math.min(Math.max(B,Z),Y);t.onResize?.(R,i(v).startSizes[R]+q),t.onResize?.(M,i(v).startSizes[M]-q)}else if(O==="px"&&T==="fr"){const j=i(v).frAvailPx-n,B=n-i(v).startSizes[R];t.onResize?.(R,i(v).startSizes[R]+Math.min(Math.max(L,B),j))}else if(O==="fr"&&T==="px"){const j=i(v).startSizes[M]-n,B=-(i(v).frAvailPx-n);t.onResize?.(M,i(v).startSizes[M]-Math.min(Math.max(L,B),j))}else{const j=i(v).startSizes[M]-n,B=-(i(v).startSizes[R]-n),Y=Math.min(Math.max(L,B),j);t.onResize?.(R,i(v).startSizes[R]+Y),t.onResize?.(M,i(v).startSizes[M]-Y)}}function b(){m!==null&&(_r(m,"sh3:splitter"),m=null),k(v,null),document.removeEventListener("pointermove",g),document.removeEventListener("pointerup",A),document.removeEventListener("pointercancel",w)}function A(I){i(v)&&I.pointerId===m&&b()}function w(I){if(i(v)){if(I.pointerId!==m){Dn("splitter:cancel-other-id",I,{activeDragPointerId:m});return}Dn("splitter:cancel-our-id",I,{activeDragPointerId:m}),b()}}Ie(()=>()=>{i(v)&&b()});var y=hT();let C;be(y,21,()=>Array(t.count),ut,(I,P,L)=>{var R=vT(),M=fe(R);let O;var T=p(M);{var D=q=>{var X=Me(),$=fe(X);{var G=F=>{var H=lT();let ee;N(()=>ee=he(H,1,"collapse-header inert svelte-1adl4o1",null,ee,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"})),x(F,H)},Q=F=>{var H=cT();let ee;var J=p(H),ce=p(J,!0);h(J),h(H),N(()=>{ee=he(H,1,"collapse-header svelte-1adl4o1",null,ee,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),z(ce,t.direction==="horizontal"?"▸":"▾")}),K("click",H,()=>t.onCollapseToggle?.(L,!1)),x(F,H)};W($,F=>{s()?F(G):F(Q,-1)})}x(q,X)},j=V(()=>l(L)),B=q=>{var X=dT(),$=fe(X);{var G=ee=>{var J=uT();let ce;re(J,"data-testid",`collapse-toggle-${L}`);var de=p(J),ne=p(de,!0);h(de),h(J),N(()=>{ce=he(J,1,"collapse-header expanded svelte-1adl4o1",null,ce,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),z(ne,t.direction==="horizontal"?"◂":"▴")}),K("click",J,()=>t.onCollapseToggle?.(L,!0)),x(ee,J)},Q=V(()=>!s()&&t.onCollapseToggle&&d(L));W($,ee=>{i(Q)&&ee(G)})}var F=_($,2),H=p(F);en(H,()=>t.pane,()=>L),h(F),x(q,X)};W(T,q=>{i(j)?q(D):q(B,-1)})}h(M);var Y=_(M,2);{var Z=q=>{var X=fT();let $;re(X,"data-testid",`splitter-handle-${L}`),N(G=>{$=he(X,1,"splitter-handle svelte-1adl4o1",null,$,G),re(X,"aria-orientation",t.direction==="horizontal"?"vertical":"horizontal")},[()=>({dragging:i(v)?.handleIndex===L,disabled:l(L)||l(L+1),frozen:u(L)})]),K("pointerdown",X,G=>S(G,L)),K("dblclick",X,()=>{u(L)||!d(L)&&!l(L)||t.onCollapseToggle?.(L,!l(L))}),x(q,X)};W(Y,q=>{L<t.count-1&&q(Z)})}N((q,X)=>{O=he(M,1,"splitter-pane svelte-1adl4o1",null,O,q),We(M,`flex: ${X??""};`)},[()=>({collapsed:l(L)}),()=>f(L)]),x(I,R)}),h(y),Oe(y,I=>a=I,()=>a),N(()=>C=he(y,1,"splitter svelte-1adl4o1",null,C,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical",compact:s()})),x(e,y),ie()}me(["click","pointerdown","dblclick"]);function mT(e,t,n){if(!n)return null;const r=n.getBoundingClientRect(),s=t.filter(l=>!!l);if(s.length===0)return{left:4,top:2,height:r.height-4};const a=Math.max(0,Math.min(e,s.length));let o;return a===s.length?o=s[s.length-1].getBoundingClientRect().right:o=s[a].getBoundingClientRect().left,{left:o-r.left-1,top:2,height:r.height-4}}var bT=E('<span class="tab-dirty svelte-1kxcyhf" title="Unsaved changes"></span>'),gT=E('<span class="tab-icon svelte-1kxcyhf"> </span>'),yT=E('<span class="tab-close svelte-1kxcyhf" role="button" tabindex="-1" title="Close">&#x2715;</span>'),_T=E('<button type="button" role="tab"><!> <!> <span class="tab-label svelte-1kxcyhf"> </span> <!></button>'),wT=E('<div class="drop-indicator svelte-1kxcyhf"></div>'),kT=E("<div><!></div>"),xT=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 ST(e,t){ae(t,!0);function n(b){t.clickGuard?.()||t.onActiveChange?.(b)}function r(b,A){A.stopPropagation(),t.onClose?.(b)}let s=U(void 0);const a=ve([]);let o=U(null);function l(b,A){if(!t.dragController)return;const w=a[b];w&&t.dragController.onPointerDown(b,A,w)}function c(b){if(!t.dragController||!t.dragController.isDragging||!i(s))return;const A=i(s).getBoundingClientRect(),w=a.filter(y=>!!y).map(y=>y.getBoundingClientRect());k(o,t.dragController.onStripHover(A,b.clientX,b.clientY,w),!0)}function u(){t.dragController&&(k(o,null),t.dragController.onStripLeave())}var d=xT(),f=p(d),v=p(f);be(v,17,()=>t.labels,ut,(b,A,w)=>{var y=_T();let C;var I=p(y);{var P=j=>{var B=bT();x(j,B)};W(I,j=>{t.dirty?.[w]&&j(P)})}var L=_(I,2);{var R=j=>{var B=gT(),Y=p(B,!0);h(B),N(()=>z(Y,t.icons[w])),x(j,B)};W(L,j=>{t.icons?.[w]&&j(R)})}var M=_(L,2),O=p(M,!0);h(M);var T=_(M,2);{var D=j=>{var B=yT();N(()=>re(B,"data-testid",t.tabIds?.[w]?`tab-close-${t.tabIds[w]}`:void 0)),K("click",B,Y=>r(w,Y)),K("keydown",B,Y=>{(Y.key==="Enter"||Y.key===" ")&&r(w,Y)}),x(j,B)};W(T,j=>{t.closable?.[w]&&j(D)})}h(y),Oe(y,(j,B)=>a[B]=j,j=>a?.[j],()=>[w]),N(()=>{C=he(y,1,"tab svelte-1kxcyhf",null,C,{active:t.activeTab===w}),re(y,"aria-selected",t.activeTab===w),z(O,i(A))}),K("click",y,()=>n(w)),K("pointerdown",y,j=>l(w,j)),Ue("auxclick",y,j=>{j.button===1&&t.closable?.[w]&&r(w,j)}),x(b,y)});var m=_(v,2);{var S=b=>{const A=V(()=>mT(i(o),a,i(s)));var w=Me(),y=fe(w);{var C=I=>{var P=wT();N(()=>We(P,`left: ${i(A).left??""}px; height: ${i(A).height??""}px; top: ${i(A).top??""}px;`)),x(I,P)};W(y,I=>{i(A)&&I(C)})}x(b,w)};W(m,b=>{i(o)!==null&&t.dragController?.isDragging&&b(S)})}h(f),Oe(f,b=>k(s,b),()=>i(s));var g=_(f,2);be(g,21,()=>t.labels,ut,(b,A,w)=>{var y=kT();let C;var I=p(y);en(I,()=>t.body,()=>w),h(y),N(()=>C=he(y,1,"tab-body-pane svelte-1kxcyhf",null,C,{active:t.activeTab===w})),x(b,y)}),h(g),h(d),K("pointermove",f,c),Ue("pointerleave",f,u),x(e,d),ie()}me(["pointermove","click","pointerdown","keydown"]);var IT=E('no factory for <code class="svelte-1czj0s8"> </code>',1),ET=E("<em>empty slot</em>"),AT=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>'),CT=E('<div class="slot svelte-1czj0s8"><!></div>');function hi(e,t){ae(t,!0);let n=te(t,"label",3,""),r=U(void 0),s=U(0),a=U(0);const o=V(()=>t.node.viewId?!!kv(t.node.viewId):!1);Ie(()=>{if(!i(r))return;const d=t.node.slotId,f=i(r),v=lc(d,t.node.viewId,n()||t.node.viewId||d,t.meta);f.appendChild(v);const m=new ResizeObserver(S=>{for(const g of S){const b=g.contentRect;k(s,Math.round(b.width),!0),k(a,Math.round(b.height),!0)}});return m.observe(f),()=>{m.disconnect(),cc(d,f)}});var l=CT(),c=p(l);{var u=d=>{var f=AT(),v=p(f),m=p(v,!0);h(v);var S=_(v,2),g=p(S);{var b=C=>{var I=IT(),P=_(fe(I)),L=p(P,!0);h(P),N(()=>z(L,t.node.viewId)),x(C,I)},A=C=>{var I=ET();x(C,I)};W(g,C=>{t.node.viewId?C(b):C(A,-1)})}h(S);var w=_(S,2),y=p(w);h(w),h(f),N(()=>{z(m,t.node.slotId),z(y,`${i(s)??""} × ${i(a)??""}`)}),x(d,f)};W(c,d=>{i(o)||d(u)})}h(l),Oe(l,d=>k(r,d),()=>i(r)),N(()=>{re(l,"data-slot-id",t.node.slotId),re(l,"data-view-id",t.node.viewId??"")}),x(e,l),ie()}const Ce=ve({phase:"idle",source:null,pointerX:0,pointerY:0,target:null});let Yp=0;function TT(){return performance.now()<Yp}const bd=4;let Xp=0,Gp=0,Nn=null;function RT(e,t,n,r,s){if(Ce.phase!=="idle")return;const a=nc(s);if(!da(r.pointerId,{ownerId:"sh3:tabdrag",axis:"xy",priority:"normal",depth:a}))return;Nn=r.pointerId;const l=s.getBoundingClientRect();Ce.phase="pending",Ce.source={slotId:e,entry:t,sourceRoot:n,startRect:l,offsetX:r.clientX-l.left,offsetY:r.clientY-l.top},Ce.pointerX=r.clientX,Ce.pointerY=r.clientY,Ce.target=null,Xp=r.clientX,Gp=r.clientY,LT()}function LT(){window.addEventListener("pointermove",Jp,!0),window.addEventListener("pointerup",Zp,!0),window.addEventListener("pointercancel",Qp,!0),document.body.style.userSelect="none",document.body.dataset.dragging=""}function MT(){window.removeEventListener("pointermove",Jp,!0),window.removeEventListener("pointerup",Zp,!0),window.removeEventListener("pointercancel",Qp,!0),document.body.style.userSelect="",delete document.body.dataset.dragging}function Jp(e){if(e.pointerId===Nn&&(Ce.pointerX=e.clientX,Ce.pointerY=e.clientY,Ce.phase==="pending")){const t=e.clientX-Xp,n=e.clientY-Gp;t*t+n*n>=bd*bd&&(Ce.phase="dragging")}}function Zp(e){if(e.pointerId!==Nn)return;Ce.phase==="dragging"&&(PT(),Yp=performance.now()+50),$p()}function Qp(e){if(e.pointerId!==Nn){Dn("tabdrag:cancel-other-id",e,{activeDragPointerId:Nn});return}Dn("tabdrag:cancel-our-id",e,{activeDragPointerId:Nn}),$p()}function gd(e){const t=ht.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=ht.tree,n=t.floats.findIndex(r=>r.id===e.floatId);n<0||_v(t.floats[n].content)&&t.floats.splice(n,1)}function PT(){const{source:e,target:t}=Ce;if(!e||!t)return;const n=gd(e.sourceRoot),r=gd(t.root);if(!n||!r)return;if(t.kind==="strip"){const a=t.tabsNode.tabs.findIndex(o=>o.slotId===e.slotId);if(a>=0){Gw(t.tabsNode,a,t.insertIndex),Nr(n),r!==n&&Nr(r),yd(e.sourceRoot);return}}const s=Pi(n,e.slotId);s&&(t.kind==="strip"?Xw(t.tabsNode,s,t.insertIndex):Qo(r,t.path,s,t.side),Nr(n),r!==n&&Nr(r),yd(e.sourceRoot))}function $p(){Nn!==null&&(_r(Nn,"sh3:tabdrag"),Nn=null),Ce.phase="idle",Ce.source=null,Ce.target=null,MT()}function kl(e){Ce.phase==="dragging"&&(Ce.target=e)}function Hr(e){Ce.phase==="dragging"&&Ce.target&&(e&&!e(Ce.target)||(Ce.target=null))}var DT=E("<div></div>"),zT=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),jT=E("<!> <!>",1),OT=E("<div><!></div>");function xl(e,t){ae(t,!0);let n=U(void 0),r=U(null);const s=V(()=>Ce.phase==="dragging"),a=V(()=>{let m;return t.rootRef.kind==="docked"?m=ht.root:m=ht.tree.floats.find(g=>g.id===t.rootRef.floatId)?.content??null,m?Ev(m,t.path):!1});function o(m,S,g){const b=g.left+g.width/2,A=g.top+g.height/2,w=m-b,y=S-A,C=w/g.width,I=y/g.height;return Math.abs(C)>Math.abs(I)?C<0?"left":"right":I<0?"top":"bottom"}function l(m){if(!i(n))return;if(i(a)){i(r)!==null&&(k(r,null),Hr(b=>b.kind==="split"&&b.path.join("/")===t.path.join("/")));return}const S=i(n).getBoundingClientRect();if(m.clientX<S.left||m.clientX>S.right||m.clientY<S.top||m.clientY>S.bottom){i(r)!==null&&(k(r,null),Hr(b=>b.kind==="split"&&b.path.join("/")===t.path.join("/")));return}const g=o(m.clientX,m.clientY,S);if(g!==i(r)){k(r,g,!0);const b={kind:"split",root:t.rootRef,path:[...t.path],side:g};kl(b)}}function c(){i(r)!==null&&(k(r,null),Hr(m=>m.kind==="split"&&m.path.join("/")===t.path.join("/")))}var u=OT();let d;var f=p(u);{var v=m=>{var S=jT(),g=fe(S);{var b=y=>{var C=DT();N(()=>he(C,1,`quad-highlight quad-${i(r)??""}`,"svelte-re71zu")),x(y,C)};W(g,y=>{i(r)&&y(b)})}var A=_(g,2);{var w=y=>{var C=zT();yt(6),x(y,C)};W(A,y=>{i(s)&&y(w)})}x(m,S)};W(f,m=>{i(a)||m(v)})}h(u),Oe(u,m=>k(n,m),()=>i(n)),N(()=>d=he(u,1,"slot-drop-zone svelte-re71zu",null,d,{active:i(s),locked:i(a)})),K("pointermove",u,l),Ue("pointerleave",u,c),x(e,u),ie()}me(["pointermove"]);var NT=E('<div class="sh3-carousel-slide svelte-1qo3ctb" data-sh3-slide=""><!> <!></div>'),qT=E('<span data-sh3-pager-dot=""></span>'),BT=E('<div class="sh3-carousel-pager svelte-1qo3ctb" data-sh3-pager=""></div>'),FT=E('<div class="sh3-carousel svelte-1qo3ctb" data-sh3-region="carousel"><div data-sh3-carousel-track=""></div> <!></div>');function VT(e,t){ae(t,!0);let n=te(t,"node",7),r=te(t,"rootRef",19,()=>({kind:"docked"})),s=te(t,"path",19,()=>[]),a=U(null),o=U(0);Ie(()=>{if(!i(a))return;const ne=i(a).getBoundingClientRect();if(ne.width>0)k(o,ne.width,!0);else if(i(a).parentElement){const pe=i(a).parentElement.getBoundingClientRect();pe.width>0&&k(o,pe.width,!0)}const le=new ResizeObserver(pe=>{for(const we of pe)k(o,we.contentRect.width,!0)});return le.observe(i(a)),()=>le.disconnect()});const l=V(()=>n().tabs.length),c=V(()=>i(l)>1);let u=U(0),d=U(!1),f=U(!1),v=null,m=!1,S=0,g=null,b=null;const A=1.2,w=6,y=.4,C=500,I=.3,P=100;function L(ne,le){Dn(`carousel:${ne}`,le,{claimed:i(f),dragging:i(d),downId:g?.id})}const R=250;function M(ne){let le=ne;for(;le&&le!==i(a);){const pe=getComputedStyle(le).overflowX;if((pe==="auto"||pe==="scroll")&&le.scrollWidth>le.clientWidth)return!0;le=le.parentElement}return!1}function O(ne){if(!i(a)||i(o)===0)return!1;const le=i(a).getBoundingClientRect(),pe=ne-le.left;return pe<Za||pe>i(o)-Za}function T(ne){const le=ne;if(!le||typeof le.tagName!="string")return!1;const pe=le.tagName;if(pe==="INPUT"||pe==="TEXTAREA"||pe==="SELECT"||le.isContentEditable===!0)return!0;const we=le.closest?.('[contenteditable=""], [contenteditable="true"]');return we!=null}function D(ne,le){if(le===0)return 0;const pe=le*I;return Math.sign(ne)*pe*(1-Math.exp(-Math.abs(ne)/pe))}function j(ne){if(!t.wrap){const le=n().activeTab===0&&ne>0,pe=n().activeTab===i(l)-1&&ne<0;if(le||pe)return D(ne,i(o))}return ne}function B(ne){if(i(l)<2||i(o)===0||ne.isPrimary===!1)return;const le=O(ne.clientX);if(!le&&(T(ne.target)||M(ne.target)))return;const pe=i(a)?nc(i(a)):0;da(ne.pointerId,{ownerId:"sh3:carousel",axis:"x",priority:"normal",depth:pe})&&(v=ne.pointerId,m=le,S=0,g={id:ne.pointerId,x:ne.clientX,y:ne.clientY,t:performance.now()},b={...g},k(d,!1),k(f,!1),k(u,0),document.addEventListener("pointermove",Y),document.addEventListener("pointerup",Z),document.addEventListener("pointercancel",q))}function Y(ne){if(!g||ne.pointerId!==g.id)return;if(!Ew(ne.pointerId,"sh3:carousel")){L("claim-stolen",ne),X();return}const le=ne.clientX-g.x,pe=ne.clientY-g.y;if(!i(f)){const we=performance.now()-g.t,qe=Math.abs(le)>Math.abs(pe)*A&&Math.abs(le)>w;if(Math.abs(pe)>Math.abs(le)*A&&Math.abs(pe)>w){X();return}if((Math.abs(le)>w||Math.abs(pe)>w)&&we>R){X();return}if(!qe)return;if(k(f,!0),k(d,!0),m&&i(a))try{i(a).setPointerCapture(ne.pointerId),S=performance.now()+P}catch{}typeof window<"u"&&window.getSelection()?.removeAllRanges()}typeof ne.preventDefault=="function"&&ne.preventDefault(),k(u,j(le),!0),b={id:ne.pointerId,x:ne.clientX,y:ne.clientY,t:performance.now()}}function Z(ne){if(!g)return;if(ne.pointerId!==g.id){L("pointerup-other-id",ne);return}const le=ne.clientX-g.x;let pe=0;b&&b.t!==g.t&&(pe=(ne.clientX-b.x)/Math.max(1,performance.now()-b.t)*1e3),$(le,pe),X()}function q(ne){if(g){if(ne.pointerId!==g.id){L("cancel-other-id",ne);return}if(performance.now()<S){L("cancel-ignored-transfer",ne),S=0;return}L("cancel-our-id",ne),X()}}function X(){if(m&&i(a)&&v!==null)try{i(a).hasPointerCapture?.(v)&&i(a).releasePointerCapture(v)}catch{}v!==null&&(_r(v,"sh3:carousel"),v=null),document.removeEventListener("pointermove",Y),document.removeEventListener("pointerup",Z),document.removeEventListener("pointercancel",q),g=null,b=null,k(d,!1),k(f,!1),k(u,0),m=!1,S=0}function $(ne,le){if(!i(f)||i(o)===0)return;const pe=Math.abs(ne)>i(o)*y,we=Math.abs(le)>C;if(!(pe||we))return;const qe=ne<0?1:-1;let Be=n().activeTab+qe;if(Be<0)if(t.wrap)Be=i(l)-1;else return;else if(Be>=i(l))if(t.wrap)Be=0;else return;n().activeTab=Be}const G=V(()=>i(o)===0?"translateX(0px)":`translateX(${-n().activeTab*i(o)+i(u)}px)`),Q=V(()=>i(d)?"none":"");function F(ne){return ne.slotId}var H=FT(),ee=p(H);let J;be(ee,23,()=>n().tabs,ne=>F(ne),(ne,le,pe)=>{var we=NT(),qe=p(we);{let ot=V(()=>({type:"slot",slotId:i(le).slotId,viewId:i(le).viewId}));hi(qe,{get node(){return i(ot)},get label(){return i(le).label},get meta(){return i(le).meta}})}var Be=_(qe,2);xl(Be,{get rootRef(){return r()},get path(){return s()}}),h(we),N(()=>{re(we,"data-sh3-slide-index",i(pe)),We(we,`width: ${i(o)??""}px;`)}),x(ne,we)}),h(ee);var ce=_(ee,2);{var de=ne=>{var le=BT();be(le,23,()=>n().tabs,(pe,we)=>`dot-${we}`,(pe,we,qe)=>{var Be=qT();let ot;N(()=>{ot=he(Be,1,"sh3-carousel-dot svelte-1qo3ctb",null,ot,{"sh3-carousel-dot--active":i(qe)===n().activeTab}),re(Be,"aria-current",i(qe)===n().activeTab?"true":void 0)}),x(pe,Be)}),h(le),x(ne,le)};W(ce,ne=>{i(c)&&ne(de)})}h(H),Oe(H,ne=>k(a,ne),()=>i(a)),N(()=>{J=he(ee,1,"sh3-carousel-track svelte-1qo3ctb",null,J,{"sh3-carousel-track--dragging":i(d)}),We(ee,`transform: ${i(G)??""}; width: ${i(l)*100}%; ${i(Q)?`transition: ${i(Q)};`:""}`)}),K("pointerdown",ee,B),x(e,H),ie()}me(["pointerdown"]);function em(e){return e.join(".")}function UT(e){const t=new Map;function n(r,s,a){if(r.type==="tabs"){if(s){const o=r.tabs[r.activeTab];t.set(em(a),{wrap:r.wrap??!1,activeLabel:o?.label??""})}return}if(r.type==="split"){const o=s&&r.direction==="vertical";for(let l=0;l<r.children.length;l++)n(r.children[l],o,[...a,l]);return}}return n(e,!0,[]),t}var HT=E('<div class="tab-slot-wrapper svelte-1gw9g38"><!> <!></div>'),KT=E('<div class="empty-tabs-custom svelte-1gw9g38"></div>'),WT=E('<div class="empty-tabs-default svelte-1gw9g38"><div class="empty-tabs-drop svelte-1gw9g38"></div></div>'),YT=E('<div class="empty-tabs-placeholder svelte-1gw9g38"><!></div>'),XT=E('<div class="leaf-slot-wrapper svelte-1gw9g38"><!> <!></div>');function rs(e,t){ae(t,!0);let n=te(t,"path",19,()=>[]),r=te(t,"rootRef",19,()=>({kind:"docked"}));const s=V(()=>{if(t.rootOverride!==void 0)return $r(t.rootOverride,n());let w;return r().kind==="docked"?w=ht.root:w=ht.tree.floats.find(C=>C.id===r().floatId)?.content??null,w?$r(w,n()):null});function a(w){return{get isDragging(){return Ce.phase==="dragging"},onPointerDown(y,C,I){const P=w.tabs[y];P&&RT(P.slotId,P,r(),C,I)},onStripHover(y,C,I,P){if(I<y.top||I>y.bottom)return Hr(M=>M.kind==="strip"&&M.tabsNode===w),null;let L=P.length;for(let M=0;M<P.length;M++){const O=P[M],T=O.left+O.width/2;if(C<T){L=M;break}}const R=Ce.source;if(R){const M=w.tabs.findIndex(O=>O.slotId===R.slotId);M>=0&&M<L&&(L-=1)}return kl({kind:"strip",root:r(),tabsNode:w,insertIndex:L}),L},onStripLeave(){Hr(y=>y.kind==="strip"&&y.tabsNode===w)}}}function o(w){return w.type==="split"?w:null}function l(w){return w.type==="tabs"?w:null}function c(w){return w.type==="slot"?w:null}function u(w){return w.map(y=>b1(y.slotId)||void 0)}function d(w){return w.map(y=>m1(y.slotId)||void 0)}function f(w,y){const C=w[y];C&&xc(C.slotId)}function v(w,y){y(w)}function m(w,y){Ce.phase==="dragging"&&kl({kind:"strip",root:r(),tabsNode:y,insertIndex:0})}function S(){Hr(w=>w.kind==="strip"&&w.insertIndex===0)}var g=Me(),b=fe(g);{var A=w=>{var y=Me(),C=fe(y);{var I=R=>{const M=(T,D=jt)=>{{let j=V(()=>[...n(),D()]);rs(T,{get rootRef(){return r()},get path(){return i(j)},get rootOverride(){return t.rootOverride},get carousels(){return t.carousels}})}},O=V(()=>o(i(s)));{let T=V(()=>un.current.class==="compact");pT(R,{get direction(){return i(O).direction},get sizes(){return i(O).sizes},get pinned(){return i(O).pinned},get collapsed(){return i(O).collapsed},get fixed(){return i(O).fixed},get count(){return i(O).children.length},get pane(){return M},get compact(){return i(T)},onResize:(D,j)=>i(O).sizes[D]=j,onCollapseToggle:(D,j)=>{i(O).collapsed||(i(O).collapsed=i(O).children.map(()=>!1)),i(O).collapsed[D]=j}})}},P=R=>{const M=V(()=>l(i(s))),O=V(()=>t.carousels?.get(em(n())));var T=Me(),D=fe(T);{var j=Z=>{VT(Z,{get node(){return i(M)},get wrap(){return i(O).wrap},get rootRef(){return r()},get path(){return n()}})},B=Z=>{const q=($,G=jt)=>{const Q=V(()=>i(M)?.tabs[G()]);var F=Me(),H=fe(F);{var ee=J=>{var ce=HT(),de=p(ce);{let le=V(()=>({type:"slot",slotId:i(Q).slotId,viewId:i(Q).viewId}));hi(de,{get node(){return i(le)},get label(){return i(Q).label},get meta(){return i(Q).meta}})}var ne=_(de,2);xl(ne,{get rootRef(){return r()},get path(){return n()}}),h(ce),x(J,ce)};W(H,J=>{i(Q)&&J(ee)})}x($,F)},X=V(()=>a(i(M)));{let $=V(()=>i(M).tabs.map(ee=>ee.label)),G=V(()=>i(M).tabs.map(ee=>ee.icon)),Q=V(()=>u(i(M).tabs)),F=V(()=>d(i(M).tabs)),H=V(()=>i(M).tabs.map(ee=>ee.slotId));ST(Z,{get labels(){return i($)},get icons(){return i(G)},get activeTab(){return i(M).activeTab},onActiveChange:ee=>i(M).activeTab=ee,get body(){return q},get dragController(){return i(X)},get clickGuard(){return TT},get closable(){return i(Q)},get dirty(){return i(F)},onClose:ee=>f(i(M).tabs,ee),get tabIds(){return i(H)}})}},Y=Z=>{var q=YT(),X=p(q);{var $=Q=>{var F=KT();tv(F,(H,ee)=>v?.(H,ee),()=>i(M).emptyRenderer),x(Q,F)},G=Q=>{var F=WT(),H=p(F);h(F),K("pointermove",H,ee=>m(ee,i(M))),Ue("pointerleave",H,S),x(Q,F)};W(X,Q=>{i(M).emptyRenderer?Q($):Q(G,-1)})}h(q),x(Z,q)};W(D,Z=>{i(O)&&i(M)&&i(M).tabs.length>0?Z(j):i(M)&&i(M).tabs.length>0?Z(B,1):i(M)?.persistent&&Z(Y,2)})}x(R,T)},L=R=>{const M=V(()=>c(i(s)));var O=XT(),T=p(O);hi(T,{get node(){return i(M)},get meta(){return i(M).meta}});var D=_(T,2);xl(D,{get rootRef(){return r()},get path(){return n()}}),h(O),x(R,O)};W(C,R=>{i(s).type==="split"?R(I):i(s).type==="tabs"?R(P,1):R(L,-1)})}x(w,y)};W(b,w=>{i(s)&&w(A)})}x(e,g),ie()}me(["pointermove"]);var GT=E('<span class="drag-preview-icon svelte-133fiip"> </span>'),JT=E('<div class="drag-preview svelte-133fiip"><!> <span class="drag-preview-label svelte-133fiip"> </span></div>');function ZT(e,t){ae(t,!0);const n=V(()=>Ce.phase==="dragging"&&!!Ce.source),r=V(()=>Ce.source?Ce.pointerX-Ce.source.offsetX:0),s=V(()=>Ce.source?Ce.pointerY-Ce.source.offsetY:0),a=V(()=>Ce.source?.startRect.width??0),o=V(()=>Ce.source?.startRect.height??0),l=V(()=>Ce.source?.entry.label??""),c=V(()=>Ce.source?.entry.icon);var u=Me(),d=fe(u);{var f=v=>{var m=JT(),S=p(m);{var g=w=>{var y=GT(),C=p(y,!0);h(y),N(()=>z(C,i(c))),x(w,y)};W(S,w=>{i(c)&&w(g)})}var b=_(S,2),A=p(b,!0);h(b),h(m),N(()=>{We(m,`left: ${i(r)??""}px; top: ${i(s)??""}px; width: ${i(a)??""}px; height: ${i(o)??""}px;`),z(A,i(l))}),x(v,m)};W(d,v=>{i(n)&&v(f)})}x(e,u),ie()}const Kr=new Map;let pi=!1;function tm(e){if(Kr.size===0||pv(e.pointerId))return;const t=e.target;if(!t)return;const n=Array.from(Kr.keys());for(const r of n){const s=Kr.get(r);s&&(s.contains(t)||Pe.close(r))}}function QT(){pi||typeof document>"u"||(document.addEventListener("pointerdown",tm,!0),pi=!0)}function $T(){pi&&(Kr.size>0||(document.removeEventListener("pointerdown",tm,!0),pi=!1))}function eR(e,t){Kr.set(e,t),QT()}function tR(e){Kr.delete(e),$T()}function nR(e){const t=new Set;return nm(e,t),[...t]}function nm(e,t){switch(e.type){case"slot":{if(e.viewId!==null){const n=Su(e.viewId);n&&t.add(n)}return}case"tabs":{for(const n of e.tabs)if(n.viewId!==null){const r=Su(n.viewId);r&&t.add(r)}return}case"split":{for(const n of e.children)nm(n,t);return}}}var rR=E('<button class="sh3-float-popout svelte-1p734al" aria-label="Open in own window" title="Open in own window">⧉</button>'),sR=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>'),aR=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 iR(e,t){ae(t,!0);const n=typeof globalThis.__TAURI_INTERNALS__<"u",r=Bi("__layouts__");function s(G){G.preventDefault(),r.set({type:"float-header",ref:{floatId:a().id}}),xt.actions.openContextMenu({x:G.clientX,y:G.clientY,scope:{element:"float-header"}})}let a=te(t,"entry",15),o=U(!1),l={x:0,y:0},c=null,u=U(!1),d={pointer:{x:0,y:0},size:{w:0,h:0},min:{w:0,h:0}},f=null,v=U(void 0);const m=V(()=>Pe.isMaximized(a().id));Ie(()=>{if(a().dismissable&&i(v))return eR(a().id,i(v)),()=>tR(a().id)}),Ie(()=>{if(!i(v))return;const G=V1(a().id);if(G)return G.appendChild(i(v)),()=>{i(v)?.parentNode===G&&i(v).remove()}}),Ie(()=>()=>{i(o)&&b(),i(u)&&P()});function S(G){G.button===0&&(G.target.closest(".sh3-float-close")||G.target.closest(".sh3-float-maximize")||G.target.closest(".sh3-float-popout")||i(o)||(k(o,!0),c=G.pointerId,l={x:G.clientX-a().position.x,y:G.clientY-a().position.y},Pe.focus(a().id),document.addEventListener("pointermove",g),document.addEventListener("pointerup",A),document.addEventListener("pointercancel",w)))}function g(G){!i(o)||G.pointerId!==c||(Pe.unmaximize(a().id),a(a().position.x=G.clientX-l.x,!0),a(a().position.y=G.clientY-l.y,!0))}function b(){k(o,!1),c=null,document.removeEventListener("pointermove",g),document.removeEventListener("pointerup",A),document.removeEventListener("pointercancel",w)}function A(G){!i(o)||G.pointerId!==c||b()}function w(G){if(G.pointerId!==c){Dn("floatframe:cancel-other-id",G,{dragPointerId:c});return}Dn("floatframe:cancel-our-id",G,{dragPointerId:c}),b()}function y(G){G.target.closest(".sh3-float-close")||G.target.closest(".sh3-float-maximize")||G.target.closest(".sh3-float-popout")||Pe.toggleMaximize(a().id)}function C(G){G.button===0&&(G.stopPropagation(),!i(u)&&(k(u,!0),f=G.pointerId,d={pointer:{x:G.clientX,y:G.clientY},size:{w:a().size.w,h:a().size.h},min:Mi(a().content)},Pe.focus(a().id),document.addEventListener("pointermove",I),document.addEventListener("pointerup",L),document.addEventListener("pointercancel",R)))}function I(G){if(!i(u)||G.pointerId!==f)return;Pe.unmaximize(a().id);const Q=G.clientX-d.pointer.x,F=G.clientY-d.pointer.y;a(a().size.w=Math.max(d.min.w,d.size.w+Q),!0),a(a().size.h=Math.max(d.min.h,d.size.h+F),!0)}function P(){k(u,!1),f=null,document.removeEventListener("pointermove",I),document.removeEventListener("pointerup",L),document.removeEventListener("pointercancel",R)}function L(G){!i(u)||G.pointerId!==f||P()}function R(G){if(G.pointerId!==f){Dn("floatframe-grip:cancel-other-id",G,{resizePointerId:f});return}Dn("floatframe-grip:cancel-our-id",G,{resizePointerId:f}),P()}function M(){Pe.focus(a().id)}function O(G){G.stopPropagation(),Pe.toggleMaximize(a().id)}function T(G){G.stopPropagation(),Pe.close(a().id)}async function D(G){G.stopPropagation();try{await Ji({kind:"float",content:a().content,title:a().title,size:{w:a().size.w,h:a().size.h},activateShards:nR(a().content)}),Pe.close(a().id)}catch(Q){xt.toast.notify(`Pop-out failed: ${Q.message}`,{level:"error",duration:5e3})}}var j=aR();let B;var Y=p(j);{var Z=G=>{var Q=sR(),F=p(Q),H=p(F,!0);h(F);var ee=_(F,2),J=p(ee);{var ce=pe=>{var we=rR();K("click",we,D),x(pe,we)};W(J,pe=>{n&&pe(ce)})}var de=_(J,2),ne=p(de,!0);h(de);var le=_(de,2);h(ee),h(Q),N(()=>{re(Q,"data-float-id",a().id),z(H,a().title),re(de,"aria-label",i(m)?"Restore float":"Maximize float"),re(de,"aria-pressed",i(m)),z(ne,i(m)?"🗗":"🗖")}),K("pointerdown",Q,S),K("dblclick",Q,y),K("contextmenu",Q,s),K("click",de,O),K("click",le,T),x(G,Q)};W(Y,G=>{a().title&&G(Z)})}var q=_(Y,2),X=p(q);{let G=V(()=>({kind:"float",floatId:a().id}));rs(X,{get rootRef(){return i(G)},path:[]})}h(q);var $=_(q,2);h(j),Oe(j,G=>k(v,G),()=>i(v)),N(()=>{re(j,"aria-label",a().title??"Float panel"),B=We(j,"",B,{left:`${a().position.x??""}px`,top:`${a().position.y??""}px`,width:`${a().size.w??""}px`,height:`${a().size.h??""}px`})}),K("click",j,M),K("pointerdown",$,C),x(e,j),ie()}me(["click","pointerdown","dblclick","contextmenu"]);var oR=E('<div class="sh3-float-layer svelte-1rzcset"></div>');function lR(e,t){ae(t,!0);const n=V(()=>ht.floats),r=V(()=>un.current.class==="compact");function s(o){return!i(r)||o.dismissable===!0}var a=oR();be(a,23,()=>i(n),o=>o.id,(o,l,c)=>{var u=Me(),d=fe(u);{var f=m=>{iR(m,{get entry(){return i(n)[i(c)]},set entry(S){i(n)[i(c)]=S}})},v=V(()=>s(i(l)));W(d,m=>{i(v)&&m(f)})}x(o,u)}),h(a),x(e,a),ie()}var cR=E('<div class="sh3-overlay-root svelte-4ykdm7"><!></div>'),uR=E('<div class="sh3-overlays svelte-4ykdm7" aria-hidden="true"></div>');function rm(e,t){ae(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=ve({});Ie(()=>{for(const{name:a}of n){const o=r[a];o&&hw(a,o)}return()=>{for(const{name:a}of n)pw(a)}}),Ie(()=>{const a=ht.tree;return B1(a.floats,()=>({w:window.innerWidth,h:window.innerHeight})),()=>F1()});var s=uR();be(s,21,()=>n,({layer:a,name:o,zToken:l})=>a,(a,o)=>{let l=()=>i(o).layer,c=()=>i(o).name,u=()=>i(o).zToken;var d=cR(),f=p(d);{var v=S=>{lR(S,{})},m=S=>{ZT(S,{})};W(f,S=>{c()==="floating"?S(v):c()==="drag-preview"&&S(m,1)})}h(d),Oe(d,(S,g)=>r[g]=S,S=>r?.[S],()=>[c()]),N(()=>{re(d,"data-sh3-overlay",c()),re(d,"data-sh3-layer",l()),We(d,`z-index: var(${u()??""});`)}),x(a,d)}),h(s),x(e,s),ie()}var dR=E('<div class="guest-signin-error svelte-pymkh"> </div>'),fR=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>'),vR=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),hR=E('<div class="guest-banner-slot"><!></div>');function pR(e,t){ae(t,!0);let n=U(!1),r=U(""),s=U(""),a=U(null),o=U(!1);async function l(){if(!i(r).trim()||!i(s).trim()||i(o))return;k(o,!0),k(a,null);const v=await Eh(i(r).trim(),i(s).trim());k(o,!1),v.ok?k(n,!1):k(a,v.error,!0)}var c=hR(),u=p(c);{var d=v=>{var m=vR(),S=fe(m),g=_(p(S),2);h(S);var b=_(S,2);{var A=w=>{var y=fR(),C=p(y),I=p(C),P=p(I);xe(P);var L=_(P,2);xe(L);var R=_(L,2),M=p(R),O=p(M,!0);h(M);var T=_(M,2);h(R),h(I);var D=_(I,2);{var j=B=>{var Y=dR(),Z=p(Y,!0);h(Y),N(()=>z(Z,i(a))),x(B,Y)};W(D,B=>{i(a)&&B(j)})}h(C),h(y),N(B=>{P.disabled=i(o),L.disabled=i(o),M.disabled=B,z(O,i(o)?"Signing in...":"Sign in")},[()=>i(o)||!i(r).trim()||!i(s).trim()]),Ue("submit",I,B=>{B.preventDefault(),l()}),Te(P,()=>i(r),B=>k(r,B)),Te(L,()=>i(s),B=>k(s,B)),K("click",T,()=>{k(n,!1),k(a,null)}),x(w,y)};W(b,w=>{i(n)&&w(A)})}K("click",g,()=>{k(n,!0)}),x(v,m)},f=V(()=>Ah());W(u,v=>{i(f)&&v(d)})}h(c),x(e,c),ie()}me(["click"]);var mR=E('<code class="sh3-consent-scope svelte-14me5sj"> </code>'),bR=E('<dt class="svelte-14me5sj">Peer</dt> <dd class="svelte-14me5sj"> </dd>',1),gR=E('<dt class="svelte-14me5sj">Expires in</dt> <dd class="svelte-14me5sj"> </dd>',1),yR=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 _R(e,t){ae(t,!0);let n=U(null);Ie(()=>Hh(u=>{k(n,u,!0)}));function r(){i(n)&&(pl(i(n).requestId,!0),k(n,null))}function s(){i(n)&&(pl(i(n).requestId,!1),k(n,null))}var a=Me(),o=fe(a);{var l=c=>{var u=yR(),d=p(u),f=p(d),v=p(f),m=p(v,!0);h(v),yt(),h(f);var S=_(f,2),g=_(p(S),2),b=p(g,!0);h(g);var A=_(g,4);be(A,20,()=>i(n).scopes,M=>M,(M,O)=>{var T=mR(),D=p(T,!0);h(T),N(()=>z(D,O)),x(M,T)}),h(A);var w=_(A,2);{var y=M=>{var O=bR(),T=_(fe(O),2),D=p(T);h(T),N(()=>z(D,`${i(n).peerRole??"—"??""}${i(n).peerId?` · ${i(n).peerId}`:""}`)),x(M,O)};W(w,M=>{(i(n).peerRole||i(n).peerId)&&M(y)})}var C=_(w,2);{var I=M=>{var O=gR(),T=_(fe(O),2),D=p(T);h(T),N(j=>z(D,`${j??""}s`),[()=>Math.round(i(n).expiresIn/1e3)]),x(M,O)};W(C,M=>{i(n).expiresIn&&M(I)})}h(S);var P=_(S,2),L=p(P);sa(L,!0);var R=_(L,2);h(P),h(d),h(u),N(()=>{z(m,i(n).shardId),z(b,i(n).label)}),K("click",L,s),K("click",R,r),x(c,u)};W(o,c=>{i(n)&&c(l)})}x(e,a),ie()}me(["click"]);var wR=E('<span class="sh3-brand svelte-18lk809">SH3</span>'),kR=E('<span class="sh3-brand sh3-brand-app svelte-18lk809"> </span>'),xR=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),SR=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),IR=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),ER=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),AR=E('<div class="sh3-brand-slot svelte-18lk809"><!></div>');function sm(e,t){ae(t,!0);const n=V(()=>wt().activeAppId),r=V(mw),s=V(()=>wr.activeProjectId),a=V(()=>i(n)?yn(i(n))?.manifest.label??i(n):null),o=V(()=>i(r)?yn(i(r))?.manifest.label??i(r):null),l=V(()=>i(s)?Gt.projects.find(C=>C.id===i(s))?.name??i(s):null),c=V(()=>i(s)?i(n)?"project-app":i(r)?"project-breadcrumb":"project-home":i(n)?"app":i(r)?"breadcrumb":"brand");function u(){i(r)&&Fn(i(r))}function d(){hh(null)}function f(){i(n)&&vs()}var v=AR(),m=p(v);{var S=C=>{var I=wR();x(C,I)},g=C=>{var I=kR(),P=p(I,!0);h(I),N(()=>z(P,i(a))),x(C,I)},b=C=>{var I=xR(),P=_(fe(I),4),L=p(P,!0);h(P),N(()=>z(L,i(o))),K("click",P,u),x(C,I)},A=C=>{var I=SR(),P=fe(I),L=_(P,4),R=p(L,!0);h(L),N(()=>z(R,i(l))),K("click",P,d),x(C,I)},w=C=>{var I=IR(),P=fe(I),L=p(P,!0);h(P);var R=_(P,4),M=p(R,!0);h(R),N(()=>{z(L,i(l)),z(M,i(a))}),x(C,I)},y=C=>{var I=ER(),P=fe(I),L=_(P,4),R=p(L,!0);h(L);var M=_(L,4),O=p(M,!0);h(M),N(()=>{z(R,i(l)),z(O,i(o))}),K("click",P,d),K("click",L,f),K("click",M,u),x(C,I)};W(m,C=>{i(c)==="brand"?C(S):i(c)==="app"?C(g,1):i(c)==="breadcrumb"?C(b,2):i(c)==="project-home"?C(A,3):i(c)==="project-app"?C(w,4):i(c)==="project-breadcrumb"&&C(y,5)})}h(v),x(e,v),ie()}me(["click"]);const CR=Object.freeze([{id:"file",label:"File"},{id:"edit",label:"Edit"},{id:"view",label:"View"},{id:"window",label:"Window"},{id:"help",label:"Help"}]);function mi(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function am(e,t){if(e==null)return[];if(t==null)return CR.slice();const n=t.map((r,s)=>({c:r,i:s}));return n.sort((r,s)=>{const a=r.c.order,o=s.c.order;return a!=null&&o!=null?a-o||r.i-s.i:a!=null?-1:o!=null?1:r.i-s.i}),n.map(r=>r.c)}function im(e,t,n){const r=[],s=new Set;for(const a of e){if(a.action.menuItem!==n||a.action.submenuOf!==void 0||s.has(a.action.id))continue;const o=va(a.action.scope,t,a.ownerShardId);o&&(o==="app"&&!t.activeAppRequiredShards.has(a.ownerShardId)||(s.add(a.action.id),r.push({id:a.action.id,label:Vt(a.action),shortcut:fa(a.action,t.bindings,t.platform),group:a.action.group??"",icon:a.action.icon,checked:mi(a.action.checked),disabled:mi(a.action.disabled),submenu:a.action.submenu===!0})))}return r}function om(e,t,n){const r=[],s=new Set;for(const a of e){if(a.action.submenuOf!==n||s.has(a.action.id))continue;const o=va(a.action.scope,t,a.ownerShardId);o&&(o==="app"&&!t.activeAppRequiredShards.has(a.ownerShardId)||(s.add(a.action.id),r.push({id:a.action.id,label:Vt(a.action),shortcut:fa(a.action,t.bindings,t.platform),group:a.action.group??"",icon:a.action.icon,checked:mi(a.action.checked),disabled:mi(a.action.disabled),submenu:a.action.submenu===!0})))}return r}var TR=E('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),RR=E('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),LR=E('<button type="button" class="sh3-menubar-button svelte-bke3dt"><!> <span class="sh3-menubar-label"> </span> <!></button>');function MR(e,t){ae(t,!0);let n=U(void 0);function r(g){const b=new Map,A=[];for(const w of g){const y=w.group||"";b.has(y)||(b.set(y,[]),A.push(y)),b.get(y).push(w)}return A.map(w=>({id:`group:${w||"_default"}`,items:b.get(w)}))}function s(g,b,A){const w=et().find(y=>y.action.id===g);if(!(!w||typeof w.action.run!="function")){try{w.action.run({action:{id:g,label:Vt(w.action)},appId:b.activeAppId,viewId:b.focusedViewId??void 0,selection:b.selection??void 0,invokedVia:"palette",dispatch:()=>{}})}catch(y){console.error(`[sh3] menu-bar action "${g}" threw:`,y)}A.close()}}function a(g,b,A){const w=document.querySelector(".sh3-popup-host");if(!w)return;const y=document.createElement("div");y.className="sh3-popup-submenu",y.style.position="absolute",y.style.pointerEvents="auto";const I=(w.querySelector(".sh3-ctx-active")??w).getBoundingClientRect();y.style.left=`${I.right+2}px`,y.style.top=`${I.top}px`,w.appendChild(y);const P=om(et(),b,g),L=Ke(ai,{target:y,props:{sections:r(P),onInvoke:R=>s(R,b,A),onDismiss:()=>{tt(L),y.remove()}}})}function o(){if(!i(n))return;const g=wt(),b=Go.show(ai,{anchor:i(n),placement:"bottom-start"},{sections:r(t.items),onInvoke:A=>{const w=et().find(y=>y.action.id===A);if(w){if(w.action.submenu===!0){a(A,g,b);return}s(A,g,b)}},onDismiss:()=>Go.close()})}const l=V(()=>t.container.iconPosition??"before");var c=LR(),u=p(c);{var d=g=>{var b=TR();N(()=>re(b,"data-icon",t.container.icon)),x(g,b)};W(u,g=>{t.container.icon&&i(l)==="before"&&g(d)})}var f=_(u,2),v=p(f,!0);h(f);var m=_(f,2);{var S=g=>{var b=RR();N(()=>re(b,"data-icon",t.container.icon)),x(g,b)};W(m,g=>{t.container.icon&&i(l)==="after"&&g(S)})}h(c),Oe(c,g=>k(n,g),()=>i(n)),N(()=>z(v,t.container.label)),K("click",c,o),x(e,c),ie()}me(["click"]);var PR=E('<div class="sh3-menubar svelte-7gc0wa" role="menubar"></div>');function lm(e,t){ae(t,!0);const n=V(wt),r=V(()=>i(n).activeAppId),s=V(()=>{if(i(r))return yn(i(r))?.manifest.menus}),a=V(()=>am(i(r),i(s))),o=V(()=>{const c=[],u=et();for(const d of i(a)){const f=im(u,i(n),d.id);f.length>0&&c.push({container:d,items:f})}return c});var l=PR();be(l,21,()=>i(o),({container:c,items:u})=>c.id,(c,u)=>{let d=()=>i(u).container,f=()=>i(u).items;MR(c,{get container(){return d()},get items(){return f()}})}),h(l),x(e,l),ie()}const DR={type:"slot",slotId:"__sh3core__:compact:empty",viewId:null,role:"body"};function ss(e){return e??"body"}function cm(e){return e.type==="slot"?[{slotId:e.slotId,viewId:e.viewId,label:e.slotId,role:ss(e.role)}]:e.type==="tabs"?e.tabs.map(t=>({slotId:t.slotId,viewId:t.viewId,label:t.label,icon:t.icon,role:ss(e.role)})):e.children.flatMap(cm)}function _d(e){return cm(e).some(t=>t.role==="body")}function um(e){if(e.type==="slot"||e.type==="tabs")return ss(e.role)==="body"?e:null;const t=[];for(let n=0;n<e.children.length;n++){const r=um(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 wd(e){return e==="inspector"?"right":"left"}function zR(e){const t={left:[],right:[],top:[]};function n(r,s){if(r.type==="slot"){const a=ss(r.role);if(a==="body")return;const o=s??wd(a);t[o].push({slotId:r.slotId,viewId:r.viewId,label:r.slotId,role:a});return}if(r.type==="tabs"){const a=ss(r.role);if(a==="body")return;const o=s??wd(a);for(const l of r.tabs)t[o].push({slotId:l.slotId,viewId:l.viewId,label:l.label,icon:l.icon,role:a});return}if(r.direction==="horizontal")for(let a=0;a<r.children.length;a++){const o=r.children[a];let l=s;s===null&&!_d(o)&&(a===0?l="left":a===r.children.length-1&&(l="right")),n(o,l)}else for(let a=0;a<r.children.length;a++){const o=r.children[a];let l=s;s===null&&a===0&&!_d(o)&&(l="top"),n(o,l)}}return n(e,null),t}function Co(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 dm(e){const n=um(e)??DR,r=zR(e);return{bodyRoot:n,drawers:{left:Co(r.left),right:Co(r.right),top:Co(r.top)},carousels:UT(n)}}var jR=E('<span class="shortcut svelte-vkxo1d"> </span>'),OR=E('<button class="item child svelte-vkxo1d"><span class="label svelte-vkxo1d"> </span> <!></button>'),NR=E('<div class="subitems svelte-vkxo1d"></div>'),qR=E('<button class="item submenu svelte-vkxo1d"><span>▸</span> <span class="label svelte-vkxo1d"> </span></button> <!>',1),BR=E('<span class="shortcut svelte-vkxo1d"> </span>'),FR=E('<button class="item svelte-vkxo1d"><span class="label svelte-vkxo1d"> </span> <!></button>'),VR=E('<div class="items svelte-vkxo1d"></div>'),UR=E('<button class="container svelte-vkxo1d"><span>▸</span> <span class="label svelte-vkxo1d"> </span></button> <!>',1),HR=E('<div class="backdrop svelte-vkxo1d" role="presentation"></div> <div class="sheet svelte-vkxo1d" role="dialog" aria-label="Menu" data-sh3-region="menu-sheet"><div class="scroll svelte-vkxo1d"></div> <button class="cancel svelte-vkxo1d">Cancel</button></div>',1);function KR(e,t){ae(t,!0);const n=V(wt),r=V(()=>i(n).activeAppId),s=V(()=>{if(i(r))return yn(i(r))?.manifest.menus}),a=V(()=>am(i(r),i(s))),o=V(()=>{const g=[],b=et();for(const A of i(a)){const w=im(b,i(n),A.id);w.length>0&&g.push({containerId:A.id,label:A.label,items:w})}return g});let l=U(ve(new Set)),c=U(ve(new Set));function u(g){const b=new Set(i(l));b.has(g)?b.delete(g):b.add(g),k(l,b,!0)}function d(g){const b=new Set(i(c));b.has(g)?b.delete(g):b.add(g),k(c,b,!0)}function f(g){const b=et().find(A=>A.action.id===g);if(!(!b||typeof b.action.run!="function")){try{b.action.run({action:{id:g,label:Vt(b.action)},appId:i(n).activeAppId,viewId:i(n).focusedViewId??void 0,selection:i(n).selection??void 0,invokedVia:"palette",dispatch:()=>{}})}catch(A){console.error(`[sh3] menu-sheet action "${g}" threw:`,A)}t.onClose()}}var v=Me(),m=fe(v);{var S=g=>{var b=HR(),A=fe(b),w=_(A,2),y=p(w);be(y,21,()=>i(o),({containerId:I,label:P,items:L})=>I,(I,P)=>{let L=()=>i(P).containerId,R=()=>i(P).label,M=()=>i(P).items;var O=UR(),T=fe(O),D=p(T);let j;var B=_(D,2),Y=p(B,!0);h(B),h(T);var Z=_(T,2);{var q=$=>{var G=VR();be(G,21,M,Q=>Q.id,(Q,F)=>{var H=Me(),ee=fe(H);{var J=de=>{var ne=qR(),le=fe(ne),pe=p(le);let we;var qe=_(pe,2),Be=p(qe,!0);h(qe),h(le);var ot=_(le,2);{var nr=se=>{var Ee=NR();be(Ee,21,()=>om(et(),i(n),i(F).id),ze=>ze.id,(ze,ke)=>{var je=OR(),Ye=p(je),Xe=p(Ye,!0);h(Ye);var rn=_(Ye,2);{var wn=dt=>{var sn=jR(),to=p(sn,!0);h(sn),N(()=>z(to,i(ke).shortcut)),x(dt,sn)};W(rn,dt=>{i(ke).shortcut&&dt(wn)})}h(je),N(()=>{je.disabled=i(ke).disabled,z(Xe,i(ke).label)}),K("click",je,()=>f(i(ke).id)),x(ze,je)}),h(Ee),x(se,Ee)},oe=V(()=>i(c).has(i(F).id));W(ot,se=>{i(oe)&&se(nr)})}N((se,Ee)=>{re(le,"aria-expanded",se),le.disabled=i(F).disabled,we=he(pe,1,"caret svelte-vkxo1d",null,we,Ee),z(Be,i(F).label)},[()=>i(c).has(i(F).id),()=>({open:i(c).has(i(F).id)})]),K("click",le,()=>d(i(F).id)),x(de,ne)},ce=de=>{var ne=FR(),le=p(ne),pe=p(le,!0);h(le);var we=_(le,2);{var qe=Be=>{var ot=BR(),nr=p(ot,!0);h(ot),N(()=>z(nr,i(F).shortcut)),x(Be,ot)};W(we,Be=>{i(F).shortcut&&Be(qe)})}h(ne),N(()=>{ne.disabled=i(F).disabled,z(pe,i(F).label)}),K("click",ne,()=>f(i(F).id)),x(de,ne)};W(ee,de=>{i(F).submenu?de(J):de(ce,-1)})}x(Q,H)}),h(G),x($,G)},X=V(()=>i(l).has(L()));W(Z,$=>{i(X)&&$(q)})}N(($,G)=>{re(T,"aria-expanded",$),j=he(D,1,"caret svelte-vkxo1d",null,j,G),z(Y,R())},[()=>i(l).has(L()),()=>({open:i(l).has(L())})]),K("click",T,()=>u(L())),x(I,O)}),h(y);var C=_(y,2);h(w),K("click",A,function(...I){t.onClose?.apply(this,I)}),K("keydown",A,I=>{I.key==="Escape"&&t.onClose()}),K("click",C,function(...I){t.onClose?.apply(this,I)}),x(g,b)};W(m,g=>{t.open&&g(S)})}x(e,v),ie()}me(["click","keydown"]);var WR=E('<span class="kind svelte-cq4vzh">layout</span>'),YR=E('<span class="kind svelte-cq4vzh">float</span>'),XR=E('<button class="row svelte-cq4vzh"><span class="label svelte-cq4vzh"> </span> <!></button>'),GR=E('<div class="backdrop svelte-cq4vzh" role="presentation"></div> <div class="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>',1);function JR(e,t){ae(t,!0);const n=V(wt),r=V(()=>{if(qi()==="home")return"Home";const R=i(n).activeAppId;return R?yn(R)?.manifest.label??R:"Home"});function s(R){if(R.title)return R.title;if(R.content.type==="tabs"){const M=R.content.tabs[R.content.activeTab]??R.content.tabs[0];if(M)return M.label}return R.id}const a=V(()=>{const R=[{id:"docked",label:i(r)}];for(const M of ht.tree.floats)M.dismissable||R.push({id:M.id,label:s(M)});return R});function o(R){const M=hn.current;return R==="docked"?M.kind==="docked":M.kind==="float"&&M.floatId===R}function l(R){R==="docked"?hn.reset():hn.setRoot({kind:"float",floatId:R}),t.onClose()}const c=.4;let u=U(null),d=U(0),f=0,v=null,m=null;function S(R){return i(u)===R?i(d):0}function g(R){return i(u)===R?"none":"transform 160ms ease-out"}function b(R,M){M!=="docked"&&R.button===0&&i(u)===null&&(k(u,M,!0),f=R.clientX,k(d,0),v=R.pointerId,m=R.currentTarget??document.querySelector(`[data-sh3-floats-row="${M}"]`),document.addEventListener("pointermove",A),document.addEventListener("pointerup",y),document.addEventListener("pointercancel",C))}function A(R){R.pointerId===v&&k(d,R.clientX-f)}function w(){document.removeEventListener("pointermove",A),document.removeEventListener("pointerup",y),document.removeEventListener("pointercancel",C),k(u,null),v=null,f=0,k(d,0),m=null}function y(R){if(R.pointerId!==v)return;const M=i(u),O=m?.clientWidth??0,T=i(d);w(),M&&M!=="docked"&&O>0&&Math.abs(T)>=O*c&&Pe.close(M)}function C(R){R.pointerId===v&&w()}var I=Me(),P=fe(I);{var L=R=>{var M=GR(),O=fe(M),T=_(O,2),D=p(T);be(D,21,()=>i(a),B=>B.id,(B,Y)=>{var Z=XR();let q;var X=p(Z),$=p(X,!0);h(X);var G=_(X,2);{var Q=H=>{var ee=WR();x(H,ee)},F=H=>{var ee=YR();x(H,ee)};W(G,H=>{i(Y).id==="docked"?H(Q):H(F,-1)})}h(Z),N((H,ee)=>{re(Z,"data-sh3-floats-row",i(Y).id),re(Z,"data-current",H),q=We(Z,"",q,ee),z($,i(Y).label)},[()=>o(i(Y).id)?"true":"false",()=>({transform:`translateX(${S(i(Y).id)??""}px)`,transition:g(i(Y).id)})]),K("click",Z,()=>l(i(Y).id)),K("pointerdown",Z,H=>b(H,i(Y).id)),x(B,Z)}),h(D);var j=_(D,2);h(T),K("click",O,function(...B){t.onClose?.apply(this,B)}),K("keydown",O,B=>{B.key==="Escape"&&t.onClose()}),K("click",j,function(...B){t.onClose?.apply(this,B)}),x(R,M)};W(P,R=>{t.open&&R(L)})}x(e,I),ie()}me(["click","keydown","pointerdown"]);var ZR=E('<span data-sh3-anchor="left" class="svelte-q1hcw0"><!></span>'),QR=E('<span data-sh3-anchor="right" class="svelte-q1hcw0"><!></span>'),$R=E('<span data-sh3-anchor="top" class="svelte-q1hcw0"><!></span>'),eL=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> <!> <!>',1);function tL(e,t){ae(t,!0);const n=V(Bv),r=V(()=>dm(i(n))),s=V(wt),a=V(()=>qi()==="home"),o=V(()=>{const Z=i(s).activeAppId;return Z?yn(Z)?.manifest.label??Z:"SH3"}),l=V(()=>{if(i(r).carousels.size===0)return null;let Z=null,q="";for(const[X,$]of i(r).carousels)(Z===null||X<Z)&&(Z=X,q=$.activeLabel);return q}),c=V(()=>{const Z=hn.current;if(Z.kind!=="float")return null;const q=ht.tree.floats.find(X=>X.id===Z.floatId);return q?q.title?q.title:q.content.type==="tabs"?(q.content.tabs[q.content.activeTab]??q.content.tabs[0])?.label??null:null:null}),u=V(()=>{if(i(c))return i(c);const Z=i(l);return Z?`${i(o)} › ${Z}`:i(o)});let d=U(!1),f=U(!1);function v(Z){xt.drawers.toggle(Z)}function m(){xt.actions.openPalette()}var S=eL(),g=fe(S),b=p(g),A=p(b);Pn(A,{variant:"icon",icon:"house",ariaLabel:"Home",title:"Home",get disabled(){return i(a)},onclick:()=>vs()});var w=_(A,2);{var y=Z=>{var q=ZR(),X=p(q);Pn(X,{variant:"icon",icon:"menu",ariaLabel:"Toggle left drawer",title:"Toggle left drawer",onclick:()=>v("left")}),h(q),x(Z,q)};W(w,Z=>{i(r).drawers.left&&Z(y)})}var C=_(w,2);{var I=Z=>{var q=QR(),X=p(q);Pn(X,{variant:"icon",icon:"panel-right",ariaLabel:"Toggle right drawer",title:"Toggle right drawer",onclick:()=>v("right")}),h(q),x(Z,q)};W(C,Z=>{i(r).drawers.right&&Z(I)})}var P=_(C,2);{var L=Z=>{var q=$R(),X=p(q);Pn(X,{variant:"icon",icon:"panel-top",ariaLabel:"Toggle top drawer",title:"Toggle top drawer",onclick:()=>v("top")}),h(q),x(Z,q)};W(P,Z=>{i(r).drawers.top&&Z(L)})}h(b);var R=_(b,2),M=p(R,!0);h(R);var O=_(R,2),T=p(O);Pn(T,{variant:"icon",icon:"command",ariaLabel:"Open command palette",title:"Open command palette",onclick:m});var D=_(T,2);Pn(D,{variant:"icon",icon:"layers",ariaLabel:"Floats",title:"Floats",get pressed(){return i(f)},onclick:()=>{k(f,!i(f))}});var j=_(D,2);Pn(j,{variant:"icon",icon:"ellipsis-vertical",ariaLabel:"Open menu",title:"Open menu",onclick:()=>{k(d,!0)}}),h(O),h(g);var B=_(g,2);KR(B,{get open(){return i(d)},onClose:()=>k(d,!1)});var Y=_(B,2);JR(Y,{get open(){return i(f)},onClose:()=>k(f,!1)}),N(()=>z(M,i(u))),x(e,S),ie()}var nL=E('<button role="tab"> </button>'),rL=E('<div class="tab-strip svelte-8dp9bg" role="tablist"></div>'),sL=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 aL(e,t){ae(t,!0);const n=V(()=>t.spec.slots.find(l=>l.slotId===t.activeSlotId)??t.spec.slots[0]),r=V(()=>({type:"slot",slotId:i(n).slotId,viewId:i(n).viewId,role:i(n).role}));var s=Me(),a=fe(s);{var o=l=>{var c=sL(),u=fe(c),d=_(u,2),f=p(d),v=p(f),m=p(v,!0);h(v);var S=_(v,2);h(f);var g=_(f,2);{var b=y=>{var C=rL();be(C,21,()=>t.spec.slots,I=>I.slotId,(I,P)=>{var L=nL();let R;var M=p(L,!0);h(L),N(()=>{re(L,"aria-selected",i(P).slotId===i(n).slotId),R=he(L,1,"svelte-8dp9bg",null,R,{active:i(P).slotId===i(n).slotId}),z(M,i(P).label)}),K("click",L,()=>t.onActivate(i(P).slotId)),x(I,L)}),h(C),x(y,C)};W(g,y=>{t.spec.slots.length>1&&y(b)})}var A=_(g,2),w=p(A);hi(w,{get node(){return i(r)},get label(){return i(n).label}}),h(A),h(d),N(()=>{he(d,1,`drawer drawer-${t.anchor??""}`,"svelte-8dp9bg"),re(d,"data-sh3-anchor",t.anchor),z(m,i(n).label)}),K("click",u,function(...y){t.onClose?.apply(this,y)}),K("keydown",u,y=>{y.key==="Escape"&&t.onClose()}),K("click",S,function(...y){t.onClose?.apply(this,y)}),x(l,c)};W(a,l=>{t.open&&l(o)})}x(e,s),ie()}me(["click","keydown"]);var iL=E('<div class="compact-body svelte-1sc410j" data-sh3-region="compact-body"><!></div> <!>',1);function oL(e,t){ae(t,!0);const n=V(Bv),r=V(()=>dm(i(n))),s=["left","right","top"];var a=iL(),o=fe(a),l=p(o);rs(l,{get rootOverride(){return i(r).bodyRoot},get carousels(){return i(r).carousels}}),h(o);var c=_(o,2);be(c,16,()=>s,u=>u,(u,d)=>{const f=V(()=>i(r).drawers[d]);var v=Me(),m=fe(v);{var S=g=>{aL(g,{get anchor(){return d},get spec(){return i(f)},get open(){return Ot.state[d].open},get activeSlotId(){return Ot.state[d].activeSlotId},onClose:()=>Ot.close(d),onActivate:b=>Ot.activate(d,b)})};W(m,g=>{i(f)&&g(S)})}x(u,v)}),x(e,a),ie()}var lL=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>'),cL=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>'),uL=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>'),dL=E('<footer class="sh3-statusbar svelte-1amm732" data-sh3-region="statusbar"></footer>'),fL=E('<div class="sh3 svelte-1amm732"><!> <!> <main class="sh3-content svelte-1amm732" data-sh3-region="content" data-sh3-layer="0"><!></main> <!> <!> <!></div>');function vL(e,t){ae(t,!0);let n=U(void 0);const r=V(ul),s=V(ts),a=V(Tt),o=V(()=>qi()==="home"),l=V(()=>xt.viewport.current.class);Ie(()=>{ht.tree,Gk()}),Ie(()=>ul()?qx():void 0),Ie(()=>{const I=i(n);if(!I)return;const P=new Set;function L(M){const O=I.getBoundingClientRect(),T=M.clientX-O.left;if(T>=Za&&T<=O.width-Za)return;da(M.pointerId,{ownerId:"sh3:edge",axis:"x",priority:"edge",depth:0})&&P.add(M.pointerId)}function R(M){P.has(M.pointerId)&&(_r(M.pointerId,"sh3:edge"),P.delete(M.pointerId))}return I.addEventListener("pointerdown",L),I.addEventListener("pointerup",R),I.addEventListener("pointercancel",R),()=>{I.removeEventListener("pointerdown",L),I.removeEventListener("pointerup",R),I.removeEventListener("pointercancel",R);for(const M of P)_r(M,"sh3:edge");P.clear()}});var c=fL(),u=p(c);{var d=I=>{var P=uL(),L=p(P),R=p(L),M=p(R);h(R),h(L);var O=_(L,2);sm(O,{});var T=_(O,2);lm(T,{});var D=_(T,2);{var j=B=>{var Y=cL(),Z=p(Y),q=p(Z,!0);h(Z);var X=_(Z,2),$=p(X,!0);h(X);var G=_(X,2);{var Q=H=>{var ee=lL(),J=p(ee),ce=p(J);h(J),h(ee),N(()=>re(ce,"href",`${Qn}#log-out`)),K("click",ee,()=>K0()),x(H,ee)},F=V(()=>!Y0());W(G,H=>{i(F)&&H(Q)})}h(Y),N(()=>{z(q,i(s).displayName),z($,i(a)?"admin":"user")}),x(B,Y)};W(D,B=>{i(r)&&i(s)&&B(j)})}h(P),N(()=>{L.disabled=i(o),re(M,"href",`${Qn}#house`)}),K("click",L,()=>vs()),x(I,P)},f=I=>{tL(I,{})};W(u,I=>{i(l)==="desktop"?I(d):I(f,-1)})}var v=_(u,2);pR(v,{});var m=_(v,2),S=p(m);{var g=I=>{rs(I,{})},b=I=>{oL(I,{})};W(S,I=>{i(l)==="desktop"?I(g):I(b,-1)})}h(m),Oe(m,I=>k(n,I),()=>i(n));var A=_(m,2);{var w=I=>{var P=dL();x(I,P)};W(A,I=>{i(l)==="desktop"&&I(w)})}var y=_(A,2);rm(y,{});var C=_(y,2);_R(C,{}),h(c),N(()=>re(c,"data-sh3-viewport",i(l))),x(e,c),ie()}me(["click"]);var hL=E('<button type="button" class="signin-link svelte-lh4k15">Create an account</button>'),pL=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),mL=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),bL=E('<div class="signin-error svelte-lh4k15"> </div>'),gL=E('<div class="signin-wall svelte-lh4k15"><div class="signin-card svelte-lh4k15"><h1 class="signin-brand svelte-lh4k15">SH3</h1> <!> <!></div></div>');function yL(e,t){ae(t,!0);let n=U("login"),r=U(""),s=U(""),a=U(""),o=U(null),l=U(!1);async function c(){if(!i(r).trim()||!i(s).trim()||i(l))return;k(l,!0),k(o,null);const w=await Eh(i(r).trim(),i(s).trim());k(l,!1),w.ok?t.onSuccess():k(o,w.error,!0)}async function u(){if(!i(r).trim()||!i(s).trim()||i(l))return;k(l,!0),k(o,null);const w=await H0(i(r).trim(),i(s).trim(),i(a).trim()||void 0);k(l,!1),w.ok?t.onSuccess():k(o,w.error,!0)}function d(w){k(n,w,!0),k(o,null)}var f=gL(),v=p(f),m=_(p(v),2);{var S=w=>{var y=pL(),C=fe(y),I=p(C);xe(I);var P=_(I,2);xe(P);var L=_(P,2),R=p(L,!0);h(L),h(C);var M=_(C,2);{var O=T=>{var D=hL();K("click",D,()=>d("register")),x(T,D)};W(M,T=>{t.selfRegistration&&T(O)})}N(T=>{I.disabled=i(l),P.disabled=i(l),L.disabled=T,z(R,i(l)?"Signing in...":"Sign in")},[()=>i(l)||!i(r).trim()||!i(s).trim()]),Ue("submit",C,T=>{T.preventDefault(),c()}),Te(I,()=>i(r),T=>k(r,T)),Te(P,()=>i(s),T=>k(s,T)),x(w,y)},g=w=>{var y=mL(),C=fe(y),I=p(C);xe(I);var P=_(I,2);xe(P);var L=_(P,2);xe(L);var R=_(L,2),M=p(R,!0);h(R),h(C);var O=_(C,2);N(T=>{I.disabled=i(l),P.disabled=i(l),L.disabled=i(l),R.disabled=T,z(M,i(l)?"Creating...":"Create account")},[()=>i(l)||!i(r).trim()||!i(s).trim()]),Ue("submit",C,T=>{T.preventDefault(),u()}),Te(I,()=>i(r),T=>k(r,T)),Te(P,()=>i(a),T=>k(a,T)),Te(L,()=>i(s),T=>k(s,T)),K("click",O,()=>d("login")),x(w,y)};W(m,w=>{i(n)==="login"?w(S):w(g,-1)})}var b=_(m,2);{var A=w=>{var y=bL(),C=p(y,!0);h(y),N(()=>z(C,i(o))),x(w,y)};W(b,w=>{i(o)&&w(A)})}h(v),h(f),x(e,f),ie()}me(["click"]);function _L(){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:Ux(t)}}catch(n){return{error:n.message}}}function wL(e){return e.kind==="float"?{docked:e.content,floats:[]}:{docked:{type:"slot",slotId:"satellite:root",viewId:null},floats:[]}}var kL=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),xL=E("<div><!> <!></div>");function SL(e,t){ae(t,!0),Ie(()=>{if(t.payload.kind==="float")j1(wL(t.payload).docked);else if(t.payload.kind==="app"){const c=t.payload.appId;queueMicrotask(()=>{Fn(c,{skipLastApp:!0,skipSwitchToHome:!0})})}});var n=xL();let r;var s=p(n);{var a=c=>{var u=kL(),d=fe(u),f=p(d);sm(f,{});var v=_(f,2);lm(v,{}),yt(2),h(d);var m=_(d,2),S=p(m);rs(S,{}),h(m),x(c,u)},o=c=>{rs(c,{})};W(s,c=>{t.payload.kind==="app"?c(a):c(o,-1)})}var l=_(s,2);rm(l,{}),h(n),N(()=>r=he(n,1,"sh3-satellite-root svelte-191z0e1",null,r,{"sh3-satellite-app":t.payload.kind==="app"})),x(e,n),ie()}async function kd(e){const t=e?.serverUrl??"",n=await tC();n.backends&&(bo("workspace",n.backends.workspace),bo("user",n.backends.user)),n.localOwner&&W0(),Oh(t),rS();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=_L();if(s){if("error"in s){r.textContent=`Invalid satellite payload: ${s.error}`;return}if(bo("workspace",new Wo),n.localOwner&&Sa("local"),e?.shards)for(const c of e.shards)md(c);if(e?.apps)for(const c of e.apps)qs(c);await xd(e?.discoveredPackages),await oT({activateShardIds:s.payload.kind==="app"?[]:s.payload.activateShards}),Ou(),Ke(SL,{target:r,props:{payload:s.payload}});return}let a=null;if(!n.localOwner||e?.remoteAuth===!0)try{const c=await Re(`${t}/api/boot`);c.ok&&(a=await c.json())}catch{}if(n.localOwner&&!e?.remoteAuth)Sa("local");else if(a){Vu(t,a),Sa(a.tenantId);const{auth:c,session:u}=a;if(!u&&c.required&&!c.guestAllowed){await IL(r,a);const d=await Re(`${t}/api/boot`);d.ok&&(a=await d.json(),Vu(t,a),Sa(a.tenantId))}}if(await xd(e?.discoveredPackages),e?.shards)for(const c of e.shards)md(c);if(e?.apps)for(const c of e.apps)qs(c);const l={};e?.excludeShards&&(l.excludeShards=e.excludeShards),await iT(l),Ou(),Ke(vL,{target:r})}async function xd(e){if(e?.length)for(const t of e)try{const n=t.bundleUrl.startsWith("http://")||t.bundleUrl.startsWith("https://"),r=st(),s=t.bundleUrl.startsWith("/")?"":"/",a=n?t.bundleUrl:`${r}${s}${t.bundleUrl}`,o=await Re(a);if(!o.ok){console.warn(`[sh3] Failed to fetch discovered package "${t.id}": HTTP ${o.status}`);continue}const l=await o.arrayBuffer(),c=await ba(l);jc(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 IL(e,t){return new Promise(n=>{const r=Ke(yL,{target:e,props:{selfRegistration:t.auth.selfRegistration,onSuccess:()=>{tt(r),n()}}})})}var EL=E('<div class="onboarding-error svelte-c2abmw" data-role="error-banner"> </div>'),AL=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 CL(e,t){ae(t,!0);let n=U(ve(Se(()=>t.prefillUrl))),r=U(ve(Se(()=>t.prefillLabel))),s=U(ve(Se(()=>t.error))),a=U(!1);async function o(){if(!(!i(n).trim()||i(a))){k(a,!0),k(s,null);try{const w=i(n).trim().replace(/\/$/,""),y=await fetch(`${w}/api/boot`,{credentials:"include"});if(!y.ok){k(s,"Not an SH3 server");return}let C;try{C=await y.json()}catch{k(s,"Not an SH3 server");return}if(!(!!C.auth&&typeof C.auth=="object"&&"required"in C.auth&&"guestAllowed"in C.auth&&"selfRegistration"in C.auth&&typeof C.tenantId=="string")){k(s,"Not an SH3 server");return}const P=typeof C.version=="string"?C.version:"unknown";t.onResolved({mode:"remote",url:w,label:i(r).trim()||w,version:P})}catch(w){k(s,`Could not reach ${i(n)} — ${w.message}`)}finally{k(a,!1)}}}function l(){t.onResolved({mode:"local"})}var c=AL(),u=p(c),d=_(p(u),4),f=p(d);xe(f);var v=_(f,2);xe(v);var m=_(v,2),S=p(m,!0);h(m),h(d);var g=_(d,4),b=_(g,4);{var A=w=>{var y=EL(),C=p(y,!0);h(y),N(()=>z(C,i(s))),x(w,y)};W(b,w=>{i(s)&&w(A)})}h(u),h(c),N(w=>{f.disabled=i(a),v.disabled=i(a),m.disabled=w,z(S,i(a)?"Connecting…":"Connect"),g.disabled=i(a)},[()=>i(a)||!i(n).trim()]),Ue("submit",d,w=>{w.preventDefault(),o()}),Te(f,()=>i(n),w=>k(n,w)),Te(v,()=>i(r),w=>k(r,w)),K("click",g,l),x(e,c),ie()}me(["click"]);const Fc="sh3:identity";function TL(){const e=localStorage.getItem(Fc);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 Sd(e){localStorage.setItem(Fc,JSON.stringify(e))}function RL(){localStorage.removeItem(Fc)}const Id={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(){RL(),location.reload()}})}},LL=typeof window<"u"&&("__TAURI_INTERNALS__"in window||"__TAURI__"in window),To=window.location.origin;async function Ed(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 Ad(e){return new Promise(t=>{const n=document.getElementById("app"),r=Ke(CL,{target:n,props:{prefillUrl:e.prefillUrl,prefillLabel:e.prefillLabel,error:e.error,onResolved:s=>{tt(r),t(s)}}})})}async function ML(){if(!LL)return{identity:null,serverUrl:To};if(await Ed(To))return{identity:null,serverUrl:To};let e=TL();e?.mode==="remote"?await Ed(e.url)||(e=await Ad({prefillUrl:e.url,prefillLabel:e.label,error:`Could not reach ${e.url}`}),Sd(e)):e||(e=await Ad({prefillUrl:"",prefillLabel:"",error:null}),Sd(e));const t=e.mode==="remote"?e.url:"";return{identity:e,serverUrl:t}}async function PL(){const{identity:e,serverUrl:t}=await ML();if(e?.mode==="local"){Bu(new dh),await kd({serverUrl:"",shards:[Id]});return}Oh(t),Bu(new xx(t));let n=[];try{const r=await fetch(`${t}/api/packages`);r.ok&&(n=await r.json())}catch{}await kd({discoveredPackages:n,serverUrl:t,remoteAuth:e?.mode==="remote",shards:e?[Id]:[]})}PL();
21
+ //# sourceMappingURL=index-CygVqZor.js.map