sh3-server 0.19.6 → 0.20.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/assets/{icons-nOyIoORC.svg → icons-OMmH0JiM.svg} +5 -0
- package/app/assets/index-C6sN7l5X.js +26 -0
- package/app/assets/index-C6sN7l5X.js.map +1 -0
- package/app/assets/index-DbnwAWBS.css +1 -0
- package/app/index.html +2 -2
- package/dist/auth.d.ts +7 -11
- package/dist/auth.js +7 -19
- package/dist/cli.js +2 -2
- package/dist/doc-store/store.d.ts +12 -0
- package/dist/doc-store/store.js +172 -3
- package/dist/index.d.ts +5 -2
- package/dist/index.js +21 -12
- package/dist/middleware/project-allowlist.d.ts +4 -0
- package/dist/middleware/project-allowlist.js +26 -12
- package/dist/mounts/resolver.d.ts +21 -0
- package/dist/mounts/resolver.js +41 -0
- package/dist/mounts/routes.d.ts +4 -0
- package/dist/mounts/routes.js +136 -0
- package/dist/mounts/store.d.ts +30 -0
- package/dist/mounts/store.js +115 -0
- package/dist/routes/admin.d.ts +3 -1
- package/dist/routes/admin.js +6 -1
- package/dist/routes/boot.d.ts +7 -1
- package/dist/routes/boot.js +13 -4
- package/dist/routes/docs.js +83 -2
- package/dist/routes/projects.d.ts +1 -3
- package/dist/routes/projects.js +1 -3
- package/dist/scope.d.ts +1 -2
- package/dist/scope.js +1 -5
- package/dist/settings.d.ts +0 -1
- package/dist/settings.js +0 -4
- package/dist/shard-router.d.ts +1 -1
- package/dist/shard-router.js +23 -4
- package/dist/tenant-fs/http.d.ts +0 -2
- package/dist/tenant-fs/http.js +1 -1
- package/dist/tenant-fs/session-required.d.ts +1 -3
- package/dist/tenant-fs/session-required.js +1 -4
- package/dist/users.d.ts +14 -1
- package/dist/users.js +34 -0
- package/package.json +1 -1
- package/app/assets/index--m0u3gjJ.js +0 -21
- package/app/assets/index--m0u3gjJ.js.map +0 -1
- package/app/assets/index-DIpoXNrk.css +0 -1
|
@@ -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 o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(s){const a={};return s.integrity&&(a.integrity=s.integrity),s.referrerPolicy&&(a.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?a.credentials="include":s.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(s){if(s.ep)return;s.ep=!0;const a=n(s);fetch(s.href,a)}})();const Rm="modulepreload",Lm=function(e){return"/"+e},Gc={},gi=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),l=o?.nonce||o?.getAttribute("nonce");s=Promise.allSettled(n.map(c=>{if(c=Lm(c),c in Gc)return;Gc[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":Rm,u||(f.as="script"),f.crossOrigin="",f.href=c,l&&f.setAttribute("nonce",l),document.head.appendChild(f),u)return new Promise((v,m)=>{f.addEventListener("load",v),f.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${c}`)))})}))}function a(o){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return s.then(o=>{for(const l of o||[])l.status==="rejected"&&a(l.reason);return t().catch(a)})},Mm=1,Pm=2,Rd=4,Dm=8,zm=16,jm=1,Ld=4,Om=8,Nm=16,qm=1,Bm=2,Fm=4,El=1,Md=2,Vm=4,Um=8,yi="[",_i="[!",Jc="[?",wi="]",dr={},Fe=Symbol(),zt=Symbol("filename"),Lr=Symbol("hmr"),Pd="http://www.w3.org/1999/xhtml",Zs="http://www.w3.org/2000/svg",Al="http://www.w3.org/1998/Math/MathML",Dd="@attach",zd=!1;var as=Array.isArray,Hm=Array.prototype.indexOf,Wr=Array.prototype.includes,ki=Array.from,Ua=Object.keys,fr=Object.defineProperty,dn=Object.getOwnPropertyDescriptor,jd=Object.getOwnPropertyDescriptors,Od=Object.prototype,Km=Array.prototype,xi=Object.getPrototypeOf,Zc=Object.isExtensible,Wm=Object.prototype.hasOwnProperty;function Mr(e){return typeof e=="function"}const jt=()=>{};function Qc(e){return typeof e?.then=="function"}function Ym(e){return e()}function Lo(e){for(var t=0;t<e.length;t++)e[t]()}function Nd(){var e,t,n=new Promise((r,s)=>{e=r,t=s});return{promise:n,resolve:e,reject:t}}function Xm(e,t,n=!1){return e===void 0?n?t():t:e}function qd(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 Gm(e,t){var n={};for(var r in e)t.includes(r)||(n[r]=e[r]);for(var s of Object.getOwnPropertySymbols(e))Object.propertyIsEnumerable.call(e,s)&&!t.includes(s)&&(n[s]=e[s]);return n}const it=2,vr=4,Qs=8,Cl=1<<24,fn=16,pn=32,Bn=64,Mo=128,Jt=512,$e=1024,at=2048,mn=4096,yt=8192,Ct=16384,Un=32768,Po=1<<25,bn=65536,Ps=1<<17,Bd=1<<18,er=1<<19,Fd=1<<20,In=1<<25,hr=65536,Do=1<<21,Yr=1<<22,Jn=1<<23,ht=Symbol("$state"),Si=Symbol("legacy props"),Jm=Symbol(""),Zm=Symbol("proxy path"),Qm=Symbol("hmr anchor"),kn=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},Ir=!!globalThis.document?.contentType&&globalThis.document.contentType.includes("xml"),Vd=1,$s=3,Hn=8,Ud=11;function Hd(e){throw new Error("https://svelte.dev/e/experimental_async_required")}function $m(){throw new Error("https://svelte.dev/e/invalid_default_snippet")}function $c(){throw new Error("https://svelte.dev/e/invalid_snippet_arguments")}function is(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function eb(){throw new Error("https://svelte.dev/e/missing_context")}function tb(){throw new Error("https://svelte.dev/e/snippet_without_render_tag")}function nb(e){throw new Error("https://svelte.dev/e/store_invalid_shape")}function rb(){throw new Error("https://svelte.dev/e/svelte_element_invalid_this_value")}function sb(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function ab(e,t){throw new Error("https://svelte.dev/e/component_api_changed")}function ib(e,t){throw new Error("https://svelte.dev/e/component_api_invalid_new")}function ob(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function lb(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function cb(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function ub(e){throw new Error("https://svelte.dev/e/effect_orphan")}function db(){throw new Error("https://svelte.dev/e/effect_pending_outside_reaction")}function fb(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function vb(){throw new Error("https://svelte.dev/e/fork_discarded")}function hb(){throw new Error("https://svelte.dev/e/fork_timing")}function pb(){throw new Error("https://svelte.dev/e/get_abort_signal_outside_reaction")}function mb(){throw new Error("https://svelte.dev/e/hydration_failed")}function Kd(e){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}function bb(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function gb(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function yb(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function _b(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function wb(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}function kb(e,t){console.warn("https://svelte.dev/e/assignment_value_stale")}function xb(e,t){console.warn("https://svelte.dev/e/binding_property_non_reactive")}function Sb(e){console.warn("https://svelte.dev/e/console_log_state")}function Ib(){console.warn("https://svelte.dev/e/derived_inert")}function Eb(e,t){console.warn("https://svelte.dev/e/event_handler_invalid")}function Ab(e){console.warn("https://svelte.dev/e/hydratable_missing_but_expected")}function ea(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function Cb(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_binding")}function Tb(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_mutation")}function Rb(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function Wd(e){console.warn("https://svelte.dev/e/state_proxy_equality_mismatch")}function Lb(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let ue=!1;function qe(e){ue=e}let ge;function ze(e){if(e===null)throw ea(),dr;return ge=e}function xt(){return ze(qt(ge))}function h(e){if(ue){if(qt(ge)!==null)throw ea(),dr;ge=e}}function Mb(e){ue&&(ge=e.content)}function _t(e=1){if(ue){for(var t=e,n=ge;t--;)n=qt(n);ge=n}}function pr(e=!0){for(var t=0,n=ge;;){if(n.nodeType===Hn){var r=n.data;if(r===wi){if(t===0)return n;t-=1}else(r===yi||r===_i||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var s=qt(n);e&&n.remove(),n=s}}function Tl(e){if(!e||e.nodeType!==Hn)throw ea(),dr;return e.data}function Yd(e){return e===this.v}function Xd(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function Gd(e){return!Xd(e,this.v)}let Pb=!1;function Db(e){console.warn("https://svelte.dev/e/dynamic_void_element_content")}const zb=[];function mr(e,t=!1,n=!1){return Ta(e,new Map,"",zb,null,n)}function Ta(e,t,n,r,s=null,a=!1){if(typeof e=="object"&&e!==null){var o=t.get(e);if(o!==void 0)return o;if(e instanceof Map)return new Map(e);if(e instanceof Set)return new Set(e);if(as(e)){var l=Array(e.length);t.set(e,l),s!==null&&t.set(s,l);for(var c=0;c<e.length;c+=1){var u=e[c];c in e&&(l[c]=Ta(u,t,n,r,null,a))}return l}if(xi(e)===Od){l={},t.set(e,l),s!==null&&t.set(s,l);for(var d of Object.keys(e))l[d]=Ta(e[d],t,n,r,null,a);return l}if(e instanceof Date)return structuredClone(e);if(typeof e.toJSON=="function"&&!a)return Ta(e.toJSON(),t,n,r,e)}if(e instanceof EventTarget)return e;try{return structuredClone(e)}catch{return e}}let Cr=null;function Jd(e,t){const n=e.v;if(n===Fe)return;const r=jb(e),s=Ae,a=e.wv>s.wv||s.wv===0,o=a?"color: CornflowerBlue; font-weight: bold":"color: grey; font-weight: normal";if(console.groupCollapsed(e.label?`%c${r}%c ${e.label}`:`%c${r}%c`,o,a?"font-weight: normal":o,typeof n=="object"&&n!==null&&ht in n?mr(n,!0):n),r==="$derived"){const c=new Set(e.deps);for(const u of c)Jd(u)}if(e.created&&console.log(e.created),a&&e.updated)for(const c of e.updated.values())c.error&&console.log(c.error);if(t)for(var l of t.traces)console.log(l);console.groupEnd()}function jb(e){return e.f&(it|Yr)?"$derived":e.label?.startsWith("$")?"store":"$state"}function Ob(e,t){var n=Cr;try{Cr={entries:new Map,reaction:Ae};var r=performance.now(),s=t(),a=(performance.now()-r).toFixed(2),o=Se(e);if(!ia())console.log(`${o} %cran outside of an effect (${a}ms)`,"color: grey");else if(Cr.entries.size===0)console.log(`${o} %cno reactive dependencies (${a}ms)`,"color: grey");else{console.group(`${o} %c(${a}ms)`,"color: grey");var l=Cr.entries;Se(()=>{for(const[c,u]of l)Jd(c,u)}),Cr=null,console.groupEnd()}return s}finally{Cr=n}}function Nb(e,t){return e.label=t,Zd(e.v,t),e}function Zd(e,t){return e?.[Zm]?.(t),e}function qb(e){const t=new Error,n=Bb();return n.length===0?null:(n.unshift(`
|
|
3
|
-
`),fr(t,"stack",{value:n.join(`
|
|
4
|
-
`)}),fr(t,"name",{value:e}),t)}function Bb(){const e=Error.stackTraceLimit;Error.stackTraceLimit=1/0;const t=new Error().stack;if(Error.stackTraceLimit=e,!t)return[];const n=t.split(`
|
|
5
|
-
`),r=[];for(let s=0;s<n.length;s++){const a=n[s],o=a.replaceAll("\\","/");if(a.trim()!=="Error"){if(a.includes("validate_each_keys"))return[];o.includes("svelte/src/internal")||o.includes("node_modules/.vite")||r.push(a)}}return r}let Le=null;function Xr(e){Le=e}let Ra=null;function Fb(e,t,n,r,s,a){const o=Ra;Ra={type:t,file:n[zt],line:r,column:s,parent:o,...a};try{return e()}finally{Ra=o}}let Rl=null;function eu(e){Rl=e}function Vb(){const e={};return[()=>(Qd(e)||eb(),Ll(e)),t=>Ml(e,t)]}function Ll(e){return Ii().get(e)}function Ml(e,t){return Ii().set(e,t),t}function Qd(e){return Ii().has(e)}function Ub(){return Ii()}function ae(e,t=!1,n){Le={p:Le,i:!1,c:null,e:null,s:e,x:null,r:ye,l:null}}function ie(e){var t=Le,n=t.e;if(n!==null){t.e=null;for(var r of n)Af(r)}return e!==void 0&&(t.x=e),t.i=!0,Le=t.p,e??{}}function $d(){return!0}function Ii(e){return Le===null&&is(),Le.c??=new Map(Hb(Le)||void 0)}function Hb(e){let t=e.p;for(;t!==null;){const n=t.c;if(n!==null)return n;t=t.p}return null}let rr=[];function ef(){var e=rr;rr=[],Lo(e)}function wt(e){if(rr.length===0&&!Br){var t=rr;queueMicrotask(()=>{t===rr&&ef()})}rr.push(e)}function Kb(){for(;rr.length>0;)ef()}function tf(e){var t=ye;if(t===null)return Ae.f|=Jn,e;if(!(t.f&Un)&&!(t.f&vr))throw e;En(e,t)}function En(e,t){for(;t!==null;){if(t.f&Mo){if(!(t.f&Un))throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const Wb=-7169;function Ke(e,t){e.f=e.f&Wb|t}function Pl(e){e.f&Jt||e.deps===null?Ke(e,$e):Ke(e,mn)}function nf(e){if(e!==null)for(const t of e)!(t.f&it)||!(t.f&hr)||(t.f^=hr,nf(t.deps))}function rf(e,t,n){e.f&at?t.add(e):e.f&mn&&n.add(e),nf(e.deps),Ke(e,$e)}function sf(e,t,n){if(e==null)return t(void 0),jt;const r=Se(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}function Yb(e){let t;return sf(e,n=>t=n)(),t}let zo=!1,_s=!1,jo=Symbol();function Xb(e,t,n){const r=n[t]??={store:null,source:Ci(void 0),unsubscribe:jt};if(r.store!==e&&!(jo in n))if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=jt;else{var s=!0;r.unsubscribe=sf(e,a=>{s?r.source.v=a:w(r.source,a)}),s=!1}return e&&jo in n?Yb(e):i(r.source)}function Gb(e,t,n){let r=n[t];return r&&r.store!==e&&(r.unsubscribe(),r.unsubscribe=jt),e}function af(e,t){return Ei(e,t),t}function Jb(e,t){var n=e[t];n.store!==null&&af(n.store,n.source.v)}function Zb(){const e={};function t(){Ft(()=>{for(var n in e)e[n].unsubscribe();fr(e,jo,{enumerable:!1,value:!0})})}return[e,t]}function Ei(e,t){zo=!0;try{e.set(t)}finally{zo=!1}}function Qb(e,t,n){return Ei(e,n),t}function $b(e,t,n=1){return Ei(e,t+n),t}function eg(e,t,n=1){const r=t+n;return Ei(e,r),r}function tg(){_s=!0}function of(e){var t=_s;try{return _s=!1,[e(),_s]}finally{_s=t}}const Mn=new Set;let we=null,gt=null,Oo=null,Br=!1,lo=!1,jr=null,La=null;var tu=0;let ng=1;class $t{id=ng++;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)Ke(s,at),n(s);for(s of r.m)Ke(s,mn),n(s)}this.#f.add(t)}#p(){if(tu++>1e3&&(Mn.delete(this),rg()),!this.#d()){for(const l of this.#l)this.#u.delete(l),Ke(l,at),this.schedule(l);for(const l of this.#u)Ke(l,mn),this.schedule(l)}const t=this.#a;this.#a=[],this.apply();var n=jr=[],r=[],s=La=[];for(const l of t)try{this.#b(l,n,r)}catch(c){throw df(l),c}if(we=null,s.length>0){var a=$t.ensure();for(const l of s)a.schedule(l)}if(jr=null,La=null,this.#d()||this.#g()){this.#m(r),this.#m(n);for(const[l,c]of this.#c)uf(l,c)}else{this.#s.size===0&&Mn.delete(this),this.#l.clear(),this.#u.clear();for(const l of this.#e)l(this);this.#e.clear(),nu(r),nu(n),this.#i?.resolve()}var o=we;if(this.#a.length>0){const l=o??=this;l.#a.push(...this.#a.filter(c=>!l.#a.includes(c)))}o!==null&&(Mn.add(o),o.#p())}#b(t,n,r){t.f^=$e;for(var s=t.first;s!==null;){var a=s.f,o=(a&(pn|Bn))!==0,l=o&&(a&$e)!==0,c=l||(a&yt)!==0||this.#c.has(s);if(!c&&s.fn!==null){o?s.f^=$e:a&vr?n.push(s):ls(s)&&(a&fn&&this.#u.add(s),yr(s));var u=s.first;if(u!==null){s=u;continue}}for(;s!==null;){var d=s.next;if(d!==null){s=d;break}s=s.parent}}}#m(t){for(var n=0;n<t.length;n+=1)rf(t[n],this.#l,this.#u)}capture(t,n,r=!1){t.v!==Fe&&!this.previous.has(t)&&this.previous.set(t,t.v),t.f&Jn||(this.current.set(t,[n,r]),gt?.set(t,n)),this.is_fork||(t.v=n)}activate(){we=this}deactivate(){we=null,gt=null}flush(){try{lo=!0,we=this,this.#p()}finally{tu=0,Oo=null,jr=null,La=null,lo=!1,we=null,gt=null,or.clear()}}discard(){for(const t of this.#t)t(this);this.#t.clear(),this.#n.clear(),Mn.delete(this)}register_created_effect(t){this.#o.push(t)}#y(){for(const d of Mn){var t=d.id<this.id,n=[];for(const[f,[v,m]]of this.current){if(d.current.has(f)){var r=d.current.get(f)[0];if(t&&v!==r)d.current.set(f,[v,m]);else continue}n.push(f)}var s=[...d.current.keys()].filter(f=>!this.current.has(f));if(s.length===0)t&&d.discard();else if(n.length>0){if(t)for(const f of this.#f)d.unskip_effect(f,v=>{v.f&(fn|Yr)?d.schedule(v):d.#m([v])});d.activate();var a=new Set,o=new Map;for(var l of n)lf(l,s,a,o);o=new Map;var c=[...d.current.keys()].filter(f=>this.current.has(f)?this.current.get(f)[0]!==f:!0);for(const f of this.#o)!(f.f&(Ct|yt|Ps))&&Dl(f,c,o)&&(f.f&(Yr|fn)?(Ke(f,at),d.schedule(f)):d.#l.add(f));if(d.#a.length>0){d.apply();for(var u of d.#a)d.#b(u,[],[]);d.#a=[]}d.deactivate()}}for(const d of Mn)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,wt(()=>{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??=Nd()).promise}static ensure(){if(we===null){const t=we=new $t;lo||(Mn.add(we),Br||wt(()=>{we===t&&t.flush()}))}return we}apply(){{gt=null;return}}schedule(t){if(Oo=t,t.b?.is_pending&&t.f&(vr|Qs|Cl)&&!(t.f&Un)){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var r=n.f;if(jr!==null&&n===ye&&(Ae===null||!(Ae.f&it))&&!zo)return;if(r&(Bn|pn)){if(!(r&$e))return;n.f^=$e}}this.#a.push(n)}}function Zn(e){var t=Br;Br=!0;try{var n;for(e&&(we!==null&&!we.is_fork&&we.flush(),n=e());;){if(Kb(),we===null)return n;we.flush()}}finally{Br=t}}function rg(){try{fb()}catch(e){En(e,Oo)}}let Pn=null;function nu(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&(Ct|yt))&&ls(r)&&(Pn=new Set,yr(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Pf(r),Pn?.size>0)){or.clear();for(const s of Pn){if(s.f&(Ct|yt))continue;const a=[s];let o=s.parent;for(;o!==null;)Pn.has(o)&&(Pn.delete(o),a.push(o)),o=o.parent;for(let l=a.length-1;l>=0;l--){const c=a[l];c.f&(Ct|yt)||yr(c)}}Pn.clear()}}Pn=null}}function lf(e,t,n,r){if(!n.has(e)&&(n.add(e),e.reactions!==null))for(const s of e.reactions){const a=s.f;a&it?lf(s,t,n,r):a&(Yr|fn)&&!(a&at)&&Dl(s,t,r)&&(Ke(s,at),zl(s))}}function cf(e,t){if(e.reactions!==null)for(const n of e.reactions){const r=n.f;r&it?cf(n,t):r&Ps&&(Ke(n,at),t.add(n))}}function Dl(e,t,n){const r=n.get(e);if(r!==void 0)return r;if(e.deps!==null)for(const s of e.deps){if(Wr.call(t,s))return!0;if(s.f&it&&Dl(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function zl(e){we.schedule(e)}let Ha=[];function sg(){Zn(()=>{const e=Ha;Ha=[];for(const t of e)gr(t)})}function ag(e){var t=Rt(0),n=!0,r=void 0;return i(t),Tf(()=>{if(n){var s=gt;try{gt=null,r=e()}finally{gt=s}return}Ha.length===0&&wt(sg),Ha.push(t)}),n=!1,r}function uf(e,t){if(!(e.f&pn&&e.f&$e)){e.f&at?t.d.push(e):e.f&mn&&t.m.push(e),Ke(e,$e);for(var n=e.first;n!==null;)uf(n,t),n=n.next}}function df(e){Ke(e,$e);for(var t=e.first;t!==null;)df(t),t=t.next}function ig(e){Hd(),we!==null&&hb();var t=$t.ensure();t.is_fork=!0,gt=new Map;var n=!1,r=t.settled();return Zn(e),{commit:async()=>{if(n){await r;return}Mn.has(t)||vb(),n=!0,t.is_fork=!1;for(var[s,[a]]of t.current)s.v=a,s.wv=Wa();t.activate(),t.run_fork_commit_callbacks(),t.deactivate(),Zn(()=>{var o=new Set;for(var l of t.current.keys())cf(l,o);bg(o),gf()}),t.flush(),await r},discard:()=>{for(var s of t.current.keys())s.wv=Wa();!n&&Mn.has(t)&&t.discard()}}}function og(e){let t=0,n=Rt(0),r;return()=>{ia()&&(i(n),Ze(()=>(t===0&&(r=Se(()=>e(()=>xn(n)))),t+=1,()=>{wt(()=>{t-=1,t===0&&(r?.(),r=void 0,xn(n))})})))}}var lg=bn|er;function ff(e,t,n,r){new cg(e,t,n,r)}class cg{parent;is_pending=!1;transform_error;#e;#t=ue?ge:null;#n;#s;#r;#i=null;#a=null;#o=null;#l=null;#u=0;#c=0;#f=!1;#h=new Set;#v=new Set;#d=null;#g=og(()=>(this.#d=Rt(this.#u),()=>{this.#d=null}));constructor(t,n,r,s){this.#e=t,this.#n=n,this.#s=a=>{var o=ye;o.b=this,o.f|=Mo,r(a)},this.parent=ye.b,this.transform_error=s??this.parent?.transform_error??(a=>a),this.#r=Rn(()=>{if(ue){const a=this.#t;xt();const o=a.data===_i;if(a.data.startsWith(Jc)){const c=JSON.parse(a.data.slice(Jc.length));this.#b(c)}else o?this.#m():this.#p()}else this.#y()},lg),ue&&(this.#e=ge)}#p(){try{this.#i=bt(()=>this.#s(this.#e))}catch(t){this.error(t)}}#b(t){const n=this.#n.failed;n&&(this.#o=bt(()=>{n(this.#e,()=>t,()=>()=>{})}))}#m(){const t=this.#n.pending;t&&(this.is_pending=!0,this.#a=bt(()=>t(this.#e)),wt(()=>{var n=this.#l=document.createDocumentFragment(),r=ct();n.append(r),this.#i=this.#w(()=>bt(()=>this.#s(r))),this.#c===0&&(this.#e.before(n),this.#l=null,lr(this.#a,()=>{this.#a=null}),this.#_(we))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#c=0,this.#u=0,this.#i=bt(()=>{this.#s(this.#e)}),this.#c>0){var t=this.#l=document.createDocumentFragment();Hl(this.#i,t);const n=this.#n.pending;this.#a=bt(()=>n(this.#e))}else this.#_(we)}catch(n){this.error(n)}}#_(t){this.is_pending=!1,t.transfer_effects(this.#h,this.#v)}defer_effect(t){rf(t,this.#h,this.#v)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#n.pending}#w(t){var n=ye,r=Ae,s=Le;mt(this.#r),Lt(this.#r),Xr(this.#r.ctx);try{return $t.ensure(),t()}catch(a){return tf(a),null}finally{mt(n),Lt(r),Xr(s)}}#k(t,n){if(!this.has_pending_snippet()){this.parent&&this.parent.#k(t,n);return}this.#c+=t,this.#c===0&&(this.#_(n),this.#a&&lr(this.#a,()=>{this.#a=null}),this.#l&&(this.#e.before(this.#l),this.#l=null))}update_pending_count(t,n){this.#k(t,n),this.#u+=t,!(!this.#d||this.#f)&&(this.#f=!0,wt(()=>{this.#f=!1,this.#d&&Cn(this.#d,this.#u)}))}get_effect_pending(){return this.#g(),i(this.#d)}error(t){if(!this.#n.onerror&&!this.#n.failed)throw t;we?.is_fork?(this.#i&&we.skip_effect(this.#i),this.#a&&we.skip_effect(this.#a),this.#o&&we.skip_effect(this.#o),we.on_fork_commit(()=>{this.#x(t)})):this.#x(t)}#x(t){this.#i&&(nt(this.#i),this.#i=null),this.#a&&(nt(this.#a),this.#a=null),this.#o&&(nt(this.#o),this.#o=null),ue&&(ze(this.#t),_t(),ze(pr()));var n=this.#n.onerror;let r=this.#n.failed;var s=!1,a=!1;const o=()=>{if(s){Lb();return}s=!0,a&&wb(),this.#o!==null&&lr(this.#o,()=>{this.#o=null}),this.#w(()=>{this.#y()})},l=c=>{try{a=!0,n?.(c,o),a=!1}catch(u){En(u,this.#r&&this.#r.parent)}r&&(this.#o=this.#w(()=>{try{return bt(()=>{var u=ye;u.b=this,u.f|=Mo,r(this.#e,()=>c,()=>o)})}catch(u){return En(u,this.#r.parent),null}}))};wt(()=>{var c;try{c=this.transform_error(t)}catch(u){En(u,this.#r&&this.#r.parent);return}c!==null&&typeof c=="object"&&typeof c.then=="function"?c.then(l,u=>En(u,this.#r&&this.#r.parent)):l(c)})}}function ug(){ye===null&&db();var e=ye.b;return e===null?0:e.get_effect_pending()}function ta(e,t,n,r){const s=ra;var a=e.filter(v=>!v.settled);if(n.length===0&&a.length===0){r(t.map(s));return}var o=ye,l=Ai(),c=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(v=>v.promise)):null;function u(v){l();try{r(v)}catch(m){o.f&Ct||En(m,o)}br()}if(n.length===0){c.then(()=>u(t.map(s)));return}var d=na();function f(){Promise.all(n.map(v=>hf(v))).then(v=>u([...t.map(s),...v])).catch(v=>En(v,o)).finally(()=>d())}c?c.then(()=>{l(),f(),br()}):f()}function vf(e,t){ta(e,[],[],t)}function Ai(){var e=ye,t=Ae,n=Le,r=we;return function(a=!0){mt(e),Lt(t),Xr(n),a&&!(e.f&Ct)&&(r?.activate(),r?.apply())}}async function dg(e){var t=Ai(),n=await e;return()=>(t(),n)}async function No(e){var t=Es;queueMicrotask(()=>{Es===t&&Ma(null)});var n=await e;return()=>(Ma(t),queueMicrotask(()=>{Es===t&&Ma(null)}),n)}async function*fg(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 No(t.next()))();if(s){n=!0;break}var r=Es;yield a,Ma(r)}}finally{if(!n&&t.return!==void 0)return(await No(t.return()))().value}}function br(e=!0){mt(null),Lt(null),Xr(null),e&&we?.deactivate()}function vg(e){const t=Ai(),n=na();var r=ye,s=null;const a=u=>{s={error:u},Fo(r)||En(u,r)};var o=Promise.resolve(e[0]()).catch(a),l={promise:o,settled:!1},c=[l];o.finally(()=>{l.settled=!0,br()});for(const u of e.slice(1)){o=o.then(()=>{if(t(),s)throw s.error;if(Fo(r))throw kn;return u()}).catch(a);const d={promise:o,settled:!1};c.push(d),o.finally(()=>{d.settled=!0,br()})}return o.then(()=>Promise.resolve()).finally(()=>n()),c}function hg(e){return Promise.all(e.map(t=>t.promise))}function na(){var e=ye,t=e.b,n=we,r=t.is_rendered();return t.update_pending_count(1,n),n.increment(r,e),(s=!1)=>{t.update_pending_count(-1,n),n.decrement(r,e,s)}}let Es=null;function Ma(e){Es=e}function ra(e){var t=it|at;return ye!==null&&(ye.f|=er),{ctx:Le,deps:null,effects:null,equals:Yd,f:t,fn:e,reactions:null,rv:0,v:Fe,wv:0,parent:ye,ac:null}}function hf(e,t,n){let r=ye;r===null&&sb();var s=void 0,a=Rt(Fe),o=!Ae,l=new Map;return Cg(()=>{var c=ye,u=Nd();s=u.promise;try{Promise.resolve(e()).then(u.resolve,u.reject).finally(br)}catch(m){u.reject(m),br()}var d=we;if(o){if(c.f&Un)var f=na();if(r.b.is_rendered())l.get(d)?.reject(kn),l.delete(d);else{for(const m of l.values())m.reject(kn);l.clear()}l.set(d,u)}const v=(m,S=void 0)=>{if(f){var g=S===kn;f(g)}if(!(S===kn||c.f&Ct)){if(d.activate(),S)a.f|=Jn,Cn(a,S);else{a.f&Jn&&(a.f^=Jn),Cn(a,m);for(const[b,A]of l){if(l.delete(b),b===d)break;A.reject(kn)}}d.deactivate()}};u.promise.then(v,m=>v(null,m||"unknown"))}),Ft(()=>{for(const c of l.values())c.reject(kn)}),new Promise(c=>{function u(d){function f(){d===s?c(a):u(s)}d.then(f,f)}u(s)})}function F(e){const t=ra(e);return jf(t),t}function jl(e){const t=ra(e);return t.equals=Gd,t}function pg(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)nt(t[n])}}function Ol(e){var t,n=ye,r=e.parent;if(!Fn&&r!==null&&r.f&(Ct|yt))return Ib(),e.v;mt(r);try{e.f&=~hr,pg(e),t=qf(e)}finally{mt(n)}return t}function pf(e){var t=Ol(e);if(!e.equals(t)&&(e.wv=Wa(),(!we?.is_fork||e.deps===null)&&(we!==null?we.capture(e,t,!0):e.v=t,e.deps===null))){Ke(e,$e);return}Fn||(gt!==null?(ia()||we?.is_fork)&>.set(e,t):Pl(e))}function mg(e){if(e.effects!==null)for(const t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(kn),t.teardown=jt,t.ac=null,Ds(t,0),Vl(t))}function mf(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&yr(t)}let Ka=new Set;const or=new Map;function bg(e){Ka=e}let bf=!1;function Rt(e,t){var n={f:0,v:e,reactions:null,equals:Yd,rv:0,wv:0};return n}function V(e,t){const n=Rt(e);return jf(n),n}function Ci(e,t=!1,n=!0){const r=Rt(e);return t||(r.equals=Gd),r}function gg(e,t){return w(e,Se(()=>i(e))),t}function w(e,t,n=!1){Ae!==null&&(!cn||Ae.f&Ps)&&$d()&&Ae.f&(it|fn|Yr|Ps)&&(Zt===null||!Wr.call(Zt,e))&&_b();let r=n?ve(t):t;return Cn(e,r,La)}function Cn(e,t,n=null){if(!e.equals(t)){or.set(e,Fn?t:e.v);var r=$t.ensure();if(r.capture(e,t),e.f&it){const s=e;e.f&at&&Ol(s),gt===null&&Pl(s)}e.wv=Wa(),yf(e,at,n),ye!==null&&ye.f&$e&&!(ye.f&(pn|Bn))&&(Yt===null?Pg([e]):Yt.push(e)),!r.is_fork&&Ka.size>0&&!bf&&gf()}return t}function gf(){bf=!1;for(const e of Ka)e.f&$e&&Ke(e,mn),ls(e)&&yr(e);Ka.clear()}function gr(e,t=1){var n=i(e),r=t===1?n++:n--;return w(e,n),r}function yg(e,t=1){var n=i(e);return w(e,t===1?++n:--n)}function xn(e){w(e,e.v+1)}function yf(e,t,n){var r=e.reactions;if(r!==null)for(var s=r.length,a=0;a<s;a++){var o=r[a],l=o.f,c=(l&at)===0;if(c&&Ke(o,t),l&it){var u=o;gt?.delete(u),l&hr||(l&Jt&&(o.f|=hr),yf(u,mn,n))}else if(c){var d=o;l&fn&&Pn!==null&&Pn.add(d),n!==null?n.push(d):zl(d)}}}function ve(e){if(typeof e!="object"||e===null||ht in e)return e;const t=xi(e);if(t!==Od&&t!==Km)return e;var n=new Map,r=as(e),s=V(0),a=jn,o=l=>{if(jn===a)return l();var c=Ae,u=jn;Lt(null),au(a);var d=l();return Lt(c),au(u),d};return r&&n.set("length",V(e.length)),new Proxy(e,{defineProperty(l,c,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&gb();var d=n.get(c);return d===void 0?o(()=>{var f=V(u.value);return n.set(c,f),f}):w(d,u.value,!0),!0},deleteProperty(l,c){var u=n.get(c);if(u===void 0){if(c in l){const d=o(()=>V(Fe));n.set(c,d),xn(s)}}else w(u,Fe),xn(s);return!0},get(l,c,u){if(c===ht)return e;var d=n.get(c),f=c in l;if(d===void 0&&(!f||dn(l,c)?.writable)&&(d=o(()=>{var m=ve(f?l[c]:Fe),S=V(m);return S}),n.set(c,d)),d!==void 0){var v=i(d);return v===Fe?void 0:v}return Reflect.get(l,c,u)},getOwnPropertyDescriptor(l,c){var u=Reflect.getOwnPropertyDescriptor(l,c);if(u&&"value"in u){var d=n.get(c);d&&(u.value=i(d))}else if(u===void 0){var f=n.get(c),v=f?.v;if(f!==void 0&&v!==Fe)return{enumerable:!0,configurable:!0,value:v,writable:!0}}return u},has(l,c){if(c===ht)return!0;var u=n.get(c),d=u!==void 0&&u.v!==Fe||Reflect.has(l,c);if(u!==void 0||ye!==null&&(!d||dn(l,c)?.writable)){u===void 0&&(u=o(()=>{var v=d?ve(l[c]):Fe,m=V(v);return m}),n.set(c,u));var f=i(u);if(f===Fe)return!1}return d},set(l,c,u,d){var f=n.get(c),v=c in l;if(r&&c==="length")for(var m=u;m<f.v;m+=1){var S=n.get(m+"");S!==void 0?w(S,Fe):m in l&&(S=o(()=>V(Fe)),n.set(m+"",S))}if(f===void 0)(!v||dn(l,c)?.writable)&&(f=o(()=>V(void 0)),w(f,ve(u)),n.set(c,f));else{v=f.v!==Fe;var g=o(()=>ve(u));w(f,g)}var b=Reflect.getOwnPropertyDescriptor(l,c);if(b?.set&&b.set.call(d,u),!v){if(r&&typeof c=="string"){var A=n.get("length"),k=Number(c);Number.isInteger(k)&&k>=A.v&&w(A,k+1)}xn(s)}return!0},ownKeys(l){i(s);var c=Reflect.ownKeys(l).filter(f=>{var v=n.get(f);return v===void 0||v.v!==Fe});for(var[u,d]of n)d.v!==Fe&&!(u in l)&&c.push(u);return c},setPrototypeOf(){yb()}})}function Gr(e){try{if(e!==null&&typeof e=="object"&&ht in e)return e[ht]}catch{}return e}function _f(e,t){return Object.is(Gr(e),Gr(t))}function _g(e,t,n=!0){try{e===t!=(Gr(e)===Gr(t))&&Wd(n?"===":"!==")}catch{}return e===t===n}function wg(e,t,n=!0){return e==t!=(Gr(e)==Gr(t))&&Wd(),e==t===n}var qo,wf,Nl,kf,xf;function Bo(){if(qo===void 0){qo=window,wf=document,Nl=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;kf=dn(t,"firstChild").get,xf=dn(t,"nextSibling").get,Zc(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),Zc(n)&&(n.__t=void 0)}}function ct(e=""){return document.createTextNode(e)}function Ve(e){return kf.call(e)}function qt(e){return xf.call(e)}function p(e,t){if(!ue)return Ve(e);var n=Ve(ge);if(n===null)n=ge.appendChild(ct());else if(t&&n.nodeType!==$s){var r=ct();return n?.before(r),ze(r),r}return t&&Ti(n),ze(n),n}function fe(e,t=!1){if(!ue){var n=Ve(e);return n instanceof Comment&&n.data===""?qt(n):n}if(t){if(ge?.nodeType!==$s){var r=ct();return ge?.before(r),ze(r),r}Ti(ge)}return ge}function _(e,t=1,n=!1){let r=ue?ge:e;for(var s;t--;)s=r,r=qt(r);if(!ue)return r;if(n){if(r?.nodeType!==$s){var a=ct();return r===null?s?.after(a):r.before(a),ze(a),a}Ti(r)}return ze(r),r}function ql(e){e.textContent=""}function Sf(){return!1}function tr(e,t,n){let r=n?{is:n}:void 0;return document.createElementNS(t??Pd,e,r)}function kg(){return document.createDocumentFragment()}function If(e=""){return document.createComment(e)}function xg(e,t,n=""){if(t.startsWith("xlink:")){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n);return}return e.setAttribute(t,n)}function Ti(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===$s;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function sa(e,t){if(t){const n=document.body;e.autofocus=!0,wt(()=>{document.activeElement===n&&e.focus()})}}function Bl(e){ue&&Ve(e)!==null&&ql(e)}let ru=!1;function Ef(){ru||(ru=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function Mt(e,t,n,r=!0){r&&n();for(var s of t)e.addEventListener(s,n);Ft(()=>{for(var a of t)e.removeEventListener(a,n)})}function nr(e){var t=Ae,n=ye;Lt(null),mt(null);try{return e()}finally{Lt(t),mt(n)}}function aa(e,t,n,r=n){e.addEventListener(t,()=>nr(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),Ef()}function Fl(e){ye===null&&(Ae===null&&ub(),cb()),Fn&&lb()}function Sg(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function Pt(e,t){var n=ye;n!==null&&n.f&yt&&(e|=yt);var r={ctx:Le,deps:null,nodes:null,f:e|at|Jt,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};we?.register_created_effect(r);var s=r;if(e&vr)jr!==null?jr.push(r):$t.ensure().schedule(r);else if(t!==null){try{yr(r)}catch(o){throw nt(r),o}s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&!(s.f&er)&&(s=s.first,e&fn&&e&bn&&s!==null&&(s.f|=bn))}if(s!==null&&(s.parent=n,n!==null&&Sg(s,n),Ae!==null&&Ae.f&it&&!(e&Bn))){var a=Ae;(a.effects??=[]).push(s)}return r}function ia(){return Ae!==null&&!cn}function Ft(e){const t=Pt(Qs,null);return Ke(t,$e),t.teardown=e,t}function Ie(e){Fl();var t=ye.f,n=!Ae&&(t&pn)!==0&&(t&Un)===0;if(n){var r=Le;(r.e??=[]).push(e)}else return Af(e)}function Af(e){return Pt(vr|Fd,e)}function Cf(e){return Fl(),Pt(Qs|Fd,e)}function Tf(e){return Pt(Ps,e)}function os(e){$t.ensure();const t=Pt(Bn|er,e);return()=>{nt(t)}}function Ig(e){$t.ensure();const t=Pt(Bn|er,e);return(n={})=>new Promise(r=>{n.outro?lr(t,()=>{nt(t),r(void 0)}):(nt(t),r(void 0))})}function Bt(e){return Pt(vr,e)}function Eg(e,t){var n=Le,r={effect:null,ran:!1,deps:e};n.l.$.push(r),r.effect=Ze(()=>{if(e(),!r.ran){r.ran=!0;var s=ye;try{mt(s.parent),Se(t)}finally{mt(s)}}})}function Ag(){var e=Le;Ze(()=>{for(var t of e.l.$){t.deps();var n=t.effect;n.f&$e&&n.deps!==null&&Ke(n,mn),ls(n)&&yr(n),t.ran=!1}})}function Cg(e){return Pt(Yr|er,e)}function Ze(e,t=0){return Pt(Qs|t,e)}function q(e,t=[],n=[],r=[]){ta(r,t,n,s=>{Pt(Qs,()=>e(...s.map(i)))})}function Tg(e,t=[],n=[],r=[]){if(n.length>0||r.length>0)var s=na();ta(r,t,n,a=>{Pt(vr,()=>e(...a.map(i))),s&&s()})}function Rn(e,t=0){var n=Pt(fn|t,e);return n}function Rf(e,t=0){var n=Pt(Cl|t,e);return n}function bt(e){return Pt(pn|er,e)}function Lf(e){var t=e.teardown;if(t!==null){const n=Fn,r=Ae;su(!0),Lt(null);try{t.call(null)}finally{su(n),Lt(r)}}}function Vl(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&nr(()=>{s.abort(kn)});var r=n.next;n.f&Bn?n.parent=null:nt(n,t),n=r}}function Rg(e){for(var t=e.first;t!==null;){var n=t.next;t.f&pn||nt(t),t=n}}function nt(e,t=!0){var n=!1;(t||e.f&Bd)&&e.nodes!==null&&e.nodes.end!==null&&(Mf(e.nodes.start,e.nodes.end),n=!0),Ke(e,Po),Vl(e,t&&!n),Ds(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const a of r)a.stop();Lf(e),e.f^=Po,e.f|=Ct;var s=e.parent;s!==null&&s.first!==null&&Pf(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Mf(e,t){for(;e!==null;){var n=e===t?null:qt(e);e.remove(),e=n}}function Pf(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function lr(e,t,n=!0){var r=[];Df(e,r,!0);var s=()=>{n&&nt(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||s();for(var l of r)l.out(o)}else s()}function Df(e,t,n){if(!(e.f&yt)){e.f^=yt;var r=e.nodes&&e.nodes.t;if(r!==null)for(const l of r)(l.is_global||n)&&t.push(l);for(var s=e.first;s!==null;){var a=s.next;if(!(s.f&Bn)){var o=(s.f&bn)!==0||(s.f&pn)!==0&&(e.f&fn)!==0;Df(s,t,o?n:!1)}s=a}}}function Ul(e){zf(e,!0)}function zf(e,t){if(e.f&yt){e.f^=yt,e.f&$e||(Ke(e,at),$t.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&bn)!==0||(n.f&pn)!==0;zf(n,s?t:!1),n=r}var a=e.nodes&&e.nodes.t;if(a!==null)for(const o of a)(o.is_global||t)&&o.in()}}function Fo(e=ye){return(e.f&Ct)!==0}function Hl(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:qt(n);t.append(n),n=s}}let Pr=null;function Lg(e){var t=Pr;try{if(Pr=new Set,Se(e),t!==null)for(var n of Pr)t.add(n);return Pr}finally{Pr=t}}function Mg(e){for(var t of Lg(e))Cn(t,t.v)}let Pa=!1,Fn=!1;function su(e){Fn=e}let Ae=null,cn=!1;function Lt(e){Ae=e}let ye=null;function mt(e){ye=e}let Zt=null;function jf(e){Ae!==null&&(Zt===null?Zt=[e]:Zt.push(e))}let It=null,Dt=0,Yt=null;function Pg(e){Yt=e}let Of=1,sr=0,jn=sr;function au(e){jn=e}function Wa(){return++Of}function ls(e){var t=e.f;if(t&at)return!0;if(t&it&&(e.f&=~hr),t&mn){for(var n=e.deps,r=n.length,s=0;s<r;s++){var a=n[s];if(ls(a)&&pf(a),a.wv>e.wv)return!0}t&Jt&>===null&&Ke(e,$e)}return!1}function Nf(e,t,n=!0){var r=e.reactions;if(r!==null&&!(Zt!==null&&Wr.call(Zt,e)))for(var s=0;s<r.length;s++){var a=r[s];a.f&it?Nf(a,t,!1):t===a&&(n?Ke(a,at):a.f&$e&&Ke(a,mn),zl(a))}}function qf(e){var t=It,n=Dt,r=Yt,s=Ae,a=Zt,o=Le,l=cn,c=jn,u=e.f;It=null,Dt=0,Yt=null,Ae=u&(pn|Bn)?null:e,Zt=null,Xr(e.ctx),cn=!1,jn=++sr,e.ac!==null&&(nr(()=>{e.ac.abort(kn)}),e.ac=null);try{e.f|=Do;var d=e.fn,f=d();e.f|=Un;var v=e.deps,m=we?.is_fork;if(It!==null){var S;if(m||Ds(e,Dt),v!==null&&Dt>0)for(v.length=Dt+It.length,S=0;S<It.length;S++)v[Dt+S]=It[S];else e.deps=v=It;if(ia()&&e.f&Jt)for(S=Dt;S<v.length;S++)(v[S].reactions??=[]).push(e)}else!m&&v!==null&&Dt<v.length&&(Ds(e,Dt),v.length=Dt);if($d()&&Yt!==null&&!cn&&v!==null&&!(e.f&(it|mn|at)))for(S=0;S<Yt.length;S++)Nf(Yt[S],e);if(s!==null&&s!==e){if(sr++,s.deps!==null)for(let g=0;g<n;g+=1)s.deps[g].rv=sr;if(t!==null)for(const g of t)g.rv=sr;Yt!==null&&(r===null?r=Yt:r.push(...Yt))}return e.f&Jn&&(e.f^=Jn),f}catch(g){return tf(g)}finally{e.f^=Do,It=t,Dt=n,Yt=r,Ae=s,Zt=a,Xr(o),cn=l,jn=c}}function Dg(e,t){let n=t.reactions;if(n!==null){var r=Hm.call(n,e);if(r!==-1){var s=n.length-1;s===0?n=t.reactions=null:(n[r]=n[s],n.pop())}}if(n===null&&t.f&it&&(It===null||!Wr.call(It,t))){var a=t;a.f&Jt&&(a.f^=Jt,a.f&=~hr),a.v!==Fe&&Pl(a),mg(a),Ds(a,0)}}function Ds(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)Dg(e,n[r])}function yr(e){var t=e.f;if(!(t&Ct)){Ke(e,$e);var n=ye,r=Pa;ye=e,Pa=!0;try{t&(fn|Cl)?Rg(e):Vl(e),Lf(e);var s=qf(e);e.teardown=typeof s=="function"?s:null,e.wv=Of;var a;zd&&Pb&&e.f&at&&e.deps}finally{Pa=r,ye=n}}}async function oa(){await Promise.resolve(),Zn()}function zg(){return $t.ensure().settled()}function i(e){var t=e.f,n=(t&it)!==0;if(Pr?.add(e),Ae!==null&&!cn){var r=ye!==null&&(ye.f&Ct)!==0;if(!r&&(Zt===null||!Wr.call(Zt,e))){var s=Ae.deps;if(Ae.f&Do)e.rv<sr&&(e.rv=sr,It===null&&s!==null&&s[Dt]===e?Dt++:It===null?It=[e]:It.push(e));else{(Ae.deps??=[]).push(e);var a=e.reactions;a===null?e.reactions=[Ae]:Wr.call(a,Ae)||a.push(Ae)}}}if(Fn&&or.has(e))return or.get(e);if(n){var o=e;if(Fn){var l=o.v;return(!(o.f&$e)&&o.reactions!==null||Ff(o))&&(l=Ol(o)),or.set(o,l),l}var c=(o.f&Jt)===0&&!cn&&Ae!==null&&(Pa||(Ae.f&Jt)!==0),u=(o.f&Un)===0;ls(o)&&(c&&(o.f|=Jt),pf(o)),c&&!u&&(mf(o),Bf(o))}if(gt?.has(e))return gt.get(e);if(e.f&Jn)throw e.v;return e.v}function Bf(e){if(e.f|=Jt,e.deps!==null)for(const t of e.deps)(t.reactions??=[]).push(e),t.f&it&&!(t.f&Jt)&&(mf(t),Bf(t))}function Ff(e){if(e.v===Fe)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(or.has(t)||t.f&it&&Ff(t))return!0;return!1}function jg(e){return e&&i(e)}function Se(e){var t=cn;try{return cn=!0,e()}finally{cn=t}}function Kl(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if(ht in e)Ya(e);else if(!Array.isArray(e))for(let t in e){const n=e[t];typeof n=="object"&&n&&ht in n&&Ya(n)}}}function Ya(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{Ya(e[r],t)}catch{}const n=xi(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){const r=jd(n);for(let s in r){const a=r[s].get;if(a)try{a.call(e)}catch{}}}}}function Og(e,t){if(Hd(),ue){const n=window.__svelte?.h;if(n?.has(e))return n.get(e);Ab()}return t()}const ws=Symbol("events"),Vf=new Set,Vo=new Set;function Ng(e){if(!ue)return;e.removeAttribute("onload"),e.removeAttribute("onerror");const t=e.__e;t!==void 0&&(e.__e=void 0,queueMicrotask(()=>{e.isConnected&&e.dispatchEvent(t)}))}function Uf(e,t,n,r={}){function s(a){if(r.capture||Uo.call(t,a),!a.cancelBubble)return nr(()=>n?.call(this,a))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?wt(()=>{t.addEventListener(e,s,r)}):t.addEventListener(e,s,r),s}function Ue(e,t,n,r,s){var a={capture:r,passive:s},o=Uf(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&Ft(()=>{t.removeEventListener(e,o,a)})}function K(e,t,n){(t[ws]??={})[e]=n}function pe(e){for(var t=0;t<e.length;t++)Vf.add(e[t]);for(var n of Vo)n(e)}let iu=null;function Uo(e){var t=this,n=t.ownerDocument,r=e.type,s=e.composedPath?.()||[],a=s[0]||e.target;iu=e;var o=0,l=iu===e&&e[ws];if(l){var c=s.indexOf(l);if(c!==-1&&(t===document||t===window)){e[ws]=t;return}var u=s.indexOf(t);if(u===-1)return;c<=u&&(o=c)}if(a=s[o]||e.target,a!==t){fr(e,"currentTarget",{configurable:!0,get(){return a||n}});var d=Ae,f=ye;Lt(null),mt(null);try{for(var v,m=[];a!==null;){var S=a.assignedSlot||a.parentNode||a.host||null;try{var g=a[ws]?.[r];g!=null&&(!a.disabled||e.target===a)&&g.call(a,e)}catch(b){v?m.push(b):v=b}if(e.cancelBubble||S===t||S===null)break;a=S}if(v){for(let b of m)queueMicrotask(()=>{throw b});throw v}}finally{e[ws]=t,delete e.currentTarget,Lt(d),mt(f)}}}function qg(e,t,n,r,s,a=!1,o=!1){let l,c;try{l=e()}catch(u){c=u}if(typeof l!="function"&&(a||l!=null||c)){const u=r?.[zt];s?`${u}${s[0]}${s[1]}`:`${u}`;const d=n[0]?.eventPhase<Event.BUBBLING_PHASE?"capture":"";if(n[0]?.type+d,Eb(),c)throw c}l?.apply(t,n)}const Bg=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function Hf(e){return Bg?.createHTML(e)??e}function Wl(e){var t=tr("template");return t.innerHTML=Hf(e.replaceAll("<!>","<!---->")),t.content}const Fg=Ir?"template":"TEMPLATE",Vg=Ir?"script":"SCRIPT";function rt(e,t){var n=ye;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function E(e,t){var n=(t&El)!==0,r=(t&Md)!==0,s,a=!e.startsWith("<!>");return()=>{if(ue)return rt(ge,null),ge;s===void 0&&(s=Wl(a?e:"<!>"+e),n||(s=Ve(s)));var o=r||Nl?document.importNode(s,!0):s.cloneNode(!0);if(n){var l=Ve(o),c=o.lastChild;rt(l,c)}else rt(o,o);return o}}function Kf(e,t,n="svg"){var r=!e.startsWith("<!>"),s=(t&El)!==0,a=`<${n}>${r?e:"<!>"+e}</${n}>`,o;return()=>{if(ue)return rt(ge,null),ge;if(!o){var l=Wl(a),c=Ve(l);if(s)for(o=document.createDocumentFragment();Ve(c);)o.appendChild(Ve(c));else o=Ve(c)}var u=o.cloneNode(!0);if(s){var d=Ve(u),f=u.lastChild;rt(d,f)}else rt(u,u);return u}}function Yl(e,t){return Kf(e,t,"svg")}function Ug(e,t){return Kf(e,t,"math")}function Wf(e,t){var n=kg();for(var r of e){if(typeof r=="string"){n.append(ct(r));continue}if(r===void 0||r[0][0]==="/"){n.append(If(r?r[0].slice(3):""));continue}const[l,c,...u]=r,d=l==="svg"?Zs:l==="math"?Al:t;var s=tr(l,d,c?.is);for(var a in c)xg(s,a,c[a]);if(u.length>0){var o=s.nodeName===Fg?s.content:s;o.append(Wf(u,s.nodeName==="foreignObject"?void 0:d))}n.append(s)}return n}function Hg(e,t){var n=(t&El)!==0,r=(t&Md)!==0,s;return()=>{if(ue)return rt(ge,null),ge;if(s===void 0){const c=t&Vm?Zs:t&Um?Al:void 0;s=Wf(e,c),n||(s=Ve(s))}var a=r||Nl?document.importNode(s,!0):s.cloneNode(!0);if(n){var o=Ve(a),l=a.lastChild;rt(o,l)}else rt(a,a);return a}}function Kg(e){return()=>Wg(e())}function Wg(e){if(ue)return e;const t=e.nodeType===Ud,n=e.nodeName===Vg?[e]:e.querySelectorAll("script"),r=ye;for(const a of n){const o=tr("script");for(var s of a.attributes)o.setAttribute(s.name,s.value);o.textContent=a.textContent,(t?e.firstChild===a:e===a)&&(r.nodes.start=o),(t?e.lastChild===a:e===a)&&(r.nodes.end=o),a.replaceWith(o)}return e}function vn(e=""){if(!ue){var t=ct(e+"");return rt(t,t),t}var n=ge;return n.nodeType!==$s?(n.before(n=ct()),ze(n)):Ti(n),rt(n,n),n}function Me(){if(ue)return rt(ge,null),ge;var e=document.createDocumentFragment(),t=document.createComment(""),n=ct();return e.append(t,n),rt(t,n),e}function x(e,t){if(ue){var n=ye;(!(n.f&Un)||n.nodes.end===null)&&(n.nodes.end=ge),xt();return}e!==null&&e.before(t)}function Yg(){if(ue&&ge&&ge.nodeType===Hn&&ge.textContent?.startsWith("$")){const e=ge.textContent.substring(1);return xt(),e}return(window.__svelte??={}).uid??=1,`c${window.__svelte.uid++}`}const Xg=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function Gg(e){return Xg.includes(e)||e.toLowerCase()==="!doctype"}function Jg(e){return e.endsWith("capture")&&e!=="gotpointercapture"&&e!=="lostpointercapture"}const Zg=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function Qg(e){return Zg.includes(e)}const $g={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 ey(e){return e=e.toLowerCase(),$g[e]??e}const ty=["touchstart","touchmove"];function ny(e){return ty.includes(e)}const ry=["textarea","script","style","title"];function sy(e){return ry.includes(e)}function Yf(e){return e?.replace(/\//g,"/")}let Xa=!0;function Or(e){Xa=e}function z(e,t){var n=t==null?"":typeof t=="object"?`${t}`:t;n!==(e.__t??=e.nodeValue)&&(e.__t=n,e.nodeValue=`${n}`)}function We(e,t){return Gf(e,t)}function Xf(e,t){Bo(),t.intro=t.intro??!1;const n=t.target,r=ue,s=ge;try{for(var a=Ve(n);a&&(a.nodeType!==Hn||a.data!==yi);)a=qt(a);if(!a)throw dr;qe(!0),ze(a);const o=Gf(e,{...t,anchor:a});return qe(!1),o}catch(o){if(o instanceof Error&&o.message.split(`
|
|
6
|
-
`).some(l=>l.startsWith("https://svelte.dev/e/")))throw o;return o!==dr&&console.warn("Failed to hydrate: ",o),t.recover===!1&&mb(),Bo(),ql(n),qe(!1),We(e,t)}finally{qe(r),ze(s)}}const wa=new Map;function Gf(e,{target:t,anchor:n,props:r={},events:s,context:a,intro:o=!0,transformError:l}){Bo();var c=void 0,u=Ig(()=>{var d=n??t.appendChild(ct());ff(d,{pending:()=>{}},m=>{ae({});var S=Le;if(a&&(S.c=a),s&&(r.$$events=s),ue&&rt(m,null),Xa=o,c=e(m,r)||{},Xa=!0,ue&&(ye.nodes.end=ge,ge===null||ge.nodeType!==Hn||ge.data!==wi))throw ea(),dr;ie()},l);var f=new Set,v=m=>{for(var S=0;S<m.length;S++){var g=m[S];if(!f.has(g)){f.add(g);var b=ny(g);for(const y of[t,document]){var A=wa.get(y);A===void 0&&(A=new Map,wa.set(y,A));var k=A.get(g);k===void 0?(y.addEventListener(g,Uo,{passive:b}),A.set(g,1)):A.set(g,k+1)}}}};return v(ki(Vf)),Vo.add(v),()=>{for(var m of f)for(const b of[t,document]){var S=wa.get(b),g=S.get(m);--g==0?(b.removeEventListener(m,Uo),S.delete(m),S.size===0&&wa.delete(b)):S.set(m,g)}Vo.delete(v),d!==n&&d.parentNode?.removeChild(d)}});return Ho.set(c,u),c}let Ho=new WeakMap;function tt(e,t){const n=Ho.get(e);return n?(Ho.delete(e),n(t)):Promise.resolve()}function ay(e){const t=e();t&&Gg(t)&&Db()}function iy(e){const t=e();t&&!(typeof t=="string")&&rb()}function oy(e,t){e!=null&&typeof e.subscribe!="function"&&nb()}function Jf(e){return e.toString=()=>(tb(),""),e}class cs{anchor;#e=new Map;#t=new Map;#n=new Map;#s=new Set;#r=!0;constructor(t,n=!0){this.anchor=t,this.#r=n}#i=t=>{if(this.#e.has(t)){var n=this.#e.get(t),r=this.#t.get(n);if(r)Ul(r),this.#s.delete(n);else{var s=this.#n.get(n);s&&(this.#t.set(n,s.effect),this.#n.delete(n),s.fragment.lastChild.remove(),this.anchor.before(s.fragment),r=s.effect)}for(const[a,o]of this.#e){if(this.#e.delete(a),a===t)break;const l=this.#n.get(o);l&&(nt(l.effect),this.#n.delete(o))}for(const[a,o]of this.#t){if(a===n||this.#s.has(a))continue;const l=()=>{if(Array.from(this.#e.values()).includes(a)){var u=document.createDocumentFragment();Hl(o,u),u.append(ct()),this.#n.set(a,{effect:o,fragment:u})}else nt(o);this.#s.delete(a),this.#t.delete(a)};this.#r||!r?(this.#s.add(a),lr(o,l,!1)):l()}}};#a=t=>{this.#e.delete(t);const n=Array.from(this.#e.values());for(const[r,s]of this.#n)n.includes(r)||(nt(s.effect),this.#n.delete(r))};ensure(t,n){var r=we,s=Sf();if(n&&!this.#t.has(t)&&!this.#n.has(t))if(s){var a=document.createDocumentFragment(),o=ct();a.append(o),this.#n.set(t,{effect:bt(()=>n(o)),fragment:a})}else this.#t.set(t,bt(()=>n(this.anchor)));if(this.#e.set(r,t),s){for(const[l,c]of this.#t)l===t?r.unskip_effect(c):r.skip_effect(c);for(const[l,c]of this.#n)l===t?r.unskip_effect(c.effect):r.skip_effect(c.effect);r.oncommit(this.#i),r.ondiscard(this.#a)}else ue&&(this.anchor=ge),this.#i(r)}}function en(e,t,...n){var r=new cs(e);Rn(()=>{const s=t()??null;r.ensure(s,s&&(a=>s(a,...n)))},bn)}function ly(e,t){const n=(r,...s)=>{var a=Rl;eu(e);try{return t(r,...s)}finally{eu(a)}};return Jf(n),n}function cy(e){return(t,...n)=>{var r=e(...n),s;if(ue)s=ge,xt();else{var a=r.render().trim(),o=Wl(a);s=Ve(o),t.before(s)}const l=r.setup?.(s);rt(s,s),typeof l=="function"&&Ft(l)}}function uy(){return Ae===null&&pb(),(Ae.ac??=new AbortController).signal}function Xl(e){Le===null&&is(),Ie(()=>{const t=Se(e);if(typeof t=="function")return t})}function Gl(e){Le===null&&is(),Xl(()=>()=>Se(e))}function dy(e,t,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(e,{detail:t,bubbles:n,cancelable:r})}function fy(){const e=Le;return e===null&&is(),(t,n,r)=>{const s=e.s.$$events?.[t];if(s){const a=as(s)?s.slice():[s],o=dy(t,n,r);for(const l of a)l.call(e.x,o);return!o.defaultPrevented}return!0}}function vy(e){Le===null&&is(),Le.l===null&&Kd(),Zf(Le).b.push(e)}function hy(e){Le===null&&is(),Le.l===null&&Kd(),Zf(Le).a.push(e)}function Zf(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}const Qf=Object.freeze(Object.defineProperty({__proto__:null,afterUpdate:hy,beforeUpdate:vy,createContext:Vb,createEventDispatcher:fy,createRawSnippet:cy,flushSync:Zn,fork:ig,getAbortSignal:uy,getAllContexts:Ub,getContext:Ll,hasContext:Qd,hydratable:Og,hydrate:Xf,mount:We,onDestroy:Gl,onMount:Xl,setContext:Ml,settled:zg,tick:oa,unmount:tt,untrack:Se},Symbol.toStringTag,{value:"Module"}));function py(){return Symbol(Dd)}function $f(e,t,n,r){return e!==t&&typeof t=="object"&&ht in t&&kb(n,Yf(r)),e}function my(e,t,n,r,s){return $f(n==="="?e[t]=r:n==="&&="?e[t]&&=r():n==="||="?e[t]||=r():n==="??="?e[t]??=r():null,Se(()=>e[t]),t,s)}async function by(e,t,n,r,s){return $f(n==="="?e[t]=await r:n==="&&="?e[t]&&=await r():n==="||="?e[t]||=await r():n==="??="?e[t]??=await r():null,Se(()=>e[t]),t,s)}var ou=new Map;function gy(e){var t=ou.get(e);if(t){for(const n of t)n.remove();ou.delete(e)}}function yy(e,t,n){return(...r)=>{const s=e(...r);var a=ue?s:s.nodeType===Ud?s.firstChild:s;return ev(a,t,n),s}}function _y(e,t,n){e.__svelte_meta={parent:Ra,loc:{file:t,line:n[0],column:n[1]}},n[2]&&ev(e.firstChild,t,n[2])}function ev(e,t,n){for(var r=0,s=0;e&&r<n.length;){if(ue&&e.nodeType===Hn){var a=e;a.data[0]===yi?s+=1:a.data[0]===wi&&(s-=1)}s===0&&e.nodeType===Vd&&_y(e,t,n[r++]),e=e.nextSibling}}function wy(e){const t=Rt(e);function n(r,s){let a={},o={},l,c=!1,u=r;return Rn(()=>{if(a!==(a=i(t))){if(l){for(var d in o)delete o[d];nt(l)}l=bt(()=>{u=u[Qm]??u,c&&Or(!1);var f=new.target?new a(u,s):a(u,s);f&&Object.defineProperties(o,Object.getOwnPropertyDescriptors(f)),c&&Or(!0)}),ye.nodes=l.nodes}},bn),c=!0,ue&&(u=ge),o}return n[zt]=e[zt],n[Lr]={fn:e,current:t,update:r=>{w(n[Lr].current,r[Lr].fn),r[Lr].current=n[Lr].current}},n}function ky(e){const t=Le?.function,n=Le?.p?.function;return{mutation:(r,s,a,o,l)=>{const c=s[0];if(lu(e,c)||!n)return a;let u=e;for(let f=0;f<s.length-1;f++)if(u=u[s[f]],!u?.[ht])return a;const d=Yf(`${t[zt]}:${o}:${l}`);return Tb(c,d,r,n[zt]),a},binding:(r,s,a)=>{!lu(e,r)&&n&&a()?.[ht]&&Cb(t[zt],r,s[zt],n[zt])}}}function lu(e,t){const n=ht in e||Si in e;return!!dn(e,t)?.set||n&&t in e||!(t in e)}function xy(e){e&&ib(e[zt]??"a component",e.name)}function Sy(){const e=Le?.function;function t(n){ab(n,e[zt])}return{$destroy:()=>t("$destroy()"),$on:()=>t("$on(...)"),$set:()=>t("$set(...)")}}function Iy(e,t,n=!1){Fl();let r=!0,s=Fe;Tf(()=>{try{var a=e()}catch(l){s=l;return}var o=mr(a,!0,!0);Se(()=>{if(n){if(t(...o),!r){const l=qb("$inspect(...)");l&&(console.groupCollapsed("stack trace"),console.log(l),console.groupEnd())}}else t(r?"init":"update",...o)}),r=!1}),Ze(()=>{try{e()}catch{}s!==Fe&&(console.error(s),s=Fe)})}function Ey(e,t=[],n=[],r){var s=ue,a=null;if(s&&(xt(),a=pr(!1)),n.length===0&&t.every(c=>c.settled)){r(e),s&&ze(a);return}const o=na();if(s){var l=ge;ze(a)}ta(t,[],n,c=>{s&&(qe(!0),ze(l));try{for(const u of c)i(u);r(e,...c)}finally{s&&qe(!1),o()}})}function Ay(e,...t){(typeof e!="object"||!(e instanceof Node))&&$c();for(let n of t)typeof n!="function"&&$c()}const cu=0,uu=1,Cy=2;function Ty(e,t,n,r,s){ue&&xt();var a=Fe,o=Rt(a),l=Rt(a),c=new cs(e);Rn(()=>{var u=we;u.deactivate();var d=t();u.activate();var f=!1;let v=ue&&Qc(d)===(e.data===_i);if(v&&(ze(pr()),qe(!1)),Qc(d)){var m=Ai(),S=!1;const g=b=>{if(!f){S=!0,m(!1),$t.ensure(),ue&&qe(!1);try{b()}finally{br(!1),Br||Zn()}}};d.then(b=>{g(()=>{Cn(o,b),c.ensure(uu,r&&(A=>r(A,o)))})},b=>{g(()=>{if(Cn(l,b),c.ensure(Cy,s&&(A=>s(A,l))),!s)throw l.v})}),ue?c.ensure(cu,n):wt(()=>{S||g(()=>{c.ensure(cu,n)})})}else Cn(o,d),c.ensure(uu,r&&(g=>r(g,o)));return v&&qe(!0),()=>{f=!0}})}function W(e,t,n=!1){var r;ue&&(r=ge,xt());var s=new cs(e),a=n?bn:0;function o(l,c){if(ue){var u=Tl(r);if(l!==parseInt(u.substring(1))){var d=pr();ze(d),s.anchor=d,qe(!1),s.ensure(l,c),qe(!0);return}}s.ensure(l,c)}Rn(()=>{var l=!1;t((c,u=0)=>{l=!0,o(u,c)}),l||o(-1,null)},a)}const Ry=Symbol("NaN");function Ly(e,t,n){ue&&xt();var r=new cs(e);Rn(()=>{var s=t();s!==s&&(s=Ry),r.ensure(s,n)})}function My(e,t){ue&&ze(Ve(e)),Ze(()=>{var n=t();for(var r in n){var s=n[r];s?e.style.setProperty(r,s):e.style.removeProperty(r)}})}function ut(e,t){return t}function Py(e,t,n){for(var r=[],s=t.length,a,o=t.length,l=0;l<s;l++){let f=t[l];lr(f,()=>{if(a){if(a.pending.delete(f),a.done.add(f),a.pending.size===0){var v=e.outrogroups;Ko(e,ki(a.done)),v.delete(a),v.size===0&&(e.outrogroups=null)}}else o-=1},!1)}if(o===0){var c=r.length===0&&n!==null;if(c){var u=n,d=u.parentNode;ql(d),d.append(u),e.items.clear()}Ko(e,t,!c)}else a={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(a)}function Ko(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(const o of e.pending.values())for(const l of o)r.add(e.items.get(l).e)}for(var s=0;s<t.length;s++){var a=t[s];if(r?.has(a)){a.f|=In;const o=document.createDocumentFragment();Hl(a,o)}else nt(t[s],n)}}var du;function me(e,t,n,r,s,a=null){var o=e,l=new Map,c=(t&Rd)!==0;if(c){var u=e;o=ue?ze(Ve(u)):u.appendChild(ct())}ue&&xt();var d=null,f=jl(()=>{var y=n();return as(y)?y:y==null?[]:ki(y)}),v,m=new Map,S=!0;function g(y){k.effect.f&Ct||(k.pending.delete(y),k.fallback=d,Dy(k,v,o,t,r),d!==null&&(v.length===0?d.f&In?(d.f^=In,ks(d,null,o)):Ul(d):lr(d,()=>{d=null})))}function b(y){k.pending.delete(y)}var A=Rn(()=>{v=i(f);var y=v.length;let C=!1;if(ue){var I=Tl(o)===_i;I!==(y===0)&&(o=pr(),ze(o),qe(!1),C=!0)}for(var P=new Set,L=we,T=Sf(),M=0;M<y;M+=1){ue&&ge.nodeType===Hn&&ge.data===wi&&(o=ge,C=!0,qe(!1));var N=v[M],R=r(N,M),D=S?null:l.get(R);D?(D.v&&Cn(D.v,N),D.i&&Cn(D.i,M),T&&L.unskip_effect(D.e)):(D=zy(l,S?o:du??=ct(),N,R,M,s,t,n),S||(D.e.f|=In),l.set(R,D)),P.add(R)}if(y===0&&a&&!d&&(S?d=bt(()=>a(o)):(d=bt(()=>a(du??=ct())),d.f|=In)),y>P.size&&ob(),ue&&y>0&&ze(pr()),!S)if(m.set(L,P),T){for(const[j,B]of l)P.has(j)||L.skip_effect(B.e);L.oncommit(g),L.ondiscard(b)}else g(L);C&&qe(!0),i(f)}),k={effect:A,items:l,pending:m,outrogroups:null,fallback:d};S=!1,ue&&(o=ge)}function bs(e){for(;e!==null&&!(e.f&pn);)e=e.next;return e}function Dy(e,t,n,r,s){var a=(r&Dm)!==0,o=t.length,l=e.items,c=bs(e.effect.first),u,d=null,f,v=[],m=[],S,g,b,A;if(a)for(A=0;A<o;A+=1)S=t[A],g=s(S,A),b=l.get(g).e,b.f&In||(b.nodes?.a?.measure(),(f??=new Set).add(b));for(A=0;A<o;A+=1){if(S=t[A],g=s(S,A),b=l.get(g).e,e.outrogroups!==null)for(const N of e.outrogroups)N.pending.delete(b),N.done.delete(b);if(b.f&yt&&(Ul(b),a&&(b.nodes?.a?.unfix(),(f??=new Set).delete(b))),b.f&In)if(b.f^=In,b===c)ks(b,null,n);else{var k=d?d.next:c;b===e.effect.last&&(e.effect.last=b.prev),b.prev&&(b.prev.next=b.next),b.next&&(b.next.prev=b.prev),Wn(e,d,b),Wn(e,b,k),ks(b,k,n),d=b,v=[],m=[],c=bs(d.next);continue}if(b!==c){if(u!==void 0&&u.has(b)){if(v.length<m.length){var y=m[0],C;d=y.prev;var I=v[0],P=v[v.length-1];for(C=0;C<v.length;C+=1)ks(v[C],y,n);for(C=0;C<m.length;C+=1)u.delete(m[C]);Wn(e,I.prev,P.next),Wn(e,d,I),Wn(e,P,y),c=y,d=P,A-=1,v=[],m=[]}else u.delete(b),ks(b,c,n),Wn(e,b.prev,b.next),Wn(e,b,d===null?e.effect.first:d.next),Wn(e,d,b),d=b;continue}for(v=[],m=[];c!==null&&c!==b;)(u??=new Set).add(c),m.push(c),c=bs(c.next);if(c===null)continue}b.f&In||v.push(b),d=b,c=bs(b.next)}if(e.outrogroups!==null){for(const N of e.outrogroups)N.pending.size===0&&(Ko(e,ki(N.done)),e.outrogroups?.delete(N));e.outrogroups.size===0&&(e.outrogroups=null)}if(c!==null||u!==void 0){var L=[];if(u!==void 0)for(b of u)b.f&yt||L.push(b);for(;c!==null;)!(c.f&yt)&&c!==e.fallback&&L.push(c),c=bs(c.next);var T=L.length;if(T>0){var M=r&Rd&&o===0?n:null;if(a){for(A=0;A<T;A+=1)L[A].nodes?.a?.measure();for(A=0;A<T;A+=1)L[A].nodes?.a?.fix()}Py(e,L,M)}}a&&wt(()=>{if(f!==void 0)for(b of f)b.nodes?.a?.apply()})}function zy(e,t,n,r,s,a,o,l){var c=o&Mm?o&zm?Rt(n):Ci(n,!1,!1):null,u=o&Pm?Rt(s):null;return{v:c,i:u,e:bt(()=>(a(t,c??n,u??s,l),()=>{e.delete(r)}))}}function ks(e,t,n){if(e.nodes)for(var r=e.nodes.start,s=e.nodes.end,a=t&&!(t.f&In)?t.nodes.start:n;r!==null;){var o=qt(r);if(a.before(r),r===s)return;r=o}}function Wn(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function jy(e,t,n=!1,r=!1,s=!1,a=!1){var o=e,l="";if(n){var c=e;ue&&(o=ze(Ve(c)))}q(()=>{var u=ye;if(l===(l=t()??"")){ue&&xt();return}if(n&&!ue){u.nodes=null,c.innerHTML=l,l!==""&&rt(Ve(c),c.lastChild);return}if(u.nodes!==null&&(Mf(u.nodes.start,u.nodes.end),u.nodes=null),l!==""){if(ue){ge.data;for(var d=xt(),f=d;d!==null&&(d.nodeType!==Hn||d.data!=="");)f=d,d=qt(d);if(d===null)throw ea(),dr;rt(ge,f),o=ze(d);return}var v=r?Zs:s?Al:void 0,m=tr(r?"svg":s?"math":"template",v);m.innerHTML=l;var S=r||s?m:m.content;if(rt(Ve(S),S.lastChild),r||s)for(;Ve(S);)o.before(Ve(S));else o.before(S)}})}function Oy(e,t,n,r,s){ue&&xt();var a=t.$$slots?.[n],o=!1;a===!0&&(a=t[n==="default"?"children":n],o=!0),a===void 0?s!==null&&s(e):a(e,o?()=>r:r)}function Ny(e){const t={};e.children&&(t.default=!0);for(const n in e.$$slots)t[n]=!0;return t}function la(e,t,n){var r;ue&&(r=ge,xt());var s=new cs(e);Rn(()=>{var a=t()??null;if(ue){var o=Tl(r),l=o===yi,c=a!==null;if(l!==c){var u=pr();ze(u),s.anchor=u,qe(!1),s.ensure(a,a&&(d=>n(d,a))),qe(!0);return}}s.ensure(a,a&&(d=>n(d,a)))},bn)}const qy=()=>performance.now(),Sn={tick:e=>requestAnimationFrame(e),now:()=>qy(),tasks:new Set};function tv(){const e=Sn.now();Sn.tasks.forEach(t=>{t.c(e)||(Sn.tasks.delete(t),t.f())}),Sn.tasks.size!==0&&Sn.tick(tv)}function By(e){let t;return Sn.tasks.size===0&&Sn.tick(tv),{promise:new Promise(n=>{Sn.tasks.add(t={c:e,f:n})}),abort(){Sn.tasks.delete(t)}}}function Ga(e,t){nr(()=>{e.dispatchEvent(new CustomEvent(t))})}function Fy(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 fu(e){const t={},n=e.split(";");for(const r of n){const[s,a]=r.split(":");if(!s||a===void 0)break;const o=Fy(s.trim());t[o]=a.trim()}return t}const Vy=e=>e;let nv=null;function vu(e){nv=e}function Uy(e,t,n){var r=nv??ye,s=r.nodes,a,o,l,c=null;s.a??={element:e,measure(){a=this.element.getBoundingClientRect()},apply(){if(l?.abort(),o=this.element.getBoundingClientRect(),a.left!==o.left||a.right!==o.right||a.top!==o.top||a.bottom!==o.bottom){const u=t()(this.element,{from:a,to:o},n?.());l=Ja(this.element,u,void 0,1,()=>{l?.abort(),l=void 0})}},fix(){if(!e.getAnimations().length){var{position:u,width:d,height:f}=getComputedStyle(e);if(u!=="absolute"&&u!=="fixed"){var v=e.style;c={position:v.position,width:v.width,height:v.height,transform:v.transform},v.position="absolute",v.width=d,v.height=f;var m=e.getBoundingClientRect();if(a.left!==m.left||a.top!==m.top){var S=`translate(${a.left-m.left}px, ${a.top-m.top}px)`;v.transform=v.transform?`${v.transform} ${S}`:S}}}},unfix(){if(c){var u=e.style;u.position=c.position,u.width=c.width,u.height=c.height,u.transform=c.transform}}},s.a.element=e}function Hy(e,t,n,r){var s=(e&qm)!==0,a=(e&Bm)!==0,o=s&&a,l=(e&Fm)!==0,c=o?"both":s?"in":"out",u,d=t.inert,f=t.style.overflow,v,m;function S(){return nr(()=>u??=n()(t,r?.()??{},{direction:c}))}var g={is_global:l,in(){if(t.inert=d,!s){m?.abort(),m?.reset?.();return}a||v?.abort(),v=Ja(t,S(),m,1,()=>{Ga(t,"introend"),v?.abort(),v=u=void 0,t.style.overflow=f})},out(y){if(!a){y?.(),u=void 0;return}t.inert=!0,m=Ja(t,S(),v,0,()=>{Ga(t,"outroend"),y?.()})},stop:()=>{v?.abort(),m?.abort()}},b=ye;if((b.nodes.t??=[]).push(g),s&&Xa){var A=l;if(!A){for(var k=b.parent;k&&k.f&bn;)for(;(k=k.parent)&&!(k.f&fn););A=!k||(k.f&Un)!==0}A&&Bt(()=>{Se(()=>g.in())})}}function Ja(e,t,n,r,s){var a=r===1;if(Mr(t)){var o,l=!1;return wt(()=>{if(!l){var b=t({direction:a?"in":"out"});o=Ja(e,b,n,r,s)}}),{abort:()=>{l=!0,o?.abort()},deactivate:()=>o.deactivate(),reset:()=>o.reset(),t:()=>o.t()}}if(n?.deactivate(),!t?.duration&&!t?.delay)return Ga(e,a?"introstart":"outrostart"),s(),{abort:jt,deactivate:jt,reset:jt,t:()=>r};const{delay:c=0,css:u,tick:d,easing:f=Vy}=t;var v=[];if(a&&n===void 0&&(d&&d(0,1),u)){var m=fu(u(0,1));v.push(m,m)}var S=()=>1-r,g=e.animate(v,{duration:c,fill:"forwards"});return g.onfinish=()=>{g.cancel(),Ga(e,a?"introstart":"outrostart");var b=n?.t()??1-r;n?.abort();var A=r-b,k=t.duration*Math.abs(A),y=[];if(k>0){var C=!1;if(u)for(var I=Math.ceil(k/16.666666666666668),P=0;P<=I;P+=1){var L=b+A*f(P/I),T=fu(u(L,1-L));y.push(T),C||=T.overflow==="hidden"}C&&(e.style.overflow="hidden"),S=()=>{var M=g.currentTime;return b+A*f(M/k)},d&&By(()=>{if(g.playState!=="running")return!1;var M=S();return d(M,1-M),!0})}g=e.animate(y,{duration:k,fill:"forwards"}),g.onfinish=()=>{S=()=>r,d?.(r,1-r),s()}},{abort:()=>{g&&(g.cancel(),g.effect=null,g.onfinish=jt)},deactivate:()=>{s=jt},reset:()=>{r===0&&d?.(1,0)},t:()=>S()}}function Ky(e,t,n,r,s,a){let o=ue;ue&&xt();var l=null;ue&&ge.nodeType===Vd&&(l=ge,xt());var c=ue?ge:e,u=ye,d=new cs(c,!1);Rn(()=>{const f=t()||null;var v=s?s():n||f==="svg"?Zs:void 0;if(f===null){d.ensure(null,null),Or(!0);return}return d.ensure(f,m=>{if(f){if(l=ue?l:tr(f,v),rt(l,l),r){ue&&sy(f)&&l.append(document.createComment(""));var S=ue?Ve(l):l.appendChild(ct());ue&&(S===null?qe(!1):ze(S)),vu(u),r(l,S),vu(null)}ye.nodes.end=l,m.before(l)}ue&&ze(m)}),Or(!0),()=>{f&&Or(!1)}},bn),Ft(()=>{Or(!0)}),o&&(qe(!0),ze(c))}function Wy(e,t){let n=null,r=ue;var s;if(ue){n=ge;for(var a=Ve(document.head);a!==null&&(a.nodeType!==Hn||a.data!==e);)a=qt(a);if(a===null)qe(!1);else{var o=qt(a);a.remove(),ze(o)}}ue||(s=document.head.appendChild(ct()));try{Rn(()=>t(s),Bd|er)}finally{r&&(qe(!0),ze(n))}}function Yy(e,t){Bt(()=>{var n=e.getRootNode(),r=n.host?n:n.head??n.ownerDocument.head;if(!r.querySelector("#"+t.hash)){const s=tr("style");s.id=t.hash,s.textContent=t.code,r.appendChild(s)}})}function rv(e,t,n){Bt(()=>{var r=Se(()=>t(e,n?.())||{});if(n&&r?.update){var s=!1,a={};Ze(()=>{var o=n();Kl(o),s&&Xd(a,o)&&(a=o,r.update(o))}),s=!0}if(r?.destroy)return()=>r.destroy()})}function Jl(e,t){var n=void 0,r;Rf(()=>{n!==(n=t())&&(r&&(nt(r),r=null),n&&(r=bt(()=>{Bt(()=>n(e))})))})}const Xy=/[&"<]/g;function Gy(e,t){const n=String(e??""),r=Xy;r.lastIndex=0;let s="",a=0;for(;r.test(n);){const o=r.lastIndex-1,l=n[o];s+=n.substring(a,o)+(l==="&"?"&":l==='"'?""":"<"),a=o+1}return s+n.substring(a)}function sv(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=sv(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function Jy(){for(var e,t,n=0,r="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=sv(e))&&(r&&(r+=" "),r+=t);return r}const hu={translate:new Map([[!0,"yes"],[!1,"no"]])};function Zy(e,t,n=!1){if(e==="hidden"&&t!=="until-found"&&(n=!0),t==null||!t&&n)return"";const r=Wm.call(hu,e)&&hu[e].get(t)||t,s=n?'=""':`="${Gy(r)}"`;return` ${e}${s}`}function av(e){return typeof e=="object"?Jy(e):e??""}const pu=[...`
|
|
7
|
-
\r\f \v\uFEFF`];function Qy(e,t,n){var r=e==null?"":""+e;if(t&&(r=r?r+" "+t:t),n){for(var s of Object.keys(n))if(n[s])r=r?r+" "+s:s;else if(r.length)for(var a=s.length,o=0;(o=r.indexOf(s,o))>=0;){var l=o+a;(o===0||pu.includes(r[o-1]))&&(l===r.length||pu.includes(r[l]))?r=(o===0?"":r.substring(0,o))+r.substring(l+1):o=l}}return r===""?null:r}function mu(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 co(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function $y(e,t){if(t){var n="",r,s;if(Array.isArray(t)?(r=t[0],s=t[1]):r=t,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var a=!1,o=0,l=!1,c=[];r&&c.push(...Object.keys(r).map(co)),s&&c.push(...Object.keys(s).map(co));var u=0,d=-1;const g=e.length;for(var f=0;f<g;f++){var v=e[f];if(l?v==="/"&&e[f-1]==="*"&&(l=!1):a?a===v&&(a=!1):v==="/"&&e[f+1]==="*"?l=!0:v==='"'||v==="'"?a=v:v==="("?o++:v===")"&&o--,!l&&a===!1&&o===0){if(v===":"&&d===-1)d=f;else if(v===";"||f===g-1){if(d!==-1){var m=co(e.substring(u,d).trim());if(!c.includes(m)){v!==";"&&f++;var S=e.substring(u,f).trim();n+=" "+S+";"}}u=f+1,d=-1}}}}return r&&(n+=mu(r)),s&&(n+=mu(s,!0)),n=n.trim(),n===""?null:n}return e==null?null:String(e)}function he(e,t,n,r,s,a){var o=e.__className;if(ue||o!==n||o===void 0){var l=Qy(n,r,a);(!ue||l!==e.getAttribute("class"))&&(l==null?e.removeAttribute("class"):t?e.className=l:e.setAttribute("class",l)),e.__className=n}else if(a&&s!==a)for(var c in a){var u=!!a[c];(s==null||u!==!!s[c])&&e.classList.toggle(c,u)}return a}function uo(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 Ye(e,t,n,r){var s=e.__style;if(ue||s!==t){var a=$y(t,r);(!ue||a!==e.getAttribute("style"))&&(a==null?e.removeAttribute("style"):e.style.cssText=a),e.__style=t}else r&&(Array.isArray(r)?(uo(e,n?.[0],r[0]),uo(e,n?.[1],r[1],"important")):uo(e,n,r));return r}function zs(e,t,n=!1){if(e.multiple){if(t==null)return;if(!as(t))return Rb();for(var r of e.options)r.selected=t.includes(As(r));return}for(r of e.options){var s=As(r);if(_f(s,t)){r.selected=!0;return}}(!n||t!==void 0)&&(e.selectedIndex=-1)}function Zl(e){var t=new MutationObserver(()=>{zs(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),Ft(()=>{t.disconnect()})}function js(e,t,n=t){var r=new WeakSet,s=!0;aa(e,"change",a=>{var o=a?"[selected]":":checked",l;if(e.multiple)l=[].map.call(e.querySelectorAll(o),As);else{var c=e.querySelector(o)??e.querySelector("option:not([disabled])");l=c&&As(c)}n(l),e.__value=l,we!==null&&r.add(we)}),Bt(()=>{var a=t();if(e===document.activeElement){var o=we;if(r.has(o))return}if(zs(e,a,s),s&&a===void 0){var l=e.querySelector(":checked");l!==null&&(a=As(l),n(a))}e.__value=a,s=!1}),Zl(e)}function As(e){return"__value"in e?e.__value:e.value}const Dr=Symbol("class"),zr=Symbol("style"),iv=Symbol("is custom element"),ov=Symbol("is html"),e_=Ir?"link":"LINK",t_=Ir?"input":"INPUT",n_=Ir?"option":"OPTION",r_=Ir?"select":"SELECT",s_=Ir?"progress":"PROGRESS";function xe(e){if(ue){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute("value")){var r=e.value;re(e,"value",null),e.value=r}if(e.hasAttribute("checked")){var s=e.checked;re(e,"checked",null),e.checked=s}}};e.__on_r=n,wt(n),Ef()}}function Os(e,t){var n=Ri(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==s_)||(e.value=t??"")}function Ql(e,t){var n=Ri(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function $l(e,t){t?e.hasAttribute("selected")||e.setAttribute("selected",""):e.removeAttribute("selected")}function a_(e,t){const n=e.checked;e.defaultChecked=t,e.checked=n}function i_(e,t){const n=e.value;e.defaultValue=t,e.value=n}function re(e,t,n,r){var s=Ri(e);ue&&(s[t]=e.getAttribute(t),t==="src"||t==="srcset"||t==="href"&&e.nodeName===e_)||s[t]!==(s[t]=n)&&(t==="loading"&&(e[Jm]=n),n==null?e.removeAttribute(t):typeof n!="string"&&ec(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function o_(e,t,n){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n)}function l_(e,t,n){var r=Ae,s=ye;let a=ue;ue&&qe(!1),Lt(null),mt(null);try{t!=="style"&&(Wo.has(e.getAttribute("is")||e.nodeName)||!customElements||customElements.get(e.getAttribute("is")||e.nodeName.toLowerCase())?ec(e).includes(t):n&&typeof n=="object")?e[t]=n:re(e,t,n==null?n:String(n))}finally{Lt(r),mt(s),a&&qe(!0)}}function c_(e,t,n,r,s=!1,a=!1){if(ue&&s&&e.nodeName===t_){var o=e,l=o.type==="checkbox"?"defaultChecked":"defaultValue";l in n||xe(o)}var c=Ri(e),u=c[iv],d=!c[ov];let f=ue&&u;f&&qe(!1);var v=t||{},m=e.nodeName===n_;for(var S in t)S in n||(n[S]=null);n.class?n.class=av(n.class):(r||n[Dr])&&(n.class=null),n[zr]&&(n.style??=null);var g=ec(e);for(const L in n){let T=n[L];if(m&&L==="value"&&T==null){e.value=e.__value="",v[L]=T;continue}if(L==="class"){var b=e.namespaceURI==="http://www.w3.org/1999/xhtml";he(e,b,T,r,t?.[Dr],n[Dr]),v[L]=T,v[Dr]=n[Dr];continue}if(L==="style"){Ye(e,T,t?.[zr],n[zr]),v[L]=T,v[zr]=n[zr];continue}var A=v[L];if(!(T===A&&!(T===void 0&&e.hasAttribute(L)))){v[L]=T;var k=L[0]+L[1];if(k!=="$$")if(k==="on"){const M={},N="$$"+L;let R=L.slice(2);var y=Qg(R);if(Jg(R)&&(R=R.slice(0,-7),M.capture=!0),!y&&A){if(T!=null)continue;e.removeEventListener(R,v[N],M),v[N]=null}if(y)K(R,e,T),pe([R]);else if(T!=null){let D=function(j){v[L].call(this,j)};var P=D;v[N]=Uf(R,e,D,M)}}else if(L==="style")re(e,L,T);else if(L==="autofocus")sa(e,!!T);else if(!u&&(L==="__value"||L==="value"&&T!=null))e.value=e.__value=T;else if(L==="selected"&&m)$l(e,T);else{var C=L;d||(C=ey(C));var I=C==="defaultValue"||C==="defaultChecked";if(T==null&&!u&&!I)if(c[L]=null,C==="value"||C==="checked"){let M=e;const N=t===void 0;if(C==="value"){let R=M.defaultValue;M.removeAttribute(C),M.defaultValue=R,M.value=M.__value=N?R:null}else{let R=M.defaultChecked;M.removeAttribute(C),M.defaultChecked=R,M.checked=N?R:!1}}else e.removeAttribute(L);else I||g.includes(C)&&(u||typeof T!="string")?(e[C]=T,C in c&&(c[C]=Fe)):typeof T!="function"&&re(e,C,T)}}}return f&&qe(!0),v}function u_(e,t,n=[],r=[],s=[],a,o=!1,l=!1){ta(s,n,r,c=>{var u=void 0,d={},f=e.nodeName===r_,v=!1;if(Rf(()=>{var S=t(...c.map(i)),g=c_(e,u,S,a,o,l);v&&f&&"value"in S&&zs(e,S.value);for(let A of Object.getOwnPropertySymbols(d))S[A]||nt(d[A]);for(let A of Object.getOwnPropertySymbols(S)){var b=S[A];A.description===Dd&&(!u||b!==u[A])&&(d[A]&&nt(d[A]),d[A]=bt(()=>Jl(e,()=>b))),g[A]=b}u=g}),f){var m=e;Bt(()=>{zs(m,u.value,!0),Zl(m)})}v=!0})}function Ri(e){return e.__attributes??={[iv]:e.nodeName.includes("-"),[ov]:e.namespaceURI===Pd}}var Wo=new Map;function ec(e){var t=e.getAttribute("is")||e.nodeName,n=Wo.get(t);if(n)return n;Wo.set(t,n=[]);for(var r,s=e,a=Element.prototype;a!==s;){r=jd(s);for(var o in r)r[o].set&&n.push(o);s=xi(s)}return n}let fo=null;function lv(){if(fo===null){var e=tr("select");e.innerHTML=Hf("<option><span>t</span></option>"),fo=e.firstChild?.firstChild?.nodeType===1}return fo}function d_(e,t){lv()&&Jl(e,()=>()=>{const n=e.closest("select");if(!n)return;const r=new MutationObserver(s=>{var a=!1;for(const o of s){if(o.target===e)return;a||=!!o.target.parentElement?.closest("option")?.selected}a&&(e.replaceWith(e=e.cloneNode(!0)),t(e))});return r.observe(n,{childList:!0,characterData:!0,subtree:!0}),()=>{r.disconnect()}})}function f_(e,t){var n=ue;lv()||(qe(!1),e.textContent="",e.append(If("")));try{t()}finally{n&&(ue?h(e):(qe(!0),ze(e)))}}function v_(e){Mt(document,["focusin","focusout"],t=>{t&&t.type==="focusout"&&t.relatedTarget||e(document.activeElement)})}function Te(e,t,n=t){var r=new WeakSet;aa(e,"input",async s=>{var a=s?e.defaultValue:e.value;if(a=ho(e)?po(a):a,n(a),we!==null&&r.add(we),await oa(),a!==(a=t())){var o=e.selectionStart,l=e.selectionEnd,c=e.value.length;if(e.value=a??"",l!==null){var u=e.value.length;o===l&&l===c&&u>c?(e.selectionStart=u,e.selectionEnd=u):(e.selectionStart=o,e.selectionEnd=Math.min(l,u))}}}),(ue&&e.defaultValue!==e.value||Se(t)==null&&e.value)&&(n(ho(e)?po(e.value):e.value),we!==null&&r.add(we)),Ze(()=>{var s=t();if(e===document.activeElement){var a=we;if(r.has(a))return}ho(e)&&s===po(e.value)||e.type==="date"&&!s&&!e.value||s!==e.value&&(e.value=s??"")})}const vo=new Set;function h_(e,t,n,r,s=r){var a=n.getAttribute("type")==="checkbox",o=e;let l=!1;if(t!==null)for(var c of t)o=o[c]??=[];o.push(n),aa(n,"change",()=>{var u=n.__value;a&&(u=bu(o,u,n.checked)),s(u)},()=>s(a?[]:null)),Ze(()=>{var u=r();if(ue&&n.defaultChecked!==n.checked){l=!0;return}a?(u=u||[],n.checked=u.includes(n.__value)):n.checked=_f(n.__value,u)}),Ft(()=>{var u=o.indexOf(n);u!==-1&&o.splice(u,1)}),vo.has(o)||(vo.add(o),wt(()=>{o.sort((u,d)=>u.compareDocumentPosition(d)===4?-1:1),vo.delete(o)})),wt(()=>{if(l){var u;if(a)u=bu(o,u,n.checked);else{var d=o.find(f=>f.checked);u=d?.__value}s(u)}})}function Cs(e,t,n=t){aa(e,"change",r=>{var s=r?e.defaultChecked:e.checked;n(s)}),(ue&&e.defaultChecked!==e.checked||Se(t)==null)&&n(e.checked),Ze(()=>{var r=t();e.checked=!!r})}function bu(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 ho(e){var t=e.type;return t==="number"||t==="range"}function po(e){return e===""?null:+e}function p_(e,t,n=t){aa(e,"change",()=>{n(e.files)}),ue&&e.files&&n(e.files),Ze(()=>{e.files=t()})}function tc(e){for(var t=[],n=0;n<e.length;n+=1)t.push({start:e.start(n),end:e.end(n)});return t}function m_(e,t,n=t){var r,s,a=()=>{cancelAnimationFrame(r),e.paused||(r=requestAnimationFrame(a));var o=e.currentTime;s!==o&&n(s=o)};r=requestAnimationFrame(a),e.addEventListener("timeupdate",a),Ze(()=>{var o=Number(t());s!==o&&!isNaN(o)&&(e.currentTime=s=o)}),Ft(()=>{cancelAnimationFrame(r),e.removeEventListener("timeupdate",a)})}function b_(e,t){var n;Mt(e,["loadedmetadata","progress","timeupdate","seeking"],()=>{var r=e.buffered;(!n||n.length!==r.length||n.some((s,a)=>r.start(a)!==s.start||r.end(a)!==s.end))&&(n=tc(r),t(n))})}function g_(e,t){Mt(e,["loadedmetadata"],()=>t(tc(e.seekable)))}function y_(e,t){Mt(e,["timeupdate"],()=>t(tc(e.played)))}function __(e,t){Mt(e,["seeking","seeked"],()=>t(e.seeking))}function w_(e,t){Mt(e,["timeupdate","ended"],()=>t(e.ended))}function k_(e,t){Mt(e,["loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","emptied"],()=>t(e.readyState))}function x_(e,t,n=t){Bt(()=>{var r=Number(t());r!==e.playbackRate&&!isNaN(r)&&(e.playbackRate=r)}),Bt(()=>{Mt(e,["ratechange"],()=>{n(e.playbackRate)})})}function S_(e,t,n=t){var r=t(),s=()=>{r!==e.paused&&n(r=e.paused)};Mt(e,["play","pause","canplay"],s,r==null),Bt(()=>{(r=!!t())!==e.paused&&(r?e.pause():e.play().catch(a=>{throw n(r=!0),a}))})}function I_(e,t,n=t){var r=()=>{n(e.volume)};t()==null&&r(),Mt(e,["volumechange"],r,!1),Ze(()=>{var s=Number(t());s!==e.volume&&!isNaN(s)&&(e.volume=s)})}function E_(e,t,n=t){var r=()=>{n(e.muted)};t()==null&&r(),Mt(e,["volumechange"],r,!1),Ze(()=>{var s=!!t();e.muted!==s&&(e.muted=s)})}function A_(e){Mt(window,["online","offline"],()=>{e(navigator.onLine)})}function C_(e,t,n){var r=dn(e,t);r&&r.set&&(e[t]=n,Ft(()=>{e[t]=null}))}class ca{#e=new WeakMap;#t;#n;static entries=new WeakMap;constructor(t){this.#n=t}observe(t,n){var r=this.#e.get(t)||new Set;return r.add(n),this.#e.set(t,r),this.#s().observe(t,this.#n),()=>{var s=this.#e.get(t);s.delete(n),s.size===0&&(this.#e.delete(t),this.#t.unobserve(t))}}#s(){return this.#t??(this.#t=new ResizeObserver(t=>{for(var n of t){ca.entries.set(n.target,n);for(var r of this.#e.get(n.target)||[])r(n)}}))}}var T_=new ca({box:"content-box"}),cv=new ca({box:"border-box"}),R_=new ca({box:"device-pixel-content-box"});function L_(e,t,n){var r=t==="contentRect"||t==="contentBoxSize"?T_:t==="borderBoxSize"?cv:R_,s=r.observe(e,a=>n(a[t]));Ft(s)}function M_(e,t,n){var r=cv.observe(e,()=>n(e[t]));Bt(()=>(Se(()=>n(e[t])),r))}function gu(e,t){return e===t||e?.[ht]===t}function Ne(e={},t,n,r){var s=Le.r,a=ye;return Bt(()=>{var o,l;return Ze(()=>{o=l,l=r?.()||[],Se(()=>{e!==n(...l)&&(t(e,...l),o&&gu(n(...o),e)&&t(null,...o))})}),()=>{let c=a;for(;c!==s&&c.parent!==null&&c.parent.f&Po;)c=c.parent;const u=()=>{l&&gu(n(...l),e)&&t(null,...l)},d=c.teardown;c.teardown=()=>{u(),d?.()}}}),e}function P_(e,t,n,r=n){t.addEventListener("input",()=>{r(t[e])}),Ze(()=>{var s=n();if(t[e]!==s)if(s==null){var a=t[e];r(a)}else t[e]=s+""})}function D_(e,t,n,r,s){var a=()=>{r(n[e])};n.addEventListener(t,a),s?Ze(()=>{n[e]=s()}):a(),(n===document.body||n===window||n===document)&&Ft(()=>{n.removeEventListener(t,a)})}function z_(e,t){Mt(e,["focus","blur"],()=>{t(e===document.activeElement)})}function j_(e,t,n=t){var r=e==="x",s=()=>nr(()=>{a=!0,clearTimeout(o),o=setTimeout(l,100),n(window[r?"scrollX":"scrollY"])});addEventListener("scroll",s,{passive:!0});var a=!1,o,l=()=>{a=!1},c=!0;Ze(()=>{var u=t();c?c=!1:!a&&u!=null&&(a=!0,clearTimeout(o),r?scrollTo(u,window.scrollY):scrollTo(window.scrollX,u),o=setTimeout(l,100))}),Bt(s),Ft(()=>{removeEventListener("scroll",s)})}function O_(e,t){Mt(window,["resize"],()=>nr(()=>t(window[e])))}function N_(e){return function(...t){var n=t[0];n.isTrusted&&e?.apply(this,t)}}function q_(e){return function(...t){var n=t[0];n.target===this&&e?.apply(this,t)}}function B_(e){return function(...t){var n=t[0];return n.stopPropagation(),e?.apply(this,t)}}function F_(e){var t=!1;return function(...n){if(!t)return t=!0,e?.apply(this,n)}}function V_(e){return function(...t){var n=t[0];return n.stopImmediatePropagation(),e?.apply(this,t)}}function U_(e){return function(...t){var n=t[0];return n.preventDefault(),e?.apply(this,t)}}function H_(e=!1){const t=Le,n=t.l.u;if(!n)return;let r=()=>Kl(t.s);if(e){let s=0,a={};const o=ra(()=>{let l=!1;const c=t.s;for(const u in c)c[u]!==a[u]&&(a[u]=c[u],l=!0);return l&&s++,s});r=()=>i(o)}n.b.length&&Cf(()=>{yu(t,r),Lo(n.b)}),Ie(()=>{const s=Se(()=>n.m.map(Ym));return()=>{for(const a of s)typeof a=="function"&&a()}}),n.a.length&&Ie(()=>{yu(t,r),Lo(n.a)})}function yu(e,t){if(e.l.s)for(const n of e.l.s)i(n);t()}function K_(e){var t=Rt(0);return function(){return arguments.length===1?(w(t,i(t)+1),arguments[0]):(i(t),e())}}function W_(e,t){var n=e.$$events?.[t.type],r=as(n)?n.slice():n==null?[]:[n];for(var s of r)s.call(this,t)}function Y_(e,t,n){e.$$events||={},e.$$events[t]||=[],e.$$events[t].push(n)}function X_(e){for(var t in e)t in this&&(this[t]=e[t])}function G_(e,t=1){const n=e();return e(n+t),n}function J_(e,t=1){const n=e()+t;return e(n),n}const Z_={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 Q_(e,t,n){return new Proxy({props:e,exclude:t},Z_)}const $_={get(e,t){if(!e.exclude.includes(t))return i(e.version),t in e.special?e.special[t]():e.props[t]},set(e,t,n){if(!(t in e.special)){var r=ye;try{mt(e.parent_effect),e.special[t]=te({get[t](){return e.props[t]}},t,Ld)}finally{mt(r)}}return e.special[t](n),gr(e.version),!0},getOwnPropertyDescriptor(e,t){if(!e.exclude.includes(t)&&t in e.props)return{enumerable:!0,configurable:!0,value:e.props[t]}},deleteProperty(e,t){return e.exclude.includes(t)||(e.exclude.push(t),gr(e.version)),!0},has(e,t){return e.exclude.includes(t)?!1:t in e.props},ownKeys(e){return Reflect.ownKeys(e.props).filter(t=>!e.exclude.includes(t))}};function ew(e,t){return new Proxy({props:e,exclude:t,special:{},version:Rt(0),parent_effect:ye},$_)}const tw={get(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(Mr(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r)return r[t]}},set(e,t,n){let r=e.props.length;for(;r--;){let s=e.props[r];Mr(s)&&(s=s());const a=dn(s,t);if(a&&a.set)return a.set(n),!0}return!1},getOwnPropertyDescriptor(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(Mr(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r){const s=dn(r,t);return s&&!s.configurable&&(s.configurable=!0),s}}},has(e,t){if(t===ht||t===Si)return!1;for(let n of e.props)if(Mr(n)&&(n=n()),n!=null&&t in n)return!0;return!1},ownKeys(e){const t=[];for(let n of e.props)if(Mr(n)&&(n=n()),!!n){for(const r in n)t.includes(r)||t.push(r);for(const r of Object.getOwnPropertySymbols(n))t.includes(r)||t.push(r)}return t}};function ua(...e){return new Proxy({props:e},tw)}function te(e,t,n,r){var s=(n&Om)!==0,a=(n&Nm)!==0,o=r,l=!0,c=()=>(l&&(l=!1,o=a?Se(r):r),o);let u;if(s){var d=ht in e||Si in e;u=dn(e,t)?.set??(d&&t in e?k=>e[t]=k:void 0)}var f,v=!1;s?[f,v]=of(()=>e[t]):f=e[t],f===void 0&&r!==void 0&&(f=c(),u&&(bb(),u(f)));var m;if(m=()=>{var k=e[t];return k===void 0?c():(l=!0,k)},!(n&Ld))return m;if(u){var S=e.$$legacy;return function(k,y){return arguments.length>0?((!y||S||v)&&u(y?m():k),k):m()}}var g=!1,b=(n&jm?ra:jl)(()=>(g=!1,m()));s&&i(b);var A=ye;return function(k,y){if(arguments.length>0){const C=y?i(b):s?ve(k):k;return w(b,C),g=!0,o!==void 0&&(o=C),k}return Fn&&g||A.f&Ct?b.v:i(b)}}function nw(e,t,n,r,s,a){vf(t,()=>{var o=!1;Rl?.[zt],Ze(()=>{if(!o){var[l,c]=of(n);if(!c){var u=r(),d=!1,f=Ze(()=>{d||l[u]});d=!0,f.deps===null&&(xb(),o=!0)}}})})}function rw(e){return new sw(e)}class sw{#e;#t;constructor(t){var n=new Map,r=(a,o)=>{var l=Ci(o,!1,!1);return n.set(a,l),l};const s=new Proxy({...t.props||{},$$events:{}},{get(a,o){return i(n.get(o)??r(o,Reflect.get(a,o)))},has(a,o){return o===Si?!0:(i(n.get(o)??r(o,Reflect.get(a,o))),Reflect.has(a,o))},set(a,o,l){return w(n.get(o)??r(o,l),l),Reflect.set(a,o,l)}});this.#t=(t.hydrate?Xf:We)(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)&&Zn(),this.#e=s.$$events;for(const a of Object.keys(this.#t))a==="$set"||a==="$destroy"||a==="$on"||fr(this,a,{get(){return this.#t[a]},set(o){this.#t[a]=o},enumerable:!0});this.#t.$set=a=>{Object.assign(s,a)},this.#t.$destroy=()=>{tt(this.#t)}}$set(t){this.#t.$set(t)}$on(t,n){this.#e[t]=this.#e[t]||[];const r=(...s)=>n.call(this,...s);return this.#e[t].push(r),()=>{this.#e[t]=this.#e[t].filter(s=>s!==r)}}$destroy(){this.#t.$destroy()}}let uv;typeof HTMLElement=="function"&&(uv=class extends HTMLElement{$$ctor;$$s;$$c;$$cn=!1;$$d={};$$r=!1;$$p_d={};$$l={};$$l_u=new Map;$$me;$$shadowRoot=null;constructor(e,t,n){super(),this.$$ctor=e,this.$$s=t,n&&(this.$$shadowRoot=this.attachShadow(n))}addEventListener(e,t,n){if(this.$$l[e]=this.$$l[e]||[],this.$$l[e].push(t),this.$$c){const r=this.$$c.$on(e,t);this.$$l_u.set(t,r)}super.addEventListener(e,t,n)}removeEventListener(e,t,n){if(super.removeEventListener(e,t,n),this.$$c){const r=this.$$l_u.get(t);r&&(r(),this.$$l_u.delete(t))}}async connectedCallback(){if(this.$$cn=!0,!this.$$c){let t=function(s){return a=>{const o=tr("slot");s!=="default"&&(o.name=s),x(a,o)}};var e=t;if(await Promise.resolve(),!this.$$cn||this.$$c)return;const n={},r=aw(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]=Da(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=rw({component:this.$$ctor,target:this.$$shadowRoot||this,props:{...this.$$d,$$slots:n,$$host:this}}),this.$$me=os(()=>{Ze(()=>{this.$$r=!0;for(const s of Ua(this.$$c)){if(!this.$$p_d[s]?.reflect)continue;this.$$d[s]=this.$$c[s];const a=Da(s,this.$$d[s],this.$$p_d,"toAttribute");a==null?this.removeAttribute(this.$$p_d[s].attribute||s):this.setAttribute(this.$$p_d[s].attribute||s,a)}this.$$r=!1})});for(const s in this.$$l)for(const a of this.$$l[s]){const o=this.$$c.$on(s,a);this.$$l_u.set(a,o)}this.$$l={}}}attributeChangedCallback(e,t,n){this.$$r||(e=this.$$g_p(e),this.$$d[e]=Da(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 Ua(this.$$p_d).find(t=>this.$$p_d[t].attribute===e||!this.$$p_d[t].attribute&&t.toLowerCase()===e)||e}});function Da(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 aw(e){const t={};return e.childNodes.forEach(n=>{t[n.slot||"default"]=!0}),t}function iw(e,t,n,r,s,a){let o=class extends uv{constructor(){super(e,n,s),this.$$p_d=t}static get observedAttributes(){return Ua(t).map(l=>(t[l].attribute||l).toLowerCase())}};return Ua(t).forEach(l=>{fr(o.prototype,l,{get(){return this.$$c&&l in this.$$c?this.$$c[l]:this.$$d[l]},set(c){c=Da(l,c,t),this.$$d[l]=c;var u=this.$$c;if(u){var d=dn(u,l)?.get;d?u[l]=c:u.$set({[l]:c})}}})}),r.forEach(l=>{fr(o.prototype,l,{get(){return this.$$c?.[l]}})}),a&&(o=a(o)),e.element=o,o}function ow(e,...t){return Se(()=>{try{let n=!1;const r=[];for(const s of t)s&&typeof s=="object"&&ht in s?(r.push(mr(s,!0)),n=!0):r.push(s);n&&(Sb(e),console.log("%c[snapshot]","color: grey",...r))}catch{}}),t}const dv=Object.freeze(Object.defineProperty({__proto__:null,CLASS:Dr,FILENAME:zt,HMR:Lr,NAMESPACE_SVG:Zs,STYLE:zr,aborted:Fo,action:rv,get active_effect(){return ye},add_legacy_event_listener:Y_,add_locations:yy,add_svelte_meta:Fb,animation:Uy,append:x,append_styles:Yy,apply:qg,assign:my,assign_async:by,async:Ey,async_derived:hf,attach:Jl,attachment:py,attr:Zy,attribute_effect:u_,autofocus:sa,await:Ty,bind_active_element:v_,bind_buffered:b_,bind_checked:Cs,bind_content_editable:P_,bind_current_time:m_,bind_element_size:M_,bind_ended:w_,bind_files:p_,bind_focused:z_,bind_group:h_,bind_muted:E_,bind_online:A_,bind_paused:S_,bind_playback_rate:x_,bind_played:y_,bind_prop:C_,bind_property:D_,bind_ready_state:k_,bind_resize_observer:L_,bind_seekable:g_,bind_seeking:__,bind_select_value:js,bind_this:Ne,bind_value:Te,bind_volume:I_,bind_window_scroll:j_,bind_window_size:O_,boundary:ff,bubble_event:W_,check_target:xy,child:p,cleanup_styles:gy,clsx:av,comment:Me,component:la,create_custom_element:iw,create_ownership_validator:ky,css_props:My,customizable_select:f_,deep_read:Ya,deep_read_state:Kl,deferred_template_effect:Tg,delegate:pe,delegated:K,derived:F,derived_safe_equal:jl,get document(){return wf},each:me,eager:ag,effect:Bt,effect_root:os,effect_tracking:ia,element:Ky,equals:wg,event:Ue,exclude_from_object:Gm,fallback:Xm,first_child:fe,flush:Zn,for_await_track_reactivity_loss:fg,from_html:E,from_mathml:Ug,from_svg:Yl,from_tree:Hg,get:i,head:Wy,hmr:wy,html:jy,hydrate_template:Mb,if:W,index:ut,init:H_,init_select:Zl,inspect:Iy,invalid_default_snippet:$m,invalidate_inner_signals:Mg,invalidate_store:Jb,invoke_error_boundary:En,key:Ly,legacy_api:Sy,legacy_pre_effect:Eg,legacy_pre_effect_reset:Ag,legacy_rest_props:ew,log_if_contains_state:ow,mark_store_binding:tg,mutable_source:Ci,mutate:gg,next:_t,noop:jt,once:F_,pending:ug,pop:ie,preventDefault:U_,prevent_snippet_stringification:Jf,prop:te,props_id:Yg,proxy:ve,push:ae,raf:Sn,reactive_import:K_,remove_input_defaults:xe,remove_textarea_child:Bl,render_effect:Ze,replay_events:Ng,reset:h,rest_props:Q_,run:vg,run_after_blockers:vf,safe_get:jg,sanitize_slots:Ny,save:dg,select_option:zs,selectedcontent:d_,self:q_,set:w,set_attribute:re,set_checked:Ql,set_class:he,set_custom_element_data:l_,set_default_checked:a_,set_default_value:i_,set_selected:$l,set_style:Ye,set_text:z,set_value:Os,set_xlink_attribute:o_,setup_stores:Zb,sibling:_,slot:Oy,snapshot:mr,snippet:en,spread_props:ua,state:V,stopImmediatePropagation:V_,stopPropagation:B_,store_get:Xb,store_mutate:Qb,store_set:af,store_unsub:Gb,strict_equals:_g,tag:Nb,tag_proxy:Zd,template_effect:q,text:vn,tick:oa,to_array:qd,trace:Ob,track_reactivity_loss:No,transition:Hy,trusted:N_,untrack:Se,update:gr,update_legacy_props:X_,update_pre:yg,update_pre_prop:J_,update_pre_store:eg,update_prop:G_,update_store:$b,user_effect:Ie,user_pre_effect:Cf,validate_binding:nw,validate_dynamic_element_tag:iy,validate_snippet_args:Ay,validate_store:oy,validate_void_dynamic_element:ay,wait:hg,get window(){return qo},with_script:Kg,wrap_snippet:ly},Symbol.toStringTag,{value:"Module"}));class Yo{#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 _u{#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 lw=["workspace","user"],Ns="state:manage",gn={ephemeral:new Yo,session:new Yo,workspace:new _u("sh3:workspace:"),user:new _u("sh3:user:")},mo=new Map;let bo=!1;function cw(e,t,n){mo.set(`${e}:${t}`,{zone:e,shardId:t,value:n}),!bo&&(bo=!0,queueMicrotask(()=>{bo=!1;for(const{zone:r,shardId:s,value:a}of mo.values())gn[r].write(s,a);mo.clear()}))}function Li(e,t){const n={};for(const r of Object.keys(t)){const s=t[r],o=gn[r].read(e),l={...s,...o??{}},c=ve(l);n[r]=c,lw.includes(r)&&os(()=>{let u=!0;Ie(()=>{const d=mr(c);if(u){u=!1;return}cw(r,e,d)})})}return n}function go(e,t){gn[e]=t}function uw(e,t){return gn[e].read(t)}function Xo(e,t){gn[e].delete(t)}const dw="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(dw);const fw=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function vw(e,t={}){const n=document.activeElement;function r(){return Array.from(e.querySelectorAll(fw))}function s(a){if(a.key!=="Tab")return;const o=r();if(o.length===0){a.preventDefault();return}const l=o[0],c=o[o.length-1],u=document.activeElement;a.shiftKey&&(u===l||!e.contains(u))?(a.preventDefault(),c.focus()):!a.shiftKey&&(u===c||!e.contains(u))&&(a.preventDefault(),l.focus())}return e.addEventListener("keydown",s),t.initialFocus!==!1&&queueMicrotask(()=>{(r()[0]??e).focus()}),()=>{e.removeEventListener("keydown",s),n&&document.contains(n)&&n.focus()}}var hw=E('<div class="modal-frame svelte-2tcvcm" role="presentation"><div class="modal-box svelte-2tcvcm" role="dialog" aria-modal="true" tabindex="-1"><!></div></div>');function pw(e,t){ae(t,!0);let n=te(t,"initialFocus",3,!0),r;Ie(()=>{if(r)return vw(r,{initialFocus:n()})});function s(c){t.onBackdropClick&&c.target===c.currentTarget&&t.onBackdropClick()}var a=hw(),o=p(a),l=p(o);la(l,()=>t.Content,(c,u)=>{u(c,ua(()=>t.contentProps,{get close(){return t.close}}))}),h(o),Ne(o,c=>r=c,()=>r),h(a),q(()=>Ye(o,t.boxStyle)),K("click",a,s),x(e,a),ie()}pe(["click"]);const nc={};function mw(e,t){nc[e]=t}function bw(e){delete nc[e]}function Mi(e){const t=nc[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 Qn=ve(new Map),vt=ve({id:null}),Jr=ve({id:null});function gw(){return Jr.id}function qs(e){Qn.set(e.manifest.id,e)}function us(){return Array.from(Qn.values()).map(e=>e.manifest)}function rc(){const e=vt.id;return e?Qn.get(e)?.manifest??null:null}function yn(e){return Qn.get(e)}const Ts=[],Fr=[];let Bs=null;function yw(e){Bs=e}function _w(e){if(!vt.id)throw new Error("pushNavEntry requires an active app");const t=Symbol("nav-entry");return Fr.push({id:t,label:e.label,onPop:e.onPop}),{remove(){const n=Fr.findIndex(r=>r.id===t);n>=0&&Fr.splice(n,1)}}}function fv(e){const t=Symbol("dismissable");return Ts.push({id:t,dismiss:e}),{unregister(){const n=Ts.findIndex(r=>r.id===t);n>=0&&Ts.splice(n,1)}}}function vv(){Fr.length=0}function ww(){if(Ts.length>0){Ts.pop().dismiss();return}if(Fr.length>0){Fr.pop().onPop();return}vt.id&&Bs&&Bs.returnToHome()}function kw(){vt.id||Jr.id&&Bs&&Bs.launchApp(Jr.id)}const Nt=[];let Za=!1,Kt=null;const xw=.5;function hv(){const e=Mi("modal");if(Nt.length===0){Kt&&(Kt.remove(),Kt=null);return}Kt||(Kt=document.createElement("div"),Kt.className="sh3-modal-backdrop",Kt.style.position="absolute",Kt.style.inset="0",Kt.style.pointerEvents="auto",Kt.style.transition="background-color 120ms ease",Kt.style.background=`rgba(0, 0, 0, ${xw})`);const t=Nt[Nt.length-1].host;e.insertBefore(Kt,t)}function pv(e){e.key==="Escape"&&Nt.length!==0&&(e.stopPropagation(),e.preventDefault(),Nt[Nt.length-1].handle.close())}function Sw(){Za||(Za=!0,document.addEventListener("keydown",pv,!0))}function Iw(){Nt.length>0||Za&&(Za=!1,document.removeEventListener("keydown",pv,!0))}function mv(e){const t=Nt.indexOf(e);t<0||(Nt.splice(t,1),tt(e.frame),e.host.remove(),hv(),Iw())}function Ew(e,t,n){const r=Mi("modal"),s=document.createElement("div");s.className="sh3-modal-host",s.dataset.sh3OverlayHost="modal",s.style.position="absolute",s.style.inset="0",s.style.pointerEvents="auto",r.appendChild(s);const a={},o={close:()=>mv(a)},l=fv(()=>o.close()),c=o.close;o.close=()=>{l.unregister(),c()};const u=We(pw,{target:s,props:{Content:e,contentProps:t??{},close:o.close,boxStyle:n?.boxStyle,onBackdropClick:n?.dismissOnBackdrop?o.close:void 0,initialFocus:n?.initialFocus}});return a.host=s,a.frame=u,a.handle=o,Nt.push(a),hv(),Sw(),o}function Aw(){for(;Nt.length>0;)mv(Nt[Nt.length-1])}const nn={open:Ew,closeAll:Aw},Xn=new Map;function da(e,t){const n=Xn.get(e);return!n||n.priority==="edge"&&t.priority==="normal"||t.priority===n.priority&&t.depth>n.depth?(Xn.set(e,t),!0):!1}function _r(e,t){Xn.get(e)?.ownerId===t&&Xn.delete(e)}function bv(e){return Xn.get(e)??null}function Cw(e,t){return Xn.get(e)?.ownerId===t}let Tw=0;function Rw(){return`sh3:gesture:${Tw++}`}function Lw(e){let t=0,n=e;for(;n;)t++,n=n.parentElement;return t}function wu(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 yo(e,t){return e.length!==t.length?!1:e.every(n=>t.includes(n))}function Mw(e){if(!e)return{register:()=>({enable(){},disable(){},destroy(){}}),destroy(){}};const t=[],n=new Map;function r(c){if(!c.isPrimary)return;const u=wu(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||!yo(f.modifiers??[],u))continue;const m=f.container??e;if(!m||!m.contains(c.target))continue;const S=Lw(m);if(!da(c.pointerId,{ownerId:d.id,axis:f.axis??"xy",priority:"normal",depth:S}))continue;n.set(c.pointerId,{handlerId:d.id,startX:c.clientX,startY:c.clientY,lastX:c.clientX,lastY:c.clientY});const b={pointerId:c.pointerId,x:c.clientX,y:c.clientY,dx:0,dy:0};f.onStart(b),document.addEventListener("pointermove",s),document.addEventListener("pointerup",a),document.addEventListener("pointercancel",o);return}if(d.opts.type==="button"){const f=d.opts;if(c.button!==f.button||!yo(f.modifiers??[],u))continue;const v=f.container??e;if(!v||!v.contains(c.target))continue;const m=f.on??"down";(m==="down"||m==="both")&&f.onButton({button:c.button,modifiers:u,x:c.clientX,y:c.clientY})}}}function s(c){const u=n.get(c.pointerId);if(!u)return;const d=t.find(m=>m.id===u.handlerId);if(!d||!d.enabled)return;const f=d.opts,v={pointerId:c.pointerId,x:c.clientX,y:c.clientY,dx:c.clientX-u.startX,dy:c.clientY-u.startY};u.lastX=c.clientX,u.lastY=c.clientY,f.onMove(v)}function a(c){const u=n.get(c.pointerId);if(!u)return;n.delete(c.pointerId),_r(c.pointerId,u.handlerId),document.removeEventListener("pointermove",s),document.removeEventListener("pointerup",a),document.removeEventListener("pointercancel",o);const d=t.find(S=>S.id===u.handlerId);if(!d)return;const f=d.opts,v=c.clientX-u.startX,m=c.clientY-u.startY;if(f.type==="drag"){const S=f.clickThreshold??6,g=Math.sqrt(v*v+m*m);f.onEnd({pointerId:c.pointerId,x:c.clientX,y:c.clientY,dx:v,dy:m,cancelled:!1,wasClick:g<S})}else f.onEnd({pointerId:c.pointerId,x:c.clientX,y:c.clientY,dx:v,dy:m,cancelled:!1})}function o(c){const u=n.get(c.pointerId);if(!u)return;n.delete(c.pointerId),_r(c.pointerId,u.handlerId),document.removeEventListener("pointermove",s),document.removeEventListener("pointerup",a),document.removeEventListener("pointercancel",o);const d=t.find(S=>S.id===u.handlerId);if(!d)return;const f=d.opts,v=u.lastX-u.startX,m=u.lastY-u.startY;f.type==="drag"?f.onEnd({pointerId:c.pointerId,x:u.lastX,y:u.lastY,dx:v,dy:m,cancelled:!0,wasClick:!1}):f.onEnd({pointerId:c.pointerId,x:u.lastX,y:u.lastY,dx:v,dy:m,cancelled:!0})}function l(c){const u=wu(c);for(const d of t){if(!d.enabled||d.destroyed||d.opts.type!=="scroll")continue;const f=d.opts;if(!yo(f.modifiers??[],u))continue;const v=f.container??e;if(!(!v||!v.contains(c.target))){f.onScroll({deltaX:c.deltaX,deltaY:c.deltaY,deltaZ:c.deltaZ,modifiers:u});return}}}return e.addEventListener("pointerdown",r),e.addEventListener("wheel",l),{register(c){const d={id:Rw(),opts:c,enabled:!1,destroyed:!1};return t.push(d),{enable(){d.destroyed||(d.enabled=!0)},disable(){d.enabled=!1},destroy(){d.enabled=!1,d.destroyed=!0;const f=t.indexOf(d);f>=0&&t.splice(f,1)}}},destroy(){e.removeEventListener("pointerdown",r),e.removeEventListener("wheel",l),t.length=0}}}function sc(e){let t=0,n=e;for(;n;)t++,n=n.parentElement;return t}const Qa=24;function zn(e,t,n){if(typeof console>"u")return;const r=t?.target,s=r?.tagName??"-",a=r?.className??"",o=typeof a=="string"?a:"";console.log("[sh3:gesture]",e,{pointerId:t?.pointerId,pointerType:t?.pointerType,type:t?.type,target:o?`${s}.${o}`:s,...n})}var Pw=E('<div class="popup-frame svelte-mp81cl" role="menu" tabindex="-1"><!></div>');function Dw(e,t){ae(t,!0);let n,r=V(-9999),s=V(-9999);Ie(()=>{if(!n)return;const l=n.getBoundingClientRect(),c=4,u=window.innerWidth,d=window.innerHeight;let f=t.anchorRect.bottom+c,v=t.anchorRect.left;if(v+l.width>u-c&&(v=Math.max(c,u-l.width-c)),f+l.height>d-c){const m=t.anchorRect.top-l.height-c;f=m>=c?m:Math.max(c,d-l.height-c)}w(r,f,!0),w(s,v,!0)});var a=Pw(),o=p(a);la(o,()=>t.Content,(l,c)=>{c(l,ua(()=>t.contentProps,{get close(){return t.close}}))}),h(a),Ne(a,l=>n=l,()=>n),q(()=>Ye(a,`top: ${i(r)??""}px; left: ${i(s)??""}px;`)),x(e,a),ie()}function zw(e){return e instanceof HTMLElement?e.getBoundingClientRect():new DOMRect(e.x,e.y,0,0)}let Qt=null;function gv(e){if(!Qt||bv(e.pointerId))return;const t=e.target;t&&Qt.host.contains(t)||Qt.handle.close()}function yv(e){Qt&&e.key==="Escape"&&(e.stopPropagation(),e.preventDefault(),Qt.handle.close())}function jw(){document.addEventListener("pointerdown",gv,!0),document.addEventListener("keydown",yv,!0)}function Ow(){document.removeEventListener("pointerdown",gv,!0),document.removeEventListener("keydown",yv,!0)}function Go(e){Qt===e&&(Qt=null,Ow(),tt(e.frame),e.host.remove())}function Nw(e,t,n){Qt&&Go(Qt);const r=Mi("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=zw(t.anchor),o={},l={close:()=>Go(o)},c=fv(()=>l.close()),u=l.close;l.close=()=>{c.unregister(),u()};const d=We(Dw,{target:s,props:{Content:e,contentProps:n??{},anchorRect:a,close:l.close}});return o.host=s,o.frame=d,o.handle=l,Qt=o,queueMicrotask(jw),l}function qw(){Qt&&Go(Qt)}const Jo={show:Nw,close:qw};var Bw=E('<div role="status" aria-live="polite"><span class="toast-level svelte-12gwnj0"> </span> <span class="toast-message svelte-12gwnj0"> </span></div>');function Fw(e,t){var n=Bw(),r=p(n),s=p(r,!0);h(r);var a=_(r,2),o=p(a,!0);h(a),h(n),q(()=>{he(n,1,`toast toast-${t.level??""}`,"svelte-12gwnj0"),z(s,t.level),z(o,t.message)}),K("click",n,function(...l){t.close?.apply(this,l)}),x(e,n)}pe(["click"]);const $a=new Set;let St=null;function Vw(){if(St&&St.isConnected)return St;const e=Mi("toast");return St=document.createElement("div"),St.className="sh3-toast-stack",St.style.position="absolute",St.style.right="16px",St.style.bottom="16px",St.style.display="flex",St.style.flexDirection="column-reverse",St.style.gap="6px",St.style.pointerEvents="none",e.appendChild(St),St}function Zo(e){$a.has(e)&&($a.delete(e),e.timer!==null&&(clearTimeout(e.timer),e.timer=null),tt(e.instance),e.host.remove())}function Uw(e,t={}){const n=t.level??"info",r=t.duration??3e3,s=Vw(),a=document.createElement("div");a.className="sh3-toast-host",s.appendChild(a);const o={},l={close:()=>Zo(o)},c=We(Fw,{target:a,props:{message:e,level:n,close:l.close}});return o.host=a,o.instance=c,o.handle=l,o.timer=Number.isFinite(r)&&r>0?setTimeout(()=>Zo(o),r):null,$a.add(o),l}function Hw(){for(const e of[...$a])Zo(e)}const An={notify:Uw,clear:Hw},ku={w:120,h:80};function Pi(e){if(e.type==="slot")return{...ku};if(e.type==="tabs")return{...ku};const t=e.children.map(Pi);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 xu=32,Su={x:48,y:48};function _v(e,t){if(e.length===0)return{...Su};const n=e[e.length-1],r={x:n.position.x+xu,y:n.position.y+xu};return r.x+120>t.w||r.y+32>t.h?{...Su}:r}let Iu=0;function wv(){return Iu+=1,`float-${Date.now().toString(36)}-${Iu.toString(36)}`}function Kw(e,t,n){const r=Math.max(t.w,Math.min(e.size.w,n.w)),s=Math.max(t.h,Math.min(e.size.h,n.h)),a=Math.max(0,n.w-r),o=Math.max(0,n.h-s),l=Math.max(0,Math.min(e.position.x,a)),c=Math.max(0,Math.min(e.position.y,o));return{position:{x:l,y:c},size:{w:r,h:s}}}function kv(e){return e.type==="slot"?e.viewId==null:e.type==="tabs"?e.tabs.every(t=>t.viewId==null):e.children.every(kv)}function Ww(e){return e.closest("[data-sh3-overlay-host]")}const ei=new Map,ac=new Map,xv=new Set;function Yw(e){xv.add(e)}function Xw(e,t,n){if(ei.has(e))throw new Error(`View "${e}" is already registered`);ei.set(e,t),n!==void 0&&ac.set(e,n);for(const r of xv)r(e,t)}function Sv(e){return ei.get(e)}function Eu(e){return ac.get(e)}function Iv(e){ei.delete(e),ac.delete(e)}const Zr=new Map;function Gw(e,t,n){const r=Zr.get(e);return r?(console.warn(`[sh3] verb "${e}" already registered by shard "${r.shardId}"; skipping registration from "${n}"`),!1):(Zr.set(e,{verb:t,shardId:n}),!0)}function ti(e){return Zr.get(e)?.verb}function Ev(e){Zr.delete(e)}function ic(){return Array.from(Zr.values()).map(e=>e.verb).sort((e,t)=>e.name.localeCompare(t.name))}function Av(){return Array.from(Zr.values()).map(e=>({...e}))}function Qr(e,t){const n=(r,s)=>{if(r.type==="tabs"){const a=r.tabs.findIndex(o=>o.slotId===t);if(a>=0)return{tabsNode:r,tabsPath:s,tabIndex:a,entry:r.tabs[a]}}else if(r.type==="split")for(let a=0;a<r.children.length;a++){const o=n(r.children[a],[...s,a]);if(o)return o}return null};return n(e,[])}function oc(e,t){if(Qo(e.docked,t))return{kind:"docked"};for(const n of e.floats)if(Qo(n.content,t))return{kind:"float",floatId:n.id};return null}function Qo(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(Qo(n,t))return!0;return!1}function Di(e,t){const n=Qr(e,t);if(!n)return null;const{tabsNode:r,tabIndex:s,entry:a}=n;return r.tabs.splice(s,1),r.tabs.length===0?r.activeTab=0:s<r.activeTab?r.activeTab-=1:r.activeTab>=r.tabs.length&&(r.activeTab=r.tabs.length-1),a}function Jw(e,t,n){const r=Math.max(0,Math.min(n,e.tabs.length));e.tabs.splice(r,0,t),e.activeTab=r}function Zw(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 Au(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 Qw(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 $o(e,t,n,r){const s=$r(e,t);if(!s||Cv(e,t))return;if(t.length===0){const u=Qw(s),d=Au(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=Au(s,n,r),o=t.slice(0,-1),l=t[t.length-1],c=$r(e,o);!c||c.type!=="split"||(c.children[l]=a)}function $r(e,t){let n=e;for(const r of t){if(n.type!=="split"||r<0||r>=n.children.length)return null;n=n.children[r]}return n}function Cv(e,t){if(t.length===0)return!1;const n=$r(e,t.slice(0,-1));return!n||n.type!=="split"?!1:n.fixed?.[t[t.length-1]]===!0}function Nr(e){let t=!0;for(;t;)t=Tv(e,null,0)}function Tv(e,t,n){if(e.type==="split"){let r=!1;for(let s=0;s<e.children.length;s++)Tv(e.children[s],e,s)&&(r=!0);for(let s=e.children.length-1;s>=0;s--){const a=e.children[s];a.type==="tabs"&&a.tabs.length===0&&!a.persistent&&!e.fixed?.[s]&&(e.children.splice(s,1),e.sizes.splice(s,1),e.pinned&&e.pinned.splice(s,1),e.collapsed&&e.collapsed.splice(s,1),e.fixed&&e.fixed.splice(s,1),r=!0)}if(e.children.length<=1&&t)return e.children.length===1?t.children[n]=e.children[0]:(t.children.splice(n,1),t.sizes.splice(n,1),t.pinned&&t.pinned.splice(n,1),t.collapsed&&t.collapsed.splice(n,1)),!0;if(e.children.length===1&&!t){const s=e.children[0],a=e;return delete a.direction,delete a.sizes,delete a.pinned,delete a.collapsed,delete a.children,Object.assign(a,s),!0}return r}return e.type==="tabs",!1}function Vt(e){return typeof e.label=="function"?e.label():e.label}const $w=["Ctrl","Alt","Shift","Meta"],Cu={control:"Ctrl",ctrl:"Ctrl",alt:"Alt",option:"Alt",shift:"Shift",meta:"Meta",cmd:"Meta",command:"Meta",super:"Meta",win:"Meta"},e1=new Set(["Control","Alt","Shift","Meta"]);function Rv(e){return e.length===1?e.toUpperCase():e}function lc(e){if(!e)throw new Error("Empty shortcut");const t=e.split("+");if(t.some(o=>o.trim()===""))throw new Error(`Malformed shortcut: "${e}"`);const n=t.map(o=>o.trim());if(n.length===0)throw new Error(`Malformed shortcut: "${e}"`);const r=new Set;let s;for(const o of n){const l=o.toLowerCase();if(l in Cu)r.add(Cu[l]);else{if(s!==void 0)throw new Error(`Multiple keys in shortcut: "${e}"`);s=Rv(o)}}if(s===void 0)throw new Error(`No key in shortcut: "${e}"`);return[...$w.filter(o=>r.has(o)),s].join("+")}function Lv(e,t){if(!e.toLowerCase().includes("mod"))return e;const n=e.split("+").map(r=>r.toLowerCase()==="mod"?t==="mac"?"Meta":"Ctrl":r);return lc(n.join("+"))}function t1(e){if(e1.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=Rv(e.key);return[...t,n].join("+")}function n1(){return typeof navigator>"u"?"other":/Mac|iPhone|iPad|iPod/i.test(navigator.platform)?"mac":"other"}function fa(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?null:lc(r)}return e.defaultShortcut?Lv(e.defaultShortcut,n):null}function r1(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?{shortcut:null,source:"disabled"}:{shortcut:lc(r),source:"user"}}return e.defaultShortcut?{shortcut:Lv(e.defaultShortcut,n),source:"default"}:{shortcut:null,source:"none"}}const zi=["element","focus","view","app","home"];function Fs(e,t,n){if(e==="home")return t.activeAppId===null;if(e==="app")return t.activeAppId===null||!n?!1:t.activeAppRequiredShards.has(n)||t.autostartShards.has(n);if(typeof e=="string"){if(e.startsWith("view:"))return t.mountedViewIds.has(e.slice(5));if(e.startsWith("focus:"))return t.focusedViewId===e.slice(6)}return typeof e=="object"&&"element"in e?t.selection!==null&&t.selection.type===e.element:!1}function s1(e,t){const n={element:new Map,focus:new Map,view:new Map,app:new Map,home:new Map};for(const r of e){const s=fa(r.action,t.bindings,t.platform);if(s)for(const a of cc(r.action.scope)){if(!Fs(a,t,r.ownerShardId))continue;const o=ji(a),l=n[o].get(s);if(l&&l!==r.action.id){console.warn(`[sh3] Shortcut "${s}" in tier "${o}" is bound to both "${l}" and "${r.action.id}"; first-registered wins. Users can rebind to resolve.`);continue}n[o].set(s,r.action.id)}}return n}function a1(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 i1(e){return e instanceof Element?e.closest("[data-sh3-passthrough-modifiers]")!==null:!1}function o1(e){return/(?:^|\+)(?:Ctrl|Alt|Meta)\+/.test(e)}function l1(e){const t=s1(e.entries,e.state),n=new Map(e.entries.map(r=>[r.action.id,r]));for(const r of zi){const s=t[r].get(e.shortcut);if(!s)continue;const a=n.get(s);if(a)return a1(e.target)&&!a.action.allowInInputs&&!(i1(e.target)&&o1(e.shortcut))?null:(e.runAction(s,{action:{id:a.action.id,label:Vt(a.action)},appId:e.state.activeAppId,viewId:e.state.focusedViewId??void 0,selection:e.state.selection??void 0,invokedVia:"keyboard",dispatch:e.dispatch??(()=>{})}),s)}return null}function ji(e){return e==="home"?"home":e==="app"?"app":typeof e=="string"&&e.startsWith("view:")?"view":typeof e=="string"&&e.startsWith("focus:")?"focus":"element"}function cc(e){return Array.isArray(e)?e:[e]}function Mv(e){return e==="home"||e==="app"?null:typeof e=="string"?e:e.element}function va(e,t,n){const r=cc(e),s={};for(const a of r){const o=ji(a);(s[o]??=[]).push(a)}for(const a of zi){const o=s[a];if(o){for(const l of o)if(Fs(l,t,n))return l}}return null}function c1(e,t){return typeof e=="string"||typeof t=="string"?e===t:e.element===t.element}function Pv(e){return typeof e=="string"?e:`element:${e.element}`}function u1(e){if(e==="home"||e==="app")return e;if(e.startsWith("view:"))return e.slice(5).length>0?e:null;if(e.startsWith("focus:"))return e.slice(6).length>0?e:null;if(e.startsWith("element:")){const t=e.slice(8);return t.length>0?{element:t}:null}return null}const qr=new Map,za=new Map,el=new Set,es=new Map;function Tu(e){const t=za.get(e);if(t)for(const n of t)n();for(const n of el)n(e)}function d1(e,t){let n=es.get(e);n||(n=new Set,es.set(e,n)),n.add(t)}function f1(e,t){const n=es.get(e);n&&(n.delete(t),n.size===0&&es.delete(e))}function Dv(e,t,n){const r=Symbol();let s=qr.get(e);s||(s=new Map,qr.set(e,s)),s.set(r,t),Tu(e);const a=n?.scope?.slotId;let o=!1;const l=()=>{if(o)return;o=!0,a&&f1(a,l);const c=qr.get(e);c&&c.delete(r)&&(c.size===0&&qr.delete(e),Tu(e))};return a&&d1(a,l),l}function Er(e){const t=qr.get(e);return t?Array.from(t.values()):[]}function v1(){return Array.from(qr.keys())}function Oi(e,t){let n=za.get(e);n||(n=new Set,za.set(e,n)),n.add(t);let r=!1;return()=>{r||(r=!0,n.delete(t),n.size===0&&za.delete(e))}}function h1(e){el.add(e);let t=!1;return()=>{t||(t=!0,el.delete(e))}}function p1(e){const t=es.get(e);if(!t)return;const n=Array.from(t);for(const r of n)r();es.delete(e)}const On=new Map,ja=new Set;function m1(e,t){for(const[n,r]of On.entries()){if(r.viewId!==e||r.handle!==void 0)continue;const s={slotId:n,viewId:e,label:r.label,meta:r.meta,setDirty(a){Ni[n]=a},location(){return oc(Ut(),n)}};queueMicrotask(()=>{if(On.has(n)&&r.handle===void 0&&(r.handle=t.mount(r.host,s),(r.handle?.closable||n.startsWith("float:"))&&(qi[n]=!0),r.handle?.onResize)){const a=r.handle.onResize.bind(r.handle);r.resizeObserver=new ResizeObserver(o=>{for(const l of o){const c=l.contentRect;a(Math.round(c.width),Math.round(c.height))}}),r.resizeObserver.observe(r.host)}})}}Yw(m1);const Ni=ve({}),qi=ve({});function b1(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",Pv(`focus:${t}`))),s.style.position="absolute",s.style.inset="0",s.style.minWidth="0",s.style.minHeight="0";let a=!1;const o={host:s,handle:void 0,viewId:t,label:n,meta:r,refcount:0,resizeObserver:void 0,cancelPendingMount:()=>{a=!0}};return queueMicrotask(()=>{if(a)return;const l=t?Sv(t):void 0,c={slotId:e,viewId:t??"",label:n,meta:r,setDirty(u){Ni[e]=u},location(){return oc(Ut(),e)}};if(o.handle=l?.mount(s,c),(o.handle?.closable||e.startsWith("float:"))&&(qi[e]=!0),o.handle?.onResize){const u=o.handle.onResize.bind(o.handle);o.resizeObserver=new ResizeObserver(d=>{for(const f of d){const v=f.contentRect;u(Math.round(v.width),Math.round(v.height))}}),o.resizeObserver.observe(s)}}),o}function uc(e,t,n,r){ja.delete(e);let s=On.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",Pv(`focus:${t}`))):(s.host.removeAttribute("data-sh3-view"),s.host.removeAttribute("data-sh3-scope"))):(s=b1(e,t,n,r),On.set(e,s)),s.refcount++,s.host}function dc(e,t){const n=On.get(e);if(n){if(n.refcount--,n.refcount>0){t&&n.host.parentNode===t&&n.host.remove();return}ja.add(e),queueMicrotask(()=>{if(!ja.has(e))return;ja.delete(e);const r=On.get(e);!r||r.refcount>0||(r.resizeObserver?.disconnect(),p1(e),r.handle?.unmount(),r.cancelPendingMount(),r.host.remove(),On.delete(e),delete Ni[e],delete qi[e])})}}function _o(e){const t=On.get(e);if(t)return{host:t.host,refcount:t.refcount}}function zv(e){const t=tl.get(e);return t||On.get(e)?.handle}function g1(e){return Ni[e]??!1}function y1(e){return tl.has(e)?!!tl.get(e).closable:qi[e]??!1}const tl=new Map;function jv(e){if(!e||typeof e!="object")return!1;const t=e.type;return t==="split"||t==="tabs"||t==="slot"}function _1(e){if(!e||typeof e!="object")return!1;const t=e;return jv(t.docked)&&Array.isArray(t.floats)}function w1(e){return{docked:e,floats:[]}}function k1(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 x1(e,t){return t==="compact"&&e.variants.compact?e.variants.compact:e.variants.default}function Ov(e){if(Array.isArray(e))return e.map(k1);if(_1(e))return[{name:"default",variants:{default:e}}];if(jv(e))return[{name:"default",variants:{default:w1(e)}}];throw new Error("normalizeInitialLayout: input is not a LayoutNode, LayoutTree, or LayoutPreset[]")}function S1(e){return e.coarsePointer&&e.noHover||e.width<720||e.coarsePointer&&e.dpr>=2&&e.width<1100?"compact":"desktop"}let xs=V(null);const Ss=new Set;function Nv(){if(typeof window>"u")return{class:"desktop",width:1920,height:1080,coarsePointer:!1,noHover:!1,dpr:1};const e=window.innerWidth,t=window.innerHeight,n=window.matchMedia("(pointer: coarse)").matches,r=window.matchMedia("(hover: none)").matches,s=window.devicePixelRatio;return{class:i(xs)??S1({width:e,coarsePointer:n,noHover:r,dpr:s}),width:e,height:t,coarsePointer:n,noHover:r,dpr:s}}let ni=V(ve(Nv()));function Is(){const e=Nv(),t=i(ni).class;if(w(ni,e,!0),e.class!==t)for(const n of Ss)n(e)}typeof window<"u"&&(window.addEventListener("resize",Is),window.matchMedia("(pointer: coarse)").addEventListener("change",Is),window.matchMedia("(hover: none)").addEventListener("change",Is),typeof screen<"u"&&screen.orientation&&screen.orientation.addEventListener("change",Is));const un={get current(){return i(ni)},subscribe(e){return Ss.add(e),()=>{Ss.delete(e)}},override(e){if(i(xs)!==e){w(xs,e,!0),Is();for(const t of Ss)t(i(ni))}},get pinned(){return i(xs)},__reset(){w(xs,null),Ss.clear()}};function Ru(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 fc(e){const t=Ru(e.docked);for(const n of e.floats)t.push(...Ru(n.content));return t}let ri=null;function I1(e){ri=e}function E1(){ri=null}function vc(){if(!ri)throw new Error("presetManager: no app attached — bind an AppLayoutBlob first");return ri}function A1(){return Object.keys(vc().presets)}function C1(){return vc().activePreset}function T1(e){const t=vc();if(!(e in t.presets))throw new Error(`presetManager.switch: unknown preset "${e}"`);t.activePreset=e}const R1={list:A1,active:C1,switch:T1};function qv(){return{left:{open:!1,activeSlotId:null},right:{open:!1,activeSlotId:null},top:{open:!1,activeSlotId:null}}}const an=ve(qv());let si=null;function ka(){si&&si(an)}const Ot={get state(){return an},open(e){an[e].open=!0,ka()},close(e){an[e].open=!1,ka()},toggle(e){an[e].open=!an[e].open,ka()},activate(e,t){an[e].activeSlotId=t,ka()},__setWriteThrough(e){si=e},__hydrate(e){for(const t of["left","right","top"])an[t].open=e[t].open,an[t].activeSlotId=e[t].activeSlotId},__reset(){si=null;const e=qv();for(const t of["left","right","top"])an[t].open=e[t].open,an[t].activeSlotId=e[t].activeSlotId}};Xo("workspace","__shell__");const L1={type:"slot",slotId:"sh3core.home",viewId:"sh3core:home"},nl=ve({docked:L1,floats:[]});let Qe=V(null),ha=V("home");function M1(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 P1(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 D1(e){if(i(Qe))throw new Error(`Layout manager cannot attach app "${e.manifest.id}": app "${i(Qe).appId}" is still attached`);const t=`__sh3core__:app:${e.manifest.id}`,n=Ov(e.initialLayout);if(n.length===0)throw new Error(`App "${e.manifest.id}" normalized to zero presets`);const r={layoutVersion:e.manifest.layoutVersion,activePreset:n[0].name,presets:Object.fromEntries(n.map(c=>[c.name,{...c.variants}]))},s=uw("workspace",t),a=M1(s);(a&&a.layoutVersion!==e.manifest.layoutVersion||s&&!a)&&Xo("workspace",t);const l=Li(t,{workspace:r}).workspace;w(Qe,{appId:e.manifest.id,proxy:l,heldSlotIds:[]},!0),I1(l),z1(l)}function z1(e){const t=e.activePreset,n=()=>(e.drawers||(e.drawers={}),e.drawers[t]||(e.drawers[t]={}),e.drawers[t].compact||(e.drawers[t].compact={left:{open:!1,activeSlotId:null},right:{open:!1,activeSlotId:null},top:{open:!1,activeSlotId:null}}),e.drawers),r=n();Ot.__hydrate(r[t].compact),Ot.__setWriteThrough(s=>{const a=n();a[t].compact={left:{...s.left},right:{...s.right},top:{...s.top}}})}function j1(){if(!i(Qe))throw new Error("acquireAppSlotHolds: no app attached");if(i(Qe).heldSlotIds.length>0)return;const e=P1(i(Qe).proxy),t=fc(e);for(const{slotId:n,viewId:r,label:s,meta:a}of t)uc(n,r,s,a),i(Qe).heldSlotIds.push(n)}function O1(){if(!i(Qe))throw new Error("resetActivePresetToDefault: no app attached");const e=yn(i(Qe).appId);if(!e)throw new Error(`resetActivePresetToDefault: attached app "${i(Qe).appId}" not in registry`);const t=Ov(e.initialLayout),n=i(Qe).proxy,r=n.activePreset;let s=t.find(l=>l.name===r);s||(s=t[0],n.activePreset=s.name);for(const l of i(Qe).heldSlotIds)dc(l);i(Qe).heldSlotIds=[];const a=structuredClone(s.variants.default);n.presets[n.activePreset].default=a;const o=fc(a);for(const{slotId:l,viewId:c,label:u,meta:d}of o)uc(l,c,u,d),i(Qe).heldSlotIds.push(l)}function Bv(){if(i(Qe)){E1(),Ot.__setWriteThrough(null),Ot.__hydrate({left:{open:!1,activeSlotId:null},right:{open:!1,activeSlotId:null},top:{open:!1,activeSlotId:null}});for(const e of i(Qe).heldSlotIds)dc(e);w(Qe,null)}}function Fv(){w(ha,"home")}function Lu(){if(!i(Qe))throw new Error("Cannot switchToApp: no app is attached");w(ha,"app")}const Oa=F(()=>{if(i(ha)==="app"&&i(Qe)){const e=i(Qe).proxy,t=e.activePreset,n=e.presets[t];if(!n)throw new Error(`AppLayoutBlob active preset "${t}" not found in presets map`);return x1({variants:n},un.current.class)}return nl});function Ut(){return i(Oa)}function Bi(){return i(ha)}const pt={get root(){return i(Oa).docked},get tree(){return i(Oa)},get floats(){return i(Oa).floats}};function N1(e){nl.docked=e,nl.floats=[],w(ha,"home")}let Rs=V(ve({kind:"docked"}));const hn={get current(){return i(Rs)},setRoot(e){if(e.kind==="float"&&!pt.tree.floats.some(n=>n.id===e.floatId))throw new Error(`compactRootStore.setRoot: float id "${e.floatId}" is not in the active tree`);w(Rs,e,!0)},reset(){w(Rs,{kind:"docked"},!0)}};function Vv(){const e=i(Rs);if(e.kind==="docked")return pt.root;const t=pt.tree.floats.find(n=>n.id===e.floatId);return t?t.content:(w(Rs,{kind:"docked"},!0),pt.root)}class q1 extends Map{#e=new Map;#t=V(0);#n=V(0);#s=jn||-1;constructor(t){if(super(),t){for(var[n,r]of t)super.set(n,r);this.#n.v=super.size}}#r(t){return jn===this.#s?V(t):Rt(t)}has(t){var n=this.#e,r=n.get(t);if(r===void 0)if(super.has(t))r=this.#r(0),n.set(t,r);else return i(this.#t),!1;return i(r),!0}forEach(t,n){this.#i(),super.forEach(t,n)}get(t){var n=this.#e,r=n.get(t);if(r===void 0)if(super.has(t))r=this.#r(0),n.set(t,r);else{i(this.#t);return}return i(r),super.get(t)}set(t,n){var r=this.#e,s=r.get(t),a=super.get(t),o=super.set(t,n),l=this.#t;if(s===void 0)s=this.#r(0),r.set(t,s),w(this.#n,super.size),xn(l);else if(a!==n){xn(s);var c=l.reactions===null?null:new Set(l.reactions),u=c===null||!s.reactions?.every(d=>c.has(d));u&&xn(l)}return o}delete(t){var n=this.#e,r=n.get(t),s=super.delete(t);return r!==void 0&&(n.delete(t),w(r,-1)),s&&(w(this.#n,super.size),xn(this.#t)),s}clear(){if(super.size!==0){super.clear();var t=this.#e;w(this.#n,0);for(var n of t.values())w(n,-1);xn(this.#t),t.clear()}}#i(){i(this.#t);var t=this.#e;if(this.#n.v!==t.size){for(var n of super.keys())if(!t.has(n)){var r=this.#r(0);t.set(n,r)}}for([,r]of this.#e)i(r)}keys(){return i(this.#t),super.keys()}values(){return this.#i(),super.values()}entries(){return this.#i(),super.entries()}[Symbol.iterator](){return this.entries()}get size(){return i(this.#n),super.size}}const rl=new q1;function Vs(e,t){t?rl.set(e,!0):rl.delete(e)}function B1(e){return rl.get(e)??!1}let F1=[],hc=null,pa=()=>({w:1600,h:900});const Us=new Set;function pc(e,t){const n=Pi(e.content),r=Kw({position:e.position,size:e.size},n,t);e.position.x=r.position.x,e.position.y=r.position.y,e.size.w=r.size.w,e.size.h=r.size.h}function V1(e,t){hc=e,pa=t;const n=t();for(const r of e)Us.has(r.id)||(pc(r,n),Us.add(r.id));hn.reset()}function U1(){hc=null,pa=()=>({w:1600,h:900})}function Ar(){return hc??F1}const mc=new Map;function H1(e){return mc.get(e)}const Nn=new Map;let Mu=0;function K1(e){return Mu+=1,`float:${e}:${Mu}`}const Pu={w:600,h:400};function W1(e,t){return{w:Math.max(e.w,Math.min(Pu.w,t.w)),h:Math.max(e.h,Math.min(Pu.h,t.h))}}function Y1(e,t={}){const n=Ar(),r=wv(),s=K1(e);let a;if(t.dismissable){const f={type:"slot",slotId:s,viewId:e};t.meta&&(f.meta=t.meta),a=f}else{const f=t.title??e,v={slotId:s,viewId:e,label:f};t.meta&&(v.meta=t.meta),a={type:"tabs",tabs:[v],activeTab:0}}const o=Pi(a),l=pa(),c=t.size??W1(o,l),u=t.position??_v(n,l),d={id:r,content:a,position:u,size:c,title:t.title};if(t.dismissable&&(d.dismissable=!0),t.dismissable&&t.anchor){const f=Ww(t.anchor);f&&mc.set(r,f)}return pc(d,l),Us.add(r),n.push(d),un.current.class==="compact"&&!t.dismissable&&hn.setRoot({kind:"float",floatId:r}),r}function X1(e){const t=Ar(),n=wv(),r=pa(),s=e.position??_v(t,r),a={id:n,content:e.content,position:s,size:e.size,title:e.title};return pc(a,r),Us.add(n),t.push(a),un.current.class==="compact"&&hn.setRoot({kind:"float",floatId:n}),n}function G1(e){const t=Ar(),n=t.findIndex(s=>s.id===e);if(n<0)return;t.splice(n,1),mc.delete(e),Nn.delete(e);const r=hn.current;r.kind==="float"&&r.floatId===e&&hn.reset(),Us.delete(e),Vs(e,!1)}function J1(){return Ar().slice()}function Uv(e){const t=Ar(),n=t.findIndex(s=>s.id===e);if(n<0||n===t.length-1)return;const[r]=t.splice(n,1);t.push(r)}function Hv(e){if(Nn.has(e))return;const t=Ar().find(r=>r.id===e);if(!t)return;Nn.set(e,{position:{x:t.position.x,y:t.position.y},size:{w:t.size.w,h:t.size.h}}),Vs(e,!0);const n=pa();t.position.x=0,t.position.y=0,t.size.w=n.w,t.size.h=n.h,Uv(e)}function Kv(e){const t=Nn.get(e);if(!t)return;const n=Ar().find(r=>r.id===e);if(!n){Nn.delete(e),Vs(e,!1);return}n.position.x=t.position.x,n.position.y=t.position.y,n.size.w=t.size.w,n.size.h=t.size.h,Nn.delete(e),Vs(e,!1)}function Z1(e){Nn.has(e)?Kv(e):Hv(e)}function Q1(e){Nn.has(e)&&(Nn.delete(e),Vs(e,!1))}function $1(e){return B1(e)}const De={open:Y1,openWithContent:X1,close:G1,list:J1,focus:Uv,maximize:Hv,restore:Kv,toggleMaximize:Z1,unmaximize:Q1,isMaximized:$1},ek=Object.freeze([".md",".txt",".json",".guml",".css",".js",".ts",".tsx",".jsx",".html",".svg",".csv",".yaml",".yml",".xml",".log",".ini",".toml"]);function tk(e){return e.kind?e.kind:e.extension&&ek.includes(e.extension.toLowerCase())?"text":"binary"}const Na=[];function Du(e){return Na.push(e),()=>{const t=Na.indexOf(e);t>=0&&Na.splice(t,1)}}function nk(e,t=[]){return[...Na,...t].filter(r=>{try{return r.appliesTo(e)}catch{return!1}}).sort((r,s)=>(s.priority??0)-(r.priority??0))[0]??null}var rk=E("<span> </span>"),sk=E('<div class="sh3-conflict-text-dual svelte-iwgja4"><div role="button" tabindex="0"><header class="sh3-conflict-text-head svelte-iwgja4"> </header> <pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre></div> <div role="button" tabindex="0"><header class="sh3-conflict-text-head svelte-iwgja4"> </header> <pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre></div></div> <details class="sh3-conflict-text-diff svelte-iwgja4"><summary> </summary> <pre class="svelte-iwgja4"><code></code></pre></details>',1),ak=E("<option> </option>"),ik=E("<button> </button>"),ok=E('<pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre>'),lk=E('<div class="sh3-conflict-text-tabs svelte-iwgja4"><div class="sh3-conflict-text-picker svelte-iwgja4"><label>Reference: <select class="svelte-iwgja4"></select></label></div> <div class="sh3-conflict-text-tablist svelte-iwgja4"></div> <!></div>'),ck=E('<div class="sh3-conflict-text svelte-iwgja4"><!></div>');function uk(e,t){ae(t,!0);let n=V("");Ie(()=>{(!i(n)||!t.item.branches.find(m=>m.origin===i(n)))&&w(n,t.item.branches[0]?.origin??"local",!0)});const r=F(()=>t.item.branches.length===2),s=F(()=>i(r)?t.item.branches[0]:t.item.branches.find(m=>m.origin===i(n))??t.item.branches[0]),a=F(()=>i(r)?t.item.branches[1]:t.item.branches.find(m=>m.origin===t.selectedOrigin)??t.item.branches[1]??t.item.branches[0]);function o(m,S){const g=(m??"").split(/\r?\n/),b=(S??"").split(/\r?\n/),A=[],k=Math.max(g.length,b.length);for(let y=0;y<k;y++){const C=g[y],I=b[y];C===I?typeof C=="string"&&A.push({kind:"same",text:C}):(typeof C=="string"&&A.push({kind:"left",text:C}),typeof I=="string"&&A.push({kind:"right",text:I}))}return A}const l=F(()=>!i(s)||!i(a)?[]:o(i(s).content??"",i(a).content??"")),c=F(()=>i(l).filter(m=>m.kind!=="same").length);var u=ck(),d=p(u);{var f=m=>{var S=sk(),g=fe(S),b=p(g);let A;var k=p(b),y=p(k);h(k);var C=_(k,2),I=p(C),P=p(I,!0);h(I),h(C),h(b);var L=_(b,2);let T;var M=p(L),N=p(M);h(M);var R=_(M,2),D=p(R),j=p(D,!0);h(D),h(R),h(L),h(g);var B=_(g,2),X=p(B),J=p(X);h(X);var Y=_(X,2),U=p(Y);me(U,21,()=>i(l),ut,(Q,G)=>{var $=rk(),O=p($);h($),q(()=>{he($,1,`diff-${i(G).kind}`,"svelte-iwgja4"),z(O,`${i(G).kind==="same"?" ":i(G).kind==="left"?"- ":"+ "}${i(G).text??""}
|
|
8
|
-
`)}),x(Q,$)}),h(U),h(Y),h(B),q(()=>{A=he(b,1,"sh3-conflict-text-pane svelte-iwgja4",null,A,{selected:i(s).origin===t.selectedOrigin}),z(y,`${i(s).origin??""} · v${i(s).version??""}`),z(P,i(s).content??""),T=he(L,1,"sh3-conflict-text-pane svelte-iwgja4",null,T,{selected:i(a).origin===t.selectedOrigin}),z(N,`${i(a).origin??""} · v${i(a).version??""}`),z(j,i(a).content??""),z(J,`Line diff (${i(c)??""} difference${i(c)===1?"":"s"})`)}),K("click",b,()=>t.onSelect(i(s).origin)),K("keydown",b,Q=>{(Q.key==="Enter"||Q.key===" ")&&t.onSelect(i(s).origin)}),K("click",L,()=>t.onSelect(i(a).origin)),K("keydown",L,Q=>{(Q.key==="Enter"||Q.key===" ")&&t.onSelect(i(a).origin)}),x(m,S)},v=m=>{var S=lk(),g=p(S),b=p(g),A=_(p(b));me(A,21,()=>t.item.branches,I=>I.origin,(I,P)=>{var L=ak(),T=p(L,!0);h(L);var M={};q(()=>{z(T,i(P).origin),M!==(M=i(P).origin)&&(L.value=(L.__value=i(P).origin)??"")}),x(I,L)}),h(A),h(b),h(g);var k=_(g,2);me(k,21,()=>t.item.branches,I=>I.origin,(I,P)=>{var L=ik();let T;var M=p(L);h(L),q(()=>{T=he(L,1,"sh3-conflict-text-tab svelte-iwgja4",null,T,{selected:i(P).origin===t.selectedOrigin}),z(M,`${i(P).origin??""} · v${i(P).version??""}`)}),K("click",L,()=>t.onSelect(i(P).origin)),x(I,L)}),h(k);var y=_(k,2);{var C=I=>{var P=ok(),L=p(P),T=p(L,!0);h(L),h(P),q(()=>z(T,i(a).content??"")),x(I,P)};W(y,I=>{i(a)&&I(C)})}h(S),js(A,()=>i(n),I=>w(n,I)),x(m,S)};W(d,m=>{i(r)&&i(s)&&i(a)?m(f):m(v,-1)})}h(u),x(e,u),ie()}pe(["click","keydown"]);var dk=E("· <code> </code>",1),fk=E('<li class="sh3-conflict-meta-li svelte-1nz3djn"><button type="button"><div class="sh3-conflict-meta-origin svelte-1nz3djn"> </div> <div class="sh3-conflict-meta-detail svelte-1nz3djn"> <!></div></button></li>'),vk=E('<div class="sh3-conflict-meta svelte-1nz3djn"><div class="sh3-conflict-meta-note svelte-1nz3djn">No preview available for this content. Pick the branch you want to keep.</div> <ul class="sh3-conflict-meta-list svelte-1nz3djn"></ul></div>');function hk(e,t){ae(t,!0);function n(o){return typeof o!="number"?"—":o<1024?`${o} B`:o<1024*1024?`${(o/1024).toFixed(1)} KiB`:`${(o/(1024*1024)).toFixed(2)} MiB`}function r(o){const l=Date.now()-o;return l<6e4?"just now":l<36e5?`${Math.floor(l/6e4)}m ago`:l<864e5?`${Math.floor(l/36e5)}h ago`:new Date(o).toLocaleString()}var s=vk(),a=_(p(s),2);me(a,21,()=>t.item.branches,o=>o.origin,(o,l)=>{var c=fk(),u=p(c);let d;var f=p(u),v=p(f,!0);h(f);var m=_(f,2),S=p(m),g=_(S);{var b=A=>{var k=dk(),y=_(fe(k)),C=p(y,!0);h(y),q(()=>z(C,i(l).hashPreview)),x(A,k)};W(g,A=>{i(l).hashPreview&&A(b)})}h(m),h(u),h(c),q((A,k)=>{d=he(u,1,"sh3-conflict-meta-row svelte-1nz3djn",null,d,{selected:i(l).origin===t.selectedOrigin}),z(v,i(l).origin),z(S,`v${i(l).version??""} · ${A??""} · ${k??""} `)},[()=>r(i(l).at),()=>n(i(l).sizeBytes)]),K("click",u,()=>t.onSelect(i(l).origin)),x(o,c)}),h(a),h(s),x(e,s),ie()}pe(["click"]);const pk=1048576;function mk(e){return typeof e=="number"&&e>pk}const bk={id:"sh3-core.text",priority:1,appliesTo:e=>tk(e)!=="text"?!1:!e.branches.some(t=>mk(t.sizeBytes)),mount(e,t){const n=We(uk,{target:e,props:t});return()=>{tt(n)}}},gk={id:"sh3-core.meta",priority:0,appliesTo:()=>!0,mount(e,t){const n=We(hk,{target:e,props:t});return()=>{tt(n)}}};let zu=!1;function yk(){zu||(zu=!0,Du(bk),Du(gk))}var _k=E('<div class="sh3-conflict-prompt svelte-1jvtzud"><h3 class="sh3-conflict-prompt-title svelte-1jvtzud"> </h3> <p class="sh3-conflict-prompt-intro svelte-1jvtzud">Pick one option for the whole batch, or resolve each conflict individually.</p> <div class="sh3-conflict-prompt-actions svelte-1jvtzud"><button type="button" class="sh3-conflict-prompt-primary svelte-1jvtzud">Overwrite with most recent</button> <button type="button" class="sh3-conflict-prompt-secondary svelte-1jvtzud">Resolve individually</button> <button type="button" class="sh3-conflict-prompt-cancel svelte-1jvtzud">Cancel</button></div></div>');function wk(e,t){var n=_k(),r=p(n),s=p(r);h(r);var a=_(r,4),o=p(a);sa(o,!0);var l=_(o,2),c=_(l,2);h(a),h(n),q(()=>z(s,`${t.count??""} conflict${t.count===1?"":"s"} to resolve`)),K("click",o,function(...u){t.onOverwriteMostRecent?.apply(this,u)}),K("click",l,function(...u){t.onResolveIndividually?.apply(this,u)}),K("click",c,function(...u){t.onCancel?.apply(this,u)}),x(e,n)}pe(["click"]);var kk=E('<span class="sh3-conflict-detail-counter svelte-pw8iv6"> </span>'),xk=E('<button type="button"><span><!></span> <span class="sh3-conflict-detail-rail-label svelte-pw8iv6"> </span></button>'),Sk=E('<aside class="sh3-conflict-detail-rail svelte-pw8iv6"></aside>'),Ik=E('<label class="sh3-conflict-detail-branch svelte-pw8iv6"><input type="radio"/> <span> </span></label>'),Ek=E('<div class="sh3-conflict-detail-branches svelte-pw8iv6"></div> <div class="sh3-conflict-detail-renderer svelte-pw8iv6"></div>',1),Ak=E('<div class="sh3-conflict-detail svelte-pw8iv6"><header class="sh3-conflict-detail-head svelte-pw8iv6"><h3 class="svelte-pw8iv6"> </h3> <!></header> <div class="sh3-conflict-detail-body svelte-pw8iv6"><!> <section class="sh3-conflict-detail-main svelte-pw8iv6"><!></section></div> <footer class="sh3-conflict-detail-foot svelte-pw8iv6"><div class="sh3-conflict-detail-nav svelte-pw8iv6"><button type="button" class="svelte-pw8iv6">← Prev</button> <button type="button" class="svelte-pw8iv6"> </button> <button type="button" class="svelte-pw8iv6">Next →</button></div> <div class="sh3-conflict-detail-actions svelte-pw8iv6"><button type="button" class="sh3-conflict-detail-cancel svelte-pw8iv6">Cancel</button> <button type="button" class="sh3-conflict-detail-done svelte-pw8iv6">Done</button></div></footer></div>');function Ck(e,t){ae(t,!0);const n=F(()=>t.items[t.currentIndex]),r=F(()=>i(n)?t.selections[i(n).id]??i(n).branches[0]?.origin??"":""),s=F(()=>i(n)?nk(i(n),t.contributed):null);let a=V(void 0),o=null;Ie(()=>{if(i(n),i(s),i(r),o&&(o(),o=null),!i(a)||!i(n)||!i(s))return;const X={item:i(n),selectedOrigin:i(r),onSelect:J=>t.onSelect(i(n).id,J)};return o=i(s).mount(i(a),X),()=>{o&&(o(),o=null)}});function l(){t.currentIndex>0&&t.onNavigate(t.currentIndex-1)}function c(){t.currentIndex<t.items.length-1&&t.onNavigate(t.currentIndex+1)}const u=F(()=>t.items.map(X=>t.skipped[X.id]?"skipped":t.selections[X.id]?"resolved":"pending"));var d=Ak(),f=p(d),v=p(f),m=p(v,!0);h(v);var S=_(v,2);{var g=X=>{var J=kk(),Y=p(J);h(J),q(()=>z(Y,`${t.currentIndex+1} / ${t.items.length??""}`)),x(X,J)};W(S,X=>{t.items.length>1&&X(g)})}h(f);var b=_(f,2),A=p(b);{var k=X=>{var J=Sk();me(J,23,()=>t.items,Y=>Y.id,(Y,U,Q)=>{var G=xk();let $;var O=p(G),H=p(O);{var ee=le=>{var be=vn("✓");x(le,be)},Z=le=>{var be=vn("⟶");x(le,be)},oe=le=>{var be=vn("·");x(le,be)};W(H,le=>{i(u)[i(Q)]==="resolved"?le(ee):i(u)[i(Q)]==="skipped"?le(Z,1):le(oe,-1)})}h(O);var de=_(O,2),ne=p(de,!0);h(de),h(G),q(()=>{$=he(G,1,"sh3-conflict-detail-rail-item svelte-pw8iv6",null,$,{selected:i(Q)===t.currentIndex}),he(O,1,`sh3-conflict-detail-rail-state ${i(u)[i(Q)]??""}`,"svelte-pw8iv6"),z(ne,i(U).label)}),K("click",G,()=>t.onNavigate(i(Q))),x(Y,G)}),h(J),x(X,J)};W(A,X=>{t.items.length>1&&X(k)})}var y=_(A,2),C=p(y);{var I=X=>{var J=Ek(),Y=fe(J);me(Y,21,()=>i(n).branches,Q=>Q.origin,(Q,G)=>{var $=Ik(),O=p($);xe(O);var H=_(O,2),ee=p(H);h(H),h($),q(()=>{re(O,"name",`branch-${i(n).id??""}`),Os(O,i(G).origin),Ql(O,i(r)===i(G).origin),z(ee,`${i(G).origin??""} · v${i(G).version??""}`)}),K("change",O,()=>t.onSelect(i(n).id,i(G).origin)),x(Q,$)}),h(Y);var U=_(Y,2);Ne(U,Q=>w(a,Q),()=>i(a)),x(X,J)};W(C,X=>{i(n)&&X(I)})}h(y),h(b);var P=_(b,2),L=p(P),T=p(L),M=_(T,2),N=p(M,!0);h(M);var R=_(M,2);h(L);var D=_(L,2),j=p(D),B=_(j,2);h(D),h(P),h(d),q(()=>{z(m,t.title),T.disabled=t.currentIndex===0,z(N,i(n)&&t.skipped[i(n).id]?"Unskip":"Skip"),R.disabled=t.currentIndex>=t.items.length-1}),K("click",T,l),K("click",M,()=>i(n)&&t.onToggleSkip(i(n).id)),K("click",R,c),K("click",j,function(...X){t.onCancel?.apply(this,X)}),K("click",B,function(...X){t.onDone?.apply(this,X)}),x(e,d),ie()}pe(["click","change"]);function Wv(e,t){return t.at-e.at}function Tk(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(Wv)[0]}}function Rk(e,t){ae(t,!0);const n=t.items.length>=2||t.requirePrompt;let r=V(ve(n?"prompt":"detail")),s=V(ve(Object.fromEntries(t.items.map(y=>{const C=Tk(y.branches,t.mostRecentBy)?.origin??y.branches[0]?.origin??"";return[y.id,C]})))),a=V(ve({})),o=V(0),l=!1;Gl(()=>{l||(l=!0,t.onCancel())});function c(){if(l)return;l=!0;const y=[],C=[];for(const I of t.items){if(i(a)[I.id]){C.push(I.id);continue}const P=i(s)[I.id],L=I.branches.find(T=>T.origin===P);L&&y.push({itemId:I.id,chosen:L,meta:I.meta})}t.onResolve(y,C),t.close()}function u(){l||(l=!0,t.onCancel(),t.close())}function d(){c()}function f(){w(r,"detail")}function v(y,C){if(w(s,{...i(s),[y]:C},!0),i(a)[y]){const I={...i(a)};delete I[y],w(a,I,!0)}}function m(y){w(a,{...i(a),[y]:!i(a)[y]},!0)}function S(y){w(o,y,!0)}var g=Me(),b=fe(g);{var A=y=>{wk(y,{get count(){return t.items.length},onOverwriteMostRecent:d,onResolveIndividually:f,onCancel:u})},k=y=>{Ck(y,{get items(){return t.items},get selections(){return i(s)},get skipped(){return i(a)},get currentIndex(){return i(o)},get title(){return t.title},get contributed(){return t.contributed},onSelect:v,onNavigate:S,onToggleSkip:m,onDone:c,onCancel:u})};W(b,y=>{i(r)==="prompt"?y(A):y(k,-1)})}x(e,g),ie()}const Yv="sh3-core.conflictRenderer";class Xv extends Error{constructor(t){super(t),this.name="ConflictPermissionError"}}class Lk extends Error{constructor(){super("Caller shard deactivated while conflict session was active"),this.name="ConflictSessionOrphanedError"}}function Mk(){try{return Er(Yv)}catch{return[]}}function Gv(e,t={}){return yk(),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??Wv,a=t.requirePrompt??!1,o=Mk();let l=!1;const d={items:e,title:r,mostRecentBy:s,requirePrompt:a,contributed:o,onResolve:(f,v)=>{l||(l=!0,n({status:"resolved",choices:f,skipped:v}))},onCancel:()=>{l||(l=!0,n({status:"cancelled"}))}};nn.open(Rk,d,{boxStyle:"max-width: none; min-width: 360px; padding: 0;"})})}function Pk(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 Dk(e,t){const n=e.browse;if(!n?.statusFrom||!n?.readBranchFrom||!n?.resolveConflictFrom)throw new Xv(`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 zk(e){const t=e.lastIndexOf(".");if(t<0)return;const n=e.lastIndexOf("/");if(!(t<n))return e.slice(t)}async function jk(e,t,n={}){const r=e.shardId,s=t.shardId===r?Pk(e):Dk(e,t.shardId),a=[];for(const d of t.paths){const f=await s.status(d);f&&f.syncState==="conflict"&&f.branches&&f.branches.length>0&&a.push({path:d,status:f})}if(a.length===0)return{status:"resolved",resolved:[],failed:[],skipped:[]};const o=[];for(const{path:d,status:f}of a){const v=zk(d),m=[];for(const S of f.branches??[]){const g=await s.readBranch(d,S.origin).catch(()=>null);m.push({origin:S.origin,version:S.version,at:S.at,content:g??void 0,sizeBytes:g?new TextEncoder().encode(g).length:void 0})}o.push({id:d,label:d,extension:v,branches:m,meta:{shardId:t.shardId,path:d,docVersion:f.version}})}const l=await Gv(o,n);if(l.status==="cancelled")return{status:"cancelled"};const c=[],u=[];for(const d of l.choices)try{await s.resolveConflict(d.itemId,{origin:d.chosen.origin});const f=await s.status(d.itemId).catch(()=>null);c.push({path:d.itemId,chosen:d.chosen,appliedVersion:f?.version??-1})}catch(f){u.push({path:d.itemId,error:f instanceof Error?f.message:String(f)})}return{status:"resolved",resolved:c,failed:u,skipped:l.skipped}}const Ok={resolve:Gv,resolveDocuments:jk},Jv="sh3.color-picker",Nk={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 qk(e={}){return[...Er(Jv),Nk].sort((r,s)=>(s.priority??0)-(r.priority??0))[0].open(e)}const Bk={pick:qk};let ar=null;function Fk(e){ar=e}async function Vr(e){return ar?{...ar.bindings[e]??{}}:{}}async function ju(e,t,n){if(!ar)return;const r={...ar.bindings[e]??{}};n===void 0?delete r[t]:r[t]=n,ar.bindings={...ar.bindings,[e]:r}}const bc="sh3.actions",wo=new Set;function Vk(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.`),()=>{};wo.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.`),wo.add(e.id);const r=Dv(bc,{action:e,ownerShardId:t});let s=!1;return()=>{s||(s=!0,r(),wo.delete(e.id))}}function et(){return Er(bc)}function Uk(e){return Oi(bc,e)}function Hk(e){const t=e.action.disabled;return typeof t=="function"?!!t():!!t}function Kk(e){const t=e.action.scope;return Array.isArray(t)?t[0]:t}function gc(e,t){const n={element:[],focus:[],view:[],app:[],home:[]},r=[],s=new Set;for(const a of e){if(s.has(a.action.id))continue;s.add(a.action.id);const{shortcut:o,source:l}=r1(a.action,t.bindings,t.platform),c=va(a.action.scope,t,a.ownerShardId),u=typeof a.action.run=="function",d=c!==null&&u&&!Hk(a),f=d?c:Kk(a),v={id:a.action.id,label:Vt(a.action),effectiveShortcut:o,bindingSource:l,scope:f,scopeBadge:Mv(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[ji(c)].push(v):r.push(v)}return[...zi.flatMap(a=>n[a]),...r]}function Wk(e,t){return gc(e,t).filter(n=>n.active)}let on=V(null);function ma(){return i(on)}function Fi(e){return{get(){return i(on)},set(t){w(on,{type:t.type,ref:t.ref,ownerShardId:e},!0)},clear(){if(i(on)){if(i(on).ownerShardId!==e){console.warn(`[sh3] Shard "${e}" tried to clear selection owned by "${i(on).ownerShardId}". Ignoring.`);return}w(on,null)}}}}function Zv(e){i(on)&&i(on).ownerShardId===e&&w(on,null)}function Yk(){w(on,null)}let Qv=V(null),$v=V(ve(new Set)),qa=V(ve(new Set)),eh=V(ve(new Set)),th=V(null),nh=V(ve({}));const Xk=n1(),sl=new Set;function ds(){for(const e of sl)try{e()}catch(t){console.error("[sh3] onActiveChange listener threw",t)}}function Gk(e){return sl.add(e),()=>{sl.delete(e)}}function Jk(){ds()}function ai(e,t){w(Qv,e,!0),w($v,new Set(t),!0),ds()}function Zk(){const e=fc(pt.tree),t=new Set;for(const n of e)n.viewId!==null&&t.add(n.viewId);w(eh,t,!0),ds()}function rh(e){w(th,e,!0),ds()}function Hs(e){w(nh,{...e},!0),ds()}function kt(){return{activeAppId:i(Qv),activeAppRequiredShards:i($v),autostartShards:i(qa),mountedViewIds:i(eh),focusedViewId:i(th),selection:ma(),bindings:i(nh),platform:Xk}}function sh(e){i(qa).has(e)||(w(qa,new Set([...i(qa),e]),!0),ds())}var Qk=E('<div class="sh3-ctx-sep svelte-1667pfa" role="separator"></div>'),$k=E('<span class="sh3-ctx-chevron svelte-1667pfa">▸</span>'),e0=E('<span class="sh3-ctx-shortcut svelte-1667pfa"> </span>'),t0=E('<button role="menuitem"><span class="sh3-ctx-check svelte-1667pfa"> </span> <span class="sh3-ctx-label svelte-1667pfa"> </span> <!></button>'),n0=E("<!> <!>",1),r0=E('<div class="sh3-context-menu svelte-1667pfa" role="menu" tabindex="0"></div>');function ii(e,t){ae(t,!0);const n=F(()=>t.sections.flatMap(c=>c.items));let r=V(0);function s(c,u){if(i(n).length===0)return 0;let d=c;for(let f=0;f<i(n).length;f++)if(d=(d+u+i(n).length)%i(n).length,!i(n)[d].disabled)return d;return c}function a(c){if(c.key==="ArrowDown")w(r,s(i(r),1),!0),c.preventDefault();else if(c.key==="ArrowUp")w(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)){w(r,v);break}}}}function o(c){c.disabled||(t.onInvoke(c.id),c.submenu||t.onDismiss())}var l=r0();sa(l,!0),me(l,23,()=>t.sections,c=>c.id,(c,u,d)=>{var f=n0(),v=fe(f);{var m=g=>{var b=Qk();x(g,b)};W(v,g=>{i(d)>0&&g(m)})}var S=_(v,2);me(S,17,()=>i(u).items,g=>g.id,(g,b)=>{const A=F(()=>i(n).indexOf(i(b)));var k=t0();let y;var C=p(k),I=p(C,!0);h(C);var P=_(C,2),L=p(P,!0);h(P);var T=_(P,2);{var M=R=>{var D=$k();x(R,D)},N=R=>{var D=e0(),j=p(D,!0);h(D),q(()=>z(j,i(b).shortcut)),x(R,D)};W(T,R=>{i(b).submenu?R(M):i(b).shortcut&&R(N,1)})}h(k),q(()=>{y=he(k,1,"sh3-ctx-item svelte-1667pfa",null,y,{"sh3-ctx-active":i(A)===i(r),"sh3-ctx-disabled":i(b).disabled}),re(k,"aria-disabled",i(b).disabled||void 0),z(I,i(b).checked?"✓":""),z(L,i(b).label)}),Ue("pointerenter",k,()=>{i(b).disabled||w(r,i(A),!0)}),K("click",k,()=>o(i(b))),x(g,k)}),x(c,f)}),h(l),K("keydown",l,a),x(e,l),ie()}pe(["keydown","click"]);function ah(e,t){ae(t,!0);const n=F(()=>t.model.tiers.map(r=>({id:`tier:${r.tier}`,items:r.items.map(s=>({...s,icon:void 0}))})));ii(e,{get sections(){return i(n)},get onInvoke(){return t.onInvoke},get onDismiss(){return t.onClose}}),ie()}function Ou(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function ih(e,t){return{id:e.action.id,label:Vt(e.action),shortcut:fa(e.action,t.bindings,t.platform),group:e.action.group??"",icon:e.action.icon,checked:Ou(e.action.checked),disabled:Ou(e.action.disabled),submenu:e.action.submenu===!0}}function oh(e,t,n,r){return cc(e.scope).some(a=>c1(a,n))?n==="app"||n==="home"||typeof n=="object"&&"element"in n?Fs(n,r,t):!0:!1}function lh(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)||!oh(a.action,a.ownerShardId,n,t))continue;const o=va(a.action.scope,t,a.ownerShardId)??n;s.add(a.action.id),r[ji(o)].push(ih(a,t))}return{tiers:zi.map(a=>({tier:a,items:r[a]})).filter(a=>a.items.length>0)}}function s0(e,t,n,r){const s=[],a=new Set;for(const o of e)o.action.submenuOf===n&&(a.has(o.action.id)||oh(o.action,o.ownerShardId,r,t)&&(a.add(o.action.id),s.push(ih(o,t))));return s}function a0(e,t){if(!t)return 0;const n=e.toLowerCase(),r=t.toLowerCase();let s=0,a=0,o=0,l=0,c=-2;for(;s<n.length&&a<r.length;){if(n[s]===r[a]){const u=s===0?5:0,d=s===c+1?++l:l=1;o+=1+u+d,c=s,a++}else l=0;s++}return a===r.length?o:null}function i0(e,t,n){const r=[];for(const a of e){if(t===""&&a.submenuOf!==void 0)continue;const o=a0(a.label,t);o!==null&&r.push({...a,score:o})}const s=new Map;return n.forEach((a,o)=>s.set(a,n.length-o)),r.sort((a,o)=>{if(a.score!==o.score)return o.score-a.score;const l=s.get(a.id)??0;return(s.get(o.id)??0)-l}),r}var o0=E('<span class="sh3-palette-badge svelte-1qdcgk6"> </span>'),l0=E('<span class="sh3-palette-shortcut svelte-1qdcgk6"> </span>'),c0=E('<button role="option"><span class="sh3-palette-label svelte-1qdcgk6"> </span> <!> <!></button>'),u0=E('<div class="sh3-palette svelte-1qdcgk6" role="dialog" aria-label="Command palette" aria-modal="true" tabindex="-1"><input class="sh3-palette-input hell-base-input svelte-1qdcgk6" placeholder="Command…"/> <div class="sh3-palette-list svelte-1qdcgk6" role="listbox"></div></div>');function d0(e,t){ae(t,!0);let n=te(t,"prefill",3,""),r=V(ve(n())),s=V(0);const a=F(()=>i0(t.candidates,i(r),t.recency));Ie(()=>{i(s)>=i(a).length&&w(s,0)});function o(d){d.key==="ArrowDown"?(w(s,Math.min(i(s)+1,Math.max(0,i(a).length-1)),!0),d.preventDefault()):d.key==="ArrowUp"?(w(s,Math.max(i(s)-1,0),!0),d.preventDefault()):d.key==="Enter"?(i(a)[i(s)]&&(t.onInvoke(i(a)[i(s)].id),t.onClose()),d.preventDefault()):d.key==="Escape"&&(t.onClose(),d.preventDefault())}var l=u0(),c=p(l);xe(c);var u=_(c,2);me(u,23,()=>i(a),d=>d.id,(d,f,v)=>{var m=c0();let S;var g=p(m),b=p(g,!0);h(g);var A=_(g,2);{var k=I=>{var P=o0(),L=p(P);h(P),q(()=>z(L,`[${i(f).scopeBadge??""}]`)),x(I,P)};W(A,I=>{i(f).scopeBadge&&I(k)})}var y=_(A,2);{var C=I=>{var P=l0(),L=p(P,!0);h(P),q(()=>z(L,i(f).shortcut)),x(I,P)};W(y,I=>{i(f).shortcut&&I(C)})}h(m),q(()=>{S=he(m,1,"sh3-palette-item svelte-1qdcgk6",null,S,{"sh3-palette-active":i(v)===i(s)}),re(m,"aria-selected",i(v)===i(s)),z(b,i(f).label)}),Ue("pointerenter",m,()=>w(s,i(v),!0)),K("click",m,()=>{t.onInvoke(i(f).id),t.onClose()}),x(d,m)}),h(u),h(l),K("keydown",l,o),Te(c,()=>i(r),d=>w(r,d)),x(e,l),ie()}pe(["keydown","click"]);function f0(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function v0(e,t,n={}){const r=[],s=new Set,a=n.filter?.submenuOf;for(const o of e){if(o.action.paletteItem===!1||f0(o.action.disabled)||a!==void 0&&o.action.submenuOf!==a||s.has(o.action.id))continue;const l=va(o.action.scope,t,o.ownerShardId);l&&(s.add(o.action.id),r.push({id:o.action.id,label:Vt(o.action),shortcut:fa(o.action,t.bindings,t.platform),scopeBadge:Mv(l),submenu:o.action.submenu===!0,submenuOf:a!==void 0?void 0:o.action.submenuOf}))}return r}let Nu=!1;function yc(e){return e?e.closest("[data-sh3-view]")?.getAttribute("data-sh3-view")??null:null}function ch(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=u1(n.getAttribute("data-sh3-scope")??"");if(s&&!(typeof s=="object"&&"element"in s&&!Fs(s,e.state)))return s;const a=n.parentElement;n=a?a.closest("[data-sh3-scope]"):null}const r=yc(t);if(r)return`focus:${r}`}return e.state.activeAppId?"app":"home"}function h0(e,t){const n=et().find(r=>r.action.id===e);if(!(!n||typeof n.action.run!="function"))try{n.action.run(t)}catch(r){console.error(`[sh3] action "${e}" threw:`,r)}}function uh(e,t){const n=et(),r=n.find(l=>l.action.id===e);if(!r)return Promise.reject(new Error(`action "${e}" not registered`));const s=kt(),a=gc(n,s).find(l=>l.id===e);if(!a||!a.active)return r.action.submenu===!0&&typeof r.action.run!="function"?Promise.reject(new Error(`action "${e}" is a submenu parent — list children with listActions({ submenuOf: "${e}" })`)):Promise.reject(new Error(`action "${e}" is not active in current scope`));const o=r.action.run;try{const l=o({action:{id:r.action.id,label:Vt(r.action)},appId:s.activeAppId,viewId:s.focusedViewId??void 0,selection:s.selection??void 0,invokedVia:"programmatic",dispatch:fs});return Promise.resolve(l).then(()=>{})}catch(l){return Promise.reject(l)}}function fs(e){uh(e).catch(t=>{console.error(`[sh3] ctx.dispatch("${e}"):`,t)})}function p0(e){const t=yc(e.target);rh(t)}function m0(e){queueMicrotask(()=>{const t=yc(document.activeElement);rh(t)})}function b0(e){return e instanceof Element?e.closest('[data-sh3-context-menu="native"]')!==null:!1}function dh(e,t,n,r){const s=document.querySelector(".sh3-popup-host");if(!s)return;const a=document.createElement("div");a.className="sh3-popup-submenu",a.style.position="absolute",a.style.pointerEvents="auto";const l=(s.querySelector(".sh3-ctx-active")??s).getBoundingClientRect();a.style.left=`${l.right+2}px`,a.style.top=`${l.top}px`,s.appendChild(a);const c=s0(et(),t,e,r);We(ii,{target:a,props:{sections:[{id:`submenu:${e}`,items:c}],onInvoke:u=>{const d=et().find(f=>f.action.id===u);if(!(!d||typeof d.action.run!="function")){try{d.action.run({action:{id:u,label:Vt(d.action)},appId:t.activeAppId,viewId:t.focusedViewId??void 0,selection:t.selection??void 0,invokedVia:"context-menu",dispatch:fs})}catch(f){console.error(`[sh3] context-menu submenu action "${u}" threw:`,f)}n.close()}},onDismiss:()=>n.close()}})}function g0(e){if(b0(e.target))return;const t=et(),n=kt(),r=ch({event:e,state:n}),s=lh(t,n,r);if(s.tiers.length===0)return;e.preventDefault();const a=dt.popup.show(ah,{anchor:{x:e.clientX,y:e.clientY}},{model:s,onInvoke:o=>{const l=et().find(c=>c.action.id===o);if(l){if(l.action.submenu===!0){dh(o,n,a,r);return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:Vt(l.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:fs})}catch(c){console.error(`[sh3] context-menu action "${o}" threw:`,c)}}},onClose:()=>a.close()})}function y0(e){const t=t1(e);if(!t)return;const n=et(),r=kt();l1({target:e.target,shortcut:t,state:r,entries:n,runAction:h0,dispatch:fs})&&e.preventDefault()}function qu(){Nu||(Nu=!0,document.addEventListener("keydown",y0),document.addEventListener("focusin",p0),document.addEventListener("focusout",m0),document.addEventListener("contextmenu",g0))}function fh(e){const t=et(),n=kt(),r=ch({explicit:e.scope,state:n}),s=lh(t,n,r);if(s.tiers.length===0)return;const a=dt.popup.show(ah,{anchor:{x:e.x,y:e.y}},{model:s,onInvoke:o=>{const l=et().find(c=>c.action.id===o);if(l){if(l.action.submenu===!0){dh(o,n,a,r);return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:Vt(l.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:fs})}catch(c){console.error(`[sh3] context-menu action "${o}" threw:`,c)}}},onClose:()=>a.close()})}const _0=20;let al=[];function w0(e){al=[e,...al.filter(t=>t!==e)].slice(0,_0)}function Vi(e){const t=et(),n=kt(),r=v0(t,n,{filter:e?.filter}),s=typeof document<"u"&&document.activeElement instanceof HTMLElement?document.activeElement:null,a=dt.modal.open(d0,{candidates:r,recency:al,prefill:e?.prefill??"",onInvoke:o=>{const l=et().find(c=>c.action.id===o);if(l){if(w0(o),l.action.submenu===!0&&typeof l.action.run!="function"){a.close(),Vi({filter:{submenuOf:o}});return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:Vt(l.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"palette",dispatch:fs})}catch(c){console.error(`[sh3] palette action "${o}" threw:`,c)}}},onClose:()=>a.close()},{dismissOnBackdrop:!0,initialFocus:!(typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(hover: none) and (pointer: coarse)").matches)});if(s){const o=a.close;a.close=()=>{o(),queueMicrotask(()=>{(document.activeElement===document.body||document.activeElement===null)&&s.focus()})}}}const ir=[];let k0=0;function x0(){return`term-${++k0}`}function S0(e){ir.push(e);let t=!1;return()=>{if(t)return;t=!0;const n=ir.indexOf(e);n!==-1&&ir.splice(n,1)}}function I0(){if(ir.length===0)return{ok:!1,error:"no-terminal"};if(ir.length===1)return{ok:!0,handle:ir[0]};let e=null,t=0;for(const n of ir){const r=n.getFocusStamp();r>0&&r>=t&&(e=n,t=r)}return e===null?{ok:!1,error:"ambiguous"}:{ok:!0,handle:e}}const Bu={"no-terminal":"no terminal open",ambiguous:"multiple terminals open; focus one first","no-active-context":"dispatchToTerminal is not available in this context"};function _c(e){return e.headless?()=>({ok:!1,error:"no-active-context",message:Bu["no-active-context"]}):t=>{const n=I0();return n.ok?(n.handle.dispatch(t),{ok:!0,terminalId:n.handle.id}):{ok:!1,error:n.error,message:Bu[n.error]}}}const E0={async rebind(e,t,n){await ju(e,t,n),kt().activeAppId===e&&Hs(await Vr(e))},async resetBinding(e,t){await ju(e,t,void 0),kt().activeAppId===e&&Hs(await Vr(e))},async bindingsFor(e){const t=await Vr(e),n={};for(const[r,s]of Object.entries(t))s!==null&&(n[r]=s);return n},openContextMenu:fh,openPalette:Vi,listActive(){return Wk(et(),kt())},onActiveChange(e){const t=Gk(e),n=Uk(()=>{Jk()});return()=>{t(),n()}}},dt={state:Li,modal:nn,popup:Jo,toast:An,float:De,presets:R1,conflicts:Ok,color:Bk,actions:E0,dispatchToTerminal:_c({headless:!1}),viewport:{get current(){return un.current},subscribe:e=>un.subscribe(e),override:e=>un.override(e),get pinned(){return un.pinned}},drawers:{get state(){return Ot.state},open:e=>{xa("open"),Ot.open(e)},close:e=>{xa("close"),Ot.close(e)},toggle:e=>{xa("toggle"),Ot.toggle(e)},activate:(e,t)=>{xa("activate"),Ot.activate(e,t)}}};function xa(e){const t=un.current.class;if(t!=="compact")throw new Error(`Sh3.drawers.${e}: viewport class is "${t}"; drawers exist only on compact`)}function A0(e){return gn[e].list()}function C0(e,t){return gn[e].read(t)}function T0(e,t){gn[e].delete(t)}function R0(e){for(const t of gn[e].list())gn[e].delete(t)}function il(){return{list:A0,peek:C0,clear:T0,clearAll:R0}}function Tr(e,t,n){return`${e}/${t}/${n}`}function L0(e,t){return`${e}/${t}/`}const M0="sh3-documents",Wt="docs",P0=2;class vh{#e=null;#t(){return this.#e||(this.#e=new Promise((t,n)=>{const r=indexedDB.open(M0,P0);r.onupgradeneeded=()=>{const s=r.result;s.objectStoreNames.contains(Wt)||s.createObjectStore(Wt)},r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error)})),this.#e}async#n(t,n){const r=await this.#t();return new Promise((s,a)=>{const l=r.transaction(Wt,t).objectStore(Wt),c=n(l);c.onsuccess=()=>s(c.result),c.onerror=()=>a(c.error)})}async read(t,n,r){const s=Tr(t,n,r),a=await this.#n("readonly",o=>o.get(s));return a?a.content:null}async write(t,n,r,s){const a=Tr(t,n,r),o=typeof s=="string"?new Blob([s]).size:s.byteLength,l={content:s,size:o,lastModified:Date.now()};await this.#n("readwrite",c=>c.put(l,a))}async delete(t,n,r){const s=Tr(t,n,r);await this.#n("readwrite",a=>a.delete(s))}async rename(t,n,r,s){const a=Tr(t,n,r),o=Tr(t,n,s),l=await this.#t();return new Promise((c,u)=>{let d=!1;const f=l.transaction(Wt,"readwrite"),v=f.objectStore(Wt),m=v.get(a);m.onsuccess=()=>{const S=m.result;if(!S){d=!0,f.abort(),u(new Error(`Document not found at ${r}`));return}const g=v.getKey(o);g.onsuccess=()=>{if(g.result!==void 0){d=!0,f.abort(),u(new Error(`Document already exists at ${s}`));return}const b={...S,lastModified:Date.now()};v.put(b,o),v.delete(a)},g.onerror=()=>u(g.error)},m.onerror=()=>u(m.error),f.oncomplete=()=>c(),f.onerror=()=>{d||u(f.error)},f.onabort=()=>{}})}async list(t,n){const r=L0(t,n),s=await this.#t();return new Promise((a,o)=>{const c=s.transaction(Wt,"readonly").objectStore(Wt),u=IDBKeyRange.bound(r,r+"",!1,!1),d=c.openCursor(u),f=[];d.onsuccess=()=>{const v=d.result;if(v){const m=v.value;f.push({path:v.key.slice(r.length),size:m.size,lastModified:m.lastModified}),v.continue()}else a(f)},d.onerror=()=>o(d.error)})}async exists(t,n,r){const s=Tr(t,n,r);return await this.#n("readonly",o=>o.getKey(s))!==void 0}async listAllShards(t){const n=`${t}/`,r=await this.#t();return new Promise((s,a)=>{const l=r.transaction(Wt,"readonly").objectStore(Wt),c=IDBKeyRange.bound(n,n+"",!1,!1),u=l.openKeyCursor(c),d=new Set;u.onsuccess=()=>{const f=u.result;if(f){const v=f.key.slice(n.length),m=v.indexOf("/");m>=0&&d.add(v.slice(0,m)),f.continue()}else s([...d])},u.onerror=()=>a(u.error)})}async listAllDocuments(t){const n=`${t}/`,r=await this.#t();return new Promise((s,a)=>{const l=r.transaction(Wt,"readonly").objectStore(Wt),c=IDBKeyRange.bound(n,n+"",!1,!1),u=l.openCursor(c),d=[];u.onsuccess=()=>{const f=u.result;if(f){const v=f.key.slice(n.length),m=v.indexOf("/");if(m>=0){const S=f.value;d.push({shardId:v.slice(0,m),path:v.slice(m+1),size:S.size,lastModified:S.lastModified})}f.continue()}else s(d)},u.onerror=()=>a(u.error)})}}const D0="local";let wc=D0,hh=new vh;function ph(){return wc}function Sa(){return wc}function ko(){return hh}function Ia(e){wc=e}function Fu(e){hh=e}const wr=ve({activeProjectId:null});function mh(e){if(wr.activeProjectId===e)return;const t=vt.id;wr.activeProjectId=e,Jr.id=null,t&&kc(t)}const bh=Li("__sh3core__:last-app",{user:{id:null}});function z0(){return bh.user.id}function Ks(e){bh.user.id=e}function j0(){Ks(null)}const ol=new Map;function O0(){return wr.activeProjectId??ph()}function Ea(e,t,n){let r=ol.get(e);if(!r){const s=yn(e),a=O0();r={scopeId:a,args:n??{},state:o=>Li(`__app__:${e}:scope:${a}`,o),zones:s?.manifest.permissions?.includes(Ns)?il():void 0,gestures:Mw(typeof document<"u"?document.body:null)},ol.set(e,r)}return r}async function Vn(e,t={}){const n=yn(e);if(!n)throw new Error(`Cannot launch app "${e}": not registered`);if(vt.id&&vt.id!==e)kc(vt.id,t.skipSwitchToHome);else if(vt.id===e){for(const r of n.manifest.requiredShards){const s=tn.get(r),a=rS(r);s&&a&&s.resume?.(a)}n.resume?.(Ea(e)),Lu(),n.onAppReady?.(Ea(e)),t.skipLastApp||Ks(e),Jr.id=e,ai(e,new Set(n.manifest.requiredShards??[])),Vr(e).then(Hs);return}for(const r of n.manifest.requiredShards)if(!tn.has(r))throw new Error(`App "${e}" requires shard "${r}" which is not registered`);D1(n);try{for(const r of n.manifest.requiredShards)await di(r,{phase:"launch"})}catch(r){Bv();try{An.notify(`Couldn't launch "${n.manifest.label??e}": ${r instanceof Error?r.message:String(r)}`,{level:"error",duration:6e3})}catch{}throw r}j1(),n.activate?.(Ea(e,void 0,t.args)),vt.id=e,ai(e,new Set(n.manifest.requiredShards??[])),Vr(e).then(Hs),Lu(),n.onAppReady?.(Ea(e)),t.skipLastApp||Ks(e),Jr.id=e}function kc(e,t=!1){if(vt.id!==e)return;const n=yn(e);if(n){n.deactivate?.(),t||Fv(),Bv();for(const r of n.manifest.requiredShards){const s=tn.get(r);s&&(s.autostart||Ji(r))}vt.id=null,ai(null,new Set),Yk(),vv(),Vr("sh3.home").then(Hs),ol.delete(e)}}function xc(e){Qn.has(e)&&(vt.id===e&&(kc(e),Ks(null)),Qn.delete(e))}async function vs(){const e=vt.id?yn(vt.id):null;if(e){for(const t of e.manifest.requiredShards){const n=tn.get(t);if(n?.suspend&&await n.suspend()===!1)return!1}if(e.suspend&&await e.suspend()===!1)return!1}return vv(),Fv(),ai(null,new Set),Ks(null),!0}function Sc(e){un.current.class==="compact"&&(e.kind==="float"?hn.setRoot({kind:"float",floatId:e.floatId}):hn.reset())}function gh(){return{root:Ut(),source:Bi()}}function N0(e){const t=Ut().docked,n=Ec(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 q0(e){const t=Ut();return Hi(t.docked,n=>n.slotId===e)?(Sc({kind:"docked"}),!0):yh(t,n=>n.slotId===e)}function Ui(e){const t=Ut();return Hi(t.docked,n=>n.viewId===e)?(Sc({kind:"docked"}),!0):yh(t,n=>n.viewId===e)}function Hi(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(Hi(n,t))return!0}return!1}function yh(e,t){for(const n of e.floats)if(Hi(n.content,t))return De.focus(n.id),Sc({kind:"float",floatId:n.id}),!0;return!1}function B0(e,t){return _h(e,t,!0)}function F0(e,t){return _h(e,t,!1)}function _h(e,t,n){const r=Ut().docked,s=$r(r,e);if(!s||s.type!=="split")return!1;const a=s;return t<0||t>=a.children.length?!1:(a.collapsed||(a.collapsed=a.children.map(()=>!1)),a.collapsed[t]=n,!0)}async function Ic(e){const t=Ut(),n=t.docked;if(!Qr(n,e))return V0(t,e);const a=zv(e)?.closable;return!a||typeof a=="object"&&(!await a.canClose()||!Qr(n,e))?!1:(Di(n,e),Nr(n),!0)}async function V0(e,t){for(const n of e.floats){if(!Qr(n.content,t))continue;const a=zv(t)?.closable;if(typeof a=="object"&&(!await a.canClose()||!Qr(n.content,t)))return!1;Di(n.content,t);const o=n.content.type==="tabs"?n.content:null;return(!o||o.tabs.length===0)&&De.close(n.id),!0}return!1}function wh(e){const t=Ut(),n=Qr(t.docked,e);if(!n)return null;const r=n.entry,s=r.viewId;if(!s)return null;const a=r.label,o=r.meta;return Di(t.docked,e),Nr(t.docked),De.open(s,{title:a,meta:o})}function kh(e){const n=Ut().floats.find(l=>l.id===e);if(!n)return!1;const r=n.content,s=r.type==="tabs"?r:null;if(!s||s.tabs.length===0)return De.close(e),!1;const a=s.tabs[s.activeTab??0]??s.tabs[0],o=Ac({slotId:a.slotId,viewId:a.viewId,label:a.label,meta:a.meta});return o&&De.close(e),o}function Ec(e){if(e.type==="tabs")return e;if(e.type==="split")for(const t of e.children){const n=Ec(t);if(n)return n}return null}function xh(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=xh(e.children[n],[...t,n]);if(r)return r}return null}function Ac(e){const t=Ut().docked;if(Ui(e.viewId??""))return!0;const n=Sh(t);if(n)return n.tabs.push(e),n.activeTab=n.tabs.length-1,!0;const r=Ih(t);if(r)return $o(t,r,e,"right"),!0;const s=Ec(t);if(s)return s.tabs.push(e),s.activeTab=s.tabs.length-1,!0;const a=xh(t);return a?($o(t,a,e,"right"),!0):!1}function Sh(e){if(e.type==="tabs")return e.role==="body"?e:null;if(e.type==="split")for(const t of e.children){const n=Sh(t);if(n)return n}return null}function Ih(e,t=[]){if(e.type==="slot")return e.role==="body"?t:null;if(e.type==="split")for(let n=0;n<e.children.length;n++){const r=Ih(e.children[n],[...t,n]);if(r)return r}return null}function Eh(e){return oc(Ut(),e)}const ll="sh3:authToken";let oi=null,cl=!1;function U0(){if(!cl&&(cl=!0,!(typeof localStorage>"u")))try{oi=localStorage.getItem(ll)}catch{oi=null}}function Ki(e){if(cl=!0,oi=e,!(typeof localStorage>"u"))try{e?localStorage.setItem(ll,e):localStorage.removeItem(ll)}catch{}}function Ah(){return U0(),oi}let Aa=null,Vu=!1;function H0(){return typeof window>"u"?!1:"__TAURI_INTERNALS__"in window||"__TAURI__"in window}async function K0(){if(Vu)return Aa;if(Vu=!0,!H0())return null;try{Aa=(await import("@tauri-apps/plugin-http")).fetch}catch{Aa=null}return Aa}async function Re(e,t){const n=Ah();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 K0();return s?s(e,r):fetch(e,{credentials:"include",...r})}let hs=V(null),Tn=V(null),ps=V(!1),Wi="",ul=null;function Uu(e,t){Wi=e,ul=t.auth,w(hs,t.user,!0),w(Tn,t.session,!0),w(ps,!t.session&&!t.user,!0),Ki(t.session?.token??null)}async function Ch(e,t){try{const n=await Re(`${Wi}/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 w(hs,r.user,!0),w(Tn,r.session,!0),w(ps,!1),Ki(r.session?.token??null),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function W0(e,t,n){try{const r=await Re(`${Wi}/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 w(hs,s.user,!0),w(Tn,s.session,!0),w(ps,!1),Ki(s.session?.token??null),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function Y0(){try{await Re(`${Wi}/api/auth/logout`,{method:"POST"})}catch{}if(Ki(null),ul?.required&&!ul.guestAllowed){window.location.reload();return}w(hs,null),w(Tn,null),w(ps,!0)}function X0(){w(hs,{id:"local",username:"local",displayName:"Local Owner",role:"admin",createdAt:"",updatedAt:""},!0),w(Tn,{token:"local",userId:"local",role:"admin",expiresAt:1/0},!0),w(ps,!1)}function G0(){return i(Tn)?.token==="local"}function Tt(){return i(Tn)?.role==="admin"}function dl(){return i(Tn)!==null}function Th(){return i(ps)}function ts(){return i(hs)}function Yi(){return i(Tn)?`Bearer ${i(Tn).token}`:null}const J0=2e3;let fl=0;function Z0(){return`e${++fl}`}function Q0(e){if(e.length<2||e.charCodeAt(0)!==101)return NaN;const t=Number(e.slice(1));return Number.isInteger(t)?t:NaN}class $0{#e;get entries(){return i(this.#e)}set entries(t){w(this.#e,t,!0)}constructor(t=J0){this.#e=V(ve([])),this.cap=t}push(t){const n=this.entries[this.entries.length-1];if(n&&n.kind==="text"&&t.kind==="text"&&n.stream===t.stream){n.chunks.push(...t.chunks);return}const r={...t,id:Z0()};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=Q0(r.id);Number.isFinite(s)&&s>n&&(n=s)}n>fl&&(fl=n),this.entries.splice(0,this.entries.length,...t)}}const Hu=[1e3,2e3,5e3,1e4];class Rh{#e;get connected(){return i(this.#e)}set connected(t){w(this.#e,t,!0)}#t;get cwd(){return i(this.#t)}set cwd(t){w(this.#t,t,!0)}#n;get tenantRoot(){return i(this.#n)}set tenantRoot(t){w(this.#n,t,!0)}#s;get env(){return i(this.#s)}set env(t){w(this.#s,t,!0)}#r;get historyByMode(){return i(this.#r)}set historyByMode(t){w(this.#r,t,!0)}#i;get lastSeq(){return i(this.#i)}set lastSeq(t){w(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=V(!1),this.#t=V(""),this.#n=V(""),this.#s=V(ve({})),this.#r=V(ve({})),this.#i=V(0)}connect(){if(!this.closed){try{this.ws=new WebSocket(this.url)}catch{this.scheduleReconnect();return}this.ws.addEventListener("open",()=>{this.backoffIndex=0,this.connected=!0;const t=this.lastSeq>0?{t:"hello",replayFrom:this.lastSeq}:{t:"hello"};this.sendRaw(t);for(const n of this.pendingHistoryLogs)this.sendRaw(n);this.pendingHistoryLogs=[]}),this.ws.addEventListener("message",t=>{let n;try{n=JSON.parse(t.data)}catch{return}n.t==="event"&&typeof n.event.seq=="number"&&(this.lastSeq=n.event.seq),n.t==="welcome"&&(this.cwd=n.cwd,this.tenantRoot=n.tenantRoot,this.env=n.env,this.lastSeq=n.seq),n.t==="cwd"&&(this.cwd=n.cwd),n.t==="history-bundle"&&(this.historyByMode=n.byMode);for(const r of this.handlers)r(n)}),this.ws.addEventListener("close",()=>{this.connected=!1,this.ws=null,this.scheduleReconnect()}),this.ws.addEventListener("error",()=>{})}}scheduleReconnect(){if(this.closed)return;const t=Hu[Math.min(this.backoffIndex,Hu.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 Lh{constructor(t=""){this.base=t}async list(t){return(await(await this.#e("/api/fs/list",t)).json()).entries}async stat(t){return await(await this.#e("/api/fs/stat",t)).json()}async read(t){return await(await this.#e("/api/fs/read",t)).text()}async#e(t,n){const r=`${this.base}${t}?path=${encodeURIComponent(n)}`,s=await fetch(r,{credentials:"include"});if(!s.ok){let a=`HTTP ${s.status}`;try{const o=await s.json();o.error&&(a=o.error)}catch{}throw new Error(a)}return s}}function ex(e){const t=ti(e);if(!t)return null;const r=Av().find(s=>s.verb===t);return r?{verb:r.verb,shardId:r.shardId}:null}async function Mh(e,t,n,r){if(!kr.has(e))throw new Error(`unknown shard: ${e}`);const s=ti(t);if(!s)throw new Error(`unknown verb: ${t}`);if(!s.programmatic)throw new Error(`verb "${t}" is not programmatic`);const a=[],o=nx(a),l=await tx({sinkScrollback:o,opts:r});return{result:await s.run(l,n),scrollback:a}}async function tx(e){const t={sh3:Tc({callerKind:"verb"}),scrollback:e.sinkScrollback,session:rx(),cwd:"/",fs:new Lh,async dispatch(n){const r=n.trim();if(!r)return;const s=r.indexOf(" "),a=s===-1?r:r.slice(0,s),o=s===-1?"":r.slice(s+1),l=o.length?o.split(/\s+/):[],c=ex(a);if(!c)throw new Error(`dispatch: unknown verb "${a}"`);const u={...t,structuredArgs:void 0};await c.verb.run(u,l)},structuredArgs:e.opts?.structured,signal:e.opts?.signal};return t}function nx(e){let t=0;return{entries:e,push(r){const s={...r,id:`runverb-${++t}`};e.push(s)},clear(){e.length=0}}}function rx(){return new Rh("")}const Ws="sh3.controllable-field",vl="sh3.walker";function Cc(){return Er(Ws)}function Ph(e){for(const t of Cc())if(t.owner.shardId===e.shardId&&(t.owner.slotId??void 0)===(e.slotId??void 0)&&t.descriptor.fieldId===e.fieldId)return t}function sx(e){return e.shape==="readonly"?!0:e.shape==="imperative"?typeof e.set!="function":!1}function ax(e){if(e.shape==="element"||e.shape==="imperative"||e.shape==="readonly")return e.element}function ix(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:sx(t),source:"contributed"};e.owner.slotId!==void 0&&(n.slotId=e.owner.slotId);const r=ax(t);return r!==void 0&&(n.element=r),n}function ox(e={}){const t=[];for(const n of Cc())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(ix(n));return t}function lx(e){return e.get()}function cx(e){const t=e.element;return t instanceof HTMLInputElement&&t.type==="checkbox"?t.checked:t.value}function ux(e){const t=Ph(e);if(!t)throw new Error(`unknown field: ${e.shardId}::${e.slotId??""}::${e.fieldId}`);const n=t.descriptor;return n.shape==="element"?cx(n):lx(n)}function Dh(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 dx(e,t){const n=Ph(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}Dh(r.element,t)}const fx=new Set(["submit","button","reset","file","hidden"]);function vx(e){return e.type==="number"?"number":e.type==="checkbox"?"boolean":"string"}function hx(e){return Array.from(e.options).map(t=>t.value)}function Ku(e){return e.toLowerCase().trim().replace(/[^a-z0-9.\-_ ]/g,"").replace(/\s+/g,"-").replace(/^-+|-+$/g,"")}function zh(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 px(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=zh(e);if(s){const o=Ku(s);if(o.length>0)return o}if(e.id)return e.id;const a=e.placeholder;if(a){const o=Ku(a);if(o.length>0)return o}return`field-${t}`}function mx(e){return zh(e)?.trim()??e.placeholder??null}function bx(e){return e.hasAttribute("data-sh3-field")?!0:e instanceof HTMLInputElement?!fx.has(e.type):e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement}function xo(e,t){const n=new Set;for(const o of Cc()){const l=o.descriptor;l.shape==="element"&&n.add(l.element)}const r=t.querySelectorAll("input, textarea, select, [data-sh3-field]"),s=[];let a=0;for(const o of Array.from(r)){if(!bx(o)||n.has(o))continue;let l="string",c;if(o instanceof HTMLInputElement)l=vx(o);else if(o instanceof HTMLSelectElement)l="enum",c=hx(o);else if(o.hasAttribute("data-sh3-field")){const f=o.getAttribute("data-sh3-field-kind");f&&["string","number","integer","boolean","enum","json"].includes(f)&&(l=f)}const u=px(o,a);/^field-\d+$/.test(u)&&(a+=1);const d={shardId:vl,slotId:e,fieldId:u,label:mx(o)??u,kind:l,readonly:!1,source:"walker",element:o};c!==void 0&&(d.enumValues=c),s.push(d)}return s}const Xi=new Set;let Ca=null,So=null,Wu=null,Io=!1;function gx(){if(Ca&&Ca.isConnected)return Ca;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),Ca=e,So||(So=()=>hl(),window.addEventListener("resize",So)),Wu||(Wu=Oi(Ws,()=>{const t=new Set;for(const n of Er(Ws))t.add(li({shardId:n.owner.shardId,slotId:n.owner.slotId,fieldId:n.descriptor.fieldId}));for(const n of Array.from(Xi))t.has(li(n.addr))||jh(n)})),e}function li(e){return`${e.shardId}::${e.slotId??""}::${e.fieldId}`}function yx(e){for(const t of Er(Ws))if(t.owner.shardId===e.shardId&&(t.owner.slotId??void 0)===(e.slotId??void 0)&&t.descriptor.fieldId===e.fieldId)return t}function _x(e){const t=e.descriptor;if(t.shape==="element"||t.shape==="imperative"||t.shape==="readonly")return t.element}function wx(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 kx(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 hl(){Io||(Io=!0,requestAnimationFrame(()=>{Io=!1;for(const e of Xi)kx(e)}))}function jh(e){if(!e.disposed){e.disposed=!0,Xi.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 xx(e,t){const n=yx(e);if(!n)throw new Error(`unknown field: ${li(e)}`);const r=_x(n);if(!r)throw new Error(`field has no element to anchor to: ${li(e)}`);const s=gx(),a=r.getBoundingClientRect(),o=t({element:r,rect:a});let l,c=null;o instanceof HTMLElement?l=o:(l=o.element,c=o);const u=document.createElement("div");u.className="sh3-decoration",u.style.cssText=`position: absolute; left: ${a.left}px; top: ${a.top}px; width: ${a.width}px; height: ${a.height}px; pointer-events: none;`,u.appendChild(l),s.appendChild(u);const d=wx(r),f={addr:e,element:l,wrapper:u,target:r,handle:c,resizeObserver:new ResizeObserver(()=>hl()),scrollAncestor:d,scrollListener:()=>hl(),disposed:!1};return f.resizeObserver.observe(r),d===window?window.addEventListener("scroll",f.scrollListener,!0):d.addEventListener("scroll",f.scrollListener),Xi.add(f),()=>jh(f)}const Yu=["ephemeral","session","workspace","user"];function Oh(e){return e.type==="tabs"?e.tabs.filter(t=>t.viewId!==null):e.type==="split"?e.children.flatMap(Oh):e.viewId!==null?[{slotId:e.slotId,viewId:e.viewId,label:e.viewId}]:[]}function Tc(e){e?.callerKind,e?.callerShardId;const t=e?.zones;function n(){try{const{root:l}=gh();return Oh(l.docked).map(c=>({slotId:c.slotId,viewId:c.viewId??"",label:c.label}))}catch{return[]}}function r(l){if(!l.slotId)throw new Error(`walker field requires slotId: ${l.shardId}::::${l.fieldId}`);const c=_o(l.slotId);if(!c?.host)throw new Error(`unknown field: ${l.shardId}::${l.slotId}::${l.fieldId}`);const u=xo(l.slotId,c.host).find(d=>d.fieldId===l.fieldId);if(!u||!u.element)throw new Error(`unknown field: ${l.shardId}::${l.slotId}::${l.fieldId}`);return u}function s(l){const u=r(l).element;return u instanceof HTMLInputElement&&u.type==="checkbox"?u.checked:u instanceof HTMLInputElement||u instanceof HTMLTextAreaElement||u instanceof HTMLSelectElement?u.value:u.textContent??""}function a(l,c){const d=r(l).element;if(d instanceof HTMLInputElement||d instanceof HTMLTextAreaElement||d instanceof HTMLSelectElement){Dh(d,c);return}throw new Error(`walker field "${l.fieldId}" is a [data-sh3-field] custom element; the framework cannot write into it. Use an explicit imperative registration with set().`)}const o={list(l){const c=ox({slotId:l?.slotId,shardId:l?.shardId,kind:l?.kind}),u=l?.walker??"off";if(u==="off")return c;const d=l?.slotId?[l.slotId]:Array.from(new Set(c.map(v=>v.slotId).filter(v=>!!v)));let f=c;for(const v of d){const m=_o(v);if(!m?.host)continue;const S=c.some(g=>g.slotId===v);u==="fallback"&&S||(f=f.concat(xo(v,m.host)))}return l?.kind&&(f=f.filter(v=>v.kind===l.kind)),f},get(l){return l.shardId===vl?s(l):ux(l)},async set(l,c){if(l.shardId===vl){a(l,c);return}return dx(l,c)},walk(l){const c=_o(l);if(!c?.host)throw new Error(`unknown slot: ${l}`);return xo(l,c.host)},onChange(l){return Oi(Ws,l)},attachDecoration(l,c){return xx(l,c)}};return{listApps(){return us().map(l=>({id:l.id,label:l.label}))},getActiveApp(){const l=rc();return l?{id:l.id,label:l.label}:null},launchApp(l){Vn(l)},listShards(){return Array.from(tn.values()).map(l=>({id:l.manifest.id,label:l.manifest.label,version:l.manifest.version}))},listViewsInCurrentLayout(){return n()},openViewInCurrentLayout(l){try{if(Ui(l))return{ok:!0};const c=Ys().find(u=>u.viewId===l);if(c){const u=`standalone:${l}:${Date.now()}`;return Ac({slotId:u,viewId:l,label:c.label})?{ok:!0}:{ok:!1,error:`could not dock "${l}" — no available slot`}}return{ok:!1,error:`view "${l}" not found in current layout`}}catch(c){return{ok:!1,error:c instanceof Error?c.message:String(c)}}},listStandaloneViews(){return Ys()},popoutSlot(l){try{const c=wh(l);return c?{ok:!0,floatId:c}:{ok:!1,error:`slot "${l}" not found in docked tree`}}catch(c){return{ok:!1,error:c instanceof Error?c.message:String(c)}}},dockFloat(l){try{return kh(l)?{ok:!0}:{ok:!1,error:`float "${l}" not found or has no dockable content`}}catch(c){return{ok:!1,error:c instanceof Error?c.message:String(c)}}},locateSlot(l){try{return Eh(l)}catch{return null}},listFloats(){return De.list().map(l=>{const c=l.content.type==="tabs"?l.content:null,u=c?c.tabs[c.activeTab??0]??c.tabs[0]:null;return{floatId:l.id,viewId:u?.viewId??null,label:l.title??u?.label??l.id}})},closeSlot(l){return Ic(l),{ok:!0}},listZones(l){if(!t)return[];const c=new Map;for(const u of Yu)for(const d of t.list(u)){if(l&&d!==l)continue;let f=c.get(d);f||(f=new Set,c.set(d,f)),f.add(u)}return Array.from(c.entries()).map(([u,d])=>({shardId:u,zones:Array.from(d)}))},readZone(l,c){return!t||!Yu.includes(c)?null:t.peek(c,l)??null},whoAmI(){return{userId:ts()?.id??"guest",admin:Tt()}},setMode(l){return!1},listModes(){return[]},getMode(){return{id:"sh3",label:"sh3"}},dispatchToTerminal:_c({headless:!0}),listVerbs(l){const c=l?.programmaticOnly===!0,u=Av().map(({verb:d,shardId:f})=>({shardId:f,name:d.name,summary:d.summary,programmatic:d.programmatic,schema:d.schema}));return c?u.filter(d=>d.programmatic===!0):u},async runVerb(l,c,u,d){return Mh(l,c,u,d)},listActions(l){let u=gc(et(),kt());if(l?.submenuOf!==void 0){const d=l.submenuOf;u=u.filter(f=>f.submenuOf===d)}return l?.activeOnly&&(u=u.filter(d=>d.active)),u},runAction(l,c){return uh(l)},listViews(){return n()},fields:o}}function Sx(e){return Tc({callerKind:"verb",zones:e})}class Ix{#e;#t;constructor(t,n){this.#e=t.replace(/\/$/,""),this.#t=n}async read(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}`,a=await Re(s,{credentials:"include"});if(a.status===404)return null;if(!a.ok)throw new Error(`Document read failed: ${a.status}`);return(a.headers.get("content-type")??"").includes("application/octet-stream")?a.arrayBuffer():a.text()}async write(t,n,r,s){const a=`${this.#e}/api/docs/${t}/${n}/${r}`,o={...this.#n(),"Content-Type":typeof s=="string"?"text/plain":"application/octet-stream"},l=await Re(a,{method:"PUT",headers:o,body:s,credentials:"include"});if(!l.ok)throw new Error(`Document write failed: ${l.status}`)}async delete(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}`,a=await Re(s,{method:"DELETE",headers:this.#n(),credentials:"include"});if(!a.ok)throw new Error(`Document delete failed: ${a.status}`)}async list(t,n){const r=`${this.#e}/api/docs/${t}/${n}`,s=await Re(r,{credentials:"include"});if(!s.ok)throw new Error(`Document list failed: ${s.status}`);return s.json()}async exists(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}`;return(await Re(s,{method:"HEAD",credentials:"include"})).ok}async listAllShards(t){const n=`${this.#e}/api/docs/${t}/_shards`,r=await Re(n,{credentials:"include"});if(!r.ok)throw new Error(`listAllShards failed: ${r.status}`);return r.json()}async listAllDocuments(t){const n=`${this.#e}/api/docs/${t}/_all`,r=await Re(n,{credentials:"include"});if(!r.ok)throw new Error(`listAllDocuments failed: ${r.status}`);return r.json()}async readMeta(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}?meta=1`,a=await Re(s,{credentials:"include"});if(!a.ok)throw new Error(`readMeta failed: ${a.status}`);const o=await a.json();return o.exists?o:null}async resolve(t,n,r,s){const a=`${this.#e}/api/docs/${t}/${n}/${r}/resolve`,o=typeof s=="string"?{choice:s}:{choice:s.origin},l=await Re(a,{method:"POST",credentials:"include",headers:{...this.#n(),"Content-Type":"application/json"},body:JSON.stringify(o)});if(!l.ok)throw new Error(`resolve failed: ${l.status}`)}async readBranch(t,n,r,s){const a=`${this.#e}/api/docs/${t}/${n}/${r}/branch?origin=${encodeURIComponent(s)}`,o=await Re(a,{credentials:"include"});if(o.status===404)return null;if(!o.ok)throw new Error(`readBranch failed: ${o.status}`);return o.text()}async rename(t,n,r,s){const a=`${this.#e}/api/docs/${t}/${n}/${r}/rename`,o={...this.#n(),"Content-Type":"application/json"},l=await Re(a,{method:"POST",headers:o,body:JSON.stringify({to:s}),credentials:"include"});if(l.status===404)throw new Error(`Document not found at ${r}`);if(l.status===409)throw new Error(`Document already exists at ${s}`);if(!l.ok)throw new Error(`Document rename failed: ${l.status}`)}#n(){return this.#t?{Authorization:`Bearer ${this.#t}`}:{}}}class Ex{#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 Yn=new Ex,Ax=1e3;function Cx(e,t,n,r){const s=new Set,a=new Set;function o(u){return!r.extensions||r.extensions.length===0?!0:r.extensions.some(d=>u.endsWith(d))}function l(u,d){Yn.emit({type:u,path:d,tenantId:e,shardId:t})}const c={async list(){const u=await n.list(e,t);return!r.extensions||r.extensions.length===0?u:u.filter(d=>o(d.path))},async read(u){const d=await n.read(e,t,u);return d===null?null:typeof d=="string"?d:new TextDecoder().decode(d)},async write(u,d){const f=await n.exists(e,t,u);await n.write(e,t,u,d),l(f?"update":"create",u)},async delete(u){const d=await n.exists(e,t,u);await n.delete(e,t,u),d&&l("delete",u)},async rename(u,d){if(!o(d))throw new Error(`Cannot rename to ${d}: violates handle extensions filter`);for(const f of s)if(f.path===u)throw new Error(`Cannot rename: active autosave on ${u}; flush and dispose first`);await n.rename(e,t,u,d),Yn.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=Yn.subscribe(f=>{f.tenantId===e&&f.shardId===t&&o(f.path)&&u(f)});return a.add(d),()=>{d(),a.delete(d)}},autosave(u,d){const f=new Tx(c,u,d?.debounceMs??Ax);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 Tx{#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 Rx="sync:peer",Lx="sync:policy";let Nh="";function qh(e){Nh=e}function st(){return Nh}async function Mx(e){const t=await Re(`${st()}/api/env-state/${encodeURIComponent(e)}`,{credentials:"omit"});return t.ok?await t.json():(console.warn(`[sh3] Failed to fetch env state for "${e}": HTTP ${t.status}`),{})}async function Px(e,t){if(!Tt())throw new Error("Cannot update env state: not elevated to admin");const n=Yi(),r={"Content-Type":"application/json"};n&&(r.Authorization=n);const s=await Re(`${st()}/api/env-state/${encodeURIComponent(e)}`,{method:"PUT",headers:r,body:JSON.stringify(t),credentials:"omit"});if(!s.ok){const a=await s.json().catch(()=>({}));throw new Error(`Env state update failed: HTTP ${s.status} — ${a.error??"unknown"}`)}}async function Rc(e,t,n){if(!Tt())throw new Error("Cannot install: not elevated to admin");const r=Yi(),s=new FormData;s.append("manifest",new Blob([JSON.stringify(e)],{type:"application/json"}),"manifest.json"),s.append("client",new Blob([t],{type:"application/javascript"}),"client.js"),n!==void 0&&s.append("server",new Blob([n],{type:"application/javascript"}),"server.js");const a={};r&&(a.Authorization=r);const o=await Re(`${st()}/api/packages/install`,{method:"POST",headers:a,body:s,credentials:"omit"});if(!o.ok){let c={};try{c=await o.json()}catch{}return{ok:!1,error:typeof c.error=="string"?c.error:`HTTP ${o.status}`,code:typeof c.code=="string"?c.code:void 0,missing:Array.isArray(c.missing)?c.missing:void 0}}return{ok:!0,warnings:(await o.json()).warnings??[]}}async function Dx(e){if(!Tt())throw new Error("Cannot uninstall: not elevated to admin");const t=Yi(),n={"Content-Type":"application/json"};t&&(n.Authorization=t);const r=await Re(`${st()}/api/packages/uninstall`,{method:"POST",headers:n,body:JSON.stringify({id:e}),credentials:"omit"});if(!r.ok){const s=await r.json().catch(()=>({}));throw new Error(`Uninstall failed: HTTP ${r.status} — ${s.error??"unknown"}`)}}async function zx(){const e=await Re(`${st()}/api/packages`,{credentials:"omit"});return e.ok?await e.json():[]}const Bh="documents:browse",Fh="documents:read",Vh="documents:write";function jx(e,t,n={canRead:!1,canWrite:!1}){const r={listDocuments:()=>t.listAllDocuments(e),listShards:()=>t.listAllShards(e),watchDocuments:s=>Yn.subscribe(a=>{a.tenantId===e&&s(a)})};return n.canRead&&(r.readFrom=(s,a)=>t.read(e,s,a),r.statusFrom=async(s,a)=>t.readMeta?t.readMeta(e,s,a):null,r.readBranchFrom=async(s,a,o)=>t.readBranch?t.readBranch(e,s,a,o):null),n.canWrite&&(r.writeTo=async(s,a,o)=>{const l=await t.exists(e,s,a);await t.write(e,s,a,o),Yn.emit({type:l?"update":"create",path:a,tenantId:e,shardId:s})},r.resolveConflictFrom=async(s,a,o)=>{if(!t.resolve)throw new Error("Backend does not support resolveConflict");await t.resolve(e,s,a,o),Yn.emit({type:"update",path:a,tenantId:e,shardId:s})},r.renameFrom=async(s,a,o,l)=>{if(l?.newShardId!==void 0)throw new Error("Cross-shard move is not yet supported (ADR-018 amendment 2026-04-27)");await t.rename(e,s,a,o),Yn.emit({type:"rename",path:o,oldPath:a,tenantId:e,shardId:s})},r.deleteFrom=async(s,a)=>{const o=await t.exists(e,s,a);await t.delete(e,s,a),o&&Yn.emit({type:"delete",path:a,tenantId:e,shardId:s})}),r}function Ox(e,t,n){if(t===null)return[...new Set(e.map(f=>f.shardId))].sort().map(f=>({kind:"folder",name:f,fullPath:f}));const r=e.filter(d=>d.shardId===t),s=new Map,a=[],o=n?n+"/":"",l=o.length;for(const d of r){if(!d.path.startsWith(o))continue;const f=d.path.slice(l),v=f.indexOf("/");if(v>=0){const m=f.slice(0,v),S=n?`${n}/${m}`:m;s.has(m)||s.set(m,S)}else a.push({kind:"file",name:f,doc:d})}const c=[...s.entries()].map(([d,f])=>({kind:"folder",name:d,fullPath:f})).sort((d,f)=>d.name.localeCompare(f.name)),u=a.sort((d,f)=>d.name.localeCompare(f.name));return[...c,...u]}function Nx(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function qx(e){const t=new Date(e);return t.toLocaleDateString("en-US",{month:"short",day:"numeric",year:t.getFullYear()!==new Date().getFullYear()?"numeric":void 0})}const Bx={guml:"⬡",glsl:"◇",md:"≡",obj:"△",png:"▦"};function Fx(e){const t=e.slice(e.lastIndexOf(".")+1).toLowerCase();return Bx[t]??"▯"}function Vx(e,t){const n=[{label:"SH3",level:0,targetShard:null,targetPrefix:""}];if(e&&(n.push({label:e,level:1,targetShard:e,targetPrefix:""}),t)){const r=t.split("/");for(let s=0;s<r.length;s++)n.push({label:r[s],level:2+s,targetShard:e,targetPrefix:r.slice(0,s+1).join("/")})}return n}var Ux=E('<span class="sh3-doc-browser__crumb-sep svelte-16fo6d5">/</span>'),Hx=E('<!> <button type="button"> </button>',1),Kx=E('<div class="sh3-doc-browser__empty svelte-16fo6d5"> </div>'),Wx=E('<span class="sh3-doc-browser__icon sh3-doc-browser__icon--folder svelte-16fo6d5" aria-hidden="true">📁</span> <span class="sh3-doc-browser__name svelte-16fo6d5"> </span> <span class="sh3-doc-browser__meta svelte-16fo6d5"></span>',1),Yx=E('<span class="sh3-doc-browser__icon svelte-16fo6d5" aria-hidden="true"> </span> <span class="sh3-doc-browser__name svelte-16fo6d5"> </span> <span class="sh3-doc-browser__meta svelte-16fo6d5"> <span class="sh3-doc-browser__date svelte-16fo6d5"> </span></span>',1),Xx=E('<div role="option" tabindex="-1"><!></div>'),Gx=E('<div class="sh3-doc-browser__save-row svelte-16fo6d5"><span class="sh3-doc-browser__save-label svelte-16fo6d5">Filename:</span> <input class="sh3-doc-browser__save-input svelte-16fo6d5" type="text" placeholder="filename.ext"/></div>'),Jx=E('<div class="sh3-doc-browser svelte-16fo6d5" tabindex="-1"><div class="sh3-doc-browser__head svelte-16fo6d5"><span class="sh3-doc-browser__title svelte-16fo6d5"> </span></div> <nav class="sh3-doc-browser__crumbs svelte-16fo6d5"></nav> <div class="sh3-doc-browser__list svelte-16fo6d5"><!></div> <!> <div class="sh3-doc-browser__footer svelte-16fo6d5"><button type="button" class="sh3-doc-browser__btn sh3-doc-browser__btn--cancel svelte-16fo6d5">Cancel</button> <button type="button" class="sh3-doc-browser__btn sh3-doc-browser__btn--primary svelte-16fo6d5"> </button></div></div>');function pl(e,t){ae(t,!0);let n=te(t,"suggestedName",3,""),r=V(null),s=V(""),a=V(null),o=V(ve(n())),l=V(0),c=V(void 0);const u=F(()=>Ox(t.docs,i(r),i(s))),d=F(()=>Vx(i(r),i(s)));Ie(()=>{i(u),w(l,Math.min(i(l),i(u).length-1),!0)});function f(U){w(r,U,!0),w(s,""),w(a,null),w(o,""),w(l,0)}function v(U){i(r)===null?f(U):(w(s,U,!0),w(a,null),w(o,""),w(l,0))}function m(U){U.kind==="folder"?v(U.fullPath):(t.mode==="open"&&w(a,U.doc,!0),t.mode==="save"&&w(o,U.name,!0))}function S(){if(t.mode==="open"&&i(a))t.onCommit({shardId:i(a).shardId,path:i(a).path}),t.close();else if(t.mode==="save"&&i(o).trim()&&i(r)){const U=i(s)?`${i(r)}/${i(s)}/${i(o)}`:`${i(r)}/${i(o)}`;t.onCommit(U),t.close()}}function g(){t.onCancel(),t.close()}function b(){return t.mode==="open"?i(a)!==null:i(o).trim().length>0&&i(r)!==null}function A(U){if(!(U.target instanceof HTMLInputElement))switch(U.key){case"ArrowDown":U.preventDefault(),w(l,Math.min(i(l)+1,i(u).length-1),!0);break;case"ArrowUp":U.preventDefault(),w(l,Math.max(i(l)-1,0),!0);break;case"Enter":U.preventDefault(),i(l)>=0&&i(l)<i(u).length&&m(i(u)[i(l)]);break;case"Escape":U.preventDefault(),g();break;case"Backspace":if(i(s)){U.preventDefault();const Q=i(s).split("/");Q.pop(),w(s,Q.join("/"),!0),w(l,0)}else i(r)&&(U.preventDefault(),w(r,null),w(l,0));break}}function k(U){U.kind==="folder"?v(U.fullPath):t.mode==="open"&&(t.onCommit({shardId:U.doc.shardId,path:U.doc.path}),t.close())}var y=Jx(),C=p(y),I=p(C),P=p(I,!0);h(I),h(C);var L=_(C,2);me(L,21,()=>i(d),ut,(U,Q,G)=>{var $=Hx(),O=fe($);{var H=de=>{var ne=Ux();x(de,ne)};W(O,de=>{G>0&&de(H)})}var ee=_(O,2);let Z;var oe=p(ee,!0);h(ee),q(()=>{Z=he(ee,1,"sh3-doc-browser__crumb svelte-16fo6d5",null,Z,{"sh3-doc-browser__crumb--last":G===i(d).length-1}),z(oe,i(Q).label)}),K("click",ee,()=>{w(r,i(Q).targetShard,!0),w(s,i(Q).targetPrefix,!0),w(a,null),w(o,""),w(l,0)}),x(U,$)}),h(L);var T=_(L,2),M=p(T);{var N=U=>{var Q=Kx(),G=p(Q,!0);h(Q),q(()=>z(G,i(r)===null?"No shards available.":i(s)?"Empty directory.":"No documents in this shard.")),x(U,Q)},R=U=>{var Q=Me(),G=fe(Q);me(G,17,()=>i(u),ut,($,O,H)=>{const ee=F(()=>H===i(l)),Z=F(()=>i(O).kind==="file"&&t.mode==="open"&&i(a)?.path===i(O).doc.path&&i(a)?.shardId===i(O).doc.shardId);var oe=Xx();let de;var ne=p(oe);{var le=_e=>{var He=Wx(),je=_(fe(He),2),ot=p(je,!0);h(je),_t(2),q(()=>z(ot,i(O).name)),x(_e,He)},be=_e=>{var He=Yx(),je=fe(He),ot=p(je,!0);h(je);var Ln=_(je,2),ce=p(Ln,!0);h(Ln);var se=_(Ln,2),Ee=p(se),Pe=_(Ee),ke=p(Pe,!0);h(Pe),h(se),q((Oe,Xe,Be)=>{z(ot,Oe),z(ce,i(O).name),z(Ee,`${Xe??""} `),z(ke,Be)},[()=>Fx(i(O).name),()=>Nx(i(O).doc.size),()=>qx(i(O).doc.lastModified)]),x(_e,He)};W(ne,_e=>{i(O).kind==="folder"?_e(le):_e(be,-1)})}h(oe),q(()=>{de=he(oe,1,"sh3-doc-browser__item svelte-16fo6d5",null,de,{"sh3-doc-browser__item--active":i(ee),"sh3-doc-browser__item--selected":i(Z),"sh3-doc-browser__item--folder":i(O).kind==="folder"}),re(oe,"aria-selected",i(Z))}),K("click",oe,()=>m(i(O))),K("keydown",oe,_e=>{_e.key==="Enter"&&m(i(O))}),K("dblclick",oe,()=>k(i(O))),Ue("mouseenter",oe,()=>w(l,H,!0)),x($,oe)}),x(U,Q)};W(M,U=>{i(u).length===0?U(N):U(R,-1)})}h(T),Ne(T,U=>w(c,U),()=>i(c));var D=_(T,2);{var j=U=>{var Q=Gx(),G=_(p(Q),2);xe(G),h(Q),K("keydown",G,$=>{$.key==="Enter"&&b()&&S()}),Te(G,()=>i(o),$=>w(o,$)),x(U,Q)};W(D,U=>{t.mode==="save"&&i(r)!==null&&U(j)})}var B=_(D,2),X=p(B),J=_(X,2),Y=p(J,!0);h(J),h(B),h(y),q(U=>{z(P,t.mode==="open"?"Open Document":"Save Document"),J.disabled=U,z(Y,t.mode==="open"?"Open":"Save")},[()=>!b()]),K("keydown",y,A),K("click",X,g),K("click",J,S),x(e,y),ie()}pe(["keydown","click","dblclick"]);function Xu(e){function t(s){if(s){const a=s.getBoundingClientRect();return{x:a.left+a.width/2,y:a.top}}return{x:window.innerWidth/2,y:window.innerHeight/2}}async function n(s){const a=await e();return new Promise(o=>{const l=dt.popup.show(pl,{anchor:t(s?.anchor)},{mode:"open",docs:a,onCommit:u=>{o(u)},onCancel:()=>{o(null)}}),c=l.close;l.close=()=>{c(),o(null)}})}async function r(s){const a=await e();return new Promise(o=>{const l=dt.popup.show(pl,{anchor:t(s?.anchor)},{mode:"save",docs:a,suggestedName:s?.suggestedName,onCommit:u=>{o(u)},onCancel:()=>{o(null)}}),c=l.close;l.close=()=>{c(),o(null)}})}return{open:n,save:r}}const Uh="keys:mint";class Hh extends Error{constructor(t){super(`Shard may not mint a key with scope '${t}' — not declared in manifest.`),this.name="ScopeEscalationError"}}class Kh extends Error{constructor(){super("User denied key creation."),this.name="ConsentDeniedError"}}const ml=new Map;let Ls=null;function Wh(e){return Ls=e,()=>{Ls===e&&(Ls=null)}}async function Zx(e,t){if(!Ls)throw new Error("No consent listener registered — the sh3 must mount ConsentDialog.");const n=`c_${Math.random().toString(36).slice(2)}${Date.now()}`;return new Promise(r=>{ml.set(n,{resolve:r}),Ls({...t,shardId:e,requestId:n})})}function bl(e,t){const n=ml.get(e);n&&(ml.delete(e),n.resolve(t))}const ci=new Map,Ba=new Map,Qx=5e3;function $x(e,t){let n=Ba.get(e);n||(n=new Set,Ba.set(e,n)),n.add(t),setTimeout(()=>{n.delete(t),n.size===0&&Ba.delete(e)},Qx)}function eS(e,t){return Ba.get(e)?.has(t)??!1}function Lc(e,t){const n=ci.get(e)??new Set;return n.add(t),ci.set(e,n),()=>{n.delete(t)}}function Yh(e,t){if(!e||eS(e,t))return;$x(e,t);const n=ci.get(e);if(n)for(const s of n)s(t);const r=ci.get("*");if(r)for(const s of r)s(t)}function tS(){if(typeof EventSource>"u")return()=>{};const e=st(),t=Ah(),n=t?`${e}/api/keys/events?token=${encodeURIComponent(t)}`:`${e}/api/keys/events`,r=new EventSource(n,t?{}:{withCredentials:!0});return r.onmessage=s=>{try{const a=JSON.parse(s.data);Yh(a.shardId,a.id)}catch{}},()=>r.close()}function nS(e){const{shardId:t,shardPermissions:n}=e,r=s=>{for(const a of s)if(!n.includes(a)&&!n.includes("admin:*"))throw new Hh(a)};return{async mint(s){if(r(s.scopes),!await Zx(t,s))throw new Kh;const o=await Re(`${st()}/api/keys/consent`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({shardId:t,...s})});if(!o.ok)throw new Error(`Consent ticket failed: ${o.status}`);const{ticket:l}=await o.json(),c=await Re(`${st()}/api/keys`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({ticket:l})});if(!c.ok)throw new Error(`Mint failed: ${c.status}`);return c.json()},async list(){const s=await Re(`${st()}/api/keys`);if(!s.ok)throw new Error(`List failed: ${s.status}`);return(await s.json()).filter(o=>o.mintedByShardId===t)},async revoke(s){const a=await Re(`${st()}/api/keys/${encodeURIComponent(s)}`,{method:"DELETE"});if(!a.ok&&a.status!==404)throw new Error(`Revoke failed: ${a.status}`);Yh(t,s)}}}const tn=ve(new Map),Ur=new Map,kr=ve(new Map),ui=ve(new Map);function Gi(e){const t=e.manifest.id;tn.has(t)&&kr.has(t)&&Ji(t),tn.set(t,e),ui.delete(t)}async function di(e,t){const n=tn.get(e);if(!n)throw new Error(`Cannot activate shard "${e}": not registered`);if(Ur.has(e))return;const r={shard:n,ctx:void 0,viewIds:new Set,verbNames:new Set,cleanupFns:[]},s=ve({proxy:null,defaults:null}),a={register(u,d,f){let v=d;if(u==="sh3.controllable-field"){const S={shardId:e};f?.scope?.slotId!==void 0&&(S.slotId=f.scope.slotId),v={owner:S,descriptor:d}}const m=Dv(u,v,f);return r.cleanupFns.push(async()=>m()),m},list(u){return Er(u)},listPoints(){return v1()},onChange(u,d){const f=Oi(u,d);return r.cleanupFns.push(async()=>f()),f},onAnyChange(u){const d=h1(u);return r.cleanupFns.push(async()=>d()),d}},l=n.manifest.permissions?.includes(Bh)?jx(Sa(),ko(),{canRead:n.manifest.permissions?.includes(Fh)??!1,canWrite:n.manifest.permissions?.includes(Vh)??!1}):void 0,c={state:u=>dt.state(e,u),registerView:(u,d)=>{Xw(u,d,n.manifest.id),r.viewIds.add(u)},registerVerb:u=>{let d;e==="shell"?d=u.name:d=`${n.manifest.verbNamespace??e}:${u.name}`,Gw(d,{...u,name:d},e)&&r.verbNames.add(d)},documents:u=>{const d=Cx(Sa(),e,ko(),u);return r.cleanupFns.push(()=>d.dispose()),d},fetch(u,d){return Re(this.resolveUrl(u),d)},get serverUrl(){return st()},resolveUrl(u){if(u.startsWith("http://")||u.startsWith("https://"))return u;const f=st(),v=u.startsWith("/")?"":"/";return`${f}${v}${u}`},env(u){return s.proxy?(console.warn(`[sh3] Shard "${e}" called ctx.env() more than once; extra calls are ignored.`),s.proxy):(s.defaults=u,s.proxy={...u},s.proxy)},async envUpdate(u){if(!s.proxy||!s.defaults)throw new Error(`Shard "${e}" called envUpdate() without declaring env state`);const d=mr(s.proxy);Object.assign(s.proxy,u);try{const f=mr(s.proxy);await Px(e,f)}catch(f){throw Object.assign(s.proxy,d),f}},get isAdmin(){return Tt()},get tenantId(){return Sa()},zones:n.manifest.permissions?.includes(Ns)?il():void 0,browse:l,documentPicker:Xu(l?()=>l.listDocuments():async()=>(await ko().list(Sa(),e)).map(d=>({...d,shardId:e}))),keys:n.manifest.permissions?.includes(Uh)?nS({shardId:e,shardPermissions:n.manifest.permissions??[]}):void 0,contributions:a,actions:{register(u){const d=Vk(u,e);return r.cleanupFns.push(async()=>d()),d},selection:Fi(e),openContextMenu(u){fh(u)},openPalette(u){Vi(u)}},sh3:Tc({callerKind:"shard",callerShardId:e,zones:n.manifest.permissions?.includes(Ns)?il():void 0})};if(r.ctx=c,n.onKeyRevoked){const u=Lc(e,async d=>{try{await n.onKeyRevoked(d)}catch(f){console.error(`[sh3] onKeyRevoked failed in "${e}":`,f)}});r.cleanupFns.push(async()=>u())}Ur.set(e,r),kr.set(e,n);try{await n.activate(c);for(const u of n.manifest.views)if(!r.viewIds.has(u.id))throw new Error(`Shard "${e}" declared view "${u.id}" in its manifest but registered no factory for it.`);if(s.proxy&&s.defaults)try{const u=await Mx(e),d=Object.assign({},s.defaults,u);Object.assign(s.proxy,d)}catch(u){console.warn(`[sh3] Failed to hydrate env state for shard "${e}":`,u instanceof Error?u.message:u)}}catch(u){for(const d of r.cleanupFns)try{d()}catch{}for(const d of r.verbNames)Ev(d);for(const d of r.viewIds)Iv(d);throw Zv(e),Ur.delete(e),kr.delete(e),ui.set(e,{id:e,error:u,phase:t?.phase??"launch",timestamp:Date.now()}),console.error(`[sh3] Shard "${e}" failed to activate:`,u),u}ui.delete(e),n.autostart?.(c)}function Ji(e){const t=Ur.get(e);if(t){t.shard.deactivate?.();for(const n of t.cleanupFns)n();for(const n of t.verbNames)Ev(n);for(const n of t.viewIds)Iv(n);Zv(e),Ur.delete(e),kr.delete(e)}}function rS(e){return Ur.get(e)?.ctx}function Ys(){const e=[];for(const t of kr.values())for(const n of t.manifest.views)n.standalone&&e.push({shardId:t.manifest.id,viewId:n.id,label:n.label});return e}function sS(e){return btoa(JSON.stringify(e)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function aS(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 iS(n)}function iS(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 oS(){return typeof globalThis.__TAURI_INTERNALS__<"u"}let Gu=0;function lS(){return Gu+=1,`sh3-satellite-${Date.now()}-${Gu}`}async function Zi(e,t={}){if(!oS())return console.warn("[sh3] sh3.window.spawn called outside Tauri — no-op"),"";const{invoke:n}=await gi(async()=>{const{invoke:c}=await import("./core-DsojzR6k.js");return{invoke:c}},[]),r=sS(e),s=lS(),a=t.title??(e.kind==="float"?e.title??"SH3":`SH3 — ${e.appId}`),o=t.width??(e.kind==="float"?e.size.w:1024),l=t.height??(e.kind==="float"?e.size.h:768);return n("sh3_spawn_satellite",{payload:r,label:s,title:a,width:o,height:l})}class Et extends Error{constructor(t,n){super(`Registry validation error at ${t}: ${n}`),this.name="RegistryValidationError",this.path=t}}function Xh(e){if(!e||typeof e!="object"||Array.isArray(e))throw new Et("$","expected an object");const t=e;if(t.version!==1)throw new Et("$.version",`expected 1, got ${JSON.stringify(t.version)}`);if(!Array.isArray(t.packages))throw new Et("$.packages","expected an array");return{version:1,packages:t.packages.map((r,s)=>cS(r,`$.packages[${s}]`))}}function cS(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new Et(t,"expected an object");const n=e;ln(n,"id",t),fS(n,"type",["shard","app","combo"],t),ln(n,"label",t),ln(n,"description",t);const r=`${t}.author`;if(!n.author||typeof n.author!="object"||Array.isArray(n.author))throw new Et(r,"expected an object");const s=n.author;if(typeof s.name!="string"||s.name.length===0)throw new Et(`${r}.name`,"expected a non-empty string");if(!Array.isArray(n.versions)||n.versions.length===0)throw new Et(`${t}.versions`,"expected a non-empty array");const a=n.versions.map((o,l)=>uS(o,`${t}.versions[${l}]`));return{id:n.id,type:n.type,label:n.label,description:n.description,author:{name:s.name},icon:typeof n.icon=="string"?n.icon:void 0,versions:a}}function uS(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new Et(t,"expected an object");const n=e;ln(n,"version",t),ln(n,"contractVersion",t);const r="bundleUrl"in n&&n.bundleUrl!==void 0,s="integrity"in n&&n.integrity!==void 0;if(r&&ln(n,"bundleUrl",t),s&&ln(n,"integrity",t),r!==s)throw new Et(t,"bundleUrl and integrity must be provided together");const a="serverBundleUrl"in n&&n.serverBundleUrl!==void 0;if(a&&ln(n,"serverBundleUrl",t),"serverIntegrity"in n&&n.serverIntegrity!==void 0&&ln(n,"serverIntegrity",t),!r&&!a)throw new Et(t,"expected at least one of bundleUrl+integrity or serverBundleUrl");let o;if(n.requires!==void 0){if(!Array.isArray(n.requires))throw new Et(`${t}.requires`,"expected an array");o=n.requires.map((l,c)=>dS(l,`${t}.requires[${c}]`))}return{version:n.version,contractVersion:n.contractVersion,bundleUrl:typeof n.bundleUrl=="string"?n.bundleUrl:void 0,integrity:typeof n.integrity=="string"?n.integrity:void 0,serverBundleUrl:typeof n.serverBundleUrl=="string"?n.serverBundleUrl:void 0,serverIntegrity:typeof n.serverIntegrity=="string"?n.serverIntegrity:void 0,requires:o}}function dS(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new Et(t,"expected an object");const n=e;return ln(n,"id",t),ln(n,"versionRange",t),{id:n.id,versionRange:n.versionRange}}function ln(e,t,n){const r=e[t];if(typeof r!="string"||r.length===0)throw new Et(`${n}.${t}`,"expected a non-empty string")}function fS(e,t,n,r){if(!n.includes(e[t]))throw new Et(`${r}.${t}`,`expected one of: ${n.join(", ")}`)}const Ju=["sha256","sha384","sha512"];function vS(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(!Ju.includes(n))throw new Error(`Unsupported SRI algorithm: ${n}. Supported: ${Ju.join(", ")}`);if(!r)throw new Error(`Empty hash in SRI: ${e}`);return{algorithm:n,hash:r}}function hS(e){return`SHA-${e.slice(3)}`}function pS(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 Mc(e,t){const{algorithm:n,hash:r}=vS(t),s=hS(n),a=await crypto.subtle.digest(s,e),o=pS(a);if(o!==r)throw new Error(`Integrity check failed for ${n}. Expected: ${r}, got: ${o}`)}async function Gh(e){const t=new Set,n=[];for(const r of e){let s;try{const o=await fetch(r);if(!o.ok){console.warn(`[sh3] Registry fetch failed for ${r}: HTTP ${o.status}`);continue}s=await o.json()}catch(o){console.warn(`[sh3] Registry ${r}: ${o instanceof Error?o.message:String(o)}`);continue}let a;try{a=Xh(s)}catch(o){console.warn(`[sh3] Registry ${r} failed validation: ${o instanceof Error?o.message:String(o)}`);continue}for(const o of a.packages)t.has(o.id)||(t.add(o.id),n.push({entry:o,latest:o.versions[0],sourceRegistry:r}))}return n}async function Qi(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 Mc(s,e.integrity),s}async function Pc(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 Mc(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 $i(e,t){return{id:e.entry.id,type:e.entry.type,version:t.version,contractVersion:t.contractVersion,sourceRegistry:e.sourceRegistry,integrity:t.integrity,requires:t.requires,hasServerBundle:!!t.serverBundleUrl,serverIntegrity:t.serverIntegrity}}const Ms="sh3.shell.mode";function mS(e,t){return e.contributions.register(Ms,t)}const _n="0.19.6",Dc="sh3:user:__sh3core__:theme";let Xs=[];function bS(e){const t=Object.keys(e);for(const n of Xs)t.includes(n)||document.documentElement.style.removeProperty(`--${n}`);for(const[n,r]of Object.entries(e))document.documentElement.style.setProperty(`--${n}`,r);Xs=t;try{localStorage.setItem(Dc,JSON.stringify(e))}catch{}}function gS(){for(const e of Xs)document.documentElement.style.removeProperty(`--${e}`);Xs=[];try{localStorage.removeItem(Dc)}catch{}}function Jh(){try{const e=localStorage.getItem(Dc);if(!e)return{};const t=JSON.parse(e);return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{}}catch{return{}}}function yS(){const e=Jh();if(Object.keys(e).length!==0){for(const[t,n]of Object.entries(e))document.documentElement.style.setProperty(`--${t}`,n);Xs=Object.keys(e)}}const $n="/assets/icons-nOyIoORC.svg",Zh=Symbol("sh3.icon-sprite");function _S(e){Ml(Zh,e)}function Qh(){return Ll(Zh)}var wS=Yl('<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>'),kS=Yl('<svg class="sh3-btn__icon svelte-t4hi97" aria-hidden="true"><use></use></svg>'),xS=E('<span class="sh3-btn__label svelte-t4hi97"><!></span>'),SS=E("<button><!> <!></button>");function Dn(e,t){ae(t,!0);let n=te(t,"variant",3,"default"),r=te(t,"disabled",3,!1),s=te(t,"type",3,"button");const a=Qh();function o(y){return y.includes("/")||y.endsWith(".svg")}const l=F(()=>t.icon?o(t.icon)?t.icon:`${t.sprite??a??$n}#${t.icon}`:void 0);let c=V(!1);const u=F(()=>t.loading??i(c)),d=F(()=>n()==="icon"||!!t.icon&&!t.children);async function f(y){if(!t.onclick)return;const C=t.onclick(y);if(C&&typeof C.then=="function"){w(c,!0);try{await C}finally{w(c,!1)}}}var v=SS();let m;var S=p(v);{var g=y=>{var C=wS();x(y,C)},b=y=>{var C=kS(),I=p(C);h(C),q(()=>re(I,"href",i(l))),x(y,C)};W(S,y=>{i(u)?y(g):i(l)&&y(b,1)})}var A=_(S,2);{var k=y=>{var C=xS(),I=p(C);en(I,()=>t.children),h(C),x(y,C)};W(A,y=>{t.children&&y(k)})}h(v),q(()=>{re(v,"type",s()),m=he(v,1,`sh3-btn sh3-btn--${n()??""}`,"svelte-t4hi97",m,{"sh3-btn--icon-only":i(d),"sh3-btn--pressed":t.pressed}),v.disabled=r()||i(u),re(v,"aria-busy",i(u)||void 0),re(v,"aria-pressed",t.pressed??void 0),re(v,"title",t.title),re(v,"aria-label",t.ariaLabel??(i(d)?t.title:void 0))}),K("click",v,f),x(e,v),ie()}pe(["click"]);var IS=E('<span class="sh3-collapsible__title svelte-lvydsb"> </span>'),ES=E('<div class="sh3-collapsible__body svelte-lvydsb"><!></div>'),AS=E('<div><button class="sh3-collapsible__head svelte-lvydsb" type="button"><svg class="sh3-collapsible__caret svelte-lvydsb" aria-hidden="true" viewBox="0 0 16 16"><path d="M5 3l6 5-6 5" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg> <!></button> <!></div>');function CS(e,t){ae(t,!0);let n=te(t,"open",15,!1);function r(){n(!n()),t.onopenchange?.(n())}var s=AS();let a;var o=p(s),l=_(p(o),2);{var c=v=>{var m=Me(),S=fe(m);en(S,()=>t.header),x(v,m)},u=v=>{var m=IS(),S=p(m,!0);h(m),q(()=>z(S,t.title)),x(v,m)};W(l,v=>{t.header?v(c):t.title&&v(u,1)})}h(o);var d=_(o,2);{var f=v=>{var m=ES(),S=p(m);en(S,()=>t.children),h(m),x(v,m)};W(d,v=>{n()&&v(f)})}h(s),q(()=>{a=he(s,1,"sh3-collapsible svelte-lvydsb",null,a,{"sh3-collapsible--open":n()}),re(o,"aria-expanded",n())}),K("click",o,r),x(e,s),ie()}pe(["click"]);var TS=E('<span aria-hidden="true">*</span>'),RS=E('<span class="sh3-field__label svelte-m4dkl"> <!></span>'),LS=E('<span class="sh3-field__affix svelte-m4dkl"><!></span>'),MS=E('<span class="sh3-field__affix svelte-m4dkl"><!></span>'),PS=E("<span> </span>"),DS=E('<label><!> <span class="sh3-field__row svelte-m4dkl"><!> <input class="sh3-field__input svelte-m4dkl"/> <!></span> <!></label>');function zS(e,t){ae(t,!0);let n=te(t,"value",15,""),r=te(t,"type",3,"text"),s=te(t,"disabled",3,!1),a=te(t,"invalid",3,!1),o=te(t,"size",3,"md"),l=te(t,"required",3,!1);const c=F(()=>a()&&!!t.error),u=F(()=>i(c)?t.error:t.helper);var d=DS();let f;var v=p(d);{var m=P=>{var L=RS(),T=p(L,!0),M=_(T);{var N=R=>{var D=TS();x(R,D)};W(M,R=>{l()&&R(N)})}h(L),q(()=>z(T,t.label)),x(P,L)};W(v,P=>{t.label&&P(m)})}var S=_(v,2),g=p(S);{var b=P=>{var L=LS(),T=p(L);en(T,()=>t.prefix),h(L),x(P,L)};W(g,P=>{t.prefix&&P(b)})}var A=_(g,2);xe(A);var k=_(A,2);{var y=P=>{var L=MS(),T=p(L);en(T,()=>t.suffix),h(L),x(P,L)};W(k,P=>{t.suffix&&P(y)})}h(S);var C=_(S,2);{var I=P=>{var L=PS();let T;var M=p(L,!0);h(L),q(()=>{T=he(L,1,"sh3-field__helper svelte-m4dkl",null,T,{"sh3-field__helper--error":i(c)}),z(M,i(u))}),x(P,L)};W(C,P=>{i(u)&&P(I)})}h(d),q(()=>{f=he(d,1,"sh3-field svelte-m4dkl",null,f,{"sh3-field--invalid":a(),"sh3-field--sm":o()==="sm"}),re(A,"type",r()),re(A,"placeholder",t.placeholder),A.disabled=s(),A.required=l(),re(A,"autocomplete",t.autocomplete),re(A,"aria-invalid",a()||void 0)}),K("input",A,()=>t.oninput?.(n())),Ue("blur",A,()=>t.onchange?.(n())),Te(A,n),x(e,d),ie()}pe(["input"]);var jS=E('<span aria-hidden="true">*</span>'),OS=E('<span class="sh3-textarea__label svelte-668c6r"> <!></span>'),NS=E("<span> </span>"),qS=E('<label><!> <textarea class="sh3-textarea__input svelte-668c6r"></textarea> <!></label>');function BS(e,t){ae(t,!0);let n=te(t,"value",15,""),r=te(t,"disabled",3,!1),s=te(t,"invalid",3,!1),a=te(t,"size",3,"md"),o=te(t,"required",3,!1),l=te(t,"rows",3,3),c=te(t,"resize",3,"vertical");const u=F(()=>s()&&!!t.error),d=F(()=>i(u)?t.error:t.helper);var f=qS();let v;var m=p(f);{var S=y=>{var C=OS(),I=p(C,!0),P=_(I);{var L=T=>{var M=jS();x(T,M)};W(P,T=>{o()&&T(L)})}h(C),q(()=>z(I,t.label)),x(y,C)};W(m,y=>{t.label&&y(S)})}var g=_(m,2);Bl(g);let b;var A=_(g,2);{var k=y=>{var C=NS();let I;var P=p(C,!0);h(C),q(()=>{I=he(C,1,"sh3-textarea__helper svelte-668c6r",null,I,{"sh3-textarea__helper--error":i(u)}),z(P,i(d))}),x(y,C)};W(A,y=>{i(d)&&y(k)})}h(f),q(()=>{v=he(f,1,"sh3-textarea svelte-668c6r",null,v,{"sh3-textarea--invalid":s(),"sh3-textarea--sm":a()==="sm"}),re(g,"placeholder",t.placeholder),g.disabled=r(),g.required=o(),re(g,"rows",l()),re(g,"aria-invalid",s()||void 0),b=Ye(g,"",b,{resize:c()})}),K("input",g,()=>t.oninput?.(n())),Ue("blur",g,()=>t.onchange?.(n())),Te(g,n),x(e,f),ie()}pe(["input"]);function FS(e,t,n){let r=e;return t!==void 0&&r<t&&(r=t),n!==void 0&&r>n&&(r=n),r}function VS(e,t){const n=t.min??0,r=Math.round((e-n)/t.step);return n+r*t.step}var US=E('<span class="sh3-num__label svelte-1qa0x3m"> </span>'),HS=E('<span class="sh3-num__affix svelte-1qa0x3m"><!></span>'),KS=E('<span class="sh3-num__affix svelte-1qa0x3m"><!></span>'),WS=E('<label><!> <span class="sh3-num__row svelte-1qa0x3m"><!> <input class="sh3-num__input svelte-1qa0x3m" type="number"/> <!> <span class="sh3-num__steppers svelte-1qa0x3m"><button type="button" aria-label="Increase" class="svelte-1qa0x3m">▲</button> <button type="button" aria-label="Decrease" class="svelte-1qa0x3m">▼</button></span></span></label>');function YS(e,t){ae(t,!0);let n=te(t,"value",15,0),r=te(t,"step",3,1),s=te(t,"disabled",3,!1),a=te(t,"invalid",3,!1),o=te(t,"size",3,"md");function l(R){if(Number.isNaN(R))return;let D=FS(VS(R,{min:t.min,step:r()}),t.min,t.max);t.precision!==void 0&&(D=Number(D.toFixed(t.precision))),n(D)}function c(R){l(n()+R*r()),t.oninput?.(n())}let u=null,d=null,f=!1;function v(R){s()||(f=!0,c(R),u=setTimeout(()=>{let D=0;d=setInterval(()=>{c(R),D+=60,D>1500&&d&&(clearInterval(d),d=setInterval(()=>c(R),20))},60)},350))}function m(){u&&(clearTimeout(u),u=null),d&&(clearInterval(d),d=null),f&&(f=!1,t.onchange?.(n()))}var S=WS();let g;var b=p(S);{var A=R=>{var D=US(),j=p(D,!0);h(D),q(()=>z(j,t.label)),x(R,D)};W(b,R=>{t.label&&R(A)})}var k=_(b,2),y=p(k);{var C=R=>{var D=HS(),j=p(D);en(j,()=>t.prefix),h(D),x(R,D)};W(y,R=>{t.prefix&&R(C)})}var I=_(y,2);xe(I);var P=_(I,2);{var L=R=>{var D=KS(),j=p(D);en(j,()=>t.suffix),h(D),x(R,D)};W(P,R=>{t.suffix&&R(L)})}var T=_(P,2),M=p(T),N=_(M,2);h(T),h(k),h(S),q(()=>{g=he(S,1,"sh3-num svelte-1qa0x3m",null,g,{"sh3-num--invalid":a(),"sh3-num--sm":o()==="sm"}),re(I,"min",t.min),re(I,"max",t.max),re(I,"step",r()),I.disabled=s(),re(I,"aria-invalid",a()||void 0),Os(I,n()),M.disabled=s(),N.disabled=s()}),K("input",I,R=>{const D=R.currentTarget.valueAsNumber;Number.isNaN(D)||(n(D),t.oninput?.(D))}),Ue("blur",I,()=>{l(n()),t.onchange?.(n())}),K("pointerdown",M,()=>v(1)),K("pointerup",M,m),Ue("pointerleave",M,m),K("pointerdown",N,()=>v(-1)),K("pointerup",N,m),Ue("pointerleave",N,m),x(e,S),ie()}pe(["input","pointerdown","pointerup"]);function eo(e){return e.filter(t=>!t.disabled)}function XS(e,t){const n=eo(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 GS(e,t){const n=eo(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 JS(e){return eo(e)[0]?.value}function ZS(e){const t=eo(e);return t[t.length-1]?.value}var QS=E('<button type="button" role="radio"> </button>'),$S=E('<div role="radiogroup" tabindex="-1"></div>');function $h(e,t){ae(t,!0);let n=te(t,"value",31,()=>ve(t.options[0]?.value??"")),r=te(t,"size",3,"md"),s=te(t,"disabled",3,!1);function a(u){n(u),t.onchange?.(u)}function o(u){if(s())return;let d;switch(u.key){case"ArrowRight":case"ArrowDown":d=XS(t.options,n());break;case"ArrowLeft":case"ArrowUp":d=GS(t.options,n());break;case"Home":d=JS(t.options);break;case"End":d=ZS(t.options);break;default:return}u.preventDefault(),d!==void 0&&a(d)}var l=$S();let c;me(l,21,()=>t.options,ut,(u,d)=>{var f=QS();let v;var m=p(f,!0);h(f),q(()=>{re(f,"aria-checked",n()===i(d).value),re(f,"tabindex",n()===i(d).value?0:-1),f.disabled=s()||i(d).disabled,v=he(f,1,"svelte-17xsko9",null,v,{"sh3-seg__btn--active":n()===i(d).value}),z(m,i(d).label)}),K("click",f,()=>{!i(d).disabled&&!s()&&a(i(d).value)}),x(u,f)}),h(l),q(()=>c=he(l,1,"sh3-seg svelte-17xsko9",null,c,{"sh3-seg--sm":r()==="sm"})),K("keydown",l,o),x(e,l),ie()}pe(["keydown","click"]);function e3(e,t){return e===t?"":t}function t3(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var n3=E('<button type="button"><!></button>'),r3=E('<div role="group"></div>');function s3(e,t){ae(t,!0);let n=te(t,"multiple",3,!1),r=te(t,"value",31,()=>ve(n()?[]:t.options[0]?.value??"")),s=te(t,"disabled",3,!1),a=te(t,"size",3,"md");function o(d){return n()&&Array.isArray(r())?r().includes(d):r()===d}function l(d){if(!s()){if(n()){const f=Array.isArray(r())?r():[];r(t3(f,d))}else r(e3(typeof r()=="string"?r():"",d));t.onchange?.(r())}}var c=r3();let u;me(c,21,()=>t.options,ut,(d,f)=>{var v=n3();let m;var S=p(v);en(S,()=>i(f).icon),h(v),q((g,b)=>{re(v,"title",i(f).tooltip),re(v,"aria-label",i(f).tooltip),re(v,"aria-pressed",g),v.disabled=s(),m=he(v,1,"svelte-13knxr5",null,m,b)},[()=>o(i(f).value),()=>({"sh3-itg__btn--active":o(i(f).value)})]),K("click",v,()=>l(i(f).value)),x(d,v)}),h(c),q(()=>u=he(c,1,"sh3-itg svelte-13knxr5",null,u,{"sh3-itg--sm":a()==="sm"})),x(e,c),ie()}pe(["click"]);function fi(e,t,n){return n===t?0:(e-t)/(n-t)*100}var a3=E('<span class="sh3-slider__tick svelte-13va6lu"></span>'),i3=E('<output class="sh3-slider__value svelte-13va6lu"> </output>'),o3=E('<div><div class="sh3-slider__track svelte-13va6lu"><div class="sh3-slider__fill svelte-13va6lu"></div> <!></div> <input type="range" class="sh3-slider__native svelte-13va6lu"/> <!></div>');function ep(e,t){ae(t,!0);let n=te(t,"value",15,0),r=te(t,"min",3,0),s=te(t,"max",3,100),a=te(t,"step",3,1),o=te(t,"showValue",3,!1),l=te(t,"disabled",3,!1),c=te(t,"invalid",3,!1),u=te(t,"size",3,"md"),d=te(t,"orientation",3,"horizontal");const f=F(()=>fi(n(),r(),s()));var v=o3();let m;var S=p(v),g=p(S);let b;var A=_(g,2);{var k=P=>{var L=Me(),T=fe(L);me(T,17,()=>t.ticks,ut,(M,N)=>{var R=a3();let D;q(j=>D=Ye(R,"",D,j),[()=>({"--tick-pct":`${fi(i(N),r(),s())??""}%`})]),x(M,R)}),x(P,L)};W(A,P=>{t.ticks&&P(k)})}h(S);var y=_(S,2);xe(y);var C=_(y,2);{var I=P=>{var L=i3();let T;var M=p(L,!0);h(L),q(()=>{T=Ye(L,"",T,{"--pct":`${i(f)??""}%`}),z(M,n())}),x(P,L)};W(C,P=>{o()&&P(I)})}h(v),q(()=>{m=he(v,1,`sh3-slider sh3-slider--${d()??""}`,"svelte-13va6lu",m,{"sh3-slider--sm":u()==="sm","sh3-slider--invalid":c()}),b=Ye(g,"",b,{"--pct":`${i(f)??""}%`}),re(y,"min",r()),re(y,"max",s()),re(y,"step",a()),y.disabled=l(),re(y,"aria-invalid",c()||void 0)}),K("input",y,()=>t.oninput?.(n())),K("change",y,()=>t.onchange?.(n())),Te(y,n),x(e,v),ie()}pe(["input","change"]);function Zu(e,t,n){const[r,s]=e;return t==="low"?[Math.min(n,s),s]:[r,Math.max(n,r)]}var l3=E('<div><div class="sh3-range__track svelte-rdbrc5"><div class="sh3-range__fill svelte-rdbrc5"></div></div> <input type="range" class="sh3-range__native sh3-range__native--low svelte-rdbrc5"/> <input type="range" class="sh3-range__native sh3-range__native--high svelte-rdbrc5"/></div>');function c3(e,t){ae(t,!0);let n=te(t,"value",31,()=>ve([0,100])),r=te(t,"min",3,0),s=te(t,"max",3,100),a=te(t,"step",3,1),o=te(t,"disabled",3,!1),l=te(t,"invalid",3,!1),c=te(t,"size",3,"md");const u=F(()=>fi(n()[0],r(),s())),d=F(()=>fi(n()[1],r(),s()));function f(C){n(Zu(n(),"low",C)),t.oninput?.(n())}function v(C){n(Zu(n(),"high",C)),t.oninput?.(n())}var m=l3();let S;var g=p(m),b=p(g);let A;h(g);var k=_(g,2);xe(k);var y=_(k,2);xe(y),h(m),q(()=>{S=he(m,1,"sh3-range svelte-rdbrc5",null,S,{"sh3-range--sm":c()==="sm","sh3-range--invalid":l()}),A=Ye(b,"",A,{"--lo":`${i(u)??""}%`,"--hi":`${i(d)??""}%`}),re(k,"min",r()),re(k,"max",s()),re(k,"step",a()),k.disabled=o(),Os(k,n()[0]),re(y,"min",r()),re(y,"max",s()),re(y,"step",a()),y.disabled=o(),Os(y,n()[1])}),K("input",k,C=>f(parseFloat(C.currentTarget.value))),K("change",k,()=>t.onchange?.(n())),K("input",y,C=>v(parseFloat(C.currentTarget.value))),K("change",y,()=>t.onchange?.(n())),x(e,m),ie()}pe(["input","change"]);var u3=E('<div class="sh3-sg__channel svelte-1lqyi0d"><span class="sh3-sg__label svelte-1lqyi0d"> </span> <!></div>'),d3=E("<div></div>");function f3(e,t){ae(t,!0);let n=te(t,"orientation",3,"horizontal"),r=te(t,"values",31,()=>ve({})),s=te(t,"showValues",3,!1),a=te(t,"disabled",3,!1),o=te(t,"size",3,"md");var l=d3();me(l,21,()=>t.channels,c=>c.id,(c,u)=>{var d=u3(),f=p(d),v=p(f,!0);h(f);var m=_(f,2),S=()=>r()[i(u).id]??0,g=b=>r({...r(),[i(u).id]:b});{let b=F(()=>i(u).min??0),A=F(()=>i(u).max??100),k=F(()=>i(u).step??1);ep(m,{get orientation(){return n()},get min(){return i(b)},get max(){return i(A)},get step(){return i(k)},get disabled(){return a()},get size(){return o()},get showValue(){return s()},get value(){return S()},set value(y){g(y)},oninput:()=>t.oninput?.(r()),onchange:()=>t.onchange?.(r())})}h(d),q(()=>z(v,i(u).label)),x(c,d)}),h(l),q(()=>he(l,1,`sh3-sg sh3-sg--${n()??""}`,"svelte-1lqyi0d")),x(e,l),ie()}var v3=E('<span class="sh3-swatch__label svelte-6ri2j2"> </span>'),h3=E('<label><!> <button type="button" class="sh3-swatch__btn svelte-6ri2j2"><span class="sh3-swatch__dot svelte-6ri2j2"></span><span class="sh3-swatch__hex svelte-6ri2j2"> </span></button></label>');function tp(e,t){ae(t,!0);let n=te(t,"value",15,"#000000"),r=te(t,"disabled",3,!1),s=te(t,"size",3,"md"),a;async function o(){if(r())return;const g=await dt.color.pick({initial:n(),anchor:a});g!=null&&(n(g),t.onchange?.(g))}var l=h3();let c;var u=p(l);{var d=g=>{var b=v3(),A=p(b,!0);h(b),q(()=>z(A,t.label)),x(g,b)};W(u,g=>{t.label&&g(d)})}var f=_(u,2);let v;var m=_(p(f)),S=p(m,!0);h(m),h(f),Ne(f,g=>a=g,()=>a),h(l),q(()=>{c=he(l,1,"sh3-swatch svelte-6ri2j2",null,c,{"sh3-swatch--sm":s()==="sm"}),f.disabled=r(),re(f,"aria-label",`${t.label??"Color"??""} (current ${n()??""})`),v=Ye(f,"",v,{"--swatch-color":n()}),z(S,n())}),K("click",f,o),x(e,l),ie()}pe(["click"]);function p3(e,t){return!e||e.length===0?t?[]:null:t?Array.from(e):e[0]}function m3(e){return e===null?"":Array.isArray(e)?e.length===0?"":e.length===1?e[0].name:`${e.length} files`:e.name}var b3=E('<label><input class="sh3-fp__native svelte-24jk95" type="file"/> <span class="sh3-fp__btn svelte-24jk95" tabindex="-1"> </span> <span class="sh3-fp__name svelte-24jk95"> </span></label>');function g3(e,t){ae(t,!0);let n=te(t,"value",15,null),r=te(t,"multiple",3,!1),s=te(t,"disabled",3,!1),a=te(t,"invalid",3,!1),o=te(t,"size",3,"md"),l=te(t,"buttonLabel",3,"Choose file...");function c(A){const k=A.currentTarget;n(p3(k.files,r())),t.onchange?.(n())}const u=F(()=>m3(n()));var d=b3();let f;var v=p(d),m=_(v,2),S=p(m,!0);h(m);var g=_(m,2),b=p(g,!0);h(g),h(d),q(()=>{f=he(d,1,"sh3-fp svelte-24jk95",null,f,{"sh3-fp--sm":o()==="sm","sh3-fp--invalid":a()}),re(v,"accept",t.accept),v.multiple=r(),v.disabled=s(),z(S,l()),z(b,i(u)||"no file")}),K("change",v,c),x(e,d),ie()}pe(["change"]);const y3=8;function _3(e){return e.length>=y3}function w3(e,t){if(!t)return e.slice();const n=t.toLowerCase();return e.filter(r=>r.label.toLowerCase().includes(n))}function k3(e,t,n){if(!t)return-1;const r=t.toLowerCase(),s=e.length;for(let a=1;a<=s;a++){const o=(n+a)%s;if(!e[o].disabled&&e[o].label.toLowerCase().startsWith(r))return o}return-1}function x3(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 S3(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var I3=E('<input class="sh3-listbox__search svelte-1tyxvrs" type="search" placeholder="Filter…"/>'),E3=E('<span aria-hidden="true"></span>'),A3=E('<div role="option" tabindex="-1"><!> <span class="sh3-listbox__label"> </span></div>'),C3=E('<div class="sh3-listbox__empty svelte-1tyxvrs">No matches</div>'),T3=E('<div class="sh3-listbox svelte-1tyxvrs" role="listbox" tabindex="-1"><!> <div class="sh3-listbox__list svelte-1tyxvrs"><!> <!></div></div>');function R3(e,t){ae(t,!0);const n=F(()=>t.getValue());function r(){t.onClose?.(),t.close()}const s=F(()=>_3(t.options));function a(){if(t.multiple)return 0;const T=typeof i(n)=="string"?i(n):"",M=t.options.findIndex(N=>N.value===T&&!N.disabled);return M>=0?M:0}let o=V(""),l=V(ve(a())),c=V(void 0),u=V(void 0),d="",f=null;const v=F(()=>w3(t.options,i(o)));Ie(()=>{i(l)>=i(v).length&&w(l,0),m()});async function m(){if(await oa(),!i(c))return;i(c).querySelector(`[data-idx="${i(l)}"]`)?.scrollIntoView({block:"nearest"})}function S(T){return t.multiple&&Array.isArray(i(n))?i(n).includes(T.value):i(n)===T.value}function g(T){const M=i(v)[T];!M||M.disabled||(t.onSelect(M.value),t.multiple||r())}function b(T){if(i(v).length!==0)switch(T.key){case"ArrowDown":T.preventDefault(),w(l,(i(l)+1)%i(v).length);break;case"ArrowUp":T.preventDefault(),w(l,(i(l)-1+i(v).length)%i(v).length);break;case"Home":T.preventDefault(),w(l,0);break;case"End":T.preventDefault(),w(l,i(v).length-1);break;case"Enter":T.preventDefault(),g(i(l));break;case" ":case"Space":T.preventDefault(),g(i(l));break;case"Escape":T.preventDefault(),r();break;default:if(i(s)&&document.activeElement===i(u)||T.key.length!==1||T.metaKey||T.ctrlKey||T.altKey)return;d+=T.key,f&&clearTimeout(f),f=setTimeout(()=>{d=""},500);const M=k3(i(v),d,i(l));M>=0&&w(l,M,!0)}}var A=T3(),k=p(A);{var y=T=>{var M=I3();xe(M),Ne(M,N=>w(u,N),()=>i(u)),Te(M,()=>i(o),N=>w(o,N)),x(T,M)};W(k,T=>{i(s)&&T(y)})}var C=_(k,2),I=p(C);me(I,17,()=>i(v),ut,(T,M,N)=>{var R=A3();re(R,"data-idx",N);let D;var j=p(R);{var B=Y=>{var U=E3();let Q;q(G=>Q=he(U,1,"sh3-listbox__check svelte-1tyxvrs",null,Q,G),[()=>({"sh3-listbox__check--on":S(i(M))})]),x(Y,U)};W(j,Y=>{t.multiple&&Y(B)})}var X=_(j,2),J=p(X,!0);h(X),h(R),q((Y,U)=>{re(R,"aria-selected",Y),re(R,"aria-disabled",i(M).disabled),D=he(R,1,"svelte-1tyxvrs",null,D,U),z(J,i(M).label)},[()=>S(i(M)),()=>({"sh3-listbox__opt--active":N===i(l),"sh3-listbox__opt--selected":S(i(M))})]),K("click",R,()=>g(N)),Ue("mouseenter",R,()=>w(l,N,!0)),x(T,R)});var P=_(I,2);{var L=T=>{var M=C3();x(T,M)};W(P,T=>{i(v).length===0&&T(L)})}h(C),Ne(C,T=>w(c,T),()=>i(c)),h(A),q(()=>re(A,"aria-multiselectable",t.multiple)),K("keydown",A,b),x(e,A),ie()}pe(["keydown","click"]);var L3=E('<span class="sh3-select__label svelte-1q3zxph"> </span>'),M3=E("<option> </option>"),P3=E('<label><!> <button type="button" class="sh3-select__btn svelte-1q3zxph" aria-haspopup="listbox"><span> </span> <span class="sh3-select__chevron svelte-1q3zxph" aria-hidden="true">▾</span></button> <select class="sh3-select__native svelte-1q3zxph" aria-hidden="true"></select></label>');function D3(e,t){ae(t,!0);let n=te(t,"multiple",3,!1),r=te(t,"value",31,()=>ve(n()?[]:"")),s=te(t,"placeholder",3,"Select…"),a=te(t,"disabled",3,!1),o=te(t,"invalid",3,!1),l=te(t,"size",3,"md"),c=V(void 0),u=V(void 0),d=V(!1);const f=F(()=>x3(t.options,r(),n()));function v(){w(d,!1),i(c)?.focus()}async function m(){if(a()||i(d)||!i(c))return;w(d,!0);const M=dt.popup.show(R3,{anchor:i(c)},{options:t.options,getValue:()=>r(),multiple:n(),onSelect:D=>{if(n()){const j=Array.isArray(r())?r():[];r(S3(j,D))}else r(D);t.onchange?.(r())},onClose:v}),N=M.close;M.close=()=>{N(),v()},await oa(),document.querySelector(".sh3-listbox")?.focus()}function S(M){if(!(a()||i(d)))switch(M.key){case"ArrowDown":case"ArrowUp":case"Enter":case" ":M.preventDefault(),m();break}}function g(){i(u)&&(n()?r(Array.from(i(u).selectedOptions).map(M=>M.value)):r(i(u).value),t.onchange?.(r()))}var b=P3();let A;var k=p(b);{var y=M=>{var N=L3(),R=p(N,!0);h(N),q(()=>z(R,t.label)),x(M,N)};W(k,M=>{t.label&&M(y)})}var C=_(k,2),I=p(C);let P;var L=p(I,!0);h(I),_t(2),h(C),Ne(C,M=>w(c,M),()=>i(c));var T=_(C,2);re(T,"tabindex",-1),me(T,21,()=>t.options,ut,(M,N)=>{var R=M3(),D=p(R,!0);h(R);var j={};q(B=>{$l(R,B),z(D,i(N).label),j!==(j=i(N).value)&&(R.value=(R.__value=i(N).value)??"")},[()=>n()?Array.isArray(r())&&r().includes(i(N).value):r()===i(N).value]),x(M,R)}),h(T),Ne(T,M=>w(u,M),()=>i(u)),h(b),q(()=>{A=he(b,1,"sh3-select svelte-1q3zxph",null,A,{"sh3-select--invalid":o(),"sh3-select--sm":l()==="sm"}),C.disabled=a(),re(C,"aria-expanded",i(d)),P=he(I,1,"sh3-select__display svelte-1q3zxph",null,P,{"sh3-select__display--placeholder":!i(f)}),z(L,i(f)||s()),T.multiple=n(),T.disabled=a()}),K("click",C,m),K("keydown",C,S),K("change",T,g),x(e,b),ie()}pe(["click","keydown","change"]);function z3(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 j3(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var O3=E('<input type="search" class="sh3-picker__search svelte-1rlwvrb" placeholder="Filter…"/>'),N3=E('<p class="sh3-picker__status svelte-1rlwvrb">Loading…</p>'),q3=E('<button type="button" class="sh3-picker__retry svelte-1rlwvrb">Retry</button>'),B3=E('<p class="sh3-picker__status sh3-picker__status--error svelte-1rlwvrb"> </p> <!>',1),F3=E('<p class="sh3-picker__status svelte-1rlwvrb"> </p>'),V3=E('<span class="sh3-picker__row-sub svelte-1rlwvrb"> </span>'),U3=E('<label class="sh3-picker__row svelte-1rlwvrb"><input type="checkbox"/> <span class="sh3-picker__row-text svelte-1rlwvrb"><span class="sh3-picker__row-label svelte-1rlwvrb"> </span> <!></span></label>'),H3=E('<div><!> <div class="sh3-picker__list svelte-1rlwvrb"><!></div> <p class="sh3-picker__footer svelte-1rlwvrb"> </p></div>');function np(e,t){ae(t,!0);let n=te(t,"value",31,()=>ve([])),r=te(t,"loading",3,!1),s=te(t,"error",3,null),a=te(t,"emptyText",3,"No items."),o=te(t,"searchThreshold",3,8),l=te(t,"disabled",3,!1),c=te(t,"size",3,"md"),u=V("");const d=F(()=>t.items.length>=o()),f=F(()=>z3(t.items,i(u))),v=F(()=>t.items.length),m=F(()=>n().length);function S(R){if(l())return;const D=j3(n(),R);n(D),t.onchange?.(D)}var g=H3();let b;var A=p(g);{var k=R=>{var D=O3();xe(D),q(()=>D.disabled=l()),Te(D,()=>i(u),j=>w(u,j)),x(R,D)};W(A,R=>{i(d)&&R(k)})}var y=_(A,2),C=p(y);{var I=R=>{var D=N3();x(R,D)},P=R=>{var D=B3(),j=fe(D),B=p(j,!0);h(j);var X=_(j,2);{var J=Y=>{var U=q3();K("click",U,()=>t.onRetry?.()),x(Y,U)};W(X,Y=>{t.onRetry&&Y(J)})}q(()=>z(B,s())),x(R,D)},L=R=>{var D=F3(),j=p(D,!0);h(D),q(()=>z(j,a())),x(R,D)},T=R=>{var D=Me(),j=fe(D);me(j,17,()=>i(f),B=>B.id,(B,X)=>{var J=U3(),Y=p(J);xe(Y);var U=_(Y,2),Q=p(U),G=p(Q,!0);h(Q);var $=_(Q,2);{var O=H=>{var ee=V3(),Z=p(ee,!0);h(ee),q(()=>z(Z,i(X).sublabel)),x(H,ee)};W($,H=>{i(X).sublabel&&H(O)})}h(U),h(J),q(H=>{Ql(Y,H),Y.disabled=l(),z(G,i(X).label)},[()=>n().includes(i(X).id)]),K("change",Y,()=>S(i(X).id)),x(B,J)}),x(R,D)};W(C,R=>{r()?R(I):s()?R(P,1):t.items.length===0?R(L,2):R(T,-1)})}h(y);var M=_(y,2),N=p(M);h(M),h(g),q(()=>{b=he(g,1,"sh3-picker svelte-1rlwvrb",null,b,{"sh3-picker--sm":c()==="sm","sh3-picker--disabled":l()}),z(N,`${i(m)??""} of ${i(v)??""} selected`)}),x(e,g),ie()}pe(["click","change"]);function rp(e,t){ae(t,!0);const n=new Set(["sh3-admin-app","sh3-store-app"]);let r=te(t,"value",31,()=>ve([])),s=te(t,"disabled",3,!1),a=te(t,"size",3,"md");const o=F(()=>us().filter(c=>!n.has(c.id)&&!c.admin).map(c=>({id:c.id,label:c.label,sublabel:c.id})).sort((c,u)=>c.label.localeCompare(u.label)));function l(c){r(c),t.onchange?.(c)}np(e,{get items(){return i(o)},get value(){return r()},onchange:l,get disabled(){return s()},get size(){return a()},emptyText:"No apps installed."}),ie()}const Xt=ve({users:[],loading:!1,error:null});let gs=null;function Qu(){return gs||(Xt.loading=!0,Xt.error=null,gs=(async()=>{try{const e=await fetch("/api/admin/users",{credentials:"include"});if(!e.ok){Xt.error=`GET /api/admin/users failed: ${e.status}`;return}Xt.users=await e.json()}catch(e){Xt.error=e.message}finally{Xt.loading=!1,gs=null}})(),gs)}function sp(e,t){ae(t,!0);let n=te(t,"value",31,()=>ve([])),r=te(t,"disabled",3,!1),s=te(t,"size",3,"md");Xt.users.length===0&&!Xt.loading&&!Xt.error&&Qu();const a=F(()=>Xt.users.map(l=>({id:l.id,label:l.displayName||l.username,sublabel:l.username})));function o(l){n(l),t.onchange?.(l)}np(e,{get items(){return i(a)},get value(){return n()},onchange:o,get loading(){return Xt.loading},get error(){return Xt.error},onRetry:()=>void Qu(),emptyText:"No users found.",get disabled(){return r()},get size(){return s()}}),ie()}var K3=E('<label><button type="button" class="sh3-dfp__btn svelte-hcr0gi" aria-haspopup="dialog"><span class="sh3-dfp__label svelte-hcr0gi"> </span> <span> </span> <span class="sh3-dfp__chevron svelte-hcr0gi" aria-hidden="true">▾</span></button></label>');function zc(e,t){ae(t,!0);let n=te(t,"value",15,null),r=te(t,"disabled",3,!1),s=te(t,"invalid",3,!1),a=te(t,"size",3,"md"),o=te(t,"buttonLabel",3,"Choose…"),l=V(void 0),c=V(!1);const u=F(()=>n()?typeof n()=="string"?n():`${n().shardId}/${n().path}`:null);function d(I){n(I),t.onchange?.(I)}function f(){w(c,!1),i(l)?.focus()}async function v(){if(r()||i(c)||!i(l))return;w(c,!0);let I=[];try{I=await t.listDocuments()}catch{w(c,!1);return}const P=dt.popup.show(pl,{anchor:i(l)},{mode:t.mode,docs:I,onCommit:T=>{d(T)},onCancel:()=>{}}),L=P.close;P.close=()=>{L(),f()}}var m=K3();let S;var g=p(m),b=p(g),A=p(b,!0);h(b);var k=_(b,2);let y;var C=p(k,!0);h(k),_t(2),h(g),Ne(g,I=>w(l,I),()=>i(l)),h(m),q(()=>{S=he(m,1,"sh3-dfp svelte-hcr0gi",null,S,{"sh3-dfp--sm":a()==="sm","sh3-dfp--invalid":s()}),g.disabled=r(),re(g,"aria-expanded",i(c)),z(A,o()),y=he(k,1,"sh3-dfp__path svelte-hcr0gi",null,y,{"sh3-dfp__path--empty":!i(u)}),z(C,i(u)??(t.mode==="open"?"no document":"choose path…"))}),K("click",g,v),x(e,m),ie()}pe(["click"]);function W3(e,t){ae(t,!0);let n=te(t,"value",15,null),r=te(t,"disabled",3,!1),s=te(t,"invalid",3,!1),a=te(t,"size",3,"md"),o=te(t,"buttonLabel",3,"Open document…");zc(e,{mode:"open",get listDocuments(){return t.listDocuments},get disabled(){return r()},get invalid(){return s()},get size(){return a()},get buttonLabel(){return o()},get onchange(){return t.onchange},get value(){return n()},set value(l){n(l)}}),ie()}function Y3(e,t){ae(t,!0);let n=te(t,"value",15,null),r=te(t,"disabled",3,!1),s=te(t,"invalid",3,!1),a=te(t,"size",3,"md"),o=te(t,"buttonLabel",3,"Save as…");zc(e,{mode:"save",get listDocuments(){return t.listDocuments},get disabled(){return r()},get invalid(){return s()},get size(){return a()},get buttonLabel(){return o()},get onchange(){return t.onchange},get value(){return n()},set value(l){n(l)}}),ie()}const X3=/^[a-zA-Z0-9.\-_]+$/,G3=/^[a-zA-Z0-9.\-_]*$/;function vi(e,t){if(e.length===0)throw new Error(`fieldAddress: ${t} is empty`);if(!X3.test(e))throw new Error(`fieldAddress: invalid ${t} "${e}" (must match [a-zA-Z0-9.\\-_]+)`)}function ap(e){if(!G3.test(e))throw new Error(`fieldAddress: invalid slotId "${e}"`)}function J3(e){return vi(e.shardId,"shardId"),vi(e.fieldId,"fieldId"),e.slotId!==void 0&&ap(e.slotId),`${e.shardId}::${e.slotId??""}::${e.fieldId}`}function Z3(e){const t=e.split("::");if(t.length!==3)throw new Error(`fieldAddress: malformed "${e}" (expected three ::-separated parts)`);const[n,r,s]=t;vi(n,"shardId"),vi(s,"fieldId"),ap(r);const a={shardId:n,fieldId:s};return r.length>0&&(a.slotId=r),a}const Q3={hotInstall:typeof Blob<"u"&&typeof URL.createObjectURL=="function"},ip=["__sh3core__","shell","sh3-store","sh3-admin"],op=Object.freeze(Object.defineProperty({__proto__:null,AppPicker:rp,Button:Dn,COLOR_PICKER_POINT:Jv,CONFLICT_RENDERER_POINT:Yv,Collapsible:CS,ColorSwatch:tp,ConflictPermissionError:Xv,ConflictSessionOrphanedError:Lk,ConsentDeniedError:Kh,DocumentFilePicker:zc,DocumentOpener:W3,DocumentSaver:Y3,FRAMEWORK_SHARD_IDS:ip,Field:zS,FilePicker:g3,IconToggleGroup:s3,NumberInput:YS,PERMISSION_DOCUMENTS_BROWSE:Bh,PERMISSION_DOCUMENTS_READ:Fh,PERMISSION_DOCUMENTS_WRITE:Vh,PERMISSION_KEYS_MINT:Uh,PERMISSION_STATE_MANAGE:Ns,PERMISSION_SYNC_PEER:Rx,PERMISSION_SYNC_POLICY:Lx,RangeSlider:c3,SHELL_MODE_CONTRIBUTION_POINT:Ms,ScopeEscalationError:Hh,Segmented:$h,Select:D3,Slider:ep,SliderGroup:f3,Textarea:BS,UserPicker:sp,VERSION:_n,activeShards:kr,buildPackageMeta:$i,capabilities:Q3,clearTokenOverrides:gS,closeTab:Ic,collapseChild:B0,dockFloat:kh,dockIntoActiveLayout:Ac,erroredShards:ui,expandChild:F0,fetchBundle:Qi,fetchRegistries:Gh,fieldAddressFromString:Z3,fieldAddressToString:J3,focusTab:q0,focusView:Ui,getActiveApp:rc,getAuthHeader:Yi,getIconSprite:Qh,getTokenOverrides:Jh,getUser:ts,inspectActiveLayout:gh,isAdmin:Tt,isAuthenticated:dl,isGuest:Th,launchApp:Vn,listRegisteredApps:us,listVerbs:ic,locateSlot:Eh,popoutView:wh,provideIcons:_S,pushNavEntry:_w,registerConsentListener:Wh,registerShellMode:mS,registeredShards:tn,resolveConsent:bl,returnToHome:vs,runVerbProgrammatic:Mh,setTokenOverrides:bS,sh3:dt,spawnSatellite:Zi,spliceIntoActiveLayout:N0,subscribeKeyRevocation:Lc,unregisterApp:xc,validateRegistryIndex:Xh},Symbol.toStringTag,{value:"Module"})),$3="/assets/SH3-BG5NVpSD.png",eI="https://cdn.jsdelivr.net/npm/p5@1.11.13/lib/p5.min.js";let ys=null;function tI(){return ys||(ys=new Promise((e,t)=>{const n=window.p5;if(n){e(n);return}const r=document.createElement("script");r.src=eI,r.async=!0,r.onload=()=>e(window.p5),r.onerror=s=>{ys=null,t(s)},document.head.appendChild(r)}),ys)}var nI=E('<h1 class="sh3-title-fallback svelte-foqg2v">SH3</h1>'),rI=E('<div class="sh3-title svelte-foqg2v"></div>');function sI(e,t){ae(t,!0);const n="`.-':;,^\"~=+<>*?!/\\|()[]{}x1ltzrcvunsXYUJCLQ0OZmwqpdbkhao*#MW&8%B@$",r=64,s=Math.floor(64/(442/193)),a=8,o=7,l=80,c=r*a,u=s*o,d=l/u;let f=V(void 0),v=null,m=V(!1);const S=()=>y=>{const I=getComputedStyle(document.documentElement).getPropertyValue("--sh3-accent").trim();let P,L,T=!1;y.setup=()=>{y.createCanvas(c,u),y.noSmooth(),y.noStroke(),y.textAlign(y.CENTER,y.CENTER),y.textFont("monospace"),y.textSize(10),y.textStyle(y.BOLD),L=y.loadImage($3,()=>{P=y.createGraphics(r,s),P.pixelDensity(1),P.image(L,0,0,r,s),P.loadPixels(),T=!0},()=>{w(m,!0)})},y.draw=()=>{if(!T)return;const M=y.millis()*.001;let N;y.clear(),y.background(0,0),y.fill(I);for(let R=0;R<s;R++)for(let D=0;D<r;D++){const j=(R*r+D)*4;if(P.pixels[j]<64){if(N=y.noise(D/r*2,R/s*2,M*.15),N>.33)continue;y.text(n[Math.floor(N*n.length*.25)],(D+.5)*a,(R+.5)*o);continue}N=y.noise(D/r*4,R/s*4,M*.5),y.text(n[Math.floor(N*n.length)],(D+.5)*a,(R+.5)*o)}}};Ie(()=>{if(i(m))return;let y=!1;return tI().then(C=>{if(!(y||!i(f)))try{v=new C(S(),i(f))}catch(I){console.error("[Sh3Title] p5 sketch failed to start",I),w(m,!0)}}).catch(C=>{console.error("[Sh3Title] failed to load p5 from CDN",C),w(m,!0)}),()=>{y=!0,v&&(v.remove(),v=null)}});var g=Me(),b=fe(g);{var A=y=>{var C=nI();x(y,C)},k=y=>{var C=rI();Ye(C,"",{},{width:"216.7195767195767px",height:"80px","--sh3-title-scale":d}),Ne(C,I=>w(f,I),()=>i(f)),x(y,C)};W(b,y=>{i(m)?y(A):y(k,-1)})}x(e,g),ie()}async function Rr(e,t){const n=await fetch(e,{credentials:"include",...t});if(!n.ok)throw new Error(`${t?.method??"GET"} ${e} failed: ${n.status}`);return n.json()}const Fa={async list(){return(await Rr("/api/projects",{method:"GET"})).projects},async listAll(){return(await Rr("/api/projects/all",{method:"GET"})).projects},async get(e){return Rr(`/api/projects/${encodeURIComponent(e)}`,{method:"GET"})},async create(e){return Rr("/api/projects",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e)})},async update(e,t){return Rr(`/api/projects/${encodeURIComponent(e)}`,{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify(t)})},async delete(e,t){const n=t?.wipeData?"?wipeData=1":"";await Rr(`/api/projects/${encodeURIComponent(e)}${n}`,{method:"DELETE"})}};var aI=E(`<div class="delete-project-dialog svelte-6j13aq"><div class="delete-project-dialog__title svelte-6j13aq"> </div> <div class="delete-project-dialog__body svelte-6j13aq">The project record will be removed and any members will lose access.
|
|
9
|
-
Documents already written under the project's namespace remain on disk
|
|
10
|
-
unless you tick the option below.</div> <label class="delete-project-dialog__opt svelte-6j13aq"><input type="checkbox" class="svelte-6j13aq"/> <span>Also delete project files <code class="delete-project-dialog__path svelte-6j13aq"> </code></span></label> <div class="delete-project-dialog__actions svelte-6j13aq"><button type="button" class="delete-project-dialog__btn svelte-6j13aq" data-delete-project-cancel="">Cancel</button> <button type="button" class="delete-project-dialog__btn delete-project-dialog__btn--danger svelte-6j13aq" data-delete-project-confirm="">Delete</button></div></div>`);function iI(e,t){ae(t,!0);let n=V(void 0),r=V(!1),s=V(!1);Ie(()=>{i(n)?.focus()});async function a(){if(!i(r)){w(r,!0);try{await t.onConfirm({wipeData:i(s)})}finally{t.close()}}}function o(){i(r)||(t.onCancel?.(),t.close())}var l=aI(),c=p(l),u=p(c);h(c);var d=_(c,4),f=p(d);xe(f);var v=_(f,2),m=_(p(v)),S=p(m);h(m),h(v),h(d);var g=_(d,2),b=p(g);Ne(b,k=>w(n,k),()=>i(n));var A=_(b,2);h(g),h(l),q(()=>{z(u,`Delete project '${t.projectName??""}'?`),f.disabled=i(r),z(S,`<dataDir>/docs/${t.projectId??""}/`),b.disabled=i(r),A.disabled=i(r)}),Cs(f,()=>i(s),k=>w(s,k)),K("click",b,o),K("click",A,a),x(e,l),ie()}pe(["click"]);var oI=E('<p class="project-id svelte-1oy3640">ID: <code class="svelte-1oy3640"> </code></p>'),lI=E('<span class="hint svelte-1oy3640">Your id: <code class="svelte-1oy3640"> </code> </span>'),cI=E('<p class="error svelte-1oy3640"> </p>'),uI=E('<button type="button" class="danger svelte-1oy3640">Delete</button>'),dI=E('<div class="project-manage svelte-1oy3640"><div class="body svelte-1oy3640"><h2 class="svelte-1oy3640"> </h2> <!> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">Name</span> <input type="text" placeholder="Acme Website" class="svelte-1oy3640"/></label> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">Description</span> <textarea class="svelte-1oy3640"></textarea></label> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">Members</span> <!> <!></label> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">App allowlist</span> <!></label> <!></div> <div class="actions svelte-1oy3640"><button type="button" class="primary svelte-1oy3640"> </button> <button type="button" class="svelte-1oy3640">Cancel</button> <!></div></div>');function fI(e,t){ae(t,!0);let n=te(t,"project",3,null);const r=F(()=>n()!==null),s=F(ts);let a=V(ve(Se(()=>n()?.name??""))),o=V(ve(Se(()=>n()?.description??""))),l=V(ve(Se(()=>{if(n())return[...n().members];const $=ts()?.id;return $?[$]:[]}))),c=V(ve(Se(()=>n()?[...n().appAllowlist]:[]))),u=V(!1),d=V(null);async function f(){if(!i(a).trim()){w(d,"Name is required");return}w(u,!0),w(d,null);const $={name:i(a).trim(),description:i(o).trim()||void 0,members:i(l),appAllowlist:i(c)};try{i(r)&&n()?await Fa.update(n().id,$):await Fa.create($),await hi(),t.onClose()}catch(O){w(d,O.message,!0)}finally{w(u,!1)}}function v(){if(!i(r)||!n())return;const $=n();nn.open(iI,{projectName:$.name,projectId:$.id,onConfirm:async({wipeData:O})=>{w(u,!0),w(d,null);try{await Fa.delete($.id,{wipeData:O}),await hi(),t.onClose()}catch(H){w(d,H.message,!0)}finally{w(u,!1)}}})}var m=dI(),S=p(m),g=p(S),b=p(g,!0);h(g);var A=_(g,2);{var k=$=>{var O=oI(),H=_(p(O)),ee=p(H,!0);h(H),h(O),q(()=>z(ee,n().id)),x($,O)};W(A,$=>{i(r)&&$(k)})}var y=_(A,2),C=_(p(y),2);xe(C),h(y);var I=_(y,2),P=_(p(I),2);Bl(P),re(P,"rows",2),h(I);var L=_(I,2),T=_(p(L),2);sp(T,{get disabled(){return i(u)},get value(){return i(l)},set value($){w(l,$,!0)}});var M=_(T,2);{var N=$=>{var O=lI(),H=_(p(O)),ee=p(H,!0);h(H);var Z=_(H);h(O),q(()=>{z(ee,i(s).id),z(Z,` (${i(s).username??i(s).displayName??""})`)}),x($,O)};W(M,$=>{i(s)&&$(N)})}h(L);var R=_(L,2),D=_(p(R),2);rp(D,{get disabled(){return i(u)},get value(){return i(c)},set value($){w(c,$,!0)}}),h(R);var j=_(R,2);{var B=$=>{var O=cI(),H=p(O,!0);h(O),q(()=>z(H,i(d))),x($,O)};W(j,$=>{i(d)&&$(B)})}h(S);var X=_(S,2),J=p(X),Y=p(J,!0);h(J);var U=_(J,2),Q=_(U,2);{var G=$=>{var O=uI();q(()=>O.disabled=i(u)),K("click",O,v),x($,O)};W(Q,$=>{i(r)&&$(G)})}h(X),h(m),q(()=>{z(b,i(r)?`Edit ${n().name}`:"Create Project"),C.disabled=i(u),P.disabled=i(u),J.disabled=i(u),z(Y,i(r)?"Save":"Create"),U.disabled=i(u)}),Te(C,()=>i(a),$=>w(a,$)),Te(P,()=>i(o),$=>w(o,$)),K("click",J,f),K("click",U,function(...$){t.onClose?.apply(this,$)}),x(e,m),ie()}pe(["click"]);const Gt=ve({projects:[],loading:!1,error:null});async function hi(){Gt.loading=!0,Gt.error=null;try{Gt.projects=await Fa.list()}catch(e){Gt.error=e.message}finally{Gt.loading=!1}}const gl="projects:manage";let yl=null;function vI(){const e=yl;return yl=null,e}function _l(e){yl=e,De.open(gl,{title:e?`Edit ${e.name}`:"Create Project",size:{w:560,h:620},dismissable:!0})}const lp={manifest:{id:"__projects__",label:"Projects",version:_n,views:[{id:gl,label:"Project Manager"}]},activate(e){hi(),typeof document<"u"&&document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&hi()});const t={mount(r,s){const a=vI(),o=De.list(),l=o.length>0?o[o.length-1].id:null,u=We(fI,{target:r,props:{project:a,onClose:()=>{l&&De.close(l)}}});return{unmount(){tt(u)}}}};e.registerView(gl,t),e.actions.register({id:"sh3.project.create",label:"Create Project…",scope:["home","app"],paletteItem:!0,disabled:()=>!Tt(),run:()=>{Tt()&&_l(null)}}),e.actions.register({id:"sh3.project.manage",label:"Manage Project…",scope:["home","app"],submenu:!0,paletteItem:!0,disabled:()=>!Tt()});const n=new Map;os(()=>{Ie(()=>{const r=new Set;for(const s of Gt.projects){if(r.add(s.id),n.has(s.id))continue;const a=e.actions.register({id:`sh3.project.manage:${s.id}`,label:s.name,scope:["home","app"],submenuOf:"sh3.project.manage",run:()=>{const o=Gt.projects.find(l=>l.id===s.id);o&&_l(o)}});n.set(s.id,a)}for(const s of[...n.keys()])r.has(s)||(n.get(s)(),n.delete(s))})})},autostart(){}};var hI=E('<button type="button" class="project-card-edit svelte-yosqc3" aria-label="Edit project" title="Edit project">⚙</button>'),pI=E('<div class="project-card-wrap svelte-yosqc3"><button type="button"><span class="project-name svelte-yosqc3"> </span> <span class="project-meta svelte-yosqc3"> </span></button> <!></div>'),mI=E('<section class="projects-section svelte-yosqc3"><h2 class="projects-heading svelte-yosqc3">Projects</h2> <div class="projects-grid svelte-yosqc3"></div></section>');function bI(e,t){ae(t,!0);const n=F(()=>Gt.projects.length>0),r=F(()=>wr.activeProjectId),s=F(Tt);function a(d){mh(i(r)===d?null:d)}function o(d,f){f.stopPropagation();const v=Gt.projects.find(m=>m.id===d)??null;v&&_l(v)}var l=Me(),c=fe(l);{var u=d=>{var f=mI(),v=_(p(f),2);me(v,21,()=>Gt.projects,m=>m.id,(m,S)=>{var g=pI(),b=p(g);let A;var k=p(b),y=p(k,!0);h(k);var C=_(k,2),I=p(C);h(C),h(b);var P=_(b,2);{var L=T=>{var M=hI();K("click",M,N=>o(i(S).id,N)),x(T,M)};W(P,T=>{i(s)&&T(L)})}h(g),q(()=>{A=he(b,1,"project-card svelte-yosqc3",null,A,{active:i(r)===i(S).id}),re(b,"title",i(S).description??`${i(S).members.length} member${i(S).members.length===1?"":"s"}`),z(y,i(S).name),z(I,`${i(S).members.length??""} member${i(S).members.length===1?"":"s"}`)}),K("click",b,()=>a(i(S).id)),x(m,g)}),h(v),h(f),x(d,f)};W(c,d=>{i(n)&&d(u)})}x(e,l),ie()}pe(["click"]);let At=null;function gI(e){At=e}function yI(){At=null}function xr(){return At?.user.layouts??[]}function _I(e){At&&(At.user.layouts=[...At.user.layouts,e])}function cp(e,t){if(!At)return;const n=At.user.layouts.findIndex(s=>s.id===e);if(n<0)return;const r=[...At.user.layouts];r[n]={...r[n],...t},At.user.layouts=r}function wI(e){At&&(At.user.layouts=At.user.layouts.filter(t=>t.id!==e))}function kI(){At={ephemeral:{},session:{},workspace:{},user:{layouts:[]}}}kI();function to(e,t){if(e.type==="slot")return e.viewId===null||!t(e.viewId)?null:e;if(e.type==="tabs"){const s=[];let a=!1,o=0;for(let l=0;l<e.tabs.length;l++){const c=e.tabs[l];c.viewId!==null&&t(c.viewId)&&(l===e.activeTab&&(a=!0,o=s.length),s.push(c))}return s.length===0?null:{type:"tabs",tabs:s,activeTab:a?o:0}}const n=[],r=[];for(let s=0;s<e.children.length;s++){const a=to(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 up(e){return JSON.parse(JSON.stringify(e))}function xI(e,t){const n=De.list().find(s=>s.id===e);if(!n)return null;const r=to(n.content,t);return r===null?null:{size:{w:n.size.w,h:n.size.h},content:up(r)}}function dp(e,t,n){const r=to(e.content,t);return r===null?(n(`Saved layout "${e.name}" has no available standalone views`,"warn"),""):De.openWithContent({content:up(r),size:{w:e.size.w,h:e.size.h},title:e.name})}var SI=E('<button type="button" data-sh3-scope="element:saved-layout"><span class="saved-layout-card-square svelte-1ncltuf"><svg class="saved-layout-card-icon svelte-1ncltuf"><use></use></svg></span> <span class="saved-layout-card-label svelte-1ncltuf"> </span></button>'),II=E('<section class="saved-layouts-section svelte-1ncltuf"><h2 class="saved-layouts-heading svelte-1ncltuf">Saved Layouts</h2> <div class="saved-layouts-grid svelte-1ncltuf"></div></section>');function EI(e,t){ae(t,!0);const n=F(xr),r=Fi("__layouts__");function s(f){return Ys().some(v=>v.viewId===f)}function a(f,v){An.notify(f,{level:v})}function o(f){const v=xr().find(m=>m.id===f);v&&dp(v,s,a)}function l(f,v){f.preventDefault(),r.set({type:"saved-layout",ref:{layoutId:v}}),dt.actions.openContextMenu({x:f.clientX,y:f.clientY,scope:{element:"saved-layout"}})}var c=Me(),u=fe(c);{var d=f=>{var v=II(),m=_(p(v),2);me(m,21,()=>i(n),S=>S.id,(S,g)=>{var b=SI();let A,k;var y=p(b),C=p(y),I=p(C);h(C),h(y);var P=_(y,2),L=p(P,!0);h(P),h(b),q(()=>{A=he(b,1,"saved-layout-card svelte-1ncltuf",null,A,{"saved-layout-card--tinted":i(g).appearance?.color}),re(b,"data-saved-layout-id",i(g).id),k=Ye(b,"",k,{"--card-color":i(g).appearance?.color??"transparent"}),re(I,"href",`${$n}#${i(g).appearance?.icon??"eye"??""}`),z(L,i(g).name)}),K("click",b,()=>o(i(g).id)),K("contextmenu",b,T=>l(T,i(g).id)),x(S,b)}),h(m),h(v),x(f,v)};W(u,f=>{i(n).length>0&&f(d)})}x(e,c),ie()}pe(["click","contextmenu"]);const $u=["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 AI=E('<span class="sh3-icon-picker__label svelte-h9dluc"> </span>'),CI=E('<button type="button"><svg viewBox="0 0 24 24" class="svelte-h9dluc"><use></use></svg></button>'),TI=E('<div><!> <input type="search" placeholder="Search icons…" aria-label="Filter icons" class="svelte-h9dluc"/> <div class="sh3-icon-picker__grid svelte-h9dluc"><button type="button" aria-label="No icon">×</button> <!></div></div>');function RI(e,t){ae(t,!0);let n=te(t,"value",15,void 0),r=te(t,"disabled",3,!1),s=V("");const a=F(()=>i(s).trim()===""?$u:$u.filter(b=>b.includes(i(s).trim().toLowerCase())));function o(b){r()||(n(b),t.onchange?.(b))}var l=TI();let c;var u=p(l);{var d=b=>{var A=AI(),k=p(A,!0);h(A),q(()=>z(k,t.label)),x(b,A)};W(u,b=>{t.label&&b(d)})}var f=_(u,2);xe(f);var v=_(f,2),m=p(v);let S;var g=_(m,2);me(g,16,()=>i(a),b=>b,(b,A)=>{var k=CI();let y;var C=p(k),I=p(C);h(C),h(k),q(()=>{y=he(k,1,"sh3-icon-picker__tile svelte-h9dluc",null,y,{"sh3-icon-picker__tile--selected":n()===A}),re(k,"aria-label",A),re(k,"title",A),k.disabled=r(),re(I,"href",`${$n}#${A??""}`)}),K("click",k,()=>o(A)),x(b,k)}),h(v),h(l),q(()=>{c=he(l,1,"sh3-icon-picker svelte-h9dluc",null,c,{"sh3-icon-picker--disabled":r()}),f.disabled=r(),S=he(m,1,"sh3-icon-picker__tile sh3-icon-picker__tile--none svelte-h9dluc",null,S,{"sh3-icon-picker__tile--selected":n()===void 0}),m.disabled=r()}),Te(f,()=>i(s),b=>w(s,b)),K("click",m,()=>o(void 0)),x(e,l),ie()}pe(["click"]);var LI=E('<em class="svelte-1v8d4f6">(empty = default)</em>'),MI=E('<button type="button" class="link svelte-1v8d4f6">Change icon</button>'),PI=E('<!> <button type="button" class="link link--align-right svelte-1v8d4f6">Hide picker</button>',1),DI=E('<div class="app-appearance svelte-1v8d4f6"><h2 class="svelte-1v8d4f6"> </h2> <div class="preview svelte-1v8d4f6"><div><span class="preview-card-square svelte-1v8d4f6"><svg class="preview-card-icon svelte-1v8d4f6"><use></use></svg></span> <span class="preview-card-label svelte-1v8d4f6"> </span></div></div> <label class="row svelte-1v8d4f6"><span class="svelte-1v8d4f6">Name <!></span> <input type="text" class="name-input svelte-1v8d4f6"/></label> <div class="row svelte-1v8d4f6"><span class="svelte-1v8d4f6">Icon</span> <!></div> <label class="row svelte-1v8d4f6"><span class="svelte-1v8d4f6">Color</span> <!></label> <div class="actions svelte-1v8d4f6"><button type="button" class="primary svelte-1v8d4f6">Save</button> <button type="button" data-role="reset" class="svelte-1v8d4f6">Reset</button> <button type="button" class="svelte-1v8d4f6">Cancel</button></div></div>');function fp(e,t){ae(t,!0);const n=Se(()=>t.initialAppearance);let r=V(ve(n?.icon)),s=V(ve(n?.color)),a=V(ve(Se(()=>t.entityLabel))),o=V(n?.icon!==void 0);const l=F(()=>i(a).trim()),c=F(()=>t.requireLabel&&i(l)===""),u=F(()=>i(l)===""?t.entityLabel:i(l)),d=F(()=>i(r)??t.defaultIcon),f=F(()=>n!==void 0);function v(){i(c)||(t.onSave({label:i(l),icon:i(r),color:i(s)}),t.close())}function m(){t.onReset(),t.close()}var S=DI(),g=p(S),b=p(g);h(g);var A=_(g,2),k=p(A);let y,C;var I=p(k),P=p(I),L=p(P);h(P),h(I);var T=_(I,2),M=p(T,!0);h(T),h(k),h(A);var N=_(A,2),R=p(N),D=_(p(R));{var j=Z=>{var oe=LI();x(Z,oe)};W(D,Z=>{t.requireLabel||Z(j)})}h(R);var B=_(R,2);xe(B),h(N);var X=_(N,2),J=_(p(X),2);{var Y=Z=>{var oe=MI();K("click",oe,()=>w(o,!0)),x(Z,oe)},U=Z=>{var oe=PI(),de=fe(oe);RI(de,{get value(){return i(r)},set value(le){w(r,le,!0)}});var ne=_(de,2);K("click",ne,()=>w(o,!1)),x(Z,oe)};W(J,Z=>{i(o)?Z(U,-1):Z(Y)})}h(X);var Q=_(X,2),G=_(p(Q),2);{let Z=F(()=>i(s)??"#888888");tp(G,{get value(){return i(Z)},onchange:oe=>w(s,oe,!0)})}h(Q);var $=_(Q,2),O=p($),H=_(O,2),ee=_(H,2);h($),h(S),q(()=>{z(b,`Customize ${t.entityLabel??""}`),y=he(k,1,"preview-card svelte-1v8d4f6",null,y,{"preview-card--tinted":i(s)!==void 0}),C=Ye(k,"",C,{"--card-color":i(s)??"transparent"}),re(L,"href",`${$n}#${i(d)??""}`),z(M,i(u)),re(B,"placeholder",t.entityLabel),O.disabled=i(c),H.disabled=!i(f)}),Te(B,()=>i(a),Z=>w(a,Z)),K("click",O,v),K("click",H,m),K("click",ee,()=>t.close()),x(e,S),ie()}pe(["click"]);let cr=null;function zI(e){cr=e}function jI(){cr=null}function vp(e){return e.icon===void 0&&e.color===void 0&&e.label===void 0}function wl(e){const t=cr?.user.overrides;if(!t)return;const n=t[e];if(n&&!vp(n))return n}function ed(e,t){if(!cr)return;const r={...cr.user.overrides};t===void 0||vp(t)?delete r[e]:r[e]=t,cr.user.overrides=r}function OI(){cr={ephemeral:{},session:{},workspace:{},user:{overrides:{}}}}OI();function NI(){const e=ma();return!e||e.type!=="app"?null:e.ref}function qI(e){const t=NI();if(!t)return;const n=us().find(l=>l.id===t.appId),r=n?.label??t.appId,s=n?.icon??"box",a=wl(t.appId),o={entityLabel:a?.label??r,initialAppearance:a,defaultIcon:s,requireLabel:!1,onSave:l=>{ed(t.appId,{label:l.label===""?void 0:l.label,icon:l.icon,color:l.color})},onReset:()=>ed(t.appId,void 0)};nn.open(fp,o)}const hp={manifest:{id:"__app-appearance__",label:"App Appearance",version:_n,views:[]},activate(e){const t=e.state({user:{overrides:{}}});zI(t);const n={id:"app.customize",label:"Customize…",scope:{element:"app"},contextItem:!0,group:"appearance",run:qI};e.actions.register(n)},autostart(){},deactivate(){jI()}};var BI=E('<button type="button" data-sh3-scope="element:app"><span class="sh3-home-card-square svelte-11gxeaw"><svg class="sh3-home-card-icon svelte-11gxeaw"><use></use></svg></span> <span class="sh3-home-card-label svelte-11gxeaw"> </span></button>'),FI=E('<section class="sh3-home-section svelte-11gxeaw"><h2 class="sh3-home-section-title svelte-11gxeaw">Apps</h2> <div class="sh3-home-grid svelte-11gxeaw"></div></section>'),VI=E('<button type="button" data-sh3-scope="element:app"><span class="sh3-home-card-square svelte-11gxeaw"><svg class="sh3-home-card-icon svelte-11gxeaw"><use></use></svg></span> <span class="sh3-home-card-label svelte-11gxeaw"> </span></button>'),UI=E('<section class="sh3-home-section svelte-11gxeaw"><h2 class="sh3-home-section-title svelte-11gxeaw">Admin</h2> <div class="sh3-home-grid svelte-11gxeaw"></div></section>'),HI=E('<p class="sh3-home-empty svelte-11gxeaw"><!></p>'),KI=E('<div class="sh3-home svelte-11gxeaw"><header class="sh3-home-header svelte-11gxeaw"><div class="sh3-home-title-row svelte-11gxeaw"><!> <span class="sh3-home-version svelte-11gxeaw"> </span> <span class="sh3-home-alpha svelte-11gxeaw">alpha</span></div> <div class="sh3-home-credit svelte-11gxeaw">Art: by <a href="https://www.andbc.co/" target="_blank" rel="noopener noreferrer" class="svelte-11gxeaw">andbc</a></div></header> <div class="sh3-home-filter svelte-11gxeaw"><input type="search" placeholder="Filter apps…" aria-label="Filter apps by name" class="sh3-home-filter-input svelte-11gxeaw"/></div> <!> <!> <!> <!> <!></div>');function WI(e,t){ae(t,!0);const n=Fi("__sh3core__");function r(j,B){j.preventDefault(),n.set({type:"app",ref:{appId:B}}),dt.actions.openContextMenu({x:j.clientX,y:j.clientY,scope:{element:"app"}})}let s=V("");const a=F(us),o=F(Tt),l=F(()=>wr.activeProjectId?Gt.projects.find(j=>j.id===wr.activeProjectId)??null:null);function c(j,B){if(!B)return!0;const X=B.toLowerCase();return j.label.toLowerCase().includes(X)||j.id.toLowerCase().includes(X)}function u(j){return i(l)?i(l).appAllowlist.includes(j):!0}const d=F(()=>i(a).filter(j=>!j.admin&&c(j,i(s))&&u(j.id))),f=F(()=>i(a).filter(j=>j.admin&&c(j,i(s)))),v=F(()=>i(d).length+(i(o)?i(f).length:0));var m=KI(),S=p(m),g=p(S),b=p(g);sI(b,{});var A=_(b,2),k=p(A);h(A),_t(2),h(g),_t(2),h(S);var y=_(S,2),C=p(y);xe(C),h(y);var I=_(y,2);bI(I,{});var P=_(I,2);EI(P,{});var L=_(P,2);{var T=j=>{var B=FI(),X=_(p(B),2);me(X,21,()=>i(d),J=>J.id,(J,Y)=>{const U=F(()=>wl(i(Y).id));var Q=BI();let G,$;var O=p(Q),H=p(O),ee=p(H);h(H),h(O);var Z=_(O,2),oe=p(Z,!0);h(Z),h(Q),q(()=>{G=he(Q,1,"sh3-home-card svelte-11gxeaw",null,G,{"sh3-home-card--tinted":i(U)?.color}),$=Ye(Q,"",$,{"--card-color":i(U)?.color??"transparent"}),re(ee,"href",`${$n}#${i(U)?.icon??i(Y).icon??"box"??""}`),z(oe,i(U)?.label??i(Y).label)}),K("click",Q,()=>Vn(i(Y).id)),K("contextmenu",Q,de=>r(de,i(Y).id)),x(J,Q)}),h(X),h(B),x(j,B)};W(L,j=>{i(d).length>0&&j(T)})}var M=_(L,2);{var N=j=>{var B=UI(),X=_(p(B),2);me(X,21,()=>i(f),J=>J.id,(J,Y)=>{const U=F(()=>wl(i(Y).id));var Q=VI();let G,$;var O=p(Q),H=p(O),ee=p(H);h(H),h(O);var Z=_(O,2),oe=p(Z,!0);h(Z),h(Q),q(()=>{G=he(Q,1,"sh3-home-card svelte-11gxeaw",null,G,{"sh3-home-card--tinted":i(U)?.color}),$=Ye(Q,"",$,{"--card-color":i(U)?.color??"transparent"}),re(ee,"href",`${$n}#${i(U)?.icon??i(Y).icon??"box"??""}`),z(oe,i(U)?.label??i(Y).label)}),K("click",Q,()=>Vn(i(Y).id)),K("contextmenu",Q,de=>r(de,i(Y).id)),x(J,Q)}),h(X),h(B),x(j,B)};W(M,j=>{i(o)&&i(f).length>0&&j(N)})}var R=_(M,2);{var D=j=>{var B=HI(),X=p(B);{var J=U=>{var Q=vn("No apps registered.");x(U,Q)},Y=U=>{var Q=vn();q(()=>z(Q,`No apps match “${i(s)??""}”.`)),x(U,Q)};W(X,U=>{i(a).length===0?U(J):U(Y,-1)})}h(B),x(j,B)};W(R,j=>{i(v)===0&&j(D)})}h(m),q(()=>z(k,`v${_n}`)),Te(C,()=>i(s),j=>w(s,j)),x(e,m),ie()}pe(["click","contextmenu"]);var YI=E('<p class="keys-peers-muted svelte-1s56qq">Loading...</p>'),XI=E('<p class="keys-peers-error svelte-1s56qq"> </p>'),GI=E('<p class="keys-peers-muted svelte-1s56qq">No keys yet. Shards will ask your permission before creating one.</p>'),JI=E('<button type="button" class="keys-peers-btn-danger svelte-1s56qq">Confirm</button> <button type="button" class="keys-peers-btn-secondary svelte-1s56qq">Cancel</button>',1),ZI=E('<button type="button" class="keys-peers-btn-danger svelte-1s56qq">Revoke</button>'),QI=E('<li class="keys-peers-item svelte-1s56qq"><div class="keys-peers-info svelte-1s56qq"><span class="keys-peers-label svelte-1s56qq"> </span> <span class="keys-peers-meta svelte-1s56qq"> </span> <span class="keys-peers-meta svelte-1s56qq"> </span> <span class="keys-peers-meta svelte-1s56qq"> </span></div> <div class="keys-peers-actions svelte-1s56qq"><!></div></li>'),$I=E('<ul class="keys-peers-list svelte-1s56qq"></ul>'),eE=E('<div class="keys-peers svelte-1s56qq"><div class="keys-peers-header svelte-1s56qq"><h2 class="svelte-1s56qq">Keys & Peers</h2></div> <!></div>');function tE(e,t){ae(t,!0);let n=V(ve([])),r=V(null),s=V(!0),a=V(null);async function o(){w(r,null),w(s,!0);try{const g=await Re(`${st()}/api/keys`);if(!g.ok)throw new Error(`HTTP ${g.status}`);w(n,await g.json(),!0)}catch(g){w(r,g instanceof Error?g.message:String(g),!0)}finally{w(s,!1)}}async function l(g){w(a,null);const b=await Re(`${st()}/api/keys/${encodeURIComponent(g)}`,{method:"DELETE"});(b.ok||b.status===404)&&w(n,i(n).filter(A=>A.id!==g),!0)}function c(g){return new Date(g).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}Ie(()=>{o()}),Ie(()=>Lc("*",()=>{o()}));var u=eE(),d=_(p(u),2);{var f=g=>{var b=YI();x(g,b)},v=g=>{var b=XI(),A=p(b);h(b),q(()=>z(A,`Failed to load: ${i(r)??""}`)),x(g,b)},m=g=>{var b=GI();x(g,b)},S=g=>{var b=$I();me(b,21,()=>i(n),A=>A.id,(A,k)=>{var y=QI(),C=p(y),I=p(C),P=p(I,!0);h(I);var L=_(I,2),T=p(L);h(L);var M=_(L,2),N=p(M);h(M);var R=_(M,2),D=p(R);h(R),h(C);var j=_(C,2),B=p(j);{var X=Y=>{var U=JI(),Q=fe(U),G=_(Q,2);K("click",Q,()=>l(i(k).id)),K("click",G,()=>{w(a,null)}),x(Y,U)},J=Y=>{var U=ZI();K("click",U,()=>{w(a,i(k).id,!0)}),x(Y,U)};W(B,Y=>{i(a)===i(k).id?Y(X):Y(J,-1)})}h(j),h(y),q((Y,U,Q)=>{z(P,i(k).label),z(T,`Minted by: ${i(k).mintedByShardId??"system"??""}${i(k).peerRole||i(k).peerId?` · Peer: ${i(k).peerRole??"—"}${i(k).peerId?` (${i(k).peerId})`:""}`:""}`),z(N,`Scopes: ${Y??""}`),z(D,`Created: ${U??""} · Expires: ${Q??""}`)},[()=>i(k).scopes.join(", "),()=>c(i(k).createdAt),()=>i(k).expiresAt?c(i(k).expiresAt):"never"]),x(A,y)}),h(b),x(g,b)};W(d,g=>{i(s)?g(f):i(r)?g(v,1):i(n).length===0?g(m,2):g(S,-1)})}h(u),x(e,u),ie()}pe(["click"]);var nE=E('<div class="confirm-dialog svelte-1k1962w"><div class="confirm-dialog-title svelte-1k1962w"> </div> <div class="confirm-dialog-body svelte-1k1962w"> </div> <div class="confirm-dialog-actions svelte-1k1962w"><button type="button" class="confirm-dialog-btn confirm-dialog-btn-cancel svelte-1k1962w" data-confirm-dialog-cancel=""> </button> <button type="button" data-confirm-dialog-confirm=""> </button></div></div>');function pp(e,t){ae(t,!0);let n=te(t,"confirmLabel",3,"Confirm"),r=te(t,"cancelLabel",3,"Cancel"),s=te(t,"confirmTone",3,"default"),a=V(void 0),o=V(!1);Ie(()=>{i(a)?.focus()});async function l(){if(!i(o)){w(o,!0);try{await t.onConfirm()}finally{t.close()}}}function c(){i(o)||(t.onCancel?.(),t.close())}var u=nE(),d=p(u),f=p(d,!0);h(d);var v=_(d,2),m=p(v,!0);h(v);var S=_(v,2),g=p(S),b=p(g,!0);h(g),Ne(g,C=>w(a,C),()=>i(a));var A=_(g,2);let k;var y=p(A,!0);h(A),h(S),h(u),q(()=>{z(f,t.title),z(m,t.body),g.disabled=i(o),z(b,r()),k=he(A,1,"confirm-dialog-btn svelte-1k1962w",null,k,{"confirm-dialog-btn-danger":s()==="danger","confirm-dialog-btn-default":s()==="default"}),A.disabled=i(o),z(y,n())}),K("click",g,c),K("click",A,l),x(e,u),ie()}pe(["click"]);const td=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 Eo(e,t){const n=Object.keys(t),r=n.filter(o=>!td.has(o)),s=n.filter(o=>td.has(o)),a=[`const __m__ = globalThis.${e};`];r.length>0&&a.push(`export const { ${r.join(", ")} } = __m__;`);for(const o of s)a.push(`const __r_${o}__ = __m__['${o}']; export { __r_${o}__ as ${o} };`);return a.push("export default __m__.default;"),URL.createObjectURL(new Blob([a.join(`
|
|
11
|
-
`)],{type:"application/javascript"}))}const jc=globalThis;jc.__sh3__=op;jc.__sh3_svelte__=Qf;jc.__sh3_svelte_internal_client__=dv;const Oc={"sh3-core":Eo("__sh3__",op),svelte:Eo("__sh3_svelte__",Qf),"svelte/internal/client":Eo("__sh3_svelte_internal_client__",dv)};Oc["svelte/internal/disclose-version"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));Oc["sh3-core/tokens.css"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));const rE=/(?:from|import)\s*(['"])(sh3-core(?:\/[^'"]*)?|svelte(?:\/[^'"]*)?)\1/g;function sE(e){return e.replace(rE,(t,n,r)=>{const s=Oc[r];return s?`${t.startsWith("from")?"from":"import"} '${s}'`:t})}async function ba(e){const t=new TextDecoder().decode(e),n=sE(t),r=new Blob([n],{type:"application/javascript"}),s=URL.createObjectURL(r);try{const a=await import(s),o={shards:[],apps:[]};for(const l of Object.values(a)){if(!l||typeof l!="object"||!("manifest"in l))continue;const c=l;aE(c)?o.shards.push(c):iE(c)&&o.apps.push(c)}if(o.shards.length===0&&o.apps.length===0)throw new Error('Bundle has no exports with a "manifest" property — expected at least one shard or app');return o}finally{URL.revokeObjectURL(s)}}function aE(e){return"activate"in e&&typeof e.activate=="function"&&Array.isArray(e.manifest.views)}function iE(e){return"initialLayout"in e&&Array.isArray(e.manifest.requiredShards)}const oE="sh3-packages",lE=1,Gs="bundles",ns="meta";function ga(){return new Promise((e,t)=>{const n=indexedDB.open(oE,lE);n.onupgradeneeded=()=>{const r=n.result;r.objectStoreNames.contains(Gs)||r.createObjectStore(Gs),r.objectStoreNames.contains(ns)||r.createObjectStore(ns)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}function Sr(e,t,n,r){return new Promise((s,a)=>{const l=e.transaction(t,n).objectStore(t),c=r(l);c.onsuccess=()=>s(c.result),c.onerror=()=>a(c.error)})}async function mp(e,t,n){const r=await ga();await Sr(r,Gs,"readwrite",s=>s.put(t,e)),await Sr(r,ns,"readwrite",s=>s.put(n,e)),r.close()}async function bp(e){const t=await ga(),n=await Sr(t,Gs,"readonly",r=>r.get(e));return t.close(),n??null}async function cE(e){const t=await ga(),n=await Sr(t,ns,"readonly",r=>r.get(e));return t.close(),n??null}async function gp(){const e=await ga(),t=await Sr(e,ns,"readonly",n=>n.getAll());return e.close(),t??[]}async function uE(e){const t=await ga();await Sr(t,Gs,"readwrite",n=>n.delete(e)),await Sr(t,ns,"readwrite",n=>n.delete(e)),t.close()}function Nc(e,t){for(const n of e.shards)n.manifest={...n.manifest,version:t.version},Gi(n);for(const n of e.apps)n.manifest={...n.manifest,version:t.version},qs(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 Ao(e){return dE[e]??{title:e,description:"Unknown permission."}}function qc(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 Bc(e,t,n){if(!t.integrity)return{success:!1,hotLoaded:!1,error:"Missing integrity hash — refusing to install unverified bundle"};try{await Mc(e,t.integrity)}catch(o){return{success:!1,hotLoaded:!1,error:`Integrity check failed: ${o instanceof Error?o.message:String(o)}`}}let r;if(n?.loaded)r=n.loaded;else try{r=await ba(e)}catch(o){return{success:!1,hotLoaded:!1,error:`Failed to load bundle: ${o instanceof Error?o.message:String(o)}`}}if(t.type==="shard"&&r.shards.length===0)return{success:!1,hotLoaded:!1,error:`Package "${t.id}" declared type "shard" but bundle contains no valid shard`};if(t.type==="app"&&r.apps.length===0)return{success:!1,hotLoaded:!1,error:`Package "${t.id}" declared type "app" but bundle contains no valid app`};const s={id:t.id,type:t.type,version:t.version,sourceRegistry:t.sourceRegistry,contractVersion:t.contractVersion,installedAt:new Date().toISOString(),permissions:qc(r)};try{await mp(t.id,e,s)}catch(o){return{success:!1,hotLoaded:!1,error:`Failed to persist package: ${o instanceof Error?o.message:String(o)}`}}if(t.type==="shard"||t.type==="combo")try{Ji(t.id)}catch{}(t.type==="app"||t.type==="combo")&&xc(t.id);let a=!0;try{Nc(r,{version:t.version,sourceRegistry:t.sourceRegistry,contractVersion:t.contractVersion})}catch(o){console.warn(`[sh3] Package "${t.id}" installed but registration failed (will retry on next boot):`,o instanceof Error?o.message:o),a=!1}return{success:!0,package:s,hotLoaded:a}}async function fE(e){try{Ji(e)}catch{}xc(e),await uE(e)}async function vE(){return gp()}async function yp(){let e;try{e=await gp()}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 bp(t.id);if(!n){console.warn(`[sh3] No bundle found for installed package "${t.id}", skipping`);continue}const r=await ba(n);Nc(r,{version:t.version,sourceRegistry:t.sourceRegistry,contractVersion:t.contractVersion}),r.shards.length===0&&r.apps.length===0&&console.warn(`[sh3] Package "${t.id}" contains no valid shards or apps, skipping`)}catch(n){console.warn(`[sh3] Failed to load installed package "${t.id}":`,n instanceof Error?n.message:n)}}function hE(e){const t=[],n=/\/api\//g;let r;for(;(r=n.exec(e))!==null;)t.push(r.index);if(t.length===0)return[];const s=/(?<!\.)fetch\s*\(/g;for(;(r=s.exec(e))!==null;){const a=r.index;if(t.some(o=>Math.abs(o-a)<=200))return["raw fetch() call with /api/ path — use ctx.fetch() for cross-origin compatibility"]}return[]}const nd={version:1};var pE=E('<span class="perm-modal-author svelte-1ipp1r6"> </span>'),mE=E('<p class="perm-modal-empty svelte-1ipp1r6">This package requires no special permissions.</p>'),bE=E('<li class="perm-modal-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6"> </div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),gE=E('<p class="perm-modal-intro svelte-1ipp1r6">This package requests the following permissions:</p> <ul class="perm-modal-list svelte-1ipp1r6"></ul>',1),yE=E('<li class="perm-modal-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6"> </div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),_E=E('<p class="perm-modal-intro svelte-1ipp1r6">New permissions in this update:</p> <ul class="perm-modal-list perm-modal-added svelte-1ipp1r6"></ul>',1),wE=E('<li class="perm-modal-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6"> </div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),kE=E('<p class="perm-modal-intro svelte-1ipp1r6">Permissions no longer requested:</p> <ul class="perm-modal-list perm-modal-removed svelte-1ipp1r6"></ul>',1),xE=E("<!> <!>",1),SE=E('<li class="perm-modal-item perm-modal-warn-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6">⚠ Compatibility warning</div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),IE=E('<p class="perm-modal-intro perm-modal-warn-heading svelte-1ipp1r6">Potential compatibility issues:</p> <ul class="perm-modal-list perm-modal-warnings svelte-1ipp1r6"></ul>',1),EE=E('<div class="perm-modal-backdrop svelte-1ipp1r6" role="dialog" aria-modal="true" tabindex="-1"><div class="perm-modal-panel svelte-1ipp1r6" role="document"><header class="perm-modal-header svelte-1ipp1r6"><h3 class="svelte-1ipp1r6"> </h3> <div class="perm-modal-subtitle svelte-1ipp1r6"><!> <!></div></header> <div class="perm-modal-body svelte-1ipp1r6"><!> <!></div> <footer class="perm-modal-footer svelte-1ipp1r6"><button class="perm-modal-cancel svelte-1ipp1r6">Cancel</button> <button class="perm-modal-confirm svelte-1ipp1r6"> </button></footer></div></div>');function kl(e,t){ae(t,!0);const n=te(t,"permissions",19,()=>[]),r=te(t,"added",19,()=>[]),s=te(t,"removed",19,()=>[]),a=te(t,"warnings",19,()=>[]),o=F(()=>t.mode==="install"?"Install":"Update");var l=EE(),c=p(l),u=p(c),d=p(u),f=p(d);h(d);var v=_(d,2),m=p(v);{var S=D=>{var j=vn();q(()=>z(j,`${t.fromVersion??""} → ${t.pkg.version??""}`)),x(D,j)},g=D=>{var j=vn();q(()=>z(j,`v${t.pkg.version??""}`)),x(D,j)};W(m,D=>{t.mode==="update"&&t.fromVersion?D(S):D(g,-1)})}var b=_(m,2);{var A=D=>{var j=pE(),B=p(j);h(j),q(()=>z(B,`by ${t.pkg.author??""}`)),x(D,j)};W(b,D=>{t.pkg.author&&D(A)})}h(v),h(u);var k=_(u,2),y=p(k);{var C=D=>{var j=Me(),B=fe(j);{var X=Y=>{var U=mE();x(Y,U)},J=Y=>{var U=gE(),Q=_(fe(U),2);me(Q,20,n,G=>G,(G,$)=>{const O=F(()=>Ao($));var H=bE(),ee=p(H),Z=p(ee,!0);h(ee);var oe=_(ee,2),de=p(oe,!0);h(oe),h(H),q(()=>{z(Z,i(O).title),z(de,i(O).description)}),x(G,H)}),h(Q),x(Y,U)};W(B,Y=>{n().length===0?Y(X):Y(J,-1)})}x(D,j)},I=D=>{var j=xE(),B=fe(j);{var X=U=>{var Q=_E(),G=_(fe(Q),2);me(G,20,r,$=>$,($,O)=>{const H=F(()=>Ao(O));var ee=yE(),Z=p(ee),oe=p(Z,!0);h(Z);var de=_(Z,2),ne=p(de,!0);h(de),h(ee),q(()=>{z(oe,i(H).title),z(ne,i(H).description)}),x($,ee)}),h(G),x(U,Q)};W(B,U=>{r().length>0&&U(X)})}var J=_(B,2);{var Y=U=>{var Q=kE(),G=_(fe(Q),2);me(G,20,s,$=>$,($,O)=>{const H=F(()=>Ao(O));var ee=wE(),Z=p(ee),oe=p(Z,!0);h(Z);var de=_(Z,2),ne=p(de,!0);h(de),h(ee),q(()=>{z(oe,i(H).title),z(ne,i(H).description)}),x($,ee)}),h(G),x(U,Q)};W(J,U=>{s().length>0&&U(Y)})}x(D,j)};W(y,D=>{t.mode==="install"?D(C):D(I,-1)})}var P=_(y,2);{var L=D=>{var j=IE(),B=_(fe(j),2);me(B,20,a,X=>X,(X,J)=>{var Y=SE(),U=_(p(Y),2),Q=p(U,!0);h(U),h(Y),q(()=>z(Q,J)),x(X,Y)}),h(B),x(D,j)};W(P,D=>{a().length>0&&D(L)})}h(k);var T=_(k,2),M=p(T),N=_(M,2),R=p(N,!0);h(N),h(T),h(c),h(l),q(()=>{re(l,"aria-label",`${i(o)??""} ${t.pkg.label??""}`),z(f,`${i(o)??""} ${t.pkg.label??""}`),z(R,i(o))}),K("click",l,function(...D){t.onCancel?.apply(this,D)}),K("keydown",l,D=>{D.key==="Escape"&&t.onCancel()}),K("click",c,D=>D.stopPropagation()),K("click",M,function(...D){t.onCancel?.apply(this,D)}),K("click",N,function(...D){t.onConfirm?.apply(this,D)}),x(e,l),ie()}pe(["click","keydown"]);function Fc(e){return e==="shard"?"shard":"app"}function AE(e){return Fc(e)==="shard"?"Shard":"App"}function CE(e,t){return t==="all"?!0:Fc(e)===t}var TE=E('<div class="store-registry-entry svelte-1aafzt0"><span class="store-registry-url svelte-1aafzt0"> </span> <button class="store-registry-remove svelte-1aafzt0">Remove</button></div>'),RE=E('<div class="store-registries svelte-1aafzt0"></div>'),LE=E('<form class="store-add-registry svelte-1aafzt0"><input class="store-registry-input svelte-1aafzt0" type="url" placeholder="Registry URL (e.g. https://sh3.example.com/registry.json)"/> <button type="submit" class="store-add-btn svelte-1aafzt0">Add</button></form>'),ME=E('<div class="store-error svelte-1aafzt0"> </div>'),PE=E('<div class="store-error svelte-1aafzt0"> </div>'),DE=E('<img alt="" class="store-icon-img svelte-1aafzt0"/>'),zE=E('<span class="store-icon-placeholder svelte-1aafzt0"> </span>'),jE=E('<div class="store-card-warning svelte-1aafzt0"> </div>'),OE=E('<button class="store-update-btn svelte-1aafzt0"> </button>'),NE=E('<span class="store-installed-label svelte-1aafzt0">Installed</span>'),qE=E('<span class="store-card-missing svelte-1aafzt0"> </span>'),BE=E('<div class="store-install-wrap svelte-1aafzt0"><button class="store-install-btn svelte-1aafzt0"> </button> <!></div>'),FE=E('<div class="store-card svelte-1aafzt0"><div class="store-card-header svelte-1aafzt0"><div class="store-card-icon svelte-1aafzt0"><!></div> <div class="store-card-title svelte-1aafzt0"><span class="store-card-label svelte-1aafzt0"> </span> <span> </span> <span class="store-card-version svelte-1aafzt0"> </span></div></div> <p class="store-card-desc svelte-1aafzt0"> </p> <div class="store-card-author svelte-1aafzt0"> </div> <!> <div class="store-card-actions svelte-1aafzt0"><!></div></div>'),VE=E("No packages found. <!>",1),UE=E('<div class="store-empty svelte-1aafzt0"><!></div>'),HE=E('<div class="store-view svelte-1aafzt0"><header class="store-header svelte-1aafzt0"><h2 class="svelte-1aafzt0">Package Store</h2> <div class="store-controls svelte-1aafzt0"><input class="store-search svelte-1aafzt0" type="text" placeholder="Search packages..."/> <select class="store-filter svelte-1aafzt0"><option>All</option><option>Shards</option><option>Apps</option></select> <button class="store-refresh svelte-1aafzt0"> </button></div></header> <!> <!> <!> <!> <div class="store-grid svelte-1aafzt0"></div> <!></div> <!> <!>',1);function KE(e,t){ae(t,!0);let n=V(""),r=V("all"),s=V(ve(new Set)),a=V(ve(new Set)),o=V(null),l=V(""),c=V(null),u=V(null);const d=lt;async function f(){const ce=i(l).trim();if(ce&&!d.env.registries.includes(ce))try{await d.addRegistry(ce),w(l,""),d.refreshCatalog(),d.refreshInstalled()}catch(se){w(o,se instanceof Error?se.message:String(se),!0)}}async function v(ce){try{await d.removeRegistry(ce),d.refreshCatalog()}catch(se){w(o,se instanceof Error?se.message:String(se),!0)}}const m=F(()=>{const ce=i(n).toLowerCase().trim();return d.state.ephemeral.catalog.filter(se=>CE(se.entry.type,i(r))?ce?se.entry.id.toLowerCase().includes(ce)||se.entry.label.toLowerCase().includes(ce)||se.entry.description.toLowerCase().includes(ce):!0:!1)});function S(ce){return d.state.ephemeral.installed.some(se=>se.id===ce)}function g(ce){return String(ce.latest.contractVersion)!==String(nd.version)}function b(ce){return ce in d.state.ephemeral.updatable}function A(ce){return d.state.ephemeral.installed.find(se=>se.id===ce)?.version??""}function k(ce,se){const Ee=ce.latest.requires?.map(ke=>ke.id)??[];if(Ee.length===0)return[];const Pe=new Set(ip);for(const ke of se)(ke.type==="shard"||ke.type==="combo")&&Pe.add(ke.id);return Ee.filter(ke=>!Pe.has(ke))}async function y(ce){if(!i(a).has(ce)){w(a,new Set([...i(a),ce]),!0),w(o,null);try{await d.updatePackage(ce,(se,Ee)=>new Promise(Pe=>{const ke=d.state.ephemeral.updatable[ce],Oe=d.state.ephemeral.installed.find(Xe=>Xe.id===ce);if(!ke||!Oe){Pe(!0);return}w(u,{pkg:ke,fromVersion:Oe.version,added:se,removed:Ee,resolve:Pe},!0)}))}catch(se){w(o,se instanceof Error?se.message:String(se),!0)}finally{const se=new Set(i(a));se.delete(ce),w(a,se,!0)}}}function C(){const ce=i(u);ce&&(w(u,null),ce.resolve(!0))}function I(){const ce=i(u);ce&&(w(u,null),ce.resolve(!1))}async function P(ce){const se=ce.entry.id;if(!i(s).has(se)){w(s,new Set([...i(s),se]),!0),w(o,null);try{const Ee=await Qi(ce.latest,ce.sourceRegistry),Pe=$i(ce,ce.latest),ke=await ba(Ee),Oe=qc(ke);let Xe;ce.latest.serverBundleUrl&&(Xe=await Pc(ce.latest,ce.sourceRegistry));const Be=new TextDecoder().decode(new Uint8Array(Ee)),rn=hE(Be);w(c,{pkg:ce,permissions:Oe,loaded:ke,bundle:Ee,meta:Pe,serverBundle:Xe,warnings:rn},!0)}catch(Ee){w(o,Ee instanceof Error?Ee.message:String(Ee),!0);const Pe=new Set(i(s));Pe.delete(se),w(s,Pe,!0)}}}async function L(){const ce=i(c);if(!ce)return;w(c,null);const{pkg:se,loaded:Ee,bundle:Pe,meta:ke,serverBundle:Oe}=ce,Xe=se.entry.id;try{const Be={id:ke.id,type:ke.type,label:se.entry.label,version:ke.version,contractVersion:ke.contractVersion,sourceRegistry:ke.sourceRegistry,requiredShards:se.latest.requires?.map(ft=>ft.id)??[],installedAt:new Date().toISOString()},rn=await Rc(Be,Pe,Oe);if(!rn.ok){w(o,rn.error??"Server install failed",!0);return}const wn=await Bc(Pe,ke,{loaded:Ee});wn.success||console.warn(`[sh3-store] Server install ok but local hot-load failed: ${wn.error}`),await d.refreshInstalled()}catch(Be){w(o,Be instanceof Error?Be.message:String(Be),!0)}finally{const Be=new Set(i(s));Be.delete(Xe),w(s,Be,!0)}}function T(){if(!i(c))return;const ce=i(c).pkg.entry.id;w(c,null);const se=new Set(i(s));se.delete(ce),w(s,se,!0)}function M(){d.refreshCatalog(),d.refreshInstalled()}var N=HE(),R=fe(N),D=p(R),j=_(p(D),2),B=p(j);xe(B);var X=_(B,2),J=p(X);J.value=J.__value="all";var Y=_(J);Y.value=Y.__value="shard";var U=_(Y);U.value=U.__value="app",h(X);var Q=_(X,2),G=p(Q,!0);h(Q),h(j),h(D);var $=_(D,2);{var O=ce=>{var se=RE();me(se,21,()=>d.env.registries,ut,(Ee,Pe)=>{var ke=TE(),Oe=p(ke),Xe=p(Oe,!0);h(Oe);var Be=_(Oe,2);h(ke),q(()=>z(Xe,i(Pe))),K("click",Be,()=>v(i(Pe))),x(Ee,ke)}),h(se),x(ce,se)};W($,ce=>{d.isAdmin&&d.env.registries.length>0&&ce(O)})}var H=_($,2);{var ee=ce=>{var se=LE(),Ee=p(se);xe(Ee);var Pe=_(Ee,2);h(se),q(ke=>Pe.disabled=ke,[()=>!i(l).trim()]),Ue("submit",se,ke=>{ke.preventDefault(),f()}),Te(Ee,()=>i(l),ke=>w(l,ke)),x(ce,se)};W(H,ce=>{d.isAdmin&&ce(ee)})}var Z=_(H,2);{var oe=ce=>{var se=ME(),Ee=p(se,!0);h(se),q(()=>z(Ee,d.state.ephemeral.error)),x(ce,se)};W(Z,ce=>{d.state.ephemeral.error&&ce(oe)})}var de=_(Z,2);{var ne=ce=>{var se=PE(),Ee=p(se,!0);h(se),q(()=>z(Ee,i(o))),x(ce,se)};W(de,ce=>{i(o)&&ce(ne)})}var le=_(de,2);me(le,21,()=>i(m),ce=>ce.entry.id,(ce,se)=>{const Ee=F(()=>S(i(se).entry.id)),Pe=F(()=>g(i(se))),ke=F(()=>i(s).has(i(se).entry.id)),Oe=F(()=>b(i(se).entry.id)),Xe=F(()=>i(a).has(i(se).entry.id)),Be=F(()=>k(i(se),d.state.ephemeral.installed)),rn=F(()=>Fc(i(se).entry.type));var wn=FE(),ft=p(wn),sn=p(ft),no=p(sn);{var hm=Ge=>{var Je=DE();q(()=>re(Je,"src",i(se).entry.icon)),x(Ge,Je)},pm=Ge=>{var Je=zE(),Ht=p(Je,!0);h(Je),q(()=>z(Ht,i(se).entry.type==="shard"?"S":"A")),x(Ge,Je)};W(no,Ge=>{i(se).entry.icon?Ge(hm):Ge(pm,-1)})}h(sn);var Hc=_(sn,2),ro=p(Hc),mm=p(ro,!0);h(ro);var _a=_(ro,2);let Kc;var bm=p(_a,!0);h(_a);var Wc=_(_a,2),gm=p(Wc,!0);h(Wc),h(Hc),h(ft);var so=_(ft,2),ym=p(so,!0);h(so);var ao=_(so,2),_m=p(ao,!0);h(ao);var Yc=_(ao,2);{var wm=Ge=>{var Je=jE(),Ht=p(Je);h(Je),q(()=>z(Ht,`Contract mismatch: package targets v${i(se).latest.contractVersion??""}, running v${nd.version}`)),x(Ge,Je)};W(Yc,Ge=>{i(Pe)&&Ge(wm)})}var Xc=_(Yc,2),km=p(Xc);{var xm=Ge=>{var Je=OE(),Ht=p(Je,!0);h(Je),q(io=>{Je.disabled=i(Xe),z(Ht,io)},[()=>i(Xe)?"Updating...":`Update ${A(i(se).entry.id)} -> ${i(se).latest.version}`]),K("click",Je,()=>y(i(se).entry.id)),x(Ge,Je)},Sm=Ge=>{var Je=NE();x(Ge,Je)},Im=Ge=>{var Je=BE(),Ht=p(Je),io=p(Ht,!0);h(Ht);var Em=_(Ht,2);{var Am=ms=>{var oo=qE(),Cm=p(oo);h(oo),q(Tm=>z(Cm,`requires: ${Tm??""}`),[()=>i(Be).join(", ")]),x(ms,oo)};W(Em,ms=>{i(Be).length>0&&ms(Am)})}h(Je),q(ms=>{Ht.disabled=i(ke)||i(Be).length>0,re(Ht,"title",ms),z(io,i(ke)?"Installing...":"Install")},[()=>i(Be).length>0?`Missing required shards: ${i(Be).join(", ")}`:void 0]),K("click",Ht,()=>P(i(se))),x(Ge,Je)};W(km,Ge=>{i(Ee)&&i(Oe)?Ge(xm):i(Ee)?Ge(Sm,1):Ge(Im,-1)})}h(Xc),h(wn),q(Ge=>{z(mm,i(se).entry.label),Kc=he(_a,1,"store-card-badge svelte-1aafzt0",null,Kc,{"badge-shard":i(rn)==="shard","badge-app":i(rn)==="app"}),z(bm,Ge),z(gm,i(se).latest.version),z(ym,i(se).entry.description),z(_m,i(se).entry.author.name)},[()=>AE(i(se).entry.type)]),x(ce,wn)}),h(le);var be=_(le,2);{var _e=ce=>{var se=UE(),Ee=p(se);{var Pe=Oe=>{var Xe=VE(),Be=_(fe(Xe));{var rn=ft=>{var sn=vn("Add a registry URL above to get started.");x(ft,sn)},wn=ft=>{var sn=vn("No registries configured.");x(ft,sn)};W(Be,ft=>{d.isAdmin?ft(rn):ft(wn,-1)})}x(Oe,Xe)},ke=Oe=>{var Xe=vn("No packages match the current filter.");x(Oe,Xe)};W(Ee,Oe=>{d.env.registries.length===0?Oe(Pe):Oe(ke,-1)})}h(se),x(ce,se)};W(be,ce=>{!d.state.ephemeral.loading&&i(m).length===0&&ce(_e)})}h(R);var He=_(R,2);{var je=ce=>{{let se=F(()=>({label:i(c).pkg.entry.label,version:i(c).pkg.latest.version,author:i(c).pkg.entry.author.name}));kl(ce,{mode:"install",get pkg(){return i(se)},get permissions(){return i(c).permissions},get warnings(){return i(c).warnings},onConfirm:L,onCancel:T})}};W(He,ce=>{i(c)&&ce(je)})}var ot=_(He,2);{var Ln=ce=>{{let se=F(()=>({label:i(u).pkg.entry.label,version:i(u).pkg.latest.version,author:i(u).pkg.entry.author.name}));kl(ce,{mode:"update",get pkg(){return i(se)},get fromVersion(){return i(u).fromVersion},get added(){return i(u).added},get removed(){return i(u).removed},onConfirm:C,onCancel:I})}};W(ot,ce=>{i(u)&&ce(Ln)})}q(()=>{Q.disabled=d.state.ephemeral.loading,z(G,d.state.ephemeral.loading?"Loading...":"Refresh")}),Te(B,()=>i(n),ce=>w(n,ce)),js(X,()=>i(r),ce=>w(r,ce)),K("click",Q,M),x(e,N),ie()}pe(["click"]);function _p(e){return lt.state.ephemeral.catalog.find(t=>t.entry.id===e)}function Js(e){return lt.state.ephemeral.installed.find(t=>t.id===e)}const WE={name:"install",summary:"Install a package by id from the catalog.",programmatic:!0,async run(e,t){const n=t[0];if(!n){e.scrollback.push({kind:"status",text:"usage: sh3-store:install <package-id>",level:"warn",ts:Date.now()});return}const r=Js(n);if(r){e.scrollback.push({kind:"status",text:`${n} is already installed (v${r.version})`,level:"warn",ts:Date.now()});return}const s=_p(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 Qi(s.latest,s.sourceRegistry),o=$i(s,s.latest);let l;s.latest.serverBundleUrl&&(l=await Pc(s.latest,s.sourceRegistry));const c={id:o.id,type:o.type,label:s.entry.label,version:o.version,contractVersion:o.contractVersion,sourceRegistry:o.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:s.latest.requires?.map(f=>f.id)??[]},u=await Rc(c,a,l);if(!u.ok){let f=`install failed: ${u.error??"server error"}`;u.code==="missing-shards"&&u.missing&&(f=`install failed: missing required shard(s): ${u.missing.map(m=>m.id).join(", ")}`),e.scrollback.push({kind:"status",text:f,level:"error",ts:Date.now()});return}const d=await Bc(a,o);d.success||e.scrollback.push({kind:"status",text:`server ok but local hot-load failed: ${d.error}`,level:"warn",ts:Date.now()}),await lt.refreshInstalled(),e.scrollback.push({kind:"status",text:`installed ${n} v${s.latest.version}`,level:"info",ts:Date.now()})}catch(a){e.scrollback.push({kind:"status",text:`install failed: ${a instanceof Error?a.message:String(a)}`,level:"error",ts:Date.now()})}}},YE={name:"uninstall",summary:"Uninstall an installed package by id.",programmatic:!0,async run(e,t){const n=t[0];if(!n){e.scrollback.push({kind:"status",text:"usage: sh3-store:uninstall <package-id>",level:"warn",ts:Date.now()});return}if(!Js(n)){e.scrollback.push({kind:"status",text:`package "${n}" is not installed`,level:"error",ts:Date.now()});return}e.scrollback.push({kind:"status",text:`uninstalling ${n}...`,level:"info",ts:Date.now()});try{await lt.uninstallPackage(n),e.scrollback.push({kind:"status",text:`uninstalled ${n}`,level:"info",ts:Date.now()})}catch(s){e.scrollback.push({kind:"status",text:`uninstall failed: ${s instanceof Error?s.message:String(s)}`,level:"error",ts:Date.now()})}}},XE={name:"update",summary:"Update an installed package (sh3-store:update <id> [version]). When version is omitted, bumps to latest; with a version, installs that exact version (downgrade or same-version reinstall allowed).",programmatic:!0,async run(e,t){const n=t[0],r=t[1];if(!n){e.scrollback.push({kind:"status",text:"usage: sh3-store:update <package-id> [version]",level:"warn",ts:Date.now()});return}const s=Js(n);if(!s){e.scrollback.push({kind:"status",text:`package "${n}" is not installed`,level:"error",ts:Date.now()});return}const a=s.version,o=r&&r===a?"reinstalling":r?`updating ${n} from v${a} to v${r}`:`updating ${n} from v${a} to latest`;e.scrollback.push({kind:"status",text:o.startsWith("reinstalling")?`reinstalling ${n} v${r}…`:`${o}…`,level:"info",ts:Date.now()});const l=async(c,u)=>(e.scrollback.push({kind:"status",text:`permission change required (added: ${c.join(", ")||"none"}; removed: ${u.join(", ")||"none"}) — open the store and use the Update button to review and apply.`,level:"warn",ts:Date.now()}),!1);try{await lt.updatePackage(n,l,r);const c=r??Js(n)?.version??"?";e.scrollback.push({kind:"status",text:r&&r===a?`reinstalled ${n} v${c}`:`updated ${n} v${c}`,level:"info",ts:Date.now()})}catch(c){e.scrollback.push({kind:"status",text:`update failed: ${c instanceof Error?c.message:String(c)}`,level:"error",ts:Date.now()})}}},GE={name:"appinfo",summary:"Show info about a package (installed status, version, catalog details).",programmatic:!0,async run(e,t){const n=t[0];if(!n){e.scrollback.push({kind:"status",text:"usage: sh3-store:appinfo <package-id>",level:"warn",ts:Date.now()});return}const r=Js(n),s=_p(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 JE(e,t){const[n="",r=""]=e.split("+"),[s="",a=""]=t.split("+"),o=n.split(".").map(f=>parseInt(f,10)||0),l=s.split(".").map(f=>parseInt(f,10)||0),c=Math.max(o.length,l.length);for(let f=0;f<c;f++){const v=o[f]??0,m=l[f]??0;if(v>m)return!0;if(v<m)return!1}if(r===a||r==="")return!1;if(a==="")return!0;const u=parseInt(r,10),d=parseInt(a,10);return!isNaN(u)&&!isNaN(d)?u>d:r>a}function ZE(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 QE(e,t){const n=new Set(e),r=new Set(t);return{added:t.filter(s=>!n.has(s)),removed:e.filter(s=>!r.has(s))}}let lt;const wp={manifest:{id:"sh3-store",label:"Package Store",version:_n,views:[{id:"sh3-store:browse",label:"Store"}]},activate(e){const t=e.env({registries:[]}),n=e.state({ephemeral:{catalog:[],installed:[],updatable:{},loading:!1,error:null}});function r(){const f={};for(const v of n.ephemeral.installed){const m=n.ephemeral.catalog.find(S=>S.entry.id===v.id);m&&JE(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 Gh(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 zx();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 vE();n.ephemeral.installed=v,r()}catch{}}}async function o(f){const v=[...t.registries];v.includes(f)||(v.push(f),await e.envUpdate({registries:v}))}async function l(f){const v=t.registries.filter(m=>m!==f);await e.envUpdate({registries:v})}async function c(f,v,m){let S;if(m===void 0?S=n.ephemeral.updatable[f]:S=n.ephemeral.catalog.find(B=>B.entry.id===f),!S)return;const g=n.ephemeral.installed.find(B=>B.id===f);if(!g)return;const b=ZE(S,m),A=await Qi(b,S.sourceRegistry);let k;b.serverBundleUrl&&(k=await Pc(b,S.sourceRegistry));const y=$i(S,b),C=await ba(A),I=qc(C);let P=[];try{const B=await cE(f);B?.permissions&&(P=B.permissions)}catch{}const{added:L,removed:T}=QE(P,I);if((L.length>0||T.length>0)&&v&&!await v(L,T))return;const M=await bp(f),N={...g,permissions:P},R={id:y.id,type:y.type,label:S.entry.label,version:y.version,contractVersion:y.contractVersion,sourceRegistry:y.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:b.requires?.map(B=>B.id)??[]},D=await Rc(R,A,k);if(!D.ok){let B=D.error??"Server update failed";throw D.code==="missing-shards"&&D.missing&&(B=`missing required shard(s): ${D.missing.map(J=>J.id).join(", ")}`),new Error(B)}const j=await Bc(A,y,{loaded:C});if(!j.success){if(M)try{await mp(f,M,N)}catch(B){console.warn(`[sh3-store] Rollback failed for "${f}":`,B instanceof Error?B.message:B)}throw new Error(j.error??"Local install failed during update")}await a()}async function u(f){await Dx(f),await fE(f),await a()}lt={env:t,state:n,get isAdmin(){return e.isAdmin},refreshCatalog:s,refreshInstalled:a,updatePackage:c,uninstallPackage:u,addRegistry:o,removeRegistry:l};const d={mount(f,v){const m=We(KE,{target:f});return{unmount(){tt(m)}}}};e.registerView("sh3-store:browse",d),e.registerVerb(WE),e.registerVerb(YE),e.registerVerb(GE),e.registerVerb(XE),a()},autostart(){lt.refreshCatalog()}};function $E(e,t,n,r){return new Promise(s=>{const a={mode:"update",pkg:{label:e.label,version:t},fromVersion:e.version,added:n,removed:r,onConfirm:()=>{o.close(),s(!0)},onCancel:()=>{o.close(),s(!1)}},o=nn.open(kl,a)})}var e2=E('<p class="error svelte-1tiy4hy"> </p>'),t2=E('<div class="app-update-modal svelte-1tiy4hy"><h2 class="svelte-1tiy4hy">Update available</h2> <p class="svelte-1tiy4hy"><strong> </strong> can be updated from <code class="svelte-1tiy4hy"> </code> to <code class="svelte-1tiy4hy"> </code>.</p> <p class="hint svelte-1tiy4hy">Package id: <code class="svelte-1tiy4hy"> </code></p> <!> <div class="actions svelte-1tiy4hy"><button type="button" class="primary svelte-1tiy4hy"> </button> <button type="button" class="svelte-1tiy4hy">Cancel</button></div></div>');function n2(e,t){ae(t,!0);let n=V(!1),r=V(null);async function s(){if(!i(n)){w(n,!0),w(r,null);try{await t.onConfirm(),t.close()}catch(P){w(r,P.message,!0)}finally{w(n,!1)}}}var a=t2(),o=_(p(a),2),l=p(o),c=p(l,!0);h(l);var u=_(l,2),d=p(u);h(u);var f=_(u,2),v=p(f);h(f),_t(),h(o);var m=_(o,2),S=_(p(m)),g=p(S,!0);h(S),h(m);var b=_(m,2);{var A=P=>{var L=e2(),T=p(L,!0);h(L),q(()=>z(T,i(r))),x(P,L)};W(b,P=>{i(r)&&P(A)})}var k=_(b,2),y=p(k),C=p(y,!0);h(y);var I=_(y,2);h(k),h(a),q(()=>{z(c,t.appLabel),z(d,`v${t.fromVersion??""}`),z(v,`v${t.toVersion??""}`),z(g,t.appId),y.disabled=i(n),z(C,i(n)?"Updating…":"Update"),I.disabled=i(n)}),K("click",y,s),K("click",I,function(...P){t.close?.apply(this,P)}),x(e,a),ie()}pe(["click"]);var r2=E('<p class="error svelte-86mxbl"> </p>'),s2=E(`<div class="uninstall-dialog svelte-86mxbl"><h2 class="svelte-86mxbl"> </h2> <p class="hint svelte-86mxbl">Package id: <code class="svelte-86mxbl"> </code> · current version: <code class="svelte-86mxbl"> </code></p> <p class="svelte-86mxbl">The package will be removed from this server. App data stored in your
|
|
14
|
-
browser will remain until you clear it manually.</p> <!> <div class="actions svelte-86mxbl"><button type="button" class="danger svelte-86mxbl"> </button> <button type="button" class="svelte-86mxbl">Cancel</button></div></div>`);function a2(e,t){ae(t,!0);let n=V(!1),r=V(null);async function s(){if(!i(n)){w(n,!0),w(r,null);try{await t.onConfirm(),t.close()}catch(y){w(r,y.message,!0)}finally{w(n,!1)}}}var a=s2(),o=p(a),l=p(o);h(o);var c=_(o,2),u=_(p(c)),d=p(u,!0);h(u);var f=_(u,2),v=p(f);h(f),h(c);var m=_(c,4);{var S=y=>{var C=r2(),I=p(C,!0);h(C),q(()=>z(I,i(r))),x(y,C)};W(m,y=>{i(r)&&y(S)})}var g=_(m,2),b=p(g),A=p(b,!0);h(b);var k=_(b,2);h(g),h(a),q(()=>{z(l,`Uninstall ${t.appLabel??""}?`),z(d,t.appId),z(v,`v${t.version??""}`),b.disabled=i(n),z(A,i(n)?"Uninstalling…":"Uninstall"),k.disabled=i(n)}),K("click",b,s),K("click",k,function(...y){t.close?.apply(this,y)}),x(e,a),ie()}pe(["click"]);var i2=E('<span class="badge built-in svelte-1w44jyn">built-in</span>'),o2=E('<section class="description svelte-1w44jyn"><span class="label svelte-1w44jyn">Description</span> <p class="svelte-1w44jyn"> </p></section>'),l2=E('<p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Author</span> <span> </span></p>'),c2=E('<li><code class="svelte-1w44jyn"> </code></li>'),u2=E('<section class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Required shards</span> <ul class="chips svelte-1w44jyn"></ul></section>'),d2=E('<li><code class="svelte-1w44jyn"> </code></li>'),f2=E('<section class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Permissions</span> <ul class="chips svelte-1w44jyn"></ul></section>'),v2=E('<p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Installed</span><span> </span></p>'),h2=E('<section class="installed svelte-1w44jyn"><p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Source registry</span><code class="svelte-1w44jyn"> </code></p> <!> <p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Contract</span><code class="svelte-1w44jyn"> </code></p></section>'),p2=E('<div class="app-info-modal svelte-1w44jyn"><header class="svelte-1w44jyn"><h2 class="svelte-1w44jyn"> </h2> <code class="id svelte-1w44jyn"> </code></header> <p class="version svelte-1w44jyn"><span class="label svelte-1w44jyn">Version</span> <code class="svelte-1w44jyn"> </code> <!></p> <!> <!> <!> <!> <!> <div class="actions svelte-1w44jyn"><button type="button" class="svelte-1w44jyn">Close</button></div></div>');function m2(e,t){ae(t,!0);let n=F(()=>{if(!t.installed)return null;const N=new Date(t.installed.installedAt);return isNaN(N.getTime())?t.installed.installedAt:N.toLocaleString()});var r=p2(),s=p(r),a=p(s),o=p(a,!0);h(a);var l=_(a,2),c=p(l,!0);h(l),h(s);var u=_(s,2),d=_(p(u),2),f=p(d);h(d);var v=_(d,2);{var m=N=>{var R=i2();x(N,R)};W(v,N=>{t.installed||N(m)})}h(u);var S=_(u,2);{var g=N=>{var R=o2(),D=_(p(R),2),j=p(D,!0);h(D),h(R),q(()=>z(j,t.catalogEntry.description)),x(N,R)};W(S,N=>{t.catalogEntry?.description&&N(g)})}var b=_(S,2);{var A=N=>{var R=l2(),D=_(p(R),2),j=p(D,!0);h(D),h(R),q(()=>z(j,t.catalogEntry.author.name)),x(N,R)};W(b,N=>{t.catalogEntry?.author?.name&&N(A)})}var k=_(b,2);{var y=N=>{var R=u2(),D=_(p(R),2);me(D,21,()=>t.manifest.requiredShards,ut,(j,B)=>{var X=c2(),J=p(X),Y=p(J,!0);h(J),h(X),q(()=>z(Y,i(B))),x(j,X)}),h(D),h(R),x(N,R)};W(k,N=>{t.manifest.requiredShards.length>0&&N(y)})}var C=_(k,2);{var I=N=>{var R=f2(),D=_(p(R),2);me(D,21,()=>t.manifest.permissions,ut,(j,B)=>{var X=d2(),J=p(X),Y=p(J,!0);h(J),h(X),q(()=>z(Y,i(B))),x(j,X)}),h(D),h(R),x(N,R)};W(C,N=>{t.manifest.permissions&&t.manifest.permissions.length>0&&N(I)})}var P=_(C,2);{var L=N=>{var R=h2(),D=p(R),j=_(p(D)),B=p(j,!0);h(j),h(D);var X=_(D,2);{var J=G=>{var $=v2(),O=_(p($)),H=p(O,!0);h(O),h($),q(()=>z(H,i(n))),x(G,$)};W(X,G=>{i(n)&&G(J)})}var Y=_(X,2),U=_(p(Y)),Q=p(U);h(U),h(Y),h(R),q(()=>{z(B,t.installed.sourceRegistry),z(Q,`v${t.installed.contractVersion??""}`)}),x(N,R)};W(P,N=>{t.installed&&N(L)})}var T=_(P,2),M=p(T);h(T),h(r),q(()=>{z(o,t.manifest.label),z(c,t.manifest.id),z(f,`v${t.manifest.version??""}`)}),K("click",M,function(...N){t.close?.apply(this,N)}),x(e,r),ie()}pe(["click"]);const rd=typeof globalThis.__TAURI_INTERNALS__<"u";function b2(e){return!e.admin||e.builtin}function sd(e){return e.admin?e.builtin?" · built-in":"":" · admin only"}function Gn(){const e=ma();return!e||e.type!=="app"?null:e.ref}function ya(e){return us().find(t=>t.id===e)}function g2(e){return!lt.state.ephemeral.installed.some(t=>t.id===e)}function Co(e){return{admin:Tt(),builtin:g2(e)}}function y2(e){const t=Gn();if(!t)return;const n=ya(t.appId);if(!n)return;const r=lt.state.ephemeral.installed.find(o=>o.id===t.appId)??null,s=lt.state.ephemeral.catalog.find(o=>o.entry.id===t.appId)?.entry??null,a={manifest:n,installed:r,catalogEntry:s};nn.open(m2,a)}async function _2(e){const t=Gn();if(!t)return;const{appId:n}=t,r=An.notify("Checking for updates…",{duration:1/0});try{await lt.refreshCatalog()}finally{r.close()}const s=lt.state.ephemeral.updatable[n],a=lt.state.ephemeral.installed.find(c=>c.id===n),o=ya(n)?.label??n;if(!s||!a){An.notify(`${o} is up to date`,{level:"info",duration:2500});return}const l={appId:n,appLabel:o,fromVersion:a.version,toVersion:s.latest.version,onConfirm:async()=>{try{await lt.updatePackage(n,(c,u)=>$E({label:a.id,version:a.version},s.latest.version,c,u)),An.notify(`Updated to v${s.latest.version}`,{level:"success"})}catch(c){throw An.notify(`Update failed: ${c.message}`,{level:"error",duration:5e3}),c}}};nn.open(n2,l)}function w2(e){const t=Gn();if(!t)return;const n=ya(t.appId);n&&Zi({kind:"app",appId:t.appId,activateShards:n.requiredShards??[]})}async function k2(e){const t=rc();if(!t)return;const n=t.id,r=t.requiredShards??[];await vs(),Zi({kind:"app",appId:n,activateShards:r})}function x2(e){const t=Gn();if(!t)return;const{appId:n}=t,r=lt.state.ephemeral.installed.find(o=>o.id===n);if(!r)return;const s=ya(n)?.label??n,a={appId:n,appLabel:s,version:r.version,onConfirm:async()=>{try{await lt.uninstallPackage(n),An.notify(`Uninstalled ${s}`,{level:"success"})}catch(o){throw An.notify(`Uninstall failed: ${o.message}`,{level:"error",duration:5e3}),o}}};nn.open(a2,a)}function S2(e){const t=()=>{const l=Gn();if(!l)return"Info…";const c=ya(l.appId);return c?`Info — ${c.label} v${c.version}`:`Info — ${l.appId}`},n=()=>{const l=Gn();return l?`Check for updates${sd(Co(l.appId))}`:"Check for updates"},r=()=>{const l=Gn();return l?`Uninstall…${sd(Co(l.appId))}`:"Uninstall…"},s=()=>{const l=Gn();return l?b2(Co(l.appId)):!0},o=[{id:"app.info",label:t,scope:{element:"app"},contextItem:!0,group:"info",run:y2},{id:"app.checkUpdate",label:n,scope:{element:"app"},contextItem:!0,group:"update",disabled:s,run:_2},{id:"app.uninstall",label:r,scope:{element:"app"},contextItem:!0,group:"uninstall",disabled:s,run:x2},{id:"app.popout",label:"Open in standalone view",scope:{element:"app"},contextItem:!0,paletteItem:!1,group:"window",disabled:()=>!rd,run:w2},{id:"app.popoutCurrent",label:"Pop out current app",scope:"app",contextItem:!1,paletteItem:!0,disabled:()=>!rd||vt.id==null,run:k2}].map(l=>e.actions.register(l));return()=>o.forEach(l=>l())}function I2(){return{id:"sh3.float.toggleMaximize",label:"Toggle Float Maximize",scope:["home","app"],paletteItem:!0,contextItem:!1,defaultShortcut:"Ctrl+Shift+M",disabled:()=>De.list().length===0,run(){const e=De.list().at(-1);e&&De.toggleMaximize(e.id)}}}const kp={manifest:{id:"__sh3core__",label:"SH3 Core",version:_n,views:[{id:"sh3core:home",label:"Home"},{id:"sh3:keys-and-peers",label:"Keys & Peers"}]},activate(e){const t=e.state({user:{bindings:{}}});Fk(t.user),e.actions.register({id:"sh3.palette.open",label:"Command Palette…",scope:["home","app"],defaultShortcut:"Mod+K",contextItem:!1,paletteItem:!1,run(a){Vi()}}),e.actions.register(I2()),e.actions.register({id:"sh3.app.reset-layout",label:"Reset Current Layout",scope:["app"],paletteItem:!0,contextItem:!1,run(){nn.open(pp,{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:()=>O1()})}});const n={mount(a,o){const l=We(WI,{target:a});return{unmount(){tt(l)}}}},r={mount(a,o){const l=We(tE,{target:a});return{unmount(){tt(l)}}}};e.registerView("sh3core:home",n),e.registerView("sh3:keys-and-peers",r),S2(e),e.actions.register({id:"sh3.app.launch",label:"Launch app",scope:["home","app"],submenu:!0,paletteItem:!0});const s=new Map;os(()=>{Ie(()=>{const a=new Set;for(const[o,l]of Qn){if(a.add(o),s.has(o))continue;const c=e.actions.register({id:`sh3.app.launch:${o}`,label:l.manifest.label,scope:["home","app"],submenuOf:"sh3.app.launch",run(){Vn(o)}});s.set(o,c)}for(const o of[...s.keys()])a.has(o)||(s.get(o)(),s.delete(o))})})},autostart(){}},E2={id:"shell",label:"Sh3",version:_n,views:[{id:"shell:terminal",label:"Sh3",standalone:!0}],permissions:[Ns]};class A2{#e;get history(){return i(this.#e)}set history(t){w(this.#e,t,!0)}#t;get locked(){return i(this.#t)}set locked(t){w(this.#t,t,!0)}constructor(t){this.#e=V(ve([])),this.#t=V(!1),this.modeId=t,this.scrollback=new $0}}let ur=null;function C2(e){ur=e}function T2(){ur=null}function ad(e){return ur?.workspace.buffers[e]}function R2(e,t){ur&&(ur.workspace.buffers={...ur.workspace.buffers,[e]:t})}function L2(){ur={ephemeral:{},session:{},workspace:{buffers:{}},user:{}}}L2();const M2=200;class P2{constructor(){this.timers=new Map}hydrate(t){const n=ad(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)},M2);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 ad(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}:{}};R2(t.modeId,s)}toPersisted(t){if(t.kind==="rich"){const n=t.componentKey;if(!n)return{id:t.id,kind:"status",text:"<rich entry: not restorable (no componentKey)>",level:"info",ts:t.ts};try{const r=JSON.stringify(t.props);return{id:t.id,kind:"rich",componentKey:n,props:JSON.parse(r),ts:t.ts}}catch{return{id:t.id,kind:"status",text:`<rich entry: ${n} not restorable>`,level:"info",ts:t.ts}}}return t.kind==="prompt"?{id:t.id,kind:"prompt",cwd:t.cwd,line:t.line,ts:t.ts}:t.kind==="text"?{id:t.id,kind:"text",stream:t.stream,chunks:[...t.chunks],ts:t.ts}:{id:t.id,kind:"status",text:t.text,level:t.level,ts:t.ts}}toLive(t){return t.kind==="rich"?{id:t.id,kind:"rich",componentKey:t.componentKey,component:void 0,props:t.props,ts:t.ts}:t.kind==="prompt"?{id:t.id,kind:"prompt",cwd:t.cwd,line:t.line,ts:t.ts}:t.kind==="text"?{id:t.id,kind:"text",stream:t.stream,chunks:[...t.chunks],ts:t.ts}:{id:t.id,kind:"status",text:t.text,level:t.level,ts:t.ts}}}function D2(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 z2(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 j2(e){const{scrollTop:t,scrollHeight:n,clientHeight:r,threshold:s}=e;return n-t-r<=s}var O2=E("<pre> </pre>");function N2(e,t){ae(t,!0);const n=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,r=F(()=>t.chunks.join("").replace(n,""));var s=O2();let a;var o=p(s,!0);h(s),q(()=>{a=he(s,1,"shell-text svelte-ypr8s",null,a,{stderr:t.stream==="stderr"}),z(o,i(r))}),x(e,s),ie()}var q2=E('<div class="shell-prompt svelte-u0gb59"><span class="shell-prompt-cwd svelte-u0gb59"> </span> <span class="shell-prompt-arrow svelte-u0gb59">❯</span> <span class="shell-prompt-line svelte-u0gb59"> </span></div>');function B2(e,t){var n=q2(),r=p(n),s=p(r,!0);h(r);var a=_(r,4),o=p(a,!0);h(a),h(n),q(()=>{z(s,t.cwd),z(o,t.line)}),x(e,n)}var F2=E("<div> </div>");function id(e,t){var n=F2();let r;var s=p(n,!0);h(n),q(()=>{r=he(n,1,"shell-status svelte-nfxdpt",null,r,{info:t.level==="info",warn:t.level==="warn",error:t.level==="error"}),z(s,t.text)}),x(e,n)}var V2=E('<div class="shell-rich svelte-1rnhl05"><!></div>');function U2(e,t){var n=V2(),r=p(n);la(r,()=>t.component,(s,a)=>{a(s,ua(()=>t.componentProps))}),h(n),x(e,n)}const xl=new Map;function Kn(e,t){const n=xl.get(e);if(n&&n!==t){console.warn(`[shell-shard/rich-registry] duplicate registration for key "${e}" — keeping first`);return}xl.set(e,t)}function H2(e){return xl.get(e)??null}var K2=E('<span class="jump-pill__count svelte-isy3jt"> </span>'),W2=E('<div class="jump-pill svelte-isy3jt" data-sh3-jump-pill=""><!></div>'),Y2=E('<div class="shell-scrollback-wrap svelte-isy3jt"><div class="shell-scrollback svelte-isy3jt"><div class="content"></div></div> <!></div>');function X2(e,t){ae(t,!0);let n=V(null),r=V(null),s=V(!0),a=V(0);const o=4;function l(){return i(n)?j2({scrollTop:i(n).scrollTop,scrollHeight:i(n).scrollHeight,clientHeight:i(n).clientHeight,threshold:o}):!0}function c(){i(n)&&(i(n).scrollTop=i(n).scrollHeight,w(s,!0),w(a,0))}function u(){l()?(w(s,!0),w(a,0)):w(s,!1)}let d=0;Ie(()=>{if(!i(r)||!i(n))return;d=i(n).scrollHeight;const b=new ResizeObserver(()=>{if(!i(n))return;const A=i(n).scrollHeight,k=A>d;d=A,i(s)?i(n).scrollTop=A:k&&gr(a)});return b.observe(i(r)),()=>b.disconnect()});var f=Y2(),v=p(f),m=p(v);me(m,21,()=>t.scrollback.entries,b=>b.id,(b,A)=>{var k=Me(),y=fe(k);{var C=T=>{N2(T,{get stream(){return i(A).stream},get chunks(){return i(A).chunks}})},I=T=>{{let M=F(()=>t.showPromptCwd?i(A).cwd:"");B2(T,{get cwd(){return i(M)},get line(){return i(A).line}})}},P=T=>{id(T,{get text(){return i(A).text},get level(){return i(A).level}})},L=T=>{const M=F(()=>i(A).component??(i(A).componentKey?H2(i(A).componentKey):null));var N=Me(),R=fe(N);{var D=B=>{U2(B,{get component(){return i(M)},get componentProps(){return i(A).props}})},j=B=>{{let X=F(()=>`<rich entry: ${i(A).componentKey??"unknown"} not registered>`);id(B,{get text(){return i(X)},level:"info"})}};W(R,B=>{i(M)?B(D):B(j,-1)})}x(T,N)};W(y,T=>{i(A).kind==="text"?T(C):i(A).kind==="prompt"?T(I,1):i(A).kind==="status"?T(P,2):i(A).kind==="rich"&&T(L,3)})}x(b,k)}),h(m),Ne(m,b=>w(r,b),()=>i(r)),h(v),Ne(v,b=>w(n,b),()=>i(n));var S=_(v,2);{var g=b=>{var A=W2(),k=p(A);{let y=F(()=>i(a)>0?`${i(a)} New — jump to bottom`:"Jump to bottom"),C=F(()=>i(a)>0?`Jump to bottom, ${i(a)} New`:"Jump to bottom");Dn(k,{variant:"default",icon:"chevron-down",get title(){return i(y)},get ariaLabel(){return i(C)},onclick:c,children:(I,P)=>{var L=Me(),T=fe(L);{var M=N=>{var R=K2(),D=p(R);h(R),q(()=>z(D,`${i(a)??""} New`)),x(N,R)};W(T,N=>{i(a)>0&&N(M)})}x(I,L)},$$slots:{default:!0}})}h(A),x(b,A)};W(S,b=>{i(s)||b(g)})}h(f),Ue("scroll",v,u),x(e,f),ie()}var G2=E('<span class="sh3-cmdline__prefix svelte-ngn09j"><!></span>'),J2=E('<div data-sh3-passthrough-modifiers=""><!> <input type="text" class="sh3-cmdline__decoy svelte-ngn09j" tabindex="-1" aria-hidden="true"/> <input type="password" class="sh3-cmdline__decoy svelte-ngn09j" tabindex="-1" aria-hidden="true"/> <input type="search" spellcheck="false" autocomplete="off" autocapitalize="off" aria-autocomplete="none" data-1p-ignore="" data-lpignore="true" class="sh3-cmdline__input svelte-ngn09j"/></div>');function Z2(e,t){ae(t,!0);let n=te(t,"value",15,""),r=te(t,"disabled",3,!1),s=V(null);function a(v){return v.selectionStart!==null&&v.selectionEnd!==null&&v.selectionStart!==v.selectionEnd}function o(v){(v.ctrlKey||v.metaKey)&&!v.altKey&&v.key==="c"&&i(s)&&a(i(s))||t.onkeydown?.(v)}Ie(()=>{!r()&&i(s)&&i(s).focus()});var l=J2();let c;var u=p(l);{var d=v=>{var m=G2(),S=p(m);en(S,()=>t.prefix),h(m),x(v,m)};W(u,v=>{t.prefix&&v(d)})}var f=_(u,6);xe(f),Ne(f,v=>w(s,v),()=>i(s)),h(l),q(()=>{c=he(l,1,"sh3-cmdline svelte-ngn09j",null,c,{"sh3-cmdline--disabled":r()}),re(f,"name",t.name),f.disabled=r()}),K("keydown",f,o),Ue("focus",f,function(...v){t.onfocus?.apply(this,v)}),Te(f,n),x(e,l),ie()}pe(["keydown"]);var Q2=E('<span class="shell-input-cwd svelte-1dfv2gk"> </span>'),$2=E('<!> <span class="shell-input-arrow svelte-1dfv2gk">❯</span>',1),eA=E('<div class="shell-input-row svelte-1dfv2gk"><!></div>');function tA(e,t){ae(t,!0);let n=te(t,"showCwd",3,!0),r=V(""),s=V(null),a=V("");function o(){if(t.locked)return;const v=i(r);v.trim()&&(w(r,""),w(s,null),t.onSubmit(v))}function l(){t.history.length!==0&&(i(s)===null?(w(a,i(r),!0),w(s,t.history.length-1)):i(s)>0&&gr(s,-1),w(r,t.history[i(s)]??"",!0))}function c(){i(s)!==null&&(i(s)<t.history.length-1?(gr(s),w(r,t.history[i(s)],!0)):(w(s,null),w(r,i(a),!0)))}function u(v){if(t.locked){if(v.ctrlKey&&v.key==="c"){v.preventDefault(),t.session.send({t:"signal",sig:"SIGINT"});return}if(v.ctrlKey&&v.key==="d"){v.preventDefault(),t.session.send({t:"signal",sig:"EOF"});return}v.preventDefault();return}v.key==="Enter"?(v.preventDefault(),o()):v.key==="ArrowUp"?(v.preventDefault(),l()):v.key==="ArrowDown"?(v.preventDefault(),c()):v.ctrlKey&&v.key==="c"?(v.preventDefault(),w(r,""),w(s,null)):v.ctrlKey&&v.key==="l"&&(v.preventDefault(),w(r,"clear"),o())}var d=eA(),f=p(d);Z2(f,{get disabled(){return t.locked},name:"shell-cmdline",onkeydown:u,onfocus:()=>t.onFocus?.(),get value(){return i(r)},set value(m){w(r,m,!0)},prefix:m=>{var S=$2(),g=fe(S);{var b=A=>{var k=Q2(),y=p(k,!0);h(k),q(()=>z(y,t.cwd)),x(A,k)};W(g,A=>{n()&&A(b)})}_t(2),x(m,S)},$$slots:{prefix:!0}}),h(d),x(e,d),ie()}class nA{list(){return ic()}get(t){return ti(t)}resolve(t,n={}){const r=t.trim();if(!r)return{kind:"forward",line:t};if(r.startsWith("$ "))return{kind:"forward",line:r.slice(2)};if(r==="$")return{kind:"forward",line:""};if(r.startsWith("/")){const u=r.slice(1).trimStart();return u?this.resolve(u,{globalOnly:!1}):{kind:"forward",line:""}}const s=r.indexOf(" "),a=s===-1?r:r.slice(0,s),o=s===-1?"":r.slice(s+1),l=ti(a);if(!l)return{kind:"forward",line:t};if(n.globalOnly&&!l.globalVerb)return{kind:"forward",line:t};const c=o.length?o.split(/\s+/):[];return{kind:"local",verb:l,args:c,line:t}}}class rA{#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 sA={id:"bash",label:"Bash",requiresRole:"admin",transport:"ws",autoRelocate:!1,showCwd:!0},aA={id:"sh3",label:"SH3",transport:"none",autoRelocate:!0,showCwd:!1};function iA(e){e.register(sA),e.register(aA)}function xp(e){return`sh3.shell.lastMode.${e}`}function Sp(e){try{return globalThis.localStorage?.getItem(xp(e))??null}catch{return null}}function od(e,t){try{globalThis.localStorage?.setItem(xp(e),t)}catch{}}function oA(e,t,n){const r=Sp(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 Va(e,t){return e.entries.find(n=>n.kind==="rich"&&n.id===t)}function lA(e,t){return{update(n){const r=Va(e,t);r&&Object.assign(r.props,n)}}}function ld(e){return e.entries[e.entries.length-1].id}function cd(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()}),lA(t,ld(t))},stream(n,r){t.push({kind:"rich",component:n,props:{...r,__streamState:"streaming"},ts:Date.now()});const s=ld(t);return{append(a){const o=Va(t,s);o&&Object.assign(o.props,a)},complete(){const a=Va(t,s);a&&(a.props.__streamState="complete")},error(a){const o=Va(t,s);o&&(o.props.__streamState="error"),t.push({kind:"status",text:`mode: ${a?.message??String(a)}`,level:"error",ts:Date.now()})}}},busy(n){const r=e.busy(n);let s=!1;return{clear(){s||(s=!0,r())}}},invoke(n,r){return e.invoke(n,r)}}}function cA(e){let t=null;async function n(s,a){const o=e.mode();if(s===o.id)throw new Error(`invoke: cannot invoke own mode '${s}'`);if(s==="sh3"){const u=e.resolver.resolve(a,{globalOnly:!1});if(u.kind==="forward"){const d=a.trim().split(/\s+/)[0]??"";throw new Error(`invoke: unknown sh3 verb '${d}'`)}await u.verb.run({sh3:e.sh3,scrollback:e.buffer().scrollback,session:e.session,cwd:e.cwd(),dispatch:r,fs:e.fs},u.args);return}if(s==="bash"){if(e.role()!=="admin")throw new Error("invoke: 'bash' requires admin role");e.session.send({t:"submit",line:a,mode:"bash"});return}const l=e.customMode?.(s)??null;if(!l)throw new Error(`invoke: unknown mode '${s}'`);if(l.requiresRole&&l.requiresRole!==e.role())throw new Error(`invoke: mode '${s}' requires ${l.requiresRole} role`);if(l.runsOn==="server")throw new Error("invoke: server-side modes are not yet supported");const c=cd({scrollback:e.buffer().scrollback,busy:e.busy,invoke:n});await l.dispatch({line:a,cwd:e.cwd(),signal:t?.signal??new AbortController().signal},c)}async function r(s){t?.abort();const a=new AbortController;t=a;const o=e.mode();if(e.buffer().history.push(s),o.transport==="none"&&s.trimStart().startsWith("$ ")){e.buffer().scrollback.push({kind:"prompt",cwd:e.cwd(),line:s,ts:Date.now()}),e.buffer().scrollback.push({kind:"status",text:"shell: server shell not available in user mode",level:"error",ts:Date.now()});return}const l=e.resolver.resolve(s,{globalOnly:o.id!=="sh3"});if(l.kind==="local"){e.session.send({t:"history-log",line:s,mode:o.id}),s.trimStart().startsWith("/")||e.buffer().scrollback.push({kind:"prompt",cwd:e.cwd(),line:s,ts:Date.now()});try{await l.verb.run({sh3:e.sh3,scrollback:e.buffer().scrollback,session:e.session,cwd:e.cwd(),dispatch:r,fs:e.fs},l.args)}catch(d){e.buffer().scrollback.push({kind:"status",text:`shell: verb ${l.verb.name} threw — ${d.message}`,level:"error",ts:Date.now()})}return}if(o.transport==="ws"){e.session.send({t:"submit",line:l.line,mode:o.id});return}if(o.transport==="custom"){e.buffer().scrollback.push({kind:"prompt",cwd:e.cwd(),line:l.line,ts:Date.now()});const u=e.customMode?.(o.id)??null;if(!u){e.buffer().scrollback.push({kind:"status",text:`mode '${o.id}' is no longer available`,level:"error",ts:Date.now()});return}if(u.runsOn==="server"){e.buffer().scrollback.push({kind:"status",text:"server-side modes are not yet supported (planned for a future release)",level:"error",ts:Date.now()});return}const d=cd({scrollback:e.buffer().scrollback,busy:e.busy,invoke:n}),f=e.busy();try{await u.dispatch({line:l.line,cwd:e.cwd(),signal:a.signal},d)}catch(v){v?.name==="AbortError"?e.buffer().scrollback.push({kind:"status",text:"mode dispatch aborted",level:"info",ts:Date.now()}):e.buffer().scrollback.push({kind:"status",text:`mode '${o.id}' threw — ${v?.message??String(v)}`,level:"error",ts:Date.now()})}finally{f()}return}const c=l.line.split(/\s+/)[0]??"";e.buffer().scrollback.push({kind:"prompt",cwd:e.cwd(),line:l.line,ts:Date.now()}),e.buffer().scrollback.push({kind:"status",text:`unknown verb: ${c}`,level:"error",ts:Date.now()})}return{dispatch:r,cancel:()=>t?.abort()}}async function uA(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 dA=E('<div class="toolbar svelte-gnowwz"><div class="toolbar-slots svelte-gnowwz"></div></div>');function fA(e,t){ae(t,!0);let n=te(t,"slotProps",19,()=>({})),r=F(()=>t.registry.list(t.ctx));var s=dA(),a=p(s);me(a,21,()=>i(r),o=>o.id,(o,l)=>{const c=F(()=>i(l).component);var u=Me(),d=fe(u);la(d,()=>i(c),(f,v)=>{v(f,ua(()=>n()[i(l).id]??{}))}),x(o,u)}),h(a),h(s),x(e,s),ie()}class vA{#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 hA=E('<span class="mode-label svelte-1i4cqlj"> </span>');function pA(e,t){ae(t,!0);let n=F(()=>t.modes.map(l=>({value:l.id,label:l.label})));var r=Me(),s=fe(r);{var a=l=>{$h(l,{get options(){return i(n)},get value(){return t.mode.id},size:"sm",onchange:c=>t.onSelect(c)})},o=l=>{var c=hA(),u=p(c,!0);h(c),q(()=>z(u,t.mode.label)),x(l,c)};W(s,l=>{t.modes.length>=2?l(a):t.modes.length===1&&l(o,1)})}x(e,r),ie()}var mA=E('<button class="focus-lock-btn svelte-1q6gbap"> </button>');function bA(e,t){var n=mA(),r=p(n,!0);h(n),q(()=>{re(n,"title",t.locked?"Unlock focus":"Lock focus"),z(r,t.locked?"🔒":"🔓")}),K("click",n,function(...s){t.onToggle?.apply(this,s)}),x(e,n)}pe(["click"]);var gA=E('<span class="target-shard svelte-1nn2m6x" title="Target shard"> </span>');function yA(e,t){var n=gA(),r=p(n);h(n),q(()=>z(r,`→ ${t.target??"—"??""}`)),x(e,n)}var _A=E('<span class="label"> </span>'),wA=E('<div class="busy svelte-7wyurd" role="status" aria-live="polite"><span class="spinner svelte-7wyurd" aria-hidden="true"></span> <!></div>');function kA(e,t){var n=Me(),r=fe(n);{var s=a=>{var o=wA(),l=_(p(o),2);{var c=u=>{var d=_A(),f=p(d,!0);h(d),q(()=>z(f,t.label)),x(u,d)};W(l,u=>{t.label&&u(c)})}h(o),x(a,o)};W(r,a=>{t.active&&a(s)})}x(e,n)}var xA=E('<div class="shell-terminal svelte-13komre"><!> <!> <!></div>');function SA(e,t){ae(t,!0);const n=Se(()=>new P2),r=new Map;function s(O){let H=r.get(O);return H||(H=new A2(O),n.hydrate(H),r.set(O,H)),H}const a=new nA,o=new Lh,l=new rA;iA(l);let c=V(ve(Se(()=>t.contributions.list(Ms))));Ie(()=>{const O=t.contributions.onChange(Ms,()=>{w(c,t.contributions.list(Ms),!0)});return()=>O()});function u(O){return{id:O.id,label:O.label,requiresRole:O.requiresRole,transport:"custom",autoRelocate:O.autoRelocate??!1,showCwd:O.showCwd??!1}}let d=F(()=>[...l.list(t.role),...i(c).filter(O=>!O.requiresRole||O.requiresRole===t.role).map(u)]),f=V(ve(Se(()=>{const O=Sp(t.userId);if(O){const ee=[...l.list(t.role),...i(c).filter(Z=>!Z.requiresRole||Z.requiresRole===t.role).map(u)].find(Z=>Z.id===O);if(ee)return ee}return oA(l,t.userId,t.role)}))),v=V(0);function m(){w(v,performance.now(),!0)}const S=Se(()=>x0()),g=F(()=>s(i(f).id));Ie(()=>{for(const[O,H]of Object.entries(k.historyByMode)){const ee=s(O);ee.history.length<H.length&&(ee.history=[...H])}}),Ie(()=>{i(g).scrollback.entries.length,i(g).history.length,i(g).modeId==="bash"?n.flush(i(g),k.lastSeq):n.flush(i(g))});function b(O){const H=i(d).find(ee=>ee.id===O);H&&(H.requiresRole&&H.requiresRole!==t.role||(M(),w(f,H,!0),od(t.userId,O)))}Ie(()=>{if(!i(d).find(O=>O.id===i(f).id)){const O=i(d).find(H=>H.id==="sh3")??i(d)[0];if(O){const H=i(f).id;w(f,O,!0),od(t.userId,O.id),s(O.id).scrollback.push({kind:"status",text:`mode '${H}' is no longer available — switched to '${O.id}'`,level:"warn",ts:Date.now()})}}});const A=Se(()=>({...t.shell,setMode:O=>{const H=i(d).find(ee=>ee.id===O);return!H||H.requiresRole&&H.requiresRole!==t.role?!1:(b(O),!0)},listModes:()=>i(d).map(O=>({id:O.id,label:O.label})),getMode:()=>({id:i(f).id,label:i(f).label}),dispatchToTerminal:_c({headless:!1})})),k=Se(()=>new Rh(t.wsUrl));let y=0,C=V(ve(new Map));function I(O){const H=++y;i(C).set(H,O),w(C,new Map(i(C)),!0);let ee=!1;return()=>{ee||(ee=!0,i(C).delete(H),w(C,new Map(i(C)),!0))}}let P=F(()=>i(C).size>0),L=F(()=>{if(i(C).size===0)return null;let O;for(const H of i(C).values())O=H;return O??null});const{dispatch:T,cancel:M}=Se(()=>cA({mode:()=>i(f),role:()=>t.role,resolver:a,buffer:()=>i(g),session:k,sh3:A,fs:o,cwd:()=>k.cwd,busy:I,customMode:O=>i(c).find(H=>H.id===O)??null}));let N=V(!1),R=V(null);const D=new vA;D.register({id:"busy",order:5,visible:()=>!0,component:kA}),D.register({id:"mode",order:10,visible:()=>!0,component:pA}),D.register({id:"focus-lock",order:20,visible:O=>O.mode.id==="sh3",component:bA}),D.register({id:"target-shard",order:30,visible:O=>O.mode.id==="sh3",component:yA});function j(O){if(O.type==="tabs")return O.tabs[O.activeTab]?.viewId??null;if(O.type==="split"){for(const H of O.children){const ee=j(H);if(ee!==null)return ee}return null}return O.viewId??null}function B(){try{const O=Ut(),H=j(O.docked);if(!H)return null;const ee=H.indexOf(":");return ee>=0?H.slice(0,ee):H}catch{return null}}Ie(()=>{const O=B(),H=i(f).autoRelocate,ee=i(N);(async()=>{const Z=await uA({modeAutoRelocate:H,focusLocked:ee,focusedShardId:O,currentShardId:"shell"},o);Z.kind==="relocate"&&Z.path!==void 0&&(k.cwd=Z.path),O&&O!=="shell"?w(R,O,!0):O||w(R,null)})()});function X(O){if(O.t==="replay"){D2(s("bash"),O.events);return}if(O.t!=="event")return;const H=O.event,ee=s("bash");switch(H.kind){case"prompt":ee.scrollback.push({kind:"prompt",cwd:H.cwd,line:H.line,ts:H.ts}),ee.locked=!0;break;case"stdout":ee.scrollback.push({kind:"text",stream:"stdout",chunks:[H.data],ts:H.ts});break;case"stderr":ee.scrollback.push({kind:"text",stream:"stderr",chunks:[H.data],ts:H.ts});break;case"exit":(H.signal||H.code!==null&&H.code!==0)&&ee.scrollback.push({kind:"status",text:H.signal?`shell: process exited (${H.signal})`:`shell: process exited (${H.code})`,level:"error",ts:H.ts}),ee.locked=!1;break;case"status":ee.scrollback.push({kind:"status",text:H.text,level:H.level,ts:H.ts});break}}let J=null,Y=null;Xl(()=>{J=k.onMessage(X),s("bash");const O=n.readLastSeq("bash");O!==void 0&&(k.lastSeq=O),k.connect(),Y=S0({id:S,dispatch:T,getFocusStamp:()=>i(v),getMode:()=>i(f)})}),Gl(()=>{J?.(),k.close(),Y?.()});var U=xA(),Q=p(U);{let O=F(()=>({mode:i(f),role:t.role})),H=F(()=>({busy:{active:i(P),label:i(L)},mode:{mode:i(f),modes:i(d),onSelect:b},"focus-lock":{locked:i(N),onToggle:()=>w(N,!i(N))},"target-shard":{target:i(R)}}));fA(Q,{get registry(){return D},get ctx(){return i(O)},get slotProps(){return i(H)}})}var G=_(Q,2);{let O=F(()=>i(f).showCwd||!1);X2(G,{get showPromptCwd(){return i(O)},get scrollback(){return i(g).scrollback}})}var $=_(G,2);{let O=F(()=>z2(k.cwd,k.tenantRoot)),H=F(()=>i(f).showCwd!==!1);tA($,{get cwd(){return i(O)},get showCwd(){return i(H)},get locked(){return i(g).locked},get history(){return i(g).history},get session(){return k},get onSubmit(){return T},onFocus:m})}h(U),x(e,U),ie()}var IA=E('<tr><td class="svelte-m248jy"><button type="button" class="svelte-m248jy"> </button></td><td class="svelte-m248jy"> </td></tr>'),EA=E('<div class="shell-rich-help svelte-m248jy"><table class="svelte-m248jy"><thead><tr><th class="svelte-m248jy">Name</th><th class="svelte-m248jy">Summary</th></tr></thead><tbody></tbody></table></div>');function Ip(e,t){ae(t,!0);var n=EA(),r=p(n),s=_(p(r));me(s,21,()=>t.data.rows,a=>a.name,(a,o)=>{var l=IA(),c=p(l),u=p(c),d=p(u,!0);h(u),h(c);var f=_(c),v=p(f,!0);h(f),h(l),q(()=>{z(d,i(o).name),z(v,i(o).summary)}),K("click",u,()=>t.data.onClickName(i(o).name)),x(a,l)}),h(s),h(r),h(n),x(e,n),ie()}pe(["click"]);const Ep="help-table";Kn(Ep,Ip);function AA(){return{name:"help",summary:"List verbs or show detail for one.",globalVerb:!0,async run(e){const t=ic().map(n=>({name:n.name,summary:n.summary}));e.scrollback.push({kind:"rich",componentKey:Ep,component:Ip,props:{data:{rows:t,onClickName:n=>e.dispatch(n)}},ts:Date.now()})}}}const CA={name:"clear",summary:"Clear the scrollback (local only — other views are unaffected).",globalVerb:!0,async run(e){e.scrollback.clear()}},TA={name:"mode",summary:"List or switch shell modes. Usage: mode | mode <id>",globalVerb:!0,async run(e,t){const n=Date.now();if(t.length===0){const o=e.sh3.listModes().map(l=>` ${l.id.padEnd(12)} ${l.label}`);e.scrollback.push({kind:"text",stream:"stdout",chunks:[["Available modes:",...o].join(`
|
|
15
|
-
`)+`
|
|
16
|
-
`],ts:n});return}const r=t[0];e.sh3.setMode(r)||e.scrollback.push({kind:"status",text:`mode: unknown or restricted mode '${r}'`,level:"error",ts:n})}};var RA=E('<li class="svelte-o8m437"><button type="button" class="svelte-o8m437"> </button></li>'),LA=E('<div class="shell-rich-history svelte-o8m437"><ol class="svelte-o8m437"></ol></div>');function Ap(e,t){ae(t,!0);var n=LA(),r=p(n);me(r,21,()=>t.data.lines,ut,(s,a)=>{var o=RA(),l=p(o),c=p(l,!0);h(l),h(o),q(()=>z(c,i(a))),K("click",l,()=>t.data.onClickLine(i(a))),x(s,o)}),h(r),h(n),x(e,n),ie()}pe(["click"]);const Cp="history-list";Kn(Cp,Ap);const MA={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:Cp,component:Ap,props:{data:{lines:a,onClickLine:o=>e.dispatch(o)}},ts:Date.now()})}};var PA=E('<tr><td class="svelte-1u5krjz"><button type="button" class="svelte-1u5krjz"> </button></td><td class="svelte-1u5krjz"> </td></tr>'),DA=E('<div class="shell-rich-apps svelte-1u5krjz"><table class="svelte-1u5krjz"><thead><tr><th class="svelte-1u5krjz">ID</th><th class="svelte-1u5krjz">Label</th></tr></thead><tbody></tbody></table></div>');function Tp(e,t){ae(t,!0);var n=DA(),r=p(n),s=_(p(r));me(s,21,()=>t.data.apps,a=>a.id,(a,o)=>{var l=PA(),c=p(l),u=p(c),d=p(u,!0);h(u),h(c);var f=_(c),v=p(f,!0);h(f),h(l),q(()=>{z(d,i(o).id),z(v,i(o).label)}),K("click",u,()=>t.data.onClickApp(i(o).id)),x(a,l)}),h(s),h(r),h(n),x(e,n),ie()}pe(["click"]);var zA=E('<div class="shell-rich-appcard svelte-npcp8i"><h3 class="svelte-npcp8i"> </h3> <p class="svelte-npcp8i"><strong>ID:</strong> </p> <p class="svelte-npcp8i"><strong>Shards:</strong> </p></div>');function Rp(e,t){ae(t,!0);var n=zA(),r=p(n),s=p(r,!0);h(r);var a=_(r,2),o=_(p(a));h(a);var l=_(a,2),c=_(p(l));h(l),h(n),q(u=>{z(s,t.data.label),z(o,` ${t.data.id??""}`),z(c,` ${u??""}`)},[()=>t.data.shards.join(", ")]),x(e,n),ie()}const Lp="apps-table",Mp="app-card";Kn(Lp,Tp);Kn(Mp,Rp);const jA={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:Lp,component:Tp,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()})}},OA={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:Mp,component:Rp,props:{data:{id:t.id,label:t.label,shards:[]}},ts:Date.now()})}};var NA=E('<tr><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td></tr>'),qA=E('<div class="shell-rich-shards svelte-sc3ux4"><table class="svelte-sc3ux4"><thead><tr><th class="svelte-sc3ux4">ID</th><th class="svelte-sc3ux4">Label</th><th class="svelte-sc3ux4">Version</th></tr></thead><tbody></tbody></table></div>');function Pp(e,t){ae(t,!0);var n=qA(),r=p(n),s=_(p(r));me(s,21,()=>t.data.shards,a=>a.id,(a,o)=>{var l=NA(),c=p(l),u=p(c,!0);h(c);var d=_(c),f=p(d,!0);h(d);var v=_(d),m=p(v,!0);h(v),h(l),q(()=>{z(u,i(o).id),z(f,i(o).label),z(m,i(o).version)}),x(a,l)}),h(s),h(r),h(n),x(e,n),ie()}const Dp="shards-table";Kn(Dp,Pp);const BA={name:"shards",summary:"List active shards.",programmatic:!0,async run(e){const t=e.sh3.listShards();e.scrollback.push({kind:"rich",componentKey:Dp,component:Pp,props:{data:{shards:t}},ts:Date.now()})}};var FA=E('<tr><td class="svelte-15elbr1"> </td><td class="svelte-15elbr1"> </td><td class="svelte-15elbr1"> </td><td class="svelte-15elbr1"><button type="button" class="svelte-15elbr1">Close</button></td></tr>'),VA=E('<div class="shell-rich-views svelte-15elbr1"><table class="svelte-15elbr1"><thead><tr><th class="svelte-15elbr1">Slot ID</th><th class="svelte-15elbr1">View ID</th><th class="svelte-15elbr1">Label</th><th class="svelte-15elbr1">Action</th></tr></thead><tbody></tbody></table></div>');function zp(e,t){ae(t,!0);var n=VA(),r=p(n),s=_(p(r));me(s,21,()=>t.data.views,a=>a.slotId,(a,o)=>{var l=FA(),c=p(l),u=p(c,!0);h(c);var d=_(c),f=p(d,!0);h(d);var v=_(d),m=p(v,!0);h(v);var S=_(v),g=p(S);h(S),h(l),q(()=>{z(u,i(o).slotId),z(f,i(o).viewId),z(m,i(o).label)}),K("click",g,()=>t.data.onClose(i(o).slotId)),x(a,l)}),h(s),h(r),h(n),x(e,n),ie()}pe(["click"]);const jp="views-table";Kn(jp,zp);const UA={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:jp,component:zp,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()})}},HA={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()})}},KA={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()})}},WA={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()})}},YA={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 XA=E('<tr><td class="svelte-1w7onag"> </td><td class="svelte-1w7onag"> </td></tr>'),GA=E('<div class="shell-rich-zones svelte-1w7onag"><table class="svelte-1w7onag"><thead><tr><th class="svelte-1w7onag">Shard ID</th><th class="svelte-1w7onag">Zones</th></tr></thead><tbody></tbody></table></div>');function Op(e,t){ae(t,!0);var n=GA(),r=p(n),s=_(p(r));me(s,21,()=>t.data.rows,a=>a.shardId,(a,o)=>{var l=XA(),c=p(l),u=p(c,!0);h(c);var d=_(c),f=p(d,!0);h(d),h(l),q(v=>{z(u,i(o).shardId),z(f,v)},[()=>i(o).zones.join(", ")]),x(a,l)}),h(s),h(r),h(n),x(e,n),ie()}var JA=E('<div class="shell-rich-zonetree svelte-13iiyr1"><pre class="svelte-13iiyr1"> </pre></div>');function Np(e,t){ae(t,!0);var n=JA(),r=p(n),s=p(r,!0);h(r),h(n),q(a=>z(s,a),[()=>JSON.stringify(t.data.value,null,2)]),x(e,n),ie()}const qp="zones-table",Bp="zone-tree";Kn(qp,Op);Kn(Bp,Np);const ZA={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:qp,component:Op,props:{data:{rows:n}},ts:Date.now()})}},QA={name:"zone",summary:"Dump the contents of a zone as a collapsible JSON tree.",programmatic:!0,async run(e,t){const[n,r]=t;if(!n||!r){e.scrollback.push({kind:"status",text:"usage: zone <shardId> <zoneName>",level:"warn",ts:Date.now()});return}const s=e.sh3.readZone(n,r);e.scrollback.push({kind:"rich",componentKey:Bp,component:Np,props:{data:{value:s}},ts:Date.now()})}};var $A=E('<tr><td class="svelte-1ox8vog"> </td><td class="svelte-1ox8vog"> </td></tr>'),eC=E('<div class="shell-rich-env svelte-1ox8vog"><table class="svelte-1ox8vog"><thead><tr><th class="svelte-1ox8vog">Key</th><th class="svelte-1ox8vog">Value</th></tr></thead><tbody></tbody></table></div>');function Fp(e,t){ae(t,!0);var n=eC(),r=p(n),s=_(p(r));me(s,21,()=>Object.entries(t.data.env),([a,o])=>a,(a,o)=>{var l=F(()=>qd(i(o),2));let c=()=>i(l)[0],u=()=>i(l)[1];var d=$A(),f=p(d),v=p(f,!0);h(f);var m=_(f),S=p(m,!0);h(m),h(d),q(()=>{z(v,c()),z(S,u())}),x(a,d)}),h(s),h(r),h(n),x(e,n),ie()}const Vp="env-table";Kn(Vp,Fp);const tC={name:"env",summary:"Show the session environment.",async run(e){const t=e.session.env;e.scrollback.push({kind:"rich",componentKey:Vp,component:Fp,props:{data:{env:t}},ts:Date.now()})}};async function nC(){try{const{TauriStoreBackend:e}=await gi(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:zd}}}async function rC(){try{const{LazyStore:e}=await gi(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 sC={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 rC(),location.reload()}};function aC(e){e.registerVerb(AA()),e.registerVerb(CA),e.registerVerb(TA),e.registerVerb(MA),e.registerVerb(jA),e.registerVerb(OA),e.registerVerb(BA),e.registerVerb(UA),e.registerVerb(HA),e.registerVerb(YA),e.registerVerb(KA),e.registerVerb(WA),e.registerVerb(ZA),e.registerVerb(QA),e.registerVerb(tC),e.registerVerb(sC)}const Up={manifest:E2,activate(e){aC(e);const t=Sx(e.zones),n=e.state({workspace:{buffers:{}}});C2(n),e.actions.register({id:"shell.terminal.toggle",label:"Open Terminal",scope:["home","app"],defaultShortcut:"²",allowInInputs:!1,run(){Ui("shell:terminal")||De.open("shell:terminal",{title:"Sh3"})}});const r={mount(s,a){const o=typeof location<"u"&&location.protocol==="https:"?"wss":"ws",l=typeof location<"u"?location.host:"localhost",c=`${o}://${l}/api/shell/session`,d=ts()?.id??"guest",f=Tt()?"admin":"user",v=We(SA,{target:s,props:{shell:t,wsUrl:c,userId:d,role:f,contributions:e.contributions}});return{unmount(){tt(v)},closable:!0}}};e.registerView("shell:terminal",r)},autostart(){},deactivate(){T2()}};var iC=E('<p class="error svelte-1w8uhw5">The source float was closed.</p>'),oC=E('<p class="error svelte-1w8uhw5">No standalone views in this float.</p>'),lC=E('<li class="svelte-1w8uhw5"> <span class="muted svelte-1w8uhw5"> </span></li>'),cC=E('<div class="preview svelte-1w8uhw5"><div class="preview-label svelte-1w8uhw5"> </div> <ul class="preview-list svelte-1w8uhw5"></ul></div>'),uC=E('<div class="layout-save svelte-1w8uhw5"><h2 class="svelte-1w8uhw5">Save layout as…</h2> <label class="row svelte-1w8uhw5"><span class="svelte-1w8uhw5">Name</span> <input type="text" class="name-input svelte-1w8uhw5" placeholder="Layout name"/></label> <!> <div class="actions svelte-1w8uhw5"><button type="button" class="primary svelte-1w8uhw5">Save</button> <button type="button" class="svelte-1w8uhw5">Cancel</button></div></div>');function dC(e,t){ae(t,!0);const n=Se(()=>De.list().find(I=>I.id===t.floatId)?.content??null),r=F(()=>n?to(n,t.isStandalone):null),s=F(()=>i(r)?u(i(r)):[]),a=F(()=>n===null),o=F(()=>!i(a)&&i(r)===null);let l=V(ve(Se(()=>t.defaultName)));const c=F(()=>i(l).trim()===""||i(a)||i(o));function u(I){if(I.type==="slot")return I.viewId?[I.viewId]:[];if(I.type==="tabs"){const P=[];for(const L of I.tabs)L.viewId&&P.push(L.viewId);return P}return I.children.flatMap(u)}function d(){i(c)||(t.onConfirm(i(l).trim()),t.close())}var f=uC(),v=_(p(f),2),m=_(p(v),2);xe(m),h(v);var S=_(v,2);{var g=I=>{var P=iC();x(I,P)},b=I=>{var P=oC();x(I,P)},A=I=>{var P=cC(),L=p(P),T=p(L);h(L);var M=_(L,2);me(M,21,()=>i(s),ut,(N,R)=>{var D=lC(),j=p(D),B=_(j),X=p(B);h(B),h(D),q(J=>{z(j,`${J??""} `),z(X,`(${i(R)??""})`)},[()=>t.resolveLabel(i(R))]),x(N,D)}),h(M),h(P),q(()=>z(T,`Captured views (${i(s).length??""}):`)),x(I,P)};W(S,I=>{i(a)?I(g):i(o)?I(b,1):I(A,-1)})}var k=_(S,2),y=p(k),C=_(y,2);h(k),h(f),q(()=>y.disabled=i(c)),Te(m,()=>i(l),I=>w(l,I)),K("click",y,d),K("click",C,()=>t.close()),x(e,f),ie()}pe(["click"]);function fC(){const e=ma();return!e||e.type!=="float-header"?null:e.ref}function Vc(e){return Ys().some(t=>t.viewId===e)}function vC(e){return Ys().find(t=>t.viewId===e)?.label??e}function hC(){return`sl-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function pC(e,t){const n=xI(e,Vc);if(n===null)return null;const r={id:hC(),name:t,createdAt:Date.now(),size:n.size,content:n.content};return _I(r),r}function Hp(){const e=ma();return!e||e.type!=="saved-layout"?null:e.ref}function mC(e,t){const n=t.icon===void 0&&t.color===void 0?void 0:{icon:t.icon,color:t.color};cp(e,{name:t.label,appearance:n})}function bC(e){cp(e,{appearance:void 0})}function gC(e){const t=Hp();if(!t)return;const n=xr().find(s=>s.id===t.layoutId);if(!n)return;const r={entityLabel:n.name,initialAppearance:n.appearance,defaultIcon:"eye",requireLabel:!0,onSave:s=>mC(t.layoutId,s),onReset:()=>bC(t.layoutId)};nn.open(fp,r)}function yC(e){wI(e)}function _C(e){const t=Hp();if(!t)return;const n=xr().find(r=>r.id===t.layoutId);n&&nn.open(pp,{title:`Delete saved layout "${n.name}"?`,body:"This cannot be undone.",confirmLabel:"Delete",confirmTone:"danger",onConfirm:()=>yC(t.layoutId)})}function wC(e){const t=fC();if(!t)return;const n={floatId:t.floatId,isStandalone:Vc,resolveLabel:vC,defaultName:`Layout ${xr().length+1}`,onConfirm:r=>{pC(t.floatId,r)}};nn.open(dC,n)}const Kp={manifest:{id:"__layouts__",label:"Saved Layouts",version:_n,views:[]},activate(e){const t=e.state({user:{layouts:[]}});gI(t);const n=(o,l)=>{An.notify(o,{level:l})},r={id:"sh3.layout.save",label:"Save layout as…",scope:{element:"float-header"},contextItem:!0,paletteItem:!1,run:wC};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:gC}),e.actions.register({id:"sh3.layout.delete",label:"Delete",scope:{element:"saved-layout"},contextItem:!0,run:_C});const s=new Map,a=new Map;os(()=>{Ie(()=>{const o=xr(),l=new Set;for(const c of o){l.add(c.id);const u=s.get(c.id);if(u&&a.get(c.id)===c.name)continue;u&&(u(),s.delete(c.id),a.delete(c.id));const d=e.actions.register({id:`sh3.layout.open:${c.id}`,label:c.name,scope:["home","app"],submenuOf:"sh3.layout.open",run:()=>{const f=xr().find(v=>v.id===c.id);f&&dp(f,Vc,n)}});s.set(c.id,d),a.set(c.id,c.name)}for(const c of[...s.keys()])l.has(c)||(s.get(c)(),s.delete(c),a.delete(c))})})},autostart(){},deactivate(){yI()}},Wp={manifest:{id:"sh3-store-app",label:"Package Store",version:_n,requiredShards:["sh3-store"],layoutVersion:1,admin:!0},initialLayout:{type:"tabs",activeTab:0,tabs:[{slotId:"store.browse",viewId:"sh3-store:browse",label:"Browse"}]}};var kC=E('<div class="admin-error svelte-4q792t"> </div>'),xC=E('<form class="admin-create-form svelte-4q792t"><input class="admin-input svelte-4q792t" type="text" placeholder="Username"/> <input class="admin-input svelte-4q792t" type="text" placeholder="Display name"/> <input class="admin-input svelte-4q792t" type="password" placeholder="Password"/> <select class="admin-input svelte-4q792t"><option>User</option><option>Admin</option></select> <button type="submit" class="admin-btn svelte-4q792t">Create</button> <!></form>'),SC=E('<p class="admin-muted svelte-4q792t">Loading...</p>'),IC=E('<p class="admin-error svelte-4q792t"> </p>'),EC=E('<form class="admin-edit-form svelte-4q792t"><input class="admin-input svelte-4q792t" type="text"/> <input class="admin-input svelte-4q792t" type="password" placeholder="New password (leave empty to keep)"/> <select class="admin-input svelte-4q792t"><option>User</option><option>Admin</option></select> <div class="admin-edit-actions svelte-4q792t"><button type="submit" class="admin-btn svelte-4q792t">Save</button> <button type="button" class="admin-btn-secondary svelte-4q792t">Cancel</button></div></form>'),AC=E('<div class="admin-user-info svelte-4q792t"><span class="admin-user-name svelte-4q792t"> </span> <span class="admin-user-meta svelte-4q792t"> </span></div> <div class="admin-user-actions svelte-4q792t"><button type="button" class="admin-btn-secondary svelte-4q792t">Edit</button> <button type="button" class="admin-btn-danger svelte-4q792t">Delete</button></div>',1),CC=E('<li class="admin-user-item svelte-4q792t"><!></li>'),TC=E('<ul class="admin-user-list svelte-4q792t"></ul>'),RC=E('<div class="admin-users svelte-4q792t"><div class="admin-users-header svelte-4q792t"><h2 class="svelte-4q792t">Users</h2> <button type="button" class="admin-btn svelte-4q792t"> </button></div> <!> <!></div>');function LC(e,t){ae(t,!0);let n=V(ve([])),r=V(!0),s=V(null),a=V(!1),o=V(""),l=V(""),c=V(""),u=V("user"),d=V(null),f=V(null),v=V(""),m=V("user"),S=V("");async function g(){w(r,!0),w(s,null);try{const B=await fetch("/api/admin/users",{credentials:"include"});if(!B.ok)throw new Error("Failed to fetch users");w(n,await B.json(),!0)}catch(B){w(s,B instanceof Error?B.message:"Failed to load users",!0)}finally{w(r,!1)}}async function b(){w(d,null);try{const B=await fetch("/api/admin/users",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:i(o),displayName:i(l)||i(o),password:i(c),role:i(u)})});if(!B.ok){const X=await B.json().catch(()=>({}));w(d,X.error||"Failed to create user",!0);return}w(o,""),w(l,""),w(c,""),w(u,"user"),w(a,!1),await g()}catch{w(d,"Network error")}}function A(B){w(f,B.id,!0),w(v,B.displayName,!0),w(m,B.role,!0),w(S,"")}async function k(){if(!i(f))return;const B={displayName:i(v),role:i(m)};i(S).trim()&&(B.password=i(S));try{if(!(await fetch(`/api/admin/users/${i(f)}`,{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(B)})).ok)return;w(f,null),await g()}catch{}}async function y(B){try{await fetch(`/api/admin/users/${B}`,{method:"DELETE",credentials:"include"}),await g()}catch{}}g();var C=RC(),I=p(C),P=_(p(I),2),L=p(P,!0);h(P),h(I);var T=_(I,2);{var M=B=>{var X=xC(),J=p(X);xe(J);var Y=_(J,2);xe(Y);var U=_(Y,2);xe(U);var Q=_(U,2),G=p(Q);G.value=G.__value="user";var $=_(G);$.value=$.__value="admin",h(Q);var O=_(Q,2),H=_(O,2);{var ee=Z=>{var oe=kC(),de=p(oe,!0);h(oe),q(()=>z(de,i(d))),x(Z,oe)};W(H,Z=>{i(d)&&Z(ee)})}h(X),q(Z=>O.disabled=Z,[()=>!i(o).trim()||!i(c).trim()]),Ue("submit",X,Z=>{Z.preventDefault(),b()}),Te(J,()=>i(o),Z=>w(o,Z)),Te(Y,()=>i(l),Z=>w(l,Z)),Te(U,()=>i(c),Z=>w(c,Z)),js(Q,()=>i(u),Z=>w(u,Z)),x(B,X)};W(T,B=>{i(a)&&B(M)})}var N=_(T,2);{var R=B=>{var X=SC();x(B,X)},D=B=>{var X=IC(),J=p(X,!0);h(X),q(()=>z(J,i(s))),x(B,X)},j=B=>{var X=TC();me(X,21,()=>i(n),J=>J.id,(J,Y)=>{var U=CC(),Q=p(U);{var G=O=>{var H=EC(),ee=p(H);xe(ee);var Z=_(ee,2);xe(Z);var oe=_(Z,2),de=p(oe);de.value=de.__value="user";var ne=_(de);ne.value=ne.__value="admin",h(oe);var le=_(oe,2),be=_(p(le),2);h(le),h(H),Ue("submit",H,_e=>{_e.preventDefault(),k()}),Te(ee,()=>i(v),_e=>w(v,_e)),Te(Z,()=>i(S),_e=>w(S,_e)),js(oe,()=>i(m),_e=>w(m,_e)),K("click",be,()=>{w(f,null)}),x(O,H)},$=O=>{var H=AC(),ee=fe(H),Z=p(ee),oe=p(Z,!0);h(Z);var de=_(Z,2),ne=p(de);h(de),h(ee);var le=_(ee,2),be=p(le),_e=_(be,2);h(le),q(()=>{z(oe,i(Y).displayName),z(ne,`${i(Y).username??""} · ${i(Y).role??""}`)}),K("click",be,()=>A(i(Y))),K("click",_e,()=>y(i(Y).id)),x(O,H)};W(Q,O=>{i(f)===i(Y).id?O(G):O($,-1)})}h(U),x(J,U)}),h(X),x(B,X)};W(N,B=>{i(r)?B(R):i(s)?B(D,1):B(j,-1)})}h(C),q(()=>z(L,i(a)?"Cancel":"New user")),K("click",P,()=>{w(a,!i(a))}),x(e,C),ie()}pe(["click"]);var MC=E('<p class="admin-muted svelte-1hsgdb4">Loading...</p>'),PC=E('<div class="admin-error svelte-1hsgdb4"> </div>'),DC=E('<div class="admin-auth-fields svelte-1hsgdb4"><label class="admin-toggle svelte-1hsgdb4"><input type="checkbox" class="svelte-1hsgdb4"/> <span>Require sign-in</span> <span class="admin-hint svelte-1hsgdb4">When enabled, unauthenticated visitors see a sign-in wall.</span></label> <label class="admin-toggle svelte-1hsgdb4"><input type="checkbox" class="svelte-1hsgdb4"/> <span>Allow guest browsing</span> <span class="admin-hint svelte-1hsgdb4">When sign-in is required, guests can still browse with session-only data.</span></label> <label class="admin-toggle svelte-1hsgdb4"><input type="checkbox" class="svelte-1hsgdb4"/> <span>Self-registration</span> <span class="admin-hint svelte-1hsgdb4">Visitors can create their own accounts from the sign-in screen.</span></label> <label class="admin-field svelte-1hsgdb4"><span class="svelte-1hsgdb4">Session lifetime (hours)</span> <input type="number" class="admin-input admin-input-sm svelte-1hsgdb4" min="1" max="8760"/></label> <button type="button" class="admin-btn svelte-1hsgdb4"> </button></div> <!>',1),zC=E('<div class="admin-auth svelte-1hsgdb4"><h2 class="svelte-1hsgdb4">Auth Settings</h2> <!></div>');function jC(e,t){ae(t,!0);let n=V(null),r=V(!0),s=V(!1),a=V(null);async function o(){w(r,!0);try{const v=await fetch("/api/admin/settings",{credentials:"include"});if(!v.ok)throw new Error("Failed to fetch settings");w(n,await v.json(),!0)}catch(v){w(a,v instanceof Error?v.message:"Failed to load settings",!0)}finally{w(r,!1)}}async function l(){if(i(n)){w(s,!0),w(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");w(n,await v.json(),!0)}catch(v){w(a,v instanceof Error?v.message:"Failed to save",!0)}finally{w(s,!1)}}}o();var c=zC(),u=_(p(c),2);{var d=v=>{var m=MC();x(v,m)},f=v=>{var m=DC(),S=fe(m),g=p(S),b=p(g);xe(b),_t(4),h(g);var A=_(g,2),k=p(A);xe(k),_t(4),h(A);var y=_(A,2),C=p(y);xe(C),_t(4),h(y);var I=_(y,2),P=_(p(I),2);xe(P),h(I);var L=_(I,2),T=p(L,!0);h(L),h(S);var M=_(S,2);{var N=R=>{var D=PC(),j=p(D,!0);h(D),q(()=>z(j,i(a))),x(R,D)};W(M,R=>{i(a)&&R(N)})}q(()=>{L.disabled=i(s),z(T,i(s)?"Saving...":"Save")}),Cs(b,()=>i(n).auth.required,R=>i(n).auth.required=R),Cs(k,()=>i(n).auth.guestAllowed,R=>i(n).auth.guestAllowed=R),Cs(C,()=>i(n).auth.selfRegistration,R=>i(n).auth.selfRegistration=R),Te(P,()=>i(n).auth.sessionTTL,R=>i(n).auth.sessionTTL=R),K("click",L,l),x(v,m)};W(u,v=>{i(r)?v(d):i(n)&&v(f,1)})}h(c),x(e,c),ie()}pe(["click"]);var OC=E('<button type="button"> </button>'),NC=E('<div class="admin-error svelte-1gkiloq"> </div>'),qC=E('<div class="admin-error svelte-1gkiloq"> </div>'),BC=E(`<div class="admin-system svelte-1gkiloq"><h2 class="svelte-1gkiloq">System</h2> <div class="admin-system-info svelte-1gkiloq"><div class="admin-system-row svelte-1gkiloq"><span class="admin-system-label svelte-1gkiloq">Server version</span> <span> </span></div></div> <section class="admin-system-section svelte-1gkiloq"><h3 class="svelte-1gkiloq">Package bundle cache</h3> <p class="admin-system-hint svelte-1gkiloq">Controls the <code>Cache-Control</code> header on <code>/packages/:id/client.js</code>.
|
|
19
|
-
Set to <strong>0</strong> during development so drop-in bundle replacements take effect on F5.
|
|
20
|
-
Use a long value in production.</p> <input type="range" min="0" max="31536000" step="1" class="svelte-1gkiloq"/> <div class="admin-system-readout svelte-1gkiloq"><code> </code> </div> <div class="admin-system-snaps svelte-1gkiloq"></div> <div class="admin-system-actions svelte-1gkiloq"><button type="button" class="admin-btn svelte-1gkiloq"> </button> <button type="button" class="admin-btn-ghost svelte-1gkiloq">Reset</button> <!></div></section> <section class="admin-system-section svelte-1gkiloq"><h3 class="svelte-1gkiloq">Server control</h3> <div class="admin-system-actions svelte-1gkiloq"><button type="button" class="admin-btn-danger svelte-1gkiloq"> </button> <!></div></section></div>`);function FC(e,t){ae(t,!0);const n=[{value:0,label:"Off (no-store)"},{value:5,label:"5s (dev)"},{value:60,label:"1 min"},{value:3600,label:"1 hour"},{value:86400,label:"1 day"},{value:31536e3,label:"1 year"}];let r=V("..."),s=V(!1),a=V(null),o=V(31536e3),l=V(31536e3),c=V(!1),u=V(null);const d=F(()=>i(o)!==i(l)),f=F(()=>v(i(o)));function v(Z){return Z===0?"0 seconds (off — browsers never cache)":Z<60?`${Z} seconds`:Z<3600?`${Math.round(Z/60)} minutes`:Z<86400?`${Math.round(Z/3600)} hours`:Z<31536e3?`${Math.round(Z/86400)} days`:`${Math.round(Z/31536e3)} years`}async function m(){try{const Z=await fetch("/api/version");if(Z.ok){const oe=await Z.json();w(r,oe.version,!0)}}catch{}}async function S(){try{const Z=await fetch("/api/admin/settings",{credentials:"include"});if(Z.ok){const de=(await Z.json()).packages?.cacheMaxAge??31536e3;w(o,de,!0),w(l,de,!0)}}catch{}}async function g(){w(c,!0),w(u,null);try{const Z=await fetch("/api/admin/settings",{method:"PUT",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({packages:{cacheMaxAge:i(o)}})});if(Z.ok){const oe=await Z.json();w(l,oe.packages?.cacheMaxAge??i(o),!0),w(o,i(l),!0)}else{const oe=await Z.json().catch(()=>({}));w(u,oe.error||"Save failed",!0)}}catch{w(u,"Network error")}finally{w(c,!1)}}async function b(){w(s,!0),w(a,null);try{const Z=await fetch("/api/admin/restart",{method:"POST",credentials:"include"});if(!Z.ok){const oe=await Z.json().catch(()=>({}));w(a,oe.error||"Restart failed",!0),w(s,!1)}}catch{w(a,"Network error"),w(s,!1)}}m(),S();var A=BC(),k=_(p(A),2),y=p(k),C=_(p(y),2),I=p(C,!0);h(C),h(y),h(k);var P=_(k,2),L=_(p(P),4);xe(L);var T=_(L,2),M=p(T),N=p(M,!0);h(M);var R=_(M);h(T);var D=_(T,2);me(D,21,()=>n,Z=>Z.value,(Z,oe)=>{var de=OC();let ne;var le=p(de,!0);h(de),q(()=>{ne=he(de,1,"admin-snap svelte-1gkiloq",null,ne,{active:i(o)===i(oe).value}),de.disabled=i(c),z(le,i(oe).label)}),K("click",de,()=>w(o,i(oe).value,!0)),x(Z,de)}),h(D);var j=_(D,2),B=p(j),X=p(B,!0);h(B);var J=_(B,2),Y=_(J,2);{var U=Z=>{var oe=NC(),de=p(oe,!0);h(oe),q(()=>z(de,i(u))),x(Z,oe)};W(Y,Z=>{i(u)&&Z(U)})}h(j),h(P);var Q=_(P,2),G=_(p(Q),2),$=p(G),O=p($,!0);h($);var H=_($,2);{var ee=Z=>{var oe=qC(),de=p(oe,!0);h(oe),q(()=>z(de,i(a))),x(Z,oe)};W(H,Z=>{i(a)&&Z(ee)})}h(G),h(Q),h(A),q(()=>{z(I,i(r)),L.disabled=i(c),z(N,i(o)),z(R,` — ${i(f)??""}`),B.disabled=!i(d)||i(c),z(X,i(c)?"Saving...":"Save"),J.disabled=!i(d)||i(c),$.disabled=i(s),z(O,i(s)?"Restarting...":"Restart server")}),Te(L,()=>i(o),Z=>w(o,Z)),K("click",B,g),K("click",J,()=>w(o,i(l),!0)),K("click",$,b),x(e,A),ie()}pe(["click"]);var VC=E(`<div class="admin-key-created"><div class="admin-key-created-label">New key — copy now, it won't be shown again:</div> <code class="admin-key-value svelte-1afg5z5"> </code> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Dismiss</button></div>`),UC=E('<div class="admin-error svelte-1afg5z5"> </div>'),HC=E('<form class="admin-create-form svelte-1afg5z5"><input class="admin-input svelte-1afg5z5" type="text" placeholder="Key label"/> <button type="submit" class="admin-btn svelte-1afg5z5">Create</button> <!></form>'),KC=E('<p class="admin-muted svelte-1afg5z5">Loading...</p>'),WC=E('<p class="admin-error svelte-1afg5z5"> </p>'),YC=E('<p class="admin-muted svelte-1afg5z5">No API keys. Create one to enable external access.</p>'),XC=E('<button type="button" class="admin-btn-danger svelte-1afg5z5">Confirm</button> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Cancel</button>',1),GC=E('<button type="button" class="admin-btn-danger svelte-1afg5z5">Revoke</button>'),JC=E('<li class="admin-key-item svelte-1afg5z5"><div class="admin-key-info svelte-1afg5z5"><span class="admin-key-label svelte-1afg5z5"> </span> <span class="admin-key-meta svelte-1afg5z5"> </span></div> <div class="admin-key-actions svelte-1afg5z5"><!></div></li>'),ZC=E('<ul class="admin-key-list svelte-1afg5z5"></ul>'),QC=E('<div class="admin-keys svelte-1afg5z5"><div class="admin-keys-header svelte-1afg5z5"><h2 class="svelte-1afg5z5">API Keys</h2> <button type="button" class="admin-btn svelte-1afg5z5"> </button></div> <!> <!> <!></div>');function $C(e,t){ae(t,!0);let n=V(ve([])),r=V(!0),s=V(null),a=V(!1),o=V(""),l=V(null),c=V(null),u=V(null);async function d(){w(r,!0),w(s,null);try{const R=await Re(`${st()}/api/admin/keys`);if(!R.ok)throw new Error("Failed to fetch keys");w(n,await R.json(),!0)}catch(R){w(s,R instanceof Error?R.message:"Failed to load keys",!0)}finally{w(r,!1)}}async function f(){w(l,null);try{const R=await Re(`${st()}/api/admin/keys`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({label:i(o)})});if(!R.ok){const j=await R.json().catch(()=>({}));w(l,j.error||"Failed to create key",!0);return}const D=await R.json();w(c,{id:D.id,key:D.key},!0),w(o,""),w(a,!1),await d()}catch{w(l,"Network error")}}async function v(R){w(u,null);try{await Re(`${st()}/api/admin/keys/${R}`,{method:"DELETE"}),i(c)?.id===R&&w(c,null),await d()}catch{}}function m(R){return new Date(R).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}d();var S=QC(),g=p(S),b=_(p(g),2),A=p(b,!0);h(b),h(g);var k=_(g,2);{var y=R=>{var D=VC(),j=_(p(D),2),B=p(j,!0);h(j);var X=_(j,2);h(D),q(()=>z(B,i(c).key)),K("click",X,()=>{w(c,null)}),x(R,D)};W(k,R=>{i(c)&&R(y)})}var C=_(k,2);{var I=R=>{var D=HC(),j=p(D);xe(j);var B=_(j,2),X=_(B,2);{var J=Y=>{var U=UC(),Q=p(U,!0);h(U),q(()=>z(Q,i(l))),x(Y,U)};W(X,Y=>{i(l)&&Y(J)})}h(D),q(Y=>B.disabled=Y,[()=>!i(o).trim()]),Ue("submit",D,Y=>{Y.preventDefault(),f()}),Te(j,()=>i(o),Y=>w(o,Y)),x(R,D)};W(C,R=>{i(a)&&R(I)})}var P=_(C,2);{var L=R=>{var D=KC();x(R,D)},T=R=>{var D=WC(),j=p(D,!0);h(D),q(()=>z(j,i(s))),x(R,D)},M=R=>{var D=YC();x(R,D)},N=R=>{var D=ZC();me(D,21,()=>i(n),j=>j.id,(j,B)=>{var X=JC(),J=p(X),Y=p(J),U=p(Y,!0);h(Y);var Q=_(Y,2),G=p(Q);h(Q),h(J);var $=_(J,2),O=p($);{var H=Z=>{var oe=XC(),de=fe(oe),ne=_(de,2);K("click",de,()=>v(i(B).id)),K("click",ne,()=>{w(u,null)}),x(Z,oe)},ee=Z=>{var oe=GC();K("click",oe,()=>{w(u,i(B).id,!0)}),x(Z,oe)};W(O,Z=>{i(u)===i(B).id?Z(H):Z(ee,-1)})}h($),h(X),q(Z=>{z(U,i(B).label),z(G,`${i(B).id??""} · ${Z??""}`)},[()=>m(i(B).createdAt)]),x(j,X)}),h(D),x(R,D)};W(P,R=>{i(r)?R(L):i(s)?R(T,1):i(n).length===0?R(M,2):R(N,-1)})}h(S),q(()=>z(A,i(a)?"Cancel":"New key")),K("click",b,()=>{w(a,!i(a))}),x(e,S),ie()}pe(["click"]);const Yp={manifest:{id:"sh3-admin",label:"Admin",version:_n,views:[{id:"sh3-admin:users",label:"Users"},{id:"sh3-admin:auth",label:"Auth Settings"},{id:"sh3-admin:system",label:"System"},{id:"sh3-admin:keys",label:"API Keys"}]},activate(e){const t={mount(a,o){const l=We(LC,{target:a});return{unmount(){tt(l)}}}},n={mount(a,o){const l=We(jC,{target:a});return{unmount(){tt(l)}}}},r={mount(a,o){const l=We(FC,{target:a});return{unmount(){tt(l)}}}},s={mount(a,o){const l=We($C,{target:a});return{unmount(){tt(l)}}}};e.registerView("sh3-admin:users",t),e.registerView("sh3-admin:auth",n),e.registerView("sh3-admin:system",r),e.registerView("sh3-admin:keys",s)}},Xp={manifest:{id:"sh3-admin-app",label:"Admin",version:_n,requiredShards:["sh3-admin"],layoutVersion:1,admin:!0},initialLayout:{type:"tabs",activeTab:0,tabs:[{slotId:"admin.users",viewId:"sh3-admin:users",label:"Users"},{slotId:"admin.auth",viewId:"sh3-admin:auth",label:"Auth"},{slotId:"admin.system",viewId:"sh3-admin:system",label:"System"},{slotId:"admin.keys",viewId:"sh3-admin:keys",label:"Keys"}]}},ud="sh3:migrations:shell-rename:done",dd="__shell__:",eT="__sh3core__:",fd="sh3:user:__shell__:theme",vd="sh3:user:__sh3core__:theme";function tT(e,t){if(t.getItem(ud))return;const n=t.getItem(fd);n!==null&&t.getItem(vd)===null&&(t.setItem(vd,n),t.removeItem(fd));for(const r of e.keys()){if(!r.startsWith(dd))continue;const s=eT+r.slice(dd.length),a=e.read(r);e.write(s,a),e.delete(r)}t.setItem(ud,"1")}const hd="sh3:migrations:mode-id-rename:done",nT="sh3.shell.lastMode.",pd={dev:"bash",user:"sh3"};function rT(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 sT(e){if(!e.getItem(hd)){for(const t of rT(e)){if(!t.startsWith(nT))continue;const n=e.getItem(t);n&&Object.prototype.hasOwnProperty.call(pd,n)&&e.setItem(t,pd[n])}e.setItem(hd,"1")}}let md=!1,bd=null;function aT(){md||(md=!0,bd=e=>{const t=e.state?.sh3;t==="anchor"?(ww(),history.forward()):t==="forward-bumper"&&(kw(),history.back())},window.addEventListener("popstate",bd),history.replaceState({sh3:"anchor"},""),history.pushState({sh3:"main"},""),history.pushState({sh3:"forward-bumper"},""),history.back())}function gd(e){Gi(e)}function iT(){const e=gn.workspace;return{keys:()=>e.list(),read:t=>e.read(t),write:(t,n)=>e.write(t,n),delete:t=>e.delete(t)}}async function oT(e){if(typeof globalThis.localStorage<"u"){tT(iT(),globalThis.localStorage),sT(globalThis.localStorage);const{migrateLegacyWorkspaceKeys:a}=await gi(async()=>{const{migrateLegacyWorkspaceKeys:o}=await import("./workspace-rekey-DRgvbNY-.js");return{migrateLegacyWorkspaceKeys:o}},[]);a(ph())}const t=new Set(e?.excludeShards),n=[kp,Up,wp,Yp,lp,hp,Kp];for(const a of n)t.has(a.manifest.id)||Gi(a);const r=[Wp,Xp];for(const a of r)qs(a);await yp();for(const[a,o]of tn)if(o.autostart){sh(a);try{await di(a,{phase:"autostart"})}catch{}}const s=z0();if(s&&Qn.has(s))try{await Vn(s)}catch(a){console.error(`[sh3] Auto-launch of "${s}" failed:`,a),j0()}yw({returnToHome:vs,launchApp:Vn}),typeof window<"u"&&typeof history<"u"&&aT()}async function lT(e){const t=[kp,Up,wp,Yp,lp,hp,Kp];for(const s of t)Gi(s);const n=[Wp,Xp];for(const s of n)qs(s);await yp();const r=new Set;for(const[s,a]of tn)if(a.autostart){sh(s);try{await di(s,{phase:"autostart"}),r.add(s)}catch{}}for(const s of e.activateShardIds)if(!r.has(s))if(tn.has(s))try{await di(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 cT=E('<div aria-hidden="true"></div>'),uT=E('<button type="button" aria-label="Expand pane"><span class="collapse-icon"> </span></button>'),dT=E('<button type="button" aria-label="Collapse pane"><span class="collapse-icon"> </span></button>'),fT=E('<!> <div class="pane-content svelte-1adl4o1"><!></div>',1),vT=E('<div role="separator"></div>'),hT=E("<div><!></div> <!>",1),pT=E("<div></div>");function mT(e,t){ae(t,!0);const n=40,r=28;let s=te(t,"compact",3,!1),a;const o=I=>t.pinned?.[I]??"fr",l=I=>t.collapsed?.[I]??!1,c=I=>t.fixed?.[I]??!1,u=I=>c(I)||c(I+1);function d(I){if(c(I))return!1;const P=I>0?!c(I-1):!1,L=I<t.count-1?!c(I+1):!1;return P||L}function f(I){return l(I)?`0 0 ${r}px`:o(I)==="px"?`0 0 ${Math.max(n,t.sizes[I])}px`:`${Math.max(1e-4,t.sizes[I])} 1 0`}let v=V(null),m=null;function S(I,P){if(s()||l(P)||l(P+1)||u(P))return;const L=a?sc(a):0;if(!da(I.pointerId,{ownerId:"sh3:splitter",axis:"xy",priority:"normal",depth:L}))return;m=I.pointerId,I.preventDefault(),document.addEventListener("pointermove",g),document.addEventListener("pointerup",A),document.addEventListener("pointercancel",k);const M=a.getBoundingClientRect(),N=t.direction==="horizontal"?M.width:M.height;let R=0,D=0;for(let j=0;j<t.sizes.length;j++)o(j)==="fr"?R+=t.sizes[j]:D+=Math.max(n,t.sizes[j]);w(v,{handleIndex:P,startClient:t.direction==="horizontal"?I.clientX:I.clientY,startSizes:t.sizes.slice(),containerPx:N,totalFr:R,frAvailPx:Math.max(1,N-D)},!0)}function g(I){if(!i(v)||I.pointerId!==m)return;const L=(t.direction==="horizontal"?I.clientX:I.clientY)-i(v).startClient,T=i(v).handleIndex,M=T+1,N=o(T),R=o(M),D=i(v).totalFr/i(v).frAvailPx;if(N==="fr"&&R==="fr"){const j=n*D,B=L*D,X=i(v).startSizes[M]-j,J=-(i(v).startSizes[T]-j),Y=Math.min(Math.max(B,J),X);t.onResize?.(T,i(v).startSizes[T]+Y),t.onResize?.(M,i(v).startSizes[M]-Y)}else if(N==="px"&&R==="fr"){const j=i(v).frAvailPx-n,B=n-i(v).startSizes[T];t.onResize?.(T,i(v).startSizes[T]+Math.min(Math.max(L,B),j))}else if(N==="fr"&&R==="px"){const j=i(v).startSizes[M]-n,B=-(i(v).frAvailPx-n);t.onResize?.(M,i(v).startSizes[M]-Math.min(Math.max(L,B),j))}else{const j=i(v).startSizes[M]-n,B=-(i(v).startSizes[T]-n),X=Math.min(Math.max(L,B),j);t.onResize?.(T,i(v).startSizes[T]+X),t.onResize?.(M,i(v).startSizes[M]-X)}}function b(){m!==null&&(_r(m,"sh3:splitter"),m=null),w(v,null),document.removeEventListener("pointermove",g),document.removeEventListener("pointerup",A),document.removeEventListener("pointercancel",k)}function A(I){i(v)&&I.pointerId===m&&b()}function k(I){if(i(v)){if(I.pointerId!==m){zn("splitter:cancel-other-id",I,{activeDragPointerId:m});return}zn("splitter:cancel-our-id",I,{activeDragPointerId:m}),b()}}Ie(()=>()=>{i(v)&&b()});var y=pT();let C;me(y,21,()=>Array(t.count),ut,(I,P,L)=>{var T=hT(),M=fe(T);let N;var R=p(M);{var D=Y=>{var U=Me(),Q=fe(U);{var G=O=>{var H=cT();let ee;q(()=>ee=he(H,1,"collapse-header inert svelte-1adl4o1",null,ee,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"})),x(O,H)},$=O=>{var H=uT();let ee;var Z=p(H),oe=p(Z,!0);h(Z),h(H),q(()=>{ee=he(H,1,"collapse-header svelte-1adl4o1",null,ee,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),z(oe,t.direction==="horizontal"?"▸":"▾")}),K("click",H,()=>t.onCollapseToggle?.(L,!1)),x(O,H)};W(Q,O=>{s()?O(G):O($,-1)})}x(Y,U)},j=F(()=>l(L)),B=Y=>{var U=fT(),Q=fe(U);{var G=ee=>{var Z=dT();let oe;re(Z,"data-testid",`collapse-toggle-${L}`);var de=p(Z),ne=p(de,!0);h(de),h(Z),q(()=>{oe=he(Z,1,"collapse-header expanded svelte-1adl4o1",null,oe,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),z(ne,t.direction==="horizontal"?"◂":"▴")}),K("click",Z,()=>t.onCollapseToggle?.(L,!0)),x(ee,Z)},$=F(()=>!s()&&t.onCollapseToggle&&d(L));W(Q,ee=>{i($)&&ee(G)})}var O=_(Q,2),H=p(O);en(H,()=>t.pane,()=>L),h(O),x(Y,U)};W(R,Y=>{i(j)?Y(D):Y(B,-1)})}h(M);var X=_(M,2);{var J=Y=>{var U=vT();let Q;re(U,"data-testid",`splitter-handle-${L}`),q(G=>{Q=he(U,1,"splitter-handle svelte-1adl4o1",null,Q,G),re(U,"aria-orientation",t.direction==="horizontal"?"vertical":"horizontal")},[()=>({dragging:i(v)?.handleIndex===L,disabled:l(L)||l(L+1),frozen:u(L)})]),K("pointerdown",U,G=>S(G,L)),K("dblclick",U,()=>{u(L)||!d(L)&&!l(L)||t.onCollapseToggle?.(L,!l(L))}),x(Y,U)};W(X,Y=>{L<t.count-1&&Y(J)})}q((Y,U)=>{N=he(M,1,"splitter-pane svelte-1adl4o1",null,N,Y),Ye(M,`flex: ${U??""};`)},[()=>({collapsed:l(L)}),()=>f(L)]),x(I,T)}),h(y),Ne(y,I=>a=I,()=>a),q(()=>C=he(y,1,"splitter svelte-1adl4o1",null,C,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical",compact:s()})),x(e,y),ie()}pe(["click","pointerdown","dblclick"]);function bT(e,t,n){if(!n)return null;const r=n.getBoundingClientRect(),s=t.filter(l=>!!l);if(s.length===0)return{left:4,top:2,height:r.height-4};const a=Math.max(0,Math.min(e,s.length));let o;return a===s.length?o=s[s.length-1].getBoundingClientRect().right:o=s[a].getBoundingClientRect().left,{left:o-r.left-1,top:2,height:r.height-4}}var gT=E('<span class="tab-dirty svelte-1kxcyhf" title="Unsaved changes"></span>'),yT=E('<span class="tab-icon svelte-1kxcyhf"> </span>'),_T=E('<span class="tab-close svelte-1kxcyhf" role="button" tabindex="-1" title="Close">✕</span>'),wT=E('<button type="button" role="tab"><!> <!> <span class="tab-label svelte-1kxcyhf"> </span> <!></button>'),kT=E('<div class="drop-indicator svelte-1kxcyhf"></div>'),xT=E("<div><!></div>"),ST=E('<div class="tabbed-panel svelte-1kxcyhf"><div class="tab-strip svelte-1kxcyhf" role="tablist" tabindex="-1"><!> <!></div> <div class="tab-body svelte-1kxcyhf" role="tabpanel"></div></div>');function IT(e,t){ae(t,!0);function n(b){t.clickGuard?.()||t.onActiveChange?.(b)}function r(b,A){A.stopPropagation(),t.onClose?.(b)}let s=V(void 0);const a=ve([]);let o=V(null);function l(b,A){if(!t.dragController)return;const k=a[b];k&&t.dragController.onPointerDown(b,A,k)}function c(b){if(!t.dragController||!t.dragController.isDragging||!i(s))return;const A=i(s).getBoundingClientRect(),k=a.filter(y=>!!y).map(y=>y.getBoundingClientRect());w(o,t.dragController.onStripHover(A,b.clientX,b.clientY,k),!0)}function u(){t.dragController&&(w(o,null),t.dragController.onStripLeave())}var d=ST(),f=p(d),v=p(f);me(v,17,()=>t.labels,ut,(b,A,k)=>{var y=wT();let C;var I=p(y);{var P=j=>{var B=gT();x(j,B)};W(I,j=>{t.dirty?.[k]&&j(P)})}var L=_(I,2);{var T=j=>{var B=yT(),X=p(B,!0);h(B),q(()=>z(X,t.icons[k])),x(j,B)};W(L,j=>{t.icons?.[k]&&j(T)})}var M=_(L,2),N=p(M,!0);h(M);var R=_(M,2);{var D=j=>{var B=_T();q(()=>re(B,"data-testid",t.tabIds?.[k]?`tab-close-${t.tabIds[k]}`:void 0)),K("click",B,X=>r(k,X)),K("keydown",B,X=>{(X.key==="Enter"||X.key===" ")&&r(k,X)}),x(j,B)};W(R,j=>{t.closable?.[k]&&j(D)})}h(y),Ne(y,(j,B)=>a[B]=j,j=>a?.[j],()=>[k]),q(()=>{C=he(y,1,"tab svelte-1kxcyhf",null,C,{active:t.activeTab===k}),re(y,"aria-selected",t.activeTab===k),z(N,i(A))}),K("click",y,()=>n(k)),K("pointerdown",y,j=>l(k,j)),Ue("auxclick",y,j=>{j.button===1&&t.closable?.[k]&&r(k,j)}),x(b,y)});var m=_(v,2);{var S=b=>{const A=F(()=>bT(i(o),a,i(s)));var k=Me(),y=fe(k);{var C=I=>{var P=kT();q(()=>Ye(P,`left: ${i(A).left??""}px; height: ${i(A).height??""}px; top: ${i(A).top??""}px;`)),x(I,P)};W(y,I=>{i(A)&&I(C)})}x(b,k)};W(m,b=>{i(o)!==null&&t.dragController?.isDragging&&b(S)})}h(f),Ne(f,b=>w(s,b),()=>i(s));var g=_(f,2);me(g,21,()=>t.labels,ut,(b,A,k)=>{var y=xT();let C;var I=p(y);en(I,()=>t.body,()=>k),h(y),q(()=>C=he(y,1,"tab-body-pane svelte-1kxcyhf",null,C,{active:t.activeTab===k})),x(b,y)}),h(g),h(d),K("pointermove",f,c),Ue("pointerleave",f,u),x(e,d),ie()}pe(["pointermove","click","pointerdown","keydown"]);var ET=E('no factory for <code class="svelte-1czj0s8"> </code>',1),AT=E("<em>empty slot</em>"),CT=E('<div class="slot-placeholder svelte-1czj0s8"><div class="slot-id svelte-1czj0s8"> </div> <div class="slot-meta svelte-1czj0s8"><!></div> <div class="slot-dims svelte-1czj0s8"> </div></div>'),TT=E('<div class="slot svelte-1czj0s8"><!></div>');function pi(e,t){ae(t,!0);let n=te(t,"label",3,""),r=V(void 0),s=V(0),a=V(0);const o=F(()=>t.node.viewId?!!Sv(t.node.viewId):!1);Ie(()=>{if(!i(r))return;const d=t.node.slotId,f=i(r),v=uc(d,t.node.viewId,n()||t.node.viewId||d,t.meta);f.appendChild(v);const m=new ResizeObserver(S=>{for(const g of S){const b=g.contentRect;w(s,Math.round(b.width),!0),w(a,Math.round(b.height),!0)}});return m.observe(f),()=>{m.disconnect(),dc(d,f)}});var l=TT(),c=p(l);{var u=d=>{var f=CT(),v=p(f),m=p(v,!0);h(v);var S=_(v,2),g=p(S);{var b=C=>{var I=ET(),P=_(fe(I)),L=p(P,!0);h(P),q(()=>z(L,t.node.viewId)),x(C,I)},A=C=>{var I=AT();x(C,I)};W(g,C=>{t.node.viewId?C(b):C(A,-1)})}h(S);var k=_(S,2),y=p(k);h(k),h(f),q(()=>{z(m,t.node.slotId),z(y,`${i(s)??""} × ${i(a)??""}`)}),x(d,f)};W(c,d=>{i(o)||d(u)})}h(l),Ne(l,d=>w(r,d),()=>i(r)),q(()=>{re(l,"data-slot-id",t.node.slotId),re(l,"data-view-id",t.node.viewId??"")}),x(e,l),ie()}const Ce=ve({phase:"idle",source:null,pointerX:0,pointerY:0,target:null});let Gp=0;function RT(){return performance.now()<Gp}const yd=4;let Jp=0,Zp=0,qn=null;function LT(e,t,n,r,s){if(Ce.phase!=="idle")return;const a=sc(s);if(!da(r.pointerId,{ownerId:"sh3:tabdrag",axis:"xy",priority:"normal",depth:a}))return;qn=r.pointerId;const l=s.getBoundingClientRect();Ce.phase="pending",Ce.source={slotId:e,entry:t,sourceRoot:n,startRect:l,offsetX:r.clientX-l.left,offsetY:r.clientY-l.top},Ce.pointerX=r.clientX,Ce.pointerY=r.clientY,Ce.target=null,Jp=r.clientX,Zp=r.clientY,MT()}function MT(){window.addEventListener("pointermove",Qp,!0),window.addEventListener("pointerup",$p,!0),window.addEventListener("pointercancel",em,!0),document.body.style.userSelect="none",document.body.dataset.dragging=""}function PT(){window.removeEventListener("pointermove",Qp,!0),window.removeEventListener("pointerup",$p,!0),window.removeEventListener("pointercancel",em,!0),document.body.style.userSelect="",delete document.body.dataset.dragging}function Qp(e){if(e.pointerId===qn&&(Ce.pointerX=e.clientX,Ce.pointerY=e.clientY,Ce.phase==="pending")){const t=e.clientX-Jp,n=e.clientY-Zp;t*t+n*n>=yd*yd&&(Ce.phase="dragging")}}function $p(e){if(e.pointerId!==qn)return;Ce.phase==="dragging"&&(DT(),Gp=performance.now()+50),tm()}function em(e){if(e.pointerId!==qn){zn("tabdrag:cancel-other-id",e,{activeDragPointerId:qn});return}zn("tabdrag:cancel-our-id",e,{activeDragPointerId:qn}),tm()}function _d(e){const t=pt.tree;if(e.kind==="docked")return t.docked;const n=t.floats.find(r=>r.id===e.floatId);return n?n.content:null}function wd(e){if(e.kind!=="float")return;const t=pt.tree,n=t.floats.findIndex(r=>r.id===e.floatId);n<0||kv(t.floats[n].content)&&t.floats.splice(n,1)}function DT(){const{source:e,target:t}=Ce;if(!e||!t)return;const n=_d(e.sourceRoot),r=_d(t.root);if(!n||!r)return;if(t.kind==="strip"){const a=t.tabsNode.tabs.findIndex(o=>o.slotId===e.slotId);if(a>=0){Zw(t.tabsNode,a,t.insertIndex),Nr(n),r!==n&&Nr(r),wd(e.sourceRoot);return}}const s=Di(n,e.slotId);s&&(t.kind==="strip"?Jw(t.tabsNode,s,t.insertIndex):$o(r,t.path,s,t.side),Nr(n),r!==n&&Nr(r),wd(e.sourceRoot))}function tm(){qn!==null&&(_r(qn,"sh3:tabdrag"),qn=null),Ce.phase="idle",Ce.source=null,Ce.target=null,PT()}function Sl(e){Ce.phase==="dragging"&&(Ce.target=e)}function Hr(e){Ce.phase==="dragging"&&Ce.target&&(e&&!e(Ce.target)||(Ce.target=null))}var zT=E("<div></div>"),jT=E('<div class="quad-target quad-left svelte-re71zu" data-testid="drop-zone-left"></div> <div class="quad-target quad-right svelte-re71zu" data-testid="drop-zone-right"></div> <div class="quad-target quad-top svelte-re71zu" data-testid="drop-zone-top"></div> <div class="quad-target quad-bottom svelte-re71zu" data-testid="drop-zone-bottom"></div>',1),OT=E("<!> <!>",1),NT=E("<div><!></div>");function Il(e,t){ae(t,!0);let n=V(void 0),r=V(null);const s=F(()=>Ce.phase==="dragging"),a=F(()=>{let m;return t.rootRef.kind==="docked"?m=pt.root:m=pt.tree.floats.find(g=>g.id===t.rootRef.floatId)?.content??null,m?Cv(m,t.path):!1});function o(m,S,g){const b=g.left+g.width/2,A=g.top+g.height/2,k=m-b,y=S-A,C=k/g.width,I=y/g.height;return Math.abs(C)>Math.abs(I)?C<0?"left":"right":I<0?"top":"bottom"}function l(m){if(!i(n))return;if(i(a)){i(r)!==null&&(w(r,null),Hr(b=>b.kind==="split"&&b.path.join("/")===t.path.join("/")));return}const S=i(n).getBoundingClientRect();if(m.clientX<S.left||m.clientX>S.right||m.clientY<S.top||m.clientY>S.bottom){i(r)!==null&&(w(r,null),Hr(b=>b.kind==="split"&&b.path.join("/")===t.path.join("/")));return}const g=o(m.clientX,m.clientY,S);if(g!==i(r)){w(r,g,!0);const b={kind:"split",root:t.rootRef,path:[...t.path],side:g};Sl(b)}}function c(){i(r)!==null&&(w(r,null),Hr(m=>m.kind==="split"&&m.path.join("/")===t.path.join("/")))}var u=NT();let d;var f=p(u);{var v=m=>{var S=OT(),g=fe(S);{var b=y=>{var C=zT();q(()=>he(C,1,`quad-highlight quad-${i(r)??""}`,"svelte-re71zu")),x(y,C)};W(g,y=>{i(r)&&y(b)})}var A=_(g,2);{var k=y=>{var C=jT();_t(6),x(y,C)};W(A,y=>{i(s)&&y(k)})}x(m,S)};W(f,m=>{i(a)||m(v)})}h(u),Ne(u,m=>w(n,m),()=>i(n)),q(()=>d=he(u,1,"slot-drop-zone svelte-re71zu",null,d,{active:i(s),locked:i(a)})),K("pointermove",u,l),Ue("pointerleave",u,c),x(e,u),ie()}pe(["pointermove"]);var qT=E('<div class="sh3-carousel-slide svelte-1qo3ctb" data-sh3-slide=""><!> <!></div>'),BT=E('<span data-sh3-pager-dot=""></span>'),FT=E('<div class="sh3-carousel-pager svelte-1qo3ctb" data-sh3-pager=""></div>'),VT=E('<div class="sh3-carousel svelte-1qo3ctb" data-sh3-region="carousel"><div data-sh3-carousel-track=""></div> <!></div>');function UT(e,t){ae(t,!0);let n=te(t,"node",7),r=te(t,"rootRef",19,()=>({kind:"docked"})),s=te(t,"path",19,()=>[]),a=V(null),o=V(0);Ie(()=>{if(!i(a))return;const ne=i(a).getBoundingClientRect();if(ne.width>0)w(o,ne.width,!0);else if(i(a).parentElement){const be=i(a).parentElement.getBoundingClientRect();be.width>0&&w(o,be.width,!0)}const le=new ResizeObserver(be=>{for(const _e of be)w(o,_e.contentRect.width,!0)});return le.observe(i(a)),()=>le.disconnect()});const l=F(()=>n().tabs.length),c=F(()=>i(l)>1);let u=V(0),d=V(!1),f=V(!1),v=null,m=!1,S=0,g=null,b=null;const A=1.2,k=6,y=.4,C=500,I=.3,P=100;function L(ne,le){zn(`carousel:${ne}`,le,{claimed:i(f),dragging:i(d),downId:g?.id})}const T=250;function M(ne){let le=ne;for(;le&&le!==i(a);){const be=getComputedStyle(le).overflowX;if((be==="auto"||be==="scroll")&&le.scrollWidth>le.clientWidth)return!0;le=le.parentElement}return!1}function N(ne){if(!i(a)||i(o)===0)return!1;const le=i(a).getBoundingClientRect(),be=ne-le.left;return be<Qa||be>i(o)-Qa}function R(ne){const le=ne;if(!le||typeof le.tagName!="string")return!1;const be=le.tagName;if(be==="INPUT"||be==="TEXTAREA"||be==="SELECT"||le.isContentEditable===!0)return!0;const _e=le.closest?.('[contenteditable=""], [contenteditable="true"]');return _e!=null}function D(ne,le){if(le===0)return 0;const be=le*I;return Math.sign(ne)*be*(1-Math.exp(-Math.abs(ne)/be))}function j(ne){if(!t.wrap){const le=n().activeTab===0&&ne>0,be=n().activeTab===i(l)-1&&ne<0;if(le||be)return D(ne,i(o))}return ne}function B(ne){if(i(l)<2||i(o)===0||ne.isPrimary===!1)return;const le=N(ne.clientX);if(!le&&(R(ne.target)||M(ne.target)))return;const be=i(a)?sc(i(a)):0;da(ne.pointerId,{ownerId:"sh3:carousel",axis:"x",priority:"normal",depth:be})&&(v=ne.pointerId,m=le,S=0,g={id:ne.pointerId,x:ne.clientX,y:ne.clientY,t:performance.now()},b={...g},w(d,!1),w(f,!1),w(u,0),document.addEventListener("pointermove",X),document.addEventListener("pointerup",J),document.addEventListener("pointercancel",Y))}function X(ne){if(!g||ne.pointerId!==g.id)return;if(!Cw(ne.pointerId,"sh3:carousel")){L("claim-stolen",ne),U();return}const le=ne.clientX-g.x,be=ne.clientY-g.y;if(!i(f)){const _e=performance.now()-g.t,He=Math.abs(le)>Math.abs(be)*A&&Math.abs(le)>k;if(Math.abs(be)>Math.abs(le)*A&&Math.abs(be)>k){U();return}if((Math.abs(le)>k||Math.abs(be)>k)&&_e>T){U();return}if(!He)return;if(w(f,!0),w(d,!0),m&&i(a))try{i(a).setPointerCapture(ne.pointerId),S=performance.now()+P}catch{}typeof window<"u"&&window.getSelection()?.removeAllRanges()}typeof ne.preventDefault=="function"&&ne.preventDefault(),w(u,j(le),!0),b={id:ne.pointerId,x:ne.clientX,y:ne.clientY,t:performance.now()}}function J(ne){if(!g)return;if(ne.pointerId!==g.id){L("pointerup-other-id",ne);return}const le=ne.clientX-g.x;let be=0;b&&b.t!==g.t&&(be=(ne.clientX-b.x)/Math.max(1,performance.now()-b.t)*1e3),Q(le,be),U()}function Y(ne){if(g){if(ne.pointerId!==g.id){L("cancel-other-id",ne);return}if(performance.now()<S){L("cancel-ignored-transfer",ne),S=0;return}L("cancel-our-id",ne),U()}}function U(){if(m&&i(a)&&v!==null)try{i(a).hasPointerCapture?.(v)&&i(a).releasePointerCapture(v)}catch{}v!==null&&(_r(v,"sh3:carousel"),v=null),document.removeEventListener("pointermove",X),document.removeEventListener("pointerup",J),document.removeEventListener("pointercancel",Y),g=null,b=null,w(d,!1),w(f,!1),w(u,0),m=!1,S=0}function Q(ne,le){if(!i(f)||i(o)===0)return;const be=Math.abs(ne)>i(o)*y,_e=Math.abs(le)>C;if(!(be||_e))return;const He=ne<0?1:-1;let je=n().activeTab+He;if(je<0)if(t.wrap)je=i(l)-1;else return;else if(je>=i(l))if(t.wrap)je=0;else return;n().activeTab=je}const G=F(()=>i(o)===0?"translateX(0px)":`translateX(${-n().activeTab*i(o)+i(u)}px)`),$=F(()=>i(d)?"none":"");function O(ne){return ne.slotId}var H=VT(),ee=p(H);let Z;me(ee,23,()=>n().tabs,ne=>O(ne),(ne,le,be)=>{var _e=qT(),He=p(_e);{let ot=F(()=>({type:"slot",slotId:i(le).slotId,viewId:i(le).viewId}));pi(He,{get node(){return i(ot)},get label(){return i(le).label},get meta(){return i(le).meta}})}var je=_(He,2);Il(je,{get rootRef(){return r()},get path(){return s()}}),h(_e),q(()=>{re(_e,"data-sh3-slide-index",i(be)),Ye(_e,`width: ${i(o)??""}px;`)}),x(ne,_e)}),h(ee);var oe=_(ee,2);{var de=ne=>{var le=FT();me(le,23,()=>n().tabs,(be,_e)=>`dot-${_e}`,(be,_e,He)=>{var je=BT();let ot;q(()=>{ot=he(je,1,"sh3-carousel-dot svelte-1qo3ctb",null,ot,{"sh3-carousel-dot--active":i(He)===n().activeTab}),re(je,"aria-current",i(He)===n().activeTab?"true":void 0)}),x(be,je)}),h(le),x(ne,le)};W(oe,ne=>{i(c)&&ne(de)})}h(H),Ne(H,ne=>w(a,ne),()=>i(a)),q(()=>{Z=he(ee,1,"sh3-carousel-track svelte-1qo3ctb",null,Z,{"sh3-carousel-track--dragging":i(d)}),Ye(ee,`transform: ${i(G)??""}; width: ${i(l)*100}%; ${i($)?`transition: ${i($)};`:""}`)}),K("pointerdown",ee,B),x(e,H),ie()}pe(["pointerdown"]);function nm(e){return e.join(".")}function HT(e){const t=new Map;function n(r,s,a){if(r.type==="tabs"){if(s){const o=r.tabs[r.activeTab];t.set(nm(a),{wrap:r.wrap??!1,activeLabel:o?.label??""})}return}if(r.type==="split"){const o=s&&r.direction==="vertical";for(let l=0;l<r.children.length;l++)n(r.children[l],o,[...a,l]);return}}return n(e,!0,[]),t}var KT=E('<div class="tab-slot-wrapper svelte-1gw9g38"><!> <!></div>'),WT=E('<div class="empty-tabs-custom svelte-1gw9g38"></div>'),YT=E('<div class="empty-tabs-default svelte-1gw9g38"><div class="empty-tabs-drop svelte-1gw9g38"></div></div>'),XT=E('<div class="empty-tabs-placeholder svelte-1gw9g38"><!></div>'),GT=E('<div class="leaf-slot-wrapper svelte-1gw9g38"><!> <!></div>');function rs(e,t){ae(t,!0);let n=te(t,"path",19,()=>[]),r=te(t,"rootRef",19,()=>({kind:"docked"}));const s=F(()=>{if(t.rootOverride!==void 0)return $r(t.rootOverride,n());let k;return r().kind==="docked"?k=pt.root:k=pt.tree.floats.find(C=>C.id===r().floatId)?.content??null,k?$r(k,n()):null});function a(k){return{get isDragging(){return Ce.phase==="dragging"},onPointerDown(y,C,I){const P=k.tabs[y];P&<(P.slotId,P,r(),C,I)},onStripHover(y,C,I,P){if(I<y.top||I>y.bottom)return Hr(M=>M.kind==="strip"&&M.tabsNode===k),null;let L=P.length;for(let M=0;M<P.length;M++){const N=P[M],R=N.left+N.width/2;if(C<R){L=M;break}}const T=Ce.source;if(T){const M=k.tabs.findIndex(N=>N.slotId===T.slotId);M>=0&&M<L&&(L-=1)}return Sl({kind:"strip",root:r(),tabsNode:k,insertIndex:L}),L},onStripLeave(){Hr(y=>y.kind==="strip"&&y.tabsNode===k)}}}function o(k){return k.type==="split"?k:null}function l(k){return k.type==="tabs"?k:null}function c(k){return k.type==="slot"?k:null}function u(k){return k.map(y=>y1(y.slotId)||void 0)}function d(k){return k.map(y=>g1(y.slotId)||void 0)}function f(k,y){const C=k[y];C&&Ic(C.slotId)}function v(k,y){y(k)}function m(k,y){Ce.phase==="dragging"&&Sl({kind:"strip",root:r(),tabsNode:y,insertIndex:0})}function S(){Hr(k=>k.kind==="strip"&&k.insertIndex===0)}var g=Me(),b=fe(g);{var A=k=>{var y=Me(),C=fe(y);{var I=T=>{const M=(R,D=jt)=>{{let j=F(()=>[...n(),D()]);rs(R,{get rootRef(){return r()},get path(){return i(j)},get rootOverride(){return t.rootOverride},get carousels(){return t.carousels}})}},N=F(()=>o(i(s)));{let R=F(()=>un.current.class==="compact");mT(T,{get direction(){return i(N).direction},get sizes(){return i(N).sizes},get pinned(){return i(N).pinned},get collapsed(){return i(N).collapsed},get fixed(){return i(N).fixed},get count(){return i(N).children.length},get pane(){return M},get compact(){return i(R)},onResize:(D,j)=>i(N).sizes[D]=j,onCollapseToggle:(D,j)=>{i(N).collapsed||(i(N).collapsed=i(N).children.map(()=>!1)),i(N).collapsed[D]=j}})}},P=T=>{const M=F(()=>l(i(s))),N=F(()=>t.carousels?.get(nm(n())));var R=Me(),D=fe(R);{var j=J=>{UT(J,{get node(){return i(M)},get wrap(){return i(N).wrap},get rootRef(){return r()},get path(){return n()}})},B=J=>{const Y=(Q,G=jt)=>{const $=F(()=>i(M)?.tabs[G()]);var O=Me(),H=fe(O);{var ee=Z=>{var oe=KT(),de=p(oe);{let le=F(()=>({type:"slot",slotId:i($).slotId,viewId:i($).viewId}));pi(de,{get node(){return i(le)},get label(){return i($).label},get meta(){return i($).meta}})}var ne=_(de,2);Il(ne,{get rootRef(){return r()},get path(){return n()}}),h(oe),x(Z,oe)};W(H,Z=>{i($)&&Z(ee)})}x(Q,O)},U=F(()=>a(i(M)));{let Q=F(()=>i(M).tabs.map(ee=>ee.label)),G=F(()=>i(M).tabs.map(ee=>ee.icon)),$=F(()=>u(i(M).tabs)),O=F(()=>d(i(M).tabs)),H=F(()=>i(M).tabs.map(ee=>ee.slotId));IT(J,{get labels(){return i(Q)},get icons(){return i(G)},get activeTab(){return i(M).activeTab},onActiveChange:ee=>i(M).activeTab=ee,get body(){return Y},get dragController(){return i(U)},get clickGuard(){return RT},get closable(){return i($)},get dirty(){return i(O)},onClose:ee=>f(i(M).tabs,ee),get tabIds(){return i(H)}})}},X=J=>{var Y=XT(),U=p(Y);{var Q=$=>{var O=WT();rv(O,(H,ee)=>v?.(H,ee),()=>i(M).emptyRenderer),x($,O)},G=$=>{var O=YT(),H=p(O);h(O),K("pointermove",H,ee=>m(ee,i(M))),Ue("pointerleave",H,S),x($,O)};W(U,$=>{i(M).emptyRenderer?$(Q):$(G,-1)})}h(Y),x(J,Y)};W(D,J=>{i(N)&&i(M)&&i(M).tabs.length>0?J(j):i(M)&&i(M).tabs.length>0?J(B,1):i(M)?.persistent&&J(X,2)})}x(T,R)},L=T=>{const M=F(()=>c(i(s)));var N=GT(),R=p(N);pi(R,{get node(){return i(M)},get meta(){return i(M).meta}});var D=_(R,2);Il(D,{get rootRef(){return r()},get path(){return n()}}),h(N),x(T,N)};W(C,T=>{i(s).type==="split"?T(I):i(s).type==="tabs"?T(P,1):T(L,-1)})}x(k,y)};W(b,k=>{i(s)&&k(A)})}x(e,g),ie()}pe(["pointermove"]);var JT=E('<span class="drag-preview-icon svelte-133fiip"> </span>'),ZT=E('<div class="drag-preview svelte-133fiip"><!> <span class="drag-preview-label svelte-133fiip"> </span></div>');function QT(e,t){ae(t,!0);const n=F(()=>Ce.phase==="dragging"&&!!Ce.source),r=F(()=>Ce.source?Ce.pointerX-Ce.source.offsetX:0),s=F(()=>Ce.source?Ce.pointerY-Ce.source.offsetY:0),a=F(()=>Ce.source?.startRect.width??0),o=F(()=>Ce.source?.startRect.height??0),l=F(()=>Ce.source?.entry.label??""),c=F(()=>Ce.source?.entry.icon);var u=Me(),d=fe(u);{var f=v=>{var m=ZT(),S=p(m);{var g=k=>{var y=JT(),C=p(y,!0);h(y),q(()=>z(C,i(c))),x(k,y)};W(S,k=>{i(c)&&k(g)})}var b=_(S,2),A=p(b,!0);h(b),h(m),q(()=>{Ye(m,`left: ${i(r)??""}px; top: ${i(s)??""}px; width: ${i(a)??""}px; height: ${i(o)??""}px;`),z(A,i(l))}),x(v,m)};W(d,v=>{i(n)&&v(f)})}x(e,u),ie()}const Kr=new Map;let mi=!1;function rm(e){if(Kr.size===0||bv(e.pointerId))return;const t=e.target;if(!t)return;const n=Array.from(Kr.keys());for(const r of n){const s=Kr.get(r);s&&(s.contains(t)||De.close(r))}}function $T(){mi||typeof document>"u"||(document.addEventListener("pointerdown",rm,!0),mi=!0)}function eR(){mi&&(Kr.size>0||(document.removeEventListener("pointerdown",rm,!0),mi=!1))}function tR(e,t){Kr.set(e,t),$T()}function nR(e){Kr.delete(e),eR()}function rR(e){const t=new Set;return sm(e,t),[...t]}function sm(e,t){switch(e.type){case"slot":{if(e.viewId!==null){const n=Eu(e.viewId);n&&t.add(n)}return}case"tabs":{for(const n of e.tabs)if(n.viewId!==null){const r=Eu(n.viewId);r&&t.add(r)}return}case"split":{for(const n of e.children)sm(n,t);return}}}var sR=E('<button class="sh3-float-popout svelte-1p734al" aria-label="Open in own window" title="Open in own window">⧉</button>'),aR=E('<header class="sh3-float-header svelte-1p734al" data-sh3-scope="element:float-header"><span class="sh3-float-title svelte-1p734al"> </span> <span class="sh3-float-header-actions svelte-1p734al"><!> <button class="sh3-float-maximize svelte-1p734al"> </button> <button class="sh3-float-close svelte-1p734al" aria-label="Close float">×</button></span></header>'),iR=E('<div class="sh3-float-frame svelte-1p734al" data-sh3-overlay-host="float" role="dialog" tabindex="-1"><!> <div class="sh3-float-body svelte-1p734al"><!></div> <div class="sh3-float-resize-grip svelte-1p734al" role="presentation" aria-hidden="true"></div></div>');function oR(e,t){ae(t,!0);const n=typeof globalThis.__TAURI_INTERNALS__<"u",r=Fi("__layouts__");function s(G){G.preventDefault(),r.set({type:"float-header",ref:{floatId:a().id}}),dt.actions.openContextMenu({x:G.clientX,y:G.clientY,scope:{element:"float-header"}})}let a=te(t,"entry",15),o=V(!1),l={x:0,y:0},c=null,u=V(!1),d={pointer:{x:0,y:0},size:{w:0,h:0},min:{w:0,h:0}},f=null,v=V(void 0);const m=F(()=>De.isMaximized(a().id));Ie(()=>{if(a().dismissable&&i(v))return tR(a().id,i(v)),()=>nR(a().id)}),Ie(()=>{if(!i(v))return;const G=H1(a().id);if(G)return G.appendChild(i(v)),()=>{i(v)?.parentNode===G&&i(v).remove()}}),Ie(()=>()=>{i(o)&&b(),i(u)&&P()});function S(G){G.button===0&&(G.target.closest(".sh3-float-close")||G.target.closest(".sh3-float-maximize")||G.target.closest(".sh3-float-popout")||i(o)||(w(o,!0),c=G.pointerId,l={x:G.clientX-a().position.x,y:G.clientY-a().position.y},De.focus(a().id),document.addEventListener("pointermove",g),document.addEventListener("pointerup",A),document.addEventListener("pointercancel",k)))}function g(G){!i(o)||G.pointerId!==c||(De.unmaximize(a().id),a(a().position.x=G.clientX-l.x,!0),a(a().position.y=G.clientY-l.y,!0))}function b(){w(o,!1),c=null,document.removeEventListener("pointermove",g),document.removeEventListener("pointerup",A),document.removeEventListener("pointercancel",k)}function A(G){!i(o)||G.pointerId!==c||b()}function k(G){if(G.pointerId!==c){zn("floatframe:cancel-other-id",G,{dragPointerId:c});return}zn("floatframe:cancel-our-id",G,{dragPointerId:c}),b()}function y(G){G.target.closest(".sh3-float-close")||G.target.closest(".sh3-float-maximize")||G.target.closest(".sh3-float-popout")||De.toggleMaximize(a().id)}function C(G){G.button===0&&(G.stopPropagation(),!i(u)&&(w(u,!0),f=G.pointerId,d={pointer:{x:G.clientX,y:G.clientY},size:{w:a().size.w,h:a().size.h},min:Pi(a().content)},De.focus(a().id),document.addEventListener("pointermove",I),document.addEventListener("pointerup",L),document.addEventListener("pointercancel",T)))}function I(G){if(!i(u)||G.pointerId!==f)return;De.unmaximize(a().id);const $=G.clientX-d.pointer.x,O=G.clientY-d.pointer.y;a(a().size.w=Math.max(d.min.w,d.size.w+$),!0),a(a().size.h=Math.max(d.min.h,d.size.h+O),!0)}function P(){w(u,!1),f=null,document.removeEventListener("pointermove",I),document.removeEventListener("pointerup",L),document.removeEventListener("pointercancel",T)}function L(G){!i(u)||G.pointerId!==f||P()}function T(G){if(G.pointerId!==f){zn("floatframe-grip:cancel-other-id",G,{resizePointerId:f});return}zn("floatframe-grip:cancel-our-id",G,{resizePointerId:f}),P()}function M(){De.focus(a().id)}function N(G){G.stopPropagation(),De.toggleMaximize(a().id)}function R(G){G.stopPropagation(),De.close(a().id)}async function D(G){G.stopPropagation();try{await Zi({kind:"float",content:a().content,title:a().title,size:{w:a().size.w,h:a().size.h},activateShards:rR(a().content)}),De.close(a().id)}catch($){dt.toast.notify(`Pop-out failed: ${$.message}`,{level:"error",duration:5e3})}}var j=iR();let B;var X=p(j);{var J=G=>{var $=aR(),O=p($),H=p(O,!0);h(O);var ee=_(O,2),Z=p(ee);{var oe=be=>{var _e=sR();K("click",_e,D),x(be,_e)};W(Z,be=>{n&&be(oe)})}var de=_(Z,2),ne=p(de,!0);h(de);var le=_(de,2);h(ee),h($),q(()=>{re($,"data-float-id",a().id),z(H,a().title),re(de,"aria-label",i(m)?"Restore float":"Maximize float"),re(de,"aria-pressed",i(m)),z(ne,i(m)?"🗗":"🗖")}),K("pointerdown",$,S),K("dblclick",$,y),K("contextmenu",$,s),K("click",de,N),K("click",le,R),x(G,$)};W(X,G=>{a().title&&G(J)})}var Y=_(X,2),U=p(Y);{let G=F(()=>({kind:"float",floatId:a().id}));rs(U,{get rootRef(){return i(G)},path:[]})}h(Y);var Q=_(Y,2);h(j),Ne(j,G=>w(v,G),()=>i(v)),q(()=>{re(j,"aria-label",a().title??"Float panel"),B=Ye(j,"",B,{left:`${a().position.x??""}px`,top:`${a().position.y??""}px`,width:`${a().size.w??""}px`,height:`${a().size.h??""}px`})}),K("click",j,M),K("pointerdown",Q,C),x(e,j),ie()}pe(["click","pointerdown","dblclick","contextmenu"]);var lR=E('<div class="sh3-float-layer svelte-1rzcset"></div>');function cR(e,t){ae(t,!0);const n=F(()=>pt.floats),r=F(()=>un.current.class==="compact");function s(o){return!i(r)||o.dismissable===!0}var a=lR();me(a,23,()=>i(n),o=>o.id,(o,l,c)=>{var u=Me(),d=fe(u);{var f=m=>{oR(m,{get entry(){return i(n)[i(c)]},set entry(S){i(n)[i(c)]=S}})},v=F(()=>s(i(l)));W(d,m=>{i(v)&&m(f)})}x(o,u)}),h(a),x(e,a),ie()}var uR=E('<div class="sh3-overlay-root svelte-4ykdm7"><!></div>'),dR=E('<div class="sh3-overlays svelte-4ykdm7" aria-hidden="true"></div>');function am(e,t){ae(t,!0);const n=[{layer:"drawers",name:"drawers",zToken:"--sh3-z-layer-drawers"},{layer:1,name:"floating",zToken:"--sh3-z-layer-1"},{layer:2,name:"drag-preview",zToken:"--sh3-z-layer-2"},{layer:3,name:"popup",zToken:"--sh3-z-layer-3"},{layer:4,name:"modal",zToken:"--sh3-z-layer-4"},{layer:5,name:"toast",zToken:"--sh3-z-layer-5"},{layer:6,name:"command",zToken:"--sh3-z-layer-6"}],r=ve({});Ie(()=>{for(const{name:a}of n){const o=r[a];o&&mw(a,o)}return()=>{for(const{name:a}of n)bw(a)}}),Ie(()=>{const a=pt.tree;return V1(a.floats,()=>({w:window.innerWidth,h:window.innerHeight})),()=>U1()});var s=dR();me(s,21,()=>n,({layer:a,name:o,zToken:l})=>a,(a,o)=>{let l=()=>i(o).layer,c=()=>i(o).name,u=()=>i(o).zToken;var d=uR(),f=p(d);{var v=S=>{cR(S,{})},m=S=>{QT(S,{})};W(f,S=>{c()==="floating"?S(v):c()==="drag-preview"&&S(m,1)})}h(d),Ne(d,(S,g)=>r[g]=S,S=>r?.[S],()=>[c()]),q(()=>{re(d,"data-sh3-overlay",c()),re(d,"data-sh3-layer",l()),Ye(d,`z-index: var(${u()??""});`)}),x(a,d)}),h(s),x(e,s),ie()}var fR=E('<div class="guest-signin-error svelte-pymkh"> </div>'),vR=E('<div class="guest-signin-overlay svelte-pymkh" role="dialog"><div class="guest-signin-card svelte-pymkh"><form class="guest-signin-form svelte-pymkh"><input class="guest-signin-input svelte-pymkh" type="text" placeholder="Username" autocomplete="username"/> <input class="guest-signin-input svelte-pymkh" type="password" placeholder="Password" autocomplete="current-password"/> <div class="guest-signin-actions svelte-pymkh"><button type="submit" class="guest-signin-btn svelte-pymkh"> </button> <button type="button" class="guest-signin-cancel svelte-pymkh">Cancel</button></div></form> <!></div></div>'),hR=E('<div class="guest-banner svelte-pymkh"><span class="guest-banner-text">Browsing as guest. Sign in to save your work.</span> <button type="button" class="guest-banner-action svelte-pymkh">Sign in</button></div> <!>',1),pR=E('<div class="guest-banner-slot"><!></div>');function mR(e,t){ae(t,!0);let n=V(!1),r=V(""),s=V(""),a=V(null),o=V(!1);async function l(){if(!i(r).trim()||!i(s).trim()||i(o))return;w(o,!0),w(a,null);const v=await Ch(i(r).trim(),i(s).trim());w(o,!1),v.ok?w(n,!1):w(a,v.error,!0)}var c=pR(),u=p(c);{var d=v=>{var m=hR(),S=fe(m),g=_(p(S),2);h(S);var b=_(S,2);{var A=k=>{var y=vR(),C=p(y),I=p(C),P=p(I);xe(P);var L=_(P,2);xe(L);var T=_(L,2),M=p(T),N=p(M,!0);h(M);var R=_(M,2);h(T),h(I);var D=_(I,2);{var j=B=>{var X=fR(),J=p(X,!0);h(X),q(()=>z(J,i(a))),x(B,X)};W(D,B=>{i(a)&&B(j)})}h(C),h(y),q(B=>{P.disabled=i(o),L.disabled=i(o),M.disabled=B,z(N,i(o)?"Signing in...":"Sign in")},[()=>i(o)||!i(r).trim()||!i(s).trim()]),Ue("submit",I,B=>{B.preventDefault(),l()}),Te(P,()=>i(r),B=>w(r,B)),Te(L,()=>i(s),B=>w(s,B)),K("click",R,()=>{w(n,!1),w(a,null)}),x(k,y)};W(b,k=>{i(n)&&k(A)})}K("click",g,()=>{w(n,!0)}),x(v,m)},f=F(()=>Th());W(u,v=>{i(f)&&v(d)})}h(c),x(e,c),ie()}pe(["click"]);var bR=E('<code class="sh3-consent-scope svelte-14me5sj"> </code>'),gR=E('<dt class="svelte-14me5sj">Peer</dt> <dd class="svelte-14me5sj"> </dd>',1),yR=E('<dt class="svelte-14me5sj">Expires in</dt> <dd class="svelte-14me5sj"> </dd>',1),_R=E('<div class="sh3-consent-backdrop svelte-14me5sj" role="dialog" aria-modal="true" aria-label="Key creation consent"><div class="sh3-consent-card svelte-14me5sj"><h2 class="sh3-consent-title svelte-14me5sj"><span class="svelte-14me5sj"> </span> wants to create a key</h2> <dl class="sh3-consent-fields svelte-14me5sj"><dt class="svelte-14me5sj">Label</dt> <dd class="svelte-14me5sj"> </dd> <dt class="svelte-14me5sj">Scopes</dt> <dd class="sh3-consent-scopes svelte-14me5sj"></dd> <!> <!></dl> <div class="sh3-consent-actions svelte-14me5sj"><button type="button" class="sh3-consent-deny svelte-14me5sj">Deny</button> <button type="button" class="sh3-consent-approve svelte-14me5sj">Approve</button></div></div></div>');function wR(e,t){ae(t,!0);let n=V(null);Ie(()=>Wh(u=>{w(n,u,!0)}));function r(){i(n)&&(bl(i(n).requestId,!0),w(n,null))}function s(){i(n)&&(bl(i(n).requestId,!1),w(n,null))}var a=Me(),o=fe(a);{var l=c=>{var u=_R(),d=p(u),f=p(d),v=p(f),m=p(v,!0);h(v),_t(),h(f);var S=_(f,2),g=_(p(S),2),b=p(g,!0);h(g);var A=_(g,4);me(A,20,()=>i(n).scopes,M=>M,(M,N)=>{var R=bR(),D=p(R,!0);h(R),q(()=>z(D,N)),x(M,R)}),h(A);var k=_(A,2);{var y=M=>{var N=gR(),R=_(fe(N),2),D=p(R);h(R),q(()=>z(D,`${i(n).peerRole??"—"??""}${i(n).peerId?` · ${i(n).peerId}`:""}`)),x(M,N)};W(k,M=>{(i(n).peerRole||i(n).peerId)&&M(y)})}var C=_(k,2);{var I=M=>{var N=yR(),R=_(fe(N),2),D=p(R);h(R),q(j=>z(D,`${j??""}s`),[()=>Math.round(i(n).expiresIn/1e3)]),x(M,N)};W(C,M=>{i(n).expiresIn&&M(I)})}h(S);var P=_(S,2),L=p(P);sa(L,!0);var T=_(L,2);h(P),h(d),h(u),q(()=>{z(m,i(n).shardId),z(b,i(n).label)}),K("click",L,s),K("click",T,r),x(c,u)};W(o,c=>{i(n)&&c(l)})}x(e,a),ie()}pe(["click"]);var kR=E('<span class="sh3-brand svelte-18lk809">SH3</span>'),xR=E('<span class="sh3-brand sh3-brand-app svelte-18lk809"> </span>'),SR=E('<span class="sh3-brand svelte-18lk809">SH3</span> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <button type="button" class="sh3-brand-crumb svelte-18lk809"> </button>',1),IR=E('<button type="button" class="sh3-brand sh3-brand-clickable svelte-18lk809" title="Exit project">SH3</button> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <span class="sh3-brand-project svelte-18lk809"> </span>',1),ER=E('<span class="sh3-brand sh3-brand-project svelte-18lk809"> </span> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <span class="sh3-brand sh3-brand-app svelte-18lk809"> </span>',1),AR=E('<button type="button" class="sh3-brand sh3-brand-clickable svelte-18lk809" title="Exit project">SH3</button> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <button type="button" class="sh3-brand-crumb svelte-18lk809"> </button> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <button type="button" class="sh3-brand-crumb svelte-18lk809"> </button>',1),CR=E('<div class="sh3-brand-slot svelte-18lk809"><!></div>');function im(e,t){ae(t,!0);const n=F(()=>kt().activeAppId),r=F(gw),s=F(()=>wr.activeProjectId),a=F(()=>i(n)?yn(i(n))?.manifest.label??i(n):null),o=F(()=>i(r)?yn(i(r))?.manifest.label??i(r):null),l=F(()=>i(s)?Gt.projects.find(C=>C.id===i(s))?.name??i(s):null),c=F(()=>i(s)?i(n)?"project-app":i(r)?"project-breadcrumb":"project-home":i(n)?"app":i(r)?"breadcrumb":"brand");function u(){i(r)&&Vn(i(r))}function d(){mh(null)}function f(){i(n)&&vs()}var v=CR(),m=p(v);{var S=C=>{var I=kR();x(C,I)},g=C=>{var I=xR(),P=p(I,!0);h(I),q(()=>z(P,i(a))),x(C,I)},b=C=>{var I=SR(),P=_(fe(I),4),L=p(P,!0);h(P),q(()=>z(L,i(o))),K("click",P,u),x(C,I)},A=C=>{var I=IR(),P=fe(I),L=_(P,4),T=p(L,!0);h(L),q(()=>z(T,i(l))),K("click",P,d),x(C,I)},k=C=>{var I=ER(),P=fe(I),L=p(P,!0);h(P);var T=_(P,4),M=p(T,!0);h(T),q(()=>{z(L,i(l)),z(M,i(a))}),x(C,I)},y=C=>{var I=AR(),P=fe(I),L=_(P,4),T=p(L,!0);h(L);var M=_(L,4),N=p(M,!0);h(M),q(()=>{z(T,i(l)),z(N,i(o))}),K("click",P,d),K("click",L,f),K("click",M,u),x(C,I)};W(m,C=>{i(c)==="brand"?C(S):i(c)==="app"?C(g,1):i(c)==="breadcrumb"?C(b,2):i(c)==="project-home"?C(A,3):i(c)==="project-app"?C(k,4):i(c)==="project-breadcrumb"&&C(y,5)})}h(v),x(e,v),ie()}pe(["click"]);const TR=Object.freeze([{id:"file",label:"File"},{id:"edit",label:"Edit"},{id:"view",label:"View"},{id:"window",label:"Window"},{id:"help",label:"Help"}]);function bi(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function om(e,t){if(e==null)return[];if(t==null)return TR.slice();const n=t.map((r,s)=>({c:r,i:s}));return n.sort((r,s)=>{const a=r.c.order,o=s.c.order;return a!=null&&o!=null?a-o||r.i-s.i:a!=null?-1:o!=null?1:r.i-s.i}),n.map(r=>r.c)}function lm(e,t,n){const r=[],s=new Set;for(const a of e){if(a.action.menuItem!==n||a.action.submenuOf!==void 0||s.has(a.action.id))continue;const o=va(a.action.scope,t,a.ownerShardId);o&&(o==="app"&&!t.activeAppRequiredShards.has(a.ownerShardId)||(s.add(a.action.id),r.push({id:a.action.id,label:Vt(a.action),shortcut:fa(a.action,t.bindings,t.platform),group:a.action.group??"",icon:a.action.icon,checked:bi(a.action.checked),disabled:bi(a.action.disabled),submenu:a.action.submenu===!0})))}return r}function cm(e,t,n){const r=[],s=new Set;for(const a of e){if(a.action.submenuOf!==n||s.has(a.action.id))continue;const o=va(a.action.scope,t,a.ownerShardId);o&&(o==="app"&&!t.activeAppRequiredShards.has(a.ownerShardId)||(s.add(a.action.id),r.push({id:a.action.id,label:Vt(a.action),shortcut:fa(a.action,t.bindings,t.platform),group:a.action.group??"",icon:a.action.icon,checked:bi(a.action.checked),disabled:bi(a.action.disabled),submenu:a.action.submenu===!0})))}return r}var RR=E('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),LR=E('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),MR=E('<button type="button" class="sh3-menubar-button svelte-bke3dt"><!> <span class="sh3-menubar-label"> </span> <!></button>');function PR(e,t){ae(t,!0);let n=V(void 0);function r(g){const b=new Map,A=[];for(const k of g){const y=k.group||"";b.has(y)||(b.set(y,[]),A.push(y)),b.get(y).push(k)}return A.map(k=>({id:`group:${k||"_default"}`,items:b.get(k)}))}function s(g,b,A){const k=et().find(y=>y.action.id===g);if(!(!k||typeof k.action.run!="function")){try{k.action.run({action:{id:g,label:Vt(k.action)},appId:b.activeAppId,viewId:b.focusedViewId??void 0,selection:b.selection??void 0,invokedVia:"palette",dispatch:()=>{}})}catch(y){console.error(`[sh3] menu-bar action "${g}" threw:`,y)}A.close()}}function a(g,b,A){const k=document.querySelector(".sh3-popup-host");if(!k)return;const y=document.createElement("div");y.className="sh3-popup-submenu",y.style.position="absolute",y.style.pointerEvents="auto";const I=(k.querySelector(".sh3-ctx-active")??k).getBoundingClientRect();y.style.left=`${I.right+2}px`,y.style.top=`${I.top}px`,k.appendChild(y);const P=cm(et(),b,g),L=We(ii,{target:y,props:{sections:r(P),onInvoke:T=>s(T,b,A),onDismiss:()=>{tt(L),y.remove()}}})}function o(){if(!i(n))return;const g=kt(),b=Jo.show(ii,{anchor:i(n),placement:"bottom-start"},{sections:r(t.items),onInvoke:A=>{const k=et().find(y=>y.action.id===A);if(k){if(k.action.submenu===!0){a(A,g,b);return}s(A,g,b)}},onDismiss:()=>Jo.close()})}const l=F(()=>t.container.iconPosition??"before");var c=MR(),u=p(c);{var d=g=>{var b=RR();q(()=>re(b,"data-icon",t.container.icon)),x(g,b)};W(u,g=>{t.container.icon&&i(l)==="before"&&g(d)})}var f=_(u,2),v=p(f,!0);h(f);var m=_(f,2);{var S=g=>{var b=LR();q(()=>re(b,"data-icon",t.container.icon)),x(g,b)};W(m,g=>{t.container.icon&&i(l)==="after"&&g(S)})}h(c),Ne(c,g=>w(n,g),()=>i(n)),q(()=>z(v,t.container.label)),K("click",c,o),x(e,c),ie()}pe(["click"]);var DR=E('<div class="sh3-menubar svelte-7gc0wa" role="menubar"></div>');function um(e,t){ae(t,!0);const n=F(kt),r=F(()=>i(n).activeAppId),s=F(()=>{if(i(r))return yn(i(r))?.manifest.menus}),a=F(()=>om(i(r),i(s))),o=F(()=>{const c=[],u=et();for(const d of i(a)){const f=lm(u,i(n),d.id);f.length>0&&c.push({container:d,items:f})}return c});var l=DR();me(l,21,()=>i(o),({container:c,items:u})=>c.id,(c,u)=>{let d=()=>i(u).container,f=()=>i(u).items;PR(c,{get container(){return d()},get items(){return f()}})}),h(l),x(e,l),ie()}const zR={type:"slot",slotId:"__sh3core__:compact:empty",viewId:null,role:"body"};function ss(e){return e??"body"}function dm(e){return e.type==="slot"?[{slotId:e.slotId,viewId:e.viewId,label:e.slotId,role:ss(e.role)}]:e.type==="tabs"?e.tabs.map(t=>({slotId:t.slotId,viewId:t.viewId,label:t.label,icon:t.icon,role:ss(e.role)})):e.children.flatMap(dm)}function kd(e){return dm(e).some(t=>t.role==="body")}function fm(e){if(e.type==="slot"||e.type==="tabs")return ss(e.role)==="body"?e:null;const t=[];for(let n=0;n<e.children.length;n++){const r=fm(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 xd(e){return e==="inspector"?"right":"left"}function jR(e){const t={left:[],right:[],top:[]};function n(r,s){if(r.type==="slot"){const a=ss(r.role);if(a==="body")return;const o=s??xd(a);t[o].push({slotId:r.slotId,viewId:r.viewId,label:r.slotId,role:a});return}if(r.type==="tabs"){const a=ss(r.role);if(a==="body")return;const o=s??xd(a);for(const l of r.tabs)t[o].push({slotId:l.slotId,viewId:l.viewId,label:l.label,icon:l.icon,role:a});return}if(r.direction==="horizontal")for(let a=0;a<r.children.length;a++){const o=r.children[a];let l=s;s===null&&!kd(o)&&(a===0?l="left":a===r.children.length-1&&(l="right")),n(o,l)}else for(let a=0;a<r.children.length;a++){const o=r.children[a];let l=s;s===null&&a===0&&!kd(o)&&(l="top"),n(o,l)}}return n(e,null),t}function To(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 vm(e){const n=fm(e)??zR,r=jR(e);return{bodyRoot:n,drawers:{left:To(r.left),right:To(r.right),top:To(r.top)},carousels:HT(n)}}var OR=E('<span class="shortcut svelte-vkxo1d"> </span>'),NR=E('<button class="item child svelte-vkxo1d"><span class="label svelte-vkxo1d"> </span> <!></button>'),qR=E('<div class="subitems svelte-vkxo1d"></div>'),BR=E('<button class="item submenu svelte-vkxo1d"><span>▸</span> <span class="label svelte-vkxo1d"> </span></button> <!>',1),FR=E('<span class="shortcut svelte-vkxo1d"> </span>'),VR=E('<button class="item svelte-vkxo1d"><span class="label svelte-vkxo1d"> </span> <!></button>'),UR=E('<div class="items svelte-vkxo1d"></div>'),HR=E('<button class="container svelte-vkxo1d"><span>▸</span> <span class="label svelte-vkxo1d"> </span></button> <!>',1),KR=E('<div class="backdrop svelte-vkxo1d" role="presentation"></div> <div class="sheet svelte-vkxo1d" role="dialog" aria-label="Menu" data-sh3-region="menu-sheet"><div class="scroll svelte-vkxo1d"></div> <button class="cancel svelte-vkxo1d">Cancel</button></div>',1);function WR(e,t){ae(t,!0);const n=F(kt),r=F(()=>i(n).activeAppId),s=F(()=>{if(i(r))return yn(i(r))?.manifest.menus}),a=F(()=>om(i(r),i(s))),o=F(()=>{const g=[],b=et();for(const A of i(a)){const k=lm(b,i(n),A.id);k.length>0&&g.push({containerId:A.id,label:A.label,items:k})}return g});let l=V(ve(new Set)),c=V(ve(new Set));function u(g){const b=new Set(i(l));b.has(g)?b.delete(g):b.add(g),w(l,b,!0)}function d(g){const b=new Set(i(c));b.has(g)?b.delete(g):b.add(g),w(c,b,!0)}function f(g){const b=et().find(A=>A.action.id===g);if(!(!b||typeof b.action.run!="function")){try{b.action.run({action:{id:g,label:Vt(b.action)},appId:i(n).activeAppId,viewId:i(n).focusedViewId??void 0,selection:i(n).selection??void 0,invokedVia:"palette",dispatch:()=>{}})}catch(A){console.error(`[sh3] menu-sheet action "${g}" threw:`,A)}t.onClose()}}var v=Me(),m=fe(v);{var S=g=>{var b=KR(),A=fe(b),k=_(A,2),y=p(k);me(y,21,()=>i(o),({containerId:I,label:P,items:L})=>I,(I,P)=>{let L=()=>i(P).containerId,T=()=>i(P).label,M=()=>i(P).items;var N=HR(),R=fe(N),D=p(R);let j;var B=_(D,2),X=p(B,!0);h(B),h(R);var J=_(R,2);{var Y=Q=>{var G=UR();me(G,21,M,$=>$.id,($,O)=>{var H=Me(),ee=fe(H);{var Z=de=>{var ne=BR(),le=fe(ne),be=p(le);let _e;var He=_(be,2),je=p(He,!0);h(He),h(le);var ot=_(le,2);{var Ln=se=>{var Ee=qR();me(Ee,21,()=>cm(et(),i(n),i(O).id),Pe=>Pe.id,(Pe,ke)=>{var Oe=NR(),Xe=p(Oe),Be=p(Xe,!0);h(Xe);var rn=_(Xe,2);{var wn=ft=>{var sn=OR(),no=p(sn,!0);h(sn),q(()=>z(no,i(ke).shortcut)),x(ft,sn)};W(rn,ft=>{i(ke).shortcut&&ft(wn)})}h(Oe),q(()=>{Oe.disabled=i(ke).disabled,z(Be,i(ke).label)}),K("click",Oe,()=>f(i(ke).id)),x(Pe,Oe)}),h(Ee),x(se,Ee)},ce=F(()=>i(c).has(i(O).id));W(ot,se=>{i(ce)&&se(Ln)})}q((se,Ee)=>{re(le,"aria-expanded",se),le.disabled=i(O).disabled,_e=he(be,1,"caret svelte-vkxo1d",null,_e,Ee),z(je,i(O).label)},[()=>i(c).has(i(O).id),()=>({open:i(c).has(i(O).id)})]),K("click",le,()=>d(i(O).id)),x(de,ne)},oe=de=>{var ne=VR(),le=p(ne),be=p(le,!0);h(le);var _e=_(le,2);{var He=je=>{var ot=FR(),Ln=p(ot,!0);h(ot),q(()=>z(Ln,i(O).shortcut)),x(je,ot)};W(_e,je=>{i(O).shortcut&&je(He)})}h(ne),q(()=>{ne.disabled=i(O).disabled,z(be,i(O).label)}),K("click",ne,()=>f(i(O).id)),x(de,ne)};W(ee,de=>{i(O).submenu?de(Z):de(oe,-1)})}x($,H)}),h(G),x(Q,G)},U=F(()=>i(l).has(L()));W(J,Q=>{i(U)&&Q(Y)})}q((Q,G)=>{re(R,"aria-expanded",Q),j=he(D,1,"caret svelte-vkxo1d",null,j,G),z(X,T())},[()=>i(l).has(L()),()=>({open:i(l).has(L())})]),K("click",R,()=>u(L())),x(I,N)}),h(y);var C=_(y,2);h(k),K("click",A,function(...I){t.onClose?.apply(this,I)}),K("keydown",A,I=>{I.key==="Escape"&&t.onClose()}),K("click",C,function(...I){t.onClose?.apply(this,I)}),x(g,b)};W(m,g=>{t.open&&g(S)})}x(e,v),ie()}pe(["click","keydown"]);var YR=E('<span class="kind svelte-cq4vzh">layout</span>'),XR=E('<span class="kind svelte-cq4vzh">float</span>'),GR=E('<button class="row svelte-cq4vzh"><span class="label svelte-cq4vzh"> </span> <!></button>'),JR=E('<div class="backdrop svelte-cq4vzh" role="presentation"></div> <div class="sheet svelte-cq4vzh" role="dialog" aria-label="Floats" data-sh3-region="floats-sheet"><div class="scroll svelte-cq4vzh"></div> <button class="cancel svelte-cq4vzh">Cancel</button></div>',1);function ZR(e,t){ae(t,!0);const n=F(kt),r=F(()=>{if(Bi()==="home")return"Home";const T=i(n).activeAppId;return T?yn(T)?.manifest.label??T:"Home"});function s(T){if(T.title)return T.title;if(T.content.type==="tabs"){const M=T.content.tabs[T.content.activeTab]??T.content.tabs[0];if(M)return M.label}return T.id}const a=F(()=>{const T=[{id:"docked",label:i(r)}];for(const M of pt.tree.floats)M.dismissable||T.push({id:M.id,label:s(M)});return T});function o(T){const M=hn.current;return T==="docked"?M.kind==="docked":M.kind==="float"&&M.floatId===T}function l(T){T==="docked"?hn.reset():hn.setRoot({kind:"float",floatId:T}),t.onClose()}const c=.4;let u=V(null),d=V(0),f=0,v=null,m=null;function S(T){return i(u)===T?i(d):0}function g(T){return i(u)===T?"none":"transform 160ms ease-out"}function b(T,M){M!=="docked"&&T.button===0&&i(u)===null&&(w(u,M,!0),f=T.clientX,w(d,0),v=T.pointerId,m=T.currentTarget??document.querySelector(`[data-sh3-floats-row="${M}"]`),document.addEventListener("pointermove",A),document.addEventListener("pointerup",y),document.addEventListener("pointercancel",C))}function A(T){T.pointerId===v&&w(d,T.clientX-f)}function k(){document.removeEventListener("pointermove",A),document.removeEventListener("pointerup",y),document.removeEventListener("pointercancel",C),w(u,null),v=null,f=0,w(d,0),m=null}function y(T){if(T.pointerId!==v)return;const M=i(u),N=m?.clientWidth??0,R=i(d);k(),M&&M!=="docked"&&N>0&&Math.abs(R)>=N*c&&De.close(M)}function C(T){T.pointerId===v&&k()}var I=Me(),P=fe(I);{var L=T=>{var M=JR(),N=fe(M),R=_(N,2),D=p(R);me(D,21,()=>i(a),B=>B.id,(B,X)=>{var J=GR();let Y;var U=p(J),Q=p(U,!0);h(U);var G=_(U,2);{var $=H=>{var ee=YR();x(H,ee)},O=H=>{var ee=XR();x(H,ee)};W(G,H=>{i(X).id==="docked"?H($):H(O,-1)})}h(J),q((H,ee)=>{re(J,"data-sh3-floats-row",i(X).id),re(J,"data-current",H),Y=Ye(J,"",Y,ee),z(Q,i(X).label)},[()=>o(i(X).id)?"true":"false",()=>({transform:`translateX(${S(i(X).id)??""}px)`,transition:g(i(X).id)})]),K("click",J,()=>l(i(X).id)),K("pointerdown",J,H=>b(H,i(X).id)),x(B,J)}),h(D);var j=_(D,2);h(R),K("click",N,function(...B){t.onClose?.apply(this,B)}),K("keydown",N,B=>{B.key==="Escape"&&t.onClose()}),K("click",j,function(...B){t.onClose?.apply(this,B)}),x(T,M)};W(P,T=>{t.open&&T(L)})}x(e,I),ie()}pe(["click","keydown","pointerdown"]);var QR=E('<span data-sh3-anchor="left" class="svelte-q1hcw0"><!></span>'),$R=E('<span data-sh3-anchor="right" class="svelte-q1hcw0"><!></span>'),eL=E('<span data-sh3-anchor="top" class="svelte-q1hcw0"><!></span>'),tL=E('<header class="sh3-compact-chrome svelte-q1hcw0" data-sh3-region="compact-chrome"><div class="leading svelte-q1hcw0"><!> <!> <!> <!></div> <div class="title svelte-q1hcw0"> </div> <div class="trailing svelte-q1hcw0"><!> <!> <!></div></header> <!> <!>',1);function nL(e,t){ae(t,!0);const n=F(Vv),r=F(()=>vm(i(n))),s=F(kt),a=F(()=>Bi()==="home"),o=F(()=>{const J=i(s).activeAppId;return J?yn(J)?.manifest.label??J:"SH3"}),l=F(()=>{if(i(r).carousels.size===0)return null;let J=null,Y="";for(const[U,Q]of i(r).carousels)(J===null||U<J)&&(J=U,Y=Q.activeLabel);return Y}),c=F(()=>{const J=hn.current;if(J.kind!=="float")return null;const Y=pt.tree.floats.find(U=>U.id===J.floatId);return Y?Y.title?Y.title:Y.content.type==="tabs"?(Y.content.tabs[Y.content.activeTab]??Y.content.tabs[0])?.label??null:null:null}),u=F(()=>{if(i(c))return i(c);const J=i(l);return J?`${i(o)} › ${J}`:i(o)});let d=V(!1),f=V(!1);function v(J){dt.drawers.toggle(J)}function m(){dt.actions.openPalette()}var S=tL(),g=fe(S),b=p(g),A=p(b);Dn(A,{variant:"icon",icon:"house",ariaLabel:"Home",title:"Home",get disabled(){return i(a)},onclick:()=>vs()});var k=_(A,2);{var y=J=>{var Y=QR(),U=p(Y);Dn(U,{variant:"icon",icon:"menu",ariaLabel:"Toggle left drawer",title:"Toggle left drawer",onclick:()=>v("left")}),h(Y),x(J,Y)};W(k,J=>{i(r).drawers.left&&J(y)})}var C=_(k,2);{var I=J=>{var Y=$R(),U=p(Y);Dn(U,{variant:"icon",icon:"panel-right",ariaLabel:"Toggle right drawer",title:"Toggle right drawer",onclick:()=>v("right")}),h(Y),x(J,Y)};W(C,J=>{i(r).drawers.right&&J(I)})}var P=_(C,2);{var L=J=>{var Y=eL(),U=p(Y);Dn(U,{variant:"icon",icon:"panel-top",ariaLabel:"Toggle top drawer",title:"Toggle top drawer",onclick:()=>v("top")}),h(Y),x(J,Y)};W(P,J=>{i(r).drawers.top&&J(L)})}h(b);var T=_(b,2),M=p(T,!0);h(T);var N=_(T,2),R=p(N);Dn(R,{variant:"icon",icon:"command",ariaLabel:"Open command palette",title:"Open command palette",onclick:m});var D=_(R,2);Dn(D,{variant:"icon",icon:"layers",ariaLabel:"Floats",title:"Floats",get pressed(){return i(f)},onclick:()=>{w(f,!i(f))}});var j=_(D,2);Dn(j,{variant:"icon",icon:"ellipsis-vertical",ariaLabel:"Open menu",title:"Open menu",onclick:()=>{w(d,!0)}}),h(N),h(g);var B=_(g,2);WR(B,{get open(){return i(d)},onClose:()=>w(d,!1)});var X=_(B,2);ZR(X,{get open(){return i(f)},onClose:()=>w(f,!1)}),q(()=>z(M,i(u))),x(e,S),ie()}var rL=E('<button role="tab"> </button>'),sL=E('<div class="tab-strip svelte-8dp9bg" role="tablist"></div>'),aL=E('<div class="drawer-backdrop svelte-8dp9bg" role="presentation"></div> <div data-sh3-region="drawer"><header class="svelte-8dp9bg"><span class="title svelte-8dp9bg"> </span> <button class="close svelte-8dp9bg" aria-label="Close drawer">×</button></header> <!> <div class="body svelte-8dp9bg"><!></div></div>',1);function iL(e,t){ae(t,!0);const n=F(()=>t.spec.slots.find(l=>l.slotId===t.activeSlotId)??t.spec.slots[0]),r=F(()=>({type:"slot",slotId:i(n).slotId,viewId:i(n).viewId,role:i(n).role}));var s=Me(),a=fe(s);{var o=l=>{var c=aL(),u=fe(c),d=_(u,2),f=p(d),v=p(f),m=p(v,!0);h(v);var S=_(v,2);h(f);var g=_(f,2);{var b=y=>{var C=sL();me(C,21,()=>t.spec.slots,I=>I.slotId,(I,P)=>{var L=rL();let T;var M=p(L,!0);h(L),q(()=>{re(L,"aria-selected",i(P).slotId===i(n).slotId),T=he(L,1,"svelte-8dp9bg",null,T,{active:i(P).slotId===i(n).slotId}),z(M,i(P).label)}),K("click",L,()=>t.onActivate(i(P).slotId)),x(I,L)}),h(C),x(y,C)};W(g,y=>{t.spec.slots.length>1&&y(b)})}var A=_(g,2),k=p(A);pi(k,{get node(){return i(r)},get label(){return i(n).label}}),h(A),h(d),q(()=>{he(d,1,`drawer drawer-${t.anchor??""}`,"svelte-8dp9bg"),re(d,"data-sh3-anchor",t.anchor),z(m,i(n).label)}),K("click",u,function(...y){t.onClose?.apply(this,y)}),K("keydown",u,y=>{y.key==="Escape"&&t.onClose()}),K("click",S,function(...y){t.onClose?.apply(this,y)}),x(l,c)};W(a,l=>{t.open&&l(o)})}x(e,s),ie()}pe(["click","keydown"]);var oL=E('<div class="compact-body svelte-1sc410j" data-sh3-region="compact-body"><!></div> <!>',1);function lL(e,t){ae(t,!0);const n=F(Vv),r=F(()=>vm(i(n))),s=["left","right","top"];var a=oL(),o=fe(a),l=p(o);rs(l,{get rootOverride(){return i(r).bodyRoot},get carousels(){return i(r).carousels}}),h(o);var c=_(o,2);me(c,16,()=>s,u=>u,(u,d)=>{const f=F(()=>i(r).drawers[d]);var v=Me(),m=fe(v);{var S=g=>{iL(g,{get anchor(){return d},get spec(){return i(f)},get open(){return Ot.state[d].open},get activeSlotId(){return Ot.state[d].activeSlotId},onClose:()=>Ot.close(d),onActivate:b=>Ot.activate(d,b)})};W(m,g=>{i(f)&&g(S)})}x(u,v)}),x(e,a),ie()}var cL=E('<button type="button" class="sh3-tabbar-signout svelte-1amm732" title="Sign out"><svg class="sh3-tabbar-signout-icon svelte-1amm732" aria-hidden="true"><use></use></svg></button>'),uL=E('<div class="sh3-tabbar-user svelte-1amm732"><span class="sh3-tabbar-user-name svelte-1amm732"> </span> <span class="sh3-tabbar-tag svelte-1amm732"> </span> <!></div>'),dL=E('<header class="sh3-tabbar svelte-1amm732" data-sh3-region="tabbar"><button type="button" class="sh3-tabbar-home-button svelte-1amm732" title="Home"><svg class="sh3-tabbar-home-icon svelte-1amm732" aria-hidden="true"><use></use></svg></button> <!> <!> <!></header>'),fL=E('<footer class="sh3-statusbar svelte-1amm732" data-sh3-region="statusbar"></footer>'),vL=E('<div class="sh3 svelte-1amm732"><!> <!> <main class="sh3-content svelte-1amm732" data-sh3-region="content" data-sh3-layer="0"><!></main> <!> <!> <!></div>');function hL(e,t){ae(t,!0);let n=V(void 0);const r=F(dl),s=F(ts),a=F(Tt),o=F(()=>Bi()==="home"),l=F(()=>dt.viewport.current.class);Ie(()=>{pt.tree,Zk()}),Ie(()=>dl()?tS():void 0),Ie(()=>{const I=i(n);if(!I)return;const P=new Set;function L(M){const N=I.getBoundingClientRect(),R=M.clientX-N.left;if(R>=Qa&&R<=N.width-Qa)return;da(M.pointerId,{ownerId:"sh3:edge",axis:"x",priority:"edge",depth:0})&&P.add(M.pointerId)}function T(M){P.has(M.pointerId)&&(_r(M.pointerId,"sh3:edge"),P.delete(M.pointerId))}return I.addEventListener("pointerdown",L),I.addEventListener("pointerup",T),I.addEventListener("pointercancel",T),()=>{I.removeEventListener("pointerdown",L),I.removeEventListener("pointerup",T),I.removeEventListener("pointercancel",T);for(const M of P)_r(M,"sh3:edge");P.clear()}});var c=vL(),u=p(c);{var d=I=>{var P=dL(),L=p(P),T=p(L),M=p(T);h(T),h(L);var N=_(L,2);im(N,{});var R=_(N,2);um(R,{});var D=_(R,2);{var j=B=>{var X=uL(),J=p(X),Y=p(J,!0);h(J);var U=_(J,2),Q=p(U,!0);h(U);var G=_(U,2);{var $=H=>{var ee=cL(),Z=p(ee),oe=p(Z);h(Z),h(ee),q(()=>re(oe,"href",`${$n}#log-out`)),K("click",ee,()=>Y0()),x(H,ee)},O=F(()=>!G0());W(G,H=>{i(O)&&H($)})}h(X),q(()=>{z(Y,i(s).displayName),z(Q,i(a)?"admin":"user")}),x(B,X)};W(D,B=>{i(r)&&i(s)&&B(j)})}h(P),q(()=>{L.disabled=i(o),re(M,"href",`${$n}#house`)}),K("click",L,()=>vs()),x(I,P)},f=I=>{nL(I,{})};W(u,I=>{i(l)==="desktop"?I(d):I(f,-1)})}var v=_(u,2);mR(v,{});var m=_(v,2),S=p(m);{var g=I=>{rs(I,{})},b=I=>{lL(I,{})};W(S,I=>{i(l)==="desktop"?I(g):I(b,-1)})}h(m),Ne(m,I=>w(n,I),()=>i(n));var A=_(m,2);{var k=I=>{var P=fL();x(I,P)};W(A,I=>{i(l)==="desktop"&&I(k)})}var y=_(A,2);am(y,{});var C=_(y,2);wR(C,{}),h(c),q(()=>re(c,"data-sh3-viewport",i(l))),x(e,c),ie()}pe(["click"]);var pL=E('<button type="button" class="signin-link svelte-lh4k15">Create an account</button>'),mL=E('<form class="signin-form svelte-lh4k15"><input class="signin-input svelte-lh4k15" type="text" placeholder="Username" autocomplete="username"/> <input class="signin-input svelte-lh4k15" type="password" placeholder="Password" autocomplete="current-password"/> <button type="submit" class="signin-btn svelte-lh4k15"> </button></form> <!>',1),bL=E('<form class="signin-form svelte-lh4k15"><input class="signin-input svelte-lh4k15" type="text" placeholder="Username" autocomplete="username"/> <input class="signin-input svelte-lh4k15" type="text" placeholder="Display name (optional)"/> <input class="signin-input svelte-lh4k15" type="password" placeholder="Password" autocomplete="new-password"/> <button type="submit" class="signin-btn svelte-lh4k15"> </button></form> <button type="button" class="signin-link svelte-lh4k15">Back to sign in</button>',1),gL=E('<div class="signin-error svelte-lh4k15"> </div>'),yL=E('<div class="signin-wall svelte-lh4k15"><div class="signin-card svelte-lh4k15"><h1 class="signin-brand svelte-lh4k15">SH3</h1> <!> <!></div></div>');function _L(e,t){ae(t,!0);let n=V("login"),r=V(""),s=V(""),a=V(""),o=V(null),l=V(!1);async function c(){if(!i(r).trim()||!i(s).trim()||i(l))return;w(l,!0),w(o,null);const k=await Ch(i(r).trim(),i(s).trim());w(l,!1),k.ok?t.onSuccess():w(o,k.error,!0)}async function u(){if(!i(r).trim()||!i(s).trim()||i(l))return;w(l,!0),w(o,null);const k=await W0(i(r).trim(),i(s).trim(),i(a).trim()||void 0);w(l,!1),k.ok?t.onSuccess():w(o,k.error,!0)}function d(k){w(n,k,!0),w(o,null)}var f=yL(),v=p(f),m=_(p(v),2);{var S=k=>{var y=mL(),C=fe(y),I=p(C);xe(I);var P=_(I,2);xe(P);var L=_(P,2),T=p(L,!0);h(L),h(C);var M=_(C,2);{var N=R=>{var D=pL();K("click",D,()=>d("register")),x(R,D)};W(M,R=>{t.selfRegistration&&R(N)})}q(R=>{I.disabled=i(l),P.disabled=i(l),L.disabled=R,z(T,i(l)?"Signing in...":"Sign in")},[()=>i(l)||!i(r).trim()||!i(s).trim()]),Ue("submit",C,R=>{R.preventDefault(),c()}),Te(I,()=>i(r),R=>w(r,R)),Te(P,()=>i(s),R=>w(s,R)),x(k,y)},g=k=>{var y=bL(),C=fe(y),I=p(C);xe(I);var P=_(I,2);xe(P);var L=_(P,2);xe(L);var T=_(L,2),M=p(T,!0);h(T),h(C);var N=_(C,2);q(R=>{I.disabled=i(l),P.disabled=i(l),L.disabled=i(l),T.disabled=R,z(M,i(l)?"Creating...":"Create account")},[()=>i(l)||!i(r).trim()||!i(s).trim()]),Ue("submit",C,R=>{R.preventDefault(),u()}),Te(I,()=>i(r),R=>w(r,R)),Te(P,()=>i(a),R=>w(a,R)),Te(L,()=>i(s),R=>w(s,R)),K("click",N,()=>d("login")),x(k,y)};W(m,k=>{i(n)==="login"?k(S):k(g,-1)})}var b=_(m,2);{var A=k=>{var y=gL(),C=p(y,!0);h(y),q(()=>z(C,i(o))),x(k,y)};W(b,k=>{i(o)&&k(A)})}h(v),h(f),x(e,f),ie()}pe(["click"]);function wL(){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:aS(t)}}catch(n){return{error:n.message}}}function kL(e){return e.kind==="float"?{docked:e.content,floats:[]}:{docked:{type:"slot",slotId:"satellite:root",viewId:null},floats:[]}}var xL=E('<header class="sh3-satellite-tabbar svelte-191z0e1" data-sh3-region="tabbar"><!> <!> <div class="sh3-satellite-floats-slot svelte-191z0e1" aria-hidden="true"></div></header> <main class="sh3-satellite-content svelte-191z0e1" data-sh3-region="content" data-sh3-layer="0"><!></main>',1),SL=E("<div><!> <!></div>");function IL(e,t){ae(t,!0),Ie(()=>{if(t.payload.kind==="float")N1(kL(t.payload).docked);else if(t.payload.kind==="app"){const c=t.payload.appId;queueMicrotask(()=>{Vn(c,{skipLastApp:!0,skipSwitchToHome:!0})})}});var n=SL();let r;var s=p(n);{var a=c=>{var u=xL(),d=fe(u),f=p(d);im(f,{});var v=_(f,2);um(v,{}),_t(2),h(d);var m=_(d,2),S=p(m);rs(S,{}),h(m),x(c,u)},o=c=>{rs(c,{})};W(s,c=>{t.payload.kind==="app"?c(a):c(o,-1)})}var l=_(s,2);am(l,{}),h(n),q(()=>r=he(n,1,"sh3-satellite-root svelte-191z0e1",null,r,{"sh3-satellite-app":t.payload.kind==="app"})),x(e,n),ie()}async function Sd(e){const t=e?.serverUrl??"",n=await nC();n.backends&&(go("workspace",n.backends.workspace),go("user",n.backends.user)),n.localOwner&&X0(),qh(t),yS();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=wL();if(s){if("error"in s){r.textContent=`Invalid satellite payload: ${s.error}`;return}if(go("workspace",new Yo),n.localOwner&&Ia("local"),e?.shards)for(const c of e.shards)gd(c);if(e?.apps)for(const c of e.apps)qs(c);await Id(e?.discoveredPackages),await lT({activateShardIds:s.payload.kind==="app"?[]:s.payload.activateShards}),qu(),We(IL,{target:r,props:{payload:s.payload}});return}let a=null;if(!n.localOwner||e?.remoteAuth===!0)try{const c=await Re(`${t}/api/boot`);c.ok&&(a=await c.json())}catch{}if(n.localOwner&&!e?.remoteAuth)Ia("local");else if(a){Uu(t,a),Ia(a.tenantId);const{auth:c,session:u}=a;if(!u&&c.required&&!c.guestAllowed){await EL(r,a);const d=await Re(`${t}/api/boot`);d.ok&&(a=await d.json(),Uu(t,a),Ia(a.tenantId))}}if(await Id(e?.discoveredPackages),e?.shards)for(const c of e.shards)gd(c);if(e?.apps)for(const c of e.apps)qs(c);const l={};e?.excludeShards&&(l.excludeShards=e.excludeShards),await oT(l),qu(),We(hL,{target:r})}async function Id(e){if(e?.length)for(const t of e)try{const n=t.bundleUrl.startsWith("http://")||t.bundleUrl.startsWith("https://"),r=st(),s=t.bundleUrl.startsWith("/")?"":"/",a=n?t.bundleUrl:`${r}${s}${t.bundleUrl}`,o=await Re(a);if(!o.ok){console.warn(`[sh3] Failed to fetch discovered package "${t.id}": HTTP ${o.status}`);continue}const l=await o.arrayBuffer(),c=await ba(l);Nc(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 EL(e,t){return new Promise(n=>{const r=We(_L,{target:e,props:{selfRegistration:t.auth.selfRegistration,onSuccess:()=>{tt(r),n()}}})})}var AL=E('<div class="onboarding-error svelte-c2abmw" data-role="error-banner"> </div>'),CL=E('<div class="onboarding-wall svelte-c2abmw"><div class="onboarding-card svelte-c2abmw"><h1 class="onboarding-brand svelte-c2abmw">SH3</h1> <p class="onboarding-tagline svelte-c2abmw">Connect to your SH3 server</p> <form class="onboarding-form svelte-c2abmw"><input class="onboarding-input svelte-c2abmw" name="url" type="url" placeholder="https://my.sh3.example.com" autocomplete="url"/> <input class="onboarding-input svelte-c2abmw" name="label" type="text" placeholder="Friendly name (optional)"/> <button type="submit" class="onboarding-btn svelte-c2abmw" data-action="connect"> </button></form> <div class="onboarding-divider svelte-c2abmw">or</div> <button type="button" class="onboarding-btn-secondary svelte-c2abmw" data-action="local">Run locally (limited)</button> <p class="onboarding-hint svelte-c2abmw">Local-only documents, no installed-via-server apps.</p> <!></div></div>');function TL(e,t){ae(t,!0);let n=V(ve(Se(()=>t.prefillUrl))),r=V(ve(Se(()=>t.prefillLabel))),s=V(ve(Se(()=>t.error))),a=V(!1);async function o(){if(!(!i(n).trim()||i(a))){w(a,!0),w(s,null);try{const k=i(n).trim().replace(/\/$/,""),y=await fetch(`${k}/api/boot`,{credentials:"include"});if(!y.ok){w(s,"Not an SH3 server");return}let C;try{C=await y.json()}catch{w(s,"Not an SH3 server");return}if(!(!!C.auth&&typeof C.auth=="object"&&"required"in C.auth&&"guestAllowed"in C.auth&&"selfRegistration"in C.auth&&typeof C.tenantId=="string")){w(s,"Not an SH3 server");return}const P=typeof C.version=="string"?C.version:"unknown";t.onResolved({mode:"remote",url:k,label:i(r).trim()||k,version:P})}catch(k){w(s,`Could not reach ${i(n)} — ${k.message}`)}finally{w(a,!1)}}}function l(){t.onResolved({mode:"local"})}var c=CL(),u=p(c),d=_(p(u),4),f=p(d);xe(f);var v=_(f,2);xe(v);var m=_(v,2),S=p(m,!0);h(m),h(d);var g=_(d,4),b=_(g,4);{var A=k=>{var y=AL(),C=p(y,!0);h(y),q(()=>z(C,i(s))),x(k,y)};W(b,k=>{i(s)&&k(A)})}h(u),h(c),q(k=>{f.disabled=i(a),v.disabled=i(a),m.disabled=k,z(S,i(a)?"Connecting…":"Connect"),g.disabled=i(a)},[()=>i(a)||!i(n).trim()]),Ue("submit",d,k=>{k.preventDefault(),o()}),Te(f,()=>i(n),k=>w(n,k)),Te(v,()=>i(r),k=>w(r,k)),K("click",g,l),x(e,c),ie()}pe(["click"]);const Uc="sh3:identity";function RL(){const e=localStorage.getItem(Uc);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 Ed(e){localStorage.setItem(Uc,JSON.stringify(e))}function LL(){localStorage.removeItem(Uc)}const Ad={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(){LL(),location.reload()}})}},ML=typeof window<"u"&&("__TAURI_INTERNALS__"in window||"__TAURI__"in window),Ro=window.location.origin;async function Cd(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 Td(e){return new Promise(t=>{const n=document.getElementById("app"),r=We(TL,{target:n,props:{prefillUrl:e.prefillUrl,prefillLabel:e.prefillLabel,error:e.error,onResolved:s=>{tt(r),t(s)}}})})}async function PL(){if(!ML)return{identity:null,serverUrl:Ro};if(await Cd(Ro))return{identity:null,serverUrl:Ro};let e=RL();e?.mode==="remote"?await Cd(e.url)||(e=await Td({prefillUrl:e.url,prefillLabel:e.label,error:`Could not reach ${e.url}`}),Ed(e)):e||(e=await Td({prefillUrl:"",prefillLabel:"",error:null}),Ed(e));const t=e.mode==="remote"?e.url:"";return{identity:e,serverUrl:t}}async function DL(){const{identity:e,serverUrl:t}=await PL();if(e?.mode==="local"){Fu(new vh),await Sd({serverUrl:"",shards:[Ad]});return}qh(t),Fu(new Ix(t));let n=[];try{const r=await fetch(`${t}/api/packages`);r.ok&&(n=await r.json())}catch{}await Sd({discoveredPackages:n,serverUrl:t,remoteAuth:e?.mode==="remote",shards:e?[Ad]:[]})}DL();
|
|
21
|
-
//# sourceMappingURL=index--m0u3gjJ.js.map
|