sh3-server 0.19.1 → 0.19.3

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 i of s)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();const _m="modulepreload",wm=function(e){return"/"+e},Fc={},ha=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=wm(c),c in Fc)return;Fc[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":_m,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 i(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"&&i(l.reason);return t().catch(i)})},km=1,xm=2,wd=4,Sm=8,Im=16,Em=1,kd=4,Am=8,Cm=16,Tm=1,Rm=2,Lm=4,yl=1,xd=2,Mm=4,Pm=8,pa="[",ma="[!",Vc="[?",ba="]",cr={},qe=Symbol(),Pt=Symbol("filename"),Tr=Symbol("hmr"),Sd="http://www.w3.org/1999/xhtml",Xs="http://www.w3.org/2000/svg",_l="http://www.w3.org/1998/Math/MathML",Id="@attach",Ed=!1;var rs=Array.isArray,Dm=Array.prototype.indexOf,Hr=Array.prototype.includes,ga=Array.from,qi=Object.keys,ur=Object.defineProperty,un=Object.getOwnPropertyDescriptor,Ad=Object.getOwnPropertyDescriptors,Cd=Object.prototype,jm=Array.prototype,ya=Object.getPrototypeOf,Uc=Object.isExtensible,zm=Object.prototype.hasOwnProperty;function Rr(e){return typeof e=="function"}const Dt=()=>{};function Hc(e){return typeof e?.then=="function"}function Om(e){return e()}function Io(e){for(var t=0;t<e.length;t++)e[t]()}function Td(){var e,t,n=new Promise((r,s)=>{e=r,t=s});return{promise:n,resolve:e,reject:t}}function Nm(e,t,n=!1){return e===void 0?n?t():t:e}function Rd(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 qm(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,dr=4,Gs=8,wl=1<<24,dn=16,vn=32,zn=64,Eo=128,Gt=512,Qe=1024,st=2048,hn=4096,pt=8192,xt=16384,qn=32768,Ao=1<<25,pn=65536,Ls=1<<17,Ld=1<<18,Zn=1<<19,Md=1<<20,kn=1<<25,fr=65536,Co=1<<21,Kr=1<<22,Yn=1<<23,dt=Symbol("$state"),_a=Symbol("legacy props"),Bm=Symbol(""),Fm=Symbol("proxy path"),Vm=Symbol("hmr anchor"),yn=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},xr=!!globalThis.document?.contentType&&globalThis.document.contentType.includes("xml"),Pd=1,Js=3,Bn=8,Dd=11;function jd(e){throw new Error("https://svelte.dev/e/experimental_async_required")}function Um(){throw new Error("https://svelte.dev/e/invalid_default_snippet")}function Kc(){throw new Error("https://svelte.dev/e/invalid_snippet_arguments")}function ss(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function Hm(){throw new Error("https://svelte.dev/e/missing_context")}function Km(){throw new Error("https://svelte.dev/e/snippet_without_render_tag")}function Wm(e){throw new Error("https://svelte.dev/e/store_invalid_shape")}function Ym(){throw new Error("https://svelte.dev/e/svelte_element_invalid_this_value")}function Xm(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Gm(e,t){throw new Error("https://svelte.dev/e/component_api_changed")}function Jm(e,t){throw new Error("https://svelte.dev/e/component_api_invalid_new")}function Zm(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Qm(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function $m(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function eb(e){throw new Error("https://svelte.dev/e/effect_orphan")}function tb(){throw new Error("https://svelte.dev/e/effect_pending_outside_reaction")}function nb(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function rb(){throw new Error("https://svelte.dev/e/fork_discarded")}function sb(){throw new Error("https://svelte.dev/e/fork_timing")}function ib(){throw new Error("https://svelte.dev/e/get_abort_signal_outside_reaction")}function ab(){throw new Error("https://svelte.dev/e/hydration_failed")}function zd(e){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}function ob(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function lb(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function cb(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function ub(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function db(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}function fb(e,t){console.warn("https://svelte.dev/e/assignment_value_stale")}function vb(e,t){console.warn("https://svelte.dev/e/binding_property_non_reactive")}function hb(e){console.warn("https://svelte.dev/e/console_log_state")}function pb(){console.warn("https://svelte.dev/e/derived_inert")}function mb(e,t){console.warn("https://svelte.dev/e/event_handler_invalid")}function bb(e){console.warn("https://svelte.dev/e/hydratable_missing_but_expected")}function Zs(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function gb(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_binding")}function yb(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_mutation")}function _b(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function Od(e){console.warn("https://svelte.dev/e/state_proxy_equality_mismatch")}function wb(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let ce=!1;function ze(e){ce=e}let ge;function Me(e){if(e===null)throw Zs(),cr;return ge=e}function bt(){return Me(Nt(ge))}function h(e){if(ce){if(Nt(ge)!==null)throw Zs(),cr;ge=e}}function kb(e){ce&&(ge=e.content)}function zt(e=1){if(ce){for(var t=e,n=ge;t--;)n=Nt(n);ge=n}}function vr(e=!0){for(var t=0,n=ge;;){if(n.nodeType===Bn){var r=n.data;if(r===ba){if(t===0)return n;t-=1}else(r===pa||r===ma||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var s=Nt(n);e&&n.remove(),n=s}}function kl(e){if(!e||e.nodeType!==Bn)throw Zs(),cr;return e.data}function Nd(e){return e===this.v}function qd(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function Bd(e){return!qd(e,this.v)}let xb=!1;function Sb(e){console.warn("https://svelte.dev/e/dynamic_void_element_content")}const Ib=[];function hr(e,t=!1,n=!1){return Ii(e,new Map,"",Ib,null,n)}function Ii(e,t,n,r,s=null,i=!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(rs(e)){var l=Array(e.length);t.set(e,l),s!==null&&t.set(s,l);for(var c=0;c<e.length;c+=1){var u=e[c];c in e&&(l[c]=Ii(u,t,n,r,null,i))}return l}if(ya(e)===Cd){l={},t.set(e,l),s!==null&&t.set(s,l);for(var d of Object.keys(e))l[d]=Ii(e[d],t,n,r,null,i);return l}if(e instanceof Date)return structuredClone(e);if(typeof e.toJSON=="function"&&!i)return Ii(e.toJSON(),t,n,r,e)}if(e instanceof EventTarget)return e;try{return structuredClone(e)}catch{return e}}let Er=null;function Fd(e,t){const n=e.v;if(n===qe)return;const r=Eb(e),s=Ee,i=e.wv>s.wv||s.wv===0,o=i?"color: CornflowerBlue; font-weight: bold":"color: grey; font-weight: normal";if(console.groupCollapsed(e.label?`%c${r}%c ${e.label}`:`%c${r}%c`,o,i?"font-weight: normal":o,typeof n=="object"&&n!==null&&dt in n?hr(n,!0):n),r==="$derived"){const c=new Set(e.deps);for(const u of c)Fd(u)}if(e.created&&console.log(e.created),i&&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 Eb(e){return e.f&(it|Kr)?"$derived":e.label?.startsWith("$")?"store":"$state"}function Ab(e,t){var n=Er;try{Er={entries:new Map,reaction:Ee};var r=performance.now(),s=t(),i=(performance.now()-r).toFixed(2),o=ke(e);if(!ri())console.log(`${o} %cran outside of an effect (${i}ms)`,"color: grey");else if(Er.entries.size===0)console.log(`${o} %cno reactive dependencies (${i}ms)`,"color: grey");else{console.group(`${o} %c(${i}ms)`,"color: grey");var l=Er.entries;ke(()=>{for(const[c,u]of l)Fd(c,u)}),Er=null,console.groupEnd()}return s}finally{Er=n}}function Cb(e,t){return e.label=t,Vd(e.v,t),e}function Vd(e,t){return e?.[Fm]?.(t),e}function Tb(e){const t=new Error,n=Rb();return n.length===0?null:(n.unshift(`
3
+ `),ur(t,"stack",{value:n.join(`
4
+ `)}),ur(t,"name",{value:e}),t)}function Rb(){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 i=n[s],o=i.replaceAll("\\","/");if(i.trim()!=="Error"){if(i.includes("validate_each_keys"))return[];o.includes("svelte/src/internal")||o.includes("node_modules/.vite")||r.push(i)}}return r}let Le=null;function Wr(e){Le=e}let Ei=null;function Lb(e,t,n,r,s,i){const o=Ei;Ei={type:t,file:n[Pt],line:r,column:s,parent:o,...i};try{return e()}finally{Ei=o}}let xl=null;function Wc(e){xl=e}function Mb(){const e={};return[()=>(Ud(e)||Hm(),Sl(e)),t=>Il(e,t)]}function Sl(e){return wa().get(e)}function Il(e,t){return wa().set(e,t),t}function Ud(e){return wa().has(e)}function Pb(){return wa()}function ie(e,t=!1,n){Le={p:Le,i:!1,c:null,e:null,s:e,x:null,r:ye,l:null}}function ae(e){var t=Le,n=t.e;if(n!==null){t.e=null;for(var r of n)gf(r)}return e!==void 0&&(t.x=e),t.i=!0,Le=t.p,e??{}}function Hd(){return!0}function wa(e){return Le===null&&ss(),Le.c??=new Map(Db(Le)||void 0)}function Db(e){let t=e.p;for(;t!==null;){const n=t.c;if(n!==null)return n;t=t.p}return null}let er=[];function Kd(){var e=er;er=[],Io(e)}function mt(e){if(er.length===0&&!Nr){var t=er;queueMicrotask(()=>{t===er&&Kd()})}er.push(e)}function jb(){for(;er.length>0;)Kd()}function Wd(e){var t=ye;if(t===null)return Ee.f|=Yn,e;if(!(t.f&qn)&&!(t.f&dr))throw e;xn(e,t)}function xn(e,t){for(;t!==null;){if(t.f&Eo){if(!(t.f&qn))throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const zb=-7169;function Fe(e,t){e.f=e.f&zb|t}function El(e){e.f&Gt||e.deps===null?Fe(e,Qe):Fe(e,hn)}function Yd(e){if(e!==null)for(const t of e)!(t.f&it)||!(t.f&fr)||(t.f^=fr,Yd(t.deps))}function Xd(e,t,n){e.f&st?t.add(e):e.f&hn&&n.add(e),Yd(e.deps),Fe(e,Qe)}function Gd(e,t,n){if(e==null)return t(void 0),Dt;const r=ke(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}function Ob(e){let t;return Gd(e,n=>t=n)(),t}let To=!1,ys=!1,Ro=Symbol();function Nb(e,t,n){const r=n[t]??={store:null,source:Sa(void 0),unsubscribe:Dt};if(r.store!==e&&!(Ro in n))if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=Dt;else{var s=!0;r.unsubscribe=Gd(e,i=>{s?r.source.v=i:S(r.source,i)}),s=!1}return e&&Ro in n?Ob(e):a(r.source)}function qb(e,t,n){let r=n[t];return r&&r.store!==e&&(r.unsubscribe(),r.unsubscribe=Dt),e}function Jd(e,t){return ka(e,t),t}function Bb(e,t){var n=e[t];n.store!==null&&Jd(n.store,n.source.v)}function Fb(){const e={};function t(){Bt(()=>{for(var n in e)e[n].unsubscribe();ur(e,Ro,{enumerable:!1,value:!0})})}return[e,t]}function ka(e,t){To=!0;try{e.set(t)}finally{To=!1}}function Vb(e,t,n){return ka(e,n),t}function Ub(e,t,n=1){return ka(e,t+n),t}function Hb(e,t,n=1){const r=t+n;return ka(e,r),r}function Kb(){ys=!0}function Zd(e){var t=ys;try{return ys=!1,[e(),ys]}finally{ys=t}}const Tn=new Set;let _e=null,ht=null,Lo=null,Nr=!1,no=!1,Dr=null,Ai=null;var Yc=0;let Wb=1;class Qt{id=Wb++;current=new Map;previous=new Map;#e=new Set;#t=new Set;#n=new Set;#s=new Map;#r=new Map;#a=null;#i=[];#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)Fe(s,st),n(s);for(s of r.m)Fe(s,hn),n(s)}this.#f.add(t)}#p(){if(Yc++>1e3&&(Tn.delete(this),Yb()),!this.#d()){for(const l of this.#l)this.#u.delete(l),Fe(l,st),this.schedule(l);for(const l of this.#u)Fe(l,hn),this.schedule(l)}const t=this.#i;this.#i=[],this.apply();var n=Dr=[],r=[],s=Ai=[];for(const l of t)try{this.#b(l,n,r)}catch(c){throw tf(l),c}if(_e=null,s.length>0){var i=Qt.ensure();for(const l of s)i.schedule(l)}if(Dr=null,Ai=null,this.#d()||this.#g()){this.#m(r),this.#m(n);for(const[l,c]of this.#c)ef(l,c)}else{this.#s.size===0&&Tn.delete(this),this.#l.clear(),this.#u.clear();for(const l of this.#e)l(this);this.#e.clear(),Xc(r),Xc(n),this.#a?.resolve()}var o=_e;if(this.#i.length>0){const l=o??=this;l.#i.push(...this.#i.filter(c=>!l.#i.includes(c)))}o!==null&&(Tn.add(o),o.#p())}#b(t,n,r){t.f^=Qe;for(var s=t.first;s!==null;){var i=s.f,o=(i&(vn|zn))!==0,l=o&&(i&Qe)!==0,c=l||(i&pt)!==0||this.#c.has(s);if(!c&&s.fn!==null){o?s.f^=Qe:i&dr?n.push(s):as(s)&&(i&dn&&this.#u.add(s),br(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)Xd(t[n],this.#l,this.#u)}capture(t,n,r=!1){t.v!==qe&&!this.previous.has(t)&&this.previous.set(t,t.v),t.f&Yn||(this.current.set(t,[n,r]),ht?.set(t,n)),this.is_fork||(t.v=n)}activate(){_e=this}deactivate(){_e=null,ht=null}flush(){try{no=!0,_e=this,this.#p()}finally{Yc=0,Lo=null,Dr=null,Ai=null,no=!1,_e=null,ht=null,ir.clear()}}discard(){for(const t of this.#t)t(this);this.#t.clear(),this.#n.clear(),Tn.delete(this)}register_created_effect(t){this.#o.push(t)}#y(){for(const d of Tn){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&(dn|Kr)?d.schedule(v):d.#m([v])});d.activate();var i=new Set,o=new Map;for(var l of n)Qd(l,s,i,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&(xt|pt|Ls))&&Al(f,c,o)&&(f.f&(Kr|dn)?(Fe(f,st),d.schedule(f)):d.#l.add(f));if(d.#i.length>0){d.apply();for(var u of d.#i)d.#b(u,[],[]);d.#i=[]}d.deactivate()}}for(const d of Tn)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 i=this.#r.get(n)??0;i===1?this.#r.delete(n):this.#r.set(n,i-1)}this.#h||r||(this.#h=!0,mt(()=>{this.#h=!1,this.flush()}))}transfer_effects(t,n){for(const r of t)this.#l.add(r);for(const r of n)this.#u.add(r);t.clear(),n.clear()}oncommit(t){this.#e.add(t)}ondiscard(t){this.#t.add(t)}on_fork_commit(t){this.#n.add(t)}run_fork_commit_callbacks(){for(const t of this.#n)t(this);this.#n.clear()}settled(){return(this.#a??=Td()).promise}static ensure(){if(_e===null){const t=_e=new Qt;no||(Tn.add(_e),Nr||mt(()=>{_e===t&&t.flush()}))}return _e}apply(){{ht=null;return}}schedule(t){if(Lo=t,t.b?.is_pending&&t.f&(dr|Gs|wl)&&!(t.f&qn)){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var r=n.f;if(Dr!==null&&n===ye&&(Ee===null||!(Ee.f&it))&&!To)return;if(r&(zn|vn)){if(!(r&Qe))return;n.f^=Qe}}this.#i.push(n)}}function Xn(e){var t=Nr;Nr=!0;try{var n;for(e&&(_e!==null&&!_e.is_fork&&_e.flush(),n=e());;){if(jb(),_e===null)return n;_e.flush()}}finally{Nr=t}}function Yb(){try{nb()}catch(e){xn(e,Lo)}}let Rn=null;function Xc(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&(xt|pt))&&as(r)&&(Rn=new Set,br(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Sf(r),Rn?.size>0)){ir.clear();for(const s of Rn){if(s.f&(xt|pt))continue;const i=[s];let o=s.parent;for(;o!==null;)Rn.has(o)&&(Rn.delete(o),i.push(o)),o=o.parent;for(let l=i.length-1;l>=0;l--){const c=i[l];c.f&(xt|pt)||br(c)}}Rn.clear()}}Rn=null}}function Qd(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(const s of e.reactions){const i=s.f;i&it?Qd(s,t,n,r):i&(Kr|dn)&&!(i&st)&&Al(s,t,r)&&(Fe(s,st),Cl(s))}}function $d(e,t){if(e.reactions!==null)for(const n of e.reactions){const r=n.f;r&it?$d(n,t):r&Ls&&(Fe(n,st),t.add(n))}}function Al(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(Hr.call(t,s))return!0;if(s.f&it&&Al(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function Cl(e){_e.schedule(e)}let Bi=[];function Xb(){Xn(()=>{const e=Bi;Bi=[];for(const t of e)mr(t)})}function Gb(e){var t=Et(0),n=!0,r=void 0;return a(t),_f(()=>{if(n){var s=ht;try{ht=null,r=e()}finally{ht=s}return}Bi.length===0&&mt(Xb),Bi.push(t)}),n=!1,r}function ef(e,t){if(!(e.f&vn&&e.f&Qe)){e.f&st?t.d.push(e):e.f&hn&&t.m.push(e),Fe(e,Qe);for(var n=e.first;n!==null;)ef(n,t),n=n.next}}function tf(e){Fe(e,Qe);for(var t=e.first;t!==null;)tf(t),t=t.next}function Jb(e){jd(),_e!==null&&sb();var t=Qt.ensure();t.is_fork=!0,ht=new Map;var n=!1,r=t.settled();return Xn(e),{commit:async()=>{if(n){await r;return}Tn.has(t)||rb(),n=!0,t.is_fork=!1;for(var[s,[i]]of t.current)s.v=i,s.wv=Vi();t.activate(),t.run_fork_commit_callbacks(),t.deactivate(),Xn(()=>{var o=new Set;for(var l of t.current.keys())$d(l,o);og(o),cf()}),t.flush(),await r},discard:()=>{for(var s of t.current.keys())s.wv=Vi();!n&&Tn.has(t)&&t.discard()}}}function Zb(e){let t=0,n=Et(0),r;return()=>{ri()&&(a(n),Xe(()=>(t===0&&(r=ke(()=>e(()=>_n(n)))),t+=1,()=>{mt(()=>{t-=1,t===0&&(r?.(),r=void 0,_n(n))})})))}}var Qb=pn|Zn;function nf(e,t,n,r){new $b(e,t,n,r)}class $b{parent;is_pending=!1;transform_error;#e;#t=ce?ge:null;#n;#s;#r;#a=null;#i=null;#o=null;#l=null;#u=0;#c=0;#f=!1;#h=new Set;#v=new Set;#d=null;#g=Zb(()=>(this.#d=Et(this.#u),()=>{this.#d=null}));constructor(t,n,r,s){this.#e=t,this.#n=n,this.#s=i=>{var o=ye;o.b=this,o.f|=Eo,r(i)},this.parent=ye.b,this.transform_error=s??this.parent?.transform_error??(i=>i),this.#r=Cn(()=>{if(ce){const i=this.#t;bt();const o=i.data===ma;if(i.data.startsWith(Vc)){const c=JSON.parse(i.data.slice(Vc.length));this.#b(c)}else o?this.#m():this.#p()}else this.#y()},Qb),ce&&(this.#e=ge)}#p(){try{this.#a=vt(()=>this.#s(this.#e))}catch(t){this.error(t)}}#b(t){const n=this.#n.failed;n&&(this.#o=vt(()=>{n(this.#e,()=>t,()=>()=>{})}))}#m(){const t=this.#n.pending;t&&(this.is_pending=!0,this.#i=vt(()=>t(this.#e)),mt(()=>{var n=this.#l=document.createDocumentFragment(),r=lt();n.append(r),this.#a=this.#w(()=>vt(()=>this.#s(r))),this.#c===0&&(this.#e.before(n),this.#l=null,ar(this.#i,()=>{this.#i=null}),this.#_(_e))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#c=0,this.#u=0,this.#a=vt(()=>{this.#s(this.#e)}),this.#c>0){var t=this.#l=document.createDocumentFragment();Ol(this.#a,t);const n=this.#n.pending;this.#i=vt(()=>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){Xd(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=Ee,s=Le;ft(this.#r),At(this.#r),Wr(this.#r.ctx);try{return Qt.ensure(),t()}catch(i){return Wd(i),null}finally{ft(n),At(r),Wr(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.#i&&ar(this.#i,()=>{this.#i=null}),this.#l&&(this.#e.before(this.#l),this.#l=null))}update_pending_count(t,n){this.#k(t,n),this.#u+=t,!(!this.#d||this.#f)&&(this.#f=!0,mt(()=>{this.#f=!1,this.#d&&In(this.#d,this.#u)}))}get_effect_pending(){return this.#g(),a(this.#d)}error(t){if(!this.#n.onerror&&!this.#n.failed)throw t;_e?.is_fork?(this.#a&&_e.skip_effect(this.#a),this.#i&&_e.skip_effect(this.#i),this.#o&&_e.skip_effect(this.#o),_e.on_fork_commit(()=>{this.#x(t)})):this.#x(t)}#x(t){this.#a&&(tt(this.#a),this.#a=null),this.#i&&(tt(this.#i),this.#i=null),this.#o&&(tt(this.#o),this.#o=null),ce&&(Me(this.#t),zt(),Me(vr()));var n=this.#n.onerror;let r=this.#n.failed;var s=!1,i=!1;const o=()=>{if(s){wb();return}s=!0,i&&db(),this.#o!==null&&ar(this.#o,()=>{this.#o=null}),this.#w(()=>{this.#y()})},l=c=>{try{i=!0,n?.(c,o),i=!1}catch(u){xn(u,this.#r&&this.#r.parent)}r&&(this.#o=this.#w(()=>{try{return vt(()=>{var u=ye;u.b=this,u.f|=Eo,r(this.#e,()=>c,()=>o)})}catch(u){return xn(u,this.#r.parent),null}}))};mt(()=>{var c;try{c=this.transform_error(t)}catch(u){xn(u,this.#r&&this.#r.parent);return}c!==null&&typeof c=="object"&&typeof c.then=="function"?c.then(l,u=>xn(u,this.#r&&this.#r.parent)):l(c)})}}function eg(){ye===null&&tb();var e=ye.b;return e===null?0:e.get_effect_pending()}function Qs(e,t,n,r){const s=ei;var i=e.filter(v=>!v.settled);if(n.length===0&&i.length===0){r(t.map(s));return}var o=ye,l=xa(),c=i.length===1?i[0].promise:i.length>1?Promise.all(i.map(v=>v.promise)):null;function u(v){l();try{r(v)}catch(m){o.f&xt||xn(m,o)}pr()}if(n.length===0){c.then(()=>u(t.map(s)));return}var d=$s();function f(){Promise.all(n.map(v=>sf(v))).then(v=>u([...t.map(s),...v])).catch(v=>xn(v,o)).finally(()=>d())}c?c.then(()=>{l(),f(),pr()}):f()}function rf(e,t){Qs(e,[],[],t)}function xa(){var e=ye,t=Ee,n=Le,r=_e;return function(i=!0){ft(e),At(t),Wr(n),i&&!(e.f&xt)&&(r?.activate(),r?.apply())}}async function tg(e){var t=xa(),n=await e;return()=>(t(),n)}async function Mo(e){var t=Is;queueMicrotask(()=>{Is===t&&Ci(null)});var n=await e;return()=>(Ci(t),queueMicrotask(()=>{Is===t&&Ci(null)}),n)}async function*ng(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:i}=(await Mo(t.next()))();if(s){n=!0;break}var r=Is;yield i,Ci(r)}}finally{if(!n&&t.return!==void 0)return(await Mo(t.return()))().value}}function pr(e=!0){ft(null),At(null),Wr(null),e&&_e?.deactivate()}function rg(e){const t=xa(),n=$s();var r=ye,s=null;const i=u=>{s={error:u},jo(r)||xn(u,r)};var o=Promise.resolve(e[0]()).catch(i),l={promise:o,settled:!1},c=[l];o.finally(()=>{l.settled=!0,pr()});for(const u of e.slice(1)){o=o.then(()=>{if(t(),s)throw s.error;if(jo(r))throw yn;return u()}).catch(i);const d={promise:o,settled:!1};c.push(d),o.finally(()=>{d.settled=!0,pr()})}return o.then(()=>Promise.resolve()).finally(()=>n()),c}function sg(e){return Promise.all(e.map(t=>t.promise))}function $s(){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 Is=null;function Ci(e){Is=e}function ei(e){var t=it|st;return ye!==null&&(ye.f|=Zn),{ctx:Le,deps:null,effects:null,equals:Nd,f:t,fn:e,reactions:null,rv:0,v:qe,wv:0,parent:ye,ac:null}}function sf(e,t,n){let r=ye;r===null&&Xm();var s=void 0,i=Et(qe),o=!Ee,l=new Map;return gg(()=>{var c=ye,u=Td();s=u.promise;try{Promise.resolve(e()).then(u.resolve,u.reject).finally(pr)}catch(m){u.reject(m),pr()}var d=_e;if(o){if(c.f&qn)var f=$s();if(r.b.is_rendered())l.get(d)?.reject(yn),l.delete(d);else{for(const m of l.values())m.reject(yn);l.clear()}l.set(d,u)}const v=(m,x=void 0)=>{if(f){var g=x===yn;f(g)}if(!(x===yn||c.f&xt)){if(d.activate(),x)i.f|=Yn,In(i,x);else{i.f&Yn&&(i.f^=Yn),In(i,m);for(const[b,C]of l){if(l.delete(b),b===d)break;C.reject(yn)}}d.deactivate()}};u.promise.then(v,m=>v(null,m||"unknown"))}),Bt(()=>{for(const c of l.values())c.reject(yn)}),new Promise(c=>{function u(d){function f(){d===s?c(i):u(s)}d.then(f,f)}u(s)})}function F(e){const t=ei(e);return Af(t),t}function Tl(e){const t=ei(e);return t.equals=Bd,t}function ig(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)tt(t[n])}}function Rl(e){var t,n=ye,r=e.parent;if(!On&&r!==null&&r.f&(xt|pt))return pb(),e.v;ft(r);try{e.f&=~fr,ig(e),t=Rf(e)}finally{ft(n)}return t}function af(e){var t=Rl(e);if(!e.equals(t)&&(e.wv=Vi(),(!_e?.is_fork||e.deps===null)&&(_e!==null?_e.capture(e,t,!0):e.v=t,e.deps===null))){Fe(e,Qe);return}On||(ht!==null?(ri()||_e?.is_fork)&&ht.set(e,t):El(e))}function ag(e){if(e.effects!==null)for(const t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(yn),t.teardown=Dt,t.ac=null,Ms(t,0),jl(t))}function of(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&br(t)}let Fi=new Set;const ir=new Map;function og(e){Fi=e}let lf=!1;function Et(e,t){var n={f:0,v:e,reactions:null,equals:Nd,rv:0,wv:0};return n}function V(e,t){const n=Et(e);return Af(n),n}function Sa(e,t=!1,n=!0){const r=Et(e);return t||(r.equals=Bd),r}function lg(e,t){return S(e,ke(()=>a(e))),t}function S(e,t,n=!1){Ee!==null&&(!cn||Ee.f&Ls)&&Hd()&&Ee.f&(it|dn|Kr|Ls)&&(Jt===null||!Hr.call(Jt,e))&&ub();let r=n?fe(t):t;return In(e,r,Ai)}function In(e,t,n=null){if(!e.equals(t)){ir.set(e,On?t:e.v);var r=Qt.ensure();if(r.capture(e,t),e.f&it){const s=e;e.f&st&&Rl(s),ht===null&&El(s)}e.wv=Vi(),uf(e,st,n),ye!==null&&ye.f&Qe&&!(ye.f&(vn|zn))&&(Wt===null?xg([e]):Wt.push(e)),!r.is_fork&&Fi.size>0&&!lf&&cf()}return t}function cf(){lf=!1;for(const e of Fi)e.f&Qe&&Fe(e,hn),as(e)&&br(e);Fi.clear()}function mr(e,t=1){var n=a(e),r=t===1?n++:n--;return S(e,n),r}function cg(e,t=1){var n=a(e);return S(e,t===1?++n:--n)}function _n(e){S(e,e.v+1)}function uf(e,t,n){var r=e.reactions;if(r!==null)for(var s=r.length,i=0;i<s;i++){var o=r[i],l=o.f,c=(l&st)===0;if(c&&Fe(o,t),l&it){var u=o;ht?.delete(u),l&fr||(l&Gt&&(o.f|=fr),uf(u,hn,n))}else if(c){var d=o;l&dn&&Rn!==null&&Rn.add(d),n!==null?n.push(d):Cl(d)}}}function fe(e){if(typeof e!="object"||e===null||dt in e)return e;const t=ya(e);if(t!==Cd&&t!==jm)return e;var n=new Map,r=rs(e),s=V(0),i=Mn,o=l=>{if(Mn===i)return l();var c=Ee,u=Mn;At(null),Zc(i);var d=l();return At(c),Zc(u),d};return r&&n.set("length",V(e.length)),new Proxy(e,{defineProperty(l,c,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&lb();var d=n.get(c);return d===void 0?o(()=>{var f=V(u.value);return n.set(c,f),f}):S(d,u.value,!0),!0},deleteProperty(l,c){var u=n.get(c);if(u===void 0){if(c in l){const d=o(()=>V(qe));n.set(c,d),_n(s)}}else S(u,qe),_n(s);return!0},get(l,c,u){if(c===dt)return e;var d=n.get(c),f=c in l;if(d===void 0&&(!f||un(l,c)?.writable)&&(d=o(()=>{var m=fe(f?l[c]:qe),x=V(m);return x}),n.set(c,d)),d!==void 0){var v=a(d);return v===qe?void 0:v}return Reflect.get(l,c,u)},getOwnPropertyDescriptor(l,c){var u=Reflect.getOwnPropertyDescriptor(l,c);if(u&&"value"in u){var d=n.get(c);d&&(u.value=a(d))}else if(u===void 0){var f=n.get(c),v=f?.v;if(f!==void 0&&v!==qe)return{enumerable:!0,configurable:!0,value:v,writable:!0}}return u},has(l,c){if(c===dt)return!0;var u=n.get(c),d=u!==void 0&&u.v!==qe||Reflect.has(l,c);if(u!==void 0||ye!==null&&(!d||un(l,c)?.writable)){u===void 0&&(u=o(()=>{var v=d?fe(l[c]):qe,m=V(v);return m}),n.set(c,u));var f=a(u);if(f===qe)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 x=n.get(m+"");x!==void 0?S(x,qe):m in l&&(x=o(()=>V(qe)),n.set(m+"",x))}if(f===void 0)(!v||un(l,c)?.writable)&&(f=o(()=>V(void 0)),S(f,fe(u)),n.set(c,f));else{v=f.v!==qe;var g=o(()=>fe(u));S(f,g)}var b=Reflect.getOwnPropertyDescriptor(l,c);if(b?.set&&b.set.call(d,u),!v){if(r&&typeof c=="string"){var C=n.get("length"),_=Number(c);Number.isInteger(_)&&_>=C.v&&S(C,_+1)}_n(s)}return!0},ownKeys(l){a(s);var c=Reflect.ownKeys(l).filter(f=>{var v=n.get(f);return v===void 0||v.v!==qe});for(var[u,d]of n)d.v!==qe&&!(u in l)&&c.push(u);return c},setPrototypeOf(){cb()}})}function Yr(e){try{if(e!==null&&typeof e=="object"&&dt in e)return e[dt]}catch{}return e}function df(e,t){return Object.is(Yr(e),Yr(t))}function ug(e,t,n=!0){try{e===t!=(Yr(e)===Yr(t))&&Od(n?"===":"!==")}catch{}return e===t===n}function dg(e,t,n=!0){return e==t!=(Yr(e)==Yr(t))&&Od(),e==t===n}var Po,ff,Ll,vf,hf;function Do(){if(Po===void 0){Po=window,ff=document,Ll=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;vf=un(t,"firstChild").get,hf=un(t,"nextSibling").get,Uc(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),Uc(n)&&(n.__t=void 0)}}function lt(e=""){return document.createTextNode(e)}function Be(e){return vf.call(e)}function Nt(e){return hf.call(e)}function p(e,t){if(!ce)return Be(e);var n=Be(ge);if(n===null)n=ge.appendChild(lt());else if(t&&n.nodeType!==Js){var r=lt();return n?.before(r),Me(r),r}return t&&Ia(n),Me(n),n}function ve(e,t=!1){if(!ce){var n=Be(e);return n instanceof Comment&&n.data===""?Nt(n):n}if(t){if(ge?.nodeType!==Js){var r=lt();return ge?.before(r),Me(r),r}Ia(ge)}return ge}function w(e,t=1,n=!1){let r=ce?ge:e;for(var s;t--;)s=r,r=Nt(r);if(!ce)return r;if(n){if(r?.nodeType!==Js){var i=lt();return r===null?s?.after(i):r.before(i),Me(i),i}Ia(r)}return Me(r),r}function Ml(e){e.textContent=""}function pf(){return!1}function Qn(e,t,n){let r=n?{is:n}:void 0;return document.createElementNS(t??Sd,e,r)}function fg(){return document.createDocumentFragment()}function mf(e=""){return document.createComment(e)}function vg(e,t,n=""){if(t.startsWith("xlink:")){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n);return}return e.setAttribute(t,n)}function Ia(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===Js;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function ti(e,t){if(t){const n=document.body;e.autofocus=!0,mt(()=>{document.activeElement===n&&e.focus()})}}function Pl(e){ce&&Be(e)!==null&&Ml(e)}let Gc=!1;function bf(){Gc||(Gc=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function Tt(e,t,n,r=!0){r&&n();for(var s of t)e.addEventListener(s,n);Bt(()=>{for(var i of t)e.removeEventListener(i,n)})}function $n(e){var t=Ee,n=ye;At(null),ft(null);try{return e()}finally{At(t),ft(n)}}function ni(e,t,n,r=n){e.addEventListener(t,()=>$n(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),bf()}function Dl(e){ye===null&&(Ee===null&&eb(),$m()),On&&Qm()}function hg(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function Rt(e,t){var n=ye;n!==null&&n.f&pt&&(e|=pt);var r={ctx:Le,deps:null,nodes:null,f:e|st|Gt,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&dr)Dr!==null?Dr.push(r):Qt.ensure().schedule(r);else if(t!==null){try{br(r)}catch(o){throw tt(r),o}s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&!(s.f&Zn)&&(s=s.first,e&dn&&e&pn&&s!==null&&(s.f|=pn))}if(s!==null&&(s.parent=n,n!==null&&hg(s,n),Ee!==null&&Ee.f&it&&!(e&zn))){var i=Ee;(i.effects??=[]).push(s)}return r}function ri(){return Ee!==null&&!cn}function Bt(e){const t=Rt(Gs,null);return Fe(t,Qe),t.teardown=e,t}function Se(e){Dl();var t=ye.f,n=!Ee&&(t&vn)!==0&&(t&qn)===0;if(n){var r=Le;(r.e??=[]).push(e)}else return gf(e)}function gf(e){return Rt(dr|Md,e)}function yf(e){return Dl(),Rt(Gs|Md,e)}function _f(e){return Rt(Ls,e)}function is(e){Qt.ensure();const t=Rt(zn|Zn,e);return()=>{tt(t)}}function pg(e){Qt.ensure();const t=Rt(zn|Zn,e);return(n={})=>new Promise(r=>{n.outro?ar(t,()=>{tt(t),r(void 0)}):(tt(t),r(void 0))})}function qt(e){return Rt(dr,e)}function mg(e,t){var n=Le,r={effect:null,ran:!1,deps:e};n.l.$.push(r),r.effect=Xe(()=>{if(e(),!r.ran){r.ran=!0;var s=ye;try{ft(s.parent),ke(t)}finally{ft(s)}}})}function bg(){var e=Le;Xe(()=>{for(var t of e.l.$){t.deps();var n=t.effect;n.f&Qe&&n.deps!==null&&Fe(n,hn),as(n)&&br(n),t.ran=!1}})}function gg(e){return Rt(Kr|Zn,e)}function Xe(e,t=0){return Rt(Gs|t,e)}function O(e,t=[],n=[],r=[]){Qs(r,t,n,s=>{Rt(Gs,()=>e(...s.map(a)))})}function yg(e,t=[],n=[],r=[]){if(n.length>0||r.length>0)var s=$s();Qs(r,t,n,i=>{Rt(dr,()=>e(...i.map(a))),s&&s()})}function Cn(e,t=0){var n=Rt(dn|t,e);return n}function wf(e,t=0){var n=Rt(wl|t,e);return n}function vt(e){return Rt(vn|Zn,e)}function kf(e){var t=e.teardown;if(t!==null){const n=On,r=Ee;Jc(!0),At(null);try{t.call(null)}finally{Jc(n),At(r)}}}function jl(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&$n(()=>{s.abort(yn)});var r=n.next;n.f&zn?n.parent=null:tt(n,t),n=r}}function _g(e){for(var t=e.first;t!==null;){var n=t.next;t.f&vn||tt(t),t=n}}function tt(e,t=!0){var n=!1;(t||e.f&Ld)&&e.nodes!==null&&e.nodes.end!==null&&(xf(e.nodes.start,e.nodes.end),n=!0),Fe(e,Ao),jl(e,t&&!n),Ms(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const i of r)i.stop();kf(e),e.f^=Ao,e.f|=xt;var s=e.parent;s!==null&&s.first!==null&&Sf(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function xf(e,t){for(;e!==null;){var n=e===t?null:Nt(e);e.remove(),e=n}}function Sf(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 ar(e,t,n=!0){var r=[];If(e,r,!0);var s=()=>{n&&tt(e),t&&t()},i=r.length;if(i>0){var o=()=>--i||s();for(var l of r)l.out(o)}else s()}function If(e,t,n){if(!(e.f&pt)){e.f^=pt;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 i=s.next;if(!(s.f&zn)){var o=(s.f&pn)!==0||(s.f&vn)!==0&&(e.f&dn)!==0;If(s,t,o?n:!1)}s=i}}}function zl(e){Ef(e,!0)}function Ef(e,t){if(e.f&pt){e.f^=pt,e.f&Qe||(Fe(e,st),Qt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&pn)!==0||(n.f&vn)!==0;Ef(n,s?t:!1),n=r}var i=e.nodes&&e.nodes.t;if(i!==null)for(const o of i)(o.is_global||t)&&o.in()}}function jo(e=ye){return(e.f&xt)!==0}function Ol(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:Nt(n);t.append(n),n=s}}let Lr=null;function wg(e){var t=Lr;try{if(Lr=new Set,ke(e),t!==null)for(var n of Lr)t.add(n);return Lr}finally{Lr=t}}function kg(e){for(var t of wg(e))In(t,t.v)}let Ti=!1,On=!1;function Jc(e){On=e}let Ee=null,cn=!1;function At(e){Ee=e}let ye=null;function ft(e){ye=e}let Jt=null;function Af(e){Ee!==null&&(Jt===null?Jt=[e]:Jt.push(e))}let _t=null,Mt=0,Wt=null;function xg(e){Wt=e}let Cf=1,tr=0,Mn=tr;function Zc(e){Mn=e}function Vi(){return++Cf}function as(e){var t=e.f;if(t&st)return!0;if(t&it&&(e.f&=~fr),t&hn){for(var n=e.deps,r=n.length,s=0;s<r;s++){var i=n[s];if(as(i)&&af(i),i.wv>e.wv)return!0}t&Gt&&ht===null&&Fe(e,Qe)}return!1}function Tf(e,t,n=!0){var r=e.reactions;if(r!==null&&!(Jt!==null&&Hr.call(Jt,e)))for(var s=0;s<r.length;s++){var i=r[s];i.f&it?Tf(i,t,!1):t===i&&(n?Fe(i,st):i.f&Qe&&Fe(i,hn),Cl(i))}}function Rf(e){var t=_t,n=Mt,r=Wt,s=Ee,i=Jt,o=Le,l=cn,c=Mn,u=e.f;_t=null,Mt=0,Wt=null,Ee=u&(vn|zn)?null:e,Jt=null,Wr(e.ctx),cn=!1,Mn=++tr,e.ac!==null&&($n(()=>{e.ac.abort(yn)}),e.ac=null);try{e.f|=Co;var d=e.fn,f=d();e.f|=qn;var v=e.deps,m=_e?.is_fork;if(_t!==null){var x;if(m||Ms(e,Mt),v!==null&&Mt>0)for(v.length=Mt+_t.length,x=0;x<_t.length;x++)v[Mt+x]=_t[x];else e.deps=v=_t;if(ri()&&e.f&Gt)for(x=Mt;x<v.length;x++)(v[x].reactions??=[]).push(e)}else!m&&v!==null&&Mt<v.length&&(Ms(e,Mt),v.length=Mt);if(Hd()&&Wt!==null&&!cn&&v!==null&&!(e.f&(it|hn|st)))for(x=0;x<Wt.length;x++)Tf(Wt[x],e);if(s!==null&&s!==e){if(tr++,s.deps!==null)for(let g=0;g<n;g+=1)s.deps[g].rv=tr;if(t!==null)for(const g of t)g.rv=tr;Wt!==null&&(r===null?r=Wt:r.push(...Wt))}return e.f&Yn&&(e.f^=Yn),f}catch(g){return Wd(g)}finally{e.f^=Co,_t=t,Mt=n,Wt=r,Ee=s,Jt=i,Wr(o),cn=l,Mn=c}}function Sg(e,t){let n=t.reactions;if(n!==null){var r=Dm.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&&(_t===null||!Hr.call(_t,t))){var i=t;i.f&Gt&&(i.f^=Gt,i.f&=~fr),i.v!==qe&&El(i),ag(i),Ms(i,0)}}function Ms(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)Sg(e,n[r])}function br(e){var t=e.f;if(!(t&xt)){Fe(e,Qe);var n=ye,r=Ti;ye=e,Ti=!0;try{t&(dn|wl)?_g(e):jl(e),kf(e);var s=Rf(e);e.teardown=typeof s=="function"?s:null,e.wv=Cf;var i;Ed&&xb&&e.f&st&&e.deps}finally{Ti=r,ye=n}}}async function si(){await Promise.resolve(),Xn()}function Ig(){return Qt.ensure().settled()}function a(e){var t=e.f,n=(t&it)!==0;if(Lr?.add(e),Ee!==null&&!cn){var r=ye!==null&&(ye.f&xt)!==0;if(!r&&(Jt===null||!Hr.call(Jt,e))){var s=Ee.deps;if(Ee.f&Co)e.rv<tr&&(e.rv=tr,_t===null&&s!==null&&s[Mt]===e?Mt++:_t===null?_t=[e]:_t.push(e));else{(Ee.deps??=[]).push(e);var i=e.reactions;i===null?e.reactions=[Ee]:Hr.call(i,Ee)||i.push(Ee)}}}if(On&&ir.has(e))return ir.get(e);if(n){var o=e;if(On){var l=o.v;return(!(o.f&Qe)&&o.reactions!==null||Mf(o))&&(l=Rl(o)),ir.set(o,l),l}var c=(o.f&Gt)===0&&!cn&&Ee!==null&&(Ti||(Ee.f&Gt)!==0),u=(o.f&qn)===0;as(o)&&(c&&(o.f|=Gt),af(o)),c&&!u&&(of(o),Lf(o))}if(ht?.has(e))return ht.get(e);if(e.f&Yn)throw e.v;return e.v}function Lf(e){if(e.f|=Gt,e.deps!==null)for(const t of e.deps)(t.reactions??=[]).push(e),t.f&it&&!(t.f&Gt)&&(of(t),Lf(t))}function Mf(e){if(e.v===qe)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(ir.has(t)||t.f&it&&Mf(t))return!0;return!1}function Eg(e){return e&&a(e)}function ke(e){var t=cn;try{return cn=!0,e()}finally{cn=t}}function Nl(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if(dt in e)Ui(e);else if(!Array.isArray(e))for(let t in e){const n=e[t];typeof n=="object"&&n&&dt in n&&Ui(n)}}}function Ui(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{Ui(e[r],t)}catch{}const n=ya(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){const r=Ad(n);for(let s in r){const i=r[s].get;if(i)try{i.call(e)}catch{}}}}}function Ag(e,t){if(jd(),ce){const n=window.__svelte?.h;if(n?.has(e))return n.get(e);bb()}return t()}const _s=Symbol("events"),Pf=new Set,zo=new Set;function Cg(e){if(!ce)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 Df(e,t,n,r={}){function s(i){if(r.capture||Oo.call(t,i),!i.cancelBubble)return $n(()=>n?.call(this,i))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?mt(()=>{t.addEventListener(e,s,r)}):t.addEventListener(e,s,r),s}function Ue(e,t,n,r,s){var i={capture:r,passive:s},o=Df(e,t,n,i);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&Bt(()=>{t.removeEventListener(e,o,i)})}function K(e,t,n){(t[_s]??={})[e]=n}function pe(e){for(var t=0;t<e.length;t++)Pf.add(e[t]);for(var n of zo)n(e)}let Qc=null;function Oo(e){var t=this,n=t.ownerDocument,r=e.type,s=e.composedPath?.()||[],i=s[0]||e.target;Qc=e;var o=0,l=Qc===e&&e[_s];if(l){var c=s.indexOf(l);if(c!==-1&&(t===document||t===window)){e[_s]=t;return}var u=s.indexOf(t);if(u===-1)return;c<=u&&(o=c)}if(i=s[o]||e.target,i!==t){ur(e,"currentTarget",{configurable:!0,get(){return i||n}});var d=Ee,f=ye;At(null),ft(null);try{for(var v,m=[];i!==null;){var x=i.assignedSlot||i.parentNode||i.host||null;try{var g=i[_s]?.[r];g!=null&&(!i.disabled||e.target===i)&&g.call(i,e)}catch(b){v?m.push(b):v=b}if(e.cancelBubble||x===t||x===null)break;i=x}if(v){for(let b of m)queueMicrotask(()=>{throw b});throw v}}finally{e[_s]=t,delete e.currentTarget,At(d),ft(f)}}}function Tg(e,t,n,r,s,i=!1,o=!1){let l,c;try{l=e()}catch(u){c=u}if(typeof l!="function"&&(i||l!=null||c)){const u=r?.[Pt];s?`${u}${s[0]}${s[1]}`:`${u}`;const d=n[0]?.eventPhase<Event.BUBBLING_PHASE?"capture":"";if(n[0]?.type+d,mb(),c)throw c}l?.apply(t,n)}const Rg=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function jf(e){return Rg?.createHTML(e)??e}function ql(e){var t=Qn("template");return t.innerHTML=jf(e.replaceAll("<!>","<!---->")),t.content}const Lg=xr?"template":"TEMPLATE",Mg=xr?"script":"SCRIPT";function nt(e,t){var n=ye;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function A(e,t){var n=(t&yl)!==0,r=(t&xd)!==0,s,i=!e.startsWith("<!>");return()=>{if(ce)return nt(ge,null),ge;s===void 0&&(s=ql(i?e:"<!>"+e),n||(s=Be(s)));var o=r||Ll?document.importNode(s,!0):s.cloneNode(!0);if(n){var l=Be(o),c=o.lastChild;nt(l,c)}else nt(o,o);return o}}function zf(e,t,n="svg"){var r=!e.startsWith("<!>"),s=(t&yl)!==0,i=`<${n}>${r?e:"<!>"+e}</${n}>`,o;return()=>{if(ce)return nt(ge,null),ge;if(!o){var l=ql(i),c=Be(l);if(s)for(o=document.createDocumentFragment();Be(c);)o.appendChild(Be(c));else o=Be(c)}var u=o.cloneNode(!0);if(s){var d=Be(u),f=u.lastChild;nt(d,f)}else nt(u,u);return u}}function Bl(e,t){return zf(e,t,"svg")}function Pg(e,t){return zf(e,t,"math")}function Of(e,t){var n=fg();for(var r of e){if(typeof r=="string"){n.append(lt(r));continue}if(r===void 0||r[0][0]==="/"){n.append(mf(r?r[0].slice(3):""));continue}const[l,c,...u]=r,d=l==="svg"?Xs:l==="math"?_l:t;var s=Qn(l,d,c?.is);for(var i in c)vg(s,i,c[i]);if(u.length>0){var o=s.nodeName===Lg?s.content:s;o.append(Of(u,s.nodeName==="foreignObject"?void 0:d))}n.append(s)}return n}function Dg(e,t){var n=(t&yl)!==0,r=(t&xd)!==0,s;return()=>{if(ce)return nt(ge,null),ge;if(s===void 0){const c=t&Mm?Xs:t&Pm?_l:void 0;s=Of(e,c),n||(s=Be(s))}var i=r||Ll?document.importNode(s,!0):s.cloneNode(!0);if(n){var o=Be(i),l=i.lastChild;nt(o,l)}else nt(i,i);return i}}function jg(e){return()=>zg(e())}function zg(e){if(ce)return e;const t=e.nodeType===Dd,n=e.nodeName===Mg?[e]:e.querySelectorAll("script"),r=ye;for(const i of n){const o=Qn("script");for(var s of i.attributes)o.setAttribute(s.name,s.value);o.textContent=i.textContent,(t?e.firstChild===i:e===i)&&(r.nodes.start=o),(t?e.lastChild===i:e===i)&&(r.nodes.end=o),i.replaceWith(o)}return e}function fn(e=""){if(!ce){var t=lt(e+"");return nt(t,t),t}var n=ge;return n.nodeType!==Js?(n.before(n=lt()),Me(n)):Ia(n),nt(n,n),n}function De(){if(ce)return nt(ge,null),ge;var e=document.createDocumentFragment(),t=document.createComment(""),n=lt();return e.append(t,n),nt(t,n),e}function k(e,t){if(ce){var n=ye;(!(n.f&qn)||n.nodes.end===null)&&(n.nodes.end=ge),bt();return}e!==null&&e.before(t)}function Og(){if(ce&&ge&&ge.nodeType===Bn&&ge.textContent?.startsWith("$")){const e=ge.textContent.substring(1);return bt(),e}return(window.__svelte??={}).uid??=1,`c${window.__svelte.uid++}`}const Ng=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function qg(e){return Ng.includes(e)||e.toLowerCase()==="!doctype"}function Bg(e){return e.endsWith("capture")&&e!=="gotpointercapture"&&e!=="lostpointercapture"}const Fg=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function Vg(e){return Fg.includes(e)}const Ug={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 Hg(e){return e=e.toLowerCase(),Ug[e]??e}const Kg=["touchstart","touchmove"];function Wg(e){return Kg.includes(e)}const Yg=["textarea","script","style","title"];function Xg(e){return Yg.includes(e)}function Nf(e){return e?.replace(/\//g,"/​")}let Hi=!0;function jr(e){Hi=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 Ve(e,t){return Bf(e,t)}function qf(e,t){Do(),t.intro=t.intro??!1;const n=t.target,r=ce,s=ge;try{for(var i=Be(n);i&&(i.nodeType!==Bn||i.data!==pa);)i=Nt(i);if(!i)throw cr;ze(!0),Me(i);const o=Bf(e,{...t,anchor:i});return ze(!1),o}catch(o){if(o instanceof Error&&o.message.split(`
6
+ `).some(l=>l.startsWith("https://svelte.dev/e/")))throw o;return o!==cr&&console.warn("Failed to hydrate: ",o),t.recover===!1&&ab(),Do(),Ml(n),ze(!1),Ve(e,t)}finally{ze(r),Me(s)}}const gi=new Map;function Bf(e,{target:t,anchor:n,props:r={},events:s,context:i,intro:o=!0,transformError:l}){Do();var c=void 0,u=pg(()=>{var d=n??t.appendChild(lt());nf(d,{pending:()=>{}},m=>{ie({});var x=Le;if(i&&(x.c=i),s&&(r.$$events=s),ce&&nt(m,null),Hi=o,c=e(m,r)||{},Hi=!0,ce&&(ye.nodes.end=ge,ge===null||ge.nodeType!==Bn||ge.data!==ba))throw Zs(),cr;ae()},l);var f=new Set,v=m=>{for(var x=0;x<m.length;x++){var g=m[x];if(!f.has(g)){f.add(g);var b=Wg(g);for(const y of[t,document]){var C=gi.get(y);C===void 0&&(C=new Map,gi.set(y,C));var _=C.get(g);_===void 0?(y.addEventListener(g,Oo,{passive:b}),C.set(g,1)):C.set(g,_+1)}}}};return v(ga(Pf)),zo.add(v),()=>{for(var m of f)for(const b of[t,document]){var x=gi.get(b),g=x.get(m);--g==0?(b.removeEventListener(m,Oo),x.delete(m),x.size===0&&gi.delete(b)):x.set(m,g)}zo.delete(v),d!==n&&d.parentNode?.removeChild(d)}});return No.set(c,u),c}let No=new WeakMap;function et(e,t){const n=No.get(e);return n?(No.delete(e),n(t)):Promise.resolve()}function Gg(e){const t=e();t&&qg(t)&&Sb()}function Jg(e){const t=e();t&&!(typeof t=="string")&&Ym()}function Zg(e,t){e!=null&&typeof e.subscribe!="function"&&Wm()}function Ff(e){return e.toString=()=>(Km(),""),e}class os{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}#a=t=>{if(this.#e.has(t)){var n=this.#e.get(t),r=this.#t.get(n);if(r)zl(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[i,o]of this.#e){if(this.#e.delete(i),i===t)break;const l=this.#n.get(o);l&&(tt(l.effect),this.#n.delete(o))}for(const[i,o]of this.#t){if(i===n||this.#s.has(i))continue;const l=()=>{if(Array.from(this.#e.values()).includes(i)){var u=document.createDocumentFragment();Ol(o,u),u.append(lt()),this.#n.set(i,{effect:o,fragment:u})}else tt(o);this.#s.delete(i),this.#t.delete(i)};this.#r||!r?(this.#s.add(i),ar(o,l,!1)):l()}}};#i=t=>{this.#e.delete(t);const n=Array.from(this.#e.values());for(const[r,s]of this.#n)n.includes(r)||(tt(s.effect),this.#n.delete(r))};ensure(t,n){var r=_e,s=pf();if(n&&!this.#t.has(t)&&!this.#n.has(t))if(s){var i=document.createDocumentFragment(),o=lt();i.append(o),this.#n.set(t,{effect:vt(()=>n(o)),fragment:i})}else this.#t.set(t,vt(()=>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.#a),r.ondiscard(this.#i)}else ce&&(this.anchor=ge),this.#a(r)}}function $t(e,t,...n){var r=new os(e);Cn(()=>{const s=t()??null;r.ensure(s,s&&(i=>s(i,...n)))},pn)}function Qg(e,t){const n=(r,...s)=>{var i=xl;Wc(e);try{return t(r,...s)}finally{Wc(i)}};return Ff(n),n}function $g(e){return(t,...n)=>{var r=e(...n),s;if(ce)s=ge,bt();else{var i=r.render().trim(),o=ql(i);s=Be(o),t.before(s)}const l=r.setup?.(s);nt(s,s),typeof l=="function"&&Bt(l)}}function ey(){return Ee===null&&ib(),(Ee.ac??=new AbortController).signal}function Fl(e){Le===null&&ss(),Se(()=>{const t=ke(e);if(typeof t=="function")return t})}function Vl(e){Le===null&&ss(),Fl(()=>()=>ke(e))}function ty(e,t,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(e,{detail:t,bubbles:n,cancelable:r})}function ny(){const e=Le;return e===null&&ss(),(t,n,r)=>{const s=e.s.$$events?.[t];if(s){const i=rs(s)?s.slice():[s],o=ty(t,n,r);for(const l of i)l.call(e.x,o);return!o.defaultPrevented}return!0}}function ry(e){Le===null&&ss(),Le.l===null&&zd(),Vf(Le).b.push(e)}function sy(e){Le===null&&ss(),Le.l===null&&zd(),Vf(Le).a.push(e)}function Vf(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}const Uf=Object.freeze(Object.defineProperty({__proto__:null,afterUpdate:sy,beforeUpdate:ry,createContext:Mb,createEventDispatcher:ny,createRawSnippet:$g,flushSync:Xn,fork:Jb,getAbortSignal:ey,getAllContexts:Pb,getContext:Sl,hasContext:Ud,hydratable:Ag,hydrate:qf,mount:Ve,onDestroy:Vl,onMount:Fl,setContext:Il,settled:Ig,tick:si,unmount:et,untrack:ke},Symbol.toStringTag,{value:"Module"}));function iy(){return Symbol(Id)}function Hf(e,t,n,r){return e!==t&&typeof t=="object"&&dt in t&&fb(n,Nf(r)),e}function ay(e,t,n,r,s){return Hf(n==="="?e[t]=r:n==="&&="?e[t]&&=r():n==="||="?e[t]||=r():n==="??="?e[t]??=r():null,ke(()=>e[t]),t,s)}async function oy(e,t,n,r,s){return Hf(n==="="?e[t]=await r:n==="&&="?e[t]&&=await r():n==="||="?e[t]||=await r():n==="??="?e[t]??=await r():null,ke(()=>e[t]),t,s)}var $c=new Map;function ly(e){var t=$c.get(e);if(t){for(const n of t)n.remove();$c.delete(e)}}function cy(e,t,n){return(...r)=>{const s=e(...r);var i=ce?s:s.nodeType===Dd?s.firstChild:s;return Kf(i,t,n),s}}function uy(e,t,n){e.__svelte_meta={parent:Ei,loc:{file:t,line:n[0],column:n[1]}},n[2]&&Kf(e.firstChild,t,n[2])}function Kf(e,t,n){for(var r=0,s=0;e&&r<n.length;){if(ce&&e.nodeType===Bn){var i=e;i.data[0]===pa?s+=1:i.data[0]===ba&&(s-=1)}s===0&&e.nodeType===Pd&&uy(e,t,n[r++]),e=e.nextSibling}}function dy(e){const t=Et(e);function n(r,s){let i={},o={},l,c=!1,u=r;return Cn(()=>{if(i!==(i=a(t))){if(l){for(var d in o)delete o[d];tt(l)}l=vt(()=>{u=u[Vm]??u,c&&jr(!1);var f=new.target?new i(u,s):i(u,s);f&&Object.defineProperties(o,Object.getOwnPropertyDescriptors(f)),c&&jr(!0)}),ye.nodes=l.nodes}},pn),c=!0,ce&&(u=ge),o}return n[Pt]=e[Pt],n[Tr]={fn:e,current:t,update:r=>{S(n[Tr].current,r[Tr].fn),r[Tr].current=n[Tr].current}},n}function fy(e){const t=Le?.function,n=Le?.p?.function;return{mutation:(r,s,i,o,l)=>{const c=s[0];if(eu(e,c)||!n)return i;let u=e;for(let f=0;f<s.length-1;f++)if(u=u[s[f]],!u?.[dt])return i;const d=Nf(`${t[Pt]}:${o}:${l}`);return yb(c,d,r,n[Pt]),i},binding:(r,s,i)=>{!eu(e,r)&&n&&i()?.[dt]&&gb(t[Pt],r,s[Pt],n[Pt])}}}function eu(e,t){const n=dt in e||_a in e;return!!un(e,t)?.set||n&&t in e||!(t in e)}function vy(e){e&&Jm(e[Pt]??"a component",e.name)}function hy(){const e=Le?.function;function t(n){Gm(n,e[Pt])}return{$destroy:()=>t("$destroy()"),$on:()=>t("$on(...)"),$set:()=>t("$set(...)")}}function py(e,t,n=!1){Dl();let r=!0,s=qe;_f(()=>{try{var i=e()}catch(l){s=l;return}var o=hr(i,!0,!0);ke(()=>{if(n){if(t(...o),!r){const l=Tb("$inspect(...)");l&&(console.groupCollapsed("stack trace"),console.log(l),console.groupEnd())}}else t(r?"init":"update",...o)}),r=!1}),Xe(()=>{try{e()}catch{}s!==qe&&(console.error(s),s=qe)})}function my(e,t=[],n=[],r){var s=ce,i=null;if(s&&(bt(),i=vr(!1)),n.length===0&&t.every(c=>c.settled)){r(e),s&&Me(i);return}const o=$s();if(s){var l=ge;Me(i)}Qs(t,[],n,c=>{s&&(ze(!0),Me(l));try{for(const u of c)a(u);r(e,...c)}finally{s&&ze(!1),o()}})}function by(e,...t){(typeof e!="object"||!(e instanceof Node))&&Kc();for(let n of t)typeof n!="function"&&Kc()}const tu=0,nu=1,gy=2;function yy(e,t,n,r,s){ce&&bt();var i=qe,o=Et(i),l=Et(i),c=new os(e);Cn(()=>{var u=_e;u.deactivate();var d=t();u.activate();var f=!1;let v=ce&&Hc(d)===(e.data===ma);if(v&&(Me(vr()),ze(!1)),Hc(d)){var m=xa(),x=!1;const g=b=>{if(!f){x=!0,m(!1),Qt.ensure(),ce&&ze(!1);try{b()}finally{pr(!1),Nr||Xn()}}};d.then(b=>{g(()=>{In(o,b),c.ensure(nu,r&&(C=>r(C,o)))})},b=>{g(()=>{if(In(l,b),c.ensure(gy,s&&(C=>s(C,l))),!s)throw l.v})}),ce?c.ensure(tu,n):mt(()=>{x||g(()=>{c.ensure(tu,n)})})}else In(o,d),c.ensure(nu,r&&(g=>r(g,o)));return v&&ze(!0),()=>{f=!0}})}function U(e,t,n=!1){var r;ce&&(r=ge,bt());var s=new os(e),i=n?pn:0;function o(l,c){if(ce){var u=kl(r);if(l!==parseInt(u.substring(1))){var d=vr();Me(d),s.anchor=d,ze(!1),s.ensure(l,c),ze(!0);return}}s.ensure(l,c)}Cn(()=>{var l=!1;t((c,u=0)=>{l=!0,o(u,c)}),l||o(-1,null)},i)}const _y=Symbol("NaN");function wy(e,t,n){ce&&bt();var r=new os(e);Cn(()=>{var s=t();s!==s&&(s=_y),r.ensure(s,n)})}function ky(e,t){ce&&Me(Be(e)),Xe(()=>{var n=t();for(var r in n){var s=n[r];s?e.style.setProperty(r,s):e.style.removeProperty(r)}})}function gt(e,t){return t}function xy(e,t,n){for(var r=[],s=t.length,i,o=t.length,l=0;l<s;l++){let f=t[l];ar(f,()=>{if(i){if(i.pending.delete(f),i.done.add(f),i.pending.size===0){var v=e.outrogroups;qo(e,ga(i.done)),v.delete(i),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;Ml(d),d.append(u),e.items.clear()}qo(e,t,!c)}else i={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(i)}function qo(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 i=t[s];if(r?.has(i)){i.f|=kn;const o=document.createDocumentFragment();Ol(i,o)}else tt(t[s],n)}}var ru;function be(e,t,n,r,s,i=null){var o=e,l=new Map,c=(t&wd)!==0;if(c){var u=e;o=ce?Me(Be(u)):u.appendChild(lt())}ce&&bt();var d=null,f=Tl(()=>{var y=n();return rs(y)?y:y==null?[]:ga(y)}),v,m=new Map,x=!0;function g(y){_.effect.f&xt||(_.pending.delete(y),_.fallback=d,Sy(_,v,o,t,r),d!==null&&(v.length===0?d.f&kn?(d.f^=kn,ws(d,null,o)):zl(d):ar(d,()=>{d=null})))}function b(y){_.pending.delete(y)}var C=Cn(()=>{v=a(f);var y=v.length;let T=!1;if(ce){var I=kl(o)===ma;I!==(y===0)&&(o=vr(),Me(o),ze(!1),T=!0)}for(var D=new Set,R=_e,P=pf(),L=0;L<y;L+=1){ce&&ge.nodeType===Bn&&ge.data===ba&&(o=ge,T=!0,ze(!1));var N=v[L],E=r(N,L),M=x?null:l.get(E);M?(M.v&&In(M.v,N),M.i&&In(M.i,L),P&&R.unskip_effect(M.e)):(M=Iy(l,x?o:ru??=lt(),N,E,L,s,t,n),x||(M.e.f|=kn),l.set(E,M)),D.add(E)}if(y===0&&i&&!d&&(x?d=vt(()=>i(o)):(d=vt(()=>i(ru??=lt())),d.f|=kn)),y>D.size&&Zm(),ce&&y>0&&Me(vr()),!x)if(m.set(R,D),P){for(const[j,B]of l)D.has(j)||R.skip_effect(B.e);R.oncommit(g),R.ondiscard(b)}else g(R);T&&ze(!0),a(f)}),_={effect:C,items:l,pending:m,outrogroups:null,fallback:d};x=!1,ce&&(o=ge)}function ms(e){for(;e!==null&&!(e.f&vn);)e=e.next;return e}function Sy(e,t,n,r,s){var i=(r&Sm)!==0,o=t.length,l=e.items,c=ms(e.effect.first),u,d=null,f,v=[],m=[],x,g,b,C;if(i)for(C=0;C<o;C+=1)x=t[C],g=s(x,C),b=l.get(g).e,b.f&kn||(b.nodes?.a?.measure(),(f??=new Set).add(b));for(C=0;C<o;C+=1){if(x=t[C],g=s(x,C),b=l.get(g).e,e.outrogroups!==null)for(const N of e.outrogroups)N.pending.delete(b),N.done.delete(b);if(b.f&pt&&(zl(b),i&&(b.nodes?.a?.unfix(),(f??=new Set).delete(b))),b.f&kn)if(b.f^=kn,b===c)ws(b,null,n);else{var _=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),Vn(e,d,b),Vn(e,b,_),ws(b,_,n),d=b,v=[],m=[],c=ms(d.next);continue}if(b!==c){if(u!==void 0&&u.has(b)){if(v.length<m.length){var y=m[0],T;d=y.prev;var I=v[0],D=v[v.length-1];for(T=0;T<v.length;T+=1)ws(v[T],y,n);for(T=0;T<m.length;T+=1)u.delete(m[T]);Vn(e,I.prev,D.next),Vn(e,d,I),Vn(e,D,y),c=y,d=D,C-=1,v=[],m=[]}else u.delete(b),ws(b,c,n),Vn(e,b.prev,b.next),Vn(e,b,d===null?e.effect.first:d.next),Vn(e,d,b),d=b;continue}for(v=[],m=[];c!==null&&c!==b;)(u??=new Set).add(c),m.push(c),c=ms(c.next);if(c===null)continue}b.f&kn||v.push(b),d=b,c=ms(b.next)}if(e.outrogroups!==null){for(const N of e.outrogroups)N.pending.size===0&&(qo(e,ga(N.done)),e.outrogroups?.delete(N));e.outrogroups.size===0&&(e.outrogroups=null)}if(c!==null||u!==void 0){var R=[];if(u!==void 0)for(b of u)b.f&pt||R.push(b);for(;c!==null;)!(c.f&pt)&&c!==e.fallback&&R.push(c),c=ms(c.next);var P=R.length;if(P>0){var L=r&wd&&o===0?n:null;if(i){for(C=0;C<P;C+=1)R[C].nodes?.a?.measure();for(C=0;C<P;C+=1)R[C].nodes?.a?.fix()}xy(e,R,L)}}i&&mt(()=>{if(f!==void 0)for(b of f)b.nodes?.a?.apply()})}function Iy(e,t,n,r,s,i,o,l){var c=o&km?o&Im?Et(n):Sa(n,!1,!1):null,u=o&xm?Et(s):null;return{v:c,i:u,e:vt(()=>(i(t,c??n,u??s,l),()=>{e.delete(r)}))}}function ws(e,t,n){if(e.nodes)for(var r=e.nodes.start,s=e.nodes.end,i=t&&!(t.f&kn)?t.nodes.start:n;r!==null;){var o=Nt(r);if(i.before(r),r===s)return;r=o}}function Vn(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function Ey(e,t,n=!1,r=!1,s=!1,i=!1){var o=e,l="";if(n){var c=e;ce&&(o=Me(Be(c)))}O(()=>{var u=ye;if(l===(l=t()??"")){ce&&bt();return}if(n&&!ce){u.nodes=null,c.innerHTML=l,l!==""&&nt(Be(c),c.lastChild);return}if(u.nodes!==null&&(xf(u.nodes.start,u.nodes.end),u.nodes=null),l!==""){if(ce){ge.data;for(var d=bt(),f=d;d!==null&&(d.nodeType!==Bn||d.data!=="");)f=d,d=Nt(d);if(d===null)throw Zs(),cr;nt(ge,f),o=Me(d);return}var v=r?Xs:s?_l:void 0,m=Qn(r?"svg":s?"math":"template",v);m.innerHTML=l;var x=r||s?m:m.content;if(nt(Be(x),x.lastChild),r||s)for(;Be(x);)o.before(Be(x));else o.before(x)}})}function Ay(e,t,n,r,s){ce&&bt();var i=t.$$slots?.[n],o=!1;i===!0&&(i=t[n==="default"?"children":n],o=!0),i===void 0?s!==null&&s(e):i(e,o?()=>r:r)}function Cy(e){const t={};e.children&&(t.default=!0);for(const n in e.$$slots)t[n]=!0;return t}function ii(e,t,n){var r;ce&&(r=ge,bt());var s=new os(e);Cn(()=>{var i=t()??null;if(ce){var o=kl(r),l=o===pa,c=i!==null;if(l!==c){var u=vr();Me(u),s.anchor=u,ze(!1),s.ensure(i,i&&(d=>n(d,i))),ze(!0);return}}s.ensure(i,i&&(d=>n(d,i)))},pn)}const Ty=()=>performance.now(),wn={tick:e=>requestAnimationFrame(e),now:()=>Ty(),tasks:new Set};function Wf(){const e=wn.now();wn.tasks.forEach(t=>{t.c(e)||(wn.tasks.delete(t),t.f())}),wn.tasks.size!==0&&wn.tick(Wf)}function Ry(e){let t;return wn.tasks.size===0&&wn.tick(Wf),{promise:new Promise(n=>{wn.tasks.add(t={c:e,f:n})}),abort(){wn.tasks.delete(t)}}}function Ki(e,t){$n(()=>{e.dispatchEvent(new CustomEvent(t))})}function Ly(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 su(e){const t={},n=e.split(";");for(const r of n){const[s,i]=r.split(":");if(!s||i===void 0)break;const o=Ly(s.trim());t[o]=i.trim()}return t}const My=e=>e;let Yf=null;function iu(e){Yf=e}function Py(e,t,n){var r=Yf??ye,s=r.nodes,i,o,l,c=null;s.a??={element:e,measure(){i=this.element.getBoundingClientRect()},apply(){if(l?.abort(),o=this.element.getBoundingClientRect(),i.left!==o.left||i.right!==o.right||i.top!==o.top||i.bottom!==o.bottom){const u=t()(this.element,{from:i,to:o},n?.());l=Wi(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(i.left!==m.left||i.top!==m.top){var x=`translate(${i.left-m.left}px, ${i.top-m.top}px)`;v.transform=v.transform?`${v.transform} ${x}`:x}}}},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 Dy(e,t,n,r){var s=(e&Tm)!==0,i=(e&Rm)!==0,o=s&&i,l=(e&Lm)!==0,c=o?"both":s?"in":"out",u,d=t.inert,f=t.style.overflow,v,m;function x(){return $n(()=>u??=n()(t,r?.()??{},{direction:c}))}var g={is_global:l,in(){if(t.inert=d,!s){m?.abort(),m?.reset?.();return}i||v?.abort(),v=Wi(t,x(),m,1,()=>{Ki(t,"introend"),v?.abort(),v=u=void 0,t.style.overflow=f})},out(y){if(!i){y?.(),u=void 0;return}t.inert=!0,m=Wi(t,x(),v,0,()=>{Ki(t,"outroend"),y?.()})},stop:()=>{v?.abort(),m?.abort()}},b=ye;if((b.nodes.t??=[]).push(g),s&&Hi){var C=l;if(!C){for(var _=b.parent;_&&_.f&pn;)for(;(_=_.parent)&&!(_.f&dn););C=!_||(_.f&qn)!==0}C&&qt(()=>{ke(()=>g.in())})}}function Wi(e,t,n,r,s){var i=r===1;if(Rr(t)){var o,l=!1;return mt(()=>{if(!l){var b=t({direction:i?"in":"out"});o=Wi(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 Ki(e,i?"introstart":"outrostart"),s(),{abort:Dt,deactivate:Dt,reset:Dt,t:()=>r};const{delay:c=0,css:u,tick:d,easing:f=My}=t;var v=[];if(i&&n===void 0&&(d&&d(0,1),u)){var m=su(u(0,1));v.push(m,m)}var x=()=>1-r,g=e.animate(v,{duration:c,fill:"forwards"});return g.onfinish=()=>{g.cancel(),Ki(e,i?"introstart":"outrostart");var b=n?.t()??1-r;n?.abort();var C=r-b,_=t.duration*Math.abs(C),y=[];if(_>0){var T=!1;if(u)for(var I=Math.ceil(_/16.666666666666668),D=0;D<=I;D+=1){var R=b+C*f(D/I),P=su(u(R,1-R));y.push(P),T||=P.overflow==="hidden"}T&&(e.style.overflow="hidden"),x=()=>{var L=g.currentTime;return b+C*f(L/_)},d&&Ry(()=>{if(g.playState!=="running")return!1;var L=x();return d(L,1-L),!0})}g=e.animate(y,{duration:_,fill:"forwards"}),g.onfinish=()=>{x=()=>r,d?.(r,1-r),s()}},{abort:()=>{g&&(g.cancel(),g.effect=null,g.onfinish=Dt)},deactivate:()=>{s=Dt},reset:()=>{r===0&&d?.(1,0)},t:()=>x()}}function jy(e,t,n,r,s,i){let o=ce;ce&&bt();var l=null;ce&&ge.nodeType===Pd&&(l=ge,bt());var c=ce?ge:e,u=ye,d=new os(c,!1);Cn(()=>{const f=t()||null;var v=s?s():n||f==="svg"?Xs:void 0;if(f===null){d.ensure(null,null),jr(!0);return}return d.ensure(f,m=>{if(f){if(l=ce?l:Qn(f,v),nt(l,l),r){ce&&Xg(f)&&l.append(document.createComment(""));var x=ce?Be(l):l.appendChild(lt());ce&&(x===null?ze(!1):Me(x)),iu(u),r(l,x),iu(null)}ye.nodes.end=l,m.before(l)}ce&&Me(m)}),jr(!0),()=>{f&&jr(!1)}},pn),Bt(()=>{jr(!0)}),o&&(ze(!0),Me(c))}function zy(e,t){let n=null,r=ce;var s;if(ce){n=ge;for(var i=Be(document.head);i!==null&&(i.nodeType!==Bn||i.data!==e);)i=Nt(i);if(i===null)ze(!1);else{var o=Nt(i);i.remove(),Me(o)}}ce||(s=document.head.appendChild(lt()));try{Cn(()=>t(s),Ld|Zn)}finally{r&&(ze(!0),Me(n))}}function Oy(e,t){qt(()=>{var n=e.getRootNode(),r=n.host?n:n.head??n.ownerDocument.head;if(!r.querySelector("#"+t.hash)){const s=Qn("style");s.id=t.hash,s.textContent=t.code,r.appendChild(s)}})}function Xf(e,t,n){qt(()=>{var r=ke(()=>t(e,n?.())||{});if(n&&r?.update){var s=!1,i={};Xe(()=>{var o=n();Nl(o),s&&qd(i,o)&&(i=o,r.update(o))}),s=!0}if(r?.destroy)return()=>r.destroy()})}function Ul(e,t){var n=void 0,r;wf(()=>{n!==(n=t())&&(r&&(tt(r),r=null),n&&(r=vt(()=>{qt(()=>n(e))})))})}const Ny=/[&"<]/g;function qy(e,t){const n=String(e??""),r=Ny;r.lastIndex=0;let s="",i=0;for(;r.test(n);){const o=r.lastIndex-1,l=n[o];s+=n.substring(i,o)+(l==="&"?"&amp;":l==='"'?"&quot;":"&lt;"),i=o+1}return s+n.substring(i)}function Gf(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=Gf(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function By(){for(var e,t,n=0,r="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=Gf(e))&&(r&&(r+=" "),r+=t);return r}const au={translate:new Map([[!0,"yes"],[!1,"no"]])};function Fy(e,t,n=!1){if(e==="hidden"&&t!=="until-found"&&(n=!0),t==null||!t&&n)return"";const r=zm.call(au,e)&&au[e].get(t)||t,s=n?'=""':`="${qy(r)}"`;return` ${e}${s}`}function Jf(e){return typeof e=="object"?By(e):e??""}const ou=[...`
7
+ \r\f \v\uFEFF`];function Vy(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 i=s.length,o=0;(o=r.indexOf(s,o))>=0;){var l=o+i;(o===0||ou.includes(r[o-1]))&&(l===r.length||ou.includes(r[l]))?r=(o===0?"":r.substring(0,o))+r.substring(l+1):o=l}}return r===""?null:r}function lu(e,t=!1){var n=t?" !important;":";",r="";for(var s of Object.keys(e)){var i=e[s];i!=null&&i!==""&&(r+=" "+s+": "+i+n)}return r}function ro(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function Uy(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 i=!1,o=0,l=!1,c=[];r&&c.push(...Object.keys(r).map(ro)),s&&c.push(...Object.keys(s).map(ro));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):i?i===v&&(i=!1):v==="/"&&e[f+1]==="*"?l=!0:v==='"'||v==="'"?i=v:v==="("?o++:v===")"&&o--,!l&&i===!1&&o===0){if(v===":"&&d===-1)d=f;else if(v===";"||f===g-1){if(d!==-1){var m=ro(e.substring(u,d).trim());if(!c.includes(m)){v!==";"&&f++;var x=e.substring(u,f).trim();n+=" "+x+";"}}u=f+1,d=-1}}}}return r&&(n+=lu(r)),s&&(n+=lu(s,!0)),n=n.trim(),n===""?null:n}return e==null?null:String(e)}function he(e,t,n,r,s,i){var o=e.__className;if(ce||o!==n||o===void 0){var l=Vy(n,r,i);(!ce||l!==e.getAttribute("class"))&&(l==null?e.removeAttribute("class"):t?e.className=l:e.setAttribute("class",l)),e.__className=n}else if(i&&s!==i)for(var c in i){var u=!!i[c];(s==null||u!==!!s[c])&&e.classList.toggle(c,u)}return i}function so(e,t={},n,r){for(var s in n){var i=n[s];t[s]!==i&&(n[s]==null?e.style.removeProperty(s):e.style.setProperty(s,i,r))}}function Ye(e,t,n,r){var s=e.__style;if(ce||s!==t){var i=Uy(t,r);(!ce||i!==e.getAttribute("style"))&&(i==null?e.removeAttribute("style"):e.style.cssText=i),e.__style=t}else r&&(Array.isArray(r)?(so(e,n?.[0],r[0]),so(e,n?.[1],r[1],"important")):so(e,n,r));return r}function Ps(e,t,n=!1){if(e.multiple){if(t==null)return;if(!rs(t))return _b();for(var r of e.options)r.selected=t.includes(Es(r));return}for(r of e.options){var s=Es(r);if(df(s,t)){r.selected=!0;return}}(!n||t!==void 0)&&(e.selectedIndex=-1)}function Hl(e){var t=new MutationObserver(()=>{Ps(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),Bt(()=>{t.disconnect()})}function Ds(e,t,n=t){var r=new WeakSet,s=!0;ni(e,"change",i=>{var o=i?"[selected]":":checked",l;if(e.multiple)l=[].map.call(e.querySelectorAll(o),Es);else{var c=e.querySelector(o)??e.querySelector("option:not([disabled])");l=c&&Es(c)}n(l),e.__value=l,_e!==null&&r.add(_e)}),qt(()=>{var i=t();if(e===document.activeElement){var o=_e;if(r.has(o))return}if(Ps(e,i,s),s&&i===void 0){var l=e.querySelector(":checked");l!==null&&(i=Es(l),n(i))}e.__value=i,s=!1}),Hl(e)}function Es(e){return"__value"in e?e.__value:e.value}const Mr=Symbol("class"),Pr=Symbol("style"),Zf=Symbol("is custom element"),Qf=Symbol("is html"),Hy=xr?"link":"LINK",Ky=xr?"input":"INPUT",Wy=xr?"option":"OPTION",Yy=xr?"select":"SELECT",Xy=xr?"progress":"PROGRESS";function xe(e){if(ce){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute("value")){var r=e.value;se(e,"value",null),e.value=r}if(e.hasAttribute("checked")){var s=e.checked;se(e,"checked",null),e.checked=s}}};e.__on_r=n,mt(n),bf()}}function js(e,t){var n=Ea(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==Xy)||(e.value=t??"")}function Kl(e,t){var n=Ea(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function Wl(e,t){t?e.hasAttribute("selected")||e.setAttribute("selected",""):e.removeAttribute("selected")}function Gy(e,t){const n=e.checked;e.defaultChecked=t,e.checked=n}function Jy(e,t){const n=e.value;e.defaultValue=t,e.value=n}function se(e,t,n,r){var s=Ea(e);ce&&(s[t]=e.getAttribute(t),t==="src"||t==="srcset"||t==="href"&&e.nodeName===Hy)||s[t]!==(s[t]=n)&&(t==="loading"&&(e[Bm]=n),n==null?e.removeAttribute(t):typeof n!="string"&&Yl(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function Zy(e,t,n){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n)}function Qy(e,t,n){var r=Ee,s=ye;let i=ce;ce&&ze(!1),At(null),ft(null);try{t!=="style"&&(Bo.has(e.getAttribute("is")||e.nodeName)||!customElements||customElements.get(e.getAttribute("is")||e.nodeName.toLowerCase())?Yl(e).includes(t):n&&typeof n=="object")?e[t]=n:se(e,t,n==null?n:String(n))}finally{At(r),ft(s),i&&ze(!0)}}function $y(e,t,n,r,s=!1,i=!1){if(ce&&s&&e.nodeName===Ky){var o=e,l=o.type==="checkbox"?"defaultChecked":"defaultValue";l in n||xe(o)}var c=Ea(e),u=c[Zf],d=!c[Qf];let f=ce&&u;f&&ze(!1);var v=t||{},m=e.nodeName===Wy;for(var x in t)x in n||(n[x]=null);n.class?n.class=Jf(n.class):(r||n[Mr])&&(n.class=null),n[Pr]&&(n.style??=null);var g=Yl(e);for(const R in n){let P=n[R];if(m&&R==="value"&&P==null){e.value=e.__value="",v[R]=P;continue}if(R==="class"){var b=e.namespaceURI==="http://www.w3.org/1999/xhtml";he(e,b,P,r,t?.[Mr],n[Mr]),v[R]=P,v[Mr]=n[Mr];continue}if(R==="style"){Ye(e,P,t?.[Pr],n[Pr]),v[R]=P,v[Pr]=n[Pr];continue}var C=v[R];if(!(P===C&&!(P===void 0&&e.hasAttribute(R)))){v[R]=P;var _=R[0]+R[1];if(_!=="$$")if(_==="on"){const L={},N="$$"+R;let E=R.slice(2);var y=Vg(E);if(Bg(E)&&(E=E.slice(0,-7),L.capture=!0),!y&&C){if(P!=null)continue;e.removeEventListener(E,v[N],L),v[N]=null}if(y)K(E,e,P),pe([E]);else if(P!=null){let M=function(j){v[R].call(this,j)};var D=M;v[N]=Df(E,e,M,L)}}else if(R==="style")se(e,R,P);else if(R==="autofocus")ti(e,!!P);else if(!u&&(R==="__value"||R==="value"&&P!=null))e.value=e.__value=P;else if(R==="selected"&&m)Wl(e,P);else{var T=R;d||(T=Hg(T));var I=T==="defaultValue"||T==="defaultChecked";if(P==null&&!u&&!I)if(c[R]=null,T==="value"||T==="checked"){let L=e;const N=t===void 0;if(T==="value"){let E=L.defaultValue;L.removeAttribute(T),L.defaultValue=E,L.value=L.__value=N?E:null}else{let E=L.defaultChecked;L.removeAttribute(T),L.defaultChecked=E,L.checked=N?E:!1}}else e.removeAttribute(R);else I||g.includes(T)&&(u||typeof P!="string")?(e[T]=P,T in c&&(c[T]=qe)):typeof P!="function"&&se(e,T,P)}}}return f&&ze(!0),v}function e_(e,t,n=[],r=[],s=[],i,o=!1,l=!1){Qs(s,n,r,c=>{var u=void 0,d={},f=e.nodeName===Yy,v=!1;if(wf(()=>{var x=t(...c.map(a)),g=$y(e,u,x,i,o,l);v&&f&&"value"in x&&Ps(e,x.value);for(let C of Object.getOwnPropertySymbols(d))x[C]||tt(d[C]);for(let C of Object.getOwnPropertySymbols(x)){var b=x[C];C.description===Id&&(!u||b!==u[C])&&(d[C]&&tt(d[C]),d[C]=vt(()=>Ul(e,()=>b))),g[C]=b}u=g}),f){var m=e;qt(()=>{Ps(m,u.value,!0),Hl(m)})}v=!0})}function Ea(e){return e.__attributes??={[Zf]:e.nodeName.includes("-"),[Qf]:e.namespaceURI===Sd}}var Bo=new Map;function Yl(e){var t=e.getAttribute("is")||e.nodeName,n=Bo.get(t);if(n)return n;Bo.set(t,n=[]);for(var r,s=e,i=Element.prototype;i!==s;){r=Ad(s);for(var o in r)r[o].set&&n.push(o);s=ya(s)}return n}let io=null;function $f(){if(io===null){var e=Qn("select");e.innerHTML=jf("<option><span>t</span></option>"),io=e.firstChild?.firstChild?.nodeType===1}return io}function t_(e,t){$f()&&Ul(e,()=>()=>{const n=e.closest("select");if(!n)return;const r=new MutationObserver(s=>{var i=!1;for(const o of s){if(o.target===e)return;i||=!!o.target.parentElement?.closest("option")?.selected}i&&(e.replaceWith(e=e.cloneNode(!0)),t(e))});return r.observe(n,{childList:!0,characterData:!0,subtree:!0}),()=>{r.disconnect()}})}function n_(e,t){var n=ce;$f()||(ze(!1),e.textContent="",e.append(mf("")));try{t()}finally{n&&(ce?h(e):(ze(!0),Me(e)))}}function r_(e){Tt(document,["focusin","focusout"],t=>{t&&t.type==="focusout"&&t.relatedTarget||e(document.activeElement)})}function Te(e,t,n=t){var r=new WeakSet;ni(e,"input",async s=>{var i=s?e.defaultValue:e.value;if(i=oo(e)?lo(i):i,n(i),_e!==null&&r.add(_e),await si(),i!==(i=t())){var o=e.selectionStart,l=e.selectionEnd,c=e.value.length;if(e.value=i??"",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))}}}),(ce&&e.defaultValue!==e.value||ke(t)==null&&e.value)&&(n(oo(e)?lo(e.value):e.value),_e!==null&&r.add(_e)),Xe(()=>{var s=t();if(e===document.activeElement){var i=_e;if(r.has(i))return}oo(e)&&s===lo(e.value)||e.type==="date"&&!s&&!e.value||s!==e.value&&(e.value=s??"")})}const ao=new Set;function s_(e,t,n,r,s=r){var i=n.getAttribute("type")==="checkbox",o=e;let l=!1;if(t!==null)for(var c of t)o=o[c]??=[];o.push(n),ni(n,"change",()=>{var u=n.__value;i&&(u=cu(o,u,n.checked)),s(u)},()=>s(i?[]:null)),Xe(()=>{var u=r();if(ce&&n.defaultChecked!==n.checked){l=!0;return}i?(u=u||[],n.checked=u.includes(n.__value)):n.checked=df(n.__value,u)}),Bt(()=>{var u=o.indexOf(n);u!==-1&&o.splice(u,1)}),ao.has(o)||(ao.add(o),mt(()=>{o.sort((u,d)=>u.compareDocumentPosition(d)===4?-1:1),ao.delete(o)})),mt(()=>{if(l){var u;if(i)u=cu(o,u,n.checked);else{var d=o.find(f=>f.checked);u=d?.__value}s(u)}})}function As(e,t,n=t){ni(e,"change",r=>{var s=r?e.defaultChecked:e.checked;n(s)}),(ce&&e.defaultChecked!==e.checked||ke(t)==null)&&n(e.checked),Xe(()=>{var r=t();e.checked=!!r})}function cu(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 oo(e){var t=e.type;return t==="number"||t==="range"}function lo(e){return e===""?null:+e}function i_(e,t,n=t){ni(e,"change",()=>{n(e.files)}),ce&&e.files&&n(e.files),Xe(()=>{e.files=t()})}function Xl(e){for(var t=[],n=0;n<e.length;n+=1)t.push({start:e.start(n),end:e.end(n)});return t}function a_(e,t,n=t){var r,s,i=()=>{cancelAnimationFrame(r),e.paused||(r=requestAnimationFrame(i));var o=e.currentTime;s!==o&&n(s=o)};r=requestAnimationFrame(i),e.addEventListener("timeupdate",i),Xe(()=>{var o=Number(t());s!==o&&!isNaN(o)&&(e.currentTime=s=o)}),Bt(()=>{cancelAnimationFrame(r),e.removeEventListener("timeupdate",i)})}function o_(e,t){var n;Tt(e,["loadedmetadata","progress","timeupdate","seeking"],()=>{var r=e.buffered;(!n||n.length!==r.length||n.some((s,i)=>r.start(i)!==s.start||r.end(i)!==s.end))&&(n=Xl(r),t(n))})}function l_(e,t){Tt(e,["loadedmetadata"],()=>t(Xl(e.seekable)))}function c_(e,t){Tt(e,["timeupdate"],()=>t(Xl(e.played)))}function u_(e,t){Tt(e,["seeking","seeked"],()=>t(e.seeking))}function d_(e,t){Tt(e,["timeupdate","ended"],()=>t(e.ended))}function f_(e,t){Tt(e,["loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","emptied"],()=>t(e.readyState))}function v_(e,t,n=t){qt(()=>{var r=Number(t());r!==e.playbackRate&&!isNaN(r)&&(e.playbackRate=r)}),qt(()=>{Tt(e,["ratechange"],()=>{n(e.playbackRate)})})}function h_(e,t,n=t){var r=t(),s=()=>{r!==e.paused&&n(r=e.paused)};Tt(e,["play","pause","canplay"],s,r==null),qt(()=>{(r=!!t())!==e.paused&&(r?e.pause():e.play().catch(i=>{throw n(r=!0),i}))})}function p_(e,t,n=t){var r=()=>{n(e.volume)};t()==null&&r(),Tt(e,["volumechange"],r,!1),Xe(()=>{var s=Number(t());s!==e.volume&&!isNaN(s)&&(e.volume=s)})}function m_(e,t,n=t){var r=()=>{n(e.muted)};t()==null&&r(),Tt(e,["volumechange"],r,!1),Xe(()=>{var s=!!t();e.muted!==s&&(e.muted=s)})}function b_(e){Tt(window,["online","offline"],()=>{e(navigator.onLine)})}function g_(e,t,n){var r=un(e,t);r&&r.set&&(e[t]=n,Bt(()=>{e[t]=null}))}class ai{#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){ai.entries.set(n.target,n);for(var r of this.#e.get(n.target)||[])r(n)}}))}}var y_=new ai({box:"content-box"}),ev=new ai({box:"border-box"}),__=new ai({box:"device-pixel-content-box"});function w_(e,t,n){var r=t==="contentRect"||t==="contentBoxSize"?y_:t==="borderBoxSize"?ev:__,s=r.observe(e,i=>n(i[t]));Bt(s)}function k_(e,t,n){var r=ev.observe(e,()=>n(e[t]));qt(()=>(ke(()=>n(e[t])),r))}function uu(e,t){return e===t||e?.[dt]===t}function Ne(e={},t,n,r){var s=Le.r,i=ye;return qt(()=>{var o,l;return Xe(()=>{o=l,l=r?.()||[],ke(()=>{e!==n(...l)&&(t(e,...l),o&&uu(n(...o),e)&&t(null,...o))})}),()=>{let c=i;for(;c!==s&&c.parent!==null&&c.parent.f&Ao;)c=c.parent;const u=()=>{l&&uu(n(...l),e)&&t(null,...l)},d=c.teardown;c.teardown=()=>{u(),d?.()}}}),e}function x_(e,t,n,r=n){t.addEventListener("input",()=>{r(t[e])}),Xe(()=>{var s=n();if(t[e]!==s)if(s==null){var i=t[e];r(i)}else t[e]=s+""})}function S_(e,t,n,r,s){var i=()=>{r(n[e])};n.addEventListener(t,i),s?Xe(()=>{n[e]=s()}):i(),(n===document.body||n===window||n===document)&&Bt(()=>{n.removeEventListener(t,i)})}function I_(e,t){Tt(e,["focus","blur"],()=>{t(e===document.activeElement)})}function E_(e,t,n=t){var r=e==="x",s=()=>$n(()=>{i=!0,clearTimeout(o),o=setTimeout(l,100),n(window[r?"scrollX":"scrollY"])});addEventListener("scroll",s,{passive:!0});var i=!1,o,l=()=>{i=!1},c=!0;Xe(()=>{var u=t();c?c=!1:!i&&u!=null&&(i=!0,clearTimeout(o),r?scrollTo(u,window.scrollY):scrollTo(window.scrollX,u),o=setTimeout(l,100))}),qt(s),Bt(()=>{removeEventListener("scroll",s)})}function A_(e,t){Tt(window,["resize"],()=>$n(()=>t(window[e])))}function C_(e){return function(...t){var n=t[0];n.isTrusted&&e?.apply(this,t)}}function T_(e){return function(...t){var n=t[0];n.target===this&&e?.apply(this,t)}}function R_(e){return function(...t){var n=t[0];return n.stopPropagation(),e?.apply(this,t)}}function L_(e){var t=!1;return function(...n){if(!t)return t=!0,e?.apply(this,n)}}function M_(e){return function(...t){var n=t[0];return n.stopImmediatePropagation(),e?.apply(this,t)}}function P_(e){return function(...t){var n=t[0];return n.preventDefault(),e?.apply(this,t)}}function D_(e=!1){const t=Le,n=t.l.u;if(!n)return;let r=()=>Nl(t.s);if(e){let s=0,i={};const o=ei(()=>{let l=!1;const c=t.s;for(const u in c)c[u]!==i[u]&&(i[u]=c[u],l=!0);return l&&s++,s});r=()=>a(o)}n.b.length&&yf(()=>{du(t,r),Io(n.b)}),Se(()=>{const s=ke(()=>n.m.map(Om));return()=>{for(const i of s)typeof i=="function"&&i()}}),n.a.length&&Se(()=>{du(t,r),Io(n.a)})}function du(e,t){if(e.l.s)for(const n of e.l.s)a(n);t()}function j_(e){var t=Et(0);return function(){return arguments.length===1?(S(t,a(t)+1),arguments[0]):(a(t),e())}}function z_(e,t){var n=e.$$events?.[t.type],r=rs(n)?n.slice():n==null?[]:[n];for(var s of r)s.call(this,t)}function O_(e,t,n){e.$$events||={},e.$$events[t]||=[],e.$$events[t].push(n)}function N_(e){for(var t in e)t in this&&(this[t]=e[t])}function q_(e,t=1){const n=e();return e(n+t),n}function B_(e,t=1){const n=e()+t;return e(n),n}const F_={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 V_(e,t,n){return new Proxy({props:e,exclude:t},F_)}const U_={get(e,t){if(!e.exclude.includes(t))return a(e.version),t in e.special?e.special[t]():e.props[t]},set(e,t,n){if(!(t in e.special)){var r=ye;try{ft(e.parent_effect),e.special[t]=te({get[t](){return e.props[t]}},t,kd)}finally{ft(r)}}return e.special[t](n),mr(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),mr(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 H_(e,t){return new Proxy({props:e,exclude:t,special:{},version:Et(0),parent_effect:ye},U_)}const K_={get(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(Rr(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];Rr(s)&&(s=s());const i=un(s,t);if(i&&i.set)return i.set(n),!0}return!1},getOwnPropertyDescriptor(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(Rr(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r){const s=un(r,t);return s&&!s.configurable&&(s.configurable=!0),s}}},has(e,t){if(t===dt||t===_a)return!1;for(let n of e.props)if(Rr(n)&&(n=n()),n!=null&&t in n)return!0;return!1},ownKeys(e){const t=[];for(let n of e.props)if(Rr(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 oi(...e){return new Proxy({props:e},K_)}function te(e,t,n,r){var s=(n&Am)!==0,i=(n&Cm)!==0,o=r,l=!0,c=()=>(l&&(l=!1,o=i?ke(r):r),o);let u;if(s){var d=dt in e||_a in e;u=un(e,t)?.set??(d&&t in e?_=>e[t]=_:void 0)}var f,v=!1;s?[f,v]=Zd(()=>e[t]):f=e[t],f===void 0&&r!==void 0&&(f=c(),u&&(ob(),u(f)));var m;if(m=()=>{var _=e[t];return _===void 0?c():(l=!0,_)},!(n&kd))return m;if(u){var x=e.$$legacy;return function(_,y){return arguments.length>0?((!y||x||v)&&u(y?m():_),_):m()}}var g=!1,b=(n&Em?ei:Tl)(()=>(g=!1,m()));s&&a(b);var C=ye;return function(_,y){if(arguments.length>0){const T=y?a(b):s?fe(_):_;return S(b,T),g=!0,o!==void 0&&(o=T),_}return On&&g||C.f&xt?b.v:a(b)}}function W_(e,t,n,r,s,i){rf(t,()=>{var o=!1;xl?.[Pt],Xe(()=>{if(!o){var[l,c]=Zd(n);if(!c){var u=r(),d=!1,f=Xe(()=>{d||l[u]});d=!0,f.deps===null&&(vb(),o=!0)}}})})}function Y_(e){return new X_(e)}class X_{#e;#t;constructor(t){var n=new Map,r=(i,o)=>{var l=Sa(o,!1,!1);return n.set(i,l),l};const s=new Proxy({...t.props||{},$$events:{}},{get(i,o){return a(n.get(o)??r(o,Reflect.get(i,o)))},has(i,o){return o===_a?!0:(a(n.get(o)??r(o,Reflect.get(i,o))),Reflect.has(i,o))},set(i,o,l){return S(n.get(o)??r(o,l),l),Reflect.set(i,o,l)}});this.#t=(t.hydrate?qf:Ve)(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)&&Xn(),this.#e=s.$$events;for(const i of Object.keys(this.#t))i==="$set"||i==="$destroy"||i==="$on"||ur(this,i,{get(){return this.#t[i]},set(o){this.#t[i]=o},enumerable:!0});this.#t.$set=i=>{Object.assign(s,i)},this.#t.$destroy=()=>{et(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 tv;typeof HTMLElement=="function"&&(tv=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 i=>{const o=Qn("slot");s!=="default"&&(o.name=s),k(i,o)}};var e=t;if(await Promise.resolve(),!this.$$cn||this.$$c)return;const n={},r=G_(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 i=this.$$g_p(s.name);i in this.$$d||(this.$$d[i]=Ri(i,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=Y_({component:this.$$ctor,target:this.$$shadowRoot||this,props:{...this.$$d,$$slots:n,$$host:this}}),this.$$me=is(()=>{Xe(()=>{this.$$r=!0;for(const s of qi(this.$$c)){if(!this.$$p_d[s]?.reflect)continue;this.$$d[s]=this.$$c[s];const i=Ri(s,this.$$d[s],this.$$p_d,"toAttribute");i==null?this.removeAttribute(this.$$p_d[s].attribute||s):this.setAttribute(this.$$p_d[s].attribute||s,i)}this.$$r=!1})});for(const s in this.$$l)for(const i of this.$$l[s]){const o=this.$$c.$on(s,i);this.$$l_u.set(i,o)}this.$$l={}}}attributeChangedCallback(e,t,n){this.$$r||(e=this.$$g_p(e),this.$$d[e]=Ri(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 qi(this.$$p_d).find(t=>this.$$p_d[t].attribute===e||!this.$$p_d[t].attribute&&t.toLowerCase()===e)||e}});function Ri(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 G_(e){const t={};return e.childNodes.forEach(n=>{t[n.slot||"default"]=!0}),t}function J_(e,t,n,r,s,i){let o=class extends tv{constructor(){super(e,n,s),this.$$p_d=t}static get observedAttributes(){return qi(t).map(l=>(t[l].attribute||l).toLowerCase())}};return qi(t).forEach(l=>{ur(o.prototype,l,{get(){return this.$$c&&l in this.$$c?this.$$c[l]:this.$$d[l]},set(c){c=Ri(l,c,t),this.$$d[l]=c;var u=this.$$c;if(u){var d=un(u,l)?.get;d?u[l]=c:u.$set({[l]:c})}}})}),r.forEach(l=>{ur(o.prototype,l,{get(){return this.$$c?.[l]}})}),i&&(o=i(o)),e.element=o,o}function Z_(e,...t){return ke(()=>{try{let n=!1;const r=[];for(const s of t)s&&typeof s=="object"&&dt in s?(r.push(hr(s,!0)),n=!0):r.push(s);n&&(hb(e),console.log("%c[snapshot]","color: grey",...r))}catch{}}),t}const nv=Object.freeze(Object.defineProperty({__proto__:null,CLASS:Mr,FILENAME:Pt,HMR:Tr,NAMESPACE_SVG:Xs,STYLE:Pr,aborted:jo,action:Xf,get active_effect(){return ye},add_legacy_event_listener:O_,add_locations:cy,add_svelte_meta:Lb,animation:Py,append:k,append_styles:Oy,apply:Tg,assign:ay,assign_async:oy,async:my,async_derived:sf,attach:Ul,attachment:iy,attr:Fy,attribute_effect:e_,autofocus:ti,await:yy,bind_active_element:r_,bind_buffered:o_,bind_checked:As,bind_content_editable:x_,bind_current_time:a_,bind_element_size:k_,bind_ended:d_,bind_files:i_,bind_focused:I_,bind_group:s_,bind_muted:m_,bind_online:b_,bind_paused:h_,bind_playback_rate:v_,bind_played:c_,bind_prop:g_,bind_property:S_,bind_ready_state:f_,bind_resize_observer:w_,bind_seekable:l_,bind_seeking:u_,bind_select_value:Ds,bind_this:Ne,bind_value:Te,bind_volume:p_,bind_window_scroll:E_,bind_window_size:A_,boundary:nf,bubble_event:z_,check_target:vy,child:p,cleanup_styles:ly,clsx:Jf,comment:De,component:ii,create_custom_element:J_,create_ownership_validator:fy,css_props:ky,customizable_select:n_,deep_read:Ui,deep_read_state:Nl,deferred_template_effect:yg,delegate:pe,delegated:K,derived:F,derived_safe_equal:Tl,get document(){return ff},each:be,eager:Gb,effect:qt,effect_root:is,effect_tracking:ri,element:jy,equals:dg,event:Ue,exclude_from_object:qm,fallback:Nm,first_child:ve,flush:Xn,for_await_track_reactivity_loss:ng,from_html:A,from_mathml:Pg,from_svg:Bl,from_tree:Dg,get:a,head:zy,hmr:dy,html:Ey,hydrate_template:kb,if:U,index:gt,init:D_,init_select:Hl,inspect:py,invalid_default_snippet:Um,invalidate_inner_signals:kg,invalidate_store:Bb,invoke_error_boundary:xn,key:wy,legacy_api:hy,legacy_pre_effect:mg,legacy_pre_effect_reset:bg,legacy_rest_props:H_,log_if_contains_state:Z_,mark_store_binding:Kb,mutable_source:Sa,mutate:lg,next:zt,noop:Dt,once:L_,pending:eg,pop:ae,preventDefault:P_,prevent_snippet_stringification:Ff,prop:te,props_id:Og,proxy:fe,push:ie,raf:wn,reactive_import:j_,remove_input_defaults:xe,remove_textarea_child:Pl,render_effect:Xe,replay_events:Cg,reset:h,rest_props:V_,run:rg,run_after_blockers:rf,safe_get:Eg,sanitize_slots:Cy,save:tg,select_option:Ps,selectedcontent:t_,self:T_,set:S,set_attribute:se,set_checked:Kl,set_class:he,set_custom_element_data:Qy,set_default_checked:Gy,set_default_value:Jy,set_selected:Wl,set_style:Ye,set_text:z,set_value:js,set_xlink_attribute:Zy,setup_stores:Fb,sibling:w,slot:Ay,snapshot:hr,snippet:$t,spread_props:oi,state:V,stopImmediatePropagation:M_,stopPropagation:R_,store_get:Nb,store_mutate:Vb,store_set:Jd,store_unsub:qb,strict_equals:ug,tag:Cb,tag_proxy:Vd,template_effect:O,text:fn,tick:si,to_array:Rd,trace:Ab,track_reactivity_loss:Mo,transition:Dy,trusted:C_,untrack:ke,update:mr,update_legacy_props:N_,update_pre:cg,update_pre_prop:B_,update_pre_store:Hb,update_prop:q_,update_store:Ub,user_effect:Se,user_pre_effect:yf,validate_binding:W_,validate_dynamic_element_tag:Jg,validate_snippet_args:by,validate_store:Zg,validate_void_dynamic_element:Gg,wait:sg,get window(){return Po},with_script:jg,wrap_snippet:Qg},Symbol.toStringTag,{value:"Module"}));class Fo{#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 fu{#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 Q_=["workspace","user"],zs="state:manage",mn={ephemeral:new Fo,session:new Fo,workspace:new fu("sh3:workspace:"),user:new fu("sh3:user:")},co=new Map;let uo=!1;function $_(e,t,n){co.set(`${e}:${t}`,{zone:e,shardId:t,value:n}),!uo&&(uo=!0,queueMicrotask(()=>{uo=!1;for(const{zone:r,shardId:s,value:i}of co.values())mn[r].write(s,i);co.clear()}))}function Aa(e,t){const n={};for(const r of Object.keys(t)){const s=t[r],o=mn[r].read(e),l={...s,...o??{}},c=fe(l);n[r]=c,Q_.includes(r)&&is(()=>{let u=!0;Se(()=>{const d=hr(c);if(u){u=!1;return}$_(r,e,d)})})}return n}function fo(e,t){mn[e]=t}function ew(e,t){return mn[e].read(t)}function Vo(e,t){mn[e].delete(t)}const tw="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(tw);const nw=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function rw(e,t={}){const n=document.activeElement;function r(){return Array.from(e.querySelectorAll(nw))}function s(i){if(i.key!=="Tab")return;const o=r();if(o.length===0){i.preventDefault();return}const l=o[0],c=o[o.length-1],u=document.activeElement;i.shiftKey&&(u===l||!e.contains(u))?(i.preventDefault(),c.focus()):!i.shiftKey&&(u===c||!e.contains(u))&&(i.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 sw=A('<div class="modal-frame svelte-2tcvcm" role="presentation"><div class="modal-box svelte-2tcvcm" role="dialog" aria-modal="true" tabindex="-1"><!></div></div>');function iw(e,t){ie(t,!0);let n=te(t,"initialFocus",3,!0),r;Se(()=>{if(r)return rw(r,{initialFocus:n()})});function s(c){t.onBackdropClick&&c.target===c.currentTarget&&t.onBackdropClick()}var i=sw(),o=p(i),l=p(o);ii(l,()=>t.Content,(c,u)=>{u(c,oi(()=>t.contentProps,{get close(){return t.close}}))}),h(o),Ne(o,c=>r=c,()=>r),h(i),O(()=>Ye(o,t.boxStyle)),K("click",i,s),k(e,i),ae()}pe(["click"]);const Gl={};function aw(e,t){Gl[e]=t}function ow(e){delete Gl[e]}function Ca(e){const t=Gl[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 Gn=fe(new Map),ut=fe({id:null}),Xr=fe({id:null});function lw(){return Xr.id}function Os(e){Gn.set(e.manifest.id,e)}function ls(){return Array.from(Gn.values()).map(e=>e.manifest)}function Jl(){const e=ut.id;return e?Gn.get(e)?.manifest??null:null}function En(e){return Gn.get(e)}const Cs=[],qr=[];let Ns=null;function cw(e){Ns=e}function uw(e){if(!ut.id)throw new Error("pushNavEntry requires an active app");const t=Symbol("nav-entry");return qr.push({id:t,label:e.label,onPop:e.onPop}),{remove(){const n=qr.findIndex(r=>r.id===t);n>=0&&qr.splice(n,1)}}}function rv(e){const t=Symbol("dismissable");return Cs.push({id:t,dismiss:e}),{unregister(){const n=Cs.findIndex(r=>r.id===t);n>=0&&Cs.splice(n,1)}}}function sv(){qr.length=0}function dw(){if(Cs.length>0){Cs.pop().dismiss();return}if(qr.length>0){qr.pop().onPop();return}ut.id&&Ns&&Ns.returnToHome()}function fw(){ut.id||Xr.id&&Ns&&Ns.launchApp(Xr.id)}const Ot=[];let Yi=!1,Ht=null;const vw=.5;function iv(){const e=Ca("modal");if(Ot.length===0){Ht&&(Ht.remove(),Ht=null);return}Ht||(Ht=document.createElement("div"),Ht.className="sh3-modal-backdrop",Ht.style.position="absolute",Ht.style.inset="0",Ht.style.pointerEvents="auto",Ht.style.transition="background-color 120ms ease",Ht.style.background=`rgba(0, 0, 0, ${vw})`);const t=Ot[Ot.length-1].host;e.insertBefore(Ht,t)}function av(e){e.key==="Escape"&&Ot.length!==0&&(e.stopPropagation(),e.preventDefault(),Ot[Ot.length-1].handle.close())}function hw(){Yi||(Yi=!0,document.addEventListener("keydown",av,!0))}function pw(){Ot.length>0||Yi&&(Yi=!1,document.removeEventListener("keydown",av,!0))}function ov(e){const t=Ot.indexOf(e);t<0||(Ot.splice(t,1),et(e.frame),e.host.remove(),iv(),pw())}function mw(e,t,n){const r=Ca("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 i={},o={close:()=>ov(i)},l=rv(()=>o.close()),c=o.close;o.close=()=>{l.unregister(),c()};const u=Ve(iw,{target:s,props:{Content:e,contentProps:t??{},close:o.close,boxStyle:n?.boxStyle,onBackdropClick:n?.dismissOnBackdrop?o.close:void 0,initialFocus:n?.initialFocus}});return i.host=s,i.frame=u,i.handle=o,Ot.push(i),iv(),hw(),o}function bw(){for(;Ot.length>0;)ov(Ot[Ot.length-1])}const nn={open:mw,closeAll:bw},Kn=new Map;function li(e,t){const n=Kn.get(e);return!n||n.priority==="edge"&&t.priority==="normal"||t.priority===n.priority&&t.depth>n.depth?(Kn.set(e,t),!0):!1}function gr(e,t){Kn.get(e)?.ownerId===t&&Kn.delete(e)}function lv(e){return Kn.get(e)??null}function gw(e,t){return Kn.get(e)?.ownerId===t}let yw=0;function _w(){return`sh3:gesture:${yw++}`}function ww(e){let t=0,n=e;for(;n;)t++,n=n.parentElement;return t}function vu(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 vo(e,t){return e.length!==t.length?!1:e.every(n=>t.includes(n))}function kw(e){if(!e)return{register:()=>({enable(){},disable(){},destroy(){}}),destroy(){}};const t=[],n=new Map;function r(c){if(!c.isPrimary)return;const u=vu(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||!vo(f.modifiers??[],u))continue;const m=f.container??e;if(!m||!m.contains(c.target))continue;const x=ww(m);if(!li(c.pointerId,{ownerId:d.id,axis:f.axis??"xy",priority:"normal",depth:x}))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",i),document.addEventListener("pointercancel",o);return}if(d.opts.type==="button"){const f=d.opts;if(c.button!==f.button||!vo(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 i(c){const u=n.get(c.pointerId);if(!u)return;n.delete(c.pointerId),gr(c.pointerId,u.handlerId),document.removeEventListener("pointermove",s),document.removeEventListener("pointerup",i),document.removeEventListener("pointercancel",o);const d=t.find(x=>x.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 x=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<x})}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),gr(c.pointerId,u.handlerId),document.removeEventListener("pointermove",s),document.removeEventListener("pointerup",i),document.removeEventListener("pointercancel",o);const d=t.find(x=>x.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=vu(c);for(const d of t){if(!d.enabled||d.destroyed||d.opts.type!=="scroll")continue;const f=d.opts;if(!vo(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:_w(),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 Zl(e){let t=0,n=e;for(;n;)t++,n=n.parentElement;return t}const Xi=24;function Ln(e,t,n){if(typeof console>"u")return;const r=t?.target,s=r?.tagName??"-",i=r?.className??"",o=typeof i=="string"?i:"";console.log("[sh3:gesture]",e,{pointerId:t?.pointerId,pointerType:t?.pointerType,type:t?.type,target:o?`${s}.${o}`:s,...n})}var xw=A('<div class="popup-frame svelte-mp81cl" role="menu" tabindex="-1"><!></div>');function Sw(e,t){ie(t,!0);let n,r=V(-9999),s=V(-9999);Se(()=>{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)}S(r,f,!0),S(s,v,!0)});var i=xw(),o=p(i);ii(o,()=>t.Content,(l,c)=>{c(l,oi(()=>t.contentProps,{get close(){return t.close}}))}),h(i),Ne(i,l=>n=l,()=>n),O(()=>Ye(i,`top: ${a(r)??""}px; left: ${a(s)??""}px;`)),k(e,i),ae()}function Iw(e){return e instanceof HTMLElement?e.getBoundingClientRect():new DOMRect(e.x,e.y,0,0)}let Zt=null;function cv(e){if(!Zt||lv(e.pointerId))return;const t=e.target;t&&Zt.host.contains(t)||Zt.handle.close()}function uv(e){Zt&&e.key==="Escape"&&(e.stopPropagation(),e.preventDefault(),Zt.handle.close())}function Ew(){document.addEventListener("pointerdown",cv,!0),document.addEventListener("keydown",uv,!0)}function Aw(){document.removeEventListener("pointerdown",cv,!0),document.removeEventListener("keydown",uv,!0)}function Uo(e){Zt===e&&(Zt=null,Aw(),et(e.frame),e.host.remove())}function Cw(e,t,n){Zt&&Uo(Zt);const r=Ca("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 i=Iw(t.anchor),o={},l={close:()=>Uo(o)},c=rv(()=>l.close()),u=l.close;l.close=()=>{c.unregister(),u()};const d=Ve(Sw,{target:s,props:{Content:e,contentProps:n??{},anchorRect:i,close:l.close}});return o.host=s,o.frame=d,o.handle=l,Zt=o,queueMicrotask(Ew),l}function Tw(){Zt&&Uo(Zt)}const Ho={show:Cw,close:Tw};var Rw=A('<div role="status" aria-live="polite"><span class="toast-level svelte-12gwnj0"> </span> <span class="toast-message svelte-12gwnj0"> </span></div>');function Lw(e,t){var n=Rw(),r=p(n),s=p(r,!0);h(r);var i=w(r,2),o=p(i,!0);h(i),h(n),O(()=>{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)}),k(e,n)}pe(["click"]);const Gi=new Set;let yt=null;function Mw(){if(yt&&yt.isConnected)return yt;const e=Ca("toast");return yt=document.createElement("div"),yt.className="sh3-toast-stack",yt.style.position="absolute",yt.style.right="16px",yt.style.bottom="16px",yt.style.display="flex",yt.style.flexDirection="column-reverse",yt.style.gap="6px",yt.style.pointerEvents="none",e.appendChild(yt),yt}function Ko(e){Gi.has(e)&&(Gi.delete(e),e.timer!==null&&(clearTimeout(e.timer),e.timer=null),et(e.instance),e.host.remove())}function Pw(e,t={}){const n=t.level??"info",r=t.duration??3e3,s=Mw(),i=document.createElement("div");i.className="sh3-toast-host",s.appendChild(i);const o={},l={close:()=>Ko(o)},c=Ve(Lw,{target:i,props:{message:e,level:n,close:l.close}});return o.host=i,o.instance=c,o.handle=l,o.timer=Number.isFinite(r)&&r>0?setTimeout(()=>Ko(o),r):null,Gi.add(o),l}function Dw(){for(const e of[...Gi])Ko(e)}const Sn={notify:Pw,clear:Dw},hu={w:120,h:80};function Ql(e){if(e.type==="slot")return{...hu};if(e.type==="tabs")return{...hu};const t=e.children.map(Ql);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 pu=32,mu={x:48,y:48};function dv(e,t){if(e.length===0)return{...mu};const n=e[e.length-1],r={x:n.position.x+pu,y:n.position.y+pu};return r.x+120>t.w||r.y+32>t.h?{...mu}:r}let bu=0;function fv(){return bu+=1,`float-${Date.now().toString(36)}-${bu.toString(36)}`}function vv(e){return e.type==="slot"?e.viewId==null:e.type==="tabs"?e.tabs.every(t=>t.viewId==null):e.children.every(vv)}function jw(e){return e.closest("[data-sh3-overlay-host]")}class zw extends Map{#e=new Map;#t=V(0);#n=V(0);#s=Mn||-1;constructor(t){if(super(),t){for(var[n,r]of t)super.set(n,r);this.#n.v=super.size}}#r(t){return Mn===this.#s?V(t):Et(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 a(this.#t),!1;return a(r),!0}forEach(t,n){this.#a(),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{a(this.#t);return}return a(r),super.get(t)}set(t,n){var r=this.#e,s=r.get(t),i=super.get(t),o=super.set(t,n),l=this.#t;if(s===void 0)s=this.#r(0),r.set(t,s),S(this.#n,super.size),_n(l);else if(i!==n){_n(s);var c=l.reactions===null?null:new Set(l.reactions),u=c===null||!s.reactions?.every(d=>c.has(d));u&&_n(l)}return o}delete(t){var n=this.#e,r=n.get(t),s=super.delete(t);return r!==void 0&&(n.delete(t),S(r,-1)),s&&(S(this.#n,super.size),_n(this.#t)),s}clear(){if(super.size!==0){super.clear();var t=this.#e;S(this.#n,0);for(var n of t.values())S(n,-1);_n(this.#t),t.clear()}}#a(){a(this.#t);var t=this.#e;if(this.#n.v!==t.size){for(var n of super.keys())if(!t.has(n)){var r=this.#r(0);t.set(n,r)}}for([,r]of this.#e)a(r)}keys(){return a(this.#t),super.keys()}values(){return this.#a(),super.values()}entries(){return this.#a(),super.entries()}[Symbol.iterator](){return this.entries()}get size(){return a(this.#n),super.size}}const Wo=new zw;function qs(e,t){t?Wo.set(e,!0):Wo.delete(e)}function Ow(e){return Wo.get(e)??!1}let Nw=[],$l=null,ci=()=>({w:1600,h:900});function qw(e,t){$l=e,ci=t}function Bw(){$l=null,ci=()=>({w:1600,h:900})}function Sr(){return $l??Nw}const ec=new Map;function Fw(e){return ec.get(e)}const Pn=new Map;let gu=0;function Vw(e){return gu+=1,`float:${e}:${gu}`}const Uw={w:600,h:400};function Hw(e,t){return{w:Math.max(e.w,t.w),h:Math.max(e.h,t.h)}}function Kw(e,t={}){const n=Sr(),r=fv(),s=Vw(e);let i;if(t.dismissable){const d={type:"slot",slotId:s,viewId:e};t.meta&&(d.meta=t.meta),i=d}else{const d=t.title??e,f={slotId:s,viewId:e,label:d};t.meta&&(f.meta=t.meta),i={type:"tabs",tabs:[f],activeTab:0}}const o=Ql(i),l=t.size??Hw(Uw,o),c=t.position??dv(n,ci()),u={id:r,content:i,position:c,size:l,title:t.title};if(t.dismissable&&(u.dismissable=!0),t.dismissable&&t.anchor){const d=jw(t.anchor);d&&ec.set(r,d)}return n.push(u),r}function Ww(e){const t=Sr(),n=fv(),r=e.position??dv(t,ci()),s={id:n,content:e.content,position:r,size:e.size,title:e.title};return t.push(s),n}function Yw(e){const t=Sr(),n=t.findIndex(r=>r.id===e);n<0||(t.splice(n,1),ec.delete(e),Pn.delete(e),qs(e,!1))}function Xw(){return Sr().slice()}function hv(e){const t=Sr(),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 pv(e){if(Pn.has(e))return;const t=Sr().find(r=>r.id===e);if(!t)return;Pn.set(e,{position:{x:t.position.x,y:t.position.y},size:{w:t.size.w,h:t.size.h}}),qs(e,!0);const n=ci();t.position.x=0,t.position.y=0,t.size.w=n.w,t.size.h=n.h,hv(e)}function mv(e){const t=Pn.get(e);if(!t)return;const n=Sr().find(r=>r.id===e);if(!n){Pn.delete(e),qs(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,Pn.delete(e),qs(e,!1)}function Gw(e){Pn.has(e)?mv(e):pv(e)}function Jw(e){Pn.has(e)&&(Pn.delete(e),qs(e,!1))}function Zw(e){return Ow(e)}const Pe={open:Kw,openWithContent:Ww,close:Yw,list:Xw,focus:hv,maximize:pv,restore:mv,toggleMaximize:Gw,unmaximize:Jw,isMaximized:Zw};let Ji=null;function Qw(e){Ji=e}function $w(){Ji=null}function tc(){if(!Ji)throw new Error("presetManager: no app attached — bind an AppLayoutBlob first");return Ji}function e1(){return Object.keys(tc().presets)}function t1(){return tc().activePreset}function n1(e){const t=tc();if(!(e in t.presets))throw new Error(`presetManager.switch: unknown preset "${e}"`);t.activePreset=e}const r1={list:e1,active:t1,switch:n1},zr=new Map,Li=new Map,Yo=new Set,Gr=new Map;function yu(e){const t=Li.get(e);if(t)for(const n of t)n();for(const n of Yo)n(e)}function s1(e,t){let n=Gr.get(e);n||(n=new Set,Gr.set(e,n)),n.add(t)}function i1(e,t){const n=Gr.get(e);n&&(n.delete(t),n.size===0&&Gr.delete(e))}function bv(e,t,n){const r=Symbol();let s=zr.get(e);s||(s=new Map,zr.set(e,s)),s.set(r,t),yu(e);const i=n?.scope?.slotId;let o=!1;const l=()=>{if(o)return;o=!0,i&&i1(i,l);const c=zr.get(e);c&&c.delete(r)&&(c.size===0&&zr.delete(e),yu(e))};return i&&s1(i,l),l}function Ir(e){const t=zr.get(e);return t?Array.from(t.values()):[]}function a1(){return Array.from(zr.keys())}function Ta(e,t){let n=Li.get(e);n||(n=new Set,Li.set(e,n)),n.add(t);let r=!1;return()=>{r||(r=!0,n.delete(t),n.size===0&&Li.delete(e))}}function o1(e){Yo.add(e);let t=!1;return()=>{t||(t=!0,Yo.delete(e))}}function l1(e){const t=Gr.get(e);if(!t)return;const n=Array.from(t);for(const r of n)r();Gr.delete(e)}const c1=Object.freeze([".md",".txt",".json",".guml",".css",".js",".ts",".tsx",".jsx",".html",".svg",".csv",".yaml",".yml",".xml",".log",".ini",".toml"]);function u1(e){return e.kind?e.kind:e.extension&&c1.includes(e.extension.toLowerCase())?"text":"binary"}const Mi=[];function _u(e){return Mi.push(e),()=>{const t=Mi.indexOf(e);t>=0&&Mi.splice(t,1)}}function d1(e,t=[]){return[...Mi,...t].filter(r=>{try{return r.appliesTo(e)}catch{return!1}}).sort((r,s)=>(s.priority??0)-(r.priority??0))[0]??null}var f1=A("<span> </span>"),v1=A('<div class="sh3-conflict-text-dual svelte-iwgja4"><div role="button" tabindex="0"><header class="sh3-conflict-text-head svelte-iwgja4"> </header> <pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre></div> <div role="button" tabindex="0"><header class="sh3-conflict-text-head svelte-iwgja4"> </header> <pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre></div></div> <details class="sh3-conflict-text-diff svelte-iwgja4"><summary> </summary> <pre class="svelte-iwgja4"><code></code></pre></details>',1),h1=A("<option> </option>"),p1=A("<button> </button>"),m1=A('<pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre>'),b1=A('<div class="sh3-conflict-text-tabs svelte-iwgja4"><div class="sh3-conflict-text-picker svelte-iwgja4"><label>Reference: <select class="svelte-iwgja4"></select></label></div> <div class="sh3-conflict-text-tablist svelte-iwgja4"></div> <!></div>'),g1=A('<div class="sh3-conflict-text svelte-iwgja4"><!></div>');function y1(e,t){ie(t,!0);let n=V("");Se(()=>{(!a(n)||!t.item.branches.find(m=>m.origin===a(n)))&&S(n,t.item.branches[0]?.origin??"local",!0)});const r=F(()=>t.item.branches.length===2),s=F(()=>a(r)?t.item.branches[0]:t.item.branches.find(m=>m.origin===a(n))??t.item.branches[0]),i=F(()=>a(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,x){const g=(m??"").split(/\r?\n/),b=(x??"").split(/\r?\n/),C=[],_=Math.max(g.length,b.length);for(let y=0;y<_;y++){const T=g[y],I=b[y];T===I?typeof T=="string"&&C.push({kind:"same",text:T}):(typeof T=="string"&&C.push({kind:"left",text:T}),typeof I=="string"&&C.push({kind:"right",text:I}))}return C}const l=F(()=>!a(s)||!a(i)?[]:o(a(s).content??"",a(i).content??"")),c=F(()=>a(l).filter(m=>m.kind!=="same").length);var u=g1(),d=p(u);{var f=m=>{var x=v1(),g=ve(x),b=p(g);let C;var _=p(b),y=p(_);h(_);var T=w(_,2),I=p(T),D=p(I,!0);h(I),h(T),h(b);var R=w(b,2);let P;var L=p(R),N=p(L);h(L);var E=w(L,2),M=p(E),j=p(M,!0);h(M),h(E),h(R),h(g);var B=w(g,2),W=p(B),ee=p(W);h(W);var G=w(W,2),Z=p(G);be(Z,21,()=>a(l),gt,(Q,Y)=>{var J=f1(),q=p(J);h(J),O(()=>{he(J,1,`diff-${a(Y).kind}`,"svelte-iwgja4"),z(q,`${a(Y).kind==="same"?" ":a(Y).kind==="left"?"- ":"+ "}${a(Y).text??""}
8
+ `)}),k(Q,J)}),h(Z),h(G),h(B),O(()=>{C=he(b,1,"sh3-conflict-text-pane svelte-iwgja4",null,C,{selected:a(s).origin===t.selectedOrigin}),z(y,`${a(s).origin??""} · v${a(s).version??""}`),z(D,a(s).content??""),P=he(R,1,"sh3-conflict-text-pane svelte-iwgja4",null,P,{selected:a(i).origin===t.selectedOrigin}),z(N,`${a(i).origin??""} · v${a(i).version??""}`),z(j,a(i).content??""),z(ee,`Line diff (${a(c)??""} difference${a(c)===1?"":"s"})`)}),K("click",b,()=>t.onSelect(a(s).origin)),K("keydown",b,Q=>{(Q.key==="Enter"||Q.key===" ")&&t.onSelect(a(s).origin)}),K("click",R,()=>t.onSelect(a(i).origin)),K("keydown",R,Q=>{(Q.key==="Enter"||Q.key===" ")&&t.onSelect(a(i).origin)}),k(m,x)},v=m=>{var x=b1(),g=p(x),b=p(g),C=w(p(b));be(C,21,()=>t.item.branches,I=>I.origin,(I,D)=>{var R=h1(),P=p(R,!0);h(R);var L={};O(()=>{z(P,a(D).origin),L!==(L=a(D).origin)&&(R.value=(R.__value=a(D).origin)??"")}),k(I,R)}),h(C),h(b),h(g);var _=w(g,2);be(_,21,()=>t.item.branches,I=>I.origin,(I,D)=>{var R=p1();let P;var L=p(R);h(R),O(()=>{P=he(R,1,"sh3-conflict-text-tab svelte-iwgja4",null,P,{selected:a(D).origin===t.selectedOrigin}),z(L,`${a(D).origin??""} · v${a(D).version??""}`)}),K("click",R,()=>t.onSelect(a(D).origin)),k(I,R)}),h(_);var y=w(_,2);{var T=I=>{var D=m1(),R=p(D),P=p(R,!0);h(R),h(D),O(()=>z(P,a(i).content??"")),k(I,D)};U(y,I=>{a(i)&&I(T)})}h(x),Ds(C,()=>a(n),I=>S(n,I)),k(m,x)};U(d,m=>{a(r)&&a(s)&&a(i)?m(f):m(v,-1)})}h(u),k(e,u),ae()}pe(["click","keydown"]);var _1=A("· <code> </code>",1),w1=A('<li class="sh3-conflict-meta-li svelte-1nz3djn"><button type="button"><div class="sh3-conflict-meta-origin svelte-1nz3djn"> </div> <div class="sh3-conflict-meta-detail svelte-1nz3djn"> <!></div></button></li>'),k1=A('<div class="sh3-conflict-meta svelte-1nz3djn"><div class="sh3-conflict-meta-note svelte-1nz3djn">No preview available for this content. Pick the branch you want to keep.</div> <ul class="sh3-conflict-meta-list svelte-1nz3djn"></ul></div>');function x1(e,t){ie(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=k1(),i=w(p(s),2);be(i,21,()=>t.item.branches,o=>o.origin,(o,l)=>{var c=w1(),u=p(c);let d;var f=p(u),v=p(f,!0);h(f);var m=w(f,2),x=p(m),g=w(x);{var b=C=>{var _=_1(),y=w(ve(_)),T=p(y,!0);h(y),O(()=>z(T,a(l).hashPreview)),k(C,_)};U(g,C=>{a(l).hashPreview&&C(b)})}h(m),h(u),h(c),O((C,_)=>{d=he(u,1,"sh3-conflict-meta-row svelte-1nz3djn",null,d,{selected:a(l).origin===t.selectedOrigin}),z(v,a(l).origin),z(x,`v${a(l).version??""} · ${C??""} · ${_??""} `)},[()=>r(a(l).at),()=>n(a(l).sizeBytes)]),K("click",u,()=>t.onSelect(a(l).origin)),k(o,c)}),h(i),h(s),k(e,s),ae()}pe(["click"]);const S1=1048576;function I1(e){return typeof e=="number"&&e>S1}const E1={id:"sh3-core.text",priority:1,appliesTo:e=>u1(e)!=="text"?!1:!e.branches.some(t=>I1(t.sizeBytes)),mount(e,t){const n=Ve(y1,{target:e,props:t});return()=>{et(n)}}},A1={id:"sh3-core.meta",priority:0,appliesTo:()=>!0,mount(e,t){const n=Ve(x1,{target:e,props:t});return()=>{et(n)}}};let wu=!1;function C1(){wu||(wu=!0,_u(E1),_u(A1))}var T1=A('<div class="sh3-conflict-prompt svelte-1jvtzud"><h3 class="sh3-conflict-prompt-title svelte-1jvtzud"> </h3> <p class="sh3-conflict-prompt-intro svelte-1jvtzud">Pick one option for the whole batch, or resolve each conflict individually.</p> <div class="sh3-conflict-prompt-actions svelte-1jvtzud"><button type="button" class="sh3-conflict-prompt-primary svelte-1jvtzud">Overwrite with most recent</button> <button type="button" class="sh3-conflict-prompt-secondary svelte-1jvtzud">Resolve individually</button> <button type="button" class="sh3-conflict-prompt-cancel svelte-1jvtzud">Cancel</button></div></div>');function R1(e,t){var n=T1(),r=p(n),s=p(r);h(r);var i=w(r,4),o=p(i);ti(o,!0);var l=w(o,2),c=w(l,2);h(i),h(n),O(()=>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)}),k(e,n)}pe(["click"]);var L1=A('<span class="sh3-conflict-detail-counter svelte-pw8iv6"> </span>'),M1=A('<button type="button"><span><!></span> <span class="sh3-conflict-detail-rail-label svelte-pw8iv6"> </span></button>'),P1=A('<aside class="sh3-conflict-detail-rail svelte-pw8iv6"></aside>'),D1=A('<label class="sh3-conflict-detail-branch svelte-pw8iv6"><input type="radio"/> <span> </span></label>'),j1=A('<div class="sh3-conflict-detail-branches svelte-pw8iv6"></div> <div class="sh3-conflict-detail-renderer svelte-pw8iv6"></div>',1),z1=A('<div class="sh3-conflict-detail svelte-pw8iv6"><header class="sh3-conflict-detail-head svelte-pw8iv6"><h3 class="svelte-pw8iv6"> </h3> <!></header> <div class="sh3-conflict-detail-body svelte-pw8iv6"><!> <section class="sh3-conflict-detail-main svelte-pw8iv6"><!></section></div> <footer class="sh3-conflict-detail-foot svelte-pw8iv6"><div class="sh3-conflict-detail-nav svelte-pw8iv6"><button type="button" class="svelte-pw8iv6">← Prev</button> <button type="button" class="svelte-pw8iv6"> </button> <button type="button" class="svelte-pw8iv6">Next →</button></div> <div class="sh3-conflict-detail-actions svelte-pw8iv6"><button type="button" class="sh3-conflict-detail-cancel svelte-pw8iv6">Cancel</button> <button type="button" class="sh3-conflict-detail-done svelte-pw8iv6">Done</button></div></footer></div>');function O1(e,t){ie(t,!0);const n=F(()=>t.items[t.currentIndex]),r=F(()=>a(n)?t.selections[a(n).id]??a(n).branches[0]?.origin??"":""),s=F(()=>a(n)?d1(a(n),t.contributed):null);let i=V(void 0),o=null;Se(()=>{if(a(n),a(s),a(r),o&&(o(),o=null),!a(i)||!a(n)||!a(s))return;const W={item:a(n),selectedOrigin:a(r),onSelect:ee=>t.onSelect(a(n).id,ee)};return o=a(s).mount(a(i),W),()=>{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=F(()=>t.items.map(W=>t.skipped[W.id]?"skipped":t.selections[W.id]?"resolved":"pending"));var d=z1(),f=p(d),v=p(f),m=p(v,!0);h(v);var x=w(v,2);{var g=W=>{var ee=L1(),G=p(ee);h(ee),O(()=>z(G,`${t.currentIndex+1} / ${t.items.length??""}`)),k(W,ee)};U(x,W=>{t.items.length>1&&W(g)})}h(f);var b=w(f,2),C=p(b);{var _=W=>{var ee=P1();be(ee,23,()=>t.items,G=>G.id,(G,Z,Q)=>{var Y=M1();let J;var q=p(Y),H=p(q);{var $=oe=>{var me=fn("✓");k(oe,me)},X=oe=>{var me=fn("⟶");k(oe,me)},ue=oe=>{var me=fn("·");k(oe,me)};U(H,oe=>{a(u)[a(Q)]==="resolved"?oe($):a(u)[a(Q)]==="skipped"?oe(X,1):oe(ue,-1)})}h(q);var de=w(q,2),ne=p(de,!0);h(de),h(Y),O(()=>{J=he(Y,1,"sh3-conflict-detail-rail-item svelte-pw8iv6",null,J,{selected:a(Q)===t.currentIndex}),he(q,1,`sh3-conflict-detail-rail-state ${a(u)[a(Q)]??""}`,"svelte-pw8iv6"),z(ne,a(Z).label)}),K("click",Y,()=>t.onNavigate(a(Q))),k(G,Y)}),h(ee),k(W,ee)};U(C,W=>{t.items.length>1&&W(_)})}var y=w(C,2),T=p(y);{var I=W=>{var ee=j1(),G=ve(ee);be(G,21,()=>a(n).branches,Q=>Q.origin,(Q,Y)=>{var J=D1(),q=p(J);xe(q);var H=w(q,2),$=p(H);h(H),h(J),O(()=>{se(q,"name",`branch-${a(n).id??""}`),js(q,a(Y).origin),Kl(q,a(r)===a(Y).origin),z($,`${a(Y).origin??""} · v${a(Y).version??""}`)}),K("change",q,()=>t.onSelect(a(n).id,a(Y).origin)),k(Q,J)}),h(G);var Z=w(G,2);Ne(Z,Q=>S(i,Q),()=>a(i)),k(W,ee)};U(T,W=>{a(n)&&W(I)})}h(y),h(b);var D=w(b,2),R=p(D),P=p(R),L=w(P,2),N=p(L,!0);h(L);var E=w(L,2);h(R);var M=w(R,2),j=p(M),B=w(j,2);h(M),h(D),h(d),O(()=>{z(m,t.title),P.disabled=t.currentIndex===0,z(N,a(n)&&t.skipped[a(n).id]?"Unskip":"Skip"),E.disabled=t.currentIndex>=t.items.length-1}),K("click",P,l),K("click",L,()=>a(n)&&t.onToggleSkip(a(n).id)),K("click",E,c),K("click",j,function(...W){t.onCancel?.apply(this,W)}),K("click",B,function(...W){t.onDone?.apply(this,W)}),k(e,d),ae()}pe(["click","change"]);function gv(e,t){return t.at-e.at}function N1(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(gv)[0]}}function q1(e,t){ie(t,!0);const n=t.items.length>=2||t.requirePrompt;let r=V(fe(n?"prompt":"detail")),s=V(fe(Object.fromEntries(t.items.map(y=>{const T=N1(y.branches,t.mostRecentBy)?.origin??y.branches[0]?.origin??"";return[y.id,T]})))),i=V(fe({})),o=V(0),l=!1;Vl(()=>{l||(l=!0,t.onCancel())});function c(){if(l)return;l=!0;const y=[],T=[];for(const I of t.items){if(a(i)[I.id]){T.push(I.id);continue}const D=a(s)[I.id],R=I.branches.find(P=>P.origin===D);R&&y.push({itemId:I.id,chosen:R,meta:I.meta})}t.onResolve(y,T),t.close()}function u(){l||(l=!0,t.onCancel(),t.close())}function d(){c()}function f(){S(r,"detail")}function v(y,T){if(S(s,{...a(s),[y]:T},!0),a(i)[y]){const I={...a(i)};delete I[y],S(i,I,!0)}}function m(y){S(i,{...a(i),[y]:!a(i)[y]},!0)}function x(y){S(o,y,!0)}var g=De(),b=ve(g);{var C=y=>{R1(y,{get count(){return t.items.length},onOverwriteMostRecent:d,onResolveIndividually:f,onCancel:u})},_=y=>{O1(y,{get items(){return t.items},get selections(){return a(s)},get skipped(){return a(i)},get currentIndex(){return a(o)},get title(){return t.title},get contributed(){return t.contributed},onSelect:v,onNavigate:x,onToggleSkip:m,onDone:c,onCancel:u})};U(b,y=>{a(r)==="prompt"?y(C):y(_,-1)})}k(e,g),ae()}const yv="sh3-core.conflictRenderer";class _v extends Error{constructor(t){super(t),this.name="ConflictPermissionError"}}class B1 extends Error{constructor(){super("Caller shard deactivated while conflict session was active"),this.name="ConflictSessionOrphanedError"}}function F1(){try{return Ir(yv)}catch{return[]}}function wv(e,t={}){return C1(),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??gv,i=t.requirePrompt??!1,o=F1();let l=!1;const d={items:e,title:r,mostRecentBy:s,requirePrompt:i,contributed:o,onResolve:(f,v)=>{l||(l=!0,n({status:"resolved",choices:f,skipped:v}))},onCancel:()=>{l||(l=!0,n({status:"cancelled"}))}};nn.open(q1,d,{boxStyle:"max-width: none; min-width: 360px; padding: 0;"})})}function V1(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 U1(e,t){const n=e.browse;if(!n?.statusFrom||!n?.readBranchFrom||!n?.resolveConflictFrom)throw new _v(`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 H1(e){const t=e.lastIndexOf(".");if(t<0)return;const n=e.lastIndexOf("/");if(!(t<n))return e.slice(t)}async function K1(e,t,n={}){const r=e.shardId,s=t.shardId===r?V1(e):U1(e,t.shardId),i=[];for(const d of t.paths){const f=await s.status(d);f&&f.syncState==="conflict"&&f.branches&&f.branches.length>0&&i.push({path:d,status:f})}if(i.length===0)return{status:"resolved",resolved:[],failed:[],skipped:[]};const o=[];for(const{path:d,status:f}of i){const v=H1(d),m=[];for(const x of f.branches??[]){const g=await s.readBranch(d,x.origin).catch(()=>null);m.push({origin:x.origin,version:x.version,at:x.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 wv(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 W1={resolve:wv,resolveDocuments:K1},kv="sh3.color-picker",Y1={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=i=>{r||(r=!0,n.remove(),t(i))};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 X1(e={}){return[...Ir(kv),Y1].sort((r,s)=>(s.priority??0)-(r.priority??0))[0].open(e)}const G1={pick:X1};let nr=null;function J1(e){nr=e}async function Br(e){return nr?{...nr.bindings[e]??{}}:{}}async function ku(e,t,n){if(!nr)return;const r={...nr.bindings[e]??{}};n===void 0?delete r[t]:r[t]=n,nr.bindings={...nr.bindings,[e]:r}}const nc="sh3.actions",ho=new Set;function Z1(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.`),()=>{};ho.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.`),ho.add(e.id);const r=bv(nc,{action:e,ownerShardId:t});let s=!1;return()=>{s||(s=!0,r(),ho.delete(e.id))}}function $e(){return Ir(nc)}function Q1(e){return Ta(nc,e)}function Ft(e){return typeof e.label=="function"?e.label():e.label}const $1=["Ctrl","Alt","Shift","Meta"],xu={control:"Ctrl",ctrl:"Ctrl",alt:"Alt",option:"Alt",shift:"Shift",meta:"Meta",cmd:"Meta",command:"Meta",super:"Meta",win:"Meta"},ek=new Set(["Control","Alt","Shift","Meta"]);function xv(e){return e.length===1?e.toUpperCase():e}function rc(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 xu)r.add(xu[l]);else{if(s!==void 0)throw new Error(`Multiple keys in shortcut: "${e}"`);s=xv(o)}}if(s===void 0)throw new Error(`No key in shortcut: "${e}"`);return[...$1.filter(o=>r.has(o)),s].join("+")}function Sv(e,t){if(!e.toLowerCase().includes("mod"))return e;const n=e.split("+").map(r=>r.toLowerCase()==="mod"?t==="mac"?"Meta":"Ctrl":r);return rc(n.join("+"))}function tk(e){if(ek.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=xv(e.key);return[...t,n].join("+")}function nk(){return typeof navigator>"u"?"other":/Mac|iPhone|iPad|iPod/i.test(navigator.platform)?"mac":"other"}function ui(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?null:rc(r)}return e.defaultShortcut?Sv(e.defaultShortcut,n):null}function rk(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?{shortcut:null,source:"disabled"}:{shortcut:rc(r),source:"user"}}return e.defaultShortcut?{shortcut:Sv(e.defaultShortcut,n),source:"default"}:{shortcut:null,source:"none"}}function Ra(e){return e==="home"?"home":e==="app"?"app":typeof e=="string"&&e.startsWith("view:")?"view":typeof e=="string"&&e.startsWith("focus:")?"focus":"element"}function sc(e){return Array.isArray(e)?e:[e]}function Iv(e){return e==="home"||e==="app"?null:typeof e=="string"?e:e.element}function di(e,t,n){const r=sc(e),s={};for(const i of r){const o=Ra(i);(s[o]??=[]).push(i)}for(const i of La){const o=s[i];if(o){for(const l of o)if(Bs(l,t,n))return l}}return null}function sk(e,t){return typeof e=="string"||typeof t=="string"?e===t:e.element===t.element}function Ev(e){return typeof e=="string"?e:`element:${e.element}`}function ik(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 La=["element","focus","view","app","home"];function Bs(e,t,n){if(e==="home")return t.activeAppId===null;if(e==="app")return t.activeAppId===null||!n?!1:t.activeAppRequiredShards.has(n)||t.autostartShards.has(n);if(typeof e=="string"){if(e.startsWith("view:"))return t.mountedViewIds.has(e.slice(5));if(e.startsWith("focus:"))return t.focusedViewId===e.slice(6)}return typeof e=="object"&&"element"in e?t.selection!==null&&t.selection.type===e.element:!1}function ak(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=ui(r.action,t.bindings,t.platform);if(s)for(const i of sc(r.action.scope)){if(!Bs(i,t,r.ownerShardId))continue;const o=Ra(i),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 ok(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 lk(e){return e instanceof Element?e.closest("[data-sh3-passthrough-modifiers]")!==null:!1}function ck(e){return/(?:^|\+)(?:Ctrl|Alt|Meta)\+/.test(e)}function uk(e){const t=ak(e.entries,e.state),n=new Map(e.entries.map(r=>[r.action.id,r]));for(const r of La){const s=t[r].get(e.shortcut);if(!s)continue;const i=n.get(s);if(i)return ok(e.target)&&!i.action.allowInInputs&&!(lk(e.target)&&ck(e.shortcut))?null:(e.runAction(s,{action:{id:i.action.id,label:Ft(i.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 dk(e){const t=e.action.disabled;return typeof t=="function"?!!t():!!t}function fk(e){const t=e.action.scope;return Array.isArray(t)?t[0]:t}function ic(e,t){const n={element:[],focus:[],view:[],app:[],home:[]},r=[],s=new Set;for(const i of e){if(s.has(i.action.id))continue;s.add(i.action.id);const{shortcut:o,source:l}=rk(i.action,t.bindings,t.platform),c=di(i.action.scope,t,i.ownerShardId),u=typeof i.action.run=="function",d=c!==null&&u&&!dk(i),f=d?c:fk(i),v={id:i.action.id,label:Ft(i.action),effectiveShortcut:o,bindingSource:l,scope:f,scopeBadge:Iv(f),group:i.action.group,icon:i.action.icon,ownerShardId:i.ownerShardId,paletteItem:i.action.paletteItem!==!1,contextItem:i.action.contextItem!==!1,submenu:i.action.submenu,submenuOf:i.action.submenuOf,active:d};d?n[Ra(c)].push(v):r.push(v)}return[...La.flatMap(i=>n[i]),...r]}function vk(e,t){return ic(e,t).filter(n=>n.active)}let on=V(null);function fi(){return a(on)}function Ma(e){return{get(){return a(on)},set(t){S(on,{type:t.type,ref:t.ref,ownerShardId:e},!0)},clear(){if(a(on)){if(a(on).ownerShardId!==e){console.warn(`[sh3] Shard "${e}" tried to clear selection owned by "${a(on).ownerShardId}". Ignoring.`);return}S(on,null)}}}}function Av(e){a(on)&&a(on).ownerShardId===e&&S(on,null)}function hk(){S(on,null)}const Zi=new Map,ac=new Map,Cv=new Set;function pk(e){Cv.add(e)}function mk(e,t,n){if(Zi.has(e))throw new Error(`View "${e}" is already registered`);Zi.set(e,t),n!==void 0&&ac.set(e,n);for(const r of Cv)r(e,t)}function Tv(e){return Zi.get(e)}function Su(e){return ac.get(e)}function Rv(e){Zi.delete(e),ac.delete(e)}const Jr=new Map;function bk(e,t,n){const r=Jr.get(e);return r?(console.warn(`[sh3] verb "${e}" already registered by shard "${r.shardId}"; skipping registration from "${n}"`),!1):(Jr.set(e,{verb:t,shardId:n}),!0)}function Qi(e){return Jr.get(e)?.verb}function Lv(e){Jr.delete(e)}function oc(){return Array.from(Jr.values()).map(e=>e.verb).sort((e,t)=>e.name.localeCompare(t.name))}function Mv(){return Array.from(Jr.values()).map(e=>({...e}))}function Zr(e,t){const n=(r,s)=>{if(r.type==="tabs"){const i=r.tabs.findIndex(o=>o.slotId===t);if(i>=0)return{tabsNode:r,tabsPath:s,tabIndex:i,entry:r.tabs[i]}}else if(r.type==="split")for(let i=0;i<r.children.length;i++){const o=n(r.children[i],[...s,i]);if(o)return o}return null};return n(e,[])}function lc(e,t){if(Xo(e.docked,t))return{kind:"docked"};for(const n of e.floats)if(Xo(n.content,t))return{kind:"float",floatId:n.id};return null}function Xo(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(Xo(n,t))return!0;return!1}function Pa(e,t){const n=Zr(e,t);if(!n)return null;const{tabsNode:r,tabIndex:s,entry:i}=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),i}function gk(e,t,n){const r=Math.max(0,Math.min(n,e.tabs.length));e.tabs.splice(r,0,t),e.activeTab=r}function yk(e,t,n){const r=e.tabs.slice(),[s]=r.splice(t,1),i=Math.max(0,Math.min(n,r.length));r.splice(i,0,s),e.tabs=r,e.activeTab=i}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 _k(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 Go(e,t,n,r){const s=Qr(e,t);if(!s||Pv(e,t))return;if(t.length===0){const u=_k(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 i=Iu(s,n,r),o=t.slice(0,-1),l=t[t.length-1],c=Qr(e,o);!c||c.type!=="split"||(c.children[l]=i)}function Qr(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 Pv(e,t){if(t.length===0)return!1;const n=Qr(e,t.slice(0,-1));return!n||n.type!=="split"?!1:n.fixed?.[t[t.length-1]]===!0}function Or(e){let t=!0;for(;t;)t=Dv(e,null,0)}function Dv(e,t,n){if(e.type==="split"){let r=!1;for(let s=0;s<e.children.length;s++)Dv(e.children[s],e,s)&&(r=!0);for(let s=e.children.length-1;s>=0;s--){const i=e.children[s];i.type==="tabs"&&i.tabs.length===0&&!i.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],i=e;return delete i.direction,delete i.sizes,delete i.pinned,delete i.collapsed,delete i.children,Object.assign(i,s),!0}return r}return e.type==="tabs",!1}const Dn=new Map,Pi=new Set;function wk(e,t){for(const[n,r]of Dn.entries()){if(r.viewId!==e||r.handle!==void 0)continue;const s={slotId:n,viewId:e,label:r.label,meta:r.meta,setDirty(i){Da[n]=i},location(){return lc(Vt(),n)}};queueMicrotask(()=>{if(Dn.has(n)&&r.handle===void 0&&(r.handle=t.mount(r.host,s),(r.handle?.closable||n.startsWith("float:"))&&(ja[n]=!0),r.handle?.onResize)){const i=r.handle.onResize.bind(r.handle);r.resizeObserver=new ResizeObserver(o=>{for(const l of o){const c=l.contentRect;i(Math.round(c.width),Math.round(c.height))}}),r.resizeObserver.observe(r.host)}})}}pk(wk);const Da=fe({}),ja=fe({});function kk(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",Ev(`focus:${t}`))),s.style.position="absolute",s.style.inset="0",s.style.minWidth="0",s.style.minHeight="0";let i=!1;const o={host:s,handle:void 0,viewId:t,label:n,meta:r,refcount:0,resizeObserver:void 0,cancelPendingMount:()=>{i=!0}};return queueMicrotask(()=>{if(i)return;const l=t?Tv(t):void 0,c={slotId:e,viewId:t??"",label:n,meta:r,setDirty(u){Da[e]=u},location(){return lc(Vt(),e)}};if(o.handle=l?.mount(s,c),(o.handle?.closable||e.startsWith("float:"))&&(ja[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 cc(e,t,n,r){Pi.delete(e);let s=Dn.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",Ev(`focus:${t}`))):(s.host.removeAttribute("data-sh3-view"),s.host.removeAttribute("data-sh3-scope"))):(s=kk(e,t,n,r),Dn.set(e,s)),s.refcount++,s.host}function uc(e,t){const n=Dn.get(e);if(n){if(n.refcount--,n.refcount>0){t&&n.host.parentNode===t&&n.host.remove();return}Pi.add(e),queueMicrotask(()=>{if(!Pi.has(e))return;Pi.delete(e);const r=Dn.get(e);!r||r.refcount>0||(r.resizeObserver?.disconnect(),l1(e),r.handle?.unmount(),r.cancelPendingMount(),r.host.remove(),Dn.delete(e),delete Da[e],delete ja[e])})}}function po(e){const t=Dn.get(e);if(t)return{host:t.host,refcount:t.refcount}}function jv(e){const t=Jo.get(e);return t||Dn.get(e)?.handle}function xk(e){return Da[e]??!1}function Sk(e){return Jo.has(e)?!!Jo.get(e).closable:ja[e]??!1}const Jo=new Map;function zv(e){if(!e||typeof e!="object")return!1;const t=e.type;return t==="split"||t==="tabs"||t==="slot"}function Ik(e){if(!e||typeof e!="object")return!1;const t=e;return zv(t.docked)&&Array.isArray(t.floats)}function Ek(e){return{docked:e,floats:[]}}function Ak(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 Ck(e,t){return t==="compact"&&e.variants.compact?e.variants.compact:e.variants.default}function Ov(e){if(Array.isArray(e))return e.map(Ak);if(Ik(e))return[{name:"default",variants:{default:e}}];if(zv(e))return[{name:"default",variants:{default:Ek(e)}}];throw new Error("normalizeInitialLayout: input is not a LayoutNode, LayoutTree, or LayoutPreset[]")}function Tk(e){return e.coarsePointer&&e.noHover||e.width<720||e.coarsePointer&&e.dpr>=2&&e.width<1100?"compact":"desktop"}let ks=V(null);const xs=new Set;function Nv(){if(typeof window>"u")return{class:"desktop",width:1920,height:1080,coarsePointer:!1,noHover:!1,dpr:1};const e=window.innerWidth,t=window.innerHeight,n=window.matchMedia("(pointer: coarse)").matches,r=window.matchMedia("(hover: none)").matches,s=window.devicePixelRatio;return{class:a(ks)??Tk({width:e,coarsePointer:n,noHover:r,dpr:s}),width:e,height:t,coarsePointer:n,noHover:r,dpr:s}}let $i=V(fe(Nv()));function Ss(){const e=Nv(),t=a($i).class;if(S($i,e,!0),e.class!==t)for(const n of xs)n(e)}typeof window<"u"&&(window.addEventListener("resize",Ss),window.matchMedia("(pointer: coarse)").addEventListener("change",Ss),window.matchMedia("(hover: none)").addEventListener("change",Ss),typeof screen<"u"&&screen.orientation&&screen.orientation.addEventListener("change",Ss));const rr={get current(){return a($i)},subscribe(e){return xs.add(e),()=>{xs.delete(e)}},override(e){if(a(ks)!==e){S(ks,e,!0),Ss();for(const t of xs)t(a($i))}},get pinned(){return a(ks)},__reset(){S(ks,null),xs.clear()}};function Eu(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 dc(e){const t=Eu(e.docked);for(const n of e.floats)t.push(...Eu(n.content));return t}function qv(){return{left:{open:!1,activeSlotId:null},right:{open:!1,activeSlotId:null},top:{open:!1,activeSlotId:null}}}const an=fe(qv());let ea=null;function yi(){ea&&ea(an)}const jt={get state(){return an},open(e){an[e].open=!0,yi()},close(e){an[e].open=!1,yi()},toggle(e){an[e].open=!an[e].open,yi()},activate(e,t){an[e].activeSlotId=t,yi()},__setWriteThrough(e){ea=e},__hydrate(e){for(const t of["left","right","top"])an[t].open=e[t].open,an[t].activeSlotId=e[t].activeSlotId},__reset(){ea=null;const e=qv();for(const t of["left","right","top"])an[t].open=e[t].open,an[t].activeSlotId=e[t].activeSlotId}};Vo("workspace","__shell__");const Rk={type:"slot",slotId:"sh3core.home",viewId:"sh3core:home"},Zo=fe({docked:Rk,floats:[]});let Ze=V(null),vi=V("home");function Lk(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 Mk(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 Pk(e){if(a(Ze))throw new Error(`Layout manager cannot attach app "${e.manifest.id}": app "${a(Ze).appId}" is still attached`);const t=`__sh3core__:app:${e.manifest.id}`,n=Ov(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=ew("workspace",t),i=Lk(s);(i&&i.layoutVersion!==e.manifest.layoutVersion||s&&!i)&&Vo("workspace",t);const l=Aa(t,{workspace:r}).workspace;S(Ze,{appId:e.manifest.id,proxy:l,heldSlotIds:[]},!0),Qw(l),Dk(l)}function Dk(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();jt.__hydrate(r[t].compact),jt.__setWriteThrough(s=>{const i=n();i[t].compact={left:{...s.left},right:{...s.right},top:{...s.top}}})}function jk(){if(!a(Ze))throw new Error("acquireAppSlotHolds: no app attached");if(a(Ze).heldSlotIds.length>0)return;const e=Mk(a(Ze).proxy),t=dc(e);for(const{slotId:n,viewId:r,label:s,meta:i}of t)cc(n,r,s,i),a(Ze).heldSlotIds.push(n)}function zk(){if(!a(Ze))throw new Error("resetActivePresetToDefault: no app attached");const e=En(a(Ze).appId);if(!e)throw new Error(`resetActivePresetToDefault: attached app "${a(Ze).appId}" not in registry`);const t=Ov(e.initialLayout),n=a(Ze).proxy,r=n.activePreset;let s=t.find(l=>l.name===r);s||(s=t[0],n.activePreset=s.name);for(const l of a(Ze).heldSlotIds)uc(l);a(Ze).heldSlotIds=[];const i=structuredClone(s.variants.default);n.presets[n.activePreset].default=i;const o=dc(i);for(const{slotId:l,viewId:c,label:u,meta:d}of o)cc(l,c,u,d),a(Ze).heldSlotIds.push(l)}function Bv(){if(a(Ze)){$w(),jt.__setWriteThrough(null),jt.__hydrate({left:{open:!1,activeSlotId:null},right:{open:!1,activeSlotId:null},top:{open:!1,activeSlotId:null}});for(const e of a(Ze).heldSlotIds)uc(e);S(Ze,null)}}function Fv(){S(vi,"home")}function Au(){if(!a(Ze))throw new Error("Cannot switchToApp: no app is attached");S(vi,"app")}const Di=F(()=>{if(a(vi)==="app"&&a(Ze)){const e=a(Ze).proxy,t=e.activePreset,n=e.presets[t];if(!n)throw new Error(`AppLayoutBlob active preset "${t}" not found in presets map`);return Ck({variants:n},rr.current.class)}return Zo});function Vt(){return a(Di)}function fc(){return a(vi)}const en={get root(){return a(Di).docked},get tree(){return a(Di)},get floats(){return a(Di).floats}};function Ok(e){Zo.docked=e,Zo.floats=[],S(vi,"home")}let Vv=V(null),Uv=V(fe(new Set)),ji=V(fe(new Set)),Hv=V(fe(new Set)),Kv=V(null),Wv=V(fe({}));const Nk=nk(),Qo=new Set;function cs(){for(const e of Qo)try{e()}catch(t){console.error("[sh3] onActiveChange listener threw",t)}}function qk(e){return Qo.add(e),()=>{Qo.delete(e)}}function Bk(){cs()}function ta(e,t){S(Vv,e,!0),S(Uv,new Set(t),!0),cs()}function Fk(){const e=dc(en.tree),t=new Set;for(const n of e)n.viewId!==null&&t.add(n.viewId);S(Hv,t,!0),cs()}function Yv(e){S(Kv,e,!0),cs()}function Fs(e){S(Wv,{...e},!0),cs()}function St(){return{activeAppId:a(Vv),activeAppRequiredShards:a(Uv),autostartShards:a(ji),mountedViewIds:a(Hv),focusedViewId:a(Kv),selection:fi(),bindings:a(Wv),platform:Nk}}function Xv(e){a(ji).has(e)||(S(ji,new Set([...a(ji),e]),!0),cs())}var Vk=A('<div class="sh3-ctx-sep svelte-1667pfa" role="separator"></div>'),Uk=A('<span class="sh3-ctx-chevron svelte-1667pfa">▸</span>'),Hk=A('<span class="sh3-ctx-shortcut svelte-1667pfa"> </span>'),Kk=A('<button role="menuitem"><span class="sh3-ctx-check svelte-1667pfa"> </span> <span class="sh3-ctx-label svelte-1667pfa"> </span> <!></button>'),Wk=A("<!> <!>",1),Yk=A('<div class="sh3-context-menu svelte-1667pfa" role="menu" tabindex="0"></div>');function na(e,t){ie(t,!0);const n=F(()=>t.sections.flatMap(c=>c.items));let r=V(0);function s(c,u){if(a(n).length===0)return 0;let d=c;for(let f=0;f<a(n).length;f++)if(d=(d+u+a(n).length)%a(n).length,!a(n)[d].disabled)return d;return c}function i(c){if(c.key==="ArrowDown")S(r,s(a(r),1),!0),c.preventDefault();else if(c.key==="ArrowUp")S(r,s(a(r),-1),!0),c.preventDefault();else if(c.key==="Enter"){const u=a(n)[a(r)];u&&!u.disabled&&(t.onInvoke(u.id),u.submenu||t.onDismiss()),c.preventDefault()}else if(c.key==="Escape")t.onDismiss(),c.preventDefault();else if(c.key.length===1){const u=c.key.toLowerCase(),d=(a(r)+1)%a(n).length;for(let f=0;f<a(n).length;f++){const v=(d+f)%a(n).length,m=a(n)[v];if(!m.disabled&&m.label.toLowerCase().startsWith(u)){S(r,v);break}}}}function o(c){c.disabled||(t.onInvoke(c.id),c.submenu||t.onDismiss())}var l=Yk();ti(l,!0),be(l,23,()=>t.sections,c=>c.id,(c,u,d)=>{var f=Wk(),v=ve(f);{var m=g=>{var b=Vk();k(g,b)};U(v,g=>{a(d)>0&&g(m)})}var x=w(v,2);be(x,17,()=>a(u).items,g=>g.id,(g,b)=>{const C=F(()=>a(n).indexOf(a(b)));var _=Kk();let y;var T=p(_),I=p(T,!0);h(T);var D=w(T,2),R=p(D,!0);h(D);var P=w(D,2);{var L=E=>{var M=Uk();k(E,M)},N=E=>{var M=Hk(),j=p(M,!0);h(M),O(()=>z(j,a(b).shortcut)),k(E,M)};U(P,E=>{a(b).submenu?E(L):a(b).shortcut&&E(N,1)})}h(_),O(()=>{y=he(_,1,"sh3-ctx-item svelte-1667pfa",null,y,{"sh3-ctx-active":a(C)===a(r),"sh3-ctx-disabled":a(b).disabled}),se(_,"aria-disabled",a(b).disabled||void 0),z(I,a(b).checked?"✓":""),z(R,a(b).label)}),Ue("pointerenter",_,()=>{a(b).disabled||S(r,a(C),!0)}),K("click",_,()=>o(a(b))),k(g,_)}),k(c,f)}),h(l),K("keydown",l,i),k(e,l),ae()}pe(["keydown","click"]);function Gv(e,t){ie(t,!0);const n=F(()=>t.model.tiers.map(r=>({id:`tier:${r.tier}`,items:r.items.map(s=>({...s,icon:void 0}))})));na(e,{get sections(){return a(n)},get onInvoke(){return t.onInvoke},get onDismiss(){return t.onClose}}),ae()}function Cu(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function Jv(e,t){return{id:e.action.id,label:Ft(e.action),shortcut:ui(e.action,t.bindings,t.platform),group:e.action.group??"",icon:e.action.icon,checked:Cu(e.action.checked),disabled:Cu(e.action.disabled),submenu:e.action.submenu===!0}}function Zv(e,t,n,r){return sc(e.scope).some(i=>sk(i,n))?n==="app"||n==="home"||typeof n=="object"&&"element"in n?Bs(n,r,t):!0:!1}function Qv(e,t,n){const r={element:[],focus:[],view:[],app:[],home:[]},s=new Set;for(const i of e){if(!i.action.contextItem||i.action.submenuOf!==void 0||s.has(i.action.id)||!Zv(i.action,i.ownerShardId,n,t))continue;const o=di(i.action.scope,t,i.ownerShardId)??n;s.add(i.action.id),r[Ra(o)].push(Jv(i,t))}return{tiers:La.map(i=>({tier:i,items:r[i]})).filter(i=>i.items.length>0)}}function Xk(e,t,n,r){const s=[],i=new Set;for(const o of e)o.action.submenuOf===n&&(i.has(o.action.id)||Zv(o.action,o.ownerShardId,r,t)&&(i.add(o.action.id),s.push(Jv(o,t))));return s}function Gk(e,t){if(!t)return 0;const n=e.toLowerCase(),r=t.toLowerCase();let s=0,i=0,o=0,l=0,c=-2;for(;s<n.length&&i<r.length;){if(n[s]===r[i]){const u=s===0?5:0,d=s===c+1?++l:l=1;o+=1+u+d,c=s,i++}else l=0;s++}return i===r.length?o:null}function Jk(e,t,n){const r=[];for(const i of e){if(t===""&&i.submenuOf!==void 0)continue;const o=Gk(i.label,t);o!==null&&r.push({...i,score:o})}const s=new Map;return n.forEach((i,o)=>s.set(i,n.length-o)),r.sort((i,o)=>{if(i.score!==o.score)return o.score-i.score;const l=s.get(i.id)??0;return(s.get(o.id)??0)-l}),r}var Zk=A('<span class="sh3-palette-badge svelte-1qdcgk6"> </span>'),Qk=A('<span class="sh3-palette-shortcut svelte-1qdcgk6"> </span>'),$k=A('<button role="option"><span class="sh3-palette-label svelte-1qdcgk6"> </span> <!> <!></button>'),e0=A('<div class="sh3-palette svelte-1qdcgk6" role="dialog" aria-label="Command palette" aria-modal="true" tabindex="-1"><input class="sh3-palette-input hell-base-input svelte-1qdcgk6" placeholder="Command…"/> <div class="sh3-palette-list svelte-1qdcgk6" role="listbox"></div></div>');function t0(e,t){ie(t,!0);let n=te(t,"prefill",3,""),r=V(fe(n())),s=V(0);const i=F(()=>Jk(t.candidates,a(r),t.recency));Se(()=>{a(s)>=a(i).length&&S(s,0)});function o(d){d.key==="ArrowDown"?(S(s,Math.min(a(s)+1,Math.max(0,a(i).length-1)),!0),d.preventDefault()):d.key==="ArrowUp"?(S(s,Math.max(a(s)-1,0),!0),d.preventDefault()):d.key==="Enter"?(a(i)[a(s)]&&(t.onInvoke(a(i)[a(s)].id),t.onClose()),d.preventDefault()):d.key==="Escape"&&(t.onClose(),d.preventDefault())}var l=e0(),c=p(l);xe(c);var u=w(c,2);be(u,23,()=>a(i),d=>d.id,(d,f,v)=>{var m=$k();let x;var g=p(m),b=p(g,!0);h(g);var C=w(g,2);{var _=I=>{var D=Zk(),R=p(D);h(D),O(()=>z(R,`[${a(f).scopeBadge??""}]`)),k(I,D)};U(C,I=>{a(f).scopeBadge&&I(_)})}var y=w(C,2);{var T=I=>{var D=Qk(),R=p(D,!0);h(D),O(()=>z(R,a(f).shortcut)),k(I,D)};U(y,I=>{a(f).shortcut&&I(T)})}h(m),O(()=>{x=he(m,1,"sh3-palette-item svelte-1qdcgk6",null,x,{"sh3-palette-active":a(v)===a(s)}),se(m,"aria-selected",a(v)===a(s)),z(b,a(f).label)}),Ue("pointerenter",m,()=>S(s,a(v),!0)),K("click",m,()=>{t.onInvoke(a(f).id),t.onClose()}),k(d,m)}),h(u),h(l),K("keydown",l,o),Te(c,()=>a(r),d=>S(r,d)),k(e,l),ae()}pe(["keydown","click"]);function n0(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function r0(e,t,n={}){const r=[],s=new Set,i=n.filter?.submenuOf;for(const o of e){if(o.action.paletteItem===!1||n0(o.action.disabled)||i!==void 0&&o.action.submenuOf!==i||s.has(o.action.id))continue;const l=di(o.action.scope,t,o.ownerShardId);l&&(s.add(o.action.id),r.push({id:o.action.id,label:Ft(o.action),shortcut:ui(o.action,t.bindings,t.platform),scopeBadge:Iv(l),submenu:o.action.submenu===!0,submenuOf:i!==void 0?void 0:o.action.submenuOf}))}return r}let Tu=!1;function vc(e){return e?e.closest("[data-sh3-view]")?.getAttribute("data-sh3-view")??null:null}function $v(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=ik(n.getAttribute("data-sh3-scope")??"");if(s&&!(typeof s=="object"&&"element"in s&&!Bs(s,e.state)))return s;const i=n.parentElement;n=i?i.closest("[data-sh3-scope]"):null}const r=vc(t);if(r)return`focus:${r}`}return e.state.activeAppId?"app":"home"}function s0(e,t){const n=$e().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 eh(e,t){const n=$e(),r=n.find(l=>l.action.id===e);if(!r)return Promise.reject(new Error(`action "${e}" not registered`));const s=St(),i=ic(n,s).find(l=>l.id===e);if(!i||!i.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:Ft(r.action)},appId:s.activeAppId,viewId:s.focusedViewId??void 0,selection:s.selection??void 0,invokedVia:"programmatic",dispatch:us});return Promise.resolve(l).then(()=>{})}catch(l){return Promise.reject(l)}}function us(e){eh(e).catch(t=>{console.error(`[sh3] ctx.dispatch("${e}"):`,t)})}function i0(e){const t=vc(e.target);Yv(t)}function a0(e){queueMicrotask(()=>{const t=vc(document.activeElement);Yv(t)})}function o0(e){return e instanceof Element?e.closest('[data-sh3-context-menu="native"]')!==null:!1}function th(e,t,n,r){const s=document.querySelector(".sh3-popup-host");if(!s)return;const i=document.createElement("div");i.className="sh3-popup-submenu",i.style.position="absolute",i.style.pointerEvents="auto";const l=(s.querySelector(".sh3-ctx-active")??s).getBoundingClientRect();i.style.left=`${l.right+2}px`,i.style.top=`${l.top}px`,s.appendChild(i);const c=Xk($e(),t,e,r);Ve(na,{target:i,props:{sections:[{id:`submenu:${e}`,items:c}],onInvoke:u=>{const d=$e().find(f=>f.action.id===u);if(!(!d||typeof d.action.run!="function")){try{d.action.run({action:{id:u,label:Ft(d.action)},appId:t.activeAppId,viewId:t.focusedViewId??void 0,selection:t.selection??void 0,invokedVia:"context-menu",dispatch:us})}catch(f){console.error(`[sh3] context-menu submenu action "${u}" threw:`,f)}n.close()}},onDismiss:()=>n.close()}})}function l0(e){if(o0(e.target))return;const t=$e(),n=St(),r=$v({event:e,state:n}),s=Qv(t,n,r);if(s.tiers.length===0)return;e.preventDefault();const i=Ct.popup.show(Gv,{anchor:{x:e.clientX,y:e.clientY}},{model:s,onInvoke:o=>{const l=$e().find(c=>c.action.id===o);if(l){if(l.action.submenu===!0){th(o,n,i,r);return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:Ft(l.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:us})}catch(c){console.error(`[sh3] context-menu action "${o}" threw:`,c)}}},onClose:()=>i.close()})}function c0(e){const t=tk(e);if(!t)return;const n=$e(),r=St();uk({target:e.target,shortcut:t,state:r,entries:n,runAction:s0,dispatch:us})&&e.preventDefault()}function Ru(){Tu||(Tu=!0,document.addEventListener("keydown",c0),document.addEventListener("focusin",i0),document.addEventListener("focusout",a0),document.addEventListener("contextmenu",l0))}function nh(e){const t=$e(),n=St(),r=$v({explicit:e.scope,state:n}),s=Qv(t,n,r);if(s.tiers.length===0)return;const i=Ct.popup.show(Gv,{anchor:{x:e.x,y:e.y}},{model:s,onInvoke:o=>{const l=$e().find(c=>c.action.id===o);if(l){if(l.action.submenu===!0){th(o,n,i,r);return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:Ft(l.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:us})}catch(c){console.error(`[sh3] context-menu action "${o}" threw:`,c)}}},onClose:()=>i.close()})}const u0=20;let $o=[];function d0(e){$o=[e,...$o.filter(t=>t!==e)].slice(0,u0)}function za(e){const t=$e(),n=St(),r=r0(t,n,{filter:e?.filter}),s=typeof document<"u"&&document.activeElement instanceof HTMLElement?document.activeElement:null,i=Ct.modal.open(t0,{candidates:r,recency:$o,prefill:e?.prefill??"",onInvoke:o=>{const l=$e().find(c=>c.action.id===o);if(l){if(d0(o),l.action.submenu===!0&&typeof l.action.run!="function"){i.close(),za({filter:{submenuOf:o}});return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:Ft(l.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"palette",dispatch:us})}catch(c){console.error(`[sh3] palette action "${o}" threw:`,c)}}},onClose:()=>i.close()},{dismissOnBackdrop:!0,initialFocus:!(typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(hover: none) and (pointer: coarse)").matches)});if(s){const o=i.close;i.close=()=>{o(),queueMicrotask(()=>{(document.activeElement===document.body||document.activeElement===null)&&s.focus()})}}}const sr=[];let f0=0;function v0(){return`term-${++f0}`}function h0(e){sr.push(e);let t=!1;return()=>{if(t)return;t=!0;const n=sr.indexOf(e);n!==-1&&sr.splice(n,1)}}function p0(){if(sr.length===0)return{ok:!1,error:"no-terminal"};if(sr.length===1)return{ok:!0,handle:sr[0]};let e=null,t=0;for(const n of sr){const r=n.getFocusStamp();r>0&&r>=t&&(e=n,t=r)}return e===null?{ok:!1,error:"ambiguous"}:{ok:!0,handle:e}}const Lu={"no-terminal":"no terminal open",ambiguous:"multiple terminals open; focus one first","no-active-context":"dispatchToTerminal is not available in this context"};function hc(e){return e.headless?()=>({ok:!1,error:"no-active-context",message:Lu["no-active-context"]}):t=>{const n=p0();return n.ok?(n.handle.dispatch(t),{ok:!0,terminalId:n.handle.id}):{ok:!1,error:n.error,message:Lu[n.error]}}}const m0={async rebind(e,t,n){await ku(e,t,n),St().activeAppId===e&&Fs(await Br(e))},async resetBinding(e,t){await ku(e,t,void 0),St().activeAppId===e&&Fs(await Br(e))},async bindingsFor(e){const t=await Br(e),n={};for(const[r,s]of Object.entries(t))s!==null&&(n[r]=s);return n},openContextMenu:nh,openPalette:za,listActive(){return vk($e(),St())},onActiveChange(e){const t=qk(e),n=Q1(()=>{Bk()});return()=>{t(),n()}}},Ct={state:Aa,modal:nn,popup:Ho,toast:Sn,float:Pe,presets:r1,conflicts:W1,color:G1,actions:m0,dispatchToTerminal:hc({headless:!1}),viewport:{get current(){return rr.current},subscribe:e=>rr.subscribe(e),override:e=>rr.override(e),get pinned(){return rr.pinned}},drawers:{get state(){return jt.state},open:e=>{_i("open"),jt.open(e)},close:e=>{_i("close"),jt.close(e)},toggle:e=>{_i("toggle"),jt.toggle(e)},activate:(e,t)=>{_i("activate"),jt.activate(e,t)}}};function _i(e){const t=rr.current.class;if(t!=="compact")throw new Error(`Sh3.drawers.${e}: viewport class is "${t}"; drawers exist only on compact`)}function b0(e){return mn[e].list()}function g0(e,t){return mn[e].read(t)}function y0(e,t){mn[e].delete(t)}function _0(e){for(const t of mn[e].list())mn[e].delete(t)}function el(){return{list:b0,peek:g0,clear:y0,clearAll:_0}}function Ar(e,t,n){return`${e}/${t}/${n}`}function w0(e,t){return`${e}/${t}/`}const k0="sh3-documents",Kt="docs",x0=2;class rh{#e=null;#t(){return this.#e||(this.#e=new Promise((t,n)=>{const r=indexedDB.open(k0,x0);r.onupgradeneeded=()=>{const s=r.result;s.objectStoreNames.contains(Kt)||s.createObjectStore(Kt)},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,i)=>{const l=r.transaction(Kt,t).objectStore(Kt),c=n(l);c.onsuccess=()=>s(c.result),c.onerror=()=>i(c.error)})}async read(t,n,r){const s=Ar(t,n,r),i=await this.#n("readonly",o=>o.get(s));return i?i.content:null}async write(t,n,r,s){const i=Ar(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,i))}async delete(t,n,r){const s=Ar(t,n,r);await this.#n("readwrite",i=>i.delete(s))}async rename(t,n,r,s){const i=Ar(t,n,r),o=Ar(t,n,s),l=await this.#t();return new Promise((c,u)=>{let d=!1;const f=l.transaction(Kt,"readwrite"),v=f.objectStore(Kt),m=v.get(i);m.onsuccess=()=>{const x=m.result;if(!x){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={...x,lastModified:Date.now()};v.put(b,o),v.delete(i)},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=w0(t,n),s=await this.#t();return new Promise((i,o)=>{const c=s.transaction(Kt,"readonly").objectStore(Kt),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 i(f)},d.onerror=()=>o(d.error)})}async exists(t,n,r){const s=Ar(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,i)=>{const l=r.transaction(Kt,"readonly").objectStore(Kt),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=()=>i(u.error)})}async listAllDocuments(t){const n=`${t}/`,r=await this.#t();return new Promise((s,i)=>{const l=r.transaction(Kt,"readonly").objectStore(Kt),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 x=f.value;d.push({shardId:v.slice(0,m),path:v.slice(m+1),size:x.size,lastModified:x.lastModified})}f.continue()}else s(d)},u.onerror=()=>i(u.error)})}}const S0="local";let pc=S0,sh=new rh;function ih(){return pc}function mo(){return pc}function Mu(){return sh}function wi(e){pc=e}function Pu(e){sh=e}const yr=fe({activeProjectId:null});function ah(e){if(yr.activeProjectId===e)return;const t=ut.id;yr.activeProjectId=e,Xr.id=null,t&&mc(t)}const oh=Aa("__sh3core__:last-app",{user:{id:null}});function I0(){return oh.user.id}function Vs(e){oh.user.id=e}function E0(){Vs(null)}const tl=new Map;function A0(){return yr.activeProjectId??ih()}function ki(e,t,n){let r=tl.get(e);if(!r){const s=En(e),i=A0();r={scopeId:i,args:n??{},state:o=>Aa(`__app__:${e}:scope:${i}`,o),zones:s?.manifest.permissions?.includes(zs)?el():void 0,gestures:kw(typeof document<"u"?document.body:null)},tl.set(e,r)}return r}async function Nn(e,t={}){const n=En(e);if(!n)throw new Error(`Cannot launch app "${e}": not registered`);if(ut.id&&ut.id!==e)mc(ut.id,t.skipSwitchToHome);else if(ut.id===e){for(const r of n.manifest.requiredShards){const s=tn.get(r),i=Px(r);s&&i&&s.resume?.(i)}n.resume?.(ki(e)),Au(),n.onAppReady?.(ki(e)),t.skipLastApp||Vs(e),Xr.id=e,ta(e,new Set(n.manifest.requiredShards??[])),Br(e).then(Fs);return}for(const r of n.manifest.requiredShards)if(!tn.has(r))throw new Error(`App "${e}" requires shard "${r}" which is not registered`);Pk(n);try{for(const r of n.manifest.requiredShards)await oa(r,{phase:"launch"})}catch(r){Bv();try{Sn.notify(`Couldn't launch "${n.manifest.label??e}": ${r instanceof Error?r.message:String(r)}`,{level:"error",duration:6e3})}catch{}throw r}jk(),n.activate?.(ki(e,void 0,t.args)),ut.id=e,ta(e,new Set(n.manifest.requiredShards??[])),Br(e).then(Fs),Au(),n.onAppReady?.(ki(e)),t.skipLastApp||Vs(e),Xr.id=e}function mc(e,t=!1){if(ut.id!==e)return;const n=En(e);if(n){n.deactivate?.(),t||Fv(),Bv();for(const r of n.manifest.requiredShards){const s=tn.get(r);s&&(s.autostart||Ha(r))}ut.id=null,ta(null,new Set),hk(),sv(),Br("sh3.home").then(Fs),tl.delete(e)}}function bc(e){Gn.has(e)&&(ut.id===e&&(mc(e),Vs(null)),Gn.delete(e))}async function ds(){const e=ut.id?En(ut.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 sv(),Fv(),ta(null,new Set),Vs(null),!0}function lh(){return{root:Vt(),source:fc()}}function C0(e){const t=Vt().docked,n=yc(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 T0(e){const t=Vt();return Na(t.docked,n=>n.slotId===e)?!0:ch(t,n=>n.slotId===e)}function Oa(e){const t=Vt();return Na(t.docked,n=>n.viewId===e)?!0:ch(t,n=>n.viewId===e)}function Na(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(Na(n,t))return!0}return!1}function ch(e,t){for(const n of e.floats)if(Na(n.content,t))return Pe.focus(n.id),!0;return!1}function R0(e,t){return uh(e,t,!0)}function L0(e,t){return uh(e,t,!1)}function uh(e,t,n){const r=Vt().docked,s=Qr(r,e);if(!s||s.type!=="split")return!1;const i=s;return t<0||t>=i.children.length?!1:(i.collapsed||(i.collapsed=i.children.map(()=>!1)),i.collapsed[t]=n,!0)}async function gc(e){const t=Vt(),n=t.docked;if(!Zr(n,e))return M0(t,e);const i=jv(e)?.closable;return!i||typeof i=="object"&&(!await i.canClose()||!Zr(n,e))?!1:(Pa(n,e),Or(n),!0)}async function M0(e,t){for(const n of e.floats){if(!Zr(n.content,t))continue;const i=jv(t)?.closable;if(typeof i=="object"&&(!await i.canClose()||!Zr(n.content,t)))return!1;Pa(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 dh(e){const t=Vt(),n=Zr(t.docked,e);if(!n)return null;const r=n.entry,s=r.viewId;if(!s)return null;const i=r.label,o=r.meta;return Pa(t.docked,e),Or(t.docked),Pe.open(s,{title:i,meta:o})}function fh(e){const n=Vt().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 i=s.tabs[s.activeTab??0]??s.tabs[0],o=_c({slotId:i.slotId,viewId:i.viewId,label:i.label,meta:i.meta});return o&&Pe.close(e),o}function yc(e){if(e.type==="tabs")return e;if(e.type==="split")for(const t of e.children){const n=yc(t);if(n)return n}return null}function vh(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=vh(e.children[n],[...t,n]);if(r)return r}return null}function _c(e){const t=Vt().docked;if(Oa(e.viewId??""))return!0;const n=hh(t);if(n)return n.tabs.push(e),n.activeTab=n.tabs.length-1,!0;const r=ph(t);if(r)return Go(t,r,e,"right"),!0;const s=yc(t);if(s)return s.tabs.push(e),s.activeTab=s.tabs.length-1,!0;const i=vh(t);return i?(Go(t,i,e,"right"),!0):!1}function hh(e){if(e.type==="tabs")return e.role==="body"?e:null;if(e.type==="split")for(const t of e.children){const n=hh(t);if(n)return n}return null}function ph(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=ph(e.children[n],[...t,n]);if(r)return r}return null}function mh(e){return lc(Vt(),e)}const nl="sh3:authToken";let ra=null,rl=!1;function P0(){if(!rl&&(rl=!0,!(typeof localStorage>"u")))try{ra=localStorage.getItem(nl)}catch{ra=null}}function qa(e){if(rl=!0,ra=e,!(typeof localStorage>"u"))try{e?localStorage.setItem(nl,e):localStorage.removeItem(nl)}catch{}}function bh(){return P0(),ra}let xi=null,Du=!1;function D0(){return typeof window>"u"?!1:"__TAURI_INTERNALS__"in window||"__TAURI__"in window}async function j0(){if(Du)return xi;if(Du=!0,!D0())return null;try{xi=(await import("@tauri-apps/plugin-http")).fetch}catch{xi=null}return xi}async function Re(e,t){const n=bh();let r=t??{};if(n){const i=new Headers(r.headers??{});i.has("Authorization")||(i.set("Authorization",`Bearer ${n}`),r={...r,headers:i})}const s=await j0();return s?s(e,r):fetch(e,{credentials:"include",...r})}let fs=V(null),An=V(null),vs=V(!1),Ba="",sl=null;function ju(e,t){Ba=e,sl=t.auth,S(fs,t.user,!0),S(An,t.session,!0),S(vs,!t.session&&!t.user,!0),qa(t.session?.token??null)}async function gh(e,t){try{const n=await Re(`${Ba}/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 S(fs,r.user,!0),S(An,r.session,!0),S(vs,!1),qa(r.session?.token??null),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function z0(e,t,n){try{const r=await Re(`${Ba}/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 S(fs,s.user,!0),S(An,s.session,!0),S(vs,!1),qa(s.session?.token??null),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function O0(){try{await Re(`${Ba}/api/auth/logout`,{method:"POST"})}catch{}if(qa(null),sl?.required&&!sl.guestAllowed){window.location.reload();return}S(fs,null),S(An,null),S(vs,!0)}function N0(){S(fs,{id:"local",username:"local",displayName:"Local Owner",role:"admin",createdAt:"",updatedAt:""},!0),S(An,{token:"local",userId:"local",role:"admin",expiresAt:1/0},!0),S(vs,!1)}function q0(){return a(An)?.token==="local"}function It(){return a(An)?.role==="admin"}function il(){return a(An)!==null}function yh(){return a(vs)}function $r(){return a(fs)}function Fa(){return a(An)?`Bearer ${a(An).token}`:null}const B0=2e3;let al=0;function F0(){return`e${++al}`}function V0(e){if(e.length<2||e.charCodeAt(0)!==101)return NaN;const t=Number(e.slice(1));return Number.isInteger(t)?t:NaN}class U0{#e;get entries(){return a(this.#e)}set entries(t){S(this.#e,t,!0)}constructor(t=B0){this.#e=V(fe([])),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:F0()};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=V0(r.id);Number.isFinite(s)&&s>n&&(n=s)}n>al&&(al=n),this.entries.splice(0,this.entries.length,...t)}}const zu=[1e3,2e3,5e3,1e4];class _h{#e;get connected(){return a(this.#e)}set connected(t){S(this.#e,t,!0)}#t;get cwd(){return a(this.#t)}set cwd(t){S(this.#t,t,!0)}#n;get tenantRoot(){return a(this.#n)}set tenantRoot(t){S(this.#n,t,!0)}#s;get env(){return a(this.#s)}set env(t){S(this.#s,t,!0)}#r;get historyByMode(){return a(this.#r)}set historyByMode(t){S(this.#r,t,!0)}#a;get lastSeq(){return a(this.#a)}set lastSeq(t){S(this.#a,t,!0)}constructor(t){this.url=t,this.ws=null,this.handlers=new Set,this.pendingHistoryLogs=[],this.backoffIndex=0,this.closed=!1,this.#e=V(!1),this.#t=V(""),this.#n=V(""),this.#s=V(fe({})),this.#r=V(fe({})),this.#a=V(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=zu[Math.min(this.backoffIndex,zu.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 wh{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 i=`HTTP ${s.status}`;try{const o=await s.json();o.error&&(i=o.error)}catch{}throw new Error(i)}return s}}function H0(e){const t=Qi(e);if(!t)return null;const r=Mv().find(s=>s.verb===t);return r?{verb:r.verb,shardId:r.shardId}:null}async function kh(e,t,n,r){if(!_r.has(e))throw new Error(`unknown shard: ${e}`);const s=Qi(t);if(!s)throw new Error(`unknown verb: ${t}`);if(!s.programmatic)throw new Error(`verb "${t}" is not programmatic`);const i=[],o=W0(i),l=await K0({sinkScrollback:o,opts:r});return{result:await s.run(l,n),scrollback:i}}async function K0(e){const t={sh3:kc({callerKind:"verb"}),scrollback:e.sinkScrollback,session:Y0(),cwd:"/",fs:new wh,async dispatch(n){const r=n.trim();if(!r)return;const s=r.indexOf(" "),i=s===-1?r:r.slice(0,s),o=s===-1?"":r.slice(s+1),l=o.length?o.split(/\s+/):[],c=H0(i);if(!c)throw new Error(`dispatch: unknown verb "${i}"`);const u={...t,structuredArgs:void 0};await c.verb.run(u,l)},structuredArgs:e.opts?.structured,signal:e.opts?.signal};return t}function W0(e){let t=0;return{entries:e,push(r){const s={...r,id:`runverb-${++t}`};e.push(s)},clear(){e.length=0}}}function Y0(){return new _h("")}const Us="sh3.controllable-field",ol="sh3.walker";function wc(){return Ir(Us)}function xh(e){for(const t of wc())if(t.owner.shardId===e.shardId&&(t.owner.slotId??void 0)===(e.slotId??void 0)&&t.descriptor.fieldId===e.fieldId)return t}function X0(e){return e.shape==="readonly"?!0:e.shape==="imperative"?typeof e.set!="function":!1}function G0(e){if(e.shape==="element"||e.shape==="imperative"||e.shape==="readonly")return e.element}function J0(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:X0(t),source:"contributed"};e.owner.slotId!==void 0&&(n.slotId=e.owner.slotId);const r=G0(t);return r!==void 0&&(n.element=r),n}function Z0(e={}){const t=[];for(const n of wc())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(J0(n));return t}function Q0(e){return e.get()}function $0(e){const t=e.element;return t instanceof HTMLInputElement&&t.type==="checkbox"?t.checked:t.value}function ex(e){const t=xh(e);if(!t)throw new Error(`unknown field: ${e.shardId}::${e.slotId??""}::${e.fieldId}`);const n=t.descriptor;return n.shape==="element"?$0(n):Q0(n)}function Sh(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 tx(e,t){const n=xh(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}Sh(r.element,t)}const nx=new Set(["submit","button","reset","file","hidden"]);function rx(e){return e.type==="number"?"number":e.type==="checkbox"?"boolean":"string"}function sx(e){return Array.from(e.options).map(t=>t.value)}function Ou(e){return e.toLowerCase().trim().replace(/[^a-z0-9.\-_ ]/g,"").replace(/\s+/g,"-").replace(/^-+|-+$/g,"")}function Ih(e){if(e.id){const n=e.ownerDocument.querySelector(`label[for="${CSS.escape(e.id)}"]`);if(n&&n.textContent)return n.textContent}let t=e.parentElement;for(;t;){if(t.tagName==="LABEL"&&t.textContent)return t.textContent;t=t.parentElement}return null}function ix(e,t){const n=e.getAttribute("data-sh3-field");if(n&&n.length>0)return n;const r=e.name;if(r)return r;const s=Ih(e);if(s){const o=Ou(s);if(o.length>0)return o}if(e.id)return e.id;const i=e.placeholder;if(i){const o=Ou(i);if(o.length>0)return o}return`field-${t}`}function ax(e){return Ih(e)?.trim()??e.placeholder??null}function ox(e){return e.hasAttribute("data-sh3-field")?!0:e instanceof HTMLInputElement?!nx.has(e.type):e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement}function bo(e,t){const n=new Set;for(const o of wc()){const l=o.descriptor;l.shape==="element"&&n.add(l.element)}const r=t.querySelectorAll("input, textarea, select, [data-sh3-field]"),s=[];let i=0;for(const o of Array.from(r)){if(!ox(o)||n.has(o))continue;let l="string",c;if(o instanceof HTMLInputElement)l=rx(o);else if(o instanceof HTMLSelectElement)l="enum",c=sx(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=ix(o,i);/^field-\d+$/.test(u)&&(i+=1);const d={shardId:ol,slotId:e,fieldId:u,label:ax(o)??u,kind:l,readonly:!1,source:"walker",element:o};c!==void 0&&(d.enumValues=c),s.push(d)}return s}const Va=new Set;let Si=null,go=null,Nu=null,yo=!1;function lx(){if(Si&&Si.isConnected)return Si;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),Si=e,go||(go=()=>ll(),window.addEventListener("resize",go)),Nu||(Nu=Ta(Us,()=>{const t=new Set;for(const n of Ir(Us))t.add(sa({shardId:n.owner.shardId,slotId:n.owner.slotId,fieldId:n.descriptor.fieldId}));for(const n of Array.from(Va))t.has(sa(n.addr))||Eh(n)})),e}function sa(e){return`${e.shardId}::${e.slotId??""}::${e.fieldId}`}function cx(e){for(const t of Ir(Us))if(t.owner.shardId===e.shardId&&(t.owner.slotId??void 0)===(e.slotId??void 0)&&t.descriptor.fieldId===e.fieldId)return t}function ux(e){const t=e.descriptor;if(t.shape==="element"||t.shape==="imperative"||t.shape==="readonly")return t.element}function dx(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 fx(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 ll(){yo||(yo=!0,requestAnimationFrame(()=>{yo=!1;for(const e of Va)fx(e)}))}function Eh(e){if(!e.disposed){e.disposed=!0,Va.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 vx(e,t){const n=cx(e);if(!n)throw new Error(`unknown field: ${sa(e)}`);const r=ux(n);if(!r)throw new Error(`field has no element to anchor to: ${sa(e)}`);const s=lx(),i=r.getBoundingClientRect(),o=t({element:r,rect:i});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: ${i.left}px; top: ${i.top}px; width: ${i.width}px; height: ${i.height}px; pointer-events: none;`,u.appendChild(l),s.appendChild(u);const d=dx(r),f={addr:e,element:l,wrapper:u,target:r,handle:c,resizeObserver:new ResizeObserver(()=>ll()),scrollAncestor:d,scrollListener:()=>ll(),disposed:!1};return f.resizeObserver.observe(r),d===window?window.addEventListener("scroll",f.scrollListener,!0):d.addEventListener("scroll",f.scrollListener),Va.add(f),()=>Eh(f)}const qu=["ephemeral","session","workspace","user"];function Ah(e){return e.type==="tabs"?e.tabs.filter(t=>t.viewId!==null):e.type==="split"?e.children.flatMap(Ah):e.viewId!==null?[{slotId:e.slotId,viewId:e.viewId,label:e.viewId}]:[]}function kc(e){e?.callerKind,e?.callerShardId;const t=e?.zones;function n(){try{const{root:l}=lh();return Ah(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=po(l.slotId);if(!c?.host)throw new Error(`unknown field: ${l.shardId}::${l.slotId}::${l.fieldId}`);const u=bo(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 i(l,c){const d=r(l).element;if(d instanceof HTMLInputElement||d instanceof HTMLTextAreaElement||d instanceof HTMLSelectElement){Sh(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=Z0({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=po(v);if(!m?.host)continue;const x=c.some(g=>g.slotId===v);u==="fallback"&&x||(f=f.concat(bo(v,m.host)))}return l?.kind&&(f=f.filter(v=>v.kind===l.kind)),f},get(l){return l.shardId===ol?s(l):ex(l)},async set(l,c){if(l.shardId===ol){i(l,c);return}return tx(l,c)},walk(l){const c=po(l);if(!c?.host)throw new Error(`unknown slot: ${l}`);return bo(l,c.host)},onChange(l){return Ta(Us,l)},attachDecoration(l,c){return vx(l,c)}};return{listApps(){return ls().map(l=>({id:l.id,label:l.label}))},getActiveApp(){const l=Jl();return l?{id:l.id,label:l.label}:null},launchApp(l){Nn(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(Oa(l))return{ok:!0};const c=Hs().find(u=>u.viewId===l);if(c){const u=`standalone:${l}:${Date.now()}`;return _c({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 Hs()},popoutSlot(l){try{const c=dh(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 fh(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 mh(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 gc(l),{ok:!0}},listZones(l){if(!t)return[];const c=new Map;for(const u of qu)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||!qu.includes(c)?null:t.peek(c,l)??null},whoAmI(){return{userId:$r()?.id??"guest",admin:It()}},setMode(l){return!1},listModes(){return[]},getMode(){return{id:"sh3",label:"sh3"}},dispatchToTerminal:hc({headless:!0}),listVerbs(l){const c=l?.programmaticOnly===!0,u=Mv().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 kh(l,c,u,d)},listActions(l){let u=ic($e(),St());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 eh(l)},listViews(){return n()},fields:o}}function hx(e){return kc({callerKind:"verb",zones:e})}class px{#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}`,i=await Re(s,{credentials:"include"});if(i.status===404)return null;if(!i.ok)throw new Error(`Document read failed: ${i.status}`);return(i.headers.get("content-type")??"").includes("application/octet-stream")?i.arrayBuffer():i.text()}async write(t,n,r,s){const i=`${this.#e}/api/docs/${t}/${n}/${r}`,o={...this.#n(),"Content-Type":typeof s=="string"?"text/plain":"application/octet-stream"},l=await Re(i,{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}`,i=await Re(s,{method:"DELETE",headers:this.#n(),credentials:"include"});if(!i.ok)throw new Error(`Document delete failed: ${i.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`,i=await Re(s,{credentials:"include"});if(!i.ok)throw new Error(`readMeta failed: ${i.status}`);const o=await i.json();return o.exists?o:null}async resolve(t,n,r,s){const i=`${this.#e}/api/docs/${t}/${n}/${r}/resolve`,o=typeof s=="string"?{choice:s}:{choice:s.origin},l=await Re(i,{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 i=`${this.#e}/api/docs/${t}/${n}/${r}/branch?origin=${encodeURIComponent(s)}`,o=await Re(i,{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 i=`${this.#e}/api/docs/${t}/${n}/${r}/rename`,o={...this.#n(),"Content-Type":"application/json"},l=await Re(i,{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 mx{#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 Hn=new mx,bx=1e3;function gx(e,t,n,r){const s=new Set,i=new Set;function o(u){return!r.extensions||r.extensions.length===0?!0:r.extensions.some(d=>u.endsWith(d))}function l(u,d){Hn.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),Hn.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=Hn.subscribe(f=>{f.tenantId===e&&f.shardId===t&&o(f.path)&&u(f)});return i.add(d),()=>{d(),i.delete(d)}},autosave(u,d){const f=new yx(c,u,d?.debounceMs??bx);return s.add(f),f},async dispose(){const u=[...s].map(d=>d.dispose());await Promise.all(u),s.clear();for(const d of i)d();i.clear()}};return c}class yx{#e;#t;#n;#s=null;#r=null;#a=!1;#i=!1;constructor(t,n,r){this.#e=t,this.#t=n,this.#n=r}get dirty(){return this.#a}get path(){return this.#t}update(t){this.#i||(this.#s=t,this.#a=!0,this.#o())}async flush(){if(this.#l(),this.#s!==null){const t=this.#s;this.#s=null,this.#a=!1,await this.#e.write(this.#t,t)}}async dispose(){this.#i||(this.#i=!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 _x="sync:peer",wx="sync:policy";let Ch="";function Th(e){Ch=e}function rt(){return Ch}async function kx(e){const t=await Re(`${rt()}/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 xx(e,t){if(!It())throw new Error("Cannot update env state: not elevated to admin");const n=Fa(),r={"Content-Type":"application/json"};n&&(r.Authorization=n);const s=await Re(`${rt()}/api/env-state/${encodeURIComponent(e)}`,{method:"PUT",headers:r,body:JSON.stringify(t),credentials:"omit"});if(!s.ok){const i=await s.json().catch(()=>({}));throw new Error(`Env state update failed: HTTP ${s.status} — ${i.error??"unknown"}`)}}async function xc(e,t,n){if(!It())throw new Error("Cannot install: not elevated to admin");const r=Fa(),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 i={};r&&(i.Authorization=r);const o=await Re(`${rt()}/api/packages/install`,{method:"POST",headers:i,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 Sx(e){if(!It())throw new Error("Cannot uninstall: not elevated to admin");const t=Fa(),n={"Content-Type":"application/json"};t&&(n.Authorization=t);const r=await Re(`${rt()}/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 Ix(){const e=await Re(`${rt()}/api/packages`,{credentials:"omit"});return e.ok?await e.json():[]}const Rh="documents:browse",Lh="documents:read",Mh="documents:write";function Ex(e,t,n={canRead:!1,canWrite:!1}){const r={listDocuments:()=>t.listAllDocuments(e),listShards:()=>t.listAllShards(e),watchDocuments:s=>Hn.subscribe(i=>{i.tenantId===e&&s(i)})};return n.canRead&&(r.readFrom=(s,i)=>t.read(e,s,i),r.statusFrom=async(s,i)=>t.readMeta?t.readMeta(e,s,i):null,r.readBranchFrom=async(s,i,o)=>t.readBranch?t.readBranch(e,s,i,o):null),n.canWrite&&(r.writeTo=async(s,i,o)=>{const l=await t.exists(e,s,i);await t.write(e,s,i,o),Hn.emit({type:l?"update":"create",path:i,tenantId:e,shardId:s})},r.resolveConflictFrom=async(s,i,o)=>{if(!t.resolve)throw new Error("Backend does not support resolveConflict");await t.resolve(e,s,i,o),Hn.emit({type:"update",path:i,tenantId:e,shardId:s})},r.renameFrom=async(s,i,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,i,o),Hn.emit({type:"rename",path:o,oldPath:i,tenantId:e,shardId:s})},r.deleteFrom=async(s,i)=>{const o=await t.exists(e,s,i);await t.delete(e,s,i),o&&Hn.emit({type:"delete",path:i,tenantId:e,shardId:s})}),r}const Ph="keys:mint";class Dh extends Error{constructor(t){super(`Shard may not mint a key with scope '${t}' — not declared in manifest.`),this.name="ScopeEscalationError"}}class jh extends Error{constructor(){super("User denied key creation."),this.name="ConsentDeniedError"}}const cl=new Map;let Ts=null;function zh(e){return Ts=e,()=>{Ts===e&&(Ts=null)}}async function Ax(e,t){if(!Ts)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=>{cl.set(n,{resolve:r}),Ts({...t,shardId:e,requestId:n})})}function ul(e,t){const n=cl.get(e);n&&(cl.delete(e),n.resolve(t))}const ia=new Map,zi=new Map,Cx=5e3;function Tx(e,t){let n=zi.get(e);n||(n=new Set,zi.set(e,n)),n.add(t),setTimeout(()=>{n.delete(t),n.size===0&&zi.delete(e)},Cx)}function Rx(e,t){return zi.get(e)?.has(t)??!1}function Sc(e,t){const n=ia.get(e)??new Set;return n.add(t),ia.set(e,n),()=>{n.delete(t)}}function Oh(e,t){if(!e||Rx(e,t))return;Tx(e,t);const n=ia.get(e);if(n)for(const s of n)s(t);const r=ia.get("*");if(r)for(const s of r)s(t)}function Lx(){if(typeof EventSource>"u")return()=>{};const e=rt(),t=bh(),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 i=JSON.parse(s.data);Oh(i.shardId,i.id)}catch{}},()=>r.close()}function Mx(e){const{shardId:t,shardPermissions:n}=e,r=s=>{for(const i of s)if(!n.includes(i)&&!n.includes("admin:*"))throw new Dh(i)};return{async mint(s){if(r(s.scopes),!await Ax(t,s))throw new jh;const o=await Re(`${rt()}/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(`${rt()}/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(`${rt()}/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 i=await Re(`${rt()}/api/keys/${encodeURIComponent(s)}`,{method:"DELETE"});if(!i.ok&&i.status!==404)throw new Error(`Revoke failed: ${i.status}`);Oh(t,s)}}}const tn=fe(new Map),Fr=new Map,_r=fe(new Map),aa=fe(new Map);function Ua(e){const t=e.manifest.id;tn.has(t)&&_r.has(t)&&Ha(t),tn.set(t,e),aa.delete(t)}async function oa(e,t){const n=tn.get(e);if(!n)throw new Error(`Cannot activate shard "${e}": not registered`);if(Fr.has(e))return;const r={shard:n,ctx:void 0,viewIds:new Set,verbNames:new Set,cleanupFns:[]},s=fe({proxy:null,defaults:null}),i={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=bv(l,d,u);return r.cleanupFns.push(async()=>f()),f},list(l){return Ir(l)},listPoints(){return a1()},onChange(l,c){const u=Ta(l,c);return r.cleanupFns.push(async()=>u()),u},onAnyChange(l){const c=o1(l);return r.cleanupFns.push(async()=>c()),c}},o={state:l=>Ct.state(e,l),registerView:(l,c)=>{mk(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}`,bk(c,{...l,name:c},e)&&r.verbNames.add(c)},documents:l=>{const c=gx(mo(),e,Mu(),l);return r.cleanupFns.push(()=>c.dispose()),c},fetch(l,c){return Re(this.resolveUrl(l),c)},get serverUrl(){return rt()},resolveUrl(l){if(l.startsWith("http://")||l.startsWith("https://"))return l;const u=rt(),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=hr(s.proxy);Object.assign(s.proxy,l);try{const u=hr(s.proxy);await xx(e,u)}catch(u){throw Object.assign(s.proxy,c),u}},get isAdmin(){return It()},get tenantId(){return mo()},zones:n.manifest.permissions?.includes(zs)?el():void 0,browse:n.manifest.permissions?.includes(Rh)?Ex(mo(),Mu(),{canRead:n.manifest.permissions.includes(Lh),canWrite:n.manifest.permissions.includes(Mh)}):void 0,keys:n.manifest.permissions?.includes(Ph)?Mx({shardId:e,shardPermissions:n.manifest.permissions??[]}):void 0,contributions:i,actions:{register(l){const c=Z1(l,e);return r.cleanupFns.push(async()=>c()),c},selection:Ma(e),openContextMenu(l){nh(l)},openPalette(l){za(l)}},sh3:kc({callerKind:"shard",callerShardId:e,zones:n.manifest.permissions?.includes(zs)?el():void 0})};if(r.ctx=o,n.onKeyRevoked){const l=Sc(e,async c=>{try{await n.onKeyRevoked(c)}catch(u){console.error(`[sh3] onKeyRevoked failed in "${e}":`,u)}});r.cleanupFns.push(async()=>l())}Fr.set(e,r),_r.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 kx(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)Lv(c);for(const c of r.viewIds)Rv(c);throw Av(e),Fr.delete(e),_r.delete(e),aa.set(e,{id:e,error:l,phase:t?.phase??"launch",timestamp:Date.now()}),console.error(`[sh3] Shard "${e}" failed to activate:`,l),l}aa.delete(e),n.autostart?.(o)}function Ha(e){const t=Fr.get(e);if(t){t.shard.deactivate?.();for(const n of t.cleanupFns)n();for(const n of t.verbNames)Lv(n);for(const n of t.viewIds)Rv(n);Av(e),Fr.delete(e),_r.delete(e)}}function Px(e){return Fr.get(e)?.ctx}function Hs(){const e=[];for(const t of _r.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 Dx(e){return btoa(JSON.stringify(e)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function jx(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 zx(n)}function zx(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 Ox(){return typeof globalThis.__TAURI_INTERNALS__<"u"}let Bu=0;function Nx(){return Bu+=1,`sh3-satellite-${Date.now()}-${Bu}`}async function Ka(e,t={}){if(!Ox())return console.warn("[sh3] sh3.window.spawn called outside Tauri — no-op"),"";const{invoke:n}=await ha(async()=>{const{invoke:c}=await import("./core-DsojzR6k.js");return{invoke:c}},[]),r=Dx(e),s=Nx(),i=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:i,width:o,height:l})}class wt extends Error{constructor(t,n){super(`Registry validation error at ${t}: ${n}`),this.name="RegistryValidationError",this.path=t}}function Nh(e){if(!e||typeof e!="object"||Array.isArray(e))throw new wt("$","expected an object");const t=e;if(t.version!==1)throw new wt("$.version",`expected 1, got ${JSON.stringify(t.version)}`);if(!Array.isArray(t.packages))throw new wt("$.packages","expected an array");return{version:1,packages:t.packages.map((r,s)=>qx(r,`$.packages[${s}]`))}}function qx(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new wt(t,"expected an object");const n=e;ln(n,"id",t),Vx(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 wt(r,"expected an object");const s=n.author;if(typeof s.name!="string"||s.name.length===0)throw new wt(`${r}.name`,"expected a non-empty string");if(!Array.isArray(n.versions)||n.versions.length===0)throw new wt(`${t}.versions`,"expected a non-empty array");const i=n.versions.map((o,l)=>Bx(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:i}}function Bx(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new wt(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 wt(t,"bundleUrl and integrity must be provided together");const i="serverBundleUrl"in n&&n.serverBundleUrl!==void 0;if(i&&ln(n,"serverBundleUrl",t),"serverIntegrity"in n&&n.serverIntegrity!==void 0&&ln(n,"serverIntegrity",t),!r&&!i)throw new wt(t,"expected at least one of bundleUrl+integrity or serverBundleUrl");let o;if(n.requires!==void 0){if(!Array.isArray(n.requires))throw new wt(`${t}.requires`,"expected an array");o=n.requires.map((l,c)=>Fx(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 Fx(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new wt(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 wt(`${n}.${t}`,"expected a non-empty string")}function Vx(e,t,n,r){if(!n.includes(e[t]))throw new wt(`${r}.${t}`,`expected one of: ${n.join(", ")}`)}const Fu=["sha256","sha384","sha512"];function Ux(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(!Fu.includes(n))throw new Error(`Unsupported SRI algorithm: ${n}. Supported: ${Fu.join(", ")}`);if(!r)throw new Error(`Empty hash in SRI: ${e}`);return{algorithm:n,hash:r}}function Hx(e){return`SHA-${e.slice(3)}`}function Kx(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 Ic(e,t){const{algorithm:n,hash:r}=Ux(t),s=Hx(n),i=await crypto.subtle.digest(s,e),o=Kx(i);if(o!==r)throw new Error(`Integrity check failed for ${n}. Expected: ${r}, got: ${o}`)}async function qh(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 i;try{i=Nh(s)}catch(o){console.warn(`[sh3] Registry ${r} failed validation: ${o instanceof Error?o.message:String(o)}`);continue}for(const o of i.packages)t.has(o.id)||(t.add(o.id),n.push({entry:o,latest:o.versions[0],sourceRegistry:r}))}return n}async function Wa(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 Ic(s,e.integrity),s}async function Ec(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 Ic(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 Ya(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 Rs="sh3.shell.mode";function Wx(e,t){return e.contributions.register(Rs,t)}const bn="0.19.3",Ac="sh3:user:__sh3core__:theme";let Ks=[];function Yx(e){const t=Object.keys(e);for(const n of Ks)t.includes(n)||document.documentElement.style.removeProperty(`--${n}`);for(const[n,r]of Object.entries(e))document.documentElement.style.setProperty(`--${n}`,r);Ks=t;try{localStorage.setItem(Ac,JSON.stringify(e))}catch{}}function Xx(){for(const e of Ks)document.documentElement.style.removeProperty(`--${e}`);Ks=[];try{localStorage.removeItem(Ac)}catch{}}function Bh(){try{const e=localStorage.getItem(Ac);if(!e)return{};const t=JSON.parse(e);return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{}}catch{return{}}}function Gx(){const e=Bh();if(Object.keys(e).length!==0){for(const[t,n]of Object.entries(e))document.documentElement.style.setProperty(`--${t}`,n);Ks=Object.keys(e)}}const Jn="/assets/icons-nOyIoORC.svg",Fh=Symbol("sh3.icon-sprite");function Jx(e){Il(Fh,e)}function Vh(){return Sl(Fh)}var Zx=Bl('<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>'),Qx=Bl('<svg class="sh3-btn__icon svelte-t4hi97" aria-hidden="true"><use></use></svg>'),$x=A('<span class="sh3-btn__label svelte-t4hi97"><!></span>'),eS=A("<button><!> <!></button>");function Un(e,t){ie(t,!0);let n=te(t,"variant",3,"default"),r=te(t,"disabled",3,!1),s=te(t,"type",3,"button");const i=Vh();function o(y){return y.includes("/")||y.endsWith(".svg")}const l=F(()=>t.icon?o(t.icon)?t.icon:`${t.sprite??i??Jn}#${t.icon}`:void 0);let c=V(!1);const u=F(()=>t.loading??a(c)),d=F(()=>n()==="icon"||!!t.icon&&!t.children);async function f(y){if(!t.onclick)return;const T=t.onclick(y);if(T&&typeof T.then=="function"){S(c,!0);try{await T}finally{S(c,!1)}}}var v=eS();let m;var x=p(v);{var g=y=>{var T=Zx();k(y,T)},b=y=>{var T=Qx(),I=p(T);h(T),O(()=>se(I,"href",a(l))),k(y,T)};U(x,y=>{a(u)?y(g):a(l)&&y(b,1)})}var C=w(x,2);{var _=y=>{var T=$x(),I=p(T);$t(I,()=>t.children),h(T),k(y,T)};U(C,y=>{t.children&&y(_)})}h(v),O(()=>{se(v,"type",s()),m=he(v,1,`sh3-btn sh3-btn--${n()??""}`,"svelte-t4hi97",m,{"sh3-btn--icon-only":a(d),"sh3-btn--pressed":t.pressed}),v.disabled=r()||a(u),se(v,"aria-busy",a(u)||void 0),se(v,"aria-pressed",t.pressed??void 0),se(v,"title",t.title),se(v,"aria-label",t.ariaLabel??(a(d)?t.title:void 0))}),K("click",v,f),k(e,v),ae()}pe(["click"]);var tS=A('<span class="sh3-collapsible__title svelte-lvydsb"> </span>'),nS=A('<div class="sh3-collapsible__body svelte-lvydsb"><!></div>'),rS=A('<div><button class="sh3-collapsible__head svelte-lvydsb" type="button"><svg class="sh3-collapsible__caret svelte-lvydsb" aria-hidden="true" viewBox="0 0 16 16"><path d="M5 3l6 5-6 5" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg> <!></button> <!></div>');function sS(e,t){ie(t,!0);let n=te(t,"open",15,!1);function r(){n(!n()),t.onopenchange?.(n())}var s=rS();let i;var o=p(s),l=w(p(o),2);{var c=v=>{var m=De(),x=ve(m);$t(x,()=>t.header),k(v,m)},u=v=>{var m=tS(),x=p(m,!0);h(m),O(()=>z(x,t.title)),k(v,m)};U(l,v=>{t.header?v(c):t.title&&v(u,1)})}h(o);var d=w(o,2);{var f=v=>{var m=nS(),x=p(m);$t(x,()=>t.children),h(m),k(v,m)};U(d,v=>{n()&&v(f)})}h(s),O(()=>{i=he(s,1,"sh3-collapsible svelte-lvydsb",null,i,{"sh3-collapsible--open":n()}),se(o,"aria-expanded",n())}),K("click",o,r),k(e,s),ae()}pe(["click"]);var iS=A('<span aria-hidden="true">*</span>'),aS=A('<span class="sh3-field__label svelte-m4dkl"> <!></span>'),oS=A('<span class="sh3-field__affix svelte-m4dkl"><!></span>'),lS=A('<span class="sh3-field__affix svelte-m4dkl"><!></span>'),cS=A("<span> </span>"),uS=A('<label><!> <span class="sh3-field__row svelte-m4dkl"><!> <input class="sh3-field__input svelte-m4dkl"/> <!></span> <!></label>');function dS(e,t){ie(t,!0);let n=te(t,"value",15,""),r=te(t,"type",3,"text"),s=te(t,"disabled",3,!1),i=te(t,"invalid",3,!1),o=te(t,"size",3,"md"),l=te(t,"required",3,!1);const c=F(()=>i()&&!!t.error),u=F(()=>a(c)?t.error:t.helper);var d=uS();let f;var v=p(d);{var m=D=>{var R=aS(),P=p(R,!0),L=w(P);{var N=E=>{var M=iS();k(E,M)};U(L,E=>{l()&&E(N)})}h(R),O(()=>z(P,t.label)),k(D,R)};U(v,D=>{t.label&&D(m)})}var x=w(v,2),g=p(x);{var b=D=>{var R=oS(),P=p(R);$t(P,()=>t.prefix),h(R),k(D,R)};U(g,D=>{t.prefix&&D(b)})}var C=w(g,2);xe(C);var _=w(C,2);{var y=D=>{var R=lS(),P=p(R);$t(P,()=>t.suffix),h(R),k(D,R)};U(_,D=>{t.suffix&&D(y)})}h(x);var T=w(x,2);{var I=D=>{var R=cS();let P;var L=p(R,!0);h(R),O(()=>{P=he(R,1,"sh3-field__helper svelte-m4dkl",null,P,{"sh3-field__helper--error":a(c)}),z(L,a(u))}),k(D,R)};U(T,D=>{a(u)&&D(I)})}h(d),O(()=>{f=he(d,1,"sh3-field svelte-m4dkl",null,f,{"sh3-field--invalid":i(),"sh3-field--sm":o()==="sm"}),se(C,"type",r()),se(C,"placeholder",t.placeholder),C.disabled=s(),C.required=l(),se(C,"autocomplete",t.autocomplete),se(C,"aria-invalid",i()||void 0)}),K("input",C,()=>t.oninput?.(n())),Ue("blur",C,()=>t.onchange?.(n())),Te(C,n),k(e,d),ae()}pe(["input"]);var fS=A('<span aria-hidden="true">*</span>'),vS=A('<span class="sh3-textarea__label svelte-668c6r"> <!></span>'),hS=A("<span> </span>"),pS=A('<label><!> <textarea class="sh3-textarea__input svelte-668c6r"></textarea> <!></label>');function mS(e,t){ie(t,!0);let n=te(t,"value",15,""),r=te(t,"disabled",3,!1),s=te(t,"invalid",3,!1),i=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=F(()=>s()&&!!t.error),d=F(()=>a(u)?t.error:t.helper);var f=pS();let v;var m=p(f);{var x=y=>{var T=vS(),I=p(T,!0),D=w(I);{var R=P=>{var L=fS();k(P,L)};U(D,P=>{o()&&P(R)})}h(T),O(()=>z(I,t.label)),k(y,T)};U(m,y=>{t.label&&y(x)})}var g=w(m,2);Pl(g);let b;var C=w(g,2);{var _=y=>{var T=hS();let I;var D=p(T,!0);h(T),O(()=>{I=he(T,1,"sh3-textarea__helper svelte-668c6r",null,I,{"sh3-textarea__helper--error":a(u)}),z(D,a(d))}),k(y,T)};U(C,y=>{a(d)&&y(_)})}h(f),O(()=>{v=he(f,1,"sh3-textarea svelte-668c6r",null,v,{"sh3-textarea--invalid":s(),"sh3-textarea--sm":i()==="sm"}),se(g,"placeholder",t.placeholder),g.disabled=r(),g.required=o(),se(g,"rows",l()),se(g,"aria-invalid",s()||void 0),b=Ye(g,"",b,{resize:c()})}),K("input",g,()=>t.oninput?.(n())),Ue("blur",g,()=>t.onchange?.(n())),Te(g,n),k(e,f),ae()}pe(["input"]);function bS(e,t,n){let r=e;return t!==void 0&&r<t&&(r=t),n!==void 0&&r>n&&(r=n),r}function gS(e,t){const n=t.min??0,r=Math.round((e-n)/t.step);return n+r*t.step}var yS=A('<span class="sh3-num__label svelte-1qa0x3m"> </span>'),_S=A('<span class="sh3-num__affix svelte-1qa0x3m"><!></span>'),wS=A('<span class="sh3-num__affix svelte-1qa0x3m"><!></span>'),kS=A('<label><!> <span class="sh3-num__row svelte-1qa0x3m"><!> <input class="sh3-num__input svelte-1qa0x3m" type="number"/> <!> <span class="sh3-num__steppers svelte-1qa0x3m"><button type="button" aria-label="Increase" class="svelte-1qa0x3m">▲</button> <button type="button" aria-label="Decrease" class="svelte-1qa0x3m">▼</button></span></span></label>');function xS(e,t){ie(t,!0);let n=te(t,"value",15,0),r=te(t,"step",3,1),s=te(t,"disabled",3,!1),i=te(t,"invalid",3,!1),o=te(t,"size",3,"md");function l(E){if(Number.isNaN(E))return;let M=bS(gS(E,{min:t.min,step:r()}),t.min,t.max);t.precision!==void 0&&(M=Number(M.toFixed(t.precision))),n(M)}function c(E){l(n()+E*r()),t.oninput?.(n())}let u=null,d=null,f=!1;function v(E){s()||(f=!0,c(E),u=setTimeout(()=>{let M=0;d=setInterval(()=>{c(E),M+=60,M>1500&&d&&(clearInterval(d),d=setInterval(()=>c(E),20))},60)},350))}function m(){u&&(clearTimeout(u),u=null),d&&(clearInterval(d),d=null),f&&(f=!1,t.onchange?.(n()))}var x=kS();let g;var b=p(x);{var C=E=>{var M=yS(),j=p(M,!0);h(M),O(()=>z(j,t.label)),k(E,M)};U(b,E=>{t.label&&E(C)})}var _=w(b,2),y=p(_);{var T=E=>{var M=_S(),j=p(M);$t(j,()=>t.prefix),h(M),k(E,M)};U(y,E=>{t.prefix&&E(T)})}var I=w(y,2);xe(I);var D=w(I,2);{var R=E=>{var M=wS(),j=p(M);$t(j,()=>t.suffix),h(M),k(E,M)};U(D,E=>{t.suffix&&E(R)})}var P=w(D,2),L=p(P),N=w(L,2);h(P),h(_),h(x),O(()=>{g=he(x,1,"sh3-num svelte-1qa0x3m",null,g,{"sh3-num--invalid":i(),"sh3-num--sm":o()==="sm"}),se(I,"min",t.min),se(I,"max",t.max),se(I,"step",r()),I.disabled=s(),se(I,"aria-invalid",i()||void 0),js(I,n()),L.disabled=s(),N.disabled=s()}),K("input",I,E=>{const M=E.currentTarget.valueAsNumber;Number.isNaN(M)||(n(M),t.oninput?.(M))}),Ue("blur",I,()=>{l(n()),t.onchange?.(n())}),K("pointerdown",L,()=>v(1)),K("pointerup",L,m),Ue("pointerleave",L,m),K("pointerdown",N,()=>v(-1)),K("pointerup",N,m),Ue("pointerleave",N,m),k(e,x),ae()}pe(["input","pointerdown","pointerup"]);function Xa(e){return e.filter(t=>!t.disabled)}function SS(e,t){const n=Xa(e);if(n.length===0)return t;const r=n.findIndex(i=>i.value===t);return n[(r+1+n.length)%n.length].value}function IS(e,t){const n=Xa(e);if(n.length===0)return t;const r=n.findIndex(i=>i.value===t);return n[(r-1+n.length)%n.length].value}function ES(e){return Xa(e)[0]?.value}function AS(e){const t=Xa(e);return t[t.length-1]?.value}var CS=A('<button type="button" role="radio"> </button>'),TS=A('<div role="radiogroup" tabindex="-1"></div>');function Uh(e,t){ie(t,!0);let n=te(t,"value",31,()=>fe(t.options[0]?.value??"")),r=te(t,"size",3,"md"),s=te(t,"disabled",3,!1);function i(u){n(u),t.onchange?.(u)}function o(u){if(s())return;let d;switch(u.key){case"ArrowRight":case"ArrowDown":d=SS(t.options,n());break;case"ArrowLeft":case"ArrowUp":d=IS(t.options,n());break;case"Home":d=ES(t.options);break;case"End":d=AS(t.options);break;default:return}u.preventDefault(),d!==void 0&&i(d)}var l=TS();let c;be(l,21,()=>t.options,gt,(u,d)=>{var f=CS();let v;var m=p(f,!0);h(f),O(()=>{se(f,"aria-checked",n()===a(d).value),se(f,"tabindex",n()===a(d).value?0:-1),f.disabled=s()||a(d).disabled,v=he(f,1,"svelte-17xsko9",null,v,{"sh3-seg__btn--active":n()===a(d).value}),z(m,a(d).label)}),K("click",f,()=>{!a(d).disabled&&!s()&&i(a(d).value)}),k(u,f)}),h(l),O(()=>c=he(l,1,"sh3-seg svelte-17xsko9",null,c,{"sh3-seg--sm":r()==="sm"})),K("keydown",l,o),k(e,l),ae()}pe(["keydown","click"]);function RS(e,t){return e===t?"":t}function LS(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var MS=A('<button type="button"><!></button>'),PS=A('<div role="group"></div>');function DS(e,t){ie(t,!0);let n=te(t,"multiple",3,!1),r=te(t,"value",31,()=>fe(n()?[]:t.options[0]?.value??"")),s=te(t,"disabled",3,!1),i=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(LS(f,d))}else r(RS(typeof r()=="string"?r():"",d));t.onchange?.(r())}}var c=PS();let u;be(c,21,()=>t.options,gt,(d,f)=>{var v=MS();let m;var x=p(v);$t(x,()=>a(f).icon),h(v),O((g,b)=>{se(v,"title",a(f).tooltip),se(v,"aria-label",a(f).tooltip),se(v,"aria-pressed",g),v.disabled=s(),m=he(v,1,"svelte-13knxr5",null,m,b)},[()=>o(a(f).value),()=>({"sh3-itg__btn--active":o(a(f).value)})]),K("click",v,()=>l(a(f).value)),k(d,v)}),h(c),O(()=>u=he(c,1,"sh3-itg svelte-13knxr5",null,u,{"sh3-itg--sm":i()==="sm"})),k(e,c),ae()}pe(["click"]);function la(e,t,n){return n===t?0:(e-t)/(n-t)*100}var jS=A('<span class="sh3-slider__tick svelte-13va6lu"></span>'),zS=A('<output class="sh3-slider__value svelte-13va6lu"> </output>'),OS=A('<div><div class="sh3-slider__track svelte-13va6lu"><div class="sh3-slider__fill svelte-13va6lu"></div> <!></div> <input type="range" class="sh3-slider__native svelte-13va6lu"/> <!></div>');function Hh(e,t){ie(t,!0);let n=te(t,"value",15,0),r=te(t,"min",3,0),s=te(t,"max",3,100),i=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=F(()=>la(n(),r(),s()));var v=OS();let m;var x=p(v),g=p(x);let b;var C=w(g,2);{var _=D=>{var R=De(),P=ve(R);be(P,17,()=>t.ticks,gt,(L,N)=>{var E=jS();let M;O(j=>M=Ye(E,"",M,j),[()=>({"--tick-pct":`${la(a(N),r(),s())??""}%`})]),k(L,E)}),k(D,R)};U(C,D=>{t.ticks&&D(_)})}h(x);var y=w(x,2);xe(y);var T=w(y,2);{var I=D=>{var R=zS();let P;var L=p(R,!0);h(R),O(()=>{P=Ye(R,"",P,{"--pct":`${a(f)??""}%`}),z(L,n())}),k(D,R)};U(T,D=>{o()&&D(I)})}h(v),O(()=>{m=he(v,1,`sh3-slider sh3-slider--${d()??""}`,"svelte-13va6lu",m,{"sh3-slider--sm":u()==="sm","sh3-slider--invalid":c()}),b=Ye(g,"",b,{"--pct":`${a(f)??""}%`}),se(y,"min",r()),se(y,"max",s()),se(y,"step",i()),y.disabled=l(),se(y,"aria-invalid",c()||void 0)}),K("input",y,()=>t.oninput?.(n())),K("change",y,()=>t.onchange?.(n())),Te(y,n),k(e,v),ae()}pe(["input","change"]);function Vu(e,t,n){const[r,s]=e;return t==="low"?[Math.min(n,s),s]:[r,Math.max(n,r)]}var NS=A('<div><div class="sh3-range__track svelte-rdbrc5"><div class="sh3-range__fill svelte-rdbrc5"></div></div> <input type="range" class="sh3-range__native sh3-range__native--low svelte-rdbrc5"/> <input type="range" class="sh3-range__native sh3-range__native--high svelte-rdbrc5"/></div>');function qS(e,t){ie(t,!0);let n=te(t,"value",31,()=>fe([0,100])),r=te(t,"min",3,0),s=te(t,"max",3,100),i=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=F(()=>la(n()[0],r(),s())),d=F(()=>la(n()[1],r(),s()));function f(T){n(Vu(n(),"low",T)),t.oninput?.(n())}function v(T){n(Vu(n(),"high",T)),t.oninput?.(n())}var m=NS();let x;var g=p(m),b=p(g);let C;h(g);var _=w(g,2);xe(_);var y=w(_,2);xe(y),h(m),O(()=>{x=he(m,1,"sh3-range svelte-rdbrc5",null,x,{"sh3-range--sm":c()==="sm","sh3-range--invalid":l()}),C=Ye(b,"",C,{"--lo":`${a(u)??""}%`,"--hi":`${a(d)??""}%`}),se(_,"min",r()),se(_,"max",s()),se(_,"step",i()),_.disabled=o(),js(_,n()[0]),se(y,"min",r()),se(y,"max",s()),se(y,"step",i()),y.disabled=o(),js(y,n()[1])}),K("input",_,T=>f(parseFloat(T.currentTarget.value))),K("change",_,()=>t.onchange?.(n())),K("input",y,T=>v(parseFloat(T.currentTarget.value))),K("change",y,()=>t.onchange?.(n())),k(e,m),ae()}pe(["input","change"]);var BS=A('<div class="sh3-sg__channel svelte-1lqyi0d"><span class="sh3-sg__label svelte-1lqyi0d"> </span> <!></div>'),FS=A("<div></div>");function VS(e,t){ie(t,!0);let n=te(t,"orientation",3,"horizontal"),r=te(t,"values",31,()=>fe({})),s=te(t,"showValues",3,!1),i=te(t,"disabled",3,!1),o=te(t,"size",3,"md");var l=FS();be(l,21,()=>t.channels,c=>c.id,(c,u)=>{var d=BS(),f=p(d),v=p(f,!0);h(f);var m=w(f,2),x=()=>r()[a(u).id]??0,g=b=>r({...r(),[a(u).id]:b});{let b=F(()=>a(u).min??0),C=F(()=>a(u).max??100),_=F(()=>a(u).step??1);Hh(m,{get orientation(){return n()},get min(){return a(b)},get max(){return a(C)},get step(){return a(_)},get disabled(){return i()},get size(){return o()},get showValue(){return s()},get value(){return x()},set value(y){g(y)},oninput:()=>t.oninput?.(r()),onchange:()=>t.onchange?.(r())})}h(d),O(()=>z(v,a(u).label)),k(c,d)}),h(l),O(()=>he(l,1,`sh3-sg sh3-sg--${n()??""}`,"svelte-1lqyi0d")),k(e,l),ae()}var US=A('<span class="sh3-swatch__label svelte-6ri2j2"> </span>'),HS=A('<label><!> <button type="button" class="sh3-swatch__btn svelte-6ri2j2"><span class="sh3-swatch__dot svelte-6ri2j2"></span><span class="sh3-swatch__hex svelte-6ri2j2"> </span></button></label>');function Kh(e,t){ie(t,!0);let n=te(t,"value",15,"#000000"),r=te(t,"disabled",3,!1),s=te(t,"size",3,"md"),i;async function o(){if(r())return;const g=await Ct.color.pick({initial:n(),anchor:i});g!=null&&(n(g),t.onchange?.(g))}var l=HS();let c;var u=p(l);{var d=g=>{var b=US(),C=p(b,!0);h(b),O(()=>z(C,t.label)),k(g,b)};U(u,g=>{t.label&&g(d)})}var f=w(u,2);let v;var m=w(p(f)),x=p(m,!0);h(m),h(f),Ne(f,g=>i=g,()=>i),h(l),O(()=>{c=he(l,1,"sh3-swatch svelte-6ri2j2",null,c,{"sh3-swatch--sm":s()==="sm"}),f.disabled=r(),se(f,"aria-label",`${t.label??"Color"??""} (current ${n()??""})`),v=Ye(f,"",v,{"--swatch-color":n()}),z(x,n())}),K("click",f,o),k(e,l),ae()}pe(["click"]);function KS(e,t){return!e||e.length===0?t?[]:null:t?Array.from(e):e[0]}function WS(e){return e===null?"":Array.isArray(e)?e.length===0?"":e.length===1?e[0].name:`${e.length} files`:e.name}var YS=A('<label><input class="sh3-fp__native svelte-24jk95" type="file"/> <span class="sh3-fp__btn svelte-24jk95" tabindex="-1"> </span> <span class="sh3-fp__name svelte-24jk95"> </span></label>');function XS(e,t){ie(t,!0);let n=te(t,"value",15,null),r=te(t,"multiple",3,!1),s=te(t,"disabled",3,!1),i=te(t,"invalid",3,!1),o=te(t,"size",3,"md"),l=te(t,"buttonLabel",3,"Choose file...");function c(C){const _=C.currentTarget;n(KS(_.files,r())),t.onchange?.(n())}const u=F(()=>WS(n()));var d=YS();let f;var v=p(d),m=w(v,2),x=p(m,!0);h(m);var g=w(m,2),b=p(g,!0);h(g),h(d),O(()=>{f=he(d,1,"sh3-fp svelte-24jk95",null,f,{"sh3-fp--sm":o()==="sm","sh3-fp--invalid":i()}),se(v,"accept",t.accept),v.multiple=r(),v.disabled=s(),z(x,l()),z(b,a(u)||"no file")}),K("change",v,c),k(e,d),ae()}pe(["change"]);const GS=8;function JS(e){return e.length>=GS}function ZS(e,t){if(!t)return e.slice();const n=t.toLowerCase();return e.filter(r=>r.label.toLowerCase().includes(n))}function QS(e,t,n){if(!t)return-1;const r=t.toLowerCase(),s=e.length;for(let i=1;i<=s;i++){const o=(n+i)%s;if(!e[o].disabled&&e[o].label.toLowerCase().startsWith(r))return o}return-1}function $S(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 e3(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var t3=A('<input class="sh3-listbox__search svelte-1tyxvrs" type="search" placeholder="Filter…"/>'),n3=A('<span aria-hidden="true"></span>'),r3=A('<div role="option" tabindex="-1"><!> <span class="sh3-listbox__label"> </span></div>'),s3=A('<div class="sh3-listbox__empty svelte-1tyxvrs">No matches</div>'),i3=A('<div class="sh3-listbox svelte-1tyxvrs" role="listbox" tabindex="-1"><!> <div class="sh3-listbox__list svelte-1tyxvrs"><!> <!></div></div>');function a3(e,t){ie(t,!0);const n=F(()=>t.getValue());function r(){t.onClose?.(),t.close()}const s=F(()=>JS(t.options));function i(){if(t.multiple)return 0;const P=typeof a(n)=="string"?a(n):"",L=t.options.findIndex(N=>N.value===P&&!N.disabled);return L>=0?L:0}let o=V(""),l=V(fe(i())),c=V(void 0),u=V(void 0),d="",f=null;const v=F(()=>ZS(t.options,a(o)));Se(()=>{a(l)>=a(v).length&&S(l,0),m()});async function m(){if(await si(),!a(c))return;a(c).querySelector(`[data-idx="${a(l)}"]`)?.scrollIntoView({block:"nearest"})}function x(P){return t.multiple&&Array.isArray(a(n))?a(n).includes(P.value):a(n)===P.value}function g(P){const L=a(v)[P];!L||L.disabled||(t.onSelect(L.value),t.multiple||r())}function b(P){if(a(v).length!==0)switch(P.key){case"ArrowDown":P.preventDefault(),S(l,(a(l)+1)%a(v).length);break;case"ArrowUp":P.preventDefault(),S(l,(a(l)-1+a(v).length)%a(v).length);break;case"Home":P.preventDefault(),S(l,0);break;case"End":P.preventDefault(),S(l,a(v).length-1);break;case"Enter":P.preventDefault(),g(a(l));break;case" ":case"Space":P.preventDefault(),g(a(l));break;case"Escape":P.preventDefault(),r();break;default:if(a(s)&&document.activeElement===a(u)||P.key.length!==1||P.metaKey||P.ctrlKey||P.altKey)return;d+=P.key,f&&clearTimeout(f),f=setTimeout(()=>{d=""},500);const L=QS(a(v),d,a(l));L>=0&&S(l,L,!0)}}var C=i3(),_=p(C);{var y=P=>{var L=t3();xe(L),Ne(L,N=>S(u,N),()=>a(u)),Te(L,()=>a(o),N=>S(o,N)),k(P,L)};U(_,P=>{a(s)&&P(y)})}var T=w(_,2),I=p(T);be(I,17,()=>a(v),gt,(P,L,N)=>{var E=r3();se(E,"data-idx",N);let M;var j=p(E);{var B=G=>{var Z=n3();let Q;O(Y=>Q=he(Z,1,"sh3-listbox__check svelte-1tyxvrs",null,Q,Y),[()=>({"sh3-listbox__check--on":x(a(L))})]),k(G,Z)};U(j,G=>{t.multiple&&G(B)})}var W=w(j,2),ee=p(W,!0);h(W),h(E),O((G,Z)=>{se(E,"aria-selected",G),se(E,"aria-disabled",a(L).disabled),M=he(E,1,"svelte-1tyxvrs",null,M,Z),z(ee,a(L).label)},[()=>x(a(L)),()=>({"sh3-listbox__opt--active":N===a(l),"sh3-listbox__opt--selected":x(a(L))})]),K("click",E,()=>g(N)),Ue("mouseenter",E,()=>S(l,N,!0)),k(P,E)});var D=w(I,2);{var R=P=>{var L=s3();k(P,L)};U(D,P=>{a(v).length===0&&P(R)})}h(T),Ne(T,P=>S(c,P),()=>a(c)),h(C),O(()=>se(C,"aria-multiselectable",t.multiple)),K("keydown",C,b),k(e,C),ae()}pe(["keydown","click"]);var o3=A('<span class="sh3-select__label svelte-1q3zxph"> </span>'),l3=A("<option> </option>"),c3=A('<label><!> <button type="button" class="sh3-select__btn svelte-1q3zxph" aria-haspopup="listbox"><span> </span> <span class="sh3-select__chevron svelte-1q3zxph" aria-hidden="true">▾</span></button> <select class="sh3-select__native svelte-1q3zxph" aria-hidden="true"></select></label>');function u3(e,t){ie(t,!0);let n=te(t,"multiple",3,!1),r=te(t,"value",31,()=>fe(n()?[]:"")),s=te(t,"placeholder",3,"Select…"),i=te(t,"disabled",3,!1),o=te(t,"invalid",3,!1),l=te(t,"size",3,"md"),c=V(void 0),u=V(void 0),d=V(!1);const f=F(()=>$S(t.options,r(),n()));function v(){S(d,!1),a(c)?.focus()}async function m(){if(i()||a(d)||!a(c))return;S(d,!0);const L=Ct.popup.show(a3,{anchor:a(c)},{options:t.options,getValue:()=>r(),multiple:n(),onSelect:M=>{if(n()){const j=Array.isArray(r())?r():[];r(e3(j,M))}else r(M);t.onchange?.(r())},onClose:v}),N=L.close;L.close=()=>{N(),v()},await si(),document.querySelector(".sh3-listbox")?.focus()}function x(L){if(!(i()||a(d)))switch(L.key){case"ArrowDown":case"ArrowUp":case"Enter":case" ":L.preventDefault(),m();break}}function g(){a(u)&&(n()?r(Array.from(a(u).selectedOptions).map(L=>L.value)):r(a(u).value),t.onchange?.(r()))}var b=c3();let C;var _=p(b);{var y=L=>{var N=o3(),E=p(N,!0);h(N),O(()=>z(E,t.label)),k(L,N)};U(_,L=>{t.label&&L(y)})}var T=w(_,2),I=p(T);let D;var R=p(I,!0);h(I),zt(2),h(T),Ne(T,L=>S(c,L),()=>a(c));var P=w(T,2);se(P,"tabindex",-1),be(P,21,()=>t.options,gt,(L,N)=>{var E=l3(),M=p(E,!0);h(E);var j={};O(B=>{Wl(E,B),z(M,a(N).label),j!==(j=a(N).value)&&(E.value=(E.__value=a(N).value)??"")},[()=>n()?Array.isArray(r())&&r().includes(a(N).value):r()===a(N).value]),k(L,E)}),h(P),Ne(P,L=>S(u,L),()=>a(u)),h(b),O(()=>{C=he(b,1,"sh3-select svelte-1q3zxph",null,C,{"sh3-select--invalid":o(),"sh3-select--sm":l()==="sm"}),T.disabled=i(),se(T,"aria-expanded",a(d)),D=he(I,1,"sh3-select__display svelte-1q3zxph",null,D,{"sh3-select__display--placeholder":!a(f)}),z(R,a(f)||s()),P.multiple=n(),P.disabled=i()}),K("click",T,m),K("keydown",T,x),K("change",P,g),k(e,b),ae()}pe(["click","keydown","change"]);function d3(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 f3(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var v3=A('<input type="search" class="sh3-picker__search svelte-1rlwvrb" placeholder="Filter…"/>'),h3=A('<p class="sh3-picker__status svelte-1rlwvrb">Loading…</p>'),p3=A('<button type="button" class="sh3-picker__retry svelte-1rlwvrb">Retry</button>'),m3=A('<p class="sh3-picker__status sh3-picker__status--error svelte-1rlwvrb"> </p> <!>',1),b3=A('<p class="sh3-picker__status svelte-1rlwvrb"> </p>'),g3=A('<span class="sh3-picker__row-sub svelte-1rlwvrb"> </span>'),y3=A('<label class="sh3-picker__row svelte-1rlwvrb"><input type="checkbox"/> <span class="sh3-picker__row-text svelte-1rlwvrb"><span class="sh3-picker__row-label svelte-1rlwvrb"> </span> <!></span></label>'),_3=A('<div><!> <div class="sh3-picker__list svelte-1rlwvrb"><!></div> <p class="sh3-picker__footer svelte-1rlwvrb"> </p></div>');function Wh(e,t){ie(t,!0);let n=te(t,"value",31,()=>fe([])),r=te(t,"loading",3,!1),s=te(t,"error",3,null),i=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=V("");const d=F(()=>t.items.length>=o()),f=F(()=>d3(t.items,a(u))),v=F(()=>t.items.length),m=F(()=>n().length);function x(E){if(l())return;const M=f3(n(),E);n(M),t.onchange?.(M)}var g=_3();let b;var C=p(g);{var _=E=>{var M=v3();xe(M),O(()=>M.disabled=l()),Te(M,()=>a(u),j=>S(u,j)),k(E,M)};U(C,E=>{a(d)&&E(_)})}var y=w(C,2),T=p(y);{var I=E=>{var M=h3();k(E,M)},D=E=>{var M=m3(),j=ve(M),B=p(j,!0);h(j);var W=w(j,2);{var ee=G=>{var Z=p3();K("click",Z,()=>t.onRetry?.()),k(G,Z)};U(W,G=>{t.onRetry&&G(ee)})}O(()=>z(B,s())),k(E,M)},R=E=>{var M=b3(),j=p(M,!0);h(M),O(()=>z(j,i())),k(E,M)},P=E=>{var M=De(),j=ve(M);be(j,17,()=>a(f),B=>B.id,(B,W)=>{var ee=y3(),G=p(ee);xe(G);var Z=w(G,2),Q=p(Z),Y=p(Q,!0);h(Q);var J=w(Q,2);{var q=H=>{var $=g3(),X=p($,!0);h($),O(()=>z(X,a(W).sublabel)),k(H,$)};U(J,H=>{a(W).sublabel&&H(q)})}h(Z),h(ee),O(H=>{Kl(G,H),G.disabled=l(),z(Y,a(W).label)},[()=>n().includes(a(W).id)]),K("change",G,()=>x(a(W).id)),k(B,ee)}),k(E,M)};U(T,E=>{r()?E(I):s()?E(D,1):t.items.length===0?E(R,2):E(P,-1)})}h(y);var L=w(y,2),N=p(L);h(L),h(g),O(()=>{b=he(g,1,"sh3-picker svelte-1rlwvrb",null,b,{"sh3-picker--sm":c()==="sm","sh3-picker--disabled":l()}),z(N,`${a(m)??""} of ${a(v)??""} selected`)}),k(e,g),ae()}pe(["click","change"]);function Yh(e,t){ie(t,!0);const n=new Set(["sh3-admin-app","sh3-store-app"]);let r=te(t,"value",31,()=>fe([])),s=te(t,"disabled",3,!1),i=te(t,"size",3,"md");const o=F(()=>ls().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)}Wh(e,{get items(){return a(o)},get value(){return r()},onchange:l,get disabled(){return s()},get size(){return i()},emptyText:"No apps installed."}),ae()}const Yt=fe({users:[],loading:!1,error:null});let bs=null;function Uu(){return bs||(Yt.loading=!0,Yt.error=null,bs=(async()=>{try{const e=await fetch("/api/admin/users",{credentials:"include"});if(!e.ok){Yt.error=`GET /api/admin/users failed: ${e.status}`;return}Yt.users=await e.json()}catch(e){Yt.error=e.message}finally{Yt.loading=!1,bs=null}})(),bs)}function Xh(e,t){ie(t,!0);let n=te(t,"value",31,()=>fe([])),r=te(t,"disabled",3,!1),s=te(t,"size",3,"md");Yt.users.length===0&&!Yt.loading&&!Yt.error&&Uu();const i=F(()=>Yt.users.map(l=>({id:l.id,label:l.displayName||l.username,sublabel:l.username})));function o(l){n(l),t.onchange?.(l)}Wh(e,{get items(){return a(i)},get value(){return n()},onchange:o,get loading(){return Yt.loading},get error(){return Yt.error},onRetry:()=>void Uu(),emptyText:"No users found.",get disabled(){return r()},get size(){return s()}}),ae()}const w3=/^[a-zA-Z0-9.\-_]+$/,k3=/^[a-zA-Z0-9.\-_]*$/;function ca(e,t){if(e.length===0)throw new Error(`fieldAddress: ${t} is empty`);if(!w3.test(e))throw new Error(`fieldAddress: invalid ${t} "${e}" (must match [a-zA-Z0-9.\\-_]+)`)}function Gh(e){if(!k3.test(e))throw new Error(`fieldAddress: invalid slotId "${e}"`)}function x3(e){return ca(e.shardId,"shardId"),ca(e.fieldId,"fieldId"),e.slotId!==void 0&&Gh(e.slotId),`${e.shardId}::${e.slotId??""}::${e.fieldId}`}function S3(e){const t=e.split("::");if(t.length!==3)throw new Error(`fieldAddress: malformed "${e}" (expected three ::-separated parts)`);const[n,r,s]=t;ca(n,"shardId"),ca(s,"fieldId"),Gh(r);const i={shardId:n,fieldId:s};return r.length>0&&(i.slotId=r),i}const I3={hotInstall:typeof Blob<"u"&&typeof URL.createObjectURL=="function"},Jh=["__sh3core__","shell","sh3-store","sh3-admin"],Zh=Object.freeze(Object.defineProperty({__proto__:null,AppPicker:Yh,Button:Un,COLOR_PICKER_POINT:kv,CONFLICT_RENDERER_POINT:yv,Collapsible:sS,ColorSwatch:Kh,ConflictPermissionError:_v,ConflictSessionOrphanedError:B1,ConsentDeniedError:jh,FRAMEWORK_SHARD_IDS:Jh,Field:dS,FilePicker:XS,IconToggleGroup:DS,NumberInput:xS,PERMISSION_DOCUMENTS_BROWSE:Rh,PERMISSION_DOCUMENTS_READ:Lh,PERMISSION_DOCUMENTS_WRITE:Mh,PERMISSION_KEYS_MINT:Ph,PERMISSION_STATE_MANAGE:zs,PERMISSION_SYNC_PEER:_x,PERMISSION_SYNC_POLICY:wx,RangeSlider:qS,SHELL_MODE_CONTRIBUTION_POINT:Rs,ScopeEscalationError:Dh,Segmented:Uh,Select:u3,Slider:Hh,SliderGroup:VS,Textarea:mS,UserPicker:Xh,VERSION:bn,activeShards:_r,buildPackageMeta:Ya,capabilities:I3,clearTokenOverrides:Xx,closeTab:gc,collapseChild:R0,dockFloat:fh,dockIntoActiveLayout:_c,erroredShards:aa,expandChild:L0,fetchBundle:Wa,fetchRegistries:qh,fieldAddressFromString:S3,fieldAddressToString:x3,focusTab:T0,focusView:Oa,getActiveApp:Jl,getAuthHeader:Fa,getIconSprite:Vh,getTokenOverrides:Bh,getUser:$r,inspectActiveLayout:lh,isAdmin:It,isAuthenticated:il,isGuest:yh,launchApp:Nn,listRegisteredApps:ls,listVerbs:oc,locateSlot:mh,popoutView:dh,provideIcons:Jx,pushNavEntry:uw,registerConsentListener:zh,registerShellMode:Wx,registeredShards:tn,resolveConsent:ul,returnToHome:ds,runVerbProgrammatic:kh,setTokenOverrides:Yx,sh3:Ct,spawnSatellite:Ka,spliceIntoActiveLayout:C0,subscribeKeyRevocation:Sc,unregisterApp:bc,validateRegistryIndex:Nh},Symbol.toStringTag,{value:"Module"})),E3="/assets/SH3-BG5NVpSD.png",A3="https://cdn.jsdelivr.net/npm/p5@1.11.13/lib/p5.min.js";let gs=null;function C3(){return gs||(gs=new Promise((e,t)=>{const n=window.p5;if(n){e(n);return}const r=document.createElement("script");r.src=A3,r.async=!0,r.onload=()=>e(window.p5),r.onerror=s=>{gs=null,t(s)},document.head.appendChild(r)}),gs)}var T3=A('<h1 class="sh3-title-fallback svelte-foqg2v">SH3</h1>'),R3=A('<div class="sh3-title svelte-foqg2v"></div>');function L3(e,t){ie(t,!0);const n="`.-':;,^\"~=+<>*?!/\\|()[]{}x1ltzrcvunsXYUJCLQ0OZmwqpdbkhao*#MW&8%B@$",r=64,s=Math.floor(64/(442/193)),i=8,o=7,l=80,c=r*i,u=s*o,d=l/u;let f=V(void 0),v=null,m=V(!1);const x=()=>y=>{const I=getComputedStyle(document.documentElement).getPropertyValue("--sh3-accent").trim();let D,R,P=!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),R=y.loadImage(E3,()=>{D=y.createGraphics(r,s),D.pixelDensity(1),D.image(R,0,0,r,s),D.loadPixels(),P=!0},()=>{S(m,!0)})},y.draw=()=>{if(!P)return;const L=y.millis()*.001;let N;y.clear(),y.background(0,0),y.fill(I);for(let E=0;E<s;E++)for(let M=0;M<r;M++){const j=(E*r+M)*4;if(D.pixels[j]<64){if(N=y.noise(M/r*2,E/s*2,L*.15),N>.33)continue;y.text(n[Math.floor(N*n.length*.25)],(M+.5)*i,(E+.5)*o);continue}N=y.noise(M/r*4,E/s*4,L*.5),y.text(n[Math.floor(N*n.length)],(M+.5)*i,(E+.5)*o)}}};Se(()=>{if(a(m))return;let y=!1;return C3().then(T=>{if(!(y||!a(f)))try{v=new T(x(),a(f))}catch(I){console.error("[Sh3Title] p5 sketch failed to start",I),S(m,!0)}}).catch(T=>{console.error("[Sh3Title] failed to load p5 from CDN",T),S(m,!0)}),()=>{y=!0,v&&(v.remove(),v=null)}});var g=De(),b=ve(g);{var C=y=>{var T=T3();k(y,T)},_=y=>{var T=R3();Ye(T,"",{},{width:"216.7195767195767px",height:"80px","--sh3-title-scale":d}),Ne(T,I=>S(f,I),()=>a(f)),k(y,T)};U(b,y=>{a(m)?y(C):y(_,-1)})}k(e,g),ae()}async function Cr(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 Oi={async list(){return(await Cr("/api/projects",{method:"GET"})).projects},async listAll(){return(await Cr("/api/projects/all",{method:"GET"})).projects},async get(e){return Cr(`/api/projects/${encodeURIComponent(e)}`,{method:"GET"})},async create(e){return Cr("/api/projects",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e)})},async update(e,t){return Cr(`/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 Cr(`/api/projects/${encodeURIComponent(e)}${n}`,{method:"DELETE"})}};var M3=A(`<div class="delete-project-dialog svelte-6j13aq"><div class="delete-project-dialog__title svelte-6j13aq"> </div> <div class="delete-project-dialog__body svelte-6j13aq">The project record will be removed and any members will lose access.
9
+ Documents already written under the project's namespace remain on disk
10
+ unless you tick the option below.</div> <label class="delete-project-dialog__opt svelte-6j13aq"><input type="checkbox" class="svelte-6j13aq"/> <span>Also delete project files <code class="delete-project-dialog__path svelte-6j13aq"> </code></span></label> <div class="delete-project-dialog__actions svelte-6j13aq"><button type="button" class="delete-project-dialog__btn svelte-6j13aq" data-delete-project-cancel="">Cancel</button> <button type="button" class="delete-project-dialog__btn delete-project-dialog__btn--danger svelte-6j13aq" data-delete-project-confirm="">Delete</button></div></div>`);function P3(e,t){ie(t,!0);let n=V(void 0),r=V(!1),s=V(!1);Se(()=>{a(n)?.focus()});async function i(){if(!a(r)){S(r,!0);try{await t.onConfirm({wipeData:a(s)})}finally{t.close()}}}function o(){a(r)||(t.onCancel?.(),t.close())}var l=M3(),c=p(l),u=p(c);h(c);var d=w(c,4),f=p(d);xe(f);var v=w(f,2),m=w(p(v)),x=p(m);h(m),h(v),h(d);var g=w(d,2),b=p(g);Ne(b,_=>S(n,_),()=>a(n));var C=w(b,2);h(g),h(l),O(()=>{z(u,`Delete project '${t.projectName??""}'?`),f.disabled=a(r),z(x,`<dataDir>/docs/${t.projectId??""}/`),b.disabled=a(r),C.disabled=a(r)}),As(f,()=>a(s),_=>S(s,_)),K("click",b,o),K("click",C,i),k(e,l),ae()}pe(["click"]);var D3=A('<p class="project-id svelte-1oy3640">ID: <code class="svelte-1oy3640"> </code></p>'),j3=A('<span class="hint svelte-1oy3640">Your id: <code class="svelte-1oy3640"> </code> </span>'),z3=A('<p class="error svelte-1oy3640"> </p>'),O3=A('<button type="button" class="danger svelte-1oy3640">Delete</button>'),N3=A('<div class="project-manage svelte-1oy3640"><div class="body svelte-1oy3640"><h2 class="svelte-1oy3640"> </h2> <!> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">Name</span> <input type="text" placeholder="Acme Website" class="svelte-1oy3640"/></label> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">Description</span> <textarea class="svelte-1oy3640"></textarea></label> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">Members</span> <!> <!></label> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">App allowlist</span> <!></label> <!></div> <div class="actions svelte-1oy3640"><button type="button" class="primary svelte-1oy3640"> </button> <button type="button" class="svelte-1oy3640">Cancel</button> <!></div></div>');function q3(e,t){ie(t,!0);let n=te(t,"project",3,null);const r=F(()=>n()!==null),s=F($r);let i=V(fe(ke(()=>n()?.name??""))),o=V(fe(ke(()=>n()?.description??""))),l=V(fe(ke(()=>{if(n())return[...n().members];const J=$r()?.id;return J?[J]:[]}))),c=V(fe(ke(()=>n()?[...n().appAllowlist]:[]))),u=V(!1),d=V(null);async function f(){if(!a(i).trim()){S(d,"Name is required");return}S(u,!0),S(d,null);const J={name:a(i).trim(),description:a(o).trim()||void 0,members:a(l),appAllowlist:a(c)};try{a(r)&&n()?await Oi.update(n().id,J):await Oi.create(J),await ua(),t.onClose()}catch(q){S(d,q.message,!0)}finally{S(u,!1)}}function v(){if(!a(r)||!n())return;const J=n();nn.open(P3,{projectName:J.name,projectId:J.id,onConfirm:async({wipeData:q})=>{S(u,!0),S(d,null);try{await Oi.delete(J.id,{wipeData:q}),await ua(),t.onClose()}catch(H){S(d,H.message,!0)}finally{S(u,!1)}}})}var m=N3(),x=p(m),g=p(x),b=p(g,!0);h(g);var C=w(g,2);{var _=J=>{var q=D3(),H=w(p(q)),$=p(H,!0);h(H),h(q),O(()=>z($,n().id)),k(J,q)};U(C,J=>{a(r)&&J(_)})}var y=w(C,2),T=w(p(y),2);xe(T),h(y);var I=w(y,2),D=w(p(I),2);Pl(D),se(D,"rows",2),h(I);var R=w(I,2),P=w(p(R),2);Xh(P,{get disabled(){return a(u)},get value(){return a(l)},set value(J){S(l,J,!0)}});var L=w(P,2);{var N=J=>{var q=j3(),H=w(p(q)),$=p(H,!0);h(H);var X=w(H);h(q),O(()=>{z($,a(s).id),z(X,` (${a(s).username??a(s).displayName??""})`)}),k(J,q)};U(L,J=>{a(s)&&J(N)})}h(R);var E=w(R,2),M=w(p(E),2);Yh(M,{get disabled(){return a(u)},get value(){return a(c)},set value(J){S(c,J,!0)}}),h(E);var j=w(E,2);{var B=J=>{var q=z3(),H=p(q,!0);h(q),O(()=>z(H,a(d))),k(J,q)};U(j,J=>{a(d)&&J(B)})}h(x);var W=w(x,2),ee=p(W),G=p(ee,!0);h(ee);var Z=w(ee,2),Q=w(Z,2);{var Y=J=>{var q=O3();O(()=>q.disabled=a(u)),K("click",q,v),k(J,q)};U(Q,J=>{a(r)&&J(Y)})}h(W),h(m),O(()=>{z(b,a(r)?`Edit ${n().name}`:"Create Project"),T.disabled=a(u),D.disabled=a(u),ee.disabled=a(u),z(G,a(r)?"Save":"Create"),Z.disabled=a(u)}),Te(T,()=>a(i),J=>S(i,J)),Te(D,()=>a(o),J=>S(o,J)),K("click",ee,f),K("click",Z,function(...J){t.onClose?.apply(this,J)}),k(e,m),ae()}pe(["click"]);const Xt=fe({projects:[],loading:!1,error:null});async function ua(){Xt.loading=!0,Xt.error=null;try{Xt.projects=await Oi.list()}catch(e){Xt.error=e.message}finally{Xt.loading=!1}}const dl="projects:manage";let fl=null;function B3(){const e=fl;return fl=null,e}function vl(e){fl=e,Pe.open(dl,{title:e?`Edit ${e.name}`:"Create Project",size:{w:560,h:620},dismissable:!0})}const Qh={manifest:{id:"__projects__",label:"Projects",version:bn,views:[{id:dl,label:"Project Manager"}]},activate(e){ua(),typeof document<"u"&&document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&ua()});const t={mount(r,s){const i=B3(),o=Pe.list(),l=o.length>0?o[o.length-1].id:null,u=Ve(q3,{target:r,props:{project:i,onClose:()=>{l&&Pe.close(l)}}});return{unmount(){et(u)}}}};e.registerView(dl,t),e.actions.register({id:"sh3.project.create",label:"Create Project…",scope:["home","app"],paletteItem:!0,disabled:()=>!It(),run:()=>{It()&&vl(null)}}),e.actions.register({id:"sh3.project.manage",label:"Manage Project…",scope:["home","app"],submenu:!0,paletteItem:!0,disabled:()=>!It()});const n=new Map;is(()=>{Se(()=>{const r=new Set;for(const s of Xt.projects){if(r.add(s.id),n.has(s.id))continue;const i=e.actions.register({id:`sh3.project.manage:${s.id}`,label:s.name,scope:["home","app"],submenuOf:"sh3.project.manage",run:()=>{const o=Xt.projects.find(l=>l.id===s.id);o&&vl(o)}});n.set(s.id,i)}for(const s of[...n.keys()])r.has(s)||(n.get(s)(),n.delete(s))})})},autostart(){}};var F3=A('<button type="button" class="project-card-edit svelte-yosqc3" aria-label="Edit project" title="Edit project">⚙</button>'),V3=A('<div class="project-card-wrap svelte-yosqc3"><button type="button"><span class="project-name svelte-yosqc3"> </span> <span class="project-meta svelte-yosqc3"> </span></button> <!></div>'),U3=A('<section class="projects-section svelte-yosqc3"><h2 class="projects-heading svelte-yosqc3">Projects</h2> <div class="projects-grid svelte-yosqc3"></div></section>');function H3(e,t){ie(t,!0);const n=F(()=>Xt.projects.length>0),r=F(()=>yr.activeProjectId),s=F(It);function i(d){ah(a(r)===d?null:d)}function o(d,f){f.stopPropagation();const v=Xt.projects.find(m=>m.id===d)??null;v&&vl(v)}var l=De(),c=ve(l);{var u=d=>{var f=U3(),v=w(p(f),2);be(v,21,()=>Xt.projects,m=>m.id,(m,x)=>{var g=V3(),b=p(g);let C;var _=p(b),y=p(_,!0);h(_);var T=w(_,2),I=p(T);h(T),h(b);var D=w(b,2);{var R=P=>{var L=F3();K("click",L,N=>o(a(x).id,N)),k(P,L)};U(D,P=>{a(s)&&P(R)})}h(g),O(()=>{C=he(b,1,"project-card svelte-yosqc3",null,C,{active:a(r)===a(x).id}),se(b,"title",a(x).description??`${a(x).members.length} member${a(x).members.length===1?"":"s"}`),z(y,a(x).name),z(I,`${a(x).members.length??""} member${a(x).members.length===1?"":"s"}`)}),K("click",b,()=>i(a(x).id)),k(m,g)}),h(v),h(f),k(d,f)};U(c,d=>{a(n)&&d(u)})}k(e,l),ae()}pe(["click"]);let kt=null;function K3(e){kt=e}function W3(){kt=null}function wr(){return kt?.user.layouts??[]}function Y3(e){kt&&(kt.user.layouts=[...kt.user.layouts,e])}function $h(e,t){if(!kt)return;const n=kt.user.layouts.findIndex(s=>s.id===e);if(n<0)return;const r=[...kt.user.layouts];r[n]={...r[n],...t},kt.user.layouts=r}function X3(e){kt&&(kt.user.layouts=kt.user.layouts.filter(t=>t.id!==e))}function G3(){kt={ephemeral:{},session:{},workspace:{},user:{layouts:[]}}}G3();function Ga(e,t){if(e.type==="slot")return e.viewId===null||!t(e.viewId)?null:e;if(e.type==="tabs"){const s=[];let i=!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&&(i=!0,o=s.length),s.push(c))}return s.length===0?null:{type:"tabs",tabs:s,activeTab:i?o:0}}const n=[],r=[];for(let s=0;s<e.children.length;s++){const i=Ga(e.children[s],t);i!==null&&(n.push(i),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 ep(e){return JSON.parse(JSON.stringify(e))}function J3(e,t){const n=Pe.list().find(s=>s.id===e);if(!n)return null;const r=Ga(n.content,t);return r===null?null:{size:{w:n.size.w,h:n.size.h},content:ep(r)}}function tp(e,t,n){const r=Ga(e.content,t);return r===null?(n(`Saved layout "${e.name}" has no available standalone views`,"warn"),""):Pe.openWithContent({content:ep(r),size:{w:e.size.w,h:e.size.h},title:e.name})}var Z3=A('<button type="button" data-sh3-scope="element:saved-layout"><span class="saved-layout-card-square svelte-1ncltuf"><svg class="saved-layout-card-icon svelte-1ncltuf"><use></use></svg></span> <span class="saved-layout-card-label svelte-1ncltuf"> </span></button>'),Q3=A('<section class="saved-layouts-section svelte-1ncltuf"><h2 class="saved-layouts-heading svelte-1ncltuf">Saved Layouts</h2> <div class="saved-layouts-grid svelte-1ncltuf"></div></section>');function $3(e,t){ie(t,!0);const n=F(wr),r=Ma("__layouts__");function s(f){return Hs().some(v=>v.viewId===f)}function i(f,v){Sn.notify(f,{level:v})}function o(f){const v=wr().find(m=>m.id===f);v&&tp(v,s,i)}function l(f,v){f.preventDefault(),r.set({type:"saved-layout",ref:{layoutId:v}}),Ct.actions.openContextMenu({x:f.clientX,y:f.clientY,scope:{element:"saved-layout"}})}var c=De(),u=ve(c);{var d=f=>{var v=Q3(),m=w(p(v),2);be(m,21,()=>a(n),x=>x.id,(x,g)=>{var b=Z3();let C,_;var y=p(b),T=p(y),I=p(T);h(T),h(y);var D=w(y,2),R=p(D,!0);h(D),h(b),O(()=>{C=he(b,1,"saved-layout-card svelte-1ncltuf",null,C,{"saved-layout-card--tinted":a(g).appearance?.color}),se(b,"data-saved-layout-id",a(g).id),_=Ye(b,"",_,{"--card-color":a(g).appearance?.color??"transparent"}),se(I,"href",`${Jn}#${a(g).appearance?.icon??"eye"??""}`),z(R,a(g).name)}),K("click",b,()=>o(a(g).id)),K("contextmenu",b,P=>l(P,a(g).id)),k(x,b)}),h(m),h(v),k(f,v)};U(u,f=>{a(n).length>0&&f(d)})}k(e,c),ae()}pe(["click","contextmenu"]);const Hu=["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=A('<span class="sh3-icon-picker__label svelte-h9dluc"> </span>'),tI=A('<button type="button"><svg viewBox="0 0 24 24" class="svelte-h9dluc"><use></use></svg></button>'),nI=A('<div><!> <input type="search" placeholder="Search icons…" aria-label="Filter icons" class="svelte-h9dluc"/> <div class="sh3-icon-picker__grid svelte-h9dluc"><button type="button" aria-label="No icon">×</button> <!></div></div>');function rI(e,t){ie(t,!0);let n=te(t,"value",15,void 0),r=te(t,"disabled",3,!1),s=V("");const i=F(()=>a(s).trim()===""?Hu:Hu.filter(b=>b.includes(a(s).trim().toLowerCase())));function o(b){r()||(n(b),t.onchange?.(b))}var l=nI();let c;var u=p(l);{var d=b=>{var C=eI(),_=p(C,!0);h(C),O(()=>z(_,t.label)),k(b,C)};U(u,b=>{t.label&&b(d)})}var f=w(u,2);xe(f);var v=w(f,2),m=p(v);let x;var g=w(m,2);be(g,16,()=>a(i),b=>b,(b,C)=>{var _=tI();let y;var T=p(_),I=p(T);h(T),h(_),O(()=>{y=he(_,1,"sh3-icon-picker__tile svelte-h9dluc",null,y,{"sh3-icon-picker__tile--selected":n()===C}),se(_,"aria-label",C),se(_,"title",C),_.disabled=r(),se(I,"href",`${Jn}#${C??""}`)}),K("click",_,()=>o(C)),k(b,_)}),h(v),h(l),O(()=>{c=he(l,1,"sh3-icon-picker svelte-h9dluc",null,c,{"sh3-icon-picker--disabled":r()}),f.disabled=r(),x=he(m,1,"sh3-icon-picker__tile sh3-icon-picker__tile--none svelte-h9dluc",null,x,{"sh3-icon-picker__tile--selected":n()===void 0}),m.disabled=r()}),Te(f,()=>a(s),b=>S(s,b)),K("click",m,()=>o(void 0)),k(e,l),ae()}pe(["click"]);var sI=A('<em class="svelte-1v8d4f6">(empty = default)</em>'),iI=A('<button type="button" class="link svelte-1v8d4f6">Change icon</button>'),aI=A('<!> <button type="button" class="link link--align-right svelte-1v8d4f6">Hide picker</button>',1),oI=A('<div class="app-appearance svelte-1v8d4f6"><h2 class="svelte-1v8d4f6"> </h2> <div class="preview svelte-1v8d4f6"><div><span class="preview-card-square svelte-1v8d4f6"><svg class="preview-card-icon svelte-1v8d4f6"><use></use></svg></span> <span class="preview-card-label svelte-1v8d4f6"> </span></div></div> <label class="row svelte-1v8d4f6"><span class="svelte-1v8d4f6">Name <!></span> <input type="text" class="name-input svelte-1v8d4f6"/></label> <div class="row svelte-1v8d4f6"><span class="svelte-1v8d4f6">Icon</span> <!></div> <label class="row svelte-1v8d4f6"><span class="svelte-1v8d4f6">Color</span> <!></label> <div class="actions svelte-1v8d4f6"><button type="button" class="primary svelte-1v8d4f6">Save</button> <button type="button" data-role="reset" class="svelte-1v8d4f6">Reset</button> <button type="button" class="svelte-1v8d4f6">Cancel</button></div></div>');function np(e,t){ie(t,!0);const n=ke(()=>t.initialAppearance);let r=V(fe(n?.icon)),s=V(fe(n?.color)),i=V(fe(ke(()=>t.entityLabel))),o=V(n?.icon!==void 0);const l=F(()=>a(i).trim()),c=F(()=>t.requireLabel&&a(l)===""),u=F(()=>a(l)===""?t.entityLabel:a(l)),d=F(()=>a(r)??t.defaultIcon),f=F(()=>n!==void 0);function v(){a(c)||(t.onSave({label:a(l),icon:a(r),color:a(s)}),t.close())}function m(){t.onReset(),t.close()}var x=oI(),g=p(x),b=p(g);h(g);var C=w(g,2),_=p(C);let y,T;var I=p(_),D=p(I),R=p(D);h(D),h(I);var P=w(I,2),L=p(P,!0);h(P),h(_),h(C);var N=w(C,2),E=p(N),M=w(p(E));{var j=X=>{var ue=sI();k(X,ue)};U(M,X=>{t.requireLabel||X(j)})}h(E);var B=w(E,2);xe(B),h(N);var W=w(N,2),ee=w(p(W),2);{var G=X=>{var ue=iI();K("click",ue,()=>S(o,!0)),k(X,ue)},Z=X=>{var ue=aI(),de=ve(ue);rI(de,{get value(){return a(r)},set value(oe){S(r,oe,!0)}});var ne=w(de,2);K("click",ne,()=>S(o,!1)),k(X,ue)};U(ee,X=>{a(o)?X(Z,-1):X(G)})}h(W);var Q=w(W,2),Y=w(p(Q),2);{let X=F(()=>a(s)??"#888888");Kh(Y,{get value(){return a(X)},onchange:ue=>S(s,ue,!0)})}h(Q);var J=w(Q,2),q=p(J),H=w(q,2),$=w(H,2);h(J),h(x),O(()=>{z(b,`Customize ${t.entityLabel??""}`),y=he(_,1,"preview-card svelte-1v8d4f6",null,y,{"preview-card--tinted":a(s)!==void 0}),T=Ye(_,"",T,{"--card-color":a(s)??"transparent"}),se(R,"href",`${Jn}#${a(d)??""}`),z(L,a(u)),se(B,"placeholder",t.entityLabel),q.disabled=a(c),H.disabled=!a(f)}),Te(B,()=>a(i),X=>S(i,X)),K("click",q,v),K("click",H,m),K("click",$,()=>t.close()),k(e,x),ae()}pe(["click"]);let or=null;function lI(e){or=e}function cI(){or=null}function rp(e){return e.icon===void 0&&e.color===void 0&&e.label===void 0}function hl(e){const t=or?.user.overrides;if(!t)return;const n=t[e];if(n&&!rp(n))return n}function Ku(e,t){if(!or)return;const r={...or.user.overrides};t===void 0||rp(t)?delete r[e]:r[e]=t,or.user.overrides=r}function uI(){or={ephemeral:{},session:{},workspace:{},user:{overrides:{}}}}uI();function dI(){const e=fi();return!e||e.type!=="app"?null:e.ref}function fI(e){const t=dI();if(!t)return;const n=ls().find(l=>l.id===t.appId),r=n?.label??t.appId,s=n?.icon??"box",i=hl(t.appId),o={entityLabel:i?.label??r,initialAppearance:i,defaultIcon:s,requireLabel:!1,onSave:l=>{Ku(t.appId,{label:l.label===""?void 0:l.label,icon:l.icon,color:l.color})},onReset:()=>Ku(t.appId,void 0)};nn.open(np,o)}const sp={manifest:{id:"__app-appearance__",label:"App Appearance",version:bn,views:[]},activate(e){const t=e.state({user:{overrides:{}}});lI(t);const n={id:"app.customize",label:"Customize…",scope:{element:"app"},contextItem:!0,group:"appearance",run:fI};e.actions.register(n)},autostart(){},deactivate(){cI()}};var vI=A('<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>'),hI=A('<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>'),pI=A('<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>'),mI=A('<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>'),bI=A('<p class="sh3-home-empty svelte-11gxeaw"><!></p>'),gI=A('<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 yI(e,t){ie(t,!0);const n=Ma("__sh3core__");function r(j,B){j.preventDefault(),n.set({type:"app",ref:{appId:B}}),Ct.actions.openContextMenu({x:j.clientX,y:j.clientY,scope:{element:"app"}})}let s=V("");const i=F(ls),o=F(It),l=F(()=>yr.activeProjectId?Xt.projects.find(j=>j.id===yr.activeProjectId)??null:null);function c(j,B){if(!B)return!0;const W=B.toLowerCase();return j.label.toLowerCase().includes(W)||j.id.toLowerCase().includes(W)}function u(j){return a(l)?a(l).appAllowlist.includes(j):!0}const d=F(()=>a(i).filter(j=>!j.admin&&c(j,a(s))&&u(j.id))),f=F(()=>a(i).filter(j=>j.admin&&c(j,a(s)))),v=F(()=>a(d).length+(a(o)?a(f).length:0));var m=gI(),x=p(m),g=p(x),b=p(g);L3(b,{});var C=w(b,2),_=p(C);h(C),zt(2),h(g),zt(2),h(x);var y=w(x,2),T=p(y);xe(T),h(y);var I=w(y,2);H3(I,{});var D=w(I,2);$3(D,{});var R=w(D,2);{var P=j=>{var B=hI(),W=w(p(B),2);be(W,21,()=>a(d),ee=>ee.id,(ee,G)=>{const Z=F(()=>hl(a(G).id));var Q=vI();let Y,J;var q=p(Q),H=p(q),$=p(H);h(H),h(q);var X=w(q,2),ue=p(X,!0);h(X),h(Q),O(()=>{Y=he(Q,1,"sh3-home-card svelte-11gxeaw",null,Y,{"sh3-home-card--tinted":a(Z)?.color}),J=Ye(Q,"",J,{"--card-color":a(Z)?.color??"transparent"}),se($,"href",`${Jn}#${a(Z)?.icon??a(G).icon??"box"??""}`),z(ue,a(Z)?.label??a(G).label)}),K("click",Q,()=>Nn(a(G).id)),K("contextmenu",Q,de=>r(de,a(G).id)),k(ee,Q)}),h(W),h(B),k(j,B)};U(R,j=>{a(d).length>0&&j(P)})}var L=w(R,2);{var N=j=>{var B=mI(),W=w(p(B),2);be(W,21,()=>a(f),ee=>ee.id,(ee,G)=>{const Z=F(()=>hl(a(G).id));var Q=pI();let Y,J;var q=p(Q),H=p(q),$=p(H);h(H),h(q);var X=w(q,2),ue=p(X,!0);h(X),h(Q),O(()=>{Y=he(Q,1,"sh3-home-card svelte-11gxeaw",null,Y,{"sh3-home-card--tinted":a(Z)?.color}),J=Ye(Q,"",J,{"--card-color":a(Z)?.color??"transparent"}),se($,"href",`${Jn}#${a(Z)?.icon??a(G).icon??"box"??""}`),z(ue,a(Z)?.label??a(G).label)}),K("click",Q,()=>Nn(a(G).id)),K("contextmenu",Q,de=>r(de,a(G).id)),k(ee,Q)}),h(W),h(B),k(j,B)};U(L,j=>{a(o)&&a(f).length>0&&j(N)})}var E=w(L,2);{var M=j=>{var B=bI(),W=p(B);{var ee=Z=>{var Q=fn("No apps registered.");k(Z,Q)},G=Z=>{var Q=fn();O(()=>z(Q,`No apps match “${a(s)??""}”.`)),k(Z,Q)};U(W,Z=>{a(i).length===0?Z(ee):Z(G,-1)})}h(B),k(j,B)};U(E,j=>{a(v)===0&&j(M)})}h(m),O(()=>z(_,`v${bn}`)),Te(T,()=>a(s),j=>S(s,j)),k(e,m),ae()}pe(["click","contextmenu"]);var _I=A('<p class="keys-peers-muted svelte-1s56qq">Loading...</p>'),wI=A('<p class="keys-peers-error svelte-1s56qq"> </p>'),kI=A('<p class="keys-peers-muted svelte-1s56qq">No keys yet. Shards will ask your permission before creating one.</p>'),xI=A('<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),SI=A('<button type="button" class="keys-peers-btn-danger svelte-1s56qq">Revoke</button>'),II=A('<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>'),EI=A('<ul class="keys-peers-list svelte-1s56qq"></ul>'),AI=A('<div class="keys-peers svelte-1s56qq"><div class="keys-peers-header svelte-1s56qq"><h2 class="svelte-1s56qq">Keys &amp; Peers</h2></div> <!></div>');function CI(e,t){ie(t,!0);let n=V(fe([])),r=V(null),s=V(!0),i=V(null);async function o(){S(r,null),S(s,!0);try{const g=await Re(`${rt()}/api/keys`);if(!g.ok)throw new Error(`HTTP ${g.status}`);S(n,await g.json(),!0)}catch(g){S(r,g instanceof Error?g.message:String(g),!0)}finally{S(s,!1)}}async function l(g){S(i,null);const b=await Re(`${rt()}/api/keys/${encodeURIComponent(g)}`,{method:"DELETE"});(b.ok||b.status===404)&&S(n,a(n).filter(C=>C.id!==g),!0)}function c(g){return new Date(g).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}Se(()=>{o()}),Se(()=>Sc("*",()=>{o()}));var u=AI(),d=w(p(u),2);{var f=g=>{var b=_I();k(g,b)},v=g=>{var b=wI(),C=p(b);h(b),O(()=>z(C,`Failed to load: ${a(r)??""}`)),k(g,b)},m=g=>{var b=kI();k(g,b)},x=g=>{var b=EI();be(b,21,()=>a(n),C=>C.id,(C,_)=>{var y=II(),T=p(y),I=p(T),D=p(I,!0);h(I);var R=w(I,2),P=p(R);h(R);var L=w(R,2),N=p(L);h(L);var E=w(L,2),M=p(E);h(E),h(T);var j=w(T,2),B=p(j);{var W=G=>{var Z=xI(),Q=ve(Z),Y=w(Q,2);K("click",Q,()=>l(a(_).id)),K("click",Y,()=>{S(i,null)}),k(G,Z)},ee=G=>{var Z=SI();K("click",Z,()=>{S(i,a(_).id,!0)}),k(G,Z)};U(B,G=>{a(i)===a(_).id?G(W):G(ee,-1)})}h(j),h(y),O((G,Z,Q)=>{z(D,a(_).label),z(P,`Minted by: ${a(_).mintedByShardId??"system"??""}${a(_).peerRole||a(_).peerId?` · Peer: ${a(_).peerRole??"—"}${a(_).peerId?` (${a(_).peerId})`:""}`:""}`),z(N,`Scopes: ${G??""}`),z(M,`Created: ${Z??""} · Expires: ${Q??""}`)},[()=>a(_).scopes.join(", "),()=>c(a(_).createdAt),()=>a(_).expiresAt?c(a(_).expiresAt):"never"]),k(C,y)}),h(b),k(g,b)};U(d,g=>{a(s)?g(f):a(r)?g(v,1):a(n).length===0?g(m,2):g(x,-1)})}h(u),k(e,u),ae()}pe(["click"]);var TI=A('<div class="confirm-dialog svelte-1k1962w"><div class="confirm-dialog-title svelte-1k1962w"> </div> <div class="confirm-dialog-body svelte-1k1962w"> </div> <div class="confirm-dialog-actions svelte-1k1962w"><button type="button" class="confirm-dialog-btn confirm-dialog-btn-cancel svelte-1k1962w" data-confirm-dialog-cancel=""> </button> <button type="button" data-confirm-dialog-confirm=""> </button></div></div>');function ip(e,t){ie(t,!0);let n=te(t,"confirmLabel",3,"Confirm"),r=te(t,"cancelLabel",3,"Cancel"),s=te(t,"confirmTone",3,"default"),i=V(void 0),o=V(!1);Se(()=>{a(i)?.focus()});async function l(){if(!a(o)){S(o,!0);try{await t.onConfirm()}finally{t.close()}}}function c(){a(o)||(t.onCancel?.(),t.close())}var u=TI(),d=p(u),f=p(d,!0);h(d);var v=w(d,2),m=p(v,!0);h(v);var x=w(v,2),g=p(x),b=p(g,!0);h(g),Ne(g,T=>S(i,T),()=>a(i));var C=w(g,2);let _;var y=p(C,!0);h(C),h(x),h(u),O(()=>{z(f,t.title),z(m,t.body),g.disabled=a(o),z(b,r()),_=he(C,1,"confirm-dialog-btn svelte-1k1962w",null,_,{"confirm-dialog-btn-danger":s()==="danger","confirm-dialog-btn-default":s()==="default"}),C.disabled=a(o),z(y,n())}),K("click",g,c),K("click",C,l),k(e,u),ae()}pe(["click"]);const Wu=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 _o(e,t){const n=Object.keys(t),r=n.filter(o=>!Wu.has(o)),s=n.filter(o=>Wu.has(o)),i=[`const __m__ = globalThis.${e};`];r.length>0&&i.push(`export const { ${r.join(", ")} } = __m__;`);for(const o of s)i.push(`const __r_${o}__ = __m__['${o}']; export { __r_${o}__ as ${o} };`);return i.push("export default __m__.default;"),URL.createObjectURL(new Blob([i.join(`
11
+ `)],{type:"application/javascript"}))}const Cc=globalThis;Cc.__sh3__=Zh;Cc.__sh3_svelte__=Uf;Cc.__sh3_svelte_internal_client__=nv;const Tc={"sh3-core":_o("__sh3__",Zh),svelte:_o("__sh3_svelte__",Uf),"svelte/internal/client":_o("__sh3_svelte_internal_client__",nv)};Tc["svelte/internal/disclose-version"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));Tc["sh3-core/tokens.css"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));const RI=/(?:from|import)\s*(['"])(sh3-core(?:\/[^'"]*)?|svelte(?:\/[^'"]*)?)\1/g;function LI(e){return e.replace(RI,(t,n,r)=>{const s=Tc[r];return s?`${t.startsWith("from")?"from":"import"} '${s}'`:t})}async function hi(e){const t=new TextDecoder().decode(e),n=LI(t),r=new Blob([n],{type:"application/javascript"}),s=URL.createObjectURL(r);try{const i=await import(s),o={shards:[],apps:[]};for(const l of Object.values(i)){if(!l||typeof l!="object"||!("manifest"in l))continue;const c=l;MI(c)?o.shards.push(c):PI(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 MI(e){return"activate"in e&&typeof e.activate=="function"&&Array.isArray(e.manifest.views)}function PI(e){return"initialLayout"in e&&Array.isArray(e.manifest.requiredShards)}const DI="sh3-packages",jI=1,Ws="bundles",es="meta";function pi(){return new Promise((e,t)=>{const n=indexedDB.open(DI,jI);n.onupgradeneeded=()=>{const r=n.result;r.objectStoreNames.contains(Ws)||r.createObjectStore(Ws),r.objectStoreNames.contains(es)||r.createObjectStore(es)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}function kr(e,t,n,r){return new Promise((s,i)=>{const l=e.transaction(t,n).objectStore(t),c=r(l);c.onsuccess=()=>s(c.result),c.onerror=()=>i(c.error)})}async function ap(e,t,n){const r=await pi();await kr(r,Ws,"readwrite",s=>s.put(t,e)),await kr(r,es,"readwrite",s=>s.put(n,e)),r.close()}async function op(e){const t=await pi(),n=await kr(t,Ws,"readonly",r=>r.get(e));return t.close(),n??null}async function zI(e){const t=await pi(),n=await kr(t,es,"readonly",r=>r.get(e));return t.close(),n??null}async function lp(){const e=await pi(),t=await kr(e,es,"readonly",n=>n.getAll());return e.close(),t??[]}async function OI(e){const t=await pi();await kr(t,Ws,"readwrite",n=>n.delete(e)),await kr(t,es,"readwrite",n=>n.delete(e)),t.close()}function Rc(e,t){for(const n of e.shards)n.manifest={...n.manifest,version:t.version},Ua(n);for(const n of e.apps)n.manifest={...n.manifest,version:t.version},Os(n)}const NI={"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 wo(e){return NI[e]??{title:e,description:"Unknown permission."}}function Lc(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 Mc(e,t,n){if(!t.integrity)return{success:!1,hotLoaded:!1,error:"Missing integrity hash — refusing to install unverified bundle"};try{await Ic(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 hi(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:Lc(r)};try{await ap(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{Ha(t.id)}catch{}(t.type==="app"||t.type==="combo")&&bc(t.id);let i=!0;try{Rc(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),i=!1}return{success:!0,package:s,hotLoaded:i}}async function qI(e){try{Ha(e)}catch{}bc(e),await OI(e)}async function BI(){return lp()}async function cp(){let e;try{e=await lp()}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 op(t.id);if(!n){console.warn(`[sh3] No bundle found for installed package "${t.id}", skipping`);continue}const r=await hi(n);Rc(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 FI(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 i=r.index;if(t.some(o=>Math.abs(o-i)<=200))return["raw fetch() call with /api/ path — use ctx.fetch() for cross-origin compatibility"]}return[]}const Yu={version:1};var VI=A('<span class="perm-modal-author svelte-1ipp1r6"> </span>'),UI=A('<p class="perm-modal-empty svelte-1ipp1r6">This package requires no special permissions.</p>'),HI=A('<li class="perm-modal-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6"> </div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),KI=A('<p class="perm-modal-intro svelte-1ipp1r6">This package requests the following permissions:</p> <ul class="perm-modal-list svelte-1ipp1r6"></ul>',1),WI=A('<li class="perm-modal-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6"> </div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),YI=A('<p class="perm-modal-intro svelte-1ipp1r6">New permissions in this update:</p> <ul class="perm-modal-list perm-modal-added svelte-1ipp1r6"></ul>',1),XI=A('<li class="perm-modal-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6"> </div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),GI=A('<p class="perm-modal-intro svelte-1ipp1r6">Permissions no longer requested:</p> <ul class="perm-modal-list perm-modal-removed svelte-1ipp1r6"></ul>',1),JI=A("<!> <!>",1),ZI=A('<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>'),QI=A('<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),$I=A('<div class="perm-modal-backdrop svelte-1ipp1r6" role="dialog" aria-modal="true" tabindex="-1"><div class="perm-modal-panel svelte-1ipp1r6" role="document"><header class="perm-modal-header svelte-1ipp1r6"><h3 class="svelte-1ipp1r6"> </h3> <div class="perm-modal-subtitle svelte-1ipp1r6"><!> <!></div></header> <div class="perm-modal-body svelte-1ipp1r6"><!> <!></div> <footer class="perm-modal-footer svelte-1ipp1r6"><button class="perm-modal-cancel svelte-1ipp1r6">Cancel</button> <button class="perm-modal-confirm svelte-1ipp1r6"> </button></footer></div></div>');function pl(e,t){ie(t,!0);const n=te(t,"permissions",19,()=>[]),r=te(t,"added",19,()=>[]),s=te(t,"removed",19,()=>[]),i=te(t,"warnings",19,()=>[]),o=F(()=>t.mode==="install"?"Install":"Update");var l=$I(),c=p(l),u=p(c),d=p(u),f=p(d);h(d);var v=w(d,2),m=p(v);{var x=M=>{var j=fn();O(()=>z(j,`${t.fromVersion??""} → ${t.pkg.version??""}`)),k(M,j)},g=M=>{var j=fn();O(()=>z(j,`v${t.pkg.version??""}`)),k(M,j)};U(m,M=>{t.mode==="update"&&t.fromVersion?M(x):M(g,-1)})}var b=w(m,2);{var C=M=>{var j=VI(),B=p(j);h(j),O(()=>z(B,`by ${t.pkg.author??""}`)),k(M,j)};U(b,M=>{t.pkg.author&&M(C)})}h(v),h(u);var _=w(u,2),y=p(_);{var T=M=>{var j=De(),B=ve(j);{var W=G=>{var Z=UI();k(G,Z)},ee=G=>{var Z=KI(),Q=w(ve(Z),2);be(Q,20,n,Y=>Y,(Y,J)=>{const q=F(()=>wo(J));var H=HI(),$=p(H),X=p($,!0);h($);var ue=w($,2),de=p(ue,!0);h(ue),h(H),O(()=>{z(X,a(q).title),z(de,a(q).description)}),k(Y,H)}),h(Q),k(G,Z)};U(B,G=>{n().length===0?G(W):G(ee,-1)})}k(M,j)},I=M=>{var j=JI(),B=ve(j);{var W=Z=>{var Q=YI(),Y=w(ve(Q),2);be(Y,20,r,J=>J,(J,q)=>{const H=F(()=>wo(q));var $=WI(),X=p($),ue=p(X,!0);h(X);var de=w(X,2),ne=p(de,!0);h(de),h($),O(()=>{z(ue,a(H).title),z(ne,a(H).description)}),k(J,$)}),h(Y),k(Z,Q)};U(B,Z=>{r().length>0&&Z(W)})}var ee=w(B,2);{var G=Z=>{var Q=GI(),Y=w(ve(Q),2);be(Y,20,s,J=>J,(J,q)=>{const H=F(()=>wo(q));var $=XI(),X=p($),ue=p(X,!0);h(X);var de=w(X,2),ne=p(de,!0);h(de),h($),O(()=>{z(ue,a(H).title),z(ne,a(H).description)}),k(J,$)}),h(Y),k(Z,Q)};U(ee,Z=>{s().length>0&&Z(G)})}k(M,j)};U(y,M=>{t.mode==="install"?M(T):M(I,-1)})}var D=w(y,2);{var R=M=>{var j=QI(),B=w(ve(j),2);be(B,20,i,W=>W,(W,ee)=>{var G=ZI(),Z=w(p(G),2),Q=p(Z,!0);h(Z),h(G),O(()=>z(Q,ee)),k(W,G)}),h(B),k(M,j)};U(D,M=>{i().length>0&&M(R)})}h(_);var P=w(_,2),L=p(P),N=w(L,2),E=p(N,!0);h(N),h(P),h(c),h(l),O(()=>{se(l,"aria-label",`${a(o)??""} ${t.pkg.label??""}`),z(f,`${a(o)??""} ${t.pkg.label??""}`),z(E,a(o))}),K("click",l,function(...M){t.onCancel?.apply(this,M)}),K("keydown",l,M=>{M.key==="Escape"&&t.onCancel()}),K("click",c,M=>M.stopPropagation()),K("click",L,function(...M){t.onCancel?.apply(this,M)}),K("click",N,function(...M){t.onConfirm?.apply(this,M)}),k(e,l),ae()}pe(["click","keydown"]);function Pc(e){return e==="shard"?"shard":"app"}function eE(e){return Pc(e)==="shard"?"Shard":"App"}function tE(e,t){return t==="all"?!0:Pc(e)===t}var nE=A('<div class="store-registry-entry svelte-1aafzt0"><span class="store-registry-url svelte-1aafzt0"> </span> <button class="store-registry-remove svelte-1aafzt0">Remove</button></div>'),rE=A('<div class="store-registries svelte-1aafzt0"></div>'),sE=A('<form class="store-add-registry svelte-1aafzt0"><input class="store-registry-input svelte-1aafzt0" type="url" placeholder="Registry URL (e.g. https://sh3.example.com/registry.json)"/> <button type="submit" class="store-add-btn svelte-1aafzt0">Add</button></form>'),iE=A('<div class="store-error svelte-1aafzt0"> </div>'),aE=A('<div class="store-error svelte-1aafzt0"> </div>'),oE=A('<img alt="" class="store-icon-img svelte-1aafzt0"/>'),lE=A('<span class="store-icon-placeholder svelte-1aafzt0"> </span>'),cE=A('<div class="store-card-warning svelte-1aafzt0"> </div>'),uE=A('<button class="store-update-btn svelte-1aafzt0"> </button>'),dE=A('<span class="store-installed-label svelte-1aafzt0">Installed</span>'),fE=A('<span class="store-card-missing svelte-1aafzt0"> </span>'),vE=A('<div class="store-install-wrap svelte-1aafzt0"><button class="store-install-btn svelte-1aafzt0"> </button> <!></div>'),hE=A('<div class="store-card svelte-1aafzt0"><div class="store-card-header svelte-1aafzt0"><div class="store-card-icon svelte-1aafzt0"><!></div> <div class="store-card-title svelte-1aafzt0"><span class="store-card-label svelte-1aafzt0"> </span> <span> </span> <span class="store-card-version svelte-1aafzt0"> </span></div></div> <p class="store-card-desc svelte-1aafzt0"> </p> <div class="store-card-author svelte-1aafzt0"> </div> <!> <div class="store-card-actions svelte-1aafzt0"><!></div></div>'),pE=A("No packages found. <!>",1),mE=A('<div class="store-empty svelte-1aafzt0"><!></div>'),bE=A('<div class="store-view svelte-1aafzt0"><header class="store-header svelte-1aafzt0"><h2 class="svelte-1aafzt0">Package Store</h2> <div class="store-controls svelte-1aafzt0"><input class="store-search svelte-1aafzt0" type="text" placeholder="Search packages..."/> <select class="store-filter svelte-1aafzt0"><option>All</option><option>Shards</option><option>Apps</option></select> <button class="store-refresh svelte-1aafzt0"> </button></div></header> <!> <!> <!> <!> <div class="store-grid svelte-1aafzt0"></div> <!></div> <!> <!>',1);function gE(e,t){ie(t,!0);let n=V(""),r=V("all"),s=V(fe(new Set)),i=V(fe(new Set)),o=V(null),l=V(""),c=V(null),u=V(null);const d=ot;async function f(){const le=a(l).trim();if(le&&!d.env.registries.includes(le))try{await d.addRegistry(le),S(l,""),d.refreshCatalog(),d.refreshInstalled()}catch(re){S(o,re instanceof Error?re.message:String(re),!0)}}async function v(le){try{await d.removeRegistry(le),d.refreshCatalog()}catch(re){S(o,re instanceof Error?re.message:String(re),!0)}}const m=F(()=>{const le=a(n).toLowerCase().trim();return d.state.ephemeral.catalog.filter(re=>tE(re.entry.type,a(r))?le?re.entry.id.toLowerCase().includes(le)||re.entry.label.toLowerCase().includes(le)||re.entry.description.toLowerCase().includes(le):!0:!1)});function x(le){return d.state.ephemeral.installed.some(re=>re.id===le)}function g(le){return String(le.latest.contractVersion)!==String(Yu.version)}function b(le){return le in d.state.ephemeral.updatable}function C(le){return d.state.ephemeral.installed.find(re=>re.id===le)?.version??""}function _(le,re){const Ce=le.latest.requires?.map(we=>we.id)??[];if(Ce.length===0)return[];const je=new Set(Jh);for(const we of re)(we.type==="shard"||we.type==="combo")&&je.add(we.id);return Ce.filter(we=>!je.has(we))}async function y(le){if(!a(i).has(le)){S(i,new Set([...a(i),le]),!0),S(o,null);try{await d.updatePackage(le,(re,Ce)=>new Promise(je=>{const we=d.state.ephemeral.updatable[le],Oe=d.state.ephemeral.installed.find(Je=>Je.id===le);if(!we||!Oe){je(!0);return}S(u,{pkg:we,fromVersion:Oe.version,added:re,removed:Ce,resolve:je},!0)}))}catch(re){S(o,re instanceof Error?re.message:String(re),!0)}finally{const re=new Set(a(i));re.delete(le),S(i,re,!0)}}}function T(){const le=a(u);le&&(S(u,null),le.resolve(!0))}function I(){const le=a(u);le&&(S(u,null),le.resolve(!1))}async function D(le){const re=le.entry.id;if(!a(s).has(re)){S(s,new Set([...a(s),re]),!0),S(o,null);try{const Ce=await Wa(le.latest,le.sourceRegistry),je=Ya(le,le.latest),we=await hi(Ce),Oe=Lc(we);let Je;le.latest.serverBundleUrl&&(Je=await Ec(le.latest,le.sourceRegistry));const He=new TextDecoder().decode(new Uint8Array(Ce)),rn=FI(He);S(c,{pkg:le,permissions:Oe,loaded:we,bundle:Ce,meta:je,serverBundle:Je,warnings:rn},!0)}catch(Ce){S(o,Ce instanceof Error?Ce.message:String(Ce),!0);const je=new Set(a(s));je.delete(re),S(s,je,!0)}}}async function R(){const le=a(c);if(!le)return;S(c,null);const{pkg:re,loaded:Ce,bundle:je,meta:we,serverBundle:Oe}=le,Je=re.entry.id;try{const He={id:we.id,type:we.type,label:re.entry.label,version:we.version,contractVersion:we.contractVersion,sourceRegistry:we.sourceRegistry,requiredShards:re.latest.requires?.map(ct=>ct.id)??[],installedAt:new Date().toISOString()},rn=await xc(He,je,Oe);if(!rn.ok){S(o,rn.error??"Server install failed",!0);return}const gn=await Mc(je,we,{loaded:Ce});gn.success||console.warn(`[sh3-store] Server install ok but local hot-load failed: ${gn.error}`),await d.refreshInstalled()}catch(He){S(o,He instanceof Error?He.message:String(He),!0)}finally{const He=new Set(a(s));He.delete(Je),S(s,He,!0)}}function P(){if(!a(c))return;const le=a(c).pkg.entry.id;S(c,null);const re=new Set(a(s));re.delete(le),S(s,re,!0)}function L(){d.refreshCatalog(),d.refreshInstalled()}var N=bE(),E=ve(N),M=p(E),j=w(p(M),2),B=p(j);xe(B);var W=w(B,2),ee=p(W);ee.value=ee.__value="all";var G=w(ee);G.value=G.__value="shard";var Z=w(G);Z.value=Z.__value="app",h(W);var Q=w(W,2),Y=p(Q,!0);h(Q),h(j),h(M);var J=w(M,2);{var q=le=>{var re=rE();be(re,21,()=>d.env.registries,gt,(Ce,je)=>{var we=nE(),Oe=p(we),Je=p(Oe,!0);h(Oe);var He=w(Oe,2);h(we),O(()=>z(Je,a(je))),K("click",He,()=>v(a(je))),k(Ce,we)}),h(re),k(le,re)};U(J,le=>{d.isAdmin&&d.env.registries.length>0&&le(q)})}var H=w(J,2);{var $=le=>{var re=sE(),Ce=p(re);xe(Ce);var je=w(Ce,2);h(re),O(we=>je.disabled=we,[()=>!a(l).trim()]),Ue("submit",re,we=>{we.preventDefault(),f()}),Te(Ce,()=>a(l),we=>S(l,we)),k(le,re)};U(H,le=>{d.isAdmin&&le($)})}var X=w(H,2);{var ue=le=>{var re=iE(),Ce=p(re,!0);h(re),O(()=>z(Ce,d.state.ephemeral.error)),k(le,re)};U(X,le=>{d.state.ephemeral.error&&le(ue)})}var de=w(X,2);{var ne=le=>{var re=aE(),Ce=p(re,!0);h(re),O(()=>z(Ce,a(o))),k(le,re)};U(de,le=>{a(o)&&le(ne)})}var oe=w(de,2);be(oe,21,()=>a(m),le=>le.entry.id,(le,re)=>{const Ce=F(()=>x(a(re).entry.id)),je=F(()=>g(a(re))),we=F(()=>a(s).has(a(re).entry.id)),Oe=F(()=>b(a(re).entry.id)),Je=F(()=>a(i).has(a(re).entry.id)),He=F(()=>_(a(re),d.state.ephemeral.installed)),rn=F(()=>Pc(a(re).entry.type));var gn=hE(),ct=p(gn),sn=p(ct),Ja=p(sn);{var sm=Ke=>{var We=oE();O(()=>se(We,"src",a(re).entry.icon)),k(Ke,We)},im=Ke=>{var We=lE(),Ut=p(We,!0);h(We),O(()=>z(Ut,a(re).entry.type==="shard"?"S":"A")),k(Ke,We)};U(Ja,Ke=>{a(re).entry.icon?Ke(sm):Ke(im,-1)})}h(sn);var zc=w(sn,2),Za=p(zc),am=p(Za,!0);h(Za);var bi=w(Za,2);let Oc;var om=p(bi,!0);h(bi);var Nc=w(bi,2),lm=p(Nc,!0);h(Nc),h(zc),h(ct);var Qa=w(ct,2),cm=p(Qa,!0);h(Qa);var $a=w(Qa,2),um=p($a,!0);h($a);var qc=w($a,2);{var dm=Ke=>{var We=cE(),Ut=p(We);h(We),O(()=>z(Ut,`Contract mismatch: package targets v${a(re).latest.contractVersion??""}, running v${Yu.version}`)),k(Ke,We)};U(qc,Ke=>{a(je)&&Ke(dm)})}var Bc=w(qc,2),fm=p(Bc);{var vm=Ke=>{var We=uE(),Ut=p(We,!0);h(We),O(eo=>{We.disabled=a(Je),z(Ut,eo)},[()=>a(Je)?"Updating...":`Update ${C(a(re).entry.id)} -> ${a(re).latest.version}`]),K("click",We,()=>y(a(re).entry.id)),k(Ke,We)},hm=Ke=>{var We=dE();k(Ke,We)},pm=Ke=>{var We=vE(),Ut=p(We),eo=p(Ut,!0);h(Ut);var mm=w(Ut,2);{var bm=ps=>{var to=fE(),gm=p(to);h(to),O(ym=>z(gm,`requires: ${ym??""}`),[()=>a(He).join(", ")]),k(ps,to)};U(mm,ps=>{a(He).length>0&&ps(bm)})}h(We),O(ps=>{Ut.disabled=a(we)||a(He).length>0,se(Ut,"title",ps),z(eo,a(we)?"Installing...":"Install")},[()=>a(He).length>0?`Missing required shards: ${a(He).join(", ")}`:void 0]),K("click",Ut,()=>D(a(re))),k(Ke,We)};U(fm,Ke=>{a(Ce)&&a(Oe)?Ke(vm):a(Ce)?Ke(hm,1):Ke(pm,-1)})}h(Bc),h(gn),O(Ke=>{z(am,a(re).entry.label),Oc=he(bi,1,"store-card-badge svelte-1aafzt0",null,Oc,{"badge-shard":a(rn)==="shard","badge-app":a(rn)==="app"}),z(om,Ke),z(lm,a(re).latest.version),z(cm,a(re).entry.description),z(um,a(re).entry.author.name)},[()=>eE(a(re).entry.type)]),k(le,gn)}),h(oe);var me=w(oe,2);{var Ie=le=>{var re=mE(),Ce=p(re);{var je=Oe=>{var Je=pE(),He=w(ve(Je));{var rn=ct=>{var sn=fn("Add a registry URL above to get started.");k(ct,sn)},gn=ct=>{var sn=fn("No registries configured.");k(ct,sn)};U(He,ct=>{d.isAdmin?ct(rn):ct(gn,-1)})}k(Oe,Je)},we=Oe=>{var Je=fn("No packages match the current filter.");k(Oe,Je)};U(Ce,Oe=>{d.env.registries.length===0?Oe(je):Oe(we,-1)})}h(re),k(le,re)};U(me,le=>{!d.state.ephemeral.loading&&a(m).length===0&&le(Ie)})}h(E);var at=w(E,2);{var Ge=le=>{{let re=F(()=>({label:a(c).pkg.entry.label,version:a(c).pkg.latest.version,author:a(c).pkg.entry.author.name}));pl(le,{mode:"install",get pkg(){return a(re)},get permissions(){return a(c).permissions},get warnings(){return a(c).warnings},onConfirm:R,onCancel:P})}};U(at,le=>{a(c)&&le(Ge)})}var Lt=w(at,2);{var hs=le=>{{let re=F(()=>({label:a(u).pkg.entry.label,version:a(u).pkg.latest.version,author:a(u).pkg.entry.author.name}));pl(le,{mode:"update",get pkg(){return a(re)},get fromVersion(){return a(u).fromVersion},get added(){return a(u).added},get removed(){return a(u).removed},onConfirm:T,onCancel:I})}};U(Lt,le=>{a(u)&&le(hs)})}O(()=>{Q.disabled=d.state.ephemeral.loading,z(Y,d.state.ephemeral.loading?"Loading...":"Refresh")}),Te(B,()=>a(n),le=>S(n,le)),Ds(W,()=>a(r),le=>S(r,le)),K("click",Q,L),k(e,N),ae()}pe(["click"]);function up(e){return ot.state.ephemeral.catalog.find(t=>t.entry.id===e)}function Ys(e){return ot.state.ephemeral.installed.find(t=>t.id===e)}const yE={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=Ys(n);if(r){e.scrollback.push({kind:"status",text:`${n} is already installed (v${r.version})`,level:"warn",ts:Date.now()});return}const s=up(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 i=await Wa(s.latest,s.sourceRegistry),o=Ya(s,s.latest);let l;s.latest.serverBundleUrl&&(l=await Ec(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 xc(c,i,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 Mc(i,o);d.success||e.scrollback.push({kind:"status",text:`server ok but local hot-load failed: ${d.error}`,level:"warn",ts:Date.now()}),await ot.refreshInstalled(),e.scrollback.push({kind:"status",text:`installed ${n} v${s.latest.version}`,level:"info",ts:Date.now()})}catch(i){e.scrollback.push({kind:"status",text:`install failed: ${i instanceof Error?i.message:String(i)}`,level:"error",ts:Date.now()})}}},_E={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(!Ys(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 ot.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()})}}},wE={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=Ys(n);if(!s){e.scrollback.push({kind:"status",text:`package "${n}" is not installed`,level:"error",ts:Date.now()});return}const i=s.version,o=r&&r===i?"reinstalling":r?`updating ${n} from v${i} to v${r}`:`updating ${n} from v${i} 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 ot.updatePackage(n,l,r);const c=r??Ys(n)?.version??"?";e.scrollback.push({kind:"status",text:r&&r===i?`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()})}}},kE={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=Ys(n),s=up(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 i=[];i.push(`--- ${n} ---`),r?(i.push(" installed: yes"),i.push(` version: ${r.version}`),i.push(` type: ${r.type}`),i.push(` contract: v${r.contractVersion}`),i.push(` source: ${r.sourceRegistry}`),r.installedAt&&i.push(` installed: ${r.installedAt}`)):i.push(" installed: no"),s?(i.push(" catalog: yes"),i.push(` latest: ${s.latest.version}`),i.push(` label: ${s.entry.label}`),i.push(` author: ${s.entry.author.name}`),i.push(` desc: ${s.entry.description}`)):i.push(" catalog: no (not in any configured registry)"),e.scrollback.push({kind:"text",stream:"stdout",chunks:[i.join(`
12
+ `)+`
13
+ `],ts:Date.now()})}};function xE(e,t){const[n="",r=""]=e.split("+"),[s="",i=""]=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===i||r==="")return!1;if(i==="")return!0;const u=parseInt(r,10),d=parseInt(i,10);return!isNaN(u)&&!isNaN(d)?u>d:r>i}function SE(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 IE(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 ot;const dp={manifest:{id:"sh3-store",label:"Package Store",version:bn,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(x=>x.entry.id===v.id);m&&xE(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 qh(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 i(){try{const f=await Ix();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 BI();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 x;if(m===void 0?x=n.ephemeral.updatable[f]:x=n.ephemeral.catalog.find(B=>B.entry.id===f),!x)return;const g=n.ephemeral.installed.find(B=>B.id===f);if(!g)return;const b=SE(x,m),C=await Wa(b,x.sourceRegistry);let _;b.serverBundleUrl&&(_=await Ec(b,x.sourceRegistry));const y=Ya(x,b),T=await hi(C),I=Lc(T);let D=[];try{const B=await zI(f);B?.permissions&&(D=B.permissions)}catch{}const{added:R,removed:P}=IE(D,I);if((R.length>0||P.length>0)&&v&&!await v(R,P))return;const L=await op(f),N={...g,permissions:D},E={id:y.id,type:y.type,label:x.entry.label,version:y.version,contractVersion:y.contractVersion,sourceRegistry:y.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:b.requires?.map(B=>B.id)??[]},M=await xc(E,C,_);if(!M.ok){let B=M.error??"Server update failed";throw M.code==="missing-shards"&&M.missing&&(B=`missing required shard(s): ${M.missing.map(ee=>ee.id).join(", ")}`),new Error(B)}const j=await Mc(C,y,{loaded:T});if(!j.success){if(L)try{await ap(f,L,N)}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 i()}async function u(f){await Sx(f),await qI(f),await i()}ot={env:t,state:n,get isAdmin(){return e.isAdmin},refreshCatalog:s,refreshInstalled:i,updatePackage:c,uninstallPackage:u,addRegistry:o,removeRegistry:l};const d={mount(f,v){const m=Ve(gE,{target:f});return{unmount(){et(m)}}}};e.registerView("sh3-store:browse",d),e.registerVerb(yE),e.registerVerb(_E),e.registerVerb(kE),e.registerVerb(wE),i()},autostart(){ot.refreshCatalog()}};function EE(e,t,n,r){return new Promise(s=>{const i={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(pl,i)})}var AE=A('<p class="error svelte-1tiy4hy"> </p>'),CE=A('<div class="app-update-modal svelte-1tiy4hy"><h2 class="svelte-1tiy4hy">Update available</h2> <p class="svelte-1tiy4hy"><strong> </strong> can be updated from <code class="svelte-1tiy4hy"> </code> to <code class="svelte-1tiy4hy"> </code>.</p> <p class="hint svelte-1tiy4hy">Package id: <code class="svelte-1tiy4hy"> </code></p> <!> <div class="actions svelte-1tiy4hy"><button type="button" class="primary svelte-1tiy4hy"> </button> <button type="button" class="svelte-1tiy4hy">Cancel</button></div></div>');function TE(e,t){ie(t,!0);let n=V(!1),r=V(null);async function s(){if(!a(n)){S(n,!0),S(r,null);try{await t.onConfirm(),t.close()}catch(D){S(r,D.message,!0)}finally{S(n,!1)}}}var i=CE(),o=w(p(i),2),l=p(o),c=p(l,!0);h(l);var u=w(l,2),d=p(u);h(u);var f=w(u,2),v=p(f);h(f),zt(),h(o);var m=w(o,2),x=w(p(m)),g=p(x,!0);h(x),h(m);var b=w(m,2);{var C=D=>{var R=AE(),P=p(R,!0);h(R),O(()=>z(P,a(r))),k(D,R)};U(b,D=>{a(r)&&D(C)})}var _=w(b,2),y=p(_),T=p(y,!0);h(y);var I=w(y,2);h(_),h(i),O(()=>{z(c,t.appLabel),z(d,`v${t.fromVersion??""}`),z(v,`v${t.toVersion??""}`),z(g,t.appId),y.disabled=a(n),z(T,a(n)?"Updating…":"Update"),I.disabled=a(n)}),K("click",y,s),K("click",I,function(...D){t.close?.apply(this,D)}),k(e,i),ae()}pe(["click"]);var RE=A('<p class="error svelte-86mxbl"> </p>'),LE=A(`<div class="uninstall-dialog svelte-86mxbl"><h2 class="svelte-86mxbl"> </h2> <p class="hint svelte-86mxbl">Package id: <code class="svelte-86mxbl"> </code> · current version: <code class="svelte-86mxbl"> </code></p> <p class="svelte-86mxbl">The package will be removed from this server. App data stored in your
14
+ browser will remain until you clear it manually.</p> <!> <div class="actions svelte-86mxbl"><button type="button" class="danger svelte-86mxbl"> </button> <button type="button" class="svelte-86mxbl">Cancel</button></div></div>`);function ME(e,t){ie(t,!0);let n=V(!1),r=V(null);async function s(){if(!a(n)){S(n,!0),S(r,null);try{await t.onConfirm(),t.close()}catch(y){S(r,y.message,!0)}finally{S(n,!1)}}}var i=LE(),o=p(i),l=p(o);h(o);var c=w(o,2),u=w(p(c)),d=p(u,!0);h(u);var f=w(u,2),v=p(f);h(f),h(c);var m=w(c,4);{var x=y=>{var T=RE(),I=p(T,!0);h(T),O(()=>z(I,a(r))),k(y,T)};U(m,y=>{a(r)&&y(x)})}var g=w(m,2),b=p(g),C=p(b,!0);h(b);var _=w(b,2);h(g),h(i),O(()=>{z(l,`Uninstall ${t.appLabel??""}?`),z(d,t.appId),z(v,`v${t.version??""}`),b.disabled=a(n),z(C,a(n)?"Uninstalling…":"Uninstall"),_.disabled=a(n)}),K("click",b,s),K("click",_,function(...y){t.close?.apply(this,y)}),k(e,i),ae()}pe(["click"]);var PE=A('<span class="badge built-in svelte-1w44jyn">built-in</span>'),DE=A('<section class="description svelte-1w44jyn"><span class="label svelte-1w44jyn">Description</span> <p class="svelte-1w44jyn"> </p></section>'),jE=A('<p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Author</span> <span> </span></p>'),zE=A('<li><code class="svelte-1w44jyn"> </code></li>'),OE=A('<section class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Required shards</span> <ul class="chips svelte-1w44jyn"></ul></section>'),NE=A('<li><code class="svelte-1w44jyn"> </code></li>'),qE=A('<section class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Permissions</span> <ul class="chips svelte-1w44jyn"></ul></section>'),BE=A('<p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Installed</span><span> </span></p>'),FE=A('<section class="installed svelte-1w44jyn"><p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Source registry</span><code class="svelte-1w44jyn"> </code></p> <!> <p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Contract</span><code class="svelte-1w44jyn"> </code></p></section>'),VE=A('<div class="app-info-modal svelte-1w44jyn"><header class="svelte-1w44jyn"><h2 class="svelte-1w44jyn"> </h2> <code class="id svelte-1w44jyn"> </code></header> <p class="version svelte-1w44jyn"><span class="label svelte-1w44jyn">Version</span> <code class="svelte-1w44jyn"> </code> <!></p> <!> <!> <!> <!> <!> <div class="actions svelte-1w44jyn"><button type="button" class="svelte-1w44jyn">Close</button></div></div>');function UE(e,t){ie(t,!0);let n=F(()=>{if(!t.installed)return null;const N=new Date(t.installed.installedAt);return isNaN(N.getTime())?t.installed.installedAt:N.toLocaleString()});var r=VE(),s=p(r),i=p(s),o=p(i,!0);h(i);var l=w(i,2),c=p(l,!0);h(l),h(s);var u=w(s,2),d=w(p(u),2),f=p(d);h(d);var v=w(d,2);{var m=N=>{var E=PE();k(N,E)};U(v,N=>{t.installed||N(m)})}h(u);var x=w(u,2);{var g=N=>{var E=DE(),M=w(p(E),2),j=p(M,!0);h(M),h(E),O(()=>z(j,t.catalogEntry.description)),k(N,E)};U(x,N=>{t.catalogEntry?.description&&N(g)})}var b=w(x,2);{var C=N=>{var E=jE(),M=w(p(E),2),j=p(M,!0);h(M),h(E),O(()=>z(j,t.catalogEntry.author.name)),k(N,E)};U(b,N=>{t.catalogEntry?.author?.name&&N(C)})}var _=w(b,2);{var y=N=>{var E=OE(),M=w(p(E),2);be(M,21,()=>t.manifest.requiredShards,gt,(j,B)=>{var W=zE(),ee=p(W),G=p(ee,!0);h(ee),h(W),O(()=>z(G,a(B))),k(j,W)}),h(M),h(E),k(N,E)};U(_,N=>{t.manifest.requiredShards.length>0&&N(y)})}var T=w(_,2);{var I=N=>{var E=qE(),M=w(p(E),2);be(M,21,()=>t.manifest.permissions,gt,(j,B)=>{var W=NE(),ee=p(W),G=p(ee,!0);h(ee),h(W),O(()=>z(G,a(B))),k(j,W)}),h(M),h(E),k(N,E)};U(T,N=>{t.manifest.permissions&&t.manifest.permissions.length>0&&N(I)})}var D=w(T,2);{var R=N=>{var E=FE(),M=p(E),j=w(p(M)),B=p(j,!0);h(j),h(M);var W=w(M,2);{var ee=Y=>{var J=BE(),q=w(p(J)),H=p(q,!0);h(q),h(J),O(()=>z(H,a(n))),k(Y,J)};U(W,Y=>{a(n)&&Y(ee)})}var G=w(W,2),Z=w(p(G)),Q=p(Z);h(Z),h(G),h(E),O(()=>{z(B,t.installed.sourceRegistry),z(Q,`v${t.installed.contractVersion??""}`)}),k(N,E)};U(D,N=>{t.installed&&N(R)})}var P=w(D,2),L=p(P);h(P),h(r),O(()=>{z(o,t.manifest.label),z(c,t.manifest.id),z(f,`v${t.manifest.version??""}`)}),K("click",L,function(...N){t.close?.apply(this,N)}),k(e,r),ae()}pe(["click"]);const Xu=typeof globalThis.__TAURI_INTERNALS__<"u";function HE(e){return!e.admin||e.builtin}function Gu(e){return e.admin?e.builtin?" · built-in":"":" · admin only"}function Wn(){const e=fi();return!e||e.type!=="app"?null:e.ref}function mi(e){return ls().find(t=>t.id===e)}function KE(e){return!ot.state.ephemeral.installed.some(t=>t.id===e)}function ko(e){return{admin:It(),builtin:KE(e)}}function WE(e){const t=Wn();if(!t)return;const n=mi(t.appId);if(!n)return;const r=ot.state.ephemeral.installed.find(o=>o.id===t.appId)??null,s=ot.state.ephemeral.catalog.find(o=>o.entry.id===t.appId)?.entry??null,i={manifest:n,installed:r,catalogEntry:s};nn.open(UE,i)}async function YE(e){const t=Wn();if(!t)return;const{appId:n}=t,r=Sn.notify("Checking for updates…",{duration:1/0});try{await ot.refreshCatalog()}finally{r.close()}const s=ot.state.ephemeral.updatable[n],i=ot.state.ephemeral.installed.find(c=>c.id===n),o=mi(n)?.label??n;if(!s||!i){Sn.notify(`${o} is up to date`,{level:"info",duration:2500});return}const l={appId:n,appLabel:o,fromVersion:i.version,toVersion:s.latest.version,onConfirm:async()=>{try{await ot.updatePackage(n,(c,u)=>EE({label:i.id,version:i.version},s.latest.version,c,u)),Sn.notify(`Updated to v${s.latest.version}`,{level:"success"})}catch(c){throw Sn.notify(`Update failed: ${c.message}`,{level:"error",duration:5e3}),c}}};nn.open(TE,l)}function XE(e){const t=Wn();if(!t)return;const n=mi(t.appId);n&&Ka({kind:"app",appId:t.appId,activateShards:n.requiredShards??[]})}async function GE(e){const t=Jl();if(!t)return;const n=t.id,r=t.requiredShards??[];await ds(),Ka({kind:"app",appId:n,activateShards:r})}function JE(e){const t=Wn();if(!t)return;const{appId:n}=t,r=ot.state.ephemeral.installed.find(o=>o.id===n);if(!r)return;const s=mi(n)?.label??n,i={appId:n,appLabel:s,version:r.version,onConfirm:async()=>{try{await ot.uninstallPackage(n),Sn.notify(`Uninstalled ${s}`,{level:"success"})}catch(o){throw Sn.notify(`Uninstall failed: ${o.message}`,{level:"error",duration:5e3}),o}}};nn.open(ME,i)}function ZE(e){const t=()=>{const l=Wn();if(!l)return"Info…";const c=mi(l.appId);return c?`Info — ${c.label} v${c.version}`:`Info — ${l.appId}`},n=()=>{const l=Wn();return l?`Check for updates${Gu(ko(l.appId))}`:"Check for updates"},r=()=>{const l=Wn();return l?`Uninstall…${Gu(ko(l.appId))}`:"Uninstall…"},s=()=>{const l=Wn();return l?HE(ko(l.appId)):!0},o=[{id:"app.info",label:t,scope:{element:"app"},contextItem:!0,group:"info",run:WE},{id:"app.checkUpdate",label:n,scope:{element:"app"},contextItem:!0,group:"update",disabled:s,run:YE},{id:"app.uninstall",label:r,scope:{element:"app"},contextItem:!0,group:"uninstall",disabled:s,run:JE},{id:"app.popout",label:"Open in standalone view",scope:{element:"app"},contextItem:!0,paletteItem:!1,group:"window",disabled:()=>!Xu,run:XE},{id:"app.popoutCurrent",label:"Pop out current app",scope:"app",contextItem:!1,paletteItem:!0,disabled:()=>!Xu||ut.id==null,run:GE}].map(l=>e.actions.register(l));return()=>o.forEach(l=>l())}function QE(){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 fp={manifest:{id:"__sh3core__",label:"SH3 Core",version:bn,views:[{id:"sh3core:home",label:"Home"},{id:"sh3:keys-and-peers",label:"Keys & Peers"}]},activate(e){const t=e.state({user:{bindings:{}}});J1(t.user),e.actions.register({id:"sh3.palette.open",label:"Command Palette…",scope:["home","app"],defaultShortcut:"Mod+K",contextItem:!1,paletteItem:!1,run(i){za()}}),e.actions.register(QE()),e.actions.register({id:"sh3.app.reset-layout",label:"Reset Current Layout",scope:["app"],paletteItem:!0,contextItem:!1,run(){nn.open(ip,{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:()=>zk()})}});const n={mount(i,o){const l=Ve(yI,{target:i});return{unmount(){et(l)}}}},r={mount(i,o){const l=Ve(CI,{target:i});return{unmount(){et(l)}}}};e.registerView("sh3core:home",n),e.registerView("sh3:keys-and-peers",r),ZE(e),e.actions.register({id:"sh3.app.launch",label:"Launch app",scope:["home","app"],submenu:!0,paletteItem:!0});const s=new Map;is(()=>{Se(()=>{const i=new Set;for(const[o,l]of Gn){if(i.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(){Nn(o)}});s.set(o,c)}for(const o of[...s.keys()])i.has(o)||(s.get(o)(),s.delete(o))})})},autostart(){}},$E={id:"shell",label:"Sh3",version:bn,views:[{id:"shell:terminal",label:"Sh3",standalone:!0}],permissions:[zs]};class e2{#e;get history(){return a(this.#e)}set history(t){S(this.#e,t,!0)}#t;get locked(){return a(this.#t)}set locked(t){S(this.#t,t,!0)}constructor(t){this.#e=V(fe([])),this.#t=V(!1),this.modeId=t,this.scrollback=new U0}}let lr=null;function t2(e){lr=e}function n2(){lr=null}function Ju(e){return lr?.workspace.buffers[e]}function r2(e,t){lr&&(lr.workspace.buffers={...lr.workspace.buffers,[e]:t})}function s2(){lr={ephemeral:{},session:{},workspace:{buffers:{}},user:{}}}s2();const i2=200;class a2{constructor(){this.timers=new Map}hydrate(t){const n=Ju(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)},i2);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 Ju(t)?.lastSeq}write(t,n){const s={entries:t.scrollback.entries.slice(-500).map(i=>this.toPersisted(i)),history:[...t.history],...n!==void 0?{lastSeq:n}:{}};r2(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 o2(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 l2(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 c2(e){const{scrollTop:t,scrollHeight:n,clientHeight:r,threshold:s}=e;return n-t-r<=s}var u2=A("<pre> </pre>");function d2(e,t){ie(t,!0);const n=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,r=F(()=>t.chunks.join("").replace(n,""));var s=u2();let i;var o=p(s,!0);h(s),O(()=>{i=he(s,1,"shell-text svelte-ypr8s",null,i,{stderr:t.stream==="stderr"}),z(o,a(r))}),k(e,s),ae()}var f2=A('<div class="shell-prompt svelte-u0gb59"><span class="shell-prompt-cwd svelte-u0gb59"> </span> <span class="shell-prompt-arrow svelte-u0gb59">❯</span> <span class="shell-prompt-line svelte-u0gb59"> </span></div>');function v2(e,t){var n=f2(),r=p(n),s=p(r,!0);h(r);var i=w(r,4),o=p(i,!0);h(i),h(n),O(()=>{z(s,t.cwd),z(o,t.line)}),k(e,n)}var h2=A("<div> </div>");function Zu(e,t){var n=h2();let r;var s=p(n,!0);h(n),O(()=>{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)}),k(e,n)}var p2=A('<div class="shell-rich svelte-1rnhl05"><!></div>');function m2(e,t){var n=p2(),r=p(n);ii(r,()=>t.component,(s,i)=>{i(s,oi(()=>t.componentProps))}),h(n),k(e,n)}const ml=new Map;function Fn(e,t){const n=ml.get(e);if(n&&n!==t){console.warn(`[shell-shard/rich-registry] duplicate registration for key "${e}" — keeping first`);return}ml.set(e,t)}function b2(e){return ml.get(e)??null}var g2=A('<span class="jump-pill__count svelte-isy3jt"> </span>'),y2=A('<div class="jump-pill svelte-isy3jt" data-sh3-jump-pill=""><!></div>'),_2=A('<div class="shell-scrollback-wrap svelte-isy3jt"><div class="shell-scrollback svelte-isy3jt"><div class="content"></div></div> <!></div>');function w2(e,t){ie(t,!0);let n=V(null),r=V(null),s=V(!0),i=V(0);const o=4;function l(){return a(n)?c2({scrollTop:a(n).scrollTop,scrollHeight:a(n).scrollHeight,clientHeight:a(n).clientHeight,threshold:o}):!0}function c(){a(n)&&(a(n).scrollTop=a(n).scrollHeight,S(s,!0),S(i,0))}function u(){l()?(S(s,!0),S(i,0)):S(s,!1)}let d=0;Se(()=>{if(!a(r)||!a(n))return;d=a(n).scrollHeight;const b=new ResizeObserver(()=>{if(!a(n))return;const C=a(n).scrollHeight,_=C>d;d=C,a(s)?a(n).scrollTop=C:_&&mr(i)});return b.observe(a(r)),()=>b.disconnect()});var f=_2(),v=p(f),m=p(v);be(m,21,()=>t.scrollback.entries,b=>b.id,(b,C)=>{var _=De(),y=ve(_);{var T=P=>{d2(P,{get stream(){return a(C).stream},get chunks(){return a(C).chunks}})},I=P=>{{let L=F(()=>t.showPromptCwd?a(C).cwd:"");v2(P,{get cwd(){return a(L)},get line(){return a(C).line}})}},D=P=>{Zu(P,{get text(){return a(C).text},get level(){return a(C).level}})},R=P=>{const L=F(()=>a(C).component??(a(C).componentKey?b2(a(C).componentKey):null));var N=De(),E=ve(N);{var M=B=>{m2(B,{get component(){return a(L)},get componentProps(){return a(C).props}})},j=B=>{{let W=F(()=>`<rich entry: ${a(C).componentKey??"unknown"} not registered>`);Zu(B,{get text(){return a(W)},level:"info"})}};U(E,B=>{a(L)?B(M):B(j,-1)})}k(P,N)};U(y,P=>{a(C).kind==="text"?P(T):a(C).kind==="prompt"?P(I,1):a(C).kind==="status"?P(D,2):a(C).kind==="rich"&&P(R,3)})}k(b,_)}),h(m),Ne(m,b=>S(r,b),()=>a(r)),h(v),Ne(v,b=>S(n,b),()=>a(n));var x=w(v,2);{var g=b=>{var C=y2(),_=p(C);{let y=F(()=>a(i)>0?`${a(i)} New — jump to bottom`:"Jump to bottom"),T=F(()=>a(i)>0?`Jump to bottom, ${a(i)} New`:"Jump to bottom");Un(_,{variant:"default",icon:"chevron-down",get title(){return a(y)},get ariaLabel(){return a(T)},onclick:c,children:(I,D)=>{var R=De(),P=ve(R);{var L=N=>{var E=g2(),M=p(E);h(E),O(()=>z(M,`${a(i)??""} New`)),k(N,E)};U(P,N=>{a(i)>0&&N(L)})}k(I,R)},$$slots:{default:!0}})}h(C),k(b,C)};U(x,b=>{a(s)||b(g)})}h(f),Ue("scroll",v,u),k(e,f),ae()}var k2=A('<span class="sh3-cmdline__prefix svelte-ngn09j"><!></span>'),x2=A('<div data-sh3-passthrough-modifiers=""><!> <input type="text" class="sh3-cmdline__decoy svelte-ngn09j" tabindex="-1" aria-hidden="true"/> <input type="password" class="sh3-cmdline__decoy svelte-ngn09j" tabindex="-1" aria-hidden="true"/> <input type="search" spellcheck="false" autocomplete="off" autocapitalize="off" aria-autocomplete="none" data-1p-ignore="" data-lpignore="true" class="sh3-cmdline__input svelte-ngn09j"/></div>');function S2(e,t){ie(t,!0);let n=te(t,"value",15,""),r=te(t,"disabled",3,!1),s=V(null);function i(v){return v.selectionStart!==null&&v.selectionEnd!==null&&v.selectionStart!==v.selectionEnd}function o(v){(v.ctrlKey||v.metaKey)&&!v.altKey&&v.key==="c"&&a(s)&&i(a(s))||t.onkeydown?.(v)}Se(()=>{!r()&&a(s)&&a(s).focus()});var l=x2();let c;var u=p(l);{var d=v=>{var m=k2(),x=p(m);$t(x,()=>t.prefix),h(m),k(v,m)};U(u,v=>{t.prefix&&v(d)})}var f=w(u,6);xe(f),Ne(f,v=>S(s,v),()=>a(s)),h(l),O(()=>{c=he(l,1,"sh3-cmdline svelte-ngn09j",null,c,{"sh3-cmdline--disabled":r()}),se(f,"name",t.name),f.disabled=r()}),K("keydown",f,o),Ue("focus",f,function(...v){t.onfocus?.apply(this,v)}),Te(f,n),k(e,l),ae()}pe(["keydown"]);var I2=A('<span class="shell-input-cwd svelte-1dfv2gk"> </span>'),E2=A('<!> <span class="shell-input-arrow svelte-1dfv2gk">❯</span>',1),A2=A('<div class="shell-input-row svelte-1dfv2gk"><!></div>');function C2(e,t){ie(t,!0);let n=te(t,"showCwd",3,!0),r=V(""),s=V(null),i=V("");function o(){if(t.locked)return;const v=a(r);v.trim()&&(S(r,""),S(s,null),t.onSubmit(v))}function l(){t.history.length!==0&&(a(s)===null?(S(i,a(r),!0),S(s,t.history.length-1)):a(s)>0&&mr(s,-1),S(r,t.history[a(s)]??"",!0))}function c(){a(s)!==null&&(a(s)<t.history.length-1?(mr(s),S(r,t.history[a(s)],!0)):(S(s,null),S(r,a(i),!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(),S(r,""),S(s,null)):v.ctrlKey&&v.key==="l"&&(v.preventDefault(),S(r,"clear"),o())}var d=A2(),f=p(d);S2(f,{get disabled(){return t.locked},name:"shell-cmdline",onkeydown:u,onfocus:()=>t.onFocus?.(),get value(){return a(r)},set value(m){S(r,m,!0)},prefix:m=>{var x=E2(),g=ve(x);{var b=C=>{var _=I2(),y=p(_,!0);h(_),O(()=>z(y,t.cwd)),k(C,_)};U(g,C=>{n()&&C(b)})}zt(2),k(m,x)},$$slots:{prefix:!0}}),h(d),k(e,d),ae()}class T2{list(){return oc()}get(t){return Qi(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(" "),i=s===-1?r:r.slice(0,s),o=s===-1?"":r.slice(s+1),l=Qi(i);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 R2{#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 L2={id:"bash",label:"Bash",requiresRole:"admin",transport:"ws",autoRelocate:!1,showCwd:!0},M2={id:"sh3",label:"SH3",transport:"none",autoRelocate:!0,showCwd:!1};function P2(e){e.register(L2),e.register(M2)}function vp(e){return`sh3.shell.lastMode.${e}`}function hp(e){try{return globalThis.localStorage?.getItem(vp(e))??null}catch{return null}}function Qu(e,t){try{globalThis.localStorage?.setItem(vp(e),t)}catch{}}function D2(e,t,n){const r=hp(t);if(r){const i=e.get(r);if(i&&(!i.requiresRole||i.requiresRole===n))return i}const s=n==="admin"?"bash":"sh3";return e.get(s)}function Ni(e,t){return e.entries.find(n=>n.kind==="rich"&&n.id===t)}function j2(e,t){return{update(n){const r=Ni(e,t);r&&Object.assign(r.props,n)}}}function $u(e){return e.entries[e.entries.length-1].id}function ed(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()}),j2(t,$u(t))},stream(n,r){t.push({kind:"rich",component:n,props:{...r,__streamState:"streaming"},ts:Date.now()});const s=$u(t);return{append(i){const o=Ni(t,s);o&&Object.assign(o.props,i)},complete(){const i=Ni(t,s);i&&(i.props.__streamState="complete")},error(i){const o=Ni(t,s);o&&(o.props.__streamState="error"),t.push({kind:"status",text:`mode: ${i?.message??String(i)}`,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 z2(e){let t=null;async function n(s,i){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(i,{globalOnly:!1});if(u.kind==="forward"){const d=i.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:i,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=ed({scrollback:e.buffer().scrollback,busy:e.busy,invoke:n});await l.dispatch({line:i,cwd:e.cwd(),signal:t?.signal??new AbortController().signal},c)}async function r(s){t?.abort();const i=new AbortController;t=i;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=ed({scrollback:e.buffer().scrollback,busy:e.busy,invoke:n}),f=e.busy();try{await u.dispatch({line:l.line,cwd:e.cwd(),signal:i.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 O2(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 N2=A('<div class="toolbar svelte-gnowwz"><div class="toolbar-slots svelte-gnowwz"></div></div>');function q2(e,t){ie(t,!0);let n=te(t,"slotProps",19,()=>({})),r=F(()=>t.registry.list(t.ctx));var s=N2(),i=p(s);be(i,21,()=>a(r),o=>o.id,(o,l)=>{const c=F(()=>a(l).component);var u=De(),d=ve(u);ii(d,()=>a(c),(f,v)=>{v(f,oi(()=>n()[a(l).id]??{}))}),k(o,u)}),h(i),h(s),k(e,s),ae()}class B2{#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 F2=A('<span class="mode-label svelte-1i4cqlj"> </span>');function V2(e,t){ie(t,!0);let n=F(()=>t.modes.map(l=>({value:l.id,label:l.label})));var r=De(),s=ve(r);{var i=l=>{Uh(l,{get options(){return a(n)},get value(){return t.mode.id},size:"sm",onchange:c=>t.onSelect(c)})},o=l=>{var c=F2(),u=p(c,!0);h(c),O(()=>z(u,t.mode.label)),k(l,c)};U(s,l=>{t.modes.length>=2?l(i):t.modes.length===1&&l(o,1)})}k(e,r),ae()}var U2=A('<button class="focus-lock-btn svelte-1q6gbap"> </button>');function H2(e,t){var n=U2(),r=p(n,!0);h(n),O(()=>{se(n,"title",t.locked?"Unlock focus":"Lock focus"),z(r,t.locked?"🔒":"🔓")}),K("click",n,function(...s){t.onToggle?.apply(this,s)}),k(e,n)}pe(["click"]);var K2=A('<span class="target-shard svelte-1nn2m6x" title="Target shard"> </span>');function W2(e,t){var n=K2(),r=p(n);h(n),O(()=>z(r,`→ ${t.target??"—"??""}`)),k(e,n)}var Y2=A('<span class="label"> </span>'),X2=A('<div class="busy svelte-7wyurd" role="status" aria-live="polite"><span class="spinner svelte-7wyurd" aria-hidden="true"></span> <!></div>');function G2(e,t){var n=De(),r=ve(n);{var s=i=>{var o=X2(),l=w(p(o),2);{var c=u=>{var d=Y2(),f=p(d,!0);h(d),O(()=>z(f,t.label)),k(u,d)};U(l,u=>{t.label&&u(c)})}h(o),k(i,o)};U(r,i=>{t.active&&i(s)})}k(e,n)}var J2=A('<div class="shell-terminal svelte-13komre"><!> <!> <!></div>');function Z2(e,t){ie(t,!0);const n=ke(()=>new a2),r=new Map;function s(q){let H=r.get(q);return H||(H=new e2(q),n.hydrate(H),r.set(q,H)),H}const i=new T2,o=new wh,l=new R2;P2(l);let c=V(fe(ke(()=>t.contributions.list(Rs))));Se(()=>{const q=t.contributions.onChange(Rs,()=>{S(c,t.contributions.list(Rs),!0)});return()=>q()});function u(q){return{id:q.id,label:q.label,requiresRole:q.requiresRole,transport:"custom",autoRelocate:q.autoRelocate??!1,showCwd:q.showCwd??!1}}let d=F(()=>[...l.list(t.role),...a(c).filter(q=>!q.requiresRole||q.requiresRole===t.role).map(u)]),f=V(fe(ke(()=>{const q=hp(t.userId);if(q){const $=[...l.list(t.role),...a(c).filter(X=>!X.requiresRole||X.requiresRole===t.role).map(u)].find(X=>X.id===q);if($)return $}return D2(l,t.userId,t.role)}))),v=V(0);function m(){S(v,performance.now(),!0)}const x=ke(()=>v0()),g=F(()=>s(a(f).id));Se(()=>{for(const[q,H]of Object.entries(_.historyByMode)){const $=s(q);$.history.length<H.length&&($.history=[...H])}}),Se(()=>{a(g).scrollback.entries.length,a(g).history.length,a(g).modeId==="bash"?n.flush(a(g),_.lastSeq):n.flush(a(g))});function b(q){const H=a(d).find($=>$.id===q);H&&(H.requiresRole&&H.requiresRole!==t.role||(L(),S(f,H,!0),Qu(t.userId,q)))}Se(()=>{if(!a(d).find(q=>q.id===a(f).id)){const q=a(d).find(H=>H.id==="sh3")??a(d)[0];if(q){const H=a(f).id;S(f,q,!0),Qu(t.userId,q.id),s(q.id).scrollback.push({kind:"status",text:`mode '${H}' is no longer available — switched to '${q.id}'`,level:"warn",ts:Date.now()})}}});const C=ke(()=>({...t.shell,setMode:q=>{const H=a(d).find($=>$.id===q);return!H||H.requiresRole&&H.requiresRole!==t.role?!1:(b(q),!0)},listModes:()=>a(d).map(q=>({id:q.id,label:q.label})),getMode:()=>({id:a(f).id,label:a(f).label}),dispatchToTerminal:hc({headless:!1})})),_=ke(()=>new _h(t.wsUrl));let y=0,T=V(fe(new Map));function I(q){const H=++y;a(T).set(H,q),S(T,new Map(a(T)),!0);let $=!1;return()=>{$||($=!0,a(T).delete(H),S(T,new Map(a(T)),!0))}}let D=F(()=>a(T).size>0),R=F(()=>{if(a(T).size===0)return null;let q;for(const H of a(T).values())q=H;return q??null});const{dispatch:P,cancel:L}=ke(()=>z2({mode:()=>a(f),role:()=>t.role,resolver:i,buffer:()=>a(g),session:_,sh3:C,fs:o,cwd:()=>_.cwd,busy:I,customMode:q=>a(c).find(H=>H.id===q)??null}));let N=V(!1),E=V(null);const M=new B2;M.register({id:"busy",order:5,visible:()=>!0,component:G2}),M.register({id:"mode",order:10,visible:()=>!0,component:V2}),M.register({id:"focus-lock",order:20,visible:q=>q.mode.id==="sh3",component:H2}),M.register({id:"target-shard",order:30,visible:q=>q.mode.id==="sh3",component:W2});function j(q){if(q.type==="tabs")return q.tabs[q.activeTab]?.viewId??null;if(q.type==="split"){for(const H of q.children){const $=j(H);if($!==null)return $}return null}return q.viewId??null}function B(){try{const q=Vt(),H=j(q.docked);if(!H)return null;const $=H.indexOf(":");return $>=0?H.slice(0,$):H}catch{return null}}Se(()=>{const q=B(),H=a(f).autoRelocate,$=a(N);(async()=>{const X=await O2({modeAutoRelocate:H,focusLocked:$,focusedShardId:q,currentShardId:"shell"},o);X.kind==="relocate"&&X.path!==void 0&&(_.cwd=X.path),q&&q!=="shell"?S(E,q,!0):q||S(E,null)})()});function W(q){if(q.t==="replay"){o2(s("bash"),q.events);return}if(q.t!=="event")return;const H=q.event,$=s("bash");switch(H.kind){case"prompt":$.scrollback.push({kind:"prompt",cwd:H.cwd,line:H.line,ts:H.ts}),$.locked=!0;break;case"stdout":$.scrollback.push({kind:"text",stream:"stdout",chunks:[H.data],ts:H.ts});break;case"stderr":$.scrollback.push({kind:"text",stream:"stderr",chunks:[H.data],ts:H.ts});break;case"exit":(H.signal||H.code!==null&&H.code!==0)&&$.scrollback.push({kind:"status",text:H.signal?`shell: process exited (${H.signal})`:`shell: process exited (${H.code})`,level:"error",ts:H.ts}),$.locked=!1;break;case"status":$.scrollback.push({kind:"status",text:H.text,level:H.level,ts:H.ts});break}}let ee=null,G=null;Fl(()=>{ee=_.onMessage(W),s("bash");const q=n.readLastSeq("bash");q!==void 0&&(_.lastSeq=q),_.connect(),G=h0({id:x,dispatch:P,getFocusStamp:()=>a(v),getMode:()=>a(f)})}),Vl(()=>{ee?.(),_.close(),G?.()});var Z=J2(),Q=p(Z);{let q=F(()=>({mode:a(f),role:t.role})),H=F(()=>({busy:{active:a(D),label:a(R)},mode:{mode:a(f),modes:a(d),onSelect:b},"focus-lock":{locked:a(N),onToggle:()=>S(N,!a(N))},"target-shard":{target:a(E)}}));q2(Q,{get registry(){return M},get ctx(){return a(q)},get slotProps(){return a(H)}})}var Y=w(Q,2);{let q=F(()=>a(f).showCwd||!1);w2(Y,{get showPromptCwd(){return a(q)},get scrollback(){return a(g).scrollback}})}var J=w(Y,2);{let q=F(()=>l2(_.cwd,_.tenantRoot)),H=F(()=>a(f).showCwd!==!1);C2(J,{get cwd(){return a(q)},get showCwd(){return a(H)},get locked(){return a(g).locked},get history(){return a(g).history},get session(){return _},get onSubmit(){return P},onFocus:m})}h(Z),k(e,Z),ae()}var Q2=A('<tr><td class="svelte-m248jy"><button type="button" class="svelte-m248jy"> </button></td><td class="svelte-m248jy"> </td></tr>'),$2=A('<div class="shell-rich-help svelte-m248jy"><table class="svelte-m248jy"><thead><tr><th class="svelte-m248jy">Name</th><th class="svelte-m248jy">Summary</th></tr></thead><tbody></tbody></table></div>');function pp(e,t){ie(t,!0);var n=$2(),r=p(n),s=w(p(r));be(s,21,()=>t.data.rows,i=>i.name,(i,o)=>{var l=Q2(),c=p(l),u=p(c),d=p(u,!0);h(u),h(c);var f=w(c),v=p(f,!0);h(f),h(l),O(()=>{z(d,a(o).name),z(v,a(o).summary)}),K("click",u,()=>t.data.onClickName(a(o).name)),k(i,l)}),h(s),h(r),h(n),k(e,n),ae()}pe(["click"]);const mp="help-table";Fn(mp,pp);function eA(){return{name:"help",summary:"List verbs or show detail for one.",globalVerb:!0,async run(e){const t=oc().map(n=>({name:n.name,summary:n.summary}));e.scrollback.push({kind:"rich",componentKey:mp,component:pp,props:{data:{rows:t,onClickName:n=>e.dispatch(n)}},ts:Date.now()})}}}const tA={name:"clear",summary:"Clear the scrollback (local only — other views are unaffected).",globalVerb:!0,async run(e){e.scrollback.clear()}},nA={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 rA=A('<li class="svelte-o8m437"><button type="button" class="svelte-o8m437"> </button></li>'),sA=A('<div class="shell-rich-history svelte-o8m437"><ol class="svelte-o8m437"></ol></div>');function bp(e,t){ie(t,!0);var n=sA(),r=p(n);be(r,21,()=>t.data.lines,gt,(s,i)=>{var o=rA(),l=p(o),c=p(l,!0);h(l),h(o),O(()=>z(c,a(i))),K("click",l,()=>t.data.onClickLine(a(i))),k(s,o)}),h(r),h(n),k(e,n),ae()}pe(["click"]);const gp="history-list";Fn(gp,bp);const iA={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,i=(e.session.historyByMode[r]??[]).slice(-n);e.scrollback.push({kind:"rich",componentKey:gp,component:bp,props:{data:{lines:i,onClickLine:o=>e.dispatch(o)}},ts:Date.now()})}};var aA=A('<tr><td class="svelte-1u5krjz"><button type="button" class="svelte-1u5krjz"> </button></td><td class="svelte-1u5krjz"> </td></tr>'),oA=A('<div class="shell-rich-apps svelte-1u5krjz"><table class="svelte-1u5krjz"><thead><tr><th class="svelte-1u5krjz">ID</th><th class="svelte-1u5krjz">Label</th></tr></thead><tbody></tbody></table></div>');function yp(e,t){ie(t,!0);var n=oA(),r=p(n),s=w(p(r));be(s,21,()=>t.data.apps,i=>i.id,(i,o)=>{var l=aA(),c=p(l),u=p(c),d=p(u,!0);h(u),h(c);var f=w(c),v=p(f,!0);h(f),h(l),O(()=>{z(d,a(o).id),z(v,a(o).label)}),K("click",u,()=>t.data.onClickApp(a(o).id)),k(i,l)}),h(s),h(r),h(n),k(e,n),ae()}pe(["click"]);var lA=A('<div class="shell-rich-appcard svelte-npcp8i"><h3 class="svelte-npcp8i"> </h3> <p class="svelte-npcp8i"><strong>ID:</strong> </p> <p class="svelte-npcp8i"><strong>Shards:</strong> </p></div>');function _p(e,t){ie(t,!0);var n=lA(),r=p(n),s=p(r,!0);h(r);var i=w(r,2),o=w(p(i));h(i);var l=w(i,2),c=w(p(l));h(l),h(n),O(u=>{z(s,t.data.label),z(o,` ${t.data.id??""}`),z(c,` ${u??""}`)},[()=>t.data.shards.join(", ")]),k(e,n),ae()}const wp="apps-table",kp="app-card";Fn(wp,yp);Fn(kp,_p);const cA={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:wp,component:yp,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()})}},uA={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:kp,component:_p,props:{data:{id:t.id,label:t.label,shards:[]}},ts:Date.now()})}};var dA=A('<tr><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td></tr>'),fA=A('<div class="shell-rich-shards svelte-sc3ux4"><table class="svelte-sc3ux4"><thead><tr><th class="svelte-sc3ux4">ID</th><th class="svelte-sc3ux4">Label</th><th class="svelte-sc3ux4">Version</th></tr></thead><tbody></tbody></table></div>');function xp(e,t){ie(t,!0);var n=fA(),r=p(n),s=w(p(r));be(s,21,()=>t.data.shards,i=>i.id,(i,o)=>{var l=dA(),c=p(l),u=p(c,!0);h(c);var d=w(c),f=p(d,!0);h(d);var v=w(d),m=p(v,!0);h(v),h(l),O(()=>{z(u,a(o).id),z(f,a(o).label),z(m,a(o).version)}),k(i,l)}),h(s),h(r),h(n),k(e,n),ae()}const Sp="shards-table";Fn(Sp,xp);const vA={name:"shards",summary:"List active shards.",programmatic:!0,async run(e){const t=e.sh3.listShards();e.scrollback.push({kind:"rich",componentKey:Sp,component:xp,props:{data:{shards:t}},ts:Date.now()})}};var hA=A('<tr><td class="svelte-15elbr1"> </td><td class="svelte-15elbr1"> </td><td class="svelte-15elbr1"> </td><td class="svelte-15elbr1"><button type="button" class="svelte-15elbr1">Close</button></td></tr>'),pA=A('<div class="shell-rich-views svelte-15elbr1"><table class="svelte-15elbr1"><thead><tr><th class="svelte-15elbr1">Slot ID</th><th class="svelte-15elbr1">View ID</th><th class="svelte-15elbr1">Label</th><th class="svelte-15elbr1">Action</th></tr></thead><tbody></tbody></table></div>');function Ip(e,t){ie(t,!0);var n=pA(),r=p(n),s=w(p(r));be(s,21,()=>t.data.views,i=>i.slotId,(i,o)=>{var l=hA(),c=p(l),u=p(c,!0);h(c);var d=w(c),f=p(d,!0);h(d);var v=w(d),m=p(v,!0);h(v);var x=w(v),g=p(x);h(x),h(l),O(()=>{z(u,a(o).slotId),z(f,a(o).viewId),z(m,a(o).label)}),K("click",g,()=>t.data.onClose(a(o).slotId)),k(i,l)}),h(s),h(r),h(n),k(e,n),ae()}pe(["click"]);const Ep="views-table";Fn(Ep,Ip);const mA={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:Ep,component:Ip,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()})}},bA={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()})}},gA={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()})}},yA={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(i=>` ${i.floatId.padEnd(24)} ${i.viewId??"-"} ${i.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()})}},_A={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 wA=A('<tr><td class="svelte-1w7onag"> </td><td class="svelte-1w7onag"> </td></tr>'),kA=A('<div class="shell-rich-zones svelte-1w7onag"><table class="svelte-1w7onag"><thead><tr><th class="svelte-1w7onag">Shard ID</th><th class="svelte-1w7onag">Zones</th></tr></thead><tbody></tbody></table></div>');function Ap(e,t){ie(t,!0);var n=kA(),r=p(n),s=w(p(r));be(s,21,()=>t.data.rows,i=>i.shardId,(i,o)=>{var l=wA(),c=p(l),u=p(c,!0);h(c);var d=w(c),f=p(d,!0);h(d),h(l),O(v=>{z(u,a(o).shardId),z(f,v)},[()=>a(o).zones.join(", ")]),k(i,l)}),h(s),h(r),h(n),k(e,n),ae()}var xA=A('<div class="shell-rich-zonetree svelte-13iiyr1"><pre class="svelte-13iiyr1"> </pre></div>');function Cp(e,t){ie(t,!0);var n=xA(),r=p(n),s=p(r,!0);h(r),h(n),O(i=>z(s,i),[()=>JSON.stringify(t.data.value,null,2)]),k(e,n),ae()}const Tp="zones-table",Rp="zone-tree";Fn(Tp,Ap);Fn(Rp,Cp);const SA={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:Tp,component:Ap,props:{data:{rows:n}},ts:Date.now()})}},IA={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:Rp,component:Cp,props:{data:{value:s}},ts:Date.now()})}};var EA=A('<tr><td class="svelte-1ox8vog"> </td><td class="svelte-1ox8vog"> </td></tr>'),AA=A('<div class="shell-rich-env svelte-1ox8vog"><table class="svelte-1ox8vog"><thead><tr><th class="svelte-1ox8vog">Key</th><th class="svelte-1ox8vog">Value</th></tr></thead><tbody></tbody></table></div>');function Lp(e,t){ie(t,!0);var n=AA(),r=p(n),s=w(p(r));be(s,21,()=>Object.entries(t.data.env),([i,o])=>i,(i,o)=>{var l=F(()=>Rd(a(o),2));let c=()=>a(l)[0],u=()=>a(l)[1];var d=EA(),f=p(d),v=p(f,!0);h(f);var m=w(f),x=p(m,!0);h(m),h(d),O(()=>{z(v,c()),z(x,u())}),k(i,d)}),h(s),h(r),h(n),k(e,n),ae()}const Mp="env-table";Fn(Mp,Lp);const CA={name:"env",summary:"Show the session environment.",async run(e){const t=e.session.env;e.scrollback.push({kind:"rich",componentKey:Mp,component:Lp,props:{data:{env:t}},ts:Date.now()})}};async function TA(){try{const{TauriStoreBackend:e}=await ha(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:Ed}}}async function RA(){try{const{LazyStore:e}=await ha(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 LA={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 RA(),location.reload()}};function MA(e){e.registerVerb(eA()),e.registerVerb(tA),e.registerVerb(nA),e.registerVerb(iA),e.registerVerb(cA),e.registerVerb(uA),e.registerVerb(vA),e.registerVerb(mA),e.registerVerb(bA),e.registerVerb(_A),e.registerVerb(gA),e.registerVerb(yA),e.registerVerb(SA),e.registerVerb(IA),e.registerVerb(CA),e.registerVerb(LA)}const Pp={manifest:$E,activate(e){MA(e);const t=hx(e.zones),n=e.state({workspace:{buffers:{}}});t2(n),e.actions.register({id:"shell.terminal.toggle",label:"Open Terminal",scope:["home","app"],defaultShortcut:"²",allowInInputs:!1,run(){Oa("shell:terminal")||Pe.open("shell:terminal",{title:"Sh3"})}});const r={mount(s,i){const o=typeof location<"u"&&location.protocol==="https:"?"wss":"ws",l=typeof location<"u"?location.host:"localhost",c=`${o}://${l}/api/shell/session`,d=$r()?.id??"guest",f=It()?"admin":"user",v=Ve(Z2,{target:s,props:{shell:t,wsUrl:c,userId:d,role:f,contributions:e.contributions}});return{unmount(){et(v)},closable:!0}}};e.registerView("shell:terminal",r)},autostart(){},deactivate(){n2()}};var PA=A('<p class="error svelte-1w8uhw5">The source float was closed.</p>'),DA=A('<p class="error svelte-1w8uhw5">No standalone views in this float.</p>'),jA=A('<li class="svelte-1w8uhw5"> <span class="muted svelte-1w8uhw5"> </span></li>'),zA=A('<div class="preview svelte-1w8uhw5"><div class="preview-label svelte-1w8uhw5"> </div> <ul class="preview-list svelte-1w8uhw5"></ul></div>'),OA=A('<div class="layout-save svelte-1w8uhw5"><h2 class="svelte-1w8uhw5">Save layout as…</h2> <label class="row svelte-1w8uhw5"><span class="svelte-1w8uhw5">Name</span> <input type="text" class="name-input svelte-1w8uhw5" placeholder="Layout name"/></label> <!> <div class="actions svelte-1w8uhw5"><button type="button" class="primary svelte-1w8uhw5">Save</button> <button type="button" class="svelte-1w8uhw5">Cancel</button></div></div>');function NA(e,t){ie(t,!0);const n=ke(()=>Pe.list().find(I=>I.id===t.floatId)?.content??null),r=F(()=>n?Ga(n,t.isStandalone):null),s=F(()=>a(r)?u(a(r)):[]),i=F(()=>n===null),o=F(()=>!a(i)&&a(r)===null);let l=V(fe(ke(()=>t.defaultName)));const c=F(()=>a(l).trim()===""||a(i)||a(o));function u(I){if(I.type==="slot")return I.viewId?[I.viewId]:[];if(I.type==="tabs"){const D=[];for(const R of I.tabs)R.viewId&&D.push(R.viewId);return D}return I.children.flatMap(u)}function d(){a(c)||(t.onConfirm(a(l).trim()),t.close())}var f=OA(),v=w(p(f),2),m=w(p(v),2);xe(m),h(v);var x=w(v,2);{var g=I=>{var D=PA();k(I,D)},b=I=>{var D=DA();k(I,D)},C=I=>{var D=zA(),R=p(D),P=p(R);h(R);var L=w(R,2);be(L,21,()=>a(s),gt,(N,E)=>{var M=jA(),j=p(M),B=w(j),W=p(B);h(B),h(M),O(ee=>{z(j,`${ee??""} `),z(W,`(${a(E)??""})`)},[()=>t.resolveLabel(a(E))]),k(N,M)}),h(L),h(D),O(()=>z(P,`Captured views (${a(s).length??""}):`)),k(I,D)};U(x,I=>{a(i)?I(g):a(o)?I(b,1):I(C,-1)})}var _=w(x,2),y=p(_),T=w(y,2);h(_),h(f),O(()=>y.disabled=a(c)),Te(m,()=>a(l),I=>S(l,I)),K("click",y,d),K("click",T,()=>t.close()),k(e,f),ae()}pe(["click"]);function qA(){const e=fi();return!e||e.type!=="float-header"?null:e.ref}function Dc(e){return Hs().some(t=>t.viewId===e)}function BA(e){return Hs().find(t=>t.viewId===e)?.label??e}function FA(){return`sl-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function VA(e,t){const n=J3(e,Dc);if(n===null)return null;const r={id:FA(),name:t,createdAt:Date.now(),size:n.size,content:n.content};return Y3(r),r}function Dp(){const e=fi();return!e||e.type!=="saved-layout"?null:e.ref}function UA(e,t){const n=t.icon===void 0&&t.color===void 0?void 0:{icon:t.icon,color:t.color};$h(e,{name:t.label,appearance:n})}function HA(e){$h(e,{appearance:void 0})}function KA(e){const t=Dp();if(!t)return;const n=wr().find(s=>s.id===t.layoutId);if(!n)return;const r={entityLabel:n.name,initialAppearance:n.appearance,defaultIcon:"eye",requireLabel:!0,onSave:s=>UA(t.layoutId,s),onReset:()=>HA(t.layoutId)};nn.open(np,r)}function WA(e){X3(e)}function YA(e){const t=Dp();if(!t)return;const n=wr().find(r=>r.id===t.layoutId);n&&nn.open(ip,{title:`Delete saved layout "${n.name}"?`,body:"This cannot be undone.",confirmLabel:"Delete",confirmTone:"danger",onConfirm:()=>WA(t.layoutId)})}function XA(e){const t=qA();if(!t)return;const n={floatId:t.floatId,isStandalone:Dc,resolveLabel:BA,defaultName:`Layout ${wr().length+1}`,onConfirm:r=>{VA(t.floatId,r)}};nn.open(NA,n)}const jp={manifest:{id:"__layouts__",label:"Saved Layouts",version:bn,views:[]},activate(e){const t=e.state({user:{layouts:[]}});K3(t);const n=(o,l)=>{Sn.notify(o,{level:l})},r={id:"sh3.layout.save",label:"Save layout as…",scope:{element:"float-header"},contextItem:!0,paletteItem:!1,run:XA};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:KA}),e.actions.register({id:"sh3.layout.delete",label:"Delete",scope:{element:"saved-layout"},contextItem:!0,run:YA});const s=new Map,i=new Map;is(()=>{Se(()=>{const o=wr(),l=new Set;for(const c of o){l.add(c.id);const u=s.get(c.id);if(u&&i.get(c.id)===c.name)continue;u&&(u(),s.delete(c.id),i.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=wr().find(v=>v.id===c.id);f&&tp(f,Dc,n)}});s.set(c.id,d),i.set(c.id,c.name)}for(const c of[...s.keys()])l.has(c)||(s.get(c)(),s.delete(c),i.delete(c))})})},autostart(){},deactivate(){W3()}},zp={manifest:{id:"sh3-store-app",label:"Package Store",version:bn,requiredShards:["sh3-store"],layoutVersion:1,admin:!0},initialLayout:{type:"tabs",activeTab:0,tabs:[{slotId:"store.browse",viewId:"sh3-store:browse",label:"Browse"}]}};var GA=A('<div class="admin-error svelte-4q792t"> </div>'),JA=A('<form class="admin-create-form svelte-4q792t"><input class="admin-input svelte-4q792t" type="text" placeholder="Username"/> <input class="admin-input svelte-4q792t" type="text" placeholder="Display name"/> <input class="admin-input svelte-4q792t" type="password" placeholder="Password"/> <select class="admin-input svelte-4q792t"><option>User</option><option>Admin</option></select> <button type="submit" class="admin-btn svelte-4q792t">Create</button> <!></form>'),ZA=A('<p class="admin-muted svelte-4q792t">Loading...</p>'),QA=A('<p class="admin-error svelte-4q792t"> </p>'),$A=A('<form class="admin-edit-form svelte-4q792t"><input class="admin-input svelte-4q792t" type="text"/> <input class="admin-input svelte-4q792t" type="password" placeholder="New password (leave empty to keep)"/> <select class="admin-input svelte-4q792t"><option>User</option><option>Admin</option></select> <div class="admin-edit-actions svelte-4q792t"><button type="submit" class="admin-btn svelte-4q792t">Save</button> <button type="button" class="admin-btn-secondary svelte-4q792t">Cancel</button></div></form>'),eC=A('<div class="admin-user-info svelte-4q792t"><span class="admin-user-name svelte-4q792t"> </span> <span class="admin-user-meta svelte-4q792t"> </span></div> <div class="admin-user-actions svelte-4q792t"><button type="button" class="admin-btn-secondary svelte-4q792t">Edit</button> <button type="button" class="admin-btn-danger svelte-4q792t">Delete</button></div>',1),tC=A('<li class="admin-user-item svelte-4q792t"><!></li>'),nC=A('<ul class="admin-user-list svelte-4q792t"></ul>'),rC=A('<div class="admin-users svelte-4q792t"><div class="admin-users-header svelte-4q792t"><h2 class="svelte-4q792t">Users</h2> <button type="button" class="admin-btn svelte-4q792t"> </button></div> <!> <!></div>');function sC(e,t){ie(t,!0);let n=V(fe([])),r=V(!0),s=V(null),i=V(!1),o=V(""),l=V(""),c=V(""),u=V("user"),d=V(null),f=V(null),v=V(""),m=V("user"),x=V("");async function g(){S(r,!0),S(s,null);try{const B=await fetch("/api/admin/users",{credentials:"include"});if(!B.ok)throw new Error("Failed to fetch users");S(n,await B.json(),!0)}catch(B){S(s,B instanceof Error?B.message:"Failed to load users",!0)}finally{S(r,!1)}}async function b(){S(d,null);try{const B=await fetch("/api/admin/users",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:a(o),displayName:a(l)||a(o),password:a(c),role:a(u)})});if(!B.ok){const W=await B.json().catch(()=>({}));S(d,W.error||"Failed to create user",!0);return}S(o,""),S(l,""),S(c,""),S(u,"user"),S(i,!1),await g()}catch{S(d,"Network error")}}function C(B){S(f,B.id,!0),S(v,B.displayName,!0),S(m,B.role,!0),S(x,"")}async function _(){if(!a(f))return;const B={displayName:a(v),role:a(m)};a(x).trim()&&(B.password=a(x));try{if(!(await fetch(`/api/admin/users/${a(f)}`,{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(B)})).ok)return;S(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 T=rC(),I=p(T),D=w(p(I),2),R=p(D,!0);h(D),h(I);var P=w(I,2);{var L=B=>{var W=JA(),ee=p(W);xe(ee);var G=w(ee,2);xe(G);var Z=w(G,2);xe(Z);var Q=w(Z,2),Y=p(Q);Y.value=Y.__value="user";var J=w(Y);J.value=J.__value="admin",h(Q);var q=w(Q,2),H=w(q,2);{var $=X=>{var ue=GA(),de=p(ue,!0);h(ue),O(()=>z(de,a(d))),k(X,ue)};U(H,X=>{a(d)&&X($)})}h(W),O(X=>q.disabled=X,[()=>!a(o).trim()||!a(c).trim()]),Ue("submit",W,X=>{X.preventDefault(),b()}),Te(ee,()=>a(o),X=>S(o,X)),Te(G,()=>a(l),X=>S(l,X)),Te(Z,()=>a(c),X=>S(c,X)),Ds(Q,()=>a(u),X=>S(u,X)),k(B,W)};U(P,B=>{a(i)&&B(L)})}var N=w(P,2);{var E=B=>{var W=ZA();k(B,W)},M=B=>{var W=QA(),ee=p(W,!0);h(W),O(()=>z(ee,a(s))),k(B,W)},j=B=>{var W=nC();be(W,21,()=>a(n),ee=>ee.id,(ee,G)=>{var Z=tC(),Q=p(Z);{var Y=q=>{var H=$A(),$=p(H);xe($);var X=w($,2);xe(X);var ue=w(X,2),de=p(ue);de.value=de.__value="user";var ne=w(de);ne.value=ne.__value="admin",h(ue);var oe=w(ue,2),me=w(p(oe),2);h(oe),h(H),Ue("submit",H,Ie=>{Ie.preventDefault(),_()}),Te($,()=>a(v),Ie=>S(v,Ie)),Te(X,()=>a(x),Ie=>S(x,Ie)),Ds(ue,()=>a(m),Ie=>S(m,Ie)),K("click",me,()=>{S(f,null)}),k(q,H)},J=q=>{var H=eC(),$=ve(H),X=p($),ue=p(X,!0);h(X);var de=w(X,2),ne=p(de);h(de),h($);var oe=w($,2),me=p(oe),Ie=w(me,2);h(oe),O(()=>{z(ue,a(G).displayName),z(ne,`${a(G).username??""} · ${a(G).role??""}`)}),K("click",me,()=>C(a(G))),K("click",Ie,()=>y(a(G).id)),k(q,H)};U(Q,q=>{a(f)===a(G).id?q(Y):q(J,-1)})}h(Z),k(ee,Z)}),h(W),k(B,W)};U(N,B=>{a(r)?B(E):a(s)?B(M,1):B(j,-1)})}h(T),O(()=>z(R,a(i)?"Cancel":"New user")),K("click",D,()=>{S(i,!a(i))}),k(e,T),ae()}pe(["click"]);var iC=A('<p class="admin-muted svelte-1hsgdb4">Loading...</p>'),aC=A('<div class="admin-error svelte-1hsgdb4"> </div>'),oC=A('<div class="admin-auth-fields svelte-1hsgdb4"><label class="admin-toggle svelte-1hsgdb4"><input type="checkbox" class="svelte-1hsgdb4"/> <span>Require sign-in</span> <span class="admin-hint svelte-1hsgdb4">When enabled, unauthenticated visitors see a sign-in wall.</span></label> <label class="admin-toggle svelte-1hsgdb4"><input type="checkbox" class="svelte-1hsgdb4"/> <span>Allow guest browsing</span> <span class="admin-hint svelte-1hsgdb4">When sign-in is required, guests can still browse with session-only data.</span></label> <label class="admin-toggle svelte-1hsgdb4"><input type="checkbox" class="svelte-1hsgdb4"/> <span>Self-registration</span> <span class="admin-hint svelte-1hsgdb4">Visitors can create their own accounts from the sign-in screen.</span></label> <label class="admin-field svelte-1hsgdb4"><span class="svelte-1hsgdb4">Session lifetime (hours)</span> <input type="number" class="admin-input admin-input-sm svelte-1hsgdb4" min="1" max="8760"/></label> <button type="button" class="admin-btn svelte-1hsgdb4"> </button></div> <!>',1),lC=A('<div class="admin-auth svelte-1hsgdb4"><h2 class="svelte-1hsgdb4">Auth Settings</h2> <!></div>');function cC(e,t){ie(t,!0);let n=V(null),r=V(!0),s=V(!1),i=V(null);async function o(){S(r,!0);try{const v=await fetch("/api/admin/settings",{credentials:"include"});if(!v.ok)throw new Error("Failed to fetch settings");S(n,await v.json(),!0)}catch(v){S(i,v instanceof Error?v.message:"Failed to load settings",!0)}finally{S(r,!1)}}async function l(){if(a(n)){S(s,!0),S(i,null);try{const v=await fetch("/api/admin/settings",{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(a(n))});if(!v.ok)throw new Error("Failed to save settings");S(n,await v.json(),!0)}catch(v){S(i,v instanceof Error?v.message:"Failed to save",!0)}finally{S(s,!1)}}}o();var c=lC(),u=w(p(c),2);{var d=v=>{var m=iC();k(v,m)},f=v=>{var m=oC(),x=ve(m),g=p(x),b=p(g);xe(b),zt(4),h(g);var C=w(g,2),_=p(C);xe(_),zt(4),h(C);var y=w(C,2),T=p(y);xe(T),zt(4),h(y);var I=w(y,2),D=w(p(I),2);xe(D),h(I);var R=w(I,2),P=p(R,!0);h(R),h(x);var L=w(x,2);{var N=E=>{var M=aC(),j=p(M,!0);h(M),O(()=>z(j,a(i))),k(E,M)};U(L,E=>{a(i)&&E(N)})}O(()=>{R.disabled=a(s),z(P,a(s)?"Saving...":"Save")}),As(b,()=>a(n).auth.required,E=>a(n).auth.required=E),As(_,()=>a(n).auth.guestAllowed,E=>a(n).auth.guestAllowed=E),As(T,()=>a(n).auth.selfRegistration,E=>a(n).auth.selfRegistration=E),Te(D,()=>a(n).auth.sessionTTL,E=>a(n).auth.sessionTTL=E),K("click",R,l),k(v,m)};U(u,v=>{a(r)?v(d):a(n)&&v(f,1)})}h(c),k(e,c),ae()}pe(["click"]);var uC=A('<button type="button"> </button>'),dC=A('<div class="admin-error svelte-1gkiloq"> </div>'),fC=A('<div class="admin-error svelte-1gkiloq"> </div>'),vC=A(`<div class="admin-system svelte-1gkiloq"><h2 class="svelte-1gkiloq">System</h2> <div class="admin-system-info svelte-1gkiloq"><div class="admin-system-row svelte-1gkiloq"><span class="admin-system-label svelte-1gkiloq">Server version</span> <span> </span></div></div> <section class="admin-system-section svelte-1gkiloq"><h3 class="svelte-1gkiloq">Package bundle cache</h3> <p class="admin-system-hint svelte-1gkiloq">Controls the <code>Cache-Control</code> header on <code>/packages/:id/client.js</code>.
19
+ Set to <strong>0</strong> during development so drop-in bundle replacements take effect on F5.
20
+ Use a long value in production.</p> <input type="range" min="0" max="31536000" step="1" class="svelte-1gkiloq"/> <div class="admin-system-readout svelte-1gkiloq"><code> </code> </div> <div class="admin-system-snaps svelte-1gkiloq"></div> <div class="admin-system-actions svelte-1gkiloq"><button type="button" class="admin-btn svelte-1gkiloq"> </button> <button type="button" class="admin-btn-ghost svelte-1gkiloq">Reset</button> <!></div></section> <section class="admin-system-section svelte-1gkiloq"><h3 class="svelte-1gkiloq">Server control</h3> <div class="admin-system-actions svelte-1gkiloq"><button type="button" class="admin-btn-danger svelte-1gkiloq"> </button> <!></div></section></div>`);function hC(e,t){ie(t,!0);const n=[{value:0,label:"Off (no-store)"},{value:5,label:"5s (dev)"},{value:60,label:"1 min"},{value:3600,label:"1 hour"},{value:86400,label:"1 day"},{value:31536e3,label:"1 year"}];let r=V("..."),s=V(!1),i=V(null),o=V(31536e3),l=V(31536e3),c=V(!1),u=V(null);const d=F(()=>a(o)!==a(l)),f=F(()=>v(a(o)));function v(X){return X===0?"0 seconds (off — browsers never cache)":X<60?`${X} seconds`:X<3600?`${Math.round(X/60)} minutes`:X<86400?`${Math.round(X/3600)} hours`:X<31536e3?`${Math.round(X/86400)} days`:`${Math.round(X/31536e3)} years`}async function m(){try{const X=await fetch("/api/version");if(X.ok){const ue=await X.json();S(r,ue.version,!0)}}catch{}}async function x(){try{const X=await fetch("/api/admin/settings",{credentials:"include"});if(X.ok){const de=(await X.json()).packages?.cacheMaxAge??31536e3;S(o,de,!0),S(l,de,!0)}}catch{}}async function g(){S(c,!0),S(u,null);try{const X=await fetch("/api/admin/settings",{method:"PUT",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({packages:{cacheMaxAge:a(o)}})});if(X.ok){const ue=await X.json();S(l,ue.packages?.cacheMaxAge??a(o),!0),S(o,a(l),!0)}else{const ue=await X.json().catch(()=>({}));S(u,ue.error||"Save failed",!0)}}catch{S(u,"Network error")}finally{S(c,!1)}}async function b(){S(s,!0),S(i,null);try{const X=await fetch("/api/admin/restart",{method:"POST",credentials:"include"});if(!X.ok){const ue=await X.json().catch(()=>({}));S(i,ue.error||"Restart failed",!0),S(s,!1)}}catch{S(i,"Network error"),S(s,!1)}}m(),x();var C=vC(),_=w(p(C),2),y=p(_),T=w(p(y),2),I=p(T,!0);h(T),h(y),h(_);var D=w(_,2),R=w(p(D),4);xe(R);var P=w(R,2),L=p(P),N=p(L,!0);h(L);var E=w(L);h(P);var M=w(P,2);be(M,21,()=>n,X=>X.value,(X,ue)=>{var de=uC();let ne;var oe=p(de,!0);h(de),O(()=>{ne=he(de,1,"admin-snap svelte-1gkiloq",null,ne,{active:a(o)===a(ue).value}),de.disabled=a(c),z(oe,a(ue).label)}),K("click",de,()=>S(o,a(ue).value,!0)),k(X,de)}),h(M);var j=w(M,2),B=p(j),W=p(B,!0);h(B);var ee=w(B,2),G=w(ee,2);{var Z=X=>{var ue=dC(),de=p(ue,!0);h(ue),O(()=>z(de,a(u))),k(X,ue)};U(G,X=>{a(u)&&X(Z)})}h(j),h(D);var Q=w(D,2),Y=w(p(Q),2),J=p(Y),q=p(J,!0);h(J);var H=w(J,2);{var $=X=>{var ue=fC(),de=p(ue,!0);h(ue),O(()=>z(de,a(i))),k(X,ue)};U(H,X=>{a(i)&&X($)})}h(Y),h(Q),h(C),O(()=>{z(I,a(r)),R.disabled=a(c),z(N,a(o)),z(E,` — ${a(f)??""}`),B.disabled=!a(d)||a(c),z(W,a(c)?"Saving...":"Save"),ee.disabled=!a(d)||a(c),J.disabled=a(s),z(q,a(s)?"Restarting...":"Restart server")}),Te(R,()=>a(o),X=>S(o,X)),K("click",B,g),K("click",ee,()=>S(o,a(l),!0)),K("click",J,b),k(e,C),ae()}pe(["click"]);var pC=A(`<div class="admin-key-created"><div class="admin-key-created-label">New key — copy now, it won't be shown again:</div> <code class="admin-key-value svelte-1afg5z5"> </code> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Dismiss</button></div>`),mC=A('<div class="admin-error svelte-1afg5z5"> </div>'),bC=A('<form class="admin-create-form svelte-1afg5z5"><input class="admin-input svelte-1afg5z5" type="text" placeholder="Key label"/> <button type="submit" class="admin-btn svelte-1afg5z5">Create</button> <!></form>'),gC=A('<p class="admin-muted svelte-1afg5z5">Loading...</p>'),yC=A('<p class="admin-error svelte-1afg5z5"> </p>'),_C=A('<p class="admin-muted svelte-1afg5z5">No API keys. Create one to enable external access.</p>'),wC=A('<button type="button" class="admin-btn-danger svelte-1afg5z5">Confirm</button> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Cancel</button>',1),kC=A('<button type="button" class="admin-btn-danger svelte-1afg5z5">Revoke</button>'),xC=A('<li class="admin-key-item svelte-1afg5z5"><div class="admin-key-info svelte-1afg5z5"><span class="admin-key-label svelte-1afg5z5"> </span> <span class="admin-key-meta svelte-1afg5z5"> </span></div> <div class="admin-key-actions svelte-1afg5z5"><!></div></li>'),SC=A('<ul class="admin-key-list svelte-1afg5z5"></ul>'),IC=A('<div class="admin-keys svelte-1afg5z5"><div class="admin-keys-header svelte-1afg5z5"><h2 class="svelte-1afg5z5">API Keys</h2> <button type="button" class="admin-btn svelte-1afg5z5"> </button></div> <!> <!> <!></div>');function EC(e,t){ie(t,!0);let n=V(fe([])),r=V(!0),s=V(null),i=V(!1),o=V(""),l=V(null),c=V(null),u=V(null);async function d(){S(r,!0),S(s,null);try{const E=await Re(`${rt()}/api/admin/keys`);if(!E.ok)throw new Error("Failed to fetch keys");S(n,await E.json(),!0)}catch(E){S(s,E instanceof Error?E.message:"Failed to load keys",!0)}finally{S(r,!1)}}async function f(){S(l,null);try{const E=await Re(`${rt()}/api/admin/keys`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({label:a(o)})});if(!E.ok){const j=await E.json().catch(()=>({}));S(l,j.error||"Failed to create key",!0);return}const M=await E.json();S(c,{id:M.id,key:M.key},!0),S(o,""),S(i,!1),await d()}catch{S(l,"Network error")}}async function v(E){S(u,null);try{await Re(`${rt()}/api/admin/keys/${E}`,{method:"DELETE"}),a(c)?.id===E&&S(c,null),await d()}catch{}}function m(E){return new Date(E).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}d();var x=IC(),g=p(x),b=w(p(g),2),C=p(b,!0);h(b),h(g);var _=w(g,2);{var y=E=>{var M=pC(),j=w(p(M),2),B=p(j,!0);h(j);var W=w(j,2);h(M),O(()=>z(B,a(c).key)),K("click",W,()=>{S(c,null)}),k(E,M)};U(_,E=>{a(c)&&E(y)})}var T=w(_,2);{var I=E=>{var M=bC(),j=p(M);xe(j);var B=w(j,2),W=w(B,2);{var ee=G=>{var Z=mC(),Q=p(Z,!0);h(Z),O(()=>z(Q,a(l))),k(G,Z)};U(W,G=>{a(l)&&G(ee)})}h(M),O(G=>B.disabled=G,[()=>!a(o).trim()]),Ue("submit",M,G=>{G.preventDefault(),f()}),Te(j,()=>a(o),G=>S(o,G)),k(E,M)};U(T,E=>{a(i)&&E(I)})}var D=w(T,2);{var R=E=>{var M=gC();k(E,M)},P=E=>{var M=yC(),j=p(M,!0);h(M),O(()=>z(j,a(s))),k(E,M)},L=E=>{var M=_C();k(E,M)},N=E=>{var M=SC();be(M,21,()=>a(n),j=>j.id,(j,B)=>{var W=xC(),ee=p(W),G=p(ee),Z=p(G,!0);h(G);var Q=w(G,2),Y=p(Q);h(Q),h(ee);var J=w(ee,2),q=p(J);{var H=X=>{var ue=wC(),de=ve(ue),ne=w(de,2);K("click",de,()=>v(a(B).id)),K("click",ne,()=>{S(u,null)}),k(X,ue)},$=X=>{var ue=kC();K("click",ue,()=>{S(u,a(B).id,!0)}),k(X,ue)};U(q,X=>{a(u)===a(B).id?X(H):X($,-1)})}h(J),h(W),O(X=>{z(Z,a(B).label),z(Y,`${a(B).id??""} · ${X??""}`)},[()=>m(a(B).createdAt)]),k(j,W)}),h(M),k(E,M)};U(D,E=>{a(r)?E(R):a(s)?E(P,1):a(n).length===0?E(L,2):E(N,-1)})}h(x),O(()=>z(C,a(i)?"Cancel":"New key")),K("click",b,()=>{S(i,!a(i))}),k(e,x),ae()}pe(["click"]);const Op={manifest:{id:"sh3-admin",label:"Admin",version:bn,views:[{id:"sh3-admin:users",label:"Users"},{id:"sh3-admin:auth",label:"Auth Settings"},{id:"sh3-admin:system",label:"System"},{id:"sh3-admin:keys",label:"API Keys"}]},activate(e){const t={mount(i,o){const l=Ve(sC,{target:i});return{unmount(){et(l)}}}},n={mount(i,o){const l=Ve(cC,{target:i});return{unmount(){et(l)}}}},r={mount(i,o){const l=Ve(hC,{target:i});return{unmount(){et(l)}}}},s={mount(i,o){const l=Ve(EC,{target:i});return{unmount(){et(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)}},Np={manifest:{id:"sh3-admin-app",label:"Admin",version:bn,requiredShards:["sh3-admin"],layoutVersion:1,admin:!0},initialLayout:{type:"tabs",activeTab:0,tabs:[{slotId:"admin.users",viewId:"sh3-admin:users",label:"Users"},{slotId:"admin.auth",viewId:"sh3-admin:auth",label:"Auth"},{slotId:"admin.system",viewId:"sh3-admin:system",label:"System"},{slotId:"admin.keys",viewId:"sh3-admin:keys",label:"Keys"}]}},td="sh3:migrations:shell-rename:done",nd="__shell__:",AC="__sh3core__:",rd="sh3:user:__shell__:theme",sd="sh3:user:__sh3core__:theme";function CC(e,t){if(t.getItem(td))return;const n=t.getItem(rd);n!==null&&t.getItem(sd)===null&&(t.setItem(sd,n),t.removeItem(rd));for(const r of e.keys()){if(!r.startsWith(nd))continue;const s=AC+r.slice(nd.length),i=e.read(r);e.write(s,i),e.delete(r)}t.setItem(td,"1")}const id="sh3:migrations:mode-id-rename:done",TC="sh3.shell.lastMode.",ad={dev:"bash",user:"sh3"};function RC(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 LC(e){if(!e.getItem(id)){for(const t of RC(e)){if(!t.startsWith(TC))continue;const n=e.getItem(t);n&&Object.prototype.hasOwnProperty.call(ad,n)&&e.setItem(t,ad[n])}e.setItem(id,"1")}}let od=!1,ld=null;function MC(){od||(od=!0,ld=e=>{const t=e.state?.sh3;t==="anchor"?(dw(),history.forward()):t==="forward-bumper"&&(fw(),history.back())},window.addEventListener("popstate",ld),history.replaceState({sh3:"anchor"},""),history.pushState({sh3:"main"},""),history.pushState({sh3:"forward-bumper"},""),history.back())}function cd(e){Ua(e)}function PC(){const e=mn.workspace;return{keys:()=>e.list(),read:t=>e.read(t),write:(t,n)=>e.write(t,n),delete:t=>e.delete(t)}}async function DC(e){if(typeof globalThis.localStorage<"u"){CC(PC(),globalThis.localStorage),LC(globalThis.localStorage);const{migrateLegacyWorkspaceKeys:i}=await ha(async()=>{const{migrateLegacyWorkspaceKeys:o}=await import("./workspace-rekey-DRgvbNY-.js");return{migrateLegacyWorkspaceKeys:o}},[]);i(ih())}const t=new Set(e?.excludeShards),n=[fp,Pp,dp,Op,Qh,sp,jp];for(const i of n)t.has(i.manifest.id)||Ua(i);const r=[zp,Np];for(const i of r)Os(i);await cp();for(const[i,o]of tn)if(o.autostart){Xv(i);try{await oa(i,{phase:"autostart"})}catch{}}const s=I0();if(s&&Gn.has(s))try{await Nn(s)}catch(i){console.error(`[sh3] Auto-launch of "${s}" failed:`,i),E0()}cw({returnToHome:ds,launchApp:Nn}),typeof window<"u"&&typeof history<"u"&&MC()}async function jC(e){const t=[fp,Pp,dp,Op,Qh,sp,jp];for(const s of t)Ua(s);const n=[zp,Np];for(const s of n)Os(s);await cp();const r=new Set;for(const[s,i]of tn)if(i.autostart){Xv(s);try{await oa(s,{phase:"autostart"}),r.add(s)}catch{}}for(const s of e.activateShardIds)if(!r.has(s))if(tn.has(s))try{await oa(s,{phase:"satellite"})}catch(i){console.error(`[sh3] satellite activation of "${s}" failed:`,i)}else console.warn(`[sh3] satellite requested shard "${s}" but it is not registered`)}var zC=A('<div aria-hidden="true"></div>'),OC=A('<button type="button" aria-label="Expand pane"><span class="collapse-icon"> </span></button>'),NC=A('<button type="button" aria-label="Collapse pane"><span class="collapse-icon"> </span></button>'),qC=A('<!> <div class="pane-content svelte-1adl4o1"><!></div>',1),BC=A('<div role="separator"></div>'),FC=A("<div><!></div> <!>",1),VC=A("<div></div>");function UC(e,t){ie(t,!0);const n=40,r=28;let s=te(t,"compact",3,!1),i;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 D=I>0?!c(I-1):!1,R=I<t.count-1?!c(I+1):!1;return D||R}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=V(null),m=null;function x(I,D){if(s()||l(D)||l(D+1)||u(D))return;const R=i?Zl(i):0;if(!li(I.pointerId,{ownerId:"sh3:splitter",axis:"xy",priority:"normal",depth:R}))return;m=I.pointerId,I.preventDefault(),document.addEventListener("pointermove",g),document.addEventListener("pointerup",C),document.addEventListener("pointercancel",_);const L=i.getBoundingClientRect(),N=t.direction==="horizontal"?L.width:L.height;let E=0,M=0;for(let j=0;j<t.sizes.length;j++)o(j)==="fr"?E+=t.sizes[j]:M+=Math.max(n,t.sizes[j]);S(v,{handleIndex:D,startClient:t.direction==="horizontal"?I.clientX:I.clientY,startSizes:t.sizes.slice(),containerPx:N,totalFr:E,frAvailPx:Math.max(1,N-M)},!0)}function g(I){if(!a(v)||I.pointerId!==m)return;const R=(t.direction==="horizontal"?I.clientX:I.clientY)-a(v).startClient,P=a(v).handleIndex,L=P+1,N=o(P),E=o(L),M=a(v).totalFr/a(v).frAvailPx;if(N==="fr"&&E==="fr"){const j=n*M,B=R*M,W=a(v).startSizes[L]-j,ee=-(a(v).startSizes[P]-j),G=Math.min(Math.max(B,ee),W);t.onResize?.(P,a(v).startSizes[P]+G),t.onResize?.(L,a(v).startSizes[L]-G)}else if(N==="px"&&E==="fr"){const j=a(v).frAvailPx-n,B=n-a(v).startSizes[P];t.onResize?.(P,a(v).startSizes[P]+Math.min(Math.max(R,B),j))}else if(N==="fr"&&E==="px"){const j=a(v).startSizes[L]-n,B=-(a(v).frAvailPx-n);t.onResize?.(L,a(v).startSizes[L]-Math.min(Math.max(R,B),j))}else{const j=a(v).startSizes[L]-n,B=-(a(v).startSizes[P]-n),W=Math.min(Math.max(R,B),j);t.onResize?.(P,a(v).startSizes[P]+W),t.onResize?.(L,a(v).startSizes[L]-W)}}function b(){m!==null&&(gr(m,"sh3:splitter"),m=null),S(v,null),document.removeEventListener("pointermove",g),document.removeEventListener("pointerup",C),document.removeEventListener("pointercancel",_)}function C(I){a(v)&&I.pointerId===m&&b()}function _(I){if(a(v)){if(I.pointerId!==m){Ln("splitter:cancel-other-id",I,{activeDragPointerId:m});return}Ln("splitter:cancel-our-id",I,{activeDragPointerId:m}),b()}}Se(()=>()=>{a(v)&&b()});var y=VC();let T;be(y,21,()=>Array(t.count),gt,(I,D,R)=>{var P=FC(),L=ve(P);let N;var E=p(L);{var M=G=>{var Z=De(),Q=ve(Z);{var Y=q=>{var H=zC();let $;O(()=>$=he(H,1,"collapse-header inert svelte-1adl4o1",null,$,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"})),k(q,H)},J=q=>{var H=OC();let $;var X=p(H),ue=p(X,!0);h(X),h(H),O(()=>{$=he(H,1,"collapse-header svelte-1adl4o1",null,$,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),z(ue,t.direction==="horizontal"?"▸":"▾")}),K("click",H,()=>t.onCollapseToggle?.(R,!1)),k(q,H)};U(Q,q=>{s()?q(Y):q(J,-1)})}k(G,Z)},j=F(()=>l(R)),B=G=>{var Z=qC(),Q=ve(Z);{var Y=$=>{var X=NC();let ue;se(X,"data-testid",`collapse-toggle-${R}`);var de=p(X),ne=p(de,!0);h(de),h(X),O(()=>{ue=he(X,1,"collapse-header expanded svelte-1adl4o1",null,ue,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),z(ne,t.direction==="horizontal"?"◂":"▴")}),K("click",X,()=>t.onCollapseToggle?.(R,!0)),k($,X)},J=F(()=>!s()&&t.onCollapseToggle&&d(R));U(Q,$=>{a(J)&&$(Y)})}var q=w(Q,2),H=p(q);$t(H,()=>t.pane,()=>R),h(q),k(G,Z)};U(E,G=>{a(j)?G(M):G(B,-1)})}h(L);var W=w(L,2);{var ee=G=>{var Z=BC();let Q;se(Z,"data-testid",`splitter-handle-${R}`),O(Y=>{Q=he(Z,1,"splitter-handle svelte-1adl4o1",null,Q,Y),se(Z,"aria-orientation",t.direction==="horizontal"?"vertical":"horizontal")},[()=>({dragging:a(v)?.handleIndex===R,disabled:l(R)||l(R+1),frozen:u(R)})]),K("pointerdown",Z,Y=>x(Y,R)),K("dblclick",Z,()=>{u(R)||!d(R)&&!l(R)||t.onCollapseToggle?.(R,!l(R))}),k(G,Z)};U(W,G=>{R<t.count-1&&G(ee)})}O((G,Z)=>{N=he(L,1,"splitter-pane svelte-1adl4o1",null,N,G),Ye(L,`flex: ${Z??""};`)},[()=>({collapsed:l(R)}),()=>f(R)]),k(I,P)}),h(y),Ne(y,I=>i=I,()=>i),O(()=>T=he(y,1,"splitter svelte-1adl4o1",null,T,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical",compact:s()})),k(e,y),ae()}pe(["click","pointerdown","dblclick"]);function HC(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 i=Math.max(0,Math.min(e,s.length));let o;return i===s.length?o=s[s.length-1].getBoundingClientRect().right:o=s[i].getBoundingClientRect().left,{left:o-r.left-1,top:2,height:r.height-4}}var KC=A('<span class="tab-dirty svelte-1kxcyhf" title="Unsaved changes"></span>'),WC=A('<span class="tab-icon svelte-1kxcyhf"> </span>'),YC=A('<span class="tab-close svelte-1kxcyhf" role="button" tabindex="-1" title="Close">&#x2715;</span>'),XC=A('<button type="button" role="tab"><!> <!> <span class="tab-label svelte-1kxcyhf"> </span> <!></button>'),GC=A('<div class="drop-indicator svelte-1kxcyhf"></div>'),JC=A("<div><!></div>"),ZC=A('<div class="tabbed-panel svelte-1kxcyhf"><div class="tab-strip svelte-1kxcyhf" role="tablist" tabindex="-1"><!> <!></div> <div class="tab-body svelte-1kxcyhf" role="tabpanel"></div></div>');function QC(e,t){ie(t,!0);function n(b){t.clickGuard?.()||t.onActiveChange?.(b)}function r(b,C){C.stopPropagation(),t.onClose?.(b)}let s=V(void 0);const i=fe([]);let o=V(null);function l(b,C){if(!t.dragController)return;const _=i[b];_&&t.dragController.onPointerDown(b,C,_)}function c(b){if(!t.dragController||!t.dragController.isDragging||!a(s))return;const C=a(s).getBoundingClientRect(),_=i.filter(y=>!!y).map(y=>y.getBoundingClientRect());S(o,t.dragController.onStripHover(C,b.clientX,b.clientY,_),!0)}function u(){t.dragController&&(S(o,null),t.dragController.onStripLeave())}var d=ZC(),f=p(d),v=p(f);be(v,17,()=>t.labels,gt,(b,C,_)=>{var y=XC();let T;var I=p(y);{var D=j=>{var B=KC();k(j,B)};U(I,j=>{t.dirty?.[_]&&j(D)})}var R=w(I,2);{var P=j=>{var B=WC(),W=p(B,!0);h(B),O(()=>z(W,t.icons[_])),k(j,B)};U(R,j=>{t.icons?.[_]&&j(P)})}var L=w(R,2),N=p(L,!0);h(L);var E=w(L,2);{var M=j=>{var B=YC();O(()=>se(B,"data-testid",t.tabIds?.[_]?`tab-close-${t.tabIds[_]}`:void 0)),K("click",B,W=>r(_,W)),K("keydown",B,W=>{(W.key==="Enter"||W.key===" ")&&r(_,W)}),k(j,B)};U(E,j=>{t.closable?.[_]&&j(M)})}h(y),Ne(y,(j,B)=>i[B]=j,j=>i?.[j],()=>[_]),O(()=>{T=he(y,1,"tab svelte-1kxcyhf",null,T,{active:t.activeTab===_}),se(y,"aria-selected",t.activeTab===_),z(N,a(C))}),K("click",y,()=>n(_)),K("pointerdown",y,j=>l(_,j)),Ue("auxclick",y,j=>{j.button===1&&t.closable?.[_]&&r(_,j)}),k(b,y)});var m=w(v,2);{var x=b=>{const C=F(()=>HC(a(o),i,a(s)));var _=De(),y=ve(_);{var T=I=>{var D=GC();O(()=>Ye(D,`left: ${a(C).left??""}px; height: ${a(C).height??""}px; top: ${a(C).top??""}px;`)),k(I,D)};U(y,I=>{a(C)&&I(T)})}k(b,_)};U(m,b=>{a(o)!==null&&t.dragController?.isDragging&&b(x)})}h(f),Ne(f,b=>S(s,b),()=>a(s));var g=w(f,2);be(g,21,()=>t.labels,gt,(b,C,_)=>{var y=JC();let T;var I=p(y);$t(I,()=>t.body,()=>_),h(y),O(()=>T=he(y,1,"tab-body-pane svelte-1kxcyhf",null,T,{active:t.activeTab===_})),k(b,y)}),h(g),h(d),K("pointermove",f,c),Ue("pointerleave",f,u),k(e,d),ae()}pe(["pointermove","click","pointerdown","keydown"]);var $C=A('no factory for <code class="svelte-1czj0s8"> </code>',1),eT=A("<em>empty slot</em>"),tT=A('<div class="slot-placeholder svelte-1czj0s8"><div class="slot-id svelte-1czj0s8"> </div> <div class="slot-meta svelte-1czj0s8"><!></div> <div class="slot-dims svelte-1czj0s8"> </div></div>'),nT=A('<div class="slot svelte-1czj0s8"><!></div>');function da(e,t){ie(t,!0);let n=te(t,"label",3,""),r=V(void 0),s=V(0),i=V(0);const o=F(()=>t.node.viewId?!!Tv(t.node.viewId):!1);Se(()=>{if(!a(r))return;const d=t.node.slotId,f=a(r),v=cc(d,t.node.viewId,n()||t.node.viewId||d,t.meta);f.appendChild(v);const m=new ResizeObserver(x=>{for(const g of x){const b=g.contentRect;S(s,Math.round(b.width),!0),S(i,Math.round(b.height),!0)}});return m.observe(f),()=>{m.disconnect(),uc(d,f)}});var l=nT(),c=p(l);{var u=d=>{var f=tT(),v=p(f),m=p(v,!0);h(v);var x=w(v,2),g=p(x);{var b=T=>{var I=$C(),D=w(ve(I)),R=p(D,!0);h(D),O(()=>z(R,t.node.viewId)),k(T,I)},C=T=>{var I=eT();k(T,I)};U(g,T=>{t.node.viewId?T(b):T(C,-1)})}h(x);var _=w(x,2),y=p(_);h(_),h(f),O(()=>{z(m,t.node.slotId),z(y,`${a(s)??""} × ${a(i)??""}`)}),k(d,f)};U(c,d=>{a(o)||d(u)})}h(l),Ne(l,d=>S(r,d),()=>a(r)),O(()=>{se(l,"data-slot-id",t.node.slotId),se(l,"data-view-id",t.node.viewId??"")}),k(e,l),ae()}const Ae=fe({phase:"idle",source:null,pointerX:0,pointerY:0,target:null});let qp=0;function rT(){return performance.now()<qp}const ud=4;let Bp=0,Fp=0,jn=null;function sT(e,t,n,r,s){if(Ae.phase!=="idle")return;const i=Zl(s);if(!li(r.pointerId,{ownerId:"sh3:tabdrag",axis:"xy",priority:"normal",depth:i}))return;jn=r.pointerId;const l=s.getBoundingClientRect();Ae.phase="pending",Ae.source={slotId:e,entry:t,sourceRoot:n,startRect:l,offsetX:r.clientX-l.left,offsetY:r.clientY-l.top},Ae.pointerX=r.clientX,Ae.pointerY=r.clientY,Ae.target=null,Bp=r.clientX,Fp=r.clientY,iT()}function iT(){window.addEventListener("pointermove",Vp,!0),window.addEventListener("pointerup",Up,!0),window.addEventListener("pointercancel",Hp,!0),document.body.style.userSelect="none",document.body.dataset.dragging=""}function aT(){window.removeEventListener("pointermove",Vp,!0),window.removeEventListener("pointerup",Up,!0),window.removeEventListener("pointercancel",Hp,!0),document.body.style.userSelect="",delete document.body.dataset.dragging}function Vp(e){if(e.pointerId===jn&&(Ae.pointerX=e.clientX,Ae.pointerY=e.clientY,Ae.phase==="pending")){const t=e.clientX-Bp,n=e.clientY-Fp;t*t+n*n>=ud*ud&&(Ae.phase="dragging")}}function Up(e){if(e.pointerId!==jn)return;Ae.phase==="dragging"&&(oT(),qp=performance.now()+50),Kp()}function Hp(e){if(e.pointerId!==jn){Ln("tabdrag:cancel-other-id",e,{activeDragPointerId:jn});return}Ln("tabdrag:cancel-our-id",e,{activeDragPointerId:jn}),Kp()}function dd(e){const t=en.tree;if(e.kind==="docked")return t.docked;const n=t.floats.find(r=>r.id===e.floatId);return n?n.content:null}function fd(e){if(e.kind!=="float")return;const t=en.tree,n=t.floats.findIndex(r=>r.id===e.floatId);n<0||vv(t.floats[n].content)&&t.floats.splice(n,1)}function oT(){const{source:e,target:t}=Ae;if(!e||!t)return;const n=dd(e.sourceRoot),r=dd(t.root);if(!n||!r)return;if(t.kind==="strip"){const i=t.tabsNode.tabs.findIndex(o=>o.slotId===e.slotId);if(i>=0){yk(t.tabsNode,i,t.insertIndex),Or(n),r!==n&&Or(r),fd(e.sourceRoot);return}}const s=Pa(n,e.slotId);s&&(t.kind==="strip"?gk(t.tabsNode,s,t.insertIndex):Go(r,t.path,s,t.side),Or(n),r!==n&&Or(r),fd(e.sourceRoot))}function Kp(){jn!==null&&(gr(jn,"sh3:tabdrag"),jn=null),Ae.phase="idle",Ae.source=null,Ae.target=null,aT()}function bl(e){Ae.phase==="dragging"&&(Ae.target=e)}function Vr(e){Ae.phase==="dragging"&&Ae.target&&(e&&!e(Ae.target)||(Ae.target=null))}var lT=A("<div></div>"),cT=A('<div class="quad-target quad-left svelte-re71zu" data-testid="drop-zone-left"></div> <div class="quad-target quad-right svelte-re71zu" data-testid="drop-zone-right"></div> <div class="quad-target quad-top svelte-re71zu" data-testid="drop-zone-top"></div> <div class="quad-target quad-bottom svelte-re71zu" data-testid="drop-zone-bottom"></div>',1),uT=A("<!> <!>",1),dT=A("<div><!></div>");function gl(e,t){ie(t,!0);let n=V(void 0),r=V(null);const s=F(()=>Ae.phase==="dragging"),i=F(()=>{let m;return t.rootRef.kind==="docked"?m=en.root:m=en.tree.floats.find(g=>g.id===t.rootRef.floatId)?.content??null,m?Pv(m,t.path):!1});function o(m,x,g){const b=g.left+g.width/2,C=g.top+g.height/2,_=m-b,y=x-C,T=_/g.width,I=y/g.height;return Math.abs(T)>Math.abs(I)?T<0?"left":"right":I<0?"top":"bottom"}function l(m){if(!a(n))return;if(a(i)){a(r)!==null&&(S(r,null),Vr(b=>b.kind==="split"&&b.path.join("/")===t.path.join("/")));return}const x=a(n).getBoundingClientRect();if(m.clientX<x.left||m.clientX>x.right||m.clientY<x.top||m.clientY>x.bottom){a(r)!==null&&(S(r,null),Vr(b=>b.kind==="split"&&b.path.join("/")===t.path.join("/")));return}const g=o(m.clientX,m.clientY,x);if(g!==a(r)){S(r,g,!0);const b={kind:"split",root:t.rootRef,path:[...t.path],side:g};bl(b)}}function c(){a(r)!==null&&(S(r,null),Vr(m=>m.kind==="split"&&m.path.join("/")===t.path.join("/")))}var u=dT();let d;var f=p(u);{var v=m=>{var x=uT(),g=ve(x);{var b=y=>{var T=lT();O(()=>he(T,1,`quad-highlight quad-${a(r)??""}`,"svelte-re71zu")),k(y,T)};U(g,y=>{a(r)&&y(b)})}var C=w(g,2);{var _=y=>{var T=cT();zt(6),k(y,T)};U(C,y=>{a(s)&&y(_)})}k(m,x)};U(f,m=>{a(i)||m(v)})}h(u),Ne(u,m=>S(n,m),()=>a(n)),O(()=>d=he(u,1,"slot-drop-zone svelte-re71zu",null,d,{active:a(s),locked:a(i)})),K("pointermove",u,l),Ue("pointerleave",u,c),k(e,u),ae()}pe(["pointermove"]);var fT=A('<div class="sh3-carousel-slide svelte-1qo3ctb" data-sh3-slide=""><!> <!></div>'),vT=A('<span data-sh3-pager-dot=""></span>'),hT=A('<div class="sh3-carousel-pager svelte-1qo3ctb" data-sh3-pager=""></div>'),pT=A('<div class="sh3-carousel svelte-1qo3ctb" data-sh3-region="carousel"><div data-sh3-carousel-track=""></div> <!></div>');function mT(e,t){ie(t,!0);let n=te(t,"node",7),r=te(t,"rootRef",19,()=>({kind:"docked"})),s=te(t,"path",19,()=>[]),i=V(null),o=V(0);Se(()=>{if(!a(i))return;const ne=a(i).getBoundingClientRect();if(ne.width>0)S(o,ne.width,!0);else if(a(i).parentElement){const me=a(i).parentElement.getBoundingClientRect();me.width>0&&S(o,me.width,!0)}const oe=new ResizeObserver(me=>{for(const Ie of me)S(o,Ie.contentRect.width,!0)});return oe.observe(a(i)),()=>oe.disconnect()});const l=F(()=>n().tabs.length),c=F(()=>a(l)>1);let u=V(0),d=V(!1),f=V(!1),v=null,m=!1,x=0,g=null,b=null;const C=1.2,_=6,y=.4,T=500,I=.3,D=100;function R(ne,oe){Ln(`carousel:${ne}`,oe,{claimed:a(f),dragging:a(d),downId:g?.id})}const P=250;function L(ne){let oe=ne;for(;oe&&oe!==a(i);){const me=getComputedStyle(oe).overflowX;if((me==="auto"||me==="scroll")&&oe.scrollWidth>oe.clientWidth)return!0;oe=oe.parentElement}return!1}function N(ne){if(!a(i)||a(o)===0)return!1;const oe=a(i).getBoundingClientRect(),me=ne-oe.left;return me<Xi||me>a(o)-Xi}function E(ne){const oe=ne;if(!oe||typeof oe.tagName!="string")return!1;const me=oe.tagName;if(me==="INPUT"||me==="TEXTAREA"||me==="SELECT"||oe.isContentEditable===!0)return!0;const Ie=oe.closest?.('[contenteditable=""], [contenteditable="true"]');return Ie!=null}function M(ne,oe){if(oe===0)return 0;const me=oe*I;return Math.sign(ne)*me*(1-Math.exp(-Math.abs(ne)/me))}function j(ne){if(!t.wrap){const oe=n().activeTab===0&&ne>0,me=n().activeTab===a(l)-1&&ne<0;if(oe||me)return M(ne,a(o))}return ne}function B(ne){if(a(l)<2||a(o)===0||ne.isPrimary===!1)return;const oe=N(ne.clientX);if(!oe&&(E(ne.target)||L(ne.target)))return;const me=a(i)?Zl(a(i)):0;li(ne.pointerId,{ownerId:"sh3:carousel",axis:"x",priority:"normal",depth:me})&&(v=ne.pointerId,m=oe,x=0,g={id:ne.pointerId,x:ne.clientX,y:ne.clientY,t:performance.now()},b={...g},S(d,!1),S(f,!1),S(u,0),document.addEventListener("pointermove",W),document.addEventListener("pointerup",ee),document.addEventListener("pointercancel",G))}function W(ne){if(!g||ne.pointerId!==g.id)return;if(!gw(ne.pointerId,"sh3:carousel")){R("claim-stolen",ne),Z();return}const oe=ne.clientX-g.x,me=ne.clientY-g.y;if(!a(f)){const Ie=performance.now()-g.t,at=Math.abs(oe)>Math.abs(me)*C&&Math.abs(oe)>_;if(Math.abs(me)>Math.abs(oe)*C&&Math.abs(me)>_){Z();return}if((Math.abs(oe)>_||Math.abs(me)>_)&&Ie>P){Z();return}if(!at)return;if(S(f,!0),S(d,!0),m&&a(i))try{a(i).setPointerCapture(ne.pointerId),x=performance.now()+D}catch{}typeof window<"u"&&window.getSelection()?.removeAllRanges()}typeof ne.preventDefault=="function"&&ne.preventDefault(),S(u,j(oe),!0),b={id:ne.pointerId,x:ne.clientX,y:ne.clientY,t:performance.now()}}function ee(ne){if(!g)return;if(ne.pointerId!==g.id){R("pointerup-other-id",ne);return}const oe=ne.clientX-g.x;let me=0;b&&b.t!==g.t&&(me=(ne.clientX-b.x)/Math.max(1,performance.now()-b.t)*1e3),Q(oe,me),Z()}function G(ne){if(g){if(ne.pointerId!==g.id){R("cancel-other-id",ne);return}if(performance.now()<x){R("cancel-ignored-transfer",ne),x=0;return}R("cancel-our-id",ne),Z()}}function Z(){if(m&&a(i)&&v!==null)try{a(i).hasPointerCapture?.(v)&&a(i).releasePointerCapture(v)}catch{}v!==null&&(gr(v,"sh3:carousel"),v=null),document.removeEventListener("pointermove",W),document.removeEventListener("pointerup",ee),document.removeEventListener("pointercancel",G),g=null,b=null,S(d,!1),S(f,!1),S(u,0),m=!1,x=0}function Q(ne,oe){if(!a(f)||a(o)===0)return;const me=Math.abs(ne)>a(o)*y,Ie=Math.abs(oe)>T;if(!(me||Ie))return;const at=ne<0?1:-1;let Ge=n().activeTab+at;if(Ge<0)if(t.wrap)Ge=a(l)-1;else return;else if(Ge>=a(l))if(t.wrap)Ge=0;else return;n().activeTab=Ge}const Y=F(()=>a(o)===0?"translateX(0px)":`translateX(${-n().activeTab*a(o)+a(u)}px)`),J=F(()=>a(d)?"none":"");function q(ne){return ne.slotId}var H=pT(),$=p(H);let X;be($,23,()=>n().tabs,ne=>q(ne),(ne,oe,me)=>{var Ie=fT(),at=p(Ie);{let Lt=F(()=>({type:"slot",slotId:a(oe).slotId,viewId:a(oe).viewId}));da(at,{get node(){return a(Lt)},get label(){return a(oe).label},get meta(){return a(oe).meta}})}var Ge=w(at,2);gl(Ge,{get rootRef(){return r()},get path(){return s()}}),h(Ie),O(()=>{se(Ie,"data-sh3-slide-index",a(me)),Ye(Ie,`width: ${a(o)??""}px;`)}),k(ne,Ie)}),h($);var ue=w($,2);{var de=ne=>{var oe=hT();be(oe,23,()=>n().tabs,(me,Ie)=>`dot-${Ie}`,(me,Ie,at)=>{var Ge=vT();let Lt;O(()=>{Lt=he(Ge,1,"sh3-carousel-dot svelte-1qo3ctb",null,Lt,{"sh3-carousel-dot--active":a(at)===n().activeTab}),se(Ge,"aria-current",a(at)===n().activeTab?"true":void 0)}),k(me,Ge)}),h(oe),k(ne,oe)};U(ue,ne=>{a(c)&&ne(de)})}h(H),Ne(H,ne=>S(i,ne),()=>a(i)),O(()=>{X=he($,1,"sh3-carousel-track svelte-1qo3ctb",null,X,{"sh3-carousel-track--dragging":a(d)}),Ye($,`transform: ${a(Y)??""}; width: ${a(l)*100}%; ${a(J)?`transition: ${a(J)};`:""}`)}),K("pointerdown",$,B),k(e,H),ae()}pe(["pointerdown"]);function Wp(e){return e.join(".")}function bT(e){const t=new Map;function n(r,s,i){if(r.type==="tabs"){if(s){const o=r.tabs[r.activeTab];t.set(Wp(i),{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,[...i,l]);return}}return n(e,!0,[]),t}var gT=A('<div class="tab-slot-wrapper svelte-1gw9g38"><!> <!></div>'),yT=A('<div class="empty-tabs-custom svelte-1gw9g38"></div>'),_T=A('<div class="empty-tabs-default svelte-1gw9g38"><div class="empty-tabs-drop svelte-1gw9g38"></div></div>'),wT=A('<div class="empty-tabs-placeholder svelte-1gw9g38"><!></div>'),kT=A('<div class="leaf-slot-wrapper svelte-1gw9g38"><!> <!></div>');function ts(e,t){ie(t,!0);let n=te(t,"path",19,()=>[]),r=te(t,"rootRef",19,()=>({kind:"docked"}));const s=F(()=>{if(t.rootOverride!==void 0)return Qr(t.rootOverride,n());let _;return r().kind==="docked"?_=en.root:_=en.tree.floats.find(T=>T.id===r().floatId)?.content??null,_?Qr(_,n()):null});function i(_){return{get isDragging(){return Ae.phase==="dragging"},onPointerDown(y,T,I){const D=_.tabs[y];D&&sT(D.slotId,D,r(),T,I)},onStripHover(y,T,I,D){if(I<y.top||I>y.bottom)return Vr(L=>L.kind==="strip"&&L.tabsNode===_),null;let R=D.length;for(let L=0;L<D.length;L++){const N=D[L],E=N.left+N.width/2;if(T<E){R=L;break}}const P=Ae.source;if(P){const L=_.tabs.findIndex(N=>N.slotId===P.slotId);L>=0&&L<R&&(R-=1)}return bl({kind:"strip",root:r(),tabsNode:_,insertIndex:R}),R},onStripLeave(){Vr(y=>y.kind==="strip"&&y.tabsNode===_)}}}function o(_){return _.type==="split"?_:null}function l(_){return _.type==="tabs"?_:null}function c(_){return _.type==="slot"?_:null}function u(_){return _.map(y=>Sk(y.slotId)||void 0)}function d(_){return _.map(y=>xk(y.slotId)||void 0)}function f(_,y){const T=_[y];T&&gc(T.slotId)}function v(_,y){y(_)}function m(_,y){Ae.phase==="dragging"&&bl({kind:"strip",root:r(),tabsNode:y,insertIndex:0})}function x(){Vr(_=>_.kind==="strip"&&_.insertIndex===0)}var g=De(),b=ve(g);{var C=_=>{var y=De(),T=ve(y);{var I=P=>{const L=(E,M=Dt)=>{{let j=F(()=>[...n(),M()]);ts(E,{get rootRef(){return r()},get path(){return a(j)},get rootOverride(){return t.rootOverride},get carousels(){return t.carousels}})}},N=F(()=>o(a(s)));{let E=F(()=>rr.current.class==="compact");UC(P,{get direction(){return a(N).direction},get sizes(){return a(N).sizes},get pinned(){return a(N).pinned},get collapsed(){return a(N).collapsed},get fixed(){return a(N).fixed},get count(){return a(N).children.length},get pane(){return L},get compact(){return a(E)},onResize:(M,j)=>a(N).sizes[M]=j,onCollapseToggle:(M,j)=>{a(N).collapsed||(a(N).collapsed=a(N).children.map(()=>!1)),a(N).collapsed[M]=j}})}},D=P=>{const L=F(()=>l(a(s))),N=F(()=>t.carousels?.get(Wp(n())));var E=De(),M=ve(E);{var j=ee=>{mT(ee,{get node(){return a(L)},get wrap(){return a(N).wrap},get rootRef(){return r()},get path(){return n()}})},B=ee=>{const G=(Q,Y=Dt)=>{const J=F(()=>a(L)?.tabs[Y()]);var q=De(),H=ve(q);{var $=X=>{var ue=gT(),de=p(ue);{let oe=F(()=>({type:"slot",slotId:a(J).slotId,viewId:a(J).viewId}));da(de,{get node(){return a(oe)},get label(){return a(J).label},get meta(){return a(J).meta}})}var ne=w(de,2);gl(ne,{get rootRef(){return r()},get path(){return n()}}),h(ue),k(X,ue)};U(H,X=>{a(J)&&X($)})}k(Q,q)},Z=F(()=>i(a(L)));{let Q=F(()=>a(L).tabs.map($=>$.label)),Y=F(()=>a(L).tabs.map($=>$.icon)),J=F(()=>u(a(L).tabs)),q=F(()=>d(a(L).tabs)),H=F(()=>a(L).tabs.map($=>$.slotId));QC(ee,{get labels(){return a(Q)},get icons(){return a(Y)},get activeTab(){return a(L).activeTab},onActiveChange:$=>a(L).activeTab=$,get body(){return G},get dragController(){return a(Z)},get clickGuard(){return rT},get closable(){return a(J)},get dirty(){return a(q)},onClose:$=>f(a(L).tabs,$),get tabIds(){return a(H)}})}},W=ee=>{var G=wT(),Z=p(G);{var Q=J=>{var q=yT();Xf(q,(H,$)=>v?.(H,$),()=>a(L).emptyRenderer),k(J,q)},Y=J=>{var q=_T(),H=p(q);h(q),K("pointermove",H,$=>m($,a(L))),Ue("pointerleave",H,x),k(J,q)};U(Z,J=>{a(L).emptyRenderer?J(Q):J(Y,-1)})}h(G),k(ee,G)};U(M,ee=>{a(N)&&a(L)&&a(L).tabs.length>0?ee(j):a(L)&&a(L).tabs.length>0?ee(B,1):a(L)?.persistent&&ee(W,2)})}k(P,E)},R=P=>{const L=F(()=>c(a(s)));var N=kT(),E=p(N);da(E,{get node(){return a(L)},get meta(){return a(L).meta}});var M=w(E,2);gl(M,{get rootRef(){return r()},get path(){return n()}}),h(N),k(P,N)};U(T,P=>{a(s).type==="split"?P(I):a(s).type==="tabs"?P(D,1):P(R,-1)})}k(_,y)};U(b,_=>{a(s)&&_(C)})}k(e,g),ae()}pe(["pointermove"]);var xT=A('<span class="drag-preview-icon svelte-133fiip"> </span>'),ST=A('<div class="drag-preview svelte-133fiip"><!> <span class="drag-preview-label svelte-133fiip"> </span></div>');function IT(e,t){ie(t,!0);const n=F(()=>Ae.phase==="dragging"&&!!Ae.source),r=F(()=>Ae.source?Ae.pointerX-Ae.source.offsetX:0),s=F(()=>Ae.source?Ae.pointerY-Ae.source.offsetY:0),i=F(()=>Ae.source?.startRect.width??0),o=F(()=>Ae.source?.startRect.height??0),l=F(()=>Ae.source?.entry.label??""),c=F(()=>Ae.source?.entry.icon);var u=De(),d=ve(u);{var f=v=>{var m=ST(),x=p(m);{var g=_=>{var y=xT(),T=p(y,!0);h(y),O(()=>z(T,a(c))),k(_,y)};U(x,_=>{a(c)&&_(g)})}var b=w(x,2),C=p(b,!0);h(b),h(m),O(()=>{Ye(m,`left: ${a(r)??""}px; top: ${a(s)??""}px; width: ${a(i)??""}px; height: ${a(o)??""}px;`),z(C,a(l))}),k(v,m)};U(d,v=>{a(n)&&v(f)})}k(e,u),ae()}const Ur=new Map;let fa=!1;function Yp(e){if(Ur.size===0||lv(e.pointerId))return;const t=e.target;if(!t)return;const n=Array.from(Ur.keys());for(const r of n){const s=Ur.get(r);s&&(s.contains(t)||Pe.close(r))}}function ET(){fa||typeof document>"u"||(document.addEventListener("pointerdown",Yp,!0),fa=!0)}function AT(){fa&&(Ur.size>0||(document.removeEventListener("pointerdown",Yp,!0),fa=!1))}function CT(e,t){Ur.set(e,t),ET()}function TT(e){Ur.delete(e),AT()}function RT(e){const t=new Set;return Xp(e,t),[...t]}function Xp(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)Xp(n,t);return}}}var LT=A('<button class="sh3-float-popout svelte-1p734al" aria-label="Open in own window" title="Open in own window">⧉</button>'),MT=A('<header class="sh3-float-header svelte-1p734al" data-sh3-scope="element:float-header"><span class="sh3-float-title svelte-1p734al"> </span> <span class="sh3-float-header-actions svelte-1p734al"><!> <button class="sh3-float-maximize svelte-1p734al"> </button> <button class="sh3-float-close svelte-1p734al" aria-label="Close float">×</button></span></header>'),PT=A('<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 DT(e,t){ie(t,!0);const n=typeof globalThis.__TAURI_INTERNALS__<"u",r=Ma("__layouts__");function s(Y){Y.preventDefault(),r.set({type:"float-header",ref:{floatId:i().id}}),Ct.actions.openContextMenu({x:Y.clientX,y:Y.clientY,scope:{element:"float-header"}})}let i=te(t,"entry",15),o=V(!1),l={x:0,y:0},c=null,u=V(!1),d={pointer:{x:0,y:0},size:{w:0,h:0},min:{w:0,h:0}},f=null,v=V(void 0);const m=F(()=>Pe.isMaximized(i().id));Se(()=>{if(i().dismissable&&a(v))return CT(i().id,a(v)),()=>TT(i().id)}),Se(()=>{if(!a(v))return;const Y=Fw(i().id);if(Y)return Y.appendChild(a(v)),()=>{a(v)?.parentNode===Y&&a(v).remove()}}),Se(()=>()=>{a(o)&&b(),a(u)&&D()});function x(Y){Y.button===0&&(Y.target.closest(".sh3-float-close")||Y.target.closest(".sh3-float-maximize")||Y.target.closest(".sh3-float-popout")||a(o)||(S(o,!0),c=Y.pointerId,l={x:Y.clientX-i().position.x,y:Y.clientY-i().position.y},Pe.focus(i().id),document.addEventListener("pointermove",g),document.addEventListener("pointerup",C),document.addEventListener("pointercancel",_)))}function g(Y){!a(o)||Y.pointerId!==c||(Pe.unmaximize(i().id),i(i().position.x=Y.clientX-l.x,!0),i(i().position.y=Y.clientY-l.y,!0))}function b(){S(o,!1),c=null,document.removeEventListener("pointermove",g),document.removeEventListener("pointerup",C),document.removeEventListener("pointercancel",_)}function C(Y){!a(o)||Y.pointerId!==c||b()}function _(Y){if(Y.pointerId!==c){Ln("floatframe:cancel-other-id",Y,{dragPointerId:c});return}Ln("floatframe:cancel-our-id",Y,{dragPointerId:c}),b()}function y(Y){Y.target.closest(".sh3-float-close")||Y.target.closest(".sh3-float-maximize")||Y.target.closest(".sh3-float-popout")||Pe.toggleMaximize(i().id)}function T(Y){Y.button===0&&(Y.stopPropagation(),!a(u)&&(S(u,!0),f=Y.pointerId,d={pointer:{x:Y.clientX,y:Y.clientY},size:{w:i().size.w,h:i().size.h},min:Ql(i().content)},Pe.focus(i().id),document.addEventListener("pointermove",I),document.addEventListener("pointerup",R),document.addEventListener("pointercancel",P)))}function I(Y){if(!a(u)||Y.pointerId!==f)return;Pe.unmaximize(i().id);const J=Y.clientX-d.pointer.x,q=Y.clientY-d.pointer.y;i(i().size.w=Math.max(d.min.w,d.size.w+J),!0),i(i().size.h=Math.max(d.min.h,d.size.h+q),!0)}function D(){S(u,!1),f=null,document.removeEventListener("pointermove",I),document.removeEventListener("pointerup",R),document.removeEventListener("pointercancel",P)}function R(Y){!a(u)||Y.pointerId!==f||D()}function P(Y){if(Y.pointerId!==f){Ln("floatframe-grip:cancel-other-id",Y,{resizePointerId:f});return}Ln("floatframe-grip:cancel-our-id",Y,{resizePointerId:f}),D()}function L(){Pe.focus(i().id)}function N(Y){Y.stopPropagation(),Pe.toggleMaximize(i().id)}function E(Y){Y.stopPropagation(),Pe.close(i().id)}async function M(Y){Y.stopPropagation();try{await Ka({kind:"float",content:i().content,title:i().title,size:{w:i().size.w,h:i().size.h},activateShards:RT(i().content)}),Pe.close(i().id)}catch(J){Ct.toast.notify(`Pop-out failed: ${J.message}`,{level:"error",duration:5e3})}}var j=PT();let B;var W=p(j);{var ee=Y=>{var J=MT(),q=p(J),H=p(q,!0);h(q);var $=w(q,2),X=p($);{var ue=me=>{var Ie=LT();K("click",Ie,M),k(me,Ie)};U(X,me=>{n&&me(ue)})}var de=w(X,2),ne=p(de,!0);h(de);var oe=w(de,2);h($),h(J),O(()=>{se(J,"data-float-id",i().id),z(H,i().title),se(de,"aria-label",a(m)?"Restore float":"Maximize float"),se(de,"aria-pressed",a(m)),z(ne,a(m)?"🗗":"🗖")}),K("pointerdown",J,x),K("dblclick",J,y),K("contextmenu",J,s),K("click",de,N),K("click",oe,E),k(Y,J)};U(W,Y=>{i().title&&Y(ee)})}var G=w(W,2),Z=p(G);{let Y=F(()=>({kind:"float",floatId:i().id}));ts(Z,{get rootRef(){return a(Y)},path:[]})}h(G);var Q=w(G,2);h(j),Ne(j,Y=>S(v,Y),()=>a(v)),O(()=>{se(j,"aria-label",i().title??"Float panel"),B=Ye(j,"",B,{left:`${i().position.x??""}px`,top:`${i().position.y??""}px`,width:`${i().size.w??""}px`,height:`${i().size.h??""}px`})}),K("click",j,L),K("pointerdown",Q,T),k(e,j),ae()}pe(["click","pointerdown","dblclick","contextmenu"]);var jT=A('<div class="sh3-float-layer svelte-1rzcset"></div>');function zT(e,t){ie(t,!0);const n=F(()=>en.floats);var r=jT();be(r,23,()=>a(n),s=>s.id,(s,i,o)=>{DT(s,{get entry(){return a(n)[a(o)]},set entry(l){a(n)[a(o)]=l}})}),h(r),k(e,r),ae()}var OT=A('<div class="sh3-overlay-root svelte-4ykdm7"><!></div>'),NT=A('<div class="sh3-overlays svelte-4ykdm7" aria-hidden="true"></div>');function Gp(e,t){ie(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=fe({});Se(()=>{for(const{name:i}of n){const o=r[i];o&&aw(i,o)}return()=>{for(const{name:i}of n)ow(i)}}),Se(()=>{const i=en.tree;return qw(i.floats,()=>({w:window.innerWidth,h:window.innerHeight})),()=>Bw()});var s=NT();be(s,21,()=>n,({layer:i,name:o,zToken:l})=>i,(i,o)=>{let l=()=>a(o).layer,c=()=>a(o).name,u=()=>a(o).zToken;var d=OT(),f=p(d);{var v=x=>{zT(x,{})},m=x=>{IT(x,{})};U(f,x=>{c()==="floating"?x(v):c()==="drag-preview"&&x(m,1)})}h(d),Ne(d,(x,g)=>r[g]=x,x=>r?.[x],()=>[c()]),O(()=>{se(d,"data-sh3-overlay",c()),se(d,"data-sh3-layer",l()),Ye(d,`z-index: var(${u()??""});`)}),k(i,d)}),h(s),k(e,s),ae()}var qT=A('<div class="guest-signin-error svelte-pymkh"> </div>'),BT=A('<div class="guest-signin-overlay svelte-pymkh" role="dialog"><div class="guest-signin-card svelte-pymkh"><form class="guest-signin-form svelte-pymkh"><input class="guest-signin-input svelte-pymkh" type="text" placeholder="Username" autocomplete="username"/> <input class="guest-signin-input svelte-pymkh" type="password" placeholder="Password" autocomplete="current-password"/> <div class="guest-signin-actions svelte-pymkh"><button type="submit" class="guest-signin-btn svelte-pymkh"> </button> <button type="button" class="guest-signin-cancel svelte-pymkh">Cancel</button></div></form> <!></div></div>'),FT=A('<div class="guest-banner svelte-pymkh"><span class="guest-banner-text">Browsing as guest. Sign in to save your work.</span> <button type="button" class="guest-banner-action svelte-pymkh">Sign in</button></div> <!>',1),VT=A('<div class="guest-banner-slot"><!></div>');function UT(e,t){ie(t,!0);let n=V(!1),r=V(""),s=V(""),i=V(null),o=V(!1);async function l(){if(!a(r).trim()||!a(s).trim()||a(o))return;S(o,!0),S(i,null);const v=await gh(a(r).trim(),a(s).trim());S(o,!1),v.ok?S(n,!1):S(i,v.error,!0)}var c=VT(),u=p(c);{var d=v=>{var m=FT(),x=ve(m),g=w(p(x),2);h(x);var b=w(x,2);{var C=_=>{var y=BT(),T=p(y),I=p(T),D=p(I);xe(D);var R=w(D,2);xe(R);var P=w(R,2),L=p(P),N=p(L,!0);h(L);var E=w(L,2);h(P),h(I);var M=w(I,2);{var j=B=>{var W=qT(),ee=p(W,!0);h(W),O(()=>z(ee,a(i))),k(B,W)};U(M,B=>{a(i)&&B(j)})}h(T),h(y),O(B=>{D.disabled=a(o),R.disabled=a(o),L.disabled=B,z(N,a(o)?"Signing in...":"Sign in")},[()=>a(o)||!a(r).trim()||!a(s).trim()]),Ue("submit",I,B=>{B.preventDefault(),l()}),Te(D,()=>a(r),B=>S(r,B)),Te(R,()=>a(s),B=>S(s,B)),K("click",E,()=>{S(n,!1),S(i,null)}),k(_,y)};U(b,_=>{a(n)&&_(C)})}K("click",g,()=>{S(n,!0)}),k(v,m)},f=F(()=>yh());U(u,v=>{a(f)&&v(d)})}h(c),k(e,c),ae()}pe(["click"]);var HT=A('<code class="sh3-consent-scope svelte-14me5sj"> </code>'),KT=A('<dt class="svelte-14me5sj">Peer</dt> <dd class="svelte-14me5sj"> </dd>',1),WT=A('<dt class="svelte-14me5sj">Expires in</dt> <dd class="svelte-14me5sj"> </dd>',1),YT=A('<div class="sh3-consent-backdrop svelte-14me5sj" role="dialog" aria-modal="true" aria-label="Key creation consent"><div class="sh3-consent-card svelte-14me5sj"><h2 class="sh3-consent-title svelte-14me5sj"><span class="svelte-14me5sj"> </span> wants to create a key</h2> <dl class="sh3-consent-fields svelte-14me5sj"><dt class="svelte-14me5sj">Label</dt> <dd class="svelte-14me5sj"> </dd> <dt class="svelte-14me5sj">Scopes</dt> <dd class="sh3-consent-scopes svelte-14me5sj"></dd> <!> <!></dl> <div class="sh3-consent-actions svelte-14me5sj"><button type="button" class="sh3-consent-deny svelte-14me5sj">Deny</button> <button type="button" class="sh3-consent-approve svelte-14me5sj">Approve</button></div></div></div>');function XT(e,t){ie(t,!0);let n=V(null);Se(()=>zh(u=>{S(n,u,!0)}));function r(){a(n)&&(ul(a(n).requestId,!0),S(n,null))}function s(){a(n)&&(ul(a(n).requestId,!1),S(n,null))}var i=De(),o=ve(i);{var l=c=>{var u=YT(),d=p(u),f=p(d),v=p(f),m=p(v,!0);h(v),zt(),h(f);var x=w(f,2),g=w(p(x),2),b=p(g,!0);h(g);var C=w(g,4);be(C,20,()=>a(n).scopes,L=>L,(L,N)=>{var E=HT(),M=p(E,!0);h(E),O(()=>z(M,N)),k(L,E)}),h(C);var _=w(C,2);{var y=L=>{var N=KT(),E=w(ve(N),2),M=p(E);h(E),O(()=>z(M,`${a(n).peerRole??"—"??""}${a(n).peerId?` · ${a(n).peerId}`:""}`)),k(L,N)};U(_,L=>{(a(n).peerRole||a(n).peerId)&&L(y)})}var T=w(_,2);{var I=L=>{var N=WT(),E=w(ve(N),2),M=p(E);h(E),O(j=>z(M,`${j??""}s`),[()=>Math.round(a(n).expiresIn/1e3)]),k(L,N)};U(T,L=>{a(n).expiresIn&&L(I)})}h(x);var D=w(x,2),R=p(D);ti(R,!0);var P=w(R,2);h(D),h(d),h(u),O(()=>{z(m,a(n).shardId),z(b,a(n).label)}),K("click",R,s),K("click",P,r),k(c,u)};U(o,c=>{a(n)&&c(l)})}k(e,i),ae()}pe(["click"]);var GT=A('<span class="sh3-brand svelte-18lk809">SH3</span>'),JT=A('<span class="sh3-brand sh3-brand-app svelte-18lk809"> </span>'),ZT=A('<span class="sh3-brand svelte-18lk809">SH3</span> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <button type="button" class="sh3-brand-crumb svelte-18lk809"> </button>',1),QT=A('<button type="button" class="sh3-brand sh3-brand-clickable svelte-18lk809" title="Exit project">SH3</button> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <span class="sh3-brand-project svelte-18lk809"> </span>',1),$T=A('<span class="sh3-brand sh3-brand-project svelte-18lk809"> </span> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <span class="sh3-brand sh3-brand-app svelte-18lk809"> </span>',1),eR=A('<button type="button" class="sh3-brand sh3-brand-clickable svelte-18lk809" title="Exit project">SH3</button> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <button type="button" class="sh3-brand-crumb svelte-18lk809"> </button> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <button type="button" class="sh3-brand-crumb svelte-18lk809"> </button>',1),tR=A('<div class="sh3-brand-slot svelte-18lk809"><!></div>');function Jp(e,t){ie(t,!0);const n=F(()=>St().activeAppId),r=F(lw),s=F(()=>yr.activeProjectId),i=F(()=>a(n)?En(a(n))?.manifest.label??a(n):null),o=F(()=>a(r)?En(a(r))?.manifest.label??a(r):null),l=F(()=>a(s)?Xt.projects.find(T=>T.id===a(s))?.name??a(s):null),c=F(()=>a(s)?a(n)?"project-app":a(r)?"project-breadcrumb":"project-home":a(n)?"app":a(r)?"breadcrumb":"brand");function u(){a(r)&&Nn(a(r))}function d(){ah(null)}function f(){a(n)&&ds()}var v=tR(),m=p(v);{var x=T=>{var I=GT();k(T,I)},g=T=>{var I=JT(),D=p(I,!0);h(I),O(()=>z(D,a(i))),k(T,I)},b=T=>{var I=ZT(),D=w(ve(I),4),R=p(D,!0);h(D),O(()=>z(R,a(o))),K("click",D,u),k(T,I)},C=T=>{var I=QT(),D=ve(I),R=w(D,4),P=p(R,!0);h(R),O(()=>z(P,a(l))),K("click",D,d),k(T,I)},_=T=>{var I=$T(),D=ve(I),R=p(D,!0);h(D);var P=w(D,4),L=p(P,!0);h(P),O(()=>{z(R,a(l)),z(L,a(i))}),k(T,I)},y=T=>{var I=eR(),D=ve(I),R=w(D,4),P=p(R,!0);h(R);var L=w(R,4),N=p(L,!0);h(L),O(()=>{z(P,a(l)),z(N,a(o))}),K("click",D,d),K("click",R,f),K("click",L,u),k(T,I)};U(m,T=>{a(c)==="brand"?T(x):a(c)==="app"?T(g,1):a(c)==="breadcrumb"?T(b,2):a(c)==="project-home"?T(C,3):a(c)==="project-app"?T(_,4):a(c)==="project-breadcrumb"&&T(y,5)})}h(v),k(e,v),ae()}pe(["click"]);const nR=Object.freeze([{id:"file",label:"File"},{id:"edit",label:"Edit"},{id:"view",label:"View"},{id:"window",label:"Window"},{id:"help",label:"Help"}]);function va(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function Zp(e,t){if(e==null)return[];if(t==null)return nR.slice();const n=t.map((r,s)=>({c:r,i:s}));return n.sort((r,s)=>{const i=r.c.order,o=s.c.order;return i!=null&&o!=null?i-o||r.i-s.i:i!=null?-1:o!=null?1:r.i-s.i}),n.map(r=>r.c)}function Qp(e,t,n){const r=[],s=new Set;for(const i of e){if(i.action.menuItem!==n||i.action.submenuOf!==void 0||s.has(i.action.id))continue;const o=di(i.action.scope,t,i.ownerShardId);o&&(o==="app"&&!t.activeAppRequiredShards.has(i.ownerShardId)||(s.add(i.action.id),r.push({id:i.action.id,label:Ft(i.action),shortcut:ui(i.action,t.bindings,t.platform),group:i.action.group??"",icon:i.action.icon,checked:va(i.action.checked),disabled:va(i.action.disabled),submenu:i.action.submenu===!0})))}return r}function $p(e,t,n){const r=[],s=new Set;for(const i of e){if(i.action.submenuOf!==n||s.has(i.action.id))continue;const o=di(i.action.scope,t,i.ownerShardId);o&&(o==="app"&&!t.activeAppRequiredShards.has(i.ownerShardId)||(s.add(i.action.id),r.push({id:i.action.id,label:Ft(i.action),shortcut:ui(i.action,t.bindings,t.platform),group:i.action.group??"",icon:i.action.icon,checked:va(i.action.checked),disabled:va(i.action.disabled),submenu:i.action.submenu===!0})))}return r}var rR=A('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),sR=A('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),iR=A('<button type="button" class="sh3-menubar-button svelte-bke3dt"><!> <span class="sh3-menubar-label"> </span> <!></button>');function aR(e,t){ie(t,!0);let n=V(void 0);function r(g){const b=new Map,C=[];for(const _ of g){const y=_.group||"";b.has(y)||(b.set(y,[]),C.push(y)),b.get(y).push(_)}return C.map(_=>({id:`group:${_||"_default"}`,items:b.get(_)}))}function s(g,b,C){const _=$e().find(y=>y.action.id===g);if(!(!_||typeof _.action.run!="function")){try{_.action.run({action:{id:g,label:Ft(_.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)}C.close()}}function i(g,b,C){const _=document.querySelector(".sh3-popup-host");if(!_)return;const y=document.createElement("div");y.className="sh3-popup-submenu",y.style.position="absolute",y.style.pointerEvents="auto";const I=(_.querySelector(".sh3-ctx-active")??_).getBoundingClientRect();y.style.left=`${I.right+2}px`,y.style.top=`${I.top}px`,_.appendChild(y);const D=$p($e(),b,g),R=Ve(na,{target:y,props:{sections:r(D),onInvoke:P=>s(P,b,C),onDismiss:()=>{et(R),y.remove()}}})}function o(){if(!a(n))return;const g=St(),b=Ho.show(na,{anchor:a(n),placement:"bottom-start"},{sections:r(t.items),onInvoke:C=>{const _=$e().find(y=>y.action.id===C);if(_){if(_.action.submenu===!0){i(C,g,b);return}s(C,g,b)}},onDismiss:()=>Ho.close()})}const l=F(()=>t.container.iconPosition??"before");var c=iR(),u=p(c);{var d=g=>{var b=rR();O(()=>se(b,"data-icon",t.container.icon)),k(g,b)};U(u,g=>{t.container.icon&&a(l)==="before"&&g(d)})}var f=w(u,2),v=p(f,!0);h(f);var m=w(f,2);{var x=g=>{var b=sR();O(()=>se(b,"data-icon",t.container.icon)),k(g,b)};U(m,g=>{t.container.icon&&a(l)==="after"&&g(x)})}h(c),Ne(c,g=>S(n,g),()=>a(n)),O(()=>z(v,t.container.label)),K("click",c,o),k(e,c),ae()}pe(["click"]);var oR=A('<div class="sh3-menubar svelte-7gc0wa" role="menubar"></div>');function em(e,t){ie(t,!0);const n=F(St),r=F(()=>a(n).activeAppId),s=F(()=>{if(a(r))return En(a(r))?.manifest.menus}),i=F(()=>Zp(a(r),a(s))),o=F(()=>{const c=[],u=$e();for(const d of a(i)){const f=Qp(u,a(n),d.id);f.length>0&&c.push({container:d,items:f})}return c});var l=oR();be(l,21,()=>a(o),({container:c,items:u})=>c.id,(c,u)=>{let d=()=>a(u).container,f=()=>a(u).items;aR(c,{get container(){return d()},get items(){return f()}})}),h(l),k(e,l),ae()}const lR={type:"slot",slotId:"__sh3core__:compact:empty",viewId:null,role:"body"};function ns(e){return e??"body"}function tm(e){return e.type==="slot"?[{slotId:e.slotId,viewId:e.viewId,label:e.slotId,role:ns(e.role)}]:e.type==="tabs"?e.tabs.map(t=>({slotId:t.slotId,viewId:t.viewId,label:t.label,icon:t.icon,role:ns(e.role)})):e.children.flatMap(tm)}function vd(e){return tm(e).some(t=>t.role==="body")}function nm(e){if(e.type==="slot"||e.type==="tabs")return ns(e.role)==="body"?e:null;const t=[];for(let n=0;n<e.children.length;n++){const r=nm(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 hd(e){return e==="inspector"?"right":"left"}function cR(e){const t={left:[],right:[],top:[]};function n(r,s){if(r.type==="slot"){const i=ns(r.role);if(i==="body")return;const o=s??hd(i);t[o].push({slotId:r.slotId,viewId:r.viewId,label:r.slotId,role:i});return}if(r.type==="tabs"){const i=ns(r.role);if(i==="body")return;const o=s??hd(i);for(const l of r.tabs)t[o].push({slotId:l.slotId,viewId:l.viewId,label:l.label,icon:l.icon,role:i});return}if(r.direction==="horizontal")for(let i=0;i<r.children.length;i++){const o=r.children[i];let l=s;s===null&&!vd(o)&&(i===0?l="left":i===r.children.length-1&&(l="right")),n(o,l)}else for(let i=0;i<r.children.length;i++){const o=r.children[i];let l=s;s===null&&i===0&&!vd(o)&&(l="top"),n(o,l)}}return n(e,null),t}function xo(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 rm(e){const n=nm(e)??lR,r=cR(e);return{bodyRoot:n,drawers:{left:xo(r.left),right:xo(r.right),top:xo(r.top)},carousels:bT(n)}}var uR=A('<span class="shortcut svelte-vkxo1d"> </span>'),dR=A('<button class="item child svelte-vkxo1d"><span class="label svelte-vkxo1d"> </span> <!></button>'),fR=A('<div class="subitems svelte-vkxo1d"></div>'),vR=A('<button class="item submenu svelte-vkxo1d"><span>▸</span> <span class="label svelte-vkxo1d"> </span></button> <!>',1),hR=A('<span class="shortcut svelte-vkxo1d"> </span>'),pR=A('<button class="item svelte-vkxo1d"><span class="label svelte-vkxo1d"> </span> <!></button>'),mR=A('<div class="items svelte-vkxo1d"></div>'),bR=A('<button class="container svelte-vkxo1d"><span>▸</span> <span class="label svelte-vkxo1d"> </span></button> <!>',1),gR=A('<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 yR(e,t){ie(t,!0);const n=F(St),r=F(()=>a(n).activeAppId),s=F(()=>{if(a(r))return En(a(r))?.manifest.menus}),i=F(()=>Zp(a(r),a(s))),o=F(()=>{const g=[],b=$e();for(const C of a(i)){const _=Qp(b,a(n),C.id);_.length>0&&g.push({containerId:C.id,label:C.label,items:_})}return g});let l=V(fe(new Set)),c=V(fe(new Set));function u(g){const b=new Set(a(l));b.has(g)?b.delete(g):b.add(g),S(l,b,!0)}function d(g){const b=new Set(a(c));b.has(g)?b.delete(g):b.add(g),S(c,b,!0)}function f(g){const b=$e().find(C=>C.action.id===g);if(!(!b||typeof b.action.run!="function")){try{b.action.run({action:{id:g,label:Ft(b.action)},appId:a(n).activeAppId,viewId:a(n).focusedViewId??void 0,selection:a(n).selection??void 0,invokedVia:"palette",dispatch:()=>{}})}catch(C){console.error(`[sh3] menu-sheet action "${g}" threw:`,C)}t.onClose()}}var v=De(),m=ve(v);{var x=g=>{var b=gR(),C=ve(b),_=w(C,2),y=p(_);be(y,21,()=>a(o),({containerId:I,label:D,items:R})=>I,(I,D)=>{let R=()=>a(D).containerId,P=()=>a(D).label,L=()=>a(D).items;var N=bR(),E=ve(N),M=p(E);let j;var B=w(M,2),W=p(B,!0);h(B),h(E);var ee=w(E,2);{var G=Q=>{var Y=mR();be(Y,21,L,J=>J.id,(J,q)=>{var H=De(),$=ve(H);{var X=de=>{var ne=vR(),oe=ve(ne),me=p(oe);let Ie;var at=w(me,2),Ge=p(at,!0);h(at),h(oe);var Lt=w(oe,2);{var hs=re=>{var Ce=fR();be(Ce,21,()=>$p($e(),a(n),a(q).id),je=>je.id,(je,we)=>{var Oe=dR(),Je=p(Oe),He=p(Je,!0);h(Je);var rn=w(Je,2);{var gn=ct=>{var sn=uR(),Ja=p(sn,!0);h(sn),O(()=>z(Ja,a(we).shortcut)),k(ct,sn)};U(rn,ct=>{a(we).shortcut&&ct(gn)})}h(Oe),O(()=>{Oe.disabled=a(we).disabled,z(He,a(we).label)}),K("click",Oe,()=>f(a(we).id)),k(je,Oe)}),h(Ce),k(re,Ce)},le=F(()=>a(c).has(a(q).id));U(Lt,re=>{a(le)&&re(hs)})}O((re,Ce)=>{se(oe,"aria-expanded",re),oe.disabled=a(q).disabled,Ie=he(me,1,"caret svelte-vkxo1d",null,Ie,Ce),z(Ge,a(q).label)},[()=>a(c).has(a(q).id),()=>({open:a(c).has(a(q).id)})]),K("click",oe,()=>d(a(q).id)),k(de,ne)},ue=de=>{var ne=pR(),oe=p(ne),me=p(oe,!0);h(oe);var Ie=w(oe,2);{var at=Ge=>{var Lt=hR(),hs=p(Lt,!0);h(Lt),O(()=>z(hs,a(q).shortcut)),k(Ge,Lt)};U(Ie,Ge=>{a(q).shortcut&&Ge(at)})}h(ne),O(()=>{ne.disabled=a(q).disabled,z(me,a(q).label)}),K("click",ne,()=>f(a(q).id)),k(de,ne)};U($,de=>{a(q).submenu?de(X):de(ue,-1)})}k(J,H)}),h(Y),k(Q,Y)},Z=F(()=>a(l).has(R()));U(ee,Q=>{a(Z)&&Q(G)})}O((Q,Y)=>{se(E,"aria-expanded",Q),j=he(M,1,"caret svelte-vkxo1d",null,j,Y),z(W,P())},[()=>a(l).has(R()),()=>({open:a(l).has(R())})]),K("click",E,()=>u(R())),k(I,N)}),h(y);var T=w(y,2);h(_),K("click",C,function(...I){t.onClose?.apply(this,I)}),K("keydown",C,I=>{I.key==="Escape"&&t.onClose()}),K("click",T,function(...I){t.onClose?.apply(this,I)}),k(g,b)};U(m,g=>{t.open&&g(x)})}k(e,v),ae()}pe(["click","keydown"]);var _R=A('<span data-sh3-anchor="left" class="svelte-q1hcw0"><!></span>'),wR=A('<span data-sh3-anchor="right" class="svelte-q1hcw0"><!></span>'),kR=A('<span data-sh3-anchor="top" class="svelte-q1hcw0"><!></span>'),xR=A('<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 SR(e,t){ie(t,!0);const n=F(()=>rm(en.root)),r=F(St),s=F(()=>fc()==="home"),i=F(()=>{const E=a(r).activeAppId;return E?En(E)?.manifest.label??E:"SH3"}),o=F(()=>{if(a(n).carousels.size===0)return null;let E=null,M="";for(const[j,B]of a(n).carousels)(E===null||j<E)&&(E=j,M=B.activeLabel);return M}),l=F(()=>{const E=a(o);return E?`${a(i)} › ${E}`:a(i)});let c=V(!1);function u(E){Ct.drawers.toggle(E)}function d(){Ct.actions.openPalette()}var f=xR(),v=ve(f),m=p(v),x=p(m);Un(x,{variant:"icon",icon:"house",ariaLabel:"Home",title:"Home",get disabled(){return a(s)},onclick:()=>ds()});var g=w(x,2);{var b=E=>{var M=_R(),j=p(M);Un(j,{variant:"icon",icon:"menu",ariaLabel:"Toggle left drawer",title:"Toggle left drawer",onclick:()=>u("left")}),h(M),k(E,M)};U(g,E=>{a(n).drawers.left&&E(b)})}var C=w(g,2);{var _=E=>{var M=wR(),j=p(M);Un(j,{variant:"icon",icon:"panel-right",ariaLabel:"Toggle right drawer",title:"Toggle right drawer",onclick:()=>u("right")}),h(M),k(E,M)};U(C,E=>{a(n).drawers.right&&E(_)})}var y=w(C,2);{var T=E=>{var M=kR(),j=p(M);Un(j,{variant:"icon",icon:"panel-top",ariaLabel:"Toggle top drawer",title:"Toggle top drawer",onclick:()=>u("top")}),h(M),k(E,M)};U(y,E=>{a(n).drawers.top&&E(T)})}h(m);var I=w(m,2),D=p(I,!0);h(I);var R=w(I,2),P=p(R);Un(P,{variant:"icon",icon:"command",ariaLabel:"Open command palette",title:"Open command palette",onclick:d});var L=w(P,2);Un(L,{variant:"icon",icon:"ellipsis-vertical",ariaLabel:"Open menu",title:"Open menu",onclick:()=>{S(c,!0)}}),h(R),h(v);var N=w(v,2);yR(N,{get open(){return a(c)},onClose:()=>S(c,!1)}),O(()=>z(D,a(l))),k(e,f),ae()}var IR=A('<button role="tab"> </button>'),ER=A('<div class="tab-strip svelte-8dp9bg" role="tablist"></div>'),AR=A('<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 CR(e,t){ie(t,!0);const n=F(()=>t.spec.slots.find(l=>l.slotId===t.activeSlotId)??t.spec.slots[0]),r=F(()=>({type:"slot",slotId:a(n).slotId,viewId:a(n).viewId,role:a(n).role}));var s=De(),i=ve(s);{var o=l=>{var c=AR(),u=ve(c),d=w(u,2),f=p(d),v=p(f),m=p(v,!0);h(v);var x=w(v,2);h(f);var g=w(f,2);{var b=y=>{var T=ER();be(T,21,()=>t.spec.slots,I=>I.slotId,(I,D)=>{var R=IR();let P;var L=p(R,!0);h(R),O(()=>{se(R,"aria-selected",a(D).slotId===a(n).slotId),P=he(R,1,"svelte-8dp9bg",null,P,{active:a(D).slotId===a(n).slotId}),z(L,a(D).label)}),K("click",R,()=>t.onActivate(a(D).slotId)),k(I,R)}),h(T),k(y,T)};U(g,y=>{t.spec.slots.length>1&&y(b)})}var C=w(g,2),_=p(C);da(_,{get node(){return a(r)},get label(){return a(n).label}}),h(C),h(d),O(()=>{he(d,1,`drawer drawer-${t.anchor??""}`,"svelte-8dp9bg"),se(d,"data-sh3-anchor",t.anchor),z(m,a(n).label)}),K("click",u,function(...y){t.onClose?.apply(this,y)}),K("keydown",u,y=>{y.key==="Escape"&&t.onClose()}),K("click",x,function(...y){t.onClose?.apply(this,y)}),k(l,c)};U(i,l=>{t.open&&l(o)})}k(e,s),ae()}pe(["click","keydown"]);var TR=A('<div class="compact-body svelte-1sc410j" data-sh3-region="compact-body"><!></div> <!>',1);function RR(e,t){ie(t,!0);const n=F(()=>rm(en.root)),r=["left","right","top"];var s=TR(),i=ve(s),o=p(i);ts(o,{get rootOverride(){return a(n).bodyRoot},get carousels(){return a(n).carousels}}),h(i);var l=w(i,2);be(l,16,()=>r,c=>c,(c,u)=>{const d=F(()=>a(n).drawers[u]);var f=De(),v=ve(f);{var m=x=>{CR(x,{get anchor(){return u},get spec(){return a(d)},get open(){return jt.state[u].open},get activeSlotId(){return jt.state[u].activeSlotId},onClose:()=>jt.close(u),onActivate:g=>jt.activate(u,g)})};U(v,x=>{a(d)&&x(m)})}k(c,f)}),k(e,s),ae()}var LR=A('<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>'),MR=A('<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>'),PR=A('<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>'),DR=A('<footer class="sh3-statusbar svelte-1amm732" data-sh3-region="statusbar"></footer>'),jR=A('<div class="sh3 svelte-1amm732"><!> <!> <main class="sh3-content svelte-1amm732" data-sh3-region="content" data-sh3-layer="0"><!></main> <!> <!> <!></div>');function zR(e,t){ie(t,!0);let n=V(void 0);const r=F(il),s=F($r),i=F(It),o=F(()=>fc()==="home"),l=F(()=>Ct.viewport.current.class);Se(()=>{en.tree,Fk()}),Se(()=>il()?Lx():void 0),Se(()=>{const I=a(n);if(!I)return;const D=new Set;function R(L){const N=I.getBoundingClientRect(),E=L.clientX-N.left;if(E>=Xi&&E<=N.width-Xi)return;li(L.pointerId,{ownerId:"sh3:edge",axis:"x",priority:"edge",depth:0})&&D.add(L.pointerId)}function P(L){D.has(L.pointerId)&&(gr(L.pointerId,"sh3:edge"),D.delete(L.pointerId))}return I.addEventListener("pointerdown",R),I.addEventListener("pointerup",P),I.addEventListener("pointercancel",P),()=>{I.removeEventListener("pointerdown",R),I.removeEventListener("pointerup",P),I.removeEventListener("pointercancel",P);for(const L of D)gr(L,"sh3:edge");D.clear()}});var c=jR(),u=p(c);{var d=I=>{var D=PR(),R=p(D),P=p(R),L=p(P);h(P),h(R);var N=w(R,2);Jp(N,{});var E=w(N,2);em(E,{});var M=w(E,2);{var j=B=>{var W=MR(),ee=p(W),G=p(ee,!0);h(ee);var Z=w(ee,2),Q=p(Z,!0);h(Z);var Y=w(Z,2);{var J=H=>{var $=LR(),X=p($),ue=p(X);h(X),h($),O(()=>se(ue,"href",`${Jn}#log-out`)),K("click",$,()=>O0()),k(H,$)},q=F(()=>!q0());U(Y,H=>{a(q)&&H(J)})}h(W),O(()=>{z(G,a(s).displayName),z(Q,a(i)?"admin":"user")}),k(B,W)};U(M,B=>{a(r)&&a(s)&&B(j)})}h(D),O(()=>{R.disabled=a(o),se(L,"href",`${Jn}#house`)}),K("click",R,()=>ds()),k(I,D)},f=I=>{SR(I,{})};U(u,I=>{a(l)==="desktop"?I(d):I(f,-1)})}var v=w(u,2);UT(v,{});var m=w(v,2),x=p(m);{var g=I=>{ts(I,{})},b=I=>{RR(I,{})};U(x,I=>{a(l)==="desktop"?I(g):I(b,-1)})}h(m),Ne(m,I=>S(n,I),()=>a(n));var C=w(m,2);{var _=I=>{var D=DR();k(I,D)};U(C,I=>{a(l)==="desktop"&&I(_)})}var y=w(C,2);Gp(y,{});var T=w(y,2);XT(T,{}),h(c),O(()=>se(c,"data-sh3-viewport",a(l))),k(e,c),ae()}pe(["click"]);var OR=A('<button type="button" class="signin-link svelte-lh4k15">Create an account</button>'),NR=A('<form class="signin-form svelte-lh4k15"><input class="signin-input svelte-lh4k15" type="text" placeholder="Username" autocomplete="username"/> <input class="signin-input svelte-lh4k15" type="password" placeholder="Password" autocomplete="current-password"/> <button type="submit" class="signin-btn svelte-lh4k15"> </button></form> <!>',1),qR=A('<form class="signin-form svelte-lh4k15"><input class="signin-input svelte-lh4k15" type="text" placeholder="Username" autocomplete="username"/> <input class="signin-input svelte-lh4k15" type="text" placeholder="Display name (optional)"/> <input class="signin-input svelte-lh4k15" type="password" placeholder="Password" autocomplete="new-password"/> <button type="submit" class="signin-btn svelte-lh4k15"> </button></form> <button type="button" class="signin-link svelte-lh4k15">Back to sign in</button>',1),BR=A('<div class="signin-error svelte-lh4k15"> </div>'),FR=A('<div class="signin-wall svelte-lh4k15"><div class="signin-card svelte-lh4k15"><h1 class="signin-brand svelte-lh4k15">SH3</h1> <!> <!></div></div>');function VR(e,t){ie(t,!0);let n=V("login"),r=V(""),s=V(""),i=V(""),o=V(null),l=V(!1);async function c(){if(!a(r).trim()||!a(s).trim()||a(l))return;S(l,!0),S(o,null);const _=await gh(a(r).trim(),a(s).trim());S(l,!1),_.ok?t.onSuccess():S(o,_.error,!0)}async function u(){if(!a(r).trim()||!a(s).trim()||a(l))return;S(l,!0),S(o,null);const _=await z0(a(r).trim(),a(s).trim(),a(i).trim()||void 0);S(l,!1),_.ok?t.onSuccess():S(o,_.error,!0)}function d(_){S(n,_,!0),S(o,null)}var f=FR(),v=p(f),m=w(p(v),2);{var x=_=>{var y=NR(),T=ve(y),I=p(T);xe(I);var D=w(I,2);xe(D);var R=w(D,2),P=p(R,!0);h(R),h(T);var L=w(T,2);{var N=E=>{var M=OR();K("click",M,()=>d("register")),k(E,M)};U(L,E=>{t.selfRegistration&&E(N)})}O(E=>{I.disabled=a(l),D.disabled=a(l),R.disabled=E,z(P,a(l)?"Signing in...":"Sign in")},[()=>a(l)||!a(r).trim()||!a(s).trim()]),Ue("submit",T,E=>{E.preventDefault(),c()}),Te(I,()=>a(r),E=>S(r,E)),Te(D,()=>a(s),E=>S(s,E)),k(_,y)},g=_=>{var y=qR(),T=ve(y),I=p(T);xe(I);var D=w(I,2);xe(D);var R=w(D,2);xe(R);var P=w(R,2),L=p(P,!0);h(P),h(T);var N=w(T,2);O(E=>{I.disabled=a(l),D.disabled=a(l),R.disabled=a(l),P.disabled=E,z(L,a(l)?"Creating...":"Create account")},[()=>a(l)||!a(r).trim()||!a(s).trim()]),Ue("submit",T,E=>{E.preventDefault(),u()}),Te(I,()=>a(r),E=>S(r,E)),Te(D,()=>a(i),E=>S(i,E)),Te(R,()=>a(s),E=>S(s,E)),K("click",N,()=>d("login")),k(_,y)};U(m,_=>{a(n)==="login"?_(x):_(g,-1)})}var b=w(m,2);{var C=_=>{var y=BR(),T=p(y,!0);h(y),O(()=>z(T,a(o))),k(_,y)};U(b,_=>{a(o)&&_(C)})}h(v),h(f),k(e,f),ae()}pe(["click"]);function UR(){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:jx(t)}}catch(n){return{error:n.message}}}function HR(e){return e.kind==="float"?{docked:e.content,floats:[]}:{docked:{type:"slot",slotId:"satellite:root",viewId:null},floats:[]}}var KR=A('<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),WR=A("<div><!> <!></div>");function YR(e,t){ie(t,!0),Se(()=>{if(t.payload.kind==="float")Ok(HR(t.payload).docked);else if(t.payload.kind==="app"){const c=t.payload.appId;queueMicrotask(()=>{Nn(c,{skipLastApp:!0,skipSwitchToHome:!0})})}});var n=WR();let r;var s=p(n);{var i=c=>{var u=KR(),d=ve(u),f=p(d);Jp(f,{});var v=w(f,2);em(v,{}),zt(2),h(d);var m=w(d,2),x=p(m);ts(x,{}),h(m),k(c,u)},o=c=>{ts(c,{})};U(s,c=>{t.payload.kind==="app"?c(i):c(o,-1)})}var l=w(s,2);Gp(l,{}),h(n),O(()=>r=he(n,1,"sh3-satellite-root svelte-191z0e1",null,r,{"sh3-satellite-app":t.payload.kind==="app"})),k(e,n),ae()}async function pd(e){const t=e?.serverUrl??"",n=await TA();n.backends&&(fo("workspace",n.backends.workspace),fo("user",n.backends.user)),n.localOwner&&N0(),Th(t),Gx();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=UR();if(s){if("error"in s){r.textContent=`Invalid satellite payload: ${s.error}`;return}if(fo("workspace",new Fo),n.localOwner&&wi("local"),e?.shards)for(const c of e.shards)cd(c);if(e?.apps)for(const c of e.apps)Os(c);await md(e?.discoveredPackages),await jC({activateShardIds:s.payload.kind==="app"?[]:s.payload.activateShards}),Ru(),Ve(YR,{target:r,props:{payload:s.payload}});return}let i=null;if(!n.localOwner||e?.remoteAuth===!0)try{const c=await Re(`${t}/api/boot`);c.ok&&(i=await c.json())}catch{}if(n.localOwner&&!e?.remoteAuth)wi("local");else if(i){ju(t,i),wi(i.tenantId);const{auth:c,session:u}=i;if(!u&&c.required&&!c.guestAllowed){await XR(r,i);const d=await Re(`${t}/api/boot`);d.ok&&(i=await d.json(),ju(t,i),wi(i.tenantId))}}if(await md(e?.discoveredPackages),e?.shards)for(const c of e.shards)cd(c);if(e?.apps)for(const c of e.apps)Os(c);const l={};e?.excludeShards&&(l.excludeShards=e.excludeShards),await DC(l),Ru(),Ve(zR,{target:r})}async function md(e){if(e?.length)for(const t of e)try{const n=t.bundleUrl.startsWith("http://")||t.bundleUrl.startsWith("https://"),r=rt(),s=t.bundleUrl.startsWith("/")?"":"/",i=n?t.bundleUrl:`${r}${s}${t.bundleUrl}`,o=await Re(i);if(!o.ok){console.warn(`[sh3] Failed to fetch discovered package "${t.id}": HTTP ${o.status}`);continue}const l=await o.arrayBuffer(),c=await hi(l);Rc(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 XR(e,t){return new Promise(n=>{const r=Ve(VR,{target:e,props:{selfRegistration:t.auth.selfRegistration,onSuccess:()=>{et(r),n()}}})})}var GR=A('<div class="onboarding-error svelte-c2abmw" data-role="error-banner"> </div>'),JR=A('<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 ZR(e,t){ie(t,!0);let n=V(fe(ke(()=>t.prefillUrl))),r=V(fe(ke(()=>t.prefillLabel))),s=V(fe(ke(()=>t.error))),i=V(!1);async function o(){if(!(!a(n).trim()||a(i))){S(i,!0),S(s,null);try{const _=a(n).trim().replace(/\/$/,""),y=await fetch(`${_}/api/boot`,{credentials:"include"});if(!y.ok){S(s,"Not an SH3 server");return}let T;try{T=await y.json()}catch{S(s,"Not an SH3 server");return}if(!(!!T.auth&&typeof T.auth=="object"&&"required"in T.auth&&"guestAllowed"in T.auth&&"selfRegistration"in T.auth&&typeof T.tenantId=="string")){S(s,"Not an SH3 server");return}const D=typeof T.version=="string"?T.version:"unknown";t.onResolved({mode:"remote",url:_,label:a(r).trim()||_,version:D})}catch(_){S(s,`Could not reach ${a(n)} — ${_.message}`)}finally{S(i,!1)}}}function l(){t.onResolved({mode:"local"})}var c=JR(),u=p(c),d=w(p(u),4),f=p(d);xe(f);var v=w(f,2);xe(v);var m=w(v,2),x=p(m,!0);h(m),h(d);var g=w(d,4),b=w(g,4);{var C=_=>{var y=GR(),T=p(y,!0);h(y),O(()=>z(T,a(s))),k(_,y)};U(b,_=>{a(s)&&_(C)})}h(u),h(c),O(_=>{f.disabled=a(i),v.disabled=a(i),m.disabled=_,z(x,a(i)?"Connecting…":"Connect"),g.disabled=a(i)},[()=>a(i)||!a(n).trim()]),Ue("submit",d,_=>{_.preventDefault(),o()}),Te(f,()=>a(n),_=>S(n,_)),Te(v,()=>a(r),_=>S(r,_)),K("click",g,l),k(e,c),ae()}pe(["click"]);const jc="sh3:identity";function QR(){const e=localStorage.getItem(jc);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 bd(e){localStorage.setItem(jc,JSON.stringify(e))}function $R(){localStorage.removeItem(jc)}const gd={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(){$R(),location.reload()}})}},eL=typeof window<"u"&&("__TAURI_INTERNALS__"in window||"__TAURI__"in window),So=window.location.origin;async function yd(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 _d(e){return new Promise(t=>{const n=document.getElementById("app"),r=Ve(ZR,{target:n,props:{prefillUrl:e.prefillUrl,prefillLabel:e.prefillLabel,error:e.error,onResolved:s=>{et(r),t(s)}}})})}async function tL(){if(!eL)return{identity:null,serverUrl:So};if(await yd(So))return{identity:null,serverUrl:So};let e=QR();e?.mode==="remote"?await yd(e.url)||(e=await _d({prefillUrl:e.url,prefillLabel:e.label,error:`Could not reach ${e.url}`}),bd(e)):e||(e=await _d({prefillUrl:"",prefillLabel:"",error:null}),bd(e));const t=e.mode==="remote"?e.url:"";return{identity:e,serverUrl:t}}async function nL(){const{identity:e,serverUrl:t}=await tL();if(e?.mode==="local"){Pu(new rh),await pd({serverUrl:"",shards:[gd]});return}Th(t),Pu(new px(t));let n=[];try{const r=await fetch(`${t}/api/packages`);r.ok&&(n=await r.json())}catch{}await pd({discoveredPackages:n,serverUrl:t,remoteAuth:e?.mode==="remote",shards:e?[gd]:[]})}nL();
21
+ //# sourceMappingURL=index-Cwjy-nO1.js.map