mirror of
https://github.com/GMWalletApp/epusdt.git
synced 2026-07-07 18:26:16 +00:00
2 lines
17 KiB
JavaScript
2 lines
17 KiB
JavaScript
import{r as e}from"./chunk-DECur_0Z.js";import{a as t}from"./auth-store-CeX2QaQI.js";import{t as n}from"./router-CCfxRYoU.js";import{t as r}from"./react-CO2uhaBc.js";import{$r as i,Aa as a,Br as o,Cf as s,Ci as c,Cr as l,Ei as u,Gr as d,Hr as f,Ir as p,Jr as m,Kr as h,Lr as ee,Od as te,Qr as g,Rr as _,Si as v,Ti as y,Ur as b,Vr as x,Wo as ne,Wr as S,Xr as C,Yr as w,Zr as T,_i as re,af as E,ai as ie,bi as ae,ci as oe,di as se,ei as D,fi as ce,fo as le,gi as ue,hi as de,ii as fe,li as pe,mi as me,ni as O,of as k,oi as he,pi as ge,qr as A,ri as _e,si as ve,ti as j,ui as ye,vf as M,vi as be,wi as xe,xi as N,yi as Se,zr as P}from"./messages-CA0k74Lg.js";import{r as Ce}from"./route-DoCd_Vr1.js";import{o as F,s as we,z as Te}from"./search-provider-DWK6TDJZ.js";import{t as I}from"./button-CfqkRSM8.js";import{t as Ee}from"./confirm-dialog-BNVecbxK.js";import{a as L,i as R,n as z,r as B,t as De}from"./select-0mb7fNAV.js";import{t as Oe}from"./separator-DZMLZkQo.js";import{t as ke}from"./switch-YaVuq4WZ.js";import{t as V}from"./createLucideIcon-Br0Bd5k2.js";import{t as H}from"./skeleton-Dd8Z_2kW.js";import{n as Ae,t as je}from"./copy-to-clipboard--eZunBzP.js";import{t as Me}from"./eye-off-CNvoUNxR.js";import{t as Ne}from"./eye-CnTTVkb2.js";import{n as Pe,r as Fe,t as Ie}from"./empty-state-klViM9Xb.js";import{n as Le,t as Re}from"./main-CupYVJXI.js";import{n as ze,t as Be}from"./trash-2-BBsEOAHm.js";import{t as Ve}from"./shield-check-LJiSka38.js";import{n as U}from"./dist-BJ92XTI_.js";import{c as W,s as He}from"./zod-CtXLSkFW.js";import{a as Ue,n as We,o as Ge,r as Ke,t as qe}from"./dialog-B3xx2MKo.js";import{a as G,c as Je,i as K,l as Ye,n as q,o as J,r as Xe,s as Y,t as Ze}from"./form-C3PRruHl.js";import{t as X}from"./input-Dyq5zXZe.js";import{t as Qe}from"./page-header-DLBUeYaU.js";import{t as $e}from"./textarea-CU6qf3O-.js";import{t as et}from"./badge-B9hxlwTp.js";var tt=V(`arrow-down-a-z`,[[`path`,{d:`m3 16 4 4 4-4`,key:`1co6wj`}],[`path`,{d:`M7 20V4`,key:`1yoxec`}],[`path`,{d:`M20 8h-5`,key:`1vsyxs`}],[`path`,{d:`M15 10V6.5a2.5 2.5 0 0 1 5 0V10`,key:`ag13bf`}],[`path`,{d:`M15 14h5l-5 6h5`,key:`ur5jdg`}]]),nt=V(`arrow-up-a-z`,[[`path`,{d:`m3 8 4-4 4 4`,key:`11wl7u`}],[`path`,{d:`M7 4v16`,key:`1glfcx`}],[`path`,{d:`M20 8h-5`,key:`1vsyxs`}],[`path`,{d:`M15 10V6.5a2.5 2.5 0 0 1 5 0V10`,key:`ag13bf`}],[`path`,{d:`M15 14h5l-5 6h5`,key:`ur5jdg`}]]),rt=V(`pencil`,[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}]]),it=e(je(),1),Z=e(r(),1),Q=s(),at=He({name:W().min(1,p()),notify_url:W().optional(),ip_whitelist:W().optional()});function ot({open:e,onOpenChange:n,currentRow:r,onSuccess:i}){let a=Ye({resolver:Je(at),defaultValues:{name:``,notify_url:``,ip_whitelist:``}}),s=t.useMutation(`post`,`/admin/api/v1/api-keys`),c=t.useMutation(`patch`,`/admin/api/v1/api-keys/{id}`),u=s.data?.data?.secret_key;(0,Z.useEffect)(()=>{e&&a.reset({name:r?.name??``,notify_url:r?.notify_url??``,ip_whitelist:r?.ip_whitelist??``})},[e,r,a]);function p(e){e||(a.reset({name:``,notify_url:``,ip_whitelist:``}),s.reset(),c.reset()),n(e)}function te(e){if(r?.id){c.mutate({params:{path:{id:r.id}},body:{name:e.name,notify_url:e.notify_url,ip_whitelist:e.ip_whitelist||void 0}},{onSuccess:()=>{U.success(_()),n(!1),i?.()}});return}s.mutate({body:{name:e.name,notify_url:e.notify_url,ip_whitelist:e.ip_whitelist||void 0}},{onSuccess:()=>{U.success(ee()),i?.()}})}function g(){p(!1)}let v=s.isPending||c.isPending;return(0,Q.jsx)(qe,{onOpenChange:p,open:e,children:(0,Q.jsxs)(We,{children:[(0,Q.jsxs)(Ue,{children:[(0,Q.jsx)(Ge,{children:r?A():h()}),(0,Q.jsx)(Ke,{children:r?d():S()})]}),(0,Q.jsx)(Ze,{...a,children:(0,Q.jsxs)(`form`,{className:`space-y-4`,onSubmit:a.handleSubmit(te),children:[(0,Q.jsx)(K,{control:a.control,name:`name`,render:({field:e})=>(0,Q.jsxs)(G,{children:[(0,Q.jsx)(J,{children:w()}),(0,Q.jsx)(q,{children:(0,Q.jsx)(X,{placeholder:m(),...e})}),(0,Q.jsx)(Y,{})]})}),(0,Q.jsx)(K,{control:a.control,name:`notify_url`,render:({field:e})=>(0,Q.jsxs)(G,{children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,Q.jsx)(J,{children:D()}),(0,Q.jsx)(et,{variant:`secondary`,children:k()})]}),(0,Q.jsx)(q,{children:(0,Q.jsx)(X,{disabled:!0,placeholder:`https://example.com/callback`,...e})}),(0,Q.jsx)(Xe,{children:E()}),(0,Q.jsx)(Y,{})]})}),(0,Q.jsx)(K,{control:a.control,name:`ip_whitelist`,render:({field:e})=>(0,Q.jsxs)(G,{children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,Q.jsx)(J,{children:b()}),(0,Q.jsx)(et,{variant:`secondary`,children:k()})]}),(0,Q.jsx)(q,{children:(0,Q.jsx)($e,{disabled:!0,placeholder:`127.0.0.1
|
|
10.0.0.2`,...e})}),(0,Q.jsx)(Xe,{children:E()}),(0,Q.jsx)(Y,{})]})}),!r&&u?(0,Q.jsxs)(`div`,{className:`rounded-lg border bg-muted/40 p-3 text-sm`,children:[(0,Q.jsx)(`div`,{className:`mb-1 font-medium text-amber-600`,children:f()}),(0,Q.jsx)(`div`,{className:`break-all font-mono text-muted-foreground`,children:u})]}):null,(0,Q.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,Q.jsx)(I,{onClick:g,type:`button`,variant:`outline`,children:!r&&u?x():M()}),(!u||r)&&(0,Q.jsxs)(I,{disabled:v,type:`submit`,children:[v&&l(),!v&&r&&o(),!(v||r)&&P()]})]})]})})]})})}function st({data:e,isLoading:t,onAction:n,onCopySecret:r,onToggleSecret:o,secretStates:s}){let[c,l]=(0,Z.useState)(new Set);function u(e){try{return`${new URL(e).protocol}//••••••••`}catch{return`••••••••••••••••`}}function d(e){return e?.visible?e.loading?j():e.value||`-`:`••••••••••••••••`}function f(e,t){return e?t?e:u(e):`-`}return t?(0,Q.jsx)(`ul`,{className:`faded-bottom no-scrollbar grid gap-4 overflow-auto pt-4 pb-16 md:grid-cols-2 lg:grid-cols-3`,children:[`api-key-skeleton-1`,`api-key-skeleton-2`,`api-key-skeleton-3`,`api-key-skeleton-4`,`api-key-skeleton-5`,`api-key-skeleton-6`].map(e=>(0,Q.jsx)(`li`,{"aria-hidden":`true`,className:`rounded-lg border`,children:(0,Q.jsxs)(`div`,{className:`flex h-full flex-col overflow-hidden p-4`,children:[(0,Q.jsxs)(`div`,{className:`mb-6 flex items-center justify-between gap-3`,children:[(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-2`,children:[(0,Q.jsx)(H,{className:`h-5 w-32 max-w-full`}),(0,Q.jsx)(H,{className:`h-3 w-20`})]}),(0,Q.jsx)(H,{className:`h-6 w-11 rounded-full`})]}),(0,Q.jsxs)(`div`,{className:`mb-6 flex-1 space-y-3`,children:[(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Q.jsx)(H,{className:`mt-1 h-3 w-12 shrink-0`}),(0,Q.jsx)(H,{className:`h-4 w-28 min-w-0 flex-1`})]}),(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Q.jsx)(H,{className:`mt-1 h-3 w-12 shrink-0`}),(0,Q.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-start gap-2`,children:[(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-2`,children:[(0,Q.jsx)(H,{className:`h-4 w-full`}),(0,Q.jsx)(H,{className:`h-4 w-9/12`})]}),(0,Q.jsx)(H,{className:`size-8 shrink-0 rounded-md`}),(0,Q.jsx)(H,{className:`size-8 shrink-0 rounded-md`})]})]}),[`w-28`,`w-full`,`w-11/12`,`w-24`,`w-32`].map(e=>(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Q.jsx)(H,{className:`mt-1 h-3 w-12 shrink-0`}),(0,Q.jsx)(H,{className:`h-4 min-w-0 flex-1 ${e}`})]},e))]}),(0,Q.jsx)(`div`,{className:`-mx-4 mt-auto -mb-4 border-t`,children:(0,Q.jsx)(`div`,{className:`grid grid-cols-3`,children:[`api-key-action-skeleton-1`,`api-key-action-skeleton-2`,`api-key-action-skeleton-3`].map((e,t)=>(0,Q.jsx)(`div`,{className:`flex h-11 items-center justify-center px-4 ${t<2?`border-r`:``}`,children:(0,Q.jsx)(H,{className:`h-4 w-16`})},e))})})]})},e))}):e.length?(0,Q.jsx)(`ul`,{className:`faded-bottom no-scrollbar grid gap-4 overflow-auto pt-4 pb-16 md:grid-cols-2 lg:grid-cols-3`,children:e.map(e=>{let t=e.status===1,u=String(e.id??e.pid??``),p=s[u],m=c.has(u),h=[{label:`PID`,value:e.pid??`-`},{label:g(),value:d(p),visible:p?.visible,onToggle:()=>o(e),onCopy:()=>r(e)},{label:D(),value:f(e.notify_url,m),visible:m,onToggle:e.notify_url?()=>l(e=>{let t=new Set(e);return t.has(u)?t.delete(u):t.add(u),t}):void 0},{label:i(),value:e.ip_whitelist||`-`},{label:ie(),value:we(e.call_count??0,0)},{label:fe(),value:F(e.last_used_at)||_e()},{label:le(),value:F(e.updated_at)||`-`}];return(0,Q.jsx)(`li`,{className:`rounded-lg border hover:shadow-md`,children:(0,Q.jsxs)(`div`,{className:`flex h-full flex-col overflow-hidden p-4`,children:[(0,Q.jsxs)(`div`,{className:`mb-6 flex items-center justify-between`,children:[(0,Q.jsx)(`div`,{className:`min-w-0`,children:(0,Q.jsx)(`h2`,{className:`truncate font-semibold`,children:e.name||e.pid||`#${e.id}`})}),(0,Q.jsx)(ke,{checked:t,onCheckedChange:()=>n(t?`disable`:`enable`,e)})]}),(0,Q.jsxs)(`div`,{className:`mb-6 flex-1 space-y-2 text-muted-foreground text-sm`,children:[(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Q.jsx)(`span`,{className:`w-16 shrink-0 text-foreground/80`,children:`PID`}),(0,Q.jsx)(`span`,{className:`min-w-0 flex-1 break-all`,children:e.pid??`-`})]}),h.filter(e=>e.label!==`PID`).map(e=>(0,Q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Q.jsx)(`span`,{className:`w-16 shrink-0 text-foreground/80`,children:e.label}),(0,Q.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-start gap-2`,children:[(0,Q.jsx)(`span`,{className:`min-w-0 flex-1 break-all`,children:e.value}),e.onCopy&&(0,Q.jsx)(I,{className:`size-8 shrink-0`,onClick:e.onCopy,size:`icon-sm`,variant:`ghost`,children:(0,Q.jsx)(Ae,{className:`h-4.5 w-4.5`})}),e.onToggle&&(0,Q.jsx)(I,{className:`size-8 shrink-0`,onClick:e.onToggle,size:`icon-sm`,variant:`ghost`,children:e.visible?(0,Q.jsx)(Me,{className:`h-4.5 w-4.5`}):(0,Q.jsx)(Ne,{className:`h-4.5 w-4.5`})})]})]},e.label))]}),(0,Q.jsx)(`div`,{className:`-mx-4 mt-auto -mb-4 border-t`,children:(0,Q.jsxs)(`div`,{className:`grid grid-cols-3`,children:[(0,Q.jsxs)(I,{className:`h-11 w-full rounded-none border-r px-0 text-muted-foreground hover:bg-muted/60 hover:text-foreground`,onClick:()=>n(`edit`,e),size:`sm`,variant:`ghost`,children:[(0,Q.jsx)(rt,{className:`h-4 w-4`}),T()]}),(0,Q.jsxs)(I,{className:`h-11 w-full rounded-none border-r px-0 text-muted-foreground hover:bg-muted/60 hover:text-foreground`,onClick:()=>n(`rotate-secret`,e),size:`sm`,variant:`ghost`,children:[(0,Q.jsx)(Te,{className:`h-4 w-4`}),C()]}),(0,Q.jsxs)(I,{className:`h-11 w-full rounded-none px-0 text-destructive hover:bg-destructive/8 hover:text-destructive`,onClick:()=>n(`delete`,e),size:`sm`,variant:`ghost`,children:[(0,Q.jsx)(Be,{className:`h-4 w-4 text-destructive`}),a()]})]})})]})},e.id??e.pid)})}):(0,Q.jsx)(`div`,{className:`pt-4`,children:(0,Q.jsx)(Ie,{description:O()})})}var $=Ce(`/_authenticated/keys/`),ct=new Map([[`all`,u()],[`enabled`,y()],[`disabled`,xe()]]);function lt(){let{filter:e=``,type:r=`all`,sort:i=`asc`}=$.useSearch(),a=$.useNavigate(),o=t.useQuery(`get`,`/admin/api/v1/api-keys`),s=t.useMutation(`delete`,`/admin/api/v1/api-keys/{id}`),l=t.useMutation(`post`,`/admin/api/v1/api-keys/{id}/status`),d=t.useMutation(`get`,`/admin/api/v1/api-keys/{id}/secret`),f=t.useMutation(`post`,`/admin/api/v1/api-keys/{id}/rotate-secret`),p=t.useMutation(`get`,`/admin/api/v1/api-keys/{id}/stats`),[m,h]=(0,Z.useState)(!1),[ee,g]=(0,Z.useState)(null),[_,b]=(0,Z.useState)(null),[x,S]=(0,Z.useState)(null),[C,w]=(0,Z.useState)({}),[T,E]=(0,Z.useState)(i),[D,le]=(0,Z.useState)(r),[O,k]=(0,Z.useState)(e);async function A(){await n.invalidateQueries({queryKey:[`get`,`/admin/api/v1/api-keys`]})}async function j(){if(!_?.row.id)return;let e=_.row.id;_.action===`delete`?(await s.mutateAsync({params:{path:{id:e}}}),U.success(c())):(_.action===`enable`||_.action===`disable`)&&(await l.mutateAsync({params:{path:{id:e}},body:{status:_.action===`enable`?1:2}}),U.success(ne())),await A(),b(null)}function M(e){return String(e.id??e.pid??``)}async function P(e,t){let n=M(e),r=t?.visible??C[n]?.visible??!1;w(e=>({...e,[n]:{loading:!0,value:e[n]?.value??``,visible:r}}));try{let t=await d.mutateAsync({params:{path:{id:e.id}}}),i=typeof t.data==`object`&&t.data&&`secret_key`in t.data?String(t.data.secret_key??``):``;return w(e=>({...e,[n]:{loading:!1,value:i||`-`,visible:r}})),i||`-`}catch{return w(e=>({...e,[n]:{loading:!1,value:e[n]?.value??``,visible:r}})),U.error(v()),null}}async function Ce(e){if(!e.id){U.error(N());return}let t=M(e),n=C[t];if(n?.visible){w(e=>({...e,[t]:{...n,visible:!1}}));return}if(n?.value){w(e=>({...e,[t]:{...n,visible:!0}}));return}await P(e,{visible:!0})}async function F(e){if(!e.id){U.error(N());return}let t=M(e),n=C[t]?.value??``;if(n||=await P(e,{visible:C[t]?.visible??!1})??``,!n||n===`-`){U.error(ae());return}(0,it.default)(n),U.success(Se())}async function Te(e){let t=await f.mutateAsync({params:{path:{id:e.id}}}),n=M(e);w(e=>({...e,[n]:{loading:!1,value:t.data?.secret_key??`-`,visible:!0}})),U.success(be()),await A()}async function ke(e){let t=await p.mutateAsync({params:{path:{id:e.id}}});S({apiKey:e.pid??`#${e.id}`,stats:t.data??{}})}async function V(e,t){if(!t.id){U.error(N());return}if(e===`edit`){g(t),h(!0);return}if(e===`delete`){b({action:e,row:t});return}switch(e){case`enable`:case`disable`:await l.mutateAsync({params:{path:{id:t.id}},body:{status:e===`enable`?1:2}}),U.success(ne()),await A();break;case`rotate-secret`:await Te(t);break;case`view-stats`:await ke(t);break;default:break}}let H=[...o.data?.data??[]].sort((e,t)=>{let n=(e.name??e.pid??`#${e.id??``}`).toLowerCase(),r=(t.name??t.pid??`#${t.id??``}`).toLowerCase();return T===`asc`?n.localeCompare(r):r.localeCompare(n)}).filter(e=>D===`enabled`?e.status===1:D===`disabled`?e.status!==1:!0).filter(e=>{let t=O.trim().toLowerCase();return t?(e.pid??``).toLowerCase().includes(t)||(e.name??``).toLowerCase().includes(t)||(e.notify_url??``).toLowerCase().includes(t):!0});return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(Le,{}),(0,Q.jsxs)(Re,{fixed:!0,children:[(0,Q.jsx)(Qe,{actions:(0,Q.jsxs)(I,{onClick:()=>{g(null),h(!0)},children:[(0,Q.jsx)(ze,{className:`mr-2 h-4 w-4`}),re()]}),description:ue(),title:de()}),(0,Q.jsxs)(`div`,{className:`my-4 flex items-end justify-between sm:my-0 sm:items-center`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4 sm:my-4 sm:flex-row`,children:[(0,Q.jsx)(X,{className:`h-9 w-40 lg:w-62.5`,onChange:e=>{k(e.target.value),a({search:t=>({...t,filter:e.target.value||void 0})})},placeholder:me(),value:O}),(0,Q.jsxs)(De,{onValueChange:e=>{le(e),a({search:t=>({...t,type:e===`all`?void 0:e})})},value:D,children:[(0,Q.jsx)(R,{className:`w-36`,children:(0,Q.jsx)(L,{children:ct.get(D)})}),(0,Q.jsxs)(z,{children:[(0,Q.jsx)(B,{value:`all`,children:u()}),(0,Q.jsx)(B,{value:`enabled`,children:y()}),(0,Q.jsx)(B,{value:`disabled`,children:xe()})]})]})]}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsxs)(I,{onClick:A,variant:`outline`,children:[(0,Q.jsx)(Fe,{className:`mr-2 h-4 w-4`}),te()]}),(0,Q.jsxs)(De,{onValueChange:e=>{E(e),a({search:t=>({...t,sort:e})})},value:T,children:[(0,Q.jsx)(R,{className:`w-16`,children:(0,Q.jsx)(L,{children:(0,Q.jsx)(Pe,{size:18})})}),(0,Q.jsxs)(z,{align:`end`,children:[(0,Q.jsx)(B,{value:`asc`,children:(0,Q.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,Q.jsx)(nt,{size:16}),(0,Q.jsx)(`span`,{children:ge()})]})}),(0,Q.jsx)(B,{value:`desc`,children:(0,Q.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,Q.jsx)(tt,{size:16}),(0,Q.jsx)(`span`,{children:ce()})]})})]})]})]})]}),(0,Q.jsx)(Oe,{className:`shadow-sm`}),(0,Q.jsx)(st,{data:H,isLoading:o.isLoading,onAction:V,onCopySecret:F,onToggleSecret:Ce,secretStates:C})]}),(0,Q.jsx)(ot,{currentRow:ee,onOpenChange:e=>{h(e),e||g(null)},onSuccess:()=>o.refetch(),open:m}),_&&(0,Q.jsx)(Ee,{confirmText:_.action===`delete`?se():ye(),desc:(0,Q.jsx)(`span`,{children:pe({target:String(_.row.pid??_.row.id??``),action:_.action})}),destructive:_.action===`delete`,handleConfirm:j,onOpenChange:()=>b(null),open:!0,title:_.action===`delete`?oe():ve()}),(0,Q.jsx)(qe,{onOpenChange:()=>S(null),open:!!x,children:(0,Q.jsxs)(We,{children:[(0,Q.jsxs)(Ue,{children:[(0,Q.jsxs)(Ge,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(Ve,{className:`h-4 w-4`}),he()]}),(0,Q.jsx)(Ke,{children:x?.apiKey})]}),(0,Q.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:[(0,Q.jsxs)(`div`,{className:`rounded-lg border p-4`,children:[(0,Q.jsxs)(`div`,{className:`mb-2 flex items-center gap-2 text-muted-foreground text-sm`,children:[(0,Q.jsx)(Ne,{className:`h-4 w-4`}),` `,ie()]}),(0,Q.jsx)(`div`,{className:`font-semibold text-2xl`,children:we(x?.stats.call_count??0,0)})]}),(0,Q.jsxs)(`div`,{className:`rounded-lg border p-4`,children:[(0,Q.jsxs)(`div`,{className:`mb-2 flex items-center gap-2 text-muted-foreground text-sm`,children:[(0,Q.jsx)(Fe,{className:`h-4 w-4`}),` `,fe()]}),(0,Q.jsx)(`div`,{className:`font-medium text-sm`,children:x?.stats.last_used_at??_e()})]})]})]})})]})}var ut=lt;export{ut as component}; |