sh3-server 0.19.1 → 0.19.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,21 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/tauri-backend-CPdbYLHz.js","assets/index-BRw5Wfxx.js","assets/core-DsojzR6k.js"])))=>i.map(i=>d[i]);
2
- (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const a of s)if(a.type==="childList")for(const l of a.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&r(l)}).observe(document,{childList:!0,subtree:!0});function n(s){const a={};return s.integrity&&(a.integrity=s.integrity),s.referrerPolicy&&(a.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?a.credentials="include":s.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(s){if(s.ep)return;s.ep=!0;const a=n(s);fetch(s.href,a)}})();const pm="modulepreload",mm=function(e){return"/"+e},qc={},fi=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const l=document.querySelector("meta[property=csp-nonce]"),o=l?.nonce||l?.getAttribute("nonce");s=Promise.allSettled(n.map(c=>{if(c=mm(c),c in qc)return;qc[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":pm,u||(f.as="script"),f.crossOrigin="",f.href=c,o&&f.setAttribute("nonce",o),document.head.appendChild(f),u)return new Promise((v,m)=>{f.addEventListener("load",v),f.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${c}`)))})}))}function a(l){const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=l,window.dispatchEvent(o),!o.defaultPrevented)throw l}return s.then(l=>{for(const o of l||[])o.status==="rejected"&&a(o.reason);return t().catch(a)})},bm=1,gm=2,yd=4,ym=8,_m=16,wm=1,_d=4,km=8,xm=16,Sm=1,Em=2,Im=4,bl=1,wd=2,Am=4,Cm=8,vi="[",hi="[!",Bc="[?",pi="]",ir={},Oe=Symbol(),Tt=Symbol("filename"),Ir=Symbol("hmr"),kd="http://www.w3.org/1999/xhtml",Ys="http://www.w3.org/2000/svg",gl="http://www.w3.org/1998/Math/MathML",xd="@attach",Sd=!1;var ts=Array.isArray,Tm=Array.prototype.indexOf,Fr=Array.prototype.includes,mi=Array.from,Na=Object.keys,or=Object.defineProperty,sn=Object.getOwnPropertyDescriptor,Ed=Object.getOwnPropertyDescriptors,Id=Object.prototype,Rm=Array.prototype,bi=Object.getPrototypeOf,Fc=Object.isExtensible,Lm=Object.prototype.hasOwnProperty;function Ar(e){return typeof e=="function"}const Rt=()=>{};function Vc(e){return typeof e?.then=="function"}function Mm(e){return e()}function xo(e){for(var t=0;t<e.length;t++)e[t]()}function Ad(){var e,t,n=new Promise((r,s)=>{e=r,t=s});return{promise:n,resolve:e,reject:t}}function Pm(e,t,n=!1){return e===void 0?n?t():t:e}function Cd(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 Dm(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 tt=2,lr=4,Ws=8,yl=1<<24,an=16,ln=32,Rn=64,So=128,Kt=512,Ge=1024,et=2048,cn=4096,ft=8192,_t=16384,Pn=32768,Eo=1<<25,un=65536,Ts=1<<17,Td=1<<18,Hn=1<<19,Rd=1<<20,bn=1<<25,cr=65536,Io=1<<21,Vr=1<<22,Bn=1<<23,lt=Symbol("$state"),gi=Symbol("legacy props"),zm=Symbol(""),jm=Symbol("proxy path"),Om=Symbol("hmr anchor"),hn=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},yr=!!globalThis.document?.contentType&&globalThis.document.contentType.includes("xml"),Ld=1,Xs=3,Dn=8,Md=11;function Pd(e){throw new Error("https://svelte.dev/e/experimental_async_required")}function Nm(){throw new Error("https://svelte.dev/e/invalid_default_snippet")}function Uc(){throw new Error("https://svelte.dev/e/invalid_snippet_arguments")}function ns(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function qm(){throw new Error("https://svelte.dev/e/missing_context")}function Bm(){throw new Error("https://svelte.dev/e/snippet_without_render_tag")}function Fm(e){throw new Error("https://svelte.dev/e/store_invalid_shape")}function Vm(){throw new Error("https://svelte.dev/e/svelte_element_invalid_this_value")}function Um(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Hm(e,t){throw new Error("https://svelte.dev/e/component_api_changed")}function Km(e,t){throw new Error("https://svelte.dev/e/component_api_invalid_new")}function Ym(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Wm(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Xm(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Gm(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Jm(){throw new Error("https://svelte.dev/e/effect_pending_outside_reaction")}function Zm(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Qm(){throw new Error("https://svelte.dev/e/fork_discarded")}function $m(){throw new Error("https://svelte.dev/e/fork_timing")}function eb(){throw new Error("https://svelte.dev/e/get_abort_signal_outside_reaction")}function tb(){throw new Error("https://svelte.dev/e/hydration_failed")}function Dd(e){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}function nb(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function rb(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function sb(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function ab(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function ib(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}function ob(e,t){console.warn("https://svelte.dev/e/assignment_value_stale")}function lb(e,t){console.warn("https://svelte.dev/e/binding_property_non_reactive")}function cb(e){console.warn("https://svelte.dev/e/console_log_state")}function ub(){console.warn("https://svelte.dev/e/derived_inert")}function db(e,t){console.warn("https://svelte.dev/e/event_handler_invalid")}function fb(e){console.warn("https://svelte.dev/e/hydratable_missing_but_expected")}function Gs(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function vb(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_binding")}function hb(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_mutation")}function pb(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function zd(e){console.warn("https://svelte.dev/e/state_proxy_equality_mismatch")}function mb(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let le=!1;function Me(e){le=e}let pe;function Te(e){if(e===null)throw Gs(),ir;return pe=e}function ht(){return Te(Dt(pe))}function h(e){if(le){if(Dt(pe)!==null)throw Gs(),ir;pe=e}}function bb(e){le&&(pe=e.content)}function Mt(e=1){if(le){for(var t=e,n=pe;t--;)n=Dt(n);pe=n}}function ur(e=!0){for(var t=0,n=pe;;){if(n.nodeType===Dn){var r=n.data;if(r===pi){if(t===0)return n;t-=1}else(r===vi||r===hi||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var s=Dt(n);e&&n.remove(),n=s}}function _l(e){if(!e||e.nodeType!==Dn)throw Gs(),ir;return e.data}function jd(e){return e===this.v}function Od(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function Nd(e){return!Od(e,this.v)}let gb=!1;function yb(e){console.warn("https://svelte.dev/e/dynamic_void_element_content")}const _b=[];function dr(e,t=!1,n=!1){return xa(e,new Map,"",_b,null,n)}function xa(e,t,n,r,s=null,a=!1){if(typeof e=="object"&&e!==null){var l=t.get(e);if(l!==void 0)return l;if(e instanceof Map)return new Map(e);if(e instanceof Set)return new Set(e);if(ts(e)){var o=Array(e.length);t.set(e,o),s!==null&&t.set(s,o);for(var c=0;c<e.length;c+=1){var u=e[c];c in e&&(o[c]=xa(u,t,n,r,null,a))}return o}if(bi(e)===Id){o={},t.set(e,o),s!==null&&t.set(s,o);for(var d of Object.keys(e))o[d]=xa(e[d],t,n,r,null,a);return o}if(e instanceof Date)return structuredClone(e);if(typeof e.toJSON=="function"&&!a)return xa(e.toJSON(),t,n,r,e)}if(e instanceof EventTarget)return e;try{return structuredClone(e)}catch{return e}}let xr=null;function qd(e,t){const n=e.v;if(n===Oe)return;const r=wb(e),s=xe,a=e.wv>s.wv||s.wv===0,l=a?"color: CornflowerBlue; font-weight: bold":"color: grey; font-weight: normal";if(console.groupCollapsed(e.label?`%c${r}%c ${e.label}`:`%c${r}%c`,l,a?"font-weight: normal":l,typeof n=="object"&&n!==null&&lt in n?dr(n,!0):n),r==="$derived"){const c=new Set(e.deps);for(const u of c)qd(u)}if(e.created&&console.log(e.created),a&&e.updated)for(const c of e.updated.values())c.error&&console.log(c.error);if(t)for(var o of t.traces)console.log(o);console.groupEnd()}function wb(e){return e.f&(tt|Vr)?"$derived":e.label?.startsWith("$")?"store":"$state"}function kb(e,t){var n=xr;try{xr={entries:new Map,reaction:xe};var r=performance.now(),s=t(),a=(performance.now()-r).toFixed(2),l=_e(e);if(!ta())console.log(`${l} %cran outside of an effect (${a}ms)`,"color: grey");else if(xr.entries.size===0)console.log(`${l} %cno reactive dependencies (${a}ms)`,"color: grey");else{console.group(`${l} %c(${a}ms)`,"color: grey");var o=xr.entries;_e(()=>{for(const[c,u]of o)qd(c,u)}),xr=null,console.groupEnd()}return s}finally{xr=n}}function xb(e,t){return e.label=t,Bd(e.v,t),e}function Bd(e,t){return e?.[jm]?.(t),e}function Sb(e){const t=new Error,n=Eb();return n.length===0?null:(n.unshift(`
3
- `),or(t,"stack",{value:n.join(`
4
- `)}),or(t,"name",{value:e}),t)}function Eb(){const e=Error.stackTraceLimit;Error.stackTraceLimit=1/0;const t=new Error().stack;if(Error.stackTraceLimit=e,!t)return[];const n=t.split(`
5
- `),r=[];for(let s=0;s<n.length;s++){const a=n[s],l=a.replaceAll("\\","/");if(a.trim()!=="Error"){if(a.includes("validate_each_keys"))return[];l.includes("svelte/src/internal")||l.includes("node_modules/.vite")||r.push(a)}}return r}let Ce=null;function Ur(e){Ce=e}let Sa=null;function Ib(e,t,n,r,s,a){const l=Sa;Sa={type:t,file:n[Tt],line:r,column:s,parent:l,...a};try{return e()}finally{Sa=l}}let wl=null;function Hc(e){wl=e}function Ab(){const e={};return[()=>(Fd(e)||qm(),kl(e)),t=>xl(e,t)]}function kl(e){return yi().get(e)}function xl(e,t){return yi().set(e,t),t}function Fd(e){return yi().has(e)}function Cb(){return yi()}function se(e,t=!1,n){Ce={p:Ce,i:!1,c:null,e:null,s:e,x:null,r:me,l:null}}function ae(e){var t=Ce,n=t.e;if(n!==null){t.e=null;for(var r of n)mf(r)}return e!==void 0&&(t.x=e),t.i=!0,Ce=t.p,e??{}}function Vd(){return!0}function yi(e){return Ce===null&&ns(),Ce.c??=new Map(Tb(Ce)||void 0)}function Tb(e){let t=e.p;for(;t!==null;){const n=t.c;if(n!==null)return n;t=t.p}return null}let Zn=[];function Ud(){var e=Zn;Zn=[],xo(e)}function vt(e){if(Zn.length===0&&!zr){var t=Zn;queueMicrotask(()=>{t===Zn&&Ud()})}Zn.push(e)}function Rb(){for(;Zn.length>0;)Ud()}function Hd(e){var t=me;if(t===null)return xe.f|=Bn,e;if(!(t.f&Pn)&&!(t.f&lr))throw e;gn(e,t)}function gn(e,t){for(;t!==null;){if(t.f&So){if(!(t.f&Pn))throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const Lb=-7169;function Be(e,t){e.f=e.f&Lb|t}function Sl(e){e.f&Kt||e.deps===null?Be(e,Ge):Be(e,cn)}function Kd(e){if(e!==null)for(const t of e)!(t.f&tt)||!(t.f&cr)||(t.f^=cr,Kd(t.deps))}function Yd(e,t,n){e.f&et?t.add(e):e.f&cn&&n.add(e),Kd(e.deps),Be(e,Ge)}function Wd(e,t,n){if(e==null)return t(void 0),Rt;const r=_e(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}function Mb(e){let t;return Wd(e,n=>t=n)(),t}let Ao=!1,bs=!1,Co=Symbol();function Pb(e,t,n){const r=n[t]??={store:null,source:ki(void 0),unsubscribe:Rt};if(r.store!==e&&!(Co in n))if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=Rt;else{var s=!0;r.unsubscribe=Wd(e,a=>{s?r.source.v=a:S(r.source,a)}),s=!1}return e&&Co in n?Mb(e):i(r.source)}function Db(e,t,n){let r=n[t];return r&&r.store!==e&&(r.unsubscribe(),r.unsubscribe=Rt),e}function Xd(e,t){return _i(e,t),t}function zb(e,t){var n=e[t];n.store!==null&&Xd(n.store,n.source.v)}function jb(){const e={};function t(){jt(()=>{for(var n in e)e[n].unsubscribe();or(e,Co,{enumerable:!1,value:!0})})}return[e,t]}function _i(e,t){Ao=!0;try{e.set(t)}finally{Ao=!1}}function Ob(e,t,n){return _i(e,n),t}function Nb(e,t,n=1){return _i(e,t+n),t}function qb(e,t,n=1){const r=t+n;return _i(e,r),r}function Bb(){bs=!0}function Gd(e){var t=bs;try{return bs=!1,[e(),bs]}finally{bs=t}}const En=new Set;let be=null,dt=null,To=null,zr=!1,eo=!1,Lr=null,Ea=null;var Kc=0;let Fb=1;class Xt{id=Fb++;current=new Map;previous=new Map;#e=new Set;#t=new Set;#n=new Set;#s=new Map;#r=new Map;#i=null;#a=[];#o=[];#l=new Set;#u=new Set;#c=new Map;#f=new Set;is_fork=!1;#h=!1;#v=new Set;#d(){return this.is_fork||this.#r.size>0}#g(){for(const r of this.#v)for(const s of r.#r.keys()){for(var t=!1,n=s;n.parent!==null;){if(this.#c.has(n)){t=!0;break}n=n.parent}if(!t)return!0}return!1}skip_effect(t){this.#c.has(t)||this.#c.set(t,{d:[],m:[]}),this.#f.delete(t)}unskip_effect(t,n=r=>this.schedule(r)){var r=this.#c.get(t);if(r){this.#c.delete(t);for(var s of r.d)Be(s,et),n(s);for(s of r.m)Be(s,cn),n(s)}this.#f.add(t)}#p(){if(Kc++>1e3&&(En.delete(this),Vb()),!this.#d()){for(const o of this.#l)this.#u.delete(o),Be(o,et),this.schedule(o);for(const o of this.#u)Be(o,cn),this.schedule(o)}const t=this.#a;this.#a=[],this.apply();var n=Lr=[],r=[],s=Ea=[];for(const o of t)try{this.#b(o,n,r)}catch(c){throw $d(o),c}if(be=null,s.length>0){var a=Xt.ensure();for(const o of s)a.schedule(o)}if(Lr=null,Ea=null,this.#d()||this.#g()){this.#m(r),this.#m(n);for(const[o,c]of this.#c)Qd(o,c)}else{this.#s.size===0&&En.delete(this),this.#l.clear(),this.#u.clear();for(const o of this.#e)o(this);this.#e.clear(),Yc(r),Yc(n),this.#i?.resolve()}var l=be;if(this.#a.length>0){const o=l??=this;o.#a.push(...this.#a.filter(c=>!o.#a.includes(c)))}l!==null&&(En.add(l),l.#p())}#b(t,n,r){t.f^=Ge;for(var s=t.first;s!==null;){var a=s.f,l=(a&(ln|Rn))!==0,o=l&&(a&Ge)!==0,c=o||(a&ft)!==0||this.#c.has(s);if(!c&&s.fn!==null){l?s.f^=Ge:a&lr?n.push(s):ss(s)&&(a&an&&this.#u.add(s),vr(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)Yd(t[n],this.#l,this.#u)}capture(t,n,r=!1){t.v!==Oe&&!this.previous.has(t)&&this.previous.set(t,t.v),t.f&Bn||(this.current.set(t,[n,r]),dt?.set(t,n)),this.is_fork||(t.v=n)}activate(){be=this}deactivate(){be=null,dt=null}flush(){try{eo=!0,be=this,this.#p()}finally{Kc=0,To=null,Lr=null,Ea=null,eo=!1,be=null,dt=null,nr.clear()}}discard(){for(const t of this.#t)t(this);this.#t.clear(),this.#n.clear(),En.delete(this)}register_created_effect(t){this.#o.push(t)}#y(){for(const d of En){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&(an|Vr)?d.schedule(v):d.#m([v])});d.activate();var a=new Set,l=new Map;for(var o of n)Jd(o,s,a,l);l=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&(_t|ft|Ts))&&El(f,c,l)&&(f.f&(Vr|an)?(Be(f,et),d.schedule(f)):d.#l.add(f));if(d.#a.length>0){d.apply();for(var u of d.#a)d.#b(u,[],[]);d.#a=[]}d.deactivate()}}for(const d of En)d.#v.has(this)&&(d.#v.delete(this),d.#v.size===0&&!d.#d()&&(d.activate(),d.#p()))}increment(t,n){let r=this.#s.get(n)??0;if(this.#s.set(n,r+1),t){let s=this.#r.get(n)??0;this.#r.set(n,s+1)}}decrement(t,n,r){let s=this.#s.get(n)??0;if(s===1?this.#s.delete(n):this.#s.set(n,s-1),t){let a=this.#r.get(n)??0;a===1?this.#r.delete(n):this.#r.set(n,a-1)}this.#h||r||(this.#h=!0,vt(()=>{this.#h=!1,this.flush()}))}transfer_effects(t,n){for(const r of t)this.#l.add(r);for(const r of n)this.#u.add(r);t.clear(),n.clear()}oncommit(t){this.#e.add(t)}ondiscard(t){this.#t.add(t)}on_fork_commit(t){this.#n.add(t)}run_fork_commit_callbacks(){for(const t of this.#n)t(this);this.#n.clear()}settled(){return(this.#i??=Ad()).promise}static ensure(){if(be===null){const t=be=new Xt;eo||(En.add(be),zr||vt(()=>{be===t&&t.flush()}))}return be}apply(){{dt=null;return}}schedule(t){if(To=t,t.b?.is_pending&&t.f&(lr|Ws|yl)&&!(t.f&Pn)){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var r=n.f;if(Lr!==null&&n===me&&(xe===null||!(xe.f&tt))&&!Ao)return;if(r&(Rn|ln)){if(!(r&Ge))return;n.f^=Ge}}this.#a.push(n)}}function Fn(e){var t=zr;zr=!0;try{var n;for(e&&(be!==null&&!be.is_fork&&be.flush(),n=e());;){if(Rb(),be===null)return n;be.flush()}}finally{zr=t}}function Vb(){try{Zm()}catch(e){gn(e,To)}}let In=null;function Yc(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&(_t|ft))&&ss(r)&&(In=new Set,vr(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&kf(r),In?.size>0)){nr.clear();for(const s of In){if(s.f&(_t|ft))continue;const a=[s];let l=s.parent;for(;l!==null;)In.has(l)&&(In.delete(l),a.push(l)),l=l.parent;for(let o=a.length-1;o>=0;o--){const c=a[o];c.f&(_t|ft)||vr(c)}}In.clear()}}In=null}}function Jd(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(const s of e.reactions){const a=s.f;a&tt?Jd(s,t,n,r):a&(Vr|an)&&!(a&et)&&El(s,t,r)&&(Be(s,et),Il(s))}}function Zd(e,t){if(e.reactions!==null)for(const n of e.reactions){const r=n.f;r&tt?Zd(n,t):r&Ts&&(Be(n,et),t.add(n))}}function El(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(Fr.call(t,s))return!0;if(s.f&tt&&El(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function Il(e){be.schedule(e)}let qa=[];function Ub(){Fn(()=>{const e=qa;qa=[];for(const t of e)Hr(t)})}function Hb(e){var t=xt(0),n=!0,r=void 0;return i(t),gf(()=>{if(n){var s=dt;try{dt=null,r=e()}finally{dt=s}return}qa.length===0&&vt(Ub),qa.push(t)}),n=!1,r}function Qd(e,t){if(!(e.f&ln&&e.f&Ge)){e.f&et?t.d.push(e):e.f&cn&&t.m.push(e),Be(e,Ge);for(var n=e.first;n!==null;)Qd(n,t),n=n.next}}function $d(e){Be(e,Ge);for(var t=e.first;t!==null;)$d(t),t=t.next}function Kb(e){Pd(),be!==null&&$m();var t=Xt.ensure();t.is_fork=!0,dt=new Map;var n=!1,r=t.settled();return Fn(e),{commit:async()=>{if(n){await r;return}En.has(t)||Qm(),n=!0,t.is_fork=!1;for(var[s,[a]]of t.current)s.v=a,s.wv=Fa();t.activate(),t.run_fork_commit_callbacks(),t.deactivate(),Fn(()=>{var l=new Set;for(var o of t.current.keys())Zd(o,l);ng(l),of()}),t.flush(),await r},discard:()=>{for(var s of t.current.keys())s.wv=Fa();!n&&En.has(t)&&t.discard()}}}function Yb(e){let t=0,n=xt(0),r;return()=>{ta()&&(i(n),Ke(()=>(t===0&&(r=_e(()=>e(()=>pn(n)))),t+=1,()=>{vt(()=>{t-=1,t===0&&(r?.(),r=void 0,pn(n))})})))}}var Wb=un|Hn;function ef(e,t,n,r){new Xb(e,t,n,r)}class Xb{parent;is_pending=!1;transform_error;#e;#t=le?pe:null;#n;#s;#r;#i=null;#a=null;#o=null;#l=null;#u=0;#c=0;#f=!1;#h=new Set;#v=new Set;#d=null;#g=Yb(()=>(this.#d=xt(this.#u),()=>{this.#d=null}));constructor(t,n,r,s){this.#e=t,this.#n=n,this.#s=a=>{var l=me;l.b=this,l.f|=So,r(a)},this.parent=me.b,this.transform_error=s??this.parent?.transform_error??(a=>a),this.#r=xn(()=>{if(le){const a=this.#t;ht();const l=a.data===hi;if(a.data.startsWith(Bc)){const c=JSON.parse(a.data.slice(Bc.length));this.#b(c)}else l?this.#m():this.#p()}else this.#y()},Wb),le&&(this.#e=pe)}#p(){try{this.#i=ut(()=>this.#s(this.#e))}catch(t){this.error(t)}}#b(t){const n=this.#n.failed;n&&(this.#o=ut(()=>{n(this.#e,()=>t,()=>()=>{})}))}#m(){const t=this.#n.pending;t&&(this.is_pending=!0,this.#a=ut(()=>t(this.#e)),vt(()=>{var n=this.#l=document.createDocumentFragment(),r=st();n.append(r),this.#i=this.#w(()=>ut(()=>this.#s(r))),this.#c===0&&(this.#e.before(n),this.#l=null,rr(this.#a,()=>{this.#a=null}),this.#_(be))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#c=0,this.#u=0,this.#i=ut(()=>{this.#s(this.#e)}),this.#c>0){var t=this.#l=document.createDocumentFragment();zl(this.#i,t);const n=this.#n.pending;this.#a=ut(()=>n(this.#e))}else this.#_(be)}catch(n){this.error(n)}}#_(t){this.is_pending=!1,t.transfer_effects(this.#h,this.#v)}defer_effect(t){Yd(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=me,r=xe,s=Ce;ct(this.#r),St(this.#r),Ur(this.#r.ctx);try{return Xt.ensure(),t()}catch(a){return Hd(a),null}finally{ct(n),St(r),Ur(s)}}#k(t,n){if(!this.has_pending_snippet()){this.parent&&this.parent.#k(t,n);return}this.#c+=t,this.#c===0&&(this.#_(n),this.#a&&rr(this.#a,()=>{this.#a=null}),this.#l&&(this.#e.before(this.#l),this.#l=null))}update_pending_count(t,n){this.#k(t,n),this.#u+=t,!(!this.#d||this.#f)&&(this.#f=!0,vt(()=>{this.#f=!1,this.#d&&_n(this.#d,this.#u)}))}get_effect_pending(){return this.#g(),i(this.#d)}error(t){if(!this.#n.onerror&&!this.#n.failed)throw t;be?.is_fork?(this.#i&&be.skip_effect(this.#i),this.#a&&be.skip_effect(this.#a),this.#o&&be.skip_effect(this.#o),be.on_fork_commit(()=>{this.#x(t)})):this.#x(t)}#x(t){this.#i&&(Qe(this.#i),this.#i=null),this.#a&&(Qe(this.#a),this.#a=null),this.#o&&(Qe(this.#o),this.#o=null),le&&(Te(this.#t),Mt(),Te(ur()));var n=this.#n.onerror;let r=this.#n.failed;var s=!1,a=!1;const l=()=>{if(s){mb();return}s=!0,a&&ib(),this.#o!==null&&rr(this.#o,()=>{this.#o=null}),this.#w(()=>{this.#y()})},o=c=>{try{a=!0,n?.(c,l),a=!1}catch(u){gn(u,this.#r&&this.#r.parent)}r&&(this.#o=this.#w(()=>{try{return ut(()=>{var u=me;u.b=this,u.f|=So,r(this.#e,()=>c,()=>l)})}catch(u){return gn(u,this.#r.parent),null}}))};vt(()=>{var c;try{c=this.transform_error(t)}catch(u){gn(u,this.#r&&this.#r.parent);return}c!==null&&typeof c=="object"&&typeof c.then=="function"?c.then(o,u=>gn(u,this.#r&&this.#r.parent)):o(c)})}}function Gb(){me===null&&Jm();var e=me.b;return e===null?0:e.get_effect_pending()}function Js(e,t,n,r){const s=Qs;var a=e.filter(v=>!v.settled);if(n.length===0&&a.length===0){r(t.map(s));return}var l=me,o=wi(),c=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(v=>v.promise)):null;function u(v){o();try{r(v)}catch(m){l.f&_t||gn(m,l)}fr()}if(n.length===0){c.then(()=>u(t.map(s)));return}var d=Zs();function f(){Promise.all(n.map(v=>nf(v))).then(v=>u([...t.map(s),...v])).catch(v=>gn(v,l)).finally(()=>d())}c?c.then(()=>{o(),f(),fr()}):f()}function tf(e,t){Js(e,[],[],t)}function wi(){var e=me,t=xe,n=Ce,r=be;return function(a=!0){ct(e),St(t),Ur(n),a&&!(e.f&_t)&&(r?.activate(),r?.apply())}}async function Jb(e){var t=wi(),n=await e;return()=>(t(),n)}async function Ro(e){var t=xs;queueMicrotask(()=>{xs===t&&Ia(null)});var n=await e;return()=>(Ia(t),queueMicrotask(()=>{xs===t&&Ia(null)}),n)}async function*Zb(e){const t=e[Symbol.asyncIterator]?.()??e[Symbol.iterator]?.();if(t===void 0)throw new TypeError("value is not async iterable");let n=!1;try{for(;;){const{done:s,value:a}=(await Ro(t.next()))();if(s){n=!0;break}var r=xs;yield a,Ia(r)}}finally{if(!n&&t.return!==void 0)return(await Ro(t.return()))().value}}function fr(e=!0){ct(null),St(null),Ur(null),e&&be?.deactivate()}function Qb(e){const t=wi(),n=Zs();var r=me,s=null;const a=u=>{s={error:u},Po(r)||gn(u,r)};var l=Promise.resolve(e[0]()).catch(a),o={promise:l,settled:!1},c=[o];l.finally(()=>{o.settled=!0,fr()});for(const u of e.slice(1)){l=l.then(()=>{if(t(),s)throw s.error;if(Po(r))throw hn;return u()}).catch(a);const d={promise:l,settled:!1};c.push(d),l.finally(()=>{d.settled=!0,fr()})}return l.then(()=>Promise.resolve()).finally(()=>n()),c}function $b(e){return Promise.all(e.map(t=>t.promise))}function Zs(){var e=me,t=e.b,n=be,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 xs=null;function Ia(e){xs=e}function Qs(e){var t=tt|et;return me!==null&&(me.f|=Hn),{ctx:Ce,deps:null,effects:null,equals:jd,f:t,fn:e,reactions:null,rv:0,v:Oe,wv:0,parent:me,ac:null}}function nf(e,t,n){let r=me;r===null&&Um();var s=void 0,a=xt(Oe),l=!xe,o=new Map;return vg(()=>{var c=me,u=Ad();s=u.promise;try{Promise.resolve(e()).then(u.resolve,u.reject).finally(fr)}catch(m){u.reject(m),fr()}var d=be;if(l){if(c.f&Pn)var f=Zs();if(r.b.is_rendered())o.get(d)?.reject(hn),o.delete(d);else{for(const m of o.values())m.reject(hn);o.clear()}o.set(d,u)}const v=(m,k=void 0)=>{if(f){var y=k===hn;f(y)}if(!(k===hn||c.f&_t)){if(d.activate(),k)a.f|=Bn,_n(a,k);else{a.f&Bn&&(a.f^=Bn),_n(a,m);for(const[g,C]of o){if(o.delete(g),g===d)break;C.reject(hn)}}d.deactivate()}};u.promise.then(v,m=>v(null,m||"unknown"))}),jt(()=>{for(const c of o.values())c.reject(hn)}),new Promise(c=>{function u(d){function f(){d===s?c(a):u(s)}d.then(f,f)}u(s)})}function U(e){const t=Qs(e);return Ef(t),t}function Al(e){const t=Qs(e);return t.equals=Nd,t}function eg(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)Qe(t[n])}}function Cl(e){var t,n=me,r=e.parent;if(!Ln&&r!==null&&r.f&(_t|ft))return ub(),e.v;ct(r);try{e.f&=~cr,eg(e),t=Cf(e)}finally{ct(n)}return t}function rf(e){var t=Cl(e);if(!e.equals(t)&&(e.wv=Fa(),(!be?.is_fork||e.deps===null)&&(be!==null?be.capture(e,t,!0):e.v=t,e.deps===null))){Be(e,Ge);return}Ln||(dt!==null?(ta()||be?.is_fork)&&dt.set(e,t):Sl(e))}function tg(e){if(e.effects!==null)for(const t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(hn),t.teardown=Rt,t.ac=null,Rs(t,0),Pl(t))}function sf(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&vr(t)}let Ba=new Set;const nr=new Map;function ng(e){Ba=e}let af=!1;function xt(e,t){var n={f:0,v:e,reactions:null,equals:jd,rv:0,wv:0};return n}function H(e,t){const n=xt(e);return Ef(n),n}function ki(e,t=!1,n=!0){const r=xt(e);return t||(r.equals=Nd),r}function rg(e,t){return S(e,_e(()=>i(e))),t}function S(e,t,n=!1){xe!==null&&(!rn||xe.f&Ts)&&Vd()&&xe.f&(tt|an|Vr|Ts)&&(Yt===null||!Fr.call(Yt,e))&&ab();let r=n?ce(t):t;return _n(e,r,Ea)}function _n(e,t,n=null){if(!e.equals(t)){nr.set(e,Ln?t:e.v);var r=Xt.ensure();if(r.capture(e,t),e.f&tt){const s=e;e.f&et&&Cl(s),dt===null&&Sl(s)}e.wv=Fa(),lf(e,et,n),me!==null&&me.f&Ge&&!(me.f&(ln|Rn))&&(Vt===null?gg([e]):Vt.push(e)),!r.is_fork&&Ba.size>0&&!af&&of()}return t}function of(){af=!1;for(const e of Ba)e.f&Ge&&Be(e,cn),ss(e)&&vr(e);Ba.clear()}function Hr(e,t=1){var n=i(e),r=t===1?n++:n--;return S(e,n),r}function sg(e,t=1){var n=i(e);return S(e,t===1?++n:--n)}function pn(e){S(e,e.v+1)}function lf(e,t,n){var r=e.reactions;if(r!==null)for(var s=r.length,a=0;a<s;a++){var l=r[a],o=l.f,c=(o&et)===0;if(c&&Be(l,t),o&tt){var u=l;dt?.delete(u),o&cr||(o&Kt&&(l.f|=cr),lf(u,cn,n))}else if(c){var d=l;o&an&&In!==null&&In.add(d),n!==null?n.push(d):Il(d)}}}function ce(e){if(typeof e!="object"||e===null||lt in e)return e;const t=bi(e);if(t!==Id&&t!==Rm)return e;var n=new Map,r=ts(e),s=H(0),a=An,l=o=>{if(An===a)return o();var c=xe,u=An;St(null),Gc(a);var d=o();return St(c),Gc(u),d};return r&&n.set("length",H(e.length)),new Proxy(e,{defineProperty(o,c,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&rb();var d=n.get(c);return d===void 0?l(()=>{var f=H(u.value);return n.set(c,f),f}):S(d,u.value,!0),!0},deleteProperty(o,c){var u=n.get(c);if(u===void 0){if(c in o){const d=l(()=>H(Oe));n.set(c,d),pn(s)}}else S(u,Oe),pn(s);return!0},get(o,c,u){if(c===lt)return e;var d=n.get(c),f=c in o;if(d===void 0&&(!f||sn(o,c)?.writable)&&(d=l(()=>{var m=ce(f?o[c]:Oe),k=H(m);return k}),n.set(c,d)),d!==void 0){var v=i(d);return v===Oe?void 0:v}return Reflect.get(o,c,u)},getOwnPropertyDescriptor(o,c){var u=Reflect.getOwnPropertyDescriptor(o,c);if(u&&"value"in u){var d=n.get(c);d&&(u.value=i(d))}else if(u===void 0){var f=n.get(c),v=f?.v;if(f!==void 0&&v!==Oe)return{enumerable:!0,configurable:!0,value:v,writable:!0}}return u},has(o,c){if(c===lt)return!0;var u=n.get(c),d=u!==void 0&&u.v!==Oe||Reflect.has(o,c);if(u!==void 0||me!==null&&(!d||sn(o,c)?.writable)){u===void 0&&(u=l(()=>{var v=d?ce(o[c]):Oe,m=H(v);return m}),n.set(c,u));var f=i(u);if(f===Oe)return!1}return d},set(o,c,u,d){var f=n.get(c),v=c in o;if(r&&c==="length")for(var m=u;m<f.v;m+=1){var k=n.get(m+"");k!==void 0?S(k,Oe):m in o&&(k=l(()=>H(Oe)),n.set(m+"",k))}if(f===void 0)(!v||sn(o,c)?.writable)&&(f=l(()=>H(void 0)),S(f,ce(u)),n.set(c,f));else{v=f.v!==Oe;var y=l(()=>ce(u));S(f,y)}var g=Reflect.getOwnPropertyDescriptor(o,c);if(g?.set&&g.set.call(d,u),!v){if(r&&typeof c=="string"){var C=n.get("length"),w=Number(c);Number.isInteger(w)&&w>=C.v&&S(C,w+1)}pn(s)}return!0},ownKeys(o){i(s);var c=Reflect.ownKeys(o).filter(f=>{var v=n.get(f);return v===void 0||v.v!==Oe});for(var[u,d]of n)d.v!==Oe&&!(u in o)&&c.push(u);return c},setPrototypeOf(){sb()}})}function Kr(e){try{if(e!==null&&typeof e=="object"&&lt in e)return e[lt]}catch{}return e}function cf(e,t){return Object.is(Kr(e),Kr(t))}function ag(e,t,n=!0){try{e===t!=(Kr(e)===Kr(t))&&zd(n?"===":"!==")}catch{}return e===t===n}function ig(e,t,n=!0){return e==t!=(Kr(e)==Kr(t))&&zd(),e==t===n}var Lo,uf,Tl,df,ff;function Mo(){if(Lo===void 0){Lo=window,uf=document,Tl=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;df=sn(t,"firstChild").get,ff=sn(t,"nextSibling").get,Fc(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),Fc(n)&&(n.__t=void 0)}}function st(e=""){return document.createTextNode(e)}function Ne(e){return df.call(e)}function Dt(e){return ff.call(e)}function p(e,t){if(!le)return Ne(e);var n=Ne(pe);if(n===null)n=pe.appendChild(st());else if(t&&n.nodeType!==Xs){var r=st();return n?.before(r),Te(r),r}return t&&xi(n),Te(n),n}function fe(e,t=!1){if(!le){var n=Ne(e);return n instanceof Comment&&n.data===""?Dt(n):n}if(t){if(pe?.nodeType!==Xs){var r=st();return pe?.before(r),Te(r),r}xi(pe)}return pe}function _(e,t=1,n=!1){let r=le?pe:e;for(var s;t--;)s=r,r=Dt(r);if(!le)return r;if(n){if(r?.nodeType!==Xs){var a=st();return r===null?s?.after(a):r.before(a),Te(a),a}xi(r)}return Te(r),r}function Rl(e){e.textContent=""}function vf(){return!1}function Kn(e,t,n){let r=n?{is:n}:void 0;return document.createElementNS(t??kd,e,r)}function og(){return document.createDocumentFragment()}function hf(e=""){return document.createComment(e)}function lg(e,t,n=""){if(t.startsWith("xlink:")){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n);return}return e.setAttribute(t,n)}function xi(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===Xs;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function $s(e,t){if(t){const n=document.body;e.autofocus=!0,vt(()=>{document.activeElement===n&&e.focus()})}}function Ll(e){le&&Ne(e)!==null&&Rl(e)}let Wc=!1;function pf(){Wc||(Wc=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function It(e,t,n,r=!0){r&&n();for(var s of t)e.addEventListener(s,n);jt(()=>{for(var a of t)e.removeEventListener(a,n)})}function Yn(e){var t=xe,n=me;St(null),ct(null);try{return e()}finally{St(t),ct(n)}}function ea(e,t,n,r=n){e.addEventListener(t,()=>Yn(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),pf()}function Ml(e){me===null&&(xe===null&&Gm(),Xm()),Ln&&Wm()}function cg(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function At(e,t){var n=me;n!==null&&n.f&ft&&(e|=ft);var r={ctx:Ce,deps:null,nodes:null,f:e|et|Kt,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};be?.register_created_effect(r);var s=r;if(e&lr)Lr!==null?Lr.push(r):Xt.ensure().schedule(r);else if(t!==null){try{vr(r)}catch(l){throw Qe(r),l}s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&!(s.f&Hn)&&(s=s.first,e&an&&e&un&&s!==null&&(s.f|=un))}if(s!==null&&(s.parent=n,n!==null&&cg(s,n),xe!==null&&xe.f&tt&&!(e&Rn))){var a=xe;(a.effects??=[]).push(s)}return r}function ta(){return xe!==null&&!rn}function jt(e){const t=At(Ws,null);return Be(t,Ge),t.teardown=e,t}function Se(e){Ml();var t=me.f,n=!xe&&(t&ln)!==0&&(t&Pn)===0;if(n){var r=Ce;(r.e??=[]).push(e)}else return mf(e)}function mf(e){return At(lr|Rd,e)}function bf(e){return Ml(),At(Ws|Rd,e)}function gf(e){return At(Ts,e)}function rs(e){Xt.ensure();const t=At(Rn|Hn,e);return()=>{Qe(t)}}function ug(e){Xt.ensure();const t=At(Rn|Hn,e);return(n={})=>new Promise(r=>{n.outro?rr(t,()=>{Qe(t),r(void 0)}):(Qe(t),r(void 0))})}function zt(e){return At(lr,e)}function dg(e,t){var n=Ce,r={effect:null,ran:!1,deps:e};n.l.$.push(r),r.effect=Ke(()=>{if(e(),!r.ran){r.ran=!0;var s=me;try{ct(s.parent),_e(t)}finally{ct(s)}}})}function fg(){var e=Ce;Ke(()=>{for(var t of e.l.$){t.deps();var n=t.effect;n.f&Ge&&n.deps!==null&&Be(n,cn),ss(n)&&vr(n),t.ran=!1}})}function vg(e){return At(Vr|Hn,e)}function Ke(e,t=0){return At(Ws|t,e)}function N(e,t=[],n=[],r=[]){Js(r,t,n,s=>{At(Ws,()=>e(...s.map(i)))})}function hg(e,t=[],n=[],r=[]){if(n.length>0||r.length>0)var s=Zs();Js(r,t,n,a=>{At(lr,()=>e(...a.map(i))),s&&s()})}function xn(e,t=0){var n=At(an|t,e);return n}function yf(e,t=0){var n=At(yl|t,e);return n}function ut(e){return At(ln|Hn,e)}function _f(e){var t=e.teardown;if(t!==null){const n=Ln,r=xe;Xc(!0),St(null);try{t.call(null)}finally{Xc(n),St(r)}}}function Pl(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&Yn(()=>{s.abort(hn)});var r=n.next;n.f&Rn?n.parent=null:Qe(n,t),n=r}}function pg(e){for(var t=e.first;t!==null;){var n=t.next;t.f&ln||Qe(t),t=n}}function Qe(e,t=!0){var n=!1;(t||e.f&Td)&&e.nodes!==null&&e.nodes.end!==null&&(wf(e.nodes.start,e.nodes.end),n=!0),Be(e,Eo),Pl(e,t&&!n),Rs(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const a of r)a.stop();_f(e),e.f^=Eo,e.f|=_t;var s=e.parent;s!==null&&s.first!==null&&kf(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function wf(e,t){for(;e!==null;){var n=e===t?null:Dt(e);e.remove(),e=n}}function kf(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 rr(e,t,n=!0){var r=[];xf(e,r,!0);var s=()=>{n&&Qe(e),t&&t()},a=r.length;if(a>0){var l=()=>--a||s();for(var o of r)o.out(l)}else s()}function xf(e,t,n){if(!(e.f&ft)){e.f^=ft;var r=e.nodes&&e.nodes.t;if(r!==null)for(const o of r)(o.is_global||n)&&t.push(o);for(var s=e.first;s!==null;){var a=s.next;if(!(s.f&Rn)){var l=(s.f&un)!==0||(s.f&ln)!==0&&(e.f&an)!==0;xf(s,t,l?n:!1)}s=a}}}function Dl(e){Sf(e,!0)}function Sf(e,t){if(e.f&ft){e.f^=ft,e.f&Ge||(Be(e,et),Xt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&un)!==0||(n.f&ln)!==0;Sf(n,s?t:!1),n=r}var a=e.nodes&&e.nodes.t;if(a!==null)for(const l of a)(l.is_global||t)&&l.in()}}function Po(e=me){return(e.f&_t)!==0}function zl(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:Dt(n);t.append(n),n=s}}let Cr=null;function mg(e){var t=Cr;try{if(Cr=new Set,_e(e),t!==null)for(var n of Cr)t.add(n);return Cr}finally{Cr=t}}function bg(e){for(var t of mg(e))_n(t,t.v)}let Aa=!1,Ln=!1;function Xc(e){Ln=e}let xe=null,rn=!1;function St(e){xe=e}let me=null;function ct(e){me=e}let Yt=null;function Ef(e){xe!==null&&(Yt===null?Yt=[e]:Yt.push(e))}let bt=null,Ct=0,Vt=null;function gg(e){Vt=e}let If=1,Qn=0,An=Qn;function Gc(e){An=e}function Fa(){return++If}function ss(e){var t=e.f;if(t&et)return!0;if(t&tt&&(e.f&=~cr),t&cn){for(var n=e.deps,r=n.length,s=0;s<r;s++){var a=n[s];if(ss(a)&&rf(a),a.wv>e.wv)return!0}t&Kt&&dt===null&&Be(e,Ge)}return!1}function Af(e,t,n=!0){var r=e.reactions;if(r!==null&&!(Yt!==null&&Fr.call(Yt,e)))for(var s=0;s<r.length;s++){var a=r[s];a.f&tt?Af(a,t,!1):t===a&&(n?Be(a,et):a.f&Ge&&Be(a,cn),Il(a))}}function Cf(e){var t=bt,n=Ct,r=Vt,s=xe,a=Yt,l=Ce,o=rn,c=An,u=e.f;bt=null,Ct=0,Vt=null,xe=u&(ln|Rn)?null:e,Yt=null,Ur(e.ctx),rn=!1,An=++Qn,e.ac!==null&&(Yn(()=>{e.ac.abort(hn)}),e.ac=null);try{e.f|=Io;var d=e.fn,f=d();e.f|=Pn;var v=e.deps,m=be?.is_fork;if(bt!==null){var k;if(m||Rs(e,Ct),v!==null&&Ct>0)for(v.length=Ct+bt.length,k=0;k<bt.length;k++)v[Ct+k]=bt[k];else e.deps=v=bt;if(ta()&&e.f&Kt)for(k=Ct;k<v.length;k++)(v[k].reactions??=[]).push(e)}else!m&&v!==null&&Ct<v.length&&(Rs(e,Ct),v.length=Ct);if(Vd()&&Vt!==null&&!rn&&v!==null&&!(e.f&(tt|cn|et)))for(k=0;k<Vt.length;k++)Af(Vt[k],e);if(s!==null&&s!==e){if(Qn++,s.deps!==null)for(let y=0;y<n;y+=1)s.deps[y].rv=Qn;if(t!==null)for(const y of t)y.rv=Qn;Vt!==null&&(r===null?r=Vt:r.push(...Vt))}return e.f&Bn&&(e.f^=Bn),f}catch(y){return Hd(y)}finally{e.f^=Io,bt=t,Ct=n,Vt=r,xe=s,Yt=a,Ur(l),rn=o,An=c}}function yg(e,t){let n=t.reactions;if(n!==null){var r=Tm.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&tt&&(bt===null||!Fr.call(bt,t))){var a=t;a.f&Kt&&(a.f^=Kt,a.f&=~cr),a.v!==Oe&&Sl(a),tg(a),Rs(a,0)}}function Rs(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)yg(e,n[r])}function vr(e){var t=e.f;if(!(t&_t)){Be(e,Ge);var n=me,r=Aa;me=e,Aa=!0;try{t&(an|yl)?pg(e):Pl(e),_f(e);var s=Cf(e);e.teardown=typeof s=="function"?s:null,e.wv=If;var a;Sd&&gb&&e.f&et&&e.deps}finally{Aa=r,me=n}}}async function na(){await Promise.resolve(),Fn()}function _g(){return Xt.ensure().settled()}function i(e){var t=e.f,n=(t&tt)!==0;if(Cr?.add(e),xe!==null&&!rn){var r=me!==null&&(me.f&_t)!==0;if(!r&&(Yt===null||!Fr.call(Yt,e))){var s=xe.deps;if(xe.f&Io)e.rv<Qn&&(e.rv=Qn,bt===null&&s!==null&&s[Ct]===e?Ct++:bt===null?bt=[e]:bt.push(e));else{(xe.deps??=[]).push(e);var a=e.reactions;a===null?e.reactions=[xe]:Fr.call(a,xe)||a.push(xe)}}}if(Ln&&nr.has(e))return nr.get(e);if(n){var l=e;if(Ln){var o=l.v;return(!(l.f&Ge)&&l.reactions!==null||Rf(l))&&(o=Cl(l)),nr.set(l,o),o}var c=(l.f&Kt)===0&&!rn&&xe!==null&&(Aa||(xe.f&Kt)!==0),u=(l.f&Pn)===0;ss(l)&&(c&&(l.f|=Kt),rf(l)),c&&!u&&(sf(l),Tf(l))}if(dt?.has(e))return dt.get(e);if(e.f&Bn)throw e.v;return e.v}function Tf(e){if(e.f|=Kt,e.deps!==null)for(const t of e.deps)(t.reactions??=[]).push(e),t.f&tt&&!(t.f&Kt)&&(sf(t),Tf(t))}function Rf(e){if(e.v===Oe)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(nr.has(t)||t.f&tt&&Rf(t))return!0;return!1}function wg(e){return e&&i(e)}function _e(e){var t=rn;try{return rn=!0,e()}finally{rn=t}}function jl(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if(lt in e)Va(e);else if(!Array.isArray(e))for(let t in e){const n=e[t];typeof n=="object"&&n&&lt in n&&Va(n)}}}function Va(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{Va(e[r],t)}catch{}const n=bi(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){const r=Ed(n);for(let s in r){const a=r[s].get;if(a)try{a.call(e)}catch{}}}}}function kg(e,t){if(Pd(),le){const n=window.__svelte?.h;if(n?.has(e))return n.get(e);fb()}return t()}const gs=Symbol("events"),Lf=new Set,Do=new Set;function xg(e){if(!le)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 Mf(e,t,n,r={}){function s(a){if(r.capture||zo.call(t,a),!a.cancelBubble)return Yn(()=>n?.call(this,a))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?vt(()=>{t.addEventListener(e,s,r)}):t.addEventListener(e,s,r),s}function De(e,t,n,r,s){var a={capture:r,passive:s},l=Mf(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&jt(()=>{t.removeEventListener(e,l,a)})}function K(e,t,n){(t[gs]??={})[e]=n}function de(e){for(var t=0;t<e.length;t++)Lf.add(e[t]);for(var n of Do)n(e)}let Jc=null;function zo(e){var t=this,n=t.ownerDocument,r=e.type,s=e.composedPath?.()||[],a=s[0]||e.target;Jc=e;var l=0,o=Jc===e&&e[gs];if(o){var c=s.indexOf(o);if(c!==-1&&(t===document||t===window)){e[gs]=t;return}var u=s.indexOf(t);if(u===-1)return;c<=u&&(l=c)}if(a=s[l]||e.target,a!==t){or(e,"currentTarget",{configurable:!0,get(){return a||n}});var d=xe,f=me;St(null),ct(null);try{for(var v,m=[];a!==null;){var k=a.assignedSlot||a.parentNode||a.host||null;try{var y=a[gs]?.[r];y!=null&&(!a.disabled||e.target===a)&&y.call(a,e)}catch(g){v?m.push(g):v=g}if(e.cancelBubble||k===t||k===null)break;a=k}if(v){for(let g of m)queueMicrotask(()=>{throw g});throw v}}finally{e[gs]=t,delete e.currentTarget,St(d),ct(f)}}}function Sg(e,t,n,r,s,a=!1,l=!1){let o,c;try{o=e()}catch(u){c=u}if(typeof o!="function"&&(a||o!=null||c)){const u=r?.[Tt];s?`${u}${s[0]}${s[1]}`:`${u}`;const d=n[0]?.eventPhase<Event.BUBBLING_PHASE?"capture":"";if(n[0]?.type+d,db(),c)throw c}o?.apply(t,n)}const Eg=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function Pf(e){return Eg?.createHTML(e)??e}function Ol(e){var t=Kn("template");return t.innerHTML=Pf(e.replaceAll("<!>","<!---->")),t.content}const Ig=yr?"template":"TEMPLATE",Ag=yr?"script":"SCRIPT";function $e(e,t){var n=me;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function I(e,t){var n=(t&bl)!==0,r=(t&wd)!==0,s,a=!e.startsWith("<!>");return()=>{if(le)return $e(pe,null),pe;s===void 0&&(s=Ol(a?e:"<!>"+e),n||(s=Ne(s)));var l=r||Tl?document.importNode(s,!0):s.cloneNode(!0);if(n){var o=Ne(l),c=l.lastChild;$e(o,c)}else $e(l,l);return l}}function Df(e,t,n="svg"){var r=!e.startsWith("<!>"),s=(t&bl)!==0,a=`<${n}>${r?e:"<!>"+e}</${n}>`,l;return()=>{if(le)return $e(pe,null),pe;if(!l){var o=Ol(a),c=Ne(o);if(s)for(l=document.createDocumentFragment();Ne(c);)l.appendChild(Ne(c));else l=Ne(c)}var u=l.cloneNode(!0);if(s){var d=Ne(u),f=u.lastChild;$e(d,f)}else $e(u,u);return u}}function Nl(e,t){return Df(e,t,"svg")}function Cg(e,t){return Df(e,t,"math")}function zf(e,t){var n=og();for(var r of e){if(typeof r=="string"){n.append(st(r));continue}if(r===void 0||r[0][0]==="/"){n.append(hf(r?r[0].slice(3):""));continue}const[o,c,...u]=r,d=o==="svg"?Ys:o==="math"?gl:t;var s=Kn(o,d,c?.is);for(var a in c)lg(s,a,c[a]);if(u.length>0){var l=s.nodeName===Ig?s.content:s;l.append(zf(u,s.nodeName==="foreignObject"?void 0:d))}n.append(s)}return n}function Tg(e,t){var n=(t&bl)!==0,r=(t&wd)!==0,s;return()=>{if(le)return $e(pe,null),pe;if(s===void 0){const c=t&Am?Ys:t&Cm?gl:void 0;s=zf(e,c),n||(s=Ne(s))}var a=r||Tl?document.importNode(s,!0):s.cloneNode(!0);if(n){var l=Ne(a),o=a.lastChild;$e(l,o)}else $e(a,a);return a}}function Rg(e){return()=>Lg(e())}function Lg(e){if(le)return e;const t=e.nodeType===Md,n=e.nodeName===Ag?[e]:e.querySelectorAll("script"),r=me;for(const a of n){const l=Kn("script");for(var s of a.attributes)l.setAttribute(s.name,s.value);l.textContent=a.textContent,(t?e.firstChild===a:e===a)&&(r.nodes.start=l),(t?e.lastChild===a:e===a)&&(r.nodes.end=l),a.replaceWith(l)}return e}function on(e=""){if(!le){var t=st(e+"");return $e(t,t),t}var n=pe;return n.nodeType!==Xs?(n.before(n=st()),Te(n)):xi(n),$e(n,n),n}function Pe(){if(le)return $e(pe,null),pe;var e=document.createDocumentFragment(),t=document.createComment(""),n=st();return e.append(t,n),$e(t,n),e}function x(e,t){if(le){var n=me;(!(n.f&Pn)||n.nodes.end===null)&&(n.nodes.end=pe),ht();return}e!==null&&e.before(t)}function Mg(){if(le&&pe&&pe.nodeType===Dn&&pe.textContent?.startsWith("$")){const e=pe.textContent.substring(1);return ht(),e}return(window.__svelte??={}).uid??=1,`c${window.__svelte.uid++}`}const Pg=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function Dg(e){return Pg.includes(e)||e.toLowerCase()==="!doctype"}function zg(e){return e.endsWith("capture")&&e!=="gotpointercapture"&&e!=="lostpointercapture"}const jg=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function Og(e){return jg.includes(e)}const Ng={formnovalidate:"formNoValidate",ismap:"isMap",nomodule:"noModule",playsinline:"playsInline",readonly:"readOnly",defaultvalue:"defaultValue",defaultchecked:"defaultChecked",srcobject:"srcObject",novalidate:"noValidate",allowfullscreen:"allowFullscreen",disablepictureinpicture:"disablePictureInPicture",disableremoteplayback:"disableRemotePlayback"};function qg(e){return e=e.toLowerCase(),Ng[e]??e}const Bg=["touchstart","touchmove"];function Fg(e){return Bg.includes(e)}const Vg=["textarea","script","style","title"];function Ug(e){return Vg.includes(e)}function jf(e){return e?.replace(/\//g,"/​")}let Ua=!0;function Mr(e){Ua=e}function j(e,t){var n=t==null?"":typeof t=="object"?`${t}`:t;n!==(e.__t??=e.nodeValue)&&(e.__t=n,e.nodeValue=`${n}`)}function Fe(e,t){return Nf(e,t)}function Of(e,t){Mo(),t.intro=t.intro??!1;const n=t.target,r=le,s=pe;try{for(var a=Ne(n);a&&(a.nodeType!==Dn||a.data!==vi);)a=Dt(a);if(!a)throw ir;Me(!0),Te(a);const l=Nf(e,{...t,anchor:a});return Me(!1),l}catch(l){if(l instanceof Error&&l.message.split(`
6
- `).some(o=>o.startsWith("https://svelte.dev/e/")))throw l;return l!==ir&&console.warn("Failed to hydrate: ",l),t.recover===!1&&tb(),Mo(),Rl(n),Me(!1),Fe(e,t)}finally{Me(r),Te(s)}}const ma=new Map;function Nf(e,{target:t,anchor:n,props:r={},events:s,context:a,intro:l=!0,transformError:o}){Mo();var c=void 0,u=ug(()=>{var d=n??t.appendChild(st());ef(d,{pending:()=>{}},m=>{se({});var k=Ce;if(a&&(k.c=a),s&&(r.$$events=s),le&&$e(m,null),Ua=l,c=e(m,r)||{},Ua=!0,le&&(me.nodes.end=pe,pe===null||pe.nodeType!==Dn||pe.data!==pi))throw Gs(),ir;ae()},o);var f=new Set,v=m=>{for(var k=0;k<m.length;k++){var y=m[k];if(!f.has(y)){f.add(y);var g=Fg(y);for(const b of[t,document]){var C=ma.get(b);C===void 0&&(C=new Map,ma.set(b,C));var w=C.get(y);w===void 0?(b.addEventListener(y,zo,{passive:g}),C.set(y,1)):C.set(y,w+1)}}}};return v(mi(Lf)),Do.add(v),()=>{for(var m of f)for(const g of[t,document]){var k=ma.get(g),y=k.get(m);--y==0?(g.removeEventListener(m,zo),k.delete(m),k.size===0&&ma.delete(g)):k.set(m,y)}Do.delete(v),d!==n&&d.parentNode?.removeChild(d)}});return jo.set(c,u),c}let jo=new WeakMap;function Ze(e,t){const n=jo.get(e);return n?(jo.delete(e),n(t)):Promise.resolve()}function Hg(e){const t=e();t&&Dg(t)&&yb()}function Kg(e){const t=e();t&&!(typeof t=="string")&&Vm()}function Yg(e,t){e!=null&&typeof e.subscribe!="function"&&Fm()}function qf(e){return e.toString=()=>(Bm(),""),e}class as{anchor;#e=new Map;#t=new Map;#n=new Map;#s=new Set;#r=!0;constructor(t,n=!0){this.anchor=t,this.#r=n}#i=t=>{if(this.#e.has(t)){var n=this.#e.get(t),r=this.#t.get(n);if(r)Dl(r),this.#s.delete(n);else{var s=this.#n.get(n);s&&(this.#t.set(n,s.effect),this.#n.delete(n),s.fragment.lastChild.remove(),this.anchor.before(s.fragment),r=s.effect)}for(const[a,l]of this.#e){if(this.#e.delete(a),a===t)break;const o=this.#n.get(l);o&&(Qe(o.effect),this.#n.delete(l))}for(const[a,l]of this.#t){if(a===n||this.#s.has(a))continue;const o=()=>{if(Array.from(this.#e.values()).includes(a)){var u=document.createDocumentFragment();zl(l,u),u.append(st()),this.#n.set(a,{effect:l,fragment:u})}else Qe(l);this.#s.delete(a),this.#t.delete(a)};this.#r||!r?(this.#s.add(a),rr(l,o,!1)):o()}}};#a=t=>{this.#e.delete(t);const n=Array.from(this.#e.values());for(const[r,s]of this.#n)n.includes(r)||(Qe(s.effect),this.#n.delete(r))};ensure(t,n){var r=be,s=vf();if(n&&!this.#t.has(t)&&!this.#n.has(t))if(s){var a=document.createDocumentFragment(),l=st();a.append(l),this.#n.set(t,{effect:ut(()=>n(l)),fragment:a})}else this.#t.set(t,ut(()=>n(this.anchor)));if(this.#e.set(r,t),s){for(const[o,c]of this.#t)o===t?r.unskip_effect(c):r.skip_effect(c);for(const[o,c]of this.#n)o===t?r.unskip_effect(c.effect):r.skip_effect(c.effect);r.oncommit(this.#i),r.ondiscard(this.#a)}else le&&(this.anchor=pe),this.#i(r)}}function Gt(e,t,...n){var r=new as(e);xn(()=>{const s=t()??null;r.ensure(s,s&&(a=>s(a,...n)))},un)}function Wg(e,t){const n=(r,...s)=>{var a=wl;Hc(e);try{return t(r,...s)}finally{Hc(a)}};return qf(n),n}function Xg(e){return(t,...n)=>{var r=e(...n),s;if(le)s=pe,ht();else{var a=r.render().trim(),l=Ol(a);s=Ne(l),t.before(s)}const o=r.setup?.(s);$e(s,s),typeof o=="function"&&jt(o)}}function Gg(){return xe===null&&eb(),(xe.ac??=new AbortController).signal}function ql(e){Ce===null&&ns(),Se(()=>{const t=_e(e);if(typeof t=="function")return t})}function Bl(e){Ce===null&&ns(),ql(()=>()=>_e(e))}function Jg(e,t,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(e,{detail:t,bubbles:n,cancelable:r})}function Zg(){const e=Ce;return e===null&&ns(),(t,n,r)=>{const s=e.s.$$events?.[t];if(s){const a=ts(s)?s.slice():[s],l=Jg(t,n,r);for(const o of a)o.call(e.x,l);return!l.defaultPrevented}return!0}}function Qg(e){Ce===null&&ns(),Ce.l===null&&Dd(),Bf(Ce).b.push(e)}function $g(e){Ce===null&&ns(),Ce.l===null&&Dd(),Bf(Ce).a.push(e)}function Bf(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}const Ff=Object.freeze(Object.defineProperty({__proto__:null,afterUpdate:$g,beforeUpdate:Qg,createContext:Ab,createEventDispatcher:Zg,createRawSnippet:Xg,flushSync:Fn,fork:Kb,getAbortSignal:Gg,getAllContexts:Cb,getContext:kl,hasContext:Fd,hydratable:kg,hydrate:Of,mount:Fe,onDestroy:Bl,onMount:ql,setContext:xl,settled:_g,tick:na,unmount:Ze,untrack:_e},Symbol.toStringTag,{value:"Module"}));function ey(){return Symbol(xd)}function Vf(e,t,n,r){return e!==t&&typeof t=="object"&&lt in t&&ob(n,jf(r)),e}function ty(e,t,n,r,s){return Vf(n==="="?e[t]=r:n==="&&="?e[t]&&=r():n==="||="?e[t]||=r():n==="??="?e[t]??=r():null,_e(()=>e[t]),t,s)}async function ny(e,t,n,r,s){return Vf(n==="="?e[t]=await r:n==="&&="?e[t]&&=await r():n==="||="?e[t]||=await r():n==="??="?e[t]??=await r():null,_e(()=>e[t]),t,s)}var Zc=new Map;function ry(e){var t=Zc.get(e);if(t){for(const n of t)n.remove();Zc.delete(e)}}function sy(e,t,n){return(...r)=>{const s=e(...r);var a=le?s:s.nodeType===Md?s.firstChild:s;return Uf(a,t,n),s}}function ay(e,t,n){e.__svelte_meta={parent:Sa,loc:{file:t,line:n[0],column:n[1]}},n[2]&&Uf(e.firstChild,t,n[2])}function Uf(e,t,n){for(var r=0,s=0;e&&r<n.length;){if(le&&e.nodeType===Dn){var a=e;a.data[0]===vi?s+=1:a.data[0]===pi&&(s-=1)}s===0&&e.nodeType===Ld&&ay(e,t,n[r++]),e=e.nextSibling}}function iy(e){const t=xt(e);function n(r,s){let a={},l={},o,c=!1,u=r;return xn(()=>{if(a!==(a=i(t))){if(o){for(var d in l)delete l[d];Qe(o)}o=ut(()=>{u=u[Om]??u,c&&Mr(!1);var f=new.target?new a(u,s):a(u,s);f&&Object.defineProperties(l,Object.getOwnPropertyDescriptors(f)),c&&Mr(!0)}),me.nodes=o.nodes}},un),c=!0,le&&(u=pe),l}return n[Tt]=e[Tt],n[Ir]={fn:e,current:t,update:r=>{S(n[Ir].current,r[Ir].fn),r[Ir].current=n[Ir].current}},n}function oy(e){const t=Ce?.function,n=Ce?.p?.function;return{mutation:(r,s,a,l,o)=>{const c=s[0];if(Qc(e,c)||!n)return a;let u=e;for(let f=0;f<s.length-1;f++)if(u=u[s[f]],!u?.[lt])return a;const d=jf(`${t[Tt]}:${l}:${o}`);return hb(c,d,r,n[Tt]),a},binding:(r,s,a)=>{!Qc(e,r)&&n&&a()?.[lt]&&vb(t[Tt],r,s[Tt],n[Tt])}}}function Qc(e,t){const n=lt in e||gi in e;return!!sn(e,t)?.set||n&&t in e||!(t in e)}function ly(e){e&&Km(e[Tt]??"a component",e.name)}function cy(){const e=Ce?.function;function t(n){Hm(n,e[Tt])}return{$destroy:()=>t("$destroy()"),$on:()=>t("$on(...)"),$set:()=>t("$set(...)")}}function uy(e,t,n=!1){Ml();let r=!0,s=Oe;gf(()=>{try{var a=e()}catch(o){s=o;return}var l=dr(a,!0,!0);_e(()=>{if(n){if(t(...l),!r){const o=Sb("$inspect(...)");o&&(console.groupCollapsed("stack trace"),console.log(o),console.groupEnd())}}else t(r?"init":"update",...l)}),r=!1}),Ke(()=>{try{e()}catch{}s!==Oe&&(console.error(s),s=Oe)})}function dy(e,t=[],n=[],r){var s=le,a=null;if(s&&(ht(),a=ur(!1)),n.length===0&&t.every(c=>c.settled)){r(e),s&&Te(a);return}const l=Zs();if(s){var o=pe;Te(a)}Js(t,[],n,c=>{s&&(Me(!0),Te(o));try{for(const u of c)i(u);r(e,...c)}finally{s&&Me(!1),l()}})}function fy(e,...t){(typeof e!="object"||!(e instanceof Node))&&Uc();for(let n of t)typeof n!="function"&&Uc()}const $c=0,eu=1,vy=2;function hy(e,t,n,r,s){le&&ht();var a=Oe,l=xt(a),o=xt(a),c=new as(e);xn(()=>{var u=be;u.deactivate();var d=t();u.activate();var f=!1;let v=le&&Vc(d)===(e.data===hi);if(v&&(Te(ur()),Me(!1)),Vc(d)){var m=wi(),k=!1;const y=g=>{if(!f){k=!0,m(!1),Xt.ensure(),le&&Me(!1);try{g()}finally{fr(!1),zr||Fn()}}};d.then(g=>{y(()=>{_n(l,g),c.ensure(eu,r&&(C=>r(C,l)))})},g=>{y(()=>{if(_n(o,g),c.ensure(vy,s&&(C=>s(C,o))),!s)throw o.v})}),le?c.ensure($c,n):vt(()=>{k||y(()=>{c.ensure($c,n)})})}else _n(l,d),c.ensure(eu,r&&(y=>r(y,l)));return v&&Me(!0),()=>{f=!0}})}function W(e,t,n=!1){var r;le&&(r=pe,ht());var s=new as(e),a=n?un:0;function l(o,c){if(le){var u=_l(r);if(o!==parseInt(u.substring(1))){var d=ur();Te(d),s.anchor=d,Me(!1),s.ensure(o,c),Me(!0);return}}s.ensure(o,c)}xn(()=>{var o=!1;t((c,u=0)=>{o=!0,l(u,c)}),o||l(-1,null)},a)}const py=Symbol("NaN");function my(e,t,n){le&&ht();var r=new as(e);xn(()=>{var s=t();s!==s&&(s=py),r.ensure(s,n)})}function by(e,t){le&&Te(Ne(e)),Ke(()=>{var n=t();for(var r in n){var s=n[r];s?e.style.setProperty(r,s):e.style.removeProperty(r)}})}function pt(e,t){return t}function gy(e,t,n){for(var r=[],s=t.length,a,l=t.length,o=0;o<s;o++){let f=t[o];rr(f,()=>{if(a){if(a.pending.delete(f),a.done.add(f),a.pending.size===0){var v=e.outrogroups;Oo(e,mi(a.done)),v.delete(a),v.size===0&&(e.outrogroups=null)}}else l-=1},!1)}if(l===0){var c=r.length===0&&n!==null;if(c){var u=n,d=u.parentNode;Rl(d),d.append(u),e.items.clear()}Oo(e,t,!c)}else a={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(a)}function Oo(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(const l of e.pending.values())for(const o of l)r.add(e.items.get(o).e)}for(var s=0;s<t.length;s++){var a=t[s];if(r?.has(a)){a.f|=bn;const l=document.createDocumentFragment();zl(a,l)}else Qe(t[s],n)}}var tu;function he(e,t,n,r,s,a=null){var l=e,o=new Map,c=(t&yd)!==0;if(c){var u=e;l=le?Te(Ne(u)):u.appendChild(st())}le&&ht();var d=null,f=Al(()=>{var b=n();return ts(b)?b:b==null?[]:mi(b)}),v,m=new Map,k=!0;function y(b){w.effect.f&_t||(w.pending.delete(b),w.fallback=d,yy(w,v,l,t,r),d!==null&&(v.length===0?d.f&bn?(d.f^=bn,ys(d,null,l)):Dl(d):rr(d,()=>{d=null})))}function g(b){w.pending.delete(b)}var C=xn(()=>{v=i(f);var b=v.length;let A=!1;if(le){var T=_l(l)===hi;T!==(b===0)&&(l=ur(),Te(l),Me(!1),A=!0)}for(var L=new Set,R=be,P=vf(),M=0;M<b;M+=1){le&&pe.nodeType===Dn&&pe.data===pi&&(l=pe,A=!0,Me(!1));var O=v[M],E=r(O,M),D=k?null:o.get(E);D?(D.v&&_n(D.v,O),D.i&&_n(D.i,M),P&&R.unskip_effect(D.e)):(D=_y(o,k?l:tu??=st(),O,E,M,s,t,n),k||(D.e.f|=bn),o.set(E,D)),L.add(E)}if(b===0&&a&&!d&&(k?d=ut(()=>a(l)):(d=ut(()=>a(tu??=st())),d.f|=bn)),b>L.size&&Ym(),le&&b>0&&Te(ur()),!k)if(m.set(R,L),P){for(const[F,z]of o)L.has(F)||R.skip_effect(z.e);R.oncommit(y),R.ondiscard(g)}else y(R);A&&Me(!0),i(f)}),w={effect:C,items:o,pending:m,outrogroups:null,fallback:d};k=!1,le&&(l=pe)}function hs(e){for(;e!==null&&!(e.f&ln);)e=e.next;return e}function yy(e,t,n,r,s){var a=(r&ym)!==0,l=t.length,o=e.items,c=hs(e.effect.first),u,d=null,f,v=[],m=[],k,y,g,C;if(a)for(C=0;C<l;C+=1)k=t[C],y=s(k,C),g=o.get(y).e,g.f&bn||(g.nodes?.a?.measure(),(f??=new Set).add(g));for(C=0;C<l;C+=1){if(k=t[C],y=s(k,C),g=o.get(y).e,e.outrogroups!==null)for(const O of e.outrogroups)O.pending.delete(g),O.done.delete(g);if(g.f&ft&&(Dl(g),a&&(g.nodes?.a?.unfix(),(f??=new Set).delete(g))),g.f&bn)if(g.f^=bn,g===c)ys(g,null,n);else{var w=d?d.next:c;g===e.effect.last&&(e.effect.last=g.prev),g.prev&&(g.prev.next=g.next),g.next&&(g.next.prev=g.prev),jn(e,d,g),jn(e,g,w),ys(g,w,n),d=g,v=[],m=[],c=hs(d.next);continue}if(g!==c){if(u!==void 0&&u.has(g)){if(v.length<m.length){var b=m[0],A;d=b.prev;var T=v[0],L=v[v.length-1];for(A=0;A<v.length;A+=1)ys(v[A],b,n);for(A=0;A<m.length;A+=1)u.delete(m[A]);jn(e,T.prev,L.next),jn(e,d,T),jn(e,L,b),c=b,d=L,C-=1,v=[],m=[]}else u.delete(g),ys(g,c,n),jn(e,g.prev,g.next),jn(e,g,d===null?e.effect.first:d.next),jn(e,d,g),d=g;continue}for(v=[],m=[];c!==null&&c!==g;)(u??=new Set).add(c),m.push(c),c=hs(c.next);if(c===null)continue}g.f&bn||v.push(g),d=g,c=hs(g.next)}if(e.outrogroups!==null){for(const O of e.outrogroups)O.pending.size===0&&(Oo(e,mi(O.done)),e.outrogroups?.delete(O));e.outrogroups.size===0&&(e.outrogroups=null)}if(c!==null||u!==void 0){var R=[];if(u!==void 0)for(g of u)g.f&ft||R.push(g);for(;c!==null;)!(c.f&ft)&&c!==e.fallback&&R.push(c),c=hs(c.next);var P=R.length;if(P>0){var M=r&yd&&l===0?n:null;if(a){for(C=0;C<P;C+=1)R[C].nodes?.a?.measure();for(C=0;C<P;C+=1)R[C].nodes?.a?.fix()}gy(e,R,M)}}a&&vt(()=>{if(f!==void 0)for(g of f)g.nodes?.a?.apply()})}function _y(e,t,n,r,s,a,l,o){var c=l&bm?l&_m?xt(n):ki(n,!1,!1):null,u=l&gm?xt(s):null;return{v:c,i:u,e:ut(()=>(a(t,c??n,u??s,o),()=>{e.delete(r)}))}}function ys(e,t,n){if(e.nodes)for(var r=e.nodes.start,s=e.nodes.end,a=t&&!(t.f&bn)?t.nodes.start:n;r!==null;){var l=Dt(r);if(a.before(r),r===s)return;r=l}}function jn(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function wy(e,t,n=!1,r=!1,s=!1,a=!1){var l=e,o="";if(n){var c=e;le&&(l=Te(Ne(c)))}N(()=>{var u=me;if(o===(o=t()??"")){le&&ht();return}if(n&&!le){u.nodes=null,c.innerHTML=o,o!==""&&$e(Ne(c),c.lastChild);return}if(u.nodes!==null&&(wf(u.nodes.start,u.nodes.end),u.nodes=null),o!==""){if(le){pe.data;for(var d=ht(),f=d;d!==null&&(d.nodeType!==Dn||d.data!=="");)f=d,d=Dt(d);if(d===null)throw Gs(),ir;$e(pe,f),l=Te(d);return}var v=r?Ys:s?gl:void 0,m=Kn(r?"svg":s?"math":"template",v);m.innerHTML=o;var k=r||s?m:m.content;if($e(Ne(k),k.lastChild),r||s)for(;Ne(k);)l.before(Ne(k));else l.before(k)}})}function ky(e,t,n,r,s){le&&ht();var a=t.$$slots?.[n],l=!1;a===!0&&(a=t[n==="default"?"children":n],l=!0),a===void 0?s!==null&&s(e):a(e,l?()=>r:r)}function xy(e){const t={};e.children&&(t.default=!0);for(const n in e.$$slots)t[n]=!0;return t}function ra(e,t,n){var r;le&&(r=pe,ht());var s=new as(e);xn(()=>{var a=t()??null;if(le){var l=_l(r),o=l===vi,c=a!==null;if(o!==c){var u=ur();Te(u),s.anchor=u,Me(!1),s.ensure(a,a&&(d=>n(d,a))),Me(!0);return}}s.ensure(a,a&&(d=>n(d,a)))},un)}const Sy=()=>performance.now(),mn={tick:e=>requestAnimationFrame(e),now:()=>Sy(),tasks:new Set};function Hf(){const e=mn.now();mn.tasks.forEach(t=>{t.c(e)||(mn.tasks.delete(t),t.f())}),mn.tasks.size!==0&&mn.tick(Hf)}function Ey(e){let t;return mn.tasks.size===0&&mn.tick(Hf),{promise:new Promise(n=>{mn.tasks.add(t={c:e,f:n})}),abort(){mn.tasks.delete(t)}}}function Ha(e,t){Yn(()=>{e.dispatchEvent(new CustomEvent(t))})}function Iy(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 nu(e){const t={},n=e.split(";");for(const r of n){const[s,a]=r.split(":");if(!s||a===void 0)break;const l=Iy(s.trim());t[l]=a.trim()}return t}const Ay=e=>e;let Kf=null;function ru(e){Kf=e}function Cy(e,t,n){var r=Kf??me,s=r.nodes,a,l,o,c=null;s.a??={element:e,measure(){a=this.element.getBoundingClientRect()},apply(){if(o?.abort(),l=this.element.getBoundingClientRect(),a.left!==l.left||a.right!==l.right||a.top!==l.top||a.bottom!==l.bottom){const u=t()(this.element,{from:a,to:l},n?.());o=Ka(this.element,u,void 0,1,()=>{o?.abort(),o=void 0})}},fix(){if(!e.getAnimations().length){var{position:u,width:d,height:f}=getComputedStyle(e);if(u!=="absolute"&&u!=="fixed"){var v=e.style;c={position:v.position,width:v.width,height:v.height,transform:v.transform},v.position="absolute",v.width=d,v.height=f;var m=e.getBoundingClientRect();if(a.left!==m.left||a.top!==m.top){var k=`translate(${a.left-m.left}px, ${a.top-m.top}px)`;v.transform=v.transform?`${v.transform} ${k}`:k}}}},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 Ty(e,t,n,r){var s=(e&Sm)!==0,a=(e&Em)!==0,l=s&&a,o=(e&Im)!==0,c=l?"both":s?"in":"out",u,d=t.inert,f=t.style.overflow,v,m;function k(){return Yn(()=>u??=n()(t,r?.()??{},{direction:c}))}var y={is_global:o,in(){if(t.inert=d,!s){m?.abort(),m?.reset?.();return}a||v?.abort(),v=Ka(t,k(),m,1,()=>{Ha(t,"introend"),v?.abort(),v=u=void 0,t.style.overflow=f})},out(b){if(!a){b?.(),u=void 0;return}t.inert=!0,m=Ka(t,k(),v,0,()=>{Ha(t,"outroend"),b?.()})},stop:()=>{v?.abort(),m?.abort()}},g=me;if((g.nodes.t??=[]).push(y),s&&Ua){var C=o;if(!C){for(var w=g.parent;w&&w.f&un;)for(;(w=w.parent)&&!(w.f&an););C=!w||(w.f&Pn)!==0}C&&zt(()=>{_e(()=>y.in())})}}function Ka(e,t,n,r,s){var a=r===1;if(Ar(t)){var l,o=!1;return vt(()=>{if(!o){var g=t({direction:a?"in":"out"});l=Ka(e,g,n,r,s)}}),{abort:()=>{o=!0,l?.abort()},deactivate:()=>l.deactivate(),reset:()=>l.reset(),t:()=>l.t()}}if(n?.deactivate(),!t?.duration&&!t?.delay)return Ha(e,a?"introstart":"outrostart"),s(),{abort:Rt,deactivate:Rt,reset:Rt,t:()=>r};const{delay:c=0,css:u,tick:d,easing:f=Ay}=t;var v=[];if(a&&n===void 0&&(d&&d(0,1),u)){var m=nu(u(0,1));v.push(m,m)}var k=()=>1-r,y=e.animate(v,{duration:c,fill:"forwards"});return y.onfinish=()=>{y.cancel(),Ha(e,a?"introstart":"outrostart");var g=n?.t()??1-r;n?.abort();var C=r-g,w=t.duration*Math.abs(C),b=[];if(w>0){var A=!1;if(u)for(var T=Math.ceil(w/16.666666666666668),L=0;L<=T;L+=1){var R=g+C*f(L/T),P=nu(u(R,1-R));b.push(P),A||=P.overflow==="hidden"}A&&(e.style.overflow="hidden"),k=()=>{var M=y.currentTime;return g+C*f(M/w)},d&&Ey(()=>{if(y.playState!=="running")return!1;var M=k();return d(M,1-M),!0})}y=e.animate(b,{duration:w,fill:"forwards"}),y.onfinish=()=>{k=()=>r,d?.(r,1-r),s()}},{abort:()=>{y&&(y.cancel(),y.effect=null,y.onfinish=Rt)},deactivate:()=>{s=Rt},reset:()=>{r===0&&d?.(1,0)},t:()=>k()}}function Ry(e,t,n,r,s,a){let l=le;le&&ht();var o=null;le&&pe.nodeType===Ld&&(o=pe,ht());var c=le?pe:e,u=me,d=new as(c,!1);xn(()=>{const f=t()||null;var v=s?s():n||f==="svg"?Ys:void 0;if(f===null){d.ensure(null,null),Mr(!0);return}return d.ensure(f,m=>{if(f){if(o=le?o:Kn(f,v),$e(o,o),r){le&&Ug(f)&&o.append(document.createComment(""));var k=le?Ne(o):o.appendChild(st());le&&(k===null?Me(!1):Te(k)),ru(u),r(o,k),ru(null)}me.nodes.end=o,m.before(o)}le&&Te(m)}),Mr(!0),()=>{f&&Mr(!1)}},un),jt(()=>{Mr(!0)}),l&&(Me(!0),Te(c))}function Ly(e,t){let n=null,r=le;var s;if(le){n=pe;for(var a=Ne(document.head);a!==null&&(a.nodeType!==Dn||a.data!==e);)a=Dt(a);if(a===null)Me(!1);else{var l=Dt(a);a.remove(),Te(l)}}le||(s=document.head.appendChild(st()));try{xn(()=>t(s),Td|Hn)}finally{r&&(Me(!0),Te(n))}}function My(e,t){zt(()=>{var n=e.getRootNode(),r=n.host?n:n.head??n.ownerDocument.head;if(!r.querySelector("#"+t.hash)){const s=Kn("style");s.id=t.hash,s.textContent=t.code,r.appendChild(s)}})}function Yf(e,t,n){zt(()=>{var r=_e(()=>t(e,n?.())||{});if(n&&r?.update){var s=!1,a={};Ke(()=>{var l=n();jl(l),s&&Od(a,l)&&(a=l,r.update(l))}),s=!0}if(r?.destroy)return()=>r.destroy()})}function Fl(e,t){var n=void 0,r;yf(()=>{n!==(n=t())&&(r&&(Qe(r),r=null),n&&(r=ut(()=>{zt(()=>n(e))})))})}const Py=/[&"<]/g;function Dy(e,t){const n=String(e??""),r=Py;r.lastIndex=0;let s="",a=0;for(;r.test(n);){const l=r.lastIndex-1,o=n[l];s+=n.substring(a,l)+(o==="&"?"&amp;":o==='"'?"&quot;":"&lt;"),a=l+1}return s+n.substring(a)}function Wf(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=Wf(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function zy(){for(var e,t,n=0,r="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=Wf(e))&&(r&&(r+=" "),r+=t);return r}const su={translate:new Map([[!0,"yes"],[!1,"no"]])};function jy(e,t,n=!1){if(e==="hidden"&&t!=="until-found"&&(n=!0),t==null||!t&&n)return"";const r=Lm.call(su,e)&&su[e].get(t)||t,s=n?'=""':`="${Dy(r)}"`;return` ${e}${s}`}function Xf(e){return typeof e=="object"?zy(e):e??""}const au=[...`
7
- \r\f \v\uFEFF`];function Oy(e,t,n){var r=e==null?"":""+e;if(t&&(r=r?r+" "+t:t),n){for(var s of Object.keys(n))if(n[s])r=r?r+" "+s:s;else if(r.length)for(var a=s.length,l=0;(l=r.indexOf(s,l))>=0;){var o=l+a;(l===0||au.includes(r[l-1]))&&(o===r.length||au.includes(r[o]))?r=(l===0?"":r.substring(0,l))+r.substring(o+1):l=o}}return r===""?null:r}function iu(e,t=!1){var n=t?" !important;":";",r="";for(var s of Object.keys(e)){var a=e[s];a!=null&&a!==""&&(r+=" "+s+": "+a+n)}return r}function to(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function Ny(e,t){if(t){var n="",r,s;if(Array.isArray(t)?(r=t[0],s=t[1]):r=t,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var a=!1,l=0,o=!1,c=[];r&&c.push(...Object.keys(r).map(to)),s&&c.push(...Object.keys(s).map(to));var u=0,d=-1;const y=e.length;for(var f=0;f<y;f++){var v=e[f];if(o?v==="/"&&e[f-1]==="*"&&(o=!1):a?a===v&&(a=!1):v==="/"&&e[f+1]==="*"?o=!0:v==='"'||v==="'"?a=v:v==="("?l++:v===")"&&l--,!o&&a===!1&&l===0){if(v===":"&&d===-1)d=f;else if(v===";"||f===y-1){if(d!==-1){var m=to(e.substring(u,d).trim());if(!c.includes(m)){v!==";"&&f++;var k=e.substring(u,f).trim();n+=" "+k+";"}}u=f+1,d=-1}}}}return r&&(n+=iu(r)),s&&(n+=iu(s,!0)),n=n.trim(),n===""?null:n}return e==null?null:String(e)}function ue(e,t,n,r,s,a){var l=e.__className;if(le||l!==n||l===void 0){var o=Oy(n,r,a);(!le||o!==e.getAttribute("class"))&&(o==null?e.removeAttribute("class"):t?e.className=o:e.setAttribute("class",o)),e.__className=n}else if(a&&s!==a)for(var c in a){var u=!!a[c];(s==null||u!==!!s[c])&&e.classList.toggle(c,u)}return a}function no(e,t={},n,r){for(var s in n){var a=n[s];t[s]!==a&&(n[s]==null?e.style.removeProperty(s):e.style.setProperty(s,a,r))}}function He(e,t,n,r){var s=e.__style;if(le||s!==t){var a=Ny(t,r);(!le||a!==e.getAttribute("style"))&&(a==null?e.removeAttribute("style"):e.style.cssText=a),e.__style=t}else r&&(Array.isArray(r)?(no(e,n?.[0],r[0]),no(e,n?.[1],r[1],"important")):no(e,n,r));return r}function Ls(e,t,n=!1){if(e.multiple){if(t==null)return;if(!ts(t))return pb();for(var r of e.options)r.selected=t.includes(Ss(r));return}for(r of e.options){var s=Ss(r);if(cf(s,t)){r.selected=!0;return}}(!n||t!==void 0)&&(e.selectedIndex=-1)}function Vl(e){var t=new MutationObserver(()=>{Ls(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),jt(()=>{t.disconnect()})}function Ms(e,t,n=t){var r=new WeakSet,s=!0;ea(e,"change",a=>{var l=a?"[selected]":":checked",o;if(e.multiple)o=[].map.call(e.querySelectorAll(l),Ss);else{var c=e.querySelector(l)??e.querySelector("option:not([disabled])");o=c&&Ss(c)}n(o),e.__value=o,be!==null&&r.add(be)}),zt(()=>{var a=t();if(e===document.activeElement){var l=be;if(r.has(l))return}if(Ls(e,a,s),s&&a===void 0){var o=e.querySelector(":checked");o!==null&&(a=Ss(o),n(a))}e.__value=a,s=!1}),Vl(e)}function Ss(e){return"__value"in e?e.__value:e.value}const Tr=Symbol("class"),Rr=Symbol("style"),Gf=Symbol("is custom element"),Jf=Symbol("is html"),qy=yr?"link":"LINK",By=yr?"input":"INPUT",Fy=yr?"option":"OPTION",Vy=yr?"select":"SELECT",Uy=yr?"progress":"PROGRESS";function we(e){if(le){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute("value")){var r=e.value;re(e,"value",null),e.value=r}if(e.hasAttribute("checked")){var s=e.checked;re(e,"checked",null),e.checked=s}}};e.__on_r=n,vt(n),pf()}}function Ps(e,t){var n=Si(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==Uy)||(e.value=t??"")}function Ul(e,t){var n=Si(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function Hl(e,t){t?e.hasAttribute("selected")||e.setAttribute("selected",""):e.removeAttribute("selected")}function Hy(e,t){const n=e.checked;e.defaultChecked=t,e.checked=n}function Ky(e,t){const n=e.value;e.defaultValue=t,e.value=n}function re(e,t,n,r){var s=Si(e);le&&(s[t]=e.getAttribute(t),t==="src"||t==="srcset"||t==="href"&&e.nodeName===qy)||s[t]!==(s[t]=n)&&(t==="loading"&&(e[zm]=n),n==null?e.removeAttribute(t):typeof n!="string"&&Kl(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function Yy(e,t,n){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n)}function Wy(e,t,n){var r=xe,s=me;let a=le;le&&Me(!1),St(null),ct(null);try{t!=="style"&&(No.has(e.getAttribute("is")||e.nodeName)||!customElements||customElements.get(e.getAttribute("is")||e.nodeName.toLowerCase())?Kl(e).includes(t):n&&typeof n=="object")?e[t]=n:re(e,t,n==null?n:String(n))}finally{St(r),ct(s),a&&Me(!0)}}function Xy(e,t,n,r,s=!1,a=!1){if(le&&s&&e.nodeName===By){var l=e,o=l.type==="checkbox"?"defaultChecked":"defaultValue";o in n||we(l)}var c=Si(e),u=c[Gf],d=!c[Jf];let f=le&&u;f&&Me(!1);var v=t||{},m=e.nodeName===Fy;for(var k in t)k in n||(n[k]=null);n.class?n.class=Xf(n.class):(r||n[Tr])&&(n.class=null),n[Rr]&&(n.style??=null);var y=Kl(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 g=e.namespaceURI==="http://www.w3.org/1999/xhtml";ue(e,g,P,r,t?.[Tr],n[Tr]),v[R]=P,v[Tr]=n[Tr];continue}if(R==="style"){He(e,P,t?.[Rr],n[Rr]),v[R]=P,v[Rr]=n[Rr];continue}var C=v[R];if(!(P===C&&!(P===void 0&&e.hasAttribute(R)))){v[R]=P;var w=R[0]+R[1];if(w!=="$$")if(w==="on"){const M={},O="$$"+R;let E=R.slice(2);var b=Og(E);if(zg(E)&&(E=E.slice(0,-7),M.capture=!0),!b&&C){if(P!=null)continue;e.removeEventListener(E,v[O],M),v[O]=null}if(b)K(E,e,P),de([E]);else if(P!=null){let D=function(F){v[R].call(this,F)};var L=D;v[O]=Mf(E,e,D,M)}}else if(R==="style")re(e,R,P);else if(R==="autofocus")$s(e,!!P);else if(!u&&(R==="__value"||R==="value"&&P!=null))e.value=e.__value=P;else if(R==="selected"&&m)Hl(e,P);else{var A=R;d||(A=qg(A));var T=A==="defaultValue"||A==="defaultChecked";if(P==null&&!u&&!T)if(c[R]=null,A==="value"||A==="checked"){let M=e;const O=t===void 0;if(A==="value"){let E=M.defaultValue;M.removeAttribute(A),M.defaultValue=E,M.value=M.__value=O?E:null}else{let E=M.defaultChecked;M.removeAttribute(A),M.defaultChecked=E,M.checked=O?E:!1}}else e.removeAttribute(R);else T||y.includes(A)&&(u||typeof P!="string")?(e[A]=P,A in c&&(c[A]=Oe)):typeof P!="function"&&re(e,A,P)}}}return f&&Me(!0),v}function Gy(e,t,n=[],r=[],s=[],a,l=!1,o=!1){Js(s,n,r,c=>{var u=void 0,d={},f=e.nodeName===Vy,v=!1;if(yf(()=>{var k=t(...c.map(i)),y=Xy(e,u,k,a,l,o);v&&f&&"value"in k&&Ls(e,k.value);for(let C of Object.getOwnPropertySymbols(d))k[C]||Qe(d[C]);for(let C of Object.getOwnPropertySymbols(k)){var g=k[C];C.description===xd&&(!u||g!==u[C])&&(d[C]&&Qe(d[C]),d[C]=ut(()=>Fl(e,()=>g))),y[C]=g}u=y}),f){var m=e;zt(()=>{Ls(m,u.value,!0),Vl(m)})}v=!0})}function Si(e){return e.__attributes??={[Gf]:e.nodeName.includes("-"),[Jf]:e.namespaceURI===kd}}var No=new Map;function Kl(e){var t=e.getAttribute("is")||e.nodeName,n=No.get(t);if(n)return n;No.set(t,n=[]);for(var r,s=e,a=Element.prototype;a!==s;){r=Ed(s);for(var l in r)r[l].set&&n.push(l);s=bi(s)}return n}let ro=null;function Zf(){if(ro===null){var e=Kn("select");e.innerHTML=Pf("<option><span>t</span></option>"),ro=e.firstChild?.firstChild?.nodeType===1}return ro}function Jy(e,t){Zf()&&Fl(e,()=>()=>{const n=e.closest("select");if(!n)return;const r=new MutationObserver(s=>{var a=!1;for(const l of s){if(l.target===e)return;a||=!!l.target.parentElement?.closest("option")?.selected}a&&(e.replaceWith(e=e.cloneNode(!0)),t(e))});return r.observe(n,{childList:!0,characterData:!0,subtree:!0}),()=>{r.disconnect()}})}function Zy(e,t){var n=le;Zf()||(Me(!1),e.textContent="",e.append(hf("")));try{t()}finally{n&&(le?h(e):(Me(!0),Te(e)))}}function Qy(e){It(document,["focusin","focusout"],t=>{t&&t.type==="focusout"&&t.relatedTarget||e(document.activeElement)})}function Ae(e,t,n=t){var r=new WeakSet;ea(e,"input",async s=>{var a=s?e.defaultValue:e.value;if(a=ao(e)?io(a):a,n(a),be!==null&&r.add(be),await na(),a!==(a=t())){var l=e.selectionStart,o=e.selectionEnd,c=e.value.length;if(e.value=a??"",o!==null){var u=e.value.length;l===o&&o===c&&u>c?(e.selectionStart=u,e.selectionEnd=u):(e.selectionStart=l,e.selectionEnd=Math.min(o,u))}}}),(le&&e.defaultValue!==e.value||_e(t)==null&&e.value)&&(n(ao(e)?io(e.value):e.value),be!==null&&r.add(be)),Ke(()=>{var s=t();if(e===document.activeElement){var a=be;if(r.has(a))return}ao(e)&&s===io(e.value)||e.type==="date"&&!s&&!e.value||s!==e.value&&(e.value=s??"")})}const so=new Set;function $y(e,t,n,r,s=r){var a=n.getAttribute("type")==="checkbox",l=e;let o=!1;if(t!==null)for(var c of t)l=l[c]??=[];l.push(n),ea(n,"change",()=>{var u=n.__value;a&&(u=ou(l,u,n.checked)),s(u)},()=>s(a?[]:null)),Ke(()=>{var u=r();if(le&&n.defaultChecked!==n.checked){o=!0;return}a?(u=u||[],n.checked=u.includes(n.__value)):n.checked=cf(n.__value,u)}),jt(()=>{var u=l.indexOf(n);u!==-1&&l.splice(u,1)}),so.has(l)||(so.add(l),vt(()=>{l.sort((u,d)=>u.compareDocumentPosition(d)===4?-1:1),so.delete(l)})),vt(()=>{if(o){var u;if(a)u=ou(l,u,n.checked);else{var d=l.find(f=>f.checked);u=d?.__value}s(u)}})}function Es(e,t,n=t){ea(e,"change",r=>{var s=r?e.defaultChecked:e.checked;n(s)}),(le&&e.defaultChecked!==e.checked||_e(t)==null)&&n(e.checked),Ke(()=>{var r=t();e.checked=!!r})}function ou(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 ao(e){var t=e.type;return t==="number"||t==="range"}function io(e){return e===""?null:+e}function e_(e,t,n=t){ea(e,"change",()=>{n(e.files)}),le&&e.files&&n(e.files),Ke(()=>{e.files=t()})}function Yl(e){for(var t=[],n=0;n<e.length;n+=1)t.push({start:e.start(n),end:e.end(n)});return t}function t_(e,t,n=t){var r,s,a=()=>{cancelAnimationFrame(r),e.paused||(r=requestAnimationFrame(a));var l=e.currentTime;s!==l&&n(s=l)};r=requestAnimationFrame(a),e.addEventListener("timeupdate",a),Ke(()=>{var l=Number(t());s!==l&&!isNaN(l)&&(e.currentTime=s=l)}),jt(()=>{cancelAnimationFrame(r),e.removeEventListener("timeupdate",a)})}function n_(e,t){var n;It(e,["loadedmetadata","progress","timeupdate","seeking"],()=>{var r=e.buffered;(!n||n.length!==r.length||n.some((s,a)=>r.start(a)!==s.start||r.end(a)!==s.end))&&(n=Yl(r),t(n))})}function r_(e,t){It(e,["loadedmetadata"],()=>t(Yl(e.seekable)))}function s_(e,t){It(e,["timeupdate"],()=>t(Yl(e.played)))}function a_(e,t){It(e,["seeking","seeked"],()=>t(e.seeking))}function i_(e,t){It(e,["timeupdate","ended"],()=>t(e.ended))}function o_(e,t){It(e,["loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","emptied"],()=>t(e.readyState))}function l_(e,t,n=t){zt(()=>{var r=Number(t());r!==e.playbackRate&&!isNaN(r)&&(e.playbackRate=r)}),zt(()=>{It(e,["ratechange"],()=>{n(e.playbackRate)})})}function c_(e,t,n=t){var r=t(),s=()=>{r!==e.paused&&n(r=e.paused)};It(e,["play","pause","canplay"],s,r==null),zt(()=>{(r=!!t())!==e.paused&&(r?e.pause():e.play().catch(a=>{throw n(r=!0),a}))})}function u_(e,t,n=t){var r=()=>{n(e.volume)};t()==null&&r(),It(e,["volumechange"],r,!1),Ke(()=>{var s=Number(t());s!==e.volume&&!isNaN(s)&&(e.volume=s)})}function d_(e,t,n=t){var r=()=>{n(e.muted)};t()==null&&r(),It(e,["volumechange"],r,!1),Ke(()=>{var s=!!t();e.muted!==s&&(e.muted=s)})}function f_(e){It(window,["online","offline"],()=>{e(navigator.onLine)})}function v_(e,t,n){var r=sn(e,t);r&&r.set&&(e[t]=n,jt(()=>{e[t]=null}))}class sa{#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){sa.entries.set(n.target,n);for(var r of this.#e.get(n.target)||[])r(n)}}))}}var h_=new sa({box:"content-box"}),Qf=new sa({box:"border-box"}),p_=new sa({box:"device-pixel-content-box"});function m_(e,t,n){var r=t==="contentRect"||t==="contentBoxSize"?h_:t==="borderBoxSize"?Qf:p_,s=r.observe(e,a=>n(a[t]));jt(s)}function b_(e,t,n){var r=Qf.observe(e,()=>n(e[t]));zt(()=>(_e(()=>n(e[t])),r))}function lu(e,t){return e===t||e?.[lt]===t}function je(e={},t,n,r){var s=Ce.r,a=me;return zt(()=>{var l,o;return Ke(()=>{l=o,o=r?.()||[],_e(()=>{e!==n(...o)&&(t(e,...o),l&&lu(n(...l),e)&&t(null,...l))})}),()=>{let c=a;for(;c!==s&&c.parent!==null&&c.parent.f&Eo;)c=c.parent;const u=()=>{o&&lu(n(...o),e)&&t(null,...o)},d=c.teardown;c.teardown=()=>{u(),d?.()}}}),e}function g_(e,t,n,r=n){t.addEventListener("input",()=>{r(t[e])}),Ke(()=>{var s=n();if(t[e]!==s)if(s==null){var a=t[e];r(a)}else t[e]=s+""})}function y_(e,t,n,r,s){var a=()=>{r(n[e])};n.addEventListener(t,a),s?Ke(()=>{n[e]=s()}):a(),(n===document.body||n===window||n===document)&&jt(()=>{n.removeEventListener(t,a)})}function __(e,t){It(e,["focus","blur"],()=>{t(e===document.activeElement)})}function w_(e,t,n=t){var r=e==="x",s=()=>Yn(()=>{a=!0,clearTimeout(l),l=setTimeout(o,100),n(window[r?"scrollX":"scrollY"])});addEventListener("scroll",s,{passive:!0});var a=!1,l,o=()=>{a=!1},c=!0;Ke(()=>{var u=t();c?c=!1:!a&&u!=null&&(a=!0,clearTimeout(l),r?scrollTo(u,window.scrollY):scrollTo(window.scrollX,u),l=setTimeout(o,100))}),zt(s),jt(()=>{removeEventListener("scroll",s)})}function k_(e,t){It(window,["resize"],()=>Yn(()=>t(window[e])))}function x_(e){return function(...t){var n=t[0];n.isTrusted&&e?.apply(this,t)}}function S_(e){return function(...t){var n=t[0];n.target===this&&e?.apply(this,t)}}function E_(e){return function(...t){var n=t[0];return n.stopPropagation(),e?.apply(this,t)}}function I_(e){var t=!1;return function(...n){if(!t)return t=!0,e?.apply(this,n)}}function A_(e){return function(...t){var n=t[0];return n.stopImmediatePropagation(),e?.apply(this,t)}}function C_(e){return function(...t){var n=t[0];return n.preventDefault(),e?.apply(this,t)}}function T_(e=!1){const t=Ce,n=t.l.u;if(!n)return;let r=()=>jl(t.s);if(e){let s=0,a={};const l=Qs(()=>{let o=!1;const c=t.s;for(const u in c)c[u]!==a[u]&&(a[u]=c[u],o=!0);return o&&s++,s});r=()=>i(l)}n.b.length&&bf(()=>{cu(t,r),xo(n.b)}),Se(()=>{const s=_e(()=>n.m.map(Mm));return()=>{for(const a of s)typeof a=="function"&&a()}}),n.a.length&&Se(()=>{cu(t,r),xo(n.a)})}function cu(e,t){if(e.l.s)for(const n of e.l.s)i(n);t()}function R_(e){var t=xt(0);return function(){return arguments.length===1?(S(t,i(t)+1),arguments[0]):(i(t),e())}}function L_(e,t){var n=e.$$events?.[t.type],r=ts(n)?n.slice():n==null?[]:[n];for(var s of r)s.call(this,t)}function M_(e,t,n){e.$$events||={},e.$$events[t]||=[],e.$$events[t].push(n)}function P_(e){for(var t in e)t in this&&(this[t]=e[t])}function D_(e,t=1){const n=e();return e(n+t),n}function z_(e,t=1){const n=e()+t;return e(n),n}const j_={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 O_(e,t,n){return new Proxy({props:e,exclude:t},j_)}const N_={get(e,t){if(!e.exclude.includes(t))return i(e.version),t in e.special?e.special[t]():e.props[t]},set(e,t,n){if(!(t in e.special)){var r=me;try{ct(e.parent_effect),e.special[t]=ee({get[t](){return e.props[t]}},t,_d)}finally{ct(r)}}return e.special[t](n),Hr(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),Hr(e.version)),!0},has(e,t){return e.exclude.includes(t)?!1:t in e.props},ownKeys(e){return Reflect.ownKeys(e.props).filter(t=>!e.exclude.includes(t))}};function q_(e,t){return new Proxy({props:e,exclude:t,special:{},version:xt(0),parent_effect:me},N_)}const B_={get(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(Ar(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];Ar(s)&&(s=s());const a=sn(s,t);if(a&&a.set)return a.set(n),!0}return!1},getOwnPropertyDescriptor(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(Ar(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r){const s=sn(r,t);return s&&!s.configurable&&(s.configurable=!0),s}}},has(e,t){if(t===lt||t===gi)return!1;for(let n of e.props)if(Ar(n)&&(n=n()),n!=null&&t in n)return!0;return!1},ownKeys(e){const t=[];for(let n of e.props)if(Ar(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 aa(...e){return new Proxy({props:e},B_)}function ee(e,t,n,r){var s=(n&km)!==0,a=(n&xm)!==0,l=r,o=!0,c=()=>(o&&(o=!1,l=a?_e(r):r),l);let u;if(s){var d=lt in e||gi in e;u=sn(e,t)?.set??(d&&t in e?w=>e[t]=w:void 0)}var f,v=!1;s?[f,v]=Gd(()=>e[t]):f=e[t],f===void 0&&r!==void 0&&(f=c(),u&&(nb(),u(f)));var m;if(m=()=>{var w=e[t];return w===void 0?c():(o=!0,w)},!(n&_d))return m;if(u){var k=e.$$legacy;return function(w,b){return arguments.length>0?((!b||k||v)&&u(b?m():w),w):m()}}var y=!1,g=(n&wm?Qs:Al)(()=>(y=!1,m()));s&&i(g);var C=me;return function(w,b){if(arguments.length>0){const A=b?i(g):s?ce(w):w;return S(g,A),y=!0,l!==void 0&&(l=A),w}return Ln&&y||C.f&_t?g.v:i(g)}}function F_(e,t,n,r,s,a){tf(t,()=>{var l=!1;wl?.[Tt],Ke(()=>{if(!l){var[o,c]=Gd(n);if(!c){var u=r(),d=!1,f=Ke(()=>{d||o[u]});d=!0,f.deps===null&&(lb(),l=!0)}}})})}function V_(e){return new U_(e)}class U_{#e;#t;constructor(t){var n=new Map,r=(a,l)=>{var o=ki(l,!1,!1);return n.set(a,o),o};const s=new Proxy({...t.props||{},$$events:{}},{get(a,l){return i(n.get(l)??r(l,Reflect.get(a,l)))},has(a,l){return l===gi?!0:(i(n.get(l)??r(l,Reflect.get(a,l))),Reflect.has(a,l))},set(a,l,o){return S(n.get(l)??r(l,o),o),Reflect.set(a,l,o)}});this.#t=(t.hydrate?Of:Fe)(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)&&Fn(),this.#e=s.$$events;for(const a of Object.keys(this.#t))a==="$set"||a==="$destroy"||a==="$on"||or(this,a,{get(){return this.#t[a]},set(l){this.#t[a]=l},enumerable:!0});this.#t.$set=a=>{Object.assign(s,a)},this.#t.$destroy=()=>{Ze(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 $f;typeof HTMLElement=="function"&&($f=class extends HTMLElement{$$ctor;$$s;$$c;$$cn=!1;$$d={};$$r=!1;$$p_d={};$$l={};$$l_u=new Map;$$me;$$shadowRoot=null;constructor(e,t,n){super(),this.$$ctor=e,this.$$s=t,n&&(this.$$shadowRoot=this.attachShadow(n))}addEventListener(e,t,n){if(this.$$l[e]=this.$$l[e]||[],this.$$l[e].push(t),this.$$c){const r=this.$$c.$on(e,t);this.$$l_u.set(t,r)}super.addEventListener(e,t,n)}removeEventListener(e,t,n){if(super.removeEventListener(e,t,n),this.$$c){const r=this.$$l_u.get(t);r&&(r(),this.$$l_u.delete(t))}}async connectedCallback(){if(this.$$cn=!0,!this.$$c){let t=function(s){return a=>{const l=Kn("slot");s!=="default"&&(l.name=s),x(a,l)}};var e=t;if(await Promise.resolve(),!this.$$cn||this.$$c)return;const n={},r=H_(this);for(const s of this.$$s)s in r&&(s==="default"&&!this.$$d.children?(this.$$d.children=t(s),n.default=!0):n[s]=t(s));for(const s of this.attributes){const a=this.$$g_p(s.name);a in this.$$d||(this.$$d[a]=Ca(a,s.value,this.$$p_d,"toProp"))}for(const s in this.$$p_d)!(s in this.$$d)&&this[s]!==void 0&&(this.$$d[s]=this[s],delete this[s]);this.$$c=V_({component:this.$$ctor,target:this.$$shadowRoot||this,props:{...this.$$d,$$slots:n,$$host:this}}),this.$$me=rs(()=>{Ke(()=>{this.$$r=!0;for(const s of Na(this.$$c)){if(!this.$$p_d[s]?.reflect)continue;this.$$d[s]=this.$$c[s];const a=Ca(s,this.$$d[s],this.$$p_d,"toAttribute");a==null?this.removeAttribute(this.$$p_d[s].attribute||s):this.setAttribute(this.$$p_d[s].attribute||s,a)}this.$$r=!1})});for(const s in this.$$l)for(const a of this.$$l[s]){const l=this.$$c.$on(s,a);this.$$l_u.set(a,l)}this.$$l={}}}attributeChangedCallback(e,t,n){this.$$r||(e=this.$$g_p(e),this.$$d[e]=Ca(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 Na(this.$$p_d).find(t=>this.$$p_d[t].attribute===e||!this.$$p_d[t].attribute&&t.toLowerCase()===e)||e}});function Ca(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 H_(e){const t={};return e.childNodes.forEach(n=>{t[n.slot||"default"]=!0}),t}function K_(e,t,n,r,s,a){let l=class extends $f{constructor(){super(e,n,s),this.$$p_d=t}static get observedAttributes(){return Na(t).map(o=>(t[o].attribute||o).toLowerCase())}};return Na(t).forEach(o=>{or(l.prototype,o,{get(){return this.$$c&&o in this.$$c?this.$$c[o]:this.$$d[o]},set(c){c=Ca(o,c,t),this.$$d[o]=c;var u=this.$$c;if(u){var d=sn(u,o)?.get;d?u[o]=c:u.$set({[o]:c})}}})}),r.forEach(o=>{or(l.prototype,o,{get(){return this.$$c?.[o]}})}),a&&(l=a(l)),e.element=l,l}function Y_(e,...t){return _e(()=>{try{let n=!1;const r=[];for(const s of t)s&&typeof s=="object"&&lt in s?(r.push(dr(s,!0)),n=!0):r.push(s);n&&(cb(e),console.log("%c[snapshot]","color: grey",...r))}catch{}}),t}const ev=Object.freeze(Object.defineProperty({__proto__:null,CLASS:Tr,FILENAME:Tt,HMR:Ir,NAMESPACE_SVG:Ys,STYLE:Rr,aborted:Po,action:Yf,get active_effect(){return me},add_legacy_event_listener:M_,add_locations:sy,add_svelte_meta:Ib,animation:Cy,append:x,append_styles:My,apply:Sg,assign:ty,assign_async:ny,async:dy,async_derived:nf,attach:Fl,attachment:ey,attr:jy,attribute_effect:Gy,autofocus:$s,await:hy,bind_active_element:Qy,bind_buffered:n_,bind_checked:Es,bind_content_editable:g_,bind_current_time:t_,bind_element_size:b_,bind_ended:i_,bind_files:e_,bind_focused:__,bind_group:$y,bind_muted:d_,bind_online:f_,bind_paused:c_,bind_playback_rate:l_,bind_played:s_,bind_prop:v_,bind_property:y_,bind_ready_state:o_,bind_resize_observer:m_,bind_seekable:r_,bind_seeking:a_,bind_select_value:Ms,bind_this:je,bind_value:Ae,bind_volume:u_,bind_window_scroll:w_,bind_window_size:k_,boundary:ef,bubble_event:L_,check_target:ly,child:p,cleanup_styles:ry,clsx:Xf,comment:Pe,component:ra,create_custom_element:K_,create_ownership_validator:oy,css_props:by,customizable_select:Zy,deep_read:Va,deep_read_state:jl,deferred_template_effect:hg,delegate:de,delegated:K,derived:U,derived_safe_equal:Al,get document(){return uf},each:he,eager:Hb,effect:zt,effect_root:rs,effect_tracking:ta,element:Ry,equals:ig,event:De,exclude_from_object:Dm,fallback:Pm,first_child:fe,flush:Fn,for_await_track_reactivity_loss:Zb,from_html:I,from_mathml:Cg,from_svg:Nl,from_tree:Tg,get:i,head:Ly,hmr:iy,html:wy,hydrate_template:bb,if:W,index:pt,init:T_,init_select:Vl,inspect:uy,invalid_default_snippet:Nm,invalidate_inner_signals:bg,invalidate_store:zb,invoke_error_boundary:gn,key:my,legacy_api:cy,legacy_pre_effect:dg,legacy_pre_effect_reset:fg,legacy_rest_props:q_,log_if_contains_state:Y_,mark_store_binding:Bb,mutable_source:ki,mutate:rg,next:Mt,noop:Rt,once:I_,pending:Gb,pop:ae,preventDefault:C_,prevent_snippet_stringification:qf,prop:ee,props_id:Mg,proxy:ce,push:se,raf:mn,reactive_import:R_,remove_input_defaults:we,remove_textarea_child:Ll,render_effect:Ke,replay_events:xg,reset:h,rest_props:O_,run:Qb,run_after_blockers:tf,safe_get:wg,sanitize_slots:xy,save:Jb,select_option:Ls,selectedcontent:Jy,self:S_,set:S,set_attribute:re,set_checked:Ul,set_class:ue,set_custom_element_data:Wy,set_default_checked:Hy,set_default_value:Ky,set_selected:Hl,set_style:He,set_text:j,set_value:Ps,set_xlink_attribute:Yy,setup_stores:jb,sibling:_,slot:ky,snapshot:dr,snippet:Gt,spread_props:aa,state:H,stopImmediatePropagation:A_,stopPropagation:E_,store_get:Pb,store_mutate:Ob,store_set:Xd,store_unsub:Db,strict_equals:ag,tag:xb,tag_proxy:Bd,template_effect:N,text:on,tick:na,to_array:Cd,trace:kb,track_reactivity_loss:Ro,transition:Ty,trusted:x_,untrack:_e,update:Hr,update_legacy_props:P_,update_pre:sg,update_pre_prop:z_,update_pre_store:qb,update_prop:D_,update_store:Nb,user_effect:Se,user_pre_effect:bf,validate_binding:F_,validate_dynamic_element_tag:Kg,validate_snippet_args:fy,validate_store:Yg,validate_void_dynamic_element:Hg,wait:$b,get window(){return Lo},with_script:Rg,wrap_snippet:Wg},Symbol.toStringTag,{value:"Module"}));class qo{#e=new Map;read(t){return this.#e.get(t)}write(t,n){this.#e.set(t,n)}delete(t){this.#e.delete(t)}list(){return[...this.#e.keys()]}}class uu{#e;constructor(t){this.#e=t}read(t){if(typeof localStorage>"u")return;const n=localStorage.getItem(this.#e+t);if(n!=null)try{return JSON.parse(n)}catch{return}}write(t,n){if(!(typeof localStorage>"u"))try{localStorage.setItem(this.#e+t,JSON.stringify(n))}catch{}}delete(t){typeof localStorage>"u"||localStorage.removeItem(this.#e+t)}list(){if(typeof localStorage>"u")return[];const t=[];for(let n=0;n<localStorage.length;n++){const r=localStorage.key(n);r&&r.startsWith(this.#e)&&t.push(r.slice(this.#e.length))}return t}}const W_=["workspace","user"],Ds="state:manage",dn={ephemeral:new qo,session:new qo,workspace:new uu("sh3:workspace:"),user:new uu("sh3:user:")},oo=new Map;let lo=!1;function X_(e,t,n){oo.set(`${e}:${t}`,{zone:e,shardId:t,value:n}),!lo&&(lo=!0,queueMicrotask(()=>{lo=!1;for(const{zone:r,shardId:s,value:a}of oo.values())dn[r].write(s,a);oo.clear()}))}function Ei(e,t){const n={};for(const r of Object.keys(t)){const s=t[r],l=dn[r].read(e),o={...s,...l??{}},c=ce(o);n[r]=c,W_.includes(r)&&rs(()=>{let u=!0;Se(()=>{const d=dr(c);if(u){u=!1;return}X_(r,e,d)})})}return n}function co(e,t){dn[e]=t}function G_(e,t){return dn[e].read(t)}function Bo(e,t){dn[e].delete(t)}const J_="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(J_);const Z_=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function Q_(e,t={}){const n=document.activeElement;function r(){return Array.from(e.querySelectorAll(Z_))}function s(a){if(a.key!=="Tab")return;const l=r();if(l.length===0){a.preventDefault();return}const o=l[0],c=l[l.length-1],u=document.activeElement;a.shiftKey&&(u===o||!e.contains(u))?(a.preventDefault(),c.focus()):!a.shiftKey&&(u===c||!e.contains(u))&&(a.preventDefault(),o.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 $_=I('<div class="modal-frame svelte-2tcvcm" role="presentation"><div class="modal-box svelte-2tcvcm" role="dialog" aria-modal="true" tabindex="-1"><!></div></div>');function ew(e,t){se(t,!0);let n=ee(t,"initialFocus",3,!0),r;Se(()=>{if(r)return Q_(r,{initialFocus:n()})});function s(c){t.onBackdropClick&&c.target===c.currentTarget&&t.onBackdropClick()}var a=$_(),l=p(a),o=p(l);ra(o,()=>t.Content,(c,u)=>{u(c,aa(()=>t.contentProps,{get close(){return t.close}}))}),h(l),je(l,c=>r=c,()=>r),h(a),N(()=>He(l,t.boxStyle)),K("click",a,s),x(e,a),ae()}de(["click"]);const Wl={};function tw(e,t){Wl[e]=t}function nw(e){delete Wl[e]}function Ii(e){const t=Wl[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 Vn=ce(new Map),ot=ce({id:null}),Yr=ce({id:null});function rw(){return Yr.id}function zs(e){Vn.set(e.manifest.id,e)}function is(){return Array.from(Vn.values()).map(e=>e.manifest)}function Xl(){const e=ot.id;return e?Vn.get(e)?.manifest??null:null}function wn(e){return Vn.get(e)}const Is=[],jr=[];let js=null;function sw(e){js=e}function aw(e){if(!ot.id)throw new Error("pushNavEntry requires an active app");const t=Symbol("nav-entry");return jr.push({id:t,label:e.label,onPop:e.onPop}),{remove(){const n=jr.findIndex(r=>r.id===t);n>=0&&jr.splice(n,1)}}}function tv(e){const t=Symbol("dismissable");return Is.push({id:t,dismiss:e}),{unregister(){const n=Is.findIndex(r=>r.id===t);n>=0&&Is.splice(n,1)}}}function nv(){jr.length=0}function iw(){if(Is.length>0){Is.pop().dismiss();return}if(jr.length>0){jr.pop().onPop();return}ot.id&&js&&js.returnToHome()}function ow(){ot.id||Yr.id&&js&&js.launchApp(Yr.id)}const Pt=[];let Ya=!1,Bt=null;const lw=.5;function rv(){const e=Ii("modal");if(Pt.length===0){Bt&&(Bt.remove(),Bt=null);return}Bt||(Bt=document.createElement("div"),Bt.className="sh3-modal-backdrop",Bt.style.position="absolute",Bt.style.inset="0",Bt.style.pointerEvents="auto",Bt.style.transition="background-color 120ms ease",Bt.style.background=`rgba(0, 0, 0, ${lw})`);const t=Pt[Pt.length-1].host;e.insertBefore(Bt,t)}function sv(e){e.key==="Escape"&&Pt.length!==0&&(e.stopPropagation(),e.preventDefault(),Pt[Pt.length-1].handle.close())}function cw(){Ya||(Ya=!0,document.addEventListener("keydown",sv,!0))}function uw(){Pt.length>0||Ya&&(Ya=!1,document.removeEventListener("keydown",sv,!0))}function av(e){const t=Pt.indexOf(e);t<0||(Pt.splice(t,1),Ze(e.frame),e.host.remove(),rv(),uw())}function dw(e,t,n){const r=Ii("modal"),s=document.createElement("div");s.className="sh3-modal-host",s.dataset.sh3OverlayHost="modal",s.style.position="absolute",s.style.inset="0",s.style.pointerEvents="auto",r.appendChild(s);const a={},l={close:()=>av(a)},o=tv(()=>l.close()),c=l.close;l.close=()=>{o.unregister(),c()};const u=Fe(ew,{target:s,props:{Content:e,contentProps:t??{},close:l.close,boxStyle:n?.boxStyle,onBackdropClick:n?.dismissOnBackdrop?l.close:void 0,initialFocus:n?.initialFocus}});return a.host=s,a.frame=u,a.handle=l,Pt.push(a),rv(),cw(),l}function fw(){for(;Pt.length>0;)av(Pt[Pt.length-1])}const Qt={open:dw,closeAll:fw},Nn=new Map;function ia(e,t){const n=Nn.get(e);return!n||n.priority==="edge"&&t.priority==="normal"||t.priority===n.priority&&t.depth>n.depth?(Nn.set(e,t),!0):!1}function hr(e,t){Nn.get(e)?.ownerId===t&&Nn.delete(e)}function iv(e){return Nn.get(e)??null}function vw(e,t){return Nn.get(e)?.ownerId===t}let hw=0;function pw(){return`sh3:gesture:${hw++}`}function mw(e){let t=0,n=e;for(;n;)t++,n=n.parentElement;return t}function du(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 uo(e,t){return e.length!==t.length?!1:e.every(n=>t.includes(n))}function bw(e){if(!e)return{register:()=>({enable(){},disable(){},destroy(){}}),destroy(){}};const t=[],n=new Map;function r(c){if(!c.isPrimary)return;const u=du(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||!uo(f.modifiers??[],u))continue;const m=f.container??e;if(!m||!m.contains(c.target))continue;const k=mw(m);if(!ia(c.pointerId,{ownerId:d.id,axis:f.axis??"xy",priority:"normal",depth:k}))continue;n.set(c.pointerId,{handlerId:d.id,startX:c.clientX,startY:c.clientY,lastX:c.clientX,lastY:c.clientY});const g={pointerId:c.pointerId,x:c.clientX,y:c.clientY,dx:0,dy:0};f.onStart(g),document.addEventListener("pointermove",s),document.addEventListener("pointerup",a),document.addEventListener("pointercancel",l);return}if(d.opts.type==="button"){const f=d.opts;if(c.button!==f.button||!uo(f.modifiers??[],u))continue;const v=f.container??e;if(!v||!v.contains(c.target))continue;const m=f.on??"down";(m==="down"||m==="both")&&f.onButton({button:c.button,modifiers:u,x:c.clientX,y:c.clientY})}}}function s(c){const u=n.get(c.pointerId);if(!u)return;const d=t.find(m=>m.id===u.handlerId);if(!d||!d.enabled)return;const f=d.opts,v={pointerId:c.pointerId,x:c.clientX,y:c.clientY,dx:c.clientX-u.startX,dy:c.clientY-u.startY};u.lastX=c.clientX,u.lastY=c.clientY,f.onMove(v)}function a(c){const u=n.get(c.pointerId);if(!u)return;n.delete(c.pointerId),hr(c.pointerId,u.handlerId),document.removeEventListener("pointermove",s),document.removeEventListener("pointerup",a),document.removeEventListener("pointercancel",l);const d=t.find(k=>k.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 k=f.clickThreshold??6,y=Math.sqrt(v*v+m*m);f.onEnd({pointerId:c.pointerId,x:c.clientX,y:c.clientY,dx:v,dy:m,cancelled:!1,wasClick:y<k})}else f.onEnd({pointerId:c.pointerId,x:c.clientX,y:c.clientY,dx:v,dy:m,cancelled:!1})}function l(c){const u=n.get(c.pointerId);if(!u)return;n.delete(c.pointerId),hr(c.pointerId,u.handlerId),document.removeEventListener("pointermove",s),document.removeEventListener("pointerup",a),document.removeEventListener("pointercancel",l);const d=t.find(k=>k.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 o(c){const u=du(c);for(const d of t){if(!d.enabled||d.destroyed||d.opts.type!=="scroll")continue;const f=d.opts;if(!uo(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",o),{register(c){const d={id:pw(),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",o),t.length=0}}}function Gl(e){let t=0,n=e;for(;n;)t++,n=n.parentElement;return t}var gw=I('<div class="popup-frame svelte-mp81cl" role="menu" tabindex="-1"><!></div>');function yw(e,t){se(t,!0);let n,r=H(-9999),s=H(-9999);Se(()=>{if(!n)return;const o=n.getBoundingClientRect(),c=4,u=window.innerWidth,d=window.innerHeight;let f=t.anchorRect.bottom+c,v=t.anchorRect.left;if(v+o.width>u-c&&(v=Math.max(c,u-o.width-c)),f+o.height>d-c){const m=t.anchorRect.top-o.height-c;f=m>=c?m:Math.max(c,d-o.height-c)}S(r,f,!0),S(s,v,!0)});var a=gw(),l=p(a);ra(l,()=>t.Content,(o,c)=>{c(o,aa(()=>t.contentProps,{get close(){return t.close}}))}),h(a),je(a,o=>n=o,()=>n),N(()=>He(a,`top: ${i(r)??""}px; left: ${i(s)??""}px;`)),x(e,a),ae()}function _w(e){return e instanceof HTMLElement?e.getBoundingClientRect():new DOMRect(e.x,e.y,0,0)}let Wt=null;function ov(e){if(!Wt||iv(e.pointerId))return;const t=e.target;t&&Wt.host.contains(t)||Wt.handle.close()}function lv(e){Wt&&e.key==="Escape"&&(e.stopPropagation(),e.preventDefault(),Wt.handle.close())}function ww(){document.addEventListener("pointerdown",ov,!0),document.addEventListener("keydown",lv,!0)}function kw(){document.removeEventListener("pointerdown",ov,!0),document.removeEventListener("keydown",lv,!0)}function Fo(e){Wt===e&&(Wt=null,kw(),Ze(e.frame),e.host.remove())}function xw(e,t,n){Wt&&Fo(Wt);const r=Ii("popup"),s=document.createElement("div");s.className="sh3-popup-host",s.dataset.sh3OverlayHost="popup",s.style.position="absolute",s.style.inset="0",s.style.pointerEvents="none",r.appendChild(s);const a=_w(t.anchor),l={},o={close:()=>Fo(l)},c=tv(()=>o.close()),u=o.close;o.close=()=>{c.unregister(),u()};const d=Fe(yw,{target:s,props:{Content:e,contentProps:n??{},anchorRect:a,close:o.close}});return l.host=s,l.frame=d,l.handle=o,Wt=l,queueMicrotask(ww),o}function Sw(){Wt&&Fo(Wt)}const Vo={show:xw,close:Sw};var Ew=I('<div role="status" aria-live="polite"><span class="toast-level svelte-12gwnj0"> </span> <span class="toast-message svelte-12gwnj0"> </span></div>');function Iw(e,t){var n=Ew(),r=p(n),s=p(r,!0);h(r);var a=_(r,2),l=p(a,!0);h(a),h(n),N(()=>{ue(n,1,`toast toast-${t.level??""}`,"svelte-12gwnj0"),j(s,t.level),j(l,t.message)}),K("click",n,function(...o){t.close?.apply(this,o)}),x(e,n)}de(["click"]);const Wa=new Set;let mt=null;function Aw(){if(mt&&mt.isConnected)return mt;const e=Ii("toast");return mt=document.createElement("div"),mt.className="sh3-toast-stack",mt.style.position="absolute",mt.style.right="16px",mt.style.bottom="16px",mt.style.display="flex",mt.style.flexDirection="column-reverse",mt.style.gap="6px",mt.style.pointerEvents="none",e.appendChild(mt),mt}function Uo(e){Wa.has(e)&&(Wa.delete(e),e.timer!==null&&(clearTimeout(e.timer),e.timer=null),Ze(e.instance),e.host.remove())}function Cw(e,t={}){const n=t.level??"info",r=t.duration??3e3,s=Aw(),a=document.createElement("div");a.className="sh3-toast-host",s.appendChild(a);const l={},o={close:()=>Uo(l)},c=Fe(Iw,{target:a,props:{message:e,level:n,close:o.close}});return l.host=a,l.instance=c,l.handle=o,l.timer=Number.isFinite(r)&&r>0?setTimeout(()=>Uo(l),r):null,Wa.add(l),o}function Tw(){for(const e of[...Wa])Uo(e)}const yn={notify:Cw,clear:Tw},fu={w:120,h:80};function Jl(e){if(e.type==="slot")return{...fu};if(e.type==="tabs")return{...fu};const t=e.children.map(Jl);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 vu=32,hu={x:48,y:48};function cv(e,t){if(e.length===0)return{...hu};const n=e[e.length-1],r={x:n.position.x+vu,y:n.position.y+vu};return r.x+120>t.w||r.y+32>t.h?{...hu}:r}let pu=0;function uv(){return pu+=1,`float-${Date.now().toString(36)}-${pu.toString(36)}`}function dv(e){return e.type==="slot"?e.viewId==null:e.type==="tabs"?e.tabs.every(t=>t.viewId==null):e.children.every(dv)}function Rw(e){return e.closest("[data-sh3-overlay-host]")}class Lw extends Map{#e=new Map;#t=H(0);#n=H(0);#s=An||-1;constructor(t){if(super(),t){for(var[n,r]of t)super.set(n,r);this.#n.v=super.size}}#r(t){return An===this.#s?H(t):xt(t)}has(t){var n=this.#e,r=n.get(t);if(r===void 0)if(super.has(t))r=this.#r(0),n.set(t,r);else return i(this.#t),!1;return i(r),!0}forEach(t,n){this.#i(),super.forEach(t,n)}get(t){var n=this.#e,r=n.get(t);if(r===void 0)if(super.has(t))r=this.#r(0),n.set(t,r);else{i(this.#t);return}return i(r),super.get(t)}set(t,n){var r=this.#e,s=r.get(t),a=super.get(t),l=super.set(t,n),o=this.#t;if(s===void 0)s=this.#r(0),r.set(t,s),S(this.#n,super.size),pn(o);else if(a!==n){pn(s);var c=o.reactions===null?null:new Set(o.reactions),u=c===null||!s.reactions?.every(d=>c.has(d));u&&pn(o)}return l}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),pn(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);pn(this.#t),t.clear()}}#i(){i(this.#t);var t=this.#e;if(this.#n.v!==t.size){for(var n of super.keys())if(!t.has(n)){var r=this.#r(0);t.set(n,r)}}for([,r]of this.#e)i(r)}keys(){return i(this.#t),super.keys()}values(){return this.#i(),super.values()}entries(){return this.#i(),super.entries()}[Symbol.iterator](){return this.entries()}get size(){return i(this.#n),super.size}}const Ho=new Lw;function Os(e,t){t?Ho.set(e,!0):Ho.delete(e)}function Mw(e){return Ho.get(e)??!1}let Pw=[],Zl=null,oa=()=>({w:1600,h:900});function Dw(e,t){Zl=e,oa=t}function zw(){Zl=null,oa=()=>({w:1600,h:900})}function _r(){return Zl??Pw}const Ql=new Map;function jw(e){return Ql.get(e)}const Cn=new Map;let mu=0;function Ow(e){return mu+=1,`float:${e}:${mu}`}const Nw={w:600,h:400};function qw(e,t){return{w:Math.max(e.w,t.w),h:Math.max(e.h,t.h)}}function Bw(e,t={}){const n=_r(),r=uv(),s=Ow(e);let a;if(t.dismissable){const d={type:"slot",slotId:s,viewId:e};t.meta&&(d.meta=t.meta),a=d}else{const d=t.title??e,f={slotId:s,viewId:e,label:d};t.meta&&(f.meta=t.meta),a={type:"tabs",tabs:[f],activeTab:0}}const l=Jl(a),o=t.size??qw(Nw,l),c=t.position??cv(n,oa()),u={id:r,content:a,position:c,size:o,title:t.title};if(t.dismissable&&(u.dismissable=!0),t.dismissable&&t.anchor){const d=Rw(t.anchor);d&&Ql.set(r,d)}return n.push(u),r}function Fw(e){const t=_r(),n=uv(),r=e.position??cv(t,oa()),s={id:n,content:e.content,position:r,size:e.size,title:e.title};return t.push(s),n}function Vw(e){const t=_r(),n=t.findIndex(r=>r.id===e);n<0||(t.splice(n,1),Ql.delete(e),Cn.delete(e),Os(e,!1))}function Uw(){return _r().slice()}function fv(e){const t=_r(),n=t.findIndex(s=>s.id===e);if(n<0||n===t.length-1)return;const[r]=t.splice(n,1);t.push(r)}function vv(e){if(Cn.has(e))return;const t=_r().find(r=>r.id===e);if(!t)return;Cn.set(e,{position:{x:t.position.x,y:t.position.y},size:{w:t.size.w,h:t.size.h}}),Os(e,!0);const n=oa();t.position.x=0,t.position.y=0,t.size.w=n.w,t.size.h=n.h,fv(e)}function hv(e){const t=Cn.get(e);if(!t)return;const n=_r().find(r=>r.id===e);if(!n){Cn.delete(e),Os(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,Cn.delete(e),Os(e,!1)}function Hw(e){Cn.has(e)?hv(e):vv(e)}function Kw(e){Cn.has(e)&&(Cn.delete(e),Os(e,!1))}function Yw(e){return Mw(e)}const Re={open:Bw,openWithContent:Fw,close:Vw,list:Uw,focus:fv,maximize:vv,restore:hv,toggleMaximize:Hw,unmaximize:Kw,isMaximized:Yw};let Xa=null;function Ww(e){Xa=e}function Xw(){Xa=null}function $l(){if(!Xa)throw new Error("presetManager: no app attached — bind an AppLayoutBlob first");return Xa}function Gw(){return Object.keys($l().presets)}function Jw(){return $l().activePreset}function Zw(e){const t=$l();if(!(e in t.presets))throw new Error(`presetManager.switch: unknown preset "${e}"`);t.activePreset=e}const Qw={list:Gw,active:Jw,switch:Zw},Pr=new Map,Ta=new Map,Ko=new Set,Wr=new Map;function bu(e){const t=Ta.get(e);if(t)for(const n of t)n();for(const n of Ko)n(e)}function $w(e,t){let n=Wr.get(e);n||(n=new Set,Wr.set(e,n)),n.add(t)}function e1(e,t){const n=Wr.get(e);n&&(n.delete(t),n.size===0&&Wr.delete(e))}function pv(e,t,n){const r=Symbol();let s=Pr.get(e);s||(s=new Map,Pr.set(e,s)),s.set(r,t),bu(e);const a=n?.scope?.slotId;let l=!1;const o=()=>{if(l)return;l=!0,a&&e1(a,o);const c=Pr.get(e);c&&c.delete(r)&&(c.size===0&&Pr.delete(e),bu(e))};return a&&$w(a,o),o}function wr(e){const t=Pr.get(e);return t?Array.from(t.values()):[]}function t1(){return Array.from(Pr.keys())}function Ai(e,t){let n=Ta.get(e);n||(n=new Set,Ta.set(e,n)),n.add(t);let r=!1;return()=>{r||(r=!0,n.delete(t),n.size===0&&Ta.delete(e))}}function n1(e){Ko.add(e);let t=!1;return()=>{t||(t=!0,Ko.delete(e))}}function r1(e){const t=Wr.get(e);if(!t)return;const n=Array.from(t);for(const r of n)r();Wr.delete(e)}const s1=Object.freeze([".md",".txt",".json",".guml",".css",".js",".ts",".tsx",".jsx",".html",".svg",".csv",".yaml",".yml",".xml",".log",".ini",".toml"]);function a1(e){return e.kind?e.kind:e.extension&&s1.includes(e.extension.toLowerCase())?"text":"binary"}const Ra=[];function gu(e){return Ra.push(e),()=>{const t=Ra.indexOf(e);t>=0&&Ra.splice(t,1)}}function i1(e,t=[]){return[...Ra,...t].filter(r=>{try{return r.appliesTo(e)}catch{return!1}}).sort((r,s)=>(s.priority??0)-(r.priority??0))[0]??null}var o1=I("<span> </span>"),l1=I('<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),c1=I("<option> </option>"),u1=I("<button> </button>"),d1=I('<pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre>'),f1=I('<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>'),v1=I('<div class="sh3-conflict-text svelte-iwgja4"><!></div>');function h1(e,t){se(t,!0);let n=H("");Se(()=>{(!i(n)||!t.item.branches.find(m=>m.origin===i(n)))&&S(n,t.item.branches[0]?.origin??"local",!0)});const r=U(()=>t.item.branches.length===2),s=U(()=>i(r)?t.item.branches[0]:t.item.branches.find(m=>m.origin===i(n))??t.item.branches[0]),a=U(()=>i(r)?t.item.branches[1]:t.item.branches.find(m=>m.origin===t.selectedOrigin)??t.item.branches[1]??t.item.branches[0]);function l(m,k){const y=(m??"").split(/\r?\n/),g=(k??"").split(/\r?\n/),C=[],w=Math.max(y.length,g.length);for(let b=0;b<w;b++){const A=y[b],T=g[b];A===T?typeof A=="string"&&C.push({kind:"same",text:A}):(typeof A=="string"&&C.push({kind:"left",text:A}),typeof T=="string"&&C.push({kind:"right",text:T}))}return C}const o=U(()=>!i(s)||!i(a)?[]:l(i(s).content??"",i(a).content??"")),c=U(()=>i(o).filter(m=>m.kind!=="same").length);var u=v1(),d=p(u);{var f=m=>{var k=l1(),y=fe(k),g=p(y);let C;var w=p(g),b=p(w);h(w);var A=_(w,2),T=p(A),L=p(T,!0);h(T),h(A),h(g);var R=_(g,2);let P;var M=p(R),O=p(M);h(M);var E=_(M,2),D=p(E),F=p(D,!0);h(D),h(E),h(R),h(y);var z=_(y,2),V=p(z),G=p(V);h(V);var Z=_(V,2),$=p(Z);he($,21,()=>i(o),pt,(Q,te)=>{var J=o1(),B=p(J);h(J),N(()=>{ue(J,1,`diff-${i(te).kind}`,"svelte-iwgja4"),j(B,`${i(te).kind==="same"?" ":i(te).kind==="left"?"- ":"+ "}${i(te).text??""}
8
- `)}),x(Q,J)}),h($),h(Z),h(z),N(()=>{C=ue(g,1,"sh3-conflict-text-pane svelte-iwgja4",null,C,{selected:i(s).origin===t.selectedOrigin}),j(b,`${i(s).origin??""} · v${i(s).version??""}`),j(L,i(s).content??""),P=ue(R,1,"sh3-conflict-text-pane svelte-iwgja4",null,P,{selected:i(a).origin===t.selectedOrigin}),j(O,`${i(a).origin??""} · v${i(a).version??""}`),j(F,i(a).content??""),j(G,`Line diff (${i(c)??""} difference${i(c)===1?"":"s"})`)}),K("click",g,()=>t.onSelect(i(s).origin)),K("keydown",g,Q=>{(Q.key==="Enter"||Q.key===" ")&&t.onSelect(i(s).origin)}),K("click",R,()=>t.onSelect(i(a).origin)),K("keydown",R,Q=>{(Q.key==="Enter"||Q.key===" ")&&t.onSelect(i(a).origin)}),x(m,k)},v=m=>{var k=f1(),y=p(k),g=p(y),C=_(p(g));he(C,21,()=>t.item.branches,T=>T.origin,(T,L)=>{var R=c1(),P=p(R,!0);h(R);var M={};N(()=>{j(P,i(L).origin),M!==(M=i(L).origin)&&(R.value=(R.__value=i(L).origin)??"")}),x(T,R)}),h(C),h(g),h(y);var w=_(y,2);he(w,21,()=>t.item.branches,T=>T.origin,(T,L)=>{var R=u1();let P;var M=p(R);h(R),N(()=>{P=ue(R,1,"sh3-conflict-text-tab svelte-iwgja4",null,P,{selected:i(L).origin===t.selectedOrigin}),j(M,`${i(L).origin??""} · v${i(L).version??""}`)}),K("click",R,()=>t.onSelect(i(L).origin)),x(T,R)}),h(w);var b=_(w,2);{var A=T=>{var L=d1(),R=p(L),P=p(R,!0);h(R),h(L),N(()=>j(P,i(a).content??"")),x(T,L)};W(b,T=>{i(a)&&T(A)})}h(k),Ms(C,()=>i(n),T=>S(n,T)),x(m,k)};W(d,m=>{i(r)&&i(s)&&i(a)?m(f):m(v,-1)})}h(u),x(e,u),ae()}de(["click","keydown"]);var p1=I("· <code> </code>",1),m1=I('<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>'),b1=I('<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 g1(e,t){se(t,!0);function n(l){return typeof l!="number"?"—":l<1024?`${l} B`:l<1024*1024?`${(l/1024).toFixed(1)} KiB`:`${(l/(1024*1024)).toFixed(2)} MiB`}function r(l){const o=Date.now()-l;return o<6e4?"just now":o<36e5?`${Math.floor(o/6e4)}m ago`:o<864e5?`${Math.floor(o/36e5)}h ago`:new Date(l).toLocaleString()}var s=b1(),a=_(p(s),2);he(a,21,()=>t.item.branches,l=>l.origin,(l,o)=>{var c=m1(),u=p(c);let d;var f=p(u),v=p(f,!0);h(f);var m=_(f,2),k=p(m),y=_(k);{var g=C=>{var w=p1(),b=_(fe(w)),A=p(b,!0);h(b),N(()=>j(A,i(o).hashPreview)),x(C,w)};W(y,C=>{i(o).hashPreview&&C(g)})}h(m),h(u),h(c),N((C,w)=>{d=ue(u,1,"sh3-conflict-meta-row svelte-1nz3djn",null,d,{selected:i(o).origin===t.selectedOrigin}),j(v,i(o).origin),j(k,`v${i(o).version??""} · ${C??""} · ${w??""} `)},[()=>r(i(o).at),()=>n(i(o).sizeBytes)]),K("click",u,()=>t.onSelect(i(o).origin)),x(l,c)}),h(a),h(s),x(e,s),ae()}de(["click"]);const y1=1048576;function _1(e){return typeof e=="number"&&e>y1}const w1={id:"sh3-core.text",priority:1,appliesTo:e=>a1(e)!=="text"?!1:!e.branches.some(t=>_1(t.sizeBytes)),mount(e,t){const n=Fe(h1,{target:e,props:t});return()=>{Ze(n)}}},k1={id:"sh3-core.meta",priority:0,appliesTo:()=>!0,mount(e,t){const n=Fe(g1,{target:e,props:t});return()=>{Ze(n)}}};let yu=!1;function x1(){yu||(yu=!0,gu(w1),gu(k1))}var S1=I('<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 E1(e,t){var n=S1(),r=p(n),s=p(r);h(r);var a=_(r,4),l=p(a);$s(l,!0);var o=_(l,2),c=_(o,2);h(a),h(n),N(()=>j(s,`${t.count??""} conflict${t.count===1?"":"s"} to resolve`)),K("click",l,function(...u){t.onOverwriteMostRecent?.apply(this,u)}),K("click",o,function(...u){t.onResolveIndividually?.apply(this,u)}),K("click",c,function(...u){t.onCancel?.apply(this,u)}),x(e,n)}de(["click"]);var I1=I('<span class="sh3-conflict-detail-counter svelte-pw8iv6"> </span>'),A1=I('<button type="button"><span><!></span> <span class="sh3-conflict-detail-rail-label svelte-pw8iv6"> </span></button>'),C1=I('<aside class="sh3-conflict-detail-rail svelte-pw8iv6"></aside>'),T1=I('<label class="sh3-conflict-detail-branch svelte-pw8iv6"><input type="radio"/> <span> </span></label>'),R1=I('<div class="sh3-conflict-detail-branches svelte-pw8iv6"></div> <div class="sh3-conflict-detail-renderer svelte-pw8iv6"></div>',1),L1=I('<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 M1(e,t){se(t,!0);const n=U(()=>t.items[t.currentIndex]),r=U(()=>i(n)?t.selections[i(n).id]??i(n).branches[0]?.origin??"":""),s=U(()=>i(n)?i1(i(n),t.contributed):null);let a=H(void 0),l=null;Se(()=>{if(i(n),i(s),i(r),l&&(l(),l=null),!i(a)||!i(n)||!i(s))return;const V={item:i(n),selectedOrigin:i(r),onSelect:G=>t.onSelect(i(n).id,G)};return l=i(s).mount(i(a),V),()=>{l&&(l(),l=null)}});function o(){t.currentIndex>0&&t.onNavigate(t.currentIndex-1)}function c(){t.currentIndex<t.items.length-1&&t.onNavigate(t.currentIndex+1)}const u=U(()=>t.items.map(V=>t.skipped[V.id]?"skipped":t.selections[V.id]?"resolved":"pending"));var d=L1(),f=p(d),v=p(f),m=p(v,!0);h(v);var k=_(v,2);{var y=V=>{var G=I1(),Z=p(G);h(G),N(()=>j(Z,`${t.currentIndex+1} / ${t.items.length??""}`)),x(V,G)};W(k,V=>{t.items.length>1&&V(y)})}h(f);var g=_(f,2),C=p(g);{var w=V=>{var G=C1();he(G,23,()=>t.items,Z=>Z.id,(Z,$,Q)=>{var te=A1();let J;var B=p(te),q=p(B);{var X=ge=>{var nt=on("✓");x(ge,nt)},Y=ge=>{var nt=on("⟶");x(ge,nt)},oe=ge=>{var nt=on("·");x(ge,nt)};W(q,ge=>{i(u)[i(Q)]==="resolved"?ge(X):i(u)[i(Q)]==="skipped"?ge(Y,1):ge(oe,-1)})}h(B);var ve=_(B,2),ke=p(ve,!0);h(ve),h(te),N(()=>{J=ue(te,1,"sh3-conflict-detail-rail-item svelte-pw8iv6",null,J,{selected:i(Q)===t.currentIndex}),ue(B,1,`sh3-conflict-detail-rail-state ${i(u)[i(Q)]??""}`,"svelte-pw8iv6"),j(ke,i($).label)}),K("click",te,()=>t.onNavigate(i(Q))),x(Z,te)}),h(G),x(V,G)};W(C,V=>{t.items.length>1&&V(w)})}var b=_(C,2),A=p(b);{var T=V=>{var G=R1(),Z=fe(G);he(Z,21,()=>i(n).branches,Q=>Q.origin,(Q,te)=>{var J=T1(),B=p(J);we(B);var q=_(B,2),X=p(q);h(q),h(J),N(()=>{re(B,"name",`branch-${i(n).id??""}`),Ps(B,i(te).origin),Ul(B,i(r)===i(te).origin),j(X,`${i(te).origin??""} · v${i(te).version??""}`)}),K("change",B,()=>t.onSelect(i(n).id,i(te).origin)),x(Q,J)}),h(Z);var $=_(Z,2);je($,Q=>S(a,Q),()=>i(a)),x(V,G)};W(A,V=>{i(n)&&V(T)})}h(b),h(g);var L=_(g,2),R=p(L),P=p(R),M=_(P,2),O=p(M,!0);h(M);var E=_(M,2);h(R);var D=_(R,2),F=p(D),z=_(F,2);h(D),h(L),h(d),N(()=>{j(m,t.title),P.disabled=t.currentIndex===0,j(O,i(n)&&t.skipped[i(n).id]?"Unskip":"Skip"),E.disabled=t.currentIndex>=t.items.length-1}),K("click",P,o),K("click",M,()=>i(n)&&t.onToggleSkip(i(n).id)),K("click",E,c),K("click",F,function(...V){t.onCancel?.apply(this,V)}),K("click",z,function(...V){t.onDone?.apply(this,V)}),x(e,d),ae()}de(["click","change"]);function mv(e,t){return t.at-e.at}function P1(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(mv)[0]}}function D1(e,t){se(t,!0);const n=t.items.length>=2||t.requirePrompt;let r=H(ce(n?"prompt":"detail")),s=H(ce(Object.fromEntries(t.items.map(b=>{const A=P1(b.branches,t.mostRecentBy)?.origin??b.branches[0]?.origin??"";return[b.id,A]})))),a=H(ce({})),l=H(0),o=!1;Bl(()=>{o||(o=!0,t.onCancel())});function c(){if(o)return;o=!0;const b=[],A=[];for(const T of t.items){if(i(a)[T.id]){A.push(T.id);continue}const L=i(s)[T.id],R=T.branches.find(P=>P.origin===L);R&&b.push({itemId:T.id,chosen:R,meta:T.meta})}t.onResolve(b,A),t.close()}function u(){o||(o=!0,t.onCancel(),t.close())}function d(){c()}function f(){S(r,"detail")}function v(b,A){if(S(s,{...i(s),[b]:A},!0),i(a)[b]){const T={...i(a)};delete T[b],S(a,T,!0)}}function m(b){S(a,{...i(a),[b]:!i(a)[b]},!0)}function k(b){S(l,b,!0)}var y=Pe(),g=fe(y);{var C=b=>{E1(b,{get count(){return t.items.length},onOverwriteMostRecent:d,onResolveIndividually:f,onCancel:u})},w=b=>{M1(b,{get items(){return t.items},get selections(){return i(s)},get skipped(){return i(a)},get currentIndex(){return i(l)},get title(){return t.title},get contributed(){return t.contributed},onSelect:v,onNavigate:k,onToggleSkip:m,onDone:c,onCancel:u})};W(g,b=>{i(r)==="prompt"?b(C):b(w,-1)})}x(e,y),ae()}const bv="sh3-core.conflictRenderer";class gv extends Error{constructor(t){super(t),this.name="ConflictPermissionError"}}class z1 extends Error{constructor(){super("Caller shard deactivated while conflict session was active"),this.name="ConflictSessionOrphanedError"}}function j1(){try{return wr(bv)}catch{return[]}}function yv(e,t={}){return x1(),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??mv,a=t.requirePrompt??!1,l=j1();let o=!1;const d={items:e,title:r,mostRecentBy:s,requirePrompt:a,contributed:l,onResolve:(f,v)=>{o||(o=!0,n({status:"resolved",choices:f,skipped:v}))},onCancel:()=>{o||(o=!0,n({status:"cancelled"}))}};Qt.open(D1,d,{boxStyle:"max-width: none; min-width: 360px; padding: 0;"})})}function O1(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 N1(e,t){const n=e.browse;if(!n?.statusFrom||!n?.readBranchFrom||!n?.resolveConflictFrom)throw new gv(`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 q1(e){const t=e.lastIndexOf(".");if(t<0)return;const n=e.lastIndexOf("/");if(!(t<n))return e.slice(t)}async function B1(e,t,n={}){const r=e.shardId,s=t.shardId===r?O1(e):N1(e,t.shardId),a=[];for(const d of t.paths){const f=await s.status(d);f&&f.syncState==="conflict"&&f.branches&&f.branches.length>0&&a.push({path:d,status:f})}if(a.length===0)return{status:"resolved",resolved:[],failed:[],skipped:[]};const l=[];for(const{path:d,status:f}of a){const v=q1(d),m=[];for(const k of f.branches??[]){const y=await s.readBranch(d,k.origin).catch(()=>null);m.push({origin:k.origin,version:k.version,at:k.at,content:y??void 0,sizeBytes:y?new TextEncoder().encode(y).length:void 0})}l.push({id:d,label:d,extension:v,branches:m,meta:{shardId:t.shardId,path:d,docVersion:f.version}})}const o=await yv(l,n);if(o.status==="cancelled")return{status:"cancelled"};const c=[],u=[];for(const d of o.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:o.skipped}}const F1={resolve:yv,resolveDocuments:B1},_v="sh3.color-picker",V1={id:"sh3.color-picker.native",priority:0,open:({initial:e})=>new Promise(t=>{const n=document.createElement("input");n.type="color",e&&/^#[0-9a-f]{6}$/i.test(e)&&(n.value=e);let r=!1;const s=a=>{r||(r=!0,n.remove(),t(a))};n.addEventListener("change",()=>s(n.value)),n.addEventListener("cancel",()=>s(null)),n.style.position="fixed",n.style.left="-9999px",document.body.appendChild(n),n.click()})};function U1(e={}){return[...wr(_v),V1].sort((r,s)=>(s.priority??0)-(r.priority??0))[0].open(e)}const H1={pick:U1};let $n=null;function K1(e){$n=e}async function Or(e){return $n?{...$n.bindings[e]??{}}:{}}async function _u(e,t,n){if(!$n)return;const r={...$n.bindings[e]??{}};n===void 0?delete r[t]:r[t]=n,$n.bindings={...$n.bindings,[e]:r}}const ec="sh3.actions",fo=new Set;function Y1(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.`),()=>{};fo.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.`),fo.add(e.id);const r=pv(ec,{action:e,ownerShardId:t});let s=!1;return()=>{s||(s=!0,r(),fo.delete(e.id))}}function Je(){return wr(ec)}function W1(e){return Ai(ec,e)}function Ot(e){return typeof e.label=="function"?e.label():e.label}const X1=["Ctrl","Alt","Shift","Meta"],wu={control:"Ctrl",ctrl:"Ctrl",alt:"Alt",option:"Alt",shift:"Shift",meta:"Meta",cmd:"Meta",command:"Meta",super:"Meta",win:"Meta"},G1=new Set(["Control","Alt","Shift","Meta"]);function wv(e){return e.length===1?e.toUpperCase():e}function tc(e){if(!e)throw new Error("Empty shortcut");const t=e.split("+");if(t.some(l=>l.trim()===""))throw new Error(`Malformed shortcut: "${e}"`);const n=t.map(l=>l.trim());if(n.length===0)throw new Error(`Malformed shortcut: "${e}"`);const r=new Set;let s;for(const l of n){const o=l.toLowerCase();if(o in wu)r.add(wu[o]);else{if(s!==void 0)throw new Error(`Multiple keys in shortcut: "${e}"`);s=wv(l)}}if(s===void 0)throw new Error(`No key in shortcut: "${e}"`);return[...X1.filter(l=>r.has(l)),s].join("+")}function kv(e,t){if(!e.toLowerCase().includes("mod"))return e;const n=e.split("+").map(r=>r.toLowerCase()==="mod"?t==="mac"?"Meta":"Ctrl":r);return tc(n.join("+"))}function J1(e){if(G1.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=wv(e.key);return[...t,n].join("+")}function Z1(){return typeof navigator>"u"?"other":/Mac|iPhone|iPad|iPod/i.test(navigator.platform)?"mac":"other"}function la(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?null:tc(r)}return e.defaultShortcut?kv(e.defaultShortcut,n):null}function Q1(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?{shortcut:null,source:"disabled"}:{shortcut:tc(r),source:"user"}}return e.defaultShortcut?{shortcut:kv(e.defaultShortcut,n),source:"default"}:{shortcut:null,source:"none"}}function Ci(e){return e==="home"?"home":e==="app"?"app":typeof e=="string"&&e.startsWith("view:")?"view":typeof e=="string"&&e.startsWith("focus:")?"focus":"element"}function nc(e){return Array.isArray(e)?e:[e]}function xv(e){return e==="home"||e==="app"?null:typeof e=="string"?e:e.element}function ca(e,t,n){const r=nc(e),s={};for(const a of r){const l=Ci(a);(s[l]??=[]).push(a)}for(const a of Ti){const l=s[a];if(l){for(const o of l)if(Ns(o,t,n))return o}}return null}function $1(e,t){return typeof e=="string"||typeof t=="string"?e===t:e.element===t.element}function Sv(e){return typeof e=="string"?e:`element:${e.element}`}function ek(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 Ti=["element","focus","view","app","home"];function Ns(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 tk(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=la(r.action,t.bindings,t.platform);if(s)for(const a of nc(r.action.scope)){if(!Ns(a,t,r.ownerShardId))continue;const l=Ci(a),o=n[l].get(s);if(o&&o!==r.action.id){console.warn(`[sh3] Shortcut "${s}" in tier "${l}" is bound to both "${o}" and "${r.action.id}"; first-registered wins. Users can rebind to resolve.`);continue}n[l].set(s,r.action.id)}}return n}function nk(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 rk(e){return e instanceof Element?e.closest("[data-sh3-passthrough-modifiers]")!==null:!1}function sk(e){return/(?:^|\+)(?:Ctrl|Alt|Meta)\+/.test(e)}function ak(e){const t=tk(e.entries,e.state),n=new Map(e.entries.map(r=>[r.action.id,r]));for(const r of Ti){const s=t[r].get(e.shortcut);if(!s)continue;const a=n.get(s);if(a)return nk(e.target)&&!a.action.allowInInputs&&!(rk(e.target)&&sk(e.shortcut))?null:(e.runAction(s,{action:{id:a.action.id,label:Ot(a.action)},appId:e.state.activeAppId,viewId:e.state.focusedViewId??void 0,selection:e.state.selection??void 0,invokedVia:"keyboard",dispatch:e.dispatch??(()=>{})}),s)}return null}function ik(e){const t=e.action.disabled;return typeof t=="function"?!!t():!!t}function ok(e){const t=e.action.scope;return Array.isArray(t)?t[0]:t}function rc(e,t){const n={element:[],focus:[],view:[],app:[],home:[]},r=[],s=new Set;for(const a of e){if(s.has(a.action.id))continue;s.add(a.action.id);const{shortcut:l,source:o}=Q1(a.action,t.bindings,t.platform),c=ca(a.action.scope,t,a.ownerShardId),u=typeof a.action.run=="function",d=c!==null&&u&&!ik(a),f=d?c:ok(a),v={id:a.action.id,label:Ot(a.action),effectiveShortcut:l,bindingSource:o,scope:f,scopeBadge:xv(f),group:a.action.group,icon:a.action.icon,ownerShardId:a.ownerShardId,paletteItem:a.action.paletteItem!==!1,contextItem:a.action.contextItem!==!1,submenu:a.action.submenu,submenuOf:a.action.submenuOf,active:d};d?n[Ci(c)].push(v):r.push(v)}return[...Ti.flatMap(a=>n[a]),...r]}function lk(e,t){return rc(e,t).filter(n=>n.active)}let tn=H(null);function ua(){return i(tn)}function Ri(e){return{get(){return i(tn)},set(t){S(tn,{type:t.type,ref:t.ref,ownerShardId:e},!0)},clear(){if(i(tn)){if(i(tn).ownerShardId!==e){console.warn(`[sh3] Shard "${e}" tried to clear selection owned by "${i(tn).ownerShardId}". Ignoring.`);return}S(tn,null)}}}}function Ev(e){i(tn)&&i(tn).ownerShardId===e&&S(tn,null)}function ck(){S(tn,null)}const Ga=new Map,sc=new Map,Iv=new Set;function uk(e){Iv.add(e)}function dk(e,t,n){if(Ga.has(e))throw new Error(`View "${e}" is already registered`);Ga.set(e,t),n!==void 0&&sc.set(e,n);for(const r of Iv)r(e,t)}function Av(e){return Ga.get(e)}function ku(e){return sc.get(e)}function Cv(e){Ga.delete(e),sc.delete(e)}const Xr=new Map;function fk(e,t,n){if(Xr.has(e))throw new Error(`Verb "${e}" is already registered`);Xr.set(e,{verb:t,shardId:n})}function Ja(e){return Xr.get(e)?.verb}function Tv(e){Xr.delete(e)}function ac(){return Array.from(Xr.values()).map(e=>e.verb).sort((e,t)=>e.name.localeCompare(t.name))}function Rv(){return Array.from(Xr.values()).map(e=>({...e}))}function Gr(e,t){const n=(r,s)=>{if(r.type==="tabs"){const a=r.tabs.findIndex(l=>l.slotId===t);if(a>=0)return{tabsNode:r,tabsPath:s,tabIndex:a,entry:r.tabs[a]}}else if(r.type==="split")for(let a=0;a<r.children.length;a++){const l=n(r.children[a],[...s,a]);if(l)return l}return null};return n(e,[])}function ic(e,t){if(Yo(e.docked,t))return{kind:"docked"};for(const n of e.floats)if(Yo(n.content,t))return{kind:"float",floatId:n.id};return null}function Yo(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(Yo(n,t))return!0;return!1}function Li(e,t){const n=Gr(e,t);if(!n)return null;const{tabsNode:r,tabIndex:s,entry:a}=n;return r.tabs.splice(s,1),r.tabs.length===0?r.activeTab=0:s<r.activeTab?r.activeTab-=1:r.activeTab>=r.tabs.length&&(r.activeTab=r.tabs.length-1),a}function vk(e,t,n){const r=Math.max(0,Math.min(n,e.tabs.length));e.tabs.splice(r,0,t),e.activeTab=r}function hk(e,t,n){const r=e.tabs.slice(),[s]=r.splice(t,1),a=Math.max(0,Math.min(n,r.length));r.splice(a,0,s),e.tabs=r,e.activeTab=a}function xu(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 pk(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 Lv(e,t,n,r){const s=Jr(e,t);if(!s||Mv(e,t))return;if(t.length===0){const u=pk(s),d=xu(u,n,r),f=e;delete f.tabs,delete f.activeTab,delete f.slotId,delete f.viewId,delete f.direction,delete f.sizes,delete f.pinned,delete f.collapsed,delete f.children,Object.assign(f,d);return}const a=xu(s,n,r),l=t.slice(0,-1),o=t[t.length-1],c=Jr(e,l);!c||c.type!=="split"||(c.children[o]=a)}function Jr(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 Mv(e,t){if(t.length===0)return!1;const n=Jr(e,t.slice(0,-1));return!n||n.type!=="split"?!1:n.fixed?.[t[t.length-1]]===!0}function Dr(e){let t=!0;for(;t;)t=Pv(e,null,0)}function Pv(e,t,n){if(e.type==="split"){let r=!1;for(let s=0;s<e.children.length;s++)Pv(e.children[s],e,s)&&(r=!0);for(let s=e.children.length-1;s>=0;s--){const a=e.children[s];a.type==="tabs"&&a.tabs.length===0&&!a.persistent&&!e.fixed?.[s]&&(e.children.splice(s,1),e.sizes.splice(s,1),e.pinned&&e.pinned.splice(s,1),e.collapsed&&e.collapsed.splice(s,1),e.fixed&&e.fixed.splice(s,1),r=!0)}if(e.children.length<=1&&t)return e.children.length===1?t.children[n]=e.children[0]:(t.children.splice(n,1),t.sizes.splice(n,1),t.pinned&&t.pinned.splice(n,1),t.collapsed&&t.collapsed.splice(n,1)),!0;if(e.children.length===1&&!t){const s=e.children[0],a=e;return delete a.direction,delete a.sizes,delete a.pinned,delete a.collapsed,delete a.children,Object.assign(a,s),!0}return r}return e.type==="tabs",!1}const Tn=new Map,La=new Set;function mk(e,t){for(const[n,r]of Tn.entries()){if(r.viewId!==e||r.handle!==void 0)continue;const s={slotId:n,viewId:e,label:r.label,meta:r.meta,setDirty(a){Mi[n]=a},location(){return ic(Nt(),n)}};queueMicrotask(()=>{if(Tn.has(n)&&r.handle===void 0&&(r.handle=t.mount(r.host,s),(r.handle?.closable||n.startsWith("float:"))&&(Pi[n]=!0),r.handle?.onResize)){const a=r.handle.onResize.bind(r.handle);r.resizeObserver=new ResizeObserver(l=>{for(const o of l){const c=o.contentRect;a(Math.round(c.width),Math.round(c.height))}}),r.resizeObserver.observe(r.host)}})}}uk(mk);const Mi=ce({}),Pi=ce({});function bk(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",Sv(`focus:${t}`))),s.style.position="absolute",s.style.inset="0",s.style.minWidth="0",s.style.minHeight="0";let a=!1;const l={host:s,handle:void 0,viewId:t,label:n,meta:r,refcount:0,resizeObserver:void 0,cancelPendingMount:()=>{a=!0}};return queueMicrotask(()=>{if(a)return;const o=t?Av(t):void 0,c={slotId:e,viewId:t??"",label:n,meta:r,setDirty(u){Mi[e]=u},location(){return ic(Nt(),e)}};if(l.handle=o?.mount(s,c),(l.handle?.closable||e.startsWith("float:"))&&(Pi[e]=!0),l.handle?.onResize){const u=l.handle.onResize.bind(l.handle);l.resizeObserver=new ResizeObserver(d=>{for(const f of d){const v=f.contentRect;u(Math.round(v.width),Math.round(v.height))}}),l.resizeObserver.observe(s)}}),l}function oc(e,t,n,r){La.delete(e);let s=Tn.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",Sv(`focus:${t}`))):(s.host.removeAttribute("data-sh3-view"),s.host.removeAttribute("data-sh3-scope"))):(s=bk(e,t,n,r),Tn.set(e,s)),s.refcount++,s.host}function lc(e,t){const n=Tn.get(e);if(n){if(n.refcount--,n.refcount>0){t&&n.host.parentNode===t&&n.host.remove();return}La.add(e),queueMicrotask(()=>{if(!La.has(e))return;La.delete(e);const r=Tn.get(e);!r||r.refcount>0||(r.resizeObserver?.disconnect(),r1(e),r.handle?.unmount(),r.cancelPendingMount(),r.host.remove(),Tn.delete(e),delete Mi[e],delete Pi[e])})}}function vo(e){const t=Tn.get(e);if(t)return{host:t.host,refcount:t.refcount}}function Dv(e){const t=Wo.get(e);return t||Tn.get(e)?.handle}function gk(e){return Mi[e]??!1}function yk(e){return Wo.has(e)?!!Wo.get(e).closable:Pi[e]??!1}const Wo=new Map;function zv(e){if(!e||typeof e!="object")return!1;const t=e.type;return t==="split"||t==="tabs"||t==="slot"}function _k(e){if(!e||typeof e!="object")return!1;const t=e;return zv(t.docked)&&Array.isArray(t.floats)}function wk(e){return{docked:e,floats:[]}}function kk(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 xk(e,t){return t==="compact"&&e.variants.compact?e.variants.compact:e.variants.default}function jv(e){if(Array.isArray(e))return e.map(kk);if(_k(e))return[{name:"default",variants:{default:e}}];if(zv(e))return[{name:"default",variants:{default:wk(e)}}];throw new Error("normalizeInitialLayout: input is not a LayoutNode, LayoutTree, or LayoutPreset[]")}function Sk(e){return e.coarsePointer&&e.noHover||e.width<720||e.coarsePointer&&e.dpr>=2&&e.width<1100?"compact":"desktop"}let _s=H(null);const ws=new Set;function Ov(){if(typeof window>"u")return{class:"desktop",width:1920,height:1080,coarsePointer:!1,noHover:!1,dpr:1};const e=window.innerWidth,t=window.innerHeight,n=window.matchMedia("(pointer: coarse)").matches,r=window.matchMedia("(hover: none)").matches,s=window.devicePixelRatio;return{class:i(_s)??Sk({width:e,coarsePointer:n,noHover:r,dpr:s}),width:e,height:t,coarsePointer:n,noHover:r,dpr:s}}let Za=H(ce(Ov()));function ks(){const e=Ov(),t=i(Za).class;if(S(Za,e,!0),e.class!==t)for(const n of ws)n(e)}typeof window<"u"&&(window.addEventListener("resize",ks),window.matchMedia("(pointer: coarse)").addEventListener("change",ks),window.matchMedia("(hover: none)").addEventListener("change",ks),typeof screen<"u"&&screen.orientation&&screen.orientation.addEventListener("change",ks));const er={get current(){return i(Za)},subscribe(e){return ws.add(e),()=>{ws.delete(e)}},override(e){if(i(_s)!==e){S(_s,e,!0),ks();for(const t of ws)t(i(Za))}},get pinned(){return i(_s)},__reset(){S(_s,null),ws.clear()}};function Su(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 cc(e){const t=Su(e.docked);for(const n of e.floats)t.push(...Su(n.content));return t}function Nv(){return{left:{open:!1,activeSlotId:null},right:{open:!1,activeSlotId:null},top:{open:!1,activeSlotId:null}}}const en=ce(Nv());let Qa=null;function ba(){Qa&&Qa(en)}const Lt={get state(){return en},open(e){en[e].open=!0,ba()},close(e){en[e].open=!1,ba()},toggle(e){en[e].open=!en[e].open,ba()},activate(e,t){en[e].activeSlotId=t,ba()},__setWriteThrough(e){Qa=e},__hydrate(e){for(const t of["left","right","top"])en[t].open=e[t].open,en[t].activeSlotId=e[t].activeSlotId},__reset(){Qa=null;const e=Nv();for(const t of["left","right","top"])en[t].open=e[t].open,en[t].activeSlotId=e[t].activeSlotId}};Bo("workspace","__shell__");const Ek={type:"slot",slotId:"sh3core.home",viewId:"sh3core:home"},Xo=ce({docked:Ek,floats:[]});let Xe=H(null),da=H("home");function Ik(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 Ak(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 Ck(e){if(i(Xe))throw new Error(`Layout manager cannot attach app "${e.manifest.id}": app "${i(Xe).appId}" is still attached`);const t=`__sh3core__:app:${e.manifest.id}`,n=jv(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=G_("workspace",t),a=Ik(s);(a&&a.layoutVersion!==e.manifest.layoutVersion||s&&!a)&&Bo("workspace",t);const o=Ei(t,{workspace:r}).workspace;S(Xe,{appId:e.manifest.id,proxy:o,heldSlotIds:[]},!0),Ww(o),Tk(o)}function Tk(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();Lt.__hydrate(r[t].compact),Lt.__setWriteThrough(s=>{const a=n();a[t].compact={left:{...s.left},right:{...s.right},top:{...s.top}}})}function Rk(){if(!i(Xe))throw new Error("acquireAppSlotHolds: no app attached");if(i(Xe).heldSlotIds.length>0)return;const e=Ak(i(Xe).proxy),t=cc(e);for(const{slotId:n,viewId:r,label:s,meta:a}of t)oc(n,r,s,a),i(Xe).heldSlotIds.push(n)}function Lk(){if(!i(Xe))throw new Error("resetActivePresetToDefault: no app attached");const e=wn(i(Xe).appId);if(!e)throw new Error(`resetActivePresetToDefault: attached app "${i(Xe).appId}" not in registry`);const t=jv(e.initialLayout),n=i(Xe).proxy,r=n.activePreset;let s=t.find(o=>o.name===r);s||(s=t[0],n.activePreset=s.name);for(const o of i(Xe).heldSlotIds)lc(o);i(Xe).heldSlotIds=[];const a=structuredClone(s.variants.default);n.presets[n.activePreset].default=a;const l=cc(a);for(const{slotId:o,viewId:c,label:u,meta:d}of l)oc(o,c,u,d),i(Xe).heldSlotIds.push(o)}function qv(){if(i(Xe)){Xw(),Lt.__setWriteThrough(null),Lt.__hydrate({left:{open:!1,activeSlotId:null},right:{open:!1,activeSlotId:null},top:{open:!1,activeSlotId:null}});for(const e of i(Xe).heldSlotIds)lc(e);S(Xe,null)}}function Bv(){S(da,"home")}function Eu(){if(!i(Xe))throw new Error("Cannot switchToApp: no app is attached");S(da,"app")}const Ma=U(()=>{if(i(da)==="app"&&i(Xe)){const e=i(Xe).proxy,t=e.activePreset,n=e.presets[t];if(!n)throw new Error(`AppLayoutBlob active preset "${t}" not found in presets map`);return xk({variants:n},er.current.class)}return Xo});function Nt(){return i(Ma)}function uc(){return i(da)}const Jt={get root(){return i(Ma).docked},get tree(){return i(Ma)},get floats(){return i(Ma).floats}};function Mk(e){Xo.docked=e,Xo.floats=[],S(da,"home")}let Fv=H(null),Vv=H(ce(new Set)),Pa=H(ce(new Set)),Uv=H(ce(new Set)),Hv=H(null),Kv=H(ce({}));const Pk=Z1(),Go=new Set;function os(){for(const e of Go)try{e()}catch(t){console.error("[sh3] onActiveChange listener threw",t)}}function Dk(e){return Go.add(e),()=>{Go.delete(e)}}function zk(){os()}function $a(e,t){S(Fv,e,!0),S(Vv,new Set(t),!0),os()}function jk(){const e=cc(Jt.tree),t=new Set;for(const n of e)n.viewId!==null&&t.add(n.viewId);S(Uv,t,!0),os()}function Yv(e){S(Hv,e,!0),os()}function qs(e){S(Kv,{...e},!0),os()}function wt(){return{activeAppId:i(Fv),activeAppRequiredShards:i(Vv),autostartShards:i(Pa),mountedViewIds:i(Uv),focusedViewId:i(Hv),selection:ua(),bindings:i(Kv),platform:Pk}}function Wv(e){i(Pa).has(e)||(S(Pa,new Set([...i(Pa),e]),!0),os())}var Ok=I('<div class="sh3-ctx-sep svelte-1667pfa" role="separator"></div>'),Nk=I('<span class="sh3-ctx-chevron svelte-1667pfa">▸</span>'),qk=I('<span class="sh3-ctx-shortcut svelte-1667pfa"> </span>'),Bk=I('<button role="menuitem"><span class="sh3-ctx-check svelte-1667pfa"> </span> <span class="sh3-ctx-label svelte-1667pfa"> </span> <!></button>'),Fk=I("<!> <!>",1),Vk=I('<div class="sh3-context-menu svelte-1667pfa" role="menu" tabindex="0"></div>');function ei(e,t){se(t,!0);const n=U(()=>t.sections.flatMap(c=>c.items));let r=H(0);function s(c,u){if(i(n).length===0)return 0;let d=c;for(let f=0;f<i(n).length;f++)if(d=(d+u+i(n).length)%i(n).length,!i(n)[d].disabled)return d;return c}function a(c){if(c.key==="ArrowDown")S(r,s(i(r),1),!0),c.preventDefault();else if(c.key==="ArrowUp")S(r,s(i(r),-1),!0),c.preventDefault();else if(c.key==="Enter"){const u=i(n)[i(r)];u&&!u.disabled&&(t.onInvoke(u.id),u.submenu||t.onDismiss()),c.preventDefault()}else if(c.key==="Escape")t.onDismiss(),c.preventDefault();else if(c.key.length===1){const u=c.key.toLowerCase(),d=(i(r)+1)%i(n).length;for(let f=0;f<i(n).length;f++){const v=(d+f)%i(n).length,m=i(n)[v];if(!m.disabled&&m.label.toLowerCase().startsWith(u)){S(r,v);break}}}}function l(c){c.disabled||(t.onInvoke(c.id),c.submenu||t.onDismiss())}var o=Vk();$s(o,!0),he(o,23,()=>t.sections,c=>c.id,(c,u,d)=>{var f=Fk(),v=fe(f);{var m=y=>{var g=Ok();x(y,g)};W(v,y=>{i(d)>0&&y(m)})}var k=_(v,2);he(k,17,()=>i(u).items,y=>y.id,(y,g)=>{const C=U(()=>i(n).indexOf(i(g)));var w=Bk();let b;var A=p(w),T=p(A,!0);h(A);var L=_(A,2),R=p(L,!0);h(L);var P=_(L,2);{var M=E=>{var D=Nk();x(E,D)},O=E=>{var D=qk(),F=p(D,!0);h(D),N(()=>j(F,i(g).shortcut)),x(E,D)};W(P,E=>{i(g).submenu?E(M):i(g).shortcut&&E(O,1)})}h(w),N(()=>{b=ue(w,1,"sh3-ctx-item svelte-1667pfa",null,b,{"sh3-ctx-active":i(C)===i(r),"sh3-ctx-disabled":i(g).disabled}),re(w,"aria-disabled",i(g).disabled||void 0),j(T,i(g).checked?"✓":""),j(R,i(g).label)}),De("pointerenter",w,()=>{i(g).disabled||S(r,i(C),!0)}),K("click",w,()=>l(i(g))),x(y,w)}),x(c,f)}),h(o),K("keydown",o,a),x(e,o),ae()}de(["keydown","click"]);function Xv(e,t){se(t,!0);const n=U(()=>t.model.tiers.map(r=>({id:`tier:${r.tier}`,items:r.items.map(s=>({...s,icon:void 0}))})));ei(e,{get sections(){return i(n)},get onInvoke(){return t.onInvoke},get onDismiss(){return t.onClose}}),ae()}function Iu(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function Gv(e,t){return{id:e.action.id,label:Ot(e.action),shortcut:la(e.action,t.bindings,t.platform),group:e.action.group??"",icon:e.action.icon,checked:Iu(e.action.checked),disabled:Iu(e.action.disabled),submenu:e.action.submenu===!0}}function Jv(e,t,n,r){return nc(e.scope).some(a=>$1(a,n))?n==="app"||n==="home"||typeof n=="object"&&"element"in n?Ns(n,r,t):!0:!1}function Zv(e,t,n){const r={element:[],focus:[],view:[],app:[],home:[]},s=new Set;for(const a of e){if(!a.action.contextItem||a.action.submenuOf!==void 0||s.has(a.action.id)||!Jv(a.action,a.ownerShardId,n,t))continue;const l=ca(a.action.scope,t,a.ownerShardId)??n;s.add(a.action.id),r[Ci(l)].push(Gv(a,t))}return{tiers:Ti.map(a=>({tier:a,items:r[a]})).filter(a=>a.items.length>0)}}function Uk(e,t,n,r){const s=[],a=new Set;for(const l of e)l.action.submenuOf===n&&(a.has(l.action.id)||Jv(l.action,l.ownerShardId,r,t)&&(a.add(l.action.id),s.push(Gv(l,t))));return s}function Hk(e,t){if(!t)return 0;const n=e.toLowerCase(),r=t.toLowerCase();let s=0,a=0,l=0,o=0,c=-2;for(;s<n.length&&a<r.length;){if(n[s]===r[a]){const u=s===0?5:0,d=s===c+1?++o:o=1;l+=1+u+d,c=s,a++}else o=0;s++}return a===r.length?l:null}function Kk(e,t,n){const r=[];for(const a of e){if(t===""&&a.submenuOf!==void 0)continue;const l=Hk(a.label,t);l!==null&&r.push({...a,score:l})}const s=new Map;return n.forEach((a,l)=>s.set(a,n.length-l)),r.sort((a,l)=>{if(a.score!==l.score)return l.score-a.score;const o=s.get(a.id)??0;return(s.get(l.id)??0)-o}),r}var Yk=I('<span class="sh3-palette-badge svelte-1qdcgk6"> </span>'),Wk=I('<span class="sh3-palette-shortcut svelte-1qdcgk6"> </span>'),Xk=I('<button role="option"><span class="sh3-palette-label svelte-1qdcgk6"> </span> <!> <!></button>'),Gk=I('<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 Jk(e,t){se(t,!0);let n=ee(t,"prefill",3,""),r=H(ce(n())),s=H(0);const a=U(()=>Kk(t.candidates,i(r),t.recency));Se(()=>{i(s)>=i(a).length&&S(s,0)});function l(d){d.key==="ArrowDown"?(S(s,Math.min(i(s)+1,Math.max(0,i(a).length-1)),!0),d.preventDefault()):d.key==="ArrowUp"?(S(s,Math.max(i(s)-1,0),!0),d.preventDefault()):d.key==="Enter"?(i(a)[i(s)]&&(t.onInvoke(i(a)[i(s)].id),t.onClose()),d.preventDefault()):d.key==="Escape"&&(t.onClose(),d.preventDefault())}var o=Gk(),c=p(o);we(c);var u=_(c,2);he(u,23,()=>i(a),d=>d.id,(d,f,v)=>{var m=Xk();let k;var y=p(m),g=p(y,!0);h(y);var C=_(y,2);{var w=T=>{var L=Yk(),R=p(L);h(L),N(()=>j(R,`[${i(f).scopeBadge??""}]`)),x(T,L)};W(C,T=>{i(f).scopeBadge&&T(w)})}var b=_(C,2);{var A=T=>{var L=Wk(),R=p(L,!0);h(L),N(()=>j(R,i(f).shortcut)),x(T,L)};W(b,T=>{i(f).shortcut&&T(A)})}h(m),N(()=>{k=ue(m,1,"sh3-palette-item svelte-1qdcgk6",null,k,{"sh3-palette-active":i(v)===i(s)}),re(m,"aria-selected",i(v)===i(s)),j(g,i(f).label)}),De("pointerenter",m,()=>S(s,i(v),!0)),K("click",m,()=>{t.onInvoke(i(f).id),t.onClose()}),x(d,m)}),h(u),h(o),K("keydown",o,l),Ae(c,()=>i(r),d=>S(r,d)),x(e,o),ae()}de(["keydown","click"]);function Zk(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function Qk(e,t,n={}){const r=[],s=new Set,a=n.filter?.submenuOf;for(const l of e){if(l.action.paletteItem===!1||Zk(l.action.disabled)||a!==void 0&&l.action.submenuOf!==a||s.has(l.action.id))continue;const o=ca(l.action.scope,t,l.ownerShardId);o&&(s.add(l.action.id),r.push({id:l.action.id,label:Ot(l.action),shortcut:la(l.action,t.bindings,t.platform),scopeBadge:xv(o),submenu:l.action.submenu===!0,submenuOf:a!==void 0?void 0:l.action.submenuOf}))}return r}let Au=!1;function dc(e){return e?e.closest("[data-sh3-view]")?.getAttribute("data-sh3-view")??null:null}function Qv(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=ek(n.getAttribute("data-sh3-scope")??"");if(s&&!(typeof s=="object"&&"element"in s&&!Ns(s,e.state)))return s;const a=n.parentElement;n=a?a.closest("[data-sh3-scope]"):null}const r=dc(t);if(r)return`focus:${r}`}return e.state.activeAppId?"app":"home"}function $k(e,t){const n=Je().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 $v(e,t){const n=Je(),r=n.find(o=>o.action.id===e);if(!r)return Promise.reject(new Error(`action "${e}" not registered`));const s=wt(),a=rc(n,s).find(o=>o.id===e);if(!a||!a.active)return r.action.submenu===!0&&typeof r.action.run!="function"?Promise.reject(new Error(`action "${e}" is a submenu parent — list children with listActions({ submenuOf: "${e}" })`)):Promise.reject(new Error(`action "${e}" is not active in current scope`));const l=r.action.run;try{const o=l({action:{id:r.action.id,label:Ot(r.action)},appId:s.activeAppId,viewId:s.focusedViewId??void 0,selection:s.selection??void 0,invokedVia:"programmatic",dispatch:ls});return Promise.resolve(o).then(()=>{})}catch(o){return Promise.reject(o)}}function ls(e){$v(e).catch(t=>{console.error(`[sh3] ctx.dispatch("${e}"):`,t)})}function e0(e){const t=dc(e.target);Yv(t)}function t0(e){queueMicrotask(()=>{const t=dc(document.activeElement);Yv(t)})}function n0(e){return e instanceof Element?e.closest('[data-sh3-context-menu="native"]')!==null:!1}function eh(e,t,n,r){const s=document.querySelector(".sh3-popup-host");if(!s)return;const a=document.createElement("div");a.className="sh3-popup-submenu",a.style.position="absolute",a.style.pointerEvents="auto";const o=(s.querySelector(".sh3-ctx-active")??s).getBoundingClientRect();a.style.left=`${o.right+2}px`,a.style.top=`${o.top}px`,s.appendChild(a);const c=Uk(Je(),t,e,r);Fe(ei,{target:a,props:{sections:[{id:`submenu:${e}`,items:c}],onInvoke:u=>{const d=Je().find(f=>f.action.id===u);if(!(!d||typeof d.action.run!="function")){try{d.action.run({action:{id:u,label:Ot(d.action)},appId:t.activeAppId,viewId:t.focusedViewId??void 0,selection:t.selection??void 0,invokedVia:"context-menu",dispatch:ls})}catch(f){console.error(`[sh3] context-menu submenu action "${u}" threw:`,f)}n.close()}},onDismiss:()=>n.close()}})}function r0(e){if(n0(e.target))return;const t=Je(),n=wt(),r=Qv({event:e,state:n}),s=Zv(t,n,r);if(s.tiers.length===0)return;e.preventDefault();const a=Et.popup.show(Xv,{anchor:{x:e.clientX,y:e.clientY}},{model:s,onInvoke:l=>{const o=Je().find(c=>c.action.id===l);if(o){if(o.action.submenu===!0){eh(l,n,a,r);return}if(typeof o.action.run=="function")try{o.action.run({action:{id:l,label:Ot(o.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:ls})}catch(c){console.error(`[sh3] context-menu action "${l}" threw:`,c)}}},onClose:()=>a.close()})}function s0(e){const t=J1(e);if(!t)return;const n=Je(),r=wt();ak({target:e.target,shortcut:t,state:r,entries:n,runAction:$k,dispatch:ls})&&e.preventDefault()}function Cu(){Au||(Au=!0,document.addEventListener("keydown",s0),document.addEventListener("focusin",e0),document.addEventListener("focusout",t0),document.addEventListener("contextmenu",r0))}function th(e){const t=Je(),n=wt(),r=Qv({explicit:e.scope,state:n}),s=Zv(t,n,r);if(s.tiers.length===0)return;const a=Et.popup.show(Xv,{anchor:{x:e.x,y:e.y}},{model:s,onInvoke:l=>{const o=Je().find(c=>c.action.id===l);if(o){if(o.action.submenu===!0){eh(l,n,a,r);return}if(typeof o.action.run=="function")try{o.action.run({action:{id:l,label:Ot(o.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:ls})}catch(c){console.error(`[sh3] context-menu action "${l}" threw:`,c)}}},onClose:()=>a.close()})}const a0=20;let Jo=[];function i0(e){Jo=[e,...Jo.filter(t=>t!==e)].slice(0,a0)}function Di(e){const t=Je(),n=wt(),r=Qk(t,n,{filter:e?.filter}),s=typeof document<"u"&&document.activeElement instanceof HTMLElement?document.activeElement:null,a=Et.modal.open(Jk,{candidates:r,recency:Jo,prefill:e?.prefill??"",onInvoke:l=>{const o=Je().find(c=>c.action.id===l);if(o){if(i0(l),o.action.submenu===!0&&typeof o.action.run!="function"){a.close(),Di({filter:{submenuOf:l}});return}if(typeof o.action.run=="function")try{o.action.run({action:{id:l,label:Ot(o.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"palette",dispatch:ls})}catch(c){console.error(`[sh3] palette action "${l}" threw:`,c)}}},onClose:()=>a.close()},{dismissOnBackdrop:!0,initialFocus:!(typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(hover: none) and (pointer: coarse)").matches)});if(s){const l=a.close;a.close=()=>{l(),queueMicrotask(()=>{(document.activeElement===document.body||document.activeElement===null)&&s.focus()})}}}const tr=[];let o0=0;function l0(){return`term-${++o0}`}function c0(e){tr.push(e);let t=!1;return()=>{if(t)return;t=!0;const n=tr.indexOf(e);n!==-1&&tr.splice(n,1)}}function u0(){if(tr.length===0)return{ok:!1,error:"no-terminal"};if(tr.length===1)return{ok:!0,handle:tr[0]};let e=null,t=0;for(const n of tr){const r=n.getFocusStamp();r>0&&r>=t&&(e=n,t=r)}return e===null?{ok:!1,error:"ambiguous"}:{ok:!0,handle:e}}const Tu={"no-terminal":"no terminal open",ambiguous:"multiple terminals open; focus one first","no-active-context":"dispatchToTerminal is not available in this context"};function fc(e){return e.headless?()=>({ok:!1,error:"no-active-context",message:Tu["no-active-context"]}):t=>{const n=u0();return n.ok?(n.handle.dispatch(t),{ok:!0,terminalId:n.handle.id}):{ok:!1,error:n.error,message:Tu[n.error]}}}const d0={async rebind(e,t,n){await _u(e,t,n),wt().activeAppId===e&&qs(await Or(e))},async resetBinding(e,t){await _u(e,t,void 0),wt().activeAppId===e&&qs(await Or(e))},async bindingsFor(e){const t=await Or(e),n={};for(const[r,s]of Object.entries(t))s!==null&&(n[r]=s);return n},openContextMenu:th,openPalette:Di,listActive(){return lk(Je(),wt())},onActiveChange(e){const t=Dk(e),n=W1(()=>{zk()});return()=>{t(),n()}}},Et={state:Ei,modal:Qt,popup:Vo,toast:yn,float:Re,presets:Qw,conflicts:F1,color:H1,actions:d0,dispatchToTerminal:fc({headless:!1}),viewport:{get current(){return er.current},subscribe:e=>er.subscribe(e),override:e=>er.override(e),get pinned(){return er.pinned}},drawers:{get state(){return Lt.state},open:e=>{ga("open"),Lt.open(e)},close:e=>{ga("close"),Lt.close(e)},toggle:e=>{ga("toggle"),Lt.toggle(e)},activate:(e,t)=>{ga("activate"),Lt.activate(e,t)}}};function ga(e){const t=er.current.class;if(t!=="compact")throw new Error(`Sh3.drawers.${e}: viewport class is "${t}"; drawers exist only on compact`)}function f0(e){return dn[e].list()}function v0(e,t){return dn[e].read(t)}function h0(e,t){dn[e].delete(t)}function p0(e){for(const t of dn[e].list())dn[e].delete(t)}function Zo(){return{list:f0,peek:v0,clear:h0,clearAll:p0}}function Sr(e,t,n){return`${e}/${t}/${n}`}function m0(e,t){return`${e}/${t}/`}const b0="sh3-documents",Ft="docs",g0=2;class nh{#e=null;#t(){return this.#e||(this.#e=new Promise((t,n)=>{const r=indexedDB.open(b0,g0);r.onupgradeneeded=()=>{const s=r.result;s.objectStoreNames.contains(Ft)||s.createObjectStore(Ft)},r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)})),this.#e}async#n(t,n){const r=await this.#t();return new Promise((s,a)=>{const o=r.transaction(Ft,t).objectStore(Ft),c=n(o);c.onsuccess=()=>s(c.result),c.onerror=()=>a(c.error)})}async read(t,n,r){const s=Sr(t,n,r),a=await this.#n("readonly",l=>l.get(s));return a?a.content:null}async write(t,n,r,s){const a=Sr(t,n,r),l=typeof s=="string"?new Blob([s]).size:s.byteLength,o={content:s,size:l,lastModified:Date.now()};await this.#n("readwrite",c=>c.put(o,a))}async delete(t,n,r){const s=Sr(t,n,r);await this.#n("readwrite",a=>a.delete(s))}async rename(t,n,r,s){const a=Sr(t,n,r),l=Sr(t,n,s),o=await this.#t();return new Promise((c,u)=>{let d=!1;const f=o.transaction(Ft,"readwrite"),v=f.objectStore(Ft),m=v.get(a);m.onsuccess=()=>{const k=m.result;if(!k){d=!0,f.abort(),u(new Error(`Document not found at ${r}`));return}const y=v.getKey(l);y.onsuccess=()=>{if(y.result!==void 0){d=!0,f.abort(),u(new Error(`Document already exists at ${s}`));return}const g={...k,lastModified:Date.now()};v.put(g,l),v.delete(a)},y.onerror=()=>u(y.error)},m.onerror=()=>u(m.error),f.oncomplete=()=>c(),f.onerror=()=>{d||u(f.error)},f.onabort=()=>{}})}async list(t,n){const r=m0(t,n),s=await this.#t();return new Promise((a,l)=>{const c=s.transaction(Ft,"readonly").objectStore(Ft),u=IDBKeyRange.bound(r,r+"￿",!1,!1),d=c.openCursor(u),f=[];d.onsuccess=()=>{const v=d.result;if(v){const m=v.value;f.push({path:v.key.slice(r.length),size:m.size,lastModified:m.lastModified}),v.continue()}else a(f)},d.onerror=()=>l(d.error)})}async exists(t,n,r){const s=Sr(t,n,r);return await this.#n("readonly",l=>l.getKey(s))!==void 0}async listAllShards(t){const n=`${t}/`,r=await this.#t();return new Promise((s,a)=>{const o=r.transaction(Ft,"readonly").objectStore(Ft),c=IDBKeyRange.bound(n,n+"￿",!1,!1),u=o.openKeyCursor(c),d=new Set;u.onsuccess=()=>{const f=u.result;if(f){const v=f.key.slice(n.length),m=v.indexOf("/");m>=0&&d.add(v.slice(0,m)),f.continue()}else s([...d])},u.onerror=()=>a(u.error)})}async listAllDocuments(t){const n=`${t}/`,r=await this.#t();return new Promise((s,a)=>{const o=r.transaction(Ft,"readonly").objectStore(Ft),c=IDBKeyRange.bound(n,n+"￿",!1,!1),u=o.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 k=f.value;d.push({shardId:v.slice(0,m),path:v.slice(m+1),size:k.size,lastModified:k.lastModified})}f.continue()}else s(d)},u.onerror=()=>a(u.error)})}}const y0="local";let vc=y0,rh=new nh;function sh(){return vc}function ho(){return vc}function Ru(){return rh}function ya(e){vc=e}function Lu(e){rh=e}const pr=ce({activeProjectId:null});function ah(e){if(pr.activeProjectId===e)return;const t=ot.id;pr.activeProjectId=e,Yr.id=null,t&&hc(t)}const ih=Ei("__sh3core__:last-app",{user:{id:null}});function _0(){return ih.user.id}function Bs(e){ih.user.id=e}function w0(){Bs(null)}const Qo=new Map;function k0(){return pr.activeProjectId??sh()}function _a(e,t,n){let r=Qo.get(e);if(!r){const s=wn(e),a=k0();r={scopeId:a,args:n??{},state:l=>Ei(`__app__:${e}:scope:${a}`,l),zones:s?.manifest.permissions?.includes(Ds)?Zo():void 0,gestures:bw(typeof document<"u"?document.body:null)},Qo.set(e,r)}return r}async function Mn(e,t={}){const n=wn(e);if(!n)throw new Error(`Cannot launch app "${e}": not registered`);if(ot.id&&ot.id!==e)hc(ot.id,t.skipSwitchToHome);else if(ot.id===e){for(const r of n.manifest.requiredShards){const s=Zt.get(r),a=Tx(r);s&&a&&s.resume?.(a)}n.resume?.(_a(e)),Eu(),n.onAppReady?.(_a(e)),t.skipLastApp||Bs(e),Yr.id=e,$a(e,new Set(n.manifest.requiredShards??[])),Or(e).then(qs);return}for(const r of n.manifest.requiredShards)if(!Zt.has(r))throw new Error(`App "${e}" requires shard "${r}" which is not registered`);Ck(n);try{for(const r of n.manifest.requiredShards)await ai(r,{phase:"launch"})}catch(r){qv();try{yn.notify(`Couldn't launch "${n.manifest.label??e}": ${r instanceof Error?r.message:String(r)}`,{level:"error",duration:6e3})}catch{}throw r}Rk(),n.activate?.(_a(e,void 0,t.args)),ot.id=e,$a(e,new Set(n.manifest.requiredShards??[])),Or(e).then(qs),Eu(),n.onAppReady?.(_a(e)),t.skipLastApp||Bs(e),Yr.id=e}function hc(e,t=!1){if(ot.id!==e)return;const n=wn(e);if(n){n.deactivate?.(),t||Bv(),qv();for(const r of n.manifest.requiredShards){const s=Zt.get(r);s&&(s.autostart||Vi(r))}ot.id=null,$a(null,new Set),ck(),nv(),Or("sh3.home").then(qs),Qo.delete(e)}}function pc(e){Vn.has(e)&&(ot.id===e&&(hc(e),Bs(null)),Vn.delete(e))}async function cs(){const e=ot.id?wn(ot.id):null;if(e){for(const t of e.manifest.requiredShards){const n=Zt.get(t);if(n?.suspend&&await n.suspend()===!1)return!1}if(e.suspend&&await e.suspend()===!1)return!1}return nv(),Bv(),$a(null,new Set),Bs(null),!0}function oh(){return{root:Nt(),source:uc()}}function x0(e){const t=Nt().docked,n=bc(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 S0(e){const t=Nt();return ji(t.docked,n=>n.slotId===e)?!0:lh(t,n=>n.slotId===e)}function zi(e){const t=Nt();return ji(t.docked,n=>n.viewId===e)?!0:lh(t,n=>n.viewId===e)}function ji(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(ji(n,t))return!0}return!1}function lh(e,t){for(const n of e.floats)if(ji(n.content,t))return Re.focus(n.id),!0;return!1}function E0(e,t){return ch(e,t,!0)}function I0(e,t){return ch(e,t,!1)}function ch(e,t,n){const r=Nt().docked,s=Jr(r,e);if(!s||s.type!=="split")return!1;const a=s;return t<0||t>=a.children.length?!1:(a.collapsed||(a.collapsed=a.children.map(()=>!1)),a.collapsed[t]=n,!0)}async function mc(e){const t=Nt(),n=t.docked;if(!Gr(n,e))return A0(t,e);const a=Dv(e)?.closable;return!a||typeof a=="object"&&(!await a.canClose()||!Gr(n,e))?!1:(Li(n,e),Dr(n),!0)}async function A0(e,t){for(const n of e.floats){if(!Gr(n.content,t))continue;const a=Dv(t)?.closable;if(typeof a=="object"&&(!await a.canClose()||!Gr(n.content,t)))return!1;Li(n.content,t);const l=n.content.type==="tabs"?n.content:null;return(!l||l.tabs.length===0)&&Re.close(n.id),!0}return!1}function uh(e){const t=Nt(),n=Gr(t.docked,e);if(!n)return null;const r=n.entry,s=r.viewId;if(!s)return null;const a=r.label,l=r.meta;return Li(t.docked,e),Dr(t.docked),Re.open(s,{title:a,meta:l})}function dh(e){const n=Nt().floats.find(o=>o.id===e);if(!n)return!1;const r=n.content,s=r.type==="tabs"?r:null;if(!s||s.tabs.length===0)return Re.close(e),!1;const a=s.tabs[s.activeTab??0]??s.tabs[0],l=gc({slotId:a.slotId,viewId:a.viewId,label:a.label,meta:a.meta});return l&&Re.close(e),l}function bc(e){if(e.type==="tabs")return e;if(e.type==="split")for(const t of e.children){const n=bc(t);if(n)return n}return null}function fh(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=fh(e.children[n],[...t,n]);if(r)return r}return null}function gc(e){const t=Nt().docked;if(zi(e.viewId??""))return!0;const n=bc(t);if(n)return n.tabs.push(e),n.activeTab=n.tabs.length-1,!0;const r=fh(t);return r?(Lv(t,r,e,"right"),!0):!1}function vh(e){return ic(Nt(),e)}const $o="sh3:authToken";let ti=null,el=!1;function C0(){if(!el&&(el=!0,!(typeof localStorage>"u")))try{ti=localStorage.getItem($o)}catch{ti=null}}function Oi(e){if(el=!0,ti=e,!(typeof localStorage>"u"))try{e?localStorage.setItem($o,e):localStorage.removeItem($o)}catch{}}function T0(){return C0(),ti}let wa=null,Mu=!1;function R0(){return typeof window>"u"?!1:"__TAURI_INTERNALS__"in window||"__TAURI__"in window}async function L0(){if(Mu)return wa;if(Mu=!0,!R0())return null;try{wa=(await import("@tauri-apps/plugin-http")).fetch}catch{wa=null}return wa}async function qe(e,t){const n=T0();let r=t??{};if(n){const a=new Headers(r.headers??{});a.has("Authorization")||(a.set("Authorization",`Bearer ${n}`),r={...r,headers:a})}const s=await L0();return s?s(e,r):fetch(e,{credentials:"include",...r})}let us=H(null),kn=H(null),ds=H(!1),Ni="",tl=null;function Pu(e,t){Ni=e,tl=t.auth,S(us,t.user,!0),S(kn,t.session,!0),S(ds,!t.session&&!t.user,!0),Oi(t.session?.token??null)}async function hh(e,t){try{const n=await qe(`${Ni}/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(us,r.user,!0),S(kn,r.session,!0),S(ds,!1),Oi(r.session?.token??null),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function M0(e,t,n){try{const r=await qe(`${Ni}/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(us,s.user,!0),S(kn,s.session,!0),S(ds,!1),Oi(s.session?.token??null),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function P0(){try{await qe(`${Ni}/api/auth/logout`,{method:"POST"})}catch{}if(Oi(null),tl?.required&&!tl.guestAllowed){window.location.reload();return}S(us,null),S(kn,null),S(ds,!0)}function D0(){S(us,{id:"local",username:"local",displayName:"Local Owner",role:"admin",createdAt:"",updatedAt:""},!0),S(kn,{token:"local",userId:"local",role:"admin",expiresAt:1/0},!0),S(ds,!1)}function z0(){return i(kn)?.token==="local"}function kt(){return i(kn)?.role==="admin"}function nl(){return i(kn)!==null}function ph(){return i(ds)}function Zr(){return i(us)}function qi(){return i(kn)?`Bearer ${i(kn).token}`:null}const j0=2e3;let rl=0;function O0(){return`e${++rl}`}function N0(e){if(e.length<2||e.charCodeAt(0)!==101)return NaN;const t=Number(e.slice(1));return Number.isInteger(t)?t:NaN}class q0{#e;get entries(){return i(this.#e)}set entries(t){S(this.#e,t,!0)}constructor(t=j0){this.#e=H(ce([])),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:O0()};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=N0(r.id);Number.isFinite(s)&&s>n&&(n=s)}n>rl&&(rl=n),this.entries.splice(0,this.entries.length,...t)}}const Du=[1e3,2e3,5e3,1e4];class mh{#e;get connected(){return i(this.#e)}set connected(t){S(this.#e,t,!0)}#t;get cwd(){return i(this.#t)}set cwd(t){S(this.#t,t,!0)}#n;get tenantRoot(){return i(this.#n)}set tenantRoot(t){S(this.#n,t,!0)}#s;get env(){return i(this.#s)}set env(t){S(this.#s,t,!0)}#r;get historyByMode(){return i(this.#r)}set historyByMode(t){S(this.#r,t,!0)}#i;get lastSeq(){return i(this.#i)}set lastSeq(t){S(this.#i,t,!0)}constructor(t){this.url=t,this.ws=null,this.handlers=new Set,this.pendingHistoryLogs=[],this.backoffIndex=0,this.closed=!1,this.#e=H(!1),this.#t=H(""),this.#n=H(""),this.#s=H(ce({})),this.#r=H(ce({})),this.#i=H(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=Du[Math.min(this.backoffIndex,Du.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 bh{constructor(t=""){this.base=t}async list(t){return(await(await this.#e("/api/fs/list",t)).json()).entries}async stat(t){return await(await this.#e("/api/fs/stat",t)).json()}async read(t){return await(await this.#e("/api/fs/read",t)).text()}async#e(t,n){const r=`${this.base}${t}?path=${encodeURIComponent(n)}`,s=await fetch(r,{credentials:"include"});if(!s.ok){let a=`HTTP ${s.status}`;try{const l=await s.json();l.error&&(a=l.error)}catch{}throw new Error(a)}return s}}function B0(e){const t=Ja(e);if(!t)return null;const r=Rv().find(s=>s.verb===t);return r?{verb:r.verb,shardId:r.shardId}:null}async function gh(e,t,n,r){if(!mr.has(e))throw new Error(`unknown shard: ${e}`);const s=Ja(t);if(!s)throw new Error(`unknown verb: ${t}`);if(!s.programmatic)throw new Error(`verb "${t}" is not programmatic`);const a=[],l=V0(a),o=await F0({sinkScrollback:l,opts:r});return{result:await s.run(o,n),scrollback:a}}async function F0(e){const t={sh3:_c({callerKind:"verb"}),scrollback:e.sinkScrollback,session:U0(),cwd:"/",fs:new bh,async dispatch(n){const r=n.trim();if(!r)return;const s=r.indexOf(" "),a=s===-1?r:r.slice(0,s),l=s===-1?"":r.slice(s+1),o=l.length?l.split(/\s+/):[],c=B0(a);if(!c)throw new Error(`dispatch: unknown verb "${a}"`);const u={...t,structuredArgs:void 0};await c.verb.run(u,o)},structuredArgs:e.opts?.structured,signal:e.opts?.signal};return t}function V0(e){let t=0;return{entries:e,push(r){const s={...r,id:`runverb-${++t}`};e.push(s)},clear(){e.length=0}}}function U0(){return new mh("")}const Fs="sh3.controllable-field",sl="sh3.walker";function yc(){return wr(Fs)}function yh(e){for(const t of yc())if(t.owner.shardId===e.shardId&&(t.owner.slotId??void 0)===(e.slotId??void 0)&&t.descriptor.fieldId===e.fieldId)return t}function H0(e){return e.shape==="readonly"?!0:e.shape==="imperative"?typeof e.set!="function":!1}function K0(e){if(e.shape==="element"||e.shape==="imperative"||e.shape==="readonly")return e.element}function Y0(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:H0(t),source:"contributed"};e.owner.slotId!==void 0&&(n.slotId=e.owner.slotId);const r=K0(t);return r!==void 0&&(n.element=r),n}function W0(e={}){const t=[];for(const n of yc())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(Y0(n));return t}function X0(e){return e.get()}function G0(e){const t=e.element;return t instanceof HTMLInputElement&&t.type==="checkbox"?t.checked:t.value}function J0(e){const t=yh(e);if(!t)throw new Error(`unknown field: ${e.shardId}::${e.slotId??""}::${e.fieldId}`);const n=t.descriptor;return n.shape==="element"?G0(n):X0(n)}function _h(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 Z0(e,t){const n=yh(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}_h(r.element,t)}const Q0=new Set(["submit","button","reset","file","hidden"]);function $0(e){return e.type==="number"?"number":e.type==="checkbox"?"boolean":"string"}function ex(e){return Array.from(e.options).map(t=>t.value)}function zu(e){return e.toLowerCase().trim().replace(/[^a-z0-9.\-_ ]/g,"").replace(/\s+/g,"-").replace(/^-+|-+$/g,"")}function wh(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 tx(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=wh(e);if(s){const l=zu(s);if(l.length>0)return l}if(e.id)return e.id;const a=e.placeholder;if(a){const l=zu(a);if(l.length>0)return l}return`field-${t}`}function nx(e){return wh(e)?.trim()??e.placeholder??null}function rx(e){return e.hasAttribute("data-sh3-field")?!0:e instanceof HTMLInputElement?!Q0.has(e.type):e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement}function po(e,t){const n=new Set;for(const l of yc()){const o=l.descriptor;o.shape==="element"&&n.add(o.element)}const r=t.querySelectorAll("input, textarea, select, [data-sh3-field]"),s=[];let a=0;for(const l of Array.from(r)){if(!rx(l)||n.has(l))continue;let o="string",c;if(l instanceof HTMLInputElement)o=$0(l);else if(l instanceof HTMLSelectElement)o="enum",c=ex(l);else if(l.hasAttribute("data-sh3-field")){const f=l.getAttribute("data-sh3-field-kind");f&&["string","number","integer","boolean","enum","json"].includes(f)&&(o=f)}const u=tx(l,a);/^field-\d+$/.test(u)&&(a+=1);const d={shardId:sl,slotId:e,fieldId:u,label:nx(l)??u,kind:o,readonly:!1,source:"walker",element:l};c!==void 0&&(d.enumValues=c),s.push(d)}return s}const Bi=new Set;let ka=null,mo=null,ju=null,bo=!1;function sx(){if(ka&&ka.isConnected)return ka;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),ka=e,mo||(mo=()=>al(),window.addEventListener("resize",mo)),ju||(ju=Ai(Fs,()=>{const t=new Set;for(const n of wr(Fs))t.add(ni({shardId:n.owner.shardId,slotId:n.owner.slotId,fieldId:n.descriptor.fieldId}));for(const n of Array.from(Bi))t.has(ni(n.addr))||kh(n)})),e}function ni(e){return`${e.shardId}::${e.slotId??""}::${e.fieldId}`}function ax(e){for(const t of wr(Fs))if(t.owner.shardId===e.shardId&&(t.owner.slotId??void 0)===(e.slotId??void 0)&&t.descriptor.fieldId===e.fieldId)return t}function ix(e){const t=e.descriptor;if(t.shape==="element"||t.shape==="imperative"||t.shape==="readonly")return t.element}function ox(e){let t=e.parentElement;for(;t;){const n=getComputedStyle(t);if(/auto|scroll/.test(n.overflowY)||/auto|scroll/.test(n.overflowX))return t;t=t.parentElement}return window}function lx(e){if(e.disposed)return;const t=e.target.getBoundingClientRect();e.wrapper.style.left=`${t.left}px`,e.wrapper.style.top=`${t.top}px`,e.wrapper.style.width=`${t.width}px`,e.wrapper.style.height=`${t.height}px`,e.handle?.update?.(t)}function al(){bo||(bo=!0,requestAnimationFrame(()=>{bo=!1;for(const e of Bi)lx(e)}))}function kh(e){if(!e.disposed){e.disposed=!0,Bi.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 cx(e,t){const n=ax(e);if(!n)throw new Error(`unknown field: ${ni(e)}`);const r=ix(n);if(!r)throw new Error(`field has no element to anchor to: ${ni(e)}`);const s=sx(),a=r.getBoundingClientRect(),l=t({element:r,rect:a});let o,c=null;l instanceof HTMLElement?o=l:(o=l.element,c=l);const u=document.createElement("div");u.className="sh3-decoration",u.style.cssText=`position: absolute; left: ${a.left}px; top: ${a.top}px; width: ${a.width}px; height: ${a.height}px; pointer-events: none;`,u.appendChild(o),s.appendChild(u);const d=ox(r),f={addr:e,element:o,wrapper:u,target:r,handle:c,resizeObserver:new ResizeObserver(()=>al()),scrollAncestor:d,scrollListener:()=>al(),disposed:!1};return f.resizeObserver.observe(r),d===window?window.addEventListener("scroll",f.scrollListener,!0):d.addEventListener("scroll",f.scrollListener),Bi.add(f),()=>kh(f)}const Ou=["ephemeral","session","workspace","user"];function xh(e){return e.type==="tabs"?e.tabs.filter(t=>t.viewId!==null):e.type==="split"?e.children.flatMap(xh):e.viewId!==null?[{slotId:e.slotId,viewId:e.viewId,label:e.viewId}]:[]}function _c(e){e?.callerKind,e?.callerShardId;const t=e?.zones;function n(){try{const{root:o}=oh();return xh(o.docked).map(c=>({slotId:c.slotId,viewId:c.viewId??"",label:c.label}))}catch{return[]}}function r(o){if(!o.slotId)throw new Error(`walker field requires slotId: ${o.shardId}::::${o.fieldId}`);const c=vo(o.slotId);if(!c?.host)throw new Error(`unknown field: ${o.shardId}::${o.slotId}::${o.fieldId}`);const u=po(o.slotId,c.host).find(d=>d.fieldId===o.fieldId);if(!u||!u.element)throw new Error(`unknown field: ${o.shardId}::${o.slotId}::${o.fieldId}`);return u}function s(o){const u=r(o).element;return u instanceof HTMLInputElement&&u.type==="checkbox"?u.checked:u instanceof HTMLInputElement||u instanceof HTMLTextAreaElement||u instanceof HTMLSelectElement?u.value:u.textContent??""}function a(o,c){const d=r(o).element;if(d instanceof HTMLInputElement||d instanceof HTMLTextAreaElement||d instanceof HTMLSelectElement){_h(d,c);return}throw new Error(`walker field "${o.fieldId}" is a [data-sh3-field] custom element; the framework cannot write into it. Use an explicit imperative registration with set().`)}const l={list(o){const c=W0({slotId:o?.slotId,shardId:o?.shardId,kind:o?.kind}),u=o?.walker??"off";if(u==="off")return c;const d=o?.slotId?[o.slotId]:Array.from(new Set(c.map(v=>v.slotId).filter(v=>!!v)));let f=c;for(const v of d){const m=vo(v);if(!m?.host)continue;const k=c.some(y=>y.slotId===v);u==="fallback"&&k||(f=f.concat(po(v,m.host)))}return o?.kind&&(f=f.filter(v=>v.kind===o.kind)),f},get(o){return o.shardId===sl?s(o):J0(o)},async set(o,c){if(o.shardId===sl){a(o,c);return}return Z0(o,c)},walk(o){const c=vo(o);if(!c?.host)throw new Error(`unknown slot: ${o}`);return po(o,c.host)},onChange(o){return Ai(Fs,o)},attachDecoration(o,c){return cx(o,c)}};return{listApps(){return is().map(o=>({id:o.id,label:o.label}))},getActiveApp(){const o=Xl();return o?{id:o.id,label:o.label}:null},launchApp(o){Mn(o)},listShards(){return Array.from(Zt.values()).map(o=>({id:o.manifest.id,label:o.manifest.label,version:o.manifest.version}))},listViewsInCurrentLayout(){return n()},openViewInCurrentLayout(o){try{if(zi(o))return{ok:!0};const c=Vs().find(u=>u.viewId===o);if(c){const u=`standalone:${o}:${Date.now()}`;return gc({slotId:u,viewId:o,label:c.label})?{ok:!0}:{ok:!1,error:`could not dock "${o}" — no available slot`}}return{ok:!1,error:`view "${o}" not found in current layout`}}catch(c){return{ok:!1,error:c instanceof Error?c.message:String(c)}}},listStandaloneViews(){return Vs()},popoutSlot(o){try{const c=uh(o);return c?{ok:!0,floatId:c}:{ok:!1,error:`slot "${o}" not found in docked tree`}}catch(c){return{ok:!1,error:c instanceof Error?c.message:String(c)}}},dockFloat(o){try{return dh(o)?{ok:!0}:{ok:!1,error:`float "${o}" not found or has no dockable content`}}catch(c){return{ok:!1,error:c instanceof Error?c.message:String(c)}}},locateSlot(o){try{return vh(o)}catch{return null}},listFloats(){return Re.list().map(o=>{const c=o.content.type==="tabs"?o.content:null,u=c?c.tabs[c.activeTab??0]??c.tabs[0]:null;return{floatId:o.id,viewId:u?.viewId??null,label:o.title??u?.label??o.id}})},closeSlot(o){return mc(o),{ok:!0}},listZones(o){if(!t)return[];const c=new Map;for(const u of Ou)for(const d of t.list(u)){if(o&&d!==o)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(o,c){return!t||!Ou.includes(c)?null:t.peek(c,o)??null},whoAmI(){return{userId:Zr()?.id??"guest",admin:kt()}},setMode(o){return!1},listModes(){return[]},getMode(){return{id:"sh3",label:"sh3"}},dispatchToTerminal:fc({headless:!0}),listVerbs(o){const c=o?.programmaticOnly===!0,u=Rv().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(o,c,u,d){return gh(o,c,u,d)},listActions(o){let u=rc(Je(),wt());if(o?.submenuOf!==void 0){const d=o.submenuOf;u=u.filter(f=>f.submenuOf===d)}return o?.activeOnly&&(u=u.filter(d=>d.active)),u},runAction(o,c){return $v(o)},listViews(){return n()},fields:l}}function ux(e){return _c({callerKind:"verb",zones:e})}class dx{#e;#t;constructor(t,n){this.#e=t.replace(/\/$/,""),this.#t=n}async read(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}`,a=await qe(s,{credentials:"include"});if(a.status===404)return null;if(!a.ok)throw new Error(`Document read failed: ${a.status}`);return(a.headers.get("content-type")??"").includes("application/octet-stream")?a.arrayBuffer():a.text()}async write(t,n,r,s){const a=`${this.#e}/api/docs/${t}/${n}/${r}`,l={...this.#n(),"Content-Type":typeof s=="string"?"text/plain":"application/octet-stream"},o=await qe(a,{method:"PUT",headers:l,body:s,credentials:"include"});if(!o.ok)throw new Error(`Document write failed: ${o.status}`)}async delete(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}`,a=await qe(s,{method:"DELETE",headers:this.#n(),credentials:"include"});if(!a.ok)throw new Error(`Document delete failed: ${a.status}`)}async list(t,n){const r=`${this.#e}/api/docs/${t}/${n}`,s=await qe(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 qe(s,{method:"HEAD",credentials:"include"})).ok}async listAllShards(t){const n=`${this.#e}/api/docs/${t}/_shards`,r=await qe(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 qe(n,{credentials:"include"});if(!r.ok)throw new Error(`listAllDocuments failed: ${r.status}`);return r.json()}async readMeta(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}?meta=1`,a=await qe(s,{credentials:"include"});if(!a.ok)throw new Error(`readMeta failed: ${a.status}`);const l=await a.json();return l.exists?l:null}async resolve(t,n,r,s){const a=`${this.#e}/api/docs/${t}/${n}/${r}/resolve`,l=typeof s=="string"?{choice:s}:{choice:s.origin},o=await qe(a,{method:"POST",credentials:"include",headers:{...this.#n(),"Content-Type":"application/json"},body:JSON.stringify(l)});if(!o.ok)throw new Error(`resolve failed: ${o.status}`)}async readBranch(t,n,r,s){const a=`${this.#e}/api/docs/${t}/${n}/${r}/branch?origin=${encodeURIComponent(s)}`,l=await qe(a,{credentials:"include"});if(l.status===404)return null;if(!l.ok)throw new Error(`readBranch failed: ${l.status}`);return l.text()}async rename(t,n,r,s){const a=`${this.#e}/api/docs/${t}/${n}/${r}/rename`,l={...this.#n(),"Content-Type":"application/json"},o=await qe(a,{method:"POST",headers:l,body:JSON.stringify({to:s}),credentials:"include"});if(o.status===404)throw new Error(`Document not found at ${r}`);if(o.status===409)throw new Error(`Document already exists at ${s}`);if(!o.ok)throw new Error(`Document rename failed: ${o.status}`)}#n(){return this.#t?{Authorization:`Bearer ${this.#t}`}:{}}}class fx{#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 On=new fx,vx=1e3;function hx(e,t,n,r){const s=new Set,a=new Set;function l(u){return!r.extensions||r.extensions.length===0?!0:r.extensions.some(d=>u.endsWith(d))}function o(u,d){On.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=>l(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),o(f?"update":"create",u)},async delete(u){const d=await n.exists(e,t,u);await n.delete(e,t,u),d&&o("delete",u)},async rename(u,d){if(!l(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),On.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=On.subscribe(f=>{f.tenantId===e&&f.shardId===t&&l(f.path)&&u(f)});return a.add(d),()=>{d(),a.delete(d)}},autosave(u,d){const f=new px(c,u,d?.debounceMs??vx);return s.add(f),f},async dispose(){const u=[...s].map(d=>d.dispose());await Promise.all(u),s.clear();for(const d of a)d();a.clear()}};return c}class px{#e;#t;#n;#s=null;#r=null;#i=!1;#a=!1;constructor(t,n,r){this.#e=t,this.#t=n,this.#n=r}get dirty(){return this.#i}get path(){return this.#t}update(t){this.#a||(this.#s=t,this.#i=!0,this.#o())}async flush(){if(this.#l(),this.#s!==null){const t=this.#s;this.#s=null,this.#i=!1,await this.#e.write(this.#t,t)}}async dispose(){this.#a||(this.#a=!0,await this.flush())}#o(){this.#l(),this.#r=setTimeout(()=>{this.#r=null,this.flush()},this.#n)}#l(){this.#r!==null&&(clearTimeout(this.#r),this.#r=null)}}const mx="sync:peer",bx="sync:policy";let kr="";function Sh(e){kr=e}function il(){return kr}async function gx(e){const t=await qe(`${kr}/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 yx(e,t){if(!kt())throw new Error("Cannot update env state: not elevated to admin");const n=qi(),r={"Content-Type":"application/json"};n&&(r.Authorization=n);const s=await qe(`${kr}/api/env-state/${encodeURIComponent(e)}`,{method:"PUT",headers:r,body:JSON.stringify(t),credentials:"omit"});if(!s.ok){const a=await s.json().catch(()=>({}));throw new Error(`Env state update failed: HTTP ${s.status} — ${a.error??"unknown"}`)}}async function wc(e,t,n){if(!kt())throw new Error("Cannot install: not elevated to admin");const r=qi(),s=new FormData;s.append("manifest",new Blob([JSON.stringify(e)],{type:"application/json"}),"manifest.json"),s.append("client",new Blob([t],{type:"application/javascript"}),"client.js"),n!==void 0&&s.append("server",new Blob([n],{type:"application/javascript"}),"server.js");const a={};r&&(a.Authorization=r);const l=await qe(`${kr}/api/packages/install`,{method:"POST",headers:a,body:s,credentials:"omit"});if(!l.ok){let o={};try{o=await l.json()}catch{}return{ok:!1,error:typeof o.error=="string"?o.error:`HTTP ${l.status}`,code:typeof o.code=="string"?o.code:void 0,missing:Array.isArray(o.missing)?o.missing:void 0}}return{ok:!0}}async function _x(e){if(!kt())throw new Error("Cannot uninstall: not elevated to admin");const t=qi(),n={"Content-Type":"application/json"};t&&(n.Authorization=t);const r=await qe(`${kr}/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 wx(){const e=await qe(`${kr}/api/packages`,{credentials:"omit"});return e.ok?await e.json():[]}const Eh="documents:browse",Ih="documents:read",Ah="documents:write";function kx(e,t,n={canRead:!1,canWrite:!1}){const r={listDocuments:()=>t.listAllDocuments(e),listShards:()=>t.listAllShards(e),watchDocuments:s=>On.subscribe(a=>{a.tenantId===e&&s(a)})};return n.canRead&&(r.readFrom=(s,a)=>t.read(e,s,a),r.statusFrom=async(s,a)=>t.readMeta?t.readMeta(e,s,a):null,r.readBranchFrom=async(s,a,l)=>t.readBranch?t.readBranch(e,s,a,l):null),n.canWrite&&(r.writeTo=async(s,a,l)=>{const o=await t.exists(e,s,a);await t.write(e,s,a,l),On.emit({type:o?"update":"create",path:a,tenantId:e,shardId:s})},r.resolveConflictFrom=async(s,a,l)=>{if(!t.resolve)throw new Error("Backend does not support resolveConflict");await t.resolve(e,s,a,l),On.emit({type:"update",path:a,tenantId:e,shardId:s})},r.renameFrom=async(s,a,l,o)=>{if(o?.newShardId!==void 0)throw new Error("Cross-shard move is not yet supported (ADR-018 amendment 2026-04-27)");await t.rename(e,s,a,l),On.emit({type:"rename",path:l,oldPath:a,tenantId:e,shardId:s})},r.deleteFrom=async(s,a)=>{const l=await t.exists(e,s,a);await t.delete(e,s,a),l&&On.emit({type:"delete",path:a,tenantId:e,shardId:s})}),r}const Ch="keys:mint";class Th extends Error{constructor(t){super(`Shard may not mint a key with scope '${t}' — not declared in manifest.`),this.name="ScopeEscalationError"}}class Rh extends Error{constructor(){super("User denied key creation."),this.name="ConsentDeniedError"}}const ol=new Map;let As=null;function Lh(e){return As=e,()=>{As===e&&(As=null)}}async function xx(e,t){if(!As)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=>{ol.set(n,{resolve:r}),As({...t,shardId:e,requestId:n})})}function ll(e,t){const n=ol.get(e);n&&(ol.delete(e),n.resolve(t))}const ri=new Map,Da=new Map,Sx=5e3;function Ex(e,t){let n=Da.get(e);n||(n=new Set,Da.set(e,n)),n.add(t),setTimeout(()=>{n.delete(t),n.size===0&&Da.delete(e)},Sx)}function Ix(e,t){return Da.get(e)?.has(t)??!1}function kc(e,t){const n=ri.get(e)??new Set;return n.add(t),ri.set(e,n),()=>{n.delete(t)}}function Mh(e,t){if(!e||Ix(e,t))return;Ex(e,t);const n=ri.get(e);if(n)for(const s of n)s(t);const r=ri.get("*");if(r)for(const s of r)s(t)}function Ax(){if(typeof EventSource>"u")return()=>{};const e=new EventSource("/api/keys/events",{withCredentials:!0});return e.onmessage=t=>{try{const n=JSON.parse(t.data);Mh(n.shardId,n.id)}catch{}},()=>e.close()}function Cx(e){const{shardId:t,shardPermissions:n}=e,r=s=>{for(const a of s)if(!n.includes(a)&&!n.includes("admin:*"))throw new Th(a)};return{async mint(s){if(r(s.scopes),!await xx(t,s))throw new Rh;const l=await fetch("/api/keys/consent",{method:"POST",credentials:"include",headers:{"content-type":"application/json"},body:JSON.stringify({shardId:t,...s})});if(!l.ok)throw new Error(`Consent ticket failed: ${l.status}`);const{ticket:o}=await l.json(),c=await fetch("/api/keys",{method:"POST",credentials:"include",headers:{"content-type":"application/json"},body:JSON.stringify({ticket:o})});if(!c.ok)throw new Error(`Mint failed: ${c.status}`);return c.json()},async list(){const s=await fetch("/api/keys",{credentials:"include"});if(!s.ok)throw new Error(`List failed: ${s.status}`);return(await s.json()).filter(l=>l.mintedByShardId===t)},async revoke(s){const a=await fetch(`/api/keys/${encodeURIComponent(s)}`,{method:"DELETE",credentials:"include"});if(!a.ok&&a.status!==404)throw new Error(`Revoke failed: ${a.status}`);Mh(t,s)}}}const Zt=ce(new Map),Nr=new Map,mr=ce(new Map),si=ce(new Map);function Fi(e){const t=e.manifest.id;Zt.has(t)&&mr.has(t)&&Vi(t),Zt.set(t,e),si.delete(t)}async function ai(e,t){const n=Zt.get(e);if(!n)throw new Error(`Cannot activate shard "${e}": not registered`);if(Nr.has(e))return;const r={shard:n,ctx:void 0,viewIds:new Set,verbNames:new Set,cleanupFns:[]},s=ce({proxy:null,defaults:null}),a={register(o,c,u){let d=c;if(o==="sh3.controllable-field"){const v={shardId:e};u?.scope?.slotId!==void 0&&(v.slotId=u.scope.slotId),d={owner:v,descriptor:c}}const f=pv(o,d,u);return r.cleanupFns.push(async()=>f()),f},list(o){return wr(o)},listPoints(){return t1()},onChange(o,c){const u=Ai(o,c);return r.cleanupFns.push(async()=>u()),u},onAnyChange(o){const c=n1(o);return r.cleanupFns.push(async()=>c()),c}},l={state:o=>Et.state(e,o),registerView:(o,c)=>{dk(o,c,n.manifest.id),r.viewIds.add(o)},registerVerb:o=>{const c=e==="shell"?o.name:`${e}:${o.name}`;fk(c,{...o,name:c},e),r.verbNames.add(c)},documents:o=>{const c=hx(ho(),e,Ru(),o);return r.cleanupFns.push(()=>c.dispose()),c},fetch(o,c){return qe(this.resolveUrl(o),c)},get serverUrl(){return il()},resolveUrl(o){if(o.startsWith("http://")||o.startsWith("https://"))return o;const u=il(),d=o.startsWith("/")?"":"/";return`${u}${d}${o}`},env(o){return s.proxy?(console.warn(`[sh3] Shard "${e}" called ctx.env() more than once; extra calls are ignored.`),s.proxy):(s.defaults=o,s.proxy={...o},s.proxy)},async envUpdate(o){if(!s.proxy||!s.defaults)throw new Error(`Shard "${e}" called envUpdate() without declaring env state`);const c=dr(s.proxy);Object.assign(s.proxy,o);try{const u=dr(s.proxy);await yx(e,u)}catch(u){throw Object.assign(s.proxy,c),u}},get isAdmin(){return kt()},get tenantId(){return ho()},zones:n.manifest.permissions?.includes(Ds)?Zo():void 0,browse:n.manifest.permissions?.includes(Eh)?kx(ho(),Ru(),{canRead:n.manifest.permissions.includes(Ih),canWrite:n.manifest.permissions.includes(Ah)}):void 0,keys:n.manifest.permissions?.includes(Ch)?Cx({shardId:e,shardPermissions:n.manifest.permissions??[]}):void 0,contributions:a,actions:{register(o){const c=Y1(o,e);return r.cleanupFns.push(async()=>c()),c},selection:Ri(e),openContextMenu(o){th(o)},openPalette(o){Di(o)}},sh3:_c({callerKind:"shard",callerShardId:e,zones:n.manifest.permissions?.includes(Ds)?Zo():void 0})};if(r.ctx=l,n.onKeyRevoked){const o=kc(e,async c=>{try{await n.onKeyRevoked(c)}catch(u){console.error(`[sh3] onKeyRevoked failed in "${e}":`,u)}});r.cleanupFns.push(async()=>o())}Nr.set(e,r),mr.set(e,n);try{await n.activate(l);for(const o of n.manifest.views)if(!r.viewIds.has(o.id))throw new Error(`Shard "${e}" declared view "${o.id}" in its manifest but registered no factory for it.`);if(s.proxy&&s.defaults)try{const o=await gx(e),c=Object.assign({},s.defaults,o);Object.assign(s.proxy,c)}catch(o){console.warn(`[sh3] Failed to hydrate env state for shard "${e}":`,o instanceof Error?o.message:o)}}catch(o){for(const c of r.cleanupFns)try{c()}catch{}for(const c of r.verbNames)Tv(c);for(const c of r.viewIds)Cv(c);throw Ev(e),Nr.delete(e),mr.delete(e),si.set(e,{id:e,error:o,phase:t?.phase??"launch",timestamp:Date.now()}),console.error(`[sh3] Shard "${e}" failed to activate:`,o),o}si.delete(e),n.autostart?.(l)}function Vi(e){const t=Nr.get(e);if(t){t.shard.deactivate?.();for(const n of t.cleanupFns)n();for(const n of t.verbNames)Tv(n);for(const n of t.viewIds)Cv(n);Ev(e),Nr.delete(e),mr.delete(e)}}function Tx(e){return Nr.get(e)?.ctx}function Vs(){const e=[];for(const t of mr.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 Rx(e){return btoa(JSON.stringify(e)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function Lx(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 Mx(n)}function Mx(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 Px(){return typeof globalThis.__TAURI_INTERNALS__<"u"}let Nu=0;function Dx(){return Nu+=1,`sh3-satellite-${Date.now()}-${Nu}`}async function Ui(e,t={}){if(!Px())return console.warn("[sh3] sh3.window.spawn called outside Tauri — no-op"),"";const{invoke:n}=await fi(async()=>{const{invoke:c}=await import("./core-DsojzR6k.js");return{invoke:c}},[]),r=Rx(e),s=Dx(),a=t.title??(e.kind==="float"?e.title??"SH3":`SH3 — ${e.appId}`),l=t.width??(e.kind==="float"?e.size.w:1024),o=t.height??(e.kind==="float"?e.size.h:768);return n("sh3_spawn_satellite",{payload:r,label:s,title:a,width:l,height:o})}class gt extends Error{constructor(t,n){super(`Registry validation error at ${t}: ${n}`),this.name="RegistryValidationError",this.path=t}}function Ph(e){if(!e||typeof e!="object"||Array.isArray(e))throw new gt("$","expected an object");const t=e;if(t.version!==1)throw new gt("$.version",`expected 1, got ${JSON.stringify(t.version)}`);if(!Array.isArray(t.packages))throw new gt("$.packages","expected an array");return{version:1,packages:t.packages.map((r,s)=>zx(r,`$.packages[${s}]`))}}function zx(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new gt(t,"expected an object");const n=e;nn(n,"id",t),Nx(n,"type",["shard","app","combo"],t),nn(n,"label",t),nn(n,"description",t);const r=`${t}.author`;if(!n.author||typeof n.author!="object"||Array.isArray(n.author))throw new gt(r,"expected an object");const s=n.author;if(typeof s.name!="string"||s.name.length===0)throw new gt(`${r}.name`,"expected a non-empty string");if(!Array.isArray(n.versions)||n.versions.length===0)throw new gt(`${t}.versions`,"expected a non-empty array");const a=n.versions.map((l,o)=>jx(l,`${t}.versions[${o}]`));return{id:n.id,type:n.type,label:n.label,description:n.description,author:{name:s.name},icon:typeof n.icon=="string"?n.icon:void 0,versions:a}}function jx(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new gt(t,"expected an object");const n=e;nn(n,"version",t),nn(n,"contractVersion",t);const r="bundleUrl"in n&&n.bundleUrl!==void 0,s="integrity"in n&&n.integrity!==void 0;if(r&&nn(n,"bundleUrl",t),s&&nn(n,"integrity",t),r!==s)throw new gt(t,"bundleUrl and integrity must be provided together");const a="serverBundleUrl"in n&&n.serverBundleUrl!==void 0;if(a&&nn(n,"serverBundleUrl",t),"serverIntegrity"in n&&n.serverIntegrity!==void 0&&nn(n,"serverIntegrity",t),!r&&!a)throw new gt(t,"expected at least one of bundleUrl+integrity or serverBundleUrl");let l;if(n.requires!==void 0){if(!Array.isArray(n.requires))throw new gt(`${t}.requires`,"expected an array");l=n.requires.map((o,c)=>Ox(o,`${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:l}}function Ox(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new gt(t,"expected an object");const n=e;return nn(n,"id",t),nn(n,"versionRange",t),{id:n.id,versionRange:n.versionRange}}function nn(e,t,n){const r=e[t];if(typeof r!="string"||r.length===0)throw new gt(`${n}.${t}`,"expected a non-empty string")}function Nx(e,t,n,r){if(!n.includes(e[t]))throw new gt(`${r}.${t}`,`expected one of: ${n.join(", ")}`)}const qu=["sha256","sha384","sha512"];function qx(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(!qu.includes(n))throw new Error(`Unsupported SRI algorithm: ${n}. Supported: ${qu.join(", ")}`);if(!r)throw new Error(`Empty hash in SRI: ${e}`);return{algorithm:n,hash:r}}function Bx(e){return`SHA-${e.slice(3)}`}function Fx(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 xc(e,t){const{algorithm:n,hash:r}=qx(t),s=Bx(n),a=await crypto.subtle.digest(s,e),l=Fx(a);if(l!==r)throw new Error(`Integrity check failed for ${n}. Expected: ${r}, got: ${l}`)}async function Dh(e){const t=new Set,n=[];for(const r of e){let s;try{const l=await fetch(r);if(!l.ok){console.warn(`[sh3] Registry fetch failed for ${r}: HTTP ${l.status}`);continue}s=await l.json()}catch(l){console.warn(`[sh3] Registry ${r}: ${l instanceof Error?l.message:String(l)}`);continue}let a;try{a=Ph(s)}catch(l){console.warn(`[sh3] Registry ${r} failed validation: ${l instanceof Error?l.message:String(l)}`);continue}for(const l of a.packages)t.has(l.id)||(t.add(l.id),n.push({entry:l,latest:l.versions[0],sourceRegistry:r}))}return n}async function Hi(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 xc(s,e.integrity),s}async function Sc(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 xc(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 Ki(e,t){return{id:e.entry.id,type:e.entry.type,version:t.version,contractVersion:t.contractVersion,sourceRegistry:e.sourceRegistry,integrity:t.integrity,requires:t.requires,hasServerBundle:!!t.serverBundleUrl,serverIntegrity:t.serverIntegrity}}const Cs="sh3.shell.mode";function Vx(e,t){return e.contributions.register(Cs,t)}const fn="0.19.1",Ec="sh3:user:__sh3core__:theme";let Us=[];function Ux(e){const t=Object.keys(e);for(const n of Us)t.includes(n)||document.documentElement.style.removeProperty(`--${n}`);for(const[n,r]of Object.entries(e))document.documentElement.style.setProperty(`--${n}`,r);Us=t;try{localStorage.setItem(Ec,JSON.stringify(e))}catch{}}function Hx(){for(const e of Us)document.documentElement.style.removeProperty(`--${e}`);Us=[];try{localStorage.removeItem(Ec)}catch{}}function zh(){try{const e=localStorage.getItem(Ec);if(!e)return{};const t=JSON.parse(e);return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{}}catch{return{}}}function Kx(){const e=zh();if(Object.keys(e).length!==0){for(const[t,n]of Object.entries(e))document.documentElement.style.setProperty(`--${t}`,n);Us=Object.keys(e)}}const Un="/assets/icons-nOyIoORC.svg",jh=Symbol("sh3.icon-sprite");function Yx(e){xl(jh,e)}function Oh(){return kl(jh)}var Wx=Nl('<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>'),Xx=Nl('<svg class="sh3-btn__icon svelte-t4hi97" aria-hidden="true"><use></use></svg>'),Gx=I('<span class="sh3-btn__label svelte-t4hi97"><!></span>'),Jx=I("<button><!> <!></button>");function Jn(e,t){se(t,!0);let n=ee(t,"variant",3,"default"),r=ee(t,"disabled",3,!1),s=ee(t,"type",3,"button");const a=Oh();function l(b){return b.includes("/")||b.endsWith(".svg")}const o=U(()=>t.icon?l(t.icon)?t.icon:`${t.sprite??a??Un}#${t.icon}`:void 0);let c=H(!1);const u=U(()=>t.loading??i(c)),d=U(()=>n()==="icon"||!!t.icon&&!t.children);async function f(b){if(!t.onclick)return;const A=t.onclick(b);if(A&&typeof A.then=="function"){S(c,!0);try{await A}finally{S(c,!1)}}}var v=Jx();let m;var k=p(v);{var y=b=>{var A=Wx();x(b,A)},g=b=>{var A=Xx(),T=p(A);h(A),N(()=>re(T,"href",i(o))),x(b,A)};W(k,b=>{i(u)?b(y):i(o)&&b(g,1)})}var C=_(k,2);{var w=b=>{var A=Gx(),T=p(A);Gt(T,()=>t.children),h(A),x(b,A)};W(C,b=>{t.children&&b(w)})}h(v),N(()=>{re(v,"type",s()),m=ue(v,1,`sh3-btn sh3-btn--${n()??""}`,"svelte-t4hi97",m,{"sh3-btn--icon-only":i(d),"sh3-btn--pressed":t.pressed}),v.disabled=r()||i(u),re(v,"aria-busy",i(u)||void 0),re(v,"aria-pressed",t.pressed??void 0),re(v,"title",t.title),re(v,"aria-label",t.ariaLabel??(i(d)?t.title:void 0))}),K("click",v,f),x(e,v),ae()}de(["click"]);var Zx=I('<span class="sh3-collapsible__title svelte-lvydsb"> </span>'),Qx=I('<div class="sh3-collapsible__body svelte-lvydsb"><!></div>'),$x=I('<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 eS(e,t){se(t,!0);let n=ee(t,"open",15,!1);function r(){n(!n()),t.onopenchange?.(n())}var s=$x();let a;var l=p(s),o=_(p(l),2);{var c=v=>{var m=Pe(),k=fe(m);Gt(k,()=>t.header),x(v,m)},u=v=>{var m=Zx(),k=p(m,!0);h(m),N(()=>j(k,t.title)),x(v,m)};W(o,v=>{t.header?v(c):t.title&&v(u,1)})}h(l);var d=_(l,2);{var f=v=>{var m=Qx(),k=p(m);Gt(k,()=>t.children),h(m),x(v,m)};W(d,v=>{n()&&v(f)})}h(s),N(()=>{a=ue(s,1,"sh3-collapsible svelte-lvydsb",null,a,{"sh3-collapsible--open":n()}),re(l,"aria-expanded",n())}),K("click",l,r),x(e,s),ae()}de(["click"]);var tS=I('<span aria-hidden="true">*</span>'),nS=I('<span class="sh3-field__label svelte-m4dkl"> <!></span>'),rS=I('<span class="sh3-field__affix svelte-m4dkl"><!></span>'),sS=I('<span class="sh3-field__affix svelte-m4dkl"><!></span>'),aS=I("<span> </span>"),iS=I('<label><!> <span class="sh3-field__row svelte-m4dkl"><!> <input class="sh3-field__input svelte-m4dkl"/> <!></span> <!></label>');function oS(e,t){se(t,!0);let n=ee(t,"value",15,""),r=ee(t,"type",3,"text"),s=ee(t,"disabled",3,!1),a=ee(t,"invalid",3,!1),l=ee(t,"size",3,"md"),o=ee(t,"required",3,!1);const c=U(()=>a()&&!!t.error),u=U(()=>i(c)?t.error:t.helper);var d=iS();let f;var v=p(d);{var m=L=>{var R=nS(),P=p(R,!0),M=_(P);{var O=E=>{var D=tS();x(E,D)};W(M,E=>{o()&&E(O)})}h(R),N(()=>j(P,t.label)),x(L,R)};W(v,L=>{t.label&&L(m)})}var k=_(v,2),y=p(k);{var g=L=>{var R=rS(),P=p(R);Gt(P,()=>t.prefix),h(R),x(L,R)};W(y,L=>{t.prefix&&L(g)})}var C=_(y,2);we(C);var w=_(C,2);{var b=L=>{var R=sS(),P=p(R);Gt(P,()=>t.suffix),h(R),x(L,R)};W(w,L=>{t.suffix&&L(b)})}h(k);var A=_(k,2);{var T=L=>{var R=aS();let P;var M=p(R,!0);h(R),N(()=>{P=ue(R,1,"sh3-field__helper svelte-m4dkl",null,P,{"sh3-field__helper--error":i(c)}),j(M,i(u))}),x(L,R)};W(A,L=>{i(u)&&L(T)})}h(d),N(()=>{f=ue(d,1,"sh3-field svelte-m4dkl",null,f,{"sh3-field--invalid":a(),"sh3-field--sm":l()==="sm"}),re(C,"type",r()),re(C,"placeholder",t.placeholder),C.disabled=s(),C.required=o(),re(C,"autocomplete",t.autocomplete),re(C,"aria-invalid",a()||void 0)}),K("input",C,()=>t.oninput?.(n())),De("blur",C,()=>t.onchange?.(n())),Ae(C,n),x(e,d),ae()}de(["input"]);var lS=I('<span aria-hidden="true">*</span>'),cS=I('<span class="sh3-textarea__label svelte-668c6r"> <!></span>'),uS=I("<span> </span>"),dS=I('<label><!> <textarea class="sh3-textarea__input svelte-668c6r"></textarea> <!></label>');function fS(e,t){se(t,!0);let n=ee(t,"value",15,""),r=ee(t,"disabled",3,!1),s=ee(t,"invalid",3,!1),a=ee(t,"size",3,"md"),l=ee(t,"required",3,!1),o=ee(t,"rows",3,3),c=ee(t,"resize",3,"vertical");const u=U(()=>s()&&!!t.error),d=U(()=>i(u)?t.error:t.helper);var f=dS();let v;var m=p(f);{var k=b=>{var A=cS(),T=p(A,!0),L=_(T);{var R=P=>{var M=lS();x(P,M)};W(L,P=>{l()&&P(R)})}h(A),N(()=>j(T,t.label)),x(b,A)};W(m,b=>{t.label&&b(k)})}var y=_(m,2);Ll(y);let g;var C=_(y,2);{var w=b=>{var A=uS();let T;var L=p(A,!0);h(A),N(()=>{T=ue(A,1,"sh3-textarea__helper svelte-668c6r",null,T,{"sh3-textarea__helper--error":i(u)}),j(L,i(d))}),x(b,A)};W(C,b=>{i(d)&&b(w)})}h(f),N(()=>{v=ue(f,1,"sh3-textarea svelte-668c6r",null,v,{"sh3-textarea--invalid":s(),"sh3-textarea--sm":a()==="sm"}),re(y,"placeholder",t.placeholder),y.disabled=r(),y.required=l(),re(y,"rows",o()),re(y,"aria-invalid",s()||void 0),g=He(y,"",g,{resize:c()})}),K("input",y,()=>t.oninput?.(n())),De("blur",y,()=>t.onchange?.(n())),Ae(y,n),x(e,f),ae()}de(["input"]);function vS(e,t,n){let r=e;return t!==void 0&&r<t&&(r=t),n!==void 0&&r>n&&(r=n),r}function hS(e,t){const n=t.min??0,r=Math.round((e-n)/t.step);return n+r*t.step}var pS=I('<span class="sh3-num__label svelte-1qa0x3m"> </span>'),mS=I('<span class="sh3-num__affix svelte-1qa0x3m"><!></span>'),bS=I('<span class="sh3-num__affix svelte-1qa0x3m"><!></span>'),gS=I('<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 yS(e,t){se(t,!0);let n=ee(t,"value",15,0),r=ee(t,"step",3,1),s=ee(t,"disabled",3,!1),a=ee(t,"invalid",3,!1),l=ee(t,"size",3,"md");function o(E){if(Number.isNaN(E))return;let D=vS(hS(E,{min:t.min,step:r()}),t.min,t.max);t.precision!==void 0&&(D=Number(D.toFixed(t.precision))),n(D)}function c(E){o(n()+E*r()),t.oninput?.(n())}let u=null,d=null,f=!1;function v(E){s()||(f=!0,c(E),u=setTimeout(()=>{let D=0;d=setInterval(()=>{c(E),D+=60,D>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 k=gS();let y;var g=p(k);{var C=E=>{var D=pS(),F=p(D,!0);h(D),N(()=>j(F,t.label)),x(E,D)};W(g,E=>{t.label&&E(C)})}var w=_(g,2),b=p(w);{var A=E=>{var D=mS(),F=p(D);Gt(F,()=>t.prefix),h(D),x(E,D)};W(b,E=>{t.prefix&&E(A)})}var T=_(b,2);we(T);var L=_(T,2);{var R=E=>{var D=bS(),F=p(D);Gt(F,()=>t.suffix),h(D),x(E,D)};W(L,E=>{t.suffix&&E(R)})}var P=_(L,2),M=p(P),O=_(M,2);h(P),h(w),h(k),N(()=>{y=ue(k,1,"sh3-num svelte-1qa0x3m",null,y,{"sh3-num--invalid":a(),"sh3-num--sm":l()==="sm"}),re(T,"min",t.min),re(T,"max",t.max),re(T,"step",r()),T.disabled=s(),re(T,"aria-invalid",a()||void 0),Ps(T,n()),M.disabled=s(),O.disabled=s()}),K("input",T,E=>{const D=E.currentTarget.valueAsNumber;Number.isNaN(D)||(n(D),t.oninput?.(D))}),De("blur",T,()=>{o(n()),t.onchange?.(n())}),K("pointerdown",M,()=>v(1)),K("pointerup",M,m),De("pointerleave",M,m),K("pointerdown",O,()=>v(-1)),K("pointerup",O,m),De("pointerleave",O,m),x(e,k),ae()}de(["input","pointerdown","pointerup"]);function Yi(e){return e.filter(t=>!t.disabled)}function _S(e,t){const n=Yi(e);if(n.length===0)return t;const r=n.findIndex(a=>a.value===t);return n[(r+1+n.length)%n.length].value}function wS(e,t){const n=Yi(e);if(n.length===0)return t;const r=n.findIndex(a=>a.value===t);return n[(r-1+n.length)%n.length].value}function kS(e){return Yi(e)[0]?.value}function xS(e){const t=Yi(e);return t[t.length-1]?.value}var SS=I('<button type="button" role="radio"> </button>'),ES=I('<div role="radiogroup" tabindex="-1"></div>');function Nh(e,t){se(t,!0);let n=ee(t,"value",31,()=>ce(t.options[0]?.value??"")),r=ee(t,"size",3,"md"),s=ee(t,"disabled",3,!1);function a(u){n(u),t.onchange?.(u)}function l(u){if(s())return;let d;switch(u.key){case"ArrowRight":case"ArrowDown":d=_S(t.options,n());break;case"ArrowLeft":case"ArrowUp":d=wS(t.options,n());break;case"Home":d=kS(t.options);break;case"End":d=xS(t.options);break;default:return}u.preventDefault(),d!==void 0&&a(d)}var o=ES();let c;he(o,21,()=>t.options,pt,(u,d)=>{var f=SS();let v;var m=p(f,!0);h(f),N(()=>{re(f,"aria-checked",n()===i(d).value),re(f,"tabindex",n()===i(d).value?0:-1),f.disabled=s()||i(d).disabled,v=ue(f,1,"svelte-17xsko9",null,v,{"sh3-seg__btn--active":n()===i(d).value}),j(m,i(d).label)}),K("click",f,()=>{!i(d).disabled&&!s()&&a(i(d).value)}),x(u,f)}),h(o),N(()=>c=ue(o,1,"sh3-seg svelte-17xsko9",null,c,{"sh3-seg--sm":r()==="sm"})),K("keydown",o,l),x(e,o),ae()}de(["keydown","click"]);function IS(e,t){return e===t?"":t}function AS(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var CS=I('<button type="button"><!></button>'),TS=I('<div role="group"></div>');function RS(e,t){se(t,!0);let n=ee(t,"multiple",3,!1),r=ee(t,"value",31,()=>ce(n()?[]:t.options[0]?.value??"")),s=ee(t,"disabled",3,!1),a=ee(t,"size",3,"md");function l(d){return n()&&Array.isArray(r())?r().includes(d):r()===d}function o(d){if(!s()){if(n()){const f=Array.isArray(r())?r():[];r(AS(f,d))}else r(IS(typeof r()=="string"?r():"",d));t.onchange?.(r())}}var c=TS();let u;he(c,21,()=>t.options,pt,(d,f)=>{var v=CS();let m;var k=p(v);Gt(k,()=>i(f).icon),h(v),N((y,g)=>{re(v,"title",i(f).tooltip),re(v,"aria-label",i(f).tooltip),re(v,"aria-pressed",y),v.disabled=s(),m=ue(v,1,"svelte-13knxr5",null,m,g)},[()=>l(i(f).value),()=>({"sh3-itg__btn--active":l(i(f).value)})]),K("click",v,()=>o(i(f).value)),x(d,v)}),h(c),N(()=>u=ue(c,1,"sh3-itg svelte-13knxr5",null,u,{"sh3-itg--sm":a()==="sm"})),x(e,c),ae()}de(["click"]);function ii(e,t,n){return n===t?0:(e-t)/(n-t)*100}var LS=I('<span class="sh3-slider__tick svelte-13va6lu"></span>'),MS=I('<output class="sh3-slider__value svelte-13va6lu"> </output>'),PS=I('<div><div class="sh3-slider__track svelte-13va6lu"><div class="sh3-slider__fill svelte-13va6lu"></div> <!></div> <input type="range" class="sh3-slider__native svelte-13va6lu"/> <!></div>');function qh(e,t){se(t,!0);let n=ee(t,"value",15,0),r=ee(t,"min",3,0),s=ee(t,"max",3,100),a=ee(t,"step",3,1),l=ee(t,"showValue",3,!1),o=ee(t,"disabled",3,!1),c=ee(t,"invalid",3,!1),u=ee(t,"size",3,"md"),d=ee(t,"orientation",3,"horizontal");const f=U(()=>ii(n(),r(),s()));var v=PS();let m;var k=p(v),y=p(k);let g;var C=_(y,2);{var w=L=>{var R=Pe(),P=fe(R);he(P,17,()=>t.ticks,pt,(M,O)=>{var E=LS();let D;N(F=>D=He(E,"",D,F),[()=>({"--tick-pct":`${ii(i(O),r(),s())??""}%`})]),x(M,E)}),x(L,R)};W(C,L=>{t.ticks&&L(w)})}h(k);var b=_(k,2);we(b);var A=_(b,2);{var T=L=>{var R=MS();let P;var M=p(R,!0);h(R),N(()=>{P=He(R,"",P,{"--pct":`${i(f)??""}%`}),j(M,n())}),x(L,R)};W(A,L=>{l()&&L(T)})}h(v),N(()=>{m=ue(v,1,`sh3-slider sh3-slider--${d()??""}`,"svelte-13va6lu",m,{"sh3-slider--sm":u()==="sm","sh3-slider--invalid":c()}),g=He(y,"",g,{"--pct":`${i(f)??""}%`}),re(b,"min",r()),re(b,"max",s()),re(b,"step",a()),b.disabled=o(),re(b,"aria-invalid",c()||void 0)}),K("input",b,()=>t.oninput?.(n())),K("change",b,()=>t.onchange?.(n())),Ae(b,n),x(e,v),ae()}de(["input","change"]);function Bu(e,t,n){const[r,s]=e;return t==="low"?[Math.min(n,s),s]:[r,Math.max(n,r)]}var DS=I('<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 zS(e,t){se(t,!0);let n=ee(t,"value",31,()=>ce([0,100])),r=ee(t,"min",3,0),s=ee(t,"max",3,100),a=ee(t,"step",3,1),l=ee(t,"disabled",3,!1),o=ee(t,"invalid",3,!1),c=ee(t,"size",3,"md");const u=U(()=>ii(n()[0],r(),s())),d=U(()=>ii(n()[1],r(),s()));function f(A){n(Bu(n(),"low",A)),t.oninput?.(n())}function v(A){n(Bu(n(),"high",A)),t.oninput?.(n())}var m=DS();let k;var y=p(m),g=p(y);let C;h(y);var w=_(y,2);we(w);var b=_(w,2);we(b),h(m),N(()=>{k=ue(m,1,"sh3-range svelte-rdbrc5",null,k,{"sh3-range--sm":c()==="sm","sh3-range--invalid":o()}),C=He(g,"",C,{"--lo":`${i(u)??""}%`,"--hi":`${i(d)??""}%`}),re(w,"min",r()),re(w,"max",s()),re(w,"step",a()),w.disabled=l(),Ps(w,n()[0]),re(b,"min",r()),re(b,"max",s()),re(b,"step",a()),b.disabled=l(),Ps(b,n()[1])}),K("input",w,A=>f(parseFloat(A.currentTarget.value))),K("change",w,()=>t.onchange?.(n())),K("input",b,A=>v(parseFloat(A.currentTarget.value))),K("change",b,()=>t.onchange?.(n())),x(e,m),ae()}de(["input","change"]);var jS=I('<div class="sh3-sg__channel svelte-1lqyi0d"><span class="sh3-sg__label svelte-1lqyi0d"> </span> <!></div>'),OS=I("<div></div>");function NS(e,t){se(t,!0);let n=ee(t,"orientation",3,"horizontal"),r=ee(t,"values",31,()=>ce({})),s=ee(t,"showValues",3,!1),a=ee(t,"disabled",3,!1),l=ee(t,"size",3,"md");var o=OS();he(o,21,()=>t.channels,c=>c.id,(c,u)=>{var d=jS(),f=p(d),v=p(f,!0);h(f);var m=_(f,2),k=()=>r()[i(u).id]??0,y=g=>r({...r(),[i(u).id]:g});{let g=U(()=>i(u).min??0),C=U(()=>i(u).max??100),w=U(()=>i(u).step??1);qh(m,{get orientation(){return n()},get min(){return i(g)},get max(){return i(C)},get step(){return i(w)},get disabled(){return a()},get size(){return l()},get showValue(){return s()},get value(){return k()},set value(b){y(b)},oninput:()=>t.oninput?.(r()),onchange:()=>t.onchange?.(r())})}h(d),N(()=>j(v,i(u).label)),x(c,d)}),h(o),N(()=>ue(o,1,`sh3-sg sh3-sg--${n()??""}`,"svelte-1lqyi0d")),x(e,o),ae()}var qS=I('<span class="sh3-swatch__label svelte-6ri2j2"> </span>'),BS=I('<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 Bh(e,t){se(t,!0);let n=ee(t,"value",15,"#000000"),r=ee(t,"disabled",3,!1),s=ee(t,"size",3,"md"),a;async function l(){if(r())return;const y=await Et.color.pick({initial:n(),anchor:a});y!=null&&(n(y),t.onchange?.(y))}var o=BS();let c;var u=p(o);{var d=y=>{var g=qS(),C=p(g,!0);h(g),N(()=>j(C,t.label)),x(y,g)};W(u,y=>{t.label&&y(d)})}var f=_(u,2);let v;var m=_(p(f)),k=p(m,!0);h(m),h(f),je(f,y=>a=y,()=>a),h(o),N(()=>{c=ue(o,1,"sh3-swatch svelte-6ri2j2",null,c,{"sh3-swatch--sm":s()==="sm"}),f.disabled=r(),re(f,"aria-label",`${t.label??"Color"??""} (current ${n()??""})`),v=He(f,"",v,{"--swatch-color":n()}),j(k,n())}),K("click",f,l),x(e,o),ae()}de(["click"]);function FS(e,t){return!e||e.length===0?t?[]:null:t?Array.from(e):e[0]}function VS(e){return e===null?"":Array.isArray(e)?e.length===0?"":e.length===1?e[0].name:`${e.length} files`:e.name}var US=I('<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 HS(e,t){se(t,!0);let n=ee(t,"value",15,null),r=ee(t,"multiple",3,!1),s=ee(t,"disabled",3,!1),a=ee(t,"invalid",3,!1),l=ee(t,"size",3,"md"),o=ee(t,"buttonLabel",3,"Choose file...");function c(C){const w=C.currentTarget;n(FS(w.files,r())),t.onchange?.(n())}const u=U(()=>VS(n()));var d=US();let f;var v=p(d),m=_(v,2),k=p(m,!0);h(m);var y=_(m,2),g=p(y,!0);h(y),h(d),N(()=>{f=ue(d,1,"sh3-fp svelte-24jk95",null,f,{"sh3-fp--sm":l()==="sm","sh3-fp--invalid":a()}),re(v,"accept",t.accept),v.multiple=r(),v.disabled=s(),j(k,o()),j(g,i(u)||"no file")}),K("change",v,c),x(e,d),ae()}de(["change"]);const KS=8;function YS(e){return e.length>=KS}function WS(e,t){if(!t)return e.slice();const n=t.toLowerCase();return e.filter(r=>r.label.toLowerCase().includes(n))}function XS(e,t,n){if(!t)return-1;const r=t.toLowerCase(),s=e.length;for(let a=1;a<=s;a++){const l=(n+a)%s;if(!e[l].disabled&&e[l].label.toLowerCase().startsWith(r))return l}return-1}function GS(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 JS(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var ZS=I('<input class="sh3-listbox__search svelte-1tyxvrs" type="search" placeholder="Filter…"/>'),QS=I('<span aria-hidden="true"></span>'),$S=I('<div role="option" tabindex="-1"><!> <span class="sh3-listbox__label"> </span></div>'),e3=I('<div class="sh3-listbox__empty svelte-1tyxvrs">No matches</div>'),t3=I('<div class="sh3-listbox svelte-1tyxvrs" role="listbox" tabindex="-1"><!> <div class="sh3-listbox__list svelte-1tyxvrs"><!> <!></div></div>');function n3(e,t){se(t,!0);const n=U(()=>t.getValue());function r(){t.onClose?.(),t.close()}const s=U(()=>YS(t.options));function a(){if(t.multiple)return 0;const P=typeof i(n)=="string"?i(n):"",M=t.options.findIndex(O=>O.value===P&&!O.disabled);return M>=0?M:0}let l=H(""),o=H(ce(a())),c=H(void 0),u=H(void 0),d="",f=null;const v=U(()=>WS(t.options,i(l)));Se(()=>{i(o)>=i(v).length&&S(o,0),m()});async function m(){if(await na(),!i(c))return;i(c).querySelector(`[data-idx="${i(o)}"]`)?.scrollIntoView({block:"nearest"})}function k(P){return t.multiple&&Array.isArray(i(n))?i(n).includes(P.value):i(n)===P.value}function y(P){const M=i(v)[P];!M||M.disabled||(t.onSelect(M.value),t.multiple||r())}function g(P){if(i(v).length!==0)switch(P.key){case"ArrowDown":P.preventDefault(),S(o,(i(o)+1)%i(v).length);break;case"ArrowUp":P.preventDefault(),S(o,(i(o)-1+i(v).length)%i(v).length);break;case"Home":P.preventDefault(),S(o,0);break;case"End":P.preventDefault(),S(o,i(v).length-1);break;case"Enter":P.preventDefault(),y(i(o));break;case" ":case"Space":P.preventDefault(),y(i(o));break;case"Escape":P.preventDefault(),r();break;default:if(i(s)&&document.activeElement===i(u)||P.key.length!==1||P.metaKey||P.ctrlKey||P.altKey)return;d+=P.key,f&&clearTimeout(f),f=setTimeout(()=>{d=""},500);const M=XS(i(v),d,i(o));M>=0&&S(o,M,!0)}}var C=t3(),w=p(C);{var b=P=>{var M=ZS();we(M),je(M,O=>S(u,O),()=>i(u)),Ae(M,()=>i(l),O=>S(l,O)),x(P,M)};W(w,P=>{i(s)&&P(b)})}var A=_(w,2),T=p(A);he(T,17,()=>i(v),pt,(P,M,O)=>{var E=$S();re(E,"data-idx",O);let D;var F=p(E);{var z=Z=>{var $=QS();let Q;N(te=>Q=ue($,1,"sh3-listbox__check svelte-1tyxvrs",null,Q,te),[()=>({"sh3-listbox__check--on":k(i(M))})]),x(Z,$)};W(F,Z=>{t.multiple&&Z(z)})}var V=_(F,2),G=p(V,!0);h(V),h(E),N((Z,$)=>{re(E,"aria-selected",Z),re(E,"aria-disabled",i(M).disabled),D=ue(E,1,"svelte-1tyxvrs",null,D,$),j(G,i(M).label)},[()=>k(i(M)),()=>({"sh3-listbox__opt--active":O===i(o),"sh3-listbox__opt--selected":k(i(M))})]),K("click",E,()=>y(O)),De("mouseenter",E,()=>S(o,O,!0)),x(P,E)});var L=_(T,2);{var R=P=>{var M=e3();x(P,M)};W(L,P=>{i(v).length===0&&P(R)})}h(A),je(A,P=>S(c,P),()=>i(c)),h(C),N(()=>re(C,"aria-multiselectable",t.multiple)),K("keydown",C,g),x(e,C),ae()}de(["keydown","click"]);var r3=I('<span class="sh3-select__label svelte-1q3zxph"> </span>'),s3=I("<option> </option>"),a3=I('<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 i3(e,t){se(t,!0);let n=ee(t,"multiple",3,!1),r=ee(t,"value",31,()=>ce(n()?[]:"")),s=ee(t,"placeholder",3,"Select…"),a=ee(t,"disabled",3,!1),l=ee(t,"invalid",3,!1),o=ee(t,"size",3,"md"),c=H(void 0),u=H(void 0),d=H(!1);const f=U(()=>GS(t.options,r(),n()));function v(){S(d,!1),i(c)?.focus()}async function m(){if(a()||i(d)||!i(c))return;S(d,!0);const M=Et.popup.show(n3,{anchor:i(c)},{options:t.options,getValue:()=>r(),multiple:n(),onSelect:D=>{if(n()){const F=Array.isArray(r())?r():[];r(JS(F,D))}else r(D);t.onchange?.(r())},onClose:v}),O=M.close;M.close=()=>{O(),v()},await na(),document.querySelector(".sh3-listbox")?.focus()}function k(M){if(!(a()||i(d)))switch(M.key){case"ArrowDown":case"ArrowUp":case"Enter":case" ":M.preventDefault(),m();break}}function y(){i(u)&&(n()?r(Array.from(i(u).selectedOptions).map(M=>M.value)):r(i(u).value),t.onchange?.(r()))}var g=a3();let C;var w=p(g);{var b=M=>{var O=r3(),E=p(O,!0);h(O),N(()=>j(E,t.label)),x(M,O)};W(w,M=>{t.label&&M(b)})}var A=_(w,2),T=p(A);let L;var R=p(T,!0);h(T),Mt(2),h(A),je(A,M=>S(c,M),()=>i(c));var P=_(A,2);re(P,"tabindex",-1),he(P,21,()=>t.options,pt,(M,O)=>{var E=s3(),D=p(E,!0);h(E);var F={};N(z=>{Hl(E,z),j(D,i(O).label),F!==(F=i(O).value)&&(E.value=(E.__value=i(O).value)??"")},[()=>n()?Array.isArray(r())&&r().includes(i(O).value):r()===i(O).value]),x(M,E)}),h(P),je(P,M=>S(u,M),()=>i(u)),h(g),N(()=>{C=ue(g,1,"sh3-select svelte-1q3zxph",null,C,{"sh3-select--invalid":l(),"sh3-select--sm":o()==="sm"}),A.disabled=a(),re(A,"aria-expanded",i(d)),L=ue(T,1,"sh3-select__display svelte-1q3zxph",null,L,{"sh3-select__display--placeholder":!i(f)}),j(R,i(f)||s()),P.multiple=n(),P.disabled=a()}),K("click",A,m),K("keydown",A,k),K("change",P,y),x(e,g),ae()}de(["click","keydown","change"]);function o3(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 l3(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var c3=I('<input type="search" class="sh3-picker__search svelte-1rlwvrb" placeholder="Filter…"/>'),u3=I('<p class="sh3-picker__status svelte-1rlwvrb">Loading…</p>'),d3=I('<button type="button" class="sh3-picker__retry svelte-1rlwvrb">Retry</button>'),f3=I('<p class="sh3-picker__status sh3-picker__status--error svelte-1rlwvrb"> </p> <!>',1),v3=I('<p class="sh3-picker__status svelte-1rlwvrb"> </p>'),h3=I('<span class="sh3-picker__row-sub svelte-1rlwvrb"> </span>'),p3=I('<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>'),m3=I('<div><!> <div class="sh3-picker__list svelte-1rlwvrb"><!></div> <p class="sh3-picker__footer svelte-1rlwvrb"> </p></div>');function Fh(e,t){se(t,!0);let n=ee(t,"value",31,()=>ce([])),r=ee(t,"loading",3,!1),s=ee(t,"error",3,null),a=ee(t,"emptyText",3,"No items."),l=ee(t,"searchThreshold",3,8),o=ee(t,"disabled",3,!1),c=ee(t,"size",3,"md"),u=H("");const d=U(()=>t.items.length>=l()),f=U(()=>o3(t.items,i(u))),v=U(()=>t.items.length),m=U(()=>n().length);function k(E){if(o())return;const D=l3(n(),E);n(D),t.onchange?.(D)}var y=m3();let g;var C=p(y);{var w=E=>{var D=c3();we(D),N(()=>D.disabled=o()),Ae(D,()=>i(u),F=>S(u,F)),x(E,D)};W(C,E=>{i(d)&&E(w)})}var b=_(C,2),A=p(b);{var T=E=>{var D=u3();x(E,D)},L=E=>{var D=f3(),F=fe(D),z=p(F,!0);h(F);var V=_(F,2);{var G=Z=>{var $=d3();K("click",$,()=>t.onRetry?.()),x(Z,$)};W(V,Z=>{t.onRetry&&Z(G)})}N(()=>j(z,s())),x(E,D)},R=E=>{var D=v3(),F=p(D,!0);h(D),N(()=>j(F,a())),x(E,D)},P=E=>{var D=Pe(),F=fe(D);he(F,17,()=>i(f),z=>z.id,(z,V)=>{var G=p3(),Z=p(G);we(Z);var $=_(Z,2),Q=p($),te=p(Q,!0);h(Q);var J=_(Q,2);{var B=q=>{var X=h3(),Y=p(X,!0);h(X),N(()=>j(Y,i(V).sublabel)),x(q,X)};W(J,q=>{i(V).sublabel&&q(B)})}h($),h(G),N(q=>{Ul(Z,q),Z.disabled=o(),j(te,i(V).label)},[()=>n().includes(i(V).id)]),K("change",Z,()=>k(i(V).id)),x(z,G)}),x(E,D)};W(A,E=>{r()?E(T):s()?E(L,1):t.items.length===0?E(R,2):E(P,-1)})}h(b);var M=_(b,2),O=p(M);h(M),h(y),N(()=>{g=ue(y,1,"sh3-picker svelte-1rlwvrb",null,g,{"sh3-picker--sm":c()==="sm","sh3-picker--disabled":o()}),j(O,`${i(m)??""} of ${i(v)??""} selected`)}),x(e,y),ae()}de(["click","change"]);function Vh(e,t){se(t,!0);const n=new Set(["sh3-admin-app","sh3-store-app"]);let r=ee(t,"value",31,()=>ce([])),s=ee(t,"disabled",3,!1),a=ee(t,"size",3,"md");const l=U(()=>is().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 o(c){r(c),t.onchange?.(c)}Fh(e,{get items(){return i(l)},get value(){return r()},onchange:o,get disabled(){return s()},get size(){return a()},emptyText:"No apps installed."}),ae()}const Ut=ce({users:[],loading:!1,error:null});let ps=null;function Fu(){return ps||(Ut.loading=!0,Ut.error=null,ps=(async()=>{try{const e=await fetch("/api/admin/users",{credentials:"include"});if(!e.ok){Ut.error=`GET /api/admin/users failed: ${e.status}`;return}Ut.users=await e.json()}catch(e){Ut.error=e.message}finally{Ut.loading=!1,ps=null}})(),ps)}function Uh(e,t){se(t,!0);let n=ee(t,"value",31,()=>ce([])),r=ee(t,"disabled",3,!1),s=ee(t,"size",3,"md");Ut.users.length===0&&!Ut.loading&&!Ut.error&&Fu();const a=U(()=>Ut.users.map(o=>({id:o.id,label:o.displayName||o.username,sublabel:o.username})));function l(o){n(o),t.onchange?.(o)}Fh(e,{get items(){return i(a)},get value(){return n()},onchange:l,get loading(){return Ut.loading},get error(){return Ut.error},onRetry:()=>void Fu(),emptyText:"No users found.",get disabled(){return r()},get size(){return s()}}),ae()}const b3=/^[a-zA-Z0-9.\-_]+$/,g3=/^[a-zA-Z0-9.\-_]*$/;function oi(e,t){if(e.length===0)throw new Error(`fieldAddress: ${t} is empty`);if(!b3.test(e))throw new Error(`fieldAddress: invalid ${t} "${e}" (must match [a-zA-Z0-9.\\-_]+)`)}function Hh(e){if(!g3.test(e))throw new Error(`fieldAddress: invalid slotId "${e}"`)}function y3(e){return oi(e.shardId,"shardId"),oi(e.fieldId,"fieldId"),e.slotId!==void 0&&Hh(e.slotId),`${e.shardId}::${e.slotId??""}::${e.fieldId}`}function _3(e){const t=e.split("::");if(t.length!==3)throw new Error(`fieldAddress: malformed "${e}" (expected three ::-separated parts)`);const[n,r,s]=t;oi(n,"shardId"),oi(s,"fieldId"),Hh(r);const a={shardId:n,fieldId:s};return r.length>0&&(a.slotId=r),a}const w3={hotInstall:typeof Blob<"u"&&typeof URL.createObjectURL=="function"},Kh=["__sh3core__","shell","sh3-store","sh3-admin"],Yh=Object.freeze(Object.defineProperty({__proto__:null,AppPicker:Vh,Button:Jn,COLOR_PICKER_POINT:_v,CONFLICT_RENDERER_POINT:bv,Collapsible:eS,ColorSwatch:Bh,ConflictPermissionError:gv,ConflictSessionOrphanedError:z1,ConsentDeniedError:Rh,FRAMEWORK_SHARD_IDS:Kh,Field:oS,FilePicker:HS,IconToggleGroup:RS,NumberInput:yS,PERMISSION_DOCUMENTS_BROWSE:Eh,PERMISSION_DOCUMENTS_READ:Ih,PERMISSION_DOCUMENTS_WRITE:Ah,PERMISSION_KEYS_MINT:Ch,PERMISSION_STATE_MANAGE:Ds,PERMISSION_SYNC_PEER:mx,PERMISSION_SYNC_POLICY:bx,RangeSlider:zS,SHELL_MODE_CONTRIBUTION_POINT:Cs,ScopeEscalationError:Th,Segmented:Nh,Select:i3,Slider:qh,SliderGroup:NS,Textarea:fS,UserPicker:Uh,VERSION:fn,activeShards:mr,buildPackageMeta:Ki,capabilities:w3,clearTokenOverrides:Hx,closeTab:mc,collapseChild:E0,dockFloat:dh,dockIntoActiveLayout:gc,erroredShards:si,expandChild:I0,fetchBundle:Hi,fetchRegistries:Dh,fieldAddressFromString:_3,fieldAddressToString:y3,focusTab:S0,focusView:zi,getActiveApp:Xl,getAuthHeader:qi,getIconSprite:Oh,getTokenOverrides:zh,getUser:Zr,inspectActiveLayout:oh,isAdmin:kt,isAuthenticated:nl,isGuest:ph,launchApp:Mn,listRegisteredApps:is,listVerbs:ac,locateSlot:vh,popoutView:uh,provideIcons:Yx,pushNavEntry:aw,registerConsentListener:Lh,registerShellMode:Vx,registeredShards:Zt,resolveConsent:ll,returnToHome:cs,runVerbProgrammatic:gh,setTokenOverrides:Ux,sh3:Et,spawnSatellite:Ui,spliceIntoActiveLayout:x0,subscribeKeyRevocation:kc,unregisterApp:pc,validateRegistryIndex:Ph},Symbol.toStringTag,{value:"Module"})),k3="/assets/SH3-BG5NVpSD.png",x3="https://cdn.jsdelivr.net/npm/p5@1.11.13/lib/p5.min.js";let ms=null;function S3(){return ms||(ms=new Promise((e,t)=>{const n=window.p5;if(n){e(n);return}const r=document.createElement("script");r.src=x3,r.async=!0,r.onload=()=>e(window.p5),r.onerror=s=>{ms=null,t(s)},document.head.appendChild(r)}),ms)}var E3=I('<h1 class="sh3-title-fallback svelte-foqg2v">SH3</h1>'),I3=I('<div class="sh3-title svelte-foqg2v"></div>');function A3(e,t){se(t,!0);const n="`.-':;,^\"~=+<>*?!/\\|()[]{}x1ltzrcvunsXYUJCLQ0OZmwqpdbkhao*#MW&8%B@$",r=64,s=Math.floor(64/(442/193)),a=8,l=7,o=80,c=r*a,u=s*l,d=o/u;let f=H(void 0),v=null,m=H(!1);const k=()=>b=>{const T=getComputedStyle(document.documentElement).getPropertyValue("--sh3-accent").trim();let L,R,P=!1;b.setup=()=>{b.createCanvas(c,u),b.noSmooth(),b.noStroke(),b.textAlign(b.CENTER,b.CENTER),b.textFont("monospace"),b.textSize(10),b.textStyle(b.BOLD),R=b.loadImage(k3,()=>{L=b.createGraphics(r,s),L.pixelDensity(1),L.image(R,0,0,r,s),L.loadPixels(),P=!0},()=>{S(m,!0)})},b.draw=()=>{if(!P)return;const M=b.millis()*.001;let O;b.clear(),b.background(0,0),b.fill(T);for(let E=0;E<s;E++)for(let D=0;D<r;D++){const F=(E*r+D)*4;if(L.pixels[F]<64){if(O=b.noise(D/r*2,E/s*2,M*.15),O>.33)continue;b.text(n[Math.floor(O*n.length*.25)],(D+.5)*a,(E+.5)*l);continue}O=b.noise(D/r*4,E/s*4,M*.5),b.text(n[Math.floor(O*n.length)],(D+.5)*a,(E+.5)*l)}}};Se(()=>{if(i(m))return;let b=!1;return S3().then(A=>{if(!(b||!i(f)))try{v=new A(k(),i(f))}catch(T){console.error("[Sh3Title] p5 sketch failed to start",T),S(m,!0)}}).catch(A=>{console.error("[Sh3Title] failed to load p5 from CDN",A),S(m,!0)}),()=>{b=!0,v&&(v.remove(),v=null)}});var y=Pe(),g=fe(y);{var C=b=>{var A=E3();x(b,A)},w=b=>{var A=I3();He(A,"",{},{width:"216.7195767195767px",height:"80px","--sh3-title-scale":d}),je(A,T=>S(f,T),()=>i(f)),x(b,A)};W(g,b=>{i(m)?b(C):b(w,-1)})}x(e,y),ae()}async function Er(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 za={async list(){return(await Er("/api/projects",{method:"GET"})).projects},async listAll(){return(await Er("/api/projects/all",{method:"GET"})).projects},async get(e){return Er(`/api/projects/${encodeURIComponent(e)}`,{method:"GET"})},async create(e){return Er("/api/projects",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e)})},async update(e,t){return Er(`/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 Er(`/api/projects/${encodeURIComponent(e)}${n}`,{method:"DELETE"})}};var C3=I(`<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 T3(e,t){se(t,!0);let n=H(void 0),r=H(!1),s=H(!1);Se(()=>{i(n)?.focus()});async function a(){if(!i(r)){S(r,!0);try{await t.onConfirm({wipeData:i(s)})}finally{t.close()}}}function l(){i(r)||(t.onCancel?.(),t.close())}var o=C3(),c=p(o),u=p(c);h(c);var d=_(c,4),f=p(d);we(f);var v=_(f,2),m=_(p(v)),k=p(m);h(m),h(v),h(d);var y=_(d,2),g=p(y);je(g,w=>S(n,w),()=>i(n));var C=_(g,2);h(y),h(o),N(()=>{j(u,`Delete project '${t.projectName??""}'?`),f.disabled=i(r),j(k,`<dataDir>/docs/${t.projectId??""}/`),g.disabled=i(r),C.disabled=i(r)}),Es(f,()=>i(s),w=>S(s,w)),K("click",g,l),K("click",C,a),x(e,o),ae()}de(["click"]);var R3=I('<p class="project-id svelte-1oy3640">ID: <code class="svelte-1oy3640"> </code></p>'),L3=I('<span class="hint svelte-1oy3640">Your id: <code class="svelte-1oy3640"> </code> </span>'),M3=I('<p class="error svelte-1oy3640"> </p>'),P3=I('<button type="button" class="danger svelte-1oy3640">Delete</button>'),D3=I('<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 z3(e,t){se(t,!0);let n=ee(t,"project",3,null);const r=U(()=>n()!==null),s=U(Zr);let a=H(ce(_e(()=>n()?.name??""))),l=H(ce(_e(()=>n()?.description??""))),o=H(ce(_e(()=>{if(n())return[...n().members];const J=Zr()?.id;return J?[J]:[]}))),c=H(ce(_e(()=>n()?[...n().appAllowlist]:[]))),u=H(!1),d=H(null);async function f(){if(!i(a).trim()){S(d,"Name is required");return}S(u,!0),S(d,null);const J={name:i(a).trim(),description:i(l).trim()||void 0,members:i(o),appAllowlist:i(c)};try{i(r)&&n()?await za.update(n().id,J):await za.create(J),await li(),t.onClose()}catch(B){S(d,B.message,!0)}finally{S(u,!1)}}function v(){if(!i(r)||!n())return;const J=n();Qt.open(T3,{projectName:J.name,projectId:J.id,onConfirm:async({wipeData:B})=>{S(u,!0),S(d,null);try{await za.delete(J.id,{wipeData:B}),await li(),t.onClose()}catch(q){S(d,q.message,!0)}finally{S(u,!1)}}})}var m=D3(),k=p(m),y=p(k),g=p(y,!0);h(y);var C=_(y,2);{var w=J=>{var B=R3(),q=_(p(B)),X=p(q,!0);h(q),h(B),N(()=>j(X,n().id)),x(J,B)};W(C,J=>{i(r)&&J(w)})}var b=_(C,2),A=_(p(b),2);we(A),h(b);var T=_(b,2),L=_(p(T),2);Ll(L),re(L,"rows",2),h(T);var R=_(T,2),P=_(p(R),2);Uh(P,{get disabled(){return i(u)},get value(){return i(o)},set value(J){S(o,J,!0)}});var M=_(P,2);{var O=J=>{var B=L3(),q=_(p(B)),X=p(q,!0);h(q);var Y=_(q);h(B),N(()=>{j(X,i(s).id),j(Y,` (${i(s).username??i(s).displayName??""})`)}),x(J,B)};W(M,J=>{i(s)&&J(O)})}h(R);var E=_(R,2),D=_(p(E),2);Vh(D,{get disabled(){return i(u)},get value(){return i(c)},set value(J){S(c,J,!0)}}),h(E);var F=_(E,2);{var z=J=>{var B=M3(),q=p(B,!0);h(B),N(()=>j(q,i(d))),x(J,B)};W(F,J=>{i(d)&&J(z)})}h(k);var V=_(k,2),G=p(V),Z=p(G,!0);h(G);var $=_(G,2),Q=_($,2);{var te=J=>{var B=P3();N(()=>B.disabled=i(u)),K("click",B,v),x(J,B)};W(Q,J=>{i(r)&&J(te)})}h(V),h(m),N(()=>{j(g,i(r)?`Edit ${n().name}`:"Create Project"),A.disabled=i(u),L.disabled=i(u),G.disabled=i(u),j(Z,i(r)?"Save":"Create"),$.disabled=i(u)}),Ae(A,()=>i(a),J=>S(a,J)),Ae(L,()=>i(l),J=>S(l,J)),K("click",G,f),K("click",$,function(...J){t.onClose?.apply(this,J)}),x(e,m),ae()}de(["click"]);const Ht=ce({projects:[],loading:!1,error:null});async function li(){Ht.loading=!0,Ht.error=null;try{Ht.projects=await za.list()}catch(e){Ht.error=e.message}finally{Ht.loading=!1}}const cl="projects:manage";let ul=null;function j3(){const e=ul;return ul=null,e}function dl(e){ul=e,Re.open(cl,{title:e?`Edit ${e.name}`:"Create Project",size:{w:560,h:620},dismissable:!0})}const Wh={manifest:{id:"__projects__",label:"Projects",version:fn,views:[{id:cl,label:"Project Manager"}]},activate(e){li(),typeof document<"u"&&document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&li()});const t={mount(r,s){const a=j3(),l=Re.list(),o=l.length>0?l[l.length-1].id:null,u=Fe(z3,{target:r,props:{project:a,onClose:()=>{o&&Re.close(o)}}});return{unmount(){Ze(u)}}}};e.registerView(cl,t),e.actions.register({id:"sh3.project.create",label:"Create Project…",scope:["home","app"],paletteItem:!0,disabled:()=>!kt(),run:()=>{kt()&&dl(null)}}),e.actions.register({id:"sh3.project.manage",label:"Manage Project…",scope:["home","app"],submenu:!0,paletteItem:!0,disabled:()=>!kt()});const n=new Map;rs(()=>{Se(()=>{const r=new Set;for(const s of Ht.projects){if(r.add(s.id),n.has(s.id))continue;const a=e.actions.register({id:`sh3.project.manage:${s.id}`,label:s.name,scope:["home","app"],submenuOf:"sh3.project.manage",run:()=>{const l=Ht.projects.find(o=>o.id===s.id);l&&dl(l)}});n.set(s.id,a)}for(const s of[...n.keys()])r.has(s)||(n.get(s)(),n.delete(s))})})},autostart(){}};var O3=I('<button type="button" class="project-card-edit svelte-yosqc3" aria-label="Edit project" title="Edit project">⚙</button>'),N3=I('<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>'),q3=I('<section class="projects-section svelte-yosqc3"><h2 class="projects-heading svelte-yosqc3">Projects</h2> <div class="projects-grid svelte-yosqc3"></div></section>');function B3(e,t){se(t,!0);const n=U(()=>Ht.projects.length>0),r=U(()=>pr.activeProjectId),s=U(kt);function a(d){ah(i(r)===d?null:d)}function l(d,f){f.stopPropagation();const v=Ht.projects.find(m=>m.id===d)??null;v&&dl(v)}var o=Pe(),c=fe(o);{var u=d=>{var f=q3(),v=_(p(f),2);he(v,21,()=>Ht.projects,m=>m.id,(m,k)=>{var y=N3(),g=p(y);let C;var w=p(g),b=p(w,!0);h(w);var A=_(w,2),T=p(A);h(A),h(g);var L=_(g,2);{var R=P=>{var M=O3();K("click",M,O=>l(i(k).id,O)),x(P,M)};W(L,P=>{i(s)&&P(R)})}h(y),N(()=>{C=ue(g,1,"project-card svelte-yosqc3",null,C,{active:i(r)===i(k).id}),re(g,"title",i(k).description??`${i(k).members.length} member${i(k).members.length===1?"":"s"}`),j(b,i(k).name),j(T,`${i(k).members.length??""} member${i(k).members.length===1?"":"s"}`)}),K("click",g,()=>a(i(k).id)),x(m,y)}),h(v),h(f),x(d,f)};W(c,d=>{i(n)&&d(u)})}x(e,o),ae()}de(["click"]);let yt=null;function F3(e){yt=e}function V3(){yt=null}function br(){return yt?.user.layouts??[]}function U3(e){yt&&(yt.user.layouts=[...yt.user.layouts,e])}function Xh(e,t){if(!yt)return;const n=yt.user.layouts.findIndex(s=>s.id===e);if(n<0)return;const r=[...yt.user.layouts];r[n]={...r[n],...t},yt.user.layouts=r}function H3(e){yt&&(yt.user.layouts=yt.user.layouts.filter(t=>t.id!==e))}function K3(){yt={ephemeral:{},session:{},workspace:{},user:{layouts:[]}}}K3();function Wi(e,t){if(e.type==="slot")return e.viewId===null||!t(e.viewId)?null:e;if(e.type==="tabs"){const s=[];let a=!1,l=0;for(let o=0;o<e.tabs.length;o++){const c=e.tabs[o];c.viewId!==null&&t(c.viewId)&&(o===e.activeTab&&(a=!0,l=s.length),s.push(c))}return s.length===0?null:{type:"tabs",tabs:s,activeTab:a?l:0}}const n=[],r=[];for(let s=0;s<e.children.length;s++){const a=Wi(e.children[s],t);a!==null&&(n.push(a),r.push(e.sizes[s]??1))}return n.length===0?null:n.length===1?n[0]:{type:"split",direction:e.direction,sizes:r,children:n}}function Gh(e){return JSON.parse(JSON.stringify(e))}function Y3(e,t){const n=Re.list().find(s=>s.id===e);if(!n)return null;const r=Wi(n.content,t);return r===null?null:{size:{w:n.size.w,h:n.size.h},content:Gh(r)}}function Jh(e,t,n){const r=Wi(e.content,t);return r===null?(n(`Saved layout "${e.name}" has no available standalone views`,"warn"),""):Re.openWithContent({content:Gh(r),size:{w:e.size.w,h:e.size.h},title:e.name})}var W3=I('<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>'),X3=I('<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 G3(e,t){se(t,!0);const n=U(br),r=Ri("__layouts__");function s(f){return Vs().some(v=>v.viewId===f)}function a(f,v){yn.notify(f,{level:v})}function l(f){const v=br().find(m=>m.id===f);v&&Jh(v,s,a)}function o(f,v){f.preventDefault(),r.set({type:"saved-layout",ref:{layoutId:v}}),Et.actions.openContextMenu({x:f.clientX,y:f.clientY,scope:{element:"saved-layout"}})}var c=Pe(),u=fe(c);{var d=f=>{var v=X3(),m=_(p(v),2);he(m,21,()=>i(n),k=>k.id,(k,y)=>{var g=W3();let C,w;var b=p(g),A=p(b),T=p(A);h(A),h(b);var L=_(b,2),R=p(L,!0);h(L),h(g),N(()=>{C=ue(g,1,"saved-layout-card svelte-1ncltuf",null,C,{"saved-layout-card--tinted":i(y).appearance?.color}),re(g,"data-saved-layout-id",i(y).id),w=He(g,"",w,{"--card-color":i(y).appearance?.color??"transparent"}),re(T,"href",`${Un}#${i(y).appearance?.icon??"eye"??""}`),j(R,i(y).name)}),K("click",g,()=>l(i(y).id)),K("contextmenu",g,P=>o(P,i(y).id)),x(k,g)}),h(m),h(v),x(f,v)};W(u,f=>{i(n).length>0&&f(d)})}x(e,c),ae()}de(["click","contextmenu"]);const Vu=["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 J3=I('<span class="sh3-icon-picker__label svelte-h9dluc"> </span>'),Z3=I('<button type="button"><svg viewBox="0 0 24 24" class="svelte-h9dluc"><use></use></svg></button>'),Q3=I('<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 $3(e,t){se(t,!0);let n=ee(t,"value",15,void 0),r=ee(t,"disabled",3,!1),s=H("");const a=U(()=>i(s).trim()===""?Vu:Vu.filter(g=>g.includes(i(s).trim().toLowerCase())));function l(g){r()||(n(g),t.onchange?.(g))}var o=Q3();let c;var u=p(o);{var d=g=>{var C=J3(),w=p(C,!0);h(C),N(()=>j(w,t.label)),x(g,C)};W(u,g=>{t.label&&g(d)})}var f=_(u,2);we(f);var v=_(f,2),m=p(v);let k;var y=_(m,2);he(y,16,()=>i(a),g=>g,(g,C)=>{var w=Z3();let b;var A=p(w),T=p(A);h(A),h(w),N(()=>{b=ue(w,1,"sh3-icon-picker__tile svelte-h9dluc",null,b,{"sh3-icon-picker__tile--selected":n()===C}),re(w,"aria-label",C),re(w,"title",C),w.disabled=r(),re(T,"href",`${Un}#${C??""}`)}),K("click",w,()=>l(C)),x(g,w)}),h(v),h(o),N(()=>{c=ue(o,1,"sh3-icon-picker svelte-h9dluc",null,c,{"sh3-icon-picker--disabled":r()}),f.disabled=r(),k=ue(m,1,"sh3-icon-picker__tile sh3-icon-picker__tile--none svelte-h9dluc",null,k,{"sh3-icon-picker__tile--selected":n()===void 0}),m.disabled=r()}),Ae(f,()=>i(s),g=>S(s,g)),K("click",m,()=>l(void 0)),x(e,o),ae()}de(["click"]);var eE=I('<em class="svelte-1v8d4f6">(empty = default)</em>'),tE=I('<button type="button" class="link svelte-1v8d4f6">Change icon</button>'),nE=I('<!> <button type="button" class="link link--align-right svelte-1v8d4f6">Hide picker</button>',1),rE=I('<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 Zh(e,t){se(t,!0);const n=_e(()=>t.initialAppearance);let r=H(ce(n?.icon)),s=H(ce(n?.color)),a=H(ce(_e(()=>t.entityLabel))),l=H(n?.icon!==void 0);const o=U(()=>i(a).trim()),c=U(()=>t.requireLabel&&i(o)===""),u=U(()=>i(o)===""?t.entityLabel:i(o)),d=U(()=>i(r)??t.defaultIcon),f=U(()=>n!==void 0);function v(){i(c)||(t.onSave({label:i(o),icon:i(r),color:i(s)}),t.close())}function m(){t.onReset(),t.close()}var k=rE(),y=p(k),g=p(y);h(y);var C=_(y,2),w=p(C);let b,A;var T=p(w),L=p(T),R=p(L);h(L),h(T);var P=_(T,2),M=p(P,!0);h(P),h(w),h(C);var O=_(C,2),E=p(O),D=_(p(E));{var F=Y=>{var oe=eE();x(Y,oe)};W(D,Y=>{t.requireLabel||Y(F)})}h(E);var z=_(E,2);we(z),h(O);var V=_(O,2),G=_(p(V),2);{var Z=Y=>{var oe=tE();K("click",oe,()=>S(l,!0)),x(Y,oe)},$=Y=>{var oe=nE(),ve=fe(oe);$3(ve,{get value(){return i(r)},set value(ge){S(r,ge,!0)}});var ke=_(ve,2);K("click",ke,()=>S(l,!1)),x(Y,oe)};W(G,Y=>{i(l)?Y($,-1):Y(Z)})}h(V);var Q=_(V,2),te=_(p(Q),2);{let Y=U(()=>i(s)??"#888888");Bh(te,{get value(){return i(Y)},onchange:oe=>S(s,oe,!0)})}h(Q);var J=_(Q,2),B=p(J),q=_(B,2),X=_(q,2);h(J),h(k),N(()=>{j(g,`Customize ${t.entityLabel??""}`),b=ue(w,1,"preview-card svelte-1v8d4f6",null,b,{"preview-card--tinted":i(s)!==void 0}),A=He(w,"",A,{"--card-color":i(s)??"transparent"}),re(R,"href",`${Un}#${i(d)??""}`),j(M,i(u)),re(z,"placeholder",t.entityLabel),B.disabled=i(c),q.disabled=!i(f)}),Ae(z,()=>i(a),Y=>S(a,Y)),K("click",B,v),K("click",q,m),K("click",X,()=>t.close()),x(e,k),ae()}de(["click"]);let sr=null;function sE(e){sr=e}function aE(){sr=null}function Qh(e){return e.icon===void 0&&e.color===void 0&&e.label===void 0}function fl(e){const t=sr?.user.overrides;if(!t)return;const n=t[e];if(n&&!Qh(n))return n}function Uu(e,t){if(!sr)return;const r={...sr.user.overrides};t===void 0||Qh(t)?delete r[e]:r[e]=t,sr.user.overrides=r}function iE(){sr={ephemeral:{},session:{},workspace:{},user:{overrides:{}}}}iE();function oE(){const e=ua();return!e||e.type!=="app"?null:e.ref}function lE(e){const t=oE();if(!t)return;const n=is().find(o=>o.id===t.appId),r=n?.label??t.appId,s=n?.icon??"box",a=fl(t.appId),l={entityLabel:a?.label??r,initialAppearance:a,defaultIcon:s,requireLabel:!1,onSave:o=>{Uu(t.appId,{label:o.label===""?void 0:o.label,icon:o.icon,color:o.color})},onReset:()=>Uu(t.appId,void 0)};Qt.open(Zh,l)}const $h={manifest:{id:"__app-appearance__",label:"App Appearance",version:fn,views:[]},activate(e){const t=e.state({user:{overrides:{}}});sE(t);const n={id:"app.customize",label:"Customize…",scope:{element:"app"},contextItem:!0,group:"appearance",run:lE};e.actions.register(n)},autostart(){},deactivate(){aE()}};var cE=I('<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>'),uE=I('<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>'),dE=I('<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>'),fE=I('<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>'),vE=I('<p class="sh3-home-empty svelte-11gxeaw"><!></p>'),hE=I('<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 pE(e,t){se(t,!0);const n=Ri("__sh3core__");function r(F,z){F.preventDefault(),n.set({type:"app",ref:{appId:z}}),Et.actions.openContextMenu({x:F.clientX,y:F.clientY,scope:{element:"app"}})}let s=H("");const a=U(is),l=U(kt),o=U(()=>pr.activeProjectId?Ht.projects.find(F=>F.id===pr.activeProjectId)??null:null);function c(F,z){if(!z)return!0;const V=z.toLowerCase();return F.label.toLowerCase().includes(V)||F.id.toLowerCase().includes(V)}function u(F){return i(o)?i(o).appAllowlist.includes(F):!0}const d=U(()=>i(a).filter(F=>!F.admin&&c(F,i(s))&&u(F.id))),f=U(()=>i(a).filter(F=>F.admin&&c(F,i(s)))),v=U(()=>i(d).length+(i(l)?i(f).length:0));var m=hE(),k=p(m),y=p(k),g=p(y);A3(g,{});var C=_(g,2),w=p(C);h(C),Mt(2),h(y),Mt(2),h(k);var b=_(k,2),A=p(b);we(A),h(b);var T=_(b,2);B3(T,{});var L=_(T,2);G3(L,{});var R=_(L,2);{var P=F=>{var z=uE(),V=_(p(z),2);he(V,21,()=>i(d),G=>G.id,(G,Z)=>{const $=U(()=>fl(i(Z).id));var Q=cE();let te,J;var B=p(Q),q=p(B),X=p(q);h(q),h(B);var Y=_(B,2),oe=p(Y,!0);h(Y),h(Q),N(()=>{te=ue(Q,1,"sh3-home-card svelte-11gxeaw",null,te,{"sh3-home-card--tinted":i($)?.color}),J=He(Q,"",J,{"--card-color":i($)?.color??"transparent"}),re(X,"href",`${Un}#${i($)?.icon??i(Z).icon??"box"??""}`),j(oe,i($)?.label??i(Z).label)}),K("click",Q,()=>Mn(i(Z).id)),K("contextmenu",Q,ve=>r(ve,i(Z).id)),x(G,Q)}),h(V),h(z),x(F,z)};W(R,F=>{i(d).length>0&&F(P)})}var M=_(R,2);{var O=F=>{var z=fE(),V=_(p(z),2);he(V,21,()=>i(f),G=>G.id,(G,Z)=>{const $=U(()=>fl(i(Z).id));var Q=dE();let te,J;var B=p(Q),q=p(B),X=p(q);h(q),h(B);var Y=_(B,2),oe=p(Y,!0);h(Y),h(Q),N(()=>{te=ue(Q,1,"sh3-home-card svelte-11gxeaw",null,te,{"sh3-home-card--tinted":i($)?.color}),J=He(Q,"",J,{"--card-color":i($)?.color??"transparent"}),re(X,"href",`${Un}#${i($)?.icon??i(Z).icon??"box"??""}`),j(oe,i($)?.label??i(Z).label)}),K("click",Q,()=>Mn(i(Z).id)),K("contextmenu",Q,ve=>r(ve,i(Z).id)),x(G,Q)}),h(V),h(z),x(F,z)};W(M,F=>{i(l)&&i(f).length>0&&F(O)})}var E=_(M,2);{var D=F=>{var z=vE(),V=p(z);{var G=$=>{var Q=on("No apps registered.");x($,Q)},Z=$=>{var Q=on();N(()=>j(Q,`No apps match “${i(s)??""}”.`)),x($,Q)};W(V,$=>{i(a).length===0?$(G):$(Z,-1)})}h(z),x(F,z)};W(E,F=>{i(v)===0&&F(D)})}h(m),N(()=>j(w,`v${fn}`)),Ae(A,()=>i(s),F=>S(s,F)),x(e,m),ae()}de(["click","contextmenu"]);var mE=I('<p class="keys-peers-muted svelte-1s56qq">Loading...</p>'),bE=I('<p class="keys-peers-error svelte-1s56qq"> </p>'),gE=I('<p class="keys-peers-muted svelte-1s56qq">No keys yet. Shards will ask your permission before creating one.</p>'),yE=I('<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),_E=I('<button type="button" class="keys-peers-btn-danger svelte-1s56qq">Revoke</button>'),wE=I('<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>'),kE=I('<ul class="keys-peers-list svelte-1s56qq"></ul>'),xE=I('<div class="keys-peers svelte-1s56qq"><div class="keys-peers-header svelte-1s56qq"><h2 class="svelte-1s56qq">Keys &amp; Peers</h2></div> <!></div>');function SE(e,t){se(t,!0);let n=H(ce([])),r=H(null),s=H(!0),a=H(null);async function l(){S(r,null),S(s,!0);try{const y=await fetch("/api/keys",{credentials:"include"});if(!y.ok)throw new Error(`HTTP ${y.status}`);S(n,await y.json(),!0)}catch(y){S(r,y instanceof Error?y.message:String(y),!0)}finally{S(s,!1)}}async function o(y){S(a,null);const g=await fetch(`/api/keys/${encodeURIComponent(y)}`,{method:"DELETE",credentials:"include"});(g.ok||g.status===404)&&S(n,i(n).filter(C=>C.id!==y),!0)}function c(y){return new Date(y).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}Se(()=>{l()}),Se(()=>kc("*",()=>{l()}));var u=xE(),d=_(p(u),2);{var f=y=>{var g=mE();x(y,g)},v=y=>{var g=bE(),C=p(g);h(g),N(()=>j(C,`Failed to load: ${i(r)??""}`)),x(y,g)},m=y=>{var g=gE();x(y,g)},k=y=>{var g=kE();he(g,21,()=>i(n),C=>C.id,(C,w)=>{var b=wE(),A=p(b),T=p(A),L=p(T,!0);h(T);var R=_(T,2),P=p(R);h(R);var M=_(R,2),O=p(M);h(M);var E=_(M,2),D=p(E);h(E),h(A);var F=_(A,2),z=p(F);{var V=Z=>{var $=yE(),Q=fe($),te=_(Q,2);K("click",Q,()=>o(i(w).id)),K("click",te,()=>{S(a,null)}),x(Z,$)},G=Z=>{var $=_E();K("click",$,()=>{S(a,i(w).id,!0)}),x(Z,$)};W(z,Z=>{i(a)===i(w).id?Z(V):Z(G,-1)})}h(F),h(b),N((Z,$,Q)=>{j(L,i(w).label),j(P,`Minted by: ${i(w).mintedByShardId??"system"??""}${i(w).peerRole||i(w).peerId?` · Peer: ${i(w).peerRole??"—"}${i(w).peerId?` (${i(w).peerId})`:""}`:""}`),j(O,`Scopes: ${Z??""}`),j(D,`Created: ${$??""} · Expires: ${Q??""}`)},[()=>i(w).scopes.join(", "),()=>c(i(w).createdAt),()=>i(w).expiresAt?c(i(w).expiresAt):"never"]),x(C,b)}),h(g),x(y,g)};W(d,y=>{i(s)?y(f):i(r)?y(v,1):i(n).length===0?y(m,2):y(k,-1)})}h(u),x(e,u),ae()}de(["click"]);var EE=I('<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 ep(e,t){se(t,!0);let n=ee(t,"confirmLabel",3,"Confirm"),r=ee(t,"cancelLabel",3,"Cancel"),s=ee(t,"confirmTone",3,"default"),a=H(void 0),l=H(!1);Se(()=>{i(a)?.focus()});async function o(){if(!i(l)){S(l,!0);try{await t.onConfirm()}finally{t.close()}}}function c(){i(l)||(t.onCancel?.(),t.close())}var u=EE(),d=p(u),f=p(d,!0);h(d);var v=_(d,2),m=p(v,!0);h(v);var k=_(v,2),y=p(k),g=p(y,!0);h(y),je(y,A=>S(a,A),()=>i(a));var C=_(y,2);let w;var b=p(C,!0);h(C),h(k),h(u),N(()=>{j(f,t.title),j(m,t.body),y.disabled=i(l),j(g,r()),w=ue(C,1,"confirm-dialog-btn svelte-1k1962w",null,w,{"confirm-dialog-btn-danger":s()==="danger","confirm-dialog-btn-default":s()==="default"}),C.disabled=i(l),j(b,n())}),K("click",y,c),K("click",C,o),x(e,u),ae()}de(["click"]);const Hu=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 go(e,t){const n=Object.keys(t),r=n.filter(l=>!Hu.has(l)),s=n.filter(l=>Hu.has(l)),a=[`const __m__ = globalThis.${e};`];r.length>0&&a.push(`export const { ${r.join(", ")} } = __m__;`);for(const l of s)a.push(`const __r_${l}__ = __m__['${l}']; export { __r_${l}__ as ${l} };`);return a.push("export default __m__.default;"),URL.createObjectURL(new Blob([a.join(`
11
- `)],{type:"application/javascript"}))}const Ic=globalThis;Ic.__sh3__=Yh;Ic.__sh3_svelte__=Ff;Ic.__sh3_svelte_internal_client__=ev;const Ac={"sh3-core":go("__sh3__",Yh),svelte:go("__sh3_svelte__",Ff),"svelte/internal/client":go("__sh3_svelte_internal_client__",ev)};Ac["svelte/internal/disclose-version"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));Ac["sh3-core/tokens.css"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));const IE=/(?:from|import)\s*(['"])(sh3-core(?:\/[^'"]*)?|svelte(?:\/[^'"]*)?)\1/g;function AE(e){return e.replace(IE,(t,n,r)=>{const s=Ac[r];return s?`${t.startsWith("from")?"from":"import"} '${s}'`:t})}async function fa(e){const t=new TextDecoder().decode(e),n=AE(t),r=new Blob([n],{type:"application/javascript"}),s=URL.createObjectURL(r);try{const a=await import(s),l={shards:[],apps:[]};for(const o of Object.values(a)){if(!o||typeof o!="object"||!("manifest"in o))continue;const c=o;CE(c)?l.shards.push(c):TE(c)&&l.apps.push(c)}if(l.shards.length===0&&l.apps.length===0)throw new Error('Bundle has no exports with a "manifest" property — expected at least one shard or app');return l}finally{URL.revokeObjectURL(s)}}function CE(e){return"activate"in e&&typeof e.activate=="function"&&Array.isArray(e.manifest.views)}function TE(e){return"initialLayout"in e&&Array.isArray(e.manifest.requiredShards)}const RE="sh3-packages",LE=1,Hs="bundles",Qr="meta";function va(){return new Promise((e,t)=>{const n=indexedDB.open(RE,LE);n.onupgradeneeded=()=>{const r=n.result;r.objectStoreNames.contains(Hs)||r.createObjectStore(Hs),r.objectStoreNames.contains(Qr)||r.createObjectStore(Qr)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}function gr(e,t,n,r){return new Promise((s,a)=>{const o=e.transaction(t,n).objectStore(t),c=r(o);c.onsuccess=()=>s(c.result),c.onerror=()=>a(c.error)})}async function tp(e,t,n){const r=await va();await gr(r,Hs,"readwrite",s=>s.put(t,e)),await gr(r,Qr,"readwrite",s=>s.put(n,e)),r.close()}async function np(e){const t=await va(),n=await gr(t,Hs,"readonly",r=>r.get(e));return t.close(),n??null}async function ME(e){const t=await va(),n=await gr(t,Qr,"readonly",r=>r.get(e));return t.close(),n??null}async function rp(){const e=await va(),t=await gr(e,Qr,"readonly",n=>n.getAll());return e.close(),t??[]}async function PE(e){const t=await va();await gr(t,Hs,"readwrite",n=>n.delete(e)),await gr(t,Qr,"readwrite",n=>n.delete(e)),t.close()}function Cc(e,t){for(const n of e.shards)n.manifest={...n.manifest,version:t.version},Fi(n);for(const n of e.apps)n.manifest={...n.manifest,version:t.version},zs(n)}const DE={"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 yo(e){return DE[e]??{title:e,description:"Unknown permission."}}function Tc(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 Rc(e,t,n){if(!t.integrity)return{success:!1,hotLoaded:!1,error:"Missing integrity hash — refusing to install unverified bundle"};try{await xc(e,t.integrity)}catch(l){return{success:!1,hotLoaded:!1,error:`Integrity check failed: ${l instanceof Error?l.message:String(l)}`}}let r;if(n?.loaded)r=n.loaded;else try{r=await fa(e)}catch(l){return{success:!1,hotLoaded:!1,error:`Failed to load bundle: ${l instanceof Error?l.message:String(l)}`}}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:Tc(r)};try{await tp(t.id,e,s)}catch(l){return{success:!1,hotLoaded:!1,error:`Failed to persist package: ${l instanceof Error?l.message:String(l)}`}}if(t.type==="shard"||t.type==="combo")try{Vi(t.id)}catch{}(t.type==="app"||t.type==="combo")&&pc(t.id);let a=!0;try{Cc(r,{version:t.version,sourceRegistry:t.sourceRegistry,contractVersion:t.contractVersion})}catch(l){console.warn(`[sh3] Package "${t.id}" installed but registration failed (will retry on next boot):`,l instanceof Error?l.message:l),a=!1}return{success:!0,package:s,hotLoaded:a}}async function zE(e){try{Vi(e)}catch{}pc(e),await PE(e)}async function jE(){return rp()}async function sp(){let e;try{e=await rp()}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 np(t.id);if(!n){console.warn(`[sh3] No bundle found for installed package "${t.id}", skipping`);continue}const r=await fa(n);Cc(r,{version:t.version,sourceRegistry:t.sourceRegistry,contractVersion:t.contractVersion}),r.shards.length===0&&r.apps.length===0&&console.warn(`[sh3] Package "${t.id}" contains no valid shards or apps, skipping`)}catch(n){console.warn(`[sh3] Failed to load installed package "${t.id}":`,n instanceof Error?n.message:n)}}const Ku={version:1};var OE=I('<span class="perm-modal-author svelte-1ipp1r6"> </span>'),NE=I('<p class="perm-modal-empty svelte-1ipp1r6">This package requires no special permissions.</p>'),qE=I('<li class="perm-modal-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6"> </div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),BE=I('<p class="perm-modal-intro svelte-1ipp1r6">This package requests the following permissions:</p> <ul class="perm-modal-list svelte-1ipp1r6"></ul>',1),FE=I('<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>'),VE=I('<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),UE=I('<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>'),HE=I('<p class="perm-modal-intro svelte-1ipp1r6">Permissions no longer requested:</p> <ul class="perm-modal-list perm-modal-removed svelte-1ipp1r6"></ul>',1),KE=I("<!> <!>",1),YE=I('<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 vl(e,t){se(t,!0);const n=ee(t,"permissions",19,()=>[]),r=ee(t,"added",19,()=>[]),s=ee(t,"removed",19,()=>[]),a=U(()=>t.mode==="install"?"Install":"Update");var l=YE(),o=p(l),c=p(o),u=p(c),d=p(u);h(u);var f=_(u,2),v=p(f);{var m=M=>{var O=on();N(()=>j(O,`${t.fromVersion??""} → ${t.pkg.version??""}`)),x(M,O)},k=M=>{var O=on();N(()=>j(O,`v${t.pkg.version??""}`)),x(M,O)};W(v,M=>{t.mode==="update"&&t.fromVersion?M(m):M(k,-1)})}var y=_(v,2);{var g=M=>{var O=OE(),E=p(O);h(O),N(()=>j(E,`by ${t.pkg.author??""}`)),x(M,O)};W(y,M=>{t.pkg.author&&M(g)})}h(f),h(c);var C=_(c,2),w=p(C);{var b=M=>{var O=Pe(),E=fe(O);{var D=z=>{var V=NE();x(z,V)},F=z=>{var V=BE(),G=_(fe(V),2);he(G,20,n,Z=>Z,(Z,$)=>{const Q=U(()=>yo($));var te=qE(),J=p(te),B=p(J,!0);h(J);var q=_(J,2),X=p(q,!0);h(q),h(te),N(()=>{j(B,i(Q).title),j(X,i(Q).description)}),x(Z,te)}),h(G),x(z,V)};W(E,z=>{n().length===0?z(D):z(F,-1)})}x(M,O)},A=M=>{var O=KE(),E=fe(O);{var D=V=>{var G=VE(),Z=_(fe(G),2);he(Z,20,r,$=>$,($,Q)=>{const te=U(()=>yo(Q));var J=FE(),B=p(J),q=p(B,!0);h(B);var X=_(B,2),Y=p(X,!0);h(X),h(J),N(()=>{j(q,i(te).title),j(Y,i(te).description)}),x($,J)}),h(Z),x(V,G)};W(E,V=>{r().length>0&&V(D)})}var F=_(E,2);{var z=V=>{var G=HE(),Z=_(fe(G),2);he(Z,20,s,$=>$,($,Q)=>{const te=U(()=>yo(Q));var J=UE(),B=p(J),q=p(B,!0);h(B);var X=_(B,2),Y=p(X,!0);h(X),h(J),N(()=>{j(q,i(te).title),j(Y,i(te).description)}),x($,J)}),h(Z),x(V,G)};W(F,V=>{s().length>0&&V(z)})}x(M,O)};W(w,M=>{t.mode==="install"?M(b):M(A,-1)})}h(C);var T=_(C,2),L=p(T),R=_(L,2),P=p(R,!0);h(R),h(T),h(o),h(l),N(()=>{re(l,"aria-label",`${i(a)??""} ${t.pkg.label??""}`),j(d,`${i(a)??""} ${t.pkg.label??""}`),j(P,i(a))}),K("click",l,function(...M){t.onCancel?.apply(this,M)}),K("keydown",l,M=>{M.key==="Escape"&&t.onCancel()}),K("click",o,M=>M.stopPropagation()),K("click",L,function(...M){t.onCancel?.apply(this,M)}),K("click",R,function(...M){t.onConfirm?.apply(this,M)}),x(e,l),ae()}de(["click","keydown"]);function Lc(e){return e==="shard"?"shard":"app"}function WE(e){return Lc(e)==="shard"?"Shard":"App"}function XE(e,t){return t==="all"?!0:Lc(e)===t}var GE=I('<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>'),JE=I('<div class="store-registries svelte-1aafzt0"></div>'),ZE=I('<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>'),QE=I('<div class="store-error svelte-1aafzt0"> </div>'),$E=I('<div class="store-error svelte-1aafzt0"> </div>'),eI=I('<img alt="" class="store-icon-img svelte-1aafzt0"/>'),tI=I('<span class="store-icon-placeholder svelte-1aafzt0"> </span>'),nI=I('<div class="store-card-warning svelte-1aafzt0"> </div>'),rI=I('<button class="store-update-btn svelte-1aafzt0"> </button>'),sI=I('<span class="store-installed-label svelte-1aafzt0">Installed</span>'),aI=I('<span class="store-card-missing svelte-1aafzt0"> </span>'),iI=I('<div class="store-install-wrap svelte-1aafzt0"><button class="store-install-btn svelte-1aafzt0"> </button> <!></div>'),oI=I('<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>'),lI=I("No packages found. <!>",1),cI=I('<div class="store-empty svelte-1aafzt0"><!></div>'),uI=I('<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 dI(e,t){se(t,!0);let n=H(""),r=H("all"),s=H(ce(new Set)),a=H(ce(new Set)),l=H(null),o=H(""),c=H(null),u=H(null);const d=rt;async function f(){const ie=i(o).trim();if(ie&&!d.env.registries.includes(ie))try{await d.addRegistry(ie),S(o,""),d.refreshCatalog(),d.refreshInstalled()}catch(ne){S(l,ne instanceof Error?ne.message:String(ne),!0)}}async function v(ie){try{await d.removeRegistry(ie),d.refreshCatalog()}catch(ne){S(l,ne instanceof Error?ne.message:String(ne),!0)}}const m=U(()=>{const ie=i(n).toLowerCase().trim();return d.state.ephemeral.catalog.filter(ne=>XE(ne.entry.type,i(r))?ie?ne.entry.id.toLowerCase().includes(ie)||ne.entry.label.toLowerCase().includes(ie)||ne.entry.description.toLowerCase().includes(ie):!0:!1)});function k(ie){return d.state.ephemeral.installed.some(ne=>ne.id===ie)}function y(ie){return String(ie.latest.contractVersion)!==String(Ku.version)}function g(ie){return ie in d.state.ephemeral.updatable}function C(ie){return d.state.ephemeral.installed.find(ne=>ne.id===ie)?.version??""}function w(ie,ne){const Ie=ie.latest.requires?.map(ye=>ye.id)??[];if(Ie.length===0)return[];const Le=new Set(Kh);for(const ye of ne)(ye.type==="shard"||ye.type==="combo")&&Le.add(ye.id);return Ie.filter(ye=>!Le.has(ye))}async function b(ie){if(!i(a).has(ie)){S(a,new Set([...i(a),ie]),!0),S(l,null);try{await d.updatePackage(ie,(ne,Ie)=>new Promise(Le=>{const ye=d.state.ephemeral.updatable[ie],ze=d.state.ephemeral.installed.find(Ye=>Ye.id===ie);if(!ye||!ze){Le(!0);return}S(u,{pkg:ye,fromVersion:ze.version,added:ne,removed:Ie,resolve:Le},!0)}))}catch(ne){S(l,ne instanceof Error?ne.message:String(ne),!0)}finally{const ne=new Set(i(a));ne.delete(ie),S(a,ne,!0)}}}function A(){const ie=i(u);ie&&(S(u,null),ie.resolve(!0))}function T(){const ie=i(u);ie&&(S(u,null),ie.resolve(!1))}async function L(ie){const ne=ie.entry.id;if(!i(s).has(ne)){S(s,new Set([...i(s),ne]),!0),S(l,null);try{const Ie=await Hi(ie.latest,ie.sourceRegistry),Le=Ki(ie,ie.latest),ye=await fa(Ie),ze=Tc(ye);let Ye;ie.latest.serverBundleUrl&&(Ye=await Sc(ie.latest,ie.sourceRegistry)),S(c,{pkg:ie,permissions:ze,loaded:ye,bundle:Ie,meta:Le,serverBundle:Ye},!0)}catch(Ie){S(l,Ie instanceof Error?Ie.message:String(Ie),!0);const Le=new Set(i(s));Le.delete(ne),S(s,Le,!0)}}}async function R(){const ie=i(c);if(!ie)return;S(c,null);const{pkg:ne,loaded:Ie,bundle:Le,meta:ye,serverBundle:ze}=ie,Ye=ne.entry.id;try{const We={id:ye.id,type:ye.type,label:ne.entry.label,version:ye.version,contractVersion:ye.contractVersion,sourceRegistry:ye.sourceRegistry,requiredShards:ne.latest.requires?.map(it=>it.id)??[],installedAt:new Date().toISOString()},Sn=await wc(We,Le,ze);if(!Sn.ok){S(l,Sn.error??"Server install failed",!0);return}const vn=await Rc(Le,ye,{loaded:Ie});vn.success||console.warn(`[sh3-store] Server install ok but local hot-load failed: ${vn.error}`),await d.refreshInstalled()}catch(We){S(l,We instanceof Error?We.message:String(We),!0)}finally{const We=new Set(i(s));We.delete(Ye),S(s,We,!0)}}function P(){if(!i(c))return;const ie=i(c).pkg.entry.id;S(c,null);const ne=new Set(i(s));ne.delete(ie),S(s,ne,!0)}function M(){d.refreshCatalog(),d.refreshInstalled()}var O=uI(),E=fe(O),D=p(E),F=_(p(D),2),z=p(F);we(z);var V=_(z,2),G=p(V);G.value=G.__value="all";var Z=_(G);Z.value=Z.__value="shard";var $=_(Z);$.value=$.__value="app",h(V);var Q=_(V,2),te=p(Q,!0);h(Q),h(F),h(D);var J=_(D,2);{var B=ie=>{var ne=JE();he(ne,21,()=>d.env.registries,pt,(Ie,Le)=>{var ye=GE(),ze=p(ye),Ye=p(ze,!0);h(ze);var We=_(ze,2);h(ye),N(()=>j(Ye,i(Le))),K("click",We,()=>v(i(Le))),x(Ie,ye)}),h(ne),x(ie,ne)};W(J,ie=>{d.isAdmin&&d.env.registries.length>0&&ie(B)})}var q=_(J,2);{var X=ie=>{var ne=ZE(),Ie=p(ne);we(Ie);var Le=_(Ie,2);h(ne),N(ye=>Le.disabled=ye,[()=>!i(o).trim()]),De("submit",ne,ye=>{ye.preventDefault(),f()}),Ae(Ie,()=>i(o),ye=>S(o,ye)),x(ie,ne)};W(q,ie=>{d.isAdmin&&ie(X)})}var Y=_(q,2);{var oe=ie=>{var ne=QE(),Ie=p(ne,!0);h(ne),N(()=>j(Ie,d.state.ephemeral.error)),x(ie,ne)};W(Y,ie=>{d.state.ephemeral.error&&ie(oe)})}var ve=_(Y,2);{var ke=ie=>{var ne=$E(),Ie=p(ne,!0);h(ne),N(()=>j(Ie,i(l))),x(ie,ne)};W(ve,ie=>{i(l)&&ie(ke)})}var ge=_(ve,2);he(ge,21,()=>i(m),ie=>ie.entry.id,(ie,ne)=>{const Ie=U(()=>k(i(ne).entry.id)),Le=U(()=>y(i(ne))),ye=U(()=>i(s).has(i(ne).entry.id)),ze=U(()=>g(i(ne).entry.id)),Ye=U(()=>i(a).has(i(ne).entry.id)),We=U(()=>w(i(ne),d.state.ephemeral.installed)),Sn=U(()=>Lc(i(ne).entry.type));var vn=oI(),it=p(vn),$t=p(it),Xi=p($t);{var $p=Ve=>{var Ue=eI();N(()=>re(Ue,"src",i(ne).entry.icon)),x(Ve,Ue)},em=Ve=>{var Ue=tI(),qt=p(Ue,!0);h(Ue),N(()=>j(qt,i(ne).entry.type==="shard"?"S":"A")),x(Ve,Ue)};W(Xi,Ve=>{i(ne).entry.icon?Ve($p):Ve(em,-1)})}h($t);var Dc=_($t,2),Gi=p(Dc),tm=p(Gi,!0);h(Gi);var pa=_(Gi,2);let zc;var nm=p(pa,!0);h(pa);var jc=_(pa,2),rm=p(jc,!0);h(jc),h(Dc),h(it);var Ji=_(it,2),sm=p(Ji,!0);h(Ji);var Zi=_(Ji,2),am=p(Zi,!0);h(Zi);var Oc=_(Zi,2);{var im=Ve=>{var Ue=nI(),qt=p(Ue);h(Ue),N(()=>j(qt,`Contract mismatch: package targets v${i(ne).latest.contractVersion??""}, running v${Ku.version}`)),x(Ve,Ue)};W(Oc,Ve=>{i(Le)&&Ve(im)})}var Nc=_(Oc,2),om=p(Nc);{var lm=Ve=>{var Ue=rI(),qt=p(Ue,!0);h(Ue),N(Qi=>{Ue.disabled=i(Ye),j(qt,Qi)},[()=>i(Ye)?"Updating...":`Update ${C(i(ne).entry.id)} -> ${i(ne).latest.version}`]),K("click",Ue,()=>b(i(ne).entry.id)),x(Ve,Ue)},cm=Ve=>{var Ue=sI();x(Ve,Ue)},um=Ve=>{var Ue=iI(),qt=p(Ue),Qi=p(qt,!0);h(qt);var dm=_(qt,2);{var fm=vs=>{var $i=aI(),vm=p($i);h($i),N(hm=>j(vm,`requires: ${hm??""}`),[()=>i(We).join(", ")]),x(vs,$i)};W(dm,vs=>{i(We).length>0&&vs(fm)})}h(Ue),N(vs=>{qt.disabled=i(ye)||i(We).length>0,re(qt,"title",vs),j(Qi,i(ye)?"Installing...":"Install")},[()=>i(We).length>0?`Missing required shards: ${i(We).join(", ")}`:void 0]),K("click",qt,()=>L(i(ne))),x(Ve,Ue)};W(om,Ve=>{i(Ie)&&i(ze)?Ve(lm):i(Ie)?Ve(cm,1):Ve(um,-1)})}h(Nc),h(vn),N(Ve=>{j(tm,i(ne).entry.label),zc=ue(pa,1,"store-card-badge svelte-1aafzt0",null,zc,{"badge-shard":i(Sn)==="shard","badge-app":i(Sn)==="app"}),j(nm,Ve),j(rm,i(ne).latest.version),j(sm,i(ne).entry.description),j(am,i(ne).entry.author.name)},[()=>WE(i(ne).entry.type)]),x(ie,vn)}),h(ge);var nt=_(ge,2);{var at=ie=>{var ne=cI(),Ie=p(ne);{var Le=ze=>{var Ye=lI(),We=_(fe(Ye));{var Sn=it=>{var $t=on("Add a registry URL above to get started.");x(it,$t)},vn=it=>{var $t=on("No registries configured.");x(it,$t)};W(We,it=>{d.isAdmin?it(Sn):it(vn,-1)})}x(ze,Ye)},ye=ze=>{var Ye=on("No packages match the current filter.");x(ze,Ye)};W(Ie,ze=>{d.env.registries.length===0?ze(Le):ze(ye,-1)})}h(ne),x(ie,ne)};W(nt,ie=>{!d.state.ephemeral.loading&&i(m).length===0&&ie(at)})}h(E);var Wn=_(E,2);{var Xn=ie=>{{let ne=U(()=>({label:i(c).pkg.entry.label,version:i(c).pkg.latest.version,author:i(c).pkg.entry.author.name}));vl(ie,{mode:"install",get pkg(){return i(ne)},get permissions(){return i(c).permissions},onConfirm:R,onCancel:P})}};W(Wn,ie=>{i(c)&&ie(Xn)})}var Gn=_(Wn,2);{var fs=ie=>{{let ne=U(()=>({label:i(u).pkg.entry.label,version:i(u).pkg.latest.version,author:i(u).pkg.entry.author.name}));vl(ie,{mode:"update",get pkg(){return i(ne)},get fromVersion(){return i(u).fromVersion},get added(){return i(u).added},get removed(){return i(u).removed},onConfirm:A,onCancel:T})}};W(Gn,ie=>{i(u)&&ie(fs)})}N(()=>{Q.disabled=d.state.ephemeral.loading,j(te,d.state.ephemeral.loading?"Loading...":"Refresh")}),Ae(z,()=>i(n),ie=>S(n,ie)),Ms(V,()=>i(r),ie=>S(r,ie)),K("click",Q,M),x(e,O),ae()}de(["click"]);function ap(e){return rt.state.ephemeral.catalog.find(t=>t.entry.id===e)}function Ks(e){return rt.state.ephemeral.installed.find(t=>t.id===e)}const fI={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=Ks(n);if(r){e.scrollback.push({kind:"status",text:`${n} is already installed (v${r.version})`,level:"warn",ts:Date.now()});return}const s=ap(n);if(!s){e.scrollback.push({kind:"status",text:`package "${n}" not found in catalog — try refreshing the store`,level:"error",ts:Date.now()});return}e.scrollback.push({kind:"status",text:`installing ${n} v${s.latest.version}...`,level:"info",ts:Date.now()});try{const a=await Hi(s.latest,s.sourceRegistry),l=Ki(s,s.latest);let o;s.latest.serverBundleUrl&&(o=await Sc(s.latest,s.sourceRegistry));const c={id:l.id,type:l.type,label:s.entry.label,version:l.version,contractVersion:l.contractVersion,sourceRegistry:l.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:s.latest.requires?.map(f=>f.id)??[]},u=await wc(c,a,o);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 Rc(a,l);d.success||e.scrollback.push({kind:"status",text:`server ok but local hot-load failed: ${d.error}`,level:"warn",ts:Date.now()}),await rt.refreshInstalled(),e.scrollback.push({kind:"status",text:`installed ${n} v${s.latest.version}`,level:"info",ts:Date.now()})}catch(a){e.scrollback.push({kind:"status",text:`install failed: ${a instanceof Error?a.message:String(a)}`,level:"error",ts:Date.now()})}}},vI={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(!Ks(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 rt.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()})}}},hI={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=Ks(n);if(!s){e.scrollback.push({kind:"status",text:`package "${n}" is not installed`,level:"error",ts:Date.now()});return}const a=s.version,l=r&&r===a?"reinstalling":r?`updating ${n} from v${a} to v${r}`:`updating ${n} from v${a} to latest`;e.scrollback.push({kind:"status",text:l.startsWith("reinstalling")?`reinstalling ${n} v${r}…`:`${l}…`,level:"info",ts:Date.now()});const o=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 rt.updatePackage(n,o,r);const c=r??Ks(n)?.version??"?";e.scrollback.push({kind:"status",text:r&&r===a?`reinstalled ${n} v${c}`:`updated ${n} v${c}`,level:"info",ts:Date.now()})}catch(c){e.scrollback.push({kind:"status",text:`update failed: ${c instanceof Error?c.message:String(c)}`,level:"error",ts:Date.now()})}}},pI={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=Ks(n),s=ap(n);if(!r&&!s){e.scrollback.push({kind:"status",text:`package "${n}" not found in catalog or installed list`,level:"error",ts:Date.now()});return}const a=[];a.push(`--- ${n} ---`),r?(a.push(" installed: yes"),a.push(` version: ${r.version}`),a.push(` type: ${r.type}`),a.push(` contract: v${r.contractVersion}`),a.push(` source: ${r.sourceRegistry}`),r.installedAt&&a.push(` installed: ${r.installedAt}`)):a.push(" installed: no"),s?(a.push(" catalog: yes"),a.push(` latest: ${s.latest.version}`),a.push(` label: ${s.entry.label}`),a.push(` author: ${s.entry.author.name}`),a.push(` desc: ${s.entry.description}`)):a.push(" catalog: no (not in any configured registry)"),e.scrollback.push({kind:"text",stream:"stdout",chunks:[a.join(`
12
- `)+`
13
- `],ts:Date.now()})}};function mI(e,t){const[n="",r=""]=e.split("+"),[s="",a=""]=t.split("+"),l=n.split(".").map(f=>parseInt(f,10)||0),o=s.split(".").map(f=>parseInt(f,10)||0),c=Math.max(l.length,o.length);for(let f=0;f<c;f++){const v=l[f]??0,m=o[f]??0;if(v>m)return!0;if(v<m)return!1}if(r===a||r==="")return!1;if(a==="")return!0;const u=parseInt(r,10),d=parseInt(a,10);return!isNaN(u)&&!isNaN(d)?u>d:r>a}function bI(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 gI(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 rt;const ip={manifest:{id:"sh3-store",label:"Package Store",version:fn,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(k=>k.entry.id===v.id);m&&mI(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 Dh(t.registries);n.ephemeral.catalog=f,r()}catch(f){n.ephemeral.error=f instanceof Error?f.message:String(f)}finally{n.ephemeral.loading=!1}}async function a(){try{const f=await wx();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 jE();n.ephemeral.installed=v,r()}catch{}}}async function l(f){const v=[...t.registries];v.includes(f)||(v.push(f),await e.envUpdate({registries:v}))}async function o(f){const v=t.registries.filter(m=>m!==f);await e.envUpdate({registries:v})}async function c(f,v,m){let k;if(m===void 0?k=n.ephemeral.updatable[f]:k=n.ephemeral.catalog.find(z=>z.entry.id===f),!k)return;const y=n.ephemeral.installed.find(z=>z.id===f);if(!y)return;const g=bI(k,m),C=await Hi(g,k.sourceRegistry);let w;g.serverBundleUrl&&(w=await Sc(g,k.sourceRegistry));const b=Ki(k,g),A=await fa(C),T=Tc(A);let L=[];try{const z=await ME(f);z?.permissions&&(L=z.permissions)}catch{}const{added:R,removed:P}=gI(L,T);if((R.length>0||P.length>0)&&v&&!await v(R,P))return;const M=await np(f),O={...y,permissions:L},E={id:b.id,type:b.type,label:k.entry.label,version:b.version,contractVersion:b.contractVersion,sourceRegistry:b.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:g.requires?.map(z=>z.id)??[]},D=await wc(E,C,w);if(!D.ok){let z=D.error??"Server update failed";throw D.code==="missing-shards"&&D.missing&&(z=`missing required shard(s): ${D.missing.map(G=>G.id).join(", ")}`),new Error(z)}const F=await Rc(C,b,{loaded:A});if(!F.success){if(M)try{await tp(f,M,O)}catch(z){console.warn(`[sh3-store] Rollback failed for "${f}":`,z instanceof Error?z.message:z)}throw new Error(F.error??"Local install failed during update")}await a()}async function u(f){await _x(f),await zE(f),await a()}rt={env:t,state:n,get isAdmin(){return e.isAdmin},refreshCatalog:s,refreshInstalled:a,updatePackage:c,uninstallPackage:u,addRegistry:l,removeRegistry:o};const d={mount(f,v){const m=Fe(dI,{target:f});return{unmount(){Ze(m)}}}};e.registerView("sh3-store:browse",d),e.registerVerb(fI),e.registerVerb(vI),e.registerVerb(pI),e.registerVerb(hI),a()},autostart(){rt.refreshCatalog()}};function yI(e,t,n,r){return new Promise(s=>{const a={mode:"update",pkg:{label:e.label,version:t},fromVersion:e.version,added:n,removed:r,onConfirm:()=>{l.close(),s(!0)},onCancel:()=>{l.close(),s(!1)}},l=Qt.open(vl,a)})}var _I=I('<p class="error svelte-1tiy4hy"> </p>'),wI=I('<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 kI(e,t){se(t,!0);let n=H(!1),r=H(null);async function s(){if(!i(n)){S(n,!0),S(r,null);try{await t.onConfirm(),t.close()}catch(L){S(r,L.message,!0)}finally{S(n,!1)}}}var a=wI(),l=_(p(a),2),o=p(l),c=p(o,!0);h(o);var u=_(o,2),d=p(u);h(u);var f=_(u,2),v=p(f);h(f),Mt(),h(l);var m=_(l,2),k=_(p(m)),y=p(k,!0);h(k),h(m);var g=_(m,2);{var C=L=>{var R=_I(),P=p(R,!0);h(R),N(()=>j(P,i(r))),x(L,R)};W(g,L=>{i(r)&&L(C)})}var w=_(g,2),b=p(w),A=p(b,!0);h(b);var T=_(b,2);h(w),h(a),N(()=>{j(c,t.appLabel),j(d,`v${t.fromVersion??""}`),j(v,`v${t.toVersion??""}`),j(y,t.appId),b.disabled=i(n),j(A,i(n)?"Updating…":"Update"),T.disabled=i(n)}),K("click",b,s),K("click",T,function(...L){t.close?.apply(this,L)}),x(e,a),ae()}de(["click"]);var xI=I('<p class="error svelte-86mxbl"> </p>'),SI=I(`<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 EI(e,t){se(t,!0);let n=H(!1),r=H(null);async function s(){if(!i(n)){S(n,!0),S(r,null);try{await t.onConfirm(),t.close()}catch(b){S(r,b.message,!0)}finally{S(n,!1)}}}var a=SI(),l=p(a),o=p(l);h(l);var c=_(l,2),u=_(p(c)),d=p(u,!0);h(u);var f=_(u,2),v=p(f);h(f),h(c);var m=_(c,4);{var k=b=>{var A=xI(),T=p(A,!0);h(A),N(()=>j(T,i(r))),x(b,A)};W(m,b=>{i(r)&&b(k)})}var y=_(m,2),g=p(y),C=p(g,!0);h(g);var w=_(g,2);h(y),h(a),N(()=>{j(o,`Uninstall ${t.appLabel??""}?`),j(d,t.appId),j(v,`v${t.version??""}`),g.disabled=i(n),j(C,i(n)?"Uninstalling…":"Uninstall"),w.disabled=i(n)}),K("click",g,s),K("click",w,function(...b){t.close?.apply(this,b)}),x(e,a),ae()}de(["click"]);var II=I('<span class="badge built-in svelte-1w44jyn">built-in</span>'),AI=I('<section class="description svelte-1w44jyn"><span class="label svelte-1w44jyn">Description</span> <p class="svelte-1w44jyn"> </p></section>'),CI=I('<p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Author</span> <span> </span></p>'),TI=I('<li><code class="svelte-1w44jyn"> </code></li>'),RI=I('<section class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Required shards</span> <ul class="chips svelte-1w44jyn"></ul></section>'),LI=I('<li><code class="svelte-1w44jyn"> </code></li>'),MI=I('<section class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Permissions</span> <ul class="chips svelte-1w44jyn"></ul></section>'),PI=I('<p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Installed</span><span> </span></p>'),DI=I('<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>'),zI=I('<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 jI(e,t){se(t,!0);let n=U(()=>{if(!t.installed)return null;const O=new Date(t.installed.installedAt);return isNaN(O.getTime())?t.installed.installedAt:O.toLocaleString()});var r=zI(),s=p(r),a=p(s),l=p(a,!0);h(a);var o=_(a,2),c=p(o,!0);h(o),h(s);var u=_(s,2),d=_(p(u),2),f=p(d);h(d);var v=_(d,2);{var m=O=>{var E=II();x(O,E)};W(v,O=>{t.installed||O(m)})}h(u);var k=_(u,2);{var y=O=>{var E=AI(),D=_(p(E),2),F=p(D,!0);h(D),h(E),N(()=>j(F,t.catalogEntry.description)),x(O,E)};W(k,O=>{t.catalogEntry?.description&&O(y)})}var g=_(k,2);{var C=O=>{var E=CI(),D=_(p(E),2),F=p(D,!0);h(D),h(E),N(()=>j(F,t.catalogEntry.author.name)),x(O,E)};W(g,O=>{t.catalogEntry?.author?.name&&O(C)})}var w=_(g,2);{var b=O=>{var E=RI(),D=_(p(E),2);he(D,21,()=>t.manifest.requiredShards,pt,(F,z)=>{var V=TI(),G=p(V),Z=p(G,!0);h(G),h(V),N(()=>j(Z,i(z))),x(F,V)}),h(D),h(E),x(O,E)};W(w,O=>{t.manifest.requiredShards.length>0&&O(b)})}var A=_(w,2);{var T=O=>{var E=MI(),D=_(p(E),2);he(D,21,()=>t.manifest.permissions,pt,(F,z)=>{var V=LI(),G=p(V),Z=p(G,!0);h(G),h(V),N(()=>j(Z,i(z))),x(F,V)}),h(D),h(E),x(O,E)};W(A,O=>{t.manifest.permissions&&t.manifest.permissions.length>0&&O(T)})}var L=_(A,2);{var R=O=>{var E=DI(),D=p(E),F=_(p(D)),z=p(F,!0);h(F),h(D);var V=_(D,2);{var G=te=>{var J=PI(),B=_(p(J)),q=p(B,!0);h(B),h(J),N(()=>j(q,i(n))),x(te,J)};W(V,te=>{i(n)&&te(G)})}var Z=_(V,2),$=_(p(Z)),Q=p($);h($),h(Z),h(E),N(()=>{j(z,t.installed.sourceRegistry),j(Q,`v${t.installed.contractVersion??""}`)}),x(O,E)};W(L,O=>{t.installed&&O(R)})}var P=_(L,2),M=p(P);h(P),h(r),N(()=>{j(l,t.manifest.label),j(c,t.manifest.id),j(f,`v${t.manifest.version??""}`)}),K("click",M,function(...O){t.close?.apply(this,O)}),x(e,r),ae()}de(["click"]);const Yu=typeof globalThis.__TAURI_INTERNALS__<"u";function OI(e){return!e.admin||e.builtin}function Wu(e){return e.admin?e.builtin?" · built-in":"":" · admin only"}function qn(){const e=ua();return!e||e.type!=="app"?null:e.ref}function ha(e){return is().find(t=>t.id===e)}function NI(e){return!rt.state.ephemeral.installed.some(t=>t.id===e)}function _o(e){return{admin:kt(),builtin:NI(e)}}function qI(e){const t=qn();if(!t)return;const n=ha(t.appId);if(!n)return;const r=rt.state.ephemeral.installed.find(l=>l.id===t.appId)??null,s=rt.state.ephemeral.catalog.find(l=>l.entry.id===t.appId)?.entry??null,a={manifest:n,installed:r,catalogEntry:s};Qt.open(jI,a)}async function BI(e){const t=qn();if(!t)return;const{appId:n}=t,r=yn.notify("Checking for updates…",{duration:1/0});try{await rt.refreshCatalog()}finally{r.close()}const s=rt.state.ephemeral.updatable[n],a=rt.state.ephemeral.installed.find(c=>c.id===n),l=ha(n)?.label??n;if(!s||!a){yn.notify(`${l} is up to date`,{level:"info",duration:2500});return}const o={appId:n,appLabel:l,fromVersion:a.version,toVersion:s.latest.version,onConfirm:async()=>{try{await rt.updatePackage(n,(c,u)=>yI({label:a.id,version:a.version},s.latest.version,c,u)),yn.notify(`Updated to v${s.latest.version}`,{level:"success"})}catch(c){throw yn.notify(`Update failed: ${c.message}`,{level:"error",duration:5e3}),c}}};Qt.open(kI,o)}function FI(e){const t=qn();if(!t)return;const n=ha(t.appId);n&&Ui({kind:"app",appId:t.appId,activateShards:n.requiredShards??[]})}async function VI(e){const t=Xl();if(!t)return;const n=t.id,r=t.requiredShards??[];await cs(),Ui({kind:"app",appId:n,activateShards:r})}function UI(e){const t=qn();if(!t)return;const{appId:n}=t,r=rt.state.ephemeral.installed.find(l=>l.id===n);if(!r)return;const s=ha(n)?.label??n,a={appId:n,appLabel:s,version:r.version,onConfirm:async()=>{try{await rt.uninstallPackage(n),yn.notify(`Uninstalled ${s}`,{level:"success"})}catch(l){throw yn.notify(`Uninstall failed: ${l.message}`,{level:"error",duration:5e3}),l}}};Qt.open(EI,a)}function HI(e){const t=()=>{const o=qn();if(!o)return"Info…";const c=ha(o.appId);return c?`Info — ${c.label} v${c.version}`:`Info — ${o.appId}`},n=()=>{const o=qn();return o?`Check for updates${Wu(_o(o.appId))}`:"Check for updates"},r=()=>{const o=qn();return o?`Uninstall…${Wu(_o(o.appId))}`:"Uninstall…"},s=()=>{const o=qn();return o?OI(_o(o.appId)):!0},l=[{id:"app.info",label:t,scope:{element:"app"},contextItem:!0,group:"info",run:qI},{id:"app.checkUpdate",label:n,scope:{element:"app"},contextItem:!0,group:"update",disabled:s,run:BI},{id:"app.uninstall",label:r,scope:{element:"app"},contextItem:!0,group:"uninstall",disabled:s,run:UI},{id:"app.popout",label:"Open in standalone view",scope:{element:"app"},contextItem:!0,paletteItem:!1,group:"window",disabled:()=>!Yu,run:FI},{id:"app.popoutCurrent",label:"Pop out current app",scope:"app",contextItem:!1,paletteItem:!0,disabled:()=>!Yu||ot.id==null,run:VI}].map(o=>e.actions.register(o));return()=>l.forEach(o=>o())}function KI(){return{id:"sh3.float.toggleMaximize",label:"Toggle Float Maximize",scope:["home","app"],paletteItem:!0,contextItem:!1,defaultShortcut:"Ctrl+Shift+M",disabled:()=>Re.list().length===0,run(){const e=Re.list().at(-1);e&&Re.toggleMaximize(e.id)}}}const op={manifest:{id:"__sh3core__",label:"SH3 Core",version:fn,views:[{id:"sh3core:home",label:"Home"},{id:"sh3:keys-and-peers",label:"Keys & Peers"}]},activate(e){const t=e.state({user:{bindings:{}}});K1(t.user),e.actions.register({id:"sh3.palette.open",label:"Command Palette…",scope:["home","app"],defaultShortcut:"Mod+K",contextItem:!1,paletteItem:!1,run(a){Di()}}),e.actions.register(KI()),e.actions.register({id:"sh3.app.reset-layout",label:"Reset Current Layout",scope:["app"],paletteItem:!0,contextItem:!1,run(){Qt.open(ep,{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:()=>Lk()})}});const n={mount(a,l){const o=Fe(pE,{target:a});return{unmount(){Ze(o)}}}},r={mount(a,l){const o=Fe(SE,{target:a});return{unmount(){Ze(o)}}}};e.registerView("sh3core:home",n),e.registerView("sh3:keys-and-peers",r),HI(e),e.actions.register({id:"sh3.app.launch",label:"Launch app",scope:["home","app"],submenu:!0,paletteItem:!0});const s=new Map;rs(()=>{Se(()=>{const a=new Set;for(const[l,o]of Vn){if(a.add(l),s.has(l))continue;const c=e.actions.register({id:`sh3.app.launch:${l}`,label:o.manifest.label,scope:["home","app"],submenuOf:"sh3.app.launch",run(){Mn(l)}});s.set(l,c)}for(const l of[...s.keys()])a.has(l)||(s.get(l)(),s.delete(l))})})},autostart(){}},YI={id:"shell",label:"Sh3",version:fn,views:[{id:"shell:terminal",label:"Sh3",standalone:!0}],permissions:[Ds]};class WI{#e;get history(){return i(this.#e)}set history(t){S(this.#e,t,!0)}#t;get locked(){return i(this.#t)}set locked(t){S(this.#t,t,!0)}constructor(t){this.#e=H(ce([])),this.#t=H(!1),this.modeId=t,this.scrollback=new q0}}let ar=null;function XI(e){ar=e}function GI(){ar=null}function Xu(e){return ar?.workspace.buffers[e]}function JI(e,t){ar&&(ar.workspace.buffers={...ar.workspace.buffers,[e]:t})}function ZI(){ar={ephemeral:{},session:{},workspace:{buffers:{}},user:{}}}ZI();const QI=200;class $I{constructor(){this.timers=new Map}hydrate(t){const n=Xu(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)},QI);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 Xu(t)?.lastSeq}write(t,n){const s={entries:t.scrollback.entries.slice(-500).map(a=>this.toPersisted(a)),history:[...t.history],...n!==void 0?{lastSeq:n}:{}};JI(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 e2(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 t2(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 n2(e){const{scrollTop:t,scrollHeight:n,clientHeight:r,threshold:s}=e;return n-t-r<=s}var r2=I("<pre> </pre>");function s2(e,t){se(t,!0);const n=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,r=U(()=>t.chunks.join("").replace(n,""));var s=r2();let a;var l=p(s,!0);h(s),N(()=>{a=ue(s,1,"shell-text svelte-ypr8s",null,a,{stderr:t.stream==="stderr"}),j(l,i(r))}),x(e,s),ae()}var a2=I('<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 i2(e,t){var n=a2(),r=p(n),s=p(r,!0);h(r);var a=_(r,4),l=p(a,!0);h(a),h(n),N(()=>{j(s,t.cwd),j(l,t.line)}),x(e,n)}var o2=I("<div> </div>");function Gu(e,t){var n=o2();let r;var s=p(n,!0);h(n),N(()=>{r=ue(n,1,"shell-status svelte-nfxdpt",null,r,{info:t.level==="info",warn:t.level==="warn",error:t.level==="error"}),j(s,t.text)}),x(e,n)}var l2=I('<div class="shell-rich svelte-1rnhl05"><!></div>');function c2(e,t){var n=l2(),r=p(n);ra(r,()=>t.component,(s,a)=>{a(s,aa(()=>t.componentProps))}),h(n),x(e,n)}const hl=new Map;function zn(e,t){const n=hl.get(e);if(n&&n!==t){console.warn(`[shell-shard/rich-registry] duplicate registration for key "${e}" — keeping first`);return}hl.set(e,t)}function u2(e){return hl.get(e)??null}var d2=I('<div class="shell-scrollback svelte-isy3jt"><div class="content"></div></div>');function f2(e,t){se(t,!0);let n=H(null),r=H(null),s=!1;const a=4;function l(){i(n)&&n2({scrollTop:i(n).scrollTop,scrollHeight:i(n).scrollHeight,clientHeight:i(n).clientHeight,threshold:a})&&(s=!1)}Se(()=>{if(!i(n))return;const u=()=>{s=!0};return i(n).addEventListener("wheel",u,{passive:!0}),i(n).addEventListener("touchstart",u,{passive:!0}),i(n).addEventListener("keydown",u),()=>{i(n)?.removeEventListener("wheel",u),i(n)?.removeEventListener("touchstart",u),i(n)?.removeEventListener("keydown",u)}}),Se(()=>{if(!i(r)||!i(n))return;const u=new ResizeObserver(()=>{i(n)&&!s&&(i(n).scrollTop=i(n).scrollHeight)});return u.observe(i(r)),()=>u.disconnect()});var o=d2(),c=p(o);he(c,21,()=>t.scrollback.entries,u=>u.id,(u,d)=>{var f=Pe(),v=fe(f);{var m=C=>{s2(C,{get stream(){return i(d).stream},get chunks(){return i(d).chunks}})},k=C=>{{let w=U(()=>t.showPromptCwd?i(d).cwd:"");i2(C,{get cwd(){return i(w)},get line(){return i(d).line}})}},y=C=>{Gu(C,{get text(){return i(d).text},get level(){return i(d).level}})},g=C=>{const w=U(()=>i(d).component??(i(d).componentKey?u2(i(d).componentKey):null));var b=Pe(),A=fe(b);{var T=R=>{c2(R,{get component(){return i(w)},get componentProps(){return i(d).props}})},L=R=>{{let P=U(()=>`<rich entry: ${i(d).componentKey??"unknown"} not registered>`);Gu(R,{get text(){return i(P)},level:"info"})}};W(A,R=>{i(w)?R(T):R(L,-1)})}x(C,b)};W(v,C=>{i(d).kind==="text"?C(m):i(d).kind==="prompt"?C(k,1):i(d).kind==="status"?C(y,2):i(d).kind==="rich"&&C(g,3)})}x(u,f)}),h(c),je(c,u=>S(r,u),()=>i(r)),h(o),je(o,u=>S(n,u),()=>i(n)),De("scroll",o,l),x(e,o),ae()}var v2=I('<span class="sh3-cmdline__prefix svelte-ngn09j"><!></span>'),h2=I('<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 p2(e,t){se(t,!0);let n=ee(t,"value",15,""),r=ee(t,"disabled",3,!1),s=H(null);function a(v){return v.selectionStart!==null&&v.selectionEnd!==null&&v.selectionStart!==v.selectionEnd}function l(v){(v.ctrlKey||v.metaKey)&&!v.altKey&&v.key==="c"&&i(s)&&a(i(s))||t.onkeydown?.(v)}Se(()=>{!r()&&i(s)&&i(s).focus()});var o=h2();let c;var u=p(o);{var d=v=>{var m=v2(),k=p(m);Gt(k,()=>t.prefix),h(m),x(v,m)};W(u,v=>{t.prefix&&v(d)})}var f=_(u,6);we(f),je(f,v=>S(s,v),()=>i(s)),h(o),N(()=>{c=ue(o,1,"sh3-cmdline svelte-ngn09j",null,c,{"sh3-cmdline--disabled":r()}),re(f,"name",t.name),f.disabled=r()}),K("keydown",f,l),De("focus",f,function(...v){t.onfocus?.apply(this,v)}),Ae(f,n),x(e,o),ae()}de(["keydown"]);var m2=I('<span class="shell-input-cwd svelte-1dfv2gk"> </span>'),b2=I('<!> <span class="shell-input-arrow svelte-1dfv2gk">❯</span>',1),g2=I('<div class="shell-input-row svelte-1dfv2gk"><!></div>');function y2(e,t){se(t,!0);let n=ee(t,"showCwd",3,!0),r=H(""),s=H(null),a=H("");function l(){if(t.locked)return;const v=i(r);v.trim()&&(S(r,""),S(s,null),t.onSubmit(v))}function o(){t.history.length!==0&&(i(s)===null?(S(a,i(r),!0),S(s,t.history.length-1)):i(s)>0&&Hr(s,-1),S(r,t.history[i(s)]??"",!0))}function c(){i(s)!==null&&(i(s)<t.history.length-1?(Hr(s),S(r,t.history[i(s)],!0)):(S(s,null),S(r,i(a),!0)))}function u(v){if(t.locked){if(v.ctrlKey&&v.key==="c"){v.preventDefault(),t.session.send({t:"signal",sig:"SIGINT"});return}if(v.ctrlKey&&v.key==="d"){v.preventDefault(),t.session.send({t:"signal",sig:"EOF"});return}v.preventDefault();return}v.key==="Enter"?(v.preventDefault(),l()):v.key==="ArrowUp"?(v.preventDefault(),o()):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"),l())}var d=g2(),f=p(d);p2(f,{get disabled(){return t.locked},name:"shell-cmdline",onkeydown:u,onfocus:()=>t.onFocus?.(),get value(){return i(r)},set value(m){S(r,m,!0)},prefix:m=>{var k=b2(),y=fe(k);{var g=C=>{var w=m2(),b=p(w,!0);h(w),N(()=>j(b,t.cwd)),x(C,w)};W(y,C=>{n()&&C(g)})}Mt(2),x(m,k)},$$slots:{prefix:!0}}),h(d),x(e,d),ae()}class _2{list(){return ac()}get(t){return Ja(t)}resolve(t,n={}){const r=t.trim();if(!r)return{kind:"forward",line:t};if(r.startsWith("$ "))return{kind:"forward",line:r.slice(2)};if(r==="$")return{kind:"forward",line:""};const s=r.indexOf(" "),a=s===-1?r:r.slice(0,s),l=s===-1?"":r.slice(s+1),o=Ja(a);if(!o)return{kind:"forward",line:t};if(n.globalOnly&&!o.globalVerb)return{kind:"forward",line:t};const c=l.length?l.split(/\s+/):[];return{kind:"local",verb:o,args:c,line:t}}}class w2{#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 k2={id:"bash",label:"Bash",requiresRole:"admin",transport:"ws",autoRelocate:!1,showCwd:!0},x2={id:"sh3",label:"SH3",transport:"none",autoRelocate:!0,showCwd:!1};function S2(e){e.register(k2),e.register(x2)}function lp(e){return`sh3.shell.lastMode.${e}`}function cp(e){try{return globalThis.localStorage?.getItem(lp(e))??null}catch{return null}}function Ju(e,t){try{globalThis.localStorage?.setItem(lp(e),t)}catch{}}function E2(e,t,n){const r=cp(t);if(r){const a=e.get(r);if(a&&(!a.requiresRole||a.requiresRole===n))return a}const s=n==="admin"?"bash":"sh3";return e.get(s)}function ja(e,t){return e.entries.find(n=>n.kind==="rich"&&n.id===t)}function I2(e,t){return{update(n){const r=ja(e,t);r&&Object.assign(r.props,n)}}}function Zu(e){return e.entries[e.entries.length-1].id}function Qu(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()}),I2(t,Zu(t))},stream(n,r){t.push({kind:"rich",component:n,props:{...r,__streamState:"streaming"},ts:Date.now()});const s=Zu(t);return{append(a){const l=ja(t,s);l&&Object.assign(l.props,a)},complete(){const a=ja(t,s);a&&(a.props.__streamState="complete")},error(a){const l=ja(t,s);l&&(l.props.__streamState="error"),t.push({kind:"status",text:`mode: ${a?.message??String(a)}`,level:"error",ts:Date.now()})}}},busy(n){const r=e.busy(n);let s=!1;return{clear(){s||(s=!0,r())}}},invoke(n,r){return e.invoke(n,r)}}}function A2(e){let t=null;async function n(s,a){const l=e.mode();if(s===l.id)throw new Error(`invoke: cannot invoke own mode '${s}'`);if(s==="sh3"){const u=e.resolver.resolve(a,{globalOnly:!1});if(u.kind==="forward"){const d=a.trim().split(/\s+/)[0]??"";throw new Error(`invoke: unknown sh3 verb '${d}'`)}await u.verb.run({sh3:e.sh3,scrollback:e.buffer().scrollback,session:e.session,cwd:e.cwd(),dispatch:r,fs:e.fs},u.args);return}if(s==="bash"){if(e.role()!=="admin")throw new Error("invoke: 'bash' requires admin role");e.session.send({t:"submit",line:a,mode:"bash"});return}const o=e.customMode?.(s)??null;if(!o)throw new Error(`invoke: unknown mode '${s}'`);if(o.requiresRole&&o.requiresRole!==e.role())throw new Error(`invoke: mode '${s}' requires ${o.requiresRole} role`);if(o.runsOn==="server")throw new Error("invoke: server-side modes are not yet supported");const c=Qu({scrollback:e.buffer().scrollback,busy:e.busy,invoke:n});await o.dispatch({line:a,cwd:e.cwd(),signal:t?.signal??new AbortController().signal},c)}async function r(s){t?.abort();const a=new AbortController;t=a;const l=e.mode();if(e.buffer().history.push(s),l.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 o=e.resolver.resolve(s,{globalOnly:l.id!=="sh3"});if(o.kind==="local"){e.session.send({t:"history-log",line:s,mode:l.id}),e.buffer().scrollback.push({kind:"prompt",cwd:e.cwd(),line:s,ts:Date.now()});try{await o.verb.run({sh3:e.sh3,scrollback:e.buffer().scrollback,session:e.session,cwd:e.cwd(),dispatch:r,fs:e.fs},o.args)}catch(u){e.buffer().scrollback.push({kind:"status",text:`shell: verb ${o.verb.name} threw — ${u.message}`,level:"error",ts:Date.now()})}return}if(l.transport==="ws"){e.session.send({t:"submit",line:o.line,mode:l.id});return}if(l.transport==="custom"){e.buffer().scrollback.push({kind:"prompt",cwd:e.cwd(),line:o.line,ts:Date.now()});const u=e.customMode?.(l.id)??null;if(!u){e.buffer().scrollback.push({kind:"status",text:`mode '${l.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=Qu({scrollback:e.buffer().scrollback,busy:e.busy,invoke:n}),f=e.busy();try{await u.dispatch({line:o.line,cwd:e.cwd(),signal:a.signal},d)}catch(v){v?.name==="AbortError"?e.buffer().scrollback.push({kind:"status",text:"mode dispatch aborted",level:"info",ts:Date.now()}):e.buffer().scrollback.push({kind:"status",text:`mode '${l.id}' threw — ${v?.message??String(v)}`,level:"error",ts:Date.now()})}finally{f()}return}const c=o.line.split(/\s+/)[0]??"";e.buffer().scrollback.push({kind:"prompt",cwd:e.cwd(),line:o.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 C2(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 T2=I('<div class="toolbar svelte-gnowwz"><div class="toolbar-slots svelte-gnowwz"></div></div>');function R2(e,t){se(t,!0);let n=ee(t,"slotProps",19,()=>({})),r=U(()=>t.registry.list(t.ctx));var s=T2(),a=p(s);he(a,21,()=>i(r),l=>l.id,(l,o)=>{const c=U(()=>i(o).component);var u=Pe(),d=fe(u);ra(d,()=>i(c),(f,v)=>{v(f,aa(()=>n()[i(o).id]??{}))}),x(l,u)}),h(a),h(s),x(e,s),ae()}class L2{#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 M2=I('<span class="mode-label svelte-1i4cqlj"> </span>');function P2(e,t){se(t,!0);let n=U(()=>t.modes.map(o=>({value:o.id,label:o.label})));var r=Pe(),s=fe(r);{var a=o=>{Nh(o,{get options(){return i(n)},get value(){return t.mode.id},size:"sm",onchange:c=>t.onSelect(c)})},l=o=>{var c=M2(),u=p(c,!0);h(c),N(()=>j(u,t.mode.label)),x(o,c)};W(s,o=>{t.modes.length>=2?o(a):t.modes.length===1&&o(l,1)})}x(e,r),ae()}var D2=I('<button class="focus-lock-btn svelte-1q6gbap"> </button>');function z2(e,t){var n=D2(),r=p(n,!0);h(n),N(()=>{re(n,"title",t.locked?"Unlock focus":"Lock focus"),j(r,t.locked?"🔒":"🔓")}),K("click",n,function(...s){t.onToggle?.apply(this,s)}),x(e,n)}de(["click"]);var j2=I('<span class="target-shard svelte-1nn2m6x" title="Target shard"> </span>');function O2(e,t){var n=j2(),r=p(n);h(n),N(()=>j(r,`→ ${t.target??"—"??""}`)),x(e,n)}var N2=I('<span class="label"> </span>'),q2=I('<div class="busy svelte-7wyurd" role="status" aria-live="polite"><span class="spinner svelte-7wyurd" aria-hidden="true"></span> <!></div>');function B2(e,t){var n=Pe(),r=fe(n);{var s=a=>{var l=q2(),o=_(p(l),2);{var c=u=>{var d=N2(),f=p(d,!0);h(d),N(()=>j(f,t.label)),x(u,d)};W(o,u=>{t.label&&u(c)})}h(l),x(a,l)};W(r,a=>{t.active&&a(s)})}x(e,n)}var F2=I('<div class="shell-terminal svelte-13komre"><!> <!> <!></div>');function V2(e,t){se(t,!0);const n=_e(()=>new $I),r=new Map;function s(B){let q=r.get(B);return q||(q=new WI(B),n.hydrate(q),r.set(B,q)),q}const a=new _2,l=new bh,o=new w2;S2(o);let c=H(ce(_e(()=>t.contributions.list(Cs))));Se(()=>{const B=t.contributions.onChange(Cs,()=>{S(c,t.contributions.list(Cs),!0)});return()=>B()});function u(B){return{id:B.id,label:B.label,requiresRole:B.requiresRole,transport:"custom",autoRelocate:B.autoRelocate??!1,showCwd:B.showCwd??!1}}let d=U(()=>[...o.list(t.role),...i(c).filter(B=>!B.requiresRole||B.requiresRole===t.role).map(u)]),f=H(ce(_e(()=>{const B=cp(t.userId);if(B){const X=[...o.list(t.role),...i(c).filter(Y=>!Y.requiresRole||Y.requiresRole===t.role).map(u)].find(Y=>Y.id===B);if(X)return X}return E2(o,t.userId,t.role)}))),v=H(0);function m(){S(v,performance.now(),!0)}const k=_e(()=>l0()),y=U(()=>s(i(f).id));Se(()=>{for(const[B,q]of Object.entries(w.historyByMode)){const X=s(B);X.history.length<q.length&&(X.history=[...q])}}),Se(()=>{i(y).scrollback.entries.length,i(y).history.length,i(y).modeId==="bash"?n.flush(i(y),w.lastSeq):n.flush(i(y))});function g(B){const q=i(d).find(X=>X.id===B);q&&(q.requiresRole&&q.requiresRole!==t.role||(M(),S(f,q,!0),Ju(t.userId,B)))}Se(()=>{if(!i(d).find(B=>B.id===i(f).id)){const B=i(d).find(q=>q.id==="sh3")??i(d)[0];if(B){const q=i(f).id;S(f,B,!0),Ju(t.userId,B.id),s(B.id).scrollback.push({kind:"status",text:`mode '${q}' is no longer available — switched to '${B.id}'`,level:"warn",ts:Date.now()})}}});const C=_e(()=>({...t.shell,setMode:B=>{const q=i(d).find(X=>X.id===B);return!q||q.requiresRole&&q.requiresRole!==t.role?!1:(g(B),!0)},listModes:()=>i(d).map(B=>({id:B.id,label:B.label})),getMode:()=>({id:i(f).id,label:i(f).label}),dispatchToTerminal:fc({headless:!1})})),w=_e(()=>new mh(t.wsUrl));let b=0,A=H(ce(new Map));function T(B){const q=++b;i(A).set(q,B),S(A,new Map(i(A)),!0);let X=!1;return()=>{X||(X=!0,i(A).delete(q),S(A,new Map(i(A)),!0))}}let L=U(()=>i(A).size>0),R=U(()=>{if(i(A).size===0)return null;let B;for(const q of i(A).values())B=q;return B??null});const{dispatch:P,cancel:M}=_e(()=>A2({mode:()=>i(f),role:()=>t.role,resolver:a,buffer:()=>i(y),session:w,sh3:C,fs:l,cwd:()=>w.cwd,busy:T,customMode:B=>i(c).find(q=>q.id===B)??null}));let O=H(!1),E=H(null);const D=new L2;D.register({id:"busy",order:5,visible:()=>!0,component:B2}),D.register({id:"mode",order:10,visible:()=>!0,component:P2}),D.register({id:"focus-lock",order:20,visible:B=>B.mode.id==="sh3",component:z2}),D.register({id:"target-shard",order:30,visible:B=>B.mode.id==="sh3",component:O2});function F(B){if(B.type==="tabs")return B.tabs[B.activeTab]?.viewId??null;if(B.type==="split"){for(const q of B.children){const X=F(q);if(X!==null)return X}return null}return B.viewId??null}function z(){try{const B=Nt(),q=F(B.docked);if(!q)return null;const X=q.indexOf(":");return X>=0?q.slice(0,X):q}catch{return null}}Se(()=>{const B=z(),q=i(f).autoRelocate,X=i(O);(async()=>{const Y=await C2({modeAutoRelocate:q,focusLocked:X,focusedShardId:B,currentShardId:"shell"},l);Y.kind==="relocate"&&Y.path!==void 0&&(w.cwd=Y.path),B&&B!=="shell"?S(E,B,!0):B||S(E,null)})()});function V(B){if(B.t==="replay"){e2(s("bash"),B.events);return}if(B.t!=="event")return;const q=B.event,X=s("bash");switch(q.kind){case"prompt":X.scrollback.push({kind:"prompt",cwd:q.cwd,line:q.line,ts:q.ts}),X.locked=!0;break;case"stdout":X.scrollback.push({kind:"text",stream:"stdout",chunks:[q.data],ts:q.ts});break;case"stderr":X.scrollback.push({kind:"text",stream:"stderr",chunks:[q.data],ts:q.ts});break;case"exit":(q.signal||q.code!==null&&q.code!==0)&&X.scrollback.push({kind:"status",text:q.signal?`shell: process exited (${q.signal})`:`shell: process exited (${q.code})`,level:"error",ts:q.ts}),X.locked=!1;break;case"status":X.scrollback.push({kind:"status",text:q.text,level:q.level,ts:q.ts});break}}let G=null,Z=null;ql(()=>{G=w.onMessage(V),s("bash");const B=n.readLastSeq("bash");B!==void 0&&(w.lastSeq=B),w.connect(),Z=c0({id:k,dispatch:P,getFocusStamp:()=>i(v),getMode:()=>i(f)})}),Bl(()=>{G?.(),w.close(),Z?.()});var $=F2(),Q=p($);{let B=U(()=>({mode:i(f),role:t.role})),q=U(()=>({busy:{active:i(L),label:i(R)},mode:{mode:i(f),modes:i(d),onSelect:g},"focus-lock":{locked:i(O),onToggle:()=>S(O,!i(O))},"target-shard":{target:i(E)}}));R2(Q,{get registry(){return D},get ctx(){return i(B)},get slotProps(){return i(q)}})}var te=_(Q,2);{let B=U(()=>i(f).showCwd||!1);f2(te,{get showPromptCwd(){return i(B)},get scrollback(){return i(y).scrollback}})}var J=_(te,2);{let B=U(()=>t2(w.cwd,w.tenantRoot)),q=U(()=>i(f).showCwd!==!1);y2(J,{get cwd(){return i(B)},get showCwd(){return i(q)},get locked(){return i(y).locked},get history(){return i(y).history},get session(){return w},get onSubmit(){return P},onFocus:m})}h($),x(e,$),ae()}var U2=I('<tr><td class="svelte-m248jy"><button type="button" class="svelte-m248jy"> </button></td><td class="svelte-m248jy"> </td></tr>'),H2=I('<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 up(e,t){se(t,!0);var n=H2(),r=p(n),s=_(p(r));he(s,21,()=>t.data.rows,a=>a.name,(a,l)=>{var o=U2(),c=p(o),u=p(c),d=p(u,!0);h(u),h(c);var f=_(c),v=p(f,!0);h(f),h(o),N(()=>{j(d,i(l).name),j(v,i(l).summary)}),K("click",u,()=>t.data.onClickName(i(l).name)),x(a,o)}),h(s),h(r),h(n),x(e,n),ae()}de(["click"]);const dp="help-table";zn(dp,up);function K2(){return{name:"help",summary:"List verbs or show detail for one.",globalVerb:!0,async run(e){const t=e.sh3.getMode().id==="sh3",n=ac().filter(r=>t||r.globalVerb===!0).map(r=>({name:r.name,summary:r.summary}));e.scrollback.push({kind:"rich",componentKey:dp,component:up,props:{data:{rows:n,onClickName:r=>e.dispatch(r)}},ts:Date.now()})}}}const Y2={name:"clear",summary:"Clear the scrollback (local only — other views are unaffected).",globalVerb:!0,async run(e){e.scrollback.clear()}},W2={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 l=e.sh3.listModes().map(o=>` ${o.id.padEnd(12)} ${o.label}`);e.scrollback.push({kind:"text",stream:"stdout",chunks:[["Available modes:",...l].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 X2=I('<li class="svelte-o8m437"><button type="button" class="svelte-o8m437"> </button></li>'),G2=I('<div class="shell-rich-history svelte-o8m437"><ol class="svelte-o8m437"></ol></div>');function fp(e,t){se(t,!0);var n=G2(),r=p(n);he(r,21,()=>t.data.lines,pt,(s,a)=>{var l=X2(),o=p(l),c=p(o,!0);h(o),h(l),N(()=>j(c,i(a))),K("click",o,()=>t.data.onClickLine(i(a))),x(s,l)}),h(r),h(n),x(e,n),ae()}de(["click"]);const vp="history-list";zn(vp,fp);const J2={name:"history",summary:"Show the last N history lines. Default 50.",async run(e,t){const n=t[0]?Math.max(1,parseInt(t[0],10)||50):50,r=e.sh3.getMode().id,a=(e.session.historyByMode[r]??[]).slice(-n);e.scrollback.push({kind:"rich",componentKey:vp,component:fp,props:{data:{lines:a,onClickLine:l=>e.dispatch(l)}},ts:Date.now()})}};var Z2=I('<tr><td class="svelte-1u5krjz"><button type="button" class="svelte-1u5krjz"> </button></td><td class="svelte-1u5krjz"> </td></tr>'),Q2=I('<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 hp(e,t){se(t,!0);var n=Q2(),r=p(n),s=_(p(r));he(s,21,()=>t.data.apps,a=>a.id,(a,l)=>{var o=Z2(),c=p(o),u=p(c),d=p(u,!0);h(u),h(c);var f=_(c),v=p(f,!0);h(f),h(o),N(()=>{j(d,i(l).id),j(v,i(l).label)}),K("click",u,()=>t.data.onClickApp(i(l).id)),x(a,o)}),h(s),h(r),h(n),x(e,n),ae()}de(["click"]);var $2=I('<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 pp(e,t){se(t,!0);var n=$2(),r=p(n),s=p(r,!0);h(r);var a=_(r,2),l=_(p(a));h(a);var o=_(a,2),c=_(p(o));h(o),h(n),N(u=>{j(s,t.data.label),j(l,` ${t.data.id??""}`),j(c,` ${u??""}`)},[()=>t.data.shards.join(", ")]),x(e,n),ae()}const mp="apps-table",bp="app-card";zn(mp,hp);zn(bp,pp);const eA={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:mp,component:hp,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()})}},tA={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:bp,component:pp,props:{data:{id:t.id,label:t.label,shards:[]}},ts:Date.now()})}};var nA=I('<tr><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td></tr>'),rA=I('<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 gp(e,t){se(t,!0);var n=rA(),r=p(n),s=_(p(r));he(s,21,()=>t.data.shards,a=>a.id,(a,l)=>{var o=nA(),c=p(o),u=p(c,!0);h(c);var d=_(c),f=p(d,!0);h(d);var v=_(d),m=p(v,!0);h(v),h(o),N(()=>{j(u,i(l).id),j(f,i(l).label),j(m,i(l).version)}),x(a,o)}),h(s),h(r),h(n),x(e,n),ae()}const yp="shards-table";zn(yp,gp);const sA={name:"shards",summary:"List active shards.",programmatic:!0,async run(e){const t=e.sh3.listShards();e.scrollback.push({kind:"rich",componentKey:yp,component:gp,props:{data:{shards:t}},ts:Date.now()})}};var aA=I('<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>'),iA=I('<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 _p(e,t){se(t,!0);var n=iA(),r=p(n),s=_(p(r));he(s,21,()=>t.data.views,a=>a.slotId,(a,l)=>{var o=aA(),c=p(o),u=p(c,!0);h(c);var d=_(c),f=p(d,!0);h(d);var v=_(d),m=p(v,!0);h(v);var k=_(v),y=p(k);h(k),h(o),N(()=>{j(u,i(l).slotId),j(f,i(l).viewId),j(m,i(l).label)}),K("click",y,()=>t.data.onClose(i(l).slotId)),x(a,o)}),h(s),h(r),h(n),x(e,n),ae()}de(["click"]);const wp="views-table";zn(wp,_p);const oA={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:wp,component:_p,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()})}},lA={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()})}},cA={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()})}},uA={name:"dock",summary:"Dock a float back into the current layout by float id. Run with no args to list floats.",programmatic:!0,async run(e,t){const n=t[0];if(!n){const s=e.sh3.listFloats();if(s.length===0){e.scrollback.push({kind:"status",text:"shell: no active floats.",level:"info",ts:Date.now()});return}e.scrollback.push({kind:"status",text:s.map(a=>` ${a.floatId.padEnd(24)} ${a.viewId??"-"} ${a.label}`).join(`
18
- `),level:"info",ts:Date.now()});return}const r=e.sh3.dockFloat(n);r.ok?e.scrollback.push({kind:"status",text:`shell: docked ${n}`,level:"info",ts:Date.now()}):e.scrollback.push({kind:"status",text:`shell: dock failed — ${r.error??"unknown"}`,level:"error",ts:Date.now()})}},dA={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 fA=I('<tr><td class="svelte-1w7onag"> </td><td class="svelte-1w7onag"> </td></tr>'),vA=I('<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 kp(e,t){se(t,!0);var n=vA(),r=p(n),s=_(p(r));he(s,21,()=>t.data.rows,a=>a.shardId,(a,l)=>{var o=fA(),c=p(o),u=p(c,!0);h(c);var d=_(c),f=p(d,!0);h(d),h(o),N(v=>{j(u,i(l).shardId),j(f,v)},[()=>i(l).zones.join(", ")]),x(a,o)}),h(s),h(r),h(n),x(e,n),ae()}var hA=I('<div class="shell-rich-zonetree svelte-13iiyr1"><pre class="svelte-13iiyr1"> </pre></div>');function xp(e,t){se(t,!0);var n=hA(),r=p(n),s=p(r,!0);h(r),h(n),N(a=>j(s,a),[()=>JSON.stringify(t.data.value,null,2)]),x(e,n),ae()}const Sp="zones-table",Ep="zone-tree";zn(Sp,kp);zn(Ep,xp);const pA={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:Sp,component:kp,props:{data:{rows:n}},ts:Date.now()})}},mA={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:Ep,component:xp,props:{data:{value:s}},ts:Date.now()})}};var bA=I('<tr><td class="svelte-1ox8vog"> </td><td class="svelte-1ox8vog"> </td></tr>'),gA=I('<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 Ip(e,t){se(t,!0);var n=gA(),r=p(n),s=_(p(r));he(s,21,()=>Object.entries(t.data.env),([a,l])=>a,(a,l)=>{var o=U(()=>Cd(i(l),2));let c=()=>i(o)[0],u=()=>i(o)[1];var d=bA(),f=p(d),v=p(f,!0);h(f);var m=_(f),k=p(m,!0);h(m),h(d),N(()=>{j(v,c()),j(k,u())}),x(a,d)}),h(s),h(r),h(n),x(e,n),ae()}const Ap="env-table";zn(Ap,Ip);const yA={name:"env",summary:"Show the session environment.",async run(e){const t=e.session.env;e.scrollback.push({kind:"rich",componentKey:Ap,component:Ip,props:{data:{env:t}},ts:Date.now()})}};async function _A(){try{const{TauriStoreBackend:e}=await fi(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:Sd}}}async function wA(){try{const{LazyStore:e}=await fi(async()=>{const{LazyStore:r}=await import("./index-BRw5Wfxx.js");return{LazyStore:r}},__vite__mapDeps([1,2])),t=new e("workspace.json",{defaults:{},autoSave:!0}),n=new e("user.json",{defaults:{},autoSave:!0});await t.clear(),await n.clear()}catch{}if(typeof localStorage<"u"){const e=[];for(let t=0;t<localStorage.length;t++){const n=localStorage.key(t);n&&n.startsWith("sh3:")&&e.push(n)}for(const t of e)localStorage.removeItem(t)}typeof indexedDB<"u"&&await new Promise(e=>{const t=indexedDB.deleteDatabase("sh3-packages");t.onsuccess=()=>e(),t.onerror=()=>e(),t.onblocked=()=>e()})}const kA={name:"reset",summary:"Wipe SH3 state and reload (preserves documents). Requires --confirm.",async run(e,t){if(!t.includes("--confirm")){e.scrollback.push({kind:"status",text:"reset: erases the package registry, all zone state (including Tauri stores), and theme overrides, then reloads. Documents are preserved. Re-run as `reset --confirm` to proceed.",level:"warn",ts:Date.now()});return}e.scrollback.push({kind:"status",text:"reset: wiping data…",level:"info",ts:Date.now()}),await wA(),location.reload()}};function xA(e){e.registerVerb(K2()),e.registerVerb(Y2),e.registerVerb(W2),e.registerVerb(J2),e.registerVerb(eA),e.registerVerb(tA),e.registerVerb(sA),e.registerVerb(oA),e.registerVerb(lA),e.registerVerb(dA),e.registerVerb(cA),e.registerVerb(uA),e.registerVerb(pA),e.registerVerb(mA),e.registerVerb(yA),e.registerVerb(kA)}const Cp={manifest:YI,activate(e){xA(e);const t=ux(e.zones),n=e.state({workspace:{buffers:{}}});XI(n),e.actions.register({id:"shell.terminal.toggle",label:"Open Terminal",scope:["home","app"],defaultShortcut:"²",allowInInputs:!1,run(){zi("shell:terminal")||Re.open("shell:terminal",{title:"Sh3"})}});const r={mount(s,a){const l=typeof location<"u"&&location.protocol==="https:"?"wss":"ws",o=typeof location<"u"?location.host:"localhost",c=`${l}://${o}/api/shell/session`,d=Zr()?.id??"guest",f=kt()?"admin":"user",v=Fe(V2,{target:s,props:{shell:t,wsUrl:c,userId:d,role:f,contributions:e.contributions}});return{unmount(){Ze(v)},closable:!0}}};e.registerView("shell:terminal",r)},autostart(){},deactivate(){GI()}};var SA=I('<p class="error svelte-1w8uhw5">The source float was closed.</p>'),EA=I('<p class="error svelte-1w8uhw5">No standalone views in this float.</p>'),IA=I('<li class="svelte-1w8uhw5"> <span class="muted svelte-1w8uhw5"> </span></li>'),AA=I('<div class="preview svelte-1w8uhw5"><div class="preview-label svelte-1w8uhw5"> </div> <ul class="preview-list svelte-1w8uhw5"></ul></div>'),CA=I('<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 TA(e,t){se(t,!0);const n=_e(()=>Re.list().find(T=>T.id===t.floatId)?.content??null),r=U(()=>n?Wi(n,t.isStandalone):null),s=U(()=>i(r)?u(i(r)):[]),a=U(()=>n===null),l=U(()=>!i(a)&&i(r)===null);let o=H(ce(_e(()=>t.defaultName)));const c=U(()=>i(o).trim()===""||i(a)||i(l));function u(T){if(T.type==="slot")return T.viewId?[T.viewId]:[];if(T.type==="tabs"){const L=[];for(const R of T.tabs)R.viewId&&L.push(R.viewId);return L}return T.children.flatMap(u)}function d(){i(c)||(t.onConfirm(i(o).trim()),t.close())}var f=CA(),v=_(p(f),2),m=_(p(v),2);we(m),h(v);var k=_(v,2);{var y=T=>{var L=SA();x(T,L)},g=T=>{var L=EA();x(T,L)},C=T=>{var L=AA(),R=p(L),P=p(R);h(R);var M=_(R,2);he(M,21,()=>i(s),pt,(O,E)=>{var D=IA(),F=p(D),z=_(F),V=p(z);h(z),h(D),N(G=>{j(F,`${G??""} `),j(V,`(${i(E)??""})`)},[()=>t.resolveLabel(i(E))]),x(O,D)}),h(M),h(L),N(()=>j(P,`Captured views (${i(s).length??""}):`)),x(T,L)};W(k,T=>{i(a)?T(y):i(l)?T(g,1):T(C,-1)})}var w=_(k,2),b=p(w),A=_(b,2);h(w),h(f),N(()=>b.disabled=i(c)),Ae(m,()=>i(o),T=>S(o,T)),K("click",b,d),K("click",A,()=>t.close()),x(e,f),ae()}de(["click"]);function RA(){const e=ua();return!e||e.type!=="float-header"?null:e.ref}function Mc(e){return Vs().some(t=>t.viewId===e)}function LA(e){return Vs().find(t=>t.viewId===e)?.label??e}function MA(){return`sl-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function PA(e,t){const n=Y3(e,Mc);if(n===null)return null;const r={id:MA(),name:t,createdAt:Date.now(),size:n.size,content:n.content};return U3(r),r}function Tp(){const e=ua();return!e||e.type!=="saved-layout"?null:e.ref}function DA(e,t){const n=t.icon===void 0&&t.color===void 0?void 0:{icon:t.icon,color:t.color};Xh(e,{name:t.label,appearance:n})}function zA(e){Xh(e,{appearance:void 0})}function jA(e){const t=Tp();if(!t)return;const n=br().find(s=>s.id===t.layoutId);if(!n)return;const r={entityLabel:n.name,initialAppearance:n.appearance,defaultIcon:"eye",requireLabel:!0,onSave:s=>DA(t.layoutId,s),onReset:()=>zA(t.layoutId)};Qt.open(Zh,r)}function OA(e){H3(e)}function NA(e){const t=Tp();if(!t)return;const n=br().find(r=>r.id===t.layoutId);n&&Qt.open(ep,{title:`Delete saved layout "${n.name}"?`,body:"This cannot be undone.",confirmLabel:"Delete",confirmTone:"danger",onConfirm:()=>OA(t.layoutId)})}function qA(e){const t=RA();if(!t)return;const n={floatId:t.floatId,isStandalone:Mc,resolveLabel:LA,defaultName:`Layout ${br().length+1}`,onConfirm:r=>{PA(t.floatId,r)}};Qt.open(TA,n)}const Rp={manifest:{id:"__layouts__",label:"Saved Layouts",version:fn,views:[]},activate(e){const t=e.state({user:{layouts:[]}});F3(t);const n=(l,o)=>{yn.notify(l,{level:o})},r={id:"sh3.layout.save",label:"Save layout as…",scope:{element:"float-header"},contextItem:!0,paletteItem:!1,run:qA};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:jA}),e.actions.register({id:"sh3.layout.delete",label:"Delete",scope:{element:"saved-layout"},contextItem:!0,run:NA});const s=new Map,a=new Map;rs(()=>{Se(()=>{const l=br(),o=new Set;for(const c of l){o.add(c.id);const u=s.get(c.id);if(u&&a.get(c.id)===c.name)continue;u&&(u(),s.delete(c.id),a.delete(c.id));const d=e.actions.register({id:`sh3.layout.open:${c.id}`,label:c.name,scope:["home","app"],submenuOf:"sh3.layout.open",run:()=>{const f=br().find(v=>v.id===c.id);f&&Jh(f,Mc,n)}});s.set(c.id,d),a.set(c.id,c.name)}for(const c of[...s.keys()])o.has(c)||(s.get(c)(),s.delete(c),a.delete(c))})})},autostart(){},deactivate(){V3()}},Lp={manifest:{id:"sh3-store-app",label:"Package Store",version:fn,requiredShards:["sh3-store"],layoutVersion:1,admin:!0},initialLayout:{type:"tabs",activeTab:0,tabs:[{slotId:"store.browse",viewId:"sh3-store:browse",label:"Browse"}]}};var BA=I('<div class="admin-error svelte-4q792t"> </div>'),FA=I('<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>'),VA=I('<p class="admin-muted svelte-4q792t">Loading...</p>'),UA=I('<p class="admin-error svelte-4q792t"> </p>'),HA=I('<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>'),KA=I('<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),YA=I('<li class="admin-user-item svelte-4q792t"><!></li>'),WA=I('<ul class="admin-user-list svelte-4q792t"></ul>'),XA=I('<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 GA(e,t){se(t,!0);let n=H(ce([])),r=H(!0),s=H(null),a=H(!1),l=H(""),o=H(""),c=H(""),u=H("user"),d=H(null),f=H(null),v=H(""),m=H("user"),k=H("");async function y(){S(r,!0),S(s,null);try{const z=await fetch("/api/admin/users",{credentials:"include"});if(!z.ok)throw new Error("Failed to fetch users");S(n,await z.json(),!0)}catch(z){S(s,z instanceof Error?z.message:"Failed to load users",!0)}finally{S(r,!1)}}async function g(){S(d,null);try{const z=await fetch("/api/admin/users",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:i(l),displayName:i(o)||i(l),password:i(c),role:i(u)})});if(!z.ok){const V=await z.json().catch(()=>({}));S(d,V.error||"Failed to create user",!0);return}S(l,""),S(o,""),S(c,""),S(u,"user"),S(a,!1),await y()}catch{S(d,"Network error")}}function C(z){S(f,z.id,!0),S(v,z.displayName,!0),S(m,z.role,!0),S(k,"")}async function w(){if(!i(f))return;const z={displayName:i(v),role:i(m)};i(k).trim()&&(z.password=i(k));try{if(!(await fetch(`/api/admin/users/${i(f)}`,{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(z)})).ok)return;S(f,null),await y()}catch{}}async function b(z){try{await fetch(`/api/admin/users/${z}`,{method:"DELETE",credentials:"include"}),await y()}catch{}}y();var A=XA(),T=p(A),L=_(p(T),2),R=p(L,!0);h(L),h(T);var P=_(T,2);{var M=z=>{var V=FA(),G=p(V);we(G);var Z=_(G,2);we(Z);var $=_(Z,2);we($);var Q=_($,2),te=p(Q);te.value=te.__value="user";var J=_(te);J.value=J.__value="admin",h(Q);var B=_(Q,2),q=_(B,2);{var X=Y=>{var oe=BA(),ve=p(oe,!0);h(oe),N(()=>j(ve,i(d))),x(Y,oe)};W(q,Y=>{i(d)&&Y(X)})}h(V),N(Y=>B.disabled=Y,[()=>!i(l).trim()||!i(c).trim()]),De("submit",V,Y=>{Y.preventDefault(),g()}),Ae(G,()=>i(l),Y=>S(l,Y)),Ae(Z,()=>i(o),Y=>S(o,Y)),Ae($,()=>i(c),Y=>S(c,Y)),Ms(Q,()=>i(u),Y=>S(u,Y)),x(z,V)};W(P,z=>{i(a)&&z(M)})}var O=_(P,2);{var E=z=>{var V=VA();x(z,V)},D=z=>{var V=UA(),G=p(V,!0);h(V),N(()=>j(G,i(s))),x(z,V)},F=z=>{var V=WA();he(V,21,()=>i(n),G=>G.id,(G,Z)=>{var $=YA(),Q=p($);{var te=B=>{var q=HA(),X=p(q);we(X);var Y=_(X,2);we(Y);var oe=_(Y,2),ve=p(oe);ve.value=ve.__value="user";var ke=_(ve);ke.value=ke.__value="admin",h(oe);var ge=_(oe,2),nt=_(p(ge),2);h(ge),h(q),De("submit",q,at=>{at.preventDefault(),w()}),Ae(X,()=>i(v),at=>S(v,at)),Ae(Y,()=>i(k),at=>S(k,at)),Ms(oe,()=>i(m),at=>S(m,at)),K("click",nt,()=>{S(f,null)}),x(B,q)},J=B=>{var q=KA(),X=fe(q),Y=p(X),oe=p(Y,!0);h(Y);var ve=_(Y,2),ke=p(ve);h(ve),h(X);var ge=_(X,2),nt=p(ge),at=_(nt,2);h(ge),N(()=>{j(oe,i(Z).displayName),j(ke,`${i(Z).username??""} · ${i(Z).role??""}`)}),K("click",nt,()=>C(i(Z))),K("click",at,()=>b(i(Z).id)),x(B,q)};W(Q,B=>{i(f)===i(Z).id?B(te):B(J,-1)})}h($),x(G,$)}),h(V),x(z,V)};W(O,z=>{i(r)?z(E):i(s)?z(D,1):z(F,-1)})}h(A),N(()=>j(R,i(a)?"Cancel":"New user")),K("click",L,()=>{S(a,!i(a))}),x(e,A),ae()}de(["click"]);var JA=I('<p class="admin-muted svelte-1hsgdb4">Loading...</p>'),ZA=I('<div class="admin-error svelte-1hsgdb4"> </div>'),QA=I('<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),$A=I('<div class="admin-auth svelte-1hsgdb4"><h2 class="svelte-1hsgdb4">Auth Settings</h2> <!></div>');function eC(e,t){se(t,!0);let n=H(null),r=H(!0),s=H(!1),a=H(null);async function l(){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(a,v instanceof Error?v.message:"Failed to load settings",!0)}finally{S(r,!1)}}async function o(){if(i(n)){S(s,!0),S(a,null);try{const v=await fetch("/api/admin/settings",{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(i(n))});if(!v.ok)throw new Error("Failed to save settings");S(n,await v.json(),!0)}catch(v){S(a,v instanceof Error?v.message:"Failed to save",!0)}finally{S(s,!1)}}}l();var c=$A(),u=_(p(c),2);{var d=v=>{var m=JA();x(v,m)},f=v=>{var m=QA(),k=fe(m),y=p(k),g=p(y);we(g),Mt(4),h(y);var C=_(y,2),w=p(C);we(w),Mt(4),h(C);var b=_(C,2),A=p(b);we(A),Mt(4),h(b);var T=_(b,2),L=_(p(T),2);we(L),h(T);var R=_(T,2),P=p(R,!0);h(R),h(k);var M=_(k,2);{var O=E=>{var D=ZA(),F=p(D,!0);h(D),N(()=>j(F,i(a))),x(E,D)};W(M,E=>{i(a)&&E(O)})}N(()=>{R.disabled=i(s),j(P,i(s)?"Saving...":"Save")}),Es(g,()=>i(n).auth.required,E=>i(n).auth.required=E),Es(w,()=>i(n).auth.guestAllowed,E=>i(n).auth.guestAllowed=E),Es(A,()=>i(n).auth.selfRegistration,E=>i(n).auth.selfRegistration=E),Ae(L,()=>i(n).auth.sessionTTL,E=>i(n).auth.sessionTTL=E),K("click",R,o),x(v,m)};W(u,v=>{i(r)?v(d):i(n)&&v(f,1)})}h(c),x(e,c),ae()}de(["click"]);var tC=I('<button type="button"> </button>'),nC=I('<div class="admin-error svelte-1gkiloq"> </div>'),rC=I('<div class="admin-error svelte-1gkiloq"> </div>'),sC=I(`<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 aC(e,t){se(t,!0);const n=[{value:0,label:"Off (no-store)"},{value:5,label:"5s (dev)"},{value:60,label:"1 min"},{value:3600,label:"1 hour"},{value:86400,label:"1 day"},{value:31536e3,label:"1 year"}];let r=H("..."),s=H(!1),a=H(null),l=H(31536e3),o=H(31536e3),c=H(!1),u=H(null);const d=U(()=>i(l)!==i(o)),f=U(()=>v(i(l)));function v(Y){return Y===0?"0 seconds (off — browsers never cache)":Y<60?`${Y} seconds`:Y<3600?`${Math.round(Y/60)} minutes`:Y<86400?`${Math.round(Y/3600)} hours`:Y<31536e3?`${Math.round(Y/86400)} days`:`${Math.round(Y/31536e3)} years`}async function m(){try{const Y=await fetch("/api/version");if(Y.ok){const oe=await Y.json();S(r,oe.version,!0)}}catch{}}async function k(){try{const Y=await fetch("/api/admin/settings",{credentials:"include"});if(Y.ok){const ve=(await Y.json()).packages?.cacheMaxAge??31536e3;S(l,ve,!0),S(o,ve,!0)}}catch{}}async function y(){S(c,!0),S(u,null);try{const Y=await fetch("/api/admin/settings",{method:"PUT",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({packages:{cacheMaxAge:i(l)}})});if(Y.ok){const oe=await Y.json();S(o,oe.packages?.cacheMaxAge??i(l),!0),S(l,i(o),!0)}else{const oe=await Y.json().catch(()=>({}));S(u,oe.error||"Save failed",!0)}}catch{S(u,"Network error")}finally{S(c,!1)}}async function g(){S(s,!0),S(a,null);try{const Y=await fetch("/api/admin/restart",{method:"POST",credentials:"include"});if(!Y.ok){const oe=await Y.json().catch(()=>({}));S(a,oe.error||"Restart failed",!0),S(s,!1)}}catch{S(a,"Network error"),S(s,!1)}}m(),k();var C=sC(),w=_(p(C),2),b=p(w),A=_(p(b),2),T=p(A,!0);h(A),h(b),h(w);var L=_(w,2),R=_(p(L),4);we(R);var P=_(R,2),M=p(P),O=p(M,!0);h(M);var E=_(M);h(P);var D=_(P,2);he(D,21,()=>n,Y=>Y.value,(Y,oe)=>{var ve=tC();let ke;var ge=p(ve,!0);h(ve),N(()=>{ke=ue(ve,1,"admin-snap svelte-1gkiloq",null,ke,{active:i(l)===i(oe).value}),ve.disabled=i(c),j(ge,i(oe).label)}),K("click",ve,()=>S(l,i(oe).value,!0)),x(Y,ve)}),h(D);var F=_(D,2),z=p(F),V=p(z,!0);h(z);var G=_(z,2),Z=_(G,2);{var $=Y=>{var oe=nC(),ve=p(oe,!0);h(oe),N(()=>j(ve,i(u))),x(Y,oe)};W(Z,Y=>{i(u)&&Y($)})}h(F),h(L);var Q=_(L,2),te=_(p(Q),2),J=p(te),B=p(J,!0);h(J);var q=_(J,2);{var X=Y=>{var oe=rC(),ve=p(oe,!0);h(oe),N(()=>j(ve,i(a))),x(Y,oe)};W(q,Y=>{i(a)&&Y(X)})}h(te),h(Q),h(C),N(()=>{j(T,i(r)),R.disabled=i(c),j(O,i(l)),j(E,` — ${i(f)??""}`),z.disabled=!i(d)||i(c),j(V,i(c)?"Saving...":"Save"),G.disabled=!i(d)||i(c),J.disabled=i(s),j(B,i(s)?"Restarting...":"Restart server")}),Ae(R,()=>i(l),Y=>S(l,Y)),K("click",z,y),K("click",G,()=>S(l,i(o),!0)),K("click",J,g),x(e,C),ae()}de(["click"]);var iC=I(`<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>`),oC=I('<div class="admin-error svelte-1afg5z5"> </div>'),lC=I('<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>'),cC=I('<p class="admin-muted svelte-1afg5z5">Loading...</p>'),uC=I('<p class="admin-error svelte-1afg5z5"> </p>'),dC=I('<p class="admin-muted svelte-1afg5z5">No API keys. Create one to enable external access.</p>'),fC=I('<button type="button" class="admin-btn-danger svelte-1afg5z5">Confirm</button> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Cancel</button>',1),vC=I('<button type="button" class="admin-btn-danger svelte-1afg5z5">Revoke</button>'),hC=I('<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>'),pC=I('<ul class="admin-key-list svelte-1afg5z5"></ul>'),mC=I('<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 bC(e,t){se(t,!0);let n=H(ce([])),r=H(!0),s=H(null),a=H(!1),l=H(""),o=H(null),c=H(null),u=H(null);async function d(){S(r,!0),S(s,null);try{const E=await fetch("/api/admin/keys",{credentials:"include"});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(o,null);try{const E=await fetch("/api/admin/keys",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({label:i(l)})});if(!E.ok){const F=await E.json().catch(()=>({}));S(o,F.error||"Failed to create key",!0);return}const D=await E.json();S(c,{id:D.id,key:D.key},!0),S(l,""),S(a,!1),await d()}catch{S(o,"Network error")}}async function v(E){S(u,null);try{await fetch(`/api/admin/keys/${E}`,{method:"DELETE",credentials:"include"}),i(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 k=mC(),y=p(k),g=_(p(y),2),C=p(g,!0);h(g),h(y);var w=_(y,2);{var b=E=>{var D=iC(),F=_(p(D),2),z=p(F,!0);h(F);var V=_(F,2);h(D),N(()=>j(z,i(c).key)),K("click",V,()=>{S(c,null)}),x(E,D)};W(w,E=>{i(c)&&E(b)})}var A=_(w,2);{var T=E=>{var D=lC(),F=p(D);we(F);var z=_(F,2),V=_(z,2);{var G=Z=>{var $=oC(),Q=p($,!0);h($),N(()=>j(Q,i(o))),x(Z,$)};W(V,Z=>{i(o)&&Z(G)})}h(D),N(Z=>z.disabled=Z,[()=>!i(l).trim()]),De("submit",D,Z=>{Z.preventDefault(),f()}),Ae(F,()=>i(l),Z=>S(l,Z)),x(E,D)};W(A,E=>{i(a)&&E(T)})}var L=_(A,2);{var R=E=>{var D=cC();x(E,D)},P=E=>{var D=uC(),F=p(D,!0);h(D),N(()=>j(F,i(s))),x(E,D)},M=E=>{var D=dC();x(E,D)},O=E=>{var D=pC();he(D,21,()=>i(n),F=>F.id,(F,z)=>{var V=hC(),G=p(V),Z=p(G),$=p(Z,!0);h(Z);var Q=_(Z,2),te=p(Q);h(Q),h(G);var J=_(G,2),B=p(J);{var q=Y=>{var oe=fC(),ve=fe(oe),ke=_(ve,2);K("click",ve,()=>v(i(z).id)),K("click",ke,()=>{S(u,null)}),x(Y,oe)},X=Y=>{var oe=vC();K("click",oe,()=>{S(u,i(z).id,!0)}),x(Y,oe)};W(B,Y=>{i(u)===i(z).id?Y(q):Y(X,-1)})}h(J),h(V),N(Y=>{j($,i(z).label),j(te,`${i(z).id??""} · ${Y??""}`)},[()=>m(i(z).createdAt)]),x(F,V)}),h(D),x(E,D)};W(L,E=>{i(r)?E(R):i(s)?E(P,1):i(n).length===0?E(M,2):E(O,-1)})}h(k),N(()=>j(C,i(a)?"Cancel":"New key")),K("click",g,()=>{S(a,!i(a))}),x(e,k),ae()}de(["click"]);const Mp={manifest:{id:"sh3-admin",label:"Admin",version:fn,views:[{id:"sh3-admin:users",label:"Users"},{id:"sh3-admin:auth",label:"Auth Settings"},{id:"sh3-admin:system",label:"System"},{id:"sh3-admin:keys",label:"API Keys"}]},activate(e){const t={mount(a,l){const o=Fe(GA,{target:a});return{unmount(){Ze(o)}}}},n={mount(a,l){const o=Fe(eC,{target:a});return{unmount(){Ze(o)}}}},r={mount(a,l){const o=Fe(aC,{target:a});return{unmount(){Ze(o)}}}},s={mount(a,l){const o=Fe(bC,{target:a});return{unmount(){Ze(o)}}}};e.registerView("sh3-admin:users",t),e.registerView("sh3-admin:auth",n),e.registerView("sh3-admin:system",r),e.registerView("sh3-admin:keys",s)}},Pp={manifest:{id:"sh3-admin-app",label:"Admin",version:fn,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"}]}},$u="sh3:migrations:shell-rename:done",ed="__shell__:",gC="__sh3core__:",td="sh3:user:__shell__:theme",nd="sh3:user:__sh3core__:theme";function yC(e,t){if(t.getItem($u))return;const n=t.getItem(td);n!==null&&t.getItem(nd)===null&&(t.setItem(nd,n),t.removeItem(td));for(const r of e.keys()){if(!r.startsWith(ed))continue;const s=gC+r.slice(ed.length),a=e.read(r);e.write(s,a),e.delete(r)}t.setItem($u,"1")}const rd="sh3:migrations:mode-id-rename:done",_C="sh3.shell.lastMode.",sd={dev:"bash",user:"sh3"};function wC(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 kC(e){if(!e.getItem(rd)){for(const t of wC(e)){if(!t.startsWith(_C))continue;const n=e.getItem(t);n&&Object.prototype.hasOwnProperty.call(sd,n)&&e.setItem(t,sd[n])}e.setItem(rd,"1")}}let ad=!1,id=null;function xC(){ad||(ad=!0,id=e=>{const t=e.state?.sh3;t==="anchor"?(iw(),history.forward()):t==="forward-bumper"&&(ow(),history.back())},window.addEventListener("popstate",id),history.replaceState({sh3:"anchor"},""),history.pushState({sh3:"main"},""),history.pushState({sh3:"forward-bumper"},""),history.back())}function od(e){Fi(e)}function SC(){const e=dn.workspace;return{keys:()=>e.list(),read:t=>e.read(t),write:(t,n)=>e.write(t,n),delete:t=>e.delete(t)}}async function EC(e){if(typeof globalThis.localStorage<"u"){yC(SC(),globalThis.localStorage),kC(globalThis.localStorage);const{migrateLegacyWorkspaceKeys:a}=await fi(async()=>{const{migrateLegacyWorkspaceKeys:l}=await import("./workspace-rekey-DRgvbNY-.js");return{migrateLegacyWorkspaceKeys:l}},[]);a(sh())}const t=new Set(e?.excludeShards),n=[op,Cp,ip,Mp,Wh,$h,Rp];for(const a of n)t.has(a.manifest.id)||Fi(a);const r=[Lp,Pp];for(const a of r)zs(a);await sp();for(const[a,l]of Zt)if(l.autostart){Wv(a);try{await ai(a,{phase:"autostart"})}catch{}}const s=_0();if(s&&Vn.has(s))try{await Mn(s)}catch(a){console.error(`[sh3] Auto-launch of "${s}" failed:`,a),w0()}sw({returnToHome:cs,launchApp:Mn}),typeof window<"u"&&typeof history<"u"&&xC()}async function IC(e){const t=[op,Cp,ip,Mp,Wh,$h,Rp];for(const s of t)Fi(s);const n=[Lp,Pp];for(const s of n)zs(s);await sp();const r=new Set;for(const[s,a]of Zt)if(a.autostart){Wv(s);try{await ai(s,{phase:"autostart"}),r.add(s)}catch{}}for(const s of e.activateShardIds)if(!r.has(s))if(Zt.has(s))try{await ai(s,{phase:"satellite"})}catch(a){console.error(`[sh3] satellite activation of "${s}" failed:`,a)}else console.warn(`[sh3] satellite requested shard "${s}" but it is not registered`)}var AC=I('<div aria-hidden="true"></div>'),CC=I('<button type="button" aria-label="Expand pane"><span class="collapse-icon"> </span></button>'),TC=I('<button type="button" aria-label="Collapse pane"><span class="collapse-icon"> </span></button>'),RC=I('<!> <div class="pane-content svelte-1adl4o1"><!></div>',1),LC=I('<div role="separator"></div>'),MC=I("<div><!></div> <!>",1),PC=I("<div></div>");function DC(e,t){se(t,!0);const n=40,r=28;let s=ee(t,"compact",3,!1),a;const l=b=>t.pinned?.[b]??"fr",o=b=>t.collapsed?.[b]??!1,c=b=>t.fixed?.[b]??!1,u=b=>c(b)||c(b+1);function d(b){if(c(b))return!1;const A=b>0?!c(b-1):!1,T=b<t.count-1?!c(b+1):!1;return A||T}function f(b){return o(b)?`0 0 ${r}px`:l(b)==="px"?`0 0 ${Math.max(n,t.sizes[b])}px`:`${Math.max(1e-4,t.sizes[b])} 1 0`}let v=H(null),m=null;function k(b,A){if(s()||o(A)||o(A+1)||u(A))return;const T=a?Gl(a):0;if(!ia(b.pointerId,{ownerId:"sh3:splitter",axis:"xy",priority:"normal",depth:T}))return;m=b.pointerId,b.preventDefault(),b.target.setPointerCapture(b.pointerId);const R=a.getBoundingClientRect(),P=t.direction==="horizontal"?R.width:R.height;let M=0,O=0;for(let E=0;E<t.sizes.length;E++)l(E)==="fr"?M+=t.sizes[E]:O+=Math.max(n,t.sizes[E]);S(v,{handleIndex:A,startClient:t.direction==="horizontal"?b.clientX:b.clientY,startSizes:t.sizes.slice(),containerPx:P,totalFr:M,frAvailPx:Math.max(1,P-O)},!0)}function y(b){if(!i(v))return;const T=(t.direction==="horizontal"?b.clientX:b.clientY)-i(v).startClient,L=i(v).handleIndex,R=L+1,P=l(L),M=l(R),O=i(v).totalFr/i(v).frAvailPx;if(P==="fr"&&M==="fr"){const E=n*O,D=T*O,F=i(v).startSizes[R]-E,z=-(i(v).startSizes[L]-E),V=Math.min(Math.max(D,z),F);t.onResize?.(L,i(v).startSizes[L]+V),t.onResize?.(R,i(v).startSizes[R]-V)}else if(P==="px"&&M==="fr"){const E=i(v).frAvailPx-n,D=n-i(v).startSizes[L];t.onResize?.(L,i(v).startSizes[L]+Math.min(Math.max(T,D),E))}else if(P==="fr"&&M==="px"){const E=i(v).startSizes[R]-n,D=-(i(v).frAvailPx-n);t.onResize?.(R,i(v).startSizes[R]-Math.min(Math.max(T,D),E))}else{const E=i(v).startSizes[R]-n,D=-(i(v).startSizes[L]-n),F=Math.min(Math.max(T,D),E);t.onResize?.(L,i(v).startSizes[L]+F),t.onResize?.(R,i(v).startSizes[R]-F)}}function g(b){i(v)&&(b.target.releasePointerCapture(b.pointerId),m!==null&&(hr(m,"sh3:splitter"),m=null),S(v,null))}var C=PC();let w;he(C,21,()=>Array(t.count),pt,(b,A,T)=>{var L=MC(),R=fe(L);let P;var M=p(R);{var O=V=>{var G=Pe(),Z=fe(G);{var $=te=>{var J=AC();let B;N(()=>B=ue(J,1,"collapse-header inert svelte-1adl4o1",null,B,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"})),x(te,J)},Q=te=>{var J=CC();let B;var q=p(J),X=p(q,!0);h(q),h(J),N(()=>{B=ue(J,1,"collapse-header svelte-1adl4o1",null,B,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),j(X,t.direction==="horizontal"?"▸":"▾")}),K("click",J,()=>t.onCollapseToggle?.(T,!1)),x(te,J)};W(Z,te=>{s()?te($):te(Q,-1)})}x(V,G)},E=U(()=>o(T)),D=V=>{var G=RC(),Z=fe(G);{var $=B=>{var q=TC();let X;re(q,"data-testid",`collapse-toggle-${T}`);var Y=p(q),oe=p(Y,!0);h(Y),h(q),N(()=>{X=ue(q,1,"collapse-header expanded svelte-1adl4o1",null,X,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),j(oe,t.direction==="horizontal"?"◂":"▴")}),K("click",q,()=>t.onCollapseToggle?.(T,!0)),x(B,q)},Q=U(()=>!s()&&t.onCollapseToggle&&d(T));W(Z,B=>{i(Q)&&B($)})}var te=_(Z,2),J=p(te);Gt(J,()=>t.pane,()=>T),h(te),x(V,G)};W(M,V=>{i(E)?V(O):V(D,-1)})}h(R);var F=_(R,2);{var z=V=>{var G=LC();let Z;re(G,"data-testid",`splitter-handle-${T}`),N($=>{Z=ue(G,1,"splitter-handle svelte-1adl4o1",null,Z,$),re(G,"aria-orientation",t.direction==="horizontal"?"vertical":"horizontal")},[()=>({dragging:i(v)?.handleIndex===T,disabled:o(T)||o(T+1),frozen:u(T)})]),K("pointerdown",G,$=>k($,T)),K("pointermove",G,y),K("pointerup",G,g),De("pointercancel",G,g),K("dblclick",G,()=>{u(T)||!d(T)&&!o(T)||t.onCollapseToggle?.(T,!o(T))}),x(V,G)};W(F,V=>{T<t.count-1&&V(z)})}N((V,G)=>{P=ue(R,1,"splitter-pane svelte-1adl4o1",null,P,V),He(R,`flex: ${G??""};`)},[()=>({collapsed:o(T)}),()=>f(T)]),x(b,L)}),h(C),je(C,b=>a=b,()=>a),N(()=>w=ue(C,1,"splitter svelte-1adl4o1",null,w,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical",compact:s()})),x(e,C),ae()}de(["click","pointerdown","pointermove","pointerup","dblclick"]);function zC(e,t,n){if(!n)return null;const r=n.getBoundingClientRect(),s=t.filter(o=>!!o);if(s.length===0)return{left:4,top:2,height:r.height-4};const a=Math.max(0,Math.min(e,s.length));let l;return a===s.length?l=s[s.length-1].getBoundingClientRect().right:l=s[a].getBoundingClientRect().left,{left:l-r.left-1,top:2,height:r.height-4}}var jC=I('<span class="tab-dirty svelte-1kxcyhf" title="Unsaved changes"></span>'),OC=I('<span class="tab-icon svelte-1kxcyhf"> </span>'),NC=I('<span class="tab-close svelte-1kxcyhf" role="button" tabindex="-1" title="Close">&#x2715;</span>'),qC=I('<button type="button" role="tab"><!> <!> <span class="tab-label svelte-1kxcyhf"> </span> <!></button>'),BC=I('<div class="drop-indicator svelte-1kxcyhf"></div>'),FC=I("<div><!></div>"),VC=I('<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 UC(e,t){se(t,!0);function n(g){t.clickGuard?.()||t.onActiveChange?.(g)}function r(g,C){C.stopPropagation(),t.onClose?.(g)}let s=H(void 0);const a=ce([]);let l=H(null);function o(g,C){if(!t.dragController)return;const w=a[g];w&&t.dragController.onPointerDown(g,C,w)}function c(g){if(!t.dragController||!t.dragController.isDragging||!i(s))return;const C=i(s).getBoundingClientRect(),w=a.filter(b=>!!b).map(b=>b.getBoundingClientRect());S(l,t.dragController.onStripHover(C,g.clientX,g.clientY,w),!0)}function u(){t.dragController&&(S(l,null),t.dragController.onStripLeave())}var d=VC(),f=p(d),v=p(f);he(v,17,()=>t.labels,pt,(g,C,w)=>{var b=qC();let A;var T=p(b);{var L=F=>{var z=jC();x(F,z)};W(T,F=>{t.dirty?.[w]&&F(L)})}var R=_(T,2);{var P=F=>{var z=OC(),V=p(z,!0);h(z),N(()=>j(V,t.icons[w])),x(F,z)};W(R,F=>{t.icons?.[w]&&F(P)})}var M=_(R,2),O=p(M,!0);h(M);var E=_(M,2);{var D=F=>{var z=NC();N(()=>re(z,"data-testid",t.tabIds?.[w]?`tab-close-${t.tabIds[w]}`:void 0)),K("click",z,V=>r(w,V)),K("keydown",z,V=>{(V.key==="Enter"||V.key===" ")&&r(w,V)}),x(F,z)};W(E,F=>{t.closable?.[w]&&F(D)})}h(b),je(b,(F,z)=>a[z]=F,F=>a?.[F],()=>[w]),N(()=>{A=ue(b,1,"tab svelte-1kxcyhf",null,A,{active:t.activeTab===w}),re(b,"aria-selected",t.activeTab===w),j(O,i(C))}),K("click",b,()=>n(w)),K("pointerdown",b,F=>o(w,F)),De("auxclick",b,F=>{F.button===1&&t.closable?.[w]&&r(w,F)}),x(g,b)});var m=_(v,2);{var k=g=>{const C=U(()=>zC(i(l),a,i(s)));var w=Pe(),b=fe(w);{var A=T=>{var L=BC();N(()=>He(L,`left: ${i(C).left??""}px; height: ${i(C).height??""}px; top: ${i(C).top??""}px;`)),x(T,L)};W(b,T=>{i(C)&&T(A)})}x(g,w)};W(m,g=>{i(l)!==null&&t.dragController?.isDragging&&g(k)})}h(f),je(f,g=>S(s,g),()=>i(s));var y=_(f,2);he(y,21,()=>t.labels,pt,(g,C,w)=>{var b=FC();let A;var T=p(b);Gt(T,()=>t.body,()=>w),h(b),N(()=>A=ue(b,1,"tab-body-pane svelte-1kxcyhf",null,A,{active:t.activeTab===w})),x(g,b)}),h(y),h(d),K("pointermove",f,c),De("pointerleave",f,u),x(e,d),ae()}de(["pointermove","click","pointerdown","keydown"]);var HC=I('no factory for <code class="svelte-1czj0s8"> </code>',1),KC=I("<em>empty slot</em>"),YC=I('<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>'),WC=I('<div class="slot svelte-1czj0s8"><!></div>');function ci(e,t){se(t,!0);let n=ee(t,"label",3,""),r=H(void 0),s=H(0),a=H(0);const l=U(()=>t.node.viewId?!!Av(t.node.viewId):!1);Se(()=>{if(!i(r))return;const d=t.node.slotId,f=i(r),v=oc(d,t.node.viewId,n()||t.node.viewId||d,t.meta);f.appendChild(v);const m=new ResizeObserver(k=>{for(const y of k){const g=y.contentRect;S(s,Math.round(g.width),!0),S(a,Math.round(g.height),!0)}});return m.observe(f),()=>{m.disconnect(),lc(d,f)}});var o=WC(),c=p(o);{var u=d=>{var f=YC(),v=p(f),m=p(v,!0);h(v);var k=_(v,2),y=p(k);{var g=A=>{var T=HC(),L=_(fe(T)),R=p(L,!0);h(L),N(()=>j(R,t.node.viewId)),x(A,T)},C=A=>{var T=KC();x(A,T)};W(y,A=>{t.node.viewId?A(g):A(C,-1)})}h(k);var w=_(k,2),b=p(w);h(w),h(f),N(()=>{j(m,t.node.slotId),j(b,`${i(s)??""} × ${i(a)??""}`)}),x(d,f)};W(c,d=>{i(l)||d(u)})}h(o),je(o,d=>S(r,d),()=>i(r)),N(()=>{re(o,"data-slot-id",t.node.slotId),re(o,"data-view-id",t.node.viewId??"")}),x(e,o),ae()}const Ee=ce({phase:"idle",source:null,pointerX:0,pointerY:0,target:null});let Dp=0;function XC(){return performance.now()<Dp}const ld=4;let zp=0,jp=0,Oa=null;function GC(e,t,n,r,s){if(Ee.phase!=="idle")return;const a=Gl(s);if(!ia(r.pointerId,{ownerId:"sh3:tabdrag",axis:"xy",priority:"normal",depth:a}))return;Oa=r.pointerId;const o=s.getBoundingClientRect();Ee.phase="pending",Ee.source={slotId:e,entry:t,sourceRoot:n,startRect:o,offsetX:r.clientX-o.left,offsetY:r.clientY-o.top},Ee.pointerX=r.clientX,Ee.pointerY=r.clientY,Ee.target=null,zp=r.clientX,jp=r.clientY,JC()}function JC(){window.addEventListener("pointermove",Op,!0),window.addEventListener("pointerup",Np,!0),window.addEventListener("pointercancel",qp,!0),document.body.style.userSelect="none",document.body.dataset.dragging=""}function ZC(){window.removeEventListener("pointermove",Op,!0),window.removeEventListener("pointerup",Np,!0),window.removeEventListener("pointercancel",qp,!0),document.body.style.userSelect="",delete document.body.dataset.dragging}function Op(e){if(Ee.pointerX=e.clientX,Ee.pointerY=e.clientY,Ee.phase==="pending"){const t=e.clientX-zp,n=e.clientY-jp;t*t+n*n>=ld*ld&&(Ee.phase="dragging")}}function Np(e){Ee.phase==="dragging"&&(QC(),Dp=performance.now()+50),Bp()}function qp(e){Bp()}function cd(e){const t=Jt.tree;if(e.kind==="docked")return t.docked;const n=t.floats.find(r=>r.id===e.floatId);return n?n.content:null}function ud(e){if(e.kind!=="float")return;const t=Jt.tree,n=t.floats.findIndex(r=>r.id===e.floatId);n<0||dv(t.floats[n].content)&&t.floats.splice(n,1)}function QC(){const{source:e,target:t}=Ee;if(!e||!t)return;const n=cd(e.sourceRoot),r=cd(t.root);if(!n||!r)return;if(t.kind==="strip"){const a=t.tabsNode.tabs.findIndex(l=>l.slotId===e.slotId);if(a>=0){hk(t.tabsNode,a,t.insertIndex),Dr(n),r!==n&&Dr(r),ud(e.sourceRoot);return}}const s=Li(n,e.slotId);s&&(t.kind==="strip"?vk(t.tabsNode,s,t.insertIndex):Lv(r,t.path,s,t.side),Dr(n),r!==n&&Dr(r),ud(e.sourceRoot))}function Bp(){Oa!==null&&(hr(Oa,"sh3:tabdrag"),Oa=null),Ee.phase="idle",Ee.source=null,Ee.target=null,ZC()}function pl(e){Ee.phase==="dragging"&&(Ee.target=e)}function qr(e){Ee.phase==="dragging"&&Ee.target&&(e&&!e(Ee.target)||(Ee.target=null))}var $C=I("<div></div>"),eT=I('<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),tT=I("<!> <!>",1),nT=I("<div><!></div>");function ml(e,t){se(t,!0);let n=H(void 0),r=H(null);const s=U(()=>Ee.phase==="dragging"),a=U(()=>{let m;return t.rootRef.kind==="docked"?m=Jt.root:m=Jt.tree.floats.find(y=>y.id===t.rootRef.floatId)?.content??null,m?Mv(m,t.path):!1});function l(m,k,y){const g=y.left+y.width/2,C=y.top+y.height/2,w=m-g,b=k-C,A=w/y.width,T=b/y.height;return Math.abs(A)>Math.abs(T)?A<0?"left":"right":T<0?"top":"bottom"}function o(m){if(!i(n))return;if(i(a)){i(r)!==null&&(S(r,null),qr(g=>g.kind==="split"&&g.path.join("/")===t.path.join("/")));return}const k=i(n).getBoundingClientRect();if(m.clientX<k.left||m.clientX>k.right||m.clientY<k.top||m.clientY>k.bottom){i(r)!==null&&(S(r,null),qr(g=>g.kind==="split"&&g.path.join("/")===t.path.join("/")));return}const y=l(m.clientX,m.clientY,k);if(y!==i(r)){S(r,y,!0);const g={kind:"split",root:t.rootRef,path:[...t.path],side:y};pl(g)}}function c(){i(r)!==null&&(S(r,null),qr(m=>m.kind==="split"&&m.path.join("/")===t.path.join("/")))}var u=nT();let d;var f=p(u);{var v=m=>{var k=tT(),y=fe(k);{var g=b=>{var A=$C();N(()=>ue(A,1,`quad-highlight quad-${i(r)??""}`,"svelte-re71zu")),x(b,A)};W(y,b=>{i(r)&&b(g)})}var C=_(y,2);{var w=b=>{var A=eT();Mt(6),x(b,A)};W(C,b=>{i(s)&&b(w)})}x(m,k)};W(f,m=>{i(a)||m(v)})}h(u),je(u,m=>S(n,m),()=>i(n)),N(()=>d=ue(u,1,"slot-drop-zone svelte-re71zu",null,d,{active:i(s),locked:i(a)})),K("pointermove",u,o),De("pointerleave",u,c),x(e,u),ae()}de(["pointermove"]);var rT=I('<div class="sh3-carousel-slide svelte-1qo3ctb" data-sh3-slide=""><!> <!></div>'),sT=I('<span data-sh3-pager-dot=""></span>'),aT=I('<div class="sh3-carousel-pager svelte-1qo3ctb" data-sh3-pager=""></div>'),iT=I('<div class="sh3-carousel svelte-1qo3ctb" data-sh3-region="carousel"><div data-sh3-carousel-track=""></div> <!></div>');function oT(e,t){se(t,!0);let n=ee(t,"node",7),r=ee(t,"rootRef",19,()=>({kind:"docked"})),s=ee(t,"path",19,()=>[]),a=H(null),l=H(0);Se(()=>{if(!i(a))return;const q=i(a).getBoundingClientRect();if(q.width>0)S(l,q.width,!0);else if(i(a).parentElement){const Y=i(a).parentElement.getBoundingClientRect();Y.width>0&&S(l,Y.width,!0)}const X=new ResizeObserver(Y=>{for(const oe of Y)S(l,oe.contentRect.width,!0)});return X.observe(i(a)),()=>X.disconnect()});const o=U(()=>n().tabs.length),c=U(()=>i(o)>1);let u=H(0),d=H(!1),f=H(!1),v=null,m=null,k=null;const y=1.2,g=6,C=.4,w=500,b=.3,A=250;function T(q){let X=q;for(;X&&X!==i(a);){const Y=getComputedStyle(X).overflowX;if(Y==="auto"||Y==="scroll")return!0;X=X.parentElement}return!1}function L(q){const X=q;if(!X||typeof X.tagName!="string")return!1;const Y=X.tagName;if(Y==="INPUT"||Y==="TEXTAREA"||Y==="SELECT"||X.isContentEditable===!0)return!0;const oe=X.closest?.('[contenteditable=""], [contenteditable="true"]');return oe!=null}function R(q,X){if(X===0)return 0;const Y=X*b;return Math.sign(q)*Y*(1-Math.exp(-Math.abs(q)/Y))}function P(q){if(!t.wrap){const X=n().activeTab===0&&q>0,Y=n().activeTab===i(o)-1&&q<0;if(X||Y)return R(q,i(l))}return q}function M(q){if(L(q.target)||T(q.target)||i(o)<2||i(l)===0||q.isPrimary===!1)return;const X=i(a)?Gl(i(a)):0;ia(q.pointerId,{ownerId:"sh3:carousel",axis:"x",priority:"normal",depth:X})&&(v=q.pointerId,m={id:q.pointerId,x:q.clientX,y:q.clientY,t:performance.now()},k={...m},S(d,!1),S(f,!1),S(u,0),document.addEventListener("pointermove",O),document.addEventListener("pointerup",E),document.addEventListener("pointercancel",D))}function O(q){if(!m||q.pointerId!==m.id)return;if(!vw(q.pointerId,"sh3:carousel")){F();return}const X=q.clientX-m.x,Y=q.clientY-m.y;if(!i(f)){const oe=performance.now()-m.t,ve=Math.abs(X)>Math.abs(Y)*y&&Math.abs(X)>g;if(Math.abs(Y)>Math.abs(X)*y&&Math.abs(Y)>g){F();return}if((Math.abs(X)>g||Math.abs(Y)>g)&&oe>A){F();return}if(!ve)return;S(f,!0),S(d,!0),typeof window<"u"&&window.getSelection()?.removeAllRanges()}typeof q.preventDefault=="function"&&q.preventDefault(),S(u,P(X),!0),k={id:q.pointerId,x:q.clientX,y:q.clientY,t:performance.now()}}function E(q){if(!m||q.pointerId!==m.id){F();return}const X=q.clientX-m.x;let Y=0;k&&k.t!==m.t&&(Y=(q.clientX-k.x)/Math.max(1,performance.now()-k.t)*1e3),z(X,Y),F()}function D(q){F()}function F(){v!==null&&(hr(v,"sh3:carousel"),v=null),document.removeEventListener("pointermove",O),document.removeEventListener("pointerup",E),document.removeEventListener("pointercancel",D),m=null,k=null,S(d,!1),S(f,!1),S(u,0)}function z(q,X){if(!i(f)||i(l)===0)return;const Y=Math.abs(q)>i(l)*C,oe=Math.abs(X)>w;if(!(Y||oe))return;const ve=q<0?1:-1;let ke=n().activeTab+ve;if(ke<0)if(t.wrap)ke=i(o)-1;else return;else if(ke>=i(o))if(t.wrap)ke=0;else return;n().activeTab=ke}const V=U(()=>i(l)===0?"translateX(0px)":`translateX(${-n().activeTab*i(l)+i(u)}px)`),G=U(()=>i(d)?"none":"");function Z(q){return q.slotId}var $=iT(),Q=p($);let te;he(Q,23,()=>n().tabs,q=>Z(q),(q,X,Y)=>{var oe=rT(),ve=p(oe);{let ge=U(()=>({type:"slot",slotId:i(X).slotId,viewId:i(X).viewId}));ci(ve,{get node(){return i(ge)},get label(){return i(X).label},get meta(){return i(X).meta}})}var ke=_(ve,2);ml(ke,{get rootRef(){return r()},get path(){return s()}}),h(oe),N(()=>{re(oe,"data-sh3-slide-index",i(Y)),He(oe,`width: ${i(l)??""}px;`)}),x(q,oe)}),h(Q);var J=_(Q,2);{var B=q=>{var X=aT();he(X,23,()=>n().tabs,(Y,oe)=>`dot-${oe}`,(Y,oe,ve)=>{var ke=sT();let ge;N(()=>{ge=ue(ke,1,"sh3-carousel-dot svelte-1qo3ctb",null,ge,{"sh3-carousel-dot--active":i(ve)===n().activeTab}),re(ke,"aria-current",i(ve)===n().activeTab?"true":void 0)}),x(Y,ke)}),h(X),x(q,X)};W(J,q=>{i(c)&&q(B)})}h($),je($,q=>S(a,q),()=>i(a)),N(()=>{te=ue(Q,1,"sh3-carousel-track svelte-1qo3ctb",null,te,{"sh3-carousel-track--dragging":i(d)}),He(Q,`transform: ${i(V)??""}; width: ${i(o)*100}%; ${i(G)?`transition: ${i(G)};`:""}`)}),K("pointerdown",Q,M),x(e,$),ae()}de(["pointerdown"]);function Fp(e){return e.join(".")}function lT(e){const t=new Map;function n(r,s,a){if(r.type==="tabs"){if(s){const l=r.tabs[r.activeTab];t.set(Fp(a),{wrap:r.wrap??!1,activeLabel:l?.label??""})}return}if(r.type==="split"){const l=s&&r.direction==="vertical";for(let o=0;o<r.children.length;o++)n(r.children[o],l,[...a,o]);return}}return n(e,!0,[]),t}var cT=I('<div class="tab-slot-wrapper svelte-1gw9g38"><!> <!></div>'),uT=I('<div class="empty-tabs-custom svelte-1gw9g38"></div>'),dT=I('<div class="empty-tabs-default svelte-1gw9g38"><div class="empty-tabs-drop svelte-1gw9g38"></div></div>'),fT=I('<div class="empty-tabs-placeholder svelte-1gw9g38"><!></div>'),vT=I('<div class="leaf-slot-wrapper svelte-1gw9g38"><!> <!></div>');function $r(e,t){se(t,!0);let n=ee(t,"path",19,()=>[]),r=ee(t,"rootRef",19,()=>({kind:"docked"}));const s=U(()=>{if(t.rootOverride!==void 0)return Jr(t.rootOverride,n());let w;return r().kind==="docked"?w=Jt.root:w=Jt.tree.floats.find(A=>A.id===r().floatId)?.content??null,w?Jr(w,n()):null});function a(w){return{get isDragging(){return Ee.phase==="dragging"},onPointerDown(b,A,T){const L=w.tabs[b];L&&GC(L.slotId,L,r(),A,T)},onStripHover(b,A,T,L){if(T<b.top||T>b.bottom)return qr(M=>M.kind==="strip"&&M.tabsNode===w),null;let R=L.length;for(let M=0;M<L.length;M++){const O=L[M],E=O.left+O.width/2;if(A<E){R=M;break}}const P=Ee.source;if(P){const M=w.tabs.findIndex(O=>O.slotId===P.slotId);M>=0&&M<R&&(R-=1)}return pl({kind:"strip",root:r(),tabsNode:w,insertIndex:R}),R},onStripLeave(){qr(b=>b.kind==="strip"&&b.tabsNode===w)}}}function l(w){return w.type==="split"?w:null}function o(w){return w.type==="tabs"?w:null}function c(w){return w.type==="slot"?w:null}function u(w){return w.map(b=>yk(b.slotId)||void 0)}function d(w){return w.map(b=>gk(b.slotId)||void 0)}function f(w,b){const A=w[b];A&&mc(A.slotId)}function v(w,b){b(w)}function m(w,b){Ee.phase==="dragging"&&pl({kind:"strip",root:r(),tabsNode:b,insertIndex:0})}function k(){qr(w=>w.kind==="strip"&&w.insertIndex===0)}var y=Pe(),g=fe(y);{var C=w=>{var b=Pe(),A=fe(b);{var T=P=>{const M=(E,D=Rt)=>{{let F=U(()=>[...n(),D()]);$r(E,{get rootRef(){return r()},get path(){return i(F)},get rootOverride(){return t.rootOverride},get carousels(){return t.carousels}})}},O=U(()=>l(i(s)));{let E=U(()=>er.current.class==="compact");DC(P,{get direction(){return i(O).direction},get sizes(){return i(O).sizes},get pinned(){return i(O).pinned},get collapsed(){return i(O).collapsed},get fixed(){return i(O).fixed},get count(){return i(O).children.length},get pane(){return M},get compact(){return i(E)},onResize:(D,F)=>i(O).sizes[D]=F,onCollapseToggle:(D,F)=>{i(O).collapsed||(i(O).collapsed=i(O).children.map(()=>!1)),i(O).collapsed[D]=F}})}},L=P=>{const M=U(()=>o(i(s))),O=U(()=>t.carousels?.get(Fp(n())));var E=Pe(),D=fe(E);{var F=G=>{oT(G,{get node(){return i(M)},get wrap(){return i(O).wrap},get rootRef(){return r()},get path(){return n()}})},z=G=>{const Z=(Q,te=Rt)=>{const J=U(()=>i(M)?.tabs[te()]);var B=Pe(),q=fe(B);{var X=Y=>{var oe=cT(),ve=p(oe);{let ge=U(()=>({type:"slot",slotId:i(J).slotId,viewId:i(J).viewId}));ci(ve,{get node(){return i(ge)},get label(){return i(J).label},get meta(){return i(J).meta}})}var ke=_(ve,2);ml(ke,{get rootRef(){return r()},get path(){return n()}}),h(oe),x(Y,oe)};W(q,Y=>{i(J)&&Y(X)})}x(Q,B)},$=U(()=>a(i(M)));{let Q=U(()=>i(M).tabs.map(X=>X.label)),te=U(()=>i(M).tabs.map(X=>X.icon)),J=U(()=>u(i(M).tabs)),B=U(()=>d(i(M).tabs)),q=U(()=>i(M).tabs.map(X=>X.slotId));UC(G,{get labels(){return i(Q)},get icons(){return i(te)},get activeTab(){return i(M).activeTab},onActiveChange:X=>i(M).activeTab=X,get body(){return Z},get dragController(){return i($)},get clickGuard(){return XC},get closable(){return i(J)},get dirty(){return i(B)},onClose:X=>f(i(M).tabs,X),get tabIds(){return i(q)}})}},V=G=>{var Z=fT(),$=p(Z);{var Q=J=>{var B=uT();Yf(B,(q,X)=>v?.(q,X),()=>i(M).emptyRenderer),x(J,B)},te=J=>{var B=dT(),q=p(B);h(B),K("pointermove",q,X=>m(X,i(M))),De("pointerleave",q,k),x(J,B)};W($,J=>{i(M).emptyRenderer?J(Q):J(te,-1)})}h(Z),x(G,Z)};W(D,G=>{i(O)&&i(M)&&i(M).tabs.length>0?G(F):i(M)&&i(M).tabs.length>0?G(z,1):i(M)?.persistent&&G(V,2)})}x(P,E)},R=P=>{const M=U(()=>c(i(s)));var O=vT(),E=p(O);ci(E,{get node(){return i(M)},get meta(){return i(M).meta}});var D=_(E,2);ml(D,{get rootRef(){return r()},get path(){return n()}}),h(O),x(P,O)};W(A,P=>{i(s).type==="split"?P(T):i(s).type==="tabs"?P(L,1):P(R,-1)})}x(w,b)};W(g,w=>{i(s)&&w(C)})}x(e,y),ae()}de(["pointermove"]);var hT=I('<span class="drag-preview-icon svelte-133fiip"> </span>'),pT=I('<div class="drag-preview svelte-133fiip"><!> <span class="drag-preview-label svelte-133fiip"> </span></div>');function mT(e,t){se(t,!0);const n=U(()=>Ee.phase==="dragging"&&!!Ee.source),r=U(()=>Ee.source?Ee.pointerX-Ee.source.offsetX:0),s=U(()=>Ee.source?Ee.pointerY-Ee.source.offsetY:0),a=U(()=>Ee.source?.startRect.width??0),l=U(()=>Ee.source?.startRect.height??0),o=U(()=>Ee.source?.entry.label??""),c=U(()=>Ee.source?.entry.icon);var u=Pe(),d=fe(u);{var f=v=>{var m=pT(),k=p(m);{var y=w=>{var b=hT(),A=p(b,!0);h(b),N(()=>j(A,i(c))),x(w,b)};W(k,w=>{i(c)&&w(y)})}var g=_(k,2),C=p(g,!0);h(g),h(m),N(()=>{He(m,`left: ${i(r)??""}px; top: ${i(s)??""}px; width: ${i(a)??""}px; height: ${i(l)??""}px;`),j(C,i(o))}),x(v,m)};W(d,v=>{i(n)&&v(f)})}x(e,u),ae()}const Br=new Map;let ui=!1;function Vp(e){if(Br.size===0||iv(e.pointerId))return;const t=e.target;if(!t)return;const n=Array.from(Br.keys());for(const r of n){const s=Br.get(r);s&&(s.contains(t)||Re.close(r))}}function bT(){ui||typeof document>"u"||(document.addEventListener("pointerdown",Vp,!0),ui=!0)}function gT(){ui&&(Br.size>0||(document.removeEventListener("pointerdown",Vp,!0),ui=!1))}function yT(e,t){Br.set(e,t),bT()}function _T(e){Br.delete(e),gT()}function wT(e){const t=new Set;return Up(e,t),[...t]}function Up(e,t){switch(e.type){case"slot":{if(e.viewId!==null){const n=ku(e.viewId);n&&t.add(n)}return}case"tabs":{for(const n of e.tabs)if(n.viewId!==null){const r=ku(n.viewId);r&&t.add(r)}return}case"split":{for(const n of e.children)Up(n,t);return}}}var kT=I('<button class="sh3-float-popout svelte-1p734al" aria-label="Open in own window" title="Open in own window">⧉</button>'),xT=I('<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>'),ST=I('<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 ET(e,t){se(t,!0);const n=typeof globalThis.__TAURI_INTERNALS__<"u",r=Ri("__layouts__");function s(z){z.preventDefault(),r.set({type:"float-header",ref:{floatId:a().id}}),Et.actions.openContextMenu({x:z.clientX,y:z.clientY,scope:{element:"float-header"}})}let a=ee(t,"entry",15),l=H(!1),o={x:0,y:0},c=H(!1),u={pointer:{x:0,y:0},size:{w:0,h:0},min:{w:0,h:0}},d=H(void 0);const f=U(()=>Re.isMaximized(a().id));Se(()=>{if(a().dismissable&&i(d))return yT(a().id,i(d)),()=>_T(a().id)}),Se(()=>{if(!i(d))return;const z=jw(a().id);if(z)return z.appendChild(i(d)),()=>{i(d)?.parentNode===z&&i(d).remove()}});function v(z){if(z.button!==0||z.target.closest(".sh3-float-close")||z.target.closest(".sh3-float-maximize")||z.target.closest(".sh3-float-popout"))return;z.currentTarget.setPointerCapture?.(z.pointerId),S(l,!0),o={x:z.clientX-a().position.x,y:z.clientY-a().position.y},Re.focus(a().id)}function m(z){i(l)&&(Re.unmaximize(a().id),a(a().position.x=z.clientX-o.x,!0),a(a().position.y=z.clientY-o.y,!0))}function k(z){if(!i(l))return;S(l,!1);const V=z.currentTarget;V.hasPointerCapture?.(z.pointerId)&&V.releasePointerCapture(z.pointerId)}function y(z){z.target.closest(".sh3-float-close")||z.target.closest(".sh3-float-maximize")||z.target.closest(".sh3-float-popout")||Re.toggleMaximize(a().id)}function g(z){if(z.button!==0)return;z.stopPropagation(),z.currentTarget.setPointerCapture?.(z.pointerId),S(c,!0),u={pointer:{x:z.clientX,y:z.clientY},size:{w:a().size.w,h:a().size.h},min:Jl(a().content)},Re.focus(a().id)}function C(z){if(!i(c))return;Re.unmaximize(a().id);const V=z.clientX-u.pointer.x,G=z.clientY-u.pointer.y;a(a().size.w=Math.max(u.min.w,u.size.w+V),!0),a(a().size.h=Math.max(u.min.h,u.size.h+G),!0)}function w(z){if(!i(c))return;S(c,!1);const V=z.currentTarget;V.hasPointerCapture?.(z.pointerId)&&V.releasePointerCapture(z.pointerId)}function b(){Re.focus(a().id)}function A(z){z.stopPropagation(),Re.toggleMaximize(a().id)}function T(z){z.stopPropagation(),Re.close(a().id)}async function L(z){z.stopPropagation();try{await Ui({kind:"float",content:a().content,title:a().title,size:{w:a().size.w,h:a().size.h},activateShards:wT(a().content)}),Re.close(a().id)}catch(V){Et.toast.notify(`Pop-out failed: ${V.message}`,{level:"error",duration:5e3})}}var R=ST();let P;var M=p(R);{var O=z=>{var V=xT(),G=p(V),Z=p(G,!0);h(G);var $=_(G,2),Q=p($);{var te=X=>{var Y=kT();K("click",Y,L),x(X,Y)};W(Q,X=>{n&&X(te)})}var J=_(Q,2),B=p(J,!0);h(J);var q=_(J,2);h($),h(V),N(()=>{re(V,"data-float-id",a().id),j(Z,a().title),re(J,"aria-label",i(f)?"Restore float":"Maximize float"),re(J,"aria-pressed",i(f)),j(B,i(f)?"🗗":"🗖")}),K("pointerdown",V,v),K("pointermove",V,m),K("pointerup",V,k),De("pointercancel",V,k),K("dblclick",V,y),K("contextmenu",V,s),K("click",J,A),K("click",q,T),x(z,V)};W(M,z=>{a().title&&z(O)})}var E=_(M,2),D=p(E);{let z=U(()=>({kind:"float",floatId:a().id}));$r(D,{get rootRef(){return i(z)},path:[]})}h(E);var F=_(E,2);h(R),je(R,z=>S(d,z),()=>i(d)),N(()=>{re(R,"aria-label",a().title??"Float panel"),P=He(R,"",P,{left:`${a().position.x??""}px`,top:`${a().position.y??""}px`,width:`${a().size.w??""}px`,height:`${a().size.h??""}px`})}),K("click",R,b),K("pointerdown",F,g),K("pointermove",F,C),K("pointerup",F,w),De("pointercancel",F,w),x(e,R),ae()}de(["click","pointerdown","pointermove","pointerup","dblclick","contextmenu"]);var IT=I('<div class="sh3-float-layer svelte-1rzcset"></div>');function AT(e,t){se(t,!0);const n=U(()=>Jt.floats);var r=IT();he(r,23,()=>i(n),s=>s.id,(s,a,l)=>{ET(s,{get entry(){return i(n)[i(l)]},set entry(o){i(n)[i(l)]=o}})}),h(r),x(e,r),ae()}var CT=I('<div class="sh3-overlay-root svelte-4ykdm7"><!></div>'),TT=I('<div class="sh3-overlays svelte-4ykdm7" aria-hidden="true"></div>');function Hp(e,t){se(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=ce({});Se(()=>{for(const{name:a}of n){const l=r[a];l&&tw(a,l)}return()=>{for(const{name:a}of n)nw(a)}}),Se(()=>{const a=Jt.tree;return Dw(a.floats,()=>({w:window.innerWidth,h:window.innerHeight})),()=>zw()});var s=TT();he(s,21,()=>n,({layer:a,name:l,zToken:o})=>a,(a,l)=>{let o=()=>i(l).layer,c=()=>i(l).name,u=()=>i(l).zToken;var d=CT(),f=p(d);{var v=k=>{AT(k,{})},m=k=>{mT(k,{})};W(f,k=>{c()==="floating"?k(v):c()==="drag-preview"&&k(m,1)})}h(d),je(d,(k,y)=>r[y]=k,k=>r?.[k],()=>[c()]),N(()=>{re(d,"data-sh3-overlay",c()),re(d,"data-sh3-layer",o()),He(d,`z-index: var(${u()??""});`)}),x(a,d)}),h(s),x(e,s),ae()}var RT=I('<div class="guest-signin-error svelte-pymkh"> </div>'),LT=I('<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>'),MT=I('<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),PT=I('<div class="guest-banner-slot"><!></div>');function DT(e,t){se(t,!0);let n=H(!1),r=H(""),s=H(""),a=H(null),l=H(!1);async function o(){if(!i(r).trim()||!i(s).trim()||i(l))return;S(l,!0),S(a,null);const v=await hh(i(r).trim(),i(s).trim());S(l,!1),v.ok?S(n,!1):S(a,v.error,!0)}var c=PT(),u=p(c);{var d=v=>{var m=MT(),k=fe(m),y=_(p(k),2);h(k);var g=_(k,2);{var C=w=>{var b=LT(),A=p(b),T=p(A),L=p(T);we(L);var R=_(L,2);we(R);var P=_(R,2),M=p(P),O=p(M,!0);h(M);var E=_(M,2);h(P),h(T);var D=_(T,2);{var F=z=>{var V=RT(),G=p(V,!0);h(V),N(()=>j(G,i(a))),x(z,V)};W(D,z=>{i(a)&&z(F)})}h(A),h(b),N(z=>{L.disabled=i(l),R.disabled=i(l),M.disabled=z,j(O,i(l)?"Signing in...":"Sign in")},[()=>i(l)||!i(r).trim()||!i(s).trim()]),De("submit",T,z=>{z.preventDefault(),o()}),Ae(L,()=>i(r),z=>S(r,z)),Ae(R,()=>i(s),z=>S(s,z)),K("click",E,()=>{S(n,!1),S(a,null)}),x(w,b)};W(g,w=>{i(n)&&w(C)})}K("click",y,()=>{S(n,!0)}),x(v,m)},f=U(()=>ph());W(u,v=>{i(f)&&v(d)})}h(c),x(e,c),ae()}de(["click"]);var zT=I('<code class="sh3-consent-scope svelte-14me5sj"> </code>'),jT=I('<dt class="svelte-14me5sj">Peer</dt> <dd class="svelte-14me5sj"> </dd>',1),OT=I('<dt class="svelte-14me5sj">Expires in</dt> <dd class="svelte-14me5sj"> </dd>',1),NT=I('<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 qT(e,t){se(t,!0);let n=H(null);Se(()=>Lh(u=>{S(n,u,!0)}));function r(){i(n)&&(ll(i(n).requestId,!0),S(n,null))}function s(){i(n)&&(ll(i(n).requestId,!1),S(n,null))}var a=Pe(),l=fe(a);{var o=c=>{var u=NT(),d=p(u),f=p(d),v=p(f),m=p(v,!0);h(v),Mt(),h(f);var k=_(f,2),y=_(p(k),2),g=p(y,!0);h(y);var C=_(y,4);he(C,20,()=>i(n).scopes,M=>M,(M,O)=>{var E=zT(),D=p(E,!0);h(E),N(()=>j(D,O)),x(M,E)}),h(C);var w=_(C,2);{var b=M=>{var O=jT(),E=_(fe(O),2),D=p(E);h(E),N(()=>j(D,`${i(n).peerRole??"—"??""}${i(n).peerId?` · ${i(n).peerId}`:""}`)),x(M,O)};W(w,M=>{(i(n).peerRole||i(n).peerId)&&M(b)})}var A=_(w,2);{var T=M=>{var O=OT(),E=_(fe(O),2),D=p(E);h(E),N(F=>j(D,`${F??""}s`),[()=>Math.round(i(n).expiresIn/1e3)]),x(M,O)};W(A,M=>{i(n).expiresIn&&M(T)})}h(k);var L=_(k,2),R=p(L);$s(R,!0);var P=_(R,2);h(L),h(d),h(u),N(()=>{j(m,i(n).shardId),j(g,i(n).label)}),K("click",R,s),K("click",P,r),x(c,u)};W(l,c=>{i(n)&&c(o)})}x(e,a),ae()}de(["click"]);var BT=I('<span class="sh3-brand svelte-18lk809">SH3</span>'),FT=I('<span class="sh3-brand sh3-brand-app svelte-18lk809"> </span>'),VT=I('<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),UT=I('<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),HT=I('<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),KT=I('<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),YT=I('<div class="sh3-brand-slot svelte-18lk809"><!></div>');function Kp(e,t){se(t,!0);const n=U(()=>wt().activeAppId),r=U(rw),s=U(()=>pr.activeProjectId),a=U(()=>i(n)?wn(i(n))?.manifest.label??i(n):null),l=U(()=>i(r)?wn(i(r))?.manifest.label??i(r):null),o=U(()=>i(s)?Ht.projects.find(A=>A.id===i(s))?.name??i(s):null),c=U(()=>i(s)?i(n)?"project-app":i(r)?"project-breadcrumb":"project-home":i(n)?"app":i(r)?"breadcrumb":"brand");function u(){i(r)&&Mn(i(r))}function d(){ah(null)}function f(){i(n)&&cs()}var v=YT(),m=p(v);{var k=A=>{var T=BT();x(A,T)},y=A=>{var T=FT(),L=p(T,!0);h(T),N(()=>j(L,i(a))),x(A,T)},g=A=>{var T=VT(),L=_(fe(T),4),R=p(L,!0);h(L),N(()=>j(R,i(l))),K("click",L,u),x(A,T)},C=A=>{var T=UT(),L=fe(T),R=_(L,4),P=p(R,!0);h(R),N(()=>j(P,i(o))),K("click",L,d),x(A,T)},w=A=>{var T=HT(),L=fe(T),R=p(L,!0);h(L);var P=_(L,4),M=p(P,!0);h(P),N(()=>{j(R,i(o)),j(M,i(a))}),x(A,T)},b=A=>{var T=KT(),L=fe(T),R=_(L,4),P=p(R,!0);h(R);var M=_(R,4),O=p(M,!0);h(M),N(()=>{j(P,i(o)),j(O,i(l))}),K("click",L,d),K("click",R,f),K("click",M,u),x(A,T)};W(m,A=>{i(c)==="brand"?A(k):i(c)==="app"?A(y,1):i(c)==="breadcrumb"?A(g,2):i(c)==="project-home"?A(C,3):i(c)==="project-app"?A(w,4):i(c)==="project-breadcrumb"&&A(b,5)})}h(v),x(e,v),ae()}de(["click"]);const WT=Object.freeze([{id:"file",label:"File"},{id:"edit",label:"Edit"},{id:"view",label:"View"},{id:"window",label:"Window"},{id:"help",label:"Help"}]);function di(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function Yp(e,t){if(e==null)return[];if(t==null)return WT.slice();const n=t.map((r,s)=>({c:r,i:s}));return n.sort((r,s)=>{const a=r.c.order,l=s.c.order;return a!=null&&l!=null?a-l||r.i-s.i:a!=null?-1:l!=null?1:r.i-s.i}),n.map(r=>r.c)}function Wp(e,t,n){const r=[],s=new Set;for(const a of e)a.action.menuItem!==n||a.action.submenuOf!==void 0||s.has(a.action.id)||!ca(a.action.scope,t,a.ownerShardId)||(s.add(a.action.id),r.push({id:a.action.id,label:Ot(a.action),shortcut:la(a.action,t.bindings,t.platform),group:a.action.group??"",icon:a.action.icon,checked:di(a.action.checked),disabled:di(a.action.disabled),submenu:a.action.submenu===!0}));return r}function Xp(e,t,n){const r=[],s=new Set;for(const a of e)a.action.submenuOf!==n||s.has(a.action.id)||!ca(a.action.scope,t,a.ownerShardId)||(s.add(a.action.id),r.push({id:a.action.id,label:Ot(a.action),shortcut:la(a.action,t.bindings,t.platform),group:a.action.group??"",icon:a.action.icon,checked:di(a.action.checked),disabled:di(a.action.disabled),submenu:a.action.submenu===!0}));return r}var XT=I('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),GT=I('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),JT=I('<button type="button" class="sh3-menubar-button svelte-bke3dt"><!> <span class="sh3-menubar-label"> </span> <!></button>');function ZT(e,t){se(t,!0);let n=H(void 0);function r(y){const g=new Map,C=[];for(const w of y){const b=w.group||"";g.has(b)||(g.set(b,[]),C.push(b)),g.get(b).push(w)}return C.map(w=>({id:`group:${w||"_default"}`,items:g.get(w)}))}function s(y,g,C){const w=Je().find(b=>b.action.id===y);if(!(!w||typeof w.action.run!="function")){try{w.action.run({action:{id:y,label:Ot(w.action)},appId:g.activeAppId,viewId:g.focusedViewId??void 0,selection:g.selection??void 0,invokedVia:"palette",dispatch:()=>{}})}catch(b){console.error(`[sh3] menu-bar action "${y}" threw:`,b)}C.close()}}function a(y,g,C){const w=document.querySelector(".sh3-popup-host");if(!w)return;const b=document.createElement("div");b.className="sh3-popup-submenu",b.style.position="absolute",b.style.pointerEvents="auto";const T=(w.querySelector(".sh3-ctx-active")??w).getBoundingClientRect();b.style.left=`${T.right+2}px`,b.style.top=`${T.top}px`,w.appendChild(b);const L=Xp(Je(),g,y),R=Fe(ei,{target:b,props:{sections:r(L),onInvoke:P=>s(P,g,C),onDismiss:()=>{Ze(R),b.remove()}}})}function l(){if(!i(n))return;const y=wt(),g=Vo.show(ei,{anchor:i(n),placement:"bottom-start"},{sections:r(t.items),onInvoke:C=>{const w=Je().find(b=>b.action.id===C);if(w){if(w.action.submenu===!0){a(C,y,g);return}s(C,y,g)}},onDismiss:()=>Vo.close()})}const o=U(()=>t.container.iconPosition??"before");var c=JT(),u=p(c);{var d=y=>{var g=XT();N(()=>re(g,"data-icon",t.container.icon)),x(y,g)};W(u,y=>{t.container.icon&&i(o)==="before"&&y(d)})}var f=_(u,2),v=p(f,!0);h(f);var m=_(f,2);{var k=y=>{var g=GT();N(()=>re(g,"data-icon",t.container.icon)),x(y,g)};W(m,y=>{t.container.icon&&i(o)==="after"&&y(k)})}h(c),je(c,y=>S(n,y),()=>i(n)),N(()=>j(v,t.container.label)),K("click",c,l),x(e,c),ae()}de(["click"]);var QT=I('<div class="sh3-menubar svelte-7gc0wa" role="menubar"></div>');function Gp(e,t){se(t,!0);const n=U(wt),r=U(()=>i(n).activeAppId),s=U(()=>{if(i(r))return wn(i(r))?.manifest.menus}),a=U(()=>Yp(i(r),i(s))),l=U(()=>{const c=[],u=Je();for(const d of i(a)){const f=Wp(u,i(n),d.id);f.length>0&&c.push({container:d,items:f})}return c});var o=QT();he(o,21,()=>i(l),({container:c,items:u})=>c.id,(c,u)=>{let d=()=>i(u).container,f=()=>i(u).items;ZT(c,{get container(){return d()},get items(){return f()}})}),h(o),x(e,o),ae()}const $T={type:"slot",slotId:"__sh3core__:compact:empty",viewId:null,role:"body"};function es(e){return e??"body"}function Jp(e){return e.type==="slot"?[{slotId:e.slotId,viewId:e.viewId,label:e.slotId,role:es(e.role)}]:e.type==="tabs"?e.tabs.map(t=>({slotId:t.slotId,viewId:t.viewId,label:t.label,icon:t.icon,role:es(t.role)})):e.children.flatMap(Jp)}function dd(e){return Jp(e).some(t=>t.role==="body")}function Zp(e){if(e.type==="slot")return es(e.role)==="body"?e:null;if(e.type==="tabs"){const n=e.tabs.filter(r=>es(r.role)==="body");return n.length===0?null:n.length===e.tabs.length?e:{type:"tabs",activeTab:Math.min(e.activeTab,n.length-1),tabs:n}}const t=[];for(let n=0;n<e.children.length;n++){const r=Zp(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 fd(e){return e==="inspector"?"right":"left"}function eR(e){const t={left:[],right:[],top:[]};function n(r,s){if(r.type==="slot"){const a=es(r.role);if(a==="body")return;const l=s??fd(a);t[l].push({slotId:r.slotId,viewId:r.viewId,label:r.slotId,role:a});return}if(r.type==="tabs"){for(const a of r.tabs){const l=es(a.role);if(l==="body")continue;const o=s??fd(l);t[o].push({slotId:a.slotId,viewId:a.viewId,label:a.label,icon:a.icon,role:l})}return}if(r.direction==="horizontal")for(let a=0;a<r.children.length;a++){const l=r.children[a];let o=s;s===null&&!dd(l)&&(a===0?o="left":a===r.children.length-1&&(o="right")),n(l,o)}else for(let a=0;a<r.children.length;a++){const l=r.children[a];let o=s;s===null&&a===0&&!dd(l)&&(o="top"),n(l,o)}}return n(e,null),t}function wo(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 Qp(e){const n=Zp(e)??$T,r=eR(e);return{bodyRoot:n,drawers:{left:wo(r.left),right:wo(r.right),top:wo(r.top)},carousels:lT(n)}}var tR=I('<span class="shortcut svelte-vkxo1d"> </span>'),nR=I('<button class="item child svelte-vkxo1d"><span class="label svelte-vkxo1d"> </span> <!></button>'),rR=I('<div class="subitems svelte-vkxo1d"></div>'),sR=I('<button class="item submenu svelte-vkxo1d"><span>▸</span> <span class="label svelte-vkxo1d"> </span></button> <!>',1),aR=I('<span class="shortcut svelte-vkxo1d"> </span>'),iR=I('<button class="item svelte-vkxo1d"><span class="label svelte-vkxo1d"> </span> <!></button>'),oR=I('<div class="items svelte-vkxo1d"></div>'),lR=I('<button class="container svelte-vkxo1d"><span>▸</span> <span class="label svelte-vkxo1d"> </span></button> <!>',1),cR=I('<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 uR(e,t){se(t,!0);const n=U(wt),r=U(()=>i(n).activeAppId),s=U(()=>{if(i(r))return wn(i(r))?.manifest.menus}),a=U(()=>Yp(i(r),i(s))),l=U(()=>{const y=[],g=Je();for(const C of i(a)){const w=Wp(g,i(n),C.id);w.length>0&&y.push({containerId:C.id,label:C.label,items:w})}return y});let o=H(ce(new Set)),c=H(ce(new Set));function u(y){const g=new Set(i(o));g.has(y)?g.delete(y):g.add(y),S(o,g,!0)}function d(y){const g=new Set(i(c));g.has(y)?g.delete(y):g.add(y),S(c,g,!0)}function f(y){const g=Je().find(C=>C.action.id===y);if(!(!g||typeof g.action.run!="function")){try{g.action.run({action:{id:y,label:Ot(g.action)},appId:i(n).activeAppId,viewId:i(n).focusedViewId??void 0,selection:i(n).selection??void 0,invokedVia:"palette",dispatch:()=>{}})}catch(C){console.error(`[sh3] menu-sheet action "${y}" threw:`,C)}t.onClose()}}var v=Pe(),m=fe(v);{var k=y=>{var g=cR(),C=fe(g),w=_(C,2),b=p(w);he(b,21,()=>i(l),({containerId:T,label:L,items:R})=>T,(T,L)=>{let R=()=>i(L).containerId,P=()=>i(L).label,M=()=>i(L).items;var O=lR(),E=fe(O),D=p(E);let F;var z=_(D,2),V=p(z,!0);h(z),h(E);var G=_(E,2);{var Z=Q=>{var te=oR();he(te,21,M,J=>J.id,(J,B)=>{var q=Pe(),X=fe(q);{var Y=ve=>{var ke=sR(),ge=fe(ke),nt=p(ge);let at;var Wn=_(nt,2),Xn=p(Wn,!0);h(Wn),h(ge);var Gn=_(ge,2);{var fs=ne=>{var Ie=rR();he(Ie,21,()=>Xp(Je(),i(n),i(B).id),Le=>Le.id,(Le,ye)=>{var ze=nR(),Ye=p(ze),We=p(Ye,!0);h(Ye);var Sn=_(Ye,2);{var vn=it=>{var $t=tR(),Xi=p($t,!0);h($t),N(()=>j(Xi,i(ye).shortcut)),x(it,$t)};W(Sn,it=>{i(ye).shortcut&&it(vn)})}h(ze),N(()=>{ze.disabled=i(ye).disabled,j(We,i(ye).label)}),K("click",ze,()=>f(i(ye).id)),x(Le,ze)}),h(Ie),x(ne,Ie)},ie=U(()=>i(c).has(i(B).id));W(Gn,ne=>{i(ie)&&ne(fs)})}N((ne,Ie)=>{re(ge,"aria-expanded",ne),ge.disabled=i(B).disabled,at=ue(nt,1,"caret svelte-vkxo1d",null,at,Ie),j(Xn,i(B).label)},[()=>i(c).has(i(B).id),()=>({open:i(c).has(i(B).id)})]),K("click",ge,()=>d(i(B).id)),x(ve,ke)},oe=ve=>{var ke=iR(),ge=p(ke),nt=p(ge,!0);h(ge);var at=_(ge,2);{var Wn=Xn=>{var Gn=aR(),fs=p(Gn,!0);h(Gn),N(()=>j(fs,i(B).shortcut)),x(Xn,Gn)};W(at,Xn=>{i(B).shortcut&&Xn(Wn)})}h(ke),N(()=>{ke.disabled=i(B).disabled,j(nt,i(B).label)}),K("click",ke,()=>f(i(B).id)),x(ve,ke)};W(X,ve=>{i(B).submenu?ve(Y):ve(oe,-1)})}x(J,q)}),h(te),x(Q,te)},$=U(()=>i(o).has(R()));W(G,Q=>{i($)&&Q(Z)})}N((Q,te)=>{re(E,"aria-expanded",Q),F=ue(D,1,"caret svelte-vkxo1d",null,F,te),j(V,P())},[()=>i(o).has(R()),()=>({open:i(o).has(R())})]),K("click",E,()=>u(R())),x(T,O)}),h(b);var A=_(b,2);h(w),K("click",C,function(...T){t.onClose?.apply(this,T)}),K("keydown",C,T=>{T.key==="Escape"&&t.onClose()}),K("click",A,function(...T){t.onClose?.apply(this,T)}),x(y,g)};W(m,y=>{t.open&&y(k)})}x(e,v),ae()}de(["click","keydown"]);var dR=I('<span data-sh3-anchor="left" class="svelte-q1hcw0"><!></span>'),fR=I('<span data-sh3-anchor="right" class="svelte-q1hcw0"><!></span>'),vR=I('<span data-sh3-anchor="top" class="svelte-q1hcw0"><!></span>'),hR=I('<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 pR(e,t){se(t,!0);const n=U(()=>Qp(Jt.root)),r=U(wt),s=U(()=>uc()==="home"),a=U(()=>{const E=i(r).activeAppId;return E?wn(E)?.manifest.label??E:"SH3"}),l=U(()=>{if(i(n).carousels.size===0)return null;let E=null,D="";for(const[F,z]of i(n).carousels)(E===null||F<E)&&(E=F,D=z.activeLabel);return D}),o=U(()=>{const E=i(l);return E?`${i(a)} › ${E}`:i(a)});let c=H(!1);function u(E){Et.drawers.toggle(E)}function d(){Et.actions.openPalette()}var f=hR(),v=fe(f),m=p(v),k=p(m);Jn(k,{variant:"icon",icon:"house",ariaLabel:"Home",title:"Home",get disabled(){return i(s)},onclick:()=>cs()});var y=_(k,2);{var g=E=>{var D=dR(),F=p(D);Jn(F,{variant:"icon",icon:"menu",ariaLabel:"Toggle left drawer",title:"Toggle left drawer",onclick:()=>u("left")}),h(D),x(E,D)};W(y,E=>{i(n).drawers.left&&E(g)})}var C=_(y,2);{var w=E=>{var D=fR(),F=p(D);Jn(F,{variant:"icon",icon:"panel-right",ariaLabel:"Toggle right drawer",title:"Toggle right drawer",onclick:()=>u("right")}),h(D),x(E,D)};W(C,E=>{i(n).drawers.right&&E(w)})}var b=_(C,2);{var A=E=>{var D=vR(),F=p(D);Jn(F,{variant:"icon",icon:"panel-top",ariaLabel:"Toggle top drawer",title:"Toggle top drawer",onclick:()=>u("top")}),h(D),x(E,D)};W(b,E=>{i(n).drawers.top&&E(A)})}h(m);var T=_(m,2),L=p(T,!0);h(T);var R=_(T,2),P=p(R);Jn(P,{variant:"icon",icon:"command",ariaLabel:"Open command palette",title:"Open command palette",onclick:d});var M=_(P,2);Jn(M,{variant:"icon",icon:"ellipsis-vertical",ariaLabel:"Open menu",title:"Open menu",onclick:()=>{S(c,!0)}}),h(R),h(v);var O=_(v,2);uR(O,{get open(){return i(c)},onClose:()=>S(c,!1)}),N(()=>j(L,i(o))),x(e,f),ae()}var mR=I('<button role="tab"> </button>'),bR=I('<div class="tab-strip svelte-8dp9bg" role="tablist"></div>'),gR=I('<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 yR(e,t){se(t,!0);const n=U(()=>t.spec.slots.find(o=>o.slotId===t.activeSlotId)??t.spec.slots[0]),r=U(()=>({type:"slot",slotId:i(n).slotId,viewId:i(n).viewId,role:i(n).role}));var s=Pe(),a=fe(s);{var l=o=>{var c=gR(),u=fe(c),d=_(u,2),f=p(d),v=p(f),m=p(v,!0);h(v);var k=_(v,2);h(f);var y=_(f,2);{var g=b=>{var A=bR();he(A,21,()=>t.spec.slots,T=>T.slotId,(T,L)=>{var R=mR();let P;var M=p(R,!0);h(R),N(()=>{re(R,"aria-selected",i(L).slotId===i(n).slotId),P=ue(R,1,"svelte-8dp9bg",null,P,{active:i(L).slotId===i(n).slotId}),j(M,i(L).label)}),K("click",R,()=>t.onActivate(i(L).slotId)),x(T,R)}),h(A),x(b,A)};W(y,b=>{t.spec.slots.length>1&&b(g)})}var C=_(y,2),w=p(C);ci(w,{get node(){return i(r)},get label(){return i(n).label}}),h(C),h(d),N(()=>{ue(d,1,`drawer drawer-${t.anchor??""}`,"svelte-8dp9bg"),re(d,"data-sh3-anchor",t.anchor),j(m,i(n).label)}),K("click",u,function(...b){t.onClose?.apply(this,b)}),K("keydown",u,b=>{b.key==="Escape"&&t.onClose()}),K("click",k,function(...b){t.onClose?.apply(this,b)}),x(o,c)};W(a,o=>{t.open&&o(l)})}x(e,s),ae()}de(["click","keydown"]);var _R=I('<div class="compact-body svelte-1sc410j" data-sh3-region="compact-body"><!></div> <!>',1);function wR(e,t){se(t,!0);const n=U(()=>Qp(Jt.root)),r=["left","right","top"];var s=_R(),a=fe(s),l=p(a);$r(l,{get rootOverride(){return i(n).bodyRoot},get carousels(){return i(n).carousels}}),h(a);var o=_(a,2);he(o,16,()=>r,c=>c,(c,u)=>{const d=U(()=>i(n).drawers[u]);var f=Pe(),v=fe(f);{var m=k=>{yR(k,{get anchor(){return u},get spec(){return i(d)},get open(){return Lt.state[u].open},get activeSlotId(){return Lt.state[u].activeSlotId},onClose:()=>Lt.close(u),onActivate:y=>Lt.activate(u,y)})};W(v,k=>{i(d)&&k(m)})}x(c,f)}),x(e,s),ae()}var kR=I('<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>'),xR=I('<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>'),SR=I('<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>'),ER=I('<footer class="sh3-statusbar svelte-1amm732" data-sh3-region="statusbar"></footer>'),IR=I('<div class="sh3 svelte-1amm732"><!> <!> <main class="sh3-content svelte-1amm732" data-sh3-region="content" data-sh3-layer="0"><!></main> <!> <!> <!></div>');function AR(e,t){se(t,!0);let n=H(void 0);const r=U(nl),s=U(Zr),a=U(kt),l=U(()=>uc()==="home"),o=U(()=>Et.viewport.current.class);Se(()=>{Jt.tree,jk()}),Se(()=>nl()?Ax():void 0);const c=24;Se(()=>{const L=i(n);if(!L)return;const R=new Set;function P(O){const E=L.getBoundingClientRect(),D=O.clientX-E.left;if(D>=c&&D<=E.width-c)return;ia(O.pointerId,{ownerId:"sh3:edge",axis:"x",priority:"edge",depth:0})&&R.add(O.pointerId)}function M(O){R.has(O.pointerId)&&(hr(O.pointerId,"sh3:edge"),R.delete(O.pointerId))}return L.addEventListener("pointerdown",P),L.addEventListener("pointerup",M),L.addEventListener("pointercancel",M),()=>{L.removeEventListener("pointerdown",P),L.removeEventListener("pointerup",M),L.removeEventListener("pointercancel",M);for(const O of R)hr(O,"sh3:edge");R.clear()}});var u=IR(),d=p(u);{var f=L=>{var R=SR(),P=p(R),M=p(P),O=p(M);h(M),h(P);var E=_(P,2);Kp(E,{});var D=_(E,2);Gp(D,{});var F=_(D,2);{var z=V=>{var G=xR(),Z=p(G),$=p(Z,!0);h(Z);var Q=_(Z,2),te=p(Q,!0);h(Q);var J=_(Q,2);{var B=X=>{var Y=kR(),oe=p(Y),ve=p(oe);h(oe),h(Y),N(()=>re(ve,"href",`${Un}#log-out`)),K("click",Y,()=>P0()),x(X,Y)},q=U(()=>!z0());W(J,X=>{i(q)&&X(B)})}h(G),N(()=>{j($,i(s).displayName),j(te,i(a)?"admin":"user")}),x(V,G)};W(F,V=>{i(r)&&i(s)&&V(z)})}h(R),N(()=>{P.disabled=i(l),re(O,"href",`${Un}#house`)}),K("click",P,()=>cs()),x(L,R)},v=L=>{pR(L,{})};W(d,L=>{i(o)==="desktop"?L(f):L(v,-1)})}var m=_(d,2);DT(m,{});var k=_(m,2),y=p(k);{var g=L=>{$r(L,{})},C=L=>{wR(L,{})};W(y,L=>{i(o)==="desktop"?L(g):L(C,-1)})}h(k),je(k,L=>S(n,L),()=>i(n));var w=_(k,2);{var b=L=>{var R=ER();x(L,R)};W(w,L=>{i(o)==="desktop"&&L(b)})}var A=_(w,2);Hp(A,{});var T=_(A,2);qT(T,{}),h(u),N(()=>re(u,"data-sh3-viewport",i(o))),x(e,u),ae()}de(["click"]);var CR=I('<button type="button" class="signin-link svelte-lh4k15">Create an account</button>'),TR=I('<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),RR=I('<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),LR=I('<div class="signin-error svelte-lh4k15"> </div>'),MR=I('<div class="signin-wall svelte-lh4k15"><div class="signin-card svelte-lh4k15"><h1 class="signin-brand svelte-lh4k15">SH3</h1> <!> <!></div></div>');function PR(e,t){se(t,!0);let n=H("login"),r=H(""),s=H(""),a=H(""),l=H(null),o=H(!1);async function c(){if(!i(r).trim()||!i(s).trim()||i(o))return;S(o,!0),S(l,null);const w=await hh(i(r).trim(),i(s).trim());S(o,!1),w.ok?t.onSuccess():S(l,w.error,!0)}async function u(){if(!i(r).trim()||!i(s).trim()||i(o))return;S(o,!0),S(l,null);const w=await M0(i(r).trim(),i(s).trim(),i(a).trim()||void 0);S(o,!1),w.ok?t.onSuccess():S(l,w.error,!0)}function d(w){S(n,w,!0),S(l,null)}var f=MR(),v=p(f),m=_(p(v),2);{var k=w=>{var b=TR(),A=fe(b),T=p(A);we(T);var L=_(T,2);we(L);var R=_(L,2),P=p(R,!0);h(R),h(A);var M=_(A,2);{var O=E=>{var D=CR();K("click",D,()=>d("register")),x(E,D)};W(M,E=>{t.selfRegistration&&E(O)})}N(E=>{T.disabled=i(o),L.disabled=i(o),R.disabled=E,j(P,i(o)?"Signing in...":"Sign in")},[()=>i(o)||!i(r).trim()||!i(s).trim()]),De("submit",A,E=>{E.preventDefault(),c()}),Ae(T,()=>i(r),E=>S(r,E)),Ae(L,()=>i(s),E=>S(s,E)),x(w,b)},y=w=>{var b=RR(),A=fe(b),T=p(A);we(T);var L=_(T,2);we(L);var R=_(L,2);we(R);var P=_(R,2),M=p(P,!0);h(P),h(A);var O=_(A,2);N(E=>{T.disabled=i(o),L.disabled=i(o),R.disabled=i(o),P.disabled=E,j(M,i(o)?"Creating...":"Create account")},[()=>i(o)||!i(r).trim()||!i(s).trim()]),De("submit",A,E=>{E.preventDefault(),u()}),Ae(T,()=>i(r),E=>S(r,E)),Ae(L,()=>i(a),E=>S(a,E)),Ae(R,()=>i(s),E=>S(s,E)),K("click",O,()=>d("login")),x(w,b)};W(m,w=>{i(n)==="login"?w(k):w(y,-1)})}var g=_(m,2);{var C=w=>{var b=LR(),A=p(b,!0);h(b),N(()=>j(A,i(l))),x(w,b)};W(g,w=>{i(l)&&w(C)})}h(v),h(f),x(e,f),ae()}de(["click"]);function DR(){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:Lx(t)}}catch(n){return{error:n.message}}}function zR(e){return e.kind==="float"?{docked:e.content,floats:[]}:{docked:{type:"slot",slotId:"satellite:root",viewId:null},floats:[]}}var jR=I('<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),OR=I("<div><!> <!></div>");function NR(e,t){se(t,!0),Se(()=>{if(t.payload.kind==="float")Mk(zR(t.payload).docked);else if(t.payload.kind==="app"){const c=t.payload.appId;queueMicrotask(()=>{Mn(c,{skipLastApp:!0,skipSwitchToHome:!0})})}});var n=OR();let r;var s=p(n);{var a=c=>{var u=jR(),d=fe(u),f=p(d);Kp(f,{});var v=_(f,2);Gp(v,{}),Mt(2),h(d);var m=_(d,2),k=p(m);$r(k,{}),h(m),x(c,u)},l=c=>{$r(c,{})};W(s,c=>{t.payload.kind==="app"?c(a):c(l,-1)})}var o=_(s,2);Hp(o,{}),h(n),N(()=>r=ue(n,1,"sh3-satellite-root svelte-191z0e1",null,r,{"sh3-satellite-app":t.payload.kind==="app"})),x(e,n),ae()}async function vd(e){const t=e?.serverUrl??"",n=await _A();n.backends&&(co("workspace",n.backends.workspace),co("user",n.backends.user)),n.localOwner&&D0(),Sh(t),Kx();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=DR();if(s){if("error"in s){r.textContent=`Invalid satellite payload: ${s.error}`;return}if(co("workspace",new qo),n.localOwner&&ya("local"),e?.shards)for(const c of e.shards)od(c);if(e?.apps)for(const c of e.apps)zs(c);await hd(e?.discoveredPackages),await IC({activateShardIds:s.payload.kind==="app"?[]:s.payload.activateShards}),Cu(),Fe(NR,{target:r,props:{payload:s.payload}});return}let a=null;if(!n.localOwner||e?.remoteAuth===!0)try{const c=await qe(`${t}/api/boot`);c.ok&&(a=await c.json())}catch{}if(n.localOwner&&!e?.remoteAuth)ya("local");else if(a){Pu(t,a),ya(a.tenantId);const{auth:c,session:u}=a;if(!u&&c.required&&!c.guestAllowed){await qR(r,a);const d=await qe(`${t}/api/boot`);d.ok&&(a=await d.json(),Pu(t,a),ya(a.tenantId))}}if(await hd(e?.discoveredPackages),e?.shards)for(const c of e.shards)od(c);if(e?.apps)for(const c of e.apps)zs(c);const o={};e?.excludeShards&&(o.excludeShards=e.excludeShards),await EC(o),Cu(),Fe(AR,{target:r})}async function hd(e){if(e?.length)for(const t of e)try{const n=t.bundleUrl.startsWith("http://")||t.bundleUrl.startsWith("https://"),r=il(),s=t.bundleUrl.startsWith("/")?"":"/",a=n?t.bundleUrl:`${r}${s}${t.bundleUrl}`,l=await qe(a);if(!l.ok){console.warn(`[sh3] Failed to fetch discovered package "${t.id}": HTTP ${l.status}`);continue}const o=await l.arrayBuffer(),c=await fa(o);Cc(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 qR(e,t){return new Promise(n=>{const r=Fe(PR,{target:e,props:{selfRegistration:t.auth.selfRegistration,onSuccess:()=>{Ze(r),n()}}})})}var BR=I('<div class="onboarding-error svelte-c2abmw" data-role="error-banner"> </div>'),FR=I('<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 VR(e,t){se(t,!0);let n=H(ce(_e(()=>t.prefillUrl))),r=H(ce(_e(()=>t.prefillLabel))),s=H(ce(_e(()=>t.error))),a=H(!1);async function l(){if(!(!i(n).trim()||i(a))){S(a,!0),S(s,null);try{const w=i(n).trim().replace(/\/$/,""),b=await fetch(`${w}/api/boot`,{credentials:"include"});if(!b.ok){S(s,"Not an SH3 server");return}let A;try{A=await b.json()}catch{S(s,"Not an SH3 server");return}if(!(!!A.auth&&typeof A.auth=="object"&&"required"in A.auth&&"guestAllowed"in A.auth&&"selfRegistration"in A.auth&&typeof A.tenantId=="string")){S(s,"Not an SH3 server");return}const L=typeof A.version=="string"?A.version:"unknown";t.onResolved({mode:"remote",url:w,label:i(r).trim()||w,version:L})}catch(w){S(s,`Could not reach ${i(n)} — ${w.message}`)}finally{S(a,!1)}}}function o(){t.onResolved({mode:"local"})}var c=FR(),u=p(c),d=_(p(u),4),f=p(d);we(f);var v=_(f,2);we(v);var m=_(v,2),k=p(m,!0);h(m),h(d);var y=_(d,4),g=_(y,4);{var C=w=>{var b=BR(),A=p(b,!0);h(b),N(()=>j(A,i(s))),x(w,b)};W(g,w=>{i(s)&&w(C)})}h(u),h(c),N(w=>{f.disabled=i(a),v.disabled=i(a),m.disabled=w,j(k,i(a)?"Connecting…":"Connect"),y.disabled=i(a)},[()=>i(a)||!i(n).trim()]),De("submit",d,w=>{w.preventDefault(),l()}),Ae(f,()=>i(n),w=>S(n,w)),Ae(v,()=>i(r),w=>S(r,w)),K("click",y,o),x(e,c),ae()}de(["click"]);const Pc="sh3:identity";function UR(){const e=localStorage.getItem(Pc);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 pd(e){localStorage.setItem(Pc,JSON.stringify(e))}function HR(){localStorage.removeItem(Pc)}const md={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(){HR(),location.reload()}})}},KR=typeof window<"u"&&("__TAURI_INTERNALS__"in window||"__TAURI__"in window),ko=window.location.origin;async function bd(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 gd(e){return new Promise(t=>{const n=document.getElementById("app"),r=Fe(VR,{target:n,props:{prefillUrl:e.prefillUrl,prefillLabel:e.prefillLabel,error:e.error,onResolved:s=>{Ze(r),t(s)}}})})}async function YR(){if(!KR)return{identity:null,serverUrl:ko};if(await bd(ko))return{identity:null,serverUrl:ko};let e=UR();e?.mode==="remote"?await bd(e.url)||(e=await gd({prefillUrl:e.url,prefillLabel:e.label,error:`Could not reach ${e.url}`}),pd(e)):e||(e=await gd({prefillUrl:"",prefillLabel:"",error:null}),pd(e));const t=e.mode==="remote"?e.url:"";return{identity:e,serverUrl:t}}async function WR(){const{identity:e,serverUrl:t}=await YR();if(e?.mode==="local"){Lu(new nh),await vd({serverUrl:"",shards:[md]});return}Sh(t),Lu(new dx(t));let n=[];try{const r=await fetch(`${t}/api/packages`);r.ok&&(n=await r.json())}catch{}await vd({discoveredPackages:n,serverUrl:t,remoteAuth:e?.mode==="remote",shards:e?[md]:[]})}WR();
21
- //# sourceMappingURL=index-BhAscAtX.js.map