@aidotnet/server-linux-arm64 0.5.2 → 0.6.0

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.
Files changed (44) hide show
  1. package/bin/astra-server +2 -2
  2. package/bin/wwwroot/assets/ClientsPage-CcTgjJ-D.js +11 -0
  3. package/bin/wwwroot/assets/ModelDetailPage-B9205fOF.js +1 -0
  4. package/bin/wwwroot/assets/ModelsPage-CAXCnMox.js +1 -0
  5. package/bin/wwwroot/assets/Page-CsiaycmK.css +1 -0
  6. package/bin/wwwroot/assets/Page-iMwsVZGv.js +3 -0
  7. package/bin/wwwroot/assets/PluginsPage-1htR9MlO.js +2 -0
  8. package/bin/wwwroot/assets/PrivacyPage-C227LcwP.css +1 -0
  9. package/bin/wwwroot/assets/PrivacyPage-DDrC7ZN2.js +1 -0
  10. package/bin/wwwroot/assets/ProviderDetailPage-BrLQ3wxI.js +3 -0
  11. package/bin/wwwroot/assets/ProvidersPage-B19CIw-g.css +1 -0
  12. package/bin/wwwroot/assets/ProvidersPage-DEwFPi0w.js +2 -0
  13. package/bin/wwwroot/assets/SettingsPage-BWff0tKT.css +1 -0
  14. package/bin/wwwroot/assets/SettingsPage-vDXq5KMg.js +1 -0
  15. package/bin/wwwroot/assets/TokensPage-nnTsXi1X.js +1 -0
  16. package/bin/wwwroot/assets/TrayPanelPage-BLLZAck0.js +1 -0
  17. package/bin/wwwroot/assets/arrow-down-Bgpt1Ug2.js +1 -0
  18. package/bin/wwwroot/assets/arrow-up-DqX0vZ8v.js +1 -0
  19. package/bin/wwwroot/assets/checkbox-BQx1e8t-.js +1 -0
  20. package/bin/wwwroot/assets/checkbox-OZlTRG3n.css +1 -0
  21. package/bin/wwwroot/assets/cloud-download-B-iX6FzV.js +1 -0
  22. package/bin/wwwroot/assets/confirm-morph-C56YfpDu.css +1 -0
  23. package/bin/wwwroot/assets/confirm-morph-C93BpFKZ.js +1 -0
  24. package/bin/wwwroot/assets/download-Bbci4NYa.js +1 -0
  25. package/bin/wwwroot/assets/ellipsis-O3neUtss.js +1 -0
  26. package/bin/wwwroot/assets/external-link-BotneeB5.js +1 -0
  27. package/bin/wwwroot/assets/folder-open-BReAI4XO.js +1 -0
  28. package/bin/wwwroot/assets/format-CkDcAs-_.js +55 -0
  29. package/bin/wwwroot/assets/format-Cnf3vGpI.css +1 -0
  30. package/bin/wwwroot/assets/index-C6Mqffdm.js +15 -0
  31. package/bin/wwwroot/assets/index-C8BQ1yWd.css +1 -0
  32. package/bin/wwwroot/assets/log-out-BSESm3Q8.js +1 -0
  33. package/bin/wwwroot/assets/pencil-C5urmout.js +1 -0
  34. package/bin/wwwroot/assets/power-rKYGhi1K.js +1 -0
  35. package/bin/wwwroot/assets/quota-fdOyhiov.js +1 -0
  36. package/bin/wwwroot/assets/radio-cards-CKDDH2FI.js +1 -0
  37. package/bin/wwwroot/assets/radio-cards-CxuojLkJ.css +1 -0
  38. package/bin/wwwroot/assets/rotate-ccw-CJ2l4No1.js +1 -0
  39. package/bin/wwwroot/assets/use-transform-CJhlgN8s.js +1 -0
  40. package/bin/wwwroot/assets/useTrayData-CUUZrKRf.js +1 -0
  41. package/bin/wwwroot/index.html +8 -2
  42. package/package.json +1 -1
  43. package/bin/wwwroot/assets/index-CtmOEnFy.js +0 -82
  44. package/bin/wwwroot/assets/index-DDEz0hKe.css +0 -1
package/bin/astra-server CHANGED
@@ -1,4 +1,4 @@
1
1
  [diffend] Oversized file quarantined before diffing.
2
2
  name: package/bin/astra-server
3
- size: 34842360 bytes
4
- sha256: 260efdd0097106574f7092b1237584030c175c9ce4ce64d9fc34775574765213
3
+ size: 46205904 bytes
4
+ sha256: d0c399f61e93f29ba1584a5eace17756795566c8d3771904687758df20282a44
@@ -0,0 +1,11 @@
1
+ import{Ar as e,Bt as t,C as n,Dn as r,Dr as i,Dt as a,Gt as o,Ir as s,Jr as c,Mr as l,Ot as u,Q as d,S as f,Sn as p,Ut as m,Vt as h,X as g,Z as _,a as v,at as y,b,bi as x,bt as S,c as C,cn as w,ct as T,dr as E,dt as D,ft as O,ha as k,i as A,in as j,ir as M,it as N,jr as ee,ln as te,ma as P,n as ne,nn as F,nt as I,on as L,pa as re,pr as R,pt as z,rn as B,sn as ie,tt as V,un as ae,va as oe,wn as se,wt as H,x as ce,zt as le}from"./format-CkDcAs-_.js";import{b as ue,c as de,g as fe,o as pe,s as U,t as W,x as me}from"./Page-iMwsVZGv.js";import{t as G}from"./download-Bbci4NYa.js";import{t as K}from"./external-link-BotneeB5.js";import{t as he}from"./folder-open-BReAI4XO.js";import{t as ge}from"./rotate-ccw-CJ2l4No1.js";import{D as _e,E as ve,d as ye,h as be,m as xe,p as Se}from"./index-C6Mqffdm.js";var Ce={name:`archive`,size:24,node:[[`rect`,{width:`20`,height:`5`,x:`2`,y:`3`,rx:`1`,key:`1wp1u1`}],[`path`,{d:`M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8`,key:`1s80jp`}],[`path`,{d:`M10 12h4`,key:`a56b0p`}]]};Ce.node;var we=u(Ce),Te={name:`circle-arrow-up`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m16 12-4-4-4 4`,key:`177agl`}],[`path`,{d:`M12 16V8`,key:`1sbj14`}]],aliases:[`arrow-up-circle`]};Te.node;var Ee=u(Te),De={name:`grip-vertical`,size:24,node:[[`circle`,{cx:`9`,cy:`12`,r:`1`,key:`1vctgf`}],[`circle`,{cx:`9`,cy:`5`,r:`1`,key:`hp0tcf`}],[`circle`,{cx:`9`,cy:`19`,r:`1`,key:`fkjjf6`}],[`circle`,{cx:`15`,cy:`12`,r:`1`,key:`1tmaij`}],[`circle`,{cx:`15`,cy:`5`,r:`1`,key:`19l28e`}],[`circle`,{cx:`15`,cy:`19`,r:`1`,key:`f4zoj3`}]]};De.node;var Oe=u(De),ke={name:`shield-alert`,size:24,node:[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`M12 8v4`,key:`1got3b`}],[`path`,{d:`M12 16h.01`,key:`1drbdi`}]]};ke.node;var Ae=u(ke),je=oe(x()),q=oe(k());function Me(){var e=[...arguments];return(0,q.useMemo)(()=>t=>{e.forEach(e=>e(t))},e)}var Ne=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function Pe(e){let t=Object.prototype.toString.call(e);return t===`[object Window]`||t===`[object global]`}function Fe(e){return`nodeType`in e}function J(e){return e?Pe(e)?e:Fe(e)?e.ownerDocument?.defaultView??window:window:window}function Ie(e){let{Document:t}=J(e);return e instanceof t}function Le(e){return!Pe(e)&&e instanceof J(e).HTMLElement}function Re(e){return e instanceof J(e).SVGElement}function ze(e){return e?Pe(e)?e.document:Fe(e)?Ie(e)?e:Le(e)||Re(e)?e.ownerDocument:document:document:document}var Be=Ne?q.useLayoutEffect:q.useEffect;function Ve(e){let t=(0,q.useRef)(e);return Be(()=>{t.current=e}),(0,q.useCallback)(function(){var e=[...arguments];return t.current==null?void 0:t.current(...e)},[])}function He(){let e=(0,q.useRef)(null);return[(0,q.useCallback)((t,n)=>{e.current=setInterval(t,n)},[]),(0,q.useCallback)(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[])]}function Ue(e,t){t===void 0&&(t=[e]);let n=(0,q.useRef)(e);return Be(()=>{n.current!==e&&(n.current=e)},t),n}function We(e,t){let n=(0,q.useRef)();return(0,q.useMemo)(()=>{let t=e(n.current);return n.current=t,t},[...t])}function Ge(e){let t=Ve(e),n=(0,q.useRef)(null);return[n,(0,q.useCallback)(e=>{e!==n.current&&t?.(e,n.current),n.current=e},[])]}function Ke(e){let t=(0,q.useRef)();return(0,q.useEffect)(()=>{t.current=e},[e]),t.current}var qe={};function Je(e,t){return(0,q.useMemo)(()=>{if(t)return t;let n=qe[e]==null?0:qe[e]+1;return qe[e]=n,e+`-`+n},[e,t])}function Ye(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>{let r=Object.entries(n);for(let[n,i]of r){let r=t[n];r!=null&&(t[n]=r+e*i)}return t},{...t})}}var Xe=Ye(1),Ze=Ye(-1);function Qe(e){return`clientX`in e&&`clientY`in e}function $e(e){if(!e)return!1;let{KeyboardEvent:t}=J(e.target);return t&&e instanceof t}function et(e){if(!e)return!1;let{TouchEvent:t}=J(e.target);return t&&e instanceof t}function tt(e){if(et(e)){if(e.touches&&e.touches.length){let{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}if(e.changedTouches&&e.changedTouches.length){let{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return Qe(e)?{x:e.clientX,y:e.clientY}:null}var nt=Object.freeze({Translate:{toString(e){if(!e)return;let{x:t,y:n}=e;return`translate3d(`+(t?Math.round(t):0)+`px, `+(n?Math.round(n):0)+`px, 0)`}},Scale:{toString(e){if(!e)return;let{scaleX:t,scaleY:n}=e;return`scaleX(`+t+`) scaleY(`+n+`)`}},Transform:{toString(e){if(e)return[nt.Translate.toString(e),nt.Scale.toString(e)].join(` `)}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+` `+n+`ms `+r}}}),rt=`a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]`;function it(e){return e.matches(rt)?e:e.querySelector(rt)}var at={display:`none`};function ot(e){let{id:t,value:n}=e;return q.createElement(`div`,{id:t,style:at},n)}function st(e){let{id:t,announcement:n,ariaLiveType:r=`assertive`}=e;return q.createElement(`div`,{id:t,style:{position:`fixed`,top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0 0 0 0)`,clipPath:`inset(100%)`,whiteSpace:`nowrap`},role:`status`,"aria-live":r,"aria-atomic":!0},n)}function ct(){let[e,t]=(0,q.useState)(``);return{announce:(0,q.useCallback)(e=>{e!=null&&t(e)},[]),announcement:e}}var lt=(0,q.createContext)(null);function ut(e){let t=(0,q.useContext)(lt);(0,q.useEffect)(()=>{if(!t)throw Error(`useDndMonitor must be used within a children of <DndContext>`);return t(e)},[e,t])}function dt(){let[e]=(0,q.useState)(()=>new Set),t=(0,q.useCallback)(t=>(e.add(t),()=>e.delete(t)),[e]);return[(0,q.useCallback)(t=>{let{type:n,event:r}=t;e.forEach(e=>e[n]?.call(e,r))},[e]),t]}var ft={draggable:`
2
+ To pick up a draggable item, press the space bar.
3
+ While dragging, use the arrow keys to move the item.
4
+ Press space again to drop the item in its new position, or press escape to cancel.
5
+ `},pt={onDragStart(e){let{active:t}=e;return`Picked up draggable item `+t.id+`.`},onDragOver(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was moved over droppable area `+n.id+`.`:`Draggable item `+t.id+` is no longer over a droppable area.`},onDragEnd(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was dropped over droppable area `+n.id:`Draggable item `+t.id+` was dropped.`},onDragCancel(e){let{active:t}=e;return`Dragging was cancelled. Draggable item `+t.id+` was dropped.`}};function mt(e){let{announcements:t=pt,container:n,hiddenTextDescribedById:r,screenReaderInstructions:i=ft}=e,{announce:a,announcement:o}=ct(),s=Je(`DndLiveRegion`),[c,l]=(0,q.useState)(!1);if((0,q.useEffect)(()=>{l(!0)},[]),ut((0,q.useMemo)(()=>({onDragStart(e){let{active:n}=e;a(t.onDragStart({active:n}))},onDragMove(e){let{active:n,over:r}=e;t.onDragMove&&a(t.onDragMove({active:n,over:r}))},onDragOver(e){let{active:n,over:r}=e;a(t.onDragOver({active:n,over:r}))},onDragEnd(e){let{active:n,over:r}=e;a(t.onDragEnd({active:n,over:r}))},onDragCancel(e){let{active:n,over:r}=e;a(t.onDragCancel({active:n,over:r}))}}),[a,t])),!c)return null;let u=q.createElement(q.Fragment,null,q.createElement(ot,{id:r,value:i.draggable}),q.createElement(st,{id:s,announcement:o}));return n?(0,je.createPortal)(u,n):u}var Y;(function(e){e.DragStart=`dragStart`,e.DragMove=`dragMove`,e.DragEnd=`dragEnd`,e.DragCancel=`dragCancel`,e.DragOver=`dragOver`,e.RegisterDroppable=`registerDroppable`,e.SetDroppableDisabled=`setDroppableDisabled`,e.UnregisterDroppable=`unregisterDroppable`})(Y||={});function ht(){}function gt(e,t){return(0,q.useMemo)(()=>({sensor:e,options:t??{}}),[e,t])}function _t(){var e=[...arguments];return(0,q.useMemo)(()=>[...e].filter(e=>e!=null),[...e])}var X=Object.freeze({x:0,y:0});function vt(e,t){return Math.sqrt((e.x-t.x)**2+(e.y-t.y)**2)}function yt(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function bt(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function xt(e){let{left:t,top:n,height:r,width:i}=e;return[{x:t,y:n},{x:t+i,y:n},{x:t,y:n+r},{x:t+i,y:n+r}]}function St(e,t){if(!e||e.length===0)return null;let[n]=e;return t?n[t]:n}function Ct(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}var wt=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=Ct(t,t.left,t.top),a=[];for(let e of r){let{id:t}=e,r=n.get(t);if(r){let n=vt(Ct(r),i);a.push({id:t,data:{droppableContainer:e,value:n}})}}return a.sort(yt)},Tt=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=xt(t),a=[];for(let e of r){let{id:t}=e,r=n.get(t);if(r){let n=xt(r),o=i.reduce((e,t,r)=>e+vt(n[r],t),0),s=Number((o/4).toFixed(4));a.push({id:t,data:{droppableContainer:e,value:s}})}}return a.sort(yt)};function Et(e,t){let n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),i=Math.min(t.left+t.width,e.left+e.width),a=Math.min(t.top+t.height,e.top+e.height),o=i-r,s=a-n;if(r<i&&n<a){let n=t.width*t.height,r=e.width*e.height,i=o*s,a=i/(n+r-i);return Number(a.toFixed(4))}return 0}var Dt=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=[];for(let e of r){let{id:r}=e,a=n.get(r);if(a){let n=Et(a,t);n>0&&i.push({id:r,data:{droppableContainer:e,value:n}})}}return i.sort(bt)};function Ot(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function kt(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:X}function At(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>({...t,top:t.top+e*n.y,bottom:t.bottom+e*n.y,left:t.left+e*n.x,right:t.right+e*n.x}),{...t})}}var jt=At(1);function Mt(e){if(e.startsWith(`matrix3d(`)){let t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}if(e.startsWith(`matrix(`)){let t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function Nt(e,t,n){let r=Mt(t);if(!r)return e;let{scaleX:i,scaleY:a,x:o,y:s}=r,c=e.left-o-(1-i)*parseFloat(n),l=e.top-s-(1-a)*parseFloat(n.slice(n.indexOf(` `)+1)),u=i?e.width/i:e.width,d=a?e.height/a:e.height;return{width:u,height:d,top:l,right:c+u,bottom:l+d,left:c}}var Pt={ignoreTransform:!1};function Ft(e,t){t===void 0&&(t=Pt);let n=e.getBoundingClientRect();if(t.ignoreTransform){let{transform:t,transformOrigin:r}=J(e).getComputedStyle(e);t&&(n=Nt(n,t,r))}let{top:r,left:i,width:a,height:o,bottom:s,right:c}=n;return{top:r,left:i,width:a,height:o,bottom:s,right:c}}function It(e){return Ft(e,{ignoreTransform:!0})}function Lt(e){let t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function Rt(e,t){return t===void 0&&(t=J(e).getComputedStyle(e)),t.position===`fixed`}function zt(e,t){t===void 0&&(t=J(e).getComputedStyle(e));let n=/(auto|scroll|overlay)/;return[`overflow`,`overflowX`,`overflowY`].some(e=>{let r=t[e];return typeof r==`string`&&n.test(r)})}function Bt(e,t){let n=[];function r(i){if(t!=null&&n.length>=t||!i)return n;if(Ie(i)&&i.scrollingElement!=null&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!Le(i)||Re(i)||n.includes(i))return n;let a=J(e).getComputedStyle(i);return i!==e&&zt(i,a)&&n.push(i),Rt(i,a)?n:r(i.parentNode)}return e?r(e):n}function Vt(e){let[t]=Bt(e,1);return t??null}function Ht(e){return!Ne||!e?null:Pe(e)?e:Fe(e)?Ie(e)||e===ze(e).scrollingElement?window:Le(e)?e:null:null}function Ut(e){return Pe(e)?e.scrollX:e.scrollLeft}function Wt(e){return Pe(e)?e.scrollY:e.scrollTop}function Gt(e){return{x:Ut(e),y:Wt(e)}}var Z;(function(e){e[e.Forward=1]=`Forward`,e[e.Backward=-1]=`Backward`})(Z||={});function Kt(e){return!Ne||!e?!1:e===document.scrollingElement}function qt(e){let t={x:0,y:0},n=Kt(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height};return{isTop:e.scrollTop<=t.y,isLeft:e.scrollLeft<=t.x,isBottom:e.scrollTop>=r.y,isRight:e.scrollLeft>=r.x,maxScroll:r,minScroll:t}}var Jt={x:.2,y:.2};function Yt(e,t,n,r,i){let{top:a,left:o,right:s,bottom:c}=n;r===void 0&&(r=10),i===void 0&&(i=Jt);let{isTop:l,isBottom:u,isLeft:d,isRight:f}=qt(e),p={x:0,y:0},m={x:0,y:0},h={height:t.height*i.y,width:t.width*i.x};return!l&&a<=t.top+h.height?(p.y=Z.Backward,m.y=r*Math.abs((t.top+h.height-a)/h.height)):!u&&c>=t.bottom-h.height&&(p.y=Z.Forward,m.y=r*Math.abs((t.bottom-h.height-c)/h.height)),!f&&s>=t.right-h.width?(p.x=Z.Forward,m.x=r*Math.abs((t.right-h.width-s)/h.width)):!d&&o<=t.left+h.width&&(p.x=Z.Backward,m.x=r*Math.abs((t.left+h.width-o)/h.width)),{direction:p,speed:m}}function Xt(e){if(e===document.scrollingElement){let{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}let{top:t,left:n,right:r,bottom:i}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:i,width:e.clientWidth,height:e.clientHeight}}function Zt(e){return e.reduce((e,t)=>Xe(e,Gt(t)),X)}function Qt(e){return e.reduce((e,t)=>e+Ut(t),0)}function $t(e){return e.reduce((e,t)=>e+Wt(t),0)}function en(e,t){if(t===void 0&&(t=Ft),!e)return;let{top:n,left:r,bottom:i,right:a}=t(e);Vt(e)&&(i<=0||a<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:`center`,inline:`center`})}var tn=[[`x`,[`left`,`right`],Qt],[`y`,[`top`,`bottom`],$t]],nn=class{constructor(e,t){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;let n=Bt(t),r=Zt(n);this.rect={...e},this.width=e.width,this.height=e.height;for(let[e,t,i]of tn)for(let a of t)Object.defineProperty(this,a,{get:()=>{let t=i(n),o=r[e]-t;return this.rect[a]+o},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}},rn=class{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>this.target?.removeEventListener(...e))},this.target=e}add(e,t,n){var r;(r=this.target)==null||r.addEventListener(e,t,n),this.listeners.push([e,t,n])}};function an(e){let{EventTarget:t}=J(e);return e instanceof t?e:ze(e)}function on(e,t){let n=Math.abs(e.x),r=Math.abs(e.y);return typeof t==`number`?Math.sqrt(n**2+r**2)>t:`x`in t&&`y`in t?n>t.x&&r>t.y:`x`in t?n>t.x:`y`in t&&r>t.y}var sn;(function(e){e.Click=`click`,e.DragStart=`dragstart`,e.Keydown=`keydown`,e.ContextMenu=`contextmenu`,e.Resize=`resize`,e.SelectionChange=`selectionchange`,e.VisibilityChange=`visibilitychange`})(sn||={});function cn(e){e.preventDefault()}function ln(e){e.stopPropagation()}var Q;(function(e){e.Space=`Space`,e.Down=`ArrowDown`,e.Right=`ArrowRight`,e.Left=`ArrowLeft`,e.Up=`ArrowUp`,e.Esc=`Escape`,e.Enter=`Enter`,e.Tab=`Tab`})(Q||={});var un={start:[Q.Space,Q.Enter],cancel:[Q.Esc],end:[Q.Space,Q.Enter,Q.Tab]},dn=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case Q.Right:return{...n,x:n.x+25};case Q.Left:return{...n,x:n.x-25};case Q.Down:return{...n,y:n.y+25};case Q.Up:return{...n,y:n.y-25}}},fn=class{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;let{event:{target:t}}=e;this.props=e,this.listeners=new rn(ze(t)),this.windowListeners=new rn(J(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(sn.Resize,this.handleCancel),this.windowListeners.add(sn.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(sn.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:e,onStart:t}=this.props,n=e.node.current;n&&en(n),t(X)}handleKeyDown(e){if($e(e)){let{active:t,context:n,options:r}=this.props,{keyboardCodes:i=un,coordinateGetter:a=dn,scrollBehavior:o=`smooth`}=r,{code:s}=e;if(i.end.includes(s)){this.handleEnd(e);return}if(i.cancel.includes(s)){this.handleCancel(e);return}let{collisionRect:c}=n.current,l=c?{x:c.left,y:c.top}:X;this.referenceCoordinates||=l;let u=a(e,{active:t,context:n.current,currentCoordinates:l});if(u){let t=Ze(u,l),r={x:0,y:0},{scrollableAncestors:i}=n.current;for(let n of i){let i=e.code,{isTop:a,isRight:s,isLeft:c,isBottom:l,maxScroll:d,minScroll:f}=qt(n),p=Xt(n),m={x:Math.min(i===Q.Right?p.right-p.width/2:p.right,Math.max(i===Q.Right?p.left:p.left+p.width/2,u.x)),y:Math.min(i===Q.Down?p.bottom-p.height/2:p.bottom,Math.max(i===Q.Down?p.top:p.top+p.height/2,u.y))},h=i===Q.Right&&!s||i===Q.Left&&!c,g=i===Q.Down&&!l||i===Q.Up&&!a;if(h&&m.x!==u.x){let e=n.scrollLeft+t.x,a=i===Q.Right&&e<=d.x||i===Q.Left&&e>=f.x;if(a&&!t.y){n.scrollTo({left:e,behavior:o});return}r.x=a?n.scrollLeft-e:i===Q.Right?n.scrollLeft-d.x:n.scrollLeft-f.x,r.x&&n.scrollBy({left:-r.x,behavior:o});break}if(g&&m.y!==u.y){let e=n.scrollTop+t.y,a=i===Q.Down&&e<=d.y||i===Q.Up&&e>=f.y;if(a&&!t.x){n.scrollTo({top:e,behavior:o});return}r.y=a?n.scrollTop-e:i===Q.Down?n.scrollTop-d.y:n.scrollTop-f.y,r.y&&n.scrollBy({top:-r.y,behavior:o});break}}this.handleMove(e,Xe(Ze(u,this.referenceCoordinates),r))}}}handleMove(e,t){let{onMove:n}=this.props;e.preventDefault(),n(t)}handleEnd(e){let{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){let{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}};fn.activators=[{eventName:`onKeyDown`,handler:(e,t,n)=>{let{keyboardCodes:r=un,onActivation:i}=t,{active:a}=n,{code:o}=e.nativeEvent;if(r.start.includes(o)){let t=a.activatorNode.current;return t&&e.target!==t?!1:(e.preventDefault(),i?.({event:e.nativeEvent}),!0)}return!1}}];function pn(e){return!!(e&&`distance`in e)}function mn(e){return!!(e&&`delay`in e)}var hn=class{constructor(e,t,n){n===void 0&&(n=an(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=t;let{event:r}=e,{target:i}=r;this.props=e,this.events=t,this.document=ze(i),this.documentListeners=new rn(this.document),this.listeners=new rn(n),this.windowListeners=new rn(J(i)),this.initialCoordinates=tt(r)??X,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){let{events:e,props:{options:{activationConstraint:t,bypassActivationConstraint:n}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(sn.Resize,this.handleCancel),this.windowListeners.add(sn.DragStart,cn),this.windowListeners.add(sn.VisibilityChange,this.handleCancel),this.windowListeners.add(sn.ContextMenu,cn),this.documentListeners.add(sn.Keydown,this.handleKeydown),t){if(n!=null&&n({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(mn(t)){this.timeoutId=setTimeout(this.handleStart,t.delay),this.handlePending(t);return}if(pn(t)){this.handlePending(t);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,t){let{active:n,onPending:r}=this.props;r(n,e,this.initialCoordinates,t)}handleStart(){let{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,this.documentListeners.add(sn.Click,ln,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(sn.SelectionChange,this.removeTextSelection),t(e))}handleMove(e){let{activated:t,initialCoordinates:n,props:r}=this,{onMove:i,options:{activationConstraint:a}}=r;if(!n)return;let o=tt(e)??X,s=Ze(n,o);if(!t&&a){if(pn(a)){if(a.tolerance!=null&&on(s,a.tolerance))return this.handleCancel();if(on(s,a.distance))return this.handleStart()}if(mn(a)&&on(s,a.tolerance))return this.handleCancel();this.handlePending(a,s);return}e.cancelable&&e.preventDefault(),i(o)}handleEnd(){let{onAbort:e,onEnd:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleCancel(){let{onAbort:e,onCancel:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleKeydown(e){e.code===Q.Esc&&this.handleCancel()}removeTextSelection(){var e;(e=this.document.getSelection())==null||e.removeAllRanges()}},gn={cancel:{name:`pointercancel`},move:{name:`pointermove`},end:{name:`pointerup`}},_n=class extends hn{constructor(e){let{event:t}=e,n=ze(t.target);super(e,gn,n)}};_n.activators=[{eventName:`onPointerDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r?.({event:n}),!0)}}];var vn={move:{name:`mousemove`},end:{name:`mouseup`}},yn;(function(e){e[e.RightClick=2]=`RightClick`})(yn||={});var bn=class extends hn{constructor(e){super(e,vn,ze(e.event.target))}};bn.activators=[{eventName:`onMouseDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button!==yn.RightClick&&(r?.({event:n}),!0)}}];var xn={cancel:{name:`touchcancel`},move:{name:`touchmove`},end:{name:`touchend`}},Sn=class extends hn{constructor(e){super(e,xn)}static setup(){return window.addEventListener(xn.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener(xn.move.name,e)};function e(){}}};Sn.activators=[{eventName:`onTouchStart`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t,{touches:i}=n;return i.length>1?!1:(r?.({event:n}),!0)}}];var Cn;(function(e){e[e.Pointer=0]=`Pointer`,e[e.DraggableRect=1]=`DraggableRect`})(Cn||={});var wn;(function(e){e[e.TreeOrder=0]=`TreeOrder`,e[e.ReversedTreeOrder=1]=`ReversedTreeOrder`})(wn||={});function Tn(e){let{acceleration:t,activator:n=Cn.Pointer,canScroll:r,draggingRect:i,enabled:a,interval:o=5,order:s=wn.TreeOrder,pointerCoordinates:c,scrollableAncestors:l,scrollableAncestorRects:u,delta:d,threshold:f}=e,p=Dn({delta:d,disabled:!a}),[m,h]=He(),g=(0,q.useRef)({x:0,y:0}),_=(0,q.useRef)({x:0,y:0}),v=(0,q.useMemo)(()=>{switch(n){case Cn.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case Cn.DraggableRect:return i}},[n,i,c]),y=(0,q.useRef)(null),b=(0,q.useCallback)(()=>{let e=y.current;if(!e)return;let t=g.current.x*_.current.x,n=g.current.y*_.current.y;e.scrollBy(t,n)},[]),x=(0,q.useMemo)(()=>s===wn.TreeOrder?[...l].reverse():l,[s,l]);(0,q.useEffect)(()=>{if(!a||!l.length||!v){h();return}for(let e of x){if(r?.(e)===!1)continue;let n=l.indexOf(e),i=u[n];if(!i)continue;let{direction:a,speed:s}=Yt(e,i,v,t,f);for(let e of[`x`,`y`])p[e][a[e]]||(s[e]=0,a[e]=0);if(s.x>0||s.y>0){h(),y.current=e,m(b,o),g.current=s,_.current=a;return}}g.current={x:0,y:0},_.current={x:0,y:0},h()},[t,b,r,h,a,o,JSON.stringify(v),JSON.stringify(p),m,l,x,u,JSON.stringify(f)])}var En={x:{[Z.Backward]:!1,[Z.Forward]:!1},y:{[Z.Backward]:!1,[Z.Forward]:!1}};function Dn(e){let{delta:t,disabled:n}=e,r=Ke(t);return We(e=>{if(n||!r||!e)return En;let i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[Z.Backward]:e.x[Z.Backward]||i.x===-1,[Z.Forward]:e.x[Z.Forward]||i.x===1},y:{[Z.Backward]:e.y[Z.Backward]||i.y===-1,[Z.Forward]:e.y[Z.Forward]||i.y===1}}},[n,t,r])}function On(e,t){let n=t==null?void 0:e.get(t),r=n?n.node.current:null;return We(e=>t==null?null:r??e??null,[r,t])}function kn(e,t){return(0,q.useMemo)(()=>e.reduce((e,n)=>{let{sensor:r}=n,i=r.activators.map(e=>({eventName:e.eventName,handler:t(e.handler,n)}));return[...e,...i]},[]),[e,t])}var An;(function(e){e[e.Always=0]=`Always`,e[e.BeforeDragging=1]=`BeforeDragging`,e[e.WhileDragging=2]=`WhileDragging`})(An||={});var jn;(function(e){e.Optimized=`optimized`})(jn||={});var Mn=new Map;function Nn(e,t){let{dragging:n,dependencies:r,config:i}=t,[a,o]=(0,q.useState)(null),{frequency:s,measure:c,strategy:l}=i,u=(0,q.useRef)(e),d=g(),f=Ue(d),p=(0,q.useCallback)(function(e){e===void 0&&(e=[]),!f.current&&o(t=>t===null?e:t.concat(e.filter(e=>!t.includes(e))))},[f]),m=(0,q.useRef)(null),h=We(t=>{if(d&&!n)return Mn;if(!t||t===Mn||u.current!==e||a!=null){let t=new Map;for(let n of e){if(!n)continue;if(a&&a.length>0&&!a.includes(n.id)&&n.rect.current){t.set(n.id,n.rect.current);continue}let e=n.node.current,r=e?new nn(c(e),e):null;n.rect.current=r,r&&t.set(n.id,r)}return t}return t},[e,a,n,d,c]);return(0,q.useEffect)(()=>{u.current=e},[e]),(0,q.useEffect)(()=>{d||p()},[n,d]),(0,q.useEffect)(()=>{a&&a.length>0&&o(null)},[JSON.stringify(a)]),(0,q.useEffect)(()=>{d||typeof s!=`number`||m.current!==null||(m.current=setTimeout(()=>{p(),m.current=null},s))},[s,d,p,...r]),{droppableRects:h,measureDroppableContainers:p,measuringScheduled:a!=null};function g(){switch(l){case An.Always:return!1;case An.BeforeDragging:return n;default:return!n}}}function Pn(e,t){return We(n=>e?n||(typeof t==`function`?t(e):e):null,[t,e])}function Fn(e,t){return Pn(e,t)}function In(e){let{callback:t,disabled:n}=e,r=Ve(t),i=(0,q.useMemo)(()=>{if(n||typeof window>`u`||window.MutationObserver===void 0)return;let{MutationObserver:e}=window;return new e(r)},[r,n]);return(0,q.useEffect)(()=>()=>i?.disconnect(),[i]),i}function Ln(e){let{callback:t,disabled:n}=e,r=Ve(t),i=(0,q.useMemo)(()=>{if(n||typeof window>`u`||window.ResizeObserver===void 0)return;let{ResizeObserver:e}=window;return new e(r)},[n]);return(0,q.useEffect)(()=>()=>i?.disconnect(),[i]),i}function Rn(e){return new nn(Ft(e),e)}function zn(e,t,n){t===void 0&&(t=Rn);let[r,i]=(0,q.useState)(null);function a(){i(r=>{if(!e)return null;if(e.isConnected===!1)return r??n??null;let i=t(e);return JSON.stringify(r)===JSON.stringify(i)?r:i})}let o=In({callback(t){if(e)for(let n of t){let{type:t,target:r}=n;if(t===`childList`&&r instanceof HTMLElement&&r.contains(e)){a();break}}}}),s=Ln({callback:a});return Be(()=>{a(),e?(s?.observe(e),o?.observe(document.body,{childList:!0,subtree:!0})):(s?.disconnect(),o?.disconnect())},[e]),r}function Bn(e){return kt(e,Pn(e))}var Vn=[];function Hn(e){let t=(0,q.useRef)(e),n=We(n=>e?n&&n!==Vn&&e&&t.current&&e.parentNode===t.current.parentNode?n:Bt(e):Vn,[e]);return(0,q.useEffect)(()=>{t.current=e},[e]),n}function Un(e){let[t,n]=(0,q.useState)(null),r=(0,q.useRef)(e),i=(0,q.useCallback)(e=>{let t=Ht(e.target);t&&n(e=>e?(e.set(t,Gt(t)),new Map(e)):null)},[]);return(0,q.useEffect)(()=>{let t=r.current;if(e!==t){a(t);let o=e.map(e=>{let t=Ht(e);return t?(t.addEventListener(`scroll`,i,{passive:!0}),[t,Gt(t)]):null}).filter(e=>e!=null);n(o.length?new Map(o):null),r.current=e}return()=>{a(e),a(t)};function a(e){e.forEach(e=>{Ht(e)?.removeEventListener(`scroll`,i)})}},[i,e]),(0,q.useMemo)(()=>e.length?t?Array.from(t.values()).reduce((e,t)=>Xe(e,t),X):Zt(e):X,[e,t])}function Wn(e,t){t===void 0&&(t=[]);let n=(0,q.useRef)(null);return(0,q.useEffect)(()=>{n.current=null},t),(0,q.useEffect)(()=>{let t=e!==X;t&&!n.current&&(n.current=e),!t&&n.current&&(n.current=null)},[e]),n.current?Ze(e,n.current):X}function Gn(e){(0,q.useEffect)(()=>{if(!Ne)return;let t=e.map(e=>{let{sensor:t}=e;return t.setup==null?void 0:t.setup()});return()=>{for(let e of t)e?.()}},e.map(e=>{let{sensor:t}=e;return t}))}function Kn(e,t){return(0,q.useMemo)(()=>e.reduce((e,n)=>{let{eventName:r,handler:i}=n;return e[r]=e=>{i(e,t)},e},{}),[e,t])}function qn(e){return(0,q.useMemo)(()=>e?Lt(e):null,[e])}var Jn=[];function Yn(e,t){t===void 0&&(t=Ft);let[n]=e,r=qn(n?J(n):null),[i,a]=(0,q.useState)(Jn);function o(){a(()=>e.length?e.map(e=>Kt(e)?r:new nn(t(e),e)):Jn)}let s=Ln({callback:o});return Be(()=>{s?.disconnect(),o(),e.forEach(e=>s?.observe(e))},[e]),i}function Xn(e){if(!e)return null;if(e.children.length>1)return e;let t=e.children[0];return Le(t)?t:e}function Zn(e){let{measure:t}=e,[n,r]=(0,q.useState)(null),i=Ln({callback:(0,q.useCallback)(e=>{for(let{target:n}of e)if(Le(n)){r(e=>{let r=t(n);return e?{...e,width:r.width,height:r.height}:r});break}},[t])}),[a,o]=Ge((0,q.useCallback)(e=>{let n=Xn(e);i?.disconnect(),n&&i?.observe(n),r(n?t(n):null)},[t,i]));return(0,q.useMemo)(()=>({nodeRef:a,rect:n,setRef:o}),[n,a,o])}var Qn=[{sensor:_n,options:{}},{sensor:fn,options:{}}],$n={current:{}},er={draggable:{measure:It},droppable:{measure:It,strategy:An.WhileDragging,frequency:jn.Optimized},dragOverlay:{measure:Ft}},tr=class extends Map{get(e){return e==null?void 0:super.get(e)??void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:t}=e;return!t})}getNodeFor(e){return this.get(e)?.node.current??void 0}},nr={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new tr,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:ht},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:er,measureDroppableContainers:ht,windowRect:null,measuringScheduled:!1},rr={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:``},dispatch:ht,draggableNodes:new Map,over:null,measureDroppableContainers:ht},ir=(0,q.createContext)(rr),ar=(0,q.createContext)(nr);function or(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new tr}}}function sr(e,t){switch(t.type){case Y.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case Y.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case Y.DragEnd:case Y.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case Y.RegisterDroppable:{let{element:n}=t,{id:r}=n,i=new tr(e.droppable.containers);return i.set(r,n),{...e,droppable:{...e.droppable,containers:i}}}case Y.SetDroppableDisabled:{let{id:n,key:r,disabled:i}=t,a=e.droppable.containers.get(n);if(!a||r!==a.key)return e;let o=new tr(e.droppable.containers);return o.set(n,{...a,disabled:i}),{...e,droppable:{...e.droppable,containers:o}}}case Y.UnregisterDroppable:{let{id:n,key:r}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;let a=new tr(e.droppable.containers);return a.delete(n),{...e,droppable:{...e.droppable,containers:a}}}default:return e}}function cr(e){let{disabled:t}=e,{active:n,activatorEvent:r,draggableNodes:i}=(0,q.useContext)(ir),a=Ke(r),o=Ke(n?.id);return(0,q.useEffect)(()=>{if(!t&&!r&&a&&o!=null){if(!$e(a)||document.activeElement===a.target)return;let e=i.get(o);if(!e)return;let{activatorNode:t,node:n}=e;if(!t.current&&!n.current)return;requestAnimationFrame(()=>{for(let e of[t.current,n.current]){if(!e)continue;let t=it(e);if(t){t.focus();break}}})}},[r,t,i,o,a]),null}function lr(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((e,t)=>t({transform:e,...r}),n):n}function ur(e){return(0,q.useMemo)(()=>({draggable:{...er.draggable,...e?.draggable},droppable:{...er.droppable,...e?.droppable},dragOverlay:{...er.dragOverlay,...e?.dragOverlay}}),[e?.draggable,e?.droppable,e?.dragOverlay])}function dr(e){let{activeNode:t,measure:n,initialRect:r,config:i=!0}=e,a=(0,q.useRef)(!1),{x:o,y:s}=typeof i==`boolean`?{x:i,y:i}:i;Be(()=>{if(!o&&!s||!t){a.current=!1;return}if(a.current||!r)return;let e=t?.node.current;if(!e||e.isConnected===!1)return;let i=kt(n(e),r);if(o||(i.x=0),s||(i.y=0),a.current=!0,Math.abs(i.x)>0||Math.abs(i.y)>0){let t=Vt(e);t&&t.scrollBy({top:i.y,left:i.x})}},[t,o,s,r,n])}var fr=(0,q.createContext)({...X,scaleX:1,scaleY:1}),pr;(function(e){e[e.Uninitialized=0]=`Uninitialized`,e[e.Initializing=1]=`Initializing`,e[e.Initialized=2]=`Initialized`})(pr||={});var mr=(0,q.memo)(function(e){let{id:t,accessibility:n,autoScroll:r=!0,children:i,sensors:a=Qn,collisionDetection:o=Dt,measuring:s,modifiers:c,...l}=e,[u,d]=(0,q.useReducer)(sr,void 0,or),[f,p]=dt(),[m,h]=(0,q.useState)(pr.Uninitialized),g=m===pr.Initialized,{draggable:{active:_,nodes:v,translate:y},droppable:{containers:b}}=u,x=_==null?null:v.get(_),S=(0,q.useRef)({initial:null,translated:null}),C=(0,q.useMemo)(()=>_==null?null:{id:_,data:x?.data??$n,rect:S},[_,x]),w=(0,q.useRef)(null),[T,E]=(0,q.useState)(null),[D,O]=(0,q.useState)(null),k=Ue(l,Object.values(l)),A=Je(`DndDescribedBy`,t),j=(0,q.useMemo)(()=>b.getEnabled(),[b]),M=ur(s),{droppableRects:N,measureDroppableContainers:ee,measuringScheduled:te}=Nn(j,{dragging:g,dependencies:[y.x,y.y],config:M.droppable}),P=On(v,_),ne=(0,q.useMemo)(()=>D?tt(D):null,[D]),F=Se(),I=Fn(P,M.draggable.measure);dr({activeNode:_==null?null:v.get(_),config:F.layoutShiftCompensation,initialRect:I,measure:M.draggable.measure});let L=zn(P,M.draggable.measure,I),re=zn(P?P.parentElement:null),R=(0,q.useRef)({activatorEvent:null,active:null,activeNode:P,collisionRect:null,collisions:null,droppableRects:N,draggableNodes:v,draggingNode:null,draggingNodeRect:null,droppableContainers:b,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),z=b.getNodeFor(R.current.over?.id),B=Zn({measure:M.dragOverlay.measure}),ie=B.nodeRef.current??P,V=g?B.rect??L:null,ae=!!(B.nodeRef.current&&B.rect),oe=Bn(ae?null:L),se=qn(ie?J(ie):null),H=Hn(g?z??P:null),ce=Yn(H),le=lr(c,{transform:{x:y.x-oe.x,y:y.y-oe.y,scaleX:1,scaleY:1},activatorEvent:D,active:C,activeNodeRect:L,containerNodeRect:re,draggingNodeRect:V,over:R.current.over,overlayNodeRect:B.rect,scrollableAncestors:H,scrollableAncestorRects:ce,windowRect:se}),ue=ne?Xe(ne,y):null,de=Un(H),fe=Wn(de),pe=Wn(de,[L]),U=Xe(le,fe),W=V?jt(V,le):null,me=C&&W?o({active:C,collisionRect:W,droppableRects:N,droppableContainers:j,pointerCoordinates:ue}):null,G=St(me,`id`),[K,he]=(0,q.useState)(null),ge=Ot(ae?le:Xe(le,pe),K?.rect??null,L),_e=(0,q.useRef)(null),ve=(0,q.useCallback)((e,t)=>{let{sensor:n,options:r}=t;if(w.current==null)return;let i=v.get(w.current);if(!i)return;let a=e.nativeEvent,o=new n({active:w.current,activeNode:i,event:a,options:r,context:R,onAbort(e){if(!v.get(e))return;let{onDragAbort:t}=k.current,n={id:e};t?.(n),f({type:`onDragAbort`,event:n})},onPending(e,t,n,r){if(!v.get(e))return;let{onDragPending:i}=k.current,a={id:e,constraint:t,initialCoordinates:n,offset:r};i?.(a),f({type:`onDragPending`,event:a})},onStart(e){let t=w.current;if(t==null)return;let n=v.get(t);if(!n)return;let{onDragStart:r}=k.current,i={activatorEvent:a,active:{id:t,data:n.data,rect:S}};(0,je.unstable_batchedUpdates)(()=>{r?.(i),h(pr.Initializing),d({type:Y.DragStart,initialCoordinates:e,active:t}),f({type:`onDragStart`,event:i}),E(_e.current),O(a)})},onMove(e){d({type:Y.DragMove,coordinates:e})},onEnd:s(Y.DragEnd),onCancel:s(Y.DragCancel)});_e.current=o;function s(e){return async function(){let{active:t,collisions:n,over:r,scrollAdjustedTranslate:i}=R.current,o=null;if(t&&i){let{cancelDrop:s}=k.current;o={activatorEvent:a,active:t,collisions:n,delta:i,over:r},e===Y.DragEnd&&typeof s==`function`&&await Promise.resolve(s(o))&&(e=Y.DragCancel)}w.current=null,(0,je.unstable_batchedUpdates)(()=>{d({type:e}),h(pr.Uninitialized),he(null),E(null),O(null),_e.current=null;let t=e===Y.DragEnd?`onDragEnd`:`onDragCancel`;if(o){let e=k.current[t];e?.(o),f({type:t,event:o})}})}}},[v]),ye=kn(a,(0,q.useCallback)((e,t)=>(n,r)=>{let i=n.nativeEvent,a=v.get(r);if(w.current!==null||!a||i.dndKit||i.defaultPrevented)return;let o={active:a};e(n,t.options,o)===!0&&(i.dndKit={capturedBy:t.sensor},w.current=r,ve(n,t))},[v,ve]));Gn(a),Be(()=>{L&&m===pr.Initializing&&h(pr.Initialized)},[L,m]),(0,q.useEffect)(()=>{let{onDragMove:e}=k.current,{active:t,activatorEvent:n,collisions:r,over:i}=R.current;if(!t||!n)return;let a={active:t,activatorEvent:n,collisions:r,delta:{x:U.x,y:U.y},over:i};(0,je.unstable_batchedUpdates)(()=>{e?.(a),f({type:`onDragMove`,event:a})})},[U.x,U.y]),(0,q.useEffect)(()=>{let{active:e,activatorEvent:t,collisions:n,droppableContainers:r,scrollAdjustedTranslate:i}=R.current;if(!e||w.current==null||!t||!i)return;let{onDragOver:a}=k.current,o=r.get(G),s=o&&o.rect.current?{id:o.id,rect:o.rect.current,data:o.data,disabled:o.disabled}:null,c={active:e,activatorEvent:t,collisions:n,delta:{x:i.x,y:i.y},over:s};(0,je.unstable_batchedUpdates)(()=>{he(s),a?.(c),f({type:`onDragOver`,event:c})})},[G]),Be(()=>{R.current={activatorEvent:D,active:C,activeNode:P,collisionRect:W,collisions:me,droppableRects:N,draggableNodes:v,draggingNode:ie,draggingNodeRect:V,droppableContainers:b,over:K,scrollableAncestors:H,scrollAdjustedTranslate:U},S.current={initial:V,translated:W}},[C,P,me,W,v,ie,V,N,b,K,H,U]),Tn({...F,delta:y,draggingRect:W,pointerCoordinates:ue,scrollableAncestors:H,scrollableAncestorRects:ce});let be=(0,q.useMemo)(()=>({active:C,activeNode:P,activeNodeRect:L,activatorEvent:D,collisions:me,containerNodeRect:re,dragOverlay:B,draggableNodes:v,droppableContainers:b,droppableRects:N,over:K,measureDroppableContainers:ee,scrollableAncestors:H,scrollableAncestorRects:ce,measuringConfiguration:M,measuringScheduled:te,windowRect:se}),[C,P,L,D,me,re,B,v,b,N,K,ee,H,ce,M,te,se]),xe=(0,q.useMemo)(()=>({activatorEvent:D,activators:ye,active:C,activeNodeRect:L,ariaDescribedById:{draggable:A},dispatch:d,draggableNodes:v,over:K,measureDroppableContainers:ee}),[D,ye,C,L,d,A,v,K,ee]);return q.createElement(lt.Provider,{value:p},q.createElement(ir.Provider,{value:xe},q.createElement(ar.Provider,{value:be},q.createElement(fr.Provider,{value:ge},i)),q.createElement(cr,{disabled:n?.restoreFocus===!1})),q.createElement(mt,{...n,hiddenTextDescribedById:A}));function Se(){let e=T?.autoScrollEnabled===!1,t=typeof r==`object`?r.enabled===!1:r===!1,n=g&&!e&&!t;return typeof r==`object`?{...r,enabled:n}:{enabled:n}}}),hr=(0,q.createContext)(null),gr=`button`,_r=`Draggable`;function vr(e){let{id:t,data:n,disabled:r=!1,attributes:i}=e,a=Je(_r),{activators:o,activatorEvent:s,active:c,activeNodeRect:l,ariaDescribedById:u,draggableNodes:d,over:f}=(0,q.useContext)(ir),{role:p=gr,roleDescription:m=`draggable`,tabIndex:h=0}=i??{},g=c?.id===t,_=(0,q.useContext)(g?fr:hr),[v,y]=Ge(),[b,x]=Ge(),S=Kn(o,t),C=Ue(n);return Be(()=>(d.set(t,{id:t,key:a,node:v,activatorNode:b,data:C}),()=>{let e=d.get(t);e&&e.key===a&&d.delete(t)}),[d,t]),{active:c,activatorEvent:s,activeNodeRect:l,attributes:(0,q.useMemo)(()=>({role:p,tabIndex:h,"aria-disabled":r,"aria-pressed":g&&p===gr?!0:void 0,"aria-roledescription":m,"aria-describedby":u.draggable}),[r,p,h,g,m,u.draggable]),isDragging:g,listeners:r?void 0:S,node:v,over:f,setNodeRef:y,setActivatorNodeRef:x,transform:_}}function yr(){return(0,q.useContext)(ar)}var br=`Droppable`,xr={timeout:25};function Sr(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:i}=e,a=Je(br),{active:o,dispatch:s,over:c,measureDroppableContainers:l}=(0,q.useContext)(ir),u=(0,q.useRef)({disabled:n}),d=(0,q.useRef)(!1),f=(0,q.useRef)(null),p=(0,q.useRef)(null),{disabled:m,updateMeasurementsFor:h,timeout:g}={...xr,...i},_=Ue(h??r),v=Ln({callback:(0,q.useCallback)(()=>{if(!d.current){d.current=!0;return}p.current!=null&&clearTimeout(p.current),p.current=setTimeout(()=>{l(Array.isArray(_.current)?_.current:[_.current]),p.current=null},g)},[g]),disabled:m||!o}),[y,b]=Ge((0,q.useCallback)((e,t)=>{v&&(t&&(v.unobserve(t),d.current=!1),e&&v.observe(e))},[v])),x=Ue(t);return(0,q.useEffect)(()=>{v&&y.current&&(v.disconnect(),d.current=!1,v.observe(y.current))},[y,v]),(0,q.useEffect)(()=>(s({type:Y.RegisterDroppable,element:{id:r,key:a,disabled:n,node:y,rect:f,data:x}}),()=>s({type:Y.UnregisterDroppable,key:a,id:r})),[r]),(0,q.useEffect)(()=>{n!==u.current.disabled&&(s({type:Y.SetDroppableDisabled,id:r,key:a,disabled:n}),u.current.disabled=n)},[r,a,n,s]),{active:o,rect:f,isOver:c?.id===r,node:y,over:c,setNodeRef:b}}function Cr(e,t,n){let r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function wr(e,t){return e.reduce((e,n,r)=>{let i=t.get(n);return i&&(e[r]=i),e},Array(e.length))}function Tr(e){return e!==null&&e>=0}function Er(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function Dr(e){return typeof e==`boolean`?{draggable:e,droppable:e}:e}var Or=e=>{let{rects:t,activeIndex:n,overIndex:r,index:i}=e,a=Cr(t,r,n),o=t[i],s=a[i];return!s||!o?null:{x:s.left-o.left,y:s.top-o.top,scaleX:s.width/o.width,scaleY:s.height/o.height}},kr={scaleX:1,scaleY:1},Ar=e=>{let{activeIndex:t,activeNodeRect:n,index:r,rects:i,overIndex:a}=e,o=i[t]??n;if(!o)return null;if(r===t){let e=i[a];return e?{x:0,y:t<a?e.top+e.height-(o.top+o.height):e.top-o.top,...kr}:null}let s=jr(i,r,t);return r>t&&r<=a?{x:0,y:-o.height-s,...kr}:r<t&&r>=a?{x:0,y:o.height+s,...kr}:{x:0,y:0,...kr}};function jr(e,t,n){let r=e[t],i=e[t-1],a=e[t+1];return r?n<t?i?r.top-(i.top+i.height):a?a.top-(r.top+r.height):0:a?a.top-(r.top+r.height):i?r.top-(i.top+i.height):0:0}var Mr=`Sortable`,Nr=q.createContext({activeIndex:-1,containerId:Mr,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:Or,disabled:{draggable:!1,droppable:!1}});function Pr(e){let{children:t,id:n,items:r,strategy:i=Or,disabled:a=!1}=e,{active:o,dragOverlay:s,droppableRects:c,over:l,measureDroppableContainers:u}=yr(),d=Je(Mr,n),f=s.rect!==null,p=(0,q.useMemo)(()=>r.map(e=>typeof e==`object`&&`id`in e?e.id:e),[r]),m=o!=null,h=o?p.indexOf(o.id):-1,g=l?p.indexOf(l.id):-1,_=(0,q.useRef)(p),v=!Er(p,_.current),y=g!==-1&&h===-1||v,b=Dr(a);Be(()=>{v&&m&&u(p)},[v,p,m,u]),(0,q.useEffect)(()=>{_.current=p},[p]);let x=(0,q.useMemo)(()=>({activeIndex:h,containerId:d,disabled:b,disableTransforms:y,items:p,overIndex:g,useDragOverlay:f,sortedRects:wr(p,c),strategy:i}),[h,d,b.draggable,b.droppable,y,p,g,c,f,i]);return q.createElement(Nr.Provider,{value:x},t)}var Fr=e=>{let{id:t,items:n,activeIndex:r,overIndex:i}=e;return Cr(n,r,i).indexOf(t)},Ir=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:i,items:a,newIndex:o,previousItems:s,previousContainerId:c,transition:l}=e;return!l||!r||s!==a&&i===o?!1:n?!0:o!==i&&t===c},Lr={duration:200,easing:`ease`},Rr=`transform`,zr=nt.Transition.toString({property:Rr,duration:0,easing:`linear`}),Br={roleDescription:`sortable`};function Vr(e){let{disabled:t,index:n,node:r,rect:i}=e,[a,o]=(0,q.useState)(null),s=(0,q.useRef)(n);return Be(()=>{if(!t&&n!==s.current&&r.current){let e=i.current;if(e){let t=Ft(r.current,{ignoreTransform:!0}),n={x:e.left-t.left,y:e.top-t.top,scaleX:e.width/t.width,scaleY:e.height/t.height};(n.x||n.y)&&o(n)}}n!==s.current&&(s.current=n)},[t,n,r,i]),(0,q.useEffect)(()=>{a&&o(null)},[a]),a}function Hr(e){let{animateLayoutChanges:t=Ir,attributes:n,disabled:r,data:i,getNewIndex:a=Fr,id:o,strategy:s,resizeObserverConfig:c,transition:l=Lr}=e,{items:u,containerId:d,activeIndex:f,disabled:p,disableTransforms:m,sortedRects:h,overIndex:g,useDragOverlay:_,strategy:v}=(0,q.useContext)(Nr),y=Ur(r,p),b=u.indexOf(o),x=(0,q.useMemo)(()=>({sortable:{containerId:d,index:b,items:u},...i}),[d,i,b,u]),S=(0,q.useMemo)(()=>u.slice(u.indexOf(o)),[u,o]),{rect:C,node:w,isOver:T,setNodeRef:E}=Sr({id:o,data:x,disabled:y.droppable,resizeObserverConfig:{updateMeasurementsFor:S,...c}}),{active:D,activatorEvent:O,activeNodeRect:k,attributes:A,setNodeRef:j,listeners:M,isDragging:N,over:ee,setActivatorNodeRef:te,transform:P}=vr({id:o,data:x,attributes:{...Br,...n},disabled:y.draggable}),ne=Me(E,j),F=!!D,I=F&&!m&&Tr(f)&&Tr(g),L=!_&&N,re=I?(L&&I?P:null)??(s??v)({rects:h,activeNodeRect:k,activeIndex:f,overIndex:g,index:b}):null,R=Tr(f)&&Tr(g)?a({id:o,items:u,activeIndex:f,overIndex:g}):b,z=D?.id,B=(0,q.useRef)({activeId:z,items:u,newIndex:R,containerId:d}),ie=u!==B.current.items,V=t({active:D,containerId:d,isDragging:N,isSorting:F,id:o,index:b,items:u,newIndex:B.current.newIndex,previousItems:B.current.items,previousContainerId:B.current.containerId,transition:l,wasDragging:B.current.activeId!=null}),ae=Vr({disabled:!V,index:b,node:w,rect:C});return(0,q.useEffect)(()=>{F&&B.current.newIndex!==R&&(B.current.newIndex=R),d!==B.current.containerId&&(B.current.containerId=d),u!==B.current.items&&(B.current.items=u)},[F,R,d,u]),(0,q.useEffect)(()=>{if(z===B.current.activeId)return;if(z!=null&&B.current.activeId==null){B.current.activeId=z;return}let e=setTimeout(()=>{B.current.activeId=z},50);return()=>clearTimeout(e)},[z]),{active:D,activeIndex:f,attributes:A,data:x,rect:C,index:b,newIndex:R,items:u,isOver:T,isSorting:F,isDragging:N,listeners:M,node:w,overIndex:g,over:ee,setNodeRef:ne,setActivatorNodeRef:te,setDroppableNodeRef:E,setDraggableNodeRef:j,transform:ae??re,transition:oe()};function oe(){if(ae||ie&&B.current.newIndex===b)return zr;if(!(L&&!$e(O)||!l)&&(F||V))return nt.Transition.toString({...l,property:Rr})}}function Ur(e,t){return typeof e==`boolean`?{draggable:e,droppable:!1}:{draggable:e?.draggable??t.draggable,droppable:e?.droppable??t.droppable}}function Wr(e){if(!e)return!1;let t=e.data.current;return!!(t&&`sortable`in t&&typeof t.sortable==`object`&&`containerId`in t.sortable&&`items`in t.sortable&&`index`in t.sortable)}var Gr=[Q.Down,Q.Right,Q.Up,Q.Left],Kr=(e,t)=>{let{context:{active:n,collisionRect:r,droppableRects:i,droppableContainers:a,over:o,scrollableAncestors:s}}=t;if(Gr.includes(e.code)){if(e.preventDefault(),!n||!r)return;let t=[];a.getEnabled().forEach(n=>{if(!n||n!=null&&n.disabled)return;let a=i.get(n.id);if(a)switch(e.code){case Q.Down:r.top<a.top&&t.push(n);break;case Q.Up:r.top>a.top&&t.push(n);break;case Q.Left:r.left>a.left&&t.push(n);break;case Q.Right:r.left<a.left&&t.push(n)}});let c=Tt({active:n,collisionRect:r,droppableRects:i,droppableContainers:t,pointerCoordinates:null}),l=St(c,`id`);if(l===o?.id&&c.length>1&&(l=c[1].id),l!=null){let e=a.get(n.id),t=a.get(l),o=t?i.get(t.id):null,c=t?.node.current;if(c&&o&&e&&t){let n=Bt(c).some((e,t)=>s[t]!==e),i=qr(e,t),a=Jr(e,t),l=n||!i?{x:0,y:0}:{x:a?r.width-o.width:0,y:a?r.height-o.height:0},u={x:o.left,y:o.top};return l.x&&l.y?u:Ze(u,l)}}}};function qr(e,t){return!Wr(e)||!Wr(t)?!1:e.data.current.sortable.containerId===t.data.current.sortable.containerId}function Jr(e,t){return!Wr(e)||!Wr(t)||!qr(e,t)?!1:e.data.current.sortable.index<t.data.current.sortable.index}var $=P(),Yr=`astra claude`;function Xr(e){return e.reduce((e,t)=>({requests:e.requests+1,inputTokens:e.inputTokens+t.inputTokens,totalInputTokens:e.totalInputTokens+t.inputTokens+t.cacheReadTokens+t.cacheCreationTokens,outputTokens:e.outputTokens+t.outputTokens,failed:e.failed+ +(t.status===`error`),estimatedCostNanoUsd:e.estimatedCostNanoUsd+(t.estimatedCostNanoUsd??0)}),{requests:0,inputTokens:0,totalInputTokens:0,outputTokens:0,failed:0,estimatedCostNanoUsd:0})}var Zr=e=>e.status===`active`&&e.enabled;function Qr(e,t){let n=[e.name||e.id,e.email?`· ${e.email}`:null,e.plan?`· ${e.plan}`:null].filter(Boolean).join(` `);return Zr(e)?n:`${n} · ${t}`}function $r({enabled:r,gatewayEnabled:i}){let{t:a}=m(),{toast:o}=n(),s=ue(),c=L(r),l=e(),[u,p]=(0,q.useState)(null),h=c.data?.mode??`gateway`,_=c.data?.accounts??[],v=c.data?.accountId??null??_.find(Zr)?.id??null,y=_.find(e=>e.id===v),x=h===`direct`,S=i&&(x||c.data!=null),C=x&&y?.telemetryEnabled===!0,w=ie(C?y?.id:null,C),E=l.isPending,k=e=>l.mutate(e,{onError:e=>o(f(e),`error`)});return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(N,{title:a(`clients.claudeDirect.modeTitle`),footer:a(`clients.claudeDirect.modeFooter`),children:[(0,$.jsx)(T,{label:a(`clients.claudeDirect.mode`),detail:a(x?`clients.claudeDirect.directDetail`:`clients.claudeDirect.gatewayDetail`),children:(0,$.jsx)(D,{ariaLabel:a(`clients.claudeDirect.mode`),value:h,onChange:e=>{if(e===h||E||!c.data)return;let t=v??_.find(Zr)?.id??null;if(e===`direct`&&!t){o(a(`clients.claudeDirect.needAccountToast`),`error`);return}k({mode:e,accountId:t})},items:[{value:`gateway`,label:a(`clients.claudeDirect.gateway`)},{value:`direct`,label:a(`clients.claudeDirect.direct`)}]})}),(0,$.jsx)(`p`,{className:`px-4 pb-2 text-[11px] text-[var(--text-muted)]`,children:a(`clients.claudeDirect.modeNote`)})]}),c.isLoading&&(0,$.jsx)(O,{lines:3}),c.isError&&(0,$.jsx)(`div`,{className:`mb-5`,children:(0,$.jsx)(g,{tone:`danger`,title:a(`clients.claudeDirect.loadFailed`),children:f(c.error)})}),S&&(0,$.jsx)(`div`,{className:`mb-5`,children:(0,$.jsx)(g,{tone:`warning`,title:a(`clients.claudeDirect.gatewayOnTitle`),children:a(`clients.claudeDirect.gatewayOnDetail`)})}),c.data&&(0,$.jsx)(N,{title:a(`clients.claudeDirect.accountsTitle`),footer:a(`clients.claudeDirect.accountsFooter`),children:_.length===0?(0,$.jsx)(I,{title:a(`clients.claudeDirect.noAccount`),detail:a(`clients.claudeDirect.noAccountDetail`),action:(0,$.jsx)(d,{variant:`primary`,onClick:()=>s(`/providers`),children:a(`clients.claudeDirect.goProviders`)})}):(0,$.jsx)(T,{label:a(`clients.claudeDirect.account`),children:(0,$.jsx)(b,{className:`max-w-[300px]`,ariaLabel:a(`clients.claudeDirect.account`),value:v,onChange:e=>{E||e===v||k({mode:h,accountId:e})},options:_.map(e=>({value:e.id,label:Qr(e,a(`clients.claudeDirect.accountDisabledSuffix`,{status:a(`providers.subscription.status.${e.status}`)})),disabled:!Zr(e)}))})})}),c.data&&x&&y&&(0,$.jsx)(N,{title:a(`clients.claudeDirect.launchTitle`),footer:a(`clients.claudeDirect.launchNote`),children:(0,$.jsx)(ei,{command:Yr,copied:u,onCopy:async e=>{await t.copy(e)&&(p(e),o(a(`common.copied`)))}})}),c.data&&x&&y&&(0,$.jsxs)(N,{title:a(`clients.claudeDirect.statsTitle`),footer:a(`clients.claudeDirect.statsFooter`),children:[(0,$.jsx)(T,{label:a(`clients.claudeDirect.statsConsent`),detail:a(`clients.claudeDirect.statsConsentDetail`),children:(0,$.jsx)(z,{label:a(`clients.claudeDirect.statsConsent`),checked:y.telemetryEnabled,disabled:E,onChange:e=>{y&&!E&&k({mode:h,accountId:y.id,telemetryEnabled:e})}})}),C&&(0,$.jsx)(ti,{requests:w})]})]})}function ei({command:e,copied:t,onCopy:n}){let{t:r}=m();return(0,$.jsx)(T,{label:(0,$.jsx)(`span`,{className:`font-mono text-[12px] break-all selectable`,children:e}),children:(0,$.jsx)(d,{size:`sm`,icon:(0,$.jsx)(H,{className:`size-3`}),variant:t===e?`primary`:`glass`,"aria-label":r(`common.copy`),title:r(`common.copy`),onClick:()=>void n(e),children:r(t===e?`common.copied`:`common.copy`)})})}function ti({requests:e}){let{t,locale:n}=m(),r=e.data??[],i=Xr(r);return e.isLoading?(0,$.jsx)(`div`,{className:`p-4`,children:(0,$.jsx)(O,{lines:3})}):e.isError?(0,$.jsx)(`div`,{className:`p-4`,children:(0,$.jsx)(g,{tone:`danger`,title:t(`clients.claudeDirect.statsFailed`),children:f(e.error)})}):r.length===0?(0,$.jsx)(I,{icon:(0,$.jsx)(de,{className:`size-6`}),title:t(`clients.claudeDirect.statsEmpty`),detail:t(`clients.claudeDirect.statsEmptyDetail`)}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(T,{label:t(`clients.claudeDirect.statsTotals`,{count:C(i.requests)}),detail:t(`clients.claudeDirect.statsInDetail`,{input:C(i.totalInputTokens),cache:C(r.reduce((e,t)=>e+t.cacheReadTokens,0)),output:C(i.outputTokens)})}),(0,$.jsx)(T,{label:t(`clients.claudeDirect.statsCost`),detail:t(`clients.claudeDirect.statsCostDetail`),children:(0,$.jsx)(`span`,{className:`num text-[13px]`,children:v(r.some(e=>e.estimatedCostNanoUsd!=null)?i.estimatedCostNanoUsd:null)})}),i.failed>0&&(0,$.jsx)(T,{label:t(`clients.claudeDirect.statsFailedCount`,{count:C(i.failed)}),children:(0,$.jsx)(_,{tone:`red`,children:t(`clients.claudeDirect.statusError`)})}),r.map(e=>(0,$.jsx)(T,{label:(0,$.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`truncate`,children:e.model}),e.status===`error`?(0,$.jsx)(_,{tone:`red`,children:t(`clients.claudeDirect.statusError`)}):(0,$.jsx)(_,{tone:`green`,children:t(`status.success`)})]}),detail:(0,$.jsx)(`span`,{className:`num`,children:[ne(e.occurredAtUtc,n),t(`clients.claudeDirect.tokensDetail`,{input:C(e.inputTokens),output:C(e.outputTokens)}),e.durationMs==null?null:A(e.durationMs),e.accountUuid??null].filter(Boolean).join(` · `)}),children:(0,$.jsx)(`span`,{className:`num text-[13px]`,children:v(e.estimatedCostNanoUsd)})},e.id))]})}function ni({descriptors:e,values:t,onChange:n,enabled:r}){let{t:i}=m(),a=(e,r)=>{let i={...t};r===void 0||r===!1||r===0||r==="default"||r===``?delete i[e]:i[e]=r,n(i)};return(0,$.jsx)(N,{title:i(`clients.options.title`),footer:i(r?`clients.options.footerEnabled`:`clients.options.footer`),children:e.map(e=>{let n=i(`clients.option.${e.key}`),r=i(`clients.option.${e.key}.hint`),o=t[e.key];return(0,$.jsxs)(T,{label:n,detail:r,children:[e.type===`bool`&&(0,$.jsx)(z,{label:n,checked:o===!0,onChange:t=>a(e.key,t)}),e.type===`int`&&(0,$.jsx)(y,{className:`w-36`,mono:!0,inputMode:`numeric`,"aria-label":n,placeholder:i(`clients.options.unset`),value:typeof o==`number`?String(o):``,onChange:t=>{let n=Number.parseInt(t.target.value.replace(/\D/g,``),10);a(e.key,Number.isFinite(n)?n:void 0)}}),e.type===`enum`&&(0,$.jsx)(b,{ariaLabel:n,value:typeof o==`string`?o:`default`,onChange:t=>a(e.key,t),options:(e.choices??[]).map(e=>({value:e,label:i(`clients.optionChoice.${e}`)})),className:`w-36`})]},e.key)})})}function ri(e,t){let n=e?.options,r={};if(!n||typeof n!=`object`)return r;for(let e of t??[]){let t=n[e.key];e.type===`bool`&&t===!0?r[e.key]=!0:(e.type===`int`&&typeof t==`number`&&t>0||e.type===`enum`&&typeof t==`string`&&t!=="default"&&e.choices?.includes(t))&&(r[e.key]=t)}return r}var ii=e=>Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join(`
6
+ `),ai=[`ANTHROPIC_MODEL`,`ANTHROPIC_DEFAULT_OPUS_MODEL`,`ANTHROPIC_DEFAULT_SONNET_MODEL`,`ANTHROPIC_DEFAULT_HAIKU_MODEL`];function oi(e){let t=e?.models,n={};if(!t||typeof t!=`object`)return n;for(let e of ai){let r=t[e];typeof r==`string`&&r.trim()&&(n[e]=r.trim())}return n}var si=e=>ai.map(t=>e[t]??``).join(`
7
+ `),ci=[`sonnet`,`opus`,`haiku`];function li(e){let t=e?.roleMap,n={};if(!t||typeof t!=`object`)return n;for(let e of ci){let r=t[e];typeof r==`string`&&r.trim()&&(n[e]=r.trim())}return n}var ui=e=>ci.map(t=>e[t]??``).join(`
8
+ `);function di(){let{t:e}=m(),t=ue(),{toast:r}=n(),i=me(),a=ae(),o=j(),s=(0,q.useMemo)(()=>new Map((a.data??[]).map(e=>[e.kind,e])),[a.data]),c=pi(a.data).includes(i.kind)?i.kind:`codex`,l=s.get(c);return(0,q.useEffect)(()=>o.mutate(!1),[]),(0,$.jsx)(W,{title:e(`nav.clients`),subtitle:e(`clients.subtitle`),actions:(0,$.jsx)(d,{icon:(0,$.jsx)(ve,{className:`size-3.5`}),loading:o.isPending,onClick:()=>o.mutate(!0,{onSuccess:t=>{let n=t.filter(e=>e.install?.updateAvailable&&e.install.blocker!==`shadowed`).length;r(n>0?e(`clients.updatesFound`,{count:n}):e(`clients.allUpToDate`),n>0?void 0:`success`)},onError:e=>r(f(e),`error`)}),children:e(`clients.checkUpdates`)}),children:(0,$.jsx)(`div`,{className:`@container mx-auto max-w-[1200px]`,children:(0,$.jsxs)(`div`,{className:`flex flex-col gap-4 @3xl:flex-row @3xl:items-start @3xl:gap-5`,children:[(0,$.jsx)(_i,{clients:a.data,loading:a.isLoading,selected:c,onSelect:e=>t(`/clients/${e}`,{replace:!0})}),(0,$.jsxs)(`div`,{className:`mx-auto w-full max-w-[760px] min-w-0 flex-1`,children:[a.isLoading&&(0,$.jsx)(O,{lines:4}),a.isError&&(0,$.jsx)(g,{tone:`danger`,title:e(`common.error`),children:f(a.error)}),l&&(0,$.jsx)(xi,{client:l})]})]})})})}var fi=new Set([`opencode`,`pi`,`minimax-code`,`copilot-cli`,`vscode-copilot`,`crush`,`qwen-code`,`droid`,`kimi-code`,`zed`,`vscode-insiders`,`vscodium`,`omp`,`mimo-code`,`deepseek-harness`,`workbuddy`,`nextcowork`,`muse-code`]);function pi(e){let t=(e??[]).filter(e=>!ye.includes(e.kind)).sort((e,t)=>e.name.localeCompare(t.name));return[...ye,...t.map(e=>e.kind)]}var mi=[`installed`,`notInstalled`,`comingSoon`];function hi(e){return e.availability===`coming_soon`?`comingSoon`:e.detection.installed||e.enabled||e.install?.installed?`installed`:`notInstalled`}function gi(e){return e.install?.version??e.detection.version??null}function _i({clients:e,loading:t,selected:n,onSelect:r}){let{t:i}=m(),a=new Map((e??[]).map(e=>[e.kind,e])),o=mi.map(t=>({group:t,items:pi(e).flatMap(e=>{let n=a.get(e);return n&&hi(n)===t?[n]:[]})})).filter(e=>e.items.length>0);return(0,$.jsxs)(`nav`,{"aria-label":i(`nav.clients`),className:`card shrink-0 p-1.5 @3xl:sticky @3xl:top-0 @3xl:w-[232px]`,children:[t&&(0,$.jsx)(O,{lines:6,className:`p-2`}),(0,$.jsx)(`div`,{className:`flex gap-1 overflow-x-auto @3xl:flex-col @3xl:gap-0 @3xl:overflow-visible`,children:o.map(({group:e,items:t})=>(0,$.jsxs)(`div`,{className:`contents @3xl:block`,children:[(0,$.jsxs)(`h3`,{className:`hidden px-2.5 pt-2 pb-1 text-[11px] font-medium text-[var(--text-muted)] @3xl:block`,children:[i(`clients.group.${e}`),` · `,t.length]}),t.map(e=>(0,$.jsx)(vi,{client:e,active:e.kind===n,onSelect:()=>r(e.kind)},e.kind))]},e))})]})}function vi({client:e,active:t,onSelect:n}){let{t:r}=m(),i=hi(e)!==`installed`,o=gi(e),s=e.install?.blocker===`shadowed`,c=e.install?.updateAvailable&&!s?e.install.latestVersion:null;return(0,$.jsxs)(`button`,{type:`button`,"aria-label":be(e.kind,e.name),"aria-current":t?`page`:void 0,onClick:n,className:h(`flex shrink-0 items-center gap-2.5 rounded-[var(--radius-control)] px-2.5 py-1.5 text-left transition-colors @3xl:w-full`,t?`bg-[var(--accent-subtle)]`:`hover:bg-[var(--surface-muted)]`),children:[(0,$.jsx)(`span`,{className:h(`inline-flex`,i&&!t&&`opacity-60`),children:(0,$.jsx)(Se,{kind:e.kind,size:24})}),(0,$.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`span`,{className:h(`block truncate text-[13px] whitespace-nowrap`,t&&`font-medium`),children:be(e.kind,e.name)}),o&&(0,$.jsxs)(`span`,{className:`hidden truncate text-[11px] text-[var(--text-secondary)] @3xl:block`,children:[o,c&&(0,$.jsxs)(`span`,{className:`text-[var(--warning)]`,children:[` → `,c]})]})]}),e.install?.busy&&(0,$.jsx)(yi,{}),c&&!e.install?.busy&&(0,$.jsx)(_,{tone:`orange`,title:r(`clients.updateTo`,{version:c}),children:r(`clients.updateBadge`)}),s&&!e.install?.busy&&(0,$.jsx)(_,{tone:`orange`,title:r(`clients.shadowed.title`,{version:e.install?.latestVersion??``}),children:r(`clients.shadowedBadge`)}),e.status===`drifted`?(0,$.jsx)(`span`,{title:r(`clients.drifted`),"aria-label":r(`clients.drifted`),className:`inline-flex`,children:(0,$.jsx)(V,{tone:`orange`})}):e.enabled?(0,$.jsx)(a,{className:`size-3.5 shrink-0 text-[var(--success)]`,strokeWidth:2.5,"aria-label":r(`clients.enabled`)}):null]})}function yi(){return(0,$.jsx)(_e,{className:`size-3.5 shrink-0 animate-spin text-[var(--text-secondary)] motion-reduce:animate-none`,"aria-hidden":!0})}function bi(e,t){return e.availability===`coming_soon`?(0,$.jsx)(_,{children:t(`clients.comingSoon`)}):e.status===`drifted`?(0,$.jsx)(_,{tone:`orange`,children:t(`clients.drifted`)}):e.enabled?(0,$.jsx)(_,{tone:`green`,children:t(`clients.enabled`)}):(0,$.jsx)(_,{children:t(`clients.disabled`)})}function xi({client:e}){let{t:i,locale:a}=m(),o=ue(),{toast:s,confirm:l}=n(),u=R(),h=ee(),v=p(),y=r(),x=c(),S=te(e.kind,!!e.providerId),[C,w]=(0,q.useState)(e.selectedModel??null),[D,k]=(0,q.useState)(e.accountId??``),A=e.tokenId??`default`,[j,M]=(0,q.useState)(A),P=(x.data??[]).filter(e=>e.enabled||e.id===A).map(e=>({value:e.id,label:e.enabled?e.name:i(`clients.tokenDisabled`,{name:e.name}),disabled:!e.enabled})),[F,I]=(0,q.useState)(!1),[re,z]=(0,q.useState)(!1),[B,ie]=(0,q.useState)(null),V=e.availability===`coming_soon`,ae=be(e.kind,e.name),oe=(u.data??[]).filter(e=>e.enabled),se=e.detection.configPaths[0],ce=oe.find(t=>t.id===e.providerId),fe=ce?.authScheme===`oauth-subscription`||ce?.authScheme===`plugin`,pe=E(ce?.id,fe),U=e.kind===`claude-desktop`,W=e.kind===`claude-code`,me=L(W),G=W&&me.data?.mode===`direct`,K=li(e.extras),[ge,_e]=(0,q.useState)(K),ve=ci.some(e=>ge[e]),ye=ui(ge)!==ui(K),xe=oi(e.extras),[Ce,Te]=(0,q.useState)(xe),Ee=(C??null)!==(e.selectedModel??null)||si(Ce)!==si(xe),De=W?ai.filter(e=>e!==`ANTHROPIC_MODEL`):[],Oe=W?e.enabled?i(`clients.modelSlotsFooterEnabled`):i(`clients.modelSlotsFooter`):e.enabled?i(`clients.modelFooterEnabled`):i(`clients.modelFooter`),ke=e.options??[],Ae=ri(e.extras,ke),[je,Me]=(0,q.useState)(Ae),Ne=ii(je)!==ii(Ae),Pe=U?{...e.extras,roleMap:ge}:W?{...e.extras,models:Ce,options:je}:ke.length>0?{...e.extras,options:je}:void 0;(0,q.useEffect)(()=>w(e.selectedModel??null),[e.kind,e.selectedModel]),(0,q.useEffect)(()=>k(e.accountId??``),[e.kind,e.providerId,e.accountId]),(0,q.useEffect)(()=>M(A),[e.kind,A]),(0,q.useEffect)(()=>_e(li(e.extras)),[e.kind,ui(K)]),(0,q.useEffect)(()=>Te(oi(e.extras)),[e.kind,si(xe)]),(0,q.useEffect)(()=>Me(ri(e.extras,e.options)),[e.kind,ii(Ae)]);let Fe=()=>{e.providerId&&h.mutate({kind:e.kind,providerId:e.providerId,accountId:D},{onSuccess:()=>s(i(`common.saved`),`success`),onError:e=>s(f(e),`error`)})},J=async()=>{await l({title:i(`clients.disableConfirm`,{name:ae}),detail:i(`clients.disableDetail`),confirmLabel:i(`clients.disable`)})&&v.mutate(e.kind,{onSuccess:async t=>{if(t.drifted.length===0){s(i(`clients.disabledToast`,{name:ae}),`success`);return}await l({title:i(`clients.driftTitle`),detail:i(`clients.driftDetail`,{keys:t.drifted.join(`, `)}),confirmLabel:i(`clients.forceRestore`),destructive:!0})&&y.mutate(e.kind,{onSuccess:()=>s(i(`clients.disabledToast`,{name:ae}),`success`),onError:e=>s(f(e),`error`)})},onError:e=>s(f(e),`error`)})},Ie=async()=>{se&&(t.canOpenPaths?await t.openPath(le(se)):await t.copy(se)&&s(i(`common.copied`)))};return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(N,{children:[(0,$.jsxs)(T,{icon:(0,$.jsx)(Se,{kind:e.kind,size:36}),label:(0,$.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`text-[15px] font-medium`,children:ae}),G?(0,$.jsx)(_,{children:i(`clients.claudeDirect.direct`)}):bi(e,i)]}),detail:V?e.availabilityReason??i(`clients.comingSoonDetail`):[hi(e)===`installed`?i(`clients.detected`,{version:gi(e)??``}):i(`clients.notDetected`),G?null:se].filter(Boolean).join(` · `),className:`py-3`,children:[!V&&(0,$.jsx)(Ti,{client:e,onOpen:ie}),G?(0,$.jsx)(d,{variant:`primary`,onClick:()=>document.getElementById(Di)?.scrollIntoView({behavior:`smooth`,block:`start`}),children:i(`clients.claudeDirect.configure`)}):e.enabled?(0,$.jsx)(d,{onClick:()=>void J(),loading:v.isPending,children:i(`clients.disableRestore`)}):(0,$.jsx)(d,{variant:`primary`,disabled:V||!e.providerId||U&&!ve,onClick:()=>I(!0),title:e.providerId?U&&!ve?i(`clients.roleMapRequired`):void 0:i(`clients.pickProviderFirst`),children:i(`clients.enable`)})]}),!G&&e.appliedAt&&(0,$.jsx)(T,{label:(0,$.jsx)(`span`,{className:`text-[12px] text-[var(--text-secondary)]`,children:i(`clients.appliedAt`,{time:ne(e.appliedAt,a)})})})]}),!G&&e.warnings.length>0&&(0,$.jsx)(`div`,{className:`mb-5 flex flex-col gap-2`,children:e.warnings.map((e,t)=>(0,$.jsx)(g,{tone:`warning`,title:e},t))}),!G&&(0,$.jsx)(Ci,{client:e,providers:u.data??[],loading:u.isLoading,soon:V}),!G&&fe&&(0,$.jsx)(N,{title:i(`clients.accountTitle`),footer:i(`clients.accountFooter`),children:pe.isLoading?(0,$.jsx)(`div`,{className:`p-4`,children:(0,$.jsx)(O,{lines:2})}):(0,$.jsxs)(T,{label:i(`clients.account`),children:[(0,$.jsx)(b,{className:`max-w-[300px]`,ariaLabel:i(`clients.account`),value:D,onChange:k,options:[{value:``,label:i(`clients.accountDefault`)},...(pe.data??[]).map(e=>({value:e.id,label:(e.displayName||e.id)+(e.status===`active`?``:` · ${i(`providers.subscription.status.${e.status}`)}`)}))]}),D!==(e.accountId??``)&&(0,$.jsx)(d,{size:`sm`,variant:`primary`,loading:h.isPending,onClick:Fe,children:i(`common.apply`)})]})}),!V&&!G&&(0,$.jsxs)(N,{title:i(`clients.tokenTitle`),footer:e.enabled?i(`clients.tokenFooterEnabled`):i(`clients.tokenFooter`),children:[(0,$.jsxs)(T,{label:i(`clients.token`),children:[(0,$.jsx)(b,{className:`max-w-[300px]`,ariaLabel:i(`clients.token`),value:j,onChange:M,options:P}),e.enabled&&j!==A&&(0,$.jsx)(d,{size:`sm`,variant:`primary`,onClick:()=>I(!0),children:i(`common.apply`)})]}),(0,$.jsx)(T,{icon:(0,$.jsx)(de,{className:`size-4 text-[var(--text-secondary)]`}),label:i(`clients.manageTokens`),onClick:()=>o(`/tokens`)})]}),!V&&!G&&e.providerId&&U&&(0,$.jsxs)(N,{title:i(`clients.roleMapTitle`),footer:e.enabled?i(`clients.roleMapFooterEnabled`):i(`clients.roleMapFooter`),children:[ci.map(e=>(0,$.jsx)(T,{label:i(`clients.role.${e}`),children:(0,$.jsx)(b,{ariaLabel:i(`clients.role.${e}`),value:ge[e]??``,onChange:t=>_e(n=>({...n,[e]:t||void 0})),placeholder:i(`clients.modelPlaceholder`),options:[{value:``,label:i(`clients.modelUnset`)},...(S.data??[]).map(e=>({value:e,label:e}))],className:`max-w-[300px]`})},e)),e.enabled&&ye&&(0,$.jsx)(T,{label:ve?``:(0,$.jsx)(`span`,{className:`text-[12px] text-[var(--warning)]`,children:i(`clients.roleMapRequired`)}),children:(0,$.jsx)(d,{size:`sm`,variant:`primary`,disabled:!ve,onClick:()=>I(!0),children:i(`common.apply`)})})]}),!V&&!G&&e.providerId&&!U&&(0,$.jsxs)(N,{title:i(`clients.modelTitle`),footer:Oe,children:[(0,$.jsx)(T,{label:i(`clients.defaultModel`),children:(0,$.jsx)(b,{value:C??``,onChange:e=>w(e||null),placeholder:i(`clients.modelPlaceholder`),options:[{value:``,label:i(`clients.modelUnset`)},...(S.data??[]).map(e=>({value:e,label:e}))],className:`max-w-[300px]`})}),De.map(e=>(0,$.jsx)(T,{label:i(`clients.modelSlot.${e}`),children:(0,$.jsx)(b,{ariaLabel:i(`clients.modelSlot.${e}`),value:Ce[e]??``,onChange:t=>Te(n=>({...n,[e]:t||void 0})),placeholder:i(`clients.modelPlaceholder`),options:[{value:``,label:i(`clients.modelUnset`)},...(S.data??[]).map(e=>({value:e,label:e}))],className:`max-w-[300px]`})},e)),e.enabled&&(W?Ee:(C??null)!==(e.selectedModel??null))&&(0,$.jsx)(T,{label:``,children:(0,$.jsx)(d,{size:`sm`,variant:`primary`,onClick:()=>I(!0),children:i(`common.apply`)})})]}),!V&&!G&&ke.length>0&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(ni,{descriptors:ke,values:je,onChange:Me,enabled:e.enabled}),e.enabled&&Ne&&(0,$.jsx)(`div`,{className:`-mt-3 mb-5 flex justify-end`,children:(0,$.jsx)(d,{size:`sm`,variant:`primary`,onClick:()=>I(!0),children:i(`common.apply`)})})]}),!V&&e.install&&(0,$.jsx)(Oi,{client:e,onShowLog:()=>ie(`log`)}),W&&(0,$.jsx)(`div`,{id:Di,children:(0,$.jsx)($r,{enabled:W,gatewayEnabled:e.enabled})}),!V&&!G&&(0,$.jsxs)(N,{title:i(`clients.maintenance`),children:[se&&(0,$.jsx)(T,{icon:t.canOpenPaths?(0,$.jsx)(he,{className:`size-4 text-[var(--text-secondary)]`}):(0,$.jsx)(H,{className:`size-4 text-[var(--text-secondary)]`}),label:t.canOpenPaths?i(`clients.openConfigDir`):i(`clients.copyConfigPath`),detail:se,onClick:()=>void Ie()}),(0,$.jsx)(T,{icon:(0,$.jsx)(we,{className:`size-4 text-[var(--text-secondary)]`}),label:i(`clients.backups`),detail:i(`clients.backupsDetail`),onClick:()=>z(!0)})]}),(0,$.jsx)(Ai,{open:F,onOpenChange:I,client:e,model:C,extras:Pe,tokenId:j}),(0,$.jsx)(Ni,{open:re,onOpenChange:z,client:e}),(0,$.jsx)(ki,{mode:B,onClose:()=>ie(null),client:e})]})}function Si(e,t){return[e.priceKey??e.templateId,t(`providers.modelCount`,{count:e.modelCount}),e.priceMultiplier===1?null:`×${e.priceMultiplier}`].filter(Boolean).join(` · `)}function Ci({client:e,providers:t,loading:r,soon:i}){let{t:a}=m(),{toast:o}=n(),s=l(),c=(0,q.useMemo)(()=>e.bindings??(e.providerId?[{providerId:e.providerId,accountId:e.accountId}]:[]),[e.bindings,e.providerId,e.accountId]),[u,p]=(0,q.useState)(c);(0,q.useEffect)(()=>p(c),[c]);let h=(0,q.useMemo)(()=>new Map(t.map(e=>[e.id,e])),[t]),g=u.flatMap(e=>{let t=h.get(e.providerId);return t?[{binding:e,provider:t}]:[]}),_=t.filter(e=>e.enabled&&!u.some(t=>t.providerId===e.id)),v=_t(gt(_n,{activationConstraint:{distance:4}}),gt(fn,{coordinateGetter:Kr})),y=i||s.isPending,b=(t,n)=>{let r=u;p(t),s.mutate({kind:e.kind,bindings:t},{onSuccess:()=>o(fi.has(e.kind)&&e.enabled?a(`clients.providersModelsSynced`,{client:be(e.kind,e.name)}):n),onError:e=>{p(r),o(f(e),`error`)}})},x=({active:e,over:t})=>{if(!t||e.id===t.id)return;let n=u.findIndex(t=>t.providerId===e.id),r=u.findIndex(e=>e.providerId===t.id);n<0||r<0||b(Cr(u,n,r),a(`clients.providerOrderSaved`))},S=e=>b([...u,{providerId:e.id}],a(`clients.providerAdded`,{provider:e.name})),C=e=>b(u.filter(t=>t.providerId!==e.id),a(`clients.providerRemoved`,{provider:e.name})),w=_.map(e=>(0,$.jsx)(T,{icon:(0,$.jsx)(xe,{name:e.name,icon:e.icon,colorKey:e.templateId,size:24}),label:e.name,detail:Si(e,a),onClick:y?void 0:()=>S(e),children:!i&&(0,$.jsx)(U,{className:`size-4 text-[var(--text-secondary)]`,"aria-label":a(`common.add`)})},e.id));return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(N,{title:a(`clients.providerTitle`),footer:a(`clients.providerFooter`),children:[r&&(0,$.jsx)(`div`,{className:`p-4`,children:(0,$.jsx)(O,{lines:2})}),!r&&g.length===0&&_.length===0&&(0,$.jsx)(I,{title:a(`clients.noProviders`),detail:a(`clients.noProvidersDetail`),action:(0,$.jsx)(fe,{to:`/providers?new=1`,children:(0,$.jsx)(d,{variant:`primary`,icon:(0,$.jsx)(U,{className:`size-3.5`}),children:a(`providers.add`)})})}),g.length>0&&(0,$.jsx)(mr,{sensors:v,collisionDetection:wt,onDragEnd:x,children:(0,$.jsx)(Pr,{items:g.map(e=>e.provider.id),strategy:Ar,children:g.map(({provider:e},t)=>(0,$.jsx)(wi,{provider:e,primary:t===0,disabled:y,onRemove:g.length>1?()=>C(e):void 0},e.id))})}),!r&&g.length===0&&w]}),g.length>0&&_.length>0&&(0,$.jsx)(N,{title:a(`clients.moreProvidersTitle`),children:w})]})}function wi({provider:e,primary:t,disabled:n,onRemove:r}){let{t:i}=m(),{attributes:a,listeners:o,setNodeRef:s,setActivatorNodeRef:c,transform:l,transition:u,isDragging:f}=Hr({id:e.id,disabled:n});return(0,$.jsx)(`div`,{ref:s,style:{transform:nt.Transform.toString(l),transition:u},className:h(f&&`relative z-10 bg-[var(--surface)] shadow-lg`),children:(0,$.jsx)(T,{icon:(0,$.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`button`,{ref:c,type:`button`,"aria-label":i(`clients.dragToReorder`,{provider:e.name}),title:i(`clients.dragToReorder`,{provider:e.name}),className:`-ml-1 inline-flex cursor-grab touch-none text-[var(--text-muted)] hover:text-[var(--text-secondary)] active:cursor-grabbing disabled:cursor-default disabled:opacity-50`,...a,...o,children:(0,$.jsx)(Oe,{className:`size-4`})}),(0,$.jsx)(xe,{name:e.name,icon:e.icon,colorKey:e.templateId,size:24})]}),label:(0,$.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`truncate`,children:e.name}),t&&(0,$.jsx)(_,{tone:`accent`,children:i(`clients.primaryProvider`)}),!e.enabled&&(0,$.jsx)(_,{tone:`orange`,children:i(`clients.providerDisabledBadge`)})]}),detail:Si(e,i),children:r&&(0,$.jsx)(d,{size:`sm`,variant:`plain`,icon:(0,$.jsx)(S,{className:`size-3.5`}),"aria-label":i(`clients.removeProvider`,{provider:e.name}),title:i(`clients.removeProvider`,{provider:e.name}),disabled:n,onClick:r})})})}function Ti({client:e,onOpen:t}){let{t:n}=m(),r=e.install;if(!r)return null;let i=r.needsAdmin?(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-[11px] text-[var(--warning)]`,children:[(0,$.jsx)(Ae,{className:`size-3`,"aria-hidden":!0}),n(`clients.admin.badge`)]}):null,a=r.needsAdmin?n(r.adminAvailable?`clients.admin.tip`:`clients.admin.tipManual`):void 0;return r.busy?(0,$.jsx)(d,{icon:(0,$.jsx)(yi,{}),onClick:()=>t(`log`),children:n(`clients.installRunning`)}):r.updateAvailable&&r.updateCommand&&r.latestVersion?(0,$.jsxs)(d,{icon:(0,$.jsx)(Ee,{className:`size-3.5`}),title:a,onClick:()=>t(`update`),children:[n(`clients.updateTo`,{version:r.latestVersion}),i]}):r.updateAvailable&&r.blocker===`shadowed`?(0,$.jsx)(d,{icon:(0,$.jsx)(Ae,{className:`size-3.5`}),onClick:()=>document.getElementById(Ei)?.scrollIntoView({behavior:`smooth`,block:`center`}),children:n(`clients.shadowedBadge`)}):!r.installed&&r.installCommand?(0,$.jsxs)(d,{icon:(0,$.jsx)(G,{className:`size-3.5`}),title:a,onClick:()=>t(`install`),children:[n(`clients.install`),i]}):!r.installed&&r.method===`manual`?(0,$.jsx)(d,{icon:(0,$.jsx)(K,{className:`size-3.5`}),onClick:()=>window.open(r.homepageUrl,`_blank`,`noreferrer`),children:n(`clients.download`)}):null}var Ei=`client-shadowed-alert`,Di=`claude-direct-panel`;function Oi({client:e,onShowLog:t}){let{t:n,locale:r}=m(),i=e.install,a=w(e.kind),o=(e,t=!1)=>(0,$.jsx)(`span`,{className:h(`text-[13px] tabular-nums selectable`,t&&`text-[var(--text-secondary)]`),children:e}),s=i.blocker===`external-install`?n(`clients.blocker.external-install`,{path:i.executable??``}):i.blocker?n(`clients.blocker.${i.blocker}`):void 0,c=i.otherCopies??[],l=c.find(e=>e.newer);return(0,$.jsxs)($.Fragment,{children:[l&&(0,$.jsx)(`div`,{id:Ei,className:`mb-3`,children:(0,$.jsx)(g,{tone:`warning`,title:n(`clients.shadowed.title`,{version:l.version}),children:n(`clients.shadowed.detail`,{path:i.executable??``,version:i.version??``,other:l.path,dir:le(l.path)})})}),!l&&i.notOnPath&&i.executable&&(0,$.jsx)(`div`,{className:`mb-3`,children:(0,$.jsx)(g,{tone:`warning`,title:n(`clients.notOnPath.title`),children:n(`clients.notOnPath.detail`,{dir:le(i.executable)})})}),(0,$.jsxs)(N,{title:n(`clients.versionTitle`),footer:s,children:[(0,$.jsx)(T,{label:n(`clients.currentVersion`),detail:i.installed?i.executable:void 0,children:i.installed?o(i.version??n(`clients.versionUnknown`),!i.version):o(n(`clients.notInstalled`),!0)}),c.map(e=>(0,$.jsxs)(T,{label:n(`clients.otherCopy`),detail:e.path,children:[e.newer&&(0,$.jsx)(_,{tone:`orange`,children:n(`clients.otherCopyNewer`)}),o(e.version,!e.newer)]},e.path)),(i.method===`npm`||i.method===`script`)&&(0,$.jsxs)(T,{label:n(`clients.latestVersion`),detail:i.latestError??(i.latestCheckedAt?n(`clients.checkedAt`,{time:ne(i.latestCheckedAt,r)}):void 0),children:[i.updateAvailable&&(0,$.jsx)(_,{tone:`orange`,children:n(`clients.updateBadge`)}),o(i.latestVersion??n(`clients.latestUnknown`),!i.latestVersion)]}),(0,$.jsx)(T,{label:n(`clients.installMethod`),detail:n(`clients.method.${i.method}`,{package:i.package??``}),children:(0,$.jsx)(d,{size:`sm`,variant:`plain`,icon:(0,$.jsx)(K,{className:`size-3`}),onClick:()=>window.open(i.homepageUrl,`_blank`,`noreferrer`),children:n(`clients.homepage`)})}),a.data&&(0,$.jsx)(T,{icon:(0,$.jsx)(pe,{className:`size-4 text-[var(--text-secondary)]`}),label:n(`clients.installLog`),detail:`${a.data.command} · ${n(`clients.job.${a.data.state}`)}`,onClick:t})]})]})}function ki({mode:e,onClose:r,client:i}){let{t:a}=m(),{toast:c}=n(),l=re(),u=e!==null,p=w(i.kind,u||!!i.install?.busy),_=s(),v=B(),[y,b]=(0,q.useState)(!1),x=(0,q.useRef)(null),S=(0,q.useRef)(void 0),C=be(i.kind,i.name),T=i.install,E=e===`install`||e===`update`?e:null,D=E===`install`?T?.installCommand:E===`update`?T?.updateCommand:null,k=p.data,A=E!==null&&!y&&k?.state!==`running`,j=!!T?.needsAdmin,M=!!T?.adminAvailable,N=k?.state===`failed`&&k.hint===`permission-denied`&&!k.elevated&&M;(0,q.useEffect)(()=>{u&&b(!1)},[u,e]),(0,q.useEffect)(()=>{let e=k?.state;S.current===`running`&&e&&e!==`running`&&(l.invalidateQueries({queryKey:o.clients}),e===`succeeded`&&k.hint?c(a(`clients.notEffectiveToast`,{name:C})):e===`succeeded`&&c(a(k.action===`install`?`clients.installedToast`:`clients.updatedToast`,{name:C}),`success`)),S.current=e},[k?.state,k?.action,k?.hint,C,l,a,c]),(0,q.useEffect)(()=>{let e=x.current;e&&(e.scrollTop=e.scrollHeight)},[k?.log.length]);let ee=(e,t)=>_.mutate({kind:i.kind,action:e,elevated:t},{onSuccess:()=>b(!0),onError:e=>c(f(e),`error`)}),te=async e=>{await t.copy(e)&&c(a(`common.copied`))},P=a((E??k?.action)===`update`?`clients.updateTitle`:`clients.installTitle`,{name:C}),ne={running:`info`,succeeded:`success`,failed:`danger`,cancelled:`warning`},F=`rounded-[var(--radius-control)] border border-[var(--border)] bg-[var(--surface-muted)] px-3 py-2 font-mono text-[12px] break-all whitespace-pre-wrap selectable`,L=T?.adminFixCommand?(0,$.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,$.jsx)(`p`,{className:`text-[11px] text-[var(--text-secondary)]`,children:a(`clients.admin.fixTip`)}),(0,$.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,$.jsx)(`pre`,{className:h(F,`min-w-0 flex-1`),children:T.adminFixCommand}),(0,$.jsx)(d,{size:`sm`,icon:(0,$.jsx)(H,{className:`size-3`}),"aria-label":a(`common.copy`),onClick:()=>void te(T.adminFixCommand)})]})]}):null;return(0,$.jsx)(ce,{open:u,onOpenChange:e=>!e&&r(),width:620,title:P,description:A?a(`clients.installRunDetail`):void 0,footer:A?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(d,{onClick:r,children:a(`common.cancel`)}),j&&!M?(0,$.jsx)(d,{variant:`primary`,icon:(0,$.jsx)(H,{className:`size-3.5`}),disabled:!D,onClick:()=>void te(`sudo ${D}`),children:a(`clients.admin.copyCommand`)}):(0,$.jsx)(d,{variant:`primary`,icon:j?(0,$.jsx)(Ae,{className:`size-3.5`}):void 0,disabled:!D,loading:_.isPending,onClick:()=>E&&ee(E,j),children:a(j?`clients.admin.start`:`clients.installStart`)})]}):k?.state===`running`?(0,$.jsxs)($.Fragment,{children:[!k.elevated&&(0,$.jsx)(d,{variant:`destructive`,loading:v.isPending,onClick:()=>v.mutate(i.kind,{onError:e=>c(f(e),`error`)}),children:a(`clients.installStop`)}),(0,$.jsx)(d,{onClick:r,children:a(`common.close`)})]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(d,{onClick:r,children:a(`common.done`)}),N&&(0,$.jsx)(d,{variant:`primary`,icon:(0,$.jsx)(Ae,{className:`size-3.5`}),loading:_.isPending,onClick:()=>ee(k.action,!0),children:a(`clients.admin.retry`)})]}),children:A?(0,$.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[j&&(0,$.jsx)(g,{tone:`warning`,title:a(`clients.admin.title`),children:a(M?`clients.admin.prompt`:`clients.admin.manual`)}),D?(0,$.jsx)(`pre`,{className:F,children:j?`sudo ${D}`:D}):(0,$.jsx)(g,{tone:`warning`,title:a(`clients.installUnavailable`)}),T?.method===`npm`&&(0,$.jsx)(`p`,{className:`text-[11px] text-[var(--text-muted)]`,children:a(`clients.installNpmNote`)}),j&&L]}):k?(0,$.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,$.jsx)(g,{tone:k.state===`succeeded`&&k.hint?`warning`:ne[k.state],title:a(k.state===`succeeded`&&k.hint?`clients.job.notEffective`:`clients.job.${k.state}`),children:k.state===`running`&&k.elevated?a(`clients.admin.running`):k.hint?a(`clients.hint.${k.hint}`)+(N?a(`clients.admin.retryHint`):``):void 0}),(0,$.jsx)(`pre`,{ref:x,className:`scroll max-h-[340px] min-h-[160px] rounded-[var(--radius-control)] border border-[var(--border)] bg-[var(--surface-muted)] px-3 py-2 font-mono text-[11px] leading-relaxed break-all whitespace-pre-wrap selectable`,children:k.log.join(`
9
+ `)}),k.hint===`permission-denied`&&L]}):p.isLoading?(0,$.jsx)(O,{lines:4}):(0,$.jsx)(I,{icon:(0,$.jsx)(pe,{className:`size-6`}),title:a(`clients.noInstallLog`)})})}function Ai({open:e,onOpenChange:t,client:r,model:i,extras:a,tokenId:o}){let{t:s}=m(),{toast:c}=n(),l=M(),u=se(),p=be(r.kind,r.name),h=a?{providerId:r.providerId,model:i,extras:a,tokenId:o}:{providerId:r.providerId,model:i,tokenId:o};return(0,q.useEffect)(()=>{e&&l.mutate({kind:r.kind,req:h})},[e]),(0,$.jsxs)(ce,{open:e,onOpenChange:t,width:620,title:s(`clients.enableTitle`,{name:p}),description:s(`clients.enableDetail`),footer:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(d,{onClick:()=>t(!1),children:s(`common.cancel`)}),(0,$.jsx)(d,{variant:`primary`,disabled:!l.data,loading:u.isPending,onClick:()=>u.mutate({kind:r.kind,req:h},{onSuccess:e=>{t(!1),c(e.requiresRestart?s(`clients.enabledRestart`,{name:p}):s(`clients.enabledToast`,{name:p}),`success`)},onError:e=>c(f(e),`error`)}),children:r.enabled?s(`common.apply`):s(`clients.enable`)})]}),children:[l.isPending&&(0,$.jsx)(O,{lines:4}),l.isError&&(0,$.jsx)(g,{tone:`danger`,title:s(`common.error`),children:f(l.error)}),l.data&&(0,$.jsx)(ji,{preview:l.data})]})}function ji({preview:e}){let{t}=m();return(0,$.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[e.warnings.map((e,t)=>(0,$.jsx)(g,{tone:`warning`,title:e},t)),e.changes.length===0&&(0,$.jsx)(g,{tone:`info`,title:t(`clients.noChanges`)}),e.diffs.map(e=>(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`div`,{className:`mb-2 font-mono text-[11px] text-[var(--text-secondary)]`,children:e.file}),(0,$.jsx)(Mi,{diff:e.unifiedDiff})]},e.file))]})}function Mi({diff:e}){return(0,$.jsx)(`pre`,{className:`scroll max-h-[300px] rounded-[var(--radius-control)] border border-[var(--border)] bg-[var(--surface-muted)] py-2 font-mono text-[11px] leading-relaxed selectable`,children:e.split(`
10
+ `).map((e,t)=>(0,$.jsx)(`div`,{className:h(`px-3 whitespace-pre-wrap break-all`,e.startsWith(`+`)&&!e.startsWith(`+++`)&&`bg-[color-mix(in_oklab,var(--success)_12%,transparent)] text-[var(--success)]`,e.startsWith(`-`)&&!e.startsWith(`---`)&&`bg-[color-mix(in_oklab,var(--danger)_10%,transparent)] text-[var(--danger)]`,e.startsWith(`@@`)&&`text-[var(--text-muted)]`),children:e||` `},t))})}function Ni({open:e,onOpenChange:t,client:r}){let{t:a,locale:o}=m(),{toast:s,confirm:c}=n(),l=F(r.kind,e),u=i();return(0,$.jsxs)(ce,{open:e,onOpenChange:t,width:520,title:a(`clients.backups`),description:a(`clients.backupsDetail`),footer:(0,$.jsx)(d,{onClick:()=>t(!1),children:a(`common.done`)}),children:[l.isLoading&&(0,$.jsx)(O,{lines:3}),l.isError&&(0,$.jsx)(g,{tone:`danger`,title:a(`common.error`),children:f(l.error)}),l.data?.length===0&&(0,$.jsx)(I,{icon:(0,$.jsx)(we,{className:`size-6`}),title:a(`clients.noBackups`)}),(0,$.jsx)(`div`,{className:`card divide-y divide-[var(--border)]`,children:l.data?.map(e=>(0,$.jsx)(T,{label:(0,$.jsxs)(`span`,{className:`flex items-center gap-2`,children:[ne(e.createdAt,o),e.firstWrite&&(0,$.jsx)(_,{tone:`accent`,children:a(`clients.firstWrite`)})]}),detail:e.files.join(`, `),children:(0,$.jsx)(d,{size:`sm`,icon:(0,$.jsx)(ge,{className:`size-3`}),loading:u.isPending&&u.variables?.id===e.id,onClick:async()=>{await c({title:a(`clients.restoreConfirm`),detail:e.files.join(`
11
+ `),destructive:!0,confirmLabel:a(`clients.restore`)})&&u.mutate({kind:r.kind,id:e.id},{onSuccess:()=>s(a(`clients.restored`),`success`),onError:e=>s(f(e),`error`)})},children:a(`clients.restore`)})},e.id))})]})}export{di as ClientsPage};
@@ -0,0 +1 @@
1
+ import{C as e,Q as t,S as n,Tr as r,Ut as i,Vn as a,X as o,Xr as s,Z as c,_n as l,ar as u,at as d,b as f,ct as p,ft as m,g as h,gn as g,ha as _,it as v,ma as y,n as b,oi as x,pt as S,rt as C,st as w,ut as T,va as E,x as D}from"./format-CkDcAs-_.js";import{b as O,g as k,s as A,t as j,x as M}from"./Page-iMwsVZGv.js";import{n as N,t as ee}from"./checkbox-BQx1e8t-.js";import{t as P}from"./pencil-C5urmout.js";import{t as te}from"./rotate-ccw-CJ2l4No1.js";import{T as F,i as ne,o as I}from"./index-C6Mqffdm.js";import{t as L}from"./confirm-morph-C93BpFKZ.js";var R=E(_(),1),z=y(),B=[{key:`vision`,label:`cap.vision`},{key:`tools`,label:`cap.tools`},{key:`reasoning`,label:`cap.reasoning`},{key:`promptCache`,label:`cap.promptCache`},{key:`audio`,label:`cap.audio`},{key:`pdf`,label:`cap.pdf`},{key:`structuredOutput`,label:`cap.structuredOutput`}];function V(e){return{displayName:e.displayName,vendor:e.vendor,family:e.family??null,aliases:e.aliases,contextWindow:e.contextWindow??null,maxOutputTokens:e.maxOutputTokens??null,capabilities:e.capabilities,pricing:e.pricing??null,enabled:e.enabled}}function H(){let{t:l,locale:u}=i(),f=O(),{id:_=``}=M(),y=decodeURIComponent(_),x=a(y),C=s(y),E=r(y),D=g(),{toast:A}=e(),P=(0,R.useMemo)(()=>x.data?V(x.data):null,[x.data]),[F,L]=(0,R.useState)(P),[H,G]=(0,R.useState)(``);(0,R.useEffect)(()=>{L(P),G(P?.aliases?.join(`, `)??``)},[P]);let q=(0,z.jsx)(t,{variant:`glass`,icon:(0,z.jsx)(N,{className:`size-4`}),"aria-label":l(`common.back`),onClick:()=>f(`/models`)});if(x.isError)return(0,z.jsx)(j,{title:l(`nav.models`),leading:q,children:(0,z.jsx)(o,{tone:`danger`,title:l(`common.error`),children:n(x.error)})});let J=x.data;if(!J||!F)return(0,z.jsx)(j,{title:``,leading:q,children:(0,z.jsx)(m,{lines:5,className:`mx-auto max-w-[1100px]`})});let Y=e=>L(t=>({...t,...e})),X={...F,aliases:H.split(/[,\n]/).map(e=>e.trim()).filter(Boolean)},Z=JSON.stringify(X)!==JSON.stringify(P),re=new Set(J.userModifiedFields),Q=J.source===`seed`,ie=()=>C.mutate(X,{onSuccess:()=>A(l(`common.saved`),`success`),onError:e=>A(n(e),`error`)}),$=e=>re.has(e)?(0,z.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,z.jsx)(c,{tone:`orange`,children:l(`models.modified`)}),Q&&(0,z.jsx)(t,{size:`sm`,variant:`plain`,icon:(0,z.jsx)(te,{className:`size-3`}),title:l(`models.resetField`),"aria-label":l(`models.resetField`),onClick:()=>E.mutate(e,{onSuccess:()=>A(l(`models.fieldReset`)),onError:e=>A(n(e),`error`)})})]}):null;return(0,z.jsx)(j,{title:J.displayName,subtitle:`${J.id} · ${l(`models.source.${J.source}`)} · ${l(`models.updated`,{time:b(J.updatedAt,u)})}`,leading:q,actions:(0,z.jsxs)(z.Fragment,{children:[J.source===`user`&&(0,z.jsx)(K,{label:l(`common.delete`),prompt:l(`models.deleteConfirm`,{id:J.id}),onConfirm:async()=>{await D.mutateAsync(J.id),f(`/models`)}}),Z&&(0,z.jsx)(t,{onClick:()=>{L(P),G(P?.aliases?.join(`, `)??``)},children:l(`common.revert`)}),(0,z.jsx)(t,{variant:`primary`,disabled:!Z,loading:C.isPending,onClick:ie,children:l(`common.save`)})]}),children:(0,z.jsxs)(`div`,{className:`mx-auto grid max-w-[1100px] gap-x-6 xl:grid-cols-[minmax(0,1fr)_minmax(0,1fr)]`,children:[(0,z.jsxs)(`div`,{children:[(0,z.jsxs)(v,{title:l(`models.section.basic`),footer:Q?l(`models.modifiedFooter`):void 0,children:[(0,z.jsx)(U,{label:l(`models.field.displayName`),marker:$(`displayName`),children:(0,z.jsx)(d,{className:`w-60`,"aria-label":l(`models.field.displayName`),value:F.displayName,onChange:e=>Y({displayName:e.target.value})})}),(0,z.jsx)(U,{label:l(`models.field.vendor`),children:(0,z.jsx)(d,{className:`w-60`,"aria-label":l(`models.field.vendor`),value:F.vendor,onChange:e=>Y({vendor:e.target.value})})}),(0,z.jsx)(U,{label:l(`models.field.family`),marker:$(`family`),children:(0,z.jsx)(d,{className:`w-60`,"aria-label":l(`models.field.family`),value:F.family??``,onChange:e=>Y({family:e.target.value||null})})}),(0,z.jsx)(U,{label:l(`models.field.aliases`),marker:$(`aliases`),children:(0,z.jsx)(d,{className:`w-60 font-mono`,"aria-label":l(`models.field.aliases`),value:H,onChange:e=>G(e.target.value),placeholder:`a, b, c`})}),(0,z.jsx)(U,{label:l(`models.field.contextWindow`),marker:$(`contextWindow`),children:(0,z.jsx)(w,{className:`w-36`,label:l(`models.field.contextWindow`),value:F.contextWindow,onChange:e=>Y({contextWindow:e})})}),(0,z.jsx)(U,{label:l(`models.field.maxOutputTokens`),marker:$(`maxOutputTokens`),children:(0,z.jsx)(w,{className:`w-36`,label:l(`models.field.maxOutputTokens`),value:F.maxOutputTokens,onChange:e=>Y({maxOutputTokens:e})})}),(0,z.jsx)(U,{label:l(`common.enabled`),children:(0,z.jsx)(S,{checked:F.enabled??!0,label:l(`common.enabled`),onChange:e=>Y({enabled:e})})})]}),(0,z.jsx)(v,{title:(0,z.jsxs)(`span`,{className:`inline-flex items-center gap-2`,children:[l(`models.section.capabilities`),` `,$(`capabilities`)]}),children:(0,z.jsx)(`div`,{className:`grid grid-cols-2 gap-x-4 gap-y-3 px-4 py-4`,children:B.map(e=>(0,z.jsx)(ee,{label:l(e.label),checked:!!F.capabilities?.[e.key],onCheckedChange:t=>Y({capabilities:{...F.capabilities,[e.key]:t===!0}})},e.key))})}),(0,z.jsx)(W,{model:J}),J.providerOverrides.length>0&&(0,z.jsx)(v,{title:l(`models.section.overrides`),footer:l(`models.overridesFooter`),children:J.providerOverrides.map(e=>(0,z.jsx)(p,{label:(0,z.jsx)(k,{className:`text-[var(--accent)]`,to:`/providers/${e.providerId}`,children:e.providerName}),detail:`${e.modelId} · ${h(e.pricing)}`},e.providerModelId))})]}),(0,z.jsxs)(`div`,{children:[(0,z.jsxs)(`section`,{className:`mb-5`,children:[(0,z.jsx)(T,{action:$(`pricing`),children:l(`models.section.pricing`)}),(0,z.jsx)(`p`,{className:`mb-3 px-1 text-[12px] text-[var(--text-secondary)]`,children:l(`models.pricingHint`)}),(0,z.jsx)(`div`,{className:`card p-4`,children:(0,z.jsx)(I,{value:F.pricing??null,onChange:e=>Y({pricing:e}),allowEmpty:!0})})]}),(0,z.jsxs)(`section`,{className:`mb-5`,children:[(0,z.jsx)(T,{children:l(`models.section.simulator`)}),(0,z.jsxs)(`div`,{className:`card p-4`,children:[(0,z.jsx)(ne,{modelId:Z?void 0:J.id,pricing:Z?X.pricing:null}),Z&&(0,z.jsx)(`p`,{className:`mt-3 text-[12px] text-[var(--text-muted)]`,children:l(`models.simulatorUnsaved`)})]})]})]})]})})}function U({label:e,marker:t,children:n}){return(0,z.jsx)(p,{label:(0,z.jsxs)(`span`,{className:`inline-flex items-center gap-2`,children:[e,t]}),children:n})}function W({model:e}){let{t:n}=i(),r=l(e.id),[a,o]=(0,R.useState)(null);return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(v,{title:(0,z.jsxs)(`span`,{className:`flex items-center justify-between`,children:[n(`models.section.providerPrices`),(0,z.jsx)(t,{size:`sm`,variant:`plain`,icon:(0,z.jsx)(A,{className:`size-3.5`}),onClick:()=>o(`new`),children:n(`common.add`)})]}),footer:n(`models.providerPricesFooter`),children:[e.providerPrices.length===0&&(0,z.jsx)(p,{label:(0,z.jsx)(`span`,{className:`text-[12px] text-[var(--text-muted)]`,children:n(`models.noProviderPrices`)})}),e.providerPrices.map(e=>(0,z.jsxs)(p,{label:(0,z.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,z.jsx)(`span`,{className:`font-mono text-[12.5px]`,children:e.priceKey}),e.userModified&&(0,z.jsx)(c,{tone:`orange`,children:n(`models.modified`)})]}),detail:[h(e.pricing),e.upstreamModelId,e.pricing.time_windows?.length?n(`models.hasTimeWindows`):null,e.pricing.context_tiers?.length?n(`models.hasTiers`):null].filter(Boolean).join(` · `),children:[(0,z.jsx)(t,{size:`sm`,variant:`plain`,icon:(0,z.jsx)(P,{className:`size-3.5`}),"aria-label":n(`common.edit`),onClick:()=>o(e)}),(0,z.jsx)(K,{label:n(`common.delete`),prompt:n(`models.deletePrice`,{key:e.priceKey}),onConfirm:()=>r.mutateAsync(e.priceKey)})]},e.priceKey))]}),(0,z.jsx)(G,{model:e,editing:a,onClose:()=>o(null)})]})}function G({model:r,editing:a,onClose:o}){let{t:s}=i(),{toast:c}=e(),l=u(),p=x(r.id),m=a===`new`,[h,g]=(0,R.useState)(``),[_,v]=(0,R.useState)(``),[y,b]=(0,R.useState)(null);(0,R.useEffect)(()=>{a&&(a===`new`?(g(``),v(``),b(r.pricing?structuredClone(r.pricing):{currency:`USD`,unit:`per_1m_tokens`,base:{input:null,output:null}})):(g(a.priceKey),v(a.upstreamModelId??``),b(structuredClone(a.pricing))))},[a,r.pricing]);let S=new Set(r.providerPrices.map(e=>e.priceKey));return(0,z.jsx)(D,{open:a!==null,onOpenChange:e=>!e&&o(),width:680,title:m?s(`models.addPrice`):s(`models.editPrice`,{key:h}),description:s(`models.priceSheetDetail`),footer:(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(t,{onClick:o,children:s(`common.cancel`)}),(0,z.jsx)(t,{variant:`primary`,disabled:!h||!y,loading:p.isPending,onClick:()=>p.mutate({priceKey:h,upstreamModelId:_||null,pricing:y},{onSuccess:()=>{c(s(`common.saved`),`success`),o()},onError:e=>c(n(e),`error`)}),children:s(`common.save`)})]}),children:(0,z.jsxs)(`div`,{className:`grid gap-4`,children:[(0,z.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,z.jsx)(C,{label:s(`providers.priceKey`),children:m?(0,z.jsx)(f,{value:h,onChange:g,placeholder:s(`models.pickPriceKey`),options:(l.data??[]).map(e=>({value:e.priceKey,label:e.label,detail:e.priceKey,disabled:S.has(e.priceKey)}))}):(0,z.jsx)(d,{value:h,disabled:!0,className:`font-mono`})}),(0,z.jsx)(C,{label:s(`models.upstreamId`),hint:s(`models.upstreamIdHint`),children:(0,z.jsx)(d,{className:`font-mono`,value:_,onChange:e=>v(e.target.value),placeholder:r.id})})]}),m&&(0,z.jsx)(d,{className:`font-mono`,"aria-label":s(`models.customPriceKey`),placeholder:s(`models.customPriceKey`),value:h,onChange:e=>g(e.target.value.trim())}),(0,z.jsx)(I,{value:y,onChange:b})]})})}function K({label:e,prompt:t,onConfirm:n}){let{t:r}=i();return(0,z.jsx)(L,{label:e,icon:(0,z.jsx)(F,{className:`size-4`}),prompt:t,confirmLabel:r(`common.delete`),cancelLabel:r(`common.cancel`),pendingLabel:r(`common.deleting`),doneLabel:r(`common.deleted`),errorLabel:r(`common.error`),retryLabel:r(`common.retry`),onConfirm:n})}export{H as ModelDetailPage};
@@ -0,0 +1 @@
1
+ import{C as e,Hn as t,Hr as n,Q as r,S as i,Ur as a,Ut as o,Vt as s,X as c,Z as l,at as u,b as d,ft as f,h as p,ha as m,lt as h,ma as g,nt as _,pn as v,rt as y,st as b,t as x,u as S,va as C,x as w}from"./format-CkDcAs-_.js";import{b as T,f as E,l as D,p as O,s as k,t as A}from"./Page-iMwsVZGv.js";import{t as j}from"./cloud-download-B-iX6FzV.js";import{b as M}from"./index-C6Mqffdm.js";var N=C(m(),1),P=g();function F(){let{t:e}=o(),n=T(),[a,s]=(0,N.useState)(``),[l,u]=(0,N.useState)(``),[p,m]=(0,N.useState)(!1),[g,v]=(0,N.useState)(!1),y=(0,N.useRef)(null),b=O(a),x=t(),S=t(b,l),C=(0,N.useMemo)(()=>[...new Set((x.data??[]).map(e=>e.vendor))].sort(),[x.data]);return E(e=>{e===`find`&&y.current?.focus()}),(0,P.jsxs)(A,{title:e(`nav.models`),subtitle:S.data?e(`models.count`,{count:S.data.length}):void 0,actions:(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(h,{inputRef:y,className:`w-52`,value:a,onChange:s,placeholder:e(`models.search`)}),(0,P.jsx)(d,{value:l,onChange:u,options:[{value:``,label:e(`models.allVendors`)},...C.map(e=>({value:e,label:e}))]}),(0,P.jsx)(r,{icon:(0,P.jsx)(j,{className:`size-3.5`}),onClick:()=>v(!0),children:e(`models.sync`)}),(0,P.jsx)(r,{variant:`primary`,icon:(0,P.jsx)(k,{className:`size-3.5`}),onClick:()=>m(!0),children:e(`models.new`)})]}),children:[S.isLoading&&(0,P.jsx)(f,{lines:5}),S.isError&&(0,P.jsx)(c,{tone:`danger`,title:e(`common.error`),children:i(S.error)}),S.data?.length===0&&(0,P.jsx)(_,{icon:(0,P.jsx)(D,{className:`size-6`}),title:e(`models.empty`)}),S.data&&S.data.length>0&&(0,P.jsx)(M,{caption:e(`nav.models`),rowKey:`id`,rows:S.data.map(e=>({id:e.id,name:e.displayName,vendor:e.vendor,context:e.contextWindow??0,input:e.pricing?.base.input??0,providerPrices:e.providerPriceKeys.length,m:e})),columns:I(e,e=>n(`/models/${encodeURIComponent(e)}`))}),(0,P.jsx)(L,{open:p,onOpenChange:m,onCreated:e=>n(`/models/${encodeURIComponent(e)}`)}),(0,P.jsx)(R,{open:g,onOpenChange:v})]})}function I(e,t){return[{key:`name`,label:e(`models.col.model`),render:(n,r)=>(0,P.jsxs)(`button`,{type:`button`,className:`block w-full min-w-0 text-left`,onClick:()=>t(r.id),children:[(0,P.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,P.jsx)(`span`,{className:s(`truncate font-medium hover:text-[var(--accent)]`,!r.m.enabled&&`text-[var(--text-muted)]`),children:r.name}),r.m.source===`user`&&(0,P.jsx)(l,{tone:`accent`,children:e(`models.source.user`)}),r.m.userModifiedFields.length>0&&(0,P.jsx)(l,{tone:`orange`,children:e(`models.modified`)})]}),(0,P.jsx)(`span`,{className:`block truncate font-mono text-[11px] text-[var(--text-muted)]`,children:r.id})]})},{key:`vendor`,label:e(`models.col.vendor`),width:120},{key:`context`,label:e(`models.col.context`),numeric:!0,width:96,render:(e,t)=>x(t.m.contextWindow)},{key:`input`,label:e(`models.col.price`),numeric:!0,width:150,render:(e,t)=>{let n=t.m.pricing?.base;return n?`${S(n.input)} / ${S(n.output)}`:`—`}},{key:`providerPrices`,label:e(`models.col.providerPrices`),numeric:!0,width:130,render:(t,n)=>n.providerPrices?e(`models.providerPriceCount`,{count:n.providerPrices}):`—`}]}function L({open:t,onOpenChange:n,onCreated:a}){let{t:s}=o(),{toast:c}=e(),l=v(),[d,f]=(0,N.useState)(``),[p,m]=(0,N.useState)(``),[h,g]=(0,N.useState)(``),[_,x]=(0,N.useState)(null),[S,C]=(0,N.useState)(null),[T,E]=(0,N.useState)(null);return(0,P.jsx)(w,{open:t,onOpenChange:n,title:s(`models.new`),description:s(`models.newDetail`),footer:(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(r,{onClick:()=>n(!1),children:s(`common.cancel`)}),(0,P.jsx)(r,{variant:`primary`,disabled:!d.trim()||!h.trim(),loading:l.isPending,onClick:()=>l.mutate({id:d.trim(),displayName:p.trim()||d.trim(),vendor:h.trim(),contextWindow:_,pricing:S!=null||T!=null?{currency:`USD`,unit:`per_1m_tokens`,base:{input:S,output:T}}:null},{onSuccess:e=>{n(!1),f(``),m(``),a(e.id)},onError:e=>c(i(e),`error`)}),children:s(`common.create`)})]}),children:(0,P.jsxs)(`div`,{className:`grid gap-4`,children:[(0,P.jsx)(y,{label:s(`models.field.id`),hint:s(`models.field.idHint`),children:(0,P.jsx)(u,{className:`font-mono`,value:d,onChange:e=>f(e.target.value),placeholder:`my-model-1`})}),(0,P.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,P.jsx)(y,{label:s(`models.field.displayName`),children:(0,P.jsx)(u,{value:p,onChange:e=>m(e.target.value)})}),(0,P.jsx)(y,{label:s(`models.field.vendor`),children:(0,P.jsx)(u,{value:h,onChange:e=>g(e.target.value),placeholder:`openai`})})]}),(0,P.jsxs)(`div`,{className:`grid grid-cols-3 gap-4`,children:[(0,P.jsx)(y,{label:s(`models.field.contextWindow`),children:(0,P.jsx)(b,{value:_,onChange:x})}),(0,P.jsx)(y,{label:s(`models.field.inputPrice`),children:(0,P.jsx)(b,{value:S,onChange:C})}),(0,P.jsx)(y,{label:s(`models.field.outputPrice`),children:(0,P.jsx)(b,{value:T,onChange:E})})]})]})})}function R({open:t,onOpenChange:s}){let{t:u}=o(),{toast:d}=e(),m=a(),h=n(),[g,_]=(0,N.useState)(new Set),v=()=>m.mutate(void 0,{onSuccess:e=>_(new Set(e.changes.filter(e=>!e.skippedBecauseUserModified).map(e=>e.id)))}),y=m.data?.changes??[],b=e=>e.kind===`new_model`?u(`models.sync.newModel`):e.kind===`price`?u(`models.sync.price`,{key:e.priceKey??``}):u(`models.sync.field`,{field:e.field??``});return(0,P.jsxs)(w,{open:t,onOpenChange:e=>{s(e),e&&!m.data&&v()},width:640,title:u(`models.sync`),description:u(`models.syncDetail`),footer:(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(r,{className:`mr-auto`,variant:`plain`,onClick:v,loading:m.isPending,children:u(`common.refresh`)}),(0,P.jsx)(r,{onClick:()=>s(!1),children:u(`common.cancel`)}),(0,P.jsx)(r,{variant:`primary`,disabled:g.size===0,loading:h.isPending,onClick:()=>h.mutate([...g],{onSuccess:e=>{d(u(`models.sync.applied`,{count:e.applied}),`success`),s(!1),m.reset()},onError:e=>d(i(e),`error`)}),children:u(`models.sync.apply`,{count:g.size})})]}),children:[t&&!m.data&&!m.isPending&&!m.isError&&(0,P.jsx)(`div`,{className:`py-6 text-center`,children:(0,P.jsx)(r,{variant:`primary`,onClick:v,children:u(`models.sync.check`)})}),m.isPending&&(0,P.jsx)(f,{lines:4}),m.isError&&(0,P.jsx)(c,{tone:`danger`,title:u(`common.error`),children:i(m.error)}),m.data&&y.length===0&&(0,P.jsx)(c,{tone:`success`,title:u(`models.sync.none`)}),y.length>0&&(0,P.jsx)(M,{caption:u(`models.sync`),selectable:!0,rowKey:`id`,itemName:{one:u(`models.sync.changeOne`),other:u(`models.sync.changeOther`)},selectedKeys:[...g],onSelectionChange:e=>_(new Set(e)),rows:y.map(e=>({id:e.id,model:e.modelId,kind:b(e),c:e})),columns:[{key:`model`,label:u(`models.col.model`),render:e=>(0,P.jsx)(`span`,{className:`font-mono text-[12px]`,children:String(e)})},{key:`kind`,label:u(`models.sync.change`),render:(e,t)=>(0,P.jsxs)(`span`,{className:`flex flex-col items-start gap-1`,children:[(0,P.jsxs)(`span`,{className:`flex flex-wrap gap-1`,children:[(0,P.jsx)(l,{tone:t.c.kind===`new_model`?`green`:`neutral`,children:t.kind}),t.c.skippedBecauseUserModified&&(0,P.jsx)(l,{tone:`orange`,children:u(`models.sync.userModified`)})]}),t.c.kind!==`new_model`&&(0,P.jsxs)(`span`,{className:`grid w-full grid-cols-2 gap-2 font-mono text-[10.5px]`,children:[(0,P.jsx)(`span`,{className:`truncate text-[var(--danger)]`,title:p(t.c.before),children:JSON.stringify(t.c.before)??`∅`}),(0,P.jsx)(`span`,{className:`truncate text-[var(--success)]`,title:p(t.c.after),children:JSON.stringify(t.c.after)??`∅`})]})]})}]})]})}export{F as ModelsPage};
@@ -0,0 +1 @@
1
+ ._tooltip_1g9y0_1{--tooltip-y:3px;z-index:90;max-width:15rem;padding:var(--space-3) var(--space-4);border:1px solid color-mix(in oklab, var(--background) 14%, var(--foreground));border-radius:var(--radius-control);background:var(--foreground);color:var(--background);box-shadow:var(--shadow-raised);font-size:var(--text-sm);font-weight:400;line-height:var(--leading-body);transform-origin:var(--radix-tooltip-content-transform-origin);transition:opacity var(--duration-fast) var(--ease-enter), transform var(--duration-fast) var(--ease-enter)}._tooltip_1g9y0_1[data-side=bottom]{--tooltip-y:-3px}@starting-style{._tooltip_1g9y0_1[data-state$=-open]{opacity:0;transform:translateY(var(--tooltip-y)) scale(.97)}._tooltip_1g9y0_1[data-instant][data-state$=-open]{transform:none}}._tooltip_1g9y0_1[data-instant][data-state$=-open]{transition:opacity var(--duration-instant) var(--ease-standard), transform var(--duration-instant) var(--ease-standard)}._tooltip_1g9y0_1[data-state=closed]{opacity:0;transition:opacity var(--duration-instant) var(--ease-standard), transform var(--duration-instant) var(--ease-standard);animation:_tooltip-exit_1g9y0_1 var(--duration-instant) linear both;transform:scale(.98)}._text_1g9y0_12{overflow-clip-margin:var(--space-2);display:block;position:relative;overflow:clip}._measure_1g9y0_13{width:max-content;max-width:calc(15rem - 2 * var(--space-4) - 2px);visibility:hidden;pointer-events:none;position:absolute;top:0;left:0}._line_1g9y0_14{width:max-content;max-width:calc(15rem - 2 * var(--space-4) - 2px);display:block}@keyframes _tooltip-exit_1g9y0_1{to{--tooltip-exit:1}}@media (prefers-reduced-motion:reduce){._tooltip_1g9y0_1,._tooltip_1g9y0_1[data-state=closed],._tooltip_1g9y0_1[data-instant][data-state$=-open]{transition:opacity var(--duration-instant) var(--ease-standard);transform:none}}
@@ -0,0 +1,3 @@
1
+ import{At as e,Bt as t,C as n,Ci as r,Ct as i,Ei as a,Ft as o,I as s,It as c,J as l,L as u,Lt as d,Mt as f,Nt as p,On as m,Ot as h,Pr as g,Pt as _,Q as v,R as y,Rt as b,S as x,St as S,Vt as C,Wt as w,X as T,Y as E,_i as ee,gi as D,ha as te,hi as O,hr as ne,ht as re,jt as ie,ma as ae,mi as oe,pa as se,si as ce,tt as le,un as ue,va as de,vi as fe,w as pe,xi as k,yi as me,yt as A,z as he}from"./format-CkDcAs-_.js";var j=de(te(),1),ge=`modulepreload`,_e=function(e){return`/`+e},ve={},ye=function(e){return e.pathname.endsWith(`.css`)},be=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e,i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?new URL(import.meta.resolve(e)):new URL(e,import.meta.url)}r=o(t.map(t=>{t=_e(t,n);let r=s(t);if(r.href in ve)return;ve[r.href]=!0;let i=ye(r);if(e===void 0){e={all:new Set,styles:new Set};let t=document.getElementsByTagName(`link`);for(let n=t.length-1;n>=0;n--){let r=t[n];e.all.add(r.href),r.rel===`stylesheet`&&e.styles.add(r.href)}}if((i?e.styles:e.all).has(r.href))return;let o=document.createElement(`link`);if(o.rel=i?`stylesheet`:ge,i||(o.as=`script`),o.crossOrigin=``,o.href=r.href,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),i)return new Promise((e,t)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>t(Error(`Unable to preload CSS for ${r}`)))})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},xe=/^(?:[a-z][a-z0-9+.-]*:|[\\/]{2})/i,Se=/^[\\/]{2}/;function Ce(e,t){return t+e.replace(/\\/g,`/`)}var we=`popstate`;function Te(e){return typeof e==`object`&&!!e&&`pathname`in e&&`search`in e&&`hash`in e&&`state`in e&&`key`in e}function Ee(e={}){function t(e,t){let n=t.state?.masked,{pathname:r,search:i,hash:a}=n||e.location;return Ae(``,{pathname:r,search:i,hash:a},t.state&&t.state.usr||null,t.state&&t.state.key||`default`,n?{pathname:e.location.pathname,search:e.location.search,hash:e.location.hash}:void 0)}function n(e,t){return typeof t==`string`?t:P(t)}return je(t,n,null,e)}function De(e={}){function t(e,t){let{pathname:n=`/`,search:r=``,hash:i=``}=F(e.location.hash.substring(1));return!n.startsWith(`/`)&&!n.startsWith(`.`)&&(n=`/`+n),Ae(``,{pathname:n,search:r,hash:i},t.state&&t.state.usr||null,t.state&&t.state.key||`default`)}function n(e,t){let n=e.document.querySelector(`base`),r=``;if(n&&n.getAttribute(`href`)){let t=e.location.href,n=t.indexOf(`#`);r=n===-1?t:t.slice(0,n)}return r+`#`+(typeof t==`string`?t:P(t))}function r(e,t){N(e.pathname.charAt(0)===`/`,`relative pathnames are not supported in hash history.push(${JSON.stringify(t)})`)}return je(t,n,r,e)}function M(e,t){if(e===!1||e==null)throw Error(t)}function N(e,t){if(!e){typeof console<`u`&&console.warn(t);try{throw Error(t)}catch{}}}function Oe(){return Math.random().toString(36).substring(2,10)}function ke(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function Ae(e,t,n=null,r,i){return{pathname:typeof e==`string`?e:e.pathname,search:``,hash:``,...typeof t==`string`?F(t):t,state:n,key:t&&t.key||r||Oe(),mask:i}}function P({pathname:e=`/`,search:t=``,hash:n=``}){return t&&t!==`?`&&(e+=t.charAt(0)===`?`?t:`?`+t),n&&n!==`#`&&(e+=n.charAt(0)===`#`?n:`#`+n),e}function F(e){let t={};if(e){let n=e.indexOf(`#`);n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf(`?`);r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function je(e,t,n,r={}){let{window:i=document.defaultView,v5Compat:a=!1}=r,o=i.history,s=`POP`,c=null,l=u();l??(l=0,o.replaceState({...o.state,idx:l},``));function u(){return(o.state||{idx:null}).idx}function d(){s=`POP`;let e=u(),t=e==null?null:e-l;l=e,c&&c({action:s,location:h.location,delta:t})}function f(e,t){s=`PUSH`;let r=Te(e)?e:Ae(h.location,e,t);n&&n(r,e),l=u()+1;let d=ke(r,l),f=h.createHref(r.mask||r);try{o.pushState(d,``,f)}catch(e){if(e instanceof DOMException&&e.name===`DataCloneError`)throw e;i.location.assign(f)}a&&c&&c({action:s,location:h.location,delta:1})}function p(e,t){s=`REPLACE`;let r=Te(e)?e:Ae(h.location,e,t);n&&n(r,e),l=u();let i=ke(r,l),d=h.createHref(r.mask||r);o.replaceState(i,``,d),a&&c&&c({action:s,location:h.location,delta:0})}function m(e){return Me(i,e)}let h={get action(){return s},get location(){return e(i,o)},listen(e){if(c)throw Error(`A history only accepts one active listener`);return i.addEventListener(we,d),c=e,()=>{i.removeEventListener(we,d),c=null}},createHref(e){return t(i,e)},createURL:m,encodeLocation(e){let t=m(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:f,replace:p,go(e){return o.go(e)}};return h}function Me(e,t,n=!1){let r=`http://localhost`;e&&(r=e.location.origin===`null`?e.location.href:e.location.origin),M(r,`No window.location.(origin|href) available to create URL`);let i=typeof t==`string`?t:P(t);return i=i.replace(/ $/,`%20`),!n&&Se.test(i)&&(i=r+i),new URL(i,r)}function Ne(e,t,n=`/`){return Pe(e,t,n,!1)}function Pe(e,t,n,r,i){let a=I((typeof t==`string`?F(t):t).pathname||`/`,n);if(a==null)return null;let o=i??Fe(e),s=null,c=Qe(a);for(let e=0;s==null&&e<o.length;++e)s=Je(o[e],c,r);return s}function Fe(e){let t=Ie(e);return Re(t),t}function Ie(e,t=[],n=[],r=``,i=!1){let a=(e,a,o=i,s)=>{let c={relativePath:s===void 0?e.path||``:s,caseSensitive:e.caseSensitive===!0,childrenIndex:a,route:e};if(c.relativePath.startsWith(`/`)){if(!c.relativePath.startsWith(r)&&o)return;M(c.relativePath.startsWith(r),`Absolute route path "${c.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),c.relativePath=c.relativePath.slice(r.length)}let l=L([r,c.relativePath]),u=n.concat(c);e.children&&e.children.length>0&&(M(e.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${l}".`),Ie(e.children,t,u,l,o)),(e.path!=null||e.index)&&t.push({path:l,score:Ke(l,e.index),routesMeta:u.map((e,t)=>{let[n,r]=Ze(e.relativePath,e.caseSensitive,t===u.length-1);return{...e,matcher:n,compiledParams:r}})})};return e.forEach((e,t)=>{if(e.path===``||!e.path?.includes(`?`))a(e,t);else for(let n of Le(e.path))a(e,t,!0,n)}),t}function Le(e){let t=e.split(`/`);if(t.length===0)return[];let[n,...r]=t,i=n.endsWith(`?`),a=n.replace(/\?$/,``);if(r.length===0)return i?[a,``]:[a];let o=Le(r.join(`/`)),s=[];return s.push(...o.map(e=>e===``?a:[a,e].join(`/`))),i&&s.push(...o),s.map(t=>e.startsWith(`/`)&&t===``?`/`:t)}function Re(e){e.sort((e,t)=>e.score===t.score?qe(e.routesMeta.map(e=>e.childrenIndex),t.routesMeta.map(e=>e.childrenIndex)):t.score-e.score)}var ze=/^:[\w-]+$/,Be=3,Ve=2,He=1,Ue=10,We=-2,Ge=e=>e===`*`;function Ke(e,t){let n=e.split(`/`),r=n.length;return n.some(Ge)&&(r+=We),t&&(r+=Ve),n.filter(e=>!Ge(e)).reduce((e,t)=>e+(ze.test(t)?Be:t===``?He:Ue),r)}function qe(e,t){return e.length===t.length&&e.slice(0,-1).every((e,n)=>e===t[n])?e[e.length-1]-t[t.length-1]:0}function Je(e,t,n=!1){let{routesMeta:r}=e,i={},a=`/`,o=[];for(let e=0;e<r.length;++e){let s=r[e],c=e===r.length-1,l=a===`/`?t:t.slice(a.length)||`/`,u={path:s.relativePath,caseSensitive:s.caseSensitive,end:c},d=s.matcher&&s.compiledParams?Xe(u,l,s.matcher,s.compiledParams):Ye(u,l),f=s.route;if(!d&&c&&n&&!r[r.length-1].route.index&&(d=Ye({path:s.relativePath,caseSensitive:s.caseSensitive,end:!1},l)),!d)return null;Object.assign(i,d.params),o.push({params:i,pathname:L([a,d.pathname]),pathnameBase:ot(L([a,d.pathnameBase])),route:f}),d.pathnameBase!==`/`&&(a=L([a,d.pathnameBase]))}return o}function Ye(e,t){typeof e==`string`&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=Ze(e.path,e.caseSensitive,e.end);return Xe(e,t,n,r)}function Xe(e,t,n,r){let i=t.match(n);if(!i)return null;let a=i[0],o=R(a,1),s=i.slice(1);return{params:r.reduce((e,{paramName:t,isOptional:n},r)=>{if(t===`*`){let e=s[r]||``;o=R(a.slice(0,a.length-e.length),1)}let i=s[r];return e[t]=n&&!i?void 0:(i||``).replace(/%2F/g,`/`),e},{}),pathname:a,pathnameBase:o,pattern:e}}function Ze(e,t=!1,n=!0){N(e===`*`||!e.endsWith(`*`)||e.endsWith(`/*`),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,`/*`)}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,`/*`)}".`);let r=[],i=`^`+e.replace(/\/*\*?$/,``).replace(/^\/*/,`/`).replace(/[\\.*+^${}|()[\]]/g,`\\$&`).replace(/\/:([\w-]+)(\?)?/g,(e,t,n,i,a)=>{if(r.push({paramName:t,isOptional:n!=null}),n){let t=a.charAt(i+e.length);return t&&t!==`/`?`/([^\\/]*)`:`(?:/([^\\/]*))?`}return`/([^\\/]+)`}).replace(/\/([\w-]+)\?(\/|$)/g,`(/$1)?$2`);return e.endsWith(`*`)?(r.push({paramName:`*`}),i+=e===`*`||e===`/*`?`(.*)$`:`(?:\\/(.+)|\\/*)$`):n?i+=`\\/*$`:e!==``&&e!==`/`&&(i+=`(?:(?=\\/|$))`),[new RegExp(i,t?void 0:`i`),r]}function Qe(e){try{return e.split(`/`).map(e=>decodeURIComponent(e).replace(/\//g,`%2F`)).join(`/`)}catch(t){return N(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function I(e,t){if(t===`/`)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith(`/`)?t.length-1:t.length,r=e.charAt(n);return r&&r!==`/`?null:e.slice(n)||`/`}function $e(e,t=`/`){let{pathname:n,search:r=``,hash:i=``}=typeof e==`string`?F(e):e,a;return n?(n=at(n),a=n.startsWith(`/`)||n.startsWith(`\\`)?et(n.substring(1),`/`):et(n,t)):a=t,{pathname:a,search:st(r),hash:ct(i)}}function et(e,t){let n=R(t).split(`/`);return e.split(`/`).forEach(e=>{e===`..`?n.length>1&&n.pop():e!==`.`&&n.push(e)}),n.length>1?n.join(`/`):`/`}function tt(e,t,n,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function nt(e){return e.filter((e,t)=>t===0||e.route.path&&e.route.path.length>0)}function rt(e){let t=nt(e);return t.map((e,n)=>n===t.length-1?e.pathname:e.pathnameBase)}function it(e,t,n,r=!1){let i;typeof e==`string`?i=F(e):(i={...e},M(!i.pathname||!i.pathname.includes(`?`),tt(`?`,`pathname`,`search`,i)),M(!i.pathname||!i.pathname.includes(`#`),tt(`#`,`pathname`,`hash`,i)),M(!i.search||!i.search.includes(`#`),tt(`#`,`search`,`hash`,i)));let a=e===``||i.pathname===``,o=a?`/`:i.pathname,s;if(o==null)s=n;else{let e=t.length-1;if(!r&&o.startsWith(`..`)){let t=o.split(`/`);for(;t[0]===`..`;)t.shift(),--e;i.pathname=t.join(`/`)}s=e>=0?t[e]:`/`}let c=$e(i,s),l=o&&o!==`/`&&o.endsWith(`/`),u=(a||o===`.`)&&n.endsWith(`/`);return!c.pathname.endsWith(`/`)&&(l||u)&&(c.pathname+=`/`),c}var at=e=>e.replace(/[\\/]{2,}/g,`/`),L=e=>at(e.join(`/`));function R(e,t=0){let n=e.length;for(;n>t&&e.charCodeAt(n-1)===47;)n--;return n===e.length?e:e.slice(0,n)}var ot=e=>R(e).replace(/^\/*/,`/`),st=e=>!e||e===`?`?``:e.startsWith(`?`)?e:`?`+e,ct=e=>!e||e===`#`?``:e.startsWith(`#`)?e:`#`+e,lt=class{constructor(e,t,n,r=!1){this.status=e,this.statusText=t||``,this.internal=r,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function ut(e){return e!=null&&typeof e.status==`number`&&typeof e.statusText==`string`&&typeof e.internal==`boolean`&&`data`in e}function dt(e){return L(e.map(e=>e.route.path).filter(Boolean))||`/`}var ft=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function pt(e,t){let n=e;if(typeof n!=`string`||!xe.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let r=n,i=!1;if(ft)try{let e=new URL(window.location.href),r=Se.test(n)?new URL(Ce(n,e.protocol)):new URL(n),a=I(r.pathname,t);r.origin===e.origin&&a!=null?n=a+r.search+r.hash:i=!0}catch{N(!1,`<Link to="${n}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:r,isExternal:i,to:n}}Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);var mt=new URL(`http://localhost`);function ht(e){if(e.createURL)return e.createURL(`/`);try{return new URL(e.createHref(`/`),mt)}catch{return mt}}function gt(e,t){return e.origin===t.origin&&(e.origin!==`null`||e.protocol===t.protocol&&e.host===t.host)}function _t(e,t){if(e.startsWith(`//`))return!0;let n=t.protocol.toLowerCase();return e.toLowerCase().startsWith(n)?t.host===``||e.slice(n.length).startsWith(`//`):!1}function vt(e,t,n,r){let i=null;try{i=e==null?null:new URL(e,n)}catch{}let a=new URL(t,n),o=i!=null&&!gt(i,n),s=!gt(a,n);if(r===`reject`){if(o||s)throw Error(`External navigation is not allowed`)}else if(s&&(i==null||!_t(e,i)||!gt(i,a)))throw Error(`External navigation is not allowed`)}var yt=[`POST`,`PUT`,`PATCH`,`DELETE`];new Set(yt);var bt=[`GET`,...yt];new Set(bt);var xt=[`about:`,`blob:`,`chrome:`,`chrome-untrusted:`,`content:`,`data:`,`devtools:`,`file:`,`filesystem:`,`javascript:`];function St(e){try{return xt.includes(new URL(e).protocol)}catch{return!1}}var z=j.createContext(null);z.displayName=`DataRouter`;var Ct=j.createContext(null);Ct.displayName=`DataRouterState`;var wt=j.createContext(!1);function Tt(){return j.useContext(wt)}var Et=j.createContext({isTransitioning:!1});Et.displayName=`ViewTransition`;var Dt=j.createContext(new Map);Dt.displayName=`Fetchers`;var Ot=j.createContext(null);Ot.displayName=`Await`;var B=j.createContext(null);B.displayName=`Navigation`;var V=j.createContext(null);V.displayName=`Location`;var H=j.createContext({outlet:null,matches:[],isDataRoute:!1});H.displayName=`Route`;var kt=j.createContext(null);kt.displayName=`RouteError`;var At=`REACT_ROUTER_ERROR`,jt=`REDIRECT`,Mt=`ROUTE_ERROR_RESPONSE`;function Nt(e){if(e.startsWith(`${At}:${jt}:{`))try{let t=JSON.parse(e.slice(28));if(typeof t==`object`&&t&&typeof t.status==`number`&&typeof t.statusText==`string`&&typeof t.location==`string`&&typeof t.reloadDocument==`boolean`&&typeof t.replace==`boolean`)return t}catch{}}function Pt(e){if(e.startsWith(`${At}:${Mt}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t==`object`&&t&&typeof t.status==`number`&&typeof t.statusText==`string`)return new lt(t.status,t.statusText,t.data)}catch{}}function Ft(e,{relative:t}={}){M(U(),`useHref() may be used only in the context of a <Router> component.`);let{basename:n,navigator:r}=j.useContext(B),{hash:i,pathname:a,search:o}=K(e,{relative:t}),s=a;return n!==`/`&&(s=a===`/`?n:L([n,a])),r.createHref({pathname:s,search:o,hash:i})}function U(){return j.useContext(V)!=null}function W(){return M(U(),`useLocation() may be used only in the context of a <Router> component.`),j.useContext(V).location}var It=`You should call navigate() in a React.useEffect(), not when your component is first rendered.`;function Lt(e){j.useContext(B).static||j.useLayoutEffect(e)}function G(){let{isDataRoute:e}=j.useContext(H);return e?an():Rt()}function Rt(){M(U(),`useNavigate() may be used only in the context of a <Router> component.`);let e=j.useContext(z),{basename:t,navigator:n}=j.useContext(B),{matches:r}=j.useContext(H),{pathname:i}=W(),a=JSON.stringify(rt(r)),o=j.useRef(!1);return Lt(()=>{o.current=!0}),j.useCallback((r,s={})=>{if(N(o.current,It),!o.current)return;if(typeof r==`number`){n.go(r);return}let c=it(r,JSON.parse(a),i,s.relative===`path`);e==null&&t!==`/`&&(c.pathname=c.pathname===`/`?t:L([t,c.pathname])),vt(typeof r==`string`?r:P(r),n.createHref(c),ht(n),`reject`),(s.replace?n.replace:n.push)(c,s.state,s)},[t,n,a,i,e])}var zt=j.createContext(null);function Bt(e){let t=j.useContext(H).outlet;return j.useMemo(()=>t&&j.createElement(zt.Provider,{value:e},t),[t,e])}function Vt(){let{matches:e}=j.useContext(H);return e[e.length-1]?.params??{}}function K(e,{relative:t}={}){let{matches:n}=j.useContext(H),{pathname:r}=W(),i=JSON.stringify(rt(n));return j.useMemo(()=>it(e,JSON.parse(i),r,t===`path`),[e,i,r,t])}function Ht(e,t){return Ut(e,t)}function Ut(e,t,n){M(U(),`useRoutes() may be used only in the context of a <Router> component.`);let{navigator:r}=j.useContext(B),{matches:i}=j.useContext(H),a=i[i.length-1],o=a?a.params:{},s=a?a.pathname:`/`,c=a?a.pathnameBase:`/`,l=a&&a.route;{let e=l&&l.path||``;sn(s,!l||e.endsWith(`*`)||e.endsWith(`*?`),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${s}" (under <Route path="${e}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
2
+
3
+ Please change the parent <Route path="${e}"> to <Route path="${e===`/`?`*`:`${e}/*`}">.`)}let u=W(),d;if(t){let e=typeof t==`string`?F(t):t;M(c===`/`||e.pathname?.startsWith(c),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${c}" but pathname "${e.pathname}" was given in the \`location\` prop.`),d=e}else d=u;let f=d.pathname||`/`,p=f;if(c!==`/`){let e=c.replace(/^\//,``).split(`/`);p=`/`+f.replace(/^\//,``).split(`/`).slice(e.length).join(`/`)}let m=n&&n.state.matches.length?n.state.matches.map(e=>Object.assign(e,{route:n.manifest[e.route.id]||e.route})):Ne(e,{pathname:p});N(l||m!=null,`No routes matched location "${d.pathname}${d.search}${d.hash}" `),N(m==null||m[m.length-1].route.element!==void 0||m[m.length-1].route.Component!==void 0||m[m.length-1].route.lazy!==void 0,`Matched leaf route at location "${d.pathname}${d.search}${d.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let h=Xt(m&&m.map(e=>Object.assign({},e,{params:Object.assign({},o,e.params),pathname:L([c,r.encodeLocation?r.encodeLocation(e.pathname.replace(/%/g,`%25`).replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathname]),pathnameBase:e.pathnameBase===`/`?c:L([c,r.encodeLocation?r.encodeLocation(e.pathnameBase.replace(/%/g,`%25`).replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathnameBase])})),i,n);return t&&h?j.createElement(V.Provider,{value:{location:{pathname:`/`,search:``,hash:``,state:null,key:`default`,mask:void 0,...d},navigationType:`POP`}},h):h}function Wt(){let e=rn(),t=ut(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r=`rgba(200,200,200, 0.5)`,i={padding:`0.5rem`,backgroundColor:r},a={padding:`2px 4px`,backgroundColor:r},o=null;return console.error(`Error handled by React Router default ErrorBoundary:`,e),o=j.createElement(j.Fragment,null,j.createElement(`p`,null,`💿 Hey developer 👋`),j.createElement(`p`,null,`You can provide a way better UX than this when your app throws errors by providing your own `,j.createElement(`code`,{style:a},`ErrorBoundary`),` or`,` `,j.createElement(`code`,{style:a},`errorElement`),` prop on your route.`)),j.createElement(j.Fragment,null,j.createElement(`h2`,null,`Unexpected Application Error!`),j.createElement(`h3`,{style:{fontStyle:`italic`}},t),n?j.createElement(`pre`,{style:i},n):null,o)}var Gt=j.createElement(Wt,null),Kt=class extends j.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!==`idle`&&e.revalidation===`idle`?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error===void 0?t.error:e.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error(`React Router caught the following error during render`,e)}render(){let e=this.state.error;if(this.context&&typeof e==`object`&&e&&`digest`in e&&typeof e.digest==`string`){let t=Pt(e.digest);t&&(e=t)}let t=e===void 0?this.props.children:j.createElement(H.Provider,{value:this.props.routeContext},j.createElement(kt.Provider,{value:e,children:this.props.component}));return this.context?j.createElement(Jt,{error:e},t):t}};Kt.contextType=wt;var qt=new WeakMap;function Jt({children:e,error:t}){let{basename:n,navigator:r}=j.useContext(B);if(typeof t==`object`&&t&&`digest`in t&&typeof t.digest==`string`){let e=Nt(t.digest);if(e){let i=qt.get(t);if(i)throw i;let a=pt(e.location,n),o=a.absoluteURL||a.to;if(vt(e.location,o,ht(r),`allow-explicit`),St(o))throw Error(`Invalid redirect location`);if(ft&&!qt.get(t)){if(a.isExternal||e.reloadDocument)window.location.href=o;else{let n=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(a.to,{replace:e.replace}));throw qt.set(t,n),n}}return j.createElement(`meta`,{httpEquiv:`refresh`,content:`0;url=${o}`})}}return e}function Yt({routeContext:e,match:t,children:n}){let r=j.useContext(z);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),j.createElement(H.Provider,{value:e},n)}function Xt(e,t=[],n){let r=n?.state;if(e==null){if(!r)return null;if(r.errors)e=r.matches;else if(t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let i=e,a=r?.errors;if(a!=null){let e=i.findIndex(e=>e.route.id&&a?.[e.route.id]!==void 0);M(e>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(a).join(`,`)}`),i=i.slice(0,Math.min(i.length,e+1))}let o=!1,s=-1;if(n&&r){o=r.renderFallback;for(let e=0;e<i.length;e++){let t=i[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(s=e),t.route.id){let{loaderData:e,errors:a}=r,c=t.route.loader&&!e.hasOwnProperty(t.route.id)&&(!a||a[t.route.id]===void 0);if(t.route.lazy||c){n.isStatic&&(o=!0),i=s>=0?i.slice(0,s+1):[i[0]];break}}}}let c=n?.onError,l=r&&c?(e,t)=>{c(e,{location:r.location,params:r.matches?.[0]?.params??{},pattern:dt(r.matches),errorInfo:t})}:void 0;return i.reduceRight((e,n,c)=>{let u,d=!1,f=null,p=null;r&&(u=a&&n.route.id?a[n.route.id]:void 0,f=n.route.errorElement||Gt,o&&(s<0&&c===0?(sn(`route-fallback`,!1,"No `HydrateFallback` element provided to render during initial hydration"),d=!0,p=null):s===c&&(d=!0,p=n.route.hydrateFallbackElement||null)));let m=t.concat(i.slice(0,c+1)),h=()=>{let t;return t=u?f:d?p:n.route.Component?j.createElement(n.route.Component,null):n.route.element?n.route.element:e,j.createElement(Yt,{match:n,routeContext:{outlet:e,matches:m,isDataRoute:r!=null},children:t})};return r&&(n.route.ErrorBoundary||n.route.errorElement||c===0)?j.createElement(Kt,{location:r.location,revalidation:r.revalidation,component:f,error:u,children:h(),routeContext:{outlet:null,matches:m,isDataRoute:!0},onError:l}):h()},null)}function Zt(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Qt(e){let t=j.useContext(z);return M(t,Zt(e)),t}function $t(e){let t=j.useContext(Ct);return M(t,Zt(e)),t}function en(e){let t=j.useContext(H);return M(t,Zt(e)),t}function tn(e){let t=en(e),n=t.matches[t.matches.length-1];return M(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function nn(){return tn(`useRouteId`)}function rn(){let e=j.useContext(kt),t=$t(`useRouteError`),n=tn(`useRouteError`);return e===void 0?t.errors?.[n]:e}function an(){let{router:e}=Qt(`useNavigate`),t=tn(`useNavigate`),n=j.useRef(!1);return Lt(()=>{n.current=!0}),j.useCallback(async(r,i={})=>{N(n.current,It),n.current&&(typeof r==`number`?await e.navigate(r):await e.navigate(r,{fromRouteId:t,...i}))},[e,t])}var on={};function sn(e,t,n){!t&&!on[e]&&(on[e]=!0,N(!1,n))}j.memo(cn);function cn({routes:e,manifest:t,future:n,state:r,isStatic:i,onError:a}){return Ut(e,void 0,{manifest:t,state:r,isStatic:i,onError:a,future:n})}function ln({to:e,replace:t,state:n,relative:r}){M(U(),`<Navigate> may be used only in the context of a <Router> component.`);let{static:i,navigator:a}=j.useContext(B);N(!i,`<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.`);let{matches:o}=j.useContext(H),{pathname:s}=W(),c=G(),l=it(e,rt(o),s,r===`path`);vt(typeof e==`string`?e:P(e),a.createHref(l),ht(a),`reject`);let u=JSON.stringify(l);return j.useEffect(()=>{c(JSON.parse(u),{replace:t,state:n,relative:r})},[c,u,r,t,n]),null}function un(e){return Bt(e.context)}function dn(e){M(!1,`A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.`)}function fn({basename:e=`/`,children:t=null,location:n,navigationType:r=`POP`,navigator:i,static:a=!1,useTransitions:o}){M(!U(),`You cannot render a <Router> inside another <Router>. You should never have more than one in your app.`);let s=e.replace(/^\/*/,`/`),c=j.useMemo(()=>({basename:s,navigator:i,static:a,useTransitions:o,future:{}}),[s,i,a,o]);typeof n==`string`&&(n=F(n));let{pathname:l=`/`,search:u=``,hash:d=``,state:f=null,key:p=`default`,mask:m}=n,h=j.useMemo(()=>{let e=I(l,s);return e==null?null:{location:{pathname:e,search:u,hash:d,state:f,key:p,mask:m},navigationType:r}},[s,l,u,d,f,p,r,m]);return N(h!=null,`<Router basename="${s}"> is not able to match the URL "${l}${u}${d}" because it does not start with the basename, so the <Router> won't render anything.`),h==null?null:j.createElement(B.Provider,{value:c},j.createElement(V.Provider,{children:t,value:h}))}function pn({children:e,location:t}){return Ht(mn(e),t)}j.Component;function mn(e,t=[]){let n=[];return j.Children.forEach(e,(e,r)=>{if(!j.isValidElement(e))return;let i=[...t,r];if(e.type===j.Fragment){n.push.apply(n,mn(e.props.children,i));return}M(e.type===dn,`[${typeof e.type==`string`?e.type:e.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),M(!e.props.index||!e.props.children,`An index route cannot have child routes.`);let a={id:e.props.id||i.join(`-`),caseSensitive:e.props.caseSensitive,element:e.props.element,Component:e.props.Component,index:e.props.index,path:e.props.path,middleware:e.props.middleware,loader:e.props.loader,action:e.props.action,hydrateFallbackElement:e.props.hydrateFallbackElement,HydrateFallback:e.props.HydrateFallback,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,hasErrorBoundary:e.props.hasErrorBoundary===!0||e.props.ErrorBoundary!=null||e.props.errorElement!=null,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle,lazy:e.props.lazy};e.props.children&&(a.children=mn(e.props.children,i)),n.push(a)}),n}var hn=`get`,gn=`application/x-www-form-urlencoded`;function _n(e){return typeof HTMLElement<`u`&&e instanceof HTMLElement}function vn(e){return _n(e)&&e.tagName.toLowerCase()===`button`}function yn(e){return _n(e)&&e.tagName.toLowerCase()===`form`}function bn(e){return _n(e)&&e.tagName.toLowerCase()===`input`}function xn(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Sn(e,t){return e.button===0&&(!t||t===`_self`)&&!xn(e)}function Cn(e=``){return new URLSearchParams(typeof e==`string`||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map(e=>[n,e]):[[n,r]])},[]))}function wn(e,t){let n=Cn(e);return t&&t.forEach((e,r)=>{n.has(r)||t.getAll(r).forEach(e=>{n.append(r,e)})}),n}var Tn=null;function En(){if(Tn===null)try{new FormData(document.createElement(`form`),0),Tn=!1}catch{Tn=!0}return Tn}var Dn=new Set([`application/x-www-form-urlencoded`,`multipart/form-data`,`text/plain`]);function On(e){return e!=null&&!Dn.has(e)?(N(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${gn}"`),null):e}function kn(e,t){let n,r,i,a,o;if(yn(e)){let o=e.getAttribute(`action`);r=o?I(o,t):null,n=e.getAttribute(`method`)||hn,i=On(e.getAttribute(`enctype`))||gn,a=new FormData(e)}else if(vn(e)||bn(e)&&(e.type===`submit`||e.type===`image`)){let o=e.form;if(o==null)throw Error(`Cannot submit a <button> or <input type="submit"> without a <form>`);let s=e.getAttribute(`formaction`)||o.getAttribute(`action`);if(r=s?I(s,t):null,n=e.getAttribute(`formmethod`)||o.getAttribute(`method`)||hn,i=On(e.getAttribute(`formenctype`))||On(o.getAttribute(`enctype`))||gn,a=new FormData(o,e),!En()){let{name:t,type:n,value:r}=e;if(n===`image`){let e=t?`${t}.`:``;a.append(`${e}x`,`0`),a.append(`${e}y`,`0`)}else t&&a.append(t,r)}}else if(_n(e))throw Error(`Cannot submit element that is not <form>, <button>, or <input type="submit|image">`);else n=hn,r=null,i=gn,o=e;return a&&i===`text/plain`&&(o=a,a=void 0),{action:r,method:n.toLowerCase(),encType:i,formData:a,body:o}}Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);function An(e,t){if(e===!1||e==null)throw Error(t)}function jn(e,t,n,r){let i=typeof e==`string`?new URL(e,typeof window>`u`?`server://singlefetch/`:window.location.origin):e;return i.pathname=n?i.pathname.endsWith(`/`)?`${i.pathname}_.${r}`:`${i.pathname}.${r}`:i.pathname===`/`?`_root.${r}`:t&&I(i.pathname,t)===`/`?`${R(t)}/_root.${r}`:`${R(i.pathname)}.${r}`,i}async function Mn(e,t){if(e.id in t)return t[e.id];try{let n=await be(()=>import(e.module),[]);return t[e.id]=n,n}catch(t){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function Nn(e){return e!=null&&typeof e.page==`string`}function Pn(e){return e==null?!1:e.href==null?e.rel===`preload`&&typeof e.imageSrcSet==`string`&&typeof e.imageSizes==`string`:typeof e.rel==`string`&&typeof e.href==`string`}async function Fn(e,t,n){return Bn((await Promise.all(e.map(async e=>{let r=t.routes[e.route.id];if(r){let e=await Mn(r,n);return e.links?e.links():[]}return[]}))).flat(1).filter(Pn).filter(e=>e.rel===`stylesheet`||e.rel===`preload`).map(e=>e.rel===`stylesheet`?{...e,rel:`prefetch`,as:`style`}:{...e,rel:`prefetch`}))}function In(e,t,n,r,i,a){let o=(e,t)=>!n[t]||e.route.id!==n[t].route.id,s=(e,t)=>n[t].pathname!==e.pathname||n[t].route.path?.endsWith(`*`)&&n[t].params[`*`]!==e.params[`*`];return a===`assets`?t.filter((e,t)=>o(e,t)||s(e,t)):a===`data`?t.filter((t,a)=>{let c=r.routes[t.route.id];if(!c||!c.hasLoader)return!1;if(o(t,a)||s(t,a))return!0;if(t.route.shouldRevalidate){let r=t.route.shouldRevalidate({currentUrl:new URL(i.pathname+i.search+i.hash,window.origin),currentParams:n[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if(typeof r==`boolean`)return r}return!0}):[]}function Ln(e,t,{includeHydrateFallback:n}={}){return Rn(e.map(e=>{let r=t.routes[e.route.id];if(!r)return[];let i=[r.module];return r.clientActionModule&&(i=i.concat(r.clientActionModule)),r.clientLoaderModule&&(i=i.concat(r.clientLoaderModule)),n&&r.hydrateFallbackModule&&(i=i.concat(r.hydrateFallbackModule)),r.imports&&(i=i.concat(r.imports)),i}).flat(1))}function Rn(e){return[...new Set(e)]}function zn(e){let t={},n=Object.keys(e).sort();for(let r of n)t[r]=e[r];return t}function Bn(e,t){let n=new Set,r=new Set(t);return e.reduce((e,i)=>{if(t&&!Nn(i)&&i.as===`script`&&i.href&&r.has(i.href))return e;let a=JSON.stringify(zn(i));return n.has(a)||(n.add(a),e.push({key:a,link:i})),e},[])}function Vn(){let e=j.useContext(z);return An(e,`You must render this element inside a <DataRouterContext.Provider> element`),e}function Hn(){let e=j.useContext(Ct);return An(e,`You must render this element inside a <DataRouterStateContext.Provider> element`),e}var Un=j.createContext(void 0);Un.displayName=`FrameworkContext`;function Wn(){let e=j.useContext(Un);return An(e,`You must render this element inside a <HydratedRouter> element`),e}function Gn(e,t){let n=j.useContext(Un),[r,i]=j.useState(!1),[a,o]=j.useState(!1),{onFocus:s,onBlur:c,onMouseEnter:l,onMouseLeave:u,onTouchStart:d}=t,f=j.useRef(null);j.useEffect(()=>{if(e===`render`&&o(!0),e===`viewport`){let e=new IntersectionObserver(e=>{e.forEach(e=>{o(e.isIntersecting)})},{threshold:.5});return f.current&&e.observe(f.current),()=>{e.disconnect()}}},[e]),j.useEffect(()=>{if(r){let e=setTimeout(()=>{o(!0)},100);return()=>{clearTimeout(e)}}},[r]);let p=()=>{i(!0)},m=()=>{i(!1),o(!1)};return n?e===`intent`?[a,f,{onFocus:q(s,p),onBlur:q(c,m),onMouseEnter:q(l,p),onMouseLeave:q(u,m),onTouchStart:q(d,p)}]:[a,f,{}]:[!1,f,{}]}function q(e,t){return n=>{e&&e(n),n.defaultPrevented||t(n)}}function Kn({page:e,...t}){let n=Tt(),{nonce:r}=Wn(),{router:i}=Vn(),a=j.useMemo(()=>Ne(i.routes,e,i.basename),[i.routes,e,i.basename]);return a?(t.nonce==null&&r&&(t={...t,nonce:r}),n?j.createElement(Jn,{page:e,matches:a,...t}):j.createElement(Yn,{page:e,matches:a,...t})):null}function qn(e){let{manifest:t,routeModules:n}=Wn(),[r,i]=j.useState([]);return j.useEffect(()=>{let r=!1;return Fn(e,t,n).then(e=>{r||i(e)}),()=>{r=!0}},[e,t,n]),r}function Jn({page:e,matches:t,...n}){let r=W(),{future:i}=Wn(),{basename:a}=Vn(),o=j.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let n=jn(e,a,i.v8_trailingSlashAwareDataRequests,`rsc`),o=!1,s=[];for(let e of t)typeof e.route.shouldRevalidate==`function`?o=!0:s.push(e.route.id);return o&&s.length>0&&n.searchParams.set(`_routes`,s.join(`,`)),[n.pathname+n.search]},[a,i.v8_trailingSlashAwareDataRequests,e,r,t]);return j.createElement(j.Fragment,null,o.map(e=>j.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})))}function Yn({page:e,matches:t,...n}){let r=W(),{future:i,manifest:a,routeModules:o}=Wn(),{basename:s}=Vn(),{loaderData:c,matches:l}=Hn(),u=j.useMemo(()=>In(e,t,l,a,r,`data`),[e,t,l,a,r]),d=j.useMemo(()=>In(e,t,l,a,r,`assets`),[e,t,l,a,r]),f=j.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let n=new Set,l=!1;if(t.forEach(e=>{let t=a.routes[e.route.id];t&&t.hasLoader&&(!u.some(t=>t.route.id===e.route.id)&&e.route.id in c&&o[e.route.id]?.shouldRevalidate||t.hasClientLoader?l=!0:n.add(e.route.id))}),n.size===0)return[];let d=jn(e,s,i.v8_trailingSlashAwareDataRequests,`data`);return l&&n.size>0&&d.searchParams.set(`_routes`,t.filter(e=>n.has(e.route.id)).map(e=>e.route.id).join(`,`)),[d.pathname+d.search]},[s,i.v8_trailingSlashAwareDataRequests,c,r,a,u,t,e,o]),p=j.useMemo(()=>Ln(d,a),[d,a]),m=qn(d);return j.createElement(j.Fragment,null,f.map(e=>j.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})),p.map(e=>j.createElement(`link`,{key:e,rel:`modulepreload`,href:e,...n})),m.map(({key:e,link:t})=>j.createElement(`link`,{key:e,nonce:n.nonce,...t,crossOrigin:t.crossOrigin??n.crossOrigin})))}function Xn(...e){return t=>{e.forEach(e=>{typeof e==`function`?e(t):e!=null&&(e.current=t)})}}j.Component;var Zn=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;try{Zn&&(window.__reactRouterVersion=`7.18.4`)}catch{}function Qn({basename:e,children:t,useTransitions:n,window:r}){let i=j.useRef();i.current??=Ee({window:r,v5Compat:!0});let a=i.current,[o,s]=j.useState({action:a.action,location:a.location}),c=j.useCallback(e=>{n===!1?s(e):j.startTransition(()=>s(e))},[n]);return j.useLayoutEffect(()=>a.listen(c),[a,c]),j.createElement(fn,{basename:e,children:t,location:o.location,navigationType:o.action,navigator:a,useTransitions:n})}function $n({basename:e,children:t,useTransitions:n,window:r}){let i=j.useRef();i.current??=De({window:r,v5Compat:!0});let a=i.current,[o,s]=j.useState({action:a.action,location:a.location}),c=j.useCallback(e=>{n===!1?s(e):j.startTransition(()=>s(e))},[n]);return j.useLayoutEffect(()=>a.listen(c),[a,c]),j.createElement(fn,{basename:e,children:t,location:o.location,navigationType:o.action,navigator:a,useTransitions:n})}var er=j.forwardRef(function({onClick:e,discover:t=`render`,prefetch:n=`none`,relative:r,reloadDocument:i,replace:a,mask:o,state:s,target:c,to:l,preventScrollReset:u,viewTransition:d,defaultShouldRevalidate:f,...p},m){let{basename:h,navigator:g,useTransitions:_}=j.useContext(B),v=typeof l==`string`&&xe.test(l),y=pt(l,h);l=y.to;let b=Ft(l,{relative:r}),x=W(),S=null;if(o){let e=it(o,[],x.mask?x.mask.pathname:`/`,!0);h!==`/`&&(e.pathname=e.pathname===`/`?h:L([h,e.pathname])),S=g.createHref(e)}let[C,w,T]=Gn(n,p),E=ar(l,{replace:a,mask:o,state:s,target:c,preventScrollReset:u,relative:r,viewTransition:d,defaultShouldRevalidate:f,useTransitions:_});function ee(t){e&&e(t),t.defaultPrevented||E(t)}let D=!(y.isExternal||i),te=j.createElement(`a`,{...p,...T,href:(D?S:void 0)||y.absoluteURL||b,onClick:D?ee:e,ref:Xn(m,w),target:c,"data-discover":!v&&t===`render`?`true`:void 0});return C&&!v?j.createElement(j.Fragment,null,te,j.createElement(Kn,{page:b})):te});er.displayName=`Link`;var tr=j.forwardRef(function({"aria-current":e=`page`,caseSensitive:t=!1,className:n=``,end:r=!1,style:i,to:a,viewTransition:o,children:s,...c},l){let u=K(a,{relative:c.relative}),d=W(),f=j.useContext(Ct),{navigator:p,basename:m}=j.useContext(B),h=f!=null&&dr(u)&&o===!0,g=p.encodeLocation?p.encodeLocation(u).pathname:u.pathname,_=d.pathname,v=f&&f.navigation&&f.navigation.location?f.navigation.location.pathname:null;t||(_=_.toLowerCase(),v=v?v.toLowerCase():null,g=g.toLowerCase()),v&&m&&(v=I(v,m)||v);let y=g!==`/`&&g.endsWith(`/`)?g.length-1:g.length,b=_===g||!r&&_.startsWith(g)&&_.charAt(y)===`/`,x=v!=null&&(v===g||!r&&v.startsWith(g)&&v.charAt(g.length)===`/`),S={isActive:b,isPending:x,isTransitioning:h},C=b?e:void 0,w;w=typeof n==`function`?n(S):[n,b?`active`:null,x?`pending`:null,h?`transitioning`:null].filter(Boolean).join(` `);let T=typeof i==`function`?i(S):i;return j.createElement(er,{...c,"aria-current":C,className:w,ref:l,style:T,to:a,viewTransition:o},typeof s==`function`?s(S):s)});tr.displayName=`NavLink`;var nr=j.forwardRef(({discover:e=`render`,fetcherKey:t,navigate:n,reloadDocument:r,replace:i,state:a,method:o=hn,action:s,onSubmit:c,relative:l,preventScrollReset:u,viewTransition:d,defaultShouldRevalidate:f,...p},m)=>{let{useTransitions:h}=j.useContext(B),g=lr(),_=ur(s,{relative:l}),v=o.toLowerCase()===`get`?`get`:`post`,y=typeof s==`string`&&xe.test(s);return j.createElement(`form`,{ref:m,method:v,action:_,onSubmit:r?c:e=>{if(c&&c(e),e.defaultPrevented)return;e.preventDefault();let r=e.nativeEvent.submitter,s=r?.getAttribute(`formmethod`)||o,p=()=>g(r||e.currentTarget,{fetcherKey:t,method:s,navigate:n,replace:i,state:a,relative:l,preventScrollReset:u,viewTransition:d,defaultShouldRevalidate:f});h&&n!==!1?j.startTransition(()=>p()):p()},...p,"data-discover":!y&&e===`render`?`true`:void 0})});nr.displayName=`Form`;function rr(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function ir(e){let t=j.useContext(z);return M(t,rr(e)),t}function ar(e,{target:t,replace:n,mask:r,state:i,preventScrollReset:a,relative:o,viewTransition:s,defaultShouldRevalidate:c,useTransitions:l}={}){let u=G(),d=W(),f=K(e,{relative:o});return j.useCallback(p=>{if(Sn(p,t)){p.preventDefault();let t=n===void 0?P(d)===P(f):n,m=()=>u(e,{replace:t,mask:r,state:i,preventScrollReset:a,relative:o,viewTransition:s,defaultShouldRevalidate:c});l?j.startTransition(()=>m()):m()}},[d,u,f,n,r,i,t,e,a,o,s,c,l])}function or(e){N(typeof URLSearchParams<`u`,"You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let t=j.useRef(Cn(e)),n=j.useRef(!1),r=W(),i=j.useMemo(()=>wn(r.search,n.current?null:t.current),[r.search]),a=G();return[i,j.useCallback((e,t)=>{let r=Cn(typeof e==`function`?e(new URLSearchParams(i)):e);n.current=!0,a(`?`+r,t)},[a,i])]}var sr=0,cr=()=>`__${String(++sr)}__`;function lr(){let{router:e}=ir(`useSubmit`),{basename:t}=j.useContext(B),n=nn(),r=e.fetch,i=e.navigate;return j.useCallback(async(e,a={})=>{let{action:o,method:s,encType:c,formData:l,body:u}=kn(e,t);if(a.navigate===!1){let e=a.fetcherKey||cr();await r(e,n,a.action||o,{defaultShouldRevalidate:a.defaultShouldRevalidate,preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||s,formEncType:a.encType||c,flushSync:a.flushSync})}else await i(a.action||o,{defaultShouldRevalidate:a.defaultShouldRevalidate,preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||s,formEncType:a.encType||c,replace:a.replace,state:a.state,fromRouteId:n,flushSync:a.flushSync,viewTransition:a.viewTransition})},[r,i,t,n])}function ur(e,{relative:t}={}){let{basename:n}=j.useContext(B),r=j.useContext(H);M(r,`useFormAction must be used inside a RouteContext`);let[i]=r.matches.slice(-1),a={...K(e||`.`,{relative:t})},o=W();if(e==null){a.search=o.search;let e=new URLSearchParams(a.search),t=e.getAll(`index`);if(t.some(e=>e===``)){e.delete(`index`),t.filter(e=>e).forEach(t=>e.append(`index`,t));let n=e.toString();a.search=n?`?${n}`:``}}return(!e||e===`.`)&&i.route.index&&(a.search=a.search?a.search.replace(/^\?/,`?index&`):`?index`),n!==`/`&&(a.pathname=a.pathname===`/`?n:L([n,a.pathname])),P(a)}function dr(e,{relative:t}={}){let n=j.useContext(Et);M(n!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:r}=ir(`useViewTransitionState`),i=K(e,{relative:t});if(!n.isTransitioning)return!1;let a=I(n.currentLocation.pathname,r)||n.currentLocation.pathname,o=I(n.nextLocation.pathname,r)||n.nextLocation.pathname;return Ye(i.pathname,o)!=null||Ye(i.pathname,a)!=null}var J=ae();function fr(e){let[t,n]=(0,j.useState)(()=>globalThis.matchMedia?.(e).matches??!1);return(0,j.useEffect)(()=>{let t=globalThis.matchMedia?.(e);if(!t)return;let r=()=>n(t.matches);return r(),t.addEventListener(`change`,r),()=>t.removeEventListener(`change`,r)},[e]),t}function pr(e,t=250){let[n,r]=(0,j.useState)(e);return(0,j.useEffect)(()=>{let n=setTimeout(()=>r(e),t);return()=>clearTimeout(n)},[e,t]),n}var mr=[`overview`,`requests`,`clients`,`providers`,`models`,`settings`];function hr(e,t,n){let r=/^Digit([1-6])$/.exec(e.code)?.[1];if(t.desktop){if(t.mac||!e.ctrlKey||e.metaKey)return null;if(r&&!e.altKey)return`nav:${mr[Number(r)-1]}`;if(e.altKey&&e.code===`KeyS`)return`toggle-sidebar`;if(e.altKey||e.shiftKey)return null;switch(e.code){case`KeyF`:return`find`;case`KeyR`:return`refresh`;case`KeyN`:return`new-provider`;case`Comma`:return`nav:settings`;default:return null}}return r&&e.altKey&&!e.ctrlKey&&!e.metaKey?`nav:${mr[Number(r)-1]}`:e.key===`/`&&!n&&!e.ctrlKey&&!e.metaKey&&!e.altKey?`find`:null}function gr(e){let t=e;return t?t.isContentEditable||[`INPUT`,`TEXTAREA`,`SELECT`].includes(t.tagName):!1}function _r(e){let t=(0,j.useRef)(e);(0,j.useEffect)(()=>{t.current=e}),(0,j.useEffect)(()=>{let e=e=>{let n=hr(e,{desktop:O,mac:D},gr(e.target));n&&(e.preventDefault(),t.current(n))};window.addEventListener(`keydown`,e);let n=oe()?.onMenuCommand(e=>t.current(e));return()=>{window.removeEventListener(`keydown`,e),n?.()}},[])}var vr=new Set;function yr(e){for(let t of vr)t(e)}function br(e){let t=(0,j.useRef)(e);(0,j.useEffect)(()=>{t.current=e}),(0,j.useEffect)(()=>{let e=e=>t.current(e);return vr.add(e),()=>{vr.delete(e)}},[])}var xr=`/assets/logo-BgbCqQmU.png`;function Sr({className:e}){return(0,J.jsx)(`img`,{src:xr,alt:``,className:e,draggable:!1,"aria-hidden":!0})}var Cr={name:`app-window`,size:24,node:[[`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`,key:`izxlao`}],[`path`,{d:`M10 4v4`,key:`pp8u80`}],[`path`,{d:`M2 8h20`,key:`d11cs7`}],[`path`,{d:`M6 4v4`,key:`1svtjw`}]]};Cr.node;var wr=h(Cr),Tr={name:`boxes`,size:24,node:[[`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`}]]};Tr.node;var Er=h(Tr),Dr={name:`key-round`,size:24,node:[[`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`}]]};Dr.node;var Or=h(Dr),kr={name:`layout-dashboard`,size:24,node:[[`rect`,{width:`7`,height:`9`,x:`3`,y:`3`,rx:`1`,key:`10lvy0`}],[`rect`,{width:`7`,height:`5`,x:`14`,y:`3`,rx:`1`,key:`16une8`}],[`rect`,{width:`7`,height:`9`,x:`14`,y:`12`,rx:`1`,key:`1hutg5`}],[`rect`,{width:`7`,height:`5`,x:`3`,y:`16`,rx:`1`,key:`ldoo1y`}]]};kr.node;var Ar=h(kr),jr={name:`panel-left`,size:24,node:[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}]],aliases:[`sidebar`]};jr.node;var Mr=h(jr),Nr={name:`plus`,size:24,node:[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]};Nr.node;var Pr=h(Nr),Fr={name:`scroll-text`,size:24,node:[[`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`}]]};Fr.node;var Ir=h(Fr),Lr={name:`server`,size:24,node:[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`,key:`ngkwjq`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`,key:`iecqi9`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`,key:`16zg32`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`,key:`nzw8ys`}]]};Lr.node;var Rr=h(Lr),zr={name:`shield-check`,size:24,node:[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]};zr.node;var Br=h(zr);function Vr(e){let t=/^(\d+)(\.|$)/.exec(e??``);return t?Number(t[1]):null}var Hr=(e,t)=>t.map(t=>e.find(e=>e.kind===t)?.name??t).join(`, `);function Ur(){let e=w(),{toast:r}=n(),i=m(),a=ce(),o=ue(),s=ne(),[c,l]=(0,j.useState)(!1),u=i.isError&&i.failureCount>=1,d=oe()?.apiVersionMismatch||a.data&&Vr(a.data.apiVersion)!==null&&Vr(a.data.apiVersion)!==Vr(`1.0`),f=o.data??[],p=u?[]:f.filter(e=>e.configOutdated).map(e=>e.kind);return(0,J.jsxs)(`div`,{className:`chrome shrink-0 px-2 pt-2 empty:hidden`,children:[(0,J.jsx)(T,{open:!!(u||d),tone:u?`danger`:`warning`,title:e(u?O?`banner.downDesktop`:`banner.downWeb`:`banner.mismatch`),children:u&&O?(0,J.jsx)(v,{size:`sm`,variant:`primary`,className:`mt-2`,loading:c,onClick:async()=>{l(!0),await t.startService(),l(!1),i.refetch()},children:e(`shell.startService`)}):void 0}),(0,J.jsx)(T,{open:p.length>0,tone:`warning`,title:e(`banner.clientsOutdated`,{names:Hr(f,p)}),children:(0,J.jsx)(v,{size:`sm`,variant:`primary`,className:`mt-2`,loading:s.isPending,onClick:()=>s.mutate(void 0,{onSuccess:t=>r(e(`banner.clientsUpdated`,{names:Hr(f,t.updated)}),`success`),onError:e=>r(x(e),`error`)}),children:e(`banner.clientsUpdate`)})})]})}var Y=`size-4`,Wr=[{items:[{id:`overview`,path:`/`,label:`nav.overview`,color:`#0a84ff`,icon:(0,J.jsx)(Ar,{className:Y,strokeWidth:1.75})},{id:`requests`,path:`/requests`,label:`nav.requests`,color:`#8e8e93`,icon:(0,J.jsx)(Ir,{className:Y,strokeWidth:1.75})}]},{title:`nav.group.config`,items:[{id:`tokens`,path:`/tokens`,label:`nav.tokens`,color:`#ff375f`,icon:(0,J.jsx)(Or,{className:Y,strokeWidth:1.75})},{id:`clients`,path:`/clients`,label:`nav.clients`,color:`#5e5ce6`,icon:(0,J.jsx)(wr,{className:Y,strokeWidth:1.75})},{id:`providers`,path:`/providers`,label:`nav.providers`,color:`#30b0c7`,icon:(0,J.jsx)(Rr,{className:Y,strokeWidth:1.75})},{id:`models`,path:`/models`,label:`nav.models`,color:`#ff9f0a`,icon:(0,J.jsx)(Er,{className:Y,strokeWidth:1.75})},{id:`plugins`,path:`/plugins`,label:`nav.plugins`,color:`#bf5af2`,icon:(0,J.jsx)(i,{className:Y,strokeWidth:1.75})},{id:`privacy`,path:`/privacy`,label:`nav.privacy`,color:`#30d158`,icon:(0,J.jsx)(Br,{className:Y,strokeWidth:1.75})}]},{title:`nav.group.system`,items:[{id:`settings`,path:`/settings`,label:`nav.settings`,color:`#8e8e93`,icon:(0,J.jsx)(S,{className:Y,strokeWidth:1.75})}]}],Gr=Object.fromEntries(Wr.flatMap(e=>e.items).map(e=>[e.id,e.path])),Kr=me(),qr=(Kr-16-22)/2,Jr={type:`spring`,stiffness:380,damping:38,mass:.9},Yr=`astra.sidebar`,Xr=(0,j.createContext)(null);function Zr(){let e=(0,j.useContext)(Xr);if(!e)throw Error(`useShellLayout outside AppShell`);return e}function Qr(){try{let e=localStorage.getItem(Yr);return e===`collapsed`||e!==`expanded`&&null}catch{return null}}function $r(){return(0,J.jsx)(`svg`,{width:`0`,height:`0`,"aria-hidden":!0,className:`absolute`,children:(0,J.jsxs)(`filter`,{id:`astra-refract`,x:`0`,y:`0`,width:`100%`,height:`100%`,colorInterpolationFilters:`sRGB`,children:[(0,J.jsx)(`feTurbulence`,{type:`fractalNoise`,baseFrequency:`0.006 0.009`,numOctaves:`2`,seed:`11`,result:`noise`}),(0,J.jsx)(`feGaussianBlur`,{in:`noise`,stdDeviation:`2.5`,result:`soft`}),(0,J.jsx)(`feDisplacementMap`,{in:`SourceGraphic`,in2:`soft`,scale:`14`,xChannelSelector:`R`,yChannelSelector:`G`})]})})}function ei(){let e=G(),t=W(),n=se(),r=fr(`(max-width: 767px)`),i=fr(`(max-width: 1099px)`),[o,s]=(0,j.useState)(Qr),[c,l]=(0,j.useState)(!1),u=o??(!O&&i),d=!O&&r?`drawer`:u?`rail`:`expanded`,f=d===`expanded`?224:d===`rail`?Kr:0;(0,j.useEffect)(()=>l(!1),[t.pathname]);let p=(0,j.useCallback)(()=>{if(d===`drawer`){l(e=>!e);return}let e=!u;s(e);try{localStorage.setItem(Yr,e?`collapsed`:`expanded`)}catch{}},[d,u]);_r((0,j.useCallback)(r=>{if(r.startsWith(`nav:`)){e(Gr[r.slice(4)]);return}switch(r){case`toggle-sidebar`:p();return;case`settings:tray`:e(`/settings/tray`);return;case`refresh`:n.invalidateQueries();return;case`new-provider`:t.pathname.startsWith(`/providers`)?yr(r):e(`/providers?new=1`);return;default:yr(r)}},[e,n,p,t.pathname]));let m=(0,j.useMemo)(()=>({sidebarMode:d,sidebarWidth:f,drawerOpen:c,setDrawerOpen:l,toggleSidebar:p,narrow:!O&&r}),[d,f,c,p,r]);return(0,J.jsx)(Xr.Provider,{value:m,children:(0,J.jsxs)(`div`,{className:`wallpaper relative h-full overflow-hidden`,children:[(0,J.jsx)($r,{}),d!==`drawer`&&(0,J.jsx)(ni,{rail:d===`rail`}),(0,J.jsx)(a,{children:d===`drawer`&&c&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(k.div,{className:`fixed inset-0 z-30 bg-black/20`,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},onClick:()=>l(!1)}),(0,J.jsx)(k.div,{className:`fixed inset-y-0 left-0 z-40`,style:{width:232},initial:{x:-232},animate:{x:0},exit:{x:-232},transition:Jr,children:(0,J.jsx)(ni,{rail:!1})})]})}),(0,J.jsxs)(k.main,{className:`absolute inset-y-0 right-0 flex flex-col`,initial:!1,animate:{left:f?f+8:0},transition:Jr,children:[(0,J.jsx)(Ur,{}),(0,J.jsx)(`div`,{className:`relative min-h-0 flex-1`,children:(0,J.jsx)(j.Suspense,{fallback:null,children:(0,J.jsx)(un,{})})})]})]})})}function ti({hidden:e,children:t,className:n}){return(0,J.jsx)(k.span,{initial:!1,animate:{opacity:+!e,x:e?-6:0},transition:{duration:e?.12:.22,delay:e?0:.08},className:C(`relative truncate whitespace-nowrap`,n),"aria-hidden":e||void 0,children:t})}function ni({rail:e}){let t=w(),n=O&&D;return(0,J.jsxs)(k.nav,{"aria-label":`Astra`,className:`glass chrome absolute z-20 flex flex-col overflow-hidden rounded-[18px]`,style:{top:8,left:8,bottom:8},initial:!1,animate:{width:e?Kr:224},transition:Jr,children:[(0,J.jsx)(`div`,{className:`drag flex h-[52px] shrink-0 items-center gap-2`,style:{paddingLeft:(Kr-24)/2},children:!n&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(Sr,{className:`size-6 shrink-0 rounded-[6px]`}),(0,J.jsx)(ti,{hidden:e,className:`text-[14px] font-medium`,children:`Astra`})]})}),(0,J.jsx)(`div`,{className:`scroll min-h-0 flex-1 overflow-x-hidden px-2 pb-2`,children:Wr.map((n,r)=>(0,J.jsxs)(`div`,{children:[n.title&&(0,J.jsxs)(`div`,{className:`relative mt-2 h-6`,children:[(0,J.jsx)(ti,{hidden:e,className:`absolute bottom-1 left-3 text-[11px] font-medium text-[var(--text-muted)]`,children:t(n.title)}),(0,J.jsx)(k.div,{initial:!1,animate:{opacity:+!!e,scaleX:e?1:.4},className:`absolute top-1/2 h-px bg-[var(--border)]`,style:{left:qr,width:22}})]}),n.items.map(n=>(0,J.jsx)(tr,{to:n.path,end:n.path===`/`,title:e?t(n.label):void 0,"aria-label":t(n.label),className:({isActive:e})=>C(`relative my-px flex h-8 items-center gap-2.5 rounded-full text-[13px] transition-colors`,!e&&`hover:bg-[var(--surface-muted)]`),style:{paddingLeft:qr,paddingRight:10},children:({isActive:r})=>(0,J.jsxs)(J.Fragment,{children:[r&&(0,J.jsx)(k.span,{layoutId:`sidebar-selection`,transition:{type:`spring`,stiffness:420,damping:34},className:`absolute inset-0 rounded-full bg-[color-mix(in_oklab,var(--accent)_18%,transparent)]`}),(0,J.jsx)(re,{size:22,className:C(`relative`,r&&`text-[var(--accent)]`),children:n.icon}),(0,J.jsx)(ti,{hidden:e,children:t(n.label)})]})},n.id))]},r))}),(0,J.jsx)(ri,{rail:e})]})}function ri({rail:e}){let r=w(),i=m(),o=g(),{toast:s}=n(),[c,l]=(0,j.useState)(!1),u=i.isSuccess&&!i.isError,d=o.data?.gatewayBaseUrl?.replace(/^https?:\/\//,``),f=u?r(`shell.running`):i.isLoading?r(`shell.connecting`):r(`shell.disconnected`),p=async()=>{l(!0);let e=await t.startService();l(!1),e&&!e.ok&&s(e.error||r(`shell.startFailed`),`error`),i.refetch()};return(0,J.jsx)(`div`,{className:`relative m-2 min-h-10 shrink-0`,children:(0,J.jsx)(a,{initial:!1,mode:`popLayout`,children:e?(0,J.jsx)(k.div,{initial:{opacity:0,scale:.6},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.6},className:`flex h-10 items-center`,style:{paddingLeft:qr+7},title:f,children:(0,J.jsx)(le,{tone:u?`green`:`red`})},`dot`):(0,J.jsxs)(k.div,{initial:{opacity:0},animate:{opacity:1,transition:{delay:.1}},exit:{opacity:0,transition:{duration:.1}},className:`rounded-xl bg-[color-mix(in_oklab,var(--glass-tint)_45%,transparent)] px-3 py-2 text-[11px] whitespace-nowrap text-[var(--text-secondary)]`,style:{width:208},children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,J.jsx)(le,{tone:u?`green`:i.isLoading?`neutral`:`red`}),(0,J.jsx)(`span`,{className:`truncate`,children:f})]}),u&&d&&(0,J.jsx)(`div`,{className:`mt-0.5 truncate font-mono text-[10.5px] text-[var(--text-muted)] selectable`,children:d}),!u&&!i.isLoading&&O&&(0,J.jsx)(v,{size:`sm`,variant:`primary`,className:`mt-1.5 w-full`,loading:c,onClick:()=>void p(),children:r(`shell.startService`)})]},`card`)})})}var ii=O&&fe===`win32`?140:0,ai=Object.defineProperty,X=(e,t)=>ai(e,`name`,{value:t,configurable:!0}),[oi,si]=b(`Tooltip`,[he]),ci=he(),li=`TooltipProvider`,ui=700,di=`tooltip.open`,[fi,pi]=oi(li),mi=X(e=>{let{__scopeTooltip:t,delayDuration:n=ui,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:a}=e,o=j.useRef(!0),s=j.useRef(!1),c=j.useRef(0);return j.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,J.jsx)(fi,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:j.useCallback(()=>{r<=0||(window.clearTimeout(c.current),o.current=!1)},[r]),onClose:j.useCallback(()=>{r<=0||(window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,r))},[r]),isPointerInTransitRef:s,onPointerInTransitChange:j.useCallback(e=>{s.current=e},[]),disableHoverableContent:i,children:a})},`TooltipProvider`),hi=`Tooltip`,[gi,Z]=oi(hi),_i=X(t=>{let{__scopeTooltip:n,children:r,open:i,defaultOpen:a,onOpenChange:o,disableHoverableContent:c,delayDuration:l}=t,u=pi(hi,t.__scopeTooltip),d=ci(n),[f,m]=j.useState(null),[h,g]=j.useState(void 0),_=e(),v=j.useRef(0),y=c??u.disableHoverableContent,b=l??u.delayDuration,x=j.useRef(!1),[S,C]=p({prop:i,defaultProp:a??!1,onChange:X(e=>{e?(u.onOpen(),document.dispatchEvent(new CustomEvent(di))):u.onClose(),o?.(e)},`onChange`),caller:hi}),w=j.useMemo(()=>S?x.current?`delayed-open`:`instant-open`:`closed`,[S]),T=j.useCallback(()=>{window.clearTimeout(v.current),v.current=0,x.current=!1,C(!0)},[C]),E=j.useCallback(()=>{window.clearTimeout(v.current),v.current=0,C(!1)},[C]),ee=j.useCallback(()=>{window.clearTimeout(v.current),v.current=window.setTimeout(()=>{x.current=!0,C(!0),v.current=0},b)},[b,C]);j.useEffect(()=>()=>{v.current&&=(window.clearTimeout(v.current),0)},[]);let D=h??_;return(0,J.jsx)(s,{...d,children:(0,J.jsx)(gi,{scope:n,contentId:D,setContentId:g,open:S,stateAttribute:w,trigger:f,onTriggerChange:m,onTriggerEnter:j.useCallback(()=>{u.isOpenDelayedRef.current?ee():T()},[u.isOpenDelayedRef,ee,T]),onTriggerLeave:j.useCallback(()=>{y?E():(window.clearTimeout(v.current),v.current=0)},[E,y]),onOpen:T,onClose:E,disableHoverableContent:y,children:r})})},`Tooltip`),vi=`TooltipTrigger`,yi=j.forwardRef(X(function(e,t){let{__scopeTooltip:n,"aria-describedby":r,...i}=e,a=Z(vi,n),s=pi(vi,n),c=ci(n),l=j.useRef(null),p=d(t,l,a.onTriggerChange),m=j.useRef(!1),h=j.useRef(!1),g=j.useCallback(()=>m.current=!1,[]);return j.useEffect(()=>()=>document.removeEventListener(`pointerup`,g),[g]),(0,J.jsx)(u,{asChild:!0,...c,children:(0,J.jsx)(f.button,{"aria-describedby":a.open?Pi(r,a.contentId):r,"data-state":a.stateAttribute,...i,ref:p,onPointerMove:o(e.onPointerMove,e=>{e.pointerType!==`touch`&&!h.current&&!s.isPointerInTransitRef.current&&(a.onTriggerEnter(),h.current=!0)}),onPointerLeave:o(e.onPointerLeave,()=>{a.onTriggerLeave(),h.current=!1}),onPointerDown:o(e.onPointerDown,()=>{a.open&&a.onClose(),m.current=!0,document.addEventListener(`pointerup`,g,{once:!0})}),onFocus:o(e.onFocus,()=>{m.current||a.onOpen()}),onBlur:o(e.onBlur,a.onClose),onClick:o(e.onClick,a.onClose)})})},`TooltipTrigger`)),bi=`TooltipPortal`,[xi,Si]=oi(bi,{forceMount:void 0}),Ci=X(e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=Z(bi,t);return(0,J.jsx)(xi,{scope:t,forceMount:n,children:(0,J.jsx)(ie,{present:n||a.open,children:(0,J.jsx)(l,{asChild:!0,container:i,children:r})})})},`TooltipPortal`),Q=`TooltipContent`,wi=j.forwardRef(X(function(e,t){let n=Si(Q,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=Z(Q,e.__scopeTooltip);return(0,J.jsx)(ie,{present:r||o.open,children:o.disableHoverableContent?(0,J.jsx)(Di,{side:i,...a,ref:t}):(0,J.jsx)(Ti,{side:i,...a,ref:t})})},`TooltipContent`)),Ti=j.forwardRef(X(function(e,t){let n=Z(Q,e.__scopeTooltip),r=pi(Q,e.__scopeTooltip),i=j.useRef(null),a=d(t,i),[o,s]=j.useState(null),{trigger:c,onClose:l}=n,u=i.current,{onPointerInTransitChange:f}=r,p=j.useCallback(()=>{s(null),f(!1)},[f]),m=j.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=ki(r,Oi(r,n.getBoundingClientRect())),a=Ai(t.getBoundingClientRect()),o=Mi([...i,...a]);s(o),f(!0)},[f]);return j.useEffect(()=>()=>p(),[p]),j.useEffect(()=>{if(c&&u){let e=X(e=>m(e,u),`handleTriggerLeave`),t=X(e=>m(e,c),`handleContentLeave`);return c.addEventListener(`pointerleave`,e),u.addEventListener(`pointerleave`,t),()=>{c.removeEventListener(`pointerleave`,e),u.removeEventListener(`pointerleave`,t)}}},[c,u,m,p]),j.useEffect(()=>{if(o){let e=X(e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=c?.contains(t)||u?.contains(t),i=!ji(n,o);r?p():i&&(p(),l())},`handleTrackPointerGrace`);return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[c,u,o,l,p]),(0,J.jsx)(Di,{...e,ref:a})},`TooltipContentHoverable`)),Ei=c(`TooltipContent`),Di=j.forwardRef(X(function(e,t){let{__scopeTooltip:n,children:r,"aria-label":i,id:a,onEscapeKeyDown:o,onPointerDownOutside:s,...c}=e,l=Z(Q,n),u=ci(n),{onClose:d}=l;j.useEffect(()=>(document.addEventListener(di,d),()=>document.removeEventListener(di,d)),[d]),j.useEffect(()=>{if(l.trigger){let e=X(e=>{e.target instanceof Node&&e.target.contains(l.trigger)&&d()},`handleScroll`);return window.addEventListener(`scroll`,e,{capture:!0}),()=>window.removeEventListener(`scroll`,e,{capture:!0})}},[l.trigger,d]);let{setContentId:f}=l;return _(()=>(f(a),()=>{f(void 0)}),[a,f]),(0,J.jsx)(E,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:o,onPointerDownOutside:s,onFocusOutside:e=>e.preventDefault(),onDismiss:d,children:(0,J.jsxs)(y,{"data-state":l.stateAttribute,role:i?void 0:`tooltip`,id:i?void 0:l.contentId,...u,...c,ref:t,style:{...c.style,"--radix-tooltip-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-tooltip-content-available-width":`var(--radix-popper-available-width)`,"--radix-tooltip-content-available-height":`var(--radix-popper-available-height)`,"--radix-tooltip-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-tooltip-trigger-height":`var(--radix-popper-anchor-height)`},children:[(0,J.jsx)(Ei,{children:r}),i?(0,J.jsx)(pe,{id:l.contentId,role:`tooltip`,children:i}):null]})})},`TooltipContentImpl`));function Oi(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}X(Oi,`getExitSideFromRect`);function ki(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n})}return r}X(ki,`getPaddedExitPoints`);function Ai(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}X(Ai,`getPointsFromRect`);function ji(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}X(ji,`isPointInPolygon`);function Mi(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),Ni(t)}X(Mi,`getHull`);function Ni(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t[t.length-1],n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n[n.length-1],t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}X(Ni,`getHullPresorted`);function Pi(...e){let t=new Set;for(let n of e)if(typeof n==`string`)for(let e of String(n).trim().split(/\s+/))e&&t.add(e);return t.size>0?Array.from(t).join(` `):void 0}X(Pi,`concatAriaDescribedby`);var Fi={tooltip:`_tooltip_1g9y0_1`,"tooltip-exit":`_tooltip-exit_1g9y0_1`,text:`_text_1g9y0_12`,measure:`_measure_1g9y0_13`,line:`_line_1g9y0_14`},Ii=250,Li=300,Ri=!1,zi=0,Bi=0,Vi=new Set,$={subscribe(e){return Vi.add(e),()=>{Vi.delete(e)}},get:()=>Ri,set(e){Ri!==e&&(Ri=e,Vi.forEach(e=>e()))},opened(){zi+=1,window.clearTimeout(Bi),$.set(!0)},closed(){zi=Math.max(0,zi-1),!zi&&(window.clearTimeout(Bi),Bi=window.setTimeout(()=>$.set(!1),Li))}};function Hi({text:e}){let t=r(),n=(0,j.useRef)(null),i=(0,j.useRef)(null),[o,s]=(0,j.useState)(null);return(0,j.useLayoutEffect)(()=>{let e=n.current;if(!e)return;let t=new ResizeObserver(([t])=>{let n=t.borderBoxSize?.[0],r=e.textContent,a=i.current!==null&&i.current!==r;i.current=r,s({width:Math.ceil(n?.inlineSize??e.offsetWidth),height:Math.ceil(n?.blockSize??e.offsetHeight),animate:a})});return t.observe(e),()=>t.disconnect()},[]),(0,J.jsxs)(k.span,{className:Fi.text,initial:!1,animate:o?{width:o.width,height:o.height}:void 0,transition:o?.animate&&!t?A.spring.morph:{duration:0},children:[(0,J.jsx)(`span`,{ref:n,className:Fi.measure,"aria-hidden":`true`,children:e}),(0,J.jsx)(a,{mode:`popLayout`,initial:!1,children:(0,J.jsx)(k.span,{className:Fi.line,initial:!t&&{opacity:0,y:`0.3em`,filter:`blur(${A.blur.soft}px)`},animate:{opacity:1,y:0,filter:`blur(0px)`},exit:t?{opacity:0,transition:{duration:0}}:{opacity:0,y:`-0.3em`,filter:`blur(${A.blur.subtle}px)`,transition:{duration:A.duration.instant,ease:[...A.ease.standard]}},transition:{duration:A.duration.standard,ease:[...A.ease.enter]},children:e},e)})]})}function Ui({content:e,children:t,side:n=`top`}){let r=(0,j.useSyncExternalStore)($.subscribe,$.get,()=>!1),[i,a]=(0,j.useState)(!1),[o,s]=(0,j.useState)(!1);return(0,j.useEffect)(()=>{if(i)return $.opened(),$.closed},[i]),(0,J.jsx)(mi,{delayDuration:Ii,skipDelayDuration:0,children:(0,J.jsxs)(_i,{open:i,delayDuration:r?0:Ii,onOpenChange:e=>{e&&s($.get()),a(e)},children:[(0,J.jsx)(yi,{asChild:!0,children:t}),(0,J.jsx)(Ci,{children:(0,J.jsx)(wi,{className:Fi.tooltip,"data-instant":o||void 0,side:n,sideOffset:8,collisionPadding:12,children:typeof e==`string`||typeof e==`number`?(0,J.jsx)(Hi,{text:String(e)}):e})})]})})}function Wi({title:e,subtitle:t,actions:n,leading:r,children:i,contentClassName:a}){let o=w(),s=Zr(),c=s.sidebarMode===`expanded`?o(`shell.collapseSidebar`):o(`shell.expandSidebar`);return(0,J.jsxs)(`div`,{className:`absolute inset-0 flex flex-col`,children:[(0,J.jsxs)(`header`,{className:`drag chrome flex h-[52px] shrink-0 items-center gap-2 pr-4 pl-2`,style:{paddingRight:ii||void 0},children:[(0,J.jsx)(Ui,{side:`bottom`,content:`${c}${O?` (${ee}${D?`⌥`:`Alt+`}S)`:``}`,children:(0,J.jsx)(v,{variant:`plain`,icon:(0,J.jsx)(Mr,{className:`size-4`}),"aria-label":c,"aria-expanded":s.sidebarMode===`drawer`?s.drawerOpen:s.sidebarMode===`expanded`,onClick:s.toggleSidebar})}),r,(0,J.jsxs)(`div`,{className:`min-w-0`,children:[(0,J.jsx)(`h1`,{className:`truncate text-[15px] leading-tight font-medium`,children:e}),t&&(0,J.jsx)(`div`,{className:`truncate text-[11px] text-[var(--text-secondary)]`,children:t})]}),(0,J.jsx)(`div`,{className:`ml-auto flex items-center gap-2`,children:n})]}),(0,J.jsx)(`div`,{className:C(`scroll scroll-edge min-h-0 flex-1 px-2 pt-5 pb-10`,s.sidebarMode===`drawer`&&`px-3`,a),style:{paddingRight:16},children:i})]})}export{be as C,or as S,ln as _,Rr as a,G as b,Or as c,Sr as d,br as f,er as g,$n as h,Br as i,Er as l,Qn as m,Ui as n,Ir as o,pr as p,ei as r,Pr as s,Wi as t,wr as u,dn as v,Vt as x,pn as y};
@@ -0,0 +1,2 @@
1
+ import{$ as e,Bn as t,C as n,Ct as r,Dt as i,Fn as a,Jn as o,Mn as s,Ot as c,Q as l,Qt as u,S as d,Un as f,Ut as p,Vt as m,X as h,Yn as g,Z as _,Zn as v,Zr as y,at as b,dt as x,ft as S,ha as C,lt as w,ma as T,mt as E,n as D,nt as O,ot as k,pt as A,qn as j,rr as M,rt as N,tr as P,va as ee,vr as F,x as I,y as te,yr as ne}from"./format-CkDcAs-_.js";import{b as L,i as re,s as ie,t as ae,u as oe,x as se}from"./Page-iMwsVZGv.js";import{t as ce}from"./arrow-down-Bgpt1Ug2.js";import{t as R}from"./arrow-up-DqX0vZ8v.js";import{t as z}from"./download-Bbci4NYa.js";import{t as B}from"./ellipsis-O3neUtss.js";import{t as V}from"./external-link-BotneeB5.js";import{E as H,T as U,_ as W,g as le,m as ue,v as de,y as G}from"./index-C6Mqffdm.js";var K={name:`settings-2`,size:24,node:[[`path`,{d:`M14 17H5`,key:`gfn3mx`}],[`path`,{d:`M19 7h-9`,key:`6i9tg`}],[`circle`,{cx:`17`,cy:`17`,r:`3`,key:`18b49y`}],[`circle`,{cx:`7`,cy:`7`,r:`3`,key:`dfmy0x`}]]};K.node;var fe=c(K),q=ee(C(),1),J=T(),Y={provider:`plugins.kind.provider`,middleware:`plugins.kind.middleware`,agent:`plugins.kind.agent`,pi:`plugins.kind.pi`},pe={provider:`neutral`,middleware:`accent`,agent:`green`,pi:`orange`},me={xai:`grok`,zcode:`glm`,"kiro-color":`kiro`,"workbuddy-color":`workbuddy`};function X({name:e,icon:t,kind:n,size:r=32}){let i=Math.round(r*.28);return t&&/^(https:|data:image\/)/i.test(t)?(0,J.jsx)(`img`,{src:t,alt:``,width:r,height:r,className:`shrink-0 object-contain`,style:{borderRadius:i},draggable:!1}):n===`middleware`||n===`agent`?(0,J.jsx)(`span`,{"aria-hidden":!0,className:`inline-flex shrink-0 items-center justify-center text-white`,style:{width:r,height:r,borderRadius:i,background:n===`middleware`?`#0a84ff`:`#30b0a0`},children:(0,J.jsx)(n===`middleware`?re:oe,{className:`size-[55%]`,strokeWidth:1.75})}):(0,J.jsx)(ue,{name:e,icon:t?me[t]??t:null,size:r})}function he(){let{t:e}=p(),t=L(),{tab:r}=se(),i=r===`market`||r===`runtime`?r:`installed`,a=P(),o=y(),{toast:s}=n(),[c,u]=(0,q.useState)(!1),[f,m]=(0,q.useState)(!1),[g,_]=(0,q.useState)(null);return(0,J.jsxs)(ae,{title:e(`nav.plugins`),subtitle:e(`plugins.subtitle`),actions:(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(l,{icon:(0,J.jsx)(H,{className:`size-3.5`}),onClick:()=>o.mutate(void 0,{onSuccess:e=>_(e.id),onError:e=>s(d(e),`error`)}),disabled:!a.data?.plugins.length,children:e(`plugins.updateAll`)}),(0,J.jsx)(l,{variant:`primary`,icon:(0,J.jsx)(ie,{className:`size-3.5`}),onClick:()=>u(!0),children:e(`plugins.add`)})]}),children:[(0,J.jsxs)(`div`,{className:`mx-auto flex max-w-[1100px] flex-col`,children:[a.data?.off&&(0,J.jsx)(h,{className:`mb-4`,tone:`warning`,title:e(`plugins.off`),children:e(`plugins.offDetail`)}),(0,J.jsxs)(le,{value:i,onValueChange:e=>t(e===`installed`?`/plugins`:`/plugins/${e}`,{replace:!0}),children:[(0,J.jsxs)(de,{"aria-label":e(`nav.plugins`),children:[(0,J.jsxs)(G,{value:`installed`,children:[e(`plugins.tab.installed`),a.data&&a.data.plugins.length>0&&(0,J.jsx)(`span`,{className:`ml-1.5 tabular-nums opacity-60`,children:a.data.plugins.length})]}),(0,J.jsx)(G,{value:`market`,children:e(`plugins.tab.market`)}),(0,J.jsx)(G,{value:`runtime`,children:e(`plugins.tab.runtime`)})]}),(0,J.jsxs)(W,{value:`installed`,className:`pt-1`,children:[a.isLoading&&(0,J.jsx)(S,{lines:4}),a.isError&&(0,J.jsx)(h,{tone:`danger`,title:e(`common.error`),children:d(a.error)}),a.data&&(0,J.jsx)(Z,{plugins:a.data.plugins,preferences:a.data.preferences,onJob:_,onBrowse:()=>t(`/plugins/market`),onImport:()=>m(!0)})]}),(0,J.jsx)(W,{value:`market`,className:`pt-1`,children:(0,J.jsx)(xe,{installed:a.data?.plugins??[],onJob:_})}),(0,J.jsx)(W,{value:`runtime`,className:`pt-1`,children:(0,J.jsx)(Se,{onJob:_})})]})]}),(0,J.jsx)(ve,{open:c,onOpenChange:u,onJob:_}),(0,J.jsx)(ye,{open:f,onOpenChange:m,onJob:_}),(0,J.jsx)(be,{id:g,onClose:()=>_(null)})]})}function Z({plugins:e,preferences:i,onJob:a,onBrowse:o,onImport:s}){let{t:c}=p(),u=j(e.some(e=>e.kinds.includes(`provider`)||e.kinds.includes(`pi`))),f=t(),m=ne(),{toast:h}=n(),g=!!(f.data?.found&&f.data.plugins.some(e=>!e.installed))&&(0,J.jsxs)(`div`,{className:`card flex flex-wrap items-center gap-3 p-4`,children:[(0,J.jsx)(`span`,{className:`min-w-0 flex-1 text-[13px]`,children:c(`plugins.magpie.banner`,{count:f.data.plugins.filter(e=>!e.installed).length})}),(0,J.jsx)(l,{size:`sm`,icon:(0,J.jsx)(z,{className:`size-3.5`}),onClick:s,children:c(`plugins.magpie.import`)})]});if(e.length===0)return(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[g,(0,J.jsx)(`div`,{className:`card p-6`,children:(0,J.jsx)(O,{icon:(0,J.jsx)(r,{className:`size-6`}),title:c(`plugins.empty`),detail:c(`plugins.emptyDetail`),action:(0,J.jsx)(l,{variant:`primary`,onClick:o,children:c(`plugins.browseMarket`)})})})]});let _=(t,n)=>{let r=e.map(e=>e.spec),[i]=r.splice(t,1);r.splice(t+n,0,i),m.mutate(r,{onError:e=>h(d(e),`error`)})};return(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[g,(0,J.jsx)(`div`,{className:`card divide-y divide-[var(--border-subtle)] p-0`,children:e.map((t,n)=>(0,J.jsx)(ge,{plugin:t,host:u.data,preferences:i,onJob:a,onUp:n>0?()=>_(n,-1):void 0,onDown:n<e.length-1?()=>_(n,1):void 0},t.spec))}),e.some(e=>e.middleware)&&(0,J.jsx)(`p`,{className:`px-1 text-[12px] text-[var(--text-muted)]`,children:c(`plugins.orderHint`)})]})}function ge({plugin:e,host:t,preferences:r,onJob:i,onUp:a,onDown:o}){let{t:s}=p(),c=L(),{toast:u,confirm:g}=n(),v=f(),b=y(),x=F(),S=M(),[C,w]=(0,q.useState)(!1),T=t?.plugins.find(t=>t.spec===e.spec),E=e.middleware,D=e.kinds[0]??`provider`,O=async()=>{await g({title:s(`plugins.removeConfirm`,{name:e.shortName}),detail:s(`plugins.removeDetail`),confirmLabel:s(`common.delete`),destructive:!0})&&x.mutate(e.spec,{onSuccess:e=>i(e.id),onError:e=>u(d(e),`error`)})},k=[];return E&&!E.error&&k.push((0,J.jsxs)(Q,{label:s(`plugins.kind.middleware`),children:[s(`plugins.mw.stats`,{hooks:E.hooks.join(`, `),calls:E.calls,micros:E.avgMicros.toFixed(1),failures:E.failures}),E.lastError&&(0,J.jsx)(`span`,{className:`block text-[var(--danger)]`,children:s(`plugins.mw.lastError`,{error:E.lastError})})]},`mw`)),e.agent?.kind&&k.push((0,J.jsx)(Q,{label:s(`plugins.kind.agent`),children:(0,J.jsx)(`button`,{type:`button`,className:`text-[var(--accent)] underline-offset-2 hover:underline`,onClick:()=>c(`/clients/${e.agent.kind}`),children:s(`plugins.agent.adds`,{name:e.agent.name??e.agent.id??``})})},`agent`)),T&&T.provides.length>0&&k.push((0,J.jsxs)(Q,{label:s(`plugins.kind.provider`),children:[(0,J.jsx)(`span`,{children:s(`plugins.provides`,{providers:T.provides.join(`, `)})}),(0,J.jsx)(`button`,{type:`button`,className:`ml-2 text-[var(--accent)] underline-offset-2 hover:underline`,onClick:()=>c(`/providers`),children:s(`plugins.openProviders`)}),Object.entries(T.servedBy).map(([t,n])=>(0,J.jsxs)(`span`,{className:`mt-1 flex flex-wrap items-center gap-2 text-[var(--warning)]`,children:[s(`plugins.servedBy`,{provider:t,other:n}),(0,J.jsx)(l,{size:`sm`,onClick:()=>S.mutate({spec:e.spec,provider:t},{onError:e=>u(d(e),`error`)}),children:s(`plugins.useFor`,{provider:t})})]},t)),T.provides.some(t=>r[t]===e.spec)&&(0,J.jsx)(`span`,{className:`block text-[var(--text-muted)]`,children:s(`plugins.picked`)})]},`provides`)),(0,J.jsxs)(`article`,{className:m(`flex gap-3 px-4 py-3.5`,!e.enabled&&`opacity-70`),children:[(0,J.jsx)(`div`,{className:m(`pt-0.5`,!e.enabled&&`grayscale`),children:(0,J.jsx)(X,{name:e.shortName,icon:e.icon,kind:D})}),(0,J.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-start gap-x-3 gap-y-1`,children:[(0,J.jsxs)(`div`,{className:`flex min-w-0 flex-1 basis-56 flex-col`,children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,J.jsx)(`span`,{className:`truncate text-[14px] font-medium`,children:e.shortName}),e.version&&(0,J.jsxs)(`span`,{className:`font-mono text-[11px] text-[var(--text-muted)]`,children:[`v`,e.version]}),e.kinds.map(e=>(0,J.jsx)(_,{tone:pe[e],children:s(Y[e])},e)),e.isPath&&(0,J.jsx)(_,{tone:`orange`,children:s(`plugins.local`)})]}),(0,J.jsx)(`span`,{className:`truncate font-mono text-[11px] text-[var(--text-muted)]`,title:e.spec,children:e.spec})]}),(0,J.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[E&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(l,{size:`sm`,variant:`plain`,"aria-label":s(`plugins.moveUp`),title:s(`plugins.moveUp`),disabled:!a,onClick:a,icon:(0,J.jsx)(R,{className:`size-3.5`})}),(0,J.jsx)(l,{size:`sm`,variant:`plain`,"aria-label":s(`plugins.moveDown`),title:s(`plugins.moveDown`),disabled:!o,onClick:o,icon:(0,J.jsx)(ce,{className:`size-3.5`})})]}),(0,J.jsx)(A,{checked:e.enabled,label:s(`plugins.enabled`),onChange:t=>v.mutate({spec:e.spec,enabled:t},{onError:e=>u(d(e),`error`)})}),(0,J.jsx)(te,{label:s(`common.more`),iconOnly:!0,icon:(0,J.jsx)(B,{className:`size-4`}),items:[{id:`options`,label:s(`plugins.options`),icon:(0,J.jsx)(fe,{className:`size-3.5`}),onSelect:()=>w(!0)},...e.isPath?[]:[{id:`update`,label:s(`plugins.update`),icon:(0,J.jsx)(H,{className:`size-3.5`}),onSelect:()=>b.mutate(e.spec,{onSuccess:e=>i(e.id),onError:e=>u(d(e),`error`)})}],{id:`remove`,label:s(`common.delete`),icon:(0,J.jsx)(U,{className:`size-3.5`}),destructive:!0,separatorBefore:!0,onSelect:()=>void O()}]})]})]}),e.error&&(0,J.jsx)(h,{tone:`danger`,title:s(`plugins.cantLoad`),children:e.error}),T?.error&&(0,J.jsx)(h,{tone:`danger`,title:s(`plugins.hostCantLoad`),children:T.error}),E?.error&&(0,J.jsx)(h,{tone:`danger`,title:s(`plugins.cantLoad`),children:s(`plugins.mw.error`,{error:E.error})}),e.agent?.error&&(0,J.jsx)(h,{tone:`danger`,title:s(`plugins.cantLoad`),children:s(`plugins.agent.error`,{error:e.agent.error})}),k.length>0&&(0,J.jsx)(`div`,{className:`flex flex-col gap-1.5 rounded-lg bg-[var(--surface-muted)] px-3 py-2`,children:k})]}),(0,J.jsx)(_e,{plugin:e,open:C,onOpenChange:w})]})}function Q({label:e,children:t}){return(0,J.jsxs)(`div`,{className:`flex gap-3 text-[12px]`,children:[(0,J.jsx)(`span`,{className:`w-14 shrink-0 text-[var(--text-muted)]`,children:e}),(0,J.jsx)(`div`,{className:`min-w-0 flex-1 text-[var(--text-secondary)]`,children:t})]})}function _e({plugin:e,open:t,onOpenChange:r}){let{t:i}=p(),{toast:a}=n(),o=f(),[s,c]=(0,q.useState)(``),[u,m]=(0,q.useState)(null);(0,q.useEffect)(()=>{t&&(c(JSON.stringify(e.options??e.optionsExample??{},null,2)),m(null))},[t,e.options,e.optionsExample]);let h=t=>o.mutate({spec:e.spec,options:t},{onSuccess:()=>(a(i(`plugins.optionsSaved`)),r(!1)),onError:e=>a(d(e),`error`)});return(0,J.jsxs)(I,{open:t,onOpenChange:r,title:i(`plugins.optionsTitle`,{name:e.shortName}),description:e.options?void 0:e.optionsExample?i(`plugins.optionsExample`):i(`plugins.optionsNone`),width:560,footer:(0,J.jsxs)(J.Fragment,{children:[e.options&&(0,J.jsx)(l,{onClick:()=>h(null),children:i(`plugins.optionsClear`)}),(0,J.jsx)(l,{variant:`primary`,onClick:()=>{try{let e=JSON.parse(s||`{}`);if(typeof e!=`object`||!e||Array.isArray(e))throw Error(i(`plugins.optionsObject`));h(e)}catch(e){m(e instanceof Error?e.message:String(e))}},disabled:o.isPending,children:i(`common.save`)})]}),children:[(0,J.jsx)(E,{mono:!0,rows:14,value:s,invalid:!!u,onChange:e=>(c(e.target.value),m(null)),label:i(`plugins.options`)}),u&&(0,J.jsx)(`p`,{className:`mt-2 text-[12px] text-[var(--danger)]`,children:u})]})}function ve({open:e,onOpenChange:t,onJob:r}){let{t:i}=p(),{toast:a}=n(),o=u(),[s,c]=(0,q.useState)(``);return(0,q.useEffect)(()=>{e&&c(``)},[e]),(0,J.jsxs)(I,{open:e,onOpenChange:t,title:i(`plugins.addTitle`),description:i(`plugins.addDetail`),footer:(0,J.jsx)(l,{variant:`primary`,disabled:!s.trim()||o.isPending,onClick:()=>o.mutate({spec:s.trim()},{onSuccess:e=>(r(e.id),t(!1)),onError:e=>a(d(e),`error`)}),children:i(`plugins.install`)}),children:[(0,J.jsx)(N,{label:i(`plugins.spec`),hint:i(`plugins.specHint`),children:(0,J.jsx)(b,{mono:!0,value:s,onChange:e=>c(e.target.value),placeholder:`@magpie-community/middleware-word-guard`,autoFocus:!0})}),(0,J.jsx)(h,{tone:`warning`,title:i(`plugins.trustTitle`),className:`mt-4`,children:i(`plugins.trustDetail`)})]})}function ye({open:e,onOpenChange:r,onJob:i}){let{t:a}=p(),{toast:o}=n(),c=t(e),u=s(),[f,m]=(0,q.useState)(!1),g=c.data;return(0,J.jsxs)(I,{open:e,onOpenChange:r,title:a(`plugins.magpie.title`),description:g?.path,width:560,footer:(0,J.jsx)(l,{variant:`primary`,disabled:!g?.found||u.isPending,onClick:()=>u.mutate(f,{onSuccess:e=>(i(e.id),r(!1)),onError:e=>o(d(e),`error`)}),children:a(`plugins.magpie.import`)}),children:[c.isLoading&&(0,J.jsx)(S,{lines:3}),g?.error&&(0,J.jsx)(h,{tone:`danger`,title:a(`common.error`),children:g.error}),g&&(0,J.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,J.jsx)(`div`,{className:`card divide-y divide-[var(--border-subtle)] p-0`,children:g.plugins.map(e=>(0,J.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2 text-[12px]`,children:[(0,J.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono`,children:e.spec}),e.off&&(0,J.jsx)(_,{children:a(`plugins.magpie.off`)}),e.hasOptions&&(0,J.jsx)(_,{tone:`accent`,children:a(`plugins.options`)}),e.installed&&(0,J.jsx)(_,{tone:`green`,children:a(`plugins.installed`)})]},e.spec))}),g.signIns>0&&(0,J.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,J.jsx)(A,{checked:f,onChange:m,label:a(`plugins.magpie.signIns`,{count:g.signIns})}),(0,J.jsx)(`p`,{className:`text-[12px] text-[var(--text-secondary)]`,children:a(`plugins.magpie.signInsDetail`)})]})]})]})}function be({id:t,onClose:n}){let{t:r}=p(),i=o(t).data;return(0,J.jsxs)(I,{open:!!t,onOpenChange:e=>!e&&n(),title:r(`plugins.job.title`),description:i?r(i.state===`running`?`plugins.job.running`:i.state===`succeeded`?`plugins.job.done`:`plugins.job.failed`,{target:i.target}):void 0,width:620,footer:(0,J.jsx)(l,{onClick:n,children:r(`common.close`)}),children:[!i&&(0,J.jsx)(S,{lines:3}),i&&(0,J.jsx)(e,{language:`text`,children:i.log.length?i.log.join(`
2
+ `):`…`}),i?.state===`failed`&&i.error&&(0,J.jsx)(h,{tone:`danger`,title:r(`plugins.job.failedTitle`),className:`mt-3`,children:i.error})]})}function xe({installed:e,onJob:t}){let{t:i,locale:a}=p(),{toast:o,confirm:s}=n(),c=g(),l=u(),[f,m]=(0,q.useState)(``),[_,y]=(0,q.useState)(``),[b,C]=(0,q.useState)(`all`);(0,q.useEffect)(()=>{let e=setTimeout(()=>y(f.trim()),400);return()=>clearTimeout(e)},[f]);let T=v(_),E=(0,q.useMemo)(()=>new Set(e.map(e=>e.name)),[e]),D=(t,n)=>E.has(n)||e.some(e=>e.spec===t),k=async(e,n)=>{await s({title:i(`plugins.installConfirm`,{name:e}),detail:i(`plugins.trustDetail`),confirmLabel:i(`plugins.install`)})&&l.mutate({spec:e,source:n},{onSuccess:e=>t(e.id),onError:e=>o(d(e),`error`)})},A=(c.data??[]).filter(e=>b===`all`||e.kind===b),j=e=>(c.data??[]).filter(t=>e===`all`||t.kind===e).length,M=_.length>=2;return(0,J.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,J.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,J.jsx)(w,{className:`min-w-[220px] flex-1`,value:f,onChange:m,placeholder:i(`plugins.searchPlaceholder`)}),!M&&(0,J.jsx)(x,{ariaLabel:i(`plugins.kindFilter`),value:b,onChange:C,items:[`all`,`provider`,`middleware`,`agent`].map(e=>({value:e,label:`${i(e===`all`?`plugins.kind.all`:Y[e])} ${j(e)}`}))})]}),M?(0,J.jsxs)(J.Fragment,{children:[T.isLoading&&(0,J.jsx)(S,{lines:3}),T.data?.length===0&&(0,J.jsx)(`div`,{className:`card p-6`,children:(0,J.jsx)(O,{icon:(0,J.jsx)(r,{className:`size-6`}),title:i(`plugins.noResults`)})}),T.data&&T.data.length>0&&(0,J.jsx)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3`,children:T.data.map(e=>(0,J.jsx)($,{title:e.name,subtitle:e.spec,icon:(0,J.jsx)(X,{name:e.name,kind:e.kind}),detail:e.description??void 0,tags:[i(Y[e.kind]),e.source===`github`?`★ ${e.stars}`:e.version?`v${e.version}`:``],installed:D(e.spec,e.name),onInstall:()=>void k(e.spec,e.source===`github`?`github`:`npm`)},e.spec))}),(0,J.jsx)(`p`,{className:`px-1 text-[12px] text-[var(--text-muted)]`,children:i(`plugins.searchNote`)})]}):(0,J.jsxs)(J.Fragment,{children:[c.isLoading&&(0,J.jsx)(S,{lines:4}),c.isError&&(0,J.jsx)(h,{tone:`danger`,title:i(`common.error`),children:d(c.error)}),(0,J.jsx)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3`,children:A.map(e=>(0,J.jsx)($,{title:e.name,subtitle:e.package,icon:(0,J.jsx)(X,{name:e.name,icon:e.icon,kind:e.kind}),detail:e.summary[a]??e.summary.en??e.description??void 0,tags:[i(Y[e.kind]),e.latest?`v${e.latest}`:``].filter(Boolean),installed:D(e.package,e.package),onInstall:()=>void k(e.package,`market`)},e.package))}),(0,J.jsx)(`p`,{className:`px-1 text-[12px] text-[var(--text-muted)]`,children:i(`plugins.marketNote`)})]})]})}function $({title:e,subtitle:t,icon:n,detail:r,tags:a,installed:o,onInstall:s}){let{t:c}=p();return(0,J.jsxs)(`div`,{className:`card flex flex-col gap-3 p-4 transition-colors hover:border-[var(--border)]`,children:[(0,J.jsxs)(`div`,{className:`flex items-start gap-3`,children:[n,(0,J.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,J.jsx)(`span`,{className:`truncate text-[14px] font-medium`,title:e,children:e}),(0,J.jsx)(`span`,{className:`truncate font-mono text-[11px] text-[var(--text-muted)]`,title:t,children:t})]})]}),(0,J.jsx)(`p`,{className:`line-clamp-2 min-h-[2lh] text-[12px] leading-relaxed text-[var(--text-secondary)]`,children:r??``}),(0,J.jsxs)(`div`,{className:`mt-auto flex items-center gap-1.5`,children:[a.filter(Boolean).map(e=>(0,J.jsx)(_,{children:e},e)),(0,J.jsx)(`span`,{className:`flex-1`}),o?(0,J.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-[12px] text-[var(--success)]`,children:[(0,J.jsx)(i,{className:`size-3.5`}),c(`plugins.installed`)]}):(0,J.jsx)(l,{size:`sm`,variant:`primary`,onClick:s,children:c(`plugins.install`)})]})]})}function Se({onJob:e}){let{t,locale:r}=p(),{toast:i}=n(),o=P(),s=j(),c=a(),u=o.data?.runtime;return(0,J.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 lg:grid-cols-2`,children:[(0,J.jsxs)(`section`,{className:`card flex flex-col gap-3 p-4`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(`h3`,{className:`flex-1 text-[14px] font-medium`,children:`Bun`}),u&&(0,J.jsx)(_,{tone:u.path?`green`:`neutral`,children:u.path?t(`plugins.bunReady`):t(`plugins.bunMissing`)})]}),(0,J.jsx)(`p`,{className:`text-[12px] leading-relaxed text-[var(--text-secondary)]`,children:t(`plugins.bunDetail`)}),u&&(0,J.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[u.path&&(0,J.jsx)(k,{label:t(`plugins.bunPath`),mono:!0,children:u.path}),u.version&&(0,J.jsx)(k,{label:t(`plugins.bunVersion`),mono:!0,children:u.version}),(0,J.jsx)(k,{label:t(`plugins.bunTarget`),mono:!0,children:u.target??t(`plugins.bunNoBuild`)})]}),u?.error&&(0,J.jsx)(h,{tone:`danger`,title:t(`plugins.bunFailed`),children:u.error}),u&&!u.path&&(0,J.jsx)(`div`,{children:(0,J.jsx)(l,{variant:`primary`,disabled:u.downloading||c.isPending||!u.target,onClick:()=>c.mutate(void 0,{onSuccess:t=>e(t.id),onError:e=>i(d(e),`error`)}),children:u.downloading?t(`plugins.bunDownloading`):t(`plugins.bunDownload`,{version:u.version??``})})})]}),(0,J.jsxs)(`section`,{className:`card flex flex-col gap-3 p-4`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(`h3`,{className:`flex-1 text-[14px] font-medium`,children:t(`plugins.host`)}),s.data&&(0,J.jsx)(_,{tone:s.data.running?`green`:`neutral`,children:s.data.running?t(`plugins.hostRunning`):t(`plugins.hostStopped`)})]}),(0,J.jsx)(`p`,{className:`text-[12px] leading-relaxed text-[var(--text-secondary)]`,children:t(`plugins.hostDetail`)}),s.data?.startError&&(0,J.jsx)(h,{tone:`danger`,title:t(`plugins.hostStartFailed`),children:s.data.startError}),s.data?.goneReason&&(0,J.jsx)(h,{tone:`warning`,title:t(`plugins.hostGone`),children:s.data.goneReason}),s.data&&s.data.plugins.length>0&&(0,J.jsx)(`div`,{className:`flex flex-col gap-1`,children:s.data.plugins.map(e=>(0,J.jsx)(k,{label:e.spec,mono:!0,children:e.error?t(`plugins.hostPluginError`,{error:e.error}):e.provides.join(`, `)||`—`},e.spec))}),s.data?.recent&&s.data.recent.length>0&&(0,J.jsxs)(`div`,{className:`flex flex-col gap-1.5 border-t border-[var(--border-subtle)] pt-3`,children:[(0,J.jsx)(`h4`,{className:`text-[12px] font-medium text-[var(--text-secondary)]`,children:t(`plugins.hostRecent`)}),s.data.recent.map((e,t)=>(0,J.jsxs)(`div`,{className:`flex items-start gap-2 text-[12px]`,children:[(0,J.jsx)(_,{tone:e.variant===`error`?`red`:e.variant===`warning`?`orange`:e.variant===`success`?`green`:`neutral`,children:D(e.at,r)}),(0,J.jsxs)(`span`,{className:`min-w-0 flex-1 break-words`,children:[e.title&&(0,J.jsxs)(`span`,{className:`font-medium`,children:[e.title,` `]}),e.message]})]},t))]})]}),(0,J.jsxs)(`a`,{className:`flex items-center gap-1 px-1 text-[12px] text-[var(--text-muted)] hover:text-[var(--accent)] lg:col-span-2`,href:`https://github.com/magpie-community/plugins`,target:`_blank`,rel:`noreferrer`,children:[(0,J.jsx)(V,{className:`size-3`}),` magpie-community/plugins`]})]})}export{he as PluginsPage};
@@ -0,0 +1 @@
1
+ ._toolbar_1p5c5_1{min-height:var(--control-height-lg);align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--surface);flex-wrap:wrap;display:flex;position:relative}._leading_1p5c5_2{flex:0 16rem;min-width:0;max-width:100%}._frame_1p5c5_4{flex:10rem;min-width:0}._chips_1p5c5_5{min-width:0;min-height:var(--control-height-sm);align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex;position:relative}._slot_1p5c5_7{border-radius:var(--radius-pill);flex:none;min-width:0;max-width:100%;display:inline-flex}._chip_1p5c5_5{max-width:calc(100% + var(--slot-moving,0) * 100vw);min-height:var(--control-height-sm);align-items:center;gap:var(--space-2);padding:0 var(--space-2) 0 var(--space-3);border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface-muted);color:var(--text-secondary);font-size:var(--text-xs);flex:none;display:inline-flex}._chipLabel_1p5c5_10{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:clip visible}._value_1p5c5_11{color:var(--foreground);font-weight:500}._separator_1p5c5_12{color:var(--text-secondary);font-weight:400}._morphText_1p5c5_13{white-space:nowrap;vertical-align:bottom;display:inline-flex;position:relative;overflow:clip visible}._morphValue_1p5c5_14{white-space:nowrap;flex:none;display:inline-block}._measure_1p5c5_15{visibility:hidden;white-space:nowrap;pointer-events:none;position:absolute;top:0;left:0}._chip_1p5c5_5 button{border-radius:var(--radius-pill);width:24px;height:24px;color:var(--text-muted);cursor:pointer;transition:background var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard), transform var(--duration-spring) var(--ease-spring);background:0 0;border:0;flex:0 0 24px;place-items:center;display:grid}._chip_1p5c5_5 button:active{transition-duration:var(--duration-fast), var(--duration-fast), var(--duration-instant);transition-timing-function:var(--ease-standard), var(--ease-standard), var(--ease-standard);transform:scale(.96)}._empty_1p5c5_18{max-width:100%;color:var(--text-muted);font-size:var(--text-sm);white-space:nowrap;pointer-events:none;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;overflow:hidden}._actions_1p5c5_19{align-items:center;gap:var(--space-2);flex-wrap:wrap;flex:none;margin-left:auto;display:inline-flex}._clear_1p5c5_20{min-height:var(--control-height-sm);padding:0 var(--space-3);border-radius:var(--radius-control);color:var(--text-muted);font:inherit;font-size:var(--text-sm);line-height:var(--leading-body);letter-spacing:var(--tracking-body);white-space:nowrap;cursor:pointer;transition:background var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard), transform var(--duration-spring) var(--ease-spring);background:0 0;border:0}._clearText_1p5c5_21{display:block}._clear_1p5c5_20:active{transition-duration:var(--duration-fast), var(--duration-fast), var(--duration-instant);transition-timing-function:var(--ease-standard), var(--ease-standard), var(--ease-standard);transform:scale(.97)}._srOnly_1p5c5_23{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}._menu_1p5c5_27{isolation:isolate;flex:none;display:inline-flex;position:relative}._menu_1p5c5_27:not([data-state=closed]){z-index:30}._trigger_1p5c5_29{z-index:1;min-height:var(--control-height-sm);padding:0 var(--space-3);border-radius:var(--radius-control);color:var(--foreground);font:inherit;font-size:var(--text-sm);font-weight:500;line-height:var(--leading-body);letter-spacing:var(--tracking-body);white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:1px solid #0000;align-items:center;display:inline-flex;position:relative}._menu_1p5c5_27[data-state=open] ._trigger_1p5c5_29{pointer-events:none}._face_1p5c5_31{align-items:center;gap:var(--space-2);display:inline-flex}._face_1p5c5_31 svg{flex:none}._surface_1p5c5_34{z-index:0;box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface);transition:background-color var(--duration-fast) var(--ease-standard), border-radius var(--duration-spring) var(--ease-spring), box-shadow var(--duration-standard) var(--ease-standard);position:absolute;top:0;overflow:clip}._menu_1p5c5_27[data-y=up] ._surface_1p5c5_34{top:auto;bottom:0}._menu_1p5c5_27[data-state=open] ._surface_1p5c5_34{border-radius:var(--radius-panel);background:var(--surface-raised);box-shadow:var(--shadow-floating)}._menu_1p5c5_27[data-state=closed] ._trigger_1p5c5_29:active+._surface_1p5c5_34{background:color-mix(in oklab, var(--surface-muted), var(--border) 55%)}@media (hover:hover) and (pointer:fine){._menu_1p5c5_27[data-state=closed] ._trigger_1p5c5_29:hover+._surface_1p5c5_34{background:var(--surface-muted);box-shadow:var(--shadow-resting)}}._panel_1p5c5_42{width:min(var(--filter-menu-width,16rem), calc(100vw - var(--space-8)));outline:none;padding:6px;position:absolute;top:0;left:0}._menu_1p5c5_27[data-y=up] ._panel_1p5c5_42{top:auto;bottom:0}._menu_1p5c5_27[data-state=closed] ._panel_1p5c5_42{visibility:hidden}._head_1p5c5_45{height:32px;padding:0 var(--space-2) 0 10px;align-items:center;display:flex}._menu_1p5c5_27[data-y=up] ._head_1p5c5_45{margin-top:4px}._back_1p5c5_47{border-radius:var(--radius-pill);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);background:0 0;border:0;flex:none;place-items:center;margin-left:-6px;padding:0;display:grid}._back_1p5c5_47:active{background:var(--surface-muted);color:var(--foreground)}._title_1p5c5_49{min-width:0;color:var(--foreground);font-size:var(--text-sm);letter-spacing:var(--tracking-body);white-space:nowrap;font-weight:500;display:flex;position:relative}._titleText_1p5c5_50{display:block}._stage_1p5c5_51{margin-top:2px;position:relative}._step_1p5c5_52{width:100%}._list_1p5c5_53{overscroll-behavior:contain;scrollbar-width:thin;max-height:min(20rem,55vh);display:grid;position:relative;overflow-y:auto}._highlight_1p5c5_54{border-radius:calc(var(--radius-panel) - 6px);background:color-mix(in oklab, var(--foreground) 6%, transparent);opacity:0;pointer-events:none;position:absolute;top:0;left:0;right:0}._item_1p5c5_55:focus-visible{outline:none}._item_1p5c5_55{min-width:0;min-height:var(--control-height-sm);border-radius:calc(var(--radius-panel) - 6px);color:var(--foreground);font:inherit;font-size:var(--text-sm);letter-spacing:var(--tracking-body);text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;outline:none;align-items:center;gap:10px;padding:0 10px;display:flex;position:relative}._itemIcon_1p5c5_57{min-width:16px;color:var(--text-secondary);flex:none;justify-content:center;align-items:center;display:inline-flex}._itemLabel_1p5c5_58{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}._itemMeta_1p5c5_59{min-width:0;max-width:50%;color:var(--text-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums;flex:none;align-items:center;gap:6px;display:inline-flex}._metaValue_1p5c5_60{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._hint_1p5c5_61{text-align:right;min-width:2ch}._check_1p5c5_62{width:15px;color:var(--foreground);opacity:0;display:inline-flex}._check_1p5c5_62[data-on]{opacity:1}._noOptions_1p5c5_64{padding:var(--space-3);color:var(--text-muted);font-size:var(--text-sm);margin:0}@media (hover:hover) and (pointer:fine){._chip_1p5c5_5 button:hover{background:var(--border);color:var(--foreground)}._clear_1p5c5_20:hover,._back_1p5c5_47:hover{background:var(--surface-muted);color:var(--foreground)}}@media (width<=640px){._leading_1p5c5_2{flex:100%}._frame_1p5c5_4{flex-basis:8rem}._actions_1p5c5_19{justify-content:flex-end}}@media (prefers-reduced-motion:reduce){._chip_1p5c5_5 button,._clear_1p5c5_20,._surface_1p5c5_34,._back_1p5c5_47{transition:none}._chip_1p5c5_5 button:active,._clear_1p5c5_20:active{transform:none}}._counter_dnoch_1{color:var(--foreground);font-family:var(--font-display);font-size:var(--text-3xl);letter-spacing:var(--tracking-display);font-variant-numeric:tabular-nums;flex-direction:column;font-weight:500;line-height:1;display:inline-flex;position:relative}._label_dnoch_2{margin-bottom:var(--space-2);color:var(--text-muted);font-family:var(--font-body);font-size:var(--text-xs);letter-spacing:var(--tracking-body);font-weight:400;line-height:var(--leading-body)}._value_dnoch_4{white-space:nowrap;-webkit-user-select:none;user-select:none;align-items:flex-start;display:inline-flex}._column_dnoch_6{--feather:.16em;margin-block:calc(var(--feather) * -1);padding-block:var(--feather);-webkit-mask-image:linear-gradient(to bottom, transparent, #000 calc(var(--feather) * 1.5), #000 calc(100% - var(--feather) * 1.5), transparent);mask-image:linear-gradient(to bottom, transparent, #000 calc(var(--feather) * 1.5), #000 calc(100% - var(--feather) * 1.5), transparent);display:inline-block;position:relative;overflow:hidden}._sizer_dnoch_7{visibility:hidden}._glyph_dnoch_8{inset:var(--feather) 0;text-align:center;position:absolute}._labelText_dnoch_9{display:inline-block}._labelSwap_dnoch_10{display:block;position:relative}._symbol_dnoch_11{display:inline-block;overflow-x:clip}._srOnly_dnoch_12{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}._card_1r6t9_1{border:1px solid var(--border);border-radius:var(--radius-surface);min-width:0;padding:var(--space-6);background:var(--surface);box-shadow:var(--shadow-resting)}._top_1r6t9_2{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-8);display:flex}._top_1r6t9_2 span{color:var(--text-secondary);font-size:var(--text-sm)}._top_1r6t9_2 small{border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-secondary);font-size:var(--text-sm);font-variant-numeric:tabular-nums;flex:none;padding:3px 8px;display:inline-flex}._card_1r6t9_1 p{margin:var(--space-4) 0 0;color:var(--text-muted);font-size:var(--text-sm);line-height:var(--leading-body)}@media (width<=380px){._card_1r6t9_1{padding:var(--space-4)}._top_1r6t9_2{margin-bottom:var(--space-6);flex-wrap:wrap;align-items:flex-start}}._swap_1r6t9_8,._swapBlock_1r6t9_8{max-width:100%;position:relative}._swap_1r6t9_8{white-space:nowrap;vertical-align:top;display:inline-flex;overflow-x:clip}._swapBlock_1r6t9_8{display:block}._swap_1r6t9_8>._text_1r6t9_11{display:inline-block}._swapBlock_1r6t9_8>._text_1r6t9_11{display:block}._sizer_1r6t9_13{visibility:hidden;white-space:nowrap;pointer-events:none;position:absolute;top:0;left:0}._top_1r6t9_2 small[data-trend] span{color:inherit}._top_1r6t9_2 small[data-trend]{transition:color var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard);border-color:#0000}._top_1r6t9_2 small[data-trend=up]{background:color-mix(in oklab, var(--success) 11%, transparent);color:var(--success)}._top_1r6t9_2 small[data-trend=down]{background:color-mix(in oklab, var(--danger) 11%, transparent);color:var(--danger)}