omnigateway 0.5.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/omni.js +6871 -6738
- package/gateway.js +7694 -7311
- package/package.json +1 -1
- package/public/assets/{CopyValue-dQWAaTxf.js → CopyValue-DNNJGDI5.js} +5 -5
- package/public/assets/{Field-DTQ2LPzA.js → Field-B2rnk3JM.js} +1 -1
- package/public/assets/{Match-C85GObiU.js → Match-CvkEmOIG.js} +1 -1
- package/public/assets/{Panel-CQVz9yeR.js → Panel-BeQOQoap.js} +2 -2
- package/public/assets/Rack-DdhpgQWD.js +316 -0
- package/public/assets/{Readout-DJR1qKja.js → Readout-CZfn5JDy.js} +1 -1
- package/public/assets/RequestTable-I1TrD689.js +11 -0
- package/public/assets/States-2kaQxx-s.js +54 -0
- package/public/assets/SummaryDeck-BisdRswW.js +15 -0
- package/public/assets/{Toggle-BQI8jz09.js → Toggle-BvOELhpy.js} +1 -1
- package/public/assets/{TokenBreakdown-B2_gfuqt.js → TokenBreakdown-En1JT4tT.js} +1 -1
- package/public/assets/WindowChart-Bvbkz9rt.js +11 -0
- package/public/assets/_app-a3VUev6k.js +1 -0
- package/public/assets/_app.accounts-CYPB-7Xt.js +59 -0
- package/public/assets/{_app.console-bzKNP_8Y.js → _app.console-C4x5F3d0.js} +2 -2
- package/public/assets/_app.database-B-9oB52r.js +24 -0
- package/public/assets/_app.index-NBeanmyf.js +62 -0
- package/public/assets/_app.keys-DK9jdOqT.js +82 -0
- package/public/assets/_app.logs-Dr6fApsE.js +58 -0
- package/public/assets/{_app.models-B0ZxWGHV.js → _app.models-CGBQ2QaS.js} +11 -11
- package/public/assets/_app.plugins._pluginId-DXzhupNH.js +20 -0
- package/public/assets/_app.settings-zTFRyxhZ.js +58 -0
- package/public/assets/_app.usage-BCCimHY0.js +76 -0
- package/public/assets/chevron-right-mGs1is3r.js +1 -0
- package/public/assets/client-CQGHWD56.js +39 -0
- package/public/assets/index-C3LoGDKu.js +178 -0
- package/public/assets/login-bJoYdBqx.js +45 -0
- package/public/assets/plus-Bqi8Y2Xd.js +1 -0
- package/public/assets/queries-GAue98pY.js +145 -0
- package/public/assets/reasons-Du1OBWAM.js +1 -0
- package/public/assets/shared-DQOWYTp3.js +77 -0
- package/public/assets/stream-Bu-m1Z1Y.js +1 -0
- package/public/assets/{trash-2-DbutVvFY.js → trash-2-BDA1rQVQ.js} +1 -1
- package/public/index.html +3 -3
- package/public/assets/Rack-V32CHmN6.js +0 -316
- package/public/assets/States-CauIsA0N.js +0 -54
- package/public/assets/_app-DzzXdoyU.js +0 -1
- package/public/assets/_app.accounts-owsnxlbn.js +0 -64
- package/public/assets/_app.database-CsJbkedE.js +0 -24
- package/public/assets/_app.index-D4ydl2mY.js +0 -62
- package/public/assets/_app.keys-DKX0smty.js +0 -82
- package/public/assets/_app.logs-CFFsj2zR.js +0 -68
- package/public/assets/_app.plugins._pluginId-C5X4B1cE.js +0 -20
- package/public/assets/_app.settings-Yg_6az-L.js +0 -46
- package/public/assets/_app.usage-BRIz_GCn.js +0 -83
- package/public/assets/index-DiCU8bLB.js +0 -178
- package/public/assets/login-B4LoiALI.js +0 -36
- package/public/assets/plus-xu9reaJp.js +0 -1
- package/public/assets/queries-DuSqKybM.js +0 -145
- package/public/assets/reasons-Cb8yF4Oy.js +0 -1
- package/public/assets/shared-DYkFSPbd.js +0 -84
- package/public/assets/stream-Dz5HjHBh.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./queries-GAue98pY.js";import{a as t}from"./Rack-DdhpgQWD.js";import{useQueryClient as n}from"@tanstack/react-query";import{createContext as r,use as i,useEffect as a,useRef as o,useState as s,useSyncExternalStore as c}from"react";import{jsx as l}from"react/jsx-runtime";var u=`stream:console`,d={"res:usage":{predicate:e=>e.queryKey[0]===`usage`||e.queryKey[0]===`client`&&(e.queryKey[1]===`usage`||e.queryKey[1]===`summary`)},"res:logs":{predicate:e=>e.queryKey[0]===`logs`&&e.queryKey[1]!==`body`||e.queryKey[0]===`client`&&e.queryKey[1]===`logs`},"res:credentials":{queryKey:e.credentials},"res:keys":{queryKey:e.keys},"res:settings":{queryKey:e.settings},"res:models":{queryKey:e.models},"res:quota":{queryKey:[`quota-history`]},[u]:{queryKey:[`console`]}},f=Object.keys(d),p=f.filter(e=>e.startsWith(`res:`)),m=f.filter(e=>e.startsWith(`stream:`));function h(e,t){if(t===`res:*`){_(e);return}let n=d[t];n!==void 0&&e.invalidateQueries(n)}function g(e){for(let t of f)h(e,t)}function _(e){e.invalidateQueries()}var v=4401,y=500,b=3e4,x=3,S=6e4,C=(e,t)=>{let n=setTimeout(e,t);return()=>clearTimeout(n)};function w(){let{protocol:e,host:t}=window.location;return`${e===`https:`?`wss:`:`ws:`}//${t}/api/stream`}function T(e){if(typeof e!=`string`)return null;let t;try{t=JSON.parse(e)}catch{return null}if(typeof t!=`object`||!t||Array.isArray(t))return null;let n=t,{type:r,topic:i,seq:a}=n;return typeof r!=`string`||i!==void 0&&typeof i!=`string`||a!==void 0&&typeof a!=`number`?null:{type:r,...typeof i==`string`?{topic:i}:{},...typeof a==`number`?{seq:a}:{},...`payload`in n?{payload:n.payload}:{}}}function E(e){let t=new Set,n=new Set,r=new Map,i=new Map,a=[],o=null,s=!1,c=!1,l=!1,u=!1,d=!1,f=0,C=null,w={status:`poll`,pushed:()=>!1};function E(){let e=d?`offline`:c&&!u?`push`:`poll`,r=e===`push`;w={status:e,pushed:e=>r&&n.has(e)};for(let e of t)e()}function D(e){o?.send(JSON.stringify(e))}function O(e,t){let n=i.get(e);if(n===void 0||n.size===0)return!1;for(let e of[...n])e(t);return!0}function k(){for(let e of p)D({type:`subscribe`,topic:e});for(let e of m){let t=r.get(e);D(t===void 0?{type:`subscribe`,topic:e}:{type:`subscribe`,topic:e,sinceSeq:t})}}function A(){c=!0,f=0,n.clear(),l&&g(e.client),l=!0,k(),E()}function j(t){let i=T(t.data);if(i===null)return;let{topic:a}=i;if(i.type===`ack`){a!==void 0&&(n.add(a),E());return}if(i.type===`error`){a!==void 0&&n.delete(a)&&E();return}if(a!==void 0){if(i.type===`gap`){i.seq!==void 0&&r.set(a,i.seq),O(a,{kind:`gap`}),h(e.client,a);return}if(i.type===`event`){if(a===`res:*`){_(e.client);return}if(i.seq!==void 0){let t=r.get(a);if(r.set(a,i.seq),t!==void 0&&i.seq>t+1){O(a,{kind:`gap`}),h(e.client,a);return}}i.payload!==void 0&&O(a,{kind:`frame`,payload:i.payload})||h(e.client,a)}}}function M(t){let r=c;if(c=!1,o=null,n.clear(),s){if(t.code===v){d=!0,s=!1,E(),_(e.client);return}if(!r)u=!0;else{let t=e.now();a=[...a.filter(e=>e>t-S),t],a.length>=x&&(u=!0)}E(),N()}}function N(){let t=Math.min(b,y*2**f);f+=1,C=e.timer(()=>{C=null,s&&P()},t)}function P(){let t=new WebSocket(e.url());o=t,t.addEventListener(`open`,A),t.addEventListener(`message`,j),t.addEventListener(`close`,M)}return{subscribe(e){return t.add(e),()=>{t.delete(e)}},snapshot:()=>w,onStream(e,t){let n=i.get(e)??new Set;return i.set(e,n),n.add(t),()=>{n.delete(t),n.size===0&&i.delete(e)}},start(){return s=!0,P(),()=>{s=!1,C?.(),C=null;let e=o;o=null,c=!1,e?.close()}}}}var D=r(null),O=r(null),k={status:`poll`,pushed:()=>!1};function A({children:e,enabled:t=!0,timer:r=C,now:i=Date.now,url:o=w}){let u=n(),[d]=s(()=>E({client:u,timer:r,now:i,url:o}));a(()=>{if(t)return d.start()},[d,t]);let f=c(d.subscribe,d.snapshot,d.snapshot);return l(D,{value:f,children:l(O,{value:d.onStream,children:e})})}function j(){return i(D)??k}function M(e,t){let n=i(O),r=o(t);a(()=>{r.current=t}),a(()=>{if(n!==null)return n(e,e=>r.current(e))},[n,e])}function N({children:e}){let n=j();return l(t,{connection:n,children:e})}export{h as a,u as i,N as n,M as r,A as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{_ as e}from"./Rack-DdhpgQWD.js";var t=e(`trash-2`,[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]);export{t};
|
package/public/index.html
CHANGED
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
<link rel="icon" href="/favicon.svg" type="image/svg+xml" />
|
|
10
10
|
<title>OmniGateway — One endpoint in front of the AI accounts you already pay for.</title>
|
|
11
11
|
<script type="importmap">{"imports":{"react":"/shared/react.js","react/jsx-runtime":"/shared/jsx-runtime.js","react-dom":"/shared/react-dom.js","react-dom/client":"/shared/react-dom-client.js","styled-components":"/shared/styled-components.js","@tanstack/react-query":"/shared/react-query.js","@omnigateway/dashboard-sdk":"/shared/dashboard-sdk.js"}}</script>
|
|
12
|
-
<script type="module" crossorigin src="/assets/index-
|
|
13
|
-
<link rel="modulepreload" crossorigin href="/assets/queries-
|
|
12
|
+
<script type="module" crossorigin src="/assets/index-C3LoGDKu.js"></script>
|
|
13
|
+
<link rel="modulepreload" crossorigin href="/assets/queries-GAue98pY.js">
|
|
14
14
|
<link rel="modulepreload" crossorigin href="/assets/matchContext-BOenO3J2.js">
|
|
15
|
-
<link rel="modulepreload" crossorigin href="/assets/Match-
|
|
15
|
+
<link rel="modulepreload" crossorigin href="/assets/Match-CvkEmOIG.js">
|
|
16
16
|
<link rel="stylesheet" crossorigin href="/assets/index-Co2s5xMk.css">
|
|
17
17
|
</head>
|
|
18
18
|
<body>
|
|
@@ -1,316 +0,0 @@
|
|
|
1
|
-
import{D as e,E as t,H as n,M as r,at as i,ct as a,dt as o,et as s,ft as c,k as l,lt as u,ot as d,pt as f,rt as p,tt as m,ut as h,w as g}from"./queries-DuSqKybM.js";import{t as _}from"./index-DiCU8bLB.js";import{M as v,P as y,a as ee,i as b,j as x,s as te,x as ne}from"./States-CauIsA0N.js";import*as S from"react";import{createContext as re,createElement as C,forwardRef as ie,useContext as w,useEffect as ae,useId as oe,useMemo as se,useState as T}from"react";import{Fragment as E,jsx as D,jsxs as O}from"react/jsx-runtime";import*as ce from"react-dom";import k,{css as le}from"styled-components";import{LiveProvider as ue,useLive as de}from"@omnigateway/dashboard-sdk";var fe=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),pe=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),me=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),he=e=>{let t=me(e);return t.charAt(0).toUpperCase()+t.slice(1)},ge={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`},_e=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},ve=re({}),ye=()=>w(ve),be=ie(({color:e,size:t,strokeWidth:n,absoluteStrokeWidth:r,className:i=``,children:a,iconNode:o,...s},c)=>{let{size:l=24,strokeWidth:u=2,absoluteStrokeWidth:d=!1,color:f=`currentColor`,className:p=``}=ye()??{},m=r??d?Number(n??u)*24/Number(t??l):n??u;return C(`svg`,{ref:c,...ge,width:t??l??ge.width,height:t??l??ge.height,stroke:e??f,strokeWidth:m,className:fe(`lucide`,p,i),...!a&&!_e(s)&&{"aria-hidden":`true`},...s},[...o.map(([e,t])=>C(e,t)),...Array.isArray(a)?a:[a]])}),A=(e,t)=>{let n=ie(({className:n,...r},i)=>C(be,{ref:i,iconNode:t,className:fe(`lucide-${pe(he(e))}`,`lucide-${e}`,n),...r}));return n.displayName=he(e),n},xe=A(`activity`,[[`path`,{d:`M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2`,key:`169zse`}]]),Se=A(`blocks`,[[`path`,{d:`M10 22V7a1 1 0 0 0-1-1H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5a1 1 0 0 0-1-1H2`,key:`1ah6g2`}],[`rect`,{x:`14`,y:`2`,width:`8`,height:`8`,rx:`1`,key:`88lufb`}]]),Ce=A(`boxes`,[[`path`,{d:`M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z`,key:`lc1i9w`}],[`path`,{d:`m7 16.5-4.74-2.85`,key:`1o9zyk`}],[`path`,{d:`m7 16.5 5-3`,key:`va8pkn`}],[`path`,{d:`M7 16.5v5.17`,key:`jnp8gn`}],[`path`,{d:`M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z`,key:`8zsnat`}],[`path`,{d:`m17 16.5-5-3`,key:`8arw3v`}],[`path`,{d:`m17 16.5 4.74-2.85`,key:`8rfmw`}],[`path`,{d:`M17 16.5v5.17`,key:`k6z78m`}],[`path`,{d:`M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z`,key:`1xygjf`}],[`path`,{d:`M12 8 7.26 5.15`,key:`1vbdud`}],[`path`,{d:`m12 8 4.74-2.85`,key:`3rx089`}],[`path`,{d:`M12 13.5V8`,key:`1io7kd`}]]),we=A(`cable`,[[`path`,{d:`M17 19a1 1 0 0 1-1-1v-2a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2a1 1 0 0 1-1 1z`,key:`trhst0`}],[`path`,{d:`M17 21v-2`,key:`ds4u3f`}],[`path`,{d:`M19 14V6.5a1 1 0 0 0-7 0v11a1 1 0 0 1-7 0V10`,key:`1mo9zo`}],[`path`,{d:`M21 21v-2`,key:`eo0ou`}],[`path`,{d:`M3 5V3`,key:`1k5hjh`}],[`path`,{d:`M4 10a2 2 0 0 1-2-2V6a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2z`,key:`1dd30t`}],[`path`,{d:`M7 5V3`,key:`1t1388`}]]),Te=A(`database`,[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}],[`path`,{d:`M3 5V19A9 3 0 0 0 21 19V5`,key:`1wlel7`}],[`path`,{d:`M3 12A9 3 0 0 0 21 12`,key:`mv7ke4`}]]),Ee=A(`gauge`,[[`path`,{d:`m12 14 4-4`,key:`9kzdfg`}],[`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`,key:`19p75a`}]]),De=A(`key-round`,[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]),Oe=A(`log-out`,[[`path`,{d:`m16 17 5-5-5-5`,key:`1bji2h`}],[`path`,{d:`M21 12H9`,key:`dn1m92`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}]]),ke=A(`monitor-cog`,[[`path`,{d:`M12 17v4`,key:`1riwvh`}],[`path`,{d:`m14.305 7.53.923-.382`,key:`1mlnsw`}],[`path`,{d:`m15.228 4.852-.923-.383`,key:`82mpwg`}],[`path`,{d:`m16.852 3.228-.383-.924`,key:`ln4sir`}],[`path`,{d:`m16.852 8.772-.383.923`,key:`1dejw0`}],[`path`,{d:`m19.148 3.228.383-.924`,key:`192kgf`}],[`path`,{d:`m19.53 9.696-.382-.924`,key:`fiavlr`}],[`path`,{d:`m20.772 4.852.924-.383`,key:`1j8mgp`}],[`path`,{d:`m20.772 7.148.924.383`,key:`zix9be`}],[`path`,{d:`M22 13v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7`,key:`1tnzv8`}],[`path`,{d:`M8 21h8`,key:`1ev6f3`}],[`circle`,{cx:`18`,cy:`6`,r:`3`,key:`1h7g24`}]]),Ae=A(`moon`,[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`,key:`kfwtm`}]]),je=A(`power`,[[`path`,{d:`M12 2v10`,key:`mnfbl`}],[`path`,{d:`M18.4 6.6a9 9 0 1 1-12.77.04`,key:`obofu9`}]]),Me=A(`rotate-cw`,[[`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`,key:`1p45f6`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}]]),Ne=A(`scroll-text`,[[`path`,{d:`M15 12h-5`,key:`r7krc0`}],[`path`,{d:`M15 8h-5`,key:`1khuty`}],[`path`,{d:`M19 17V5a2 2 0 0 0-2-2H4`,key:`zz82l3`}],[`path`,{d:`M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3`,key:`1ph1d7`}]]),Pe=A(`sliders-horizontal`,[[`path`,{d:`M10 5H3`,key:`1qgfaw`}],[`path`,{d:`M12 19H3`,key:`yhmn1j`}],[`path`,{d:`M14 3v4`,key:`1sua03`}],[`path`,{d:`M16 17v4`,key:`1q0r14`}],[`path`,{d:`M21 12h-9`,key:`1o4lsq`}],[`path`,{d:`M21 19h-5`,key:`1rlt1p`}],[`path`,{d:`M21 5h-7`,key:`1oszz2`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M8 12H3`,key:`a7s4jb`}]]),Fe=A(`sun`,[[`circle`,{cx:`12`,cy:`12`,r:`4`,key:`4exip2`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`m4.93 4.93 1.41 1.41`,key:`149t6j`}],[`path`,{d:`m17.66 17.66 1.41 1.41`,key:`ptbguv`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`m6.34 17.66-1.41 1.41`,key:`1m8zz5`}],[`path`,{d:`m19.07 4.93-1.41 1.41`,key:`1shlcs`}]]),Ie=A(`terminal`,[[`path`,{d:`M12 19h8`,key:`baeox8`}],[`path`,{d:`m4 17 6-6-6-6`,key:`1yngyt`}]]),Le=A(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]),Re=Object.defineProperty,ze=(e,t)=>Re(e,`name`,{value:t,configurable:!0});function Be(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}ze(Be,`setRef`);function Ve(...e){return t=>{let n=!1,r=e.map(e=>{let r=Be(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];typeof n==`function`?n():Be(e[t],null)}}}}ze(Ve,`composeRefs`);function j(...e){return S.useCallback(Ve(...e),e)}ze(j,`useComposedRefs`);var He=Object.defineProperty,M=(e,t)=>He(e,`name`,{value:t,configurable:!0});function Ue(e){let t=S.forwardRef((t,n)=>{let{children:r,...i}=t,a=null,o=!1,s=[];Ze(r)&&typeof tt==`function`&&(r=tt(r._payload)),S.Children.forEach(r,e=>{if(Ye(e)){o=!0;let t=e,n=`child`in t.props?t.props.child:t.props.children;Ze(n)&&typeof tt==`function`&&(n=tt(n._payload)),a=Ke(t,n),s.push(a?.props?.children)}else s.push(e)}),a?a=S.cloneElement(a,void 0,s):!o&&S.Children.count(r)===1&&S.isValidElement(r)&&(a=r);let c=a?Je(a):void 0,l=j(n,c);if(!a){if(r||r===0)throw Error(o?et(e):$e(e));return r}let u=qe(i,a.props??{});return a.type!==S.Fragment&&(u.ref=n?l:c),S.cloneElement(a,u)});return t.displayName=`${e}.Slot`,t}M(Ue,`createSlot`);var We=Symbol.for(`radix.slottable`);function Ge(e){let t=M(e=>`child`in e?e.children(e.child):e.children,`Slottable`);return t.displayName=`${e}.Slottable`,t.__radixId=We,t}M(Ge,`createSlottable`);var Ke=M((e,t)=>{if(`child`in e.props){let t=e.props.child;return S.isValidElement(t)?S.cloneElement(t,void 0,e.props.children(t.props.children)):null}return S.isValidElement(t)?t:null},`getSlottableElementFromSlottable`);function qe(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}M(qe,`mergeProps`);function Je(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}M(Je,`getElementRef`);function Ye(e){return S.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===We}M(Ye,`isSlottable`);var Xe=Symbol.for(`react.lazy`);function Ze(e){return typeof e==`object`&&!!e&&`$$typeof`in e&&e.$$typeof===Xe&&`_payload`in e&&Qe(e._payload)}M(Ze,`isLazyComponent`);function Qe(e){return typeof e==`object`&&!!e&&`then`in e}M(Qe,`isPromiseLike`);var $e=M(e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,`createSlotError`),et=M(e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,`createSlottableError`),tt=S.use,nt=Object.defineProperty,rt=(e,t)=>nt(e,`name`,{value:t,configurable:!0}),N=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`select`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=Ue(`Primitive.${t}`),r=S.forwardRef((e,r)=>{let{asChild:i,...a}=e,o=i?n:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),D(o,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function it(e,t){e&&ce.flushSync(()=>e.dispatchEvent(t))}rt(it,`dispatchDiscreteCustomEvent`);var at=Object.defineProperty,P=(e,t)=>at(e,`name`,{value:t,configurable:!0});function ot(e,t){let n=S.createContext(t);n.displayName=e+`Context`;let r=P(e=>{let{children:t,...r}=e,i=S.useMemo(()=>r,Object.values(r));return D(n.Provider,{value:i,children:t})},`Provider`);r.displayName=e+`Provider`;function i(r,i={}){let{optional:a=!1}=i,o=S.useContext(n);if(o)return o;if(t!==void 0)return t;if(!a)throw Error(`\`${r}\` must be used within \`${e}\``)}return P(i,`useContext`),[r,i]}P(ot,`createContext`);function st(e,t=[]){let n=[];function r(t,r){let i=S.createContext(r);i.displayName=t+`Context`;let a=n.length;n=[...n,r];let o=P(t=>{let{scope:n,children:r,...o}=t,s=n?.[e]?.[a]||i,c=S.useMemo(()=>o,Object.values(o));return D(s.Provider,{value:c,children:r})},`Provider`);o.displayName=t+`Provider`;function s(n,o,s={}){let{optional:c=!1}=s,l=o?.[e]?.[a]||i,u=S.useContext(l);if(u)return u;if(r!==void 0)return r;if(!c)throw Error(`\`${n}\` must be used within \`${t}\``)}return P(s,`useContext`),[o,s]}P(r,`createContext`);let i=P(()=>{let t=n.map(e=>S.createContext(e));return P(function(n){let r=n?.[e]||t;return S.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])},`useScope`)},`createScope`);return i.scopeName=e,[r,ct(i,...t)]}P(st,`createContextScope`);function ct(...e){let t=e[0];if(e.length===1)return t;let n=P(()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return P(function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let i=n(e)[`__scope${r}`];return{...t,...i}},{});return S.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])},`useComposedScopes`)},`createScope`);return n.scopeName=t.scopeName,n}P(ct,`composeContextScopes`);var lt=Object.defineProperty,F=(e,t)=>lt(e,`name`,{value:t,configurable:!0}),ut=!!(typeof window<`u`&&window.document&&window.document.createElement);function I(e,t,{checkForDefaultPrevented:n=!0}={}){return F(function(r){if(e?.(r),n===!1||!r||!r.defaultPrevented)return t?.(r)},`handleEvent`)}F(I,`composeEventHandlers`);function dt(e){if(!ut)throw Error(`Cannot access window outside of the DOM`);return e?.ownerDocument?.defaultView??window}F(dt,`getOwnerWindow`);function ft(e){if(!ut)throw Error(`Cannot access document outside of the DOM`);return e?.ownerDocument??document}F(ft,`getOwnerDocument`);function pt(e,t=!1){let{activeElement:n}=ft(e);if(!n?.nodeName)return null;if(mt(n)&&n.contentDocument)return pt(n.contentDocument.body,t);if(t){let e=n.getAttribute(`aria-activedescendant`);if(e){let t=ft(n).getElementById(e);if(t)return t}}return n}F(pt,`getActiveElement`);function mt(e){return e.tagName===`IFRAME`}F(mt,`isFrame`);var L=globalThis?.document?S.useLayoutEffect:()=>{},ht=Object.defineProperty,gt=(e,t)=>ht(e,`name`,{value:t,configurable:!0}),_t=S.useEffectEvent,vt=S.useInsertionEffect;function yt(e){if(typeof _t==`function`)return _t(e);let t=S.useRef(()=>{throw Error(`Cannot call an event handler while rendering.`)});return typeof vt==`function`?vt(()=>{t.current=e}):L(()=>{t.current=e}),S.useMemo(()=>((...e)=>t.current?.(...e)),[])}gt(yt,`useEffectEvent`);var bt=Object.defineProperty,R=(e,t)=>bt(e,`name`,{value:t,configurable:!0}),xt=S.useInsertionEffect||L;function St({prop:e,defaultProp:t,onChange:n=R(()=>{},`onChange`),caller:r}){let[i,a,o]=Ct({defaultProp:t,onChange:n}),s=e!==void 0;return[s?e:i,S.useCallback(t=>{if(s){let n=wt(t)?t(e):t;n!==e&&o.current?.(n)}else a(t)},[s,e,a,o])]}R(St,`useControllableState`);function Ct({defaultProp:e,onChange:t}){let[n,r]=S.useState(e),i=S.useRef(n),a=S.useRef(t);return xt(()=>{a.current=t},[t]),S.useEffect(()=>{i.current!==n&&(a.current?.(n),i.current=n)},[n,i]),[n,r,a]}R(Ct,`useUncontrolledState`);function wt(e){return typeof e==`function`}R(wt,`isFunction`);var Tt=Symbol(`RADIX:SYNC_STATE`);function Et(e,t,n,r){let{prop:i,defaultProp:a,onChange:o,caller:s}=t,c=i!==void 0,l=yt(o),u=[{...n,state:a}];r&&u.push(r);let[d,f]=S.useReducer((t,n)=>{if(n.type===Tt)return{...t,state:n.state};let r=e(t,n);return c&&!Object.is(r.state,t.state)&&l(r.state),r},...u),p=d.state,m=S.useRef(p);S.useEffect(()=>{m.current!==p&&(m.current=p,c||l(p))},[p,m,c]);let h=S.useMemo(()=>i===void 0?d:{...d,state:i},[d,i]);return S.useEffect(()=>{c&&!Object.is(i,d.state)&&f({type:Tt,state:i})},[i,d.state,c]),[h,f]}R(Et,`useControllableStateReducer`);var Dt=Object.defineProperty,z=(e,t)=>Dt(e,`name`,{value:t,configurable:!0});function Ot(e,t){return S.useReducer((e,n)=>t[e][n]??e,e)}z(Ot,`useStateMachine`);var kt=z(e=>{let{present:t,children:n}=e,r=At(t),i=typeof n==`function`?n({present:r.isPresent}):S.Children.only(n),a=Mt(r.ref,Nt(i));return typeof n==`function`||r.isPresent?S.cloneElement(i,{ref:a}):null},`Presence`);function At(e){let[t,n]=S.useState(),r=S.useRef(null),i=S.useRef(e),a=S.useRef(`none`),o=S.useRef(void 0),[s,c]=Ot(e?`mounted`:`unmounted`,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}});return S.useEffect(()=>{s===`mounted`?(a.current=o.current??B(r.current),o.current=void 0):a.current=`none`},[s]),L(()=>{let t=r.current,n=i.current;if(n!==e){let r=a.current,s=B(t);e?(o.current=s,c(`MOUNT`)):s===`none`||t?.display===`none`?c(`UNMOUNT`):c(n&&r!==s?`ANIMATION_OUT`:`UNMOUNT`),i.current=e}},[e,c]),L(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,o=z(a=>{let o=B(r.current).includes(CSS.escape(a.animationName));if(a.target===t&&o&&(c(`ANIMATION_END`),!i.current)){let r=t.style.animationFillMode;t.style.animationFillMode=`forwards`,e=n.setTimeout(()=>{t.style.animationFillMode===`forwards`&&(t.style.animationFillMode=r)})}},`handleAnimationEnd`),s=z(e=>{e.target===t&&(a.current=B(r.current))},`handleAnimationStart`);return t.addEventListener(`animationstart`,s),t.addEventListener(`animationcancel`,o),t.addEventListener(`animationend`,o),()=>{n.clearTimeout(e),t.removeEventListener(`animationstart`,s),t.removeEventListener(`animationcancel`,o),t.removeEventListener(`animationend`,o)}}c(`ANIMATION_END`)},[t,c]),{isPresent:[`mounted`,`unmountSuspended`].includes(s),ref:S.useCallback(e=>{if(e){let t=getComputedStyle(e);r.current=t,o.current=B(t)}else r.current=null;n(e)},[])}}z(At,`usePresence`);function jt(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}z(jt,`setRef`);function Mt(...e){let t=S.useRef(e);return t.current=e,S.useCallback(e=>{let n=t.current,r=!1,i=n.map(t=>{let n=jt(t,e);return!r&&typeof n==`function`&&(r=!0),n});if(r)return()=>{for(let e=0;e<i.length;e++){let t=i[e];typeof t==`function`?t():jt(n[e],null)}}},[])}z(Mt,`useStableComposedRefs`);function B(e){return e?.animationName||`none`}z(B,`getAnimationName`);function Nt(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}z(Nt,`getElementRef`);var Pt=Object.defineProperty,Ft=(e,t)=>Pt(e,`name`,{value:t,configurable:!0}),It=S.useId||(()=>void 0),Lt=0;function Rt(e){let[t,n]=S.useState(It());return L(()=>{e||n(e=>e??String(Lt++))},[e]),e||(t?`radix-${t}`:``)}Ft(Rt,`useId`);var zt=Object.defineProperty,Bt=(e,t)=>zt(e,`name`,{value:t,configurable:!0});function V(e){let t=S.useRef(e);return S.useEffect(()=>{t.current=e}),S.useMemo(()=>((...e)=>t.current?.(...e)),[])}Bt(V,`useCallbackRef`);var Vt=Object.defineProperty,H=(e,t)=>Vt(e,`name`,{value:t,configurable:!0}),Ht=`dismissableLayer.update`,Ut=`dismissableLayer.pointerDownOutside`,Wt=`dismissableLayer.focusOutside`,Gt,Kt=S.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),qt=S.forwardRef(H(function(e,t){let{disableOutsidePointerEvents:n=!1,deferPointerDownOutside:r=!1,onEscapeKeyDown:i,onPointerDownOutside:a,onFocusOutside:o,onInteractOutside:s,onDismiss:c,...l}=e,u=S.useContext(Kt),[d,f]=S.useState(null),p=d?.ownerDocument??globalThis?.document,[,m]=S.useState({}),h=j(t,f),g=Array.from(u.layers),[_]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),v=_?g.indexOf(_):-1,y=d?g.indexOf(d):-1,ee=u.layersWithOutsidePointerEventsDisabled.size>0,b=y>=v,x=S.useRef(!1),te=Xt(e=>{a?.(e),s?.(e),e.defaultPrevented||c?.()},{ownerDocument:p,deferPointerDownOutside:r,isDeferredPointerDownOutsideRef:x,dismissableSurfaces:u.dismissableSurfaces,shouldHandlePointerDownOutside:S.useCallback(e=>{if(!(e instanceof Node))return!1;let t=[...u.branches].some(t=>t.contains(e));return b&&!t},[u.branches,b])}),ne=Zt(e=>{if(r&&x.current)return;let t=e.target;[...u.branches].some(e=>e.contains(t))||(o?.(e),s?.(e),e.defaultPrevented||c?.())},p),re=d?y===g.length-1:!1,C=V(e=>{e.key===`Escape`&&(i?.(e),!e.defaultPrevented&&c&&(e.preventDefault(),c()))});return S.useEffect(()=>{if(re)return p.addEventListener(`keydown`,C,{capture:!0}),()=>p.removeEventListener(`keydown`,C,{capture:!0})},[p,re,C]),S.useEffect(()=>{if(d)return n&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(Gt=p.body.style.pointerEvents,p.body.style.pointerEvents=`none`),u.layersWithOutsidePointerEventsDisabled.add(d)),u.layers.add(d),Qt(),()=>{n&&(u.layersWithOutsidePointerEventsDisabled.delete(d),u.layersWithOutsidePointerEventsDisabled.size===0&&(p.body.style.pointerEvents=Gt))}},[d,p,n,u]),S.useEffect(()=>()=>{d&&(u.layers.delete(d),u.layersWithOutsidePointerEventsDisabled.delete(d),Qt())},[d,u]),S.useEffect(()=>{let e=H(()=>m({}),`handleUpdate`);return document.addEventListener(Ht,e),()=>document.removeEventListener(Ht,e)},[]),D(N.div,{...l,ref:h,style:{pointerEvents:ee?b?`auto`:`none`:void 0,...e.style},onFocusCapture:I(e.onFocusCapture,ne.onFocusCapture),onBlurCapture:I(e.onBlurCapture,ne.onBlurCapture),onPointerDownCapture:I(e.onPointerDownCapture,te.onPointerDownCapture)})},`DismissableLayer`));function Jt(){let e=S.useContext(Kt),[t,n]=S.useState(null);return S.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),n}H(Jt,`useDismissableLayerSurface`);var Yt=H(()=>!0,`IS_TRUE`);function Xt(e,t){let{ownerDocument:n=globalThis?.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:i,dismissableSurfaces:a,shouldHandlePointerDownOutside:o=Yt}=t,s=V(e),c=S.useRef(!1),l=S.useRef(!1),u=S.useRef(new Map),d=S.useRef(()=>{});return S.useEffect(()=>{function e(){l.current=!1,i.current=!1,u.current.clear()}H(e,`resetOutsideInteraction`);function t(){return Array.from(u.current.values()).some(Boolean)}H(t,`isOutsideInteractionIntercepted`);function f(e){if(!l.current)return;let t=e.target;t instanceof Node&&[...a].some(e=>e.contains(t))||u.current.set(e.type,!0),e.type===`click`&&window.setTimeout(()=>{l.current&&d.current()},0)}H(f,`handleInteractionCapture`);function p(e){l.current&&u.current.set(e.type,!1)}H(p,`handleInteractionBubble`);let m=H(a=>{if(a.target&&!c.current){let f=function(){n.removeEventListener(`click`,d.current);let r=t();e(),r||$t(Ut,s,p,{discrete:!0})};if(H(f,`handleAndDispatchPointerDownOutsideEvent`),!o(a.target)){n.removeEventListener(`click`,d.current),e(),c.current=!1;return}let p={originalEvent:a};l.current=!0,i.current=r&&a.button===0,u.current.clear(),!r||a.button!==0?f():(n.removeEventListener(`click`,d.current),d.current=f,n.addEventListener(`click`,d.current,{once:!0}))}else n.removeEventListener(`click`,d.current),e();c.current=!1},`handlePointerDown`),h=[`pointerup`,`mousedown`,`mouseup`,`touchstart`,`touchend`,`click`];for(let e of h)n.addEventListener(e,f,!0),n.addEventListener(e,p);let g=window.setTimeout(()=>{n.addEventListener(`pointerdown`,m)},0);return()=>{window.clearTimeout(g),n.removeEventListener(`pointerdown`,m),n.removeEventListener(`click`,d.current);for(let e of h)n.removeEventListener(e,f,!0),n.removeEventListener(e,p)}},[n,s,r,i,a,o]),{onPointerDownCapture:H(()=>c.current=!0,`onPointerDownCapture`)}}H(Xt,`usePointerDownOutside`);function Zt(e,t=globalThis?.document){let n=V(e),r=S.useRef(!1);return S.useEffect(()=>{let e=H(e=>{e.target&&!r.current&&$t(Wt,n,{originalEvent:e},{discrete:!1})},`handleFocus`);return t.addEventListener(`focusin`,e),()=>t.removeEventListener(`focusin`,e)},[t,n]),{onFocusCapture:H(()=>r.current=!0,`onFocusCapture`),onBlurCapture:H(()=>r.current=!1,`onBlurCapture`)}}H(Zt,`useFocusOutside`);function Qt(){let e=new CustomEvent(Ht);document.dispatchEvent(e)}H(Qt,`dispatchUpdate`);function $t(e,t,n,{discrete:r}){let i=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?it(i,a):i.dispatchEvent(a)}H($t,`handleAndDispatchCustomEvent`);var en=Object.defineProperty,U=(e,t)=>en(e,`name`,{value:t,configurable:!0}),tn=`focusScope.autoFocusOnMount`,nn=`focusScope.autoFocusOnUnmount`,rn={bubbles:!1,cancelable:!0},an=S.forwardRef(U(function(e,t){let{loop:n=!1,trapped:r=!1,onMountAutoFocus:i,onUnmountAutoFocus:a,...o}=e,[s,c]=S.useState(null),l=V(i),u=V(a),d=S.useRef(null),f=j(t,c),p=S.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;S.useEffect(()=>{if(r){let e=function(e){if(p.paused||!s)return;let t=e.target;s.contains(t)?d.current=t:W(d.current,{select:!0})},t=function(e){if(p.paused||!s)return;let t=e.relatedTarget;t!==null&&(s.contains(t)||W(d.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&W(s)};U(e,`handleFocusIn`),U(t,`handleFocusOut`),U(n,`handleMutations`),document.addEventListener(`focusin`,e),document.addEventListener(`focusout`,t);let r=new MutationObserver(n);return s&&r.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener(`focusin`,e),document.removeEventListener(`focusout`,t),r.disconnect()}}},[r,s,p.paused]),S.useEffect(()=>{if(s){fn.add(p);let e=document.activeElement;if(!s.contains(e)){let t=new CustomEvent(tn,rn);s.addEventListener(tn,l),s.dispatchEvent(t),t.defaultPrevented||(on(hn(cn(s)),{select:!0}),document.activeElement===e&&W(s))}return()=>{s.removeEventListener(tn,l),setTimeout(()=>{let t=new CustomEvent(nn,rn);s.addEventListener(nn,u),s.dispatchEvent(t),t.defaultPrevented||W(e??document.body,{select:!0}),s.removeEventListener(nn,u),fn.remove(p)},0)}}},[s,l,u,p]);let m=S.useCallback(e=>{if(!n&&!r||p.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,i=document.activeElement;if(t&&i){let t=e.currentTarget,[r,a]=sn(t);r&&a?!e.shiftKey&&i===a?(e.preventDefault(),n&&W(r,{select:!0})):e.shiftKey&&i===r&&(e.preventDefault(),n&&W(a,{select:!0})):i===t&&e.preventDefault()}},[n,r,p.paused]);return D(N.div,{tabIndex:-1,...o,ref:f,onKeyDown:m})},`FocusScope`));function on(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(W(r,{select:t}),document.activeElement!==n)return}U(on,`focusFirst`);function sn(e){let t=cn(e);return[ln(t,e),ln(t.reverse(),e)]}U(sn,`getTabbableEdges`);function cn(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:U(e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},`acceptNode`)});for(;n.nextNode();)t.push(n.currentNode);return t}U(cn,`getTabbableCandidates`);function ln(e,t){let n=typeof t.checkVisibility==`function`&&t.checkVisibility({checkVisibilityCSS:!0});for(let r of e)if(!(n?!r.checkVisibility({checkVisibilityCSS:!0}):un(r,{upTo:t})))return r}U(ln,`findVisible`);function un(e,{upTo:t}){if(getComputedStyle(e).visibility===`hidden`)return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display===`none`)return!0;e=e.parentElement}return!1}U(un,`isHidden`);function dn(e){return e instanceof HTMLInputElement&&`select`in e}U(dn,`isSelectableInput`);function W(e,{select:t=!1}={}){if(e&&e.focus){let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&dn(e)&&t&&e.select()}}U(W,`focus`);var fn=pn();function pn(){let e=[];return{add(t){let n=e[0];t!==n&&n?.pause(),e=mn(e,t),e.unshift(t)},remove(t){e=mn(e,t),e[0]?.resume()}}}U(pn,`createFocusScopesStack`);function mn(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}U(mn,`arrayRemove`);function hn(e){return e.filter(e=>e.tagName!==`A`)}U(hn,`removeLinks`);var gn=Object.defineProperty,_n=S.forwardRef(((e,t)=>gn(e,`name`,{value:t,configurable:!0}))(function(e,t){let{container:n,...r}=e,[i,a]=S.useState(!1);L(()=>a(!0),[]);let o=n||i&&globalThis?.document?.body;return o?ce.createPortal(D(N.div,{...r,ref:t}),o):null},`Portal`)),vn=Object.defineProperty,yn=(e,t)=>vn(e,`name`,{value:t,configurable:!0}),bn=0,G=null;function xn(e){return Sn(),e.children}yn(xn,`FocusGuards`);function Sn(){S.useEffect(()=>{G||={start:Cn(),end:Cn()};let{start:e,end:t}=G;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement(`afterbegin`,e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement(`beforeend`,t),bn++,()=>{bn===1&&(G?.start.remove(),G?.end.remove(),G=null),bn=Math.max(0,bn-1)}},[])}yn(Sn,`useFocusGuards`);function Cn(){let e=document.createElement(`span`);return e.setAttribute(`data-radix-focus-guard`,``),e.tabIndex=0,e.style.outline=`none`,e.style.opacity=`0`,e.style.position=`fixed`,e.style.pointerEvents=`none`,e}yn(Cn,`createFocusGuard`);var K=function(){return K=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},K.apply(this,arguments)};function wn(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function Tn(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||=Array.prototype.slice.call(t,0,r),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}var En=`right-scroll-bar-position`,Dn=`width-before-scroll-bar`,On=`with-scroll-bars-hidden`,kn=`--removed-body-scroll-bar-size`;function An(e,t){return typeof e==`function`?e(t):e&&(e.current=t),e}function jn(e,t){var n=T(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(e){var t=n.value;t!==e&&(n.value=e,n.callback(e,t))}}}})[0];return n.callback=t,n.facade}var Mn=typeof window<`u`?S.useLayoutEffect:S.useEffect,Nn=new WeakMap;function Pn(e,t){var n=jn(t||null,function(t){return e.forEach(function(e){return An(e,t)})});return Mn(function(){var t=Nn.get(n);if(t){var r=new Set(t),i=new Set(e),a=n.current;r.forEach(function(e){i.has(e)||An(e,null)}),i.forEach(function(e){r.has(e)||An(e,a)})}Nn.set(n,e)},[e]),n}function Fn(e){return e}function In(e,t){t===void 0&&(t=Fn);var n=[],r=!1;return{read:function(){if(r)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(e){var i=t(e,r);return n.push(i),function(){n=n.filter(function(e){return e!==i})}},assignSyncMedium:function(e){for(r=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){r=!0;var t=[];if(n.length){var i=n;n=[],i.forEach(e),t=n}var a=function(){var n=t;t=[],n.forEach(e)},o=function(){return Promise.resolve().then(a)};o(),n={push:function(e){t.push(e),o()},filter:function(e){return t=t.filter(e),n}}}}}function Ln(e){e===void 0&&(e={});var t=In(null);return t.options=K({async:!0,ssr:!1},e),t}var Rn=function(e){var t=e.sideCar,n=wn(e,[`sideCar`]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw Error(`Sidecar medium not found`);return S.createElement(r,K({},n))};Rn.isSideCarExport=!0;function zn(e,t){return e.useMedium(t),Rn}var Bn=Ln(),Vn=function(){},Hn=S.forwardRef(function(e,t){var n=S.useRef(null),r=S.useState({onScrollCapture:Vn,onWheelCapture:Vn,onTouchMoveCapture:Vn}),i=r[0],a=r[1],o=e.forwardProps,s=e.children,c=e.className,l=e.removeScrollBar,u=e.enabled,d=e.shards,f=e.sideCar,p=e.noRelative,m=e.noIsolation,h=e.inert,g=e.allowPinchZoom,_=e.as,v=_===void 0?`div`:_,y=e.gapMode,ee=wn(e,[`forwardProps`,`children`,`className`,`removeScrollBar`,`enabled`,`shards`,`sideCar`,`noRelative`,`noIsolation`,`inert`,`allowPinchZoom`,`as`,`gapMode`]),b=f,x=Pn([n,t]),te=K(K({},ee),i);return S.createElement(S.Fragment,null,u&&S.createElement(b,{sideCar:Bn,removeScrollBar:l,shards:d,noRelative:p,noIsolation:m,inert:h,setCallbacks:a,allowPinchZoom:!!g,lockRef:n,gapMode:y}),o?S.cloneElement(S.Children.only(s),K(K({},te),{ref:x})):S.createElement(v,K({},te,{className:c,ref:x}),s))});Hn.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},Hn.classNames={fullWidth:Dn,zeroRight:En};var Un,Wn=function(){if(Un)return Un;if(typeof __webpack_nonce__<`u`)return __webpack_nonce__};function Gn(){if(!document)return null;var e=document.createElement(`style`);e.type=`text/css`;var t=Wn();return t&&e.setAttribute(`nonce`,t),e}function Kn(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function qn(e){(document.head||document.getElementsByTagName(`head`)[0]).appendChild(e)}var Jn=function(){var e=0,t=null;return{add:function(n){e==0&&(t=Gn())&&(Kn(t,n),qn(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},Yn=function(){var e=Jn();return function(t,n){S.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},Xn=function(){var e=Yn();return function(t){var n=t.styles,r=t.dynamic;return e(n,r),null}},Zn={left:0,top:0,right:0,gap:0},Qn=function(e){return parseInt(e||``,10)||0},$n=function(e){var t=window.getComputedStyle(document.body),n=t[e===`padding`?`paddingLeft`:`marginLeft`],r=t[e===`padding`?`paddingTop`:`marginTop`],i=t[e===`padding`?`paddingRight`:`marginRight`];return[Qn(n),Qn(r),Qn(i)]},er=function(e){if(e===void 0&&(e=`margin`),typeof window>`u`)return Zn;var t=$n(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},tr=Xn(),q=`data-scroll-locked`,nr=function(e,t,n,r){var i=e.left,a=e.top,o=e.right,s=e.gap;return n===void 0&&(n=`margin`),`
|
|
2
|
-
.${On} {
|
|
3
|
-
overflow: hidden ${r};
|
|
4
|
-
padding-right: ${s}px ${r};
|
|
5
|
-
}
|
|
6
|
-
body[${q}] {
|
|
7
|
-
overflow: hidden ${r};
|
|
8
|
-
overscroll-behavior: contain;
|
|
9
|
-
${[t&&`position: relative ${r};`,n===`margin`&&`
|
|
10
|
-
padding-left: ${i}px;
|
|
11
|
-
padding-top: ${a}px;
|
|
12
|
-
padding-right: ${o}px;
|
|
13
|
-
margin-left:0;
|
|
14
|
-
margin-top:0;
|
|
15
|
-
margin-right: ${s}px ${r};
|
|
16
|
-
`,n===`padding`&&`padding-right: ${s}px ${r};`].filter(Boolean).join(``)}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
.${En} {
|
|
20
|
-
right: ${s}px ${r};
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
.${Dn} {
|
|
24
|
-
margin-right: ${s}px ${r};
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
.${En} .${En} {
|
|
28
|
-
right: 0 ${r};
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
.${Dn} .${Dn} {
|
|
32
|
-
margin-right: 0 ${r};
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
body[${q}] {
|
|
36
|
-
${kn}: ${s}px;
|
|
37
|
-
}
|
|
38
|
-
`},rr=function(){var e=parseInt(document.body.getAttribute(`data-scroll-locked`)||`0`,10);return isFinite(e)?e:0},ir=function(){S.useEffect(function(){return document.body.setAttribute(q,(rr()+1).toString()),function(){var e=rr()-1;e<=0?document.body.removeAttribute(q):document.body.setAttribute(q,e.toString())}},[])},ar=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,i=r===void 0?`margin`:r;ir();var a=S.useMemo(function(){return er(i)},[i]);return S.createElement(tr,{styles:nr(a,!t,i,n?``:`!important`)})},or=!1;if(typeof window<`u`)try{var sr=Object.defineProperty({},"passive",{get:function(){return or=!0,!0}});window.addEventListener(`test`,sr,sr),window.removeEventListener(`test`,sr,sr)}catch{or=!1}var J=or?{passive:!1}:!1,cr=function(e){return e.tagName===`TEXTAREA`},lr=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!==`hidden`&&!(n.overflowY===n.overflowX&&!cr(e)&&n[t]===`visible`)},ur=function(e){return lr(e,`overflowY`)},dr=function(e){return lr(e,`overflowX`)},fr=function(e,t){var n=t.ownerDocument,r=t;do{if(typeof ShadowRoot<`u`&&r instanceof ShadowRoot&&(r=r.host),hr(e,r)){var i=gr(e,r);if(i[1]>i[2])return!0}r=r.parentNode}while(r&&r!==n.body);return!1},pr=function(e){return[e.scrollTop,e.scrollHeight,e.clientHeight]},mr=function(e){return[e.scrollLeft,e.scrollWidth,e.clientWidth]},hr=function(e,t){return e===`v`?ur(t):dr(t)},gr=function(e,t){return e===`v`?pr(t):mr(t)},_r=function(e,t){return e===`h`&&t===`rtl`?-1:1},vr=function(e,t,n,r,i){var a=_r(e,window.getComputedStyle(t).direction),o=a*r,s=n.target,c=t.contains(s),l=!1,u=o>0,d=0,f=0;do{if(!s)break;var p=gr(e,s),m=p[0],h=p[1]-p[2]-a*m;(m||h)&&hr(e,s)&&(d+=h,f+=m);var g=s.parentNode;s=g&&g.nodeType===Node.DOCUMENT_FRAGMENT_NODE?g.host:g}while(!c&&s!==document.body||c&&(t.contains(s)||t===s));return(u&&(i&&Math.abs(d)<1||!i&&o>d)||!u&&(i&&Math.abs(f)<1||!i&&-o>f))&&(l=!0),l},yr=function(e){return`changedTouches`in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},br=function(e){return[e.deltaX,e.deltaY]},xr=function(e){return e&&`current`in e?e.current:e},Sr=function(e,t){return e[0]===t[0]&&e[1]===t[1]},Cr=function(e){return`
|
|
39
|
-
.block-interactivity-${e} {pointer-events: none;}
|
|
40
|
-
.allow-interactivity-${e} {pointer-events: all;}
|
|
41
|
-
`},wr=0,Y=[];function Tr(e){var t=S.useRef([]),n=S.useRef([0,0]),r=S.useRef(),i=S.useState(wr++)[0],a=S.useState(Xn)[0],o=S.useRef(e);S.useEffect(function(){o.current=e},[e]),S.useEffect(function(){if(e.inert){document.body.classList.add(`block-interactivity-${i}`);var t=Tn([e.lockRef.current],(e.shards||[]).map(xr),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add(`allow-interactivity-${i}`)}),function(){document.body.classList.remove(`block-interactivity-${i}`),t.forEach(function(e){return e.classList.remove(`allow-interactivity-${i}`)})}}},[e.inert,e.lockRef.current,e.shards]);var s=S.useCallback(function(e,t){if(`touches`in e&&e.touches.length===2||e.type===`wheel`&&e.ctrlKey)return!o.current.allowPinchZoom;var i=yr(e),a=n.current,s=`deltaX`in e?e.deltaX:a[0]-i[0],c=`deltaY`in e?e.deltaY:a[1]-i[1],l,u=e.target,d=Math.abs(s)>Math.abs(c)?`h`:`v`;if(`touches`in e&&d===`h`&&u.type===`range`)return!1;var f=window.getSelection(),p=f&&f.anchorNode;if(p&&(p===u||p.contains(u)))return!1;var m=fr(d,u);if(!m)return!0;if(m?l=d:(l=d===`v`?`h`:`v`,m=fr(d,u)),!m)return!1;if(!r.current&&`changedTouches`in e&&(s||c)&&(r.current=l),!l)return!0;var h=r.current||l;return vr(h,t,e,h===`h`?s:c,!0)},[]),c=S.useCallback(function(e){var n=e;if(!(!Y.length||Y[Y.length-1]!==a)){var r=`deltaY`in n?br(n):yr(n),i=t.current.filter(function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&Sr(e.delta,r)})[0];if(i&&i.should){n.cancelable&&n.preventDefault();return}if(!i){var c=(o.current.shards||[]).map(xr).filter(Boolean).filter(function(e){return e.contains(n.target)});(c.length>0?s(n,c[0]):!o.current.noIsolation)&&n.cancelable&&n.preventDefault()}}},[]),l=S.useCallback(function(e,n,r,i){var a={name:e,delta:n,target:r,should:i,shadowParent:Er(r)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),u=S.useCallback(function(e){n.current=yr(e),r.current=void 0},[]),d=S.useCallback(function(t){l(t.type,br(t),t.target,s(t,e.lockRef.current))},[]),f=S.useCallback(function(t){l(t.type,yr(t),t.target,s(t,e.lockRef.current))},[]);S.useEffect(function(){return Y.push(a),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:f}),document.addEventListener(`wheel`,c,J),document.addEventListener(`touchmove`,c,J),document.addEventListener(`touchstart`,u,J),function(){Y=Y.filter(function(e){return e!==a}),document.removeEventListener(`wheel`,c,J),document.removeEventListener(`touchmove`,c,J),document.removeEventListener(`touchstart`,u,J)}},[]);var p=e.removeScrollBar,m=e.inert;return S.createElement(S.Fragment,null,m?S.createElement(a,{styles:Cr(i)}):null,p?S.createElement(ar,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function Er(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}var Dr=zn(Bn,Tr),Or=S.forwardRef(function(e,t){return S.createElement(Hn,K({},e,{ref:t,sideCar:Dr}))});Or.classNames=Hn.classNames;var kr=function(e){return typeof document>`u`?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},X=new WeakMap,Ar=new WeakMap,jr={},Mr=0,Nr=function(e){return e&&(e.host||Nr(e.parentNode))},Pr=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=Nr(t);return n&&e.contains(n)?n:(console.error(`aria-hidden`,t,`in not contained inside`,e,`. Doing nothing`),null)}).filter(function(e){return!!e})},Fr=function(e,t,n,r){var i=Pr(t,Array.isArray(e)?e:[e]);jr[n]||(jr[n]=new WeakMap);var a=jr[n],o=[],s=new Set,c=new Set(i),l=function(e){!e||s.has(e)||(s.add(e),l(e.parentNode))};i.forEach(l);var u=function(e){!e||c.has(e)||Array.prototype.forEach.call(e.children,function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),i=t!==null&&t!==`false`,c=(X.get(e)||0)+1,l=(a.get(e)||0)+1;X.set(e,c),a.set(e,l),o.push(e),c===1&&i&&Ar.set(e,!0),l===1&&e.setAttribute(n,`true`),i||e.setAttribute(r,`true`)}catch(t){console.error(`aria-hidden: cannot operate on `,e,t)}})};return u(t),s.clear(),Mr++,function(){o.forEach(function(e){var t=X.get(e)-1,i=a.get(e)-1;X.set(e,t),a.set(e,i),t||(Ar.has(e)||e.removeAttribute(r),Ar.delete(e)),i||e.removeAttribute(n)}),Mr--,Mr||(X=new WeakMap,X=new WeakMap,Ar=new WeakMap,jr={})}},Ir=function(e,t,n){n===void 0&&(n=`data-aria-hidden`);var r=Array.from(Array.isArray(e)?e:[e]),i=t||kr(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll(`[aria-live], script`))),Fr(r,i,n,`aria-hidden`)):function(){return null}},Lr=Object.defineProperty,Z=(e,t)=>Lr(e,`name`,{value:t,configurable:!0}),Rr=`Dialog`,[zr,Br]=st(Rr),[Vr,Q]=zr(Rr),Hr=Z(e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!0}=e,s=S.useRef(null),c=S.useRef(null),[l,u]=St({prop:r,defaultProp:i??!1,onChange:a,caller:Rr}),[d,f]=S.useState(0),[p,m]=S.useState(0);return D(Vr,{scope:t,triggerRef:s,contentRef:c,contentId:Rt(),titleId:Rt(),descriptionId:Rt(),titlePresent:d>0,descriptionPresent:p>0,setTitleCount:f,setDescriptionCount:m,open:l,onOpenChange:u,onOpenToggle:S.useCallback(()=>u(e=>!e),[u]),modal:o,children:n})},`Dialog`),Ur=`DialogPortal`,[Wr,Gr]=zr(Ur,{forceMount:void 0}),Kr=Z(e=>{let{__scopeDialog:t,forceMount:n,children:r,container:i}=e,a=Q(Ur,t);return D(Wr,{scope:t,forceMount:n,children:S.Children.map(r,e=>D(kt,{present:n||a.open,children:D(_n,{asChild:!0,container:i,children:e})}))})},`DialogPortal`),qr=`DialogOverlay`,Jr=S.forwardRef(Z(function(e,t){let n=Gr(qr,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=Q(qr,e.__scopeDialog);return a.modal?D(kt,{present:r||a.open,children:D(Xr,{...i,ref:t})}):null},`DialogOverlay`)),Yr=Ue(`DialogOverlay.RemoveScroll`),Xr=S.forwardRef(Z(function(e,t){let{__scopeDialog:n,...r}=e,i=Q(qr,n),a=j(t,Jt());return D(Or,{as:Yr,allowPinchZoom:!0,shards:[i.contentRef],children:D(N.div,{"data-state":ci(i.open),...r,ref:a,style:{pointerEvents:`auto`,...r.style}})})},`DialogOverlayImpl`)),Zr=`DialogContent`,Qr=S.forwardRef(Z(function(e,t){let n=Gr(Zr,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=Q(Zr,e.__scopeDialog);return D(kt,{present:r||a.open,children:a.modal?D($r,{...i,ref:t}):D(ei,{...i,ref:t})})},`DialogContent`)),$r=S.forwardRef(Z(function(e,t){let n=Q(Zr,e.__scopeDialog),r=S.useRef(null),i=j(t,n.contentRef,r);return S.useEffect(()=>{let e=r.current;if(e)return Ir(e)},[]),D(ti,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,onCloseAutoFocus:I(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:I(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()}),onFocusOutside:I(e.onFocusOutside,e=>e.preventDefault())})},`DialogContentModal`)),ei=S.forwardRef(Z(function(e,t){let n=Q(Zr,e.__scopeDialog),r=S.useRef(!1),i=S.useRef(!1);return D(ti,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})},`DialogContentNonModal`)),ti=S.forwardRef(Z(function(e,t){let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,...o}=e,s=Q(Zr,n);return Sn(),D(E,{children:D(an,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:D(qt,{role:`dialog`,id:s.contentId,"aria-describedby":s.descriptionPresent?s.descriptionId:void 0,"aria-labelledby":s.titlePresent?s.titleId:void 0,"data-state":ci(s.open),...o,ref:t,deferPointerDownOutside:!0,onDismiss:()=>s.onOpenChange(!1)})})})},`DialogContentImpl`)),ni=`DialogTitle`,ri=S.forwardRef(Z(function(e,t){let{__scopeDialog:n,...r}=e,i=Q(ni,n),{setTitleCount:a}=i;return L(()=>(a(e=>e+1),()=>a(e=>e-1)),[a]),D(N.h2,{id:i.titleId,...r,ref:t})},`DialogTitle`)),ii=`DialogDescription`,ai=S.forwardRef(Z(function(e,t){let{__scopeDialog:n,...r}=e,i=Q(ii,n),{setDescriptionCount:a}=i;return L(()=>(a(e=>e+1),()=>a(e=>e-1)),[a]),D(N.p,{id:i.descriptionId,...r,ref:t})},`DialogDescription`)),oi=`DialogClose`,si=S.forwardRef(Z(function(e,t){let{__scopeDialog:n,...r}=e,i=Q(oi,n);return D(N.button,{type:`button`,...r,ref:t,onClick:I(e.onClick,()=>i.onOpenChange(!1))})},`DialogClose`));function ci(e){return e?`open`:`closed`}Z(ci,`getState`);var li=k(Jr)`
|
|
42
|
-
position: fixed;
|
|
43
|
-
inset: 0;
|
|
44
|
-
z-index: ${({theme:e})=>e.z.overlay};
|
|
45
|
-
background: oklch(0 0 0 / 0.5);
|
|
46
|
-
backdrop-filter: blur(2px);
|
|
47
|
-
`,ui=k(Qr)`
|
|
48
|
-
position: fixed;
|
|
49
|
-
z-index: ${({theme:e})=>e.z.dialog};
|
|
50
|
-
top: 50%;
|
|
51
|
-
left: 50%;
|
|
52
|
-
transform: translate(-50%, -50%);
|
|
53
|
-
width: min(${({$width:e})=>e}, calc(100vw - 32px));
|
|
54
|
-
max-height: calc(100vh - 64px);
|
|
55
|
-
display: flex;
|
|
56
|
-
flex-direction: column;
|
|
57
|
-
background: ${({theme:e})=>e.color.panel};
|
|
58
|
-
border: 1px solid ${({theme:e})=>e.color.ruleStrong};
|
|
59
|
-
border-radius: ${({theme:e})=>e.radius.panel};
|
|
60
|
-
box-shadow: 0 12px 40px oklch(0 0 0 / 0.35);
|
|
61
|
-
`,di=k.div`
|
|
62
|
-
display: flex;
|
|
63
|
-
align-items: center;
|
|
64
|
-
gap: ${({theme:e})=>e.space(2)};
|
|
65
|
-
padding: ${({theme:e})=>`${e.space(2)} ${e.space(2)} ${e.space(2)} ${e.space(3)}`};
|
|
66
|
-
border-bottom: 1px solid ${({theme:e})=>e.color.rule};
|
|
67
|
-
background: ${({theme:e})=>e.color.panelSunk};
|
|
68
|
-
`,fi=k.div`
|
|
69
|
-
padding: ${({theme:e})=>e.space(3)};
|
|
70
|
-
overflow-y: auto;
|
|
71
|
-
`,pi=k.div`
|
|
72
|
-
display: flex;
|
|
73
|
-
justify-content: flex-end;
|
|
74
|
-
gap: ${({theme:e})=>e.space(2)};
|
|
75
|
-
padding: ${({theme:e})=>`${e.space(2)} ${e.space(3)}`};
|
|
76
|
-
border-top: 1px solid ${({theme:e})=>e.color.rule};
|
|
77
|
-
background: ${({theme:e})=>e.color.panelSunk};
|
|
78
|
-
`,mi=k(ai)`
|
|
79
|
-
margin: 0 0 ${({theme:e})=>e.space(3)};
|
|
80
|
-
font-size: 12px;
|
|
81
|
-
color: ${({theme:e})=>e.color.inkDim};
|
|
82
|
-
`;function hi({open:e,onOpenChange:t,title:n,description:r,footer:a,width:c=`560px`,children:l}){return D(Hr,{open:e,onOpenChange:t,children:O(Kr,{children:[D(li,{}),O(ui,{$width:c,children:[O(di,{children:[D(ri,{asChild:!0,children:D(s,{as:`h2`,children:n})}),D(i,{}),D(si,{asChild:!0,children:D(o,{type:`button`,$variant:`ghost`,$size:`sm`,"aria-label":`Close`,children:D(Le,{})})})]}),O(fi,{children:[r===void 0?null:D(mi,{children:r}),l]}),a===void 0?null:D(pi,{children:a})]})]})})}var gi=k.p`
|
|
83
|
-
font-size: 13px;
|
|
84
|
-
color: ${({theme:e})=>e.color.inkDim};
|
|
85
|
-
`;function _i({open:e,onOpenChange:t,title:n,body:r,confirmLabel:i,busy:a,onConfirm:o}){return D(hi,{open:e,onOpenChange:t,title:n,width:`420px`,footer:O(E,{children:[D(h,{type:`button`,onClick:()=>t(!1),children:`Cancel`}),D(h,{type:`button`,$variant:`danger`,disabled:a===!0,onClick:o,children:i})]}),children:D(gi,{children:r})})}var vi=k.svg`
|
|
86
|
-
display: block;
|
|
87
|
-
width: 100%;
|
|
88
|
-
height: 100%;
|
|
89
|
-
overflow: visible;
|
|
90
|
-
`;function yi(e,t,n,r){if(e.length===0)return``;let i=e.length===1?0:t/(e.length-1);return e.map((e,t)=>{let a=t*i,o=n-(r===0?0:e/r*n);return`${t===0?`M`:`L`}${a.toFixed(2)},${o.toFixed(2)}`}).join(` `)}function bi({values:e,overlay:t,height:n=28,color:r,overlayColor:i,scaleTo:a,label:o,className:s}){let c=oe(),l=a===void 0?Math.max(1,...e,...t??[]):Math.max(1,a),u=yi(e,100,n,l),d=u.length===0?``:`${u} L100,${n} L0,${n} Z`;return O(vi,{className:s,viewBox:`0 0 100 ${n}`,preserveAspectRatio:`none`,role:`img`,"aria-label":o,style:{height:n},children:[D(`defs`,{children:O(`linearGradient`,{id:c,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[D(`stop`,{offset:`0%`,stopColor:r??`var(--accent)`,stopOpacity:`0.28`}),D(`stop`,{offset:`100%`,stopColor:r??`var(--accent)`,stopOpacity:`0`})]})}),d.length===0?null:D(`path`,{d,fill:`url(#${c})`}),t===void 0?null:D(`path`,{d:yi(t,100,n,l),fill:`none`,stroke:i??`var(--down)`,strokeWidth:`1.25`,vectorEffect:`non-scaling-stroke`}),D(`path`,{d:u,fill:`none`,stroke:r??`var(--accent)`,strokeWidth:`1.5`,strokeLinejoin:`round`,vectorEffect:`non-scaling-stroke`})]})}var xi=k.header`
|
|
91
|
-
grid-area: chassis;
|
|
92
|
-
display: flex;
|
|
93
|
-
align-items: center;
|
|
94
|
-
gap: ${({theme:e})=>e.space(3)};
|
|
95
|
-
height: 48px;
|
|
96
|
-
padding: 0 ${({theme:e})=>e.space(3)};
|
|
97
|
-
border-bottom: 1px solid ${({theme:e})=>e.color.rule};
|
|
98
|
-
background: ${({theme:e})=>e.color.panel};
|
|
99
|
-
${u}
|
|
100
|
-
position: sticky;
|
|
101
|
-
top: 0;
|
|
102
|
-
z-index: ${({theme:e})=>e.z.chassis};
|
|
103
|
-
`,Si=k.div`
|
|
104
|
-
display: flex;
|
|
105
|
-
align-items: baseline;
|
|
106
|
-
gap: 7px;
|
|
107
|
-
font-stretch: 74%;
|
|
108
|
-
font-weight: 700;
|
|
109
|
-
letter-spacing: 0.2em;
|
|
110
|
-
font-size: 12px;
|
|
111
|
-
text-transform: uppercase;
|
|
112
|
-
flex: none;
|
|
113
|
-
`,Ci=k(p)`
|
|
114
|
-
gap: ${({theme:e})=>e.space(3)};
|
|
115
|
-
overflow: hidden;
|
|
116
|
-
|
|
117
|
-
@media (max-width: 860px) {
|
|
118
|
-
display: none;
|
|
119
|
-
}
|
|
120
|
-
`,$=k.div`
|
|
121
|
-
display: flex;
|
|
122
|
-
align-items: baseline;
|
|
123
|
-
gap: 6px;
|
|
124
|
-
padding-left: ${({theme:e})=>e.space(3)};
|
|
125
|
-
border-left: 1px solid ${({theme:e})=>e.color.rule};
|
|
126
|
-
white-space: nowrap;
|
|
127
|
-
`,wi=k($)`
|
|
128
|
-
width: 96px;
|
|
129
|
-
align-items: center;
|
|
130
|
-
`,Ti=k.div`
|
|
131
|
-
flex: 1;
|
|
132
|
-
min-width: 0;
|
|
133
|
-
`,Ei=k(h)`
|
|
134
|
-
gap: 6px;
|
|
135
|
-
font-family: ${({theme:e})=>e.font.mono};
|
|
136
|
-
letter-spacing: 0.08em;
|
|
137
|
-
`,Di=k.span`
|
|
138
|
-
color: ${({theme:e})=>e.color.inkFaint};
|
|
139
|
-
`,Oi={push:{name:`live, pushing`,lamp:`live`,head:`LIVE`,tail:`PUSH`,title:`Refreshing on gateway push — pause refreshing`},poll:{name:`live, polling`,lamp:`ok`,head:`LIVE`,tail:`POLL`,title:`Refreshing on a timer — pause refreshing`},paused:{name:`paused`,lamp:`idle`,head:`PAUSED`,tail:null,title:`Resume refreshing`},offline:{name:`offline`,lamp:`down`,head:`OFFLINE`,tail:null,title:`Not refreshing — the admin session ended, sign in again`}},ki=[`system`,`light`,`dark`],Ai={system:`Match system theme`,light:`Light theme`,dark:`Dark theme`},ji=6e5;function Mi(){let n=f(),{live:r,toggle:a,cadence:c,connection:l}=de(),{mode:u,setMode:d}=_(),p=t(),h=e(200,c(1e4,`res:logs`)),g=Date.now(),b=se(()=>(h.data??[]).filter(e=>g-e.at<=ji),[h.data,g]),S=ne(b,ji),re=te(b,{now:g,spanMs:ji,count:24}),C=ki[(ki.indexOf(u)+1)%ki.length]??`system`,ie=u===`light`?Fe:u===`dark`?Ae:ke,w=Oi[r?l.status===`offline`?`offline`:l.status===`push`?`push`:`poll`:`paused`],ae=h.isError||S.errorRate>=.25?`down`:S.errorRate>=.05?`warn`:b.length===0?`idle`:`ok`;return O(xi,{children:[O(Si,{children:[D(ee,{state:ae,label:h.isError?`gateway unreachable`:`error rate ${v(S.errorRate)}`}),`Omnigateway`]}),O(Ci,{children:[O(wi,{children:[D(s,{children:`req`}),D(Ti,{children:D(bi,{values:re.map(e=>e.total),overlay:re.map(e=>e.errors),height:22,label:`${S.requests} requests in the last 10 minutes`})})]}),O($,{children:[D(s,{children:`rate`}),D(m,{children:S.ratePerMin.toFixed(1)}),D(s,{children:`/min`})]}),O($,{children:[D(s,{children:`err`}),D(m,{style:{color:S.errorRate>=.05?`var(--down)`:void 0},children:v(S.errorRate)})]}),O($,{children:[D(s,{children:`ttft p50`}),D(m,{children:x(S.ttftP50)})]}),O($,{children:[D(s,{children:`spend`}),D(m,{children:y(S.costUsd)})]})]}),D(i,{}),O(Ei,{type:`button`,$size:`sm`,onClick:a,"aria-pressed":r,"aria-label":w.name,title:w.title,children:[D(ee,{state:w.lamp,label:w.name}),w.head,w.tail===null?null:O(E,{children:[D(Di,{"aria-hidden":`true`,children:`·`}),w.tail]})]}),D(o,{type:`button`,$variant:`ghost`,$size:`sm`,onClick:()=>d(C),"aria-label":Ai[u],title:`${Ai[u]} — switch to ${Ai[C].toLowerCase()}`,children:D(ie,{})}),D(o,{type:`button`,$variant:`ghost`,$size:`sm`,"aria-label":`Sign out`,title:`Sign out`,disabled:p.isPending,onClick:()=>{p.mutate(void 0,{onSuccess:()=>void n({to:`/login`})})},children:D(Oe,{})})]})}function Ni(e){return`/plugins/${e}`}function Pi(e){return e.filter(e=>e.nav!==null&&e.ui!==null).sort((e,t)=>e.id.localeCompare(t.id)).map(e=>({id:e.id,label:e.nav?.label??e.name,disabledReason:Fi(e)}))}function Fi(e){let t=e.ui;return t===null||t.compatible&&t.entry!==null?null:t.reason??`This plugin's interface does not match this gateway.`}var Ii={systemd:`systemd is capturing this process, so a restart asks the manager to bring the unit back rather than signalling the gateway itself.`,container:`This gateway is running in a container, so a restart is an exit and the container's restart policy decides what happens next.`,none:`Nothing is supervising this process. It was started directly, and whatever stops it leaves it stopped.`},Li=k.hr`
|
|
140
|
-
flex: none;
|
|
141
|
-
border: 0;
|
|
142
|
-
margin: 0;
|
|
143
|
-
height: 1px;
|
|
144
|
-
align-self: stretch;
|
|
145
|
-
background: ${({theme:e})=>e.color.rule};
|
|
146
|
-
|
|
147
|
-
/* The rail turns on its side below 720px, and so does the rule that closes it. */
|
|
148
|
-
@media (max-width: 720px) {
|
|
149
|
-
height: auto;
|
|
150
|
-
width: 1px;
|
|
151
|
-
margin-left: ${({theme:e})=>e.space(2)};
|
|
152
|
-
}
|
|
153
|
-
`,Ri=k.div`
|
|
154
|
-
display: flex;
|
|
155
|
-
flex-direction: column;
|
|
156
|
-
gap: 6px;
|
|
157
|
-
padding-top: ${({theme:e})=>e.space(2)};
|
|
158
|
-
|
|
159
|
-
@media (max-width: 720px) {
|
|
160
|
-
padding-top: 0;
|
|
161
|
-
padding-left: ${({theme:e})=>e.space(2)};
|
|
162
|
-
flex-direction: row;
|
|
163
|
-
align-items: center;
|
|
164
|
-
}
|
|
165
|
-
`,zi=k(h)`
|
|
166
|
-
justify-content: flex-start;
|
|
167
|
-
width: 100%;
|
|
168
|
-
|
|
169
|
-
@media (max-width: 720px) {
|
|
170
|
-
width: auto;
|
|
171
|
-
}
|
|
172
|
-
`,Bi=k.p`
|
|
173
|
-
font-size: 10.5px;
|
|
174
|
-
line-height: 1.3;
|
|
175
|
-
color: ${({theme:e})=>e.color.warn};
|
|
176
|
-
`,Vi=k.p`
|
|
177
|
-
font-size: 10.5px;
|
|
178
|
-
line-height: 1.3;
|
|
179
|
-
color: ${({theme:e})=>e.color.down};
|
|
180
|
-
`,Hi=k.p`
|
|
181
|
-
font-size: 10.5px;
|
|
182
|
-
line-height: 1.3;
|
|
183
|
-
color: ${({theme:e})=>e.color.inkDim};
|
|
184
|
-
${a}
|
|
185
|
-
`,Ui=k.p`
|
|
186
|
-
font-size: 10.5px;
|
|
187
|
-
line-height: 1.3;
|
|
188
|
-
color: ${({theme:e})=>e.color.inkDim};
|
|
189
|
-
`,Wi=9e4;async function Gi(){try{return(await fetch(`/health`,{cache:`no-store`})).ok}catch{return!1}}function Ki({pollMs:e=750}){let t=g(),a=r(),o=n(),[c,l]=T(null),[u,f]=T(!1),[p,m]=T(!1),[h,_]=T(`idle`),v=t.data;ae(()=>{if(!u)return;let t=!1,n,r=!1,i=0,a=Math.max(1,Math.ceil(Wi/e)),o=async()=>{let s=await Gi();if(!t){if(!r&&!s)r=!0,_(`returning`);else if(r&&s){window.location.reload();return}if(i+=1,i>=a){_(`lost`),f(!1);return}n=setTimeout(()=>void o(),e)}};return n=setTimeout(()=>void o(),e),()=>{t=!0,n!==void 0&&clearTimeout(n)}},[u,e]);let y=()=>{_(`leaving`),a.mutate(void 0,{onSuccess:()=>f(!0),onError:()=>_(`idle`)})};return p?O(E,{children:[D(i,{}),D(Li,{}),D(Ri,{children:O(d,{$gap:1,children:[D(s,{children:`Gateway stopped`}),O(Ui,{children:[`Nothing on this screen will update again, and nothing here can start it: that needs`,` `,v?.supervisor===`container`?`the host that runs this container`:`a shell on the machine it runs on`,`.`]})]})})]}):O(E,{children:[D(i,{}),D(Li,{}),O(Ri,{title:v===void 0?void 0:Ii[v.supervisor],children:[O(zi,{type:`button`,$size:`sm`,"aria-label":`Restart gateway`,disabled:v===void 0||!v.canRestart||a.isPending||u,onClick:()=>l(`restart`),children:[D(Me,{}),`Restart`]}),O(zi,{type:`button`,$size:`sm`,$variant:`danger`,"aria-label":`Shut down gateway`,disabled:v===void 0||!v.canShutdown||o.isPending||u,onClick:()=>l(`shutdown`),children:[D(je,{}),`Shut down`]}),v?.note===void 0?null:D(Bi,{children:v.note}),h===`leaving`?D(Hi,{role:`status`,children:`Restarting. Waiting for the gateway to stop answering.`}):h===`returning`?D(Hi,{role:`status`,children:`The gateway has stopped answering. Waiting for it to come back, then this page reloads.`}):h===`lost`?D(Vi,{role:`alert`,children:`The gateway has not come back. Reload this page once it is running again, or check the machine it runs on.`}):null,a.isError?D(Vi,{role:`alert`,children:b(a.error)}):null,o.isError?D(Vi,{role:`alert`,children:b(o.error)}):null]}),D(_i,{open:c===`restart`,onOpenChange:e=>{e||l(null)},title:`Restart gateway`,body:`${v===void 0?``:`${Ii[v.supervisor]} `}Requests in flight are dropped when the process goes. This console waits for the gateway to stop answering and to answer again, then reloads itself.`,confirmLabel:`Restart now`,busy:a.isPending,onConfirm:()=>{l(null),y()}}),D(_i,{open:c===`shutdown`,onOpenChange:e=>{e||l(null)},title:`Shut down gateway`,body:v?.supervisor===`container`?`Stopping the only process in this container takes this dashboard with it, and the dashboard is what would have restarted the gateway. Unless the container's restart policy brings it back, getting it running again needs access to the host.`:`The gateway stops serving and stays stopped. This console goes with it, so starting the gateway again needs a shell on the machine it runs on.`,confirmLabel:`Shut down now`,busy:o.isPending,onConfirm:()=>{l(null),o.mutate(void 0,{onSuccess:()=>m(!0)})}})]})}var qi=[{to:`/`,label:`Rack`,blurb:`Live state of every account and model`,Icon:xe},{to:`/accounts`,label:`Accounts`,blurb:`Provider credentials and their health`,Icon:we},{to:`/models`,label:`Models`,blurb:`Virtual models, targets, and routing`,Icon:Ce},{to:`/keys`,label:`Keys`,blurb:`Gateway API keys and their limits`,Icon:De},{to:`/usage`,label:`Usage`,blurb:`Requests, tokens, and spend over time`,Icon:Ee},{to:`/logs`,label:`Logs`,blurb:`Recent requests, one row each`,Icon:Ne},{to:`/console`,label:`Console`,blurb:`The gateway's own output, as it was printed`,Icon:Ie},{to:`/settings`,label:`Settings`,blurb:`Routing weights, retries, retention`,Icon:Pe},{to:`/database`,label:`Database`,blurb:`Size, snapshots, and retention`,Icon:Te}],Ji=k.nav`
|
|
190
|
-
grid-area: rail;
|
|
191
|
-
display: flex;
|
|
192
|
-
flex-direction: column;
|
|
193
|
-
gap: 2px;
|
|
194
|
-
padding: ${({theme:e})=>e.space(2)};
|
|
195
|
-
border-right: 1px solid ${({theme:e})=>e.color.rule};
|
|
196
|
-
background: ${({theme:e})=>e.color.panel};
|
|
197
|
-
overflow-y: auto;
|
|
198
|
-
|
|
199
|
-
@media (max-width: 720px) {
|
|
200
|
-
flex-direction: row;
|
|
201
|
-
overflow-x: auto;
|
|
202
|
-
border-right: 0;
|
|
203
|
-
border-bottom: 1px solid ${({theme:e})=>e.color.rule};
|
|
204
|
-
}
|
|
205
|
-
`,Yi=le`
|
|
206
|
-
display: flex;
|
|
207
|
-
align-items: center;
|
|
208
|
-
gap: ${({theme:e})=>e.space(2)};
|
|
209
|
-
padding: 7px ${({theme:e})=>e.space(2)};
|
|
210
|
-
border-radius: ${({theme:e})=>e.radius.control};
|
|
211
|
-
border-left: 2px solid transparent;
|
|
212
|
-
color: ${({theme:e})=>e.color.inkDim};
|
|
213
|
-
font-size: 12.5px;
|
|
214
|
-
font-weight: 500;
|
|
215
|
-
white-space: nowrap;
|
|
216
|
-
transition:
|
|
217
|
-
background 120ms ease,
|
|
218
|
-
color 120ms ease;
|
|
219
|
-
|
|
220
|
-
svg {
|
|
221
|
-
width: 15px;
|
|
222
|
-
height: 15px;
|
|
223
|
-
flex: none;
|
|
224
|
-
}
|
|
225
|
-
`,Xi=k(c)`
|
|
226
|
-
${Yi}
|
|
227
|
-
|
|
228
|
-
&:hover {
|
|
229
|
-
background: ${({theme:e})=>e.color.panelSunk};
|
|
230
|
-
color: ${({theme:e})=>e.color.ink};
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
&[data-status="active"] {
|
|
234
|
-
background: ${({theme:e})=>e.color.accentWash};
|
|
235
|
-
border-left-color: ${({theme:e})=>e.color.accent};
|
|
236
|
-
color: ${({theme:e})=>e.color.accent};
|
|
237
|
-
}
|
|
238
|
-
`,Zi=k.button`
|
|
239
|
-
${Yi}
|
|
240
|
-
align-items: flex-start;
|
|
241
|
-
width: 100%;
|
|
242
|
-
text-align: left;
|
|
243
|
-
white-space: normal;
|
|
244
|
-
background: none;
|
|
245
|
-
border-top: 0;
|
|
246
|
-
border-right: 0;
|
|
247
|
-
border-bottom: 0;
|
|
248
|
-
color: ${({theme:e})=>e.color.inkFaint};
|
|
249
|
-
cursor: not-allowed;
|
|
250
|
-
font-family: inherit;
|
|
251
|
-
|
|
252
|
-
svg {
|
|
253
|
-
margin-top: 2px;
|
|
254
|
-
}
|
|
255
|
-
`,Qi=k.span`
|
|
256
|
-
display: flex;
|
|
257
|
-
flex-direction: column;
|
|
258
|
-
gap: 2px;
|
|
259
|
-
min-width: 0;
|
|
260
|
-
`,$i=k.span`
|
|
261
|
-
font-size: 10.5px;
|
|
262
|
-
font-weight: 400;
|
|
263
|
-
line-height: 1.3;
|
|
264
|
-
color: ${({theme:e})=>e.color.warn};
|
|
265
|
-
`;function ea(){let e=l();return O(Ji,{"aria-label":`Console sections`,children:[qi.map(({to:e,label:t,blurb:n,Icon:r})=>O(Xi,{to:e,title:n,activeOptions:{exact:e===`/`},children:[D(r,{}),t]},e)),Pi(e.data??[]).map(({id:e,label:t,disabledReason:n})=>n===null?O(Xi,{to:Ni(e),title:`Provided by the ${e} plugin`,children:[D(Se,{}),t]},e):O(Zi,{type:`button`,disabled:!0,children:[D(Se,{}),O(Qi,{children:[t,D($i,{children:n})]})]},e)),D(Ki,{})]})}var ta=k.div`
|
|
266
|
-
display: grid;
|
|
267
|
-
grid-template-areas:
|
|
268
|
-
"chassis chassis"
|
|
269
|
-
"rail main";
|
|
270
|
-
grid-template-columns: 168px minmax(0, 1fr);
|
|
271
|
-
grid-template-rows: auto minmax(0, 1fr);
|
|
272
|
-
height: 100vh;
|
|
273
|
-
min-height: 0;
|
|
274
|
-
overflow: hidden;
|
|
275
|
-
|
|
276
|
-
@media (max-width: 720px) {
|
|
277
|
-
grid-template-areas:
|
|
278
|
-
"chassis"
|
|
279
|
-
"rail"
|
|
280
|
-
"main";
|
|
281
|
-
grid-template-columns: minmax(0, 1fr);
|
|
282
|
-
grid-template-rows: auto auto minmax(0, 1fr);
|
|
283
|
-
}
|
|
284
|
-
`,na=k.main`
|
|
285
|
-
grid-area: main;
|
|
286
|
-
padding: ${({theme:e})=>e.space(4)};
|
|
287
|
-
display: flex;
|
|
288
|
-
flex-direction: column;
|
|
289
|
-
gap: ${({theme:e})=>e.space(4)};
|
|
290
|
-
min-width: 0;
|
|
291
|
-
min-height: 0;
|
|
292
|
-
overflow-y: auto;
|
|
293
|
-
|
|
294
|
-
@media (max-width: 720px) {
|
|
295
|
-
padding: ${({theme:e})=>e.space(3)};
|
|
296
|
-
}
|
|
297
|
-
`;function ra({children:e}){return O(ta,{"data-testid":`rack-shell`,children:[D(Mi,{}),D(ea,{}),D(na,{children:e})]})}var ia=k.div`
|
|
298
|
-
display: flex;
|
|
299
|
-
align-items: flex-end;
|
|
300
|
-
gap: ${({theme:e})=>e.space(3)};
|
|
301
|
-
flex-wrap: wrap;
|
|
302
|
-
`,aa=k.h1`
|
|
303
|
-
font-size: 20px;
|
|
304
|
-
font-weight: 600;
|
|
305
|
-
font-stretch: 88%;
|
|
306
|
-
letter-spacing: -0.01em;
|
|
307
|
-
`,oa=k.p`
|
|
308
|
-
font-size: 13px;
|
|
309
|
-
color: ${({theme:e})=>e.color.inkDim};
|
|
310
|
-
max-width: 68ch;
|
|
311
|
-
`,sa=k.div`
|
|
312
|
-
display: flex;
|
|
313
|
-
flex-direction: column;
|
|
314
|
-
gap: 6px;
|
|
315
|
-
min-width: 0;
|
|
316
|
-
`;function ca({legend:e,title:t,summary:n,actions:r}){return O(ia,{children:[O(sa,{children:[D(s,{children:e}),D(aa,{children:t}),D(oa,{children:n})]}),D(i,{}),r]})}export{de as a,St as c,st as d,N as f,A as g,Te as h,ue as i,L as l,Pe as m,ra as n,_i as o,j as p,bi as r,hi as s,ca as t,I as u};
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import{J as e,et as t,ut as n}from"./queries-DuSqKybM.js";import{jsx as r,jsxs as i}from"react/jsx-runtime";import a,{css as o,keyframes as s}from"styled-components";var c=new Intl.NumberFormat(`en-US`,{notation:`compact`,maximumFractionDigits:1}),l=new Intl.NumberFormat(`en-US`);function u(e){return Number.isFinite(e)?e<1e4?l.format(Math.round(e)):c.format(e).toLowerCase():`—`}function d(e){return Number.isFinite(e)?e===0?`$0`:e<.01?`$${e.toFixed(4)}`:e<100?`$${e.toFixed(2)}`:`$${c.format(e).toLowerCase()}`:`—`}function f(e){return e==null||!Number.isFinite(e)?`—`:e<1e3?`${Math.round(e)}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:`${Math.round(e/6e4)}m`}function ee(e,t=1){return Number.isFinite(e)?`${(e*100).toFixed(t)}%`:`—`}var p=[[6e4,1e3,`s`],[36e5,6e4,`m`],[864e5,36e5,`h`],[1/0,864e5,`d`]];function m(e){let t=Math.abs(e);if(t<1e3)return`0s`;let n=p.find(([e])=>t<e);return n===void 0?`—`:`${Math.floor(t/n[1])}${n[2]}`}function h(e,t=Date.now()){if(e==null||!Number.isFinite(e))return`—`;let n=e-t;return Math.abs(n)<5e3?`just now`:n<0?`${m(n)} ago`:`in ${m(n)}`}function g(e){return new Date(e).toLocaleTimeString(`en-GB`,{hour12:!1})}var _=864e5;function v(e,t){let n=new Date(e),r=n.toLocaleTimeString(`en-GB`,{hour:`2-digit`,minute:`2-digit`,hour12:!1});return y(t)?`${n.toLocaleDateString(`en-GB`,{day:`2-digit`,month:`short`})} ${r}`:r}function y(e){return e>=_}function b(e){return e==null||!Number.isFinite(e)?`—`:new Date(e).toLocaleString(`en-GB`,{year:`numeric`,month:`short`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,hour12:!1})}var x=[`B`,`KiB`,`MiB`,`GiB`,`TiB`];function te(e){if(e==null||!Number.isFinite(e))return`—`;if(Math.abs(e)<1024)return`${Math.round(e)} B`;let t=e,n=0;for(;Math.abs(t)>=1024&&n<x.length-1;)t/=1024,n+=1;return`${t.toFixed(1)} ${x[n]}`}function ne(e,t=8){return e.length<=t?e:`${e.slice(0,t)}…`}var re={fiveHour:18e6,daily:864e5,weekly:6048e5};function S(e,t){return t!==null&&t>0?t:re[e]}var C=6e4;function w(e,t){return e===null||t===null?e===t:Math.abs(e-t)<=C}function T(e,t){return t===void 0?`unknown`:e.observedAt>0&&t.stale?`stale`:t.ratePerHour===null||e.limit===null?`unknown`:t.survives===!1&&t.exhaustsAt!==null?`empty`:t.survives===!0?`ok`:`unknown`}function E(e,t){return t.provider!==e.provider||e.provider===`custom`&&t.providerData.endpointId!==e.endpointId?!1:e.credentialId===void 0||t.id===e.credentialId}function D(e,t){if(e.length===0)return null;let n=[...e].sort((e,t)=>e-t);return n[Math.min(n.length-1,Math.max(0,Math.ceil(t*n.length)-1))]??null}function O(e){return e.state===`pending`}function k(e){return e.filter(e=>!O(e))}function A(e){return O(e)?!1:e.status>=400||e.errorCode!==null}var j={ok:`●`,warn:`◐`,down:`○`,idle:`·`,live:`●`};function M(e){return O(e)?`live`:A(e)?`down`:`ok`}function N(e){return O(e)?`in flight`:A(e)?`failed with ${e.status}`:`succeeded`}function P(e,t){let n=k(e),r=[],i=0,a=0,o=0,s=0,c=0,l=0;for(let e of n)A(e)&&(i+=1),e.ttftMs!==null&&Number.isFinite(e.ttftMs)&&r.push(e.ttftMs),a+=e.costUsd,o+=e.inputTokens,s+=e.outputTokens,c+=e.cacheReadTokens,l+=e.cacheWriteTokens;let u=t/6e4;return{requests:n.length,errors:i,errorRate:n.length===0?0:i/n.length,ratePerMin:u<=0?0:n.length/u,ttftP50:D(r,.5),ttftP95:D(r,.95),costUsd:a,inputTokens:o,outputTokens:s,cacheReadTokens:c,cacheWriteTokens:l}}function F(e,t){let n=k(e),{now:r,spanMs:i,count:a}=t,o=i/a,s=r-i,c=Array.from({length:a},(e,t)=>({at:s+t*o,total:0,errors:0,costUsd:0,tokens:0,ttftMs:null})),l=Array.from({length:a},()=>[]);for(let e of n){if(e.at<s||e.at>r)continue;let t=Math.min(a-1,Math.floor((e.at-s)/o)),n=c[t];n!==void 0&&(n.total+=1,n.costUsd+=e.costUsd,n.tokens+=e.inputTokens+e.outputTokens+e.cacheReadTokens+e.cacheWriteTokens,A(e)&&(n.errors+=1),e.ttftMs!==null&&Number.isFinite(e.ttftMs)&&l[t]?.push(e.ttftMs))}for(let[e,t]of c.entries())t.ttftMs=D(l[e]??[],.5);return c}var I={tokenRejected:`reconnect needed — provider rejected the refresh token`,expiredNoRefresh:`reconnect needed — token expired with nothing to refresh from`};function L(e,t,n,r=null){if(!n){let e=r===`tokenRejected`||r===`expiredNoRefresh`;return{state:e?`down`:`idle`,note:e?I[r]:`disabled`,ttftMs:null,lastUsedAt:null,consecutiveFailures:0}}if(e.length===0)return{state:`idle`,note:`unused`,ttftMs:null,lastUsedAt:null,consecutiveFailures:0};let i=`ok`,a=``,o=null,s=null,c=0;for(let n of e){if(n.ewmaTtftMs!==null&&(o=o===null?n.ewmaTtftMs:Math.max(o,n.ewmaTtftMs)),n.lastUsedAt!==null&&(s=s===null?n.lastUsedAt:Math.max(s,n.lastUsedAt)),c=Math.max(c,n.consecutiveFailures),n.breakerState===`open`){i=`down`,a=`breaker open`;continue}if(n.rateLimitedUntil!==null&&n.rateLimitedUntil>t&&i!==`down`){i=`warn`,a=`rate limited`;continue}n.breakerState===`halfOpen`&&i===`ok`&&(i=`warn`,a=`probing`)}return{state:i,note:a,ttftMs:o,lastUsedAt:s,consecutiveFailures:c}}var R={fiveHour:`5h`,daily:`24h`,weekly:`7d`};function z(e){return Math.max(e,6e4)*3}function B(e,t,n){return e.observedAt<=0||t-e.observedAt>z(n)}function V(e,t){return e.find(e=>e.windowType===t)}function ie(e,t,n,r,i){let a=R[e.windowType];if(e.observedAt<=0)return`${a} · never observed`;if(B(e,t,n))return`${a} · stale, read ${r(e.observedAt,t)}`;if(e.resetsAt===null)return a;let o=`resets ${r(e.resetsAt,t)}`;return i===void 0||i.stale||i.survives!==!1||i.exhaustsAt===null?`${a} · ${o}`:`${a} · ${i.exhaustsAt<=t?`empty now`:`empty ~${m(i.exhaustsAt-t)}`} · ${o}`}function H(e){let t=e.filter(e=>e.limit!==null&&e.limit>0).sort((e,t)=>e.observedAt-t.observedAt),n=[],r;for(let e of t){let t={at:e.observedAt,percent:Math.min(100,e.used/e.limit*100)},i={resetsAt:e.resetsAt,startsAt:e.resetsAt===null?null:e.resetsAt-S(e.windowType,e.windowMs)},a=n[n.length-1];a===void 0||r===void 0||!w(e.resetsAt,r.resetsAt)?n.push({key:`window-${n.length}`,points:[t],...i}):(a.points.push(t),a.resetsAt=i.resetsAt,a.startsAt=i.startsAt),r=e}return n}function U(e,t){let{limit:n,used:r,observedAt:i}=t;if(n===null||n<=0)return[...e];let a=e.findLastIndex(e=>w(e.resetsAt,t.resetsAt)),o=e[a];if(o===void 0)return[...e];let s=o.points[o.points.length-1];if(s===void 0||s.at>=i)return[...e];let c={at:i,percent:Math.min(100,r/n*100)};return e.map((e,t)=>t===a?{...e,points:[...e.points,c]}:e)}function W(e){return e.startsAt===null||e.resetsAt===null?null:{from:{at:e.startsAt,percent:0},to:{at:e.resetsAt,percent:100}}}var G=36e5;function K(e,t){let{limit:n,resetsAt:r,observedAt:i,used:a}=e,o=t.ratePerHour;if(n===null||n<=0||r===null||o===null||o<=0)return null;let s=a/n*100,c=o/n*100;return{from:{at:i,percent:s},to:{at:r,percent:s+c*((r-i)/G)}}}var q={fiveHour:0,daily:1,weekly:2};function J(e){return e.filter(e=>e.limit!==null&&e.limit>0).map(e=>({window:e,fraction:Math.min(1,e.used/e.limit)})).sort((e,t)=>q[e.window.windowType]-q[t.window.windowType])}function Y(e,t){let n=new Map;for(let r of e){let e=t(r),i=n.get(e);i===void 0?n.set(e,[r]):i.push(r)}return n}var ae=s`
|
|
2
|
-
0%, 100% { opacity: 1; }
|
|
3
|
-
50% { opacity: 0.28; }
|
|
4
|
-
`,oe=o`
|
|
5
|
-
color: ${({theme:e})=>e.color.ok};
|
|
6
|
-
animation: ${ae} 1.2s ease-in-out infinite;
|
|
7
|
-
|
|
8
|
-
@media (prefers-reduced-motion: reduce) {
|
|
9
|
-
animation: none;
|
|
10
|
-
}
|
|
11
|
-
`,se={ok:o`
|
|
12
|
-
color: ${({theme:e})=>e.color.ok};
|
|
13
|
-
`,warn:o`
|
|
14
|
-
color: ${({theme:e})=>e.color.warn};
|
|
15
|
-
`,down:o`
|
|
16
|
-
color: ${({theme:e})=>e.color.down};
|
|
17
|
-
`,idle:o`
|
|
18
|
-
color: ${({theme:e})=>e.color.inkFaint};
|
|
19
|
-
`,live:oe},ce=a.span`
|
|
20
|
-
font-family: ${({theme:e})=>e.font.mono};
|
|
21
|
-
font-size: 12px;
|
|
22
|
-
line-height: 1;
|
|
23
|
-
flex: none;
|
|
24
|
-
${({$state:e})=>se[e]}
|
|
25
|
-
`;function le({state:e,label:t,className:n}){return r(ce,{$state:e,className:n,role:`img`,"aria-label":t,title:t,children:j[e]})}var X=a.div`
|
|
26
|
-
display: flex;
|
|
27
|
-
flex-direction: column;
|
|
28
|
-
align-items: center;
|
|
29
|
-
justify-content: center;
|
|
30
|
-
gap: ${({theme:e})=>e.space(2)};
|
|
31
|
-
padding: ${({theme:e})=>e.space(8)} ${({theme:e})=>e.space(4)};
|
|
32
|
-
text-align: center;
|
|
33
|
-
`,Z=a.p`
|
|
34
|
-
max-width: 44ch;
|
|
35
|
-
font-size: 13px;
|
|
36
|
-
color: ${({theme:e})=>e.color.inkDim};
|
|
37
|
-
`;function ue({legend:e,message:n,action:a}){return i(X,{children:[r(t,{children:e}),r(Z,{children:n}),a]})}var Q=a(Z)`
|
|
38
|
-
color: ${({theme:e})=>e.color.down};
|
|
39
|
-
`;function $(t){return t instanceof e||t instanceof Error?t.message:`The gateway did not answer.`}function de({legend:e=`Request failed`,error:a,onRetry:o}){return i(X,{children:[r(t,{children:e}),r(Q,{children:$(a)}),o===void 0?null:r(n,{type:`button`,$size:`sm`,onClick:o,children:`Try again`})]})}var fe=s`
|
|
40
|
-
0% { opacity: 0.35; }
|
|
41
|
-
50% { opacity: 0.7; }
|
|
42
|
-
100% { opacity: 0.35; }
|
|
43
|
-
`,pe=a.div`
|
|
44
|
-
height: ${({$height:e})=>e??12}px;
|
|
45
|
-
width: ${({$width:e})=>e??`100%`};
|
|
46
|
-
border-radius: 2px;
|
|
47
|
-
background: ${({theme:e})=>e.color.ruleStrong};
|
|
48
|
-
animation: ${fe} 1.4s ease-in-out infinite;
|
|
49
|
-
`,me=a.div`
|
|
50
|
-
display: flex;
|
|
51
|
-
flex-direction: column;
|
|
52
|
-
gap: ${({theme:e})=>e.space(2)};
|
|
53
|
-
padding: ${({theme:e})=>e.space(1)} 0;
|
|
54
|
-
`;function he({rows:e=4}){let t=Array.from({length:e},(e,t)=>`row-${t}:${t%3==0?`72%`:`100%`}`);return r(me,{"aria-hidden":`true`,children:t.map(e=>r(pe,{$width:e.split(`:`)[1]??`100%`},e))})}export{m as A,T as C,g as D,v as E,y as F,ne as I,ee as M,h as N,u as O,d as P,U as S,te as T,K as _,le as a,J as b,W as c,Y as d,A as f,M as g,N as h,$ as i,f as j,b as k,V as l,B as m,de as n,R as o,O as p,he as r,F as s,ue as t,L as u,ie as v,E as w,P as x,H as y};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./Match-C85GObiU.js";import{n as t}from"./Rack-V32CHmN6.js";import{n,t as r}from"./stream-Dz5HjHBh.js";import{jsx as i}from"react/jsx-runtime";var a=()=>i(r,{children:i(n,{children:i(t,{children:i(e,{})})})});export{a as component};
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import{A as e,C as t,E as n,J as r,T as i,Y as a,c as o,dt as s,t as c,w as l}from"./shared-DYkFSPbd.js";import{A as u,B as d,G as f,O as p,dt as m,et as h,f as g,g as _,h as v,it as y,l as b,ot as x,r as S,rt as C,tt as w,u as ee,ut as T,v as E}from"./queries-DuSqKybM.js";import{a as D,g as O,o as k,s as te,t as ne}from"./Rack-V32CHmN6.js";import{n as re,r as A,t as ie}from"./CopyValue-dQWAaTxf.js";import{t as j}from"./plus-xu9reaJp.js";import{t as M}from"./trash-2-DbutVvFY.js";import{t as N}from"./Toggle-BQI8jz09.js";import{A as P,C as F,E as I,F as ae,N as oe,O as L,S as se,_ as ce,a as le,b as ue,c as de,d as R,i as z,j as fe,k as pe,l as me,m as he,n as ge,o as _e,r as ve,t as ye,u as be,v as xe,y as Se}from"./States-CauIsA0N.js";import{t as Ce}from"./Chip-BltJSw8A.js";import{i as B,n as V,r as we,t as H}from"./Field-DTQ2LPzA.js";import{t as Te}from"./Meter-stpt3vQu.js";import{t as U}from"./Panel-CQVz9yeR.js";import{i as Ee,n as W,r as G,t as De}from"./Table-CVDZ69Zx.js";import{t as Oe}from"./catalog-BBKm8Ih8.js";import*as ke from"react";import{Fragment as Ae,forwardRef as je,useCallback as Me,useEffect as Ne,useState as K}from"react";import{Fragment as q,jsx as J,jsxs as Y}from"react/jsx-runtime";import X from"styled-components";var Pe=O(`external-link`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]),Fe=Object.keys(Oe);function Ie(e){return Oe[e].authTypes}function Le(e){return Ie(e).includes(`oauth`)?`oauth`:`apiKey`}var Re={oauth:`Authorize in the browser`,apiKey:`Paste an API key`},Z={anthropic:`Anthropic`,openai:`OpenAI`,kimi:`Kimi`,kilo:`Kilo`,grok:`Grok`,custom:`OpenAI Compatible`},ze={anthropic:`Authorize in the browser, then paste the code Anthropic shows you.`,openai:`Authorize in the browser. When it redirects to localhost, paste the whole URL.`,kimi:`Enter the code on Kimi's device page. This dialog finishes on its own.`,kilo:`Approve the code on Kilo's device page. This dialog finishes on its own.`,grok:`Authorize in the browser. When it redirects to 127.0.0.1, paste the whole URL.`,custom:`Enter endpoint metadata and API key.`},Be={openai:`http://localhost:1455/auth/callback?code=…`,grok:`http://127.0.0.1:56121/callback?code=…`},Ve=X.ol`
|
|
2
|
-
display: flex;
|
|
3
|
-
flex-direction: column;
|
|
4
|
-
gap: ${({theme:e})=>e.space(3)};
|
|
5
|
-
`,He=X.div`
|
|
6
|
-
font-family: ${({theme:e})=>e.font.mono};
|
|
7
|
-
font-size: 26px;
|
|
8
|
-
letter-spacing: 0.22em;
|
|
9
|
-
text-align: center;
|
|
10
|
-
padding: ${({theme:e})=>e.space(3)};
|
|
11
|
-
background: ${({theme:e})=>e.color.panelSunk};
|
|
12
|
-
border: 1px solid ${({theme:e})=>e.color.ruleStrong};
|
|
13
|
-
border-radius: ${({theme:e})=>e.radius.control};
|
|
14
|
-
`,Ue=X.p`
|
|
15
|
-
font-size: 12px;
|
|
16
|
-
color: ${({theme:e})=>e.color.down};
|
|
17
|
-
`,We=X.p`
|
|
18
|
-
font-size: 12px;
|
|
19
|
-
color: ${({theme:e})=>e.color.inkDim};
|
|
20
|
-
`;function Ge({open:e,credentials:t,onOpenChange:n,onConnected:r}){let[i,a]=K(`anthropic`),[o,s]=K(Le(`anthropic`)),[c,l]=K(``),[u,d]=K(null),[f,p]=K(``),[m,_]=K(``),v=(t??[]).filter((e,t,n)=>e.provider===`custom`&&n.findIndex(t=>t.provider===`custom`&&t.providerData.endpointId===e.providerData.endpointId)===t),[y,w]=K(``),[E,D]=K(``),[O,k]=K(`chat_completions`),[ne,re]=K(``),[A,j]=K(null),M=ee(),N=b(),P=g(),F=Me(()=>{d(null),p(``),_(``),w(``),D(``),k(`chat_completions`),re(``),j(null),l(``),M.reset(),N.reset(),P.reset()},[M,N,P]),I=Me(e=>{e||F(),n(e)},[n,F]);return Ne(()=>{if(u===null||u.kind!==`device`)return;let e=!1,t=async()=>{try{let t=await S(u.flowId);if(e)return;if(t.status===`complete`){F(),n(!1),r();return}}catch(t){if(e)return;j(z(t)),d(null);return}e||(i=setTimeout(()=>void t(),u.pollIntervalMs))},i=setTimeout(()=>void t(),u.pollIntervalMs);return()=>{e=!0,clearTimeout(i)}},[u,r,n,F]),J(te,{open:e,onOpenChange:I,title:`Connect an account`,description:`The gateway stores the resulting token encrypted. It is never shown again after this dialog.`,footer:u===null?Y(q,{children:[J(T,{type:`button`,onClick:()=>I(!1),children:`Cancel`}),J(T,{type:`button`,$variant:`primary`,disabled:M.isPending||P.isPending,onClick:()=>{if(j(null),o===`apiKey`){P.mutate({provider:i,apiKey:ne,label:c.trim()||void 0,...i===`custom`?{endpointId:m,endpointLabel:y,origin:E,protocol:O}:{}},{onSuccess:()=>{F(),n(!1),r()},onError:e=>j(z(e))});return}M.mutate({provider:i,label:c.trim().length===0?Z[i]:c.trim()},{onSuccess:e=>d(e),onError:e=>j(z(e))})},children:o===`apiKey`?P.isPending?`Adding…`:`Add API key`:M.isPending?`Starting…`:`Start authorization`})]}):u.kind===`device`?J(T,{type:`button`,onClick:()=>I(!1),children:`Cancel`}):Y(q,{children:[J(T,{type:`button`,onClick:()=>I(!1),children:`Cancel`}),J(T,{type:`button`,$variant:`primary`,disabled:N.isPending||f.trim().length===0,onClick:()=>{u!==null&&(j(null),N.mutate({flowId:u.flowId,code:f.trim()},{onSuccess:()=>{F(),n(!1),r()},onError:e=>j(z(e))}))},children:N.isPending?`Finishing…`:`Finish connecting`})]}),children:Y(Ve,{children:[u===null?Y(x,{$gap:3,children:[J(H,{label:`Provider`,children:e=>J(B,{...e,value:i,onChange:e=>{let t=e.target.value;a(t),s(Le(t))},children:Fe.map(e=>J(`option`,{value:e,children:Z[e]},e))})}),Ie(i).length>1?J(H,{label:`How to connect`,children:e=>J(B,{...e,value:o,onChange:e=>s(e.target.value),children:Ie(i).map(e=>J(`option`,{value:e,children:Re[e]},e))})}):null,i===`custom`?Y(q,{children:[v.length===0?null:J(H,{label:`Existing endpoint`,children:e=>Y(B,{...e,value:m,onChange:e=>{let t=v.find(t=>t.providerData.endpointId===e.target.value);if(t===void 0){_(``),w(``),D(``),k(`chat_completions`);return}_(String(t.providerData.endpointId)),w(String(t.providerData.endpointLabel)),D(String(t.providerData.origin)+String(t.providerData.basePath??``)),k(t.providerData.protocol===`responses`?`responses`:`chat_completions`)},children:[J(`option`,{value:``,children:`Create new endpoint`}),v.map(e=>J(`option`,{value:String(e.providerData.endpointId),children:String(e.providerData.endpointLabel)},String(e.providerData.endpointId)))]})}),J(H,{label:`Endpoint ID`,children:e=>J(V,{...e,value:m,onChange:e=>_(e.target.value)})}),J(H,{label:`Endpoint label`,children:e=>J(V,{...e,value:y,onChange:e=>w(e.target.value)})}),J(H,{label:`Server URL`,children:e=>J(V,{...e,value:E,placeholder:`https://server.example/api`,onChange:e=>D(e.target.value)})}),E.trim().toLowerCase().startsWith(`http://`)?J(Ue,{children:`Plaintext transport sends prompts and API keys without TLS.`}):null,J(H,{label:`Protocol`,children:e=>Y(B,{...e,value:O,onChange:e=>k(e.target.value),children:[J(`option`,{value:`chat_completions`,children:`Chat Completions (/v1/chat/completions)`}),J(`option`,{value:`responses`,children:`Responses (/v1/responses)`})]})})]}):null,o===`apiKey`?J(H,{label:`API key`,children:e=>J(V,{...e,type:`password`,value:ne,autoComplete:`off`,onChange:e=>re(e.target.value)})}):null,J(H,{label:`Label`,hint:`How this account is named in the rack. Defaults to the provider.`,children:e=>J(V,{...e,value:c,placeholder:Z[i],onChange:e=>l(e.target.value)})})]}):Y(x,{$gap:3,children:[Y(x,{$gap:1,children:[J(h,{children:`Step 1 — authorize`}),J(C,{$gap:2,children:Y(T,{as:`a`,href:u.authorizeUrl,target:`_blank`,rel:`noreferrer noopener`,$variant:`primary`,$size:`sm`,children:[J(Pe,{}),`Open `,Z[i]]})}),J(ie,{value:u.authorizeUrl,label:`Copy authorization link`})]}),u.userCode===null?null:Y(x,{$gap:1,children:[J(h,{children:`Step 2 — enter this code`}),J(He,{children:u.userCode})]}),u.kind===`device`?Y(We,{children:[ze[i],` Waiting for authorization…`]}):J(H,{label:`Authorization code`,hint:ze[i],...A===null?{}:{problem:A},children:e=>J(V,{...e,value:f,autoFocus:!0,placeholder:Be[i]??`code#state`,onChange:e=>p(e.target.value)})})]}),A===null||u?.kind===`pkce`?null:J(Ue,{children:A})]})})}var Ke=[`axis`],qe=je((e,n)=>ke.createElement(t,{chartName:`LineChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:Ke,tooltipPayloadSearcher:a,categoricalChartProps:e,ref:n})),Je=X(C)`
|
|
21
|
-
gap: ${({theme:e})=>e.space(5)};
|
|
22
|
-
flex-wrap: wrap;
|
|
23
|
-
`,Q=X.div`
|
|
24
|
-
display: flex;
|
|
25
|
-
flex-direction: column;
|
|
26
|
-
gap: 2px;
|
|
27
|
-
`,$=X.span`
|
|
28
|
-
font-size: 11.5px;
|
|
29
|
-
color: ${({theme:e})=>e.color.inkDim};
|
|
30
|
-
`,Ye={budget:`1 4`,projection:`6 4`},Xe=`projected`;function Ze(e){let t=new Map;for(let{key:n,points:r}of e)for(let e of r){let r=t.get(e.at)??{at:e.at};r[n]=e.percent,t.set(e.at,r)}return[...t.values()].sort((e,t)=>e.at-t.at)}function Qe(e,t,n){return[Math.min(e,...n.map(e=>e.pace.from.at)),Math.max(t,...n.map(e=>e.pace.to.at))]}function $e(e,t){let n=t?.windowStartsAt??null;return n===null||e.resetsAt===null?null:n-(e.resetsAt-n)}function et({credentialId:e,windows:t,burn:n,pollIntervalMs:r,now:i}){let a=t.map(e=>{let t=me(n,e.windowType);return{window:e,estimate:t,since:$e(e,t)}}),o=a.map(e=>e.since).filter(e=>e!==null),s=o.length===0?0:Math.min(...o),c=u({credentialId:e,since:s},o.length>0),l=c.data?.samples??[],d=c.data?.gatewayRates??[];return J(x,{$gap:4,children:a.map(e=>J(nt,{window:e.window,estimate:e.estimate,since:e.since,samples:l.filter(t=>t.windowType===e.window.windowType&&t.observedAt>=(e.since??0)),gatewayRate:d.find(t=>t.windowType===e.window.windowType),pollIntervalMs:r,now:i},e.window.windowType))})}function tt(e,t,n){let r=F(e,t);return r===`ok`?`lasts the window`:r!==`empty`||t.exhaustsAt===null?`unknown`:t.exhaustsAt<=n?`empty now`:`empty ~${P(t.exhaustsAt-n)} before it resets`}function nt({window:t,estimate:a,since:u,samples:d,gatewayRate:f,pollIntervalMs:p,now:m}){let g=_e[t.windowType],_=t.limit===null?`${L(t.used)} used`:`${L(t.used)} of ${L(t.limit)} used`;if(a===void 0||a.stale||he(t,m,p))return Y(x,{$gap:2,children:[Y(C,{$gap:2,$wrap:!0,children:[Y(h,{children:[g,` window`]}),J($,{children:_})]}),J($,{children:`reading is stale`})]});let v=se(Se(d),t),y=v.flatMap(e=>{let t=de(e);return t===null?[]:[{key:`${e.key}-budget`,pace:t}]}),b=ce(t,a),S=Ze([...v,...y.map(e=>({key:e.key,points:[e.pace.from,e.pace.to]})),...b===null?[]:[{key:Xe,points:[b.from,b.to]}]]),ee=new Set(v.map(e=>e.key)),T=Math.max(100,...b===null?[]:[b.from.percent,b.to.percent].map(e=>Math.ceil(e))),E=u===null||t.resetsAt===null?null:Qe(u,t.resetsAt,y);return Y(x,{$gap:2,children:[Y(C,{$gap:2,$wrap:!0,children:[Y(h,{children:[g,` window`]}),J($,{children:_})]}),Y(Je,{children:[Y(Q,{children:[J(h,{children:`Window average`}),J(w,{children:a.ratePerHour===null?`unknown`:`${L(a.ratePerHour)}/h`})]}),Y(Q,{children:[J(h,{children:`Estimate`}),J(w,{children:tt(t,a,m)})]}),Y(Q,{children:[J(h,{children:`Projected`}),J(w,{children:b===null?`unknown`:`${Math.round(b.to.percent)}% of limit by reset`})]}),Y(Q,{children:[J(h,{children:`This gateway accounts for`}),J(w,{children:f?.gatewayRatePerHour===void 0||f.gatewayRatePerHour===null?`unknown`:`${L(f.gatewayRatePerHour)} tokens/h`})]})]}),t.limit===null?J($,{children:`no ceiling reported`}):E===null?J($,{children:`no reset reported`}):v.length===0?J($,{children:`not yet observed`}):Y(q,{children:[J(h,{children:[`Used, this window and the one before`,...y.length===0?[]:[`budget dotted`],...b===null?[]:[`projection dashed`]].join(` · `)}),J(c,{$height:160,children:J(s,{width:`100%`,height:`100%`,children:Y(qe,{data:S,margin:{top:4,right:8,bottom:4,left:4},children:[J(e,{stroke:`var(--rule)`,vertical:!1}),J(i,{dataKey:`at`,type:`number`,scale:`time`,domain:E,tickFormatter:e=>I(e,E[1]-E[0]),tick:{fill:`var(--ink-faint)`,fontSize:10},stroke:`var(--rule-strong)`,minTickGap:ae(E[1]-E[0])?80:40}),J(l,{domain:[0,T],allowDataOverflow:!0,tickFormatter:e=>`${Math.round(e)}%`,tick:{fill:`var(--ink-faint)`,fontSize:10},stroke:`var(--rule-strong)`,width:40}),J(r,{cursor:{stroke:`var(--rule-strong)`},content:({active:e,payload:t})=>{if(e!==!0||t===void 0||t.length===0)return null;let n=t.find(e=>ee.has(String(e.dataKey)));if(n===void 0||typeof n.value!=`number`)return null;let r=n.payload.at;return Y(o,{children:[J(`div`,{children:pe(r)}),Y(`div`,{children:[n.value.toFixed(1),`% used`]})]})}}),v.map(e=>J(n,{type:`monotone`,dataKey:e.key,stroke:`var(--accent)`,strokeWidth:2,dot:e.points.length===1&&{r:2.5,fill:`var(--accent)`,stroke:`var(--accent)`},connectNulls:!0,isAnimationActive:!1},e.key)),y.map(e=>J(n,{type:`linear`,dataKey:e.key,stroke:`var(--ink-faint)`,strokeWidth:1.5,strokeDasharray:Ye.budget,dot:!1,connectNulls:!0,isAnimationActive:!1},e.key)),b===null?null:J(n,{type:`linear`,dataKey:Xe,stroke:`var(--ink-dim)`,strokeWidth:1.5,strokeDasharray:Ye.projection,dot:!1,connectNulls:!0,isAnimationActive:!1})]})})})]})]})}var rt=[`anthropic`,`openai`,`kimi`,`kilo`,`grok`,`custom`],it={anthropic:`Anthropic`,openai:`OpenAI`,kimi:`Kimi`,kilo:`Kilo`,grok:`Grok`,custom:`OpenAI Compatible`},at=X(U)`
|
|
31
|
-
border-left: 3px solid ${({theme:e,$provider:t})=>e.provider[t]};
|
|
32
|
-
`,ot=X(V)`
|
|
33
|
-
width: 100%;
|
|
34
|
-
min-width: 140px;
|
|
35
|
-
height: 26px;
|
|
36
|
-
font-family: ${({theme:e})=>e.font.sans};
|
|
37
|
-
font-size: 12.5px;
|
|
38
|
-
background: transparent;
|
|
39
|
-
border-color: transparent;
|
|
40
|
-
|
|
41
|
-
&:hover:not(:disabled),
|
|
42
|
-
&:focus {
|
|
43
|
-
background: ${({theme:e})=>e.color.panelSunk};
|
|
44
|
-
border-color: ${({theme:e})=>e.color.ruleStrong};
|
|
45
|
-
}
|
|
46
|
-
`,st=X(we)`
|
|
47
|
-
width: 62px;
|
|
48
|
-
height: 26px;
|
|
49
|
-
`,ct=X.span`
|
|
50
|
-
display: block;
|
|
51
|
-
padding-left: 9px;
|
|
52
|
-
font-size: 11px;
|
|
53
|
-
color: ${({theme:e})=>e.color.inkDim};
|
|
54
|
-
`,lt=X.div`
|
|
55
|
-
display: grid;
|
|
56
|
-
grid-template-columns: 96px 1fr;
|
|
57
|
-
align-items: center;
|
|
58
|
-
min-width: 208px;
|
|
59
|
-
gap: 6px;
|
|
60
|
-
`,ut=X.div`
|
|
61
|
-
display: flex;
|
|
62
|
-
flex-direction: column;
|
|
63
|
-
gap: 4px;
|
|
64
|
-
`;function dt(){let e=f();return{pending:e.isPending,commit:(t,n)=>{e.mutate({id:t,patch:n})}}}function ft(e,t){if(t===void 0)return` The list of models could not be read, so whether any target is pinned to this account is unknown.`;let n=t.filter(t=>t.targets.some(t=>t.credentialId===e.id)).map(e=>e.id);return n.length===0?``:` ${n.length===1?`The model`:`The models`} ${n.join(`, `)} ${n.length===1?`pins a target`:`pin targets`} to this account. Those targets will fail rather than fall back to another account.`}function pt(){let{cadence:e}=D(),t=_(),n=v(e(1e4,`res:credentials`)),r=d(),i=p(),a=E(),{commit:o}=dt(),[s,c]=K(!1),[l,u]=K(null),[f,g]=K(new Set),b=e=>g(t=>{let n=new Set(t);return n.delete(e)||n.add(e),n}),S=Date.now(),w=t.data??[],ee=R(n.data?.health??[],e=>e.credentialId),O=R(n.data?.quota??[],e=>e.credentialId),te=R(n.data?.burn??[],e=>e.credentialId),ie=r.data?.quotaPollIntervalMs??3e5,P=w.filter(e=>e.enabled).length,F=t.isLoading?`Reading connected accounts…`:w.length===0?`No provider credentials are connected, so every request fails at the router.`:`${P} of ${w.length} accounts are enabled and eligible for routing.`;return Y(q,{children:[J(ne,{legend:`Accounts`,title:`Provider accounts`,summary:F,actions:Y(T,{type:`button`,$variant:`primary`,onClick:()=>c(!0),children:[J(j,{}),`Connect an account`]})}),t.isError?J(U,{legend:`Accounts`,children:J(ge,{error:t.error,onRetry:()=>void t.refetch()})}):t.isLoading?J(U,{legend:`Accounts`,children:J(ve,{rows:5})}):w.length===0?J(U,{legend:`Accounts`,children:J(ye,{legend:`Nothing connected`,message:`Connect a provider account to give the router something to dispatch to. Tokens are encrypted at rest and never shown again.`,action:J(T,{type:`button`,$variant:`primary`,$size:`sm`,onClick:()=>c(!0),children:`Connect an account`})})}):J(x,{$gap:4,children:rt.filter(e=>w.some(t=>t.provider===e)).map(e=>{let t=w.filter(t=>t.provider===e);return J(at,{$provider:e,legend:it[e],meta:`${t.length} account${t.length===1?``:`s`}`,flush:!0,children:J(y,{children:Y(De,{children:[J(`thead`,{children:Y(`tr`,{children:[J(G,{$width:`24%`,children:`Account`}),J(G,{$width:`20%`,children:`Sign-in`}),J(G,{$align:`right`,$width:`86px`,children:`Tier`}),J(G,{$align:`right`,$width:`94px`,children:`Weight`}),J(G,{$align:`center`,$width:`86px`,children:`Enabled`}),J(G,{$width:`240px`,children:`Quota`}),J(G,{$align:`right`,$width:`88px`,children:`TTFT`}),J(G,{$align:`right`,$width:`130px`,children:`Token expires`}),J(G,{$width:`76px`})]})}),J(`tbody`,{children:t.map(e=>{let t=be(ee.get(e.id)??[],S,e.enabled,e.disabledReason),n=O.get(e.id)??[],r=te.get(e.id)??[],i=ue(n),a=f.has(e.id);return Y(Ae,{children:[Y(Ee,{children:[Y(W,{children:[Y(C,{$gap:2,children:[J(le,{state:t.state,label:t.note===``?`healthy`:t.note}),J(ot,{defaultValue:e.label,"aria-label":`Label for ${e.label}`,onBlur:t=>{let n=t.target.value.trim();if(n.length===0||n===e.label){t.target.value=e.label;return}o(e.id,{label:n})}})]}),t.note===``?null:J(ct,{children:t.note})]}),J(W,{children:Y(C,{$gap:1,children:[J(Ce,{children:e.authType===`oauth`?`oauth`:`api key`}),e.accountEmail===null?null:J(h,{children:e.accountEmail})]})}),J(W,{$align:`right`,children:J(st,{min:1,step:1,defaultValue:e.tier,"aria-label":`Tier for ${e.label}`,onBlur:t=>{let n=Number(t.target.value);if(!Number.isInteger(n)||n<1||n===e.tier){t.target.value=String(e.tier);return}o(e.id,{tier:n})}})}),J(W,{$align:`right`,children:J(st,{min:.1,step:.1,defaultValue:e.weight,"aria-label":`Weight for ${e.label}`,onBlur:t=>{let n=Number(t.target.value);if(!Number.isFinite(n)||n<=0||n===e.weight){t.target.value=String(e.weight);return}o(e.id,{weight:n})}})}),J(W,{$align:`center`,children:J(N,{checked:e.enabled,label:`Route to ${e.label}`,onCheckedChange:t=>o(e.id,{enabled:t})})}),J(W,{children:i.length===0?J(h,{children:`unknown`}):J(ut,{children:i.map(({window:e,fraction:t})=>Y(lt,{children:[J(Te,{fraction:t,label:`${_e[e.windowType]} window, ${Math.round(t*100)}% used`}),J(h,{children:xe(e,S,ie,oe,me(r,e.windowType))})]},e.windowType))})}),J(W,{$align:`right`,$mono:!0,children:fe(t.ttftMs)}),J(W,{$align:`right`,$mono:!0,children:e.expiresAt===null?`never`:oe(e.expiresAt,S)}),J(W,{$align:`right`,children:Y(C,{$gap:1,$justify:`flex-end`,children:[n.length===0?null:J(m,{type:`button`,$variant:`ghost`,$size:`sm`,"aria-expanded":a,"aria-label":`${a?`Hide`:`Show`} quota history for ${e.label}`,title:`${a?`Hide`:`Show`} quota history for ${e.label}`,onClick:()=>b(e.id),children:J(a?A:re,{})}),J(m,{type:`button`,$variant:`ghost`,$size:`sm`,"aria-label":`Remove ${e.label}`,title:`Remove ${e.label}`,onClick:()=>u(e),children:J(M,{})})]})})]}),a?J(Ee,{children:J(W,{colSpan:9,children:J(et,{credentialId:e.id,windows:n,burn:r,pollIntervalMs:ie,now:S})})}):null]},e.id)})})]})})},e)})}),J(Ge,{open:s,credentials:t.data??[],onOpenChange:c,onConnected:()=>void t.refetch()}),J(k,{open:l!==null,onOpenChange:e=>{e||u(null)},title:`Remove account`,body:l===null?``:`Removing "${l.label}" deletes its stored token. Any model target pointing at ${it[l.provider]} loses this account, and reconnecting means authorizing again.`+ft(l,i.data),confirmLabel:`Remove account`,busy:a.isPending,onConfirm:()=>{l!==null&&a.mutate(l.id,{onSettled:()=>u(null)})}})]})}var mt=pt;export{mt as component};
|