sh3-server 0.19.6 → 0.20.1

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.
Files changed (43) hide show
  1. package/app/assets/{icons-nOyIoORC.svg → icons-OMmH0JiM.svg} +5 -0
  2. package/app/assets/index-CgB99H18.js +21 -0
  3. package/app/assets/index-CgB99H18.js.map +1 -0
  4. package/app/assets/index-D0Q9JGHo.css +1 -0
  5. package/app/index.html +2 -2
  6. package/dist/auth.d.ts +7 -11
  7. package/dist/auth.js +7 -19
  8. package/dist/cli.js +2 -2
  9. package/dist/doc-store/store.d.ts +6 -0
  10. package/dist/doc-store/store.js +108 -1
  11. package/dist/index.d.ts +5 -2
  12. package/dist/index.js +21 -12
  13. package/dist/middleware/project-allowlist.d.ts +4 -0
  14. package/dist/middleware/project-allowlist.js +26 -12
  15. package/dist/mounts/resolver.d.ts +21 -0
  16. package/dist/mounts/resolver.js +41 -0
  17. package/dist/mounts/routes.d.ts +4 -0
  18. package/dist/mounts/routes.js +136 -0
  19. package/dist/mounts/store.d.ts +30 -0
  20. package/dist/mounts/store.js +115 -0
  21. package/dist/routes/admin.d.ts +3 -1
  22. package/dist/routes/admin.js +6 -1
  23. package/dist/routes/boot.d.ts +7 -1
  24. package/dist/routes/boot.js +13 -4
  25. package/dist/routes/docs.js +27 -2
  26. package/dist/routes/projects.d.ts +1 -3
  27. package/dist/routes/projects.js +1 -3
  28. package/dist/scope.d.ts +1 -2
  29. package/dist/scope.js +1 -5
  30. package/dist/settings.d.ts +0 -1
  31. package/dist/settings.js +0 -4
  32. package/dist/shard-router.d.ts +1 -1
  33. package/dist/shard-router.js +23 -4
  34. package/dist/tenant-fs/http.d.ts +0 -2
  35. package/dist/tenant-fs/http.js +1 -1
  36. package/dist/tenant-fs/session-required.d.ts +1 -3
  37. package/dist/tenant-fs/session-required.js +1 -4
  38. package/dist/users.d.ts +14 -1
  39. package/dist/users.js +34 -0
  40. package/package.json +1 -1
  41. package/app/assets/index--m0u3gjJ.js +0 -21
  42. package/app/assets/index--m0u3gjJ.js.map +0 -1
  43. package/app/assets/index-DIpoXNrk.css +0 -1
@@ -0,0 +1,21 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/tauri-backend-CPdbYLHz.js","assets/index-BRw5Wfxx.js","assets/core-DsojzR6k.js"])))=>i.map(i=>d[i]);
2
+ (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const a of s)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(s){const a={};return s.integrity&&(a.integrity=s.integrity),s.referrerPolicy&&(a.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?a.credentials="include":s.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(s){if(s.ep)return;s.ep=!0;const a=n(s);fetch(s.href,a)}})();const Om="modulepreload",Nm=function(e){return"/"+e},ru={},Ri=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=Nm(c),c in ru)return;ru[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":Om,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)})},qm=1,Bm=2,qd=4,Fm=8,Vm=16,Um=1,Bd=4,Hm=8,Km=16,Wm=1,Ym=2,Xm=4,Nl=1,Fd=2,Gm=4,Jm=8,Li="[",Mi="[!",su="[?",Pi="]",_r={},Je=Symbol(),Ut=Symbol("filename"),Fr=Symbol("hmr"),Vd="http://www.w3.org/1999/xhtml",ca="http://www.w3.org/2000/svg",ql="http://www.w3.org/1998/Math/MathML",Ud="@attach",Hd=!1;var hs=Array.isArray,Zm=Array.prototype.indexOf,ns=Array.prototype.includes,Di=Array.from,ei=Object.keys,wr=Object.defineProperty,bn=Object.getOwnPropertyDescriptor,Kd=Object.getOwnPropertyDescriptors,Wd=Object.prototype,Qm=Array.prototype,ji=Object.getPrototypeOf,au=Object.isExtensible,$m=Object.prototype.hasOwnProperty;function Vr(e){return typeof e=="function"}const Mt=()=>{};function iu(e){return typeof e?.then=="function"}function eb(e){return e()}function Uo(e){for(var t=0;t<e.length;t++)e[t]()}function Yd(){var e,t,n=new Promise((r,s)=>{e=r,t=s});return{promise:n,resolve:e,reject:t}}function tb(e,t,n=!1){return e===void 0?n?t():t:e}function Xd(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 nb(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 ht=2,kr=4,ua=8,Bl=1<<24,gn=16,wn=32,Wn=64,Ho=128,an=512,it=1024,vt=2048,kn=4096,Et=8192,jt=16384,Jn=32768,Ko=1<<25,xn=65536,Hs=1<<17,Gd=1<<18,ar=1<<19,Jd=1<<20,Mn=1<<25,xr=65536,Wo=1<<21,rs=1<<22,nr=1<<23,yt=Symbol("$state"),zi=Symbol("legacy props"),rb=Symbol(""),sb=Symbol("proxy path"),ab=Symbol("hmr anchor"),Tn=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},Pr=!!globalThis.document?.contentType&&globalThis.document.contentType.includes("xml"),Zd=1,da=3,Zn=8,Qd=11;function $d(e){throw new Error("https://svelte.dev/e/experimental_async_required")}function ib(){throw new Error("https://svelte.dev/e/invalid_default_snippet")}function ou(){throw new Error("https://svelte.dev/e/invalid_snippet_arguments")}function ps(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function ob(){throw new Error("https://svelte.dev/e/missing_context")}function lb(){throw new Error("https://svelte.dev/e/snippet_without_render_tag")}function cb(e){throw new Error("https://svelte.dev/e/store_invalid_shape")}function ub(){throw new Error("https://svelte.dev/e/svelte_element_invalid_this_value")}function db(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function fb(e,t){throw new Error("https://svelte.dev/e/component_api_changed")}function vb(e,t){throw new Error("https://svelte.dev/e/component_api_invalid_new")}function hb(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function pb(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function mb(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function bb(e){throw new Error("https://svelte.dev/e/effect_orphan")}function gb(){throw new Error("https://svelte.dev/e/effect_pending_outside_reaction")}function yb(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function _b(){throw new Error("https://svelte.dev/e/fork_discarded")}function wb(){throw new Error("https://svelte.dev/e/fork_timing")}function kb(){throw new Error("https://svelte.dev/e/get_abort_signal_outside_reaction")}function xb(){throw new Error("https://svelte.dev/e/hydration_failed")}function ef(e){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}function Sb(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Ib(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Eb(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Ab(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Cb(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}function Tb(e,t){console.warn("https://svelte.dev/e/assignment_value_stale")}function Rb(e,t){console.warn("https://svelte.dev/e/binding_property_non_reactive")}function Lb(e){console.warn("https://svelte.dev/e/console_log_state")}function Mb(){console.warn("https://svelte.dev/e/derived_inert")}function Pb(e,t){console.warn("https://svelte.dev/e/event_handler_invalid")}function Db(e){console.warn("https://svelte.dev/e/hydratable_missing_but_expected")}function fa(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function jb(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_binding")}function zb(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_mutation")}function Ob(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function tf(e){console.warn("https://svelte.dev/e/state_proxy_equality_mismatch")}function Nb(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let de=!1;function Ye(e){de=e}let Ae;function Fe(e){if(e===null)throw fa(),_r;return Ae=e}function Tt(){return Fe(Wt(Ae))}function h(e){if(de){if(Wt(Ae)!==null)throw fa(),_r;Ae=e}}function qb(e){de&&(Ae=e.content)}function Ot(e=1){if(de){for(var t=e,n=Ae;t--;)n=Wt(n);Ae=n}}function Sr(e=!0){for(var t=0,n=Ae;;){if(n.nodeType===Zn){var r=n.data;if(r===Pi){if(t===0)return n;t-=1}else(r===Li||r===Mi||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var s=Wt(n);e&&n.remove(),n=s}}function Fl(e){if(!e||e.nodeType!==Zn)throw fa(),_r;return e.data}function nf(e){return e===this.v}function rf(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function sf(e){return!rf(e,this.v)}let Bb=!1;function Fb(e){console.warn("https://svelte.dev/e/dynamic_void_element_content")}const Vb=[];function Ir(e,t=!1,n=!1){return Ba(e,new Map,"",Vb,null,n)}function Ba(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(hs(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]=Ba(u,t,n,r,null,a))}return l}if(ji(e)===Wd){l={},t.set(e,l),s!==null&&t.set(s,l);for(var d of Object.keys(e))l[d]=Ba(e[d],t,n,r,null,a);return l}if(e instanceof Date)return structuredClone(e);if(typeof e.toJSON=="function"&&!a)return Ba(e.toJSON(),t,n,r,e)}if(e instanceof EventTarget)return e;try{return structuredClone(e)}catch{return e}}let Nr=null;function af(e,t){const n=e.v;if(n===Je)return;const r=Ub(e),s=je,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&&yt in n?Ir(n,!0):n),r==="$derived"){const c=new Set(e.deps);for(const u of c)af(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 Ub(e){return e.f&(ht|rs)?"$derived":e.label?.startsWith("$")?"store":"$state"}function Hb(e,t){var n=Nr;try{Nr={entries:new Map,reaction:je};var r=performance.now(),s=t(),a=(performance.now()-r).toFixed(2),o=Me(e);if(!ga())console.log(`${o} %cran outside of an effect (${a}ms)`,"color: grey");else if(Nr.entries.size===0)console.log(`${o} %cno reactive dependencies (${a}ms)`,"color: grey");else{console.group(`${o} %c(${a}ms)`,"color: grey");var l=Nr.entries;Me(()=>{for(const[c,u]of l)af(c,u)}),Nr=null,console.groupEnd()}return s}finally{Nr=n}}function Kb(e,t){return e.label=t,of(e.v,t),e}function of(e,t){return e?.[sb]?.(t),e}function Wb(e){const t=new Error,n=Yb();return n.length===0?null:(n.unshift(`
3
+ `),wr(t,"stack",{value:n.join(`
4
+ `)}),wr(t,"name",{value:e}),t)}function Yb(){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 qe=null;function ss(e){qe=e}let Fa=null;function Xb(e,t,n,r,s,a){const o=Fa;Fa={type:t,file:n[Ut],line:r,column:s,parent:o,...a};try{return e()}finally{Fa=o}}let Vl=null;function lu(e){Vl=e}function Gb(){const e={};return[()=>(lf(e)||ob(),Ul(e)),t=>Hl(e,t)]}function Ul(e){return Oi().get(e)}function Hl(e,t){return Oi().set(e,t),t}function lf(e){return Oi().has(e)}function Jb(){return Oi()}function le(e,t=!1,n){qe={p:qe,i:!1,c:null,e:null,s:e,x:null,r:Ce,l:null}}function ce(e){var t=qe,n=t.e;if(n!==null){t.e=null;for(var r of n)zf(r)}return e!==void 0&&(t.x=e),t.i=!0,qe=t.p,e??{}}function cf(){return!0}function Oi(e){return qe===null&&ps(),qe.c??=new Map(Zb(qe)||void 0)}function Zb(e){let t=e.p;for(;t!==null;){const n=t.c;if(n!==null)return n;t=t.p}return null}let dr=[];function uf(){var e=dr;dr=[],Uo(e)}function At(e){if(dr.length===0&&!Jr){var t=dr;queueMicrotask(()=>{t===dr&&uf()})}dr.push(e)}function Qb(){for(;dr.length>0;)uf()}function df(e){var t=Ce;if(t===null)return je.f|=nr,e;if(!(t.f&Jn)&&!(t.f&kr))throw e;Pn(e,t)}function Pn(e,t){for(;t!==null;){if(t.f&Ho){if(!(t.f&Jn))throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const $b=-7169;function $e(e,t){e.f=e.f&$b|t}function Kl(e){e.f&an||e.deps===null?$e(e,it):$e(e,kn)}function ff(e){if(e!==null)for(const t of e)!(t.f&ht)||!(t.f&xr)||(t.f^=xr,ff(t.deps))}function vf(e,t,n){e.f&vt?t.add(e):e.f&kn&&n.add(e),ff(e.deps),$e(e,it)}function hf(e,t,n){if(e==null)return t(void 0),Mt;const r=Me(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}function eg(e){let t;return hf(e,n=>t=n)(),t}let Yo=!1,Ls=!1,Xo=Symbol();function tg(e,t,n){const r=n[t]??={store:null,source:Bi(void 0),unsubscribe:Mt};if(r.store!==e&&!(Xo in n))if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=Mt;else{var s=!0;r.unsubscribe=hf(e,a=>{s?r.source.v=a:b(r.source,a)}),s=!1}return e&&Xo in n?eg(e):i(r.source)}function ng(e,t,n){let r=n[t];return r&&r.store!==e&&(r.unsubscribe(),r.unsubscribe=Mt),e}function pf(e,t){return Ni(e,t),t}function rg(e,t){var n=e[t];n.store!==null&&pf(n.store,n.source.v)}function sg(){const e={};function t(){Gt(()=>{for(var n in e)e[n].unsubscribe();wr(e,Xo,{enumerable:!1,value:!0})})}return[e,t]}function Ni(e,t){Yo=!0;try{e.set(t)}finally{Yo=!1}}function ag(e,t,n){return Ni(e,n),t}function ig(e,t,n=1){return Ni(e,t+n),t}function og(e,t,n=1){const r=t+n;return Ni(e,r),r}function lg(){Ls=!0}function mf(e){var t=Ls;try{return Ls=!1,[e(),Ls]}finally{Ls=t}}const qn=new Set;let Re=null,It=null,Go=null,Jr=!1,_o=!1,Wr=null,Va=null;var cu=0;let cg=1;class cn{id=cg++;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)$e(s,vt),n(s);for(s of r.m)$e(s,kn),n(s)}this.#f.add(t)}#p(){if(cu++>1e3&&(qn.delete(this),ug()),!this.#d()){for(const l of this.#l)this.#u.delete(l),$e(l,vt),this.schedule(l);for(const l of this.#u)$e(l,kn),this.schedule(l)}const t=this.#a;this.#a=[],this.apply();var n=Wr=[],r=[],s=Va=[];for(const l of t)try{this.#b(l,n,r)}catch(c){throw _f(l),c}if(Re=null,s.length>0){var a=cn.ensure();for(const l of s)a.schedule(l)}if(Wr=null,Va=null,this.#d()||this.#g()){this.#m(r),this.#m(n);for(const[l,c]of this.#c)yf(l,c)}else{this.#s.size===0&&qn.delete(this),this.#l.clear(),this.#u.clear();for(const l of this.#e)l(this);this.#e.clear(),uu(r),uu(n),this.#i?.resolve()}var o=Re;if(this.#a.length>0){const l=o??=this;l.#a.push(...this.#a.filter(c=>!l.#a.includes(c)))}o!==null&&(qn.add(o),o.#p())}#b(t,n,r){t.f^=it;for(var s=t.first;s!==null;){var a=s.f,o=(a&(wn|Wn))!==0,l=o&&(a&it)!==0,c=l||(a&Et)!==0||this.#c.has(s);if(!c&&s.fn!==null){o?s.f^=it:a&kr?n.push(s):bs(s)&&(a&gn&&this.#u.add(s),Cr(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)vf(t[n],this.#l,this.#u)}capture(t,n,r=!1){t.v!==Je&&!this.previous.has(t)&&this.previous.set(t,t.v),t.f&nr||(this.current.set(t,[n,r]),It?.set(t,n)),this.is_fork||(t.v=n)}activate(){Re=this}deactivate(){Re=null,It=null}flush(){try{_o=!0,Re=this,this.#p()}finally{cu=0,Go=null,Wr=null,Va=null,_o=!1,Re=null,It=null,pr.clear()}}discard(){for(const t of this.#t)t(this);this.#t.clear(),this.#n.clear(),qn.delete(this)}register_created_effect(t){this.#o.push(t)}#y(){for(const d of qn){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&(gn|rs)?d.schedule(v):d.#m([v])});d.activate();var a=new Set,o=new Map;for(var l of n)bf(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&(jt|Et|Hs))&&Wl(f,c,o)&&(f.f&(rs|gn)?($e(f,vt),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 qn)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,At(()=>{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??=Yd()).promise}static ensure(){if(Re===null){const t=Re=new cn;_o||(qn.add(Re),Jr||At(()=>{Re===t&&t.flush()}))}return Re}apply(){{It=null;return}}schedule(t){if(Go=t,t.b?.is_pending&&t.f&(kr|ua|Bl)&&!(t.f&Jn)){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var r=n.f;if(Wr!==null&&n===Ce&&(je===null||!(je.f&ht))&&!Yo)return;if(r&(Wn|wn)){if(!(r&it))return;n.f^=it}}this.#a.push(n)}}function rr(e){var t=Jr;Jr=!0;try{var n;for(e&&(Re!==null&&!Re.is_fork&&Re.flush(),n=e());;){if(Qb(),Re===null)return n;Re.flush()}}finally{Jr=t}}function ug(){try{yb()}catch(e){Pn(e,Go)}}let Bn=null;function uu(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&(jt|Et))&&bs(r)&&(Bn=new Set,Cr(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Vf(r),Bn?.size>0)){pr.clear();for(const s of Bn){if(s.f&(jt|Et))continue;const a=[s];let o=s.parent;for(;o!==null;)Bn.has(o)&&(Bn.delete(o),a.push(o)),o=o.parent;for(let l=a.length-1;l>=0;l--){const c=a[l];c.f&(jt|Et)||Cr(c)}}Bn.clear()}}Bn=null}}function bf(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&ht?bf(s,t,n,r):a&(rs|gn)&&!(a&vt)&&Wl(s,t,r)&&($e(s,vt),Yl(s))}}function gf(e,t){if(e.reactions!==null)for(const n of e.reactions){const r=n.f;r&ht?gf(n,t):r&Hs&&($e(n,vt),t.add(n))}}function Wl(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(ns.call(t,s))return!0;if(s.f&ht&&Wl(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function Yl(e){Re.schedule(e)}let ti=[];function dg(){rr(()=>{const e=ti;ti=[];for(const t of e)Ar(t)})}function fg(e){var t=Nt(0),n=!0,r=void 0;return i(t),Nf(()=>{if(n){var s=It;try{It=null,r=e()}finally{It=s}return}ti.length===0&&At(dg),ti.push(t)}),n=!1,r}function yf(e,t){if(!(e.f&wn&&e.f&it)){e.f&vt?t.d.push(e):e.f&kn&&t.m.push(e),$e(e,it);for(var n=e.first;n!==null;)yf(n,t),n=n.next}}function _f(e){$e(e,it);for(var t=e.first;t!==null;)_f(t),t=t.next}function vg(e){$d(),Re!==null&&wb();var t=cn.ensure();t.is_fork=!0,It=new Map;var n=!1,r=t.settled();return rr(e),{commit:async()=>{if(n){await r;return}qn.has(t)||_b(),n=!0,t.is_fork=!1;for(var[s,[a]]of t.current)s.v=a,s.wv=ri();t.activate(),t.run_fork_commit_callbacks(),t.deactivate(),rr(()=>{var o=new Set;for(var l of t.current.keys())gf(l,o);Sg(o),Af()}),t.flush(),await r},discard:()=>{for(var s of t.current.keys())s.wv=ri();!n&&qn.has(t)&&t.discard()}}}function hg(e){let t=0,n=Nt(0),r;return()=>{ga()&&(i(n),nt(()=>(t===0&&(r=Me(()=>e(()=>Rn(n)))),t+=1,()=>{At(()=>{t-=1,t===0&&(r?.(),r=void 0,Rn(n))})})))}}var pg=xn|ar;function wf(e,t,n,r){new mg(e,t,n,r)}class mg{parent;is_pending=!1;transform_error;#e;#t=de?Ae: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=hg(()=>(this.#d=Nt(this.#u),()=>{this.#d=null}));constructor(t,n,r,s){this.#e=t,this.#n=n,this.#s=a=>{var o=Ce;o.b=this,o.f|=Ho,r(a)},this.parent=Ce.b,this.transform_error=s??this.parent?.transform_error??(a=>a),this.#r=On(()=>{if(de){const a=this.#t;Tt();const o=a.data===Mi;if(a.data.startsWith(su)){const c=JSON.parse(a.data.slice(su.length));this.#b(c)}else o?this.#m():this.#p()}else this.#y()},pg),de&&(this.#e=Ae)}#p(){try{this.#i=St(()=>this.#s(this.#e))}catch(t){this.error(t)}}#b(t){const n=this.#n.failed;n&&(this.#o=St(()=>{n(this.#e,()=>t,()=>()=>{})}))}#m(){const t=this.#n.pending;t&&(this.is_pending=!0,this.#a=St(()=>t(this.#e)),At(()=>{var n=this.#l=document.createDocumentFragment(),r=mt();n.append(r),this.#i=this.#w(()=>St(()=>this.#s(r))),this.#c===0&&(this.#e.before(n),this.#l=null,mr(this.#a,()=>{this.#a=null}),this.#_(Re))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#c=0,this.#u=0,this.#i=St(()=>{this.#s(this.#e)}),this.#c>0){var t=this.#l=document.createDocumentFragment();nc(this.#i,t);const n=this.#n.pending;this.#a=St(()=>n(this.#e))}else this.#_(Re)}catch(n){this.error(n)}}#_(t){this.is_pending=!1,t.transfer_effects(this.#h,this.#v)}defer_effect(t){vf(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=Ce,r=je,s=qe;wt(this.#r),qt(this.#r),ss(this.#r.ctx);try{return cn.ensure(),t()}catch(a){return df(a),null}finally{wt(n),qt(r),ss(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&&mr(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,At(()=>{this.#f=!1,this.#d&&jn(this.#d,this.#u)}))}get_effect_pending(){return this.#g(),i(this.#d)}error(t){if(!this.#n.onerror&&!this.#n.failed)throw t;Re?.is_fork?(this.#i&&Re.skip_effect(this.#i),this.#a&&Re.skip_effect(this.#a),this.#o&&Re.skip_effect(this.#o),Re.on_fork_commit(()=>{this.#x(t)})):this.#x(t)}#x(t){this.#i&&(ct(this.#i),this.#i=null),this.#a&&(ct(this.#a),this.#a=null),this.#o&&(ct(this.#o),this.#o=null),de&&(Fe(this.#t),Ot(),Fe(Sr()));var n=this.#n.onerror;let r=this.#n.failed;var s=!1,a=!1;const o=()=>{if(s){Nb();return}s=!0,a&&Cb(),this.#o!==null&&mr(this.#o,()=>{this.#o=null}),this.#w(()=>{this.#y()})},l=c=>{try{a=!0,n?.(c,o),a=!1}catch(u){Pn(u,this.#r&&this.#r.parent)}r&&(this.#o=this.#w(()=>{try{return St(()=>{var u=Ce;u.b=this,u.f|=Ho,r(this.#e,()=>c,()=>o)})}catch(u){return Pn(u,this.#r.parent),null}}))};At(()=>{var c;try{c=this.transform_error(t)}catch(u){Pn(u,this.#r&&this.#r.parent);return}c!==null&&typeof c=="object"&&typeof c.then=="function"?c.then(l,u=>Pn(u,this.#r&&this.#r.parent)):l(c)})}}function bg(){Ce===null&&gb();var e=Ce.b;return e===null?0:e.get_effect_pending()}function va(e,t,n,r){const s=pa;var a=e.filter(v=>!v.settled);if(n.length===0&&a.length===0){r(t.map(s));return}var o=Ce,l=qi(),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&jt||Pn(m,o)}Er()}if(n.length===0){c.then(()=>u(t.map(s)));return}var d=ha();function f(){Promise.all(n.map(v=>xf(v))).then(v=>u([...t.map(s),...v])).catch(v=>Pn(v,o)).finally(()=>d())}c?c.then(()=>{l(),f(),Er()}):f()}function kf(e,t){va(e,[],[],t)}function qi(){var e=Ce,t=je,n=qe,r=Re;return function(a=!0){wt(e),qt(t),ss(n),a&&!(e.f&jt)&&(r?.activate(),r?.apply())}}async function gg(e){var t=qi(),n=await e;return()=>(t(),n)}async function Jo(e){var t=Os;queueMicrotask(()=>{Os===t&&Ua(null)});var n=await e;return()=>(Ua(t),queueMicrotask(()=>{Os===t&&Ua(null)}),n)}async function*yg(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 Jo(t.next()))();if(s){n=!0;break}var r=Os;yield a,Ua(r)}}finally{if(!n&&t.return!==void 0)return(await Jo(t.return()))().value}}function Er(e=!0){wt(null),qt(null),ss(null),e&&Re?.deactivate()}function _g(e){const t=qi(),n=ha();var r=Ce,s=null;const a=u=>{s={error:u},Qo(r)||Pn(u,r)};var o=Promise.resolve(e[0]()).catch(a),l={promise:o,settled:!1},c=[l];o.finally(()=>{l.settled=!0,Er()});for(const u of e.slice(1)){o=o.then(()=>{if(t(),s)throw s.error;if(Qo(r))throw Tn;return u()}).catch(a);const d={promise:o,settled:!1};c.push(d),o.finally(()=>{d.settled=!0,Er()})}return o.then(()=>Promise.resolve()).finally(()=>n()),c}function wg(e){return Promise.all(e.map(t=>t.promise))}function ha(){var e=Ce,t=e.b,n=Re,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 Os=null;function Ua(e){Os=e}function pa(e){var t=ht|vt;return Ce!==null&&(Ce.f|=ar),{ctx:qe,deps:null,effects:null,equals:nf,f:t,fn:e,reactions:null,rv:0,v:Je,wv:0,parent:Ce,ac:null}}function xf(e,t,n){let r=Ce;r===null&&db();var s=void 0,a=Nt(Je),o=!je,l=new Map;return jg(()=>{var c=Ce,u=Yd();s=u.promise;try{Promise.resolve(e()).then(u.resolve,u.reject).finally(Er)}catch(m){u.reject(m),Er()}var d=Re;if(o){if(c.f&Jn)var f=ha();if(r.b.is_rendered())l.get(d)?.reject(Tn),l.delete(d);else{for(const m of l.values())m.reject(Tn);l.clear()}l.set(d,u)}const v=(m,S=void 0)=>{if(f){var y=S===Tn;f(y)}if(!(S===Tn||c.f&jt)){if(d.activate(),S)a.f|=nr,jn(a,S);else{a.f&nr&&(a.f^=nr),jn(a,m);for(const[_,E]of l){if(l.delete(_),_===d)break;E.reject(Tn)}}d.deactivate()}};u.promise.then(v,m=>v(null,m||"unknown"))}),Gt(()=>{for(const c of l.values())c.reject(Tn)}),new Promise(c=>{function u(d){function f(){d===s?c(a):u(s)}d.then(f,f)}u(s)})}function V(e){const t=pa(e);return Kf(t),t}function Xl(e){const t=pa(e);return t.equals=sf,t}function kg(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)ct(t[n])}}function Gl(e){var t,n=Ce,r=e.parent;if(!Yn&&r!==null&&r.f&(jt|Et))return Mb(),e.v;wt(r);try{e.f&=~xr,kg(e),t=Xf(e)}finally{wt(n)}return t}function Sf(e){var t=Gl(e);if(!e.equals(t)&&(e.wv=ri(),(!Re?.is_fork||e.deps===null)&&(Re!==null?Re.capture(e,t,!0):e.v=t,e.deps===null))){$e(e,it);return}Yn||(It!==null?(ga()||Re?.is_fork)&&It.set(e,t):Kl(e))}function xg(e){if(e.effects!==null)for(const t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(Tn),t.teardown=Mt,t.ac=null,Ws(t,0),ec(t))}function If(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&Cr(t)}let ni=new Set;const pr=new Map;function Sg(e){ni=e}let Ef=!1;function Nt(e,t){var n={f:0,v:e,reactions:null,equals:nf,rv:0,wv:0};return n}function B(e,t){const n=Nt(e);return Kf(n),n}function Bi(e,t=!1,n=!0){const r=Nt(e);return t||(r.equals=sf),r}function Ig(e,t){return b(e,Me(()=>i(e))),t}function b(e,t,n=!1){je!==null&&(!pn||je.f&Hs)&&cf()&&je.f&(ht|gn|rs|Hs)&&(on===null||!ns.call(on,e))&&Ab();let r=n?fe(t):t;return jn(e,r,Va)}function jn(e,t,n=null){if(!e.equals(t)){pr.set(e,Yn?t:e.v);var r=cn.ensure();if(r.capture(e,t),e.f&ht){const s=e;e.f&vt&&Gl(s),It===null&&Kl(s)}e.wv=ri(),Cf(e,vt,n),Ce!==null&&Ce.f&it&&!(Ce.f&(wn|Wn))&&(tn===null?Bg([e]):tn.push(e)),!r.is_fork&&ni.size>0&&!Ef&&Af()}return t}function Af(){Ef=!1;for(const e of ni)e.f&it&&$e(e,kn),bs(e)&&Cr(e);ni.clear()}function Ar(e,t=1){var n=i(e),r=t===1?n++:n--;return b(e,n),r}function Eg(e,t=1){var n=i(e);return b(e,t===1?++n:--n)}function Rn(e){b(e,e.v+1)}function Cf(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&vt)===0;if(c&&$e(o,t),l&ht){var u=o;It?.delete(u),l&xr||(l&an&&(o.f|=xr),Cf(u,kn,n))}else if(c){var d=o;l&gn&&Bn!==null&&Bn.add(d),n!==null?n.push(d):Yl(d)}}}function fe(e){if(typeof e!="object"||e===null||yt in e)return e;const t=ji(e);if(t!==Wd&&t!==Qm)return e;var n=new Map,r=hs(e),s=B(0),a=Vn,o=l=>{if(Vn===a)return l();var c=je,u=Vn;qt(null),vu(a);var d=l();return qt(c),vu(u),d};return r&&n.set("length",B(e.length)),new Proxy(e,{defineProperty(l,c,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&Ib();var d=n.get(c);return d===void 0?o(()=>{var f=B(u.value);return n.set(c,f),f}):b(d,u.value,!0),!0},deleteProperty(l,c){var u=n.get(c);if(u===void 0){if(c in l){const d=o(()=>B(Je));n.set(c,d),Rn(s)}}else b(u,Je),Rn(s);return!0},get(l,c,u){if(c===yt)return e;var d=n.get(c),f=c in l;if(d===void 0&&(!f||bn(l,c)?.writable)&&(d=o(()=>{var m=fe(f?l[c]:Je),S=B(m);return S}),n.set(c,d)),d!==void 0){var v=i(d);return v===Je?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!==Je)return{enumerable:!0,configurable:!0,value:v,writable:!0}}return u},has(l,c){if(c===yt)return!0;var u=n.get(c),d=u!==void 0&&u.v!==Je||Reflect.has(l,c);if(u!==void 0||Ce!==null&&(!d||bn(l,c)?.writable)){u===void 0&&(u=o(()=>{var v=d?fe(l[c]):Je,m=B(v);return m}),n.set(c,u));var f=i(u);if(f===Je)return!1}return d},set(l,c,u,d){var f=n.get(c),v=c in l;if(r&&c==="length")for(var m=u;m<f.v;m+=1){var S=n.get(m+"");S!==void 0?b(S,Je):m in l&&(S=o(()=>B(Je)),n.set(m+"",S))}if(f===void 0)(!v||bn(l,c)?.writable)&&(f=o(()=>B(void 0)),b(f,fe(u)),n.set(c,f));else{v=f.v!==Je;var y=o(()=>fe(u));b(f,y)}var _=Reflect.getOwnPropertyDescriptor(l,c);if(_?.set&&_.set.call(d,u),!v){if(r&&typeof c=="string"){var E=n.get("length"),x=Number(c);Number.isInteger(x)&&x>=E.v&&b(E,x+1)}Rn(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!==Je});for(var[u,d]of n)d.v!==Je&&!(u in l)&&c.push(u);return c},setPrototypeOf(){Eb()}})}function as(e){try{if(e!==null&&typeof e=="object"&&yt in e)return e[yt]}catch{}return e}function Tf(e,t){return Object.is(as(e),as(t))}function Ag(e,t,n=!0){try{e===t!=(as(e)===as(t))&&tf(n?"===":"!==")}catch{}return e===t===n}function Cg(e,t,n=!0){return e==t!=(as(e)==as(t))&&tf(),e==t===n}var Ks,Rf,Jl,Lf,Mf;function Zo(){if(Ks===void 0){Ks=window,Rf=document,Jl=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;Lf=bn(t,"firstChild").get,Mf=bn(t,"nextSibling").get,au(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),au(n)&&(n.__t=void 0)}}function mt(e=""){return document.createTextNode(e)}function Ze(e){return Lf.call(e)}function Wt(e){return Mf.call(e)}function p(e,t){if(!de)return Ze(e);var n=Ze(Ae);if(n===null)n=Ae.appendChild(mt());else if(t&&n.nodeType!==da){var r=mt();return n?.before(r),Fe(r),r}return t&&Fi(n),Fe(n),n}function ke(e,t=!1){if(!de){var n=Ze(e);return n instanceof Comment&&n.data===""?Wt(n):n}if(t){if(Ae?.nodeType!==da){var r=mt();return Ae?.before(r),Fe(r),r}Fi(Ae)}return Ae}function g(e,t=1,n=!1){let r=de?Ae:e;for(var s;t--;)s=r,r=Wt(r);if(!de)return r;if(n){if(r?.nodeType!==da){var a=mt();return r===null?s?.after(a):r.before(a),Fe(a),a}Fi(r)}return Fe(r),r}function Zl(e){e.textContent=""}function Pf(){return!1}function ir(e,t,n){let r=n?{is:n}:void 0;return document.createElementNS(t??Vd,e,r)}function Tg(){return document.createDocumentFragment()}function Df(e=""){return document.createComment(e)}function Rg(e,t,n=""){if(t.startsWith("xlink:")){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n);return}return e.setAttribute(t,n)}function Fi(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===da;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function ma(e,t){if(t){const n=document.body;e.autofocus=!0,At(()=>{document.activeElement===n&&e.focus()})}}function Ql(e){de&&Ze(e)!==null&&Zl(e)}let du=!1;function jf(){du||(du=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function Bt(e,t,n,r=!0){r&&n();for(var s of t)e.addEventListener(s,n);Gt(()=>{for(var a of t)e.removeEventListener(a,n)})}function or(e){var t=je,n=Ce;qt(null),wt(null);try{return e()}finally{qt(t),wt(n)}}function ba(e,t,n,r=n){e.addEventListener(t,()=>or(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),jf()}function $l(e){Ce===null&&(je===null&&bb(),mb()),Yn&&pb()}function Lg(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function Ft(e,t){var n=Ce;n!==null&&n.f&Et&&(e|=Et);var r={ctx:qe,deps:null,nodes:null,f:e|vt|an,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};Re?.register_created_effect(r);var s=r;if(e&kr)Wr!==null?Wr.push(r):cn.ensure().schedule(r);else if(t!==null){try{Cr(r)}catch(o){throw ct(r),o}s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&!(s.f&ar)&&(s=s.first,e&gn&&e&xn&&s!==null&&(s.f|=xn))}if(s!==null&&(s.parent=n,n!==null&&Lg(s,n),je!==null&&je.f&ht&&!(e&Wn))){var a=je;(a.effects??=[]).push(s)}return r}function ga(){return je!==null&&!pn}function Gt(e){const t=Ft(ua,null);return $e(t,it),t.teardown=e,t}function Pe(e){$l();var t=Ce.f,n=!je&&(t&wn)!==0&&(t&Jn)===0;if(n){var r=qe;(r.e??=[]).push(e)}else return zf(e)}function zf(e){return Ft(kr|Jd,e)}function Of(e){return $l(),Ft(ua|Jd,e)}function Nf(e){return Ft(Hs,e)}function ms(e){cn.ensure();const t=Ft(Wn|ar,e);return()=>{ct(t)}}function Mg(e){cn.ensure();const t=Ft(Wn|ar,e);return(n={})=>new Promise(r=>{n.outro?mr(t,()=>{ct(t),r(void 0)}):(ct(t),r(void 0))})}function Yt(e){return Ft(kr,e)}function Pg(e,t){var n=qe,r={effect:null,ran:!1,deps:e};n.l.$.push(r),r.effect=nt(()=>{if(e(),!r.ran){r.ran=!0;var s=Ce;try{wt(s.parent),Me(t)}finally{wt(s)}}})}function Dg(){var e=qe;nt(()=>{for(var t of e.l.$){t.deps();var n=t.effect;n.f&it&&n.deps!==null&&$e(n,kn),bs(n)&&Cr(n),t.ran=!1}})}function jg(e){return Ft(rs|ar,e)}function nt(e,t=0){return Ft(ua|t,e)}function N(e,t=[],n=[],r=[]){va(r,t,n,s=>{Ft(ua,()=>e(...s.map(i)))})}function zg(e,t=[],n=[],r=[]){if(n.length>0||r.length>0)var s=ha();va(r,t,n,a=>{Ft(kr,()=>e(...a.map(i))),s&&s()})}function On(e,t=0){var n=Ft(gn|t,e);return n}function qf(e,t=0){var n=Ft(Bl|t,e);return n}function St(e){return Ft(wn|ar,e)}function Bf(e){var t=e.teardown;if(t!==null){const n=Yn,r=je;fu(!0),qt(null);try{t.call(null)}finally{fu(n),qt(r)}}}function ec(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&or(()=>{s.abort(Tn)});var r=n.next;n.f&Wn?n.parent=null:ct(n,t),n=r}}function Og(e){for(var t=e.first;t!==null;){var n=t.next;t.f&wn||ct(t),t=n}}function ct(e,t=!0){var n=!1;(t||e.f&Gd)&&e.nodes!==null&&e.nodes.end!==null&&(Ff(e.nodes.start,e.nodes.end),n=!0),$e(e,Ko),ec(e,t&&!n),Ws(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const a of r)a.stop();Bf(e),e.f^=Ko,e.f|=jt;var s=e.parent;s!==null&&s.first!==null&&Vf(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Ff(e,t){for(;e!==null;){var n=e===t?null:Wt(e);e.remove(),e=n}}function Vf(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 mr(e,t,n=!0){var r=[];Uf(e,r,!0);var s=()=>{n&&ct(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||s();for(var l of r)l.out(o)}else s()}function Uf(e,t,n){if(!(e.f&Et)){e.f^=Et;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&Wn)){var o=(s.f&xn)!==0||(s.f&wn)!==0&&(e.f&gn)!==0;Uf(s,t,o?n:!1)}s=a}}}function tc(e){Hf(e,!0)}function Hf(e,t){if(e.f&Et){e.f^=Et,e.f&it||($e(e,vt),cn.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&xn)!==0||(n.f&wn)!==0;Hf(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 Qo(e=Ce){return(e.f&jt)!==0}function nc(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:Wt(n);t.append(n),n=s}}let Ur=null;function Ng(e){var t=Ur;try{if(Ur=new Set,Me(e),t!==null)for(var n of Ur)t.add(n);return Ur}finally{Ur=t}}function qg(e){for(var t of Ng(e))jn(t,t.v)}let Ha=!1,Yn=!1;function fu(e){Yn=e}let je=null,pn=!1;function qt(e){je=e}let Ce=null;function wt(e){Ce=e}let on=null;function Kf(e){je!==null&&(on===null?on=[e]:on.push(e))}let Lt=null,Vt=0,tn=null;function Bg(e){tn=e}let Wf=1,fr=0,Vn=fr;function vu(e){Vn=e}function ri(){return++Wf}function bs(e){var t=e.f;if(t&vt)return!0;if(t&ht&&(e.f&=~xr),t&kn){for(var n=e.deps,r=n.length,s=0;s<r;s++){var a=n[s];if(bs(a)&&Sf(a),a.wv>e.wv)return!0}t&an&&It===null&&$e(e,it)}return!1}function Yf(e,t,n=!0){var r=e.reactions;if(r!==null&&!(on!==null&&ns.call(on,e)))for(var s=0;s<r.length;s++){var a=r[s];a.f&ht?Yf(a,t,!1):t===a&&(n?$e(a,vt):a.f&it&&$e(a,kn),Yl(a))}}function Xf(e){var t=Lt,n=Vt,r=tn,s=je,a=on,o=qe,l=pn,c=Vn,u=e.f;Lt=null,Vt=0,tn=null,je=u&(wn|Wn)?null:e,on=null,ss(e.ctx),pn=!1,Vn=++fr,e.ac!==null&&(or(()=>{e.ac.abort(Tn)}),e.ac=null);try{e.f|=Wo;var d=e.fn,f=d();e.f|=Jn;var v=e.deps,m=Re?.is_fork;if(Lt!==null){var S;if(m||Ws(e,Vt),v!==null&&Vt>0)for(v.length=Vt+Lt.length,S=0;S<Lt.length;S++)v[Vt+S]=Lt[S];else e.deps=v=Lt;if(ga()&&e.f&an)for(S=Vt;S<v.length;S++)(v[S].reactions??=[]).push(e)}else!m&&v!==null&&Vt<v.length&&(Ws(e,Vt),v.length=Vt);if(cf()&&tn!==null&&!pn&&v!==null&&!(e.f&(ht|kn|vt)))for(S=0;S<tn.length;S++)Yf(tn[S],e);if(s!==null&&s!==e){if(fr++,s.deps!==null)for(let y=0;y<n;y+=1)s.deps[y].rv=fr;if(t!==null)for(const y of t)y.rv=fr;tn!==null&&(r===null?r=tn:r.push(...tn))}return e.f&nr&&(e.f^=nr),f}catch(y){return df(y)}finally{e.f^=Wo,Lt=t,Vt=n,tn=r,je=s,on=a,ss(o),pn=l,Vn=c}}function Fg(e,t){let n=t.reactions;if(n!==null){var r=Zm.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&ht&&(Lt===null||!ns.call(Lt,t))){var a=t;a.f&an&&(a.f^=an,a.f&=~xr),a.v!==Je&&Kl(a),xg(a),Ws(a,0)}}function Ws(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)Fg(e,n[r])}function Cr(e){var t=e.f;if(!(t&jt)){$e(e,it);var n=Ce,r=Ha;Ce=e,Ha=!0;try{t&(gn|Bl)?Og(e):ec(e),Bf(e);var s=Xf(e);e.teardown=typeof s=="function"?s:null,e.wv=Wf;var a;Hd&&Bb&&e.f&vt&&e.deps}finally{Ha=r,Ce=n}}}async function ya(){await Promise.resolve(),rr()}function Vg(){return cn.ensure().settled()}function i(e){var t=e.f,n=(t&ht)!==0;if(Ur?.add(e),je!==null&&!pn){var r=Ce!==null&&(Ce.f&jt)!==0;if(!r&&(on===null||!ns.call(on,e))){var s=je.deps;if(je.f&Wo)e.rv<fr&&(e.rv=fr,Lt===null&&s!==null&&s[Vt]===e?Vt++:Lt===null?Lt=[e]:Lt.push(e));else{(je.deps??=[]).push(e);var a=e.reactions;a===null?e.reactions=[je]:ns.call(a,je)||a.push(je)}}}if(Yn&&pr.has(e))return pr.get(e);if(n){var o=e;if(Yn){var l=o.v;return(!(o.f&it)&&o.reactions!==null||Jf(o))&&(l=Gl(o)),pr.set(o,l),l}var c=(o.f&an)===0&&!pn&&je!==null&&(Ha||(je.f&an)!==0),u=(o.f&Jn)===0;bs(o)&&(c&&(o.f|=an),Sf(o)),c&&!u&&(If(o),Gf(o))}if(It?.has(e))return It.get(e);if(e.f&nr)throw e.v;return e.v}function Gf(e){if(e.f|=an,e.deps!==null)for(const t of e.deps)(t.reactions??=[]).push(e),t.f&ht&&!(t.f&an)&&(If(t),Gf(t))}function Jf(e){if(e.v===Je)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(pr.has(t)||t.f&ht&&Jf(t))return!0;return!1}function Ug(e){return e&&i(e)}function Me(e){var t=pn;try{return pn=!0,e()}finally{pn=t}}function rc(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if(yt in e)si(e);else if(!Array.isArray(e))for(let t in e){const n=e[t];typeof n=="object"&&n&&yt in n&&si(n)}}}function si(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{si(e[r],t)}catch{}const n=ji(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){const r=Kd(n);for(let s in r){const a=r[s].get;if(a)try{a.call(e)}catch{}}}}}function Hg(e,t){if($d(),de){const n=window.__svelte?.h;if(n?.has(e))return n.get(e);Db()}return t()}const Ms=Symbol("events"),Zf=new Set,$o=new Set;function Kg(e){if(!de)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 Qf(e,t,n,r={}){function s(a){if(r.capture||el.call(t,a),!a.cancelBubble)return or(()=>n?.call(this,a))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?At(()=>{t.addEventListener(e,s,r)}):t.addEventListener(e,s,r),s}function He(e,t,n,r,s){var a={capture:r,passive:s},o=Qf(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&Gt(()=>{t.removeEventListener(e,o,a)})}function K(e,t,n){(t[Ms]??={})[e]=n}function ge(e){for(var t=0;t<e.length;t++)Zf.add(e[t]);for(var n of $o)n(e)}let hu=null;function el(e){var t=this,n=t.ownerDocument,r=e.type,s=e.composedPath?.()||[],a=s[0]||e.target;hu=e;var o=0,l=hu===e&&e[Ms];if(l){var c=s.indexOf(l);if(c!==-1&&(t===document||t===window)){e[Ms]=t;return}var u=s.indexOf(t);if(u===-1)return;c<=u&&(o=c)}if(a=s[o]||e.target,a!==t){wr(e,"currentTarget",{configurable:!0,get(){return a||n}});var d=je,f=Ce;qt(null),wt(null);try{for(var v,m=[];a!==null;){var S=a.assignedSlot||a.parentNode||a.host||null;try{var y=a[Ms]?.[r];y!=null&&(!a.disabled||e.target===a)&&y.call(a,e)}catch(_){v?m.push(_):v=_}if(e.cancelBubble||S===t||S===null)break;a=S}if(v){for(let _ of m)queueMicrotask(()=>{throw _});throw v}}finally{e[Ms]=t,delete e.currentTarget,qt(d),wt(f)}}}function Wg(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?.[Ut];s?`${u}${s[0]}${s[1]}`:`${u}`;const d=n[0]?.eventPhase<Event.BUBBLING_PHASE?"capture":"";if(n[0]?.type+d,Pb(),c)throw c}l?.apply(t,n)}const Yg=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function $f(e){return Yg?.createHTML(e)??e}function sc(e){var t=ir("template");return t.innerHTML=$f(e.replaceAll("<!>","<!---->")),t.content}const Xg=Pr?"template":"TEMPLATE",Gg=Pr?"script":"SCRIPT";function ut(e,t){var n=Ce;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function I(e,t){var n=(t&Nl)!==0,r=(t&Fd)!==0,s,a=!e.startsWith("<!>");return()=>{if(de)return ut(Ae,null),Ae;s===void 0&&(s=sc(a?e:"<!>"+e),n||(s=Ze(s)));var o=r||Jl?document.importNode(s,!0):s.cloneNode(!0);if(n){var l=Ze(o),c=o.lastChild;ut(l,c)}else ut(o,o);return o}}function ev(e,t,n="svg"){var r=!e.startsWith("<!>"),s=(t&Nl)!==0,a=`<${n}>${r?e:"<!>"+e}</${n}>`,o;return()=>{if(de)return ut(Ae,null),Ae;if(!o){var l=sc(a),c=Ze(l);if(s)for(o=document.createDocumentFragment();Ze(c);)o.appendChild(Ze(c));else o=Ze(c)}var u=o.cloneNode(!0);if(s){var d=Ze(u),f=u.lastChild;ut(d,f)}else ut(u,u);return u}}function ac(e,t){return ev(e,t,"svg")}function Jg(e,t){return ev(e,t,"math")}function tv(e,t){var n=Tg();for(var r of e){if(typeof r=="string"){n.append(mt(r));continue}if(r===void 0||r[0][0]==="/"){n.append(Df(r?r[0].slice(3):""));continue}const[l,c,...u]=r,d=l==="svg"?ca:l==="math"?ql:t;var s=ir(l,d,c?.is);for(var a in c)Rg(s,a,c[a]);if(u.length>0){var o=s.nodeName===Xg?s.content:s;o.append(tv(u,s.nodeName==="foreignObject"?void 0:d))}n.append(s)}return n}function Zg(e,t){var n=(t&Nl)!==0,r=(t&Fd)!==0,s;return()=>{if(de)return ut(Ae,null),Ae;if(s===void 0){const c=t&Gm?ca:t&Jm?ql:void 0;s=tv(e,c),n||(s=Ze(s))}var a=r||Jl?document.importNode(s,!0):s.cloneNode(!0);if(n){var o=Ze(a),l=a.lastChild;ut(o,l)}else ut(a,a);return a}}function Qg(e){return()=>$g(e())}function $g(e){if(de)return e;const t=e.nodeType===Qd,n=e.nodeName===Gg?[e]:e.querySelectorAll("script"),r=Ce;for(const a of n){const o=ir("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 yn(e=""){if(!de){var t=mt(e+"");return ut(t,t),t}var n=Ae;return n.nodeType!==da?(n.before(n=mt()),Fe(n)):Fi(n),ut(n,n),n}function Ue(){if(de)return ut(Ae,null),Ae;var e=document.createDocumentFragment(),t=document.createComment(""),n=mt();return e.append(t,n),ut(t,n),e}function k(e,t){if(de){var n=Ce;(!(n.f&Jn)||n.nodes.end===null)&&(n.nodes.end=Ae),Tt();return}e!==null&&e.before(t)}function ey(){if(de&&Ae&&Ae.nodeType===Zn&&Ae.textContent?.startsWith("$")){const e=Ae.textContent.substring(1);return Tt(),e}return(window.__svelte??={}).uid??=1,`c${window.__svelte.uid++}`}const ty=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function ny(e){return ty.includes(e)||e.toLowerCase()==="!doctype"}function ry(e){return e.endsWith("capture")&&e!=="gotpointercapture"&&e!=="lostpointercapture"}const sy=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function ay(e){return sy.includes(e)}const iy={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 oy(e){return e=e.toLowerCase(),iy[e]??e}const ly=["touchstart","touchmove"];function cy(e){return ly.includes(e)}const uy=["textarea","script","style","title"];function dy(e){return uy.includes(e)}function nv(e){return e?.replace(/\//g,"/​")}let ai=!0;function Yr(e){ai=e}function j(e,t){var n=t==null?"":typeof t=="object"?`${t}`:t;n!==(e.__t??=e.nodeValue)&&(e.__t=n,e.nodeValue=`${n}`)}function Qe(e,t){return sv(e,t)}function rv(e,t){Zo(),t.intro=t.intro??!1;const n=t.target,r=de,s=Ae;try{for(var a=Ze(n);a&&(a.nodeType!==Zn||a.data!==Li);)a=Wt(a);if(!a)throw _r;Ye(!0),Fe(a);const o=sv(e,{...t,anchor:a});return Ye(!1),o}catch(o){if(o instanceof Error&&o.message.split(`
6
+ `).some(l=>l.startsWith("https://svelte.dev/e/")))throw o;return o!==_r&&console.warn("Failed to hydrate: ",o),t.recover===!1&&xb(),Zo(),Zl(n),Ye(!1),Qe(e,t)}finally{Ye(r),Fe(s)}}const Pa=new Map;function sv(e,{target:t,anchor:n,props:r={},events:s,context:a,intro:o=!0,transformError:l}){Zo();var c=void 0,u=Mg(()=>{var d=n??t.appendChild(mt());wf(d,{pending:()=>{}},m=>{le({});var S=qe;if(a&&(S.c=a),s&&(r.$$events=s),de&&ut(m,null),ai=o,c=e(m,r)||{},ai=!0,de&&(Ce.nodes.end=Ae,Ae===null||Ae.nodeType!==Zn||Ae.data!==Pi))throw fa(),_r;ce()},l);var f=new Set,v=m=>{for(var S=0;S<m.length;S++){var y=m[S];if(!f.has(y)){f.add(y);var _=cy(y);for(const w of[t,document]){var E=Pa.get(w);E===void 0&&(E=new Map,Pa.set(w,E));var x=E.get(y);x===void 0?(w.addEventListener(y,el,{passive:_}),E.set(y,1)):E.set(y,x+1)}}}};return v(Di(Zf)),$o.add(v),()=>{for(var m of f)for(const _ of[t,document]){var S=Pa.get(_),y=S.get(m);--y==0?(_.removeEventListener(m,el),S.delete(m),S.size===0&&Pa.delete(_)):S.set(m,y)}$o.delete(v),d!==n&&d.parentNode?.removeChild(d)}});return tl.set(c,u),c}let tl=new WeakMap;function ot(e,t){const n=tl.get(e);return n?(tl.delete(e),n(t)):Promise.resolve()}function fy(e){const t=e();t&&ny(t)&&Fb()}function vy(e){const t=e();t&&!(typeof t=="string")&&ub()}function hy(e,t){e!=null&&typeof e.subscribe!="function"&&cb()}function av(e){return e.toString=()=>(lb(),""),e}class gs{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)tc(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&&(ct(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();nc(o,u),u.append(mt()),this.#n.set(a,{effect:o,fragment:u})}else ct(o);this.#s.delete(a),this.#t.delete(a)};this.#r||!r?(this.#s.add(a),mr(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)||(ct(s.effect),this.#n.delete(r))};ensure(t,n){var r=Re,s=Pf();if(n&&!this.#t.has(t)&&!this.#n.has(t))if(s){var a=document.createDocumentFragment(),o=mt();a.append(o),this.#n.set(t,{effect:St(()=>n(o)),fragment:a})}else this.#t.set(t,St(()=>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 de&&(this.anchor=Ae),this.#i(r)}}function Xt(e,t,...n){var r=new gs(e);On(()=>{const s=t()??null;r.ensure(s,s&&(a=>s(a,...n)))},xn)}function py(e,t){const n=(r,...s)=>{var a=Vl;lu(e);try{return t(r,...s)}finally{lu(a)}};return av(n),n}function my(e){return(t,...n)=>{var r=e(...n),s;if(de)s=Ae,Tt();else{var a=r.render().trim(),o=sc(a);s=Ze(o),t.before(s)}const l=r.setup?.(s);ut(s,s),typeof l=="function"&&Gt(l)}}function by(){return je===null&&kb(),(je.ac??=new AbortController).signal}function ic(e){qe===null&&ps(),Pe(()=>{const t=Me(e);if(typeof t=="function")return t})}function oc(e){qe===null&&ps(),ic(()=>()=>Me(e))}function gy(e,t,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(e,{detail:t,bubbles:n,cancelable:r})}function yy(){const e=qe;return e===null&&ps(),(t,n,r)=>{const s=e.s.$$events?.[t];if(s){const a=hs(s)?s.slice():[s],o=gy(t,n,r);for(const l of a)l.call(e.x,o);return!o.defaultPrevented}return!0}}function _y(e){qe===null&&ps(),qe.l===null&&ef(),iv(qe).b.push(e)}function wy(e){qe===null&&ps(),qe.l===null&&ef(),iv(qe).a.push(e)}function iv(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}const ov=Object.freeze(Object.defineProperty({__proto__:null,afterUpdate:wy,beforeUpdate:_y,createContext:Gb,createEventDispatcher:yy,createRawSnippet:my,flushSync:rr,fork:vg,getAbortSignal:by,getAllContexts:Jb,getContext:Ul,hasContext:lf,hydratable:Hg,hydrate:rv,mount:Qe,onDestroy:oc,onMount:ic,setContext:Hl,settled:Vg,tick:ya,unmount:ot,untrack:Me},Symbol.toStringTag,{value:"Module"}));function ky(){return Symbol(Ud)}function lv(e,t,n,r){return e!==t&&typeof t=="object"&&yt in t&&Tb(n,nv(r)),e}function xy(e,t,n,r,s){return lv(n==="="?e[t]=r:n==="&&="?e[t]&&=r():n==="||="?e[t]||=r():n==="??="?e[t]??=r():null,Me(()=>e[t]),t,s)}async function Sy(e,t,n,r,s){return lv(n==="="?e[t]=await r:n==="&&="?e[t]&&=await r():n==="||="?e[t]||=await r():n==="??="?e[t]??=await r():null,Me(()=>e[t]),t,s)}var pu=new Map;function Iy(e){var t=pu.get(e);if(t){for(const n of t)n.remove();pu.delete(e)}}function Ey(e,t,n){return(...r)=>{const s=e(...r);var a=de?s:s.nodeType===Qd?s.firstChild:s;return cv(a,t,n),s}}function Ay(e,t,n){e.__svelte_meta={parent:Fa,loc:{file:t,line:n[0],column:n[1]}},n[2]&&cv(e.firstChild,t,n[2])}function cv(e,t,n){for(var r=0,s=0;e&&r<n.length;){if(de&&e.nodeType===Zn){var a=e;a.data[0]===Li?s+=1:a.data[0]===Pi&&(s-=1)}s===0&&e.nodeType===Zd&&Ay(e,t,n[r++]),e=e.nextSibling}}function Cy(e){const t=Nt(e);function n(r,s){let a={},o={},l,c=!1,u=r;return On(()=>{if(a!==(a=i(t))){if(l){for(var d in o)delete o[d];ct(l)}l=St(()=>{u=u[ab]??u,c&&Yr(!1);var f=new.target?new a(u,s):a(u,s);f&&Object.defineProperties(o,Object.getOwnPropertyDescriptors(f)),c&&Yr(!0)}),Ce.nodes=l.nodes}},xn),c=!0,de&&(u=Ae),o}return n[Ut]=e[Ut],n[Fr]={fn:e,current:t,update:r=>{b(n[Fr].current,r[Fr].fn),r[Fr].current=n[Fr].current}},n}function Ty(e){const t=qe?.function,n=qe?.p?.function;return{mutation:(r,s,a,o,l)=>{const c=s[0];if(mu(e,c)||!n)return a;let u=e;for(let f=0;f<s.length-1;f++)if(u=u[s[f]],!u?.[yt])return a;const d=nv(`${t[Ut]}:${o}:${l}`);return zb(c,d,r,n[Ut]),a},binding:(r,s,a)=>{!mu(e,r)&&n&&a()?.[yt]&&jb(t[Ut],r,s[Ut],n[Ut])}}}function mu(e,t){const n=yt in e||zi in e;return!!bn(e,t)?.set||n&&t in e||!(t in e)}function Ry(e){e&&vb(e[Ut]??"a component",e.name)}function Ly(){const e=qe?.function;function t(n){fb(n,e[Ut])}return{$destroy:()=>t("$destroy()"),$on:()=>t("$on(...)"),$set:()=>t("$set(...)")}}function My(e,t,n=!1){$l();let r=!0,s=Je;Nf(()=>{try{var a=e()}catch(l){s=l;return}var o=Ir(a,!0,!0);Me(()=>{if(n){if(t(...o),!r){const l=Wb("$inspect(...)");l&&(console.groupCollapsed("stack trace"),console.log(l),console.groupEnd())}}else t(r?"init":"update",...o)}),r=!1}),nt(()=>{try{e()}catch{}s!==Je&&(console.error(s),s=Je)})}function Py(e,t=[],n=[],r){var s=de,a=null;if(s&&(Tt(),a=Sr(!1)),n.length===0&&t.every(c=>c.settled)){r(e),s&&Fe(a);return}const o=ha();if(s){var l=Ae;Fe(a)}va(t,[],n,c=>{s&&(Ye(!0),Fe(l));try{for(const u of c)i(u);r(e,...c)}finally{s&&Ye(!1),o()}})}function Dy(e,...t){(typeof e!="object"||!(e instanceof Node))&&ou();for(let n of t)typeof n!="function"&&ou()}const bu=0,gu=1,jy=2;function zy(e,t,n,r,s){de&&Tt();var a=Je,o=Nt(a),l=Nt(a),c=new gs(e);On(()=>{var u=Re;u.deactivate();var d=t();u.activate();var f=!1;let v=de&&iu(d)===(e.data===Mi);if(v&&(Fe(Sr()),Ye(!1)),iu(d)){var m=qi(),S=!1;const y=_=>{if(!f){S=!0,m(!1),cn.ensure(),de&&Ye(!1);try{_()}finally{Er(!1),Jr||rr()}}};d.then(_=>{y(()=>{jn(o,_),c.ensure(gu,r&&(E=>r(E,o)))})},_=>{y(()=>{if(jn(l,_),c.ensure(jy,s&&(E=>s(E,l))),!s)throw l.v})}),de?c.ensure(bu,n):At(()=>{S||y(()=>{c.ensure(bu,n)})})}else jn(o,d),c.ensure(gu,r&&(y=>r(y,o)));return v&&Ye(!0),()=>{f=!0}})}function H(e,t,n=!1){var r;de&&(r=Ae,Tt());var s=new gs(e),a=n?xn:0;function o(l,c){if(de){var u=Fl(r);if(l!==parseInt(u.substring(1))){var d=Sr();Fe(d),s.anchor=d,Ye(!1),s.ensure(l,c),Ye(!0);return}}s.ensure(l,c)}On(()=>{var l=!1;t((c,u=0)=>{l=!0,o(u,c)}),l||o(-1,null)},a)}const Oy=Symbol("NaN");function Ny(e,t,n){de&&Tt();var r=new gs(e);On(()=>{var s=t();s!==s&&(s=Oy),r.ensure(s,n)})}function qy(e,t){de&&Fe(Ze(e)),nt(()=>{var n=t();for(var r in n){var s=n[r];s?e.style.setProperty(r,s):e.style.removeProperty(r)}})}function bt(e,t){return t}function By(e,t,n){for(var r=[],s=t.length,a,o=t.length,l=0;l<s;l++){let f=t[l];mr(f,()=>{if(a){if(a.pending.delete(f),a.done.add(f),a.pending.size===0){var v=e.outrogroups;nl(e,Di(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;Zl(d),d.append(u),e.items.clear()}nl(e,t,!c)}else a={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(a)}function nl(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|=Mn;const o=document.createDocumentFragment();nc(a,o)}else ct(t[s],n)}}var yu;function xe(e,t,n,r,s,a=null){var o=e,l=new Map,c=(t&qd)!==0;if(c){var u=e;o=de?Fe(Ze(u)):u.appendChild(mt())}de&&Tt();var d=null,f=Xl(()=>{var w=n();return hs(w)?w:w==null?[]:Di(w)}),v,m=new Map,S=!0;function y(w){x.effect.f&jt||(x.pending.delete(w),x.fallback=d,Fy(x,v,o,t,r),d!==null&&(v.length===0?d.f&Mn?(d.f^=Mn,Ps(d,null,o)):tc(d):mr(d,()=>{d=null})))}function _(w){x.pending.delete(w)}var E=On(()=>{v=i(f);var w=v.length;let R=!1;if(de){var A=Fl(o)===Mi;A!==(w===0)&&(o=Sr(),Fe(o),Ye(!1),R=!0)}for(var D=new Set,L=Re,T=Pf(),C=0;C<w;C+=1){de&&Ae.nodeType===Zn&&Ae.data===Pi&&(o=Ae,R=!0,Ye(!1));var O=v[C],M=r(O,C),P=S?null:l.get(M);P?(P.v&&jn(P.v,O),P.i&&jn(P.i,C),T&&L.unskip_effect(P.e)):(P=Vy(l,S?o:yu??=mt(),O,M,C,s,t,n),S||(P.e.f|=Mn),l.set(M,P)),D.add(M)}if(w===0&&a&&!d&&(S?d=St(()=>a(o)):(d=St(()=>a(yu??=mt())),d.f|=Mn)),w>D.size&&hb(),de&&w>0&&Fe(Sr()),!S)if(m.set(L,D),T){for(const[q,F]of l)D.has(q)||L.skip_effect(F.e);L.oncommit(y),L.ondiscard(_)}else y(L);R&&Ye(!0),i(f)}),x={effect:E,items:l,pending:m,outrogroups:null,fallback:d};S=!1,de&&(o=Ae)}function As(e){for(;e!==null&&!(e.f&wn);)e=e.next;return e}function Fy(e,t,n,r,s){var a=(r&Fm)!==0,o=t.length,l=e.items,c=As(e.effect.first),u,d=null,f,v=[],m=[],S,y,_,E;if(a)for(E=0;E<o;E+=1)S=t[E],y=s(S,E),_=l.get(y).e,_.f&Mn||(_.nodes?.a?.measure(),(f??=new Set).add(_));for(E=0;E<o;E+=1){if(S=t[E],y=s(S,E),_=l.get(y).e,e.outrogroups!==null)for(const O of e.outrogroups)O.pending.delete(_),O.done.delete(_);if(_.f&Et&&(tc(_),a&&(_.nodes?.a?.unfix(),(f??=new Set).delete(_))),_.f&Mn)if(_.f^=Mn,_===c)Ps(_,null,n);else{var x=d?d.next:c;_===e.effect.last&&(e.effect.last=_.prev),_.prev&&(_.prev.next=_.next),_.next&&(_.next.prev=_.prev),$n(e,d,_),$n(e,_,x),Ps(_,x,n),d=_,v=[],m=[],c=As(d.next);continue}if(_!==c){if(u!==void 0&&u.has(_)){if(v.length<m.length){var w=m[0],R;d=w.prev;var A=v[0],D=v[v.length-1];for(R=0;R<v.length;R+=1)Ps(v[R],w,n);for(R=0;R<m.length;R+=1)u.delete(m[R]);$n(e,A.prev,D.next),$n(e,d,A),$n(e,D,w),c=w,d=D,E-=1,v=[],m=[]}else u.delete(_),Ps(_,c,n),$n(e,_.prev,_.next),$n(e,_,d===null?e.effect.first:d.next),$n(e,d,_),d=_;continue}for(v=[],m=[];c!==null&&c!==_;)(u??=new Set).add(c),m.push(c),c=As(c.next);if(c===null)continue}_.f&Mn||v.push(_),d=_,c=As(_.next)}if(e.outrogroups!==null){for(const O of e.outrogroups)O.pending.size===0&&(nl(e,Di(O.done)),e.outrogroups?.delete(O));e.outrogroups.size===0&&(e.outrogroups=null)}if(c!==null||u!==void 0){var L=[];if(u!==void 0)for(_ of u)_.f&Et||L.push(_);for(;c!==null;)!(c.f&Et)&&c!==e.fallback&&L.push(c),c=As(c.next);var T=L.length;if(T>0){var C=r&qd&&o===0?n:null;if(a){for(E=0;E<T;E+=1)L[E].nodes?.a?.measure();for(E=0;E<T;E+=1)L[E].nodes?.a?.fix()}By(e,L,C)}}a&&At(()=>{if(f!==void 0)for(_ of f)_.nodes?.a?.apply()})}function Vy(e,t,n,r,s,a,o,l){var c=o&qm?o&Vm?Nt(n):Bi(n,!1,!1):null,u=o&Bm?Nt(s):null;return{v:c,i:u,e:St(()=>(a(t,c??n,u??s,l),()=>{e.delete(r)}))}}function Ps(e,t,n){if(e.nodes)for(var r=e.nodes.start,s=e.nodes.end,a=t&&!(t.f&Mn)?t.nodes.start:n;r!==null;){var o=Wt(r);if(a.before(r),r===s)return;r=o}}function $n(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function Uy(e,t,n=!1,r=!1,s=!1,a=!1){var o=e,l="";if(n){var c=e;de&&(o=Fe(Ze(c)))}N(()=>{var u=Ce;if(l===(l=t()??"")){de&&Tt();return}if(n&&!de){u.nodes=null,c.innerHTML=l,l!==""&&ut(Ze(c),c.lastChild);return}if(u.nodes!==null&&(Ff(u.nodes.start,u.nodes.end),u.nodes=null),l!==""){if(de){Ae.data;for(var d=Tt(),f=d;d!==null&&(d.nodeType!==Zn||d.data!=="");)f=d,d=Wt(d);if(d===null)throw fa(),_r;ut(Ae,f),o=Fe(d);return}var v=r?ca:s?ql:void 0,m=ir(r?"svg":s?"math":"template",v);m.innerHTML=l;var S=r||s?m:m.content;if(ut(Ze(S),S.lastChild),r||s)for(;Ze(S);)o.before(Ze(S));else o.before(S)}})}function Hy(e,t,n,r,s){de&&Tt();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 Ky(e){const t={};e.children&&(t.default=!0);for(const n in e.$$slots)t[n]=!0;return t}function _a(e,t,n){var r;de&&(r=Ae,Tt());var s=new gs(e);On(()=>{var a=t()??null;if(de){var o=Fl(r),l=o===Li,c=a!==null;if(l!==c){var u=Sr();Fe(u),s.anchor=u,Ye(!1),s.ensure(a,a&&(d=>n(d,a))),Ye(!0);return}}s.ensure(a,a&&(d=>n(d,a)))},xn)}const Wy=()=>performance.now(),Ln={tick:e=>requestAnimationFrame(e),now:()=>Wy(),tasks:new Set};function uv(){const e=Ln.now();Ln.tasks.forEach(t=>{t.c(e)||(Ln.tasks.delete(t),t.f())}),Ln.tasks.size!==0&&Ln.tick(uv)}function Yy(e){let t;return Ln.tasks.size===0&&Ln.tick(uv),{promise:new Promise(n=>{Ln.tasks.add(t={c:e,f:n})}),abort(){Ln.tasks.delete(t)}}}function ii(e,t){or(()=>{e.dispatchEvent(new CustomEvent(t))})}function Xy(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 _u(e){const t={},n=e.split(";");for(const r of n){const[s,a]=r.split(":");if(!s||a===void 0)break;const o=Xy(s.trim());t[o]=a.trim()}return t}const Gy=e=>e;let dv=null;function wu(e){dv=e}function Jy(e,t,n){var r=dv??Ce,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=oi(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 Zy(e,t,n,r){var s=(e&Wm)!==0,a=(e&Ym)!==0,o=s&&a,l=(e&Xm)!==0,c=o?"both":s?"in":"out",u,d=t.inert,f=t.style.overflow,v,m;function S(){return or(()=>u??=n()(t,r?.()??{},{direction:c}))}var y={is_global:l,in(){if(t.inert=d,!s){m?.abort(),m?.reset?.();return}a||v?.abort(),v=oi(t,S(),m,1,()=>{ii(t,"introend"),v?.abort(),v=u=void 0,t.style.overflow=f})},out(w){if(!a){w?.(),u=void 0;return}t.inert=!0,m=oi(t,S(),v,0,()=>{ii(t,"outroend"),w?.()})},stop:()=>{v?.abort(),m?.abort()}},_=Ce;if((_.nodes.t??=[]).push(y),s&&ai){var E=l;if(!E){for(var x=_.parent;x&&x.f&xn;)for(;(x=x.parent)&&!(x.f&gn););E=!x||(x.f&Jn)!==0}E&&Yt(()=>{Me(()=>y.in())})}}function oi(e,t,n,r,s){var a=r===1;if(Vr(t)){var o,l=!1;return At(()=>{if(!l){var _=t({direction:a?"in":"out"});o=oi(e,_,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 ii(e,a?"introstart":"outrostart"),s(),{abort:Mt,deactivate:Mt,reset:Mt,t:()=>r};const{delay:c=0,css:u,tick:d,easing:f=Gy}=t;var v=[];if(a&&n===void 0&&(d&&d(0,1),u)){var m=_u(u(0,1));v.push(m,m)}var S=()=>1-r,y=e.animate(v,{duration:c,fill:"forwards"});return y.onfinish=()=>{y.cancel(),ii(e,a?"introstart":"outrostart");var _=n?.t()??1-r;n?.abort();var E=r-_,x=t.duration*Math.abs(E),w=[];if(x>0){var R=!1;if(u)for(var A=Math.ceil(x/16.666666666666668),D=0;D<=A;D+=1){var L=_+E*f(D/A),T=_u(u(L,1-L));w.push(T),R||=T.overflow==="hidden"}R&&(e.style.overflow="hidden"),S=()=>{var C=y.currentTime;return _+E*f(C/x)},d&&Yy(()=>{if(y.playState!=="running")return!1;var C=S();return d(C,1-C),!0})}y=e.animate(w,{duration:x,fill:"forwards"}),y.onfinish=()=>{S=()=>r,d?.(r,1-r),s()}},{abort:()=>{y&&(y.cancel(),y.effect=null,y.onfinish=Mt)},deactivate:()=>{s=Mt},reset:()=>{r===0&&d?.(1,0)},t:()=>S()}}function Qy(e,t,n,r,s,a){let o=de;de&&Tt();var l=null;de&&Ae.nodeType===Zd&&(l=Ae,Tt());var c=de?Ae:e,u=Ce,d=new gs(c,!1);On(()=>{const f=t()||null;var v=s?s():n||f==="svg"?ca:void 0;if(f===null){d.ensure(null,null),Yr(!0);return}return d.ensure(f,m=>{if(f){if(l=de?l:ir(f,v),ut(l,l),r){de&&dy(f)&&l.append(document.createComment(""));var S=de?Ze(l):l.appendChild(mt());de&&(S===null?Ye(!1):Fe(S)),wu(u),r(l,S),wu(null)}Ce.nodes.end=l,m.before(l)}de&&Fe(m)}),Yr(!0),()=>{f&&Yr(!1)}},xn),Gt(()=>{Yr(!0)}),o&&(Ye(!0),Fe(c))}function $y(e,t){let n=null,r=de;var s;if(de){n=Ae;for(var a=Ze(document.head);a!==null&&(a.nodeType!==Zn||a.data!==e);)a=Wt(a);if(a===null)Ye(!1);else{var o=Wt(a);a.remove(),Fe(o)}}de||(s=document.head.appendChild(mt()));try{On(()=>t(s),Gd|ar)}finally{r&&(Ye(!0),Fe(n))}}function e_(e,t){Yt(()=>{var n=e.getRootNode(),r=n.host?n:n.head??n.ownerDocument.head;if(!r.querySelector("#"+t.hash)){const s=ir("style");s.id=t.hash,s.textContent=t.code,r.appendChild(s)}})}function fv(e,t,n){Yt(()=>{var r=Me(()=>t(e,n?.())||{});if(n&&r?.update){var s=!1,a={};nt(()=>{var o=n();rc(o),s&&rf(a,o)&&(a=o,r.update(o))}),s=!0}if(r?.destroy)return()=>r.destroy()})}function lc(e,t){var n=void 0,r;qf(()=>{n!==(n=t())&&(r&&(ct(r),r=null),n&&(r=St(()=>{Yt(()=>n(e))})))})}const t_=/[&"<]/g;function n_(e,t){const n=String(e??""),r=t_;r.lastIndex=0;let s="",a=0;for(;r.test(n);){const o=r.lastIndex-1,l=n[o];s+=n.substring(a,o)+(l==="&"?"&amp;":l==='"'?"&quot;":"&lt;"),a=o+1}return s+n.substring(a)}function vv(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=vv(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function r_(){for(var e,t,n=0,r="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=vv(e))&&(r&&(r+=" "),r+=t);return r}const ku={translate:new Map([[!0,"yes"],[!1,"no"]])};function s_(e,t,n=!1){if(e==="hidden"&&t!=="until-found"&&(n=!0),t==null||!t&&n)return"";const r=$m.call(ku,e)&&ku[e].get(t)||t,s=n?'=""':`="${n_(r)}"`;return` ${e}${s}`}function hv(e){return typeof e=="object"?r_(e):e??""}const xu=[...`
7
+ \r\f \v\uFEFF`];function a_(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||xu.includes(r[o-1]))&&(l===r.length||xu.includes(r[l]))?r=(o===0?"":r.substring(0,o))+r.substring(l+1):o=l}}return r===""?null:r}function Su(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 wo(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function i_(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(wo)),s&&c.push(...Object.keys(s).map(wo));var u=0,d=-1;const y=e.length;for(var f=0;f<y;f++){var v=e[f];if(l?v==="/"&&e[f-1]==="*"&&(l=!1):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===y-1){if(d!==-1){var m=wo(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+=Su(r)),s&&(n+=Su(s,!0)),n=n.trim(),n===""?null:n}return e==null?null:String(e)}function _e(e,t,n,r,s,a){var o=e.__className;if(de||o!==n||o===void 0){var l=a_(n,r,a);(!de||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 ko(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 Ge(e,t,n,r){var s=e.__style;if(de||s!==t){var a=i_(t,r);(!de||a!==e.getAttribute("style"))&&(a==null?e.removeAttribute("style"):e.style.cssText=a),e.__style=t}else r&&(Array.isArray(r)?(ko(e,n?.[0],r[0]),ko(e,n?.[1],r[1],"important")):ko(e,n,r));return r}function Ys(e,t,n=!1){if(e.multiple){if(t==null)return;if(!hs(t))return Ob();for(var r of e.options)r.selected=t.includes(Ns(r));return}for(r of e.options){var s=Ns(r);if(Tf(s,t)){r.selected=!0;return}}(!n||t!==void 0)&&(e.selectedIndex=-1)}function cc(e){var t=new MutationObserver(()=>{Ys(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),Gt(()=>{t.disconnect()})}function Xs(e,t,n=t){var r=new WeakSet,s=!0;ba(e,"change",a=>{var o=a?"[selected]":":checked",l;if(e.multiple)l=[].map.call(e.querySelectorAll(o),Ns);else{var c=e.querySelector(o)??e.querySelector("option:not([disabled])");l=c&&Ns(c)}n(l),e.__value=l,Re!==null&&r.add(Re)}),Yt(()=>{var a=t();if(e===document.activeElement){var o=Re;if(r.has(o))return}if(Ys(e,a,s),s&&a===void 0){var l=e.querySelector(":checked");l!==null&&(a=Ns(l),n(a))}e.__value=a,s=!1}),cc(e)}function Ns(e){return"__value"in e?e.__value:e.value}const Hr=Symbol("class"),Kr=Symbol("style"),pv=Symbol("is custom element"),mv=Symbol("is html"),o_=Pr?"link":"LINK",l_=Pr?"input":"INPUT",c_=Pr?"option":"OPTION",u_=Pr?"select":"SELECT",d_=Pr?"progress":"PROGRESS";function Te(e){if(de){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute("value")){var r=e.value;oe(e,"value",null),e.value=r}if(e.hasAttribute("checked")){var s=e.checked;oe(e,"checked",null),e.checked=s}}};e.__on_r=n,At(n),jf()}}function Gs(e,t){var n=Vi(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==d_)||(e.value=t??"")}function wa(e,t){var n=Vi(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function uc(e,t){t?e.hasAttribute("selected")||e.setAttribute("selected",""):e.removeAttribute("selected")}function f_(e,t){const n=e.checked;e.defaultChecked=t,e.checked=n}function v_(e,t){const n=e.value;e.defaultValue=t,e.value=n}function oe(e,t,n,r){var s=Vi(e);de&&(s[t]=e.getAttribute(t),t==="src"||t==="srcset"||t==="href"&&e.nodeName===o_)||s[t]!==(s[t]=n)&&(t==="loading"&&(e[rb]=n),n==null?e.removeAttribute(t):typeof n!="string"&&dc(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function h_(e,t,n){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n)}function p_(e,t,n){var r=je,s=Ce;let a=de;de&&Ye(!1),qt(null),wt(null);try{t!=="style"&&(rl.has(e.getAttribute("is")||e.nodeName)||!customElements||customElements.get(e.getAttribute("is")||e.nodeName.toLowerCase())?dc(e).includes(t):n&&typeof n=="object")?e[t]=n:oe(e,t,n==null?n:String(n))}finally{qt(r),wt(s),a&&Ye(!0)}}function m_(e,t,n,r,s=!1,a=!1){if(de&&s&&e.nodeName===l_){var o=e,l=o.type==="checkbox"?"defaultChecked":"defaultValue";l in n||Te(o)}var c=Vi(e),u=c[pv],d=!c[mv];let f=de&&u;f&&Ye(!1);var v=t||{},m=e.nodeName===c_;for(var S in t)S in n||(n[S]=null);n.class?n.class=hv(n.class):(r||n[Hr])&&(n.class=null),n[Kr]&&(n.style??=null);var y=dc(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 _=e.namespaceURI==="http://www.w3.org/1999/xhtml";_e(e,_,T,r,t?.[Hr],n[Hr]),v[L]=T,v[Hr]=n[Hr];continue}if(L==="style"){Ge(e,T,t?.[Kr],n[Kr]),v[L]=T,v[Kr]=n[Kr];continue}var E=v[L];if(!(T===E&&!(T===void 0&&e.hasAttribute(L)))){v[L]=T;var x=L[0]+L[1];if(x!=="$$")if(x==="on"){const C={},O="$$"+L;let M=L.slice(2);var w=ay(M);if(ry(M)&&(M=M.slice(0,-7),C.capture=!0),!w&&E){if(T!=null)continue;e.removeEventListener(M,v[O],C),v[O]=null}if(w)K(M,e,T),ge([M]);else if(T!=null){let P=function(q){v[L].call(this,q)};var D=P;v[O]=Qf(M,e,P,C)}}else if(L==="style")oe(e,L,T);else if(L==="autofocus")ma(e,!!T);else if(!u&&(L==="__value"||L==="value"&&T!=null))e.value=e.__value=T;else if(L==="selected"&&m)uc(e,T);else{var R=L;d||(R=oy(R));var A=R==="defaultValue"||R==="defaultChecked";if(T==null&&!u&&!A)if(c[L]=null,R==="value"||R==="checked"){let C=e;const O=t===void 0;if(R==="value"){let M=C.defaultValue;C.removeAttribute(R),C.defaultValue=M,C.value=C.__value=O?M:null}else{let M=C.defaultChecked;C.removeAttribute(R),C.defaultChecked=M,C.checked=O?M:!1}}else e.removeAttribute(L);else A||y.includes(R)&&(u||typeof T!="string")?(e[R]=T,R in c&&(c[R]=Je)):typeof T!="function"&&oe(e,R,T)}}}return f&&Ye(!0),v}function b_(e,t,n=[],r=[],s=[],a,o=!1,l=!1){va(s,n,r,c=>{var u=void 0,d={},f=e.nodeName===u_,v=!1;if(qf(()=>{var S=t(...c.map(i)),y=m_(e,u,S,a,o,l);v&&f&&"value"in S&&Ys(e,S.value);for(let E of Object.getOwnPropertySymbols(d))S[E]||ct(d[E]);for(let E of Object.getOwnPropertySymbols(S)){var _=S[E];E.description===Ud&&(!u||_!==u[E])&&(d[E]&&ct(d[E]),d[E]=St(()=>lc(e,()=>_))),y[E]=_}u=y}),f){var m=e;Yt(()=>{Ys(m,u.value,!0),cc(m)})}v=!0})}function Vi(e){return e.__attributes??={[pv]:e.nodeName.includes("-"),[mv]:e.namespaceURI===Vd}}var rl=new Map;function dc(e){var t=e.getAttribute("is")||e.nodeName,n=rl.get(t);if(n)return n;rl.set(t,n=[]);for(var r,s=e,a=Element.prototype;a!==s;){r=Kd(s);for(var o in r)r[o].set&&n.push(o);s=ji(s)}return n}let xo=null;function bv(){if(xo===null){var e=ir("select");e.innerHTML=$f("<option><span>t</span></option>"),xo=e.firstChild?.firstChild?.nodeType===1}return xo}function g_(e,t){bv()&&lc(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 y_(e,t){var n=de;bv()||(Ye(!1),e.textContent="",e.append(Df("")));try{t()}finally{n&&(de?h(e):(Ye(!0),Fe(e)))}}function __(e){Bt(document,["focusin","focusout"],t=>{t&&t.type==="focusout"&&t.relatedTarget||e(document.activeElement)})}function De(e,t,n=t){var r=new WeakSet;ba(e,"input",async s=>{var a=s?e.defaultValue:e.value;if(a=Io(e)?Eo(a):a,n(a),Re!==null&&r.add(Re),await ya(),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))}}}),(de&&e.defaultValue!==e.value||Me(t)==null&&e.value)&&(n(Io(e)?Eo(e.value):e.value),Re!==null&&r.add(Re)),nt(()=>{var s=t();if(e===document.activeElement){var a=Re;if(r.has(a))return}Io(e)&&s===Eo(e.value)||e.type==="date"&&!s&&!e.value||s!==e.value&&(e.value=s??"")})}const So=new Set;function w_(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),ba(n,"change",()=>{var u=n.__value;a&&(u=Iu(o,u,n.checked)),s(u)},()=>s(a?[]:null)),nt(()=>{var u=r();if(de&&n.defaultChecked!==n.checked){l=!0;return}a?(u=u||[],n.checked=u.includes(n.__value)):n.checked=Tf(n.__value,u)}),Gt(()=>{var u=o.indexOf(n);u!==-1&&o.splice(u,1)}),So.has(o)||(So.add(o),At(()=>{o.sort((u,d)=>u.compareDocumentPosition(d)===4?-1:1),So.delete(o)})),At(()=>{if(l){var u;if(a)u=Iu(o,u,n.checked);else{var d=o.find(f=>f.checked);u=d?.__value}s(u)}})}function li(e,t,n=t){ba(e,"change",r=>{var s=r?e.defaultChecked:e.checked;n(s)}),(de&&e.defaultChecked!==e.checked||Me(t)==null)&&n(e.checked),nt(()=>{var r=t();e.checked=!!r})}function Iu(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 Io(e){var t=e.type;return t==="number"||t==="range"}function Eo(e){return e===""?null:+e}function k_(e,t,n=t){ba(e,"change",()=>{n(e.files)}),de&&e.files&&n(e.files),nt(()=>{e.files=t()})}function fc(e){for(var t=[],n=0;n<e.length;n+=1)t.push({start:e.start(n),end:e.end(n)});return t}function x_(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),nt(()=>{var o=Number(t());s!==o&&!isNaN(o)&&(e.currentTime=s=o)}),Gt(()=>{cancelAnimationFrame(r),e.removeEventListener("timeupdate",a)})}function S_(e,t){var n;Bt(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=fc(r),t(n))})}function I_(e,t){Bt(e,["loadedmetadata"],()=>t(fc(e.seekable)))}function E_(e,t){Bt(e,["timeupdate"],()=>t(fc(e.played)))}function A_(e,t){Bt(e,["seeking","seeked"],()=>t(e.seeking))}function C_(e,t){Bt(e,["timeupdate","ended"],()=>t(e.ended))}function T_(e,t){Bt(e,["loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","emptied"],()=>t(e.readyState))}function R_(e,t,n=t){Yt(()=>{var r=Number(t());r!==e.playbackRate&&!isNaN(r)&&(e.playbackRate=r)}),Yt(()=>{Bt(e,["ratechange"],()=>{n(e.playbackRate)})})}function L_(e,t,n=t){var r=t(),s=()=>{r!==e.paused&&n(r=e.paused)};Bt(e,["play","pause","canplay"],s,r==null),Yt(()=>{(r=!!t())!==e.paused&&(r?e.pause():e.play().catch(a=>{throw n(r=!0),a}))})}function M_(e,t,n=t){var r=()=>{n(e.volume)};t()==null&&r(),Bt(e,["volumechange"],r,!1),nt(()=>{var s=Number(t());s!==e.volume&&!isNaN(s)&&(e.volume=s)})}function P_(e,t,n=t){var r=()=>{n(e.muted)};t()==null&&r(),Bt(e,["volumechange"],r,!1),nt(()=>{var s=!!t();e.muted!==s&&(e.muted=s)})}function D_(e){Bt(window,["online","offline"],()=>{e(navigator.onLine)})}function j_(e,t,n){var r=bn(e,t);r&&r.set&&(e[t]=n,Gt(()=>{e[t]=null}))}class ka{#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){ka.entries.set(n.target,n);for(var r of this.#e.get(n.target)||[])r(n)}}))}}var z_=new ka({box:"content-box"}),gv=new ka({box:"border-box"}),O_=new ka({box:"device-pixel-content-box"});function N_(e,t,n){var r=t==="contentRect"||t==="contentBoxSize"?z_:t==="borderBoxSize"?gv:O_,s=r.observe(e,a=>n(a[t]));Gt(s)}function q_(e,t,n){var r=gv.observe(e,()=>n(e[t]));Yt(()=>(Me(()=>n(e[t])),r))}function Eu(e,t){return e===t||e?.[yt]===t}function We(e={},t,n,r){var s=qe.r,a=Ce;return Yt(()=>{var o,l;return nt(()=>{o=l,l=r?.()||[],Me(()=>{e!==n(...l)&&(t(e,...l),o&&Eu(n(...o),e)&&t(null,...o))})}),()=>{let c=a;for(;c!==s&&c.parent!==null&&c.parent.f&Ko;)c=c.parent;const u=()=>{l&&Eu(n(...l),e)&&t(null,...l)},d=c.teardown;c.teardown=()=>{u(),d?.()}}}),e}function B_(e,t,n,r=n){t.addEventListener("input",()=>{r(t[e])}),nt(()=>{var s=n();if(t[e]!==s)if(s==null){var a=t[e];r(a)}else t[e]=s+""})}function F_(e,t,n,r,s){var a=()=>{r(n[e])};n.addEventListener(t,a),s?nt(()=>{n[e]=s()}):a(),(n===document.body||n===window||n===document)&&Gt(()=>{n.removeEventListener(t,a)})}function V_(e,t){Bt(e,["focus","blur"],()=>{t(e===document.activeElement)})}function U_(e,t,n=t){var r=e==="x",s=()=>or(()=>{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;nt(()=>{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))}),Yt(s),Gt(()=>{removeEventListener("scroll",s)})}function H_(e,t){Bt(window,["resize"],()=>or(()=>t(window[e])))}function K_(e){return function(...t){var n=t[0];n.isTrusted&&e?.apply(this,t)}}function W_(e){return function(...t){var n=t[0];n.target===this&&e?.apply(this,t)}}function Y_(e){return function(...t){var n=t[0];return n.stopPropagation(),e?.apply(this,t)}}function X_(e){var t=!1;return function(...n){if(!t)return t=!0,e?.apply(this,n)}}function G_(e){return function(...t){var n=t[0];return n.stopImmediatePropagation(),e?.apply(this,t)}}function J_(e){return function(...t){var n=t[0];return n.preventDefault(),e?.apply(this,t)}}function Z_(e=!1){const t=qe,n=t.l.u;if(!n)return;let r=()=>rc(t.s);if(e){let s=0,a={};const o=pa(()=>{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&&Of(()=>{Au(t,r),Uo(n.b)}),Pe(()=>{const s=Me(()=>n.m.map(eb));return()=>{for(const a of s)typeof a=="function"&&a()}}),n.a.length&&Pe(()=>{Au(t,r),Uo(n.a)})}function Au(e,t){if(e.l.s)for(const n of e.l.s)i(n);t()}function Q_(e){var t=Nt(0);return function(){return arguments.length===1?(b(t,i(t)+1),arguments[0]):(i(t),e())}}function $_(e,t){var n=e.$$events?.[t.type],r=hs(n)?n.slice():n==null?[]:[n];for(var s of r)s.call(this,t)}function ew(e,t,n){e.$$events||={},e.$$events[t]||=[],e.$$events[t].push(n)}function tw(e){for(var t in e)t in this&&(this[t]=e[t])}function nw(e,t=1){const n=e();return e(n+t),n}function rw(e,t=1){const n=e()+t;return e(n),n}const sw={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 aw(e,t,n){return new Proxy({props:e,exclude:t},sw)}const iw={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=Ce;try{wt(e.parent_effect),e.special[t]=te({get[t](){return e.props[t]}},t,Bd)}finally{wt(r)}}return e.special[t](n),Ar(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),Ar(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 ow(e,t){return new Proxy({props:e,exclude:t,special:{},version:Nt(0),parent_effect:Ce},iw)}const lw={get(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(Vr(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];Vr(s)&&(s=s());const a=bn(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(Vr(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r){const s=bn(r,t);return s&&!s.configurable&&(s.configurable=!0),s}}},has(e,t){if(t===yt||t===zi)return!1;for(let n of e.props)if(Vr(n)&&(n=n()),n!=null&&t in n)return!0;return!1},ownKeys(e){const t=[];for(let n of e.props)if(Vr(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 xa(...e){return new Proxy({props:e},lw)}function te(e,t,n,r){var s=(n&Hm)!==0,a=(n&Km)!==0,o=r,l=!0,c=()=>(l&&(l=!1,o=a?Me(r):r),o);let u;if(s){var d=yt in e||zi in e;u=bn(e,t)?.set??(d&&t in e?x=>e[t]=x:void 0)}var f,v=!1;s?[f,v]=mf(()=>e[t]):f=e[t],f===void 0&&r!==void 0&&(f=c(),u&&(Sb(),u(f)));var m;if(m=()=>{var x=e[t];return x===void 0?c():(l=!0,x)},!(n&Bd))return m;if(u){var S=e.$$legacy;return function(x,w){return arguments.length>0?((!w||S||v)&&u(w?m():x),x):m()}}var y=!1,_=(n&Um?pa:Xl)(()=>(y=!1,m()));s&&i(_);var E=Ce;return function(x,w){if(arguments.length>0){const R=w?i(_):s?fe(x):x;return b(_,R),y=!0,o!==void 0&&(o=R),x}return Yn&&y||E.f&jt?_.v:i(_)}}function cw(e,t,n,r,s,a){kf(t,()=>{var o=!1;Vl?.[Ut],nt(()=>{if(!o){var[l,c]=mf(n);if(!c){var u=r(),d=!1,f=nt(()=>{d||l[u]});d=!0,f.deps===null&&(Rb(),o=!0)}}})})}function uw(e){return new dw(e)}class dw{#e;#t;constructor(t){var n=new Map,r=(a,o)=>{var l=Bi(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===zi?!0:(i(n.get(o)??r(o,Reflect.get(a,o))),Reflect.has(a,o))},set(a,o,l){return b(n.get(o)??r(o,l),l),Reflect.set(a,o,l)}});this.#t=(t.hydrate?rv:Qe)(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)&&rr(),this.#e=s.$$events;for(const a of Object.keys(this.#t))a==="$set"||a==="$destroy"||a==="$on"||wr(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=()=>{ot(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 yv;typeof HTMLElement=="function"&&(yv=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=ir("slot");s!=="default"&&(o.name=s),k(a,o)}};var e=t;if(await Promise.resolve(),!this.$$cn||this.$$c)return;const n={},r=fw(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]=Ka(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=uw({component:this.$$ctor,target:this.$$shadowRoot||this,props:{...this.$$d,$$slots:n,$$host:this}}),this.$$me=ms(()=>{nt(()=>{this.$$r=!0;for(const s of ei(this.$$c)){if(!this.$$p_d[s]?.reflect)continue;this.$$d[s]=this.$$c[s];const a=Ka(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]=Ka(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 ei(this.$$p_d).find(t=>this.$$p_d[t].attribute===e||!this.$$p_d[t].attribute&&t.toLowerCase()===e)||e}});function Ka(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 fw(e){const t={};return e.childNodes.forEach(n=>{t[n.slot||"default"]=!0}),t}function vw(e,t,n,r,s,a){let o=class extends yv{constructor(){super(e,n,s),this.$$p_d=t}static get observedAttributes(){return ei(t).map(l=>(t[l].attribute||l).toLowerCase())}};return ei(t).forEach(l=>{wr(o.prototype,l,{get(){return this.$$c&&l in this.$$c?this.$$c[l]:this.$$d[l]},set(c){c=Ka(l,c,t),this.$$d[l]=c;var u=this.$$c;if(u){var d=bn(u,l)?.get;d?u[l]=c:u.$set({[l]:c})}}})}),r.forEach(l=>{wr(o.prototype,l,{get(){return this.$$c?.[l]}})}),a&&(o=a(o)),e.element=o,o}function hw(e,...t){return Me(()=>{try{let n=!1;const r=[];for(const s of t)s&&typeof s=="object"&&yt in s?(r.push(Ir(s,!0)),n=!0):r.push(s);n&&(Lb(e),console.log("%c[snapshot]","color: grey",...r))}catch{}}),t}const _v=Object.freeze(Object.defineProperty({__proto__:null,CLASS:Hr,FILENAME:Ut,HMR:Fr,NAMESPACE_SVG:ca,STYLE:Kr,aborted:Qo,action:fv,get active_effect(){return Ce},add_legacy_event_listener:ew,add_locations:Ey,add_svelte_meta:Xb,animation:Jy,append:k,append_styles:e_,apply:Wg,assign:xy,assign_async:Sy,async:Py,async_derived:xf,attach:lc,attachment:ky,attr:s_,attribute_effect:b_,autofocus:ma,await:zy,bind_active_element:__,bind_buffered:S_,bind_checked:li,bind_content_editable:B_,bind_current_time:x_,bind_element_size:q_,bind_ended:C_,bind_files:k_,bind_focused:V_,bind_group:w_,bind_muted:P_,bind_online:D_,bind_paused:L_,bind_playback_rate:R_,bind_played:E_,bind_prop:j_,bind_property:F_,bind_ready_state:T_,bind_resize_observer:N_,bind_seekable:I_,bind_seeking:A_,bind_select_value:Xs,bind_this:We,bind_value:De,bind_volume:M_,bind_window_scroll:U_,bind_window_size:H_,boundary:wf,bubble_event:$_,check_target:Ry,child:p,cleanup_styles:Iy,clsx:hv,comment:Ue,component:_a,create_custom_element:vw,create_ownership_validator:Ty,css_props:qy,customizable_select:y_,deep_read:si,deep_read_state:rc,deferred_template_effect:zg,delegate:ge,delegated:K,derived:V,derived_safe_equal:Xl,get document(){return Rf},each:xe,eager:fg,effect:Yt,effect_root:ms,effect_tracking:ga,element:Qy,equals:Cg,event:He,exclude_from_object:nb,fallback:tb,first_child:ke,flush:rr,for_await_track_reactivity_loss:yg,from_html:I,from_mathml:Jg,from_svg:ac,from_tree:Zg,get:i,head:$y,hmr:Cy,html:Uy,hydrate_template:qb,if:H,index:bt,init:Z_,init_select:cc,inspect:My,invalid_default_snippet:ib,invalidate_inner_signals:qg,invalidate_store:rg,invoke_error_boundary:Pn,key:Ny,legacy_api:Ly,legacy_pre_effect:Pg,legacy_pre_effect_reset:Dg,legacy_rest_props:ow,log_if_contains_state:hw,mark_store_binding:lg,mutable_source:Bi,mutate:Ig,next:Ot,noop:Mt,once:X_,pending:bg,pop:ce,preventDefault:J_,prevent_snippet_stringification:av,prop:te,props_id:ey,proxy:fe,push:le,raf:Ln,reactive_import:Q_,remove_input_defaults:Te,remove_textarea_child:Ql,render_effect:nt,replay_events:Kg,reset:h,rest_props:aw,run:_g,run_after_blockers:kf,safe_get:Ug,sanitize_slots:Ky,save:gg,select_option:Ys,selectedcontent:g_,self:W_,set:b,set_attribute:oe,set_checked:wa,set_class:_e,set_custom_element_data:p_,set_default_checked:f_,set_default_value:v_,set_selected:uc,set_style:Ge,set_text:j,set_value:Gs,set_xlink_attribute:h_,setup_stores:sg,sibling:g,slot:Hy,snapshot:Ir,snippet:Xt,spread_props:xa,state:B,stopImmediatePropagation:G_,stopPropagation:Y_,store_get:tg,store_mutate:ag,store_set:pf,store_unsub:ng,strict_equals:Ag,tag:Kb,tag_proxy:of,template_effect:N,text:yn,tick:ya,to_array:Xd,trace:Hb,track_reactivity_loss:Jo,transition:Zy,trusted:K_,untrack:Me,update:Ar,update_legacy_props:tw,update_pre:Eg,update_pre_prop:rw,update_pre_store:og,update_prop:nw,update_store:ig,user_effect:Pe,user_pre_effect:Of,validate_binding:cw,validate_dynamic_element_tag:vy,validate_snippet_args:Dy,validate_store:hy,validate_void_dynamic_element:fy,wait:wg,get window(){return Ks},with_script:Qg,wrap_snippet:py},Symbol.toStringTag,{value:"Module"}));class sl{#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 Cu{#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 pw=["workspace","user"],Js="state:manage",Sn={ephemeral:new sl,session:new sl,workspace:new Cu("sh3:workspace:"),user:new Cu("sh3:user:")},Ao=new Map;let Co=!1;function mw(e,t,n){Ao.set(`${e}:${t}`,{zone:e,shardId:t,value:n}),!Co&&(Co=!0,queueMicrotask(()=>{Co=!1;for(const{zone:r,shardId:s,value:a}of Ao.values())Sn[r].write(s,a);Ao.clear()}))}function Ui(e,t){const n={};for(const r of Object.keys(t)){const s=t[r],o=Sn[r].read(e),l={...s,...o??{}},c=fe(l);n[r]=c,pw.includes(r)&&ms(()=>{let u=!0;Pe(()=>{const d=Ir(c);if(u){u=!1;return}mw(r,e,d)})})}return n}function To(e,t){Sn[e]=t}function bw(e,t){return Sn[e].read(t)}function al(e,t){Sn[e].delete(t)}const gw="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(gw);const yw=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function _w(e,t={}){const n=document.activeElement;function r(){return Array.from(e.querySelectorAll(yw))}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 ww=I('<div class="modal-frame svelte-2tcvcm" role="presentation"><div class="modal-box svelte-2tcvcm" role="dialog" aria-modal="true" tabindex="-1"><!></div></div>');function kw(e,t){le(t,!0);let n=te(t,"initialFocus",3,!0),r;Pe(()=>{if(r)return _w(r,{initialFocus:n()})});function s(c){t.onBackdropClick&&c.target===c.currentTarget&&t.onBackdropClick()}var a=ww(),o=p(a),l=p(o);_a(l,()=>t.Content,(c,u)=>{u(c,xa(()=>t.contentProps,{get close(){return t.close}}))}),h(o),We(o,c=>r=c,()=>r),h(a),N(()=>Ge(o,t.boxStyle)),K("click",a,s),k(e,a),ce()}ge(["click"]);const vc={};function xw(e,t){vc[e]=t}function Sw(e){delete vc[e]}function Hi(e){const t=vc[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 sr=fe(new Map),gt=fe({id:null}),is=fe({id:null});function Iw(){return is.id}function Zs(e){sr.set(e.manifest.id,e)}function ys(){return Array.from(sr.values()).map(e=>e.manifest)}function hc(){const e=gt.id;return e?sr.get(e)?.manifest??null:null}function In(e){return sr.get(e)}const qs=[],Zr=[];let Qs=null;function Ew(e){Qs=e}function Aw(e){if(!gt.id)throw new Error("pushNavEntry requires an active app");const t=Symbol("nav-entry");return Zr.push({id:t,label:e.label,onPop:e.onPop}),{remove(){const n=Zr.findIndex(r=>r.id===t);n>=0&&Zr.splice(n,1)}}}function wv(e){const t=Symbol("dismissable");return qs.push({id:t,dismiss:e}),{unregister(){const n=qs.findIndex(r=>r.id===t);n>=0&&qs.splice(n,1)}}}function kv(){Zr.length=0}function Cw(){if(qs.length>0){qs.pop().dismiss();return}if(Zr.length>0){Zr.pop().onPop();return}gt.id&&Qs&&Qs.returnToHome()}function Tw(){gt.id||is.id&&Qs&&Qs.launchApp(is.id)}const Kt=[];let ci=!1,$t=null;const Rw=.5;function xv(){const e=Hi("modal");if(Kt.length===0){$t&&($t.remove(),$t=null);return}$t||($t=document.createElement("div"),$t.className="sh3-modal-backdrop",$t.style.position="absolute",$t.style.inset="0",$t.style.pointerEvents="auto",$t.style.transition="background-color 120ms ease",$t.style.background=`rgba(0, 0, 0, ${Rw})`);const t=Kt[Kt.length-1].host;e.insertBefore($t,t)}function Sv(e){e.key==="Escape"&&Kt.length!==0&&(e.stopPropagation(),e.preventDefault(),Kt[Kt.length-1].handle.close())}function Lw(){ci||(ci=!0,document.addEventListener("keydown",Sv,!0))}function Mw(){Kt.length>0||ci&&(ci=!1,document.removeEventListener("keydown",Sv,!0))}function Iv(e){const t=Kt.indexOf(e);t<0||(Kt.splice(t,1),ot(e.frame),e.host.remove(),xv(),Mw())}function Pw(e,t,n){const r=Hi("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:()=>Iv(a)},l=wv(()=>o.close()),c=o.close;o.close=()=>{l.unregister(),c()};const u=Qe(kw,{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,Kt.push(a),xv(),Lw(),o}function Dw(){for(;Kt.length>0;)Iv(Kt[Kt.length-1])}const dn={open:Pw,closeAll:Dw},er=new Map;function Sa(e,t){const n=er.get(e);return!n||n.priority==="edge"&&t.priority==="normal"||t.priority===n.priority&&t.depth>n.depth?(er.set(e,t),!0):!1}function Tr(e,t){er.get(e)?.ownerId===t&&er.delete(e)}function Ev(e){return er.get(e)??null}function jw(e,t){return er.get(e)?.ownerId===t}let zw=0;function Ow(){return`sh3:gesture:${zw++}`}function Nw(e){let t=0,n=e;for(;n;)t++,n=n.parentElement;return t}function Tu(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 Ro(e,t){return e.length!==t.length?!1:e.every(n=>t.includes(n))}function qw(e){if(!e)return{register:()=>({enable(){},disable(){},destroy(){}}),destroy(){}};const t=[],n=new Map;function r(c){if(!c.isPrimary)return;const u=Tu(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||!Ro(f.modifiers??[],u))continue;const m=f.container??e;if(!m||!m.contains(c.target))continue;const S=Nw(m);if(!Sa(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 _={pointerId:c.pointerId,x:c.clientX,y:c.clientY,dx:0,dy:0};f.onStart(_),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||!Ro(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),Tr(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,y=Math.sqrt(v*v+m*m);f.onEnd({pointerId:c.pointerId,x:c.clientX,y:c.clientY,dx:v,dy:m,cancelled:!1,wasClick:y<S})}else f.onEnd({pointerId:c.pointerId,x:c.clientX,y:c.clientY,dx:v,dy:m,cancelled:!1})}function o(c){const u=n.get(c.pointerId);if(!u)return;n.delete(c.pointerId),Tr(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=Tu(c);for(const d of t){if(!d.enabled||d.destroyed||d.opts.type!=="scroll")continue;const f=d.opts;if(!Ro(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:Ow(),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 pc(e){let t=0,n=e;for(;n;)t++,n=n.parentElement;return t}const ui=24;function Fn(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 Bw=I('<div class="popup-frame svelte-mp81cl" role="menu" tabindex="-1"><!></div>');function Fw(e,t){le(t,!0);let n,r=B(-9999),s=B(-9999);Pe(()=>{if(!n)return;const l=n.getBoundingClientRect(),c=4,u=window.innerWidth,d=window.innerHeight;let f=t.anchorRect.bottom+c,v=t.anchorRect.left;if(v+l.width>u-c&&(v=Math.max(c,u-l.width-c)),f+l.height>d-c){const m=t.anchorRect.top-l.height-c;f=m>=c?m:Math.max(c,d-l.height-c)}b(r,f,!0),b(s,v,!0)});var a=Bw(),o=p(a);_a(o,()=>t.Content,(l,c)=>{c(l,xa(()=>t.contentProps,{get close(){return t.close}}))}),h(a),We(a,l=>n=l,()=>n),N(()=>Ge(a,`top: ${i(r)??""}px; left: ${i(s)??""}px;`)),k(e,a),ce()}function Vw(e){return e instanceof HTMLElement?e.getBoundingClientRect():new DOMRect(e.x,e.y,0,0)}let ln=null;function Av(e){if(!ln||Ev(e.pointerId))return;const t=e.target;t&&ln.host.contains(t)||ln.handle.close()}function Cv(e){ln&&e.key==="Escape"&&(e.stopPropagation(),e.preventDefault(),ln.handle.close())}function Uw(){document.addEventListener("pointerdown",Av,!0),document.addEventListener("keydown",Cv,!0)}function Hw(){document.removeEventListener("pointerdown",Av,!0),document.removeEventListener("keydown",Cv,!0)}function il(e){ln===e&&(ln=null,Hw(),ot(e.frame),e.host.remove())}function Kw(e,t,n){ln&&il(ln);const r=Hi("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=Vw(t.anchor),o={},l={close:()=>il(o)},c=wv(()=>l.close()),u=l.close;l.close=()=>{c.unregister(),u()};const d=Qe(Fw,{target:s,props:{Content:e,contentProps:n??{},anchorRect:a,close:l.close}});return o.host=s,o.frame=d,o.handle=l,ln=o,queueMicrotask(Uw),l}function Ww(){ln&&il(ln)}const ol={show:Kw,close:Ww};var Yw=I('<div role="status" aria-live="polite"><span class="toast-level svelte-12gwnj0"> </span> <span class="toast-message svelte-12gwnj0"> </span></div>');function Xw(e,t){var n=Yw(),r=p(n),s=p(r,!0);h(r);var a=g(r,2),o=p(a,!0);h(a),h(n),N(()=>{_e(n,1,`toast toast-${t.level??""}`,"svelte-12gwnj0"),j(s,t.level),j(o,t.message)}),K("click",n,function(...l){t.close?.apply(this,l)}),k(e,n)}ge(["click"]);const di=new Set;let Rt=null;function Gw(){if(Rt&&Rt.isConnected)return Rt;const e=Hi("toast");return Rt=document.createElement("div"),Rt.className="sh3-toast-stack",Rt.style.position="absolute",Rt.style.right="16px",Rt.style.bottom="16px",Rt.style.display="flex",Rt.style.flexDirection="column-reverse",Rt.style.gap="6px",Rt.style.pointerEvents="none",e.appendChild(Rt),Rt}function ll(e){di.has(e)&&(di.delete(e),e.timer!==null&&(clearTimeout(e.timer),e.timer=null),ot(e.instance),e.host.remove())}function Jw(e,t={}){const n=t.level??"info",r=t.duration??3e3,s=Gw(),a=document.createElement("div");a.className="sh3-toast-host",s.appendChild(a);const o={},l={close:()=>ll(o)},c=Qe(Xw,{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(()=>ll(o),r):null,di.add(o),l}function Zw(){for(const e of[...di])ll(e)}const Dn={notify:Jw,clear:Zw},Ru={w:120,h:80};function Ki(e){if(e.type==="slot")return{...Ru};if(e.type==="tabs")return{...Ru};const t=e.children.map(Ki);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 Lu=32,Mu={x:48,y:48};function Tv(e,t){if(e.length===0)return{...Mu};const n=e[e.length-1],r={x:n.position.x+Lu,y:n.position.y+Lu};return r.x+120>t.w||r.y+32>t.h?{...Mu}:r}let Pu=0;function Rv(){return Pu+=1,`float-${Date.now().toString(36)}-${Pu.toString(36)}`}function Qw(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 Lv(e){return e.type==="slot"?e.viewId==null:e.type==="tabs"?e.tabs.every(t=>t.viewId==null):e.children.every(Lv)}function $w(e){return e.closest("[data-sh3-overlay-host]")}const fi=new Map,mc=new Map,Mv=new Set;function e1(e){Mv.add(e)}function t1(e,t,n){if(fi.has(e))throw new Error(`View "${e}" is already registered`);fi.set(e,t),n!==void 0&&mc.set(e,n);for(const r of Mv)r(e,t)}function Pv(e){return fi.get(e)}function Du(e){return mc.get(e)}function Dv(e){fi.delete(e),mc.delete(e)}const os=new Map;function n1(e,t,n){const r=os.get(e);return r?(console.warn(`[sh3] verb "${e}" already registered by shard "${r.shardId}"; skipping registration from "${n}"`),!1):(os.set(e,{verb:t,shardId:n}),!0)}function vi(e){return os.get(e)?.verb}function jv(e){os.delete(e)}function bc(){return Array.from(os.values()).map(e=>e.verb).sort((e,t)=>e.name.localeCompare(t.name))}function zv(){return Array.from(os.values()).map(e=>({...e}))}function ls(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 gc(e,t){if(cl(e.docked,t))return{kind:"docked"};for(const n of e.floats)if(cl(n.content,t))return{kind:"float",floatId:n.id};return null}function cl(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(cl(n,t))return!0;return!1}function Wi(e,t){const n=ls(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 r1(e,t,n){const r=Math.max(0,Math.min(n,e.tabs.length));e.tabs.splice(r,0,t),e.activeTab=r}function s1(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 ju(e,t,n){const r=n==="left"||n==="right"?"horizontal":"vertical",s={type:"tabs",activeTab:0,tabs:[t]};return{type:"split",direction:r,sizes:[1,1],children:n==="left"||n==="top"?[s,e]:[e,s]}}function a1(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 ul(e,t,n,r){const s=cs(e,t);if(!s||Ov(e,t))return;if(t.length===0){const u=a1(s),d=ju(u,n,r),f=e;delete f.tabs,delete f.activeTab,delete f.slotId,delete f.viewId,delete f.direction,delete f.sizes,delete f.pinned,delete f.collapsed,delete f.children,Object.assign(f,d);return}const a=ju(s,n,r),o=t.slice(0,-1),l=t[t.length-1],c=cs(e,o);!c||c.type!=="split"||(c.children[l]=a)}function cs(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 Ov(e,t){if(t.length===0)return!1;const n=cs(e,t.slice(0,-1));return!n||n.type!=="split"?!1:n.fixed?.[t[t.length-1]]===!0}function Xr(e){let t=!0;for(;t;)t=Nv(e,null,0)}function Nv(e,t,n){if(e.type==="split"){let r=!1;for(let s=0;s<e.children.length;s++)Nv(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 Jt(e){return typeof e.label=="function"?e.label():e.label}const i1=["Ctrl","Alt","Shift","Meta"],zu={control:"Ctrl",ctrl:"Ctrl",alt:"Alt",option:"Alt",shift:"Shift",meta:"Meta",cmd:"Meta",command:"Meta",super:"Meta",win:"Meta"},o1=new Set(["Control","Alt","Shift","Meta"]);function qv(e){return e.length===1?e.toUpperCase():e}function yc(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 zu)r.add(zu[l]);else{if(s!==void 0)throw new Error(`Multiple keys in shortcut: "${e}"`);s=qv(o)}}if(s===void 0)throw new Error(`No key in shortcut: "${e}"`);return[...i1.filter(o=>r.has(o)),s].join("+")}function Bv(e,t){if(!e.toLowerCase().includes("mod"))return e;const n=e.split("+").map(r=>r.toLowerCase()==="mod"?t==="mac"?"Meta":"Ctrl":r);return yc(n.join("+"))}function l1(e){if(o1.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=qv(e.key);return[...t,n].join("+")}function c1(){return typeof navigator>"u"?"other":/Mac|iPhone|iPad|iPod/i.test(navigator.platform)?"mac":"other"}function Ia(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?null:yc(r)}return e.defaultShortcut?Bv(e.defaultShortcut,n):null}function u1(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?{shortcut:null,source:"disabled"}:{shortcut:yc(r),source:"user"}}return e.defaultShortcut?{shortcut:Bv(e.defaultShortcut,n),source:"default"}:{shortcut:null,source:"none"}}const Yi=["element","focus","view","app","home"];function $s(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 d1(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=Ia(r.action,t.bindings,t.platform);if(s)for(const a of _c(r.action.scope)){if(!$s(a,t,r.ownerShardId))continue;const o=Xi(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 f1(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 v1(e){return e instanceof Element?e.closest("[data-sh3-passthrough-modifiers]")!==null:!1}function h1(e){return/(?:^|\+)(?:Ctrl|Alt|Meta)\+/.test(e)}function p1(e){const t=d1(e.entries,e.state),n=new Map(e.entries.map(r=>[r.action.id,r]));for(const r of Yi){const s=t[r].get(e.shortcut);if(!s)continue;const a=n.get(s);if(a)return f1(e.target)&&!a.action.allowInInputs&&!(v1(e.target)&&h1(e.shortcut))?null:(e.runAction(s,{action:{id:a.action.id,label:Jt(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 Xi(e){return e==="home"?"home":e==="app"?"app":typeof e=="string"&&e.startsWith("view:")?"view":typeof e=="string"&&e.startsWith("focus:")?"focus":"element"}function _c(e){return Array.isArray(e)?e:[e]}function Fv(e){return e==="home"||e==="app"?null:typeof e=="string"?e:e.element}function Ea(e,t,n){const r=_c(e),s={};for(const a of r){const o=Xi(a);(s[o]??=[]).push(a)}for(const a of Yi){const o=s[a];if(o){for(const l of o)if($s(l,t,n))return l}}return null}function m1(e,t){return typeof e=="string"||typeof t=="string"?e===t:e.element===t.element}function Vv(e){return typeof e=="string"?e:`element:${e.element}`}function b1(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 Gr=new Map,Wa=new Map,dl=new Set,us=new Map;function Ou(e){const t=Wa.get(e);if(t)for(const n of t)n();for(const n of dl)n(e)}function g1(e,t){let n=us.get(e);n||(n=new Set,us.set(e,n)),n.add(t)}function y1(e,t){const n=us.get(e);n&&(n.delete(t),n.size===0&&us.delete(e))}function Uv(e,t,n){const r=Symbol();let s=Gr.get(e);s||(s=new Map,Gr.set(e,s)),s.set(r,t),Ou(e);const a=n?.scope?.slotId;let o=!1;const l=()=>{if(o)return;o=!0,a&&y1(a,l);const c=Gr.get(e);c&&c.delete(r)&&(c.size===0&&Gr.delete(e),Ou(e))};return a&&g1(a,l),l}function Dr(e){const t=Gr.get(e);return t?Array.from(t.values()):[]}function _1(){return Array.from(Gr.keys())}function Gi(e,t){let n=Wa.get(e);n||(n=new Set,Wa.set(e,n)),n.add(t);let r=!1;return()=>{r||(r=!0,n.delete(t),n.size===0&&Wa.delete(e))}}function w1(e){dl.add(e);let t=!1;return()=>{t||(t=!0,dl.delete(e))}}function k1(e){const t=us.get(e);if(!t)return;const n=Array.from(t);for(const r of n)r();us.delete(e)}const Un=new Map,Ya=new Set;function x1(e,t){for(const[n,r]of Un.entries()){if(r.viewId!==e||r.handle!==void 0)continue;const s={slotId:n,viewId:e,label:r.label,meta:r.meta,setDirty(a){Ji[n]=a},location(){return gc(Zt(),n)}};queueMicrotask(()=>{if(Un.has(n)&&r.handle===void 0&&(r.handle=t.mount(r.host,s),(r.handle?.closable||n.startsWith("float:"))&&(Zi[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)}})}}e1(x1);const Ji=fe({}),Zi=fe({});function S1(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",Vv(`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?Pv(t):void 0,c={slotId:e,viewId:t??"",label:n,meta:r,setDirty(u){Ji[e]=u},location(){return gc(Zt(),e)}};if(o.handle=l?.mount(s,c),(o.handle?.closable||e.startsWith("float:"))&&(Zi[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 wc(e,t,n,r){Ya.delete(e);let s=Un.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",Vv(`focus:${t}`))):(s.host.removeAttribute("data-sh3-view"),s.host.removeAttribute("data-sh3-scope"))):(s=S1(e,t,n,r),Un.set(e,s)),s.refcount++,s.host}function kc(e,t){const n=Un.get(e);if(n){if(n.refcount--,n.refcount>0){t&&n.host.parentNode===t&&n.host.remove();return}Ya.add(e),queueMicrotask(()=>{if(!Ya.has(e))return;Ya.delete(e);const r=Un.get(e);!r||r.refcount>0||(r.resizeObserver?.disconnect(),k1(e),r.handle?.unmount(),r.cancelPendingMount(),r.host.remove(),Un.delete(e),delete Ji[e],delete Zi[e])})}}function Lo(e){const t=Un.get(e);if(t)return{host:t.host,refcount:t.refcount}}function Hv(e){const t=fl.get(e);return t||Un.get(e)?.handle}function I1(e){return Ji[e]??!1}function E1(e){return fl.has(e)?!!fl.get(e).closable:Zi[e]??!1}const fl=new Map;function Kv(e){if(!e||typeof e!="object")return!1;const t=e.type;return t==="split"||t==="tabs"||t==="slot"}function A1(e){if(!e||typeof e!="object")return!1;const t=e;return Kv(t.docked)&&Array.isArray(t.floats)}function C1(e){return{docked:e,floats:[]}}function T1(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 R1(e,t){return t==="compact"&&e.variants.compact?e.variants.compact:e.variants.default}function Wv(e){if(Array.isArray(e))return e.map(T1);if(A1(e))return[{name:"default",variants:{default:e}}];if(Kv(e))return[{name:"default",variants:{default:C1(e)}}];throw new Error("normalizeInitialLayout: input is not a LayoutNode, LayoutTree, or LayoutPreset[]")}function L1(e){return e.coarsePointer&&e.noHover||e.width<720||e.coarsePointer&&e.dpr>=2&&e.width<1100?"compact":"desktop"}let Ds=B(null);const js=new Set;function Yv(){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(Ds)??L1({width:e,coarsePointer:n,noHover:r,dpr:s}),width:e,height:t,coarsePointer:n,noHover:r,dpr:s}}let hi=B(fe(Yv()));function zs(){const e=Yv(),t=i(hi).class;if(b(hi,e,!0),e.class!==t)for(const n of js)n(e)}typeof window<"u"&&(window.addEventListener("resize",zs),window.matchMedia("(pointer: coarse)").addEventListener("change",zs),window.matchMedia("(hover: none)").addEventListener("change",zs),typeof screen<"u"&&screen.orientation&&screen.orientation.addEventListener("change",zs));const mn={get current(){return i(hi)},subscribe(e){return js.add(e),()=>{js.delete(e)}},override(e){if(i(Ds)!==e){b(Ds,e,!0),zs();for(const t of js)t(i(hi))}},get pinned(){return i(Ds)},__reset(){b(Ds,null),js.clear()}};function Nu(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 xc(e){const t=Nu(e.docked);for(const n of e.floats)t.push(...Nu(n.content));return t}let pi=null;function M1(e){pi=e}function P1(){pi=null}function Sc(){if(!pi)throw new Error("presetManager: no app attached — bind an AppLayoutBlob first");return pi}function D1(){return Object.keys(Sc().presets)}function j1(){return Sc().activePreset}function z1(e){const t=Sc();if(!(e in t.presets))throw new Error(`presetManager.switch: unknown preset "${e}"`);t.activePreset=e}const O1={list:D1,active:j1,switch:z1};function Xv(){return{left:{open:!1,activeSlotId:null},right:{open:!1,activeSlotId:null},top:{open:!1,activeSlotId:null}}}const fn=fe(Xv());let mi=null;function Da(){mi&&mi(fn)}const Ht={get state(){return fn},open(e){fn[e].open=!0,Da()},close(e){fn[e].open=!1,Da()},toggle(e){fn[e].open=!fn[e].open,Da()},activate(e,t){fn[e].activeSlotId=t,Da()},__setWriteThrough(e){mi=e},__hydrate(e){for(const t of["left","right","top"])fn[t].open=e[t].open,fn[t].activeSlotId=e[t].activeSlotId},__reset(){mi=null;const e=Xv();for(const t of["left","right","top"])fn[t].open=e[t].open,fn[t].activeSlotId=e[t].activeSlotId}};al("workspace","__shell__");const N1={type:"slot",slotId:"sh3core.home",viewId:"sh3core:home"},vl=fe({docked:N1,floats:[]});let at=B(null),Aa=B("home");function q1(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 B1(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 F1(e){if(i(at))throw new Error(`Layout manager cannot attach app "${e.manifest.id}": app "${i(at).appId}" is still attached`);const t=`__sh3core__:app:${e.manifest.id}`,n=Wv(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=bw("workspace",t),a=q1(s);(a&&a.layoutVersion!==e.manifest.layoutVersion||s&&!a)&&al("workspace",t);const l=Ui(t,{workspace:r}).workspace;b(at,{appId:e.manifest.id,proxy:l,heldSlotIds:[]},!0),M1(l),V1(l)}function V1(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();Ht.__hydrate(r[t].compact),Ht.__setWriteThrough(s=>{const a=n();a[t].compact={left:{...s.left},right:{...s.right},top:{...s.top}}})}function U1(){if(!i(at))throw new Error("acquireAppSlotHolds: no app attached");if(i(at).heldSlotIds.length>0)return;const e=B1(i(at).proxy),t=xc(e);for(const{slotId:n,viewId:r,label:s,meta:a}of t)wc(n,r,s,a),i(at).heldSlotIds.push(n)}function H1(){if(!i(at))throw new Error("resetActivePresetToDefault: no app attached");const e=In(i(at).appId);if(!e)throw new Error(`resetActivePresetToDefault: attached app "${i(at).appId}" not in registry`);const t=Wv(e.initialLayout),n=i(at).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(at).heldSlotIds)kc(l);i(at).heldSlotIds=[];const a=structuredClone(s.variants.default);n.presets[n.activePreset].default=a;const o=xc(a);for(const{slotId:l,viewId:c,label:u,meta:d}of o)wc(l,c,u,d),i(at).heldSlotIds.push(l)}function Gv(){if(i(at)){P1(),Ht.__setWriteThrough(null),Ht.__hydrate({left:{open:!1,activeSlotId:null},right:{open:!1,activeSlotId:null},top:{open:!1,activeSlotId:null}});for(const e of i(at).heldSlotIds)kc(e);b(at,null)}}function Jv(){b(Aa,"home")}function qu(){if(!i(at))throw new Error("Cannot switchToApp: no app is attached");b(Aa,"app")}const Xa=V(()=>{if(i(Aa)==="app"&&i(at)){const e=i(at).proxy,t=e.activePreset,n=e.presets[t];if(!n)throw new Error(`AppLayoutBlob active preset "${t}" not found in presets map`);return R1({variants:n},mn.current.class)}return vl});function Zt(){return i(Xa)}function Qi(){return i(Aa)}const _t={get root(){return i(Xa).docked},get tree(){return i(Xa)},get floats(){return i(Xa).floats}};function K1(e){vl.docked=e,vl.floats=[],b(Aa,"home")}let Bs=B(fe({kind:"docked"}));const _n={get current(){return i(Bs)},setRoot(e){if(e.kind==="float"&&!_t.tree.floats.some(n=>n.id===e.floatId))throw new Error(`compactRootStore.setRoot: float id "${e.floatId}" is not in the active tree`);b(Bs,e,!0)},reset(){b(Bs,{kind:"docked"},!0)}};function Zv(){const e=i(Bs);if(e.kind==="docked")return _t.root;const t=_t.tree.floats.find(n=>n.id===e.floatId);return t?t.content:(b(Bs,{kind:"docked"},!0),_t.root)}class W1 extends Map{#e=new Map;#t=B(0);#n=B(0);#s=Vn||-1;constructor(t){if(super(),t){for(var[n,r]of t)super.set(n,r);this.#n.v=super.size}}#r(t){return Vn===this.#s?B(t):Nt(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),b(this.#n,super.size),Rn(l);else if(a!==n){Rn(s);var c=l.reactions===null?null:new Set(l.reactions),u=c===null||!s.reactions?.every(d=>c.has(d));u&&Rn(l)}return o}delete(t){var n=this.#e,r=n.get(t),s=super.delete(t);return r!==void 0&&(n.delete(t),b(r,-1)),s&&(b(this.#n,super.size),Rn(this.#t)),s}clear(){if(super.size!==0){super.clear();var t=this.#e;b(this.#n,0);for(var n of t.values())b(n,-1);Rn(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 hl=new W1;function ea(e,t){t?hl.set(e,!0):hl.delete(e)}function Y1(e){return hl.get(e)??!1}let X1=[],Ic=null,Ca=()=>({w:1600,h:900});const ta=new Set;function Ec(e,t){const n=Ki(e.content),r=Qw({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 G1(e,t){Ic=e,Ca=t;const n=t();for(const r of e)ta.has(r.id)||(Ec(r,n),ta.add(r.id));_n.reset()}function J1(){Ic=null,Ca=()=>({w:1600,h:900})}function jr(){return Ic??X1}const Ac=new Map;function Z1(e){return Ac.get(e)}const Hn=new Map;let Bu=0;function Q1(e){return Bu+=1,`float:${e}:${Bu}`}const Fu={w:600,h:400};function $1(e,t){return{w:Math.max(e.w,Math.min(Fu.w,t.w)),h:Math.max(e.h,Math.min(Fu.h,t.h))}}function ek(e,t={}){const n=jr(),r=Rv(),s=Q1(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=Ki(a),l=Ca(),c=t.size??$1(o,l),u=t.position??Tv(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=$w(t.anchor);f&&Ac.set(r,f)}return Ec(d,l),ta.add(r),n.push(d),mn.current.class==="compact"&&!t.dismissable&&_n.setRoot({kind:"float",floatId:r}),r}function tk(e){const t=jr(),n=Rv(),r=Ca(),s=e.position??Tv(t,r),a={id:n,content:e.content,position:s,size:e.size,title:e.title};return Ec(a,r),ta.add(n),t.push(a),mn.current.class==="compact"&&_n.setRoot({kind:"float",floatId:n}),n}function nk(e){const t=jr(),n=t.findIndex(s=>s.id===e);if(n<0)return;t.splice(n,1),Ac.delete(e),Hn.delete(e);const r=_n.current;r.kind==="float"&&r.floatId===e&&_n.reset(),ta.delete(e),ea(e,!1)}function rk(){return jr().slice()}function Qv(e){const t=jr(),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 $v(e){if(Hn.has(e))return;const t=jr().find(r=>r.id===e);if(!t)return;Hn.set(e,{position:{x:t.position.x,y:t.position.y},size:{w:t.size.w,h:t.size.h}}),ea(e,!0);const n=Ca();t.position.x=0,t.position.y=0,t.size.w=n.w,t.size.h=n.h,Qv(e)}function eh(e){const t=Hn.get(e);if(!t)return;const n=jr().find(r=>r.id===e);if(!n){Hn.delete(e),ea(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,Hn.delete(e),ea(e,!1)}function sk(e){Hn.has(e)?eh(e):$v(e)}function ak(e){Hn.has(e)&&(Hn.delete(e),ea(e,!1))}function ik(e){return Y1(e)}const Be={open:ek,openWithContent:tk,close:nk,list:rk,focus:Qv,maximize:$v,restore:eh,toggleMaximize:sk,unmaximize:ak,isMaximized:ik},ok=Object.freeze([".md",".txt",".json",".guml",".css",".js",".ts",".tsx",".jsx",".html",".svg",".csv",".yaml",".yml",".xml",".log",".ini",".toml"]);function lk(e){return e.kind?e.kind:e.extension&&ok.includes(e.extension.toLowerCase())?"text":"binary"}const Ga=[];function Vu(e){return Ga.push(e),()=>{const t=Ga.indexOf(e);t>=0&&Ga.splice(t,1)}}function ck(e,t=[]){return[...Ga,...t].filter(r=>{try{return r.appliesTo(e)}catch{return!1}}).sort((r,s)=>(s.priority??0)-(r.priority??0))[0]??null}var uk=I("<span> </span>"),dk=I('<div class="sh3-conflict-text-dual svelte-iwgja4"><div role="button" tabindex="0"><header class="sh3-conflict-text-head svelte-iwgja4"> </header> <pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre></div> <div role="button" tabindex="0"><header class="sh3-conflict-text-head svelte-iwgja4"> </header> <pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre></div></div> <details class="sh3-conflict-text-diff svelte-iwgja4"><summary> </summary> <pre class="svelte-iwgja4"><code></code></pre></details>',1),fk=I("<option> </option>"),vk=I("<button> </button>"),hk=I('<pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre>'),pk=I('<div class="sh3-conflict-text-tabs svelte-iwgja4"><div class="sh3-conflict-text-picker svelte-iwgja4"><label>Reference: <select class="svelte-iwgja4"></select></label></div> <div class="sh3-conflict-text-tablist svelte-iwgja4"></div> <!></div>'),mk=I('<div class="sh3-conflict-text svelte-iwgja4"><!></div>');function bk(e,t){le(t,!0);let n=B("");Pe(()=>{(!i(n)||!t.item.branches.find(m=>m.origin===i(n)))&&b(n,t.item.branches[0]?.origin??"local",!0)});const r=V(()=>t.item.branches.length===2),s=V(()=>i(r)?t.item.branches[0]:t.item.branches.find(m=>m.origin===i(n))??t.item.branches[0]),a=V(()=>i(r)?t.item.branches[1]:t.item.branches.find(m=>m.origin===t.selectedOrigin)??t.item.branches[1]??t.item.branches[0]);function o(m,S){const y=(m??"").split(/\r?\n/),_=(S??"").split(/\r?\n/),E=[],x=Math.max(y.length,_.length);for(let w=0;w<x;w++){const R=y[w],A=_[w];R===A?typeof R=="string"&&E.push({kind:"same",text:R}):(typeof R=="string"&&E.push({kind:"left",text:R}),typeof A=="string"&&E.push({kind:"right",text:A}))}return E}const l=V(()=>!i(s)||!i(a)?[]:o(i(s).content??"",i(a).content??"")),c=V(()=>i(l).filter(m=>m.kind!=="same").length);var u=mk(),d=p(u);{var f=m=>{var S=dk(),y=ke(S),_=p(y);let E;var x=p(_),w=p(x);h(x);var R=g(x,2),A=p(R),D=p(A,!0);h(A),h(R),h(_);var L=g(_,2);let T;var C=p(L),O=p(C);h(C);var M=g(C,2),P=p(M),q=p(P,!0);h(P),h(M),h(L),h(y);var F=g(y,2),W=p(F),$=p(W);h(W);var Z=g(W,2),Y=p(Z);xe(Y,21,()=>i(l),bt,(ee,X)=>{var Q=uk(),z=p(Q);h(Q),N(()=>{_e(Q,1,`diff-${i(X).kind}`,"svelte-iwgja4"),j(z,`${i(X).kind==="same"?" ":i(X).kind==="left"?"- ":"+ "}${i(X).text??""}
8
+ `)}),k(ee,Q)}),h(Y),h(Z),h(F),N(()=>{E=_e(_,1,"sh3-conflict-text-pane svelte-iwgja4",null,E,{selected:i(s).origin===t.selectedOrigin}),j(w,`${i(s).origin??""} · v${i(s).version??""}`),j(D,i(s).content??""),T=_e(L,1,"sh3-conflict-text-pane svelte-iwgja4",null,T,{selected:i(a).origin===t.selectedOrigin}),j(O,`${i(a).origin??""} · v${i(a).version??""}`),j(q,i(a).content??""),j($,`Line diff (${i(c)??""} difference${i(c)===1?"":"s"})`)}),K("click",_,()=>t.onSelect(i(s).origin)),K("keydown",_,ee=>{(ee.key==="Enter"||ee.key===" ")&&t.onSelect(i(s).origin)}),K("click",L,()=>t.onSelect(i(a).origin)),K("keydown",L,ee=>{(ee.key==="Enter"||ee.key===" ")&&t.onSelect(i(a).origin)}),k(m,S)},v=m=>{var S=pk(),y=p(S),_=p(y),E=g(p(_));xe(E,21,()=>t.item.branches,A=>A.origin,(A,D)=>{var L=fk(),T=p(L,!0);h(L);var C={};N(()=>{j(T,i(D).origin),C!==(C=i(D).origin)&&(L.value=(L.__value=i(D).origin)??"")}),k(A,L)}),h(E),h(_),h(y);var x=g(y,2);xe(x,21,()=>t.item.branches,A=>A.origin,(A,D)=>{var L=vk();let T;var C=p(L);h(L),N(()=>{T=_e(L,1,"sh3-conflict-text-tab svelte-iwgja4",null,T,{selected:i(D).origin===t.selectedOrigin}),j(C,`${i(D).origin??""} · v${i(D).version??""}`)}),K("click",L,()=>t.onSelect(i(D).origin)),k(A,L)}),h(x);var w=g(x,2);{var R=A=>{var D=hk(),L=p(D),T=p(L,!0);h(L),h(D),N(()=>j(T,i(a).content??"")),k(A,D)};H(w,A=>{i(a)&&A(R)})}h(S),Xs(E,()=>i(n),A=>b(n,A)),k(m,S)};H(d,m=>{i(r)&&i(s)&&i(a)?m(f):m(v,-1)})}h(u),k(e,u),ce()}ge(["click","keydown"]);var gk=I("· <code> </code>",1),yk=I('<li class="sh3-conflict-meta-li svelte-1nz3djn"><button type="button"><div class="sh3-conflict-meta-origin svelte-1nz3djn"> </div> <div class="sh3-conflict-meta-detail svelte-1nz3djn"> <!></div></button></li>'),_k=I('<div class="sh3-conflict-meta svelte-1nz3djn"><div class="sh3-conflict-meta-note svelte-1nz3djn">No preview available for this content. Pick the branch you want to keep.</div> <ul class="sh3-conflict-meta-list svelte-1nz3djn"></ul></div>');function wk(e,t){le(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=_k(),a=g(p(s),2);xe(a,21,()=>t.item.branches,o=>o.origin,(o,l)=>{var c=yk(),u=p(c);let d;var f=p(u),v=p(f,!0);h(f);var m=g(f,2),S=p(m),y=g(S);{var _=E=>{var x=gk(),w=g(ke(x)),R=p(w,!0);h(w),N(()=>j(R,i(l).hashPreview)),k(E,x)};H(y,E=>{i(l).hashPreview&&E(_)})}h(m),h(u),h(c),N((E,x)=>{d=_e(u,1,"sh3-conflict-meta-row svelte-1nz3djn",null,d,{selected:i(l).origin===t.selectedOrigin}),j(v,i(l).origin),j(S,`v${i(l).version??""} · ${E??""} · ${x??""} `)},[()=>r(i(l).at),()=>n(i(l).sizeBytes)]),K("click",u,()=>t.onSelect(i(l).origin)),k(o,c)}),h(a),h(s),k(e,s),ce()}ge(["click"]);const kk=1048576;function xk(e){return typeof e=="number"&&e>kk}const Sk={id:"sh3-core.text",priority:1,appliesTo:e=>lk(e)!=="text"?!1:!e.branches.some(t=>xk(t.sizeBytes)),mount(e,t){const n=Qe(bk,{target:e,props:t});return()=>{ot(n)}}},Ik={id:"sh3-core.meta",priority:0,appliesTo:()=>!0,mount(e,t){const n=Qe(wk,{target:e,props:t});return()=>{ot(n)}}};let Uu=!1;function Ek(){Uu||(Uu=!0,Vu(Sk),Vu(Ik))}var Ak=I('<div class="sh3-conflict-prompt svelte-1jvtzud"><h3 class="sh3-conflict-prompt-title svelte-1jvtzud"> </h3> <p class="sh3-conflict-prompt-intro svelte-1jvtzud">Pick one option for the whole batch, or resolve each conflict individually.</p> <div class="sh3-conflict-prompt-actions svelte-1jvtzud"><button type="button" class="sh3-conflict-prompt-primary svelte-1jvtzud">Overwrite with most recent</button> <button type="button" class="sh3-conflict-prompt-secondary svelte-1jvtzud">Resolve individually</button> <button type="button" class="sh3-conflict-prompt-cancel svelte-1jvtzud">Cancel</button></div></div>');function Ck(e,t){var n=Ak(),r=p(n),s=p(r);h(r);var a=g(r,4),o=p(a);ma(o,!0);var l=g(o,2),c=g(l,2);h(a),h(n),N(()=>j(s,`${t.count??""} conflict${t.count===1?"":"s"} to resolve`)),K("click",o,function(...u){t.onOverwriteMostRecent?.apply(this,u)}),K("click",l,function(...u){t.onResolveIndividually?.apply(this,u)}),K("click",c,function(...u){t.onCancel?.apply(this,u)}),k(e,n)}ge(["click"]);var Tk=I('<span class="sh3-conflict-detail-counter svelte-pw8iv6"> </span>'),Rk=I('<button type="button"><span><!></span> <span class="sh3-conflict-detail-rail-label svelte-pw8iv6"> </span></button>'),Lk=I('<aside class="sh3-conflict-detail-rail svelte-pw8iv6"></aside>'),Mk=I('<label class="sh3-conflict-detail-branch svelte-pw8iv6"><input type="radio"/> <span> </span></label>'),Pk=I('<div class="sh3-conflict-detail-branches svelte-pw8iv6"></div> <div class="sh3-conflict-detail-renderer svelte-pw8iv6"></div>',1),Dk=I('<div class="sh3-conflict-detail svelte-pw8iv6"><header class="sh3-conflict-detail-head svelte-pw8iv6"><h3 class="svelte-pw8iv6"> </h3> <!></header> <div class="sh3-conflict-detail-body svelte-pw8iv6"><!> <section class="sh3-conflict-detail-main svelte-pw8iv6"><!></section></div> <footer class="sh3-conflict-detail-foot svelte-pw8iv6"><div class="sh3-conflict-detail-nav svelte-pw8iv6"><button type="button" class="svelte-pw8iv6">← Prev</button> <button type="button" class="svelte-pw8iv6"> </button> <button type="button" class="svelte-pw8iv6">Next →</button></div> <div class="sh3-conflict-detail-actions svelte-pw8iv6"><button type="button" class="sh3-conflict-detail-cancel svelte-pw8iv6">Cancel</button> <button type="button" class="sh3-conflict-detail-done svelte-pw8iv6">Done</button></div></footer></div>');function jk(e,t){le(t,!0);const n=V(()=>t.items[t.currentIndex]),r=V(()=>i(n)?t.selections[i(n).id]??i(n).branches[0]?.origin??"":""),s=V(()=>i(n)?ck(i(n),t.contributed):null);let a=B(void 0),o=null;Pe(()=>{if(i(n),i(s),i(r),o&&(o(),o=null),!i(a)||!i(n)||!i(s))return;const W={item:i(n),selectedOrigin:i(r),onSelect:$=>t.onSelect(i(n).id,$)};return o=i(s).mount(i(a),W),()=>{o&&(o(),o=null)}});function l(){t.currentIndex>0&&t.onNavigate(t.currentIndex-1)}function c(){t.currentIndex<t.items.length-1&&t.onNavigate(t.currentIndex+1)}const u=V(()=>t.items.map(W=>t.skipped[W.id]?"skipped":t.selections[W.id]?"resolved":"pending"));var d=Dk(),f=p(d),v=p(f),m=p(v,!0);h(v);var S=g(v,2);{var y=W=>{var $=Tk(),Z=p($);h($),N(()=>j(Z,`${t.currentIndex+1} / ${t.items.length??""}`)),k(W,$)};H(S,W=>{t.items.length>1&&W(y)})}h(f);var _=g(f,2),E=p(_);{var x=W=>{var $=Lk();xe($,23,()=>t.items,Z=>Z.id,(Z,Y,ee)=>{var X=Rk();let Q;var z=p(X),U=p(z);{var G=ue=>{var be=yn("✓");k(ue,be)},J=ue=>{var be=yn("⟶");k(ue,be)},ie=ue=>{var be=yn("·");k(ue,be)};H(U,ue=>{i(u)[i(ee)]==="resolved"?ue(G):i(u)[i(ee)]==="skipped"?ue(J,1):ue(ie,-1)})}h(z);var ve=g(z,2),se=p(ve,!0);h(ve),h(X),N(()=>{Q=_e(X,1,"sh3-conflict-detail-rail-item svelte-pw8iv6",null,Q,{selected:i(ee)===t.currentIndex}),_e(z,1,`sh3-conflict-detail-rail-state ${i(u)[i(ee)]??""}`,"svelte-pw8iv6"),j(se,i(Y).label)}),K("click",X,()=>t.onNavigate(i(ee))),k(Z,X)}),h($),k(W,$)};H(E,W=>{t.items.length>1&&W(x)})}var w=g(E,2),R=p(w);{var A=W=>{var $=Pk(),Z=ke($);xe(Z,21,()=>i(n).branches,ee=>ee.origin,(ee,X)=>{var Q=Mk(),z=p(Q);Te(z);var U=g(z,2),G=p(U);h(U),h(Q),N(()=>{oe(z,"name",`branch-${i(n).id??""}`),Gs(z,i(X).origin),wa(z,i(r)===i(X).origin),j(G,`${i(X).origin??""} · v${i(X).version??""}`)}),K("change",z,()=>t.onSelect(i(n).id,i(X).origin)),k(ee,Q)}),h(Z);var Y=g(Z,2);We(Y,ee=>b(a,ee),()=>i(a)),k(W,$)};H(R,W=>{i(n)&&W(A)})}h(w),h(_);var D=g(_,2),L=p(D),T=p(L),C=g(T,2),O=p(C,!0);h(C);var M=g(C,2);h(L);var P=g(L,2),q=p(P),F=g(q,2);h(P),h(D),h(d),N(()=>{j(m,t.title),T.disabled=t.currentIndex===0,j(O,i(n)&&t.skipped[i(n).id]?"Unskip":"Skip"),M.disabled=t.currentIndex>=t.items.length-1}),K("click",T,l),K("click",C,()=>i(n)&&t.onToggleSkip(i(n).id)),K("click",M,c),K("click",q,function(...W){t.onCancel?.apply(this,W)}),K("click",F,function(...W){t.onDone?.apply(this,W)}),k(e,d),ce()}ge(["click","change"]);function th(e,t){return t.at-e.at}function zk(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(th)[0]}}function Ok(e,t){le(t,!0);const n=t.items.length>=2||t.requirePrompt;let r=B(fe(n?"prompt":"detail")),s=B(fe(Object.fromEntries(t.items.map(w=>{const R=zk(w.branches,t.mostRecentBy)?.origin??w.branches[0]?.origin??"";return[w.id,R]})))),a=B(fe({})),o=B(0),l=!1;oc(()=>{l||(l=!0,t.onCancel())});function c(){if(l)return;l=!0;const w=[],R=[];for(const A of t.items){if(i(a)[A.id]){R.push(A.id);continue}const D=i(s)[A.id],L=A.branches.find(T=>T.origin===D);L&&w.push({itemId:A.id,chosen:L,meta:A.meta})}t.onResolve(w,R),t.close()}function u(){l||(l=!0,t.onCancel(),t.close())}function d(){c()}function f(){b(r,"detail")}function v(w,R){if(b(s,{...i(s),[w]:R},!0),i(a)[w]){const A={...i(a)};delete A[w],b(a,A,!0)}}function m(w){b(a,{...i(a),[w]:!i(a)[w]},!0)}function S(w){b(o,w,!0)}var y=Ue(),_=ke(y);{var E=w=>{Ck(w,{get count(){return t.items.length},onOverwriteMostRecent:d,onResolveIndividually:f,onCancel:u})},x=w=>{jk(w,{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})};H(_,w=>{i(r)==="prompt"?w(E):w(x,-1)})}k(e,y),ce()}const nh="sh3-core.conflictRenderer";class rh extends Error{constructor(t){super(t),this.name="ConflictPermissionError"}}class Nk extends Error{constructor(){super("Caller shard deactivated while conflict session was active"),this.name="ConflictSessionOrphanedError"}}function qk(){try{return Dr(nh)}catch{return[]}}function sh(e,t={}){return Ek(),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??th,a=t.requirePrompt??!1,o=qk();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"}))}};dn.open(Ok,d,{boxStyle:"max-width: none; min-width: 360px; padding: 0;"})})}function Bk(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 Fk(e,t){const n=e.browse;if(!n?.statusFrom||!n?.readBranchFrom||!n?.resolveConflictFrom)throw new rh(`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 Vk(e){const t=e.lastIndexOf(".");if(t<0)return;const n=e.lastIndexOf("/");if(!(t<n))return e.slice(t)}async function Uk(e,t,n={}){const r=e.shardId,s=t.shardId===r?Bk(e):Fk(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=Vk(d),m=[];for(const S of f.branches??[]){const y=await s.readBranch(d,S.origin).catch(()=>null);m.push({origin:S.origin,version:S.version,at:S.at,content:y??void 0,sizeBytes:y?new TextEncoder().encode(y).length:void 0})}o.push({id:d,label:d,extension:v,branches:m,meta:{shardId:t.shardId,path:d,docVersion:f.version}})}const l=await sh(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 Hk={resolve:sh,resolveDocuments:Uk},ah="sh3.color-picker",Kk={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 Wk(e={}){return[...Dr(ah),Kk].sort((r,s)=>(s.priority??0)-(r.priority??0))[0].open(e)}const Yk={pick:Wk};let vr=null;function Xk(e){vr=e}async function Qr(e){return vr?{...vr.bindings[e]??{}}:{}}async function Hu(e,t,n){if(!vr)return;const r={...vr.bindings[e]??{}};n===void 0?delete r[t]:r[t]=n,vr.bindings={...vr.bindings,[e]:r}}const Cc="sh3.actions",Mo=new Set;function Gk(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.`),()=>{};Mo.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.`),Mo.add(e.id);const r=Uv(Cc,{action:e,ownerShardId:t});let s=!1;return()=>{s||(s=!0,r(),Mo.delete(e.id))}}function dt(){return Dr(Cc)}function Jk(e){return Gi(Cc,e)}function Zk(e){const t=e.action.disabled;return typeof t=="function"?!!t():!!t}function Qk(e){const t=e.action.scope;return Array.isArray(t)?t[0]:t}function Tc(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}=u1(a.action,t.bindings,t.platform),c=Ea(a.action.scope,t,a.ownerShardId),u=typeof a.action.run=="function",d=c!==null&&u&&!Zk(a),f=d?c:Qk(a),v={id:a.action.id,label:Jt(a.action),effectiveShortcut:o,bindingSource:l,scope:f,scopeBadge:Fv(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[Xi(c)].push(v):r.push(v)}return[...Yi.flatMap(a=>n[a]),...r]}function $k(e,t){return Tc(e,t).filter(n=>n.active)}let vn=B(null);function Ta(){return i(vn)}function $i(e){return{get(){return i(vn)},set(t){b(vn,{type:t.type,ref:t.ref,ownerShardId:e},!0)},clear(){if(i(vn)){if(i(vn).ownerShardId!==e){console.warn(`[sh3] Shard "${e}" tried to clear selection owned by "${i(vn).ownerShardId}". Ignoring.`);return}b(vn,null)}}}}function ih(e){i(vn)&&i(vn).ownerShardId===e&&b(vn,null)}function e0(){b(vn,null)}let oh=B(null),lh=B(fe(new Set)),Ja=B(fe(new Set)),ch=B(fe(new Set)),uh=B(null),dh=B(fe({}));const t0=c1(),pl=new Set;function _s(){for(const e of pl)try{e()}catch(t){console.error("[sh3] onActiveChange listener threw",t)}}function n0(e){return pl.add(e),()=>{pl.delete(e)}}function r0(){_s()}function bi(e,t){b(oh,e,!0),b(lh,new Set(t),!0),_s()}function s0(){const e=xc(_t.tree),t=new Set;for(const n of e)n.viewId!==null&&t.add(n.viewId);b(ch,t,!0),_s()}function fh(e){b(uh,e,!0),_s()}function na(e){b(dh,{...e},!0),_s()}function Ct(){return{activeAppId:i(oh),activeAppRequiredShards:i(lh),autostartShards:i(Ja),mountedViewIds:i(ch),focusedViewId:i(uh),selection:Ta(),bindings:i(dh),platform:t0}}function vh(e){i(Ja).has(e)||(b(Ja,new Set([...i(Ja),e]),!0),_s())}var a0=I('<div class="sh3-ctx-sep svelte-1667pfa" role="separator"></div>'),i0=I('<span class="sh3-ctx-chevron svelte-1667pfa">▸</span>'),o0=I('<span class="sh3-ctx-shortcut svelte-1667pfa"> </span>'),l0=I('<button role="menuitem"><span class="sh3-ctx-check svelte-1667pfa"> </span> <span class="sh3-ctx-label svelte-1667pfa"> </span> <!></button>'),c0=I("<!> <!>",1),u0=I('<div class="sh3-context-menu svelte-1667pfa" role="menu" tabindex="0"></div>');function gi(e,t){le(t,!0);const n=V(()=>t.sections.flatMap(c=>c.items));let r=B(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")b(r,s(i(r),1),!0),c.preventDefault();else if(c.key==="ArrowUp")b(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)){b(r,v);break}}}}function o(c){c.disabled||(t.onInvoke(c.id),c.submenu||t.onDismiss())}var l=u0();ma(l,!0),xe(l,23,()=>t.sections,c=>c.id,(c,u,d)=>{var f=c0(),v=ke(f);{var m=y=>{var _=a0();k(y,_)};H(v,y=>{i(d)>0&&y(m)})}var S=g(v,2);xe(S,17,()=>i(u).items,y=>y.id,(y,_)=>{const E=V(()=>i(n).indexOf(i(_)));var x=l0();let w;var R=p(x),A=p(R,!0);h(R);var D=g(R,2),L=p(D,!0);h(D);var T=g(D,2);{var C=M=>{var P=i0();k(M,P)},O=M=>{var P=o0(),q=p(P,!0);h(P),N(()=>j(q,i(_).shortcut)),k(M,P)};H(T,M=>{i(_).submenu?M(C):i(_).shortcut&&M(O,1)})}h(x),N(()=>{w=_e(x,1,"sh3-ctx-item svelte-1667pfa",null,w,{"sh3-ctx-active":i(E)===i(r),"sh3-ctx-disabled":i(_).disabled}),oe(x,"aria-disabled",i(_).disabled||void 0),j(A,i(_).checked?"✓":""),j(L,i(_).label)}),He("pointerenter",x,()=>{i(_).disabled||b(r,i(E),!0)}),K("click",x,()=>o(i(_))),k(y,x)}),k(c,f)}),h(l),K("keydown",l,a),k(e,l),ce()}ge(["keydown","click"]);function hh(e,t){le(t,!0);const n=V(()=>t.model.tiers.map(r=>({id:`tier:${r.tier}`,items:r.items.map(s=>({...s,icon:void 0}))})));gi(e,{get sections(){return i(n)},get onInvoke(){return t.onInvoke},get onDismiss(){return t.onClose}}),ce()}function Ku(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function ph(e,t){return{id:e.action.id,label:Jt(e.action),shortcut:Ia(e.action,t.bindings,t.platform),group:e.action.group??"",icon:e.action.icon,checked:Ku(e.action.checked),disabled:Ku(e.action.disabled),submenu:e.action.submenu===!0}}function mh(e,t,n,r){return _c(e.scope).some(a=>m1(a,n))?n==="app"||n==="home"||typeof n=="object"&&"element"in n?$s(n,r,t):!0:!1}function bh(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)||!mh(a.action,a.ownerShardId,n,t))continue;const o=Ea(a.action.scope,t,a.ownerShardId)??n;s.add(a.action.id),r[Xi(o)].push(ph(a,t))}return{tiers:Yi.map(a=>({tier:a,items:r[a]})).filter(a=>a.items.length>0)}}function d0(e,t,n,r){const s=[],a=new Set;for(const o of e)o.action.submenuOf===n&&(a.has(o.action.id)||mh(o.action,o.ownerShardId,r,t)&&(a.add(o.action.id),s.push(ph(o,t))));return s}function f0(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 v0(e,t,n){const r=[];for(const a of e){if(t===""&&a.submenuOf!==void 0)continue;const o=f0(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 h0=I('<span class="sh3-palette-badge svelte-1qdcgk6"> </span>'),p0=I('<span class="sh3-palette-shortcut svelte-1qdcgk6"> </span>'),m0=I('<button role="option"><span class="sh3-palette-label svelte-1qdcgk6"> </span> <!> <!></button>'),b0=I('<div class="sh3-palette svelte-1qdcgk6" role="dialog" aria-label="Command palette" aria-modal="true" tabindex="-1"><input class="sh3-palette-input hell-base-input svelte-1qdcgk6" placeholder="Command…"/> <div class="sh3-palette-list svelte-1qdcgk6" role="listbox"></div></div>');function g0(e,t){le(t,!0);let n=te(t,"prefill",3,""),r=B(fe(n())),s=B(0);const a=V(()=>v0(t.candidates,i(r),t.recency));Pe(()=>{i(s)>=i(a).length&&b(s,0)});function o(d){d.key==="ArrowDown"?(b(s,Math.min(i(s)+1,Math.max(0,i(a).length-1)),!0),d.preventDefault()):d.key==="ArrowUp"?(b(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=b0(),c=p(l);Te(c);var u=g(c,2);xe(u,23,()=>i(a),d=>d.id,(d,f,v)=>{var m=m0();let S;var y=p(m),_=p(y,!0);h(y);var E=g(y,2);{var x=A=>{var D=h0(),L=p(D);h(D),N(()=>j(L,`[${i(f).scopeBadge??""}]`)),k(A,D)};H(E,A=>{i(f).scopeBadge&&A(x)})}var w=g(E,2);{var R=A=>{var D=p0(),L=p(D,!0);h(D),N(()=>j(L,i(f).shortcut)),k(A,D)};H(w,A=>{i(f).shortcut&&A(R)})}h(m),N(()=>{S=_e(m,1,"sh3-palette-item svelte-1qdcgk6",null,S,{"sh3-palette-active":i(v)===i(s)}),oe(m,"aria-selected",i(v)===i(s)),j(_,i(f).label)}),He("pointerenter",m,()=>b(s,i(v),!0)),K("click",m,()=>{t.onInvoke(i(f).id),t.onClose()}),k(d,m)}),h(u),h(l),K("keydown",l,o),De(c,()=>i(r),d=>b(r,d)),k(e,l),ce()}ge(["keydown","click"]);function y0(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function _0(e,t,n={}){const r=[],s=new Set,a=n.filter?.submenuOf;for(const o of e){if(o.action.paletteItem===!1||y0(o.action.disabled)||a!==void 0&&o.action.submenuOf!==a||s.has(o.action.id))continue;const l=Ea(o.action.scope,t,o.ownerShardId);l&&(s.add(o.action.id),r.push({id:o.action.id,label:Jt(o.action),shortcut:Ia(o.action,t.bindings,t.platform),scopeBadge:Fv(l),submenu:o.action.submenu===!0,submenuOf:a!==void 0?void 0:o.action.submenuOf}))}return r}let Wu=!1;function Rc(e){return e?e.closest("[data-sh3-view]")?.getAttribute("data-sh3-view")??null:null}function gh(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=b1(n.getAttribute("data-sh3-scope")??"");if(s&&!(typeof s=="object"&&"element"in s&&!$s(s,e.state)))return s;const a=n.parentElement;n=a?a.closest("[data-sh3-scope]"):null}const r=Rc(t);if(r)return`focus:${r}`}return e.state.activeAppId?"app":"home"}function w0(e,t){const n=dt().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 yh(e,t){const n=dt(),r=n.find(l=>l.action.id===e);if(!r)return Promise.reject(new Error(`action "${e}" not registered`));const s=Ct(),a=Tc(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:Jt(r.action)},appId:s.activeAppId,viewId:s.focusedViewId??void 0,selection:s.selection??void 0,invokedVia:"programmatic",dispatch:ws});return Promise.resolve(l).then(()=>{})}catch(l){return Promise.reject(l)}}function ws(e){yh(e).catch(t=>{console.error(`[sh3] ctx.dispatch("${e}"):`,t)})}function k0(e){const t=Rc(e.target);fh(t)}function x0(e){queueMicrotask(()=>{const t=Rc(document.activeElement);fh(t)})}function S0(e){return e instanceof Element?e.closest('[data-sh3-context-menu="native"]')!==null:!1}function _h(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=d0(dt(),t,e,r);Qe(gi,{target:a,props:{sections:[{id:`submenu:${e}`,items:c}],onInvoke:u=>{const d=dt().find(f=>f.action.id===u);if(!(!d||typeof d.action.run!="function")){try{d.action.run({action:{id:u,label:Jt(d.action)},appId:t.activeAppId,viewId:t.focusedViewId??void 0,selection:t.selection??void 0,invokedVia:"context-menu",dispatch:ws})}catch(f){console.error(`[sh3] context-menu submenu action "${u}" threw:`,f)}n.close()}},onDismiss:()=>n.close()}})}function I0(e){if(S0(e.target))return;const t=dt(),n=Ct(),r=gh({event:e,state:n}),s=bh(t,n,r);if(s.tiers.length===0)return;e.preventDefault();const a=lt.popup.show(hh,{anchor:{x:e.clientX,y:e.clientY}},{model:s,onInvoke:o=>{const l=dt().find(c=>c.action.id===o);if(l){if(l.action.submenu===!0){_h(o,n,a,r);return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:Jt(l.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:ws})}catch(c){console.error(`[sh3] context-menu action "${o}" threw:`,c)}}},onClose:()=>a.close()})}function E0(e){const t=l1(e);if(!t)return;const n=dt(),r=Ct();p1({target:e.target,shortcut:t,state:r,entries:n,runAction:w0,dispatch:ws})&&e.preventDefault()}function Yu(){Wu||(Wu=!0,document.addEventListener("keydown",E0),document.addEventListener("focusin",k0),document.addEventListener("focusout",x0),document.addEventListener("contextmenu",I0))}function wh(e){const t=dt(),n=Ct(),r=gh({explicit:e.scope,state:n}),s=bh(t,n,r);if(s.tiers.length===0)return;const a=lt.popup.show(hh,{anchor:{x:e.x,y:e.y}},{model:s,onInvoke:o=>{const l=dt().find(c=>c.action.id===o);if(l){if(l.action.submenu===!0){_h(o,n,a,r);return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:Jt(l.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:ws})}catch(c){console.error(`[sh3] context-menu action "${o}" threw:`,c)}}},onClose:()=>a.close()})}const A0=20;let ml=[];function C0(e){ml=[e,...ml.filter(t=>t!==e)].slice(0,A0)}function eo(e){const t=dt(),n=Ct(),r=_0(t,n,{filter:e?.filter}),s=typeof document<"u"&&document.activeElement instanceof HTMLElement?document.activeElement:null,a=lt.modal.open(g0,{candidates:r,recency:ml,prefill:e?.prefill??"",onInvoke:o=>{const l=dt().find(c=>c.action.id===o);if(l){if(C0(o),l.action.submenu===!0&&typeof l.action.run!="function"){a.close(),eo({filter:{submenuOf:o}});return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:Jt(l.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"palette",dispatch:ws})}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 hr=[];let T0=0;function R0(){return`term-${++T0}`}function L0(e){hr.push(e);let t=!1;return()=>{if(t)return;t=!0;const n=hr.indexOf(e);n!==-1&&hr.splice(n,1)}}function M0(){if(hr.length===0)return{ok:!1,error:"no-terminal"};if(hr.length===1)return{ok:!0,handle:hr[0]};let e=null,t=0;for(const n of hr){const r=n.getFocusStamp();r>0&&r>=t&&(e=n,t=r)}return e===null?{ok:!1,error:"ambiguous"}:{ok:!0,handle:e}}const Xu={"no-terminal":"no terminal open",ambiguous:"multiple terminals open; focus one first","no-active-context":"dispatchToTerminal is not available in this context"};function Lc(e){return e.headless?()=>({ok:!1,error:"no-active-context",message:Xu["no-active-context"]}):t=>{const n=M0();return n.ok?(n.handle.dispatch(t),{ok:!0,terminalId:n.handle.id}):{ok:!1,error:n.error,message:Xu[n.error]}}}const P0={async rebind(e,t,n){await Hu(e,t,n),Ct().activeAppId===e&&na(await Qr(e))},async resetBinding(e,t){await Hu(e,t,void 0),Ct().activeAppId===e&&na(await Qr(e))},async bindingsFor(e){const t=await Qr(e),n={};for(const[r,s]of Object.entries(t))s!==null&&(n[r]=s);return n},openContextMenu:wh,openPalette:eo,listActive(){return $k(dt(),Ct())},onActiveChange(e){const t=n0(e),n=Jk(()=>{r0()});return()=>{t(),n()}}},lt={state:Ui,modal:dn,popup:ol,toast:Dn,float:Be,presets:O1,conflicts:Hk,color:Yk,actions:P0,dispatchToTerminal:Lc({headless:!1}),viewport:{get current(){return mn.current},subscribe:e=>mn.subscribe(e),override:e=>mn.override(e),get pinned(){return mn.pinned}},drawers:{get state(){return Ht.state},open:e=>{ja("open"),Ht.open(e)},close:e=>{ja("close"),Ht.close(e)},toggle:e=>{ja("toggle"),Ht.toggle(e)},activate:(e,t)=>{ja("activate"),Ht.activate(e,t)}}};function ja(e){const t=mn.current.class;if(t!=="compact")throw new Error(`Sh3.drawers.${e}: viewport class is "${t}"; drawers exist only on compact`)}function D0(e){return Sn[e].list()}function j0(e,t){return Sn[e].read(t)}function z0(e,t){Sn[e].delete(t)}function O0(e){for(const t of Sn[e].list())Sn[e].delete(t)}function bl(){return{list:D0,peek:j0,clear:z0,clearAll:O0}}function qr(e,t,n){return`${e}/${t}/${n}`}function N0(e,t){return`${e}/${t}/`}const q0="sh3-documents",en="docs",B0=2;class kh{#e=null;#t(){return this.#e||(this.#e=new Promise((t,n)=>{const r=indexedDB.open(q0,B0);r.onupgradeneeded=()=>{const s=r.result;s.objectStoreNames.contains(en)||s.createObjectStore(en)},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(en,t).objectStore(en),c=n(l);c.onsuccess=()=>s(c.result),c.onerror=()=>a(c.error)})}async read(t,n,r){const s=qr(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=qr(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=qr(t,n,r);await this.#n("readwrite",a=>a.delete(s))}async rename(t,n,r,s){const a=qr(t,n,r),o=qr(t,n,s),l=await this.#t();return new Promise((c,u)=>{let d=!1;const f=l.transaction(en,"readwrite"),v=f.objectStore(en),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 y=v.getKey(o);y.onsuccess=()=>{if(y.result!==void 0){d=!0,f.abort(),u(new Error(`Document already exists at ${s}`));return}const _={...S,lastModified:Date.now()};v.put(_,o),v.delete(a)},y.onerror=()=>u(y.error)},m.onerror=()=>u(m.error),f.oncomplete=()=>c(),f.onerror=()=>{d||u(f.error)},f.onabort=()=>{}})}async list(t,n){const r=N0(t,n),s=await this.#t();return new Promise((a,o)=>{const c=s.transaction(en,"readonly").objectStore(en),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=qr(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(en,"readonly").objectStore(en),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(en,"readonly").objectStore(en),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 F0="local";let xh=F0,Sh=new kh,Ih=null;function Gu(e){Ih=e}function Mc(){return Ih?.()??xh}function za(){return Mc()}function Po(){return Sh}function Cs(e){xh=e}function Ju(e){Sh=e}const sn=fe({activeProjectId:null});function Eh(e){if(sn.activeProjectId===e)return;const t=gt.id;sn.activeProjectId=e,is.id=null,t&&Pc(t)}const Ah=Ui("__sh3core__:last-app",{user:{id:null}});function V0(){return Ah.user.id}function ra(e){Ah.user.id=e}function U0(){ra(null)}const gl=new Map;function H0(){return sn.activeProjectId??Mc()}function Oa(e,t,n){let r=gl.get(e);if(!r){const s=In(e),a=H0();r={scopeId:a,getScope:()=>sn.activeProjectId?"project":"tenant",args:n??{},state:o=>Ui(`__app__:${e}:scope:${a}`,o),zones:s?.manifest.permissions?.includes(Js)?bl():void 0,gestures:qw(typeof document<"u"?document.body:null)},gl.set(e,r)}return r}async function Xn(e,t={}){const n=In(e);if(!n)throw new Error(`Cannot launch app "${e}": not registered`);if(gt.id&&gt.id!==e)Pc(gt.id,t.skipSwitchToHome);else if(gt.id===e){for(const r of n.manifest.requiredShards){const s=un.get(r),a=d3(r);s&&a&&s.resume?.(a)}n.resume?.(Oa(e)),qu(),n.onAppReady?.(Oa(e)),t.skipLastApp||ra(e),is.id=e,bi(e,new Set(n.manifest.requiredShards??[])),Qr(e).then(na);return}for(const r of n.manifest.requiredShards)if(!un.has(r))throw new Error(`App "${e}" requires shard "${r}" which is not registered`);F1(n);try{for(const r of n.manifest.requiredShards)await xi(r,{phase:"launch"})}catch(r){Gv();try{Dn.notify(`Couldn't launch "${n.manifest.label??e}": ${r instanceof Error?r.message:String(r)}`,{level:"error",duration:6e3})}catch{}throw r}U1(),n.activate?.(Oa(e,void 0,t.args)),gt.id=e,bi(e,new Set(n.manifest.requiredShards??[])),Qr(e).then(na),qu(),n.onAppReady?.(Oa(e)),t.skipLastApp||ra(e),is.id=e}function Pc(e,t=!1){if(gt.id!==e)return;const n=In(e);if(n){n.deactivate?.(),t||Jv(),Gv();for(const r of n.manifest.requiredShards){const s=un.get(r);s&&(s.autostart||lo(r))}gt.id=null,bi(null,new Set),e0(),kv(),Qr("sh3.home").then(na),gl.delete(e)}}function Dc(e){sr.has(e)&&(gt.id===e&&(Pc(e),ra(null)),sr.delete(e))}async function ks(){const e=gt.id?In(gt.id):null;if(e){for(const t of e.manifest.requiredShards){const n=un.get(t);if(n?.suspend&&await n.suspend()===!1)return!1}if(e.suspend&&await e.suspend()===!1)return!1}return kv(),Jv(),bi(null,new Set),ra(null),!0}function jc(e){mn.current.class==="compact"&&(e.kind==="float"?_n.setRoot({kind:"float",floatId:e.floatId}):_n.reset())}function Ch(){return{root:Zt(),source:Qi()}}function K0(e){const t=Zt().docked,n=Oc(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 W0(e){const t=Zt();return no(t.docked,n=>n.slotId===e)?(jc({kind:"docked"}),!0):Th(t,n=>n.slotId===e)}function to(e){const t=Zt();return no(t.docked,n=>n.viewId===e)?(jc({kind:"docked"}),!0):Th(t,n=>n.viewId===e)}function no(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(no(n,t))return!0}return!1}function Th(e,t){for(const n of e.floats)if(no(n.content,t))return Be.focus(n.id),jc({kind:"float",floatId:n.id}),!0;return!1}function Y0(e,t){return Rh(e,t,!0)}function X0(e,t){return Rh(e,t,!1)}function Rh(e,t,n){const r=Zt().docked,s=cs(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 zc(e){const t=Zt(),n=t.docked;if(!ls(n,e))return G0(t,e);const a=Hv(e)?.closable;return!a||typeof a=="object"&&(!await a.canClose()||!ls(n,e))?!1:(Wi(n,e),Xr(n),!0)}async function G0(e,t){for(const n of e.floats){if(!ls(n.content,t))continue;const a=Hv(t)?.closable;if(typeof a=="object"&&(!await a.canClose()||!ls(n.content,t)))return!1;Wi(n.content,t);const o=n.content.type==="tabs"?n.content:null;return(!o||o.tabs.length===0)&&Be.close(n.id),!0}return!1}function Lh(e){const t=Zt(),n=ls(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 Wi(t.docked,e),Xr(t.docked),Be.open(s,{title:a,meta:o})}function Mh(e){const n=Zt().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 Be.close(e),!1;const a=s.tabs[s.activeTab??0]??s.tabs[0],o=Nc({slotId:a.slotId,viewId:a.viewId,label:a.label,meta:a.meta});return o&&Be.close(e),o}function Oc(e){if(e.type==="tabs")return e;if(e.type==="split")for(const t of e.children){const n=Oc(t);if(n)return n}return null}function Ph(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=Ph(e.children[n],[...t,n]);if(r)return r}return null}function Nc(e){const t=Zt().docked;if(to(e.viewId??""))return!0;const n=Dh(t);if(n)return n.tabs.push(e),n.activeTab=n.tabs.length-1,!0;const r=jh(t);if(r)return ul(t,r,e,"right"),!0;const s=Oc(t);if(s)return s.tabs.push(e),s.activeTab=s.tabs.length-1,!0;const a=Ph(t);return a?(ul(t,a,e,"right"),!0):!1}function Dh(e){if(e.type==="tabs")return e.role==="body"?e:null;if(e.type==="split")for(const t of e.children){const n=Dh(t);if(n)return n}return null}function jh(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=jh(e.children[n],[...t,n]);if(r)return r}return null}function zh(e){return gc(Zt(),e)}const yl="sh3:authToken";let yi=null,_l=!1;function J0(){if(!_l&&(_l=!0,!(typeof localStorage>"u")))try{yi=localStorage.getItem(yl)}catch{yi=null}}function ro(e){if(_l=!0,yi=e,!(typeof localStorage>"u"))try{e?localStorage.setItem(yl,e):localStorage.removeItem(yl)}catch{}}function Oh(){return J0(),yi}let Na=null,Zu=!1;function Nh(){return typeof window>"u"?!1:"__TAURI_INTERNALS__"in window||"__TAURI__"in window}async function Z0(){if(Zu)return Na;if(Zu=!0,!Nh())return null;try{Na=(await import("@tauri-apps/plugin-http")).fetch}catch{Na=null}return Na}function Ie(e,t){const n=Oh();let r=t??{};if(n){const s=new Headers(r.headers??{});s.has("Authorization")||(s.set("Authorization",`Bearer ${n}`),r={...r,headers:s})}return Nh()?Z0().then(s=>s?s(e,r):fetch(e,{credentials:"include",...r})):fetch(e,{credentials:"include",...r})}let xs=B(null),zn=B(null),Ss=B(!1),so="",wl=null;function Do(e,t){so=e,wl=t.auth,b(xs,t.user,!0),b(zn,t.session,!0),b(Ss,!t.session&&!t.user,!0),ro(t.session?.token??null)}async function qh(e,t){try{const n=await Ie(`${so}/api/auth/login`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:e,password:t})});if(!n.ok)return{ok:!1,error:(await n.json().catch(()=>({}))).error||"Login failed"};const r=await n.json();return b(xs,r.user,!0),b(zn,r.session,!0),b(Ss,!1),ro(r.session?.token??null),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function Q0(e,t,n){try{const r=await Ie(`${so}/api/auth/register`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:e,password:t,displayName:n})});if(!r.ok)return{ok:!1,error:(await r.json().catch(()=>({}))).error||"Registration failed"};const s=await r.json();return b(xs,s.user,!0),b(zn,s.session,!0),b(Ss,!1),ro(s.session?.token??null),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function $0(){try{await Ie(`${so}/api/auth/logout`,{method:"POST"})}catch{}if(ro(null),wl&&!wl.guestAllowed){window.location.reload();return}b(xs,null),b(zn,null),b(Ss,!0)}function ex(){b(xs,{id:"local",username:"local",displayName:"Local Owner",role:"admin",createdAt:"",updatedAt:""},!0),b(zn,{token:"local",userId:"local",role:"admin",expiresAt:1/0},!0),b(Ss,!1)}function tx(){return i(zn)?.token==="local"}function zt(){return i(zn)?.role==="admin"}function kl(){return i(zn)!==null}function Bh(){return i(Ss)}function br(){return i(xs)}function ao(){return i(zn)?`Bearer ${i(zn).token}`:null}const nx=2e3;let xl=0;function rx(){return`e${++xl}`}function sx(e){if(e.length<2||e.charCodeAt(0)!==101)return NaN;const t=Number(e.slice(1));return Number.isInteger(t)?t:NaN}class ax{#e;get entries(){return i(this.#e)}set entries(t){b(this.#e,t,!0)}constructor(t=nx){this.#e=B(fe([])),this.cap=t}push(t){const n=this.entries[this.entries.length-1];if(n&&n.kind==="text"&&t.kind==="text"&&n.stream===t.stream){n.chunks.push(...t.chunks);return}const r={...t,id:rx()};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=sx(r.id);Number.isFinite(s)&&s>n&&(n=s)}n>xl&&(xl=n),this.entries.splice(0,this.entries.length,...t)}}const Qu=[1e3,2e3,5e3,1e4];class Fh{#e;get connected(){return i(this.#e)}set connected(t){b(this.#e,t,!0)}#t;get cwd(){return i(this.#t)}set cwd(t){b(this.#t,t,!0)}#n;get tenantRoot(){return i(this.#n)}set tenantRoot(t){b(this.#n,t,!0)}#s;get env(){return i(this.#s)}set env(t){b(this.#s,t,!0)}#r;get historyByMode(){return i(this.#r)}set historyByMode(t){b(this.#r,t,!0)}#i;get lastSeq(){return i(this.#i)}set lastSeq(t){b(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=B(!1),this.#t=B(""),this.#n=B(""),this.#s=B(fe({})),this.#r=B(fe({})),this.#i=B(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=Qu[Math.min(this.backoffIndex,Qu.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 Vh{constructor(t=""){this.base=t}async list(t){return(await(await this.#e("/api/fs/list",t)).json()).entries}async stat(t){return await(await this.#e("/api/fs/stat",t)).json()}async read(t){return await(await this.#e("/api/fs/read",t)).text()}async#e(t,n){const r=`${this.base}${t}?path=${encodeURIComponent(n)}`,s=await Ie(r);if(!s.ok){let a=`HTTP ${s.status}`;try{const o=await s.json();o.error&&(a=o.error)}catch{}throw new Error(a)}return s}}function ix(e){const t=vi(e);if(!t)return null;const r=zv().find(s=>s.verb===t);return r?{verb:r.verb,shardId:r.shardId}:null}async function Uh(e,t,n,r){if(!Rr.has(e))throw new Error(`unknown shard: ${e}`);const s=vi(t);if(!s)throw new Error(`unknown verb: ${t}`);if(!s.programmatic)throw new Error(`verb "${t}" is not programmatic`);const a=[],o=lx(a),l=await ox({sinkScrollback:o,opts:r});return{result:await s.run(l,n),scrollback:a}}async function ox(e){const t={sh3:Bc({callerKind:"verb"}),scrollback:e.sinkScrollback,session:cx(),cwd:"/",fs:new Vh,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=ix(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 lx(e){let t=0;return{entries:e,push(r){const s={...r,id:`runverb-${++t}`};e.push(s)},clear(){e.length=0}}}function cx(){return new Fh("")}const sa="sh3.controllable-field",Sl="sh3.walker";function qc(){return Dr(sa)}function Hh(e){for(const t of qc())if(t.owner.shardId===e.shardId&&(t.owner.slotId??void 0)===(e.slotId??void 0)&&t.descriptor.fieldId===e.fieldId)return t}function ux(e){return e.shape==="readonly"?!0:e.shape==="imperative"?typeof e.set!="function":!1}function dx(e){if(e.shape==="element"||e.shape==="imperative"||e.shape==="readonly")return e.element}function fx(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:ux(t),source:"contributed"};e.owner.slotId!==void 0&&(n.slotId=e.owner.slotId);const r=dx(t);return r!==void 0&&(n.element=r),n}function vx(e={}){const t=[];for(const n of qc())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(fx(n));return t}function hx(e){return e.get()}function px(e){const t=e.element;return t instanceof HTMLInputElement&&t.type==="checkbox"?t.checked:t.value}function mx(e){const t=Hh(e);if(!t)throw new Error(`unknown field: ${e.shardId}::${e.slotId??""}::${e.fieldId}`);const n=t.descriptor;return n.shape==="element"?px(n):hx(n)}function Kh(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 bx(e,t){const n=Hh(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}Kh(r.element,t)}const gx=new Set(["submit","button","reset","file","hidden"]);function yx(e){return e.type==="number"?"number":e.type==="checkbox"?"boolean":"string"}function _x(e){return Array.from(e.options).map(t=>t.value)}function $u(e){return e.toLowerCase().trim().replace(/[^a-z0-9.\-_ ]/g,"").replace(/\s+/g,"-").replace(/^-+|-+$/g,"")}function Wh(e){if(e.id){const n=e.ownerDocument.querySelector(`label[for="${CSS.escape(e.id)}"]`);if(n&&n.textContent)return n.textContent}let t=e.parentElement;for(;t;){if(t.tagName==="LABEL"&&t.textContent)return t.textContent;t=t.parentElement}return null}function wx(e,t){const n=e.getAttribute("data-sh3-field");if(n&&n.length>0)return n;const r=e.name;if(r)return r;const s=Wh(e);if(s){const o=$u(s);if(o.length>0)return o}if(e.id)return e.id;const a=e.placeholder;if(a){const o=$u(a);if(o.length>0)return o}return`field-${t}`}function kx(e){return Wh(e)?.trim()??e.placeholder??null}function xx(e){return e.hasAttribute("data-sh3-field")?!0:e instanceof HTMLInputElement?!gx.has(e.type):e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement}function jo(e,t){const n=new Set;for(const o of qc()){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(!xx(o)||n.has(o))continue;let l="string",c;if(o instanceof HTMLInputElement)l=yx(o);else if(o instanceof HTMLSelectElement)l="enum",c=_x(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=wx(o,a);/^field-\d+$/.test(u)&&(a+=1);const d={shardId:Sl,slotId:e,fieldId:u,label:kx(o)??u,kind:l,readonly:!1,source:"walker",element:o};c!==void 0&&(d.enumValues=c),s.push(d)}return s}const io=new Set;let qa=null,zo=null,ed=null,Oo=!1;function Sx(){if(qa&&qa.isConnected)return qa;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),qa=e,zo||(zo=()=>Il(),window.addEventListener("resize",zo)),ed||(ed=Gi(sa,()=>{const t=new Set;for(const n of Dr(sa))t.add(_i({shardId:n.owner.shardId,slotId:n.owner.slotId,fieldId:n.descriptor.fieldId}));for(const n of Array.from(io))t.has(_i(n.addr))||Yh(n)})),e}function _i(e){return`${e.shardId}::${e.slotId??""}::${e.fieldId}`}function Ix(e){for(const t of Dr(sa))if(t.owner.shardId===e.shardId&&(t.owner.slotId??void 0)===(e.slotId??void 0)&&t.descriptor.fieldId===e.fieldId)return t}function Ex(e){const t=e.descriptor;if(t.shape==="element"||t.shape==="imperative"||t.shape==="readonly")return t.element}function Ax(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 Cx(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 Il(){Oo||(Oo=!0,requestAnimationFrame(()=>{Oo=!1;for(const e of io)Cx(e)}))}function Yh(e){if(!e.disposed){e.disposed=!0,io.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 Tx(e,t){const n=Ix(e);if(!n)throw new Error(`unknown field: ${_i(e)}`);const r=Ex(n);if(!r)throw new Error(`field has no element to anchor to: ${_i(e)}`);const s=Sx(),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=Ax(r),f={addr:e,element:l,wrapper:u,target:r,handle:c,resizeObserver:new ResizeObserver(()=>Il()),scrollAncestor:d,scrollListener:()=>Il(),disposed:!1};return f.resizeObserver.observe(r),d===window?window.addEventListener("scroll",f.scrollListener,!0):d.addEventListener("scroll",f.scrollListener),io.add(f),()=>Yh(f)}const td=["ephemeral","session","workspace","user"];function Xh(e){return e.type==="tabs"?e.tabs.filter(t=>t.viewId!==null):e.type==="split"?e.children.flatMap(Xh):e.viewId!==null?[{slotId:e.slotId,viewId:e.viewId,label:e.viewId}]:[]}function Bc(e){e?.callerKind,e?.callerShardId;const t=e?.zones;function n(){try{const{root:l}=Ch();return Xh(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=Lo(l.slotId);if(!c?.host)throw new Error(`unknown field: ${l.shardId}::${l.slotId}::${l.fieldId}`);const u=jo(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){Kh(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=vx({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=Lo(v);if(!m?.host)continue;const S=c.some(y=>y.slotId===v);u==="fallback"&&S||(f=f.concat(jo(v,m.host)))}return l?.kind&&(f=f.filter(v=>v.kind===l.kind)),f},get(l){return l.shardId===Sl?s(l):mx(l)},async set(l,c){if(l.shardId===Sl){a(l,c);return}return bx(l,c)},walk(l){const c=Lo(l);if(!c?.host)throw new Error(`unknown slot: ${l}`);return jo(l,c.host)},onChange(l){return Gi(sa,l)},attachDecoration(l,c){return Tx(l,c)}};return{listApps(){return ys().map(l=>({id:l.id,label:l.label}))},getActiveApp(){const l=hc();return l?{id:l.id,label:l.label}:null},launchApp(l){Xn(l)},listShards(){return Array.from(un.values()).map(l=>({id:l.manifest.id,label:l.manifest.label,version:l.manifest.version}))},listViewsInCurrentLayout(){return n()},openViewInCurrentLayout(l){try{if(to(l))return{ok:!0};const c=aa().find(u=>u.viewId===l);if(c){const u=`standalone:${l}:${Date.now()}`;return Nc({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 aa()},popoutSlot(l){try{const c=Lh(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 Mh(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 zh(l)}catch{return null}},listFloats(){return Be.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 zc(l),{ok:!0}},listZones(l){if(!t)return[];const c=new Map;for(const u of td)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||!td.includes(c)?null:t.peek(c,l)??null},whoAmI(){return{userId:br()?.id??"guest",admin:zt()}},setMode(l){return!1},listModes(){return[]},getMode(){return{id:"sh3",label:"sh3"}},dispatchToTerminal:Lc({headless:!0}),listVerbs(l){const c=l?.programmaticOnly===!0,u=zv().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 Uh(l,c,u,d)},listActions(l){let u=Tc(dt(),Ct());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 yh(l)},listViews(){return n()},fields:o}}function Rx(e){return Bc({callerKind:"verb",zones:e})}class Lx{#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 Ie(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 Ie(a,{method:"PUT",headers:o,body:s,credentials:"include"});if(!l.ok){let c=`HTTP ${l.status}`;try{const u=await l.json();u.error&&(c=u.error)}catch{}throw new Error(`Document write failed: ${c}`)}}async delete(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}`,a=await Ie(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 Ie(r,{credentials:"include"});if(!s.ok)throw new Error(`Document list failed: ${s.status}`);return s.json()}async exists(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}`;return(await Ie(s,{method:"HEAD",credentials:"include"})).ok}async listAllShards(t){const n=`${this.#e}/api/docs/${t}/_shards`,r=await Ie(n,{credentials:"include"});if(!r.ok)throw new Error(`listAllShards failed: ${r.status}`);return r.json()}async listAllDocuments(t){const n=`${this.#e}/api/docs/${t}/_all`,r=await Ie(n,{credentials:"include"});if(!r.ok)throw new Error(`listAllDocuments failed: ${r.status}`);return r.json()}async readMeta(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}?meta=1`,a=await Ie(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 Ie(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 Ie(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 Ie(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 Mx{#e=new Set;subscribe(t){return this.#e.add(t),()=>{this.#e.delete(t)}}emit(t){for(const n of this.#e)try{n(t)}catch(r){console.error("SH3: document change listener threw",r)}}}const An=new Mx,Px=1e3;function Dx(e,t,n,r){const s=new Set,a=new Set;function o(d){return!r.extensions||r.extensions.length===0?!0:r.extensions.some(f=>d.endsWith(f))}function l(d){return d?.scope??e}function c(d,f,v){An.emit({type:d,path:f,tenantId:v,shardId:t})}const u={async list(d){const f=l(d),v=await n.list(f,t);return!r.extensions||r.extensions.length===0?v:v.filter(m=>o(m.path))},async read(d,f){const v=await n.read(l(f),t,d);return v===null?null:typeof v=="string"?v:new TextDecoder().decode(v)},async write(d,f,v){const m=l(v),S=await n.exists(m,t,d);await n.write(m,t,d,f),c(S?"update":"create",d,m)},async delete(d,f){const v=l(f),m=await n.exists(v,t,d);await n.delete(v,t,d),m&&c("delete",d,v)},async rename(d,f,v){if(!o(f))throw new Error(`Cannot rename to ${f}: violates handle extensions filter`);for(const S of s)if(S.path===d)throw new Error(`Cannot rename: active autosave on ${d}; flush and dispose first`);const m=l(v);await n.rename(m,t,d,f),An.emit({type:"rename",path:f,oldPath:d,tenantId:m,shardId:t})},async exists(d){return n.exists(e,t,d)},async status(d){if(!n.readMeta)throw new Error("Backend does not support status()");return n.readMeta(e,t,d)},async resolveConflict(d,f){if(!n.resolve)throw new Error("Backend does not support resolveConflict()");if(typeof f!="string"&&!(typeof f=="object"&&"origin"in f))throw new Error("choice must be a string or { origin } object");return n.resolve(e,t,d,f)},async readBranch(d,f){if(!n.readBranch)throw new Error("Backend does not support readBranch()");return n.readBranch(e,t,d,f)},watch(d){const f=An.subscribe(v=>{v.tenantId===e&&v.shardId===t&&o(v.path)&&d(v)});return a.add(f),()=>{f(),a.delete(f)}},autosave(d,f){const v=new jx(u,d,f?.debounceMs??Px);return s.add(v),v},async dispose(){const d=[...s].map(f=>f.dispose());await Promise.all(d),s.clear();for(const f of a)f();a.clear()}};return u}class jx{#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 zx="sync:peer",Ox="sync:policy";let Gh="";function Jh(e){Gh=e}function ft(){return Gh}async function Nx(e){const t=await Ie(`${ft()}/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 qx(e,t){if(!zt())throw new Error("Cannot update env state: not elevated to admin");const n=ao(),r={"Content-Type":"application/json"};n&&(r.Authorization=n);const s=await Ie(`${ft()}/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 Fc(e,t,n){if(!zt())throw new Error("Cannot install: not elevated to admin");const r=ao(),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 Ie(`${ft()}/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 Bx(e){if(!zt())throw new Error("Cannot uninstall: not elevated to admin");const t=ao(),n={"Content-Type":"application/json"};t&&(n.Authorization=t);const r=await Ie(`${ft()}/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 Fx(){const e=await Ie(`${ft()}/api/packages`,{credentials:"omit"});return e.ok?await e.json():[]}const Zh="documents:browse",Qh="documents:read",$h="documents:write";function Vx(e,t,n={canRead:!1,canWrite:!1}){const r={listDocuments:()=>t.listAllDocuments(e()),listShards:()=>t.listAllShards(e()),watchDocuments:s=>An.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=e(),c=await t.exists(l,s,a);await t.write(l,s,a,o),An.emit({type:c?"update":"create",path:a,tenantId:l,shardId:s})},r.resolveConflictFrom=async(s,a,o)=>{if(!t.resolve)throw new Error("Backend does not support resolveConflict");const l=e();await t.resolve(l,s,a,o),An.emit({type:"update",path:a,tenantId:l,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)");const c=e();await t.rename(c,s,a,o),An.emit({type:"rename",path:o,oldPath:a,tenantId:c,shardId:s})},r.deleteFrom=async(s,a)=>{const o=e(),l=await t.exists(o,s,a);await t.delete(o,s,a),l&&An.emit({type:"delete",path:a,tenantId:o,shardId:s})},r.transferToScope=async(s,a,o,l)=>{const c=e();if(o===c)throw new Error("targetScope must differ from the active tenant");const u=l?.targetShardId??s,d=await t.read(c,s,a);if(d===null)throw new Error(`Document not found at ${s}/${a} in scope ${c}`);const f=await t.exists(o,u,a);await t.write(o,u,a,d),An.emit({type:f?"update":"create",path:a,tenantId:o,shardId:u}),l?.delete&&(await t.delete(c,s,a),An.emit({type:"delete",path:a,tenantId:c,shardId:s}))}),r}function Ux(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 Hx(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function Kx(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 Wx={guml:"⬡",glsl:"◇",md:"≡",obj:"△",png:"▦"};function Yx(e){const t=e.slice(e.lastIndexOf(".")+1).toLowerCase();return Wx[t]??"▯"}function Xx(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 Gx=I('<span class="sh3-doc-browser__crumb-sep svelte-16fo6d5">/</span>'),Jx=I('<!> <button type="button"> </button>',1),Zx=I('<div class="sh3-doc-browser__empty svelte-16fo6d5"> </div>'),Qx=I('<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),$x=I('<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),e3=I('<div role="option" tabindex="-1"><!></div>'),t3=I('<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>'),n3=I('<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 El(e,t){le(t,!0);let n=te(t,"suggestedName",3,""),r=B(null),s=B(""),a=B(null),o=B(fe(Me(()=>n()))),l=B(0),c=B(void 0);const u=V(()=>Ux(t.docs,i(r),i(s))),d=V(()=>Xx(i(r),i(s)));Pe(()=>{i(u),b(l,Math.min(i(l),i(u).length-1),!0)});function f(Y){b(r,Y,!0),b(s,""),b(a,null),b(o,""),b(l,0)}function v(Y){i(r)===null?f(Y):(b(s,Y,!0),b(a,null),b(o,""),b(l,0))}function m(Y){Y.kind==="folder"?v(Y.fullPath):(t.mode==="open"&&b(a,Y.doc,!0),t.mode==="save"&&b(o,Y.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 Y=i(s)?`${i(r)}/${i(s)}/${i(o)}`:`${i(r)}/${i(o)}`;t.onCommit(Y),t.close()}}function y(){t.onCancel(),t.close()}function _(){return t.mode==="open"?i(a)!==null:i(o).trim().length>0&&i(r)!==null}function E(Y){if(!(Y.target instanceof HTMLInputElement))switch(Y.key){case"ArrowDown":Y.preventDefault(),b(l,Math.min(i(l)+1,i(u).length-1),!0);break;case"ArrowUp":Y.preventDefault(),b(l,Math.max(i(l)-1,0),!0);break;case"Enter":Y.preventDefault(),i(l)>=0&&i(l)<i(u).length&&m(i(u)[i(l)]);break;case"Escape":Y.preventDefault(),y();break;case"Backspace":if(i(s)){Y.preventDefault();const ee=i(s).split("/");ee.pop(),b(s,ee.join("/"),!0),b(l,0)}else i(r)&&(Y.preventDefault(),b(r,null),b(l,0));break}}function x(Y){Y.kind==="folder"?v(Y.fullPath):t.mode==="open"&&(t.onCommit({shardId:Y.doc.shardId,path:Y.doc.path}),t.close())}var w=n3(),R=p(w),A=p(R),D=p(A,!0);h(A),h(R);var L=g(R,2);xe(L,21,()=>i(d),bt,(Y,ee,X)=>{var Q=Jx(),z=ke(Q);{var U=ve=>{var se=Gx();k(ve,se)};H(z,ve=>{X>0&&ve(U)})}var G=g(z,2);let J;var ie=p(G,!0);h(G),N(()=>{J=_e(G,1,"sh3-doc-browser__crumb svelte-16fo6d5",null,J,{"sh3-doc-browser__crumb--last":X===i(d).length-1}),j(ie,i(ee).label)}),K("click",G,()=>{b(r,i(ee).targetShard,!0),b(s,i(ee).targetPrefix,!0),b(a,null),b(o,""),b(l,0)}),k(Y,Q)}),h(L);var T=g(L,2),C=p(T);{var O=Y=>{var ee=Zx(),X=p(ee,!0);h(ee),N(()=>j(X,i(r)===null?"No shards available.":i(s)?"Empty directory.":"No documents in this shard.")),k(Y,ee)},M=Y=>{var ee=Ue(),X=ke(ee);xe(X,17,()=>i(u),bt,(Q,z,U)=>{const G=V(()=>U===i(l)),J=V(()=>i(z).kind==="file"&&t.mode==="open"&&i(a)?.path===i(z).doc.path&&i(a)?.shardId===i(z).doc.shardId);var ie=e3();let ve;var se=p(ie);{var ue=we=>{var Ee=Qx(),ae=g(ke(Ee),2),he=p(ae,!0);h(ae),Ot(2),N(()=>j(he,i(z).name)),k(we,Ee)},be=we=>{var Ee=$x(),ae=ke(Ee),he=p(ae,!0);h(ae);var Se=g(ae,2),ne=p(Se,!0);h(Se);var re=g(Se,2),me=p(re),ye=g(me),pe=p(ye,!0);h(ye),h(re),N((Le,Ne,ze)=>{j(he,Le),j(ne,i(z).name),j(me,`${Ne??""} `),j(pe,ze)},[()=>Yx(i(z).name),()=>Hx(i(z).doc.size),()=>Kx(i(z).doc.lastModified)]),k(we,Ee)};H(se,we=>{i(z).kind==="folder"?we(ue):we(be,-1)})}h(ie),N(()=>{ve=_e(ie,1,"sh3-doc-browser__item svelte-16fo6d5",null,ve,{"sh3-doc-browser__item--active":i(G),"sh3-doc-browser__item--selected":i(J),"sh3-doc-browser__item--folder":i(z).kind==="folder"}),oe(ie,"aria-selected",i(J))}),K("click",ie,()=>m(i(z))),K("keydown",ie,we=>{we.key==="Enter"&&m(i(z))}),K("dblclick",ie,()=>x(i(z))),He("mouseenter",ie,()=>b(l,U,!0)),k(Q,ie)}),k(Y,ee)};H(C,Y=>{i(u).length===0?Y(O):Y(M,-1)})}h(T),We(T,Y=>b(c,Y),()=>i(c));var P=g(T,2);{var q=Y=>{var ee=t3(),X=g(p(ee),2);Te(X),h(ee),K("keydown",X,Q=>{Q.key==="Enter"&&_()&&S()}),De(X,()=>i(o),Q=>b(o,Q)),k(Y,ee)};H(P,Y=>{t.mode==="save"&&i(r)!==null&&Y(q)})}var F=g(P,2),W=p(F),$=g(W,2),Z=p($,!0);h($),h(F),h(w),N(Y=>{j(D,t.mode==="open"?"Open Document":"Save Document"),$.disabled=Y,j(Z,t.mode==="open"?"Open":"Save")},[()=>!_()]),K("keydown",w,E),K("click",W,y),K("click",$,S),k(e,w),ce()}ge(["keydown","click","dblclick"]);const r3="max-width: min(800px, 95vw);",s3={dismissOnBackdrop:!0,boxStyle:r3};function nd(e){function t(a,o){if(o){const l=o.getBoundingClientRect();return lt.popup.show(El,{anchor:{x:l.left+l.width/2,y:l.top}},a)}return lt.modal.open(El,a,s3)}function n(a,o){const l=a.close;a.close=()=>{l(),o(null)}}async function r(a){const o=await e();return new Promise(l=>{const c=t({mode:"open",docs:o,onCommit:u=>{l(u)},onCancel:()=>{l(null)}},a?.anchor);n(c,l)})}async function s(a){const o=await e();return new Promise(l=>{const c=t({mode:"save",docs:o,suggestedName:a?.suggestedName,onCommit:u=>{l(u)},onCancel:()=>{l(null)}},a?.anchor);n(c,l)})}return{open:r,save:s}}const ep="keys:mint";class tp extends Error{constructor(t){super(`Shard may not mint a key with scope '${t}' — not declared in manifest.`),this.name="ScopeEscalationError"}}class np extends Error{constructor(){super("User denied key creation."),this.name="ConsentDeniedError"}}const Al=new Map;let Fs=null;function rp(e){return Fs=e,()=>{Fs===e&&(Fs=null)}}async function a3(e,t){if(!Fs)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=>{Al.set(n,{resolve:r}),Fs({...t,shardId:e,requestId:n})})}function Cl(e,t){const n=Al.get(e);n&&(Al.delete(e),n.resolve(t))}const wi=new Map,Za=new Map,i3=5e3;function o3(e,t){let n=Za.get(e);n||(n=new Set,Za.set(e,n)),n.add(t),setTimeout(()=>{n.delete(t),n.size===0&&Za.delete(e)},i3)}function l3(e,t){return Za.get(e)?.has(t)??!1}function Vc(e,t){const n=wi.get(e)??new Set;return n.add(t),wi.set(e,n),()=>{n.delete(t)}}function sp(e,t){if(!e||l3(e,t))return;o3(e,t);const n=wi.get(e);if(n)for(const s of n)s(t);const r=wi.get("*");if(r)for(const s of r)s(t)}function c3(){if(typeof EventSource>"u")return()=>{};const e=ft(),t=Oh(),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);sp(a.shardId,a.id)}catch{}},()=>r.close()}function u3(e){const{shardId:t,shardPermissions:n}=e,r=s=>{for(const a of s)if(!n.includes(a)&&!n.includes("admin:*"))throw new tp(a)};return{async mint(s){if(r(s.scopes),!await a3(t,s))throw new np;const o=await Ie(`${ft()}/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 Ie(`${ft()}/api/keys`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({ticket:l})});if(!c.ok)throw new Error(`Mint failed: ${c.status}`);return c.json()},async list(){const s=await Ie(`${ft()}/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 Ie(`${ft()}/api/keys/${encodeURIComponent(s)}`,{method:"DELETE"});if(!a.ok&&a.status!==404)throw new Error(`Revoke failed: ${a.status}`);sp(t,s)}}}const un=fe(new Map),$r=new Map,Rr=fe(new Map),ki=fe(new Map);let ap=null;function rd(e){ap=e}function oo(e){const t=e.manifest.id;un.has(t)&&Rr.has(t)&&lo(t),un.set(t,e),ki.delete(t)}async function xi(e,t){const n=un.get(e);if(!n)throw new Error(`Cannot activate shard "${e}": not registered`);if($r.has(e))return;const r={shard:n,ctx:void 0,viewIds:new Set,verbNames:new Set,cleanupFns:[]},s=fe({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=Uv(u,v,f);return r.cleanupFns.push(async()=>m()),m},list(u){return Dr(u)},listPoints(){return _1()},onChange(u,d){const f=Gi(u,d);return r.cleanupFns.push(async()=>f()),f},onAnyChange(u){const d=w1(u);return r.cleanupFns.push(async()=>d()),d}},l=n.manifest.permissions?.includes(Zh)?Vx(()=>za(),Po(),{canRead:n.manifest.permissions?.includes(Qh)??!1,canWrite:n.manifest.permissions?.includes($h)??!1}):void 0,c={state:u=>lt.state(e,u),registerView:(u,d)=>{t1(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}`,n1(d,{...u,name:d},e)&&r.verbNames.add(d)},documents:u=>{const d=Dx(za(),e,Po(),u);return r.cleanupFns.push(()=>d.dispose()),d},fetch(u,d){return Ie(this.resolveUrl(u),d)},get serverUrl(){return ft()},resolveUrl(u){if(u.startsWith("http://")||u.startsWith("https://"))return u;const f=ft(),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=Ir(s.proxy);Object.assign(s.proxy,u);try{const f=Ir(s.proxy);await qx(e,f)}catch(f){throw Object.assign(s.proxy,d),f}},get isAdmin(){return zt()},get tenantId(){return za()},getScope:()=>ap?.()??"tenant",zones:n.manifest.permissions?.includes(Js)?bl():void 0,browse:l,documentPicker:nd(l?()=>l.listDocuments():async()=>(await Po().list(za(),e)).map(d=>({...d,shardId:e}))),keys:n.manifest.permissions?.includes(ep)?u3({shardId:e,shardPermissions:n.manifest.permissions??[]}):void 0,contributions:a,actions:{register(u){const d=Gk(u,e);return r.cleanupFns.push(async()=>d()),d},selection:$i(e),openContextMenu(u){wh(u)},openPalette(u){eo(u)}},sh3:Bc({callerKind:"shard",callerShardId:e,zones:n.manifest.permissions?.includes(Js)?bl():void 0})};if(r.ctx=c,n.onKeyRevoked){const u=Vc(e,async d=>{try{await n.onKeyRevoked(d)}catch(f){console.error(`[sh3] onKeyRevoked failed in "${e}":`,f)}});r.cleanupFns.push(async()=>u())}$r.set(e,r),Rr.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 Nx(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)jv(d);for(const d of r.viewIds)Dv(d);throw ih(e),$r.delete(e),Rr.delete(e),ki.set(e,{id:e,error:u,phase:t?.phase??"launch",timestamp:Date.now()}),console.error(`[sh3] Shard "${e}" failed to activate:`,u),u}ki.delete(e),n.autostart?.(c)}function lo(e){const t=$r.get(e);if(t){t.shard.deactivate?.();for(const n of t.cleanupFns)n();for(const n of t.verbNames)jv(n);for(const n of t.viewIds)Dv(n);ih(e),$r.delete(e),Rr.delete(e)}}function d3(e){return $r.get(e)?.ctx}function aa(){const e=[];for(const t of Rr.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 f3(e){return btoa(JSON.stringify(e)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function v3(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 h3(n)}function h3(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 p3(){return typeof globalThis.__TAURI_INTERNALS__<"u"}let sd=0;function m3(){return sd+=1,`sh3-satellite-${Date.now()}-${sd}`}async function co(e,t={}){if(!p3())return console.warn("[sh3] sh3.window.spawn called outside Tauri — no-op"),"";const{invoke:n}=await Ri(async()=>{const{invoke:c}=await import("./core-DsojzR6k.js");return{invoke:c}},[]),r=f3(e),s=m3(),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 Pt extends Error{constructor(t,n){super(`Registry validation error at ${t}: ${n}`),this.name="RegistryValidationError",this.path=t}}function ip(e){if(!e||typeof e!="object"||Array.isArray(e))throw new Pt("$","expected an object");const t=e;if(t.version!==1)throw new Pt("$.version",`expected 1, got ${JSON.stringify(t.version)}`);if(!Array.isArray(t.packages))throw new Pt("$.packages","expected an array");return{version:1,packages:t.packages.map((r,s)=>b3(r,`$.packages[${s}]`))}}function b3(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new Pt(t,"expected an object");const n=e;hn(n,"id",t),_3(n,"type",["shard","app","combo"],t),hn(n,"label",t),hn(n,"description",t);const r=`${t}.author`;if(!n.author||typeof n.author!="object"||Array.isArray(n.author))throw new Pt(r,"expected an object");const s=n.author;if(typeof s.name!="string"||s.name.length===0)throw new Pt(`${r}.name`,"expected a non-empty string");if(!Array.isArray(n.versions)||n.versions.length===0)throw new Pt(`${t}.versions`,"expected a non-empty array");const a=n.versions.map((o,l)=>g3(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 g3(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new Pt(t,"expected an object");const n=e;hn(n,"version",t),hn(n,"contractVersion",t);const r="bundleUrl"in n&&n.bundleUrl!==void 0,s="integrity"in n&&n.integrity!==void 0;if(r&&hn(n,"bundleUrl",t),s&&hn(n,"integrity",t),r!==s)throw new Pt(t,"bundleUrl and integrity must be provided together");const a="serverBundleUrl"in n&&n.serverBundleUrl!==void 0;if(a&&hn(n,"serverBundleUrl",t),"serverIntegrity"in n&&n.serverIntegrity!==void 0&&hn(n,"serverIntegrity",t),!r&&!a)throw new Pt(t,"expected at least one of bundleUrl+integrity or serverBundleUrl");let o;if(n.requires!==void 0){if(!Array.isArray(n.requires))throw new Pt(`${t}.requires`,"expected an array");o=n.requires.map((l,c)=>y3(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 y3(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new Pt(t,"expected an object");const n=e;return hn(n,"id",t),hn(n,"versionRange",t),{id:n.id,versionRange:n.versionRange}}function hn(e,t,n){const r=e[t];if(typeof r!="string"||r.length===0)throw new Pt(`${n}.${t}`,"expected a non-empty string")}function _3(e,t,n,r){if(!n.includes(e[t]))throw new Pt(`${r}.${t}`,`expected one of: ${n.join(", ")}`)}const ad=["sha256","sha384","sha512"];function w3(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(!ad.includes(n))throw new Error(`Unsupported SRI algorithm: ${n}. Supported: ${ad.join(", ")}`);if(!r)throw new Error(`Empty hash in SRI: ${e}`);return{algorithm:n,hash:r}}function k3(e){return`SHA-${e.slice(3)}`}function x3(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 Uc(e,t){const{algorithm:n,hash:r}=w3(t),s=k3(n),a=await crypto.subtle.digest(s,e),o=x3(a);if(o!==r)throw new Error(`Integrity check failed for ${n}. Expected: ${r}, got: ${o}`)}async function op(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=ip(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 uo(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 Uc(s,e.integrity),s}async function Hc(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 Uc(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 fo(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 Vs="sh3.shell.mode";function S3(e,t){return e.contributions.register(Vs,t)}const En="0.20.1",Kc="sh3:user:__sh3core__:theme";let ia=[];function I3(e){const t=Object.keys(e);for(const n of ia)t.includes(n)||document.documentElement.style.removeProperty(`--${n}`);for(const[n,r]of Object.entries(e))document.documentElement.style.setProperty(`--${n}`,r);ia=t;try{localStorage.setItem(Kc,JSON.stringify(e))}catch{}}function E3(){for(const e of ia)document.documentElement.style.removeProperty(`--${e}`);ia=[];try{localStorage.removeItem(Kc)}catch{}}function lp(){try{const e=localStorage.getItem(Kc);if(!e)return{};const t=JSON.parse(e);return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{}}catch{return{}}}function A3(){const e=lp();if(Object.keys(e).length!==0){for(const[t,n]of Object.entries(e))document.documentElement.style.setProperty(`--${t}`,n);ia=Object.keys(e)}}const Gn="/assets/icons-OMmH0JiM.svg",cp=Symbol("sh3.icon-sprite");function C3(e){Hl(cp,e)}function up(){return Ul(cp)}var T3=ac('<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>'),R3=ac('<svg class="sh3-btn__icon svelte-t4hi97" aria-hidden="true"><use></use></svg>'),L3=I('<span class="sh3-btn__label svelte-t4hi97"><!></span>'),M3=I("<button><!> <!></button>");function Cn(e,t){le(t,!0);let n=te(t,"variant",3,"default"),r=te(t,"disabled",3,!1),s=te(t,"type",3,"button");const a=up();function o(w){return w.includes("/")||w.endsWith(".svg")}const l=V(()=>t.icon?o(t.icon)?t.icon:`${t.sprite??a??Gn}#${t.icon}`:void 0);let c=B(!1);const u=V(()=>t.loading??i(c)),d=V(()=>n()==="icon"||!!t.icon&&!t.children);async function f(w){if(!t.onclick)return;const R=t.onclick(w);if(R&&typeof R.then=="function"){b(c,!0);try{await R}finally{b(c,!1)}}}var v=M3();let m;var S=p(v);{var y=w=>{var R=T3();k(w,R)},_=w=>{var R=R3(),A=p(R);h(R),N(()=>oe(A,"href",i(l))),k(w,R)};H(S,w=>{i(u)?w(y):i(l)&&w(_,1)})}var E=g(S,2);{var x=w=>{var R=L3(),A=p(R);Xt(A,()=>t.children),h(R),k(w,R)};H(E,w=>{t.children&&w(x)})}h(v),N(()=>{oe(v,"type",s()),m=_e(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),oe(v,"aria-busy",i(u)||void 0),oe(v,"aria-pressed",t.pressed??void 0),oe(v,"title",t.title),oe(v,"aria-label",t.ariaLabel??(i(d)?t.title:void 0))}),K("click",v,f),k(e,v),ce()}ge(["click"]);var P3=I('<span class="sh3-collapsible__title svelte-lvydsb"> </span>'),D3=I('<div class="sh3-collapsible__body svelte-lvydsb"><!></div>'),j3=I('<div><button class="sh3-collapsible__head svelte-lvydsb" type="button"><svg class="sh3-collapsible__caret svelte-lvydsb" aria-hidden="true" viewBox="0 0 16 16"><path d="M5 3l6 5-6 5" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg> <!></button> <!></div>');function z3(e,t){le(t,!0);let n=te(t,"open",15,!1);function r(){n(!n()),t.onopenchange?.(n())}var s=j3();let a;var o=p(s),l=g(p(o),2);{var c=v=>{var m=Ue(),S=ke(m);Xt(S,()=>t.header),k(v,m)},u=v=>{var m=P3(),S=p(m,!0);h(m),N(()=>j(S,t.title)),k(v,m)};H(l,v=>{t.header?v(c):t.title&&v(u,1)})}h(o);var d=g(o,2);{var f=v=>{var m=D3(),S=p(m);Xt(S,()=>t.children),h(m),k(v,m)};H(d,v=>{n()&&v(f)})}h(s),N(()=>{a=_e(s,1,"sh3-collapsible svelte-lvydsb",null,a,{"sh3-collapsible--open":n()}),oe(o,"aria-expanded",n())}),K("click",o,r),k(e,s),ce()}ge(["click"]);var O3=I('<span aria-hidden="true">*</span>'),N3=I('<span class="sh3-field__label svelte-m4dkl"> <!></span>'),q3=I('<span class="sh3-field__affix svelte-m4dkl"><!></span>'),B3=I('<span class="sh3-field__affix svelte-m4dkl"><!></span>'),F3=I("<span> </span>"),V3=I('<label><!> <span class="sh3-field__row svelte-m4dkl"><!> <input class="sh3-field__input svelte-m4dkl"/> <!></span> <!></label>');function U3(e,t){le(t,!0);let n=te(t,"value",15,""),r=te(t,"type",3,"text"),s=te(t,"disabled",3,!1),a=te(t,"invalid",3,!1),o=te(t,"size",3,"md"),l=te(t,"required",3,!1);const c=V(()=>a()&&!!t.error),u=V(()=>i(c)?t.error:t.helper);var d=V3();let f;var v=p(d);{var m=D=>{var L=N3(),T=p(L,!0),C=g(T);{var O=M=>{var P=O3();k(M,P)};H(C,M=>{l()&&M(O)})}h(L),N(()=>j(T,t.label)),k(D,L)};H(v,D=>{t.label&&D(m)})}var S=g(v,2),y=p(S);{var _=D=>{var L=q3(),T=p(L);Xt(T,()=>t.prefix),h(L),k(D,L)};H(y,D=>{t.prefix&&D(_)})}var E=g(y,2);Te(E);var x=g(E,2);{var w=D=>{var L=B3(),T=p(L);Xt(T,()=>t.suffix),h(L),k(D,L)};H(x,D=>{t.suffix&&D(w)})}h(S);var R=g(S,2);{var A=D=>{var L=F3();let T;var C=p(L,!0);h(L),N(()=>{T=_e(L,1,"sh3-field__helper svelte-m4dkl",null,T,{"sh3-field__helper--error":i(c)}),j(C,i(u))}),k(D,L)};H(R,D=>{i(u)&&D(A)})}h(d),N(()=>{f=_e(d,1,"sh3-field svelte-m4dkl",null,f,{"sh3-field--invalid":a(),"sh3-field--sm":o()==="sm"}),oe(E,"type",r()),oe(E,"placeholder",t.placeholder),E.disabled=s(),E.required=l(),oe(E,"autocomplete",t.autocomplete),oe(E,"aria-invalid",a()||void 0)}),K("input",E,()=>t.oninput?.(n())),He("blur",E,()=>t.onchange?.(n())),De(E,n),k(e,d),ce()}ge(["input"]);var H3=I('<span aria-hidden="true">*</span>'),K3=I('<span class="sh3-textarea__label svelte-668c6r"> <!></span>'),W3=I("<span> </span>"),Y3=I('<label><!> <textarea class="sh3-textarea__input svelte-668c6r"></textarea> <!></label>');function X3(e,t){le(t,!0);let n=te(t,"value",15,""),r=te(t,"disabled",3,!1),s=te(t,"invalid",3,!1),a=te(t,"size",3,"md"),o=te(t,"required",3,!1),l=te(t,"rows",3,3),c=te(t,"resize",3,"vertical");const u=V(()=>s()&&!!t.error),d=V(()=>i(u)?t.error:t.helper);var f=Y3();let v;var m=p(f);{var S=w=>{var R=K3(),A=p(R,!0),D=g(A);{var L=T=>{var C=H3();k(T,C)};H(D,T=>{o()&&T(L)})}h(R),N(()=>j(A,t.label)),k(w,R)};H(m,w=>{t.label&&w(S)})}var y=g(m,2);Ql(y);let _;var E=g(y,2);{var x=w=>{var R=W3();let A;var D=p(R,!0);h(R),N(()=>{A=_e(R,1,"sh3-textarea__helper svelte-668c6r",null,A,{"sh3-textarea__helper--error":i(u)}),j(D,i(d))}),k(w,R)};H(E,w=>{i(d)&&w(x)})}h(f),N(()=>{v=_e(f,1,"sh3-textarea svelte-668c6r",null,v,{"sh3-textarea--invalid":s(),"sh3-textarea--sm":a()==="sm"}),oe(y,"placeholder",t.placeholder),y.disabled=r(),y.required=o(),oe(y,"rows",l()),oe(y,"aria-invalid",s()||void 0),_=Ge(y,"",_,{resize:c()})}),K("input",y,()=>t.oninput?.(n())),He("blur",y,()=>t.onchange?.(n())),De(y,n),k(e,f),ce()}ge(["input"]);function G3(e,t,n){let r=e;return t!==void 0&&r<t&&(r=t),n!==void 0&&r>n&&(r=n),r}function J3(e,t){const n=t.min??0,r=Math.round((e-n)/t.step);return n+r*t.step}var Z3=I('<span class="sh3-num__label svelte-1qa0x3m"> </span>'),Q3=I('<span class="sh3-num__affix svelte-1qa0x3m"><!></span>'),$3=I('<span class="sh3-num__affix svelte-1qa0x3m"><!></span>'),eS=I('<label><!> <span class="sh3-num__row svelte-1qa0x3m"><!> <input class="sh3-num__input svelte-1qa0x3m" type="number"/> <!> <span class="sh3-num__steppers svelte-1qa0x3m"><button type="button" aria-label="Increase" class="svelte-1qa0x3m">▲</button> <button type="button" aria-label="Decrease" class="svelte-1qa0x3m">▼</button></span></span></label>');function tS(e,t){le(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(M){if(Number.isNaN(M))return;let P=G3(J3(M,{min:t.min,step:r()}),t.min,t.max);t.precision!==void 0&&(P=Number(P.toFixed(t.precision))),n(P)}function c(M){l(n()+M*r()),t.oninput?.(n())}let u=null,d=null,f=!1;function v(M){s()||(f=!0,c(M),u=setTimeout(()=>{let P=0;d=setInterval(()=>{c(M),P+=60,P>1500&&d&&(clearInterval(d),d=setInterval(()=>c(M),20))},60)},350))}function m(){u&&(clearTimeout(u),u=null),d&&(clearInterval(d),d=null),f&&(f=!1,t.onchange?.(n()))}var S=eS();let y;var _=p(S);{var E=M=>{var P=Z3(),q=p(P,!0);h(P),N(()=>j(q,t.label)),k(M,P)};H(_,M=>{t.label&&M(E)})}var x=g(_,2),w=p(x);{var R=M=>{var P=Q3(),q=p(P);Xt(q,()=>t.prefix),h(P),k(M,P)};H(w,M=>{t.prefix&&M(R)})}var A=g(w,2);Te(A);var D=g(A,2);{var L=M=>{var P=$3(),q=p(P);Xt(q,()=>t.suffix),h(P),k(M,P)};H(D,M=>{t.suffix&&M(L)})}var T=g(D,2),C=p(T),O=g(C,2);h(T),h(x),h(S),N(()=>{y=_e(S,1,"sh3-num svelte-1qa0x3m",null,y,{"sh3-num--invalid":a(),"sh3-num--sm":o()==="sm"}),oe(A,"min",t.min),oe(A,"max",t.max),oe(A,"step",r()),A.disabled=s(),oe(A,"aria-invalid",a()||void 0),Gs(A,n()),C.disabled=s(),O.disabled=s()}),K("input",A,M=>{const P=M.currentTarget.valueAsNumber;Number.isNaN(P)||(n(P),t.oninput?.(P))}),He("blur",A,()=>{l(n()),t.onchange?.(n())}),K("pointerdown",C,()=>v(1)),K("pointerup",C,m),He("pointerleave",C,m),K("pointerdown",O,()=>v(-1)),K("pointerup",O,m),He("pointerleave",O,m),k(e,S),ce()}ge(["input","pointerdown","pointerup"]);function vo(e){return e.filter(t=>!t.disabled)}function nS(e,t){const n=vo(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 rS(e,t){const n=vo(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 sS(e){return vo(e)[0]?.value}function aS(e){const t=vo(e);return t[t.length-1]?.value}var iS=I('<button type="button" role="radio"> </button>'),oS=I('<div role="radiogroup" tabindex="-1"></div>');function dp(e,t){le(t,!0);let n=te(t,"value",31,()=>fe(t.options[0]?.value??"")),r=te(t,"size",3,"md"),s=te(t,"disabled",3,!1);function a(u){n(u),t.onchange?.(u)}function o(u){if(s())return;let d;switch(u.key){case"ArrowRight":case"ArrowDown":d=nS(t.options,n());break;case"ArrowLeft":case"ArrowUp":d=rS(t.options,n());break;case"Home":d=sS(t.options);break;case"End":d=aS(t.options);break;default:return}u.preventDefault(),d!==void 0&&a(d)}var l=oS();let c;xe(l,21,()=>t.options,bt,(u,d)=>{var f=iS();let v;var m=p(f,!0);h(f),N(()=>{oe(f,"aria-checked",n()===i(d).value),oe(f,"tabindex",n()===i(d).value?0:-1),f.disabled=s()||i(d).disabled,v=_e(f,1,"svelte-17xsko9",null,v,{"sh3-seg__btn--active":n()===i(d).value}),j(m,i(d).label)}),K("click",f,()=>{!i(d).disabled&&!s()&&a(i(d).value)}),k(u,f)}),h(l),N(()=>c=_e(l,1,"sh3-seg svelte-17xsko9",null,c,{"sh3-seg--sm":r()==="sm"})),K("keydown",l,o),k(e,l),ce()}ge(["keydown","click"]);function lS(e,t){return e===t?"":t}function cS(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var uS=I('<button type="button"><!></button>'),dS=I('<div role="group"></div>');function fS(e,t){le(t,!0);let n=te(t,"multiple",3,!1),r=te(t,"value",31,()=>fe(n()?[]:t.options[0]?.value??"")),s=te(t,"disabled",3,!1),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(cS(f,d))}else r(lS(typeof r()=="string"?r():"",d));t.onchange?.(r())}}var c=dS();let u;xe(c,21,()=>t.options,bt,(d,f)=>{var v=uS();let m;var S=p(v);Xt(S,()=>i(f).icon),h(v),N((y,_)=>{oe(v,"title",i(f).tooltip),oe(v,"aria-label",i(f).tooltip),oe(v,"aria-pressed",y),v.disabled=s(),m=_e(v,1,"svelte-13knxr5",null,m,_)},[()=>o(i(f).value),()=>({"sh3-itg__btn--active":o(i(f).value)})]),K("click",v,()=>l(i(f).value)),k(d,v)}),h(c),N(()=>u=_e(c,1,"sh3-itg svelte-13knxr5",null,u,{"sh3-itg--sm":a()==="sm"})),k(e,c),ce()}ge(["click"]);function Si(e,t,n){return n===t?0:(e-t)/(n-t)*100}var vS=I('<span class="sh3-slider__tick svelte-13va6lu"></span>'),hS=I('<output class="sh3-slider__value svelte-13va6lu"> </output>'),pS=I('<div><div class="sh3-slider__track svelte-13va6lu"><div class="sh3-slider__fill svelte-13va6lu"></div> <!></div> <input type="range" class="sh3-slider__native svelte-13va6lu"/> <!></div>');function fp(e,t){le(t,!0);let n=te(t,"value",15,0),r=te(t,"min",3,0),s=te(t,"max",3,100),a=te(t,"step",3,1),o=te(t,"showValue",3,!1),l=te(t,"disabled",3,!1),c=te(t,"invalid",3,!1),u=te(t,"size",3,"md"),d=te(t,"orientation",3,"horizontal");const f=V(()=>Si(n(),r(),s()));var v=pS();let m;var S=p(v),y=p(S);let _;var E=g(y,2);{var x=D=>{var L=Ue(),T=ke(L);xe(T,17,()=>t.ticks,bt,(C,O)=>{var M=vS();let P;N(q=>P=Ge(M,"",P,q),[()=>({"--tick-pct":`${Si(i(O),r(),s())??""}%`})]),k(C,M)}),k(D,L)};H(E,D=>{t.ticks&&D(x)})}h(S);var w=g(S,2);Te(w);var R=g(w,2);{var A=D=>{var L=hS();let T;var C=p(L,!0);h(L),N(()=>{T=Ge(L,"",T,{"--pct":`${i(f)??""}%`}),j(C,n())}),k(D,L)};H(R,D=>{o()&&D(A)})}h(v),N(()=>{m=_e(v,1,`sh3-slider sh3-slider--${d()??""}`,"svelte-13va6lu",m,{"sh3-slider--sm":u()==="sm","sh3-slider--invalid":c()}),_=Ge(y,"",_,{"--pct":`${i(f)??""}%`}),oe(w,"min",r()),oe(w,"max",s()),oe(w,"step",a()),w.disabled=l(),oe(w,"aria-invalid",c()||void 0)}),K("input",w,()=>t.oninput?.(n())),K("change",w,()=>t.onchange?.(n())),De(w,n),k(e,v),ce()}ge(["input","change"]);function id(e,t,n){const[r,s]=e;return t==="low"?[Math.min(n,s),s]:[r,Math.max(n,r)]}var mS=I('<div><div class="sh3-range__track svelte-rdbrc5"><div class="sh3-range__fill svelte-rdbrc5"></div></div> <input type="range" class="sh3-range__native sh3-range__native--low svelte-rdbrc5"/> <input type="range" class="sh3-range__native sh3-range__native--high svelte-rdbrc5"/></div>');function bS(e,t){le(t,!0);let n=te(t,"value",31,()=>fe([0,100])),r=te(t,"min",3,0),s=te(t,"max",3,100),a=te(t,"step",3,1),o=te(t,"disabled",3,!1),l=te(t,"invalid",3,!1),c=te(t,"size",3,"md");const u=V(()=>Si(n()[0],r(),s())),d=V(()=>Si(n()[1],r(),s()));function f(R){n(id(n(),"low",R)),t.oninput?.(n())}function v(R){n(id(n(),"high",R)),t.oninput?.(n())}var m=mS();let S;var y=p(m),_=p(y);let E;h(y);var x=g(y,2);Te(x);var w=g(x,2);Te(w),h(m),N(()=>{S=_e(m,1,"sh3-range svelte-rdbrc5",null,S,{"sh3-range--sm":c()==="sm","sh3-range--invalid":l()}),E=Ge(_,"",E,{"--lo":`${i(u)??""}%`,"--hi":`${i(d)??""}%`}),oe(x,"min",r()),oe(x,"max",s()),oe(x,"step",a()),x.disabled=o(),Gs(x,n()[0]),oe(w,"min",r()),oe(w,"max",s()),oe(w,"step",a()),w.disabled=o(),Gs(w,n()[1])}),K("input",x,R=>f(parseFloat(R.currentTarget.value))),K("change",x,()=>t.onchange?.(n())),K("input",w,R=>v(parseFloat(R.currentTarget.value))),K("change",w,()=>t.onchange?.(n())),k(e,m),ce()}ge(["input","change"]);var gS=I('<div class="sh3-sg__channel svelte-1lqyi0d"><span class="sh3-sg__label svelte-1lqyi0d"> </span> <!></div>'),yS=I("<div></div>");function _S(e,t){le(t,!0);let n=te(t,"orientation",3,"horizontal"),r=te(t,"values",31,()=>fe({})),s=te(t,"showValues",3,!1),a=te(t,"disabled",3,!1),o=te(t,"size",3,"md");var l=yS();xe(l,21,()=>t.channels,c=>c.id,(c,u)=>{var d=gS(),f=p(d),v=p(f,!0);h(f);var m=g(f,2),S=()=>r()[i(u).id]??0,y=_=>r({...r(),[i(u).id]:_});{let _=V(()=>i(u).min??0),E=V(()=>i(u).max??100),x=V(()=>i(u).step??1);fp(m,{get orientation(){return n()},get min(){return i(_)},get max(){return i(E)},get step(){return i(x)},get disabled(){return a()},get size(){return o()},get showValue(){return s()},get value(){return S()},set value(w){y(w)},oninput:()=>t.oninput?.(r()),onchange:()=>t.onchange?.(r())})}h(d),N(()=>j(v,i(u).label)),k(c,d)}),h(l),N(()=>_e(l,1,`sh3-sg sh3-sg--${n()??""}`,"svelte-1lqyi0d")),k(e,l),ce()}var wS=I('<span class="sh3-swatch__label svelte-6ri2j2"> </span>'),kS=I('<label><!> <button type="button" class="sh3-swatch__btn svelte-6ri2j2"><span class="sh3-swatch__dot svelte-6ri2j2"></span><span class="sh3-swatch__hex svelte-6ri2j2"> </span></button></label>');function vp(e,t){le(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 y=await lt.color.pick({initial:n(),anchor:a});y!=null&&(n(y),t.onchange?.(y))}var l=kS();let c;var u=p(l);{var d=y=>{var _=wS(),E=p(_,!0);h(_),N(()=>j(E,t.label)),k(y,_)};H(u,y=>{t.label&&y(d)})}var f=g(u,2);let v;var m=g(p(f)),S=p(m,!0);h(m),h(f),We(f,y=>a=y,()=>a),h(l),N(()=>{c=_e(l,1,"sh3-swatch svelte-6ri2j2",null,c,{"sh3-swatch--sm":s()==="sm"}),f.disabled=r(),oe(f,"aria-label",`${t.label??"Color"??""} (current ${n()??""})`),v=Ge(f,"",v,{"--swatch-color":n()}),j(S,n())}),K("click",f,o),k(e,l),ce()}ge(["click"]);function xS(e,t){return!e||e.length===0?t?[]:null:t?Array.from(e):e[0]}function SS(e){return e===null?"":Array.isArray(e)?e.length===0?"":e.length===1?e[0].name:`${e.length} files`:e.name}var IS=I('<label><input class="sh3-fp__native svelte-24jk95" type="file"/> <span class="sh3-fp__btn svelte-24jk95" tabindex="-1"> </span> <span class="sh3-fp__name svelte-24jk95"> </span></label>');function ES(e,t){le(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(E){const x=E.currentTarget;n(xS(x.files,r())),t.onchange?.(n())}const u=V(()=>SS(n()));var d=IS();let f;var v=p(d),m=g(v,2),S=p(m,!0);h(m);var y=g(m,2),_=p(y,!0);h(y),h(d),N(()=>{f=_e(d,1,"sh3-fp svelte-24jk95",null,f,{"sh3-fp--sm":o()==="sm","sh3-fp--invalid":a()}),oe(v,"accept",t.accept),v.multiple=r(),v.disabled=s(),j(S,l()),j(_,i(u)||"no file")}),K("change",v,c),k(e,d),ce()}ge(["change"]);const AS=8;function CS(e){return e.length>=AS}function TS(e,t){if(!t)return e.slice();const n=t.toLowerCase();return e.filter(r=>r.label.toLowerCase().includes(n))}function RS(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 LS(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 MS(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var PS=I('<input class="sh3-listbox__search svelte-1tyxvrs" type="search" placeholder="Filter…"/>'),DS=I('<span aria-hidden="true"></span>'),jS=I('<div role="option" tabindex="-1"><!> <span class="sh3-listbox__label"> </span></div>'),zS=I('<div class="sh3-listbox__empty svelte-1tyxvrs">No matches</div>'),OS=I('<div class="sh3-listbox svelte-1tyxvrs" role="listbox" tabindex="-1"><!> <div class="sh3-listbox__list svelte-1tyxvrs"><!> <!></div></div>');function NS(e,t){le(t,!0);const n=V(()=>t.getValue());function r(){t.onClose?.(),t.close()}const s=V(()=>CS(t.options));function a(){if(t.multiple)return 0;const T=typeof i(n)=="string"?i(n):"",C=t.options.findIndex(O=>O.value===T&&!O.disabled);return C>=0?C:0}let o=B(""),l=B(fe(a())),c=B(void 0),u=B(void 0),d="",f=null;const v=V(()=>TS(t.options,i(o)));Pe(()=>{i(l)>=i(v).length&&b(l,0),m()});async function m(){if(await ya(),!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 y(T){const C=i(v)[T];!C||C.disabled||(t.onSelect(C.value),t.multiple||r())}function _(T){if(i(v).length!==0)switch(T.key){case"ArrowDown":T.preventDefault(),b(l,(i(l)+1)%i(v).length);break;case"ArrowUp":T.preventDefault(),b(l,(i(l)-1+i(v).length)%i(v).length);break;case"Home":T.preventDefault(),b(l,0);break;case"End":T.preventDefault(),b(l,i(v).length-1);break;case"Enter":T.preventDefault(),y(i(l));break;case" ":case"Space":T.preventDefault(),y(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 C=RS(i(v),d,i(l));C>=0&&b(l,C,!0)}}var E=OS(),x=p(E);{var w=T=>{var C=PS();Te(C),We(C,O=>b(u,O),()=>i(u)),De(C,()=>i(o),O=>b(o,O)),k(T,C)};H(x,T=>{i(s)&&T(w)})}var R=g(x,2),A=p(R);xe(A,17,()=>i(v),bt,(T,C,O)=>{var M=jS();oe(M,"data-idx",O);let P;var q=p(M);{var F=Z=>{var Y=DS();let ee;N(X=>ee=_e(Y,1,"sh3-listbox__check svelte-1tyxvrs",null,ee,X),[()=>({"sh3-listbox__check--on":S(i(C))})]),k(Z,Y)};H(q,Z=>{t.multiple&&Z(F)})}var W=g(q,2),$=p(W,!0);h(W),h(M),N((Z,Y)=>{oe(M,"aria-selected",Z),oe(M,"aria-disabled",i(C).disabled),P=_e(M,1,"svelte-1tyxvrs",null,P,Y),j($,i(C).label)},[()=>S(i(C)),()=>({"sh3-listbox__opt--active":O===i(l),"sh3-listbox__opt--selected":S(i(C))})]),K("click",M,()=>y(O)),He("mouseenter",M,()=>b(l,O,!0)),k(T,M)});var D=g(A,2);{var L=T=>{var C=zS();k(T,C)};H(D,T=>{i(v).length===0&&T(L)})}h(R),We(R,T=>b(c,T),()=>i(c)),h(E),N(()=>oe(E,"aria-multiselectable",t.multiple)),K("keydown",E,_),k(e,E),ce()}ge(["keydown","click"]);var qS=I('<span class="sh3-select__label svelte-1q3zxph"> </span>'),BS=I("<option> </option>"),FS=I('<label><!> <button type="button" class="sh3-select__btn svelte-1q3zxph" aria-haspopup="listbox"><span> </span> <span class="sh3-select__chevron svelte-1q3zxph" aria-hidden="true">▾</span></button> <select class="sh3-select__native svelte-1q3zxph" aria-hidden="true"></select></label>');function VS(e,t){le(t,!0);let n=te(t,"multiple",3,!1),r=te(t,"value",31,()=>fe(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=B(void 0),u=B(void 0),d=B(!1);const f=V(()=>LS(t.options,r(),n()));function v(){b(d,!1),i(c)?.focus()}async function m(){if(a()||i(d)||!i(c))return;b(d,!0);const C=lt.popup.show(NS,{anchor:i(c)},{options:t.options,getValue:()=>r(),multiple:n(),onSelect:P=>{if(n()){const q=Array.isArray(r())?r():[];r(MS(q,P))}else r(P);t.onchange?.(r())},onClose:v}),O=C.close;C.close=()=>{O(),v()},await ya(),document.querySelector(".sh3-listbox")?.focus()}function S(C){if(!(a()||i(d)))switch(C.key){case"ArrowDown":case"ArrowUp":case"Enter":case" ":C.preventDefault(),m();break}}function y(){i(u)&&(n()?r(Array.from(i(u).selectedOptions).map(C=>C.value)):r(i(u).value),t.onchange?.(r()))}var _=FS();let E;var x=p(_);{var w=C=>{var O=qS(),M=p(O,!0);h(O),N(()=>j(M,t.label)),k(C,O)};H(x,C=>{t.label&&C(w)})}var R=g(x,2),A=p(R);let D;var L=p(A,!0);h(A),Ot(2),h(R),We(R,C=>b(c,C),()=>i(c));var T=g(R,2);oe(T,"tabindex",-1),xe(T,21,()=>t.options,bt,(C,O)=>{var M=BS(),P=p(M,!0);h(M);var q={};N(F=>{uc(M,F),j(P,i(O).label),q!==(q=i(O).value)&&(M.value=(M.__value=i(O).value)??"")},[()=>n()?Array.isArray(r())&&r().includes(i(O).value):r()===i(O).value]),k(C,M)}),h(T),We(T,C=>b(u,C),()=>i(u)),h(_),N(()=>{E=_e(_,1,"sh3-select svelte-1q3zxph",null,E,{"sh3-select--invalid":o(),"sh3-select--sm":l()==="sm"}),R.disabled=a(),oe(R,"aria-expanded",i(d)),D=_e(A,1,"sh3-select__display svelte-1q3zxph",null,D,{"sh3-select__display--placeholder":!i(f)}),j(L,i(f)||s()),T.multiple=n(),T.disabled=a()}),K("click",R,m),K("keydown",R,S),K("change",T,y),k(e,_),ce()}ge(["click","keydown","change"]);function US(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 HS(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var KS=I('<input type="search" class="sh3-picker__search svelte-1rlwvrb" placeholder="Filter…"/>'),WS=I('<p class="sh3-picker__status svelte-1rlwvrb">Loading…</p>'),YS=I('<button type="button" class="sh3-picker__retry svelte-1rlwvrb">Retry</button>'),XS=I('<p class="sh3-picker__status sh3-picker__status--error svelte-1rlwvrb"> </p> <!>',1),GS=I('<p class="sh3-picker__status svelte-1rlwvrb"> </p>'),JS=I('<span class="sh3-picker__row-sub svelte-1rlwvrb"> </span>'),ZS=I('<label class="sh3-picker__row svelte-1rlwvrb"><input type="checkbox" class="sh3-base-check"/> <span class="sh3-picker__row-text svelte-1rlwvrb"><span class="sh3-picker__row-label svelte-1rlwvrb"> </span> <!></span></label>'),QS=I('<div><!> <div class="sh3-picker__list svelte-1rlwvrb"><!></div> <p class="sh3-picker__footer svelte-1rlwvrb"> </p></div>');function hp(e,t){le(t,!0);let n=te(t,"value",31,()=>fe([])),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=B("");const d=V(()=>t.items.length>=o()),f=V(()=>US(t.items,i(u))),v=V(()=>t.items.length),m=V(()=>n().length);function S(M){if(l())return;const P=HS(n(),M);n(P),t.onchange?.(P)}var y=QS();let _;var E=p(y);{var x=M=>{var P=KS();Te(P),N(()=>P.disabled=l()),De(P,()=>i(u),q=>b(u,q)),k(M,P)};H(E,M=>{i(d)&&M(x)})}var w=g(E,2),R=p(w);{var A=M=>{var P=WS();k(M,P)},D=M=>{var P=XS(),q=ke(P),F=p(q,!0);h(q);var W=g(q,2);{var $=Z=>{var Y=YS();K("click",Y,()=>t.onRetry?.()),k(Z,Y)};H(W,Z=>{t.onRetry&&Z($)})}N(()=>j(F,s())),k(M,P)},L=M=>{var P=GS(),q=p(P,!0);h(P),N(()=>j(q,a())),k(M,P)},T=M=>{var P=Ue(),q=ke(P);xe(q,17,()=>i(f),F=>F.id,(F,W)=>{var $=ZS(),Z=p($);Te(Z);var Y=g(Z,2),ee=p(Y),X=p(ee,!0);h(ee);var Q=g(ee,2);{var z=U=>{var G=JS(),J=p(G,!0);h(G),N(()=>j(J,i(W).sublabel)),k(U,G)};H(Q,U=>{i(W).sublabel&&U(z)})}h(Y),h($),N(U=>{wa(Z,U),Z.disabled=l(),j(X,i(W).label)},[()=>n().includes(i(W).id)]),K("change",Z,()=>S(i(W).id)),k(F,$)}),k(M,P)};H(R,M=>{r()?M(A):s()?M(D,1):t.items.length===0?M(L,2):M(T,-1)})}h(w);var C=g(w,2),O=p(C);h(C),h(y),N(()=>{_=_e(y,1,"sh3-picker svelte-1rlwvrb",null,_,{"sh3-picker--sm":c()==="sm","sh3-picker--disabled":l()}),j(O,`${i(m)??""} of ${i(v)??""} selected`)}),k(e,y),ce()}ge(["click","change"]);function pp(e,t){le(t,!0);const n=new Set(["sh3-admin-app","sh3-store-app"]);let r=te(t,"value",31,()=>fe([])),s=te(t,"disabled",3,!1),a=te(t,"size",3,"md");const o=V(()=>ys().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)}hp(e,{get items(){return i(o)},get value(){return r()},onchange:l,get disabled(){return s()},get size(){return a()},emptyText:"No apps installed."}),ce()}const nn=fe({users:[],loading:!1,error:null});let Ts=null;function od(){return Ts||(nn.loading=!0,nn.error=null,Ts=(async()=>{try{const e=await Ie("/api/admin/users");if(!e.ok){nn.error=`GET /api/admin/users failed: ${e.status}`;return}nn.users=await e.json()}catch(e){nn.error=e.message}finally{nn.loading=!1,Ts=null}})(),Ts)}function mp(e,t){le(t,!0);let n=te(t,"value",31,()=>fe([])),r=te(t,"disabled",3,!1),s=te(t,"size",3,"md");nn.users.length===0&&!nn.loading&&!nn.error&&od();const a=V(()=>nn.users.map(l=>({id:l.id,label:l.displayName||l.username,sublabel:l.username})));function o(l){n(l),t.onchange?.(l)}hp(e,{get items(){return i(a)},get value(){return n()},onchange:o,get loading(){return nn.loading},get error(){return nn.error},onRetry:()=>void od(),emptyText:"No users found.",get disabled(){return r()},get size(){return s()}}),ce()}var $S=I('<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 Wc(e,t){le(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=B(void 0),c=B(!1);const u=V(()=>n()?typeof n()=="string"?n():`${n().shardId}/${n().path}`:null);function d(A){n(A),t.onchange?.(A)}function f(){b(c,!1),i(l)?.focus()}async function v(){if(r()||i(c)||!i(l))return;b(c,!0);let A=[];try{A=await t.listDocuments()}catch{b(c,!1);return}const D=lt.modal.open(El,{mode:t.mode,docs:A,onCommit:T=>{d(T)},onCancel:()=>{}},{dismissOnBackdrop:!0,boxStyle:"max-width: min(800px, 95vw);"}),L=D.close;D.close=()=>{L(),f()}}var m=$S();let S;var y=p(m),_=p(y),E=p(_,!0);h(_);var x=g(_,2);let w;var R=p(x,!0);h(x),Ot(2),h(y),We(y,A=>b(l,A),()=>i(l)),h(m),N(()=>{S=_e(m,1,"sh3-dfp svelte-hcr0gi",null,S,{"sh3-dfp--sm":a()==="sm","sh3-dfp--invalid":s()}),y.disabled=r(),oe(y,"aria-expanded",i(c)),j(E,o()),w=_e(x,1,"sh3-dfp__path svelte-hcr0gi",null,w,{"sh3-dfp__path--empty":!i(u)}),j(R,i(u)??(t.mode==="open"?"no document":"choose path…"))}),K("click",y,v),k(e,m),ce()}ge(["click"]);function eI(e,t){le(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…");Wc(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)}}),ce()}function tI(e,t){le(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…");Wc(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)}}),ce()}const nI=/^[a-zA-Z0-9.\-_]+$/,rI=/^[a-zA-Z0-9.\-_]*$/;function Ii(e,t){if(e.length===0)throw new Error(`fieldAddress: ${t} is empty`);if(!nI.test(e))throw new Error(`fieldAddress: invalid ${t} "${e}" (must match [a-zA-Z0-9.\\-_]+)`)}function bp(e){if(!rI.test(e))throw new Error(`fieldAddress: invalid slotId "${e}"`)}function sI(e){return Ii(e.shardId,"shardId"),Ii(e.fieldId,"fieldId"),e.slotId!==void 0&&bp(e.slotId),`${e.shardId}::${e.slotId??""}::${e.fieldId}`}function aI(e){const t=e.split("::");if(t.length!==3)throw new Error(`fieldAddress: malformed "${e}" (expected three ::-separated parts)`);const[n,r,s]=t;Ii(n,"shardId"),Ii(s,"fieldId"),bp(r);const a={shardId:n,fieldId:s};return r.length>0&&(a.slotId=r),a}const iI={hotInstall:typeof Blob<"u"&&typeof URL.createObjectURL=="function"},gp=["__sh3core__","shell","sh3-store","sh3-admin"],yp=Object.freeze(Object.defineProperty({__proto__:null,AppPicker:pp,Button:Cn,COLOR_PICKER_POINT:ah,CONFLICT_RENDERER_POINT:nh,Collapsible:z3,ColorSwatch:vp,ConflictPermissionError:rh,ConflictSessionOrphanedError:Nk,ConsentDeniedError:np,DocumentFilePicker:Wc,DocumentOpener:eI,DocumentSaver:tI,FRAMEWORK_SHARD_IDS:gp,Field:U3,FilePicker:ES,IconToggleGroup:fS,NumberInput:tS,PERMISSION_DOCUMENTS_BROWSE:Zh,PERMISSION_DOCUMENTS_READ:Qh,PERMISSION_DOCUMENTS_WRITE:$h,PERMISSION_KEYS_MINT:ep,PERMISSION_STATE_MANAGE:Js,PERMISSION_SYNC_PEER:zx,PERMISSION_SYNC_POLICY:Ox,RangeSlider:bS,SHELL_MODE_CONTRIBUTION_POINT:Vs,ScopeEscalationError:tp,Segmented:dp,Select:VS,Slider:fp,SliderGroup:_S,Textarea:X3,UserPicker:mp,VERSION:En,activeShards:Rr,buildPackageMeta:fo,capabilities:iI,clearTokenOverrides:E3,closeTab:zc,collapseChild:Y0,dockFloat:Mh,dockIntoActiveLayout:Nc,erroredShards:ki,expandChild:X0,fetchBundle:uo,fetchRegistries:op,fieldAddressFromString:aI,fieldAddressToString:sI,focusTab:W0,focusView:to,getActiveApp:hc,getAuthHeader:ao,getIconSprite:up,getTokenOverrides:lp,getUser:br,inspectActiveLayout:Ch,isAdmin:zt,isAuthenticated:kl,isGuest:Bh,launchApp:Xn,listRegisteredApps:ys,listVerbs:bc,locateSlot:zh,popoutView:Lh,provideIcons:C3,pushNavEntry:Aw,registerConsentListener:rp,registerShellMode:S3,registeredShards:un,resolveConsent:Cl,returnToHome:ks,runVerbProgrammatic:Uh,setTokenOverrides:I3,sh3:lt,spawnSatellite:co,spliceIntoActiveLayout:K0,subscribeKeyRevocation:Vc,unregisterApp:Dc,validateRegistryIndex:ip},Symbol.toStringTag,{value:"Module"})),oI="/assets/SH3-BG5NVpSD.png",lI="https://cdn.jsdelivr.net/npm/p5@1.11.13/lib/p5.min.js";let Rs=null;function cI(){return Rs||(Rs=new Promise((e,t)=>{const n=window.p5;if(n){e(n);return}const r=document.createElement("script");r.src=lI,r.async=!0,r.onload=()=>e(window.p5),r.onerror=s=>{Rs=null,t(s)},document.head.appendChild(r)}),Rs)}var uI=I('<h1 class="sh3-title-fallback svelte-foqg2v">SH3</h1>'),dI=I('<div class="sh3-title svelte-foqg2v"></div>');function fI(e,t){le(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=B(void 0),v=null,m=B(!1);const S=()=>w=>{const A=getComputedStyle(document.documentElement).getPropertyValue("--sh3-accent").trim();let D,L,T=!1;w.setup=()=>{w.createCanvas(c,u),w.noSmooth(),w.noStroke(),w.textAlign(w.CENTER,w.CENTER),w.textFont("monospace"),w.textSize(10),w.textStyle(w.BOLD),L=w.loadImage(oI,()=>{D=w.createGraphics(r,s),D.pixelDensity(1),D.image(L,0,0,r,s),D.loadPixels(),T=!0},()=>{b(m,!0)})},w.draw=()=>{if(!T)return;const C=w.millis()*.001;let O;w.clear(),w.background(0,0),w.fill(A);for(let M=0;M<s;M++)for(let P=0;P<r;P++){const q=(M*r+P)*4;if(D.pixels[q]<64){if(O=w.noise(P/r*2,M/s*2,C*.15),O>.33)continue;w.text(n[Math.floor(O*n.length*.25)],(P+.5)*a,(M+.5)*o);continue}O=w.noise(P/r*4,M/s*4,C*.5),w.text(n[Math.floor(O*n.length)],(P+.5)*a,(M+.5)*o)}}};Pe(()=>{if(i(m))return;let w=!1;return cI().then(R=>{if(!(w||!i(f)))try{v=new R(S(),i(f))}catch(A){console.error("[Sh3Title] p5 sketch failed to start",A),b(m,!0)}}).catch(R=>{console.error("[Sh3Title] failed to load p5 from CDN",R),b(m,!0)}),()=>{w=!0,v&&(v.remove(),v=null)}});var y=Ue(),_=ke(y);{var E=w=>{var R=uI();k(w,R)},x=w=>{var R=dI();Ge(R,"",{},{width:"216.7195767195767px",height:"80px","--sh3-title-scale":d}),We(R,A=>b(f,A),()=>i(f)),k(w,R)};H(_,w=>{i(m)?w(E):w(x,-1)})}k(e,y),ce()}var vI=I('<div class="home-section-body"><!></div>'),hI=I('<section class="home-section svelte-1bwi92v"><button type="button" class="home-section-header svelte-1bwi92v"><svg aria-hidden="true"><use></use></svg> <span class="home-section-title svelte-1bwi92v"> </span></button> <!></section>');function Ei(e,t){const n=te(t,"defaultExpanded",3,!0),r=V(()=>`sh3:home-section:${t.persistKey}`),s=V(()=>`sh3-home-section-${t.persistKey}`);function a(){if(typeof localStorage>"u")return n();const E=localStorage.getItem(`sh3:home-section:${t.persistKey}`);return E==="1"?!0:E==="0"?!1:n()}let o=B(fe(a()));function l(){b(o,!i(o)),typeof localStorage<"u"&&localStorage.setItem(i(r),i(o)?"1":"0")}var c=hI(),u=p(c),d=p(u);let f;var v=p(d);h(d);var m=g(d,2),S=p(m,!0);h(m),h(u);var y=g(u,2);{var _=E=>{var x=vI(),w=p(x);Xt(w,()=>t.children),h(x),N(()=>oe(x,"id",i(s))),k(E,x)};H(y,E=>{i(o)&&E(_)})}h(c),N(()=>{oe(u,"aria-expanded",i(o)),oe(u,"aria-controls",i(s)),f=_e(d,0,"home-section-chevron svelte-1bwi92v",null,f,{open:i(o)}),oe(v,"href",`${Gn}#chevron-right`),j(S,t.title)}),K("click",u,l),k(e,c)}ge(["click"]);async function Br(e,t){const n=await Ie(e,t);if(!n.ok)throw new Error(`${t?.method??"GET"} ${e} failed: ${n.status}`);return n.json()}const Qa={async list(){return(await Br("/api/projects",{method:"GET"})).projects},async listAll(){return(await Br("/api/projects/all",{method:"GET"})).projects},async get(e){return Br(`/api/projects/${encodeURIComponent(e)}`,{method:"GET"})},async create(e){return Br("/api/projects",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e)})},async update(e,t){return Br(`/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 Br(`/api/projects/${encodeURIComponent(e)}${n}`,{method:"DELETE"})}};function pI(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 mI=I('<span class="tab-dirty svelte-1kxcyhf" title="Unsaved changes"></span>'),bI=I('<span class="tab-icon svelte-1kxcyhf"> </span>'),gI=I('<span class="tab-close svelte-1kxcyhf" role="button" tabindex="-1" title="Close">&#x2715;</span>'),yI=I('<button type="button" role="tab"><!> <!> <span class="tab-label svelte-1kxcyhf"> </span> <!></button>'),_I=I('<div class="drop-indicator svelte-1kxcyhf"></div>'),wI=I("<div><!></div>"),kI=I('<div class="tabbed-panel svelte-1kxcyhf"><div class="tab-strip svelte-1kxcyhf" role="tablist" tabindex="-1"><!> <!></div> <div class="tab-body svelte-1kxcyhf" role="tabpanel"></div></div>');function _p(e,t){le(t,!0);function n(_){t.clickGuard?.()||t.onActiveChange?.(_)}function r(_,E){E.stopPropagation(),t.onClose?.(_)}let s=B(void 0);const a=fe([]);let o=B(null);function l(_,E){if(!t.dragController)return;const x=a[_];x&&t.dragController.onPointerDown(_,E,x)}function c(_){if(!t.dragController||!t.dragController.isDragging||!i(s))return;const E=i(s).getBoundingClientRect(),x=a.filter(w=>!!w).map(w=>w.getBoundingClientRect());b(o,t.dragController.onStripHover(E,_.clientX,_.clientY,x),!0)}function u(){t.dragController&&(b(o,null),t.dragController.onStripLeave())}var d=kI(),f=p(d),v=p(f);xe(v,17,()=>t.labels,bt,(_,E,x)=>{var w=yI();let R;var A=p(w);{var D=q=>{var F=mI();k(q,F)};H(A,q=>{t.dirty?.[x]&&q(D)})}var L=g(A,2);{var T=q=>{var F=bI(),W=p(F,!0);h(F),N(()=>j(W,t.icons[x])),k(q,F)};H(L,q=>{t.icons?.[x]&&q(T)})}var C=g(L,2),O=p(C,!0);h(C);var M=g(C,2);{var P=q=>{var F=gI();N(()=>oe(F,"data-testid",t.tabIds?.[x]?`tab-close-${t.tabIds[x]}`:void 0)),K("click",F,W=>r(x,W)),K("keydown",F,W=>{(W.key==="Enter"||W.key===" ")&&r(x,W)}),k(q,F)};H(M,q=>{t.closable?.[x]&&q(P)})}h(w),We(w,(q,F)=>a[F]=q,q=>a?.[q],()=>[x]),N(()=>{R=_e(w,1,"tab svelte-1kxcyhf",null,R,{active:t.activeTab===x}),oe(w,"aria-selected",t.activeTab===x),j(O,i(E))}),K("click",w,()=>n(x)),K("pointerdown",w,q=>l(x,q)),He("auxclick",w,q=>{q.button===1&&t.closable?.[x]&&r(x,q)}),k(_,w)});var m=g(v,2);{var S=_=>{const E=V(()=>pI(i(o),a,i(s)));var x=Ue(),w=ke(x);{var R=A=>{var D=_I();N(()=>Ge(D,`left: ${i(E).left??""}px; height: ${i(E).height??""}px; top: ${i(E).top??""}px;`)),k(A,D)};H(w,A=>{i(E)&&A(R)})}k(_,x)};H(m,_=>{i(o)!==null&&t.dragController?.isDragging&&_(S)})}h(f),We(f,_=>b(s,_),()=>i(s));var y=g(f,2);xe(y,21,()=>t.labels,bt,(_,E,x)=>{var w=wI();let R;var A=p(w);Xt(A,()=>t.body,()=>x),h(w),N(()=>R=_e(w,1,"tab-body-pane svelte-1kxcyhf",null,R,{active:t.activeTab===x})),k(_,w)}),h(y),h(d),K("pointermove",f,c),He("pointerleave",f,u),k(e,d),ce()}ge(["pointermove","click","pointerdown","keydown"]);var xI=I(`<div class="delete-project-dialog svelte-6j13aq"><div class="delete-project-dialog__title svelte-6j13aq"> </div> <div class="delete-project-dialog__body svelte-6j13aq">The project record will be removed and any members will lose access.
9
+ Documents already written under the project's namespace remain on disk
10
+ unless you tick the option below.</div> <label class="delete-project-dialog__opt svelte-6j13aq"><input type="checkbox" class="svelte-6j13aq"/> <span>Also delete project files <code class="delete-project-dialog__path svelte-6j13aq"> </code></span></label> <div class="delete-project-dialog__actions svelte-6j13aq"><button type="button" class="delete-project-dialog__btn svelte-6j13aq" data-delete-project-cancel="">Cancel</button> <button type="button" class="delete-project-dialog__btn delete-project-dialog__btn--danger svelte-6j13aq" data-delete-project-confirm="">Delete</button></div></div>`);function SI(e,t){le(t,!0);let n=B(void 0),r=B(!1),s=B(!1);Pe(()=>{i(n)?.focus()});async function a(){if(!i(r)){b(r,!0);try{await t.onConfirm({wipeData:i(s)})}finally{t.close()}}}function o(){i(r)||(t.onCancel?.(),t.close())}var l=xI(),c=p(l),u=p(c);h(c);var d=g(c,4),f=p(d);Te(f);var v=g(f,2),m=g(p(v)),S=p(m);h(m),h(v),h(d);var y=g(d,2),_=p(y);We(_,x=>b(n,x),()=>i(n));var E=g(_,2);h(y),h(l),N(()=>{j(u,`Delete project '${t.projectName??""}'?`),f.disabled=i(r),j(S,`<dataDir>/docs/${t.projectId??""}/`),_.disabled=i(r),E.disabled=i(r)}),li(f,()=>i(s),x=>b(s,x)),K("click",_,o),K("click",E,a),k(e,l),ce()}ge(["click"]);var II=I('<label class="field svelte-1oy3640"><span class="svelte-1oy3640">App allowlist</span> <!></label>'),EI=I('<span class="hint svelte-1oy3640">Your id: <code class="svelte-1oy3640"> </code> </span>'),AI=I('<label class="field svelte-1oy3640"><span class="svelte-1oy3640">Members</span> <!> <!></label>'),CI=I('<p class="muted svelte-1oy3640">Loading mounts...</p>'),TI=I('<p class="error svelte-1oy3640"> </p>'),RI=I('<p class="muted svelte-1oy3640">No mounts configured. Create mounts first.</p>'),LI=I('<li class="mount-row svelte-1oy3640"><label class="svelte-1oy3640"><input class="sh3-base-check svelte-1oy3640" type="checkbox"/> <span class="mount-status svelte-1oy3640"></span> <span class="mount-label svelte-1oy3640"> </span> <span class="mount-id svelte-1oy3640"> </span></label></li>'),MI=I('<ul class="mount-list svelte-1oy3640"></ul>'),PI=I('<div class="tab-pane svelte-1oy3640"><!></div>'),DI=I('<p class="project-id svelte-1oy3640">ID: <code class="svelte-1oy3640"> </code></p>'),jI=I('<p class="error svelte-1oy3640"> </p>'),zI=I('<button type="button" class="danger svelte-1oy3640">Delete</button>'),OI=I('<div class="project-manage svelte-1oy3640"><header class="header svelte-1oy3640"><h2 class="svelte-1oy3640"> </h2> <!> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">Name</span> <input type="text" placeholder="Acme Website" class="svelte-1oy3640"/></label> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">Description</span> <textarea class="svelte-1oy3640"></textarea></label></header> <div class="tabs svelte-1oy3640"><!></div> <!> <div class="actions svelte-1oy3640"><button type="button" class="primary svelte-1oy3640"> </button> <button type="button" class="svelte-1oy3640">Cancel</button> <!></div></div>');function NI(e,t){le(t,!0);const n=(ae,he=Mt)=>{var Se=PI(),ne=p(Se);{var re=pe=>{var Le=II(),Ne=g(p(Le),2);pp(Ne,{get disabled(){return i(d)},get value(){return i(u)},set value(ze){b(u,ze,!0)}}),h(Le),k(pe,Le)},me=pe=>{var Le=AI(),Ne=g(p(Le),2);mp(Ne,{get disabled(){return i(d)},get value(){return i(c)},set value(Xe){b(c,Xe,!0)}});var ze=g(Ne,2);{var rt=Xe=>{var Ke=EI(),Ve=g(p(Ke)),st=p(Ve,!0);h(Ve);var kt=g(Ve);h(Ke),N(()=>{j(st,i(a).id),j(kt,` (${i(a).username??i(a).displayName??""})`)}),k(Xe,Ke)};H(ze,Xe=>{i(a)&&Xe(rt)})}h(Le),k(pe,Le)},ye=pe=>{var Le=Ue(),Ne=ke(Le);{var ze=Ve=>{var st=CI();k(Ve,st)},rt=Ve=>{var st=TI(),kt=p(st,!0);h(st),N(()=>j(kt,i(_))),k(Ve,st)},Xe=Ve=>{var st=RI();k(Ve,st)},Ke=Ve=>{var st=MI();xe(st,21,()=>i(m),kt=>kt.id,(kt,xt)=>{var Nn=LI(),zr=p(Nn),lr=p(zr);Te(lr);var cr=g(lr,2),Or=g(cr,2),po=p(Or,!0);h(Or);var Is=g(Or,2),mo=p(Is,!0);h(Is),h(zr),h(Nn),N(ur=>{oe(Nn,"data-mount-row",i(xt).id),wa(lr,ur),lr.disabled=i(d),oe(cr,"data-status",i(xt).status),j(po,i(xt).label??i(xt).id),j(mo,i(xt).id)},[()=>i(S).has(i(xt).id)]),K("change",lr,ur=>M(i(xt).id,ur.currentTarget.checked)),k(kt,Nn)}),h(st),k(Ve,st)};H(Ne,Ve=>{i(y)?Ve(ze):i(_)?Ve(rt,1):i(m).length===0?Ve(Xe,2):Ve(Ke,-1)})}k(pe,Le)};H(ne,pe=>{he()===0?pe(re):he()===1?pe(me,1):pe(ye,-1)})}h(Se),k(ae,Se)};let r=te(t,"project",3,null);const s=V(()=>r()!==null),a=V(br);let o=B(fe(Me(()=>r()?.name??""))),l=B(fe(Me(()=>r()?.description??""))),c=B(fe(Me(()=>{if(r())return[...r().members];const ae=br()?.id;return ae?[ae]:[]}))),u=B(fe(Me(()=>r()?[...r().appAllowlist]:[]))),d=B(!1),f=B(null),v=B(0),m=B(fe([])),S=B(fe(new Set)),y=B(!0),_=B(null),E=fe(Me(()=>r()?[...r().appAllowlist]:[])),x=fe(Me(()=>{if(r())return[...r().members];const ae=br()?.id;return ae?[ae]:[]})),w=B(fe(new Set));function R(ae,he){if(ae.length!==he.length)return!1;const Se=[...ae].sort(),ne=[...he].sort();return Se.every((re,me)=>re===ne[me])}function A(ae,he){if(ae.size!==he.size)return!1;for(const Se of ae)if(!he.has(Se))return!1;return!0}const D=V(()=>!R(i(u),E)),L=V(()=>!R(i(c),x)),T=V(()=>!A(i(S),i(w)));async function C(){if(!i(o).trim()){b(f,"Name is required");return}b(d,!0),b(f,null);const ae={name:i(o).trim(),description:i(l).trim()||void 0,members:i(c),appAllowlist:i(u)};try{const Se=(i(s)&&r()?await Qa.update(r().id,ae):await Qa.create(ae)).id,ne=[],re=[];for(const ye of i(S))i(w).has(ye)||ne.push(ye);for(const ye of i(w))i(S).has(ye)||re.push(ye);const me=[];for(const ye of ne)try{const pe=await Ie("/api/admin/mount-attachments",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({mountId:ye,tenantId:Se})});pe.ok||me.push(`attach ${ye}: ${pe.status}`)}catch(pe){me.push(`attach ${ye}: ${pe.message}`)}for(const ye of re)try{const pe=await Ie("/api/admin/mount-attachments",{method:"DELETE",headers:{"content-type":"application/json"},body:JSON.stringify({mountId:ye,tenantId:Se})});!pe.ok&&pe.status!==204&&me.push(`detach ${ye}: ${pe.status}`)}catch(pe){me.push(`detach ${ye}: ${pe.message}`)}if(me.length>0){b(f,`Mount changes failed: ${me.join("; ")}`),b(w,new Set(i(S)),!0),await Us();return}b(w,new Set(i(S)),!0),await Us(),t.onClose()}catch(he){b(f,he.message,!0)}finally{b(d,!1)}}function O(){if(!i(s)||!r())return;const ae=r();dn.open(SI,{projectName:ae.name,projectId:ae.id,onConfirm:async({wipeData:he})=>{b(d,!0),b(f,null);try{await Qa.delete(ae.id,{wipeData:he}),await Us(),t.onClose()}catch(Se){b(f,Se.message,!0)}finally{b(d,!1)}}})}function M(ae,he){const Se=new Set(i(S));he?Se.add(ae):Se.delete(ae),b(S,Se,!0)}async function P(){b(y,!0),b(_,null);try{const ae=[Ie("/api/admin/mounts")];r()&&ae.push(Ie(`/api/admin/tenants/${encodeURIComponent(r().id)}/attachments`));const he=await Promise.all(ae),Se=he[0],ne=he[1];if(!Se.ok)throw new Error(`GET /api/admin/mounts failed: ${Se.status}`);if(b(m,await Se.json(),!0),ne){if(!ne.ok)throw new Error(`GET tenant attachments failed: ${ne.status}`);const re=await ne.json();b(S,new Set(re.map(me=>me.mountId)),!0),b(w,new Set(i(S)),!0)}}catch(ae){b(_,ae.message,!0)}finally{b(y,!1)}}P();var q=OI(),F=p(q),W=p(F),$=p(W,!0);h(W);var Z=g(W,2);{var Y=ae=>{var he=DI(),Se=g(p(he)),ne=p(Se,!0);h(Se),h(he),N(()=>j(ne,r().id)),k(ae,he)};H(Z,ae=>{i(s)&&ae(Y)})}var ee=g(Z,2),X=g(p(ee),2);Te(X),h(ee);var Q=g(ee,2),z=g(p(Q),2);Ql(z),oe(z,"rows",2),h(Q),h(F);var U=g(F,2),G=p(U);{let ae=V(()=>[i(D),i(L),i(T)]);_p(G,{labels:["Apps","Users","Mounts"],get activeTab(){return i(v)},onActiveChange:he=>b(v,he,!0),get dirty(){return i(ae)},get body(){return n}})}h(U);var J=g(U,2);{var ie=ae=>{var he=jI(),Se=p(he,!0);h(he),N(()=>j(Se,i(f))),k(ae,he)};H(J,ae=>{i(f)&&ae(ie)})}var ve=g(J,2),se=p(ve),ue=p(se,!0);h(se);var be=g(se,2),we=g(be,2);{var Ee=ae=>{var he=zI();N(()=>he.disabled=i(d)),K("click",he,O),k(ae,he)};H(we,ae=>{i(s)&&ae(Ee)})}h(ve),h(q),N(()=>{j($,i(s)?`Edit ${r().name}`:"Create Project"),X.disabled=i(d),z.disabled=i(d),se.disabled=i(d),j(ue,i(s)?"Save":"Create"),be.disabled=i(d)}),De(X,()=>i(o),ae=>b(o,ae)),De(z,()=>i(l),ae=>b(l,ae)),K("click",se,C),K("click",be,function(...ae){t.onClose?.apply(this,ae)}),k(e,q),ce()}ge(["change","click"]);const rn=fe({projects:[],loading:!1,error:null});async function Us(){rn.loading=!0,rn.error=null;try{rn.projects=await Qa.list()}catch(e){rn.error=e.message}finally{rn.loading=!1}}const Tl="projects:manage";let Rl=null;function qI(){const e=Rl;return Rl=null,e}function Ll(e){Rl=e,Be.open(Tl,{title:e?`Edit ${e.name}`:"Create Project",size:{w:560,h:620},dismissable:!0})}const wp={manifest:{id:"__projects__",label:"Projects",version:En,views:[{id:Tl,label:"Project Manager"}]},activate(e){Us(),typeof document<"u"&&document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&Us()});const t={mount(r,s){const a=qI(),o=Be.list(),l=o.length>0?o[o.length-1].id:null,u=Qe(NI,{target:r,props:{project:a,onClose:()=>{l&&Be.close(l)}}});return{unmount(){ot(u)}}}};e.registerView(Tl,t),e.actions.register({id:"sh3.project.create",label:"Create Project…",scope:["home","app"],paletteItem:!0,disabled:()=>!zt(),run:()=>{zt()&&Ll(null)}}),e.actions.register({id:"sh3.project.manage",label:"Manage Project…",scope:["home","app"],submenu:!0,paletteItem:!0,disabled:()=>!zt()});const n=new Map;ms(()=>{Pe(()=>{const r=new Set;for(const s of rn.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=rn.projects.find(l=>l.id===s.id);o&&Ll(o)}});n.set(s.id,a)}for(const s of[...n.keys()])r.has(s)||(n.get(s)(),n.delete(s))})})},autostart(){}};var BI=I('<button type="button" class="project-card-edit svelte-yosqc3" aria-label="Edit project" title="Edit project">⚙</button>'),FI=I('<div class="project-card-wrap svelte-yosqc3"><button type="button"><span class="project-name svelte-yosqc3"> </span> <span class="project-meta svelte-yosqc3"> </span></button> <!></div>'),VI=I('<div class="projects-grid svelte-yosqc3"></div>');function UI(e,t){le(t,!0);const n=V(()=>rn.projects.length>0),r=V(()=>sn.activeProjectId),s=V(zt);function a(d){Eh(i(r)===d?null:d)}function o(d,f){f.stopPropagation();const v=rn.projects.find(m=>m.id===d)??null;v&&Ll(v)}var l=Ue(),c=ke(l);{var u=d=>{Ei(d,{title:"Projects",persistKey:"projects",children:(f,v)=>{var m=VI();xe(m,21,()=>rn.projects,S=>S.id,(S,y)=>{var _=FI(),E=p(_);let x;var w=p(E),R=p(w,!0);h(w);var A=g(w,2),D=p(A);h(A),h(E);var L=g(E,2);{var T=C=>{var O=BI();K("click",O,M=>o(i(y).id,M)),k(C,O)};H(L,C=>{i(s)&&C(T)})}h(_),N(()=>{x=_e(E,1,"project-card svelte-yosqc3",null,x,{active:i(r)===i(y).id}),oe(E,"title",i(y).description??`${i(y).members.length} member${i(y).members.length===1?"":"s"}`),j(R,i(y).name),j(D,`${i(y).members.length??""} member${i(y).members.length===1?"":"s"}`)}),K("click",E,()=>a(i(y).id)),k(S,_)}),h(m),k(f,m)},$$slots:{default:!0}})};H(c,d=>{i(n)&&d(u)})}k(e,l),ce()}ge(["click"]);let Dt=null;function HI(e){Dt=e}function KI(){Dt=null}function Lr(){return Dt?.user.layouts??[]}function WI(e){Dt&&(Dt.user.layouts=[...Dt.user.layouts,e])}function kp(e,t){if(!Dt)return;const n=Dt.user.layouts.findIndex(s=>s.id===e);if(n<0)return;const r=[...Dt.user.layouts];r[n]={...r[n],...t},Dt.user.layouts=r}function YI(e){Dt&&(Dt.user.layouts=Dt.user.layouts.filter(t=>t.id!==e))}function XI(){Dt={ephemeral:{},session:{},workspace:{},user:{layouts:[]}}}XI();function ho(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=ho(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 xp(e){return JSON.parse(JSON.stringify(e))}function GI(e,t){const n=Be.list().find(s=>s.id===e);if(!n)return null;const r=ho(n.content,t);return r===null?null:{size:{w:n.size.w,h:n.size.h},content:xp(r)}}function Sp(e,t,n){const r=ho(e.content,t);return r===null?(n(`Saved layout "${e.name}" has no available standalone views`,"warn"),""):Be.openWithContent({content:xp(r),size:{w:e.size.w,h:e.size.h},title:e.name})}var JI=I('<button type="button" data-sh3-scope="element:saved-layout"><span class="saved-layout-card-square svelte-1ncltuf"><svg class="saved-layout-card-icon svelte-1ncltuf"><use></use></svg></span> <span class="saved-layout-card-label svelte-1ncltuf"> </span></button>'),ZI=I('<div class="saved-layouts-grid svelte-1ncltuf"></div>');function QI(e,t){le(t,!0);const n=V(Lr),r=$i("__layouts__");function s(f){return aa().some(v=>v.viewId===f)}function a(f,v){Dn.notify(f,{level:v})}function o(f){const v=Lr().find(m=>m.id===f);v&&Sp(v,s,a)}function l(f,v){f.preventDefault(),r.set({type:"saved-layout",ref:{layoutId:v}}),lt.actions.openContextMenu({x:f.clientX,y:f.clientY,scope:{element:"saved-layout"}})}var c=Ue(),u=ke(c);{var d=f=>{Ei(f,{title:"Saved Layouts",persistKey:"layouts",children:(v,m)=>{var S=ZI();xe(S,21,()=>i(n),y=>y.id,(y,_)=>{var E=JI();let x,w;var R=p(E),A=p(R),D=p(A);h(A),h(R);var L=g(R,2),T=p(L,!0);h(L),h(E),N(()=>{x=_e(E,1,"saved-layout-card svelte-1ncltuf",null,x,{"saved-layout-card--tinted":i(_).appearance?.color}),oe(E,"data-saved-layout-id",i(_).id),w=Ge(E,"",w,{"--card-color":i(_).appearance?.color??"transparent"}),oe(D,"href",`${Gn}#${i(_).appearance?.icon??"eye"??""}`),j(T,i(_).name)}),K("click",E,()=>o(i(_).id)),K("contextmenu",E,C=>l(C,i(_).id)),k(y,E)}),h(S),k(v,S)},$$slots:{default:!0}})};H(u,f=>{i(n).length>0&&f(d)})}k(e,c),ce()}ge(["click","contextmenu"]);const ld=["activity","align-horizontal-justify-center","align-horizontal-justify-end","align-horizontal-justify-start","app-window","archive","archive-restore","axis-3d","box","brick-wall","bug","building-2","cable","calendar","camera","check","chevron-down","chevron-left","chevron-right","circle-check","circle-dot","circle-minus","circle-x","clipboard","clipboard-paste","clock","command","compass","component","copy","cpu","crop","crosshair","crown","dollar-sign","download","droplet","ellipsis-vertical","eraser","euro","external-link","eye","eye-off","file","file-archive","file-diff","file-plus","file-text","flame","flip-horizontal-2","flip-vertical-2","folder","folder-open","folder-plus","folder-tree","gallery-vertical-end","gamepad-2","gauge","gem","git-branch","git-commit-horizontal","git-merge","globe","grid-2x2","grid-3x3","group","hard-drive","heart","history","house","image","info","joystick","key","layers","layout-dashboard","layout-grid","layout-list","layout-panel-left","layout-panel-top","layout-template","lightbulb","link","list-ordered","list-tree","lock","log-out","magnet","mail","map","maximize","menu","minimize","moon","mouse-pointer","move","move-3d","music","navigation","network","notebook-pen","palette","panel-right","panel-top","pause","pencil","pipette","play","plus","pointer","pound-sterling","receipt","redo-2","refresh-cw","rocket","rotate-3d","rotate-ccw","rotate-cw","ruler","save","scissors","scroll-text","search","send","server","settings","shield","skull","sliders-horizontal","snowflake","sparkles","square","square-terminal","star","sun","sword","table-properties","target","texture","timer","trash-2","triangle-alert","type","undo-2","ungroup","unity","upload","user","users","video","volume-2","wand-sparkles","wind","x","zap","zoom-in","zoom-out"];var $I=I('<span class="sh3-icon-picker__label svelte-h9dluc"> </span>'),eE=I('<button type="button"><svg viewBox="0 0 24 24" class="svelte-h9dluc"><use></use></svg></button>'),tE=I('<div><!> <input type="search" placeholder="Search icons…" aria-label="Filter icons" class="svelte-h9dluc"/> <div class="sh3-icon-picker__grid svelte-h9dluc"><button type="button" aria-label="No icon">×</button> <!></div></div>');function nE(e,t){le(t,!0);let n=te(t,"value",15,void 0),r=te(t,"disabled",3,!1),s=B("");const a=V(()=>i(s).trim()===""?ld:ld.filter(_=>_.includes(i(s).trim().toLowerCase())));function o(_){r()||(n(_),t.onchange?.(_))}var l=tE();let c;var u=p(l);{var d=_=>{var E=$I(),x=p(E,!0);h(E),N(()=>j(x,t.label)),k(_,E)};H(u,_=>{t.label&&_(d)})}var f=g(u,2);Te(f);var v=g(f,2),m=p(v);let S;var y=g(m,2);xe(y,16,()=>i(a),_=>_,(_,E)=>{var x=eE();let w;var R=p(x),A=p(R);h(R),h(x),N(()=>{w=_e(x,1,"sh3-icon-picker__tile svelte-h9dluc",null,w,{"sh3-icon-picker__tile--selected":n()===E}),oe(x,"aria-label",E),oe(x,"title",E),x.disabled=r(),oe(A,"href",`${Gn}#${E??""}`)}),K("click",x,()=>o(E)),k(_,x)}),h(v),h(l),N(()=>{c=_e(l,1,"sh3-icon-picker svelte-h9dluc",null,c,{"sh3-icon-picker--disabled":r()}),f.disabled=r(),S=_e(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()}),De(f,()=>i(s),_=>b(s,_)),K("click",m,()=>o(void 0)),k(e,l),ce()}ge(["click"]);var rE=I('<em class="svelte-1v8d4f6">(empty = default)</em>'),sE=I('<button type="button" class="link svelte-1v8d4f6">Change icon</button>'),aE=I('<!> <button type="button" class="link link--align-right svelte-1v8d4f6">Hide picker</button>',1),iE=I('<div class="app-appearance svelte-1v8d4f6"><h2 class="svelte-1v8d4f6"> </h2> <div class="preview svelte-1v8d4f6"><div><span class="preview-card-square svelte-1v8d4f6"><svg class="preview-card-icon svelte-1v8d4f6"><use></use></svg></span> <span class="preview-card-label svelte-1v8d4f6"> </span></div></div> <label class="row svelte-1v8d4f6"><span class="svelte-1v8d4f6">Name <!></span> <input type="text" class="name-input svelte-1v8d4f6"/></label> <div class="row svelte-1v8d4f6"><span class="svelte-1v8d4f6">Icon</span> <!></div> <label class="row svelte-1v8d4f6"><span class="svelte-1v8d4f6">Color</span> <!></label> <div class="actions svelte-1v8d4f6"><button type="button" class="primary svelte-1v8d4f6">Save</button> <button type="button" data-role="reset" class="svelte-1v8d4f6">Reset</button> <button type="button" class="svelte-1v8d4f6">Cancel</button></div></div>');function Ip(e,t){le(t,!0);const n=Me(()=>t.initialAppearance);let r=B(fe(n?.icon)),s=B(fe(n?.color)),a=B(fe(Me(()=>t.entityLabel))),o=B(n?.icon!==void 0);const l=V(()=>i(a).trim()),c=V(()=>t.requireLabel&&i(l)===""),u=V(()=>i(l)===""?t.entityLabel:i(l)),d=V(()=>i(r)??t.defaultIcon),f=V(()=>n!==void 0);function v(){i(c)||(t.onSave({label:i(l),icon:i(r),color:i(s)}),t.close())}function m(){t.onReset(),t.close()}var S=iE(),y=p(S),_=p(y);h(y);var E=g(y,2),x=p(E);let w,R;var A=p(x),D=p(A),L=p(D);h(D),h(A);var T=g(A,2),C=p(T,!0);h(T),h(x),h(E);var O=g(E,2),M=p(O),P=g(p(M));{var q=J=>{var ie=rE();k(J,ie)};H(P,J=>{t.requireLabel||J(q)})}h(M);var F=g(M,2);Te(F),h(O);var W=g(O,2),$=g(p(W),2);{var Z=J=>{var ie=sE();K("click",ie,()=>b(o,!0)),k(J,ie)},Y=J=>{var ie=aE(),ve=ke(ie);nE(ve,{get value(){return i(r)},set value(ue){b(r,ue,!0)}});var se=g(ve,2);K("click",se,()=>b(o,!1)),k(J,ie)};H($,J=>{i(o)?J(Y,-1):J(Z)})}h(W);var ee=g(W,2),X=g(p(ee),2);{let J=V(()=>i(s)??"#888888");vp(X,{get value(){return i(J)},onchange:ie=>b(s,ie,!0)})}h(ee);var Q=g(ee,2),z=p(Q),U=g(z,2),G=g(U,2);h(Q),h(S),N(()=>{j(_,`Customize ${t.entityLabel??""}`),w=_e(x,1,"preview-card svelte-1v8d4f6",null,w,{"preview-card--tinted":i(s)!==void 0}),R=Ge(x,"",R,{"--card-color":i(s)??"transparent"}),oe(L,"href",`${Gn}#${i(d)??""}`),j(C,i(u)),oe(F,"placeholder",t.entityLabel),z.disabled=i(c),U.disabled=!i(f)}),De(F,()=>i(a),J=>b(a,J)),K("click",z,v),K("click",U,m),K("click",G,()=>t.close()),k(e,S),ce()}ge(["click"]);let gr=null;function oE(e){gr=e}function lE(){gr=null}function Ep(e){return e.icon===void 0&&e.color===void 0&&e.label===void 0}function Ml(e){const t=gr?.user.overrides;if(!t)return;const n=t[e];if(n&&!Ep(n))return n}function cd(e,t){if(!gr)return;const r={...gr.user.overrides};t===void 0||Ep(t)?delete r[e]:r[e]=t,gr.user.overrides=r}function cE(){gr={ephemeral:{},session:{},workspace:{},user:{overrides:{}}}}cE();function uE(){const e=Ta();return!e||e.type!=="app"?null:e.ref}function dE(e){const t=uE();if(!t)return;const n=ys().find(l=>l.id===t.appId),r=n?.label??t.appId,s=n?.icon??"box",a=Ml(t.appId),o={entityLabel:a?.label??r,initialAppearance:a,defaultIcon:s,requireLabel:!1,onSave:l=>{cd(t.appId,{label:l.label===""?void 0:l.label,icon:l.icon,color:l.color})},onReset:()=>cd(t.appId,void 0)};dn.open(Ip,o)}const Ap={manifest:{id:"__app-appearance__",label:"App Appearance",version:En,views:[]},activate(e){const t=e.state({user:{overrides:{}}});oE(t);const n={id:"app.customize",label:"Customize…",scope:{element:"app"},contextItem:!0,group:"appearance",run:dE};e.actions.register(n)},autostart(){},deactivate(){lE()}};var fE=I('<button type="button" data-sh3-scope="element:app"><span class="sh3-home-card-square svelte-11gxeaw"><svg class="sh3-home-card-icon svelte-11gxeaw"><use></use></svg></span> <span class="sh3-home-card-label svelte-11gxeaw"> </span></button>'),vE=I('<div class="sh3-home-grid svelte-11gxeaw"></div>'),hE=I('<button type="button" data-sh3-scope="element:app"><span class="sh3-home-card-square svelte-11gxeaw"><svg class="sh3-home-card-icon svelte-11gxeaw"><use></use></svg></span> <span class="sh3-home-card-label svelte-11gxeaw"> </span></button>'),pE=I('<div class="sh3-home-grid svelte-11gxeaw"></div>'),mE=I('<p class="sh3-home-empty svelte-11gxeaw"><!></p>'),bE=I('<div class="sh3-home svelte-11gxeaw"><header class="sh3-home-header svelte-11gxeaw"><div class="sh3-home-title-row svelte-11gxeaw"><!> <span class="sh3-home-version svelte-11gxeaw"> </span> <span class="sh3-home-alpha svelte-11gxeaw">alpha</span></div> <div class="sh3-home-credit svelte-11gxeaw">Art: by <a href="https://www.andbc.co/" target="_blank" rel="noopener noreferrer" class="svelte-11gxeaw">andbc</a></div></header> <div class="sh3-home-filter svelte-11gxeaw"><input type="search" placeholder="Filter apps…" aria-label="Filter apps by name" class="sh3-home-filter-input svelte-11gxeaw"/></div> <!> <!> <!> <!> <!></div>');function gE(e,t){le(t,!0);const n=$i("__sh3core__");function r(q,F){q.preventDefault(),n.set({type:"app",ref:{appId:F}}),lt.actions.openContextMenu({x:q.clientX,y:q.clientY,scope:{element:"app"}})}let s=B("");const a=V(ys),o=V(zt),l=V(()=>sn.activeProjectId?rn.projects.find(q=>q.id===sn.activeProjectId)??null:null);function c(q,F){if(!F)return!0;const W=F.toLowerCase();return q.label.toLowerCase().includes(W)||q.id.toLowerCase().includes(W)}function u(q){return i(l)?i(l).appAllowlist.includes(q):!0}const d=V(()=>i(a).filter(q=>!q.admin&&c(q,i(s))&&u(q.id))),f=V(()=>i(a).filter(q=>q.admin&&c(q,i(s)))),v=V(()=>i(d).length+(i(o)&&!i(l)?i(f).length:0));var m=bE(),S=p(m),y=p(S),_=p(y);fI(_,{});var E=g(_,2),x=p(E);h(E),Ot(2),h(y),Ot(2),h(S);var w=g(S,2),R=p(w);Te(R),h(w);var A=g(w,2);UI(A,{});var D=g(A,2);{var L=q=>{Ei(q,{title:"Apps",persistKey:"apps",children:(F,W)=>{var $=vE();xe($,21,()=>i(d),Z=>Z.id,(Z,Y)=>{const ee=V(()=>Ml(i(Y).id));var X=fE();let Q,z;var U=p(X),G=p(U),J=p(G);h(G),h(U);var ie=g(U,2),ve=p(ie,!0);h(ie),h(X),N(()=>{Q=_e(X,1,"sh3-home-card svelte-11gxeaw",null,Q,{"sh3-home-card--tinted":i(ee)?.color}),z=Ge(X,"",z,{"--card-color":i(ee)?.color??"transparent"}),oe(J,"href",`${Gn}#${i(ee)?.icon??i(Y).icon??"box"??""}`),j(ve,i(ee)?.label??i(Y).label)}),K("click",X,()=>Xn(i(Y).id)),K("contextmenu",X,se=>r(se,i(Y).id)),k(Z,X)}),h($),k(F,$)},$$slots:{default:!0}})};H(D,q=>{i(d).length>0&&q(L)})}var T=g(D,2);QI(T,{});var C=g(T,2);{var O=q=>{Ei(q,{title:"Admin",persistKey:"admin",children:(F,W)=>{var $=pE();xe($,21,()=>i(f),Z=>Z.id,(Z,Y)=>{const ee=V(()=>Ml(i(Y).id));var X=hE();let Q,z;var U=p(X),G=p(U),J=p(G);h(G),h(U);var ie=g(U,2),ve=p(ie,!0);h(ie),h(X),N(()=>{Q=_e(X,1,"sh3-home-card svelte-11gxeaw",null,Q,{"sh3-home-card--tinted":i(ee)?.color}),z=Ge(X,"",z,{"--card-color":i(ee)?.color??"transparent"}),oe(J,"href",`${Gn}#${i(ee)?.icon??i(Y).icon??"box"??""}`),j(ve,i(ee)?.label??i(Y).label)}),K("click",X,()=>Xn(i(Y).id)),K("contextmenu",X,se=>r(se,i(Y).id)),k(Z,X)}),h($),k(F,$)},$$slots:{default:!0}})};H(C,q=>{i(o)&&!i(l)&&i(f).length>0&&q(O)})}var M=g(C,2);{var P=q=>{var F=mE(),W=p(F);{var $=Y=>{var ee=yn("No apps registered.");k(Y,ee)},Z=Y=>{var ee=yn();N(()=>j(ee,`No apps match “${i(s)??""}”.`)),k(Y,ee)};H(W,Y=>{i(a).length===0?Y($):Y(Z,-1)})}h(F),k(q,F)};H(M,q=>{i(v)===0&&q(P)})}h(m),N(()=>j(x,`v${En}`)),De(R,()=>i(s),q=>b(s,q)),k(e,m),ce()}ge(["click","contextmenu"]);var yE=I('<p class="keys-peers-muted svelte-1s56qq">Loading...</p>'),_E=I('<p class="keys-peers-error svelte-1s56qq"> </p>'),wE=I('<p class="keys-peers-muted svelte-1s56qq">No keys yet. Shards will ask your permission before creating one.</p>'),kE=I('<button type="button" class="keys-peers-btn-danger svelte-1s56qq">Confirm</button> <button type="button" class="keys-peers-btn-secondary svelte-1s56qq">Cancel</button>',1),xE=I('<button type="button" class="keys-peers-btn-danger svelte-1s56qq">Revoke</button>'),SE=I('<li class="keys-peers-item svelte-1s56qq"><div class="keys-peers-info svelte-1s56qq"><span class="keys-peers-label svelte-1s56qq"> </span> <span class="keys-peers-meta svelte-1s56qq"> </span> <span class="keys-peers-meta svelte-1s56qq"> </span> <span class="keys-peers-meta svelte-1s56qq"> </span></div> <div class="keys-peers-actions svelte-1s56qq"><!></div></li>'),IE=I('<ul class="keys-peers-list svelte-1s56qq"></ul>'),EE=I('<div class="keys-peers svelte-1s56qq"><div class="keys-peers-header svelte-1s56qq"><h2 class="svelte-1s56qq">Keys &amp; Peers</h2></div> <!></div>');function AE(e,t){le(t,!0);let n=B(fe([])),r=B(null),s=B(!0),a=B(null);async function o(){b(r,null),b(s,!0);try{const y=await Ie(`${ft()}/api/keys`);if(!y.ok)throw new Error(`HTTP ${y.status}`);b(n,await y.json(),!0)}catch(y){b(r,y instanceof Error?y.message:String(y),!0)}finally{b(s,!1)}}async function l(y){b(a,null);const _=await Ie(`${ft()}/api/keys/${encodeURIComponent(y)}`,{method:"DELETE"});(_.ok||_.status===404)&&b(n,i(n).filter(E=>E.id!==y),!0)}function c(y){return new Date(y).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}Pe(()=>{o()}),Pe(()=>Vc("*",()=>{o()}));var u=EE(),d=g(p(u),2);{var f=y=>{var _=yE();k(y,_)},v=y=>{var _=_E(),E=p(_);h(_),N(()=>j(E,`Failed to load: ${i(r)??""}`)),k(y,_)},m=y=>{var _=wE();k(y,_)},S=y=>{var _=IE();xe(_,21,()=>i(n),E=>E.id,(E,x)=>{var w=SE(),R=p(w),A=p(R),D=p(A,!0);h(A);var L=g(A,2),T=p(L);h(L);var C=g(L,2),O=p(C);h(C);var M=g(C,2),P=p(M);h(M),h(R);var q=g(R,2),F=p(q);{var W=Z=>{var Y=kE(),ee=ke(Y),X=g(ee,2);K("click",ee,()=>l(i(x).id)),K("click",X,()=>{b(a,null)}),k(Z,Y)},$=Z=>{var Y=xE();K("click",Y,()=>{b(a,i(x).id,!0)}),k(Z,Y)};H(F,Z=>{i(a)===i(x).id?Z(W):Z($,-1)})}h(q),h(w),N((Z,Y,ee)=>{j(D,i(x).label),j(T,`Minted by: ${i(x).mintedByShardId??"system"??""}${i(x).peerRole||i(x).peerId?` · Peer: ${i(x).peerRole??"—"}${i(x).peerId?` (${i(x).peerId})`:""}`:""}`),j(O,`Scopes: ${Z??""}`),j(P,`Created: ${Y??""} · Expires: ${ee??""}`)},[()=>i(x).scopes.join(", "),()=>c(i(x).createdAt),()=>i(x).expiresAt?c(i(x).expiresAt):"never"]),k(E,w)}),h(_),k(y,_)};H(d,y=>{i(s)?y(f):i(r)?y(v,1):i(n).length===0?y(m,2):y(S,-1)})}h(u),k(e,u),ce()}ge(["click"]);var CE=I('<div class="confirm-dialog svelte-1k1962w"><div class="confirm-dialog-title svelte-1k1962w"> </div> <div class="confirm-dialog-body svelte-1k1962w"> </div> <div class="confirm-dialog-actions svelte-1k1962w"><button type="button" class="confirm-dialog-btn confirm-dialog-btn-cancel svelte-1k1962w" data-confirm-dialog-cancel=""> </button> <button type="button" data-confirm-dialog-confirm=""> </button></div></div>');function Cp(e,t){le(t,!0);let n=te(t,"confirmLabel",3,"Confirm"),r=te(t,"cancelLabel",3,"Cancel"),s=te(t,"confirmTone",3,"default"),a=B(void 0),o=B(!1);Pe(()=>{i(a)?.focus()});async function l(){if(!i(o)){b(o,!0);try{await t.onConfirm()}finally{t.close()}}}function c(){i(o)||(t.onCancel?.(),t.close())}var u=CE(),d=p(u),f=p(d,!0);h(d);var v=g(d,2),m=p(v,!0);h(v);var S=g(v,2),y=p(S),_=p(y,!0);h(y),We(y,R=>b(a,R),()=>i(a));var E=g(y,2);let x;var w=p(E,!0);h(E),h(S),h(u),N(()=>{j(f,t.title),j(m,t.body),y.disabled=i(o),j(_,r()),x=_e(E,1,"confirm-dialog-btn svelte-1k1962w",null,x,{"confirm-dialog-btn-danger":s()==="danger","confirm-dialog-btn-default":s()==="default"}),E.disabled=i(o),j(w,n())}),K("click",y,c),K("click",E,l),k(e,u),ce()}ge(["click"]);const ud=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 No(e,t){const n=Object.keys(t),r=n.filter(o=>!ud.has(o)),s=n.filter(o=>ud.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 Yc=globalThis;Yc.__sh3__=yp;Yc.__sh3_svelte__=ov;Yc.__sh3_svelte_internal_client__=_v;const Xc={"sh3-core":No("__sh3__",yp),svelte:No("__sh3_svelte__",ov),"svelte/internal/client":No("__sh3_svelte_internal_client__",_v)};Xc["svelte/internal/disclose-version"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));Xc["sh3-core/tokens.css"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));const TE=/(?:from|import)\s*(['"])(sh3-core(?:\/[^'"]*)?|svelte(?:\/[^'"]*)?)\1/g;function RE(e){return e.replace(TE,(t,n,r)=>{const s=Xc[r];return s?`${t.startsWith("from")?"from":"import"} '${s}'`:t})}async function Ra(e){const t=new TextDecoder().decode(e),n=RE(t),r=new Blob([n],{type:"application/javascript"}),s=URL.createObjectURL(r);try{const a=await import(s),o={shards:[],apps:[]};for(const l of Object.values(a)){if(!l||typeof l!="object"||!("manifest"in l))continue;const c=l;LE(c)?o.shards.push(c):ME(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 LE(e){return"activate"in e&&typeof e.activate=="function"&&Array.isArray(e.manifest.views)}function ME(e){return"initialLayout"in e&&Array.isArray(e.manifest.requiredShards)}const PE="sh3-packages",DE=1,oa="bundles",ds="meta";function La(){return new Promise((e,t)=>{const n=indexedDB.open(PE,DE);n.onupgradeneeded=()=>{const r=n.result;r.objectStoreNames.contains(oa)||r.createObjectStore(oa),r.objectStoreNames.contains(ds)||r.createObjectStore(ds)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}function Mr(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 Tp(e,t,n){const r=await La();await Mr(r,oa,"readwrite",s=>s.put(t,e)),await Mr(r,ds,"readwrite",s=>s.put(n,e)),r.close()}async function Rp(e){const t=await La(),n=await Mr(t,oa,"readonly",r=>r.get(e));return t.close(),n??null}async function jE(e){const t=await La(),n=await Mr(t,ds,"readonly",r=>r.get(e));return t.close(),n??null}async function Lp(){const e=await La(),t=await Mr(e,ds,"readonly",n=>n.getAll());return e.close(),t??[]}async function zE(e){const t=await La();await Mr(t,oa,"readwrite",n=>n.delete(e)),await Mr(t,ds,"readwrite",n=>n.delete(e)),t.close()}function Gc(e,t){for(const n of e.shards)n.manifest={...n.manifest,version:t.version},oo(n);for(const n of e.apps)n.manifest={...n.manifest,version:t.version},Zs(n)}const OE={"state:manage":{title:"Manage sh3 state zones",description:"Read and write state zones belonging to other shards."},"documents:browse":{title:"Browse tenant documents",description:"Observe all documents stored by the current tenant."},"documents:read":{title:"Read tenant documents",description:"Read the content of any document in the current tenant, across all shards. Required for backup connectors that need to pull document bodies (not just metadata) out of other shards."},"documents:write":{title:"Write tenant documents",description:"Create and overwrite documents in any shard's namespace within the current tenant. Required for restore-class connectors that re-import documents back into their owning shards."},"documents:sync":{title:"Sync documents with peers",description:"Participate in cross-peer document synchronization."},"documents:mount":{title:"Manage document mounts",description:"Define and manage filesystem mount points that feed into the document API."},"sync:peer":{title:"Act as a sync peer",description:"Exchange document updates with remote peers."},"sync:policy":{title:"Define sync policy",description:"Configure which documents sync and with whom."},"keys:mint":{title:"Mint API keys",description:"Issue long-lived access tokens for this sh3."}};function qo(e){return OE[e]??{title:e,description:"Unknown permission."}}function Jc(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 Zc(e,t,n){if(!t.integrity)return{success:!1,hotLoaded:!1,error:"Missing integrity hash — refusing to install unverified bundle"};try{await Uc(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 Ra(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:Jc(r)};try{await Tp(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{lo(t.id)}catch{}(t.type==="app"||t.type==="combo")&&Dc(t.id);let a=!0;try{Gc(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 NE(e){try{lo(e)}catch{}Dc(e),await zE(e)}async function qE(){return Lp()}async function Mp(){let e;try{e=await Lp()}catch(t){console.warn("[sh3] Failed to read installed packages from storage:",t instanceof Error?t.message:t);return}for(const t of e)try{const n=await Rp(t.id);if(!n){console.warn(`[sh3] No bundle found for installed package "${t.id}", skipping`);continue}const r=await Ra(n);Gc(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 BE(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 dd={version:1};var FE=I('<span class="perm-modal-author svelte-1ipp1r6"> </span>'),VE=I('<p class="perm-modal-empty svelte-1ipp1r6">This package requires no special permissions.</p>'),UE=I('<li class="perm-modal-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6"> </div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),HE=I('<p class="perm-modal-intro svelte-1ipp1r6">This package requests the following permissions:</p> <ul class="perm-modal-list svelte-1ipp1r6"></ul>',1),KE=I('<li class="perm-modal-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6"> </div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),WE=I('<p class="perm-modal-intro svelte-1ipp1r6">New permissions in this update:</p> <ul class="perm-modal-list perm-modal-added svelte-1ipp1r6"></ul>',1),YE=I('<li class="perm-modal-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6"> </div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),XE=I('<p class="perm-modal-intro svelte-1ipp1r6">Permissions no longer requested:</p> <ul class="perm-modal-list perm-modal-removed svelte-1ipp1r6"></ul>',1),GE=I("<!> <!>",1),JE=I('<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>'),ZE=I('<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),QE=I('<div class="perm-modal-backdrop svelte-1ipp1r6" role="dialog" aria-modal="true" tabindex="-1"><div class="perm-modal-panel svelte-1ipp1r6" role="document"><header class="perm-modal-header svelte-1ipp1r6"><h3 class="svelte-1ipp1r6"> </h3> <div class="perm-modal-subtitle svelte-1ipp1r6"><!> <!></div></header> <div class="perm-modal-body svelte-1ipp1r6"><!> <!></div> <footer class="perm-modal-footer svelte-1ipp1r6"><button class="perm-modal-cancel svelte-1ipp1r6">Cancel</button> <button class="perm-modal-confirm svelte-1ipp1r6"> </button></footer></div></div>');function Pl(e,t){le(t,!0);const n=te(t,"permissions",19,()=>[]),r=te(t,"added",19,()=>[]),s=te(t,"removed",19,()=>[]),a=te(t,"warnings",19,()=>[]),o=V(()=>t.mode==="install"?"Install":"Update");var l=QE(),c=p(l),u=p(c),d=p(u),f=p(d);h(d);var v=g(d,2),m=p(v);{var S=P=>{var q=yn();N(()=>j(q,`${t.fromVersion??""} → ${t.pkg.version??""}`)),k(P,q)},y=P=>{var q=yn();N(()=>j(q,`v${t.pkg.version??""}`)),k(P,q)};H(m,P=>{t.mode==="update"&&t.fromVersion?P(S):P(y,-1)})}var _=g(m,2);{var E=P=>{var q=FE(),F=p(q);h(q),N(()=>j(F,`by ${t.pkg.author??""}`)),k(P,q)};H(_,P=>{t.pkg.author&&P(E)})}h(v),h(u);var x=g(u,2),w=p(x);{var R=P=>{var q=Ue(),F=ke(q);{var W=Z=>{var Y=VE();k(Z,Y)},$=Z=>{var Y=HE(),ee=g(ke(Y),2);xe(ee,20,n,X=>X,(X,Q)=>{const z=V(()=>qo(Q));var U=UE(),G=p(U),J=p(G,!0);h(G);var ie=g(G,2),ve=p(ie,!0);h(ie),h(U),N(()=>{j(J,i(z).title),j(ve,i(z).description)}),k(X,U)}),h(ee),k(Z,Y)};H(F,Z=>{n().length===0?Z(W):Z($,-1)})}k(P,q)},A=P=>{var q=GE(),F=ke(q);{var W=Y=>{var ee=WE(),X=g(ke(ee),2);xe(X,20,r,Q=>Q,(Q,z)=>{const U=V(()=>qo(z));var G=KE(),J=p(G),ie=p(J,!0);h(J);var ve=g(J,2),se=p(ve,!0);h(ve),h(G),N(()=>{j(ie,i(U).title),j(se,i(U).description)}),k(Q,G)}),h(X),k(Y,ee)};H(F,Y=>{r().length>0&&Y(W)})}var $=g(F,2);{var Z=Y=>{var ee=XE(),X=g(ke(ee),2);xe(X,20,s,Q=>Q,(Q,z)=>{const U=V(()=>qo(z));var G=YE(),J=p(G),ie=p(J,!0);h(J);var ve=g(J,2),se=p(ve,!0);h(ve),h(G),N(()=>{j(ie,i(U).title),j(se,i(U).description)}),k(Q,G)}),h(X),k(Y,ee)};H($,Y=>{s().length>0&&Y(Z)})}k(P,q)};H(w,P=>{t.mode==="install"?P(R):P(A,-1)})}var D=g(w,2);{var L=P=>{var q=ZE(),F=g(ke(q),2);xe(F,20,a,W=>W,(W,$)=>{var Z=JE(),Y=g(p(Z),2),ee=p(Y,!0);h(Y),h(Z),N(()=>j(ee,$)),k(W,Z)}),h(F),k(P,q)};H(D,P=>{a().length>0&&P(L)})}h(x);var T=g(x,2),C=p(T),O=g(C,2),M=p(O,!0);h(O),h(T),h(c),h(l),N(()=>{oe(l,"aria-label",`${i(o)??""} ${t.pkg.label??""}`),j(f,`${i(o)??""} ${t.pkg.label??""}`),j(M,i(o))}),K("click",l,function(...P){t.onCancel?.apply(this,P)}),K("keydown",l,P=>{P.key==="Escape"&&t.onCancel()}),K("click",c,P=>P.stopPropagation()),K("click",C,function(...P){t.onCancel?.apply(this,P)}),K("click",O,function(...P){t.onConfirm?.apply(this,P)}),k(e,l),ce()}ge(["click","keydown"]);function Qc(e){return e==="shard"?"shard":"app"}function $E(e){return Qc(e)==="shard"?"Shard":"App"}function e2(e,t){return t==="all"?!0:Qc(e)===t}var t2=I('<div class="store-registry-entry svelte-1aafzt0"><span class="store-registry-url svelte-1aafzt0"> </span> <button class="store-registry-remove svelte-1aafzt0">Remove</button></div>'),n2=I('<div class="store-registries svelte-1aafzt0"></div>'),r2=I('<form class="store-add-registry svelte-1aafzt0"><input class="store-registry-input svelte-1aafzt0" type="url" placeholder="Registry URL (e.g. https://sh3.example.com/registry.json)"/> <button type="submit" class="store-add-btn svelte-1aafzt0">Add</button></form>'),s2=I('<div class="store-error svelte-1aafzt0"> </div>'),a2=I('<div class="store-error svelte-1aafzt0"> </div>'),i2=I('<img alt="" class="store-icon-img svelte-1aafzt0"/>'),o2=I('<span class="store-icon-placeholder svelte-1aafzt0"> </span>'),l2=I('<div class="store-card-warning svelte-1aafzt0"> </div>'),c2=I('<button class="store-update-btn svelte-1aafzt0"> </button>'),u2=I('<span class="store-installed-label svelte-1aafzt0">Installed</span>'),d2=I('<span class="store-card-missing svelte-1aafzt0"> </span>'),f2=I('<div class="store-install-wrap svelte-1aafzt0"><button class="store-install-btn svelte-1aafzt0"> </button> <!></div>'),v2=I('<div class="store-card svelte-1aafzt0"><div class="store-card-header svelte-1aafzt0"><div class="store-card-icon svelte-1aafzt0"><!></div> <div class="store-card-title svelte-1aafzt0"><span class="store-card-label svelte-1aafzt0"> </span> <span> </span> <span class="store-card-version svelte-1aafzt0"> </span></div></div> <p class="store-card-desc svelte-1aafzt0"> </p> <div class="store-card-author svelte-1aafzt0"> </div> <!> <div class="store-card-actions svelte-1aafzt0"><!></div></div>'),h2=I("No packages found. <!>",1),p2=I('<div class="store-empty svelte-1aafzt0"><!></div>'),m2=I('<div class="store-view svelte-1aafzt0"><header class="store-header svelte-1aafzt0"><h2 class="svelte-1aafzt0">Package Store</h2> <div class="store-controls svelte-1aafzt0"><input class="store-search svelte-1aafzt0" type="text" placeholder="Search packages..."/> <select class="store-filter svelte-1aafzt0"><option>All</option><option>Shards</option><option>Apps</option></select> <button class="store-refresh svelte-1aafzt0"> </button></div></header> <!> <!> <!> <!> <div class="store-grid svelte-1aafzt0"></div> <!></div> <!> <!>',1);function b2(e,t){le(t,!0);let n=B(""),r=B("all"),s=B(fe(new Set)),a=B(fe(new Set)),o=B(null),l=B(""),c=B(null),u=B(null);const d=pt;async function f(){const ne=i(l).trim();if(ne&&!d.env.registries.includes(ne))try{await d.addRegistry(ne),b(l,""),d.refreshCatalog(),d.refreshInstalled()}catch(re){b(o,re instanceof Error?re.message:String(re),!0)}}async function v(ne){try{await d.removeRegistry(ne),d.refreshCatalog()}catch(re){b(o,re instanceof Error?re.message:String(re),!0)}}const m=V(()=>{const ne=i(n).toLowerCase().trim();return d.state.ephemeral.catalog.filter(re=>e2(re.entry.type,i(r))?ne?re.entry.id.toLowerCase().includes(ne)||re.entry.label.toLowerCase().includes(ne)||re.entry.description.toLowerCase().includes(ne):!0:!1)});function S(ne){return d.state.ephemeral.installed.some(re=>re.id===ne)}function y(ne){return String(ne.latest.contractVersion)!==String(dd.version)}function _(ne){return ne in d.state.ephemeral.updatable}function E(ne){return d.state.ephemeral.installed.find(re=>re.id===ne)?.version??""}function x(ne,re){const me=ne.latest.requires?.map(pe=>pe.id)??[];if(me.length===0)return[];const ye=new Set(gp);for(const pe of re)(pe.type==="shard"||pe.type==="combo")&&ye.add(pe.id);return me.filter(pe=>!ye.has(pe))}async function w(ne){if(!i(a).has(ne)){b(a,new Set([...i(a),ne]),!0),b(o,null);try{await d.updatePackage(ne,(re,me)=>new Promise(ye=>{const pe=d.state.ephemeral.updatable[ne],Le=d.state.ephemeral.installed.find(Ne=>Ne.id===ne);if(!pe||!Le){ye(!0);return}b(u,{pkg:pe,fromVersion:Le.version,added:re,removed:me,resolve:ye},!0)}))}catch(re){b(o,re instanceof Error?re.message:String(re),!0)}finally{const re=new Set(i(a));re.delete(ne),b(a,re,!0)}}}function R(){const ne=i(u);ne&&(b(u,null),ne.resolve(!0))}function A(){const ne=i(u);ne&&(b(u,null),ne.resolve(!1))}async function D(ne){const re=ne.entry.id;if(!i(s).has(re)){b(s,new Set([...i(s),re]),!0),b(o,null);try{const me=await uo(ne.latest,ne.sourceRegistry),ye=fo(ne,ne.latest),pe=await Ra(me),Le=Jc(pe);let Ne;ne.latest.serverBundleUrl&&(Ne=await Hc(ne.latest,ne.sourceRegistry));const ze=new TextDecoder().decode(new Uint8Array(me)),rt=BE(ze);b(c,{pkg:ne,permissions:Le,loaded:pe,bundle:me,meta:ye,serverBundle:Ne,warnings:rt},!0)}catch(me){b(o,me instanceof Error?me.message:String(me),!0);const ye=new Set(i(s));ye.delete(re),b(s,ye,!0)}}}async function L(){const ne=i(c);if(!ne)return;b(c,null);const{pkg:re,loaded:me,bundle:ye,meta:pe,serverBundle:Le}=ne,Ne=re.entry.id;try{const ze={id:pe.id,type:pe.type,label:re.entry.label,version:pe.version,contractVersion:pe.contractVersion,sourceRegistry:pe.sourceRegistry,requiredShards:re.latest.requires?.map(Ke=>Ke.id)??[],installedAt:new Date().toISOString()},rt=await Fc(ze,ye,Le);if(!rt.ok){b(o,rt.error??"Server install failed",!0);return}const Xe=await Zc(ye,pe,{loaded:me});Xe.success||console.warn(`[sh3-store] Server install ok but local hot-load failed: ${Xe.error}`),await d.refreshInstalled()}catch(ze){b(o,ze instanceof Error?ze.message:String(ze),!0)}finally{const ze=new Set(i(s));ze.delete(Ne),b(s,ze,!0)}}function T(){if(!i(c))return;const ne=i(c).pkg.entry.id;b(c,null);const re=new Set(i(s));re.delete(ne),b(s,re,!0)}function C(){d.refreshCatalog(),d.refreshInstalled()}var O=m2(),M=ke(O),P=p(M),q=g(p(P),2),F=p(q);Te(F);var W=g(F,2),$=p(W);$.value=$.__value="all";var Z=g($);Z.value=Z.__value="shard";var Y=g(Z);Y.value=Y.__value="app",h(W);var ee=g(W,2),X=p(ee,!0);h(ee),h(q),h(P);var Q=g(P,2);{var z=ne=>{var re=n2();xe(re,21,()=>d.env.registries,bt,(me,ye)=>{var pe=t2(),Le=p(pe),Ne=p(Le,!0);h(Le);var ze=g(Le,2);h(pe),N(()=>j(Ne,i(ye))),K("click",ze,()=>v(i(ye))),k(me,pe)}),h(re),k(ne,re)};H(Q,ne=>{d.isAdmin&&d.env.registries.length>0&&ne(z)})}var U=g(Q,2);{var G=ne=>{var re=r2(),me=p(re);Te(me);var ye=g(me,2);h(re),N(pe=>ye.disabled=pe,[()=>!i(l).trim()]),He("submit",re,pe=>{pe.preventDefault(),f()}),De(me,()=>i(l),pe=>b(l,pe)),k(ne,re)};H(U,ne=>{d.isAdmin&&ne(G)})}var J=g(U,2);{var ie=ne=>{var re=s2(),me=p(re,!0);h(re),N(()=>j(me,d.state.ephemeral.error)),k(ne,re)};H(J,ne=>{d.state.ephemeral.error&&ne(ie)})}var ve=g(J,2);{var se=ne=>{var re=a2(),me=p(re,!0);h(re),N(()=>j(me,i(o))),k(ne,re)};H(ve,ne=>{i(o)&&ne(se)})}var ue=g(ve,2);xe(ue,21,()=>i(m),ne=>ne.entry.id,(ne,re)=>{const me=V(()=>S(i(re).entry.id)),ye=V(()=>y(i(re))),pe=V(()=>i(s).has(i(re).entry.id)),Le=V(()=>_(i(re).entry.id)),Ne=V(()=>i(a).has(i(re).entry.id)),ze=V(()=>x(i(re),d.state.ephemeral.installed)),rt=V(()=>Qc(i(re).entry.type));var Xe=v2(),Ke=p(Xe),Ve=p(Ke),st=p(Ve);{var kt=et=>{var tt=i2();N(()=>oe(tt,"src",i(re).entry.icon)),k(et,tt)},xt=et=>{var tt=o2(),Qt=p(tt,!0);h(tt),N(()=>j(Qt,i(re).entry.type==="shard"?"S":"A")),k(et,tt)};H(st,et=>{i(re).entry.icon?et(kt):et(xt,-1)})}h(Ve);var Nn=g(Ve,2),zr=p(Nn),lr=p(zr,!0);h(zr);var cr=g(zr,2);let Or;var po=p(cr,!0);h(cr);var Is=g(cr,2),mo=p(Is,!0);h(Is),h(Nn),h(Ke);var ur=g(Ke,2),Em=p(ur,!0);h(ur);var bo=g(ur,2),Am=p(bo,!0);h(bo);var tu=g(bo,2);{var Cm=et=>{var tt=l2(),Qt=p(tt);h(tt),N(()=>j(Qt,`Contract mismatch: package targets v${i(re).latest.contractVersion??""}, running v${dd.version}`)),k(et,tt)};H(tu,et=>{i(ye)&&et(Cm)})}var nu=g(tu,2),Tm=p(nu);{var Rm=et=>{var tt=c2(),Qt=p(tt,!0);h(tt),N(go=>{tt.disabled=i(Ne),j(Qt,go)},[()=>i(Ne)?"Updating...":`Update ${E(i(re).entry.id)} -> ${i(re).latest.version}`]),K("click",tt,()=>w(i(re).entry.id)),k(et,tt)},Lm=et=>{var tt=u2();k(et,tt)},Mm=et=>{var tt=f2(),Qt=p(tt),go=p(Qt,!0);h(Qt);var Pm=g(Qt,2);{var Dm=Es=>{var yo=d2(),jm=p(yo);h(yo),N(zm=>j(jm,`requires: ${zm??""}`),[()=>i(ze).join(", ")]),k(Es,yo)};H(Pm,Es=>{i(ze).length>0&&Es(Dm)})}h(tt),N(Es=>{Qt.disabled=i(pe)||i(ze).length>0,oe(Qt,"title",Es),j(go,i(pe)?"Installing...":"Install")},[()=>i(ze).length>0?`Missing required shards: ${i(ze).join(", ")}`:void 0]),K("click",Qt,()=>D(i(re))),k(et,tt)};H(Tm,et=>{i(me)&&i(Le)?et(Rm):i(me)?et(Lm,1):et(Mm,-1)})}h(nu),h(Xe),N(et=>{j(lr,i(re).entry.label),Or=_e(cr,1,"store-card-badge svelte-1aafzt0",null,Or,{"badge-shard":i(rt)==="shard","badge-app":i(rt)==="app"}),j(po,et),j(mo,i(re).latest.version),j(Em,i(re).entry.description),j(Am,i(re).entry.author.name)},[()=>$E(i(re).entry.type)]),k(ne,Xe)}),h(ue);var be=g(ue,2);{var we=ne=>{var re=p2(),me=p(re);{var ye=Le=>{var Ne=h2(),ze=g(ke(Ne));{var rt=Ke=>{var Ve=yn("Add a registry URL above to get started.");k(Ke,Ve)},Xe=Ke=>{var Ve=yn("No registries configured.");k(Ke,Ve)};H(ze,Ke=>{d.isAdmin?Ke(rt):Ke(Xe,-1)})}k(Le,Ne)},pe=Le=>{var Ne=yn("No packages match the current filter.");k(Le,Ne)};H(me,Le=>{d.env.registries.length===0?Le(ye):Le(pe,-1)})}h(re),k(ne,re)};H(be,ne=>{!d.state.ephemeral.loading&&i(m).length===0&&ne(we)})}h(M);var Ee=g(M,2);{var ae=ne=>{{let re=V(()=>({label:i(c).pkg.entry.label,version:i(c).pkg.latest.version,author:i(c).pkg.entry.author.name}));Pl(ne,{mode:"install",get pkg(){return i(re)},get permissions(){return i(c).permissions},get warnings(){return i(c).warnings},onConfirm:L,onCancel:T})}};H(Ee,ne=>{i(c)&&ne(ae)})}var he=g(Ee,2);{var Se=ne=>{{let re=V(()=>({label:i(u).pkg.entry.label,version:i(u).pkg.latest.version,author:i(u).pkg.entry.author.name}));Pl(ne,{mode:"update",get pkg(){return i(re)},get fromVersion(){return i(u).fromVersion},get added(){return i(u).added},get removed(){return i(u).removed},onConfirm:R,onCancel:A})}};H(he,ne=>{i(u)&&ne(Se)})}N(()=>{ee.disabled=d.state.ephemeral.loading,j(X,d.state.ephemeral.loading?"Loading...":"Refresh")}),De(F,()=>i(n),ne=>b(n,ne)),Xs(W,()=>i(r),ne=>b(r,ne)),K("click",ee,C),k(e,O),ce()}ge(["click"]);function Pp(e){return pt.state.ephemeral.catalog.find(t=>t.entry.id===e)}function la(e){return pt.state.ephemeral.installed.find(t=>t.id===e)}const g2={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=la(n);if(r){e.scrollback.push({kind:"status",text:`${n} is already installed (v${r.version})`,level:"warn",ts:Date.now()});return}const s=Pp(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 uo(s.latest,s.sourceRegistry),o=fo(s,s.latest);let l;s.latest.serverBundleUrl&&(l=await Hc(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 Fc(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 Zc(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 pt.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()})}}},y2={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(!la(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 pt.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()})}}},_2={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=la(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 pt.updatePackage(n,l,r);const c=r??la(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()})}}},w2={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=la(n),s=Pp(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 k2(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 x2(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 S2(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 pt;const Dp={manifest:{id:"sh3-store",label:"Package Store",version:En,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&&k2(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 op(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 Fx();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 qE();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(F=>F.entry.id===f),!S)return;const y=n.ephemeral.installed.find(F=>F.id===f);if(!y)return;const _=x2(S,m),E=await uo(_,S.sourceRegistry);let x;_.serverBundleUrl&&(x=await Hc(_,S.sourceRegistry));const w=fo(S,_),R=await Ra(E),A=Jc(R);let D=[];try{const F=await jE(f);F?.permissions&&(D=F.permissions)}catch{}const{added:L,removed:T}=S2(D,A);if((L.length>0||T.length>0)&&v&&!await v(L,T))return;const C=await Rp(f),O={...y,permissions:D},M={id:w.id,type:w.type,label:S.entry.label,version:w.version,contractVersion:w.contractVersion,sourceRegistry:w.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:_.requires?.map(F=>F.id)??[]},P=await Fc(M,E,x);if(!P.ok){let F=P.error??"Server update failed";throw P.code==="missing-shards"&&P.missing&&(F=`missing required shard(s): ${P.missing.map($=>$.id).join(", ")}`),new Error(F)}const q=await Zc(E,w,{loaded:R});if(!q.success){if(C)try{await Tp(f,C,O)}catch(F){console.warn(`[sh3-store] Rollback failed for "${f}":`,F instanceof Error?F.message:F)}throw new Error(q.error??"Local install failed during update")}await a()}async function u(f){await Bx(f),await NE(f),await a()}pt={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=Qe(b2,{target:f});return{unmount(){ot(m)}}}};e.registerView("sh3-store:browse",d),e.registerVerb(g2),e.registerVerb(y2),e.registerVerb(w2),e.registerVerb(_2),a()},autostart(){pt.refreshCatalog()}};function I2(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=dn.open(Pl,a)})}var E2=I('<p class="error svelte-1tiy4hy"> </p>'),A2=I('<div class="app-update-modal svelte-1tiy4hy"><h2 class="svelte-1tiy4hy">Update available</h2> <p class="svelte-1tiy4hy"><strong> </strong> can be updated from <code class="svelte-1tiy4hy"> </code> to <code class="svelte-1tiy4hy"> </code>.</p> <p class="hint svelte-1tiy4hy">Package id: <code class="svelte-1tiy4hy"> </code></p> <!> <div class="actions svelte-1tiy4hy"><button type="button" class="primary svelte-1tiy4hy"> </button> <button type="button" class="svelte-1tiy4hy">Cancel</button></div></div>');function C2(e,t){le(t,!0);let n=B(!1),r=B(null);async function s(){if(!i(n)){b(n,!0),b(r,null);try{await t.onConfirm(),t.close()}catch(D){b(r,D.message,!0)}finally{b(n,!1)}}}var a=A2(),o=g(p(a),2),l=p(o),c=p(l,!0);h(l);var u=g(l,2),d=p(u);h(u);var f=g(u,2),v=p(f);h(f),Ot(),h(o);var m=g(o,2),S=g(p(m)),y=p(S,!0);h(S),h(m);var _=g(m,2);{var E=D=>{var L=E2(),T=p(L,!0);h(L),N(()=>j(T,i(r))),k(D,L)};H(_,D=>{i(r)&&D(E)})}var x=g(_,2),w=p(x),R=p(w,!0);h(w);var A=g(w,2);h(x),h(a),N(()=>{j(c,t.appLabel),j(d,`v${t.fromVersion??""}`),j(v,`v${t.toVersion??""}`),j(y,t.appId),w.disabled=i(n),j(R,i(n)?"Updating…":"Update"),A.disabled=i(n)}),K("click",w,s),K("click",A,function(...D){t.close?.apply(this,D)}),k(e,a),ce()}ge(["click"]);var T2=I('<p class="error svelte-86mxbl"> </p>'),R2=I(`<div class="uninstall-dialog svelte-86mxbl"><h2 class="svelte-86mxbl"> </h2> <p class="hint svelte-86mxbl">Package id: <code class="svelte-86mxbl"> </code> · current version: <code class="svelte-86mxbl"> </code></p> <p class="svelte-86mxbl">The package will be removed from this server. App data stored in your
14
+ browser will remain until you clear it manually.</p> <!> <div class="actions svelte-86mxbl"><button type="button" class="danger svelte-86mxbl"> </button> <button type="button" class="svelte-86mxbl">Cancel</button></div></div>`);function L2(e,t){le(t,!0);let n=B(!1),r=B(null);async function s(){if(!i(n)){b(n,!0),b(r,null);try{await t.onConfirm(),t.close()}catch(w){b(r,w.message,!0)}finally{b(n,!1)}}}var a=R2(),o=p(a),l=p(o);h(o);var c=g(o,2),u=g(p(c)),d=p(u,!0);h(u);var f=g(u,2),v=p(f);h(f),h(c);var m=g(c,4);{var S=w=>{var R=T2(),A=p(R,!0);h(R),N(()=>j(A,i(r))),k(w,R)};H(m,w=>{i(r)&&w(S)})}var y=g(m,2),_=p(y),E=p(_,!0);h(_);var x=g(_,2);h(y),h(a),N(()=>{j(l,`Uninstall ${t.appLabel??""}?`),j(d,t.appId),j(v,`v${t.version??""}`),_.disabled=i(n),j(E,i(n)?"Uninstalling…":"Uninstall"),x.disabled=i(n)}),K("click",_,s),K("click",x,function(...w){t.close?.apply(this,w)}),k(e,a),ce()}ge(["click"]);var M2=I('<span class="badge built-in svelte-1w44jyn">built-in</span>'),P2=I('<section class="description svelte-1w44jyn"><span class="label svelte-1w44jyn">Description</span> <p class="svelte-1w44jyn"> </p></section>'),D2=I('<p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Author</span> <span> </span></p>'),j2=I('<li><code class="svelte-1w44jyn"> </code></li>'),z2=I('<section class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Required shards</span> <ul class="chips svelte-1w44jyn"></ul></section>'),O2=I('<li><code class="svelte-1w44jyn"> </code></li>'),N2=I('<section class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Permissions</span> <ul class="chips svelte-1w44jyn"></ul></section>'),q2=I('<p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Installed</span><span> </span></p>'),B2=I('<section class="installed svelte-1w44jyn"><p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Source registry</span><code class="svelte-1w44jyn"> </code></p> <!> <p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Contract</span><code class="svelte-1w44jyn"> </code></p></section>'),F2=I('<div class="app-info-modal svelte-1w44jyn"><header class="svelte-1w44jyn"><h2 class="svelte-1w44jyn"> </h2> <code class="id svelte-1w44jyn"> </code></header> <p class="version svelte-1w44jyn"><span class="label svelte-1w44jyn">Version</span> <code class="svelte-1w44jyn"> </code> <!></p> <!> <!> <!> <!> <!> <div class="actions svelte-1w44jyn"><button type="button" class="svelte-1w44jyn">Close</button></div></div>');function V2(e,t){le(t,!0);let n=V(()=>{if(!t.installed)return null;const O=new Date(t.installed.installedAt);return isNaN(O.getTime())?t.installed.installedAt:O.toLocaleString()});var r=F2(),s=p(r),a=p(s),o=p(a,!0);h(a);var l=g(a,2),c=p(l,!0);h(l),h(s);var u=g(s,2),d=g(p(u),2),f=p(d);h(d);var v=g(d,2);{var m=O=>{var M=M2();k(O,M)};H(v,O=>{t.installed||O(m)})}h(u);var S=g(u,2);{var y=O=>{var M=P2(),P=g(p(M),2),q=p(P,!0);h(P),h(M),N(()=>j(q,t.catalogEntry.description)),k(O,M)};H(S,O=>{t.catalogEntry?.description&&O(y)})}var _=g(S,2);{var E=O=>{var M=D2(),P=g(p(M),2),q=p(P,!0);h(P),h(M),N(()=>j(q,t.catalogEntry.author.name)),k(O,M)};H(_,O=>{t.catalogEntry?.author?.name&&O(E)})}var x=g(_,2);{var w=O=>{var M=z2(),P=g(p(M),2);xe(P,21,()=>t.manifest.requiredShards,bt,(q,F)=>{var W=j2(),$=p(W),Z=p($,!0);h($),h(W),N(()=>j(Z,i(F))),k(q,W)}),h(P),h(M),k(O,M)};H(x,O=>{t.manifest.requiredShards.length>0&&O(w)})}var R=g(x,2);{var A=O=>{var M=N2(),P=g(p(M),2);xe(P,21,()=>t.manifest.permissions,bt,(q,F)=>{var W=O2(),$=p(W),Z=p($,!0);h($),h(W),N(()=>j(Z,i(F))),k(q,W)}),h(P),h(M),k(O,M)};H(R,O=>{t.manifest.permissions&&t.manifest.permissions.length>0&&O(A)})}var D=g(R,2);{var L=O=>{var M=B2(),P=p(M),q=g(p(P)),F=p(q,!0);h(q),h(P);var W=g(P,2);{var $=X=>{var Q=q2(),z=g(p(Q)),U=p(z,!0);h(z),h(Q),N(()=>j(U,i(n))),k(X,Q)};H(W,X=>{i(n)&&X($)})}var Z=g(W,2),Y=g(p(Z)),ee=p(Y);h(Y),h(Z),h(M),N(()=>{j(F,t.installed.sourceRegistry),j(ee,`v${t.installed.contractVersion??""}`)}),k(O,M)};H(D,O=>{t.installed&&O(L)})}var T=g(D,2),C=p(T);h(T),h(r),N(()=>{j(o,t.manifest.label),j(c,t.manifest.id),j(f,`v${t.manifest.version??""}`)}),K("click",C,function(...O){t.close?.apply(this,O)}),k(e,r),ce()}ge(["click"]);const fd=typeof globalThis.__TAURI_INTERNALS__<"u";function U2(e){return!e.admin||e.builtin}function vd(e){return e.admin?e.builtin?" · built-in":"":" · admin only"}function tr(){const e=Ta();return!e||e.type!=="app"?null:e.ref}function Ma(e){return ys().find(t=>t.id===e)}function H2(e){return!pt.state.ephemeral.installed.some(t=>t.id===e)}function Bo(e){return{admin:zt(),builtin:H2(e)}}function K2(e){const t=tr();if(!t)return;const n=Ma(t.appId);if(!n)return;const r=pt.state.ephemeral.installed.find(o=>o.id===t.appId)??null,s=pt.state.ephemeral.catalog.find(o=>o.entry.id===t.appId)?.entry??null,a={manifest:n,installed:r,catalogEntry:s};dn.open(V2,a)}async function W2(e){const t=tr();if(!t)return;const{appId:n}=t,r=Dn.notify("Checking for updates…",{duration:1/0});try{await pt.refreshCatalog()}finally{r.close()}const s=pt.state.ephemeral.updatable[n],a=pt.state.ephemeral.installed.find(c=>c.id===n),o=Ma(n)?.label??n;if(!s||!a){Dn.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 pt.updatePackage(n,(c,u)=>I2({label:a.id,version:a.version},s.latest.version,c,u)),Dn.notify(`Updated to v${s.latest.version}`,{level:"success"})}catch(c){throw Dn.notify(`Update failed: ${c.message}`,{level:"error",duration:5e3}),c}}};dn.open(C2,l)}function Y2(e){const t=tr();if(!t)return;const n=Ma(t.appId);n&&co({kind:"app",appId:t.appId,activateShards:n.requiredShards??[]})}async function X2(e){const t=hc();if(!t)return;const n=t.id,r=t.requiredShards??[];await ks(),co({kind:"app",appId:n,activateShards:r})}function G2(e){const t=tr();if(!t)return;const{appId:n}=t,r=pt.state.ephemeral.installed.find(o=>o.id===n);if(!r)return;const s=Ma(n)?.label??n,a={appId:n,appLabel:s,version:r.version,onConfirm:async()=>{try{await pt.uninstallPackage(n),Dn.notify(`Uninstalled ${s}`,{level:"success"})}catch(o){throw Dn.notify(`Uninstall failed: ${o.message}`,{level:"error",duration:5e3}),o}}};dn.open(L2,a)}function J2(e){const t=()=>{const l=tr();if(!l)return"Info…";const c=Ma(l.appId);return c?`Info — ${c.label} v${c.version}`:`Info — ${l.appId}`},n=()=>{const l=tr();return l?`Check for updates${vd(Bo(l.appId))}`:"Check for updates"},r=()=>{const l=tr();return l?`Uninstall…${vd(Bo(l.appId))}`:"Uninstall…"},s=()=>{const l=tr();return l?U2(Bo(l.appId)):!0},o=[{id:"app.info",label:t,scope:{element:"app"},contextItem:!0,group:"info",run:K2},{id:"app.checkUpdate",label:n,scope:{element:"app"},contextItem:!0,group:"update",disabled:s,run:W2},{id:"app.uninstall",label:r,scope:{element:"app"},contextItem:!0,group:"uninstall",disabled:s,run:G2},{id:"app.popout",label:"Open in standalone view",scope:{element:"app"},contextItem:!0,paletteItem:!1,group:"window",disabled:()=>!fd,run:Y2},{id:"app.popoutCurrent",label:"Pop out current app",scope:"app",contextItem:!1,paletteItem:!0,disabled:()=>!fd||gt.id==null,run:X2}].map(l=>e.actions.register(l));return()=>o.forEach(l=>l())}function Z2(){return{id:"sh3.float.toggleMaximize",label:"Toggle Float Maximize",scope:["home","app"],paletteItem:!0,contextItem:!1,defaultShortcut:"Ctrl+Shift+M",disabled:()=>Be.list().length===0,run(){const e=Be.list().at(-1);e&&Be.toggleMaximize(e.id)}}}const jp={manifest:{id:"__sh3core__",label:"SH3 Core",version:En,views:[{id:"sh3core:home",label:"Home"},{id:"sh3:keys-and-peers",label:"Keys & Peers"}]},activate(e){const t=e.state({user:{bindings:{}}});Xk(t.user),e.actions.register({id:"sh3.palette.open",label:"Command Palette…",scope:["home","app"],defaultShortcut:"Mod+K",contextItem:!1,paletteItem:!1,run(a){eo()}}),e.actions.register(Z2()),e.actions.register({id:"sh3.app.reset-layout",label:"Reset Current Layout",scope:["app"],paletteItem:!0,contextItem:!1,run(){dn.open(Cp,{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:()=>H1()})}});const n={mount(a,o){const l=Qe(gE,{target:a});return{unmount(){ot(l)}}}},r={mount(a,o){const l=Qe(AE,{target:a});return{unmount(){ot(l)}}}};e.registerView("sh3core:home",n),e.registerView("sh3:keys-and-peers",r),J2(e),e.actions.register({id:"sh3.app.launch",label:"Launch app",scope:["home","app"],submenu:!0,paletteItem:!0});const s=new Map;ms(()=>{Pe(()=>{const a=new Set;for(const[o,l]of sr){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(){Xn(o)}});s.set(o,c)}for(const o of[...s.keys()])a.has(o)||(s.get(o)(),s.delete(o))})})},autostart(){}},Q2={id:"shell",label:"Sh3",version:En,views:[{id:"shell:terminal",label:"Sh3",standalone:!0}],permissions:[Js]};class $2{#e;get history(){return i(this.#e)}set history(t){b(this.#e,t,!0)}#t;get locked(){return i(this.#t)}set locked(t){b(this.#t,t,!0)}constructor(t){this.#e=B(fe([])),this.#t=B(!1),this.modeId=t,this.scrollback=new ax}}let yr=null;function eA(e){yr=e}function tA(){yr=null}function hd(e){return yr?.workspace.buffers[e]}function nA(e,t){yr&&(yr.workspace.buffers={...yr.workspace.buffers,[e]:t})}function rA(){yr={ephemeral:{},session:{},workspace:{buffers:{}},user:{}}}rA();const sA=200;class aA{constructor(){this.timers=new Map}hydrate(t){const n=hd(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)},sA);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 hd(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}:{}};nA(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 iA(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 oA(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 lA(e){const{scrollTop:t,scrollHeight:n,clientHeight:r,threshold:s}=e;return n-t-r<=s}var cA=I("<pre> </pre>");function uA(e,t){le(t,!0);const n=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,r=V(()=>t.chunks.join("").replace(n,""));var s=cA();let a;var o=p(s,!0);h(s),N(()=>{a=_e(s,1,"shell-text svelte-ypr8s",null,a,{stderr:t.stream==="stderr"}),j(o,i(r))}),k(e,s),ce()}var dA=I('<div class="shell-prompt svelte-u0gb59"><span class="shell-prompt-cwd svelte-u0gb59"> </span> <span class="shell-prompt-arrow svelte-u0gb59">❯</span> <span class="shell-prompt-line svelte-u0gb59"> </span></div>');function fA(e,t){var n=dA(),r=p(n),s=p(r,!0);h(r);var a=g(r,4),o=p(a,!0);h(a),h(n),N(()=>{j(s,t.cwd),j(o,t.line)}),k(e,n)}var vA=I("<div> </div>");function pd(e,t){var n=vA();let r;var s=p(n,!0);h(n),N(()=>{r=_e(n,1,"shell-status svelte-nfxdpt",null,r,{info:t.level==="info",warn:t.level==="warn",error:t.level==="error"}),j(s,t.text)}),k(e,n)}var hA=I('<div class="shell-rich svelte-1rnhl05"><!></div>');function pA(e,t){var n=hA(),r=p(n);_a(r,()=>t.component,(s,a)=>{a(s,xa(()=>t.componentProps))}),h(n),k(e,n)}const Dl=new Map;function Qn(e,t){const n=Dl.get(e);if(n&&n!==t){console.warn(`[shell-shard/rich-registry] duplicate registration for key "${e}" — keeping first`);return}Dl.set(e,t)}function mA(e){return Dl.get(e)??null}var bA=I('<span class="jump-pill__count svelte-isy3jt"> </span>'),gA=I('<div class="jump-pill svelte-isy3jt" data-sh3-jump-pill=""><!></div>'),yA=I('<div class="shell-scrollback-wrap svelte-isy3jt"><div class="shell-scrollback svelte-isy3jt"><div class="content"></div></div> <!></div>');function _A(e,t){le(t,!0);let n=B(null),r=B(null),s=B(!0),a=B(0);const o=4;function l(){return i(n)?lA({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,b(s,!0),b(a,0))}function u(){l()?(b(s,!0),b(a,0)):b(s,!1)}let d=0;Pe(()=>{if(!i(r)||!i(n))return;d=i(n).scrollHeight;const _=new ResizeObserver(()=>{if(!i(n))return;const E=i(n).scrollHeight,x=E>d;d=E,i(s)?i(n).scrollTop=E:x&&Ar(a)});return _.observe(i(r)),()=>_.disconnect()});var f=yA(),v=p(f),m=p(v);xe(m,21,()=>t.scrollback.entries,_=>_.id,(_,E)=>{var x=Ue(),w=ke(x);{var R=T=>{uA(T,{get stream(){return i(E).stream},get chunks(){return i(E).chunks}})},A=T=>{{let C=V(()=>t.showPromptCwd?i(E).cwd:"");fA(T,{get cwd(){return i(C)},get line(){return i(E).line}})}},D=T=>{pd(T,{get text(){return i(E).text},get level(){return i(E).level}})},L=T=>{const C=V(()=>i(E).component??(i(E).componentKey?mA(i(E).componentKey):null));var O=Ue(),M=ke(O);{var P=F=>{pA(F,{get component(){return i(C)},get componentProps(){return i(E).props}})},q=F=>{{let W=V(()=>`<rich entry: ${i(E).componentKey??"unknown"} not registered>`);pd(F,{get text(){return i(W)},level:"info"})}};H(M,F=>{i(C)?F(P):F(q,-1)})}k(T,O)};H(w,T=>{i(E).kind==="text"?T(R):i(E).kind==="prompt"?T(A,1):i(E).kind==="status"?T(D,2):i(E).kind==="rich"&&T(L,3)})}k(_,x)}),h(m),We(m,_=>b(r,_),()=>i(r)),h(v),We(v,_=>b(n,_),()=>i(n));var S=g(v,2);{var y=_=>{var E=gA(),x=p(E);{let w=V(()=>i(a)>0?`${i(a)} New — jump to bottom`:"Jump to bottom"),R=V(()=>i(a)>0?`Jump to bottom, ${i(a)} New`:"Jump to bottom");Cn(x,{variant:"default",icon:"chevron-down",get title(){return i(w)},get ariaLabel(){return i(R)},onclick:c,children:(A,D)=>{var L=Ue(),T=ke(L);{var C=O=>{var M=bA(),P=p(M);h(M),N(()=>j(P,`${i(a)??""} New`)),k(O,M)};H(T,O=>{i(a)>0&&O(C)})}k(A,L)},$$slots:{default:!0}})}h(E),k(_,E)};H(S,_=>{i(s)||_(y)})}h(f),He("scroll",v,u),k(e,f),ce()}var wA=I('<span class="sh3-cmdline__prefix svelte-ngn09j"><!></span>'),kA=I('<div data-sh3-passthrough-modifiers=""><!> <input type="text" class="sh3-cmdline__decoy svelte-ngn09j" tabindex="-1" aria-hidden="true"/> <input type="password" class="sh3-cmdline__decoy svelte-ngn09j" tabindex="-1" aria-hidden="true"/> <input type="search" spellcheck="false" autocomplete="off" autocapitalize="off" aria-autocomplete="none" data-1p-ignore="" data-lpignore="true" class="sh3-cmdline__input svelte-ngn09j"/></div>');function xA(e,t){le(t,!0);let n=te(t,"value",15,""),r=te(t,"disabled",3,!1),s=B(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)}Pe(()=>{!r()&&i(s)&&i(s).focus()});var l=kA();let c;var u=p(l);{var d=v=>{var m=wA(),S=p(m);Xt(S,()=>t.prefix),h(m),k(v,m)};H(u,v=>{t.prefix&&v(d)})}var f=g(u,6);Te(f),We(f,v=>b(s,v),()=>i(s)),h(l),N(()=>{c=_e(l,1,"sh3-cmdline svelte-ngn09j",null,c,{"sh3-cmdline--disabled":r()}),oe(f,"name",t.name),f.disabled=r()}),K("keydown",f,o),He("focus",f,function(...v){t.onfocus?.apply(this,v)}),De(f,n),k(e,l),ce()}ge(["keydown"]);var SA=I('<span class="shell-input-cwd svelte-1dfv2gk"> </span>'),IA=I('<!> <span class="shell-input-arrow svelte-1dfv2gk">❯</span>',1),EA=I('<div class="shell-input-row svelte-1dfv2gk"><!></div>');function AA(e,t){le(t,!0);let n=te(t,"showCwd",3,!0),r=B(""),s=B(null),a=B("");function o(){if(t.locked)return;const v=i(r);v.trim()&&(b(r,""),b(s,null),t.onSubmit(v))}function l(){t.history.length!==0&&(i(s)===null?(b(a,i(r),!0),b(s,t.history.length-1)):i(s)>0&&Ar(s,-1),b(r,t.history[i(s)]??"",!0))}function c(){i(s)!==null&&(i(s)<t.history.length-1?(Ar(s),b(r,t.history[i(s)],!0)):(b(s,null),b(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(),b(r,""),b(s,null)):v.ctrlKey&&v.key==="l"&&(v.preventDefault(),b(r,"clear"),o())}var d=EA(),f=p(d);xA(f,{get disabled(){return t.locked},name:"shell-cmdline",onkeydown:u,onfocus:()=>t.onFocus?.(),get value(){return i(r)},set value(m){b(r,m,!0)},prefix:m=>{var S=IA(),y=ke(S);{var _=E=>{var x=SA(),w=p(x,!0);h(x),N(()=>j(w,t.cwd)),k(E,x)};H(y,E=>{n()&&E(_)})}Ot(2),k(m,S)},$$slots:{prefix:!0}}),h(d),k(e,d),ce()}class CA{list(){return bc()}get(t){return vi(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=vi(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 TA{#e=new Map;register(t){this.#e.set(t.id,t)}get(t){return this.#e.get(t)}list(t){const n=[];for(const r of this.#e.values())r.requiresRole&&r.requiresRole!==t||n.push(r);return n}}const RA={id:"bash",label:"Bash",requiresRole:"admin",transport:"ws",autoRelocate:!1,showCwd:!0},LA={id:"sh3",label:"SH3",transport:"none",autoRelocate:!0,showCwd:!1};function MA(e){e.register(RA),e.register(LA)}function zp(e){return`sh3.shell.lastMode.${e}`}function Op(e){try{return globalThis.localStorage?.getItem(zp(e))??null}catch{return null}}function md(e,t){try{globalThis.localStorage?.setItem(zp(e),t)}catch{}}function PA(e,t,n){const r=Op(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 $a(e,t){return e.entries.find(n=>n.kind==="rich"&&n.id===t)}function DA(e,t){return{update(n){const r=$a(e,t);r&&Object.assign(r.props,n)}}}function bd(e){return e.entries[e.entries.length-1].id}function gd(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()}),DA(t,bd(t))},stream(n,r){t.push({kind:"rich",component:n,props:{...r,__streamState:"streaming"},ts:Date.now()});const s=bd(t);return{append(a){const o=$a(t,s);o&&Object.assign(o.props,a)},complete(){const a=$a(t,s);a&&(a.props.__streamState="complete")},error(a){const o=$a(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 jA(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=gd({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=gd({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 zA(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 OA=I('<div class="toolbar svelte-gnowwz"><div class="toolbar-slots svelte-gnowwz"></div></div>');function NA(e,t){le(t,!0);let n=te(t,"slotProps",19,()=>({})),r=V(()=>t.registry.list(t.ctx));var s=OA(),a=p(s);xe(a,21,()=>i(r),o=>o.id,(o,l)=>{const c=V(()=>i(l).component);var u=Ue(),d=ke(u);_a(d,()=>i(c),(f,v)=>{v(f,xa(()=>n()[i(l).id]??{}))}),k(o,u)}),h(a),h(s),k(e,s),ce()}class qA{#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 BA=I('<span class="mode-label svelte-1i4cqlj"> </span>');function FA(e,t){le(t,!0);let n=V(()=>t.modes.map(l=>({value:l.id,label:l.label})));var r=Ue(),s=ke(r);{var a=l=>{dp(l,{get options(){return i(n)},get value(){return t.mode.id},size:"sm",onchange:c=>t.onSelect(c)})},o=l=>{var c=BA(),u=p(c,!0);h(c),N(()=>j(u,t.mode.label)),k(l,c)};H(s,l=>{t.modes.length>=2?l(a):t.modes.length===1&&l(o,1)})}k(e,r),ce()}var VA=I('<button class="focus-lock-btn svelte-1q6gbap"> </button>');function UA(e,t){var n=VA(),r=p(n,!0);h(n),N(()=>{oe(n,"title",t.locked?"Unlock focus":"Lock focus"),j(r,t.locked?"🔒":"🔓")}),K("click",n,function(...s){t.onToggle?.apply(this,s)}),k(e,n)}ge(["click"]);var HA=I('<span class="target-shard svelte-1nn2m6x" title="Target shard"> </span>');function KA(e,t){var n=HA(),r=p(n);h(n),N(()=>j(r,`→ ${t.target??"—"??""}`)),k(e,n)}var WA=I('<span class="label"> </span>'),YA=I('<div class="busy svelte-7wyurd" role="status" aria-live="polite"><span class="spinner svelte-7wyurd" aria-hidden="true"></span> <!></div>');function XA(e,t){var n=Ue(),r=ke(n);{var s=a=>{var o=YA(),l=g(p(o),2);{var c=u=>{var d=WA(),f=p(d,!0);h(d),N(()=>j(f,t.label)),k(u,d)};H(l,u=>{t.label&&u(c)})}h(o),k(a,o)};H(r,a=>{t.active&&a(s)})}k(e,n)}var GA=I('<div class="shell-terminal svelte-13komre"><!> <!> <!></div>');function JA(e,t){le(t,!0);const n=Me(()=>new aA),r=new Map;function s(z){let U=r.get(z);return U||(U=new $2(z),n.hydrate(U),r.set(z,U)),U}const a=new CA,o=new Vh,l=new TA;MA(l);let c=B(fe(Me(()=>t.contributions.list(Vs))));Pe(()=>{const z=t.contributions.onChange(Vs,()=>{b(c,t.contributions.list(Vs),!0)});return()=>z()});function u(z){return{id:z.id,label:z.label,requiresRole:z.requiresRole,transport:"custom",autoRelocate:z.autoRelocate??!1,showCwd:z.showCwd??!1}}let d=V(()=>[...l.list(t.role),...i(c).filter(z=>!z.requiresRole||z.requiresRole===t.role).map(u)]),f=B(fe(Me(()=>{const z=Op(t.userId);if(z){const G=[...l.list(t.role),...i(c).filter(J=>!J.requiresRole||J.requiresRole===t.role).map(u)].find(J=>J.id===z);if(G)return G}return PA(l,t.userId,t.role)}))),v=B(0);function m(){b(v,performance.now(),!0)}const S=Me(()=>R0()),y=V(()=>s(i(f).id));Pe(()=>{for(const[z,U]of Object.entries(x.historyByMode)){const G=s(z);G.history.length<U.length&&(G.history=[...U])}}),Pe(()=>{i(y).scrollback.entries.length,i(y).history.length,i(y).modeId==="bash"?n.flush(i(y),x.lastSeq):n.flush(i(y))});function _(z){const U=i(d).find(G=>G.id===z);U&&(U.requiresRole&&U.requiresRole!==t.role||(C(),b(f,U,!0),md(t.userId,z)))}Pe(()=>{if(!i(d).find(z=>z.id===i(f).id)){const z=i(d).find(U=>U.id==="sh3")??i(d)[0];if(z){const U=i(f).id;b(f,z,!0),md(t.userId,z.id),s(z.id).scrollback.push({kind:"status",text:`mode '${U}' is no longer available — switched to '${z.id}'`,level:"warn",ts:Date.now()})}}});const E=Me(()=>({...t.shell,setMode:z=>{const U=i(d).find(G=>G.id===z);return!U||U.requiresRole&&U.requiresRole!==t.role?!1:(_(z),!0)},listModes:()=>i(d).map(z=>({id:z.id,label:z.label})),getMode:()=>({id:i(f).id,label:i(f).label}),dispatchToTerminal:Lc({headless:!1})})),x=Me(()=>new Fh(t.wsUrl));let w=0,R=B(fe(new Map));function A(z){const U=++w;i(R).set(U,z),b(R,new Map(i(R)),!0);let G=!1;return()=>{G||(G=!0,i(R).delete(U),b(R,new Map(i(R)),!0))}}let D=V(()=>i(R).size>0),L=V(()=>{if(i(R).size===0)return null;let z;for(const U of i(R).values())z=U;return z??null});const{dispatch:T,cancel:C}=Me(()=>jA({mode:()=>i(f),role:()=>t.role,resolver:a,buffer:()=>i(y),session:x,sh3:E,fs:o,cwd:()=>x.cwd,busy:A,customMode:z=>i(c).find(U=>U.id===z)??null}));let O=B(!1),M=B(null);const P=new qA;P.register({id:"busy",order:5,visible:()=>!0,component:XA}),P.register({id:"mode",order:10,visible:()=>!0,component:FA}),P.register({id:"focus-lock",order:20,visible:z=>z.mode.id==="sh3",component:UA}),P.register({id:"target-shard",order:30,visible:z=>z.mode.id==="sh3",component:KA});function q(z){if(z.type==="tabs")return z.tabs[z.activeTab]?.viewId??null;if(z.type==="split"){for(const U of z.children){const G=q(U);if(G!==null)return G}return null}return z.viewId??null}function F(){try{const z=Zt(),U=q(z.docked);if(!U)return null;const G=U.indexOf(":");return G>=0?U.slice(0,G):U}catch{return null}}Pe(()=>{const z=F(),U=i(f).autoRelocate,G=i(O);(async()=>{const J=await zA({modeAutoRelocate:U,focusLocked:G,focusedShardId:z,currentShardId:"shell"},o);J.kind==="relocate"&&J.path!==void 0&&(x.cwd=J.path),z&&z!=="shell"?b(M,z,!0):z||b(M,null)})()});function W(z){if(z.t==="replay"){iA(s("bash"),z.events);return}if(z.t!=="event")return;const U=z.event,G=s("bash");switch(U.kind){case"prompt":G.scrollback.push({kind:"prompt",cwd:U.cwd,line:U.line,ts:U.ts}),G.locked=!0;break;case"stdout":G.scrollback.push({kind:"text",stream:"stdout",chunks:[U.data],ts:U.ts});break;case"stderr":G.scrollback.push({kind:"text",stream:"stderr",chunks:[U.data],ts:U.ts});break;case"exit":(U.signal||U.code!==null&&U.code!==0)&&G.scrollback.push({kind:"status",text:U.signal?`shell: process exited (${U.signal})`:`shell: process exited (${U.code})`,level:"error",ts:U.ts}),G.locked=!1;break;case"status":G.scrollback.push({kind:"status",text:U.text,level:U.level,ts:U.ts});break}}let $=null,Z=null;ic(()=>{$=x.onMessage(W),s("bash");const z=n.readLastSeq("bash");z!==void 0&&(x.lastSeq=z),x.connect(),Z=L0({id:S,dispatch:T,getFocusStamp:()=>i(v),getMode:()=>i(f)})}),oc(()=>{$?.(),x.close(),Z?.()});var Y=GA(),ee=p(Y);{let z=V(()=>({mode:i(f),role:t.role})),U=V(()=>({busy:{active:i(D),label:i(L)},mode:{mode:i(f),modes:i(d),onSelect:_},"focus-lock":{locked:i(O),onToggle:()=>b(O,!i(O))},"target-shard":{target:i(M)}}));NA(ee,{get registry(){return P},get ctx(){return i(z)},get slotProps(){return i(U)}})}var X=g(ee,2);{let z=V(()=>i(f).showCwd||!1);_A(X,{get showPromptCwd(){return i(z)},get scrollback(){return i(y).scrollback}})}var Q=g(X,2);{let z=V(()=>oA(x.cwd,x.tenantRoot)),U=V(()=>i(f).showCwd!==!1);AA(Q,{get cwd(){return i(z)},get showCwd(){return i(U)},get locked(){return i(y).locked},get history(){return i(y).history},get session(){return x},get onSubmit(){return T},onFocus:m})}h(Y),k(e,Y),ce()}var ZA=I('<tr><td class="svelte-m248jy"><button type="button" class="svelte-m248jy"> </button></td><td class="svelte-m248jy"> </td></tr>'),QA=I('<div class="shell-rich-help svelte-m248jy"><table class="svelte-m248jy"><thead><tr><th class="svelte-m248jy">Name</th><th class="svelte-m248jy">Summary</th></tr></thead><tbody></tbody></table></div>');function Np(e,t){le(t,!0);var n=QA(),r=p(n),s=g(p(r));xe(s,21,()=>t.data.rows,a=>a.name,(a,o)=>{var l=ZA(),c=p(l),u=p(c),d=p(u,!0);h(u),h(c);var f=g(c),v=p(f,!0);h(f),h(l),N(()=>{j(d,i(o).name),j(v,i(o).summary)}),K("click",u,()=>t.data.onClickName(i(o).name)),k(a,l)}),h(s),h(r),h(n),k(e,n),ce()}ge(["click"]);const qp="help-table";Qn(qp,Np);function $A(){return{name:"help",summary:"List verbs or show detail for one.",globalVerb:!0,async run(e){const t=bc().map(n=>({name:n.name,summary:n.summary}));e.scrollback.push({kind:"rich",componentKey:qp,component:Np,props:{data:{rows:t,onClickName:n=>e.dispatch(n)}},ts:Date.now()})}}}const eC={name:"clear",summary:"Clear the scrollback (local only — other views are unaffected).",globalVerb:!0,async run(e){e.scrollback.clear()}},tC={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 nC=I('<li class="svelte-o8m437"><button type="button" class="svelte-o8m437"> </button></li>'),rC=I('<div class="shell-rich-history svelte-o8m437"><ol class="svelte-o8m437"></ol></div>');function Bp(e,t){le(t,!0);var n=rC(),r=p(n);xe(r,21,()=>t.data.lines,bt,(s,a)=>{var o=nC(),l=p(o),c=p(l,!0);h(l),h(o),N(()=>j(c,i(a))),K("click",l,()=>t.data.onClickLine(i(a))),k(s,o)}),h(r),h(n),k(e,n),ce()}ge(["click"]);const Fp="history-list";Qn(Fp,Bp);const sC={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:Fp,component:Bp,props:{data:{lines:a,onClickLine:o=>e.dispatch(o)}},ts:Date.now()})}};var aC=I('<tr><td class="svelte-1u5krjz"><button type="button" class="svelte-1u5krjz"> </button></td><td class="svelte-1u5krjz"> </td></tr>'),iC=I('<div class="shell-rich-apps svelte-1u5krjz"><table class="svelte-1u5krjz"><thead><tr><th class="svelte-1u5krjz">ID</th><th class="svelte-1u5krjz">Label</th></tr></thead><tbody></tbody></table></div>');function Vp(e,t){le(t,!0);var n=iC(),r=p(n),s=g(p(r));xe(s,21,()=>t.data.apps,a=>a.id,(a,o)=>{var l=aC(),c=p(l),u=p(c),d=p(u,!0);h(u),h(c);var f=g(c),v=p(f,!0);h(f),h(l),N(()=>{j(d,i(o).id),j(v,i(o).label)}),K("click",u,()=>t.data.onClickApp(i(o).id)),k(a,l)}),h(s),h(r),h(n),k(e,n),ce()}ge(["click"]);var oC=I('<div class="shell-rich-appcard svelte-npcp8i"><h3 class="svelte-npcp8i"> </h3> <p class="svelte-npcp8i"><strong>ID:</strong> </p> <p class="svelte-npcp8i"><strong>Shards:</strong> </p></div>');function Up(e,t){le(t,!0);var n=oC(),r=p(n),s=p(r,!0);h(r);var a=g(r,2),o=g(p(a));h(a);var l=g(a,2),c=g(p(l));h(l),h(n),N(u=>{j(s,t.data.label),j(o,` ${t.data.id??""}`),j(c,` ${u??""}`)},[()=>t.data.shards.join(", ")]),k(e,n),ce()}const Hp="apps-table",Kp="app-card";Qn(Hp,Vp);Qn(Kp,Up);const lC={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:Hp,component:Vp,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()})}},cC={name:"app",summary:"Show the currently active app.",programmatic:!0,async run(e){const t=e.sh3.getActiveApp();if(!t){e.scrollback.push({kind:"status",text:"shell: no active app",level:"info",ts:Date.now()});return}e.scrollback.push({kind:"rich",componentKey:Kp,component:Up,props:{data:{id:t.id,label:t.label,shards:[]}},ts:Date.now()})}};var uC=I('<tr><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td></tr>'),dC=I('<div class="shell-rich-shards svelte-sc3ux4"><table class="svelte-sc3ux4"><thead><tr><th class="svelte-sc3ux4">ID</th><th class="svelte-sc3ux4">Label</th><th class="svelte-sc3ux4">Version</th></tr></thead><tbody></tbody></table></div>');function Wp(e,t){le(t,!0);var n=dC(),r=p(n),s=g(p(r));xe(s,21,()=>t.data.shards,a=>a.id,(a,o)=>{var l=uC(),c=p(l),u=p(c,!0);h(c);var d=g(c),f=p(d,!0);h(d);var v=g(d),m=p(v,!0);h(v),h(l),N(()=>{j(u,i(o).id),j(f,i(o).label),j(m,i(o).version)}),k(a,l)}),h(s),h(r),h(n),k(e,n),ce()}const Yp="shards-table";Qn(Yp,Wp);const fC={name:"shards",summary:"List active shards.",programmatic:!0,async run(e){const t=e.sh3.listShards();e.scrollback.push({kind:"rich",componentKey:Yp,component:Wp,props:{data:{shards:t}},ts:Date.now()})}};var vC=I('<tr><td class="svelte-15elbr1"> </td><td class="svelte-15elbr1"> </td><td class="svelte-15elbr1"> </td><td class="svelte-15elbr1"><button type="button" class="svelte-15elbr1">Close</button></td></tr>'),hC=I('<div class="shell-rich-views svelte-15elbr1"><table class="svelte-15elbr1"><thead><tr><th class="svelte-15elbr1">Slot ID</th><th class="svelte-15elbr1">View ID</th><th class="svelte-15elbr1">Label</th><th class="svelte-15elbr1">Action</th></tr></thead><tbody></tbody></table></div>');function Xp(e,t){le(t,!0);var n=hC(),r=p(n),s=g(p(r));xe(s,21,()=>t.data.views,a=>a.slotId,(a,o)=>{var l=vC(),c=p(l),u=p(c,!0);h(c);var d=g(c),f=p(d,!0);h(d);var v=g(d),m=p(v,!0);h(v);var S=g(v),y=p(S);h(S),h(l),N(()=>{j(u,i(o).slotId),j(f,i(o).viewId),j(m,i(o).label)}),K("click",y,()=>t.data.onClose(i(o).slotId)),k(a,l)}),h(s),h(r),h(n),k(e,n),ce()}ge(["click"]);const Gp="views-table";Qn(Gp,Xp);const pC={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:Gp,component:Xp,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()})}},mC={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()})}},bC={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()})}},gC={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()})}},yC={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 _C=I('<tr><td class="svelte-1w7onag"> </td><td class="svelte-1w7onag"> </td></tr>'),wC=I('<div class="shell-rich-zones svelte-1w7onag"><table class="svelte-1w7onag"><thead><tr><th class="svelte-1w7onag">Shard ID</th><th class="svelte-1w7onag">Zones</th></tr></thead><tbody></tbody></table></div>');function Jp(e,t){le(t,!0);var n=wC(),r=p(n),s=g(p(r));xe(s,21,()=>t.data.rows,a=>a.shardId,(a,o)=>{var l=_C(),c=p(l),u=p(c,!0);h(c);var d=g(c),f=p(d,!0);h(d),h(l),N(v=>{j(u,i(o).shardId),j(f,v)},[()=>i(o).zones.join(", ")]),k(a,l)}),h(s),h(r),h(n),k(e,n),ce()}var kC=I('<div class="shell-rich-zonetree svelte-13iiyr1"><pre class="svelte-13iiyr1"> </pre></div>');function Zp(e,t){le(t,!0);var n=kC(),r=p(n),s=p(r,!0);h(r),h(n),N(a=>j(s,a),[()=>JSON.stringify(t.data.value,null,2)]),k(e,n),ce()}const Qp="zones-table",$p="zone-tree";Qn(Qp,Jp);Qn($p,Zp);const xC={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:Jp,props:{data:{rows:n}},ts:Date.now()})}},SC={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:$p,component:Zp,props:{data:{value:s}},ts:Date.now()})}};var IC=I('<tr><td class="svelte-1ox8vog"> </td><td class="svelte-1ox8vog"> </td></tr>'),EC=I('<div class="shell-rich-env svelte-1ox8vog"><table class="svelte-1ox8vog"><thead><tr><th class="svelte-1ox8vog">Key</th><th class="svelte-1ox8vog">Value</th></tr></thead><tbody></tbody></table></div>');function em(e,t){le(t,!0);var n=EC(),r=p(n),s=g(p(r));xe(s,21,()=>Object.entries(t.data.env),([a,o])=>a,(a,o)=>{var l=V(()=>Xd(i(o),2));let c=()=>i(l)[0],u=()=>i(l)[1];var d=IC(),f=p(d),v=p(f,!0);h(f);var m=g(f),S=p(m,!0);h(m),h(d),N(()=>{j(v,c()),j(S,u())}),k(a,d)}),h(s),h(r),h(n),k(e,n),ce()}const tm="env-table";Qn(tm,em);const AC={name:"env",summary:"Show the session environment.",async run(e){const t=e.session.env;e.scrollback.push({kind:"rich",componentKey:tm,component:em,props:{data:{env:t}},ts:Date.now()})}};async function CC(){try{const{TauriStoreBackend:e}=await Ri(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:Hd}}}async function TC(){try{const{LazyStore:e}=await Ri(async()=>{const{LazyStore:r}=await import("./index-BRw5Wfxx.js");return{LazyStore:r}},__vite__mapDeps([1,2])),t=new e("workspace.json",{defaults:{},autoSave:!0}),n=new e("user.json",{defaults:{},autoSave:!0});await t.clear(),await n.clear()}catch{}if(typeof localStorage<"u"){const e=[];for(let t=0;t<localStorage.length;t++){const n=localStorage.key(t);n&&n.startsWith("sh3:")&&e.push(n)}for(const t of e)localStorage.removeItem(t)}typeof indexedDB<"u"&&await new Promise(e=>{const t=indexedDB.deleteDatabase("sh3-packages");t.onsuccess=()=>e(),t.onerror=()=>e(),t.onblocked=()=>e()})}const RC={name:"reset",summary:"Wipe SH3 state and reload (preserves documents). Requires --confirm.",async run(e,t){if(!t.includes("--confirm")){e.scrollback.push({kind:"status",text:"reset: erases the package registry, all zone state (including Tauri stores), and theme overrides, then reloads. Documents are preserved. Re-run as `reset --confirm` to proceed.",level:"warn",ts:Date.now()});return}e.scrollback.push({kind:"status",text:"reset: wiping data…",level:"info",ts:Date.now()}),await TC(),location.reload()}};function LC(e){e.registerVerb($A()),e.registerVerb(eC),e.registerVerb(tC),e.registerVerb(sC),e.registerVerb(lC),e.registerVerb(cC),e.registerVerb(fC),e.registerVerb(pC),e.registerVerb(mC),e.registerVerb(yC),e.registerVerb(bC),e.registerVerb(gC),e.registerVerb(xC),e.registerVerb(SC),e.registerVerb(AC),e.registerVerb(RC)}const nm={manifest:Q2,activate(e){LC(e);const t=Rx(e.zones),n=e.state({workspace:{buffers:{}}});eA(n),e.actions.register({id:"shell.terminal.toggle",label:"Open Terminal",scope:["home","app"],defaultShortcut:"²",allowInInputs:!1,run(){to("shell:terminal")||Be.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=br()?.id??"guest",f=zt()?"admin":"user",v=Qe(JA,{target:s,props:{shell:t,wsUrl:c,userId:d,role:f,contributions:e.contributions}});return{unmount(){ot(v)},closable:!0}}};e.registerView("shell:terminal",r)},autostart(){},deactivate(){tA()}};var MC=I('<p class="error svelte-1w8uhw5">The source float was closed.</p>'),PC=I('<p class="error svelte-1w8uhw5">No standalone views in this float.</p>'),DC=I('<li class="svelte-1w8uhw5"> <span class="muted svelte-1w8uhw5"> </span></li>'),jC=I('<div class="preview svelte-1w8uhw5"><div class="preview-label svelte-1w8uhw5"> </div> <ul class="preview-list svelte-1w8uhw5"></ul></div>'),zC=I('<div class="layout-save svelte-1w8uhw5"><h2 class="svelte-1w8uhw5">Save layout as…</h2> <label class="row svelte-1w8uhw5"><span class="svelte-1w8uhw5">Name</span> <input type="text" class="name-input svelte-1w8uhw5" placeholder="Layout name"/></label> <!> <div class="actions svelte-1w8uhw5"><button type="button" class="primary svelte-1w8uhw5">Save</button> <button type="button" class="svelte-1w8uhw5">Cancel</button></div></div>');function OC(e,t){le(t,!0);const n=Me(()=>Be.list().find(A=>A.id===t.floatId)?.content??null),r=V(()=>n?ho(n,t.isStandalone):null),s=V(()=>i(r)?u(i(r)):[]),a=V(()=>n===null),o=V(()=>!i(a)&&i(r)===null);let l=B(fe(Me(()=>t.defaultName)));const c=V(()=>i(l).trim()===""||i(a)||i(o));function u(A){if(A.type==="slot")return A.viewId?[A.viewId]:[];if(A.type==="tabs"){const D=[];for(const L of A.tabs)L.viewId&&D.push(L.viewId);return D}return A.children.flatMap(u)}function d(){i(c)||(t.onConfirm(i(l).trim()),t.close())}var f=zC(),v=g(p(f),2),m=g(p(v),2);Te(m),h(v);var S=g(v,2);{var y=A=>{var D=MC();k(A,D)},_=A=>{var D=PC();k(A,D)},E=A=>{var D=jC(),L=p(D),T=p(L);h(L);var C=g(L,2);xe(C,21,()=>i(s),bt,(O,M)=>{var P=DC(),q=p(P),F=g(q),W=p(F);h(F),h(P),N($=>{j(q,`${$??""} `),j(W,`(${i(M)??""})`)},[()=>t.resolveLabel(i(M))]),k(O,P)}),h(C),h(D),N(()=>j(T,`Captured views (${i(s).length??""}):`)),k(A,D)};H(S,A=>{i(a)?A(y):i(o)?A(_,1):A(E,-1)})}var x=g(S,2),w=p(x),R=g(w,2);h(x),h(f),N(()=>w.disabled=i(c)),De(m,()=>i(l),A=>b(l,A)),K("click",w,d),K("click",R,()=>t.close()),k(e,f),ce()}ge(["click"]);function NC(){const e=Ta();return!e||e.type!=="float-header"?null:e.ref}function $c(e){return aa().some(t=>t.viewId===e)}function qC(e){return aa().find(t=>t.viewId===e)?.label??e}function BC(){return`sl-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function FC(e,t){const n=GI(e,$c);if(n===null)return null;const r={id:BC(),name:t,createdAt:Date.now(),size:n.size,content:n.content};return WI(r),r}function rm(){const e=Ta();return!e||e.type!=="saved-layout"?null:e.ref}function VC(e,t){const n=t.icon===void 0&&t.color===void 0?void 0:{icon:t.icon,color:t.color};kp(e,{name:t.label,appearance:n})}function UC(e){kp(e,{appearance:void 0})}function HC(e){const t=rm();if(!t)return;const n=Lr().find(s=>s.id===t.layoutId);if(!n)return;const r={entityLabel:n.name,initialAppearance:n.appearance,defaultIcon:"eye",requireLabel:!0,onSave:s=>VC(t.layoutId,s),onReset:()=>UC(t.layoutId)};dn.open(Ip,r)}function KC(e){YI(e)}function WC(e){const t=rm();if(!t)return;const n=Lr().find(r=>r.id===t.layoutId);n&&dn.open(Cp,{title:`Delete saved layout "${n.name}"?`,body:"This cannot be undone.",confirmLabel:"Delete",confirmTone:"danger",onConfirm:()=>KC(t.layoutId)})}function YC(e){const t=NC();if(!t)return;const n={floatId:t.floatId,isStandalone:$c,resolveLabel:qC,defaultName:`Layout ${Lr().length+1}`,onConfirm:r=>{FC(t.floatId,r)}};dn.open(OC,n)}const sm={manifest:{id:"__layouts__",label:"Saved Layouts",version:En,views:[]},activate(e){const t=e.state({user:{layouts:[]}});HI(t);const n=(o,l)=>{Dn.notify(o,{level:l})},r={id:"sh3.layout.save",label:"Save layout as…",scope:{element:"float-header"},contextItem:!0,paletteItem:!1,run:YC};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:HC}),e.actions.register({id:"sh3.layout.delete",label:"Delete",scope:{element:"saved-layout"},contextItem:!0,run:WC});const s=new Map,a=new Map;ms(()=>{Pe(()=>{const o=Lr(),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=Lr().find(v=>v.id===c.id);f&&Sp(f,$c,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(){KI()}},am={manifest:{id:"sh3-store-app",label:"Package Store",version:En,requiredShards:["sh3-store"],layoutVersion:1,admin:!0},initialLayout:{type:"tabs",activeTab:0,tabs:[{slotId:"store.browse",viewId:"sh3-store:browse",label:"Browse"}]}};var XC=I('<div class="admin-error svelte-4q792t"> </div>'),GC=I('<form class="admin-create-form svelte-4q792t"><input class="admin-input svelte-4q792t" type="text" placeholder="Username"/> <input class="admin-input svelte-4q792t" type="text" placeholder="Display name"/> <input class="admin-input svelte-4q792t" type="password" placeholder="Password"/> <select class="admin-input svelte-4q792t"><option>User</option><option>Admin</option></select> <button type="submit" class="admin-btn svelte-4q792t">Create</button> <!></form>'),JC=I('<p class="admin-muted svelte-4q792t">Loading...</p>'),ZC=I('<p class="admin-error svelte-4q792t"> </p>'),QC=I('<form class="admin-edit-form svelte-4q792t"><input class="admin-input svelte-4q792t" type="text"/> <input class="admin-input svelte-4q792t" type="password" placeholder="New password (leave empty to keep)"/> <select class="admin-input svelte-4q792t"><option>User</option><option>Admin</option></select> <div class="admin-edit-actions svelte-4q792t"><button type="submit" class="admin-btn svelte-4q792t">Save</button> <button type="button" class="admin-btn-secondary svelte-4q792t">Cancel</button></div></form>'),$C=I('<div class="admin-user-info svelte-4q792t"><span class="admin-user-name svelte-4q792t"> </span> <span class="admin-user-meta svelte-4q792t"> </span></div> <div class="admin-user-actions svelte-4q792t"><button type="button" class="admin-btn-secondary svelte-4q792t">Mounts</button> <button type="button" class="admin-btn-secondary svelte-4q792t">Edit</button> <button type="button" class="admin-btn-danger svelte-4q792t">Delete</button></div>',1),eT=I('<li class="admin-user-item svelte-4q792t"><!></li>'),tT=I('<ul class="admin-user-list svelte-4q792t"></ul>'),nT=I('<p class="admin-muted svelte-4q792t">Loading...</p>'),rT=I('<p class="admin-muted svelte-4q792t">No mounts configured. Create mounts first.</p>'),sT=I('<li class="admin-mount-checklist-item svelte-4q792t"><label class="admin-checklist-label svelte-4q792t"><input class="sh3-base-check svelte-4q792t" type="checkbox"/> <span class="admin-status-dot svelte-4q792t"></span> <span> </span> <span class="admin-mount-id svelte-4q792t"> </span></label></li>'),aT=I('<ul class="admin-mount-checklist svelte-4q792t"></ul>'),iT=I('<div class="admin-modal-root svelte-4q792t"><button type="button" class="admin-modal-backdrop svelte-4q792t" aria-label="Close dialog"></button> <div class="admin-modal svelte-4q792t" role="dialog" aria-modal="true" aria-labelledby="mount-modal-title"><h3 id="mount-modal-title" class="svelte-4q792t"> </h3> <!> <div class="admin-modal-actions svelte-4q792t"><button type="button" class="admin-btn svelte-4q792t">Close</button></div></div></div>'),oT=I('<div class="admin-users svelte-4q792t"><div class="admin-users-header svelte-4q792t"><h2 class="svelte-4q792t">Users</h2> <button type="button" class="admin-btn svelte-4q792t"> </button></div> <!> <!> <!></div>');function lT(e,t){le(t,!0);let n=B(fe([])),r=B(!0),s=B(null),a=B(!1),o=B(""),l=B(""),c=B(""),u=B("user"),d=B(null),f=B(null),v=B(""),m=B("user"),S=B(""),y=B(null),_=B(fe([])),E=B(fe(new Set)),x=B(!1);async function w(z){b(y,z,!0),b(x,!0);try{const[U,G]=await Promise.all([Ie("/api/admin/mounts"),Ie(`/api/admin/tenants/${z.id}/attachments`)]);b(_,U.ok?await U.json():[],!0);const J=G.ok?await G.json():[];b(E,new Set(J.map(ie=>ie.mountId)),!0)}catch{}b(x,!1)}async function R(z){if(!i(y))return;const U=i(E).has(z);try{U?(await Ie("/api/admin/mount-attachments",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({mountId:z,tenantId:i(y).id})}),b(E,new Set([...i(E)].filter(G=>G!==z)),!0)):(await Ie("/api/admin/mount-attachments",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({mountId:z,tenantId:i(y).id})}),b(E,new Set([...i(E),z]),!0))}catch{}}async function A(){b(r,!0),b(s,null);try{const z=await Ie("/api/admin/users");if(!z.ok)throw new Error("Failed to fetch users");b(n,await z.json(),!0)}catch(z){b(s,z instanceof Error?z.message:"Failed to load users",!0)}finally{b(r,!1)}}async function D(){b(d,null);try{const z=await Ie("/api/admin/users",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:i(o),displayName:i(l)||i(o),password:i(c),role:i(u)})});if(!z.ok){const U=await z.json().catch(()=>({}));b(d,U.error||"Failed to create user",!0);return}b(o,""),b(l,""),b(c,""),b(u,"user"),b(a,!1),await A()}catch{b(d,"Network error")}}function L(z){b(f,z.id,!0),b(v,z.displayName,!0),b(m,z.role,!0),b(S,"")}async function T(){if(!i(f))return;const z={displayName:i(v),role:i(m)};i(S).trim()&&(z.password=i(S));try{if(!(await Ie(`/api/admin/users/${i(f)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(z)})).ok)return;b(f,null),await A()}catch{}}async function C(z){try{await Ie(`/api/admin/users/${z}`,{method:"DELETE"}),await A()}catch{}}A();var O=oT();He("keydown",Ks,z=>{z.key==="Escape"&&i(y)&&b(y,null)});var M=p(O),P=g(p(M),2),q=p(P,!0);h(P),h(M);var F=g(M,2);{var W=z=>{var U=GC(),G=p(U);Te(G);var J=g(G,2);Te(J);var ie=g(J,2);Te(ie);var ve=g(ie,2),se=p(ve);se.value=se.__value="user";var ue=g(se);ue.value=ue.__value="admin",h(ve);var be=g(ve,2),we=g(be,2);{var Ee=ae=>{var he=XC(),Se=p(he,!0);h(he),N(()=>j(Se,i(d))),k(ae,he)};H(we,ae=>{i(d)&&ae(Ee)})}h(U),N(ae=>be.disabled=ae,[()=>!i(o).trim()||!i(c).trim()]),He("submit",U,ae=>{ae.preventDefault(),D()}),De(G,()=>i(o),ae=>b(o,ae)),De(J,()=>i(l),ae=>b(l,ae)),De(ie,()=>i(c),ae=>b(c,ae)),Xs(ve,()=>i(u),ae=>b(u,ae)),k(z,U)};H(F,z=>{i(a)&&z(W)})}var $=g(F,2);{var Z=z=>{var U=JC();k(z,U)},Y=z=>{var U=ZC(),G=p(U,!0);h(U),N(()=>j(G,i(s))),k(z,U)},ee=z=>{var U=tT();xe(U,21,()=>i(n),G=>G.id,(G,J)=>{var ie=eT(),ve=p(ie);{var se=be=>{var we=QC(),Ee=p(we);Te(Ee);var ae=g(Ee,2);Te(ae);var he=g(ae,2),Se=p(he);Se.value=Se.__value="user";var ne=g(Se);ne.value=ne.__value="admin",h(he);var re=g(he,2),me=g(p(re),2);h(re),h(we),He("submit",we,ye=>{ye.preventDefault(),T()}),De(Ee,()=>i(v),ye=>b(v,ye)),De(ae,()=>i(S),ye=>b(S,ye)),Xs(he,()=>i(m),ye=>b(m,ye)),K("click",me,()=>{b(f,null)}),k(be,we)},ue=be=>{var we=$C(),Ee=ke(we),ae=p(Ee),he=p(ae,!0);h(ae);var Se=g(ae,2),ne=p(Se);h(Se),h(Ee);var re=g(Ee,2),me=p(re),ye=g(me,2),pe=g(ye,2);h(re),N(()=>{j(he,i(J).displayName),j(ne,`${i(J).username??""} · ${i(J).role??""}`)}),K("click",me,()=>w(i(J))),K("click",ye,()=>L(i(J))),K("click",pe,()=>C(i(J).id)),k(be,we)};H(ve,be=>{i(f)===i(J).id?be(se):be(ue,-1)})}h(ie),k(G,ie)}),h(U),k(z,U)};H($,z=>{i(r)?z(Z):i(s)?z(Y,1):z(ee,-1)})}var X=g($,2);{var Q=z=>{var U=iT(),G=p(U),J=g(G,2),ie=p(J),ve=p(ie);h(ie);var se=g(ie,2);{var ue=he=>{var Se=nT();k(he,Se)},be=he=>{var Se=rT();k(he,Se)},we=he=>{var Se=aT();xe(Se,21,()=>i(_),ne=>ne.id,(ne,re)=>{var me=sT(),ye=p(me),pe=p(ye);Te(pe);var Le=g(pe,2),Ne=g(Le,2),ze=p(Ne,!0);h(Ne);var rt=g(Ne,2),Xe=p(rt,!0);h(rt),h(ye),h(me),N(Ke=>{wa(pe,Ke),Ge(Le,`background: ${i(re).status==="resolved"?"#4caf50":i(re).status==="unresolved"?"#ff9800":"#f44336"}`),j(ze,i(re).label||i(re).id),j(Xe,i(re).id)},[()=>i(E).has(i(re).id)]),K("change",pe,()=>R(i(re).id)),k(ne,me)}),h(Se),k(he,Se)};H(se,he=>{i(x)?he(ue):i(_).length===0?he(be,1):he(we,-1)})}var Ee=g(se,2),ae=p(Ee);h(Ee),h(J),h(U),N(()=>j(ve,`Mount Attachments for ${i(y).displayName??""}`)),K("click",G,()=>{b(y,null)}),K("click",ae,()=>{b(y,null)}),k(z,U)};H(X,z=>{i(y)&&z(Q)})}h(O),N(()=>j(q,i(a)?"Cancel":"New user")),K("click",P,()=>{b(a,!i(a))}),k(e,O),ce()}ge(["click","change"]);var cT=I('<p class="admin-muted svelte-1hsgdb4">Loading...</p>'),uT=I('<div class="admin-error svelte-1hsgdb4"> </div>'),dT=I('<div class="admin-auth-fields svelte-1hsgdb4"><label class="admin-toggle svelte-1hsgdb4"><input type="checkbox" class="svelte-1hsgdb4"/> <span>Allow guest browsing</span> <span class="admin-hint svelte-1hsgdb4">When sign-in is required, guests can still browse with session-only data.</span></label> <label class="admin-toggle svelte-1hsgdb4"><input type="checkbox" class="svelte-1hsgdb4"/> <span>Self-registration</span> <span class="admin-hint svelte-1hsgdb4">Visitors can create their own accounts from the sign-in screen.</span></label> <label class="admin-field svelte-1hsgdb4"><span class="svelte-1hsgdb4">Session lifetime (hours)</span> <input type="number" class="admin-input admin-input-sm svelte-1hsgdb4" min="1" max="8760"/></label> <button type="button" class="admin-btn svelte-1hsgdb4"> </button></div> <!>',1),fT=I('<div class="admin-auth svelte-1hsgdb4"><h2 class="svelte-1hsgdb4">Auth Settings</h2> <!></div>');function vT(e,t){le(t,!0);let n=B(null),r=B(!0),s=B(!1),a=B(null);async function o(){b(r,!0);try{const v=await Ie("/api/admin/settings");if(!v.ok)throw new Error("Failed to fetch settings");b(n,await v.json(),!0)}catch(v){b(a,v instanceof Error?v.message:"Failed to load settings",!0)}finally{b(r,!1)}}async function l(){if(i(n)){b(s,!0),b(a,null);try{const v=await Ie("/api/admin/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(i(n))});if(!v.ok)throw new Error("Failed to save settings");b(n,await v.json(),!0)}catch(v){b(a,v instanceof Error?v.message:"Failed to save",!0)}finally{b(s,!1)}}}o();var c=fT(),u=g(p(c),2);{var d=v=>{var m=cT();k(v,m)},f=v=>{var m=dT(),S=ke(m),y=p(S),_=p(y);Te(_),Ot(4),h(y);var E=g(y,2),x=p(E);Te(x),Ot(4),h(E);var w=g(E,2),R=g(p(w),2);Te(R),h(w);var A=g(w,2),D=p(A,!0);h(A),h(S);var L=g(S,2);{var T=C=>{var O=uT(),M=p(O,!0);h(O),N(()=>j(M,i(a))),k(C,O)};H(L,C=>{i(a)&&C(T)})}N(()=>{A.disabled=i(s),j(D,i(s)?"Saving...":"Save")}),li(_,()=>i(n).auth.guestAllowed,C=>i(n).auth.guestAllowed=C),li(x,()=>i(n).auth.selfRegistration,C=>i(n).auth.selfRegistration=C),De(R,()=>i(n).auth.sessionTTL,C=>i(n).auth.sessionTTL=C),K("click",A,l),k(v,m)};H(u,v=>{i(r)?v(d):i(n)&&v(f,1)})}h(c),k(e,c),ce()}ge(["click"]);var hT=I('<button type="button"> </button>'),pT=I('<div class="admin-error svelte-1gkiloq"> </div>'),mT=I('<div class="admin-error svelte-1gkiloq"> </div>'),bT=I(`<div class="admin-system svelte-1gkiloq"><h2 class="svelte-1gkiloq">System</h2> <div class="admin-system-info svelte-1gkiloq"><div class="admin-system-row svelte-1gkiloq"><span class="admin-system-label svelte-1gkiloq">Server version</span> <span> </span></div></div> <section class="admin-system-section svelte-1gkiloq"><h3 class="svelte-1gkiloq">Package bundle cache</h3> <p class="admin-system-hint svelte-1gkiloq">Controls the <code>Cache-Control</code> header on <code>/packages/:id/client.js</code>.
19
+ Set to <strong>0</strong> during development so drop-in bundle replacements take effect on F5.
20
+ Use a long value in production.</p> <input type="range" min="0" max="31536000" step="1" class="svelte-1gkiloq"/> <div class="admin-system-readout svelte-1gkiloq"><code> </code> </div> <div class="admin-system-snaps svelte-1gkiloq"></div> <div class="admin-system-actions svelte-1gkiloq"><button type="button" class="admin-btn svelte-1gkiloq"> </button> <button type="button" class="admin-btn-ghost svelte-1gkiloq">Reset</button> <!></div></section> <section class="admin-system-section svelte-1gkiloq"><h3 class="svelte-1gkiloq">Server control</h3> <div class="admin-system-actions svelte-1gkiloq"><button type="button" class="admin-btn-danger svelte-1gkiloq"> </button> <!></div></section></div>`);function gT(e,t){le(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=B("..."),s=B(!1),a=B(null),o=B(31536e3),l=B(31536e3),c=B(!1),u=B(null);const d=V(()=>i(o)!==i(l)),f=V(()=>v(i(o)));function v(J){return J===0?"0 seconds (off — browsers never cache)":J<60?`${J} seconds`:J<3600?`${Math.round(J/60)} minutes`:J<86400?`${Math.round(J/3600)} hours`:J<31536e3?`${Math.round(J/86400)} days`:`${Math.round(J/31536e3)} years`}async function m(){try{const J=await Ie("/api/version");if(J.ok){const ie=await J.json();b(r,ie.version,!0)}}catch{}}async function S(){try{const J=await Ie("/api/admin/settings");if(J.ok){const ve=(await J.json()).packages?.cacheMaxAge??31536e3;b(o,ve,!0),b(l,ve,!0)}}catch{}}async function y(){b(c,!0),b(u,null);try{const J=await Ie("/api/admin/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({packages:{cacheMaxAge:i(o)}})});if(J.ok){const ie=await J.json();b(l,ie.packages?.cacheMaxAge??i(o),!0),b(o,i(l),!0)}else{const ie=await J.json().catch(()=>({}));b(u,ie.error||"Save failed",!0)}}catch{b(u,"Network error")}finally{b(c,!1)}}async function _(){b(s,!0),b(a,null);try{const J=await Ie("/api/admin/restart",{method:"POST"});if(!J.ok){const ie=await J.json().catch(()=>({}));b(a,ie.error||"Restart failed",!0),b(s,!1)}}catch{b(a,"Network error"),b(s,!1)}}m(),S();var E=bT(),x=g(p(E),2),w=p(x),R=g(p(w),2),A=p(R,!0);h(R),h(w),h(x);var D=g(x,2),L=g(p(D),4);Te(L);var T=g(L,2),C=p(T),O=p(C,!0);h(C);var M=g(C);h(T);var P=g(T,2);xe(P,21,()=>n,J=>J.value,(J,ie)=>{var ve=hT();let se;var ue=p(ve,!0);h(ve),N(()=>{se=_e(ve,1,"admin-snap svelte-1gkiloq",null,se,{active:i(o)===i(ie).value}),ve.disabled=i(c),j(ue,i(ie).label)}),K("click",ve,()=>b(o,i(ie).value,!0)),k(J,ve)}),h(P);var q=g(P,2),F=p(q),W=p(F,!0);h(F);var $=g(F,2),Z=g($,2);{var Y=J=>{var ie=pT(),ve=p(ie,!0);h(ie),N(()=>j(ve,i(u))),k(J,ie)};H(Z,J=>{i(u)&&J(Y)})}h(q),h(D);var ee=g(D,2),X=g(p(ee),2),Q=p(X),z=p(Q,!0);h(Q);var U=g(Q,2);{var G=J=>{var ie=mT(),ve=p(ie,!0);h(ie),N(()=>j(ve,i(a))),k(J,ie)};H(U,J=>{i(a)&&J(G)})}h(X),h(ee),h(E),N(()=>{j(A,i(r)),L.disabled=i(c),j(O,i(o)),j(M,` — ${i(f)??""}`),F.disabled=!i(d)||i(c),j(W,i(c)?"Saving...":"Save"),$.disabled=!i(d)||i(c),Q.disabled=i(s),j(z,i(s)?"Restarting...":"Restart server")}),De(L,()=>i(o),J=>b(o,J)),K("click",F,y),K("click",$,()=>b(o,i(l),!0)),K("click",Q,_),k(e,E),ce()}ge(["click"]);var yT=I(`<div class="admin-key-created"><div class="admin-key-created-label">New key — copy now, it won't be shown again:</div> <code class="admin-key-value svelte-1afg5z5"> </code> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Dismiss</button></div>`),_T=I('<div class="admin-error svelte-1afg5z5"> </div>'),wT=I('<form class="admin-create-form svelte-1afg5z5"><input class="admin-input svelte-1afg5z5" type="text" placeholder="Key label"/> <button type="submit" class="admin-btn svelte-1afg5z5">Create</button> <!></form>'),kT=I('<p class="admin-muted svelte-1afg5z5">Loading...</p>'),xT=I('<p class="admin-error svelte-1afg5z5"> </p>'),ST=I('<p class="admin-muted svelte-1afg5z5">No API keys. Create one to enable external access.</p>'),IT=I('<button type="button" class="admin-btn-danger svelte-1afg5z5">Confirm</button> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Cancel</button>',1),ET=I('<button type="button" class="admin-btn-danger svelte-1afg5z5">Revoke</button>'),AT=I('<li class="admin-key-item svelte-1afg5z5"><div class="admin-key-info svelte-1afg5z5"><span class="admin-key-label svelte-1afg5z5"> </span> <span class="admin-key-meta svelte-1afg5z5"> </span></div> <div class="admin-key-actions svelte-1afg5z5"><!></div></li>'),CT=I('<ul class="admin-key-list svelte-1afg5z5"></ul>'),TT=I('<div class="admin-keys svelte-1afg5z5"><div class="admin-keys-header svelte-1afg5z5"><h2 class="svelte-1afg5z5">API Keys</h2> <button type="button" class="admin-btn svelte-1afg5z5"> </button></div> <!> <!> <!></div>');function RT(e,t){le(t,!0);let n=B(fe([])),r=B(!0),s=B(null),a=B(!1),o=B(""),l=B(null),c=B(null),u=B(null);async function d(){b(r,!0),b(s,null);try{const M=await Ie(`${ft()}/api/admin/keys`);if(!M.ok)throw new Error("Failed to fetch keys");b(n,await M.json(),!0)}catch(M){b(s,M instanceof Error?M.message:"Failed to load keys",!0)}finally{b(r,!1)}}async function f(){b(l,null);try{const M=await Ie(`${ft()}/api/admin/keys`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({label:i(o)})});if(!M.ok){const q=await M.json().catch(()=>({}));b(l,q.error||"Failed to create key",!0);return}const P=await M.json();b(c,{id:P.id,key:P.key},!0),b(o,""),b(a,!1),await d()}catch{b(l,"Network error")}}async function v(M){b(u,null);try{await Ie(`${ft()}/api/admin/keys/${M}`,{method:"DELETE"}),i(c)?.id===M&&b(c,null),await d()}catch{}}function m(M){return new Date(M).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}d();var S=TT(),y=p(S),_=g(p(y),2),E=p(_,!0);h(_),h(y);var x=g(y,2);{var w=M=>{var P=yT(),q=g(p(P),2),F=p(q,!0);h(q);var W=g(q,2);h(P),N(()=>j(F,i(c).key)),K("click",W,()=>{b(c,null)}),k(M,P)};H(x,M=>{i(c)&&M(w)})}var R=g(x,2);{var A=M=>{var P=wT(),q=p(P);Te(q);var F=g(q,2),W=g(F,2);{var $=Z=>{var Y=_T(),ee=p(Y,!0);h(Y),N(()=>j(ee,i(l))),k(Z,Y)};H(W,Z=>{i(l)&&Z($)})}h(P),N(Z=>F.disabled=Z,[()=>!i(o).trim()]),He("submit",P,Z=>{Z.preventDefault(),f()}),De(q,()=>i(o),Z=>b(o,Z)),k(M,P)};H(R,M=>{i(a)&&M(A)})}var D=g(R,2);{var L=M=>{var P=kT();k(M,P)},T=M=>{var P=xT(),q=p(P,!0);h(P),N(()=>j(q,i(s))),k(M,P)},C=M=>{var P=ST();k(M,P)},O=M=>{var P=CT();xe(P,21,()=>i(n),q=>q.id,(q,F)=>{var W=AT(),$=p(W),Z=p($),Y=p(Z,!0);h(Z);var ee=g(Z,2),X=p(ee);h(ee),h($);var Q=g($,2),z=p(Q);{var U=J=>{var ie=IT(),ve=ke(ie),se=g(ve,2);K("click",ve,()=>v(i(F).id)),K("click",se,()=>{b(u,null)}),k(J,ie)},G=J=>{var ie=ET();K("click",ie,()=>{b(u,i(F).id,!0)}),k(J,ie)};H(z,J=>{i(u)===i(F).id?J(U):J(G,-1)})}h(Q),h(W),N(J=>{j(Y,i(F).label),j(X,`${i(F).id??""} · ${J??""}`)},[()=>m(i(F).createdAt)]),k(q,W)}),h(P),k(M,P)};H(D,M=>{i(r)?M(L):i(s)?M(T,1):i(n).length===0?M(C,2):M(O,-1)})}h(S),N(()=>j(E,i(a)?"Cancel":"New key")),K("click",_,()=>{b(a,!i(a))}),k(e,S),ce()}ge(["click"]);var LT=I('<div class="admin-warning svelte-1h1ud6x"> </div>'),MT=I('<div class="admin-error svelte-1h1ud6x"> </div>'),PT=I('<form class="admin-create-form svelte-1h1ud6x"><input class="admin-input svelte-1h1ud6x" type="text" placeholder="Mount ID (slug, e.g. game-assets)"/> <input class="admin-input svelte-1h1ud6x" type="text" placeholder="Label (optional)"/> <input class="admin-input svelte-1h1ud6x" type="text" placeholder="Absolute path on server"/> <button type="submit" class="admin-btn svelte-1h1ud6x">Create</button> <!> <!></form>'),DT=I('<p class="admin-muted svelte-1h1ud6x">Loading...</p>'),jT=I('<p class="admin-error svelte-1h1ud6x"> </p>'),zT=I('<form class="admin-edit-form svelte-1h1ud6x"><input class="admin-input svelte-1h1ud6x" type="text" placeholder="Label"/> <input class="admin-input svelte-1h1ud6x" type="text" placeholder="Path"/> <div class="admin-edit-actions svelte-1h1ud6x"><button type="submit" class="admin-btn svelte-1h1ud6x">Save</button> <button type="button" class="admin-btn-secondary svelte-1h1ud6x">Cancel</button></div></form>'),OT=I('<div class="admin-mount-info svelte-1h1ud6x"><div class="admin-mount-top svelte-1h1ud6x"><span class="admin-status-dot svelte-1h1ud6x"></span> <span class="admin-mount-name svelte-1h1ud6x"> </span> <span class="admin-mount-id svelte-1h1ud6x"> </span></div> <span class="admin-mount-path svelte-1h1ud6x"> </span> <span class="admin-mount-meta svelte-1h1ud6x"> </span></div> <div class="admin-mount-actions svelte-1h1ud6x"><button type="button" class="admin-btn-secondary svelte-1h1ud6x"> </button> <button type="button" class="admin-btn-secondary svelte-1h1ud6x">Edit</button> <button type="button" class="admin-btn-danger svelte-1h1ud6x">Delete</button></div>',1),NT=I('<p class="admin-error svelte-1h1ud6x"> </p>'),qT=I('<p class="admin-muted svelte-1h1ud6x">Empty directory</p>'),BT=I('<span class="admin-browse-size svelte-1h1ud6x"> </span>'),FT=I('<li class="admin-browse-item svelte-1h1ud6x"><span class="admin-browse-kind svelte-1h1ud6x"> </span> <span> </span> <!></li>'),VT=I('<ul class="admin-browse-list svelte-1h1ud6x"></ul>'),UT=I('<div class="admin-mount-browse svelte-1h1ud6x"><!></div>'),HT=I('<li class="admin-mount-item svelte-1h1ud6x"><div class="admin-mount-main svelte-1h1ud6x"><!></div> <!></li>'),KT=I('<ul class="admin-mount-list svelte-1h1ud6x"></ul>'),WT=I('<div class="admin-modal-root svelte-1h1ud6x"><button type="button" class="admin-modal-backdrop svelte-1h1ud6x" aria-label="Close dialog"></button> <div class="admin-modal svelte-1h1ud6x" role="dialog" aria-modal="true" aria-labelledby="delete-mount-title"><h3 id="delete-mount-title" class="svelte-1h1ud6x">Delete Mount</h3> <p class="svelte-1h1ud6x">This will remove the mount and all its tenant attachments. This cannot be undone.</p> <div class="admin-modal-actions svelte-1h1ud6x"><button type="button" class="admin-btn-danger svelte-1h1ud6x">Delete</button> <button type="button" class="admin-btn-secondary svelte-1h1ud6x">Cancel</button></div></div></div>'),YT=I('<div class="admin-mounts svelte-1h1ud6x"><div class="admin-section-header svelte-1h1ud6x"><h2 class="svelte-1h1ud6x">Mounts</h2> <button type="button" class="admin-btn svelte-1h1ud6x"> </button></div> <!> <!> <!></div>');function XT(e,t){le(t,!0);let n=B(fe([])),r=B(!0),s=B(null),a=B(!1),o=B(""),l=B(""),c=B(""),u=B(null),d=B(null),f=B(null),v=B(""),m=B(""),S=B(null),y=B(fe([])),_=B(null),E=B(null);async function x(){b(r,!0),b(s,null);try{const Q=await Ie("/api/admin/mounts");if(!Q.ok)throw new Error("Failed to fetch mounts");b(n,await Q.json(),!0)}catch(Q){b(s,Q instanceof Error?Q.message:"Failed to load mounts",!0)}finally{b(r,!1)}}async function w(){b(u,null),b(d,null);try{const Q=await Ie("/api/admin/mounts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:i(o),label:i(l)||void 0,path:i(c)})}),z=await Q.json();if(!Q.ok){b(u,z.error||"Failed to create mount",!0);return}z.warning&&b(d,z.warning,!0),b(o,""),b(l,""),b(c,""),b(a,!1),b(d,null),await x()}catch{b(u,"Network error")}}function R(Q){b(f,Q.id,!0),b(v,Q.label||"",!0),b(m,Q.path,!0)}async function A(){if(i(f))try{if(!(await Ie(`/api/admin/mounts/${i(f)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({label:i(v)||void 0,path:i(m)})})).ok)return;b(f,null),await x()}catch{}}async function D(Q){try{await Ie(`/api/admin/mounts/${Q}`,{method:"DELETE"}),b(E,null),await x()}catch{}}async function L(Q){if(i(S)===Q){b(S,null);return}b(S,Q,!0),b(_,null),b(y,[],!0);try{const z=await Ie(`/api/admin/mounts/${Q}/browse`);if(!z.ok){const U=await z.json().catch(()=>({}));b(_,U.error||"Failed to browse",!0);return}b(y,await z.json(),!0)}catch{b(_,"Network error")}}function T(Q){return Q==="resolved"?"#4caf50":Q==="unresolved"?"#ff9800":"#f44336"}x();var C=YT();He("keydown",Ks,Q=>{Q.key==="Escape"&&i(E)&&b(E,null)});var O=p(C),M=g(p(O),2),P=p(M,!0);h(M),h(O);var q=g(O,2);{var F=Q=>{var z=PT(),U=p(z);Te(U);var G=g(U,2);Te(G);var J=g(G,2);Te(J);var ie=g(J,2),ve=g(ie,2);{var se=we=>{var Ee=LT(),ae=p(Ee,!0);h(Ee),N(()=>j(ae,i(d))),k(we,Ee)};H(ve,we=>{i(d)&&we(se)})}var ue=g(ve,2);{var be=we=>{var Ee=MT(),ae=p(Ee,!0);h(Ee),N(()=>j(ae,i(u))),k(we,Ee)};H(ue,we=>{i(u)&&we(be)})}h(z),N(we=>ie.disabled=we,[()=>!i(o).trim()||!i(c).trim()]),He("submit",z,we=>{we.preventDefault(),w()}),De(U,()=>i(o),we=>b(o,we)),De(G,()=>i(l),we=>b(l,we)),De(J,()=>i(c),we=>b(c,we)),k(Q,z)};H(q,Q=>{i(a)&&Q(F)})}var W=g(q,2);{var $=Q=>{var z=DT();k(Q,z)},Z=Q=>{var z=jT(),U=p(z,!0);h(z),N(()=>j(U,i(s))),k(Q,z)},Y=Q=>{var z=KT();xe(z,21,()=>i(n),U=>U.id,(U,G)=>{var J=HT(),ie=p(J),ve=p(ie);{var se=Ee=>{var ae=zT(),he=p(ae);Te(he);var Se=g(he,2);Te(Se);var ne=g(Se,2),re=g(p(ne),2);h(ne),h(ae),He("submit",ae,me=>{me.preventDefault(),A()}),De(he,()=>i(v),me=>b(v,me)),De(Se,()=>i(m),me=>b(m,me)),K("click",re,()=>{b(f,null)}),k(Ee,ae)},ue=Ee=>{var ae=OT(),he=ke(ae),Se=p(he),ne=p(Se),re=g(ne,2),me=p(re,!0);h(re);var ye=g(re,2),pe=p(ye,!0);h(ye),h(Se);var Le=g(Se,2),Ne=p(Le,!0);h(Le);var ze=g(Le,2),rt=p(ze);h(ze),h(he);var Xe=g(he,2),Ke=p(Xe),Ve=p(Ke,!0);h(Ke);var st=g(Ke,2),kt=g(st,2);h(Xe),N(xt=>{Ge(ne,`background: ${xt??""}`),oe(ne,"title",i(G).status),j(me,i(G).label||i(G).id),j(pe,i(G).id),oe(Le,"title",i(G).path),j(Ne,i(G).path),j(rt,`${i(G).attachmentCount??""} tenant(s) attached`),j(Ve,i(S)===i(G).id?"Close":"Browse")},[()=>T(i(G).status)]),K("click",Ke,()=>L(i(G).id)),K("click",st,()=>R(i(G))),K("click",kt,()=>{b(E,i(G).id,!0)}),k(Ee,ae)};H(ve,Ee=>{i(f)===i(G).id?Ee(se):Ee(ue,-1)})}h(ie);var be=g(ie,2);{var we=Ee=>{var ae=UT(),he=p(ae);{var Se=me=>{var ye=NT(),pe=p(ye,!0);h(ye),N(()=>j(pe,i(_))),k(me,ye)},ne=me=>{var ye=qT();k(me,ye)},re=me=>{var ye=VT();xe(ye,21,()=>i(y),pe=>pe.name,(pe,Le)=>{var Ne=FT(),ze=p(Ne),rt=p(ze,!0);h(ze);var Xe=g(ze,2),Ke=p(Xe,!0);h(Xe);var Ve=g(Xe,2);{var st=kt=>{var xt=BT(),Nn=p(xt);h(xt),N(()=>j(Nn,`${i(Le).size??""} B`)),k(kt,xt)};H(Ve,kt=>{i(Le).size!==void 0&&kt(st)})}h(Ne),N(()=>{j(rt,i(Le).kind==="directory"?"[_]":"[ ]"),j(Ke,i(Le).name)}),k(pe,Ne)}),h(ye),k(me,ye)};H(he,me=>{i(_)?me(Se):i(y).length===0?me(ne,1):me(re,-1)})}h(ae),k(Ee,ae)};H(be,Ee=>{i(S)===i(G).id&&Ee(we)})}h(J),k(U,J)}),h(z),k(Q,z)};H(W,Q=>{i(r)?Q($):i(s)?Q(Z,1):Q(Y,-1)})}var ee=g(W,2);{var X=Q=>{var z=WT(),U=p(z),G=g(U,2),J=g(p(G),4),ie=p(J),ve=g(ie,2);h(J),h(G),h(z),K("click",U,()=>{b(E,null)}),K("click",ie,()=>D(i(E))),K("click",ve,()=>{b(E,null)}),k(Q,z)};H(ee,Q=>{i(E)&&Q(X)})}h(C),N(()=>j(P,i(a)?"Cancel":"New mount")),K("click",M,()=>{b(a,!i(a))}),k(e,C),ce()}ge(["click"]);const im={manifest:{id:"sh3-admin",label:"Admin",version:En,permissions:["documents:mount"],views:[{id:"sh3-admin:users",label:"Users"},{id:"sh3-admin:auth",label:"Auth Settings"},{id:"sh3-admin:system",label:"System"},{id:"sh3-admin:keys",label:"API Keys"},{id:"sh3-admin:mounts",label:"Mounts"}]},activate(e){const t={mount(o,l){const c=Qe(lT,{target:o});return{unmount(){ot(c)}}}},n={mount(o,l){const c=Qe(vT,{target:o});return{unmount(){ot(c)}}}},r={mount(o,l){const c=Qe(gT,{target:o});return{unmount(){ot(c)}}}},s={mount(o,l){const c=Qe(RT,{target:o});return{unmount(){ot(c)}}}},a={mount(o,l){const c=Qe(XT,{target:o});return{unmount(){ot(c)}}}};e.registerView("sh3-admin:users",t),e.registerView("sh3-admin:auth",n),e.registerView("sh3-admin:system",r),e.registerView("sh3-admin:keys",s),e.registerView("sh3-admin:mounts",a)}},om={manifest:{id:"sh3-admin-app",label:"Admin",version:En,requiredShards:["sh3-admin"],layoutVersion:1,admin:!0},initialLayout:{type:"tabs",activeTab:0,tabs:[{slotId:"admin.users",viewId:"sh3-admin:users",label:"Users"},{slotId:"admin.auth",viewId:"sh3-admin:auth",label:"Auth"},{slotId:"admin.system",viewId:"sh3-admin:system",label:"System"},{slotId:"admin.keys",viewId:"sh3-admin:keys",label:"Keys"},{slotId:"admin.mounts",viewId:"sh3-admin:mounts",label:"Mounts"}]}},yd="sh3:migrations:shell-rename:done",_d="__shell__:",GT="__sh3core__:",wd="sh3:user:__shell__:theme",kd="sh3:user:__sh3core__:theme";function JT(e,t){if(t.getItem(yd))return;const n=t.getItem(wd);n!==null&&t.getItem(kd)===null&&(t.setItem(kd,n),t.removeItem(wd));for(const r of e.keys()){if(!r.startsWith(_d))continue;const s=GT+r.slice(_d.length),a=e.read(r);e.write(s,a),e.delete(r)}t.setItem(yd,"1")}const xd="sh3:migrations:mode-id-rename:done",ZT="sh3.shell.lastMode.",Sd={dev:"bash",user:"sh3"};function QT(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 $T(e){if(!e.getItem(xd)){for(const t of QT(e)){if(!t.startsWith(ZT))continue;const n=e.getItem(t);n&&Object.prototype.hasOwnProperty.call(Sd,n)&&e.setItem(t,Sd[n])}e.setItem(xd,"1")}}let Id=!1,Ed=null;function eR(){Id||(Id=!0,Ed=e=>{const t=e.state?.sh3;t==="anchor"?(Cw(),history.forward()):t==="forward-bumper"&&(Tw(),history.back())},window.addEventListener("popstate",Ed),history.replaceState({sh3:"anchor"},""),history.pushState({sh3:"main"},""),history.pushState({sh3:"forward-bumper"},""),history.back())}function Ad(e){oo(e)}function tR(){const e=Sn.workspace;return{keys:()=>e.list(),read:t=>e.read(t),write:(t,n)=>e.write(t,n),delete:t=>e.delete(t)}}async function nR(e){if(typeof globalThis.localStorage<"u"){JT(tR(),globalThis.localStorage),$T(globalThis.localStorage);const{migrateLegacyWorkspaceKeys:a}=await Ri(async()=>{const{migrateLegacyWorkspaceKeys:o}=await import("./workspace-rekey-DRgvbNY-.js");return{migrateLegacyWorkspaceKeys:o}},[]);a(Mc())}const t=new Set(e?.excludeShards),n=[jp,nm,Dp,im,wp,Ap,sm];for(const a of n)t.has(a.manifest.id)||oo(a);const r=[am,om];for(const a of r)Zs(a);await Mp();for(const[a,o]of un)if(o.autostart){vh(a);try{await xi(a,{phase:"autostart"})}catch{}}const s=V0();if(s&&sr.has(s))try{await Xn(s)}catch(a){console.error(`[sh3] Auto-launch of "${s}" failed:`,a),U0()}Ew({returnToHome:ks,launchApp:Xn}),typeof window<"u"&&typeof history<"u"&&eR()}async function rR(e){const t=[jp,nm,Dp,im,wp,Ap,sm];for(const s of t)oo(s);const n=[am,om];for(const s of n)Zs(s);await Mp();const r=new Set;for(const[s,a]of un)if(a.autostart){vh(s);try{await xi(s,{phase:"autostart"}),r.add(s)}catch{}}for(const s of e.activateShardIds)if(!r.has(s))if(un.has(s))try{await xi(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 sR=I('<div aria-hidden="true"></div>'),aR=I('<button type="button" aria-label="Expand pane"><span class="collapse-icon"> </span></button>'),iR=I('<button type="button" aria-label="Collapse pane"><span class="collapse-icon"> </span></button>'),oR=I('<!> <div class="pane-content svelte-1adl4o1"><!></div>',1),lR=I('<div role="separator"></div>'),cR=I("<div><!></div> <!>",1),uR=I("<div></div>");function dR(e,t){le(t,!0);const n=40,r=28;let s=te(t,"compact",3,!1),a;const o=A=>t.pinned?.[A]??"fr",l=A=>t.collapsed?.[A]??!1,c=A=>t.fixed?.[A]??!1,u=A=>c(A)||c(A+1);function d(A){if(c(A))return!1;const D=A>0?!c(A-1):!1,L=A<t.count-1?!c(A+1):!1;return D||L}function f(A){return l(A)?`0 0 ${r}px`:o(A)==="px"?`0 0 ${Math.max(n,t.sizes[A])}px`:`${Math.max(1e-4,t.sizes[A])} 1 0`}let v=B(null),m=null;function S(A,D){if(s()||l(D)||l(D+1)||u(D))return;const L=a?pc(a):0;if(!Sa(A.pointerId,{ownerId:"sh3:splitter",axis:"xy",priority:"normal",depth:L}))return;m=A.pointerId,A.preventDefault(),document.addEventListener("pointermove",y),document.addEventListener("pointerup",E),document.addEventListener("pointercancel",x);const C=a.getBoundingClientRect(),O=t.direction==="horizontal"?C.width:C.height;let M=0,P=0;for(let q=0;q<t.sizes.length;q++)o(q)==="fr"?M+=t.sizes[q]:P+=Math.max(n,t.sizes[q]);b(v,{handleIndex:D,startClient:t.direction==="horizontal"?A.clientX:A.clientY,startSizes:t.sizes.slice(),containerPx:O,totalFr:M,frAvailPx:Math.max(1,O-P)},!0)}function y(A){if(!i(v)||A.pointerId!==m)return;const L=(t.direction==="horizontal"?A.clientX:A.clientY)-i(v).startClient,T=i(v).handleIndex,C=T+1,O=o(T),M=o(C),P=i(v).totalFr/i(v).frAvailPx;if(O==="fr"&&M==="fr"){const q=n*P,F=L*P,W=i(v).startSizes[C]-q,$=-(i(v).startSizes[T]-q),Z=Math.min(Math.max(F,$),W);t.onResize?.(T,i(v).startSizes[T]+Z),t.onResize?.(C,i(v).startSizes[C]-Z)}else if(O==="px"&&M==="fr"){const q=i(v).frAvailPx-n,F=n-i(v).startSizes[T];t.onResize?.(T,i(v).startSizes[T]+Math.min(Math.max(L,F),q))}else if(O==="fr"&&M==="px"){const q=i(v).startSizes[C]-n,F=-(i(v).frAvailPx-n);t.onResize?.(C,i(v).startSizes[C]-Math.min(Math.max(L,F),q))}else{const q=i(v).startSizes[C]-n,F=-(i(v).startSizes[T]-n),W=Math.min(Math.max(L,F),q);t.onResize?.(T,i(v).startSizes[T]+W),t.onResize?.(C,i(v).startSizes[C]-W)}}function _(){m!==null&&(Tr(m,"sh3:splitter"),m=null),b(v,null),document.removeEventListener("pointermove",y),document.removeEventListener("pointerup",E),document.removeEventListener("pointercancel",x)}function E(A){i(v)&&A.pointerId===m&&_()}function x(A){if(i(v)){if(A.pointerId!==m){Fn("splitter:cancel-other-id",A,{activeDragPointerId:m});return}Fn("splitter:cancel-our-id",A,{activeDragPointerId:m}),_()}}Pe(()=>()=>{i(v)&&_()});var w=uR();let R;xe(w,21,()=>Array(t.count),bt,(A,D,L)=>{var T=cR(),C=ke(T);let O;var M=p(C);{var P=Z=>{var Y=Ue(),ee=ke(Y);{var X=z=>{var U=sR();let G;N(()=>G=_e(U,1,"collapse-header inert svelte-1adl4o1",null,G,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"})),k(z,U)},Q=z=>{var U=aR();let G;var J=p(U),ie=p(J,!0);h(J),h(U),N(()=>{G=_e(U,1,"collapse-header svelte-1adl4o1",null,G,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),j(ie,t.direction==="horizontal"?"▸":"▾")}),K("click",U,()=>t.onCollapseToggle?.(L,!1)),k(z,U)};H(ee,z=>{s()?z(X):z(Q,-1)})}k(Z,Y)},q=V(()=>l(L)),F=Z=>{var Y=oR(),ee=ke(Y);{var X=G=>{var J=iR();let ie;oe(J,"data-testid",`collapse-toggle-${L}`);var ve=p(J),se=p(ve,!0);h(ve),h(J),N(()=>{ie=_e(J,1,"collapse-header expanded svelte-1adl4o1",null,ie,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),j(se,t.direction==="horizontal"?"◂":"▴")}),K("click",J,()=>t.onCollapseToggle?.(L,!0)),k(G,J)},Q=V(()=>!s()&&t.onCollapseToggle&&d(L));H(ee,G=>{i(Q)&&G(X)})}var z=g(ee,2),U=p(z);Xt(U,()=>t.pane,()=>L),h(z),k(Z,Y)};H(M,Z=>{i(q)?Z(P):Z(F,-1)})}h(C);var W=g(C,2);{var $=Z=>{var Y=lR();let ee;oe(Y,"data-testid",`splitter-handle-${L}`),N(X=>{ee=_e(Y,1,"splitter-handle svelte-1adl4o1",null,ee,X),oe(Y,"aria-orientation",t.direction==="horizontal"?"vertical":"horizontal")},[()=>({dragging:i(v)?.handleIndex===L,disabled:l(L)||l(L+1),frozen:u(L)})]),K("pointerdown",Y,X=>S(X,L)),K("dblclick",Y,()=>{u(L)||!d(L)&&!l(L)||t.onCollapseToggle?.(L,!l(L))}),k(Z,Y)};H(W,Z=>{L<t.count-1&&Z($)})}N((Z,Y)=>{O=_e(C,1,"splitter-pane svelte-1adl4o1",null,O,Z),Ge(C,`flex: ${Y??""};`)},[()=>({collapsed:l(L)}),()=>f(L)]),k(A,T)}),h(w),We(w,A=>a=A,()=>a),N(()=>R=_e(w,1,"splitter svelte-1adl4o1",null,R,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical",compact:s()})),k(e,w),ce()}ge(["click","pointerdown","dblclick"]);var fR=I('no factory for <code class="svelte-1czj0s8"> </code>',1),vR=I("<em>empty slot</em>"),hR=I('<div class="slot-placeholder svelte-1czj0s8"><div class="slot-id svelte-1czj0s8"> </div> <div class="slot-meta svelte-1czj0s8"><!></div> <div class="slot-dims svelte-1czj0s8"> </div></div>'),pR=I('<div class="slot svelte-1czj0s8"><!></div>');function Ai(e,t){le(t,!0);let n=te(t,"label",3,""),r=B(void 0),s=B(0),a=B(0);const o=V(()=>t.node.viewId?!!Pv(t.node.viewId):!1);Pe(()=>{if(!i(r))return;const d=t.node.slotId,f=i(r),v=wc(d,t.node.viewId,n()||t.node.viewId||d,t.meta);f.appendChild(v);const m=new ResizeObserver(S=>{for(const y of S){const _=y.contentRect;b(s,Math.round(_.width),!0),b(a,Math.round(_.height),!0)}});return m.observe(f),()=>{m.disconnect(),kc(d,f)}});var l=pR(),c=p(l);{var u=d=>{var f=hR(),v=p(f),m=p(v,!0);h(v);var S=g(v,2),y=p(S);{var _=R=>{var A=fR(),D=g(ke(A)),L=p(D,!0);h(D),N(()=>j(L,t.node.viewId)),k(R,A)},E=R=>{var A=vR();k(R,A)};H(y,R=>{t.node.viewId?R(_):R(E,-1)})}h(S);var x=g(S,2),w=p(x);h(x),h(f),N(()=>{j(m,t.node.slotId),j(w,`${i(s)??""} × ${i(a)??""}`)}),k(d,f)};H(c,d=>{i(o)||d(u)})}h(l),We(l,d=>b(r,d),()=>i(r)),N(()=>{oe(l,"data-slot-id",t.node.slotId),oe(l,"data-view-id",t.node.viewId??"")}),k(e,l),ce()}const Oe=fe({phase:"idle",source:null,pointerX:0,pointerY:0,target:null});let lm=0;function mR(){return performance.now()<lm}const Cd=4;let cm=0,um=0,Kn=null;function bR(e,t,n,r,s){if(Oe.phase!=="idle")return;const a=pc(s);if(!Sa(r.pointerId,{ownerId:"sh3:tabdrag",axis:"xy",priority:"normal",depth:a}))return;Kn=r.pointerId;const l=s.getBoundingClientRect();Oe.phase="pending",Oe.source={slotId:e,entry:t,sourceRoot:n,startRect:l,offsetX:r.clientX-l.left,offsetY:r.clientY-l.top},Oe.pointerX=r.clientX,Oe.pointerY=r.clientY,Oe.target=null,cm=r.clientX,um=r.clientY,gR()}function gR(){window.addEventListener("pointermove",dm,!0),window.addEventListener("pointerup",fm,!0),window.addEventListener("pointercancel",vm,!0),document.body.style.userSelect="none",document.body.dataset.dragging=""}function yR(){window.removeEventListener("pointermove",dm,!0),window.removeEventListener("pointerup",fm,!0),window.removeEventListener("pointercancel",vm,!0),document.body.style.userSelect="",delete document.body.dataset.dragging}function dm(e){if(e.pointerId===Kn&&(Oe.pointerX=e.clientX,Oe.pointerY=e.clientY,Oe.phase==="pending")){const t=e.clientX-cm,n=e.clientY-um;t*t+n*n>=Cd*Cd&&(Oe.phase="dragging")}}function fm(e){if(e.pointerId!==Kn)return;Oe.phase==="dragging"&&(_R(),lm=performance.now()+50),hm()}function vm(e){if(e.pointerId!==Kn){Fn("tabdrag:cancel-other-id",e,{activeDragPointerId:Kn});return}Fn("tabdrag:cancel-our-id",e,{activeDragPointerId:Kn}),hm()}function Td(e){const t=_t.tree;if(e.kind==="docked")return t.docked;const n=t.floats.find(r=>r.id===e.floatId);return n?n.content:null}function Rd(e){if(e.kind!=="float")return;const t=_t.tree,n=t.floats.findIndex(r=>r.id===e.floatId);n<0||Lv(t.floats[n].content)&&t.floats.splice(n,1)}function _R(){const{source:e,target:t}=Oe;if(!e||!t)return;const n=Td(e.sourceRoot),r=Td(t.root);if(!n||!r)return;if(t.kind==="strip"){const a=t.tabsNode.tabs.findIndex(o=>o.slotId===e.slotId);if(a>=0){s1(t.tabsNode,a,t.insertIndex),Xr(n),r!==n&&Xr(r),Rd(e.sourceRoot);return}}const s=Wi(n,e.slotId);s&&(t.kind==="strip"?r1(t.tabsNode,s,t.insertIndex):ul(r,t.path,s,t.side),Xr(n),r!==n&&Xr(r),Rd(e.sourceRoot))}function hm(){Kn!==null&&(Tr(Kn,"sh3:tabdrag"),Kn=null),Oe.phase="idle",Oe.source=null,Oe.target=null,yR()}function jl(e){Oe.phase==="dragging"&&(Oe.target=e)}function es(e){Oe.phase==="dragging"&&Oe.target&&(e&&!e(Oe.target)||(Oe.target=null))}var wR=I("<div></div>"),kR=I('<div class="quad-target quad-left svelte-re71zu" data-testid="drop-zone-left"></div> <div class="quad-target quad-right svelte-re71zu" data-testid="drop-zone-right"></div> <div class="quad-target quad-top svelte-re71zu" data-testid="drop-zone-top"></div> <div class="quad-target quad-bottom svelte-re71zu" data-testid="drop-zone-bottom"></div>',1),xR=I("<!> <!>",1),SR=I("<div><!></div>");function zl(e,t){le(t,!0);let n=B(void 0),r=B(null);const s=V(()=>Oe.phase==="dragging"),a=V(()=>{let m;return t.rootRef.kind==="docked"?m=_t.root:m=_t.tree.floats.find(y=>y.id===t.rootRef.floatId)?.content??null,m?Ov(m,t.path):!1});function o(m,S,y){const _=y.left+y.width/2,E=y.top+y.height/2,x=m-_,w=S-E,R=x/y.width,A=w/y.height;return Math.abs(R)>Math.abs(A)?R<0?"left":"right":A<0?"top":"bottom"}function l(m){if(!i(n))return;if(i(a)){i(r)!==null&&(b(r,null),es(_=>_.kind==="split"&&_.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&&(b(r,null),es(_=>_.kind==="split"&&_.path.join("/")===t.path.join("/")));return}const y=o(m.clientX,m.clientY,S);if(y!==i(r)){b(r,y,!0);const _={kind:"split",root:t.rootRef,path:[...t.path],side:y};jl(_)}}function c(){i(r)!==null&&(b(r,null),es(m=>m.kind==="split"&&m.path.join("/")===t.path.join("/")))}var u=SR();let d;var f=p(u);{var v=m=>{var S=xR(),y=ke(S);{var _=w=>{var R=wR();N(()=>_e(R,1,`quad-highlight quad-${i(r)??""}`,"svelte-re71zu")),k(w,R)};H(y,w=>{i(r)&&w(_)})}var E=g(y,2);{var x=w=>{var R=kR();Ot(6),k(w,R)};H(E,w=>{i(s)&&w(x)})}k(m,S)};H(f,m=>{i(a)||m(v)})}h(u),We(u,m=>b(n,m),()=>i(n)),N(()=>d=_e(u,1,"slot-drop-zone svelte-re71zu",null,d,{active:i(s),locked:i(a)})),K("pointermove",u,l),He("pointerleave",u,c),k(e,u),ce()}ge(["pointermove"]);var IR=I('<div class="sh3-carousel-slide svelte-1qo3ctb" data-sh3-slide=""><!> <!></div>'),ER=I('<span data-sh3-pager-dot=""></span>'),AR=I('<div class="sh3-carousel-pager svelte-1qo3ctb" data-sh3-pager=""></div>'),CR=I('<div class="sh3-carousel svelte-1qo3ctb" data-sh3-region="carousel"><div data-sh3-carousel-track=""></div> <!></div>');function TR(e,t){le(t,!0);let n=te(t,"node",7),r=te(t,"rootRef",19,()=>({kind:"docked"})),s=te(t,"path",19,()=>[]),a=B(null),o=B(0);Pe(()=>{if(!i(a))return;const se=i(a).getBoundingClientRect();if(se.width>0)b(o,se.width,!0);else if(i(a).parentElement){const be=i(a).parentElement.getBoundingClientRect();be.width>0&&b(o,be.width,!0)}const ue=new ResizeObserver(be=>{for(const we of be)b(o,we.contentRect.width,!0)});return ue.observe(i(a)),()=>ue.disconnect()});const l=V(()=>n().tabs.length),c=V(()=>i(l)>1);let u=B(0),d=B(!1),f=B(!1),v=null,m=!1,S=0,y=null,_=null;const E=1.2,x=6,w=.4,R=500,A=.3,D=100;function L(se,ue){Fn(`carousel:${se}`,ue,{claimed:i(f),dragging:i(d),downId:y?.id})}const T=250;function C(se){let ue=se;for(;ue&&ue!==i(a);){const be=getComputedStyle(ue).overflowX;if((be==="auto"||be==="scroll")&&ue.scrollWidth>ue.clientWidth)return!0;ue=ue.parentElement}return!1}function O(se){if(!i(a)||i(o)===0)return!1;const ue=i(a).getBoundingClientRect(),be=se-ue.left;return be<ui||be>i(o)-ui}function M(se){const ue=se;if(!ue||typeof ue.tagName!="string")return!1;const be=ue.tagName;if(be==="INPUT"||be==="TEXTAREA"||be==="SELECT"||ue.isContentEditable===!0)return!0;const we=ue.closest?.('[contenteditable=""], [contenteditable="true"]');return we!=null}function P(se,ue){if(ue===0)return 0;const be=ue*A;return Math.sign(se)*be*(1-Math.exp(-Math.abs(se)/be))}function q(se){if(!t.wrap){const ue=n().activeTab===0&&se>0,be=n().activeTab===i(l)-1&&se<0;if(ue||be)return P(se,i(o))}return se}function F(se){if(i(l)<2||i(o)===0||se.isPrimary===!1)return;const ue=O(se.clientX);if(!ue&&(M(se.target)||C(se.target)))return;const be=i(a)?pc(i(a)):0;Sa(se.pointerId,{ownerId:"sh3:carousel",axis:"x",priority:"normal",depth:be})&&(v=se.pointerId,m=ue,S=0,y={id:se.pointerId,x:se.clientX,y:se.clientY,t:performance.now()},_={...y},b(d,!1),b(f,!1),b(u,0),document.addEventListener("pointermove",W),document.addEventListener("pointerup",$),document.addEventListener("pointercancel",Z))}function W(se){if(!y||se.pointerId!==y.id)return;if(!jw(se.pointerId,"sh3:carousel")){L("claim-stolen",se),Y();return}const ue=se.clientX-y.x,be=se.clientY-y.y;if(!i(f)){const we=performance.now()-y.t,Ee=Math.abs(ue)>Math.abs(be)*E&&Math.abs(ue)>x;if(Math.abs(be)>Math.abs(ue)*E&&Math.abs(be)>x){Y();return}if((Math.abs(ue)>x||Math.abs(be)>x)&&we>T){Y();return}if(!Ee)return;if(b(f,!0),b(d,!0),m&&i(a))try{i(a).setPointerCapture(se.pointerId),S=performance.now()+D}catch{}typeof window<"u"&&window.getSelection()?.removeAllRanges()}typeof se.preventDefault=="function"&&se.preventDefault(),b(u,q(ue),!0),_={id:se.pointerId,x:se.clientX,y:se.clientY,t:performance.now()}}function $(se){if(!y)return;if(se.pointerId!==y.id){L("pointerup-other-id",se);return}const ue=se.clientX-y.x;let be=0;_&&_.t!==y.t&&(be=(se.clientX-_.x)/Math.max(1,performance.now()-_.t)*1e3),ee(ue,be),Y()}function Z(se){if(y){if(se.pointerId!==y.id){L("cancel-other-id",se);return}if(performance.now()<S){L("cancel-ignored-transfer",se),S=0;return}L("cancel-our-id",se),Y()}}function Y(){if(m&&i(a)&&v!==null)try{i(a).hasPointerCapture?.(v)&&i(a).releasePointerCapture(v)}catch{}v!==null&&(Tr(v,"sh3:carousel"),v=null),document.removeEventListener("pointermove",W),document.removeEventListener("pointerup",$),document.removeEventListener("pointercancel",Z),y=null,_=null,b(d,!1),b(f,!1),b(u,0),m=!1,S=0}function ee(se,ue){if(!i(f)||i(o)===0)return;const be=Math.abs(se)>i(o)*w,we=Math.abs(ue)>R;if(!(be||we))return;const Ee=se<0?1:-1;let ae=n().activeTab+Ee;if(ae<0)if(t.wrap)ae=i(l)-1;else return;else if(ae>=i(l))if(t.wrap)ae=0;else return;n().activeTab=ae}const X=V(()=>i(o)===0?"translateX(0px)":`translateX(${-n().activeTab*i(o)+i(u)}px)`),Q=V(()=>i(d)?"none":"");function z(se){return se.slotId}var U=CR(),G=p(U);let J;xe(G,23,()=>n().tabs,se=>z(se),(se,ue,be)=>{var we=IR(),Ee=p(we);{let he=V(()=>({type:"slot",slotId:i(ue).slotId,viewId:i(ue).viewId}));Ai(Ee,{get node(){return i(he)},get label(){return i(ue).label},get meta(){return i(ue).meta}})}var ae=g(Ee,2);zl(ae,{get rootRef(){return r()},get path(){return s()}}),h(we),N(()=>{oe(we,"data-sh3-slide-index",i(be)),Ge(we,`width: ${i(o)??""}px;`)}),k(se,we)}),h(G);var ie=g(G,2);{var ve=se=>{var ue=AR();xe(ue,23,()=>n().tabs,(be,we)=>`dot-${we}`,(be,we,Ee)=>{var ae=ER();let he;N(()=>{he=_e(ae,1,"sh3-carousel-dot svelte-1qo3ctb",null,he,{"sh3-carousel-dot--active":i(Ee)===n().activeTab}),oe(ae,"aria-current",i(Ee)===n().activeTab?"true":void 0)}),k(be,ae)}),h(ue),k(se,ue)};H(ie,se=>{i(c)&&se(ve)})}h(U),We(U,se=>b(a,se),()=>i(a)),N(()=>{J=_e(G,1,"sh3-carousel-track svelte-1qo3ctb",null,J,{"sh3-carousel-track--dragging":i(d)}),Ge(G,`transform: ${i(X)??""}; width: ${i(l)*100}%; ${i(Q)?`transition: ${i(Q)};`:""}`)}),K("pointerdown",G,F),k(e,U),ce()}ge(["pointerdown"]);function pm(e){return e.join(".")}function RR(e){const t=new Map;function n(r,s,a){if(r.type==="tabs"){if(s){const o=r.tabs[r.activeTab];t.set(pm(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 LR=I('<div class="tab-slot-wrapper svelte-1gw9g38"><!> <!></div>'),MR=I('<div class="empty-tabs-custom svelte-1gw9g38"></div>'),PR=I('<div class="empty-tabs-default svelte-1gw9g38"><div class="empty-tabs-drop svelte-1gw9g38"></div></div>'),DR=I('<div class="empty-tabs-placeholder svelte-1gw9g38"><!></div>'),jR=I('<div class="leaf-slot-wrapper svelte-1gw9g38"><!> <!></div>');function fs(e,t){le(t,!0);let n=te(t,"path",19,()=>[]),r=te(t,"rootRef",19,()=>({kind:"docked"}));const s=V(()=>{if(t.rootOverride!==void 0)return cs(t.rootOverride,n());let x;return r().kind==="docked"?x=_t.root:x=_t.tree.floats.find(R=>R.id===r().floatId)?.content??null,x?cs(x,n()):null});function a(x){return{get isDragging(){return Oe.phase==="dragging"},onPointerDown(w,R,A){const D=x.tabs[w];D&&bR(D.slotId,D,r(),R,A)},onStripHover(w,R,A,D){if(A<w.top||A>w.bottom)return es(C=>C.kind==="strip"&&C.tabsNode===x),null;let L=D.length;for(let C=0;C<D.length;C++){const O=D[C],M=O.left+O.width/2;if(R<M){L=C;break}}const T=Oe.source;if(T){const C=x.tabs.findIndex(O=>O.slotId===T.slotId);C>=0&&C<L&&(L-=1)}return jl({kind:"strip",root:r(),tabsNode:x,insertIndex:L}),L},onStripLeave(){es(w=>w.kind==="strip"&&w.tabsNode===x)}}}function o(x){return x.type==="split"?x:null}function l(x){return x.type==="tabs"?x:null}function c(x){return x.type==="slot"?x:null}function u(x){return x.map(w=>E1(w.slotId)||void 0)}function d(x){return x.map(w=>I1(w.slotId)||void 0)}function f(x,w){const R=x[w];R&&zc(R.slotId)}function v(x,w){w(x)}function m(x,w){Oe.phase==="dragging"&&jl({kind:"strip",root:r(),tabsNode:w,insertIndex:0})}function S(){es(x=>x.kind==="strip"&&x.insertIndex===0)}var y=Ue(),_=ke(y);{var E=x=>{var w=Ue(),R=ke(w);{var A=T=>{const C=(M,P=Mt)=>{{let q=V(()=>[...n(),P()]);fs(M,{get rootRef(){return r()},get path(){return i(q)},get rootOverride(){return t.rootOverride},get carousels(){return t.carousels}})}},O=V(()=>o(i(s)));{let M=V(()=>mn.current.class==="compact");dR(T,{get direction(){return i(O).direction},get sizes(){return i(O).sizes},get pinned(){return i(O).pinned},get collapsed(){return i(O).collapsed},get fixed(){return i(O).fixed},get count(){return i(O).children.length},get pane(){return C},get compact(){return i(M)},onResize:(P,q)=>i(O).sizes[P]=q,onCollapseToggle:(P,q)=>{i(O).collapsed||(i(O).collapsed=i(O).children.map(()=>!1)),i(O).collapsed[P]=q}})}},D=T=>{const C=V(()=>l(i(s))),O=V(()=>t.carousels?.get(pm(n())));var M=Ue(),P=ke(M);{var q=$=>{TR($,{get node(){return i(C)},get wrap(){return i(O).wrap},get rootRef(){return r()},get path(){return n()}})},F=$=>{const Z=(ee,X=Mt)=>{const Q=V(()=>i(C)?.tabs[X()]);var z=Ue(),U=ke(z);{var G=J=>{var ie=LR(),ve=p(ie);{let ue=V(()=>({type:"slot",slotId:i(Q).slotId,viewId:i(Q).viewId}));Ai(ve,{get node(){return i(ue)},get label(){return i(Q).label},get meta(){return i(Q).meta}})}var se=g(ve,2);zl(se,{get rootRef(){return r()},get path(){return n()}}),h(ie),k(J,ie)};H(U,J=>{i(Q)&&J(G)})}k(ee,z)},Y=V(()=>a(i(C)));{let ee=V(()=>i(C).tabs.map(G=>G.label)),X=V(()=>i(C).tabs.map(G=>G.icon)),Q=V(()=>u(i(C).tabs)),z=V(()=>d(i(C).tabs)),U=V(()=>i(C).tabs.map(G=>G.slotId));_p($,{get labels(){return i(ee)},get icons(){return i(X)},get activeTab(){return i(C).activeTab},onActiveChange:G=>i(C).activeTab=G,get body(){return Z},get dragController(){return i(Y)},get clickGuard(){return mR},get closable(){return i(Q)},get dirty(){return i(z)},onClose:G=>f(i(C).tabs,G),get tabIds(){return i(U)}})}},W=$=>{var Z=DR(),Y=p(Z);{var ee=Q=>{var z=MR();fv(z,(U,G)=>v?.(U,G),()=>i(C).emptyRenderer),k(Q,z)},X=Q=>{var z=PR(),U=p(z);h(z),K("pointermove",U,G=>m(G,i(C))),He("pointerleave",U,S),k(Q,z)};H(Y,Q=>{i(C).emptyRenderer?Q(ee):Q(X,-1)})}h(Z),k($,Z)};H(P,$=>{i(O)&&i(C)&&i(C).tabs.length>0?$(q):i(C)&&i(C).tabs.length>0?$(F,1):i(C)?.persistent&&$(W,2)})}k(T,M)},L=T=>{const C=V(()=>c(i(s)));var O=jR(),M=p(O);Ai(M,{get node(){return i(C)},get meta(){return i(C).meta}});var P=g(M,2);zl(P,{get rootRef(){return r()},get path(){return n()}}),h(O),k(T,O)};H(R,T=>{i(s).type==="split"?T(A):i(s).type==="tabs"?T(D,1):T(L,-1)})}k(x,w)};H(_,x=>{i(s)&&x(E)})}k(e,y),ce()}ge(["pointermove"]);var zR=I('<span class="drag-preview-icon svelte-133fiip"> </span>'),OR=I('<div class="drag-preview svelte-133fiip"><!> <span class="drag-preview-label svelte-133fiip"> </span></div>');function NR(e,t){le(t,!0);const n=V(()=>Oe.phase==="dragging"&&!!Oe.source),r=V(()=>Oe.source?Oe.pointerX-Oe.source.offsetX:0),s=V(()=>Oe.source?Oe.pointerY-Oe.source.offsetY:0),a=V(()=>Oe.source?.startRect.width??0),o=V(()=>Oe.source?.startRect.height??0),l=V(()=>Oe.source?.entry.label??""),c=V(()=>Oe.source?.entry.icon);var u=Ue(),d=ke(u);{var f=v=>{var m=OR(),S=p(m);{var y=x=>{var w=zR(),R=p(w,!0);h(w),N(()=>j(R,i(c))),k(x,w)};H(S,x=>{i(c)&&x(y)})}var _=g(S,2),E=p(_,!0);h(_),h(m),N(()=>{Ge(m,`left: ${i(r)??""}px; top: ${i(s)??""}px; width: ${i(a)??""}px; height: ${i(o)??""}px;`),j(E,i(l))}),k(v,m)};H(d,v=>{i(n)&&v(f)})}k(e,u),ce()}const ts=new Map;let Ci=!1;function mm(e){if(ts.size===0||Ev(e.pointerId))return;const t=e.target;if(!t)return;const n=Array.from(ts.keys());for(const r of n){const s=ts.get(r);s&&(s.contains(t)||Be.close(r))}}function qR(){Ci||typeof document>"u"||(document.addEventListener("pointerdown",mm,!0),Ci=!0)}function BR(){Ci&&(ts.size>0||(document.removeEventListener("pointerdown",mm,!0),Ci=!1))}function FR(e,t){ts.set(e,t),qR()}function VR(e){ts.delete(e),BR()}function UR(e){const t=new Set;return bm(e,t),[...t]}function bm(e,t){switch(e.type){case"slot":{if(e.viewId!==null){const n=Du(e.viewId);n&&t.add(n)}return}case"tabs":{for(const n of e.tabs)if(n.viewId!==null){const r=Du(n.viewId);r&&t.add(r)}return}case"split":{for(const n of e.children)bm(n,t);return}}}var HR=I('<button class="sh3-float-popout svelte-1p734al" aria-label="Open in own window" title="Open in own window">⧉</button>'),KR=I('<header class="sh3-float-header svelte-1p734al" data-sh3-scope="element:float-header"><span class="sh3-float-title svelte-1p734al"> </span> <span class="sh3-float-header-actions svelte-1p734al"><!> <button class="sh3-float-maximize svelte-1p734al"> </button> <button class="sh3-float-close svelte-1p734al" aria-label="Close float">×</button></span></header>'),WR=I('<div class="sh3-float-frame svelte-1p734al" data-sh3-overlay-host="float" role="dialog" tabindex="-1"><!> <div class="sh3-float-body svelte-1p734al"><!></div> <div class="sh3-float-resize-grip svelte-1p734al" role="presentation" aria-hidden="true"></div></div>');function YR(e,t){le(t,!0);const n=typeof globalThis.__TAURI_INTERNALS__<"u",r=$i("__layouts__");function s(X){X.preventDefault(),r.set({type:"float-header",ref:{floatId:a().id}}),lt.actions.openContextMenu({x:X.clientX,y:X.clientY,scope:{element:"float-header"}})}let a=te(t,"entry",15),o=B(!1),l={x:0,y:0},c=null,u=B(!1),d={pointer:{x:0,y:0},size:{w:0,h:0},min:{w:0,h:0}},f=null,v=B(void 0);const m=V(()=>Be.isMaximized(a().id));Pe(()=>{if(a().dismissable&&i(v))return FR(a().id,i(v)),()=>VR(a().id)}),Pe(()=>{if(!i(v))return;const X=Z1(a().id);if(X)return X.appendChild(i(v)),()=>{i(v)?.parentNode===X&&i(v).remove()}}),Pe(()=>()=>{i(o)&&_(),i(u)&&D()});function S(X){X.button===0&&(X.target.closest(".sh3-float-close")||X.target.closest(".sh3-float-maximize")||X.target.closest(".sh3-float-popout")||i(o)||(b(o,!0),c=X.pointerId,l={x:X.clientX-a().position.x,y:X.clientY-a().position.y},Be.focus(a().id),document.addEventListener("pointermove",y),document.addEventListener("pointerup",E),document.addEventListener("pointercancel",x)))}function y(X){!i(o)||X.pointerId!==c||(Be.unmaximize(a().id),a(a().position.x=X.clientX-l.x,!0),a(a().position.y=X.clientY-l.y,!0))}function _(){b(o,!1),c=null,document.removeEventListener("pointermove",y),document.removeEventListener("pointerup",E),document.removeEventListener("pointercancel",x)}function E(X){!i(o)||X.pointerId!==c||_()}function x(X){if(X.pointerId!==c){Fn("floatframe:cancel-other-id",X,{dragPointerId:c});return}Fn("floatframe:cancel-our-id",X,{dragPointerId:c}),_()}function w(X){X.target.closest(".sh3-float-close")||X.target.closest(".sh3-float-maximize")||X.target.closest(".sh3-float-popout")||Be.toggleMaximize(a().id)}function R(X){X.button===0&&(X.stopPropagation(),!i(u)&&(b(u,!0),f=X.pointerId,d={pointer:{x:X.clientX,y:X.clientY},size:{w:a().size.w,h:a().size.h},min:Ki(a().content)},Be.focus(a().id),document.addEventListener("pointermove",A),document.addEventListener("pointerup",L),document.addEventListener("pointercancel",T)))}function A(X){if(!i(u)||X.pointerId!==f)return;Be.unmaximize(a().id);const Q=X.clientX-d.pointer.x,z=X.clientY-d.pointer.y;a(a().size.w=Math.max(d.min.w,d.size.w+Q),!0),a(a().size.h=Math.max(d.min.h,d.size.h+z),!0)}function D(){b(u,!1),f=null,document.removeEventListener("pointermove",A),document.removeEventListener("pointerup",L),document.removeEventListener("pointercancel",T)}function L(X){!i(u)||X.pointerId!==f||D()}function T(X){if(X.pointerId!==f){Fn("floatframe-grip:cancel-other-id",X,{resizePointerId:f});return}Fn("floatframe-grip:cancel-our-id",X,{resizePointerId:f}),D()}function C(){Be.focus(a().id)}function O(X){X.stopPropagation(),Be.toggleMaximize(a().id)}function M(X){X.stopPropagation(),Be.close(a().id)}async function P(X){X.stopPropagation();try{await co({kind:"float",content:a().content,title:a().title,size:{w:a().size.w,h:a().size.h},activateShards:UR(a().content)}),Be.close(a().id)}catch(Q){lt.toast.notify(`Pop-out failed: ${Q.message}`,{level:"error",duration:5e3})}}var q=WR();let F;var W=p(q);{var $=X=>{var Q=KR(),z=p(Q),U=p(z,!0);h(z);var G=g(z,2),J=p(G);{var ie=be=>{var we=HR();K("click",we,P),k(be,we)};H(J,be=>{n&&be(ie)})}var ve=g(J,2),se=p(ve,!0);h(ve);var ue=g(ve,2);h(G),h(Q),N(()=>{oe(Q,"data-float-id",a().id),j(U,a().title),oe(ve,"aria-label",i(m)?"Restore float":"Maximize float"),oe(ve,"aria-pressed",i(m)),j(se,i(m)?"🗗":"🗖")}),K("pointerdown",Q,S),K("dblclick",Q,w),K("contextmenu",Q,s),K("click",ve,O),K("click",ue,M),k(X,Q)};H(W,X=>{a().title&&X($)})}var Z=g(W,2),Y=p(Z);{let X=V(()=>({kind:"float",floatId:a().id}));fs(Y,{get rootRef(){return i(X)},path:[]})}h(Z);var ee=g(Z,2);h(q),We(q,X=>b(v,X),()=>i(v)),N(()=>{oe(q,"aria-label",a().title??"Float panel"),F=Ge(q,"",F,{left:`${a().position.x??""}px`,top:`${a().position.y??""}px`,width:`${a().size.w??""}px`,height:`${a().size.h??""}px`})}),K("click",q,C),K("pointerdown",ee,R),k(e,q),ce()}ge(["click","pointerdown","dblclick","contextmenu"]);var XR=I('<div class="sh3-float-layer svelte-1rzcset"></div>');function GR(e,t){le(t,!0);const n=V(()=>_t.floats),r=V(()=>mn.current.class==="compact");function s(o){return!i(r)||o.dismissable===!0}var a=XR();xe(a,23,()=>i(n),o=>o.id,(o,l,c)=>{var u=Ue(),d=ke(u);{var f=m=>{YR(m,{get entry(){return i(n)[i(c)]},set entry(S){i(n)[i(c)]=S}})},v=V(()=>s(i(l)));H(d,m=>{i(v)&&m(f)})}k(o,u)}),h(a),k(e,a),ce()}var JR=I('<div class="sh3-overlay-root svelte-4ykdm7"><!></div>'),ZR=I('<div class="sh3-overlays svelte-4ykdm7" aria-hidden="true"></div>');function gm(e,t){le(t,!0);const n=[{layer:"drawers",name:"drawers",zToken:"--sh3-z-layer-drawers"},{layer:1,name:"floating",zToken:"--sh3-z-layer-1"},{layer:2,name:"drag-preview",zToken:"--sh3-z-layer-2"},{layer:3,name:"popup",zToken:"--sh3-z-layer-3"},{layer:4,name:"modal",zToken:"--sh3-z-layer-4"},{layer:5,name:"toast",zToken:"--sh3-z-layer-5"},{layer:6,name:"command",zToken:"--sh3-z-layer-6"}],r=fe({});Pe(()=>{for(const{name:a}of n){const o=r[a];o&&xw(a,o)}return()=>{for(const{name:a}of n)Sw(a)}}),Pe(()=>{const a=_t.tree;return G1(a.floats,()=>({w:window.innerWidth,h:window.innerHeight})),()=>J1()});var s=ZR();xe(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=JR(),f=p(d);{var v=S=>{GR(S,{})},m=S=>{NR(S,{})};H(f,S=>{c()==="floating"?S(v):c()==="drag-preview"&&S(m,1)})}h(d),We(d,(S,y)=>r[y]=S,S=>r?.[S],()=>[c()]),N(()=>{oe(d,"data-sh3-overlay",c()),oe(d,"data-sh3-layer",l()),Ge(d,`z-index: var(${u()??""});`)}),k(a,d)}),h(s),k(e,s),ce()}var QR=I('<div class="guest-signin-error svelte-pymkh"> </div>'),$R=I('<div class="guest-signin-overlay svelte-pymkh" role="dialog"><div class="guest-signin-card svelte-pymkh"><form class="guest-signin-form svelte-pymkh"><input class="guest-signin-input svelte-pymkh" type="text" placeholder="Username" autocomplete="username"/> <input class="guest-signin-input svelte-pymkh" type="password" placeholder="Password" autocomplete="current-password"/> <div class="guest-signin-actions svelte-pymkh"><button type="submit" class="guest-signin-btn svelte-pymkh"> </button> <button type="button" class="guest-signin-cancel svelte-pymkh">Cancel</button></div></form> <!></div></div>'),eL=I('<div class="guest-banner svelte-pymkh"><span class="guest-banner-text">Browsing as guest. Sign in to save your work.</span> <button type="button" class="guest-banner-action svelte-pymkh">Sign in</button></div> <!>',1),tL=I('<div class="guest-banner-slot"><!></div>');function nL(e,t){le(t,!0);let n=B(!1),r=B(""),s=B(""),a=B(null),o=B(!1);async function l(){if(!i(r).trim()||!i(s).trim()||i(o))return;b(o,!0),b(a,null);const v=await qh(i(r).trim(),i(s).trim());b(o,!1),v.ok?b(n,!1):b(a,v.error,!0)}var c=tL(),u=p(c);{var d=v=>{var m=eL(),S=ke(m),y=g(p(S),2);h(S);var _=g(S,2);{var E=x=>{var w=$R(),R=p(w),A=p(R),D=p(A);Te(D);var L=g(D,2);Te(L);var T=g(L,2),C=p(T),O=p(C,!0);h(C);var M=g(C,2);h(T),h(A);var P=g(A,2);{var q=F=>{var W=QR(),$=p(W,!0);h(W),N(()=>j($,i(a))),k(F,W)};H(P,F=>{i(a)&&F(q)})}h(R),h(w),N(F=>{D.disabled=i(o),L.disabled=i(o),C.disabled=F,j(O,i(o)?"Signing in...":"Sign in")},[()=>i(o)||!i(r).trim()||!i(s).trim()]),He("submit",A,F=>{F.preventDefault(),l()}),De(D,()=>i(r),F=>b(r,F)),De(L,()=>i(s),F=>b(s,F)),K("click",M,()=>{b(n,!1),b(a,null)}),k(x,w)};H(_,x=>{i(n)&&x(E)})}K("click",y,()=>{b(n,!0)}),k(v,m)},f=V(()=>Bh());H(u,v=>{i(f)&&v(d)})}h(c),k(e,c),ce()}ge(["click"]);var rL=I('<code class="sh3-consent-scope svelte-14me5sj"> </code>'),sL=I('<dt class="svelte-14me5sj">Peer</dt> <dd class="svelte-14me5sj"> </dd>',1),aL=I('<dt class="svelte-14me5sj">Expires in</dt> <dd class="svelte-14me5sj"> </dd>',1),iL=I('<div class="sh3-consent-backdrop svelte-14me5sj" role="dialog" aria-modal="true" aria-label="Key creation consent"><div class="sh3-consent-card svelte-14me5sj"><h2 class="sh3-consent-title svelte-14me5sj"><span class="svelte-14me5sj"> </span> wants to create a key</h2> <dl class="sh3-consent-fields svelte-14me5sj"><dt class="svelte-14me5sj">Label</dt> <dd class="svelte-14me5sj"> </dd> <dt class="svelte-14me5sj">Scopes</dt> <dd class="sh3-consent-scopes svelte-14me5sj"></dd> <!> <!></dl> <div class="sh3-consent-actions svelte-14me5sj"><button type="button" class="sh3-consent-deny svelte-14me5sj">Deny</button> <button type="button" class="sh3-consent-approve svelte-14me5sj">Approve</button></div></div></div>');function oL(e,t){le(t,!0);let n=B(null);Pe(()=>rp(u=>{b(n,u,!0)}));function r(){i(n)&&(Cl(i(n).requestId,!0),b(n,null))}function s(){i(n)&&(Cl(i(n).requestId,!1),b(n,null))}var a=Ue(),o=ke(a);{var l=c=>{var u=iL(),d=p(u),f=p(d),v=p(f),m=p(v,!0);h(v),Ot(),h(f);var S=g(f,2),y=g(p(S),2),_=p(y,!0);h(y);var E=g(y,4);xe(E,20,()=>i(n).scopes,C=>C,(C,O)=>{var M=rL(),P=p(M,!0);h(M),N(()=>j(P,O)),k(C,M)}),h(E);var x=g(E,2);{var w=C=>{var O=sL(),M=g(ke(O),2),P=p(M);h(M),N(()=>j(P,`${i(n).peerRole??"—"??""}${i(n).peerId?` · ${i(n).peerId}`:""}`)),k(C,O)};H(x,C=>{(i(n).peerRole||i(n).peerId)&&C(w)})}var R=g(x,2);{var A=C=>{var O=aL(),M=g(ke(O),2),P=p(M);h(M),N(q=>j(P,`${q??""}s`),[()=>Math.round(i(n).expiresIn/1e3)]),k(C,O)};H(R,C=>{i(n).expiresIn&&C(A)})}h(S);var D=g(S,2),L=p(D);ma(L,!0);var T=g(L,2);h(D),h(d),h(u),N(()=>{j(m,i(n).shardId),j(_,i(n).label)}),K("click",L,s),K("click",T,r),k(c,u)};H(o,c=>{i(n)&&c(l)})}k(e,a),ce()}ge(["click"]);var lL=I('<span class="sh3-brand svelte-18lk809">SH3</span>'),cL=I('<span class="sh3-brand sh3-brand-app svelte-18lk809"> </span>'),uL=I('<span class="sh3-brand svelte-18lk809">SH3</span> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <button type="button" class="sh3-brand-crumb svelte-18lk809"> </button>',1),dL=I('<button type="button" class="sh3-brand sh3-brand-clickable svelte-18lk809" title="Exit project">SH3</button> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <span class="sh3-brand-project svelte-18lk809"> </span>',1),fL=I('<span class="sh3-brand sh3-brand-project svelte-18lk809"> </span> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <span class="sh3-brand sh3-brand-app svelte-18lk809"> </span>',1),vL=I('<button type="button" class="sh3-brand sh3-brand-clickable svelte-18lk809" title="Exit project">SH3</button> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <button type="button" class="sh3-brand-crumb svelte-18lk809"> </button> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <button type="button" class="sh3-brand-crumb svelte-18lk809"> </button>',1),hL=I('<div class="sh3-brand-slot svelte-18lk809"><!></div>');function ym(e,t){le(t,!0);const n=V(()=>Ct().activeAppId),r=V(Iw),s=V(()=>sn.activeProjectId),a=V(()=>i(n)?In(i(n))?.manifest.label??i(n):null),o=V(()=>i(r)?In(i(r))?.manifest.label??i(r):null),l=V(()=>i(s)?rn.projects.find(R=>R.id===i(s))?.name??i(s):null),c=V(()=>i(s)?i(n)?"project-app":i(r)?"project-breadcrumb":"project-home":i(n)?"app":i(r)?"breadcrumb":"brand");function u(){i(r)&&Xn(i(r))}function d(){Eh(null)}function f(){i(n)&&ks()}var v=hL(),m=p(v);{var S=R=>{var A=lL();k(R,A)},y=R=>{var A=cL(),D=p(A,!0);h(A),N(()=>j(D,i(a))),k(R,A)},_=R=>{var A=uL(),D=g(ke(A),4),L=p(D,!0);h(D),N(()=>j(L,i(o))),K("click",D,u),k(R,A)},E=R=>{var A=dL(),D=ke(A),L=g(D,4),T=p(L,!0);h(L),N(()=>j(T,i(l))),K("click",D,d),k(R,A)},x=R=>{var A=fL(),D=ke(A),L=p(D,!0);h(D);var T=g(D,4),C=p(T,!0);h(T),N(()=>{j(L,i(l)),j(C,i(a))}),k(R,A)},w=R=>{var A=vL(),D=ke(A),L=g(D,4),T=p(L,!0);h(L);var C=g(L,4),O=p(C,!0);h(C),N(()=>{j(T,i(l)),j(O,i(o))}),K("click",D,d),K("click",L,f),K("click",C,u),k(R,A)};H(m,R=>{i(c)==="brand"?R(S):i(c)==="app"?R(y,1):i(c)==="breadcrumb"?R(_,2):i(c)==="project-home"?R(E,3):i(c)==="project-app"?R(x,4):i(c)==="project-breadcrumb"&&R(w,5)})}h(v),k(e,v),ce()}ge(["click"]);const pL=Object.freeze([{id:"file",label:"File"},{id:"edit",label:"Edit"},{id:"view",label:"View"},{id:"window",label:"Window"},{id:"help",label:"Help"}]);function Ti(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function _m(e,t){if(e==null)return[];if(t==null)return pL.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 Ol(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=Ea(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:Jt(a.action),shortcut:Ia(a.action,t.bindings,t.platform),group:a.action.group??"",icon:a.action.icon,checked:Ti(a.action.checked),disabled:Ti(a.action.disabled),submenu:a.action.submenu===!0})))}return r}function wm(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=Ea(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:Jt(a.action),shortcut:Ia(a.action,t.bindings,t.platform),group:a.action.group??"",icon:a.action.icon,checked:Ti(a.action.checked),disabled:Ti(a.action.disabled),submenu:a.action.submenu===!0})))}return r}var mL=I('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),bL=I('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),gL=I('<button type="button" class="sh3-menubar-button svelte-bke3dt"><!> <span class="sh3-menubar-label"> </span> <!></button>');function yL(e,t){le(t,!0);let n=B(void 0);function r(y){const _=new Map,E=[];for(const x of y){const w=x.group||"";_.has(w)||(_.set(w,[]),E.push(w)),_.get(w).push(x)}return E.map(x=>({id:`group:${x||"_default"}`,items:_.get(x)}))}function s(y,_,E){const x=dt().find(w=>w.action.id===y);if(!(!x||typeof x.action.run!="function")){try{x.action.run({action:{id:y,label:Jt(x.action)},appId:_.activeAppId,viewId:_.focusedViewId??void 0,selection:_.selection??void 0,invokedVia:"palette",dispatch:()=>{}})}catch(w){console.error(`[sh3] menu-bar action "${y}" threw:`,w)}E.close()}}function a(y,_,E){const x=document.querySelector(".sh3-popup-host");if(!x)return;const w=document.createElement("div");w.className="sh3-popup-submenu",w.style.position="absolute",w.style.pointerEvents="auto";const A=(x.querySelector(".sh3-ctx-active")??x).getBoundingClientRect();w.style.left=`${A.right+2}px`,w.style.top=`${A.top}px`,x.appendChild(w);const D=wm(dt(),_,y),L=Qe(gi,{target:w,props:{sections:r(D),onInvoke:T=>s(T,_,E),onDismiss:()=>{ot(L),w.remove()}}})}function o(){if(!i(n))return;const y=Ct(),_=ol.show(gi,{anchor:i(n),placement:"bottom-start"},{sections:r(t.items),onInvoke:E=>{const x=dt().find(w=>w.action.id===E);if(x){if(x.action.submenu===!0){a(E,y,_);return}s(E,y,_)}},onDismiss:()=>ol.close()})}const l=V(()=>t.container.iconPosition??"before");var c=gL(),u=p(c);{var d=y=>{var _=mL();N(()=>oe(_,"data-icon",t.container.icon)),k(y,_)};H(u,y=>{t.container.icon&&i(l)==="before"&&y(d)})}var f=g(u,2),v=p(f,!0);h(f);var m=g(f,2);{var S=y=>{var _=bL();N(()=>oe(_,"data-icon",t.container.icon)),k(y,_)};H(m,y=>{t.container.icon&&i(l)==="after"&&y(S)})}h(c),We(c,y=>b(n,y),()=>i(n)),N(()=>j(v,t.container.label)),K("click",c,o),k(e,c),ce()}ge(["click"]);var _L=I('<div class="sh3-menubar svelte-7gc0wa" role="menubar"></div>');function km(e,t){le(t,!0);const n=V(Ct),r=V(()=>i(n).activeAppId),s=V(()=>{if(i(r))return In(i(r))?.manifest.menus}),a=V(()=>_m(i(r),i(s))),o=V(()=>{const c=[],u=dt();for(const d of i(a)){const f=Ol(u,i(n),d.id);f.length>0&&c.push({container:d,items:f})}return c});var l=_L();xe(l,21,()=>i(o),({container:c,items:u})=>c.id,(c,u)=>{let d=()=>i(u).container,f=()=>i(u).items;yL(c,{get container(){return d()},get items(){return f()}})}),h(l),k(e,l),ce()}const wL={type:"slot",slotId:"__sh3core__:compact:empty",viewId:null,role:"body"};function vs(e){return e??"body"}function xm(e){return e.type==="slot"?[{slotId:e.slotId,viewId:e.viewId,label:e.slotId,role:vs(e.role)}]:e.type==="tabs"?e.tabs.map(t=>({slotId:t.slotId,viewId:t.viewId,label:t.label,icon:t.icon,role:vs(e.role)})):e.children.flatMap(xm)}function Ld(e){return xm(e).some(t=>t.role==="body")}function Sm(e){if(e.type==="slot"||e.type==="tabs")return vs(e.role)==="body"?e:null;const t=[];for(let n=0;n<e.children.length;n++){const r=Sm(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 Md(e){return e==="inspector"?"right":"left"}function kL(e){const t={left:[],right:[],top:[]};function n(r,s){if(r.type==="slot"){const a=vs(r.role);if(a==="body")return;const o=s??Md(a);t[o].push({slotId:r.slotId,viewId:r.viewId,label:r.slotId,role:a});return}if(r.type==="tabs"){const a=vs(r.role);if(a==="body")return;const o=s??Md(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&&!Ld(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&&!Ld(o)&&(l="top"),n(o,l)}}return n(e,null),t}function Fo(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 Im(e){const n=Sm(e)??wL,r=kL(e);return{bodyRoot:n,drawers:{left:Fo(r.left),right:Fo(r.right),top:Fo(r.top)},carousels:RR(n)}}var xL=I('<span class="chevron svelte-vkxo1d">›</span>'),SL=I('<span class="shortcut svelte-vkxo1d"> </span>'),IL=I('<button class="item svelte-vkxo1d"><span class="label svelte-vkxo1d"> </span> <!></button>'),EL=I('<div class="empty svelte-vkxo1d">No menu items available.</div>'),AL=I('<div class="sh3-menu-sheet svelte-vkxo1d" role="dialog" aria-label="Menu" tabindex="-1" data-sh3-region="menu-sheet"><div class="head svelte-vkxo1d"><!> <span class="title svelte-vkxo1d"> </span></div> <div class="scroll svelte-vkxo1d"></div> <!></div>');function CL(e,t){le(t,!0);const n=V(Ct),r=V(()=>i(n).activeAppId),s=V(()=>{if(i(r))return In(i(r))?.manifest.menus}),a=V(()=>_m(i(r),i(s)));let o=B(fe([{kind:"root"}]));const l=V(()=>i(o)[i(o).length-1]);function c(L){b(o,[...i(o),L],!0)}function u(){i(o).length<=1||b(o,i(o).slice(0,-1),!0)}const d=V(()=>{const L=dt(),T=i(l);return T.kind==="root"?i(a).filter(O=>Ol(L,i(n),O.id).length>0).map(O=>({id:O.id,label:O.label,isContainer:!0})):T.kind==="container"?Ol(L,i(n),T.containerId).map(M=>({id:M.id,label:M.label,shortcut:M.shortcut,isSubmenu:M.submenu===!0,disabled:M.disabled})):wm(L,i(n),T.parentId).map(O=>({id:O.id,label:O.label,shortcut:O.shortcut,disabled:O.disabled,isSubmenu:O.submenu===!0}))});function f(L){if(L.isContainer){const C=i(a).find(O=>O.id===L.id);C&&c({kind:"container",containerId:C.id,label:C.label});return}if(L.isSubmenu){c({kind:"submenu",parentId:L.id,label:L.label});return}const T=dt().find(C=>C.action.id===L.id);if(!(!T||typeof T.action.run!="function")){try{T.action.run({action:{id:L.id,label:Jt(T.action)},appId:i(n).activeAppId,viewId:i(n).focusedViewId??void 0,selection:i(n).selection??void 0,invokedVia:"palette",dispatch:()=>{}})}catch(C){console.error(`[sh3] menu-sheet action "${L.id}" threw:`,C)}t.close()}}function v(){u()}function m(L){if(L.key==="Escape"){i(o).length>1?(u(),L.preventDefault()):t.close();return}}var S=AL(),y=p(S),_=p(y);{var E=L=>{Cn(L,{variant:"icon",icon:"chevron-left",ariaLabel:"Back",title:"Back",onclick:v})};H(_,L=>{i(o).length>1&&L(E)})}var x=g(_,2),w=p(x,!0);h(x),h(y);var R=g(y,2);xe(R,21,()=>i(d),L=>L.id,(L,T)=>{var C=IL(),O=p(C),M=p(O,!0);h(O);var P=g(O,2);{var q=W=>{var $=xL();k(W,$)},F=W=>{var $=SL(),Z=p($,!0);h($),N(()=>j(Z,i(T).shortcut)),k(W,$)};H(P,W=>{i(T).isContainer||i(T).isSubmenu?W(q):i(T).shortcut&&W(F,1)})}h(C),N(()=>{C.disabled=i(T).disabled,j(M,i(T).label)}),K("click",C,()=>f(i(T))),k(L,C)}),h(R);var A=g(R,2);{var D=L=>{var T=EL();k(L,T)};H(A,L=>{i(d).length===0&&L(D)})}h(S),N(()=>j(w,i(l).kind==="root"?"Menu":i(l).label)),K("keydown",S,m),k(e,S),ce()}ge(["keydown","click"]);var TL=I('<span class="kind svelte-cq4vzh">layout</span>'),RL=I('<span class="kind svelte-cq4vzh">float</span>'),LL=I('<button class="row svelte-cq4vzh"><span class="label svelte-cq4vzh"> </span> <!></button>'),ML=I('<div class="sh3-floats-sheet svelte-cq4vzh" role="dialog" aria-label="Floats" data-sh3-region="floats-sheet"><div class="scroll svelte-cq4vzh"></div> <button class="cancel svelte-cq4vzh">Cancel</button></div>');function PL(e,t){le(t,!0);const n=V(Ct),r=V(()=>{if(Qi()==="home")return"Home";const T=i(n).activeAppId;return T?In(T)?.manifest.label??T:"Home"});function s(T){if(T.title)return T.title;if(T.content.type==="tabs"){const C=T.content.tabs[T.content.activeTab]??T.content.tabs[0];if(C)return C.label}return T.id}const a=V(()=>{const T=[{id:"docked",label:i(r)}];for(const C of _t.tree.floats)C.dismissable||T.push({id:C.id,label:s(C)});return T});function o(T){const C=_n.current;return T==="docked"?C.kind==="docked":C.kind==="float"&&C.floatId===T}function l(T){T==="docked"?_n.reset():_n.setRoot({kind:"float",floatId:T}),t.close()}const c=.4;let u=B(null),d=B(0),f=0,v=null,m=null;function S(T){return i(u)===T?i(d):0}function y(T){return i(u)===T?"none":"transform 160ms ease-out"}function _(T,C){C!=="docked"&&T.button===0&&i(u)===null&&(b(u,C,!0),f=T.clientX,b(d,0),v=T.pointerId,m=T.currentTarget??document.querySelector(`[data-sh3-floats-row="${C}"]`),document.addEventListener("pointermove",E),document.addEventListener("pointerup",w),document.addEventListener("pointercancel",R))}function E(T){T.pointerId===v&&b(d,T.clientX-f)}function x(){document.removeEventListener("pointermove",E),document.removeEventListener("pointerup",w),document.removeEventListener("pointercancel",R),b(u,null),v=null,f=0,b(d,0),m=null}function w(T){if(T.pointerId!==v)return;const C=i(u),O=m?.clientWidth??0,M=i(d);x(),C&&C!=="docked"&&O>0&&Math.abs(M)>=O*c&&Be.close(C)}function R(T){T.pointerId===v&&x()}var A=ML(),D=p(A);xe(D,21,()=>i(a),T=>T.id,(T,C)=>{var O=LL();let M;var P=p(O),q=p(P,!0);h(P);var F=g(P,2);{var W=Z=>{var Y=TL();k(Z,Y)},$=Z=>{var Y=RL();k(Z,Y)};H(F,Z=>{i(C).id==="docked"?Z(W):Z($,-1)})}h(O),N((Z,Y)=>{oe(O,"data-sh3-floats-row",i(C).id),oe(O,"data-current",Z),M=Ge(O,"",M,Y),j(q,i(C).label)},[()=>o(i(C).id)?"true":"false",()=>({transform:`translateX(${S(i(C).id)??""}px)`,transition:y(i(C).id)})]),K("click",O,()=>l(i(C).id)),K("pointerdown",O,Z=>_(Z,i(C).id)),k(T,O)}),h(D);var L=g(D,2);h(A),K("click",L,()=>t.close()),k(e,A),ce()}ge(["click","pointerdown"]);var DL=I('<span data-sh3-anchor="left" class="svelte-q1hcw0"><!></span>'),jL=I('<span data-sh3-anchor="right" class="svelte-q1hcw0"><!></span>'),zL=I('<span data-sh3-anchor="top" class="svelte-q1hcw0"><!></span>'),OL=I('<header class="sh3-compact-chrome svelte-q1hcw0" data-sh3-region="compact-chrome"><div class="leading svelte-q1hcw0"><!> <!> <!> <!></div> <div class="title svelte-q1hcw0"> </div> <div class="trailing svelte-q1hcw0"><!> <!> <!></div></header>');function NL(e,t){le(t,!0);const n=V(Zv),r=V(()=>Im(i(n))),s=V(Ct),a=V(()=>Qi()==="home"),o=V(()=>{const F=i(s).activeAppId;return F?In(F)?.manifest.label??F:"SH3"}),l=V(()=>{if(i(r).carousels.size===0)return null;let F=null,W="";for(const[$,Z]of i(r).carousels)(F===null||$<F)&&(F=$,W=Z.activeLabel);return W}),c=V(()=>{const F=_n.current;if(F.kind!=="float")return null;const W=_t.tree.floats.find($=>$.id===F.floatId);return W?W.title?W.title:W.content.type==="tabs"?(W.content.tabs[W.content.activeTab]??W.content.tabs[0])?.label??null:null:null}),u=V(()=>{if(i(c))return i(c);const F=i(l);return F?`${i(o)} › ${F}`:i(o)});let d=B(!1);function f(){lt.modal.open(CL,{},{dismissOnBackdrop:!0,boxStyle:"max-width: 320px;"})}function v(){if(i(d))return;b(d,!0);const F=lt.modal.open(PL,{},{dismissOnBackdrop:!0,boxStyle:"max-width: 320px;"}),W=F.close;F.close=()=>{W(),b(d,!1)}}function m(F){lt.drawers.toggle(F)}function S(){lt.actions.openPalette()}var y=OL(),_=p(y),E=p(_);Cn(E,{variant:"icon",icon:"house",ariaLabel:"Home",title:"Home",get disabled(){return i(a)},onclick:()=>ks()});var x=g(E,2);{var w=F=>{var W=DL(),$=p(W);Cn($,{variant:"icon",icon:"menu",ariaLabel:"Toggle left drawer",title:"Toggle left drawer",onclick:()=>m("left")}),h(W),k(F,W)};H(x,F=>{i(r).drawers.left&&F(w)})}var R=g(x,2);{var A=F=>{var W=jL(),$=p(W);Cn($,{variant:"icon",icon:"panel-right",ariaLabel:"Toggle right drawer",title:"Toggle right drawer",onclick:()=>m("right")}),h(W),k(F,W)};H(R,F=>{i(r).drawers.right&&F(A)})}var D=g(R,2);{var L=F=>{var W=zL(),$=p(W);Cn($,{variant:"icon",icon:"panel-top",ariaLabel:"Toggle top drawer",title:"Toggle top drawer",onclick:()=>m("top")}),h(W),k(F,W)};H(D,F=>{i(r).drawers.top&&F(L)})}h(_);var T=g(_,2),C=p(T,!0);h(T);var O=g(T,2),M=p(O);Cn(M,{variant:"icon",icon:"command",ariaLabel:"Open command palette",title:"Open command palette",onclick:S});var P=g(M,2);Cn(P,{variant:"icon",icon:"layers",ariaLabel:"Floats",title:"Floats",get pressed(){return i(d)},onclick:v});var q=g(P,2);Cn(q,{variant:"icon",icon:"ellipsis-vertical",ariaLabel:"Open menu",title:"Open menu",onclick:f}),h(O),h(y),N(()=>j(C,i(u))),k(e,y),ce()}var qL=I('<button role="tab"> </button>'),BL=I('<div class="tab-strip svelte-8dp9bg" role="tablist"></div>'),FL=I('<div class="drawer-backdrop svelte-8dp9bg" role="presentation"></div> <div data-sh3-region="drawer"><header class="svelte-8dp9bg"><span class="title svelte-8dp9bg"> </span> <button class="close svelte-8dp9bg" aria-label="Close drawer">×</button></header> <!> <div class="body svelte-8dp9bg"><!></div></div>',1);function VL(e,t){le(t,!0);const n=V(()=>t.spec.slots.find(l=>l.slotId===t.activeSlotId)??t.spec.slots[0]),r=V(()=>({type:"slot",slotId:i(n).slotId,viewId:i(n).viewId,role:i(n).role}));var s=Ue(),a=ke(s);{var o=l=>{var c=FL(),u=ke(c),d=g(u,2),f=p(d),v=p(f),m=p(v,!0);h(v);var S=g(v,2);h(f);var y=g(f,2);{var _=w=>{var R=BL();xe(R,21,()=>t.spec.slots,A=>A.slotId,(A,D)=>{var L=qL();let T;var C=p(L,!0);h(L),N(()=>{oe(L,"aria-selected",i(D).slotId===i(n).slotId),T=_e(L,1,"svelte-8dp9bg",null,T,{active:i(D).slotId===i(n).slotId}),j(C,i(D).label)}),K("click",L,()=>t.onActivate(i(D).slotId)),k(A,L)}),h(R),k(w,R)};H(y,w=>{t.spec.slots.length>1&&w(_)})}var E=g(y,2),x=p(E);Ai(x,{get node(){return i(r)},get label(){return i(n).label}}),h(E),h(d),N(()=>{_e(d,1,`drawer drawer-${t.anchor??""}`,"svelte-8dp9bg"),oe(d,"data-sh3-anchor",t.anchor),j(m,i(n).label)}),K("click",u,function(...w){t.onClose?.apply(this,w)}),K("keydown",u,w=>{w.key==="Escape"&&t.onClose()}),K("click",S,function(...w){t.onClose?.apply(this,w)}),k(l,c)};H(a,l=>{t.open&&l(o)})}k(e,s),ce()}ge(["click","keydown"]);var UL=I('<div class="compact-body svelte-1sc410j" data-sh3-region="compact-body"><!></div> <!>',1);function HL(e,t){le(t,!0);const n=V(Zv),r=V(()=>Im(i(n))),s=["left","right","top"];var a=UL(),o=ke(a),l=p(o);fs(l,{get rootOverride(){return i(r).bodyRoot},get carousels(){return i(r).carousels}}),h(o);var c=g(o,2);xe(c,16,()=>s,u=>u,(u,d)=>{const f=V(()=>i(r).drawers[d]);var v=Ue(),m=ke(v);{var S=y=>{VL(y,{get anchor(){return d},get spec(){return i(f)},get open(){return Ht.state[d].open},get activeSlotId(){return Ht.state[d].activeSlotId},onClose:()=>Ht.close(d),onActivate:_=>Ht.activate(d,_)})};H(m,y=>{i(f)&&y(S)})}k(u,v)}),k(e,a),ce()}var KL=I('<button type="button" class="sh3-tabbar-signout svelte-1amm732" title="Sign out"><svg class="sh3-tabbar-signout-icon svelte-1amm732" aria-hidden="true"><use></use></svg></button>'),WL=I('<div class="sh3-tabbar-user svelte-1amm732"><span class="sh3-tabbar-user-name svelte-1amm732"> </span> <span class="sh3-tabbar-tag svelte-1amm732"> </span> <!></div>'),YL=I('<header class="sh3-tabbar svelte-1amm732" data-sh3-region="tabbar"><button type="button" class="sh3-tabbar-home-button svelte-1amm732" title="Home"><svg class="sh3-tabbar-home-icon svelte-1amm732" aria-hidden="true"><use></use></svg></button> <!> <!> <!></header>'),XL=I('<footer class="sh3-statusbar svelte-1amm732" data-sh3-region="statusbar"></footer>'),GL=I('<div class="sh3 svelte-1amm732"><!> <!> <main class="sh3-content svelte-1amm732" data-sh3-region="content" data-sh3-layer="0"><!></main> <!> <!> <!></div>');function JL(e,t){le(t,!0);let n=B(void 0);const r=V(kl),s=V(br),a=V(zt),o=V(()=>Qi()==="home"),l=V(()=>lt.viewport.current.class);Pe(()=>{_t.tree,s0()}),Pe(()=>kl()?c3():void 0),Pe(()=>{const A=i(n);if(!A)return;const D=new Set;function L(C){const O=A.getBoundingClientRect(),M=C.clientX-O.left;if(M>=ui&&M<=O.width-ui)return;Sa(C.pointerId,{ownerId:"sh3:edge",axis:"x",priority:"edge",depth:0})&&D.add(C.pointerId)}function T(C){D.has(C.pointerId)&&(Tr(C.pointerId,"sh3:edge"),D.delete(C.pointerId))}return A.addEventListener("pointerdown",L),A.addEventListener("pointerup",T),A.addEventListener("pointercancel",T),()=>{A.removeEventListener("pointerdown",L),A.removeEventListener("pointerup",T),A.removeEventListener("pointercancel",T);for(const C of D)Tr(C,"sh3:edge");D.clear()}});var c=GL(),u=p(c);{var d=A=>{var D=YL(),L=p(D),T=p(L),C=p(T);h(T),h(L);var O=g(L,2);ym(O,{});var M=g(O,2);km(M,{});var P=g(M,2);{var q=F=>{var W=WL(),$=p(W),Z=p($,!0);h($);var Y=g($,2),ee=p(Y,!0);h(Y);var X=g(Y,2);{var Q=U=>{var G=KL(),J=p(G),ie=p(J);h(J),h(G),N(()=>oe(ie,"href",`${Gn}#log-out`)),K("click",G,()=>$0()),k(U,G)},z=V(()=>!tx());H(X,U=>{i(z)&&U(Q)})}h(W),N(()=>{j(Z,i(s).displayName),j(ee,i(a)?"admin":"user")}),k(F,W)};H(P,F=>{i(r)&&i(s)&&F(q)})}h(D),N(()=>{L.disabled=i(o),oe(C,"href",`${Gn}#house`)}),K("click",L,()=>ks()),k(A,D)},f=A=>{NL(A,{})};H(u,A=>{i(l)==="desktop"?A(d):A(f,-1)})}var v=g(u,2);nL(v,{});var m=g(v,2),S=p(m);{var y=A=>{fs(A,{})},_=A=>{HL(A,{})};H(S,A=>{i(l)==="desktop"?A(y):A(_,-1)})}h(m),We(m,A=>b(n,A),()=>i(n));var E=g(m,2);{var x=A=>{var D=XL();k(A,D)};H(E,A=>{i(l)==="desktop"&&A(x)})}var w=g(E,2);gm(w,{});var R=g(w,2);oL(R,{}),h(c),N(()=>oe(c,"data-sh3-viewport",i(l))),k(e,c),ce()}ge(["click"]);var ZL=I('<button type="button" class="signin-link svelte-lh4k15">Create an account</button>'),QL=I('<form class="signin-form svelte-lh4k15"><input class="signin-input svelte-lh4k15" type="text" placeholder="Username" autocomplete="username"/> <input class="signin-input svelte-lh4k15" type="password" placeholder="Password" autocomplete="current-password"/> <button type="submit" class="signin-btn svelte-lh4k15"> </button></form> <!>',1),$L=I('<form class="signin-form svelte-lh4k15"><input class="signin-input svelte-lh4k15" type="text" placeholder="Username" autocomplete="username"/> <input class="signin-input svelte-lh4k15" type="text" placeholder="Display name (optional)"/> <input class="signin-input svelte-lh4k15" type="password" placeholder="Password" autocomplete="new-password"/> <button type="submit" class="signin-btn svelte-lh4k15"> </button></form> <button type="button" class="signin-link svelte-lh4k15">Back to sign in</button>',1),eM=I('<div class="signin-error svelte-lh4k15"> </div>'),tM=I('<div class="signin-wall svelte-lh4k15"><div class="signin-card svelte-lh4k15"><h1 class="signin-brand svelte-lh4k15">SH3</h1> <!> <!></div></div>');function nM(e,t){le(t,!0);let n=B("login"),r=B(""),s=B(""),a=B(""),o=B(null),l=B(!1);async function c(){if(!i(r).trim()||!i(s).trim()||i(l))return;b(l,!0),b(o,null);const x=await qh(i(r).trim(),i(s).trim());b(l,!1),x.ok?t.onSuccess():b(o,x.error,!0)}async function u(){if(!i(r).trim()||!i(s).trim()||i(l))return;b(l,!0),b(o,null);const x=await Q0(i(r).trim(),i(s).trim(),i(a).trim()||void 0);b(l,!1),x.ok?t.onSuccess():b(o,x.error,!0)}function d(x){b(n,x,!0),b(o,null)}var f=tM(),v=p(f),m=g(p(v),2);{var S=x=>{var w=QL(),R=ke(w),A=p(R);Te(A);var D=g(A,2);Te(D);var L=g(D,2),T=p(L,!0);h(L),h(R);var C=g(R,2);{var O=M=>{var P=ZL();K("click",P,()=>d("register")),k(M,P)};H(C,M=>{t.selfRegistration&&M(O)})}N(M=>{A.disabled=i(l),D.disabled=i(l),L.disabled=M,j(T,i(l)?"Signing in...":"Sign in")},[()=>i(l)||!i(r).trim()||!i(s).trim()]),He("submit",R,M=>{M.preventDefault(),c()}),De(A,()=>i(r),M=>b(r,M)),De(D,()=>i(s),M=>b(s,M)),k(x,w)},y=x=>{var w=$L(),R=ke(w),A=p(R);Te(A);var D=g(A,2);Te(D);var L=g(D,2);Te(L);var T=g(L,2),C=p(T,!0);h(T),h(R);var O=g(R,2);N(M=>{A.disabled=i(l),D.disabled=i(l),L.disabled=i(l),T.disabled=M,j(C,i(l)?"Creating...":"Create account")},[()=>i(l)||!i(r).trim()||!i(s).trim()]),He("submit",R,M=>{M.preventDefault(),u()}),De(A,()=>i(r),M=>b(r,M)),De(D,()=>i(a),M=>b(a,M)),De(L,()=>i(s),M=>b(s,M)),K("click",O,()=>d("login")),k(x,w)};H(m,x=>{i(n)==="login"?x(S):x(y,-1)})}var _=g(m,2);{var E=x=>{var w=eM(),R=p(w,!0);h(w),N(()=>j(R,i(o))),k(x,w)};H(_,x=>{i(o)&&x(E)})}h(v),h(f),k(e,f),ce()}ge(["click"]);function rM(){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:v3(t)}}catch(n){return{error:n.message}}}function sM(e){return e.kind==="float"?{docked:e.content,floats:[]}:{docked:{type:"slot",slotId:"satellite:root",viewId:null},floats:[]}}var aM=I('<header class="sh3-satellite-tabbar svelte-191z0e1" data-sh3-region="tabbar"><!> <!> <div class="sh3-satellite-floats-slot svelte-191z0e1" aria-hidden="true"></div></header> <main class="sh3-satellite-content svelte-191z0e1" data-sh3-region="content" data-sh3-layer="0"><!></main>',1),iM=I("<div><!> <!></div>");function oM(e,t){le(t,!0),Pe(()=>{if(t.payload.kind==="float")K1(sM(t.payload).docked);else if(t.payload.kind==="app"){const c=t.payload.appId;queueMicrotask(()=>{Xn(c,{skipLastApp:!0,skipSwitchToHome:!0})})}});var n=iM();let r;var s=p(n);{var a=c=>{var u=aM(),d=ke(u),f=p(d);ym(f,{});var v=g(f,2);km(v,{}),Ot(2),h(d);var m=g(d,2),S=p(m);fs(S,{}),h(m),k(c,u)},o=c=>{fs(c,{})};H(s,c=>{t.payload.kind==="app"?c(a):c(o,-1)})}var l=g(s,2);gm(l,{}),h(n),N(()=>r=_e(n,1,"sh3-satellite-root svelte-191z0e1",null,r,{"sh3-satellite-app":t.payload.kind==="app"})),k(e,n),ce()}async function Pd(e){const t=e?.serverUrl??"",n=await CC();n.backends&&(To("workspace",n.backends.workspace),To("user",n.backends.user)),Jh(t),A3();const r=typeof e?.target=="string"?document.querySelector(e.target):e?.target??document.getElementById("app");if(!r)throw new Error("SH3: mount target not found");const s=rM();if(s){if("error"in s){r.textContent=`Invalid satellite payload: ${s.error}`;return}if(To("workspace",new sl),n.localOwner&&Cs("local"),Gu(()=>sn.activeProjectId),rd(()=>sn.activeProjectId?"project":"tenant"),e?.shards)for(const l of e.shards)Ad(l);if(e?.apps)for(const l of e.apps)Zs(l);await Dd(e?.discoveredPackages),await rR({activateShardIds:s.payload.kind==="app"?[]:s.payload.activateShards}),Yu(),Qe(oM,{target:r,props:{payload:s.payload}});return}let a=null;try{const l=await Ie(`${t}/api/boot`);l.ok&&(a=await l.json())}catch{}if(n.localOwner&&!e?.remoteAuth)a?(Do(t,a),Cs(a.tenantId)):(ex(),Cs("local"));else if(a){Do(t,a),Cs(a.tenantId);const{auth:l,session:c}=a;if(!c&&!l.guestAllowed){await lM(r,a);const u=await Ie(`${t}/api/boot`);u.ok&&(a=await u.json(),Do(t,a),Cs(a.tenantId))}}if(await Dd(e?.discoveredPackages),e?.shards)for(const l of e.shards)Ad(l);if(e?.apps)for(const l of e.apps)Zs(l);const o={};e?.excludeShards&&(o.excludeShards=e.excludeShards),await nR(o),Gu(()=>sn.activeProjectId),rd(()=>sn.activeProjectId?"project":"tenant"),Yu(),Qe(JL,{target:r})}async function Dd(e){if(e?.length)for(const t of e)try{const n=t.bundleUrl.startsWith("http://")||t.bundleUrl.startsWith("https://"),r=ft(),s=t.bundleUrl.startsWith("/")?"":"/",a=n?t.bundleUrl:`${r}${s}${t.bundleUrl}`,o=await Ie(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 Ra(l);Gc(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 lM(e,t){return new Promise(n=>{const r=Qe(nM,{target:e,props:{selfRegistration:t.auth.selfRegistration,onSuccess:()=>{ot(r),n()}}})})}var cM=I('<div class="onboarding-error svelte-c2abmw" data-role="error-banner"> </div>'),uM=I('<div class="onboarding-wall svelte-c2abmw"><div class="onboarding-card svelte-c2abmw"><h1 class="onboarding-brand svelte-c2abmw">SH3</h1> <p class="onboarding-tagline svelte-c2abmw">Connect to your SH3 server</p> <form class="onboarding-form svelte-c2abmw"><input class="onboarding-input svelte-c2abmw" name="url" type="url" placeholder="https://my.sh3.example.com" autocomplete="url"/> <input class="onboarding-input svelte-c2abmw" name="label" type="text" placeholder="Friendly name (optional)"/> <button type="submit" class="onboarding-btn svelte-c2abmw" data-action="connect"> </button></form> <div class="onboarding-divider svelte-c2abmw">or</div> <button type="button" class="onboarding-btn-secondary svelte-c2abmw" data-action="local">Run locally (limited)</button> <p class="onboarding-hint svelte-c2abmw">Local-only documents, no installed-via-server apps.</p> <!></div></div>');function dM(e,t){le(t,!0);let n=B(fe(Me(()=>t.prefillUrl))),r=B(fe(Me(()=>t.prefillLabel))),s=B(fe(Me(()=>t.error))),a=B(!1);async function o(){if(!(!i(n).trim()||i(a))){b(a,!0),b(s,null);try{const x=i(n).trim().replace(/\/$/,""),w=await fetch(`${x}/api/boot`,{credentials:"include"});if(!w.ok){b(s,"Not an SH3 server");return}let R;try{R=await w.json()}catch{b(s,"Not an SH3 server");return}if(!(!!R.auth&&typeof R.auth=="object"&&"required"in R.auth&&"guestAllowed"in R.auth&&"selfRegistration"in R.auth&&typeof R.tenantId=="string")){b(s,"Not an SH3 server");return}const D=typeof R.version=="string"?R.version:"unknown";t.onResolved({mode:"remote",url:x,label:i(r).trim()||x,version:D})}catch(x){b(s,`Could not reach ${i(n)} — ${x.message}`)}finally{b(a,!1)}}}function l(){t.onResolved({mode:"local"})}var c=uM(),u=p(c),d=g(p(u),4),f=p(d);Te(f);var v=g(f,2);Te(v);var m=g(v,2),S=p(m,!0);h(m),h(d);var y=g(d,4),_=g(y,4);{var E=x=>{var w=cM(),R=p(w,!0);h(w),N(()=>j(R,i(s))),k(x,w)};H(_,x=>{i(s)&&x(E)})}h(u),h(c),N(x=>{f.disabled=i(a),v.disabled=i(a),m.disabled=x,j(S,i(a)?"Connecting…":"Connect"),y.disabled=i(a)},[()=>i(a)||!i(n).trim()]),He("submit",d,x=>{x.preventDefault(),o()}),De(f,()=>i(n),x=>b(n,x)),De(v,()=>i(r),x=>b(r,x)),K("click",y,l),k(e,c),ce()}ge(["click"]);const eu="sh3:identity";function fM(){const e=localStorage.getItem(eu);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 jd(e){localStorage.setItem(eu,JSON.stringify(e))}function vM(){localStorage.removeItem(eu)}const zd={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(){vM(),location.reload()}})}},hM=typeof window<"u"&&("__TAURI_INTERNALS__"in window||"__TAURI__"in window),Vo=window.location.origin;async function Od(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 Nd(e){return new Promise(t=>{const n=document.getElementById("app"),r=Qe(dM,{target:n,props:{prefillUrl:e.prefillUrl,prefillLabel:e.prefillLabel,error:e.error,onResolved:s=>{ot(r),t(s)}}})})}async function pM(){if(!hM)return{identity:null,serverUrl:Vo};if(await Od(Vo))return{identity:null,serverUrl:Vo};let e=fM();e?.mode==="remote"?await Od(e.url)||(e=await Nd({prefillUrl:e.url,prefillLabel:e.label,error:`Could not reach ${e.url}`}),jd(e)):e||(e=await Nd({prefillUrl:"",prefillLabel:"",error:null}),jd(e));const t=e.mode==="remote"?e.url:"";return{identity:e,serverUrl:t}}async function mM(){const{identity:e,serverUrl:t}=await pM();if(e?.mode==="local"){Ju(new kh),await Pd({serverUrl:"",shards:[zd]});return}Jh(t),Ju(new Lx(t));let n=[];try{const r=await fetch(`${t}/api/packages`);r.ok&&(n=await r.json())}catch{}await Pd({discoveredPackages:n,serverUrl:t,remoteAuth:e?.mode==="remote",shards:e?[zd]:[]})}mM();
21
+ //# sourceMappingURL=index-CgB99H18.js.map