sh3-server 0.15.3 → 0.15.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,21 +1,21 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/tauri-backend-C83nL1gr.js","assets/index-YGsF1N98.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 tp="modulepreload",np=function(e){return"/"+e},Wl={},Zn=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=np(c),c in Wl)return;Wl[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":tp,u||(f.as="script"),f.crossOrigin="",f.href=c,l&&f.setAttribute("nonce",l),document.head.appendChild(f),u)return new Promise((h,b)=>{f.addEventListener("load",h),f.addEventListener("error",()=>b(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)})},rp=1,sp=2,hu=4,ap=8,ip=16,op=1,pu=4,lp=8,cp=16,up=1,dp=2,fp=4,Io=1,mu=2,vp=4,hp=8,La="[",za="[!",Yl="[?",Oa="]",Qn={},Pe=Symbol(),xt=Symbol("filename"),pr=Symbol("hmr"),bu="http://www.w3.org/1999/xhtml",Ts="http://www.w3.org/2000/svg",Ao="http://www.w3.org/1998/Math/MathML",gu="@attach",yu=!1;var Br=Array.isArray,pp=Array.prototype.indexOf,Rr=Array.prototype.includes,Na=Array.from,ha=Object.keys,$n=Object.defineProperty,Zt=Object.getOwnPropertyDescriptor,_u=Object.getOwnPropertyDescriptors,wu=Object.prototype,mp=Array.prototype,qa=Object.getPrototypeOf,Gl=Object.isExtensible,bp=Object.prototype.hasOwnProperty;function mr(e){return typeof e=="function"}const St=()=>{};function Xl(e){return typeof e?.then=="function"}function gp(e){return e()}function zi(e){for(var t=0;t<e.length;t++)e[t]()}function ku(){var e,t,n=new Promise((r,s)=>{e=r,t=s});return{promise:n,resolve:e,reject:t}}function yp(e,t,n=!1){return e===void 0?n?t():t:e}function xu(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 _p(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 Ze=2,er=4,Rs=8,Co=1<<24,Qt=16,en=32,xn=64,Oi=128,Nt=512,Ue=1024,Je=2048,tn=4096,lt=8192,mt=16384,En=32768,Ni=1<<25,nn=65536,vs=1<<17,Su=1<<18,Nn=1<<19,Eu=1<<20,dn=1<<25,tr=65536,qi=1<<21,Pr=1<<22,jn=1<<23,rt=Symbol("$state"),Ba=Symbol("legacy props"),wp=Symbol(""),kp=Symbol("proxy path"),xp=Symbol("hmr anchor"),ln=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},ur=!!globalThis.document?.contentType&&globalThis.document.contentType.includes("xml"),Iu=1,Ps=3,In=8,Au=11;function Cu(e){throw new Error("https://svelte.dev/e/experimental_async_required")}function Sp(){throw new Error("https://svelte.dev/e/invalid_default_snippet")}function Jl(){throw new Error("https://svelte.dev/e/invalid_snippet_arguments")}function Vr(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function Ep(){throw new Error("https://svelte.dev/e/missing_context")}function Ip(){throw new Error("https://svelte.dev/e/snippet_without_render_tag")}function Ap(e){throw new Error("https://svelte.dev/e/store_invalid_shape")}function Cp(){throw new Error("https://svelte.dev/e/svelte_element_invalid_this_value")}function Tp(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Rp(e,t){throw new Error("https://svelte.dev/e/component_api_changed")}function Pp(e,t){throw new Error("https://svelte.dev/e/component_api_invalid_new")}function jp(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Mp(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Dp(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Lp(e){throw new Error("https://svelte.dev/e/effect_orphan")}function zp(){throw new Error("https://svelte.dev/e/effect_pending_outside_reaction")}function Op(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Np(){throw new Error("https://svelte.dev/e/fork_discarded")}function qp(){throw new Error("https://svelte.dev/e/fork_timing")}function Bp(){throw new Error("https://svelte.dev/e/get_abort_signal_outside_reaction")}function Vp(){throw new Error("https://svelte.dev/e/hydration_failed")}function Tu(e){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}function Fp(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Up(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Hp(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Kp(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Wp(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}function Yp(e,t){console.warn("https://svelte.dev/e/assignment_value_stale")}function Gp(e,t){console.warn("https://svelte.dev/e/binding_property_non_reactive")}function Xp(e){console.warn("https://svelte.dev/e/console_log_state")}function Jp(){console.warn("https://svelte.dev/e/derived_inert")}function Zp(e,t){console.warn("https://svelte.dev/e/event_handler_invalid")}function Qp(e){console.warn("https://svelte.dev/e/hydratable_missing_but_expected")}function js(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function $p(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_binding")}function em(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_mutation")}function tm(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function Ru(e){console.warn("https://svelte.dev/e/state_proxy_equality_mismatch")}function nm(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let re=!1;function Te(e){re=e}let fe;function Ie(e){if(e===null)throw js(),Qn;return fe=e}function ut(){return Ie(It(fe))}function v(e){if(re){if(It(fe)!==null)throw js(),Qn;fe=e}}function rm(e){re&&(fe=e.content)}function qt(e=1){if(re){for(var t=e,n=fe;t--;)n=It(n);fe=n}}function nr(e=!0){for(var t=0,n=fe;;){if(n.nodeType===In){var r=n.data;if(r===Oa){if(t===0)return n;t-=1}else(r===La||r===za||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var s=It(n);e&&n.remove(),n=s}}function To(e){if(!e||e.nodeType!==In)throw js(),Qn;return e.data}function Pu(e){return e===this.v}function ju(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function Mu(e){return!ju(e,this.v)}let sm=!1;function am(e){console.warn("https://svelte.dev/e/dynamic_void_element_content")}const im=[];function rr(e,t=!1,n=!1){return $s(e,new Map,"",im,null,n)}function $s(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(Br(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]=$s(u,t,n,r,null,a))}return l}if(qa(e)===wu){l={},t.set(e,l),s!==null&&t.set(s,l);for(var d of Object.keys(e))l[d]=$s(e[d],t,n,r,null,a);return l}if(e instanceof Date)return structuredClone(e);if(typeof e.toJSON=="function"&&!a)return $s(e.toJSON(),t,n,r,e)}if(e instanceof EventTarget)return e;try{return structuredClone(e)}catch{return e}}let fr=null;function Du(e,t){const n=e.v;if(n===Pe)return;const r=om(e),s=ye,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&&rt in n?rr(n,!0):n),r==="$derived"){const c=new Set(e.deps);for(const u of c)Du(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 om(e){return e.f&(Ze|Pr)?"$derived":e.label?.startsWith("$")?"store":"$state"}function lm(e,t){var n=fr;try{fr={entries:new Map,reaction:ye};var r=performance.now(),s=t(),a=(performance.now()-r).toFixed(2),o=_e(e);if(!Os())console.log(`${o} %cran outside of an effect (${a}ms)`,"color: grey");else if(fr.entries.size===0)console.log(`${o} %cno reactive dependencies (${a}ms)`,"color: grey");else{console.group(`${o} %c(${a}ms)`,"color: grey");var l=fr.entries;_e(()=>{for(const[c,u]of l)Du(c,u)}),fr=null,console.groupEnd()}return s}finally{fr=n}}function cm(e,t){return e.label=t,Lu(e.v,t),e}function Lu(e,t){return e?.[kp]?.(t),e}function um(e){const t=new Error,n=dm();return n.length===0?null:(n.unshift(`
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 tp="modulepreload",np=function(e){return"/"+e},Yl={},Zn=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=np(c),c in Yl)return;Yl[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":tp,u||(f.as="script"),f.crossOrigin="",f.href=c,l&&f.setAttribute("nonce",l),document.head.appendChild(f),u)return new Promise((h,b)=>{f.addEventListener("load",h),f.addEventListener("error",()=>b(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)})},rp=1,sp=2,pu=4,ap=8,ip=16,op=1,mu=4,lp=8,cp=16,up=1,dp=2,fp=4,Io=1,bu=2,vp=4,hp=8,La="[",za="[!",Gl="[?",Oa="]",Qn={},Pe=Symbol(),xt=Symbol("filename"),pr=Symbol("hmr"),gu="http://www.w3.org/1999/xhtml",Ts="http://www.w3.org/2000/svg",Ao="http://www.w3.org/1998/Math/MathML",yu="@attach",_u=!1;var Br=Array.isArray,pp=Array.prototype.indexOf,Rr=Array.prototype.includes,Na=Array.from,ha=Object.keys,$n=Object.defineProperty,Zt=Object.getOwnPropertyDescriptor,wu=Object.getOwnPropertyDescriptors,ku=Object.prototype,mp=Array.prototype,qa=Object.getPrototypeOf,Xl=Object.isExtensible,bp=Object.prototype.hasOwnProperty;function mr(e){return typeof e=="function"}const St=()=>{};function Jl(e){return typeof e?.then=="function"}function gp(e){return e()}function zi(e){for(var t=0;t<e.length;t++)e[t]()}function xu(){var e,t,n=new Promise((r,s)=>{e=r,t=s});return{promise:n,resolve:e,reject:t}}function yp(e,t,n=!1){return e===void 0?n?t():t:e}function Su(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 _p(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 Ze=2,er=4,Rs=8,Co=1<<24,Qt=16,en=32,xn=64,Oi=128,Nt=512,Ue=1024,Je=2048,tn=4096,lt=8192,mt=16384,En=32768,Ni=1<<25,nn=65536,vs=1<<17,Eu=1<<18,Nn=1<<19,Iu=1<<20,dn=1<<25,tr=65536,qi=1<<21,Pr=1<<22,jn=1<<23,rt=Symbol("$state"),Ba=Symbol("legacy props"),wp=Symbol(""),kp=Symbol("proxy path"),xp=Symbol("hmr anchor"),ln=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},ur=!!globalThis.document?.contentType&&globalThis.document.contentType.includes("xml"),Au=1,Ps=3,In=8,Cu=11;function Tu(e){throw new Error("https://svelte.dev/e/experimental_async_required")}function Sp(){throw new Error("https://svelte.dev/e/invalid_default_snippet")}function Zl(){throw new Error("https://svelte.dev/e/invalid_snippet_arguments")}function Vr(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function Ep(){throw new Error("https://svelte.dev/e/missing_context")}function Ip(){throw new Error("https://svelte.dev/e/snippet_without_render_tag")}function Ap(e){throw new Error("https://svelte.dev/e/store_invalid_shape")}function Cp(){throw new Error("https://svelte.dev/e/svelte_element_invalid_this_value")}function Tp(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Rp(e,t){throw new Error("https://svelte.dev/e/component_api_changed")}function Pp(e,t){throw new Error("https://svelte.dev/e/component_api_invalid_new")}function jp(e,t,n){throw new Error("https://svelte.dev/e/each_key_duplicate")}function Mp(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Dp(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Lp(e){throw new Error("https://svelte.dev/e/effect_orphan")}function zp(){throw new Error("https://svelte.dev/e/effect_pending_outside_reaction")}function Op(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Np(){throw new Error("https://svelte.dev/e/fork_discarded")}function qp(){throw new Error("https://svelte.dev/e/fork_timing")}function Bp(){throw new Error("https://svelte.dev/e/get_abort_signal_outside_reaction")}function Vp(){throw new Error("https://svelte.dev/e/hydration_failed")}function Ru(e){throw new Error("https://svelte.dev/e/lifecycle_legacy_only")}function Fp(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Up(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Hp(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Kp(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function Wp(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}function Yp(e,t){console.warn("https://svelte.dev/e/assignment_value_stale")}function Gp(e,t){console.warn("https://svelte.dev/e/binding_property_non_reactive")}function Xp(e){console.warn("https://svelte.dev/e/console_log_state")}function Jp(){console.warn("https://svelte.dev/e/derived_inert")}function Zp(e,t){console.warn("https://svelte.dev/e/event_handler_invalid")}function Qp(e){console.warn("https://svelte.dev/e/hydratable_missing_but_expected")}function js(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function $p(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_binding")}function em(e,t,n,r){console.warn("https://svelte.dev/e/ownership_invalid_mutation")}function tm(){console.warn("https://svelte.dev/e/select_multiple_invalid_value")}function Pu(e){console.warn("https://svelte.dev/e/state_proxy_equality_mismatch")}function nm(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let re=!1;function Te(e){re=e}let fe;function Ie(e){if(e===null)throw js(),Qn;return fe=e}function ut(){return Ie(It(fe))}function v(e){if(re){if(It(fe)!==null)throw js(),Qn;fe=e}}function rm(e){re&&(fe=e.content)}function qt(e=1){if(re){for(var t=e,n=fe;t--;)n=It(n);fe=n}}function nr(e=!0){for(var t=0,n=fe;;){if(n.nodeType===In){var r=n.data;if(r===Oa){if(t===0)return n;t-=1}else(r===La||r===za||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(t+=1)}var s=It(n);e&&n.remove(),n=s}}function To(e){if(!e||e.nodeType!==In)throw js(),Qn;return e.data}function ju(e){return e===this.v}function Mu(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function Du(e){return!Mu(e,this.v)}let sm=!1;function am(e){console.warn("https://svelte.dev/e/dynamic_void_element_content")}const im=[];function rr(e,t=!1,n=!1){return $s(e,new Map,"",im,null,n)}function $s(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(Br(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]=$s(u,t,n,r,null,a))}return l}if(qa(e)===ku){l={},t.set(e,l),s!==null&&t.set(s,l);for(var d of Object.keys(e))l[d]=$s(e[d],t,n,r,null,a);return l}if(e instanceof Date)return structuredClone(e);if(typeof e.toJSON=="function"&&!a)return $s(e.toJSON(),t,n,r,e)}if(e instanceof EventTarget)return e;try{return structuredClone(e)}catch{return e}}let fr=null;function Lu(e,t){const n=e.v;if(n===Pe)return;const r=om(e),s=ye,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&&rt in n?rr(n,!0):n),r==="$derived"){const c=new Set(e.deps);for(const u of c)Lu(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 om(e){return e.f&(Ze|Pr)?"$derived":e.label?.startsWith("$")?"store":"$state"}function lm(e,t){var n=fr;try{fr={entries:new Map,reaction:ye};var r=performance.now(),s=t(),a=(performance.now()-r).toFixed(2),o=_e(e);if(!Os())console.log(`${o} %cran outside of an effect (${a}ms)`,"color: grey");else if(fr.entries.size===0)console.log(`${o} %cno reactive dependencies (${a}ms)`,"color: grey");else{console.group(`${o} %c(${a}ms)`,"color: grey");var l=fr.entries;_e(()=>{for(const[c,u]of l)Lu(c,u)}),fr=null,console.groupEnd()}return s}finally{fr=n}}function cm(e,t){return e.label=t,zu(e.v,t),e}function zu(e,t){return e?.[kp]?.(t),e}function um(e){const t=new Error,n=dm();return n.length===0?null:(n.unshift(`
3
3
  `),$n(t,"stack",{value:n.join(`
4
4
  `)}),$n(t,"name",{value:e}),t)}function dm(){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 Ee=null;function jr(e){Ee=e}let ea=null;function fm(e,t,n,r,s,a){const o=ea;ea={type:t,file:n[xt],line:r,column:s,parent:o,...a};try{return e()}finally{ea=o}}let Ro=null;function Zl(e){Ro=e}function vm(){const e={};return[()=>(zu(e)||Ep(),Po(e)),t=>jo(e,t)]}function Po(e){return Va().get(e)}function jo(e,t){return Va().set(e,t),t}function zu(e){return Va().has(e)}function hm(){return Va()}function ie(e,t=!1,n){Ee={p:Ee,i:!1,c:null,e:null,s:e,x:null,r:ve,l:null}}function oe(e){var t=Ee,n=t.e;if(n!==null){t.e=null;for(var r of n)ud(r)}return e!==void 0&&(t.x=e),t.i=!0,Ee=t.p,e??{}}function Ou(){return!0}function Va(e){return Ee===null&&Vr(),Ee.c??=new Map(pm(Ee)||void 0)}function pm(e){let t=e.p;for(;t!==null;){const n=t.c;if(n!==null)return n;t=t.p}return null}let Un=[];function Nu(){var e=Un;Un=[],zi(e)}function ct(e){if(Un.length===0&&!Sr){var t=Un;queueMicrotask(()=>{t===Un&&Nu()})}Un.push(e)}function mm(){for(;Un.length>0;)Nu()}function qu(e){var t=ve;if(t===null)return ye.f|=jn,e;if(!(t.f&En)&&!(t.f&er))throw e;fn(e,t)}function fn(e,t){for(;t!==null;){if(t.f&Oi){if(!(t.f&En))throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const bm=-7169;function De(e,t){e.f=e.f&bm|t}function Mo(e){e.f&Nt||e.deps===null?De(e,Ue):De(e,tn)}function Bu(e){if(e!==null)for(const t of e)!(t.f&Ze)||!(t.f&tr)||(t.f^=tr,Bu(t.deps))}function Vu(e,t,n){e.f&Je?t.add(e):e.f&tn&&n.add(e),Bu(e.deps),De(e,Ue)}function Fu(e,t,n){if(e==null)return t(void 0),St;const r=_e(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}function gm(e){let t;return Fu(e,n=>t=n)(),t}let Bi=!1,rs=!1,Vi=Symbol();function ym(e,t,n){const r=n[t]??={store:null,source:Ha(void 0),unsubscribe:St};if(r.store!==e&&!(Vi in n))if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=St;else{var s=!0;r.unsubscribe=Fu(e,a=>{s?r.source.v=a:x(r.source,a)}),s=!1}return e&&Vi in n?gm(e):i(r.source)}function _m(e,t,n){let r=n[t];return r&&r.store!==e&&(r.unsubscribe(),r.unsubscribe=St),e}function Uu(e,t){return Fa(e,t),t}function wm(e,t){var n=e[t];n.store!==null&&Uu(n.store,n.source.v)}function km(){const e={};function t(){Ct(()=>{for(var n in e)e[n].unsubscribe();$n(e,Vi,{enumerable:!1,value:!0})})}return[e,t]}function Fa(e,t){Bi=!0;try{e.set(t)}finally{Bi=!1}}function xm(e,t,n){return Fa(e,n),t}function Sm(e,t,n=1){return Fa(e,t+n),t}function Em(e,t,n=1){const r=t+n;return Fa(e,r),r}function Im(){rs=!0}function Hu(e){var t=rs;try{return rs=!1,[e(),rs]}finally{rs=t}}const yn=new Set;let me=null,ot=null,Fi=null,Sr=!1,ki=!1,_r=null,ta=null;var Ql=0;let Am=1;class Ut{id=Am++;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)De(s,Je),n(s);for(s of r.m)De(s,tn),n(s)}this.#f.add(t)}#p(){if(Ql++>1e3&&(yn.delete(this),Cm()),!this.#d()){for(const l of this.#l)this.#u.delete(l),De(l,Je),this.schedule(l);for(const l of this.#u)De(l,tn),this.schedule(l)}const t=this.#a;this.#a=[],this.apply();var n=_r=[],r=[],s=ta=[];for(const l of t)try{this.#b(l,n,r)}catch(c){throw Gu(l),c}if(me=null,s.length>0){var a=Ut.ensure();for(const l of s)a.schedule(l)}if(_r=null,ta=null,this.#d()||this.#g()){this.#m(r),this.#m(n);for(const[l,c]of this.#c)Yu(l,c)}else{this.#s.size===0&&yn.delete(this),this.#l.clear(),this.#u.clear();for(const l of this.#e)l(this);this.#e.clear(),$l(r),$l(n),this.#i?.resolve()}var o=me;if(this.#a.length>0){const l=o??=this;l.#a.push(...this.#a.filter(c=>!l.#a.includes(c)))}o!==null&&(yn.add(o),o.#p())}#b(t,n,r){t.f^=Ue;for(var s=t.first;s!==null;){var a=s.f,o=(a&(en|xn))!==0,l=o&&(a&Ue)!==0,c=l||(a&lt)!==0||this.#c.has(s);if(!c&&s.fn!==null){o?s.f^=Ue:a&er?n.push(s):Hr(s)&&(a&Qt&&this.#u.add(s),ar(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)Vu(t[n],this.#l,this.#u)}capture(t,n,r=!1){t.v!==Pe&&!this.previous.has(t)&&this.previous.set(t,t.v),t.f&jn||(this.current.set(t,[n,r]),ot?.set(t,n)),this.is_fork||(t.v=n)}activate(){me=this}deactivate(){me=null,ot=null}flush(){try{ki=!0,me=this,this.#p()}finally{Ql=0,Fi=null,_r=null,ta=null,ki=!1,me=null,ot=null,Yn.clear()}}discard(){for(const t of this.#t)t(this);this.#t.clear(),this.#n.clear(),yn.delete(this)}register_created_effect(t){this.#o.push(t)}#y(){for(const d of yn){var t=d.id<this.id,n=[];for(const[f,[h,b]]of this.current){if(d.current.has(f)){var r=d.current.get(f)[0];if(t&&h!==r)d.current.set(f,[h,b]);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,h=>{h.f&(Qt|Pr)?d.schedule(h):d.#m([h])});d.activate();var a=new Set,o=new Map;for(var l of n)Ku(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&(mt|lt|vs))&&Do(f,c,o)&&(f.f&(Pr|Qt)?(De(f,Je),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 yn)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,ct(()=>{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??=ku()).promise}static ensure(){if(me===null){const t=me=new Ut;ki||(yn.add(me),Sr||ct(()=>{me===t&&t.flush()}))}return me}apply(){{ot=null;return}}schedule(t){if(Fi=t,t.b?.is_pending&&t.f&(er|Rs|Co)&&!(t.f&En)){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var r=n.f;if(_r!==null&&n===ve&&(ye===null||!(ye.f&Ze))&&!Bi)return;if(r&(xn|en)){if(!(r&Ue))return;n.f^=Ue}}this.#a.push(n)}}function Dn(e){var t=Sr;Sr=!0;try{var n;for(e&&(me!==null&&!me.is_fork&&me.flush(),n=e());;){if(mm(),me===null)return n;me.flush()}}finally{Sr=t}}function Cm(){try{Op()}catch(e){fn(e,Fi)}}let _n=null;function $l(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&(mt|lt))&&Hr(r)&&(_n=new Set,ar(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&md(r),_n?.size>0)){Yn.clear();for(const s of _n){if(s.f&(mt|lt))continue;const a=[s];let o=s.parent;for(;o!==null;)_n.has(o)&&(_n.delete(o),a.push(o)),o=o.parent;for(let l=a.length-1;l>=0;l--){const c=a[l];c.f&(mt|lt)||ar(c)}}_n.clear()}}_n=null}}function Ku(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&Ze?Ku(s,t,n,r):a&(Pr|Qt)&&!(a&Je)&&Do(s,t,r)&&(De(s,Je),Lo(s))}}function Wu(e,t){if(e.reactions!==null)for(const n of e.reactions){const r=n.f;r&Ze?Wu(n,t):r&vs&&(De(n,Je),t.add(n))}}function Do(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(Rr.call(t,s))return!0;if(s.f&Ze&&Do(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function Lo(e){me.schedule(e)}let pa=[];function Tm(){Dn(()=>{const e=pa;pa=[];for(const t of e)Mr(t)})}function Rm(e){var t=gt(0),n=!0,r=void 0;return i(t),fd(()=>{if(n){var s=ot;try{ot=null,r=e()}finally{ot=s}return}pa.length===0&&ct(Tm),pa.push(t)}),n=!1,r}function Yu(e,t){if(!(e.f&en&&e.f&Ue)){e.f&Je?t.d.push(e):e.f&tn&&t.m.push(e),De(e,Ue);for(var n=e.first;n!==null;)Yu(n,t),n=n.next}}function Gu(e){De(e,Ue);for(var t=e.first;t!==null;)Gu(t),t=t.next}function Pm(e){Cu(),me!==null&&qp();var t=Ut.ensure();t.is_fork=!0,ot=new Map;var n=!1,r=t.settled();return Dn(e),{commit:async()=>{if(n){await r;return}yn.has(t)||Np(),n=!0,t.is_fork=!1;for(var[s,[a]]of t.current)s.v=a,s.wv=ba();t.activate(),t.run_fork_commit_callbacks(),t.deactivate(),Dn(()=>{var o=new Set;for(var l of t.current.keys())Wu(l,o);Fm(o),td()}),t.flush(),await r},discard:()=>{for(var s of t.current.keys())s.wv=ba();!n&&yn.has(t)&&t.discard()}}}function jm(e){let t=0,n=gt(0),r;return()=>{Os()&&(i(n),Ve(()=>(t===0&&(r=_e(()=>e(()=>cn(n)))),t+=1,()=>{ct(()=>{t-=1,t===0&&(r?.(),r=void 0,cn(n))})})))}}var Mm=nn|Nn;function Xu(e,t,n,r){new Dm(e,t,n,r)}class Dm{parent;is_pending=!1;transform_error;#e;#t=re?fe: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=jm(()=>(this.#d=gt(this.#u),()=>{this.#d=null}));constructor(t,n,r,s){this.#e=t,this.#n=n,this.#s=a=>{var o=ve;o.b=this,o.f|=Oi,r(a)},this.parent=ve.b,this.transform_error=s??this.parent?.transform_error??(a=>a),this.#r=gn(()=>{if(re){const a=this.#t;ut();const o=a.data===za;if(a.data.startsWith(Yl)){const c=JSON.parse(a.data.slice(Yl.length));this.#b(c)}else o?this.#m():this.#p()}else this.#y()},Mm),re&&(this.#e=fe)}#p(){try{this.#i=it(()=>this.#s(this.#e))}catch(t){this.error(t)}}#b(t){const n=this.#n.failed;n&&(this.#o=it(()=>{n(this.#e,()=>t,()=>()=>{})}))}#m(){const t=this.#n.pending;t&&(this.is_pending=!0,this.#a=it(()=>t(this.#e)),ct(()=>{var n=this.#l=document.createDocumentFragment(),r=$e();n.append(r),this.#i=this.#w(()=>it(()=>this.#s(r))),this.#c===0&&(this.#e.before(n),this.#l=null,Gn(this.#a,()=>{this.#a=null}),this.#_(me))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#c=0,this.#u=0,this.#i=it(()=>{this.#s(this.#e)}),this.#c>0){var t=this.#l=document.createDocumentFragment();Ho(this.#i,t);const n=this.#n.pending;this.#a=it(()=>n(this.#e))}else this.#_(me)}catch(n){this.error(n)}}#_(t){this.is_pending=!1,t.transfer_effects(this.#h,this.#v)}defer_effect(t){Vu(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=ve,r=ye,s=Ee;st(this.#r),yt(this.#r),jr(this.#r.ctx);try{return Ut.ensure(),t()}catch(a){return qu(a),null}finally{st(n),yt(r),jr(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&&Gn(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,ct(()=>{this.#f=!1,this.#d&&hn(this.#d,this.#u)}))}get_effect_pending(){return this.#g(),i(this.#d)}error(t){if(!this.#n.onerror&&!this.#n.failed)throw t;me?.is_fork?(this.#i&&me.skip_effect(this.#i),this.#a&&me.skip_effect(this.#a),this.#o&&me.skip_effect(this.#o),me.on_fork_commit(()=>{this.#x(t)})):this.#x(t)}#x(t){this.#i&&(We(this.#i),this.#i=null),this.#a&&(We(this.#a),this.#a=null),this.#o&&(We(this.#o),this.#o=null),re&&(Ie(this.#t),qt(),Ie(nr()));var n=this.#n.onerror;let r=this.#n.failed;var s=!1,a=!1;const o=()=>{if(s){nm();return}s=!0,a&&Wp(),this.#o!==null&&Gn(this.#o,()=>{this.#o=null}),this.#w(()=>{this.#y()})},l=c=>{try{a=!0,n?.(c,o),a=!1}catch(u){fn(u,this.#r&&this.#r.parent)}r&&(this.#o=this.#w(()=>{try{return it(()=>{var u=ve;u.b=this,u.f|=Oi,r(this.#e,()=>c,()=>o)})}catch(u){return fn(u,this.#r.parent),null}}))};ct(()=>{var c;try{c=this.transform_error(t)}catch(u){fn(u,this.#r&&this.#r.parent);return}c!==null&&typeof c=="object"&&typeof c.then=="function"?c.then(l,u=>fn(u,this.#r&&this.#r.parent)):l(c)})}}function Lm(){ve===null&&zp();var e=ve.b;return e===null?0:e.get_effect_pending()}function Ms(e,t,n,r){const s=Ls;var a=e.filter(h=>!h.settled);if(n.length===0&&a.length===0){r(t.map(s));return}var o=ve,l=Ua(),c=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(h=>h.promise)):null;function u(h){l();try{r(h)}catch(b){o.f&mt||fn(b,o)}sr()}if(n.length===0){c.then(()=>u(t.map(s)));return}var d=Ds();function f(){Promise.all(n.map(h=>Zu(h))).then(h=>u([...t.map(s),...h])).catch(h=>fn(h,o)).finally(()=>d())}c?c.then(()=>{l(),f(),sr()}):f()}function Ju(e,t){Ms(e,[],[],t)}function Ua(){var e=ve,t=ye,n=Ee,r=me;return function(a=!0){st(e),yt(t),jr(n),a&&!(e.f&mt)&&(r?.activate(),r?.apply())}}async function zm(e){var t=Ua(),n=await e;return()=>(t(),n)}async function Ui(e){var t=os;queueMicrotask(()=>{os===t&&na(null)});var n=await e;return()=>(na(t),queueMicrotask(()=>{os===t&&na(null)}),n)}async function*Om(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 Ui(t.next()))();if(s){n=!0;break}var r=os;yield a,na(r)}}finally{if(!n&&t.return!==void 0)return(await Ui(t.return()))().value}}function sr(e=!0){st(null),yt(null),jr(null),e&&me?.deactivate()}function Nm(e){const t=Ua(),n=Ds();var r=ve,s=null;const a=u=>{s={error:u},Wi(r)||fn(u,r)};var o=Promise.resolve(e[0]()).catch(a),l={promise:o,settled:!1},c=[l];o.finally(()=>{l.settled=!0,sr()});for(const u of e.slice(1)){o=o.then(()=>{if(t(),s)throw s.error;if(Wi(r))throw ln;return u()}).catch(a);const d={promise:o,settled:!1};c.push(d),o.finally(()=>{d.settled=!0,sr()})}return o.then(()=>Promise.resolve()).finally(()=>n()),c}function qm(e){return Promise.all(e.map(t=>t.promise))}function Ds(){var e=ve,t=e.b,n=me,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 na(e){os=e}function Ls(e){var t=Ze|Je;return ve!==null&&(ve.f|=Nn),{ctx:Ee,deps:null,effects:null,equals:Pu,f:t,fn:e,reactions:null,rv:0,v:Pe,wv:0,parent:ve,ac:null}}function Zu(e,t,n){let r=ve;r===null&&Tp();var s=void 0,a=gt(Pe),o=!ye,l=new Map;return $m(()=>{var c=ve,u=ku();s=u.promise;try{Promise.resolve(e()).then(u.resolve,u.reject).finally(sr)}catch(b){u.reject(b),sr()}var d=me;if(o){if(c.f&En)var f=Ds();if(r.b.is_rendered())l.get(d)?.reject(ln),l.delete(d);else{for(const b of l.values())b.reject(ln);l.clear()}l.set(d,u)}const h=(b,S=void 0)=>{if(f){var _=S===ln;f(_)}if(!(S===ln||c.f&mt)){if(d.activate(),S)a.f|=jn,hn(a,S);else{a.f&jn&&(a.f^=jn),hn(a,b);for(const[y,E]of l){if(l.delete(y),y===d)break;E.reject(ln)}}d.deactivate()}};u.promise.then(h,b=>h(null,b||"unknown"))}),Ct(()=>{for(const c of l.values())c.reject(ln)}),new Promise(c=>{function u(d){function f(){d===s?c(a):u(s)}d.then(f,f)}u(s)})}function H(e){const t=Ls(e);return yd(t),t}function zo(e){const t=Ls(e);return t.equals=Mu,t}function Bm(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)We(t[n])}}function Oo(e){var t,n=ve,r=e.parent;if(!Sn&&r!==null&&r.f&(mt|lt))return Jp(),e.v;st(r);try{e.f&=~tr,Bm(e),t=kd(e)}finally{st(n)}return t}function Qu(e){var t=Oo(e);if(!e.equals(t)&&(e.wv=ba(),(!me?.is_fork||e.deps===null)&&(me!==null?me.capture(e,t,!0):e.v=t,e.deps===null))){De(e,Ue);return}Sn||(ot!==null?(Os()||me?.is_fork)&&ot.set(e,t):Mo(e))}function Vm(e){if(e.effects!==null)for(const t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(ln),t.teardown=St,t.ac=null,hs(t,0),Fo(t))}function $u(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&ar(t)}let ma=new Set;const Yn=new Map;function Fm(e){ma=e}let ed=!1;function gt(e,t){var n={f:0,v:e,reactions:null,equals:Pu,rv:0,wv:0};return n}function F(e,t){const n=gt(e);return yd(n),n}function Ha(e,t=!1,n=!0){const r=gt(e);return t||(r.equals=Mu),r}function Um(e,t){return x(e,_e(()=>i(e))),t}function x(e,t,n=!1){ye!==null&&(!Jt||ye.f&vs)&&Ou()&&ye.f&(Ze|Qt|Pr|vs)&&(Bt===null||!Rr.call(Bt,e))&&Kp();let r=n?le(t):t;return hn(e,r,ta)}function hn(e,t,n=null){if(!e.equals(t)){Yn.set(e,Sn?t:e.v);var r=Ut.ensure();if(r.capture(e,t),e.f&Ze){const s=e;e.f&Je&&Oo(s),ot===null&&Mo(s)}e.wv=ba(),nd(e,Je,n),ve!==null&&ve.f&Ue&&!(ve.f&(en|xn))&&(Lt===null?sb([e]):Lt.push(e)),!r.is_fork&&ma.size>0&&!ed&&td()}return t}function td(){ed=!1;for(const e of ma)e.f&Ue&&De(e,tn),Hr(e)&&ar(e);ma.clear()}function Mr(e,t=1){var n=i(e),r=t===1?n++:n--;return x(e,n),r}function Hm(e,t=1){var n=i(e);return x(e,t===1?++n:--n)}function cn(e){x(e,e.v+1)}function nd(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&Je)===0;if(c&&De(o,t),l&Ze){var u=o;ot?.delete(u),l&tr||(l&Nt&&(o.f|=tr),nd(u,tn,n))}else if(c){var d=o;l&Qt&&_n!==null&&_n.add(d),n!==null?n.push(d):Lo(d)}}}function le(e){if(typeof e!="object"||e===null||rt in e)return e;const t=qa(e);if(t!==wu&&t!==mp)return e;var n=new Map,r=Br(e),s=F(0),a=wn,o=l=>{if(wn===a)return l();var c=ye,u=wn;yt(null),nc(a);var d=l();return yt(c),nc(u),d};return r&&n.set("length",F(e.length)),new Proxy(e,{defineProperty(l,c,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&Up();var d=n.get(c);return d===void 0?o(()=>{var f=F(u.value);return n.set(c,f),f}):x(d,u.value,!0),!0},deleteProperty(l,c){var u=n.get(c);if(u===void 0){if(c in l){const d=o(()=>F(Pe));n.set(c,d),cn(s)}}else x(u,Pe),cn(s);return!0},get(l,c,u){if(c===rt)return e;var d=n.get(c),f=c in l;if(d===void 0&&(!f||Zt(l,c)?.writable)&&(d=o(()=>{var b=le(f?l[c]:Pe),S=F(b);return S}),n.set(c,d)),d!==void 0){var h=i(d);return h===Pe?void 0:h}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),h=f?.v;if(f!==void 0&&h!==Pe)return{enumerable:!0,configurable:!0,value:h,writable:!0}}return u},has(l,c){if(c===rt)return!0;var u=n.get(c),d=u!==void 0&&u.v!==Pe||Reflect.has(l,c);if(u!==void 0||ve!==null&&(!d||Zt(l,c)?.writable)){u===void 0&&(u=o(()=>{var h=d?le(l[c]):Pe,b=F(h);return b}),n.set(c,u));var f=i(u);if(f===Pe)return!1}return d},set(l,c,u,d){var f=n.get(c),h=c in l;if(r&&c==="length")for(var b=u;b<f.v;b+=1){var S=n.get(b+"");S!==void 0?x(S,Pe):b in l&&(S=o(()=>F(Pe)),n.set(b+"",S))}if(f===void 0)(!h||Zt(l,c)?.writable)&&(f=o(()=>F(void 0)),x(f,le(u)),n.set(c,f));else{h=f.v!==Pe;var _=o(()=>le(u));x(f,_)}var y=Reflect.getOwnPropertyDescriptor(l,c);if(y?.set&&y.set.call(d,u),!h){if(r&&typeof c=="string"){var E=n.get("length"),g=Number(c);Number.isInteger(g)&&g>=E.v&&x(E,g+1)}cn(s)}return!0},ownKeys(l){i(s);var c=Reflect.ownKeys(l).filter(f=>{var h=n.get(f);return h===void 0||h.v!==Pe});for(var[u,d]of n)d.v!==Pe&&!(u in l)&&c.push(u);return c},setPrototypeOf(){Hp()}})}function Dr(e){try{if(e!==null&&typeof e=="object"&&rt in e)return e[rt]}catch{}return e}function rd(e,t){return Object.is(Dr(e),Dr(t))}function Km(e,t,n=!0){try{e===t!=(Dr(e)===Dr(t))&&Ru(n?"===":"!==")}catch{}return e===t===n}function Wm(e,t,n=!0){return e==t!=(Dr(e)==Dr(t))&&Ru(),e==t===n}var Hi,sd,No,ad,id;function Ki(){if(Hi===void 0){Hi=window,sd=document,No=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;ad=Zt(t,"firstChild").get,id=Zt(t,"nextSibling").get,Gl(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),Gl(n)&&(n.__t=void 0)}}function $e(e=""){return document.createTextNode(e)}function je(e){return ad.call(e)}function It(e){return id.call(e)}function p(e,t){if(!re)return je(e);var n=je(fe);if(n===null)n=fe.appendChild($e());else if(t&&n.nodeType!==Ps){var r=$e();return n?.before(r),Ie(r),r}return t&&Ka(n),Ie(n),n}function he(e,t=!1){if(!re){var n=je(e);return n instanceof Comment&&n.data===""?It(n):n}if(t){if(fe?.nodeType!==Ps){var r=$e();return fe?.before(r),Ie(r),r}Ka(fe)}return fe}function w(e,t=1,n=!1){let r=re?fe:e;for(var s;t--;)s=r,r=It(r);if(!re)return r;if(n){if(r?.nodeType!==Ps){var a=$e();return r===null?s?.after(a):r.before(a),Ie(a),a}Ka(r)}return Ie(r),r}function qo(e){e.textContent=""}function od(){return!1}function qn(e,t,n){let r=n?{is:n}:void 0;return document.createElementNS(t??bu,e,r)}function Ym(){return document.createDocumentFragment()}function ld(e=""){return document.createComment(e)}function Gm(e,t,n=""){if(t.startsWith("xlink:")){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n);return}return e.setAttribute(t,n)}function Ka(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===Ps;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function Fr(e,t){if(t){const n=document.body;e.autofocus=!0,ct(()=>{document.activeElement===n&&e.focus()})}}function Bo(e){re&&je(e)!==null&&qo(e)}let ec=!1;function cd(){ec||(ec=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function _t(e,t,n,r=!0){r&&n();for(var s of t)e.addEventListener(s,n);Ct(()=>{for(var a of t)e.removeEventListener(a,n)})}function Bn(e){var t=ye,n=ve;yt(null),st(null);try{return e()}finally{yt(t),st(n)}}function zs(e,t,n,r=n){e.addEventListener(t,()=>Bn(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),cd()}function Vo(e){ve===null&&(ye===null&&Lp(),Dp()),Sn&&Mp()}function Xm(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function wt(e,t){var n=ve;n!==null&&n.f&lt&&(e|=lt);var r={ctx:Ee,deps:null,nodes:null,f:e|Je|Nt,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};me?.register_created_effect(r);var s=r;if(e&er)_r!==null?_r.push(r):Ut.ensure().schedule(r);else if(t!==null){try{ar(r)}catch(o){throw We(r),o}s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&!(s.f&Nn)&&(s=s.first,e&Qt&&e&nn&&s!==null&&(s.f|=nn))}if(s!==null&&(s.parent=n,n!==null&&Xm(s,n),ye!==null&&ye.f&Ze&&!(e&xn))){var a=ye;(a.effects??=[]).push(s)}return r}function Os(){return ye!==null&&!Jt}function Ct(e){const t=wt(Rs,null);return De(t,Ue),t.teardown=e,t}function xe(e){Vo();var t=ve.f,n=!ye&&(t&en)!==0&&(t&En)===0;if(n){var r=Ee;(r.e??=[]).push(e)}else return ud(e)}function ud(e){return wt(er|Eu,e)}function dd(e){return Vo(),wt(Rs|Eu,e)}function fd(e){return wt(vs,e)}function Ur(e){Ut.ensure();const t=wt(xn|Nn,e);return()=>{We(t)}}function Jm(e){Ut.ensure();const t=wt(xn|Nn,e);return(n={})=>new Promise(r=>{n.outro?Gn(t,()=>{We(t),r(void 0)}):(We(t),r(void 0))})}function At(e){return wt(er,e)}function Zm(e,t){var n=Ee,r={effect:null,ran:!1,deps:e};n.l.$.push(r),r.effect=Ve(()=>{if(e(),!r.ran){r.ran=!0;var s=ve;try{st(s.parent),_e(t)}finally{st(s)}}})}function Qm(){var e=Ee;Ve(()=>{for(var t of e.l.$){t.deps();var n=t.effect;n.f&Ue&&n.deps!==null&&De(n,tn),Hr(n)&&ar(n),t.ran=!1}})}function $m(e){return wt(Pr|Nn,e)}function Ve(e,t=0){return wt(Rs|t,e)}function N(e,t=[],n=[],r=[]){Ms(r,t,n,s=>{wt(Rs,()=>e(...s.map(i)))})}function eb(e,t=[],n=[],r=[]){if(n.length>0||r.length>0)var s=Ds();Ms(r,t,n,a=>{wt(er,()=>e(...a.map(i))),s&&s()})}function gn(e,t=0){var n=wt(Qt|t,e);return n}function vd(e,t=0){var n=wt(Co|t,e);return n}function it(e){return wt(en|Nn,e)}function hd(e){var t=e.teardown;if(t!==null){const n=Sn,r=ye;tc(!0),yt(null);try{t.call(null)}finally{tc(n),yt(r)}}}function Fo(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&Bn(()=>{s.abort(ln)});var r=n.next;n.f&xn?n.parent=null:We(n,t),n=r}}function tb(e){for(var t=e.first;t!==null;){var n=t.next;t.f&en||We(t),t=n}}function We(e,t=!0){var n=!1;(t||e.f&Su)&&e.nodes!==null&&e.nodes.end!==null&&(pd(e.nodes.start,e.nodes.end),n=!0),De(e,Ni),Fo(e,t&&!n),hs(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const a of r)a.stop();hd(e),e.f^=Ni,e.f|=mt;var s=e.parent;s!==null&&s.first!==null&&md(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function pd(e,t){for(;e!==null;){var n=e===t?null:It(e);e.remove(),e=n}}function md(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 Gn(e,t,n=!0){var r=[];bd(e,r,!0);var s=()=>{n&&We(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||s();for(var l of r)l.out(o)}else s()}function bd(e,t,n){if(!(e.f&lt)){e.f^=lt;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&xn)){var o=(s.f&nn)!==0||(s.f&en)!==0&&(e.f&Qt)!==0;bd(s,t,o?n:!1)}s=a}}}function Uo(e){gd(e,!0)}function gd(e,t){if(e.f&lt){e.f^=lt,e.f&Ue||(De(e,Je),Ut.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&nn)!==0||(n.f&en)!==0;gd(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 Wi(e=ve){return(e.f&mt)!==0}function Ho(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:It(n);t.append(n),n=s}}let br=null;function nb(e){var t=br;try{if(br=new Set,_e(e),t!==null)for(var n of br)t.add(n);return br}finally{br=t}}function rb(e){for(var t of nb(e))hn(t,t.v)}let ra=!1,Sn=!1;function tc(e){Sn=e}let ye=null,Jt=!1;function yt(e){ye=e}let ve=null;function st(e){ve=e}let Bt=null;function yd(e){ye!==null&&(Bt===null?Bt=[e]:Bt.push(e))}let vt=null,kt=0,Lt=null;function sb(e){Lt=e}let _d=1,Hn=0,wn=Hn;function nc(e){wn=e}function ba(){return++_d}function Hr(e){var t=e.f;if(t&Je)return!0;if(t&Ze&&(e.f&=~tr),t&tn){for(var n=e.deps,r=n.length,s=0;s<r;s++){var a=n[s];if(Hr(a)&&Qu(a),a.wv>e.wv)return!0}t&Nt&&ot===null&&De(e,Ue)}return!1}function wd(e,t,n=!0){var r=e.reactions;if(r!==null&&!(Bt!==null&&Rr.call(Bt,e)))for(var s=0;s<r.length;s++){var a=r[s];a.f&Ze?wd(a,t,!1):t===a&&(n?De(a,Je):a.f&Ue&&De(a,tn),Lo(a))}}function kd(e){var t=vt,n=kt,r=Lt,s=ye,a=Bt,o=Ee,l=Jt,c=wn,u=e.f;vt=null,kt=0,Lt=null,ye=u&(en|xn)?null:e,Bt=null,jr(e.ctx),Jt=!1,wn=++Hn,e.ac!==null&&(Bn(()=>{e.ac.abort(ln)}),e.ac=null);try{e.f|=qi;var d=e.fn,f=d();e.f|=En;var h=e.deps,b=me?.is_fork;if(vt!==null){var S;if(b||hs(e,kt),h!==null&&kt>0)for(h.length=kt+vt.length,S=0;S<vt.length;S++)h[kt+S]=vt[S];else e.deps=h=vt;if(Os()&&e.f&Nt)for(S=kt;S<h.length;S++)(h[S].reactions??=[]).push(e)}else!b&&h!==null&&kt<h.length&&(hs(e,kt),h.length=kt);if(Ou()&&Lt!==null&&!Jt&&h!==null&&!(e.f&(Ze|tn|Je)))for(S=0;S<Lt.length;S++)wd(Lt[S],e);if(s!==null&&s!==e){if(Hn++,s.deps!==null)for(let _=0;_<n;_+=1)s.deps[_].rv=Hn;if(t!==null)for(const _ of t)_.rv=Hn;Lt!==null&&(r===null?r=Lt:r.push(...Lt))}return e.f&jn&&(e.f^=jn),f}catch(_){return qu(_)}finally{e.f^=qi,vt=t,kt=n,Lt=r,ye=s,Bt=a,jr(o),Jt=l,wn=c}}function ab(e,t){let n=t.reactions;if(n!==null){var r=pp.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&Ze&&(vt===null||!Rr.call(vt,t))){var a=t;a.f&Nt&&(a.f^=Nt,a.f&=~tr),a.v!==Pe&&Mo(a),Vm(a),hs(a,0)}}function hs(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)ab(e,n[r])}function ar(e){var t=e.f;if(!(t&mt)){De(e,Ue);var n=ve,r=ra;ve=e,ra=!0;try{t&(Qt|Co)?tb(e):Fo(e),hd(e);var s=kd(e);e.teardown=typeof s=="function"?s:null,e.wv=_d;var a;yu&&sm&&e.f&Je&&e.deps}finally{ra=r,ve=n}}}async function Ns(){await Promise.resolve(),Dn()}function ib(){return Ut.ensure().settled()}function i(e){var t=e.f,n=(t&Ze)!==0;if(br?.add(e),ye!==null&&!Jt){var r=ve!==null&&(ve.f&mt)!==0;if(!r&&(Bt===null||!Rr.call(Bt,e))){var s=ye.deps;if(ye.f&qi)e.rv<Hn&&(e.rv=Hn,vt===null&&s!==null&&s[kt]===e?kt++:vt===null?vt=[e]:vt.push(e));else{(ye.deps??=[]).push(e);var a=e.reactions;a===null?e.reactions=[ye]:Rr.call(a,ye)||a.push(ye)}}}if(Sn&&Yn.has(e))return Yn.get(e);if(n){var o=e;if(Sn){var l=o.v;return(!(o.f&Ue)&&o.reactions!==null||Sd(o))&&(l=Oo(o)),Yn.set(o,l),l}var c=(o.f&Nt)===0&&!Jt&&ye!==null&&(ra||(ye.f&Nt)!==0),u=(o.f&En)===0;Hr(o)&&(c&&(o.f|=Nt),Qu(o)),c&&!u&&($u(o),xd(o))}if(ot?.has(e))return ot.get(e);if(e.f&jn)throw e.v;return e.v}function xd(e){if(e.f|=Nt,e.deps!==null)for(const t of e.deps)(t.reactions??=[]).push(e),t.f&Ze&&!(t.f&Nt)&&($u(t),xd(t))}function Sd(e){if(e.v===Pe)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(Yn.has(t)||t.f&Ze&&Sd(t))return!0;return!1}function ob(e){return e&&i(e)}function _e(e){var t=Jt;try{return Jt=!0,e()}finally{Jt=t}}function Ko(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if(rt in e)ga(e);else if(!Array.isArray(e))for(let t in e){const n=e[t];typeof n=="object"&&n&&rt in n&&ga(n)}}}function ga(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{ga(e[r],t)}catch{}const n=qa(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){const r=_u(n);for(let s in r){const a=r[s].get;if(a)try{a.call(e)}catch{}}}}}function lb(e,t){if(Cu(),re){const n=window.__svelte?.h;if(n?.has(e))return n.get(e);Qp()}return t()}const ss=Symbol("events"),Ed=new Set,Yi=new Set;function cb(e){if(!re)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 Id(e,t,n,r={}){function s(a){if(r.capture||Gi.call(t,a),!a.cancelBubble)return Bn(()=>n?.call(this,a))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?ct(()=>{t.addEventListener(e,s,r)}):t.addEventListener(e,s,r),s}function Re(e,t,n,r,s){var a={capture:r,passive:s},o=Id(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&Ct(()=>{t.removeEventListener(e,o,a)})}function U(e,t,n){(t[ss]??={})[e]=n}function ce(e){for(var t=0;t<e.length;t++)Ed.add(e[t]);for(var n of Yi)n(e)}let rc=null;function Gi(e){var t=this,n=t.ownerDocument,r=e.type,s=e.composedPath?.()||[],a=s[0]||e.target;rc=e;var o=0,l=rc===e&&e[ss];if(l){var c=s.indexOf(l);if(c!==-1&&(t===document||t===window)){e[ss]=t;return}var u=s.indexOf(t);if(u===-1)return;c<=u&&(o=c)}if(a=s[o]||e.target,a!==t){$n(e,"currentTarget",{configurable:!0,get(){return a||n}});var d=ye,f=ve;yt(null),st(null);try{for(var h,b=[];a!==null;){var S=a.assignedSlot||a.parentNode||a.host||null;try{var _=a[ss]?.[r];_!=null&&(!a.disabled||e.target===a)&&_.call(a,e)}catch(y){h?b.push(y):h=y}if(e.cancelBubble||S===t||S===null)break;a=S}if(h){for(let y of b)queueMicrotask(()=>{throw y});throw h}}finally{e[ss]=t,delete e.currentTarget,yt(d),st(f)}}}function ub(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?.[xt];s?`${u}${s[0]}${s[1]}`:`${u}`;const d=n[0]?.eventPhase<Event.BUBBLING_PHASE?"capture":"";if(n[0]?.type+d,Zp(),c)throw c}l?.apply(t,n)}const db=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function Ad(e){return db?.createHTML(e)??e}function Wo(e){var t=qn("template");return t.innerHTML=Ad(e.replaceAll("<!>","<!---->")),t.content}const fb=ur?"template":"TEMPLATE",vb=ur?"script":"SCRIPT";function Ye(e,t){var n=ve;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function A(e,t){var n=(t&Io)!==0,r=(t&mu)!==0,s,a=!e.startsWith("<!>");return()=>{if(re)return Ye(fe,null),fe;s===void 0&&(s=Wo(a?e:"<!>"+e),n||(s=je(s)));var o=r||No?document.importNode(s,!0):s.cloneNode(!0);if(n){var l=je(o),c=o.lastChild;Ye(l,c)}else Ye(o,o);return o}}function Cd(e,t,n="svg"){var r=!e.startsWith("<!>"),s=(t&Io)!==0,a=`<${n}>${r?e:"<!>"+e}</${n}>`,o;return()=>{if(re)return Ye(fe,null),fe;if(!o){var l=Wo(a),c=je(l);if(s)for(o=document.createDocumentFragment();je(c);)o.appendChild(je(c));else o=je(c)}var u=o.cloneNode(!0);if(s){var d=je(u),f=u.lastChild;Ye(d,f)}else Ye(u,u);return u}}function Yo(e,t){return Cd(e,t,"svg")}function hb(e,t){return Cd(e,t,"math")}function Td(e,t){var n=Ym();for(var r of e){if(typeof r=="string"){n.append($e(r));continue}if(r===void 0||r[0][0]==="/"){n.append(ld(r?r[0].slice(3):""));continue}const[l,c,...u]=r,d=l==="svg"?Ts:l==="math"?Ao:t;var s=qn(l,d,c?.is);for(var a in c)Gm(s,a,c[a]);if(u.length>0){var o=s.nodeName===fb?s.content:s;o.append(Td(u,s.nodeName==="foreignObject"?void 0:d))}n.append(s)}return n}function pb(e,t){var n=(t&Io)!==0,r=(t&mu)!==0,s;return()=>{if(re)return Ye(fe,null),fe;if(s===void 0){const c=t&vp?Ts:t&hp?Ao:void 0;s=Td(e,c),n||(s=je(s))}var a=r||No?document.importNode(s,!0):s.cloneNode(!0);if(n){var o=je(a),l=a.lastChild;Ye(o,l)}else Ye(a,a);return a}}function mb(e){return()=>bb(e())}function bb(e){if(re)return e;const t=e.nodeType===Au,n=e.nodeName===vb?[e]:e.querySelectorAll("script"),r=ve;for(const a of n){const o=qn("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 $t(e=""){if(!re){var t=$e(e+"");return Ye(t,t),t}var n=fe;return n.nodeType!==Ps?(n.before(n=$e()),Ie(n)):Ka(n),Ye(n,n),n}function Be(){if(re)return Ye(fe,null),fe;var e=document.createDocumentFragment(),t=document.createComment(""),n=$e();return e.append(t,n),Ye(t,n),e}function k(e,t){if(re){var n=ve;(!(n.f&En)||n.nodes.end===null)&&(n.nodes.end=fe),ut();return}e!==null&&e.before(t)}function gb(){if(re&&fe&&fe.nodeType===In&&fe.textContent?.startsWith("$")){const e=fe.textContent.substring(1);return ut(),e}return(window.__svelte??={}).uid??=1,`c${window.__svelte.uid++}`}const yb=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function _b(e){return yb.includes(e)||e.toLowerCase()==="!doctype"}function wb(e){return e.endsWith("capture")&&e!=="gotpointercapture"&&e!=="lostpointercapture"}const kb=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function xb(e){return kb.includes(e)}const Sb={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 Eb(e){return e=e.toLowerCase(),Sb[e]??e}const Ib=["touchstart","touchmove"];function Ab(e){return Ib.includes(e)}const Cb=["textarea","script","style","title"];function Tb(e){return Cb.includes(e)}function Rd(e){return e?.replace(/\//g,"/​")}let ya=!0;function wr(e){ya=e}function z(e,t){var n=t==null?"":typeof t=="object"?`${t}`:t;n!==(e.__t??=e.nodeValue)&&(e.__t=n,e.nodeValue=`${n}`)}function qe(e,t){return jd(e,t)}function Pd(e,t){Ki(),t.intro=t.intro??!1;const n=t.target,r=re,s=fe;try{for(var a=je(n);a&&(a.nodeType!==In||a.data!==La);)a=It(a);if(!a)throw Qn;Te(!0),Ie(a);const o=jd(e,{...t,anchor:a});return Te(!1),o}catch(o){if(o instanceof Error&&o.message.split(`
6
- `).some(l=>l.startsWith("https://svelte.dev/e/")))throw o;return o!==Qn&&console.warn("Failed to hydrate: ",o),t.recover===!1&&Vp(),Ki(),qo(n),Te(!1),qe(e,t)}finally{Te(r),Ie(s)}}const Zs=new Map;function jd(e,{target:t,anchor:n,props:r={},events:s,context:a,intro:o=!0,transformError:l}){Ki();var c=void 0,u=Jm(()=>{var d=n??t.appendChild($e());Xu(d,{pending:()=>{}},b=>{ie({});var S=Ee;if(a&&(S.c=a),s&&(r.$$events=s),re&&Ye(b,null),ya=o,c=e(b,r)||{},ya=!0,re&&(ve.nodes.end=fe,fe===null||fe.nodeType!==In||fe.data!==Oa))throw js(),Qn;oe()},l);var f=new Set,h=b=>{for(var S=0;S<b.length;S++){var _=b[S];if(!f.has(_)){f.add(_);var y=Ab(_);for(const m of[t,document]){var E=Zs.get(m);E===void 0&&(E=new Map,Zs.set(m,E));var g=E.get(_);g===void 0?(m.addEventListener(_,Gi,{passive:y}),E.set(_,1)):E.set(_,g+1)}}}};return h(Na(Ed)),Yi.add(h),()=>{for(var b of f)for(const y of[t,document]){var S=Zs.get(y),_=S.get(b);--_==0?(y.removeEventListener(b,Gi),S.delete(b),S.size===0&&Zs.delete(y)):S.set(b,_)}Yi.delete(h),d!==n&&d.parentNode?.removeChild(d)}});return Xi.set(c,u),c}let Xi=new WeakMap;function Xe(e,t){const n=Xi.get(e);return n?(Xi.delete(e),n(t)):Promise.resolve()}function Rb(e){const t=e();t&&_b(t)&&am()}function Pb(e){const t=e();t&&!(typeof t=="string")&&Cp()}function jb(e,t){e!=null&&typeof e.subscribe!="function"&&Ap()}function Md(e){return e.toString=()=>(Ip(),""),e}class Kr{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)Uo(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&&(We(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();Ho(o,u),u.append($e()),this.#n.set(a,{effect:o,fragment:u})}else We(o);this.#s.delete(a),this.#t.delete(a)};this.#r||!r?(this.#s.add(a),Gn(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)||(We(s.effect),this.#n.delete(r))};ensure(t,n){var r=me,s=od();if(n&&!this.#t.has(t)&&!this.#n.has(t))if(s){var a=document.createDocumentFragment(),o=$e();a.append(o),this.#n.set(t,{effect:it(()=>n(o)),fragment:a})}else this.#t.set(t,it(()=>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 re&&(this.anchor=fe),this.#i(r)}}function Ht(e,t,...n){var r=new Kr(e);gn(()=>{const s=t()??null;r.ensure(s,s&&(a=>s(a,...n)))},nn)}function Mb(e,t){const n=(r,...s)=>{var a=Ro;Zl(e);try{return t(r,...s)}finally{Zl(a)}};return Md(n),n}function Db(e){return(t,...n)=>{var r=e(...n),s;if(re)s=fe,ut();else{var a=r.render().trim(),o=Wo(a);s=je(o),t.before(s)}const l=r.setup?.(s);Ye(s,s),typeof l=="function"&&Ct(l)}}function Lb(){return ye===null&&Bp(),(ye.ac??=new AbortController).signal}function Go(e){Ee===null&&Vr(),xe(()=>{const t=_e(e);if(typeof t=="function")return t})}function Xo(e){Ee===null&&Vr(),Go(()=>()=>_e(e))}function zb(e,t,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(e,{detail:t,bubbles:n,cancelable:r})}function Ob(){const e=Ee;return e===null&&Vr(),(t,n,r)=>{const s=e.s.$$events?.[t];if(s){const a=Br(s)?s.slice():[s],o=zb(t,n,r);for(const l of a)l.call(e.x,o);return!o.defaultPrevented}return!0}}function Nb(e){Ee===null&&Vr(),Ee.l===null&&Tu(),Dd(Ee).b.push(e)}function qb(e){Ee===null&&Vr(),Ee.l===null&&Tu(),Dd(Ee).a.push(e)}function Dd(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}const Ld=Object.freeze(Object.defineProperty({__proto__:null,afterUpdate:qb,beforeUpdate:Nb,createContext:vm,createEventDispatcher:Ob,createRawSnippet:Db,flushSync:Dn,fork:Pm,getAbortSignal:Lb,getAllContexts:hm,getContext:Po,hasContext:zu,hydratable:lb,hydrate:Pd,mount:qe,onDestroy:Xo,onMount:Go,setContext:jo,settled:ib,tick:Ns,unmount:Xe,untrack:_e},Symbol.toStringTag,{value:"Module"}));function Bb(){return Symbol(gu)}function zd(e,t,n,r){return e!==t&&typeof t=="object"&&rt in t&&Yp(n,Rd(r)),e}function Vb(e,t,n,r,s){return zd(n==="="?e[t]=r:n==="&&="?e[t]&&=r():n==="||="?e[t]||=r():n==="??="?e[t]??=r():null,_e(()=>e[t]),t,s)}async function Fb(e,t,n,r,s){return zd(n==="="?e[t]=await r:n==="&&="?e[t]&&=await r():n==="||="?e[t]||=await r():n==="??="?e[t]??=await r():null,_e(()=>e[t]),t,s)}var sc=new Map;function Ub(e){var t=sc.get(e);if(t){for(const n of t)n.remove();sc.delete(e)}}function Hb(e,t,n){return(...r)=>{const s=e(...r);var a=re?s:s.nodeType===Au?s.firstChild:s;return Od(a,t,n),s}}function Kb(e,t,n){e.__svelte_meta={parent:ea,loc:{file:t,line:n[0],column:n[1]}},n[2]&&Od(e.firstChild,t,n[2])}function Od(e,t,n){for(var r=0,s=0;e&&r<n.length;){if(re&&e.nodeType===In){var a=e;a.data[0]===La?s+=1:a.data[0]===Oa&&(s-=1)}s===0&&e.nodeType===Iu&&Kb(e,t,n[r++]),e=e.nextSibling}}function Wb(e){const t=gt(e);function n(r,s){let a={},o={},l,c=!1,u=r;return gn(()=>{if(a!==(a=i(t))){if(l){for(var d in o)delete o[d];We(l)}l=it(()=>{u=u[xp]??u,c&&wr(!1);var f=new.target?new a(u,s):a(u,s);f&&Object.defineProperties(o,Object.getOwnPropertyDescriptors(f)),c&&wr(!0)}),ve.nodes=l.nodes}},nn),c=!0,re&&(u=fe),o}return n[xt]=e[xt],n[pr]={fn:e,current:t,update:r=>{x(n[pr].current,r[pr].fn),r[pr].current=n[pr].current}},n}function Yb(e){const t=Ee?.function,n=Ee?.p?.function;return{mutation:(r,s,a,o,l)=>{const c=s[0];if(ac(e,c)||!n)return a;let u=e;for(let f=0;f<s.length-1;f++)if(u=u[s[f]],!u?.[rt])return a;const d=Rd(`${t[xt]}:${o}:${l}`);return em(c,d,r,n[xt]),a},binding:(r,s,a)=>{!ac(e,r)&&n&&a()?.[rt]&&$p(t[xt],r,s[xt],n[xt])}}}function ac(e,t){const n=rt in e||Ba in e;return!!Zt(e,t)?.set||n&&t in e||!(t in e)}function Gb(e){e&&Pp(e[xt]??"a component",e.name)}function Xb(){const e=Ee?.function;function t(n){Rp(n,e[xt])}return{$destroy:()=>t("$destroy()"),$on:()=>t("$on(...)"),$set:()=>t("$set(...)")}}function Jb(e,t,n=!1){Vo();let r=!0,s=Pe;fd(()=>{try{var a=e()}catch(l){s=l;return}var o=rr(a,!0,!0);_e(()=>{if(n){if(t(...o),!r){const l=um("$inspect(...)");l&&(console.groupCollapsed("stack trace"),console.log(l),console.groupEnd())}}else t(r?"init":"update",...o)}),r=!1}),Ve(()=>{try{e()}catch{}s!==Pe&&(console.error(s),s=Pe)})}function Zb(e,t=[],n=[],r){var s=re,a=null;if(s&&(ut(),a=nr(!1)),n.length===0&&t.every(c=>c.settled)){r(e),s&&Ie(a);return}const o=Ds();if(s){var l=fe;Ie(a)}Ms(t,[],n,c=>{s&&(Te(!0),Ie(l));try{for(const u of c)i(u);r(e,...c)}finally{s&&Te(!1),o()}})}function Qb(e,...t){(typeof e!="object"||!(e instanceof Node))&&Jl();for(let n of t)typeof n!="function"&&Jl()}const ic=0,oc=1,$b=2;function eg(e,t,n,r,s){re&&ut();var a=Pe,o=gt(a),l=gt(a),c=new Kr(e);gn(()=>{var u=me;u.deactivate();var d=t();u.activate();var f=!1;let h=re&&Xl(d)===(e.data===za);if(h&&(Ie(nr()),Te(!1)),Xl(d)){var b=Ua(),S=!1;const _=y=>{if(!f){S=!0,b(!1),Ut.ensure(),re&&Te(!1);try{y()}finally{sr(!1),Sr||Dn()}}};d.then(y=>{_(()=>{hn(o,y),c.ensure(oc,r&&(E=>r(E,o)))})},y=>{_(()=>{if(hn(l,y),c.ensure($b,s&&(E=>s(E,l))),!s)throw l.v})}),re?c.ensure(ic,n):ct(()=>{S||_(()=>{c.ensure(ic,n)})})}else hn(o,d),c.ensure(oc,r&&(_=>r(_,o)));return h&&Te(!0),()=>{f=!0}})}function K(e,t,n=!1){var r;re&&(r=fe,ut());var s=new Kr(e),a=n?nn:0;function o(l,c){if(re){var u=To(r);if(l!==parseInt(u.substring(1))){var d=nr();Ie(d),s.anchor=d,Te(!1),s.ensure(l,c),Te(!0);return}}s.ensure(l,c)}gn(()=>{var l=!1;t((c,u=0)=>{l=!0,o(u,c)}),l||o(-1,null)},a)}const tg=Symbol("NaN");function ng(e,t,n){re&&ut();var r=new Kr(e);gn(()=>{var s=t();s!==s&&(s=tg),r.ensure(s,n)})}function rg(e,t){re&&Ie(je(e)),Ve(()=>{var n=t();for(var r in n){var s=n[r];s?e.style.setProperty(r,s):e.style.removeProperty(r)}})}function dt(e,t){return t}function sg(e,t,n){for(var r=[],s=t.length,a,o=t.length,l=0;l<s;l++){let f=t[l];Gn(f,()=>{if(a){if(a.pending.delete(f),a.done.add(f),a.pending.size===0){var h=e.outrogroups;Ji(e,Na(a.done)),h.delete(a),h.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;qo(d),d.append(u),e.items.clear()}Ji(e,t,!c)}else a={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(a)}function Ji(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|=dn;const o=document.createDocumentFragment();Ho(a,o)}else We(t[s],n)}}var lc;function pe(e,t,n,r,s,a=null){var o=e,l=new Map,c=(t&hu)!==0;if(c){var u=e;o=re?Ie(je(u)):u.appendChild($e())}re&&ut();var d=null,f=zo(()=>{var m=n();return Br(m)?m:m==null?[]:Na(m)}),h,b=new Map,S=!0;function _(m){g.effect.f&mt||(g.pending.delete(m),g.fallback=d,ag(g,h,o,t,r),d!==null&&(h.length===0?d.f&dn?(d.f^=dn,as(d,null,o)):Uo(d):Gn(d,()=>{d=null})))}function y(m){g.pending.delete(m)}var E=gn(()=>{h=i(f);var m=h.length;let I=!1;if(re){var P=To(o)===za;P!==(m===0)&&(o=nr(),Ie(o),Te(!1),I=!0)}for(var T=new Set,M=me,L=od(),j=0;j<m;j+=1){re&&fe.nodeType===In&&fe.data===Oa&&(o=fe,I=!0,Te(!1));var D=h[j],C=r(D,j),O=S?null:l.get(C);O?(O.v&&hn(O.v,D),O.i&&hn(O.i,j),L&&M.unskip_effect(O.e)):(O=ig(l,S?o:lc??=$e(),D,C,j,s,t,n),S||(O.e.f|=dn),l.set(C,O)),T.add(C)}if(m===0&&a&&!d&&(S?d=it(()=>a(o)):(d=it(()=>a(lc??=$e())),d.f|=dn)),m>T.size&&jp(),re&&m>0&&Ie(nr()),!S)if(b.set(M,T),L){for(const[q,R]of l)T.has(q)||M.skip_effect(R.e);M.oncommit(_),M.ondiscard(y)}else _(M);I&&Te(!0),i(f)}),g={effect:E,items:l,pending:b,outrogroups:null,fallback:d};S=!1,re&&(o=fe)}function es(e){for(;e!==null&&!(e.f&en);)e=e.next;return e}function ag(e,t,n,r,s){var a=(r&ap)!==0,o=t.length,l=e.items,c=es(e.effect.first),u,d=null,f,h=[],b=[],S,_,y,E;if(a)for(E=0;E<o;E+=1)S=t[E],_=s(S,E),y=l.get(_).e,y.f&dn||(y.nodes?.a?.measure(),(f??=new Set).add(y));for(E=0;E<o;E+=1){if(S=t[E],_=s(S,E),y=l.get(_).e,e.outrogroups!==null)for(const D of e.outrogroups)D.pending.delete(y),D.done.delete(y);if(y.f&lt&&(Uo(y),a&&(y.nodes?.a?.unfix(),(f??=new Set).delete(y))),y.f&dn)if(y.f^=dn,y===c)as(y,null,n);else{var g=d?d.next:c;y===e.effect.last&&(e.effect.last=y.prev),y.prev&&(y.prev.next=y.next),y.next&&(y.next.prev=y.prev),Tn(e,d,y),Tn(e,y,g),as(y,g,n),d=y,h=[],b=[],c=es(d.next);continue}if(y!==c){if(u!==void 0&&u.has(y)){if(h.length<b.length){var m=b[0],I;d=m.prev;var P=h[0],T=h[h.length-1];for(I=0;I<h.length;I+=1)as(h[I],m,n);for(I=0;I<b.length;I+=1)u.delete(b[I]);Tn(e,P.prev,T.next),Tn(e,d,P),Tn(e,T,m),c=m,d=T,E-=1,h=[],b=[]}else u.delete(y),as(y,c,n),Tn(e,y.prev,y.next),Tn(e,y,d===null?e.effect.first:d.next),Tn(e,d,y),d=y;continue}for(h=[],b=[];c!==null&&c!==y;)(u??=new Set).add(c),b.push(c),c=es(c.next);if(c===null)continue}y.f&dn||h.push(y),d=y,c=es(y.next)}if(e.outrogroups!==null){for(const D of e.outrogroups)D.pending.size===0&&(Ji(e,Na(D.done)),e.outrogroups?.delete(D));e.outrogroups.size===0&&(e.outrogroups=null)}if(c!==null||u!==void 0){var M=[];if(u!==void 0)for(y of u)y.f&lt||M.push(y);for(;c!==null;)!(c.f&lt)&&c!==e.fallback&&M.push(c),c=es(c.next);var L=M.length;if(L>0){var j=r&hu&&o===0?n:null;if(a){for(E=0;E<L;E+=1)M[E].nodes?.a?.measure();for(E=0;E<L;E+=1)M[E].nodes?.a?.fix()}sg(e,M,j)}}a&&ct(()=>{if(f!==void 0)for(y of f)y.nodes?.a?.apply()})}function ig(e,t,n,r,s,a,o,l){var c=o&rp?o&ip?gt(n):Ha(n,!1,!1):null,u=o&sp?gt(s):null;return{v:c,i:u,e:it(()=>(a(t,c??n,u??s,l),()=>{e.delete(r)}))}}function as(e,t,n){if(e.nodes)for(var r=e.nodes.start,s=e.nodes.end,a=t&&!(t.f&dn)?t.nodes.start:n;r!==null;){var o=It(r);if(a.before(r),r===s)return;r=o}}function Tn(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function og(e,t,n=!1,r=!1,s=!1,a=!1){var o=e,l="";if(n){var c=e;re&&(o=Ie(je(c)))}N(()=>{var u=ve;if(l===(l=t()??"")){re&&ut();return}if(n&&!re){u.nodes=null,c.innerHTML=l,l!==""&&Ye(je(c),c.lastChild);return}if(u.nodes!==null&&(pd(u.nodes.start,u.nodes.end),u.nodes=null),l!==""){if(re){fe.data;for(var d=ut(),f=d;d!==null&&(d.nodeType!==In||d.data!=="");)f=d,d=It(d);if(d===null)throw js(),Qn;Ye(fe,f),o=Ie(d);return}var h=r?Ts:s?Ao:void 0,b=qn(r?"svg":s?"math":"template",h);b.innerHTML=l;var S=r||s?b:b.content;if(Ye(je(S),S.lastChild),r||s)for(;je(S);)o.before(je(S));else o.before(S)}})}function lg(e,t,n,r,s){re&&ut();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 cg(e){const t={};e.children&&(t.default=!0);for(const n in e.$$slots)t[n]=!0;return t}function qs(e,t,n){var r;re&&(r=fe,ut());var s=new Kr(e);gn(()=>{var a=t()??null;if(re){var o=To(r),l=o===La,c=a!==null;if(l!==c){var u=nr();Ie(u),s.anchor=u,Te(!1),s.ensure(a,a&&(d=>n(d,a))),Te(!0);return}}s.ensure(a,a&&(d=>n(d,a)))},nn)}const ug=()=>performance.now(),un={tick:e=>requestAnimationFrame(e),now:()=>ug(),tasks:new Set};function Nd(){const e=un.now();un.tasks.forEach(t=>{t.c(e)||(un.tasks.delete(t),t.f())}),un.tasks.size!==0&&un.tick(Nd)}function dg(e){let t;return un.tasks.size===0&&un.tick(Nd),{promise:new Promise(n=>{un.tasks.add(t={c:e,f:n})}),abort(){un.tasks.delete(t)}}}function _a(e,t){Bn(()=>{e.dispatchEvent(new CustomEvent(t))})}function fg(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 cc(e){const t={},n=e.split(";");for(const r of n){const[s,a]=r.split(":");if(!s||a===void 0)break;const o=fg(s.trim());t[o]=a.trim()}return t}const vg=e=>e;let qd=null;function uc(e){qd=e}function hg(e,t,n){var r=qd??ve,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=wa(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 h=e.style;c={position:h.position,width:h.width,height:h.height,transform:h.transform},h.position="absolute",h.width=d,h.height=f;var b=e.getBoundingClientRect();if(a.left!==b.left||a.top!==b.top){var S=`translate(${a.left-b.left}px, ${a.top-b.top}px)`;h.transform=h.transform?`${h.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 pg(e,t,n,r){var s=(e&up)!==0,a=(e&dp)!==0,o=s&&a,l=(e&fp)!==0,c=o?"both":s?"in":"out",u,d=t.inert,f=t.style.overflow,h,b;function S(){return Bn(()=>u??=n()(t,r?.()??{},{direction:c}))}var _={is_global:l,in(){if(t.inert=d,!s){b?.abort(),b?.reset?.();return}a||h?.abort(),h=wa(t,S(),b,1,()=>{_a(t,"introend"),h?.abort(),h=u=void 0,t.style.overflow=f})},out(m){if(!a){m?.(),u=void 0;return}t.inert=!0,b=wa(t,S(),h,0,()=>{_a(t,"outroend"),m?.()})},stop:()=>{h?.abort(),b?.abort()}},y=ve;if((y.nodes.t??=[]).push(_),s&&ya){var E=l;if(!E){for(var g=y.parent;g&&g.f&nn;)for(;(g=g.parent)&&!(g.f&Qt););E=!g||(g.f&En)!==0}E&&At(()=>{_e(()=>_.in())})}}function wa(e,t,n,r,s){var a=r===1;if(mr(t)){var o,l=!1;return ct(()=>{if(!l){var y=t({direction:a?"in":"out"});o=wa(e,y,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 _a(e,a?"introstart":"outrostart"),s(),{abort:St,deactivate:St,reset:St,t:()=>r};const{delay:c=0,css:u,tick:d,easing:f=vg}=t;var h=[];if(a&&n===void 0&&(d&&d(0,1),u)){var b=cc(u(0,1));h.push(b,b)}var S=()=>1-r,_=e.animate(h,{duration:c,fill:"forwards"});return _.onfinish=()=>{_.cancel(),_a(e,a?"introstart":"outrostart");var y=n?.t()??1-r;n?.abort();var E=r-y,g=t.duration*Math.abs(E),m=[];if(g>0){var I=!1;if(u)for(var P=Math.ceil(g/16.666666666666668),T=0;T<=P;T+=1){var M=y+E*f(T/P),L=cc(u(M,1-M));m.push(L),I||=L.overflow==="hidden"}I&&(e.style.overflow="hidden"),S=()=>{var j=_.currentTime;return y+E*f(j/g)},d&&dg(()=>{if(_.playState!=="running")return!1;var j=S();return d(j,1-j),!0})}_=e.animate(m,{duration:g,fill:"forwards"}),_.onfinish=()=>{S=()=>r,d?.(r,1-r),s()}},{abort:()=>{_&&(_.cancel(),_.effect=null,_.onfinish=St)},deactivate:()=>{s=St},reset:()=>{r===0&&d?.(1,0)},t:()=>S()}}function mg(e,t,n,r,s,a){let o=re;re&&ut();var l=null;re&&fe.nodeType===Iu&&(l=fe,ut());var c=re?fe:e,u=ve,d=new Kr(c,!1);gn(()=>{const f=t()||null;var h=s?s():n||f==="svg"?Ts:void 0;if(f===null){d.ensure(null,null),wr(!0);return}return d.ensure(f,b=>{if(f){if(l=re?l:qn(f,h),Ye(l,l),r){re&&Tb(f)&&l.append(document.createComment(""));var S=re?je(l):l.appendChild($e());re&&(S===null?Te(!1):Ie(S)),uc(u),r(l,S),uc(null)}ve.nodes.end=l,b.before(l)}re&&Ie(b)}),wr(!0),()=>{f&&wr(!1)}},nn),Ct(()=>{wr(!0)}),o&&(Te(!0),Ie(c))}function bg(e,t){let n=null,r=re;var s;if(re){n=fe;for(var a=je(document.head);a!==null&&(a.nodeType!==In||a.data!==e);)a=It(a);if(a===null)Te(!1);else{var o=It(a);a.remove(),Ie(o)}}re||(s=document.head.appendChild($e()));try{gn(()=>t(s),Su|Nn)}finally{r&&(Te(!0),Ie(n))}}function gg(e,t){At(()=>{var n=e.getRootNode(),r=n.host?n:n.head??n.ownerDocument.head;if(!r.querySelector("#"+t.hash)){const s=qn("style");s.id=t.hash,s.textContent=t.code,r.appendChild(s)}})}function Bd(e,t,n){At(()=>{var r=_e(()=>t(e,n?.())||{});if(n&&r?.update){var s=!1,a={};Ve(()=>{var o=n();Ko(o),s&&ju(a,o)&&(a=o,r.update(o))}),s=!0}if(r?.destroy)return()=>r.destroy()})}function Jo(e,t){var n=void 0,r;vd(()=>{n!==(n=t())&&(r&&(We(r),r=null),n&&(r=it(()=>{At(()=>n(e))})))})}const yg=/[&"<]/g;function _g(e,t){const n=String(e??""),r=yg;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 Vd(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=Vd(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function wg(){for(var e,t,n=0,r="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=Vd(e))&&(r&&(r+=" "),r+=t);return r}const dc={translate:new Map([[!0,"yes"],[!1,"no"]])};function kg(e,t,n=!1){if(e==="hidden"&&t!=="until-found"&&(n=!0),t==null||!t&&n)return"";const r=bp.call(dc,e)&&dc[e].get(t)||t,s=n?'=""':`="${_g(r)}"`;return` ${e}${s}`}function Fd(e){return typeof e=="object"?wg(e):e??""}const fc=[...`
7
- \r\f \v\uFEFF`];function xg(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||fc.includes(r[o-1]))&&(l===r.length||fc.includes(r[l]))?r=(o===0?"":r.substring(0,o))+r.substring(l+1):o=l}}return r===""?null:r}function vc(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 xi(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function Sg(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(xi)),s&&c.push(...Object.keys(s).map(xi));var u=0,d=-1;const _=e.length;for(var f=0;f<_;f++){var h=e[f];if(l?h==="/"&&e[f-1]==="*"&&(l=!1):a?a===h&&(a=!1):h==="/"&&e[f+1]==="*"?l=!0:h==='"'||h==="'"?a=h:h==="("?o++:h===")"&&o--,!l&&a===!1&&o===0){if(h===":"&&d===-1)d=f;else if(h===";"||f===_-1){if(d!==-1){var b=xi(e.substring(u,d).trim());if(!c.includes(b)){h!==";"&&f++;var S=e.substring(u,f).trim();n+=" "+S+";"}}u=f+1,d=-1}}}}return r&&(n+=vc(r)),s&&(n+=vc(s,!0)),n=n.trim(),n===""?null:n}return e==null?null:String(e)}function de(e,t,n,r,s,a){var o=e.__className;if(re||o!==n||o===void 0){var l=xg(n,r,a);(!re||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 Si(e,t={},n,r){for(var s in n){var a=n[s];t[s]!==a&&(n[s]==null?e.style.removeProperty(s):e.style.setProperty(s,a,r))}}function He(e,t,n,r){var s=e.__style;if(re||s!==t){var a=Sg(t,r);(!re||a!==e.getAttribute("style"))&&(a==null?e.removeAttribute("style"):e.style.cssText=a),e.__style=t}else r&&(Array.isArray(r)?(Si(e,n?.[0],r[0]),Si(e,n?.[1],r[1],"important")):Si(e,n,r));return r}function ps(e,t,n=!1){if(e.multiple){if(t==null)return;if(!Br(t))return tm();for(var r of e.options)r.selected=t.includes(ls(r));return}for(r of e.options){var s=ls(r);if(rd(s,t)){r.selected=!0;return}}(!n||t!==void 0)&&(e.selectedIndex=-1)}function Zo(e){var t=new MutationObserver(()=>{ps(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),Ct(()=>{t.disconnect()})}function ms(e,t,n=t){var r=new WeakSet,s=!0;zs(e,"change",a=>{var o=a?"[selected]":":checked",l;if(e.multiple)l=[].map.call(e.querySelectorAll(o),ls);else{var c=e.querySelector(o)??e.querySelector("option:not([disabled])");l=c&&ls(c)}n(l),e.__value=l,me!==null&&r.add(me)}),At(()=>{var a=t();if(e===document.activeElement){var o=me;if(r.has(o))return}if(ps(e,a,s),s&&a===void 0){var l=e.querySelector(":checked");l!==null&&(a=ls(l),n(a))}e.__value=a,s=!1}),Zo(e)}function ls(e){return"__value"in e?e.__value:e.value}const gr=Symbol("class"),yr=Symbol("style"),Ud=Symbol("is custom element"),Hd=Symbol("is html"),Eg=ur?"link":"LINK",Ig=ur?"input":"INPUT",Ag=ur?"option":"OPTION",Cg=ur?"select":"SELECT",Tg=ur?"progress":"PROGRESS";function ge(e){if(re){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute("value")){var r=e.value;ne(e,"value",null),e.value=r}if(e.hasAttribute("checked")){var s=e.checked;ne(e,"checked",null),e.checked=s}}};e.__on_r=n,ct(n),cd()}}function bs(e,t){var n=Wa(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==Tg)||(e.value=t??"")}function Qo(e,t){var n=Wa(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function $o(e,t){t?e.hasAttribute("selected")||e.setAttribute("selected",""):e.removeAttribute("selected")}function Rg(e,t){const n=e.checked;e.defaultChecked=t,e.checked=n}function Pg(e,t){const n=e.value;e.defaultValue=t,e.value=n}function ne(e,t,n,r){var s=Wa(e);re&&(s[t]=e.getAttribute(t),t==="src"||t==="srcset"||t==="href"&&e.nodeName===Eg)||s[t]!==(s[t]=n)&&(t==="loading"&&(e[wp]=n),n==null?e.removeAttribute(t):typeof n!="string"&&el(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function jg(e,t,n){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n)}function Mg(e,t,n){var r=ye,s=ve;let a=re;re&&Te(!1),yt(null),st(null);try{t!=="style"&&(Zi.has(e.getAttribute("is")||e.nodeName)||!customElements||customElements.get(e.getAttribute("is")||e.nodeName.toLowerCase())?el(e).includes(t):n&&typeof n=="object")?e[t]=n:ne(e,t,n==null?n:String(n))}finally{yt(r),st(s),a&&Te(!0)}}function Dg(e,t,n,r,s=!1,a=!1){if(re&&s&&e.nodeName===Ig){var o=e,l=o.type==="checkbox"?"defaultChecked":"defaultValue";l in n||ge(o)}var c=Wa(e),u=c[Ud],d=!c[Hd];let f=re&&u;f&&Te(!1);var h=t||{},b=e.nodeName===Ag;for(var S in t)S in n||(n[S]=null);n.class?n.class=Fd(n.class):(r||n[gr])&&(n.class=null),n[yr]&&(n.style??=null);var _=el(e);for(const T in n){let M=n[T];if(b&&T==="value"&&M==null){e.value=e.__value="",h[T]=M;continue}if(T==="class"){var y=e.namespaceURI==="http://www.w3.org/1999/xhtml";de(e,y,M,r,t?.[gr],n[gr]),h[T]=M,h[gr]=n[gr];continue}if(T==="style"){He(e,M,t?.[yr],n[yr]),h[T]=M,h[yr]=n[yr];continue}var E=h[T];if(!(M===E&&!(M===void 0&&e.hasAttribute(T)))){h[T]=M;var g=T[0]+T[1];if(g!=="$$")if(g==="on"){const L={},j="$$"+T;let D=T.slice(2);var m=xb(D);if(wb(D)&&(D=D.slice(0,-7),L.capture=!0),!m&&E){if(M!=null)continue;e.removeEventListener(D,h[j],L),h[j]=null}if(m)U(D,e,M),ce([D]);else if(M!=null){let C=function(O){h[T].call(this,O)};h[j]=Id(D,e,C,L)}}else if(T==="style")ne(e,T,M);else if(T==="autofocus")Fr(e,!!M);else if(!u&&(T==="__value"||T==="value"&&M!=null))e.value=e.__value=M;else if(T==="selected"&&b)$o(e,M);else{var I=T;d||(I=Eb(I));var P=I==="defaultValue"||I==="defaultChecked";if(M==null&&!u&&!P)if(c[T]=null,I==="value"||I==="checked"){let L=e;const j=t===void 0;if(I==="value"){let D=L.defaultValue;L.removeAttribute(I),L.defaultValue=D,L.value=L.__value=j?D:null}else{let D=L.defaultChecked;L.removeAttribute(I),L.defaultChecked=D,L.checked=j?D:!1}}else e.removeAttribute(T);else P||_.includes(I)&&(u||typeof M!="string")?(e[I]=M,I in c&&(c[I]=Pe)):typeof M!="function"&&ne(e,I,M)}}}return f&&Te(!0),h}function Lg(e,t,n=[],r=[],s=[],a,o=!1,l=!1){Ms(s,n,r,c=>{var u=void 0,d={},f=e.nodeName===Cg,h=!1;if(vd(()=>{var S=t(...c.map(i)),_=Dg(e,u,S,a,o,l);h&&f&&"value"in S&&ps(e,S.value);for(let E of Object.getOwnPropertySymbols(d))S[E]||We(d[E]);for(let E of Object.getOwnPropertySymbols(S)){var y=S[E];E.description===gu&&(!u||y!==u[E])&&(d[E]&&We(d[E]),d[E]=it(()=>Jo(e,()=>y))),_[E]=y}u=_}),f){var b=e;At(()=>{ps(b,u.value,!0),Zo(b)})}h=!0})}function Wa(e){return e.__attributes??={[Ud]:e.nodeName.includes("-"),[Hd]:e.namespaceURI===bu}}var Zi=new Map;function el(e){var t=e.getAttribute("is")||e.nodeName,n=Zi.get(t);if(n)return n;Zi.set(t,n=[]);for(var r,s=e,a=Element.prototype;a!==s;){r=_u(s);for(var o in r)r[o].set&&n.push(o);s=qa(s)}return n}let Ei=null;function Kd(){if(Ei===null){var e=qn("select");e.innerHTML=Ad("<option><span>t</span></option>"),Ei=e.firstChild?.firstChild?.nodeType===1}return Ei}function zg(e,t){Kd()&&Jo(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 Og(e,t){var n=re;Kd()||(Te(!1),e.textContent="",e.append(ld("")));try{t()}finally{n&&(re?v(e):(Te(!0),Ie(e)))}}function Ng(e){_t(document,["focusin","focusout"],t=>{t&&t.type==="focusout"&&t.relatedTarget||e(document.activeElement)})}function Se(e,t,n=t){var r=new WeakSet;zs(e,"input",async s=>{var a=s?e.defaultValue:e.value;if(a=Ai(e)?Ci(a):a,n(a),me!==null&&r.add(me),await Ns(),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))}}}),(re&&e.defaultValue!==e.value||_e(t)==null&&e.value)&&(n(Ai(e)?Ci(e.value):e.value),me!==null&&r.add(me)),Ve(()=>{var s=t();if(e===document.activeElement){var a=me;if(r.has(a))return}Ai(e)&&s===Ci(e.value)||e.type==="date"&&!s&&!e.value||s!==e.value&&(e.value=s??"")})}const Ii=new Set;function qg(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),zs(n,"change",()=>{var u=n.__value;a&&(u=hc(o,u,n.checked)),s(u)},()=>s(a?[]:null)),Ve(()=>{var u=r();if(re&&n.defaultChecked!==n.checked){l=!0;return}a?(u=u||[],n.checked=u.includes(n.__value)):n.checked=rd(n.__value,u)}),Ct(()=>{var u=o.indexOf(n);u!==-1&&o.splice(u,1)}),Ii.has(o)||(Ii.add(o),ct(()=>{o.sort((u,d)=>u.compareDocumentPosition(d)===4?-1:1),Ii.delete(o)})),ct(()=>{if(l){var u;if(a)u=hc(o,u,n.checked);else{var d=o.find(f=>f.checked);u=d?.__value}s(u)}})}function cs(e,t,n=t){zs(e,"change",r=>{var s=r?e.defaultChecked:e.checked;n(s)}),(re&&e.defaultChecked!==e.checked||_e(t)==null)&&n(e.checked),Ve(()=>{var r=t();e.checked=!!r})}function hc(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 Ai(e){var t=e.type;return t==="number"||t==="range"}function Ci(e){return e===""?null:+e}function Bg(e,t,n=t){zs(e,"change",()=>{n(e.files)}),re&&e.files&&n(e.files),Ve(()=>{e.files=t()})}function tl(e){for(var t=[],n=0;n<e.length;n+=1)t.push({start:e.start(n),end:e.end(n)});return t}function Vg(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),Ve(()=>{var o=Number(t());s!==o&&!isNaN(o)&&(e.currentTime=s=o)}),Ct(()=>{cancelAnimationFrame(r),e.removeEventListener("timeupdate",a)})}function Fg(e,t){var n;_t(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=tl(r),t(n))})}function Ug(e,t){_t(e,["loadedmetadata"],()=>t(tl(e.seekable)))}function Hg(e,t){_t(e,["timeupdate"],()=>t(tl(e.played)))}function Kg(e,t){_t(e,["seeking","seeked"],()=>t(e.seeking))}function Wg(e,t){_t(e,["timeupdate","ended"],()=>t(e.ended))}function Yg(e,t){_t(e,["loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","emptied"],()=>t(e.readyState))}function Gg(e,t,n=t){At(()=>{var r=Number(t());r!==e.playbackRate&&!isNaN(r)&&(e.playbackRate=r)}),At(()=>{_t(e,["ratechange"],()=>{n(e.playbackRate)})})}function Xg(e,t,n=t){var r=t(),s=()=>{r!==e.paused&&n(r=e.paused)};_t(e,["play","pause","canplay"],s,r==null),At(()=>{(r=!!t())!==e.paused&&(r?e.pause():e.play().catch(a=>{throw n(r=!0),a}))})}function Jg(e,t,n=t){var r=()=>{n(e.volume)};t()==null&&r(),_t(e,["volumechange"],r,!1),Ve(()=>{var s=Number(t());s!==e.volume&&!isNaN(s)&&(e.volume=s)})}function Zg(e,t,n=t){var r=()=>{n(e.muted)};t()==null&&r(),_t(e,["volumechange"],r,!1),Ve(()=>{var s=!!t();e.muted!==s&&(e.muted=s)})}function Qg(e){_t(window,["online","offline"],()=>{e(navigator.onLine)})}function $g(e,t,n){var r=Zt(e,t);r&&r.set&&(e[t]=n,Ct(()=>{e[t]=null}))}class Bs{#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){Bs.entries.set(n.target,n);for(var r of this.#e.get(n.target)||[])r(n)}}))}}var ey=new Bs({box:"content-box"}),Wd=new Bs({box:"border-box"}),ty=new Bs({box:"device-pixel-content-box"});function ny(e,t,n){var r=t==="contentRect"||t==="contentBoxSize"?ey:t==="borderBoxSize"?Wd:ty,s=r.observe(e,a=>n(a[t]));Ct(s)}function ry(e,t,n){var r=Wd.observe(e,()=>n(e[t]));At(()=>(_e(()=>n(e[t])),r))}function pc(e,t){return e===t||e?.[rt]===t}function Le(e={},t,n,r){var s=Ee.r,a=ve;return At(()=>{var o,l;return Ve(()=>{o=l,l=r?.()||[],_e(()=>{e!==n(...l)&&(t(e,...l),o&&pc(n(...o),e)&&t(null,...o))})}),()=>{let c=a;for(;c!==s&&c.parent!==null&&c.parent.f&Ni;)c=c.parent;const u=()=>{l&&pc(n(...l),e)&&t(null,...l)},d=c.teardown;c.teardown=()=>{u(),d?.()}}}),e}function sy(e,t,n,r=n){t.addEventListener("input",()=>{r(t[e])}),Ve(()=>{var s=n();if(t[e]!==s)if(s==null){var a=t[e];r(a)}else t[e]=s+""})}function ay(e,t,n,r,s){var a=()=>{r(n[e])};n.addEventListener(t,a),s?Ve(()=>{n[e]=s()}):a(),(n===document.body||n===window||n===document)&&Ct(()=>{n.removeEventListener(t,a)})}function iy(e,t){_t(e,["focus","blur"],()=>{t(e===document.activeElement)})}function oy(e,t,n=t){var r=e==="x",s=()=>Bn(()=>{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;Ve(()=>{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))}),At(s),Ct(()=>{removeEventListener("scroll",s)})}function ly(e,t){_t(window,["resize"],()=>Bn(()=>t(window[e])))}function cy(e){return function(...t){var n=t[0];n.isTrusted&&e?.apply(this,t)}}function uy(e){return function(...t){var n=t[0];n.target===this&&e?.apply(this,t)}}function dy(e){return function(...t){var n=t[0];return n.stopPropagation(),e?.apply(this,t)}}function fy(e){var t=!1;return function(...n){if(!t)return t=!0,e?.apply(this,n)}}function vy(e){return function(...t){var n=t[0];return n.stopImmediatePropagation(),e?.apply(this,t)}}function hy(e){return function(...t){var n=t[0];return n.preventDefault(),e?.apply(this,t)}}function py(e=!1){const t=Ee,n=t.l.u;if(!n)return;let r=()=>Ko(t.s);if(e){let s=0,a={};const o=Ls(()=>{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&&dd(()=>{mc(t,r),zi(n.b)}),xe(()=>{const s=_e(()=>n.m.map(gp));return()=>{for(const a of s)typeof a=="function"&&a()}}),n.a.length&&xe(()=>{mc(t,r),zi(n.a)})}function mc(e,t){if(e.l.s)for(const n of e.l.s)i(n);t()}function my(e){var t=gt(0);return function(){return arguments.length===1?(x(t,i(t)+1),arguments[0]):(i(t),e())}}function by(e,t){var n=e.$$events?.[t.type],r=Br(n)?n.slice():n==null?[]:[n];for(var s of r)s.call(this,t)}function gy(e,t,n){e.$$events||={},e.$$events[t]||=[],e.$$events[t].push(n)}function yy(e){for(var t in e)t in this&&(this[t]=e[t])}function _y(e,t=1){const n=e();return e(n+t),n}function wy(e,t=1){const n=e()+t;return e(n),n}const ky={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 xy(e,t,n){return new Proxy({props:e,exclude:t},ky)}const Sy={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=ve;try{st(e.parent_effect),e.special[t]=$({get[t](){return e.props[t]}},t,pu)}finally{st(r)}}return e.special[t](n),Mr(e.version),!0},getOwnPropertyDescriptor(e,t){if(!e.exclude.includes(t)&&t in e.props)return{enumerable:!0,configurable:!0,value:e.props[t]}},deleteProperty(e,t){return e.exclude.includes(t)||(e.exclude.push(t),Mr(e.version)),!0},has(e,t){return e.exclude.includes(t)?!1:t in e.props},ownKeys(e){return Reflect.ownKeys(e.props).filter(t=>!e.exclude.includes(t))}};function Ey(e,t){return new Proxy({props:e,exclude:t,special:{},version:gt(0),parent_effect:ve},Sy)}const Iy={get(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(mr(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r)return r[t]}},set(e,t,n){let r=e.props.length;for(;r--;){let s=e.props[r];mr(s)&&(s=s());const a=Zt(s,t);if(a&&a.set)return a.set(n),!0}return!1},getOwnPropertyDescriptor(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(mr(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r){const s=Zt(r,t);return s&&!s.configurable&&(s.configurable=!0),s}}},has(e,t){if(t===rt||t===Ba)return!1;for(let n of e.props)if(mr(n)&&(n=n()),n!=null&&t in n)return!0;return!1},ownKeys(e){const t=[];for(let n of e.props)if(mr(n)&&(n=n()),!!n){for(const r in n)t.includes(r)||t.push(r);for(const r of Object.getOwnPropertySymbols(n))t.includes(r)||t.push(r)}return t}};function Vs(...e){return new Proxy({props:e},Iy)}function $(e,t,n,r){var s=(n&lp)!==0,a=(n&cp)!==0,o=r,l=!0,c=()=>(l&&(l=!1,o=a?_e(r):r),o);let u;if(s){var d=rt in e||Ba in e;u=Zt(e,t)?.set??(d&&t in e?g=>e[t]=g:void 0)}var f,h=!1;s?[f,h]=Hu(()=>e[t]):f=e[t],f===void 0&&r!==void 0&&(f=c(),u&&(Fp(),u(f)));var b;if(b=()=>{var g=e[t];return g===void 0?c():(l=!0,g)},!(n&pu))return b;if(u){var S=e.$$legacy;return function(g,m){return arguments.length>0?((!m||S||h)&&u(m?b():g),g):b()}}var _=!1,y=(n&op?Ls:zo)(()=>(_=!1,b()));s&&i(y);var E=ve;return function(g,m){if(arguments.length>0){const I=m?i(y):s?le(g):g;return x(y,I),_=!0,o!==void 0&&(o=I),g}return Sn&&_||E.f&mt?y.v:i(y)}}function Ay(e,t,n,r,s,a){Ju(t,()=>{var o=!1;Ro?.[xt],Ve(()=>{if(!o){var[l,c]=Hu(n);if(!c){var u=r(),d=!1,f=Ve(()=>{d||l[u]});d=!0,f.deps===null&&(Gp(),o=!0)}}})})}function Cy(e){return new Ty(e)}class Ty{#e;#t;constructor(t){var n=new Map,r=(a,o)=>{var l=Ha(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===Ba?!0:(i(n.get(o)??r(o,Reflect.get(a,o))),Reflect.has(a,o))},set(a,o,l){return x(n.get(o)??r(o,l),l),Reflect.set(a,o,l)}});this.#t=(t.hydrate?Pd: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)&&Dn(),this.#e=s.$$events;for(const a of Object.keys(this.#t))a==="$set"||a==="$destroy"||a==="$on"||$n(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=()=>{Xe(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 Yd;typeof HTMLElement=="function"&&(Yd=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 e=function(r){return s=>{const a=qn("slot");r!=="default"&&(a.name=r),k(s,a)}};if(await Promise.resolve(),!this.$$cn||this.$$c)return;const t={},n=Ry(this);for(const r of this.$$s)r in n&&(r==="default"&&!this.$$d.children?(this.$$d.children=e(r),t.default=!0):t[r]=e(r));for(const r of this.attributes){const s=this.$$g_p(r.name);s in this.$$d||(this.$$d[s]=sa(s,r.value,this.$$p_d,"toProp"))}for(const r in this.$$p_d)!(r in this.$$d)&&this[r]!==void 0&&(this.$$d[r]=this[r],delete this[r]);this.$$c=Cy({component:this.$$ctor,target:this.$$shadowRoot||this,props:{...this.$$d,$$slots:t,$$host:this}}),this.$$me=Ur(()=>{Ve(()=>{this.$$r=!0;for(const r of ha(this.$$c)){if(!this.$$p_d[r]?.reflect)continue;this.$$d[r]=this.$$c[r];const s=sa(r,this.$$d[r],this.$$p_d,"toAttribute");s==null?this.removeAttribute(this.$$p_d[r].attribute||r):this.setAttribute(this.$$p_d[r].attribute||r,s)}this.$$r=!1})});for(const r in this.$$l)for(const s of this.$$l[r]){const a=this.$$c.$on(r,s);this.$$l_u.set(s,a)}this.$$l={}}}attributeChangedCallback(e,t,n){this.$$r||(e=this.$$g_p(e),this.$$d[e]=sa(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 ha(this.$$p_d).find(t=>this.$$p_d[t].attribute===e||!this.$$p_d[t].attribute&&t.toLowerCase()===e)||e}});function sa(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 Ry(e){const t={};return e.childNodes.forEach(n=>{t[n.slot||"default"]=!0}),t}function Py(e,t,n,r,s,a){let o=class extends Yd{constructor(){super(e,n,s),this.$$p_d=t}static get observedAttributes(){return ha(t).map(l=>(t[l].attribute||l).toLowerCase())}};return ha(t).forEach(l=>{$n(o.prototype,l,{get(){return this.$$c&&l in this.$$c?this.$$c[l]:this.$$d[l]},set(c){c=sa(l,c,t),this.$$d[l]=c;var u=this.$$c;if(u){var d=Zt(u,l)?.get;d?u[l]=c:u.$set({[l]:c})}}})}),r.forEach(l=>{$n(o.prototype,l,{get(){return this.$$c?.[l]}})}),a&&(o=a(o)),e.element=o,o}function jy(e,...t){return _e(()=>{try{let n=!1;const r=[];for(const s of t)s&&typeof s=="object"&&rt in s?(r.push(rr(s,!0)),n=!0):r.push(s);n&&(Xp(e),console.log("%c[snapshot]","color: grey",...r))}catch{}}),t}const Gd=Object.freeze(Object.defineProperty({__proto__:null,CLASS:gr,FILENAME:xt,HMR:pr,NAMESPACE_SVG:Ts,STYLE:yr,aborted:Wi,action:Bd,get active_effect(){return ve},add_legacy_event_listener:gy,add_locations:Hb,add_svelte_meta:fm,animation:hg,append:k,append_styles:gg,apply:ub,assign:Vb,assign_async:Fb,async:Zb,async_derived:Zu,attach:Jo,attachment:Bb,attr:kg,attribute_effect:Lg,autofocus:Fr,await:eg,bind_active_element:Ng,bind_buffered:Fg,bind_checked:cs,bind_content_editable:sy,bind_current_time:Vg,bind_element_size:ry,bind_ended:Wg,bind_files:Bg,bind_focused:iy,bind_group:qg,bind_muted:Zg,bind_online:Qg,bind_paused:Xg,bind_playback_rate:Gg,bind_played:Hg,bind_prop:$g,bind_property:ay,bind_ready_state:Yg,bind_resize_observer:ny,bind_seekable:Ug,bind_seeking:Kg,bind_select_value:ms,bind_this:Le,bind_value:Se,bind_volume:Jg,bind_window_scroll:oy,bind_window_size:ly,boundary:Xu,bubble_event:by,check_target:Gb,child:p,cleanup_styles:Ub,clsx:Fd,comment:Be,component:qs,create_custom_element:Py,create_ownership_validator:Yb,css_props:rg,customizable_select:Og,deep_read:ga,deep_read_state:Ko,deferred_template_effect:eb,delegate:ce,delegated:U,derived:H,derived_safe_equal:zo,get document(){return sd},each:pe,eager:Rm,effect:At,effect_root:Ur,effect_tracking:Os,element:mg,equals:Wm,event:Re,exclude_from_object:_p,fallback:yp,first_child:he,flush:Dn,for_await_track_reactivity_loss:Om,from_html:A,from_mathml:hb,from_svg:Yo,from_tree:pb,get:i,head:bg,hmr:Wb,html:og,hydrate_template:rm,if:K,index:dt,init:py,init_select:Zo,inspect:Jb,invalid_default_snippet:Sp,invalidate_inner_signals:rb,invalidate_store:wm,invoke_error_boundary:fn,key:ng,legacy_api:Xb,legacy_pre_effect:Zm,legacy_pre_effect_reset:Qm,legacy_rest_props:Ey,log_if_contains_state:jy,mark_store_binding:Im,mutable_source:Ha,mutate:Um,next:qt,noop:St,once:fy,pending:Lm,pop:oe,preventDefault:hy,prevent_snippet_stringification:Md,prop:$,props_id:gb,proxy:le,push:ie,raf:un,reactive_import:my,remove_input_defaults:ge,remove_textarea_child:Bo,render_effect:Ve,replay_events:cb,reset:v,rest_props:xy,run:Nm,run_after_blockers:Ju,safe_get:ob,sanitize_slots:cg,save:zm,select_option:ps,selectedcontent:zg,self:uy,set:x,set_attribute:ne,set_checked:Qo,set_class:de,set_custom_element_data:Mg,set_default_checked:Rg,set_default_value:Pg,set_selected:$o,set_style:He,set_text:z,set_value:bs,set_xlink_attribute:jg,setup_stores:km,sibling:w,slot:lg,snapshot:rr,snippet:Ht,spread_props:Vs,state:F,stopImmediatePropagation:vy,stopPropagation:dy,store_get:ym,store_mutate:xm,store_set:Uu,store_unsub:_m,strict_equals:Km,tag:cm,tag_proxy:Lu,template_effect:N,text:$t,tick:Ns,to_array:xu,trace:lm,track_reactivity_loss:Ui,transition:pg,trusted:cy,untrack:_e,update:Mr,update_legacy_props:yy,update_pre:Hm,update_pre_prop:wy,update_pre_store:Em,update_prop:_y,update_store:Sm,user_effect:xe,user_pre_effect:dd,validate_binding:Ay,validate_dynamic_element_tag:Pb,validate_snippet_args:Qb,validate_store:jb,validate_void_dynamic_element:Rb,wait:qm,get window(){return Hi},with_script:mb,wrap_snippet:Mb},Symbol.toStringTag,{value:"Module"}));class Qi{#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 bc{#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 My=["workspace","user"],Ya="state:manage",rn={ephemeral:new Qi,session:new Qi,workspace:new bc("sh3:workspace:"),user:new bc("sh3:user:")},Ti=new Map;let Ri=!1;function Dy(e,t,n){Ti.set(`${e}:${t}`,{zone:e,shardId:t,value:n}),!Ri&&(Ri=!0,queueMicrotask(()=>{Ri=!1;for(const{zone:r,shardId:s,value:a}of Ti.values())rn[r].write(s,a);Ti.clear()}))}function Ga(e,t){const n={};for(const r of Object.keys(t)){const s=t[r],o=rn[r].read(e),l={...s,...o??{}},c=le(l);n[r]=c,My.includes(r)&&Ur(()=>{let u=!0;xe(()=>{const d=rr(c);if(u){u=!1;return}Dy(r,e,d)})})}return n}function Pi(e,t){rn[e]=t}function Ly(e,t){return rn[e].read(t)}function $i(e,t){rn[e].delete(t)}const zy="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(zy);const Oy=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function Ny(e){const t=document.activeElement;function n(){return Array.from(e.querySelectorAll(Oy))}function r(s){if(s.key!=="Tab")return;const a=n();if(a.length===0){s.preventDefault();return}const o=a[0],l=a[a.length-1],c=document.activeElement;s.shiftKey&&(c===o||!e.contains(c))?(s.preventDefault(),l.focus()):!s.shiftKey&&(c===l||!e.contains(c))&&(s.preventDefault(),o.focus())}return e.addEventListener("keydown",r),queueMicrotask(()=>{(n()[0]??e).focus()}),()=>{e.removeEventListener("keydown",r),t&&document.contains(t)&&t.focus()}}var qy=A('<div class="modal-frame svelte-2tcvcm" role="presentation"><div class="modal-box svelte-2tcvcm" role="dialog" aria-modal="true" tabindex="-1"><!></div></div>');function By(e,t){ie(t,!0);let n;xe(()=>{if(n)return Ny(n)});function r(l){t.onBackdropClick&&l.target===l.currentTarget&&t.onBackdropClick()}var s=qy(),a=p(s),o=p(a);qs(o,()=>t.Content,(l,c)=>{c(l,Vs(()=>t.contentProps,{get close(){return t.close}}))}),v(a),Le(a,l=>n=l,()=>n),v(s),N(()=>He(a,t.boxStyle)),U("click",s,r),k(e,s),oe()}ce(["click"]);const nl={};function Vy(e,t){nl[e]=t}function Fy(e){delete nl[e]}function Xa(e){const t=nl[e];if(!t)throw new Error(`Overlay layer "${e}" root is not registered — Shell.svelte must mount before opening overlays on this layer.`);return t}const Ln=le(new Map),nt=le({id:null}),Lr=le({id:null});function Uy(){return Lr.id}function gs(e){Ln.set(e.manifest.id,e)}function Wr(){return Array.from(Ln.values()).map(e=>e.manifest)}function rl(){const e=nt.id;return e?Ln.get(e)?.manifest??null:null}function zn(e){return Ln.get(e)}const us=[],Er=[];let ys=null;function Hy(e){ys=e}function Ky(e){if(!nt.id)throw new Error("pushNavEntry requires an active app");const t=Symbol("nav-entry");return Er.push({id:t,label:e.label,onPop:e.onPop}),{remove(){const n=Er.findIndex(r=>r.id===t);n>=0&&Er.splice(n,1)}}}function Xd(e){const t=Symbol("dismissable");return us.push({id:t,dismiss:e}),{unregister(){const n=us.findIndex(r=>r.id===t);n>=0&&us.splice(n,1)}}}function Jd(){Er.length=0}function Wy(){if(us.length>0){us.pop().dismiss();return}if(Er.length>0){Er.pop().onPop();return}nt.id&&ys&&ys.returnToHome()}function Yy(){nt.id||Lr.id&&ys&&ys.launchApp(Lr.id)}const Et=[];let ka=!1,Mt=null;const Gy=.5;function Zd(){const e=Xa("modal");if(Et.length===0){Mt&&(Mt.remove(),Mt=null);return}Mt||(Mt=document.createElement("div"),Mt.className="sh3-modal-backdrop",Mt.style.position="absolute",Mt.style.inset="0",Mt.style.pointerEvents="auto",Mt.style.transition="background-color 120ms ease",Mt.style.background=`rgba(0, 0, 0, ${Gy})`);const t=Et[Et.length-1].host;e.insertBefore(Mt,t)}function Qd(e){e.key==="Escape"&&Et.length!==0&&(e.stopPropagation(),e.preventDefault(),Et[Et.length-1].handle.close())}function Xy(){ka||(ka=!0,document.addEventListener("keydown",Qd,!0))}function Jy(){Et.length>0||ka&&(ka=!1,document.removeEventListener("keydown",Qd,!0))}function $d(e){const t=Et.indexOf(e);t<0||(Et.splice(t,1),Xe(e.frame),e.host.remove(),Zd(),Jy())}function Zy(e,t,n){const r=Xa("modal"),s=document.createElement("div");s.className="sh3-modal-host",s.dataset.shellOverlayHost="modal",s.style.position="absolute",s.style.inset="0",s.style.pointerEvents="auto",r.appendChild(s);const a={},o={close:()=>$d(a)},l=Xd(()=>o.close()),c=o.close;o.close=()=>{l.unregister(),c()};const u=qe(By,{target:s,props:{Content:e,contentProps:t??{},close:o.close,boxStyle:n?.boxStyle,onBackdropClick:n?.dismissOnBackdrop?o.close:void 0}});return a.host=s,a.frame=u,a.handle=o,Et.push(a),Zd(),Xy(),o}function Qy(){for(;Et.length>0;)$d(Et[Et.length-1])}const Kt={open:Zy,closeAll:Qy};var $y=A('<div class="popup-frame svelte-mp81cl" role="menu" tabindex="-1"><!></div>');function e_(e,t){ie(t,!0);let n,r=F(-9999),s=F(-9999);xe(()=>{if(!n)return;const l=n.getBoundingClientRect(),c=4,u=window.innerWidth,d=window.innerHeight;let f=t.anchorRect.bottom+c,h=t.anchorRect.left;if(h+l.width>u-c&&(h=Math.max(c,u-l.width-c)),f+l.height>d-c){const b=t.anchorRect.top-l.height-c;f=b>=c?b:Math.max(c,d-l.height-c)}x(r,f,!0),x(s,h,!0)});var a=$y(),o=p(a);qs(o,()=>t.Content,(l,c)=>{c(l,Vs(()=>t.contentProps,{get close(){return t.close}}))}),v(a),Le(a,l=>n=l,()=>n),N(()=>He(a,`top: ${i(r)??""}px; left: ${i(s)??""}px;`)),k(e,a),oe()}function t_(e){return e instanceof HTMLElement?e.getBoundingClientRect():new DOMRect(e.x,e.y,0,0)}let Vt=null;function ef(e){if(!Vt)return;const t=e.target;t&&Vt.host.contains(t)||Vt.handle.close()}function tf(e){Vt&&e.key==="Escape"&&(e.stopPropagation(),e.preventDefault(),Vt.handle.close())}function n_(){document.addEventListener("pointerdown",ef,!0),document.addEventListener("keydown",tf,!0)}function r_(){document.removeEventListener("pointerdown",ef,!0),document.removeEventListener("keydown",tf,!0)}function eo(e){Vt===e&&(Vt=null,r_(),Xe(e.frame),e.host.remove())}function s_(e,t,n){Vt&&eo(Vt);const r=Xa("popup"),s=document.createElement("div");s.className="sh3-popup-host",s.dataset.shellOverlayHost="popup",s.style.position="absolute",s.style.inset="0",s.style.pointerEvents="none",r.appendChild(s);const a=t_(t.anchor),o={},l={close:()=>eo(o)},c=Xd(()=>l.close()),u=l.close;l.close=()=>{c.unregister(),u()};const d=qe(e_,{target:s,props:{Content:e,contentProps:n??{},anchorRect:a,close:l.close}});return o.host=s,o.frame=d,o.handle=l,Vt=o,queueMicrotask(n_),l}function a_(){Vt&&eo(Vt)}const to={show:s_,close:a_};var i_=A('<div role="status" aria-live="polite"><span class="toast-level svelte-12gwnj0"> </span> <span class="toast-message svelte-12gwnj0"> </span></div>');function o_(e,t){var n=i_(),r=p(n),s=p(r,!0);v(r);var a=w(r,2),o=p(a,!0);v(a),v(n),N(()=>{de(n,1,`toast toast-${t.level??""}`,"svelte-12gwnj0"),z(s,t.level),z(o,t.message)}),U("click",n,function(...l){t.close?.apply(this,l)}),k(e,n)}ce(["click"]);const xa=new Set;let ft=null;function l_(){if(ft&&ft.isConnected)return ft;const e=Xa("toast");return ft=document.createElement("div"),ft.className="sh3-toast-stack",ft.style.position="absolute",ft.style.right="16px",ft.style.bottom="16px",ft.style.display="flex",ft.style.flexDirection="column-reverse",ft.style.gap="6px",ft.style.pointerEvents="none",e.appendChild(ft),ft}function no(e){xa.has(e)&&(xa.delete(e),e.timer!==null&&(clearTimeout(e.timer),e.timer=null),Xe(e.instance),e.host.remove())}function c_(e,t={}){const n=t.level??"info",r=t.duration??3e3,s=l_(),a=document.createElement("div");a.className="sh3-toast-host",s.appendChild(a);const o={},l={close:()=>no(o)},c=qe(o_,{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(()=>no(o),r):null,xa.add(o),l}function u_(){for(const e of[...xa])no(e)}const vn={notify:c_,clear:u_},gc={w:120,h:80};function sl(e){if(e.type==="slot")return{...gc};if(e.type==="tabs")return{...gc};const t=e.children.map(sl);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 yc=32,_c={x:48,y:48};function nf(e,t){if(e.length===0)return{..._c};const n=e[e.length-1],r={x:n.position.x+yc,y:n.position.y+yc};return r.x+120>t.w||r.y+32>t.h?{..._c}:r}let wc=0;function rf(){return wc+=1,`float-${Date.now().toString(36)}-${wc.toString(36)}`}function sf(e){return e.type==="slot"?e.viewId==null:e.type==="tabs"?e.tabs.every(t=>t.viewId==null):e.children.every(sf)}function d_(e){return e.closest("[data-shell-overlay-host]")}class f_ extends Map{#e=new Map;#t=F(0);#n=F(0);#s=wn||-1;constructor(t){if(super(),t){for(var[n,r]of t)super.set(n,r);this.#n.v=super.size}}#r(t){return wn===this.#s?F(t):gt(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),x(this.#n,super.size),cn(l);else if(a!==n){cn(s);var c=l.reactions===null?null:new Set(l.reactions),u=c===null||!s.reactions?.every(d=>c.has(d));u&&cn(l)}return o}delete(t){var n=this.#e,r=n.get(t),s=super.delete(t);return r!==void 0&&(n.delete(t),x(r,-1)),s&&(x(this.#n,super.size),cn(this.#t)),s}clear(){if(super.size!==0){super.clear();var t=this.#e;x(this.#n,0);for(var n of t.values())x(n,-1);cn(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 ro=new f_;function _s(e,t){t?ro.set(e,!0):ro.delete(e)}function v_(e){return ro.get(e)??!1}let h_=[],al=null,Fs=()=>({w:1600,h:900});function p_(e,t){al=e,Fs=t}function m_(){al=null,Fs=()=>({w:1600,h:900})}function dr(){return al??h_}const il=new Map;function b_(e){return il.get(e)}const kn=new Map;let kc=0;function g_(e){return kc+=1,`float:${e}:${kc}`}const y_={w:600,h:400};function __(e,t){return{w:Math.max(e.w,t.w),h:Math.max(e.h,t.h)}}function w_(e,t={}){const n=dr(),r=rf(),s=g_(e);let a;if(t.dismissable){const d={type:"slot",slotId:s,viewId:e};t.meta&&(d.meta=t.meta),a=d}else{const d=t.title??e,f={slotId:s,viewId:e,label:d};t.meta&&(f.meta=t.meta),a={type:"tabs",tabs:[f],activeTab:0}}const o=sl(a),l=t.size??__(y_,o),c=t.position??nf(n,Fs()),u={id:r,content:a,position:c,size:l,title:t.title};if(t.dismissable&&(u.dismissable=!0),t.dismissable&&t.anchor){const d=d_(t.anchor);d&&il.set(r,d)}return n.push(u),r}function k_(e){const t=dr(),n=rf(),r=e.position??nf(t,Fs()),s={id:n,content:e.content,position:r,size:e.size,title:e.title};return t.push(s),n}function x_(e){const t=dr(),n=t.findIndex(r=>r.id===e);n<0||(t.splice(n,1),il.delete(e),kn.delete(e),_s(e,!1))}function S_(){return dr().slice()}function af(e){const t=dr(),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 of(e){if(kn.has(e))return;const t=dr().find(r=>r.id===e);if(!t)return;kn.set(e,{position:{x:t.position.x,y:t.position.y},size:{w:t.size.w,h:t.size.h}}),_s(e,!0);const n=Fs();t.position.x=0,t.position.y=0,t.size.w=n.w,t.size.h=n.h,af(e)}function lf(e){const t=kn.get(e);if(!t)return;const n=dr().find(r=>r.id===e);if(!n){kn.delete(e),_s(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,kn.delete(e),_s(e,!1)}function E_(e){kn.has(e)?lf(e):of(e)}function I_(e){kn.has(e)&&(kn.delete(e),_s(e,!1))}function A_(e){return v_(e)}const Ce={open:w_,openWithContent:k_,close:x_,list:S_,focus:af,maximize:of,restore:lf,toggleMaximize:E_,unmaximize:I_,isMaximized:A_};let Sa=null;function C_(e){Sa=e}function T_(){Sa=null}function ol(){if(!Sa)throw new Error("presetManager: no app attached — bind an AppLayoutBlob first");return Sa}function R_(){return Object.keys(ol().presets)}function P_(){return ol().activePreset}function j_(e){const t=ol();if(!(e in t.presets))throw new Error(`presetManager.switch: unknown preset "${e}"`);t.activePreset=e}const M_={list:R_,active:P_,switch:j_},kr=new Map,aa=new Map,so=new Set;function xc(e){const t=aa.get(e);if(t)for(const n of t)n();for(const n of so)n(e)}function cf(e,t){const n=Symbol();let r=kr.get(e);r||(r=new Map,kr.set(e,r)),r.set(n,t),xc(e);let s=!1;return()=>{if(s)return;s=!0;const a=kr.get(e);a&&a.delete(n)&&(a.size===0&&kr.delete(e),xc(e))}}function Ja(e){const t=kr.get(e);return t?Array.from(t.values()):[]}function D_(){return Array.from(kr.keys())}function uf(e,t){let n=aa.get(e);n||(n=new Set,aa.set(e,n)),n.add(t);let r=!1;return()=>{r||(r=!0,n.delete(t),n.size===0&&aa.delete(e))}}function L_(e){so.add(e);let t=!1;return()=>{t||(t=!0,so.delete(e))}}const z_=Object.freeze([".md",".txt",".json",".guml",".css",".js",".ts",".tsx",".jsx",".html",".svg",".csv",".yaml",".yml",".xml",".log",".ini",".toml"]);function O_(e){return e.kind?e.kind:e.extension&&z_.includes(e.extension.toLowerCase())?"text":"binary"}const ia=[];function Sc(e){return ia.push(e),()=>{const t=ia.indexOf(e);t>=0&&ia.splice(t,1)}}function N_(e,t=[]){return[...ia,...t].filter(r=>{try{return r.appliesTo(e)}catch{return!1}}).sort((r,s)=>(s.priority??0)-(r.priority??0))[0]??null}var q_=A("<span> </span>"),B_=A('<div class="sh3-conflict-text-dual svelte-iwgja4"><div role="button" tabindex="0"><header class="sh3-conflict-text-head svelte-iwgja4"> </header> <pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre></div> <div role="button" tabindex="0"><header class="sh3-conflict-text-head svelte-iwgja4"> </header> <pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre></div></div> <details class="sh3-conflict-text-diff svelte-iwgja4"><summary> </summary> <pre class="svelte-iwgja4"><code></code></pre></details>',1),V_=A("<option> </option>"),F_=A("<button> </button>"),U_=A('<pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre>'),H_=A('<div class="sh3-conflict-text-tabs svelte-iwgja4"><div class="sh3-conflict-text-picker svelte-iwgja4"><label>Reference: <select class="svelte-iwgja4"></select></label></div> <div class="sh3-conflict-text-tablist svelte-iwgja4"></div> <!></div>'),K_=A('<div class="sh3-conflict-text svelte-iwgja4"><!></div>');function W_(e,t){ie(t,!0);let n=F("");xe(()=>{(!i(n)||!t.item.branches.find(b=>b.origin===i(n)))&&x(n,t.item.branches[0]?.origin??"local",!0)});const r=H(()=>t.item.branches.length===2),s=H(()=>i(r)?t.item.branches[0]:t.item.branches.find(b=>b.origin===i(n))??t.item.branches[0]),a=H(()=>i(r)?t.item.branches[1]:t.item.branches.find(b=>b.origin===t.selectedOrigin)??t.item.branches[1]??t.item.branches[0]);function o(b,S){const _=(b??"").split(/\r?\n/),y=(S??"").split(/\r?\n/),E=[],g=Math.max(_.length,y.length);for(let m=0;m<g;m++){const I=_[m],P=y[m];I===P?typeof I=="string"&&E.push({kind:"same",text:I}):(typeof I=="string"&&E.push({kind:"left",text:I}),typeof P=="string"&&E.push({kind:"right",text:P}))}return E}const l=H(()=>!i(s)||!i(a)?[]:o(i(s).content??"",i(a).content??"")),c=H(()=>i(l).filter(b=>b.kind!=="same").length);var u=K_(),d=p(u);{var f=b=>{var S=B_(),_=he(S),y=p(_);let E;var g=p(y),m=p(g);v(g);var I=w(g,2),P=p(I),T=p(P,!0);v(P),v(I),v(y);var M=w(y,2);let L;var j=p(M),D=p(j);v(j);var C=w(j,2),O=p(C),q=p(O,!0);v(O),v(C),v(M),v(_);var R=w(_,2),V=p(R),X=p(V);v(V);var Y=w(V,2),Q=p(Y);pe(Q,21,()=>i(l),dt,(Z,se)=>{var J=q_(),B=p(J);v(J),N(()=>{de(J,1,`diff-${i(se).kind}`,"svelte-iwgja4"),z(B,`${i(se).kind==="same"?" ":i(se).kind==="left"?"- ":"+ "}${i(se).text??""}
8
- `)}),k(Z,J)}),v(Q),v(Y),v(R),N(()=>{E=de(y,1,"sh3-conflict-text-pane svelte-iwgja4",null,E,{selected:i(s).origin===t.selectedOrigin}),z(m,`${i(s).origin??""} · v${i(s).version??""}`),z(T,i(s).content??""),L=de(M,1,"sh3-conflict-text-pane svelte-iwgja4",null,L,{selected:i(a).origin===t.selectedOrigin}),z(D,`${i(a).origin??""} · v${i(a).version??""}`),z(q,i(a).content??""),z(X,`Line diff (${i(c)??""} difference${i(c)===1?"":"s"})`)}),U("click",y,()=>t.onSelect(i(s).origin)),U("keydown",y,Z=>{(Z.key==="Enter"||Z.key===" ")&&t.onSelect(i(s).origin)}),U("click",M,()=>t.onSelect(i(a).origin)),U("keydown",M,Z=>{(Z.key==="Enter"||Z.key===" ")&&t.onSelect(i(a).origin)}),k(b,S)},h=b=>{var S=H_(),_=p(S),y=p(_),E=w(p(y));pe(E,21,()=>t.item.branches,P=>P.origin,(P,T)=>{var M=V_(),L=p(M,!0);v(M);var j={};N(()=>{z(L,i(T).origin),j!==(j=i(T).origin)&&(M.value=(M.__value=i(T).origin)??"")}),k(P,M)}),v(E),v(y),v(_);var g=w(_,2);pe(g,21,()=>t.item.branches,P=>P.origin,(P,T)=>{var M=F_();let L;var j=p(M);v(M),N(()=>{L=de(M,1,"sh3-conflict-text-tab svelte-iwgja4",null,L,{selected:i(T).origin===t.selectedOrigin}),z(j,`${i(T).origin??""} · v${i(T).version??""}`)}),U("click",M,()=>t.onSelect(i(T).origin)),k(P,M)}),v(g);var m=w(g,2);{var I=P=>{var T=U_(),M=p(T),L=p(M,!0);v(M),v(T),N(()=>z(L,i(a).content??"")),k(P,T)};K(m,P=>{i(a)&&P(I)})}v(S),ms(E,()=>i(n),P=>x(n,P)),k(b,S)};K(d,b=>{i(r)&&i(s)&&i(a)?b(f):b(h,-1)})}v(u),k(e,u),oe()}ce(["click","keydown"]);var Y_=A("· <code> </code>",1),G_=A('<li class="sh3-conflict-meta-li svelte-1nz3djn"><button type="button"><div class="sh3-conflict-meta-origin svelte-1nz3djn"> </div> <div class="sh3-conflict-meta-detail svelte-1nz3djn"> <!></div></button></li>'),X_=A('<div class="sh3-conflict-meta svelte-1nz3djn"><div class="sh3-conflict-meta-note svelte-1nz3djn">No preview available for this content. Pick the branch you want to keep.</div> <ul class="sh3-conflict-meta-list svelte-1nz3djn"></ul></div>');function J_(e,t){ie(t,!0);function n(o){return typeof o!="number"?"—":o<1024?`${o} B`:o<1024*1024?`${(o/1024).toFixed(1)} KiB`:`${(o/(1024*1024)).toFixed(2)} MiB`}function r(o){const l=Date.now()-o;return l<6e4?"just now":l<36e5?`${Math.floor(l/6e4)}m ago`:l<864e5?`${Math.floor(l/36e5)}h ago`:new Date(o).toLocaleString()}var s=X_(),a=w(p(s),2);pe(a,21,()=>t.item.branches,o=>o.origin,(o,l)=>{var c=G_(),u=p(c);let d;var f=p(u),h=p(f,!0);v(f);var b=w(f,2),S=p(b),_=w(S);{var y=E=>{var g=Y_(),m=w(he(g)),I=p(m,!0);v(m),N(()=>z(I,i(l).hashPreview)),k(E,g)};K(_,E=>{i(l).hashPreview&&E(y)})}v(b),v(u),v(c),N((E,g)=>{d=de(u,1,"sh3-conflict-meta-row svelte-1nz3djn",null,d,{selected:i(l).origin===t.selectedOrigin}),z(h,i(l).origin),z(S,`v${i(l).version??""} · ${E??""} · ${g??""} `)},[()=>r(i(l).at),()=>n(i(l).sizeBytes)]),U("click",u,()=>t.onSelect(i(l).origin)),k(o,c)}),v(a),v(s),k(e,s),oe()}ce(["click"]);const Z_=1048576;function Q_(e){return typeof e=="number"&&e>Z_}const $_={id:"sh3-core.text",priority:1,appliesTo:e=>O_(e)!=="text"?!1:!e.branches.some(t=>Q_(t.sizeBytes)),mount(e,t){const n=qe(W_,{target:e,props:t});return()=>{Xe(n)}}},ew={id:"sh3-core.meta",priority:0,appliesTo:()=>!0,mount(e,t){const n=qe(J_,{target:e,props:t});return()=>{Xe(n)}}};let Ec=!1;function tw(){Ec||(Ec=!0,Sc($_),Sc(ew))}var nw=A('<div class="sh3-conflict-prompt svelte-1jvtzud"><h3 class="sh3-conflict-prompt-title svelte-1jvtzud"> </h3> <p class="sh3-conflict-prompt-intro svelte-1jvtzud">Pick one option for the whole batch, or resolve each conflict individually.</p> <div class="sh3-conflict-prompt-actions svelte-1jvtzud"><button type="button" class="sh3-conflict-prompt-primary svelte-1jvtzud">Overwrite with most recent</button> <button type="button" class="sh3-conflict-prompt-secondary svelte-1jvtzud">Resolve individually</button> <button type="button" class="sh3-conflict-prompt-cancel svelte-1jvtzud">Cancel</button></div></div>');function rw(e,t){var n=nw(),r=p(n),s=p(r);v(r);var a=w(r,4),o=p(a);Fr(o,!0);var l=w(o,2),c=w(l,2);v(a),v(n),N(()=>z(s,`${t.count??""} conflict${t.count===1?"":"s"} to resolve`)),U("click",o,function(...u){t.onOverwriteMostRecent?.apply(this,u)}),U("click",l,function(...u){t.onResolveIndividually?.apply(this,u)}),U("click",c,function(...u){t.onCancel?.apply(this,u)}),k(e,n)}ce(["click"]);var sw=A('<span class="sh3-conflict-detail-counter svelte-pw8iv6"> </span>'),aw=A('<button type="button"><span><!></span> <span class="sh3-conflict-detail-rail-label svelte-pw8iv6"> </span></button>'),iw=A('<aside class="sh3-conflict-detail-rail svelte-pw8iv6"></aside>'),ow=A('<label class="sh3-conflict-detail-branch svelte-pw8iv6"><input type="radio"/> <span> </span></label>'),lw=A('<div class="sh3-conflict-detail-branches svelte-pw8iv6"></div> <div class="sh3-conflict-detail-renderer svelte-pw8iv6"></div>',1),cw=A('<div class="sh3-conflict-detail svelte-pw8iv6"><header class="sh3-conflict-detail-head svelte-pw8iv6"><h3 class="svelte-pw8iv6"> </h3> <!></header> <div class="sh3-conflict-detail-body svelte-pw8iv6"><!> <section class="sh3-conflict-detail-main svelte-pw8iv6"><!></section></div> <footer class="sh3-conflict-detail-foot svelte-pw8iv6"><div class="sh3-conflict-detail-nav svelte-pw8iv6"><button type="button" class="svelte-pw8iv6">← Prev</button> <button type="button" class="svelte-pw8iv6"> </button> <button type="button" class="svelte-pw8iv6">Next →</button></div> <div class="sh3-conflict-detail-actions svelte-pw8iv6"><button type="button" class="sh3-conflict-detail-cancel svelte-pw8iv6">Cancel</button> <button type="button" class="sh3-conflict-detail-done svelte-pw8iv6">Done</button></div></footer></div>');function uw(e,t){ie(t,!0);const n=H(()=>t.items[t.currentIndex]),r=H(()=>i(n)?t.selections[i(n).id]??i(n).branches[0]?.origin??"":""),s=H(()=>i(n)?N_(i(n),t.contributed):null);let a=F(void 0),o=null;xe(()=>{if(i(n),i(s),i(r),o&&(o(),o=null),!i(a)||!i(n)||!i(s))return;const V={item:i(n),selectedOrigin:i(r),onSelect:X=>t.onSelect(i(n).id,X)};return o=i(s).mount(i(a),V),()=>{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=H(()=>t.items.map(V=>t.skipped[V.id]?"skipped":t.selections[V.id]?"resolved":"pending"));var d=cw(),f=p(d),h=p(f),b=p(h,!0);v(h);var S=w(h,2);{var _=V=>{var X=sw(),Y=p(X);v(X),N(()=>z(Y,`${t.currentIndex+1} / ${t.items.length??""}`)),k(V,X)};K(S,V=>{t.items.length>1&&V(_)})}v(f);var y=w(f,2),E=p(y);{var g=V=>{var X=iw();pe(X,23,()=>t.items,Y=>Y.id,(Y,Q,Z)=>{var se=aw();let J;var B=p(se),W=p(B);{var ae=Me=>{var Rt=$t("✓");k(Me,Rt)},G=Me=>{var Rt=$t("⟶");k(Me,Rt)},ue=Me=>{var Rt=$t("·");k(Me,Rt)};K(W,Me=>{i(u)[i(Z)]==="resolved"?Me(ae):i(u)[i(Z)]==="skipped"?Me(G,1):Me(ue,-1)})}v(B);var be=w(B,2),at=p(be,!0);v(be),v(se),N(()=>{J=de(se,1,"sh3-conflict-detail-rail-item svelte-pw8iv6",null,J,{selected:i(Z)===t.currentIndex}),de(B,1,`sh3-conflict-detail-rail-state ${i(u)[i(Z)]??""}`,"svelte-pw8iv6"),z(at,i(Q).label)}),U("click",se,()=>t.onNavigate(i(Z))),k(Y,se)}),v(X),k(V,X)};K(E,V=>{t.items.length>1&&V(g)})}var m=w(E,2),I=p(m);{var P=V=>{var X=lw(),Y=he(X);pe(Y,21,()=>i(n).branches,Z=>Z.origin,(Z,se)=>{var J=ow(),B=p(J);ge(B);var W=w(B,2),ae=p(W);v(W),v(J),N(()=>{ne(B,"name",`branch-${i(n).id??""}`),bs(B,i(se).origin),Qo(B,i(r)===i(se).origin),z(ae,`${i(se).origin??""} · v${i(se).version??""}`)}),U("change",B,()=>t.onSelect(i(n).id,i(se).origin)),k(Z,J)}),v(Y);var Q=w(Y,2);Le(Q,Z=>x(a,Z),()=>i(a)),k(V,X)};K(I,V=>{i(n)&&V(P)})}v(m),v(y);var T=w(y,2),M=p(T),L=p(M),j=w(L,2),D=p(j,!0);v(j);var C=w(j,2);v(M);var O=w(M,2),q=p(O),R=w(q,2);v(O),v(T),v(d),N(()=>{z(b,t.title),L.disabled=t.currentIndex===0,z(D,i(n)&&t.skipped[i(n).id]?"Unskip":"Skip"),C.disabled=t.currentIndex>=t.items.length-1}),U("click",L,l),U("click",j,()=>i(n)&&t.onToggleSkip(i(n).id)),U("click",C,c),U("click",q,function(...V){t.onCancel?.apply(this,V)}),U("click",R,function(...V){t.onDone?.apply(this,V)}),k(e,d),oe()}ce(["click","change"]);function df(e,t){return t.at-e.at}function dw(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(df)[0]}}function fw(e,t){ie(t,!0);const n=t.items.length>=2||t.requirePrompt;let r=F(le(n?"prompt":"detail")),s=F(le(Object.fromEntries(t.items.map(m=>{const I=dw(m.branches,t.mostRecentBy)?.origin??m.branches[0]?.origin??"";return[m.id,I]})))),a=F(le({})),o=F(0),l=!1;Xo(()=>{l||(l=!0,t.onCancel())});function c(){if(l)return;l=!0;const m=[],I=[];for(const P of t.items){if(i(a)[P.id]){I.push(P.id);continue}const T=i(s)[P.id],M=P.branches.find(L=>L.origin===T);M&&m.push({itemId:P.id,chosen:M,meta:P.meta})}t.onResolve(m,I),t.close()}function u(){l||(l=!0,t.onCancel(),t.close())}function d(){c()}function f(){x(r,"detail")}function h(m,I){if(x(s,{...i(s),[m]:I},!0),i(a)[m]){const P={...i(a)};delete P[m],x(a,P,!0)}}function b(m){x(a,{...i(a),[m]:!i(a)[m]},!0)}function S(m){x(o,m,!0)}var _=Be(),y=he(_);{var E=m=>{rw(m,{get count(){return t.items.length},onOverwriteMostRecent:d,onResolveIndividually:f,onCancel:u})},g=m=>{uw(m,{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:h,onNavigate:S,onToggleSkip:b,onDone:c,onCancel:u})};K(y,m=>{i(r)==="prompt"?m(E):m(g,-1)})}k(e,_),oe()}const ff="sh3-core.conflictRenderer";class vf extends Error{constructor(t){super(t),this.name="ConflictPermissionError"}}class vw extends Error{constructor(){super("Caller shard deactivated while conflict session was active"),this.name="ConflictSessionOrphanedError"}}function hw(){try{return Ja(ff)}catch{return[]}}function hf(e,t={}){return tw(),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??df,a=t.requirePrompt??!1,o=hw();let l=!1;const d={items:e,title:r,mostRecentBy:s,requirePrompt:a,contributed:o,onResolve:(f,h)=>{l||(l=!0,n({status:"resolved",choices:f,skipped:h}))},onCancel:()=>{l||(l=!0,n({status:"cancelled"}))}};Kt.open(fw,d,{boxStyle:"max-width: none; min-width: 360px; padding: 0;"})})}function pw(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 mw(e,t){const n=e.browse;if(!n?.statusFrom||!n?.readBranchFrom||!n?.resolveConflictFrom)throw new vf(`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 bw(e){const t=e.lastIndexOf(".");if(t<0)return;const n=e.lastIndexOf("/");if(!(t<n))return e.slice(t)}async function gw(e,t,n={}){const r=e.shardId,s=t.shardId===r?pw(e):mw(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 h=bw(d),b=[];for(const S of f.branches??[]){const _=await s.readBranch(d,S.origin).catch(()=>null);b.push({origin:S.origin,version:S.version,at:S.at,content:_??void 0,sizeBytes:_?new TextEncoder().encode(_).length:void 0})}o.push({id:d,label:d,extension:h,branches:b,meta:{shardId:t.shardId,path:d,docVersion:f.version}})}const l=await hf(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 yw={resolve:hf,resolveDocuments:gw},pf="sh3.color-picker",_w={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 ww(e={}){return[...Ja(pf),_w].sort((r,s)=>(s.priority??0)-(r.priority??0))[0].open(e)}const kw={pick:ww};let Kn=null;function xw(e){Kn=e}async function Ir(e){return Kn?{...Kn.bindings[e]??{}}:{}}async function Ic(e,t,n){if(!Kn)return;const r={...Kn.bindings[e]??{}};n===void 0?delete r[t]:r[t]=n,Kn.bindings={...Kn.bindings,[e]:r}}const ll="sh3.actions",ji=new Set;function Sw(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.`),()=>{};ji.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.`),ji.add(e.id);const r=cf(ll,{action:e,ownerShardId:t});let s=!1;return()=>{s||(s=!0,r(),ji.delete(e.id))}}function et(){return Ja(ll)}function Ew(e){return uf(ll,e)}function Wt(e){return typeof e.label=="function"?e.label():e.label}const Iw=["Ctrl","Alt","Shift","Meta"],Ac={control:"Ctrl",ctrl:"Ctrl",alt:"Alt",option:"Alt",shift:"Shift",meta:"Meta",cmd:"Meta",command:"Meta",super:"Meta",win:"Meta"},Aw=new Set(["Control","Alt","Shift","Meta"]);function mf(e){return e.length===1?e.toUpperCase():e}function cl(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 Ac)r.add(Ac[l]);else{if(s!==void 0)throw new Error(`Multiple keys in shortcut: "${e}"`);s=mf(o)}}if(s===void 0)throw new Error(`No key in shortcut: "${e}"`);return[...Iw.filter(o=>r.has(o)),s].join("+")}function bf(e,t){if(!e.toLowerCase().includes("mod"))return e;const n=e.split("+").map(r=>r.toLowerCase()==="mod"?t==="mac"?"Meta":"Ctrl":r);return cl(n.join("+"))}function Cw(e){if(Aw.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=mf(e.key);return[...t,n].join("+")}function Tw(){return typeof navigator>"u"?"other":/Mac|iPhone|iPad|iPod/i.test(navigator.platform)?"mac":"other"}function Us(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?null:cl(r)}return e.defaultShortcut?bf(e.defaultShortcut,n):null}function Rw(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?{shortcut:null,source:"disabled"}:{shortcut:cl(r),source:"user"}}return e.defaultShortcut?{shortcut:bf(e.defaultShortcut,n),source:"default"}:{shortcut:null,source:"none"}}function Za(e){return e==="home"?"home":e==="app"?"app":typeof e=="string"&&e.startsWith("view:")?"view":typeof e=="string"&&e.startsWith("focus:")?"focus":"element"}function ul(e){return Array.isArray(e)?e:[e]}function gf(e){return e==="home"||e==="app"?null:typeof e=="string"?e:e.element}function Hs(e,t,n){const r=ul(e),s={};for(const a of r){const o=Za(a);(s[o]??=[]).push(a)}for(const a of Qa){const o=s[a];if(o){for(const l of o)if(ws(l,t,n))return l}}return null}function Pw(e,t){return typeof e=="string"||typeof t=="string"?e===t:e.element===t.element}function yf(e){return typeof e=="string"?e:`element:${e.element}`}function jw(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 Qa=["element","focus","view","app","home"];function ws(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 Mw(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=Us(r.action,t.bindings,t.platform);if(s)for(const a of ul(r.action.scope)){if(!ws(a,t,r.ownerShardId))continue;const o=Za(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 Dw(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 Lw(e){return e instanceof Element?e.closest("[data-sh3-passthrough-modifiers]")!==null:!1}function zw(e){return/(?:^|\+)(?:Ctrl|Alt|Meta)\+/.test(e)}function Ow(e){const t=Mw(e.entries,e.state),n=new Map(e.entries.map(r=>[r.action.id,r]));for(const r of Qa){const s=t[r].get(e.shortcut);if(!s)continue;const a=n.get(s);if(a)return Dw(e.target)&&!a.action.allowInInputs&&!(Lw(e.target)&&zw(e.shortcut))?null:(e.runAction(s,{action:{id:a.action.id,label:Wt(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 Nw(e){const t=e.action.disabled;return typeof t=="function"?!!t():!!t}function qw(e){const t=e.action.scope;return Array.isArray(t)?t[0]:t}function dl(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}=Rw(a.action,t.bindings,t.platform),c=Hs(a.action.scope,t,a.ownerShardId),u=typeof a.action.run=="function",d=c!==null&&u&&!Nw(a),f=d?c:qw(a),h={id:a.action.id,label:Wt(a.action),effectiveShortcut:o,bindingSource:l,scope:f,scopeBadge:gf(f),group:a.action.group,icon:a.action.icon,ownerShardId:a.ownerShardId,paletteItem:a.action.paletteItem!==!1,contextItem:a.action.contextItem!==!1,active:d};d?n[Za(c)].push(h):r.push(h)}return[...Qa.flatMap(a=>n[a]),...r]}function Bw(e,t){return dl(e,t).filter(n=>n.active)}let Gt=F(null);function Ks(){return i(Gt)}function $a(e){return{get(){return i(Gt)},set(t){x(Gt,{type:t.type,ref:t.ref,ownerShardId:e},!0)},clear(){if(i(Gt)){if(i(Gt).ownerShardId!==e){console.warn(`[sh3] Shard "${e}" tried to clear selection owned by "${i(Gt).ownerShardId}". Ignoring.`);return}x(Gt,null)}}}}function _f(e){i(Gt)&&i(Gt).ownerShardId===e&&x(Gt,null)}function Vw(){x(Gt,null)}const Ea=new Map,fl=new Map,wf=new Set;function Fw(e){wf.add(e)}function Uw(e,t,n){if(Ea.has(e))throw new Error(`View "${e}" is already registered`);Ea.set(e,t),n!==void 0&&fl.set(e,n);for(const r of wf)r(e,t)}function kf(e){return Ea.get(e)}function Cc(e){return fl.get(e)}function xf(e){Ea.delete(e),fl.delete(e)}const zr=new Map;function Hw(e,t,n){if(zr.has(e))throw new Error(`Verb "${e}" is already registered`);zr.set(e,{verb:t,shardId:n})}function Ia(e){return zr.get(e)?.verb}function Sf(e){zr.delete(e)}function vl(){return Array.from(zr.values()).map(e=>e.verb).sort((e,t)=>e.name.localeCompare(t.name))}function Ef(){return Array.from(zr.values()).map(e=>({...e}))}function Or(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 hl(e,t){if(ao(e.docked,t))return{kind:"docked"};for(const n of e.floats)if(ao(n.content,t))return{kind:"float",floatId:n.id};return null}function ao(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(ao(n,t))return!0;return!1}function ei(e,t){const n=Or(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 Kw(e,t,n){const r=Math.max(0,Math.min(n,e.tabs.length));e.tabs.splice(r,0,t),e.activeTab=r}function Ww(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 Tc(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 Yw(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 If(e,t,n,r){const s=ks(e,t);if(!s||Af(e,t))return;if(t.length===0){const u=Yw(s),d=Tc(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=Tc(s,n,r),o=t.slice(0,-1),l=t[t.length-1],c=ks(e,o);!c||c.type!=="split"||(c.children[l]=a)}function ks(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 Af(e,t){if(t.length===0)return!1;const n=ks(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=Cf(e,null,0)}function Cf(e,t,n){if(e.type==="split"){let r=!1;for(let s=0;s<e.children.length;s++)Cf(e.children[s],e,s)&&(r=!0);for(let s=e.children.length-1;s>=0;s--){const a=e.children[s];a.type==="tabs"&&a.tabs.length===0&&!a.persistent&&!e.fixed?.[s]&&(e.children.splice(s,1),e.sizes.splice(s,1),e.pinned&&e.pinned.splice(s,1),e.collapsed&&e.collapsed.splice(s,1),e.fixed&&e.fixed.splice(s,1),r=!0)}if(e.children.length<=1&&t)return e.children.length===1?t.children[n]=e.children[0]:(t.children.splice(n,1),t.sizes.splice(n,1),t.pinned&&t.pinned.splice(n,1),t.collapsed&&t.collapsed.splice(n,1)),!0;if(e.children.length===1&&!t){const s=e.children[0],a=e;return delete a.direction,delete a.sizes,delete a.pinned,delete a.collapsed,delete a.children,Object.assign(a,s),!0}return r}return e.type==="tabs",!1}const Mn=new Map,oa=new Set;function Gw(e,t){for(const[n,r]of Mn.entries()){if(r.viewId!==e||r.handle!==void 0)continue;const s={slotId:n,viewId:e,label:r.label,meta:r.meta,setDirty(a){ti[n]=a},location(){return hl(Tt(),n)}};queueMicrotask(()=>{if(Mn.has(n)&&r.handle===void 0&&(r.handle=t.mount(r.host,s),(r.handle?.closable||n.startsWith("float:"))&&(ni[n]=!0),r.handle?.onResize)){const a=r.handle.onResize.bind(r.handle);r.resizeObserver=new ResizeObserver(o=>{for(const l of o){const c=l.contentRect;a(Math.round(c.width),Math.round(c.height))}}),r.resizeObserver.observe(r.host)}})}}Fw(Gw);const ti=le({}),ni=le({});function Xw(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",yf(`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?kf(t):void 0,c={slotId:e,viewId:t??"",label:n,meta:r,setDirty(u){ti[e]=u},location(){return hl(Tt(),e)}};if(o.handle=l?.mount(s,c),(o.handle?.closable||e.startsWith("float:"))&&(ni[e]=!0),o.handle?.onResize){const u=o.handle.onResize.bind(o.handle);o.resizeObserver=new ResizeObserver(d=>{for(const f of d){const h=f.contentRect;u(Math.round(h.width),Math.round(h.height))}}),o.resizeObserver.observe(s)}}),o}function pl(e,t,n,r){oa.delete(e);let s=Mn.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",yf(`focus:${t}`))):(s.host.removeAttribute("data-sh3-view"),s.host.removeAttribute("data-sh3-scope"))):(s=Xw(e,t,n,r),Mn.set(e,s)),s.refcount++,s.host}function ml(e,t){const n=Mn.get(e);if(n){if(n.refcount--,n.refcount>0){t&&n.host.parentNode===t&&n.host.remove();return}oa.add(e),queueMicrotask(()=>{if(!oa.has(e))return;oa.delete(e);const r=Mn.get(e);!r||r.refcount>0||(r.resizeObserver?.disconnect(),r.handle?.unmount(),r.cancelPendingMount(),r.host.remove(),Mn.delete(e),delete ti[e],delete ni[e])})}}function Tf(e){const t=io.get(e);return t||Mn.get(e)?.handle}function Jw(e){return ti[e]??!1}function Zw(e){return io.has(e)?!!io.get(e).closable:ni[e]??!1}const io=new Map;function Rf(e){if(!e||typeof e!="object")return!1;const t=e.type;return t==="split"||t==="tabs"||t==="slot"}function Qw(e){if(!e||typeof e!="object")return!1;const t=e;return Rf(t.docked)&&Array.isArray(t.floats)}function $w(e){return{docked:e,floats:[]}}function e1(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 Pf(e){if(Array.isArray(e))return e.map(e1);if(Qw(e))return[{name:"default",variants:{default:e}}];if(Rf(e))return[{name:"default",variants:{default:$w(e)}}];throw new Error("normalizeInitialLayout: input is not a LayoutNode, LayoutTree, or LayoutPreset[]")}function Rc(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 bl(e){const t=Rc(e.docked);for(const n of e.floats)t.push(...Rc(n.content));return t}$i("workspace","__shell__");const t1={type:"slot",slotId:"sh3core.home",viewId:"sh3core:home"},oo=le({docked:t1,floats:[]});let Fe=F(null),Ws=F("home");function n1(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 r1(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 s1(e){if(i(Fe))throw new Error(`Layout manager cannot attach app "${e.manifest.id}": app "${i(Fe).appId}" is still attached`);const t=`__sh3core__:app:${e.manifest.id}`,n=Pf(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=Ly("workspace",t),a=n1(s);(a&&a.layoutVersion!==e.manifest.layoutVersion||s&&!a)&&$i("workspace",t);const l=Ga(t,{workspace:r}).workspace;x(Fe,{appId:e.manifest.id,proxy:l,heldSlotIds:[]},!0),C_(l)}function a1(){if(!i(Fe))throw new Error("acquireAppSlotHolds: no app attached");if(i(Fe).heldSlotIds.length>0)return;const e=r1(i(Fe).proxy),t=bl(e);for(const{slotId:n,viewId:r,label:s,meta:a}of t)pl(n,r,s,a),i(Fe).heldSlotIds.push(n)}function i1(){if(!i(Fe))throw new Error("resetActivePresetToDefault: no app attached");const e=zn(i(Fe).appId);if(!e)throw new Error(`resetActivePresetToDefault: attached app "${i(Fe).appId}" not in registry`);const t=Pf(e.initialLayout),n=i(Fe).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(Fe).heldSlotIds)ml(l);i(Fe).heldSlotIds=[];const a=structuredClone(s.variants.default);n.presets[n.activePreset].default=a;const o=bl(a);for(const{slotId:l,viewId:c,label:u,meta:d}of o)pl(l,c,u,d),i(Fe).heldSlotIds.push(l)}function jf(){if(i(Fe)){T_();for(const e of i(Fe).heldSlotIds)ml(e);x(Fe,null)}}function Mf(){x(Ws,"home")}function Pc(){if(!i(Fe))throw new Error("Cannot switchToApp: no app is attached");x(Ws,"app")}const la=H(()=>{if(i(Ws)==="app"&&i(Fe)){const e=i(Fe).proxy,t=e.activePreset,n=e.presets[t];if(!n)throw new Error(`AppLayoutBlob active preset "${t}" not found in presets map`);return n.default}return oo});function Tt(){return i(la)}function Df(){return i(Ws)}const pn={get root(){return i(la).docked},get tree(){return i(la)},get floats(){return i(la).floats}};function o1(e){oo.docked=e,oo.floats=[],x(Ws,"home")}let Lf=F(null),zf=F(le(new Set)),ca=F(le(new Set)),Of=F(le(new Set)),Nf=F(null),qf=F(le({}));const l1=Tw(),lo=new Set;function Yr(){for(const e of lo)try{e()}catch(t){console.error("[sh3] onActiveChange listener threw",t)}}function c1(e){return lo.add(e),()=>{lo.delete(e)}}function u1(){Yr()}function Aa(e,t){x(Lf,e,!0),x(zf,new Set(t),!0),Yr()}function d1(){const e=bl(pn.tree),t=new Set;for(const n of e)n.viewId!==null&&t.add(n.viewId);x(Of,t,!0),Yr()}function Bf(e){x(Nf,e,!0),Yr()}function xs(e){x(qf,{...e},!0),Yr()}function Ft(){return{activeAppId:i(Lf),activeAppRequiredShards:i(zf),autostartShards:i(ca),mountedViewIds:i(Of),focusedViewId:i(Nf),selection:Ks(),bindings:i(qf),platform:l1}}function f1(e){i(ca).has(e)||(x(ca,new Set([...i(ca),e]),!0),Yr())}var v1=A('<div class="sh3-ctx-sep svelte-1667pfa" role="separator"></div>'),h1=A('<span class="sh3-ctx-chevron svelte-1667pfa">▸</span>'),p1=A('<span class="sh3-ctx-shortcut svelte-1667pfa"> </span>'),m1=A('<button role="menuitem"><span class="sh3-ctx-check svelte-1667pfa"> </span> <span class="sh3-ctx-label svelte-1667pfa"> </span> <!></button>'),b1=A("<!> <!>",1),g1=A('<div class="sh3-context-menu svelte-1667pfa" role="menu" tabindex="0"></div>');function Ca(e,t){ie(t,!0);const n=H(()=>t.sections.flatMap(c=>c.items));let r=F(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")x(r,s(i(r),1),!0),c.preventDefault();else if(c.key==="ArrowUp")x(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 h=(d+f)%i(n).length,b=i(n)[h];if(!b.disabled&&b.label.toLowerCase().startsWith(u)){x(r,h);break}}}}function o(c){c.disabled||(t.onInvoke(c.id),c.submenu||t.onDismiss())}var l=g1();Fr(l,!0),pe(l,23,()=>t.sections,c=>c.id,(c,u,d)=>{var f=b1(),h=he(f);{var b=_=>{var y=v1();k(_,y)};K(h,_=>{i(d)>0&&_(b)})}var S=w(h,2);pe(S,17,()=>i(u).items,_=>_.id,(_,y)=>{const E=H(()=>i(n).indexOf(i(y)));var g=m1();let m;var I=p(g),P=p(I,!0);v(I);var T=w(I,2),M=p(T,!0);v(T);var L=w(T,2);{var j=C=>{var O=h1();k(C,O)},D=C=>{var O=p1(),q=p(O,!0);v(O),N(()=>z(q,i(y).shortcut)),k(C,O)};K(L,C=>{i(y).submenu?C(j):i(y).shortcut&&C(D,1)})}v(g),N(()=>{m=de(g,1,"sh3-ctx-item svelte-1667pfa",null,m,{"sh3-ctx-active":i(E)===i(r),"sh3-ctx-disabled":i(y).disabled}),ne(g,"aria-disabled",i(y).disabled||void 0),z(P,i(y).checked?"✓":""),z(M,i(y).label)}),Re("pointerenter",g,()=>{i(y).disabled||x(r,i(E),!0)}),U("click",g,()=>o(i(y))),k(_,g)}),k(c,f)}),v(l),U("keydown",l,a),k(e,l),oe()}ce(["keydown","click"]);function Vf(e,t){ie(t,!0);const n=H(()=>t.model.tiers.map(r=>({id:`tier:${r.tier}`,items:r.items.map(s=>({...s,icon:void 0}))})));Ca(e,{get sections(){return i(n)},get onInvoke(){return t.onInvoke},get onDismiss(){return t.onClose}}),oe()}function jc(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function Ff(e,t){return{id:e.action.id,label:Wt(e.action),shortcut:Us(e.action,t.bindings,t.platform),group:e.action.group??"",icon:e.action.icon,checked:jc(e.action.checked),disabled:jc(e.action.disabled),submenu:e.action.submenu===!0}}function Uf(e,t,n,r){return ul(e.scope).some(a=>Pw(a,n))?n==="app"||n==="home"||typeof n=="object"&&"element"in n?ws(n,r,t):!0:!1}function Hf(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)||!Uf(a.action,a.ownerShardId,n,t))continue;const o=Hs(a.action.scope,t,a.ownerShardId)??n;s.add(a.action.id),r[Za(o)].push(Ff(a,t))}return{tiers:Qa.map(a=>({tier:a,items:r[a]})).filter(a=>a.items.length>0)}}function y1(e,t,n,r){const s=[],a=new Set;for(const o of e)o.action.submenuOf===n&&(a.has(o.action.id)||Uf(o.action,o.ownerShardId,r,t)&&(a.add(o.action.id),s.push(Ff(o,t))));return s}function _1(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 w1(e,t,n){const r=[];for(const a of e){if(t===""&&a.submenuOf!==void 0)continue;const o=_1(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 k1=A('<span class="sh3-palette-badge svelte-1qdcgk6"> </span>'),x1=A('<span class="sh3-palette-shortcut svelte-1qdcgk6"> </span>'),S1=A('<button role="option"><span class="sh3-palette-label svelte-1qdcgk6"> </span> <!> <!></button>'),E1=A('<div class="sh3-palette svelte-1qdcgk6" role="dialog" aria-label="Command palette" aria-modal="true" tabindex="-1"><input class="sh3-palette-input hell-base-input svelte-1qdcgk6" placeholder="Command…"/> <div class="sh3-palette-list svelte-1qdcgk6" role="listbox"></div></div>');function I1(e,t){ie(t,!0);let n=$(t,"prefill",3,""),r=F(le(n())),s=F(0);const a=H(()=>w1(t.candidates,i(r),t.recency));xe(()=>{i(s)>=i(a).length&&x(s,0)});function o(d){d.key==="ArrowDown"?(x(s,Math.min(i(s)+1,Math.max(0,i(a).length-1)),!0),d.preventDefault()):d.key==="ArrowUp"?(x(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=E1(),c=p(l);ge(c),Fr(c,!0);var u=w(c,2);pe(u,23,()=>i(a),d=>d.id,(d,f,h)=>{var b=S1();let S;var _=p(b),y=p(_,!0);v(_);var E=w(_,2);{var g=P=>{var T=k1(),M=p(T);v(T),N(()=>z(M,`[${i(f).scopeBadge??""}]`)),k(P,T)};K(E,P=>{i(f).scopeBadge&&P(g)})}var m=w(E,2);{var I=P=>{var T=x1(),M=p(T,!0);v(T),N(()=>z(M,i(f).shortcut)),k(P,T)};K(m,P=>{i(f).shortcut&&P(I)})}v(b),N(()=>{S=de(b,1,"sh3-palette-item svelte-1qdcgk6",null,S,{"sh3-palette-active":i(h)===i(s)}),ne(b,"aria-selected",i(h)===i(s)),z(y,i(f).label)}),Re("pointerenter",b,()=>x(s,i(h),!0)),U("click",b,()=>{t.onInvoke(i(f).id),t.onClose()}),k(d,b)}),v(u),v(l),U("keydown",l,o),Se(c,()=>i(r),d=>x(r,d)),k(e,l),oe()}ce(["keydown","click"]);function A1(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function C1(e,t,n={}){const r=[],s=new Set,a=n.filter?.submenuOf;for(const o of e){if(o.action.paletteItem===!1||A1(o.action.disabled)||a!==void 0&&o.action.submenuOf!==a||s.has(o.action.id))continue;const l=Hs(o.action.scope,t,o.ownerShardId);l&&(s.add(o.action.id),r.push({id:o.action.id,label:Wt(o.action),shortcut:Us(o.action,t.bindings,t.platform),scopeBadge:gf(l),submenu:o.action.submenu===!0,submenuOf:a!==void 0?void 0:o.action.submenuOf}))}return r}let Mc=!1;function gl(e){return e?e.closest("[data-sh3-view]")?.getAttribute("data-sh3-view")??null:null}function Kf(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=jw(n.getAttribute("data-sh3-scope")??"");if(s&&!(typeof s=="object"&&"element"in s&&!ws(s,e.state)))return s;const a=n.parentElement;n=a?a.closest("[data-sh3-scope]"):null}const r=gl(t);if(r)return`focus:${r}`}return e.state.activeAppId?"app":"home"}function T1(e,t){const n=et().find(r=>r.action.id===e);if(!(!n||typeof n.action.run!="function"))try{n.action.run(t)}catch(r){console.error(`[sh3] action "${e}" threw:`,r)}}function yl(e,t){const n=et(),r=n.find(l=>l.action.id===e);if(!r)return Promise.reject(new Error(`action "${e}" not registered`));const s=Ft(),a=dl(n,s).find(l=>l.id===e);if(!a||!a.active)return 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:Wt(r.action)},appId:s.activeAppId,viewId:s.focusedViewId??void 0,selection:s.selection??void 0,invokedVia:"programmatic",dispatch:Gr});return Promise.resolve(l).then(()=>{})}catch(l){return Promise.reject(l)}}function Gr(e){yl(e).catch(t=>{console.error(`[sh3] ctx.dispatch("${e}"):`,t)})}function R1(e){const t=gl(e.target);Bf(t)}function P1(e){queueMicrotask(()=>{const t=gl(document.activeElement);Bf(t)})}function j1(e){return e instanceof Element?e.closest('[data-sh3-context-menu="native"]')!==null:!1}function Wf(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=y1(et(),t,e,r);qe(Ca,{target:a,props:{sections:[{id:`submenu:${e}`,items:c}],onInvoke:u=>{const d=et().find(f=>f.action.id===u);if(!(!d||typeof d.action.run!="function")){try{d.action.run({action:{id:u,label:Wt(d.action)},appId:t.activeAppId,viewId:t.focusedViewId??void 0,selection:t.selection??void 0,invokedVia:"context-menu",dispatch:Gr})}catch(f){console.error(`[sh3] context-menu submenu action "${u}" threw:`,f)}n.close()}},onDismiss:()=>n.close()}})}function M1(e){if(j1(e.target))return;const t=et(),n=Ft(),r=Kf({event:e,state:n}),s=Hf(t,n,r);if(s.tiers.length===0)return;e.preventDefault();const a=sn.popup.show(Vf,{anchor:{x:e.clientX,y:e.clientY}},{model:s,onInvoke:o=>{const l=et().find(c=>c.action.id===o);if(l){if(l.action.submenu===!0){Wf(o,n,a,r);return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:Wt(l.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:Gr})}catch(c){console.error(`[sh3] context-menu action "${o}" threw:`,c)}}},onClose:()=>a.close()})}function D1(e){const t=Cw(e);if(!t)return;const n=et(),r=Ft();Ow({target:e.target,shortcut:t,state:r,entries:n,runAction:T1,dispatch:Gr})&&e.preventDefault()}function co(){Mc||(Mc=!0,document.addEventListener("keydown",D1),document.addEventListener("focusin",R1),document.addEventListener("focusout",P1),document.addEventListener("contextmenu",M1))}function _l(e){const t=et(),n=Ft(),r=Kf({explicit:e.scope,state:n}),s=Hf(t,n,r);if(s.tiers.length===0)return;const a=sn.popup.show(Vf,{anchor:{x:e.x,y:e.y}},{model:s,onInvoke:o=>{const l=et().find(c=>c.action.id===o);if(l){if(l.action.submenu===!0){Wf(o,n,a,r);return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:Wt(l.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:Gr})}catch(c){console.error(`[sh3] context-menu action "${o}" threw:`,c)}}},onClose:()=>a.close()})}const L1=20;let uo=[];function z1(e){uo=[e,...uo.filter(t=>t!==e)].slice(0,L1)}function ri(e){const t=et(),n=Ft(),r=C1(t,n,{filter:e?.filter}),s=typeof document<"u"&&document.activeElement instanceof HTMLElement?document.activeElement:null,a=sn.modal.open(I1,{candidates:r,recency:uo,prefill:e?.prefill??"",onInvoke:o=>{const l=et().find(c=>c.action.id===o);if(l){if(z1(o),l.action.submenu===!0&&typeof l.action.run!="function"){a.close(),ri({filter:{submenuOf:o}});return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:Wt(l.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"palette",dispatch:Gr})}catch(c){console.error(`[sh3] palette action "${o}" threw:`,c)}}},onClose:()=>a.close()},{dismissOnBackdrop:!0});if(s){const o=a.close;a.close=()=>{o(),queueMicrotask(()=>{(document.activeElement===document.body||document.activeElement===null)&&s.focus()})}}}const O1=Object.freeze(Object.defineProperty({__proto__:null,attachGlobalListeners:co,dispatchActionProgrammatic:yl,openContextMenu:_l,openPalette:ri},Symbol.toStringTag,{value:"Module"})),N1={async rebind(e,t,n){await Ic(e,t,n),Ft().activeAppId===e&&xs(await Ir(e))},async resetBinding(e,t){await Ic(e,t,void 0),Ft().activeAppId===e&&xs(await Ir(e))},async bindingsFor(e){const t=await Ir(e),n={};for(const[r,s]of Object.entries(t))s!==null&&(n[r]=s);return n},openContextMenu:_l,openPalette:ri,listActive(){return Bw(et(),Ft())},onActiveChange(e){const t=c1(e),n=Ew(()=>{u1()});return()=>{t(),n()}}},sn={state:Ga,modal:Kt,popup:to,toast:vn,float:Ce,presets:M_,conflicts:yw,color:kw,actions:N1};function q1(e){return rn[e].list()}function B1(e,t){return rn[e].read(t)}function V1(e,t){rn[e].delete(t)}function F1(e){for(const t of rn[e].list())rn[e].delete(t)}function Yf(){return{list:q1,peek:B1,clear:V1,clearAll:F1}}function vr(e,t,n){return`${e}/${t}/${n}`}function U1(e,t){return`${e}/${t}/`}const H1="sh3-documents",Dt="docs",K1=2;class W1{#e=null;#t(){return this.#e||(this.#e=new Promise((t,n)=>{const r=indexedDB.open(H1,K1);r.onupgradeneeded=()=>{const s=r.result;s.objectStoreNames.contains(Dt)||s.createObjectStore(Dt)},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(Dt,t).objectStore(Dt),c=n(l);c.onsuccess=()=>s(c.result),c.onerror=()=>a(c.error)})}async read(t,n,r){const s=vr(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=vr(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=vr(t,n,r);await this.#n("readwrite",a=>a.delete(s))}async rename(t,n,r,s){const a=vr(t,n,r),o=vr(t,n,s),l=await this.#t();return new Promise((c,u)=>{let d=!1;const f=l.transaction(Dt,"readwrite"),h=f.objectStore(Dt),b=h.get(a);b.onsuccess=()=>{const S=b.result;if(!S){d=!0,f.abort(),u(new Error(`Document not found at ${r}`));return}const _=h.getKey(o);_.onsuccess=()=>{if(_.result!==void 0){d=!0,f.abort(),u(new Error(`Document already exists at ${s}`));return}const y={...S,lastModified:Date.now()};h.put(y,o),h.delete(a)},_.onerror=()=>u(_.error)},b.onerror=()=>u(b.error),f.oncomplete=()=>c(),f.onerror=()=>{d||u(f.error)},f.onabort=()=>{}})}async list(t,n){const r=U1(t,n),s=await this.#t();return new Promise((a,o)=>{const c=s.transaction(Dt,"readonly").objectStore(Dt),u=IDBKeyRange.bound(r,r+"￿",!1,!1),d=c.openCursor(u),f=[];d.onsuccess=()=>{const h=d.result;if(h){const b=h.value;f.push({path:h.key.slice(r.length),size:b.size,lastModified:b.lastModified}),h.continue()}else a(f)},d.onerror=()=>o(d.error)})}async exists(t,n,r){const s=vr(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(Dt,"readonly").objectStore(Dt),c=IDBKeyRange.bound(n,n+"￿",!1,!1),u=l.openKeyCursor(c),d=new Set;u.onsuccess=()=>{const f=u.result;if(f){const h=f.key.slice(n.length),b=h.indexOf("/");b>=0&&d.add(h.slice(0,b)),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(Dt,"readonly").objectStore(Dt),c=IDBKeyRange.bound(n,n+"￿",!1,!1),u=l.openCursor(c),d=[];u.onsuccess=()=>{const f=u.result;if(f){const h=f.key.slice(n.length),b=h.indexOf("/");if(b>=0){const S=f.value;d.push({shardId:h.slice(0,b),path:h.slice(b+1),size:S.size,lastModified:S.lastModified})}f.continue()}else s(d)},u.onerror=()=>a(u.error)})}}const Y1="local";let wl=Y1,Gf=new W1;function Xf(){return wl}function ua(){return wl}function fo(){return Gf}function is(e){wl=e}function Jf(e){Gf=e}const G1=Object.freeze(Object.defineProperty({__proto__:null,__setActiveScope:is,__setDocumentBackend:Jf,getActiveScopeId:Xf,getDocumentBackend:fo,getTenantId:ua},Symbol.toStringTag,{value:"Module"})),ir=le({activeProjectId:null});function Zf(e){if(ir.activeProjectId===e)return;const t=nt.id;ir.activeProjectId=e,Lr.id=null,t&&Zn(()=>Promise.resolve().then(()=>J1),void 0).then(n=>n.unloadApp(t))}const Qf=Ga("__sh3core__:last-app",{user:{id:null}});function $f(){return Qf.user.id}function Ss(e){Qf.user.id=e}function ev(){Ss(null)}const vo=new Map;function X1(){return ir.activeProjectId??Xf()}function Qs(e,t){let n=vo.get(e);if(!n){const r=zn(e),s=X1();n={scopeId:s,state:a=>Ga(`__app__:${e}:scope:${s}`,a),zones:r?.manifest.permissions?.includes(Ya)?Yf():void 0},vo.set(e,n)}return n}async function mn(e,t={}){const n=zn(e);if(!n)throw new Error(`Cannot launch app "${e}": not registered`);if(nt.id&&nt.id!==e)kl(nt.id,t.skipSwitchToHome);else if(nt.id===e){for(const r of n.manifest.requiredShards){const s=an.get(r),a=zk(r);s&&a&&s.resume?.(a)}n.resume?.(Qs(e)),Pc(),n.onAppReady?.(Qs(e)),t.skipLastApp||Ss(e),Lr.id=e,Aa(e,new Set(n.manifest.requiredShards??[])),Ir(e).then(xs);return}for(const r of n.manifest.requiredShards)if(!an.has(r))throw new Error(`App "${e}" requires shard "${r}" which is not registered`);s1(n);try{for(const r of n.manifest.requiredShards)await Cl(r,{phase:"launch"})}catch(r){jf();try{vn.notify(`Couldn't launch "${n.manifest.label??e}": ${r instanceof Error?r.message:String(r)}`,{level:"error",duration:6e3})}catch{}throw r}a1(),n.activate?.(Qs(e)),nt.id=e,Aa(e,new Set(n.manifest.requiredShards??[])),Ir(e).then(xs),Pc(),n.onAppReady?.(Qs(e)),t.skipLastApp||Ss(e),Lr.id=e}function kl(e,t=!1){if(nt.id!==e)return;const n=zn(e);if(n){n.deactivate?.(),t||Mf(),jf();for(const r of n.manifest.requiredShards){const s=an.get(r);s&&(s.autostart||ui(r))}nt.id=null,Aa(null,new Set),Vw(),Jd(),Ir("sh3.home").then(xs),vo.delete(e)}}function si(e){Ln.has(e)&&(nt.id===e&&(kl(e),Ss(null)),Ln.delete(e))}async function Xr(){const e=nt.id?zn(nt.id):null;if(e){for(const t of e.manifest.requiredShards){const n=an.get(t);if(n?.suspend&&await n.suspend()===!1)return!1}if(e.suspend&&await e.suspend()===!1)return!1}return Jd(),Mf(),Aa(null,new Set),Ss(null),!0}const J1=Object.freeze(Object.defineProperty({__proto__:null,clearLastApp:ev,launchApp:mn,readLastApp:$f,returnToHome:Xr,unloadApp:kl,unregisterApp:si},Symbol.toStringTag,{value:"Module"}));function tv(){return{root:Tt(),source:Df()}}function Z1(e){const t=Tt().docked,n=Sl(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 Q1(e){const t=Tt();return ii(t.docked,n=>n.slotId===e)?!0:nv(t,n=>n.slotId===e)}function ai(e){const t=Tt();return ii(t.docked,n=>n.viewId===e)?!0:nv(t,n=>n.viewId===e)}function ii(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(ii(n,t))return!0}return!1}function nv(e,t){for(const n of e.floats)if(ii(n.content,t))return Ce.focus(n.id),!0;return!1}function $1(e,t){return rv(e,t,!0)}function ek(e,t){return rv(e,t,!1)}function rv(e,t,n){const r=Tt().docked,s=ks(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 xl(e){const t=Tt(),n=t.docked;if(!Or(n,e))return tk(t,e);const a=Tf(e)?.closable;return!a||typeof a=="object"&&(!await a.canClose()||!Or(n,e))?!1:(ei(n,e),xr(n),!0)}async function tk(e,t){for(const n of e.floats){if(!Or(n.content,t))continue;const a=Tf(t)?.closable;if(typeof a=="object"&&(!await a.canClose()||!Or(n.content,t)))return!1;ei(n.content,t);const o=n.content.type==="tabs"?n.content:null;return(!o||o.tabs.length===0)&&Ce.close(n.id),!0}return!1}function sv(e){const t=Tt(),n=Or(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 ei(t.docked,e),xr(t.docked),Ce.open(s,{title:a,meta:o})}function av(e){const n=Tt().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 Ce.close(e),!1;const a=s.tabs[s.activeTab??0]??s.tabs[0],o=El({slotId:a.slotId,viewId:a.viewId,label:a.label,meta:a.meta});return o&&Ce.close(e),o}function Sl(e){if(e.type==="tabs")return e;if(e.type==="split")for(const t of e.children){const n=Sl(t);if(n)return n}return null}function iv(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=iv(e.children[n],[...t,n]);if(r)return r}return null}function El(e){const t=Tt().docked;if(ai(e.viewId??""))return!0;const n=Sl(t);if(n)return n.tabs.push(e),n.activeTab=n.tabs.length-1,!0;const r=iv(t);return r?(If(t,r,e,"right"),!0):!1}function ov(e){return hl(Tt(),e)}let Jr=F(null),bn=F(null),Zr=F(!1),oi="",ho=null;function Dc(e,t){oi=e,ho=t.auth,x(Jr,t.user,!0),x(bn,t.session,!0),x(Zr,!t.session&&!t.user,!0)}async function lv(e,t){try{const n=await fetch(`${oi}/api/auth/login`,{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",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 x(Jr,r.user,!0),x(bn,r.session,!0),x(Zr,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function nk(e,t,n){try{const r=await fetch(`${oi}/api/auth/register`,{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",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 x(Jr,s.user,!0),x(bn,s.session,!0),x(Zr,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function rk(){try{await fetch(`${oi}/api/auth/logout`,{method:"POST",credentials:"include"})}catch{}if(ho?.required&&!ho.guestAllowed){window.location.reload();return}x(Jr,null),x(bn,null),x(Zr,!0)}function sk(){x(Jr,{id:"local",username:"local",displayName:"Local Owner",role:"admin",createdAt:"",updatedAt:""},!0),x(bn,{token:"local",userId:"local",role:"admin",expiresAt:1/0},!0),x(Zr,!1)}function ak(){return i(bn)?.token==="local"}function bt(){return i(bn)?.role==="admin"}function po(){return i(bn)!==null}function cv(){return i(Zr)}function Nr(){return i(Jr)}function li(){return i(bn)?`Bearer ${i(bn).token}`:null}const Wn=[];let ik=0;function ok(){return`term-${++ik}`}function lk(e){Wn.push(e);let t=!1;return()=>{if(t)return;t=!0;const n=Wn.indexOf(e);n!==-1&&Wn.splice(n,1)}}function ck(){if(Wn.length===0)return{ok:!1,error:"no-terminal"};if(Wn.length===1)return{ok:!0,handle:Wn[0]};let e=null,t=0;for(const n of Wn){const r=n.getFocusStamp();r>0&&r>=t&&(e=n,t=r)}return e===null?{ok:!1,error:"ambiguous"}:{ok:!0,handle:e}}const Lc={"no-terminal":"no terminal open",ambiguous:"multiple terminals open; focus one first","no-active-context":"dispatchToTerminal is not available in this context"};function uv(e){return e.headless?()=>({ok:!1,error:"no-active-context",message:Lc["no-active-context"]}):t=>{const n=ck();return n.ok?(n.handle.dispatch(t),{ok:!0,terminalId:n.handle.id}):{ok:!1,error:n.error,message:Lc[n.error]}}}const zc=["ephemeral","session","workspace","user"];function dv(e){return e.type==="tabs"?e.tabs.filter(t=>t.viewId!==null):e.type==="split"?e.children.flatMap(dv):e.viewId!==null?[{slotId:e.slotId,viewId:e.viewId,label:e.viewId}]:[]}function fv(e){return{listApps(){return Wr().map(t=>({id:t.id,label:t.label}))},getActiveApp(){const t=rl();return t?{id:t.id,label:t.label}:null},launchApp(t){mn(t)},listShards(){return Array.from(an.values()).map(t=>({id:t.manifest.id,label:t.manifest.label,version:t.manifest.version}))},listViewsInCurrentLayout(){try{const{root:t}=tv();return dv(t.docked).map(n=>({slotId:n.slotId,viewId:n.viewId??"",label:n.label}))}catch{return[]}},openViewInCurrentLayout(t){try{if(ai(t))return{ok:!0};const n=Es().find(r=>r.viewId===t);if(n){const r=`standalone:${t}:${Date.now()}`;return El({slotId:r,viewId:t,label:n.label})?{ok:!0}:{ok:!1,error:`could not dock "${t}" — no available slot`}}return{ok:!1,error:`view "${t}" not found in current layout`}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}},listStandaloneViews(){return Es()},popoutSlot(t){try{const n=sv(t);return n?{ok:!0,floatId:n}:{ok:!1,error:`slot "${t}" not found in docked tree`}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}},dockFloat(t){try{return av(t)?{ok:!0}:{ok:!1,error:`float "${t}" not found or has no dockable content`}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}},locateSlot(t){try{return ov(t)}catch{return null}},listFloats(){return Ce.list().map(t=>{const n=t.content.type==="tabs"?t.content:null,r=n?n.tabs[n.activeTab??0]??n.tabs[0]:null;return{floatId:t.id,viewId:r?.viewId??null,label:t.title??r?.label??t.id}})},closeSlot(t){return xl(t),{ok:!0}},listZones(t){if(!e)return[];const n=new Map;for(const r of zc)for(const s of e.list(r)){if(t&&s!==t)continue;let a=n.get(s);a||(a=new Set,n.set(s,a)),a.add(r)}return Array.from(n.entries()).map(([r,s])=>({shardId:r,zones:Array.from(s)}))},readZone(t,n){return!e||!zc.includes(n)?null:e.peek(n,t)??null},whoAmI(){return{userId:Nr()?.id??"guest",admin:bt()}},setMode(t){return!1},listModes(){return[]},getMode(){return{id:"sh3",label:"sh3"}},dispatchToTerminal:uv({headless:!0})}}const uk=2e3;let mo=0;function dk(){return`e${++mo}`}function fk(e){if(e.length<2||e.charCodeAt(0)!==101)return NaN;const t=Number(e.slice(1));return Number.isInteger(t)?t:NaN}class vk{#e;get entries(){return i(this.#e)}set entries(t){x(this.#e,t,!0)}constructor(t=uk){this.#e=F(le([])),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:dk()};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=fk(r.id);Number.isFinite(s)&&s>n&&(n=s)}n>mo&&(mo=n),this.entries.splice(0,this.entries.length,...t)}}const Oc=[1e3,2e3,5e3,1e4];class vv{#e;get connected(){return i(this.#e)}set connected(t){x(this.#e,t,!0)}#t;get cwd(){return i(this.#t)}set cwd(t){x(this.#t,t,!0)}#n;get tenantRoot(){return i(this.#n)}set tenantRoot(t){x(this.#n,t,!0)}#s;get env(){return i(this.#s)}set env(t){x(this.#s,t,!0)}#r;get historyByMode(){return i(this.#r)}set historyByMode(t){x(this.#r,t,!0)}#i;get lastSeq(){return i(this.#i)}set lastSeq(t){x(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=F(!1),this.#t=F(""),this.#n=F(""),this.#s=F(le({})),this.#r=F(le({})),this.#i=F(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=Oc[Math.min(this.backoffIndex,Oc.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 hv{constructor(t=""){this.base=t}async list(t){return(await(await this.#e("/api/fs/list",t)).json()).entries}async stat(t){return await(await this.#e("/api/fs/stat",t)).json()}async read(t){return await(await this.#e("/api/fs/read",t)).text()}async#e(t,n){const r=`${this.base}${t}?path=${encodeURIComponent(n)}`,s=await fetch(r,{credentials:"include"});if(!s.ok){let a=`HTTP ${s.status}`;try{const o=await s.json();o.error&&(a=o.error)}catch{}throw new Error(a)}return s}}function hk(e){const t=Ia(e);if(!t)return null;const r=Ef().find(s=>s.verb===t);return r?{verb:r.verb,shardId:r.shardId}:null}async function pv(e,t,n,r){if(!or.has(e))throw new Error(`unknown shard: ${e}`);const s=Ia(t);if(!s)throw new Error(`unknown verb: ${t}`);if(!s.programmatic)throw new Error(`verb "${t}" is not programmatic`);const a=[],o=mk(a),l=await pk({sinkScrollback:o,opts:r});return{result:await s.run(l,n),scrollback:a}}async function pk(e){const t={shell:fv(),scrollback:e.sinkScrollback,session:bk(),cwd:"/",fs:new hv,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=hk(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 mk(e){let t=0;return{entries:e,push(r){const s={...r,id:`runverb-${++t}`};e.push(s)},clear(){e.length=0}}}function bk(){return new vv("")}class gk{#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 fetch(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 fetch(a,{method:"PUT",headers:o,body:s,credentials:"include"});if(!l.ok)throw new Error(`Document write failed: ${l.status}`)}async delete(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}`,a=await fetch(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 fetch(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 fetch(s,{method:"HEAD",credentials:"include"})).ok}async listAllShards(t){const n=`${this.#e}/api/docs/${t}/_shards`,r=await fetch(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 fetch(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 fetch(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 fetch(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 fetch(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 fetch(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 yk{#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 Rn=new yk,_k=1e3;function wk(e,t,n,r){const s=new Set,a=new Set;function o(u){return!r.extensions||r.extensions.length===0?!0:r.extensions.some(d=>u.endsWith(d))}function l(u,d){Rn.emit({type:u,path:d,tenantId:e,shardId:t})}const c={async list(){const u=await n.list(e,t);return!r.extensions||r.extensions.length===0?u:u.filter(d=>o(d.path))},async read(u){const d=await n.read(e,t,u);return d===null?null:typeof d=="string"?d:new TextDecoder().decode(d)},async write(u,d){const f=await n.exists(e,t,u);await n.write(e,t,u,d),l(f?"update":"create",u)},async delete(u){const d=await n.exists(e,t,u);await n.delete(e,t,u),d&&l("delete",u)},async rename(u,d){if(!o(d))throw new Error(`Cannot rename to ${d}: violates handle extensions filter`);for(const f of s)if(f.path===u)throw new Error(`Cannot rename: active autosave on ${u}; flush and dispose first`);await n.rename(e,t,u,d),Rn.emit({type:"rename",path:d,oldPath:u,tenantId:e,shardId:t})},async exists(u){return n.exists(e,t,u)},async status(u){if(!n.readMeta)throw new Error("Backend does not support status()");return n.readMeta(e,t,u)},async resolveConflict(u,d){if(!n.resolve)throw new Error("Backend does not support resolveConflict()");if(typeof d!="string"&&!(typeof d=="object"&&"origin"in d))throw new Error("choice must be a string or { origin } object");return n.resolve(e,t,u,d)},async readBranch(u,d){if(!n.readBranch)throw new Error("Backend does not support readBranch()");return n.readBranch(e,t,u,d)},watch(u){const d=Rn.subscribe(f=>{f.tenantId===e&&f.shardId===t&&o(f.path)&&u(f)});return a.add(d),()=>{d(),a.delete(d)}},autosave(u,d){const f=new kk(c,u,d?.debounceMs??_k);return s.add(f),f},async dispose(){const u=[...s].map(d=>d.dispose());await Promise.all(u),s.clear();for(const d of a)d();a.clear()}};return c}class kk{#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 xk="sync:peer",Sk="sync:policy";let Qr="";function mv(e){Qr=e}async function Ek(e){const t=await fetch(`${Qr}/api/env-state/${encodeURIComponent(e)}`);return t.ok?await t.json():(console.warn(`[sh3] Failed to fetch env state for "${e}": HTTP ${t.status}`),{})}async function Ik(e,t){if(!bt())throw new Error("Cannot update env state: not elevated to admin");const n=li(),r={"Content-Type":"application/json"};n&&(r.Authorization=n);const s=await fetch(`${Qr}/api/env-state/${encodeURIComponent(e)}`,{method:"PUT",headers:r,body:JSON.stringify(t)});if(!s.ok){const a=await s.json().catch(()=>({}));throw new Error(`Env state update failed: HTTP ${s.status} — ${a.error??"unknown"}`)}}async function Il(e,t,n){if(!bt())throw new Error("Cannot install: not elevated to admin");const r=li(),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 fetch(`${Qr}/api/packages/install`,{method:"POST",headers:a,body:s});if(!o.ok){let l={};try{l=await o.json()}catch{}return{ok:!1,error:typeof l.error=="string"?l.error:`HTTP ${o.status}`,code:typeof l.code=="string"?l.code:void 0,missing:Array.isArray(l.missing)?l.missing:void 0}}return{ok:!0}}async function Ak(e){if(!bt())throw new Error("Cannot uninstall: not elevated to admin");const t=li(),n={"Content-Type":"application/json"};t&&(n.Authorization=t);const r=await fetch(`${Qr}/api/packages/uninstall`,{method:"POST",headers:n,body:JSON.stringify({id:e})});if(!r.ok){const s=await r.json().catch(()=>({}));throw new Error(`Uninstall failed: HTTP ${r.status} — ${s.error??"unknown"}`)}}async function Ck(){const e=await fetch(`${Qr}/api/packages`);return e.ok?await e.json():[]}const bv="documents:browse",gv="documents:read",yv="documents:write";function Tk(e,t,n={canRead:!1,canWrite:!1}){const r={listDocuments:()=>t.listAllDocuments(e),listShards:()=>t.listAllShards(e),watchDocuments:s=>Rn.subscribe(a=>{a.tenantId===e&&s(a)})};return n.canRead&&(r.readFrom=(s,a)=>t.read(e,s,a),r.statusFrom=async(s,a)=>t.readMeta?t.readMeta(e,s,a):null,r.readBranchFrom=async(s,a,o)=>t.readBranch?t.readBranch(e,s,a,o):null),n.canWrite&&(r.writeTo=async(s,a,o)=>{const l=await t.exists(e,s,a);await t.write(e,s,a,o),Rn.emit({type:l?"update":"create",path:a,tenantId:e,shardId:s})},r.resolveConflictFrom=async(s,a,o)=>{if(!t.resolve)throw new Error("Backend does not support resolveConflict");await t.resolve(e,s,a,o),Rn.emit({type:"update",path:a,tenantId:e,shardId:s})},r.renameFrom=async(s,a,o,l)=>{if(l?.newShardId!==void 0)throw new Error("Cross-shard move is not yet supported (ADR-018 amendment 2026-04-27)");await t.rename(e,s,a,o),Rn.emit({type:"rename",path:o,oldPath:a,tenantId:e,shardId:s})},r.deleteFrom=async(s,a)=>{const o=await t.exists(e,s,a);await t.delete(e,s,a),o&&Rn.emit({type:"delete",path:a,tenantId:e,shardId:s})}),r}const _v="keys:mint";class wv extends Error{constructor(t){super(`Shard may not mint a key with scope '${t}' — not declared in manifest.`),this.name="ScopeEscalationError"}}class kv extends Error{constructor(){super("User denied key creation."),this.name="ConsentDeniedError"}}const bo=new Map;let ds=null;function xv(e){return ds=e,()=>{ds===e&&(ds=null)}}async function Rk(e,t){if(!ds)throw new Error("No consent listener registered — the shell must mount ConsentDialog.");const n=`c_${Math.random().toString(36).slice(2)}${Date.now()}`;return new Promise(r=>{bo.set(n,{resolve:r}),ds({...t,shardId:e,requestId:n})})}function go(e,t){const n=bo.get(e);n&&(bo.delete(e),n.resolve(t))}const Ta=new Map,da=new Map,Pk=5e3;function jk(e,t){let n=da.get(e);n||(n=new Set,da.set(e,n)),n.add(t),setTimeout(()=>{n.delete(t),n.size===0&&da.delete(e)},Pk)}function Mk(e,t){return da.get(e)?.has(t)??!1}function Al(e,t){const n=Ta.get(e)??new Set;return n.add(t),Ta.set(e,n),()=>{n.delete(t)}}function Sv(e,t){if(!e||Mk(e,t))return;jk(e,t);const n=Ta.get(e);if(n)for(const s of n)s(t);const r=Ta.get("*");if(r)for(const s of r)s(t)}function Dk(){if(typeof EventSource>"u")return()=>{};const e=new EventSource("/api/keys/events",{withCredentials:!0});return e.onmessage=t=>{try{const n=JSON.parse(t.data);Sv(n.shardId,n.id)}catch{}},()=>e.close()}function Lk(e){const{shardId:t,shardPermissions:n}=e,r=s=>{for(const a of s)if(!n.includes(a)&&!n.includes("admin:*"))throw new wv(a)};return{async mint(s){if(r(s.scopes),!await Rk(t,s))throw new kv;const o=await fetch("/api/keys/consent",{method:"POST",credentials:"include",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 fetch("/api/keys",{method:"POST",credentials:"include",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 fetch("/api/keys",{credentials:"include"});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 fetch(`/api/keys/${encodeURIComponent(s)}`,{method:"DELETE",credentials:"include"});if(!a.ok&&a.status!==404)throw new Error(`Revoke failed: ${a.status}`);Sv(t,s)}}}const an=le(new Map),Ar=new Map,or=le(new Map),Ra=le(new Map);function ci(e){const t=e.manifest.id;an.has(t)&&or.has(t)&&ui(t),an.set(t,e),Ra.delete(t)}async function Cl(e,t){const n=an.get(e);if(!n)throw new Error(`Cannot activate shard "${e}": not registered`);if(Ar.has(e))return;const r={shard:n,ctx:void 0,viewIds:new Set,verbNames:new Set,cleanupFns:[]},s=le({proxy:null,defaults:null}),a={register(l,c){const u=cf(l,c);return r.cleanupFns.push(async()=>u()),u},list(l){return Ja(l)},listPoints(){return D_()},onChange(l,c){const u=uf(l,c);return r.cleanupFns.push(async()=>u()),u},onAnyChange(l){const c=L_(l);return r.cleanupFns.push(async()=>c()),c}},o={state:l=>sn.state(e,l),registerView:(l,c)=>{Uw(l,c,n.manifest.id),r.viewIds.add(l)},registerVerb:l=>{const c=e==="shell"?l.name:`${e}:${l.name}`;Hw(c,{...l,name:c},e),r.verbNames.add(c)},documents:l=>{const c=wk(ua(),e,fo(),l);return r.cleanupFns.push(()=>c.dispose()),c},env(l){return s.proxy?(console.warn(`[sh3] Shard "${e}" called ctx.env() more than once; extra calls are ignored.`),s.proxy):(s.defaults=l,s.proxy={...l},s.proxy)},async envUpdate(l){if(!s.proxy||!s.defaults)throw new Error(`Shard "${e}" called envUpdate() without declaring env state`);const c=rr(s.proxy);Object.assign(s.proxy,l);try{const u=rr(s.proxy);await Ik(e,u)}catch(u){throw Object.assign(s.proxy,c),u}},get isAdmin(){return bt()},get tenantId(){return ua()},zones:n.manifest.permissions?.includes(Ya)?Yf():void 0,browse:n.manifest.permissions?.includes(bv)?Tk(ua(),fo(),{canRead:n.manifest.permissions.includes(gv),canWrite:n.manifest.permissions.includes(yv)}):void 0,keys:n.manifest.permissions?.includes(_v)?Lk({shardId:e,shardPermissions:n.manifest.permissions??[]}):void 0,contributions:a,actions:{register(l){const c=Sw(l,e);return r.cleanupFns.push(async()=>c()),c},selection:$a(e),openContextMenu(l){_l(l)},openPalette(l){ri(l)}},listVerbs(l){const c=Ef();return(l?.programmaticOnly?c.filter(({verb:d})=>d.programmatic===!0):c).map(({verb:d,shardId:f})=>({shardId:f,name:d.name,summary:d.summary,programmatic:d.programmatic,schema:d.schema}))},runVerb(l,c,u,d){return pv(l,c,u,d)},listActions(l){const c=dl(et(),Ft());return l?.activeOnly?c.filter(u=>u.active):c},runAction(l,c){return yl(l)}};if(r.ctx=o,n.onKeyRevoked){const l=Al(e,async c=>{try{await n.onKeyRevoked(c)}catch(u){console.error(`[sh3] onKeyRevoked failed in "${e}":`,u)}});r.cleanupFns.push(async()=>l())}Ar.set(e,r),or.set(e,n);try{await n.activate(o);for(const l of n.manifest.views)if(!r.viewIds.has(l.id))throw new Error(`Shard "${e}" declared view "${l.id}" in its manifest but registered no factory for it.`);if(s.proxy&&s.defaults)try{const l=await Ek(e),c=Object.assign({},s.defaults,l);Object.assign(s.proxy,c)}catch(l){console.warn(`[sh3] Failed to hydrate env state for shard "${e}":`,l instanceof Error?l.message:l)}}catch(l){for(const c of r.cleanupFns)try{c()}catch{}for(const c of r.verbNames)Sf(c);for(const c of r.viewIds)xf(c);throw _f(e),Ar.delete(e),or.delete(e),Ra.set(e,{id:e,error:l,phase:t?.phase??"launch",timestamp:Date.now()}),console.error(`[sh3] Shard "${e}" failed to activate:`,l),l}Ra.delete(e),n.autostart?.(o)}function ui(e){const t=Ar.get(e);if(t){t.shard.deactivate?.();for(const n of t.cleanupFns)n();for(const n of t.verbNames)Sf(n);for(const n of t.viewIds)xf(n);_f(e),Ar.delete(e),or.delete(e)}}function zk(e){return Ar.get(e)?.ctx}function Es(){const e=[];for(const t of or.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 Ok(e){return btoa(JSON.stringify(e)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function Nk(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 qk(n)}function qk(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 Bk(){return typeof globalThis.__TAURI_INTERNALS__<"u"}let Nc=0;function Vk(){return Nc+=1,`sh3-satellite-${Date.now()}-${Nc}`}async function di(e,t={}){if(!Bk())return console.warn("[sh3] shell.window.spawn called outside Tauri — no-op"),"";const{invoke:n}=await Zn(async()=>{const{invoke:c}=await import("./core-DsojzR6k.js");return{invoke:c}},[]),r=Ok(e),s=Vk(),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 ht extends Error{constructor(t,n){super(`Registry validation error at ${t}: ${n}`),this.name="RegistryValidationError",this.path=t}}function Ev(e){if(!e||typeof e!="object"||Array.isArray(e))throw new ht("$","expected an object");const t=e;if(t.version!==1)throw new ht("$.version",`expected 1, got ${JSON.stringify(t.version)}`);if(!Array.isArray(t.packages))throw new ht("$.packages","expected an array");return{version:1,packages:t.packages.map((r,s)=>Fk(r,`$.packages[${s}]`))}}function Fk(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new ht(t,"expected an object");const n=e;Xt(n,"id",t),Kk(n,"type",["shard","app","combo"],t),Xt(n,"label",t),Xt(n,"description",t);const r=`${t}.author`;if(!n.author||typeof n.author!="object"||Array.isArray(n.author))throw new ht(r,"expected an object");const s=n.author;if(typeof s.name!="string"||s.name.length===0)throw new ht(`${r}.name`,"expected a non-empty string");if(!Array.isArray(n.versions)||n.versions.length===0)throw new ht(`${t}.versions`,"expected a non-empty array");const a=n.versions.map((o,l)=>Uk(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 Uk(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new ht(t,"expected an object");const n=e;Xt(n,"version",t),Xt(n,"contractVersion",t);const r="bundleUrl"in n&&n.bundleUrl!==void 0,s="integrity"in n&&n.integrity!==void 0;if(r&&Xt(n,"bundleUrl",t),s&&Xt(n,"integrity",t),r!==s)throw new ht(t,"bundleUrl and integrity must be provided together");const a="serverBundleUrl"in n&&n.serverBundleUrl!==void 0;if(a&&Xt(n,"serverBundleUrl",t),"serverIntegrity"in n&&n.serverIntegrity!==void 0&&Xt(n,"serverIntegrity",t),!r&&!a)throw new ht(t,"expected at least one of bundleUrl+integrity or serverBundleUrl");let o;if(n.requires!==void 0){if(!Array.isArray(n.requires))throw new ht(`${t}.requires`,"expected an array");o=n.requires.map((l,c)=>Hk(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 Hk(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new ht(t,"expected an object");const n=e;return Xt(n,"id",t),Xt(n,"versionRange",t),{id:n.id,versionRange:n.versionRange}}function Xt(e,t,n){const r=e[t];if(typeof r!="string"||r.length===0)throw new ht(`${n}.${t}`,"expected a non-empty string")}function Kk(e,t,n,r){if(!n.includes(e[t]))throw new ht(`${r}.${t}`,`expected one of: ${n.join(", ")}`)}const qc=["sha256","sha384","sha512"];function Wk(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(!qc.includes(n))throw new Error(`Unsupported SRI algorithm: ${n}. Supported: ${qc.join(", ")}`);if(!r)throw new Error(`Empty hash in SRI: ${e}`);return{algorithm:n,hash:r}}function Yk(e){return`SHA-${e.slice(3)}`}function Gk(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 Tl(e,t){const{algorithm:n,hash:r}=Wk(t),s=Yk(n),a=await crypto.subtle.digest(s,e),o=Gk(a);if(o!==r)throw new Error(`Integrity check failed for ${n}. Expected: ${r}, got: ${o}`)}async function Iv(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=Ev(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 fi(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 Tl(s,e.integrity),s}async function Rl(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 Tl(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 vi(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 fs="sh3.shell.mode";function Xk(e,t){return e.contributions.register(fs,t)}const on="0.15.3",Pl="sh3:user:__sh3core__:theme";let Is=[];function Jk(e){const t=Object.keys(e);for(const n of Is)t.includes(n)||document.documentElement.style.removeProperty(`--${n}`);for(const[n,r]of Object.entries(e))document.documentElement.style.setProperty(`--${n}`,r);Is=t;try{localStorage.setItem(Pl,JSON.stringify(e))}catch{}}function Zk(){for(const e of Is)document.documentElement.style.removeProperty(`--${e}`);Is=[];try{localStorage.removeItem(Pl)}catch{}}function Av(){try{const e=localStorage.getItem(Pl);if(!e)return{};const t=JSON.parse(e);return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{}}catch{return{}}}function Qk(){const e=Av();if(Object.keys(e).length!==0){for(const[t,n]of Object.entries(e))document.documentElement.style.setProperty(`--${t}`,n);Is=Object.keys(e)}}const On="/assets/icons-2eVU8BA9.svg",Cv=Symbol("sh3.icon-sprite");function $k(e){jo(Cv,e)}function Tv(){return Po(Cv)}var e0=Yo('<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>'),t0=Yo('<svg class="sh3-btn__icon svelte-t4hi97" aria-hidden="true"><use></use></svg>'),n0=A('<span class="sh3-btn__label svelte-t4hi97"><!></span>'),r0=A("<button><!> <!></button>");function s0(e,t){ie(t,!0);let n=$(t,"variant",3,"default"),r=$(t,"disabled",3,!1),s=$(t,"type",3,"button");const a=Tv();function o(m){return m.includes("/")||m.endsWith(".svg")}const l=H(()=>t.icon?o(t.icon)?t.icon:`${t.sprite??a??On}#${t.icon}`:void 0);let c=F(!1);const u=H(()=>t.loading??i(c)),d=H(()=>n()==="icon"||!!t.icon&&!t.children);async function f(m){if(!t.onclick)return;const I=t.onclick(m);if(I&&typeof I.then=="function"){x(c,!0);try{await I}finally{x(c,!1)}}}var h=r0();let b;var S=p(h);{var _=m=>{var I=e0();k(m,I)},y=m=>{var I=t0(),P=p(I);v(I),N(()=>ne(P,"href",i(l))),k(m,I)};K(S,m=>{i(u)?m(_):i(l)&&m(y,1)})}var E=w(S,2);{var g=m=>{var I=n0(),P=p(I);Ht(P,()=>t.children),v(I),k(m,I)};K(E,m=>{t.children&&m(g)})}v(h),N(()=>{ne(h,"type",s()),b=de(h,1,`sh3-btn sh3-btn--${n()??""}`,"svelte-t4hi97",b,{"sh3-btn--icon-only":i(d)}),h.disabled=r()||i(u),ne(h,"aria-busy",i(u)||void 0),ne(h,"title",t.title),ne(h,"aria-label",t.ariaLabel??(i(d)?t.title:void 0))}),U("click",h,f),k(e,h),oe()}ce(["click"]);var a0=A('<span class="sh3-collapsible__title svelte-lvydsb"> </span>'),i0=A('<div class="sh3-collapsible__body svelte-lvydsb"><!></div>'),o0=A('<div><button class="sh3-collapsible__head svelte-lvydsb" type="button"><svg class="sh3-collapsible__caret svelte-lvydsb" aria-hidden="true" viewBox="0 0 16 16"><path d="M5 3l6 5-6 5" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg> <!></button> <!></div>');function l0(e,t){ie(t,!0);let n=$(t,"open",15,!1);function r(){n(!n()),t.onopenchange?.(n())}var s=o0();let a;var o=p(s),l=w(p(o),2);{var c=h=>{var b=Be(),S=he(b);Ht(S,()=>t.header),k(h,b)},u=h=>{var b=a0(),S=p(b,!0);v(b),N(()=>z(S,t.title)),k(h,b)};K(l,h=>{t.header?h(c):t.title&&h(u,1)})}v(o);var d=w(o,2);{var f=h=>{var b=i0(),S=p(b);Ht(S,()=>t.children),v(b),k(h,b)};K(d,h=>{n()&&h(f)})}v(s),N(()=>{a=de(s,1,"sh3-collapsible svelte-lvydsb",null,a,{"sh3-collapsible--open":n()}),ne(o,"aria-expanded",n())}),U("click",o,r),k(e,s),oe()}ce(["click"]);var c0=A('<span aria-hidden="true">*</span>'),u0=A('<span class="sh3-field__label svelte-m4dkl"> <!></span>'),d0=A('<span class="sh3-field__affix svelte-m4dkl"><!></span>'),f0=A('<span class="sh3-field__affix svelte-m4dkl"><!></span>'),v0=A("<span> </span>"),h0=A('<label><!> <span class="sh3-field__row svelte-m4dkl"><!> <input class="sh3-field__input svelte-m4dkl"/> <!></span> <!></label>');function p0(e,t){ie(t,!0);let n=$(t,"value",15,""),r=$(t,"type",3,"text"),s=$(t,"disabled",3,!1),a=$(t,"invalid",3,!1),o=$(t,"size",3,"md"),l=$(t,"required",3,!1);const c=H(()=>a()&&!!t.error),u=H(()=>i(c)?t.error:t.helper);var d=h0();let f;var h=p(d);{var b=T=>{var M=u0(),L=p(M,!0),j=w(L);{var D=C=>{var O=c0();k(C,O)};K(j,C=>{l()&&C(D)})}v(M),N(()=>z(L,t.label)),k(T,M)};K(h,T=>{t.label&&T(b)})}var S=w(h,2),_=p(S);{var y=T=>{var M=d0(),L=p(M);Ht(L,()=>t.prefix),v(M),k(T,M)};K(_,T=>{t.prefix&&T(y)})}var E=w(_,2);ge(E);var g=w(E,2);{var m=T=>{var M=f0(),L=p(M);Ht(L,()=>t.suffix),v(M),k(T,M)};K(g,T=>{t.suffix&&T(m)})}v(S);var I=w(S,2);{var P=T=>{var M=v0();let L;var j=p(M,!0);v(M),N(()=>{L=de(M,1,"sh3-field__helper svelte-m4dkl",null,L,{"sh3-field__helper--error":i(c)}),z(j,i(u))}),k(T,M)};K(I,T=>{i(u)&&T(P)})}v(d),N(()=>{f=de(d,1,"sh3-field svelte-m4dkl",null,f,{"sh3-field--invalid":a(),"sh3-field--sm":o()==="sm"}),ne(E,"type",r()),ne(E,"placeholder",t.placeholder),E.disabled=s(),E.required=l(),ne(E,"autocomplete",t.autocomplete),ne(E,"aria-invalid",a()||void 0)}),U("input",E,()=>t.oninput?.(n())),Re("blur",E,()=>t.onchange?.(n())),Se(E,n),k(e,d),oe()}ce(["input"]);var m0=A('<span aria-hidden="true">*</span>'),b0=A('<span class="sh3-textarea__label svelte-668c6r"> <!></span>'),g0=A("<span> </span>"),y0=A('<label><!> <textarea class="sh3-textarea__input svelte-668c6r"></textarea> <!></label>');function _0(e,t){ie(t,!0);let n=$(t,"value",15,""),r=$(t,"disabled",3,!1),s=$(t,"invalid",3,!1),a=$(t,"size",3,"md"),o=$(t,"required",3,!1),l=$(t,"rows",3,3),c=$(t,"resize",3,"vertical");const u=H(()=>s()&&!!t.error),d=H(()=>i(u)?t.error:t.helper);var f=y0();let h;var b=p(f);{var S=m=>{var I=b0(),P=p(I,!0),T=w(P);{var M=L=>{var j=m0();k(L,j)};K(T,L=>{o()&&L(M)})}v(I),N(()=>z(P,t.label)),k(m,I)};K(b,m=>{t.label&&m(S)})}var _=w(b,2);Bo(_);let y;var E=w(_,2);{var g=m=>{var I=g0();let P;var T=p(I,!0);v(I),N(()=>{P=de(I,1,"sh3-textarea__helper svelte-668c6r",null,P,{"sh3-textarea__helper--error":i(u)}),z(T,i(d))}),k(m,I)};K(E,m=>{i(d)&&m(g)})}v(f),N(()=>{h=de(f,1,"sh3-textarea svelte-668c6r",null,h,{"sh3-textarea--invalid":s(),"sh3-textarea--sm":a()==="sm"}),ne(_,"placeholder",t.placeholder),_.disabled=r(),_.required=o(),ne(_,"rows",l()),ne(_,"aria-invalid",s()||void 0),y=He(_,"",y,{resize:c()})}),U("input",_,()=>t.oninput?.(n())),Re("blur",_,()=>t.onchange?.(n())),Se(_,n),k(e,f),oe()}ce(["input"]);function w0(e,t,n){let r=e;return t!==void 0&&r<t&&(r=t),n!==void 0&&r>n&&(r=n),r}function k0(e,t){const n=t.min??0,r=Math.round((e-n)/t.step);return n+r*t.step}var x0=A('<span class="sh3-num__label svelte-1qa0x3m"> </span>'),S0=A('<span class="sh3-num__affix svelte-1qa0x3m"><!></span>'),E0=A('<span class="sh3-num__affix svelte-1qa0x3m"><!></span>'),I0=A('<label><!> <span class="sh3-num__row svelte-1qa0x3m"><!> <input class="sh3-num__input svelte-1qa0x3m" type="number"/> <!> <span class="sh3-num__steppers svelte-1qa0x3m"><button type="button" aria-label="Increase" class="svelte-1qa0x3m">▲</button> <button type="button" aria-label="Decrease" class="svelte-1qa0x3m">▼</button></span></span></label>');function A0(e,t){ie(t,!0);let n=$(t,"value",15,0),r=$(t,"step",3,1),s=$(t,"disabled",3,!1),a=$(t,"invalid",3,!1),o=$(t,"size",3,"md");function l(C){if(Number.isNaN(C))return;let O=w0(k0(C,{min:t.min,step:r()}),t.min,t.max);t.precision!==void 0&&(O=Number(O.toFixed(t.precision))),n(O)}function c(C){l(n()+C*r()),t.oninput?.(n())}let u=null,d=null,f=!1;function h(C){s()||(f=!0,c(C),u=setTimeout(()=>{let O=0;d=setInterval(()=>{c(C),O+=60,O>1500&&d&&(clearInterval(d),d=setInterval(()=>c(C),20))},60)},350))}function b(){u&&(clearTimeout(u),u=null),d&&(clearInterval(d),d=null),f&&(f=!1,t.onchange?.(n()))}var S=I0();let _;var y=p(S);{var E=C=>{var O=x0(),q=p(O,!0);v(O),N(()=>z(q,t.label)),k(C,O)};K(y,C=>{t.label&&C(E)})}var g=w(y,2),m=p(g);{var I=C=>{var O=S0(),q=p(O);Ht(q,()=>t.prefix),v(O),k(C,O)};K(m,C=>{t.prefix&&C(I)})}var P=w(m,2);ge(P);var T=w(P,2);{var M=C=>{var O=E0(),q=p(O);Ht(q,()=>t.suffix),v(O),k(C,O)};K(T,C=>{t.suffix&&C(M)})}var L=w(T,2),j=p(L),D=w(j,2);v(L),v(g),v(S),N(()=>{_=de(S,1,"sh3-num svelte-1qa0x3m",null,_,{"sh3-num--invalid":a(),"sh3-num--sm":o()==="sm"}),ne(P,"min",t.min),ne(P,"max",t.max),ne(P,"step",r()),P.disabled=s(),ne(P,"aria-invalid",a()||void 0),bs(P,n()),j.disabled=s(),D.disabled=s()}),U("input",P,C=>{const O=C.currentTarget.valueAsNumber;Number.isNaN(O)||(n(O),t.oninput?.(O))}),Re("blur",P,()=>{l(n()),t.onchange?.(n())}),U("pointerdown",j,()=>h(1)),U("pointerup",j,b),Re("pointerleave",j,b),U("pointerdown",D,()=>h(-1)),U("pointerup",D,b),Re("pointerleave",D,b),k(e,S),oe()}ce(["input","pointerdown","pointerup"]);function hi(e){return e.filter(t=>!t.disabled)}function C0(e,t){const n=hi(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 T0(e,t){const n=hi(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 R0(e){return hi(e)[0]?.value}function P0(e){const t=hi(e);return t[t.length-1]?.value}var j0=A('<button type="button" role="radio"> </button>'),M0=A('<div role="radiogroup" tabindex="-1"></div>');function Rv(e,t){ie(t,!0);let n=$(t,"value",31,()=>le(t.options[0]?.value??"")),r=$(t,"size",3,"md"),s=$(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=C0(t.options,n());break;case"ArrowLeft":case"ArrowUp":d=T0(t.options,n());break;case"Home":d=R0(t.options);break;case"End":d=P0(t.options);break;default:return}u.preventDefault(),d!==void 0&&a(d)}var l=M0();let c;pe(l,21,()=>t.options,dt,(u,d)=>{var f=j0();let h;var b=p(f,!0);v(f),N(()=>{ne(f,"aria-checked",n()===i(d).value),ne(f,"tabindex",n()===i(d).value?0:-1),f.disabled=s()||i(d).disabled,h=de(f,1,"svelte-17xsko9",null,h,{"sh3-seg__btn--active":n()===i(d).value}),z(b,i(d).label)}),U("click",f,()=>{!i(d).disabled&&!s()&&a(i(d).value)}),k(u,f)}),v(l),N(()=>c=de(l,1,"sh3-seg svelte-17xsko9",null,c,{"sh3-seg--sm":r()==="sm"})),U("keydown",l,o),k(e,l),oe()}ce(["keydown","click"]);function D0(e,t){return e===t?"":t}function L0(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var z0=A('<button type="button"><!></button>'),O0=A('<div role="group"></div>');function N0(e,t){ie(t,!0);let n=$(t,"multiple",3,!1),r=$(t,"value",31,()=>le(n()?[]:t.options[0]?.value??"")),s=$(t,"disabled",3,!1),a=$(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(L0(f,d))}else r(D0(typeof r()=="string"?r():"",d));t.onchange?.(r())}}var c=O0();let u;pe(c,21,()=>t.options,dt,(d,f)=>{var h=z0();let b;var S=p(h);Ht(S,()=>i(f).icon),v(h),N((_,y)=>{ne(h,"title",i(f).tooltip),ne(h,"aria-label",i(f).tooltip),ne(h,"aria-pressed",_),h.disabled=s(),b=de(h,1,"svelte-13knxr5",null,b,y)},[()=>o(i(f).value),()=>({"sh3-itg__btn--active":o(i(f).value)})]),U("click",h,()=>l(i(f).value)),k(d,h)}),v(c),N(()=>u=de(c,1,"sh3-itg svelte-13knxr5",null,u,{"sh3-itg--sm":a()==="sm"})),k(e,c),oe()}ce(["click"]);function Pa(e,t,n){return n===t?0:(e-t)/(n-t)*100}var q0=A('<span class="sh3-slider__tick svelte-13va6lu"></span>'),B0=A('<output class="sh3-slider__value svelte-13va6lu"> </output>'),V0=A('<div><div class="sh3-slider__track svelte-13va6lu"><div class="sh3-slider__fill svelte-13va6lu"></div> <!></div> <input type="range" class="sh3-slider__native svelte-13va6lu"/> <!></div>');function Pv(e,t){ie(t,!0);let n=$(t,"value",15,0),r=$(t,"min",3,0),s=$(t,"max",3,100),a=$(t,"step",3,1),o=$(t,"showValue",3,!1),l=$(t,"disabled",3,!1),c=$(t,"invalid",3,!1),u=$(t,"size",3,"md"),d=$(t,"orientation",3,"horizontal");const f=H(()=>Pa(n(),r(),s()));var h=V0();let b;var S=p(h),_=p(S);let y;var E=w(_,2);{var g=T=>{var M=Be(),L=he(M);pe(L,17,()=>t.ticks,dt,(j,D)=>{var C=q0();let O;N(q=>O=He(C,"",O,q),[()=>({"--tick-pct":`${Pa(i(D),r(),s())??""}%`})]),k(j,C)}),k(T,M)};K(E,T=>{t.ticks&&T(g)})}v(S);var m=w(S,2);ge(m);var I=w(m,2);{var P=T=>{var M=B0();let L;var j=p(M,!0);v(M),N(()=>{L=He(M,"",L,{"--pct":`${i(f)??""}%`}),z(j,n())}),k(T,M)};K(I,T=>{o()&&T(P)})}v(h),N(()=>{b=de(h,1,`sh3-slider sh3-slider--${d()??""}`,"svelte-13va6lu",b,{"sh3-slider--sm":u()==="sm","sh3-slider--invalid":c()}),y=He(_,"",y,{"--pct":`${i(f)??""}%`}),ne(m,"min",r()),ne(m,"max",s()),ne(m,"step",a()),m.disabled=l(),ne(m,"aria-invalid",c()||void 0)}),U("input",m,()=>t.oninput?.(n())),U("change",m,()=>t.onchange?.(n())),Se(m,n),k(e,h),oe()}ce(["input","change"]);function Bc(e,t,n){const[r,s]=e;return t==="low"?[Math.min(n,s),s]:[r,Math.max(n,r)]}var F0=A('<div><div class="sh3-range__track svelte-rdbrc5"><div class="sh3-range__fill svelte-rdbrc5"></div></div> <input type="range" class="sh3-range__native sh3-range__native--low svelte-rdbrc5"/> <input type="range" class="sh3-range__native sh3-range__native--high svelte-rdbrc5"/></div>');function U0(e,t){ie(t,!0);let n=$(t,"value",31,()=>le([0,100])),r=$(t,"min",3,0),s=$(t,"max",3,100),a=$(t,"step",3,1),o=$(t,"disabled",3,!1),l=$(t,"invalid",3,!1),c=$(t,"size",3,"md");const u=H(()=>Pa(n()[0],r(),s())),d=H(()=>Pa(n()[1],r(),s()));function f(I){n(Bc(n(),"low",I)),t.oninput?.(n())}function h(I){n(Bc(n(),"high",I)),t.oninput?.(n())}var b=F0();let S;var _=p(b),y=p(_);let E;v(_);var g=w(_,2);ge(g);var m=w(g,2);ge(m),v(b),N(()=>{S=de(b,1,"sh3-range svelte-rdbrc5",null,S,{"sh3-range--sm":c()==="sm","sh3-range--invalid":l()}),E=He(y,"",E,{"--lo":`${i(u)??""}%`,"--hi":`${i(d)??""}%`}),ne(g,"min",r()),ne(g,"max",s()),ne(g,"step",a()),g.disabled=o(),bs(g,n()[0]),ne(m,"min",r()),ne(m,"max",s()),ne(m,"step",a()),m.disabled=o(),bs(m,n()[1])}),U("input",g,I=>f(parseFloat(I.currentTarget.value))),U("change",g,()=>t.onchange?.(n())),U("input",m,I=>h(parseFloat(I.currentTarget.value))),U("change",m,()=>t.onchange?.(n())),k(e,b),oe()}ce(["input","change"]);var H0=A('<div class="sh3-sg__channel svelte-1lqyi0d"><span class="sh3-sg__label svelte-1lqyi0d"> </span> <!></div>'),K0=A("<div></div>");function W0(e,t){ie(t,!0);let n=$(t,"orientation",3,"horizontal"),r=$(t,"values",31,()=>le({})),s=$(t,"showValues",3,!1),a=$(t,"disabled",3,!1),o=$(t,"size",3,"md");var l=K0();pe(l,21,()=>t.channels,c=>c.id,(c,u)=>{var d=H0(),f=p(d),h=p(f,!0);v(f);var b=w(f,2),S=()=>r()[i(u).id]??0,_=y=>r({...r(),[i(u).id]:y});{let y=H(()=>i(u).min??0),E=H(()=>i(u).max??100),g=H(()=>i(u).step??1);Pv(b,{get orientation(){return n()},get min(){return i(y)},get max(){return i(E)},get step(){return i(g)},get disabled(){return a()},get size(){return o()},get showValue(){return s()},get value(){return S()},set value(m){_(m)},oninput:()=>t.oninput?.(r()),onchange:()=>t.onchange?.(r())})}v(d),N(()=>z(h,i(u).label)),k(c,d)}),v(l),N(()=>de(l,1,`sh3-sg sh3-sg--${n()??""}`,"svelte-1lqyi0d")),k(e,l),oe()}var Y0=A('<span class="sh3-swatch__label svelte-6ri2j2"> </span>'),G0=A('<label><!> <button type="button" class="sh3-swatch__btn svelte-6ri2j2"><span class="sh3-swatch__dot svelte-6ri2j2"></span><span class="sh3-swatch__hex svelte-6ri2j2"> </span></button></label>');function jv(e,t){ie(t,!0);let n=$(t,"value",15,"#000000"),r=$(t,"disabled",3,!1),s=$(t,"size",3,"md"),a;async function o(){if(r())return;const _=await sn.color.pick({initial:n(),anchor:a});_!=null&&(n(_),t.onchange?.(_))}var l=G0();let c;var u=p(l);{var d=_=>{var y=Y0(),E=p(y,!0);v(y),N(()=>z(E,t.label)),k(_,y)};K(u,_=>{t.label&&_(d)})}var f=w(u,2);let h;var b=w(p(f)),S=p(b,!0);v(b),v(f),Le(f,_=>a=_,()=>a),v(l),N(()=>{c=de(l,1,"sh3-swatch svelte-6ri2j2",null,c,{"sh3-swatch--sm":s()==="sm"}),f.disabled=r(),ne(f,"aria-label",`${t.label??"Color"??""} (current ${n()??""})`),h=He(f,"",h,{"--swatch-color":n()}),z(S,n())}),U("click",f,o),k(e,l),oe()}ce(["click"]);function X0(e,t){return!e||e.length===0?t?[]:null:t?Array.from(e):e[0]}function J0(e){return e===null?"":Array.isArray(e)?e.length===0?"":e.length===1?e[0].name:`${e.length} files`:e.name}var Z0=A('<label><input class="sh3-fp__native svelte-24jk95" type="file"/> <span class="sh3-fp__btn svelte-24jk95" tabindex="-1"> </span> <span class="sh3-fp__name svelte-24jk95"> </span></label>');function Q0(e,t){ie(t,!0);let n=$(t,"value",15,null),r=$(t,"multiple",3,!1),s=$(t,"disabled",3,!1),a=$(t,"invalid",3,!1),o=$(t,"size",3,"md"),l=$(t,"buttonLabel",3,"Choose file...");function c(E){const g=E.currentTarget;n(X0(g.files,r())),t.onchange?.(n())}const u=H(()=>J0(n()));var d=Z0();let f;var h=p(d),b=w(h,2),S=p(b,!0);v(b);var _=w(b,2),y=p(_,!0);v(_),v(d),N(()=>{f=de(d,1,"sh3-fp svelte-24jk95",null,f,{"sh3-fp--sm":o()==="sm","sh3-fp--invalid":a()}),ne(h,"accept",t.accept),h.multiple=r(),h.disabled=s(),z(S,l()),z(y,i(u)||"no file")}),U("change",h,c),k(e,d),oe()}ce(["change"]);const $0=8;function ex(e){return e.length>=$0}function tx(e,t){if(!t)return e.slice();const n=t.toLowerCase();return e.filter(r=>r.label.toLowerCase().includes(n))}function nx(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 rx(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 sx(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var ax=A('<input class="sh3-listbox__search svelte-1tyxvrs" type="search" placeholder="Filter…"/>'),ix=A('<span aria-hidden="true"></span>'),ox=A('<div role="option" tabindex="-1"><!> <span class="sh3-listbox__label"> </span></div>'),lx=A('<div class="sh3-listbox__empty svelte-1tyxvrs">No matches</div>'),cx=A('<div class="sh3-listbox svelte-1tyxvrs" role="listbox" tabindex="-1"><!> <div class="sh3-listbox__list svelte-1tyxvrs"><!> <!></div></div>');function ux(e,t){ie(t,!0);const n=H(()=>t.getValue());function r(){t.onClose?.(),t.close()}const s=H(()=>ex(t.options));function a(){if(t.multiple)return 0;const L=typeof i(n)=="string"?i(n):"",j=t.options.findIndex(D=>D.value===L&&!D.disabled);return j>=0?j:0}let o=F(""),l=F(le(a())),c=F(void 0),u=F(void 0),d="",f=null;const h=H(()=>tx(t.options,i(o)));xe(()=>{i(l)>=i(h).length&&x(l,0),b()});async function b(){if(await Ns(),!i(c))return;i(c).querySelector(`[data-idx="${i(l)}"]`)?.scrollIntoView({block:"nearest"})}function S(L){return t.multiple&&Array.isArray(i(n))?i(n).includes(L.value):i(n)===L.value}function _(L){const j=i(h)[L];!j||j.disabled||(t.onSelect(j.value),t.multiple||r())}function y(L){if(i(h).length!==0)switch(L.key){case"ArrowDown":L.preventDefault(),x(l,(i(l)+1)%i(h).length);break;case"ArrowUp":L.preventDefault(),x(l,(i(l)-1+i(h).length)%i(h).length);break;case"Home":L.preventDefault(),x(l,0);break;case"End":L.preventDefault(),x(l,i(h).length-1);break;case"Enter":L.preventDefault(),_(i(l));break;case" ":case"Space":L.preventDefault(),_(i(l));break;case"Escape":L.preventDefault(),r();break;default:if(i(s)&&document.activeElement===i(u)||L.key.length!==1||L.metaKey||L.ctrlKey||L.altKey)return;d+=L.key,f&&clearTimeout(f),f=setTimeout(()=>{d=""},500);const j=nx(i(h),d,i(l));j>=0&&x(l,j,!0)}}var E=cx(),g=p(E);{var m=L=>{var j=ax();ge(j),Le(j,D=>x(u,D),()=>i(u)),Se(j,()=>i(o),D=>x(o,D)),k(L,j)};K(g,L=>{i(s)&&L(m)})}var I=w(g,2),P=p(I);pe(P,17,()=>i(h),dt,(L,j,D)=>{var C=ox();ne(C,"data-idx",D);let O;var q=p(C);{var R=Y=>{var Q=ix();let Z;N(se=>Z=de(Q,1,"sh3-listbox__check svelte-1tyxvrs",null,Z,se),[()=>({"sh3-listbox__check--on":S(i(j))})]),k(Y,Q)};K(q,Y=>{t.multiple&&Y(R)})}var V=w(q,2),X=p(V,!0);v(V),v(C),N((Y,Q)=>{ne(C,"aria-selected",Y),ne(C,"aria-disabled",i(j).disabled),O=de(C,1,"svelte-1tyxvrs",null,O,Q),z(X,i(j).label)},[()=>S(i(j)),()=>({"sh3-listbox__opt--active":D===i(l),"sh3-listbox__opt--selected":S(i(j))})]),U("click",C,()=>_(D)),Re("mouseenter",C,()=>x(l,D,!0)),k(L,C)});var T=w(P,2);{var M=L=>{var j=lx();k(L,j)};K(T,L=>{i(h).length===0&&L(M)})}v(I),Le(I,L=>x(c,L),()=>i(c)),v(E),N(()=>ne(E,"aria-multiselectable",t.multiple)),U("keydown",E,y),k(e,E),oe()}ce(["keydown","click"]);var dx=A('<span class="sh3-select__label svelte-1q3zxph"> </span>'),fx=A("<option> </option>"),vx=A('<label><!> <button type="button" class="sh3-select__btn svelte-1q3zxph" aria-haspopup="listbox"><span> </span> <span class="sh3-select__chevron svelte-1q3zxph" aria-hidden="true">▾</span></button> <select class="sh3-select__native svelte-1q3zxph" aria-hidden="true"></select></label>');function hx(e,t){ie(t,!0);let n=$(t,"multiple",3,!1),r=$(t,"value",31,()=>le(n()?[]:"")),s=$(t,"placeholder",3,"Select…"),a=$(t,"disabled",3,!1),o=$(t,"invalid",3,!1),l=$(t,"size",3,"md"),c=F(void 0),u=F(void 0),d=F(!1);const f=H(()=>rx(t.options,r(),n()));function h(){x(d,!1),i(c)?.focus()}async function b(){if(a()||i(d)||!i(c))return;x(d,!0);const j=sn.popup.show(ux,{anchor:i(c)},{options:t.options,getValue:()=>r(),multiple:n(),onSelect:O=>{if(n()){const q=Array.isArray(r())?r():[];r(sx(q,O))}else r(O);t.onchange?.(r())},onClose:h}),D=j.close;j.close=()=>{D(),h()},await Ns(),document.querySelector(".sh3-listbox")?.focus()}function S(j){if(!(a()||i(d)))switch(j.key){case"ArrowDown":case"ArrowUp":case"Enter":case" ":j.preventDefault(),b();break}}function _(){i(u)&&(n()?r(Array.from(i(u).selectedOptions).map(j=>j.value)):r(i(u).value),t.onchange?.(r()))}var y=vx();let E;var g=p(y);{var m=j=>{var D=dx(),C=p(D,!0);v(D),N(()=>z(C,t.label)),k(j,D)};K(g,j=>{t.label&&j(m)})}var I=w(g,2),P=p(I);let T;var M=p(P,!0);v(P),qt(2),v(I),Le(I,j=>x(c,j),()=>i(c));var L=w(I,2);ne(L,"tabindex",-1),pe(L,21,()=>t.options,dt,(j,D)=>{var C=fx(),O=p(C,!0);v(C);var q={};N(R=>{$o(C,R),z(O,i(D).label),q!==(q=i(D).value)&&(C.value=(C.__value=i(D).value)??"")},[()=>n()?Array.isArray(r())&&r().includes(i(D).value):r()===i(D).value]),k(j,C)}),v(L),Le(L,j=>x(u,j),()=>i(u)),v(y),N(()=>{E=de(y,1,"sh3-select svelte-1q3zxph",null,E,{"sh3-select--invalid":o(),"sh3-select--sm":l()==="sm"}),I.disabled=a(),ne(I,"aria-expanded",i(d)),T=de(P,1,"sh3-select__display svelte-1q3zxph",null,T,{"sh3-select__display--placeholder":!i(f)}),z(M,i(f)||s()),L.multiple=n(),L.disabled=a()}),U("click",I,b),U("keydown",I,S),U("change",L,_),k(e,y),oe()}ce(["click","keydown","change"]);function px(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 mx(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var bx=A('<input type="search" class="sh3-picker__search svelte-1rlwvrb" placeholder="Filter…"/>'),gx=A('<p class="sh3-picker__status svelte-1rlwvrb">Loading…</p>'),yx=A('<button type="button" class="sh3-picker__retry svelte-1rlwvrb">Retry</button>'),_x=A('<p class="sh3-picker__status sh3-picker__status--error svelte-1rlwvrb"> </p> <!>',1),wx=A('<p class="sh3-picker__status svelte-1rlwvrb"> </p>'),kx=A('<span class="sh3-picker__row-sub svelte-1rlwvrb"> </span>'),xx=A('<label class="sh3-picker__row svelte-1rlwvrb"><input type="checkbox"/> <span class="sh3-picker__row-text svelte-1rlwvrb"><span class="sh3-picker__row-label svelte-1rlwvrb"> </span> <!></span></label>'),Sx=A('<div><!> <div class="sh3-picker__list svelte-1rlwvrb"><!></div> <p class="sh3-picker__footer svelte-1rlwvrb"> </p></div>');function Mv(e,t){ie(t,!0);let n=$(t,"value",31,()=>le([])),r=$(t,"loading",3,!1),s=$(t,"error",3,null),a=$(t,"emptyText",3,"No items."),o=$(t,"searchThreshold",3,8),l=$(t,"disabled",3,!1),c=$(t,"size",3,"md"),u=F("");const d=H(()=>t.items.length>=o()),f=H(()=>px(t.items,i(u))),h=H(()=>t.items.length),b=H(()=>n().length);function S(C){if(l())return;const O=mx(n(),C);n(O),t.onchange?.(O)}var _=Sx();let y;var E=p(_);{var g=C=>{var O=bx();ge(O),N(()=>O.disabled=l()),Se(O,()=>i(u),q=>x(u,q)),k(C,O)};K(E,C=>{i(d)&&C(g)})}var m=w(E,2),I=p(m);{var P=C=>{var O=gx();k(C,O)},T=C=>{var O=_x(),q=he(O),R=p(q,!0);v(q);var V=w(q,2);{var X=Y=>{var Q=yx();U("click",Q,()=>t.onRetry?.()),k(Y,Q)};K(V,Y=>{t.onRetry&&Y(X)})}N(()=>z(R,s())),k(C,O)},M=C=>{var O=wx(),q=p(O,!0);v(O),N(()=>z(q,a())),k(C,O)},L=C=>{var O=Be(),q=he(O);pe(q,17,()=>i(f),R=>R.id,(R,V)=>{var X=xx(),Y=p(X);ge(Y);var Q=w(Y,2),Z=p(Q),se=p(Z,!0);v(Z);var J=w(Z,2);{var B=W=>{var ae=kx(),G=p(ae,!0);v(ae),N(()=>z(G,i(V).sublabel)),k(W,ae)};K(J,W=>{i(V).sublabel&&W(B)})}v(Q),v(X),N(W=>{Qo(Y,W),Y.disabled=l(),z(se,i(V).label)},[()=>n().includes(i(V).id)]),U("change",Y,()=>S(i(V).id)),k(R,X)}),k(C,O)};K(I,C=>{r()?C(P):s()?C(T,1):t.items.length===0?C(M,2):C(L,-1)})}v(m);var j=w(m,2),D=p(j);v(j),v(_),N(()=>{y=de(_,1,"sh3-picker svelte-1rlwvrb",null,y,{"sh3-picker--sm":c()==="sm","sh3-picker--disabled":l()}),z(D,`${i(b)??""} of ${i(h)??""} selected`)}),k(e,_),oe()}ce(["click","change"]);function Dv(e,t){ie(t,!0);const n=new Set(["sh3-admin-app","sh3-store-app"]);let r=$(t,"value",31,()=>le([])),s=$(t,"disabled",3,!1),a=$(t,"size",3,"md");const o=H(()=>Wr().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)}Mv(e,{get items(){return i(o)},get value(){return r()},onchange:l,get disabled(){return s()},get size(){return a()},emptyText:"No apps installed."}),oe()}const zt=le({users:[],loading:!1,error:null});let ts=null;function Vc(){return ts||(zt.loading=!0,zt.error=null,ts=(async()=>{try{const e=await fetch("/api/admin/users",{credentials:"include"});if(!e.ok){zt.error=`GET /api/admin/users failed: ${e.status}`;return}zt.users=await e.json()}catch(e){zt.error=e.message}finally{zt.loading=!1,ts=null}})(),ts)}function Lv(e,t){ie(t,!0);let n=$(t,"value",31,()=>le([])),r=$(t,"disabled",3,!1),s=$(t,"size",3,"md");zt.users.length===0&&!zt.loading&&!zt.error&&Vc();const a=H(()=>zt.users.map(l=>({id:l.id,label:l.displayName||l.username,sublabel:l.username})));function o(l){n(l),t.onchange?.(l)}Mv(e,{get items(){return i(a)},get value(){return n()},onchange:o,get loading(){return zt.loading},get error(){return zt.error},onRetry:()=>void Vc(),emptyText:"No users found.",get disabled(){return r()},get size(){return s()}}),oe()}const Ex={hotInstall:typeof Blob<"u"&&typeof URL.createObjectURL=="function"},zv=["__sh3core__","shell","sh3-store","sh3-admin"],Ov=Object.freeze(Object.defineProperty({__proto__:null,AppPicker:Dv,Button:s0,COLOR_PICKER_POINT:pf,CONFLICT_RENDERER_POINT:ff,Collapsible:l0,ColorSwatch:jv,ConflictPermissionError:vf,ConflictSessionOrphanedError:vw,ConsentDeniedError:kv,FRAMEWORK_SHARD_IDS:zv,Field:p0,FilePicker:Q0,IconToggleGroup:N0,NumberInput:A0,PERMISSION_DOCUMENTS_BROWSE:bv,PERMISSION_DOCUMENTS_READ:gv,PERMISSION_DOCUMENTS_WRITE:yv,PERMISSION_KEYS_MINT:_v,PERMISSION_STATE_MANAGE:Ya,PERMISSION_SYNC_PEER:xk,PERMISSION_SYNC_POLICY:Sk,RangeSlider:U0,SHELL_MODE_CONTRIBUTION_POINT:fs,ScopeEscalationError:wv,Segmented:Rv,Select:hx,Slider:Pv,SliderGroup:W0,Textarea:_0,UserPicker:Lv,VERSION:on,activeShards:or,buildPackageMeta:vi,capabilities:Ex,clearTokenOverrides:Zk,closeTab:xl,collapseChild:$1,dockFloat:av,dockIntoActiveLayout:El,erroredShards:Ra,expandChild:ek,fetchBundle:fi,fetchRegistries:Iv,focusTab:Q1,focusView:ai,getActiveApp:rl,getAuthHeader:li,getIconSprite:Tv,getTokenOverrides:Av,getUser:Nr,inspectActiveLayout:tv,isAdmin:bt,isAuthenticated:po,isGuest:cv,launchApp:mn,listRegisteredApps:Wr,listVerbs:vl,locateSlot:ov,popoutView:sv,provideIcons:$k,pushNavEntry:Ky,registerConsentListener:xv,registerShellMode:Xk,registeredShards:an,resolveConsent:go,returnToHome:Xr,runVerbProgrammatic:pv,setTokenOverrides:Jk,shell:sn,spawnSatellite:di,spliceIntoActiveLayout:Z1,subscribeKeyRevocation:Al,unregisterApp:si,validateRegistryIndex:Ev},Symbol.toStringTag,{value:"Module"})),Ix="/assets/SH3-BG5NVpSD.png",Ax="https://cdn.jsdelivr.net/npm/p5@1.11.13/lib/p5.min.js";let ns=null;function Cx(){return ns||(ns=new Promise((e,t)=>{const n=window.p5;if(n){e(n);return}const r=document.createElement("script");r.src=Ax,r.async=!0,r.onload=()=>e(window.p5),r.onerror=s=>{ns=null,t(s)},document.head.appendChild(r)}),ns)}var Tx=A('<h1 class="shell-title-fallback svelte-1ifjvh5">SH3</h1>'),Rx=A('<div class="shell-title svelte-1ifjvh5"></div>');function Px(e,t){ie(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=F(void 0),h=null,b=F(!1);const S=()=>m=>{const P=getComputedStyle(document.documentElement).getPropertyValue("--shell-accent").trim();let T,M,L=!1;m.setup=()=>{m.createCanvas(c,u),m.noSmooth(),m.noStroke(),m.textAlign(m.CENTER,m.CENTER),m.textFont("monospace"),m.textSize(10),m.textStyle(m.BOLD),M=m.loadImage(Ix,()=>{T=m.createGraphics(r,s),T.pixelDensity(1),T.image(M,0,0,r,s),T.loadPixels(),L=!0},()=>{x(b,!0)})},m.draw=()=>{if(!L)return;const j=m.millis()*.001;let D;m.clear(),m.background(0,0),m.fill(P);for(let C=0;C<s;C++)for(let O=0;O<r;O++){const q=(C*r+O)*4;if(T.pixels[q]<64){if(D=m.noise(O/r*2,C/s*2,j*.15),D>.33)continue;m.text(n[Math.floor(D*n.length*.25)],(O+.5)*a,(C+.5)*o);continue}D=m.noise(O/r*4,C/s*4,j*.5),m.text(n[Math.floor(D*n.length)],(O+.5)*a,(C+.5)*o)}}};xe(()=>{if(i(b))return;let m=!1;return Cx().then(I=>{if(!(m||!i(f)))try{h=new I(S(),i(f))}catch(P){console.error("[ShellTitle] p5 sketch failed to start",P),x(b,!0)}}).catch(I=>{console.error("[ShellTitle] failed to load p5 from CDN",I),x(b,!0)}),()=>{m=!0,h&&(h.remove(),h=null)}});var _=Be(),y=he(_);{var E=m=>{var I=Tx();k(m,I)},g=m=>{var I=Rx();He(I,"",{},{width:"216.7195767195767px",height:"80px","--shell-title-scale":d}),Le(I,P=>x(f,P),()=>i(f)),k(m,I)};K(y,m=>{i(b)?m(E):m(g,-1)})}k(e,_),oe()}async function hr(e,t){const n=await fetch(e,{credentials:"include",...t});if(!n.ok)throw new Error(`${t?.method??"GET"} ${e} failed: ${n.status}`);return n.json()}const fa={async list(){return(await hr("/api/projects",{method:"GET"})).projects},async listAll(){return(await hr("/api/projects/all",{method:"GET"})).projects},async get(e){return hr(`/api/projects/${encodeURIComponent(e)}`,{method:"GET"})},async create(e){return hr("/api/projects",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e)})},async update(e,t){return hr(`/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 hr(`/api/projects/${encodeURIComponent(e)}${n}`,{method:"DELETE"})}};var jx=A(`<div class="delete-project-dialog svelte-6j13aq"><div class="delete-project-dialog__title svelte-6j13aq"> </div> <div class="delete-project-dialog__body svelte-6j13aq">The project record will be removed and any members will lose access.
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 Ee=null;function jr(e){Ee=e}let ea=null;function fm(e,t,n,r,s,a){const o=ea;ea={type:t,file:n[xt],line:r,column:s,parent:o,...a};try{return e()}finally{ea=o}}let Ro=null;function Ql(e){Ro=e}function vm(){const e={};return[()=>(Ou(e)||Ep(),Po(e)),t=>jo(e,t)]}function Po(e){return Va().get(e)}function jo(e,t){return Va().set(e,t),t}function Ou(e){return Va().has(e)}function hm(){return Va()}function ie(e,t=!1,n){Ee={p:Ee,i:!1,c:null,e:null,s:e,x:null,r:ve,l:null}}function oe(e){var t=Ee,n=t.e;if(n!==null){t.e=null;for(var r of n)dd(r)}return e!==void 0&&(t.x=e),t.i=!0,Ee=t.p,e??{}}function Nu(){return!0}function Va(e){return Ee===null&&Vr(),Ee.c??=new Map(pm(Ee)||void 0)}function pm(e){let t=e.p;for(;t!==null;){const n=t.c;if(n!==null)return n;t=t.p}return null}let Un=[];function qu(){var e=Un;Un=[],zi(e)}function ct(e){if(Un.length===0&&!Sr){var t=Un;queueMicrotask(()=>{t===Un&&qu()})}Un.push(e)}function mm(){for(;Un.length>0;)qu()}function Bu(e){var t=ve;if(t===null)return ye.f|=jn,e;if(!(t.f&En)&&!(t.f&er))throw e;fn(e,t)}function fn(e,t){for(;t!==null;){if(t.f&Oi){if(!(t.f&En))throw e;try{t.b.error(e);return}catch(n){e=n}}t=t.parent}throw e}const bm=-7169;function De(e,t){e.f=e.f&bm|t}function Mo(e){e.f&Nt||e.deps===null?De(e,Ue):De(e,tn)}function Vu(e){if(e!==null)for(const t of e)!(t.f&Ze)||!(t.f&tr)||(t.f^=tr,Vu(t.deps))}function Fu(e,t,n){e.f&Je?t.add(e):e.f&tn&&n.add(e),Vu(e.deps),De(e,Ue)}function Uu(e,t,n){if(e==null)return t(void 0),St;const r=_e(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}function gm(e){let t;return Uu(e,n=>t=n)(),t}let Bi=!1,rs=!1,Vi=Symbol();function ym(e,t,n){const r=n[t]??={store:null,source:Ha(void 0),unsubscribe:St};if(r.store!==e&&!(Vi in n))if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=St;else{var s=!0;r.unsubscribe=Uu(e,a=>{s?r.source.v=a:x(r.source,a)}),s=!1}return e&&Vi in n?gm(e):i(r.source)}function _m(e,t,n){let r=n[t];return r&&r.store!==e&&(r.unsubscribe(),r.unsubscribe=St),e}function Hu(e,t){return Fa(e,t),t}function wm(e,t){var n=e[t];n.store!==null&&Hu(n.store,n.source.v)}function km(){const e={};function t(){Ct(()=>{for(var n in e)e[n].unsubscribe();$n(e,Vi,{enumerable:!1,value:!0})})}return[e,t]}function Fa(e,t){Bi=!0;try{e.set(t)}finally{Bi=!1}}function xm(e,t,n){return Fa(e,n),t}function Sm(e,t,n=1){return Fa(e,t+n),t}function Em(e,t,n=1){const r=t+n;return Fa(e,r),r}function Im(){rs=!0}function Ku(e){var t=rs;try{return rs=!1,[e(),rs]}finally{rs=t}}const yn=new Set;let me=null,ot=null,Fi=null,Sr=!1,ki=!1,_r=null,ta=null;var $l=0;let Am=1;class Ut{id=Am++;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)De(s,Je),n(s);for(s of r.m)De(s,tn),n(s)}this.#f.add(t)}#p(){if($l++>1e3&&(yn.delete(this),Cm()),!this.#d()){for(const l of this.#l)this.#u.delete(l),De(l,Je),this.schedule(l);for(const l of this.#u)De(l,tn),this.schedule(l)}const t=this.#a;this.#a=[],this.apply();var n=_r=[],r=[],s=ta=[];for(const l of t)try{this.#b(l,n,r)}catch(c){throw Xu(l),c}if(me=null,s.length>0){var a=Ut.ensure();for(const l of s)a.schedule(l)}if(_r=null,ta=null,this.#d()||this.#g()){this.#m(r),this.#m(n);for(const[l,c]of this.#c)Gu(l,c)}else{this.#s.size===0&&yn.delete(this),this.#l.clear(),this.#u.clear();for(const l of this.#e)l(this);this.#e.clear(),ec(r),ec(n),this.#i?.resolve()}var o=me;if(this.#a.length>0){const l=o??=this;l.#a.push(...this.#a.filter(c=>!l.#a.includes(c)))}o!==null&&(yn.add(o),o.#p())}#b(t,n,r){t.f^=Ue;for(var s=t.first;s!==null;){var a=s.f,o=(a&(en|xn))!==0,l=o&&(a&Ue)!==0,c=l||(a&lt)!==0||this.#c.has(s);if(!c&&s.fn!==null){o?s.f^=Ue:a&er?n.push(s):Hr(s)&&(a&Qt&&this.#u.add(s),ar(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)Fu(t[n],this.#l,this.#u)}capture(t,n,r=!1){t.v!==Pe&&!this.previous.has(t)&&this.previous.set(t,t.v),t.f&jn||(this.current.set(t,[n,r]),ot?.set(t,n)),this.is_fork||(t.v=n)}activate(){me=this}deactivate(){me=null,ot=null}flush(){try{ki=!0,me=this,this.#p()}finally{$l=0,Fi=null,_r=null,ta=null,ki=!1,me=null,ot=null,Yn.clear()}}discard(){for(const t of this.#t)t(this);this.#t.clear(),this.#n.clear(),yn.delete(this)}register_created_effect(t){this.#o.push(t)}#y(){for(const d of yn){var t=d.id<this.id,n=[];for(const[f,[h,b]]of this.current){if(d.current.has(f)){var r=d.current.get(f)[0];if(t&&h!==r)d.current.set(f,[h,b]);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,h=>{h.f&(Qt|Pr)?d.schedule(h):d.#m([h])});d.activate();var a=new Set,o=new Map;for(var l of n)Wu(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&(mt|lt|vs))&&Do(f,c,o)&&(f.f&(Pr|Qt)?(De(f,Je),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 yn)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,ct(()=>{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??=xu()).promise}static ensure(){if(me===null){const t=me=new Ut;ki||(yn.add(me),Sr||ct(()=>{me===t&&t.flush()}))}return me}apply(){{ot=null;return}}schedule(t){if(Fi=t,t.b?.is_pending&&t.f&(er|Rs|Co)&&!(t.f&En)){t.b.defer_effect(t);return}for(var n=t;n.parent!==null;){n=n.parent;var r=n.f;if(_r!==null&&n===ve&&(ye===null||!(ye.f&Ze))&&!Bi)return;if(r&(xn|en)){if(!(r&Ue))return;n.f^=Ue}}this.#a.push(n)}}function Dn(e){var t=Sr;Sr=!0;try{var n;for(e&&(me!==null&&!me.is_fork&&me.flush(),n=e());;){if(mm(),me===null)return n;me.flush()}}finally{Sr=t}}function Cm(){try{Op()}catch(e){fn(e,Fi)}}let _n=null;function ec(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&(mt|lt))&&Hr(r)&&(_n=new Set,ar(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&bd(r),_n?.size>0)){Yn.clear();for(const s of _n){if(s.f&(mt|lt))continue;const a=[s];let o=s.parent;for(;o!==null;)_n.has(o)&&(_n.delete(o),a.push(o)),o=o.parent;for(let l=a.length-1;l>=0;l--){const c=a[l];c.f&(mt|lt)||ar(c)}}_n.clear()}}_n=null}}function Wu(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&Ze?Wu(s,t,n,r):a&(Pr|Qt)&&!(a&Je)&&Do(s,t,r)&&(De(s,Je),Lo(s))}}function Yu(e,t){if(e.reactions!==null)for(const n of e.reactions){const r=n.f;r&Ze?Yu(n,t):r&vs&&(De(n,Je),t.add(n))}}function Do(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(Rr.call(t,s))return!0;if(s.f&Ze&&Do(s,t,n))return n.set(s,!0),!0}return n.set(e,!1),!1}function Lo(e){me.schedule(e)}let pa=[];function Tm(){Dn(()=>{const e=pa;pa=[];for(const t of e)Mr(t)})}function Rm(e){var t=gt(0),n=!0,r=void 0;return i(t),vd(()=>{if(n){var s=ot;try{ot=null,r=e()}finally{ot=s}return}pa.length===0&&ct(Tm),pa.push(t)}),n=!1,r}function Gu(e,t){if(!(e.f&en&&e.f&Ue)){e.f&Je?t.d.push(e):e.f&tn&&t.m.push(e),De(e,Ue);for(var n=e.first;n!==null;)Gu(n,t),n=n.next}}function Xu(e){De(e,Ue);for(var t=e.first;t!==null;)Xu(t),t=t.next}function Pm(e){Tu(),me!==null&&qp();var t=Ut.ensure();t.is_fork=!0,ot=new Map;var n=!1,r=t.settled();return Dn(e),{commit:async()=>{if(n){await r;return}yn.has(t)||Np(),n=!0,t.is_fork=!1;for(var[s,[a]]of t.current)s.v=a,s.wv=ba();t.activate(),t.run_fork_commit_callbacks(),t.deactivate(),Dn(()=>{var o=new Set;for(var l of t.current.keys())Yu(l,o);Fm(o),nd()}),t.flush(),await r},discard:()=>{for(var s of t.current.keys())s.wv=ba();!n&&yn.has(t)&&t.discard()}}}function jm(e){let t=0,n=gt(0),r;return()=>{Os()&&(i(n),Ve(()=>(t===0&&(r=_e(()=>e(()=>cn(n)))),t+=1,()=>{ct(()=>{t-=1,t===0&&(r?.(),r=void 0,cn(n))})})))}}var Mm=nn|Nn;function Ju(e,t,n,r){new Dm(e,t,n,r)}class Dm{parent;is_pending=!1;transform_error;#e;#t=re?fe: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=jm(()=>(this.#d=gt(this.#u),()=>{this.#d=null}));constructor(t,n,r,s){this.#e=t,this.#n=n,this.#s=a=>{var o=ve;o.b=this,o.f|=Oi,r(a)},this.parent=ve.b,this.transform_error=s??this.parent?.transform_error??(a=>a),this.#r=gn(()=>{if(re){const a=this.#t;ut();const o=a.data===za;if(a.data.startsWith(Gl)){const c=JSON.parse(a.data.slice(Gl.length));this.#b(c)}else o?this.#m():this.#p()}else this.#y()},Mm),re&&(this.#e=fe)}#p(){try{this.#i=it(()=>this.#s(this.#e))}catch(t){this.error(t)}}#b(t){const n=this.#n.failed;n&&(this.#o=it(()=>{n(this.#e,()=>t,()=>()=>{})}))}#m(){const t=this.#n.pending;t&&(this.is_pending=!0,this.#a=it(()=>t(this.#e)),ct(()=>{var n=this.#l=document.createDocumentFragment(),r=$e();n.append(r),this.#i=this.#w(()=>it(()=>this.#s(r))),this.#c===0&&(this.#e.before(n),this.#l=null,Gn(this.#a,()=>{this.#a=null}),this.#_(me))}))}#y(){try{if(this.is_pending=this.has_pending_snippet(),this.#c=0,this.#u=0,this.#i=it(()=>{this.#s(this.#e)}),this.#c>0){var t=this.#l=document.createDocumentFragment();Ho(this.#i,t);const n=this.#n.pending;this.#a=it(()=>n(this.#e))}else this.#_(me)}catch(n){this.error(n)}}#_(t){this.is_pending=!1,t.transfer_effects(this.#h,this.#v)}defer_effect(t){Fu(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=ve,r=ye,s=Ee;st(this.#r),yt(this.#r),jr(this.#r.ctx);try{return Ut.ensure(),t()}catch(a){return Bu(a),null}finally{st(n),yt(r),jr(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&&Gn(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,ct(()=>{this.#f=!1,this.#d&&hn(this.#d,this.#u)}))}get_effect_pending(){return this.#g(),i(this.#d)}error(t){if(!this.#n.onerror&&!this.#n.failed)throw t;me?.is_fork?(this.#i&&me.skip_effect(this.#i),this.#a&&me.skip_effect(this.#a),this.#o&&me.skip_effect(this.#o),me.on_fork_commit(()=>{this.#x(t)})):this.#x(t)}#x(t){this.#i&&(We(this.#i),this.#i=null),this.#a&&(We(this.#a),this.#a=null),this.#o&&(We(this.#o),this.#o=null),re&&(Ie(this.#t),qt(),Ie(nr()));var n=this.#n.onerror;let r=this.#n.failed;var s=!1,a=!1;const o=()=>{if(s){nm();return}s=!0,a&&Wp(),this.#o!==null&&Gn(this.#o,()=>{this.#o=null}),this.#w(()=>{this.#y()})},l=c=>{try{a=!0,n?.(c,o),a=!1}catch(u){fn(u,this.#r&&this.#r.parent)}r&&(this.#o=this.#w(()=>{try{return it(()=>{var u=ve;u.b=this,u.f|=Oi,r(this.#e,()=>c,()=>o)})}catch(u){return fn(u,this.#r.parent),null}}))};ct(()=>{var c;try{c=this.transform_error(t)}catch(u){fn(u,this.#r&&this.#r.parent);return}c!==null&&typeof c=="object"&&typeof c.then=="function"?c.then(l,u=>fn(u,this.#r&&this.#r.parent)):l(c)})}}function Lm(){ve===null&&zp();var e=ve.b;return e===null?0:e.get_effect_pending()}function Ms(e,t,n,r){const s=Ls;var a=e.filter(h=>!h.settled);if(n.length===0&&a.length===0){r(t.map(s));return}var o=ve,l=Ua(),c=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(h=>h.promise)):null;function u(h){l();try{r(h)}catch(b){o.f&mt||fn(b,o)}sr()}if(n.length===0){c.then(()=>u(t.map(s)));return}var d=Ds();function f(){Promise.all(n.map(h=>Qu(h))).then(h=>u([...t.map(s),...h])).catch(h=>fn(h,o)).finally(()=>d())}c?c.then(()=>{l(),f(),sr()}):f()}function Zu(e,t){Ms(e,[],[],t)}function Ua(){var e=ve,t=ye,n=Ee,r=me;return function(a=!0){st(e),yt(t),jr(n),a&&!(e.f&mt)&&(r?.activate(),r?.apply())}}async function zm(e){var t=Ua(),n=await e;return()=>(t(),n)}async function Ui(e){var t=os;queueMicrotask(()=>{os===t&&na(null)});var n=await e;return()=>(na(t),queueMicrotask(()=>{os===t&&na(null)}),n)}async function*Om(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 Ui(t.next()))();if(s){n=!0;break}var r=os;yield a,na(r)}}finally{if(!n&&t.return!==void 0)return(await Ui(t.return()))().value}}function sr(e=!0){st(null),yt(null),jr(null),e&&me?.deactivate()}function Nm(e){const t=Ua(),n=Ds();var r=ve,s=null;const a=u=>{s={error:u},Wi(r)||fn(u,r)};var o=Promise.resolve(e[0]()).catch(a),l={promise:o,settled:!1},c=[l];o.finally(()=>{l.settled=!0,sr()});for(const u of e.slice(1)){o=o.then(()=>{if(t(),s)throw s.error;if(Wi(r))throw ln;return u()}).catch(a);const d={promise:o,settled:!1};c.push(d),o.finally(()=>{d.settled=!0,sr()})}return o.then(()=>Promise.resolve()).finally(()=>n()),c}function qm(e){return Promise.all(e.map(t=>t.promise))}function Ds(){var e=ve,t=e.b,n=me,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 na(e){os=e}function Ls(e){var t=Ze|Je;return ve!==null&&(ve.f|=Nn),{ctx:Ee,deps:null,effects:null,equals:ju,f:t,fn:e,reactions:null,rv:0,v:Pe,wv:0,parent:ve,ac:null}}function Qu(e,t,n){let r=ve;r===null&&Tp();var s=void 0,a=gt(Pe),o=!ye,l=new Map;return $m(()=>{var c=ve,u=xu();s=u.promise;try{Promise.resolve(e()).then(u.resolve,u.reject).finally(sr)}catch(b){u.reject(b),sr()}var d=me;if(o){if(c.f&En)var f=Ds();if(r.b.is_rendered())l.get(d)?.reject(ln),l.delete(d);else{for(const b of l.values())b.reject(ln);l.clear()}l.set(d,u)}const h=(b,S=void 0)=>{if(f){var _=S===ln;f(_)}if(!(S===ln||c.f&mt)){if(d.activate(),S)a.f|=jn,hn(a,S);else{a.f&jn&&(a.f^=jn),hn(a,b);for(const[y,E]of l){if(l.delete(y),y===d)break;E.reject(ln)}}d.deactivate()}};u.promise.then(h,b=>h(null,b||"unknown"))}),Ct(()=>{for(const c of l.values())c.reject(ln)}),new Promise(c=>{function u(d){function f(){d===s?c(a):u(s)}d.then(f,f)}u(s)})}function H(e){const t=Ls(e);return _d(t),t}function zo(e){const t=Ls(e);return t.equals=Du,t}function Bm(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)We(t[n])}}function Oo(e){var t,n=ve,r=e.parent;if(!Sn&&r!==null&&r.f&(mt|lt))return Jp(),e.v;st(r);try{e.f&=~tr,Bm(e),t=xd(e)}finally{st(n)}return t}function $u(e){var t=Oo(e);if(!e.equals(t)&&(e.wv=ba(),(!me?.is_fork||e.deps===null)&&(me!==null?me.capture(e,t,!0):e.v=t,e.deps===null))){De(e,Ue);return}Sn||(ot!==null?(Os()||me?.is_fork)&&ot.set(e,t):Mo(e))}function Vm(e){if(e.effects!==null)for(const t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac?.abort(ln),t.teardown=St,t.ac=null,hs(t,0),Fo(t))}function ed(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&ar(t)}let ma=new Set;const Yn=new Map;function Fm(e){ma=e}let td=!1;function gt(e,t){var n={f:0,v:e,reactions:null,equals:ju,rv:0,wv:0};return n}function F(e,t){const n=gt(e);return _d(n),n}function Ha(e,t=!1,n=!0){const r=gt(e);return t||(r.equals=Du),r}function Um(e,t){return x(e,_e(()=>i(e))),t}function x(e,t,n=!1){ye!==null&&(!Jt||ye.f&vs)&&Nu()&&ye.f&(Ze|Qt|Pr|vs)&&(Bt===null||!Rr.call(Bt,e))&&Kp();let r=n?le(t):t;return hn(e,r,ta)}function hn(e,t,n=null){if(!e.equals(t)){Yn.set(e,Sn?t:e.v);var r=Ut.ensure();if(r.capture(e,t),e.f&Ze){const s=e;e.f&Je&&Oo(s),ot===null&&Mo(s)}e.wv=ba(),rd(e,Je,n),ve!==null&&ve.f&Ue&&!(ve.f&(en|xn))&&(Lt===null?sb([e]):Lt.push(e)),!r.is_fork&&ma.size>0&&!td&&nd()}return t}function nd(){td=!1;for(const e of ma)e.f&Ue&&De(e,tn),Hr(e)&&ar(e);ma.clear()}function Mr(e,t=1){var n=i(e),r=t===1?n++:n--;return x(e,n),r}function Hm(e,t=1){var n=i(e);return x(e,t===1?++n:--n)}function cn(e){x(e,e.v+1)}function rd(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&Je)===0;if(c&&De(o,t),l&Ze){var u=o;ot?.delete(u),l&tr||(l&Nt&&(o.f|=tr),rd(u,tn,n))}else if(c){var d=o;l&Qt&&_n!==null&&_n.add(d),n!==null?n.push(d):Lo(d)}}}function le(e){if(typeof e!="object"||e===null||rt in e)return e;const t=qa(e);if(t!==ku&&t!==mp)return e;var n=new Map,r=Br(e),s=F(0),a=wn,o=l=>{if(wn===a)return l();var c=ye,u=wn;yt(null),rc(a);var d=l();return yt(c),rc(u),d};return r&&n.set("length",F(e.length)),new Proxy(e,{defineProperty(l,c,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&Up();var d=n.get(c);return d===void 0?o(()=>{var f=F(u.value);return n.set(c,f),f}):x(d,u.value,!0),!0},deleteProperty(l,c){var u=n.get(c);if(u===void 0){if(c in l){const d=o(()=>F(Pe));n.set(c,d),cn(s)}}else x(u,Pe),cn(s);return!0},get(l,c,u){if(c===rt)return e;var d=n.get(c),f=c in l;if(d===void 0&&(!f||Zt(l,c)?.writable)&&(d=o(()=>{var b=le(f?l[c]:Pe),S=F(b);return S}),n.set(c,d)),d!==void 0){var h=i(d);return h===Pe?void 0:h}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),h=f?.v;if(f!==void 0&&h!==Pe)return{enumerable:!0,configurable:!0,value:h,writable:!0}}return u},has(l,c){if(c===rt)return!0;var u=n.get(c),d=u!==void 0&&u.v!==Pe||Reflect.has(l,c);if(u!==void 0||ve!==null&&(!d||Zt(l,c)?.writable)){u===void 0&&(u=o(()=>{var h=d?le(l[c]):Pe,b=F(h);return b}),n.set(c,u));var f=i(u);if(f===Pe)return!1}return d},set(l,c,u,d){var f=n.get(c),h=c in l;if(r&&c==="length")for(var b=u;b<f.v;b+=1){var S=n.get(b+"");S!==void 0?x(S,Pe):b in l&&(S=o(()=>F(Pe)),n.set(b+"",S))}if(f===void 0)(!h||Zt(l,c)?.writable)&&(f=o(()=>F(void 0)),x(f,le(u)),n.set(c,f));else{h=f.v!==Pe;var _=o(()=>le(u));x(f,_)}var y=Reflect.getOwnPropertyDescriptor(l,c);if(y?.set&&y.set.call(d,u),!h){if(r&&typeof c=="string"){var E=n.get("length"),g=Number(c);Number.isInteger(g)&&g>=E.v&&x(E,g+1)}cn(s)}return!0},ownKeys(l){i(s);var c=Reflect.ownKeys(l).filter(f=>{var h=n.get(f);return h===void 0||h.v!==Pe});for(var[u,d]of n)d.v!==Pe&&!(u in l)&&c.push(u);return c},setPrototypeOf(){Hp()}})}function Dr(e){try{if(e!==null&&typeof e=="object"&&rt in e)return e[rt]}catch{}return e}function sd(e,t){return Object.is(Dr(e),Dr(t))}function Km(e,t,n=!0){try{e===t!=(Dr(e)===Dr(t))&&Pu(n?"===":"!==")}catch{}return e===t===n}function Wm(e,t,n=!0){return e==t!=(Dr(e)==Dr(t))&&Pu(),e==t===n}var Hi,ad,No,id,od;function Ki(){if(Hi===void 0){Hi=window,ad=document,No=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;id=Zt(t,"firstChild").get,od=Zt(t,"nextSibling").get,Xl(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),Xl(n)&&(n.__t=void 0)}}function $e(e=""){return document.createTextNode(e)}function je(e){return id.call(e)}function It(e){return od.call(e)}function p(e,t){if(!re)return je(e);var n=je(fe);if(n===null)n=fe.appendChild($e());else if(t&&n.nodeType!==Ps){var r=$e();return n?.before(r),Ie(r),r}return t&&Ka(n),Ie(n),n}function he(e,t=!1){if(!re){var n=je(e);return n instanceof Comment&&n.data===""?It(n):n}if(t){if(fe?.nodeType!==Ps){var r=$e();return fe?.before(r),Ie(r),r}Ka(fe)}return fe}function w(e,t=1,n=!1){let r=re?fe:e;for(var s;t--;)s=r,r=It(r);if(!re)return r;if(n){if(r?.nodeType!==Ps){var a=$e();return r===null?s?.after(a):r.before(a),Ie(a),a}Ka(r)}return Ie(r),r}function qo(e){e.textContent=""}function ld(){return!1}function qn(e,t,n){let r=n?{is:n}:void 0;return document.createElementNS(t??gu,e,r)}function Ym(){return document.createDocumentFragment()}function cd(e=""){return document.createComment(e)}function Gm(e,t,n=""){if(t.startsWith("xlink:")){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n);return}return e.setAttribute(t,n)}function Ka(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===Ps;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function Fr(e,t){if(t){const n=document.body;e.autofocus=!0,ct(()=>{document.activeElement===n&&e.focus()})}}function Bo(e){re&&je(e)!==null&&qo(e)}let tc=!1;function ud(){tc||(tc=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(const t of e.target.elements)t.__on_r?.()})},{capture:!0}))}function _t(e,t,n,r=!0){r&&n();for(var s of t)e.addEventListener(s,n);Ct(()=>{for(var a of t)e.removeEventListener(a,n)})}function Bn(e){var t=ye,n=ve;yt(null),st(null);try{return e()}finally{yt(t),st(n)}}function zs(e,t,n,r=n){e.addEventListener(t,()=>Bn(n));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),ud()}function Vo(e){ve===null&&(ye===null&&Lp(),Dp()),Sn&&Mp()}function Xm(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function wt(e,t){var n=ve;n!==null&&n.f&lt&&(e|=lt);var r={ctx:Ee,deps:null,nodes:null,f:e|Je|Nt,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};me?.register_created_effect(r);var s=r;if(e&er)_r!==null?_r.push(r):Ut.ensure().schedule(r);else if(t!==null){try{ar(r)}catch(o){throw We(r),o}s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&!(s.f&Nn)&&(s=s.first,e&Qt&&e&nn&&s!==null&&(s.f|=nn))}if(s!==null&&(s.parent=n,n!==null&&Xm(s,n),ye!==null&&ye.f&Ze&&!(e&xn))){var a=ye;(a.effects??=[]).push(s)}return r}function Os(){return ye!==null&&!Jt}function Ct(e){const t=wt(Rs,null);return De(t,Ue),t.teardown=e,t}function xe(e){Vo();var t=ve.f,n=!ye&&(t&en)!==0&&(t&En)===0;if(n){var r=Ee;(r.e??=[]).push(e)}else return dd(e)}function dd(e){return wt(er|Iu,e)}function fd(e){return Vo(),wt(Rs|Iu,e)}function vd(e){return wt(vs,e)}function Ur(e){Ut.ensure();const t=wt(xn|Nn,e);return()=>{We(t)}}function Jm(e){Ut.ensure();const t=wt(xn|Nn,e);return(n={})=>new Promise(r=>{n.outro?Gn(t,()=>{We(t),r(void 0)}):(We(t),r(void 0))})}function At(e){return wt(er,e)}function Zm(e,t){var n=Ee,r={effect:null,ran:!1,deps:e};n.l.$.push(r),r.effect=Ve(()=>{if(e(),!r.ran){r.ran=!0;var s=ve;try{st(s.parent),_e(t)}finally{st(s)}}})}function Qm(){var e=Ee;Ve(()=>{for(var t of e.l.$){t.deps();var n=t.effect;n.f&Ue&&n.deps!==null&&De(n,tn),Hr(n)&&ar(n),t.ran=!1}})}function $m(e){return wt(Pr|Nn,e)}function Ve(e,t=0){return wt(Rs|t,e)}function N(e,t=[],n=[],r=[]){Ms(r,t,n,s=>{wt(Rs,()=>e(...s.map(i)))})}function eb(e,t=[],n=[],r=[]){if(n.length>0||r.length>0)var s=Ds();Ms(r,t,n,a=>{wt(er,()=>e(...a.map(i))),s&&s()})}function gn(e,t=0){var n=wt(Qt|t,e);return n}function hd(e,t=0){var n=wt(Co|t,e);return n}function it(e){return wt(en|Nn,e)}function pd(e){var t=e.teardown;if(t!==null){const n=Sn,r=ye;nc(!0),yt(null);try{t.call(null)}finally{nc(n),yt(r)}}}function Fo(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){const s=n.ac;s!==null&&Bn(()=>{s.abort(ln)});var r=n.next;n.f&xn?n.parent=null:We(n,t),n=r}}function tb(e){for(var t=e.first;t!==null;){var n=t.next;t.f&en||We(t),t=n}}function We(e,t=!0){var n=!1;(t||e.f&Eu)&&e.nodes!==null&&e.nodes.end!==null&&(md(e.nodes.start,e.nodes.end),n=!0),De(e,Ni),Fo(e,t&&!n),hs(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(const a of r)a.stop();pd(e),e.f^=Ni,e.f|=mt;var s=e.parent;s!==null&&s.first!==null&&bd(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function md(e,t){for(;e!==null;){var n=e===t?null:It(e);e.remove(),e=n}}function bd(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 Gn(e,t,n=!0){var r=[];gd(e,r,!0);var s=()=>{n&&We(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||s();for(var l of r)l.out(o)}else s()}function gd(e,t,n){if(!(e.f&lt)){e.f^=lt;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&xn)){var o=(s.f&nn)!==0||(s.f&en)!==0&&(e.f&Qt)!==0;gd(s,t,o?n:!1)}s=a}}}function Uo(e){yd(e,!0)}function yd(e,t){if(e.f&lt){e.f^=lt,e.f&Ue||(De(e,Je),Ut.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,s=(n.f&nn)!==0||(n.f&en)!==0;yd(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 Wi(e=ve){return(e.f&mt)!==0}function Ho(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var s=n===r?null:It(n);t.append(n),n=s}}let br=null;function nb(e){var t=br;try{if(br=new Set,_e(e),t!==null)for(var n of br)t.add(n);return br}finally{br=t}}function rb(e){for(var t of nb(e))hn(t,t.v)}let ra=!1,Sn=!1;function nc(e){Sn=e}let ye=null,Jt=!1;function yt(e){ye=e}let ve=null;function st(e){ve=e}let Bt=null;function _d(e){ye!==null&&(Bt===null?Bt=[e]:Bt.push(e))}let vt=null,kt=0,Lt=null;function sb(e){Lt=e}let wd=1,Hn=0,wn=Hn;function rc(e){wn=e}function ba(){return++wd}function Hr(e){var t=e.f;if(t&Je)return!0;if(t&Ze&&(e.f&=~tr),t&tn){for(var n=e.deps,r=n.length,s=0;s<r;s++){var a=n[s];if(Hr(a)&&$u(a),a.wv>e.wv)return!0}t&Nt&&ot===null&&De(e,Ue)}return!1}function kd(e,t,n=!0){var r=e.reactions;if(r!==null&&!(Bt!==null&&Rr.call(Bt,e)))for(var s=0;s<r.length;s++){var a=r[s];a.f&Ze?kd(a,t,!1):t===a&&(n?De(a,Je):a.f&Ue&&De(a,tn),Lo(a))}}function xd(e){var t=vt,n=kt,r=Lt,s=ye,a=Bt,o=Ee,l=Jt,c=wn,u=e.f;vt=null,kt=0,Lt=null,ye=u&(en|xn)?null:e,Bt=null,jr(e.ctx),Jt=!1,wn=++Hn,e.ac!==null&&(Bn(()=>{e.ac.abort(ln)}),e.ac=null);try{e.f|=qi;var d=e.fn,f=d();e.f|=En;var h=e.deps,b=me?.is_fork;if(vt!==null){var S;if(b||hs(e,kt),h!==null&&kt>0)for(h.length=kt+vt.length,S=0;S<vt.length;S++)h[kt+S]=vt[S];else e.deps=h=vt;if(Os()&&e.f&Nt)for(S=kt;S<h.length;S++)(h[S].reactions??=[]).push(e)}else!b&&h!==null&&kt<h.length&&(hs(e,kt),h.length=kt);if(Nu()&&Lt!==null&&!Jt&&h!==null&&!(e.f&(Ze|tn|Je)))for(S=0;S<Lt.length;S++)kd(Lt[S],e);if(s!==null&&s!==e){if(Hn++,s.deps!==null)for(let _=0;_<n;_+=1)s.deps[_].rv=Hn;if(t!==null)for(const _ of t)_.rv=Hn;Lt!==null&&(r===null?r=Lt:r.push(...Lt))}return e.f&jn&&(e.f^=jn),f}catch(_){return Bu(_)}finally{e.f^=qi,vt=t,kt=n,Lt=r,ye=s,Bt=a,jr(o),Jt=l,wn=c}}function ab(e,t){let n=t.reactions;if(n!==null){var r=pp.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&Ze&&(vt===null||!Rr.call(vt,t))){var a=t;a.f&Nt&&(a.f^=Nt,a.f&=~tr),a.v!==Pe&&Mo(a),Vm(a),hs(a,0)}}function hs(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)ab(e,n[r])}function ar(e){var t=e.f;if(!(t&mt)){De(e,Ue);var n=ve,r=ra;ve=e,ra=!0;try{t&(Qt|Co)?tb(e):Fo(e),pd(e);var s=xd(e);e.teardown=typeof s=="function"?s:null,e.wv=wd;var a;_u&&sm&&e.f&Je&&e.deps}finally{ra=r,ve=n}}}async function Ns(){await Promise.resolve(),Dn()}function ib(){return Ut.ensure().settled()}function i(e){var t=e.f,n=(t&Ze)!==0;if(br?.add(e),ye!==null&&!Jt){var r=ve!==null&&(ve.f&mt)!==0;if(!r&&(Bt===null||!Rr.call(Bt,e))){var s=ye.deps;if(ye.f&qi)e.rv<Hn&&(e.rv=Hn,vt===null&&s!==null&&s[kt]===e?kt++:vt===null?vt=[e]:vt.push(e));else{(ye.deps??=[]).push(e);var a=e.reactions;a===null?e.reactions=[ye]:Rr.call(a,ye)||a.push(ye)}}}if(Sn&&Yn.has(e))return Yn.get(e);if(n){var o=e;if(Sn){var l=o.v;return(!(o.f&Ue)&&o.reactions!==null||Ed(o))&&(l=Oo(o)),Yn.set(o,l),l}var c=(o.f&Nt)===0&&!Jt&&ye!==null&&(ra||(ye.f&Nt)!==0),u=(o.f&En)===0;Hr(o)&&(c&&(o.f|=Nt),$u(o)),c&&!u&&(ed(o),Sd(o))}if(ot?.has(e))return ot.get(e);if(e.f&jn)throw e.v;return e.v}function Sd(e){if(e.f|=Nt,e.deps!==null)for(const t of e.deps)(t.reactions??=[]).push(e),t.f&Ze&&!(t.f&Nt)&&(ed(t),Sd(t))}function Ed(e){if(e.v===Pe)return!0;if(e.deps===null)return!1;for(const t of e.deps)if(Yn.has(t)||t.f&Ze&&Ed(t))return!0;return!1}function ob(e){return e&&i(e)}function _e(e){var t=Jt;try{return Jt=!0,e()}finally{Jt=t}}function Ko(e){if(!(typeof e!="object"||!e||e instanceof EventTarget)){if(rt in e)ga(e);else if(!Array.isArray(e))for(let t in e){const n=e[t];typeof n=="object"&&n&&rt in n&&ga(n)}}}function ga(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{ga(e[r],t)}catch{}const n=qa(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){const r=wu(n);for(let s in r){const a=r[s].get;if(a)try{a.call(e)}catch{}}}}}function lb(e,t){if(Tu(),re){const n=window.__svelte?.h;if(n?.has(e))return n.get(e);Qp()}return t()}const ss=Symbol("events"),Id=new Set,Yi=new Set;function cb(e){if(!re)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 Ad(e,t,n,r={}){function s(a){if(r.capture||Gi.call(t,a),!a.cancelBubble)return Bn(()=>n?.call(this,a))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?ct(()=>{t.addEventListener(e,s,r)}):t.addEventListener(e,s,r),s}function Re(e,t,n,r,s){var a={capture:r,passive:s},o=Ad(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&Ct(()=>{t.removeEventListener(e,o,a)})}function U(e,t,n){(t[ss]??={})[e]=n}function ce(e){for(var t=0;t<e.length;t++)Id.add(e[t]);for(var n of Yi)n(e)}let sc=null;function Gi(e){var t=this,n=t.ownerDocument,r=e.type,s=e.composedPath?.()||[],a=s[0]||e.target;sc=e;var o=0,l=sc===e&&e[ss];if(l){var c=s.indexOf(l);if(c!==-1&&(t===document||t===window)){e[ss]=t;return}var u=s.indexOf(t);if(u===-1)return;c<=u&&(o=c)}if(a=s[o]||e.target,a!==t){$n(e,"currentTarget",{configurable:!0,get(){return a||n}});var d=ye,f=ve;yt(null),st(null);try{for(var h,b=[];a!==null;){var S=a.assignedSlot||a.parentNode||a.host||null;try{var _=a[ss]?.[r];_!=null&&(!a.disabled||e.target===a)&&_.call(a,e)}catch(y){h?b.push(y):h=y}if(e.cancelBubble||S===t||S===null)break;a=S}if(h){for(let y of b)queueMicrotask(()=>{throw y});throw h}}finally{e[ss]=t,delete e.currentTarget,yt(d),st(f)}}}function ub(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?.[xt];s?`${u}${s[0]}${s[1]}`:`${u}`;const d=n[0]?.eventPhase<Event.BUBBLING_PHASE?"capture":"";if(n[0]?.type+d,Zp(),c)throw c}l?.apply(t,n)}const db=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function Cd(e){return db?.createHTML(e)??e}function Wo(e){var t=qn("template");return t.innerHTML=Cd(e.replaceAll("<!>","<!---->")),t.content}const fb=ur?"template":"TEMPLATE",vb=ur?"script":"SCRIPT";function Ye(e,t){var n=ve;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function A(e,t){var n=(t&Io)!==0,r=(t&bu)!==0,s,a=!e.startsWith("<!>");return()=>{if(re)return Ye(fe,null),fe;s===void 0&&(s=Wo(a?e:"<!>"+e),n||(s=je(s)));var o=r||No?document.importNode(s,!0):s.cloneNode(!0);if(n){var l=je(o),c=o.lastChild;Ye(l,c)}else Ye(o,o);return o}}function Td(e,t,n="svg"){var r=!e.startsWith("<!>"),s=(t&Io)!==0,a=`<${n}>${r?e:"<!>"+e}</${n}>`,o;return()=>{if(re)return Ye(fe,null),fe;if(!o){var l=Wo(a),c=je(l);if(s)for(o=document.createDocumentFragment();je(c);)o.appendChild(je(c));else o=je(c)}var u=o.cloneNode(!0);if(s){var d=je(u),f=u.lastChild;Ye(d,f)}else Ye(u,u);return u}}function Yo(e,t){return Td(e,t,"svg")}function hb(e,t){return Td(e,t,"math")}function Rd(e,t){var n=Ym();for(var r of e){if(typeof r=="string"){n.append($e(r));continue}if(r===void 0||r[0][0]==="/"){n.append(cd(r?r[0].slice(3):""));continue}const[l,c,...u]=r,d=l==="svg"?Ts:l==="math"?Ao:t;var s=qn(l,d,c?.is);for(var a in c)Gm(s,a,c[a]);if(u.length>0){var o=s.nodeName===fb?s.content:s;o.append(Rd(u,s.nodeName==="foreignObject"?void 0:d))}n.append(s)}return n}function pb(e,t){var n=(t&Io)!==0,r=(t&bu)!==0,s;return()=>{if(re)return Ye(fe,null),fe;if(s===void 0){const c=t&vp?Ts:t&hp?Ao:void 0;s=Rd(e,c),n||(s=je(s))}var a=r||No?document.importNode(s,!0):s.cloneNode(!0);if(n){var o=je(a),l=a.lastChild;Ye(o,l)}else Ye(a,a);return a}}function mb(e){return()=>bb(e())}function bb(e){if(re)return e;const t=e.nodeType===Cu,n=e.nodeName===vb?[e]:e.querySelectorAll("script"),r=ve;for(const a of n){const o=qn("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 $t(e=""){if(!re){var t=$e(e+"");return Ye(t,t),t}var n=fe;return n.nodeType!==Ps?(n.before(n=$e()),Ie(n)):Ka(n),Ye(n,n),n}function Be(){if(re)return Ye(fe,null),fe;var e=document.createDocumentFragment(),t=document.createComment(""),n=$e();return e.append(t,n),Ye(t,n),e}function k(e,t){if(re){var n=ve;(!(n.f&En)||n.nodes.end===null)&&(n.nodes.end=fe),ut();return}e!==null&&e.before(t)}function gb(){if(re&&fe&&fe.nodeType===In&&fe.textContent?.startsWith("$")){const e=fe.textContent.substring(1);return ut(),e}return(window.__svelte??={}).uid??=1,`c${window.__svelte.uid++}`}const yb=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function _b(e){return yb.includes(e)||e.toLowerCase()==="!doctype"}function wb(e){return e.endsWith("capture")&&e!=="gotpointercapture"&&e!=="lostpointercapture"}const kb=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function xb(e){return kb.includes(e)}const Sb={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 Eb(e){return e=e.toLowerCase(),Sb[e]??e}const Ib=["touchstart","touchmove"];function Ab(e){return Ib.includes(e)}const Cb=["textarea","script","style","title"];function Tb(e){return Cb.includes(e)}function Pd(e){return e?.replace(/\//g,"/​")}let ya=!0;function wr(e){ya=e}function z(e,t){var n=t==null?"":typeof t=="object"?`${t}`:t;n!==(e.__t??=e.nodeValue)&&(e.__t=n,e.nodeValue=`${n}`)}function qe(e,t){return Md(e,t)}function jd(e,t){Ki(),t.intro=t.intro??!1;const n=t.target,r=re,s=fe;try{for(var a=je(n);a&&(a.nodeType!==In||a.data!==La);)a=It(a);if(!a)throw Qn;Te(!0),Ie(a);const o=Md(e,{...t,anchor:a});return Te(!1),o}catch(o){if(o instanceof Error&&o.message.split(`
6
+ `).some(l=>l.startsWith("https://svelte.dev/e/")))throw o;return o!==Qn&&console.warn("Failed to hydrate: ",o),t.recover===!1&&Vp(),Ki(),qo(n),Te(!1),qe(e,t)}finally{Te(r),Ie(s)}}const Zs=new Map;function Md(e,{target:t,anchor:n,props:r={},events:s,context:a,intro:o=!0,transformError:l}){Ki();var c=void 0,u=Jm(()=>{var d=n??t.appendChild($e());Ju(d,{pending:()=>{}},b=>{ie({});var S=Ee;if(a&&(S.c=a),s&&(r.$$events=s),re&&Ye(b,null),ya=o,c=e(b,r)||{},ya=!0,re&&(ve.nodes.end=fe,fe===null||fe.nodeType!==In||fe.data!==Oa))throw js(),Qn;oe()},l);var f=new Set,h=b=>{for(var S=0;S<b.length;S++){var _=b[S];if(!f.has(_)){f.add(_);var y=Ab(_);for(const m of[t,document]){var E=Zs.get(m);E===void 0&&(E=new Map,Zs.set(m,E));var g=E.get(_);g===void 0?(m.addEventListener(_,Gi,{passive:y}),E.set(_,1)):E.set(_,g+1)}}}};return h(Na(Id)),Yi.add(h),()=>{for(var b of f)for(const y of[t,document]){var S=Zs.get(y),_=S.get(b);--_==0?(y.removeEventListener(b,Gi),S.delete(b),S.size===0&&Zs.delete(y)):S.set(b,_)}Yi.delete(h),d!==n&&d.parentNode?.removeChild(d)}});return Xi.set(c,u),c}let Xi=new WeakMap;function Xe(e,t){const n=Xi.get(e);return n?(Xi.delete(e),n(t)):Promise.resolve()}function Rb(e){const t=e();t&&_b(t)&&am()}function Pb(e){const t=e();t&&!(typeof t=="string")&&Cp()}function jb(e,t){e!=null&&typeof e.subscribe!="function"&&Ap()}function Dd(e){return e.toString=()=>(Ip(),""),e}class Kr{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)Uo(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&&(We(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();Ho(o,u),u.append($e()),this.#n.set(a,{effect:o,fragment:u})}else We(o);this.#s.delete(a),this.#t.delete(a)};this.#r||!r?(this.#s.add(a),Gn(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)||(We(s.effect),this.#n.delete(r))};ensure(t,n){var r=me,s=ld();if(n&&!this.#t.has(t)&&!this.#n.has(t))if(s){var a=document.createDocumentFragment(),o=$e();a.append(o),this.#n.set(t,{effect:it(()=>n(o)),fragment:a})}else this.#t.set(t,it(()=>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 re&&(this.anchor=fe),this.#i(r)}}function Ht(e,t,...n){var r=new Kr(e);gn(()=>{const s=t()??null;r.ensure(s,s&&(a=>s(a,...n)))},nn)}function Mb(e,t){const n=(r,...s)=>{var a=Ro;Ql(e);try{return t(r,...s)}finally{Ql(a)}};return Dd(n),n}function Db(e){return(t,...n)=>{var r=e(...n),s;if(re)s=fe,ut();else{var a=r.render().trim(),o=Wo(a);s=je(o),t.before(s)}const l=r.setup?.(s);Ye(s,s),typeof l=="function"&&Ct(l)}}function Lb(){return ye===null&&Bp(),(ye.ac??=new AbortController).signal}function Go(e){Ee===null&&Vr(),xe(()=>{const t=_e(e);if(typeof t=="function")return t})}function Xo(e){Ee===null&&Vr(),Go(()=>()=>_e(e))}function zb(e,t,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(e,{detail:t,bubbles:n,cancelable:r})}function Ob(){const e=Ee;return e===null&&Vr(),(t,n,r)=>{const s=e.s.$$events?.[t];if(s){const a=Br(s)?s.slice():[s],o=zb(t,n,r);for(const l of a)l.call(e.x,o);return!o.defaultPrevented}return!0}}function Nb(e){Ee===null&&Vr(),Ee.l===null&&Ru(),Ld(Ee).b.push(e)}function qb(e){Ee===null&&Vr(),Ee.l===null&&Ru(),Ld(Ee).a.push(e)}function Ld(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}const zd=Object.freeze(Object.defineProperty({__proto__:null,afterUpdate:qb,beforeUpdate:Nb,createContext:vm,createEventDispatcher:Ob,createRawSnippet:Db,flushSync:Dn,fork:Pm,getAbortSignal:Lb,getAllContexts:hm,getContext:Po,hasContext:Ou,hydratable:lb,hydrate:jd,mount:qe,onDestroy:Xo,onMount:Go,setContext:jo,settled:ib,tick:Ns,unmount:Xe,untrack:_e},Symbol.toStringTag,{value:"Module"}));function Bb(){return Symbol(yu)}function Od(e,t,n,r){return e!==t&&typeof t=="object"&&rt in t&&Yp(n,Pd(r)),e}function Vb(e,t,n,r,s){return Od(n==="="?e[t]=r:n==="&&="?e[t]&&=r():n==="||="?e[t]||=r():n==="??="?e[t]??=r():null,_e(()=>e[t]),t,s)}async function Fb(e,t,n,r,s){return Od(n==="="?e[t]=await r:n==="&&="?e[t]&&=await r():n==="||="?e[t]||=await r():n==="??="?e[t]??=await r():null,_e(()=>e[t]),t,s)}var ac=new Map;function Ub(e){var t=ac.get(e);if(t){for(const n of t)n.remove();ac.delete(e)}}function Hb(e,t,n){return(...r)=>{const s=e(...r);var a=re?s:s.nodeType===Cu?s.firstChild:s;return Nd(a,t,n),s}}function Kb(e,t,n){e.__svelte_meta={parent:ea,loc:{file:t,line:n[0],column:n[1]}},n[2]&&Nd(e.firstChild,t,n[2])}function Nd(e,t,n){for(var r=0,s=0;e&&r<n.length;){if(re&&e.nodeType===In){var a=e;a.data[0]===La?s+=1:a.data[0]===Oa&&(s-=1)}s===0&&e.nodeType===Au&&Kb(e,t,n[r++]),e=e.nextSibling}}function Wb(e){const t=gt(e);function n(r,s){let a={},o={},l,c=!1,u=r;return gn(()=>{if(a!==(a=i(t))){if(l){for(var d in o)delete o[d];We(l)}l=it(()=>{u=u[xp]??u,c&&wr(!1);var f=new.target?new a(u,s):a(u,s);f&&Object.defineProperties(o,Object.getOwnPropertyDescriptors(f)),c&&wr(!0)}),ve.nodes=l.nodes}},nn),c=!0,re&&(u=fe),o}return n[xt]=e[xt],n[pr]={fn:e,current:t,update:r=>{x(n[pr].current,r[pr].fn),r[pr].current=n[pr].current}},n}function Yb(e){const t=Ee?.function,n=Ee?.p?.function;return{mutation:(r,s,a,o,l)=>{const c=s[0];if(ic(e,c)||!n)return a;let u=e;for(let f=0;f<s.length-1;f++)if(u=u[s[f]],!u?.[rt])return a;const d=Pd(`${t[xt]}:${o}:${l}`);return em(c,d,r,n[xt]),a},binding:(r,s,a)=>{!ic(e,r)&&n&&a()?.[rt]&&$p(t[xt],r,s[xt],n[xt])}}}function ic(e,t){const n=rt in e||Ba in e;return!!Zt(e,t)?.set||n&&t in e||!(t in e)}function Gb(e){e&&Pp(e[xt]??"a component",e.name)}function Xb(){const e=Ee?.function;function t(n){Rp(n,e[xt])}return{$destroy:()=>t("$destroy()"),$on:()=>t("$on(...)"),$set:()=>t("$set(...)")}}function Jb(e,t,n=!1){Vo();let r=!0,s=Pe;vd(()=>{try{var a=e()}catch(l){s=l;return}var o=rr(a,!0,!0);_e(()=>{if(n){if(t(...o),!r){const l=um("$inspect(...)");l&&(console.groupCollapsed("stack trace"),console.log(l),console.groupEnd())}}else t(r?"init":"update",...o)}),r=!1}),Ve(()=>{try{e()}catch{}s!==Pe&&(console.error(s),s=Pe)})}function Zb(e,t=[],n=[],r){var s=re,a=null;if(s&&(ut(),a=nr(!1)),n.length===0&&t.every(c=>c.settled)){r(e),s&&Ie(a);return}const o=Ds();if(s){var l=fe;Ie(a)}Ms(t,[],n,c=>{s&&(Te(!0),Ie(l));try{for(const u of c)i(u);r(e,...c)}finally{s&&Te(!1),o()}})}function Qb(e,...t){(typeof e!="object"||!(e instanceof Node))&&Zl();for(let n of t)typeof n!="function"&&Zl()}const oc=0,lc=1,$b=2;function eg(e,t,n,r,s){re&&ut();var a=Pe,o=gt(a),l=gt(a),c=new Kr(e);gn(()=>{var u=me;u.deactivate();var d=t();u.activate();var f=!1;let h=re&&Jl(d)===(e.data===za);if(h&&(Ie(nr()),Te(!1)),Jl(d)){var b=Ua(),S=!1;const _=y=>{if(!f){S=!0,b(!1),Ut.ensure(),re&&Te(!1);try{y()}finally{sr(!1),Sr||Dn()}}};d.then(y=>{_(()=>{hn(o,y),c.ensure(lc,r&&(E=>r(E,o)))})},y=>{_(()=>{if(hn(l,y),c.ensure($b,s&&(E=>s(E,l))),!s)throw l.v})}),re?c.ensure(oc,n):ct(()=>{S||_(()=>{c.ensure(oc,n)})})}else hn(o,d),c.ensure(lc,r&&(_=>r(_,o)));return h&&Te(!0),()=>{f=!0}})}function K(e,t,n=!1){var r;re&&(r=fe,ut());var s=new Kr(e),a=n?nn:0;function o(l,c){if(re){var u=To(r);if(l!==parseInt(u.substring(1))){var d=nr();Ie(d),s.anchor=d,Te(!1),s.ensure(l,c),Te(!0);return}}s.ensure(l,c)}gn(()=>{var l=!1;t((c,u=0)=>{l=!0,o(u,c)}),l||o(-1,null)},a)}const tg=Symbol("NaN");function ng(e,t,n){re&&ut();var r=new Kr(e);gn(()=>{var s=t();s!==s&&(s=tg),r.ensure(s,n)})}function rg(e,t){re&&Ie(je(e)),Ve(()=>{var n=t();for(var r in n){var s=n[r];s?e.style.setProperty(r,s):e.style.removeProperty(r)}})}function dt(e,t){return t}function sg(e,t,n){for(var r=[],s=t.length,a,o=t.length,l=0;l<s;l++){let f=t[l];Gn(f,()=>{if(a){if(a.pending.delete(f),a.done.add(f),a.pending.size===0){var h=e.outrogroups;Ji(e,Na(a.done)),h.delete(a),h.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;qo(d),d.append(u),e.items.clear()}Ji(e,t,!c)}else a={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(a)}function Ji(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|=dn;const o=document.createDocumentFragment();Ho(a,o)}else We(t[s],n)}}var cc;function pe(e,t,n,r,s,a=null){var o=e,l=new Map,c=(t&pu)!==0;if(c){var u=e;o=re?Ie(je(u)):u.appendChild($e())}re&&ut();var d=null,f=zo(()=>{var m=n();return Br(m)?m:m==null?[]:Na(m)}),h,b=new Map,S=!0;function _(m){g.effect.f&mt||(g.pending.delete(m),g.fallback=d,ag(g,h,o,t,r),d!==null&&(h.length===0?d.f&dn?(d.f^=dn,as(d,null,o)):Uo(d):Gn(d,()=>{d=null})))}function y(m){g.pending.delete(m)}var E=gn(()=>{h=i(f);var m=h.length;let I=!1;if(re){var P=To(o)===za;P!==(m===0)&&(o=nr(),Ie(o),Te(!1),I=!0)}for(var T=new Set,M=me,L=ld(),j=0;j<m;j+=1){re&&fe.nodeType===In&&fe.data===Oa&&(o=fe,I=!0,Te(!1));var D=h[j],C=r(D,j),O=S?null:l.get(C);O?(O.v&&hn(O.v,D),O.i&&hn(O.i,j),L&&M.unskip_effect(O.e)):(O=ig(l,S?o:cc??=$e(),D,C,j,s,t,n),S||(O.e.f|=dn),l.set(C,O)),T.add(C)}if(m===0&&a&&!d&&(S?d=it(()=>a(o)):(d=it(()=>a(cc??=$e())),d.f|=dn)),m>T.size&&jp(),re&&m>0&&Ie(nr()),!S)if(b.set(M,T),L){for(const[q,R]of l)T.has(q)||M.skip_effect(R.e);M.oncommit(_),M.ondiscard(y)}else _(M);I&&Te(!0),i(f)}),g={effect:E,items:l,pending:b,outrogroups:null,fallback:d};S=!1,re&&(o=fe)}function es(e){for(;e!==null&&!(e.f&en);)e=e.next;return e}function ag(e,t,n,r,s){var a=(r&ap)!==0,o=t.length,l=e.items,c=es(e.effect.first),u,d=null,f,h=[],b=[],S,_,y,E;if(a)for(E=0;E<o;E+=1)S=t[E],_=s(S,E),y=l.get(_).e,y.f&dn||(y.nodes?.a?.measure(),(f??=new Set).add(y));for(E=0;E<o;E+=1){if(S=t[E],_=s(S,E),y=l.get(_).e,e.outrogroups!==null)for(const D of e.outrogroups)D.pending.delete(y),D.done.delete(y);if(y.f&lt&&(Uo(y),a&&(y.nodes?.a?.unfix(),(f??=new Set).delete(y))),y.f&dn)if(y.f^=dn,y===c)as(y,null,n);else{var g=d?d.next:c;y===e.effect.last&&(e.effect.last=y.prev),y.prev&&(y.prev.next=y.next),y.next&&(y.next.prev=y.prev),Tn(e,d,y),Tn(e,y,g),as(y,g,n),d=y,h=[],b=[],c=es(d.next);continue}if(y!==c){if(u!==void 0&&u.has(y)){if(h.length<b.length){var m=b[0],I;d=m.prev;var P=h[0],T=h[h.length-1];for(I=0;I<h.length;I+=1)as(h[I],m,n);for(I=0;I<b.length;I+=1)u.delete(b[I]);Tn(e,P.prev,T.next),Tn(e,d,P),Tn(e,T,m),c=m,d=T,E-=1,h=[],b=[]}else u.delete(y),as(y,c,n),Tn(e,y.prev,y.next),Tn(e,y,d===null?e.effect.first:d.next),Tn(e,d,y),d=y;continue}for(h=[],b=[];c!==null&&c!==y;)(u??=new Set).add(c),b.push(c),c=es(c.next);if(c===null)continue}y.f&dn||h.push(y),d=y,c=es(y.next)}if(e.outrogroups!==null){for(const D of e.outrogroups)D.pending.size===0&&(Ji(e,Na(D.done)),e.outrogroups?.delete(D));e.outrogroups.size===0&&(e.outrogroups=null)}if(c!==null||u!==void 0){var M=[];if(u!==void 0)for(y of u)y.f&lt||M.push(y);for(;c!==null;)!(c.f&lt)&&c!==e.fallback&&M.push(c),c=es(c.next);var L=M.length;if(L>0){var j=r&pu&&o===0?n:null;if(a){for(E=0;E<L;E+=1)M[E].nodes?.a?.measure();for(E=0;E<L;E+=1)M[E].nodes?.a?.fix()}sg(e,M,j)}}a&&ct(()=>{if(f!==void 0)for(y of f)y.nodes?.a?.apply()})}function ig(e,t,n,r,s,a,o,l){var c=o&rp?o&ip?gt(n):Ha(n,!1,!1):null,u=o&sp?gt(s):null;return{v:c,i:u,e:it(()=>(a(t,c??n,u??s,l),()=>{e.delete(r)}))}}function as(e,t,n){if(e.nodes)for(var r=e.nodes.start,s=e.nodes.end,a=t&&!(t.f&dn)?t.nodes.start:n;r!==null;){var o=It(r);if(a.before(r),r===s)return;r=o}}function Tn(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function og(e,t,n=!1,r=!1,s=!1,a=!1){var o=e,l="";if(n){var c=e;re&&(o=Ie(je(c)))}N(()=>{var u=ve;if(l===(l=t()??"")){re&&ut();return}if(n&&!re){u.nodes=null,c.innerHTML=l,l!==""&&Ye(je(c),c.lastChild);return}if(u.nodes!==null&&(md(u.nodes.start,u.nodes.end),u.nodes=null),l!==""){if(re){fe.data;for(var d=ut(),f=d;d!==null&&(d.nodeType!==In||d.data!=="");)f=d,d=It(d);if(d===null)throw js(),Qn;Ye(fe,f),o=Ie(d);return}var h=r?Ts:s?Ao:void 0,b=qn(r?"svg":s?"math":"template",h);b.innerHTML=l;var S=r||s?b:b.content;if(Ye(je(S),S.lastChild),r||s)for(;je(S);)o.before(je(S));else o.before(S)}})}function lg(e,t,n,r,s){re&&ut();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 cg(e){const t={};e.children&&(t.default=!0);for(const n in e.$$slots)t[n]=!0;return t}function qs(e,t,n){var r;re&&(r=fe,ut());var s=new Kr(e);gn(()=>{var a=t()??null;if(re){var o=To(r),l=o===La,c=a!==null;if(l!==c){var u=nr();Ie(u),s.anchor=u,Te(!1),s.ensure(a,a&&(d=>n(d,a))),Te(!0);return}}s.ensure(a,a&&(d=>n(d,a)))},nn)}const ug=()=>performance.now(),un={tick:e=>requestAnimationFrame(e),now:()=>ug(),tasks:new Set};function qd(){const e=un.now();un.tasks.forEach(t=>{t.c(e)||(un.tasks.delete(t),t.f())}),un.tasks.size!==0&&un.tick(qd)}function dg(e){let t;return un.tasks.size===0&&un.tick(qd),{promise:new Promise(n=>{un.tasks.add(t={c:e,f:n})}),abort(){un.tasks.delete(t)}}}function _a(e,t){Bn(()=>{e.dispatchEvent(new CustomEvent(t))})}function fg(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 uc(e){const t={},n=e.split(";");for(const r of n){const[s,a]=r.split(":");if(!s||a===void 0)break;const o=fg(s.trim());t[o]=a.trim()}return t}const vg=e=>e;let Bd=null;function dc(e){Bd=e}function hg(e,t,n){var r=Bd??ve,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=wa(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 h=e.style;c={position:h.position,width:h.width,height:h.height,transform:h.transform},h.position="absolute",h.width=d,h.height=f;var b=e.getBoundingClientRect();if(a.left!==b.left||a.top!==b.top){var S=`translate(${a.left-b.left}px, ${a.top-b.top}px)`;h.transform=h.transform?`${h.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 pg(e,t,n,r){var s=(e&up)!==0,a=(e&dp)!==0,o=s&&a,l=(e&fp)!==0,c=o?"both":s?"in":"out",u,d=t.inert,f=t.style.overflow,h,b;function S(){return Bn(()=>u??=n()(t,r?.()??{},{direction:c}))}var _={is_global:l,in(){if(t.inert=d,!s){b?.abort(),b?.reset?.();return}a||h?.abort(),h=wa(t,S(),b,1,()=>{_a(t,"introend"),h?.abort(),h=u=void 0,t.style.overflow=f})},out(m){if(!a){m?.(),u=void 0;return}t.inert=!0,b=wa(t,S(),h,0,()=>{_a(t,"outroend"),m?.()})},stop:()=>{h?.abort(),b?.abort()}},y=ve;if((y.nodes.t??=[]).push(_),s&&ya){var E=l;if(!E){for(var g=y.parent;g&&g.f&nn;)for(;(g=g.parent)&&!(g.f&Qt););E=!g||(g.f&En)!==0}E&&At(()=>{_e(()=>_.in())})}}function wa(e,t,n,r,s){var a=r===1;if(mr(t)){var o,l=!1;return ct(()=>{if(!l){var y=t({direction:a?"in":"out"});o=wa(e,y,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 _a(e,a?"introstart":"outrostart"),s(),{abort:St,deactivate:St,reset:St,t:()=>r};const{delay:c=0,css:u,tick:d,easing:f=vg}=t;var h=[];if(a&&n===void 0&&(d&&d(0,1),u)){var b=uc(u(0,1));h.push(b,b)}var S=()=>1-r,_=e.animate(h,{duration:c,fill:"forwards"});return _.onfinish=()=>{_.cancel(),_a(e,a?"introstart":"outrostart");var y=n?.t()??1-r;n?.abort();var E=r-y,g=t.duration*Math.abs(E),m=[];if(g>0){var I=!1;if(u)for(var P=Math.ceil(g/16.666666666666668),T=0;T<=P;T+=1){var M=y+E*f(T/P),L=uc(u(M,1-M));m.push(L),I||=L.overflow==="hidden"}I&&(e.style.overflow="hidden"),S=()=>{var j=_.currentTime;return y+E*f(j/g)},d&&dg(()=>{if(_.playState!=="running")return!1;var j=S();return d(j,1-j),!0})}_=e.animate(m,{duration:g,fill:"forwards"}),_.onfinish=()=>{S=()=>r,d?.(r,1-r),s()}},{abort:()=>{_&&(_.cancel(),_.effect=null,_.onfinish=St)},deactivate:()=>{s=St},reset:()=>{r===0&&d?.(1,0)},t:()=>S()}}function mg(e,t,n,r,s,a){let o=re;re&&ut();var l=null;re&&fe.nodeType===Au&&(l=fe,ut());var c=re?fe:e,u=ve,d=new Kr(c,!1);gn(()=>{const f=t()||null;var h=s?s():n||f==="svg"?Ts:void 0;if(f===null){d.ensure(null,null),wr(!0);return}return d.ensure(f,b=>{if(f){if(l=re?l:qn(f,h),Ye(l,l),r){re&&Tb(f)&&l.append(document.createComment(""));var S=re?je(l):l.appendChild($e());re&&(S===null?Te(!1):Ie(S)),dc(u),r(l,S),dc(null)}ve.nodes.end=l,b.before(l)}re&&Ie(b)}),wr(!0),()=>{f&&wr(!1)}},nn),Ct(()=>{wr(!0)}),o&&(Te(!0),Ie(c))}function bg(e,t){let n=null,r=re;var s;if(re){n=fe;for(var a=je(document.head);a!==null&&(a.nodeType!==In||a.data!==e);)a=It(a);if(a===null)Te(!1);else{var o=It(a);a.remove(),Ie(o)}}re||(s=document.head.appendChild($e()));try{gn(()=>t(s),Eu|Nn)}finally{r&&(Te(!0),Ie(n))}}function gg(e,t){At(()=>{var n=e.getRootNode(),r=n.host?n:n.head??n.ownerDocument.head;if(!r.querySelector("#"+t.hash)){const s=qn("style");s.id=t.hash,s.textContent=t.code,r.appendChild(s)}})}function Vd(e,t,n){At(()=>{var r=_e(()=>t(e,n?.())||{});if(n&&r?.update){var s=!1,a={};Ve(()=>{var o=n();Ko(o),s&&Mu(a,o)&&(a=o,r.update(o))}),s=!0}if(r?.destroy)return()=>r.destroy()})}function Jo(e,t){var n=void 0,r;hd(()=>{n!==(n=t())&&(r&&(We(r),r=null),n&&(r=it(()=>{At(()=>n(e))})))})}const yg=/[&"<]/g;function _g(e,t){const n=String(e??""),r=yg;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 Fd(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=Fd(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function wg(){for(var e,t,n=0,r="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=Fd(e))&&(r&&(r+=" "),r+=t);return r}const fc={translate:new Map([[!0,"yes"],[!1,"no"]])};function kg(e,t,n=!1){if(e==="hidden"&&t!=="until-found"&&(n=!0),t==null||!t&&n)return"";const r=bp.call(fc,e)&&fc[e].get(t)||t,s=n?'=""':`="${_g(r)}"`;return` ${e}${s}`}function Ud(e){return typeof e=="object"?wg(e):e??""}const vc=[...`
7
+ \r\f \v\uFEFF`];function xg(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||vc.includes(r[o-1]))&&(l===r.length||vc.includes(r[l]))?r=(o===0?"":r.substring(0,o))+r.substring(l+1):o=l}}return r===""?null:r}function hc(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 xi(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function Sg(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(xi)),s&&c.push(...Object.keys(s).map(xi));var u=0,d=-1;const _=e.length;for(var f=0;f<_;f++){var h=e[f];if(l?h==="/"&&e[f-1]==="*"&&(l=!1):a?a===h&&(a=!1):h==="/"&&e[f+1]==="*"?l=!0:h==='"'||h==="'"?a=h:h==="("?o++:h===")"&&o--,!l&&a===!1&&o===0){if(h===":"&&d===-1)d=f;else if(h===";"||f===_-1){if(d!==-1){var b=xi(e.substring(u,d).trim());if(!c.includes(b)){h!==";"&&f++;var S=e.substring(u,f).trim();n+=" "+S+";"}}u=f+1,d=-1}}}}return r&&(n+=hc(r)),s&&(n+=hc(s,!0)),n=n.trim(),n===""?null:n}return e==null?null:String(e)}function de(e,t,n,r,s,a){var o=e.__className;if(re||o!==n||o===void 0){var l=xg(n,r,a);(!re||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 Si(e,t={},n,r){for(var s in n){var a=n[s];t[s]!==a&&(n[s]==null?e.style.removeProperty(s):e.style.setProperty(s,a,r))}}function He(e,t,n,r){var s=e.__style;if(re||s!==t){var a=Sg(t,r);(!re||a!==e.getAttribute("style"))&&(a==null?e.removeAttribute("style"):e.style.cssText=a),e.__style=t}else r&&(Array.isArray(r)?(Si(e,n?.[0],r[0]),Si(e,n?.[1],r[1],"important")):Si(e,n,r));return r}function ps(e,t,n=!1){if(e.multiple){if(t==null)return;if(!Br(t))return tm();for(var r of e.options)r.selected=t.includes(ls(r));return}for(r of e.options){var s=ls(r);if(sd(s,t)){r.selected=!0;return}}(!n||t!==void 0)&&(e.selectedIndex=-1)}function Zo(e){var t=new MutationObserver(()=>{ps(e,e.__value)});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),Ct(()=>{t.disconnect()})}function ms(e,t,n=t){var r=new WeakSet,s=!0;zs(e,"change",a=>{var o=a?"[selected]":":checked",l;if(e.multiple)l=[].map.call(e.querySelectorAll(o),ls);else{var c=e.querySelector(o)??e.querySelector("option:not([disabled])");l=c&&ls(c)}n(l),e.__value=l,me!==null&&r.add(me)}),At(()=>{var a=t();if(e===document.activeElement){var o=me;if(r.has(o))return}if(ps(e,a,s),s&&a===void 0){var l=e.querySelector(":checked");l!==null&&(a=ls(l),n(a))}e.__value=a,s=!1}),Zo(e)}function ls(e){return"__value"in e?e.__value:e.value}const gr=Symbol("class"),yr=Symbol("style"),Hd=Symbol("is custom element"),Kd=Symbol("is html"),Eg=ur?"link":"LINK",Ig=ur?"input":"INPUT",Ag=ur?"option":"OPTION",Cg=ur?"select":"SELECT",Tg=ur?"progress":"PROGRESS";function ge(e){if(re){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute("value")){var r=e.value;ne(e,"value",null),e.value=r}if(e.hasAttribute("checked")){var s=e.checked;ne(e,"checked",null),e.checked=s}}};e.__on_r=n,ct(n),ud()}}function bs(e,t){var n=Wa(e);n.value===(n.value=t??void 0)||e.value===t&&(t!==0||e.nodeName!==Tg)||(e.value=t??"")}function Qo(e,t){var n=Wa(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function $o(e,t){t?e.hasAttribute("selected")||e.setAttribute("selected",""):e.removeAttribute("selected")}function Rg(e,t){const n=e.checked;e.defaultChecked=t,e.checked=n}function Pg(e,t){const n=e.value;e.defaultValue=t,e.value=n}function ne(e,t,n,r){var s=Wa(e);re&&(s[t]=e.getAttribute(t),t==="src"||t==="srcset"||t==="href"&&e.nodeName===Eg)||s[t]!==(s[t]=n)&&(t==="loading"&&(e[wp]=n),n==null?e.removeAttribute(t):typeof n!="string"&&el(e).includes(t)?e[t]=n:e.setAttribute(t,n))}function jg(e,t,n){e.setAttributeNS("http://www.w3.org/1999/xlink",t,n)}function Mg(e,t,n){var r=ye,s=ve;let a=re;re&&Te(!1),yt(null),st(null);try{t!=="style"&&(Zi.has(e.getAttribute("is")||e.nodeName)||!customElements||customElements.get(e.getAttribute("is")||e.nodeName.toLowerCase())?el(e).includes(t):n&&typeof n=="object")?e[t]=n:ne(e,t,n==null?n:String(n))}finally{yt(r),st(s),a&&Te(!0)}}function Dg(e,t,n,r,s=!1,a=!1){if(re&&s&&e.nodeName===Ig){var o=e,l=o.type==="checkbox"?"defaultChecked":"defaultValue";l in n||ge(o)}var c=Wa(e),u=c[Hd],d=!c[Kd];let f=re&&u;f&&Te(!1);var h=t||{},b=e.nodeName===Ag;for(var S in t)S in n||(n[S]=null);n.class?n.class=Ud(n.class):(r||n[gr])&&(n.class=null),n[yr]&&(n.style??=null);var _=el(e);for(const T in n){let M=n[T];if(b&&T==="value"&&M==null){e.value=e.__value="",h[T]=M;continue}if(T==="class"){var y=e.namespaceURI==="http://www.w3.org/1999/xhtml";de(e,y,M,r,t?.[gr],n[gr]),h[T]=M,h[gr]=n[gr];continue}if(T==="style"){He(e,M,t?.[yr],n[yr]),h[T]=M,h[yr]=n[yr];continue}var E=h[T];if(!(M===E&&!(M===void 0&&e.hasAttribute(T)))){h[T]=M;var g=T[0]+T[1];if(g!=="$$")if(g==="on"){const L={},j="$$"+T;let D=T.slice(2);var m=xb(D);if(wb(D)&&(D=D.slice(0,-7),L.capture=!0),!m&&E){if(M!=null)continue;e.removeEventListener(D,h[j],L),h[j]=null}if(m)U(D,e,M),ce([D]);else if(M!=null){let C=function(O){h[T].call(this,O)};h[j]=Ad(D,e,C,L)}}else if(T==="style")ne(e,T,M);else if(T==="autofocus")Fr(e,!!M);else if(!u&&(T==="__value"||T==="value"&&M!=null))e.value=e.__value=M;else if(T==="selected"&&b)$o(e,M);else{var I=T;d||(I=Eb(I));var P=I==="defaultValue"||I==="defaultChecked";if(M==null&&!u&&!P)if(c[T]=null,I==="value"||I==="checked"){let L=e;const j=t===void 0;if(I==="value"){let D=L.defaultValue;L.removeAttribute(I),L.defaultValue=D,L.value=L.__value=j?D:null}else{let D=L.defaultChecked;L.removeAttribute(I),L.defaultChecked=D,L.checked=j?D:!1}}else e.removeAttribute(T);else P||_.includes(I)&&(u||typeof M!="string")?(e[I]=M,I in c&&(c[I]=Pe)):typeof M!="function"&&ne(e,I,M)}}}return f&&Te(!0),h}function Lg(e,t,n=[],r=[],s=[],a,o=!1,l=!1){Ms(s,n,r,c=>{var u=void 0,d={},f=e.nodeName===Cg,h=!1;if(hd(()=>{var S=t(...c.map(i)),_=Dg(e,u,S,a,o,l);h&&f&&"value"in S&&ps(e,S.value);for(let E of Object.getOwnPropertySymbols(d))S[E]||We(d[E]);for(let E of Object.getOwnPropertySymbols(S)){var y=S[E];E.description===yu&&(!u||y!==u[E])&&(d[E]&&We(d[E]),d[E]=it(()=>Jo(e,()=>y))),_[E]=y}u=_}),f){var b=e;At(()=>{ps(b,u.value,!0),Zo(b)})}h=!0})}function Wa(e){return e.__attributes??={[Hd]:e.nodeName.includes("-"),[Kd]:e.namespaceURI===gu}}var Zi=new Map;function el(e){var t=e.getAttribute("is")||e.nodeName,n=Zi.get(t);if(n)return n;Zi.set(t,n=[]);for(var r,s=e,a=Element.prototype;a!==s;){r=wu(s);for(var o in r)r[o].set&&n.push(o);s=qa(s)}return n}let Ei=null;function Wd(){if(Ei===null){var e=qn("select");e.innerHTML=Cd("<option><span>t</span></option>"),Ei=e.firstChild?.firstChild?.nodeType===1}return Ei}function zg(e,t){Wd()&&Jo(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 Og(e,t){var n=re;Wd()||(Te(!1),e.textContent="",e.append(cd("")));try{t()}finally{n&&(re?v(e):(Te(!0),Ie(e)))}}function Ng(e){_t(document,["focusin","focusout"],t=>{t&&t.type==="focusout"&&t.relatedTarget||e(document.activeElement)})}function Se(e,t,n=t){var r=new WeakSet;zs(e,"input",async s=>{var a=s?e.defaultValue:e.value;if(a=Ai(e)?Ci(a):a,n(a),me!==null&&r.add(me),await Ns(),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))}}}),(re&&e.defaultValue!==e.value||_e(t)==null&&e.value)&&(n(Ai(e)?Ci(e.value):e.value),me!==null&&r.add(me)),Ve(()=>{var s=t();if(e===document.activeElement){var a=me;if(r.has(a))return}Ai(e)&&s===Ci(e.value)||e.type==="date"&&!s&&!e.value||s!==e.value&&(e.value=s??"")})}const Ii=new Set;function qg(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),zs(n,"change",()=>{var u=n.__value;a&&(u=pc(o,u,n.checked)),s(u)},()=>s(a?[]:null)),Ve(()=>{var u=r();if(re&&n.defaultChecked!==n.checked){l=!0;return}a?(u=u||[],n.checked=u.includes(n.__value)):n.checked=sd(n.__value,u)}),Ct(()=>{var u=o.indexOf(n);u!==-1&&o.splice(u,1)}),Ii.has(o)||(Ii.add(o),ct(()=>{o.sort((u,d)=>u.compareDocumentPosition(d)===4?-1:1),Ii.delete(o)})),ct(()=>{if(l){var u;if(a)u=pc(o,u,n.checked);else{var d=o.find(f=>f.checked);u=d?.__value}s(u)}})}function cs(e,t,n=t){zs(e,"change",r=>{var s=r?e.defaultChecked:e.checked;n(s)}),(re&&e.defaultChecked!==e.checked||_e(t)==null)&&n(e.checked),Ve(()=>{var r=t();e.checked=!!r})}function pc(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 Ai(e){var t=e.type;return t==="number"||t==="range"}function Ci(e){return e===""?null:+e}function Bg(e,t,n=t){zs(e,"change",()=>{n(e.files)}),re&&e.files&&n(e.files),Ve(()=>{e.files=t()})}function tl(e){for(var t=[],n=0;n<e.length;n+=1)t.push({start:e.start(n),end:e.end(n)});return t}function Vg(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),Ve(()=>{var o=Number(t());s!==o&&!isNaN(o)&&(e.currentTime=s=o)}),Ct(()=>{cancelAnimationFrame(r),e.removeEventListener("timeupdate",a)})}function Fg(e,t){var n;_t(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=tl(r),t(n))})}function Ug(e,t){_t(e,["loadedmetadata"],()=>t(tl(e.seekable)))}function Hg(e,t){_t(e,["timeupdate"],()=>t(tl(e.played)))}function Kg(e,t){_t(e,["seeking","seeked"],()=>t(e.seeking))}function Wg(e,t){_t(e,["timeupdate","ended"],()=>t(e.ended))}function Yg(e,t){_t(e,["loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","emptied"],()=>t(e.readyState))}function Gg(e,t,n=t){At(()=>{var r=Number(t());r!==e.playbackRate&&!isNaN(r)&&(e.playbackRate=r)}),At(()=>{_t(e,["ratechange"],()=>{n(e.playbackRate)})})}function Xg(e,t,n=t){var r=t(),s=()=>{r!==e.paused&&n(r=e.paused)};_t(e,["play","pause","canplay"],s,r==null),At(()=>{(r=!!t())!==e.paused&&(r?e.pause():e.play().catch(a=>{throw n(r=!0),a}))})}function Jg(e,t,n=t){var r=()=>{n(e.volume)};t()==null&&r(),_t(e,["volumechange"],r,!1),Ve(()=>{var s=Number(t());s!==e.volume&&!isNaN(s)&&(e.volume=s)})}function Zg(e,t,n=t){var r=()=>{n(e.muted)};t()==null&&r(),_t(e,["volumechange"],r,!1),Ve(()=>{var s=!!t();e.muted!==s&&(e.muted=s)})}function Qg(e){_t(window,["online","offline"],()=>{e(navigator.onLine)})}function $g(e,t,n){var r=Zt(e,t);r&&r.set&&(e[t]=n,Ct(()=>{e[t]=null}))}class Bs{#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){Bs.entries.set(n.target,n);for(var r of this.#e.get(n.target)||[])r(n)}}))}}var ey=new Bs({box:"content-box"}),Yd=new Bs({box:"border-box"}),ty=new Bs({box:"device-pixel-content-box"});function ny(e,t,n){var r=t==="contentRect"||t==="contentBoxSize"?ey:t==="borderBoxSize"?Yd:ty,s=r.observe(e,a=>n(a[t]));Ct(s)}function ry(e,t,n){var r=Yd.observe(e,()=>n(e[t]));At(()=>(_e(()=>n(e[t])),r))}function mc(e,t){return e===t||e?.[rt]===t}function Le(e={},t,n,r){var s=Ee.r,a=ve;return At(()=>{var o,l;return Ve(()=>{o=l,l=r?.()||[],_e(()=>{e!==n(...l)&&(t(e,...l),o&&mc(n(...o),e)&&t(null,...o))})}),()=>{let c=a;for(;c!==s&&c.parent!==null&&c.parent.f&Ni;)c=c.parent;const u=()=>{l&&mc(n(...l),e)&&t(null,...l)},d=c.teardown;c.teardown=()=>{u(),d?.()}}}),e}function sy(e,t,n,r=n){t.addEventListener("input",()=>{r(t[e])}),Ve(()=>{var s=n();if(t[e]!==s)if(s==null){var a=t[e];r(a)}else t[e]=s+""})}function ay(e,t,n,r,s){var a=()=>{r(n[e])};n.addEventListener(t,a),s?Ve(()=>{n[e]=s()}):a(),(n===document.body||n===window||n===document)&&Ct(()=>{n.removeEventListener(t,a)})}function iy(e,t){_t(e,["focus","blur"],()=>{t(e===document.activeElement)})}function oy(e,t,n=t){var r=e==="x",s=()=>Bn(()=>{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;Ve(()=>{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))}),At(s),Ct(()=>{removeEventListener("scroll",s)})}function ly(e,t){_t(window,["resize"],()=>Bn(()=>t(window[e])))}function cy(e){return function(...t){var n=t[0];n.isTrusted&&e?.apply(this,t)}}function uy(e){return function(...t){var n=t[0];n.target===this&&e?.apply(this,t)}}function dy(e){return function(...t){var n=t[0];return n.stopPropagation(),e?.apply(this,t)}}function fy(e){var t=!1;return function(...n){if(!t)return t=!0,e?.apply(this,n)}}function vy(e){return function(...t){var n=t[0];return n.stopImmediatePropagation(),e?.apply(this,t)}}function hy(e){return function(...t){var n=t[0];return n.preventDefault(),e?.apply(this,t)}}function py(e=!1){const t=Ee,n=t.l.u;if(!n)return;let r=()=>Ko(t.s);if(e){let s=0,a={};const o=Ls(()=>{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&&fd(()=>{bc(t,r),zi(n.b)}),xe(()=>{const s=_e(()=>n.m.map(gp));return()=>{for(const a of s)typeof a=="function"&&a()}}),n.a.length&&xe(()=>{bc(t,r),zi(n.a)})}function bc(e,t){if(e.l.s)for(const n of e.l.s)i(n);t()}function my(e){var t=gt(0);return function(){return arguments.length===1?(x(t,i(t)+1),arguments[0]):(i(t),e())}}function by(e,t){var n=e.$$events?.[t.type],r=Br(n)?n.slice():n==null?[]:[n];for(var s of r)s.call(this,t)}function gy(e,t,n){e.$$events||={},e.$$events[t]||=[],e.$$events[t].push(n)}function yy(e){for(var t in e)t in this&&(this[t]=e[t])}function _y(e,t=1){const n=e();return e(n+t),n}function wy(e,t=1){const n=e()+t;return e(n),n}const ky={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 xy(e,t,n){return new Proxy({props:e,exclude:t},ky)}const Sy={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=ve;try{st(e.parent_effect),e.special[t]=$({get[t](){return e.props[t]}},t,mu)}finally{st(r)}}return e.special[t](n),Mr(e.version),!0},getOwnPropertyDescriptor(e,t){if(!e.exclude.includes(t)&&t in e.props)return{enumerable:!0,configurable:!0,value:e.props[t]}},deleteProperty(e,t){return e.exclude.includes(t)||(e.exclude.push(t),Mr(e.version)),!0},has(e,t){return e.exclude.includes(t)?!1:t in e.props},ownKeys(e){return Reflect.ownKeys(e.props).filter(t=>!e.exclude.includes(t))}};function Ey(e,t){return new Proxy({props:e,exclude:t,special:{},version:gt(0),parent_effect:ve},Sy)}const Iy={get(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(mr(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r)return r[t]}},set(e,t,n){let r=e.props.length;for(;r--;){let s=e.props[r];mr(s)&&(s=s());const a=Zt(s,t);if(a&&a.set)return a.set(n),!0}return!1},getOwnPropertyDescriptor(e,t){let n=e.props.length;for(;n--;){let r=e.props[n];if(mr(r)&&(r=r()),typeof r=="object"&&r!==null&&t in r){const s=Zt(r,t);return s&&!s.configurable&&(s.configurable=!0),s}}},has(e,t){if(t===rt||t===Ba)return!1;for(let n of e.props)if(mr(n)&&(n=n()),n!=null&&t in n)return!0;return!1},ownKeys(e){const t=[];for(let n of e.props)if(mr(n)&&(n=n()),!!n){for(const r in n)t.includes(r)||t.push(r);for(const r of Object.getOwnPropertySymbols(n))t.includes(r)||t.push(r)}return t}};function Vs(...e){return new Proxy({props:e},Iy)}function $(e,t,n,r){var s=(n&lp)!==0,a=(n&cp)!==0,o=r,l=!0,c=()=>(l&&(l=!1,o=a?_e(r):r),o);let u;if(s){var d=rt in e||Ba in e;u=Zt(e,t)?.set??(d&&t in e?g=>e[t]=g:void 0)}var f,h=!1;s?[f,h]=Ku(()=>e[t]):f=e[t],f===void 0&&r!==void 0&&(f=c(),u&&(Fp(),u(f)));var b;if(b=()=>{var g=e[t];return g===void 0?c():(l=!0,g)},!(n&mu))return b;if(u){var S=e.$$legacy;return function(g,m){return arguments.length>0?((!m||S||h)&&u(m?b():g),g):b()}}var _=!1,y=(n&op?Ls:zo)(()=>(_=!1,b()));s&&i(y);var E=ve;return function(g,m){if(arguments.length>0){const I=m?i(y):s?le(g):g;return x(y,I),_=!0,o!==void 0&&(o=I),g}return Sn&&_||E.f&mt?y.v:i(y)}}function Ay(e,t,n,r,s,a){Zu(t,()=>{var o=!1;Ro?.[xt],Ve(()=>{if(!o){var[l,c]=Ku(n);if(!c){var u=r(),d=!1,f=Ve(()=>{d||l[u]});d=!0,f.deps===null&&(Gp(),o=!0)}}})})}function Cy(e){return new Ty(e)}class Ty{#e;#t;constructor(t){var n=new Map,r=(a,o)=>{var l=Ha(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===Ba?!0:(i(n.get(o)??r(o,Reflect.get(a,o))),Reflect.has(a,o))},set(a,o,l){return x(n.get(o)??r(o,l),l),Reflect.set(a,o,l)}});this.#t=(t.hydrate?jd: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)&&Dn(),this.#e=s.$$events;for(const a of Object.keys(this.#t))a==="$set"||a==="$destroy"||a==="$on"||$n(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=()=>{Xe(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 Gd;typeof HTMLElement=="function"&&(Gd=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 e=function(r){return s=>{const a=qn("slot");r!=="default"&&(a.name=r),k(s,a)}};if(await Promise.resolve(),!this.$$cn||this.$$c)return;const t={},n=Ry(this);for(const r of this.$$s)r in n&&(r==="default"&&!this.$$d.children?(this.$$d.children=e(r),t.default=!0):t[r]=e(r));for(const r of this.attributes){const s=this.$$g_p(r.name);s in this.$$d||(this.$$d[s]=sa(s,r.value,this.$$p_d,"toProp"))}for(const r in this.$$p_d)!(r in this.$$d)&&this[r]!==void 0&&(this.$$d[r]=this[r],delete this[r]);this.$$c=Cy({component:this.$$ctor,target:this.$$shadowRoot||this,props:{...this.$$d,$$slots:t,$$host:this}}),this.$$me=Ur(()=>{Ve(()=>{this.$$r=!0;for(const r of ha(this.$$c)){if(!this.$$p_d[r]?.reflect)continue;this.$$d[r]=this.$$c[r];const s=sa(r,this.$$d[r],this.$$p_d,"toAttribute");s==null?this.removeAttribute(this.$$p_d[r].attribute||r):this.setAttribute(this.$$p_d[r].attribute||r,s)}this.$$r=!1})});for(const r in this.$$l)for(const s of this.$$l[r]){const a=this.$$c.$on(r,s);this.$$l_u.set(s,a)}this.$$l={}}}attributeChangedCallback(e,t,n){this.$$r||(e=this.$$g_p(e),this.$$d[e]=sa(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 ha(this.$$p_d).find(t=>this.$$p_d[t].attribute===e||!this.$$p_d[t].attribute&&t.toLowerCase()===e)||e}});function sa(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 Ry(e){const t={};return e.childNodes.forEach(n=>{t[n.slot||"default"]=!0}),t}function Py(e,t,n,r,s,a){let o=class extends Gd{constructor(){super(e,n,s),this.$$p_d=t}static get observedAttributes(){return ha(t).map(l=>(t[l].attribute||l).toLowerCase())}};return ha(t).forEach(l=>{$n(o.prototype,l,{get(){return this.$$c&&l in this.$$c?this.$$c[l]:this.$$d[l]},set(c){c=sa(l,c,t),this.$$d[l]=c;var u=this.$$c;if(u){var d=Zt(u,l)?.get;d?u[l]=c:u.$set({[l]:c})}}})}),r.forEach(l=>{$n(o.prototype,l,{get(){return this.$$c?.[l]}})}),a&&(o=a(o)),e.element=o,o}function jy(e,...t){return _e(()=>{try{let n=!1;const r=[];for(const s of t)s&&typeof s=="object"&&rt in s?(r.push(rr(s,!0)),n=!0):r.push(s);n&&(Xp(e),console.log("%c[snapshot]","color: grey",...r))}catch{}}),t}const Xd=Object.freeze(Object.defineProperty({__proto__:null,CLASS:gr,FILENAME:xt,HMR:pr,NAMESPACE_SVG:Ts,STYLE:yr,aborted:Wi,action:Vd,get active_effect(){return ve},add_legacy_event_listener:gy,add_locations:Hb,add_svelte_meta:fm,animation:hg,append:k,append_styles:gg,apply:ub,assign:Vb,assign_async:Fb,async:Zb,async_derived:Qu,attach:Jo,attachment:Bb,attr:kg,attribute_effect:Lg,autofocus:Fr,await:eg,bind_active_element:Ng,bind_buffered:Fg,bind_checked:cs,bind_content_editable:sy,bind_current_time:Vg,bind_element_size:ry,bind_ended:Wg,bind_files:Bg,bind_focused:iy,bind_group:qg,bind_muted:Zg,bind_online:Qg,bind_paused:Xg,bind_playback_rate:Gg,bind_played:Hg,bind_prop:$g,bind_property:ay,bind_ready_state:Yg,bind_resize_observer:ny,bind_seekable:Ug,bind_seeking:Kg,bind_select_value:ms,bind_this:Le,bind_value:Se,bind_volume:Jg,bind_window_scroll:oy,bind_window_size:ly,boundary:Ju,bubble_event:by,check_target:Gb,child:p,cleanup_styles:Ub,clsx:Ud,comment:Be,component:qs,create_custom_element:Py,create_ownership_validator:Yb,css_props:rg,customizable_select:Og,deep_read:ga,deep_read_state:Ko,deferred_template_effect:eb,delegate:ce,delegated:U,derived:H,derived_safe_equal:zo,get document(){return ad},each:pe,eager:Rm,effect:At,effect_root:Ur,effect_tracking:Os,element:mg,equals:Wm,event:Re,exclude_from_object:_p,fallback:yp,first_child:he,flush:Dn,for_await_track_reactivity_loss:Om,from_html:A,from_mathml:hb,from_svg:Yo,from_tree:pb,get:i,head:bg,hmr:Wb,html:og,hydrate_template:rm,if:K,index:dt,init:py,init_select:Zo,inspect:Jb,invalid_default_snippet:Sp,invalidate_inner_signals:rb,invalidate_store:wm,invoke_error_boundary:fn,key:ng,legacy_api:Xb,legacy_pre_effect:Zm,legacy_pre_effect_reset:Qm,legacy_rest_props:Ey,log_if_contains_state:jy,mark_store_binding:Im,mutable_source:Ha,mutate:Um,next:qt,noop:St,once:fy,pending:Lm,pop:oe,preventDefault:hy,prevent_snippet_stringification:Dd,prop:$,props_id:gb,proxy:le,push:ie,raf:un,reactive_import:my,remove_input_defaults:ge,remove_textarea_child:Bo,render_effect:Ve,replay_events:cb,reset:v,rest_props:xy,run:Nm,run_after_blockers:Zu,safe_get:ob,sanitize_slots:cg,save:zm,select_option:ps,selectedcontent:zg,self:uy,set:x,set_attribute:ne,set_checked:Qo,set_class:de,set_custom_element_data:Mg,set_default_checked:Rg,set_default_value:Pg,set_selected:$o,set_style:He,set_text:z,set_value:bs,set_xlink_attribute:jg,setup_stores:km,sibling:w,slot:lg,snapshot:rr,snippet:Ht,spread_props:Vs,state:F,stopImmediatePropagation:vy,stopPropagation:dy,store_get:ym,store_mutate:xm,store_set:Hu,store_unsub:_m,strict_equals:Km,tag:cm,tag_proxy:zu,template_effect:N,text:$t,tick:Ns,to_array:Su,trace:lm,track_reactivity_loss:Ui,transition:pg,trusted:cy,untrack:_e,update:Mr,update_legacy_props:yy,update_pre:Hm,update_pre_prop:wy,update_pre_store:Em,update_prop:_y,update_store:Sm,user_effect:xe,user_pre_effect:fd,validate_binding:Ay,validate_dynamic_element_tag:Pb,validate_snippet_args:Qb,validate_store:jb,validate_void_dynamic_element:Rb,wait:qm,get window(){return Hi},with_script:mb,wrap_snippet:Mb},Symbol.toStringTag,{value:"Module"}));class Qi{#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 gc{#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 My=["workspace","user"],Ya="state:manage",rn={ephemeral:new Qi,session:new Qi,workspace:new gc("sh3:workspace:"),user:new gc("sh3:user:")},Ti=new Map;let Ri=!1;function Dy(e,t,n){Ti.set(`${e}:${t}`,{zone:e,shardId:t,value:n}),!Ri&&(Ri=!0,queueMicrotask(()=>{Ri=!1;for(const{zone:r,shardId:s,value:a}of Ti.values())rn[r].write(s,a);Ti.clear()}))}function Ga(e,t){const n={};for(const r of Object.keys(t)){const s=t[r],o=rn[r].read(e),l={...s,...o??{}},c=le(l);n[r]=c,My.includes(r)&&Ur(()=>{let u=!0;xe(()=>{const d=rr(c);if(u){u=!1;return}Dy(r,e,d)})})}return n}function Pi(e,t){rn[e]=t}function Ly(e,t){return rn[e].read(t)}function $i(e,t){rn[e].delete(t)}const zy="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(zy);const Oy=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");function Ny(e){const t=document.activeElement;function n(){return Array.from(e.querySelectorAll(Oy))}function r(s){if(s.key!=="Tab")return;const a=n();if(a.length===0){s.preventDefault();return}const o=a[0],l=a[a.length-1],c=document.activeElement;s.shiftKey&&(c===o||!e.contains(c))?(s.preventDefault(),l.focus()):!s.shiftKey&&(c===l||!e.contains(c))&&(s.preventDefault(),o.focus())}return e.addEventListener("keydown",r),queueMicrotask(()=>{(n()[0]??e).focus()}),()=>{e.removeEventListener("keydown",r),t&&document.contains(t)&&t.focus()}}var qy=A('<div class="modal-frame svelte-2tcvcm" role="presentation"><div class="modal-box svelte-2tcvcm" role="dialog" aria-modal="true" tabindex="-1"><!></div></div>');function By(e,t){ie(t,!0);let n;xe(()=>{if(n)return Ny(n)});function r(l){t.onBackdropClick&&l.target===l.currentTarget&&t.onBackdropClick()}var s=qy(),a=p(s),o=p(a);qs(o,()=>t.Content,(l,c)=>{c(l,Vs(()=>t.contentProps,{get close(){return t.close}}))}),v(a),Le(a,l=>n=l,()=>n),v(s),N(()=>He(a,t.boxStyle)),U("click",s,r),k(e,s),oe()}ce(["click"]);const nl={};function Vy(e,t){nl[e]=t}function Fy(e){delete nl[e]}function Xa(e){const t=nl[e];if(!t)throw new Error(`Overlay layer "${e}" root is not registered — Shell.svelte must mount before opening overlays on this layer.`);return t}const Ln=le(new Map),nt=le({id:null}),Lr=le({id:null});function Uy(){return Lr.id}function gs(e){Ln.set(e.manifest.id,e)}function Wr(){return Array.from(Ln.values()).map(e=>e.manifest)}function rl(){const e=nt.id;return e?Ln.get(e)?.manifest??null:null}function zn(e){return Ln.get(e)}const us=[],Er=[];let ys=null;function Hy(e){ys=e}function Ky(e){if(!nt.id)throw new Error("pushNavEntry requires an active app");const t=Symbol("nav-entry");return Er.push({id:t,label:e.label,onPop:e.onPop}),{remove(){const n=Er.findIndex(r=>r.id===t);n>=0&&Er.splice(n,1)}}}function Jd(e){const t=Symbol("dismissable");return us.push({id:t,dismiss:e}),{unregister(){const n=us.findIndex(r=>r.id===t);n>=0&&us.splice(n,1)}}}function Zd(){Er.length=0}function Wy(){if(us.length>0){us.pop().dismiss();return}if(Er.length>0){Er.pop().onPop();return}nt.id&&ys&&ys.returnToHome()}function Yy(){nt.id||Lr.id&&ys&&ys.launchApp(Lr.id)}const Et=[];let ka=!1,Mt=null;const Gy=.5;function Qd(){const e=Xa("modal");if(Et.length===0){Mt&&(Mt.remove(),Mt=null);return}Mt||(Mt=document.createElement("div"),Mt.className="sh3-modal-backdrop",Mt.style.position="absolute",Mt.style.inset="0",Mt.style.pointerEvents="auto",Mt.style.transition="background-color 120ms ease",Mt.style.background=`rgba(0, 0, 0, ${Gy})`);const t=Et[Et.length-1].host;e.insertBefore(Mt,t)}function $d(e){e.key==="Escape"&&Et.length!==0&&(e.stopPropagation(),e.preventDefault(),Et[Et.length-1].handle.close())}function Xy(){ka||(ka=!0,document.addEventListener("keydown",$d,!0))}function Jy(){Et.length>0||ka&&(ka=!1,document.removeEventListener("keydown",$d,!0))}function ef(e){const t=Et.indexOf(e);t<0||(Et.splice(t,1),Xe(e.frame),e.host.remove(),Qd(),Jy())}function Zy(e,t,n){const r=Xa("modal"),s=document.createElement("div");s.className="sh3-modal-host",s.dataset.shellOverlayHost="modal",s.style.position="absolute",s.style.inset="0",s.style.pointerEvents="auto",r.appendChild(s);const a={},o={close:()=>ef(a)},l=Jd(()=>o.close()),c=o.close;o.close=()=>{l.unregister(),c()};const u=qe(By,{target:s,props:{Content:e,contentProps:t??{},close:o.close,boxStyle:n?.boxStyle,onBackdropClick:n?.dismissOnBackdrop?o.close:void 0}});return a.host=s,a.frame=u,a.handle=o,Et.push(a),Qd(),Xy(),o}function Qy(){for(;Et.length>0;)ef(Et[Et.length-1])}const Kt={open:Zy,closeAll:Qy};var $y=A('<div class="popup-frame svelte-mp81cl" role="menu" tabindex="-1"><!></div>');function e_(e,t){ie(t,!0);let n,r=F(-9999),s=F(-9999);xe(()=>{if(!n)return;const l=n.getBoundingClientRect(),c=4,u=window.innerWidth,d=window.innerHeight;let f=t.anchorRect.bottom+c,h=t.anchorRect.left;if(h+l.width>u-c&&(h=Math.max(c,u-l.width-c)),f+l.height>d-c){const b=t.anchorRect.top-l.height-c;f=b>=c?b:Math.max(c,d-l.height-c)}x(r,f,!0),x(s,h,!0)});var a=$y(),o=p(a);qs(o,()=>t.Content,(l,c)=>{c(l,Vs(()=>t.contentProps,{get close(){return t.close}}))}),v(a),Le(a,l=>n=l,()=>n),N(()=>He(a,`top: ${i(r)??""}px; left: ${i(s)??""}px;`)),k(e,a),oe()}function t_(e){return e instanceof HTMLElement?e.getBoundingClientRect():new DOMRect(e.x,e.y,0,0)}let Vt=null;function tf(e){if(!Vt)return;const t=e.target;t&&Vt.host.contains(t)||Vt.handle.close()}function nf(e){Vt&&e.key==="Escape"&&(e.stopPropagation(),e.preventDefault(),Vt.handle.close())}function n_(){document.addEventListener("pointerdown",tf,!0),document.addEventListener("keydown",nf,!0)}function r_(){document.removeEventListener("pointerdown",tf,!0),document.removeEventListener("keydown",nf,!0)}function eo(e){Vt===e&&(Vt=null,r_(),Xe(e.frame),e.host.remove())}function s_(e,t,n){Vt&&eo(Vt);const r=Xa("popup"),s=document.createElement("div");s.className="sh3-popup-host",s.dataset.shellOverlayHost="popup",s.style.position="absolute",s.style.inset="0",s.style.pointerEvents="none",r.appendChild(s);const a=t_(t.anchor),o={},l={close:()=>eo(o)},c=Jd(()=>l.close()),u=l.close;l.close=()=>{c.unregister(),u()};const d=qe(e_,{target:s,props:{Content:e,contentProps:n??{},anchorRect:a,close:l.close}});return o.host=s,o.frame=d,o.handle=l,Vt=o,queueMicrotask(n_),l}function a_(){Vt&&eo(Vt)}const to={show:s_,close:a_};var i_=A('<div role="status" aria-live="polite"><span class="toast-level svelte-12gwnj0"> </span> <span class="toast-message svelte-12gwnj0"> </span></div>');function o_(e,t){var n=i_(),r=p(n),s=p(r,!0);v(r);var a=w(r,2),o=p(a,!0);v(a),v(n),N(()=>{de(n,1,`toast toast-${t.level??""}`,"svelte-12gwnj0"),z(s,t.level),z(o,t.message)}),U("click",n,function(...l){t.close?.apply(this,l)}),k(e,n)}ce(["click"]);const xa=new Set;let ft=null;function l_(){if(ft&&ft.isConnected)return ft;const e=Xa("toast");return ft=document.createElement("div"),ft.className="sh3-toast-stack",ft.style.position="absolute",ft.style.right="16px",ft.style.bottom="16px",ft.style.display="flex",ft.style.flexDirection="column-reverse",ft.style.gap="6px",ft.style.pointerEvents="none",e.appendChild(ft),ft}function no(e){xa.has(e)&&(xa.delete(e),e.timer!==null&&(clearTimeout(e.timer),e.timer=null),Xe(e.instance),e.host.remove())}function c_(e,t={}){const n=t.level??"info",r=t.duration??3e3,s=l_(),a=document.createElement("div");a.className="sh3-toast-host",s.appendChild(a);const o={},l={close:()=>no(o)},c=qe(o_,{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(()=>no(o),r):null,xa.add(o),l}function u_(){for(const e of[...xa])no(e)}const vn={notify:c_,clear:u_},yc={w:120,h:80};function sl(e){if(e.type==="slot")return{...yc};if(e.type==="tabs")return{...yc};const t=e.children.map(sl);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 _c=32,wc={x:48,y:48};function rf(e,t){if(e.length===0)return{...wc};const n=e[e.length-1],r={x:n.position.x+_c,y:n.position.y+_c};return r.x+120>t.w||r.y+32>t.h?{...wc}:r}let kc=0;function sf(){return kc+=1,`float-${Date.now().toString(36)}-${kc.toString(36)}`}function af(e){return e.type==="slot"?e.viewId==null:e.type==="tabs"?e.tabs.every(t=>t.viewId==null):e.children.every(af)}function d_(e){return e.closest("[data-shell-overlay-host]")}class f_ extends Map{#e=new Map;#t=F(0);#n=F(0);#s=wn||-1;constructor(t){if(super(),t){for(var[n,r]of t)super.set(n,r);this.#n.v=super.size}}#r(t){return wn===this.#s?F(t):gt(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),x(this.#n,super.size),cn(l);else if(a!==n){cn(s);var c=l.reactions===null?null:new Set(l.reactions),u=c===null||!s.reactions?.every(d=>c.has(d));u&&cn(l)}return o}delete(t){var n=this.#e,r=n.get(t),s=super.delete(t);return r!==void 0&&(n.delete(t),x(r,-1)),s&&(x(this.#n,super.size),cn(this.#t)),s}clear(){if(super.size!==0){super.clear();var t=this.#e;x(this.#n,0);for(var n of t.values())x(n,-1);cn(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 ro=new f_;function _s(e,t){t?ro.set(e,!0):ro.delete(e)}function v_(e){return ro.get(e)??!1}let h_=[],al=null,Fs=()=>({w:1600,h:900});function p_(e,t){al=e,Fs=t}function m_(){al=null,Fs=()=>({w:1600,h:900})}function dr(){return al??h_}const il=new Map;function b_(e){return il.get(e)}const kn=new Map;let xc=0;function g_(e){return xc+=1,`float:${e}:${xc}`}const y_={w:600,h:400};function __(e,t){return{w:Math.max(e.w,t.w),h:Math.max(e.h,t.h)}}function w_(e,t={}){const n=dr(),r=sf(),s=g_(e);let a;if(t.dismissable){const d={type:"slot",slotId:s,viewId:e};t.meta&&(d.meta=t.meta),a=d}else{const d=t.title??e,f={slotId:s,viewId:e,label:d};t.meta&&(f.meta=t.meta),a={type:"tabs",tabs:[f],activeTab:0}}const o=sl(a),l=t.size??__(y_,o),c=t.position??rf(n,Fs()),u={id:r,content:a,position:c,size:l,title:t.title};if(t.dismissable&&(u.dismissable=!0),t.dismissable&&t.anchor){const d=d_(t.anchor);d&&il.set(r,d)}return n.push(u),r}function k_(e){const t=dr(),n=sf(),r=e.position??rf(t,Fs()),s={id:n,content:e.content,position:r,size:e.size,title:e.title};return t.push(s),n}function x_(e){const t=dr(),n=t.findIndex(r=>r.id===e);n<0||(t.splice(n,1),il.delete(e),kn.delete(e),_s(e,!1))}function S_(){return dr().slice()}function of(e){const t=dr(),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 lf(e){if(kn.has(e))return;const t=dr().find(r=>r.id===e);if(!t)return;kn.set(e,{position:{x:t.position.x,y:t.position.y},size:{w:t.size.w,h:t.size.h}}),_s(e,!0);const n=Fs();t.position.x=0,t.position.y=0,t.size.w=n.w,t.size.h=n.h,of(e)}function cf(e){const t=kn.get(e);if(!t)return;const n=dr().find(r=>r.id===e);if(!n){kn.delete(e),_s(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,kn.delete(e),_s(e,!1)}function E_(e){kn.has(e)?cf(e):lf(e)}function I_(e){kn.has(e)&&(kn.delete(e),_s(e,!1))}function A_(e){return v_(e)}const Ce={open:w_,openWithContent:k_,close:x_,list:S_,focus:of,maximize:lf,restore:cf,toggleMaximize:E_,unmaximize:I_,isMaximized:A_};let Sa=null;function C_(e){Sa=e}function T_(){Sa=null}function ol(){if(!Sa)throw new Error("presetManager: no app attached — bind an AppLayoutBlob first");return Sa}function R_(){return Object.keys(ol().presets)}function P_(){return ol().activePreset}function j_(e){const t=ol();if(!(e in t.presets))throw new Error(`presetManager.switch: unknown preset "${e}"`);t.activePreset=e}const M_={list:R_,active:P_,switch:j_},kr=new Map,aa=new Map,so=new Set;function Sc(e){const t=aa.get(e);if(t)for(const n of t)n();for(const n of so)n(e)}function uf(e,t){const n=Symbol();let r=kr.get(e);r||(r=new Map,kr.set(e,r)),r.set(n,t),Sc(e);let s=!1;return()=>{if(s)return;s=!0;const a=kr.get(e);a&&a.delete(n)&&(a.size===0&&kr.delete(e),Sc(e))}}function Ja(e){const t=kr.get(e);return t?Array.from(t.values()):[]}function D_(){return Array.from(kr.keys())}function df(e,t){let n=aa.get(e);n||(n=new Set,aa.set(e,n)),n.add(t);let r=!1;return()=>{r||(r=!0,n.delete(t),n.size===0&&aa.delete(e))}}function L_(e){so.add(e);let t=!1;return()=>{t||(t=!0,so.delete(e))}}const z_=Object.freeze([".md",".txt",".json",".guml",".css",".js",".ts",".tsx",".jsx",".html",".svg",".csv",".yaml",".yml",".xml",".log",".ini",".toml"]);function O_(e){return e.kind?e.kind:e.extension&&z_.includes(e.extension.toLowerCase())?"text":"binary"}const ia=[];function Ec(e){return ia.push(e),()=>{const t=ia.indexOf(e);t>=0&&ia.splice(t,1)}}function N_(e,t=[]){return[...ia,...t].filter(r=>{try{return r.appliesTo(e)}catch{return!1}}).sort((r,s)=>(s.priority??0)-(r.priority??0))[0]??null}var q_=A("<span> </span>"),B_=A('<div class="sh3-conflict-text-dual svelte-iwgja4"><div role="button" tabindex="0"><header class="sh3-conflict-text-head svelte-iwgja4"> </header> <pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre></div> <div role="button" tabindex="0"><header class="sh3-conflict-text-head svelte-iwgja4"> </header> <pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre></div></div> <details class="sh3-conflict-text-diff svelte-iwgja4"><summary> </summary> <pre class="svelte-iwgja4"><code></code></pre></details>',1),V_=A("<option> </option>"),F_=A("<button> </button>"),U_=A('<pre class="sh3-conflict-text-body svelte-iwgja4"><code> </code></pre>'),H_=A('<div class="sh3-conflict-text-tabs svelte-iwgja4"><div class="sh3-conflict-text-picker svelte-iwgja4"><label>Reference: <select class="svelte-iwgja4"></select></label></div> <div class="sh3-conflict-text-tablist svelte-iwgja4"></div> <!></div>'),K_=A('<div class="sh3-conflict-text svelte-iwgja4"><!></div>');function W_(e,t){ie(t,!0);let n=F("");xe(()=>{(!i(n)||!t.item.branches.find(b=>b.origin===i(n)))&&x(n,t.item.branches[0]?.origin??"local",!0)});const r=H(()=>t.item.branches.length===2),s=H(()=>i(r)?t.item.branches[0]:t.item.branches.find(b=>b.origin===i(n))??t.item.branches[0]),a=H(()=>i(r)?t.item.branches[1]:t.item.branches.find(b=>b.origin===t.selectedOrigin)??t.item.branches[1]??t.item.branches[0]);function o(b,S){const _=(b??"").split(/\r?\n/),y=(S??"").split(/\r?\n/),E=[],g=Math.max(_.length,y.length);for(let m=0;m<g;m++){const I=_[m],P=y[m];I===P?typeof I=="string"&&E.push({kind:"same",text:I}):(typeof I=="string"&&E.push({kind:"left",text:I}),typeof P=="string"&&E.push({kind:"right",text:P}))}return E}const l=H(()=>!i(s)||!i(a)?[]:o(i(s).content??"",i(a).content??"")),c=H(()=>i(l).filter(b=>b.kind!=="same").length);var u=K_(),d=p(u);{var f=b=>{var S=B_(),_=he(S),y=p(_);let E;var g=p(y),m=p(g);v(g);var I=w(g,2),P=p(I),T=p(P,!0);v(P),v(I),v(y);var M=w(y,2);let L;var j=p(M),D=p(j);v(j);var C=w(j,2),O=p(C),q=p(O,!0);v(O),v(C),v(M),v(_);var R=w(_,2),V=p(R),X=p(V);v(V);var Y=w(V,2),Q=p(Y);pe(Q,21,()=>i(l),dt,(Z,se)=>{var J=q_(),B=p(J);v(J),N(()=>{de(J,1,`diff-${i(se).kind}`,"svelte-iwgja4"),z(B,`${i(se).kind==="same"?" ":i(se).kind==="left"?"- ":"+ "}${i(se).text??""}
8
+ `)}),k(Z,J)}),v(Q),v(Y),v(R),N(()=>{E=de(y,1,"sh3-conflict-text-pane svelte-iwgja4",null,E,{selected:i(s).origin===t.selectedOrigin}),z(m,`${i(s).origin??""} · v${i(s).version??""}`),z(T,i(s).content??""),L=de(M,1,"sh3-conflict-text-pane svelte-iwgja4",null,L,{selected:i(a).origin===t.selectedOrigin}),z(D,`${i(a).origin??""} · v${i(a).version??""}`),z(q,i(a).content??""),z(X,`Line diff (${i(c)??""} difference${i(c)===1?"":"s"})`)}),U("click",y,()=>t.onSelect(i(s).origin)),U("keydown",y,Z=>{(Z.key==="Enter"||Z.key===" ")&&t.onSelect(i(s).origin)}),U("click",M,()=>t.onSelect(i(a).origin)),U("keydown",M,Z=>{(Z.key==="Enter"||Z.key===" ")&&t.onSelect(i(a).origin)}),k(b,S)},h=b=>{var S=H_(),_=p(S),y=p(_),E=w(p(y));pe(E,21,()=>t.item.branches,P=>P.origin,(P,T)=>{var M=V_(),L=p(M,!0);v(M);var j={};N(()=>{z(L,i(T).origin),j!==(j=i(T).origin)&&(M.value=(M.__value=i(T).origin)??"")}),k(P,M)}),v(E),v(y),v(_);var g=w(_,2);pe(g,21,()=>t.item.branches,P=>P.origin,(P,T)=>{var M=F_();let L;var j=p(M);v(M),N(()=>{L=de(M,1,"sh3-conflict-text-tab svelte-iwgja4",null,L,{selected:i(T).origin===t.selectedOrigin}),z(j,`${i(T).origin??""} · v${i(T).version??""}`)}),U("click",M,()=>t.onSelect(i(T).origin)),k(P,M)}),v(g);var m=w(g,2);{var I=P=>{var T=U_(),M=p(T),L=p(M,!0);v(M),v(T),N(()=>z(L,i(a).content??"")),k(P,T)};K(m,P=>{i(a)&&P(I)})}v(S),ms(E,()=>i(n),P=>x(n,P)),k(b,S)};K(d,b=>{i(r)&&i(s)&&i(a)?b(f):b(h,-1)})}v(u),k(e,u),oe()}ce(["click","keydown"]);var Y_=A("· <code> </code>",1),G_=A('<li class="sh3-conflict-meta-li svelte-1nz3djn"><button type="button"><div class="sh3-conflict-meta-origin svelte-1nz3djn"> </div> <div class="sh3-conflict-meta-detail svelte-1nz3djn"> <!></div></button></li>'),X_=A('<div class="sh3-conflict-meta svelte-1nz3djn"><div class="sh3-conflict-meta-note svelte-1nz3djn">No preview available for this content. Pick the branch you want to keep.</div> <ul class="sh3-conflict-meta-list svelte-1nz3djn"></ul></div>');function J_(e,t){ie(t,!0);function n(o){return typeof o!="number"?"—":o<1024?`${o} B`:o<1024*1024?`${(o/1024).toFixed(1)} KiB`:`${(o/(1024*1024)).toFixed(2)} MiB`}function r(o){const l=Date.now()-o;return l<6e4?"just now":l<36e5?`${Math.floor(l/6e4)}m ago`:l<864e5?`${Math.floor(l/36e5)}h ago`:new Date(o).toLocaleString()}var s=X_(),a=w(p(s),2);pe(a,21,()=>t.item.branches,o=>o.origin,(o,l)=>{var c=G_(),u=p(c);let d;var f=p(u),h=p(f,!0);v(f);var b=w(f,2),S=p(b),_=w(S);{var y=E=>{var g=Y_(),m=w(he(g)),I=p(m,!0);v(m),N(()=>z(I,i(l).hashPreview)),k(E,g)};K(_,E=>{i(l).hashPreview&&E(y)})}v(b),v(u),v(c),N((E,g)=>{d=de(u,1,"sh3-conflict-meta-row svelte-1nz3djn",null,d,{selected:i(l).origin===t.selectedOrigin}),z(h,i(l).origin),z(S,`v${i(l).version??""} · ${E??""} · ${g??""} `)},[()=>r(i(l).at),()=>n(i(l).sizeBytes)]),U("click",u,()=>t.onSelect(i(l).origin)),k(o,c)}),v(a),v(s),k(e,s),oe()}ce(["click"]);const Z_=1048576;function Q_(e){return typeof e=="number"&&e>Z_}const $_={id:"sh3-core.text",priority:1,appliesTo:e=>O_(e)!=="text"?!1:!e.branches.some(t=>Q_(t.sizeBytes)),mount(e,t){const n=qe(W_,{target:e,props:t});return()=>{Xe(n)}}},ew={id:"sh3-core.meta",priority:0,appliesTo:()=>!0,mount(e,t){const n=qe(J_,{target:e,props:t});return()=>{Xe(n)}}};let Ic=!1;function tw(){Ic||(Ic=!0,Ec($_),Ec(ew))}var nw=A('<div class="sh3-conflict-prompt svelte-1jvtzud"><h3 class="sh3-conflict-prompt-title svelte-1jvtzud"> </h3> <p class="sh3-conflict-prompt-intro svelte-1jvtzud">Pick one option for the whole batch, or resolve each conflict individually.</p> <div class="sh3-conflict-prompt-actions svelte-1jvtzud"><button type="button" class="sh3-conflict-prompt-primary svelte-1jvtzud">Overwrite with most recent</button> <button type="button" class="sh3-conflict-prompt-secondary svelte-1jvtzud">Resolve individually</button> <button type="button" class="sh3-conflict-prompt-cancel svelte-1jvtzud">Cancel</button></div></div>');function rw(e,t){var n=nw(),r=p(n),s=p(r);v(r);var a=w(r,4),o=p(a);Fr(o,!0);var l=w(o,2),c=w(l,2);v(a),v(n),N(()=>z(s,`${t.count??""} conflict${t.count===1?"":"s"} to resolve`)),U("click",o,function(...u){t.onOverwriteMostRecent?.apply(this,u)}),U("click",l,function(...u){t.onResolveIndividually?.apply(this,u)}),U("click",c,function(...u){t.onCancel?.apply(this,u)}),k(e,n)}ce(["click"]);var sw=A('<span class="sh3-conflict-detail-counter svelte-pw8iv6"> </span>'),aw=A('<button type="button"><span><!></span> <span class="sh3-conflict-detail-rail-label svelte-pw8iv6"> </span></button>'),iw=A('<aside class="sh3-conflict-detail-rail svelte-pw8iv6"></aside>'),ow=A('<label class="sh3-conflict-detail-branch svelte-pw8iv6"><input type="radio"/> <span> </span></label>'),lw=A('<div class="sh3-conflict-detail-branches svelte-pw8iv6"></div> <div class="sh3-conflict-detail-renderer svelte-pw8iv6"></div>',1),cw=A('<div class="sh3-conflict-detail svelte-pw8iv6"><header class="sh3-conflict-detail-head svelte-pw8iv6"><h3 class="svelte-pw8iv6"> </h3> <!></header> <div class="sh3-conflict-detail-body svelte-pw8iv6"><!> <section class="sh3-conflict-detail-main svelte-pw8iv6"><!></section></div> <footer class="sh3-conflict-detail-foot svelte-pw8iv6"><div class="sh3-conflict-detail-nav svelte-pw8iv6"><button type="button" class="svelte-pw8iv6">← Prev</button> <button type="button" class="svelte-pw8iv6"> </button> <button type="button" class="svelte-pw8iv6">Next →</button></div> <div class="sh3-conflict-detail-actions svelte-pw8iv6"><button type="button" class="sh3-conflict-detail-cancel svelte-pw8iv6">Cancel</button> <button type="button" class="sh3-conflict-detail-done svelte-pw8iv6">Done</button></div></footer></div>');function uw(e,t){ie(t,!0);const n=H(()=>t.items[t.currentIndex]),r=H(()=>i(n)?t.selections[i(n).id]??i(n).branches[0]?.origin??"":""),s=H(()=>i(n)?N_(i(n),t.contributed):null);let a=F(void 0),o=null;xe(()=>{if(i(n),i(s),i(r),o&&(o(),o=null),!i(a)||!i(n)||!i(s))return;const V={item:i(n),selectedOrigin:i(r),onSelect:X=>t.onSelect(i(n).id,X)};return o=i(s).mount(i(a),V),()=>{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=H(()=>t.items.map(V=>t.skipped[V.id]?"skipped":t.selections[V.id]?"resolved":"pending"));var d=cw(),f=p(d),h=p(f),b=p(h,!0);v(h);var S=w(h,2);{var _=V=>{var X=sw(),Y=p(X);v(X),N(()=>z(Y,`${t.currentIndex+1} / ${t.items.length??""}`)),k(V,X)};K(S,V=>{t.items.length>1&&V(_)})}v(f);var y=w(f,2),E=p(y);{var g=V=>{var X=iw();pe(X,23,()=>t.items,Y=>Y.id,(Y,Q,Z)=>{var se=aw();let J;var B=p(se),W=p(B);{var ae=Me=>{var Rt=$t("✓");k(Me,Rt)},G=Me=>{var Rt=$t("⟶");k(Me,Rt)},ue=Me=>{var Rt=$t("·");k(Me,Rt)};K(W,Me=>{i(u)[i(Z)]==="resolved"?Me(ae):i(u)[i(Z)]==="skipped"?Me(G,1):Me(ue,-1)})}v(B);var be=w(B,2),at=p(be,!0);v(be),v(se),N(()=>{J=de(se,1,"sh3-conflict-detail-rail-item svelte-pw8iv6",null,J,{selected:i(Z)===t.currentIndex}),de(B,1,`sh3-conflict-detail-rail-state ${i(u)[i(Z)]??""}`,"svelte-pw8iv6"),z(at,i(Q).label)}),U("click",se,()=>t.onNavigate(i(Z))),k(Y,se)}),v(X),k(V,X)};K(E,V=>{t.items.length>1&&V(g)})}var m=w(E,2),I=p(m);{var P=V=>{var X=lw(),Y=he(X);pe(Y,21,()=>i(n).branches,Z=>Z.origin,(Z,se)=>{var J=ow(),B=p(J);ge(B);var W=w(B,2),ae=p(W);v(W),v(J),N(()=>{ne(B,"name",`branch-${i(n).id??""}`),bs(B,i(se).origin),Qo(B,i(r)===i(se).origin),z(ae,`${i(se).origin??""} · v${i(se).version??""}`)}),U("change",B,()=>t.onSelect(i(n).id,i(se).origin)),k(Z,J)}),v(Y);var Q=w(Y,2);Le(Q,Z=>x(a,Z),()=>i(a)),k(V,X)};K(I,V=>{i(n)&&V(P)})}v(m),v(y);var T=w(y,2),M=p(T),L=p(M),j=w(L,2),D=p(j,!0);v(j);var C=w(j,2);v(M);var O=w(M,2),q=p(O),R=w(q,2);v(O),v(T),v(d),N(()=>{z(b,t.title),L.disabled=t.currentIndex===0,z(D,i(n)&&t.skipped[i(n).id]?"Unskip":"Skip"),C.disabled=t.currentIndex>=t.items.length-1}),U("click",L,l),U("click",j,()=>i(n)&&t.onToggleSkip(i(n).id)),U("click",C,c),U("click",q,function(...V){t.onCancel?.apply(this,V)}),U("click",R,function(...V){t.onDone?.apply(this,V)}),k(e,d),oe()}ce(["click","change"]);function ff(e,t){return t.at-e.at}function dw(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(ff)[0]}}function fw(e,t){ie(t,!0);const n=t.items.length>=2||t.requirePrompt;let r=F(le(n?"prompt":"detail")),s=F(le(Object.fromEntries(t.items.map(m=>{const I=dw(m.branches,t.mostRecentBy)?.origin??m.branches[0]?.origin??"";return[m.id,I]})))),a=F(le({})),o=F(0),l=!1;Xo(()=>{l||(l=!0,t.onCancel())});function c(){if(l)return;l=!0;const m=[],I=[];for(const P of t.items){if(i(a)[P.id]){I.push(P.id);continue}const T=i(s)[P.id],M=P.branches.find(L=>L.origin===T);M&&m.push({itemId:P.id,chosen:M,meta:P.meta})}t.onResolve(m,I),t.close()}function u(){l||(l=!0,t.onCancel(),t.close())}function d(){c()}function f(){x(r,"detail")}function h(m,I){if(x(s,{...i(s),[m]:I},!0),i(a)[m]){const P={...i(a)};delete P[m],x(a,P,!0)}}function b(m){x(a,{...i(a),[m]:!i(a)[m]},!0)}function S(m){x(o,m,!0)}var _=Be(),y=he(_);{var E=m=>{rw(m,{get count(){return t.items.length},onOverwriteMostRecent:d,onResolveIndividually:f,onCancel:u})},g=m=>{uw(m,{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:h,onNavigate:S,onToggleSkip:b,onDone:c,onCancel:u})};K(y,m=>{i(r)==="prompt"?m(E):m(g,-1)})}k(e,_),oe()}const vf="sh3-core.conflictRenderer";class hf extends Error{constructor(t){super(t),this.name="ConflictPermissionError"}}class vw extends Error{constructor(){super("Caller shard deactivated while conflict session was active"),this.name="ConflictSessionOrphanedError"}}function hw(){try{return Ja(vf)}catch{return[]}}function pf(e,t={}){return tw(),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??ff,a=t.requirePrompt??!1,o=hw();let l=!1;const d={items:e,title:r,mostRecentBy:s,requirePrompt:a,contributed:o,onResolve:(f,h)=>{l||(l=!0,n({status:"resolved",choices:f,skipped:h}))},onCancel:()=>{l||(l=!0,n({status:"cancelled"}))}};Kt.open(fw,d,{boxStyle:"max-width: none; min-width: 360px; padding: 0;"})})}function pw(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 mw(e,t){const n=e.browse;if(!n?.statusFrom||!n?.readBranchFrom||!n?.resolveConflictFrom)throw new hf(`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 bw(e){const t=e.lastIndexOf(".");if(t<0)return;const n=e.lastIndexOf("/");if(!(t<n))return e.slice(t)}async function gw(e,t,n={}){const r=e.shardId,s=t.shardId===r?pw(e):mw(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 h=bw(d),b=[];for(const S of f.branches??[]){const _=await s.readBranch(d,S.origin).catch(()=>null);b.push({origin:S.origin,version:S.version,at:S.at,content:_??void 0,sizeBytes:_?new TextEncoder().encode(_).length:void 0})}o.push({id:d,label:d,extension:h,branches:b,meta:{shardId:t.shardId,path:d,docVersion:f.version}})}const l=await pf(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 yw={resolve:pf,resolveDocuments:gw},mf="sh3.color-picker",_w={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 ww(e={}){return[...Ja(mf),_w].sort((r,s)=>(s.priority??0)-(r.priority??0))[0].open(e)}const kw={pick:ww};let Kn=null;function xw(e){Kn=e}async function Ir(e){return Kn?{...Kn.bindings[e]??{}}:{}}async function Ac(e,t,n){if(!Kn)return;const r={...Kn.bindings[e]??{}};n===void 0?delete r[t]:r[t]=n,Kn.bindings={...Kn.bindings,[e]:r}}const ll="sh3.actions",ji=new Set;function Sw(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.`),()=>{};ji.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.`),ji.add(e.id);const r=uf(ll,{action:e,ownerShardId:t});let s=!1;return()=>{s||(s=!0,r(),ji.delete(e.id))}}function et(){return Ja(ll)}function Ew(e){return df(ll,e)}function Wt(e){return typeof e.label=="function"?e.label():e.label}const Iw=["Ctrl","Alt","Shift","Meta"],Cc={control:"Ctrl",ctrl:"Ctrl",alt:"Alt",option:"Alt",shift:"Shift",meta:"Meta",cmd:"Meta",command:"Meta",super:"Meta",win:"Meta"},Aw=new Set(["Control","Alt","Shift","Meta"]);function bf(e){return e.length===1?e.toUpperCase():e}function cl(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 Cc)r.add(Cc[l]);else{if(s!==void 0)throw new Error(`Multiple keys in shortcut: "${e}"`);s=bf(o)}}if(s===void 0)throw new Error(`No key in shortcut: "${e}"`);return[...Iw.filter(o=>r.has(o)),s].join("+")}function gf(e,t){if(!e.toLowerCase().includes("mod"))return e;const n=e.split("+").map(r=>r.toLowerCase()==="mod"?t==="mac"?"Meta":"Ctrl":r);return cl(n.join("+"))}function Cw(e){if(Aw.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=bf(e.key);return[...t,n].join("+")}function Tw(){return typeof navigator>"u"?"other":/Mac|iPhone|iPad|iPod/i.test(navigator.platform)?"mac":"other"}function Us(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?null:cl(r)}return e.defaultShortcut?gf(e.defaultShortcut,n):null}function Rw(e,t,n="other"){if(e.id in t){const r=t[e.id];return r===null?{shortcut:null,source:"disabled"}:{shortcut:cl(r),source:"user"}}return e.defaultShortcut?{shortcut:gf(e.defaultShortcut,n),source:"default"}:{shortcut:null,source:"none"}}function Za(e){return e==="home"?"home":e==="app"?"app":typeof e=="string"&&e.startsWith("view:")?"view":typeof e=="string"&&e.startsWith("focus:")?"focus":"element"}function ul(e){return Array.isArray(e)?e:[e]}function yf(e){return e==="home"||e==="app"?null:typeof e=="string"?e:e.element}function Hs(e,t,n){const r=ul(e),s={};for(const a of r){const o=Za(a);(s[o]??=[]).push(a)}for(const a of Qa){const o=s[a];if(o){for(const l of o)if(ws(l,t,n))return l}}return null}function Pw(e,t){return typeof e=="string"||typeof t=="string"?e===t:e.element===t.element}function _f(e){return typeof e=="string"?e:`element:${e.element}`}function jw(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 Qa=["element","focus","view","app","home"];function ws(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 Mw(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=Us(r.action,t.bindings,t.platform);if(s)for(const a of ul(r.action.scope)){if(!ws(a,t,r.ownerShardId))continue;const o=Za(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 Dw(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 Lw(e){return e instanceof Element?e.closest("[data-sh3-passthrough-modifiers]")!==null:!1}function zw(e){return/(?:^|\+)(?:Ctrl|Alt|Meta)\+/.test(e)}function Ow(e){const t=Mw(e.entries,e.state),n=new Map(e.entries.map(r=>[r.action.id,r]));for(const r of Qa){const s=t[r].get(e.shortcut);if(!s)continue;const a=n.get(s);if(a)return Dw(e.target)&&!a.action.allowInInputs&&!(Lw(e.target)&&zw(e.shortcut))?null:(e.runAction(s,{action:{id:a.action.id,label:Wt(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 Nw(e){const t=e.action.disabled;return typeof t=="function"?!!t():!!t}function qw(e){const t=e.action.scope;return Array.isArray(t)?t[0]:t}function dl(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}=Rw(a.action,t.bindings,t.platform),c=Hs(a.action.scope,t,a.ownerShardId),u=typeof a.action.run=="function",d=c!==null&&u&&!Nw(a),f=d?c:qw(a),h={id:a.action.id,label:Wt(a.action),effectiveShortcut:o,bindingSource:l,scope:f,scopeBadge:yf(f),group:a.action.group,icon:a.action.icon,ownerShardId:a.ownerShardId,paletteItem:a.action.paletteItem!==!1,contextItem:a.action.contextItem!==!1,active:d};d?n[Za(c)].push(h):r.push(h)}return[...Qa.flatMap(a=>n[a]),...r]}function Bw(e,t){return dl(e,t).filter(n=>n.active)}let Gt=F(null);function Ks(){return i(Gt)}function $a(e){return{get(){return i(Gt)},set(t){x(Gt,{type:t.type,ref:t.ref,ownerShardId:e},!0)},clear(){if(i(Gt)){if(i(Gt).ownerShardId!==e){console.warn(`[sh3] Shard "${e}" tried to clear selection owned by "${i(Gt).ownerShardId}". Ignoring.`);return}x(Gt,null)}}}}function wf(e){i(Gt)&&i(Gt).ownerShardId===e&&x(Gt,null)}function Vw(){x(Gt,null)}const Ea=new Map,fl=new Map,kf=new Set;function Fw(e){kf.add(e)}function Uw(e,t,n){if(Ea.has(e))throw new Error(`View "${e}" is already registered`);Ea.set(e,t),n!==void 0&&fl.set(e,n);for(const r of kf)r(e,t)}function xf(e){return Ea.get(e)}function Tc(e){return fl.get(e)}function Sf(e){Ea.delete(e),fl.delete(e)}const zr=new Map;function Hw(e,t,n){if(zr.has(e))throw new Error(`Verb "${e}" is already registered`);zr.set(e,{verb:t,shardId:n})}function Ia(e){return zr.get(e)?.verb}function Ef(e){zr.delete(e)}function vl(){return Array.from(zr.values()).map(e=>e.verb).sort((e,t)=>e.name.localeCompare(t.name))}function If(){return Array.from(zr.values()).map(e=>({...e}))}function Or(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 hl(e,t){if(ao(e.docked,t))return{kind:"docked"};for(const n of e.floats)if(ao(n.content,t))return{kind:"float",floatId:n.id};return null}function ao(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(ao(n,t))return!0;return!1}function ei(e,t){const n=Or(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 Kw(e,t,n){const r=Math.max(0,Math.min(n,e.tabs.length));e.tabs.splice(r,0,t),e.activeTab=r}function Ww(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 Rc(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 Yw(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 Af(e,t,n,r){const s=ks(e,t);if(!s||Cf(e,t))return;if(t.length===0){const u=Yw(s),d=Rc(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=Rc(s,n,r),o=t.slice(0,-1),l=t[t.length-1],c=ks(e,o);!c||c.type!=="split"||(c.children[l]=a)}function ks(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 Cf(e,t){if(t.length===0)return!1;const n=ks(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=Tf(e,null,0)}function Tf(e,t,n){if(e.type==="split"){let r=!1;for(let s=0;s<e.children.length;s++)Tf(e.children[s],e,s)&&(r=!0);for(let s=e.children.length-1;s>=0;s--){const a=e.children[s];a.type==="tabs"&&a.tabs.length===0&&!a.persistent&&!e.fixed?.[s]&&(e.children.splice(s,1),e.sizes.splice(s,1),e.pinned&&e.pinned.splice(s,1),e.collapsed&&e.collapsed.splice(s,1),e.fixed&&e.fixed.splice(s,1),r=!0)}if(e.children.length<=1&&t)return e.children.length===1?t.children[n]=e.children[0]:(t.children.splice(n,1),t.sizes.splice(n,1),t.pinned&&t.pinned.splice(n,1),t.collapsed&&t.collapsed.splice(n,1)),!0;if(e.children.length===1&&!t){const s=e.children[0],a=e;return delete a.direction,delete a.sizes,delete a.pinned,delete a.collapsed,delete a.children,Object.assign(a,s),!0}return r}return e.type==="tabs",!1}const Mn=new Map,oa=new Set;function Gw(e,t){for(const[n,r]of Mn.entries()){if(r.viewId!==e||r.handle!==void 0)continue;const s={slotId:n,viewId:e,label:r.label,meta:r.meta,setDirty(a){ti[n]=a},location(){return hl(Tt(),n)}};queueMicrotask(()=>{if(Mn.has(n)&&r.handle===void 0&&(r.handle=t.mount(r.host,s),(r.handle?.closable||n.startsWith("float:"))&&(ni[n]=!0),r.handle?.onResize)){const a=r.handle.onResize.bind(r.handle);r.resizeObserver=new ResizeObserver(o=>{for(const l of o){const c=l.contentRect;a(Math.round(c.width),Math.round(c.height))}}),r.resizeObserver.observe(r.host)}})}}Fw(Gw);const ti=le({}),ni=le({});function Xw(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",_f(`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?xf(t):void 0,c={slotId:e,viewId:t??"",label:n,meta:r,setDirty(u){ti[e]=u},location(){return hl(Tt(),e)}};if(o.handle=l?.mount(s,c),(o.handle?.closable||e.startsWith("float:"))&&(ni[e]=!0),o.handle?.onResize){const u=o.handle.onResize.bind(o.handle);o.resizeObserver=new ResizeObserver(d=>{for(const f of d){const h=f.contentRect;u(Math.round(h.width),Math.round(h.height))}}),o.resizeObserver.observe(s)}}),o}function pl(e,t,n,r){oa.delete(e);let s=Mn.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",_f(`focus:${t}`))):(s.host.removeAttribute("data-sh3-view"),s.host.removeAttribute("data-sh3-scope"))):(s=Xw(e,t,n,r),Mn.set(e,s)),s.refcount++,s.host}function ml(e,t){const n=Mn.get(e);if(n){if(n.refcount--,n.refcount>0){t&&n.host.parentNode===t&&n.host.remove();return}oa.add(e),queueMicrotask(()=>{if(!oa.has(e))return;oa.delete(e);const r=Mn.get(e);!r||r.refcount>0||(r.resizeObserver?.disconnect(),r.handle?.unmount(),r.cancelPendingMount(),r.host.remove(),Mn.delete(e),delete ti[e],delete ni[e])})}}function Rf(e){const t=io.get(e);return t||Mn.get(e)?.handle}function Jw(e){return ti[e]??!1}function Zw(e){return io.has(e)?!!io.get(e).closable:ni[e]??!1}const io=new Map;function Pf(e){if(!e||typeof e!="object")return!1;const t=e.type;return t==="split"||t==="tabs"||t==="slot"}function Qw(e){if(!e||typeof e!="object")return!1;const t=e;return Pf(t.docked)&&Array.isArray(t.floats)}function $w(e){return{docked:e,floats:[]}}function e1(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 jf(e){if(Array.isArray(e))return e.map(e1);if(Qw(e))return[{name:"default",variants:{default:e}}];if(Pf(e))return[{name:"default",variants:{default:$w(e)}}];throw new Error("normalizeInitialLayout: input is not a LayoutNode, LayoutTree, or LayoutPreset[]")}function Pc(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 bl(e){const t=Pc(e.docked);for(const n of e.floats)t.push(...Pc(n.content));return t}$i("workspace","__shell__");const t1={type:"slot",slotId:"sh3core.home",viewId:"sh3core:home"},oo=le({docked:t1,floats:[]});let Fe=F(null),Ws=F("home");function n1(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 r1(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 s1(e){if(i(Fe))throw new Error(`Layout manager cannot attach app "${e.manifest.id}": app "${i(Fe).appId}" is still attached`);const t=`__sh3core__:app:${e.manifest.id}`,n=jf(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=Ly("workspace",t),a=n1(s);(a&&a.layoutVersion!==e.manifest.layoutVersion||s&&!a)&&$i("workspace",t);const l=Ga(t,{workspace:r}).workspace;x(Fe,{appId:e.manifest.id,proxy:l,heldSlotIds:[]},!0),C_(l)}function a1(){if(!i(Fe))throw new Error("acquireAppSlotHolds: no app attached");if(i(Fe).heldSlotIds.length>0)return;const e=r1(i(Fe).proxy),t=bl(e);for(const{slotId:n,viewId:r,label:s,meta:a}of t)pl(n,r,s,a),i(Fe).heldSlotIds.push(n)}function i1(){if(!i(Fe))throw new Error("resetActivePresetToDefault: no app attached");const e=zn(i(Fe).appId);if(!e)throw new Error(`resetActivePresetToDefault: attached app "${i(Fe).appId}" not in registry`);const t=jf(e.initialLayout),n=i(Fe).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(Fe).heldSlotIds)ml(l);i(Fe).heldSlotIds=[];const a=structuredClone(s.variants.default);n.presets[n.activePreset].default=a;const o=bl(a);for(const{slotId:l,viewId:c,label:u,meta:d}of o)pl(l,c,u,d),i(Fe).heldSlotIds.push(l)}function Mf(){if(i(Fe)){T_();for(const e of i(Fe).heldSlotIds)ml(e);x(Fe,null)}}function Df(){x(Ws,"home")}function jc(){if(!i(Fe))throw new Error("Cannot switchToApp: no app is attached");x(Ws,"app")}const la=H(()=>{if(i(Ws)==="app"&&i(Fe)){const e=i(Fe).proxy,t=e.activePreset,n=e.presets[t];if(!n)throw new Error(`AppLayoutBlob active preset "${t}" not found in presets map`);return n.default}return oo});function Tt(){return i(la)}function Lf(){return i(Ws)}const pn={get root(){return i(la).docked},get tree(){return i(la)},get floats(){return i(la).floats}};function o1(e){oo.docked=e,oo.floats=[],x(Ws,"home")}let zf=F(null),Of=F(le(new Set)),ca=F(le(new Set)),Nf=F(le(new Set)),qf=F(null),Bf=F(le({}));const l1=Tw(),lo=new Set;function Yr(){for(const e of lo)try{e()}catch(t){console.error("[sh3] onActiveChange listener threw",t)}}function c1(e){return lo.add(e),()=>{lo.delete(e)}}function u1(){Yr()}function Aa(e,t){x(zf,e,!0),x(Of,new Set(t),!0),Yr()}function d1(){const e=bl(pn.tree),t=new Set;for(const n of e)n.viewId!==null&&t.add(n.viewId);x(Nf,t,!0),Yr()}function Vf(e){x(qf,e,!0),Yr()}function xs(e){x(Bf,{...e},!0),Yr()}function Ft(){return{activeAppId:i(zf),activeAppRequiredShards:i(Of),autostartShards:i(ca),mountedViewIds:i(Nf),focusedViewId:i(qf),selection:Ks(),bindings:i(Bf),platform:l1}}function f1(e){i(ca).has(e)||(x(ca,new Set([...i(ca),e]),!0),Yr())}var v1=A('<div class="sh3-ctx-sep svelte-1667pfa" role="separator"></div>'),h1=A('<span class="sh3-ctx-chevron svelte-1667pfa">▸</span>'),p1=A('<span class="sh3-ctx-shortcut svelte-1667pfa"> </span>'),m1=A('<button role="menuitem"><span class="sh3-ctx-check svelte-1667pfa"> </span> <span class="sh3-ctx-label svelte-1667pfa"> </span> <!></button>'),b1=A("<!> <!>",1),g1=A('<div class="sh3-context-menu svelte-1667pfa" role="menu" tabindex="0"></div>');function Ca(e,t){ie(t,!0);const n=H(()=>t.sections.flatMap(c=>c.items));let r=F(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")x(r,s(i(r),1),!0),c.preventDefault();else if(c.key==="ArrowUp")x(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 h=(d+f)%i(n).length,b=i(n)[h];if(!b.disabled&&b.label.toLowerCase().startsWith(u)){x(r,h);break}}}}function o(c){c.disabled||(t.onInvoke(c.id),c.submenu||t.onDismiss())}var l=g1();Fr(l,!0),pe(l,23,()=>t.sections,c=>c.id,(c,u,d)=>{var f=b1(),h=he(f);{var b=_=>{var y=v1();k(_,y)};K(h,_=>{i(d)>0&&_(b)})}var S=w(h,2);pe(S,17,()=>i(u).items,_=>_.id,(_,y)=>{const E=H(()=>i(n).indexOf(i(y)));var g=m1();let m;var I=p(g),P=p(I,!0);v(I);var T=w(I,2),M=p(T,!0);v(T);var L=w(T,2);{var j=C=>{var O=h1();k(C,O)},D=C=>{var O=p1(),q=p(O,!0);v(O),N(()=>z(q,i(y).shortcut)),k(C,O)};K(L,C=>{i(y).submenu?C(j):i(y).shortcut&&C(D,1)})}v(g),N(()=>{m=de(g,1,"sh3-ctx-item svelte-1667pfa",null,m,{"sh3-ctx-active":i(E)===i(r),"sh3-ctx-disabled":i(y).disabled}),ne(g,"aria-disabled",i(y).disabled||void 0),z(P,i(y).checked?"✓":""),z(M,i(y).label)}),Re("pointerenter",g,()=>{i(y).disabled||x(r,i(E),!0)}),U("click",g,()=>o(i(y))),k(_,g)}),k(c,f)}),v(l),U("keydown",l,a),k(e,l),oe()}ce(["keydown","click"]);function Ff(e,t){ie(t,!0);const n=H(()=>t.model.tiers.map(r=>({id:`tier:${r.tier}`,items:r.items.map(s=>({...s,icon:void 0}))})));Ca(e,{get sections(){return i(n)},get onInvoke(){return t.onInvoke},get onDismiss(){return t.onClose}}),oe()}function Mc(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function Uf(e,t){return{id:e.action.id,label:Wt(e.action),shortcut:Us(e.action,t.bindings,t.platform),group:e.action.group??"",icon:e.action.icon,checked:Mc(e.action.checked),disabled:Mc(e.action.disabled),submenu:e.action.submenu===!0}}function Hf(e,t,n,r){return ul(e.scope).some(a=>Pw(a,n))?n==="app"||n==="home"||typeof n=="object"&&"element"in n?ws(n,r,t):!0:!1}function Kf(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)||!Hf(a.action,a.ownerShardId,n,t))continue;const o=Hs(a.action.scope,t,a.ownerShardId)??n;s.add(a.action.id),r[Za(o)].push(Uf(a,t))}return{tiers:Qa.map(a=>({tier:a,items:r[a]})).filter(a=>a.items.length>0)}}function y1(e,t,n,r){const s=[],a=new Set;for(const o of e)o.action.submenuOf===n&&(a.has(o.action.id)||Hf(o.action,o.ownerShardId,r,t)&&(a.add(o.action.id),s.push(Uf(o,t))));return s}function _1(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 w1(e,t,n){const r=[];for(const a of e){if(t===""&&a.submenuOf!==void 0)continue;const o=_1(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 k1=A('<span class="sh3-palette-badge svelte-1qdcgk6"> </span>'),x1=A('<span class="sh3-palette-shortcut svelte-1qdcgk6"> </span>'),S1=A('<button role="option"><span class="sh3-palette-label svelte-1qdcgk6"> </span> <!> <!></button>'),E1=A('<div class="sh3-palette svelte-1qdcgk6" role="dialog" aria-label="Command palette" aria-modal="true" tabindex="-1"><input class="sh3-palette-input hell-base-input svelte-1qdcgk6" placeholder="Command…"/> <div class="sh3-palette-list svelte-1qdcgk6" role="listbox"></div></div>');function I1(e,t){ie(t,!0);let n=$(t,"prefill",3,""),r=F(le(n())),s=F(0);const a=H(()=>w1(t.candidates,i(r),t.recency));xe(()=>{i(s)>=i(a).length&&x(s,0)});function o(d){d.key==="ArrowDown"?(x(s,Math.min(i(s)+1,Math.max(0,i(a).length-1)),!0),d.preventDefault()):d.key==="ArrowUp"?(x(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=E1(),c=p(l);ge(c),Fr(c,!0);var u=w(c,2);pe(u,23,()=>i(a),d=>d.id,(d,f,h)=>{var b=S1();let S;var _=p(b),y=p(_,!0);v(_);var E=w(_,2);{var g=P=>{var T=k1(),M=p(T);v(T),N(()=>z(M,`[${i(f).scopeBadge??""}]`)),k(P,T)};K(E,P=>{i(f).scopeBadge&&P(g)})}var m=w(E,2);{var I=P=>{var T=x1(),M=p(T,!0);v(T),N(()=>z(M,i(f).shortcut)),k(P,T)};K(m,P=>{i(f).shortcut&&P(I)})}v(b),N(()=>{S=de(b,1,"sh3-palette-item svelte-1qdcgk6",null,S,{"sh3-palette-active":i(h)===i(s)}),ne(b,"aria-selected",i(h)===i(s)),z(y,i(f).label)}),Re("pointerenter",b,()=>x(s,i(h),!0)),U("click",b,()=>{t.onInvoke(i(f).id),t.onClose()}),k(d,b)}),v(u),v(l),U("keydown",l,o),Se(c,()=>i(r),d=>x(r,d)),k(e,l),oe()}ce(["keydown","click"]);function A1(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function C1(e,t,n={}){const r=[],s=new Set,a=n.filter?.submenuOf;for(const o of e){if(o.action.paletteItem===!1||A1(o.action.disabled)||a!==void 0&&o.action.submenuOf!==a||s.has(o.action.id))continue;const l=Hs(o.action.scope,t,o.ownerShardId);l&&(s.add(o.action.id),r.push({id:o.action.id,label:Wt(o.action),shortcut:Us(o.action,t.bindings,t.platform),scopeBadge:yf(l),submenu:o.action.submenu===!0,submenuOf:a!==void 0?void 0:o.action.submenuOf}))}return r}let Dc=!1;function gl(e){return e?e.closest("[data-sh3-view]")?.getAttribute("data-sh3-view")??null:null}function Wf(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=jw(n.getAttribute("data-sh3-scope")??"");if(s&&!(typeof s=="object"&&"element"in s&&!ws(s,e.state)))return s;const a=n.parentElement;n=a?a.closest("[data-sh3-scope]"):null}const r=gl(t);if(r)return`focus:${r}`}return e.state.activeAppId?"app":"home"}function T1(e,t){const n=et().find(r=>r.action.id===e);if(!(!n||typeof n.action.run!="function"))try{n.action.run(t)}catch(r){console.error(`[sh3] action "${e}" threw:`,r)}}function yl(e,t){const n=et(),r=n.find(l=>l.action.id===e);if(!r)return Promise.reject(new Error(`action "${e}" not registered`));const s=Ft(),a=dl(n,s).find(l=>l.id===e);if(!a||!a.active)return 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:Wt(r.action)},appId:s.activeAppId,viewId:s.focusedViewId??void 0,selection:s.selection??void 0,invokedVia:"programmatic",dispatch:Gr});return Promise.resolve(l).then(()=>{})}catch(l){return Promise.reject(l)}}function Gr(e){yl(e).catch(t=>{console.error(`[sh3] ctx.dispatch("${e}"):`,t)})}function R1(e){const t=gl(e.target);Vf(t)}function P1(e){queueMicrotask(()=>{const t=gl(document.activeElement);Vf(t)})}function j1(e){return e instanceof Element?e.closest('[data-sh3-context-menu="native"]')!==null:!1}function Yf(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=y1(et(),t,e,r);qe(Ca,{target:a,props:{sections:[{id:`submenu:${e}`,items:c}],onInvoke:u=>{const d=et().find(f=>f.action.id===u);if(!(!d||typeof d.action.run!="function")){try{d.action.run({action:{id:u,label:Wt(d.action)},appId:t.activeAppId,viewId:t.focusedViewId??void 0,selection:t.selection??void 0,invokedVia:"context-menu",dispatch:Gr})}catch(f){console.error(`[sh3] context-menu submenu action "${u}" threw:`,f)}n.close()}},onDismiss:()=>n.close()}})}function M1(e){if(j1(e.target))return;const t=et(),n=Ft(),r=Wf({event:e,state:n}),s=Kf(t,n,r);if(s.tiers.length===0)return;e.preventDefault();const a=sn.popup.show(Ff,{anchor:{x:e.clientX,y:e.clientY}},{model:s,onInvoke:o=>{const l=et().find(c=>c.action.id===o);if(l){if(l.action.submenu===!0){Yf(o,n,a,r);return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:Wt(l.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:Gr})}catch(c){console.error(`[sh3] context-menu action "${o}" threw:`,c)}}},onClose:()=>a.close()})}function D1(e){const t=Cw(e);if(!t)return;const n=et(),r=Ft();Ow({target:e.target,shortcut:t,state:r,entries:n,runAction:T1,dispatch:Gr})&&e.preventDefault()}function co(){Dc||(Dc=!0,document.addEventListener("keydown",D1),document.addEventListener("focusin",R1),document.addEventListener("focusout",P1),document.addEventListener("contextmenu",M1))}function _l(e){const t=et(),n=Ft(),r=Wf({explicit:e.scope,state:n}),s=Kf(t,n,r);if(s.tiers.length===0)return;const a=sn.popup.show(Ff,{anchor:{x:e.x,y:e.y}},{model:s,onInvoke:o=>{const l=et().find(c=>c.action.id===o);if(l){if(l.action.submenu===!0){Yf(o,n,a,r);return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:Wt(l.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"context-menu",dispatch:Gr})}catch(c){console.error(`[sh3] context-menu action "${o}" threw:`,c)}}},onClose:()=>a.close()})}const L1=20;let uo=[];function z1(e){uo=[e,...uo.filter(t=>t!==e)].slice(0,L1)}function ri(e){const t=et(),n=Ft(),r=C1(t,n,{filter:e?.filter}),s=typeof document<"u"&&document.activeElement instanceof HTMLElement?document.activeElement:null,a=sn.modal.open(I1,{candidates:r,recency:uo,prefill:e?.prefill??"",onInvoke:o=>{const l=et().find(c=>c.action.id===o);if(l){if(z1(o),l.action.submenu===!0&&typeof l.action.run!="function"){a.close(),ri({filter:{submenuOf:o}});return}if(typeof l.action.run=="function")try{l.action.run({action:{id:o,label:Wt(l.action)},appId:n.activeAppId,viewId:n.focusedViewId??void 0,selection:n.selection??void 0,invokedVia:"palette",dispatch:Gr})}catch(c){console.error(`[sh3] palette action "${o}" threw:`,c)}}},onClose:()=>a.close()},{dismissOnBackdrop:!0});if(s){const o=a.close;a.close=()=>{o(),queueMicrotask(()=>{(document.activeElement===document.body||document.activeElement===null)&&s.focus()})}}}const O1=Object.freeze(Object.defineProperty({__proto__:null,attachGlobalListeners:co,dispatchActionProgrammatic:yl,openContextMenu:_l,openPalette:ri},Symbol.toStringTag,{value:"Module"})),Wn=[];let N1=0;function q1(){return`term-${++N1}`}function B1(e){Wn.push(e);let t=!1;return()=>{if(t)return;t=!0;const n=Wn.indexOf(e);n!==-1&&Wn.splice(n,1)}}function V1(){if(Wn.length===0)return{ok:!1,error:"no-terminal"};if(Wn.length===1)return{ok:!0,handle:Wn[0]};let e=null,t=0;for(const n of Wn){const r=n.getFocusStamp();r>0&&r>=t&&(e=n,t=r)}return e===null?{ok:!1,error:"ambiguous"}:{ok:!0,handle:e}}const Lc={"no-terminal":"no terminal open",ambiguous:"multiple terminals open; focus one first","no-active-context":"dispatchToTerminal is not available in this context"};function wl(e){return e.headless?()=>({ok:!1,error:"no-active-context",message:Lc["no-active-context"]}):t=>{const n=V1();return n.ok?(n.handle.dispatch(t),{ok:!0,terminalId:n.handle.id}):{ok:!1,error:n.error,message:Lc[n.error]}}}const F1={async rebind(e,t,n){await Ac(e,t,n),Ft().activeAppId===e&&xs(await Ir(e))},async resetBinding(e,t){await Ac(e,t,void 0),Ft().activeAppId===e&&xs(await Ir(e))},async bindingsFor(e){const t=await Ir(e),n={};for(const[r,s]of Object.entries(t))s!==null&&(n[r]=s);return n},openContextMenu:_l,openPalette:ri,listActive(){return Bw(et(),Ft())},onActiveChange(e){const t=c1(e),n=Ew(()=>{u1()});return()=>{t(),n()}}},sn={state:Ga,modal:Kt,popup:to,toast:vn,float:Ce,presets:M_,conflicts:yw,color:kw,actions:F1,dispatchToTerminal:wl({headless:!1})};function U1(e){return rn[e].list()}function H1(e,t){return rn[e].read(t)}function K1(e,t){rn[e].delete(t)}function W1(e){for(const t of rn[e].list())rn[e].delete(t)}function Gf(){return{list:U1,peek:H1,clear:K1,clearAll:W1}}function vr(e,t,n){return`${e}/${t}/${n}`}function Y1(e,t){return`${e}/${t}/`}const G1="sh3-documents",Dt="docs",X1=2;class J1{#e=null;#t(){return this.#e||(this.#e=new Promise((t,n)=>{const r=indexedDB.open(G1,X1);r.onupgradeneeded=()=>{const s=r.result;s.objectStoreNames.contains(Dt)||s.createObjectStore(Dt)},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(Dt,t).objectStore(Dt),c=n(l);c.onsuccess=()=>s(c.result),c.onerror=()=>a(c.error)})}async read(t,n,r){const s=vr(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=vr(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=vr(t,n,r);await this.#n("readwrite",a=>a.delete(s))}async rename(t,n,r,s){const a=vr(t,n,r),o=vr(t,n,s),l=await this.#t();return new Promise((c,u)=>{let d=!1;const f=l.transaction(Dt,"readwrite"),h=f.objectStore(Dt),b=h.get(a);b.onsuccess=()=>{const S=b.result;if(!S){d=!0,f.abort(),u(new Error(`Document not found at ${r}`));return}const _=h.getKey(o);_.onsuccess=()=>{if(_.result!==void 0){d=!0,f.abort(),u(new Error(`Document already exists at ${s}`));return}const y={...S,lastModified:Date.now()};h.put(y,o),h.delete(a)},_.onerror=()=>u(_.error)},b.onerror=()=>u(b.error),f.oncomplete=()=>c(),f.onerror=()=>{d||u(f.error)},f.onabort=()=>{}})}async list(t,n){const r=Y1(t,n),s=await this.#t();return new Promise((a,o)=>{const c=s.transaction(Dt,"readonly").objectStore(Dt),u=IDBKeyRange.bound(r,r+"￿",!1,!1),d=c.openCursor(u),f=[];d.onsuccess=()=>{const h=d.result;if(h){const b=h.value;f.push({path:h.key.slice(r.length),size:b.size,lastModified:b.lastModified}),h.continue()}else a(f)},d.onerror=()=>o(d.error)})}async exists(t,n,r){const s=vr(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(Dt,"readonly").objectStore(Dt),c=IDBKeyRange.bound(n,n+"￿",!1,!1),u=l.openKeyCursor(c),d=new Set;u.onsuccess=()=>{const f=u.result;if(f){const h=f.key.slice(n.length),b=h.indexOf("/");b>=0&&d.add(h.slice(0,b)),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(Dt,"readonly").objectStore(Dt),c=IDBKeyRange.bound(n,n+"￿",!1,!1),u=l.openCursor(c),d=[];u.onsuccess=()=>{const f=u.result;if(f){const h=f.key.slice(n.length),b=h.indexOf("/");if(b>=0){const S=f.value;d.push({shardId:h.slice(0,b),path:h.slice(b+1),size:S.size,lastModified:S.lastModified})}f.continue()}else s(d)},u.onerror=()=>a(u.error)})}}const Z1="local";let kl=Z1,Xf=new J1;function Jf(){return kl}function ua(){return kl}function fo(){return Xf}function is(e){kl=e}function Zf(e){Xf=e}const Q1=Object.freeze(Object.defineProperty({__proto__:null,__setActiveScope:is,__setDocumentBackend:Zf,getActiveScopeId:Jf,getDocumentBackend:fo,getTenantId:ua},Symbol.toStringTag,{value:"Module"})),ir=le({activeProjectId:null});function Qf(e){if(ir.activeProjectId===e)return;const t=nt.id;ir.activeProjectId=e,Lr.id=null,t&&Zn(()=>Promise.resolve().then(()=>ek),void 0).then(n=>n.unloadApp(t))}const $f=Ga("__sh3core__:last-app",{user:{id:null}});function ev(){return $f.user.id}function Ss(e){$f.user.id=e}function tv(){Ss(null)}const vo=new Map;function $1(){return ir.activeProjectId??Jf()}function Qs(e,t){let n=vo.get(e);if(!n){const r=zn(e),s=$1();n={scopeId:s,state:a=>Ga(`__app__:${e}:scope:${s}`,a),zones:r?.manifest.permissions?.includes(Ya)?Gf():void 0},vo.set(e,n)}return n}async function mn(e,t={}){const n=zn(e);if(!n)throw new Error(`Cannot launch app "${e}": not registered`);if(nt.id&&nt.id!==e)xl(nt.id,t.skipSwitchToHome);else if(nt.id===e){for(const r of n.manifest.requiredShards){const s=an.get(r),a=zk(r);s&&a&&s.resume?.(a)}n.resume?.(Qs(e)),jc(),n.onAppReady?.(Qs(e)),t.skipLastApp||Ss(e),Lr.id=e,Aa(e,new Set(n.manifest.requiredShards??[])),Ir(e).then(xs);return}for(const r of n.manifest.requiredShards)if(!an.has(r))throw new Error(`App "${e}" requires shard "${r}" which is not registered`);s1(n);try{for(const r of n.manifest.requiredShards)await Tl(r,{phase:"launch"})}catch(r){Mf();try{vn.notify(`Couldn't launch "${n.manifest.label??e}": ${r instanceof Error?r.message:String(r)}`,{level:"error",duration:6e3})}catch{}throw r}a1(),n.activate?.(Qs(e)),nt.id=e,Aa(e,new Set(n.manifest.requiredShards??[])),Ir(e).then(xs),jc(),n.onAppReady?.(Qs(e)),t.skipLastApp||Ss(e),Lr.id=e}function xl(e,t=!1){if(nt.id!==e)return;const n=zn(e);if(n){n.deactivate?.(),t||Df(),Mf();for(const r of n.manifest.requiredShards){const s=an.get(r);s&&(s.autostart||ui(r))}nt.id=null,Aa(null,new Set),Vw(),Zd(),Ir("sh3.home").then(xs),vo.delete(e)}}function si(e){Ln.has(e)&&(nt.id===e&&(xl(e),Ss(null)),Ln.delete(e))}async function Xr(){const e=nt.id?zn(nt.id):null;if(e){for(const t of e.manifest.requiredShards){const n=an.get(t);if(n?.suspend&&await n.suspend()===!1)return!1}if(e.suspend&&await e.suspend()===!1)return!1}return Zd(),Df(),Aa(null,new Set),Ss(null),!0}const ek=Object.freeze(Object.defineProperty({__proto__:null,clearLastApp:tv,launchApp:mn,readLastApp:ev,returnToHome:Xr,unloadApp:xl,unregisterApp:si},Symbol.toStringTag,{value:"Module"}));function nv(){return{root:Tt(),source:Lf()}}function tk(e){const t=Tt().docked,n=El(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 nk(e){const t=Tt();return ii(t.docked,n=>n.slotId===e)?!0:rv(t,n=>n.slotId===e)}function ai(e){const t=Tt();return ii(t.docked,n=>n.viewId===e)?!0:rv(t,n=>n.viewId===e)}function ii(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(ii(n,t))return!0}return!1}function rv(e,t){for(const n of e.floats)if(ii(n.content,t))return Ce.focus(n.id),!0;return!1}function rk(e,t){return sv(e,t,!0)}function sk(e,t){return sv(e,t,!1)}function sv(e,t,n){const r=Tt().docked,s=ks(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 Sl(e){const t=Tt(),n=t.docked;if(!Or(n,e))return ak(t,e);const a=Rf(e)?.closable;return!a||typeof a=="object"&&(!await a.canClose()||!Or(n,e))?!1:(ei(n,e),xr(n),!0)}async function ak(e,t){for(const n of e.floats){if(!Or(n.content,t))continue;const a=Rf(t)?.closable;if(typeof a=="object"&&(!await a.canClose()||!Or(n.content,t)))return!1;ei(n.content,t);const o=n.content.type==="tabs"?n.content:null;return(!o||o.tabs.length===0)&&Ce.close(n.id),!0}return!1}function av(e){const t=Tt(),n=Or(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 ei(t.docked,e),xr(t.docked),Ce.open(s,{title:a,meta:o})}function iv(e){const n=Tt().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 Ce.close(e),!1;const a=s.tabs[s.activeTab??0]??s.tabs[0],o=Il({slotId:a.slotId,viewId:a.viewId,label:a.label,meta:a.meta});return o&&Ce.close(e),o}function El(e){if(e.type==="tabs")return e;if(e.type==="split")for(const t of e.children){const n=El(t);if(n)return n}return null}function ov(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=ov(e.children[n],[...t,n]);if(r)return r}return null}function Il(e){const t=Tt().docked;if(ai(e.viewId??""))return!0;const n=El(t);if(n)return n.tabs.push(e),n.activeTab=n.tabs.length-1,!0;const r=ov(t);return r?(Af(t,r,e,"right"),!0):!1}function lv(e){return hl(Tt(),e)}let Jr=F(null),bn=F(null),Zr=F(!1),oi="",ho=null;function zc(e,t){oi=e,ho=t.auth,x(Jr,t.user,!0),x(bn,t.session,!0),x(Zr,!t.session&&!t.user,!0)}async function cv(e,t){try{const n=await fetch(`${oi}/api/auth/login`,{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",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 x(Jr,r.user,!0),x(bn,r.session,!0),x(Zr,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function ik(e,t,n){try{const r=await fetch(`${oi}/api/auth/register`,{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",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 x(Jr,s.user,!0),x(bn,s.session,!0),x(Zr,!1),{ok:!0}}catch{return{ok:!1,error:"Network error"}}}async function ok(){try{await fetch(`${oi}/api/auth/logout`,{method:"POST",credentials:"include"})}catch{}if(ho?.required&&!ho.guestAllowed){window.location.reload();return}x(Jr,null),x(bn,null),x(Zr,!0)}function lk(){x(Jr,{id:"local",username:"local",displayName:"Local Owner",role:"admin",createdAt:"",updatedAt:""},!0),x(bn,{token:"local",userId:"local",role:"admin",expiresAt:1/0},!0),x(Zr,!1)}function ck(){return i(bn)?.token==="local"}function bt(){return i(bn)?.role==="admin"}function po(){return i(bn)!==null}function uv(){return i(Zr)}function Nr(){return i(Jr)}function li(){return i(bn)?`Bearer ${i(bn).token}`:null}const Oc=["ephemeral","session","workspace","user"];function dv(e){return e.type==="tabs"?e.tabs.filter(t=>t.viewId!==null):e.type==="split"?e.children.flatMap(dv):e.viewId!==null?[{slotId:e.slotId,viewId:e.viewId,label:e.viewId}]:[]}function fv(e){return{listApps(){return Wr().map(t=>({id:t.id,label:t.label}))},getActiveApp(){const t=rl();return t?{id:t.id,label:t.label}:null},launchApp(t){mn(t)},listShards(){return Array.from(an.values()).map(t=>({id:t.manifest.id,label:t.manifest.label,version:t.manifest.version}))},listViewsInCurrentLayout(){try{const{root:t}=nv();return dv(t.docked).map(n=>({slotId:n.slotId,viewId:n.viewId??"",label:n.label}))}catch{return[]}},openViewInCurrentLayout(t){try{if(ai(t))return{ok:!0};const n=Es().find(r=>r.viewId===t);if(n){const r=`standalone:${t}:${Date.now()}`;return Il({slotId:r,viewId:t,label:n.label})?{ok:!0}:{ok:!1,error:`could not dock "${t}" — no available slot`}}return{ok:!1,error:`view "${t}" not found in current layout`}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}},listStandaloneViews(){return Es()},popoutSlot(t){try{const n=av(t);return n?{ok:!0,floatId:n}:{ok:!1,error:`slot "${t}" not found in docked tree`}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}},dockFloat(t){try{return iv(t)?{ok:!0}:{ok:!1,error:`float "${t}" not found or has no dockable content`}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}},locateSlot(t){try{return lv(t)}catch{return null}},listFloats(){return Ce.list().map(t=>{const n=t.content.type==="tabs"?t.content:null,r=n?n.tabs[n.activeTab??0]??n.tabs[0]:null;return{floatId:t.id,viewId:r?.viewId??null,label:t.title??r?.label??t.id}})},closeSlot(t){return Sl(t),{ok:!0}},listZones(t){if(!e)return[];const n=new Map;for(const r of Oc)for(const s of e.list(r)){if(t&&s!==t)continue;let a=n.get(s);a||(a=new Set,n.set(s,a)),a.add(r)}return Array.from(n.entries()).map(([r,s])=>({shardId:r,zones:Array.from(s)}))},readZone(t,n){return!e||!Oc.includes(n)?null:e.peek(n,t)??null},whoAmI(){return{userId:Nr()?.id??"guest",admin:bt()}},setMode(t){return!1},listModes(){return[]},getMode(){return{id:"sh3",label:"sh3"}},dispatchToTerminal:wl({headless:!0})}}const uk=2e3;let mo=0;function dk(){return`e${++mo}`}function fk(e){if(e.length<2||e.charCodeAt(0)!==101)return NaN;const t=Number(e.slice(1));return Number.isInteger(t)?t:NaN}class vk{#e;get entries(){return i(this.#e)}set entries(t){x(this.#e,t,!0)}constructor(t=uk){this.#e=F(le([])),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:dk()};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=fk(r.id);Number.isFinite(s)&&s>n&&(n=s)}n>mo&&(mo=n),this.entries.splice(0,this.entries.length,...t)}}const Nc=[1e3,2e3,5e3,1e4];class vv{#e;get connected(){return i(this.#e)}set connected(t){x(this.#e,t,!0)}#t;get cwd(){return i(this.#t)}set cwd(t){x(this.#t,t,!0)}#n;get tenantRoot(){return i(this.#n)}set tenantRoot(t){x(this.#n,t,!0)}#s;get env(){return i(this.#s)}set env(t){x(this.#s,t,!0)}#r;get historyByMode(){return i(this.#r)}set historyByMode(t){x(this.#r,t,!0)}#i;get lastSeq(){return i(this.#i)}set lastSeq(t){x(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=F(!1),this.#t=F(""),this.#n=F(""),this.#s=F(le({})),this.#r=F(le({})),this.#i=F(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=Nc[Math.min(this.backoffIndex,Nc.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 hv{constructor(t=""){this.base=t}async list(t){return(await(await this.#e("/api/fs/list",t)).json()).entries}async stat(t){return await(await this.#e("/api/fs/stat",t)).json()}async read(t){return await(await this.#e("/api/fs/read",t)).text()}async#e(t,n){const r=`${this.base}${t}?path=${encodeURIComponent(n)}`,s=await fetch(r,{credentials:"include"});if(!s.ok){let a=`HTTP ${s.status}`;try{const o=await s.json();o.error&&(a=o.error)}catch{}throw new Error(a)}return s}}function hk(e){const t=Ia(e);if(!t)return null;const r=If().find(s=>s.verb===t);return r?{verb:r.verb,shardId:r.shardId}:null}async function pv(e,t,n,r){if(!or.has(e))throw new Error(`unknown shard: ${e}`);const s=Ia(t);if(!s)throw new Error(`unknown verb: ${t}`);if(!s.programmatic)throw new Error(`verb "${t}" is not programmatic`);const a=[],o=mk(a),l=await pk({sinkScrollback:o,opts:r});return{result:await s.run(l,n),scrollback:a}}async function pk(e){const t={shell:fv(),scrollback:e.sinkScrollback,session:bk(),cwd:"/",fs:new hv,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=hk(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 mk(e){let t=0;return{entries:e,push(r){const s={...r,id:`runverb-${++t}`};e.push(s)},clear(){e.length=0}}}function bk(){return new vv("")}class gk{#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 fetch(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 fetch(a,{method:"PUT",headers:o,body:s,credentials:"include"});if(!l.ok)throw new Error(`Document write failed: ${l.status}`)}async delete(t,n,r){const s=`${this.#e}/api/docs/${t}/${n}/${r}`,a=await fetch(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 fetch(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 fetch(s,{method:"HEAD",credentials:"include"})).ok}async listAllShards(t){const n=`${this.#e}/api/docs/${t}/_shards`,r=await fetch(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 fetch(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 fetch(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 fetch(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 fetch(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 fetch(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 yk{#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 Rn=new yk,_k=1e3;function wk(e,t,n,r){const s=new Set,a=new Set;function o(u){return!r.extensions||r.extensions.length===0?!0:r.extensions.some(d=>u.endsWith(d))}function l(u,d){Rn.emit({type:u,path:d,tenantId:e,shardId:t})}const c={async list(){const u=await n.list(e,t);return!r.extensions||r.extensions.length===0?u:u.filter(d=>o(d.path))},async read(u){const d=await n.read(e,t,u);return d===null?null:typeof d=="string"?d:new TextDecoder().decode(d)},async write(u,d){const f=await n.exists(e,t,u);await n.write(e,t,u,d),l(f?"update":"create",u)},async delete(u){const d=await n.exists(e,t,u);await n.delete(e,t,u),d&&l("delete",u)},async rename(u,d){if(!o(d))throw new Error(`Cannot rename to ${d}: violates handle extensions filter`);for(const f of s)if(f.path===u)throw new Error(`Cannot rename: active autosave on ${u}; flush and dispose first`);await n.rename(e,t,u,d),Rn.emit({type:"rename",path:d,oldPath:u,tenantId:e,shardId:t})},async exists(u){return n.exists(e,t,u)},async status(u){if(!n.readMeta)throw new Error("Backend does not support status()");return n.readMeta(e,t,u)},async resolveConflict(u,d){if(!n.resolve)throw new Error("Backend does not support resolveConflict()");if(typeof d!="string"&&!(typeof d=="object"&&"origin"in d))throw new Error("choice must be a string or { origin } object");return n.resolve(e,t,u,d)},async readBranch(u,d){if(!n.readBranch)throw new Error("Backend does not support readBranch()");return n.readBranch(e,t,u,d)},watch(u){const d=Rn.subscribe(f=>{f.tenantId===e&&f.shardId===t&&o(f.path)&&u(f)});return a.add(d),()=>{d(),a.delete(d)}},autosave(u,d){const f=new kk(c,u,d?.debounceMs??_k);return s.add(f),f},async dispose(){const u=[...s].map(d=>d.dispose());await Promise.all(u),s.clear();for(const d of a)d();a.clear()}};return c}class kk{#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 xk="sync:peer",Sk="sync:policy";let Qr="";function mv(e){Qr=e}async function Ek(e){const t=await fetch(`${Qr}/api/env-state/${encodeURIComponent(e)}`);return t.ok?await t.json():(console.warn(`[sh3] Failed to fetch env state for "${e}": HTTP ${t.status}`),{})}async function Ik(e,t){if(!bt())throw new Error("Cannot update env state: not elevated to admin");const n=li(),r={"Content-Type":"application/json"};n&&(r.Authorization=n);const s=await fetch(`${Qr}/api/env-state/${encodeURIComponent(e)}`,{method:"PUT",headers:r,body:JSON.stringify(t)});if(!s.ok){const a=await s.json().catch(()=>({}));throw new Error(`Env state update failed: HTTP ${s.status} — ${a.error??"unknown"}`)}}async function Al(e,t,n){if(!bt())throw new Error("Cannot install: not elevated to admin");const r=li(),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 fetch(`${Qr}/api/packages/install`,{method:"POST",headers:a,body:s});if(!o.ok){let l={};try{l=await o.json()}catch{}return{ok:!1,error:typeof l.error=="string"?l.error:`HTTP ${o.status}`,code:typeof l.code=="string"?l.code:void 0,missing:Array.isArray(l.missing)?l.missing:void 0}}return{ok:!0}}async function Ak(e){if(!bt())throw new Error("Cannot uninstall: not elevated to admin");const t=li(),n={"Content-Type":"application/json"};t&&(n.Authorization=t);const r=await fetch(`${Qr}/api/packages/uninstall`,{method:"POST",headers:n,body:JSON.stringify({id:e})});if(!r.ok){const s=await r.json().catch(()=>({}));throw new Error(`Uninstall failed: HTTP ${r.status} — ${s.error??"unknown"}`)}}async function Ck(){const e=await fetch(`${Qr}/api/packages`);return e.ok?await e.json():[]}const bv="documents:browse",gv="documents:read",yv="documents:write";function Tk(e,t,n={canRead:!1,canWrite:!1}){const r={listDocuments:()=>t.listAllDocuments(e),listShards:()=>t.listAllShards(e),watchDocuments:s=>Rn.subscribe(a=>{a.tenantId===e&&s(a)})};return n.canRead&&(r.readFrom=(s,a)=>t.read(e,s,a),r.statusFrom=async(s,a)=>t.readMeta?t.readMeta(e,s,a):null,r.readBranchFrom=async(s,a,o)=>t.readBranch?t.readBranch(e,s,a,o):null),n.canWrite&&(r.writeTo=async(s,a,o)=>{const l=await t.exists(e,s,a);await t.write(e,s,a,o),Rn.emit({type:l?"update":"create",path:a,tenantId:e,shardId:s})},r.resolveConflictFrom=async(s,a,o)=>{if(!t.resolve)throw new Error("Backend does not support resolveConflict");await t.resolve(e,s,a,o),Rn.emit({type:"update",path:a,tenantId:e,shardId:s})},r.renameFrom=async(s,a,o,l)=>{if(l?.newShardId!==void 0)throw new Error("Cross-shard move is not yet supported (ADR-018 amendment 2026-04-27)");await t.rename(e,s,a,o),Rn.emit({type:"rename",path:o,oldPath:a,tenantId:e,shardId:s})},r.deleteFrom=async(s,a)=>{const o=await t.exists(e,s,a);await t.delete(e,s,a),o&&Rn.emit({type:"delete",path:a,tenantId:e,shardId:s})}),r}const _v="keys:mint";class wv extends Error{constructor(t){super(`Shard may not mint a key with scope '${t}' — not declared in manifest.`),this.name="ScopeEscalationError"}}class kv extends Error{constructor(){super("User denied key creation."),this.name="ConsentDeniedError"}}const bo=new Map;let ds=null;function xv(e){return ds=e,()=>{ds===e&&(ds=null)}}async function Rk(e,t){if(!ds)throw new Error("No consent listener registered — the shell must mount ConsentDialog.");const n=`c_${Math.random().toString(36).slice(2)}${Date.now()}`;return new Promise(r=>{bo.set(n,{resolve:r}),ds({...t,shardId:e,requestId:n})})}function go(e,t){const n=bo.get(e);n&&(bo.delete(e),n.resolve(t))}const Ta=new Map,da=new Map,Pk=5e3;function jk(e,t){let n=da.get(e);n||(n=new Set,da.set(e,n)),n.add(t),setTimeout(()=>{n.delete(t),n.size===0&&da.delete(e)},Pk)}function Mk(e,t){return da.get(e)?.has(t)??!1}function Cl(e,t){const n=Ta.get(e)??new Set;return n.add(t),Ta.set(e,n),()=>{n.delete(t)}}function Sv(e,t){if(!e||Mk(e,t))return;jk(e,t);const n=Ta.get(e);if(n)for(const s of n)s(t);const r=Ta.get("*");if(r)for(const s of r)s(t)}function Dk(){if(typeof EventSource>"u")return()=>{};const e=new EventSource("/api/keys/events",{withCredentials:!0});return e.onmessage=t=>{try{const n=JSON.parse(t.data);Sv(n.shardId,n.id)}catch{}},()=>e.close()}function Lk(e){const{shardId:t,shardPermissions:n}=e,r=s=>{for(const a of s)if(!n.includes(a)&&!n.includes("admin:*"))throw new wv(a)};return{async mint(s){if(r(s.scopes),!await Rk(t,s))throw new kv;const o=await fetch("/api/keys/consent",{method:"POST",credentials:"include",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 fetch("/api/keys",{method:"POST",credentials:"include",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 fetch("/api/keys",{credentials:"include"});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 fetch(`/api/keys/${encodeURIComponent(s)}`,{method:"DELETE",credentials:"include"});if(!a.ok&&a.status!==404)throw new Error(`Revoke failed: ${a.status}`);Sv(t,s)}}}const an=le(new Map),Ar=new Map,or=le(new Map),Ra=le(new Map);function ci(e){const t=e.manifest.id;an.has(t)&&or.has(t)&&ui(t),an.set(t,e),Ra.delete(t)}async function Tl(e,t){const n=an.get(e);if(!n)throw new Error(`Cannot activate shard "${e}": not registered`);if(Ar.has(e))return;const r={shard:n,ctx:void 0,viewIds:new Set,verbNames:new Set,cleanupFns:[]},s=le({proxy:null,defaults:null}),a={register(l,c){const u=uf(l,c);return r.cleanupFns.push(async()=>u()),u},list(l){return Ja(l)},listPoints(){return D_()},onChange(l,c){const u=df(l,c);return r.cleanupFns.push(async()=>u()),u},onAnyChange(l){const c=L_(l);return r.cleanupFns.push(async()=>c()),c}},o={state:l=>sn.state(e,l),registerView:(l,c)=>{Uw(l,c,n.manifest.id),r.viewIds.add(l)},registerVerb:l=>{const c=e==="shell"?l.name:`${e}:${l.name}`;Hw(c,{...l,name:c},e),r.verbNames.add(c)},documents:l=>{const c=wk(ua(),e,fo(),l);return r.cleanupFns.push(()=>c.dispose()),c},env(l){return s.proxy?(console.warn(`[sh3] Shard "${e}" called ctx.env() more than once; extra calls are ignored.`),s.proxy):(s.defaults=l,s.proxy={...l},s.proxy)},async envUpdate(l){if(!s.proxy||!s.defaults)throw new Error(`Shard "${e}" called envUpdate() without declaring env state`);const c=rr(s.proxy);Object.assign(s.proxy,l);try{const u=rr(s.proxy);await Ik(e,u)}catch(u){throw Object.assign(s.proxy,c),u}},get isAdmin(){return bt()},get tenantId(){return ua()},zones:n.manifest.permissions?.includes(Ya)?Gf():void 0,browse:n.manifest.permissions?.includes(bv)?Tk(ua(),fo(),{canRead:n.manifest.permissions.includes(gv),canWrite:n.manifest.permissions.includes(yv)}):void 0,keys:n.manifest.permissions?.includes(_v)?Lk({shardId:e,shardPermissions:n.manifest.permissions??[]}):void 0,contributions:a,actions:{register(l){const c=Sw(l,e);return r.cleanupFns.push(async()=>c()),c},selection:$a(e),openContextMenu(l){_l(l)},openPalette(l){ri(l)}},listVerbs(l){const c=If();return(l?.programmaticOnly?c.filter(({verb:d})=>d.programmatic===!0):c).map(({verb:d,shardId:f})=>({shardId:f,name:d.name,summary:d.summary,programmatic:d.programmatic,schema:d.schema}))},runVerb(l,c,u,d){return pv(l,c,u,d)},listActions(l){const c=dl(et(),Ft());return l?.activeOnly?c.filter(u=>u.active):c},runAction(l,c){return yl(l)}};if(r.ctx=o,n.onKeyRevoked){const l=Cl(e,async c=>{try{await n.onKeyRevoked(c)}catch(u){console.error(`[sh3] onKeyRevoked failed in "${e}":`,u)}});r.cleanupFns.push(async()=>l())}Ar.set(e,r),or.set(e,n);try{await n.activate(o);for(const l of n.manifest.views)if(!r.viewIds.has(l.id))throw new Error(`Shard "${e}" declared view "${l.id}" in its manifest but registered no factory for it.`);if(s.proxy&&s.defaults)try{const l=await Ek(e),c=Object.assign({},s.defaults,l);Object.assign(s.proxy,c)}catch(l){console.warn(`[sh3] Failed to hydrate env state for shard "${e}":`,l instanceof Error?l.message:l)}}catch(l){for(const c of r.cleanupFns)try{c()}catch{}for(const c of r.verbNames)Ef(c);for(const c of r.viewIds)Sf(c);throw wf(e),Ar.delete(e),or.delete(e),Ra.set(e,{id:e,error:l,phase:t?.phase??"launch",timestamp:Date.now()}),console.error(`[sh3] Shard "${e}" failed to activate:`,l),l}Ra.delete(e),n.autostart?.(o)}function ui(e){const t=Ar.get(e);if(t){t.shard.deactivate?.();for(const n of t.cleanupFns)n();for(const n of t.verbNames)Ef(n);for(const n of t.viewIds)Sf(n);wf(e),Ar.delete(e),or.delete(e)}}function zk(e){return Ar.get(e)?.ctx}function Es(){const e=[];for(const t of or.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 Ok(e){return btoa(JSON.stringify(e)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function Nk(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 qk(n)}function qk(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 Bk(){return typeof globalThis.__TAURI_INTERNALS__<"u"}let qc=0;function Vk(){return qc+=1,`sh3-satellite-${Date.now()}-${qc}`}async function di(e,t={}){if(!Bk())return console.warn("[sh3] shell.window.spawn called outside Tauri — no-op"),"";const{invoke:n}=await Zn(async()=>{const{invoke:c}=await import("./core-DsojzR6k.js");return{invoke:c}},[]),r=Ok(e),s=Vk(),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 ht extends Error{constructor(t,n){super(`Registry validation error at ${t}: ${n}`),this.name="RegistryValidationError",this.path=t}}function Ev(e){if(!e||typeof e!="object"||Array.isArray(e))throw new ht("$","expected an object");const t=e;if(t.version!==1)throw new ht("$.version",`expected 1, got ${JSON.stringify(t.version)}`);if(!Array.isArray(t.packages))throw new ht("$.packages","expected an array");return{version:1,packages:t.packages.map((r,s)=>Fk(r,`$.packages[${s}]`))}}function Fk(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new ht(t,"expected an object");const n=e;Xt(n,"id",t),Kk(n,"type",["shard","app","combo"],t),Xt(n,"label",t),Xt(n,"description",t);const r=`${t}.author`;if(!n.author||typeof n.author!="object"||Array.isArray(n.author))throw new ht(r,"expected an object");const s=n.author;if(typeof s.name!="string"||s.name.length===0)throw new ht(`${r}.name`,"expected a non-empty string");if(!Array.isArray(n.versions)||n.versions.length===0)throw new ht(`${t}.versions`,"expected a non-empty array");const a=n.versions.map((o,l)=>Uk(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 Uk(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new ht(t,"expected an object");const n=e;Xt(n,"version",t),Xt(n,"contractVersion",t);const r="bundleUrl"in n&&n.bundleUrl!==void 0,s="integrity"in n&&n.integrity!==void 0;if(r&&Xt(n,"bundleUrl",t),s&&Xt(n,"integrity",t),r!==s)throw new ht(t,"bundleUrl and integrity must be provided together");const a="serverBundleUrl"in n&&n.serverBundleUrl!==void 0;if(a&&Xt(n,"serverBundleUrl",t),"serverIntegrity"in n&&n.serverIntegrity!==void 0&&Xt(n,"serverIntegrity",t),!r&&!a)throw new ht(t,"expected at least one of bundleUrl+integrity or serverBundleUrl");let o;if(n.requires!==void 0){if(!Array.isArray(n.requires))throw new ht(`${t}.requires`,"expected an array");o=n.requires.map((l,c)=>Hk(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 Hk(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new ht(t,"expected an object");const n=e;return Xt(n,"id",t),Xt(n,"versionRange",t),{id:n.id,versionRange:n.versionRange}}function Xt(e,t,n){const r=e[t];if(typeof r!="string"||r.length===0)throw new ht(`${n}.${t}`,"expected a non-empty string")}function Kk(e,t,n,r){if(!n.includes(e[t]))throw new ht(`${r}.${t}`,`expected one of: ${n.join(", ")}`)}const Bc=["sha256","sha384","sha512"];function Wk(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(!Bc.includes(n))throw new Error(`Unsupported SRI algorithm: ${n}. Supported: ${Bc.join(", ")}`);if(!r)throw new Error(`Empty hash in SRI: ${e}`);return{algorithm:n,hash:r}}function Yk(e){return`SHA-${e.slice(3)}`}function Gk(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 Rl(e,t){const{algorithm:n,hash:r}=Wk(t),s=Yk(n),a=await crypto.subtle.digest(s,e),o=Gk(a);if(o!==r)throw new Error(`Integrity check failed for ${n}. Expected: ${r}, got: ${o}`)}async function Iv(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=Ev(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 fi(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 Rl(s,e.integrity),s}async function Pl(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 Rl(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 vi(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 fs="sh3.shell.mode";function Xk(e,t){return e.contributions.register(fs,t)}const on="0.15.4",jl="sh3:user:__sh3core__:theme";let Is=[];function Jk(e){const t=Object.keys(e);for(const n of Is)t.includes(n)||document.documentElement.style.removeProperty(`--${n}`);for(const[n,r]of Object.entries(e))document.documentElement.style.setProperty(`--${n}`,r);Is=t;try{localStorage.setItem(jl,JSON.stringify(e))}catch{}}function Zk(){for(const e of Is)document.documentElement.style.removeProperty(`--${e}`);Is=[];try{localStorage.removeItem(jl)}catch{}}function Av(){try{const e=localStorage.getItem(jl);if(!e)return{};const t=JSON.parse(e);return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{}}catch{return{}}}function Qk(){const e=Av();if(Object.keys(e).length!==0){for(const[t,n]of Object.entries(e))document.documentElement.style.setProperty(`--${t}`,n);Is=Object.keys(e)}}const On="/assets/icons-2eVU8BA9.svg",Cv=Symbol("sh3.icon-sprite");function $k(e){jo(Cv,e)}function Tv(){return Po(Cv)}var e0=Yo('<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>'),t0=Yo('<svg class="sh3-btn__icon svelte-t4hi97" aria-hidden="true"><use></use></svg>'),n0=A('<span class="sh3-btn__label svelte-t4hi97"><!></span>'),r0=A("<button><!> <!></button>");function s0(e,t){ie(t,!0);let n=$(t,"variant",3,"default"),r=$(t,"disabled",3,!1),s=$(t,"type",3,"button");const a=Tv();function o(m){return m.includes("/")||m.endsWith(".svg")}const l=H(()=>t.icon?o(t.icon)?t.icon:`${t.sprite??a??On}#${t.icon}`:void 0);let c=F(!1);const u=H(()=>t.loading??i(c)),d=H(()=>n()==="icon"||!!t.icon&&!t.children);async function f(m){if(!t.onclick)return;const I=t.onclick(m);if(I&&typeof I.then=="function"){x(c,!0);try{await I}finally{x(c,!1)}}}var h=r0();let b;var S=p(h);{var _=m=>{var I=e0();k(m,I)},y=m=>{var I=t0(),P=p(I);v(I),N(()=>ne(P,"href",i(l))),k(m,I)};K(S,m=>{i(u)?m(_):i(l)&&m(y,1)})}var E=w(S,2);{var g=m=>{var I=n0(),P=p(I);Ht(P,()=>t.children),v(I),k(m,I)};K(E,m=>{t.children&&m(g)})}v(h),N(()=>{ne(h,"type",s()),b=de(h,1,`sh3-btn sh3-btn--${n()??""}`,"svelte-t4hi97",b,{"sh3-btn--icon-only":i(d)}),h.disabled=r()||i(u),ne(h,"aria-busy",i(u)||void 0),ne(h,"title",t.title),ne(h,"aria-label",t.ariaLabel??(i(d)?t.title:void 0))}),U("click",h,f),k(e,h),oe()}ce(["click"]);var a0=A('<span class="sh3-collapsible__title svelte-lvydsb"> </span>'),i0=A('<div class="sh3-collapsible__body svelte-lvydsb"><!></div>'),o0=A('<div><button class="sh3-collapsible__head svelte-lvydsb" type="button"><svg class="sh3-collapsible__caret svelte-lvydsb" aria-hidden="true" viewBox="0 0 16 16"><path d="M5 3l6 5-6 5" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg> <!></button> <!></div>');function l0(e,t){ie(t,!0);let n=$(t,"open",15,!1);function r(){n(!n()),t.onopenchange?.(n())}var s=o0();let a;var o=p(s),l=w(p(o),2);{var c=h=>{var b=Be(),S=he(b);Ht(S,()=>t.header),k(h,b)},u=h=>{var b=a0(),S=p(b,!0);v(b),N(()=>z(S,t.title)),k(h,b)};K(l,h=>{t.header?h(c):t.title&&h(u,1)})}v(o);var d=w(o,2);{var f=h=>{var b=i0(),S=p(b);Ht(S,()=>t.children),v(b),k(h,b)};K(d,h=>{n()&&h(f)})}v(s),N(()=>{a=de(s,1,"sh3-collapsible svelte-lvydsb",null,a,{"sh3-collapsible--open":n()}),ne(o,"aria-expanded",n())}),U("click",o,r),k(e,s),oe()}ce(["click"]);var c0=A('<span aria-hidden="true">*</span>'),u0=A('<span class="sh3-field__label svelte-m4dkl"> <!></span>'),d0=A('<span class="sh3-field__affix svelte-m4dkl"><!></span>'),f0=A('<span class="sh3-field__affix svelte-m4dkl"><!></span>'),v0=A("<span> </span>"),h0=A('<label><!> <span class="sh3-field__row svelte-m4dkl"><!> <input class="sh3-field__input svelte-m4dkl"/> <!></span> <!></label>');function p0(e,t){ie(t,!0);let n=$(t,"value",15,""),r=$(t,"type",3,"text"),s=$(t,"disabled",3,!1),a=$(t,"invalid",3,!1),o=$(t,"size",3,"md"),l=$(t,"required",3,!1);const c=H(()=>a()&&!!t.error),u=H(()=>i(c)?t.error:t.helper);var d=h0();let f;var h=p(d);{var b=T=>{var M=u0(),L=p(M,!0),j=w(L);{var D=C=>{var O=c0();k(C,O)};K(j,C=>{l()&&C(D)})}v(M),N(()=>z(L,t.label)),k(T,M)};K(h,T=>{t.label&&T(b)})}var S=w(h,2),_=p(S);{var y=T=>{var M=d0(),L=p(M);Ht(L,()=>t.prefix),v(M),k(T,M)};K(_,T=>{t.prefix&&T(y)})}var E=w(_,2);ge(E);var g=w(E,2);{var m=T=>{var M=f0(),L=p(M);Ht(L,()=>t.suffix),v(M),k(T,M)};K(g,T=>{t.suffix&&T(m)})}v(S);var I=w(S,2);{var P=T=>{var M=v0();let L;var j=p(M,!0);v(M),N(()=>{L=de(M,1,"sh3-field__helper svelte-m4dkl",null,L,{"sh3-field__helper--error":i(c)}),z(j,i(u))}),k(T,M)};K(I,T=>{i(u)&&T(P)})}v(d),N(()=>{f=de(d,1,"sh3-field svelte-m4dkl",null,f,{"sh3-field--invalid":a(),"sh3-field--sm":o()==="sm"}),ne(E,"type",r()),ne(E,"placeholder",t.placeholder),E.disabled=s(),E.required=l(),ne(E,"autocomplete",t.autocomplete),ne(E,"aria-invalid",a()||void 0)}),U("input",E,()=>t.oninput?.(n())),Re("blur",E,()=>t.onchange?.(n())),Se(E,n),k(e,d),oe()}ce(["input"]);var m0=A('<span aria-hidden="true">*</span>'),b0=A('<span class="sh3-textarea__label svelte-668c6r"> <!></span>'),g0=A("<span> </span>"),y0=A('<label><!> <textarea class="sh3-textarea__input svelte-668c6r"></textarea> <!></label>');function _0(e,t){ie(t,!0);let n=$(t,"value",15,""),r=$(t,"disabled",3,!1),s=$(t,"invalid",3,!1),a=$(t,"size",3,"md"),o=$(t,"required",3,!1),l=$(t,"rows",3,3),c=$(t,"resize",3,"vertical");const u=H(()=>s()&&!!t.error),d=H(()=>i(u)?t.error:t.helper);var f=y0();let h;var b=p(f);{var S=m=>{var I=b0(),P=p(I,!0),T=w(P);{var M=L=>{var j=m0();k(L,j)};K(T,L=>{o()&&L(M)})}v(I),N(()=>z(P,t.label)),k(m,I)};K(b,m=>{t.label&&m(S)})}var _=w(b,2);Bo(_);let y;var E=w(_,2);{var g=m=>{var I=g0();let P;var T=p(I,!0);v(I),N(()=>{P=de(I,1,"sh3-textarea__helper svelte-668c6r",null,P,{"sh3-textarea__helper--error":i(u)}),z(T,i(d))}),k(m,I)};K(E,m=>{i(d)&&m(g)})}v(f),N(()=>{h=de(f,1,"sh3-textarea svelte-668c6r",null,h,{"sh3-textarea--invalid":s(),"sh3-textarea--sm":a()==="sm"}),ne(_,"placeholder",t.placeholder),_.disabled=r(),_.required=o(),ne(_,"rows",l()),ne(_,"aria-invalid",s()||void 0),y=He(_,"",y,{resize:c()})}),U("input",_,()=>t.oninput?.(n())),Re("blur",_,()=>t.onchange?.(n())),Se(_,n),k(e,f),oe()}ce(["input"]);function w0(e,t,n){let r=e;return t!==void 0&&r<t&&(r=t),n!==void 0&&r>n&&(r=n),r}function k0(e,t){const n=t.min??0,r=Math.round((e-n)/t.step);return n+r*t.step}var x0=A('<span class="sh3-num__label svelte-1qa0x3m"> </span>'),S0=A('<span class="sh3-num__affix svelte-1qa0x3m"><!></span>'),E0=A('<span class="sh3-num__affix svelte-1qa0x3m"><!></span>'),I0=A('<label><!> <span class="sh3-num__row svelte-1qa0x3m"><!> <input class="sh3-num__input svelte-1qa0x3m" type="number"/> <!> <span class="sh3-num__steppers svelte-1qa0x3m"><button type="button" aria-label="Increase" class="svelte-1qa0x3m">▲</button> <button type="button" aria-label="Decrease" class="svelte-1qa0x3m">▼</button></span></span></label>');function A0(e,t){ie(t,!0);let n=$(t,"value",15,0),r=$(t,"step",3,1),s=$(t,"disabled",3,!1),a=$(t,"invalid",3,!1),o=$(t,"size",3,"md");function l(C){if(Number.isNaN(C))return;let O=w0(k0(C,{min:t.min,step:r()}),t.min,t.max);t.precision!==void 0&&(O=Number(O.toFixed(t.precision))),n(O)}function c(C){l(n()+C*r()),t.oninput?.(n())}let u=null,d=null,f=!1;function h(C){s()||(f=!0,c(C),u=setTimeout(()=>{let O=0;d=setInterval(()=>{c(C),O+=60,O>1500&&d&&(clearInterval(d),d=setInterval(()=>c(C),20))},60)},350))}function b(){u&&(clearTimeout(u),u=null),d&&(clearInterval(d),d=null),f&&(f=!1,t.onchange?.(n()))}var S=I0();let _;var y=p(S);{var E=C=>{var O=x0(),q=p(O,!0);v(O),N(()=>z(q,t.label)),k(C,O)};K(y,C=>{t.label&&C(E)})}var g=w(y,2),m=p(g);{var I=C=>{var O=S0(),q=p(O);Ht(q,()=>t.prefix),v(O),k(C,O)};K(m,C=>{t.prefix&&C(I)})}var P=w(m,2);ge(P);var T=w(P,2);{var M=C=>{var O=E0(),q=p(O);Ht(q,()=>t.suffix),v(O),k(C,O)};K(T,C=>{t.suffix&&C(M)})}var L=w(T,2),j=p(L),D=w(j,2);v(L),v(g),v(S),N(()=>{_=de(S,1,"sh3-num svelte-1qa0x3m",null,_,{"sh3-num--invalid":a(),"sh3-num--sm":o()==="sm"}),ne(P,"min",t.min),ne(P,"max",t.max),ne(P,"step",r()),P.disabled=s(),ne(P,"aria-invalid",a()||void 0),bs(P,n()),j.disabled=s(),D.disabled=s()}),U("input",P,C=>{const O=C.currentTarget.valueAsNumber;Number.isNaN(O)||(n(O),t.oninput?.(O))}),Re("blur",P,()=>{l(n()),t.onchange?.(n())}),U("pointerdown",j,()=>h(1)),U("pointerup",j,b),Re("pointerleave",j,b),U("pointerdown",D,()=>h(-1)),U("pointerup",D,b),Re("pointerleave",D,b),k(e,S),oe()}ce(["input","pointerdown","pointerup"]);function hi(e){return e.filter(t=>!t.disabled)}function C0(e,t){const n=hi(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 T0(e,t){const n=hi(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 R0(e){return hi(e)[0]?.value}function P0(e){const t=hi(e);return t[t.length-1]?.value}var j0=A('<button type="button" role="radio"> </button>'),M0=A('<div role="radiogroup" tabindex="-1"></div>');function Rv(e,t){ie(t,!0);let n=$(t,"value",31,()=>le(t.options[0]?.value??"")),r=$(t,"size",3,"md"),s=$(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=C0(t.options,n());break;case"ArrowLeft":case"ArrowUp":d=T0(t.options,n());break;case"Home":d=R0(t.options);break;case"End":d=P0(t.options);break;default:return}u.preventDefault(),d!==void 0&&a(d)}var l=M0();let c;pe(l,21,()=>t.options,dt,(u,d)=>{var f=j0();let h;var b=p(f,!0);v(f),N(()=>{ne(f,"aria-checked",n()===i(d).value),ne(f,"tabindex",n()===i(d).value?0:-1),f.disabled=s()||i(d).disabled,h=de(f,1,"svelte-17xsko9",null,h,{"sh3-seg__btn--active":n()===i(d).value}),z(b,i(d).label)}),U("click",f,()=>{!i(d).disabled&&!s()&&a(i(d).value)}),k(u,f)}),v(l),N(()=>c=de(l,1,"sh3-seg svelte-17xsko9",null,c,{"sh3-seg--sm":r()==="sm"})),U("keydown",l,o),k(e,l),oe()}ce(["keydown","click"]);function D0(e,t){return e===t?"":t}function L0(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var z0=A('<button type="button"><!></button>'),O0=A('<div role="group"></div>');function N0(e,t){ie(t,!0);let n=$(t,"multiple",3,!1),r=$(t,"value",31,()=>le(n()?[]:t.options[0]?.value??"")),s=$(t,"disabled",3,!1),a=$(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(L0(f,d))}else r(D0(typeof r()=="string"?r():"",d));t.onchange?.(r())}}var c=O0();let u;pe(c,21,()=>t.options,dt,(d,f)=>{var h=z0();let b;var S=p(h);Ht(S,()=>i(f).icon),v(h),N((_,y)=>{ne(h,"title",i(f).tooltip),ne(h,"aria-label",i(f).tooltip),ne(h,"aria-pressed",_),h.disabled=s(),b=de(h,1,"svelte-13knxr5",null,b,y)},[()=>o(i(f).value),()=>({"sh3-itg__btn--active":o(i(f).value)})]),U("click",h,()=>l(i(f).value)),k(d,h)}),v(c),N(()=>u=de(c,1,"sh3-itg svelte-13knxr5",null,u,{"sh3-itg--sm":a()==="sm"})),k(e,c),oe()}ce(["click"]);function Pa(e,t,n){return n===t?0:(e-t)/(n-t)*100}var q0=A('<span class="sh3-slider__tick svelte-13va6lu"></span>'),B0=A('<output class="sh3-slider__value svelte-13va6lu"> </output>'),V0=A('<div><div class="sh3-slider__track svelte-13va6lu"><div class="sh3-slider__fill svelte-13va6lu"></div> <!></div> <input type="range" class="sh3-slider__native svelte-13va6lu"/> <!></div>');function Pv(e,t){ie(t,!0);let n=$(t,"value",15,0),r=$(t,"min",3,0),s=$(t,"max",3,100),a=$(t,"step",3,1),o=$(t,"showValue",3,!1),l=$(t,"disabled",3,!1),c=$(t,"invalid",3,!1),u=$(t,"size",3,"md"),d=$(t,"orientation",3,"horizontal");const f=H(()=>Pa(n(),r(),s()));var h=V0();let b;var S=p(h),_=p(S);let y;var E=w(_,2);{var g=T=>{var M=Be(),L=he(M);pe(L,17,()=>t.ticks,dt,(j,D)=>{var C=q0();let O;N(q=>O=He(C,"",O,q),[()=>({"--tick-pct":`${Pa(i(D),r(),s())??""}%`})]),k(j,C)}),k(T,M)};K(E,T=>{t.ticks&&T(g)})}v(S);var m=w(S,2);ge(m);var I=w(m,2);{var P=T=>{var M=B0();let L;var j=p(M,!0);v(M),N(()=>{L=He(M,"",L,{"--pct":`${i(f)??""}%`}),z(j,n())}),k(T,M)};K(I,T=>{o()&&T(P)})}v(h),N(()=>{b=de(h,1,`sh3-slider sh3-slider--${d()??""}`,"svelte-13va6lu",b,{"sh3-slider--sm":u()==="sm","sh3-slider--invalid":c()}),y=He(_,"",y,{"--pct":`${i(f)??""}%`}),ne(m,"min",r()),ne(m,"max",s()),ne(m,"step",a()),m.disabled=l(),ne(m,"aria-invalid",c()||void 0)}),U("input",m,()=>t.oninput?.(n())),U("change",m,()=>t.onchange?.(n())),Se(m,n),k(e,h),oe()}ce(["input","change"]);function Vc(e,t,n){const[r,s]=e;return t==="low"?[Math.min(n,s),s]:[r,Math.max(n,r)]}var F0=A('<div><div class="sh3-range__track svelte-rdbrc5"><div class="sh3-range__fill svelte-rdbrc5"></div></div> <input type="range" class="sh3-range__native sh3-range__native--low svelte-rdbrc5"/> <input type="range" class="sh3-range__native sh3-range__native--high svelte-rdbrc5"/></div>');function U0(e,t){ie(t,!0);let n=$(t,"value",31,()=>le([0,100])),r=$(t,"min",3,0),s=$(t,"max",3,100),a=$(t,"step",3,1),o=$(t,"disabled",3,!1),l=$(t,"invalid",3,!1),c=$(t,"size",3,"md");const u=H(()=>Pa(n()[0],r(),s())),d=H(()=>Pa(n()[1],r(),s()));function f(I){n(Vc(n(),"low",I)),t.oninput?.(n())}function h(I){n(Vc(n(),"high",I)),t.oninput?.(n())}var b=F0();let S;var _=p(b),y=p(_);let E;v(_);var g=w(_,2);ge(g);var m=w(g,2);ge(m),v(b),N(()=>{S=de(b,1,"sh3-range svelte-rdbrc5",null,S,{"sh3-range--sm":c()==="sm","sh3-range--invalid":l()}),E=He(y,"",E,{"--lo":`${i(u)??""}%`,"--hi":`${i(d)??""}%`}),ne(g,"min",r()),ne(g,"max",s()),ne(g,"step",a()),g.disabled=o(),bs(g,n()[0]),ne(m,"min",r()),ne(m,"max",s()),ne(m,"step",a()),m.disabled=o(),bs(m,n()[1])}),U("input",g,I=>f(parseFloat(I.currentTarget.value))),U("change",g,()=>t.onchange?.(n())),U("input",m,I=>h(parseFloat(I.currentTarget.value))),U("change",m,()=>t.onchange?.(n())),k(e,b),oe()}ce(["input","change"]);var H0=A('<div class="sh3-sg__channel svelte-1lqyi0d"><span class="sh3-sg__label svelte-1lqyi0d"> </span> <!></div>'),K0=A("<div></div>");function W0(e,t){ie(t,!0);let n=$(t,"orientation",3,"horizontal"),r=$(t,"values",31,()=>le({})),s=$(t,"showValues",3,!1),a=$(t,"disabled",3,!1),o=$(t,"size",3,"md");var l=K0();pe(l,21,()=>t.channels,c=>c.id,(c,u)=>{var d=H0(),f=p(d),h=p(f,!0);v(f);var b=w(f,2),S=()=>r()[i(u).id]??0,_=y=>r({...r(),[i(u).id]:y});{let y=H(()=>i(u).min??0),E=H(()=>i(u).max??100),g=H(()=>i(u).step??1);Pv(b,{get orientation(){return n()},get min(){return i(y)},get max(){return i(E)},get step(){return i(g)},get disabled(){return a()},get size(){return o()},get showValue(){return s()},get value(){return S()},set value(m){_(m)},oninput:()=>t.oninput?.(r()),onchange:()=>t.onchange?.(r())})}v(d),N(()=>z(h,i(u).label)),k(c,d)}),v(l),N(()=>de(l,1,`sh3-sg sh3-sg--${n()??""}`,"svelte-1lqyi0d")),k(e,l),oe()}var Y0=A('<span class="sh3-swatch__label svelte-6ri2j2"> </span>'),G0=A('<label><!> <button type="button" class="sh3-swatch__btn svelte-6ri2j2"><span class="sh3-swatch__dot svelte-6ri2j2"></span><span class="sh3-swatch__hex svelte-6ri2j2"> </span></button></label>');function jv(e,t){ie(t,!0);let n=$(t,"value",15,"#000000"),r=$(t,"disabled",3,!1),s=$(t,"size",3,"md"),a;async function o(){if(r())return;const _=await sn.color.pick({initial:n(),anchor:a});_!=null&&(n(_),t.onchange?.(_))}var l=G0();let c;var u=p(l);{var d=_=>{var y=Y0(),E=p(y,!0);v(y),N(()=>z(E,t.label)),k(_,y)};K(u,_=>{t.label&&_(d)})}var f=w(u,2);let h;var b=w(p(f)),S=p(b,!0);v(b),v(f),Le(f,_=>a=_,()=>a),v(l),N(()=>{c=de(l,1,"sh3-swatch svelte-6ri2j2",null,c,{"sh3-swatch--sm":s()==="sm"}),f.disabled=r(),ne(f,"aria-label",`${t.label??"Color"??""} (current ${n()??""})`),h=He(f,"",h,{"--swatch-color":n()}),z(S,n())}),U("click",f,o),k(e,l),oe()}ce(["click"]);function X0(e,t){return!e||e.length===0?t?[]:null:t?Array.from(e):e[0]}function J0(e){return e===null?"":Array.isArray(e)?e.length===0?"":e.length===1?e[0].name:`${e.length} files`:e.name}var Z0=A('<label><input class="sh3-fp__native svelte-24jk95" type="file"/> <span class="sh3-fp__btn svelte-24jk95" tabindex="-1"> </span> <span class="sh3-fp__name svelte-24jk95"> </span></label>');function Q0(e,t){ie(t,!0);let n=$(t,"value",15,null),r=$(t,"multiple",3,!1),s=$(t,"disabled",3,!1),a=$(t,"invalid",3,!1),o=$(t,"size",3,"md"),l=$(t,"buttonLabel",3,"Choose file...");function c(E){const g=E.currentTarget;n(X0(g.files,r())),t.onchange?.(n())}const u=H(()=>J0(n()));var d=Z0();let f;var h=p(d),b=w(h,2),S=p(b,!0);v(b);var _=w(b,2),y=p(_,!0);v(_),v(d),N(()=>{f=de(d,1,"sh3-fp svelte-24jk95",null,f,{"sh3-fp--sm":o()==="sm","sh3-fp--invalid":a()}),ne(h,"accept",t.accept),h.multiple=r(),h.disabled=s(),z(S,l()),z(y,i(u)||"no file")}),U("change",h,c),k(e,d),oe()}ce(["change"]);const $0=8;function ex(e){return e.length>=$0}function tx(e,t){if(!t)return e.slice();const n=t.toLowerCase();return e.filter(r=>r.label.toLowerCase().includes(n))}function nx(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 rx(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 sx(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var ax=A('<input class="sh3-listbox__search svelte-1tyxvrs" type="search" placeholder="Filter…"/>'),ix=A('<span aria-hidden="true"></span>'),ox=A('<div role="option" tabindex="-1"><!> <span class="sh3-listbox__label"> </span></div>'),lx=A('<div class="sh3-listbox__empty svelte-1tyxvrs">No matches</div>'),cx=A('<div class="sh3-listbox svelte-1tyxvrs" role="listbox" tabindex="-1"><!> <div class="sh3-listbox__list svelte-1tyxvrs"><!> <!></div></div>');function ux(e,t){ie(t,!0);const n=H(()=>t.getValue());function r(){t.onClose?.(),t.close()}const s=H(()=>ex(t.options));function a(){if(t.multiple)return 0;const L=typeof i(n)=="string"?i(n):"",j=t.options.findIndex(D=>D.value===L&&!D.disabled);return j>=0?j:0}let o=F(""),l=F(le(a())),c=F(void 0),u=F(void 0),d="",f=null;const h=H(()=>tx(t.options,i(o)));xe(()=>{i(l)>=i(h).length&&x(l,0),b()});async function b(){if(await Ns(),!i(c))return;i(c).querySelector(`[data-idx="${i(l)}"]`)?.scrollIntoView({block:"nearest"})}function S(L){return t.multiple&&Array.isArray(i(n))?i(n).includes(L.value):i(n)===L.value}function _(L){const j=i(h)[L];!j||j.disabled||(t.onSelect(j.value),t.multiple||r())}function y(L){if(i(h).length!==0)switch(L.key){case"ArrowDown":L.preventDefault(),x(l,(i(l)+1)%i(h).length);break;case"ArrowUp":L.preventDefault(),x(l,(i(l)-1+i(h).length)%i(h).length);break;case"Home":L.preventDefault(),x(l,0);break;case"End":L.preventDefault(),x(l,i(h).length-1);break;case"Enter":L.preventDefault(),_(i(l));break;case" ":case"Space":L.preventDefault(),_(i(l));break;case"Escape":L.preventDefault(),r();break;default:if(i(s)&&document.activeElement===i(u)||L.key.length!==1||L.metaKey||L.ctrlKey||L.altKey)return;d+=L.key,f&&clearTimeout(f),f=setTimeout(()=>{d=""},500);const j=nx(i(h),d,i(l));j>=0&&x(l,j,!0)}}var E=cx(),g=p(E);{var m=L=>{var j=ax();ge(j),Le(j,D=>x(u,D),()=>i(u)),Se(j,()=>i(o),D=>x(o,D)),k(L,j)};K(g,L=>{i(s)&&L(m)})}var I=w(g,2),P=p(I);pe(P,17,()=>i(h),dt,(L,j,D)=>{var C=ox();ne(C,"data-idx",D);let O;var q=p(C);{var R=Y=>{var Q=ix();let Z;N(se=>Z=de(Q,1,"sh3-listbox__check svelte-1tyxvrs",null,Z,se),[()=>({"sh3-listbox__check--on":S(i(j))})]),k(Y,Q)};K(q,Y=>{t.multiple&&Y(R)})}var V=w(q,2),X=p(V,!0);v(V),v(C),N((Y,Q)=>{ne(C,"aria-selected",Y),ne(C,"aria-disabled",i(j).disabled),O=de(C,1,"svelte-1tyxvrs",null,O,Q),z(X,i(j).label)},[()=>S(i(j)),()=>({"sh3-listbox__opt--active":D===i(l),"sh3-listbox__opt--selected":S(i(j))})]),U("click",C,()=>_(D)),Re("mouseenter",C,()=>x(l,D,!0)),k(L,C)});var T=w(P,2);{var M=L=>{var j=lx();k(L,j)};K(T,L=>{i(h).length===0&&L(M)})}v(I),Le(I,L=>x(c,L),()=>i(c)),v(E),N(()=>ne(E,"aria-multiselectable",t.multiple)),U("keydown",E,y),k(e,E),oe()}ce(["keydown","click"]);var dx=A('<span class="sh3-select__label svelte-1q3zxph"> </span>'),fx=A("<option> </option>"),vx=A('<label><!> <button type="button" class="sh3-select__btn svelte-1q3zxph" aria-haspopup="listbox"><span> </span> <span class="sh3-select__chevron svelte-1q3zxph" aria-hidden="true">▾</span></button> <select class="sh3-select__native svelte-1q3zxph" aria-hidden="true"></select></label>');function hx(e,t){ie(t,!0);let n=$(t,"multiple",3,!1),r=$(t,"value",31,()=>le(n()?[]:"")),s=$(t,"placeholder",3,"Select…"),a=$(t,"disabled",3,!1),o=$(t,"invalid",3,!1),l=$(t,"size",3,"md"),c=F(void 0),u=F(void 0),d=F(!1);const f=H(()=>rx(t.options,r(),n()));function h(){x(d,!1),i(c)?.focus()}async function b(){if(a()||i(d)||!i(c))return;x(d,!0);const j=sn.popup.show(ux,{anchor:i(c)},{options:t.options,getValue:()=>r(),multiple:n(),onSelect:O=>{if(n()){const q=Array.isArray(r())?r():[];r(sx(q,O))}else r(O);t.onchange?.(r())},onClose:h}),D=j.close;j.close=()=>{D(),h()},await Ns(),document.querySelector(".sh3-listbox")?.focus()}function S(j){if(!(a()||i(d)))switch(j.key){case"ArrowDown":case"ArrowUp":case"Enter":case" ":j.preventDefault(),b();break}}function _(){i(u)&&(n()?r(Array.from(i(u).selectedOptions).map(j=>j.value)):r(i(u).value),t.onchange?.(r()))}var y=vx();let E;var g=p(y);{var m=j=>{var D=dx(),C=p(D,!0);v(D),N(()=>z(C,t.label)),k(j,D)};K(g,j=>{t.label&&j(m)})}var I=w(g,2),P=p(I);let T;var M=p(P,!0);v(P),qt(2),v(I),Le(I,j=>x(c,j),()=>i(c));var L=w(I,2);ne(L,"tabindex",-1),pe(L,21,()=>t.options,dt,(j,D)=>{var C=fx(),O=p(C,!0);v(C);var q={};N(R=>{$o(C,R),z(O,i(D).label),q!==(q=i(D).value)&&(C.value=(C.__value=i(D).value)??"")},[()=>n()?Array.isArray(r())&&r().includes(i(D).value):r()===i(D).value]),k(j,C)}),v(L),Le(L,j=>x(u,j),()=>i(u)),v(y),N(()=>{E=de(y,1,"sh3-select svelte-1q3zxph",null,E,{"sh3-select--invalid":o(),"sh3-select--sm":l()==="sm"}),I.disabled=a(),ne(I,"aria-expanded",i(d)),T=de(P,1,"sh3-select__display svelte-1q3zxph",null,T,{"sh3-select__display--placeholder":!i(f)}),z(M,i(f)||s()),L.multiple=n(),L.disabled=a()}),U("click",I,b),U("keydown",I,S),U("change",L,_),k(e,y),oe()}ce(["click","keydown","change"]);function px(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 mx(e,t){return e.includes(t)?e.filter(n=>n!==t):[...e,t]}var bx=A('<input type="search" class="sh3-picker__search svelte-1rlwvrb" placeholder="Filter…"/>'),gx=A('<p class="sh3-picker__status svelte-1rlwvrb">Loading…</p>'),yx=A('<button type="button" class="sh3-picker__retry svelte-1rlwvrb">Retry</button>'),_x=A('<p class="sh3-picker__status sh3-picker__status--error svelte-1rlwvrb"> </p> <!>',1),wx=A('<p class="sh3-picker__status svelte-1rlwvrb"> </p>'),kx=A('<span class="sh3-picker__row-sub svelte-1rlwvrb"> </span>'),xx=A('<label class="sh3-picker__row svelte-1rlwvrb"><input type="checkbox"/> <span class="sh3-picker__row-text svelte-1rlwvrb"><span class="sh3-picker__row-label svelte-1rlwvrb"> </span> <!></span></label>'),Sx=A('<div><!> <div class="sh3-picker__list svelte-1rlwvrb"><!></div> <p class="sh3-picker__footer svelte-1rlwvrb"> </p></div>');function Mv(e,t){ie(t,!0);let n=$(t,"value",31,()=>le([])),r=$(t,"loading",3,!1),s=$(t,"error",3,null),a=$(t,"emptyText",3,"No items."),o=$(t,"searchThreshold",3,8),l=$(t,"disabled",3,!1),c=$(t,"size",3,"md"),u=F("");const d=H(()=>t.items.length>=o()),f=H(()=>px(t.items,i(u))),h=H(()=>t.items.length),b=H(()=>n().length);function S(C){if(l())return;const O=mx(n(),C);n(O),t.onchange?.(O)}var _=Sx();let y;var E=p(_);{var g=C=>{var O=bx();ge(O),N(()=>O.disabled=l()),Se(O,()=>i(u),q=>x(u,q)),k(C,O)};K(E,C=>{i(d)&&C(g)})}var m=w(E,2),I=p(m);{var P=C=>{var O=gx();k(C,O)},T=C=>{var O=_x(),q=he(O),R=p(q,!0);v(q);var V=w(q,2);{var X=Y=>{var Q=yx();U("click",Q,()=>t.onRetry?.()),k(Y,Q)};K(V,Y=>{t.onRetry&&Y(X)})}N(()=>z(R,s())),k(C,O)},M=C=>{var O=wx(),q=p(O,!0);v(O),N(()=>z(q,a())),k(C,O)},L=C=>{var O=Be(),q=he(O);pe(q,17,()=>i(f),R=>R.id,(R,V)=>{var X=xx(),Y=p(X);ge(Y);var Q=w(Y,2),Z=p(Q),se=p(Z,!0);v(Z);var J=w(Z,2);{var B=W=>{var ae=kx(),G=p(ae,!0);v(ae),N(()=>z(G,i(V).sublabel)),k(W,ae)};K(J,W=>{i(V).sublabel&&W(B)})}v(Q),v(X),N(W=>{Qo(Y,W),Y.disabled=l(),z(se,i(V).label)},[()=>n().includes(i(V).id)]),U("change",Y,()=>S(i(V).id)),k(R,X)}),k(C,O)};K(I,C=>{r()?C(P):s()?C(T,1):t.items.length===0?C(M,2):C(L,-1)})}v(m);var j=w(m,2),D=p(j);v(j),v(_),N(()=>{y=de(_,1,"sh3-picker svelte-1rlwvrb",null,y,{"sh3-picker--sm":c()==="sm","sh3-picker--disabled":l()}),z(D,`${i(b)??""} of ${i(h)??""} selected`)}),k(e,_),oe()}ce(["click","change"]);function Dv(e,t){ie(t,!0);const n=new Set(["sh3-admin-app","sh3-store-app"]);let r=$(t,"value",31,()=>le([])),s=$(t,"disabled",3,!1),a=$(t,"size",3,"md");const o=H(()=>Wr().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)}Mv(e,{get items(){return i(o)},get value(){return r()},onchange:l,get disabled(){return s()},get size(){return a()},emptyText:"No apps installed."}),oe()}const zt=le({users:[],loading:!1,error:null});let ts=null;function Fc(){return ts||(zt.loading=!0,zt.error=null,ts=(async()=>{try{const e=await fetch("/api/admin/users",{credentials:"include"});if(!e.ok){zt.error=`GET /api/admin/users failed: ${e.status}`;return}zt.users=await e.json()}catch(e){zt.error=e.message}finally{zt.loading=!1,ts=null}})(),ts)}function Lv(e,t){ie(t,!0);let n=$(t,"value",31,()=>le([])),r=$(t,"disabled",3,!1),s=$(t,"size",3,"md");zt.users.length===0&&!zt.loading&&!zt.error&&Fc();const a=H(()=>zt.users.map(l=>({id:l.id,label:l.displayName||l.username,sublabel:l.username})));function o(l){n(l),t.onchange?.(l)}Mv(e,{get items(){return i(a)},get value(){return n()},onchange:o,get loading(){return zt.loading},get error(){return zt.error},onRetry:()=>void Fc(),emptyText:"No users found.",get disabled(){return r()},get size(){return s()}}),oe()}const Ex={hotInstall:typeof Blob<"u"&&typeof URL.createObjectURL=="function"},zv=["__sh3core__","shell","sh3-store","sh3-admin"],Ov=Object.freeze(Object.defineProperty({__proto__:null,AppPicker:Dv,Button:s0,COLOR_PICKER_POINT:mf,CONFLICT_RENDERER_POINT:vf,Collapsible:l0,ColorSwatch:jv,ConflictPermissionError:hf,ConflictSessionOrphanedError:vw,ConsentDeniedError:kv,FRAMEWORK_SHARD_IDS:zv,Field:p0,FilePicker:Q0,IconToggleGroup:N0,NumberInput:A0,PERMISSION_DOCUMENTS_BROWSE:bv,PERMISSION_DOCUMENTS_READ:gv,PERMISSION_DOCUMENTS_WRITE:yv,PERMISSION_KEYS_MINT:_v,PERMISSION_STATE_MANAGE:Ya,PERMISSION_SYNC_PEER:xk,PERMISSION_SYNC_POLICY:Sk,RangeSlider:U0,SHELL_MODE_CONTRIBUTION_POINT:fs,ScopeEscalationError:wv,Segmented:Rv,Select:hx,Slider:Pv,SliderGroup:W0,Textarea:_0,UserPicker:Lv,VERSION:on,activeShards:or,buildPackageMeta:vi,capabilities:Ex,clearTokenOverrides:Zk,closeTab:Sl,collapseChild:rk,dockFloat:iv,dockIntoActiveLayout:Il,erroredShards:Ra,expandChild:sk,fetchBundle:fi,fetchRegistries:Iv,focusTab:nk,focusView:ai,getActiveApp:rl,getAuthHeader:li,getIconSprite:Tv,getTokenOverrides:Av,getUser:Nr,inspectActiveLayout:nv,isAdmin:bt,isAuthenticated:po,isGuest:uv,launchApp:mn,listRegisteredApps:Wr,listVerbs:vl,locateSlot:lv,popoutView:av,provideIcons:$k,pushNavEntry:Ky,registerConsentListener:xv,registerShellMode:Xk,registeredShards:an,resolveConsent:go,returnToHome:Xr,runVerbProgrammatic:pv,setTokenOverrides:Jk,shell:sn,spawnSatellite:di,spliceIntoActiveLayout:tk,subscribeKeyRevocation:Cl,unregisterApp:si,validateRegistryIndex:Ev},Symbol.toStringTag,{value:"Module"})),Ix="/assets/SH3-BG5NVpSD.png",Ax="https://cdn.jsdelivr.net/npm/p5@1.11.13/lib/p5.min.js";let ns=null;function Cx(){return ns||(ns=new Promise((e,t)=>{const n=window.p5;if(n){e(n);return}const r=document.createElement("script");r.src=Ax,r.async=!0,r.onload=()=>e(window.p5),r.onerror=s=>{ns=null,t(s)},document.head.appendChild(r)}),ns)}var Tx=A('<h1 class="shell-title-fallback svelte-1ifjvh5">SH3</h1>'),Rx=A('<div class="shell-title svelte-1ifjvh5"></div>');function Px(e,t){ie(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=F(void 0),h=null,b=F(!1);const S=()=>m=>{const P=getComputedStyle(document.documentElement).getPropertyValue("--shell-accent").trim();let T,M,L=!1;m.setup=()=>{m.createCanvas(c,u),m.noSmooth(),m.noStroke(),m.textAlign(m.CENTER,m.CENTER),m.textFont("monospace"),m.textSize(10),m.textStyle(m.BOLD),M=m.loadImage(Ix,()=>{T=m.createGraphics(r,s),T.pixelDensity(1),T.image(M,0,0,r,s),T.loadPixels(),L=!0},()=>{x(b,!0)})},m.draw=()=>{if(!L)return;const j=m.millis()*.001;let D;m.clear(),m.background(0,0),m.fill(P);for(let C=0;C<s;C++)for(let O=0;O<r;O++){const q=(C*r+O)*4;if(T.pixels[q]<64){if(D=m.noise(O/r*2,C/s*2,j*.15),D>.33)continue;m.text(n[Math.floor(D*n.length*.25)],(O+.5)*a,(C+.5)*o);continue}D=m.noise(O/r*4,C/s*4,j*.5),m.text(n[Math.floor(D*n.length)],(O+.5)*a,(C+.5)*o)}}};xe(()=>{if(i(b))return;let m=!1;return Cx().then(I=>{if(!(m||!i(f)))try{h=new I(S(),i(f))}catch(P){console.error("[ShellTitle] p5 sketch failed to start",P),x(b,!0)}}).catch(I=>{console.error("[ShellTitle] failed to load p5 from CDN",I),x(b,!0)}),()=>{m=!0,h&&(h.remove(),h=null)}});var _=Be(),y=he(_);{var E=m=>{var I=Tx();k(m,I)},g=m=>{var I=Rx();He(I,"",{},{width:"216.7195767195767px",height:"80px","--shell-title-scale":d}),Le(I,P=>x(f,P),()=>i(f)),k(m,I)};K(y,m=>{i(b)?m(E):m(g,-1)})}k(e,_),oe()}async function hr(e,t){const n=await fetch(e,{credentials:"include",...t});if(!n.ok)throw new Error(`${t?.method??"GET"} ${e} failed: ${n.status}`);return n.json()}const fa={async list(){return(await hr("/api/projects",{method:"GET"})).projects},async listAll(){return(await hr("/api/projects/all",{method:"GET"})).projects},async get(e){return hr(`/api/projects/${encodeURIComponent(e)}`,{method:"GET"})},async create(e){return hr("/api/projects",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e)})},async update(e,t){return hr(`/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 hr(`/api/projects/${encodeURIComponent(e)}${n}`,{method:"DELETE"})}};var jx=A(`<div class="delete-project-dialog svelte-6j13aq"><div class="delete-project-dialog__title svelte-6j13aq"> </div> <div class="delete-project-dialog__body svelte-6j13aq">The project record will be removed and any members will lose access.
9
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 Mx(e,t){ie(t,!0);let n=F(void 0),r=F(!1),s=F(!1);xe(()=>{i(n)?.focus()});async function a(){if(!i(r)){x(r,!0);try{await t.onConfirm({wipeData:i(s)})}finally{t.close()}}}function o(){i(r)||(t.onCancel?.(),t.close())}var l=jx(),c=p(l),u=p(c);v(c);var d=w(c,4),f=p(d);ge(f);var h=w(f,2),b=w(p(h)),S=p(b);v(b),v(h),v(d);var _=w(d,2),y=p(_);Le(y,g=>x(n,g),()=>i(n));var E=w(y,2);v(_),v(l),N(()=>{z(u,`Delete project '${t.projectName??""}'?`),f.disabled=i(r),z(S,`<dataDir>/docs/${t.projectId??""}/`),y.disabled=i(r),E.disabled=i(r)}),cs(f,()=>i(s),g=>x(s,g)),U("click",y,o),U("click",E,a),k(e,l),oe()}ce(["click"]);var Dx=A('<p class="project-id svelte-1oy3640">ID: <code class="svelte-1oy3640"> </code></p>'),Lx=A('<span class="hint svelte-1oy3640">Your id: <code class="svelte-1oy3640"> </code> </span>'),zx=A('<p class="error svelte-1oy3640"> </p>'),Ox=A('<button type="button" class="danger svelte-1oy3640">Delete</button>'),Nx=A('<div class="project-manage svelte-1oy3640"><div class="body svelte-1oy3640"><h2 class="svelte-1oy3640"> </h2> <!> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">Name</span> <input type="text" placeholder="Acme Website" class="svelte-1oy3640"/></label> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">Description</span> <textarea class="svelte-1oy3640"></textarea></label> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">Members</span> <!> <!></label> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">App allowlist</span> <!></label> <!></div> <div class="actions svelte-1oy3640"><button type="button" class="primary svelte-1oy3640"> </button> <button type="button" class="svelte-1oy3640">Cancel</button> <!></div></div>');function qx(e,t){ie(t,!0);let n=$(t,"project",3,null);const r=H(()=>n()!==null),s=H(Nr);let a=F(le(_e(()=>n()?.name??""))),o=F(le(_e(()=>n()?.description??""))),l=F(le(_e(()=>{if(n())return[...n().members];const J=Nr()?.id;return J?[J]:[]}))),c=F(le(_e(()=>n()?[...n().appAllowlist]:[]))),u=F(!1),d=F(null);async function f(){if(!i(a).trim()){x(d,"Name is required");return}x(u,!0),x(d,null);const J={name:i(a).trim(),description:i(o).trim()||void 0,members:i(l),appAllowlist:i(c)};try{i(r)&&n()?await fa.update(n().id,J):await fa.create(J),await ja(),t.onClose()}catch(B){x(d,B.message,!0)}finally{x(u,!1)}}function h(){if(!i(r)||!n())return;const J=n();Kt.open(Mx,{projectName:J.name,projectId:J.id,onConfirm:async({wipeData:B})=>{x(u,!0),x(d,null);try{await fa.delete(J.id,{wipeData:B}),await ja(),t.onClose()}catch(W){x(d,W.message,!0)}finally{x(u,!1)}}})}var b=Nx(),S=p(b),_=p(S),y=p(_,!0);v(_);var E=w(_,2);{var g=J=>{var B=Dx(),W=w(p(B)),ae=p(W,!0);v(W),v(B),N(()=>z(ae,n().id)),k(J,B)};K(E,J=>{i(r)&&J(g)})}var m=w(E,2),I=w(p(m),2);ge(I),v(m);var P=w(m,2),T=w(p(P),2);Bo(T),ne(T,"rows",2),v(P);var M=w(P,2),L=w(p(M),2);Lv(L,{get disabled(){return i(u)},get value(){return i(l)},set value(J){x(l,J,!0)}});var j=w(L,2);{var D=J=>{var B=Lx(),W=w(p(B)),ae=p(W,!0);v(W);var G=w(W);v(B),N(()=>{z(ae,i(s).id),z(G,` (${i(s).username??i(s).displayName??""})`)}),k(J,B)};K(j,J=>{i(s)&&J(D)})}v(M);var C=w(M,2),O=w(p(C),2);Dv(O,{get disabled(){return i(u)},get value(){return i(c)},set value(J){x(c,J,!0)}}),v(C);var q=w(C,2);{var R=J=>{var B=zx(),W=p(B,!0);v(B),N(()=>z(W,i(d))),k(J,B)};K(q,J=>{i(d)&&J(R)})}v(S);var V=w(S,2),X=p(V),Y=p(X,!0);v(X);var Q=w(X,2),Z=w(Q,2);{var se=J=>{var B=Ox();N(()=>B.disabled=i(u)),U("click",B,h),k(J,B)};K(Z,J=>{i(r)&&J(se)})}v(V),v(b),N(()=>{z(y,i(r)?`Edit ${n().name}`:"Create Project"),I.disabled=i(u),T.disabled=i(u),X.disabled=i(u),z(Y,i(r)?"Save":"Create"),Q.disabled=i(u)}),Se(I,()=>i(a),J=>x(a,J)),Se(T,()=>i(o),J=>x(o,J)),U("click",X,f),U("click",Q,function(...J){t.onClose?.apply(this,J)}),k(e,b),oe()}ce(["click"]);const Ot=le({projects:[],loading:!1,error:null});async function ja(){Ot.loading=!0,Ot.error=null;try{Ot.projects=await fa.list()}catch(e){Ot.error=e.message}finally{Ot.loading=!1}}const yo="projects:manage";let _o=null;function Bx(){const e=_o;return _o=null,e}function wo(e){_o=e,Ce.open(yo,{title:e?`Edit ${e.name}`:"Create Project",size:{w:560,h:620},dismissable:!0})}const Nv={manifest:{id:"__projects__",label:"Projects",version:on,views:[{id:yo,label:"Project Manager"}]},activate(e){ja(),typeof document<"u"&&document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&ja()});const t={mount(r,s){const a=Bx(),o=Ce.list(),l=o.length>0?o[o.length-1].id:null,u=qe(qx,{target:r,props:{project:a,onClose:()=>{l&&Ce.close(l)}}});return{unmount(){Xe(u)}}}};e.registerView(yo,t),e.actions.register({id:"sh3.project.create",label:"Create Project…",scope:["home","app"],paletteItem:!0,disabled:()=>!bt(),run:()=>{bt()&&wo(null)}}),e.actions.register({id:"sh3.project.manage",label:"Manage Project…",scope:["home","app"],submenu:!0,paletteItem:!0,disabled:()=>!bt()});const n=new Map;Ur(()=>{xe(()=>{const r=new Set;for(const s of Ot.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=Ot.projects.find(l=>l.id===s.id);o&&wo(o)}});n.set(s.id,a)}for(const s of[...n.keys()])r.has(s)||(n.get(s)(),n.delete(s))})})},autostart(){}};var Vx=A('<button type="button" class="project-card-edit svelte-yosqc3" aria-label="Edit project" title="Edit project">⚙</button>'),Fx=A('<div class="project-card-wrap svelte-yosqc3"><button type="button"><span class="project-name svelte-yosqc3"> </span> <span class="project-meta svelte-yosqc3"> </span></button> <!></div>'),Ux=A('<section class="projects-section svelte-yosqc3"><h2 class="projects-heading svelte-yosqc3">Projects</h2> <div class="projects-grid svelte-yosqc3"></div></section>');function Hx(e,t){ie(t,!0);const n=H(()=>Ot.projects.length>0),r=H(()=>ir.activeProjectId),s=H(bt);function a(d){Zf(i(r)===d?null:d)}function o(d,f){f.stopPropagation();const h=Ot.projects.find(b=>b.id===d)??null;h&&wo(h)}var l=Be(),c=he(l);{var u=d=>{var f=Ux(),h=w(p(f),2);pe(h,21,()=>Ot.projects,b=>b.id,(b,S)=>{var _=Fx(),y=p(_);let E;var g=p(y),m=p(g,!0);v(g);var I=w(g,2),P=p(I);v(I),v(y);var T=w(y,2);{var M=L=>{var j=Vx();U("click",j,D=>o(i(S).id,D)),k(L,j)};K(T,L=>{i(s)&&L(M)})}v(_),N(()=>{E=de(y,1,"project-card svelte-yosqc3",null,E,{active:i(r)===i(S).id}),ne(y,"title",i(S).description??`${i(S).members.length} member${i(S).members.length===1?"":"s"}`),z(m,i(S).name),z(P,`${i(S).members.length??""} member${i(S).members.length===1?"":"s"}`)}),U("click",y,()=>a(i(S).id)),k(b,_)}),v(h),v(f),k(d,f)};K(c,d=>{i(n)&&d(u)})}k(e,l),oe()}ce(["click"]);let pt=null;function Kx(e){pt=e}function Wx(){pt=null}function lr(){return pt?.user.layouts??[]}function Yx(e){pt&&(pt.user.layouts=[...pt.user.layouts,e])}function qv(e,t){if(!pt)return;const n=pt.user.layouts.findIndex(s=>s.id===e);if(n<0)return;const r=[...pt.user.layouts];r[n]={...r[n],...t},pt.user.layouts=r}function Gx(e){pt&&(pt.user.layouts=pt.user.layouts.filter(t=>t.id!==e))}function Xx(){pt={ephemeral:{},session:{},workspace:{},user:{layouts:[]}}}Xx();function pi(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=pi(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 Bv(e){return JSON.parse(JSON.stringify(e))}function Jx(e,t){const n=Ce.list().find(s=>s.id===e);if(!n)return null;const r=pi(n.content,t);return r===null?null:{size:{w:n.size.w,h:n.size.h},content:Bv(r)}}function Vv(e,t,n){const r=pi(e.content,t);return r===null?(n(`Saved layout "${e.name}" has no available standalone views`,"warn"),""):Ce.openWithContent({content:Bv(r),size:{w:e.size.w,h:e.size.h},title:e.name})}var Zx=A('<button type="button" data-sh3-scope="element:saved-layout"><span class="saved-layout-card-square svelte-1ncltuf"><svg class="saved-layout-card-icon svelte-1ncltuf"><use></use></svg></span> <span class="saved-layout-card-label svelte-1ncltuf"> </span></button>'),Qx=A('<section class="saved-layouts-section svelte-1ncltuf"><h2 class="saved-layouts-heading svelte-1ncltuf">Saved Layouts</h2> <div class="saved-layouts-grid svelte-1ncltuf"></div></section>');function $x(e,t){ie(t,!0);const n=H(lr),r=$a("__layouts__");function s(f){return Es().some(h=>h.viewId===f)}function a(f,h){vn.notify(f,{level:h})}function o(f){const h=lr().find(b=>b.id===f);h&&Vv(h,s,a)}function l(f,h){f.preventDefault(),r.set({type:"saved-layout",ref:{layoutId:h}}),sn.actions.openContextMenu({x:f.clientX,y:f.clientY,scope:{element:"saved-layout"}})}var c=Be(),u=he(c);{var d=f=>{var h=Qx(),b=w(p(h),2);pe(b,21,()=>i(n),S=>S.id,(S,_)=>{var y=Zx();let E,g;var m=p(y),I=p(m),P=p(I);v(I),v(m);var T=w(m,2),M=p(T,!0);v(T),v(y),N(()=>{E=de(y,1,"saved-layout-card svelte-1ncltuf",null,E,{"saved-layout-card--tinted":i(_).appearance?.color}),ne(y,"data-saved-layout-id",i(_).id),g=He(y,"",g,{"--card-color":i(_).appearance?.color??"transparent"}),ne(P,"href",`${On}#${i(_).appearance?.icon??"eye"??""}`),z(M,i(_).name)}),U("click",y,()=>o(i(_).id)),U("contextmenu",y,L=>l(L,i(_).id)),k(S,y)}),v(b),v(h),k(f,h)};K(u,f=>{i(n).length>0&&f(d)})}k(e,c),oe()}ce(["click","contextmenu"]);const Fc=["activity","align-horizontal-justify-center","align-horizontal-justify-end","align-horizontal-justify-start","app-window","archive","archive-restore","axis-3d","box","brick-wall","bug","building-2","cable","calendar","camera","check","chevron-down","chevron-right","circle-check","circle-dot","circle-minus","circle-x","clipboard","clipboard-paste","clock","compass","component","copy","cpu","crop","crosshair","crown","dollar-sign","download","droplet","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","minimize","moon","mouse-pointer","move","move-3d","music","navigation","network","notebook-pen","palette","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 eS=A('<span class="sh3-icon-picker__label svelte-h9dluc"> </span>'),tS=A('<button type="button"><svg viewBox="0 0 24 24" class="svelte-h9dluc"><use></use></svg></button>'),nS=A('<div><!> <input type="search" placeholder="Search icons…" aria-label="Filter icons" class="svelte-h9dluc"/> <div class="sh3-icon-picker__grid svelte-h9dluc"><button type="button" aria-label="No icon">×</button> <!></div></div>');function rS(e,t){ie(t,!0);let n=$(t,"value",15,void 0),r=$(t,"disabled",3,!1),s=F("");const a=H(()=>i(s).trim()===""?Fc:Fc.filter(y=>y.includes(i(s).trim().toLowerCase())));function o(y){r()||(n(y),t.onchange?.(y))}var l=nS();let c;var u=p(l);{var d=y=>{var E=eS(),g=p(E,!0);v(E),N(()=>z(g,t.label)),k(y,E)};K(u,y=>{t.label&&y(d)})}var f=w(u,2);ge(f);var h=w(f,2),b=p(h);let S;var _=w(b,2);pe(_,16,()=>i(a),y=>y,(y,E)=>{var g=tS();let m;var I=p(g),P=p(I);v(I),v(g),N(()=>{m=de(g,1,"sh3-icon-picker__tile svelte-h9dluc",null,m,{"sh3-icon-picker__tile--selected":n()===E}),ne(g,"aria-label",E),ne(g,"title",E),g.disabled=r(),ne(P,"href",`${On}#${E??""}`)}),U("click",g,()=>o(E)),k(y,g)}),v(h),v(l),N(()=>{c=de(l,1,"sh3-icon-picker svelte-h9dluc",null,c,{"sh3-icon-picker--disabled":r()}),f.disabled=r(),S=de(b,1,"sh3-icon-picker__tile sh3-icon-picker__tile--none svelte-h9dluc",null,S,{"sh3-icon-picker__tile--selected":n()===void 0}),b.disabled=r()}),Se(f,()=>i(s),y=>x(s,y)),U("click",b,()=>o(void 0)),k(e,l),oe()}ce(["click"]);var sS=A('<em class="svelte-1v8d4f6">(empty = default)</em>'),aS=A('<button type="button" class="link svelte-1v8d4f6">Change icon</button>'),iS=A('<!> <button type="button" class="link link--align-right svelte-1v8d4f6">Hide picker</button>',1),oS=A('<div class="app-appearance svelte-1v8d4f6"><h2 class="svelte-1v8d4f6"> </h2> <div class="preview svelte-1v8d4f6"><div><span class="preview-card-square svelte-1v8d4f6"><svg class="preview-card-icon svelte-1v8d4f6"><use></use></svg></span> <span class="preview-card-label svelte-1v8d4f6"> </span></div></div> <label class="row svelte-1v8d4f6"><span class="svelte-1v8d4f6">Name <!></span> <input type="text" class="name-input svelte-1v8d4f6"/></label> <div class="row svelte-1v8d4f6"><span class="svelte-1v8d4f6">Icon</span> <!></div> <label class="row svelte-1v8d4f6"><span class="svelte-1v8d4f6">Color</span> <!></label> <div class="actions svelte-1v8d4f6"><button type="button" class="primary svelte-1v8d4f6">Save</button> <button type="button" data-role="reset" class="svelte-1v8d4f6">Reset</button> <button type="button" class="svelte-1v8d4f6">Cancel</button></div></div>');function Fv(e,t){ie(t,!0);const n=_e(()=>t.initialAppearance);let r=F(le(n?.icon)),s=F(le(n?.color)),a=F(le(_e(()=>t.entityLabel))),o=F(n?.icon!==void 0);const l=H(()=>i(a).trim()),c=H(()=>t.requireLabel&&i(l)===""),u=H(()=>i(l)===""?t.entityLabel:i(l)),d=H(()=>i(r)??t.defaultIcon),f=H(()=>n!==void 0);function h(){i(c)||(t.onSave({label:i(l),icon:i(r),color:i(s)}),t.close())}function b(){t.onReset(),t.close()}var S=oS(),_=p(S),y=p(_);v(_);var E=w(_,2),g=p(E);let m,I;var P=p(g),T=p(P),M=p(T);v(T),v(P);var L=w(P,2),j=p(L,!0);v(L),v(g),v(E);var D=w(E,2),C=p(D),O=w(p(C));{var q=G=>{var ue=sS();k(G,ue)};K(O,G=>{t.requireLabel||G(q)})}v(C);var R=w(C,2);ge(R),v(D);var V=w(D,2),X=w(p(V),2);{var Y=G=>{var ue=aS();U("click",ue,()=>x(o,!0)),k(G,ue)},Q=G=>{var ue=iS(),be=he(ue);rS(be,{get value(){return i(r)},set value(Me){x(r,Me,!0)}});var at=w(be,2);U("click",at,()=>x(o,!1)),k(G,ue)};K(X,G=>{i(o)?G(Q,-1):G(Y)})}v(V);var Z=w(V,2),se=w(p(Z),2);{let G=H(()=>i(s)??"#888888");jv(se,{get value(){return i(G)},onchange:ue=>x(s,ue,!0)})}v(Z);var J=w(Z,2),B=p(J),W=w(B,2),ae=w(W,2);v(J),v(S),N(()=>{z(y,`Customize ${t.entityLabel??""}`),m=de(g,1,"preview-card svelte-1v8d4f6",null,m,{"preview-card--tinted":i(s)!==void 0}),I=He(g,"",I,{"--card-color":i(s)??"transparent"}),ne(M,"href",`${On}#${i(d)??""}`),z(j,i(u)),ne(R,"placeholder",t.entityLabel),B.disabled=i(c),W.disabled=!i(f)}),Se(R,()=>i(a),G=>x(a,G)),U("click",B,h),U("click",W,b),U("click",ae,()=>t.close()),k(e,S),oe()}ce(["click"]);let Xn=null;function lS(e){Xn=e}function cS(){Xn=null}function Uv(e){return e.icon===void 0&&e.color===void 0&&e.label===void 0}function ko(e){const t=Xn?.user.overrides;if(!t)return;const n=t[e];if(n&&!Uv(n))return n}function Uc(e,t){if(!Xn)return;const r={...Xn.user.overrides};t===void 0||Uv(t)?delete r[e]:r[e]=t,Xn.user.overrides=r}function uS(){Xn={ephemeral:{},session:{},workspace:{},user:{overrides:{}}}}uS();function dS(){const e=Ks();return!e||e.type!=="app"?null:e.ref}function fS(e){const t=dS();if(!t)return;const n=Wr().find(l=>l.id===t.appId),r=n?.label??t.appId,s=n?.icon??"box",a=ko(t.appId),o={entityLabel:a?.label??r,initialAppearance:a,defaultIcon:s,requireLabel:!1,onSave:l=>{Uc(t.appId,{label:l.label===""?void 0:l.label,icon:l.icon,color:l.color})},onReset:()=>Uc(t.appId,void 0)};Kt.open(Fv,o)}const Hv={manifest:{id:"__app-appearance__",label:"App Appearance",version:on,views:[]},activate(e){const t=e.state({user:{overrides:{}}});lS(t);const n={id:"app.customize",label:"Customize…",scope:{element:"app"},contextItem:!0,group:"appearance",run:fS};e.actions.register(n)},autostart(){},deactivate(){cS()}};var vS=A('<button type="button" data-sh3-scope="element:app"><span class="shell-home-card-square svelte-cpn2x2"><svg class="shell-home-card-icon svelte-cpn2x2"><use></use></svg></span> <span class="shell-home-card-label svelte-cpn2x2"> </span></button>'),hS=A('<section class="shell-home-section svelte-cpn2x2"><h2 class="shell-home-section-title svelte-cpn2x2">Apps</h2> <div class="shell-home-grid svelte-cpn2x2"></div></section>'),pS=A('<button type="button" data-sh3-scope="element:app"><span class="shell-home-card-square svelte-cpn2x2"><svg class="shell-home-card-icon svelte-cpn2x2"><use></use></svg></span> <span class="shell-home-card-label svelte-cpn2x2"> </span></button>'),mS=A('<section class="shell-home-section svelte-cpn2x2"><h2 class="shell-home-section-title svelte-cpn2x2">Admin</h2> <div class="shell-home-grid svelte-cpn2x2"></div></section>'),bS=A('<p class="shell-home-empty svelte-cpn2x2"><!></p>'),gS=A('<div class="shell-home svelte-cpn2x2"><header class="shell-home-header svelte-cpn2x2"><div class="shell-home-title-row svelte-cpn2x2"><!> <span class="shell-home-version svelte-cpn2x2"> </span> <span class="shell-home-alpha svelte-cpn2x2">alpha</span></div> <div class="shell-home-credit svelte-cpn2x2">Art: by <a href="https://www.andbc.co/" target="_blank" rel="noopener noreferrer" class="svelte-cpn2x2">andbc</a></div></header> <div class="shell-home-filter svelte-cpn2x2"><input type="search" placeholder="Filter apps…" aria-label="Filter apps by name" class="shell-home-filter-input svelte-cpn2x2"/></div> <!> <!> <!> <!> <!></div>');function yS(e,t){ie(t,!0);const n=$a("__sh3core__");function r(q,R){q.preventDefault(),n.set({type:"app",ref:{appId:R}}),sn.actions.openContextMenu({x:q.clientX,y:q.clientY,scope:{element:"app"}})}let s=F("");const a=H(Wr),o=H(bt),l=H(()=>ir.activeProjectId?Ot.projects.find(q=>q.id===ir.activeProjectId)??null:null);function c(q,R){if(!R)return!0;const V=R.toLowerCase();return q.label.toLowerCase().includes(V)||q.id.toLowerCase().includes(V)}function u(q){return i(l)?i(l).appAllowlist.includes(q):!0}const d=H(()=>i(a).filter(q=>!q.admin&&c(q,i(s))&&u(q.id))),f=H(()=>i(a).filter(q=>q.admin&&c(q,i(s)))),h=H(()=>i(d).length+(i(o)?i(f).length:0));var b=gS(),S=p(b),_=p(S),y=p(_);Px(y,{});var E=w(y,2),g=p(E);v(E),qt(2),v(_),qt(2),v(S);var m=w(S,2),I=p(m);ge(I),v(m);var P=w(m,2);Hx(P,{});var T=w(P,2);$x(T,{});var M=w(T,2);{var L=q=>{var R=hS(),V=w(p(R),2);pe(V,21,()=>i(d),X=>X.id,(X,Y)=>{const Q=H(()=>ko(i(Y).id));var Z=vS();let se,J;var B=p(Z),W=p(B),ae=p(W);v(W),v(B);var G=w(B,2),ue=p(G,!0);v(G),v(Z),N(()=>{se=de(Z,1,"shell-home-card svelte-cpn2x2",null,se,{"shell-home-card--tinted":i(Q)?.color}),J=He(Z,"",J,{"--card-color":i(Q)?.color??"transparent"}),ne(ae,"href",`${On}#${i(Q)?.icon??i(Y).icon??"box"??""}`),z(ue,i(Q)?.label??i(Y).label)}),U("click",Z,()=>mn(i(Y).id)),U("contextmenu",Z,be=>r(be,i(Y).id)),k(X,Z)}),v(V),v(R),k(q,R)};K(M,q=>{i(d).length>0&&q(L)})}var j=w(M,2);{var D=q=>{var R=mS(),V=w(p(R),2);pe(V,21,()=>i(f),X=>X.id,(X,Y)=>{const Q=H(()=>ko(i(Y).id));var Z=pS();let se,J;var B=p(Z),W=p(B),ae=p(W);v(W),v(B);var G=w(B,2),ue=p(G,!0);v(G),v(Z),N(()=>{se=de(Z,1,"shell-home-card svelte-cpn2x2",null,se,{"shell-home-card--tinted":i(Q)?.color}),J=He(Z,"",J,{"--card-color":i(Q)?.color??"transparent"}),ne(ae,"href",`${On}#${i(Q)?.icon??i(Y).icon??"box"??""}`),z(ue,i(Q)?.label??i(Y).label)}),U("click",Z,()=>mn(i(Y).id)),U("contextmenu",Z,be=>r(be,i(Y).id)),k(X,Z)}),v(V),v(R),k(q,R)};K(j,q=>{i(o)&&i(f).length>0&&q(D)})}var C=w(j,2);{var O=q=>{var R=bS(),V=p(R);{var X=Q=>{var Z=$t("No apps registered.");k(Q,Z)},Y=Q=>{var Z=$t();N(()=>z(Z,`No apps match “${i(s)??""}”.`)),k(Q,Z)};K(V,Q=>{i(a).length===0?Q(X):Q(Y,-1)})}v(R),k(q,R)};K(C,q=>{i(h)===0&&q(O)})}v(b),N(()=>z(g,`v${on}`)),Se(I,()=>i(s),q=>x(s,q)),k(e,b),oe()}ce(["click","contextmenu"]);var _S=A('<p class="keys-peers-muted svelte-19l5m7c">Loading...</p>'),wS=A('<p class="keys-peers-error svelte-19l5m7c"> </p>'),kS=A('<p class="keys-peers-muted svelte-19l5m7c">No keys yet. Shards will ask your permission before creating one.</p>'),xS=A('<button type="button" class="keys-peers-btn-danger svelte-19l5m7c">Confirm</button> <button type="button" class="keys-peers-btn-secondary svelte-19l5m7c">Cancel</button>',1),SS=A('<button type="button" class="keys-peers-btn-danger svelte-19l5m7c">Revoke</button>'),ES=A('<li class="keys-peers-item svelte-19l5m7c"><div class="keys-peers-info svelte-19l5m7c"><span class="keys-peers-label svelte-19l5m7c"> </span> <span class="keys-peers-meta svelte-19l5m7c"> </span> <span class="keys-peers-meta svelte-19l5m7c"> </span> <span class="keys-peers-meta svelte-19l5m7c"> </span></div> <div class="keys-peers-actions svelte-19l5m7c"><!></div></li>'),IS=A('<ul class="keys-peers-list svelte-19l5m7c"></ul>'),AS=A('<div class="keys-peers svelte-19l5m7c"><div class="keys-peers-header svelte-19l5m7c"><h2 class="svelte-19l5m7c">Keys &amp; Peers</h2></div> <!></div>');function CS(e,t){ie(t,!0);let n=F(le([])),r=F(null),s=F(!0),a=F(null);async function o(){x(r,null),x(s,!0);try{const _=await fetch("/api/keys",{credentials:"include"});if(!_.ok)throw new Error(`HTTP ${_.status}`);x(n,await _.json(),!0)}catch(_){x(r,_ instanceof Error?_.message:String(_),!0)}finally{x(s,!1)}}async function l(_){x(a,null);const y=await fetch(`/api/keys/${encodeURIComponent(_)}`,{method:"DELETE",credentials:"include"});(y.ok||y.status===404)&&x(n,i(n).filter(E=>E.id!==_),!0)}function c(_){return new Date(_).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}xe(()=>{o()}),xe(()=>Al("*",()=>{o()}));var u=AS(),d=w(p(u),2);{var f=_=>{var y=_S();k(_,y)},h=_=>{var y=wS(),E=p(y);v(y),N(()=>z(E,`Failed to load: ${i(r)??""}`)),k(_,y)},b=_=>{var y=kS();k(_,y)},S=_=>{var y=IS();pe(y,21,()=>i(n),E=>E.id,(E,g)=>{var m=ES(),I=p(m),P=p(I),T=p(P,!0);v(P);var M=w(P,2),L=p(M);v(M);var j=w(M,2),D=p(j);v(j);var C=w(j,2),O=p(C);v(C),v(I);var q=w(I,2),R=p(q);{var V=Y=>{var Q=xS(),Z=he(Q),se=w(Z,2);U("click",Z,()=>l(i(g).id)),U("click",se,()=>{x(a,null)}),k(Y,Q)},X=Y=>{var Q=SS();U("click",Q,()=>{x(a,i(g).id,!0)}),k(Y,Q)};K(R,Y=>{i(a)===i(g).id?Y(V):Y(X,-1)})}v(q),v(m),N((Y,Q,Z)=>{z(T,i(g).label),z(L,`Minted by: ${i(g).mintedByShardId??"system"??""}${i(g).peerRole||i(g).peerId?` · Peer: ${i(g).peerRole??"—"}${i(g).peerId?` (${i(g).peerId})`:""}`:""}`),z(D,`Scopes: ${Y??""}`),z(O,`Created: ${Q??""} · Expires: ${Z??""}`)},[()=>i(g).scopes.join(", "),()=>c(i(g).createdAt),()=>i(g).expiresAt?c(i(g).expiresAt):"never"]),k(E,m)}),v(y),k(_,y)};K(d,_=>{i(s)?_(f):i(r)?_(h,1):i(n).length===0?_(b,2):_(S,-1)})}v(u),k(e,u),oe()}ce(["click"]);var TS=A('<div class="confirm-dialog svelte-1k1962w"><div class="confirm-dialog-title svelte-1k1962w"> </div> <div class="confirm-dialog-body svelte-1k1962w"> </div> <div class="confirm-dialog-actions svelte-1k1962w"><button type="button" class="confirm-dialog-btn confirm-dialog-btn-cancel svelte-1k1962w" data-confirm-dialog-cancel=""> </button> <button type="button" data-confirm-dialog-confirm=""> </button></div></div>');function Kv(e,t){ie(t,!0);let n=$(t,"confirmLabel",3,"Confirm"),r=$(t,"cancelLabel",3,"Cancel"),s=$(t,"confirmTone",3,"default"),a=F(void 0),o=F(!1);xe(()=>{i(a)?.focus()});async function l(){if(!i(o)){x(o,!0);try{await t.onConfirm()}finally{t.close()}}}function c(){i(o)||(t.onCancel?.(),t.close())}var u=TS(),d=p(u),f=p(d,!0);v(d);var h=w(d,2),b=p(h,!0);v(h);var S=w(h,2),_=p(S),y=p(_,!0);v(_),Le(_,I=>x(a,I),()=>i(a));var E=w(_,2);let g;var m=p(E,!0);v(E),v(S),v(u),N(()=>{z(f,t.title),z(b,t.body),_.disabled=i(o),z(y,r()),g=de(E,1,"confirm-dialog-btn svelte-1k1962w",null,g,{"confirm-dialog-btn-danger":s()==="danger","confirm-dialog-btn-default":s()==="default"}),E.disabled=i(o),z(m,n())}),U("click",_,c),U("click",E,l),k(e,u),oe()}ce(["click"]);const Hc=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 Mi(e,t){const n=Object.keys(t),r=n.filter(o=>!Hc.has(o)),s=n.filter(o=>Hc.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 jl=globalThis;jl.__sh3__=Ov;jl.__sh3_svelte__=Ld;jl.__sh3_svelte_internal_client__=Gd;const Ml={"sh3-core":Mi("__sh3__",Ov),svelte:Mi("__sh3_svelte__",Ld),"svelte/internal/client":Mi("__sh3_svelte_internal_client__",Gd)};Ml["svelte/internal/disclose-version"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));Ml["sh3-core/tokens.css"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));const RS=/(?:from|import)\s*(['"])(sh3-core(?:\/[^'"]*)?|svelte(?:\/[^'"]*)?)\1/g;function PS(e){return e.replace(RS,(t,n,r)=>{const s=Ml[r];return s?`${t.startsWith("from")?"from":"import"} '${s}'`:t})}async function Ys(e){const t=new TextDecoder().decode(e),n=PS(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;jS(c)?o.shards.push(c):MS(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 jS(e){return"activate"in e&&typeof e.activate=="function"&&Array.isArray(e.manifest.views)}function MS(e){return"initialLayout"in e&&Array.isArray(e.manifest.requiredShards)}const DS="sh3-packages",LS=1,As="bundles",qr="meta";function Gs(){return new Promise((e,t)=>{const n=indexedDB.open(DS,LS);n.onupgradeneeded=()=>{const r=n.result;r.objectStoreNames.contains(As)||r.createObjectStore(As),r.objectStoreNames.contains(qr)||r.createObjectStore(qr)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}function cr(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 Wv(e,t,n){const r=await Gs();await cr(r,As,"readwrite",s=>s.put(t,e)),await cr(r,qr,"readwrite",s=>s.put(n,e)),r.close()}async function Yv(e){const t=await Gs(),n=await cr(t,As,"readonly",r=>r.get(e));return t.close(),n??null}async function zS(e){const t=await Gs(),n=await cr(t,qr,"readonly",r=>r.get(e));return t.close(),n??null}async function Gv(){const e=await Gs(),t=await cr(e,qr,"readonly",n=>n.getAll());return e.close(),t??[]}async function OS(e){const t=await Gs();await cr(t,As,"readwrite",n=>n.delete(e)),await cr(t,qr,"readwrite",n=>n.delete(e)),t.close()}function Dl(e,t){for(const n of e.shards)n.manifest={...n.manifest,version:t.version},ci(n);for(const n of e.apps)n.manifest={...n.manifest,version:t.version},gs(n)}const NS={"state:manage":{title:"Manage shell state zones",description:"Read and write state zones belonging to other shards."},"documents:browse":{title:"Browse tenant documents",description:"Observe all documents stored by the current tenant."},"documents:read":{title:"Read tenant documents",description:"Read the content of any document in the current tenant, across all shards. Required for backup connectors that need to pull document bodies (not just metadata) out of other shards."},"documents:write":{title:"Write tenant documents",description:"Create and overwrite documents in any shard's namespace within the current tenant. Required for restore-class connectors that re-import documents back into their owning shards."},"documents:sync":{title:"Sync documents with peers",description:"Participate in cross-peer document synchronization."},"sync:peer":{title:"Act as a sync peer",description:"Exchange document updates with remote peers."},"sync:policy":{title:"Define sync policy",description:"Configure which documents sync and with whom."},"keys:mint":{title:"Mint API keys",description:"Issue long-lived access tokens for this shell."}};function Di(e){return NS[e]??{title:e,description:"Unknown permission."}}function Ll(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 zl(e,t,n){if(!t.integrity)return{success:!1,hotLoaded:!1,error:"Missing integrity hash — refusing to install unverified bundle"};try{await Tl(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 Ys(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:Ll(r)};try{await Wv(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{ui(t.id)}catch{}(t.type==="app"||t.type==="combo")&&si(t.id);let a=!0;try{Dl(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 qS(e){try{ui(e)}catch{}si(e),await OS(e)}async function BS(){return Gv()}async function Xv(){let e;try{e=await Gv()}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 Yv(t.id);if(!n){console.warn(`[sh3] No bundle found for installed package "${t.id}", skipping`);continue}const r=await Ys(n);Dl(r,{version:t.version,sourceRegistry:t.sourceRegistry,contractVersion:t.contractVersion}),r.shards.length===0&&r.apps.length===0&&console.warn(`[sh3] Package "${t.id}" contains no valid shards or apps, skipping`)}catch(n){console.warn(`[sh3] Failed to load installed package "${t.id}":`,n instanceof Error?n.message:n)}}const Kc={version:1};var VS=A('<span class="perm-modal-author svelte-1ipp1r6"> </span>'),FS=A('<p class="perm-modal-empty svelte-1ipp1r6">This package requires no special permissions.</p>'),US=A('<li class="perm-modal-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6"> </div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),HS=A('<p class="perm-modal-intro svelte-1ipp1r6">This package requests the following permissions:</p> <ul class="perm-modal-list svelte-1ipp1r6"></ul>',1),KS=A('<li class="perm-modal-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6"> </div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),WS=A('<p class="perm-modal-intro svelte-1ipp1r6">New permissions in this update:</p> <ul class="perm-modal-list perm-modal-added svelte-1ipp1r6"></ul>',1),YS=A('<li class="perm-modal-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6"> </div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),GS=A('<p class="perm-modal-intro svelte-1ipp1r6">Permissions no longer requested:</p> <ul class="perm-modal-list perm-modal-removed svelte-1ipp1r6"></ul>',1),XS=A("<!> <!>",1),JS=A('<div class="perm-modal-backdrop svelte-1ipp1r6" role="dialog" aria-modal="true" tabindex="-1"><div class="perm-modal-panel svelte-1ipp1r6" role="document"><header class="perm-modal-header svelte-1ipp1r6"><h3 class="svelte-1ipp1r6"> </h3> <div class="perm-modal-subtitle svelte-1ipp1r6"><!> <!></div></header> <div class="perm-modal-body svelte-1ipp1r6"><!></div> <footer class="perm-modal-footer svelte-1ipp1r6"><button class="perm-modal-cancel svelte-1ipp1r6">Cancel</button> <button class="perm-modal-confirm svelte-1ipp1r6"> </button></footer></div></div>');function xo(e,t){ie(t,!0);const n=$(t,"permissions",19,()=>[]),r=$(t,"added",19,()=>[]),s=$(t,"removed",19,()=>[]),a=H(()=>t.mode==="install"?"Install":"Update");var o=JS(),l=p(o),c=p(l),u=p(c),d=p(u);v(u);var f=w(u,2),h=p(f);{var b=j=>{var D=$t();N(()=>z(D,`${t.fromVersion??""} → ${t.pkg.version??""}`)),k(j,D)},S=j=>{var D=$t();N(()=>z(D,`v${t.pkg.version??""}`)),k(j,D)};K(h,j=>{t.mode==="update"&&t.fromVersion?j(b):j(S,-1)})}var _=w(h,2);{var y=j=>{var D=VS(),C=p(D);v(D),N(()=>z(C,`by ${t.pkg.author??""}`)),k(j,D)};K(_,j=>{t.pkg.author&&j(y)})}v(f),v(c);var E=w(c,2),g=p(E);{var m=j=>{var D=Be(),C=he(D);{var O=R=>{var V=FS();k(R,V)},q=R=>{var V=HS(),X=w(he(V),2);pe(X,20,n,Y=>Y,(Y,Q)=>{const Z=H(()=>Di(Q));var se=US(),J=p(se),B=p(J,!0);v(J);var W=w(J,2),ae=p(W,!0);v(W),v(se),N(()=>{z(B,i(Z).title),z(ae,i(Z).description)}),k(Y,se)}),v(X),k(R,V)};K(C,R=>{n().length===0?R(O):R(q,-1)})}k(j,D)},I=j=>{var D=XS(),C=he(D);{var O=V=>{var X=WS(),Y=w(he(X),2);pe(Y,20,r,Q=>Q,(Q,Z)=>{const se=H(()=>Di(Z));var J=KS(),B=p(J),W=p(B,!0);v(B);var ae=w(B,2),G=p(ae,!0);v(ae),v(J),N(()=>{z(W,i(se).title),z(G,i(se).description)}),k(Q,J)}),v(Y),k(V,X)};K(C,V=>{r().length>0&&V(O)})}var q=w(C,2);{var R=V=>{var X=GS(),Y=w(he(X),2);pe(Y,20,s,Q=>Q,(Q,Z)=>{const se=H(()=>Di(Z));var J=YS(),B=p(J),W=p(B,!0);v(B);var ae=w(B,2),G=p(ae,!0);v(ae),v(J),N(()=>{z(W,i(se).title),z(G,i(se).description)}),k(Q,J)}),v(Y),k(V,X)};K(q,V=>{s().length>0&&V(R)})}k(j,D)};K(g,j=>{t.mode==="install"?j(m):j(I,-1)})}v(E);var P=w(E,2),T=p(P),M=w(T,2),L=p(M,!0);v(M),v(P),v(l),v(o),N(()=>{ne(o,"aria-label",`${i(a)??""} ${t.pkg.label??""}`),z(d,`${i(a)??""} ${t.pkg.label??""}`),z(L,i(a))}),U("click",o,function(...j){t.onCancel?.apply(this,j)}),U("keydown",o,j=>{j.key==="Escape"&&t.onCancel()}),U("click",l,j=>j.stopPropagation()),U("click",T,function(...j){t.onCancel?.apply(this,j)}),U("click",M,function(...j){t.onConfirm?.apply(this,j)}),k(e,o),oe()}ce(["click","keydown"]);function Ol(e){return e==="shard"?"shard":"app"}function ZS(e){return Ol(e)==="shard"?"Shard":"App"}function QS(e,t){return t==="all"?!0:Ol(e)===t}var $S=A('<div class="store-registry-entry svelte-1aafzt0"><span class="store-registry-url svelte-1aafzt0"> </span> <button class="store-registry-remove svelte-1aafzt0">Remove</button></div>'),e3=A('<div class="store-registries svelte-1aafzt0"></div>'),t3=A('<form class="store-add-registry svelte-1aafzt0"><input class="store-registry-input svelte-1aafzt0" type="url" placeholder="Registry URL (e.g. https://sh3.example.com/registry.json)"/> <button type="submit" class="store-add-btn svelte-1aafzt0">Add</button></form>'),n3=A('<div class="store-error svelte-1aafzt0"> </div>'),r3=A('<div class="store-error svelte-1aafzt0"> </div>'),s3=A('<img alt="" class="store-icon-img svelte-1aafzt0"/>'),a3=A('<span class="store-icon-placeholder svelte-1aafzt0"> </span>'),i3=A('<div class="store-card-warning svelte-1aafzt0"> </div>'),o3=A('<button class="store-update-btn svelte-1aafzt0"> </button>'),l3=A('<span class="store-installed-label svelte-1aafzt0">Installed</span>'),c3=A('<span class="store-card-missing svelte-1aafzt0"> </span>'),u3=A('<div class="store-install-wrap svelte-1aafzt0"><button class="store-install-btn svelte-1aafzt0"> </button> <!></div>'),d3=A('<div class="store-card svelte-1aafzt0"><div class="store-card-header svelte-1aafzt0"><div class="store-card-icon svelte-1aafzt0"><!></div> <div class="store-card-title svelte-1aafzt0"><span class="store-card-label svelte-1aafzt0"> </span> <span> </span> <span class="store-card-version svelte-1aafzt0"> </span></div></div> <p class="store-card-desc svelte-1aafzt0"> </p> <div class="store-card-author svelte-1aafzt0"> </div> <!> <div class="store-card-actions svelte-1aafzt0"><!></div></div>'),f3=A("No packages found. <!>",1),v3=A('<div class="store-empty svelte-1aafzt0"><!></div>'),h3=A('<div class="store-view svelte-1aafzt0"><header class="store-header svelte-1aafzt0"><h2 class="svelte-1aafzt0">Package Store</h2> <div class="store-controls svelte-1aafzt0"><input class="store-search svelte-1aafzt0" type="text" placeholder="Search packages..."/> <select class="store-filter svelte-1aafzt0"><option>All</option><option>Shards</option><option>Apps</option></select> <button class="store-refresh svelte-1aafzt0"> </button></div></header> <!> <!> <!> <!> <div class="store-grid svelte-1aafzt0"></div> <!></div> <!> <!>',1);function p3(e,t){ie(t,!0);let n=F(""),r=F("all"),s=F(le(new Set)),a=F(le(new Set)),o=F(null),l=F(""),c=F(null),u=F(null);const d=Qe;async function f(){const ee=i(l).trim();if(ee&&!d.env.registries.includes(ee))try{await d.addRegistry(ee),x(l,""),d.refreshCatalog(),d.refreshInstalled()}catch(te){x(o,te instanceof Error?te.message:String(te),!0)}}async function h(ee){try{await d.removeRegistry(ee),d.refreshCatalog()}catch(te){x(o,te instanceof Error?te.message:String(te),!0)}}const b=H(()=>{const ee=i(n).toLowerCase().trim();return d.state.ephemeral.catalog.filter(te=>QS(te.entry.type,i(r))?ee?te.entry.id.toLowerCase().includes(ee)||te.entry.label.toLowerCase().includes(ee)||te.entry.description.toLowerCase().includes(ee):!0:!1)});function S(ee){return d.state.ephemeral.installed.some(te=>te.id===ee)}function _(ee){return String(ee.latest.contractVersion)!==String(Kc.version)}function y(ee){return ee in d.state.ephemeral.updatable}function E(ee){return d.state.ephemeral.installed.find(te=>te.id===ee)?.version??""}function g(ee,te){const Ae=ee.latest.requires?.map(ke=>ke.id)??[];if(Ae.length===0)return[];const ze=new Set(zv);for(const ke of te)(ke.type==="shard"||ke.type==="combo")&&ze.add(ke.id);return Ae.filter(ke=>!ze.has(ke))}async function m(ee){if(!i(a).has(ee)){x(a,new Set([...i(a),ee]),!0),x(o,null);try{await d.updatePackage(ee,(te,Ae)=>new Promise(ze=>{const ke=d.state.ephemeral.updatable[ee],Ke=d.state.ephemeral.installed.find(tt=>tt.id===ee);if(!ke||!Ke){ze(!0);return}x(u,{pkg:ke,fromVersion:Ke.version,added:te,removed:Ae,resolve:ze},!0)}))}catch(te){x(o,te instanceof Error?te.message:String(te),!0)}finally{const te=new Set(i(a));te.delete(ee),x(a,te,!0)}}}function I(){const ee=i(u);ee&&(x(u,null),ee.resolve(!0))}function P(){const ee=i(u);ee&&(x(u,null),ee.resolve(!1))}async function T(ee){const te=ee.entry.id;if(!i(s).has(te)){x(s,new Set([...i(s),te]),!0),x(o,null);try{const Ae=await fi(ee.latest,ee.sourceRegistry),ze=vi(ee,ee.latest),ke=await Ys(Ae),Ke=Ll(ke);let tt;ee.latest.serverBundleUrl&&(tt=await Rl(ee.latest,ee.sourceRegistry)),x(c,{pkg:ee,permissions:Ke,loaded:ke,bundle:Ae,meta:ze,serverBundle:tt},!0)}catch(Ae){x(o,Ae instanceof Error?Ae.message:String(Ae),!0);const ze=new Set(i(s));ze.delete(te),x(s,ze,!0)}}}async function M(){const ee=i(c);if(!ee)return;x(c,null);const{pkg:te,loaded:Ae,bundle:ze,meta:ke,serverBundle:Ke}=ee,tt=te.entry.id;try{const Ge={id:ke.id,type:ke.type,label:te.entry.label,version:ke.version,contractVersion:ke.contractVersion,sourceRegistry:ke.sourceRegistry,requiredShards:te.latest.requires?.map(Pt=>Pt.id)??[],installedAt:new Date().toISOString()},Vn=await Il(Ge,ze,Ke);if(!Vn.ok){x(o,Vn.error??"Server install failed",!0);return}const Cn=await zl(ze,ke,{loaded:Ae});Cn.success||console.warn(`[sh3-store] Server install ok but local hot-load failed: ${Cn.error}`),await d.refreshInstalled()}catch(Ge){x(o,Ge instanceof Error?Ge.message:String(Ge),!0)}finally{const Ge=new Set(i(s));Ge.delete(tt),x(s,Ge,!0)}}function L(){if(!i(c))return;const ee=i(c).pkg.entry.id;x(c,null);const te=new Set(i(s));te.delete(ee),x(s,te,!0)}function j(){d.refreshCatalog(),d.refreshInstalled()}var D=h3(),C=he(D),O=p(C),q=w(p(O),2),R=p(q);ge(R);var V=w(R,2),X=p(V);X.value=X.__value="all";var Y=w(X);Y.value=Y.__value="shard";var Q=w(Y);Q.value=Q.__value="app",v(V);var Z=w(V,2),se=p(Z,!0);v(Z),v(q),v(O);var J=w(O,2);{var B=ee=>{var te=e3();pe(te,21,()=>d.env.registries,dt,(Ae,ze)=>{var ke=$S(),Ke=p(ke),tt=p(Ke,!0);v(Ke);var Ge=w(Ke,2);v(ke),N(()=>z(tt,i(ze))),U("click",Ge,()=>h(i(ze))),k(Ae,ke)}),v(te),k(ee,te)};K(J,ee=>{d.isAdmin&&d.env.registries.length>0&&ee(B)})}var W=w(J,2);{var ae=ee=>{var te=t3(),Ae=p(te);ge(Ae);var ze=w(Ae,2);v(te),N(ke=>ze.disabled=ke,[()=>!i(l).trim()]),Re("submit",te,ke=>{ke.preventDefault(),f()}),Se(Ae,()=>i(l),ke=>x(l,ke)),k(ee,te)};K(W,ee=>{d.isAdmin&&ee(ae)})}var G=w(W,2);{var ue=ee=>{var te=n3(),Ae=p(te,!0);v(te),N(()=>z(Ae,d.state.ephemeral.error)),k(ee,te)};K(G,ee=>{d.state.ephemeral.error&&ee(ue)})}var be=w(G,2);{var at=ee=>{var te=r3(),Ae=p(te,!0);v(te),N(()=>z(Ae,i(o))),k(ee,te)};K(be,ee=>{i(o)&&ee(at)})}var Me=w(be,2);pe(Me,21,()=>i(b),ee=>ee.entry.id,(ee,te)=>{const Ae=H(()=>S(i(te).entry.id)),ze=H(()=>_(i(te))),ke=H(()=>i(s).has(i(te).entry.id)),Ke=H(()=>y(i(te).entry.id)),tt=H(()=>i(a).has(i(te).entry.id)),Ge=H(()=>g(i(te),d.state.ephemeral.installed)),Vn=H(()=>Ol(i(te).entry.type));var Cn=d3(),Pt=p(Cn),Fn=p(Pt),Nh=p(Fn);{var qh=Oe=>{var Ne=s3();N(()=>ne(Ne,"src",i(te).entry.icon)),k(Oe,Ne)},Bh=Oe=>{var Ne=a3(),jt=p(Ne,!0);v(Ne),N(()=>z(jt,i(te).entry.type==="shard"?"S":"A")),k(Oe,Ne)};K(Nh,Oe=>{i(te).entry.icon?Oe(qh):Oe(Bh,-1)})}v(Fn);var Vl=w(Fn,2),bi=p(Vl),Vh=p(bi,!0);v(bi);var Js=w(bi,2);let Fl;var Fh=p(Js,!0);v(Js);var Ul=w(Js,2),Uh=p(Ul,!0);v(Ul),v(Vl),v(Pt);var gi=w(Pt,2),Hh=p(gi,!0);v(gi);var yi=w(gi,2),Kh=p(yi,!0);v(yi);var Hl=w(yi,2);{var Wh=Oe=>{var Ne=i3(),jt=p(Ne);v(Ne),N(()=>z(jt,`Contract mismatch: package targets v${i(te).latest.contractVersion??""}, running v${Kc.version}`)),k(Oe,Ne)};K(Hl,Oe=>{i(ze)&&Oe(Wh)})}var Kl=w(Hl,2),Yh=p(Kl);{var Gh=Oe=>{var Ne=o3(),jt=p(Ne,!0);v(Ne),N(_i=>{Ne.disabled=i(tt),z(jt,_i)},[()=>i(tt)?"Updating...":`Update ${E(i(te).entry.id)} -> ${i(te).latest.version}`]),U("click",Ne,()=>m(i(te).entry.id)),k(Oe,Ne)},Xh=Oe=>{var Ne=l3();k(Oe,Ne)},Jh=Oe=>{var Ne=u3(),jt=p(Ne),_i=p(jt,!0);v(jt);var Zh=w(jt,2);{var Qh=$r=>{var wi=c3(),$h=p(wi);v(wi),N(ep=>z($h,`requires: ${ep??""}`),[()=>i(Ge).join(", ")]),k($r,wi)};K(Zh,$r=>{i(Ge).length>0&&$r(Qh)})}v(Ne),N($r=>{jt.disabled=i(ke)||i(Ge).length>0,ne(jt,"title",$r),z(_i,i(ke)?"Installing...":"Install")},[()=>i(Ge).length>0?`Missing required shards: ${i(Ge).join(", ")}`:void 0]),U("click",jt,()=>T(i(te))),k(Oe,Ne)};K(Yh,Oe=>{i(Ae)&&i(Ke)?Oe(Gh):i(Ae)?Oe(Xh,1):Oe(Jh,-1)})}v(Kl),v(Cn),N(Oe=>{z(Vh,i(te).entry.label),Fl=de(Js,1,"store-card-badge svelte-1aafzt0",null,Fl,{"badge-shard":i(Vn)==="shard","badge-app":i(Vn)==="app"}),z(Fh,Oe),z(Uh,i(te).latest.version),z(Hh,i(te).entry.description),z(Kh,i(te).entry.author.name)},[()=>ZS(i(te).entry.type)]),k(ee,Cn)}),v(Me);var Rt=w(Me,2);{var Yt=ee=>{var te=v3(),Ae=p(te);{var ze=Ke=>{var tt=f3(),Ge=w(he(tt));{var Vn=Pt=>{var Fn=$t("Add a registry URL above to get started.");k(Pt,Fn)},Cn=Pt=>{var Fn=$t("No registries configured.");k(Pt,Fn)};K(Ge,Pt=>{d.isAdmin?Pt(Vn):Pt(Cn,-1)})}k(Ke,tt)},ke=Ke=>{var tt=$t("No packages match the current filter.");k(Ke,tt)};K(Ae,Ke=>{d.env.registries.length===0?Ke(ze):Ke(ke,-1)})}v(te),k(ee,te)};K(Rt,ee=>{!d.state.ephemeral.loading&&i(b).length===0&&ee(Yt)})}v(C);var Bl=w(C,2);{var Lh=ee=>{{let te=H(()=>({label:i(c).pkg.entry.label,version:i(c).pkg.latest.version,author:i(c).pkg.entry.author.name}));xo(ee,{mode:"install",get pkg(){return i(te)},get permissions(){return i(c).permissions},onConfirm:M,onCancel:L})}};K(Bl,ee=>{i(c)&&ee(Lh)})}var zh=w(Bl,2);{var Oh=ee=>{{let te=H(()=>({label:i(u).pkg.entry.label,version:i(u).pkg.latest.version,author:i(u).pkg.entry.author.name}));xo(ee,{mode:"update",get pkg(){return i(te)},get fromVersion(){return i(u).fromVersion},get added(){return i(u).added},get removed(){return i(u).removed},onConfirm:I,onCancel:P})}};K(zh,ee=>{i(u)&&ee(Oh)})}N(()=>{Z.disabled=d.state.ephemeral.loading,z(se,d.state.ephemeral.loading?"Loading...":"Refresh")}),Se(R,()=>i(n),ee=>x(n,ee)),ms(V,()=>i(r),ee=>x(r,ee)),U("click",Z,j),k(e,D),oe()}ce(["click"]);function Jv(e){return Qe.state.ephemeral.catalog.find(t=>t.entry.id===e)}function Cs(e){return Qe.state.ephemeral.installed.find(t=>t.id===e)}const m3={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=Cs(n);if(r){e.scrollback.push({kind:"status",text:`${n} is already installed (v${r.version})`,level:"warn",ts:Date.now()});return}const s=Jv(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 fi(s.latest,s.sourceRegistry),o=vi(s,s.latest);let l;s.latest.serverBundleUrl&&(l=await Rl(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 Il(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(b=>b.id).join(", ")}`),e.scrollback.push({kind:"status",text:f,level:"error",ts:Date.now()});return}const d=await zl(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 Qe.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()})}}},b3={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(!Cs(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 Qe.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()})}}},g3={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=Cs(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 Qe.updatePackage(n,l,r);const c=r??Cs(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()})}}},y3={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=Cs(n),s=Jv(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(`
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 Mx(e,t){ie(t,!0);let n=F(void 0),r=F(!1),s=F(!1);xe(()=>{i(n)?.focus()});async function a(){if(!i(r)){x(r,!0);try{await t.onConfirm({wipeData:i(s)})}finally{t.close()}}}function o(){i(r)||(t.onCancel?.(),t.close())}var l=jx(),c=p(l),u=p(c);v(c);var d=w(c,4),f=p(d);ge(f);var h=w(f,2),b=w(p(h)),S=p(b);v(b),v(h),v(d);var _=w(d,2),y=p(_);Le(y,g=>x(n,g),()=>i(n));var E=w(y,2);v(_),v(l),N(()=>{z(u,`Delete project '${t.projectName??""}'?`),f.disabled=i(r),z(S,`<dataDir>/docs/${t.projectId??""}/`),y.disabled=i(r),E.disabled=i(r)}),cs(f,()=>i(s),g=>x(s,g)),U("click",y,o),U("click",E,a),k(e,l),oe()}ce(["click"]);var Dx=A('<p class="project-id svelte-1oy3640">ID: <code class="svelte-1oy3640"> </code></p>'),Lx=A('<span class="hint svelte-1oy3640">Your id: <code class="svelte-1oy3640"> </code> </span>'),zx=A('<p class="error svelte-1oy3640"> </p>'),Ox=A('<button type="button" class="danger svelte-1oy3640">Delete</button>'),Nx=A('<div class="project-manage svelte-1oy3640"><div class="body svelte-1oy3640"><h2 class="svelte-1oy3640"> </h2> <!> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">Name</span> <input type="text" placeholder="Acme Website" class="svelte-1oy3640"/></label> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">Description</span> <textarea class="svelte-1oy3640"></textarea></label> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">Members</span> <!> <!></label> <label class="field svelte-1oy3640"><span class="svelte-1oy3640">App allowlist</span> <!></label> <!></div> <div class="actions svelte-1oy3640"><button type="button" class="primary svelte-1oy3640"> </button> <button type="button" class="svelte-1oy3640">Cancel</button> <!></div></div>');function qx(e,t){ie(t,!0);let n=$(t,"project",3,null);const r=H(()=>n()!==null),s=H(Nr);let a=F(le(_e(()=>n()?.name??""))),o=F(le(_e(()=>n()?.description??""))),l=F(le(_e(()=>{if(n())return[...n().members];const J=Nr()?.id;return J?[J]:[]}))),c=F(le(_e(()=>n()?[...n().appAllowlist]:[]))),u=F(!1),d=F(null);async function f(){if(!i(a).trim()){x(d,"Name is required");return}x(u,!0),x(d,null);const J={name:i(a).trim(),description:i(o).trim()||void 0,members:i(l),appAllowlist:i(c)};try{i(r)&&n()?await fa.update(n().id,J):await fa.create(J),await ja(),t.onClose()}catch(B){x(d,B.message,!0)}finally{x(u,!1)}}function h(){if(!i(r)||!n())return;const J=n();Kt.open(Mx,{projectName:J.name,projectId:J.id,onConfirm:async({wipeData:B})=>{x(u,!0),x(d,null);try{await fa.delete(J.id,{wipeData:B}),await ja(),t.onClose()}catch(W){x(d,W.message,!0)}finally{x(u,!1)}}})}var b=Nx(),S=p(b),_=p(S),y=p(_,!0);v(_);var E=w(_,2);{var g=J=>{var B=Dx(),W=w(p(B)),ae=p(W,!0);v(W),v(B),N(()=>z(ae,n().id)),k(J,B)};K(E,J=>{i(r)&&J(g)})}var m=w(E,2),I=w(p(m),2);ge(I),v(m);var P=w(m,2),T=w(p(P),2);Bo(T),ne(T,"rows",2),v(P);var M=w(P,2),L=w(p(M),2);Lv(L,{get disabled(){return i(u)},get value(){return i(l)},set value(J){x(l,J,!0)}});var j=w(L,2);{var D=J=>{var B=Lx(),W=w(p(B)),ae=p(W,!0);v(W);var G=w(W);v(B),N(()=>{z(ae,i(s).id),z(G,` (${i(s).username??i(s).displayName??""})`)}),k(J,B)};K(j,J=>{i(s)&&J(D)})}v(M);var C=w(M,2),O=w(p(C),2);Dv(O,{get disabled(){return i(u)},get value(){return i(c)},set value(J){x(c,J,!0)}}),v(C);var q=w(C,2);{var R=J=>{var B=zx(),W=p(B,!0);v(B),N(()=>z(W,i(d))),k(J,B)};K(q,J=>{i(d)&&J(R)})}v(S);var V=w(S,2),X=p(V),Y=p(X,!0);v(X);var Q=w(X,2),Z=w(Q,2);{var se=J=>{var B=Ox();N(()=>B.disabled=i(u)),U("click",B,h),k(J,B)};K(Z,J=>{i(r)&&J(se)})}v(V),v(b),N(()=>{z(y,i(r)?`Edit ${n().name}`:"Create Project"),I.disabled=i(u),T.disabled=i(u),X.disabled=i(u),z(Y,i(r)?"Save":"Create"),Q.disabled=i(u)}),Se(I,()=>i(a),J=>x(a,J)),Se(T,()=>i(o),J=>x(o,J)),U("click",X,f),U("click",Q,function(...J){t.onClose?.apply(this,J)}),k(e,b),oe()}ce(["click"]);const Ot=le({projects:[],loading:!1,error:null});async function ja(){Ot.loading=!0,Ot.error=null;try{Ot.projects=await fa.list()}catch(e){Ot.error=e.message}finally{Ot.loading=!1}}const yo="projects:manage";let _o=null;function Bx(){const e=_o;return _o=null,e}function wo(e){_o=e,Ce.open(yo,{title:e?`Edit ${e.name}`:"Create Project",size:{w:560,h:620},dismissable:!0})}const Nv={manifest:{id:"__projects__",label:"Projects",version:on,views:[{id:yo,label:"Project Manager"}]},activate(e){ja(),typeof document<"u"&&document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&ja()});const t={mount(r,s){const a=Bx(),o=Ce.list(),l=o.length>0?o[o.length-1].id:null,u=qe(qx,{target:r,props:{project:a,onClose:()=>{l&&Ce.close(l)}}});return{unmount(){Xe(u)}}}};e.registerView(yo,t),e.actions.register({id:"sh3.project.create",label:"Create Project…",scope:["home","app"],paletteItem:!0,disabled:()=>!bt(),run:()=>{bt()&&wo(null)}}),e.actions.register({id:"sh3.project.manage",label:"Manage Project…",scope:["home","app"],submenu:!0,paletteItem:!0,disabled:()=>!bt()});const n=new Map;Ur(()=>{xe(()=>{const r=new Set;for(const s of Ot.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=Ot.projects.find(l=>l.id===s.id);o&&wo(o)}});n.set(s.id,a)}for(const s of[...n.keys()])r.has(s)||(n.get(s)(),n.delete(s))})})},autostart(){}};var Vx=A('<button type="button" class="project-card-edit svelte-yosqc3" aria-label="Edit project" title="Edit project">⚙</button>'),Fx=A('<div class="project-card-wrap svelte-yosqc3"><button type="button"><span class="project-name svelte-yosqc3"> </span> <span class="project-meta svelte-yosqc3"> </span></button> <!></div>'),Ux=A('<section class="projects-section svelte-yosqc3"><h2 class="projects-heading svelte-yosqc3">Projects</h2> <div class="projects-grid svelte-yosqc3"></div></section>');function Hx(e,t){ie(t,!0);const n=H(()=>Ot.projects.length>0),r=H(()=>ir.activeProjectId),s=H(bt);function a(d){Qf(i(r)===d?null:d)}function o(d,f){f.stopPropagation();const h=Ot.projects.find(b=>b.id===d)??null;h&&wo(h)}var l=Be(),c=he(l);{var u=d=>{var f=Ux(),h=w(p(f),2);pe(h,21,()=>Ot.projects,b=>b.id,(b,S)=>{var _=Fx(),y=p(_);let E;var g=p(y),m=p(g,!0);v(g);var I=w(g,2),P=p(I);v(I),v(y);var T=w(y,2);{var M=L=>{var j=Vx();U("click",j,D=>o(i(S).id,D)),k(L,j)};K(T,L=>{i(s)&&L(M)})}v(_),N(()=>{E=de(y,1,"project-card svelte-yosqc3",null,E,{active:i(r)===i(S).id}),ne(y,"title",i(S).description??`${i(S).members.length} member${i(S).members.length===1?"":"s"}`),z(m,i(S).name),z(P,`${i(S).members.length??""} member${i(S).members.length===1?"":"s"}`)}),U("click",y,()=>a(i(S).id)),k(b,_)}),v(h),v(f),k(d,f)};K(c,d=>{i(n)&&d(u)})}k(e,l),oe()}ce(["click"]);let pt=null;function Kx(e){pt=e}function Wx(){pt=null}function lr(){return pt?.user.layouts??[]}function Yx(e){pt&&(pt.user.layouts=[...pt.user.layouts,e])}function qv(e,t){if(!pt)return;const n=pt.user.layouts.findIndex(s=>s.id===e);if(n<0)return;const r=[...pt.user.layouts];r[n]={...r[n],...t},pt.user.layouts=r}function Gx(e){pt&&(pt.user.layouts=pt.user.layouts.filter(t=>t.id!==e))}function Xx(){pt={ephemeral:{},session:{},workspace:{},user:{layouts:[]}}}Xx();function pi(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=pi(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 Bv(e){return JSON.parse(JSON.stringify(e))}function Jx(e,t){const n=Ce.list().find(s=>s.id===e);if(!n)return null;const r=pi(n.content,t);return r===null?null:{size:{w:n.size.w,h:n.size.h},content:Bv(r)}}function Vv(e,t,n){const r=pi(e.content,t);return r===null?(n(`Saved layout "${e.name}" has no available standalone views`,"warn"),""):Ce.openWithContent({content:Bv(r),size:{w:e.size.w,h:e.size.h},title:e.name})}var Zx=A('<button type="button" data-sh3-scope="element:saved-layout"><span class="saved-layout-card-square svelte-1ncltuf"><svg class="saved-layout-card-icon svelte-1ncltuf"><use></use></svg></span> <span class="saved-layout-card-label svelte-1ncltuf"> </span></button>'),Qx=A('<section class="saved-layouts-section svelte-1ncltuf"><h2 class="saved-layouts-heading svelte-1ncltuf">Saved Layouts</h2> <div class="saved-layouts-grid svelte-1ncltuf"></div></section>');function $x(e,t){ie(t,!0);const n=H(lr),r=$a("__layouts__");function s(f){return Es().some(h=>h.viewId===f)}function a(f,h){vn.notify(f,{level:h})}function o(f){const h=lr().find(b=>b.id===f);h&&Vv(h,s,a)}function l(f,h){f.preventDefault(),r.set({type:"saved-layout",ref:{layoutId:h}}),sn.actions.openContextMenu({x:f.clientX,y:f.clientY,scope:{element:"saved-layout"}})}var c=Be(),u=he(c);{var d=f=>{var h=Qx(),b=w(p(h),2);pe(b,21,()=>i(n),S=>S.id,(S,_)=>{var y=Zx();let E,g;var m=p(y),I=p(m),P=p(I);v(I),v(m);var T=w(m,2),M=p(T,!0);v(T),v(y),N(()=>{E=de(y,1,"saved-layout-card svelte-1ncltuf",null,E,{"saved-layout-card--tinted":i(_).appearance?.color}),ne(y,"data-saved-layout-id",i(_).id),g=He(y,"",g,{"--card-color":i(_).appearance?.color??"transparent"}),ne(P,"href",`${On}#${i(_).appearance?.icon??"eye"??""}`),z(M,i(_).name)}),U("click",y,()=>o(i(_).id)),U("contextmenu",y,L=>l(L,i(_).id)),k(S,y)}),v(b),v(h),k(f,h)};K(u,f=>{i(n).length>0&&f(d)})}k(e,c),oe()}ce(["click","contextmenu"]);const Uc=["activity","align-horizontal-justify-center","align-horizontal-justify-end","align-horizontal-justify-start","app-window","archive","archive-restore","axis-3d","box","brick-wall","bug","building-2","cable","calendar","camera","check","chevron-down","chevron-right","circle-check","circle-dot","circle-minus","circle-x","clipboard","clipboard-paste","clock","compass","component","copy","cpu","crop","crosshair","crown","dollar-sign","download","droplet","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","minimize","moon","mouse-pointer","move","move-3d","music","navigation","network","notebook-pen","palette","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 eS=A('<span class="sh3-icon-picker__label svelte-h9dluc"> </span>'),tS=A('<button type="button"><svg viewBox="0 0 24 24" class="svelte-h9dluc"><use></use></svg></button>'),nS=A('<div><!> <input type="search" placeholder="Search icons…" aria-label="Filter icons" class="svelte-h9dluc"/> <div class="sh3-icon-picker__grid svelte-h9dluc"><button type="button" aria-label="No icon">×</button> <!></div></div>');function rS(e,t){ie(t,!0);let n=$(t,"value",15,void 0),r=$(t,"disabled",3,!1),s=F("");const a=H(()=>i(s).trim()===""?Uc:Uc.filter(y=>y.includes(i(s).trim().toLowerCase())));function o(y){r()||(n(y),t.onchange?.(y))}var l=nS();let c;var u=p(l);{var d=y=>{var E=eS(),g=p(E,!0);v(E),N(()=>z(g,t.label)),k(y,E)};K(u,y=>{t.label&&y(d)})}var f=w(u,2);ge(f);var h=w(f,2),b=p(h);let S;var _=w(b,2);pe(_,16,()=>i(a),y=>y,(y,E)=>{var g=tS();let m;var I=p(g),P=p(I);v(I),v(g),N(()=>{m=de(g,1,"sh3-icon-picker__tile svelte-h9dluc",null,m,{"sh3-icon-picker__tile--selected":n()===E}),ne(g,"aria-label",E),ne(g,"title",E),g.disabled=r(),ne(P,"href",`${On}#${E??""}`)}),U("click",g,()=>o(E)),k(y,g)}),v(h),v(l),N(()=>{c=de(l,1,"sh3-icon-picker svelte-h9dluc",null,c,{"sh3-icon-picker--disabled":r()}),f.disabled=r(),S=de(b,1,"sh3-icon-picker__tile sh3-icon-picker__tile--none svelte-h9dluc",null,S,{"sh3-icon-picker__tile--selected":n()===void 0}),b.disabled=r()}),Se(f,()=>i(s),y=>x(s,y)),U("click",b,()=>o(void 0)),k(e,l),oe()}ce(["click"]);var sS=A('<em class="svelte-1v8d4f6">(empty = default)</em>'),aS=A('<button type="button" class="link svelte-1v8d4f6">Change icon</button>'),iS=A('<!> <button type="button" class="link link--align-right svelte-1v8d4f6">Hide picker</button>',1),oS=A('<div class="app-appearance svelte-1v8d4f6"><h2 class="svelte-1v8d4f6"> </h2> <div class="preview svelte-1v8d4f6"><div><span class="preview-card-square svelte-1v8d4f6"><svg class="preview-card-icon svelte-1v8d4f6"><use></use></svg></span> <span class="preview-card-label svelte-1v8d4f6"> </span></div></div> <label class="row svelte-1v8d4f6"><span class="svelte-1v8d4f6">Name <!></span> <input type="text" class="name-input svelte-1v8d4f6"/></label> <div class="row svelte-1v8d4f6"><span class="svelte-1v8d4f6">Icon</span> <!></div> <label class="row svelte-1v8d4f6"><span class="svelte-1v8d4f6">Color</span> <!></label> <div class="actions svelte-1v8d4f6"><button type="button" class="primary svelte-1v8d4f6">Save</button> <button type="button" data-role="reset" class="svelte-1v8d4f6">Reset</button> <button type="button" class="svelte-1v8d4f6">Cancel</button></div></div>');function Fv(e,t){ie(t,!0);const n=_e(()=>t.initialAppearance);let r=F(le(n?.icon)),s=F(le(n?.color)),a=F(le(_e(()=>t.entityLabel))),o=F(n?.icon!==void 0);const l=H(()=>i(a).trim()),c=H(()=>t.requireLabel&&i(l)===""),u=H(()=>i(l)===""?t.entityLabel:i(l)),d=H(()=>i(r)??t.defaultIcon),f=H(()=>n!==void 0);function h(){i(c)||(t.onSave({label:i(l),icon:i(r),color:i(s)}),t.close())}function b(){t.onReset(),t.close()}var S=oS(),_=p(S),y=p(_);v(_);var E=w(_,2),g=p(E);let m,I;var P=p(g),T=p(P),M=p(T);v(T),v(P);var L=w(P,2),j=p(L,!0);v(L),v(g),v(E);var D=w(E,2),C=p(D),O=w(p(C));{var q=G=>{var ue=sS();k(G,ue)};K(O,G=>{t.requireLabel||G(q)})}v(C);var R=w(C,2);ge(R),v(D);var V=w(D,2),X=w(p(V),2);{var Y=G=>{var ue=aS();U("click",ue,()=>x(o,!0)),k(G,ue)},Q=G=>{var ue=iS(),be=he(ue);rS(be,{get value(){return i(r)},set value(Me){x(r,Me,!0)}});var at=w(be,2);U("click",at,()=>x(o,!1)),k(G,ue)};K(X,G=>{i(o)?G(Q,-1):G(Y)})}v(V);var Z=w(V,2),se=w(p(Z),2);{let G=H(()=>i(s)??"#888888");jv(se,{get value(){return i(G)},onchange:ue=>x(s,ue,!0)})}v(Z);var J=w(Z,2),B=p(J),W=w(B,2),ae=w(W,2);v(J),v(S),N(()=>{z(y,`Customize ${t.entityLabel??""}`),m=de(g,1,"preview-card svelte-1v8d4f6",null,m,{"preview-card--tinted":i(s)!==void 0}),I=He(g,"",I,{"--card-color":i(s)??"transparent"}),ne(M,"href",`${On}#${i(d)??""}`),z(j,i(u)),ne(R,"placeholder",t.entityLabel),B.disabled=i(c),W.disabled=!i(f)}),Se(R,()=>i(a),G=>x(a,G)),U("click",B,h),U("click",W,b),U("click",ae,()=>t.close()),k(e,S),oe()}ce(["click"]);let Xn=null;function lS(e){Xn=e}function cS(){Xn=null}function Uv(e){return e.icon===void 0&&e.color===void 0&&e.label===void 0}function ko(e){const t=Xn?.user.overrides;if(!t)return;const n=t[e];if(n&&!Uv(n))return n}function Hc(e,t){if(!Xn)return;const r={...Xn.user.overrides};t===void 0||Uv(t)?delete r[e]:r[e]=t,Xn.user.overrides=r}function uS(){Xn={ephemeral:{},session:{},workspace:{},user:{overrides:{}}}}uS();function dS(){const e=Ks();return!e||e.type!=="app"?null:e.ref}function fS(e){const t=dS();if(!t)return;const n=Wr().find(l=>l.id===t.appId),r=n?.label??t.appId,s=n?.icon??"box",a=ko(t.appId),o={entityLabel:a?.label??r,initialAppearance:a,defaultIcon:s,requireLabel:!1,onSave:l=>{Hc(t.appId,{label:l.label===""?void 0:l.label,icon:l.icon,color:l.color})},onReset:()=>Hc(t.appId,void 0)};Kt.open(Fv,o)}const Hv={manifest:{id:"__app-appearance__",label:"App Appearance",version:on,views:[]},activate(e){const t=e.state({user:{overrides:{}}});lS(t);const n={id:"app.customize",label:"Customize…",scope:{element:"app"},contextItem:!0,group:"appearance",run:fS};e.actions.register(n)},autostart(){},deactivate(){cS()}};var vS=A('<button type="button" data-sh3-scope="element:app"><span class="shell-home-card-square svelte-cpn2x2"><svg class="shell-home-card-icon svelte-cpn2x2"><use></use></svg></span> <span class="shell-home-card-label svelte-cpn2x2"> </span></button>'),hS=A('<section class="shell-home-section svelte-cpn2x2"><h2 class="shell-home-section-title svelte-cpn2x2">Apps</h2> <div class="shell-home-grid svelte-cpn2x2"></div></section>'),pS=A('<button type="button" data-sh3-scope="element:app"><span class="shell-home-card-square svelte-cpn2x2"><svg class="shell-home-card-icon svelte-cpn2x2"><use></use></svg></span> <span class="shell-home-card-label svelte-cpn2x2"> </span></button>'),mS=A('<section class="shell-home-section svelte-cpn2x2"><h2 class="shell-home-section-title svelte-cpn2x2">Admin</h2> <div class="shell-home-grid svelte-cpn2x2"></div></section>'),bS=A('<p class="shell-home-empty svelte-cpn2x2"><!></p>'),gS=A('<div class="shell-home svelte-cpn2x2"><header class="shell-home-header svelte-cpn2x2"><div class="shell-home-title-row svelte-cpn2x2"><!> <span class="shell-home-version svelte-cpn2x2"> </span> <span class="shell-home-alpha svelte-cpn2x2">alpha</span></div> <div class="shell-home-credit svelte-cpn2x2">Art: by <a href="https://www.andbc.co/" target="_blank" rel="noopener noreferrer" class="svelte-cpn2x2">andbc</a></div></header> <div class="shell-home-filter svelte-cpn2x2"><input type="search" placeholder="Filter apps…" aria-label="Filter apps by name" class="shell-home-filter-input svelte-cpn2x2"/></div> <!> <!> <!> <!> <!></div>');function yS(e,t){ie(t,!0);const n=$a("__sh3core__");function r(q,R){q.preventDefault(),n.set({type:"app",ref:{appId:R}}),sn.actions.openContextMenu({x:q.clientX,y:q.clientY,scope:{element:"app"}})}let s=F("");const a=H(Wr),o=H(bt),l=H(()=>ir.activeProjectId?Ot.projects.find(q=>q.id===ir.activeProjectId)??null:null);function c(q,R){if(!R)return!0;const V=R.toLowerCase();return q.label.toLowerCase().includes(V)||q.id.toLowerCase().includes(V)}function u(q){return i(l)?i(l).appAllowlist.includes(q):!0}const d=H(()=>i(a).filter(q=>!q.admin&&c(q,i(s))&&u(q.id))),f=H(()=>i(a).filter(q=>q.admin&&c(q,i(s)))),h=H(()=>i(d).length+(i(o)?i(f).length:0));var b=gS(),S=p(b),_=p(S),y=p(_);Px(y,{});var E=w(y,2),g=p(E);v(E),qt(2),v(_),qt(2),v(S);var m=w(S,2),I=p(m);ge(I),v(m);var P=w(m,2);Hx(P,{});var T=w(P,2);$x(T,{});var M=w(T,2);{var L=q=>{var R=hS(),V=w(p(R),2);pe(V,21,()=>i(d),X=>X.id,(X,Y)=>{const Q=H(()=>ko(i(Y).id));var Z=vS();let se,J;var B=p(Z),W=p(B),ae=p(W);v(W),v(B);var G=w(B,2),ue=p(G,!0);v(G),v(Z),N(()=>{se=de(Z,1,"shell-home-card svelte-cpn2x2",null,se,{"shell-home-card--tinted":i(Q)?.color}),J=He(Z,"",J,{"--card-color":i(Q)?.color??"transparent"}),ne(ae,"href",`${On}#${i(Q)?.icon??i(Y).icon??"box"??""}`),z(ue,i(Q)?.label??i(Y).label)}),U("click",Z,()=>mn(i(Y).id)),U("contextmenu",Z,be=>r(be,i(Y).id)),k(X,Z)}),v(V),v(R),k(q,R)};K(M,q=>{i(d).length>0&&q(L)})}var j=w(M,2);{var D=q=>{var R=mS(),V=w(p(R),2);pe(V,21,()=>i(f),X=>X.id,(X,Y)=>{const Q=H(()=>ko(i(Y).id));var Z=pS();let se,J;var B=p(Z),W=p(B),ae=p(W);v(W),v(B);var G=w(B,2),ue=p(G,!0);v(G),v(Z),N(()=>{se=de(Z,1,"shell-home-card svelte-cpn2x2",null,se,{"shell-home-card--tinted":i(Q)?.color}),J=He(Z,"",J,{"--card-color":i(Q)?.color??"transparent"}),ne(ae,"href",`${On}#${i(Q)?.icon??i(Y).icon??"box"??""}`),z(ue,i(Q)?.label??i(Y).label)}),U("click",Z,()=>mn(i(Y).id)),U("contextmenu",Z,be=>r(be,i(Y).id)),k(X,Z)}),v(V),v(R),k(q,R)};K(j,q=>{i(o)&&i(f).length>0&&q(D)})}var C=w(j,2);{var O=q=>{var R=bS(),V=p(R);{var X=Q=>{var Z=$t("No apps registered.");k(Q,Z)},Y=Q=>{var Z=$t();N(()=>z(Z,`No apps match “${i(s)??""}”.`)),k(Q,Z)};K(V,Q=>{i(a).length===0?Q(X):Q(Y,-1)})}v(R),k(q,R)};K(C,q=>{i(h)===0&&q(O)})}v(b),N(()=>z(g,`v${on}`)),Se(I,()=>i(s),q=>x(s,q)),k(e,b),oe()}ce(["click","contextmenu"]);var _S=A('<p class="keys-peers-muted svelte-19l5m7c">Loading...</p>'),wS=A('<p class="keys-peers-error svelte-19l5m7c"> </p>'),kS=A('<p class="keys-peers-muted svelte-19l5m7c">No keys yet. Shards will ask your permission before creating one.</p>'),xS=A('<button type="button" class="keys-peers-btn-danger svelte-19l5m7c">Confirm</button> <button type="button" class="keys-peers-btn-secondary svelte-19l5m7c">Cancel</button>',1),SS=A('<button type="button" class="keys-peers-btn-danger svelte-19l5m7c">Revoke</button>'),ES=A('<li class="keys-peers-item svelte-19l5m7c"><div class="keys-peers-info svelte-19l5m7c"><span class="keys-peers-label svelte-19l5m7c"> </span> <span class="keys-peers-meta svelte-19l5m7c"> </span> <span class="keys-peers-meta svelte-19l5m7c"> </span> <span class="keys-peers-meta svelte-19l5m7c"> </span></div> <div class="keys-peers-actions svelte-19l5m7c"><!></div></li>'),IS=A('<ul class="keys-peers-list svelte-19l5m7c"></ul>'),AS=A('<div class="keys-peers svelte-19l5m7c"><div class="keys-peers-header svelte-19l5m7c"><h2 class="svelte-19l5m7c">Keys &amp; Peers</h2></div> <!></div>');function CS(e,t){ie(t,!0);let n=F(le([])),r=F(null),s=F(!0),a=F(null);async function o(){x(r,null),x(s,!0);try{const _=await fetch("/api/keys",{credentials:"include"});if(!_.ok)throw new Error(`HTTP ${_.status}`);x(n,await _.json(),!0)}catch(_){x(r,_ instanceof Error?_.message:String(_),!0)}finally{x(s,!1)}}async function l(_){x(a,null);const y=await fetch(`/api/keys/${encodeURIComponent(_)}`,{method:"DELETE",credentials:"include"});(y.ok||y.status===404)&&x(n,i(n).filter(E=>E.id!==_),!0)}function c(_){return new Date(_).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}xe(()=>{o()}),xe(()=>Cl("*",()=>{o()}));var u=AS(),d=w(p(u),2);{var f=_=>{var y=_S();k(_,y)},h=_=>{var y=wS(),E=p(y);v(y),N(()=>z(E,`Failed to load: ${i(r)??""}`)),k(_,y)},b=_=>{var y=kS();k(_,y)},S=_=>{var y=IS();pe(y,21,()=>i(n),E=>E.id,(E,g)=>{var m=ES(),I=p(m),P=p(I),T=p(P,!0);v(P);var M=w(P,2),L=p(M);v(M);var j=w(M,2),D=p(j);v(j);var C=w(j,2),O=p(C);v(C),v(I);var q=w(I,2),R=p(q);{var V=Y=>{var Q=xS(),Z=he(Q),se=w(Z,2);U("click",Z,()=>l(i(g).id)),U("click",se,()=>{x(a,null)}),k(Y,Q)},X=Y=>{var Q=SS();U("click",Q,()=>{x(a,i(g).id,!0)}),k(Y,Q)};K(R,Y=>{i(a)===i(g).id?Y(V):Y(X,-1)})}v(q),v(m),N((Y,Q,Z)=>{z(T,i(g).label),z(L,`Minted by: ${i(g).mintedByShardId??"system"??""}${i(g).peerRole||i(g).peerId?` · Peer: ${i(g).peerRole??"—"}${i(g).peerId?` (${i(g).peerId})`:""}`:""}`),z(D,`Scopes: ${Y??""}`),z(O,`Created: ${Q??""} · Expires: ${Z??""}`)},[()=>i(g).scopes.join(", "),()=>c(i(g).createdAt),()=>i(g).expiresAt?c(i(g).expiresAt):"never"]),k(E,m)}),v(y),k(_,y)};K(d,_=>{i(s)?_(f):i(r)?_(h,1):i(n).length===0?_(b,2):_(S,-1)})}v(u),k(e,u),oe()}ce(["click"]);var TS=A('<div class="confirm-dialog svelte-1k1962w"><div class="confirm-dialog-title svelte-1k1962w"> </div> <div class="confirm-dialog-body svelte-1k1962w"> </div> <div class="confirm-dialog-actions svelte-1k1962w"><button type="button" class="confirm-dialog-btn confirm-dialog-btn-cancel svelte-1k1962w" data-confirm-dialog-cancel=""> </button> <button type="button" data-confirm-dialog-confirm=""> </button></div></div>');function Kv(e,t){ie(t,!0);let n=$(t,"confirmLabel",3,"Confirm"),r=$(t,"cancelLabel",3,"Cancel"),s=$(t,"confirmTone",3,"default"),a=F(void 0),o=F(!1);xe(()=>{i(a)?.focus()});async function l(){if(!i(o)){x(o,!0);try{await t.onConfirm()}finally{t.close()}}}function c(){i(o)||(t.onCancel?.(),t.close())}var u=TS(),d=p(u),f=p(d,!0);v(d);var h=w(d,2),b=p(h,!0);v(h);var S=w(h,2),_=p(S),y=p(_,!0);v(_),Le(_,I=>x(a,I),()=>i(a));var E=w(_,2);let g;var m=p(E,!0);v(E),v(S),v(u),N(()=>{z(f,t.title),z(b,t.body),_.disabled=i(o),z(y,r()),g=de(E,1,"confirm-dialog-btn svelte-1k1962w",null,g,{"confirm-dialog-btn-danger":s()==="danger","confirm-dialog-btn-default":s()==="default"}),E.disabled=i(o),z(m,n())}),U("click",_,c),U("click",E,l),k(e,u),oe()}ce(["click"]);const Kc=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 Mi(e,t){const n=Object.keys(t),r=n.filter(o=>!Kc.has(o)),s=n.filter(o=>Kc.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 Ml=globalThis;Ml.__sh3__=Ov;Ml.__sh3_svelte__=zd;Ml.__sh3_svelte_internal_client__=Xd;const Dl={"sh3-core":Mi("__sh3__",Ov),svelte:Mi("__sh3_svelte__",zd),"svelte/internal/client":Mi("__sh3_svelte_internal_client__",Xd)};Dl["svelte/internal/disclose-version"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));Dl["sh3-core/tokens.css"]=URL.createObjectURL(new Blob([""],{type:"application/javascript"}));const RS=/(?:from|import)\s*(['"])(sh3-core(?:\/[^'"]*)?|svelte(?:\/[^'"]*)?)\1/g;function PS(e){return e.replace(RS,(t,n,r)=>{const s=Dl[r];return s?`${t.startsWith("from")?"from":"import"} '${s}'`:t})}async function Ys(e){const t=new TextDecoder().decode(e),n=PS(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;jS(c)?o.shards.push(c):MS(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 jS(e){return"activate"in e&&typeof e.activate=="function"&&Array.isArray(e.manifest.views)}function MS(e){return"initialLayout"in e&&Array.isArray(e.manifest.requiredShards)}const DS="sh3-packages",LS=1,As="bundles",qr="meta";function Gs(){return new Promise((e,t)=>{const n=indexedDB.open(DS,LS);n.onupgradeneeded=()=>{const r=n.result;r.objectStoreNames.contains(As)||r.createObjectStore(As),r.objectStoreNames.contains(qr)||r.createObjectStore(qr)},n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}function cr(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 Wv(e,t,n){const r=await Gs();await cr(r,As,"readwrite",s=>s.put(t,e)),await cr(r,qr,"readwrite",s=>s.put(n,e)),r.close()}async function Yv(e){const t=await Gs(),n=await cr(t,As,"readonly",r=>r.get(e));return t.close(),n??null}async function zS(e){const t=await Gs(),n=await cr(t,qr,"readonly",r=>r.get(e));return t.close(),n??null}async function Gv(){const e=await Gs(),t=await cr(e,qr,"readonly",n=>n.getAll());return e.close(),t??[]}async function OS(e){const t=await Gs();await cr(t,As,"readwrite",n=>n.delete(e)),await cr(t,qr,"readwrite",n=>n.delete(e)),t.close()}function Ll(e,t){for(const n of e.shards)n.manifest={...n.manifest,version:t.version},ci(n);for(const n of e.apps)n.manifest={...n.manifest,version:t.version},gs(n)}const NS={"state:manage":{title:"Manage shell state zones",description:"Read and write state zones belonging to other shards."},"documents:browse":{title:"Browse tenant documents",description:"Observe all documents stored by the current tenant."},"documents:read":{title:"Read tenant documents",description:"Read the content of any document in the current tenant, across all shards. Required for backup connectors that need to pull document bodies (not just metadata) out of other shards."},"documents:write":{title:"Write tenant documents",description:"Create and overwrite documents in any shard's namespace within the current tenant. Required for restore-class connectors that re-import documents back into their owning shards."},"documents:sync":{title:"Sync documents with peers",description:"Participate in cross-peer document synchronization."},"sync:peer":{title:"Act as a sync peer",description:"Exchange document updates with remote peers."},"sync:policy":{title:"Define sync policy",description:"Configure which documents sync and with whom."},"keys:mint":{title:"Mint API keys",description:"Issue long-lived access tokens for this shell."}};function Di(e){return NS[e]??{title:e,description:"Unknown permission."}}function zl(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 Ol(e,t,n){if(!t.integrity)return{success:!1,hotLoaded:!1,error:"Missing integrity hash — refusing to install unverified bundle"};try{await Rl(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 Ys(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:zl(r)};try{await Wv(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{ui(t.id)}catch{}(t.type==="app"||t.type==="combo")&&si(t.id);let a=!0;try{Ll(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 qS(e){try{ui(e)}catch{}si(e),await OS(e)}async function BS(){return Gv()}async function Xv(){let e;try{e=await Gv()}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 Yv(t.id);if(!n){console.warn(`[sh3] No bundle found for installed package "${t.id}", skipping`);continue}const r=await Ys(n);Ll(r,{version:t.version,sourceRegistry:t.sourceRegistry,contractVersion:t.contractVersion}),r.shards.length===0&&r.apps.length===0&&console.warn(`[sh3] Package "${t.id}" contains no valid shards or apps, skipping`)}catch(n){console.warn(`[sh3] Failed to load installed package "${t.id}":`,n instanceof Error?n.message:n)}}const Wc={version:1};var VS=A('<span class="perm-modal-author svelte-1ipp1r6"> </span>'),FS=A('<p class="perm-modal-empty svelte-1ipp1r6">This package requires no special permissions.</p>'),US=A('<li class="perm-modal-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6"> </div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),HS=A('<p class="perm-modal-intro svelte-1ipp1r6">This package requests the following permissions:</p> <ul class="perm-modal-list svelte-1ipp1r6"></ul>',1),KS=A('<li class="perm-modal-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6"> </div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),WS=A('<p class="perm-modal-intro svelte-1ipp1r6">New permissions in this update:</p> <ul class="perm-modal-list perm-modal-added svelte-1ipp1r6"></ul>',1),YS=A('<li class="perm-modal-item svelte-1ipp1r6"><div class="perm-modal-item-title svelte-1ipp1r6"> </div> <div class="perm-modal-item-desc svelte-1ipp1r6"> </div></li>'),GS=A('<p class="perm-modal-intro svelte-1ipp1r6">Permissions no longer requested:</p> <ul class="perm-modal-list perm-modal-removed svelte-1ipp1r6"></ul>',1),XS=A("<!> <!>",1),JS=A('<div class="perm-modal-backdrop svelte-1ipp1r6" role="dialog" aria-modal="true" tabindex="-1"><div class="perm-modal-panel svelte-1ipp1r6" role="document"><header class="perm-modal-header svelte-1ipp1r6"><h3 class="svelte-1ipp1r6"> </h3> <div class="perm-modal-subtitle svelte-1ipp1r6"><!> <!></div></header> <div class="perm-modal-body svelte-1ipp1r6"><!></div> <footer class="perm-modal-footer svelte-1ipp1r6"><button class="perm-modal-cancel svelte-1ipp1r6">Cancel</button> <button class="perm-modal-confirm svelte-1ipp1r6"> </button></footer></div></div>');function xo(e,t){ie(t,!0);const n=$(t,"permissions",19,()=>[]),r=$(t,"added",19,()=>[]),s=$(t,"removed",19,()=>[]),a=H(()=>t.mode==="install"?"Install":"Update");var o=JS(),l=p(o),c=p(l),u=p(c),d=p(u);v(u);var f=w(u,2),h=p(f);{var b=j=>{var D=$t();N(()=>z(D,`${t.fromVersion??""} → ${t.pkg.version??""}`)),k(j,D)},S=j=>{var D=$t();N(()=>z(D,`v${t.pkg.version??""}`)),k(j,D)};K(h,j=>{t.mode==="update"&&t.fromVersion?j(b):j(S,-1)})}var _=w(h,2);{var y=j=>{var D=VS(),C=p(D);v(D),N(()=>z(C,`by ${t.pkg.author??""}`)),k(j,D)};K(_,j=>{t.pkg.author&&j(y)})}v(f),v(c);var E=w(c,2),g=p(E);{var m=j=>{var D=Be(),C=he(D);{var O=R=>{var V=FS();k(R,V)},q=R=>{var V=HS(),X=w(he(V),2);pe(X,20,n,Y=>Y,(Y,Q)=>{const Z=H(()=>Di(Q));var se=US(),J=p(se),B=p(J,!0);v(J);var W=w(J,2),ae=p(W,!0);v(W),v(se),N(()=>{z(B,i(Z).title),z(ae,i(Z).description)}),k(Y,se)}),v(X),k(R,V)};K(C,R=>{n().length===0?R(O):R(q,-1)})}k(j,D)},I=j=>{var D=XS(),C=he(D);{var O=V=>{var X=WS(),Y=w(he(X),2);pe(Y,20,r,Q=>Q,(Q,Z)=>{const se=H(()=>Di(Z));var J=KS(),B=p(J),W=p(B,!0);v(B);var ae=w(B,2),G=p(ae,!0);v(ae),v(J),N(()=>{z(W,i(se).title),z(G,i(se).description)}),k(Q,J)}),v(Y),k(V,X)};K(C,V=>{r().length>0&&V(O)})}var q=w(C,2);{var R=V=>{var X=GS(),Y=w(he(X),2);pe(Y,20,s,Q=>Q,(Q,Z)=>{const se=H(()=>Di(Z));var J=YS(),B=p(J),W=p(B,!0);v(B);var ae=w(B,2),G=p(ae,!0);v(ae),v(J),N(()=>{z(W,i(se).title),z(G,i(se).description)}),k(Q,J)}),v(Y),k(V,X)};K(q,V=>{s().length>0&&V(R)})}k(j,D)};K(g,j=>{t.mode==="install"?j(m):j(I,-1)})}v(E);var P=w(E,2),T=p(P),M=w(T,2),L=p(M,!0);v(M),v(P),v(l),v(o),N(()=>{ne(o,"aria-label",`${i(a)??""} ${t.pkg.label??""}`),z(d,`${i(a)??""} ${t.pkg.label??""}`),z(L,i(a))}),U("click",o,function(...j){t.onCancel?.apply(this,j)}),U("keydown",o,j=>{j.key==="Escape"&&t.onCancel()}),U("click",l,j=>j.stopPropagation()),U("click",T,function(...j){t.onCancel?.apply(this,j)}),U("click",M,function(...j){t.onConfirm?.apply(this,j)}),k(e,o),oe()}ce(["click","keydown"]);function Nl(e){return e==="shard"?"shard":"app"}function ZS(e){return Nl(e)==="shard"?"Shard":"App"}function QS(e,t){return t==="all"?!0:Nl(e)===t}var $S=A('<div class="store-registry-entry svelte-1aafzt0"><span class="store-registry-url svelte-1aafzt0"> </span> <button class="store-registry-remove svelte-1aafzt0">Remove</button></div>'),e3=A('<div class="store-registries svelte-1aafzt0"></div>'),t3=A('<form class="store-add-registry svelte-1aafzt0"><input class="store-registry-input svelte-1aafzt0" type="url" placeholder="Registry URL (e.g. https://sh3.example.com/registry.json)"/> <button type="submit" class="store-add-btn svelte-1aafzt0">Add</button></form>'),n3=A('<div class="store-error svelte-1aafzt0"> </div>'),r3=A('<div class="store-error svelte-1aafzt0"> </div>'),s3=A('<img alt="" class="store-icon-img svelte-1aafzt0"/>'),a3=A('<span class="store-icon-placeholder svelte-1aafzt0"> </span>'),i3=A('<div class="store-card-warning svelte-1aafzt0"> </div>'),o3=A('<button class="store-update-btn svelte-1aafzt0"> </button>'),l3=A('<span class="store-installed-label svelte-1aafzt0">Installed</span>'),c3=A('<span class="store-card-missing svelte-1aafzt0"> </span>'),u3=A('<div class="store-install-wrap svelte-1aafzt0"><button class="store-install-btn svelte-1aafzt0"> </button> <!></div>'),d3=A('<div class="store-card svelte-1aafzt0"><div class="store-card-header svelte-1aafzt0"><div class="store-card-icon svelte-1aafzt0"><!></div> <div class="store-card-title svelte-1aafzt0"><span class="store-card-label svelte-1aafzt0"> </span> <span> </span> <span class="store-card-version svelte-1aafzt0"> </span></div></div> <p class="store-card-desc svelte-1aafzt0"> </p> <div class="store-card-author svelte-1aafzt0"> </div> <!> <div class="store-card-actions svelte-1aafzt0"><!></div></div>'),f3=A("No packages found. <!>",1),v3=A('<div class="store-empty svelte-1aafzt0"><!></div>'),h3=A('<div class="store-view svelte-1aafzt0"><header class="store-header svelte-1aafzt0"><h2 class="svelte-1aafzt0">Package Store</h2> <div class="store-controls svelte-1aafzt0"><input class="store-search svelte-1aafzt0" type="text" placeholder="Search packages..."/> <select class="store-filter svelte-1aafzt0"><option>All</option><option>Shards</option><option>Apps</option></select> <button class="store-refresh svelte-1aafzt0"> </button></div></header> <!> <!> <!> <!> <div class="store-grid svelte-1aafzt0"></div> <!></div> <!> <!>',1);function p3(e,t){ie(t,!0);let n=F(""),r=F("all"),s=F(le(new Set)),a=F(le(new Set)),o=F(null),l=F(""),c=F(null),u=F(null);const d=Qe;async function f(){const ee=i(l).trim();if(ee&&!d.env.registries.includes(ee))try{await d.addRegistry(ee),x(l,""),d.refreshCatalog(),d.refreshInstalled()}catch(te){x(o,te instanceof Error?te.message:String(te),!0)}}async function h(ee){try{await d.removeRegistry(ee),d.refreshCatalog()}catch(te){x(o,te instanceof Error?te.message:String(te),!0)}}const b=H(()=>{const ee=i(n).toLowerCase().trim();return d.state.ephemeral.catalog.filter(te=>QS(te.entry.type,i(r))?ee?te.entry.id.toLowerCase().includes(ee)||te.entry.label.toLowerCase().includes(ee)||te.entry.description.toLowerCase().includes(ee):!0:!1)});function S(ee){return d.state.ephemeral.installed.some(te=>te.id===ee)}function _(ee){return String(ee.latest.contractVersion)!==String(Wc.version)}function y(ee){return ee in d.state.ephemeral.updatable}function E(ee){return d.state.ephemeral.installed.find(te=>te.id===ee)?.version??""}function g(ee,te){const Ae=ee.latest.requires?.map(ke=>ke.id)??[];if(Ae.length===0)return[];const ze=new Set(zv);for(const ke of te)(ke.type==="shard"||ke.type==="combo")&&ze.add(ke.id);return Ae.filter(ke=>!ze.has(ke))}async function m(ee){if(!i(a).has(ee)){x(a,new Set([...i(a),ee]),!0),x(o,null);try{await d.updatePackage(ee,(te,Ae)=>new Promise(ze=>{const ke=d.state.ephemeral.updatable[ee],Ke=d.state.ephemeral.installed.find(tt=>tt.id===ee);if(!ke||!Ke){ze(!0);return}x(u,{pkg:ke,fromVersion:Ke.version,added:te,removed:Ae,resolve:ze},!0)}))}catch(te){x(o,te instanceof Error?te.message:String(te),!0)}finally{const te=new Set(i(a));te.delete(ee),x(a,te,!0)}}}function I(){const ee=i(u);ee&&(x(u,null),ee.resolve(!0))}function P(){const ee=i(u);ee&&(x(u,null),ee.resolve(!1))}async function T(ee){const te=ee.entry.id;if(!i(s).has(te)){x(s,new Set([...i(s),te]),!0),x(o,null);try{const Ae=await fi(ee.latest,ee.sourceRegistry),ze=vi(ee,ee.latest),ke=await Ys(Ae),Ke=zl(ke);let tt;ee.latest.serverBundleUrl&&(tt=await Pl(ee.latest,ee.sourceRegistry)),x(c,{pkg:ee,permissions:Ke,loaded:ke,bundle:Ae,meta:ze,serverBundle:tt},!0)}catch(Ae){x(o,Ae instanceof Error?Ae.message:String(Ae),!0);const ze=new Set(i(s));ze.delete(te),x(s,ze,!0)}}}async function M(){const ee=i(c);if(!ee)return;x(c,null);const{pkg:te,loaded:Ae,bundle:ze,meta:ke,serverBundle:Ke}=ee,tt=te.entry.id;try{const Ge={id:ke.id,type:ke.type,label:te.entry.label,version:ke.version,contractVersion:ke.contractVersion,sourceRegistry:ke.sourceRegistry,requiredShards:te.latest.requires?.map(Pt=>Pt.id)??[],installedAt:new Date().toISOString()},Vn=await Al(Ge,ze,Ke);if(!Vn.ok){x(o,Vn.error??"Server install failed",!0);return}const Cn=await Ol(ze,ke,{loaded:Ae});Cn.success||console.warn(`[sh3-store] Server install ok but local hot-load failed: ${Cn.error}`),await d.refreshInstalled()}catch(Ge){x(o,Ge instanceof Error?Ge.message:String(Ge),!0)}finally{const Ge=new Set(i(s));Ge.delete(tt),x(s,Ge,!0)}}function L(){if(!i(c))return;const ee=i(c).pkg.entry.id;x(c,null);const te=new Set(i(s));te.delete(ee),x(s,te,!0)}function j(){d.refreshCatalog(),d.refreshInstalled()}var D=h3(),C=he(D),O=p(C),q=w(p(O),2),R=p(q);ge(R);var V=w(R,2),X=p(V);X.value=X.__value="all";var Y=w(X);Y.value=Y.__value="shard";var Q=w(Y);Q.value=Q.__value="app",v(V);var Z=w(V,2),se=p(Z,!0);v(Z),v(q),v(O);var J=w(O,2);{var B=ee=>{var te=e3();pe(te,21,()=>d.env.registries,dt,(Ae,ze)=>{var ke=$S(),Ke=p(ke),tt=p(Ke,!0);v(Ke);var Ge=w(Ke,2);v(ke),N(()=>z(tt,i(ze))),U("click",Ge,()=>h(i(ze))),k(Ae,ke)}),v(te),k(ee,te)};K(J,ee=>{d.isAdmin&&d.env.registries.length>0&&ee(B)})}var W=w(J,2);{var ae=ee=>{var te=t3(),Ae=p(te);ge(Ae);var ze=w(Ae,2);v(te),N(ke=>ze.disabled=ke,[()=>!i(l).trim()]),Re("submit",te,ke=>{ke.preventDefault(),f()}),Se(Ae,()=>i(l),ke=>x(l,ke)),k(ee,te)};K(W,ee=>{d.isAdmin&&ee(ae)})}var G=w(W,2);{var ue=ee=>{var te=n3(),Ae=p(te,!0);v(te),N(()=>z(Ae,d.state.ephemeral.error)),k(ee,te)};K(G,ee=>{d.state.ephemeral.error&&ee(ue)})}var be=w(G,2);{var at=ee=>{var te=r3(),Ae=p(te,!0);v(te),N(()=>z(Ae,i(o))),k(ee,te)};K(be,ee=>{i(o)&&ee(at)})}var Me=w(be,2);pe(Me,21,()=>i(b),ee=>ee.entry.id,(ee,te)=>{const Ae=H(()=>S(i(te).entry.id)),ze=H(()=>_(i(te))),ke=H(()=>i(s).has(i(te).entry.id)),Ke=H(()=>y(i(te).entry.id)),tt=H(()=>i(a).has(i(te).entry.id)),Ge=H(()=>g(i(te),d.state.ephemeral.installed)),Vn=H(()=>Nl(i(te).entry.type));var Cn=d3(),Pt=p(Cn),Fn=p(Pt),Nh=p(Fn);{var qh=Oe=>{var Ne=s3();N(()=>ne(Ne,"src",i(te).entry.icon)),k(Oe,Ne)},Bh=Oe=>{var Ne=a3(),jt=p(Ne,!0);v(Ne),N(()=>z(jt,i(te).entry.type==="shard"?"S":"A")),k(Oe,Ne)};K(Nh,Oe=>{i(te).entry.icon?Oe(qh):Oe(Bh,-1)})}v(Fn);var Fl=w(Fn,2),bi=p(Fl),Vh=p(bi,!0);v(bi);var Js=w(bi,2);let Ul;var Fh=p(Js,!0);v(Js);var Hl=w(Js,2),Uh=p(Hl,!0);v(Hl),v(Fl),v(Pt);var gi=w(Pt,2),Hh=p(gi,!0);v(gi);var yi=w(gi,2),Kh=p(yi,!0);v(yi);var Kl=w(yi,2);{var Wh=Oe=>{var Ne=i3(),jt=p(Ne);v(Ne),N(()=>z(jt,`Contract mismatch: package targets v${i(te).latest.contractVersion??""}, running v${Wc.version}`)),k(Oe,Ne)};K(Kl,Oe=>{i(ze)&&Oe(Wh)})}var Wl=w(Kl,2),Yh=p(Wl);{var Gh=Oe=>{var Ne=o3(),jt=p(Ne,!0);v(Ne),N(_i=>{Ne.disabled=i(tt),z(jt,_i)},[()=>i(tt)?"Updating...":`Update ${E(i(te).entry.id)} -> ${i(te).latest.version}`]),U("click",Ne,()=>m(i(te).entry.id)),k(Oe,Ne)},Xh=Oe=>{var Ne=l3();k(Oe,Ne)},Jh=Oe=>{var Ne=u3(),jt=p(Ne),_i=p(jt,!0);v(jt);var Zh=w(jt,2);{var Qh=$r=>{var wi=c3(),$h=p(wi);v(wi),N(ep=>z($h,`requires: ${ep??""}`),[()=>i(Ge).join(", ")]),k($r,wi)};K(Zh,$r=>{i(Ge).length>0&&$r(Qh)})}v(Ne),N($r=>{jt.disabled=i(ke)||i(Ge).length>0,ne(jt,"title",$r),z(_i,i(ke)?"Installing...":"Install")},[()=>i(Ge).length>0?`Missing required shards: ${i(Ge).join(", ")}`:void 0]),U("click",jt,()=>T(i(te))),k(Oe,Ne)};K(Yh,Oe=>{i(Ae)&&i(Ke)?Oe(Gh):i(Ae)?Oe(Xh,1):Oe(Jh,-1)})}v(Wl),v(Cn),N(Oe=>{z(Vh,i(te).entry.label),Ul=de(Js,1,"store-card-badge svelte-1aafzt0",null,Ul,{"badge-shard":i(Vn)==="shard","badge-app":i(Vn)==="app"}),z(Fh,Oe),z(Uh,i(te).latest.version),z(Hh,i(te).entry.description),z(Kh,i(te).entry.author.name)},[()=>ZS(i(te).entry.type)]),k(ee,Cn)}),v(Me);var Rt=w(Me,2);{var Yt=ee=>{var te=v3(),Ae=p(te);{var ze=Ke=>{var tt=f3(),Ge=w(he(tt));{var Vn=Pt=>{var Fn=$t("Add a registry URL above to get started.");k(Pt,Fn)},Cn=Pt=>{var Fn=$t("No registries configured.");k(Pt,Fn)};K(Ge,Pt=>{d.isAdmin?Pt(Vn):Pt(Cn,-1)})}k(Ke,tt)},ke=Ke=>{var tt=$t("No packages match the current filter.");k(Ke,tt)};K(Ae,Ke=>{d.env.registries.length===0?Ke(ze):Ke(ke,-1)})}v(te),k(ee,te)};K(Rt,ee=>{!d.state.ephemeral.loading&&i(b).length===0&&ee(Yt)})}v(C);var Vl=w(C,2);{var Lh=ee=>{{let te=H(()=>({label:i(c).pkg.entry.label,version:i(c).pkg.latest.version,author:i(c).pkg.entry.author.name}));xo(ee,{mode:"install",get pkg(){return i(te)},get permissions(){return i(c).permissions},onConfirm:M,onCancel:L})}};K(Vl,ee=>{i(c)&&ee(Lh)})}var zh=w(Vl,2);{var Oh=ee=>{{let te=H(()=>({label:i(u).pkg.entry.label,version:i(u).pkg.latest.version,author:i(u).pkg.entry.author.name}));xo(ee,{mode:"update",get pkg(){return i(te)},get fromVersion(){return i(u).fromVersion},get added(){return i(u).added},get removed(){return i(u).removed},onConfirm:I,onCancel:P})}};K(zh,ee=>{i(u)&&ee(Oh)})}N(()=>{Z.disabled=d.state.ephemeral.loading,z(se,d.state.ephemeral.loading?"Loading...":"Refresh")}),Se(R,()=>i(n),ee=>x(n,ee)),ms(V,()=>i(r),ee=>x(r,ee)),U("click",Z,j),k(e,D),oe()}ce(["click"]);function Jv(e){return Qe.state.ephemeral.catalog.find(t=>t.entry.id===e)}function Cs(e){return Qe.state.ephemeral.installed.find(t=>t.id===e)}const m3={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=Cs(n);if(r){e.scrollback.push({kind:"status",text:`${n} is already installed (v${r.version})`,level:"warn",ts:Date.now()});return}const s=Jv(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 fi(s.latest,s.sourceRegistry),o=vi(s,s.latest);let l;s.latest.serverBundleUrl&&(l=await Pl(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 Al(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(b=>b.id).join(", ")}`),e.scrollback.push({kind:"status",text:f,level:"error",ts:Date.now()});return}const d=await Ol(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 Qe.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()})}}},b3={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(!Cs(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 Qe.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()})}}},g3={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=Cs(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 Qe.updatePackage(n,l,r);const c=r??Cs(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()})}}},y3={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=Cs(n),s=Jv(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
12
  `)+`
13
- `],ts:Date.now()})}};function _3(e,t){const n=e.split(".").map(a=>parseInt(a,10)||0),r=t.split(".").map(a=>parseInt(a,10)||0),s=Math.max(n.length,r.length);for(let a=0;a<s;a++){const o=n[a]??0,l=r[a]??0;if(o>l)return!0;if(o<l)return!1}return!1}function w3(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 k3(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 Qe;const Zv={manifest:{id:"sh3-store",label:"Package Store",version:on,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 h of n.ephemeral.installed){const b=n.ephemeral.catalog.find(S=>S.entry.id===h.id);b&&_3(b.latest.version,h.version)&&(f[h.id]=b)}n.ephemeral.updatable=f}async function s(){n.ephemeral.loading=!0,n.ephemeral.error=null;try{const f=await Iv(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 Ck();n.ephemeral.installed=f.map(h=>({id:h.id,type:h.type,version:h.version,sourceRegistry:h.sourceRegistry??"",contractVersion:h.contractVersion??"",installedAt:h.installedAt??"",permissions:[]})),r()}catch(f){console.warn("[sh3-store] Failed to list installed packages:",f instanceof Error?f.message:f);try{const h=await BS();n.ephemeral.installed=h,r()}catch{}}}async function o(f){const h=[...t.registries];h.includes(f)||(h.push(f),await e.envUpdate({registries:h}))}async function l(f){const h=t.registries.filter(b=>b!==f);await e.envUpdate({registries:h})}async function c(f,h,b){let S;if(b===void 0?S=n.ephemeral.updatable[f]:S=n.ephemeral.catalog.find(R=>R.entry.id===f),!S)return;const _=n.ephemeral.installed.find(R=>R.id===f);if(!_)return;const y=w3(S,b),E=await fi(y,S.sourceRegistry);let g;y.serverBundleUrl&&(g=await Rl(y,S.sourceRegistry));const m=vi(S,y),I=await Ys(E),P=Ll(I);let T=[];try{const R=await zS(f);R?.permissions&&(T=R.permissions)}catch{}const{added:M,removed:L}=k3(T,P);if((M.length>0||L.length>0)&&h&&!await h(M,L))return;const j=await Yv(f),D={..._,permissions:T},C={id:m.id,type:m.type,label:S.entry.label,version:m.version,contractVersion:m.contractVersion,sourceRegistry:m.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:y.requires?.map(R=>R.id)??[]},O=await Il(C,E,g);if(!O.ok){let R=O.error??"Server update failed";throw O.code==="missing-shards"&&O.missing&&(R=`missing required shard(s): ${O.missing.map(X=>X.id).join(", ")}`),new Error(R)}const q=await zl(E,m,{loaded:I});if(!q.success){if(j)try{await Wv(f,j,D)}catch(R){console.warn(`[sh3-store] Rollback failed for "${f}":`,R instanceof Error?R.message:R)}throw new Error(q.error??"Local install failed during update")}await a()}async function u(f){await Ak(f),await qS(f),await a()}Qe={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,h){const b=qe(p3,{target:f});return{unmount(){Xe(b)}}}};e.registerView("sh3-store:browse",d),e.registerVerb(m3),e.registerVerb(b3),e.registerVerb(y3),e.registerVerb(g3),a()},autostart(){Qe.refreshCatalog()}};function x3(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=Kt.open(xo,a)})}var S3=A('<p class="error svelte-1tiy4hy"> </p>'),E3=A('<div class="app-update-modal svelte-1tiy4hy"><h2 class="svelte-1tiy4hy">Update available</h2> <p class="svelte-1tiy4hy"><strong> </strong> can be updated from <code class="svelte-1tiy4hy"> </code> to <code class="svelte-1tiy4hy"> </code>.</p> <p class="hint svelte-1tiy4hy">Package id: <code class="svelte-1tiy4hy"> </code></p> <!> <div class="actions svelte-1tiy4hy"><button type="button" class="primary svelte-1tiy4hy"> </button> <button type="button" class="svelte-1tiy4hy">Cancel</button></div></div>');function I3(e,t){ie(t,!0);let n=F(!1),r=F(null);async function s(){if(!i(n)){x(n,!0),x(r,null);try{await t.onConfirm(),t.close()}catch(T){x(r,T.message,!0)}finally{x(n,!1)}}}var a=E3(),o=w(p(a),2),l=p(o),c=p(l,!0);v(l);var u=w(l,2),d=p(u);v(u);var f=w(u,2),h=p(f);v(f),qt(),v(o);var b=w(o,2),S=w(p(b)),_=p(S,!0);v(S),v(b);var y=w(b,2);{var E=T=>{var M=S3(),L=p(M,!0);v(M),N(()=>z(L,i(r))),k(T,M)};K(y,T=>{i(r)&&T(E)})}var g=w(y,2),m=p(g),I=p(m,!0);v(m);var P=w(m,2);v(g),v(a),N(()=>{z(c,t.appLabel),z(d,`v${t.fromVersion??""}`),z(h,`v${t.toVersion??""}`),z(_,t.appId),m.disabled=i(n),z(I,i(n)?"Updating…":"Update"),P.disabled=i(n)}),U("click",m,s),U("click",P,function(...T){t.close?.apply(this,T)}),k(e,a),oe()}ce(["click"]);var A3=A('<p class="error svelte-86mxbl"> </p>'),C3=A(`<div class="uninstall-dialog svelte-86mxbl"><h2 class="svelte-86mxbl"> </h2> <p class="hint svelte-86mxbl">Package id: <code class="svelte-86mxbl"> </code> · current version: <code class="svelte-86mxbl"> </code></p> <p class="svelte-86mxbl">The package will be removed from this server. App data stored in your
14
- browser will remain until you clear it manually.</p> <!> <div class="actions svelte-86mxbl"><button type="button" class="danger svelte-86mxbl"> </button> <button type="button" class="svelte-86mxbl">Cancel</button></div></div>`);function T3(e,t){ie(t,!0);let n=F(!1),r=F(null);async function s(){if(!i(n)){x(n,!0),x(r,null);try{await t.onConfirm(),t.close()}catch(m){x(r,m.message,!0)}finally{x(n,!1)}}}var a=C3(),o=p(a),l=p(o);v(o);var c=w(o,2),u=w(p(c)),d=p(u,!0);v(u);var f=w(u,2),h=p(f);v(f),v(c);var b=w(c,4);{var S=m=>{var I=A3(),P=p(I,!0);v(I),N(()=>z(P,i(r))),k(m,I)};K(b,m=>{i(r)&&m(S)})}var _=w(b,2),y=p(_),E=p(y,!0);v(y);var g=w(y,2);v(_),v(a),N(()=>{z(l,`Uninstall ${t.appLabel??""}?`),z(d,t.appId),z(h,`v${t.version??""}`),y.disabled=i(n),z(E,i(n)?"Uninstalling…":"Uninstall"),g.disabled=i(n)}),U("click",y,s),U("click",g,function(...m){t.close?.apply(this,m)}),k(e,a),oe()}ce(["click"]);var R3=A('<span class="badge built-in svelte-1w44jyn">built-in</span>'),P3=A('<section class="description svelte-1w44jyn"><span class="label svelte-1w44jyn">Description</span> <p class="svelte-1w44jyn"> </p></section>'),j3=A('<p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Author</span> <span> </span></p>'),M3=A('<li><code class="svelte-1w44jyn"> </code></li>'),D3=A('<section class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Required shards</span> <ul class="chips svelte-1w44jyn"></ul></section>'),L3=A('<li><code class="svelte-1w44jyn"> </code></li>'),z3=A('<section class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Permissions</span> <ul class="chips svelte-1w44jyn"></ul></section>'),O3=A('<p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Installed</span><span> </span></p>'),N3=A('<section class="installed svelte-1w44jyn"><p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Source registry</span><code class="svelte-1w44jyn"> </code></p> <!> <p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Contract</span><code class="svelte-1w44jyn"> </code></p></section>'),q3=A('<div class="app-info-modal svelte-1w44jyn"><header class="svelte-1w44jyn"><h2 class="svelte-1w44jyn"> </h2> <code class="id svelte-1w44jyn"> </code></header> <p class="version svelte-1w44jyn"><span class="label svelte-1w44jyn">Version</span> <code class="svelte-1w44jyn"> </code> <!></p> <!> <!> <!> <!> <!> <div class="actions svelte-1w44jyn"><button type="button" class="svelte-1w44jyn">Close</button></div></div>');function B3(e,t){ie(t,!0);let n=H(()=>{if(!t.installed)return null;const D=new Date(t.installed.installedAt);return isNaN(D.getTime())?t.installed.installedAt:D.toLocaleString()});var r=q3(),s=p(r),a=p(s),o=p(a,!0);v(a);var l=w(a,2),c=p(l,!0);v(l),v(s);var u=w(s,2),d=w(p(u),2),f=p(d);v(d);var h=w(d,2);{var b=D=>{var C=R3();k(D,C)};K(h,D=>{t.installed||D(b)})}v(u);var S=w(u,2);{var _=D=>{var C=P3(),O=w(p(C),2),q=p(O,!0);v(O),v(C),N(()=>z(q,t.catalogEntry.description)),k(D,C)};K(S,D=>{t.catalogEntry?.description&&D(_)})}var y=w(S,2);{var E=D=>{var C=j3(),O=w(p(C),2),q=p(O,!0);v(O),v(C),N(()=>z(q,t.catalogEntry.author.name)),k(D,C)};K(y,D=>{t.catalogEntry?.author?.name&&D(E)})}var g=w(y,2);{var m=D=>{var C=D3(),O=w(p(C),2);pe(O,21,()=>t.manifest.requiredShards,dt,(q,R)=>{var V=M3(),X=p(V),Y=p(X,!0);v(X),v(V),N(()=>z(Y,i(R))),k(q,V)}),v(O),v(C),k(D,C)};K(g,D=>{t.manifest.requiredShards.length>0&&D(m)})}var I=w(g,2);{var P=D=>{var C=z3(),O=w(p(C),2);pe(O,21,()=>t.manifest.permissions,dt,(q,R)=>{var V=L3(),X=p(V),Y=p(X,!0);v(X),v(V),N(()=>z(Y,i(R))),k(q,V)}),v(O),v(C),k(D,C)};K(I,D=>{t.manifest.permissions&&t.manifest.permissions.length>0&&D(P)})}var T=w(I,2);{var M=D=>{var C=N3(),O=p(C),q=w(p(O)),R=p(q,!0);v(q),v(O);var V=w(O,2);{var X=se=>{var J=O3(),B=w(p(J)),W=p(B,!0);v(B),v(J),N(()=>z(W,i(n))),k(se,J)};K(V,se=>{i(n)&&se(X)})}var Y=w(V,2),Q=w(p(Y)),Z=p(Q);v(Q),v(Y),v(C),N(()=>{z(R,t.installed.sourceRegistry),z(Z,`v${t.installed.contractVersion??""}`)}),k(D,C)};K(T,D=>{t.installed&&D(M)})}var L=w(T,2),j=p(L);v(L),v(r),N(()=>{z(o,t.manifest.label),z(c,t.manifest.id),z(f,`v${t.manifest.version??""}`)}),U("click",j,function(...D){t.close?.apply(this,D)}),k(e,r),oe()}ce(["click"]);const Wc=typeof globalThis.__TAURI_INTERNALS__<"u";function V3(e){return!e.admin||e.builtin}function Yc(e){return e.admin?e.builtin?" · built-in":"":" · admin only"}function Pn(){const e=Ks();return!e||e.type!=="app"?null:e.ref}function Xs(e){return Wr().find(t=>t.id===e)}function F3(e){return!Qe.state.ephemeral.installed.some(t=>t.id===e)}function Li(e){return{admin:bt(),builtin:F3(e)}}function U3(e){const t=Pn();if(!t)return;const n=Xs(t.appId);if(!n)return;const r=Qe.state.ephemeral.installed.find(o=>o.id===t.appId)??null,s=Qe.state.ephemeral.catalog.find(o=>o.entry.id===t.appId)?.entry??null,a={manifest:n,installed:r,catalogEntry:s};Kt.open(B3,a)}async function H3(e){const t=Pn();if(!t)return;const{appId:n}=t,r=vn.notify("Checking for updates…",{duration:1/0});try{await Qe.refreshCatalog()}finally{r.close()}const s=Qe.state.ephemeral.updatable[n],a=Qe.state.ephemeral.installed.find(c=>c.id===n),o=Xs(n)?.label??n;if(!s||!a){vn.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 Qe.updatePackage(n,(c,u)=>x3({label:a.id,version:a.version},s.latest.version,c,u)),vn.notify(`Updated to v${s.latest.version}`,{level:"success"})}catch(c){throw vn.notify(`Update failed: ${c.message}`,{level:"error",duration:5e3}),c}}};Kt.open(I3,l)}function K3(e){const t=Pn();if(!t)return;const n=Xs(t.appId);n&&di({kind:"app",appId:t.appId,activateShards:n.requiredShards??[]})}async function W3(e){const t=rl();if(!t)return;const n=t.id,r=t.requiredShards??[];await Xr(),di({kind:"app",appId:n,activateShards:r})}function Y3(e){const t=Pn();if(!t)return;const{appId:n}=t,r=Qe.state.ephemeral.installed.find(o=>o.id===n);if(!r)return;const s=Xs(n)?.label??n,a={appId:n,appLabel:s,version:r.version,onConfirm:async()=>{try{await Qe.uninstallPackage(n),vn.notify(`Uninstalled ${s}`,{level:"success"})}catch(o){throw vn.notify(`Uninstall failed: ${o.message}`,{level:"error",duration:5e3}),o}}};Kt.open(T3,a)}function G3(e){const t=()=>{const l=Pn();if(!l)return"Info…";const c=Xs(l.appId);return c?`Info — ${c.label} v${c.version}`:`Info — ${l.appId}`},n=()=>{const l=Pn();return l?`Check for updates${Yc(Li(l.appId))}`:"Check for updates"},r=()=>{const l=Pn();return l?`Uninstall…${Yc(Li(l.appId))}`:"Uninstall…"},s=()=>{const l=Pn();return l?V3(Li(l.appId)):!0},o=[{id:"app.info",label:t,scope:{element:"app"},contextItem:!0,group:"info",run:U3},{id:"app.checkUpdate",label:n,scope:{element:"app"},contextItem:!0,group:"update",disabled:s,run:H3},{id:"app.uninstall",label:r,scope:{element:"app"},contextItem:!0,group:"uninstall",disabled:s,run:Y3},{id:"app.popout",label:"Open in standalone view",scope:{element:"app"},contextItem:!0,paletteItem:!1,group:"window",disabled:()=>!Wc,run:K3},{id:"app.popoutCurrent",label:"Pop out current app",scope:"app",contextItem:!1,paletteItem:!0,disabled:()=>!Wc||nt.id==null,run:W3}].map(l=>e.actions.register(l));return()=>o.forEach(l=>l())}function X3(){return{id:"sh3.float.toggleMaximize",label:"Toggle Float Maximize",scope:["home","app"],paletteItem:!0,contextItem:!1,defaultShortcut:"Ctrl+Shift+M",disabled:()=>Ce.list().length===0,run(){const e=Ce.list().at(-1);e&&Ce.toggleMaximize(e.id)}}}const Qv={manifest:{id:"__sh3core__",label:"SH3 Core",version:on,views:[{id:"sh3core:home",label:"Home"},{id:"shell:keys-and-peers",label:"Keys & Peers"}]},activate(e){const t=e.state({user:{bindings:{}}});xw(t.user),e.actions.register({id:"sh3.palette.open",label:"Command Palette…",scope:["home","app"],defaultShortcut:"Mod+K",contextItem:!1,paletteItem:!1,run(a){Zn(async()=>{const{openPalette:o}=await Promise.resolve().then(()=>O1);return{openPalette:o}},[]).then(({openPalette:o})=>o())}}),e.actions.register(X3()),e.actions.register({id:"sh3.app.reset-layout",label:"Reset Current Layout",scope:["app"],paletteItem:!0,contextItem:!1,run(){Kt.open(Kv,{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:()=>i1()})}});const n={mount(a,o){const l=qe(yS,{target:a});return{unmount(){Xe(l)}}}},r={mount(a,o){const l=qe(CS,{target:a});return{unmount(){Xe(l)}}}};e.registerView("sh3core:home",n),e.registerView("shell:keys-and-peers",r),G3(e),e.actions.register({id:"sh3.app.launch",label:"Launch app",scope:["home","app"],submenu:!0,paletteItem:!0});const s=new Map;Ur(()=>{xe(()=>{const a=new Set;for(const[o,l]of Ln){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(){mn(o)}});s.set(o,c)}for(const o of[...s.keys()])a.has(o)||(s.get(o)(),s.delete(o))})})},autostart(){}},J3={id:"shell",label:"Shell",version:on,views:[{id:"shell:terminal",label:"Shell",standalone:!0}],permissions:[Ya]};class Z3{#e;get history(){return i(this.#e)}set history(t){x(this.#e,t,!0)}#t;get locked(){return i(this.#t)}set locked(t){x(this.#t,t,!0)}constructor(t){this.#e=F(le([])),this.#t=F(!1),this.modeId=t,this.scrollback=new vk}}let Jn=null;function Q3(e){Jn=e}function $3(){Jn=null}function Gc(e){return Jn?.workspace.buffers[e]}function eE(e,t){Jn&&(Jn.workspace.buffers={...Jn.workspace.buffers,[e]:t})}function tE(){Jn={ephemeral:{},session:{},workspace:{buffers:{}},user:{}}}tE();const nE=200;class rE{constructor(){this.timers=new Map}hydrate(t){const n=Gc(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)},nE);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 Gc(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}:{}};eE(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 sE(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 aE(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}var iE=A("<pre> </pre>");function oE(e,t){ie(t,!0);const n=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,r=H(()=>t.chunks.join("").replace(n,""));var s=iE();let a;var o=p(s,!0);v(s),N(()=>{a=de(s,1,"shell-text svelte-ypr8s",null,a,{stderr:t.stream==="stderr"}),z(o,i(r))}),k(e,s),oe()}var lE=A('<div class="shell-prompt svelte-u0gb59"><span class="shell-prompt-cwd svelte-u0gb59"> </span> <span class="shell-prompt-arrow svelte-u0gb59">❯</span> <span class="shell-prompt-line svelte-u0gb59"> </span></div>');function cE(e,t){var n=lE(),r=p(n),s=p(r,!0);v(r);var a=w(r,4),o=p(a,!0);v(a),v(n),N(()=>{z(s,t.cwd),z(o,t.line)}),k(e,n)}var uE=A("<div> </div>");function Xc(e,t){var n=uE();let r;var s=p(n,!0);v(n),N(()=>{r=de(n,1,"shell-status svelte-nfxdpt",null,r,{info:t.level==="info",warn:t.level==="warn",error:t.level==="error"}),z(s,t.text)}),k(e,n)}var dE=A('<div class="shell-rich svelte-1rnhl05"><!></div>');function fE(e,t){var n=dE(),r=p(n);qs(r,()=>t.component,(s,a)=>{a(s,Vs(()=>t.componentProps))}),v(n),k(e,n)}const So=new Map;function An(e,t){const n=So.get(e);if(n&&n!==t){console.warn(`[shell-shard/rich-registry] duplicate registration for key "${e}" — keeping first`);return}So.set(e,t)}function vE(e){return So.get(e)??null}var hE=A('<div class="shell-scrollback svelte-isy3jt"><div class="content"></div></div>');function pE(e,t){ie(t,!0);let n=F(null),r=F(null),s=!0;const a=4;function o(d){return d.scrollHeight-d.scrollTop-d.clientHeight<=a}function l(){i(n)&&(s=o(i(n)))}xe(()=>{if(!i(r)||!i(n))return;const d=new ResizeObserver(()=>{i(n)&&s&&(i(n).scrollTop=i(n).scrollHeight)});return d.observe(i(r)),()=>d.disconnect()});var c=hE(),u=p(c);pe(u,21,()=>t.scrollback.entries,d=>d.id,(d,f)=>{var h=Be(),b=he(h);{var S=g=>{oE(g,{get stream(){return i(f).stream},get chunks(){return i(f).chunks}})},_=g=>{{let m=H(()=>t.showPromptCwd?i(f).cwd:"");cE(g,{get cwd(){return i(m)},get line(){return i(f).line}})}},y=g=>{Xc(g,{get text(){return i(f).text},get level(){return i(f).level}})},E=g=>{const m=H(()=>i(f).component??(i(f).componentKey?vE(i(f).componentKey):null));var I=Be(),P=he(I);{var T=L=>{fE(L,{get component(){return i(m)},get componentProps(){return i(f).props}})},M=L=>{{let j=H(()=>`<rich entry: ${i(f).componentKey??"unknown"} not registered>`);Xc(L,{get text(){return i(j)},level:"info"})}};K(P,L=>{i(m)?L(T):L(M,-1)})}k(g,I)};K(b,g=>{i(f).kind==="text"?g(S):i(f).kind==="prompt"?g(_,1):i(f).kind==="status"?g(y,2):i(f).kind==="rich"&&g(E,3)})}k(d,h)}),v(u),Le(u,d=>x(r,d),()=>i(r)),v(c),Le(c,d=>x(n,d),()=>i(n)),Re("scroll",c,l),k(e,c),oe()}var mE=A('<span class="sh3-cmdline__prefix svelte-ngn09j"><!></span>'),bE=A('<div data-sh3-passthrough-modifiers=""><!> <input type="text" class="sh3-cmdline__decoy svelte-ngn09j" tabindex="-1" aria-hidden="true"/> <input type="password" class="sh3-cmdline__decoy svelte-ngn09j" tabindex="-1" aria-hidden="true"/> <input type="search" spellcheck="false" autocomplete="off" autocapitalize="off" aria-autocomplete="none" data-1p-ignore="" data-lpignore="true" class="sh3-cmdline__input svelte-ngn09j"/></div>');function gE(e,t){ie(t,!0);let n=$(t,"value",15,""),r=$(t,"disabled",3,!1),s=F(null);function a(h){return h.selectionStart!==null&&h.selectionEnd!==null&&h.selectionStart!==h.selectionEnd}function o(h){(h.ctrlKey||h.metaKey)&&!h.altKey&&h.key==="c"&&i(s)&&a(i(s))||t.onkeydown?.(h)}xe(()=>{!r()&&i(s)&&i(s).focus()});var l=bE();let c;var u=p(l);{var d=h=>{var b=mE(),S=p(b);Ht(S,()=>t.prefix),v(b),k(h,b)};K(u,h=>{t.prefix&&h(d)})}var f=w(u,6);ge(f),Le(f,h=>x(s,h),()=>i(s)),v(l),N(()=>{c=de(l,1,"sh3-cmdline svelte-ngn09j",null,c,{"sh3-cmdline--disabled":r()}),ne(f,"name",t.name),f.disabled=r()}),U("keydown",f,o),Re("focus",f,function(...h){t.onfocus?.apply(this,h)}),Se(f,n),k(e,l),oe()}ce(["keydown"]);var yE=A('<span class="shell-input-cwd svelte-1dfv2gk"> </span>'),_E=A('<!> <span class="shell-input-arrow svelte-1dfv2gk">❯</span>',1),wE=A('<div class="shell-input-row svelte-1dfv2gk"><!></div>');function kE(e,t){ie(t,!0);let n=$(t,"showCwd",3,!0),r=F(""),s=F(null),a=F("");function o(){if(t.locked)return;const h=i(r);h.trim()&&(x(r,""),x(s,null),t.onSubmit(h))}function l(){t.history.length!==0&&(i(s)===null?(x(a,i(r),!0),x(s,t.history.length-1)):i(s)>0&&Mr(s,-1),x(r,t.history[i(s)]??"",!0))}function c(){i(s)!==null&&(i(s)<t.history.length-1?(Mr(s),x(r,t.history[i(s)],!0)):(x(s,null),x(r,i(a),!0)))}function u(h){if(t.locked){if(h.ctrlKey&&h.key==="c"){h.preventDefault(),t.session.send({t:"signal",sig:"SIGINT"});return}if(h.ctrlKey&&h.key==="d"){h.preventDefault(),t.session.send({t:"signal",sig:"EOF"});return}h.preventDefault();return}h.key==="Enter"?(h.preventDefault(),o()):h.key==="ArrowUp"?(h.preventDefault(),l()):h.key==="ArrowDown"?(h.preventDefault(),c()):h.ctrlKey&&h.key==="c"?(h.preventDefault(),x(r,""),x(s,null)):h.ctrlKey&&h.key==="l"&&(h.preventDefault(),x(r,"clear"),o())}var d=wE(),f=p(d);gE(f,{get disabled(){return t.locked},name:"shell-cmdline",onkeydown:u,onfocus:()=>t.onFocus?.(),get value(){return i(r)},set value(b){x(r,b,!0)},prefix:b=>{var S=_E(),_=he(S);{var y=E=>{var g=yE(),m=p(g,!0);v(g),N(()=>z(m,t.cwd)),k(E,g)};K(_,E=>{n()&&E(y)})}qt(2),k(b,S)},$$slots:{prefix:!0}}),v(d),k(e,d),oe()}class xE{list(){return vl()}get(t){return Ia(t)}resolve(t,n={}){const r=t.trim();if(!r)return{kind:"forward",line:t};if(r.startsWith("$ "))return{kind:"forward",line:r.slice(2)};if(r==="$")return{kind:"forward",line:""};const s=r.indexOf(" "),a=s===-1?r:r.slice(0,s),o=s===-1?"":r.slice(s+1),l=Ia(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 SE{#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 EE={id:"bash",label:"Bash",requiresRole:"admin",transport:"ws",autoRelocate:!1,showCwd:!0},IE={id:"sh3",label:"SH3",transport:"none",autoRelocate:!0,showCwd:!1};function AE(e){e.register(EE),e.register(IE)}function $v(e){return`sh3.shell.lastMode.${e}`}function eh(e){try{return globalThis.localStorage?.getItem($v(e))??null}catch{return null}}function Jc(e,t){try{globalThis.localStorage?.setItem($v(e),t)}catch{}}function CE(e,t,n){const r=eh(t);if(r){const a=e.get(r);if(a&&(!a.requiresRole||a.requiresRole===n))return a}const s=n==="admin"?"bash":"sh3";return e.get(s)}function va(e,t){return e.entries.find(n=>n.kind==="rich"&&n.id===t)}function TE(e,t){return{update(n){const r=va(e,t);r&&Object.assign(r.props,n)}}}function Zc(e){return e.entries[e.entries.length-1].id}function Qc(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()}),TE(t,Zc(t))},stream(n,r){t.push({kind:"rich",component:n,props:{...r,__streamState:"streaming"},ts:Date.now()});const s=Zc(t);return{append(a){const o=va(t,s);o&&Object.assign(o.props,a)},complete(){const a=va(t,s);a&&(a.props.__streamState="complete")},error(a){const o=va(t,s);o&&(o.props.__streamState="error"),t.push({kind:"status",text:`mode: ${a?.message??String(a)}`,level:"error",ts:Date.now()})}}},busy(n){const r=e.busy(n);let s=!1;return{clear(){s||(s=!0,r())}}},invoke(n,r){return e.invoke(n,r)}}}function RE(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({shell:e.shell,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=Qc({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}),e.buffer().scrollback.push({kind:"prompt",cwd:e.cwd(),line:s,ts:Date.now()});try{await l.verb.run({shell:e.shell,scrollback:e.buffer().scrollback,session:e.session,cwd:e.cwd(),dispatch:r,fs:e.fs},l.args)}catch(u){e.buffer().scrollback.push({kind:"status",text:`shell: verb ${l.verb.name} threw — ${u.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=Qc({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(h){h?.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 — ${h?.message??String(h)}`,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 PE(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 jE=A('<div class="toolbar svelte-gnowwz"><div class="toolbar-slots svelte-gnowwz"></div></div>');function ME(e,t){ie(t,!0);let n=$(t,"slotProps",19,()=>({})),r=H(()=>t.registry.list(t.ctx));var s=jE(),a=p(s);pe(a,21,()=>i(r),o=>o.id,(o,l)=>{const c=H(()=>i(l).component);var u=Be(),d=he(u);qs(d,()=>i(c),(f,h)=>{h(f,Vs(()=>n()[i(l).id]??{}))}),k(o,u)}),v(a),v(s),k(e,s),oe()}class DE{#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 LE=A('<span class="mode-label svelte-1i4cqlj"> </span>');function zE(e,t){ie(t,!0);let n=H(()=>t.modes.map(l=>({value:l.id,label:l.label})));var r=Be(),s=he(r);{var a=l=>{Rv(l,{get options(){return i(n)},get value(){return t.mode.id},size:"sm",onchange:c=>t.onSelect(c)})},o=l=>{var c=LE(),u=p(c,!0);v(c),N(()=>z(u,t.mode.label)),k(l,c)};K(s,l=>{t.modes.length>=2?l(a):t.modes.length===1&&l(o,1)})}k(e,r),oe()}var OE=A('<button class="focus-lock-btn svelte-1q6gbap"> </button>');function NE(e,t){var n=OE(),r=p(n,!0);v(n),N(()=>{ne(n,"title",t.locked?"Unlock focus":"Lock focus"),z(r,t.locked?"🔒":"🔓")}),U("click",n,function(...s){t.onToggle?.apply(this,s)}),k(e,n)}ce(["click"]);var qE=A('<span class="target-shard svelte-1nn2m6x" title="Target shard"> </span>');function BE(e,t){var n=qE(),r=p(n);v(n),N(()=>z(r,`→ ${t.target??"—"??""}`)),k(e,n)}var VE=A('<span class="label"> </span>'),FE=A('<div class="busy svelte-7wyurd" role="status" aria-live="polite"><span class="spinner svelte-7wyurd" aria-hidden="true"></span> <!></div>');function UE(e,t){var n=Be(),r=he(n);{var s=a=>{var o=FE(),l=w(p(o),2);{var c=u=>{var d=VE(),f=p(d,!0);v(d),N(()=>z(f,t.label)),k(u,d)};K(l,u=>{t.label&&u(c)})}v(o),k(a,o)};K(r,a=>{t.active&&a(s)})}k(e,n)}var HE=A('<div class="shell-terminal svelte-13komre"><!> <!> <!></div>');function KE(e,t){ie(t,!0);const n=_e(()=>new rE),r=new Map;function s(B){let W=r.get(B);return W||(W=new Z3(B),n.hydrate(W),r.set(B,W)),W}const a=new xE,o=new hv,l=new SE;AE(l);let c=F(le(_e(()=>t.contributions.list(fs))));xe(()=>{const B=t.contributions.onChange(fs,()=>{x(c,t.contributions.list(fs),!0)});return()=>B()});function u(B){return{id:B.id,label:B.label,requiresRole:B.requiresRole,transport:"custom",autoRelocate:B.autoRelocate??!1,showCwd:B.showCwd??!1}}let d=H(()=>[...l.list(t.role),...i(c).filter(B=>!B.requiresRole||B.requiresRole===t.role).map(u)]),f=F(le(_e(()=>{const B=eh(t.userId);if(B){const ae=[...l.list(t.role),...i(c).filter(G=>!G.requiresRole||G.requiresRole===t.role).map(u)].find(G=>G.id===B);if(ae)return ae}return CE(l,t.userId,t.role)}))),h=F(0);function b(){x(h,performance.now(),!0)}const S=_e(()=>ok()),_=H(()=>s(i(f).id));xe(()=>{for(const[B,W]of Object.entries(g.historyByMode)){const ae=s(B);ae.history.length<W.length&&(ae.history=[...W])}}),xe(()=>{i(_).scrollback.entries.length,i(_).history.length,i(_).modeId==="bash"?n.flush(i(_),g.lastSeq):n.flush(i(_))});function y(B){const W=i(d).find(ae=>ae.id===B);W&&(W.requiresRole&&W.requiresRole!==t.role||(j(),x(f,W,!0),Jc(t.userId,B)))}xe(()=>{if(!i(d).find(B=>B.id===i(f).id)){const B=i(d).find(W=>W.id==="sh3")??i(d)[0];if(B){const W=i(f).id;x(f,B,!0),Jc(t.userId,B.id),s(B.id).scrollback.push({kind:"status",text:`mode '${W}' is no longer available — switched to '${B.id}'`,level:"warn",ts:Date.now()})}}});const E=_e(()=>({...t.shell,setMode:B=>{const W=i(d).find(ae=>ae.id===B);return!W||W.requiresRole&&W.requiresRole!==t.role?!1:(y(B),!0)},listModes:()=>i(d).map(B=>({id:B.id,label:B.label})),getMode:()=>({id:i(f).id,label:i(f).label}),dispatchToTerminal:uv({headless:!1})})),g=_e(()=>new vv(t.wsUrl));let m=0,I=F(le(new Map));function P(B){const W=++m;i(I).set(W,B),x(I,new Map(i(I)),!0);let ae=!1;return()=>{ae||(ae=!0,i(I).delete(W),x(I,new Map(i(I)),!0))}}let T=H(()=>i(I).size>0),M=H(()=>{if(i(I).size===0)return null;let B;for(const W of i(I).values())B=W;return B??null});const{dispatch:L,cancel:j}=_e(()=>RE({mode:()=>i(f),role:()=>t.role,resolver:a,buffer:()=>i(_),session:g,shell:E,fs:o,cwd:()=>g.cwd,busy:P,customMode:B=>i(c).find(W=>W.id===B)??null}));let D=F(!1),C=F(null);const O=new DE;O.register({id:"busy",order:5,visible:()=>!0,component:UE}),O.register({id:"mode",order:10,visible:()=>!0,component:zE}),O.register({id:"focus-lock",order:20,visible:B=>B.mode.id==="sh3",component:NE}),O.register({id:"target-shard",order:30,visible:B=>B.mode.id==="sh3",component:BE});function q(B){if(B.type==="tabs")return B.tabs[B.activeTab]?.viewId??null;if(B.type==="split"){for(const W of B.children){const ae=q(W);if(ae!==null)return ae}return null}return B.viewId??null}function R(){try{const B=Tt(),W=q(B.docked);if(!W)return null;const ae=W.indexOf(":");return ae>=0?W.slice(0,ae):W}catch{return null}}xe(()=>{const B=R(),W=i(f).autoRelocate,ae=i(D);(async()=>{const G=await PE({modeAutoRelocate:W,focusLocked:ae,focusedShardId:B,currentShardId:"shell"},o);G.kind==="relocate"&&G.path!==void 0&&(g.cwd=G.path),B&&B!=="shell"?x(C,B,!0):B||x(C,null)})()});function V(B){if(B.t==="replay"){sE(s("bash"),B.events);return}if(B.t!=="event")return;const W=B.event,ae=s("bash");switch(W.kind){case"prompt":ae.scrollback.push({kind:"prompt",cwd:W.cwd,line:W.line,ts:W.ts}),ae.locked=!0;break;case"stdout":ae.scrollback.push({kind:"text",stream:"stdout",chunks:[W.data],ts:W.ts});break;case"stderr":ae.scrollback.push({kind:"text",stream:"stderr",chunks:[W.data],ts:W.ts});break;case"exit":(W.signal||W.code!==null&&W.code!==0)&&ae.scrollback.push({kind:"status",text:W.signal?`shell: process exited (${W.signal})`:`shell: process exited (${W.code})`,level:"error",ts:W.ts}),ae.locked=!1;break;case"status":ae.scrollback.push({kind:"status",text:W.text,level:W.level,ts:W.ts});break}}let X=null,Y=null;Go(()=>{X=g.onMessage(V),s("bash");const B=n.readLastSeq("bash");B!==void 0&&(g.lastSeq=B),g.connect(),Y=lk({id:S,dispatch:L,getFocusStamp:()=>i(h),getMode:()=>i(f)})}),Xo(()=>{X?.(),g.close(),Y?.()});var Q=HE(),Z=p(Q);{let B=H(()=>({mode:i(f),role:t.role})),W=H(()=>({busy:{active:i(T),label:i(M)},mode:{mode:i(f),modes:i(d),onSelect:y},"focus-lock":{locked:i(D),onToggle:()=>x(D,!i(D))},"target-shard":{target:i(C)}}));ME(Z,{get registry(){return O},get ctx(){return i(B)},get slotProps(){return i(W)}})}var se=w(Z,2);{let B=H(()=>i(f).showCwd||!1);pE(se,{get showPromptCwd(){return i(B)},get scrollback(){return i(_).scrollback}})}var J=w(se,2);{let B=H(()=>aE(g.cwd,g.tenantRoot)),W=H(()=>i(f).showCwd!==!1);kE(J,{get cwd(){return i(B)},get showCwd(){return i(W)},get locked(){return i(_).locked},get history(){return i(_).history},get session(){return g},get onSubmit(){return L},onFocus:b})}v(Q),k(e,Q),oe()}var WE=A('<tr><td class="svelte-m248jy"><button type="button" class="svelte-m248jy"> </button></td><td class="svelte-m248jy"> </td></tr>'),YE=A('<div class="shell-rich-help svelte-m248jy"><table class="svelte-m248jy"><thead><tr><th class="svelte-m248jy">Name</th><th class="svelte-m248jy">Summary</th></tr></thead><tbody></tbody></table></div>');function th(e,t){ie(t,!0);var n=YE(),r=p(n),s=w(p(r));pe(s,21,()=>t.data.rows,a=>a.name,(a,o)=>{var l=WE(),c=p(l),u=p(c),d=p(u,!0);v(u),v(c);var f=w(c),h=p(f,!0);v(f),v(l),N(()=>{z(d,i(o).name),z(h,i(o).summary)}),U("click",u,()=>t.data.onClickName(i(o).name)),k(a,l)}),v(s),v(r),v(n),k(e,n),oe()}ce(["click"]);const nh="help-table";An(nh,th);function GE(){return{name:"help",summary:"List verbs or show detail for one.",globalVerb:!0,async run(e){const t=e.shell.getMode().id==="sh3",n=vl().filter(r=>t||r.globalVerb===!0).map(r=>({name:r.name,summary:r.summary}));e.scrollback.push({kind:"rich",componentKey:nh,component:th,props:{data:{rows:n,onClickName:r=>e.dispatch(r)}},ts:Date.now()})}}}const XE={name:"clear",summary:"Clear the scrollback (local only — other views are unaffected).",globalVerb:!0,async run(e){e.scrollback.clear()}},JE={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.shell.listModes().map(l=>` ${l.id.padEnd(12)} ${l.label}`);e.scrollback.push({kind:"text",stream:"stdout",chunks:[["Available modes:",...o].join(`
13
+ `],ts:Date.now()})}};function _3(e,t){const n=e.split(".").map(a=>parseInt(a,10)||0),r=t.split(".").map(a=>parseInt(a,10)||0),s=Math.max(n.length,r.length);for(let a=0;a<s;a++){const o=n[a]??0,l=r[a]??0;if(o>l)return!0;if(o<l)return!1}return!1}function w3(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 k3(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 Qe;const Zv={manifest:{id:"sh3-store",label:"Package Store",version:on,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 h of n.ephemeral.installed){const b=n.ephemeral.catalog.find(S=>S.entry.id===h.id);b&&_3(b.latest.version,h.version)&&(f[h.id]=b)}n.ephemeral.updatable=f}async function s(){n.ephemeral.loading=!0,n.ephemeral.error=null;try{const f=await Iv(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 Ck();n.ephemeral.installed=f.map(h=>({id:h.id,type:h.type,version:h.version,sourceRegistry:h.sourceRegistry??"",contractVersion:h.contractVersion??"",installedAt:h.installedAt??"",permissions:[]})),r()}catch(f){console.warn("[sh3-store] Failed to list installed packages:",f instanceof Error?f.message:f);try{const h=await BS();n.ephemeral.installed=h,r()}catch{}}}async function o(f){const h=[...t.registries];h.includes(f)||(h.push(f),await e.envUpdate({registries:h}))}async function l(f){const h=t.registries.filter(b=>b!==f);await e.envUpdate({registries:h})}async function c(f,h,b){let S;if(b===void 0?S=n.ephemeral.updatable[f]:S=n.ephemeral.catalog.find(R=>R.entry.id===f),!S)return;const _=n.ephemeral.installed.find(R=>R.id===f);if(!_)return;const y=w3(S,b),E=await fi(y,S.sourceRegistry);let g;y.serverBundleUrl&&(g=await Pl(y,S.sourceRegistry));const m=vi(S,y),I=await Ys(E),P=zl(I);let T=[];try{const R=await zS(f);R?.permissions&&(T=R.permissions)}catch{}const{added:M,removed:L}=k3(T,P);if((M.length>0||L.length>0)&&h&&!await h(M,L))return;const j=await Yv(f),D={..._,permissions:T},C={id:m.id,type:m.type,label:S.entry.label,version:m.version,contractVersion:m.contractVersion,sourceRegistry:m.sourceRegistry,installedAt:new Date().toISOString(),requiredShards:y.requires?.map(R=>R.id)??[]},O=await Al(C,E,g);if(!O.ok){let R=O.error??"Server update failed";throw O.code==="missing-shards"&&O.missing&&(R=`missing required shard(s): ${O.missing.map(X=>X.id).join(", ")}`),new Error(R)}const q=await Ol(E,m,{loaded:I});if(!q.success){if(j)try{await Wv(f,j,D)}catch(R){console.warn(`[sh3-store] Rollback failed for "${f}":`,R instanceof Error?R.message:R)}throw new Error(q.error??"Local install failed during update")}await a()}async function u(f){await Ak(f),await qS(f),await a()}Qe={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,h){const b=qe(p3,{target:f});return{unmount(){Xe(b)}}}};e.registerView("sh3-store:browse",d),e.registerVerb(m3),e.registerVerb(b3),e.registerVerb(y3),e.registerVerb(g3),a()},autostart(){Qe.refreshCatalog()}};function x3(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=Kt.open(xo,a)})}var S3=A('<p class="error svelte-1tiy4hy"> </p>'),E3=A('<div class="app-update-modal svelte-1tiy4hy"><h2 class="svelte-1tiy4hy">Update available</h2> <p class="svelte-1tiy4hy"><strong> </strong> can be updated from <code class="svelte-1tiy4hy"> </code> to <code class="svelte-1tiy4hy"> </code>.</p> <p class="hint svelte-1tiy4hy">Package id: <code class="svelte-1tiy4hy"> </code></p> <!> <div class="actions svelte-1tiy4hy"><button type="button" class="primary svelte-1tiy4hy"> </button> <button type="button" class="svelte-1tiy4hy">Cancel</button></div></div>');function I3(e,t){ie(t,!0);let n=F(!1),r=F(null);async function s(){if(!i(n)){x(n,!0),x(r,null);try{await t.onConfirm(),t.close()}catch(T){x(r,T.message,!0)}finally{x(n,!1)}}}var a=E3(),o=w(p(a),2),l=p(o),c=p(l,!0);v(l);var u=w(l,2),d=p(u);v(u);var f=w(u,2),h=p(f);v(f),qt(),v(o);var b=w(o,2),S=w(p(b)),_=p(S,!0);v(S),v(b);var y=w(b,2);{var E=T=>{var M=S3(),L=p(M,!0);v(M),N(()=>z(L,i(r))),k(T,M)};K(y,T=>{i(r)&&T(E)})}var g=w(y,2),m=p(g),I=p(m,!0);v(m);var P=w(m,2);v(g),v(a),N(()=>{z(c,t.appLabel),z(d,`v${t.fromVersion??""}`),z(h,`v${t.toVersion??""}`),z(_,t.appId),m.disabled=i(n),z(I,i(n)?"Updating…":"Update"),P.disabled=i(n)}),U("click",m,s),U("click",P,function(...T){t.close?.apply(this,T)}),k(e,a),oe()}ce(["click"]);var A3=A('<p class="error svelte-86mxbl"> </p>'),C3=A(`<div class="uninstall-dialog svelte-86mxbl"><h2 class="svelte-86mxbl"> </h2> <p class="hint svelte-86mxbl">Package id: <code class="svelte-86mxbl"> </code> · current version: <code class="svelte-86mxbl"> </code></p> <p class="svelte-86mxbl">The package will be removed from this server. App data stored in your
14
+ browser will remain until you clear it manually.</p> <!> <div class="actions svelte-86mxbl"><button type="button" class="danger svelte-86mxbl"> </button> <button type="button" class="svelte-86mxbl">Cancel</button></div></div>`);function T3(e,t){ie(t,!0);let n=F(!1),r=F(null);async function s(){if(!i(n)){x(n,!0),x(r,null);try{await t.onConfirm(),t.close()}catch(m){x(r,m.message,!0)}finally{x(n,!1)}}}var a=C3(),o=p(a),l=p(o);v(o);var c=w(o,2),u=w(p(c)),d=p(u,!0);v(u);var f=w(u,2),h=p(f);v(f),v(c);var b=w(c,4);{var S=m=>{var I=A3(),P=p(I,!0);v(I),N(()=>z(P,i(r))),k(m,I)};K(b,m=>{i(r)&&m(S)})}var _=w(b,2),y=p(_),E=p(y,!0);v(y);var g=w(y,2);v(_),v(a),N(()=>{z(l,`Uninstall ${t.appLabel??""}?`),z(d,t.appId),z(h,`v${t.version??""}`),y.disabled=i(n),z(E,i(n)?"Uninstalling…":"Uninstall"),g.disabled=i(n)}),U("click",y,s),U("click",g,function(...m){t.close?.apply(this,m)}),k(e,a),oe()}ce(["click"]);var R3=A('<span class="badge built-in svelte-1w44jyn">built-in</span>'),P3=A('<section class="description svelte-1w44jyn"><span class="label svelte-1w44jyn">Description</span> <p class="svelte-1w44jyn"> </p></section>'),j3=A('<p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Author</span> <span> </span></p>'),M3=A('<li><code class="svelte-1w44jyn"> </code></li>'),D3=A('<section class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Required shards</span> <ul class="chips svelte-1w44jyn"></ul></section>'),L3=A('<li><code class="svelte-1w44jyn"> </code></li>'),z3=A('<section class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Permissions</span> <ul class="chips svelte-1w44jyn"></ul></section>'),O3=A('<p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Installed</span><span> </span></p>'),N3=A('<section class="installed svelte-1w44jyn"><p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Source registry</span><code class="svelte-1w44jyn"> </code></p> <!> <p class="row svelte-1w44jyn"><span class="label svelte-1w44jyn">Contract</span><code class="svelte-1w44jyn"> </code></p></section>'),q3=A('<div class="app-info-modal svelte-1w44jyn"><header class="svelte-1w44jyn"><h2 class="svelte-1w44jyn"> </h2> <code class="id svelte-1w44jyn"> </code></header> <p class="version svelte-1w44jyn"><span class="label svelte-1w44jyn">Version</span> <code class="svelte-1w44jyn"> </code> <!></p> <!> <!> <!> <!> <!> <div class="actions svelte-1w44jyn"><button type="button" class="svelte-1w44jyn">Close</button></div></div>');function B3(e,t){ie(t,!0);let n=H(()=>{if(!t.installed)return null;const D=new Date(t.installed.installedAt);return isNaN(D.getTime())?t.installed.installedAt:D.toLocaleString()});var r=q3(),s=p(r),a=p(s),o=p(a,!0);v(a);var l=w(a,2),c=p(l,!0);v(l),v(s);var u=w(s,2),d=w(p(u),2),f=p(d);v(d);var h=w(d,2);{var b=D=>{var C=R3();k(D,C)};K(h,D=>{t.installed||D(b)})}v(u);var S=w(u,2);{var _=D=>{var C=P3(),O=w(p(C),2),q=p(O,!0);v(O),v(C),N(()=>z(q,t.catalogEntry.description)),k(D,C)};K(S,D=>{t.catalogEntry?.description&&D(_)})}var y=w(S,2);{var E=D=>{var C=j3(),O=w(p(C),2),q=p(O,!0);v(O),v(C),N(()=>z(q,t.catalogEntry.author.name)),k(D,C)};K(y,D=>{t.catalogEntry?.author?.name&&D(E)})}var g=w(y,2);{var m=D=>{var C=D3(),O=w(p(C),2);pe(O,21,()=>t.manifest.requiredShards,dt,(q,R)=>{var V=M3(),X=p(V),Y=p(X,!0);v(X),v(V),N(()=>z(Y,i(R))),k(q,V)}),v(O),v(C),k(D,C)};K(g,D=>{t.manifest.requiredShards.length>0&&D(m)})}var I=w(g,2);{var P=D=>{var C=z3(),O=w(p(C),2);pe(O,21,()=>t.manifest.permissions,dt,(q,R)=>{var V=L3(),X=p(V),Y=p(X,!0);v(X),v(V),N(()=>z(Y,i(R))),k(q,V)}),v(O),v(C),k(D,C)};K(I,D=>{t.manifest.permissions&&t.manifest.permissions.length>0&&D(P)})}var T=w(I,2);{var M=D=>{var C=N3(),O=p(C),q=w(p(O)),R=p(q,!0);v(q),v(O);var V=w(O,2);{var X=se=>{var J=O3(),B=w(p(J)),W=p(B,!0);v(B),v(J),N(()=>z(W,i(n))),k(se,J)};K(V,se=>{i(n)&&se(X)})}var Y=w(V,2),Q=w(p(Y)),Z=p(Q);v(Q),v(Y),v(C),N(()=>{z(R,t.installed.sourceRegistry),z(Z,`v${t.installed.contractVersion??""}`)}),k(D,C)};K(T,D=>{t.installed&&D(M)})}var L=w(T,2),j=p(L);v(L),v(r),N(()=>{z(o,t.manifest.label),z(c,t.manifest.id),z(f,`v${t.manifest.version??""}`)}),U("click",j,function(...D){t.close?.apply(this,D)}),k(e,r),oe()}ce(["click"]);const Yc=typeof globalThis.__TAURI_INTERNALS__<"u";function V3(e){return!e.admin||e.builtin}function Gc(e){return e.admin?e.builtin?" · built-in":"":" · admin only"}function Pn(){const e=Ks();return!e||e.type!=="app"?null:e.ref}function Xs(e){return Wr().find(t=>t.id===e)}function F3(e){return!Qe.state.ephemeral.installed.some(t=>t.id===e)}function Li(e){return{admin:bt(),builtin:F3(e)}}function U3(e){const t=Pn();if(!t)return;const n=Xs(t.appId);if(!n)return;const r=Qe.state.ephemeral.installed.find(o=>o.id===t.appId)??null,s=Qe.state.ephemeral.catalog.find(o=>o.entry.id===t.appId)?.entry??null,a={manifest:n,installed:r,catalogEntry:s};Kt.open(B3,a)}async function H3(e){const t=Pn();if(!t)return;const{appId:n}=t,r=vn.notify("Checking for updates…",{duration:1/0});try{await Qe.refreshCatalog()}finally{r.close()}const s=Qe.state.ephemeral.updatable[n],a=Qe.state.ephemeral.installed.find(c=>c.id===n),o=Xs(n)?.label??n;if(!s||!a){vn.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 Qe.updatePackage(n,(c,u)=>x3({label:a.id,version:a.version},s.latest.version,c,u)),vn.notify(`Updated to v${s.latest.version}`,{level:"success"})}catch(c){throw vn.notify(`Update failed: ${c.message}`,{level:"error",duration:5e3}),c}}};Kt.open(I3,l)}function K3(e){const t=Pn();if(!t)return;const n=Xs(t.appId);n&&di({kind:"app",appId:t.appId,activateShards:n.requiredShards??[]})}async function W3(e){const t=rl();if(!t)return;const n=t.id,r=t.requiredShards??[];await Xr(),di({kind:"app",appId:n,activateShards:r})}function Y3(e){const t=Pn();if(!t)return;const{appId:n}=t,r=Qe.state.ephemeral.installed.find(o=>o.id===n);if(!r)return;const s=Xs(n)?.label??n,a={appId:n,appLabel:s,version:r.version,onConfirm:async()=>{try{await Qe.uninstallPackage(n),vn.notify(`Uninstalled ${s}`,{level:"success"})}catch(o){throw vn.notify(`Uninstall failed: ${o.message}`,{level:"error",duration:5e3}),o}}};Kt.open(T3,a)}function G3(e){const t=()=>{const l=Pn();if(!l)return"Info…";const c=Xs(l.appId);return c?`Info — ${c.label} v${c.version}`:`Info — ${l.appId}`},n=()=>{const l=Pn();return l?`Check for updates${Gc(Li(l.appId))}`:"Check for updates"},r=()=>{const l=Pn();return l?`Uninstall…${Gc(Li(l.appId))}`:"Uninstall…"},s=()=>{const l=Pn();return l?V3(Li(l.appId)):!0},o=[{id:"app.info",label:t,scope:{element:"app"},contextItem:!0,group:"info",run:U3},{id:"app.checkUpdate",label:n,scope:{element:"app"},contextItem:!0,group:"update",disabled:s,run:H3},{id:"app.uninstall",label:r,scope:{element:"app"},contextItem:!0,group:"uninstall",disabled:s,run:Y3},{id:"app.popout",label:"Open in standalone view",scope:{element:"app"},contextItem:!0,paletteItem:!1,group:"window",disabled:()=>!Yc,run:K3},{id:"app.popoutCurrent",label:"Pop out current app",scope:"app",contextItem:!1,paletteItem:!0,disabled:()=>!Yc||nt.id==null,run:W3}].map(l=>e.actions.register(l));return()=>o.forEach(l=>l())}function X3(){return{id:"sh3.float.toggleMaximize",label:"Toggle Float Maximize",scope:["home","app"],paletteItem:!0,contextItem:!1,defaultShortcut:"Ctrl+Shift+M",disabled:()=>Ce.list().length===0,run(){const e=Ce.list().at(-1);e&&Ce.toggleMaximize(e.id)}}}const Qv={manifest:{id:"__sh3core__",label:"SH3 Core",version:on,views:[{id:"sh3core:home",label:"Home"},{id:"shell:keys-and-peers",label:"Keys & Peers"}]},activate(e){const t=e.state({user:{bindings:{}}});xw(t.user),e.actions.register({id:"sh3.palette.open",label:"Command Palette…",scope:["home","app"],defaultShortcut:"Mod+K",contextItem:!1,paletteItem:!1,run(a){Zn(async()=>{const{openPalette:o}=await Promise.resolve().then(()=>O1);return{openPalette:o}},[]).then(({openPalette:o})=>o())}}),e.actions.register(X3()),e.actions.register({id:"sh3.app.reset-layout",label:"Reset Current Layout",scope:["app"],paletteItem:!0,contextItem:!1,run(){Kt.open(Kv,{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:()=>i1()})}});const n={mount(a,o){const l=qe(yS,{target:a});return{unmount(){Xe(l)}}}},r={mount(a,o){const l=qe(CS,{target:a});return{unmount(){Xe(l)}}}};e.registerView("sh3core:home",n),e.registerView("shell:keys-and-peers",r),G3(e),e.actions.register({id:"sh3.app.launch",label:"Launch app",scope:["home","app"],submenu:!0,paletteItem:!0});const s=new Map;Ur(()=>{xe(()=>{const a=new Set;for(const[o,l]of Ln){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(){mn(o)}});s.set(o,c)}for(const o of[...s.keys()])a.has(o)||(s.get(o)(),s.delete(o))})})},autostart(){}},J3={id:"shell",label:"Shell",version:on,views:[{id:"shell:terminal",label:"Shell",standalone:!0}],permissions:[Ya]};class Z3{#e;get history(){return i(this.#e)}set history(t){x(this.#e,t,!0)}#t;get locked(){return i(this.#t)}set locked(t){x(this.#t,t,!0)}constructor(t){this.#e=F(le([])),this.#t=F(!1),this.modeId=t,this.scrollback=new vk}}let Jn=null;function Q3(e){Jn=e}function $3(){Jn=null}function Xc(e){return Jn?.workspace.buffers[e]}function eE(e,t){Jn&&(Jn.workspace.buffers={...Jn.workspace.buffers,[e]:t})}function tE(){Jn={ephemeral:{},session:{},workspace:{buffers:{}},user:{}}}tE();const nE=200;class rE{constructor(){this.timers=new Map}hydrate(t){const n=Xc(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)},nE);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 Xc(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}:{}};eE(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 sE(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 aE(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}var iE=A("<pre> </pre>");function oE(e,t){ie(t,!0);const n=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,r=H(()=>t.chunks.join("").replace(n,""));var s=iE();let a;var o=p(s,!0);v(s),N(()=>{a=de(s,1,"shell-text svelte-ypr8s",null,a,{stderr:t.stream==="stderr"}),z(o,i(r))}),k(e,s),oe()}var lE=A('<div class="shell-prompt svelte-u0gb59"><span class="shell-prompt-cwd svelte-u0gb59"> </span> <span class="shell-prompt-arrow svelte-u0gb59">❯</span> <span class="shell-prompt-line svelte-u0gb59"> </span></div>');function cE(e,t){var n=lE(),r=p(n),s=p(r,!0);v(r);var a=w(r,4),o=p(a,!0);v(a),v(n),N(()=>{z(s,t.cwd),z(o,t.line)}),k(e,n)}var uE=A("<div> </div>");function Jc(e,t){var n=uE();let r;var s=p(n,!0);v(n),N(()=>{r=de(n,1,"shell-status svelte-nfxdpt",null,r,{info:t.level==="info",warn:t.level==="warn",error:t.level==="error"}),z(s,t.text)}),k(e,n)}var dE=A('<div class="shell-rich svelte-1rnhl05"><!></div>');function fE(e,t){var n=dE(),r=p(n);qs(r,()=>t.component,(s,a)=>{a(s,Vs(()=>t.componentProps))}),v(n),k(e,n)}const So=new Map;function An(e,t){const n=So.get(e);if(n&&n!==t){console.warn(`[shell-shard/rich-registry] duplicate registration for key "${e}" — keeping first`);return}So.set(e,t)}function vE(e){return So.get(e)??null}var hE=A('<div class="shell-scrollback svelte-isy3jt"><div class="content"></div></div>');function pE(e,t){ie(t,!0);let n=F(null),r=F(null),s=!0;const a=4;function o(d){return d.scrollHeight-d.scrollTop-d.clientHeight<=a}function l(){i(n)&&(s=o(i(n)))}xe(()=>{if(!i(r)||!i(n))return;const d=new ResizeObserver(()=>{i(n)&&s&&(i(n).scrollTop=i(n).scrollHeight)});return d.observe(i(r)),()=>d.disconnect()});var c=hE(),u=p(c);pe(u,21,()=>t.scrollback.entries,d=>d.id,(d,f)=>{var h=Be(),b=he(h);{var S=g=>{oE(g,{get stream(){return i(f).stream},get chunks(){return i(f).chunks}})},_=g=>{{let m=H(()=>t.showPromptCwd?i(f).cwd:"");cE(g,{get cwd(){return i(m)},get line(){return i(f).line}})}},y=g=>{Jc(g,{get text(){return i(f).text},get level(){return i(f).level}})},E=g=>{const m=H(()=>i(f).component??(i(f).componentKey?vE(i(f).componentKey):null));var I=Be(),P=he(I);{var T=L=>{fE(L,{get component(){return i(m)},get componentProps(){return i(f).props}})},M=L=>{{let j=H(()=>`<rich entry: ${i(f).componentKey??"unknown"} not registered>`);Jc(L,{get text(){return i(j)},level:"info"})}};K(P,L=>{i(m)?L(T):L(M,-1)})}k(g,I)};K(b,g=>{i(f).kind==="text"?g(S):i(f).kind==="prompt"?g(_,1):i(f).kind==="status"?g(y,2):i(f).kind==="rich"&&g(E,3)})}k(d,h)}),v(u),Le(u,d=>x(r,d),()=>i(r)),v(c),Le(c,d=>x(n,d),()=>i(n)),Re("scroll",c,l),k(e,c),oe()}var mE=A('<span class="sh3-cmdline__prefix svelte-ngn09j"><!></span>'),bE=A('<div data-sh3-passthrough-modifiers=""><!> <input type="text" class="sh3-cmdline__decoy svelte-ngn09j" tabindex="-1" aria-hidden="true"/> <input type="password" class="sh3-cmdline__decoy svelte-ngn09j" tabindex="-1" aria-hidden="true"/> <input type="search" spellcheck="false" autocomplete="off" autocapitalize="off" aria-autocomplete="none" data-1p-ignore="" data-lpignore="true" class="sh3-cmdline__input svelte-ngn09j"/></div>');function gE(e,t){ie(t,!0);let n=$(t,"value",15,""),r=$(t,"disabled",3,!1),s=F(null);function a(h){return h.selectionStart!==null&&h.selectionEnd!==null&&h.selectionStart!==h.selectionEnd}function o(h){(h.ctrlKey||h.metaKey)&&!h.altKey&&h.key==="c"&&i(s)&&a(i(s))||t.onkeydown?.(h)}xe(()=>{!r()&&i(s)&&i(s).focus()});var l=bE();let c;var u=p(l);{var d=h=>{var b=mE(),S=p(b);Ht(S,()=>t.prefix),v(b),k(h,b)};K(u,h=>{t.prefix&&h(d)})}var f=w(u,6);ge(f),Le(f,h=>x(s,h),()=>i(s)),v(l),N(()=>{c=de(l,1,"sh3-cmdline svelte-ngn09j",null,c,{"sh3-cmdline--disabled":r()}),ne(f,"name",t.name),f.disabled=r()}),U("keydown",f,o),Re("focus",f,function(...h){t.onfocus?.apply(this,h)}),Se(f,n),k(e,l),oe()}ce(["keydown"]);var yE=A('<span class="shell-input-cwd svelte-1dfv2gk"> </span>'),_E=A('<!> <span class="shell-input-arrow svelte-1dfv2gk">❯</span>',1),wE=A('<div class="shell-input-row svelte-1dfv2gk"><!></div>');function kE(e,t){ie(t,!0);let n=$(t,"showCwd",3,!0),r=F(""),s=F(null),a=F("");function o(){if(t.locked)return;const h=i(r);h.trim()&&(x(r,""),x(s,null),t.onSubmit(h))}function l(){t.history.length!==0&&(i(s)===null?(x(a,i(r),!0),x(s,t.history.length-1)):i(s)>0&&Mr(s,-1),x(r,t.history[i(s)]??"",!0))}function c(){i(s)!==null&&(i(s)<t.history.length-1?(Mr(s),x(r,t.history[i(s)],!0)):(x(s,null),x(r,i(a),!0)))}function u(h){if(t.locked){if(h.ctrlKey&&h.key==="c"){h.preventDefault(),t.session.send({t:"signal",sig:"SIGINT"});return}if(h.ctrlKey&&h.key==="d"){h.preventDefault(),t.session.send({t:"signal",sig:"EOF"});return}h.preventDefault();return}h.key==="Enter"?(h.preventDefault(),o()):h.key==="ArrowUp"?(h.preventDefault(),l()):h.key==="ArrowDown"?(h.preventDefault(),c()):h.ctrlKey&&h.key==="c"?(h.preventDefault(),x(r,""),x(s,null)):h.ctrlKey&&h.key==="l"&&(h.preventDefault(),x(r,"clear"),o())}var d=wE(),f=p(d);gE(f,{get disabled(){return t.locked},name:"shell-cmdline",onkeydown:u,onfocus:()=>t.onFocus?.(),get value(){return i(r)},set value(b){x(r,b,!0)},prefix:b=>{var S=_E(),_=he(S);{var y=E=>{var g=yE(),m=p(g,!0);v(g),N(()=>z(m,t.cwd)),k(E,g)};K(_,E=>{n()&&E(y)})}qt(2),k(b,S)},$$slots:{prefix:!0}}),v(d),k(e,d),oe()}class xE{list(){return vl()}get(t){return Ia(t)}resolve(t,n={}){const r=t.trim();if(!r)return{kind:"forward",line:t};if(r.startsWith("$ "))return{kind:"forward",line:r.slice(2)};if(r==="$")return{kind:"forward",line:""};const s=r.indexOf(" "),a=s===-1?r:r.slice(0,s),o=s===-1?"":r.slice(s+1),l=Ia(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 SE{#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 EE={id:"bash",label:"Bash",requiresRole:"admin",transport:"ws",autoRelocate:!1,showCwd:!0},IE={id:"sh3",label:"SH3",transport:"none",autoRelocate:!0,showCwd:!1};function AE(e){e.register(EE),e.register(IE)}function $v(e){return`sh3.shell.lastMode.${e}`}function eh(e){try{return globalThis.localStorage?.getItem($v(e))??null}catch{return null}}function Zc(e,t){try{globalThis.localStorage?.setItem($v(e),t)}catch{}}function CE(e,t,n){const r=eh(t);if(r){const a=e.get(r);if(a&&(!a.requiresRole||a.requiresRole===n))return a}const s=n==="admin"?"bash":"sh3";return e.get(s)}function va(e,t){return e.entries.find(n=>n.kind==="rich"&&n.id===t)}function TE(e,t){return{update(n){const r=va(e,t);r&&Object.assign(r.props,n)}}}function Qc(e){return e.entries[e.entries.length-1].id}function $c(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()}),TE(t,Qc(t))},stream(n,r){t.push({kind:"rich",component:n,props:{...r,__streamState:"streaming"},ts:Date.now()});const s=Qc(t);return{append(a){const o=va(t,s);o&&Object.assign(o.props,a)},complete(){const a=va(t,s);a&&(a.props.__streamState="complete")},error(a){const o=va(t,s);o&&(o.props.__streamState="error"),t.push({kind:"status",text:`mode: ${a?.message??String(a)}`,level:"error",ts:Date.now()})}}},busy(n){const r=e.busy(n);let s=!1;return{clear(){s||(s=!0,r())}}},invoke(n,r){return e.invoke(n,r)}}}function RE(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({shell:e.shell,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=$c({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}),e.buffer().scrollback.push({kind:"prompt",cwd:e.cwd(),line:s,ts:Date.now()});try{await l.verb.run({shell:e.shell,scrollback:e.buffer().scrollback,session:e.session,cwd:e.cwd(),dispatch:r,fs:e.fs},l.args)}catch(u){e.buffer().scrollback.push({kind:"status",text:`shell: verb ${l.verb.name} threw — ${u.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=$c({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(h){h?.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 — ${h?.message??String(h)}`,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 PE(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 jE=A('<div class="toolbar svelte-gnowwz"><div class="toolbar-slots svelte-gnowwz"></div></div>');function ME(e,t){ie(t,!0);let n=$(t,"slotProps",19,()=>({})),r=H(()=>t.registry.list(t.ctx));var s=jE(),a=p(s);pe(a,21,()=>i(r),o=>o.id,(o,l)=>{const c=H(()=>i(l).component);var u=Be(),d=he(u);qs(d,()=>i(c),(f,h)=>{h(f,Vs(()=>n()[i(l).id]??{}))}),k(o,u)}),v(a),v(s),k(e,s),oe()}class DE{#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 LE=A('<span class="mode-label svelte-1i4cqlj"> </span>');function zE(e,t){ie(t,!0);let n=H(()=>t.modes.map(l=>({value:l.id,label:l.label})));var r=Be(),s=he(r);{var a=l=>{Rv(l,{get options(){return i(n)},get value(){return t.mode.id},size:"sm",onchange:c=>t.onSelect(c)})},o=l=>{var c=LE(),u=p(c,!0);v(c),N(()=>z(u,t.mode.label)),k(l,c)};K(s,l=>{t.modes.length>=2?l(a):t.modes.length===1&&l(o,1)})}k(e,r),oe()}var OE=A('<button class="focus-lock-btn svelte-1q6gbap"> </button>');function NE(e,t){var n=OE(),r=p(n,!0);v(n),N(()=>{ne(n,"title",t.locked?"Unlock focus":"Lock focus"),z(r,t.locked?"🔒":"🔓")}),U("click",n,function(...s){t.onToggle?.apply(this,s)}),k(e,n)}ce(["click"]);var qE=A('<span class="target-shard svelte-1nn2m6x" title="Target shard"> </span>');function BE(e,t){var n=qE(),r=p(n);v(n),N(()=>z(r,`→ ${t.target??"—"??""}`)),k(e,n)}var VE=A('<span class="label"> </span>'),FE=A('<div class="busy svelte-7wyurd" role="status" aria-live="polite"><span class="spinner svelte-7wyurd" aria-hidden="true"></span> <!></div>');function UE(e,t){var n=Be(),r=he(n);{var s=a=>{var o=FE(),l=w(p(o),2);{var c=u=>{var d=VE(),f=p(d,!0);v(d),N(()=>z(f,t.label)),k(u,d)};K(l,u=>{t.label&&u(c)})}v(o),k(a,o)};K(r,a=>{t.active&&a(s)})}k(e,n)}var HE=A('<div class="shell-terminal svelte-13komre"><!> <!> <!></div>');function KE(e,t){ie(t,!0);const n=_e(()=>new rE),r=new Map;function s(B){let W=r.get(B);return W||(W=new Z3(B),n.hydrate(W),r.set(B,W)),W}const a=new xE,o=new hv,l=new SE;AE(l);let c=F(le(_e(()=>t.contributions.list(fs))));xe(()=>{const B=t.contributions.onChange(fs,()=>{x(c,t.contributions.list(fs),!0)});return()=>B()});function u(B){return{id:B.id,label:B.label,requiresRole:B.requiresRole,transport:"custom",autoRelocate:B.autoRelocate??!1,showCwd:B.showCwd??!1}}let d=H(()=>[...l.list(t.role),...i(c).filter(B=>!B.requiresRole||B.requiresRole===t.role).map(u)]),f=F(le(_e(()=>{const B=eh(t.userId);if(B){const ae=[...l.list(t.role),...i(c).filter(G=>!G.requiresRole||G.requiresRole===t.role).map(u)].find(G=>G.id===B);if(ae)return ae}return CE(l,t.userId,t.role)}))),h=F(0);function b(){x(h,performance.now(),!0)}const S=_e(()=>q1()),_=H(()=>s(i(f).id));xe(()=>{for(const[B,W]of Object.entries(g.historyByMode)){const ae=s(B);ae.history.length<W.length&&(ae.history=[...W])}}),xe(()=>{i(_).scrollback.entries.length,i(_).history.length,i(_).modeId==="bash"?n.flush(i(_),g.lastSeq):n.flush(i(_))});function y(B){const W=i(d).find(ae=>ae.id===B);W&&(W.requiresRole&&W.requiresRole!==t.role||(j(),x(f,W,!0),Zc(t.userId,B)))}xe(()=>{if(!i(d).find(B=>B.id===i(f).id)){const B=i(d).find(W=>W.id==="sh3")??i(d)[0];if(B){const W=i(f).id;x(f,B,!0),Zc(t.userId,B.id),s(B.id).scrollback.push({kind:"status",text:`mode '${W}' is no longer available — switched to '${B.id}'`,level:"warn",ts:Date.now()})}}});const E=_e(()=>({...t.shell,setMode:B=>{const W=i(d).find(ae=>ae.id===B);return!W||W.requiresRole&&W.requiresRole!==t.role?!1:(y(B),!0)},listModes:()=>i(d).map(B=>({id:B.id,label:B.label})),getMode:()=>({id:i(f).id,label:i(f).label}),dispatchToTerminal:wl({headless:!1})})),g=_e(()=>new vv(t.wsUrl));let m=0,I=F(le(new Map));function P(B){const W=++m;i(I).set(W,B),x(I,new Map(i(I)),!0);let ae=!1;return()=>{ae||(ae=!0,i(I).delete(W),x(I,new Map(i(I)),!0))}}let T=H(()=>i(I).size>0),M=H(()=>{if(i(I).size===0)return null;let B;for(const W of i(I).values())B=W;return B??null});const{dispatch:L,cancel:j}=_e(()=>RE({mode:()=>i(f),role:()=>t.role,resolver:a,buffer:()=>i(_),session:g,shell:E,fs:o,cwd:()=>g.cwd,busy:P,customMode:B=>i(c).find(W=>W.id===B)??null}));let D=F(!1),C=F(null);const O=new DE;O.register({id:"busy",order:5,visible:()=>!0,component:UE}),O.register({id:"mode",order:10,visible:()=>!0,component:zE}),O.register({id:"focus-lock",order:20,visible:B=>B.mode.id==="sh3",component:NE}),O.register({id:"target-shard",order:30,visible:B=>B.mode.id==="sh3",component:BE});function q(B){if(B.type==="tabs")return B.tabs[B.activeTab]?.viewId??null;if(B.type==="split"){for(const W of B.children){const ae=q(W);if(ae!==null)return ae}return null}return B.viewId??null}function R(){try{const B=Tt(),W=q(B.docked);if(!W)return null;const ae=W.indexOf(":");return ae>=0?W.slice(0,ae):W}catch{return null}}xe(()=>{const B=R(),W=i(f).autoRelocate,ae=i(D);(async()=>{const G=await PE({modeAutoRelocate:W,focusLocked:ae,focusedShardId:B,currentShardId:"shell"},o);G.kind==="relocate"&&G.path!==void 0&&(g.cwd=G.path),B&&B!=="shell"?x(C,B,!0):B||x(C,null)})()});function V(B){if(B.t==="replay"){sE(s("bash"),B.events);return}if(B.t!=="event")return;const W=B.event,ae=s("bash");switch(W.kind){case"prompt":ae.scrollback.push({kind:"prompt",cwd:W.cwd,line:W.line,ts:W.ts}),ae.locked=!0;break;case"stdout":ae.scrollback.push({kind:"text",stream:"stdout",chunks:[W.data],ts:W.ts});break;case"stderr":ae.scrollback.push({kind:"text",stream:"stderr",chunks:[W.data],ts:W.ts});break;case"exit":(W.signal||W.code!==null&&W.code!==0)&&ae.scrollback.push({kind:"status",text:W.signal?`shell: process exited (${W.signal})`:`shell: process exited (${W.code})`,level:"error",ts:W.ts}),ae.locked=!1;break;case"status":ae.scrollback.push({kind:"status",text:W.text,level:W.level,ts:W.ts});break}}let X=null,Y=null;Go(()=>{X=g.onMessage(V),s("bash");const B=n.readLastSeq("bash");B!==void 0&&(g.lastSeq=B),g.connect(),Y=B1({id:S,dispatch:L,getFocusStamp:()=>i(h),getMode:()=>i(f)})}),Xo(()=>{X?.(),g.close(),Y?.()});var Q=HE(),Z=p(Q);{let B=H(()=>({mode:i(f),role:t.role})),W=H(()=>({busy:{active:i(T),label:i(M)},mode:{mode:i(f),modes:i(d),onSelect:y},"focus-lock":{locked:i(D),onToggle:()=>x(D,!i(D))},"target-shard":{target:i(C)}}));ME(Z,{get registry(){return O},get ctx(){return i(B)},get slotProps(){return i(W)}})}var se=w(Z,2);{let B=H(()=>i(f).showCwd||!1);pE(se,{get showPromptCwd(){return i(B)},get scrollback(){return i(_).scrollback}})}var J=w(se,2);{let B=H(()=>aE(g.cwd,g.tenantRoot)),W=H(()=>i(f).showCwd!==!1);kE(J,{get cwd(){return i(B)},get showCwd(){return i(W)},get locked(){return i(_).locked},get history(){return i(_).history},get session(){return g},get onSubmit(){return L},onFocus:b})}v(Q),k(e,Q),oe()}var WE=A('<tr><td class="svelte-m248jy"><button type="button" class="svelte-m248jy"> </button></td><td class="svelte-m248jy"> </td></tr>'),YE=A('<div class="shell-rich-help svelte-m248jy"><table class="svelte-m248jy"><thead><tr><th class="svelte-m248jy">Name</th><th class="svelte-m248jy">Summary</th></tr></thead><tbody></tbody></table></div>');function th(e,t){ie(t,!0);var n=YE(),r=p(n),s=w(p(r));pe(s,21,()=>t.data.rows,a=>a.name,(a,o)=>{var l=WE(),c=p(l),u=p(c),d=p(u,!0);v(u),v(c);var f=w(c),h=p(f,!0);v(f),v(l),N(()=>{z(d,i(o).name),z(h,i(o).summary)}),U("click",u,()=>t.data.onClickName(i(o).name)),k(a,l)}),v(s),v(r),v(n),k(e,n),oe()}ce(["click"]);const nh="help-table";An(nh,th);function GE(){return{name:"help",summary:"List verbs or show detail for one.",globalVerb:!0,async run(e){const t=e.shell.getMode().id==="sh3",n=vl().filter(r=>t||r.globalVerb===!0).map(r=>({name:r.name,summary:r.summary}));e.scrollback.push({kind:"rich",componentKey:nh,component:th,props:{data:{rows:n,onClickName:r=>e.dispatch(r)}},ts:Date.now()})}}}const XE={name:"clear",summary:"Clear the scrollback (local only — other views are unaffected).",globalVerb:!0,async run(e){e.scrollback.clear()}},JE={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.shell.listModes().map(l=>` ${l.id.padEnd(12)} ${l.label}`);e.scrollback.push({kind:"text",stream:"stdout",chunks:[["Available modes:",...o].join(`
15
15
  `)+`
16
16
  `],ts:n});return}const r=t[0];e.shell.setMode(r)||e.scrollback.push({kind:"status",text:`mode: unknown or restricted mode '${r}'`,level:"error",ts:n})}};var ZE=A('<li class="svelte-o8m437"><button type="button" class="svelte-o8m437"> </button></li>'),QE=A('<div class="shell-rich-history svelte-o8m437"><ol class="svelte-o8m437"></ol></div>');function rh(e,t){ie(t,!0);var n=QE(),r=p(n);pe(r,21,()=>t.data.lines,dt,(s,a)=>{var o=ZE(),l=p(o),c=p(l,!0);v(l),v(o),N(()=>z(c,i(a))),U("click",l,()=>t.data.onClickLine(i(a))),k(s,o)}),v(r),v(n),k(e,n),oe()}ce(["click"]);const sh="history-list";An(sh,rh);const $E={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.shell.getMode().id,a=(e.session.historyByMode[r]??[]).slice(-n);e.scrollback.push({kind:"rich",componentKey:sh,component:rh,props:{data:{lines:a,onClickLine:o=>e.dispatch(o)}},ts:Date.now()})}};var e2=A('<tr><td class="svelte-1u5krjz"><button type="button" class="svelte-1u5krjz"> </button></td><td class="svelte-1u5krjz"> </td></tr>'),t2=A('<div class="shell-rich-apps svelte-1u5krjz"><table class="svelte-1u5krjz"><thead><tr><th class="svelte-1u5krjz">ID</th><th class="svelte-1u5krjz">Label</th></tr></thead><tbody></tbody></table></div>');function ah(e,t){ie(t,!0);var n=t2(),r=p(n),s=w(p(r));pe(s,21,()=>t.data.apps,a=>a.id,(a,o)=>{var l=e2(),c=p(l),u=p(c),d=p(u,!0);v(u),v(c);var f=w(c),h=p(f,!0);v(f),v(l),N(()=>{z(d,i(o).id),z(h,i(o).label)}),U("click",u,()=>t.data.onClickApp(i(o).id)),k(a,l)}),v(s),v(r),v(n),k(e,n),oe()}ce(["click"]);var n2=A('<div class="shell-rich-appcard svelte-npcp8i"><h3 class="svelte-npcp8i"> </h3> <p class="svelte-npcp8i"><strong>ID:</strong> </p> <p class="svelte-npcp8i"><strong>Shards:</strong> </p></div>');function ih(e,t){ie(t,!0);var n=n2(),r=p(n),s=p(r,!0);v(r);var a=w(r,2),o=w(p(a));v(a);var l=w(a,2),c=w(p(l));v(l),v(n),N(u=>{z(s,t.data.label),z(o,` ${t.data.id??""}`),z(c,` ${u??""}`)},[()=>t.data.shards.join(", ")]),k(e,n),oe()}const oh="apps-table",lh="app-card";An(oh,ah);An(lh,ih);const r2={name:"apps",summary:"List installed apps. Click a row to launch.",programmatic:!0,async run(e){const t=e.shell.listApps();e.scrollback.push({kind:"rich",componentKey:oh,component:ah,props:{data:{apps:t,onClickApp:n=>{e.shell.launchApp(n),e.scrollback.push({kind:"status",text:`shell: launched app ${n}`,level:"info",ts:Date.now()})}}},ts:Date.now()})}},s2={name:"app",summary:"Show the currently active app.",programmatic:!0,async run(e){const t=e.shell.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:lh,component:ih,props:{data:{id:t.id,label:t.label,shards:[]}},ts:Date.now()})}};var a2=A('<tr><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td><td class="svelte-sc3ux4"> </td></tr>'),i2=A('<div class="shell-rich-shards svelte-sc3ux4"><table class="svelte-sc3ux4"><thead><tr><th class="svelte-sc3ux4">ID</th><th class="svelte-sc3ux4">Label</th><th class="svelte-sc3ux4">Version</th></tr></thead><tbody></tbody></table></div>');function ch(e,t){ie(t,!0);var n=i2(),r=p(n),s=w(p(r));pe(s,21,()=>t.data.shards,a=>a.id,(a,o)=>{var l=a2(),c=p(l),u=p(c,!0);v(c);var d=w(c),f=p(d,!0);v(d);var h=w(d),b=p(h,!0);v(h),v(l),N(()=>{z(u,i(o).id),z(f,i(o).label),z(b,i(o).version)}),k(a,l)}),v(s),v(r),v(n),k(e,n),oe()}const uh="shards-table";An(uh,ch);const o2={name:"shards",summary:"List active shards.",programmatic:!0,async run(e){const t=e.shell.listShards();e.scrollback.push({kind:"rich",componentKey:uh,component:ch,props:{data:{shards:t}},ts:Date.now()})}};var l2=A('<tr><td class="svelte-15elbr1"> </td><td class="svelte-15elbr1"> </td><td class="svelte-15elbr1"> </td><td class="svelte-15elbr1"><button type="button" class="svelte-15elbr1">Close</button></td></tr>'),c2=A('<div class="shell-rich-views svelte-15elbr1"><table class="svelte-15elbr1"><thead><tr><th class="svelte-15elbr1">Slot ID</th><th class="svelte-15elbr1">View ID</th><th class="svelte-15elbr1">Label</th><th class="svelte-15elbr1">Action</th></tr></thead><tbody></tbody></table></div>');function dh(e,t){ie(t,!0);var n=c2(),r=p(n),s=w(p(r));pe(s,21,()=>t.data.views,a=>a.slotId,(a,o)=>{var l=l2(),c=p(l),u=p(c,!0);v(c);var d=w(c),f=p(d,!0);v(d);var h=w(d),b=p(h,!0);v(h);var S=w(h),_=p(S);v(S),v(l),N(()=>{z(u,i(o).slotId),z(f,i(o).viewId),z(b,i(o).label)}),U("click",_,()=>t.data.onClose(i(o).slotId)),k(a,l)}),v(s),v(r),v(n),k(e,n),oe()}ce(["click"]);const fh="views-table";An(fh,dh);const u2={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.shell.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
17
  `),level:"info",ts:Date.now()});return}const n=e.shell.listViewsInCurrentLayout();e.scrollback.push({kind:"rich",componentKey:fh,component:dh,props:{data:{views:n,onClose:r=>{const s=e.shell.closeSlot(r);s.ok||e.scrollback.push({kind:"status",text:`shell: close failed — ${s.error??"unknown"}`,level:"error",ts:Date.now()})}}},ts:Date.now()})}},d2={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.shell.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()})}},f2={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.shell.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()})}},v2={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.shell.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.shell.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()})}},h2={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.shell.closeSlot(n);r.ok||e.scrollback.push({kind:"status",text:`shell: close failed — ${r.error??"unknown"}`,level:"error",ts:Date.now()})}};var p2=A('<tr><td class="svelte-1w7onag"> </td><td class="svelte-1w7onag"> </td></tr>'),m2=A('<div class="shell-rich-zones svelte-1w7onag"><table class="svelte-1w7onag"><thead><tr><th class="svelte-1w7onag">Shard ID</th><th class="svelte-1w7onag">Zones</th></tr></thead><tbody></tbody></table></div>');function vh(e,t){ie(t,!0);var n=m2(),r=p(n),s=w(p(r));pe(s,21,()=>t.data.rows,a=>a.shardId,(a,o)=>{var l=p2(),c=p(l),u=p(c,!0);v(c);var d=w(c),f=p(d,!0);v(d),v(l),N(h=>{z(u,i(o).shardId),z(f,h)},[()=>i(o).zones.join(", ")]),k(a,l)}),v(s),v(r),v(n),k(e,n),oe()}var b2=A('<div class="shell-rich-zonetree svelte-13iiyr1"><pre class="svelte-13iiyr1"> </pre></div>');function hh(e,t){ie(t,!0);var n=b2(),r=p(n),s=p(r,!0);v(r),v(n),N(a=>z(s,a),[()=>JSON.stringify(t.data.value,null,2)]),k(e,n),oe()}const ph="zones-table",mh="zone-tree";An(ph,vh);An(mh,hh);const g2={name:"zones",summary:"List zones for the current user (optionally scoped to a shard).",programmatic:!0,async run(e,t){const n=e.shell.listZones(t[0]);e.scrollback.push({kind:"rich",componentKey:ph,component:vh,props:{data:{rows:n}},ts:Date.now()})}},y2={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.shell.readZone(n,r);e.scrollback.push({kind:"rich",componentKey:mh,component:hh,props:{data:{value:s}},ts:Date.now()})}};var _2=A('<tr><td class="svelte-1ox8vog"> </td><td class="svelte-1ox8vog"> </td></tr>'),w2=A('<div class="shell-rich-env svelte-1ox8vog"><table class="svelte-1ox8vog"><thead><tr><th class="svelte-1ox8vog">Key</th><th class="svelte-1ox8vog">Value</th></tr></thead><tbody></tbody></table></div>');function bh(e,t){ie(t,!0);var n=w2(),r=p(n),s=w(p(r));pe(s,21,()=>Object.entries(t.data.env),([a,o])=>a,(a,o)=>{var l=H(()=>xu(i(o),2));let c=()=>i(l)[0],u=()=>i(l)[1];var d=_2(),f=p(d),h=p(f,!0);v(f);var b=w(f),S=p(b,!0);v(b),v(d),N(()=>{z(h,c()),z(S,u())}),k(a,d)}),v(s),v(r),v(n),k(e,n),oe()}const gh="env-table";An(gh,bh);const k2={name:"env",summary:"Show the session environment.",async run(e){const t=e.session.env;e.scrollback.push({kind:"rich",componentKey:gh,component:bh,props:{data:{env:t}},ts:Date.now()})}};async function x2(){try{const{TauriStoreBackend:e}=await Zn(async()=>{const{TauriStoreBackend:r}=await import("./tauri-backend-C83nL1gr.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:yu}}}async function S2(){try{const{LazyStore:e}=await Zn(async()=>{const{LazyStore:r}=await import("./index-YGsF1N98.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 E2={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 S2(),location.reload()}};function I2(e){e.registerVerb(GE()),e.registerVerb(XE),e.registerVerb(JE),e.registerVerb($E),e.registerVerb(r2),e.registerVerb(s2),e.registerVerb(o2),e.registerVerb(u2),e.registerVerb(d2),e.registerVerb(h2),e.registerVerb(f2),e.registerVerb(v2),e.registerVerb(g2),e.registerVerb(y2),e.registerVerb(k2),e.registerVerb(E2)}const yh={manifest:J3,activate(e){I2(e);const t=fv(e.zones),n=e.state({workspace:{buffers:{}}});Q3(n),e.actions.register({id:"shell.terminal.toggle",label:"Open Terminal",scope:["home","app"],defaultShortcut:"²",allowInInputs:!1,run(){ai("shell:terminal")||Ce.open("shell:terminal",{title:"Shell"})}});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=Nr()?.id??"guest",f=bt()?"admin":"user",h=qe(KE,{target:s,props:{shell:t,wsUrl:c,userId:d,role:f,contributions:e.contributions}});return{unmount(){Xe(h)},closable:!0}}};e.registerView("shell:terminal",r)},autostart(){},deactivate(){$3()}};var A2=A('<p class="error svelte-1w8uhw5">The source float was closed.</p>'),C2=A('<p class="error svelte-1w8uhw5">No standalone views in this float.</p>'),T2=A('<li class="svelte-1w8uhw5"> <span class="muted svelte-1w8uhw5"> </span></li>'),R2=A('<div class="preview svelte-1w8uhw5"><div class="preview-label svelte-1w8uhw5"> </div> <ul class="preview-list svelte-1w8uhw5"></ul></div>'),P2=A('<div class="layout-save svelte-1w8uhw5"><h2 class="svelte-1w8uhw5">Save layout as…</h2> <label class="row svelte-1w8uhw5"><span class="svelte-1w8uhw5">Name</span> <input type="text" class="name-input svelte-1w8uhw5" placeholder="Layout name"/></label> <!> <div class="actions svelte-1w8uhw5"><button type="button" class="primary svelte-1w8uhw5">Save</button> <button type="button" class="svelte-1w8uhw5">Cancel</button></div></div>');function j2(e,t){ie(t,!0);const n=_e(()=>Ce.list().find(P=>P.id===t.floatId)?.content??null),r=H(()=>n?pi(n,t.isStandalone):null),s=H(()=>i(r)?u(i(r)):[]),a=H(()=>n===null),o=H(()=>!i(a)&&i(r)===null);let l=F(le(_e(()=>t.defaultName)));const c=H(()=>i(l).trim()===""||i(a)||i(o));function u(P){if(P.type==="slot")return P.viewId?[P.viewId]:[];if(P.type==="tabs"){const T=[];for(const M of P.tabs)M.viewId&&T.push(M.viewId);return T}return P.children.flatMap(u)}function d(){i(c)||(t.onConfirm(i(l).trim()),t.close())}var f=P2(),h=w(p(f),2),b=w(p(h),2);ge(b),v(h);var S=w(h,2);{var _=P=>{var T=A2();k(P,T)},y=P=>{var T=C2();k(P,T)},E=P=>{var T=R2(),M=p(T),L=p(M);v(M);var j=w(M,2);pe(j,21,()=>i(s),dt,(D,C)=>{var O=T2(),q=p(O),R=w(q),V=p(R);v(R),v(O),N(X=>{z(q,`${X??""} `),z(V,`(${i(C)??""})`)},[()=>t.resolveLabel(i(C))]),k(D,O)}),v(j),v(T),N(()=>z(L,`Captured views (${i(s).length??""}):`)),k(P,T)};K(S,P=>{i(a)?P(_):i(o)?P(y,1):P(E,-1)})}var g=w(S,2),m=p(g),I=w(m,2);v(g),v(f),N(()=>m.disabled=i(c)),Se(b,()=>i(l),P=>x(l,P)),U("click",m,d),U("click",I,()=>t.close()),k(e,f),oe()}ce(["click"]);function M2(){const e=Ks();return!e||e.type!=="float-header"?null:e.ref}function Nl(e){return Es().some(t=>t.viewId===e)}function D2(e){return Es().find(t=>t.viewId===e)?.label??e}function L2(){return`sl-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function z2(e,t){const n=Jx(e,Nl);if(n===null)return null;const r={id:L2(),name:t,createdAt:Date.now(),size:n.size,content:n.content};return Yx(r),r}function _h(){const e=Ks();return!e||e.type!=="saved-layout"?null:e.ref}function O2(e,t){const n=t.icon===void 0&&t.color===void 0?void 0:{icon:t.icon,color:t.color};qv(e,{name:t.label,appearance:n})}function N2(e){qv(e,{appearance:void 0})}function q2(e){const t=_h();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=>O2(t.layoutId,s),onReset:()=>N2(t.layoutId)};Kt.open(Fv,r)}function B2(e){Gx(e)}function V2(e){const t=_h();if(!t)return;const n=lr().find(r=>r.id===t.layoutId);n&&Kt.open(Kv,{title:`Delete saved layout "${n.name}"?`,body:"This cannot be undone.",confirmLabel:"Delete",confirmTone:"danger",onConfirm:()=>B2(t.layoutId)})}function F2(e){const t=M2();if(!t)return;const n={floatId:t.floatId,isStandalone:Nl,resolveLabel:D2,defaultName:`Layout ${lr().length+1}`,onConfirm:r=>{z2(t.floatId,r)}};Kt.open(j2,n)}const wh={manifest:{id:"__layouts__",label:"Saved Layouts",version:on,views:[]},activate(e){const t=e.state({user:{layouts:[]}});Kx(t);const n=(o,l)=>{vn.notify(o,{level:l})},r={id:"sh3.layout.save",label:"Save layout as…",scope:{element:"float-header"},contextItem:!0,paletteItem:!1,run:F2};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:q2}),e.actions.register({id:"sh3.layout.delete",label:"Delete",scope:{element:"saved-layout"},contextItem:!0,run:V2});const s=new Map,a=new Map;Ur(()=>{xe(()=>{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(h=>h.id===c.id);f&&Vv(f,Nl,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(){Wx()}},kh={manifest:{id:"sh3-store-app",label:"Package Store",version:on,requiredShards:["sh3-store"],layoutVersion:1,admin:!0},initialLayout:{type:"tabs",activeTab:0,tabs:[{slotId:"store.browse",viewId:"sh3-store:browse",label:"Browse"}]}};var U2=A('<div class="admin-error svelte-4q792t"> </div>'),H2=A('<form class="admin-create-form svelte-4q792t"><input class="admin-input svelte-4q792t" type="text" placeholder="Username"/> <input class="admin-input svelte-4q792t" type="text" placeholder="Display name"/> <input class="admin-input svelte-4q792t" type="password" placeholder="Password"/> <select class="admin-input svelte-4q792t"><option>User</option><option>Admin</option></select> <button type="submit" class="admin-btn svelte-4q792t">Create</button> <!></form>'),K2=A('<p class="admin-muted svelte-4q792t">Loading...</p>'),W2=A('<p class="admin-error svelte-4q792t"> </p>'),Y2=A('<form class="admin-edit-form svelte-4q792t"><input class="admin-input svelte-4q792t" type="text"/> <input class="admin-input svelte-4q792t" type="password" placeholder="New password (leave empty to keep)"/> <select class="admin-input svelte-4q792t"><option>User</option><option>Admin</option></select> <div class="admin-edit-actions svelte-4q792t"><button type="submit" class="admin-btn svelte-4q792t">Save</button> <button type="button" class="admin-btn-secondary svelte-4q792t">Cancel</button></div></form>'),G2=A('<div class="admin-user-info svelte-4q792t"><span class="admin-user-name svelte-4q792t"> </span> <span class="admin-user-meta svelte-4q792t"> </span></div> <div class="admin-user-actions svelte-4q792t"><button type="button" class="admin-btn-secondary svelte-4q792t">Edit</button> <button type="button" class="admin-btn-danger svelte-4q792t">Delete</button></div>',1),X2=A('<li class="admin-user-item svelte-4q792t"><!></li>'),J2=A('<ul class="admin-user-list svelte-4q792t"></ul>'),Z2=A('<div class="admin-users svelte-4q792t"><div class="admin-users-header svelte-4q792t"><h2 class="svelte-4q792t">Users</h2> <button type="button" class="admin-btn svelte-4q792t"> </button></div> <!> <!></div>');function Q2(e,t){ie(t,!0);let n=F(le([])),r=F(!0),s=F(null),a=F(!1),o=F(""),l=F(""),c=F(""),u=F("user"),d=F(null),f=F(null),h=F(""),b=F("user"),S=F("");async function _(){x(r,!0),x(s,null);try{const R=await fetch("/api/admin/users",{credentials:"include"});if(!R.ok)throw new Error("Failed to fetch users");x(n,await R.json(),!0)}catch(R){x(s,R instanceof Error?R.message:"Failed to load users",!0)}finally{x(r,!1)}}async function y(){x(d,null);try{const R=await fetch("/api/admin/users",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:i(o),displayName:i(l)||i(o),password:i(c),role:i(u)})});if(!R.ok){const V=await R.json().catch(()=>({}));x(d,V.error||"Failed to create user",!0);return}x(o,""),x(l,""),x(c,""),x(u,"user"),x(a,!1),await _()}catch{x(d,"Network error")}}function E(R){x(f,R.id,!0),x(h,R.displayName,!0),x(b,R.role,!0),x(S,"")}async function g(){if(!i(f))return;const R={displayName:i(h),role:i(b)};i(S).trim()&&(R.password=i(S));try{if(!(await fetch(`/api/admin/users/${i(f)}`,{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(R)})).ok)return;x(f,null),await _()}catch{}}async function m(R){try{await fetch(`/api/admin/users/${R}`,{method:"DELETE",credentials:"include"}),await _()}catch{}}_();var I=Z2(),P=p(I),T=w(p(P),2),M=p(T,!0);v(T),v(P);var L=w(P,2);{var j=R=>{var V=H2(),X=p(V);ge(X);var Y=w(X,2);ge(Y);var Q=w(Y,2);ge(Q);var Z=w(Q,2),se=p(Z);se.value=se.__value="user";var J=w(se);J.value=J.__value="admin",v(Z);var B=w(Z,2),W=w(B,2);{var ae=G=>{var ue=U2(),be=p(ue,!0);v(ue),N(()=>z(be,i(d))),k(G,ue)};K(W,G=>{i(d)&&G(ae)})}v(V),N(G=>B.disabled=G,[()=>!i(o).trim()||!i(c).trim()]),Re("submit",V,G=>{G.preventDefault(),y()}),Se(X,()=>i(o),G=>x(o,G)),Se(Y,()=>i(l),G=>x(l,G)),Se(Q,()=>i(c),G=>x(c,G)),ms(Z,()=>i(u),G=>x(u,G)),k(R,V)};K(L,R=>{i(a)&&R(j)})}var D=w(L,2);{var C=R=>{var V=K2();k(R,V)},O=R=>{var V=W2(),X=p(V,!0);v(V),N(()=>z(X,i(s))),k(R,V)},q=R=>{var V=J2();pe(V,21,()=>i(n),X=>X.id,(X,Y)=>{var Q=X2(),Z=p(Q);{var se=B=>{var W=Y2(),ae=p(W);ge(ae);var G=w(ae,2);ge(G);var ue=w(G,2),be=p(ue);be.value=be.__value="user";var at=w(be);at.value=at.__value="admin",v(ue);var Me=w(ue,2),Rt=w(p(Me),2);v(Me),v(W),Re("submit",W,Yt=>{Yt.preventDefault(),g()}),Se(ae,()=>i(h),Yt=>x(h,Yt)),Se(G,()=>i(S),Yt=>x(S,Yt)),ms(ue,()=>i(b),Yt=>x(b,Yt)),U("click",Rt,()=>{x(f,null)}),k(B,W)},J=B=>{var W=G2(),ae=he(W),G=p(ae),ue=p(G,!0);v(G);var be=w(G,2),at=p(be);v(be),v(ae);var Me=w(ae,2),Rt=p(Me),Yt=w(Rt,2);v(Me),N(()=>{z(ue,i(Y).displayName),z(at,`${i(Y).username??""} · ${i(Y).role??""}`)}),U("click",Rt,()=>E(i(Y))),U("click",Yt,()=>m(i(Y).id)),k(B,W)};K(Z,B=>{i(f)===i(Y).id?B(se):B(J,-1)})}v(Q),k(X,Q)}),v(V),k(R,V)};K(D,R=>{i(r)?R(C):i(s)?R(O,1):R(q,-1)})}v(I),N(()=>z(M,i(a)?"Cancel":"New user")),U("click",T,()=>{x(a,!i(a))}),k(e,I),oe()}ce(["click"]);var $2=A('<p class="admin-muted svelte-1hsgdb4">Loading...</p>'),eI=A('<div class="admin-error svelte-1hsgdb4"> </div>'),tI=A('<div class="admin-auth-fields svelte-1hsgdb4"><label class="admin-toggle svelte-1hsgdb4"><input type="checkbox" class="svelte-1hsgdb4"/> <span>Require sign-in</span> <span class="admin-hint svelte-1hsgdb4">When enabled, unauthenticated visitors see a sign-in wall.</span></label> <label class="admin-toggle svelte-1hsgdb4"><input type="checkbox" class="svelte-1hsgdb4"/> <span>Allow guest browsing</span> <span class="admin-hint svelte-1hsgdb4">When sign-in is required, guests can still browse with session-only data.</span></label> <label class="admin-toggle svelte-1hsgdb4"><input type="checkbox" class="svelte-1hsgdb4"/> <span>Self-registration</span> <span class="admin-hint svelte-1hsgdb4">Visitors can create their own accounts from the sign-in screen.</span></label> <label class="admin-field svelte-1hsgdb4"><span class="svelte-1hsgdb4">Session lifetime (hours)</span> <input type="number" class="admin-input admin-input-sm svelte-1hsgdb4" min="1" max="8760"/></label> <button type="button" class="admin-btn svelte-1hsgdb4"> </button></div> <!>',1),nI=A('<div class="admin-auth svelte-1hsgdb4"><h2 class="svelte-1hsgdb4">Auth Settings</h2> <!></div>');function rI(e,t){ie(t,!0);let n=F(null),r=F(!0),s=F(!1),a=F(null);async function o(){x(r,!0);try{const h=await fetch("/api/admin/settings",{credentials:"include"});if(!h.ok)throw new Error("Failed to fetch settings");x(n,await h.json(),!0)}catch(h){x(a,h instanceof Error?h.message:"Failed to load settings",!0)}finally{x(r,!1)}}async function l(){if(i(n)){x(s,!0),x(a,null);try{const h=await fetch("/api/admin/settings",{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(i(n))});if(!h.ok)throw new Error("Failed to save settings");x(n,await h.json(),!0)}catch(h){x(a,h instanceof Error?h.message:"Failed to save",!0)}finally{x(s,!1)}}}o();var c=nI(),u=w(p(c),2);{var d=h=>{var b=$2();k(h,b)},f=h=>{var b=tI(),S=he(b),_=p(S),y=p(_);ge(y),qt(4),v(_);var E=w(_,2),g=p(E);ge(g),qt(4),v(E);var m=w(E,2),I=p(m);ge(I),qt(4),v(m);var P=w(m,2),T=w(p(P),2);ge(T),v(P);var M=w(P,2),L=p(M,!0);v(M),v(S);var j=w(S,2);{var D=C=>{var O=eI(),q=p(O,!0);v(O),N(()=>z(q,i(a))),k(C,O)};K(j,C=>{i(a)&&C(D)})}N(()=>{M.disabled=i(s),z(L,i(s)?"Saving...":"Save")}),cs(y,()=>i(n).auth.required,C=>i(n).auth.required=C),cs(g,()=>i(n).auth.guestAllowed,C=>i(n).auth.guestAllowed=C),cs(I,()=>i(n).auth.selfRegistration,C=>i(n).auth.selfRegistration=C),Se(T,()=>i(n).auth.sessionTTL,C=>i(n).auth.sessionTTL=C),U("click",M,l),k(h,b)};K(u,h=>{i(r)?h(d):i(n)&&h(f,1)})}v(c),k(e,c),oe()}ce(["click"]);var sI=A('<button type="button"> </button>'),aI=A('<div class="admin-error svelte-1gkiloq"> </div>'),iI=A('<div class="admin-error svelte-1gkiloq"> </div>'),oI=A(`<div class="admin-system svelte-1gkiloq"><h2 class="svelte-1gkiloq">System</h2> <div class="admin-system-info svelte-1gkiloq"><div class="admin-system-row svelte-1gkiloq"><span class="admin-system-label svelte-1gkiloq">Server version</span> <span> </span></div></div> <section class="admin-system-section svelte-1gkiloq"><h3 class="svelte-1gkiloq">Package bundle cache</h3> <p class="admin-system-hint svelte-1gkiloq">Controls the <code>Cache-Control</code> header on <code>/packages/:id/client.js</code>.
18
+ `),level:"info",ts:Date.now()});return}const r=e.shell.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()})}},h2={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.shell.closeSlot(n);r.ok||e.scrollback.push({kind:"status",text:`shell: close failed — ${r.error??"unknown"}`,level:"error",ts:Date.now()})}};var p2=A('<tr><td class="svelte-1w7onag"> </td><td class="svelte-1w7onag"> </td></tr>'),m2=A('<div class="shell-rich-zones svelte-1w7onag"><table class="svelte-1w7onag"><thead><tr><th class="svelte-1w7onag">Shard ID</th><th class="svelte-1w7onag">Zones</th></tr></thead><tbody></tbody></table></div>');function vh(e,t){ie(t,!0);var n=m2(),r=p(n),s=w(p(r));pe(s,21,()=>t.data.rows,a=>a.shardId,(a,o)=>{var l=p2(),c=p(l),u=p(c,!0);v(c);var d=w(c),f=p(d,!0);v(d),v(l),N(h=>{z(u,i(o).shardId),z(f,h)},[()=>i(o).zones.join(", ")]),k(a,l)}),v(s),v(r),v(n),k(e,n),oe()}var b2=A('<div class="shell-rich-zonetree svelte-13iiyr1"><pre class="svelte-13iiyr1"> </pre></div>');function hh(e,t){ie(t,!0);var n=b2(),r=p(n),s=p(r,!0);v(r),v(n),N(a=>z(s,a),[()=>JSON.stringify(t.data.value,null,2)]),k(e,n),oe()}const ph="zones-table",mh="zone-tree";An(ph,vh);An(mh,hh);const g2={name:"zones",summary:"List zones for the current user (optionally scoped to a shard).",programmatic:!0,async run(e,t){const n=e.shell.listZones(t[0]);e.scrollback.push({kind:"rich",componentKey:ph,component:vh,props:{data:{rows:n}},ts:Date.now()})}},y2={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.shell.readZone(n,r);e.scrollback.push({kind:"rich",componentKey:mh,component:hh,props:{data:{value:s}},ts:Date.now()})}};var _2=A('<tr><td class="svelte-1ox8vog"> </td><td class="svelte-1ox8vog"> </td></tr>'),w2=A('<div class="shell-rich-env svelte-1ox8vog"><table class="svelte-1ox8vog"><thead><tr><th class="svelte-1ox8vog">Key</th><th class="svelte-1ox8vog">Value</th></tr></thead><tbody></tbody></table></div>');function bh(e,t){ie(t,!0);var n=w2(),r=p(n),s=w(p(r));pe(s,21,()=>Object.entries(t.data.env),([a,o])=>a,(a,o)=>{var l=H(()=>Su(i(o),2));let c=()=>i(l)[0],u=()=>i(l)[1];var d=_2(),f=p(d),h=p(f,!0);v(f);var b=w(f),S=p(b,!0);v(b),v(d),N(()=>{z(h,c()),z(S,u())}),k(a,d)}),v(s),v(r),v(n),k(e,n),oe()}const gh="env-table";An(gh,bh);const k2={name:"env",summary:"Show the session environment.",async run(e){const t=e.session.env;e.scrollback.push({kind:"rich",componentKey:gh,component:bh,props:{data:{env:t}},ts:Date.now()})}};async function x2(){try{const{TauriStoreBackend:e}=await Zn(async()=>{const{TauriStoreBackend:r}=await import("./tauri-backend-C83nL1gr.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:_u}}}async function S2(){try{const{LazyStore:e}=await Zn(async()=>{const{LazyStore:r}=await import("./index-YGsF1N98.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 E2={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 S2(),location.reload()}};function I2(e){e.registerVerb(GE()),e.registerVerb(XE),e.registerVerb(JE),e.registerVerb($E),e.registerVerb(r2),e.registerVerb(s2),e.registerVerb(o2),e.registerVerb(u2),e.registerVerb(d2),e.registerVerb(h2),e.registerVerb(f2),e.registerVerb(v2),e.registerVerb(g2),e.registerVerb(y2),e.registerVerb(k2),e.registerVerb(E2)}const yh={manifest:J3,activate(e){I2(e);const t=fv(e.zones),n=e.state({workspace:{buffers:{}}});Q3(n),e.actions.register({id:"shell.terminal.toggle",label:"Open Terminal",scope:["home","app"],defaultShortcut:"²",allowInInputs:!1,run(){ai("shell:terminal")||Ce.open("shell:terminal",{title:"Shell"})}});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=Nr()?.id??"guest",f=bt()?"admin":"user",h=qe(KE,{target:s,props:{shell:t,wsUrl:c,userId:d,role:f,contributions:e.contributions}});return{unmount(){Xe(h)},closable:!0}}};e.registerView("shell:terminal",r)},autostart(){},deactivate(){$3()}};var A2=A('<p class="error svelte-1w8uhw5">The source float was closed.</p>'),C2=A('<p class="error svelte-1w8uhw5">No standalone views in this float.</p>'),T2=A('<li class="svelte-1w8uhw5"> <span class="muted svelte-1w8uhw5"> </span></li>'),R2=A('<div class="preview svelte-1w8uhw5"><div class="preview-label svelte-1w8uhw5"> </div> <ul class="preview-list svelte-1w8uhw5"></ul></div>'),P2=A('<div class="layout-save svelte-1w8uhw5"><h2 class="svelte-1w8uhw5">Save layout as…</h2> <label class="row svelte-1w8uhw5"><span class="svelte-1w8uhw5">Name</span> <input type="text" class="name-input svelte-1w8uhw5" placeholder="Layout name"/></label> <!> <div class="actions svelte-1w8uhw5"><button type="button" class="primary svelte-1w8uhw5">Save</button> <button type="button" class="svelte-1w8uhw5">Cancel</button></div></div>');function j2(e,t){ie(t,!0);const n=_e(()=>Ce.list().find(P=>P.id===t.floatId)?.content??null),r=H(()=>n?pi(n,t.isStandalone):null),s=H(()=>i(r)?u(i(r)):[]),a=H(()=>n===null),o=H(()=>!i(a)&&i(r)===null);let l=F(le(_e(()=>t.defaultName)));const c=H(()=>i(l).trim()===""||i(a)||i(o));function u(P){if(P.type==="slot")return P.viewId?[P.viewId]:[];if(P.type==="tabs"){const T=[];for(const M of P.tabs)M.viewId&&T.push(M.viewId);return T}return P.children.flatMap(u)}function d(){i(c)||(t.onConfirm(i(l).trim()),t.close())}var f=P2(),h=w(p(f),2),b=w(p(h),2);ge(b),v(h);var S=w(h,2);{var _=P=>{var T=A2();k(P,T)},y=P=>{var T=C2();k(P,T)},E=P=>{var T=R2(),M=p(T),L=p(M);v(M);var j=w(M,2);pe(j,21,()=>i(s),dt,(D,C)=>{var O=T2(),q=p(O),R=w(q),V=p(R);v(R),v(O),N(X=>{z(q,`${X??""} `),z(V,`(${i(C)??""})`)},[()=>t.resolveLabel(i(C))]),k(D,O)}),v(j),v(T),N(()=>z(L,`Captured views (${i(s).length??""}):`)),k(P,T)};K(S,P=>{i(a)?P(_):i(o)?P(y,1):P(E,-1)})}var g=w(S,2),m=p(g),I=w(m,2);v(g),v(f),N(()=>m.disabled=i(c)),Se(b,()=>i(l),P=>x(l,P)),U("click",m,d),U("click",I,()=>t.close()),k(e,f),oe()}ce(["click"]);function M2(){const e=Ks();return!e||e.type!=="float-header"?null:e.ref}function ql(e){return Es().some(t=>t.viewId===e)}function D2(e){return Es().find(t=>t.viewId===e)?.label??e}function L2(){return`sl-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`}function z2(e,t){const n=Jx(e,ql);if(n===null)return null;const r={id:L2(),name:t,createdAt:Date.now(),size:n.size,content:n.content};return Yx(r),r}function _h(){const e=Ks();return!e||e.type!=="saved-layout"?null:e.ref}function O2(e,t){const n=t.icon===void 0&&t.color===void 0?void 0:{icon:t.icon,color:t.color};qv(e,{name:t.label,appearance:n})}function N2(e){qv(e,{appearance:void 0})}function q2(e){const t=_h();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=>O2(t.layoutId,s),onReset:()=>N2(t.layoutId)};Kt.open(Fv,r)}function B2(e){Gx(e)}function V2(e){const t=_h();if(!t)return;const n=lr().find(r=>r.id===t.layoutId);n&&Kt.open(Kv,{title:`Delete saved layout "${n.name}"?`,body:"This cannot be undone.",confirmLabel:"Delete",confirmTone:"danger",onConfirm:()=>B2(t.layoutId)})}function F2(e){const t=M2();if(!t)return;const n={floatId:t.floatId,isStandalone:ql,resolveLabel:D2,defaultName:`Layout ${lr().length+1}`,onConfirm:r=>{z2(t.floatId,r)}};Kt.open(j2,n)}const wh={manifest:{id:"__layouts__",label:"Saved Layouts",version:on,views:[]},activate(e){const t=e.state({user:{layouts:[]}});Kx(t);const n=(o,l)=>{vn.notify(o,{level:l})},r={id:"sh3.layout.save",label:"Save layout as…",scope:{element:"float-header"},contextItem:!0,paletteItem:!1,run:F2};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:q2}),e.actions.register({id:"sh3.layout.delete",label:"Delete",scope:{element:"saved-layout"},contextItem:!0,run:V2});const s=new Map,a=new Map;Ur(()=>{xe(()=>{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(h=>h.id===c.id);f&&Vv(f,ql,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(){Wx()}},kh={manifest:{id:"sh3-store-app",label:"Package Store",version:on,requiredShards:["sh3-store"],layoutVersion:1,admin:!0},initialLayout:{type:"tabs",activeTab:0,tabs:[{slotId:"store.browse",viewId:"sh3-store:browse",label:"Browse"}]}};var U2=A('<div class="admin-error svelte-4q792t"> </div>'),H2=A('<form class="admin-create-form svelte-4q792t"><input class="admin-input svelte-4q792t" type="text" placeholder="Username"/> <input class="admin-input svelte-4q792t" type="text" placeholder="Display name"/> <input class="admin-input svelte-4q792t" type="password" placeholder="Password"/> <select class="admin-input svelte-4q792t"><option>User</option><option>Admin</option></select> <button type="submit" class="admin-btn svelte-4q792t">Create</button> <!></form>'),K2=A('<p class="admin-muted svelte-4q792t">Loading...</p>'),W2=A('<p class="admin-error svelte-4q792t"> </p>'),Y2=A('<form class="admin-edit-form svelte-4q792t"><input class="admin-input svelte-4q792t" type="text"/> <input class="admin-input svelte-4q792t" type="password" placeholder="New password (leave empty to keep)"/> <select class="admin-input svelte-4q792t"><option>User</option><option>Admin</option></select> <div class="admin-edit-actions svelte-4q792t"><button type="submit" class="admin-btn svelte-4q792t">Save</button> <button type="button" class="admin-btn-secondary svelte-4q792t">Cancel</button></div></form>'),G2=A('<div class="admin-user-info svelte-4q792t"><span class="admin-user-name svelte-4q792t"> </span> <span class="admin-user-meta svelte-4q792t"> </span></div> <div class="admin-user-actions svelte-4q792t"><button type="button" class="admin-btn-secondary svelte-4q792t">Edit</button> <button type="button" class="admin-btn-danger svelte-4q792t">Delete</button></div>',1),X2=A('<li class="admin-user-item svelte-4q792t"><!></li>'),J2=A('<ul class="admin-user-list svelte-4q792t"></ul>'),Z2=A('<div class="admin-users svelte-4q792t"><div class="admin-users-header svelte-4q792t"><h2 class="svelte-4q792t">Users</h2> <button type="button" class="admin-btn svelte-4q792t"> </button></div> <!> <!></div>');function Q2(e,t){ie(t,!0);let n=F(le([])),r=F(!0),s=F(null),a=F(!1),o=F(""),l=F(""),c=F(""),u=F("user"),d=F(null),f=F(null),h=F(""),b=F("user"),S=F("");async function _(){x(r,!0),x(s,null);try{const R=await fetch("/api/admin/users",{credentials:"include"});if(!R.ok)throw new Error("Failed to fetch users");x(n,await R.json(),!0)}catch(R){x(s,R instanceof Error?R.message:"Failed to load users",!0)}finally{x(r,!1)}}async function y(){x(d,null);try{const R=await fetch("/api/admin/users",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:i(o),displayName:i(l)||i(o),password:i(c),role:i(u)})});if(!R.ok){const V=await R.json().catch(()=>({}));x(d,V.error||"Failed to create user",!0);return}x(o,""),x(l,""),x(c,""),x(u,"user"),x(a,!1),await _()}catch{x(d,"Network error")}}function E(R){x(f,R.id,!0),x(h,R.displayName,!0),x(b,R.role,!0),x(S,"")}async function g(){if(!i(f))return;const R={displayName:i(h),role:i(b)};i(S).trim()&&(R.password=i(S));try{if(!(await fetch(`/api/admin/users/${i(f)}`,{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(R)})).ok)return;x(f,null),await _()}catch{}}async function m(R){try{await fetch(`/api/admin/users/${R}`,{method:"DELETE",credentials:"include"}),await _()}catch{}}_();var I=Z2(),P=p(I),T=w(p(P),2),M=p(T,!0);v(T),v(P);var L=w(P,2);{var j=R=>{var V=H2(),X=p(V);ge(X);var Y=w(X,2);ge(Y);var Q=w(Y,2);ge(Q);var Z=w(Q,2),se=p(Z);se.value=se.__value="user";var J=w(se);J.value=J.__value="admin",v(Z);var B=w(Z,2),W=w(B,2);{var ae=G=>{var ue=U2(),be=p(ue,!0);v(ue),N(()=>z(be,i(d))),k(G,ue)};K(W,G=>{i(d)&&G(ae)})}v(V),N(G=>B.disabled=G,[()=>!i(o).trim()||!i(c).trim()]),Re("submit",V,G=>{G.preventDefault(),y()}),Se(X,()=>i(o),G=>x(o,G)),Se(Y,()=>i(l),G=>x(l,G)),Se(Q,()=>i(c),G=>x(c,G)),ms(Z,()=>i(u),G=>x(u,G)),k(R,V)};K(L,R=>{i(a)&&R(j)})}var D=w(L,2);{var C=R=>{var V=K2();k(R,V)},O=R=>{var V=W2(),X=p(V,!0);v(V),N(()=>z(X,i(s))),k(R,V)},q=R=>{var V=J2();pe(V,21,()=>i(n),X=>X.id,(X,Y)=>{var Q=X2(),Z=p(Q);{var se=B=>{var W=Y2(),ae=p(W);ge(ae);var G=w(ae,2);ge(G);var ue=w(G,2),be=p(ue);be.value=be.__value="user";var at=w(be);at.value=at.__value="admin",v(ue);var Me=w(ue,2),Rt=w(p(Me),2);v(Me),v(W),Re("submit",W,Yt=>{Yt.preventDefault(),g()}),Se(ae,()=>i(h),Yt=>x(h,Yt)),Se(G,()=>i(S),Yt=>x(S,Yt)),ms(ue,()=>i(b),Yt=>x(b,Yt)),U("click",Rt,()=>{x(f,null)}),k(B,W)},J=B=>{var W=G2(),ae=he(W),G=p(ae),ue=p(G,!0);v(G);var be=w(G,2),at=p(be);v(be),v(ae);var Me=w(ae,2),Rt=p(Me),Yt=w(Rt,2);v(Me),N(()=>{z(ue,i(Y).displayName),z(at,`${i(Y).username??""} · ${i(Y).role??""}`)}),U("click",Rt,()=>E(i(Y))),U("click",Yt,()=>m(i(Y).id)),k(B,W)};K(Z,B=>{i(f)===i(Y).id?B(se):B(J,-1)})}v(Q),k(X,Q)}),v(V),k(R,V)};K(D,R=>{i(r)?R(C):i(s)?R(O,1):R(q,-1)})}v(I),N(()=>z(M,i(a)?"Cancel":"New user")),U("click",T,()=>{x(a,!i(a))}),k(e,I),oe()}ce(["click"]);var $2=A('<p class="admin-muted svelte-1hsgdb4">Loading...</p>'),eI=A('<div class="admin-error svelte-1hsgdb4"> </div>'),tI=A('<div class="admin-auth-fields svelte-1hsgdb4"><label class="admin-toggle svelte-1hsgdb4"><input type="checkbox" class="svelte-1hsgdb4"/> <span>Require sign-in</span> <span class="admin-hint svelte-1hsgdb4">When enabled, unauthenticated visitors see a sign-in wall.</span></label> <label class="admin-toggle svelte-1hsgdb4"><input type="checkbox" class="svelte-1hsgdb4"/> <span>Allow guest browsing</span> <span class="admin-hint svelte-1hsgdb4">When sign-in is required, guests can still browse with session-only data.</span></label> <label class="admin-toggle svelte-1hsgdb4"><input type="checkbox" class="svelte-1hsgdb4"/> <span>Self-registration</span> <span class="admin-hint svelte-1hsgdb4">Visitors can create their own accounts from the sign-in screen.</span></label> <label class="admin-field svelte-1hsgdb4"><span class="svelte-1hsgdb4">Session lifetime (hours)</span> <input type="number" class="admin-input admin-input-sm svelte-1hsgdb4" min="1" max="8760"/></label> <button type="button" class="admin-btn svelte-1hsgdb4"> </button></div> <!>',1),nI=A('<div class="admin-auth svelte-1hsgdb4"><h2 class="svelte-1hsgdb4">Auth Settings</h2> <!></div>');function rI(e,t){ie(t,!0);let n=F(null),r=F(!0),s=F(!1),a=F(null);async function o(){x(r,!0);try{const h=await fetch("/api/admin/settings",{credentials:"include"});if(!h.ok)throw new Error("Failed to fetch settings");x(n,await h.json(),!0)}catch(h){x(a,h instanceof Error?h.message:"Failed to load settings",!0)}finally{x(r,!1)}}async function l(){if(i(n)){x(s,!0),x(a,null);try{const h=await fetch("/api/admin/settings",{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(i(n))});if(!h.ok)throw new Error("Failed to save settings");x(n,await h.json(),!0)}catch(h){x(a,h instanceof Error?h.message:"Failed to save",!0)}finally{x(s,!1)}}}o();var c=nI(),u=w(p(c),2);{var d=h=>{var b=$2();k(h,b)},f=h=>{var b=tI(),S=he(b),_=p(S),y=p(_);ge(y),qt(4),v(_);var E=w(_,2),g=p(E);ge(g),qt(4),v(E);var m=w(E,2),I=p(m);ge(I),qt(4),v(m);var P=w(m,2),T=w(p(P),2);ge(T),v(P);var M=w(P,2),L=p(M,!0);v(M),v(S);var j=w(S,2);{var D=C=>{var O=eI(),q=p(O,!0);v(O),N(()=>z(q,i(a))),k(C,O)};K(j,C=>{i(a)&&C(D)})}N(()=>{M.disabled=i(s),z(L,i(s)?"Saving...":"Save")}),cs(y,()=>i(n).auth.required,C=>i(n).auth.required=C),cs(g,()=>i(n).auth.guestAllowed,C=>i(n).auth.guestAllowed=C),cs(I,()=>i(n).auth.selfRegistration,C=>i(n).auth.selfRegistration=C),Se(T,()=>i(n).auth.sessionTTL,C=>i(n).auth.sessionTTL=C),U("click",M,l),k(h,b)};K(u,h=>{i(r)?h(d):i(n)&&h(f,1)})}v(c),k(e,c),oe()}ce(["click"]);var sI=A('<button type="button"> </button>'),aI=A('<div class="admin-error svelte-1gkiloq"> </div>'),iI=A('<div class="admin-error svelte-1gkiloq"> </div>'),oI=A(`<div class="admin-system svelte-1gkiloq"><h2 class="svelte-1gkiloq">System</h2> <div class="admin-system-info svelte-1gkiloq"><div class="admin-system-row svelte-1gkiloq"><span class="admin-system-label svelte-1gkiloq">Server version</span> <span> </span></div></div> <section class="admin-system-section svelte-1gkiloq"><h3 class="svelte-1gkiloq">Package bundle cache</h3> <p class="admin-system-hint svelte-1gkiloq">Controls the <code>Cache-Control</code> header on <code>/packages/:id/client.js</code>.
19
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 lI(e,t){ie(t,!0);const n=[{value:0,label:"Off (no-store)"},{value:5,label:"5s (dev)"},{value:60,label:"1 min"},{value:3600,label:"1 hour"},{value:86400,label:"1 day"},{value:31536e3,label:"1 year"}];let r=F("..."),s=F(!1),a=F(null),o=F(31536e3),l=F(31536e3),c=F(!1),u=F(null);const d=H(()=>i(o)!==i(l)),f=H(()=>h(i(o)));function h(G){return G===0?"0 seconds (off — browsers never cache)":G<60?`${G} seconds`:G<3600?`${Math.round(G/60)} minutes`:G<86400?`${Math.round(G/3600)} hours`:G<31536e3?`${Math.round(G/86400)} days`:`${Math.round(G/31536e3)} years`}async function b(){try{const G=await fetch("/api/version");if(G.ok){const ue=await G.json();x(r,ue.version,!0)}}catch{}}async function S(){try{const G=await fetch("/api/admin/settings",{credentials:"include"});if(G.ok){const be=(await G.json()).packages?.cacheMaxAge??31536e3;x(o,be,!0),x(l,be,!0)}}catch{}}async function _(){x(c,!0),x(u,null);try{const G=await fetch("/api/admin/settings",{method:"PUT",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({packages:{cacheMaxAge:i(o)}})});if(G.ok){const ue=await G.json();x(l,ue.packages?.cacheMaxAge??i(o),!0),x(o,i(l),!0)}else{const ue=await G.json().catch(()=>({}));x(u,ue.error||"Save failed",!0)}}catch{x(u,"Network error")}finally{x(c,!1)}}async function y(){x(s,!0),x(a,null);try{const G=await fetch("/api/admin/restart",{method:"POST",credentials:"include"});if(!G.ok){const ue=await G.json().catch(()=>({}));x(a,ue.error||"Restart failed",!0),x(s,!1)}}catch{x(a,"Network error"),x(s,!1)}}b(),S();var E=oI(),g=w(p(E),2),m=p(g),I=w(p(m),2),P=p(I,!0);v(I),v(m),v(g);var T=w(g,2),M=w(p(T),4);ge(M);var L=w(M,2),j=p(L),D=p(j,!0);v(j);var C=w(j);v(L);var O=w(L,2);pe(O,21,()=>n,G=>G.value,(G,ue)=>{var be=sI();let at;var Me=p(be,!0);v(be),N(()=>{at=de(be,1,"admin-snap svelte-1gkiloq",null,at,{active:i(o)===i(ue).value}),be.disabled=i(c),z(Me,i(ue).label)}),U("click",be,()=>x(o,i(ue).value,!0)),k(G,be)}),v(O);var q=w(O,2),R=p(q),V=p(R,!0);v(R);var X=w(R,2),Y=w(X,2);{var Q=G=>{var ue=aI(),be=p(ue,!0);v(ue),N(()=>z(be,i(u))),k(G,ue)};K(Y,G=>{i(u)&&G(Q)})}v(q),v(T);var Z=w(T,2),se=w(p(Z),2),J=p(se),B=p(J,!0);v(J);var W=w(J,2);{var ae=G=>{var ue=iI(),be=p(ue,!0);v(ue),N(()=>z(be,i(a))),k(G,ue)};K(W,G=>{i(a)&&G(ae)})}v(se),v(Z),v(E),N(()=>{z(P,i(r)),M.disabled=i(c),z(D,i(o)),z(C,` — ${i(f)??""}`),R.disabled=!i(d)||i(c),z(V,i(c)?"Saving...":"Save"),X.disabled=!i(d)||i(c),J.disabled=i(s),z(B,i(s)?"Restarting...":"Restart server")}),Se(M,()=>i(o),G=>x(o,G)),U("click",R,_),U("click",X,()=>x(o,i(l),!0)),U("click",J,y),k(e,E),oe()}ce(["click"]);var cI=A(`<div class="admin-key-created"><div class="admin-key-created-label">New key — copy now, it won't be shown again:</div> <code class="admin-key-value svelte-1afg5z5"> </code> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Dismiss</button></div>`),uI=A('<div class="admin-error svelte-1afg5z5"> </div>'),dI=A('<form class="admin-create-form svelte-1afg5z5"><input class="admin-input svelte-1afg5z5" type="text" placeholder="Key label"/> <button type="submit" class="admin-btn svelte-1afg5z5">Create</button> <!></form>'),fI=A('<p class="admin-muted svelte-1afg5z5">Loading...</p>'),vI=A('<p class="admin-error svelte-1afg5z5"> </p>'),hI=A('<p class="admin-muted svelte-1afg5z5">No API keys. Create one to enable external access.</p>'),pI=A('<button type="button" class="admin-btn-danger svelte-1afg5z5">Confirm</button> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Cancel</button>',1),mI=A('<button type="button" class="admin-btn-danger svelte-1afg5z5">Revoke</button>'),bI=A('<li class="admin-key-item svelte-1afg5z5"><div class="admin-key-info svelte-1afg5z5"><span class="admin-key-label svelte-1afg5z5"> </span> <span class="admin-key-meta svelte-1afg5z5"> </span></div> <div class="admin-key-actions svelte-1afg5z5"><!></div></li>'),gI=A('<ul class="admin-key-list svelte-1afg5z5"></ul>'),yI=A('<div class="admin-keys svelte-1afg5z5"><div class="admin-keys-header svelte-1afg5z5"><h2 class="svelte-1afg5z5">API Keys</h2> <button type="button" class="admin-btn svelte-1afg5z5"> </button></div> <!> <!> <!></div>');function _I(e,t){ie(t,!0);let n=F(le([])),r=F(!0),s=F(null),a=F(!1),o=F(""),l=F(null),c=F(null),u=F(null);async function d(){x(r,!0),x(s,null);try{const C=await fetch("/api/admin/keys",{credentials:"include"});if(!C.ok)throw new Error("Failed to fetch keys");x(n,await C.json(),!0)}catch(C){x(s,C instanceof Error?C.message:"Failed to load keys",!0)}finally{x(r,!1)}}async function f(){x(l,null);try{const C=await fetch("/api/admin/keys",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({label:i(o)})});if(!C.ok){const q=await C.json().catch(()=>({}));x(l,q.error||"Failed to create key",!0);return}const O=await C.json();x(c,{id:O.id,key:O.key},!0),x(o,""),x(a,!1),await d()}catch{x(l,"Network error")}}async function h(C){x(u,null);try{await fetch(`/api/admin/keys/${C}`,{method:"DELETE",credentials:"include"}),i(c)?.id===C&&x(c,null),await d()}catch{}}function b(C){return new Date(C).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}d();var S=yI(),_=p(S),y=w(p(_),2),E=p(y,!0);v(y),v(_);var g=w(_,2);{var m=C=>{var O=cI(),q=w(p(O),2),R=p(q,!0);v(q);var V=w(q,2);v(O),N(()=>z(R,i(c).key)),U("click",V,()=>{x(c,null)}),k(C,O)};K(g,C=>{i(c)&&C(m)})}var I=w(g,2);{var P=C=>{var O=dI(),q=p(O);ge(q);var R=w(q,2),V=w(R,2);{var X=Y=>{var Q=uI(),Z=p(Q,!0);v(Q),N(()=>z(Z,i(l))),k(Y,Q)};K(V,Y=>{i(l)&&Y(X)})}v(O),N(Y=>R.disabled=Y,[()=>!i(o).trim()]),Re("submit",O,Y=>{Y.preventDefault(),f()}),Se(q,()=>i(o),Y=>x(o,Y)),k(C,O)};K(I,C=>{i(a)&&C(P)})}var T=w(I,2);{var M=C=>{var O=fI();k(C,O)},L=C=>{var O=vI(),q=p(O,!0);v(O),N(()=>z(q,i(s))),k(C,O)},j=C=>{var O=hI();k(C,O)},D=C=>{var O=gI();pe(O,21,()=>i(n),q=>q.id,(q,R)=>{var V=bI(),X=p(V),Y=p(X),Q=p(Y,!0);v(Y);var Z=w(Y,2),se=p(Z);v(Z),v(X);var J=w(X,2),B=p(J);{var W=G=>{var ue=pI(),be=he(ue),at=w(be,2);U("click",be,()=>h(i(R).id)),U("click",at,()=>{x(u,null)}),k(G,ue)},ae=G=>{var ue=mI();U("click",ue,()=>{x(u,i(R).id,!0)}),k(G,ue)};K(B,G=>{i(u)===i(R).id?G(W):G(ae,-1)})}v(J),v(V),N(G=>{z(Q,i(R).label),z(se,`${i(R).id??""} · ${G??""}`)},[()=>b(i(R).createdAt)]),k(q,V)}),v(O),k(C,O)};K(T,C=>{i(r)?C(M):i(s)?C(L,1):i(n).length===0?C(j,2):C(D,-1)})}v(S),N(()=>z(E,i(a)?"Cancel":"New key")),U("click",y,()=>{x(a,!i(a))}),k(e,S),oe()}ce(["click"]);const xh={manifest:{id:"sh3-admin",label:"Admin",version:on,views:[{id:"sh3-admin:users",label:"Users"},{id:"sh3-admin:auth",label:"Auth Settings"},{id:"sh3-admin:system",label:"System"},{id:"sh3-admin:keys",label:"API Keys"}]},activate(e){const t={mount(a,o){const l=qe(Q2,{target:a});return{unmount(){Xe(l)}}}},n={mount(a,o){const l=qe(rI,{target:a});return{unmount(){Xe(l)}}}},r={mount(a,o){const l=qe(lI,{target:a});return{unmount(){Xe(l)}}}},s={mount(a,o){const l=qe(_I,{target:a});return{unmount(){Xe(l)}}}};e.registerView("sh3-admin:users",t),e.registerView("sh3-admin:auth",n),e.registerView("sh3-admin:system",r),e.registerView("sh3-admin:keys",s)}},Sh={manifest:{id:"sh3-admin-app",label:"Admin",version:on,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"}]}},$c="sh3:migrations:shell-rename:done",eu="__shell__:",wI="__sh3core__:",tu="sh3:user:__shell__:theme",nu="sh3:user:__sh3core__:theme";function kI(e,t){if(t.getItem($c))return;const n=t.getItem(tu);n!==null&&t.getItem(nu)===null&&(t.setItem(nu,n),t.removeItem(tu));for(const r of e.keys()){if(!r.startsWith(eu))continue;const s=wI+r.slice(eu.length),a=e.read(r);e.write(s,a),e.delete(r)}t.setItem($c,"1")}const ru="sh3:migrations:mode-id-rename:done",xI="sh3.shell.lastMode.",su={dev:"bash",user:"sh3"};function SI(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 EI(e){if(!e.getItem(ru)){for(const t of SI(e)){if(!t.startsWith(xI))continue;const n=e.getItem(t);n&&Object.prototype.hasOwnProperty.call(su,n)&&e.setItem(t,su[n])}e.setItem(ru,"1")}}let au=!1,iu=null;function II(){au||(au=!0,iu=e=>{const t=e.state?.sh3;t==="anchor"?(Wy(),history.forward()):t==="forward-bumper"&&(Yy(),history.back())},window.addEventListener("popstate",iu),history.replaceState({sh3:"anchor"},""),history.pushState({sh3:"main"},""),history.pushState({sh3:"forward-bumper"},""),history.back())}function ou(e){ci(e)}function AI(){const e=rn.workspace;return{keys:()=>e.list(),read:t=>e.read(t),write:(t,n)=>e.write(t,n),delete:t=>e.delete(t)}}async function CI(e){if(typeof globalThis.localStorage<"u"){kI(AI(),globalThis.localStorage),EI(globalThis.localStorage);const{migrateLegacyWorkspaceKeys:a}=await Zn(async()=>{const{migrateLegacyWorkspaceKeys:l}=await import("./workspace-rekey-DRgvbNY-.js");return{migrateLegacyWorkspaceKeys:l}},[]),{getActiveScopeId:o}=await Zn(async()=>{const{getActiveScopeId:l}=await Promise.resolve().then(()=>G1);return{getActiveScopeId:l}},void 0);a(o())}const t=new Set(e?.excludeShards),n=[Qv,yh,Zv,xh,Nv,Hv,wh];for(const a of n)t.has(a.manifest.id)||ci(a);const r=[kh,Sh];for(const a of r)gs(a);await Xv();for(const[a,o]of an)if(o.autostart){f1(a);try{await Cl(a,{phase:"autostart"})}catch{}}const s=$f();if(s&&Ln.has(s))try{await mn(s)}catch(a){console.error(`[sh3] Auto-launch of "${s}" failed:`,a),ev()}Hy({returnToHome:Xr,launchApp:mn}),typeof window<"u"&&typeof history<"u"&&II()}async function TI(e){const t=[Qv,yh,Zv,xh,Nv,Hv,wh];for(const r of t)ci(r);const n=[kh,Sh];for(const r of n)gs(r);await Xv();for(const r of e.activateShardIds)if(an.has(r))try{await Cl(r,{phase:"satellite"})}catch(s){console.error(`[sh3] satellite activation of "${r}" failed:`,s)}else console.warn(`[sh3] satellite requested shard "${r}" but it is not registered`)}var RI=A('<button type="button" aria-label="Expand pane"><span class="collapse-icon"> </span></button>'),PI=A('<button type="button" aria-label="Collapse pane"><span class="collapse-icon"> </span></button>'),jI=A('<!> <div class="pane-content svelte-1adl4o1"><!></div>',1),MI=A('<div role="separator"></div>'),DI=A("<div><!></div> <!>",1),LI=A("<div></div>");function zI(e,t){ie(t,!0);const n=40,r=28;let s;const a=E=>t.pinned?.[E]??"fr",o=E=>t.collapsed?.[E]??!1,l=E=>t.fixed?.[E]??!1,c=E=>l(E)||l(E+1);function u(E){if(l(E))return!1;const g=E>0?!l(E-1):!1,m=E<t.count-1?!l(E+1):!1;return g||m}function d(E){return o(E)?`0 0 ${r}px`:a(E)==="px"?`0 0 ${Math.max(n,t.sizes[E])}px`:`${Math.max(1e-4,t.sizes[E])} 1 0`}let f=F(null);function h(E,g){if(o(g)||o(g+1)||c(g))return;E.preventDefault(),E.target.setPointerCapture(E.pointerId);const m=s.getBoundingClientRect(),I=t.direction==="horizontal"?m.width:m.height;let P=0,T=0;for(let M=0;M<t.sizes.length;M++)a(M)==="fr"?P+=t.sizes[M]:T+=Math.max(n,t.sizes[M]);x(f,{handleIndex:g,startClient:t.direction==="horizontal"?E.clientX:E.clientY,startSizes:t.sizes.slice(),containerPx:I,totalFr:P,frAvailPx:Math.max(1,I-T)},!0)}function b(E){if(!i(f))return;const m=(t.direction==="horizontal"?E.clientX:E.clientY)-i(f).startClient,I=i(f).handleIndex,P=I+1,T=a(I),M=a(P),L=i(f).totalFr/i(f).frAvailPx;if(T==="fr"&&M==="fr"){const j=n*L,D=m*L,C=i(f).startSizes[P]-j,O=-(i(f).startSizes[I]-j),q=Math.min(Math.max(D,O),C);t.onResize?.(I,i(f).startSizes[I]+q),t.onResize?.(P,i(f).startSizes[P]-q)}else if(T==="px"&&M==="fr"){const j=i(f).frAvailPx-n,D=n-i(f).startSizes[I];t.onResize?.(I,i(f).startSizes[I]+Math.min(Math.max(m,D),j))}else if(T==="fr"&&M==="px"){const j=i(f).startSizes[P]-n,D=-(i(f).frAvailPx-n);t.onResize?.(P,i(f).startSizes[P]-Math.min(Math.max(m,D),j))}else{const j=i(f).startSizes[P]-n,D=-(i(f).startSizes[I]-n),C=Math.min(Math.max(m,D),j);t.onResize?.(I,i(f).startSizes[I]+C),t.onResize?.(P,i(f).startSizes[P]-C)}}function S(E){i(f)&&(E.target.releasePointerCapture(E.pointerId),x(f,null))}var _=LI();let y;pe(_,21,()=>Array(t.count),dt,(E,g,m)=>{var I=DI(),P=he(I);let T;var M=p(P);{var L=q=>{var R=RI();let V;var X=p(R),Y=p(X,!0);v(X),v(R),N(()=>{V=de(R,1,"collapse-header svelte-1adl4o1",null,V,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),z(Y,t.direction==="horizontal"?"▸":"▾")}),U("click",R,()=>t.onCollapseToggle?.(m,!1)),k(q,R)},j=H(()=>o(m)),D=q=>{var R=jI(),V=he(R);{var X=se=>{var J=PI();let B;ne(J,"data-testid",`collapse-toggle-${m}`);var W=p(J),ae=p(W,!0);v(W),v(J),N(()=>{B=de(J,1,"collapse-header expanded svelte-1adl4o1",null,B,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),z(ae,t.direction==="horizontal"?"◂":"▴")}),U("click",J,()=>t.onCollapseToggle?.(m,!0)),k(se,J)},Y=H(()=>t.onCollapseToggle&&u(m));K(V,se=>{i(Y)&&se(X)})}var Q=w(V,2),Z=p(Q);Ht(Z,()=>t.pane,()=>m),v(Q),k(q,R)};K(M,q=>{i(j)?q(L):q(D,-1)})}v(P);var C=w(P,2);{var O=q=>{var R=MI();let V;ne(R,"data-testid",`splitter-handle-${m}`),N(X=>{V=de(R,1,"splitter-handle svelte-1adl4o1",null,V,X),ne(R,"aria-orientation",t.direction==="horizontal"?"vertical":"horizontal")},[()=>({dragging:i(f)?.handleIndex===m,disabled:o(m)||o(m+1),frozen:c(m)})]),U("pointerdown",R,X=>h(X,m)),U("pointermove",R,b),U("pointerup",R,S),Re("pointercancel",R,S),U("dblclick",R,()=>{c(m)||!u(m)&&!o(m)||t.onCollapseToggle?.(m,!o(m))}),k(q,R)};K(C,q=>{m<t.count-1&&q(O)})}N((q,R)=>{T=de(P,1,"splitter-pane svelte-1adl4o1",null,T,q),He(P,`flex: ${R??""};`)},[()=>({collapsed:o(m)}),()=>d(m)]),k(E,I)}),v(_),Le(_,E=>s=E,()=>s),N(()=>y=de(_,1,"splitter svelte-1adl4o1",null,y,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"})),k(e,_),oe()}ce(["click","pointerdown","pointermove","pointerup","dblclick"]);function OI(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 NI=A('<span class="tab-dirty svelte-1kxcyhf" title="Unsaved changes"></span>'),qI=A('<span class="tab-icon svelte-1kxcyhf"> </span>'),BI=A('<span class="tab-close svelte-1kxcyhf" role="button" tabindex="-1" title="Close">&#x2715;</span>'),VI=A('<button type="button" role="tab"><!> <!> <span class="tab-label svelte-1kxcyhf"> </span> <!></button>'),FI=A('<div class="drop-indicator svelte-1kxcyhf"></div>'),UI=A("<div><!></div>"),HI=A('<div class="tabbed-panel svelte-1kxcyhf"><div class="tab-strip svelte-1kxcyhf" role="tablist" tabindex="-1"><!> <!></div> <div class="tab-body svelte-1kxcyhf" role="tabpanel"></div></div>');function KI(e,t){ie(t,!0);function n(y){t.clickGuard?.()||t.onActiveChange?.(y)}function r(y,E){E.stopPropagation(),t.onClose?.(y)}let s=F(void 0);const a=le([]);let o=F(null);function l(y,E){if(!t.dragController)return;const g=a[y];g&&t.dragController.onPointerDown(y,E,g)}function c(y){if(!t.dragController||!t.dragController.isDragging||!i(s))return;const E=i(s).getBoundingClientRect(),g=a.filter(m=>!!m).map(m=>m.getBoundingClientRect());x(o,t.dragController.onStripHover(E,y.clientX,y.clientY,g),!0)}function u(){t.dragController&&(x(o,null),t.dragController.onStripLeave())}var d=HI(),f=p(d),h=p(f);pe(h,17,()=>t.labels,dt,(y,E,g)=>{var m=VI();let I;var P=p(m);{var T=q=>{var R=NI();k(q,R)};K(P,q=>{t.dirty?.[g]&&q(T)})}var M=w(P,2);{var L=q=>{var R=qI(),V=p(R,!0);v(R),N(()=>z(V,t.icons[g])),k(q,R)};K(M,q=>{t.icons?.[g]&&q(L)})}var j=w(M,2),D=p(j,!0);v(j);var C=w(j,2);{var O=q=>{var R=BI();N(()=>ne(R,"data-testid",t.tabIds?.[g]?`tab-close-${t.tabIds[g]}`:void 0)),U("click",R,V=>r(g,V)),U("keydown",R,V=>{(V.key==="Enter"||V.key===" ")&&r(g,V)}),k(q,R)};K(C,q=>{t.closable?.[g]&&q(O)})}v(m),Le(m,(q,R)=>a[R]=q,q=>a?.[q],()=>[g]),N(()=>{I=de(m,1,"tab svelte-1kxcyhf",null,I,{active:t.activeTab===g}),ne(m,"aria-selected",t.activeTab===g),z(D,i(E))}),U("click",m,()=>n(g)),U("pointerdown",m,q=>l(g,q)),Re("auxclick",m,q=>{q.button===1&&t.closable?.[g]&&r(g,q)}),k(y,m)});var b=w(h,2);{var S=y=>{const E=H(()=>OI(i(o),a,i(s)));var g=Be(),m=he(g);{var I=P=>{var T=FI();N(()=>He(T,`left: ${i(E).left??""}px; height: ${i(E).height??""}px; top: ${i(E).top??""}px;`)),k(P,T)};K(m,P=>{i(E)&&P(I)})}k(y,g)};K(b,y=>{i(o)!==null&&t.dragController?.isDragging&&y(S)})}v(f),Le(f,y=>x(s,y),()=>i(s));var _=w(f,2);pe(_,21,()=>t.labels,dt,(y,E,g)=>{var m=UI();let I;var P=p(m);Ht(P,()=>t.body,()=>g),v(m),N(()=>I=de(m,1,"tab-body-pane svelte-1kxcyhf",null,I,{active:t.activeTab===g})),k(y,m)}),v(_),v(d),U("pointermove",f,c),Re("pointerleave",f,u),k(e,d),oe()}ce(["pointermove","click","pointerdown","keydown"]);var WI=A('no factory for <code class="svelte-1czj0s8"> </code>',1),YI=A("<em>empty slot</em>"),GI=A('<div class="slot-placeholder svelte-1czj0s8"><div class="slot-id svelte-1czj0s8"> </div> <div class="slot-meta svelte-1czj0s8"><!></div> <div class="slot-dims svelte-1czj0s8"> </div></div>'),XI=A('<div class="slot svelte-1czj0s8"><!></div>');function lu(e,t){ie(t,!0);let n=$(t,"label",3,""),r=F(void 0),s=F(0),a=F(0);const o=H(()=>t.node.viewId?!!kf(t.node.viewId):!1);xe(()=>{if(!i(r))return;const d=t.node.slotId,f=i(r),h=pl(d,t.node.viewId,n()||t.node.viewId||d,t.meta);f.appendChild(h);const b=new ResizeObserver(S=>{for(const _ of S){const y=_.contentRect;x(s,Math.round(y.width),!0),x(a,Math.round(y.height),!0)}});return b.observe(f),()=>{b.disconnect(),ml(d,f)}});var l=XI(),c=p(l);{var u=d=>{var f=GI(),h=p(f),b=p(h,!0);v(h);var S=w(h,2),_=p(S);{var y=I=>{var P=WI(),T=w(he(P)),M=p(T,!0);v(T),N(()=>z(M,t.node.viewId)),k(I,P)},E=I=>{var P=YI();k(I,P)};K(_,I=>{t.node.viewId?I(y):I(E,-1)})}v(S);var g=w(S,2),m=p(g);v(g),v(f),N(()=>{z(b,t.node.slotId),z(m,`${i(s)??""} × ${i(a)??""}`)}),k(d,f)};K(c,d=>{i(o)||d(u)})}v(l),Le(l,d=>x(r,d),()=>i(r)),N(()=>{ne(l,"data-slot-id",t.node.slotId),ne(l,"data-view-id",t.node.viewId??"")}),k(e,l),oe()}const we=le({phase:"idle",source:null,pointerX:0,pointerY:0,target:null});let Eh=0;function JI(){return performance.now()<Eh}const cu=4;let Ih=0,Ah=0;function ZI(e,t,n,r,s){if(we.phase!=="idle")return;const a=s.getBoundingClientRect();we.phase="pending",we.source={slotId:e,entry:t,sourceRoot:n,startRect:a,offsetX:r.clientX-a.left,offsetY:r.clientY-a.top},we.pointerX=r.clientX,we.pointerY=r.clientY,we.target=null,Ih=r.clientX,Ah=r.clientY,QI()}function QI(){window.addEventListener("pointermove",Ch,!0),window.addEventListener("pointerup",Th,!0),window.addEventListener("pointercancel",Rh,!0),document.body.style.userSelect="none",document.body.dataset.dragging=""}function $I(){window.removeEventListener("pointermove",Ch,!0),window.removeEventListener("pointerup",Th,!0),window.removeEventListener("pointercancel",Rh,!0),document.body.style.userSelect="",delete document.body.dataset.dragging}function Ch(e){if(we.pointerX=e.clientX,we.pointerY=e.clientY,we.phase==="pending"){const t=e.clientX-Ih,n=e.clientY-Ah;t*t+n*n>=cu*cu&&(we.phase="dragging")}}function Th(e){we.phase==="dragging"&&(eA(),Eh=performance.now()+50),Ph()}function Rh(e){Ph()}function uu(e){const t=pn.tree;if(e.kind==="docked")return t.docked;const n=t.floats.find(r=>r.id===e.floatId);return n?n.content:null}function du(e){if(e.kind!=="float")return;const t=pn.tree,n=t.floats.findIndex(r=>r.id===e.floatId);n<0||sf(t.floats[n].content)&&t.floats.splice(n,1)}function eA(){const{source:e,target:t}=we;if(!e||!t)return;const n=uu(e.sourceRoot),r=uu(t.root);if(!n||!r)return;if(t.kind==="strip"){const a=t.tabsNode.tabs.findIndex(o=>o.slotId===e.slotId);if(a>=0){Ww(t.tabsNode,a,t.insertIndex),xr(n),r!==n&&xr(r),du(e.sourceRoot);return}}const s=ei(n,e.slotId);s&&(t.kind==="strip"?Kw(t.tabsNode,s,t.insertIndex):If(r,t.path,s,t.side),xr(n),r!==n&&xr(r),du(e.sourceRoot))}function Ph(){we.phase="idle",we.source=null,we.target=null,$I()}function Eo(e){we.phase==="dragging"&&(we.target=e)}function Cr(e){we.phase==="dragging"&&we.target&&(e&&!e(we.target)||(we.target=null))}var tA=A("<div></div>"),nA=A('<div class="quad-target quad-left svelte-re71zu" data-testid="drop-zone-left"></div> <div class="quad-target quad-right svelte-re71zu" data-testid="drop-zone-right"></div> <div class="quad-target quad-top svelte-re71zu" data-testid="drop-zone-top"></div> <div class="quad-target quad-bottom svelte-re71zu" data-testid="drop-zone-bottom"></div>',1),rA=A("<!> <!>",1),sA=A("<div><!></div>");function fu(e,t){ie(t,!0);let n=F(void 0),r=F(null);const s=H(()=>we.phase==="dragging"),a=H(()=>{let b;return t.rootRef.kind==="docked"?b=pn.root:b=pn.tree.floats.find(_=>_.id===t.rootRef.floatId)?.content??null,b?Af(b,t.path):!1});function o(b,S,_){const y=_.left+_.width/2,E=_.top+_.height/2,g=b-y,m=S-E,I=g/_.width,P=m/_.height;return Math.abs(I)>Math.abs(P)?I<0?"left":"right":P<0?"top":"bottom"}function l(b){if(!i(n))return;if(i(a)){i(r)!==null&&(x(r,null),Cr(y=>y.kind==="split"&&y.path.join("/")===t.path.join("/")));return}const S=i(n).getBoundingClientRect();if(b.clientX<S.left||b.clientX>S.right||b.clientY<S.top||b.clientY>S.bottom){i(r)!==null&&(x(r,null),Cr(y=>y.kind==="split"&&y.path.join("/")===t.path.join("/")));return}const _=o(b.clientX,b.clientY,S);if(_!==i(r)){x(r,_,!0);const y={kind:"split",root:t.rootRef,path:[...t.path],side:_};Eo(y)}}function c(){i(r)!==null&&(x(r,null),Cr(b=>b.kind==="split"&&b.path.join("/")===t.path.join("/")))}var u=sA();let d;var f=p(u);{var h=b=>{var S=rA(),_=he(S);{var y=m=>{var I=tA();N(()=>de(I,1,`quad-highlight quad-${i(r)??""}`,"svelte-re71zu")),k(m,I)};K(_,m=>{i(r)&&m(y)})}var E=w(_,2);{var g=m=>{var I=nA();qt(6),k(m,I)};K(E,m=>{i(s)&&m(g)})}k(b,S)};K(f,b=>{i(a)||b(h)})}v(u),Le(u,b=>x(n,b),()=>i(n)),N(()=>d=de(u,1,"slot-drop-zone svelte-re71zu",null,d,{active:i(s),locked:i(a)})),U("pointermove",u,l),Re("pointerleave",u,c),k(e,u),oe()}ce(["pointermove"]);var aA=A('<div class="tab-slot-wrapper svelte-1gw9g38"><!> <!></div>'),iA=A('<div class="empty-tabs-custom svelte-1gw9g38"></div>'),oA=A('<div class="empty-tabs-default svelte-1gw9g38"><div class="empty-tabs-drop svelte-1gw9g38"></div></div>'),lA=A('<div class="empty-tabs-placeholder svelte-1gw9g38"><!></div>'),cA=A('<div class="leaf-slot-wrapper svelte-1gw9g38"><!> <!></div>');function mi(e,t){ie(t,!0);let n=$(t,"path",19,()=>[]),r=$(t,"rootRef",19,()=>({kind:"docked"}));const s=H(()=>{let g;return r().kind==="docked"?g=pn.root:g=pn.tree.floats.find(I=>I.id===r().floatId)?.content??null,g?ks(g,n()):null});function a(g){return{get isDragging(){return we.phase==="dragging"},onPointerDown(m,I,P){const T=g.tabs[m];T&&ZI(T.slotId,T,r(),I,P)},onStripHover(m,I,P,T){if(P<m.top||P>m.bottom)return Cr(j=>j.kind==="strip"&&j.tabsNode===g),null;let M=T.length;for(let j=0;j<T.length;j++){const D=T[j],C=D.left+D.width/2;if(I<C){M=j;break}}const L=we.source;if(L){const j=g.tabs.findIndex(D=>D.slotId===L.slotId);j>=0&&j<M&&(M-=1)}return Eo({kind:"strip",root:r(),tabsNode:g,insertIndex:M}),M},onStripLeave(){Cr(m=>m.kind==="strip"&&m.tabsNode===g)}}}function o(g){return g.type==="split"?g:null}function l(g){return g.type==="tabs"?g:null}function c(g){return g.type==="slot"?g:null}function u(g){return g.map(m=>Zw(m.slotId)||void 0)}function d(g){return g.map(m=>Jw(m.slotId)||void 0)}function f(g,m){const I=g[m];I&&xl(I.slotId)}function h(g,m){m(g)}function b(g,m){we.phase==="dragging"&&Eo({kind:"strip",root:r(),tabsNode:m,insertIndex:0})}function S(){Cr(g=>g.kind==="strip"&&g.insertIndex===0)}var _=Be(),y=he(_);{var E=g=>{var m=Be(),I=he(m);{var P=L=>{const j=(C,O=St)=>{{let q=H(()=>[...n(),O()]);mi(C,{get rootRef(){return r()},get path(){return i(q)}})}},D=H(()=>o(i(s)));zI(L,{get direction(){return i(D).direction},get sizes(){return i(D).sizes},get pinned(){return i(D).pinned},get collapsed(){return i(D).collapsed},get fixed(){return i(D).fixed},get count(){return i(D).children.length},get pane(){return j},onResize:(C,O)=>i(D).sizes[C]=O,onCollapseToggle:(C,O)=>{i(D).collapsed||(i(D).collapsed=i(D).children.map(()=>!1)),i(D).collapsed[C]=O}})},T=L=>{const j=H(()=>l(i(s)));var D=Be(),C=he(D);{var O=R=>{const V=(Y,Q=St)=>{const Z=H(()=>i(j)?.tabs[Q()]);var se=Be(),J=he(se);{var B=W=>{var ae=aA(),G=p(ae);{let be=H(()=>({type:"slot",slotId:i(Z).slotId,viewId:i(Z).viewId}));lu(G,{get node(){return i(be)},get label(){return i(Z).label},get meta(){return i(Z).meta}})}var ue=w(G,2);fu(ue,{get rootRef(){return r()},get path(){return n()}}),v(ae),k(W,ae)};K(J,W=>{i(Z)&&W(B)})}k(Y,se)},X=H(()=>a(i(j)));{let Y=H(()=>i(j).tabs.map(B=>B.label)),Q=H(()=>i(j).tabs.map(B=>B.icon)),Z=H(()=>u(i(j).tabs)),se=H(()=>d(i(j).tabs)),J=H(()=>i(j).tabs.map(B=>B.slotId));KI(R,{get labels(){return i(Y)},get icons(){return i(Q)},get activeTab(){return i(j).activeTab},onActiveChange:B=>i(j).activeTab=B,get body(){return V},get dragController(){return i(X)},get clickGuard(){return JI},get closable(){return i(Z)},get dirty(){return i(se)},onClose:B=>f(i(j).tabs,B),get tabIds(){return i(J)}})}},q=R=>{var V=lA(),X=p(V);{var Y=Z=>{var se=iA();Bd(se,(J,B)=>h?.(J,B),()=>i(j).emptyRenderer),k(Z,se)},Q=Z=>{var se=oA(),J=p(se);v(se),U("pointermove",J,B=>b(B,i(j))),Re("pointerleave",J,S),k(Z,se)};K(X,Z=>{i(j).emptyRenderer?Z(Y):Z(Q,-1)})}v(V),k(R,V)};K(C,R=>{i(j)&&i(j).tabs.length>0?R(O):i(j)?.persistent&&R(q,1)})}k(L,D)},M=L=>{const j=H(()=>c(i(s)));var D=cA(),C=p(D);lu(C,{get node(){return i(j)},get meta(){return i(j).meta}});var O=w(C,2);fu(O,{get rootRef(){return r()},get path(){return n()}}),v(D),k(L,D)};K(I,L=>{i(s).type==="split"?L(P):i(s).type==="tabs"?L(T,1):L(M,-1)})}k(g,m)};K(y,g=>{i(s)&&g(E)})}k(e,_),oe()}ce(["pointermove"]);var uA=A('<span class="drag-preview-icon svelte-133fiip"> </span>'),dA=A('<div class="drag-preview svelte-133fiip"><!> <span class="drag-preview-label svelte-133fiip"> </span></div>');function fA(e,t){ie(t,!0);const n=H(()=>we.phase==="dragging"&&!!we.source),r=H(()=>we.source?we.pointerX-we.source.offsetX:0),s=H(()=>we.source?we.pointerY-we.source.offsetY:0),a=H(()=>we.source?.startRect.width??0),o=H(()=>we.source?.startRect.height??0),l=H(()=>we.source?.entry.label??""),c=H(()=>we.source?.entry.icon);var u=Be(),d=he(u);{var f=h=>{var b=dA(),S=p(b);{var _=g=>{var m=uA(),I=p(m,!0);v(m),N(()=>z(I,i(c))),k(g,m)};K(S,g=>{i(c)&&g(_)})}var y=w(S,2),E=p(y,!0);v(y),v(b),N(()=>{He(b,`left: ${i(r)??""}px; top: ${i(s)??""}px; width: ${i(a)??""}px; height: ${i(o)??""}px;`),z(E,i(l))}),k(h,b)};K(d,h=>{i(n)&&h(f)})}k(e,u),oe()}const Tr=new Map;let Ma=!1;function jh(e){if(Tr.size===0)return;const t=e.target;if(!t)return;const n=Array.from(Tr.keys());for(const r of n){const s=Tr.get(r);s&&(s.contains(t)||Ce.close(r))}}function vA(){Ma||typeof document>"u"||(document.addEventListener("pointerdown",jh,!0),Ma=!0)}function hA(){Ma&&(Tr.size>0||(document.removeEventListener("pointerdown",jh,!0),Ma=!1))}function pA(e,t){Tr.set(e,t),vA()}function mA(e){Tr.delete(e),hA()}function bA(e){const t=new Set;return Mh(e,t),[...t]}function Mh(e,t){switch(e.type){case"slot":{if(e.viewId!==null){const n=Cc(e.viewId);n&&t.add(n)}return}case"tabs":{for(const n of e.tabs)if(n.viewId!==null){const r=Cc(n.viewId);r&&t.add(r)}return}case"split":{for(const n of e.children)Mh(n,t);return}}}var gA=A('<button class="sh3-float-popout svelte-1p734al" aria-label="Open in own window" title="Open in own window">⧉</button>'),yA=A('<header class="sh3-float-header svelte-1p734al" data-sh3-scope="element:float-header"><span class="sh3-float-title svelte-1p734al"> </span> <span class="sh3-float-header-actions svelte-1p734al"><!> <button class="sh3-float-maximize svelte-1p734al"> </button> <button class="sh3-float-close svelte-1p734al" aria-label="Close float">×</button></span></header>'),_A=A('<div class="sh3-float-frame svelte-1p734al" data-shell-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 wA(e,t){ie(t,!0);const n=typeof globalThis.__TAURI_INTERNALS__<"u",r=$a("__layouts__");function s(R){R.preventDefault(),r.set({type:"float-header",ref:{floatId:a().id}}),sn.actions.openContextMenu({x:R.clientX,y:R.clientY,scope:{element:"float-header"}})}let a=$(t,"entry",15),o=F(!1),l={x:0,y:0},c=F(!1),u={pointer:{x:0,y:0},size:{w:0,h:0},min:{w:0,h:0}},d=F(void 0);const f=H(()=>Ce.isMaximized(a().id));xe(()=>{if(a().dismissable&&i(d))return pA(a().id,i(d)),()=>mA(a().id)}),xe(()=>{if(!i(d))return;const R=b_(a().id);if(R)return R.appendChild(i(d)),()=>{i(d)?.parentNode===R&&i(d).remove()}});function h(R){if(R.button!==0||R.target.closest(".sh3-float-close")||R.target.closest(".sh3-float-maximize")||R.target.closest(".sh3-float-popout"))return;R.currentTarget.setPointerCapture?.(R.pointerId),x(o,!0),l={x:R.clientX-a().position.x,y:R.clientY-a().position.y},Ce.focus(a().id)}function b(R){i(o)&&(Ce.unmaximize(a().id),a(a().position.x=R.clientX-l.x,!0),a(a().position.y=R.clientY-l.y,!0))}function S(R){if(!i(o))return;x(o,!1);const V=R.currentTarget;V.hasPointerCapture?.(R.pointerId)&&V.releasePointerCapture(R.pointerId)}function _(R){R.target.closest(".sh3-float-close")||R.target.closest(".sh3-float-maximize")||R.target.closest(".sh3-float-popout")||Ce.toggleMaximize(a().id)}function y(R){if(R.button!==0)return;R.stopPropagation(),R.currentTarget.setPointerCapture?.(R.pointerId),x(c,!0),u={pointer:{x:R.clientX,y:R.clientY},size:{w:a().size.w,h:a().size.h},min:sl(a().content)},Ce.focus(a().id)}function E(R){if(!i(c))return;Ce.unmaximize(a().id);const V=R.clientX-u.pointer.x,X=R.clientY-u.pointer.y;a(a().size.w=Math.max(u.min.w,u.size.w+V),!0),a(a().size.h=Math.max(u.min.h,u.size.h+X),!0)}function g(R){if(!i(c))return;x(c,!1);const V=R.currentTarget;V.hasPointerCapture?.(R.pointerId)&&V.releasePointerCapture(R.pointerId)}function m(){Ce.focus(a().id)}function I(R){R.stopPropagation(),Ce.toggleMaximize(a().id)}function P(R){R.stopPropagation(),Ce.close(a().id)}async function T(R){R.stopPropagation();try{await di({kind:"float",content:a().content,title:a().title,size:{w:a().size.w,h:a().size.h},activateShards:bA(a().content)}),Ce.close(a().id)}catch(V){sn.toast.notify(`Pop-out failed: ${V.message}`,{level:"error",duration:5e3})}}var M=_A();let L;var j=p(M);{var D=R=>{var V=yA(),X=p(V),Y=p(X,!0);v(X);var Q=w(X,2),Z=p(Q);{var se=ae=>{var G=gA();U("click",G,T),k(ae,G)};K(Z,ae=>{n&&ae(se)})}var J=w(Z,2),B=p(J,!0);v(J);var W=w(J,2);v(Q),v(V),N(()=>{ne(V,"data-float-id",a().id),z(Y,a().title),ne(J,"aria-label",i(f)?"Restore float":"Maximize float"),ne(J,"aria-pressed",i(f)),z(B,i(f)?"🗗":"🗖")}),U("pointerdown",V,h),U("pointermove",V,b),U("pointerup",V,S),Re("pointercancel",V,S),U("dblclick",V,_),U("contextmenu",V,s),U("click",J,I),U("click",W,P),k(R,V)};K(j,R=>{a().title&&R(D)})}var C=w(j,2),O=p(C);{let R=H(()=>({kind:"float",floatId:a().id}));mi(O,{get rootRef(){return i(R)},path:[]})}v(C);var q=w(C,2);v(M),Le(M,R=>x(d,R),()=>i(d)),N(()=>{ne(M,"aria-label",a().title??"Float panel"),L=He(M,"",L,{left:`${a().position.x??""}px`,top:`${a().position.y??""}px`,width:`${a().size.w??""}px`,height:`${a().size.h??""}px`})}),U("click",M,m),U("pointerdown",q,y),U("pointermove",q,E),U("pointerup",q,g),Re("pointercancel",q,g),k(e,M),oe()}ce(["click","pointerdown","pointermove","pointerup","dblclick","contextmenu"]);var kA=A('<div class="sh3-float-layer svelte-1rzcset"></div>');function xA(e,t){ie(t,!0);const n=H(()=>pn.floats);var r=kA();pe(r,23,()=>i(n),s=>s.id,(s,a,o)=>{wA(s,{get entry(){return i(n)[i(o)]},set entry(l){i(n)[i(o)]=l}})}),v(r),k(e,r),oe()}var SA=A('<div class="guest-signin-error svelte-pymkh"> </div>'),EA=A('<div class="guest-signin-overlay svelte-pymkh" role="dialog"><div class="guest-signin-card svelte-pymkh"><form class="guest-signin-form svelte-pymkh"><input class="guest-signin-input svelte-pymkh" type="text" placeholder="Username" autocomplete="username"/> <input class="guest-signin-input svelte-pymkh" type="password" placeholder="Password" autocomplete="current-password"/> <div class="guest-signin-actions svelte-pymkh"><button type="submit" class="guest-signin-btn svelte-pymkh"> </button> <button type="button" class="guest-signin-cancel svelte-pymkh">Cancel</button></div></form> <!></div></div>'),IA=A('<div class="guest-banner svelte-pymkh"><span class="guest-banner-text">Browsing as guest. Sign in to save your work.</span> <button type="button" class="guest-banner-action svelte-pymkh">Sign in</button></div> <!>',1),AA=A('<div class="guest-banner-slot"><!></div>');function CA(e,t){ie(t,!0);let n=F(!1),r=F(""),s=F(""),a=F(null),o=F(!1);async function l(){if(!i(r).trim()||!i(s).trim()||i(o))return;x(o,!0),x(a,null);const h=await lv(i(r).trim(),i(s).trim());x(o,!1),h.ok?x(n,!1):x(a,h.error,!0)}var c=AA(),u=p(c);{var d=h=>{var b=IA(),S=he(b),_=w(p(S),2);v(S);var y=w(S,2);{var E=g=>{var m=EA(),I=p(m),P=p(I),T=p(P);ge(T);var M=w(T,2);ge(M);var L=w(M,2),j=p(L),D=p(j,!0);v(j);var C=w(j,2);v(L),v(P);var O=w(P,2);{var q=R=>{var V=SA(),X=p(V,!0);v(V),N(()=>z(X,i(a))),k(R,V)};K(O,R=>{i(a)&&R(q)})}v(I),v(m),N(R=>{T.disabled=i(o),M.disabled=i(o),j.disabled=R,z(D,i(o)?"Signing in...":"Sign in")},[()=>i(o)||!i(r).trim()||!i(s).trim()]),Re("submit",P,R=>{R.preventDefault(),l()}),Se(T,()=>i(r),R=>x(r,R)),Se(M,()=>i(s),R=>x(s,R)),U("click",C,()=>{x(n,!1),x(a,null)}),k(g,m)};K(y,g=>{i(n)&&g(E)})}U("click",_,()=>{x(n,!0)}),k(h,b)},f=H(()=>cv());K(u,h=>{i(f)&&h(d)})}v(c),k(e,c),oe()}ce(["click"]);var TA=A('<code class="sh3-consent-scope svelte-14me5sj"> </code>'),RA=A('<dt class="svelte-14me5sj">Peer</dt> <dd class="svelte-14me5sj"> </dd>',1),PA=A('<dt class="svelte-14me5sj">Expires in</dt> <dd class="svelte-14me5sj"> </dd>',1),jA=A('<div class="sh3-consent-backdrop svelte-14me5sj" role="dialog" aria-modal="true" aria-label="Key creation consent"><div class="sh3-consent-card svelte-14me5sj"><h2 class="sh3-consent-title svelte-14me5sj"><span class="svelte-14me5sj"> </span> wants to create a key</h2> <dl class="sh3-consent-fields svelte-14me5sj"><dt class="svelte-14me5sj">Label</dt> <dd class="svelte-14me5sj"> </dd> <dt class="svelte-14me5sj">Scopes</dt> <dd class="sh3-consent-scopes svelte-14me5sj"></dd> <!> <!></dl> <div class="sh3-consent-actions svelte-14me5sj"><button type="button" class="sh3-consent-deny svelte-14me5sj">Deny</button> <button type="button" class="sh3-consent-approve svelte-14me5sj">Approve</button></div></div></div>');function MA(e,t){ie(t,!0);let n=F(null);xe(()=>xv(u=>{x(n,u,!0)}));function r(){i(n)&&(go(i(n).requestId,!0),x(n,null))}function s(){i(n)&&(go(i(n).requestId,!1),x(n,null))}var a=Be(),o=he(a);{var l=c=>{var u=jA(),d=p(u),f=p(d),h=p(f),b=p(h,!0);v(h),qt(),v(f);var S=w(f,2),_=w(p(S),2),y=p(_,!0);v(_);var E=w(_,4);pe(E,20,()=>i(n).scopes,j=>j,(j,D)=>{var C=TA(),O=p(C,!0);v(C),N(()=>z(O,D)),k(j,C)}),v(E);var g=w(E,2);{var m=j=>{var D=RA(),C=w(he(D),2),O=p(C);v(C),N(()=>z(O,`${i(n).peerRole??"—"??""}${i(n).peerId?` · ${i(n).peerId}`:""}`)),k(j,D)};K(g,j=>{(i(n).peerRole||i(n).peerId)&&j(m)})}var I=w(g,2);{var P=j=>{var D=PA(),C=w(he(D),2),O=p(C);v(C),N(q=>z(O,`${q??""}s`),[()=>Math.round(i(n).expiresIn/1e3)]),k(j,D)};K(I,j=>{i(n).expiresIn&&j(P)})}v(S);var T=w(S,2),M=p(T);Fr(M,!0);var L=w(M,2);v(T),v(d),v(u),N(()=>{z(b,i(n).shardId),z(y,i(n).label)}),U("click",M,s),U("click",L,r),k(c,u)};K(o,c=>{i(n)&&c(l)})}k(e,a),oe()}ce(["click"]);var DA=A('<span class="sh3-brand svelte-18lk809">SH3</span>'),LA=A('<span class="sh3-brand sh3-brand-app svelte-18lk809"> </span>'),zA=A('<span class="sh3-brand svelte-18lk809">SH3</span> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <button type="button" class="sh3-brand-crumb svelte-18lk809"> </button>',1),OA=A('<button type="button" class="sh3-brand sh3-brand-clickable svelte-18lk809" title="Exit project">SH3</button> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <span class="sh3-brand-project svelte-18lk809"> </span>',1),NA=A('<span class="sh3-brand sh3-brand-project svelte-18lk809"> </span> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <span class="sh3-brand sh3-brand-app svelte-18lk809"> </span>',1),qA=A('<button type="button" class="sh3-brand sh3-brand-clickable svelte-18lk809" title="Exit project">SH3</button> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <button type="button" class="sh3-brand-crumb svelte-18lk809"> </button> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <button type="button" class="sh3-brand-crumb svelte-18lk809"> </button>',1),BA=A('<div class="sh3-brand-slot svelte-18lk809"><!></div>');function VA(e,t){ie(t,!0);const n=H(()=>Ft().activeAppId),r=H(Uy),s=H(()=>ir.activeProjectId),a=H(()=>i(n)?zn(i(n))?.manifest.label??i(n):null),o=H(()=>i(r)?zn(i(r))?.manifest.label??i(r):null),l=H(()=>i(s)?Ot.projects.find(I=>I.id===i(s))?.name??i(s):null),c=H(()=>i(s)?i(n)?"project-app":i(r)?"project-breadcrumb":"project-home":i(n)?"app":i(r)?"breadcrumb":"brand");function u(){i(r)&&mn(i(r))}function d(){Zf(null)}function f(){i(n)&&Xr()}var h=BA(),b=p(h);{var S=I=>{var P=DA();k(I,P)},_=I=>{var P=LA(),T=p(P,!0);v(P),N(()=>z(T,i(a))),k(I,P)},y=I=>{var P=zA(),T=w(he(P),4),M=p(T,!0);v(T),N(()=>z(M,i(o))),U("click",T,u),k(I,P)},E=I=>{var P=OA(),T=he(P),M=w(T,4),L=p(M,!0);v(M),N(()=>z(L,i(l))),U("click",T,d),k(I,P)},g=I=>{var P=NA(),T=he(P),M=p(T,!0);v(T);var L=w(T,4),j=p(L,!0);v(L),N(()=>{z(M,i(l)),z(j,i(a))}),k(I,P)},m=I=>{var P=qA(),T=he(P),M=w(T,4),L=p(M,!0);v(M);var j=w(M,4),D=p(j,!0);v(j),N(()=>{z(L,i(l)),z(D,i(o))}),U("click",T,d),U("click",M,f),U("click",j,u),k(I,P)};K(b,I=>{i(c)==="brand"?I(S):i(c)==="app"?I(_,1):i(c)==="breadcrumb"?I(y,2):i(c)==="project-home"?I(E,3):i(c)==="project-app"?I(g,4):i(c)==="project-breadcrumb"&&I(m,5)})}v(h),k(e,h),oe()}ce(["click"]);const FA=Object.freeze([{id:"file",label:"File"},{id:"edit",label:"Edit"},{id:"view",label:"View"},{id:"window",label:"Window"},{id:"help",label:"Help"}]);function Da(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function UA(e,t){if(e==null)return[];if(t==null)return FA.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 HA(e,t,n){const r=[],s=new Set;for(const a of e)a.action.menuItem!==n||a.action.submenuOf!==void 0||s.has(a.action.id)||!Hs(a.action.scope,t,a.ownerShardId)||(s.add(a.action.id),r.push({id:a.action.id,label:Wt(a.action),shortcut:Us(a.action,t.bindings,t.platform),group:a.action.group??"",icon:a.action.icon,checked:Da(a.action.checked),disabled:Da(a.action.disabled),submenu:a.action.submenu===!0}));return r}function KA(e,t,n){const r=[],s=new Set;for(const a of e)a.action.submenuOf!==n||s.has(a.action.id)||!Hs(a.action.scope,t,a.ownerShardId)||(s.add(a.action.id),r.push({id:a.action.id,label:Wt(a.action),shortcut:Us(a.action,t.bindings,t.platform),group:a.action.group??"",icon:a.action.icon,checked:Da(a.action.checked),disabled:Da(a.action.disabled),submenu:a.action.submenu===!0}));return r}var WA=A('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),YA=A('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),GA=A('<button type="button" class="sh3-menubar-button svelte-bke3dt"><!> <span class="sh3-menubar-label"> </span> <!></button>');function XA(e,t){ie(t,!0);let n=F(void 0);function r(_){const y=new Map,E=[];for(const g of _){const m=g.group||"";y.has(m)||(y.set(m,[]),E.push(m)),y.get(m).push(g)}return E.map(g=>({id:`group:${g||"_default"}`,items:y.get(g)}))}function s(_,y,E){const g=et().find(m=>m.action.id===_);if(!(!g||typeof g.action.run!="function")){try{g.action.run({action:{id:_,label:Wt(g.action)},appId:y.activeAppId,viewId:y.focusedViewId??void 0,selection:y.selection??void 0,invokedVia:"palette",dispatch:()=>{}})}catch(m){console.error(`[sh3] menu-bar action "${_}" threw:`,m)}E.close()}}function a(_,y,E){const g=document.querySelector(".sh3-popup-host");if(!g)return;const m=document.createElement("div");m.className="sh3-popup-submenu",m.style.position="absolute",m.style.pointerEvents="auto";const P=(g.querySelector(".sh3-ctx-active")??g).getBoundingClientRect();m.style.left=`${P.right+2}px`,m.style.top=`${P.top}px`,g.appendChild(m);const T=KA(et(),y,_),M=qe(Ca,{target:m,props:{sections:r(T),onInvoke:L=>s(L,y,E),onDismiss:()=>{Xe(M),m.remove()}}})}function o(){if(!i(n))return;const _=Ft(),y=to.show(Ca,{anchor:i(n),placement:"bottom-start"},{sections:r(t.items),onInvoke:E=>{const g=et().find(m=>m.action.id===E);if(g){if(g.action.submenu===!0){a(E,_,y);return}s(E,_,y)}},onDismiss:()=>to.close()})}const l=H(()=>t.container.iconPosition??"before");var c=GA(),u=p(c);{var d=_=>{var y=WA();N(()=>ne(y,"data-icon",t.container.icon)),k(_,y)};K(u,_=>{t.container.icon&&i(l)==="before"&&_(d)})}var f=w(u,2),h=p(f,!0);v(f);var b=w(f,2);{var S=_=>{var y=YA();N(()=>ne(y,"data-icon",t.container.icon)),k(_,y)};K(b,_=>{t.container.icon&&i(l)==="after"&&_(S)})}v(c),Le(c,_=>x(n,_),()=>i(n)),N(()=>z(h,t.container.label)),U("click",c,o),k(e,c),oe()}ce(["click"]);var JA=A('<div class="sh3-menubar svelte-7gc0wa" role="menubar"></div>');function ZA(e,t){ie(t,!0);const n=H(Ft),r=H(()=>i(n).activeAppId),s=H(()=>{if(i(r))return zn(i(r))?.manifest.menus}),a=H(()=>UA(i(r),i(s))),o=H(()=>{const c=[],u=et();for(const d of i(a)){const f=HA(u,i(n),d.id);f.length>0&&c.push({container:d,items:f})}return c});var l=JA();pe(l,21,()=>i(o),({container:c,items:u})=>c.id,(c,u)=>{let d=()=>i(u).container,f=()=>i(u).items;XA(c,{get container(){return d()},get items(){return f()}})}),v(l),k(e,l),oe()}var QA=A('<button type="button" class="shell-tabbar-signout svelte-187fra4" title="Sign out"><svg class="shell-tabbar-signout-icon svelte-187fra4" aria-hidden="true"><use></use></svg></button>'),$A=A('<div class="shell-tabbar-user svelte-187fra4"><span class="shell-tabbar-user-name svelte-187fra4"> </span> <span class="shell-tabbar-tag svelte-187fra4"> </span> <!></div>'),eC=A('<div class="shell-overlay-root svelte-187fra4"><!></div>'),tC=A('<div class="shell svelte-187fra4"><header class="shell-tabbar svelte-187fra4" data-shell-region="tabbar"><button type="button" class="shell-tabbar-home-button svelte-187fra4" title="Home"><svg class="shell-tabbar-home-icon svelte-187fra4" aria-hidden="true"><use></use></svg></button> <!> <!> <!></header> <!> <main class="shell-content svelte-187fra4" data-shell-region="content" data-shell-layer="0"><!></main> <footer class="shell-statusbar svelte-187fra4" data-shell-region="statusbar"></footer> <div class="shell-overlays svelte-187fra4" aria-hidden="true"></div> <!></div>');function nC(e,t){ie(t,!0);const n=H(po),r=H(Nr),s=H(bt),a=H(()=>Df()==="home"),o=[{layer:1,name:"floating"},{layer:2,name:"drag-preview"},{layer:3,name:"popup"},{layer:4,name:"modal"},{layer:5,name:"toast"},{layer:6,name:"command"}],l=le({});xe(()=>{for(const{name:T}of o){const M=l[T];M&&Vy(T,M)}return()=>{for(const{name:T}of o)Fy(T)}}),xe(()=>{const T=pn.tree;return p_(T.floats,()=>({w:window.innerWidth,h:window.innerHeight})),()=>m_()}),xe(()=>{pn.tree,d1()}),xe(()=>po()?Dk():void 0);var c=tC(),u=p(c),d=p(u),f=p(d),h=p(f);v(f),v(d);var b=w(d,2);VA(b,{});var S=w(b,2);ZA(S,{});var _=w(S,2);{var y=T=>{var M=$A(),L=p(M),j=p(L,!0);v(L);var D=w(L,2),C=p(D,!0);v(D);var O=w(D,2);{var q=V=>{var X=QA(),Y=p(X),Q=p(Y);v(Y),v(X),N(()=>ne(Q,"href",`${On}#log-out`)),U("click",X,()=>rk()),k(V,X)},R=H(()=>!ak());K(O,V=>{i(R)&&V(q)})}v(M),N(()=>{z(j,i(r).displayName),z(C,i(s)?"admin":"user")}),k(T,M)};K(_,T=>{i(n)&&i(r)&&T(y)})}v(u);var E=w(u,2);CA(E,{});var g=w(E,2),m=p(g);mi(m,{}),v(g);var I=w(g,4);pe(I,21,()=>o,({layer:T,name:M})=>T,(T,M)=>{let L=()=>i(M).layer,j=()=>i(M).name;var D=eC(),C=p(D);{var O=R=>{xA(R,{})},q=R=>{fA(R,{})};K(C,R=>{j()==="floating"?R(O):j()==="drag-preview"&&R(q,1)})}v(D),Le(D,(R,V)=>l[V]=R,R=>l?.[R],()=>[j()]),N(()=>{ne(D,"data-shell-overlay",j()),ne(D,"data-shell-layer",L()),He(D,`z-index: var(--shell-z-layer-${L()??""});`)}),k(T,D)}),v(I);var P=w(I,2);MA(P,{}),v(c),N(()=>{d.disabled=i(a),ne(h,"href",`${On}#house`)}),U("click",d,()=>Xr()),k(e,c),oe()}ce(["click"]);var rC=A('<button type="button" class="signin-link svelte-lh4k15">Create an account</button>'),sC=A('<form class="signin-form svelte-lh4k15"><input class="signin-input svelte-lh4k15" type="text" placeholder="Username" autocomplete="username"/> <input class="signin-input svelte-lh4k15" type="password" placeholder="Password" autocomplete="current-password"/> <button type="submit" class="signin-btn svelte-lh4k15"> </button></form> <!>',1),aC=A('<form class="signin-form svelte-lh4k15"><input class="signin-input svelte-lh4k15" type="text" placeholder="Username" autocomplete="username"/> <input class="signin-input svelte-lh4k15" type="text" placeholder="Display name (optional)"/> <input class="signin-input svelte-lh4k15" type="password" placeholder="Password" autocomplete="new-password"/> <button type="submit" class="signin-btn svelte-lh4k15"> </button></form> <button type="button" class="signin-link svelte-lh4k15">Back to sign in</button>',1),iC=A('<div class="signin-error svelte-lh4k15"> </div>'),oC=A('<div class="signin-wall svelte-lh4k15"><div class="signin-card svelte-lh4k15"><h1 class="signin-brand svelte-lh4k15">SH3</h1> <!> <!></div></div>');function lC(e,t){ie(t,!0);let n=F("login"),r=F(""),s=F(""),a=F(""),o=F(null),l=F(!1);async function c(){if(!i(r).trim()||!i(s).trim()||i(l))return;x(l,!0),x(o,null);const g=await lv(i(r).trim(),i(s).trim());x(l,!1),g.ok?t.onSuccess():x(o,g.error,!0)}async function u(){if(!i(r).trim()||!i(s).trim()||i(l))return;x(l,!0),x(o,null);const g=await nk(i(r).trim(),i(s).trim(),i(a).trim()||void 0);x(l,!1),g.ok?t.onSuccess():x(o,g.error,!0)}function d(g){x(n,g,!0),x(o,null)}var f=oC(),h=p(f),b=w(p(h),2);{var S=g=>{var m=sC(),I=he(m),P=p(I);ge(P);var T=w(P,2);ge(T);var M=w(T,2),L=p(M,!0);v(M),v(I);var j=w(I,2);{var D=C=>{var O=rC();U("click",O,()=>d("register")),k(C,O)};K(j,C=>{t.selfRegistration&&C(D)})}N(C=>{P.disabled=i(l),T.disabled=i(l),M.disabled=C,z(L,i(l)?"Signing in...":"Sign in")},[()=>i(l)||!i(r).trim()||!i(s).trim()]),Re("submit",I,C=>{C.preventDefault(),c()}),Se(P,()=>i(r),C=>x(r,C)),Se(T,()=>i(s),C=>x(s,C)),k(g,m)},_=g=>{var m=aC(),I=he(m),P=p(I);ge(P);var T=w(P,2);ge(T);var M=w(T,2);ge(M);var L=w(M,2),j=p(L,!0);v(L),v(I);var D=w(I,2);N(C=>{P.disabled=i(l),T.disabled=i(l),M.disabled=i(l),L.disabled=C,z(j,i(l)?"Creating...":"Create account")},[()=>i(l)||!i(r).trim()||!i(s).trim()]),Re("submit",I,C=>{C.preventDefault(),u()}),Se(P,()=>i(r),C=>x(r,C)),Se(T,()=>i(a),C=>x(a,C)),Se(M,()=>i(s),C=>x(s,C)),U("click",D,()=>d("login")),k(g,m)};K(b,g=>{i(n)==="login"?g(S):g(_,-1)})}var y=w(b,2);{var E=g=>{var m=iC(),I=p(m,!0);v(m),N(()=>z(I,i(o))),k(g,m)};K(y,g=>{i(o)&&g(E)})}v(h),v(f),k(e,f),oe()}ce(["click"]);function cC(){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:Nk(t)}}catch(n){return{error:n.message}}}function uC(e){return e.kind==="float"?{docked:e.content,floats:[]}:{docked:{type:"slot",slotId:"satellite:root",viewId:null},floats:[]}}var dC=A('<div class="sh3-satellite-root svelte-191z0e1"><!></div>');function fC(e,t){ie(t,!0),xe(()=>{if(t.payload.kind==="float")o1(uC(t.payload).docked);else if(t.payload.kind==="app"){const s=t.payload.appId;queueMicrotask(()=>{mn(s,{skipLastApp:!0,skipSwitchToHome:!0})})}});var n=dC(),r=p(n);mi(r,{}),v(n),k(e,n),oe()}async function vC(e){const t=e?.serverUrl??"",n=await x2();n.backends&&(Pi("workspace",n.backends.workspace),Pi("user",n.backends.user)),n.localOwner&&sk(),mv(t),Qk();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=cC();if(s){if("error"in s){r.textContent=`Invalid satellite payload: ${s.error}`;return}if(Pi("workspace",new Qi),n.localOwner&&is("local"),e?.shards)for(const l of e.shards)ou(l);if(e?.apps)for(const l of e.apps)gs(l);await vu(e?.discoveredPackages),await TI({activateShardIds:s.payload.activateShards}),co(),qe(fC,{target:r,props:{payload:s.payload}});return}let a=null;if(!n.localOwner)try{const l=await fetch(`${t}/api/boot`,{credentials:"include"});l.ok&&(a=await l.json())}catch{}if(n.localOwner)is("local");else if(a){Dc(t,a),is(a.tenantId);const{auth:l,session:c}=a;if(!c&&l.required&&!l.guestAllowed){await hC(r,a);const u=await fetch(`${t}/api/boot`,{credentials:"include"});u.ok&&(a=await u.json(),Dc(t,a),is(a.tenantId))}}if(await vu(e?.discoveredPackages),e?.shards)for(const l of e.shards)ou(l);if(e?.apps)for(const l of e.apps)gs(l);const o={};e?.excludeShards&&(o.excludeShards=e.excludeShards),await CI(o),co(),qe(nC,{target:r})}async function vu(e){if(e?.length)for(const t of e)try{const n=await fetch(t.bundleUrl);if(!n.ok){console.warn(`[sh3] Failed to fetch discovered package "${t.id}": HTTP ${n.status}`);continue}const r=await n.arrayBuffer(),s=await Ys(r);Dl(s,{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 hC(e,t){return new Promise(n=>{const r=qe(lC,{target:e,props:{selfRegistration:t.auth.selfRegistration,onSuccess:()=>{Xe(r),n()}}})})}const ql=window.location.origin;mv(ql);Jf(new gk(ql));let Dh=[];try{const e=await fetch("/api/packages");e.ok&&(Dh=await e.json())}catch{}await vC({discoveredPackages:Dh,serverUrl:ql});
21
- //# sourceMappingURL=index-DSoJbq2V.js.map
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 lI(e,t){ie(t,!0);const n=[{value:0,label:"Off (no-store)"},{value:5,label:"5s (dev)"},{value:60,label:"1 min"},{value:3600,label:"1 hour"},{value:86400,label:"1 day"},{value:31536e3,label:"1 year"}];let r=F("..."),s=F(!1),a=F(null),o=F(31536e3),l=F(31536e3),c=F(!1),u=F(null);const d=H(()=>i(o)!==i(l)),f=H(()=>h(i(o)));function h(G){return G===0?"0 seconds (off — browsers never cache)":G<60?`${G} seconds`:G<3600?`${Math.round(G/60)} minutes`:G<86400?`${Math.round(G/3600)} hours`:G<31536e3?`${Math.round(G/86400)} days`:`${Math.round(G/31536e3)} years`}async function b(){try{const G=await fetch("/api/version");if(G.ok){const ue=await G.json();x(r,ue.version,!0)}}catch{}}async function S(){try{const G=await fetch("/api/admin/settings",{credentials:"include"});if(G.ok){const be=(await G.json()).packages?.cacheMaxAge??31536e3;x(o,be,!0),x(l,be,!0)}}catch{}}async function _(){x(c,!0),x(u,null);try{const G=await fetch("/api/admin/settings",{method:"PUT",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({packages:{cacheMaxAge:i(o)}})});if(G.ok){const ue=await G.json();x(l,ue.packages?.cacheMaxAge??i(o),!0),x(o,i(l),!0)}else{const ue=await G.json().catch(()=>({}));x(u,ue.error||"Save failed",!0)}}catch{x(u,"Network error")}finally{x(c,!1)}}async function y(){x(s,!0),x(a,null);try{const G=await fetch("/api/admin/restart",{method:"POST",credentials:"include"});if(!G.ok){const ue=await G.json().catch(()=>({}));x(a,ue.error||"Restart failed",!0),x(s,!1)}}catch{x(a,"Network error"),x(s,!1)}}b(),S();var E=oI(),g=w(p(E),2),m=p(g),I=w(p(m),2),P=p(I,!0);v(I),v(m),v(g);var T=w(g,2),M=w(p(T),4);ge(M);var L=w(M,2),j=p(L),D=p(j,!0);v(j);var C=w(j);v(L);var O=w(L,2);pe(O,21,()=>n,G=>G.value,(G,ue)=>{var be=sI();let at;var Me=p(be,!0);v(be),N(()=>{at=de(be,1,"admin-snap svelte-1gkiloq",null,at,{active:i(o)===i(ue).value}),be.disabled=i(c),z(Me,i(ue).label)}),U("click",be,()=>x(o,i(ue).value,!0)),k(G,be)}),v(O);var q=w(O,2),R=p(q),V=p(R,!0);v(R);var X=w(R,2),Y=w(X,2);{var Q=G=>{var ue=aI(),be=p(ue,!0);v(ue),N(()=>z(be,i(u))),k(G,ue)};K(Y,G=>{i(u)&&G(Q)})}v(q),v(T);var Z=w(T,2),se=w(p(Z),2),J=p(se),B=p(J,!0);v(J);var W=w(J,2);{var ae=G=>{var ue=iI(),be=p(ue,!0);v(ue),N(()=>z(be,i(a))),k(G,ue)};K(W,G=>{i(a)&&G(ae)})}v(se),v(Z),v(E),N(()=>{z(P,i(r)),M.disabled=i(c),z(D,i(o)),z(C,` — ${i(f)??""}`),R.disabled=!i(d)||i(c),z(V,i(c)?"Saving...":"Save"),X.disabled=!i(d)||i(c),J.disabled=i(s),z(B,i(s)?"Restarting...":"Restart server")}),Se(M,()=>i(o),G=>x(o,G)),U("click",R,_),U("click",X,()=>x(o,i(l),!0)),U("click",J,y),k(e,E),oe()}ce(["click"]);var cI=A(`<div class="admin-key-created"><div class="admin-key-created-label">New key — copy now, it won't be shown again:</div> <code class="admin-key-value svelte-1afg5z5"> </code> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Dismiss</button></div>`),uI=A('<div class="admin-error svelte-1afg5z5"> </div>'),dI=A('<form class="admin-create-form svelte-1afg5z5"><input class="admin-input svelte-1afg5z5" type="text" placeholder="Key label"/> <button type="submit" class="admin-btn svelte-1afg5z5">Create</button> <!></form>'),fI=A('<p class="admin-muted svelte-1afg5z5">Loading...</p>'),vI=A('<p class="admin-error svelte-1afg5z5"> </p>'),hI=A('<p class="admin-muted svelte-1afg5z5">No API keys. Create one to enable external access.</p>'),pI=A('<button type="button" class="admin-btn-danger svelte-1afg5z5">Confirm</button> <button type="button" class="admin-btn-secondary svelte-1afg5z5">Cancel</button>',1),mI=A('<button type="button" class="admin-btn-danger svelte-1afg5z5">Revoke</button>'),bI=A('<li class="admin-key-item svelte-1afg5z5"><div class="admin-key-info svelte-1afg5z5"><span class="admin-key-label svelte-1afg5z5"> </span> <span class="admin-key-meta svelte-1afg5z5"> </span></div> <div class="admin-key-actions svelte-1afg5z5"><!></div></li>'),gI=A('<ul class="admin-key-list svelte-1afg5z5"></ul>'),yI=A('<div class="admin-keys svelte-1afg5z5"><div class="admin-keys-header svelte-1afg5z5"><h2 class="svelte-1afg5z5">API Keys</h2> <button type="button" class="admin-btn svelte-1afg5z5"> </button></div> <!> <!> <!></div>');function _I(e,t){ie(t,!0);let n=F(le([])),r=F(!0),s=F(null),a=F(!1),o=F(""),l=F(null),c=F(null),u=F(null);async function d(){x(r,!0),x(s,null);try{const C=await fetch("/api/admin/keys",{credentials:"include"});if(!C.ok)throw new Error("Failed to fetch keys");x(n,await C.json(),!0)}catch(C){x(s,C instanceof Error?C.message:"Failed to load keys",!0)}finally{x(r,!1)}}async function f(){x(l,null);try{const C=await fetch("/api/admin/keys",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({label:i(o)})});if(!C.ok){const q=await C.json().catch(()=>({}));x(l,q.error||"Failed to create key",!0);return}const O=await C.json();x(c,{id:O.id,key:O.key},!0),x(o,""),x(a,!1),await d()}catch{x(l,"Network error")}}async function h(C){x(u,null);try{await fetch(`/api/admin/keys/${C}`,{method:"DELETE",credentials:"include"}),i(c)?.id===C&&x(c,null),await d()}catch{}}function b(C){return new Date(C).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}d();var S=yI(),_=p(S),y=w(p(_),2),E=p(y,!0);v(y),v(_);var g=w(_,2);{var m=C=>{var O=cI(),q=w(p(O),2),R=p(q,!0);v(q);var V=w(q,2);v(O),N(()=>z(R,i(c).key)),U("click",V,()=>{x(c,null)}),k(C,O)};K(g,C=>{i(c)&&C(m)})}var I=w(g,2);{var P=C=>{var O=dI(),q=p(O);ge(q);var R=w(q,2),V=w(R,2);{var X=Y=>{var Q=uI(),Z=p(Q,!0);v(Q),N(()=>z(Z,i(l))),k(Y,Q)};K(V,Y=>{i(l)&&Y(X)})}v(O),N(Y=>R.disabled=Y,[()=>!i(o).trim()]),Re("submit",O,Y=>{Y.preventDefault(),f()}),Se(q,()=>i(o),Y=>x(o,Y)),k(C,O)};K(I,C=>{i(a)&&C(P)})}var T=w(I,2);{var M=C=>{var O=fI();k(C,O)},L=C=>{var O=vI(),q=p(O,!0);v(O),N(()=>z(q,i(s))),k(C,O)},j=C=>{var O=hI();k(C,O)},D=C=>{var O=gI();pe(O,21,()=>i(n),q=>q.id,(q,R)=>{var V=bI(),X=p(V),Y=p(X),Q=p(Y,!0);v(Y);var Z=w(Y,2),se=p(Z);v(Z),v(X);var J=w(X,2),B=p(J);{var W=G=>{var ue=pI(),be=he(ue),at=w(be,2);U("click",be,()=>h(i(R).id)),U("click",at,()=>{x(u,null)}),k(G,ue)},ae=G=>{var ue=mI();U("click",ue,()=>{x(u,i(R).id,!0)}),k(G,ue)};K(B,G=>{i(u)===i(R).id?G(W):G(ae,-1)})}v(J),v(V),N(G=>{z(Q,i(R).label),z(se,`${i(R).id??""} · ${G??""}`)},[()=>b(i(R).createdAt)]),k(q,V)}),v(O),k(C,O)};K(T,C=>{i(r)?C(M):i(s)?C(L,1):i(n).length===0?C(j,2):C(D,-1)})}v(S),N(()=>z(E,i(a)?"Cancel":"New key")),U("click",y,()=>{x(a,!i(a))}),k(e,S),oe()}ce(["click"]);const xh={manifest:{id:"sh3-admin",label:"Admin",version:on,views:[{id:"sh3-admin:users",label:"Users"},{id:"sh3-admin:auth",label:"Auth Settings"},{id:"sh3-admin:system",label:"System"},{id:"sh3-admin:keys",label:"API Keys"}]},activate(e){const t={mount(a,o){const l=qe(Q2,{target:a});return{unmount(){Xe(l)}}}},n={mount(a,o){const l=qe(rI,{target:a});return{unmount(){Xe(l)}}}},r={mount(a,o){const l=qe(lI,{target:a});return{unmount(){Xe(l)}}}},s={mount(a,o){const l=qe(_I,{target:a});return{unmount(){Xe(l)}}}};e.registerView("sh3-admin:users",t),e.registerView("sh3-admin:auth",n),e.registerView("sh3-admin:system",r),e.registerView("sh3-admin:keys",s)}},Sh={manifest:{id:"sh3-admin-app",label:"Admin",version:on,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"}]}},eu="sh3:migrations:shell-rename:done",tu="__shell__:",wI="__sh3core__:",nu="sh3:user:__shell__:theme",ru="sh3:user:__sh3core__:theme";function kI(e,t){if(t.getItem(eu))return;const n=t.getItem(nu);n!==null&&t.getItem(ru)===null&&(t.setItem(ru,n),t.removeItem(nu));for(const r of e.keys()){if(!r.startsWith(tu))continue;const s=wI+r.slice(tu.length),a=e.read(r);e.write(s,a),e.delete(r)}t.setItem(eu,"1")}const su="sh3:migrations:mode-id-rename:done",xI="sh3.shell.lastMode.",au={dev:"bash",user:"sh3"};function SI(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 EI(e){if(!e.getItem(su)){for(const t of SI(e)){if(!t.startsWith(xI))continue;const n=e.getItem(t);n&&Object.prototype.hasOwnProperty.call(au,n)&&e.setItem(t,au[n])}e.setItem(su,"1")}}let iu=!1,ou=null;function II(){iu||(iu=!0,ou=e=>{const t=e.state?.sh3;t==="anchor"?(Wy(),history.forward()):t==="forward-bumper"&&(Yy(),history.back())},window.addEventListener("popstate",ou),history.replaceState({sh3:"anchor"},""),history.pushState({sh3:"main"},""),history.pushState({sh3:"forward-bumper"},""),history.back())}function lu(e){ci(e)}function AI(){const e=rn.workspace;return{keys:()=>e.list(),read:t=>e.read(t),write:(t,n)=>e.write(t,n),delete:t=>e.delete(t)}}async function CI(e){if(typeof globalThis.localStorage<"u"){kI(AI(),globalThis.localStorage),EI(globalThis.localStorage);const{migrateLegacyWorkspaceKeys:a}=await Zn(async()=>{const{migrateLegacyWorkspaceKeys:l}=await import("./workspace-rekey-DRgvbNY-.js");return{migrateLegacyWorkspaceKeys:l}},[]),{getActiveScopeId:o}=await Zn(async()=>{const{getActiveScopeId:l}=await Promise.resolve().then(()=>Q1);return{getActiveScopeId:l}},void 0);a(o())}const t=new Set(e?.excludeShards),n=[Qv,yh,Zv,xh,Nv,Hv,wh];for(const a of n)t.has(a.manifest.id)||ci(a);const r=[kh,Sh];for(const a of r)gs(a);await Xv();for(const[a,o]of an)if(o.autostart){f1(a);try{await Tl(a,{phase:"autostart"})}catch{}}const s=ev();if(s&&Ln.has(s))try{await mn(s)}catch(a){console.error(`[sh3] Auto-launch of "${s}" failed:`,a),tv()}Hy({returnToHome:Xr,launchApp:mn}),typeof window<"u"&&typeof history<"u"&&II()}async function TI(e){const t=[Qv,yh,Zv,xh,Nv,Hv,wh];for(const r of t)ci(r);const n=[kh,Sh];for(const r of n)gs(r);await Xv();for(const r of e.activateShardIds)if(an.has(r))try{await Tl(r,{phase:"satellite"})}catch(s){console.error(`[sh3] satellite activation of "${r}" failed:`,s)}else console.warn(`[sh3] satellite requested shard "${r}" but it is not registered`)}var RI=A('<button type="button" aria-label="Expand pane"><span class="collapse-icon"> </span></button>'),PI=A('<button type="button" aria-label="Collapse pane"><span class="collapse-icon"> </span></button>'),jI=A('<!> <div class="pane-content svelte-1adl4o1"><!></div>',1),MI=A('<div role="separator"></div>'),DI=A("<div><!></div> <!>",1),LI=A("<div></div>");function zI(e,t){ie(t,!0);const n=40,r=28;let s;const a=E=>t.pinned?.[E]??"fr",o=E=>t.collapsed?.[E]??!1,l=E=>t.fixed?.[E]??!1,c=E=>l(E)||l(E+1);function u(E){if(l(E))return!1;const g=E>0?!l(E-1):!1,m=E<t.count-1?!l(E+1):!1;return g||m}function d(E){return o(E)?`0 0 ${r}px`:a(E)==="px"?`0 0 ${Math.max(n,t.sizes[E])}px`:`${Math.max(1e-4,t.sizes[E])} 1 0`}let f=F(null);function h(E,g){if(o(g)||o(g+1)||c(g))return;E.preventDefault(),E.target.setPointerCapture(E.pointerId);const m=s.getBoundingClientRect(),I=t.direction==="horizontal"?m.width:m.height;let P=0,T=0;for(let M=0;M<t.sizes.length;M++)a(M)==="fr"?P+=t.sizes[M]:T+=Math.max(n,t.sizes[M]);x(f,{handleIndex:g,startClient:t.direction==="horizontal"?E.clientX:E.clientY,startSizes:t.sizes.slice(),containerPx:I,totalFr:P,frAvailPx:Math.max(1,I-T)},!0)}function b(E){if(!i(f))return;const m=(t.direction==="horizontal"?E.clientX:E.clientY)-i(f).startClient,I=i(f).handleIndex,P=I+1,T=a(I),M=a(P),L=i(f).totalFr/i(f).frAvailPx;if(T==="fr"&&M==="fr"){const j=n*L,D=m*L,C=i(f).startSizes[P]-j,O=-(i(f).startSizes[I]-j),q=Math.min(Math.max(D,O),C);t.onResize?.(I,i(f).startSizes[I]+q),t.onResize?.(P,i(f).startSizes[P]-q)}else if(T==="px"&&M==="fr"){const j=i(f).frAvailPx-n,D=n-i(f).startSizes[I];t.onResize?.(I,i(f).startSizes[I]+Math.min(Math.max(m,D),j))}else if(T==="fr"&&M==="px"){const j=i(f).startSizes[P]-n,D=-(i(f).frAvailPx-n);t.onResize?.(P,i(f).startSizes[P]-Math.min(Math.max(m,D),j))}else{const j=i(f).startSizes[P]-n,D=-(i(f).startSizes[I]-n),C=Math.min(Math.max(m,D),j);t.onResize?.(I,i(f).startSizes[I]+C),t.onResize?.(P,i(f).startSizes[P]-C)}}function S(E){i(f)&&(E.target.releasePointerCapture(E.pointerId),x(f,null))}var _=LI();let y;pe(_,21,()=>Array(t.count),dt,(E,g,m)=>{var I=DI(),P=he(I);let T;var M=p(P);{var L=q=>{var R=RI();let V;var X=p(R),Y=p(X,!0);v(X),v(R),N(()=>{V=de(R,1,"collapse-header svelte-1adl4o1",null,V,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),z(Y,t.direction==="horizontal"?"▸":"▾")}),U("click",R,()=>t.onCollapseToggle?.(m,!1)),k(q,R)},j=H(()=>o(m)),D=q=>{var R=jI(),V=he(R);{var X=se=>{var J=PI();let B;ne(J,"data-testid",`collapse-toggle-${m}`);var W=p(J),ae=p(W,!0);v(W),v(J),N(()=>{B=de(J,1,"collapse-header expanded svelte-1adl4o1",null,B,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"}),z(ae,t.direction==="horizontal"?"◂":"▴")}),U("click",J,()=>t.onCollapseToggle?.(m,!0)),k(se,J)},Y=H(()=>t.onCollapseToggle&&u(m));K(V,se=>{i(Y)&&se(X)})}var Q=w(V,2),Z=p(Q);Ht(Z,()=>t.pane,()=>m),v(Q),k(q,R)};K(M,q=>{i(j)?q(L):q(D,-1)})}v(P);var C=w(P,2);{var O=q=>{var R=MI();let V;ne(R,"data-testid",`splitter-handle-${m}`),N(X=>{V=de(R,1,"splitter-handle svelte-1adl4o1",null,V,X),ne(R,"aria-orientation",t.direction==="horizontal"?"vertical":"horizontal")},[()=>({dragging:i(f)?.handleIndex===m,disabled:o(m)||o(m+1),frozen:c(m)})]),U("pointerdown",R,X=>h(X,m)),U("pointermove",R,b),U("pointerup",R,S),Re("pointercancel",R,S),U("dblclick",R,()=>{c(m)||!u(m)&&!o(m)||t.onCollapseToggle?.(m,!o(m))}),k(q,R)};K(C,q=>{m<t.count-1&&q(O)})}N((q,R)=>{T=de(P,1,"splitter-pane svelte-1adl4o1",null,T,q),He(P,`flex: ${R??""};`)},[()=>({collapsed:o(m)}),()=>d(m)]),k(E,I)}),v(_),Le(_,E=>s=E,()=>s),N(()=>y=de(_,1,"splitter svelte-1adl4o1",null,y,{horizontal:t.direction==="horizontal",vertical:t.direction==="vertical"})),k(e,_),oe()}ce(["click","pointerdown","pointermove","pointerup","dblclick"]);function OI(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 NI=A('<span class="tab-dirty svelte-1kxcyhf" title="Unsaved changes"></span>'),qI=A('<span class="tab-icon svelte-1kxcyhf"> </span>'),BI=A('<span class="tab-close svelte-1kxcyhf" role="button" tabindex="-1" title="Close">&#x2715;</span>'),VI=A('<button type="button" role="tab"><!> <!> <span class="tab-label svelte-1kxcyhf"> </span> <!></button>'),FI=A('<div class="drop-indicator svelte-1kxcyhf"></div>'),UI=A("<div><!></div>"),HI=A('<div class="tabbed-panel svelte-1kxcyhf"><div class="tab-strip svelte-1kxcyhf" role="tablist" tabindex="-1"><!> <!></div> <div class="tab-body svelte-1kxcyhf" role="tabpanel"></div></div>');function KI(e,t){ie(t,!0);function n(y){t.clickGuard?.()||t.onActiveChange?.(y)}function r(y,E){E.stopPropagation(),t.onClose?.(y)}let s=F(void 0);const a=le([]);let o=F(null);function l(y,E){if(!t.dragController)return;const g=a[y];g&&t.dragController.onPointerDown(y,E,g)}function c(y){if(!t.dragController||!t.dragController.isDragging||!i(s))return;const E=i(s).getBoundingClientRect(),g=a.filter(m=>!!m).map(m=>m.getBoundingClientRect());x(o,t.dragController.onStripHover(E,y.clientX,y.clientY,g),!0)}function u(){t.dragController&&(x(o,null),t.dragController.onStripLeave())}var d=HI(),f=p(d),h=p(f);pe(h,17,()=>t.labels,dt,(y,E,g)=>{var m=VI();let I;var P=p(m);{var T=q=>{var R=NI();k(q,R)};K(P,q=>{t.dirty?.[g]&&q(T)})}var M=w(P,2);{var L=q=>{var R=qI(),V=p(R,!0);v(R),N(()=>z(V,t.icons[g])),k(q,R)};K(M,q=>{t.icons?.[g]&&q(L)})}var j=w(M,2),D=p(j,!0);v(j);var C=w(j,2);{var O=q=>{var R=BI();N(()=>ne(R,"data-testid",t.tabIds?.[g]?`tab-close-${t.tabIds[g]}`:void 0)),U("click",R,V=>r(g,V)),U("keydown",R,V=>{(V.key==="Enter"||V.key===" ")&&r(g,V)}),k(q,R)};K(C,q=>{t.closable?.[g]&&q(O)})}v(m),Le(m,(q,R)=>a[R]=q,q=>a?.[q],()=>[g]),N(()=>{I=de(m,1,"tab svelte-1kxcyhf",null,I,{active:t.activeTab===g}),ne(m,"aria-selected",t.activeTab===g),z(D,i(E))}),U("click",m,()=>n(g)),U("pointerdown",m,q=>l(g,q)),Re("auxclick",m,q=>{q.button===1&&t.closable?.[g]&&r(g,q)}),k(y,m)});var b=w(h,2);{var S=y=>{const E=H(()=>OI(i(o),a,i(s)));var g=Be(),m=he(g);{var I=P=>{var T=FI();N(()=>He(T,`left: ${i(E).left??""}px; height: ${i(E).height??""}px; top: ${i(E).top??""}px;`)),k(P,T)};K(m,P=>{i(E)&&P(I)})}k(y,g)};K(b,y=>{i(o)!==null&&t.dragController?.isDragging&&y(S)})}v(f),Le(f,y=>x(s,y),()=>i(s));var _=w(f,2);pe(_,21,()=>t.labels,dt,(y,E,g)=>{var m=UI();let I;var P=p(m);Ht(P,()=>t.body,()=>g),v(m),N(()=>I=de(m,1,"tab-body-pane svelte-1kxcyhf",null,I,{active:t.activeTab===g})),k(y,m)}),v(_),v(d),U("pointermove",f,c),Re("pointerleave",f,u),k(e,d),oe()}ce(["pointermove","click","pointerdown","keydown"]);var WI=A('no factory for <code class="svelte-1czj0s8"> </code>',1),YI=A("<em>empty slot</em>"),GI=A('<div class="slot-placeholder svelte-1czj0s8"><div class="slot-id svelte-1czj0s8"> </div> <div class="slot-meta svelte-1czj0s8"><!></div> <div class="slot-dims svelte-1czj0s8"> </div></div>'),XI=A('<div class="slot svelte-1czj0s8"><!></div>');function cu(e,t){ie(t,!0);let n=$(t,"label",3,""),r=F(void 0),s=F(0),a=F(0);const o=H(()=>t.node.viewId?!!xf(t.node.viewId):!1);xe(()=>{if(!i(r))return;const d=t.node.slotId,f=i(r),h=pl(d,t.node.viewId,n()||t.node.viewId||d,t.meta);f.appendChild(h);const b=new ResizeObserver(S=>{for(const _ of S){const y=_.contentRect;x(s,Math.round(y.width),!0),x(a,Math.round(y.height),!0)}});return b.observe(f),()=>{b.disconnect(),ml(d,f)}});var l=XI(),c=p(l);{var u=d=>{var f=GI(),h=p(f),b=p(h,!0);v(h);var S=w(h,2),_=p(S);{var y=I=>{var P=WI(),T=w(he(P)),M=p(T,!0);v(T),N(()=>z(M,t.node.viewId)),k(I,P)},E=I=>{var P=YI();k(I,P)};K(_,I=>{t.node.viewId?I(y):I(E,-1)})}v(S);var g=w(S,2),m=p(g);v(g),v(f),N(()=>{z(b,t.node.slotId),z(m,`${i(s)??""} × ${i(a)??""}`)}),k(d,f)};K(c,d=>{i(o)||d(u)})}v(l),Le(l,d=>x(r,d),()=>i(r)),N(()=>{ne(l,"data-slot-id",t.node.slotId),ne(l,"data-view-id",t.node.viewId??"")}),k(e,l),oe()}const we=le({phase:"idle",source:null,pointerX:0,pointerY:0,target:null});let Eh=0;function JI(){return performance.now()<Eh}const uu=4;let Ih=0,Ah=0;function ZI(e,t,n,r,s){if(we.phase!=="idle")return;const a=s.getBoundingClientRect();we.phase="pending",we.source={slotId:e,entry:t,sourceRoot:n,startRect:a,offsetX:r.clientX-a.left,offsetY:r.clientY-a.top},we.pointerX=r.clientX,we.pointerY=r.clientY,we.target=null,Ih=r.clientX,Ah=r.clientY,QI()}function QI(){window.addEventListener("pointermove",Ch,!0),window.addEventListener("pointerup",Th,!0),window.addEventListener("pointercancel",Rh,!0),document.body.style.userSelect="none",document.body.dataset.dragging=""}function $I(){window.removeEventListener("pointermove",Ch,!0),window.removeEventListener("pointerup",Th,!0),window.removeEventListener("pointercancel",Rh,!0),document.body.style.userSelect="",delete document.body.dataset.dragging}function Ch(e){if(we.pointerX=e.clientX,we.pointerY=e.clientY,we.phase==="pending"){const t=e.clientX-Ih,n=e.clientY-Ah;t*t+n*n>=uu*uu&&(we.phase="dragging")}}function Th(e){we.phase==="dragging"&&(eA(),Eh=performance.now()+50),Ph()}function Rh(e){Ph()}function du(e){const t=pn.tree;if(e.kind==="docked")return t.docked;const n=t.floats.find(r=>r.id===e.floatId);return n?n.content:null}function fu(e){if(e.kind!=="float")return;const t=pn.tree,n=t.floats.findIndex(r=>r.id===e.floatId);n<0||af(t.floats[n].content)&&t.floats.splice(n,1)}function eA(){const{source:e,target:t}=we;if(!e||!t)return;const n=du(e.sourceRoot),r=du(t.root);if(!n||!r)return;if(t.kind==="strip"){const a=t.tabsNode.tabs.findIndex(o=>o.slotId===e.slotId);if(a>=0){Ww(t.tabsNode,a,t.insertIndex),xr(n),r!==n&&xr(r),fu(e.sourceRoot);return}}const s=ei(n,e.slotId);s&&(t.kind==="strip"?Kw(t.tabsNode,s,t.insertIndex):Af(r,t.path,s,t.side),xr(n),r!==n&&xr(r),fu(e.sourceRoot))}function Ph(){we.phase="idle",we.source=null,we.target=null,$I()}function Eo(e){we.phase==="dragging"&&(we.target=e)}function Cr(e){we.phase==="dragging"&&we.target&&(e&&!e(we.target)||(we.target=null))}var tA=A("<div></div>"),nA=A('<div class="quad-target quad-left svelte-re71zu" data-testid="drop-zone-left"></div> <div class="quad-target quad-right svelte-re71zu" data-testid="drop-zone-right"></div> <div class="quad-target quad-top svelte-re71zu" data-testid="drop-zone-top"></div> <div class="quad-target quad-bottom svelte-re71zu" data-testid="drop-zone-bottom"></div>',1),rA=A("<!> <!>",1),sA=A("<div><!></div>");function vu(e,t){ie(t,!0);let n=F(void 0),r=F(null);const s=H(()=>we.phase==="dragging"),a=H(()=>{let b;return t.rootRef.kind==="docked"?b=pn.root:b=pn.tree.floats.find(_=>_.id===t.rootRef.floatId)?.content??null,b?Cf(b,t.path):!1});function o(b,S,_){const y=_.left+_.width/2,E=_.top+_.height/2,g=b-y,m=S-E,I=g/_.width,P=m/_.height;return Math.abs(I)>Math.abs(P)?I<0?"left":"right":P<0?"top":"bottom"}function l(b){if(!i(n))return;if(i(a)){i(r)!==null&&(x(r,null),Cr(y=>y.kind==="split"&&y.path.join("/")===t.path.join("/")));return}const S=i(n).getBoundingClientRect();if(b.clientX<S.left||b.clientX>S.right||b.clientY<S.top||b.clientY>S.bottom){i(r)!==null&&(x(r,null),Cr(y=>y.kind==="split"&&y.path.join("/")===t.path.join("/")));return}const _=o(b.clientX,b.clientY,S);if(_!==i(r)){x(r,_,!0);const y={kind:"split",root:t.rootRef,path:[...t.path],side:_};Eo(y)}}function c(){i(r)!==null&&(x(r,null),Cr(b=>b.kind==="split"&&b.path.join("/")===t.path.join("/")))}var u=sA();let d;var f=p(u);{var h=b=>{var S=rA(),_=he(S);{var y=m=>{var I=tA();N(()=>de(I,1,`quad-highlight quad-${i(r)??""}`,"svelte-re71zu")),k(m,I)};K(_,m=>{i(r)&&m(y)})}var E=w(_,2);{var g=m=>{var I=nA();qt(6),k(m,I)};K(E,m=>{i(s)&&m(g)})}k(b,S)};K(f,b=>{i(a)||b(h)})}v(u),Le(u,b=>x(n,b),()=>i(n)),N(()=>d=de(u,1,"slot-drop-zone svelte-re71zu",null,d,{active:i(s),locked:i(a)})),U("pointermove",u,l),Re("pointerleave",u,c),k(e,u),oe()}ce(["pointermove"]);var aA=A('<div class="tab-slot-wrapper svelte-1gw9g38"><!> <!></div>'),iA=A('<div class="empty-tabs-custom svelte-1gw9g38"></div>'),oA=A('<div class="empty-tabs-default svelte-1gw9g38"><div class="empty-tabs-drop svelte-1gw9g38"></div></div>'),lA=A('<div class="empty-tabs-placeholder svelte-1gw9g38"><!></div>'),cA=A('<div class="leaf-slot-wrapper svelte-1gw9g38"><!> <!></div>');function mi(e,t){ie(t,!0);let n=$(t,"path",19,()=>[]),r=$(t,"rootRef",19,()=>({kind:"docked"}));const s=H(()=>{let g;return r().kind==="docked"?g=pn.root:g=pn.tree.floats.find(I=>I.id===r().floatId)?.content??null,g?ks(g,n()):null});function a(g){return{get isDragging(){return we.phase==="dragging"},onPointerDown(m,I,P){const T=g.tabs[m];T&&ZI(T.slotId,T,r(),I,P)},onStripHover(m,I,P,T){if(P<m.top||P>m.bottom)return Cr(j=>j.kind==="strip"&&j.tabsNode===g),null;let M=T.length;for(let j=0;j<T.length;j++){const D=T[j],C=D.left+D.width/2;if(I<C){M=j;break}}const L=we.source;if(L){const j=g.tabs.findIndex(D=>D.slotId===L.slotId);j>=0&&j<M&&(M-=1)}return Eo({kind:"strip",root:r(),tabsNode:g,insertIndex:M}),M},onStripLeave(){Cr(m=>m.kind==="strip"&&m.tabsNode===g)}}}function o(g){return g.type==="split"?g:null}function l(g){return g.type==="tabs"?g:null}function c(g){return g.type==="slot"?g:null}function u(g){return g.map(m=>Zw(m.slotId)||void 0)}function d(g){return g.map(m=>Jw(m.slotId)||void 0)}function f(g,m){const I=g[m];I&&Sl(I.slotId)}function h(g,m){m(g)}function b(g,m){we.phase==="dragging"&&Eo({kind:"strip",root:r(),tabsNode:m,insertIndex:0})}function S(){Cr(g=>g.kind==="strip"&&g.insertIndex===0)}var _=Be(),y=he(_);{var E=g=>{var m=Be(),I=he(m);{var P=L=>{const j=(C,O=St)=>{{let q=H(()=>[...n(),O()]);mi(C,{get rootRef(){return r()},get path(){return i(q)}})}},D=H(()=>o(i(s)));zI(L,{get direction(){return i(D).direction},get sizes(){return i(D).sizes},get pinned(){return i(D).pinned},get collapsed(){return i(D).collapsed},get fixed(){return i(D).fixed},get count(){return i(D).children.length},get pane(){return j},onResize:(C,O)=>i(D).sizes[C]=O,onCollapseToggle:(C,O)=>{i(D).collapsed||(i(D).collapsed=i(D).children.map(()=>!1)),i(D).collapsed[C]=O}})},T=L=>{const j=H(()=>l(i(s)));var D=Be(),C=he(D);{var O=R=>{const V=(Y,Q=St)=>{const Z=H(()=>i(j)?.tabs[Q()]);var se=Be(),J=he(se);{var B=W=>{var ae=aA(),G=p(ae);{let be=H(()=>({type:"slot",slotId:i(Z).slotId,viewId:i(Z).viewId}));cu(G,{get node(){return i(be)},get label(){return i(Z).label},get meta(){return i(Z).meta}})}var ue=w(G,2);vu(ue,{get rootRef(){return r()},get path(){return n()}}),v(ae),k(W,ae)};K(J,W=>{i(Z)&&W(B)})}k(Y,se)},X=H(()=>a(i(j)));{let Y=H(()=>i(j).tabs.map(B=>B.label)),Q=H(()=>i(j).tabs.map(B=>B.icon)),Z=H(()=>u(i(j).tabs)),se=H(()=>d(i(j).tabs)),J=H(()=>i(j).tabs.map(B=>B.slotId));KI(R,{get labels(){return i(Y)},get icons(){return i(Q)},get activeTab(){return i(j).activeTab},onActiveChange:B=>i(j).activeTab=B,get body(){return V},get dragController(){return i(X)},get clickGuard(){return JI},get closable(){return i(Z)},get dirty(){return i(se)},onClose:B=>f(i(j).tabs,B),get tabIds(){return i(J)}})}},q=R=>{var V=lA(),X=p(V);{var Y=Z=>{var se=iA();Vd(se,(J,B)=>h?.(J,B),()=>i(j).emptyRenderer),k(Z,se)},Q=Z=>{var se=oA(),J=p(se);v(se),U("pointermove",J,B=>b(B,i(j))),Re("pointerleave",J,S),k(Z,se)};K(X,Z=>{i(j).emptyRenderer?Z(Y):Z(Q,-1)})}v(V),k(R,V)};K(C,R=>{i(j)&&i(j).tabs.length>0?R(O):i(j)?.persistent&&R(q,1)})}k(L,D)},M=L=>{const j=H(()=>c(i(s)));var D=cA(),C=p(D);cu(C,{get node(){return i(j)},get meta(){return i(j).meta}});var O=w(C,2);vu(O,{get rootRef(){return r()},get path(){return n()}}),v(D),k(L,D)};K(I,L=>{i(s).type==="split"?L(P):i(s).type==="tabs"?L(T,1):L(M,-1)})}k(g,m)};K(y,g=>{i(s)&&g(E)})}k(e,_),oe()}ce(["pointermove"]);var uA=A('<span class="drag-preview-icon svelte-133fiip"> </span>'),dA=A('<div class="drag-preview svelte-133fiip"><!> <span class="drag-preview-label svelte-133fiip"> </span></div>');function fA(e,t){ie(t,!0);const n=H(()=>we.phase==="dragging"&&!!we.source),r=H(()=>we.source?we.pointerX-we.source.offsetX:0),s=H(()=>we.source?we.pointerY-we.source.offsetY:0),a=H(()=>we.source?.startRect.width??0),o=H(()=>we.source?.startRect.height??0),l=H(()=>we.source?.entry.label??""),c=H(()=>we.source?.entry.icon);var u=Be(),d=he(u);{var f=h=>{var b=dA(),S=p(b);{var _=g=>{var m=uA(),I=p(m,!0);v(m),N(()=>z(I,i(c))),k(g,m)};K(S,g=>{i(c)&&g(_)})}var y=w(S,2),E=p(y,!0);v(y),v(b),N(()=>{He(b,`left: ${i(r)??""}px; top: ${i(s)??""}px; width: ${i(a)??""}px; height: ${i(o)??""}px;`),z(E,i(l))}),k(h,b)};K(d,h=>{i(n)&&h(f)})}k(e,u),oe()}const Tr=new Map;let Ma=!1;function jh(e){if(Tr.size===0)return;const t=e.target;if(!t)return;const n=Array.from(Tr.keys());for(const r of n){const s=Tr.get(r);s&&(s.contains(t)||Ce.close(r))}}function vA(){Ma||typeof document>"u"||(document.addEventListener("pointerdown",jh,!0),Ma=!0)}function hA(){Ma&&(Tr.size>0||(document.removeEventListener("pointerdown",jh,!0),Ma=!1))}function pA(e,t){Tr.set(e,t),vA()}function mA(e){Tr.delete(e),hA()}function bA(e){const t=new Set;return Mh(e,t),[...t]}function Mh(e,t){switch(e.type){case"slot":{if(e.viewId!==null){const n=Tc(e.viewId);n&&t.add(n)}return}case"tabs":{for(const n of e.tabs)if(n.viewId!==null){const r=Tc(n.viewId);r&&t.add(r)}return}case"split":{for(const n of e.children)Mh(n,t);return}}}var gA=A('<button class="sh3-float-popout svelte-1p734al" aria-label="Open in own window" title="Open in own window">⧉</button>'),yA=A('<header class="sh3-float-header svelte-1p734al" data-sh3-scope="element:float-header"><span class="sh3-float-title svelte-1p734al"> </span> <span class="sh3-float-header-actions svelte-1p734al"><!> <button class="sh3-float-maximize svelte-1p734al"> </button> <button class="sh3-float-close svelte-1p734al" aria-label="Close float">×</button></span></header>'),_A=A('<div class="sh3-float-frame svelte-1p734al" data-shell-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 wA(e,t){ie(t,!0);const n=typeof globalThis.__TAURI_INTERNALS__<"u",r=$a("__layouts__");function s(R){R.preventDefault(),r.set({type:"float-header",ref:{floatId:a().id}}),sn.actions.openContextMenu({x:R.clientX,y:R.clientY,scope:{element:"float-header"}})}let a=$(t,"entry",15),o=F(!1),l={x:0,y:0},c=F(!1),u={pointer:{x:0,y:0},size:{w:0,h:0},min:{w:0,h:0}},d=F(void 0);const f=H(()=>Ce.isMaximized(a().id));xe(()=>{if(a().dismissable&&i(d))return pA(a().id,i(d)),()=>mA(a().id)}),xe(()=>{if(!i(d))return;const R=b_(a().id);if(R)return R.appendChild(i(d)),()=>{i(d)?.parentNode===R&&i(d).remove()}});function h(R){if(R.button!==0||R.target.closest(".sh3-float-close")||R.target.closest(".sh3-float-maximize")||R.target.closest(".sh3-float-popout"))return;R.currentTarget.setPointerCapture?.(R.pointerId),x(o,!0),l={x:R.clientX-a().position.x,y:R.clientY-a().position.y},Ce.focus(a().id)}function b(R){i(o)&&(Ce.unmaximize(a().id),a(a().position.x=R.clientX-l.x,!0),a(a().position.y=R.clientY-l.y,!0))}function S(R){if(!i(o))return;x(o,!1);const V=R.currentTarget;V.hasPointerCapture?.(R.pointerId)&&V.releasePointerCapture(R.pointerId)}function _(R){R.target.closest(".sh3-float-close")||R.target.closest(".sh3-float-maximize")||R.target.closest(".sh3-float-popout")||Ce.toggleMaximize(a().id)}function y(R){if(R.button!==0)return;R.stopPropagation(),R.currentTarget.setPointerCapture?.(R.pointerId),x(c,!0),u={pointer:{x:R.clientX,y:R.clientY},size:{w:a().size.w,h:a().size.h},min:sl(a().content)},Ce.focus(a().id)}function E(R){if(!i(c))return;Ce.unmaximize(a().id);const V=R.clientX-u.pointer.x,X=R.clientY-u.pointer.y;a(a().size.w=Math.max(u.min.w,u.size.w+V),!0),a(a().size.h=Math.max(u.min.h,u.size.h+X),!0)}function g(R){if(!i(c))return;x(c,!1);const V=R.currentTarget;V.hasPointerCapture?.(R.pointerId)&&V.releasePointerCapture(R.pointerId)}function m(){Ce.focus(a().id)}function I(R){R.stopPropagation(),Ce.toggleMaximize(a().id)}function P(R){R.stopPropagation(),Ce.close(a().id)}async function T(R){R.stopPropagation();try{await di({kind:"float",content:a().content,title:a().title,size:{w:a().size.w,h:a().size.h},activateShards:bA(a().content)}),Ce.close(a().id)}catch(V){sn.toast.notify(`Pop-out failed: ${V.message}`,{level:"error",duration:5e3})}}var M=_A();let L;var j=p(M);{var D=R=>{var V=yA(),X=p(V),Y=p(X,!0);v(X);var Q=w(X,2),Z=p(Q);{var se=ae=>{var G=gA();U("click",G,T),k(ae,G)};K(Z,ae=>{n&&ae(se)})}var J=w(Z,2),B=p(J,!0);v(J);var W=w(J,2);v(Q),v(V),N(()=>{ne(V,"data-float-id",a().id),z(Y,a().title),ne(J,"aria-label",i(f)?"Restore float":"Maximize float"),ne(J,"aria-pressed",i(f)),z(B,i(f)?"🗗":"🗖")}),U("pointerdown",V,h),U("pointermove",V,b),U("pointerup",V,S),Re("pointercancel",V,S),U("dblclick",V,_),U("contextmenu",V,s),U("click",J,I),U("click",W,P),k(R,V)};K(j,R=>{a().title&&R(D)})}var C=w(j,2),O=p(C);{let R=H(()=>({kind:"float",floatId:a().id}));mi(O,{get rootRef(){return i(R)},path:[]})}v(C);var q=w(C,2);v(M),Le(M,R=>x(d,R),()=>i(d)),N(()=>{ne(M,"aria-label",a().title??"Float panel"),L=He(M,"",L,{left:`${a().position.x??""}px`,top:`${a().position.y??""}px`,width:`${a().size.w??""}px`,height:`${a().size.h??""}px`})}),U("click",M,m),U("pointerdown",q,y),U("pointermove",q,E),U("pointerup",q,g),Re("pointercancel",q,g),k(e,M),oe()}ce(["click","pointerdown","pointermove","pointerup","dblclick","contextmenu"]);var kA=A('<div class="sh3-float-layer svelte-1rzcset"></div>');function xA(e,t){ie(t,!0);const n=H(()=>pn.floats);var r=kA();pe(r,23,()=>i(n),s=>s.id,(s,a,o)=>{wA(s,{get entry(){return i(n)[i(o)]},set entry(l){i(n)[i(o)]=l}})}),v(r),k(e,r),oe()}var SA=A('<div class="guest-signin-error svelte-pymkh"> </div>'),EA=A('<div class="guest-signin-overlay svelte-pymkh" role="dialog"><div class="guest-signin-card svelte-pymkh"><form class="guest-signin-form svelte-pymkh"><input class="guest-signin-input svelte-pymkh" type="text" placeholder="Username" autocomplete="username"/> <input class="guest-signin-input svelte-pymkh" type="password" placeholder="Password" autocomplete="current-password"/> <div class="guest-signin-actions svelte-pymkh"><button type="submit" class="guest-signin-btn svelte-pymkh"> </button> <button type="button" class="guest-signin-cancel svelte-pymkh">Cancel</button></div></form> <!></div></div>'),IA=A('<div class="guest-banner svelte-pymkh"><span class="guest-banner-text">Browsing as guest. Sign in to save your work.</span> <button type="button" class="guest-banner-action svelte-pymkh">Sign in</button></div> <!>',1),AA=A('<div class="guest-banner-slot"><!></div>');function CA(e,t){ie(t,!0);let n=F(!1),r=F(""),s=F(""),a=F(null),o=F(!1);async function l(){if(!i(r).trim()||!i(s).trim()||i(o))return;x(o,!0),x(a,null);const h=await cv(i(r).trim(),i(s).trim());x(o,!1),h.ok?x(n,!1):x(a,h.error,!0)}var c=AA(),u=p(c);{var d=h=>{var b=IA(),S=he(b),_=w(p(S),2);v(S);var y=w(S,2);{var E=g=>{var m=EA(),I=p(m),P=p(I),T=p(P);ge(T);var M=w(T,2);ge(M);var L=w(M,2),j=p(L),D=p(j,!0);v(j);var C=w(j,2);v(L),v(P);var O=w(P,2);{var q=R=>{var V=SA(),X=p(V,!0);v(V),N(()=>z(X,i(a))),k(R,V)};K(O,R=>{i(a)&&R(q)})}v(I),v(m),N(R=>{T.disabled=i(o),M.disabled=i(o),j.disabled=R,z(D,i(o)?"Signing in...":"Sign in")},[()=>i(o)||!i(r).trim()||!i(s).trim()]),Re("submit",P,R=>{R.preventDefault(),l()}),Se(T,()=>i(r),R=>x(r,R)),Se(M,()=>i(s),R=>x(s,R)),U("click",C,()=>{x(n,!1),x(a,null)}),k(g,m)};K(y,g=>{i(n)&&g(E)})}U("click",_,()=>{x(n,!0)}),k(h,b)},f=H(()=>uv());K(u,h=>{i(f)&&h(d)})}v(c),k(e,c),oe()}ce(["click"]);var TA=A('<code class="sh3-consent-scope svelte-14me5sj"> </code>'),RA=A('<dt class="svelte-14me5sj">Peer</dt> <dd class="svelte-14me5sj"> </dd>',1),PA=A('<dt class="svelte-14me5sj">Expires in</dt> <dd class="svelte-14me5sj"> </dd>',1),jA=A('<div class="sh3-consent-backdrop svelte-14me5sj" role="dialog" aria-modal="true" aria-label="Key creation consent"><div class="sh3-consent-card svelte-14me5sj"><h2 class="sh3-consent-title svelte-14me5sj"><span class="svelte-14me5sj"> </span> wants to create a key</h2> <dl class="sh3-consent-fields svelte-14me5sj"><dt class="svelte-14me5sj">Label</dt> <dd class="svelte-14me5sj"> </dd> <dt class="svelte-14me5sj">Scopes</dt> <dd class="sh3-consent-scopes svelte-14me5sj"></dd> <!> <!></dl> <div class="sh3-consent-actions svelte-14me5sj"><button type="button" class="sh3-consent-deny svelte-14me5sj">Deny</button> <button type="button" class="sh3-consent-approve svelte-14me5sj">Approve</button></div></div></div>');function MA(e,t){ie(t,!0);let n=F(null);xe(()=>xv(u=>{x(n,u,!0)}));function r(){i(n)&&(go(i(n).requestId,!0),x(n,null))}function s(){i(n)&&(go(i(n).requestId,!1),x(n,null))}var a=Be(),o=he(a);{var l=c=>{var u=jA(),d=p(u),f=p(d),h=p(f),b=p(h,!0);v(h),qt(),v(f);var S=w(f,2),_=w(p(S),2),y=p(_,!0);v(_);var E=w(_,4);pe(E,20,()=>i(n).scopes,j=>j,(j,D)=>{var C=TA(),O=p(C,!0);v(C),N(()=>z(O,D)),k(j,C)}),v(E);var g=w(E,2);{var m=j=>{var D=RA(),C=w(he(D),2),O=p(C);v(C),N(()=>z(O,`${i(n).peerRole??"—"??""}${i(n).peerId?` · ${i(n).peerId}`:""}`)),k(j,D)};K(g,j=>{(i(n).peerRole||i(n).peerId)&&j(m)})}var I=w(g,2);{var P=j=>{var D=PA(),C=w(he(D),2),O=p(C);v(C),N(q=>z(O,`${q??""}s`),[()=>Math.round(i(n).expiresIn/1e3)]),k(j,D)};K(I,j=>{i(n).expiresIn&&j(P)})}v(S);var T=w(S,2),M=p(T);Fr(M,!0);var L=w(M,2);v(T),v(d),v(u),N(()=>{z(b,i(n).shardId),z(y,i(n).label)}),U("click",M,s),U("click",L,r),k(c,u)};K(o,c=>{i(n)&&c(l)})}k(e,a),oe()}ce(["click"]);var DA=A('<span class="sh3-brand svelte-18lk809">SH3</span>'),LA=A('<span class="sh3-brand sh3-brand-app svelte-18lk809"> </span>'),zA=A('<span class="sh3-brand svelte-18lk809">SH3</span> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <button type="button" class="sh3-brand-crumb svelte-18lk809"> </button>',1),OA=A('<button type="button" class="sh3-brand sh3-brand-clickable svelte-18lk809" title="Exit project">SH3</button> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <span class="sh3-brand-project svelte-18lk809"> </span>',1),NA=A('<span class="sh3-brand sh3-brand-project svelte-18lk809"> </span> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <span class="sh3-brand sh3-brand-app svelte-18lk809"> </span>',1),qA=A('<button type="button" class="sh3-brand sh3-brand-clickable svelte-18lk809" title="Exit project">SH3</button> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <button type="button" class="sh3-brand-crumb svelte-18lk809"> </button> <span class="sh3-brand-sep svelte-18lk809" aria-hidden="true">›</span> <button type="button" class="sh3-brand-crumb svelte-18lk809"> </button>',1),BA=A('<div class="sh3-brand-slot svelte-18lk809"><!></div>');function VA(e,t){ie(t,!0);const n=H(()=>Ft().activeAppId),r=H(Uy),s=H(()=>ir.activeProjectId),a=H(()=>i(n)?zn(i(n))?.manifest.label??i(n):null),o=H(()=>i(r)?zn(i(r))?.manifest.label??i(r):null),l=H(()=>i(s)?Ot.projects.find(I=>I.id===i(s))?.name??i(s):null),c=H(()=>i(s)?i(n)?"project-app":i(r)?"project-breadcrumb":"project-home":i(n)?"app":i(r)?"breadcrumb":"brand");function u(){i(r)&&mn(i(r))}function d(){Qf(null)}function f(){i(n)&&Xr()}var h=BA(),b=p(h);{var S=I=>{var P=DA();k(I,P)},_=I=>{var P=LA(),T=p(P,!0);v(P),N(()=>z(T,i(a))),k(I,P)},y=I=>{var P=zA(),T=w(he(P),4),M=p(T,!0);v(T),N(()=>z(M,i(o))),U("click",T,u),k(I,P)},E=I=>{var P=OA(),T=he(P),M=w(T,4),L=p(M,!0);v(M),N(()=>z(L,i(l))),U("click",T,d),k(I,P)},g=I=>{var P=NA(),T=he(P),M=p(T,!0);v(T);var L=w(T,4),j=p(L,!0);v(L),N(()=>{z(M,i(l)),z(j,i(a))}),k(I,P)},m=I=>{var P=qA(),T=he(P),M=w(T,4),L=p(M,!0);v(M);var j=w(M,4),D=p(j,!0);v(j),N(()=>{z(L,i(l)),z(D,i(o))}),U("click",T,d),U("click",M,f),U("click",j,u),k(I,P)};K(b,I=>{i(c)==="brand"?I(S):i(c)==="app"?I(_,1):i(c)==="breadcrumb"?I(y,2):i(c)==="project-home"?I(E,3):i(c)==="project-app"?I(g,4):i(c)==="project-breadcrumb"&&I(m,5)})}v(h),k(e,h),oe()}ce(["click"]);const FA=Object.freeze([{id:"file",label:"File"},{id:"edit",label:"Edit"},{id:"view",label:"View"},{id:"window",label:"Window"},{id:"help",label:"Help"}]);function Da(e){return e===void 0?!1:typeof e=="function"?!!e():!!e}function UA(e,t){if(e==null)return[];if(t==null)return FA.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 HA(e,t,n){const r=[],s=new Set;for(const a of e)a.action.menuItem!==n||a.action.submenuOf!==void 0||s.has(a.action.id)||!Hs(a.action.scope,t,a.ownerShardId)||(s.add(a.action.id),r.push({id:a.action.id,label:Wt(a.action),shortcut:Us(a.action,t.bindings,t.platform),group:a.action.group??"",icon:a.action.icon,checked:Da(a.action.checked),disabled:Da(a.action.disabled),submenu:a.action.submenu===!0}));return r}function KA(e,t,n){const r=[],s=new Set;for(const a of e)a.action.submenuOf!==n||s.has(a.action.id)||!Hs(a.action.scope,t,a.ownerShardId)||(s.add(a.action.id),r.push({id:a.action.id,label:Wt(a.action),shortcut:Us(a.action,t.bindings,t.platform),group:a.action.group??"",icon:a.action.icon,checked:Da(a.action.checked),disabled:Da(a.action.disabled),submenu:a.action.submenu===!0}));return r}var WA=A('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),YA=A('<span class="sh3-menubar-icon svelte-bke3dt"></span>'),GA=A('<button type="button" class="sh3-menubar-button svelte-bke3dt"><!> <span class="sh3-menubar-label"> </span> <!></button>');function XA(e,t){ie(t,!0);let n=F(void 0);function r(_){const y=new Map,E=[];for(const g of _){const m=g.group||"";y.has(m)||(y.set(m,[]),E.push(m)),y.get(m).push(g)}return E.map(g=>({id:`group:${g||"_default"}`,items:y.get(g)}))}function s(_,y,E){const g=et().find(m=>m.action.id===_);if(!(!g||typeof g.action.run!="function")){try{g.action.run({action:{id:_,label:Wt(g.action)},appId:y.activeAppId,viewId:y.focusedViewId??void 0,selection:y.selection??void 0,invokedVia:"palette",dispatch:()=>{}})}catch(m){console.error(`[sh3] menu-bar action "${_}" threw:`,m)}E.close()}}function a(_,y,E){const g=document.querySelector(".sh3-popup-host");if(!g)return;const m=document.createElement("div");m.className="sh3-popup-submenu",m.style.position="absolute",m.style.pointerEvents="auto";const P=(g.querySelector(".sh3-ctx-active")??g).getBoundingClientRect();m.style.left=`${P.right+2}px`,m.style.top=`${P.top}px`,g.appendChild(m);const T=KA(et(),y,_),M=qe(Ca,{target:m,props:{sections:r(T),onInvoke:L=>s(L,y,E),onDismiss:()=>{Xe(M),m.remove()}}})}function o(){if(!i(n))return;const _=Ft(),y=to.show(Ca,{anchor:i(n),placement:"bottom-start"},{sections:r(t.items),onInvoke:E=>{const g=et().find(m=>m.action.id===E);if(g){if(g.action.submenu===!0){a(E,_,y);return}s(E,_,y)}},onDismiss:()=>to.close()})}const l=H(()=>t.container.iconPosition??"before");var c=GA(),u=p(c);{var d=_=>{var y=WA();N(()=>ne(y,"data-icon",t.container.icon)),k(_,y)};K(u,_=>{t.container.icon&&i(l)==="before"&&_(d)})}var f=w(u,2),h=p(f,!0);v(f);var b=w(f,2);{var S=_=>{var y=YA();N(()=>ne(y,"data-icon",t.container.icon)),k(_,y)};K(b,_=>{t.container.icon&&i(l)==="after"&&_(S)})}v(c),Le(c,_=>x(n,_),()=>i(n)),N(()=>z(h,t.container.label)),U("click",c,o),k(e,c),oe()}ce(["click"]);var JA=A('<div class="sh3-menubar svelte-7gc0wa" role="menubar"></div>');function ZA(e,t){ie(t,!0);const n=H(Ft),r=H(()=>i(n).activeAppId),s=H(()=>{if(i(r))return zn(i(r))?.manifest.menus}),a=H(()=>UA(i(r),i(s))),o=H(()=>{const c=[],u=et();for(const d of i(a)){const f=HA(u,i(n),d.id);f.length>0&&c.push({container:d,items:f})}return c});var l=JA();pe(l,21,()=>i(o),({container:c,items:u})=>c.id,(c,u)=>{let d=()=>i(u).container,f=()=>i(u).items;XA(c,{get container(){return d()},get items(){return f()}})}),v(l),k(e,l),oe()}var QA=A('<button type="button" class="shell-tabbar-signout svelte-187fra4" title="Sign out"><svg class="shell-tabbar-signout-icon svelte-187fra4" aria-hidden="true"><use></use></svg></button>'),$A=A('<div class="shell-tabbar-user svelte-187fra4"><span class="shell-tabbar-user-name svelte-187fra4"> </span> <span class="shell-tabbar-tag svelte-187fra4"> </span> <!></div>'),eC=A('<div class="shell-overlay-root svelte-187fra4"><!></div>'),tC=A('<div class="shell svelte-187fra4"><header class="shell-tabbar svelte-187fra4" data-shell-region="tabbar"><button type="button" class="shell-tabbar-home-button svelte-187fra4" title="Home"><svg class="shell-tabbar-home-icon svelte-187fra4" aria-hidden="true"><use></use></svg></button> <!> <!> <!></header> <!> <main class="shell-content svelte-187fra4" data-shell-region="content" data-shell-layer="0"><!></main> <footer class="shell-statusbar svelte-187fra4" data-shell-region="statusbar"></footer> <div class="shell-overlays svelte-187fra4" aria-hidden="true"></div> <!></div>');function nC(e,t){ie(t,!0);const n=H(po),r=H(Nr),s=H(bt),a=H(()=>Lf()==="home"),o=[{layer:1,name:"floating"},{layer:2,name:"drag-preview"},{layer:3,name:"popup"},{layer:4,name:"modal"},{layer:5,name:"toast"},{layer:6,name:"command"}],l=le({});xe(()=>{for(const{name:T}of o){const M=l[T];M&&Vy(T,M)}return()=>{for(const{name:T}of o)Fy(T)}}),xe(()=>{const T=pn.tree;return p_(T.floats,()=>({w:window.innerWidth,h:window.innerHeight})),()=>m_()}),xe(()=>{pn.tree,d1()}),xe(()=>po()?Dk():void 0);var c=tC(),u=p(c),d=p(u),f=p(d),h=p(f);v(f),v(d);var b=w(d,2);VA(b,{});var S=w(b,2);ZA(S,{});var _=w(S,2);{var y=T=>{var M=$A(),L=p(M),j=p(L,!0);v(L);var D=w(L,2),C=p(D,!0);v(D);var O=w(D,2);{var q=V=>{var X=QA(),Y=p(X),Q=p(Y);v(Y),v(X),N(()=>ne(Q,"href",`${On}#log-out`)),U("click",X,()=>ok()),k(V,X)},R=H(()=>!ck());K(O,V=>{i(R)&&V(q)})}v(M),N(()=>{z(j,i(r).displayName),z(C,i(s)?"admin":"user")}),k(T,M)};K(_,T=>{i(n)&&i(r)&&T(y)})}v(u);var E=w(u,2);CA(E,{});var g=w(E,2),m=p(g);mi(m,{}),v(g);var I=w(g,4);pe(I,21,()=>o,({layer:T,name:M})=>T,(T,M)=>{let L=()=>i(M).layer,j=()=>i(M).name;var D=eC(),C=p(D);{var O=R=>{xA(R,{})},q=R=>{fA(R,{})};K(C,R=>{j()==="floating"?R(O):j()==="drag-preview"&&R(q,1)})}v(D),Le(D,(R,V)=>l[V]=R,R=>l?.[R],()=>[j()]),N(()=>{ne(D,"data-shell-overlay",j()),ne(D,"data-shell-layer",L()),He(D,`z-index: var(--shell-z-layer-${L()??""});`)}),k(T,D)}),v(I);var P=w(I,2);MA(P,{}),v(c),N(()=>{d.disabled=i(a),ne(h,"href",`${On}#house`)}),U("click",d,()=>Xr()),k(e,c),oe()}ce(["click"]);var rC=A('<button type="button" class="signin-link svelte-lh4k15">Create an account</button>'),sC=A('<form class="signin-form svelte-lh4k15"><input class="signin-input svelte-lh4k15" type="text" placeholder="Username" autocomplete="username"/> <input class="signin-input svelte-lh4k15" type="password" placeholder="Password" autocomplete="current-password"/> <button type="submit" class="signin-btn svelte-lh4k15"> </button></form> <!>',1),aC=A('<form class="signin-form svelte-lh4k15"><input class="signin-input svelte-lh4k15" type="text" placeholder="Username" autocomplete="username"/> <input class="signin-input svelte-lh4k15" type="text" placeholder="Display name (optional)"/> <input class="signin-input svelte-lh4k15" type="password" placeholder="Password" autocomplete="new-password"/> <button type="submit" class="signin-btn svelte-lh4k15"> </button></form> <button type="button" class="signin-link svelte-lh4k15">Back to sign in</button>',1),iC=A('<div class="signin-error svelte-lh4k15"> </div>'),oC=A('<div class="signin-wall svelte-lh4k15"><div class="signin-card svelte-lh4k15"><h1 class="signin-brand svelte-lh4k15">SH3</h1> <!> <!></div></div>');function lC(e,t){ie(t,!0);let n=F("login"),r=F(""),s=F(""),a=F(""),o=F(null),l=F(!1);async function c(){if(!i(r).trim()||!i(s).trim()||i(l))return;x(l,!0),x(o,null);const g=await cv(i(r).trim(),i(s).trim());x(l,!1),g.ok?t.onSuccess():x(o,g.error,!0)}async function u(){if(!i(r).trim()||!i(s).trim()||i(l))return;x(l,!0),x(o,null);const g=await ik(i(r).trim(),i(s).trim(),i(a).trim()||void 0);x(l,!1),g.ok?t.onSuccess():x(o,g.error,!0)}function d(g){x(n,g,!0),x(o,null)}var f=oC(),h=p(f),b=w(p(h),2);{var S=g=>{var m=sC(),I=he(m),P=p(I);ge(P);var T=w(P,2);ge(T);var M=w(T,2),L=p(M,!0);v(M),v(I);var j=w(I,2);{var D=C=>{var O=rC();U("click",O,()=>d("register")),k(C,O)};K(j,C=>{t.selfRegistration&&C(D)})}N(C=>{P.disabled=i(l),T.disabled=i(l),M.disabled=C,z(L,i(l)?"Signing in...":"Sign in")},[()=>i(l)||!i(r).trim()||!i(s).trim()]),Re("submit",I,C=>{C.preventDefault(),c()}),Se(P,()=>i(r),C=>x(r,C)),Se(T,()=>i(s),C=>x(s,C)),k(g,m)},_=g=>{var m=aC(),I=he(m),P=p(I);ge(P);var T=w(P,2);ge(T);var M=w(T,2);ge(M);var L=w(M,2),j=p(L,!0);v(L),v(I);var D=w(I,2);N(C=>{P.disabled=i(l),T.disabled=i(l),M.disabled=i(l),L.disabled=C,z(j,i(l)?"Creating...":"Create account")},[()=>i(l)||!i(r).trim()||!i(s).trim()]),Re("submit",I,C=>{C.preventDefault(),u()}),Se(P,()=>i(r),C=>x(r,C)),Se(T,()=>i(a),C=>x(a,C)),Se(M,()=>i(s),C=>x(s,C)),U("click",D,()=>d("login")),k(g,m)};K(b,g=>{i(n)==="login"?g(S):g(_,-1)})}var y=w(b,2);{var E=g=>{var m=iC(),I=p(m,!0);v(m),N(()=>z(I,i(o))),k(g,m)};K(y,g=>{i(o)&&g(E)})}v(h),v(f),k(e,f),oe()}ce(["click"]);function cC(){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:Nk(t)}}catch(n){return{error:n.message}}}function uC(e){return e.kind==="float"?{docked:e.content,floats:[]}:{docked:{type:"slot",slotId:"satellite:root",viewId:null},floats:[]}}var dC=A('<div class="sh3-satellite-root svelte-191z0e1"><!></div>');function fC(e,t){ie(t,!0),xe(()=>{if(t.payload.kind==="float")o1(uC(t.payload).docked);else if(t.payload.kind==="app"){const s=t.payload.appId;queueMicrotask(()=>{mn(s,{skipLastApp:!0,skipSwitchToHome:!0})})}});var n=dC(),r=p(n);mi(r,{}),v(n),k(e,n),oe()}async function vC(e){const t=e?.serverUrl??"",n=await x2();n.backends&&(Pi("workspace",n.backends.workspace),Pi("user",n.backends.user)),n.localOwner&&lk(),mv(t),Qk();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=cC();if(s){if("error"in s){r.textContent=`Invalid satellite payload: ${s.error}`;return}if(Pi("workspace",new Qi),n.localOwner&&is("local"),e?.shards)for(const l of e.shards)lu(l);if(e?.apps)for(const l of e.apps)gs(l);await hu(e?.discoveredPackages),await TI({activateShardIds:s.payload.activateShards}),co(),qe(fC,{target:r,props:{payload:s.payload}});return}let a=null;if(!n.localOwner)try{const l=await fetch(`${t}/api/boot`,{credentials:"include"});l.ok&&(a=await l.json())}catch{}if(n.localOwner)is("local");else if(a){zc(t,a),is(a.tenantId);const{auth:l,session:c}=a;if(!c&&l.required&&!l.guestAllowed){await hC(r,a);const u=await fetch(`${t}/api/boot`,{credentials:"include"});u.ok&&(a=await u.json(),zc(t,a),is(a.tenantId))}}if(await hu(e?.discoveredPackages),e?.shards)for(const l of e.shards)lu(l);if(e?.apps)for(const l of e.apps)gs(l);const o={};e?.excludeShards&&(o.excludeShards=e.excludeShards),await CI(o),co(),qe(nC,{target:r})}async function hu(e){if(e?.length)for(const t of e)try{const n=await fetch(t.bundleUrl);if(!n.ok){console.warn(`[sh3] Failed to fetch discovered package "${t.id}": HTTP ${n.status}`);continue}const r=await n.arrayBuffer(),s=await Ys(r);Ll(s,{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 hC(e,t){return new Promise(n=>{const r=qe(lC,{target:e,props:{selfRegistration:t.auth.selfRegistration,onSuccess:()=>{Xe(r),n()}}})})}const Bl=window.location.origin;mv(Bl);Zf(new gk(Bl));let Dh=[];try{const e=await fetch("/api/packages");e.ok&&(Dh=await e.json())}catch{}await vC({discoveredPackages:Dh,serverUrl:Bl});
21
+ //# sourceMappingURL=index-auxES7Kp.js.map