New:Socket for Asana Is Now Available.Learn more
Get Started

@devframes/hub-ui

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@devframes/hub-ui - npm Package Compare versions

Comparing version
0.9.5
to
0.9.6
+1
dist/client/standalone/assets/context-B4i6GqYV.js
import{At as e,Dt as t,Ot as n,P as r,St as i,Tt as a,a as o,at as s,ft as c,ht as l,i as u,it as d,jt as f,kt as ee,n as p,o as m,pt as h,r as g,t as _,u as v,ut as y,xt as b}from"./docks-DFXStXQt.js";import{D as x,F as S,H as C,I as te,L as ne,M as re,N as ie,R as w,U as T,W as E,d as ae,f as D,j as oe,k as se,l as ce,n as O,p as k,r as A,s as j,z as le}from"./keybindings-Ck-Pl3aa.js";var M=new WeakMap;async function ue(e,t,n,i){if(M.has(t))return M.get(t);let a=await t.sharedState.get(`devframe:commands`,{initialValue:[]}),o=u(a),s=c(new Map),l=u(n),d=r(()=>l.value.commandShortcuts??{}),f=h(!1),ee=k(),p=()=>i?i():{clientType:e,dockOpen:!1,paletteOpen:f.value,dockSelectedId:``,popupOpen:ee.value},m=r(()=>[...o.value,...Array.from(s.values())]),g=r(()=>{let e=p();return A(m.value,e).filter(e=>e.showInPalette!==!1)});function _(e){let t=Array.isArray(e)?e:[e];for(let e of t)s.set(e.id,e);return()=>{for(let e of t)s.delete(e.id)}}function v(e){let t=m.value.find(t=>t.id===e);if(t)return t;for(let t of m.value)if(t.children){let n=t.children.find(t=>t.id===e);if(n)return n}}async function b(e,...n){let r=v(e);if(!r)throw Error(`Command "${e}" not found`);if(r.when){let t=p();if(!C(r.when,t))throw Error(`Command "${e}" is not available in the current context`)}if(r.source===`server`)return t.call(`hub:commands:execute`,e,...n);if(r.action)return r.action(...n);throw Error(`Command "${e}" has no action`)}function x(e){let t=d.value[e];return t===void 0?v(e)?.keybindings??[]:t}typeof window<`u`&&N(p,m,x,b);let S=c({commands:m,paletteCommands:g,register:_,execute:b,getKeybindings:x,settings:y(n),paletteOpen:f});return M.set(t,S),S}function N(e,t,n,r){let i=i=>{let a=j(i);if(!a||a===`Mod`||a===`Shift`||a===`Alt`)return;let o=e(),s=O(t,n);for(let{id:e,keybinding:n}of s){if(n.key!==a)continue;let s=t.value.find(t=>t.id===e)??t.value.flatMap(e=>e.children??[]).find(t=>t.id===e);if(!(s?.when&&!C(s.when,o))){i.preventDefault(),i.stopPropagation(),r(e).catch(console.error);return}}};window.addEventListener(`keydown`,i,{capture:!0}),d(D(),(e,t)=>{t&&t.removeEventListener(`keydown`,i,{capture:!0}),e&&e.addEventListener(`keydown`,i,{capture:!0})})}function de(e){let t=[],n;async function r(){if(e.isTrusted===!0)return n===void 0&&(n=new Promise(async e=>{for(;t.length>0;)await t.shift()();e()})),n}async function i(n){return e.isTrusted===!0&&t.length!==0&&await r(),e.isTrusted===!0&&t.length===0?await n():new Promise(e=>{t.push(async()=>{e(await n())})})}e.events.on(`rpc:is-trusted:updated`,e=>{e&&t.length>0&&r()});let a={add(t){return i(async()=>{let n=await e.call(`hub:messages:add`,t);return{get entry(){return n},get id(){return n.id},async update(t){let r=await e.call(`hub:messages:update`,n.id,t);return r&&(n=r),r??void 0},async dismiss(){await e.call(`hub:messages:remove`,n.id)}}})},remove(t){return i(()=>e.call(`hub:messages:remove`,t))},clear(){return i(()=>e.call(`hub:messages:clear`))},info:(e,t)=>a.add({...t,message:e,level:`info`}),warn:(e,t)=>a.add({...t,message:e,level:`warn`}),error:(e,t)=>a.add({...t,message:e,level:`error`}),success:(e,t)=>a.add({...t,message:e,level:`success`}),debug:(e,t)=>a.add({...t,message:e,level:`debug`})};return a}function P(e){switch(e.type){case`action`:return e.action;case`custom-render`:return e.renderer;case`iframe`:return e.clientScript;default:return}}async function F(e,t){let n=P(e);if(!n?.importFrom)throw Error(`[@devframes/hub-ui] Dock entry "${e.id}" carries no client script to run`);let r=E(n.importFrom,{template:t.rpc.connectionMeta?.configs?.dock?.clientModuleResolution,metaBaseUrl:t.rpc.connection?.metaBaseUrl});try{let e=(await a(()=>import(r),[],import.meta.url))[n.importName??`default`];if(typeof e!=`function`)throw Error(`[@devframes/hub-ui] "${r}" exports no callable "${n.importName??`default`}"`);await e(t)}catch(e){throw console.error(`[@devframes/hub-ui] Error executing client script from ${r}${T(n.importFrom,r)}`,e),e}}var I=new Map;function fe(e,t){if(e.type!==`action`&&I.has(e.id))return I.get(e.id);let n=F(e,t);return e.type!==`action`&&I.set(e.id,n),n}var L=new WeakMap;async function R(a,C,T,E){if(L.has(C))return L.get(C);let{entries:D,initialSyncComplete:O}=await o(C),A={},j=await C.sharedState.get(e,{initialValue:A}),M=u(j),N=m(j,A),P=c(new Map),F=r(()=>{let e=D.value,t;if(P.size===0)t=e;else{let n=new Set,r=[];for(let t of e)n.add(t.id),r.push(P.get(t.id)??t);for(let[e,t]of P)n.has(e)||r.push(t);t=r}return t.some(e=>e.id===w.id)?t:[...t,w]});E||=h(p());let I={...E.value},R=h(I.open&&I.selectedDockId!=null),z=r({get:()=>E.value.selectedDockId,set:e=>{E.value.selectedDockId=e}}),pe=r({get:()=>E.value.selectedDockRoute,set:e=>{E.value.selectedDockRoute=e}}),B=r(()=>R.value?null:F.value.find(e=>e.id===z.value)??ne.find(e=>e.id===z.value)??null),V=c(new Map);s(()=>{for(let e of F.value){if(V.has(e.id)){V.get(e.id).entryMeta=e;continue}V.set(e.id,g(e,B))}});let me=(e,t=!1)=>{if(P.has(e.id)&&!t)throw Error(`[@devframes/hub-ui] a client dock "${e.id}" is already registered — pass force to overwrite`);return P.set(e.id,e),V.has(e.id)||V.set(e.id,g(e,B)),{update:t=>{if(t.id!=null&&t.id!==e.id)throw Error(`[@devframes/hub-ui] a client dock id is immutable ("${e.id}")`);let n=P.get(e.id);n&&P.set(e.id,{...n,...t})},dispose:()=>{P.delete(e.id)&&(V.delete(e.id),z.value===e.id&&(z.value=null))}}},he=e=>{if(!P.has(e.id))throw Error(`[@devframes/hub-ui] no client dock "${e.id}" to update — register it first`);P.set(e.id,e)};T||=h(_());let H,ge,U=y(await(async()=>(ge||=C.sharedState.get(`devframe:user-settings`,{initialValue:ee()}),ge))()),W=u(U),G,_e=k(),K=()=>({clientType:a,dockOpen:E.value.open,paletteOpen:G?.paletteOpen??!1,dockSelectedId:z.value??``,popupOpen:_e.value}),q=new Map,J=async(e=null)=>{if(e==null)return R.value=!1,z.value=null,E.value.open=!1,E.value.selectedDockRoute=null,!0;if(e===`~client-auth-notice`)return R.value=!1,z.value=e,E.value.open=!0,!0;let t=F.value.find(t=>t.id===e);if(!t)return!1;if(t.type===`group`){let e=te(F.value,t.id,t.defaultChildId,K())?.id??oe(F.value,t.id)[0]?.id;return e?J(e):!1}if(t.type===`iframe`&&t.subTabs){let n=t.frameId??t.id,r=q.get(n);if(r&&r!==e&&F.value.some(e=>e.id===r))return J(r)}if(t.type===`action`&&await ae(a,t.id)!=null)return!1;if(t.type===`action`||t.type===`custom-render`||t.type===`iframe`&&t.clientScript){let n=V.get(e),r=de(C);await fe(t,c({...l(H),current:n,messages:r,logs:r}))}return t.type===`iframe`&&t.frameId&&!t.subTabs&&q.set(t.frameId,t.id),R.value=!1,z.value=t.id,E.value.open=!0,t.type!==`iframe`&&(E.value.selectedDockRoute=null),!0},Y=async e=>z.value===e?J(null):J(e),X=new Map,Z=new Map,ve=(e,t)=>{let n=e.frameId??e.id,r=t=>{let r=X.get(n);if(r){if(r.iframe===t)return;r.dispose(),X.delete(n)}let i=b({frameId:n,anchor:e,iframe:t,window:t.ownerDocument?.defaultView??globalThis,docks:{register:me,switchEntry:J,getStateById:e=>V.get(e)}});X.set(n,{iframe:t,dispose:i.dispose})};t.domElements.iframe&&r(t.domElements.iframe),t.events.on(`dom:iframe:mounted`,r)};d(F,e=>{let t=new Set;for(let n of e){if(n.type!==`iframe`||!n.subTabs||(t.add(n.id),Z.has(n.id)))continue;let e=V.get(n.id);e&&(Z.set(n.id,n.frameId??n.id),ve(n,e))}for(let[e,n]of[...Z])t.has(e)||(Z.delete(e),X.get(n)?.dispose(),X.delete(n))},{immediate:!0}),C.client.register({name:f.broadcast.docksActivate,type:`action`,handler:e=>{e?.dockId&&J(e.dockId)}});let Q=C.connectionMeta.configs?.ui?.dockPreferences?.categoryOrder,ye=r(()=>x(F.value,W.value,{whenContext:K(),collapseGroups:!0,categoryOrderOverride:Q}));G=await ue(a,C,U,K),G.register([{id:`devframes:toggle-palette`,source:`client`,title:`Toggle Command Palette`,icon:`ph:magnifying-glass-duotone`,showInPalette:!1,keybindings:[{key:`Mod+K`}],action:()=>{G.paletteOpen=!G.paletteOpen}},{id:`devframes:close-panel`,source:`client`,title:`Close Panel`,icon:`ph:x-circle-duotone`,when:`dockOpen && !paletteOpen`,keybindings:[{key:`Escape`}],action:()=>{E.value.open=!1,z.value=null}},{id:`devframes:open-settings`,source:`client`,title:`Open Settings`,icon:`ph:gear-duotone`,action:()=>{J(`~settings`)}},{id:`devframes:hide`,source:`client`,title:`Hide ${v().value.productName}`,icon:`ph:eye-slash-duotone`,when:`clientType == embedded`,action:()=>{window.dispatchEvent(new CustomEvent(le))}},{id:`devframes:dock-mode`,source:`client`,title:`Dock Mode`,icon:`ph:layout-duotone`,when:a===`embedded`?`clientType == embedded && !popupOpen`:void 0,children:[{id:`devframes:dock-mode:float`,source:`client`,title:`Float Mode`,icon:`ph:cards-three-duotone`,when:`!popupOpen`,action:()=>{T.value.mode=`float`}},{id:`devframes:dock-mode:edge`,source:`client`,title:`Edge Mode`,icon:`ph:square-half-bottom-duotone`,when:`!popupOpen`,action:()=>{T.value.mode=`edge`}}]}]);let be;s(()=>{be?.();let e=e=>({id:`devframes:docks:${e.id}`,source:`client`,title:e.title,icon:S(e.icon),action:()=>{Y(e.id)}}),t=ie(F.value),n=F.value.filter(e=>e.type!==`~builtin`).filter(e=>!(e.groupId&&t.has(e.groupId))).map(t=>{if(t.type!==`group`)return e(t);let n=re(F.value,t.id,W.value,{whenContext:K()}),r=n.length<=1?(n[0]?.[1]??[]).map(e):n.map(([n,r])=>({id:`devframes:docks:${t.id}:cat:${n}`,source:`client`,title:se(n),children:r.map(e)}));return{...e(t),children:r}});n.length>0&&(be=G.register({id:`devframes:docks`,source:`client`,title:`Docks`,icon:`ph:layout-duotone`,children:n}))});let $=I.selectedDockId==null?null:I.selectedDockRoute;H=c({panel:{store:T,session:E,isDragging:!1,isResizing:!1,isVertical:r(()=>T.value.position===`left`||T.value.position===`right`),consumeBootRoute:e=>{if($!=null&&e===I.selectedDockId){let e=$;return $=null,e}return null}},docks:{selectedId:z,selectedRoute:pe,selected:B,entries:F,entryToStateMap:y(V),groupedEntries:ye,categoryOrder:Q?{...n,...Q}:n,settings:U,getStateById:e=>V.get(e),switchEntry:J,toggleEntry:Y,register:me,update:he},commands:G,when:{get context(){return K()}},connection:{get status(){return C.status},get error(){return C.connectionError},events:C.events},renderers:y(i({context:()=>H,manifest:()=>M.value})),rpc:y(C),clientType:a}),ce(a,async e=>{let t=F.value.find(t=>t.id===e);return!t||t.type!==`action`?!1:J(t.id)});let xe=async()=>{C.isTrusted||await new Promise(e=>{let n=C.events.on(t.client.isTrustedUpdated,t=>{t&&(n(),e())})})};return(async()=>{let e=I.selectedDockId;if(!(!I.open||e==null)&&(await Promise.all([xe(),O,N]),R.value)){if(z.value!==e){R.value=!1;return}R.value=!1,await J(e)}})(),L.set(C,H),H}export{R as createDocksContext};

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./context-B4i6GqYV.js","./docks-DFXStXQt.js","./keybindings-Ck-Pl3aa.js","./DockStandalone-BVr1VMtK.js"])))=>i.map(i=>d[i]);
import{Ct as e,Dt as t,Et as n,Tt as r,at as i,c as a,l as o,n as s,p as c,s as l,y as u}from"./docks-DFXStXQt.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})(),String.fromCharCode;var d=/^[\s\w\0+.-]{2,}:([/\\]{1,2})/,f=/^[\s\w\0+.-]{2,}:([/\\]{2})?/,p=/^([/\\]\s*){2,}[^/\\]/,m=/\/$|\/\?|\/#/,h=/^\.?\//;function g(e,t={}){return typeof t==`boolean`&&(t={acceptRelative:t}),t.strict?d.test(e):f.test(e)||(t.acceptRelative?p.test(e):!1)}function _(e=``,t){return t?m.test(e):e.endsWith(`/`)}function v(e=``,t){if(!t)return(_(e)?e.slice(0,-1):e)||`/`;if(!_(e,!0))return e||`/`;let n=e,r=``,i=e.indexOf(`#`);i!==-1&&(n=e.slice(0,i),r=e.slice(i));let[a,...o]=n.split(`?`);return((a.endsWith(`/`)?a.slice(0,-1):a)||`/`)+(o.length>0?`?${o.join(`?`)}`:``)+r}function y(e=``,t){if(!t)return e.endsWith(`/`)?e:e+`/`;if(_(e,!0))return e||`/`;let n=e,r=``,i=e.indexOf(`#`);if(i!==-1&&(n=e.slice(0,i),r=e.slice(i),!n))return r;let[a,...o]=n.split(`?`);return a+`/`+(o.length>0?`?${o.join(`?`)}`:``)+r}function b(e,t){if(x(t)||g(e))return e;let n=v(t);if(e.startsWith(n)){let t=e[n.length];if(!t||t===`/`||t===`?`)return e}return ee(n,e)}function x(e){return!e||e===`/`}function S(e){return e&&e!==`/`}function ee(e,...t){let n=e||``;for(let e of t.filter(e=>S(e)))if(n){let t=e.replace(h,``);n=y(n)+t}else n=e;return n}function C(e,t){let n=e.match(f);return n||=e.match(/^\/{2,}/),n?t+e.slice(n[0].length):t+e}function te(e){return typeof e==`string`?`'${e}'`:new ie().serialize(e)}var ne=` _-,;:!?.'"()[]{}@*/\\&#%\`^+<=>|~$0123456789abcdefghijklmnopqrstuvwxyz`,w=(function(){let e=new Uint8Array(128);for(let t=0;t<69;t++)e[ne.charCodeAt(t)]=t+1;for(let t=65;t<=90;t++)e[t]=e[t+32];return e})();function re(e,t){if(e===t)return 0;let n=Math.min(e.length,t.length),r=0;for(let i=0;i<n;i++){let n=e.charCodeAt(i),a=t.charCodeAt(i);if(n===a)continue;let o=n<128&&w[n]?w[n]:n+128,s=a<128&&w[a]?w[a]:a+128;if(o!==s)return o<s?-1:1;r===0&&(r=n>a?-1:1)}return e.length===t.length?r:e.length<t.length?-1:1}var ie=(function(){class e{#e=new Map;compare(e,t){let n=typeof e,r=typeof t;return n===`string`&&r===`string`?re(e,t):n===`number`&&r===`number`?e-t:re(this.serialize(e,!0),this.serialize(t,!0))}serialize(e,t){if(e===null)return`null`;switch(typeof e){case`string`:return t?e:`'${e}'`;case`bigint`:return`${e}n`;case`object`:return this.$object(e);case`function`:return this.$function(e)}return String(e)}serializeObject(e){let t=Object.prototype.toString.call(e);if(t!==`[object Object]`)return this.serializeBuiltInType(t.length<10?`unknown:${t}`:t.slice(8,-1),e);let n=e.constructor,r=n===Object||n===void 0?``:n.name;if(r!==``&&globalThis[r]===n)return this.serializeBuiltInType(r,e);if(`toJSON`in e&&typeof e.toJSON==`function`){let t=e.toJSON();return r+(typeof t==`object`&&t?this.$object(t):`(${this.serialize(t)})`)}let i=Object.keys(e).sort(re),a=`${r}{`;for(let t=0;t<i.length;t++){let n=i[t];a+=`${n}:${this.serialize(e[n])}`,t<i.length-1&&(a+=`,`)}return a+`}`}serializeBuiltInType(e,t){let n=this[`$`+e];if(n)return n.call(this,t);if(typeof t.entries==`function`)return this.serializeObjectEntries(e,t.entries());throw Error(`Cannot serialize ${e}`)}serializeObjectEntries(e,t){let n=Array.from(t).sort((e,t)=>this.compare(e[0],t[0])),r=`${e}{`;for(let e=0;e<n.length;e++){let[t,i]=n[e];r+=`${this.serialize(t,!0)}:${this.serialize(i)}`,e<n.length-1&&(r+=`,`)}return r+`}`}$object(e){let t=this.#e.get(e);return t===void 0&&(this.#e.set(e,`#${this.#e.size}`),t=this.serializeObject(e),this.#e.set(e,t)),t}$function(e){let t=Function.prototype.toString.call(e);return t.slice(-15)===`[native code] }`?`${e.name||``}()[native]`:`${e.name}(${e.length})${t.replace(/\s*\n\s*/g,``)}`}$Array(e){let t=`[`;for(let n=0;n<e.length;n++)t+=this.serialize(e[n]),n<e.length-1&&(t+=`,`);return t+`]`}$Date(e){try{return`Date(${e.toISOString()})`}catch{return`Date(null)`}}$ArrayBuffer(e){return`ArrayBuffer[${new Uint8Array(e).join(`,`)}]`}$Set(e){return`Set${this.$Array(Array.from(e).sort((e,t)=>this.compare(e,t)))}`}$Map(e){return this.serializeObjectEntries(`Map`,e.entries())}}for(let t of[`Error`,`RegExp`,`URL`])e.prototype[`$`+t]=function(e){return`${t}(${e})`};for(let t of[`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float32Array`,`Float64Array`])e.prototype[`$`+t]=function(e){return`${t}[${e.join(`,`)}]`};for(let t of[`BigInt64Array`,`BigUint64Array`])e.prototype[`$`+t]=function(e){return`${t}[${e.join(`n,`)}${e.length>0?`n`:``}]`};return e})(),ae=[1779033703,-1150833019,1013904242,-1521486534,1359893119,-1694144372,528734635,1541459225],oe=[1116352408,1899447441,-1245643825,-373957723,961987163,1508970993,-1841331548,-1424204075,-670586216,310598401,607225278,1426881987,1925078388,-2132889090,-1680079193,-1046744716,-459576895,-272742522,264347078,604807628,770255983,1249150122,1555081692,1996064986,-1740746414,-1473132947,-1341970488,-1084653625,-958395405,-710438585,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,-2117940946,-1838011259,-1564481375,-1474664885,-1035236496,-949202525,-778901479,-694614492,-200395387,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,-2067236844,-1933114872,-1866530822,-1538233109,-1090935817,-965641998],se=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`,T=[],ce=class{_data=new le;_hash=new le([...ae]);_nDataBytes=0;_minBufferSize=0;finalize(e){e&&this._append(e);let t=this._nDataBytes*8,n=this._data.sigBytes*8;return this._data.words[n>>>5]|=128<<24-n%32,this._data.words[(n+64>>>9<<4)+14]=Math.floor(t/4294967296),this._data.words[(n+64>>>9<<4)+15]=t,this._data.sigBytes=this._data.words.length*4,this._process(),this._hash}_doProcessBlock(e,t){let n=this._hash.words,r=n[0],i=n[1],a=n[2],o=n[3],s=n[4],c=n[5],l=n[6],u=n[7];for(let n=0;n<64;n++){if(n<16)T[n]=e[t+n]|0;else{let e=T[n-15],t=(e<<25|e>>>7)^(e<<14|e>>>18)^e>>>3,r=T[n-2],i=(r<<15|r>>>17)^(r<<13|r>>>19)^r>>>10;T[n]=t+T[n-7]+i+T[n-16]}let d=s&c^~s&l,f=r&i^r&a^i&a,p=(r<<30|r>>>2)^(r<<19|r>>>13)^(r<<10|r>>>22),m=(s<<26|s>>>6)^(s<<21|s>>>11)^(s<<7|s>>>25),h=u+m+d+oe[n]+T[n],g=p+f;u=l,l=c,c=s,s=o+h|0,o=a,a=i,i=r,r=h+g|0}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+a|0,n[3]=n[3]+o|0,n[4]=n[4]+s|0,n[5]=n[5]+c|0,n[6]=n[6]+l|0,n[7]=n[7]+u|0}_append(e){typeof e==`string`&&(e=le.fromUtf8(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes}_process(e){let t,n=this._data.sigBytes/64;n=e?Math.ceil(n):Math.max((n|0)-this._minBufferSize,0);let r=n*16,i=Math.min(r*4,this._data.sigBytes);if(r){for(let e=0;e<r;e+=16)this._doProcessBlock(this._data.words,e);t=this._data.words.splice(0,r),this._data.sigBytes-=i}return new le(t,i)}},le=class e{words;sigBytes;constructor(e,t){e=this.words=e||[],this.sigBytes=t===void 0?e.length*4:t}static fromUtf8(t){let n=unescape(encodeURIComponent(t)),r=n.length,i=[];for(let e=0;e<r;e++)i[e>>>2]|=(n.charCodeAt(e)&255)<<24-e%4*8;return new e(i,r)}toBase64(){let e=[];for(let t=0;t<this.sigBytes;t+=3){let n=this.words[t>>>2]>>>24-t%4*8&255,r=this.words[t+1>>>2]>>>24-(t+1)%4*8&255,i=this.words[t+2>>>2]>>>24-(t+2)%4*8&255,a=n<<16|r<<8|i;for(let n=0;n<4&&t*8+n*6<this.sigBytes*8;n++)e.push(se.charAt(a>>>6*(3-n)&63))}return e.join(``)}concat(e){if(this.words[this.sigBytes>>>2]&=4294967295<<32-this.sigBytes%4*8,this.words.length=Math.ceil(this.sigBytes/4),this.sigBytes%4)for(let t=0;t<e.sigBytes;t++){let n=e.words[t>>>2]>>>24-t%4*8&255;this.words[this.sigBytes+t>>>2]|=n<<24-(this.sigBytes+t)%4*8}else for(let t=0;t<e.sigBytes;t+=4)this.words[this.sigBytes+t>>>2]=e.words[t>>>2];this.sigBytes+=e.sigBytes}};function ue(e){return new ce().finalize(e).toBase64()}function de(e){return ue(te(e))}function fe(e){return de(e)}function E(e,t){let n=`\x1B[${e}m`,r=`\x1B[${t}m`;return((e,...t)=>{if(Array.isArray(e)&&`raw`in e){let i=e,a=``;for(let e=0;e<i.length;e++)a+=i[e],e<t.length&&(a+=String(t[e]));return`${n}${a}${r}`}return`${n}${String(e)}${r}`})}var pe={blue:E(34,39),cyan:E(36,39),gray:E(90,39),green:E(32,39),red:E(31,39),yellow:E(33,39),bold:E(1,22),dim:E(2,22),reset:E(0,0),underline:E(4,24)},me=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`;function he(e=21){let t=``,n=e;for(;n--;)t+=me[Math.random()*64|0];return t}var ge=Symbol.for(`immer-nothing`),D=Symbol.for(`immer-draftable`),O=Symbol.for(`immer-state`),_e=[function(e){return`The plugin for '${e}' has not been loaded into Immer. To enable the plugin, import and call \`enable${e}()\` when initializing your application.`},function(e){return`produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${e}'`},`This object has been frozen and should not be mutated`,function(e){return`Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? `+e},`An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.`,`Immer forbids circular references`,"The first or second argument to `produce` must be a function","The third argument to `produce` must be a function or undefined","First argument to `createDraft` must be a plain object, an array, or an immerable object","First argument to `finishDraft` must be a draft returned by `createDraft`",function(e){return`'current' expects a draft, got: ${e}`},`Object.defineProperty() cannot be used on an Immer draft`,`Object.setPrototypeOf() cannot be used on an Immer draft`,`Immer only supports deleting array indices`,`Immer only supports setting array indices and the 'length' property`,function(e){return`'original' expects a draft, got: ${e}`}];function k(e,...t){{let n=_e[e],r=H(n)?n.apply(null,t):n;throw Error(`[Immer] ${r}`)}}var A=Object,j=A.getPrototypeOf,ve=`constructor`,ye=`prototype`,be=`configurable`,xe=`enumerable`,Se=`writable`,Ce=`value`,M=e=>!!e&&!!e[O];function N(e){return e?Ee(e)||R(e)||!!e[D]||!!e[ve]?.[D]||z(e)||B(e):!1}var we=A[ye][ve].toString(),Te=new WeakMap;function Ee(e){if(!e||!V(e))return!1;let t=j(e);if(t===null||t===A[ye])return!0;let n=A.hasOwnProperty.call(t,ve)&&t[ve];if(n===Object)return!0;if(!H(n))return!1;let r=Te.get(n);return r===void 0&&(r=Function.toString.call(n),Te.set(n,r)),r===we}function P(e,t,n=!0){F(e)===0?(n?Reflect.ownKeys(e):A.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function F(e){let t=e[O];return t?t.type_:R(e)?1:z(e)?2:B(e)?3:0}var I=(e,t,n=F(e))=>n===2?e.has(t):A[ye].hasOwnProperty.call(e,t),L=(e,t,n=F(e))=>n===2?e.get(t):e[t],De=(e,t,n,r=F(e))=>{r===2?e.set(t,n):r===3?e.add(n):e[t]=n};function Oe(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}var R=Array.isArray,z=e=>e instanceof Map,B=e=>e instanceof Set,V=e=>typeof e==`object`,H=e=>typeof e==`function`,ke=e=>typeof e==`boolean`;function Ae(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var je=e=>V(e)?e?.[O]:null,U=e=>e.copy_||e.base_,Me=e=>e.modified_?e.copy_:e.base_;function Ne(e,t){if(z(e))return new Map(e);if(B(e))return new Set(e);if(R(e))return Array[ye].slice.call(e);let n=Ee(e);if(t===!0||t===`class_only`&&!n){let t=A.getOwnPropertyDescriptors(e);delete t[O];let n=Reflect.ownKeys(t);for(let r=0;r<n.length;r++){let i=n[r],a=t[i];a[Se]===!1&&(a[Se]=!0,a[be]=!0),(a.get||a.set)&&(t[i]={[be]:!0,[Se]:!0,[xe]:a[xe],[Ce]:e[i]})}return A.create(j(e),t)}{let t=j(e);if(t!==null&&n)return{...e};let r=A.create(t);return A.assign(r,e)}}function Pe(e,t=!1){return Le(e)||M(e)||!N(e)?e:(F(e)>1&&A.defineProperties(e,{set:Ie,add:Ie,clear:Ie,delete:Ie}),A.freeze(e),t&&P(e,(e,t)=>{Pe(t,!0)},!1),e)}function Fe(){k(2)}var Ie={[Ce]:Fe};function Le(e){return e===null||!V(e)||A.isFrozen(e)}var Re=`MapSet`,ze=`Patches`,Be=`ArrayMethods`,Ve={};function W(e){let t=Ve[e];return t||k(0,e),t}var He=e=>!!Ve[e];function Ue(e,t){Ve[e]||(Ve[e]=t)}var G,We=()=>G,Ge=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:He(Re)?W(Re):void 0,arrayMethodsPlugin_:He(Be)?W(Be):void 0});function Ke(e,t){t&&(e.patchPlugin_=W(ze),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function qe(e){Je(e),e.drafts_.forEach(Xe),e.drafts_=null}function Je(e){e===G&&(G=e.parent_)}var Ye=e=>G=Ge(G,e);function Xe(e){let t=e[O];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function Ze(e,t){t.unfinalizedDrafts_=t.drafts_.length;let n=t.drafts_[0];if(e!==void 0&&e!==n){n[O].modified_&&(qe(t),k(4)),N(e)&&(e=Qe(t,e));let{patchPlugin_:r}=t;r&&r.generateReplacementPatches_(n[O].base_,e,t)}else e=Qe(t,n);return $e(t,e,!0),qe(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e===ge?void 0:e}function Qe(e,t){if(Le(t))return t;let n=t[O];if(!n)return st(t,e.handledSet_,e);if(!tt(n,e))return t;if(!n.modified_)return n.base_;if(!n.finalized_){let{callbacks_:t}=n;if(t)for(;t.length>0;)t.pop()(e);at(n,e)}return n.copy_}function $e(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&Pe(t,n)}function et(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var tt=(e,t)=>e.scope_===t,nt=[];function rt(e,t,n,r){let i=U(e),a=e.type_;if(r!==void 0&&L(i,r,a)===t){De(i,r,n,a);return}if(!e.draftLocations_){let t=e.draftLocations_=new Map;P(i,(e,n)=>{if(M(n)){let r=t.get(n)||[];r.push(e),t.set(n,r)}})}let o=e.draftLocations_.get(t)??nt;for(let e of o)De(i,e,n,a)}function it(e,t,n){e.callbacks_.push(function(r){let i=t;if(!i||!tt(i,r))return;r.mapSetPlugin_?.fixSetContents(i);let a=Me(i);rt(e,i.draft_??i,a,n),at(i,r)})}function at(e,t){if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){let{patchPlugin_:n}=t;if(n){let r=n.getPath(e);r&&n.generatePatches_(e,r,t)}et(e)}}function ot(e,t,n){let{scope_:r}=e;if(M(n)){let i=n[O];tt(i,r)&&i.callbacks_.push(function(){ht(e),rt(e,n,Me(i),t)})}else N(n)&&e.callbacks_.push(function(){let i=U(e);e.type_===3?i.has(n)&&st(n,r.handledSet_,r):L(i,t,e.type_)===n&&r.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&st(L(e.copy_,t,e.type_),r.handledSet_,r)})}function st(e,t,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||M(e)||t.has(e)||!N(e)||Le(e)?e:(t.add(e),P(e,(r,i)=>{if(M(i)){let t=i[O];tt(t,n)&&(De(e,r,Me(t),e.type_),et(t))}else N(i)&&st(i,t,n)}),e)}function ct(e,t){let n=R(e),r={type_:+!!n,scope_:t?t.scope_:We(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0},i=r,a=lt;n&&(i=[r],a=K);let{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,[s,r]}var lt={get(e,t){if(t===O)return e;let n=e.scope_.arrayMethodsPlugin_,r=e.type_===1&&typeof t==`string`;if(r&&n?.isArrayOperationMethod(t))return n.createMethodInterceptor(e,t);let i=U(e);if(!I(i,t,e.type_))return ft(e,i,t);let a=i[t];if(e.finalized_||!N(a)||r&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&Ae(t))return a;if(a===ut(e.base_,t)||dt(e,t,a)){ht(e);let n=e.type_===1?+t:t,r=_t(e.scope_,a,e,n);return e.copy_[n]=r}return a},has(e,t){return t in U(e)},ownKeys(e){return Reflect.ownKeys(U(e))},set(e,t,n){let r=pt(U(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){let r=ut(U(e),t),i=r?.[O];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_.set(t,!1),!0;if(Oe(n,r)&&(n!==void 0||I(e.base_,t,e.type_)))return!0;ht(e),mt(e)}return e.copy_[t]===n&&(n!==void 0||I(e.copy_,t,e.type_))||Number.isNaN(n)&&Number.isNaN(e.copy_[t])?!0:(e.copy_[t]=n,e.assigned_.set(t,!0),ot(e,t,n),!0)},deleteProperty(e,t){return ht(e),ut(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),mt(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let n=U(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{[Se]:!0,[be]:e.type_!==1||t!==`length`,[xe]:r[xe],[Ce]:n[t]}},defineProperty(){k(11)},getPrototypeOf(e){return j(e.base_)},setPrototypeOf(){k(12)}},K={};for(let e in lt){let t=lt[e];K[e]=function(){let e=arguments;return e[0]=e[0][0],t.apply(this,e)}}K.deleteProperty=function(e,t){return isNaN(parseInt(t))&&k(13),K.set.call(this,e,t,void 0)},K.set=function(e,t,n){return t!==`length`&&isNaN(parseInt(t))&&k(14),lt.set.call(this,e[0],t,n,e[0])};function ut(e,t){let n=e[O];return(n?U(n):e)[t]}function dt(e,t,n){return e.type_!==1||!e.allIndicesReassigned_||e.assigned_?.get(t)||!N(n)||n[O]?!1:e.baseRefs_.has(n)}function ft(e,t,n){let r=pt(t,n);return r?Ce in r?r[Ce]:r.get?.call(e.draft_):void 0}function pt(e,t){if(!(t in e))return;let n=j(e);for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=j(n)}}function mt(e){e.modified_||(e.modified_=!0,e.parent_&&mt(e.parent_))}function ht(e){e.copy_||=(e.assigned_=new Map,Ne(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var gt=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(e,t,n)=>{if(H(e)&&!H(t)){let n=t;t=e;let r=this;return function(e=n,...i){return r.produce(e,e=>t.call(this,e,...i))}}H(t)||k(6),n!==void 0&&!H(n)&&k(7);let r;if(N(e)){let i=Ye(this),a=_t(i,e,void 0),o=!0;try{r=t(a),o=!1}finally{o?qe(i):Je(i)}return Ke(i,n),Ze(r,i)}if(!e||!V(e)){if(r=t(e),r===void 0&&(r=e),r===ge&&(r=void 0),this.autoFreeze_&&Pe(r,!0),n){let t=[],i=[];W(ze).generateReplacementPatches_(e,r,{patches_:t,inversePatches_:i}),n(t,i)}return r}k(1,e)},this.produceWithPatches=(e,t)=>{if(H(e))return(t,...n)=>this.produceWithPatches(t,t=>e(t,...n));let n,r;return[this.produce(e,t,(e,t)=>{n=e,r=t}),n,r]},ke(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),ke(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),ke(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){N(e)||k(8),M(e)&&(e=vt(e));let t=Ye(this),n=_t(t,e,void 0);return n[O].isManual_=!0,Je(t),n}finishDraft(e,t){let n=e&&e[O];(!n||!n.isManual_)&&k(9);let{scope_:r}=n;return Ke(r,t),Ze(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){let r=t[n];if(r.path.length===0&&r.op===`replace`){e=r.value;break}}n>-1&&(t=t.slice(n+1));let r=W(ze).applyPatches_;return M(e)?r(e,t):this.produce(e,e=>r(e,t))}};function _t(e,t,n,r){let[i,a]=z(t)?W(Re).proxyMap_(t,n):B(t)?W(Re).proxySet_(t,n):ct(t,n);return(n?.scope_??We()).drafts_.push(i),a.callbacks_=n?.callbacks_??[],a.key_=r,n&&r!==void 0?it(n,a,r):a.callbacks_.push(function(e){e.mapSetPlugin_?.fixSetContents(a);let{patchPlugin_:t}=e;a.modified_&&t&&t.generatePatches_(a,[],e)}),i}function vt(e){return M(e)||k(10,e),yt(e)}function yt(e){if(!N(e)||Le(e))return e;let t=e[O],n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=Ne(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=Ne(e,!0);return P(n,(e,t)=>{De(n,e,yt(t))},r),t&&(t.finalized_=!1),n}function bt(){_e.push(`Sets cannot have "replace" patches.`,function(e){return`Unsupported patch operation: `+e},function(e){return`Cannot apply patch, path doesn't resolve: `+e},`Patching reserved attributes like __proto__, prototype and constructor is not allowed`);function e(n,r=[]){if(n.key_!==void 0){let e=n.parent_.copy_??n.parent_.base_,t=je(L(e,n.key_)),i=L(e,n.key_);if(i===void 0||i!==n.draft_&&i!==n.base_&&i!==n.copy_||t!=null&&t.base_!==n.base_)return null;let a=n.parent_.type_===3,o;if(a){let e=n.parent_;o=Array.from(e.drafts_.keys()).indexOf(n.key_)}else o=n.key_;if(!(a&&e.size>o||I(e,o)))return null;r.push(o)}if(n.parent_)return e(n.parent_,r);r.reverse();try{t(n.copy_,r)}catch{return null}return r}function t(e,t){let n=e;for(let e=0;e<t.length-1;e++){let r=t[e];if(n=L(n,r),!V(n)||n===null)throw Error(`Cannot resolve path at '${t.join(`/`)}'`)}return n}let n=`replace`,r=`remove`;function i(e,t,n){if(e.scope_.processedForPatches_.has(e))return;e.scope_.processedForPatches_.add(e);let{patches_:r,inversePatches_:i}=n;switch(e.type_){case 0:case 2:return o(e,t,r,i);case 1:return a(e,t,r,i);case 3:return s(e,t,r,i)}}function a(e,t,i,a){let{base_:o,assigned_:s}=e,c=e.copy_;c.length<o.length&&([o,c]=[c,o],[i,a]=[a,i]);let l=e.allIndicesReassigned_===!0;for(let e=0;e<o.length;e++){let r=c[e],u=o[e];if((l||s?.get(e.toString()))&&r!==u){let o=r?.[O];if(o&&o.modified_)continue;let s=t.concat([e]);i.push({op:n,path:s,value:d(r)}),a.push({op:n,path:s,value:d(u)})}}for(let e=o.length;e<c.length;e++){let n=t.concat([e]);i.push({op:`add`,path:n,value:d(c[e])})}for(let e=c.length-1;o.length<=e;--e){let n=t.concat([e]);a.push({op:r,path:n})}}function o(e,t,i,a){let{base_:o,copy_:s,type_:c}=e;P(e.assigned_,(e,l)=>{let u=L(o,e,c),f=L(s,e,c),p=l?I(o,e)?n:`add`:r;if(u===f&&p===n)return;let m=t.concat(e);i.push(p===r?{op:p,path:m}:{op:p,path:m,value:d(f)}),a.push(p===`add`?{op:r,path:m}:p===r?{op:`add`,path:m,value:d(u)}:{op:n,path:m,value:d(u)})})}function s(e,t,n,i){let{base_:a,copy_:o}=e,s=0;a.forEach(e=>{if(!o.has(e)){let a=t.concat([s]);n.push({op:r,path:a,value:e}),i.unshift({op:`add`,path:a,value:e})}s++}),s=0,o.forEach(e=>{if(!a.has(e)){let a=t.concat([s]);n.push({op:`add`,path:a,value:e}),i.unshift({op:r,path:a,value:e})}s++})}function c(e,t,r){let{patches_:i,inversePatches_:a}=r;i.push({op:n,path:[],value:t===ge?void 0:t}),a.push({op:n,path:[],value:e})}function l(e,t){return t.forEach(t=>{let{path:i,op:a}=t,o=e;for(let e=0;e<i.length-1;e++){let t=F(o),n=i[e];typeof n!=`string`&&typeof n!=`number`&&(n=``+n),(t===0||t===1)&&(n===`__proto__`||n===ve)&&k(19),H(o)&&n===ye&&k(19),o=L(o,n),(o===null||!V(o))&&k(18,i.join(`/`))}let s=F(o),c=u(t.value),l=i[i.length-1];switch(a){case n:switch(s){case 2:return o.set(l,c);case 3:k(16);default:return o[l]=c}case`add`:switch(s){case 1:return l===`-`?o.push(c):o.splice(l,0,c);case 2:return o.set(l,c);case 3:return o.add(c);default:return o[l]=c}case r:switch(s){case 1:return o.splice(l,1);case 2:return o.delete(l);case 3:return o.delete(t.value);default:return delete o[l]}default:k(17,a)}}),e}function u(e){if(!N(e))return e;if(R(e))return e.map(u);if(z(e))return new Map(Array.from(e.entries()).map(([e,t])=>[e,u(t)]));if(B(e))return new Set(Array.from(e).map(u));let t=Object.create(j(e));for(let n in e)t[n]=u(e[n]);return I(e,D)&&(t[D]=e[D]),t}function d(e){return M(e)?u(e):e}Ue(ze,{applyPatches_:l,generatePatches_:i,generateReplacementPatches_:c,getPath:e})}var xt=new gt,St=xt.produce,Ct=xt.produceWithPatches.bind(xt),wt=xt.applyPatches.bind(xt),Tt=1e3;function Et(e,t){if(e.add(t),e.size>Tt){let t=e.values().next().value;t!==void 0&&e.delete(t)}}function Dt(e){let{enablePatches:t=!1}=e;t&&bt();let r=n(),i=e.initialValue,a=new Set;return{on:r.on,value:()=>i,patch:(e,t=he())=>{a.has(t)||(bt(),i=wt(i,e),Et(a,t),r.emit(`updated`,i,void 0,t))},mutate:(e,n=he())=>{if(!a.has(n)){if(Et(a,n),t){let[t,a]=Ct(i,e);i=t,r.emit(`updated`,i,a,n)}else i=St(i,e),r.emit(`updated`,i,void 0,n)}},syncIds:a}}var Ot=typeof self==`object`?self:globalThis,kt=new Set([`Error`,`EvalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`,`AggregateError`]),At=new Set([`Boolean`,`Number`,`String`,`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float16Array`,`Float32Array`,`Float64Array`,`BigInt64Array`,`BigUint64Array`]);function jt(e,t){let n=(t,n)=>(e.set(n,t),t),r=i=>{if(e.has(i))return e.get(i);let[a,o]=t[i];switch(a){case 0:case-1:return n(o,i);case 1:{let e=n([],i);for(let t of o)e.push(r(t));return e}case 2:{let e=n({},i);for(let[t,n]of o)e[r(t)]=r(n);return e}case 3:return n(new Date(o),i);case 4:{let{source:e,flags:t}=o;return n(new RegExp(e,t),i)}case 5:{let e=n(new Map,i);for(let[t,n]of o)e.set(r(t),r(n));return e}case 6:{let e=n(new Set,i);for(let t of o)e.add(r(t));return e}case 7:{let{name:e,message:t}=o,r=kt.has(e)?Ot[e]:void 0;return n(new(r??Ot.Error)(t),i)}case 8:return n(BigInt(o),i);case`BigInt`:return n(Object(BigInt(o)),i);case`ArrayBuffer`:return n(new Uint8Array(o).buffer,o);case`DataView`:{let{buffer:e}=new Uint8Array(o);return n(new DataView(e),o)}}if(typeof a==`string`&&At.has(a))return n(new Ot[a](o),i);throw TypeError(`unable to deserialize unsafe or unknown type: ${String(a)}`)};return r}function Mt(e){return jt(new Map,e)(0)}var q=``,{toString:Nt}={},{keys:Pt}=Object;function Ft(e){let t=typeof e;if(t!==`object`||!e)return[0,t];let n=Nt.call(e).slice(8,-1);switch(n){case`Array`:return[1,q];case`Object`:return[2,q];case`Date`:return[3,q];case`RegExp`:return[4,q];case`Map`:return[5,q];case`Set`:return[6,q];case`DataView`:return[1,n]}return n.includes(`Array`)?[1,n]:n.includes(`Error`)?[7,n]:[2,n]}function It([e,t]){return e===0&&(t===`function`||t===`symbol`)}function Lt(e,t,n,r){let i=(e,t)=>{let i=r.push(e)-1;return n.set(t,i),i},a=r=>{if(n.has(r))return n.get(r);let[o,s]=Ft(r);switch(o){case 0:{let t=r;switch(s){case`bigint`:o=8,t=r.toString();break;case`function`:case`symbol`:if(e)throw TypeError(`unable to serialize ${s}`);t=null;break;case`undefined`:return i([-1],r)}return i([o,t],r)}case 1:{if(s){let e=r;return s===`DataView`?e=new Uint8Array(r.buffer):s===`ArrayBuffer`&&(e=new Uint8Array(r)),i([s,[...e]],r)}let e=[],t=i([o,e],r);for(let t of r)e.push(a(t));return t}case 2:{if(s)switch(s){case`BigInt`:return i([s,r.toString()],r);case`Boolean`:case`Number`:case`String`:return i([s,r.valueOf()],r)}if(t&&`toJSON`in r)return a(r.toJSON());let n=[],c=i([o,n],r);for(let t of Pt(r))(e||!It(Ft(r[t])))&&n.push([a(t),a(r[t])]);return c}case 3:return i([o,r.toISOString()],r);case 4:{let{source:e,flags:t}=r;return i([o,{source:e,flags:t}],r)}case 5:{let t=[],n=i([o,t],r);for(let[n,i]of r)(e||!(It(Ft(n))||It(Ft(i))))&&t.push([a(n),a(i)]);return n}case 6:{let t=[],n=i([o,t],r);for(let n of r)(e||!It(Ft(n)))&&t.push(a(n));return n}}let{message:c}=r;return i([o,{name:s,message:c}],r)};return a}function Rt(e,t={}){let n=[];return Lt(!(t.json||t.lossy),!!t.json,new Map,n)(e),n}var{parse:zt,stringify:Bt}=JSON,Vt={json:!0,lossy:!0};function Ht(e){return Mt(zt(e))}function Ut(e){return Bt(Rt(e,Vt))}function Wt(e){return Mt(e)}function Gt(e){return Ut(e)}function Kt(e){return Ht(e)}var qt=256,Jt=class extends Error{name=`StreamClosedError`};function Yt(e={}){let t=e.id??he(),r=Math.max(0,e.replayWindow??0),i=n(),a=new AbortController,o=[],s=!1,c=0;function l(e){if(s)throw new Jt(`Cannot write to a closed stream "${t}"`);c+=1,r>0&&(o.push({seq:c,chunk:e}),o.length>r&&o.splice(0,o.length-r)),i.emit(`chunk`,c,e)}function u(e){if(s)return;s=!0;let t=Zt(e);a.abort(e),i.emit(`end`,t)}function d(){s||(s=!0,a.signal.aborted||a.abort(`stream closed`),i.emit(`end`,void 0))}function f(e){s||a.signal.aborted||a.abort(e??`aborted`)}let p=new WritableStream({write(e){l(e)},close(){d()},abort(e){u(e)}});return{id:t,signal:a.signal,get closed(){return s},get lastSeq(){return c},write:l,error:u,close:d,abort:f,writable:p,events:i,buffer:o}}function Xt(e={}){let t=e.id??he(),n=Math.max(1,e.highWaterMark??qt),r=[],i=0,a=!1,o=!1,s,c,l,u;function d(){if(c){if(r.length>0){let e=r.shift(),t=c;c=void 0,t.resolve({value:e,done:!1});return}if(a){let e=c;if(c=void 0,s){let t=Error(s.message);t.name=s.name,e.reject(t)}else e.resolve({value:void 0,done:!0})}}}function f(){if(l){for(;r.length>0;){let e=r.shift();try{l.enqueue(e)}catch{break}}if(a&&l){try{if(s){let e=Error(s.message);e.name=s.name,l.error(e)}else l.close()}catch{}l=void 0}}}function p(t,s){if(!(a||o)&&!(t<=i)){if(i=t,r.push(s),r.length>n){let t=r.length-n;r.splice(0,t),e.onOverflow?.(t)}d(),u&&f()}}function m(e){a||(a=!0,s=e,d(),u&&f())}function h(){o||a||(o=!0,e.onCancel?.(),m(void 0))}function g(){return u||(u=new ReadableStream({start(e){l=e,f()},cancel(){h()}}),u)}return{id:t,get cancelled(){return o},get done(){return a},get lastSeenSeq(){return i},get readable(){return g()},cancel:h,_push:p,_end:m,[Symbol.asyncIterator](){return{next(){if(r.length>0)return Promise.resolve({value:r.shift(),done:!1});if(a){if(s){let e=Error(s.message);return e.name=s.name,Promise.reject(e)}return Promise.resolve({value:void 0,done:!0})}return new Promise((e,t)=>{c={resolve:e,reject:t}})},return(){return h(),Promise.resolve({value:void 0,done:!0})}}}}}function Zt(e){if(e instanceof Error)return{name:e.name||`Error`,message:e.message};if(typeof e==`string`)return{name:`Error`,message:e};try{return{name:`Error`,message:JSON.stringify(e)}}catch{return{name:`Error`,message:String(e)}}}function Qt(e,...t){return typeof e==`function`?e(...t):e}var $t=Error.captureStackTrace,en=class e extends Error{name;code;docs;fix;sources;get why(){return this.message}constructor(t,n=e){super(t.why,{cause:t.cause}),this.code=this.name=t.code,this.fix=t.fix,this.docs=t.docs,this.sources=t.sources,$t?.(this,n)}toJSON(){return{name:this.name,why:this.why,fix:this.fix,docs:this.docs,sources:this.sources,cause:this.cause,stack:this.stack}}};function tn(e,t){return typeof e==`string`?`${e}/${t.toLowerCase()}`:e?.(t)}function nn(e){let t=e.reporters??[],n={},{docsBase:r}=e;for(let i of Object.keys(e.codes)){let a=e.codes[i],o=a.docs===!1?void 0:a.docs||tn(r,i),s=(e={},n={})=>{let r=new en({code:i,why:Qt(a.why,e),fix:Qt(a.fix,e),docs:o,cause:e.cause,sources:e.sources},s);for(let e of t)e(r,n);return r};n[i]=s}return n}function rn(e){return t=>{let n=`${e.bold(e.red(`[${t.name}]`))} ${t.message}`,r=[];return t.fix&&r.push(`${e.dim(`fix:`)} ${t.fix}`),t.sources?.length&&r.push(`${e.dim(`sources:`)} ${t.sources.join(`, `)}`),t.docs&&r.push(`${e.dim(`see:`)} ${e.cyan(t.docs)}`),r.length===0?n:[n,...r.map((t,n)=>`${e.dim(n<r.length-1?`├▶`:`╰▶`)} ${t}`)].join(`
`)}}function an(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}var on=Math.random.bind(Math),sn=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`;function cn(e=21){let t=``,n=e;for(;n--;)t+=sn[on()*64|0];return t}var ln=6e4,un=e=>e,dn=un,{clearTimeout:fn,setTimeout:pn}=globalThis;function mn(e,t){let{post:n,on:r,off:i=()=>{},eventNames:a=[],serialize:o=un,deserialize:s=dn,resolver:c,bind:l=`rpc`,timeout:u=ln,proxify:d=!0}=t,f=!1,p=new Map,m,h;async function g(e,r,i,a){if(f)throw Error(`[birpc] rpc is closed, cannot call "${e}"`);let s={m:e,a:r,t:`q`};a&&(s.o=!0);let c=async e=>n(o(e));if(i){await c(s);return}if(m)try{await m}finally{m=void 0}let{promise:l,resolve:d,reject:g}=an(),_=cn();s.i=_;let v;async function y(n=s){return u>=0&&(v=pn(()=>{try{if(t.onTimeoutError?.call(h,e,r)!==!0)throw Error(`[birpc] timeout on calling "${e}"`)}catch(e){g(e)}p.delete(_)},u),typeof v==`object`&&(v=v.unref?.())),p.set(_,{resolve:d,reject:g,timeoutId:v,method:e}),await c(n),l}try{t.onRequest?await t.onRequest.call(h,s,y,d):await y()}catch(e){if(t.onGeneralError?.call(h,e)!==!0)throw e;return}finally{fn(v),p.delete(_)}return l}let _={$call:(e,...t)=>g(e,t,!1),$callOptional:(e,...t)=>g(e,t,!1,!0),$callEvent:(e,...t)=>g(e,t,!0),$callRaw:e=>g(e.method,e.args,e.event,e.optional),$rejectPendingCalls:y,get $closed(){return f},get $meta(){return t.meta},$close:v,$functions:e};h=d?new Proxy({},{get(t,n){if(Object.hasOwn(_,n))return _[n];if(n===`then`&&!a.includes(`then`)&&!(`then`in e))return;let r=(...e)=>g(n,e,!0);if(a.includes(n))return r.asEvent=r,r;let i=(...e)=>g(n,e,!1);return i.asEvent=r,i}}):_;function v(e){f=!0,p.forEach(({reject:t,method:n})=>{let r=Error(`[birpc] rpc is closed, cannot call "${n}"`);if(e)return e.cause??=r,t(e);t(r)}),p.clear(),i(b)}function y(e){let t=Array.from(p.values()).map(({method:t,reject:n})=>e?e({method:t,reject:n}):n(Error(`[birpc]: rejected pending call "${t}".`)));return p.clear(),t}async function b(r,...i){let a;try{a=s(r)}catch(e){if(t.onGeneralError?.call(h,e)!==!0)throw e;return}if(a.t===`q`){let{m:r,a:s,o:u}=a,d,f,p=await(c?c.call(h,r,e[r]):e[r]);if(u&&(p||=()=>void 0),!p)f=Error(`[birpc] function "${r}" not found`);else try{d=await p.apply(l===`rpc`?h:e,s)}catch(e){f=e}if(a.i){if(f&&t.onFunctionError&&t.onFunctionError.call(h,f,r,s)===!0)return;if(!f)try{await n(o({t:`s`,i:a.i,r:d}),...i);return}catch(e){if(f=e,t.onGeneralError?.call(h,e,r,s)!==!0)throw e}try{await n(o({t:`s`,i:a.i,e:f}),...i)}catch(e){if(t.onGeneralError?.call(h,e,r,s)!==!0)throw e}}}else{let{i:e,r:t,e:n}=a,r=p.get(e);r&&(fn(r.timeoutId),n?r.reject(n):r.resolve(t)),p.delete(e)}}return m=r(b),h}var hn=`__connection.json`,gn=`__DEVFRAME_CONNECTION__`,_n=`x-birpc-session`,vn=`__rpc-dump/index.json`,yn=`devframe:services`,bn=`devframe_otp`,xn=`devframe_auth_token`;t.postMessage.remoteAssetsError;var Sn=class{cacheMap=new Map;options;keySerializer;constructor(e){this.options=e,this.keySerializer=e.keySerializer||(e=>fe(e))}updateOptions(e){this.options={...this.options,...e}}cached(e,t){let n=this.cacheMap.get(e);if(n)return n.get(this.keySerializer(t))}has(e,t){return this.cacheMap.get(e)?.has(this.keySerializer(t))??!1}apply(e,t){let n=this.cacheMap.get(e.m)||new Map;n.set(this.keySerializer(e.a),t),this.cacheMap.set(e.m,n)}validate(e){return this.options.functions.includes(e)}clear(e){e?this.cacheMap.delete(e):this.cacheMap.clear()}},Cn=rn(pe);function wn(e,{method:t=`warn`}={}){console[t](Cn(e))}function Tn(e){return nn({...e,reporters:[wn,...e.reporters??[]]})}var J=Tn({docsBase:`https://devfra.me/errors`,codes:{DF0019:{why:e=>`RPC function "${e.name}" has \`agent\` set but \`jsonSerializable\` is not \`true\` — MCP requires JSON-serializable data.`,fix:"Set `jsonSerializable: true` if the payload is JSON-safe, or remove `agent` to keep it RPC-only."},DF0020:{why:e=>`RPC function "${e.name}" declares \`jsonSerializable: true\` but the value at "${e.path}" is a ${e.type}.`,fix:"Either drop `jsonSerializable: true` (falls back to structured-clone) or change the value to a JSON-safe shape."},DF0021:{why:e=>`RPC function "${e.name}" is already registered`,fix:"Use the `force` parameter to overwrite an existing registration."},DF0022:{why:e=>`RPC function "${e.name}" is not registered. Use register() to add new functions.`},DF0023:{why:e=>`RPC function "${e.name}" is not registered`},DF0024:{why:e=>`Either handler or setup function must be provided for RPC function "${e.name}"`},DF0025:{why:e=>`Function "${e.name}" not found in dump store`},DF0026:{why:e=>`No dump match for "${e.name}" with args: ${e.args}`},DF0027:{why:e=>`Function "${e.name}" with type "${e.type}" cannot have dump configuration. Only "static" and "query" types support dumps.`},DF0028:{why:e=>`Function "${e.name}" with type "${e.type}" cannot use \`snapshot: true\`. Only "query" functions support this sugar; "static" functions have equivalent default behavior already.`,fix:"Remove `snapshot: true`, or change the function type to `query`."},DF0043:{why:e=>`RPC function "${e.name}" received an invalid argument at position ${e.index}: ${e.issues}`,fix:"Pass a value that satisfies the `args` schema declared for this function."},DF0044:{why:e=>`RPC function "${e.name}" returned a value that failed its \`returns\` schema: ${e.issues}`,fix:"Make the handler return a value that satisfies the `returns` schema, or relax the schema."}}});async function En(e,t){let n=e[`~standard`].validate(t);return n instanceof Promise?await n:n}function Dn(e){return e.map(e=>{let t=e.path?.map(e=>typeof e==`object`?e.key:e).join(`.`);return t?`${t}: ${e.message}`:e.message}).join(`; `)}async function On(e,t,n){let r=n.slice();if(!t||t.length===0)return r;for(let r=0;r<t.length;r++){let i=t[r];if(!i)continue;let a=await En(i,n[r]);if(a.issues)throw J.DF0043({name:e,index:r,issues:Dn(a.issues)})}return r}async function kn(e,t,n){if(!t)return n;let r=await En(t,n);if(r.issues)throw J.DF0044({name:e,issues:Dn(r.issues)});return n}async function An(e,t){if(!e.setup)return{};if(typeof t==`object`&&t){e.__cache??=new WeakMap;let n=e.__cache,r=n.get(t);return r||(r=Promise.resolve(e.setup(t)),r.catch(()=>{n.get(t)===r&&n.delete(t)}),n.set(t,r)),await r}if(!e.__promise){let n=Promise.resolve(e.setup(t));n.catch(()=>{e.__promise===n&&(e.__promise=void 0)}),e.__promise=n}return await e.__promise}async function jn(e,t){let n=e.handler;if(!n){let r=await An(e,t);if(!r.handler)throw J.DF0024({name:e.name});n=r.handler}let r=e.args,i=e.returns;if(!r&&!i)return n;let a=n;return async(...t)=>{let n=await On(e.name,r,t),o=await a(...n);return await kn(e.name,i,o)}}var Mn=class{context;definitions=new Map;functions;_onChanged=[];constructor(e){this.context=e;let t=this.definitions,n=this;this.functions=new Proxy({},{get(e,r){let i=t.get(r);if(i)return jn(i,n.context)},has(e,n){return t.has(n)},getOwnPropertyDescriptor(e,n){return{value:t.get(n)?.handler,configurable:!0,enumerable:!0}},ownKeys(){return Array.from(t.keys())}})}register(e,t=!1){if(this.definitions.has(e.name)&&!t)throw J.DF0021({name:e.name});Nn(e),this.definitions.set(e.name,e),this._onChanged.forEach(t=>t(e.name))}update(e,t=!1){if(!this.definitions.has(e.name)&&!t)throw J.DF0022({name:e.name});Nn(e),this.definitions.set(e.name,e),this._onChanged.forEach(t=>t(e.name))}onChanged(e){return this._onChanged.push(e),()=>{let t=this._onChanged.indexOf(e);t!==-1&&this._onChanged.splice(t,1)}}async getHandler(e){return await jn(this.definitions.get(e),this.context)}getSchema(e){let t=this.definitions.get(e);if(!t)throw J.DF0023({name:String(e)});return{args:t.args,returns:t.returns}}has(e){return this.definitions.has(e)}get(e){return this.definitions.get(e)}list(){return Array.from(this.definitions.keys())}};function Nn(e){if(e.agent&&e.jsonSerializable!==!0)throw J.DF0019({name:e.name})}function Pn(e,t=``){return JSON.stringify(e,function(e,n){let r=this,i=r==null?n:r[e];if(i===void 0){if(Array.isArray(r))throw Y(t,`undefined`,r,e);return n}if(i===null)return n;if(typeof i==`bigint`)throw Y(t,`BigInt`,r,e);if(typeof i==`object`){if(i instanceof Map)throw Y(t,`Map`,r,e);if(i instanceof Set)throw Y(t,`Set`,r,e);if(i instanceof Date)throw Y(t,`Date`,r,e);if(Array.isArray(i))return n;let a=Object.getPrototypeOf(i);if(a!==null&&a!==Object.prototype)throw Y(t,i.constructor?.name??`class instance`,r,e)}return n})}function Y(e,t,n,r){let i=Fn(n,r);return J.DF0020({name:e||`<anonymous>`,type:t,path:i})}function Fn(e,t){return Array.isArray(e)?`[${t}]`:t===``?`<root>`:t}var In=`__DEVFRAME_CONNECTION_META__`,Ln=`__DEVFRAME_CONNECTION_AUTH_TOKEN__`;function Rn(e){let t=[()=>window?.[e],()=>globalThis?.[e],()=>parent.window?.[e]];for(let e of t)try{let t=e();if(t)return t}catch{}}function zn(){return Rn(gn)}function Bn(){return Rn(In)}function X(e){if(e)return e;try{let e=localStorage.getItem(Ln);if(e)return e}catch{}return Rn(Ln)}function Vn(e){globalThis[gn]=e,globalThis[In]={...e.connectionMeta,baseUrl:e.metaBaseUrl},e.authToken&&Hn(e.authToken)}function Hn(e){try{localStorage.setItem(Ln,e)}catch{}globalThis[Ln]=e;let t=zn();t&&(globalThis[gn]={...t,authToken:e})}function Un(e){let t=b(hn,e);try{return new URL(t,globalThis.location?.href).href}catch{return t}}function Wn(e,t){return t&&t!==e.authToken?{...e,authToken:t}:e}function Gn(){let e=zn();if(e)return Wn(e,X()??e.authToken??e.connectionMeta.authToken);let t=Bn();if(t)return{connectionMeta:t,metaBaseUrl:t.baseUrl??Un(`./`),authToken:X(t.authToken)}}async function Kn(e={}){if(e.connection){let t=Wn(e.connection,X(e.authToken??e.connection.authToken??e.connection.connectionMeta.authToken));return Vn(t),t}let t=Array.isArray(e.baseURL)?e.baseURL:[e.baseURL??`./`];if(e.connectionMeta){let n={connectionMeta:e.connectionMeta,metaBaseUrl:Un(t[0]??`./`),authToken:X(e.authToken??e.connectionMeta.authToken)};return Vn(n),n}let n=Gn();if(n){let t=Wn(n,X(e.authToken??n.authToken??n.connectionMeta.authToken));return Vn(t),t}let r=[];for(let n of t){let t=b(hn,n),i=Un(n);try{let n=await fetch(t);if(!n.ok)throw Error(`Failed to fetch connection meta from ${i}: ${n.status}`);let r=await n.json(),a={connectionMeta:r,metaBaseUrl:n.url||i,authToken:X(e.authToken??r.authToken)};return Vn(a),a}catch(e){r.push(e)}}throw Error(`Failed to get connection meta from ${t.join(`, `)}`,{cause:r})}var Z=class extends Error{name=`DevframeConnectionError`;kind;constructor(e,t,n){super(t,n),this.kind=e}};function qn(e=bn){try{let t=globalThis.location?.hash?.replace(/^#/,``)??``;return new URLSearchParams(t).get(e)||void 0}catch{return}}function Jn(e){try{let t=new URL(globalThis.location.href),n=new URLSearchParams(t.hash.replace(/^#/,``));if(!n.has(e))return;n.delete(e),t.hash=n.toString(),globalThis.history?.replaceState(globalThis.history.state,``,t.href)}catch{}}function Yn(e=bn){let t=qn(e);return t&&Jn(e),t}async function Xn(e,t={}){let n=Yn(t.param??`devframe_otp`);return n?e.isTrusted?!0:e.requestTrustWithCode(n):!1}function Zn(e){let t={},n=new WeakMap,r,i=()=>(r??=e.sharedState.get(yn,{initialValue:{}}).then(e=>(t=e.value(),e.on(`updated`,e=>{t=e}),e)),r);return i(),{state:i,has:e=>e in t,keys:()=>Object.keys(t),get:r=>{let i=t[r];if(!i)return;let a=n.get(i);return a||(a={...i,rpc:e.scope(i.scope).rpc},n.set(i,a)),a}}}function Qn(e){let n=new Map,r=new Map,i=new Map,a=new Set,o=e.connectionMeta.backend===`static`;function s(e,t){let n=i.get(e);return n&&typeof n==`object`&&!Array.isArray(n)&&typeof t==`object`&&!Array.isArray(t)?{...n,...t}:t}e.client.register({name:t.broadcast.clientStateUpdated,type:`event`,handler:(e,t,r)=>{let i=n.get(e);!i||i.syncIds.has(r)||i.mutate(()=>s(e,t),r)}}),e.client.register({name:t.broadcast.clientStatePatch,type:`event`,handler:(e,t,r)=>{let i=n.get(e);!i||i.syncIds.has(r)||i.patch(t,r)}});function c(t,n){let r=[];return r.push(n.on(`updated`,(n,r,i)=>{o||(r?e.callEvent(`devframe:rpc:server-state:patch`,t,r,i):e.callEvent(`devframe:rpc:server-state:set`,t,n,i))})),()=>{for(let e of r)e()}}return{keys:()=>Array.from(n.keys()),onKeyAdded(e){return a.add(e),()=>{a.delete(e)}},delete(e){let t=r.get(e);r.delete(e);let a=n.delete(e);return i.delete(e),t?.(),a},get:async(l,u)=>{if(u?.initialValue!==void 0&&i.set(l,u.initialValue),n.has(l))return n.get(l);let d=Dt({initialValue:u?.initialValue,enablePatches:!1});async function f(){if(o||e.callEvent(`devframe:rpc:server-state:subscribe`,l),u?.initialValue!==void 0){n.set(l,d);for(let e of a)e(l);return e.call(`devframe:rpc:server-state:get`,l).then(e=>{e!==void 0&&d.mutate(()=>s(l,e))}).catch(e=>{console.error(`Error getting server state`,e)}),r.set(l,c(l,d)),d}{let t=await e.call(`devframe:rpc:server-state:get`,l);d.mutate(()=>s(l,t)),n.set(l,d);for(let e of a)e(l);return r.set(l,c(l,d)),d}}return new Promise(n=>{if(e.isTrusted)f().then(n);else{n(d);let r=!1;e.events.on(t.client.isTrustedUpdated,e=>{e&&!r&&(r=!0,f())})}})}}}var $n=new Map;function er(e=$n){let t=new Map;return{serialize:n=>{let r;return n.t===`q`?r=n.m:(r=t.get(n.i),t.delete(n.i)),!(n.t===`s`&&`e`in n)&&r&&e.get(r)?.jsonSerializable===!0?Pn(n,r??``):`s:${Gt(n)}`},deserialize:e=>{let n=e.startsWith(`s:`)?Kt(e.slice(2)):JSON.parse(e);return n.t===`q`&&n.i&&n.m&&t.set(n.i,n.m),n}}}function tr(){}function nr(e){let{onConnected:t=tr,onError:n=tr,onDisconnected:r=tr,definitions:i,fetch:a=globalThis.fetch.bind(globalThis)}=e,o=e.url;e.authToken&&(o=`${o}${o.includes(`?`)?`&`:`?`}${xn}=${encodeURIComponent(e.authToken)}`);let s=er(i),c=new AbortController,l=!1,u,d,f,p,m=new Promise((e,t)=>{f=e,p=t});m.catch(()=>{});function h(e){l||(l=!0,p(e),n(e),r())}function g(){l||(l=!0,p(Error(`Devframe SSE stream closed`)),r())}function _(e,n){if(e===`session`){f(n),t();return}u?.(n)}async function v(e){let t=e.getReader();d=t;let n=new TextDecoder,r=``;for(;;){let{done:e,value:i}=await t.read();if(e)break;for(r+=n.decode(i,{stream:!0});;){let e=r.search(/\n\n|\r\n\r\n/);if(e<0)break;let t=r.slice(0,e);r=r.slice(e+(r[e]===`\r`?4:2));let n=`message`,i=[];for(let e of t.split(/\r?\n/))e.startsWith(`:`)||(e.startsWith(`event:`)?n=e.slice(6).trimStart():e.startsWith(`data:`)&&i.push(e.slice(5).replace(/^ /,``)));i.length>0&&_(n,i.join(`
`))}}g()}return(async()=>{try{let e=await a(o,{headers:{accept:`text/event-stream`},signal:c.signal});if(!e.ok||!e.body)throw Error(`Devframe SSE stream request failed: ${e.status}`);await v(e.body)}catch(e){if(c.signal.aborted){g();return}h(e instanceof Error?e:Error(String(e)))}})(),{close:()=>{l=!0,c.abort(),d?.cancel().catch(()=>{})},on:e=>{u=e},post:async e=>{let t;try{t=await m}catch{return}if(l){n(Error(`Devframe SSE channel is closed; message dropped`));return}try{let n=await a(o,{method:`POST`,headers:{"content-type":`text/plain; charset=utf-8`,[_n]:t},body:e});if(n.status===200){let e=await n.text();e&&u?.(e);return}if(!n.ok)throw Error(`Devframe SSE POST failed: ${n.status}`)}catch(e){n(e instanceof Error?e:Error(String(e)))}},serialize:s.serialize,deserialize:s.deserialize}}function rr(e,t){let{channel:n,rpcOptions:r={}}=t;return mn(e,{...n,timeout:-1,...r,proxify:!1})}function ir(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function ar(e){let{transport:n,authToken:r,connectionMeta:i,events:a,clientRpc:o,rpcOptions:s={},callTimeout:c=0}=e,l=!1,u=`connecting`,d=null,f=ir();function p(e,n=null){if(n?d=n:e===`connected`&&(d=null),e===u)return;let r=u;u=e,a.emit(t.client.connectionStatus,e,r)}let m=new Set;function h(e){for(let t of[...m])t.reject(e)}function g(){return u===`disconnected`||u===`error`?new Z(`connection`,`[devframe] Not connected to the devframe server`,{cause:d??void 0}):u===`unauthorized`?new Z(`auth`,`[devframe] Not authorized by the devframe server`,{cause:d??void 0}):null}function _(e,n){return new Promise((r,i)=>{let o=!1,s,l={reject(e){o||(u(),a.emit(t.client.error,e,n),i(e))}};function u(){o=!0,m.delete(l),s&&clearTimeout(s)}m.add(l),c>0&&(s=setTimeout(()=>{l.reject(new Z(`timeout`,`[devframe] RPC call "${n}" timed out after ${c}ms`))},c)),e.then(e=>{o||(u(),r(e))},e=>{if(o)return;u();let r=e instanceof Error?e:Error(String(e));a.emit(t.client.error,r,n),i(r)})})}let v=new Map;for(let e of i.jsonSerializableMethods??[])v.set(e,{jsonSerializable:!0});let y=e.createChannel({definitions:v,onError(e){p(`error`,e),a.emit(t.client.connectionError,e),h(new Z(`connection`,`[devframe] Connection to the devframe server failed`,{cause:e}))},onDisconnected(){u!==`error`&&p(`disconnected`),h(new Z(`connection`,`[devframe] Disconnected from the devframe server`,{cause:d??void 0}))}}),b=rr(o.functions,{channel:y,rpcOptions:s});o.register({name:t.broadcast.authRevoked,type:`event`,handler:()=>{l=!1;let e=new Z(`auth`,`[devframe] The devframe server revoked this client's trust`);p(`unauthorized`,e),a.emit(t.client.connectionError,e),h(e),a.emit(t.client.isTrustedUpdated,!1)}});let x=r;async function S(e){x=e;let n=await b.$call(`anonymous:devframe:auth`,{authToken:e,ua:navigator.userAgent,origin:location.origin});if(l=n.isTrusted,l)f.resolve(!0),p(`connected`);else{let e=new Z(`auth`,`[devframe] The devframe server refused this client's credentials`);p(`unauthorized`,e),a.emit(t.client.connectionError,e)}return a.emit(t.client.isTrustedUpdated,l),n.isTrusted}async function ee(e){let n=(await b.$call(`anonymous:devframe:auth:exchange`,{code:e,ua:navigator.userAgent,origin:location.origin}))?.authToken??null;return n&&(x=n,l=!0,f.resolve(!0),p(`connected`),a.emit(t.client.isTrustedUpdated,!0)),n}async function C(){return l?!0:S(x??``)}async function te(e=6e4){if(l&&f.resolve(!0),e<=0)return f.promise;let t=()=>{};return await Promise.race([f.promise.then(t),new Promise((n,r)=>{let i=setTimeout(()=>{r(Error(`[devframe] Timeout waiting for rpc to be trusted`))},e);t=()=>clearTimeout(i)})]),l}return{transport:n,get isTrusted(){return l},get status(){return u},get connectionError(){return d},requestTrust:C,requestTrustWithToken:S,requestTrustWithCode:ee,ensureTrusted:te,call:(...e)=>{let n=String(e[0]),r=g();return r?(a.emit(t.client.error,r,n),Promise.reject(r)):_(b.$call(...e),n)},callEvent:(...e)=>{let n=g();if(n){a.emit(t.client.error,n,String(e[0]));return}return b.$callEvent(...e)},callOptional:(...e)=>{let n=String(e[0]),r=g();return r?(a.emit(t.client.error,r,n),Promise.reject(r)):_(b.$callOptional(...e),n)},close:()=>{y.close()}}}function or(e,t,n){let r=(()=>{try{return new URL(t,n.href)}catch{return new URL(n.href)}})();if(e&&typeof e==`object`){if(e.host!=null||e.port!=null){let t=e.host??`${r.hostname}:${e.port}`;return new URL(e.path??`/`,`${r.protocol}//${t}`).href}return new URL(e.path??``,r).href}let i=e??``;return/^https?:\/\//i.test(i)?i:new URL(i,r).href}function sr(e){let{authToken:t,connectionMeta:n,metaBaseUrl:r,events:i,clientRpc:a,rpcOptions:o={},sseOptions:s={},callTimeout:c=0}=e,l=or(n.sse,r??`./`,location);return ar({transport:`sse`,authToken:t,connectionMeta:n,events:i,clientRpc:a,rpcOptions:o,callTimeout:c,createChannel:e=>nr({url:l,authToken:t,definitions:e.definitions,...s,onConnected(){s.onConnected?.()},onError(t){e.onError(t),s.onError?.(t)},onDisconnected(){e.onDisconnected(),s.onDisconnected?.()}})})}function cr(e){let t=e.cause instanceof Error?e.cause:lr(e.cause)?cr(e.cause):e.cause,n=t===void 0?Error(e.message):Error(e.message,{cause:t});n.name=e.name;for(let t of Object.keys(e))t!==`name`&&t!==`message`&&t!==`cause`&&(n[t]=e[t]);return n}function lr(e){return typeof e==`object`&&!!e&&typeof e.message==`string`&&typeof e.name==`string`}function ur(e){return typeof e==`object`&&!!e&&e.type===`static`&&typeof e.path==`string`}function dr(e){return typeof e==`object`&&!!e&&e.type===`query`&&typeof e.records==`object`&&e.records!==null}function fr(e){return typeof e==`object`&&!!e&&(`output`in e||`error`in e)}function pr(e){if(e.error)throw cr(e.error);return e.output}function mr(e){return e.some(e=>e!=null)}function hr(e){return typeof e==`object`&&e&&`serialization`in e&&`data`in e?e.data:e}function gr(e,t){let n=new Map,r=new Map;function i(e,t){return t===`structured-clone`&&Array.isArray(e)?Wt(e):e}function a(e,t){return i(hr(e),t)}async function o(e){n.has(e.path)||n.set(e.path,t(e.path).then(t=>a(t,e.serialization)));let r=await n.get(e.path);return fr(r)?pr(r):r}async function s(e,n){return r.has(e)||r.set(e,t(e).then(e=>a(e,n))),await r.get(e)}async function c(t,n){if(!(t in e))throw Error(`[devframe-rpc] Function "${t}" not found in dump store`);let r=e[t];if(ur(r)){if(mr(n))throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`);return await o(r)}if(dr(r)){let e=fe(n),i=r.records[e];if(i)return pr(await s(i,r.serialization));if(r.fallback)return pr(await s(r.fallback,r.serialization));throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`)}if(!mr(n))return r;throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`)}return{call:async(e,t)=>await c(e,t),callOptional:async(t,n)=>{if(t in e)return await c(t,n)},callEvent:async(e,t)=>{}}}async function _r(e){let t=gr(await e.fetchJsonFromBases(vn),e.fetchJsonFromBases);return{transport:`static`,isTrusted:!0,status:`connected`,connectionError:null,requestTrust:async()=>!0,requestTrustWithToken:async()=>!0,requestTrustWithCode:async()=>null,ensureTrusted:async()=>!0,call:(...e)=>t.call(e[0],e.slice(1)),callEvent:(...e)=>t.callEvent(e[0],e.slice(1)),callOptional:(...e)=>t.callOptional(e[0],e.slice(1)),close:()=>{}}}var vr=``;function Q(e,t){return`${e}${vr}${t}`}function yr(e){let n=new Map,r=new Map;e.client.register({name:t.broadcast.streamingChunk,type:`event`,handler(e,t,r,i){n.get(Q(e,t))?._push(r,i)}}),e.client.register({name:t.broadcast.streamingEnd,type:`event`,handler(e,t,r){let i=Q(e,t),a=n.get(i);a&&(a._end(r),n.delete(i))}}),e.client.register({name:t.broadcast.streamingUploadCancel,type:`event`,handler(e,t){let n=Q(e,t),i=r.get(n);i&&(i.abort(`server cancelled upload`),r.delete(n))}}),e.events.on(t.client.isTrustedUpdated,t=>{if(t)for(let[t,r]of n){if(r.cancelled||r.done)continue;let n=t.indexOf(vr);if(n<0)continue;let i=t.slice(0,n),a=t.slice(n+1);e.callEvent(`devframe:streaming:subscribe`,i,a,{afterSeq:r.lastSeenSeq})}});function i(r,i,a={}){let o=Q(r,i),s=n.get(o);if(s)return s;let c=Xt({id:i,highWaterMark:a.highWaterMark,onOverflow(e){console.warn(`[devframe] DF0029: Stream "${r}#${i}" dropped ${e} chunk(s) after exceeding the client high-water mark.`)},onCancel(){e.callEvent(`devframe:streaming:cancel`,r,i),n.delete(o)}});if(n.set(o,c),e.isTrusted)e.callEvent(`devframe:streaming:subscribe`,r,i,{afterSeq:0});else{let a=e.events.on(t.client.isTrustedUpdated,t=>{t&&(a(),n.has(o)&&!c.cancelled&&!c.done&&e.callEvent(`devframe:streaming:subscribe`,r,i,{afterSeq:c.lastSeenSeq}))})}return c}function a(t,n){let i=Q(t,n),a=r.get(i);if(a)return a;let o=Yt({id:n});return o.events.on(`chunk`,(r,i)=>{e.callEvent(`devframe:streaming:upload-chunk`,t,n,r,i)}),o.events.on(`end`,a=>{e.callEvent(`devframe:streaming:upload-end`,t,n,a),r.delete(i)}),r.set(i,o),o}return{subscribe:i,upload:a}}function br(){}var xr=new Map;function Sr(e){let t=e.url;e.authToken&&(t=`${t}?${xn}=${encodeURIComponent(e.authToken)}`);let n=new WebSocket(t),{onConnected:r=br,onError:i=br,onDisconnected:a=br,definitions:o=xr}=e;n.addEventListener(`open`,e=>{r(e)}),n.addEventListener(`error`,e=>{let t=e instanceof Error?e:Error(e.type);i(t)}),n.addEventListener(`close`,e=>{a(e)});let s=er(o);return{close:()=>{n.close()},on:e=>{n.addEventListener(`message`,t=>{e(t.data)})},post:e=>{if(n.readyState===WebSocket.OPEN){n.send(e);return}if(n.readyState===WebSocket.CONNECTING){let t=()=>{i(),n.readyState===WebSocket.OPEN&&n.send(e)},r=()=>i();function i(){n.removeEventListener(`open`,t),n.removeEventListener(`close`,r)}n.addEventListener(`open`,t),n.addEventListener(`close`,r);return}i(Error(`Devframe WebSocket is not open; message dropped`))},serialize:s.serialize,deserialize:s.deserialize}}function Cr(e,t,n){let r=(()=>{try{return new URL(t,n.href)}catch{return new URL(n.href)}})(),i=r.protocol===`https:`?`wss:`:`ws:`;if(e&&typeof e==`object`){if(e.host!=null||e.port!=null){let t=e.host??`${r.hostname}:${e.port}`,n=new URL(e.path??`/`,`${i}//${t}`);return n.protocol=i,n.href}let t=new URL(e.path??``,r);return t.protocol=i,t.href}if(typeof e==`number`)return`${i}//${r.hostname}:${e}`;let a=e??``;if(/^wss?:\/\//i.test(a))return a;if(/^https?:\/\//i.test(a))return C(a,/^https/i.test(a)?`wss://`:`ws://`);let o=new URL(a,r);return o.protocol=i,o.href}function wr(e){let{authToken:t,connectionMeta:n,metaBaseUrl:r,events:i,clientRpc:a,rpcOptions:o={},wsOptions:s={},callTimeout:c=0}=e,l=Cr(n.websocket,r??`./`,location);return ar({transport:`websocket`,authToken:t,connectionMeta:n,events:i,clientRpc:a,rpcOptions:o,callTimeout:c,createChannel:e=>Sr({url:l,authToken:t,definitions:e.definitions,...s,onConnected(e){s.onConnected?.(e)},onError(t){e.onError(t),s.onError?.(t)},onDisconnected(t){e.onDisconnected(),s.onDisconnected?.(t)}})})}function Tr(e){return e.includes(`:`)}function $(e,t){return Tr(t)?t:`${e}:${t}`}function Er(e,t,n){let r=`devframe:settings:${n}:${t}`,i;function a(){return i||=e.sharedState.get(r,{initialValue:{}}),i}return{async get(e){return(await a()).value()[e]},async set(e,t){(await a()).mutate(n=>{n[e]=t})},async delete(e){(await a()).mutate(t=>{delete t[e]})},async all(){return(await a()).value()},async onChange(e){return(await a()).on(`updated`,t=>e(t))}}}function Dr(e,t){return{global:Er(e,t,`global`),project:Er(e,t,`project`)}}function Or(e,t){return{namespace:t,base:e,rpc:{namespace:t,register(n){if(Tr(n.name))throw Error(`[devframe] Scoped client RPC registration for namespace "${t}" received an already-namespaced function name "${n.name}". Pass a bare name without a ":" separator.`);e.client.register({...n,name:`${t}:${n.name}`})},call:((n,...r)=>e.call($(t,n),...r)),callEvent:((n,...r)=>e.callEvent($(t,n),...r)),callOptional:((n,...r)=>e.callOptional($(t,n),...r)),sharedState:((n,r)=>e.sharedState.get($(t,n),r)),streaming:{subscribe:(n,r,i)=>e.streaming.subscribe($(t,n),r,i),upload:(n,r)=>e.streaming.upload($(t,n),r)}},settings:Dr(e,t),scope:e.scope}}function kr(e,t){if(t.backend===`static`)return`static`;let n=t.websocket!==void 0,r=t.sse!==void 0;if(e===`websocket`){if(!n)throw Error(`[devframe] transport: 'websocket' was requested, but this server does not advertise a WebSocket endpoint`);return`websocket`}if(e===`sse`){if(!r)throw Error(`[devframe] transport: 'sse' was requested, but this server does not advertise an SSE endpoint`);return`sse`}if(t.backend===`sse`&&r)return`sse`;if(n)return`websocket`;if(r)return`sse`;throw Error(`[devframe] This server advertises no RPC transport (backend "none") — nothing to connect to. Enable the WebSocket or SSE endpoint on the server, or use its static/MCP surfaces instead.`)}async function Ar(e={}){let{baseURL:t=`./`,rpcOptions:r={},cacheOptions:i=!1}=e,a=n(),o=Array.isArray(t)?t:[t],s=await Kn(e),{connectionMeta:c,metaBaseUrl:l,authToken:u}=s,d=o[0]??`./`;try{d=new URL(`.`,l).href}catch{}let f=new Sn({functions:[],...typeof e.cacheOptions==`object`?e.cacheOptions:{}}),p={rpc:void 0},m=new Mn(p);async function h(e){let t=[d,...o.filter(e=>e!==d)].filter(e=>e!=null),n=[];for(let r of t)try{return await fetch(b(e,r)).then(t=>{if(!t.ok)throw Error(`Failed to fetch ${e} from ${r}: ${t.status}`);return t.json()})}catch(e){n.push(e)}throw Error(`Failed to load ${e} from ${t.join(`, `)}`,{cause:n})}let g={authToken:u,connectionMeta:c,metaBaseUrl:l,events:a,clientRpc:m,callTimeout:e.callTimeout,rpcOptions:{...r,async onRequest(e,t,n){if(await r.onRequest?.call(this,e,t,n),i&&f?.validate(e.m)){if(f.has(e.m,e.a))return n(f.cached(e.m,e.a));let r=await t(e);f.apply(e,r)}else await t(e)}}},_=kr(e.transport??`auto`,c),v=_===`static`?await _r({fetchJsonFromBases:h}):_===`sse`?sr({...g,sseOptions:e.sseOptions}):wr({...g,wsOptions:e.wsOptions}),y;try{y=new BroadcastChannel(`devframe-auth`)}catch{}let x,S=!1;function ee(e){return((...t)=>S||!x?e(...t):x.then(()=>e(...t)))}let C={events:a,get isTrusted(){return v.isTrusted},get status(){return v.status},get connectionError(){return v.connectionError},get transport(){return v.transport??_},get connection(){return s},connectionMeta:c,ensureTrusted:v.ensureTrusted,requestTrust:v.requestTrust,requestTrustWithToken:async e=>(Hn(e),s={...s,authToken:e},v.requestTrustWithToken(e)),requestTrustWithCode:async e=>{let t=await v.requestTrustWithCode(e);if(!t)return!1;Hn(t),s={...s,authToken:t};try{y?.postMessage({type:`auth-update`,authToken:t})}catch{}return!0},call:ee(v.call),callEvent:ee(v.callEvent),callOptional:ee(v.callOptional),client:m,sharedState:void 0,services:void 0,streaming:void 0,cacheManager:f,scope:void 0,close:()=>v.close?.()};C.sharedState=Qn(C),C.streaming=yr(C),C.services=Zn(C);let te=new Map;C.scope=(e=>{if(!e)return C;let t=te.get(e);return t||(t=Or(C,e),te.set(e,t)),t}),p.rpc=C;function ne(){try{return typeof window<`u`&&window.self===window.top}catch{return!1}}async function w(){if(!(e.simpleAuth===!1||!ne())&&typeof globalThis.prompt==`function`)for(;!C.isTrusted;){let e=globalThis.prompt(`devframe: enter the authentication code shown in your terminal`);if(e==null)return;let t=e.trim();if(t&&await C.requestTrustWithCode(t))return}}async function re(){let t=await v.requestTrust(),n=e.otpParam??`devframe_otp`,r=n?await Xn(C,{param:n}):!1;t||r||C.isTrusted||await w()}return x=re().then(()=>{S=!0},()=>{S=!0}),y&&(y.onmessage=e=>{e.data?.type===`auth-update`&&e.data.authToken&&C.requestTrustWithToken(e.data.authToken)}),C}i(()=>{let e=document.documentElement;e.classList.toggle(`dark`,c.value),e.classList.toggle(`light`,!c.value),e.style.colorScheme=c.value?`dark`:`light`});async function jr(){let t=import.meta.url,n=await Ar({baseURL:[`./`,new URL(`./`,t).href],simpleAuth:!1}),i=o(n.connectionMeta.configs?.ui?.branding||{});l(document,i);let c=u(`devframes-dock-session`,s(),{mergeDefaults:!0}),{createDocksContext:d}=await r(async()=>{let{createDocksContext:e}=await import(`./context-B4i6GqYV.js`);return{createDocksContext:e}},__vite__mapDeps([0,1,2]),import.meta.url),f=await d(`standalone`,n,void 0,c);e(f);let{DockStandalone:p}=await r(async()=>{let{DockStandalone:e}=await import(`./DockStandalone-BVr1VMtK.js`);return{DockStandalone:e}},__vite__mapDeps([3,1,2]),import.meta.url),m=new p({context:f});a(m,i.primaryColor),document.getElementById(`app`).appendChild(m)}jr();
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./DockStandalone-BVr1VMtK.js","./docks-DFXStXQt.js"])))=>i.map(i=>d[i]);
import{Dt as e,Et as t,Ot as n,Tt as r,c as i,it as a,mt as o,p as s,s as c,u as l}from"./docks-DFXStXQt.js";var u=`devframe-remote-connection`,d=e.postMessage.remoteAssetsError,f=/^[a-z][a-z\d+.-]*:/i;function p(e){let t=e.trim();return!!t&&!t.startsWith(`/`)&&!t.startsWith(`./`)&&!t.startsWith(`../`)&&!f.test(t)}function m(e,t={}){if(!p(e))return e;let n=t.resolveClientModule?.(e);if(n)return n;if(!t.template)return e;let r=t.template.includes(`{specifier}`)?t.template.replaceAll(`{specifier}`,e):t.template+e;try{return new URL(r,t.metaBaseUrl).href}catch{return r}}function h(e,t){return p(e)?t===e?" — the specifier is a bare npm specifier and this host advertises no client-module resolution (`ConnectionMeta.configs.dock.clientModuleResolution`). Serve the script as a self-contained bundle by URL, pass `resolveClientModule` to this client host, or run under a host that resolves bare specifiers (e.g. Vite: `/@id/{specifier}`).":` — the host resolved the bare specifier "${e}" to this URL but could not serve the module. Check the package is installed and resolvable from the host project's root (and built, if its exports point at build output).`:``}function g(e){function t(e){let t=e.split(`&`),n=t.filter(e=>e.split(`=`)[0]!==u);return[n.join(`&`),n.length!==t.length]}let n=e.indexOf(`#`),r=n===-1?e:e.slice(0,n),i=n===-1?void 0:e.slice(n+1),a=!1;if(i!==void 0){let e=i.indexOf(`?`);if(e===-1){let[e,n]=t(i);i=e,a||=n}else{let n=i.slice(0,e),[r,o]=t(i.slice(e+1));o&&(i=r?`${n}?${r}`:n,a=!0)}}let o=r.indexOf(`?`);if(o!==-1){let e=r.slice(0,o),[n,i]=t(r.slice(o+1));i&&(r=n?`${e}?${n}`:e,a=!0)}return a?i?`${r}#${i}`:r:e}var _=[`===`,`!==`,`==`,`!=`,`<=`,`>=`,`&&`,`||`,`<`,`>`,`+`,`-`,`*`,`/`,`%`,`!`],v=/[a-z_$]/i,ee=/[\w$.:]/,y=/\d/,te=/\s/;function ne(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(te.test(r)){n++;continue}if(r===`(`){t.push({type:`lparen`}),n++;continue}if(r===`)`){t.push({type:`rparen`}),n++;continue}let i=!1;for(let r of _)if(e.startsWith(r,n)){t.push({type:`op`,value:r}),n+=r.length,i=!0;break}if(!i){if(y.test(r)){let r=n;for(;r<e.length&&y.test(e[r]);)r++;if(e[r]===`.`&&r+1<e.length&&y.test(e[r+1]))for(r++;r<e.length&&y.test(e[r]);)r++;t.push({type:`number`,value:Number(e.slice(n,r))}),n=r;continue}if(r===`"`||r===`'`){let i=r,a=n+1,o=``;for(;a<e.length&&e[a]!==i;)if(e[a]===`\\`&&a+1<e.length){let t=e[a+1];o+=t===`n`?`
`:t===`t`?` `:t,a+=2}else o+=e[a],a++;if(a>=e.length)throw Error(`Unterminated string literal at position ${n}`);a++,t.push({type:`string`,value:o}),n=a;continue}if(v.test(r)){let r=n;for(;r<e.length&&ee.test(e[r]);)r++;let i=e.slice(n,r);i===`true`?t.push({type:`bool`,value:!0}):i===`false`?t.push({type:`bool`,value:!1}):t.push({type:`ident`,value:i}),n=r;continue}throw Error(`Unexpected character "${r}" at position ${n}`)}}return t.push({type:`eof`}),t}function re(e){let t=ne(e),n=0,r=()=>t[n],i=()=>t[n++],a=e=>{let t=r();return t.type===`op`&&t.value===e},o=()=>{let e=i();if(e.type!==`op`)throw Error(`internal: expected operator token, got ${b(e)}`);return e.value};function s(){let e=c();for(;a(`||`);)i(),e={type:`binary`,op:`||`,left:e,right:c()};return e}function c(){let e=l();for(;a(`&&`);)i(),e={type:`binary`,op:`&&`,left:e,right:l()};return e}function l(){let e=u();for(;a(`===`)||a(`!==`)||a(`==`)||a(`!=`);){let t=o(),n=t===`==`||t===`!=`?h():u();e={type:`binary`,op:t,left:e,right:n}}return e}function u(){let e=d();for(;a(`<=`)||a(`>=`)||a(`<`)||a(`>`);)e={type:`binary`,op:o(),left:e,right:d()};return e}function d(){let e=f();for(;a(`+`)||a(`-`);)e={type:`binary`,op:o(),left:e,right:f()};return e}function f(){let e=p();for(;a(`*`)||a(`/`)||a(`%`);)e={type:`binary`,op:o(),left:e,right:p()};return e}function p(){return a(`!`)||a(`-`)||a(`+`)?{type:`unary`,op:o(),operand:p()}:m()}function m(){let e=r();if(e.type===`number`||e.type===`string`||e.type===`bool`)return i(),{type:`literal`,value:e.value};if(e.type===`ident`)return i(),{type:`key`,key:e.value};if(e.type===`lparen`){i();let e=s(),t=r();if(t.type!==`rparen`)throw Error(`Expected ")" but got ${b(t)}`);return i(),e}throw Error(`Unexpected token: ${b(e)}`)}function h(){let e=r();if(e.type===`string`)return i(),{type:`literal`,value:e.value};if(e.type===`number`||e.type===`bool`)return i(),{type:`literal`,value:String(e.value)};if(e.type===`ident`)return i(),{type:`literal`,value:e.value};throw Error(`Expected value literal or identifier on right side of equality, got ${b(e)}`)}let g=s(),_=r();if(_.type!==`eof`)throw Error(`Unexpected token: ${b(_)}`);return g}function b(e){switch(e.type){case`eof`:return`end of expression`;case`lparen`:return`"("`;case`rparen`:return`")"`;case`op`:case`ident`:case`string`:return`"${e.value}"`;case`number`:case`bool`:return`"${String(e.value)}"`}}function ie(e,t,n={}){let{strict:r=!1}=n;return!!x(e,t,r)}function x(e,t,n){switch(e.type){case`literal`:return e.value;case`key`:return se(e.key,t,n);case`unary`:return S(e.op,x(e.operand,t,n));case`binary`:return ae(e,t,n)}}function S(e,t){switch(e){case`!`:return!t;case`-`:return-t;case`+`:return+t}}function ae(e,t,n){let{op:r}=e;if(r===`&&`)return x(e.left,t,n)&&x(e.right,t,n);if(r===`||`)return x(e.left,t,n)||x(e.right,t,n);let i=x(e.left,t,n),a=x(e.right,t,n);switch(r){case`==`:return String(i)===String(a);case`!=`:return String(i)!==String(a);case`===`:return i===a;case`!==`:return i!==a;case`<`:return i<a;case`>`:return i>a;case`<=`:return i<=a;case`>=`:return i>=a;case`+`:return i+a;case`-`:return i-a;case`*`:return i*a;case`/`:return i/a;case`%`:return i%a}}function oe(e,t,n){return ie(re(e),t,n)}function se(e,t,n){let{found:r,value:i}=ce(e,t);if(!r&&n)throw Error(`Unknown context key: "${e}"`);return i}function ce(e,t){if(e in t)return{found:!0,value:t[e]};let n=e.includes(`.`)?`.`:e.includes(`:`)?`:`:null;if(n){let r=e.split(n),i=t;for(let e of r){if(typeof i!=`object`||!i)return{found:!1,value:void 0};let t=i;if(!(e in t))return{found:!1,value:void 0};i=t[e]}return{found:!0,value:i}}return{found:!1,value:void 0}}function C(e,t,n){return oe(e,t,n)}var le=`devframes:hub-ui:hide`,ue=`devframes_plugin_terminals`,de=`devframes_plugin_messages`,fe=Object.freeze({type:`~builtin`,category:`~builtin`,id:`~client-auth-notice`,title:`Unauthorized`,icon:`ph:warning-duotone`}),w=Object.freeze({type:`~builtin`,category:`~builtin`,id:`~settings`,title:`Settings`,icon:`ph:gear-duotone`}),pe=Object.freeze([fe,w]),T=`~pinned`,me=-1e5;function E(e,t){return e===T?me:t?.[e]??n[e]??0}function he(e){return typeof e==`string`?e:e?.light??e?.dark}var ge={default:`Default`,app:`App`,framework:`Framework`,web:`Web`,advanced:`Advanced`,"~builtin":`Built-in`,[T]:`Pinned`};function _e(e){return e!==`~builtin`&&e!==T}function ve(e){return ge[e]??e}function ye(e){let t=new Set;for(let n of e)n.type===`group`&&t.add(n.id);return t}function be(e,t){if(!t||t.type===`group`||!t.groupId)return;let n=e.find(e=>e.id===t.groupId);return n?.type===`group`?n:void 0}function D(e,t,n,r){let i=e.filter(e=>e.type!==`group`&&e.groupId===t);if(!n)return i.length?[[`default`,i]]:[];let a=e.find(e=>e.type===`group`&&e.id===t);return O(i,n,{...r,ignoreCategoryHidden:!0,categoryOrderOverride:a?.categoryOrder})}function xe(e,t,n,r){return D(e,t,n,r).flatMap(([,e])=>e)}function Se(e,t,n,r){if(!n)return;let i=e.find(e=>e.type!==`group`&&e.groupId===t&&e.id===n);if(i){if(i.when){if(r){if(!C(i.when,r))return}else if(i.when===`false`)return}return i}}function O(e,t,n){let{docksHidden:r,docksCategoriesHidden:i,docksCustomOrder:a,docksPinned:o}=t,{includeHidden:s=!1,whenContext:c,collapseGroups:l=!1,ignoreCategoryHidden:u=!1,categoryOrderOverride:d}=n??{},f=new Map;for(let t of e)t.type===`group`&&f.set(t.id,t.category??`default`);let p=new Map;for(let n of e){let e=n.type!==`group`&&n.groupId?f.get(n.groupId):void 0;if(l&&e!==void 0||n.when&&c&&!C(n.when,c)&&!s||n.when&&!c&&n.when===`false`&&!s||n.visibility&&c&&!C(n.visibility,c)&&!s||n.visibility&&!c&&n.visibility===`false`&&!s||!s&&n.id===`devframes_plugin_inspect`&&!t.showDevframeInspector||!s&&r.includes(n.id))continue;let a=e??n.category??`default`,d=o.includes(n.id)&&e===void 0?T:a;!s&&!u&&i.includes(d)||(p.has(d)||p.set(d,[]),p.get(d).push(n))}let m=Array.from(p.entries()).sort(([e],[t])=>{let n=E(e,d),r=E(t,d);return r===n?t.localeCompare(e):n-r});return m.forEach(([e,t])=>{t.sort((e,t)=>{let n=a[e.id]??0,r=a[t.id]??0;if(n!==r)return n-r;let i=e.defaultOrder??0,o=t.defaultOrder??0;return o===i?t.title.localeCompare(e.title):i-o})}),m}function k(e){let{availableHeight:t,reservedHeight:n,itemHeight:r,dividerHeight:i,moreButtonHeight:a,dividerCount:o,totalItems:s}=e;if(s<=0||r<=0)return 0;let c=t-n-Math.max(0,o)*i;if(Math.floor(c/r)>=s)return s;let l=Math.floor((c-a)/r);return Math.max(0,l)}function A(e,t){let n=[],r=[],i=t;for(let[t,a]of e)i<=0?r.push([t,a]):a.length>i?(n.push([t,a.slice(0,i)]),r.push([t,a.slice(i)]),i=0):(i-=a.length,n.push([t,a]));return r.reduce((e,[,t])=>e+t.length,0)===1?{visible:[...n,...r],overflow:[]}:{visible:n,overflow:r}}var j=o(null),M=o(null),N=o(null),P=o(null);function Ce(e){j.value=e}function we(){return j}function F(e){M.value=e}function Te(){return M}function Ee(e){N.value=e}function De(){return N}var I=o(null);function Oe(e){I.value=e}function ke(){return I}function Ae(e){P.value=e}function je(){return P}var L=o(null);function Me(e){L.value=e}function Ne(){return L}var R=20,z=100,Pe=320,Fe=240,B=`__DEVFRAMES_TRIGGER_DOCK_ACTION__`,V=`__DEVFRAME_CONNECTION_META__`,H=o(null),U=o(!1),W=t(),G,K,q,J,Ie=async()=>await r(()=>import(`./DockStandalone-BVr1VMtK.js`).then(e=>e.DockStandalone),__vite__mapDeps([0,1]),import.meta.url);W.on(`popup:open-requested`,e=>{qe(e)});function Y(){if(!(typeof window>`u`))return window.documentPictureInPicture}function Le(){G?.(),G=void 0,K?.(),K=void 0}function Re(e){return a(s,t=>{e.document.documentElement?.style.setProperty(`color-scheme`,t?`dark`:`light`)},{immediate:!0})}function ze(){q?.remove(),q=void 0}function X(){Le(),ze(),H.value=null,U.value=!1;let e=J;J=void 0,e?.docks.switchEntry(null)}function Z(e,t,n){return Math.min(Math.max(e,t),n)}function Be(e,t){window.innerWidth<=0||window.innerHeight<=0||(e.panel.store.width=Z(Math.round(t.innerWidth/window.innerWidth*100),R,z),e.panel.store.height=Z(Math.round(t.innerHeight/window.innerHeight*100),R,z))}async function Ve(e,t){let n=await Ie(),r=t.document.createElement(`style`);r.textContent=[`html, body {`,` margin: 0;`,` padding: 0;`,` width: 100%;`,` height: 100%;`,` overflow: hidden;`,` background: transparent;`,`}`,`#devframes-popup-root {`,` width: 100vw;`,` height: 100vh;`,`}`,`#devframes-popup-root > devframes-dock-standalone {`,` display: block;`,` width: 100%;`,` height: 100%;`,`}`].join(`
`),c(t.document,l().value),t.document.head?.appendChild(r),t.document.body.textContent=``,t[V]=globalThis[V]??e.rpc.connectionMeta;let a=t.document.createElement(`div`);a.id=`devframes-popup-root`,t.document.body.appendChild(a);let o=new n({context:e});i(o,l().value.primaryColor),q=o,a.appendChild(o)}function He(){return!!Y()?.requestWindow}function Ue(e,t){typeof window>`u`||e!==`standalone`&&(window[B]=t)}async function We(e,t){if(!(typeof window>`u`)&&e===`standalone`)try{let e=window.opener;if(!e||e.closed)return;let n=e[B];return typeof n==`function`?await n(t):void 0}catch{return}}function Ge(){return H}function Q(){return U}function Ke(e){W.emit(`popup:open-requested`,e)}async function qe(e){F(null);let t=H.value;if(t?.closed)X();else if(t)return t.focus(),t;let n=Y();if(!n?.requestWindow)return null;let r;try{let t=r=await n.requestWindow({width:Math.max(Pe,Math.round(window.innerWidth*e.panel.store.width/100)),height:Math.max(Fe,Math.round(window.innerHeight*e.panel.store.height/100))});await Ve(e,t),K=Re(t);let i=()=>Be(e,t),a=()=>{H.value===t&&X()};return t.addEventListener(`resize`,i),t.addEventListener(`pagehide`,a),G=()=>{t.removeEventListener(`resize`,i),t.removeEventListener(`pagehide`,a)},J=e,H.value=t,U.value=!0,t}catch{return r&&!r.closed&&r.close(),X(),null}}var $=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.platform??``);function Je(e){return e.split(`+`).map(e=>e===`Mod`?$?`⌘`:`Ctrl`:e===`Shift`?$?`⇧`:`Shift`:e===`Alt`?$?`⌥`:`Alt`:e)}function Ye(e){let t=[];($?e.metaKey:e.ctrlKey)&&t.push(`Mod`),($?e.ctrlKey:e.metaKey)&&t.push($?`Ctrl`:`Meta`),e.altKey&&t.push(`Alt`),e.shiftKey&&t.push(`Shift`);let n=e.key;return n.length===1&&(n=n.toUpperCase()),[`Control`,`Meta`,`Alt`,`Shift`].includes(n)||t.push(n),t.join(`+`)}function Xe(e,t){let n=e??[],r=t??[];return n.length===r.length&&n.every((e,t)=>e.key===r[t]?.key)}function Ze(e,t){return e!==void 0&&!Xe(e,t)}function Qe(e,t){let n=e=>!e.when||C(e.when,t),r=[];for(let t of e){if(!n(t))continue;if(!t.children){r.push(t);continue}let e=t.children.filter(n);r.push({...t,children:e})}return r}function $e(e,t){let n=[];for(let r of e.value){for(let e of t(r.id))n.push({id:r.id,keybinding:e});if(r.children)for(let e of r.children)for(let r of t(e.id))n.push({id:e.id,keybinding:r})}return n}var et={"Mod+T":`Open new tab`,"Mod+W":`Close tab`,"Mod+N":`Open new window`,"Mod+L":`Focus address bar`,"Mod+D":`Bookmark page`,"Mod+Q":`Quit browser`,"Mod+Shift+T":`Reopen closed tab`,"Mod+Shift+N":`Open incognito window`,"Mod+Shift+W":`Close window`,"Mod+Shift+Q":`Quit browser (Chrome)`,"Alt+F4":`Close window (Windows)`,"Mod+R":`Reload page`,"Mod+Shift+R":`Hard reload page`,"Mod+F":`Find in page`};export{be as A,de as B,De as C,O as D,k as E,he as F,g as G,C as H,Se as I,d as K,pe as L,D as M,ye as N,A as O,_e as P,w as R,Te as S,we as T,h as U,ue as V,m as W,Ee as _,Ze as a,je as b,He as c,We as d,Ge as f,F as g,Oe as h,Je as i,xe as j,ve as k,Ue as l,Ae as m,$e as n,$ as o,Q as p,Qe as r,Ye as s,et as t,Ke as u,Me as v,Ne as w,ke as x,Ce as y,le as z};
+2
-2

@@ -23,4 +23,4 @@ <!doctype html>

</style>
<script type="module" crossorigin src="./assets/index-C3xPut_V.js"></script>
<link rel="modulepreload" crossorigin href="./assets/docks-N5v0F-cv.js">
<script type="module" crossorigin src="./assets/index-Bj2-UvZ0.js"></script>
<link rel="modulepreload" crossorigin href="./assets/docks-DFXStXQt.js">
</head>

@@ -27,0 +27,0 @@ <body>

@@ -137,3 +137,3 @@ import { DevframeHubUi } from "@devframes/hub/initiate";

* prebuilt from this package's web components (the floating `DockEmbedded`
* bootstrap and the standalone `DockStandalone` viewer), styled with the
* bootstrap and the standalone `DockStandalone` SPA), styled with the
* shared devframe design system.

@@ -149,3 +149,3 @@ *

* The hub stays headless either way — this object is one implementation of
* the slot; a viewer product (or your own) supplies a different one to the
* the slot; a hub UI provider (a product's or your own) supplies a different one to the
* same option and reuses all the infrastructure.

@@ -152,0 +152,0 @@ */

@@ -20,3 +20,3 @@ import { existsSync } from "node:fs";

* prebuilt from this package's web components (the floating `DockEmbedded`
* bootstrap and the standalone `DockStandalone` viewer), styled with the
* bootstrap and the standalone `DockStandalone` SPA), styled with the
* shared devframe design system.

@@ -32,3 +32,3 @@ *

* The hub stays headless either way — this object is one implementation of
* the slot; a viewer product (or your own) supplies a different one to the
* the slot; a hub UI provider (a product's or your own) supplies a different one to the
* same option and reuses all the infrastructure.

@@ -35,0 +35,0 @@ */

{
"name": "@devframes/hub-ui",
"type": "module",
"version": "0.9.5",
"version": "0.9.6",
"description": "Reference UI for the devframe hub, providing the floating dock and standalone viewer.",

@@ -32,5 +32,5 @@ "author": "Anthony Fu <anthonyfu117@hotmail.com>",

"peerDependencies": {
"@devframes/hub": "0.9.5",
"@devframes/json-render": "0.9.5",
"devframe": "0.9.5"
"@devframes/json-render": "0.9.6",
"@devframes/hub": "0.9.6",
"devframe": "0.9.6"
},

@@ -60,6 +60,6 @@ "peerDependenciesMeta": {

"vue": "^3.5.41",
"@devframes/hub": "0.9.5",
"@devframes/plugin-git": "0.9.5",
"@devframes/json-render": "0.9.5",
"devframe": "0.9.5"
"@devframes/hub": "0.9.6",
"@devframes/json-render": "0.9.6",
"@devframes/plugin-git": "0.9.6",
"devframe": "0.9.6"
},

@@ -66,0 +66,0 @@ "scripts": {

import{At as e,Dt as t,Ot as n,P as r,St as i,Tt as a,a as o,at as s,ft as c,ht as ee,i as l,it as u,kt as d,n as f,o as p,pt as m,r as h,t as g,u as _,ut as v,xt as y}from"./docks-N5v0F-cv.js";import{D as b,F as x,H as S,I as C,L as te,M as ne,N as re,R as w,U as T,W as E,d as ie,f as D,j as ae,k as oe,l as se,n as O,p as k,q as ce,r as A,s as j,z as le}from"./keybindings-BCnz_dMa.js";var M=new WeakMap;async function ue(e,t,n,i){if(M.has(t))return M.get(t);let a=await t.sharedState.get(`devframe:commands`,{initialValue:[]}),o=l(a),s=c(new Map),ee=l(n),u=r(()=>ee.value.commandShortcuts??{}),d=m(!1),f=k(),p=()=>i?i():{clientType:e,dockOpen:!1,paletteOpen:d.value,dockSelectedId:``,popupOpen:f.value},h=r(()=>[...o.value,...Array.from(s.values())]),g=r(()=>{let e=p();return A(h.value,e).filter(e=>e.showInPalette!==!1)});function _(e){let t=Array.isArray(e)?e:[e];for(let e of t)s.set(e.id,e);return()=>{for(let e of t)s.delete(e.id)}}function y(e){let t=h.value.find(t=>t.id===e);if(t)return t;for(let t of h.value)if(t.children){let n=t.children.find(t=>t.id===e);if(n)return n}}async function b(e,...n){let r=y(e);if(!r)throw Error(`Command "${e}" not found`);if(r.when){let t=p();if(!S(r.when,t))throw Error(`Command "${e}" is not available in the current context`)}if(r.source===`server`)return t.call(`hub:commands:execute`,e,...n);if(r.action)return r.action(...n);throw Error(`Command "${e}" has no action`)}function x(e){let t=u.value[e];return t===void 0?y(e)?.keybindings??[]:t}typeof window<`u`&&N(p,h,x,b);let C=c({commands:h,paletteCommands:g,register:_,execute:b,getKeybindings:x,settings:v(n),paletteOpen:d});return M.set(t,C),C}function N(e,t,n,r){let i=i=>{let a=j(i);if(!a||a===`Mod`||a===`Shift`||a===`Alt`)return;let o=e(),s=O(t,n);for(let{id:e,keybinding:n}of s){if(n.key!==a)continue;let s=t.value.find(t=>t.id===e)??t.value.flatMap(e=>e.children??[]).find(t=>t.id===e);if(!(s?.when&&!S(s.when,o))){i.preventDefault(),i.stopPropagation(),r(e).catch(console.error);return}}};window.addEventListener(`keydown`,i,{capture:!0}),u(D(),(e,t)=>{t&&t.removeEventListener(`keydown`,i,{capture:!0}),e&&e.addEventListener(`keydown`,i,{capture:!0})})}function de(e){let t=[],n;async function r(){if(e.isTrusted===!0)return n===void 0&&(n=new Promise(async e=>{for(;t.length>0;)await t.shift()();e()})),n}async function i(n){return e.isTrusted===!0&&t.length!==0&&await r(),e.isTrusted===!0&&t.length===0?await n():new Promise(e=>{t.push(async()=>{e(await n())})})}e.events.on(`rpc:is-trusted:updated`,e=>{e&&t.length>0&&r()});let a={add(t){return i(async()=>{let n=await e.call(`hub:messages:add`,t);return{get entry(){return n},get id(){return n.id},async update(t){let r=await e.call(`hub:messages:update`,n.id,t);return r&&(n=r),r??void 0},async dismiss(){await e.call(`hub:messages:remove`,n.id)}}})},remove(t){return i(()=>e.call(`hub:messages:remove`,t))},clear(){return i(()=>e.call(`hub:messages:clear`))},info:(e,t)=>a.add({...t,message:e,level:`info`}),warn:(e,t)=>a.add({...t,message:e,level:`warn`}),error:(e,t)=>a.add({...t,message:e,level:`error`}),success:(e,t)=>a.add({...t,message:e,level:`success`}),debug:(e,t)=>a.add({...t,message:e,level:`debug`})};return a}function P(e){switch(e.type){case`action`:return e.action;case`custom-render`:return e.renderer;case`iframe`:return e.clientScript;default:return}}async function F(e,t){let n=P(e);if(!n?.importFrom)throw Error(`[@devframes/hub-ui] Dock entry "${e.id}" carries no client script to run`);let r=E(n.importFrom,{template:t.rpc.connectionMeta?.configs?.dock?.clientModuleResolution,metaBaseUrl:t.rpc.connection?.metaBaseUrl});try{let e=(await a(()=>import(r),[],import.meta.url))[n.importName??`default`];if(typeof e!=`function`)throw Error(`[@devframes/hub-ui] "${r}" exports no callable "${n.importName??`default`}"`);await e(t)}catch(e){throw console.error(`[@devframes/hub-ui] Error executing client script from ${r}${T(n.importFrom,r)}`,e),e}}var I=new Map;function fe(e,t){if(e.type!==`action`&&I.has(e.id))return I.get(e.id);let n=F(e,t);return e.type!==`action`&&I.set(e.id,n),n}var L=new WeakMap;async function R(a,S,T,E){if(L.has(S))return L.get(S);let{entries:D,initialSyncComplete:O}=await o(S),A={},j=await S.sharedState.get(d,{initialValue:A}),M=l(j),N=p(j,A),P=c(new Map),F=r(()=>{let e=D.value,t;if(P.size===0)t=e;else{let n=new Set,r=[];for(let t of e)n.add(t.id),r.push(P.get(t.id)??t);for(let[e,t]of P)n.has(e)||r.push(t);t=r}return t.some(e=>e.id===w.id)?t:[...t,w]});E||=m(f());let I={...E.value},R=m(I.open&&I.selectedDockId!=null),z=r({get:()=>E.value.selectedDockId,set:e=>{E.value.selectedDockId=e}}),pe=r({get:()=>E.value.selectedDockRoute,set:e=>{E.value.selectedDockRoute=e}}),B=r(()=>R.value?null:F.value.find(e=>e.id===z.value)??te.find(e=>e.id===z.value)??null),V=c(new Map);s(()=>{for(let e of F.value){if(V.has(e.id)){V.get(e.id).entryMeta=e;continue}V.set(e.id,h(e,B))}});let H=(e,t=!1)=>{if(P.has(e.id)&&!t)throw Error(`[@devframes/hub-ui] a client dock "${e.id}" is already registered — pass force to overwrite`);return P.set(e.id,e),V.has(e.id)||V.set(e.id,h(e,B)),{update:t=>{if(t.id!=null&&t.id!==e.id)throw Error(`[@devframes/hub-ui] a client dock id is immutable ("${e.id}")`);let n=P.get(e.id);n&&P.set(e.id,{...n,...t})},dispose:()=>{P.delete(e.id)&&(V.delete(e.id),z.value===e.id&&(z.value=null))}}},me=e=>{if(!P.has(e.id))throw Error(`[@devframes/hub-ui] no client dock "${e.id}" to update — register it first`);P.set(e.id,e)};T||=m(g());let U,W,G=v(await(async()=>(W||=S.sharedState.get(`devframe:user-settings`,{initialValue:n()}),W))()),K=l(G),q,he=k(),J=()=>({clientType:a,dockOpen:E.value.open,paletteOpen:q?.paletteOpen??!1,dockSelectedId:z.value??``,popupOpen:he.value}),ge=new Map,Y=async(e=null)=>{if(e==null)return R.value=!1,z.value=null,E.value.open=!1,E.value.selectedDockRoute=null,!0;if(e===`~client-auth-notice`)return R.value=!1,z.value=e,E.value.open=!0,!0;let t=F.value.find(t=>t.id===e);if(!t)return!1;if(t.type===`group`){let e=C(F.value,t.id,t.defaultChildId,J())?.id??ae(F.value,t.id)[0]?.id;return e?Y(e):!1}if(t.type===`iframe`&&t.subTabs){let n=t.frameId??t.id,r=ge.get(n);if(r&&r!==e&&F.value.some(e=>e.id===r))return Y(r)}if(t.type===`action`&&await ie(a,t.id)!=null)return!1;if(t.type===`action`||t.type===`custom-render`||t.type===`iframe`&&t.clientScript){let n=V.get(e),r=de(S);await fe(t,c({...ee(U),current:n,messages:r,logs:r}))}return t.type===`iframe`&&t.frameId&&!t.subTabs&&ge.set(t.frameId,t.id),R.value=!1,z.value=t.id,E.value.open=!0,t.type!==`iframe`&&(E.value.selectedDockRoute=null),!0},_e=async e=>z.value===e?Y(null):Y(e),X=new Map,Z=new Map,ve=(e,t)=>{let n=e.frameId??e.id,r=t=>{let r=X.get(n);if(r){if(r.iframe===t)return;r.dispose(),X.delete(n)}let i=y({frameId:n,anchor:e,iframe:t,window:t.ownerDocument?.defaultView??globalThis,docks:{register:H,switchEntry:Y,getStateById:e=>V.get(e)}});X.set(n,{iframe:t,dispose:i.dispose})};t.domElements.iframe&&r(t.domElements.iframe),t.events.on(`dom:iframe:mounted`,r)};u(F,e=>{let t=new Set;for(let n of e){if(n.type!==`iframe`||!n.subTabs||(t.add(n.id),Z.has(n.id)))continue;let e=V.get(n.id);e&&(Z.set(n.id,n.frameId??n.id),ve(n,e))}for(let[e,n]of[...Z])t.has(e)||(Z.delete(e),X.get(n)?.dispose(),X.delete(n))},{immediate:!0}),S.client.register({name:e.broadcast.docksActivate,type:`action`,handler:e=>{e?.dockId&&Y(e.dockId)}});let Q=S.connectionMeta.configs?.ui?.dockPreferences?.categoryOrder,ye=r(()=>b(F.value,K.value,{whenContext:J(),collapseGroups:!0,categoryOrderOverride:Q}));q=await ue(a,S,G,J),q.register([{id:`devframes:toggle-palette`,source:`client`,title:`Toggle Command Palette`,icon:`ph:magnifying-glass-duotone`,showInPalette:!1,keybindings:[{key:`Mod+K`}],action:()=>{q.paletteOpen=!q.paletteOpen}},{id:`devframes:close-panel`,source:`client`,title:`Close Panel`,icon:`ph:x-circle-duotone`,when:`dockOpen && !paletteOpen`,keybindings:[{key:`Escape`}],action:()=>{E.value.open=!1,z.value=null}},{id:`devframes:open-settings`,source:`client`,title:`Open Settings`,icon:`ph:gear-duotone`,action:()=>{Y(`~settings`)}},{id:`devframes:hide`,source:`client`,title:`Hide ${_().value.productName}`,icon:`ph:eye-slash-duotone`,when:`clientType == embedded`,action:()=>{window.dispatchEvent(new CustomEvent(le))}},{id:`devframes:dock-mode`,source:`client`,title:`Dock Mode`,icon:`ph:layout-duotone`,when:a===`embedded`?`clientType == embedded && !popupOpen`:void 0,children:[{id:`devframes:dock-mode:float`,source:`client`,title:`Float Mode`,icon:`ph:cards-three-duotone`,when:`!popupOpen`,action:()=>{T.value.mode=`float`}},{id:`devframes:dock-mode:edge`,source:`client`,title:`Edge Mode`,icon:`ph:square-half-bottom-duotone`,when:`!popupOpen`,action:()=>{T.value.mode=`edge`}}]}]);let be;s(()=>{be?.();let e=e=>({id:`devframes:docks:${e.id}`,source:`client`,title:e.title,icon:x(e.icon),action:()=>{_e(e.id)}}),t=re(F.value),n=F.value.filter(e=>e.type!==`~builtin`).filter(e=>!(e.groupId&&t.has(e.groupId))).map(t=>{if(t.type!==`group`)return e(t);let n=ne(F.value,t.id,K.value,{whenContext:J()}),r=n.length<=1?(n[0]?.[1]??[]).map(e):n.map(([n,r])=>({id:`devframes:docks:${t.id}:cat:${n}`,source:`client`,title:oe(n),children:r.map(e)}));return{...e(t),children:r}});n.length>0&&(be=q.register({id:`devframes:docks`,source:`client`,title:`Docks`,icon:`ph:layout-duotone`,children:n}))});let $=I.selectedDockId==null?null:I.selectedDockRoute;U=c({panel:{store:T,session:E,isDragging:!1,isResizing:!1,isVertical:r(()=>T.value.position===`left`||T.value.position===`right`),consumeBootRoute:e=>{if($!=null&&e===I.selectedDockId){let e=$;return $=null,e}return null}},docks:{selectedId:z,selectedRoute:pe,selected:B,entries:F,entryToStateMap:v(V),groupedEntries:ye,categoryOrder:Q?{...t,...Q}:t,settings:G,getStateById:e=>V.get(e),switchEntry:Y,toggleEntry:_e,register:H,update:me},commands:q,when:{get context(){return J()}},connection:{get status(){return S.status},get error(){return S.connectionError},events:S.events},renderers:v(i({context:()=>U,manifest:()=>M.value})),rpc:v(S),clientType:a}),se(a,async e=>{let t=F.value.find(t=>t.id===e);return!t||t.type!==`action`?!1:Y(t.id)});let xe=async()=>{S.isTrusted||await new Promise(e=>{let t=S.events.on(ce.client.isTrustedUpdated,n=>{n&&(t(),e())})})};return(async()=>{let e=I.selectedDockId;if(!(!I.open||e==null)&&(await Promise.all([xe(),O,N]),R.value)){if(z.value!==e){R.value=!1;return}R.value=!1,await Y(e)}})(),L.set(S,U),U}export{R as createDocksContext};

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./context-ls7djbvO.js","./docks-N5v0F-cv.js","./keybindings-BCnz_dMa.js","./DockStandalone-BFVG1OxE.js"])))=>i.map(i=>d[i]);
import{Ct as e,Et as t,Tt as n,at as r,c as i,l as a,n as o,p as s,s as c,y as l}from"./docks-N5v0F-cv.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})(),String.fromCharCode;var u=/^[\s\w\0+.-]{2,}:([/\\]{1,2})/,d=/^[\s\w\0+.-]{2,}:([/\\]{2})?/,f=/^([/\\]\s*){2,}[^/\\]/,p=/\/$|\/\?|\/#/,m=/^\.?\//;function h(e,t={}){return typeof t==`boolean`&&(t={acceptRelative:t}),t.strict?u.test(e):d.test(e)||(t.acceptRelative?f.test(e):!1)}function g(e=``,t){return t?p.test(e):e.endsWith(`/`)}function _(e=``,t){if(!t)return(g(e)?e.slice(0,-1):e)||`/`;if(!g(e,!0))return e||`/`;let n=e,r=``,i=e.indexOf(`#`);i!==-1&&(n=e.slice(0,i),r=e.slice(i));let[a,...o]=n.split(`?`);return((a.endsWith(`/`)?a.slice(0,-1):a)||`/`)+(o.length>0?`?${o.join(`?`)}`:``)+r}function v(e=``,t){if(!t)return e.endsWith(`/`)?e:e+`/`;if(g(e,!0))return e||`/`;let n=e,r=``,i=e.indexOf(`#`);if(i!==-1&&(n=e.slice(0,i),r=e.slice(i),!n))return r;let[a,...o]=n.split(`?`);return a+`/`+(o.length>0?`?${o.join(`?`)}`:``)+r}function y(e,t){if(b(t)||h(e))return e;let n=_(t);if(e.startsWith(n)){let t=e[n.length];if(!t||t===`/`||t===`?`)return e}return ee(n,e)}function b(e){return!e||e===`/`}function x(e){return e&&e!==`/`}function ee(e,...t){let n=e||``;for(let e of t.filter(e=>x(e)))if(n){let t=e.replace(m,``);n=v(n)+t}else n=e;return n}function S(e,t){let n=e.match(d);return n||=e.match(/^\/{2,}/),n?t+e.slice(n[0].length):t+e}function C(e){return typeof e==`string`?`'${e}'`:new re().serialize(e)}var te=` _-,;:!?.'"()[]{}@*/\\&#%\`^+<=>|~$0123456789abcdefghijklmnopqrstuvwxyz`,w=(function(){let e=new Uint8Array(128);for(let t=0;t<69;t++)e[te.charCodeAt(t)]=t+1;for(let t=65;t<=90;t++)e[t]=e[t+32];return e})();function ne(e,t){if(e===t)return 0;let n=Math.min(e.length,t.length),r=0;for(let i=0;i<n;i++){let n=e.charCodeAt(i),a=t.charCodeAt(i);if(n===a)continue;let o=n<128&&w[n]?w[n]:n+128,s=a<128&&w[a]?w[a]:a+128;if(o!==s)return o<s?-1:1;r===0&&(r=n>a?-1:1)}return e.length===t.length?r:e.length<t.length?-1:1}var re=(function(){class e{#e=new Map;compare(e,t){let n=typeof e,r=typeof t;return n===`string`&&r===`string`?ne(e,t):n===`number`&&r===`number`?e-t:ne(this.serialize(e,!0),this.serialize(t,!0))}serialize(e,t){if(e===null)return`null`;switch(typeof e){case`string`:return t?e:`'${e}'`;case`bigint`:return`${e}n`;case`object`:return this.$object(e);case`function`:return this.$function(e)}return String(e)}serializeObject(e){let t=Object.prototype.toString.call(e);if(t!==`[object Object]`)return this.serializeBuiltInType(t.length<10?`unknown:${t}`:t.slice(8,-1),e);let n=e.constructor,r=n===Object||n===void 0?``:n.name;if(r!==``&&globalThis[r]===n)return this.serializeBuiltInType(r,e);if(`toJSON`in e&&typeof e.toJSON==`function`){let t=e.toJSON();return r+(typeof t==`object`&&t?this.$object(t):`(${this.serialize(t)})`)}let i=Object.keys(e).sort(ne),a=`${r}{`;for(let t=0;t<i.length;t++){let n=i[t];a+=`${n}:${this.serialize(e[n])}`,t<i.length-1&&(a+=`,`)}return a+`}`}serializeBuiltInType(e,t){let n=this[`$`+e];if(n)return n.call(this,t);if(typeof t.entries==`function`)return this.serializeObjectEntries(e,t.entries());throw Error(`Cannot serialize ${e}`)}serializeObjectEntries(e,t){let n=Array.from(t).sort((e,t)=>this.compare(e[0],t[0])),r=`${e}{`;for(let e=0;e<n.length;e++){let[t,i]=n[e];r+=`${this.serialize(t,!0)}:${this.serialize(i)}`,e<n.length-1&&(r+=`,`)}return r+`}`}$object(e){let t=this.#e.get(e);return t===void 0&&(this.#e.set(e,`#${this.#e.size}`),t=this.serializeObject(e),this.#e.set(e,t)),t}$function(e){let t=Function.prototype.toString.call(e);return t.slice(-15)===`[native code] }`?`${e.name||``}()[native]`:`${e.name}(${e.length})${t.replace(/\s*\n\s*/g,``)}`}$Array(e){let t=`[`;for(let n=0;n<e.length;n++)t+=this.serialize(e[n]),n<e.length-1&&(t+=`,`);return t+`]`}$Date(e){try{return`Date(${e.toISOString()})`}catch{return`Date(null)`}}$ArrayBuffer(e){return`ArrayBuffer[${new Uint8Array(e).join(`,`)}]`}$Set(e){return`Set${this.$Array(Array.from(e).sort((e,t)=>this.compare(e,t)))}`}$Map(e){return this.serializeObjectEntries(`Map`,e.entries())}}for(let t of[`Error`,`RegExp`,`URL`])e.prototype[`$`+t]=function(e){return`${t}(${e})`};for(let t of[`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float32Array`,`Float64Array`])e.prototype[`$`+t]=function(e){return`${t}[${e.join(`,`)}]`};for(let t of[`BigInt64Array`,`BigUint64Array`])e.prototype[`$`+t]=function(e){return`${t}[${e.join(`n,`)}${e.length>0?`n`:``}]`};return e})(),ie=[1779033703,-1150833019,1013904242,-1521486534,1359893119,-1694144372,528734635,1541459225],ae=[1116352408,1899447441,-1245643825,-373957723,961987163,1508970993,-1841331548,-1424204075,-670586216,310598401,607225278,1426881987,1925078388,-2132889090,-1680079193,-1046744716,-459576895,-272742522,264347078,604807628,770255983,1249150122,1555081692,1996064986,-1740746414,-1473132947,-1341970488,-1084653625,-958395405,-710438585,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,-2117940946,-1838011259,-1564481375,-1474664885,-1035236496,-949202525,-778901479,-694614492,-200395387,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,-2067236844,-1933114872,-1866530822,-1538233109,-1090935817,-965641998],oe=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`,T=[],se=class{_data=new ce;_hash=new ce([...ie]);_nDataBytes=0;_minBufferSize=0;finalize(e){e&&this._append(e);let t=this._nDataBytes*8,n=this._data.sigBytes*8;return this._data.words[n>>>5]|=128<<24-n%32,this._data.words[(n+64>>>9<<4)+14]=Math.floor(t/4294967296),this._data.words[(n+64>>>9<<4)+15]=t,this._data.sigBytes=this._data.words.length*4,this._process(),this._hash}_doProcessBlock(e,t){let n=this._hash.words,r=n[0],i=n[1],a=n[2],o=n[3],s=n[4],c=n[5],l=n[6],u=n[7];for(let n=0;n<64;n++){if(n<16)T[n]=e[t+n]|0;else{let e=T[n-15],t=(e<<25|e>>>7)^(e<<14|e>>>18)^e>>>3,r=T[n-2],i=(r<<15|r>>>17)^(r<<13|r>>>19)^r>>>10;T[n]=t+T[n-7]+i+T[n-16]}let d=s&c^~s&l,f=r&i^r&a^i&a,p=(r<<30|r>>>2)^(r<<19|r>>>13)^(r<<10|r>>>22),m=(s<<26|s>>>6)^(s<<21|s>>>11)^(s<<7|s>>>25),h=u+m+d+ae[n]+T[n],g=p+f;u=l,l=c,c=s,s=o+h|0,o=a,a=i,i=r,r=h+g|0}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+a|0,n[3]=n[3]+o|0,n[4]=n[4]+s|0,n[5]=n[5]+c|0,n[6]=n[6]+l|0,n[7]=n[7]+u|0}_append(e){typeof e==`string`&&(e=ce.fromUtf8(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes}_process(e){let t,n=this._data.sigBytes/64;n=e?Math.ceil(n):Math.max((n|0)-this._minBufferSize,0);let r=n*16,i=Math.min(r*4,this._data.sigBytes);if(r){for(let e=0;e<r;e+=16)this._doProcessBlock(this._data.words,e);t=this._data.words.splice(0,r),this._data.sigBytes-=i}return new ce(t,i)}},ce=class e{words;sigBytes;constructor(e,t){e=this.words=e||[],this.sigBytes=t===void 0?e.length*4:t}static fromUtf8(t){let n=unescape(encodeURIComponent(t)),r=n.length,i=[];for(let e=0;e<r;e++)i[e>>>2]|=(n.charCodeAt(e)&255)<<24-e%4*8;return new e(i,r)}toBase64(){let e=[];for(let t=0;t<this.sigBytes;t+=3){let n=this.words[t>>>2]>>>24-t%4*8&255,r=this.words[t+1>>>2]>>>24-(t+1)%4*8&255,i=this.words[t+2>>>2]>>>24-(t+2)%4*8&255,a=n<<16|r<<8|i;for(let n=0;n<4&&t*8+n*6<this.sigBytes*8;n++)e.push(oe.charAt(a>>>6*(3-n)&63))}return e.join(``)}concat(e){if(this.words[this.sigBytes>>>2]&=4294967295<<32-this.sigBytes%4*8,this.words.length=Math.ceil(this.sigBytes/4),this.sigBytes%4)for(let t=0;t<e.sigBytes;t++){let n=e.words[t>>>2]>>>24-t%4*8&255;this.words[this.sigBytes+t>>>2]|=n<<24-(this.sigBytes+t)%4*8}else for(let t=0;t<e.sigBytes;t+=4)this.words[this.sigBytes+t>>>2]=e.words[t>>>2];this.sigBytes+=e.sigBytes}};function le(e){return new se().finalize(e).toBase64()}function ue(e){return le(C(e))}function de(e){return ue(e)}function E(e,t){let n=`\x1B[${e}m`,r=`\x1B[${t}m`;return((e,...t)=>{if(Array.isArray(e)&&`raw`in e){let i=e,a=``;for(let e=0;e<i.length;e++)a+=i[e],e<t.length&&(a+=String(t[e]));return`${n}${a}${r}`}return`${n}${String(e)}${r}`})}var fe={blue:E(34,39),cyan:E(36,39),gray:E(90,39),green:E(32,39),red:E(31,39),yellow:E(33,39),bold:E(1,22),dim:E(2,22),reset:E(0,0),underline:E(4,24)},pe=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`;function me(e=21){let t=``,n=e;for(;n--;)t+=pe[Math.random()*64|0];return t}var he=Symbol.for(`immer-nothing`),D=Symbol.for(`immer-draftable`),O=Symbol.for(`immer-state`),ge=[function(e){return`The plugin for '${e}' has not been loaded into Immer. To enable the plugin, import and call \`enable${e}()\` when initializing your application.`},function(e){return`produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${e}'`},`This object has been frozen and should not be mutated`,function(e){return`Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? `+e},`An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.`,`Immer forbids circular references`,"The first or second argument to `produce` must be a function","The third argument to `produce` must be a function or undefined","First argument to `createDraft` must be a plain object, an array, or an immerable object","First argument to `finishDraft` must be a draft returned by `createDraft`",function(e){return`'current' expects a draft, got: ${e}`},`Object.defineProperty() cannot be used on an Immer draft`,`Object.setPrototypeOf() cannot be used on an Immer draft`,`Immer only supports deleting array indices`,`Immer only supports setting array indices and the 'length' property`,function(e){return`'original' expects a draft, got: ${e}`}];function k(e,...t){{let n=ge[e],r=U(n)?n.apply(null,t):n;throw Error(`[Immer] ${r}`)}}var A=Object,j=A.getPrototypeOf,M=`constructor`,_e=`prototype`,ve=`configurable`,ye=`enumerable`,be=`writable`,xe=`value`,N=e=>!!e&&!!e[O];function P(e){return e?we(e)||z(e)||!!e[D]||!!e[M]?.[D]||B(e)||V(e):!1}var Se=A[_e][M].toString(),Ce=new WeakMap;function we(e){if(!e||!H(e))return!1;let t=j(e);if(t===null||t===A[_e])return!0;let n=A.hasOwnProperty.call(t,M)&&t[M];if(n===Object)return!0;if(!U(n))return!1;let r=Ce.get(n);return r===void 0&&(r=Function.toString.call(n),Ce.set(n,r)),r===Se}function F(e,t,n=!0){I(e)===0?(n?Reflect.ownKeys(e):A.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function I(e){let t=e[O];return t?t.type_:z(e)?1:B(e)?2:V(e)?3:0}var L=(e,t,n=I(e))=>n===2?e.has(t):A[_e].hasOwnProperty.call(e,t),R=(e,t,n=I(e))=>n===2?e.get(t):e[t],Te=(e,t,n,r=I(e))=>{r===2?e.set(t,n):r===3?e.add(n):e[t]=n};function Ee(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}var z=Array.isArray,B=e=>e instanceof Map,V=e=>e instanceof Set,H=e=>typeof e==`object`,U=e=>typeof e==`function`,De=e=>typeof e==`boolean`;function Oe(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var ke=e=>H(e)?e?.[O]:null,W=e=>e.copy_||e.base_,Ae=e=>e.modified_?e.copy_:e.base_;function je(e,t){if(B(e))return new Map(e);if(V(e))return new Set(e);if(z(e))return Array[_e].slice.call(e);let n=we(e);if(t===!0||t===`class_only`&&!n){let t=A.getOwnPropertyDescriptors(e);delete t[O];let n=Reflect.ownKeys(t);for(let r=0;r<n.length;r++){let i=n[r],a=t[i];a[be]===!1&&(a[be]=!0,a[ve]=!0),(a.get||a.set)&&(t[i]={[ve]:!0,[be]:!0,[ye]:a[ye],[xe]:e[i]})}return A.create(j(e),t)}{let t=j(e);if(t!==null&&n)return{...e};let r=A.create(t);return A.assign(r,e)}}function Me(e,t=!1){return Fe(e)||N(e)||!P(e)?e:(I(e)>1&&A.defineProperties(e,{set:Pe,add:Pe,clear:Pe,delete:Pe}),A.freeze(e),t&&F(e,(e,t)=>{Me(t,!0)},!1),e)}function Ne(){k(2)}var Pe={[xe]:Ne};function Fe(e){return e===null||!H(e)||A.isFrozen(e)}var Ie=`MapSet`,Le=`Patches`,Re=`ArrayMethods`,ze={};function G(e){let t=ze[e];return t||k(0,e),t}var Be=e=>!!ze[e];function Ve(e,t){ze[e]||(ze[e]=t)}var K,He=()=>K,Ue=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:Be(Ie)?G(Ie):void 0,arrayMethodsPlugin_:Be(Re)?G(Re):void 0});function We(e,t){t&&(e.patchPlugin_=G(Le),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function Ge(e){Ke(e),e.drafts_.forEach(Je),e.drafts_=null}function Ke(e){e===K&&(K=e.parent_)}var qe=e=>K=Ue(K,e);function Je(e){let t=e[O];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function Ye(e,t){t.unfinalizedDrafts_=t.drafts_.length;let n=t.drafts_[0];if(e!==void 0&&e!==n){n[O].modified_&&(Ge(t),k(4)),P(e)&&(e=Xe(t,e));let{patchPlugin_:r}=t;r&&r.generateReplacementPatches_(n[O].base_,e,t)}else e=Xe(t,n);return Ze(t,e,!0),Ge(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e===he?void 0:e}function Xe(e,t){if(Fe(t))return t;let n=t[O];if(!n)return at(t,e.handledSet_,e);if(!$e(n,e))return t;if(!n.modified_)return n.base_;if(!n.finalized_){let{callbacks_:t}=n;if(t)for(;t.length>0;)t.pop()(e);rt(n,e)}return n.copy_}function Ze(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&Me(t,n)}function Qe(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var $e=(e,t)=>e.scope_===t,et=[];function tt(e,t,n,r){let i=W(e),a=e.type_;if(r!==void 0&&R(i,r,a)===t){Te(i,r,n,a);return}if(!e.draftLocations_){let t=e.draftLocations_=new Map;F(i,(e,n)=>{if(N(n)){let r=t.get(n)||[];r.push(e),t.set(n,r)}})}let o=e.draftLocations_.get(t)??et;for(let e of o)Te(i,e,n,a)}function nt(e,t,n){e.callbacks_.push(function(r){let i=t;if(!i||!$e(i,r))return;r.mapSetPlugin_?.fixSetContents(i);let a=Ae(i);tt(e,i.draft_??i,a,n),rt(i,r)})}function rt(e,t){if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){let{patchPlugin_:n}=t;if(n){let r=n.getPath(e);r&&n.generatePatches_(e,r,t)}Qe(e)}}function it(e,t,n){let{scope_:r}=e;if(N(n)){let i=n[O];$e(i,r)&&i.callbacks_.push(function(){mt(e),tt(e,n,Ae(i),t)})}else P(n)&&e.callbacks_.push(function(){let i=W(e);e.type_===3?i.has(n)&&at(n,r.handledSet_,r):R(i,t,e.type_)===n&&r.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&at(R(e.copy_,t,e.type_),r.handledSet_,r)})}function at(e,t,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||N(e)||t.has(e)||!P(e)||Fe(e)?e:(t.add(e),F(e,(r,i)=>{if(N(i)){let t=i[O];$e(t,n)&&(Te(e,r,Ae(t),e.type_),Qe(t))}else P(i)&&at(i,t,n)}),e)}function ot(e,t){let n=z(e),r={type_:+!!n,scope_:t?t.scope_:He(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0},i=r,a=st;n&&(i=[r],a=ct);let{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,[s,r]}var st={get(e,t){if(t===O)return e;let n=e.scope_.arrayMethodsPlugin_,r=e.type_===1&&typeof t==`string`;if(r&&n?.isArrayOperationMethod(t))return n.createMethodInterceptor(e,t);let i=W(e);if(!L(i,t,e.type_))return dt(e,i,t);let a=i[t];if(e.finalized_||!P(a)||r&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&Oe(t))return a;if(a===lt(e.base_,t)||ut(e,t,a)){mt(e);let n=e.type_===1?+t:t,r=gt(e.scope_,a,e,n);return e.copy_[n]=r}return a},has(e,t){return t in W(e)},ownKeys(e){return Reflect.ownKeys(W(e))},set(e,t,n){let r=ft(W(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){let r=lt(W(e),t),i=r?.[O];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_.set(t,!1),!0;if(Ee(n,r)&&(n!==void 0||L(e.base_,t,e.type_)))return!0;mt(e),pt(e)}return e.copy_[t]===n&&(n!==void 0||L(e.copy_,t,e.type_))||Number.isNaN(n)&&Number.isNaN(e.copy_[t])?!0:(e.copy_[t]=n,e.assigned_.set(t,!0),it(e,t,n),!0)},deleteProperty(e,t){return mt(e),lt(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),pt(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let n=W(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{[be]:!0,[ve]:e.type_!==1||t!==`length`,[ye]:r[ye],[xe]:n[t]}},defineProperty(){k(11)},getPrototypeOf(e){return j(e.base_)},setPrototypeOf(){k(12)}},ct={};for(let e in st){let t=st[e];ct[e]=function(){let e=arguments;return e[0]=e[0][0],t.apply(this,e)}}ct.deleteProperty=function(e,t){return isNaN(parseInt(t))&&k(13),ct.set.call(this,e,t,void 0)},ct.set=function(e,t,n){return t!==`length`&&isNaN(parseInt(t))&&k(14),st.set.call(this,e[0],t,n,e[0])};function lt(e,t){let n=e[O];return(n?W(n):e)[t]}function ut(e,t,n){return e.type_!==1||!e.allIndicesReassigned_||e.assigned_?.get(t)||!P(n)||n[O]?!1:e.baseRefs_.has(n)}function dt(e,t,n){let r=ft(t,n);return r?xe in r?r[xe]:r.get?.call(e.draft_):void 0}function ft(e,t){if(!(t in e))return;let n=j(e);for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=j(n)}}function pt(e){e.modified_||(e.modified_=!0,e.parent_&&pt(e.parent_))}function mt(e){e.copy_||=(e.assigned_=new Map,je(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var ht=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(e,t,n)=>{if(U(e)&&!U(t)){let n=t;t=e;let r=this;return function(e=n,...i){return r.produce(e,e=>t.call(this,e,...i))}}U(t)||k(6),n!==void 0&&!U(n)&&k(7);let r;if(P(e)){let i=qe(this),a=gt(i,e,void 0),o=!0;try{r=t(a),o=!1}finally{o?Ge(i):Ke(i)}return We(i,n),Ye(r,i)}if(!e||!H(e)){if(r=t(e),r===void 0&&(r=e),r===he&&(r=void 0),this.autoFreeze_&&Me(r,!0),n){let t=[],i=[];G(Le).generateReplacementPatches_(e,r,{patches_:t,inversePatches_:i}),n(t,i)}return r}k(1,e)},this.produceWithPatches=(e,t)=>{if(U(e))return(t,...n)=>this.produceWithPatches(t,t=>e(t,...n));let n,r;return[this.produce(e,t,(e,t)=>{n=e,r=t}),n,r]},De(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),De(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),De(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){P(e)||k(8),N(e)&&(e=_t(e));let t=qe(this),n=gt(t,e,void 0);return n[O].isManual_=!0,Ke(t),n}finishDraft(e,t){let n=e&&e[O];(!n||!n.isManual_)&&k(9);let{scope_:r}=n;return We(r,t),Ye(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){let r=t[n];if(r.path.length===0&&r.op===`replace`){e=r.value;break}}n>-1&&(t=t.slice(n+1));let r=G(Le).applyPatches_;return N(e)?r(e,t):this.produce(e,e=>r(e,t))}};function gt(e,t,n,r){let[i,a]=B(t)?G(Ie).proxyMap_(t,n):V(t)?G(Ie).proxySet_(t,n):ot(t,n);return(n?.scope_??He()).drafts_.push(i),a.callbacks_=n?.callbacks_??[],a.key_=r,n&&r!==void 0?nt(n,a,r):a.callbacks_.push(function(e){e.mapSetPlugin_?.fixSetContents(a);let{patchPlugin_:t}=e;a.modified_&&t&&t.generatePatches_(a,[],e)}),i}function _t(e){return N(e)||k(10,e),vt(e)}function vt(e){if(!P(e)||Fe(e))return e;let t=e[O],n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=je(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=je(e,!0);return F(n,(e,t)=>{Te(n,e,vt(t))},r),t&&(t.finalized_=!1),n}function yt(){ge.push(`Sets cannot have "replace" patches.`,function(e){return`Unsupported patch operation: `+e},function(e){return`Cannot apply patch, path doesn't resolve: `+e},`Patching reserved attributes like __proto__, prototype and constructor is not allowed`);function e(n,r=[]){if(n.key_!==void 0){let e=n.parent_.copy_??n.parent_.base_,t=ke(R(e,n.key_)),i=R(e,n.key_);if(i===void 0||i!==n.draft_&&i!==n.base_&&i!==n.copy_||t!=null&&t.base_!==n.base_)return null;let a=n.parent_.type_===3,o;if(a){let e=n.parent_;o=Array.from(e.drafts_.keys()).indexOf(n.key_)}else o=n.key_;if(!(a&&e.size>o||L(e,o)))return null;r.push(o)}if(n.parent_)return e(n.parent_,r);r.reverse();try{t(n.copy_,r)}catch{return null}return r}function t(e,t){let n=e;for(let e=0;e<t.length-1;e++){let r=t[e];if(n=R(n,r),!H(n)||n===null)throw Error(`Cannot resolve path at '${t.join(`/`)}'`)}return n}let n=`replace`,r=`remove`;function i(e,t,n){if(e.scope_.processedForPatches_.has(e))return;e.scope_.processedForPatches_.add(e);let{patches_:r,inversePatches_:i}=n;switch(e.type_){case 0:case 2:return o(e,t,r,i);case 1:return a(e,t,r,i);case 3:return s(e,t,r,i)}}function a(e,t,i,a){let{base_:o,assigned_:s}=e,c=e.copy_;c.length<o.length&&([o,c]=[c,o],[i,a]=[a,i]);let l=e.allIndicesReassigned_===!0;for(let e=0;e<o.length;e++){let r=c[e],u=o[e];if((l||s?.get(e.toString()))&&r!==u){let o=r?.[O];if(o&&o.modified_)continue;let s=t.concat([e]);i.push({op:n,path:s,value:d(r)}),a.push({op:n,path:s,value:d(u)})}}for(let e=o.length;e<c.length;e++){let n=t.concat([e]);i.push({op:`add`,path:n,value:d(c[e])})}for(let e=c.length-1;o.length<=e;--e){let n=t.concat([e]);a.push({op:r,path:n})}}function o(e,t,i,a){let{base_:o,copy_:s,type_:c}=e;F(e.assigned_,(e,l)=>{let u=R(o,e,c),f=R(s,e,c),p=l?L(o,e)?n:`add`:r;if(u===f&&p===n)return;let m=t.concat(e);i.push(p===r?{op:p,path:m}:{op:p,path:m,value:d(f)}),a.push(p===`add`?{op:r,path:m}:p===r?{op:`add`,path:m,value:d(u)}:{op:n,path:m,value:d(u)})})}function s(e,t,n,i){let{base_:a,copy_:o}=e,s=0;a.forEach(e=>{if(!o.has(e)){let a=t.concat([s]);n.push({op:r,path:a,value:e}),i.unshift({op:`add`,path:a,value:e})}s++}),s=0,o.forEach(e=>{if(!a.has(e)){let a=t.concat([s]);n.push({op:`add`,path:a,value:e}),i.unshift({op:r,path:a,value:e})}s++})}function c(e,t,r){let{patches_:i,inversePatches_:a}=r;i.push({op:n,path:[],value:t===he?void 0:t}),a.push({op:n,path:[],value:e})}function l(e,t){return t.forEach(t=>{let{path:i,op:a}=t,o=e;for(let e=0;e<i.length-1;e++){let t=I(o),n=i[e];typeof n!=`string`&&typeof n!=`number`&&(n=``+n),(t===0||t===1)&&(n===`__proto__`||n===M)&&k(19),U(o)&&n===_e&&k(19),o=R(o,n),(o===null||!H(o))&&k(18,i.join(`/`))}let s=I(o),c=u(t.value),l=i[i.length-1];switch(a){case n:switch(s){case 2:return o.set(l,c);case 3:k(16);default:return o[l]=c}case`add`:switch(s){case 1:return l===`-`?o.push(c):o.splice(l,0,c);case 2:return o.set(l,c);case 3:return o.add(c);default:return o[l]=c}case r:switch(s){case 1:return o.splice(l,1);case 2:return o.delete(l);case 3:return o.delete(t.value);default:return delete o[l]}default:k(17,a)}}),e}function u(e){if(!P(e))return e;if(z(e))return e.map(u);if(B(e))return new Map(Array.from(e.entries()).map(([e,t])=>[e,u(t)]));if(V(e))return new Set(Array.from(e).map(u));let t=Object.create(j(e));for(let n in e)t[n]=u(e[n]);return L(e,D)&&(t[D]=e[D]),t}function d(e){return N(e)?u(e):e}Ve(Le,{applyPatches_:l,generatePatches_:i,generateReplacementPatches_:c,getPath:e})}var bt=new ht,xt=bt.produce,St=bt.produceWithPatches.bind(bt),Ct=bt.applyPatches.bind(bt),wt=1e3;function Tt(e,t){if(e.add(t),e.size>wt){let t=e.values().next().value;t!==void 0&&e.delete(t)}}function Et(e){let{enablePatches:n=!1}=e;n&&yt();let r=t(),i=e.initialValue,a=new Set;return{on:r.on,value:()=>i,patch:(e,t=me())=>{a.has(t)||(yt(),i=Ct(i,e),Tt(a,t),r.emit(`updated`,i,void 0,t))},mutate:(e,t=me())=>{if(!a.has(t)){if(Tt(a,t),n){let[n,a]=St(i,e);i=n,r.emit(`updated`,i,a,t)}else i=xt(i,e),r.emit(`updated`,i,void 0,t)}},syncIds:a}}var Dt=typeof self==`object`?self:globalThis,Ot=new Set([`Error`,`EvalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`,`AggregateError`]),kt=new Set([`Boolean`,`Number`,`String`,`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float16Array`,`Float32Array`,`Float64Array`,`BigInt64Array`,`BigUint64Array`]);function At(e,t){let n=(t,n)=>(e.set(n,t),t),r=i=>{if(e.has(i))return e.get(i);let[a,o]=t[i];switch(a){case 0:case-1:return n(o,i);case 1:{let e=n([],i);for(let t of o)e.push(r(t));return e}case 2:{let e=n({},i);for(let[t,n]of o)e[r(t)]=r(n);return e}case 3:return n(new Date(o),i);case 4:{let{source:e,flags:t}=o;return n(new RegExp(e,t),i)}case 5:{let e=n(new Map,i);for(let[t,n]of o)e.set(r(t),r(n));return e}case 6:{let e=n(new Set,i);for(let t of o)e.add(r(t));return e}case 7:{let{name:e,message:t}=o,r=Ot.has(e)?Dt[e]:void 0;return n(new(r??Dt.Error)(t),i)}case 8:return n(BigInt(o),i);case`BigInt`:return n(Object(BigInt(o)),i);case`ArrayBuffer`:return n(new Uint8Array(o).buffer,o);case`DataView`:{let{buffer:e}=new Uint8Array(o);return n(new DataView(e),o)}}if(typeof a==`string`&&kt.has(a))return n(new Dt[a](o),i);throw TypeError(`unable to deserialize unsafe or unknown type: ${String(a)}`)};return r}function jt(e){return At(new Map,e)(0)}var q=``,{toString:Mt}={},{keys:Nt}=Object;function Pt(e){let t=typeof e;if(t!==`object`||!e)return[0,t];let n=Mt.call(e).slice(8,-1);switch(n){case`Array`:return[1,q];case`Object`:return[2,q];case`Date`:return[3,q];case`RegExp`:return[4,q];case`Map`:return[5,q];case`Set`:return[6,q];case`DataView`:return[1,n]}return n.includes(`Array`)?[1,n]:n.includes(`Error`)?[7,n]:[2,n]}function Ft([e,t]){return e===0&&(t===`function`||t===`symbol`)}function It(e,t,n,r){let i=(e,t)=>{let i=r.push(e)-1;return n.set(t,i),i},a=r=>{if(n.has(r))return n.get(r);let[o,s]=Pt(r);switch(o){case 0:{let t=r;switch(s){case`bigint`:o=8,t=r.toString();break;case`function`:case`symbol`:if(e)throw TypeError(`unable to serialize ${s}`);t=null;break;case`undefined`:return i([-1],r)}return i([o,t],r)}case 1:{if(s){let e=r;return s===`DataView`?e=new Uint8Array(r.buffer):s===`ArrayBuffer`&&(e=new Uint8Array(r)),i([s,[...e]],r)}let e=[],t=i([o,e],r);for(let t of r)e.push(a(t));return t}case 2:{if(s)switch(s){case`BigInt`:return i([s,r.toString()],r);case`Boolean`:case`Number`:case`String`:return i([s,r.valueOf()],r)}if(t&&`toJSON`in r)return a(r.toJSON());let n=[],c=i([o,n],r);for(let t of Nt(r))(e||!Ft(Pt(r[t])))&&n.push([a(t),a(r[t])]);return c}case 3:return i([o,r.toISOString()],r);case 4:{let{source:e,flags:t}=r;return i([o,{source:e,flags:t}],r)}case 5:{let t=[],n=i([o,t],r);for(let[n,i]of r)(e||!(Ft(Pt(n))||Ft(Pt(i))))&&t.push([a(n),a(i)]);return n}case 6:{let t=[],n=i([o,t],r);for(let n of r)(e||!Ft(Pt(n)))&&t.push(a(n));return n}}let{message:c}=r;return i([o,{name:s,message:c}],r)};return a}function Lt(e,t={}){let n=[];return It(!(t.json||t.lossy),!!t.json,new Map,n)(e),n}var{parse:Rt,stringify:zt}=JSON,Bt={json:!0,lossy:!0};function Vt(e){return jt(Rt(e))}function Ht(e){return zt(Lt(e,Bt))}function Ut(e){return jt(e)}function Wt(e){return Ht(e)}function Gt(e){return Vt(e)}var Kt=256,qt=class extends Error{name=`StreamClosedError`};function Jt(e={}){let n=e.id??me(),r=Math.max(0,e.replayWindow??0),i=t(),a=new AbortController,o=[],s=!1,c=0;function l(e){if(s)throw new qt(`Cannot write to a closed stream "${n}"`);c+=1,r>0&&(o.push({seq:c,chunk:e}),o.length>r&&o.splice(0,o.length-r)),i.emit(`chunk`,c,e)}function u(e){if(s)return;s=!0;let t=Xt(e);a.abort(e),i.emit(`end`,t)}function d(){s||(s=!0,a.signal.aborted||a.abort(`stream closed`),i.emit(`end`,void 0))}function f(e){s||a.signal.aborted||a.abort(e??`aborted`)}let p=new WritableStream({write(e){l(e)},close(){d()},abort(e){u(e)}});return{id:n,signal:a.signal,get closed(){return s},get lastSeq(){return c},write:l,error:u,close:d,abort:f,writable:p,events:i,buffer:o}}function Yt(e={}){let t=e.id??me(),n=Math.max(1,e.highWaterMark??Kt),r=[],i=0,a=!1,o=!1,s,c,l,u;function d(){if(c){if(r.length>0){let e=r.shift(),t=c;c=void 0,t.resolve({value:e,done:!1});return}if(a){let e=c;if(c=void 0,s){let t=Error(s.message);t.name=s.name,e.reject(t)}else e.resolve({value:void 0,done:!0})}}}function f(){if(l){for(;r.length>0;){let e=r.shift();try{l.enqueue(e)}catch{break}}if(a&&l){try{if(s){let e=Error(s.message);e.name=s.name,l.error(e)}else l.close()}catch{}l=void 0}}}function p(t,s){if(!(a||o)&&!(t<=i)){if(i=t,r.push(s),r.length>n){let t=r.length-n;r.splice(0,t),e.onOverflow?.(t)}d(),u&&f()}}function m(e){a||(a=!0,s=e,d(),u&&f())}function h(){o||a||(o=!0,e.onCancel?.(),m(void 0))}function g(){return u||(u=new ReadableStream({start(e){l=e,f()},cancel(){h()}}),u)}return{id:t,get cancelled(){return o},get done(){return a},get lastSeenSeq(){return i},get readable(){return g()},cancel:h,_push:p,_end:m,[Symbol.asyncIterator](){return{next(){if(r.length>0)return Promise.resolve({value:r.shift(),done:!1});if(a){if(s){let e=Error(s.message);return e.name=s.name,Promise.reject(e)}return Promise.resolve({value:void 0,done:!0})}return new Promise((e,t)=>{c={resolve:e,reject:t}})},return(){return h(),Promise.resolve({value:void 0,done:!0})}}}}}function Xt(e){if(e instanceof Error)return{name:e.name||`Error`,message:e.message};if(typeof e==`string`)return{name:`Error`,message:e};try{return{name:`Error`,message:JSON.stringify(e)}}catch{return{name:`Error`,message:String(e)}}}function Zt(e,...t){return typeof e==`function`?e(...t):e}var Qt=Error.captureStackTrace,$t=class e extends Error{name;code;docs;fix;sources;get why(){return this.message}constructor(t,n=e){super(t.why,{cause:t.cause}),this.code=this.name=t.code,this.fix=t.fix,this.docs=t.docs,this.sources=t.sources,Qt?.(this,n)}toJSON(){return{name:this.name,why:this.why,fix:this.fix,docs:this.docs,sources:this.sources,cause:this.cause,stack:this.stack}}};function en(e,t){return typeof e==`string`?`${e}/${t.toLowerCase()}`:e?.(t)}function tn(e){let t=e.reporters??[],n={},{docsBase:r}=e;for(let i of Object.keys(e.codes)){let a=e.codes[i],o=a.docs===!1?void 0:a.docs||en(r,i),s=(e={},n={})=>{let r=new $t({code:i,why:Zt(a.why,e),fix:Zt(a.fix,e),docs:o,cause:e.cause,sources:e.sources},s);for(let e of t)e(r,n);return r};n[i]=s}return n}function nn(e){return t=>{let n=`${e.bold(e.red(`[${t.name}]`))} ${t.message}`,r=[];return t.fix&&r.push(`${e.dim(`fix:`)} ${t.fix}`),t.sources?.length&&r.push(`${e.dim(`sources:`)} ${t.sources.join(`, `)}`),t.docs&&r.push(`${e.dim(`see:`)} ${e.cyan(t.docs)}`),r.length===0?n:[n,...r.map((t,n)=>`${e.dim(n<r.length-1?`├▶`:`╰▶`)} ${t}`)].join(`
`)}}function rn(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}var an=Math.random.bind(Math),on=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`;function sn(e=21){let t=``,n=e;for(;n--;)t+=on[an()*64|0];return t}var cn=6e4,ln=e=>e,un=ln,{clearTimeout:dn,setTimeout:fn}=globalThis;function pn(e,t){let{post:n,on:r,off:i=()=>{},eventNames:a=[],serialize:o=ln,deserialize:s=un,resolver:c,bind:l=`rpc`,timeout:u=cn,proxify:d=!0}=t,f=!1,p=new Map,m,h;async function g(e,r,i,a){if(f)throw Error(`[birpc] rpc is closed, cannot call "${e}"`);let s={m:e,a:r,t:`q`};a&&(s.o=!0);let c=async e=>n(o(e));if(i){await c(s);return}if(m)try{await m}finally{m=void 0}let{promise:l,resolve:d,reject:g}=rn(),_=sn();s.i=_;let v;async function y(n=s){return u>=0&&(v=fn(()=>{try{if(t.onTimeoutError?.call(h,e,r)!==!0)throw Error(`[birpc] timeout on calling "${e}"`)}catch(e){g(e)}p.delete(_)},u),typeof v==`object`&&(v=v.unref?.())),p.set(_,{resolve:d,reject:g,timeoutId:v,method:e}),await c(n),l}try{t.onRequest?await t.onRequest.call(h,s,y,d):await y()}catch(e){if(t.onGeneralError?.call(h,e)!==!0)throw e;return}finally{dn(v),p.delete(_)}return l}let _={$call:(e,...t)=>g(e,t,!1),$callOptional:(e,...t)=>g(e,t,!1,!0),$callEvent:(e,...t)=>g(e,t,!0),$callRaw:e=>g(e.method,e.args,e.event,e.optional),$rejectPendingCalls:y,get $closed(){return f},get $meta(){return t.meta},$close:v,$functions:e};h=d?new Proxy({},{get(t,n){if(Object.hasOwn(_,n))return _[n];if(n===`then`&&!a.includes(`then`)&&!(`then`in e))return;let r=(...e)=>g(n,e,!0);if(a.includes(n))return r.asEvent=r,r;let i=(...e)=>g(n,e,!1);return i.asEvent=r,i}}):_;function v(e){f=!0,p.forEach(({reject:t,method:n})=>{let r=Error(`[birpc] rpc is closed, cannot call "${n}"`);if(e)return e.cause??=r,t(e);t(r)}),p.clear(),i(b)}function y(e){let t=Array.from(p.values()).map(({method:t,reject:n})=>e?e({method:t,reject:n}):n(Error(`[birpc]: rejected pending call "${t}".`)));return p.clear(),t}async function b(r,...i){let a;try{a=s(r)}catch(e){if(t.onGeneralError?.call(h,e)!==!0)throw e;return}if(a.t===`q`){let{m:r,a:s,o:u}=a,d,f,p=await(c?c.call(h,r,e[r]):e[r]);if(u&&(p||=()=>void 0),!p)f=Error(`[birpc] function "${r}" not found`);else try{d=await p.apply(l===`rpc`?h:e,s)}catch(e){f=e}if(a.i){if(f&&t.onFunctionError&&t.onFunctionError.call(h,f,r,s)===!0)return;if(!f)try{await n(o({t:`s`,i:a.i,r:d}),...i);return}catch(e){if(f=e,t.onGeneralError?.call(h,e,r,s)!==!0)throw e}try{await n(o({t:`s`,i:a.i,e:f}),...i)}catch(e){if(t.onGeneralError?.call(h,e,r,s)!==!0)throw e}}}else{let{i:e,r:t,e:n}=a,r=p.get(e);r&&(dn(r.timeoutId),n?r.reject(n):r.resolve(t)),p.delete(e)}}return m=r(b),h}var J={bus:{agentManifestChanged:`agent:manifest:changed`,agentToolRegistered:`agent:tool:registered`,agentToolUnregistered:`agent:tool:unregistered`,agentResourceRegistered:`agent:resource:registered`,agentResourceUnregistered:`agent:resource:unregistered`},client:{isTrustedUpdated:`rpc:is-trusted:updated`,error:`rpc:error`,connectionStatus:`connection:status`,connectionError:`connection:error`},broadcast:{authRevoked:`devframe:auth:revoked`,clientStateUpdated:`devframe:rpc:client-state:updated`,clientStatePatch:`devframe:rpc:client-state:patch`,streamingChunk:`devframe:streaming:chunk`,streamingEnd:`devframe:streaming:end`,streamingUploadCancel:`devframe:streaming:upload-cancel`},postMessage:{remoteAssetsError:`devframe:remote-assets-error`}},mn=`__connection.json`,hn=`__DEVFRAME_CONNECTION__`,gn=`x-birpc-session`,_n=`__rpc-dump/index.json`,vn=`devframe:services`,yn=`devframe_otp`,bn=`devframe_auth_token`;J.postMessage.remoteAssetsError;var xn=class{cacheMap=new Map;options;keySerializer;constructor(e){this.options=e,this.keySerializer=e.keySerializer||(e=>de(e))}updateOptions(e){this.options={...this.options,...e}}cached(e,t){let n=this.cacheMap.get(e);if(n)return n.get(this.keySerializer(t))}has(e,t){return this.cacheMap.get(e)?.has(this.keySerializer(t))??!1}apply(e,t){let n=this.cacheMap.get(e.m)||new Map;n.set(this.keySerializer(e.a),t),this.cacheMap.set(e.m,n)}validate(e){return this.options.functions.includes(e)}clear(e){e?this.cacheMap.delete(e):this.cacheMap.clear()}},Sn=nn(fe);function Cn(e,{method:t=`warn`}={}){console[t](Sn(e))}function wn(e){return tn({...e,reporters:[Cn,...e.reporters??[]]})}var Y=wn({docsBase:`https://devfra.me/errors`,codes:{DF0019:{why:e=>`RPC function "${e.name}" has \`agent\` set but \`jsonSerializable\` is not \`true\` — MCP requires JSON-serializable data.`,fix:"Set `jsonSerializable: true` if the payload is JSON-safe, or remove `agent` to keep it RPC-only."},DF0020:{why:e=>`RPC function "${e.name}" declares \`jsonSerializable: true\` but the value at "${e.path}" is a ${e.type}.`,fix:"Either drop `jsonSerializable: true` (falls back to structured-clone) or change the value to a JSON-safe shape."},DF0021:{why:e=>`RPC function "${e.name}" is already registered`,fix:"Use the `force` parameter to overwrite an existing registration."},DF0022:{why:e=>`RPC function "${e.name}" is not registered. Use register() to add new functions.`},DF0023:{why:e=>`RPC function "${e.name}" is not registered`},DF0024:{why:e=>`Either handler or setup function must be provided for RPC function "${e.name}"`},DF0025:{why:e=>`Function "${e.name}" not found in dump store`},DF0026:{why:e=>`No dump match for "${e.name}" with args: ${e.args}`},DF0027:{why:e=>`Function "${e.name}" with type "${e.type}" cannot have dump configuration. Only "static" and "query" types support dumps.`},DF0028:{why:e=>`Function "${e.name}" with type "${e.type}" cannot use \`snapshot: true\`. Only "query" functions support this sugar; "static" functions have equivalent default behavior already.`,fix:"Remove `snapshot: true`, or change the function type to `query`."},DF0043:{why:e=>`RPC function "${e.name}" received an invalid argument at position ${e.index}: ${e.issues}`,fix:"Pass a value that satisfies the `args` schema declared for this function."},DF0044:{why:e=>`RPC function "${e.name}" returned a value that failed its \`returns\` schema: ${e.issues}`,fix:"Make the handler return a value that satisfies the `returns` schema, or relax the schema."}}});async function Tn(e,t){let n=e[`~standard`].validate(t);return n instanceof Promise?await n:n}function En(e){return e.map(e=>{let t=e.path?.map(e=>typeof e==`object`?e.key:e).join(`.`);return t?`${t}: ${e.message}`:e.message}).join(`; `)}async function Dn(e,t,n){let r=n.slice();if(!t||t.length===0)return r;for(let r=0;r<t.length;r++){let i=t[r];if(!i)continue;let a=await Tn(i,n[r]);if(a.issues)throw Y.DF0043({name:e,index:r,issues:En(a.issues)})}return r}async function On(e,t,n){if(!t)return n;let r=await Tn(t,n);if(r.issues)throw Y.DF0044({name:e,issues:En(r.issues)});return n}async function kn(e,t){if(!e.setup)return{};if(typeof t==`object`&&t){e.__cache??=new WeakMap;let n=e.__cache,r=n.get(t);return r||(r=Promise.resolve(e.setup(t)),r.catch(()=>{n.get(t)===r&&n.delete(t)}),n.set(t,r)),await r}if(!e.__promise){let n=Promise.resolve(e.setup(t));n.catch(()=>{e.__promise===n&&(e.__promise=void 0)}),e.__promise=n}return await e.__promise}async function An(e,t){let n=e.handler;if(!n){let r=await kn(e,t);if(!r.handler)throw Y.DF0024({name:e.name});n=r.handler}let r=e.args,i=e.returns;if(!r&&!i)return n;let a=n;return async(...t)=>{let n=await Dn(e.name,r,t),o=await a(...n);return await On(e.name,i,o)}}var jn=class{context;definitions=new Map;functions;_onChanged=[];constructor(e){this.context=e;let t=this.definitions,n=this;this.functions=new Proxy({},{get(e,r){let i=t.get(r);if(i)return An(i,n.context)},has(e,n){return t.has(n)},getOwnPropertyDescriptor(e,n){return{value:t.get(n)?.handler,configurable:!0,enumerable:!0}},ownKeys(){return Array.from(t.keys())}})}register(e,t=!1){if(this.definitions.has(e.name)&&!t)throw Y.DF0021({name:e.name});Mn(e),this.definitions.set(e.name,e),this._onChanged.forEach(t=>t(e.name))}update(e,t=!1){if(!this.definitions.has(e.name)&&!t)throw Y.DF0022({name:e.name});Mn(e),this.definitions.set(e.name,e),this._onChanged.forEach(t=>t(e.name))}onChanged(e){return this._onChanged.push(e),()=>{let t=this._onChanged.indexOf(e);t!==-1&&this._onChanged.splice(t,1)}}async getHandler(e){return await An(this.definitions.get(e),this.context)}getSchema(e){let t=this.definitions.get(e);if(!t)throw Y.DF0023({name:String(e)});return{args:t.args,returns:t.returns}}has(e){return this.definitions.has(e)}get(e){return this.definitions.get(e)}list(){return Array.from(this.definitions.keys())}};function Mn(e){if(e.agent&&e.jsonSerializable!==!0)throw Y.DF0019({name:e.name})}function Nn(e,t=``){return JSON.stringify(e,function(e,n){let r=this,i=r==null?n:r[e];if(i===void 0){if(Array.isArray(r))throw X(t,`undefined`,r,e);return n}if(i===null)return n;if(typeof i==`bigint`)throw X(t,`BigInt`,r,e);if(typeof i==`object`){if(i instanceof Map)throw X(t,`Map`,r,e);if(i instanceof Set)throw X(t,`Set`,r,e);if(i instanceof Date)throw X(t,`Date`,r,e);if(Array.isArray(i))return n;let a=Object.getPrototypeOf(i);if(a!==null&&a!==Object.prototype)throw X(t,i.constructor?.name??`class instance`,r,e)}return n})}function X(e,t,n,r){let i=Pn(n,r);return Y.DF0020({name:e||`<anonymous>`,type:t,path:i})}function Pn(e,t){return Array.isArray(e)?`[${t}]`:t===``?`<root>`:t}var Fn=`__DEVFRAME_CONNECTION_META__`,In=`__DEVFRAME_CONNECTION_AUTH_TOKEN__`;function Ln(e){let t=[()=>window?.[e],()=>globalThis?.[e],()=>parent.window?.[e]];for(let e of t)try{let t=e();if(t)return t}catch{}}function Rn(){return Ln(hn)}function zn(){return Ln(Fn)}function Z(e){if(e)return e;try{let e=localStorage.getItem(In);if(e)return e}catch{}return Ln(In)}function Bn(e){globalThis[hn]=e,globalThis[Fn]={...e.connectionMeta,baseUrl:e.metaBaseUrl},e.authToken&&Vn(e.authToken)}function Vn(e){try{localStorage.setItem(In,e)}catch{}globalThis[In]=e;let t=Rn();t&&(globalThis[hn]={...t,authToken:e})}function Hn(e){let t=y(mn,e);try{return new URL(t,globalThis.location?.href).href}catch{return t}}function Un(e,t){return t&&t!==e.authToken?{...e,authToken:t}:e}function Wn(){let e=Rn();if(e)return Un(e,Z()??e.authToken??e.connectionMeta.authToken);let t=zn();if(t)return{connectionMeta:t,metaBaseUrl:t.baseUrl??Hn(`./`),authToken:Z(t.authToken)}}async function Gn(e={}){if(e.connection){let t=Un(e.connection,Z(e.authToken??e.connection.authToken??e.connection.connectionMeta.authToken));return Bn(t),t}let t=Array.isArray(e.baseURL)?e.baseURL:[e.baseURL??`./`];if(e.connectionMeta){let n={connectionMeta:e.connectionMeta,metaBaseUrl:Hn(t[0]??`./`),authToken:Z(e.authToken??e.connectionMeta.authToken)};return Bn(n),n}let n=Wn();if(n){let t=Un(n,Z(e.authToken??n.authToken??n.connectionMeta.authToken));return Bn(t),t}let r=[];for(let n of t){let t=y(mn,n),i=Hn(n);try{let n=await fetch(t);if(!n.ok)throw Error(`Failed to fetch connection meta from ${i}: ${n.status}`);let r=await n.json(),a={connectionMeta:r,metaBaseUrl:n.url||i,authToken:Z(e.authToken??r.authToken)};return Bn(a),a}catch(e){r.push(e)}}throw Error(`Failed to get connection meta from ${t.join(`, `)}`,{cause:r})}var Q=class extends Error{name=`DevframeConnectionError`;kind;constructor(e,t,n){super(t,n),this.kind=e}};function Kn(e=yn){try{let t=globalThis.location?.hash?.replace(/^#/,``)??``;return new URLSearchParams(t).get(e)||void 0}catch{return}}function qn(e){try{let t=new URL(globalThis.location.href),n=new URLSearchParams(t.hash.replace(/^#/,``));if(!n.has(e))return;n.delete(e),t.hash=n.toString(),globalThis.history?.replaceState(globalThis.history.state,``,t.href)}catch{}}function Jn(e=yn){let t=Kn(e);return t&&qn(e),t}async function Yn(e,t={}){let n=Jn(t.param??`devframe_otp`);return n?e.isTrusted?!0:e.requestTrustWithCode(n):!1}function Xn(e){let t={},n=new WeakMap,r,i=()=>(r??=e.sharedState.get(vn,{initialValue:{}}).then(e=>(t=e.value(),e.on(`updated`,e=>{t=e}),e)),r);return i(),{state:i,has:e=>e in t,keys:()=>Object.keys(t),get:r=>{let i=t[r];if(!i)return;let a=n.get(i);return a||(a={...i,rpc:e.scope(i.scope).rpc},n.set(i,a)),a}}}function Zn(e){let t=new Map,n=new Map,r=new Map,i=new Set,a=e.connectionMeta.backend===`static`;function o(e,t){let n=r.get(e);return n&&typeof n==`object`&&!Array.isArray(n)&&typeof t==`object`&&!Array.isArray(t)?{...n,...t}:t}e.client.register({name:J.broadcast.clientStateUpdated,type:`event`,handler:(e,n,r)=>{let i=t.get(e);!i||i.syncIds.has(r)||i.mutate(()=>o(e,n),r)}}),e.client.register({name:J.broadcast.clientStatePatch,type:`event`,handler:(e,n,r)=>{let i=t.get(e);!i||i.syncIds.has(r)||i.patch(n,r)}});function s(t,n){let r=[];return r.push(n.on(`updated`,(n,r,i)=>{a||(r?e.callEvent(`devframe:rpc:server-state:patch`,t,r,i):e.callEvent(`devframe:rpc:server-state:set`,t,n,i))})),()=>{for(let e of r)e()}}return{keys:()=>Array.from(t.keys()),onKeyAdded(e){return i.add(e),()=>{i.delete(e)}},delete(e){let i=n.get(e);n.delete(e);let a=t.delete(e);return r.delete(e),i?.(),a},get:async(c,l)=>{if(l?.initialValue!==void 0&&r.set(c,l.initialValue),t.has(c))return t.get(c);let u=Et({initialValue:l?.initialValue,enablePatches:!1});async function d(){if(a||e.callEvent(`devframe:rpc:server-state:subscribe`,c),l?.initialValue!==void 0){t.set(c,u);for(let e of i)e(c);return e.call(`devframe:rpc:server-state:get`,c).then(e=>{e!==void 0&&u.mutate(()=>o(c,e))}).catch(e=>{console.error(`Error getting server state`,e)}),n.set(c,s(c,u)),u}{let r=await e.call(`devframe:rpc:server-state:get`,c);u.mutate(()=>o(c,r)),t.set(c,u);for(let e of i)e(c);return n.set(c,s(c,u)),u}}return new Promise(t=>{if(e.isTrusted)d().then(t);else{t(u);let n=!1;e.events.on(J.client.isTrustedUpdated,e=>{e&&!n&&(n=!0,d())})}})}}}var Qn=new Map;function $n(e=Qn){let t=new Map;return{serialize:n=>{let r;return n.t===`q`?r=n.m:(r=t.get(n.i),t.delete(n.i)),!(n.t===`s`&&`e`in n)&&r&&e.get(r)?.jsonSerializable===!0?Nn(n,r??``):`s:${Wt(n)}`},deserialize:e=>{let n=e.startsWith(`s:`)?Gt(e.slice(2)):JSON.parse(e);return n.t===`q`&&n.i&&n.m&&t.set(n.i,n.m),n}}}function er(){}function tr(e){let{onConnected:t=er,onError:n=er,onDisconnected:r=er,definitions:i,fetch:a=globalThis.fetch.bind(globalThis)}=e,o=e.url;e.authToken&&(o=`${o}${o.includes(`?`)?`&`:`?`}${bn}=${encodeURIComponent(e.authToken)}`);let s=$n(i),c=new AbortController,l=!1,u,d,f,p,m=new Promise((e,t)=>{f=e,p=t});m.catch(()=>{});function h(e){l||(l=!0,p(e),n(e),r())}function g(){l||(l=!0,p(Error(`Devframe SSE stream closed`)),r())}function _(e,n){if(e===`session`){f(n),t();return}u?.(n)}async function v(e){let t=e.getReader();d=t;let n=new TextDecoder,r=``;for(;;){let{done:e,value:i}=await t.read();if(e)break;for(r+=n.decode(i,{stream:!0});;){let e=r.search(/\n\n|\r\n\r\n/);if(e<0)break;let t=r.slice(0,e);r=r.slice(e+(r[e]===`\r`?4:2));let n=`message`,i=[];for(let e of t.split(/\r?\n/))e.startsWith(`:`)||(e.startsWith(`event:`)?n=e.slice(6).trimStart():e.startsWith(`data:`)&&i.push(e.slice(5).replace(/^ /,``)));i.length>0&&_(n,i.join(`
`))}}g()}return(async()=>{try{let e=await a(o,{headers:{accept:`text/event-stream`},signal:c.signal});if(!e.ok||!e.body)throw Error(`Devframe SSE stream request failed: ${e.status}`);await v(e.body)}catch(e){if(c.signal.aborted){g();return}h(e instanceof Error?e:Error(String(e)))}})(),{close:()=>{l=!0,c.abort(),d?.cancel().catch(()=>{})},on:e=>{u=e},post:async e=>{let t;try{t=await m}catch{return}if(l){n(Error(`Devframe SSE channel is closed; message dropped`));return}try{let n=await a(o,{method:`POST`,headers:{"content-type":`text/plain; charset=utf-8`,[gn]:t},body:e});if(n.status===200){let e=await n.text();e&&u?.(e);return}if(!n.ok)throw Error(`Devframe SSE POST failed: ${n.status}`)}catch(e){n(e instanceof Error?e:Error(String(e)))}},serialize:s.serialize,deserialize:s.deserialize}}function nr(e,t){let{channel:n,rpcOptions:r={}}=t;return pn(e,{...n,timeout:-1,...r,proxify:!1})}function rr(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function ir(e){let{transport:t,authToken:n,connectionMeta:r,events:i,clientRpc:a,rpcOptions:o={},callTimeout:s=0}=e,c=!1,l=`connecting`,u=null,d=rr();function f(e,t=null){if(t?u=t:e===`connected`&&(u=null),e===l)return;let n=l;l=e,i.emit(J.client.connectionStatus,e,n)}let p=new Set;function m(e){for(let t of[...p])t.reject(e)}function h(){return l===`disconnected`||l===`error`?new Q(`connection`,`[devframe] Not connected to the devframe server`,{cause:u??void 0}):l===`unauthorized`?new Q(`auth`,`[devframe] Not authorized by the devframe server`,{cause:u??void 0}):null}function g(e,t){return new Promise((n,r)=>{let a=!1,o,c={reject(e){a||(l(),i.emit(J.client.error,e,t),r(e))}};function l(){a=!0,p.delete(c),o&&clearTimeout(o)}p.add(c),s>0&&(o=setTimeout(()=>{c.reject(new Q(`timeout`,`[devframe] RPC call "${t}" timed out after ${s}ms`))},s)),e.then(e=>{a||(l(),n(e))},e=>{if(a)return;l();let n=e instanceof Error?e:Error(String(e));i.emit(J.client.error,n,t),r(n)})})}let _=new Map;for(let e of r.jsonSerializableMethods??[])_.set(e,{jsonSerializable:!0});let v=e.createChannel({definitions:_,onError(e){f(`error`,e),i.emit(J.client.connectionError,e),m(new Q(`connection`,`[devframe] Connection to the devframe server failed`,{cause:e}))},onDisconnected(){l!==`error`&&f(`disconnected`),m(new Q(`connection`,`[devframe] Disconnected from the devframe server`,{cause:u??void 0}))}}),y=nr(a.functions,{channel:v,rpcOptions:o});a.register({name:J.broadcast.authRevoked,type:`event`,handler:()=>{c=!1;let e=new Q(`auth`,`[devframe] The devframe server revoked this client's trust`);f(`unauthorized`,e),i.emit(J.client.connectionError,e),m(e),i.emit(J.client.isTrustedUpdated,!1)}});let b=n;async function x(e){b=e;let t=await y.$call(`anonymous:devframe:auth`,{authToken:e,ua:navigator.userAgent,origin:location.origin});if(c=t.isTrusted,c)d.resolve(!0),f(`connected`);else{let e=new Q(`auth`,`[devframe] The devframe server refused this client's credentials`);f(`unauthorized`,e),i.emit(J.client.connectionError,e)}return i.emit(J.client.isTrustedUpdated,c),t.isTrusted}async function ee(e){let t=(await y.$call(`anonymous:devframe:auth:exchange`,{code:e,ua:navigator.userAgent,origin:location.origin}))?.authToken??null;return t&&(b=t,c=!0,d.resolve(!0),f(`connected`),i.emit(J.client.isTrustedUpdated,!0)),t}async function S(){return c?!0:x(b??``)}async function C(e=6e4){if(c&&d.resolve(!0),e<=0)return d.promise;let t=()=>{};return await Promise.race([d.promise.then(t),new Promise((n,r)=>{let i=setTimeout(()=>{r(Error(`[devframe] Timeout waiting for rpc to be trusted`))},e);t=()=>clearTimeout(i)})]),c}return{transport:t,get isTrusted(){return c},get status(){return l},get connectionError(){return u},requestTrust:S,requestTrustWithToken:x,requestTrustWithCode:ee,ensureTrusted:C,call:(...e)=>{let t=String(e[0]),n=h();return n?(i.emit(J.client.error,n,t),Promise.reject(n)):g(y.$call(...e),t)},callEvent:(...e)=>{let t=h();if(t){i.emit(J.client.error,t,String(e[0]));return}return y.$callEvent(...e)},callOptional:(...e)=>{let t=String(e[0]),n=h();return n?(i.emit(J.client.error,n,t),Promise.reject(n)):g(y.$callOptional(...e),t)},close:()=>{v.close()}}}function ar(e,t,n){let r=(()=>{try{return new URL(t,n.href)}catch{return new URL(n.href)}})();if(e&&typeof e==`object`){if(e.host!=null||e.port!=null){let t=e.host??`${r.hostname}:${e.port}`;return new URL(e.path??`/`,`${r.protocol}//${t}`).href}return new URL(e.path??``,r).href}let i=e??``;return/^https?:\/\//i.test(i)?i:new URL(i,r).href}function or(e){let{authToken:t,connectionMeta:n,metaBaseUrl:r,events:i,clientRpc:a,rpcOptions:o={},sseOptions:s={},callTimeout:c=0}=e,l=ar(n.sse,r??`./`,location);return ir({transport:`sse`,authToken:t,connectionMeta:n,events:i,clientRpc:a,rpcOptions:o,callTimeout:c,createChannel:e=>tr({url:l,authToken:t,definitions:e.definitions,...s,onConnected(){s.onConnected?.()},onError(t){e.onError(t),s.onError?.(t)},onDisconnected(){e.onDisconnected(),s.onDisconnected?.()}})})}function sr(e){let t=e.cause instanceof Error?e.cause:cr(e.cause)?sr(e.cause):e.cause,n=t===void 0?Error(e.message):Error(e.message,{cause:t});n.name=e.name;for(let t of Object.keys(e))t!==`name`&&t!==`message`&&t!==`cause`&&(n[t]=e[t]);return n}function cr(e){return typeof e==`object`&&!!e&&typeof e.message==`string`&&typeof e.name==`string`}function lr(e){return typeof e==`object`&&!!e&&e.type===`static`&&typeof e.path==`string`}function ur(e){return typeof e==`object`&&!!e&&e.type===`query`&&typeof e.records==`object`&&e.records!==null}function dr(e){return typeof e==`object`&&!!e&&(`output`in e||`error`in e)}function fr(e){if(e.error)throw sr(e.error);return e.output}function pr(e){return e.some(e=>e!=null)}function mr(e){return typeof e==`object`&&e&&`serialization`in e&&`data`in e?e.data:e}function hr(e,t){let n=new Map,r=new Map;function i(e,t){return t===`structured-clone`&&Array.isArray(e)?Ut(e):e}function a(e,t){return i(mr(e),t)}async function o(e){n.has(e.path)||n.set(e.path,t(e.path).then(t=>a(t,e.serialization)));let r=await n.get(e.path);return dr(r)?fr(r):r}async function s(e,n){return r.has(e)||r.set(e,t(e).then(e=>a(e,n))),await r.get(e)}async function c(t,n){if(!(t in e))throw Error(`[devframe-rpc] Function "${t}" not found in dump store`);let r=e[t];if(lr(r)){if(pr(n))throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`);return await o(r)}if(ur(r)){let e=de(n),i=r.records[e];if(i)return fr(await s(i,r.serialization));if(r.fallback)return fr(await s(r.fallback,r.serialization));throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`)}if(!pr(n))return r;throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`)}return{call:async(e,t)=>await c(e,t),callOptional:async(t,n)=>{if(t in e)return await c(t,n)},callEvent:async(e,t)=>{}}}async function gr(e){let t=hr(await e.fetchJsonFromBases(_n),e.fetchJsonFromBases);return{transport:`static`,isTrusted:!0,status:`connected`,connectionError:null,requestTrust:async()=>!0,requestTrustWithToken:async()=>!0,requestTrustWithCode:async()=>null,ensureTrusted:async()=>!0,call:(...e)=>t.call(e[0],e.slice(1)),callEvent:(...e)=>t.callEvent(e[0],e.slice(1)),callOptional:(...e)=>t.callOptional(e[0],e.slice(1)),close:()=>{}}}var _r=``;function vr(e,t){return`${e}${_r}${t}`}function yr(e){let t=new Map,n=new Map;e.client.register({name:J.broadcast.streamingChunk,type:`event`,handler(e,n,r,i){t.get(vr(e,n))?._push(r,i)}}),e.client.register({name:J.broadcast.streamingEnd,type:`event`,handler(e,n,r){let i=vr(e,n),a=t.get(i);a&&(a._end(r),t.delete(i))}}),e.client.register({name:J.broadcast.streamingUploadCancel,type:`event`,handler(e,t){let r=vr(e,t),i=n.get(r);i&&(i.abort(`server cancelled upload`),n.delete(r))}}),e.events.on(J.client.isTrustedUpdated,n=>{if(n)for(let[n,r]of t){if(r.cancelled||r.done)continue;let t=n.indexOf(_r);if(t<0)continue;let i=n.slice(0,t),a=n.slice(t+1);e.callEvent(`devframe:streaming:subscribe`,i,a,{afterSeq:r.lastSeenSeq})}});function r(n,r,i={}){let a=vr(n,r),o=t.get(a);if(o)return o;let s=Yt({id:r,highWaterMark:i.highWaterMark,onOverflow(e){console.warn(`[devframe] DF0029: Stream "${n}#${r}" dropped ${e} chunk(s) after exceeding the client high-water mark.`)},onCancel(){e.callEvent(`devframe:streaming:cancel`,n,r),t.delete(a)}});if(t.set(a,s),e.isTrusted)e.callEvent(`devframe:streaming:subscribe`,n,r,{afterSeq:0});else{let i=e.events.on(J.client.isTrustedUpdated,o=>{o&&(i(),t.has(a)&&!s.cancelled&&!s.done&&e.callEvent(`devframe:streaming:subscribe`,n,r,{afterSeq:s.lastSeenSeq}))})}return s}function i(t,r){let i=vr(t,r),a=n.get(i);if(a)return a;let o=Jt({id:r});return o.events.on(`chunk`,(n,i)=>{e.callEvent(`devframe:streaming:upload-chunk`,t,r,n,i)}),o.events.on(`end`,a=>{e.callEvent(`devframe:streaming:upload-end`,t,r,a),n.delete(i)}),n.set(i,o),o}return{subscribe:r,upload:i}}function br(){}var xr=new Map;function Sr(e){let t=e.url;e.authToken&&(t=`${t}?${bn}=${encodeURIComponent(e.authToken)}`);let n=new WebSocket(t),{onConnected:r=br,onError:i=br,onDisconnected:a=br,definitions:o=xr}=e;n.addEventListener(`open`,e=>{r(e)}),n.addEventListener(`error`,e=>{let t=e instanceof Error?e:Error(e.type);i(t)}),n.addEventListener(`close`,e=>{a(e)});let s=$n(o);return{close:()=>{n.close()},on:e=>{n.addEventListener(`message`,t=>{e(t.data)})},post:e=>{if(n.readyState===WebSocket.OPEN){n.send(e);return}if(n.readyState===WebSocket.CONNECTING){let t=()=>{i(),n.readyState===WebSocket.OPEN&&n.send(e)},r=()=>i();function i(){n.removeEventListener(`open`,t),n.removeEventListener(`close`,r)}n.addEventListener(`open`,t),n.addEventListener(`close`,r);return}i(Error(`Devframe WebSocket is not open; message dropped`))},serialize:s.serialize,deserialize:s.deserialize}}function Cr(e,t,n){let r=(()=>{try{return new URL(t,n.href)}catch{return new URL(n.href)}})(),i=r.protocol===`https:`?`wss:`:`ws:`;if(e&&typeof e==`object`){if(e.host!=null||e.port!=null){let t=e.host??`${r.hostname}:${e.port}`,n=new URL(e.path??`/`,`${i}//${t}`);return n.protocol=i,n.href}let t=new URL(e.path??``,r);return t.protocol=i,t.href}if(typeof e==`number`)return`${i}//${r.hostname}:${e}`;let a=e??``;if(/^wss?:\/\//i.test(a))return a;if(/^https?:\/\//i.test(a))return S(a,/^https/i.test(a)?`wss://`:`ws://`);let o=new URL(a,r);return o.protocol=i,o.href}function wr(e){let{authToken:t,connectionMeta:n,metaBaseUrl:r,events:i,clientRpc:a,rpcOptions:o={},wsOptions:s={},callTimeout:c=0}=e,l=Cr(n.websocket,r??`./`,location);return ir({transport:`websocket`,authToken:t,connectionMeta:n,events:i,clientRpc:a,rpcOptions:o,callTimeout:c,createChannel:e=>Sr({url:l,authToken:t,definitions:e.definitions,...s,onConnected(e){s.onConnected?.(e)},onError(t){e.onError(t),s.onError?.(t)},onDisconnected(t){e.onDisconnected(),s.onDisconnected?.(t)}})})}function Tr(e){return e.includes(`:`)}function $(e,t){return Tr(t)?t:`${e}:${t}`}function Er(e,t,n){let r=`devframe:settings:${n}:${t}`,i;function a(){return i||=e.sharedState.get(r,{initialValue:{}}),i}return{async get(e){return(await a()).value()[e]},async set(e,t){(await a()).mutate(n=>{n[e]=t})},async delete(e){(await a()).mutate(t=>{delete t[e]})},async all(){return(await a()).value()},async onChange(e){return(await a()).on(`updated`,t=>e(t))}}}function Dr(e,t){return{global:Er(e,t,`global`),project:Er(e,t,`project`)}}function Or(e,t){return{namespace:t,base:e,rpc:{namespace:t,register(n){if(Tr(n.name))throw Error(`[devframe] Scoped client RPC registration for namespace "${t}" received an already-namespaced function name "${n.name}". Pass a bare name without a ":" separator.`);e.client.register({...n,name:`${t}:${n.name}`})},call:((n,...r)=>e.call($(t,n),...r)),callEvent:((n,...r)=>e.callEvent($(t,n),...r)),callOptional:((n,...r)=>e.callOptional($(t,n),...r)),sharedState:((n,r)=>e.sharedState.get($(t,n),r)),streaming:{subscribe:(n,r,i)=>e.streaming.subscribe($(t,n),r,i),upload:(n,r)=>e.streaming.upload($(t,n),r)}},settings:Dr(e,t),scope:e.scope}}function kr(e,t){if(t.backend===`static`)return`static`;let n=t.websocket!==void 0,r=t.sse!==void 0;if(e===`websocket`){if(!n)throw Error(`[devframe] transport: 'websocket' was requested, but this server does not advertise a WebSocket endpoint`);return`websocket`}if(e===`sse`){if(!r)throw Error(`[devframe] transport: 'sse' was requested, but this server does not advertise an SSE endpoint`);return`sse`}if(t.backend===`sse`&&r)return`sse`;if(n)return`websocket`;if(r)return`sse`;throw Error(`[devframe] This server advertises no RPC transport (backend "none") — nothing to connect to. Enable the WebSocket or SSE endpoint on the server, or use its static/MCP surfaces instead.`)}async function Ar(e={}){let{baseURL:n=`./`,rpcOptions:r={},cacheOptions:i=!1}=e,a=t(),o=Array.isArray(n)?n:[n],s=await Gn(e),{connectionMeta:c,metaBaseUrl:l,authToken:u}=s,d=o[0]??`./`;try{d=new URL(`.`,l).href}catch{}let f=new xn({functions:[],...typeof e.cacheOptions==`object`?e.cacheOptions:{}}),p={rpc:void 0},m=new jn(p);async function h(e){let t=[d,...o.filter(e=>e!==d)].filter(e=>e!=null),n=[];for(let r of t)try{return await fetch(y(e,r)).then(t=>{if(!t.ok)throw Error(`Failed to fetch ${e} from ${r}: ${t.status}`);return t.json()})}catch(e){n.push(e)}throw Error(`Failed to load ${e} from ${t.join(`, `)}`,{cause:n})}let g={authToken:u,connectionMeta:c,metaBaseUrl:l,events:a,clientRpc:m,callTimeout:e.callTimeout,rpcOptions:{...r,async onRequest(e,t,n){if(await r.onRequest?.call(this,e,t,n),i&&f?.validate(e.m)){if(f.has(e.m,e.a))return n(f.cached(e.m,e.a));let r=await t(e);f.apply(e,r)}else await t(e)}}},_=kr(e.transport??`auto`,c),v=_===`static`?await gr({fetchJsonFromBases:h}):_===`sse`?or({...g,sseOptions:e.sseOptions}):wr({...g,wsOptions:e.wsOptions}),b;try{b=new BroadcastChannel(`devframe-auth`)}catch{}let x,ee=!1;function S(e){return((...t)=>ee||!x?e(...t):x.then(()=>e(...t)))}let C={events:a,get isTrusted(){return v.isTrusted},get status(){return v.status},get connectionError(){return v.connectionError},get transport(){return v.transport??_},get connection(){return s},connectionMeta:c,ensureTrusted:v.ensureTrusted,requestTrust:v.requestTrust,requestTrustWithToken:async e=>(Vn(e),s={...s,authToken:e},v.requestTrustWithToken(e)),requestTrustWithCode:async e=>{let t=await v.requestTrustWithCode(e);if(!t)return!1;Vn(t),s={...s,authToken:t};try{b?.postMessage({type:`auth-update`,authToken:t})}catch{}return!0},call:S(v.call),callEvent:S(v.callEvent),callOptional:S(v.callOptional),client:m,sharedState:void 0,services:void 0,streaming:void 0,cacheManager:f,scope:void 0,close:()=>v.close?.()};C.sharedState=Zn(C),C.streaming=yr(C),C.services=Xn(C);let te=new Map;C.scope=(e=>{if(!e)return C;let t=te.get(e);return t||(t=Or(C,e),te.set(e,t)),t}),p.rpc=C;function w(){try{return typeof window<`u`&&window.self===window.top}catch{return!1}}async function ne(){if(!(e.simpleAuth===!1||!w())&&typeof globalThis.prompt==`function`)for(;!C.isTrusted;){let e=globalThis.prompt(`devframe: enter the authentication code shown in your terminal`);if(e==null)return;let t=e.trim();if(t&&await C.requestTrustWithCode(t))return}}async function re(){let t=await v.requestTrust(),n=e.otpParam??`devframe_otp`,r=n?await Yn(C,{param:n}):!1;t||r||C.isTrusted||await ne()}return x=re().then(()=>{ee=!0},()=>{ee=!0}),b&&(b.onmessage=e=>{e.data?.type===`auth-update`&&e.data.authToken&&C.requestTrustWithToken(e.data.authToken)}),C}r(()=>{let e=document.documentElement;e.classList.toggle(`dark`,s.value),e.classList.toggle(`light`,!s.value),e.style.colorScheme=s.value?`dark`:`light`});async function jr(){let t=import.meta.url,r=await Ar({baseURL:[`./`,new URL(`./`,t).href],simpleAuth:!1}),s=a(r.connectionMeta.configs?.ui?.branding||{});c(document,s);let u=l(`devframes-dock-session`,o(),{mergeDefaults:!0}),{createDocksContext:d}=await n(async()=>{let{createDocksContext:e}=await import(`./context-ls7djbvO.js`);return{createDocksContext:e}},__vite__mapDeps([0,1,2]),import.meta.url),f=await d(`standalone`,r,void 0,u);e(f);let{DockStandalone:p}=await n(async()=>{let{DockStandalone:e}=await import(`./DockStandalone-BFVG1OxE.js`);return{DockStandalone:e}},__vite__mapDeps([3,1,2]),import.meta.url),m=new p({context:f});i(m,s.primaryColor),document.getElementById(`app`).appendChild(m)}jr();
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./DockStandalone-BFVG1OxE.js","./docks-N5v0F-cv.js"])))=>i.map(i=>d[i]);
import{Dt as e,Et as t,Tt as n,c as r,it as i,mt as a,p as o,s,u as c}from"./docks-N5v0F-cv.js";var l={bus:{agentManifestChanged:`agent:manifest:changed`,agentToolRegistered:`agent:tool:registered`,agentToolUnregistered:`agent:tool:unregistered`,agentResourceRegistered:`agent:resource:registered`,agentResourceUnregistered:`agent:resource:unregistered`},client:{isTrustedUpdated:`rpc:is-trusted:updated`,error:`rpc:error`,connectionStatus:`connection:status`,connectionError:`connection:error`},broadcast:{authRevoked:`devframe:auth:revoked`,clientStateUpdated:`devframe:rpc:client-state:updated`,clientStatePatch:`devframe:rpc:client-state:patch`,streamingChunk:`devframe:streaming:chunk`,streamingEnd:`devframe:streaming:end`,streamingUploadCancel:`devframe:streaming:upload-cancel`},postMessage:{remoteAssetsError:`devframe:remote-assets-error`}},u=`devframe-remote-connection`,d=l.postMessage.remoteAssetsError,f=/^[a-z][a-z\d+.-]*:/i;function p(e){let t=e.trim();return!!t&&!t.startsWith(`/`)&&!t.startsWith(`./`)&&!t.startsWith(`../`)&&!f.test(t)}function m(e,t={}){if(!p(e))return e;let n=t.resolveClientModule?.(e);if(n)return n;if(!t.template)return e;let r=t.template.includes(`{specifier}`)?t.template.replaceAll(`{specifier}`,e):t.template+e;try{return new URL(r,t.metaBaseUrl).href}catch{return r}}function h(e,t){return p(e)?t===e?" — the specifier is a bare npm specifier and this host advertises no client-module resolution (`ConnectionMeta.configs.dock.clientModuleResolution`). Serve the script as a self-contained bundle by URL, pass `resolveClientModule` to this client host, or run under a host that resolves bare specifiers (e.g. Vite: `/@id/{specifier}`).":` — the host resolved the bare specifier "${e}" to this URL but could not serve the module. Check the package is installed and resolvable from the host project's root (and built, if its exports point at build output).`:``}function g(e){function t(e){let t=e.split(`&`),n=t.filter(e=>e.split(`=`)[0]!==u);return[n.join(`&`),n.length!==t.length]}let n=e.indexOf(`#`),r=n===-1?e:e.slice(0,n),i=n===-1?void 0:e.slice(n+1),a=!1;if(i!==void 0){let e=i.indexOf(`?`);if(e===-1){let[e,n]=t(i);i=e,a||=n}else{let n=i.slice(0,e),[r,o]=t(i.slice(e+1));o&&(i=r?`${n}?${r}`:n,a=!0)}}let o=r.indexOf(`?`);if(o!==-1){let e=r.slice(0,o),[n,i]=t(r.slice(o+1));i&&(r=n?`${e}?${n}`:e,a=!0)}return a?i?`${r}#${i}`:r:e}var _=[`===`,`!==`,`==`,`!=`,`<=`,`>=`,`&&`,`||`,`<`,`>`,`+`,`-`,`*`,`/`,`%`,`!`],v=/[a-z_$]/i,ee=/[\w$.:]/,y=/\d/,te=/\s/;function ne(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(te.test(r)){n++;continue}if(r===`(`){t.push({type:`lparen`}),n++;continue}if(r===`)`){t.push({type:`rparen`}),n++;continue}let i=!1;for(let r of _)if(e.startsWith(r,n)){t.push({type:`op`,value:r}),n+=r.length,i=!0;break}if(!i){if(y.test(r)){let r=n;for(;r<e.length&&y.test(e[r]);)r++;if(e[r]===`.`&&r+1<e.length&&y.test(e[r+1]))for(r++;r<e.length&&y.test(e[r]);)r++;t.push({type:`number`,value:Number(e.slice(n,r))}),n=r;continue}if(r===`"`||r===`'`){let i=r,a=n+1,o=``;for(;a<e.length&&e[a]!==i;)if(e[a]===`\\`&&a+1<e.length){let t=e[a+1];o+=t===`n`?`
`:t===`t`?` `:t,a+=2}else o+=e[a],a++;if(a>=e.length)throw Error(`Unterminated string literal at position ${n}`);a++,t.push({type:`string`,value:o}),n=a;continue}if(v.test(r)){let r=n;for(;r<e.length&&ee.test(e[r]);)r++;let i=e.slice(n,r);i===`true`?t.push({type:`bool`,value:!0}):i===`false`?t.push({type:`bool`,value:!1}):t.push({type:`ident`,value:i}),n=r;continue}throw Error(`Unexpected character "${r}" at position ${n}`)}}return t.push({type:`eof`}),t}function re(e){let t=ne(e),n=0,r=()=>t[n],i=()=>t[n++],a=e=>{let t=r();return t.type===`op`&&t.value===e},o=()=>{let e=i();if(e.type!==`op`)throw Error(`internal: expected operator token, got ${b(e)}`);return e.value};function s(){let e=c();for(;a(`||`);)i(),e={type:`binary`,op:`||`,left:e,right:c()};return e}function c(){let e=l();for(;a(`&&`);)i(),e={type:`binary`,op:`&&`,left:e,right:l()};return e}function l(){let e=u();for(;a(`===`)||a(`!==`)||a(`==`)||a(`!=`);){let t=o(),n=t===`==`||t===`!=`?h():u();e={type:`binary`,op:t,left:e,right:n}}return e}function u(){let e=d();for(;a(`<=`)||a(`>=`)||a(`<`)||a(`>`);)e={type:`binary`,op:o(),left:e,right:d()};return e}function d(){let e=f();for(;a(`+`)||a(`-`);)e={type:`binary`,op:o(),left:e,right:f()};return e}function f(){let e=p();for(;a(`*`)||a(`/`)||a(`%`);)e={type:`binary`,op:o(),left:e,right:p()};return e}function p(){return a(`!`)||a(`-`)||a(`+`)?{type:`unary`,op:o(),operand:p()}:m()}function m(){let e=r();if(e.type===`number`||e.type===`string`||e.type===`bool`)return i(),{type:`literal`,value:e.value};if(e.type===`ident`)return i(),{type:`key`,key:e.value};if(e.type===`lparen`){i();let e=s(),t=r();if(t.type!==`rparen`)throw Error(`Expected ")" but got ${b(t)}`);return i(),e}throw Error(`Unexpected token: ${b(e)}`)}function h(){let e=r();if(e.type===`string`)return i(),{type:`literal`,value:e.value};if(e.type===`number`||e.type===`bool`)return i(),{type:`literal`,value:String(e.value)};if(e.type===`ident`)return i(),{type:`literal`,value:e.value};throw Error(`Expected value literal or identifier on right side of equality, got ${b(e)}`)}let g=s(),_=r();if(_.type!==`eof`)throw Error(`Unexpected token: ${b(_)}`);return g}function b(e){switch(e.type){case`eof`:return`end of expression`;case`lparen`:return`"("`;case`rparen`:return`")"`;case`op`:case`ident`:case`string`:return`"${e.value}"`;case`number`:case`bool`:return`"${String(e.value)}"`}}function ie(e,t,n={}){let{strict:r=!1}=n;return!!x(e,t,r)}function x(e,t,n){switch(e.type){case`literal`:return e.value;case`key`:return se(e.key,t,n);case`unary`:return S(e.op,x(e.operand,t,n));case`binary`:return ae(e,t,n)}}function S(e,t){switch(e){case`!`:return!t;case`-`:return-t;case`+`:return+t}}function ae(e,t,n){let{op:r}=e;if(r===`&&`)return x(e.left,t,n)&&x(e.right,t,n);if(r===`||`)return x(e.left,t,n)||x(e.right,t,n);let i=x(e.left,t,n),a=x(e.right,t,n);switch(r){case`==`:return String(i)===String(a);case`!=`:return String(i)!==String(a);case`===`:return i===a;case`!==`:return i!==a;case`<`:return i<a;case`>`:return i>a;case`<=`:return i<=a;case`>=`:return i>=a;case`+`:return i+a;case`-`:return i-a;case`*`:return i*a;case`/`:return i/a;case`%`:return i%a}}function oe(e,t,n){return ie(re(e),t,n)}function se(e,t,n){let{found:r,value:i}=ce(e,t);if(!r&&n)throw Error(`Unknown context key: "${e}"`);return i}function ce(e,t){if(e in t)return{found:!0,value:t[e]};let n=e.includes(`.`)?`.`:e.includes(`:`)?`:`:null;if(n){let r=e.split(n),i=t;for(let e of r){if(typeof i!=`object`||!i)return{found:!1,value:void 0};let t=i;if(!(e in t))return{found:!1,value:void 0};i=t[e]}return{found:!0,value:i}}return{found:!1,value:void 0}}function C(e,t,n){return oe(e,t,n)}var le=`devframes:hub-ui:hide`,ue=`devframes_plugin_terminals`,de=`devframes_plugin_messages`,fe=Object.freeze({type:`~builtin`,category:`~builtin`,id:`~client-auth-notice`,title:`Unauthorized`,icon:`ph:warning-duotone`}),w=Object.freeze({type:`~builtin`,category:`~builtin`,id:`~settings`,title:`Settings`,icon:`ph:gear-duotone`}),pe=Object.freeze([fe,w]),T=`~pinned`,me=-1e5;function E(t,n){return t===T?me:n?.[t]??e[t]??0}function he(e){return typeof e==`string`?e:e?.light??e?.dark}var ge={default:`Default`,app:`App`,framework:`Framework`,web:`Web`,advanced:`Advanced`,"~builtin":`Built-in`,[T]:`Pinned`};function _e(e){return e!==`~builtin`&&e!==T}function ve(e){return ge[e]??e}function ye(e){let t=new Set;for(let n of e)n.type===`group`&&t.add(n.id);return t}function be(e,t){if(!t||t.type===`group`||!t.groupId)return;let n=e.find(e=>e.id===t.groupId);return n?.type===`group`?n:void 0}function D(e,t,n,r){let i=e.filter(e=>e.type!==`group`&&e.groupId===t);if(!n)return i.length?[[`default`,i]]:[];let a=e.find(e=>e.type===`group`&&e.id===t);return O(i,n,{...r,ignoreCategoryHidden:!0,categoryOrderOverride:a?.categoryOrder})}function xe(e,t,n,r){return D(e,t,n,r).flatMap(([,e])=>e)}function Se(e,t,n,r){if(!n)return;let i=e.find(e=>e.type!==`group`&&e.groupId===t&&e.id===n);if(i){if(i.when){if(r){if(!C(i.when,r))return}else if(i.when===`false`)return}return i}}function O(e,t,n){let{docksHidden:r,docksCategoriesHidden:i,docksCustomOrder:a,docksPinned:o}=t,{includeHidden:s=!1,whenContext:c,collapseGroups:l=!1,ignoreCategoryHidden:u=!1,categoryOrderOverride:d}=n??{},f=new Map;for(let t of e)t.type===`group`&&f.set(t.id,t.category??`default`);let p=new Map;for(let n of e){let e=n.type!==`group`&&n.groupId?f.get(n.groupId):void 0;if(l&&e!==void 0||n.when&&c&&!C(n.when,c)&&!s||n.when&&!c&&n.when===`false`&&!s||n.visibility&&c&&!C(n.visibility,c)&&!s||n.visibility&&!c&&n.visibility===`false`&&!s||!s&&n.id===`devframes_plugin_inspect`&&!t.showDevframeInspector||!s&&r.includes(n.id))continue;let a=e??n.category??`default`,d=o.includes(n.id)&&e===void 0?T:a;!s&&!u&&i.includes(d)||(p.has(d)||p.set(d,[]),p.get(d).push(n))}let m=Array.from(p.entries()).sort(([e],[t])=>{let n=E(e,d),r=E(t,d);return r===n?t.localeCompare(e):n-r});return m.forEach(([e,t])=>{t.sort((e,t)=>{let n=a[e.id]??0,r=a[t.id]??0;if(n!==r)return n-r;let i=e.defaultOrder??0,o=t.defaultOrder??0;return o===i?t.title.localeCompare(e.title):i-o})}),m}function k(e){let{availableHeight:t,reservedHeight:n,itemHeight:r,dividerHeight:i,moreButtonHeight:a,dividerCount:o,totalItems:s}=e;if(s<=0||r<=0)return 0;let c=t-n-Math.max(0,o)*i;if(Math.floor(c/r)>=s)return s;let l=Math.floor((c-a)/r);return Math.max(0,l)}function A(e,t){let n=[],r=[],i=t;for(let[t,a]of e)i<=0?r.push([t,a]):a.length>i?(n.push([t,a.slice(0,i)]),r.push([t,a.slice(i)]),i=0):(i-=a.length,n.push([t,a]));return r.reduce((e,[,t])=>e+t.length,0)===1?{visible:[...n,...r],overflow:[]}:{visible:n,overflow:r}}var j=a(null),M=a(null),N=a(null),P=a(null);function Ce(e){j.value=e}function we(){return j}function F(e){M.value=e}function Te(){return M}function Ee(e){N.value=e}function De(){return N}var I=a(null);function Oe(e){I.value=e}function ke(){return I}function Ae(e){P.value=e}function je(){return P}var L=a(null);function Me(e){L.value=e}function Ne(){return L}var R=20,z=100,Pe=320,Fe=240,B=`__DEVFRAMES_TRIGGER_DOCK_ACTION__`,V=`__DEVFRAME_CONNECTION_META__`,H=a(null),U=a(!1),W=t(),G,K,q,J,Ie=async()=>await n(()=>import(`./DockStandalone-BFVG1OxE.js`).then(e=>e.DockStandalone),__vite__mapDeps([0,1]),import.meta.url);W.on(`popup:open-requested`,e=>{qe(e)});function Y(){if(!(typeof window>`u`))return window.documentPictureInPicture}function Le(){G?.(),G=void 0,K?.(),K=void 0}function Re(e){return i(o,t=>{e.document.documentElement?.style.setProperty(`color-scheme`,t?`dark`:`light`)},{immediate:!0})}function ze(){q?.remove(),q=void 0}function X(){Le(),ze(),H.value=null,U.value=!1;let e=J;J=void 0,e?.docks.switchEntry(null)}function Z(e,t,n){return Math.min(Math.max(e,t),n)}function Be(e,t){window.innerWidth<=0||window.innerHeight<=0||(e.panel.store.width=Z(Math.round(t.innerWidth/window.innerWidth*100),R,z),e.panel.store.height=Z(Math.round(t.innerHeight/window.innerHeight*100),R,z))}async function Ve(e,t){let n=await Ie(),i=t.document.createElement(`style`);i.textContent=[`html, body {`,` margin: 0;`,` padding: 0;`,` width: 100%;`,` height: 100%;`,` overflow: hidden;`,` background: transparent;`,`}`,`#devframes-popup-root {`,` width: 100vw;`,` height: 100vh;`,`}`,`#devframes-popup-root > devframes-dock-standalone {`,` display: block;`,` width: 100%;`,` height: 100%;`,`}`].join(`
`),s(t.document,c().value),t.document.head?.appendChild(i),t.document.body.textContent=``,t[V]=globalThis[V]??e.rpc.connectionMeta;let a=t.document.createElement(`div`);a.id=`devframes-popup-root`,t.document.body.appendChild(a);let o=new n({context:e});r(o,c().value.primaryColor),q=o,a.appendChild(o)}function He(){return!!Y()?.requestWindow}function Ue(e,t){typeof window>`u`||e!==`standalone`&&(window[B]=t)}async function We(e,t){if(!(typeof window>`u`)&&e===`standalone`)try{let e=window.opener;if(!e||e.closed)return;let n=e[B];return typeof n==`function`?await n(t):void 0}catch{return}}function Ge(){return H}function Q(){return U}function Ke(e){W.emit(`popup:open-requested`,e)}async function qe(e){F(null);let t=H.value;if(t?.closed)X();else if(t)return t.focus(),t;let n=Y();if(!n?.requestWindow)return null;let r;try{let t=r=await n.requestWindow({width:Math.max(Pe,Math.round(window.innerWidth*e.panel.store.width/100)),height:Math.max(Fe,Math.round(window.innerHeight*e.panel.store.height/100))});await Ve(e,t),K=Re(t);let i=()=>Be(e,t),a=()=>{H.value===t&&X()};return t.addEventListener(`resize`,i),t.addEventListener(`pagehide`,a),G=()=>{t.removeEventListener(`resize`,i),t.removeEventListener(`pagehide`,a)},J=e,H.value=t,U.value=!0,t}catch{return r&&!r.closed&&r.close(),X(),null}}var $=typeof navigator<`u`&&/Mac|iPhone|iPad/.test(navigator.platform??``);function Je(e){return e.split(`+`).map(e=>e===`Mod`?$?`⌘`:`Ctrl`:e===`Shift`?$?`⇧`:`Shift`:e===`Alt`?$?`⌥`:`Alt`:e)}function Ye(e){let t=[];($?e.metaKey:e.ctrlKey)&&t.push(`Mod`),($?e.ctrlKey:e.metaKey)&&t.push($?`Ctrl`:`Meta`),e.altKey&&t.push(`Alt`),e.shiftKey&&t.push(`Shift`);let n=e.key;return n.length===1&&(n=n.toUpperCase()),[`Control`,`Meta`,`Alt`,`Shift`].includes(n)||t.push(n),t.join(`+`)}function Xe(e,t){let n=e??[],r=t??[];return n.length===r.length&&n.every((e,t)=>e.key===r[t]?.key)}function Ze(e,t){return e!==void 0&&!Xe(e,t)}function Qe(e,t){let n=e=>!e.when||C(e.when,t),r=[];for(let t of e){if(!n(t))continue;if(!t.children){r.push(t);continue}let e=t.children.filter(n);r.push({...t,children:e})}return r}function $e(e,t){let n=[];for(let r of e.value){for(let e of t(r.id))n.push({id:r.id,keybinding:e});if(r.children)for(let e of r.children)for(let r of t(e.id))n.push({id:e.id,keybinding:r})}return n}var et={"Mod+T":`Open new tab`,"Mod+W":`Close tab`,"Mod+N":`Open new window`,"Mod+L":`Focus address bar`,"Mod+D":`Bookmark page`,"Mod+Q":`Quit browser`,"Mod+Shift+T":`Reopen closed tab`,"Mod+Shift+N":`Open incognito window`,"Mod+Shift+W":`Close window`,"Mod+Shift+Q":`Quit browser (Chrome)`,"Alt+F4":`Close window (Windows)`,"Mod+R":`Reload page`,"Mod+Shift+R":`Hard reload page`,"Mod+F":`Find in page`};export{be as A,de as B,De as C,O as D,k as E,he as F,g as G,C as H,Se as I,d as K,pe as L,D as M,ye as N,A as O,_e as P,w as R,Te as S,we as T,h as U,ue as V,m as W,Ee as _,Ze as a,je as b,He as c,We as d,Ge as f,F as g,Oe as h,Je as i,xe as j,ve as k,Ue as l,Ae as m,$e as n,$ as o,Q as p,l as q,Qe as r,Ye as s,et as t,Ke as u,Me as v,Ne as w,ke as x,Ce as y,le as z};

Sorry, the diff of this file is too big to display