@devframes/plugin-code-server 0.7.2 → 0.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -61,13 +61,13 @@ export default {
61
61
 
62
62
  | Function | Type | Purpose |
63
63
  |----------|------|---------|
64
- | `devframes-plugin-code-server:detect` | query | Re-probe for the binary; returns `{ installed, version, bin }`. |
65
- | `devframes-plugin-code-server:status` | query | Current status + auth cookie when running. |
66
- | `devframes-plugin-code-server:start` | action | Launch and wait for readiness. |
67
- | `devframes-plugin-code-server:stop` | action | Stop the process. |
64
+ | `devframes:plugin:code-server:detect` | query | Re-probe for the binary; returns `{ installed, version, bin }`. |
65
+ | `devframes:plugin:code-server:status` | query | Current status + auth cookie when running. |
66
+ | `devframes:plugin:code-server:start` | action | Launch and wait for readiness. |
67
+ | `devframes:plugin:code-server:stop` | action | Stop the process. |
68
68
 
69
69
  Status (minus the auth cookie) is mirrored into the
70
- `devframes-plugin-code-server:state` shared state for reactive UIs.
70
+ `devframes:plugin:code-server:state` shared state for reactive UIs.
71
71
 
72
72
  ## UI
73
73
 
package/dist/cli.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { n as createCodeServerDevframe } from "./src-B0FD4Wfy.mjs";
1
+ import { n as createCodeServerDevframe } from "./src-8iDqPfSS.mjs";
2
2
  import { createCac } from "devframe/adapters/cac";
3
3
  //#region src/cli.ts
4
4
  /**
@@ -1,5 +1,5 @@
1
1
  import { CodeServerAuth, CodeServerDetection, CodeServerServerInfo, CodeServerSharedState, CodeServerStatus } from "../types.mjs";
2
- import { o as STATE_KEY } from "../constants-ICLvdiRe.mjs";
2
+ import { o as STATE_KEY } from "../constants-DZKOXnxd.mjs";
3
3
  import { DevframeRpcClient } from "devframe/client";
4
4
  //#region src/client/view.d.ts
5
5
  /** The data the view renders from. Pure — no RPC, no process knowledge. */
@@ -7,7 +7,7 @@ import { createIframePanes } from "iframe-pane";
7
7
  * is returned only from the `start` / `status` RPCs to the already-authorized
8
8
  * client (see {@link CodeServerAuth}).
9
9
  */
10
- const STATE_KEY = "devframes-plugin-code-server:state";
10
+ const STATE_KEY = "devframes:plugin:code-server:state";
11
11
  //#endregion
12
12
  //#region src/client/design.ts
13
13
  function cx(...parts) {
@@ -382,7 +382,7 @@ async function mountCodeServer(container, options = {}) {
382
382
  if (busy) return;
383
383
  busy = true;
384
384
  sync();
385
- const result = await call("devframes-plugin-code-server:start", {});
385
+ const result = await call("devframes:plugin:code-server:start", {});
386
386
  if (result) applyResult(result);
387
387
  busy = false;
388
388
  sync();
@@ -391,7 +391,7 @@ async function mountCodeServer(container, options = {}) {
391
391
  if (busy) return;
392
392
  busy = true;
393
393
  sync();
394
- const result = await call("devframes-plugin-code-server:stop");
394
+ const result = await call("devframes:plugin:code-server:stop");
395
395
  if (result) applyResult(result);
396
396
  auth = void 0;
397
397
  busy = false;
@@ -401,12 +401,12 @@ async function mountCodeServer(container, options = {}) {
401
401
  if (busy) return;
402
402
  busy = true;
403
403
  sync();
404
- await call("devframes-plugin-code-server:detect");
404
+ await call("devframes:plugin:code-server:detect");
405
405
  busy = false;
406
406
  sync();
407
407
  }
408
408
  sync();
409
- const initial = await call("devframes-plugin-code-server:status");
409
+ const initial = await call("devframes:plugin:code-server:status");
410
410
  if (initial) applyResult(initial);
411
411
  sync();
412
412
  const state = await rpc.sharedState.get(STATE_KEY, { initialValue: {
@@ -420,7 +420,7 @@ async function mountCodeServer(container, options = {}) {
420
420
  detection = full.detection ?? detection;
421
421
  server = full.server ?? server;
422
422
  if (server.status === "running" && !auth) {
423
- call("devframes-plugin-code-server:status").then((result) => {
423
+ call("devframes:plugin:code-server:status").then((result) => {
424
424
  if (result?.auth) auth = result.auth;
425
425
  sync();
426
426
  });
@@ -1,13 +1,13 @@
1
1
  //#region src/constants.d.ts
2
2
  /** Stable devframe id for the code-server plugin. */
3
- declare const PLUGIN_ID = "devframes-plugin-code-server";
3
+ declare const PLUGIN_ID = "devframes_plugin_code-server";
4
4
  /**
5
5
  * Shared-state key holding the serializable, secret-free server status and
6
6
  * detection result. The authentication cookie is never published here — it
7
7
  * is returned only from the `start` / `status` RPCs to the already-authorized
8
8
  * client (see {@link CodeServerAuth}).
9
9
  */
10
- declare const STATE_KEY = "devframes-plugin-code-server:state";
10
+ declare const STATE_KEY = "devframes:plugin:code-server:state";
11
11
  /** Default dev-server port for the plugin's own launcher SPA (standalone CLI). */
12
12
  declare const DEFAULT_PORT = 9013;
13
13
  /** Preferred port for the spawned code-server process (falls back if taken). */
@@ -1,2 +1,2 @@
1
- import { a as SESSION_COOKIE_BASE, c as TERMINAL_SESSION_TITLE, i as PLUGIN_ID, l as getCookieSessionName, n as DEFAULT_PORT, o as STATE_KEY, r as DEFAULT_START_TIMEOUT, s as TERMINAL_SESSION_ICON, t as DEFAULT_CODE_SERVER_PORT } from "./constants-ICLvdiRe.mjs";
1
+ import { a as SESSION_COOKIE_BASE, c as TERMINAL_SESSION_TITLE, i as PLUGIN_ID, l as getCookieSessionName, n as DEFAULT_PORT, o as STATE_KEY, r as DEFAULT_START_TIMEOUT, s as TERMINAL_SESSION_ICON, t as DEFAULT_CODE_SERVER_PORT } from "./constants-DZKOXnxd.mjs";
2
2
  export { DEFAULT_CODE_SERVER_PORT, DEFAULT_PORT, DEFAULT_START_TIMEOUT, PLUGIN_ID, SESSION_COOKIE_BASE, STATE_KEY, TERMINAL_SESSION_ICON, TERMINAL_SESSION_TITLE, getCookieSessionName };
@@ -1,13 +1,13 @@
1
1
  //#region src/constants.ts
2
2
  /** Stable devframe id for the code-server plugin. */
3
- const PLUGIN_ID = "devframes-plugin-code-server";
3
+ const PLUGIN_ID = "devframes_plugin_code-server";
4
4
  /**
5
5
  * Shared-state key holding the serializable, secret-free server status and
6
6
  * detection result. The authentication cookie is never published here — it
7
7
  * is returned only from the `start` / `status` RPCs to the already-authorized
8
8
  * client (see {@link CodeServerAuth}).
9
9
  */
10
- const STATE_KEY = "devframes-plugin-code-server:state";
10
+ const STATE_KEY = "devframes:plugin:code-server:state";
11
11
  /** Default dev-server port for the plugin's own launcher SPA (standalone CLI). */
12
12
  const DEFAULT_PORT = 9013;
13
13
  /** Preferred port for the spawned code-server process (falls back if taken). */
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { CodeServerAuth, CodeServerDetection, CodeServerOptions, CodeServerServerInfo, CodeServerSharedState, CodeServerStartRequest, CodeServerStartResult, CodeServerStatus, CodeServerStatusResult } from "./types.mjs";
2
- import { i as PLUGIN_ID, l as getCookieSessionName, n as DEFAULT_PORT, o as STATE_KEY, t as DEFAULT_CODE_SERVER_PORT } from "./constants-ICLvdiRe.mjs";
2
+ import { i as PLUGIN_ID, l as getCookieSessionName, n as DEFAULT_PORT, o as STATE_KEY, t as DEFAULT_CODE_SERVER_PORT } from "./constants-DZKOXnxd.mjs";
3
3
  import { DevframeDefinition } from "devframe/types";
4
4
  //#region src/index.d.ts
5
5
  /**
package/dist/index.mjs CHANGED
@@ -1,3 +1,3 @@
1
- import { n as createCodeServerDevframe, t as codeServer } from "./src-B0FD4Wfy.mjs";
1
+ import { n as createCodeServerDevframe, t as codeServer } from "./src-8iDqPfSS.mjs";
2
2
  import { DEFAULT_CODE_SERVER_PORT, DEFAULT_PORT, PLUGIN_ID, STATE_KEY, getCookieSessionName } from "./constants.mjs";
3
3
  export { DEFAULT_CODE_SERVER_PORT, DEFAULT_PORT, PLUGIN_ID, STATE_KEY, createCodeServerDevframe, codeServer as default, getCookieSessionName };
@@ -1,5 +1,5 @@
1
1
  import { DEFAULT_CODE_SERVER_PORT, PLUGIN_ID, STATE_KEY, TERMINAL_SESSION_ICON, TERMINAL_SESSION_TITLE, getCookieSessionName } from "../constants.mjs";
2
- import { i as diagnostics, n as getCodeServerSupervisor, r as setCodeServerSupervisor, t as serverFunctions } from "../rpc-njPEEDSx.mjs";
2
+ import { i as diagnostics, n as getCodeServerSupervisor, r as setCodeServerSupervisor, t as serverFunctions } from "../rpc-DjerPudu.mjs";
3
3
  import { execSync, spawn } from "node:child_process";
4
4
  import { createHash, randomBytes } from "node:crypto";
5
5
  import { request } from "node:http";
@@ -3,7 +3,7 @@ import "../index.mjs";
3
3
  import { RpcDefinitionsToFunctions } from "devframe/rpc";
4
4
  //#region src/rpc/index.d.ts
5
5
  declare const serverFunctions: readonly [{
6
- name: "devframes-plugin-code-server:detect";
6
+ name: "devframes:plugin:code-server:detect";
7
7
  type?: "query" | undefined;
8
8
  cacheable?: boolean;
9
9
  args?: undefined;
@@ -17,7 +17,7 @@ declare const serverFunctions: readonly [{
17
17
  __cache?: WeakMap<object, import("devframe/rpc").Thenable<import("devframe/rpc").RpcFunctionSetupResult<[], Promise<CodeServerDetection>>>> | undefined;
18
18
  __promise?: import("devframe/rpc").Thenable<import("devframe/rpc").RpcFunctionSetupResult<[], Promise<CodeServerDetection>>> | undefined;
19
19
  }, {
20
- name: "devframes-plugin-code-server:status";
20
+ name: "devframes:plugin:code-server:status";
21
21
  type?: "query" | undefined;
22
22
  cacheable?: boolean;
23
23
  args?: undefined;
@@ -31,7 +31,7 @@ declare const serverFunctions: readonly [{
31
31
  __cache?: WeakMap<object, import("devframe/rpc").Thenable<import("devframe/rpc").RpcFunctionSetupResult<[], CodeServerStatusResult>>> | undefined;
32
32
  __promise?: import("devframe/rpc").Thenable<import("devframe/rpc").RpcFunctionSetupResult<[], CodeServerStatusResult>> | undefined;
33
33
  }, {
34
- name: "devframes-plugin-code-server:start";
34
+ name: "devframes:plugin:code-server:start";
35
35
  type?: "action" | undefined;
36
36
  cacheable?: boolean;
37
37
  args?: undefined;
@@ -45,7 +45,7 @@ declare const serverFunctions: readonly [{
45
45
  __cache?: WeakMap<object, import("devframe/rpc").Thenable<import("devframe/rpc").RpcFunctionSetupResult<[req?: CodeServerStartRequest | undefined], Promise<CodeServerStatusResult>>>> | undefined;
46
46
  __promise?: import("devframe/rpc").Thenable<import("devframe/rpc").RpcFunctionSetupResult<[req?: CodeServerStartRequest | undefined], Promise<CodeServerStatusResult>>> | undefined;
47
47
  }, {
48
- name: "devframes-plugin-code-server:stop";
48
+ name: "devframes:plugin:code-server:stop";
49
49
  type?: "action" | undefined;
50
50
  cacheable?: boolean;
51
51
  args?: undefined;
@@ -62,7 +62,7 @@ declare const serverFunctions: readonly [{
62
62
  declare module 'devframe' {
63
63
  interface DevframeRpcServerFunctions extends RpcDefinitionsToFunctions<typeof serverFunctions> {}
64
64
  interface DevframeRpcSharedStates {
65
- 'devframes-plugin-code-server:state': CodeServerSharedState;
65
+ 'devframes:plugin:code-server:state': CodeServerSharedState;
66
66
  }
67
67
  }
68
68
  //#endregion
@@ -1,2 +1,2 @@
1
- import { t as serverFunctions } from "../rpc-njPEEDSx.mjs";
1
+ import { t as serverFunctions } from "../rpc-DjerPudu.mjs";
2
2
  export { serverFunctions };
@@ -49,7 +49,7 @@ function getCodeServerSupervisor(ctx) {
49
49
  //#endregion
50
50
  //#region src/rpc/functions/detect.ts
51
51
  const detect = defineRpcFunction({
52
- name: "devframes-plugin-code-server:detect",
52
+ name: "devframes:plugin:code-server:detect",
53
53
  type: "query",
54
54
  jsonSerializable: true,
55
55
  agent: {
@@ -61,7 +61,7 @@ const detect = defineRpcFunction({
61
61
  //#endregion
62
62
  //#region src/rpc/functions/start.ts
63
63
  const start = defineRpcFunction({
64
- name: "devframes-plugin-code-server:start",
64
+ name: "devframes:plugin:code-server:start",
65
65
  type: "action",
66
66
  jsonSerializable: true,
67
67
  agent: {
@@ -75,14 +75,14 @@ const start = defineRpcFunction({
75
75
  const serverFunctions = [
76
76
  detect,
77
77
  defineRpcFunction({
78
- name: "devframes-plugin-code-server:status",
78
+ name: "devframes:plugin:code-server:status",
79
79
  type: "query",
80
80
  jsonSerializable: true,
81
81
  setup: (ctx) => ({ handler: () => getCodeServerSupervisor(ctx).status() })
82
82
  }),
83
83
  start,
84
84
  defineRpcFunction({
85
- name: "devframes-plugin-code-server:stop",
85
+ name: "devframes:plugin:code-server:stop",
86
86
  type: "action",
87
87
  jsonSerializable: true,
88
88
  agent: {
@@ -1,2 +1,2 @@
1
1
  (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),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var e=`__connection.json`,t=`__rpc-dump/index.json`,n=`devframe_otp`,r=`devframe_auth_token`;function i(e){return typeof e==`string`?`'${e}'`:new a().serialize(e)}var a=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}(),o=[1779033703,-1150833019,1013904242,-1521486534,1359893119,-1694144372,528734635,1541459225],s=[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],c=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`,l=[],u=class{_data=new d;_hash=new d([...o]);_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],c=n[4],u=n[5],d=n[6],f=n[7];for(let n=0;n<64;n++){if(n<16)l[n]=e[t+n]|0;else{let e=l[n-15],t=(e<<25|e>>>7)^(e<<14|e>>>18)^e>>>3,r=l[n-2],i=(r<<15|r>>>17)^(r<<13|r>>>19)^r>>>10;l[n]=t+l[n-7]+i+l[n-16]}let p=c&u^~c&d,m=r&i^r&a^i&a,h=(r<<30|r>>>2)^(r<<19|r>>>13)^(r<<10|r>>>22),g=(c<<26|c>>>6)^(c<<21|c>>>11)^(c<<7|c>>>25),_=f+g+p+s[n]+l[n],v=h+m;f=d,d=u,u=c,c=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]+c|0,n[5]=n[5]+u|0,n[6]=n[6]+d|0,n[7]=n[7]+f|0}_append(e){typeof e==`string`&&(e=d.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 d(t,i)}},d=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(c.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 f(e){return new u().finalize(e).toBase64()}function p(e){return f(i(e))}function m(e){return p(e)}function h(e,...t){return typeof e==`function`?e(...t):e}var g=Error.captureStackTrace,_=class e extends Error{name=`Diagnostic`;docs;fix;sources;get why(){return this.message}constructor(t,n=e){super(t.why,{cause:t.cause}),this.fix=t.fix,this.docs=t.docs,this.sources=t.sources,g?.(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 v(e,t){return typeof e==`string`?`${e}/${t.toLowerCase()}`:e?.(t)}function y(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||v(r,i),s=(e={},n={})=>{let r=new _({why:h(a.why,e),fix:h(a.fix,e),docs:o,cause:e.cause,sources:e.sources},s);r.name=i;for(let e of t)e(r,n);return r};n[i]=s}return n}function b(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 x={blue:b(34,39),cyan:b(36,39),gray:b(90,39),green:b(32,39),red:b(31,39),yellow:b(33,39),bold:b(1,22),dim:b(2,22),reset:b(0,0),underline:b(4,24)};function ee(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(`
2
- `)}}var te=ee(x);function ne(e,{method:t=`warn`}={}){console[t](te(e))}var S=y({docsBase:`https://devfra.me/errors`,reporters:[ne],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`."}}});function re(e){let t=e.cause instanceof Error?e.cause:ie(e.cause)?re(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 ie(e){return typeof e==`object`&&!!e&&typeof e.message==`string`&&typeof e.name==`string`}async function ae(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 oe(e,t){if(e.handler)return e.handler;let n=await ae(e,t);if(!n.handler)throw S.DF0024({name:e.name});return n.handler}var se=class{cacheMap=new Map;options;keySerializer;constructor(e){this.options=e,this.keySerializer=e.keySerializer||(e=>m(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()}},ce=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 oe(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 S.DF0021({name:e.name});le(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 S.DF0022({name:e.name});le(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 oe(this.definitions.get(e),this.context)}getSchema(e){let t=this.definitions.get(e);if(!t)throw S.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 le(e){if(e.agent&&e.jsonSerializable!==!0)throw S.DF0019({name:e.name})}function ue(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 C(t,`undefined`,r,e);return n}if(i===null)return n;if(typeof i==`bigint`)throw C(t,`BigInt`,r,e);if(typeof i==`object`){if(i instanceof Map)throw C(t,`Map`,r,e);if(i instanceof Set)throw C(t,`Set`,r,e);if(i instanceof Date)throw C(t,`Date`,r,e);if(Array.isArray(i))return n;let a=Object.getPrototypeOf(i);if(a!==null&&a!==Object.prototype)throw C(t,i.constructor?.name??`class instance`,r,e)}return n})}function C(e,t,n,r){let i=de(n,r);return S.DF0020({name:e||`<anonymous>`,type:t,path:i})}function de(e,t){return Array.isArray(e)?`[${t}]`:t===``?`<root>`:t}function fe(){let e={};function t(t,...n){let r=e[t]||[];for(let e=0,t=r.length;e<t;e++){let t=r[e];t&&t(...n)}}function n(n,...r){t(n,...r),delete e[n]}function r(t,n){return(e[t]||=[]).push(n),()=>{e[t]=e[t]?.filter(e=>n!==e)}}function i(e,t){let n=r(e,((...e)=>(n(),t(...e))));return n}return{_listeners:e,emit:t,emitOnce:n,on:r,once:i}}String.fromCharCode;var pe=/^[\s\w\0+.-]{2,}:([/\\]{1,2})/,me=/^[\s\w\0+.-]{2,}:([/\\]{2})?/,he=/^([/\\]\s*){2,}[^/\\]/,ge=/\/$|\/\?|\/#/,_e=/^\.?\//;function ve(e,t={}){return typeof t==`boolean`&&(t={acceptRelative:t}),t.strict?pe.test(e):me.test(e)||(t.acceptRelative?he.test(e):!1)}function ye(e=``,t){return t?ge.test(e):e.endsWith(`/`)}function be(e=``,t){if(!t)return(ye(e)?e.slice(0,-1):e)||`/`;if(!ye(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 xe(e=``,t){if(!t)return e.endsWith(`/`)?e:e+`/`;if(ye(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 Se(e,t){if(Ce(t)||ve(e))return e;let n=be(t);if(e.startsWith(n)){let t=e[n.length];if(!t||t===`/`||t===`?`)return e}return Te(n,e)}function Ce(e){return!e||e===`/`}function we(e){return e&&e!==`/`}function Te(e,...t){let n=e||``;for(let e of t.filter(e=>we(e)))if(n){let t=e.replace(_e,``);n=xe(n)+t}else n=e;return n}function Ee(e,t){let n=e.match(me);return n||=e.match(/^\/{2,}/),n?t+e.slice(n[0].length):t+e}function De(e=n){try{return new URLSearchParams(globalThis.location?.search).get(e)||void 0}catch{return}}function Oe(e){try{let t=new URL(globalThis.location.href);if(!t.searchParams.has(e))return;t.searchParams.delete(e),globalThis.history?.replaceState(globalThis.history.state,``,t.href)}catch{}}function ke(e=n){let t=De(e);return t&&Oe(e),t}async function Ae(e,t={}){let n=ke(t.param??`devframe_otp`);return n?e.isTrusted?!0:e.requestTrustWithCode(n):!1}var je=Symbol.for(`immer-nothing`),Me=Symbol.for(`immer-draftable`),w=Symbol.for(`immer-state`);function T(e,...t){throw Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var E=Object,D=E.getPrototypeOf,Ne=`constructor`,Pe=`prototype`,Fe=`configurable`,Ie=`enumerable`,Le=`writable`,Re=`value`,O=e=>!!e&&!!e[w];function k(e){return e?Ve(e)||Ge(e)||!!e[Me]||!!e[Ne]?.[Me]||Ke(e)||qe(e):!1}var ze=E[Pe][Ne].toString(),Be=new WeakMap;function Ve(e){if(!e||!N(e))return!1;let t=D(e);if(t===null||t===E[Pe])return!0;let n=E.hasOwnProperty.call(t,Ne)&&t[Ne];if(n===Object)return!0;if(!P(n))return!1;let r=Be.get(n);return r===void 0&&(r=Function.toString.call(n),Be.set(n,r)),r===ze}function He(e,t,n=!0){A(e)===0?(n?Reflect.ownKeys(e):E.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function A(e){let t=e[w];return t?t.type_:Ge(e)?1:Ke(e)?2:qe(e)?3:0}var j=(e,t,n=A(e))=>n===2?e.has(t):E[Pe].hasOwnProperty.call(e,t),M=(e,t,n=A(e))=>n===2?e.get(t):e[t],Ue=(e,t,n,r=A(e))=>{r===2?e.set(t,n):r===3?e.add(n):e[t]=n};function We(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}var Ge=Array.isArray,Ke=e=>e instanceof Map,qe=e=>e instanceof Set,N=e=>typeof e==`object`,P=e=>typeof e==`function`,Je=e=>typeof e==`boolean`;function Ye(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var Xe=e=>N(e)?e?.[w]:null,F=e=>e.copy_||e.base_,Ze=e=>e.modified_?e.copy_:e.base_;function Qe(e,t){if(Ke(e))return new Map(e);if(qe(e))return new Set(e);if(Ge(e))return Array[Pe].slice.call(e);let n=Ve(e);if(t===!0||t===`class_only`&&!n){let t=E.getOwnPropertyDescriptors(e);delete t[w];let n=Reflect.ownKeys(t);for(let r=0;r<n.length;r++){let i=n[r],a=t[i];a[Le]===!1&&(a[Le]=!0,a[Fe]=!0),(a.get||a.set)&&(t[i]={[Fe]:!0,[Le]:!0,[Ie]:a[Ie],[Re]:e[i]})}return E.create(D(e),t)}else{let t=D(e);if(t!==null&&n)return{...e};let r=E.create(t);return E.assign(r,e)}}function $e(e,t=!1){return nt(e)||O(e)||!k(e)?e:(A(e)>1&&E.defineProperties(e,{set:tt,add:tt,clear:tt,delete:tt}),E.freeze(e),t&&He(e,(e,t)=>{$e(t,!0)},!1),e)}function et(){T(2)}var tt={[Re]:et};function nt(e){return e===null||!N(e)?!0:E.isFrozen(e)}var rt=`MapSet`,it=`Patches`,at=`ArrayMethods`,ot={};function I(e){let t=ot[e];return t||T(0,e),t}var st=e=>!!ot[e];function ct(e,t){ot[e]||(ot[e]=t)}var lt,ut=()=>lt,dt=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:st(rt)?I(rt):void 0,arrayMethodsPlugin_:st(at)?I(at):void 0});function ft(e,t){t&&(e.patchPlugin_=I(it),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function pt(e){mt(e),e.drafts_.forEach(gt),e.drafts_=null}function mt(e){e===lt&&(lt=e.parent_)}var ht=e=>lt=dt(lt,e);function gt(e){let t=e[w];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function _t(e,t){t.unfinalizedDrafts_=t.drafts_.length;let n=t.drafts_[0];if(e!==void 0&&e!==n){n[w].modified_&&(pt(t),T(4)),k(e)&&(e=vt(t,e));let{patchPlugin_:r}=t;r&&r.generateReplacementPatches_(n[w].base_,e,t)}else e=vt(t,n);return yt(t,e,!0),pt(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e===je?void 0:e}function vt(e,t){if(nt(t))return t;let n=t[w];if(!n)return Dt(t,e.handledSet_,e);if(!xt(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);Tt(n,e)}return n.copy_}function yt(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&$e(t,n)}function bt(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var xt=(e,t)=>e.scope_===t,St=[];function Ct(e,t,n,r){let i=F(e),a=e.type_;if(r!==void 0&&M(i,r,a)===t){Ue(i,r,n,a);return}if(!e.draftLocations_){let t=e.draftLocations_=new Map;He(i,(e,n)=>{if(O(n)){let r=t.get(n)||[];r.push(e),t.set(n,r)}})}let o=e.draftLocations_.get(t)??St;for(let e of o)Ue(i,e,n,a)}function wt(e,t,n){e.callbacks_.push(function(r){let i=t;if(!i||!xt(i,r))return;r.mapSetPlugin_?.fixSetContents(i);let a=Ze(i);Ct(e,i.draft_??i,a,n),Tt(i,r)})}function Tt(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)}bt(e)}}function Et(e,t,n){let{scope_:r}=e;if(O(n)){let i=n[w];xt(i,r)&&i.callbacks_.push(function(){Ft(e),Ct(e,n,Ze(i),t)})}else k(n)&&e.callbacks_.push(function(){let i=F(e);e.type_===3?i.has(n)&&Dt(n,r.handledSet_,r):M(i,t,e.type_)===n&&r.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&Dt(M(e.copy_,t,e.type_),r.handledSet_,r)})}function Dt(e,t,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||O(e)||t.has(e)||!k(e)||nt(e)?e:(t.add(e),He(e,(r,i)=>{if(O(i)){let t=i[w];xt(t,n)&&(Ue(e,r,Ze(t),e.type_),bt(t))}else k(i)&&Dt(i,t,n)}),e)}function Ot(e,t){let n=Ge(e),r={type_:+!!n,scope_:t?t.scope_:ut(),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=kt;n&&(i=[r],a=At);let{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,[s,r]}var kt={get(e,t){if(t===w)return e;if(t===`constructor`||t===`__proto__`){let n=F(e)[t];return new Proxy(n||{},{get:(e,t)=>t===`__proto__`||t===`prototype`?Object.freeze(Object.create(null)):Reflect.get(e,t),set:()=>!0,apply:(e,t,n)=>Reflect.apply(e,t,n)})}let n=e.scope_.arrayMethodsPlugin_,r=e.type_===1&&typeof t==`string`;if(r&&n?.isArrayOperationMethod(t))return n.createMethodInterceptor(e,t);let i=F(e);if(!j(i,t,e.type_))return Mt(e,i,t);let a=i[t];if(e.finalized_||!k(a)||r&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&Ye(t))return a;if(a===jt(e.base_,t)){Ft(e);let n=e.type_===1?+t:t,r=Lt(e.scope_,a,e,n);return e.copy_[n]=r}return a},has(e,t){return t===`constructor`||t===`__proto__`||t===`prototype`?!1:t in F(e)},ownKeys(e){return Reflect.ownKeys(F(e))},set(e,t,n){if(t===`constructor`||t===`__proto__`||t===`prototype`)return!0;let r=Nt(F(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){let r=jt(F(e),t),i=r?.[w];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_.set(t,!1),!0;if(We(n,r)&&(n!==void 0||j(e.base_,t,e.type_)))return!0;Ft(e),Pt(e)}return e.copy_[t]===n&&(n!==void 0||j(e.copy_,t,e.type_))||Number.isNaN(n)&&Number.isNaN(e.copy_[t])?!0:(e.copy_[t]=n,e.assigned_.set(t,!0),Et(e,t,n),!0)},deleteProperty(e,t){return Ft(e),jt(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),Pt(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let n=F(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{[Le]:!0,[Fe]:e.type_!==1||t!==`length`,[Ie]:r[Ie],[Re]:n[t]}},defineProperty(){T(11)},getPrototypeOf(e){return D(e.base_)},setPrototypeOf(){T(12)}},At={};for(let e in kt){let t=kt[e];At[e]=function(){let e=arguments;return e[0]=e[0][0],t.apply(this,e)}}At.deleteProperty=function(e,t){return At.set.call(this,e,t,void 0)},At.set=function(e,t,n){return kt.set.call(this,e[0],t,n,e[0])};function jt(e,t){let n=e[w];return(n?F(n):e)[t]}function Mt(e,t,n){let r=Nt(t,n);return r?Re in r?r[Re]:r.get?.call(e.draft_):void 0}function Nt(e,t){if(!(t in e))return;let n=D(e);for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=D(n)}}function Pt(e){e.modified_||(e.modified_=!0,e.parent_&&Pt(e.parent_))}function Ft(e){e.copy_||=(e.assigned_=new Map,Qe(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var It=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(e,t,n)=>{if(P(e)&&!P(t)){let n=t;t=e;let r=this;return function(e=n,...i){return r.produce(e,e=>t.call(this,e,...i))}}P(t)||T(6),n!==void 0&&!P(n)&&T(7);let r;if(k(e)){let i=ht(this),a=Lt(i,e,void 0),o=!0;try{r=t(a),o=!1}finally{o?pt(i):mt(i)}return ft(i,n),_t(r,i)}else if(!e||!N(e)){if(r=t(e),r===void 0&&(r=e),r===je&&(r=void 0),this.autoFreeze_&&$e(r,!0),n){let t=[],i=[];I(it).generateReplacementPatches_(e,r,{patches_:t,inversePatches_:i}),n(t,i)}return r}else T(1,e)},this.produceWithPatches=(e,t)=>{if(P(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]},Je(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),Je(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),Je(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){k(e)||T(8),O(e)&&(e=Rt(e));let t=ht(this),n=Lt(t,e,void 0);return n[w].isManual_=!0,mt(t),n}finishDraft(e,t){let n=e&&e[w];(!n||!n.isManual_)&&T(9);let{scope_:r}=n;return ft(r,t),_t(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=I(it).applyPatches_;return O(e)?r(e,t):this.produce(e,e=>r(e,t))}};function Lt(e,t,n,r){let[i,a]=Ke(t)?I(rt).proxyMap_(t,n):qe(t)?I(rt).proxySet_(t,n):Ot(t,n);return(n?.scope_??ut()).drafts_.push(i),a.callbacks_=n?.callbacks_??[],a.key_=r,n&&r!==void 0?wt(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 Rt(e){return O(e)||T(10,e),zt(e)}function zt(e){if(!k(e)||nt(e))return e;let t=e[w],n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=Qe(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=Qe(e,!0);return He(n,(e,t)=>{Ue(n,e,zt(t))},r),t&&(t.finalized_=!1),n}function Bt(){function e(n,r=[]){if(n.key_!==void 0){let e=n.parent_.copy_??n.parent_.base_,t=Xe(M(e,n.key_)),i=M(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||j(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=M(n,r),!N(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?.[w];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;He(e.assigned_,(e,l)=>{let u=M(o,e,c),f=M(s,e,c),p=l?j(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===je?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=A(o),n=i[e];typeof n!=`string`&&typeof n!=`number`&&(n=``+n),(t===0||t===1)&&(n===`__proto__`||n===Ne)&&T(19),P(o)&&n===Pe&&T(19),o=M(o,n),N(o)||T(18,i.join(`/`))}let s=A(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:T(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:T(17,a)}}),e}function u(e){if(!k(e))return e;if(Ge(e))return e.map(u);if(Ke(e))return new Map(Array.from(e.entries()).map(([e,t])=>[e,u(t)]));if(qe(e))return new Set(Array.from(e).map(u));let t=Object.create(D(e));for(let n in e)t[n]=u(e[n]);return j(e,Me)&&(t[Me]=e[Me]),t}function d(e){return O(e)?u(e):e}ct(it,{applyPatches_:l,generatePatches_:i,generateReplacementPatches_:c,getPath:e})}var Vt=new It,Ht=Vt.produce,Ut=Vt.produceWithPatches.bind(Vt),Wt=Vt.applyPatches.bind(Vt),Gt=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`;function Kt(e=21){let t=``,n=e;for(;n--;)t+=Gt[Math.random()*64|0];return t}var qt=1e3;function Jt(e,t){if(e.add(t),e.size>qt){let t=e.values().next().value;t!==void 0&&e.delete(t)}}function Yt(e){let{enablePatches:t=!1}=e,n=fe(),r=e.initialValue,i=new Set;return{on:n.on,value:()=>r,patch:(e,t=Kt())=>{i.has(t)||(Bt(),r=Wt(r,e),Jt(i,t),n.emit(`updated`,r,void 0,t))},mutate:(e,a=Kt())=>{if(!i.has(a))if(Jt(i,a),t){let[t,i]=Ut(r,e);r=t,n.emit(`updated`,r,i,a)}else r=Ht(r,e),n.emit(`updated`,r,void 0,a)},syncIds:i}}function Xt(e){let t=new Map,n=new Map,r=new Set,i=e.connectionMeta.backend===`static`;function a(e,t){let r=n.get(e);return r&&typeof r==`object`&&!Array.isArray(r)&&typeof t==`object`&&!Array.isArray(t)?{...r,...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(()=>a(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 o(t,n){let r=[];return r.push(n.on(`updated`,(n,r,a)=>{i||(r?e.callEvent(`devframe:rpc:server-state:patch`,t,r,a):e.callEvent(`devframe:rpc:server-state:set`,t,n,a))})),()=>{for(let e of r)e()}}return{keys:()=>Array.from(t.keys()),onKeyAdded(e){return r.add(e),()=>{r.delete(e)}},get:async(s,c)=>{if(c?.initialValue!==void 0&&n.set(s,c.initialValue),t.has(s))return t.get(s);let l=Yt({initialValue:c?.initialValue,enablePatches:!1});async function u(){if(i||e.callEvent(`devframe:rpc:server-state:subscribe`,s),c?.initialValue!==void 0){t.set(s,l);for(let e of r)e(s);return e.call(`devframe:rpc:server-state:get`,s).then(e=>{e!==void 0&&l.mutate(()=>a(s,e))}).catch(e=>{console.error(`Error getting server state`,e)}),o(s,l),l}else{let n=await e.call(`devframe:rpc:server-state:get`,s);l.mutate(()=>a(s,n)),t.set(s,l);for(let e of r)e(s);return o(s,l),l}}return new Promise(t=>{if(e.isTrusted)u().then(t);else{t(l);let n=!1;e.events.on(`rpc:is-trusted:updated`,e=>{e&&!n&&(n=!0,u())})}})}}}var Zt=typeof self==`object`?self:globalThis;function Qt(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;return n(new Zt[e](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)}}return n(new Zt[a](o),i)};return r}function $t(e){return Qt(new Map,e)(0)}var L=``,{toString:en}={},{keys:tn}=Object;function nn(e){let t=typeof e;if(t!==`object`||!e)return[0,t];let n=en.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 rn([e,t]){return e===0&&(t===`function`||t===`symbol`)}function an(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]=nn(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 tn(r))(e||!rn(nn(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||!(rn(nn(n))||rn(nn(i))))&&t.push([a(n),a(i)]);return n}case 6:{let t=[],n=i([o,t],r);for(let n of r)(e||!rn(nn(n)))&&t.push(a(n));return n}}let{message:c}=r;return i([o,{name:s,message:c}],r)};return a}function on(e,t={}){let n=[];return an(!(t.json||t.lossy),!!t.json,new Map,n)(e),n}var{parse:sn,stringify:cn}=JSON,ln={json:!0,lossy:!0};function un(e){return $t(sn(e))}function dn(e){return cn(on(e,ln))}function fn(e){return $t(e)}function pn(e){return dn(e)}function mn(e){return un(e)}function hn(e){return typeof e==`object`&&!!e&&e.type===`static`&&typeof e.path==`string`}function gn(e){return typeof e==`object`&&!!e&&e.type===`query`&&typeof e.records==`object`&&e.records!==null}function _n(e){return typeof e==`object`&&!!e&&(`output`in e||`error`in e)}function vn(e){if(e.error)throw re(e.error);return e.output}function yn(e){return e.some(e=>e!=null)}function bn(e){return typeof e==`object`&&e&&`serialization`in e&&`data`in e?e.data:e}function xn(e,t){let n=new Map,r=new Map;function i(e,t){return t===`structured-clone`&&Array.isArray(e)?fn(e):e}function a(e,t){return i(bn(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 _n(r)?vn(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(hn(r)){if(yn(n))throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`);return await o(r)}if(gn(r)){let e=m(n),i=r.records[e];if(i)return vn(await s(i,r.serialization));if(r.fallback)return vn(await s(r.fallback,r.serialization));throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`)}if(!yn(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 Sn(e){let n=xn(await e.fetchJsonFromBases(t),e.fetchJsonFromBases);return{isTrusted:!0,status:`connected`,connectionError:null,requestTrust:async()=>!0,requestTrustWithToken:async()=>!0,requestTrustWithCode:async()=>null,ensureTrusted:async()=>!0,call:(...e)=>n.call(e[0],e.slice(1)),callEvent:(...e)=>n.callEvent(e[0],e.slice(1)),callOptional:(...e)=>n.callOptional(e[0],e.slice(1))}}var Cn=256,wn=class extends Error{name=`StreamClosedError`};function Tn(e={}){let t=e.id??Kt(),n=Math.max(0,e.replayWindow??0),r=fe(),i=new AbortController,a=[],o=!1,s=0;function c(e){if(o)throw new wn(`Cannot write to a closed stream "${t}"`);s+=1,n>0&&(a.push({seq:s,chunk:e}),a.length>n&&a.splice(0,a.length-n)),r.emit(`chunk`,s,e)}function l(e){if(o)return;o=!0;let t=Dn(e);i.abort(e),r.emit(`end`,t)}function u(){o||(o=!0,i.signal.aborted||i.abort(`stream closed`),r.emit(`end`,void 0))}function d(e){o||i.signal.aborted||i.abort(e??`aborted`)}let f=new WritableStream({write(e){c(e)},close(){u()},abort(e){l(e)}});return{id:t,signal:i.signal,get closed(){return o},get lastSeq(){return s},write:c,error:l,close:u,abort:d,writable:f,events:r,buffer:a}}function En(e={}){let t=e.id??Kt(),n=Math.max(1,e.highWaterMark??Cn),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 Dn(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)}}}var On=``;function kn(e,t){return`${e}${On}${t}`}function An(e){let t=new Map,n=new Map;e.client.register({name:`devframe:streaming:chunk`,type:`event`,handler(e,n,r,i){t.get(kn(e,n))?._push(r,i)}}),e.client.register({name:`devframe:streaming:end`,type:`event`,handler(e,n,r){let i=kn(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=kn(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(On);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=kn(n,r),o=t.get(a);if(o)return o;let s=En({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=kn(t,r),a=n.get(i);if(a)return a;let o=Tn({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}}var jn=`q`,Mn=`s`;function Nn(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}var Pn=Math.random.bind(Math),Fn=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`;function In(e=21){let t=``,n=e;for(;n--;)t+=Fn[Pn()*64|0];return t}var Ln=6e4,Rn=e=>e,zn=Rn,{clearTimeout:Bn,setTimeout:Vn}=globalThis;function Hn(e,t){let{post:n,on:r,off:i=()=>{},eventNames:a=[],serialize:o=Rn,deserialize:s=zn,resolver:c,bind:l=`rpc`,timeout:u=Ln,proxify:d=!0}=t,f=!1,p=new Map,m,h;async function g(e,r,i,a){if(f)throw Error(`[birpc] rpc is closed, cannot call "${e}"`);let s={m:e,a:r,t:jn};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}=Nn(),_=In();s.i=_;let v;async function y(n=s){return u>=0&&(v=Vn(()=>{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{Bn(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.prototype.hasOwnProperty.call(_,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===jn){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:Mn,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:Mn,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&&(Bn(r.timeoutId),n?r.reject(n):r.resolve(t)),p.delete(e)}}return m=r(b),h}function Un(e,t){let{channel:n,rpcOptions:r={}}=t;return Hn(e,{...n,timeout:-1,...r,proxify:!1})}function Wn(){}var Gn=new Map;function Kn(e){let t=e.url;e.authToken&&(t=`${t}?${r}=${encodeURIComponent(e.authToken)}`);let n=new WebSocket(t),{onConnected:i=Wn,onError:a=Wn,onDisconnected:o=Wn,definitions:s=Gn}=e;n.addEventListener(`open`,e=>{i(e)}),n.addEventListener(`error`,e=>{let t=e instanceof Error?e:Error(e.type);a(t)}),n.addEventListener(`close`,e=>{o(e)});let c=new Map;return{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}a(Error(`Devframe WebSocket is not open; message dropped`))},serialize:e=>{let t;return e.t===`q`?t=e.m:(t=c.get(e.i),c.delete(e.i)),!(e.t===`s`&&`e`in e)&&t&&s.get(t)?.jsonSerializable===!0?ue(e,t??``):`s:${pn(e)}`},deserialize:e=>{let t=e.startsWith(`s:`)?mn(e.slice(2)):JSON.parse(e);return t.t===`q`&&t.i&&t.m&&c.set(t.i,t.m),t}}}function qn(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}var Jn=``,Yn=`?`,Xn=`major`,R=`model`,z=`name`,B=`type`,V=`vendor`,H=`version`,U=`architecture`,Zn=`console`,W=`mobile`,G=`tablet`,K=`smarttv`,q=`wearable`,Qn=`embedded`,$n=500,er=`Amazon`,tr=`Apple`,nr=`ASUS`,rr=`BlackBerry`,J=`Browser`,ir=`Chrome`,ar=`Edge`,or=`Firefox`,sr=`Google`,cr=`Huawei`,lr=`LG`,ur=`Microsoft`,dr=`Motorola`,fr=`Opera`,pr=`Samsung`,mr=`Sharp`,hr=`Sony`,gr=`Xiaomi`,_r=`Zebra`,vr=`Facebook`,yr=`Chromium OS`,br=`Mac OS`;function xr(e,t={}){let n={};for(let r of Object.keys(e)){let i=t[r];i&&i.length%2==0?n[r]=[...i,...e[r]]:n[r]=e[r]}return n}function Sr(e){let t={};for(let n=0;n<e.length;n++)t[e[n].toUpperCase()]=e[n];return t}function Cr(e){return e.toLowerCase()}function wr(e,t){return typeof e==`string`?Cr(t).includes(Cr(e)):!1}function Tr(e){return typeof e==`string`?e.replace(/[^\d.]/g,Jn).split(`.`)[0]:void 0}function Er(e,t){let n=e.replace(/^\s+/,Jn);return t===void 0?n:n.substring(0,t)}function Dr(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];typeof i==`function`?r[e]=i(t,void 0,r):r[e]=i}else if(i===3){let i=n[1],a=n[2];typeof i==`function`&&!(`exec`in i)&&!(`test`in i)?r[e]=t?i(t,a,r):void 0:r[e]=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 Or(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(wr(r[t],e))return n===Yn?void 0:n}else if(wr(r,e))return n===Yn?void 0:n}return e}var kr={"1.0":`/8`,"1.2":`/1`,"1.3":`/3`,"2.0":`/412`,"2.0.2":`/416`,"2.0.3":`/417`,"2.0.4":`/419`,"?":`/`},Ar={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`},jr={browser:[[/\b(?:crmo|crios)\/([\w.]+)/i],[H,[z,`Chrome`]],[/edg(?:e|ios|a)?\/([\w.]+)/i],[H,[z,`Edge`]],[/(opera mini)\/([-\w.]+)/i,/(opera [mobileta]{3,6})\b.+version\/([-\w.]+)/i,/(opera)(?:.+version\/|[/ ]+)([\w.]+)/i],[z,H],[/opios[/ ]+([\w.]+)/i],[H,[z,`${fr} Mini`]],[/\bop(?:rg)?x\/([\w.]+)/i],[H,[z,`${fr} GX`]],[/\bopr\/([\w.]+)/i],[H,[z,fr]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[/ ]?([\w.]+)/i],[H,[z,`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],[z,H],[/\bddg\/([\w.]+)/i],[H,[z,`DuckDuckGo`]],[/(?:\buc? ?browser|juc.+ucweb)[/ ]?([\w.]+)/i],[H,[z,`UC${J}`]],[/microm.+\bqbcore\/([\w.]+)/i,/\bqbcore\/([\w.]+).+microm/i,/micromessenger\/([\w.]+)/i],[H,[z,`WeChat`]],[/konqueror\/([\w.]+)/i],[H,[z,`Konqueror`]],[/trident.+rv[: ]([\w.]{1,9})\b.+like gecko/i],[H,[z,`IE`]],[/ya(?:search)?browser\/([\w.]+)/i],[H,[z,`Yandex`]],[/slbrowser\/([\w.]+)/i],[H,[z,`Smart Lenovo ${J}`]],[/(avast|avg)\/([\w.]+)/i],[[z,/(.+)/,`$1 Secure ${J}`],H],[/\bfocus\/([\w.]+)/i],[H,[z,`${or} Focus`]],[/\bopt\/([\w.]+)/i],[H,[z,`${fr} Touch`]],[/coc_coc\w+\/([\w.]+)/i],[H,[z,`Coc Coc`]],[/dolfin\/([\w.]+)/i],[H,[z,`Dolphin`]],[/coast\/([\w.]+)/i],[H,[z,`${fr} Coast`]],[/miuibrowser\/([\w.]+)/i],[H,[z,`MIUI ${J}`]],[/fxios\/([-\w.]+)/i],[H,[z,or]],[/\bqihu|(qi?ho{0,2}|360)browser/i],[[z,`360 ${J}`]],[/(oculus|sailfish|huawei|vivo)browser\/([\w.]+)/i],[[z,/(.+)/,`$1 ${J}`],H],[/samsungbrowser\/([\w.]+)/i],[H,[z,`${pr} Internet`]],[/(comodo_dragon)\/([\w.]+)/i],[[z,/_/g,` `],H],[/metasr[/ ]?([\d.]+)/i],[H,[z,`Sogou Explorer`]],[/(sogou)mo\w+\/([\d.]+)/i],[[z,`Sogou Mobile`],H],[/(electron)\/([\w.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w.]+))/i,/m?(qqbrowser|2345Explorer)[/ ]?([\w.]+)/i],[z,H],[/(lbbrowser)/i,/\[(linkedin)app\]/i],[z],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w.]+);)/i],[[z,vr],H],[/(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],[z,H],[/\bgsa\/([\w.]+) .*safari\//i],[H,[z,`GSA`]],[/musical_ly(?:.+app_?version\/|_)([\w.]+)/i],[H,[z,`TikTok`]],[/headlesschrome(?:\/([\w.]+)| )/i],[H,[z,`${ir} Headless`]],[/ wv\).+(chrome)\/([\w.]+)/i],[[z,`${ir} WebView`],H],[/droid.+ version\/([\w.]+)\b.+(?:mobile safari|safari)/i],[H,[z,`Android ${J}`]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w.]+)/i],[z,H],[/version\/([\w.,]+) .*mobile\/\w+ (safari)/i],[H,[z,`Mobile Safari`]],[/version\/([\w(.|,)]+) .*(mobile ?safari|safari)/i],[H,z],[/webkit.+?(mobile ?safari|safari)(\/[\w.]+)/i],[z,[H,Or,kr]],[/(webkit|khtml)\/([\w.]+)/i],[z,H],[/(navigator|netscape\d?)\/([-\w.]+)/i],[[z,`Netscape`],H],[/mobile vr; rv:([\w.]+)\).+firefox/i],[H,[z,`${or} 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],[z,H],[/(cobalt)\/([\w.]+)/i],[z,[H,/master.|lts./,``]]],cpu:[[/(amd|x(?:(?:86|64)[-_])?|wow|win)64[;)]/i],[[U,`amd64`]],[/(ia32(?=;))/i],[[U,Cr]],[/((?:i[346]|x)86)[;)]/i],[[U,`ia32`]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[U,`arm64`]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[U,`armhf`]],[/windows (ce|mobile); ppc;/i],[[U,`arm`]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[U,/ower/,Jn,Cr]],[/(sun4\w)[;)]/i],[[U,`sparc`]],[/(avr32|ia64(?=;)|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[U,Cr]]],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],[R,[V,pr],[B,G]],[/\b((?:s[cgp]h|gt|sm)-\w+|sc[g-]?\d+a?|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[R,[V,pr],[B,W]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[R,[V,tr],[B,W]],[/\((ipad);[-\w),; ]+apple/i,/applecoremedia\/[\w.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[R,[V,tr],[B,G]],[/(macintosh);/i],[R,[V,tr]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[R,[V,mr],[B,W]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[R,[V,cr],[B,G]],[/(?:huawei|honor)([-\w ]+)[;)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][0-359c][adn]?)\b(?!.+d\/s)/i],[R,[V,cr],[B,W]],[/\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],[[R,/_/g,` `],[V,gr],[B,W]],[/oid[^)]+; (2\d{4}(283|rpbf)[cgl])( bui|\))/i,/\b(mi[-_ ]?pad[\w ]+)(?: bui|\))/i],[[R,/_/g,` `],[V,gr],[B,G]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[R,[V,`OPPO`],[B,W]],[/\b(opd2\d{3}a?) bui/i],[R,[V,`OPPO`],[B,G]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[R,[V,`Vivo`],[B,W]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[R,[V,`Realme`],[B,W]],[/\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],[R,[V,dr],[B,W]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[R,[V,dr],[B,G]],[/((?=lg)?[vl]k-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[R,[V,lr],[B,G]],[/(lm(?:-?f100[nv]?|-[\w.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?(\w+) bui/i],[R,[V,lr],[B,W]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab[\w ]+|yt[-\w]{6}|tb[-\w]{6})/i],[R,[V,`Lenovo`],[B,G]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w.]*)/i],[[R,/_/g,` `],[V,`Nokia`],[B,W]],[/(pixel c)\b/i],[R,[V,sr],[B,G]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[R,[V,sr],[B,W]],[/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],[R,[V,hr],[B,W]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[R,`Xperia Tablet`],[V,hr],[B,G]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[R,[V,`OnePlus`],[B,W]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[R,[V,er],[B,G]],[/((?:sd|kf)[0349hijor-uw]+)( bui|\)).+silk\//i],[[R,/(.+)/g,`Fire Phone $1`],[V,er],[B,W]],[/(playbook);[-\w),; ]+(rim)/i],[R,V,[B,G]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[R,[V,rr],[B,W]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[R,[V,nr],[B,G]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[R,[V,nr],[B,W]],[/(nexus 9)/i],[R,[V,`HTC`],[B,G]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!;|\.)|sony(?!-bra))[-_ ]?([-\w]*)/i],[V,[R,/_/g,` `],[B,W]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[R,[V,`Acer`],[B,G]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[R,[V,`Meizu`],[B,W]],[/; ((?:power )?armor[\w ]{0,8})(?: bui|\))/i],[R,[V,`Ulefone`],[B,W]],[/(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],[V,R,[B,W]],[/(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],[V,R,[B,G]],[/(surface duo)/i],[R,[V,ur],[B,G]],[/droid [\d.]+; (fp\du?)(?: b|\))/i],[R,[V,`Fairphone`],[B,W]],[/(u304aa)/i],[R,[V,`AT&T`],[B,W]],[/\bsie-(\w*)/i],[R,[V,`Siemens`],[B,W]],[/\b(rct\w+) b/i],[R,[V,`RCA`],[B,G]],[/\b(venue[\d ]{2,7}) b/i],[R,[V,`Dell`],[B,G]],[/\b(q(?:mv|ta)\w+) b/i],[R,[V,`Verizon`],[B,G]],[/\b(?:barnes[& ]+noble |bn[rt])([\w+ ]*) b/i],[R,[V,`Barnes & Noble`],[B,G]],[/\b(tm\d{3}\w+) b/i],[R,[V,`NuVision`],[B,G]],[/\b(k88) b/i],[R,[V,`ZTE`],[B,G]],[/\b(nx\d{3}j) b/i],[R,[V,`ZTE`],[B,W]],[/\b(gen\d{3}) b.+49h/i],[R,[V,`Swiss`],[B,W]],[/\b(zur\d{3}) b/i],[R,[V,`Swiss`],[B,G]],[/\b((zeki)?tb.*\b) b/i],[R,[V,`Zeki`],[B,G]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[V,`Dragon Touch`],R,[B,G]],[/\b(ns-?\w{0,9}) b/i],[R,[V,`Insignia`],[B,G]],[/\b((nxa|next)-?\w{0,9}) b/i],[R,[V,`NextBook`],[B,G]],[/\b(xtreme_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[V,`Voice`],R,[B,W]],[/\b(lvtel-)?(v1[12]) b/i],[[V,`LvTel`],R,[B,W]],[/\b(ph-1) /i],[R,[V,`Essential`],[B,W]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[R,[V,`Envizen`],[B,G]],[/\b(trio[-\w. ]+) b/i],[R,[V,`MachSpeed`],[B,G]],[/\btu_(1491) b/i],[R,[V,`Rotor`],[B,G]],[/(shield[\w ]+) b/i],[R,[V,`Nvidia`],[B,G]],[/(sprint) (\w+)/i],[V,R,[B,W]],[/(kin\.[onetw]{3})/i],[[R,/\./g,` `],[V,ur],[B,W]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[R,[V,_r],[B,G]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[R,[V,_r],[B,W]],[/smart-tv.+(samsung)/i],[V,[B,K]],[/hbbtv.+maple;(\d+)/i],[[R,/^/,`SmartTV`],[V,pr],[B,K]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[V,lr],[B,K]],[/(apple) ?tv/i],[V,[R,`${tr} TV`],[B,K]],[/crkey/i],[[R,`${ir}cast`],[V,sr],[B,K]],[/droid.+aft(\w+)( bui|\))/i],[R,[V,er],[B,K]],[/\(dtv[);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[R,[V,mr],[B,K]],[/(bravia[\w ]+)( bui|\))/i],[R,[V,hr],[B,K]],[/(mitv-\w{5}) bui/i],[R,[V,gr],[B,K]],[/Hbbtv.*(technisat) (.*);/i],[V,R,[B,K]],[/\b(roku)[\dx]*[)/]((?:dvp-)?[\d.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w+ ]*; *(\w[^;]*);([^;]*)/i],[[V,Er],[R,Er],[B,K]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[B,K]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[V,R,[B,Zn]],[/droid.+; (shield) bui/i],[R,[V,`Nvidia`],[B,Zn]],[/(playstation [345portablevi]+)/i],[R,[V,hr],[B,Zn]],[/\b(xbox(?: one)?(?!; xbox))[); ]/i],[R,[V,ur],[B,Zn]],[/((pebble))app/i],[V,R,[B,q]],[/(watch)(?: ?os[,/]|\d,\d\/)[\d.]+/i],[R,[V,tr],[B,q]],[/droid.+; (glass) \d/i],[R,[V,sr],[B,q]],[/droid.+; (wt63?0{2,3})\)/i],[R,[V,_r],[B,q]],[/(quest( \d| pro)?)/i],[R,[V,vr],[B,q]],[/(tesla)(?: qtcarbrowser|\/[-\w.]+)/i],[V,[B,Qn]],[/(aeobc)\b/i],[R,[V,er],[B,Qn]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i],[R,[B,W]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[R,[B,G]],[/\b((tablet|tab)[;/]|focus\/\d(?!.+mobile))/i],[[B,G]],[/(phone|mobile(?:[;/]| [ \w/.]*safari)|pda(?=.+windows ce))/i],[[B,W]],[/(android[-\w. ]{0,9});.+buil/i],[R,[V,`Generic`]]],engine:[[/windows.+ edge\/([\w.]+)/i],[H,[z,`${ar}HTML`]],[/webkit\/537\.36.+chrome\/(?!27)([\w.]+)/i],[H,[z,`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],[z,H],[/rv:([\w.]{1,9})\b.+(gecko)/i],[H,z]],os:[[/microsoft (windows) (vista|xp)/i],[z,H],[/(windows (?:phone(?: os)?|mobile))[/ ]?([.\w ]*)/i],[z,[H,Or,Ar]],[/windows nt 6\.2; (arm)/i,/windows[/ ]?([ntce\d. ]+\w)(?!.+xbox)/i,/(?:win(?=[39n])|win 9x )([nt\d.]+)/i],[[H,Or,Ar],[z,`Windows`]],[/ip[honead]{2,4}\b(?:.*os (\w+) like mac|; opera)/i,/(?:ios;fbsv\/|iphone.+ios[/ ])([\d.]+)/i,/cfnetwork\/.+darwin/i],[[H,/_/g,`.`],[z,`iOS`]],[/(mac os x) ?([\w. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[z,br],[H,/_/g,`.`]],[/droid ([\w.]+)\b.+(android[- ]x86|harmonyos)/i],[H,z],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-/ ]?([\w.]*)/i,/(blackberry)\w*\/([\w.]*)/i,/(tizen|kaios)[/ ]([\w.]+)/i,/\((series40);/i],[z,H],[/\(bb(10);/i],[H,[z,rr]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-/ ]?([\w.]*)/i],[H,[z,`Symbian`]],[/mozilla\/[\d.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w.]+)/i],[H,[z,`${or} OS`]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w.]+)/i],[H,[z,`webOS`]],[/watch(?: ?os[,/]|\d,\d\/)([\d.]+)/i],[H,[z,`watchOS`]],[/crkey\/([\d.]+)/i],[H,[z,`${ir}cast`]],[/(cros) \w+(?:\)| ([\w.]+)\b)/i],[[z,yr],H],[/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],[z,H],[/(sunos) ?([\w.]*)/i],[[z,`Solaris`],H],[/((?:open)?solaris)[-/ ]?([\w.]*)/i,/(aix) ((\d)(?=[.) ])[\w.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\w.]*)/i],[z,H]]};function Mr(e){return typeof e==`object`&&!!e}Object.freeze(Sr([z,H,Xn])),Object.freeze(Sr([U])),Object.freeze(Sr([R,V,B,Zn,W,K,G,q,Qn])),Object.freeze(Sr([z,H])),Object.freeze(Sr([z,H]));function Nr(){if(!(typeof window>`u`||!window.navigator))return window.navigator}function Pr(e){return e.length>$n?Er(e,$n):e}function Fr(e){if(typeof e==`string`)return{ua:Pr(e),isSelfNavigator:!1,navigator:void 0,userAgentData:void 0,regexMap:jr};let t=Nr(),n=Pr(t&&t.userAgent?t.userAgent:Jn);return{ua:n,isSelfNavigator:!!(t&&t.userAgent===n),navigator:t,userAgentData:t?.userAgentData,regexMap:jr}}function Ir(e,t){if(!t&&!Mr(e))return Fr(e);let n=Nr(),r=Mr(e)?void 0:e,i=Mr(e)?e:t,a=Pr(r||(n&&n.userAgent?n.userAgent:Jn)),o=n?.userAgentData;return{ua:a,isSelfNavigator:!!(n&&n.userAgent===a),navigator:n,userAgentData:o,regexMap:i?xr(jr,i):jr}}function Lr(e){let t={name:void 0,version:void 0,major:void 0};return Dr(e.ua,e.regexMap.browser,t),t.major=Tr(t.version),e.isSelfNavigator&&e.navigator?.brave&&typeof e.navigator.brave.isBrave==`function`&&(t.name=`Brave`),t}function Rr(e){let t={architecture:void 0};return Dr(e.ua,e.regexMap.cpu,t),t}function zr(e){let t={vendor:void 0,model:void 0,type:void 0};return Dr(e.ua,e.regexMap.device,t),e.isSelfNavigator&&!t.type&&e.userAgentData?.mobile&&(t.type=W),e.isSelfNavigator&&t.model===`Macintosh`&&e.navigator&&e.navigator.standalone!==void 0&&e.navigator.maxTouchPoints&&e.navigator.maxTouchPoints>2&&(t.model=`iPad`,t.type=G),t}function Br(e){let t={name:void 0,version:void 0};return Dr(e.ua,e.regexMap.engine,t),t}function Vr(e){let t={name:void 0,version:void 0};return Dr(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,yr).replace(/macos/i,br)),t}function Hr(e,t){let n,r,i,a,o,s,c=()=>n||=Ir(e,t);return{get ua(){return c().ua},get browser(){return r||=Lr(c()),r},get engine(){return i||=Br(c()),i},get os(){return a||=Vr(c()),a},get device(){return o||=zr(c()),o},get cpu(){return s||=Rr(c()),s}}}var Y=class extends Error{name=`DevframeConnectionError`;kind;constructor(e,t,n){super(t,n),this.kind=e}};function Ur(e,t,n){let r=n.protocol===`https:`?`wss:`:`ws:`,i=(()=>{try{return new URL(t,n.href)}catch{return new URL(n.href)}})();if(e&&typeof e==`object`){if(e.host!=null||e.port!=null){let t=e.host??`${n.hostname}:${e.port}`,i=new URL(e.path??`/`,`${r}//${t}`);return i.protocol=r,i.href}let t=new URL(e.path??``,i);return t.protocol=r,t.href}if(typeof e==`number`)return`${r}//${n.hostname}:${e}`;let a=e??``;if(/^wss?:\/\//i.test(a))return a;if(/^https?:\/\//i.test(a))return Ee(a,/^https/i.test(a)?`wss://`:`ws://`);let o=new URL(a,i);return o.protocol=r,o.href}function Wr(e){let{authToken:t,connectionMeta:n,metaBaseUrl:r,events:i,clientRpc:a,rpcOptions:o={},wsOptions:s={},callTimeout:c=0}=e,l=!1,u=`connecting`,d=null,f=qn(),p=Ur(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 Y(`connection`,`[devframe] Not connected to the devframe server`,{cause:d??void 0}):u===`unauthorized`?new Y(`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 Y(`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=Un(a.functions,{channel:Kn({url:p,authToken:t,definitions:y,...s,onConnected(e){s.onConnected?.(e)},onError(e){m(`error`,e),i.emit(`connection:error`,e),g(new Y(`connection`,`[devframe] Connection to the devframe server failed`,{cause:e})),s.onError?.(e)},onDisconnected(e){u!==`error`&&m(`disconnected`),g(new Y(`connection`,`[devframe] Disconnected from the devframe server`,{cause:d??void 0})),s.onDisconnected?.(e)}}),rpcOptions:o});a.register({name:`devframe:auth:revoked`,type:`event`,handler:()=>{l=!1;let e=new Y(`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 x=t;function ee(){let e=Hr(navigator.userAgent);return[e.browser.name,e.browser.version,`|`,e.os.name,e.os.version,e.device.type].filter(e=>e).join(` `)}async function te(e){x=e;let t=await b.$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 Y(`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 ne(e){let t=(await b.$call(`anonymous:devframe:auth:exchange`,{code:e,ua:ee(),origin:location.origin}))?.authToken??null;return t&&(x=t,l=!0,f.resolve(!0),m(`connected`),i.emit(`rpc:is-trusted:updated`,!0)),t}async function S(){return l?!0:te(x??``)}async function re(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:S,requestTrustWithToken:te,requestTrustWithCode:ne,ensureTrusted:re,call:(...e)=>{let t=String(e[0]),n=_();return n?(i.emit(`rpc:error`,n,t),Promise.reject(n)):v(b.$call(...e),t)},callEvent:(...e)=>{let t=_();if(t){i.emit(`rpc:error`,t,String(e[0]));return}return b.$callEvent(...e)},callOptional:(...e)=>{let t=String(e[0]),n=_();return n?(i.emit(`rpc:error`,n,t),Promise.reject(n)):v(b.$callOptional(...e),t)}}}function Gr(e){return e.includes(`:`)}function X(e,t){return Gr(t)?t:`${e}:${t}`}function Kr(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 qr(e,t){return{global:Kr(e,t,`global`),project:Kr(e,t,`project`)}}function Jr(e,t){return{namespace:t,base:e,rpc:{namespace:t,register(n){if(Gr(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(X(t,n),...r)),callEvent:((n,...r)=>e.callEvent(X(t,n),...r)),callOptional:((n,...r)=>e.callOptional(X(t,n),...r)),sharedState:((n,r)=>e.sharedState.get(X(t,n),r)),streaming:{subscribe:(n,r,i)=>e.streaming.subscribe(X(t,n),r,i),upload:(n,r)=>e.streaming.upload(X(t,n),r)}},settings:qr(e,t),scope:e.scope}}var Yr=`__DEVFRAME_CONNECTION_META__`,Z=`__DEVFRAME_CONNECTION_AUTH_TOKEN__`;function Xr(e){let t=[()=>e,()=>localStorage.getItem(Z)??void 0,()=>window?.[Z],()=>globalThis?.[Z],()=>parent.window?.[Z]];for(let e of t)try{let t=e();if(t)return t}catch{}}function Zr(e){try{localStorage.setItem(Z,e)}catch{}globalThis[Z]=e}function Qr(){let e=[()=>window?.[Yr],()=>globalThis?.[Yr],()=>parent.window?.[Yr]];for(let t of e)try{let e=t();if(e)return e}catch{}}async function $r(t={}){let{baseURL:n=`./`,rpcOptions:r={},cacheOptions:i=!1}=t,a=fe(),o=Array.isArray(n)?n:[n],s=t.connectionMeta||Qr(),c=o[0]??`./`,l=t.connectionMeta?void 0:s?.baseUrl;function u(){if(l)return l;let t=Se(e,c);try{return new URL(t,globalThis.location?.href).href}catch{return t}}if(!s){let t=[];for(let n of o)try{s=await fetch(Se(e,n)).then(e=>e.json()),c=n,globalThis[Yr]={...s,baseUrl:u()};break}catch(e){t.push(e)}if(!s)throw Error(`Failed to get connection meta from ${o.join(`, `)}`,{cause:t})}let d=new se({functions:[],...typeof t.cacheOptions==`object`?t.cacheOptions:{}}),f={rpc:void 0},p=Xr(t.authToken);p&&Zr(p);let m=new ce(f);async function h(e){let t=[c,...o.filter(e=>e!==c)].filter(e=>e!=null),n=[];for(let r of t)try{return await fetch(Se(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=s.backend===`static`?await Sn({fetchJsonFromBases:h}):Wr({authToken:p,connectionMeta:s,metaBaseUrl:u(),events:a,clientRpc:m,callTimeout:t.callTimeout,rpcOptions:{...r,async onRequest(e,t,n){if(await r.onRequest?.call(this,e,t,n),i&&d?.validate(e.m)){if(d.has(e.m,e.a))return n(d.cached(e.m,e.a));let r=await t(e);d.apply(e,r)}else await t(e)}},wsOptions:t.wsOptions}),_;try{_=new BroadcastChannel(`devframe-auth`)}catch{}let v={events:a,get isTrusted(){return g.isTrusted},get status(){return g.status},get connectionError(){return g.connectionError},connectionMeta:s,ensureTrusted:g.ensureTrusted,requestTrust:g.requestTrust,requestTrustWithToken:async e=>(Zr(e),g.requestTrustWithToken(e)),requestTrustWithCode:async e=>{let t=await g.requestTrustWithCode(e);if(!t)return!1;Zr(t);try{_?.postMessage({type:`auth-update`,authToken:t})}catch{}return!0},call:g.call,callEvent:g.callEvent,callOptional:g.callOptional,client:m,sharedState:void 0,streaming:void 0,cacheManager:d,scope:void 0};v.sharedState=Xt(v),v.streaming=An(v);let y=new Map;v.scope=(e=>{if(!e)return v;let t=y.get(e);return t||(t=Jr(v,e),y.set(e,t)),t}),f.rpc=v,g.requestTrust();let b=t.otpParam??`devframe_otp`;return b&&Ae(v,{param:b}),_&&(_.onmessage=e=>{e.data?.type===`auth-update`&&e.data.authToken&&v.requestTrustWithToken(e.data.authToken)}),v}var ei=$r,ti=`devframes-plugin-code-server:state`;function Q(...e){return e.filter(Boolean).join(` `)}function ni({variant:e=`primary`,size:t=`md`,class:n}={}){let r={primary:`btn-primary`,secondary:`btn-action`,outline:`btn-action`,ghost:`inline-flex items-center justify-center gap-1.5 rounded px2 py1 op75 hover:op100 hover:bg-active transition disabled:pointer-events-none disabled:op30!`,destructive:`btn-action text-error border-error/30!`,link:`inline-flex items-center gap-1.5 color-active hover:underline underline-offset-2`},i=t===`sm`?e===`primary`?`text-sm px-2.5! py-1!`:`text-sm`:t===`lg`?`text-base px-4! py-2!`:``;return Q(r[e],i,n)}function ri(e){return Q(`color-active hover:underline underline-offset-2`,e)}function ii(e){return Q(`inline-block size-4 rounded-full border-2 border-current border-t-transparent animate-spin`,e)}var ai={connecting:{icon:`i-ph-plugs-connected-duotone`,title:`Connecting…`,body:`Establishing a connection to the devframe server.`},disconnected:{icon:`i-ph-plugs-duotone`,title:`Disconnected`,body:`Lost the connection to the devframe server. Reload once it is back up.`},unauthorized:{icon:`i-ph-lock-key-duotone`,title:`Not authorized`,body:`Reopen the link printed by your dev server, then reload.`},error:{icon:`i-ph-warning-octagon-duotone`,title:`Connection failed`,body:`Could not reach the devframe server.`}};function oi(e){let t=document.createElement(`div`);t.className=`absolute inset-0 flex flex-col items-center justify-center gap-4 bg-base color-base p-8 text-center z-nav`,t.hidden=!0,e.append(t);function n(e,n){if(e===`connected`)return t.hidden=!0,t.replaceChildren(),!1;let r=ai[e];t.replaceChildren();let i=document.createElement(`div`);i.className=Q(r.icon,`text-4xl color-active`),t.append(i);let a=document.createElement(`div`);a.className=`flex flex-col gap-1`;let o=document.createElement(`p`);o.className=`text-lg font-medium`,o.textContent=r.title;let s=document.createElement(`p`);if(s.className=`text-sm color-muted max-w-sm`,s.textContent=r.body,a.append(o,s),n&&e===`error`){let e=document.createElement(`code`);e.className=`mt-1 max-w-sm break-words font-mono text-xs color-faint`,e.textContent=n,a.append(e)}if(t.append(a),e!==`connecting`){let e=document.createElement(`button`);e.type=`button`,e.className=ni({variant:`primary`,size:`sm`}),e.textContent=`Reload`,e.addEventListener(`click`,()=>location.reload()),t.append(e)}return t.hidden=!1,!0}return{update:n,dispose(){t.remove()}}}function si(e){let t=e.ownerDocument?.defaultView;return t?.HTMLIFrameElement?e instanceof t.HTMLIFrameElement:typeof HTMLIFrameElement<`u`?e instanceof HTMLIFrameElement:`src`in e}function ci(e={}){let t=new Map,n=new Map,r=e.maxPanes??1/0,i,a,o=0,s,c=!1,l=0;function u(){let t=e.document??globalThis.document;if(!t)throw Error("[iframe-pane] No document available. Provide `options.document` or run in a DOM environment.");return t}function d(){return u().defaultView}function f(){if(e.container){let t=e.container,n=t.ownerDocument.defaultView?.getComputedStyle(t).position;return(!n||n===`static`)&&(t.style.position=`relative`),t}if(!i){let t=u();i=t.createElement(`div`),i.setAttribute(`data-iframe-panes`,``),Object.assign(i.style,{position:`fixed`,inset:`0`,pointerEvents:`none`}),e.zIndex!=null&&(i.style.zIndex=String(e.zIndex)),t.body.appendChild(i)}return i}function p(){return!a&&typeof ResizeObserver<`u`&&(a=new ResizeObserver(e=>{for(let t of e)n.get(t.target)?.forEach(e=>e.update())})),a}function m(){if(s!=null)return;let e=d();if(!e){h();return}s=e.requestAnimationFrame(()=>{s=void 0,h()})}function h(){for(let e of n.values())for(let t of e)t.update()}let g=()=>m();function _(){let e=d();e&&(n.size>0?(e.addEventListener(`scroll`,g,{capture:!0,passive:!0}),e.addEventListener(`resize`,g,{passive:!0})):(e.removeEventListener(`scroll`,g,{capture:!0}),e.removeEventListener(`resize`,g),s!=null&&(e.cancelAnimationFrame(s),s=void 0)))}function v(e,t){let r=n.get(t);r||(r=new Set,n.set(t,r),p()?.observe(t)),r.add(e),_()}function y(e,t){let r=n.get(t);r&&(r.delete(e),r.size===0&&(n.delete(t),a?.unobserve(t)),_())}function b(e){e.element.style.pointerEvents=o>0?`none`:e.stateStyle.pointerEvents}function x(e){if(t.size<=r)return;let n=[...t.values()].filter(t=>!t.isMounted&&t!==e).sort((e,t)=>e.lastActiveAt-t.lastActiveAt);for(let e of n){if(t.size<=r)break;e.dispose()}}class ee{id;element;styleDefault;styleActive;styleHidden;stateKeys;target=null;isVisible=!1;isDisposed=!1;lastActiveAt=0;constructor(t,n){this.id=t,this.styleDefault={...e.styleDefault,...n.style},this.styleActive={opacity:`1`,pointerEvents:`auto`,...e.styleActive,...n.styleActive},this.styleHidden={opacity:`0.001`,pointerEvents:`none`,...e.styleHidden,...n.styleHidden},this.stateKeys=[...new Set([...Object.keys(this.styleActive),...Object.keys(this.styleHidden)])];let r=u(),i=this.element=n.element??r.createElement(n.tagName??`iframe`);if(i.setAttribute(`data-iframe-pane`,t),Object.assign(i.style,{display:`block`,position:`absolute`,left:`0px`,top:`0px`,border:`0`},this.styleDefault),n.attrs)for(let[e,t]of Object.entries(n.attrs))i.setAttribute(e,t);this.applyState(),n.onCreated?.(i),n.src!=null&&si(i)&&(i.src=n.src),f().appendChild(i)}get iframe(){return si(this.element)?this.element:void 0}get isMounted(){return this.target!=null}get stateStyle(){return this.isVisible?this.styleActive:this.styleHidden}applyState(){let e=this.stateStyle,t={};for(let n of this.stateKeys)n in e||(t[n]=this.styleDefault[n]??``);Object.assign(this.element.style,t,e),o>0&&(this.element.style.pointerEvents=`none`)}touch(){this.lastActiveAt=++l}mount(e){this.assertNotDisposed(),this.target!==e&&(this.target&&y(this,this.target),this.target=e,v(this,e)),this.show()}unmount(){this.target&&=(y(this,this.target),null),this.hide()}show(){this.assertNotDisposed(),this.touch(),this.isVisible=!0,this.applyState(),this.update()}hide(){this.isDisposed||(this.isVisible=!1,this.applyState())}update(){if(this.isDisposed||!this.target||!this.isVisible)return;let e=this.target.getBoundingClientRect(),t=f().getBoundingClientRect();Object.assign(this.element.style,{left:`${e.left-t.left}px`,top:`${e.top-t.top}px`,width:`${e.width}px`,height:`${e.height}px`})}dispose(){this.isDisposed||(this.unmount(),this.isDisposed=!0,this.element.remove(),t.delete(this.id),e.onPaneDisposed?.(this))}assertNotDisposed(){if(this.isDisposed)throw Error(`[iframe-pane] Pane "${this.id}" has been disposed`)}}return{list(){return[...t.values()]},get(e){return t.get(e)},has(e){return t.has(e)},ensure:((n,r={})=>{if(c)throw Error(`[iframe-pane] Manager has been disposed`);let i=t.get(n);return i?i.touch():(i=new ee(n,r),i.touch(),t.set(n,i),e.onPaneCreated?.(i),x(i)),i}),get maxPanes(){return r},set maxPanes(e){r=e,x()},get isPointerLocked(){return o>0},lockPointerEvents(){o++,t.forEach(b);let e=!1;return()=>{e||(e=!0,o--,t.forEach(b))}},updateAll:h,get container(){return e.container??i},get isDisposed(){return c},dispose(){if(!c){c=!0;for(let e of[...t.values()])e.dispose();a?.disconnect(),a=void 0,_(),i?.remove(),i=void 0}}}}var li=`https://coder.com/docs/code-server/latest/install`,ui=`https://github.com/coder/code-server`,di=ci(),fi=0,pi=[{label:`Install script (Linux / macOS)`,command:`curl -fsSL https://code-server.dev/install.sh | sh`},{label:`npm`,command:`npm install -g code-server`},{label:`Homebrew`,command:`brew install code-server`}];function mi(e){let{detection:t,server:n,auth:r,busy:i}=e;return n.status===`running`&&n.port!=null?r?`running`:`starting`:n.status===`starting`||i&&n.status!==`error`?`starting`:t.checked?t.installed?`launch`:`not-installed`:`connecting`}function $(e,t,n){let r=document.createElement(e);return t&&(r.className=t),n!=null&&(r.textContent=n),r}function hi(e,t=``){return $(`span`,Q(e,`shrink-0`,t))}function gi(){let e=$(`p`,`flex items-center gap-1.5 mb-2.5 text-xs tracking-wider uppercase color-muted`);return e.append(hi(`i-ph-code-duotone`,`text-sm`),document.createTextNode(`code-server`)),e}function _i(e){return`${location.protocol}//${location.hostname}:${e}/`}function vi(e){document.cookie=`${e.cookieName}=${e.cookieValue}; path=/; SameSite=Lax`}function yi(e,t={}){let n=t.resolveEditorUrl??_i,r=t.applyAuth??vi,i=()=>t.actions?.launch?.(),a=()=>t.actions?.recheck?.(),o=$(`div`,`absolute inset-0 flex flex-col of-hidden bg-base color-base font-sans`);e.append(o);let s=`code-server-editor-${++fi}`,c=$(`div`,`dcs-frame flex-1 w-full`),l=null;function u(...e){di.get(s)?.unmount(),l=null;let t=$(`div`,`flex-1 flex items-center justify-center p-6`),n=$(`div`,`w-full max-w-[560px]`);n.append(...e),t.append(n),o.replaceChildren(t)}function d(){let e=$(`div`,`flex items-center gap-2.5`);e.append($(`div`,ii(`color-muted`)),$(`span`,`text-sm color-muted`,`Connecting to devframe…`)),u(e)}function f(e){let t=[];t.push(gi()),t.push($(`h1`,`mb-2 text-[1.35rem] font-semibold`,`code-server is not installed`)),t.push($(`p`,`mb-5 text-sm leading-relaxed color-muted`,`Install code-server (VS Code in the browser) to open the editor here. Pick whichever fits your setup, then re-check.`));let n=$(`div`,`flex flex-col gap-3 mb-5`);for(let{label:e,command:t}of pi){let r=$(`div`);r.append($(`label`,`block mb-1 text-xs color-muted`,e));let i=$(`div`,`flex items-center gap-2 px-2.5 py-2 rounded-md border border-base bg-secondary`);i.append($(`code`,`flex-1 of-x-auto whitespace-nowrap font-mono text-xs color-base`,t));let a=$(`button`,ni({variant:`outline`,size:`sm`,class:`shrink-0 text-[11px]`}),`Copy`);a.onclick=()=>{navigator.clipboard?.writeText(t).then(()=>{a.textContent=`Copied`,setTimeout(()=>{a.textContent=`Copy`},1200)}).catch(()=>{})},i.append(a),r.append(i),n.append(r)}t.push(n);let r=$(`div`,`flex flex-wrap items-center gap-2.5`),i=$(`button`,ni({variant:`primary`}));i.append(hi(`i-ph-arrows-clockwise`,Q(`size-4`,e&&`animate-spin`)),document.createTextNode(e?`Checking…`:`Re-check`)),i.disabled=e,i.onclick=a,r.append(i),r.append(g(`Installation docs`,li)),r.append(g(`GitHub`,ui)),t.push(r),u(...t)}function p(e){let{detection:t,server:n,busy:r}=e,a=[];a.push(gi()),a.push($(`h1`,`mb-2 text-[1.35rem] font-semibold`,`Launch the editor`)),a.push($(`p`,`mb-5 text-sm leading-relaxed color-muted`,`Start a code-server instance scoped to this workspace and open VS Code right here. The server runs with a generated password and the editor is signed in automatically.`)),n.status===`error`&&n.error&&a.push($(`div`,`mb-4 px-3 py-2.5 rounded-md border border-error/35 bg-error/10 text-error text-sm whitespace-pre-wrap break-words`,n.error));let o=$(`div`,`flex flex-wrap gap-x-4 gap-y-1.5 mb-5 text-xs color-muted`);if(t.version){let e=$(`span`);e.append(document.createTextNode(`version `),$(`code`,`font-mono color-base`,t.version)),o.append(e)}let s=$(`span`);s.append(document.createTextNode(`binary `),$(`code`,`font-mono color-base`,t.bin)),o.append(s),a.push(o);let c=$(`div`,`flex flex-wrap items-center gap-2.5`),l=$(`button`,ni({variant:`primary`}));r?l.append($(`span`,ii()),document.createTextNode(`Starting…`)):l.append(hi(`i-ph-rocket-launch-duotone`,`size-4`),document.createTextNode(`Launch code-server`)),l.disabled=r??!1,l.onclick=i,c.append(l),a.push(c),u(...a)}function m(){let e=$(`div`,`flex items-center gap-2.5`);e.append($(`div`,ii(`color-muted`)),$(`span`,`text-sm color-muted`,`Starting code-server…`)),u(e)}function h(e){let t=n(e.server.port);l!==t&&(e.auth&&r(e.auth),l=t);let i=di.ensure(s,{src:t,attrs:{allow:`clipboard-read; clipboard-write; cross-origin-isolated`},style:{border:`0`}});i.iframe.src!==t&&(i.iframe.src=t),o.firstElementChild!==c&&o.replaceChildren(c),i.mount(c)}function g(e,t){let n=$(`a`,ri(`inline-flex items-center gap-1 text-sm`));return n.append(document.createTextNode(e),hi(`i-ph-arrow-square-out`,`size-3.5`)),n.href=t,n.target=`_blank`,n.rel=`noreferrer`,n}function _(e){switch(mi(e)){case`running`:h(e);break;case`starting`:m();break;case`connecting`:d();break;case`not-installed`:f(e.busy??!1);break;case`launch`:p(e);break}}return{update:_,dispose(){di.get(s)?.dispose(),o.remove()}}}async function bi(e,t={}){let n=t.rpc??await ei();n.connectionMeta.backend===`websocket`&&await n.ensureTrusted(5e3).catch(()=>{}),e.style.position||(e.style.position=`relative`);let r=oi(e),i=()=>{r.update(n.status,n.connectionError?.message)};i();let a=n.events.on(`connection:status`,i),o={checked:!1,installed:!1,bin:`code-server`},s={status:`stopped`},c,l=!1,u=!1,d=yi(e,{actions:{launch:h,recheck:_}});function f(){u||d.update({detection:o,server:s,auth:c,busy:l})}function p(e){o=e.detection,s=e.server,e.auth&&(c=e.auth)}async function m(e,...t){try{return await n.call(e,...t)}catch(e){s={status:`error`,error:e instanceof Error?e.message:String(e)};return}}async function h(){if(l)return;l=!0,f();let e=await m(`devframes-plugin-code-server:start`,{});e&&p(e),l=!1,f()}async function g(){if(l)return;l=!0,f();let e=await m(`devframes-plugin-code-server:stop`);e&&p(e),c=void 0,l=!1,f()}async function _(){l||(l=!0,f(),await m(`devframes-plugin-code-server:detect`),l=!1,f())}f();let v=await m(`devframes-plugin-code-server:status`);v&&p(v),f();let y=await n.sharedState.get(ti,{initialValue:{detection:o,server:s}}),b=y.value();o=b.detection??o,s=b.server??s;let x=y.on(`updated`,e=>{if(o=e.detection??o,s=e.server??s,s.status===`running`&&!c){m(`devframes-plugin-code-server:status`).then(e=>{e?.auth&&(c=e.auth),f()});return}f()});return f(),{rpc:n,stop:g,dispose(){u=!0,x?.(),a?.(),r.dispose(),d.dispose()}}}var xi=document.getElementById(`app`);if(!xi)throw Error(`#app mount node missing from index.html`);bi(xi).catch(e=>{xi.textContent=`Failed to connect: ${e instanceof Error?e.message:String(e)}`});
2
+ `)}}var te=ee(x);function ne(e,{method:t=`warn`}={}){console[t](te(e))}var S=y({docsBase:`https://devfra.me/errors`,reporters:[ne],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`."}}});function re(e){let t=e.cause instanceof Error?e.cause:ie(e.cause)?re(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 ie(e){return typeof e==`object`&&!!e&&typeof e.message==`string`&&typeof e.name==`string`}async function ae(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 oe(e,t){if(e.handler)return e.handler;let n=await ae(e,t);if(!n.handler)throw S.DF0024({name:e.name});return n.handler}var se=class{cacheMap=new Map;options;keySerializer;constructor(e){this.options=e,this.keySerializer=e.keySerializer||(e=>m(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()}},ce=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 oe(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 S.DF0021({name:e.name});le(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 S.DF0022({name:e.name});le(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 oe(this.definitions.get(e),this.context)}getSchema(e){let t=this.definitions.get(e);if(!t)throw S.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 le(e){if(e.agent&&e.jsonSerializable!==!0)throw S.DF0019({name:e.name})}function ue(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 C(t,`undefined`,r,e);return n}if(i===null)return n;if(typeof i==`bigint`)throw C(t,`BigInt`,r,e);if(typeof i==`object`){if(i instanceof Map)throw C(t,`Map`,r,e);if(i instanceof Set)throw C(t,`Set`,r,e);if(i instanceof Date)throw C(t,`Date`,r,e);if(Array.isArray(i))return n;let a=Object.getPrototypeOf(i);if(a!==null&&a!==Object.prototype)throw C(t,i.constructor?.name??`class instance`,r,e)}return n})}function C(e,t,n,r){let i=de(n,r);return S.DF0020({name:e||`<anonymous>`,type:t,path:i})}function de(e,t){return Array.isArray(e)?`[${t}]`:t===``?`<root>`:t}function fe(){let e={};function t(t,...n){let r=e[t]||[];for(let e=0,t=r.length;e<t;e++){let t=r[e];t&&t(...n)}}function n(n,...r){t(n,...r),delete e[n]}function r(t,n){return(e[t]||=[]).push(n),()=>{e[t]=e[t]?.filter(e=>n!==e)}}function i(e,t){let n=r(e,((...e)=>(n(),t(...e))));return n}return{_listeners:e,emit:t,emitOnce:n,on:r,once:i}}String.fromCharCode;var pe=/^[\s\w\0+.-]{2,}:([/\\]{1,2})/,me=/^[\s\w\0+.-]{2,}:([/\\]{2})?/,he=/^([/\\]\s*){2,}[^/\\]/,ge=/\/$|\/\?|\/#/,_e=/^\.?\//;function ve(e,t={}){return typeof t==`boolean`&&(t={acceptRelative:t}),t.strict?pe.test(e):me.test(e)||(t.acceptRelative?he.test(e):!1)}function ye(e=``,t){return t?ge.test(e):e.endsWith(`/`)}function be(e=``,t){if(!t)return(ye(e)?e.slice(0,-1):e)||`/`;if(!ye(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 xe(e=``,t){if(!t)return e.endsWith(`/`)?e:e+`/`;if(ye(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 Se(e,t){if(Ce(t)||ve(e))return e;let n=be(t);if(e.startsWith(n)){let t=e[n.length];if(!t||t===`/`||t===`?`)return e}return Te(n,e)}function Ce(e){return!e||e===`/`}function we(e){return e&&e!==`/`}function Te(e,...t){let n=e||``;for(let e of t.filter(e=>we(e)))if(n){let t=e.replace(_e,``);n=xe(n)+t}else n=e;return n}function Ee(e,t){let n=e.match(me);return n||=e.match(/^\/{2,}/),n?t+e.slice(n[0].length):t+e}function De(e=n){try{return new URLSearchParams(globalThis.location?.search).get(e)||void 0}catch{return}}function Oe(e){try{let t=new URL(globalThis.location.href);if(!t.searchParams.has(e))return;t.searchParams.delete(e),globalThis.history?.replaceState(globalThis.history.state,``,t.href)}catch{}}function ke(e=n){let t=De(e);return t&&Oe(e),t}async function Ae(e,t={}){let n=ke(t.param??`devframe_otp`);return n?e.isTrusted?!0:e.requestTrustWithCode(n):!1}var je=Symbol.for(`immer-nothing`),Me=Symbol.for(`immer-draftable`),w=Symbol.for(`immer-state`);function T(e,...t){throw Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var E=Object,D=E.getPrototypeOf,Ne=`constructor`,Pe=`prototype`,Fe=`configurable`,Ie=`enumerable`,Le=`writable`,Re=`value`,O=e=>!!e&&!!e[w];function k(e){return e?Ve(e)||Ge(e)||!!e[Me]||!!e[Ne]?.[Me]||Ke(e)||qe(e):!1}var ze=E[Pe][Ne].toString(),Be=new WeakMap;function Ve(e){if(!e||!N(e))return!1;let t=D(e);if(t===null||t===E[Pe])return!0;let n=E.hasOwnProperty.call(t,Ne)&&t[Ne];if(n===Object)return!0;if(!P(n))return!1;let r=Be.get(n);return r===void 0&&(r=Function.toString.call(n),Be.set(n,r)),r===ze}function He(e,t,n=!0){A(e)===0?(n?Reflect.ownKeys(e):E.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function A(e){let t=e[w];return t?t.type_:Ge(e)?1:Ke(e)?2:qe(e)?3:0}var j=(e,t,n=A(e))=>n===2?e.has(t):E[Pe].hasOwnProperty.call(e,t),M=(e,t,n=A(e))=>n===2?e.get(t):e[t],Ue=(e,t,n,r=A(e))=>{r===2?e.set(t,n):r===3?e.add(n):e[t]=n};function We(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}var Ge=Array.isArray,Ke=e=>e instanceof Map,qe=e=>e instanceof Set,N=e=>typeof e==`object`,P=e=>typeof e==`function`,Je=e=>typeof e==`boolean`;function Ye(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var Xe=e=>N(e)?e?.[w]:null,F=e=>e.copy_||e.base_,Ze=e=>e.modified_?e.copy_:e.base_;function Qe(e,t){if(Ke(e))return new Map(e);if(qe(e))return new Set(e);if(Ge(e))return Array[Pe].slice.call(e);let n=Ve(e);if(t===!0||t===`class_only`&&!n){let t=E.getOwnPropertyDescriptors(e);delete t[w];let n=Reflect.ownKeys(t);for(let r=0;r<n.length;r++){let i=n[r],a=t[i];a[Le]===!1&&(a[Le]=!0,a[Fe]=!0),(a.get||a.set)&&(t[i]={[Fe]:!0,[Le]:!0,[Ie]:a[Ie],[Re]:e[i]})}return E.create(D(e),t)}else{let t=D(e);if(t!==null&&n)return{...e};let r=E.create(t);return E.assign(r,e)}}function $e(e,t=!1){return nt(e)||O(e)||!k(e)?e:(A(e)>1&&E.defineProperties(e,{set:tt,add:tt,clear:tt,delete:tt}),E.freeze(e),t&&He(e,(e,t)=>{$e(t,!0)},!1),e)}function et(){T(2)}var tt={[Re]:et};function nt(e){return e===null||!N(e)?!0:E.isFrozen(e)}var rt=`MapSet`,it=`Patches`,at=`ArrayMethods`,ot={};function I(e){let t=ot[e];return t||T(0,e),t}var st=e=>!!ot[e];function ct(e,t){ot[e]||(ot[e]=t)}var lt,ut=()=>lt,dt=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:st(rt)?I(rt):void 0,arrayMethodsPlugin_:st(at)?I(at):void 0});function ft(e,t){t&&(e.patchPlugin_=I(it),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function pt(e){mt(e),e.drafts_.forEach(gt),e.drafts_=null}function mt(e){e===lt&&(lt=e.parent_)}var ht=e=>lt=dt(lt,e);function gt(e){let t=e[w];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function _t(e,t){t.unfinalizedDrafts_=t.drafts_.length;let n=t.drafts_[0];if(e!==void 0&&e!==n){n[w].modified_&&(pt(t),T(4)),k(e)&&(e=vt(t,e));let{patchPlugin_:r}=t;r&&r.generateReplacementPatches_(n[w].base_,e,t)}else e=vt(t,n);return yt(t,e,!0),pt(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e===je?void 0:e}function vt(e,t){if(nt(t))return t;let n=t[w];if(!n)return Dt(t,e.handledSet_,e);if(!xt(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);Tt(n,e)}return n.copy_}function yt(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&$e(t,n)}function bt(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var xt=(e,t)=>e.scope_===t,St=[];function Ct(e,t,n,r){let i=F(e),a=e.type_;if(r!==void 0&&M(i,r,a)===t){Ue(i,r,n,a);return}if(!e.draftLocations_){let t=e.draftLocations_=new Map;He(i,(e,n)=>{if(O(n)){let r=t.get(n)||[];r.push(e),t.set(n,r)}})}let o=e.draftLocations_.get(t)??St;for(let e of o)Ue(i,e,n,a)}function wt(e,t,n){e.callbacks_.push(function(r){let i=t;if(!i||!xt(i,r))return;r.mapSetPlugin_?.fixSetContents(i);let a=Ze(i);Ct(e,i.draft_??i,a,n),Tt(i,r)})}function Tt(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)}bt(e)}}function Et(e,t,n){let{scope_:r}=e;if(O(n)){let i=n[w];xt(i,r)&&i.callbacks_.push(function(){Ft(e),Ct(e,n,Ze(i),t)})}else k(n)&&e.callbacks_.push(function(){let i=F(e);e.type_===3?i.has(n)&&Dt(n,r.handledSet_,r):M(i,t,e.type_)===n&&r.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&Dt(M(e.copy_,t,e.type_),r.handledSet_,r)})}function Dt(e,t,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||O(e)||t.has(e)||!k(e)||nt(e)?e:(t.add(e),He(e,(r,i)=>{if(O(i)){let t=i[w];xt(t,n)&&(Ue(e,r,Ze(t),e.type_),bt(t))}else k(i)&&Dt(i,t,n)}),e)}function Ot(e,t){let n=Ge(e),r={type_:+!!n,scope_:t?t.scope_:ut(),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=kt;n&&(i=[r],a=At);let{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,[s,r]}var kt={get(e,t){if(t===w)return e;if(t===`constructor`||t===`__proto__`){let n=F(e)[t];return new Proxy(n||{},{get:(e,t)=>t===`__proto__`||t===`prototype`?Object.freeze(Object.create(null)):Reflect.get(e,t),set:()=>!0,apply:(e,t,n)=>Reflect.apply(e,t,n)})}let n=e.scope_.arrayMethodsPlugin_,r=e.type_===1&&typeof t==`string`;if(r&&n?.isArrayOperationMethod(t))return n.createMethodInterceptor(e,t);let i=F(e);if(!j(i,t,e.type_))return Mt(e,i,t);let a=i[t];if(e.finalized_||!k(a)||r&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&Ye(t))return a;if(a===jt(e.base_,t)){Ft(e);let n=e.type_===1?+t:t,r=Lt(e.scope_,a,e,n);return e.copy_[n]=r}return a},has(e,t){return t===`constructor`||t===`__proto__`||t===`prototype`?!1:t in F(e)},ownKeys(e){return Reflect.ownKeys(F(e))},set(e,t,n){if(t===`constructor`||t===`__proto__`||t===`prototype`)return!0;let r=Nt(F(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){let r=jt(F(e),t),i=r?.[w];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_.set(t,!1),!0;if(We(n,r)&&(n!==void 0||j(e.base_,t,e.type_)))return!0;Ft(e),Pt(e)}return e.copy_[t]===n&&(n!==void 0||j(e.copy_,t,e.type_))||Number.isNaN(n)&&Number.isNaN(e.copy_[t])?!0:(e.copy_[t]=n,e.assigned_.set(t,!0),Et(e,t,n),!0)},deleteProperty(e,t){return Ft(e),jt(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),Pt(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let n=F(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{[Le]:!0,[Fe]:e.type_!==1||t!==`length`,[Ie]:r[Ie],[Re]:n[t]}},defineProperty(){T(11)},getPrototypeOf(e){return D(e.base_)},setPrototypeOf(){T(12)}},At={};for(let e in kt){let t=kt[e];At[e]=function(){let e=arguments;return e[0]=e[0][0],t.apply(this,e)}}At.deleteProperty=function(e,t){return At.set.call(this,e,t,void 0)},At.set=function(e,t,n){return kt.set.call(this,e[0],t,n,e[0])};function jt(e,t){let n=e[w];return(n?F(n):e)[t]}function Mt(e,t,n){let r=Nt(t,n);return r?Re in r?r[Re]:r.get?.call(e.draft_):void 0}function Nt(e,t){if(!(t in e))return;let n=D(e);for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=D(n)}}function Pt(e){e.modified_||(e.modified_=!0,e.parent_&&Pt(e.parent_))}function Ft(e){e.copy_||=(e.assigned_=new Map,Qe(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var It=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(e,t,n)=>{if(P(e)&&!P(t)){let n=t;t=e;let r=this;return function(e=n,...i){return r.produce(e,e=>t.call(this,e,...i))}}P(t)||T(6),n!==void 0&&!P(n)&&T(7);let r;if(k(e)){let i=ht(this),a=Lt(i,e,void 0),o=!0;try{r=t(a),o=!1}finally{o?pt(i):mt(i)}return ft(i,n),_t(r,i)}else if(!e||!N(e)){if(r=t(e),r===void 0&&(r=e),r===je&&(r=void 0),this.autoFreeze_&&$e(r,!0),n){let t=[],i=[];I(it).generateReplacementPatches_(e,r,{patches_:t,inversePatches_:i}),n(t,i)}return r}else T(1,e)},this.produceWithPatches=(e,t)=>{if(P(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]},Je(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),Je(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),Je(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){k(e)||T(8),O(e)&&(e=Rt(e));let t=ht(this),n=Lt(t,e,void 0);return n[w].isManual_=!0,mt(t),n}finishDraft(e,t){let n=e&&e[w];(!n||!n.isManual_)&&T(9);let{scope_:r}=n;return ft(r,t),_t(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=I(it).applyPatches_;return O(e)?r(e,t):this.produce(e,e=>r(e,t))}};function Lt(e,t,n,r){let[i,a]=Ke(t)?I(rt).proxyMap_(t,n):qe(t)?I(rt).proxySet_(t,n):Ot(t,n);return(n?.scope_??ut()).drafts_.push(i),a.callbacks_=n?.callbacks_??[],a.key_=r,n&&r!==void 0?wt(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 Rt(e){return O(e)||T(10,e),zt(e)}function zt(e){if(!k(e)||nt(e))return e;let t=e[w],n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=Qe(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=Qe(e,!0);return He(n,(e,t)=>{Ue(n,e,zt(t))},r),t&&(t.finalized_=!1),n}function Bt(){function e(n,r=[]){if(n.key_!==void 0){let e=n.parent_.copy_??n.parent_.base_,t=Xe(M(e,n.key_)),i=M(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||j(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=M(n,r),!N(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?.[w];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;He(e.assigned_,(e,l)=>{let u=M(o,e,c),f=M(s,e,c),p=l?j(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===je?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=A(o),n=i[e];typeof n!=`string`&&typeof n!=`number`&&(n=``+n),(t===0||t===1)&&(n===`__proto__`||n===Ne)&&T(19),P(o)&&n===Pe&&T(19),o=M(o,n),N(o)||T(18,i.join(`/`))}let s=A(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:T(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:T(17,a)}}),e}function u(e){if(!k(e))return e;if(Ge(e))return e.map(u);if(Ke(e))return new Map(Array.from(e.entries()).map(([e,t])=>[e,u(t)]));if(qe(e))return new Set(Array.from(e).map(u));let t=Object.create(D(e));for(let n in e)t[n]=u(e[n]);return j(e,Me)&&(t[Me]=e[Me]),t}function d(e){return O(e)?u(e):e}ct(it,{applyPatches_:l,generatePatches_:i,generateReplacementPatches_:c,getPath:e})}var Vt=new It,Ht=Vt.produce,Ut=Vt.produceWithPatches.bind(Vt),Wt=Vt.applyPatches.bind(Vt),Gt=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`;function Kt(e=21){let t=``,n=e;for(;n--;)t+=Gt[Math.random()*64|0];return t}var qt=1e3;function Jt(e,t){if(e.add(t),e.size>qt){let t=e.values().next().value;t!==void 0&&e.delete(t)}}function Yt(e){let{enablePatches:t=!1}=e,n=fe(),r=e.initialValue,i=new Set;return{on:n.on,value:()=>r,patch:(e,t=Kt())=>{i.has(t)||(Bt(),r=Wt(r,e),Jt(i,t),n.emit(`updated`,r,void 0,t))},mutate:(e,a=Kt())=>{if(!i.has(a))if(Jt(i,a),t){let[t,i]=Ut(r,e);r=t,n.emit(`updated`,r,i,a)}else r=Ht(r,e),n.emit(`updated`,r,void 0,a)},syncIds:i}}function Xt(e){let t=new Map,n=new Map,r=new Set,i=e.connectionMeta.backend===`static`;function a(e,t){let r=n.get(e);return r&&typeof r==`object`&&!Array.isArray(r)&&typeof t==`object`&&!Array.isArray(t)?{...r,...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(()=>a(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 o(t,n){let r=[];return r.push(n.on(`updated`,(n,r,a)=>{i||(r?e.callEvent(`devframe:rpc:server-state:patch`,t,r,a):e.callEvent(`devframe:rpc:server-state:set`,t,n,a))})),()=>{for(let e of r)e()}}return{keys:()=>Array.from(t.keys()),onKeyAdded(e){return r.add(e),()=>{r.delete(e)}},get:async(s,c)=>{if(c?.initialValue!==void 0&&n.set(s,c.initialValue),t.has(s))return t.get(s);let l=Yt({initialValue:c?.initialValue,enablePatches:!1});async function u(){if(i||e.callEvent(`devframe:rpc:server-state:subscribe`,s),c?.initialValue!==void 0){t.set(s,l);for(let e of r)e(s);return e.call(`devframe:rpc:server-state:get`,s).then(e=>{e!==void 0&&l.mutate(()=>a(s,e))}).catch(e=>{console.error(`Error getting server state`,e)}),o(s,l),l}else{let n=await e.call(`devframe:rpc:server-state:get`,s);l.mutate(()=>a(s,n)),t.set(s,l);for(let e of r)e(s);return o(s,l),l}}return new Promise(t=>{if(e.isTrusted)u().then(t);else{t(l);let n=!1;e.events.on(`rpc:is-trusted:updated`,e=>{e&&!n&&(n=!0,u())})}})}}}var Zt=typeof self==`object`?self:globalThis;function Qt(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;return n(new Zt[e](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)}}return n(new Zt[a](o),i)};return r}function $t(e){return Qt(new Map,e)(0)}var L=``,{toString:en}={},{keys:tn}=Object;function nn(e){let t=typeof e;if(t!==`object`||!e)return[0,t];let n=en.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 rn([e,t]){return e===0&&(t===`function`||t===`symbol`)}function an(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]=nn(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 tn(r))(e||!rn(nn(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||!(rn(nn(n))||rn(nn(i))))&&t.push([a(n),a(i)]);return n}case 6:{let t=[],n=i([o,t],r);for(let n of r)(e||!rn(nn(n)))&&t.push(a(n));return n}}let{message:c}=r;return i([o,{name:s,message:c}],r)};return a}function on(e,t={}){let n=[];return an(!(t.json||t.lossy),!!t.json,new Map,n)(e),n}var{parse:sn,stringify:cn}=JSON,ln={json:!0,lossy:!0};function un(e){return $t(sn(e))}function dn(e){return cn(on(e,ln))}function fn(e){return $t(e)}function pn(e){return dn(e)}function mn(e){return un(e)}function hn(e){return typeof e==`object`&&!!e&&e.type===`static`&&typeof e.path==`string`}function gn(e){return typeof e==`object`&&!!e&&e.type===`query`&&typeof e.records==`object`&&e.records!==null}function _n(e){return typeof e==`object`&&!!e&&(`output`in e||`error`in e)}function vn(e){if(e.error)throw re(e.error);return e.output}function yn(e){return e.some(e=>e!=null)}function bn(e){return typeof e==`object`&&e&&`serialization`in e&&`data`in e?e.data:e}function xn(e,t){let n=new Map,r=new Map;function i(e,t){return t===`structured-clone`&&Array.isArray(e)?fn(e):e}function a(e,t){return i(bn(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 _n(r)?vn(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(hn(r)){if(yn(n))throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`);return await o(r)}if(gn(r)){let e=m(n),i=r.records[e];if(i)return vn(await s(i,r.serialization));if(r.fallback)return vn(await s(r.fallback,r.serialization));throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`)}if(!yn(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 Sn(e){let n=xn(await e.fetchJsonFromBases(t),e.fetchJsonFromBases);return{isTrusted:!0,status:`connected`,connectionError:null,requestTrust:async()=>!0,requestTrustWithToken:async()=>!0,requestTrustWithCode:async()=>null,ensureTrusted:async()=>!0,call:(...e)=>n.call(e[0],e.slice(1)),callEvent:(...e)=>n.callEvent(e[0],e.slice(1)),callOptional:(...e)=>n.callOptional(e[0],e.slice(1))}}var Cn=256,wn=class extends Error{name=`StreamClosedError`};function Tn(e={}){let t=e.id??Kt(),n=Math.max(0,e.replayWindow??0),r=fe(),i=new AbortController,a=[],o=!1,s=0;function c(e){if(o)throw new wn(`Cannot write to a closed stream "${t}"`);s+=1,n>0&&(a.push({seq:s,chunk:e}),a.length>n&&a.splice(0,a.length-n)),r.emit(`chunk`,s,e)}function l(e){if(o)return;o=!0;let t=Dn(e);i.abort(e),r.emit(`end`,t)}function u(){o||(o=!0,i.signal.aborted||i.abort(`stream closed`),r.emit(`end`,void 0))}function d(e){o||i.signal.aborted||i.abort(e??`aborted`)}let f=new WritableStream({write(e){c(e)},close(){u()},abort(e){l(e)}});return{id:t,signal:i.signal,get closed(){return o},get lastSeq(){return s},write:c,error:l,close:u,abort:d,writable:f,events:r,buffer:a}}function En(e={}){let t=e.id??Kt(),n=Math.max(1,e.highWaterMark??Cn),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 Dn(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)}}}var On=``;function kn(e,t){return`${e}${On}${t}`}function An(e){let t=new Map,n=new Map;e.client.register({name:`devframe:streaming:chunk`,type:`event`,handler(e,n,r,i){t.get(kn(e,n))?._push(r,i)}}),e.client.register({name:`devframe:streaming:end`,type:`event`,handler(e,n,r){let i=kn(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=kn(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(On);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=kn(n,r),o=t.get(a);if(o)return o;let s=En({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=kn(t,r),a=n.get(i);if(a)return a;let o=Tn({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}}var jn=`q`,Mn=`s`;function Nn(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}var Pn=Math.random.bind(Math),Fn=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`;function In(e=21){let t=``,n=e;for(;n--;)t+=Fn[Pn()*64|0];return t}var Ln=6e4,Rn=e=>e,zn=Rn,{clearTimeout:Bn,setTimeout:Vn}=globalThis;function Hn(e,t){let{post:n,on:r,off:i=()=>{},eventNames:a=[],serialize:o=Rn,deserialize:s=zn,resolver:c,bind:l=`rpc`,timeout:u=Ln,proxify:d=!0}=t,f=!1,p=new Map,m,h;async function g(e,r,i,a){if(f)throw Error(`[birpc] rpc is closed, cannot call "${e}"`);let s={m:e,a:r,t:jn};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}=Nn(),_=In();s.i=_;let v;async function y(n=s){return u>=0&&(v=Vn(()=>{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{Bn(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.prototype.hasOwnProperty.call(_,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===jn){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:Mn,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:Mn,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&&(Bn(r.timeoutId),n?r.reject(n):r.resolve(t)),p.delete(e)}}return m=r(b),h}function Un(e,t){let{channel:n,rpcOptions:r={}}=t;return Hn(e,{...n,timeout:-1,...r,proxify:!1})}function Wn(){}var Gn=new Map;function Kn(e){let t=e.url;e.authToken&&(t=`${t}?${r}=${encodeURIComponent(e.authToken)}`);let n=new WebSocket(t),{onConnected:i=Wn,onError:a=Wn,onDisconnected:o=Wn,definitions:s=Gn}=e;n.addEventListener(`open`,e=>{i(e)}),n.addEventListener(`error`,e=>{let t=e instanceof Error?e:Error(e.type);a(t)}),n.addEventListener(`close`,e=>{o(e)});let c=new Map;return{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}a(Error(`Devframe WebSocket is not open; message dropped`))},serialize:e=>{let t;return e.t===`q`?t=e.m:(t=c.get(e.i),c.delete(e.i)),!(e.t===`s`&&`e`in e)&&t&&s.get(t)?.jsonSerializable===!0?ue(e,t??``):`s:${pn(e)}`},deserialize:e=>{let t=e.startsWith(`s:`)?mn(e.slice(2)):JSON.parse(e);return t.t===`q`&&t.i&&t.m&&c.set(t.i,t.m),t}}}function qn(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}var Jn=``,Yn=`?`,Xn=`major`,R=`model`,z=`name`,B=`type`,V=`vendor`,H=`version`,U=`architecture`,Zn=`console`,W=`mobile`,G=`tablet`,K=`smarttv`,q=`wearable`,Qn=`embedded`,$n=500,er=`Amazon`,tr=`Apple`,nr=`ASUS`,rr=`BlackBerry`,J=`Browser`,ir=`Chrome`,ar=`Edge`,or=`Firefox`,sr=`Google`,cr=`Huawei`,lr=`LG`,ur=`Microsoft`,dr=`Motorola`,fr=`Opera`,pr=`Samsung`,mr=`Sharp`,hr=`Sony`,gr=`Xiaomi`,_r=`Zebra`,vr=`Facebook`,yr=`Chromium OS`,br=`Mac OS`;function xr(e,t={}){let n={};for(let r of Object.keys(e)){let i=t[r];i&&i.length%2==0?n[r]=[...i,...e[r]]:n[r]=e[r]}return n}function Sr(e){let t={};for(let n=0;n<e.length;n++)t[e[n].toUpperCase()]=e[n];return t}function Cr(e){return e.toLowerCase()}function wr(e,t){return typeof e==`string`?Cr(t).includes(Cr(e)):!1}function Tr(e){return typeof e==`string`?e.replace(/[^\d.]/g,Jn).split(`.`)[0]:void 0}function Er(e,t){let n=e.replace(/^\s+/,Jn);return t===void 0?n:n.substring(0,t)}function Dr(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];typeof i==`function`?r[e]=i(t,void 0,r):r[e]=i}else if(i===3){let i=n[1],a=n[2];typeof i==`function`&&!(`exec`in i)&&!(`test`in i)?r[e]=t?i(t,a,r):void 0:r[e]=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 Or(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(wr(r[t],e))return n===Yn?void 0:n}else if(wr(r,e))return n===Yn?void 0:n}return e}var kr={"1.0":`/8`,"1.2":`/1`,"1.3":`/3`,"2.0":`/412`,"2.0.2":`/416`,"2.0.3":`/417`,"2.0.4":`/419`,"?":`/`},Ar={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`},jr={browser:[[/\b(?:crmo|crios)\/([\w.]+)/i],[H,[z,`Chrome`]],[/edg(?:e|ios|a)?\/([\w.]+)/i],[H,[z,`Edge`]],[/(opera mini)\/([-\w.]+)/i,/(opera [mobileta]{3,6})\b.+version\/([-\w.]+)/i,/(opera)(?:.+version\/|[/ ]+)([\w.]+)/i],[z,H],[/opios[/ ]+([\w.]+)/i],[H,[z,`${fr} Mini`]],[/\bop(?:rg)?x\/([\w.]+)/i],[H,[z,`${fr} GX`]],[/\bopr\/([\w.]+)/i],[H,[z,fr]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[/ ]?([\w.]+)/i],[H,[z,`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],[z,H],[/\bddg\/([\w.]+)/i],[H,[z,`DuckDuckGo`]],[/(?:\buc? ?browser|juc.+ucweb)[/ ]?([\w.]+)/i],[H,[z,`UC${J}`]],[/microm.+\bqbcore\/([\w.]+)/i,/\bqbcore\/([\w.]+).+microm/i,/micromessenger\/([\w.]+)/i],[H,[z,`WeChat`]],[/konqueror\/([\w.]+)/i],[H,[z,`Konqueror`]],[/trident.+rv[: ]([\w.]{1,9})\b.+like gecko/i],[H,[z,`IE`]],[/ya(?:search)?browser\/([\w.]+)/i],[H,[z,`Yandex`]],[/slbrowser\/([\w.]+)/i],[H,[z,`Smart Lenovo ${J}`]],[/(avast|avg)\/([\w.]+)/i],[[z,/(.+)/,`$1 Secure ${J}`],H],[/\bfocus\/([\w.]+)/i],[H,[z,`${or} Focus`]],[/\bopt\/([\w.]+)/i],[H,[z,`${fr} Touch`]],[/coc_coc\w+\/([\w.]+)/i],[H,[z,`Coc Coc`]],[/dolfin\/([\w.]+)/i],[H,[z,`Dolphin`]],[/coast\/([\w.]+)/i],[H,[z,`${fr} Coast`]],[/miuibrowser\/([\w.]+)/i],[H,[z,`MIUI ${J}`]],[/fxios\/([-\w.]+)/i],[H,[z,or]],[/\bqihu|(qi?ho{0,2}|360)browser/i],[[z,`360 ${J}`]],[/(oculus|sailfish|huawei|vivo)browser\/([\w.]+)/i],[[z,/(.+)/,`$1 ${J}`],H],[/samsungbrowser\/([\w.]+)/i],[H,[z,`${pr} Internet`]],[/(comodo_dragon)\/([\w.]+)/i],[[z,/_/g,` `],H],[/metasr[/ ]?([\d.]+)/i],[H,[z,`Sogou Explorer`]],[/(sogou)mo\w+\/([\d.]+)/i],[[z,`Sogou Mobile`],H],[/(electron)\/([\w.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w.]+))/i,/m?(qqbrowser|2345Explorer)[/ ]?([\w.]+)/i],[z,H],[/(lbbrowser)/i,/\[(linkedin)app\]/i],[z],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w.]+);)/i],[[z,vr],H],[/(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],[z,H],[/\bgsa\/([\w.]+) .*safari\//i],[H,[z,`GSA`]],[/musical_ly(?:.+app_?version\/|_)([\w.]+)/i],[H,[z,`TikTok`]],[/headlesschrome(?:\/([\w.]+)| )/i],[H,[z,`${ir} Headless`]],[/ wv\).+(chrome)\/([\w.]+)/i],[[z,`${ir} WebView`],H],[/droid.+ version\/([\w.]+)\b.+(?:mobile safari|safari)/i],[H,[z,`Android ${J}`]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w.]+)/i],[z,H],[/version\/([\w.,]+) .*mobile\/\w+ (safari)/i],[H,[z,`Mobile Safari`]],[/version\/([\w(.|,)]+) .*(mobile ?safari|safari)/i],[H,z],[/webkit.+?(mobile ?safari|safari)(\/[\w.]+)/i],[z,[H,Or,kr]],[/(webkit|khtml)\/([\w.]+)/i],[z,H],[/(navigator|netscape\d?)\/([-\w.]+)/i],[[z,`Netscape`],H],[/mobile vr; rv:([\w.]+)\).+firefox/i],[H,[z,`${or} 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],[z,H],[/(cobalt)\/([\w.]+)/i],[z,[H,/master.|lts./,``]]],cpu:[[/(amd|x(?:(?:86|64)[-_])?|wow|win)64[;)]/i],[[U,`amd64`]],[/(ia32(?=;))/i],[[U,Cr]],[/((?:i[346]|x)86)[;)]/i],[[U,`ia32`]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[U,`arm64`]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[U,`armhf`]],[/windows (ce|mobile); ppc;/i],[[U,`arm`]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[U,/ower/,Jn,Cr]],[/(sun4\w)[;)]/i],[[U,`sparc`]],[/(avr32|ia64(?=;)|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[U,Cr]]],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],[R,[V,pr],[B,G]],[/\b((?:s[cgp]h|gt|sm)-\w+|sc[g-]?\d+a?|galaxy nexus)/i,/samsung[- ]([-\w]+)/i,/sec-(sgh\w+)/i],[R,[V,pr],[B,W]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[R,[V,tr],[B,W]],[/\((ipad);[-\w),; ]+apple/i,/applecoremedia\/[\w.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[R,[V,tr],[B,G]],[/(macintosh);/i],[R,[V,tr]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[R,[V,mr],[B,W]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[R,[V,cr],[B,G]],[/(?:huawei|honor)([-\w ]+)[;)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][0-359c][adn]?)\b(?!.+d\/s)/i],[R,[V,cr],[B,W]],[/\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],[[R,/_/g,` `],[V,gr],[B,W]],[/oid[^)]+; (2\d{4}(283|rpbf)[cgl])( bui|\))/i,/\b(mi[-_ ]?pad[\w ]+)(?: bui|\))/i],[[R,/_/g,` `],[V,gr],[B,G]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[R,[V,`OPPO`],[B,W]],[/\b(opd2\d{3}a?) bui/i],[R,[V,`OPPO`],[B,G]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[R,[V,`Vivo`],[B,W]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[R,[V,`Realme`],[B,W]],[/\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],[R,[V,dr],[B,W]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[R,[V,dr],[B,G]],[/((?=lg)?[vl]k-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[R,[V,lr],[B,G]],[/(lm(?:-?f100[nv]?|-[\w.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?(\w+) bui/i],[R,[V,lr],[B,W]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab[\w ]+|yt[-\w]{6}|tb[-\w]{6})/i],[R,[V,`Lenovo`],[B,G]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w.]*)/i],[[R,/_/g,` `],[V,`Nokia`],[B,W]],[/(pixel c)\b/i],[R,[V,sr],[B,G]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[R,[V,sr],[B,W]],[/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],[R,[V,hr],[B,W]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[R,`Xperia Tablet`],[V,hr],[B,G]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[R,[V,`OnePlus`],[B,W]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[R,[V,er],[B,G]],[/((?:sd|kf)[0349hijor-uw]+)( bui|\)).+silk\//i],[[R,/(.+)/g,`Fire Phone $1`],[V,er],[B,W]],[/(playbook);[-\w),; ]+(rim)/i],[R,V,[B,G]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[R,[V,rr],[B,W]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[R,[V,nr],[B,G]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[R,[V,nr],[B,W]],[/(nexus 9)/i],[R,[V,`HTC`],[B,G]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!;|\.)|sony(?!-bra))[-_ ]?([-\w]*)/i],[V,[R,/_/g,` `],[B,W]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[R,[V,`Acer`],[B,G]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[R,[V,`Meizu`],[B,W]],[/; ((?:power )?armor[\w ]{0,8})(?: bui|\))/i],[R,[V,`Ulefone`],[B,W]],[/(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],[V,R,[B,W]],[/(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],[V,R,[B,G]],[/(surface duo)/i],[R,[V,ur],[B,G]],[/droid [\d.]+; (fp\du?)(?: b|\))/i],[R,[V,`Fairphone`],[B,W]],[/(u304aa)/i],[R,[V,`AT&T`],[B,W]],[/\bsie-(\w*)/i],[R,[V,`Siemens`],[B,W]],[/\b(rct\w+) b/i],[R,[V,`RCA`],[B,G]],[/\b(venue[\d ]{2,7}) b/i],[R,[V,`Dell`],[B,G]],[/\b(q(?:mv|ta)\w+) b/i],[R,[V,`Verizon`],[B,G]],[/\b(?:barnes[& ]+noble |bn[rt])([\w+ ]*) b/i],[R,[V,`Barnes & Noble`],[B,G]],[/\b(tm\d{3}\w+) b/i],[R,[V,`NuVision`],[B,G]],[/\b(k88) b/i],[R,[V,`ZTE`],[B,G]],[/\b(nx\d{3}j) b/i],[R,[V,`ZTE`],[B,W]],[/\b(gen\d{3}) b.+49h/i],[R,[V,`Swiss`],[B,W]],[/\b(zur\d{3}) b/i],[R,[V,`Swiss`],[B,G]],[/\b((zeki)?tb.*\b) b/i],[R,[V,`Zeki`],[B,G]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[V,`Dragon Touch`],R,[B,G]],[/\b(ns-?\w{0,9}) b/i],[R,[V,`Insignia`],[B,G]],[/\b((nxa|next)-?\w{0,9}) b/i],[R,[V,`NextBook`],[B,G]],[/\b(xtreme_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[V,`Voice`],R,[B,W]],[/\b(lvtel-)?(v1[12]) b/i],[[V,`LvTel`],R,[B,W]],[/\b(ph-1) /i],[R,[V,`Essential`],[B,W]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[R,[V,`Envizen`],[B,G]],[/\b(trio[-\w. ]+) b/i],[R,[V,`MachSpeed`],[B,G]],[/\btu_(1491) b/i],[R,[V,`Rotor`],[B,G]],[/(shield[\w ]+) b/i],[R,[V,`Nvidia`],[B,G]],[/(sprint) (\w+)/i],[V,R,[B,W]],[/(kin\.[onetw]{3})/i],[[R,/\./g,` `],[V,ur],[B,W]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[R,[V,_r],[B,G]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[R,[V,_r],[B,W]],[/smart-tv.+(samsung)/i],[V,[B,K]],[/hbbtv.+maple;(\d+)/i],[[R,/^/,`SmartTV`],[V,pr],[B,K]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[V,lr],[B,K]],[/(apple) ?tv/i],[V,[R,`${tr} TV`],[B,K]],[/crkey/i],[[R,`${ir}cast`],[V,sr],[B,K]],[/droid.+aft(\w+)( bui|\))/i],[R,[V,er],[B,K]],[/\(dtv[);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[R,[V,mr],[B,K]],[/(bravia[\w ]+)( bui|\))/i],[R,[V,hr],[B,K]],[/(mitv-\w{5}) bui/i],[R,[V,gr],[B,K]],[/Hbbtv.*(technisat) (.*);/i],[V,R,[B,K]],[/\b(roku)[\dx]*[)/]((?:dvp-)?[\d.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w+ ]*; *(\w[^;]*);([^;]*)/i],[[V,Er],[R,Er],[B,K]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[B,K]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[V,R,[B,Zn]],[/droid.+; (shield) bui/i],[R,[V,`Nvidia`],[B,Zn]],[/(playstation [345portablevi]+)/i],[R,[V,hr],[B,Zn]],[/\b(xbox(?: one)?(?!; xbox))[); ]/i],[R,[V,ur],[B,Zn]],[/((pebble))app/i],[V,R,[B,q]],[/(watch)(?: ?os[,/]|\d,\d\/)[\d.]+/i],[R,[V,tr],[B,q]],[/droid.+; (glass) \d/i],[R,[V,sr],[B,q]],[/droid.+; (wt63?0{2,3})\)/i],[R,[V,_r],[B,q]],[/(quest( \d| pro)?)/i],[R,[V,vr],[B,q]],[/(tesla)(?: qtcarbrowser|\/[-\w.]+)/i],[V,[B,Qn]],[/(aeobc)\b/i],[R,[V,er],[B,Qn]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i],[R,[B,W]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[R,[B,G]],[/\b((tablet|tab)[;/]|focus\/\d(?!.+mobile))/i],[[B,G]],[/(phone|mobile(?:[;/]| [ \w/.]*safari)|pda(?=.+windows ce))/i],[[B,W]],[/(android[-\w. ]{0,9});.+buil/i],[R,[V,`Generic`]]],engine:[[/windows.+ edge\/([\w.]+)/i],[H,[z,`${ar}HTML`]],[/webkit\/537\.36.+chrome\/(?!27)([\w.]+)/i],[H,[z,`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],[z,H],[/rv:([\w.]{1,9})\b.+(gecko)/i],[H,z]],os:[[/microsoft (windows) (vista|xp)/i],[z,H],[/(windows (?:phone(?: os)?|mobile))[/ ]?([.\w ]*)/i],[z,[H,Or,Ar]],[/windows nt 6\.2; (arm)/i,/windows[/ ]?([ntce\d. ]+\w)(?!.+xbox)/i,/(?:win(?=[39n])|win 9x )([nt\d.]+)/i],[[H,Or,Ar],[z,`Windows`]],[/ip[honead]{2,4}\b(?:.*os (\w+) like mac|; opera)/i,/(?:ios;fbsv\/|iphone.+ios[/ ])([\d.]+)/i,/cfnetwork\/.+darwin/i],[[H,/_/g,`.`],[z,`iOS`]],[/(mac os x) ?([\w. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[z,br],[H,/_/g,`.`]],[/droid ([\w.]+)\b.+(android[- ]x86|harmonyos)/i],[H,z],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-/ ]?([\w.]*)/i,/(blackberry)\w*\/([\w.]*)/i,/(tizen|kaios)[/ ]([\w.]+)/i,/\((series40);/i],[z,H],[/\(bb(10);/i],[H,[z,rr]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-/ ]?([\w.]*)/i],[H,[z,`Symbian`]],[/mozilla\/[\d.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w.]+)/i],[H,[z,`${or} OS`]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w.]+)/i],[H,[z,`webOS`]],[/watch(?: ?os[,/]|\d,\d\/)([\d.]+)/i],[H,[z,`watchOS`]],[/crkey\/([\d.]+)/i],[H,[z,`${ir}cast`]],[/(cros) \w+(?:\)| ([\w.]+)\b)/i],[[z,yr],H],[/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],[z,H],[/(sunos) ?([\w.]*)/i],[[z,`Solaris`],H],[/((?:open)?solaris)[-/ ]?([\w.]*)/i,/(aix) ((\d)(?=[.) ])[\w.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\w.]*)/i],[z,H]]};function Mr(e){return typeof e==`object`&&!!e}Object.freeze(Sr([z,H,Xn])),Object.freeze(Sr([U])),Object.freeze(Sr([R,V,B,Zn,W,K,G,q,Qn])),Object.freeze(Sr([z,H])),Object.freeze(Sr([z,H]));function Nr(){if(!(typeof window>`u`||!window.navigator))return window.navigator}function Pr(e){return e.length>$n?Er(e,$n):e}function Fr(e){if(typeof e==`string`)return{ua:Pr(e),isSelfNavigator:!1,navigator:void 0,userAgentData:void 0,regexMap:jr};let t=Nr(),n=Pr(t&&t.userAgent?t.userAgent:Jn);return{ua:n,isSelfNavigator:!!(t&&t.userAgent===n),navigator:t,userAgentData:t?.userAgentData,regexMap:jr}}function Ir(e,t){if(!t&&!Mr(e))return Fr(e);let n=Nr(),r=Mr(e)?void 0:e,i=Mr(e)?e:t,a=Pr(r||(n&&n.userAgent?n.userAgent:Jn)),o=n?.userAgentData;return{ua:a,isSelfNavigator:!!(n&&n.userAgent===a),navigator:n,userAgentData:o,regexMap:i?xr(jr,i):jr}}function Lr(e){let t={name:void 0,version:void 0,major:void 0};return Dr(e.ua,e.regexMap.browser,t),t.major=Tr(t.version),e.isSelfNavigator&&e.navigator?.brave&&typeof e.navigator.brave.isBrave==`function`&&(t.name=`Brave`),t}function Rr(e){let t={architecture:void 0};return Dr(e.ua,e.regexMap.cpu,t),t}function zr(e){let t={vendor:void 0,model:void 0,type:void 0};return Dr(e.ua,e.regexMap.device,t),e.isSelfNavigator&&!t.type&&e.userAgentData?.mobile&&(t.type=W),e.isSelfNavigator&&t.model===`Macintosh`&&e.navigator&&e.navigator.standalone!==void 0&&e.navigator.maxTouchPoints&&e.navigator.maxTouchPoints>2&&(t.model=`iPad`,t.type=G),t}function Br(e){let t={name:void 0,version:void 0};return Dr(e.ua,e.regexMap.engine,t),t}function Vr(e){let t={name:void 0,version:void 0};return Dr(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,yr).replace(/macos/i,br)),t}function Hr(e,t){let n,r,i,a,o,s,c=()=>n||=Ir(e,t);return{get ua(){return c().ua},get browser(){return r||=Lr(c()),r},get engine(){return i||=Br(c()),i},get os(){return a||=Vr(c()),a},get device(){return o||=zr(c()),o},get cpu(){return s||=Rr(c()),s}}}var Y=class extends Error{name=`DevframeConnectionError`;kind;constructor(e,t,n){super(t,n),this.kind=e}};function Ur(e,t,n){let r=n.protocol===`https:`?`wss:`:`ws:`,i=(()=>{try{return new URL(t,n.href)}catch{return new URL(n.href)}})();if(e&&typeof e==`object`){if(e.host!=null||e.port!=null){let t=e.host??`${n.hostname}:${e.port}`,i=new URL(e.path??`/`,`${r}//${t}`);return i.protocol=r,i.href}let t=new URL(e.path??``,i);return t.protocol=r,t.href}if(typeof e==`number`)return`${r}//${n.hostname}:${e}`;let a=e??``;if(/^wss?:\/\//i.test(a))return a;if(/^https?:\/\//i.test(a))return Ee(a,/^https/i.test(a)?`wss://`:`ws://`);let o=new URL(a,i);return o.protocol=r,o.href}function Wr(e){let{authToken:t,connectionMeta:n,metaBaseUrl:r,events:i,clientRpc:a,rpcOptions:o={},wsOptions:s={},callTimeout:c=0}=e,l=!1,u=`connecting`,d=null,f=qn(),p=Ur(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 Y(`connection`,`[devframe] Not connected to the devframe server`,{cause:d??void 0}):u===`unauthorized`?new Y(`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 Y(`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=Un(a.functions,{channel:Kn({url:p,authToken:t,definitions:y,...s,onConnected(e){s.onConnected?.(e)},onError(e){m(`error`,e),i.emit(`connection:error`,e),g(new Y(`connection`,`[devframe] Connection to the devframe server failed`,{cause:e})),s.onError?.(e)},onDisconnected(e){u!==`error`&&m(`disconnected`),g(new Y(`connection`,`[devframe] Disconnected from the devframe server`,{cause:d??void 0})),s.onDisconnected?.(e)}}),rpcOptions:o});a.register({name:`devframe:auth:revoked`,type:`event`,handler:()=>{l=!1;let e=new Y(`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 x=t;function ee(){let e=Hr(navigator.userAgent);return[e.browser.name,e.browser.version,`|`,e.os.name,e.os.version,e.device.type].filter(e=>e).join(` `)}async function te(e){x=e;let t=await b.$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 Y(`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 ne(e){let t=(await b.$call(`anonymous:devframe:auth:exchange`,{code:e,ua:ee(),origin:location.origin}))?.authToken??null;return t&&(x=t,l=!0,f.resolve(!0),m(`connected`),i.emit(`rpc:is-trusted:updated`,!0)),t}async function S(){return l?!0:te(x??``)}async function re(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:S,requestTrustWithToken:te,requestTrustWithCode:ne,ensureTrusted:re,call:(...e)=>{let t=String(e[0]),n=_();return n?(i.emit(`rpc:error`,n,t),Promise.reject(n)):v(b.$call(...e),t)},callEvent:(...e)=>{let t=_();if(t){i.emit(`rpc:error`,t,String(e[0]));return}return b.$callEvent(...e)},callOptional:(...e)=>{let t=String(e[0]),n=_();return n?(i.emit(`rpc:error`,n,t),Promise.reject(n)):v(b.$callOptional(...e),t)}}}function Gr(e){return e.includes(`:`)}function X(e,t){return Gr(t)?t:`${e}:${t}`}function Kr(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 qr(e,t){return{global:Kr(e,t,`global`),project:Kr(e,t,`project`)}}function Jr(e,t){return{namespace:t,base:e,rpc:{namespace:t,register(n){if(Gr(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(X(t,n),...r)),callEvent:((n,...r)=>e.callEvent(X(t,n),...r)),callOptional:((n,...r)=>e.callOptional(X(t,n),...r)),sharedState:((n,r)=>e.sharedState.get(X(t,n),r)),streaming:{subscribe:(n,r,i)=>e.streaming.subscribe(X(t,n),r,i),upload:(n,r)=>e.streaming.upload(X(t,n),r)}},settings:qr(e,t),scope:e.scope}}var Yr=`__DEVFRAME_CONNECTION_META__`,Z=`__DEVFRAME_CONNECTION_AUTH_TOKEN__`;function Xr(e){let t=[()=>e,()=>localStorage.getItem(Z)??void 0,()=>window?.[Z],()=>globalThis?.[Z],()=>parent.window?.[Z]];for(let e of t)try{let t=e();if(t)return t}catch{}}function Zr(e){try{localStorage.setItem(Z,e)}catch{}globalThis[Z]=e}function Qr(){let e=[()=>window?.[Yr],()=>globalThis?.[Yr],()=>parent.window?.[Yr]];for(let t of e)try{let e=t();if(e)return e}catch{}}async function $r(t={}){let{baseURL:n=`./`,rpcOptions:r={},cacheOptions:i=!1}=t,a=fe(),o=Array.isArray(n)?n:[n],s=t.connectionMeta||Qr(),c=o[0]??`./`,l=t.connectionMeta?void 0:s?.baseUrl;function u(){if(l)return l;let t=Se(e,c);try{return new URL(t,globalThis.location?.href).href}catch{return t}}if(!s){let t=[];for(let n of o)try{s=await fetch(Se(e,n)).then(e=>e.json()),c=n,globalThis[Yr]={...s,baseUrl:u()};break}catch(e){t.push(e)}if(!s)throw Error(`Failed to get connection meta from ${o.join(`, `)}`,{cause:t})}let d=new se({functions:[],...typeof t.cacheOptions==`object`?t.cacheOptions:{}}),f={rpc:void 0},p=Xr(t.authToken||s.authToken);p&&Zr(p);let m=new ce(f);async function h(e){let t=[c,...o.filter(e=>e!==c)].filter(e=>e!=null),n=[];for(let r of t)try{return await fetch(Se(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=s.backend===`static`?await Sn({fetchJsonFromBases:h}):Wr({authToken:p,connectionMeta:s,metaBaseUrl:u(),events:a,clientRpc:m,callTimeout:t.callTimeout,rpcOptions:{...r,async onRequest(e,t,n){if(await r.onRequest?.call(this,e,t,n),i&&d?.validate(e.m)){if(d.has(e.m,e.a))return n(d.cached(e.m,e.a));let r=await t(e);d.apply(e,r)}else await t(e)}},wsOptions:t.wsOptions}),_;try{_=new BroadcastChannel(`devframe-auth`)}catch{}let v={events:a,get isTrusted(){return g.isTrusted},get status(){return g.status},get connectionError(){return g.connectionError},connectionMeta:s,ensureTrusted:g.ensureTrusted,requestTrust:g.requestTrust,requestTrustWithToken:async e=>(Zr(e),g.requestTrustWithToken(e)),requestTrustWithCode:async e=>{let t=await g.requestTrustWithCode(e);if(!t)return!1;Zr(t);try{_?.postMessage({type:`auth-update`,authToken:t})}catch{}return!0},call:g.call,callEvent:g.callEvent,callOptional:g.callOptional,client:m,sharedState:void 0,streaming:void 0,cacheManager:d,scope:void 0};v.sharedState=Xt(v),v.streaming=An(v);let y=new Map;v.scope=(e=>{if(!e)return v;let t=y.get(e);return t||(t=Jr(v,e),y.set(e,t)),t}),f.rpc=v;function b(){try{return typeof window<`u`&&window.self===window.top}catch{return!1}}async function x(){if(!(t.simpleAuth===!1||!b())&&typeof globalThis.prompt==`function`)for(;!v.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 v.requestTrustWithCode(t))return}}async function ee(){let e=await g.requestTrust(),n=t.otpParam??`devframe_otp`,r=n?await Ae(v,{param:n}):!1;e||r||v.isTrusted||await x()}return ee(),_&&(_.onmessage=e=>{e.data?.type===`auth-update`&&e.data.authToken&&v.requestTrustWithToken(e.data.authToken)}),v}var ei=$r,ti=`devframes:plugin:code-server:state`;function Q(...e){return e.filter(Boolean).join(` `)}function ni({variant:e=`primary`,size:t=`md`,class:n}={}){let r={primary:`btn-primary`,secondary:`btn-action`,outline:`btn-action`,ghost:`inline-flex items-center justify-center gap-1.5 rounded px2 py1 op75 hover:op100 hover:bg-active transition disabled:pointer-events-none disabled:op30!`,destructive:`btn-action text-error border-error/30!`,link:`inline-flex items-center gap-1.5 color-active hover:underline underline-offset-2`},i=t===`sm`?e===`primary`?`text-sm px-2.5! py-1!`:`text-sm`:t===`lg`?`text-base px-4! py-2!`:``;return Q(r[e],i,n)}function ri(e){return Q(`color-active hover:underline underline-offset-2`,e)}function ii(e){return Q(`inline-block size-4 rounded-full border-2 border-current border-t-transparent animate-spin`,e)}var ai={connecting:{icon:`i-ph-plugs-connected-duotone`,title:`Connecting…`,body:`Establishing a connection to the devframe server.`},disconnected:{icon:`i-ph-plugs-duotone`,title:`Disconnected`,body:`Lost the connection to the devframe server. Reload once it is back up.`},unauthorized:{icon:`i-ph-lock-key-duotone`,title:`Not authorized`,body:`Reopen the link printed by your dev server, then reload.`},error:{icon:`i-ph-warning-octagon-duotone`,title:`Connection failed`,body:`Could not reach the devframe server.`}};function oi(e){let t=document.createElement(`div`);t.className=`absolute inset-0 flex flex-col items-center justify-center gap-4 bg-base color-base p-8 text-center z-nav`,t.hidden=!0,e.append(t);function n(e,n){if(e===`connected`)return t.hidden=!0,t.replaceChildren(),!1;let r=ai[e];t.replaceChildren();let i=document.createElement(`div`);i.className=Q(r.icon,`text-4xl color-active`),t.append(i);let a=document.createElement(`div`);a.className=`flex flex-col gap-1`;let o=document.createElement(`p`);o.className=`text-lg font-medium`,o.textContent=r.title;let s=document.createElement(`p`);if(s.className=`text-sm color-muted max-w-sm`,s.textContent=r.body,a.append(o,s),n&&e===`error`){let e=document.createElement(`code`);e.className=`mt-1 max-w-sm break-words font-mono text-xs color-faint`,e.textContent=n,a.append(e)}if(t.append(a),e!==`connecting`){let e=document.createElement(`button`);e.type=`button`,e.className=ni({variant:`primary`,size:`sm`}),e.textContent=`Reload`,e.addEventListener(`click`,()=>location.reload()),t.append(e)}return t.hidden=!1,!0}return{update:n,dispose(){t.remove()}}}function si(e){let t=e.ownerDocument?.defaultView;return t?.HTMLIFrameElement?e instanceof t.HTMLIFrameElement:typeof HTMLIFrameElement<`u`?e instanceof HTMLIFrameElement:`src`in e}function ci(e={}){let t=new Map,n=new Map,r=e.maxPanes??1/0,i,a,o=0,s,c=!1,l=0;function u(){let t=e.document??globalThis.document;if(!t)throw Error("[iframe-pane] No document available. Provide `options.document` or run in a DOM environment.");return t}function d(){return u().defaultView}function f(){if(e.container){let t=e.container,n=t.ownerDocument.defaultView?.getComputedStyle(t).position;return(!n||n===`static`)&&(t.style.position=`relative`),t}if(!i){let t=u();i=t.createElement(`div`),i.setAttribute(`data-iframe-panes`,``),Object.assign(i.style,{position:`fixed`,inset:`0`,pointerEvents:`none`}),e.zIndex!=null&&(i.style.zIndex=String(e.zIndex)),t.body.appendChild(i)}return i}function p(){return!a&&typeof ResizeObserver<`u`&&(a=new ResizeObserver(e=>{for(let t of e)n.get(t.target)?.forEach(e=>e.update())})),a}function m(){if(s!=null)return;let e=d();if(!e){h();return}s=e.requestAnimationFrame(()=>{s=void 0,h()})}function h(){for(let e of n.values())for(let t of e)t.update()}let g=()=>m();function _(){let e=d();e&&(n.size>0?(e.addEventListener(`scroll`,g,{capture:!0,passive:!0}),e.addEventListener(`resize`,g,{passive:!0})):(e.removeEventListener(`scroll`,g,{capture:!0}),e.removeEventListener(`resize`,g),s!=null&&(e.cancelAnimationFrame(s),s=void 0)))}function v(e,t){let r=n.get(t);r||(r=new Set,n.set(t,r),p()?.observe(t)),r.add(e),_()}function y(e,t){let r=n.get(t);r&&(r.delete(e),r.size===0&&(n.delete(t),a?.unobserve(t)),_())}function b(e){e.element.style.pointerEvents=o>0?`none`:e.stateStyle.pointerEvents}function x(e){if(t.size<=r)return;let n=[...t.values()].filter(t=>!t.isMounted&&t!==e).sort((e,t)=>e.lastActiveAt-t.lastActiveAt);for(let e of n){if(t.size<=r)break;e.dispose()}}class ee{id;element;styleDefault;styleActive;styleHidden;stateKeys;target=null;isVisible=!1;isDisposed=!1;lastActiveAt=0;constructor(t,n){this.id=t,this.styleDefault={...e.styleDefault,...n.style},this.styleActive={opacity:`1`,pointerEvents:`auto`,...e.styleActive,...n.styleActive},this.styleHidden={opacity:`0.001`,pointerEvents:`none`,...e.styleHidden,...n.styleHidden},this.stateKeys=[...new Set([...Object.keys(this.styleActive),...Object.keys(this.styleHidden)])];let r=u(),i=this.element=n.element??r.createElement(n.tagName??`iframe`);if(i.setAttribute(`data-iframe-pane`,t),Object.assign(i.style,{display:`block`,position:`absolute`,left:`0px`,top:`0px`,border:`0`},this.styleDefault),n.attrs)for(let[e,t]of Object.entries(n.attrs))i.setAttribute(e,t);this.applyState(),n.onCreated?.(i),n.src!=null&&si(i)&&(i.src=n.src),f().appendChild(i)}get iframe(){return si(this.element)?this.element:void 0}get isMounted(){return this.target!=null}get stateStyle(){return this.isVisible?this.styleActive:this.styleHidden}applyState(){let e=this.stateStyle,t={};for(let n of this.stateKeys)n in e||(t[n]=this.styleDefault[n]??``);Object.assign(this.element.style,t,e),o>0&&(this.element.style.pointerEvents=`none`)}touch(){this.lastActiveAt=++l}mount(e){this.assertNotDisposed(),this.target!==e&&(this.target&&y(this,this.target),this.target=e,v(this,e)),this.show()}unmount(){this.target&&=(y(this,this.target),null),this.hide()}show(){this.assertNotDisposed(),this.touch(),this.isVisible=!0,this.applyState(),this.update()}hide(){this.isDisposed||(this.isVisible=!1,this.applyState())}update(){if(this.isDisposed||!this.target||!this.isVisible)return;let e=this.target.getBoundingClientRect(),t=f().getBoundingClientRect();Object.assign(this.element.style,{left:`${e.left-t.left}px`,top:`${e.top-t.top}px`,width:`${e.width}px`,height:`${e.height}px`})}dispose(){this.isDisposed||(this.unmount(),this.isDisposed=!0,this.element.remove(),t.delete(this.id),e.onPaneDisposed?.(this))}assertNotDisposed(){if(this.isDisposed)throw Error(`[iframe-pane] Pane "${this.id}" has been disposed`)}}return{list(){return[...t.values()]},get(e){return t.get(e)},has(e){return t.has(e)},ensure:((n,r={})=>{if(c)throw Error(`[iframe-pane] Manager has been disposed`);let i=t.get(n);return i?i.touch():(i=new ee(n,r),i.touch(),t.set(n,i),e.onPaneCreated?.(i),x(i)),i}),get maxPanes(){return r},set maxPanes(e){r=e,x()},get isPointerLocked(){return o>0},lockPointerEvents(){o++,t.forEach(b);let e=!1;return()=>{e||(e=!0,o--,t.forEach(b))}},updateAll:h,get container(){return e.container??i},get isDisposed(){return c},dispose(){if(!c){c=!0;for(let e of[...t.values()])e.dispose();a?.disconnect(),a=void 0,_(),i?.remove(),i=void 0}}}}var li=`https://coder.com/docs/code-server/latest/install`,ui=`https://github.com/coder/code-server`,di=ci(),fi=0,pi=[{label:`Install script (Linux / macOS)`,command:`curl -fsSL https://code-server.dev/install.sh | sh`},{label:`npm`,command:`npm install -g code-server`},{label:`Homebrew`,command:`brew install code-server`}];function mi(e){let{detection:t,server:n,auth:r,busy:i}=e;return n.status===`running`&&n.port!=null?r?`running`:`starting`:n.status===`starting`||i&&n.status!==`error`?`starting`:t.checked?t.installed?`launch`:`not-installed`:`connecting`}function $(e,t,n){let r=document.createElement(e);return t&&(r.className=t),n!=null&&(r.textContent=n),r}function hi(e,t=``){return $(`span`,Q(e,`shrink-0`,t))}function gi(){let e=$(`p`,`flex items-center gap-1.5 mb-2.5 text-xs tracking-wider uppercase color-muted`);return e.append(hi(`i-ph-code-duotone`,`text-sm`),document.createTextNode(`code-server`)),e}function _i(e){return`${location.protocol}//${location.hostname}:${e}/`}function vi(e){document.cookie=`${e.cookieName}=${e.cookieValue}; path=/; SameSite=Lax`}function yi(e,t={}){let n=t.resolveEditorUrl??_i,r=t.applyAuth??vi,i=()=>t.actions?.launch?.(),a=()=>t.actions?.recheck?.(),o=$(`div`,`absolute inset-0 flex flex-col of-hidden bg-base color-base font-sans`);e.append(o);let s=`code-server-editor-${++fi}`,c=$(`div`,`dcs-frame flex-1 w-full`),l=null;function u(...e){di.get(s)?.unmount(),l=null;let t=$(`div`,`flex-1 flex items-center justify-center p-6`),n=$(`div`,`w-full max-w-[560px]`);n.append(...e),t.append(n),o.replaceChildren(t)}function d(){let e=$(`div`,`flex items-center gap-2.5`);e.append($(`div`,ii(`color-muted`)),$(`span`,`text-sm color-muted`,`Connecting to devframe…`)),u(e)}function f(e){let t=[];t.push(gi()),t.push($(`h1`,`mb-2 text-[1.35rem] font-semibold`,`code-server is not installed`)),t.push($(`p`,`mb-5 text-sm leading-relaxed color-muted`,`Install code-server (VS Code in the browser) to open the editor here. Pick whichever fits your setup, then re-check.`));let n=$(`div`,`flex flex-col gap-3 mb-5`);for(let{label:e,command:t}of pi){let r=$(`div`);r.append($(`label`,`block mb-1 text-xs color-muted`,e));let i=$(`div`,`flex items-center gap-2 px-2.5 py-2 rounded-md border border-base bg-secondary`);i.append($(`code`,`flex-1 of-x-auto whitespace-nowrap font-mono text-xs color-base`,t));let a=$(`button`,ni({variant:`outline`,size:`sm`,class:`shrink-0 text-[11px]`}),`Copy`);a.onclick=()=>{navigator.clipboard?.writeText(t).then(()=>{a.textContent=`Copied`,setTimeout(()=>{a.textContent=`Copy`},1200)}).catch(()=>{})},i.append(a),r.append(i),n.append(r)}t.push(n);let r=$(`div`,`flex flex-wrap items-center gap-2.5`),i=$(`button`,ni({variant:`primary`}));i.append(hi(`i-ph-arrows-clockwise`,Q(`size-4`,e&&`animate-spin`)),document.createTextNode(e?`Checking…`:`Re-check`)),i.disabled=e,i.onclick=a,r.append(i),r.append(g(`Installation docs`,li)),r.append(g(`GitHub`,ui)),t.push(r),u(...t)}function p(e){let{detection:t,server:n,busy:r}=e,a=[];a.push(gi()),a.push($(`h1`,`mb-2 text-[1.35rem] font-semibold`,`Launch the editor`)),a.push($(`p`,`mb-5 text-sm leading-relaxed color-muted`,`Start a code-server instance scoped to this workspace and open VS Code right here. The server runs with a generated password and the editor is signed in automatically.`)),n.status===`error`&&n.error&&a.push($(`div`,`mb-4 px-3 py-2.5 rounded-md border border-error/35 bg-error/10 text-error text-sm whitespace-pre-wrap break-words`,n.error));let o=$(`div`,`flex flex-wrap gap-x-4 gap-y-1.5 mb-5 text-xs color-muted`);if(t.version){let e=$(`span`);e.append(document.createTextNode(`version `),$(`code`,`font-mono color-base`,t.version)),o.append(e)}let s=$(`span`);s.append(document.createTextNode(`binary `),$(`code`,`font-mono color-base`,t.bin)),o.append(s),a.push(o);let c=$(`div`,`flex flex-wrap items-center gap-2.5`),l=$(`button`,ni({variant:`primary`}));r?l.append($(`span`,ii()),document.createTextNode(`Starting…`)):l.append(hi(`i-ph-rocket-launch-duotone`,`size-4`),document.createTextNode(`Launch code-server`)),l.disabled=r??!1,l.onclick=i,c.append(l),a.push(c),u(...a)}function m(){let e=$(`div`,`flex items-center gap-2.5`);e.append($(`div`,ii(`color-muted`)),$(`span`,`text-sm color-muted`,`Starting code-server…`)),u(e)}function h(e){let t=n(e.server.port);l!==t&&(e.auth&&r(e.auth),l=t);let i=di.ensure(s,{src:t,attrs:{allow:`clipboard-read; clipboard-write; cross-origin-isolated`},style:{border:`0`}});i.iframe.src!==t&&(i.iframe.src=t),o.firstElementChild!==c&&o.replaceChildren(c),i.mount(c)}function g(e,t){let n=$(`a`,ri(`inline-flex items-center gap-1 text-sm`));return n.append(document.createTextNode(e),hi(`i-ph-arrow-square-out`,`size-3.5`)),n.href=t,n.target=`_blank`,n.rel=`noreferrer`,n}function _(e){switch(mi(e)){case`running`:h(e);break;case`starting`:m();break;case`connecting`:d();break;case`not-installed`:f(e.busy??!1);break;case`launch`:p(e);break}}return{update:_,dispose(){di.get(s)?.dispose(),o.remove()}}}async function bi(e,t={}){let n=t.rpc??await ei();n.connectionMeta.backend===`websocket`&&await n.ensureTrusted(5e3).catch(()=>{}),e.style.position||(e.style.position=`relative`);let r=oi(e),i=()=>{r.update(n.status,n.connectionError?.message)};i();let a=n.events.on(`connection:status`,i),o={checked:!1,installed:!1,bin:`code-server`},s={status:`stopped`},c,l=!1,u=!1,d=yi(e,{actions:{launch:h,recheck:_}});function f(){u||d.update({detection:o,server:s,auth:c,busy:l})}function p(e){o=e.detection,s=e.server,e.auth&&(c=e.auth)}async function m(e,...t){try{return await n.call(e,...t)}catch(e){s={status:`error`,error:e instanceof Error?e.message:String(e)};return}}async function h(){if(l)return;l=!0,f();let e=await m(`devframes:plugin:code-server:start`,{});e&&p(e),l=!1,f()}async function g(){if(l)return;l=!0,f();let e=await m(`devframes:plugin:code-server:stop`);e&&p(e),c=void 0,l=!1,f()}async function _(){l||(l=!0,f(),await m(`devframes:plugin:code-server:detect`),l=!1,f())}f();let v=await m(`devframes:plugin:code-server:status`);v&&p(v),f();let y=await n.sharedState.get(ti,{initialValue:{detection:o,server:s}}),b=y.value();o=b.detection??o,s=b.server??s;let x=y.on(`updated`,e=>{if(o=e.detection??o,s=e.server??s,s.status===`running`&&!c){m(`devframes:plugin:code-server:status`).then(e=>{e?.auth&&(c=e.auth),f()});return}f()});return f(),{rpc:n,stop:g,dispose(){u=!0,x?.(),a?.(),r.dispose(),d.dispose()}}}var xi=document.getElementById(`app`);if(!xi)throw Error(`#app mount node missing from index.html`);bi(xi).catch(e=>{xi.textContent=`Failed to connect: ${e instanceof Error?e.message:String(e)}`});
@@ -0,0 +1 @@
1
+ @supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--un-bg-opacity:100%;--un-border-opacity:100%;--un-leading:initial;--un-ring-opacity:100%;--un-text-opacity:100%}}@property --un-text-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-leading{syntax:"*";inherits:false}@property --un-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --un-border-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-bg-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-ring-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-inset-ring-color{syntax:"*";inherits:false}@property --un-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-inset-shadow-color{syntax:"*";inherits:false}@property --un-ring-color{syntax:"*";inherits:false}@property --un-ring-inset{syntax:"*";inherits:false}@property --un-ring-offset-color{syntax:"*";inherits:false}@property --un-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --un-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-shadow-color{syntax:"*";inherits:false}:root,:host{--radius-md:.375rem;--spacing:.25rem;--colors-white:#fff;--text-xs-fontSize:.75rem;--text-xs-lineHeight:1rem;--colors-neutral-800:oklch(26.9% 0 0);--colors-neutral-200:oklch(92.2% 0 0);--tracking-wider:.05em;--font-sans:DM Sans,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--fontWeight-semibold:600;--leading-relaxed:1.625;--font-mono:DM Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--colors-error-DEFAULT:#f63d68;--fontWeight-medium:500;--container-sm:24rem;--radius-DEFAULT:.25rem;--default-transition-timingFunction:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--radius-lg:.5rem;--radius-xl:.75rem;--colors-success-DEFAULT:#12b76a;--colors-neutral-400:oklch(70.8% 0 0);--text-sm-fontSize:.875rem;--text-sm-lineHeight:1.25rem;--text-4xl-fontSize:2.25rem;--text-4xl-lineHeight:2.5rem;--text-lg-fontSize:1.125rem;--text-lg-lineHeight:1.75rem;--text-base-fontSize:1rem;--text-base-lineHeight:1.5rem;--colors-primary-500:#578861;--leading-none:1;--colors-blue-400:oklch(70.7% .165 254.624);--colors-amber-400:oklch(82.8% .189 84.429);--colors-green-400:oklch(79.2% .209 151.711);--colors-red-400:oklch(70.4% .191 22.216);--colors-sky-400:oklch(74.6% .16 232.661);--colors-violet-400:oklch(70.2% .183 293.541);--colors-rose-400:oklch(71.2% .194 13.428);--colors-teal-400:oklch(77.7% .152 181.912);--colors-orange-400:oklch(75% .183 55.934);--colors-emerald-400:oklch(76.5% .177 163.223);--colors-primary-DEFAULT:#3a6a45;--colors-neutral-600:oklch(43.9% 0 0);--colors-primary-600:#40704b;--colors-neutral-500:oklch(55.6% 0 0);--colors-blue-700:oklch(48.8% .243 264.376);--colors-blue-600:oklch(54.6% .245 262.881);--colors-amber-700:oklch(55.5% .163 48.998);--colors-amber-600:oklch(66.6% .179 58.318);--colors-green-700:oklch(52.7% .154 150.069);--colors-green-600:oklch(62.7% .194 149.214);--colors-red-700:oklch(50.5% .213 27.518);--colors-red-600:oklch(57.7% .245 27.325);--colors-sky-700:oklch(50% .134 242.749);--colors-sky-600:oklch(58.8% .158 241.966);--colors-violet-700:oklch(49.1% .27 292.581);--colors-violet-600:oklch(54.1% .281 293.009);--colors-rose-700:oklch(51.4% .222 16.935);--colors-rose-600:oklch(58.6% .253 17.585);--colors-teal-700:oklch(51.1% .096 186.391);--colors-teal-600:oklch(60% .118 184.704);--colors-orange-700:oklch(55.3% .195 38.402);--colors-orange-600:oklch(64.6% .222 41.116);--colors-emerald-700:oklch(50.8% .118 165.612);--colors-emerald-600:oklch(59.6% .145 163.225);--colors-primary-300:#93c69d;--colors-blue-300:oklch(80.9% .105 251.813);--colors-amber-300:oklch(87.9% .169 91.605);--colors-green-300:oklch(87.1% .15 154.449);--colors-red-300:oklch(80.8% .114 19.571);--colors-sky-300:oklch(82.8% .111 230.318);--colors-violet-300:oklch(81.1% .111 293.571);--colors-rose-300:oklch(81% .117 11.638);--colors-teal-300:oklch(85.5% .138 181.071);--colors-orange-300:oklch(83.7% .128 66.29);--colors-emerald-300:oklch(84.5% .143 164.978);--colors-primary-400:#75a67e;--default-font-family:var(--font-sans);--default-monoFont-family:var(--font-mono)}*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-featureSettings,normal);font-variation-settings:var(--default-font-variationSettings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-monoFont-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-monoFont-featureSettings,normal);font-variation-settings:var(--default-monoFont-variationSettings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden~=until-found])){display:none!important}*,:before,:after{border-color:#8882}.i-ph-arrow-square-out{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M224 104a8 8 0 0 1-16 0V59.32l-66.33 66.34a8 8 0 0 1-11.32-11.32L196.68 48H152a8 8 0 0 1 0-16h64a8 8 0 0 1 8 8Zm-40 24a8 8 0 0 0-8 8v72H48V80h72a8 8 0 0 0 0-16H48a16 16 0 0 0-16 16v128a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-72a8 8 0 0 0-8-8'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-arrows-clockwise{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M224 48v48a8 8 0 0 1-8 8h-48a8 8 0 0 1 0-16h28.69l-14.63-14.63a79.56 79.56 0 0 0-56.13-23.43h-.45a79.52 79.52 0 0 0-55.89 22.77a8 8 0 0 1-11.18-11.44a96 96 0 0 1 135 .79L208 76.69V48a8 8 0 0 1 16 0m-37.59 135.29a80 80 0 0 1-112.47-.66L59.31 168H88a8 8 0 0 0 0-16H40a8 8 0 0 0-8 8v48a8 8 0 0 0 16 0v-28.69l14.63 14.63A95.43 95.43 0 0 0 130 222.06h.53a95.36 95.36 0 0 0 67.07-27.33a8 8 0 0 0-11.18-11.44Z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-code-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='m240 128l-48 40H64l-48-40l48-40h128Z' opacity='.2'/%3E%3Cpath d='M69.12 94.15L28.5 128l40.62 33.85a8 8 0 1 1-10.24 12.29l-48-40a8 8 0 0 1 0-12.29l48-40a8 8 0 0 1 10.24 12.3m176 27.7l-48-40a8 8 0 1 0-10.24 12.3L227.5 128l-40.62 33.85a8 8 0 1 0 10.24 12.29l48-40a8 8 0 0 0 0-12.29m-82.39-89.37a8 8 0 0 0-10.25 4.79l-64 176a8 8 0 0 0 4.79 10.26A8.1 8.1 0 0 0 96 224a8 8 0 0 0 7.52-5.27l64-176a8 8 0 0 0-4.79-10.25'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-lock-key-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M208 88H48a8 8 0 0 0-8 8v112a8 8 0 0 0 8 8h160a8 8 0 0 0 8-8V96a8 8 0 0 0-8-8m-80 72a20 20 0 1 1 20-20a20 20 0 0 1-20 20' opacity='.2'/%3E%3Cpath d='M208 80h-32V56a48 48 0 0 0-96 0v24H48a16 16 0 0 0-16 16v112a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16V96a16 16 0 0 0-16-16M96 56a32 32 0 0 1 64 0v24H96Zm112 152H48V96h160zm-80-96a28 28 0 0 0-8 54.83V184a8 8 0 0 0 16 0v-17.17a28 28 0 0 0-8-54.83m0 40a12 12 0 1 1 12-12a12 12 0 0 1-12 12'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-plugs-connected-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='m185 127l-58 58a24 24 0 0 1-33.94 0L71 162.91A24 24 0 0 1 71 129l58-58a24 24 0 0 1 33.94 0L185 93.09a24 24 0 0 1 0 33.91' opacity='.2'/%3E%3Cpath d='M237.66 18.34a8 8 0 0 0-11.32 0l-52.4 52.41l-5.37-5.38a32.05 32.05 0 0 0-45.26 0L100 88.69l-6.34-6.35a8 8 0 0 0-11.32 11.32l6.35 6.34l-23.32 23.31a32 32 0 0 0 0 45.26l5.38 5.37l-52.41 52.4a8 8 0 0 0 11.32 11.32l52.4-52.41l5.37 5.38a32.06 32.06 0 0 0 45.26 0L156 167.31l6.34 6.35a8 8 0 0 0 11.32-11.32l-6.35-6.34l23.32-23.31a32 32 0 0 0 0-45.26l-5.38-5.37l52.41-52.4a8 8 0 0 0 0-11.32m-116.29 161a16 16 0 0 1-22.62 0l-22.06-22.09a16 16 0 0 1 0-22.62L100 111.31L144.69 156Zm57.94-57.94L156 144.69L111.31 100l23.32-23.31a16 16 0 0 1 22.62 0l22.06 22a16 16 0 0 1 0 22.63ZM88.57 35a8 8 0 0 1 14.86-6l8 20a8 8 0 0 1-14.86 6Zm-64 58A8 8 0 0 1 35 88.57l20 8a8 8 0 0 1-6 14.86l-20-8A8 8 0 0 1 24.57 93m206.86 70a8 8 0 0 1-10.4 4.46l-20-8a8 8 0 1 1 5.97-14.89l20 8a8 8 0 0 1 4.43 10.43m-64 58.06a8 8 0 0 1-14.86 5.94l-8-20a8 8 0 0 1 14.86-6Z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-plugs-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='m76 124l56 56l-29 29a24 24 0 0 1-33.94 0L47 186.91A24 24 0 0 1 47 153Zm133-54.91L186.91 47A24 24 0 0 0 153 47l-29 29l56 56l29-29a24 24 0 0 0 0-33.91' opacity='.2'/%3E%3Cpath d='M149.66 138.34a8 8 0 0 0-11.32 0L120 156.69L99.31 136l18.35-18.34a8 8 0 0 0-11.32-11.32L88 124.69l-18.34-18.35a8 8 0 0 0-11.32 11.32l6.35 6.34l-23.32 23.31a32 32 0 0 0 0 45.26l5.38 5.37l-28.41 28.4a8 8 0 0 0 11.32 11.32l28.4-28.41l5.37 5.38a32 32 0 0 0 45.26 0L132 191.31l6.34 6.35a8 8 0 0 0 11.32-11.32L131.31 168l18.35-18.34a8 8 0 0 0 0-11.32m-52.29 65a16 16 0 0 1-22.62 0l-22.06-22.09a16 16 0 0 1 0-22.62L76 135.31L120.69 180Zm140.29-185a8 8 0 0 0-11.32 0l-28.4 28.41l-5.37-5.38a32.05 32.05 0 0 0-45.26 0L124 64.69l-6.34-6.35a8 8 0 0 0-11.32 11.32l80 80a8 8 0 0 0 11.32-11.32l-6.35-6.34l23.32-23.31a32 32 0 0 0 0-45.26l-5.38-5.37l28.41-28.4a8 8 0 0 0 0-11.32m-34.35 79L180 120.69L135.31 76l23.32-23.31a16 16 0 0 1 22.62 0l22.06 22a16 16 0 0 1 0 22.68Z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-rocket-launch-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M184 120v61.65a8 8 0 0 1-2.34 5.65l-34.35 34.35a8 8 0 0 1-13.57-4.53L128 176Zm-48-48H74.35a8 8 0 0 0-5.65 2.34l-34.35 34.35a8 8 0 0 0 4.53 13.57L80 128ZM40 216c37.65 0 50.69-19.69 54.56-28.18l-26.38-26.38C59.69 165.31 40 178.35 40 216' opacity='.2'/%3E%3Cpath d='M223.85 47.12a16 16 0 0 0-15-15c-12.58-.75-44.73.4-71.41 27.07L132.69 64H74.36A15.9 15.9 0 0 0 63 68.68L28.7 103a16 16 0 0 0 9.07 27.16l38.47 5.37l44.21 44.21l5.37 38.49a15.94 15.94 0 0 0 10.78 12.92a16.1 16.1 0 0 0 5.1.83a15.9 15.9 0 0 0 11.3-4.68l34.32-34.3a15.9 15.9 0 0 0 4.68-11.36v-58.33l4.77-4.77c26.68-26.68 27.83-58.83 27.08-71.42M74.36 80h42.33l-39.53 39.52L40 114.34Zm74.41-9.45a76.65 76.65 0 0 1 59.11-22.47a76.46 76.46 0 0 1-22.42 59.16L128 164.68L91.32 128ZM176 181.64L141.67 216l-5.19-37.17L176 139.31Zm-74.16 9.5C97.34 201 82.29 224 40 224a8 8 0 0 1-8-8c0-42.29 23-57.34 32.86-61.85a8 8 0 0 1 6.64 14.56c-6.43 2.93-20.62 12.36-23.12 38.91c26.55-2.5 36-16.69 38.91-23.12a8 8 0 1 1 14.56 6.64Z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-warning-octagon-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M224 91.55v72.9a8 8 0 0 1-2.34 5.66l-51.55 51.55a8 8 0 0 1-5.66 2.34h-72.9a8 8 0 0 1-5.66-2.34l-51.55-51.55a8 8 0 0 1-2.34-5.66v-72.9a8 8 0 0 1 2.34-5.66l51.55-51.55A8 8 0 0 1 91.55 32h72.9a8 8 0 0 1 5.66 2.34l51.55 51.55a8 8 0 0 1 2.34 5.66' opacity='.2'/%3E%3Cpath d='M120 136V80a8 8 0 0 1 16 0v56a8 8 0 0 1-16 0m112-44.45v72.9a15.86 15.86 0 0 1-4.69 11.31l-51.55 51.55a15.86 15.86 0 0 1-11.31 4.69h-72.9a15.86 15.86 0 0 1-11.31-4.69l-51.55-51.55A15.86 15.86 0 0 1 24 164.45v-72.9a15.86 15.86 0 0 1 4.69-11.31l51.55-51.55A15.86 15.86 0 0 1 91.55 24h72.9a15.86 15.86 0 0 1 11.31 4.69l51.55 51.55A15.86 15.86 0 0 1 232 91.55m-16 0L164.45 40h-72.9L40 91.55v72.9L91.55 216h72.9L216 164.45ZM128 160a12 12 0 1 0 12 12a12 12 0 0 0-12-12'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.badge{font-size:var(--text-xs-fontSize);line-height:var(--un-leading,var(--text-xs-lineHeight));--un-leading:var(--leading-none);line-height:var(--leading-none);--un-font-weight:var(--fontWeight-medium);font-weight:var(--fontWeight-medium);padding-inline:calc(var(--spacing) * 1.5);padding-block:calc(var(--spacing) * .5);border-radius:var(--radius-md);gap:calc(var(--spacing) * 1);align-items:center;display:inline-flex}.badge-active{font-size:var(--text-xs-fontSize);line-height:var(--un-leading,var(--text-xs-lineHeight));color:color-mix(in srgb, var(--colors-primary-600) var(--un-text-opacity), transparent);--un-leading:var(--leading-none);line-height:var(--leading-none);--un-font-weight:var(--fontWeight-medium);font-weight:var(--fontWeight-medium);padding-inline:calc(var(--spacing) * 1.5);padding-block:calc(var(--spacing) * .5);border-radius:var(--radius-md);background-color:color-mix(in srgb, var(--colors-primary-DEFAULT) 10%, transparent);gap:calc(var(--spacing) * 1);align-items:center;display:inline-flex}.badge-muted{font-size:var(--text-xs-fontSize);line-height:var(--un-leading,var(--text-xs-lineHeight));color:color-mix(in srgb, var(--colors-neutral-600) var(--un-text-opacity), transparent);--un-leading:var(--leading-none);line-height:var(--leading-none);--un-font-weight:var(--fontWeight-medium);font-weight:var(--fontWeight-medium);padding-inline:calc(var(--spacing) * 1.5);padding-block:calc(var(--spacing) * .5);border-radius:var(--radius-md);background-color:color-mix(in oklab, #8881 var(--un-bg-opacity), transparent);gap:calc(var(--spacing) * 1);align-items:center;display:inline-flex}.badge-color-amber{color:color-mix(in srgb, var(--colors-amber-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-amber-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-amber-400) 20%, transparent)}.dark .badge-color-amber{color:color-mix(in srgb, var(--colors-amber-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-amber-300) 15%, transparent);background-color:color-mix(in srgb, var(--colors-amber-400) 10%, transparent)}.badge-color-blue{color:color-mix(in srgb, var(--colors-blue-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-blue-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-blue-400) 20%, transparent)}.dark .badge-color-blue{color:color-mix(in srgb, var(--colors-blue-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-blue-300) 15%, transparent);background-color:color-mix(in srgb, var(--colors-blue-400) 10%, transparent)}.badge-color-emerald{color:color-mix(in srgb, var(--colors-emerald-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-emerald-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-emerald-400) 20%, transparent)}.dark .badge-color-emerald{color:color-mix(in srgb, var(--colors-emerald-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-emerald-300) 15%, transparent);background-color:color-mix(in srgb, var(--colors-emerald-400) 10%, transparent)}.badge-color-green{color:color-mix(in srgb, var(--colors-green-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-green-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-green-400) 20%, transparent)}.dark .badge-color-green{color:color-mix(in srgb, var(--colors-green-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-green-300) 15%, transparent);background-color:color-mix(in srgb, var(--colors-green-400) 10%, transparent)}.badge-color-orange{color:color-mix(in srgb, var(--colors-orange-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-orange-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-orange-400) 20%, transparent)}.dark .badge-color-orange{color:color-mix(in srgb, var(--colors-orange-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-orange-300) 15%, transparent);background-color:color-mix(in srgb, var(--colors-orange-400) 10%, transparent)}.badge-color-red{color:color-mix(in srgb, var(--colors-red-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-red-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-red-400) 20%, transparent)}.dark .badge-color-red{color:color-mix(in srgb, var(--colors-red-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-red-300) 15%, transparent);background-color:color-mix(in srgb, var(--colors-red-400) 10%, transparent)}.badge-color-rose{color:color-mix(in srgb, var(--colors-rose-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-rose-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-rose-400) 20%, transparent)}.dark .badge-color-rose{color:color-mix(in srgb, var(--colors-rose-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-rose-300) 15%, transparent);background-color:color-mix(in srgb, var(--colors-rose-400) 10%, transparent)}.badge-color-sky{color:color-mix(in srgb, var(--colors-sky-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-sky-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-sky-400) 20%, transparent)}.dark .badge-color-sky{color:color-mix(in srgb, var(--colors-sky-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-sky-300) 15%, transparent);background-color:color-mix(in srgb, var(--colors-sky-400) 10%, transparent)}.badge-color-teal{color:color-mix(in srgb, var(--colors-teal-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-teal-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-teal-400) 20%, transparent)}.dark .badge-color-teal{color:color-mix(in srgb, var(--colors-teal-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-teal-300) 15%, transparent);background-color:color-mix(in srgb, var(--colors-teal-400) 10%, transparent)}.badge-color-violet{color:color-mix(in srgb, var(--colors-violet-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-violet-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-violet-400) 20%, transparent)}.dark .badge-color-violet{color:color-mix(in srgb, var(--colors-violet-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-violet-300) 15%, transparent);background-color:color-mix(in srgb, var(--colors-violet-400) 10%, transparent)}.btn-primary{color:color-mix(in srgb, var(--colors-white) var(--un-text-opacity), transparent);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 1.5);--un-outline-style:none;border-radius:var(--radius-DEFAULT);background-color:color-mix(in srgb, var(--colors-primary-500) var(--un-bg-opacity), transparent);gap:calc(var(--spacing) * 2);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration));outline-style:none;align-items:center;display:flex}.dark .badge-active{color:color-mix(in srgb, var(--colors-primary-300) var(--un-text-opacity), transparent);background-color:color-mix(in srgb, var(--colors-primary-DEFAULT) 15%, transparent)}.dark .badge-muted,.dark .color-muted{color:color-mix(in srgb, var(--colors-neutral-400) var(--un-text-opacity), transparent)}.color-active{color:color-mix(in srgb, var(--colors-primary-600) var(--un-text-opacity), transparent)}.dark .color-active{color:color-mix(in srgb, var(--colors-primary-300) var(--un-text-opacity), transparent)}.color-base,.data-\[state\=active\]\:color-base[data-state=active]{color:color-mix(in srgb, var(--colors-neutral-800) var(--un-text-opacity), transparent)}.dark .color-base,.dark .data-\[state\=active\]\:color-base[data-state=active]{color:color-mix(in srgb, var(--colors-neutral-200) var(--un-text-opacity), transparent)}.color-faint,.dark .color-faint{color:color-mix(in srgb, var(--colors-neutral-500) var(--un-text-opacity), transparent)}.color-muted{color:color-mix(in srgb, var(--colors-neutral-600) var(--un-text-opacity), transparent)}.dark .hover\:color-base:hover{color:color-mix(in srgb, var(--colors-neutral-200) var(--un-text-opacity), transparent)}.hover\:color-base:hover{color:color-mix(in srgb, var(--colors-neutral-800) var(--un-text-opacity), transparent)}.dark .placeholder\:color-faint::placeholder,.placeholder\:color-faint::placeholder{color:color-mix(in srgb, var(--colors-neutral-500) var(--un-text-opacity), transparent)}.btn-action{padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * 1);--un-outline-style:none;border-width:1px;border-color:color-mix(in oklab, #8882 var(--un-border-opacity), transparent);border-radius:var(--radius-DEFAULT);opacity:.75;gap:calc(var(--spacing) * 2);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration));outline-style:none;align-items:center;display:flex}.btn-icon{--un-outline-style:none;opacity:.65;width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration));border-radius:3.40282e38px;outline-style:none;justify-content:center;align-items:center;display:flex}.btn-icon-square{--un-outline-style:none;border-width:1px;border-color:color-mix(in oklab, #8882 var(--un-border-opacity), transparent);border-radius:var(--radius-DEFAULT);opacity:.65;width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration));outline-style:none;justify-content:center;align-items:center;display:flex}.border-base{border-color:color-mix(in oklab, #8882 var(--un-border-opacity), transparent)}.border-base\!{border-color:color-mix(in oklab, #8882 var(--un-border-opacity), transparent)!important}.dark .focus-visible\:border-active:focus-visible{border-color:color-mix(in srgb, var(--colors-primary-400) 25%, transparent)}.focus-visible\:border-active:focus-visible{border-color:color-mix(in srgb, var(--colors-primary-600) 25%, transparent)}.bg-active{background-color:color-mix(in srgb, var(--colors-primary-DEFAULT) 10%, transparent)}.dark .bg-active{background-color:color-mix(in srgb, var(--colors-primary-DEFAULT) 15%, transparent)}.bg-base,.data-\[state\=active\]\:bg-base[data-state=active]{background-color:color-mix(in srgb, var(--colors-white) var(--un-bg-opacity), transparent)}.dark .bg-base,.dark .data-\[state\=active\]\:bg-base[data-state=active]{background-color:color-mix(in oklab, #111 var(--un-bg-opacity), transparent)}.bg-secondary{background-color:color-mix(in oklab, #fdfdfd var(--un-bg-opacity), transparent)}.dark .bg-secondary{background-color:color-mix(in oklab, #101010 var(--un-bg-opacity), transparent)}.dark .hover\:bg-active:hover{background-color:color-mix(in srgb, var(--colors-primary-DEFAULT) 15%, transparent)}.hover\:bg-active:hover{background-color:color-mix(in srgb, var(--colors-primary-DEFAULT) 10%, transparent)}.btn-action:hover{background-color:color-mix(in srgb, var(--colors-primary-DEFAULT) 10%, transparent);opacity:1}.dark .btn-action:hover{background-color:color-mix(in srgb, var(--colors-primary-DEFAULT) 15%, transparent)}.btn-icon:hover{background-color:color-mix(in srgb, var(--colors-primary-DEFAULT) 10%, transparent);opacity:1}.dark .btn-icon:hover{background-color:color-mix(in srgb, var(--colors-primary-DEFAULT) 15%, transparent)}.btn-icon-square:hover{background-color:color-mix(in srgb, var(--colors-primary-DEFAULT) 10%, transparent);opacity:1}.dark .btn-icon-square:hover{background-color:color-mix(in srgb, var(--colors-primary-DEFAULT) 15%, transparent)}.btn-primary:hover{background-color:color-mix(in srgb, var(--colors-primary-600) var(--un-bg-opacity), transparent)}.dark .btn-icon,.dark .btn-icon-square,.dark .op-fade{opacity:.55}.op-fade{opacity:.65}.btn-action:disabled{pointer-events:none;opacity:.3!important}.btn-icon:disabled,.btn-icon-square:disabled{opacity:.3;pointer-events:none}.btn-primary:disabled{opacity:.5;pointer-events:none}.container{width:100%}.btn-action:focus-visible,.btn-icon:focus-visible,.btn-icon-square:focus-visible,.btn-primary:focus-visible{--un-ring-shadow:var(--un-ring-inset,) 0 0 0 calc(2px + var(--un-ring-offset-width)) var(--un-ring-color,currentColor);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);--un-ring-color:color-mix(in srgb, var(--colors-primary-500) 40%, transparent)}.z-nav{z-index:30}@supports (color:color-mix(in lab, red, red)){.badge-color-amber{color:color-mix(in oklab, var(--colors-amber-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-amber-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-amber-400) 20%, transparent)}.dark .badge-color-amber{color:color-mix(in oklab, var(--colors-amber-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-amber-300) 15%, transparent);background-color:color-mix(in oklab, var(--colors-amber-400) 10%, transparent)}.badge-color-blue{color:color-mix(in oklab, var(--colors-blue-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-blue-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-blue-400) 20%, transparent)}.dark .badge-color-blue{color:color-mix(in oklab, var(--colors-blue-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-blue-300) 15%, transparent);background-color:color-mix(in oklab, var(--colors-blue-400) 10%, transparent)}.badge-color-emerald{color:color-mix(in oklab, var(--colors-emerald-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-emerald-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-emerald-400) 20%, transparent)}.dark .badge-color-emerald{color:color-mix(in oklab, var(--colors-emerald-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-emerald-300) 15%, transparent);background-color:color-mix(in oklab, var(--colors-emerald-400) 10%, transparent)}.badge-color-green{color:color-mix(in oklab, var(--colors-green-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-green-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-green-400) 20%, transparent)}.dark .badge-color-green{color:color-mix(in oklab, var(--colors-green-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-green-300) 15%, transparent);background-color:color-mix(in oklab, var(--colors-green-400) 10%, transparent)}.badge-color-orange{color:color-mix(in oklab, var(--colors-orange-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-orange-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-orange-400) 20%, transparent)}.dark .badge-color-orange{color:color-mix(in oklab, var(--colors-orange-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-orange-300) 15%, transparent);background-color:color-mix(in oklab, var(--colors-orange-400) 10%, transparent)}.badge-color-red{color:color-mix(in oklab, var(--colors-red-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-red-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-red-400) 20%, transparent)}.dark .badge-color-red{color:color-mix(in oklab, var(--colors-red-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-red-300) 15%, transparent);background-color:color-mix(in oklab, var(--colors-red-400) 10%, transparent)}.badge-color-rose{color:color-mix(in oklab, var(--colors-rose-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-rose-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-rose-400) 20%, transparent)}.dark .badge-color-rose{color:color-mix(in oklab, var(--colors-rose-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-rose-300) 15%, transparent);background-color:color-mix(in oklab, var(--colors-rose-400) 10%, transparent)}.badge-color-sky{color:color-mix(in oklab, var(--colors-sky-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-sky-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-sky-400) 20%, transparent)}.dark .badge-color-sky{color:color-mix(in oklab, var(--colors-sky-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-sky-300) 15%, transparent);background-color:color-mix(in oklab, var(--colors-sky-400) 10%, transparent)}.badge-color-teal{color:color-mix(in oklab, var(--colors-teal-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-teal-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-teal-400) 20%, transparent)}.dark .badge-color-teal{color:color-mix(in oklab, var(--colors-teal-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-teal-300) 15%, transparent);background-color:color-mix(in oklab, var(--colors-teal-400) 10%, transparent)}.badge-color-violet{color:color-mix(in oklab, var(--colors-violet-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-violet-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-violet-400) 20%, transparent)}.dark .badge-color-violet{color:color-mix(in oklab, var(--colors-violet-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-violet-300) 15%, transparent);background-color:color-mix(in oklab, var(--colors-violet-400) 10%, transparent)}.btn-primary{color:color-mix(in oklab, var(--colors-white) var(--un-text-opacity), transparent);background-color:color-mix(in oklab, var(--colors-primary-500) var(--un-bg-opacity), transparent)}.badge-active{color:color-mix(in oklab, var(--colors-primary-600) var(--un-text-opacity), transparent);background-color:color-mix(in oklab, var(--colors-primary-DEFAULT) 10%, transparent)}.dark .badge-active{color:color-mix(in oklab, var(--colors-primary-300) var(--un-text-opacity), transparent);background-color:color-mix(in oklab, var(--colors-primary-DEFAULT) 15%, transparent)}.badge-muted{color:color-mix(in oklab, var(--colors-neutral-600) var(--un-text-opacity), transparent)}.dark .badge-muted{color:color-mix(in oklab, var(--colors-neutral-400) var(--un-text-opacity), transparent)}.color-active{color:color-mix(in oklab, var(--colors-primary-600) var(--un-text-opacity), transparent)}.dark .color-active{color:color-mix(in oklab, var(--colors-primary-300) var(--un-text-opacity), transparent)}.color-base{color:color-mix(in oklab, var(--colors-neutral-800) var(--un-text-opacity), transparent)}.dark .color-base,.dark .data-\[state\=active\]\:color-base[data-state=active]{color:color-mix(in oklab, var(--colors-neutral-200) var(--un-text-opacity), transparent)}.data-\[state\=active\]\:color-base[data-state=active]{color:color-mix(in oklab, var(--colors-neutral-800) var(--un-text-opacity), transparent)}.color-faint,.dark .color-faint{color:color-mix(in oklab, var(--colors-neutral-500) var(--un-text-opacity), transparent)}.color-muted{color:color-mix(in oklab, var(--colors-neutral-600) var(--un-text-opacity), transparent)}.dark .color-muted{color:color-mix(in oklab, var(--colors-neutral-400) var(--un-text-opacity), transparent)}.dark .hover\:color-base:hover{color:color-mix(in oklab, var(--colors-neutral-200) var(--un-text-opacity), transparent)}.hover\:color-base:hover{color:color-mix(in oklab, var(--colors-neutral-800) var(--un-text-opacity), transparent)}.dark .placeholder\:color-faint::placeholder,.placeholder\:color-faint::placeholder{color:color-mix(in oklab, var(--colors-neutral-500) var(--un-text-opacity), transparent)}.dark .focus-visible\:border-active:focus-visible{border-color:color-mix(in oklab, var(--colors-primary-400) 25%, transparent)}.focus-visible\:border-active:focus-visible{border-color:color-mix(in oklab, var(--colors-primary-600) 25%, transparent)}.bg-active{background-color:color-mix(in oklab, var(--colors-primary-DEFAULT) 10%, transparent)}.dark .bg-active{background-color:color-mix(in oklab, var(--colors-primary-DEFAULT) 15%, transparent)}.bg-base,.data-\[state\=active\]\:bg-base[data-state=active]{background-color:color-mix(in oklab, var(--colors-white) var(--un-bg-opacity), transparent)}.dark .hover\:bg-active:hover{background-color:color-mix(in oklab, var(--colors-primary-DEFAULT) 15%, transparent)}.hover\:bg-active:hover,.btn-action:hover{background-color:color-mix(in oklab, var(--colors-primary-DEFAULT) 10%, transparent)}.dark .btn-action:hover{background-color:color-mix(in oklab, var(--colors-primary-DEFAULT) 15%, transparent)}.btn-icon:hover{background-color:color-mix(in oklab, var(--colors-primary-DEFAULT) 10%, transparent)}.dark .btn-icon:hover{background-color:color-mix(in oklab, var(--colors-primary-DEFAULT) 15%, transparent)}.btn-icon-square:hover{background-color:color-mix(in oklab, var(--colors-primary-DEFAULT) 10%, transparent)}.dark .btn-icon-square:hover{background-color:color-mix(in oklab, var(--colors-primary-DEFAULT) 15%, transparent)}.btn-primary:hover{background-color:color-mix(in oklab, var(--colors-primary-600) var(--un-bg-opacity), transparent)}.btn-action:focus-visible,.btn-icon:focus-visible,.btn-icon-square:focus-visible,.btn-primary:focus-visible{--un-ring-color:color-mix(in oklab, var(--colors-primary-500) 40%, transparent)}}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}@property --scroll-fade-t{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-b{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-s{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-e{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-mask{syntax:"*";inherits:false}@property --shimmer-angle{syntax:"<angle>";inherits:true;initial-value:20deg}@property --shimmer-image{syntax:"*";inherits:false}@property --shimmer-text-fill{syntax:"*";inherits:false}.text-\[1\.35rem\]{font-size:1.35rem}.text-\[11px\]{font-size:11px}.text-4xl{font-size:var(--text-4xl-fontSize);line-height:var(--un-leading,var(--text-4xl-lineHeight))}.text-base{font-size:var(--text-base-fontSize);line-height:var(--un-leading,var(--text-base-lineHeight))}.text-lg{font-size:var(--text-lg-fontSize);line-height:var(--un-leading,var(--text-lg-lineHeight))}.text-sm{font-size:var(--text-sm-fontSize);line-height:var(--un-leading,var(--text-sm-lineHeight))}.text-xs{font-size:var(--text-xs-fontSize);line-height:var(--un-leading,var(--text-xs-lineHeight))}.text-error{color:color-mix(in srgb, var(--colors-error-DEFAULT) var(--un-text-opacity), transparent)}.leading-relaxed{--un-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.tracking-wider{--un-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.font-medium{--un-font-weight:var(--fontWeight-medium);font-weight:var(--fontWeight-medium)}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-semibold{--un-font-weight:var(--fontWeight-semibold);font-weight:var(--fontWeight-semibold)}.tab{tab-size:4}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.me{margin-inline-end:calc(var(--spacing) * 4)}.ms{margin-inline-start:calc(var(--spacing) * 4)}.mt-1{margin-top:calc(var(--spacing) * 1)}.p-1{padding:calc(var(--spacing) * 1)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px{padding-inline:calc(var(--spacing) * 4)}.px-2,.px2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-2\.5\!{padding-inline:calc(var(--spacing) * 2.5)!important}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4\!{padding-inline:calc(var(--spacing) * 4)!important}.py-1,.py1{padding-block:calc(var(--spacing) * 1)}.py-1\!{padding-block:calc(var(--spacing) * 1)!important}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\!{padding-block:calc(var(--spacing) * 2)!important}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.text-center{text-align:center}.outline{outline-style:var(--un-outline-style);outline-width:1px}.outline-none{--un-outline-style:none;outline-style:none}.b,.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-current{border-color:currentColor}.border-error\/30\!{border-color:color-mix(in srgb, var(--colors-error-DEFAULT) 30%, transparent)!important}.border-error\/35{border-color:color-mix(in srgb, var(--colors-error-DEFAULT) 35%, transparent)}.border-transparent{border-color:#0000}.border-t-transparent{border-top-color:#0000}.rounded{border-radius:var(--radius-DEFAULT)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.bg-error{background-color:color-mix(in srgb, var(--colors-error-DEFAULT) var(--un-bg-opacity), transparent)}.bg-error\/10{background-color:color-mix(in srgb, var(--colors-error-DEFAULT) 10%, transparent)}.bg-neutral-400{background-color:color-mix(in srgb, var(--colors-neutral-400) var(--un-bg-opacity), transparent)}.bg-success{background-color:color-mix(in srgb, var(--colors-success-DEFAULT) var(--un-bg-opacity), transparent)}.op100\!{opacity:1!important}.op75{opacity:.75}.hover\:op100:hover{opacity:1}.disabled\:op30\!:disabled{opacity:.3!important}.underline,.hover\:underline:hover{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.flex{display:flex}.inline-flex{display:inline-flex}.flex-1{flex:1}.shrink-0{flex-shrink:0}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.h-10{height:calc(var(--spacing) * 10)}.h-7\!{height:calc(var(--spacing) * 7)!important}.h-8{height:calc(var(--spacing) * 8)}.h1{height:calc(var(--spacing) * 1)}.max-w-\[560px\]{max-width:560px}.max-w-52{max-width:calc(var(--spacing) * 52)}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:calc(var(--spacing) * 0)}.w-7\!{width:calc(var(--spacing) * 7)!important}.w-full{width:100%}.w-max{width:max-content}.block{display:block}.inline-block{display:inline-block}.cursor-pointer{cursor:pointer}.disabled\:pointer-events-none:disabled{pointer-events:none}.resize{resize:both}.select-none{-webkit-user-select:none;user-select:none}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.uppercase{text-transform:uppercase}.ring{--un-ring-shadow:var(--un-ring-inset,) 0 0 0 calc(1px + var(--un-ring-offset-width)) var(--un-ring-color,currentColor);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)}.focus-visible\:ring-2:focus-visible{--un-ring-shadow:var(--un-ring-inset,) 0 0 0 calc(2px + var(--un-ring-offset-width)) var(--un-ring-color,currentColor);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)}.focus-visible\:ring-primary-500\/40:focus-visible{--un-ring-color:color-mix(in srgb, var(--colors-primary-500) 40%, transparent)}.data-\[state\=active\]\:shadow-sm[data-state=active],.shadow-sm{--un-shadow:0 1px 3px 0 var(--un-shadow-color,#0000001a),0 1px 2px -1px var(--un-shadow-color,#0000001a);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration))}.items-center{align-items:center}.inset-0{inset:calc(var(--spacing) * 0)}.justify-center{justify-content:center}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.of-hidden{overflow:hidden}.of-x-auto{overflow-x:auto}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.filter{filter:var(--un-blur,) var(--un-brightness,) var(--un-contrast,) var(--un-grayscale,) var(--un-hue-rotate,) var(--un-invert,) var(--un-saturate,) var(--un-sepia,) var(--un-drop-shadow,)}@supports (color:color-mix(in lab, red, red)){.text-error{color:color-mix(in oklab, var(--colors-error-DEFAULT) var(--un-text-opacity), transparent)}.border-error\/30\!{border-color:color-mix(in oklab, var(--colors-error-DEFAULT) 30%, transparent)!important}.border-error\/35{border-color:color-mix(in oklab, var(--colors-error-DEFAULT) 35%, transparent)}.bg-error{background-color:color-mix(in oklab, var(--colors-error-DEFAULT) var(--un-bg-opacity), transparent)}.bg-error\/10{background-color:color-mix(in oklab, var(--colors-error-DEFAULT) 10%, transparent)}.bg-neutral-400{background-color:color-mix(in oklab, var(--colors-neutral-400) var(--un-bg-opacity), transparent)}.bg-success{background-color:color-mix(in oklab, var(--colors-success-DEFAULT) var(--un-bg-opacity), transparent)}.focus-visible\:ring-primary-500\/40:focus-visible{--un-ring-color:color-mix(in oklab, var(--colors-primary-500) 40%, transparent)}}@property --un-backdrop-blur{syntax:"*";inherits:false}@property --un-backdrop-brightness{syntax:"*";inherits:false}@property --un-backdrop-contrast{syntax:"*";inherits:false}@property --un-backdrop-grayscale{syntax:"*";inherits:false}@property --un-backdrop-hue-rotate{syntax:"*";inherits:false}@property --un-backdrop-invert{syntax:"*";inherits:false}@property --un-backdrop-opacity{syntax:"*";inherits:false}@property --un-backdrop-saturate{syntax:"*";inherits:false}@property --un-backdrop-sepia{syntax:"*";inherits:false}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html{color:color-mix(in srgb, var(--colors-neutral-800) var(--un-text-opacity), transparent);background-color:color-mix(in srgb, var(--colors-white) var(--un-bg-opacity), transparent)}@supports (color:color-mix(in lab, red, red)){html{color:color-mix(in oklab, var(--colors-neutral-800) var(--un-text-opacity), transparent);background-color:color-mix(in oklab, var(--colors-white) var(--un-bg-opacity), transparent)}}.dark html{color:color-mix(in srgb, var(--colors-neutral-200) var(--un-text-opacity), transparent);background-color:color-mix(in oklab, #111 var(--un-bg-opacity), transparent)}@supports (color:color-mix(in lab, red, red)){.dark html{color:color-mix(in oklab, var(--colors-neutral-200) var(--un-text-opacity), transparent)}}*{scrollbar-width:thin;scrollbar-color:#88888859 transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#8888884d;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#88888880}@keyframes af-spin{to{transform:rotate(360deg)}}@keyframes af-spin-reverse{to{transform:rotate(-360deg)}}.af-spin{animation:1s linear infinite af-spin}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:9999}html.dark::view-transition-old(root){z-index:9999}html.dark::view-transition-new(root){z-index:1}@media (prefers-reduced-motion:reduce){::view-transition-old(root){animation:none!important}::view-transition-new(root){animation:none!important}}[data-reka-popper-content-wrapper]{z-index:70}[data-af-animate][data-state=open]{animation:.15s both af-fade-in}[data-af-animate][data-state=closed]{animation:.15s both af-fade-out}[data-af-modal][data-state=open]{animation:.18s cubic-bezier(.16,1,.3,1) both af-modal-in}[data-af-modal][data-state=closed]{animation:.15s both af-modal-out}[data-af-drawer]{animation-duration:.22s;animation-timing-function:cubic-bezier(.32,.72,0,1);animation-fill-mode:both}[data-af-drawer][data-side=right]{animation-name:af-slide-right}[data-af-drawer][data-side=left]{animation-name:af-slide-left}[data-af-drawer][data-side=top]{animation-name:af-slide-top}[data-af-drawer][data-side=bottom]{animation-name:af-slide-bottom}[data-af-drawer][data-state=closed]{animation-direction:reverse}@keyframes af-fade-in{0%{opacity:0}}@keyframes af-fade-out{to{opacity:0}}@keyframes af-modal-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.96)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes af-modal-out{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(.96)}}@keyframes af-slide-right{0%{transform:translate(100%)}}@keyframes af-slide-left{0%{transform:translate(-100%)}}@keyframes af-slide-top{0%{transform:translateY(-100%)}}@keyframes af-slide-bottom{0%{transform:translateY(100%)}}@media (prefers-reduced-motion:reduce){[data-af-animate],[data-af-modal],[data-af-drawer]{animation:none!important}}.v-popper__popper .v-popper__inner{font-size:var(--text-xs-fontSize);line-height:var(--un-leading,var(--text-xs-lineHeight));color:color-mix(in srgb, var(--colors-neutral-800) var(--un-text-opacity), transparent);padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * 1);border-width:1px;border-color:color-mix(in oklab, #8882 var(--un-border-opacity), transparent);border-radius:var(--radius-md);background-color:color-mix(in srgb, var(--colors-white) 75%, transparent);--un-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--un-backdrop-blur,) var(--un-backdrop-brightness,) var(--un-backdrop-contrast,) var(--un-backdrop-grayscale,) var(--un-backdrop-hue-rotate,) var(--un-backdrop-invert,) var(--un-backdrop-opacity,) var(--un-backdrop-saturate,) var(--un-backdrop-sepia,);backdrop-filter:var(--un-backdrop-blur,) var(--un-backdrop-brightness,) var(--un-backdrop-contrast,) var(--un-backdrop-grayscale,) var(--un-backdrop-hue-rotate,) var(--un-backdrop-invert,) var(--un-backdrop-opacity,) var(--un-backdrop-saturate,) var(--un-backdrop-sepia,);box-shadow:0 4px 16px #0000001f}@supports (color:color-mix(in lab, red, red)){.v-popper__popper .v-popper__inner{color:color-mix(in oklab, var(--colors-neutral-800) var(--un-text-opacity), transparent);background-color:color-mix(in oklab, var(--colors-white) 75%, transparent)}}.dark .v-popper__popper .v-popper__inner{color:color-mix(in srgb, var(--colors-neutral-200) var(--un-text-opacity), transparent);background-color:oklab(17.7638% -2.23517e-8 0/.75)}@supports (color:color-mix(in lab, red, red)){.dark .v-popper__popper .v-popper__inner{color:color-mix(in oklab, var(--colors-neutral-200) var(--un-text-opacity), transparent)}}.v-popper__popper .v-popper__arrow-outer{border-color:color-mix(in oklab, #8882 var(--un-border-opacity), transparent)}.v-popper__popper .v-popper__arrow-inner{border-color:color-mix(in srgb, var(--colors-white) 75%, transparent);visibility:visible}@supports (color:color-mix(in lab, red, red)){.v-popper__popper .v-popper__arrow-inner{border-color:color-mix(in oklab, var(--colors-white) 75%, transparent)}}.dark .v-popper__popper .v-popper__arrow-inner{border-color:oklab(17.7638% -2.23517e-8 0/.75)}.v-popper--theme-dropdown .v-popper__inner{padding:calc(var(--spacing) * 1)}.splitpanes{width:100%;height:100%;display:flex}.splitpanes--vertical{flex-direction:row}.splitpanes--horizontal{flex-direction:column}.splitpanes--dragging *{-webkit-user-select:none;user-select:none}.splitpanes__pane{width:100%;height:100%;overflow:hidden}.splitpanes--vertical>.splitpanes__pane{transition:width .2s ease-out}.splitpanes--horizontal>.splitpanes__pane{transition:height .2s ease-out}.splitpanes--dragging>.splitpanes__pane{pointer-events:none;transition:none}.splitpanes__splitter{touch-action:none;background-color:color-mix(in oklab, #8882 var(--un-bg-opacity), transparent);transition:background-color .2s;position:relative}.splitpanes__splitter:hover{background-color:color-mix(in oklab, #8886 var(--un-bg-opacity), transparent)}.splitpanes--vertical>.splitpanes__splitter{cursor:col-resize;min-width:1px}.splitpanes--horizontal>.splitpanes__splitter{cursor:row-resize;min-height:1px}.splitpanes__splitter:before{content:"";z-index:1;position:absolute;inset:-4px}html,body{height:100%;margin:0}#app{height:100%;position:relative}
@@ -5,8 +5,8 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <base href="./" />
7
7
  <title>Code Server</title>
8
- <script type="module" crossorigin src="./assets/index-YDI4bJsV.js"></script>
9
- <link rel="stylesheet" crossorigin href="./assets/index-_vTgH7K_.css">
8
+ <script type="module" crossorigin src="./assets/index-BBK8liCe.js"></script>
9
+ <link rel="stylesheet" crossorigin href="./assets/index-BisW7oQO.css">
10
10
  </head>
11
11
  <body>
12
12
  <div id="app"></div>
@@ -4,7 +4,7 @@ import { fileURLToPath } from "node:url";
4
4
  import { defineDevframe } from "devframe/types";
5
5
  //#region package.json
6
6
  var name = "@devframes/plugin-code-server";
7
- var version = "0.7.2";
7
+ var version = "0.7.4";
8
8
  var description = "Run code-server (VS Code in the browser) as a devframe panel — detect a local install, launch it on demand, and embed the editor in an auto-authenticated iframe.";
9
9
  var homepage = "https://github.com/devframes/devframe#readme";
10
10
  //#endregion
package/dist/vite.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { n as createCodeServerDevframe } from "./src-B0FD4Wfy.mjs";
1
+ import { n as createCodeServerDevframe } from "./src-8iDqPfSS.mjs";
2
2
  import { viteDevBridge } from "devframe/helpers/vite";
3
3
  //#region src/vite.ts
4
4
  /**
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@devframes/plugin-code-server",
3
3
  "type": "module",
4
- "version": "0.7.2",
4
+ "version": "0.7.4",
5
5
  "description": "Run code-server (VS Code in the browser) as a devframe panel — detect a local install, launch it on demand, and embed the editor in an auto-authenticated iframe.",
6
6
  "author": "Anthony Fu <anthonyfu117@hotmail.com>",
7
7
  "license": "MIT",
@@ -41,7 +41,7 @@
41
41
  ],
42
42
  "peerDependencies": {
43
43
  "vite": "^8.0.0",
44
- "devframe": "0.7.2"
44
+ "devframe": "0.7.4"
45
45
  },
46
46
  "peerDependenciesMeta": {
47
47
  "vite": {
@@ -55,7 +55,7 @@
55
55
  "nostics": "^1.1.4"
56
56
  },
57
57
  "devDependencies": {
58
- "@antfu/design": "^0.2.2",
58
+ "@antfu/design": "^0.3.0",
59
59
  "@iconify-json/ph": "^1.2.2",
60
60
  "@storybook/html-vite": "^10.5.0",
61
61
  "@types/node": "^26.1.1",
@@ -67,7 +67,7 @@
67
67
  "vite": "^8.1.4",
68
68
  "vitest": "^4.1.10",
69
69
  "ws": "^8.21.1",
70
- "devframe": "0.7.2"
70
+ "devframe": "0.7.4"
71
71
  },
72
72
  "scripts": {
73
73
  "build": "tsdown && vite build --config src/spa/vite.config.ts",
@@ -1 +0,0 @@
1
- @supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--un-bg-opacity:100%;--un-border-opacity:100%;--un-leading:initial;--un-ring-opacity:100%;--un-text-opacity:100%}}@property --un-text-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-leading{syntax:"*";inherits:false}@property --un-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --un-border-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-bg-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-ring-opacity{syntax:"<percentage>";inherits:false;initial-value:100%}@property --un-inset-ring-color{syntax:"*";inherits:false}@property --un-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-inset-shadow-color{syntax:"*";inherits:false}@property --un-ring-color{syntax:"*";inherits:false}@property --un-ring-inset{syntax:"*";inherits:false}@property --un-ring-offset-color{syntax:"*";inherits:false}@property --un-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --un-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --un-shadow-color{syntax:"*";inherits:false}:root,:host{--radius-md:.375rem;--spacing:.25rem;--colors-white:#fff;--text-xs-fontSize:.75rem;--text-xs-lineHeight:1rem;--colors-neutral-800:oklch(26.9% 0 0);--colors-neutral-200:oklch(92.2% 0 0);--tracking-wider:.05em;--font-sans:DM Sans,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--fontWeight-semibold:600;--leading-relaxed:1.625;--font-mono:DM Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--colors-error-DEFAULT:#f63d68;--fontWeight-medium:500;--container-sm:24rem;--radius-DEFAULT:.25rem;--default-transition-timingFunction:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--radius-lg:.5rem;--radius-xl:.75rem;--colors-success-DEFAULT:#12b76a;--colors-neutral-400:oklch(70.8% 0 0);--text-sm-fontSize:.875rem;--text-sm-lineHeight:1.25rem;--text-4xl-fontSize:2.25rem;--text-4xl-lineHeight:2.5rem;--text-lg-fontSize:1.125rem;--text-lg-lineHeight:1.75rem;--text-base-fontSize:1rem;--text-base-lineHeight:1.5rem;--colors-primary-500:#578861;--leading-none:1;--colors-blue-400:oklch(70.7% .165 254.624);--colors-amber-400:oklch(82.8% .189 84.429);--colors-green-400:oklch(79.2% .209 151.711);--colors-red-400:oklch(70.4% .191 22.216);--colors-sky-400:oklch(74.6% .16 232.661);--colors-violet-400:oklch(70.2% .183 293.541);--colors-rose-400:oklch(71.2% .194 13.428);--colors-teal-400:oklch(77.7% .152 181.912);--colors-orange-400:oklch(75% .183 55.934);--colors-emerald-400:oklch(76.5% .177 163.223);--colors-neutral-600:oklch(43.9% 0 0);--colors-primary-600:#40704b;--colors-neutral-500:oklch(55.6% 0 0);--colors-blue-700:oklch(48.8% .243 264.376);--colors-blue-600:oklch(54.6% .245 262.881);--colors-amber-700:oklch(55.5% .163 48.998);--colors-amber-600:oklch(66.6% .179 58.318);--colors-green-700:oklch(52.7% .154 150.069);--colors-green-600:oklch(62.7% .194 149.214);--colors-red-700:oklch(50.5% .213 27.518);--colors-red-600:oklch(57.7% .245 27.325);--colors-sky-700:oklch(50% .134 242.749);--colors-sky-600:oklch(58.8% .158 241.966);--colors-violet-700:oklch(49.1% .27 292.581);--colors-violet-600:oklch(54.1% .281 293.009);--colors-rose-700:oklch(51.4% .222 16.935);--colors-rose-600:oklch(58.6% .253 17.585);--colors-teal-700:oklch(51.1% .096 186.391);--colors-teal-600:oklch(60% .118 184.704);--colors-orange-700:oklch(55.3% .195 38.402);--colors-orange-600:oklch(64.6% .222 41.116);--colors-emerald-700:oklch(50.8% .118 165.612);--colors-emerald-600:oklch(59.6% .145 163.225);--colors-primary-300:#93c69d;--colors-blue-300:oklch(80.9% .105 251.813);--colors-amber-300:oklch(87.9% .169 91.605);--colors-green-300:oklch(87.1% .15 154.449);--colors-red-300:oklch(80.8% .114 19.571);--colors-sky-300:oklch(82.8% .111 230.318);--colors-violet-300:oklch(81.1% .111 293.571);--colors-rose-300:oklch(81% .117 11.638);--colors-teal-300:oklch(85.5% .138 181.071);--colors-orange-300:oklch(83.7% .128 66.29);--colors-emerald-300:oklch(84.5% .143 164.978);--colors-primary-400:#75a67e;--default-font-family:var(--font-sans);--default-monoFont-family:var(--font-mono)}*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-featureSettings,normal);font-variation-settings:var(--default-font-variationSettings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-monoFont-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-monoFont-featureSettings,normal);font-variation-settings:var(--default-monoFont-variationSettings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden~=until-found])){display:none!important}*,:before,:after{border-color:#8882}.i-ph-arrow-square-out{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M224 104a8 8 0 0 1-16 0V59.32l-66.33 66.34a8 8 0 0 1-11.32-11.32L196.68 48H152a8 8 0 0 1 0-16h64a8 8 0 0 1 8 8Zm-40 24a8 8 0 0 0-8 8v72H48V80h72a8 8 0 0 0 0-16H48a16 16 0 0 0-16 16v128a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-72a8 8 0 0 0-8-8'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-arrows-clockwise{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M224 48v48a8 8 0 0 1-8 8h-48a8 8 0 0 1 0-16h28.69l-14.63-14.63a79.56 79.56 0 0 0-56.13-23.43h-.45a79.52 79.52 0 0 0-55.89 22.77a8 8 0 0 1-11.18-11.44a96 96 0 0 1 135 .79L208 76.69V48a8 8 0 0 1 16 0m-37.59 135.29a80 80 0 0 1-112.47-.66L59.31 168H88a8 8 0 0 0 0-16H40a8 8 0 0 0-8 8v48a8 8 0 0 0 16 0v-28.69l14.63 14.63A95.43 95.43 0 0 0 130 222.06h.53a95.36 95.36 0 0 0 67.07-27.33a8 8 0 0 0-11.18-11.44Z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-code-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='m240 128l-48 40H64l-48-40l48-40h128Z' opacity='.2'/%3E%3Cpath d='M69.12 94.15L28.5 128l40.62 33.85a8 8 0 1 1-10.24 12.29l-48-40a8 8 0 0 1 0-12.29l48-40a8 8 0 0 1 10.24 12.3m176 27.7l-48-40a8 8 0 1 0-10.24 12.3L227.5 128l-40.62 33.85a8 8 0 1 0 10.24 12.29l48-40a8 8 0 0 0 0-12.29m-82.39-89.37a8 8 0 0 0-10.25 4.79l-64 176a8 8 0 0 0 4.79 10.26A8.1 8.1 0 0 0 96 224a8 8 0 0 0 7.52-5.27l64-176a8 8 0 0 0-4.79-10.25'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-lock-key-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M208 88H48a8 8 0 0 0-8 8v112a8 8 0 0 0 8 8h160a8 8 0 0 0 8-8V96a8 8 0 0 0-8-8m-80 72a20 20 0 1 1 20-20a20 20 0 0 1-20 20' opacity='.2'/%3E%3Cpath d='M208 80h-32V56a48 48 0 0 0-96 0v24H48a16 16 0 0 0-16 16v112a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16V96a16 16 0 0 0-16-16M96 56a32 32 0 0 1 64 0v24H96Zm112 152H48V96h160zm-80-96a28 28 0 0 0-8 54.83V184a8 8 0 0 0 16 0v-17.17a28 28 0 0 0-8-54.83m0 40a12 12 0 1 1 12-12a12 12 0 0 1-12 12'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-plugs-connected-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='m185 127l-58 58a24 24 0 0 1-33.94 0L71 162.91A24 24 0 0 1 71 129l58-58a24 24 0 0 1 33.94 0L185 93.09a24 24 0 0 1 0 33.91' opacity='.2'/%3E%3Cpath d='M237.66 18.34a8 8 0 0 0-11.32 0l-52.4 52.41l-5.37-5.38a32.05 32.05 0 0 0-45.26 0L100 88.69l-6.34-6.35a8 8 0 0 0-11.32 11.32l6.35 6.34l-23.32 23.31a32 32 0 0 0 0 45.26l5.38 5.37l-52.41 52.4a8 8 0 0 0 11.32 11.32l52.4-52.41l5.37 5.38a32.06 32.06 0 0 0 45.26 0L156 167.31l6.34 6.35a8 8 0 0 0 11.32-11.32l-6.35-6.34l23.32-23.31a32 32 0 0 0 0-45.26l-5.38-5.37l52.41-52.4a8 8 0 0 0 0-11.32m-116.29 161a16 16 0 0 1-22.62 0l-22.06-22.09a16 16 0 0 1 0-22.62L100 111.31L144.69 156Zm57.94-57.94L156 144.69L111.31 100l23.32-23.31a16 16 0 0 1 22.62 0l22.06 22a16 16 0 0 1 0 22.63ZM88.57 35a8 8 0 0 1 14.86-6l8 20a8 8 0 0 1-14.86 6Zm-64 58A8 8 0 0 1 35 88.57l20 8a8 8 0 0 1-6 14.86l-20-8A8 8 0 0 1 24.57 93m206.86 70a8 8 0 0 1-10.4 4.46l-20-8a8 8 0 1 1 5.97-14.89l20 8a8 8 0 0 1 4.43 10.43m-64 58.06a8 8 0 0 1-14.86 5.94l-8-20a8 8 0 0 1 14.86-6Z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-plugs-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='m76 124l56 56l-29 29a24 24 0 0 1-33.94 0L47 186.91A24 24 0 0 1 47 153Zm133-54.91L186.91 47A24 24 0 0 0 153 47l-29 29l56 56l29-29a24 24 0 0 0 0-33.91' opacity='.2'/%3E%3Cpath d='M149.66 138.34a8 8 0 0 0-11.32 0L120 156.69L99.31 136l18.35-18.34a8 8 0 0 0-11.32-11.32L88 124.69l-18.34-18.35a8 8 0 0 0-11.32 11.32l6.35 6.34l-23.32 23.31a32 32 0 0 0 0 45.26l5.38 5.37l-28.41 28.4a8 8 0 0 0 11.32 11.32l28.4-28.41l5.37 5.38a32 32 0 0 0 45.26 0L132 191.31l6.34 6.35a8 8 0 0 0 11.32-11.32L131.31 168l18.35-18.34a8 8 0 0 0 0-11.32m-52.29 65a16 16 0 0 1-22.62 0l-22.06-22.09a16 16 0 0 1 0-22.62L76 135.31L120.69 180Zm140.29-185a8 8 0 0 0-11.32 0l-28.4 28.41l-5.37-5.38a32.05 32.05 0 0 0-45.26 0L124 64.69l-6.34-6.35a8 8 0 0 0-11.32 11.32l80 80a8 8 0 0 0 11.32-11.32l-6.35-6.34l23.32-23.31a32 32 0 0 0 0-45.26l-5.38-5.37l28.41-28.4a8 8 0 0 0 0-11.32m-34.35 79L180 120.69L135.31 76l23.32-23.31a16 16 0 0 1 22.62 0l22.06 22a16 16 0 0 1 0 22.68Z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-rocket-launch-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M184 120v61.65a8 8 0 0 1-2.34 5.65l-34.35 34.35a8 8 0 0 1-13.57-4.53L128 176Zm-48-48H74.35a8 8 0 0 0-5.65 2.34l-34.35 34.35a8 8 0 0 0 4.53 13.57L80 128ZM40 216c37.65 0 50.69-19.69 54.56-28.18l-26.38-26.38C59.69 165.31 40 178.35 40 216' opacity='.2'/%3E%3Cpath d='M223.85 47.12a16 16 0 0 0-15-15c-12.58-.75-44.73.4-71.41 27.07L132.69 64H74.36A15.9 15.9 0 0 0 63 68.68L28.7 103a16 16 0 0 0 9.07 27.16l38.47 5.37l44.21 44.21l5.37 38.49a15.94 15.94 0 0 0 10.78 12.92a16.1 16.1 0 0 0 5.1.83a15.9 15.9 0 0 0 11.3-4.68l34.32-34.3a15.9 15.9 0 0 0 4.68-11.36v-58.33l4.77-4.77c26.68-26.68 27.83-58.83 27.08-71.42M74.36 80h42.33l-39.53 39.52L40 114.34Zm74.41-9.45a76.65 76.65 0 0 1 59.11-22.47a76.46 76.46 0 0 1-22.42 59.16L128 164.68L91.32 128ZM176 181.64L141.67 216l-5.19-37.17L176 139.31Zm-74.16 9.5C97.34 201 82.29 224 40 224a8 8 0 0 1-8-8c0-42.29 23-57.34 32.86-61.85a8 8 0 0 1 6.64 14.56c-6.43 2.93-20.62 12.36-23.12 38.91c26.55-2.5 36-16.69 38.91-23.12a8 8 0 1 1 14.56 6.64Z'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.i-ph-warning-octagon-duotone{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 256 256' width='1.11em' height='1.11em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='currentColor'%3E%3Cpath d='M224 91.55v72.9a8 8 0 0 1-2.34 5.66l-51.55 51.55a8 8 0 0 1-5.66 2.34h-72.9a8 8 0 0 1-5.66-2.34l-51.55-51.55a8 8 0 0 1-2.34-5.66v-72.9a8 8 0 0 1 2.34-5.66l51.55-51.55A8 8 0 0 1 91.55 32h72.9a8 8 0 0 1 5.66 2.34l51.55 51.55a8 8 0 0 1 2.34 5.66' opacity='.2'/%3E%3Cpath d='M120 136V80a8 8 0 0 1 16 0v56a8 8 0 0 1-16 0m112-44.45v72.9a15.86 15.86 0 0 1-4.69 11.31l-51.55 51.55a15.86 15.86 0 0 1-11.31 4.69h-72.9a15.86 15.86 0 0 1-11.31-4.69l-51.55-51.55A15.86 15.86 0 0 1 24 164.45v-72.9a15.86 15.86 0 0 1 4.69-11.31l51.55-51.55A15.86 15.86 0 0 1 91.55 24h72.9a15.86 15.86 0 0 1 11.31 4.69l51.55 51.55A15.86 15.86 0 0 1 232 91.55m-16 0L164.45 40h-72.9L40 91.55v72.9L91.55 216h72.9L216 164.45ZM128 160a12 12 0 1 0 12 12a12 12 0 0 0-12-12'/%3E%3C/g%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;color:inherit;background-color:currentColor;width:1.11em;height:1.11em;-webkit-mask-size:100% 100%;mask-size:100% 100%}.badge{font-size:var(--text-xs-fontSize);line-height:var(--un-leading,var(--text-xs-lineHeight));--un-leading:var(--leading-none);line-height:var(--leading-none);--un-font-weight:var(--fontWeight-medium);font-weight:var(--fontWeight-medium);padding-inline:calc(var(--spacing) * 1.5);padding-block:calc(var(--spacing) * .5);border-radius:var(--radius-md);gap:calc(var(--spacing) * 1);align-items:center;display:inline-flex}.badge-active{font-size:var(--text-xs-fontSize);line-height:var(--un-leading,var(--text-xs-lineHeight));color:color-mix(in srgb, var(--colors-primary-600) var(--un-text-opacity), transparent);--un-leading:var(--leading-none);line-height:var(--leading-none);--un-font-weight:var(--fontWeight-medium);font-weight:var(--fontWeight-medium);padding-inline:calc(var(--spacing) * 1.5);padding-block:calc(var(--spacing) * .5);border-radius:var(--radius-md);background-color:color-mix(in oklab, #8881 var(--un-bg-opacity), transparent);gap:calc(var(--spacing) * 1);align-items:center;display:inline-flex}.badge-muted{font-size:var(--text-xs-fontSize);line-height:var(--un-leading,var(--text-xs-lineHeight));color:color-mix(in srgb, var(--colors-neutral-600) var(--un-text-opacity), transparent);--un-leading:var(--leading-none);line-height:var(--leading-none);--un-font-weight:var(--fontWeight-medium);font-weight:var(--fontWeight-medium);padding-inline:calc(var(--spacing) * 1.5);padding-block:calc(var(--spacing) * .5);border-radius:var(--radius-md);background-color:color-mix(in oklab, #8881 var(--un-bg-opacity), transparent);gap:calc(var(--spacing) * 1);align-items:center;display:inline-flex}.badge-color-amber{color:color-mix(in srgb, var(--colors-amber-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-amber-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-amber-400) 20%, transparent)}.dark .badge-color-amber{color:color-mix(in srgb, var(--colors-amber-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-amber-300) 15%, transparent);background-color:color-mix(in srgb, var(--colors-amber-400) 10%, transparent)}.badge-color-blue{color:color-mix(in srgb, var(--colors-blue-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-blue-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-blue-400) 20%, transparent)}.dark .badge-color-blue{color:color-mix(in srgb, var(--colors-blue-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-blue-300) 15%, transparent);background-color:color-mix(in srgb, var(--colors-blue-400) 10%, transparent)}.badge-color-emerald{color:color-mix(in srgb, var(--colors-emerald-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-emerald-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-emerald-400) 20%, transparent)}.dark .badge-color-emerald{color:color-mix(in srgb, var(--colors-emerald-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-emerald-300) 15%, transparent);background-color:color-mix(in srgb, var(--colors-emerald-400) 10%, transparent)}.badge-color-green{color:color-mix(in srgb, var(--colors-green-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-green-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-green-400) 20%, transparent)}.dark .badge-color-green{color:color-mix(in srgb, var(--colors-green-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-green-300) 15%, transparent);background-color:color-mix(in srgb, var(--colors-green-400) 10%, transparent)}.badge-color-orange{color:color-mix(in srgb, var(--colors-orange-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-orange-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-orange-400) 20%, transparent)}.dark .badge-color-orange{color:color-mix(in srgb, var(--colors-orange-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-orange-300) 15%, transparent);background-color:color-mix(in srgb, var(--colors-orange-400) 10%, transparent)}.badge-color-red{color:color-mix(in srgb, var(--colors-red-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-red-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-red-400) 20%, transparent)}.dark .badge-color-red{color:color-mix(in srgb, var(--colors-red-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-red-300) 15%, transparent);background-color:color-mix(in srgb, var(--colors-red-400) 10%, transparent)}.badge-color-rose{color:color-mix(in srgb, var(--colors-rose-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-rose-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-rose-400) 20%, transparent)}.dark .badge-color-rose{color:color-mix(in srgb, var(--colors-rose-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-rose-300) 15%, transparent);background-color:color-mix(in srgb, var(--colors-rose-400) 10%, transparent)}.badge-color-sky{color:color-mix(in srgb, var(--colors-sky-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-sky-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-sky-400) 20%, transparent)}.dark .badge-color-sky{color:color-mix(in srgb, var(--colors-sky-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-sky-300) 15%, transparent);background-color:color-mix(in srgb, var(--colors-sky-400) 10%, transparent)}.badge-color-teal{color:color-mix(in srgb, var(--colors-teal-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-teal-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-teal-400) 20%, transparent)}.dark .badge-color-teal{color:color-mix(in srgb, var(--colors-teal-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-teal-300) 15%, transparent);background-color:color-mix(in srgb, var(--colors-teal-400) 10%, transparent)}.badge-color-violet{color:color-mix(in srgb, var(--colors-violet-700) var(--un-text-opacity), transparent);border-width:1px;border-color:color-mix(in srgb, var(--colors-violet-600) 15%, transparent);background-color:color-mix(in srgb, var(--colors-violet-400) 20%, transparent)}.dark .badge-color-violet{color:color-mix(in srgb, var(--colors-violet-300) var(--un-text-opacity), transparent);border-color:color-mix(in srgb, var(--colors-violet-300) 15%, transparent);background-color:color-mix(in srgb, var(--colors-violet-400) 10%, transparent)}.btn-primary{color:color-mix(in srgb, var(--colors-white) var(--un-text-opacity), transparent);padding-inline:calc(var(--spacing) * 3);padding-block:calc(var(--spacing) * 1.5);--un-outline-style:none;border-radius:var(--radius-DEFAULT);background-color:color-mix(in srgb, var(--colors-primary-500) var(--un-bg-opacity), transparent);gap:calc(var(--spacing) * 2);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration));outline-style:none;align-items:center;display:flex}.dark .badge-active,.dark .color-active{color:color-mix(in srgb, var(--colors-primary-300) var(--un-text-opacity), transparent)}.dark .badge-muted,.dark .color-muted{color:color-mix(in srgb, var(--colors-neutral-400) var(--un-text-opacity), transparent)}.color-active{color:color-mix(in srgb, var(--colors-primary-600) var(--un-text-opacity), transparent)}.color-base,.data-\[state\=active\]\:color-base[data-state=active]{color:color-mix(in srgb, var(--colors-neutral-800) var(--un-text-opacity), transparent)}.dark .color-base,.dark .data-\[state\=active\]\:color-base[data-state=active]{color:color-mix(in srgb, var(--colors-neutral-200) var(--un-text-opacity), transparent)}.color-faint,.dark .color-faint{color:color-mix(in srgb, var(--colors-neutral-500) var(--un-text-opacity), transparent)}.color-muted{color:color-mix(in srgb, var(--colors-neutral-600) var(--un-text-opacity), transparent)}.dark .hover\:color-base:hover{color:color-mix(in srgb, var(--colors-neutral-200) var(--un-text-opacity), transparent)}.hover\:color-base:hover{color:color-mix(in srgb, var(--colors-neutral-800) var(--un-text-opacity), transparent)}.dark .placeholder\:color-faint::placeholder,.placeholder\:color-faint::placeholder{color:color-mix(in srgb, var(--colors-neutral-500) var(--un-text-opacity), transparent)}.btn-action{padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * 1);--un-outline-style:none;border-width:1px;border-color:color-mix(in oklab, #8882 var(--un-border-opacity), transparent);border-radius:var(--radius-DEFAULT);opacity:.75;gap:calc(var(--spacing) * 2);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration));outline-style:none;align-items:center;display:flex}.btn-icon{--un-outline-style:none;opacity:.65;width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration));border-radius:3.40282e38px;outline-style:none;justify-content:center;align-items:center;display:flex}.btn-icon-square{--un-outline-style:none;border-width:1px;border-color:color-mix(in oklab, #8882 var(--un-border-opacity), transparent);border-radius:var(--radius-DEFAULT);opacity:.65;width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration));outline-style:none;justify-content:center;align-items:center;display:flex}.border-base{border-color:color-mix(in oklab, #8882 var(--un-border-opacity), transparent)}.border-base\!{border-color:color-mix(in oklab, #8882 var(--un-border-opacity), transparent)!important}.dark .focus-visible\:border-active:focus-visible{border-color:color-mix(in srgb, var(--colors-primary-400) 25%, transparent)}.focus-visible\:border-active:focus-visible{border-color:color-mix(in srgb, var(--colors-primary-600) 25%, transparent)}.bg-active{background-color:color-mix(in oklab, #8881 var(--un-bg-opacity), transparent)}.bg-base,.data-\[state\=active\]\:bg-base[data-state=active]{background-color:color-mix(in srgb, var(--colors-white) var(--un-bg-opacity), transparent)}.dark .bg-base,.dark .data-\[state\=active\]\:bg-base[data-state=active]{background-color:color-mix(in oklab, #111 var(--un-bg-opacity), transparent)}.bg-secondary{background-color:color-mix(in oklab, #f5f5f5 var(--un-bg-opacity), transparent)}.dark .bg-secondary{background-color:color-mix(in oklab, #1a1a1a var(--un-bg-opacity), transparent)}.hover\:bg-active:hover{background-color:color-mix(in oklab, #8881 var(--un-bg-opacity), transparent)}.btn-action:hover,.btn-icon:hover,.btn-icon-square:hover{background-color:color-mix(in oklab, #8881 var(--un-bg-opacity), transparent);opacity:1}.btn-primary:hover{background-color:color-mix(in srgb, var(--colors-primary-600) var(--un-bg-opacity), transparent)}.dark .btn-icon,.dark .btn-icon-square,.dark .op-fade{opacity:.55}.op-fade{opacity:.65}.btn-action:disabled{pointer-events:none;opacity:.3!important}.btn-icon:disabled,.btn-icon-square:disabled{opacity:.3;pointer-events:none}.btn-primary:disabled{opacity:.5;pointer-events:none}.container{width:100%}.btn-action:focus-visible,.btn-icon:focus-visible,.btn-icon-square:focus-visible,.btn-primary:focus-visible{--un-ring-shadow:var(--un-ring-inset,) 0 0 0 calc(2px + var(--un-ring-offset-width)) var(--un-ring-color,currentColor);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);--un-ring-color:color-mix(in srgb, var(--colors-primary-500) 40%, transparent)}.z-nav{z-index:30}@supports (color:color-mix(in lab, red, red)){.badge-color-amber{color:color-mix(in oklab, var(--colors-amber-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-amber-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-amber-400) 20%, transparent)}.dark .badge-color-amber{color:color-mix(in oklab, var(--colors-amber-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-amber-300) 15%, transparent);background-color:color-mix(in oklab, var(--colors-amber-400) 10%, transparent)}.badge-color-blue{color:color-mix(in oklab, var(--colors-blue-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-blue-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-blue-400) 20%, transparent)}.dark .badge-color-blue{color:color-mix(in oklab, var(--colors-blue-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-blue-300) 15%, transparent);background-color:color-mix(in oklab, var(--colors-blue-400) 10%, transparent)}.badge-color-emerald{color:color-mix(in oklab, var(--colors-emerald-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-emerald-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-emerald-400) 20%, transparent)}.dark .badge-color-emerald{color:color-mix(in oklab, var(--colors-emerald-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-emerald-300) 15%, transparent);background-color:color-mix(in oklab, var(--colors-emerald-400) 10%, transparent)}.badge-color-green{color:color-mix(in oklab, var(--colors-green-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-green-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-green-400) 20%, transparent)}.dark .badge-color-green{color:color-mix(in oklab, var(--colors-green-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-green-300) 15%, transparent);background-color:color-mix(in oklab, var(--colors-green-400) 10%, transparent)}.badge-color-orange{color:color-mix(in oklab, var(--colors-orange-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-orange-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-orange-400) 20%, transparent)}.dark .badge-color-orange{color:color-mix(in oklab, var(--colors-orange-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-orange-300) 15%, transparent);background-color:color-mix(in oklab, var(--colors-orange-400) 10%, transparent)}.badge-color-red{color:color-mix(in oklab, var(--colors-red-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-red-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-red-400) 20%, transparent)}.dark .badge-color-red{color:color-mix(in oklab, var(--colors-red-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-red-300) 15%, transparent);background-color:color-mix(in oklab, var(--colors-red-400) 10%, transparent)}.badge-color-rose{color:color-mix(in oklab, var(--colors-rose-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-rose-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-rose-400) 20%, transparent)}.dark .badge-color-rose{color:color-mix(in oklab, var(--colors-rose-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-rose-300) 15%, transparent);background-color:color-mix(in oklab, var(--colors-rose-400) 10%, transparent)}.badge-color-sky{color:color-mix(in oklab, var(--colors-sky-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-sky-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-sky-400) 20%, transparent)}.dark .badge-color-sky{color:color-mix(in oklab, var(--colors-sky-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-sky-300) 15%, transparent);background-color:color-mix(in oklab, var(--colors-sky-400) 10%, transparent)}.badge-color-teal{color:color-mix(in oklab, var(--colors-teal-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-teal-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-teal-400) 20%, transparent)}.dark .badge-color-teal{color:color-mix(in oklab, var(--colors-teal-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-teal-300) 15%, transparent);background-color:color-mix(in oklab, var(--colors-teal-400) 10%, transparent)}.badge-color-violet{color:color-mix(in oklab, var(--colors-violet-700) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-violet-600) 15%, transparent);background-color:color-mix(in oklab, var(--colors-violet-400) 20%, transparent)}.dark .badge-color-violet{color:color-mix(in oklab, var(--colors-violet-300) var(--un-text-opacity), transparent);border-color:color-mix(in oklab, var(--colors-violet-300) 15%, transparent);background-color:color-mix(in oklab, var(--colors-violet-400) 10%, transparent)}.btn-primary{color:color-mix(in oklab, var(--colors-white) var(--un-text-opacity), transparent);background-color:color-mix(in oklab, var(--colors-primary-500) var(--un-bg-opacity), transparent)}.badge-active{color:color-mix(in oklab, var(--colors-primary-600) var(--un-text-opacity), transparent)}.dark .badge-active{color:color-mix(in oklab, var(--colors-primary-300) var(--un-text-opacity), transparent)}.badge-muted{color:color-mix(in oklab, var(--colors-neutral-600) var(--un-text-opacity), transparent)}.dark .badge-muted{color:color-mix(in oklab, var(--colors-neutral-400) var(--un-text-opacity), transparent)}.color-active{color:color-mix(in oklab, var(--colors-primary-600) var(--un-text-opacity), transparent)}.dark .color-active{color:color-mix(in oklab, var(--colors-primary-300) var(--un-text-opacity), transparent)}.color-base{color:color-mix(in oklab, var(--colors-neutral-800) var(--un-text-opacity), transparent)}.dark .color-base,.dark .data-\[state\=active\]\:color-base[data-state=active]{color:color-mix(in oklab, var(--colors-neutral-200) var(--un-text-opacity), transparent)}.data-\[state\=active\]\:color-base[data-state=active]{color:color-mix(in oklab, var(--colors-neutral-800) var(--un-text-opacity), transparent)}.color-faint,.dark .color-faint{color:color-mix(in oklab, var(--colors-neutral-500) var(--un-text-opacity), transparent)}.color-muted{color:color-mix(in oklab, var(--colors-neutral-600) var(--un-text-opacity), transparent)}.dark .color-muted{color:color-mix(in oklab, var(--colors-neutral-400) var(--un-text-opacity), transparent)}.dark .hover\:color-base:hover{color:color-mix(in oklab, var(--colors-neutral-200) var(--un-text-opacity), transparent)}.hover\:color-base:hover{color:color-mix(in oklab, var(--colors-neutral-800) var(--un-text-opacity), transparent)}.dark .placeholder\:color-faint::placeholder,.placeholder\:color-faint::placeholder{color:color-mix(in oklab, var(--colors-neutral-500) var(--un-text-opacity), transparent)}.dark .focus-visible\:border-active:focus-visible{border-color:color-mix(in oklab, var(--colors-primary-400) 25%, transparent)}.focus-visible\:border-active:focus-visible{border-color:color-mix(in oklab, var(--colors-primary-600) 25%, transparent)}.bg-base,.data-\[state\=active\]\:bg-base[data-state=active]{background-color:color-mix(in oklab, var(--colors-white) var(--un-bg-opacity), transparent)}.btn-primary:hover{background-color:color-mix(in oklab, var(--colors-primary-600) var(--un-bg-opacity), transparent)}.btn-action:focus-visible,.btn-icon:focus-visible,.btn-icon-square:focus-visible,.btn-primary:focus-visible{--un-ring-color:color-mix(in oklab, var(--colors-primary-500) 40%, transparent)}}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}@property --scroll-fade-t{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-b{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-s{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-e{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-mask{syntax:"*";inherits:false}@property --shimmer-angle{syntax:"<angle>";inherits:true;initial-value:20deg}@property --shimmer-image{syntax:"*";inherits:false}@property --shimmer-text-fill{syntax:"*";inherits:false}.text-\[1\.35rem\]{font-size:1.35rem}.text-\[11px\]{font-size:11px}.text-4xl{font-size:var(--text-4xl-fontSize);line-height:var(--un-leading,var(--text-4xl-lineHeight))}.text-base{font-size:var(--text-base-fontSize);line-height:var(--un-leading,var(--text-base-lineHeight))}.text-lg{font-size:var(--text-lg-fontSize);line-height:var(--un-leading,var(--text-lg-lineHeight))}.text-sm{font-size:var(--text-sm-fontSize);line-height:var(--un-leading,var(--text-sm-lineHeight))}.text-xs{font-size:var(--text-xs-fontSize);line-height:var(--un-leading,var(--text-xs-lineHeight))}.text-error{color:color-mix(in srgb, var(--colors-error-DEFAULT) var(--un-text-opacity), transparent)}.leading-relaxed{--un-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.tracking-wider{--un-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.font-medium{--un-font-weight:var(--fontWeight-medium);font-weight:var(--fontWeight-medium)}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-semibold{--un-font-weight:var(--fontWeight-semibold);font-weight:var(--fontWeight-semibold)}.tab{tab-size:4}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.me{margin-inline-end:calc(var(--spacing) * 4)}.ms{margin-inline-start:calc(var(--spacing) * 4)}.mt-1{margin-top:calc(var(--spacing) * 1)}.p-1{padding:calc(var(--spacing) * 1)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px{padding-inline:calc(var(--spacing) * 4)}.px-2,.px2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-2\.5\!{padding-inline:calc(var(--spacing) * 2.5)!important}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4\!{padding-inline:calc(var(--spacing) * 4)!important}.py-1,.py1{padding-block:calc(var(--spacing) * 1)}.py-1\!{padding-block:calc(var(--spacing) * 1)!important}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\!{padding-block:calc(var(--spacing) * 2)!important}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.text-center{text-align:center}.outline{outline-style:var(--un-outline-style);outline-width:1px}.outline-none{--un-outline-style:none;outline-style:none}.b,.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-current{border-color:currentColor}.border-error\/30\!{border-color:color-mix(in srgb, var(--colors-error-DEFAULT) 30%, transparent)!important}.border-error\/35{border-color:color-mix(in srgb, var(--colors-error-DEFAULT) 35%, transparent)}.border-transparent{border-color:#0000}.border-t-transparent{border-top-color:#0000}.rounded{border-radius:var(--radius-DEFAULT)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.bg-error{background-color:color-mix(in srgb, var(--colors-error-DEFAULT) var(--un-bg-opacity), transparent)}.bg-error\/10{background-color:color-mix(in srgb, var(--colors-error-DEFAULT) 10%, transparent)}.bg-neutral-400{background-color:color-mix(in srgb, var(--colors-neutral-400) var(--un-bg-opacity), transparent)}.bg-success{background-color:color-mix(in srgb, var(--colors-success-DEFAULT) var(--un-bg-opacity), transparent)}.op100\!{opacity:1!important}.op75{opacity:.75}.hover\:op100:hover{opacity:1}.disabled\:op30\!:disabled{opacity:.3!important}.underline,.hover\:underline:hover{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.flex{display:flex}.inline-flex{display:inline-flex}.flex-1{flex:1}.shrink-0{flex-shrink:0}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.h-10{height:calc(var(--spacing) * 10)}.h-7\!{height:calc(var(--spacing) * 7)!important}.h-8{height:calc(var(--spacing) * 8)}.h1{height:calc(var(--spacing) * 1)}.max-w-\[560px\]{max-width:560px}.max-w-52{max-width:calc(var(--spacing) * 52)}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:calc(var(--spacing) * 0)}.w-7\!{width:calc(var(--spacing) * 7)!important}.w-full{width:100%}.w-max{width:max-content}.block{display:block}.inline-block{display:inline-block}.cursor-pointer{cursor:pointer}.disabled\:pointer-events-none:disabled{pointer-events:none}.resize{resize:both}.select-none{-webkit-user-select:none;user-select:none}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.uppercase{text-transform:uppercase}.ring{--un-ring-shadow:var(--un-ring-inset,) 0 0 0 calc(1px + var(--un-ring-offset-width)) var(--un-ring-color,currentColor);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)}.focus-visible\:ring-2:focus-visible{--un-ring-shadow:var(--un-ring-inset,) 0 0 0 calc(2px + var(--un-ring-offset-width)) var(--un-ring-color,currentColor);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)}.focus-visible\:ring-primary-500\/40:focus-visible{--un-ring-color:color-mix(in srgb, var(--colors-primary-500) 40%, transparent)}.data-\[state\=active\]\:shadow-sm[data-state=active],.shadow-sm{--un-shadow:0 1px 3px 0 var(--un-shadow-color,#0000001a),0 1px 2px -1px var(--un-shadow-color,#0000001a);box-shadow:var(--un-inset-shadow), var(--un-inset-ring-shadow), var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,--un-gradient-from,--un-gradient-via,--un-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--un-ease,var(--default-transition-timingFunction));transition-duration:var(--un-duration,var(--default-transition-duration))}.items-center{align-items:center}.inset-0{inset:calc(var(--spacing) * 0)}.justify-center{justify-content:center}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.of-hidden{overflow:hidden}.of-x-auto{overflow-x:auto}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.filter{filter:var(--un-blur,) var(--un-brightness,) var(--un-contrast,) var(--un-grayscale,) var(--un-hue-rotate,) var(--un-invert,) var(--un-saturate,) var(--un-sepia,) var(--un-drop-shadow,)}@supports (color:color-mix(in lab, red, red)){.text-error{color:color-mix(in oklab, var(--colors-error-DEFAULT) var(--un-text-opacity), transparent)}.border-error\/30\!{border-color:color-mix(in oklab, var(--colors-error-DEFAULT) 30%, transparent)!important}.border-error\/35{border-color:color-mix(in oklab, var(--colors-error-DEFAULT) 35%, transparent)}.bg-error{background-color:color-mix(in oklab, var(--colors-error-DEFAULT) var(--un-bg-opacity), transparent)}.bg-error\/10{background-color:color-mix(in oklab, var(--colors-error-DEFAULT) 10%, transparent)}.bg-neutral-400{background-color:color-mix(in oklab, var(--colors-neutral-400) var(--un-bg-opacity), transparent)}.bg-success{background-color:color-mix(in oklab, var(--colors-success-DEFAULT) var(--un-bg-opacity), transparent)}.focus-visible\:ring-primary-500\/40:focus-visible{--un-ring-color:color-mix(in oklab, var(--colors-primary-500) 40%, transparent)}}@property --un-backdrop-blur{syntax:"*";inherits:false}@property --un-backdrop-brightness{syntax:"*";inherits:false}@property --un-backdrop-contrast{syntax:"*";inherits:false}@property --un-backdrop-grayscale{syntax:"*";inherits:false}@property --un-backdrop-hue-rotate{syntax:"*";inherits:false}@property --un-backdrop-invert{syntax:"*";inherits:false}@property --un-backdrop-opacity{syntax:"*";inherits:false}@property --un-backdrop-saturate{syntax:"*";inherits:false}@property --un-backdrop-sepia{syntax:"*";inherits:false}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html{color:color-mix(in srgb, var(--colors-neutral-800) var(--un-text-opacity), transparent);background-color:color-mix(in srgb, var(--colors-white) var(--un-bg-opacity), transparent)}@supports (color:color-mix(in lab, red, red)){html{color:color-mix(in oklab, var(--colors-neutral-800) var(--un-text-opacity), transparent);background-color:color-mix(in oklab, var(--colors-white) var(--un-bg-opacity), transparent)}}.dark html{color:color-mix(in srgb, var(--colors-neutral-200) var(--un-text-opacity), transparent);background-color:color-mix(in oklab, #111 var(--un-bg-opacity), transparent)}@supports (color:color-mix(in lab, red, red)){.dark html{color:color-mix(in oklab, var(--colors-neutral-200) var(--un-text-opacity), transparent)}}*{scrollbar-width:thin;scrollbar-color:#88888859 transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#8888884d;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#88888880}@keyframes af-spin{to{transform:rotate(360deg)}}@keyframes af-spin-reverse{to{transform:rotate(-360deg)}}.af-spin{animation:1s linear infinite af-spin}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:9999}html.dark::view-transition-old(root){z-index:9999}html.dark::view-transition-new(root){z-index:1}@media (prefers-reduced-motion:reduce){::view-transition-old(root){animation:none!important}::view-transition-new(root){animation:none!important}}[data-reka-popper-content-wrapper]{z-index:70}[data-af-animate][data-state=open]{animation:.15s both af-fade-in}[data-af-animate][data-state=closed]{animation:.15s both af-fade-out}[data-af-modal][data-state=open]{animation:.18s cubic-bezier(.16,1,.3,1) both af-modal-in}[data-af-modal][data-state=closed]{animation:.15s both af-modal-out}[data-af-drawer]{animation-duration:.22s;animation-timing-function:cubic-bezier(.32,.72,0,1);animation-fill-mode:both}[data-af-drawer][data-side=right]{animation-name:af-slide-right}[data-af-drawer][data-side=left]{animation-name:af-slide-left}[data-af-drawer][data-side=top]{animation-name:af-slide-top}[data-af-drawer][data-side=bottom]{animation-name:af-slide-bottom}[data-af-drawer][data-state=closed]{animation-direction:reverse}@keyframes af-fade-in{0%{opacity:0}}@keyframes af-fade-out{to{opacity:0}}@keyframes af-modal-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.96)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes af-modal-out{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(.96)}}@keyframes af-slide-right{0%{transform:translate(100%)}}@keyframes af-slide-left{0%{transform:translate(-100%)}}@keyframes af-slide-top{0%{transform:translateY(-100%)}}@keyframes af-slide-bottom{0%{transform:translateY(100%)}}@media (prefers-reduced-motion:reduce){[data-af-animate],[data-af-modal],[data-af-drawer]{animation:none!important}}.v-popper__popper .v-popper__inner{font-size:var(--text-xs-fontSize);line-height:var(--un-leading,var(--text-xs-lineHeight));color:color-mix(in srgb, var(--colors-neutral-800) var(--un-text-opacity), transparent);padding-inline:calc(var(--spacing) * 2);padding-block:calc(var(--spacing) * 1);border-width:1px;border-color:color-mix(in oklab, #8882 var(--un-border-opacity), transparent);border-radius:var(--radius-md);background-color:color-mix(in srgb, var(--colors-white) 75%, transparent);--un-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--un-backdrop-blur,) var(--un-backdrop-brightness,) var(--un-backdrop-contrast,) var(--un-backdrop-grayscale,) var(--un-backdrop-hue-rotate,) var(--un-backdrop-invert,) var(--un-backdrop-opacity,) var(--un-backdrop-saturate,) var(--un-backdrop-sepia,);backdrop-filter:var(--un-backdrop-blur,) var(--un-backdrop-brightness,) var(--un-backdrop-contrast,) var(--un-backdrop-grayscale,) var(--un-backdrop-hue-rotate,) var(--un-backdrop-invert,) var(--un-backdrop-opacity,) var(--un-backdrop-saturate,) var(--un-backdrop-sepia,);box-shadow:0 4px 16px #0000001f}@supports (color:color-mix(in lab, red, red)){.v-popper__popper .v-popper__inner{color:color-mix(in oklab, var(--colors-neutral-800) var(--un-text-opacity), transparent);background-color:color-mix(in oklab, var(--colors-white) 75%, transparent)}}.dark .v-popper__popper .v-popper__inner{color:color-mix(in srgb, var(--colors-neutral-200) var(--un-text-opacity), transparent);background-color:oklab(17.7638% -2.23517e-8 0/.75)}@supports (color:color-mix(in lab, red, red)){.dark .v-popper__popper .v-popper__inner{color:color-mix(in oklab, var(--colors-neutral-200) var(--un-text-opacity), transparent)}}.v-popper__popper .v-popper__arrow-outer{border-color:color-mix(in oklab, #8882 var(--un-border-opacity), transparent)}.v-popper__popper .v-popper__arrow-inner{border-color:color-mix(in srgb, var(--colors-white) 75%, transparent);visibility:visible}@supports (color:color-mix(in lab, red, red)){.v-popper__popper .v-popper__arrow-inner{border-color:color-mix(in oklab, var(--colors-white) 75%, transparent)}}.dark .v-popper__popper .v-popper__arrow-inner{border-color:oklab(17.7638% -2.23517e-8 0/.75)}.v-popper--theme-dropdown .v-popper__inner{padding:calc(var(--spacing) * 1)}.splitpanes{width:100%;height:100%;display:flex}.splitpanes--vertical{flex-direction:row}.splitpanes--horizontal{flex-direction:column}.splitpanes--dragging *{-webkit-user-select:none;user-select:none}.splitpanes__pane{width:100%;height:100%;overflow:hidden}.splitpanes--vertical>.splitpanes__pane{transition:width .2s ease-out}.splitpanes--horizontal>.splitpanes__pane{transition:height .2s ease-out}.splitpanes--dragging>.splitpanes__pane{pointer-events:none;transition:none}.splitpanes__splitter{touch-action:none;background-color:color-mix(in oklab, #8882 var(--un-bg-opacity), transparent);transition:background-color .2s;position:relative}.splitpanes__splitter:hover{background-color:color-mix(in oklab, #8886 var(--un-bg-opacity), transparent)}.splitpanes--vertical>.splitpanes__splitter{cursor:col-resize;min-width:1px}.splitpanes--horizontal>.splitpanes__splitter{cursor:row-resize;min-height:1px}.splitpanes__splitter:before{content:"";z-index:1;position:absolute;inset:-4px}html,body{height:100%;margin:0}#app{height:100%;position:relative}