@devframes/hub-ui 0.9.0-beta.1 → 0.9.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./DockStandalone-CFntZMZw.js","./branding-V4rxaera.js","./color-mode-BPeeQXcs.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./DockStandalone-zGNmPe_C.js","./branding-V4rxaera.js","./color-mode-BPeeQXcs.js"])))=>i.map(i=>d[i]);
2
2
  import{r as e,t}from"./branding-V4rxaera.js";import{n,t as r}from"./preload-helper-CyyvF4ac.js";import{B as i,G as a,Y as o,n as s,q as c}from"./color-mode-BPeeQXcs.js";var l={framework:-100,default:0,app:100,ui:150,data:250,web:300,performance:350,advanced:400,docs:500,"~builtin":1e3},u=`devframe:dock-renderers`,d=()=>({docksHidden:[],docksCategoriesHidden:[],docksPinned:[],docksCustomOrder:{},showIframeAddressBar:!1,closeOnOutsideClick:!1,commandShortcuts:{}}),f=[`===`,`!==`,`==`,`!=`,`<=`,`>=`,`&&`,`||`,`<`,`>`,`+`,`-`,`*`,`/`,`%`,`!`],p=/[a-z_$]/i,m=/[\w$.:]/,h=/\d/,g=/\s/;function ee(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(g.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 f)if(e.startsWith(r,n)){t.push({type:`op`,value:r}),n+=r.length,i=!0;break}if(!i){if(h.test(r)){let r=n;for(;r<e.length&&h.test(e[r]);)r++;if(e[r]===`.`&&r+1<e.length&&h.test(e[r+1]))for(r++;r<e.length&&h.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`?`
3
- `: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(p.test(r)){let r=n;for(;r<e.length&&m.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 _(e){let t=ee(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 ${v(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 ${v(t)}`);return i(),e}throw Error(`Unexpected token: ${v(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 ${v(e)}`)}let g=s(),_=r();if(_.type!==`eof`)throw Error(`Unexpected token: ${v(_)}`);return g}function v(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 te(e,t,n={}){let{strict:r=!1}=n;return!!y(e,t,r)}function y(e,t,n){switch(e.type){case`literal`:return e.value;case`key`:return ae(e.key,t,n);case`unary`:return ne(e.op,y(e.operand,t,n));case`binary`:return re(e,t,n)}}function ne(e,t){switch(e){case`!`:return!t;case`-`:return-t;case`+`:return+t}}function re(e,t,n){let{op:r}=e;if(r===`&&`)return y(e.left,t,n)&&y(e.right,t,n);if(r===`||`)return y(e.left,t,n)||y(e.right,t,n);let i=y(e.left,t,n),a=y(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 ie(e,t,n){return te(_(e),t,n)}function ae(e,t,n){let{found:r,value:i}=oe(e,t);if(!r&&n)throw Error(`Unknown context key: "${e}"`);return i}function oe(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 b(e,t,n){return ie(e,t,n)}var se=`devframes:hub-ui:hide`,ce=`devframes_plugin_terminals`,le=`devframes_plugin_messages`,ue=Object.freeze({type:`~builtin`,category:`~builtin`,id:`~client-auth-notice`,title:`Unauthorized`,icon:`ph:warning-duotone`}),x=Object.freeze({type:`~builtin`,category:`~builtin`,id:`~settings`,title:`Settings`,icon:`ph:gear-duotone`}),de=Object.freeze([ue,x]),S=`~pinned`,fe=-1e5;function C(e,t){return e===S?fe:t?.[e]??l[e]??0}function pe(e){return typeof e==`string`?e:e?.light??e?.dark}var me={default:`Default`,app:`App`,framework:`Framework`,web:`Web`,advanced:`Advanced`,"~builtin":`Built-in`,[S]:`Pinned`};function w(e){return e!==`~builtin`&&e!==S}function he(e){return me[e]??e}function ge(e){let t=new Set;for(let n of e)n.type===`group`&&t.add(n.id);return t}function _e(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 T(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 E(i,n,{...r,ignoreCategoryHidden:!0,categoryOrderOverride:a?.categoryOrder})}function ve(e,t,n,r){return T(e,t,n,r).flatMap(([,e])=>e)}function ye(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(!b(i.when,r))return}else if(i.when===`false`)return}return i}}function E(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&&!b(n.when,c)&&!s||n.when&&!c&&n.when===`false`&&!s||n.visibility&&c&&!b(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?S: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=C(e,d),r=C(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 be(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 xe(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 D=o(null),O=o(null),k=o(null),A=o(null);function j(e){D.value=e}function M(){return D}function N(e){O.value=e}function Se(){return O}function Ce(e){k.value=e}function we(){return k}var P=o(null);function Te(e){P.value=e}function Ee(){return P}function De(e){A.value=e}function Oe(){return A}var F=o(null);function ke(e){F.value=e}function Ae(){return F}function je(){return{mode:`float`,width:80,height:80,top:0,left:10,position:`bottom`,open:!1,inactiveTimeout:3e3}}function Me(e,t){let r=n(),o=c({entryMeta:e,get isActive(){return t.value?.id===e.id},domElements:{},events:a(r)});return i(()=>t.value?.id,t=>{t===e.id?r.emit(`entry:activated`):r.emit(`entry:deactivated`)},{immediate:!0}),i(()=>o.domElements.iframe,e=>{e&&r.emit(`dom:iframe:mounted`,e)},{immediate:!0}),i(()=>o.domElements.panel,e=>{e&&r.emit(`dom:panel:mounted`,e)},{immediate:!0}),o}function I(e){let t=o(e.value());return e.on(`updated`,e=>{t.value=e}),t}var L=new WeakMap;async function R(e){if(L.has(e))return L.get(e);let t=I(await e.sharedState.get(`devframe:docks`,{initialValue:[]}));return L.set(e,t),t}var z=20,B=100,Ne=320,Pe=240,V=`__DEVFRAMES_TRIGGER_DOCK_ACTION__`,H=`__DEVFRAME_CONNECTION_META__`,U=o(null),W=o(!1),G=n(),K,q,J,Y,Fe=async()=>await r(()=>import(`./DockStandalone-CFntZMZw.js`).then(e=>e.DockStandalone),__vite__mapDeps([0,1,2]),import.meta.url);G.on(`popup:open-requested`,e=>{qe(e)});function X(){if(!(typeof window>`u`))return window.documentPictureInPicture}function Ie(){K?.(),K=void 0,q?.(),q=void 0}function Le(e){return i(s,t=>{e.document.documentElement?.style.setProperty(`color-scheme`,t?`dark`:`light`)},{immediate:!0})}function Re(){J?.remove(),J=void 0}function Z(){Ie(),Re(),U.value=null,W.value=!1;let e=Y;Y=void 0,e?.docks.switchEntry(null)}function Q(e,t,n){return Math.min(Math.max(e,t),n)}function ze(e,t){window.innerWidth<=0||window.innerHeight<=0||(e.panel.store.width=Q(Math.round(t.innerWidth/window.innerWidth*100),z,B),e.panel.store.height=Q(Math.round(t.innerHeight/window.innerHeight*100),z,B))}async function Be(n,r){let i=await Fe(),a=r.document.createElement(`style`);a.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(`
3
+ `: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(p.test(r)){let r=n;for(;r<e.length&&m.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 _(e){let t=ee(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 ${v(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 ${v(t)}`);return i(),e}throw Error(`Unexpected token: ${v(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 ${v(e)}`)}let g=s(),_=r();if(_.type!==`eof`)throw Error(`Unexpected token: ${v(_)}`);return g}function v(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 te(e,t,n={}){let{strict:r=!1}=n;return!!y(e,t,r)}function y(e,t,n){switch(e.type){case`literal`:return e.value;case`key`:return ae(e.key,t,n);case`unary`:return ne(e.op,y(e.operand,t,n));case`binary`:return re(e,t,n)}}function ne(e,t){switch(e){case`!`:return!t;case`-`:return-t;case`+`:return+t}}function re(e,t,n){let{op:r}=e;if(r===`&&`)return y(e.left,t,n)&&y(e.right,t,n);if(r===`||`)return y(e.left,t,n)||y(e.right,t,n);let i=y(e.left,t,n),a=y(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 ie(e,t,n){return te(_(e),t,n)}function ae(e,t,n){let{found:r,value:i}=oe(e,t);if(!r&&n)throw Error(`Unknown context key: "${e}"`);return i}function oe(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 b(e,t,n){return ie(e,t,n)}var se=`devframes:hub-ui:hide`,ce=`devframes_plugin_terminals`,le=`devframes_plugin_messages`,ue=Object.freeze({type:`~builtin`,category:`~builtin`,id:`~client-auth-notice`,title:`Unauthorized`,icon:`ph:warning-duotone`}),x=Object.freeze({type:`~builtin`,category:`~builtin`,id:`~settings`,title:`Settings`,icon:`ph:gear-duotone`}),de=Object.freeze([ue,x]),S=`~pinned`,fe=-1e5;function C(e,t){return e===S?fe:t?.[e]??l[e]??0}function pe(e){return typeof e==`string`?e:e?.light??e?.dark}var me={default:`Default`,app:`App`,framework:`Framework`,web:`Web`,advanced:`Advanced`,"~builtin":`Built-in`,[S]:`Pinned`};function w(e){return e!==`~builtin`&&e!==S}function he(e){return me[e]??e}function ge(e){let t=new Set;for(let n of e)n.type===`group`&&t.add(n.id);return t}function _e(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 T(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 E(i,n,{...r,ignoreCategoryHidden:!0,categoryOrderOverride:a?.categoryOrder})}function ve(e,t,n,r){return T(e,t,n,r).flatMap(([,e])=>e)}function ye(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(!b(i.when,r))return}else if(i.when===`false`)return}return i}}function E(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&&!b(n.when,c)&&!s||n.when&&!c&&n.when===`false`&&!s||n.visibility&&c&&!b(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?S: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=C(e,d),r=C(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 be(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 xe(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 D=o(null),O=o(null),k=o(null),A=o(null);function j(e){D.value=e}function M(){return D}function N(e){O.value=e}function Se(){return O}function Ce(e){k.value=e}function we(){return k}var P=o(null);function Te(e){P.value=e}function Ee(){return P}function De(e){A.value=e}function Oe(){return A}var F=o(null);function ke(e){F.value=e}function Ae(){return F}function je(){return{mode:`float`,width:80,height:80,top:0,left:10,position:`bottom`,open:!1,inactiveTimeout:3e3}}function Me(e,t){let r=n(),o=c({entryMeta:e,get isActive(){return t.value?.id===e.id},domElements:{},events:a(r)});return i(()=>t.value?.id,t=>{t===e.id?r.emit(`entry:activated`):r.emit(`entry:deactivated`)},{immediate:!0}),i(()=>o.domElements.iframe,e=>{e&&r.emit(`dom:iframe:mounted`,e)},{immediate:!0}),i(()=>o.domElements.panel,e=>{e&&r.emit(`dom:panel:mounted`,e)},{immediate:!0}),o}function I(e){let t=o(e.value());return e.on(`updated`,e=>{t.value=e}),t}var L=new WeakMap;async function R(e){if(L.has(e))return L.get(e);let t=I(await e.sharedState.get(`devframe:docks`,{initialValue:[]}));return L.set(e,t),t}var z=20,B=100,Ne=320,Pe=240,V=`__DEVFRAMES_TRIGGER_DOCK_ACTION__`,H=`__DEVFRAME_CONNECTION_META__`,U=o(null),W=o(!1),G=n(),K,q,J,Y,Fe=async()=>await r(()=>import(`./DockStandalone-zGNmPe_C.js`).then(e=>e.DockStandalone),__vite__mapDeps([0,1,2]),import.meta.url);G.on(`popup:open-requested`,e=>{qe(e)});function X(){if(!(typeof window>`u`))return window.documentPictureInPicture}function Ie(){K?.(),K=void 0,q?.(),q=void 0}function Le(e){return i(s,t=>{e.document.documentElement?.style.setProperty(`color-scheme`,t?`dark`:`light`)},{immediate:!0})}function Re(){J?.remove(),J=void 0}function Z(){Ie(),Re(),U.value=null,W.value=!1;let e=Y;Y=void 0,e?.docks.switchEntry(null)}function Q(e,t,n){return Math.min(Math.max(e,t),n)}function ze(e,t){window.innerWidth<=0||window.innerHeight<=0||(e.panel.store.width=Q(Math.round(t.innerWidth/window.innerWidth*100),z,B),e.panel.store.height=Q(Math.round(t.innerHeight/window.innerHeight*100),z,B))}async function Be(n,r){let i=await Fe(),a=r.document.createElement(`style`);a.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(`
4
4
  `),t(r.document,e().value),r.document.head?.appendChild(a),r.document.body.textContent=``,r[H]=globalThis[H]??n.rpc.connectionMeta;let o=r.document.createElement(`div`);o.id=`devframes-popup-root`,r.document.body.appendChild(o);let s=new i({context:n});J=s,o.appendChild(s)}function Ve(){return!!X()?.requestWindow}function He(e,t){typeof window>`u`||e!==`standalone`&&(window[V]=t)}async function Ue(e,t){if(!(typeof window>`u`)&&e===`standalone`)try{let e=window.opener;if(!e||e.closed)return;let n=e[V];return typeof n==`function`?await n(t):void 0}catch{return}}function We(){return U}function Ge(){return W}function Ke(e){G.emit(`popup:open-requested`,e)}async function qe(e){N(null);let t=U.value;if(t?.closed)Z();else if(t)return t.focus(),t;let n=X();if(!n?.requestWindow)return null;let r;try{let t=r=await n.requestWindow({width:Math.max(Ne,Math.round(window.innerWidth*e.panel.store.width/100)),height:Math.max(Pe,Math.round(window.innerHeight*e.panel.store.height/100))});await Be(e,t),q=Le(t);let i=()=>ze(e,t),a=()=>{U.value===t&&Z()};return t.addEventListener(`resize`,i),t.addEventListener(`pagehide`,a),K=()=>{t.removeEventListener(`resize`,i),t.removeEventListener(`pagehide`,a)},Y=e,U.value=t,W.value=!0,t}catch{return r&&!r.closed&&r.close(),Z(),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||b(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,ye as B,j as C,we as D,Se as E,ve as F,ce as G,x as H,T as I,u as J,b as K,ge as L,xe as M,he as N,Ae as O,_e as P,w as R,ke as S,Ee as T,se as U,de as V,le as W,R as _,Ze as a,N as b,Ve as c,Ue as d,We as f,I as g,Me as h,Je as i,E as j,M as k,He as l,je as m,$e as n,$ as o,Ge as p,d as q,Qe as r,Ye as s,et as t,Ke as u,De as v,Oe as w,Ce as x,Te as y,pe as z};
@@ -20,7 +20,7 @@
20
20
  height: 100%;
21
21
  }
22
22
  </style>
23
- <script type="module" crossorigin src="./assets/index-BDzp-bCc.js"></script>
23
+ <script type="module" crossorigin src="./assets/index-Da7LtX78.js"></script>
24
24
  <link rel="modulepreload" crossorigin href="./assets/preload-helper-CyyvF4ac.js">
25
25
  <link rel="modulepreload" crossorigin href="./assets/client-BN8PboYb.js">
26
26
  <link rel="modulepreload" crossorigin href="./assets/color-mode-BPeeQXcs.js">
package/dist/index.mjs CHANGED
@@ -36,7 +36,7 @@ function createUi(options = {}) {
36
36
  return {
37
37
  ...options.viewer !== false ? { viewer: { distDir: join(client, "standalone") } } : {},
38
38
  ...options.embedded !== false ? { embedded: { entry: join(client, "embedded.js") } } : {},
39
- ...options.branding ? { assets: { "branding.json": () => JSON.stringify(options.branding) } } : {}
39
+ assets: { "branding.json": () => JSON.stringify(options.branding || {}) }
40
40
  };
41
41
  }
42
42
  //#endregion
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@devframes/hub-ui",
3
3
  "type": "module",
4
- "version": "0.9.0-beta.1",
4
+ "version": "0.9.0-beta.2",
5
5
  "description": "Reference UI for the devframe hub, providing the floating dock and standalone viewer.",
6
6
  "author": "Anthony Fu <anthonyfu117@hotmail.com>",
7
7
  "license": "MIT",
@@ -29,9 +29,9 @@
29
29
  "dist"
30
30
  ],
31
31
  "peerDependencies": {
32
- "@devframes/json-render": "0.9.0-beta.1",
33
- "@devframes/hub": "0.9.0-beta.1",
34
- "devframe": "0.9.0-beta.1"
32
+ "@devframes/json-render": "0.9.0-beta.2",
33
+ "@devframes/hub": "0.9.0-beta.2",
34
+ "devframe": "0.9.0-beta.2"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@antfu/design": "^0.3.4",
@@ -53,9 +53,9 @@
53
53
  "unocss": "^66.7.5",
54
54
  "vite": "^8.2.1",
55
55
  "vue": "^3.5.41",
56
- "devframe": "0.9.0-beta.1",
57
- "@devframes/hub": "0.9.0-beta.1",
58
- "@devframes/json-render": "0.9.0-beta.1"
56
+ "@devframes/hub": "0.9.0-beta.2",
57
+ "@devframes/json-render": "0.9.0-beta.2",
58
+ "devframe": "0.9.0-beta.2"
59
59
  },
60
60
  "scripts": {
61
61
  "build": "pnpm run build:css && pnpm run build:node && pnpm run build:embedded && pnpm run build:standalone",
@@ -1,3 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./branding-V4rxaera.js","./color-mode-BPeeQXcs.js","./context-Dg5cQHkz.js","./keybindings-CRo5AVOI.js","./preload-helper-CyyvF4ac.js","./client-BN8PboYb.js","./DockStandalone-CFntZMZw.js"])))=>i.map(i=>d[i]);
2
- import{n as e,t}from"./preload-helper-CyyvF4ac.js";import{r as n}from"./client-BN8PboYb.js";import{V as r,n as i}from"./color-mode-BPeeQXcs.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)}})();function a(e){return typeof e==`string`?`'${e}'`:new o().serialize(e)}var o=function(){class e{#e=new Map;compare(e,t){let n=typeof e,r=typeof t;return n===`string`&&r===`string`?e.localeCompare(t):n===`number`&&r===`number`?e-t:String.prototype.localeCompare.call(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(typeof e.toJSON==`function`){let t=e.toJSON();return r+(typeof t==`object`&&t?this.$object(t):`(${this.serialize(t)})`)}return this.serializeObjectEntries(r,Object.entries(e))}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}(),s=[1779033703,-1150833019,1013904242,-1521486534,1359893119,-1694144372,528734635,1541459225],c=[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],l=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`,u=[],d=class{_data=new f;_hash=new f([...s]);_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],l=n[5],d=n[6],f=n[7];for(let n=0;n<64;n++){if(n<16)u[n]=e[t+n]|0;else{let e=u[n-15],t=(e<<25|e>>>7)^(e<<14|e>>>18)^e>>>3,r=u[n-2],i=(r<<15|r>>>17)^(r<<13|r>>>19)^r>>>10;u[n]=t+u[n-7]+i+u[n-16]}let p=s&l^~s&d,m=r&i^r&a^i&a,h=(r<<30|r>>>2)^(r<<19|r>>>13)^(r<<10|r>>>22),g=(s<<26|s>>>6)^(s<<21|s>>>11)^(s<<7|s>>>25),_=f+g+p+c[n]+u[n],v=h+m;f=d,d=l,l=s,s=o+_|0,o=a,a=i,i=r,r=_+v|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]+l|0,n[6]=n[6]+d|0,n[7]=n[7]+f|0}_append(e){typeof e==`string`&&(e=f.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 f(t,i)}},f=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(l.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 p(e){return new d().finalize(e).toBase64()}function m(e){return p(a(e))}function h(e){return m(e)}function g(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 _={blue:g(34,39),cyan:g(36,39),gray:g(90,39),green:g(32,39),red:g(31,39),yellow:g(33,39),bold:g(1,22),dim:g(2,22),reset:g(0,0),underline:g(4,24)},v=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`;function y(e=21){let t=``,n=e;for(;n--;)t+=v[Math.random()*64|0];return t}var b=Symbol.for(`immer-nothing`),x=Symbol.for(`immer-draftable`),S=Symbol.for(`immer-state`),ee=[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 C(e,...t){{let n=ee[e],r=N(n)?n.apply(null,t):n;throw Error(`[Immer] ${r}`)}}var w=Object,T=w.getPrototypeOf,E=`constructor`,te=`prototype`,ne=`configurable`,re=`enumerable`,ie=`writable`,ae=`value`,D=e=>!!e&&!!e[S];function O(e){return e?ce(e)||fe(e)||!!e[x]||!!e[E]?.[x]||pe(e)||me(e):!1}var oe=w[te][E].toString(),se=new WeakMap;function ce(e){if(!e||!M(e))return!1;let t=T(e);if(t===null||t===w[te])return!0;let n=w.hasOwnProperty.call(t,E)&&t[E];if(n===Object)return!0;if(!N(n))return!1;let r=se.get(n);return r===void 0&&(r=Function.toString.call(n),se.set(n,r)),r===oe}function le(e,t,n=!0){k(e)===0?(n?Reflect.ownKeys(e):w.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function k(e){let t=e[S];return t?t.type_:fe(e)?1:pe(e)?2:me(e)?3:0}var A=(e,t,n=k(e))=>n===2?e.has(t):w[te].hasOwnProperty.call(e,t),j=(e,t,n=k(e))=>n===2?e.get(t):e[t],ue=(e,t,n,r=k(e))=>{r===2?e.set(t,n):r===3?e.add(n):e[t]=n};function de(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}var fe=Array.isArray,pe=e=>e instanceof Map,me=e=>e instanceof Set,M=e=>typeof e==`object`,N=e=>typeof e==`function`,he=e=>typeof e==`boolean`;function ge(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var _e=e=>M(e)?e?.[S]:null,P=e=>e.copy_||e.base_,ve=e=>e.modified_?e.copy_:e.base_;function ye(e,t){if(pe(e))return new Map(e);if(me(e))return new Set(e);if(fe(e))return Array[te].slice.call(e);let n=ce(e);if(t===!0||t===`class_only`&&!n){let t=w.getOwnPropertyDescriptors(e);delete t[S];let n=Reflect.ownKeys(t);for(let r=0;r<n.length;r++){let i=n[r],a=t[i];a[ie]===!1&&(a[ie]=!0,a[ne]=!0),(a.get||a.set)&&(t[i]={[ne]:!0,[ie]:!0,[re]:a[re],[ae]:e[i]})}return w.create(T(e),t)}{let t=T(e);if(t!==null&&n)return{...e};let r=w.create(t);return w.assign(r,e)}}function be(e,t=!1){return Ce(e)||D(e)||!O(e)?e:(k(e)>1&&w.defineProperties(e,{set:Se,add:Se,clear:Se,delete:Se}),w.freeze(e),t&&le(e,(e,t)=>{be(t,!0)},!1),e)}function xe(){C(2)}var Se={[ae]:xe};function Ce(e){return e===null||!M(e)||w.isFrozen(e)}var we=`MapSet`,Te=`Patches`,Ee=`ArrayMethods`,De={};function F(e){let t=De[e];return t||C(0,e),t}var Oe=e=>!!De[e];function ke(e,t){De[e]||(De[e]=t)}var I,Ae=()=>I,je=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:Oe(we)?F(we):void 0,arrayMethodsPlugin_:Oe(Ee)?F(Ee):void 0});function Me(e,t){t&&(e.patchPlugin_=F(Te),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function Ne(e){Pe(e),e.drafts_.forEach(Ie),e.drafts_=null}function Pe(e){e===I&&(I=e.parent_)}var Fe=e=>I=je(I,e);function Ie(e){let t=e[S];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function Le(e,t){t.unfinalizedDrafts_=t.drafts_.length;let n=t.drafts_[0];if(e!==void 0&&e!==n){n[S].modified_&&(Ne(t),C(4)),O(e)&&(e=Re(t,e));let{patchPlugin_:r}=t;r&&r.generateReplacementPatches_(n[S].base_,e,t)}else e=Re(t,n);return ze(t,e,!0),Ne(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e===b?void 0:e}function Re(e,t){if(Ce(t))return t;let n=t[S];if(!n)return qe(t,e.handledSet_,e);if(!Ve(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);Ge(n,e)}return n.copy_}function ze(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&be(t,n)}function Be(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var Ve=(e,t)=>e.scope_===t,He=[];function Ue(e,t,n,r){let i=P(e),a=e.type_;if(r!==void 0&&j(i,r,a)===t){ue(i,r,n,a);return}if(!e.draftLocations_){let t=e.draftLocations_=new Map;le(i,(e,n)=>{if(D(n)){let r=t.get(n)||[];r.push(e),t.set(n,r)}})}let o=e.draftLocations_.get(t)??He;for(let e of o)ue(i,e,n,a)}function We(e,t,n){e.callbacks_.push(function(r){let i=t;if(!i||!Ve(i,r))return;r.mapSetPlugin_?.fixSetContents(i);let a=ve(i);Ue(e,i.draft_??i,a,n),Ge(i,r)})}function Ge(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)}Be(e)}}function Ke(e,t,n){let{scope_:r}=e;if(D(n)){let i=n[S];Ve(i,r)&&i.callbacks_.push(function(){nt(e),Ue(e,n,ve(i),t)})}else O(n)&&e.callbacks_.push(function(){let i=P(e);e.type_===3?i.has(n)&&qe(n,r.handledSet_,r):j(i,t,e.type_)===n&&r.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&qe(j(e.copy_,t,e.type_),r.handledSet_,r)})}function qe(e,t,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||D(e)||t.has(e)||!O(e)||Ce(e)?e:(t.add(e),le(e,(r,i)=>{if(D(i)){let t=i[S];Ve(t,n)&&(ue(e,r,ve(t),e.type_),Be(t))}else O(i)&&qe(i,t,n)}),e)}function Je(e,t){let n=fe(e),r={type_:+!!n,scope_:t?t.scope_:Ae(),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=Ye;n&&(i=[r],a=Xe);let{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,[s,r]}var Ye={get(e,t){if(t===S)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=P(e);if(!A(i,t,e.type_))return $e(e,i,t);let a=i[t];if(e.finalized_||!O(a)||r&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&ge(t))return a;if(a===Ze(e.base_,t)||Qe(e,t,a)){nt(e);let n=e.type_===1?+t:t,r=it(e.scope_,a,e,n);return e.copy_[n]=r}return a},has(e,t){return t in P(e)},ownKeys(e){return Reflect.ownKeys(P(e))},set(e,t,n){let r=et(P(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){let r=Ze(P(e),t),i=r?.[S];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_.set(t,!1),!0;if(de(n,r)&&(n!==void 0||A(e.base_,t,e.type_)))return!0;nt(e),tt(e)}return e.copy_[t]===n&&(n!==void 0||A(e.copy_,t,e.type_))||Number.isNaN(n)&&Number.isNaN(e.copy_[t])?!0:(e.copy_[t]=n,e.assigned_.set(t,!0),Ke(e,t,n),!0)},deleteProperty(e,t){return nt(e),Ze(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),tt(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let n=P(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{[ie]:!0,[ne]:e.type_!==1||t!==`length`,[re]:r[re],[ae]:n[t]}},defineProperty(){C(11)},getPrototypeOf(e){return T(e.base_)},setPrototypeOf(){C(12)}},Xe={};for(let e in Ye){let t=Ye[e];Xe[e]=function(){let e=arguments;return e[0]=e[0][0],t.apply(this,e)}}Xe.deleteProperty=function(e,t){return isNaN(parseInt(t))&&C(13),Xe.set.call(this,e,t,void 0)},Xe.set=function(e,t,n){return t!==`length`&&isNaN(parseInt(t))&&C(14),Ye.set.call(this,e[0],t,n,e[0])};function Ze(e,t){let n=e[S];return(n?P(n):e)[t]}function Qe(e,t,n){return e.type_!==1||!e.allIndicesReassigned_||e.assigned_?.get(t)||!O(n)||n[S]?!1:e.baseRefs_.has(n)}function $e(e,t,n){let r=et(t,n);return r?ae in r?r[ae]:r.get?.call(e.draft_):void 0}function et(e,t){if(!(t in e))return;let n=T(e);for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=T(n)}}function tt(e){e.modified_||(e.modified_=!0,e.parent_&&tt(e.parent_))}function nt(e){e.copy_||=(e.assigned_=new Map,ye(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var rt=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(e,t,n)=>{if(N(e)&&!N(t)){let n=t;t=e;let r=this;return function(e=n,...i){return r.produce(e,e=>t.call(this,e,...i))}}N(t)||C(6),n!==void 0&&!N(n)&&C(7);let r;if(O(e)){let i=Fe(this),a=it(i,e,void 0),o=!0;try{r=t(a),o=!1}finally{o?Ne(i):Pe(i)}return Me(i,n),Le(r,i)}if(!e||!M(e)){if(r=t(e),r===void 0&&(r=e),r===b&&(r=void 0),this.autoFreeze_&&be(r,!0),n){let t=[],i=[];F(Te).generateReplacementPatches_(e,r,{patches_:t,inversePatches_:i}),n(t,i)}return r}C(1,e)},this.produceWithPatches=(e,t)=>{if(N(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]},he(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),he(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),he(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){O(e)||C(8),D(e)&&(e=at(e));let t=Fe(this),n=it(t,e,void 0);return n[S].isManual_=!0,Pe(t),n}finishDraft(e,t){let n=e&&e[S];(!n||!n.isManual_)&&C(9);let{scope_:r}=n;return Me(r,t),Le(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=F(Te).applyPatches_;return D(e)?r(e,t):this.produce(e,e=>r(e,t))}};function it(e,t,n,r){let[i,a]=pe(t)?F(we).proxyMap_(t,n):me(t)?F(we).proxySet_(t,n):Je(t,n);return(n?.scope_??Ae()).drafts_.push(i),a.callbacks_=n?.callbacks_??[],a.key_=r,n&&r!==void 0?We(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 at(e){return D(e)||C(10,e),ot(e)}function ot(e){if(!O(e)||Ce(e))return e;let t=e[S],n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=ye(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=ye(e,!0);return le(n,(e,t)=>{ue(n,e,ot(t))},r),t&&(t.finalized_=!1),n}function st(){ee.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=_e(j(e,n.key_)),i=j(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||A(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=j(n,r),!M(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?.[S];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;le(e.assigned_,(e,l)=>{let u=j(o,e,c),f=j(s,e,c),p=l?A(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===b?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=k(o),n=i[e];typeof n!=`string`&&typeof n!=`number`&&(n=``+n),(t===0||t===1)&&(n===`__proto__`||n===E)&&C(19),N(o)&&n===te&&C(19),o=j(o,n),(o===null||!M(o))&&C(18,i.join(`/`))}let s=k(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:C(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:C(17,a)}}),e}function u(e){if(!O(e))return e;if(fe(e))return e.map(u);if(pe(e))return new Map(Array.from(e.entries()).map(([e,t])=>[e,u(t)]));if(me(e))return new Set(Array.from(e).map(u));let t=Object.create(T(e));for(let n in e)t[n]=u(e[n]);return A(e,x)&&(t[x]=e[x]),t}function d(e){return D(e)?u(e):e}ke(Te,{applyPatches_:l,generatePatches_:i,generateReplacementPatches_:c,getPath:e})}var ct=new rt,lt=ct.produce,ut=ct.produceWithPatches.bind(ct),dt=ct.applyPatches.bind(ct),ft=1e3;function pt(e,t){if(e.add(t),e.size>ft){let t=e.values().next().value;t!==void 0&&e.delete(t)}}function mt(t){let{enablePatches:n=!1}=t;n&&st();let r=e(),i=t.initialValue,a=new Set;return{on:r.on,value:()=>i,patch:(e,t=y())=>{a.has(t)||(st(),i=dt(i,e),pt(a,t),r.emit(`updated`,i,void 0,t))},mutate:(e,t=y())=>{if(!a.has(t)){if(pt(a,t),n){let[n,a]=ut(i,e);i=n,r.emit(`updated`,i,a,t)}else i=lt(i,e),r.emit(`updated`,i,void 0,t)}},syncIds:a}}var ht=typeof self==`object`?self:globalThis,gt=new Set([`Error`,`EvalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`,`AggregateError`]),_t=new Set([`Boolean`,`Number`,`String`,`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float16Array`,`Float32Array`,`Float64Array`,`BigInt64Array`,`BigUint64Array`]);function vt(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=gt.has(e)?ht[e]:void 0;return n(new(r??ht.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`&&_t.has(a))return n(new ht[a](o),i);throw TypeError(`unable to deserialize unsafe or unknown type: ${String(a)}`)};return r}function yt(e){return vt(new Map,e)(0)}var L=``,{toString:bt}={},{keys:xt}=Object;function St(e){let t=typeof e;if(t!==`object`||!e)return[0,t];let n=bt.call(e).slice(8,-1);switch(n){case`Array`:return[1,L];case`Object`:return[2,L];case`Date`:return[3,L];case`RegExp`:return[4,L];case`Map`:return[5,L];case`Set`:return[6,L];case`DataView`:return[1,n]}return n.includes(`Array`)?[1,n]:n.includes(`Error`)?[7,n]:[2,n]}function Ct([e,t]){return e===0&&(t===`function`||t===`symbol`)}function wt(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]=St(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 xt(r))(e||!Ct(St(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||!(Ct(St(n))||Ct(St(i))))&&t.push([a(n),a(i)]);return n}case 6:{let t=[],n=i([o,t],r);for(let n of r)(e||!Ct(St(n)))&&t.push(a(n));return n}}let{message:c}=r;return i([o,{name:s,message:c}],r)};return a}function Tt(e,t={}){let n=[];return wt(!(t.json||t.lossy),!!t.json,new Map,n)(e),n}var{parse:Et,stringify:Dt}=JSON,Ot={json:!0,lossy:!0};function kt(e){return yt(Et(e))}function At(e){return Dt(Tt(e,Ot))}function jt(e){return yt(e)}function Mt(e){return At(e)}function Nt(e){return kt(e)}var Pt=256,Ft=class extends Error{name=`StreamClosedError`};function It(t={}){let n=t.id??y(),r=Math.max(0,t.replayWindow??0),i=e(),a=new AbortController,o=[],s=!1,c=0;function l(e){if(s)throw new Ft(`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=Rt(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 Lt(e={}){let t=e.id??y(),n=Math.max(1,e.highWaterMark??Pt),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 Rt(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 Bt=Error.captureStackTrace,Vt=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,Bt?.(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 Ht(e,t){return typeof e==`string`?`${e}/${t.toLowerCase()}`:e?.(t)}function Ut(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||Ht(r,i),s=(e={},n={})=>{let r=new Vt({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 Wt(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(`
3
- `)}}String.fromCharCode;var Gt=/^[\s\w\0+.-]{2,}:([/\\]{1,2})/,Kt=/^[\s\w\0+.-]{2,}:([/\\]{2})?/,qt=/^([/\\]\s*){2,}[^/\\]/,Jt=/\/$|\/\?|\/#/,Yt=/^\.?\//;function Xt(e,t={}){return typeof t==`boolean`&&(t={acceptRelative:t}),t.strict?Gt.test(e):Kt.test(e)||(t.acceptRelative?qt.test(e):!1)}function Zt(e=``,t){return t?Jt.test(e):e.endsWith(`/`)}function Qt(e=``,t){if(!t)return(Zt(e)?e.slice(0,-1):e)||`/`;if(!Zt(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 $t(e=``,t){if(!t)return e.endsWith(`/`)?e:e+`/`;if(Zt(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 en(e,t){if(tn(t)||Xt(e))return e;let n=Qt(t);if(e.startsWith(n)){let t=e[n.length];if(!t||t===`/`||t===`?`)return e}return rn(n,e)}function tn(e){return!e||e===`/`}function nn(e){return e&&e!==`/`}function rn(e,...t){let n=e||``;for(let e of t.filter(e=>nn(e)))if(n){let t=e.replace(Yt,``);n=$t(n)+t}else n=e;return n}function an(e,t){let n=e.match(Kt);return n||=e.match(/^\/{2,}/),n?t+e.slice(n[0].length):t+e}function on(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}var sn=Math.random.bind(Math),cn=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`;function ln(e=21){let t=``,n=e;for(;n--;)t+=cn[sn()*64|0];return t}var un=6e4,dn=e=>e,fn=dn,{clearTimeout:pn,setTimeout:mn}=globalThis;function hn(e,t){let{post:n,on:r,off:i=()=>{},eventNames:a=[],serialize:o=dn,deserialize:s=fn,resolver:c,bind:l=`rpc`,timeout:u=un,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}=on(),_=ln();s.i=_;let v;async function y(n=s){return u>=0&&(v=mn(()=>{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{pn(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&&(pn(r.timeoutId),n?r.reject(n):r.resolve(t)),p.delete(e)}}return m=r(b),h}var gn=`__connection.json`,_n=`__DEVFRAME_CONNECTION__`,vn=`__rpc-dump/index.json`,yn=`devframe_otp`,bn=`devframe_auth_token`,xn=class{cacheMap=new Map;options;keySerializer;constructor(e){this.options=e,this.keySerializer=e.keySerializer||(e=>h(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=Wt(_);function Cn(e,{method:t=`warn`}={}){console[t](Sn(e))}var R=Ut({docsBase:`https://devfra.me/errors`,reporters:[Cn],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 wn(e,t){let n=e[`~standard`].validate(t);return n instanceof Promise?await n:n}function Tn(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 En(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 wn(i,n[r]);if(a.issues)throw R.DF0043({name:e,index:r,issues:Tn(a.issues)})}return r}async function Dn(e,t,n){if(!t)return n;let r=await wn(t,n);if(r.issues)throw R.DF0044({name:e,issues:Tn(r.issues)});return n}async function On(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 kn(e,t){let n=e.handler;if(!n){let r=await On(e,t);if(!r.handler)throw R.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 En(e.name,r,t),o=await a(...n);return await Dn(e.name,i,o)}}var An=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 kn(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 R.DF0021({name:e.name});jn(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 R.DF0022({name:e.name});jn(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 kn(this.definitions.get(e),this.context)}getSchema(e){let t=this.definitions.get(e);if(!t)throw R.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 jn(e){if(e.agent&&e.jsonSerializable!==!0)throw R.DF0019({name:e.name})}function Mn(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 z(t,`undefined`,r,e);return n}if(i===null)return n;if(typeof i==`bigint`)throw z(t,`BigInt`,r,e);if(typeof i==`object`){if(i instanceof Map)throw z(t,`Map`,r,e);if(i instanceof Set)throw z(t,`Set`,r,e);if(i instanceof Date)throw z(t,`Date`,r,e);if(Array.isArray(i))return n;let a=Object.getPrototypeOf(i);if(a!==null&&a!==Object.prototype)throw z(t,i.constructor?.name??`class instance`,r,e)}return n})}function z(e,t,n,r){let i=Nn(n,r);return R.DF0020({name:e||`<anonymous>`,type:t,path:i})}function Nn(e,t){return Array.isArray(e)?`[${t}]`:t===``?`<root>`:t}var Pn=`__DEVFRAME_CONNECTION_META__`,Fn=`__DEVFRAME_CONNECTION_AUTH_TOKEN__`;function In(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 Ln(){return In(_n)}function Rn(){return In(Pn)}function B(e){if(e)return e;try{let e=localStorage.getItem(Fn);if(e)return e}catch{}return In(Fn)}function zn(e){globalThis[_n]=e,globalThis[Pn]={...e.connectionMeta,baseUrl:e.metaBaseUrl},e.authToken&&Bn(e.authToken)}function Bn(e){try{localStorage.setItem(Fn,e)}catch{}globalThis[Fn]=e;let t=Ln();t&&(globalThis[_n]={...t,authToken:e})}function Vn(e){let t=en(gn,e);try{return new URL(t,globalThis.location?.href).href}catch{return t}}function Hn(e,t){return t&&t!==e.authToken?{...e,authToken:t}:e}function Un(){let e=Ln();if(e)return Hn(e,B()??e.authToken??e.connectionMeta.authToken);let t=Rn();if(t)return{connectionMeta:t,metaBaseUrl:t.baseUrl??Vn(`./`),authToken:B(t.authToken)}}async function Wn(e={}){if(e.connection){let t=Hn(e.connection,B(e.authToken??e.connection.authToken??e.connection.connectionMeta.authToken));return zn(t),t}let t=Array.isArray(e.baseURL)?e.baseURL:[e.baseURL??`./`];if(e.connectionMeta){let n={connectionMeta:e.connectionMeta,metaBaseUrl:Vn(t[0]??`./`),authToken:B(e.authToken??e.connectionMeta.authToken)};return zn(n),n}let n=Un();if(n){let t=Hn(n,B(e.authToken??n.authToken??n.connectionMeta.authToken));return zn(t),t}let r=[];for(let n of t){let t=en(gn,n),i=Vn(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:B(e.authToken??r.authToken)};return zn(a),a}catch(e){r.push(e)}}throw Error(`Failed to get connection meta from ${t.join(`, `)}`,{cause:r})}var V=class extends Error{name=`DevframeConnectionError`;kind;constructor(e,t,n){super(t,n),this.kind=e}};function Gn(e=yn){try{let t=globalThis.location?.hash?.replace(/^#/,``)??``;return new URLSearchParams(t).get(e)||void 0}catch{return}}function Kn(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 qn(e=yn){let t=Gn(e);return t&&Kn(e),t}async function Jn(e,t={}){let n=qn(t.param??`devframe_otp`);return n?e.isTrusted?!0:e.requestTrustWithCode(n):!1}function Yn(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:`devframe:rpc:client-state:updated`,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:`devframe:rpc:client-state:patch`,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=mt({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(`rpc:is-trusted:updated`,e=>{e&&!n&&(n=!0,d())})}})}}}function Xn(e){let t=e.cause instanceof Error?e.cause:Zn(e.cause)?Xn(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 Zn(e){return typeof e==`object`&&!!e&&typeof e.message==`string`&&typeof e.name==`string`}function Qn(e){return typeof e==`object`&&!!e&&e.type===`static`&&typeof e.path==`string`}function $n(e){return typeof e==`object`&&!!e&&e.type===`query`&&typeof e.records==`object`&&e.records!==null}function er(e){return typeof e==`object`&&!!e&&(`output`in e||`error`in e)}function tr(e){if(e.error)throw Xn(e.error);return e.output}function nr(e){return e.some(e=>e!=null)}function rr(e){return typeof e==`object`&&e&&`serialization`in e&&`data`in e?e.data:e}function ir(e,t){let n=new Map,r=new Map;function i(e,t){return t===`structured-clone`&&Array.isArray(e)?jt(e):e}function a(e,t){return i(rr(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 er(r)?tr(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(Qn(r)){if(nr(n))throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`);return await o(r)}if($n(r)){let e=h(n),i=r.records[e];if(i)return tr(await s(i,r.serialization));if(r.fallback)return tr(await s(r.fallback,r.serialization));throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`)}if(!nr(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 ar(e){let t=ir(await e.fetchJsonFromBases(vn),e.fetchJsonFromBases);return{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 or=``;function sr(e,t){return`${e}${or}${t}`}function cr(e){let t=new Map,n=new Map;e.client.register({name:`devframe:streaming:chunk`,type:`event`,handler(e,n,r,i){t.get(sr(e,n))?._push(r,i)}}),e.client.register({name:`devframe:streaming:end`,type:`event`,handler(e,n,r){let i=sr(e,n),a=t.get(i);a&&(a._end(r),t.delete(i))}}),e.client.register({name:`devframe:streaming:upload-cancel`,type:`event`,handler(e,t){let r=sr(e,t),i=n.get(r);i&&(i.abort(`server cancelled upload`),n.delete(r))}}),e.events.on(`rpc:is-trusted:updated`,n=>{if(n)for(let[n,r]of t){if(r.cancelled||r.done)continue;let t=n.indexOf(or);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=sr(n,r),o=t.get(a);if(o)return o;let s=Lt({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(`rpc:is-trusted:updated`,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=sr(t,r),a=n.get(i);if(a)return a;let o=It({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 lr(e,t){let{channel:n,rpcOptions:r={}}=t;return hn(e,{...n,timeout:-1,...r,proxify:!1})}function ur(){}var dr=new Map;function fr(e){let t=e.url;e.authToken&&(t=`${t}?${bn}=${encodeURIComponent(e.authToken)}`);let n=new WebSocket(t),{onConnected:r=ur,onError:i=ur,onDisconnected:a=ur,definitions:o=dr}=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=new Map;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:e=>{let t;return e.t===`q`?t=e.m:(t=s.get(e.i),s.delete(e.i)),!(e.t===`s`&&`e`in e)&&t&&o.get(t)?.jsonSerializable===!0?Mn(e,t??``):`s:${Mt(e)}`},deserialize:e=>{let t=e.startsWith(`s:`)?Nt(e.slice(2)):JSON.parse(e);return t.t===`q`&&t.i&&t.m&&s.set(t.i,t.m),t}}}var pr=``,mr=`?`,hr=`major`,H=`model`,U=`name`,W=`type`,G=`vendor`,K=`version`,q=`architecture`,gr=`console`,J=`mobile`,Y=`tablet`,X=`smarttv`,Z=`wearable`,_r=`embedded`,vr=500,yr=`Amazon`,br=`Apple`,xr=`ASUS`,Sr=`BlackBerry`,Q=`Browser`,Cr=`Chrome`,wr=`Edge`,Tr=`Firefox`,Er=`Google`,Dr=`Huawei`,Or=`LG`,kr=`Microsoft`,Ar=`Motorola`,jr=`Opera`,Mr=`Samsung`,Nr=`Sharp`,Pr=`Sony`,Fr=`Xiaomi`,Ir=`Zebra`,Lr=`Facebook`,Rr=`Chromium OS`,zr=`Mac OS`;function Br(e,t={}){let n={};for(let r of Object.keys(e)){let i=t[r];n[r]=i&&i.length%2==0?[...i,...e[r]]:e[r]}return n}function Vr(e){let t={};for(let n=0;n<e.length;n++)t[e[n].toUpperCase()]=e[n];return t}function Hr(e){return e.toLowerCase()}function Ur(e,t){return typeof e==`string`&&Hr(t).includes(Hr(e))}function Wr(e){return typeof e==`string`?e.replace(/[^\d.]/g,pr).split(`.`)[0]:void 0}function Gr(e,t){let n=e.replace(/^\s+/,pr);return t===void 0?n:n.substring(0,t)}function Kr(e,t,n){let r=n??{};for(let n=0;n<t.length;n+=2){let i=t[n],a=t[n+1];for(let t=0;t<i.length;t++){let n=i[t];if(!n)break;let o=n.exec(e);if(o){for(let e=0;e<a.length;e++){let t=o[e+1],n=a[e];if(Array.isArray(n)){let e=n[0],i=n.length;if(i===2){let i=n[1];r[e]=typeof i==`function`?i(t,void 0,r):i}else if(i===3){let i=n[1],a=n[2];r[e]=typeof i==`function`&&!(`exec`in i)&&!(`test`in i)?t?i(t,a,r):void 0:t?t.replace(i,a):void 0}else i===4&&(r[e]=t?n[3](t.replace(n[1],n[2]),void 0,r):void 0)}else r[n]=t||void 0}return r}}}return r}function qr(e,t){for(let n in t){let r=t[n];if(Array.isArray(r)&&r.length>0){for(let t=0;t<r.length;t++)if(Ur(r[t],e))return n===mr?void 0:n}else if(Ur(r,e))return n===mr?void 0:n}return e}var Jr={"1.0":`/8`,"1.2":`/1`,"1.3":`/3`,"2.0":`/412`,"2.0.2":`/416`,"2.0.3":`/417`,"2.0.4":`/419`,"?":`/`},Yr={ME:`4.90`,"NT 3.11":`NT3.51`,"NT 4.0":`NT4.0`,2e3:`NT 5.0`,XP:[`NT 5.1`,`NT 5.2`],Vista:`NT 6.0`,7:`NT 6.1`,8:`NT 6.2`,"8.1":`NT 6.3`,10:[`NT 6.4`,`NT 10.0`],RT:`ARM`},Xr={browser:[[/\b(?:crmo|crios)\/([\w.]+)/i],[K,[U,`Chrome`]],[/edg(?:e|ios|a)?\/([\w.]+)/i],[K,[U,`Edge`]],[/(opera mini)\/([-\w.]+)/i,/(opera [mobileta]{3,6})\b.+version\/([-\w.]+)/i,/(opera)(?:.+version\/|[/ ]+)([\w.]+)/i],[U,K],[/opios[/ ]+([\w.]+)/i],[K,[U,`${jr} Mini`]],[/\bop(?:rg)?x\/([\w.]+)/i],[K,[U,`${jr} GX`]],[/\bopr\/([\w.]+)/i],[K,[U,jr]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[/ ]?([\w.]+)/i],[K,[U,`Baidu`]],[/(kindle)\/([\w.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[/ ]?([\w.]*)/i,/(avant|iemobile|slim)\s?(?:browser)?[/ ]?([\w.]*)/i,/(?:ms|\()(ie) ([\w.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\/([-\w.]+)/i,/(heytap|ovi)browser\/([\d.]+)/i,/(weibo)__([\d.]+)/i],[U,K],[/\bddg\/([\w.]+)/i],[K,[U,`DuckDuckGo`]],[/(?:\buc? ?browser|juc.+ucweb)[/ ]?([\w.]+)/i],[K,[U,`UC${Q}`]],[/microm.+\bqbcore\/([\w.]+)/i,/\bqbcore\/([\w.]+).+microm/i,/micromessenger\/([\w.]+)/i],[K,[U,`WeChat`]],[/konqueror\/([\w.]+)/i],[K,[U,`Konqueror`]],[/trident.+rv[: ]([\w.]{1,9})\b.+like gecko/i],[K,[U,`IE`]],[/ya(?:search)?browser\/([\w.]+)/i],[K,[U,`Yandex`]],[/slbrowser\/([\w.]+)/i],[K,[U,`Smart Lenovo ${Q}`]],[/(avast|avg)\/([\w.]+)/i],[[U,/(.+)/,`$1 Secure ${Q}`],K],[/\bfocus\/([\w.]+)/i],[K,[U,`${Tr} Focus`]],[/\bopt\/([\w.]+)/i],[K,[U,`${jr} Touch`]],[/coc_coc\w+\/([\w.]+)/i],[K,[U,`Coc Coc`]],[/dolfin\/([\w.]+)/i],[K,[U,`Dolphin`]],[/coast\/([\w.]+)/i],[K,[U,`${jr} Coast`]],[/miuibrowser\/([\w.]+)/i],[K,[U,`MIUI ${Q}`]],[/fxios\/([-\w.]+)/i],[K,[U,Tr]],[/\bqihu|(qi?ho{0,2}|360)browser/i],[[U,`360 ${Q}`]],[/(oculus|sailfish|huawei|vivo)browser\/([\w.]+)/i],[[U,/(.+)/,`$1 ${Q}`],K],[/samsungbrowser\/([\w.]+)/i],[K,[U,`${Mr} Internet`]],[/(comodo_dragon)\/([\w.]+)/i],[[U,/_/g,` `],K],[/metasr[/ ]?([\d.]+)/i],[K,[U,`Sogou Explorer`]],[/(sogou)mo\w+\/([\d.]+)/i],[[U,`Sogou Mobile`],K],[/(electron)\/([\w.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w.]+))/i,/m?(qqbrowser|2345Explorer)[/ ]?([\w.]+)/i],[U,K],[/(lbbrowser)/i,/\[(linkedin)app\]/i],[U],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w.]+);)/i],[[U,Lr],K],[/(Klarna)\/([\w.]+)/i,/(kakao(?:talk|story))[/ ]([\w.]+)/i,/(naver)\(.*?(\d+\.[\w.]+).*\)/i,/safari (line)\/([\w.]+)/i,/\b(line)\/([\w.]+)\/iab/i,/(alipay)client\/([\w.]+)/i,/(twitter)(?:and| f.+e\/([\w.]+))/i,/(chromium|instagram|snapchat)[/ ]([-\w.]+)/i],[U,K],[/\bgsa\/([\w.]+) .*safari\//i],[K,[U,`GSA`]],[/musical_ly(?:.+app_?version\/|_)([\w.]+)/i],[K,[U,`TikTok`]],[/headlesschrome(?:\/([\w.]+)| )/i],[K,[U,`${Cr} Headless`]],[/ wv\).+(chrome)\/([\w.]+)/i],[[U,`${Cr} WebView`],K],[/droid.+ version\/([\w.]+)\b.+(?:mobile safari|safari)/i],[K,[U,`Android ${Q}`]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w.]+)/i],[U,K],[/version\/([\w.,]+) .*mobile\/\w+ (safari)/i],[K,[U,`Mobile Safari`]],[/version\/([\w(.|,)]+) .*(mobile ?safari|safari)/i],[K,U],[/webkit.+?(mobile ?safari|safari)(\/[\w.]+)/i],[U,[K,qr,Jr]],[/(webkit|khtml)\/([\w.]+)/i],[U,K],[/(navigator|netscape\d?)\/([-\w.]+)/i],[[U,`Netscape`],K],[/mobile vr; rv:([\w.]+)\).+firefox/i],[K,[U,`${Tr} Reality`]],[/ekiohf.+(flow)\/([\w.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[/ ]?([\w.+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w.]+)$/i,/(firefox)\/([\w.]+)/i,/(mozilla)\/([\w.]+) .+rv:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[. ]?browser)[-/ ]?v?([\w.]+)/i,/(links) \(([\w.]+)/i,/panasonic;(viera)/i],[U,K],[/(cobalt)\/([\w.]+)/i],[U,[K,/master.|lts./,``]]],cpu:[[/(amd|x(?:(?:86|64)[-_])?|wow|win)64[;)]/i],[[q,`amd64`]],[/(ia32(?=;))/i],[[q,Hr]],[/((?:i[346]|x)86)[;)]/i],[[q,`ia32`]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[q,`arm64`]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[q,`armhf`]],[/windows (ce|mobile); ppc;/i],[[q,`arm`]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[q,/ower/,pr,Hr]],[/(sun4\w)[;)]/i],[[q,`sparc`]],[/(avr32|ia64(?=;)|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[q,Hr]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[H,[G,Mr],[W,Y]],[/\b((?:s[cgp]h|gt|sm)-\w+|sc[g-]?\d+a?|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[H,[G,Mr],[W,J]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[H,[G,br],[W,J]],[/\((ipad);[-\w),; ]+apple/i,/applecoremedia\/[\w.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[H,[G,br],[W,Y]],[/(macintosh);/i],[H,[G,br]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[H,[G,Nr],[W,J]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[H,[G,Dr],[W,Y]],[/(?:huawei|honor)([-\w ]+)[;)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][0-359c][adn]?)\b(?!.+d\/s)/i],[H,[G,Dr],[W,J]],[/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?[\w ]+)(?: bui|\))/i,/oid[^)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?\d?\w?[_ ]?(?:plus|se|lite)?)(?: bui|\))/i],[[H,/_/g,` `],[G,Fr],[W,J]],[/oid[^)]+; (2\d{4}(283|rpbf)[cgl])( bui|\))/i,/\b(mi[-_ ]?pad[\w ]+)(?: bui|\))/i],[[H,/_/g,` `],[G,Fr],[W,Y]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[H,[G,`OPPO`],[W,J]],[/\b(opd2\d{3}a?) bui/i],[H,[G,`OPPO`],[W,Y]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[H,[G,`Vivo`],[W,J]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[H,[G,`Realme`],[W,J]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w() ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[H,[G,Ar],[W,J]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[H,[G,Ar],[W,Y]],[/((?=lg)?[vl]k-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[H,[G,Or],[W,Y]],[/(lm(?:-?f100[nv]?|-[\w.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?(\w+) bui/i],[H,[G,Or],[W,J]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab[\w ]+|yt[-\w]{6}|tb[-\w]{6})/i],[H,[G,`Lenovo`],[W,Y]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w.]*)/i],[[H,/_/g,` `],[G,`Nokia`],[W,J]],[/(pixel c)\b/i],[H,[G,Er],[W,Y]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[H,[G,Er],[W,J]],[/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]?\d\.))/i],[H,[G,Pr],[W,J]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[H,`Xperia Tablet`],[G,Pr],[W,Y]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[H,[G,`OnePlus`],[W,J]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[H,[G,yr],[W,Y]],[/((?:sd|kf)[0349hijor-uw]+)( bui|\)).+silk\//i],[[H,/(.+)/g,`Fire Phone $1`],[G,yr],[W,J]],[/(playbook);[-\w),; ]+(rim)/i],[H,G,[W,Y]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[H,[G,Sr],[W,J]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[H,[G,xr],[W,Y]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[H,[G,xr],[W,J]],[/(nexus 9)/i],[H,[G,`HTC`],[W,Y]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!;|\.)|sony(?!-bra))[-_ ]?([-\w]*)/i],[G,[H,/_/g,` `],[W,J]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[H,[G,`Acer`],[W,Y]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[H,[G,`Meizu`],[W,J]],[/; ((?:power )?armor[\w ]{0,8})(?: bui|\))/i],[H,[G,`Ulefone`],[W,J]],[/(blackberry|benq|palm(?=-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\w]*)/i,/(hp) ([\w ]+\w)/i,/(asus)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[G,H,[W,J]],[/(kobo)\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[G,H,[W,Y]],[/(surface duo)/i],[H,[G,kr],[W,Y]],[/droid [\d.]+; (fp\du?)(?: b|\))/i],[H,[G,`Fairphone`],[W,J]],[/(u304aa)/i],[H,[G,`AT&T`],[W,J]],[/\bsie-(\w*)/i],[H,[G,`Siemens`],[W,J]],[/\b(rct\w+) b/i],[H,[G,`RCA`],[W,Y]],[/\b(venue[\d ]{2,7}) b/i],[H,[G,`Dell`],[W,Y]],[/\b(q(?:mv|ta)\w+) b/i],[H,[G,`Verizon`],[W,Y]],[/\b(?:barnes[& ]+noble |bn[rt])([\w+ ]*) b/i],[H,[G,`Barnes & Noble`],[W,Y]],[/\b(tm\d{3}\w+) b/i],[H,[G,`NuVision`],[W,Y]],[/\b(k88) b/i],[H,[G,`ZTE`],[W,Y]],[/\b(nx\d{3}j) b/i],[H,[G,`ZTE`],[W,J]],[/\b(gen\d{3}) b.+49h/i],[H,[G,`Swiss`],[W,J]],[/\b(zur\d{3}) b/i],[H,[G,`Swiss`],[W,Y]],[/\b((zeki)?tb.*\b) b/i],[H,[G,`Zeki`],[W,Y]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[G,`Dragon Touch`],H,[W,Y]],[/\b(ns-?\w{0,9}) b/i],[H,[G,`Insignia`],[W,Y]],[/\b((nxa|next)-?\w{0,9}) b/i],[H,[G,`NextBook`],[W,Y]],[/\b(xtreme_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[G,`Voice`],H,[W,J]],[/\b(lvtel-)?(v1[12]) b/i],[[G,`LvTel`],H,[W,J]],[/\b(ph-1) /i],[H,[G,`Essential`],[W,J]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[H,[G,`Envizen`],[W,Y]],[/\b(trio[-\w. ]+) b/i],[H,[G,`MachSpeed`],[W,Y]],[/\btu_(1491) b/i],[H,[G,`Rotor`],[W,Y]],[/(shield[\w ]+) b/i],[H,[G,`Nvidia`],[W,Y]],[/(sprint) (\w+)/i],[G,H,[W,J]],[/(kin\.[onetw]{3})/i],[[H,/\./g,` `],[G,kr],[W,J]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[H,[G,Ir],[W,Y]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[H,[G,Ir],[W,J]],[/smart-tv.+(samsung)/i],[G,[W,X]],[/hbbtv.+maple;(\d+)/i],[[H,/^/,`SmartTV`],[G,Mr],[W,X]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[G,Or],[W,X]],[/(apple) ?tv/i],[G,[H,`${br} TV`],[W,X]],[/crkey/i],[[H,`${Cr}cast`],[G,Er],[W,X]],[/droid.+aft(\w+)( bui|\))/i],[H,[G,yr],[W,X]],[/\(dtv[);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[H,[G,Nr],[W,X]],[/(bravia[\w ]+)( bui|\))/i],[H,[G,Pr],[W,X]],[/(mitv-\w{5}) bui/i],[H,[G,Fr],[W,X]],[/Hbbtv.*(technisat) (.*);/i],[G,H,[W,X]],[/\b(roku)[\dx]*[)/]((?:dvp-)?[\d.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w+ ]*; *(\w[^;]*);([^;]*)/i],[[G,Gr],[H,Gr],[W,X]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[W,X]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[G,H,[W,gr]],[/droid.+; (shield) bui/i],[H,[G,`Nvidia`],[W,gr]],[/(playstation [345portablevi]+)/i],[H,[G,Pr],[W,gr]],[/\b(xbox(?: one)?(?!; xbox))[); ]/i],[H,[G,kr],[W,gr]],[/((pebble))app/i],[G,H,[W,Z]],[/(watch)(?: ?os[,/]|\d,\d\/)[\d.]+/i],[H,[G,br],[W,Z]],[/droid.+; (glass) \d/i],[H,[G,Er],[W,Z]],[/droid.+; (wt63?0{2,3})\)/i],[H,[G,Ir],[W,Z]],[/(quest( \d| pro)?)/i],[H,[G,Lr],[W,Z]],[/(tesla)(?: qtcarbrowser|\/[-\w.]+)/i],[G,[W,_r]],[/(aeobc)\b/i],[H,[G,yr],[W,_r]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i],[H,[W,J]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[H,[W,Y]],[/\b((tablet|tab)[;/]|focus\/\d(?!.+mobile))/i],[[W,Y]],[/(phone|mobile(?:[;/]| [ \w/.]*safari)|pda(?=.+windows ce))/i],[[W,J]],[/(android[-\w. ]{0,9});.+buil/i],[H,[G,`Generic`]]],engine:[[/windows.+ edge\/([\w.]+)/i],[K,[U,`${wr}HTML`]],[/webkit\/537\.36.+chrome\/(?!27)([\w.]+)/i],[K,[U,`Blink`]],[/(presto)\/([\w.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w.]+)/i,/ekioh(flow)\/([\w.]+)/i,/(khtml|tasman|links)[/ ]\(?([\w.]+)/i,/(icab)[/ ]([23]\.[\d.]+)/i,/\b(libweb)/i],[U,K],[/rv:([\w.]{1,9})\b.+(gecko)/i],[K,U]],os:[[/microsoft (windows) (vista|xp)/i],[U,K],[/(windows (?:phone(?: os)?|mobile))[/ ]?([.\w ]*)/i],[U,[K,qr,Yr]],[/windows nt 6\.2; (arm)/i,/windows[/ ]?([ntce\d. ]+\w)(?!.+xbox)/i,/(?:win(?=[39n])|win 9x )([nt\d.]+)/i],[[K,qr,Yr],[U,`Windows`]],[/ip[honead]{2,4}\b(?:.*os (\w+) like mac|; opera)/i,/(?:ios;fbsv\/|iphone.+ios[/ ])([\d.]+)/i,/cfnetwork\/.+darwin/i],[[K,/_/g,`.`],[U,`iOS`]],[/(mac os x) ?([\w. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[U,zr],[K,/_/g,`.`]],[/droid ([\w.]+)\b.+(android[- ]x86|harmonyos)/i],[K,U],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-/ ]?([\w.]*)/i,/(blackberry)\w*\/([\w.]*)/i,/(tizen|kaios)[/ ]([\w.]+)/i,/\((series40);/i],[U,K],[/\(bb(10);/i],[K,[U,Sr]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-/ ]?([\w.]*)/i],[K,[U,`Symbian`]],[/mozilla\/[\d.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w.]+)/i],[K,[U,`${Tr} OS`]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w.]+)/i],[K,[U,`webOS`]],[/watch(?: ?os[,/]|\d,\d\/)([\d.]+)/i],[K,[U,`watchOS`]],[/crkey\/([\d.]+)/i],[K,[U,`${Cr}cast`]],[/(cros) \w+(?:\)| ([\w.]+)\b)/i],[[U,Rr],K],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w.]+)/i,/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w.]*)/i,/(mint)[/() ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-/ ]?(?!chrom|package)([-\w.]*)/i,/(hurd|linux) ?([\w.]*)/i,/(gnu) ?([\w.]*)/i,/\b([-e-hrntopcs]{0,5}bsd|dragonfly)[/ ]?(?!amd|[ix346]{1,2}86)([\w.]*)/i,/(haiku) (\w+)/i],[U,K],[/(sunos) ?([\w.]*)/i],[[U,`Solaris`],K],[/((?:open)?solaris)[-/ ]?([\w.]*)/i,/(aix) ((\d)(?=[.) ])[\w.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\w.]*)/i],[U,K]]};function Zr(e){return typeof e==`object`&&!!e}Object.freeze(Vr([U,K,hr])),Object.freeze(Vr([q])),Object.freeze(Vr([H,G,W,gr,J,X,Y,Z,_r])),Object.freeze(Vr([U,K])),Object.freeze(Vr([U,K]));function Qr(){if(!(typeof window>`u`||!window.navigator))return window.navigator}function $r(e){return e.length>vr?Gr(e,vr):e}function ei(e){if(typeof e==`string`)return{ua:$r(e),isSelfNavigator:!1,navigator:void 0,userAgentData:void 0,regexMap:Xr};let t=Qr(),n=$r(t&&t.userAgent?t.userAgent:pr);return{ua:n,isSelfNavigator:!!(t&&t.userAgent===n),navigator:t,userAgentData:t?.userAgentData,regexMap:Xr}}function ti(e,t){if(!t&&!Zr(e))return ei(e);let n=Qr(),r=Zr(e)?void 0:e,i=Zr(e)?e:t,a=$r(r||(n&&n.userAgent?n.userAgent:pr)),o=n?.userAgentData;return{ua:a,isSelfNavigator:!!(n&&n.userAgent===a),navigator:n,userAgentData:o,regexMap:i?Br(Xr,i):Xr}}function ni(e){let t={name:void 0,version:void 0,major:void 0};return Kr(e.ua,e.regexMap.browser,t),t.major=Wr(t.version),e.isSelfNavigator&&e.navigator?.brave&&typeof e.navigator.brave.isBrave==`function`&&(t.name=`Brave`),t}function ri(e){let t={architecture:void 0};return Kr(e.ua,e.regexMap.cpu,t),t}function ii(e){let t={vendor:void 0,model:void 0,type:void 0};return Kr(e.ua,e.regexMap.device,t),e.isSelfNavigator&&!t.type&&e.userAgentData?.mobile&&(t.type=J),e.isSelfNavigator&&t.model===`Macintosh`&&e.navigator&&e.navigator.standalone!==void 0&&e.navigator.maxTouchPoints&&e.navigator.maxTouchPoints>2&&(t.model=`iPad`,t.type=Y),t}function ai(e){let t={name:void 0,version:void 0};return Kr(e.ua,e.regexMap.engine,t),t}function oi(e){let t={name:void 0,version:void 0};return Kr(e.ua,e.regexMap.os,t),e.isSelfNavigator&&!t.name&&e.userAgentData?.platform&&e.userAgentData.platform!==`Unknown`&&(t.name=e.userAgentData.platform.replace(/chrome os/i,Rr).replace(/macos/i,zr)),t}function si(e,t){let n,r,i,a,o,s,c=()=>n||=ti(e,t);return{get ua(){return c().ua},get browser(){return r||=ni(c()),r},get engine(){return i||=ai(c()),i},get os(){return a||=oi(c()),a},get device(){return o||=ii(c()),o},get cpu(){return s||=ri(c()),s}}}function ci(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function li(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 an(a,/^https/i.test(a)?`wss://`:`ws://`);let o=new URL(a,r);return o.protocol=i,o.href}function ui(e){let{authToken:t,connectionMeta:n,metaBaseUrl:r,events:i,clientRpc:a,rpcOptions:o={},wsOptions:s={},callTimeout:c=0}=e,l=!1,u=`connecting`,d=null,f=ci(),p=li(n.websocket,r??`./`,location);function m(e,t=null){if(t?d=t:e===`connected`&&(d=null),e===u)return;let n=u;u=e,i.emit(`connection:status`,e,n)}let h=new Set;function g(e){for(let t of[...h])t.reject(e)}function _(){return u===`disconnected`||u===`error`?new V(`connection`,`[devframe] Not connected to the devframe server`,{cause:d??void 0}):u===`unauthorized`?new V(`auth`,`[devframe] Not authorized by the devframe server`,{cause:d??void 0}):null}function v(e,t){return new Promise((n,r)=>{let a=!1,o,s={reject(e){a||(l(),i.emit(`rpc:error`,e,t),r(e))}};function l(){a=!0,h.delete(s),o&&clearTimeout(o)}h.add(s),c>0&&(o=setTimeout(()=>{s.reject(new V(`timeout`,`[devframe] RPC call "${t}" timed out after ${c}ms`))},c)),e.then(e=>{a||(l(),n(e))},e=>{if(a)return;l();let n=e instanceof Error?e:Error(String(e));i.emit(`rpc:error`,n,t),r(n)})})}let y=new Map;for(let e of n.jsonSerializableMethods??[])y.set(e,{jsonSerializable:!0});let b=fr({url:p,authToken:t,definitions:y,...s,onConnected(e){s.onConnected?.(e)},onError(e){m(`error`,e),i.emit(`connection:error`,e),g(new V(`connection`,`[devframe] Connection to the devframe server failed`,{cause:e})),s.onError?.(e)},onDisconnected(e){u!==`error`&&m(`disconnected`),g(new V(`connection`,`[devframe] Disconnected from the devframe server`,{cause:d??void 0})),s.onDisconnected?.(e)}}),x=lr(a.functions,{channel:b,rpcOptions:o});a.register({name:`devframe:auth:revoked`,type:`event`,handler:()=>{l=!1;let e=new V(`auth`,`[devframe] The devframe server revoked this client's trust`);m(`unauthorized`,e),i.emit(`connection:error`,e),g(e),i.emit(`rpc:is-trusted:updated`,!1)}});let S=t;function ee(){let e=si(navigator.userAgent);return[e.browser.name,e.browser.version,`|`,e.os.name,e.os.version,e.device.type].filter(e=>e).join(` `)}async function C(e){S=e;let t=await x.$call(`anonymous:devframe:auth`,{authToken:e,ua:ee(),origin:location.origin});if(l=t.isTrusted,l)f.resolve(!0),m(`connected`);else{let e=new V(`auth`,`[devframe] The devframe server refused this client's credentials`);m(`unauthorized`,e),i.emit(`connection:error`,e)}return i.emit(`rpc:is-trusted:updated`,l),t.isTrusted}async function w(e){let t=(await x.$call(`anonymous:devframe:auth:exchange`,{code:e,ua:ee(),origin:location.origin}))?.authToken??null;return t&&(S=t,l=!0,f.resolve(!0),m(`connected`),i.emit(`rpc:is-trusted:updated`,!0)),t}async function T(){return l?!0:C(S??``)}async function E(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{get isTrusted(){return l},get status(){return u},get connectionError(){return d},requestTrust:T,requestTrustWithToken:C,requestTrustWithCode:w,ensureTrusted:E,call:(...e)=>{let t=String(e[0]),n=_();return n?(i.emit(`rpc:error`,n,t),Promise.reject(n)):v(x.$call(...e),t)},callEvent:(...e)=>{let t=_();if(t){i.emit(`rpc:error`,t,String(e[0]));return}return x.$callEvent(...e)},callOptional:(...e)=>{let t=String(e[0]),n=_();return n?(i.emit(`rpc:error`,n,t),Promise.reject(n)):v(x.$callOptional(...e),t)},close:()=>{b.close()}}}function di(e){return e.includes(`:`)}function $(e,t){return di(t)?t:`${e}:${t}`}function fi(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 pi(e,t){return{global:fi(e,t,`global`),project:fi(e,t,`project`)}}function mi(e,t){return{namespace:t,base:e,rpc:{namespace:t,register(n){if(di(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:pi(e,t),scope:e.scope}}async function hi(t={}){let{baseURL:n=`./`,rpcOptions:r={},cacheOptions:i=!1}=t,a=e(),o=Array.isArray(n)?n:[n],s=await Wn(t),{connectionMeta:c,metaBaseUrl:l,authToken:u}=s,d=o[0]??`./`;try{d=new URL(`.`,l).href}catch{}let f=new xn({functions:[],...typeof t.cacheOptions==`object`?t.cacheOptions:{}}),p={rpc:void 0},m=new An(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(en(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=c.backend===`static`?await ar({fetchJsonFromBases:h}):ui({authToken:u,connectionMeta:c,metaBaseUrl:l,events:a,clientRpc:m,callTimeout:t.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)}},wsOptions:t.wsOptions}),_;try{_=new BroadcastChannel(`devframe-auth`)}catch{}let v,y=!1;function b(e){return((...t)=>y||!v?e(...t):v.then(()=>e(...t)))}let x={events:a,get isTrusted(){return g.isTrusted},get status(){return g.status},get connectionError(){return g.connectionError},get connection(){return s},connectionMeta:c,ensureTrusted:g.ensureTrusted,requestTrust:g.requestTrust,requestTrustWithToken:async e=>(Bn(e),s={...s,authToken:e},g.requestTrustWithToken(e)),requestTrustWithCode:async e=>{let t=await g.requestTrustWithCode(e);if(!t)return!1;Bn(t),s={...s,authToken:t};try{_?.postMessage({type:`auth-update`,authToken:t})}catch{}return!0},call:b(g.call),callEvent:b(g.callEvent),callOptional:b(g.callOptional),client:m,sharedState:void 0,streaming:void 0,cacheManager:f,scope:void 0,close:()=>g.close?.()};x.sharedState=Yn(x),x.streaming=cr(x);let S=new Map;x.scope=(e=>{if(!e)return x;let t=S.get(e);return t||(t=mi(x,e),S.set(e,t)),t}),p.rpc=x;function ee(){try{return typeof window<`u`&&window.self===window.top}catch{return!1}}async function C(){if(!(t.simpleAuth===!1||!ee())&&typeof globalThis.prompt==`function`)for(;!x.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 x.requestTrustWithCode(t))return}}async function w(){let e=await g.requestTrust(),n=t.otpParam??`devframe_otp`,r=n?await Jn(x,{param:n}):!1;e||r||x.isTrusted||await C()}return v=w().then(()=>{y=!0},()=>{y=!0}),_&&(_.onmessage=e=>{e.data?.type===`auth-update`&&e.data.authToken&&x.requestTrustWithToken(e.data.authToken)}),x}r(()=>{let e=document.documentElement;e.classList.toggle(`dark`,i.value),e.classList.toggle(`light`,!i.value),e.style.colorScheme=i.value?`dark`:`light`});async function gi(){let e=import.meta.url,r=await hi({baseURL:[`./`,new URL(`./`,e).href],simpleAuth:!1}),{resolveBranding:i,applyPrimaryColor:a,applyDocumentHead:o}=await t(async()=>{let{resolveBranding:e,applyPrimaryColor:t,applyDocumentHead:n}=await import(`./branding-V4rxaera.js`).then(e=>e.n);return{resolveBranding:e,applyPrimaryColor:t,applyDocumentHead:n}},__vite__mapDeps([0,1]),import.meta.url),s=await i({mode:`standalone`,brandingUrl:new URL(`branding.json`,document.baseURI)});o(document,s);let{createDocksContext:c}=await t(async()=>{let{createDocksContext:e}=await import(`./context-Dg5cQHkz.js`);return{createDocksContext:e}},__vite__mapDeps([2,0,1,3,4,5]),import.meta.url),l=await c(`standalone`,r);n(l);let{DockStandalone:u}=await t(async()=>{let{DockStandalone:e}=await import(`./DockStandalone-CFntZMZw.js`);return{DockStandalone:e}},__vite__mapDeps([6,0,1,3,4]),import.meta.url),d=new u({context:l});a(d,s.primaryColor),document.getElementById(`app`).appendChild(d)}gi();