PageSourceSearch

https://cuberouter.com/static/js/async/1644.94cc1f304b.js

js cuberouter.com collected 2026-10-09 22:58:12 UTC 116,616 bytes, 5 lines download raw bytes

1"use strict";(self.rspackChunknewapi_web=self.rspackChunknewapi_web||[]).push([[1644],{28079(e,n,a){var t=a(72361),i=a(56275);function s(e){return(0,t.jsx)("span",{className:(0,i.cn)("text-muted-foreground inline-block font-mono tabular-nums",e.className),children:e.value})}a.d(n,{C:()=>s})},61946(e,n,a){var t=a(72361),i=a(68413),s=a(2946),r=a(69241),l=a(1622),o=a(56275);let c={light:"",dark:".dark"},d={width:320,height:200},u=i.createContext(null);function m(e){let{id:n,className:a,children:r,config:l,initialDimension:c=d,...m}=e,g=i.useId(),x=`chart-${n??g.replace(/:/g,"")}`;return(0,t.jsx)(u.Provider,{value:{config:l},children:(0,t.jsxs)("div",{"data-slot":"chart","data-chart":x,className:(0,o.cn)("[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden",a),...m,children:[(0,t.jsx)(h,{id:x,config:l}),(0,t.jsx)(s.u,{initialDimension:c,children:r})]})})}let h=e=>{let{id:n,config:a}=e,i=Object.entries(a).filter(e=>{let[,n]=e;return n.theme??n.color});return i.length?(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:Object.entries(c).map(e=>{let[a,t]=e;return`
2${t} [data-chart=${n}] {
3${i.map(e=>{let[n,t]=e,i=t.theme?.[a]??t.color;return i?`  --color-${n}: ${i};`:null}).join("\n")}
4}
5`}).join("\n")}}):null},g=r.m;function x(e){let{active:n,payload:a,className:s,indicator:r="dot",hideLabel:l=!1,hideIndicator:c=!1,label:d,labelFormatter:m,labelClassName:h,formatter:g,color:x,nameKey:j,labelKey:b}=e,{config:v}=function(){let e=i.useContext(u);if(!e)throw Error("useChart must be used within a <ChartContainer />");return e}(),y=i.useMemo(()=>{if(l||!a?.length)return null;let[e]=a,n=`${b??e?.dataKey??e?.name??"value"}`,i=p(v,e,n),s=b||"string"!=typeof d?i?.label:v[d]?.label??d;return m?(0,t.jsx)("div",{className:(0,o.cn)("font-medium",h),children:m(s,a)}):s?(0,t.jsx)("div",{className:(0,o.cn)("font-medium",h),children:s}):null},[d,m,a,l,h,v,b]);if(!n||!a?.length)return null;let f=1===a.length&&"dot"!==r;return(0,t.jsxs)("div",{className:(0,o.cn)("border-border/50 bg-background grid min-w-32 items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl",s),children:[f?null:y,(0,t.jsx)("div",{className:"grid gap-1.5",children:a.filter(e=>"none"!==e.type).map((e,n)=>{let a=`${j??e.name??e.dataKey??"value"}`,i=p(v,e,a),s=x??e.payload?.fill??e.color;return(0,t.jsx)("div",{className:(0,o.cn)("[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5","dot"===r&&"items-center"),children:g&&e?.value!==void 0&&e.name?g(e.value,e.name,e,n,e.payload):(0,t.jsxs)(t.Fragment,{children:[i?.icon?(0,t.jsx)(i.icon,{}):!c&&(0,t.jsx)("div",{className:(0,o.cn)("shrink-0 rounded-sm border-(--color-border) bg-(--color-bg)",{"h-2.5 w-2.5":"dot"===r,"w-1":"line"===r,"w-0 border-[1.5px] border-dashed bg-transparent":"dashed"===r,"my-0.5":f&&"dashed"===r}),style:{"--color-bg":s,"--color-border":s}}),(0,t.jsxs)("div",{className:(0,o.cn)("flex flex-1 justify-between leading-none",f?"items-end":"items-center"),children:[(0,t.jsxs)("div",{className:"grid gap-1.5",children:[f?y:null,(0,t.jsx)("span",{className:"text-muted-foreground",children:i?.label??e.name})]}),null!=e.value&&(0,t.jsx)("span",{className:"text-foreground font-mono font-medium tabular-nums",children:"number"==typeof e.value?e.value.toLocaleString():String(e.value)})]})]})},n)})})]})}function p(e,n,a){if("object"!=typeof n||null===n)return;let t="payload"in n&&"object"==typeof n.payload&&null!==n.payload?n.payload:void 0,i=a;return a in n&&"string"==typeof n[a]?i=n[a]:t&&a in t&&"string"==typeof t[a]&&(i=t[a]),i in e?e[i]:e[a]}l.s,a.d(n,{Nt:()=>x,at:()=>m},{II:g})},82512(e,n,a){var t=a(72361),i=a(68413),s=a(39649),r=a(97785),l=a(56275
5);let o={"accent-1":"from-overview-accent-1/80 via-overview-accent-1/45 to-overview-accent-1/5 dark:from-overview-accent-1/70 dark:via-overview-accent-1/30","accent-2":"from-overview-accent-2/80 via-overview-accent-2/45 to-overview-accent-2/5 dark:from-overview-accent-2/70 dark:via-overview-accent-2/30","accent-3":"from-overview-accent-3/80 via-overview-accent-3/45 to-overview-accent-3/5 dark:from-overview-accent-3/70 dark:via-overview-accent-3/30"},c={"accent-1":"text-overview-accent-1","accent-2":"text-overview-accent-2","accent-3":"text-overview-accent-3"},d={"accent-1":"chart-1","accent-2":"chart-2","accent-3":"chart-3"},u={default:"text-foreground",muted:"text-muted-foreground",success:"text-success",warning:"text-warning",destructive:"text-destructive"};function m(e){let n=(0,i.useId)(),a=`stat-card-line-${n.replaceAll(":","")}`,s=function(e){if(!e?.length)return null;let n=e.map(e=>Math.max(0,Number(e)||0)),a=Math.max(...n),t=Math.min(...n),i=a-t,s=n.map((e,s)=>{let r=1===n.length?80:s/(n.length-1)*160,l=0;return i>0?l=(e-t)/i:a>0&&(l=.5),{x:r,y:33-30*l}}),r=s.map((e,n)=>`${0===n?"M":"L"} ${e.x} ${e.y}`).join(" "),l=s.at(0),o=s.at(-1);return l&&o?{areaPath:`${r} L ${o.x} 36 L ${l.x} 36 Z`,linePath:r}:null}(e.values);return s?(0,t.jsx)("div",{className:(0,l.cn)("relative h-8 overflow-hidden rounded-lg",c[e.tone]),"aria-hidden":"true",children:(0,t.jsxs)("svg",{viewBox:"0 0 160 36",preserveAspectRatio:"none",className:"size-full",children:[(0,t.jsx)("defs",{children:(0,t.jsxs)("linearGradient",{id:a,x1:"0",x2:"0",y1:"0",y2:"1",children:[(0,t.jsx)("stop",{offset:"0%",stopColor:"currentColor",stopOpacity:"0.24"}),(0,t.jsx)("stop",{offset:"100%",stopColor:"currentColor",stopOpacity:"0"})]})}),(0,t.jsx)("path",{d:s.areaPath,fill:`url(#${a})`}),(0,t.jsx)("path",{d:s.linePath,fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2.25",vectorEffect:"non-scaling-stroke"})]})}):(0,t.jsx)("div",{className:"h-8","aria-hidden":"true"})}function h(e){let n=function(e){if(!e?.length)return[];let n=e.map(e=>Math.max(0,Number(e)||0)),a=Math.max(...n);return a<=0?n.map((e,n)=>({position:n,height:0})):n.map((e,n)=>({position:n,height:Math.max(8,e/a*100)}))}(e.values);return(0,t.jsx)("div",{className:"flex h-8 items-end gap-1","aria-hidden":"true",children:n.map(n=>(0,t.jsx)("span",{className:(0,l.cn)("flex-1 rounded-t-sm bg-linear-to-t",n.height<=0&&"opacity-20",o[e.tone]),style:{height:`${n.height}%`}},n.position))})}function g(e){return(0,t.jsx)("div",{className:"grid grid-cols-2 gap-2",children:e.details.map(e=>(0,t.jsxs)("div",{className:"bg-muted/40 rounded-lg border border-transparent px-2.5 py-2",children:[(0,t.jsx)("div",{className:"text-muted-foreground truncate text-[11px] leading-none font-medium",children:e.label}),(0,t.jsx)("div",{className:(0,l.cn)("mt-1.5 truncate text-xs font-semibold tabular-nums",u[e.tone??"default"]),title:e.value,children:e.value})]},e.label))})}function x(e){let n,a,i=e.icon,o=e.tone??"accent-3",c=e.iconTone??d[o],u=e.sparklineVariant??"bars";return n=e.loading?(0,t.jsxs)("div",{className:(0,l.cn)("flex flex-col",e.compactMobile?"gap-1":"gap-1.5"),children:[(0,t.jsx)(r.E,{className:"h-5 w-16 sm:h-7 sm:w-24"}),(0,t.jsx)(r.E,{className:(0,l.cn)("h-3 w-24 sm:h-3.5 sm:w-32",e.compactMobile&&"hidden sm:block")})]}):e.error?(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,t.jsx)("div",{className:"text-muted-foreground mt-0.5 font-mono text-base font-bold tracking-tight break-all tabular-nums sm:text-2xl",children:"--"}),(0,t.jsx)("p",{className:(0,l.cn)("text-muted-foreground/60 line-clamp-1 text-[11px] sm:text-xs",e.compactMobile&&"hidden sm:block"),children:e.description})]}):(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,t.jsx)("div",{className:"text-foreground font-mono text-base font-semibold tracking-tight break-all tabular-nums sm:text-2xl",children:e.value}),(0,t.jsx)("p",{className:(0,l.cn)("text-muted-foreground/60 line-clamp-1 text-[11px] leading-relaxed sm:text-xs",e.compactMobile&&"hidden sm:block"),children:e.description})]}),a=e.details?.length?(0,t.jsx)(g,{details:e.details}):"line"===u?(0,t.jsx)(m,{values:e.sparkline,tone:o}):(0,t.jsx)(h,{values:e.sparkline,tone:o}),(0,t.jsxs)("div",{className:(0,l.cn)("group flex flex-col justify-between sm:min-h-32 sm:gap-3",e.compactMobile?"gap-1":"gap-1.5"),children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-1",children:[(0,t.jsxs)("div",{className:"text-muted-foreground flex items-center gap-1 text-[11px] font-medium sm:gap-2 sm:text-xs",children:[(0,t.jsx)(s.f,{tone:c,size:"stat",className:(0,l.cn)(e.compactMobile&&"size-4 rounded-sm [&>
5svg]:size-2.5 sm:size-7 sm:rounded-md sm:[&>svg]:size-3.5"),children:(0,t.jsx)(i,{})}),(0,t.jsx)("span",{className:"line-clamp-1 leading-snug sm:line-clamp-2",children:e.title})]}),e.action&&(0,t.jsx)("div",{className:"shrink-0",children:e.action})]}),n,(0,t.jsx)("div",{className:"hidden sm:block",children:a})]})}a.d(n,{h:()=>x})},29420(e,n,a){var t=a(72361),i=a(42817),s=a(28079),r=a(47303),l=a(33271),o=a(92609);function c(e){return[{accessorKey:"id",header:e("ID"),enableSorting:!1,enableHiding:!1,size:90,cell:e=>{let{row:n}=e;return(0,t.jsx)(s.C,{value:n.original.id,className:"w-[60px]"})}},{accessorKey:"created_at",header:e("Time"),enableSorting:!1,size:180,cell:e=>{let{row:n}=e;return(0,t.jsx)("span",{className:"text-muted-foreground text-sm whitespace-nowrap",children:n.original.created_at?(0,l.Ey)(n.original.created_at):"-"})}},{accessorKey:"action_type",header:e("Action"),enableSorting:!1,size:190,cell:n=>{let{row:a}=n;return(0,t.jsx)(i.Wh,{label:e((0,o.iR)(a.original.action_type)),variant:(0,o.x$)(a.original.action_type),copyable:!1})}},{accessorKey:"operator_username",header:e("Operator"),enableSorting:!1,size:170,cell:e=>{let{row:n}=e;return(0,t.jsx)("span",{className:"font-medium whitespace-nowrap",children:n.original.operator_display_name||n.original.operator_username||"-"})}},{accessorKey:"target_type",header:e("Target Type"),enableSorting:!1,size:150,cell:n=>{let{row:a}=n;return(0,t.jsx)(i.Wh,{label:e((0,o.on)(a.original.target_type)),variant:(0,o.Ck)(a.original.target_type),copyable:!1})}},{accessorKey:"target_id",header:e("Target"),enableSorting:!1,size:280,cell:n=>{var a;let{row:i}=n;return 0===(a=(0,o.tJ)(e,i.original)).details.length?(0,t.jsx)("span",{className:"text-sm",children:a.main}):(0,t.jsx)(r.Bc,{delay:150,children:(0,t.jsxs)(r.m_,{children:[(0,t.jsx)(r.k$,{render:(0,t.jsx)("span",{className:"text-primary inline-flex max-w-full cursor-help truncate align-middle text-sm"}),children:a.main}),(0,t.jsx)(r.ZI,{className:"max-w-[360px]",children:(0,t.jsx)("div",{className:"flex flex-col gap-1",children:a.details.map(e=>(0,t.jsxs)("div",{className:"flex min-w-0 gap-2",children:[(0,t.jsx)("span",{className:"shrink-0 opacity-70",children:e.label}),(0,t.jsx)("span",{className:e.nowrap?"whitespace-nowrap":"break-all",children:e.value})]},e.label))})})]})})}},{accessorKey:"reason",header:e("Reason"),enableSorting:!1,size:180,cell:n=>{let{row:a}=n,i=(0,o.Uf)(e,a.original.reason);return"-"===i?(0,t.jsx)("span",{className:"text-muted-foreground",children:"-"}):(0,t.jsx)("span",{className:"text-sm",children:i})}}]}a.d(n,{S:()=>c})},28701(e,n,a){var t=a(72361),i=a(48367),s=a(15762),r=a(38766),l=a(55724),o=a(68413),c=a(86832),d=a(6702),u=a(20598),m=a(25732),h=a(73280),g=a(60641),x=a(72868),p=a(36710),j=a(1738),b=a(88288),v=a(70954),y=a(42115),f=a(29310),_=a(25531),k=a(74784),z=a(92609),w=a(41042);let N="organization-add-member-form",C="organization-remove-member-form",I="organization-demote-member-form";function S(e){let n=e.username||e.display_name||e.email||String(e.id);return{value:e.id,label:e.email?`${n} \xb7 ${e.email}`:n}}function R(e){let{t:n}=(0,d.Bd)(),[a,i]=(0,o.useState)(""),[c,u]=(0,o.useState)([]),[m,h]=(0,o.useState)(null),[g,p]=(0,o.useState)(!1);return((0,o.useEffect)(()=>{let e=a.trim();if(!e){u([]),p(!1);return}let n=!0;p(!0);let t=setTimeout(()=>{(async()=>{try{let a=await (0,y.x5)({keyword:e,p:1,page_size:20});if(!n)return;u((a.data?.items??[]).map(S))}catch{if(!n)return;u([])}finally{n&&p(!1)}})()},300);return()=>{n=!1,clearTimeout(t)}},[a]),m)?(0,t.jsxs)("div",{className:"border-input flex items-center justify-between gap-2 rounded-md border px-3 py-2 text-sm",children:[(0,t.jsx)("span",{className:"truncate",children:m.label}),(0,t.jsxs)(x.$,{type:"button",size:"icon",variant:"ghost",className:"size-6 shrink-0",onClick:()=>{h(null),e.onChange(void 0)},children:[(0,t.jsx)(s.A,{className:"size-3.5"}),(0,t.jsx)("span",{className:"sr-only",children:n("Clear")})]})]}):(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(r.A,{className:"text-muted-foreground pointer-events-none absolute top-1/2 left-3 size-4 -translate-y-1/2"}),(0,t.jsx)(j.p,{value:a,onChange:e=>i(e.target.value),placeholder:n("Search username, display name, or email"),className:"pl-9"}),g?(0,t.jsx)(l.A,{className:"text-muted-foreground absolute top-1/2 right-3 size-4 -translate-y-1/2 animate-spin"}):null]}),c.length>0?(0,t.jsx)("ul",{className:"border-border max-h-48 overflow-y-auto rounded-md border",children:c.map(n=>(0,t.jsx)("li",{children:(0,t.jsx)("button",{type:"button",className:"hover:bg-accent w-full px-3 py-2 text-start text-sm",onClick:()=>{h(n),e.onChange(n.value),i(""),u([])},children:n.label})},n.value))}):null]})}function F(e){let{t:n}=(0,d.Bd)(),a=[{value:"",label:e.emptyOptionLabel},...e.options.map(e=>({value:String(e.value),label:e.label}))];return(0,t.jsx)(p.zB,{control:e.control,name:"transfer_to_user_id",render:i=>{let{field:s}=i;return(0,t.jsxs)(p.eI,{children:[(0,t.jsx)(p.lR,{children:n("Transfer responsible API keys to")}),(0,t.jsxs)(b.l6,{items:a,value:void 0===s.value?"":String(s.value),onValueChange:e=>s.onChange(""===e||null===e?void 0:Number(e)),disabled:e.isLoading,children:[(0,t.jsx)(p.MJ,{children:(0,t.jsx)(b.bq,{className:"w-full",children:(0,t.jsx)(b.yv,{placeholder:n("Select a member")})})}),(0,t.jsx)(b.gC,{children:a.map(e=>(0,t.jsx)(b.eb,{value:e.value,children:e.label},e.value))})]}),(0,t.jsx)(p.Rr,{children:n("Only active owners and administrators can take over API keys.")}),(0,t.jsx)(p.C5,{})]})}})}let A=m.Ik({user_id:m.ai({error:"Select a user."}),role:m.k5(["admin","member"]),reason:m.Yj().optional()});function T(e){let{t:n}=(0,d.Bd)(),[a,s]=(0,o.useState)(!1),r=(0,c.mN)({resolver:(0,i.u)(A),defaultValues:{user_id:void 0,role:"member",reason:""}}),m=async a=>{s(!0);try{let t=await (0,f.n5)(e.organizationId,{user_id:a.user_id,role:a.role,reason:(a.reason??"").trim()});if(!t.success)return void u.oR.error(t.message||n("Failed to add the member"));u.oR.success(n("Member added")),e.onOpenChange(!1),await e.onAdded()}finally{s(!1)}},h=_.Up.map(e=>({value:e,label:n((0,_.Xk)(e))}));return(0,t.jsx)(g.l,{open:e.open,onOpenChange:n=>{n&&r.reset({user_id:void 0,role:"member",reason:""}),e.onOpenChange(n)},title:n("Add member"),description:n("The user joins immediately, without an invitation. The action is recorded in the audit trail."),bodyClassName:"space-y-4",footer:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(x.$,{type:"button",variant:"outline",onClick:()=>e.onOpenChange(!1),disabled:a,children:n("Cancel")}),(0,t.jsxs)(x.$,{type:"submit",form:N,disabled:a,children:[a?(0,t.jsx)(l.A,{className:"animate-spin"}):null,a?n("Adding..."):n("Add")]})]}),children:(0,t.jsx)(p.lV,{...r,children:(0,t.jsxs)("form",{id:N,onSubmit:r.handleSubmit(m),className:"space-y-4",children:[(0,t.jsx)(p.zB,{control:r.control,name:"user_id",render:a=>{let{field:i}=a;return(0,t.jsxs)(p.eI,{children:[(0,t.jsx)(p.lR,{children:n("User")}),(0,t.jsx)(R,{value:i.value,onChange:i.onChange},String(e.open)),(0,t.jsx)(p.Rr,{children:n("Search the platform user directory.")}),(0,t.jsx)(p.C5,{})]})}}),(0,t.jsx)(p.zB,{control:r.control,name:"role",render:e=>{let{field:a}=e;return(0,t.jsxs)(p.eI,{children:[(0,t.jsx)(p.lR,{children:n("Role")}
5),(0,t.jsxs)(b.l6,{items:h,value:a.value,onValueChange:a.onChange,children:[(0,t.jsx)(p.MJ,{children:(0,t.jsx)(b.bq,{className:"w-full",children:(0,t.jsx)(b.yv,{})})}),(0,t.jsx)(b.gC,{children:h.map(e=>(0,t.jsx)(b.eb,{value:e.value,children:e.label},e.value))})]}),(0,t.jsx)(p.C5,{})]})}}),(0,t.jsx)(p.zB,{control:r.control,name:"reason",render:e=>{let{field:a}=e;return(0,t.jsxs)(p.eI,{children:[(0,t.jsx)(p.lR,{children:n("Reason")}),(0,t.jsx)(p.MJ,{children:(0,t.jsx)(v.T,{rows:3,placeholder:n("Enter operation reason (optional)"),...a,value:a.value??""})}),(0,t.jsx)(p.C5,{})]})}})]})})})}let O=m.Ik({transfer_to_user_id:m.ai().optional(),reason:m.Yj().min(1,"Enter an operation reason.")});function M(e){let{t:n}=(0,d.Bd)(),a=(0,w.mn)(),[s,r]=(0,o.useState)(!1),m=e.member,{options:h,isLoading:j}=(0,k.T)(a,e.organizationId,m?.user_id,null!==m),b=(0,c.mN)({resolver:(0,i.u)(O),defaultValues:{transfer_to_user_id:void 0,reason:""}});if(!m)return null;let y=async t=>{r(!0);try{let i=await (0,f.o5)(a,e.organizationId,m.user_id,{transfer_to_user_id:t.transfer_to_user_id,reason:t.reason.trim()});if(!i.success)return void u.oR.error(i.message||n("Failed to remove the member"));u.oR.success(n("Member removed")),e.onOpenChange(!1),await e.onRemoved()}finally{r(!1)}};return(0,t.jsxs)(g.l,{open:!0,onOpenChange:n=>{n||e.onOpenChange(!1)},title:n("Remove member"),description:n("The member loses access immediately. Leave the transfer target empty to move their public API keys to the owner and delete their private ones."),bodyClassName:"space-y-4",footer:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(x.$,{type:"button",variant:"outline",onClick:()=>e.onOpenChange(!1),disabled:s,children:n("Cancel")}),(0,t.jsxs)(x.$,{type:"submit",form:C,variant:"destructive",disabled:s,children:[s?(0,t.jsx)(l.A,{className:"animate-spin"}):null,s?n("Removing..."):n("Remove")]})]}),children:[(0,t.jsxs)("dl",{className:"grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 text-sm",children:[(0,t.jsx)("dt",{className:"text-muted-foreground",children:n("Username")}),(0,t.jsx)("dd",{className:"truncate",children:m.username||"-"}),(0,t.jsx)("dt",{className:"text-muted-foreground",children:n("Email")}),(0,t.jsx)("dd",{className:"truncate",children:m.email||"-"}),(0,t.jsx)("dt",{className:"text-muted-foreground",children:n("Role")}),(0,t.jsx)("dd",{children:n((0,_.Xk)(m.role))})]}),(0,t.jsx)(p.lV,{...b,children:(0,t.jsxs)("form",{id:C,onSubmit:b.handleSubmit(y),className:"space-y-4",children:[(0,t.jsx)(F,{control:b.control,options:h,isLoading:j,emptyOptionLabel:n("Move public API keys to the owner and delete private ones")}),(0,t.jsx)(p.zB,{control:b.control,name:"reason",render:e=>{let{field:a}=e;return(0,t.jsxs)(p.eI,{children:[(0,t.jsx)(p.lR,{children:n("Reason")}),(0,t.jsx)(p.MJ,{children:(0,t.jsx)(v.T,{rows:3,placeholder:n("Enter operation reason"),...a})}),(0,t.jsx)(p.C5,{})]})}})]})})]})}let K=m.Ik({transfer_to_user_id:m.ai().optional(),reason:m.Yj().optional()});function q(e){let{t:n}=(0,d.Bd)(),a=(0,w.mn)(),[s,r]=(0,o.useState)(!1),m=e.member,{options:h,isLoading:j}=(0,k.T)(a,e.organizationId,m?.user_id,null!==m),b=(0,c.mN)({resolver:(0,i.u)(K),defaultValues:{transfer_to_user_id:void 0,reason:""}});if(!m)return null;let y=async t=>{r(!0);try{let i=await (0,f.bR)(a,e.organizationId,m.user_id,(0,z.zk)(m,"member",{transferToUserId:t.transfer_to_user_id,reason:t.reason}));if(!i.success)return void u.oR.error(i.message||n("Failed to update the member"));u.oR.success(n("Member updated")),e.onOpenChange(!1),await e.onDemoted()}finally{r(!1)}};return(0,t.jsx)(g.l,{open:!0,onOpenChange:n=>{n||e.onOpenChange(!1)},title:n("Demote administrator"),description:n("The administrator becomes a member. Leave the transfer target empty to transfer their responsible API keys to the organization owner."),bodyClassName:"space-y-4",footer:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(x.$,{type:"button",variant:"outline",onClick:()=>e.onOpenChange(!1),disabled:s,children:n("Cancel")}),(0,t.jsxs)(x.$,{type:"submit",form:I,disabled:s,children:[s?(0,t.jsx)(l.A,{className:"animate-spin"}):null,s?n("Saving..."):n("Demote")]})]}),children:(0,t.jsx)(p.lV,{...b,children:(0,t.jsxs)("form",{id:I,onSubmit:b.handleSubmit(y),className:"space-y-4",children:[(0,t.jsx)(F,{control:b.control,options:h,isLoading:j,emptyOptionLabel:n("Transfer responsible API keys to the owner")}),(0,t.jsx)(p.zB,{control:b.control,name:"reason",render:e=>{let{field:a}=e;return(0,t.jsxs)(p.eI,{children:[(0,t.jsx)(p.lR,{children:n("Reason")}),(0,t.jsx)(p.MJ,{children:(0,t.jsx)(v.T,{rows:3,placeholder:n("Enter operation reason (optional)"),...a,value:a.value??""})}),(0,t.jsx)(p.C5,{})]})}})]})})})}let V="organization-edit-member-form",L=m.Ik({role:m.k5(["admin","member"]),status:m.k5(["active","disabled"]),transfer_to_user_id:m.ai().optional(),reason:m.Yj().trim().min(1,"Enter an operation reason.")}),D={role:"member",status:"active",transfer_to_user_id:void 0,reason:""};function P(e){let{t:n}=(0,d.Bd)(),a=(0,w.mn)(),[s,r]=(0,o.useState)(!1),m=e.member,h=(0,c.mN)({resolver:(0,i.u)(L),defaultValues:D});(0,o.useEffect)(()=>{m&&h.reset({role:"member"===m.role?"member":"admin",status:"disabled"===m.status?"disabled":"active",transfer_to_user_id:void 0,reason:""})},[m,h]);let j=h.watch("role"),y=h.watch("status"),N=!!m&&(0,z.tc)(m,j),{options:C,isLoading:I}=(0,k.T)(a,e.organizationId,m?.user_id,null!==m&&N);if(!m)return null;let S=j!==m.role||y!==m.status,R="disabled"===m.status&&"platform"===m.disabled_source,A=async t=>{let i={reason:t.reason.trim()};if(t.role!==m.role&&(i.role=t.role),t.status!==m.status&&(i.status=t.status),void 0!==i.role||void 0!==i.status){N&&void 0!==t.transfer_to_user_id&&(i.transfer_to_user_id=t.transfer_to_user_id),r(!0);try{let t=await (0,f.bR)(a,e.organizationId,m.user_id,i);if(!t.success)return void u.oR.error(t.message||n("Failed to update the member"));u.oR.success(n("Member updated")),e.onOpenChange(!1),await e.onUpdated()}finally{r(!1)}}},T=_.Up.map(e=>({value:e,label:n((0,_.Xk)(e))})),O=[{value:"active",label:n("Active")},{value:"disabled",label:n("Disabled")}];return(0,t.jsxs)(g.l,{open:!0,onOpenChange:n=>{n||e.onOpenChange(!1)},title:n("Edit member"),description:n("Change the role or status of this member. The change is recorded in the organization audit log."),bodyClassName:"space-y-4",footer:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(x.$,{type:"button",variant:"outline",onClick:()=>e.onOpenChange(!1),disabled:s,children:n("Cancel")}),(0,t.jsxs)(x.$,{type:"submit",form:V,disabled:s||!S,children:[s?(0,t.jsx)(l.A,{className:"animate-spin"}):null,s?n("Saving..."):n("Save")]})]}),children:[(0,t.jsxs)("dl",{className:"grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 text-sm",children:[(0,t.jsx)("dt",{className:"text-muted-foreground",children:n("Username")}),(0,t.jsx)("dd",{className:"truncate",children:m.username||"-"}),(0,t.jsx)("dt",{className:"text-muted-foreground",children:n("Email")}),(0,t.jsx)("dd",{className:"truncate",children:m.email||"-"})]}),(0,t.jsx)(p.lV,{...h,children:(0,t.jsxs)("form",{id:V,onSubmit:h.handleSubmit(A),className:"space-y-4",children:[(0,t.jsx)(p.zB,{control:h.control,name:"role",render:e=>{let{field:a}=e;return(0,t.jsxs)(p.eI,{children:[(0,t.jsx)(p.lR,{children:n("Role")}
5),(0,t.jsxs)(b.l6,{items:T,value:a.value,onValueChange:a.onChange,children:[(0,t.jsx)(p.MJ,{children:(0,t.jsx)(b.bq,{className:"w-full",children:(0,t.jsx)(b.yv,{})})}),(0,t.jsx)(b.gC,{children:T.map(e=>(0,t.jsx)(b.eb,{value:e.value,children:e.label},e.value))})]}),(0,t.jsx)(p.C5,{})]})}}),(0,t.jsx)(p.zB,{control:h.control,name:"status",render:e=>{let{field:a}=e;return(0,t.jsxs)(p.eI,{children:[(0,t.jsx)(p.lR,{children:n("Status")}),(0,t.jsxs)(b.l6,{items:O,value:a.value,onValueChange:a.onChange,children:[(0,t.jsx)(p.MJ,{children:(0,t.jsx)(b.bq,{className:"w-full",children:(0,t.jsx)(b.yv,{})})}),(0,t.jsx)(b.gC,{children:O.map(e=>(0,t.jsx)(b.eb,{value:e.value,children:e.label},e.value))})]}),"disabled"===y&&(0,t.jsx)(p.Rr,{children:n("Their API keys in this organization stop working. Disabling from here is recorded as a platform action, so the organization cannot undo it by itself.")}),(0,t.jsx)(p.C5,{})]})}}),R&&(0,t.jsx)("p",{className:"text-muted-foreground text-sm",children:n("This member was disabled by the platform. The organization cannot re-enable them by itself.")}),N&&(0,t.jsx)(F,{control:h.control,options:C,isLoading:I,emptyOptionLabel:n("Transfer responsible API keys to the owner")}),(0,t.jsx)(p.zB,{control:h.control,name:"reason",render:e=>{let{field:a}=e;return(0,t.jsxs)(p.eI,{children:[(0,t.jsx)(p.lR,{children:n("Reason")}),(0,t.jsx)(p.MJ,{children:(0,t.jsx)(v.T,{rows:3,placeholder:n("Why is this change being made?"),...a})}),(0,t.jsx)(p.Rr,{children:n("Recorded in the organization audit log.")}),(0,t.jsx)(p.C5,{})]})}})]})})]})}function B(e){let{t:n}=(0,d.Bd)(),[a,i]=(0,o.useState)(!1),s=async()=>{i(!0);try{let a=await (0,f.eF)(e.organizationId);if(!a.success)return void u.oR.error(a.message||n("Failed to leave the organization"));u.oR.success(n("Left the organization")),e.onOpenChange(!1),await e.onExited()}finally{i(!1)}};return(0,t.jsx)(h.T,{open:e.open,onOpenChange:e.onOpenChange,title:n("Leave organization"),desc:n("You will lose access to this organization immediately. Responsibility for any API keys you hold is transferred by policy."),confirmText:n("Leave"),destructive:!0,isLoading:a,handleConfirm:()=>void s()})}a.d(n,{AA:()=>B,KU:()=>M,dL:()=>T,gh:()=>P,jD:()=>q})},41042(e,n,a){var t=a(72361),i=a(68413);let s=i.createContext(null);function r(e){let n={surface:e.surface,search:e.search,navigate:e.navigate};return(0,t.jsx)(s,{value:n,children:e.children})}function l(){let e=i.useContext(s);return e?.surface??"member"}function o(){let{search:e,navigate:n}=function(){let e=i.useContext(s);if(!e)throw Error("The organization detail page hooks have to be used within <OrganizationPageProvider>");return e}();return{search:e,navigate:n}}a.d(n,{Ml:()=>r,Po:()=>o,mn:()=>l})},69322(e,n,a){var t=a(72361),i=a(97367),s=a(55989),r=a(92356),l=a(47296),o=a(95307),c=a(65253),d=a(88664),u=a(73606),m=a(76336),h=a(54622),g=a(6702),x=a(90879),p=a(72868),j=a(12393),b=a(56275);let v={overview:i.A,members:s.A,invitations:r.A,tokens:l.A,logs:o.A,usage:c.A,tasks:d.A,"audit-logs":u.A,settings:m.A};function y(e){let n=e.iconComponent??v[e.icon];return(0,t.jsxs)("div",{className:"flex h-full min-h-0 flex-col gap-3",children:[(0,t.jsxs)("div",{className:"flex shrink-0 flex-wrap items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"flex min-w-0 items-start gap-3",children:[(0,t.jsx)("div",{className:"bg-primary/10 text-primary flex h-10 w-10 shrink-0 items-center justify-center rounded-xl",children:(0,t.jsx)(n,{className:"h-5 w-5"})}),(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)("span",{className:"font-medium",children:e.title}),"number"==typeof e.count&&(0,t.jsx)(x.E,{variant:"secondary",children:e.count})]}),e.description&&(0,t.jsx)("p",{className:"text-muted-foreground mt-0.5 max-w-2xl text-sm",children:e.description})]})]}),e.actions&&(0,t.jsx)("div",{className:"flex flex-wrap items-center gap-2",children:e.actions})]}),(0,t.jsx)("div",{className:(0,b.cn)("min-h-0 flex-1",e.scroll&&"overflow-auto"),children:e.children})]})}function f(e){let n=v[e.icon];return(0,t.jsx)(j.Sv,{className:"border",children:(0,t.jsxs)(j.FT,{children:[(0,t.jsx)(j.Kr,{variant:"icon",children:(0,t.jsx)(n,{})}),(0,t.jsx)(j.cz,{children:e.title}),(0,t.jsx)(j.Ou,{children:e.message})]})})}function _(e){let{t:n}=(0,g.Bd)();return(0,t.jsxs)(p.$,{variant:"outline",size:"sm",onClick:e.onClick,disabled:e.isFetching,children:[(0,t.jsx)(h.A,{className:(0,b.cn)("h-4 w-4",e.isFetching&&"animate-spin")}),n("Refresh")]})}a.d(n,{Gx:()=>f,UD:()=>_,Zk:()=>y})},45900(e,n,a){a.d(n,{u:()=>nf});var t=a(72361),i=a(6702),s=a(92279),r=a(8803),l=a(29310),o=a(92609),c=a(53540),d=a(36028);function u(e){let{data:n,isLoading:a,isFetching:t,refetch:i}=(0,c.I)({queryKey:["organization-section",e.surface,e.resource,e.organizationId,(0,d.oD)(),e.params],queryFn:async()=>{try{let n=await e.query();return n.success?n.data:void 0}catch(n){if(n?.response?.status===403)return void e.onForbidden?.();return}},enabled:e.enabled??!0,placeholderData:e=>e});return{data:n,isLoading:a,isFetching:t,refetch:()=>{i()}}}function m(e){let n=u(e),a=n.data;return{items:a?.items??[],total:a?.total??0,isLoading:n.isLoading,isFetching:n.isFetching,refetch:n.refetch}}var h=a(29420),g=a(41042),x=a(69322);function p(e){let{t:n}=(0,i.Bd)(),a=(e,a)=>n(e,a),{search:c,navigate:d}=(0,g.Po)(),u=(0,g.mn)(),{columnFilters:p,onColumnFiltersChange:j,pagination:b,onPaginationChange:v,ensurePageInRange:y}=(0,r.c)({search:c,navigate:d,pagination:{defaultPage:1,defaultPageSize:10},globalFilter:{enabled:!1},columnFilters:[{columnId:"action_type",searchKey:"auditAction",type:"array"},{columnId:"target_type",searchKey:"auditTargetType",type:"array"}]}),f={p:b.pageIndex+1,page_size:b.pageSize,action_type:(0,o.jy)(p,"action_type"),target_type:(0,o.jy)(p,"target_type")},_=m({surface:u,organizationId:e.organizationId,resource:"audit-logs",params:f,query:()=>
5(0,l.Eq)(u,e.organizationId,{p:f.p,page_size:f.page_size,action_type:f.action_type,target_type:f.target_type}),enabled:e.canViewAudit,onForbidden:e.onForbidden}),k=(0,h.S)(a),{table:z}=(0,s.uI)({data:_.items,columns:k,columnFilters:p,onColumnFiltersChange:j,pagination:b,onPaginationChange:v,manualPagination:!0,manualFiltering:!0,totalCount:_.total,ensurePageInRange:y,columnVisibilityStorageKey:"organization-audit-column-visibility"});return e.canViewAudit?(0,t.jsx)(x.Zk,{icon:"audit-logs",title:n("Audit Logs"),description:n("Every change made to this organization, its members, its API keys and its invitations."),count:_.total,children:(0,t.jsx)(s.cx,{table:z,columns:k,isLoading:_.isLoading,isFetching:_.isFetching,emptyTitle:n("No audit records yet"),skeletonKeyPrefix:"organization-audit-skeleton",applyHeaderSize:!0,toolbarProps:{customSearch:null,hideViewOptions:!0,filters:[{columnId:"action_type",title:n("Action"),options:(0,o.pl)(a),singleSelect:!0},{columnId:"target_type",title:n("Target Type"),options:(0,o.Us)(a),singleSelect:!0}]}})}):(0,t.jsx)(x.Gx,{icon:"audit-logs",title:n("Audit Logs"),message:n("Only an organization owner or administrator can read the audit trail.")})}var j=a(56920),b=a(33834),v=a(68413),y=a(20598),f=a(42817),_=a(72868),k=a(88288),z=a(85365),w=a(11768),N=a(33271);function C(e){return(0,t.jsx)(z.Oc,{children:(0,t.jsx)(z.gX,{value:e.value??"",placeholder:e.placeholder,onChange:n=>e.onChange(n.target.value)})})}function I(e){let{t:n}=(0,i.Bd)(),a=[{value:"",label:e.allLabel},...e.options.map(e=>({value:e.value,label:n(e.label)}))];return(0,t.jsxs)(k.l6,{items:a,value:e.value??"",onValueChange:n=>e.onChange(n??""),children:[(0,t.jsx)(k.bq,{className:"h-8 w-full",size:"sm",children:(0,t.jsx)(k.yv,{placeholder:e.placeholder})}),(0,t.jsx)(k.gC,{children:a.map(e=>(0,t.jsx)(k.eb,{value:e.value,children:e.label},e.value))})]})}function S(e){var n,a;let c,{t:d}=(0,i.Bd)(),{search:u,navigate:h}=(0,g.Po)(),x=(0,g.mn)(),[p,j]=(0,v.useState)(!1),{columnFilters:w,onColumnFiltersChange:I,pagination:S,onPaginationChange:F,ensurePageInRange:A}=(0,r.c)({search:u,navigate:h,pagination:{defaultPage:1,defaultPageSize:10},globalFilter:{enabled:!1},columnFilters:[{columnId:"month",searchKey:"billingMonth",type:"string"},{columnId:"token_name",searchKey:"billingToken",type:"string"},{columnId:"model_name",searchKey:"billingModel",type:"string"},{columnId:"group",searchKey:"billingGroup",type:"string"},{columnId:"request_id",searchKey:"billingRequest",type:"string"},{columnId:"responsible_user_id",searchKey:"billingResponsible",type:"string"}]}),T=(0,o.jy)(w,"month"),O=T??(0,o.iP)(),M=(0,o.H2)();void 0===T||"all"===T||M.includes(T)||(M.push(T),M.sort((e,n)=>e<n?1:-1));let K=(0,o.r6)({month:O,token_name:(0,o.jy)(w,"token_name"),model_name:(0,o.jy)(w,"model_name"),group:(0,o.jy)(w,"group"),request_id:(0,o.jy)(w,"request_id"),responsible_name:(0,o.jy)(w,"responsible_user_id")},{canViewWideData:e.canViewWideData}),q={...K,p:S.pageIndex+1,page_size:S.pageSize},V=m({surface:x,organizationId:e.organizationId,resource:"billing-records",params:q,query:()=>(0,l.hc)(x,e.organizationId,q),onForbidden:e.onForbidden}),L=(n=d,a=e.canViewWideData,c=[{id:"request_id",accessorKey:"request_id",header:()=>(0,t.jsx)("span",{className:"whitespace-nowrap",children:n("Request ID")}),size:220,cell:e=>{let{row:a}=e;return(0,t.jsx)(R,{value:a.original.request_id,label:n("Request ID")})}},{id:"created_at",accessorKey:"created_at",header:()=>(0,t.jsx)("span",{className:"whitespace-nowrap",children:n("Time")}),size:180,cell:e=>{let{row:n}=e;return(0,t.jsx)("span",{className:"whitespace-nowrap",children:(0,N.Ey)(n.original.created_at)})}},{id:"record_type",accessorKey:"record_type",header:()=>(0,t.jsx)("span",{className:"whitespace-nowrap",children:n("Type")}),size:130,cell:e=>{let{row:a}=e,i=(0,o.V2)(a.original.record_type,n);return(0,t.jsx)(f.Wh,{variant:i.variant,copyable:!1,children:i.label})}}],a&&c.push({id:"responsible_user_id",accessorKey:"responsible_user_id",header:()=>(0,t.jsx)("span",{className:"whitespace-nowrap",children:n("Member")}),size:160,cell:e=>{let{row:n}=e;return(0,t.jsx)("span",{className:"whitespace-nowrap font-medium",children:(0,o.ae)(n.original)})}}),c.push({id:"token_name",accessorKey:"token_name",header:()=>(0,t.jsx)("span",{className:"whitespace-nowrap",children:n("Key")}),size:160,cell:e=>{let{row:n}=e;return(0,t.jsx)("span",{className:"whitespace-nowrap",children:n.original.token_name||"-"})}},{id:"model_name",accessorKey:"model_name",header:()=>(0,t.jsx)("span",{className:"whitespace-nowrap",children:n("Model")}),size:180,cell:e=>{let{row:n}=e;return(0,t.jsx)("span",{className:"block max-w-44 truncate font-mono text-xs",children:n.original.model_name||"-"})}},{id:"group",accessorKey:"group",header:()=>(0,t.jsx)("span",{className:"whitespace-nowrap",children:n("Group")}),size:140,cell:e=>{let{row:n}=e;return(0,t.jsx)("span",{className:"whitespace-nowrap",children:n.original.group||"-"})}},{id:"prompt_tokens",accessorKey:"prompt_tokens",header:()=>(0,t.jsx)("span",{className:"whitespace-nowrap",children:n("Prompt Tokens")}),size:120,cell:e=>{let{row:n}=e;return(0,t.jsx)("span",{className:"tabular-nums",children:n.original.prompt_tokens||0})}},{id:"completion_tokens",accessorKey:"completion_tokens",header:()=>(0,t.jsx)("span",{className:"whitespace-nowrap",children:n("Completion Tokens")}),size:130,cell:e=>{let{row:n}=e;return(0,t.jsx)("span",{className:"tabular-nums",children:n.original.completion_tokens||0})}},{id:"ledger_quota_delta",accessorFn:e=>(0,o.Mm)(e),header:()=>(0,t.jsx)("span",{className:"whitespace-nowrap",children:n("Quota change")}),size:140,cell:e=>{let{row:n}=e,a=(0,o.Mm)(n.original);return(0,t.jsx)("span",{className:a>0?"text-success tabular-nums":"text-foreground tabular-nums",children:0===a?(0,N.eN)(0):`${a>0?"+":"-"}
5${(0,N.eN)(Math.abs(a))}`})}}),c),{table:D}=(0,s.uI)({data:V.items,columns:L,columnFilters:w,onColumnFiltersChange:I,pagination:S,onPaginationChange:F,manualPagination:!0,manualFiltering:!0,totalCount:V.total,ensurePageInRange:A,columnVisibilityStorageKey:"organization-billing-column-visibility"}),P=w.length>0,B=async()=>{j(!0);try{let n,a=await (0,o.LQ)(async(n,a)=>(await (0,l.hc)(x,e.organizationId,{...K,p:n,page_size:a})).data??{page:n,page_size:a,total:0,items:[]});(0,o.bG)((0,o.jJ)((n=[{title:d("Request ID"),value:e=>e.request_id||""},{title:d("Time"),value:e=>(0,o.pR)(e.created_at)},{title:d("Type"),value:e=>(0,o.V2)(e.record_type,d).label}],e.canViewWideData&&n.push({title:d("Member"),value:e=>(0,o.ae)(e)}),n.push({title:d("Key"),value:e=>e.token_name||""},{title:d("Model"),value:e=>e.model_name||""},{title:d("Group"),value:e=>e.group||""},{title:d("Prompt Tokens"),value:e=>e.prompt_tokens||0},{title:d("Completion Tokens"),value:e=>e.completion_tokens||0},{title:d("Quota change"),value:e=>(0,o.Mm)(e)}),n),a.items),(0,o.aD)("details")),a.truncated&&y.oR.warning(d("Exported the first {{exported}} of {{total}} records.",{exported:a.items.length,total:a.total}))}catch{y.oR.error(d("The export could not be prepared."))}finally{j(!1)}},E=[{value:"all",label:d("All months")},...M.map(e=>({value:e,label:e}))];return(0,t.jsx)(s.cx,{table:D,columns:L,isLoading:V.isLoading,isFetching:V.isFetching,emptyTitle:d("No billing records in this range"),emptyDescription:d("Adjust the month or the filters to find what the organization was charged."),skeletonKeyPrefix:"organization-billing-skeleton",applyHeaderSize:!0,toolbar:(0,t.jsx)(z.by,{table:D,hasActiveFilters:P,searchLoading:V.isFetching,onReset:()=>{I([]),F(e=>({...e,pageIndex:0}))},onSearch:V.refetch,actionStart:(0,t.jsxs)(_.$,{type:"button",variant:"outline",size:"sm",onClick:()=>void B(),disabled:p||0===V.total,children:[(0,t.jsx)(b.A,{className:"size-4"}),p?d("Exporting..."):d("Export")]}),primaryFilters:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(z.Oc,{children:(0,t.jsxs)(k.l6,{items:E,value:void 0===T?O:T,onValueChange:e=>(0,o.rH)(I,w,"month",String(e)),children:[(0,t.jsx)(k.bq,{className:"h-8 w-full",size:"sm",children:(0,t.jsx)(k.yv,{placeholder:d("Month")})}),(0,t.jsx)(k.gC,{children:E.map(e=>(0,t.jsx)(k.eb,{value:e.value,children:e.label},e.value))})]})}),(0,t.jsx)(C,{value:K.model_name,placeholder:d("Model"),onChange:e=>(0,o.rH)(I,w,"model_name",e)}),(0,t.jsx)(C,{value:K.token_name,placeholder:d("Key name"),onChange:e=>(0,o.rH)(I,w,"token_name",e)}),(0,t.jsx)(C,{value:K.group,placeholder:d("Group"),onChange:e=>(0,o.rH)(I,w,"group",e)}),(0,t.jsx)(C,{value:K.request_id,placeholder:d("Request ID"),onChange:e=>(0,o.rH)(I,w,"request_id",e)}),e.canViewWideData?(0,t.jsx)(C,{value:K.responsible_name,placeholder:d("Member"),onChange:e=>(0,o.rH)(I,w,"responsible_user_id",e)}):null]})})})}function R(e){let{t:n}=(0,i.Bd)();return e.value?(0,t.jsx)("button",{type:"button",className:"hover:text-foreground max-w-full truncate text-left font-mono text-xs underline decoration-dotted underline-offset-2",title:e.value,onClick:()=>{(0,w.l)(e.value??"").then(e=>{e&&y.oR.success(n("Copied"))})},children:e.value}):(0,t.jsx)("span",{className:"text-muted-foreground",children:"-"})}var F=a(95012),A=a(75321),T=a(1333),O=a(38288),M=a(68974),K=a(49302),q=a(82512);function V(e){let{t:n}=(0,i.Bd)(),{search:a,navigate:s}=(0,g.Po)(),r=(0,g.mn)(),c=(0,o.Z_)(a.billingMonths),d={months:c},m=u({surface:r,organizationId:e.organizationId,resource:"billing-monthly-summaries",params:d,query:()=>(0,l.GF)(r,e.organizationId,d),onForbidden:e.onForbidden}),h=m.data?.items??[],p=(0,o.Mf)(h,(0,o.iP)()),j=o.wH.map(e=>({value:String(e),label:n("Last {{count}} months",{count:e})}));return(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-4",children:[(0,t.jsx)(q.h,{title:n("Total cost"),value:(0,N.eN)(p.totalQuota),description:n("Charged to the organization over these months."),icon:F.A,tone:"accent-1",loading:m.isLoading}),(0,t.jsx)(q.h,{title:n("Average cost"),value:(0,N.eN)(p.averageQuota),description:n("Per month with any activity."),icon:A.A,tone:"accent-2",loading:m.isLoading}),(0,t.jsx)(q.h,{title:n("Peak month"),value:p.peak?`${p.peak.month} \xb7 ${(0,N.eN)(p.peak.quota)}`:"-",description:n("The most expensive month in this range."),icon:T.A,tone:"accent-3",loading:m.isLoading}),(0,t.jsx)(q.h,{title:n("This month"),value:p.current?(0,N.eN)(p.current.quota):"-",description:n("Charged since the first of the month."),icon:O.A,tone:"accent-1",loading:m.isLoading})]}),(0,t.jsxs)(M.Zp,{size:"sm",children:[(0,t.jsxs)(M.aR,{className:"border-border/60 border-b",children:[(0,t.jsx)(M.ZB,{children:n("Monthly cost")}),(0,t.jsxs)(M.X9,{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsxs)(k.l6,{items:j,value:String(c),onValueChange:e=>void s({search:n=>({...n,billingMonths:(0,o.Z_)(e)})}),children:[(0,t.jsx)(k.bq,{size:"sm","aria-label":n("Months to show"),children:(0,t.jsx)(k.yv,{})}),(0,t.jsx)(k.gC,{children:j.map(e=>(0,t.jsx)(k.eb,{value:e.value,children:e.label},e.value))})]}),(0,t.jsxs)(_.$,{type:"button",variant:"outline",size:"sm",onClick:()=>{let a=[{title:n("Month"),value:e=>e.month||""},{title:n("Cost"),value:e=>e.quota||0},{title:n("Requests"),value:e=>e.request_count||0},{title:n("Prompt Tokens"),value:e=>e.prompt_tokens||0},{title:n("Completion Tokens"),value:e=>e.completion_tokens||0},{title:n("Keys"),value:e=>e.token_count||0},...e.canViewWideData?[{title:n("Members charged"),value:e=>e.responsible_user_count||0}]:[]];(0,o.bG)((0,o.jJ)(a,h),(0,o.aD)("monthly-overview"))}
5,disabled:0===h.length,children:[(0,t.jsx)(b.A,{className:"size-4"}),n("Export")]}),(0,t.jsx)(x.UD,{onClick:m.refetch,isFetching:m.isFetching})]})]}),(0,t.jsx)(M.Wu,{children:0===h.length?(0,t.jsx)("div",{className:"text-muted-foreground flex h-32 items-center justify-center rounded-md border border-dashed text-xs",children:m.isLoading?n("Loading..."):n("No cost in these months.")}):(0,t.jsxs)(K.XI,{className:"text-xs [&_td]:text-xs [&_th]:text-xs",children:[(0,t.jsx)(K.A0,{children:(0,t.jsxs)(K.Hj,{children:[(0,t.jsx)(K.nd,{children:n("Month")}),(0,t.jsx)(K.nd,{className:"text-right",children:n("Cost")}),(0,t.jsx)(K.nd,{className:"text-right",children:n("Requests")}),(0,t.jsx)(K.nd,{className:"text-right",children:n("Prompt Tokens")}),(0,t.jsx)(K.nd,{className:"text-right",children:n("Completion Tokens")}),(0,t.jsx)(K.nd,{className:"text-right",children:n("Keys")}),e.canViewWideData&&(0,t.jsx)(K.nd,{className:"text-right",children:n("Members charged")})]})}),(0,t.jsx)(K.BF,{children:h.map(n=>(0,t.jsxs)(K.Hj,{children:[(0,t.jsx)(K.nA,{className:"font-medium whitespace-nowrap",children:n.month||"-"}),(0,t.jsx)(K.nA,{className:"text-right font-medium",children:(0,N.eN)(n.quota||0)}),(0,t.jsx)(K.nA,{className:"text-right",children:(0,N.ZV)(n.request_count||0)}),(0,t.jsx)(K.nA,{className:"text-right",children:(0,N.ZV)(n.prompt_tokens||0)}),(0,t.jsx)(K.nA,{className:"text-right",children:(0,N.ZV)(n.completion_tokens||0)}),(0,t.jsx)(K.nA,{className:"text-right",children:(0,N.ZV)(n.token_count||0)}),e.canViewWideData&&(0,t.jsx)(K.nA,{className:"text-right",children:(0,N.ZV)(n.responsible_user_count||0)})]},n.month))})]})})]})]})}var L=a(42250),D=a(99756),P=a(25531);function B(e){let{t:n}=(0,i.Bd)(),{search:a,navigate:s}=(0,g.Po)(),r=(0,g.mn)(),c=(0,o.m$)(a.billingStartMonth,a.billingEndMonth),d=(0,o.H2)(),m={start_month:c.start,end_month:c.end},h=u({surface:r,organizationId:e.organizationId,resource:"billing-user-summaries",params:m,query:()=>(0,l._d)(r,e.organizationId,m),onForbidden:e.onForbidden}),p=h.data?.items??[],j=(0,o.qO)(p),v=(e,n)=>void s({search:a=>({...a,[e]:n})}),y=d.map(e=>({value:e,label:e}));return(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-4",children:[(0,t.jsx)(q.h,{title:n("Total cost"),value:(0,N.eN)(j.totalQuota),description:n("Charged to the organization in this range."),icon:F.A,tone:"accent-1",loading:h.isLoading}),(0,t.jsx)(q.h,{title:n("Requests"),value:(0,N.ZV)(j.totalRequests),description:n("Relay requests charged to this organization."),icon:T.A,tone:"accent-2",loading:h.isLoading}),(0,t.jsx)(q.h,{title:n("Active members"),value:(0,N.ZV)(j.activeUsers),description:n("Members with cost or traffic in this range."),icon:L.A,tone:"accent-3",loading:h.isLoading}),(0,t.jsx)(q.h,{title:n("Top spender"),value:j.topUser?`${(0,o.ae)(j.topUser)} \xb7 ${(0,N.eN)(j.topUser.quota)}`:"-",description:n("The member charged the most in this range."),icon:D.A,tone:"accent-1",loading:h.isLoading})]}),(0,t.jsxs)(M.Zp,{size:"sm",children:[(0,t.jsxs)(M.aR,{className:"border-border/60 border-b",children:[(0,t.jsxs)(M.ZB,{children:[n("Members")," · ",c.start," → ",c.end]}),(0,t.jsxs)(M.X9,{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsxs)(k.l6,{items:y,value:c.start,onValueChange:e=>v("billingStartMonth",String(e)),children:[(0,t.jsx)(k.bq,{size:"sm","aria-label":n("From month"),children:(0,t.jsx)(k.yv,{})}),(0,t.jsx)(k.gC,{children:y.map(e=>(0,t.jsx)(k.eb,{value:e.value,children:e.label},e.value))})]}),(0,t.jsxs)(k.l6,{items:y,value:c.end,onValueChange:e=>v("billingEndMonth",String(e)),children:[(0,t.jsx)(k.bq,{size:"sm","aria-label":n("To month"),children:(0,t.jsx)(k.yv,{})}),(0,t.jsx)(k.gC,{children:y.map(e=>(0,t.jsx)(k.eb,{value:e.value,children:e.label},e.value))})]}),(0,t.jsxs)(_.$,{type:"button",variant:"outline",size:"sm",onClick:()=>{let a=[{title:n("Member"),value:e=>(0,o.ae)(e)}];e.canViewWideData&&a.push({title:n("Role"),value:e=>{let a=(0,P.hf)(e.role);return a?n(a.labelKey):e.role||""}}),a.push({title:n("Cost"),value:e=>e.quota||0},{title:n("Requests"),value:e=>e.request_count||0},{title:n("Prompt Tokens"),value:e=>e.prompt_tokens||0},{title:n("Completion Tokens"),value:e=>e.completion_tokens||0},{title:n("Keys"),value:e=>e.token_count||0}),(0,o.bG)((0,o.jJ)(a,p),(0,o.aD)("user-overview"))},disabled:0===p.length,children:[(0,t.jsx)(b.A,{className:"size-4"}),n("Export")]}),(0,t.jsx)(x.UD,{onClick:h.refetch,isFetching:h.isFetching})]})]}),(0,t.jsx)(M.Wu,{children:0===p.length?(0,t.jsx)("div",{className:"text-muted-foreground flex h-32 items-center justify-center rounded-md border border-dashed text-xs",children:h.isLoading?n("Loading..."):n("No member was charged in this range.")}):(0,t.jsxs)(K.XI,{className:"text-xs [&_td]:text-xs [&_th]:text-xs",children:[(0,t.jsx)(K.A0,{children:(0,t.jsxs)(K.Hj,{children:[(0,t.jsx)(K.nd,{children:n("Member")}),e.canViewWideData&&(0,t.jsx)(K.nd,{children:n("Role")}
5),(0,t.jsx)(K.nd,{className:"text-right",children:n("Cost")}),(0,t.jsx)(K.nd,{className:"text-right",children:n("Requests")}),(0,t.jsx)(K.nd,{className:"text-right",children:n("Prompt Tokens")}),(0,t.jsx)(K.nd,{className:"text-right",children:n("Completion Tokens")}),(0,t.jsx)(K.nd,{className:"text-right",children:n("Keys")})]})}),(0,t.jsx)(K.BF,{children:p.map(a=>{let i=(0,P.hf)(a.role);return(0,t.jsxs)(K.Hj,{children:[(0,t.jsx)(K.nA,{className:"font-medium whitespace-nowrap",children:(0,o.ae)(a)}),e.canViewWideData&&(0,t.jsx)(K.nA,{children:i?(0,t.jsx)(f.Wh,{variant:i.variant,copyable:!1,children:n(i.labelKey)}):a.role??"-"}),(0,t.jsx)(K.nA,{className:"text-right font-medium",children:(0,N.eN)(a.quota||0)}),(0,t.jsx)(K.nA,{className:"text-right",children:(0,N.ZV)(a.request_count||0)}),(0,t.jsx)(K.nA,{className:"text-right",children:(0,N.ZV)(a.prompt_tokens||0)}),(0,t.jsx)(K.nA,{className:"text-right",children:(0,N.ZV)(a.completion_tokens||0)}),(0,t.jsx)(K.nA,{className:"text-right",children:(0,N.ZV)(a.token_count||0)})]}
5,a.responsible_user_id)})})]})})]})]})}let E={user:"By member",monthly:"By month",details:"Cost details"};function $(e){let{t:n}=(0,i.Bd)(),{search:a,navigate:s}=(0,g.Po)(),r=(0,o.k1)(a.billingTab);if(!e.canView)return(0,t.jsx)(x.Gx,{icon:"usage",title:n("Usage"),message:n("Only an organization owner or administrator can see organization-wide usage.")});let l={user:(0,t.jsx)(B,{organizationId:e.organizationId,canViewWideData:e.canViewWideData,onForbidden:e.onForbidden}),monthly:(0,t.jsx)(V,{organizationId:e.organizationId,canViewWideData:e.canViewWideData,onForbidden:e.onForbidden}),details:(0,t.jsx)(S,{organizationId:e.organizationId,canViewWideData:e.canViewWideData,onForbidden:e.onForbidden})};return(0,t.jsx)(x.Zk,{icon:"usage",title:n("Usage"),description:n("What the organization has been charged, by member, by month, and request by request."),actions:(0,t.jsx)(j.tU,{value:r,onValueChange:e=>void s({search:n=>({...n,billingTab:(0,o.k1)(e)})}),children:(0,t.jsx)(j.j7,{children:o.m_.map(e=>(0,t.jsx)(j.Xi,{value:e,children:n(E[e])},e))})}
5),scroll:!0,children:l[r]})}var U=a(92356),W=a(55724),H=a(61634),Z=a(14653),Q=a(73280),J=a(43494),G=a(84368),X=a(48367),Y=a(86832),ee=a(25732),en=a(60641),ea=a(36710),et=a(1738);let ei="organization-create-invite-form",es=ee.Ik({email:ee.Rp({error:"Enter an email address."}),role:ee.k5(["admin","member"])});function er(e){let{t:n}=(0,i.Bd)(),[a,s]=(0,v.useState)(!1),[r,c]=(0,v.useState)(!1),[d,u]=(0,v.useState)(null),m=(0,Y.mN)({resolver:(0,X.u)(es),defaultValues:{email:"",role:"member"}}),h=async(a,t)=>{try{let i=await (0,l.BL)(e.organizationId,{email:a.email.trim(),role:a.role,force_rotate:t});if(!i.success)return{kind:"failed",message:i.message||n("Failed to create the invitation")};return{kind:"sent"}}catch(a){let e=(0,o.dC)(a);switch(e.action){case"deliveryFailure":return{kind:"deliveryFailure",messageKey:e.messageKey};case"knownDeliveryFailure":return{kind:"knownDeliveryFailure",messageKey:e.messageKey};case"userAlreadyJoined":return{kind:"userAlreadyJoined"};case"confirmResend":return{kind:"confirmResend"};default:return{kind:"failed",message:n("Failed to create the invitation")}}}},g=async(a,t)=>{switch(a.kind){case"sent":y.oR.success(n("Invitation sent")),e.onOpenChange(!1),await e.onCreated();return;case"confirmResend":u(t);return;case"deliveryFailure":e.onOpenChange(!1),y.oR.error(n(a.messageKey)),await e.onCreated();return;case"knownDeliveryFailure":y.oR.error(n(a.messageKey));return;case"userAlreadyJoined":y.oR.error(n("The user has already joined this organization"));return;default:y.oR.error(a.message)}},x=async e=>{s(!0);try{await g(await h(e,!1),e)}finally{s(!1)}},p=async()=>{if(d){c(!0);try{await g(await h(d,!0),d)}finally{c(!1),u(null)}}},j=P.Up.map(e=>({value:e,label:n((0,P.Xk)(e))}));return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(en.l,{open:e.open,onOpenChange:n=>{n&&m.reset({email:"",role:"member"}),e.onOpenChange(n)},title:n("Invite member"),description:n("The recipient joins this organization by following the link in the email. The link expires on its own."),bodyClassName:"space-y-4",footer:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(_.$,{type:"button",variant:"outline",onClick:()=>e.onOpenChange(!1),disabled:a,children:n("Cancel")}),(0,t.jsxs)(_.$,{type:"submit",form:ei,disabled:a,children:[a?(0,t.jsx)(W.A,{className:"animate-spin"}):null,a?n("Sending..."):n("Send invitation")]})]}),children:(0,t.jsx)(ea.lV,{...m,children:(0,t.jsxs)("form",{id:ei,onSubmit:m.handleSubmit(x),className:"space-y-4",children:[(0,t.jsx)(ea.zB,{control:m.control,name:"email",render:e=>{let{field:a}=e;return(0,t.jsxs)(ea.eI,{children:[(0,t.jsx)(ea.lR,{children:n("Email")}),(0,t.jsx)(ea.MJ,{children:(0,t.jsx)(et.p,{type:"email",placeholder:n("[email protected]"),...a})}),(0,t.jsx)(ea.Rr,{children:n("The invitation is only valid for this address.")}),(0,t.jsx)(ea.C5,{})]})}}),(0,t.jsx)(ea.zB,{control:m.control,name:"role",render:e=>{let{field:a}=e;return(0,t.jsxs)(ea.eI,{children:[(0,t.jsx)(ea.lR,{children:n("Role")}),(0,t.jsxs)(k.l6,{items:j,value:a.value,onValueChange:a.onChange,children:[(0,t.jsx)(ea.MJ,{children:(0,t.jsx)(k.bq,{className:"w-full",children:(0,t.jsx)(k.yv,{})})}),(0,t.jsx)(k.gC,{children:j.map(e=>(0,t.jsx)(k.eb,{value:e.value,children:e.label},e.value))})]}),(0,t.jsx)(ea.C5,{})]})}})]})})}),(0,t.jsx)(Q.T,{open:null!==d,onOpenChange:e=>!e&&u(null),title:n("Send another invitation?"),desc:n("An invitation for this address is already pending. Sending another one replaces the link that is already in their inbox."),confirmText:n("Send invitation"),isLoading:r,handleConfirm:()=>void p()})]})}function el(e){let{t:n}=(0,i.Bd)(),{search:a,navigate:c}=(0,g.Po)(),d=(0,g.mn)(),[u,h]=(0,v.useState)(!1),[p,j]=(0,v.useState)(null),[b,k]=(0,v.useState)(!1),[z,w]=(0,v.useState)(null),{pagination:N,onPaginationChange:C,ensurePageInRange:I}=(0,r.c)({search:a,navigate:c,pagination:{defaultPage:1,defaultPageSize:10},globalFilter:{enabled:!1},columnFilters:[]}),S={p:N.pageIndex+1,page_size:N.pageSize},R=m({surface:d,organizationId:e.organizationId,resource:"invitations",params:S,query:()=>(0,l.wf)(e.organizationId,S),enabled:e.canViewInvites,onForbidden:e.onForbidden}),F=async()=>
5{if(p){k(!0);try{let a=await (0,l.t2)(e.organizationId,p.id);if(!a.success)return void y.oR.error(a.message||n("Failed to revoke the invitation"));y.oR.success(n("Invitation revoked")),j(null),R.refetch()}finally{k(!1)}}},A=async a=>{w(a.id);try{let t=await (0,l.BL)(e.organizationId,{email:a.target_email,role:a.role});t.success?y.oR.success(n("Invitation sent")):y.oR.error(t.message||n("Failed to resend the invitation"))}catch(a){let e=(0,o.Tn)(a);y.oR.error(e?n(e):n("Failed to resend the invitation"))}finally{w(null),R.refetch()}},T=(0,v.useMemo)(()=>(function(e){let{t:n}=e;return[{accessorKey:"target_email",header:n("Email"),enableSorting:!1,size:240,cell:e=>{let{row:n}=e;return(0,t.jsx)("span",{className:"whitespace-nowrap",children:n.original.target_email||"-"})}},{accessorKey:"role",header:n("Role"),enableSorting:!1,size:120,cell:e=>{let{row:a}=e;return(0,t.jsx)("span",{children:n((0,P.Xk)(a.original.role))})}},{accessorKey:"status",header:n("Status"),enableSorting:!1,size:170,cell:e=>{let{row:a}=e,i=(0,o.ER)(a.original.status,a.original.delivery_status);return(0,t.jsx)(f.Wh,{label:n(i.labelKey),variant:i.variant,copyable:!1})}},{accessorKey:"created_at",header:n("Created At"),enableSorting:!1,size:170,cell:e=>{let{row:n}=e;return(0,t.jsx)(eo,{value:n.original.created_at})}},{accessorKey:"updated_at",header:n("Updated At"),enableSorting:!1,size:170,cell:e=>{let{row:n}=e;return(0,t.jsx)(eo,{value:n.original.updated_at})}},{id:"actions",header:n("Actions"),enableSorting:!1,enableHiding:!1,size:80,cell:n=>{let{row:a}=n;return(0,t.jsx)(ec,{context:e,invite:a.original})}}]})({t:n,readOnly:e.readOnly,canCreateInvites:e.canCreateInvites,canRevokeInvites:e.canRevokeInvites,retryingId:z,onRetry:e=>void A(e),onRevoke:e=>j(e)}),[n,e.readOnly,e.canCreateInvites,e.canRevokeInvites,z]),{table:O}=(0,s.uI)({data:R.items,columns:T,pagination:N,onPaginationChange:C,manualPagination:!0,totalCount:R.total,ensurePageInRange:I,columnVisibilityStorageKey:"organization-invites-column-visibility"});return e.canViewInvites?(0,t.jsxs)(x.Zk,{icon:"invitations",title:n("Invitations"),description:n("Invite people to the organization and track each one."),count:R.total,actions:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(x.UD,{onClick:()=>R.refetch(),isFetching:R.isFetching}),e.canCreateInvites&&!e.readOnly?(0,t.jsxs)(_.$,{size:"sm",onClick:()=>h(!0),children:[(0,t.jsx)(U.A,{"data-icon":"inline-start"}),n("Invite member")]}):null]}),children:[(0,t.jsx)(s.cx,{table:O,columns:T,isLoading:R.isLoading,isFetching:R.isFetching,emptyTitle:n("No invitations yet"),skeletonKeyPrefix:"organization-invites-skeleton",applyHeaderSize:!0,toolbarProps:null}),(0,t.jsx)(er,{organizationId:e.organizationId,open:u,onOpenChange:h,onCreated:()=>R.refetch()}),(0,t.jsx)(Q.T,{open:null!==p,onOpenChange:e=>!e&&j(null),title:n("Revoke invitation"),desc:n("The invitation link stops working immediately. The person can still be invited again afterwards."),confirmText:n("Revoke"),destructive:!0,isLoading:b,handleConfirm:()=>void F()})]}):(0,t.jsx)(x.Gx,{icon:"invitations",title:n("Invitations"),message:n("Only an organization owner or administrator can view invitations.")})}function eo(e){return(0,t.jsx)("span",{className:"text-muted-foreground text-sm whitespace-nowrap",children:e.value?(0,N.Ey)(e.value):"-"})}function ec(e){let{t:n}=(0,i.Bd)(),{context:a,invite:s}=e;if("pending"!==s.status||a.readOnly)return null;let r=(0,o.L8)(s,a.canCreateInvites,a.readOnly);return r||a.canRevokeInvites?(0,t.jsxs)(J.C,{ariaLabel:n("Open menu"),contentClassName:"w-40",children:[r?(0,t.jsxs)(G._2,{onSelect:()=>a.onRetry(s),disabled:a.retryingId===s.id,children:[n("Retry"),(0,t.jsx)(G.V0,{children:a.retryingId===s.id?(0,t.jsx)(W.A,{className:"animate-spin",size:16}):(0,t.jsx)(H.A,{size:16})})]}):null,(0,t.jsxs)(G._2,{onSelect:()=>a.onRevoke(s),className:"text-destructive focus:text-destructive",disabled:!a.canRevokeInvites,children:[n("Revoke"),(0,t.jsx)(G.V0,{children:(0,t.jsx)(Z.A,{size:16})})]})]}):null}var ed=a(47303),eu=a(82638),em=a(25350),eh=a(73698),eg=a(97108),ex=a(64581),ep=a(46501),ej=a(91009);function eb(e){var n,a;let s,r,{t:l}=(0,i.Bd)(),c=e.row;if(!c)return null;let d=(0,ex.W2)(c.other??""),u=(0,o.br)(c.type),m=(0,o.hO)(c),h=(0,ex.g0)(d);return(0,t.jsx)(en.l,{open:!0,onOpenChange:e.onOpenChange,title:m.name||l("Log Details"),description:(0,t.jsxs)("span",{className:"flex flex-wrap items-center gap-1.5",children:[(0,t.jsx)(f.Wh,{label:l(u.labelKey),variant:u.variant,copyable:!1}),(0,t.jsx)("span",{className:"text-muted-foreground text-xs tabular-nums",children:(0,N.Ey)(c.created_at)})]}),contentClassName:"sm:max-w-3xl",children:(0,t.jsxs)("div",{className:"max-h-[70vh] space-y-3 overflow-y-auto pr-1",children:[(0,t.jsxs)(ej.JH,{label:l("Request"),children:[(0,t.jsx)(ej.Qb,{label:l("Request ID"),value:(0,t.jsx)(ev,{value:c.request_id,label:l("Request ID")}),mono:!0}),(0,t.jsx)(ej.Qb,{label:l("Path"),value:d?.request_path||"-",mono:!0}),(0,t.jsx)(ej.Qb,{label:l("Model"),value:m.name||"-",mono:!0}),m.actualModel?(0,t.jsx)(ej.Qb,{label:l("Upstream model"),value:m.actualModel,mono:!0}):null,e.showResponsible?(0,t.jsx)(ej.Qb,{label:l("Responsible user"),value:(0,o.jW)(c)}):null,(0,t.jsx)(ej.Qb,{label:l("Key"),value:(0,o.gs)(c),mono:!0}),(0,t.jsx)(ej.Qb,{label:l("Group"),value:c.group||"-",mono:!0}),(0,t.jsx)(ej.Qb,{label:l("IP"),value:(0,t.jsx)(ev,{value:c.ip,label:l("IP")}),mono:!0}),(0,t.jsx)(ej.Qb,{label:l("Time"),value:(0,N.Ey)(c.created_at)})]}),(0,t.jsxs)(ej.JH,{label:l("Usage"),children:[(0,t.jsx)(ej.Qb,{label:l("Input"),value:c.prompt_tokens.toLocaleStr
5ing(),mono:!0}),(0,t.jsx)(ej.Qb,{label:l("Output"),value:c.completion_tokens.toLocaleString(),mono:!0}),(0,ex.j1)(d)?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(ej.Qb,{label:l("Cache Read"),value:(d?.cache_tokens||0).toLocaleString(),mono:!0}),(0,t.jsx)(ej.Qb,{label:l("Cache write"),value:(n=d,s=n?.cache_creation_tokens_5m||0,r=n?.cache_creation_tokens_1h||0,s>0||r>0?(s+r).toLocaleString():(n?.cache_creation_tokens||0).toLocaleString()),mono:!0})]}):null,d?.reasoning_effort?(0,t.jsx)(ej.Qb,{label:l("Reasoning Effort"),value:d.reasoning_effort}):null,(0,t.jsx)(ej.Qb,{label:l("Duration"),value:(0,N.KK)(c.use_time),mono:!0}),(0,t.jsx)(ej.Qb,{label:l("Stream"),value:l(c.is_stream?"Yes":"No")})]}),h?(0,t.jsxs)(ej.JH,{label:l("Violation Fee"),children:[(0,t.jsx)(ej.Qb,{label:l("Code"),value:d?.violation_fee_code||d?.violation_fee_marker||"-",mono:!0}),(0,t.jsx)(ej.Qb,{label:l("Cost"),value:(0,N.qW)(d?.fee_quota??c.quota),mono:!0})]}):null,!h&&2===c.type&&d?(0,t.jsx)(ej.xf,{quota:c.quota,other:d,isAdmin:!1}):null,d?.billing_source==="subscription"?(0,t.jsxs)(ej.JH,{label:l("Subscription deduction"),children:[(0,t.jsx)(ej.Qb,{label:l("Plan"),value:d.subscription_plan_id?`#${d.subscription_plan_id} ${d.subscription_plan_title??""}`.trim():"-"}),(0,t.jsx)(ej.Qb,{label:l("Instance"),value:d.subscription_id?`#${d.subscription_id}`:"-",mono:!0}),(0,t.jsx)(ej.Qb,{label:l("Pre-consumed"),value:(d.subscription_pre_consumed??0).toString(),mono:!0}),(0,t.jsx)(ej.Qb,{label:l("Settlement delta"),value:(a=d.subscription_post_delta??0)>0?`+${a}`:a.toString(),mono:!0}),(0,t.jsx)(ej.Qb,{label:l("Final Consumed"),value:(d.subscription_consumed??(d.subscription_pre_consumed??0)+(d.subscription_post_delta??0)).toString(),mono:!0}),void 0!==d.subscription_remain&&void 0!==d.subscription_total?(0,t.jsx)(ej.Qb,{label:l("Remaining"),value:`${d.subscription_remain}/${d.subscription_total}`,mono:!0}):null]}):null]})})}function ev(e){let{t:n}=(0,i.Bd)();return e.value?(0,t.jsx)("button",{type:"button",className:"hover:text-foreground max-w-full truncate text-left underline decoration-dotted underline-offset-2",title:n("Copy"),onClick:()=>void(0,w.l)(e.value??""),children:e.value}):"-"}function ey(e){var n,a;let c,{t:d}=(0,i.Bd)(),{search:h,navigate:p}=(0,g.Po)(),j=(0,g.mn)(),{columnFilters:b,onColumnFiltersChange:v,pagination:y,onPaginationChange:_,ensurePageInRange:k}=(0,r.c)({search:h,navigate:p,pagination:{defaultPage:1,defaultPageSize:10},globalFilter:{enabled:!1},columnFilters:[{columnId:"type",searchKey:"logType",type:"string"},{columnId:"model_name",searchKey:"logModel",type:"string"},{columnId:"token_name",searchKey:"logToken",type:"string"},{columnId:"group",searchKey:"logGroup",type:"string"},{columnId:"request_id",searchKey:"logRequest",type:"string"},{columnId:"responsible_user_id",searchKey:"logResponsible",type:"string"}]}),w=(0,o.Ry)(h,(0,ep.E2)()),I=(0,o.kx)(w.start,w.end),S={type:function(e){if(void 0===e)return;let n=Number.parseInt(e,10);return Number.isInteger(n)&&n>0?n:void 0}((0,o.jy)(b,"type")),model_name:(0,o.jy)(b,"model_name"),token_name:(0,o.jy)(b,"token_name"),group:(0,o.jy)(b,"group"),request_id:(0,o.jy)(b,"request_id"),responsible_name:e.canViewWideData?(0,o.jy)(b,"responsible_user_id"):void 0},R={p:y.pageIndex+1,page_size:y.pageSize,...S,...I},F=m({surface:j,organizationId:e.organizationId,resource:"logs",params:R,query:()=>(0,l.Tp)(j,e.organizationId,R),enabled:e.canView,onForbidden:e.onForbidden}),A={...S,...I},T=u({surface:j,organizationId:e.organizationId,resource:"log-stats",params:A,query:()=>(0,l.xU)(j,e.organizationId,A),enabled:e.canView,onForbidden:e.onForbidden}),O=(n=d,a=e.canViewWideData,c=[{accessorKey:"created_at",header:n("Time"),enableSorting:!1,size:170,cell:e=>{let{row:n}=e;return(0,t.jsx)("span",{className:"text-muted-foreground text-sm whitespace-nowrap tabular-nums",children:(0,N.Ey)(n.original.created_at)})}},{accessorKey:"type",header:n("Type"),enableSorting:!1,size:100,cell:e=>{let{row:a}=e,i=(0,o.br)(a.original.type);return(0,t.jsx)(f.Wh,{label:n(i.labelKey),variant:i.variant,copyable:!1})}}],a&&c.push({accessorKey:"responsible_user_id",header:n("Responsible user"),enableSorting:!1,size:150,cell:e=>{let{row:n}=e;return(0,t.jsx)("span",{className:"text-sm whitespace-nowrap",children:(0,o.jW)(n.original)})}}),c.push({accessorKey:"token_name",header:n("Key"),enableSorting:!1,size:160,cell:e=>{let{row:n}=e;return(0,t.jsx)("span",{className:"font-mono text-xs",children:(0,o.gs)(n.original)})}},{accessorKey:"group",header:n("Group"),enableSorting:!1,size:110,cell:e=>{let{row:n}=e;return n.original.group?(0,t.jsx)("span",{className:"font-mono text-xs",children:n.original.group}):(0,t.jsx)("span",{className:"text-muted-foreground",children:"-"})}},{accessorKey:"model_name",header:n("Model"),enableSorting:!1,size:180,cell:e=>{let{row:n}=e;if(!(0,ep.BW)(n.original.type))return null;let a=(0,o.hO)(n.original);return(0,t.jsx)(eh.$,{modelName:a.name,actualModel:a.actualModel})}},{accessorKey:"prompt_tokens",header:n("Tokens"),enableSorting:!1,size:140,cell:e=>{let{row:n}=e;if(!(0,ep.BW)(n.original.type))return null;let a=n.original.prompt_tokens||0,i=n.original.completion_tokens||0;return 0===a&&0===i?(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:"-"}):(0,t.jsxs)("span",{className:"font-mono text-xs tabular-nums",children:[a.toLocaleStr
5ing()," / ",i.toLocaleString()]})}},{accessorKey:"quota",header:n("Cost"),enableSorting:!1,size:120,cell:e=>{let{row:n}=e;return(0,ep.BW)(n.original.type)?(0,t.jsx)(em.Y,{quota:n.original.quota,other:(0,ex.W2)(n.original.other??"")}):null}},{accessorKey:"use_time",header:n("Timing"),enableSorting:!1,size:200,cell:e=>{let{row:n}=e;if(!(0,ep.FT)(n.original.type))return null;let a=(0,ex.W2)(n.original.other??"");return(0,t.jsx)(eg._,{useTimeSec:n.original.use_time,completionTokens:n.original.completion_tokens,frtMs:a?.frt,isStream:n.original.is_stream})}},{accessorKey:"request_id",header:n("Request ID"),enableSorting:!1,size:150,cell:e=>{let{row:n}=e;return n.original.request_id?(0,t.jsx)("span",{className:"font-mono text-xs",children:n.original.request_id}):(0,t.jsx)("span",{className:"text-muted-foreground",children:"-"})}},{accessorKey:"ip",header:n("IP"),enableSorting:!1,size:130,cell:e=>{let{row:n}=e,{type:a,ip:i}=n.original;return(a===o.UN.CONSUME||a===o.UN.ERROR)&&i?(0,t.jsx)("span",{className:"font-mono text-xs whitespace-nowrap",children:i}):(0,t.jsx)("span",{className:"text-muted-foreground",children:"-"})}},{id:"details",header:n("Details"),enableSorting:!1,size:110,cell:e=>{let{row:n}=e;return(0,t.jsx)(ew,{row:n.original,showResponsible:a})}}),c),{table:M}=(0,s.uI)({data:F.items,columns:O,columnFilters:b,onColumnFiltersChange:v,pagination:y,onPaginationChange:_,manualPagination:!0,manualFiltering:!0,totalCount:F.total,ensurePageInRange:k,columnVisibilityStorageKey:"organization-log-column-visibility"});if(!e.canView)return(0,t.jsx)(x.Gx,{icon:"logs",title:d("Logs"),message:d("Only an organization owner or administrator can read its records.")});let K=Object.values(S).some(e=>void 0!==e&&""!==e);return(0,t.jsx)(x.Zk,{icon:"logs",title:d("Logs"),description:d("Every request the organization was charged for, and who was responsible for it."),count:F.total,children:(0,t.jsx)(s.cx,{table:M,columns:O,isLoading:F.isLoading,isFetching:F.isFetching,emptyTitle:d("No log records yet"),skeletonKeyPrefix:"organization-log-skeleton",applyHeaderSize:!0,toolbar:(0,t.jsx)(z.by,{table:M,primaryFilters:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(z.Oc,{className:"sm:col-span-2",children:(0,t.jsx)(eu.A,{start:w.start,end:w.end,onChange:e=>{let{start:n,end:a}=e;return p({search:e=>({...e,startTime:n?.getTime(),endTime:a?.getTime()})})}})}),(0,t.jsx)(C,{value:S.model_name,placeholder:d("Model"),onChange:e=>(0,o.rH)(v,b,"model_name",e)}),(0,t.jsx)(C,{value:S.token_name,placeholder:d("Key name"),onChange:e=>(0,o.rH)(v,b,"token_name",e)}),(0,t.jsx)(C,{value:S.group,placeholder:d("Group"),onChange:e=>(0,o.rH)(v,b,"group",e)}),(0,t.jsx)(C,{value:S.request_id,placeholder:d("Request ID"),onChange:e=>(0,o.rH)(v,b,"request_id",e)}),e.canViewWideData?(0,t.jsx)(C,{value:S.responsible_name,placeholder:d("Responsible user"),onChange:e=>(0,o.rH)(v,b,"responsible_user_id",e)}):null]}),advancedFilters:(0,t.jsx)(z.Oc,{wide:!0,children:(0,t.jsx)(ef,{value:S.type,onChange:e=>(0,o.rH)(v,b,"type",e)})}),stats:(0,t.jsx)(e_,{stats:T.data}),hasActiveFilters:K||w.fromUrl,hasAdvancedActiveFilters:void 0!==S.type,searchLoading:F.isFetching,onReset:()=>{v([]),p({search:e=>({...e,startTime:void 0,endTime:void 0})}),_(e=>({...e,pageIndex:0}))},onSearch:F.refetch})})})}function ef(e){let{t:n}=(0,i.Bd)(),a=[{value:"",label:n("All Types")},...o.CH.map(e=>({value:e.value,label:n(e.labelKey)}))];return(0,t.jsxs)(k.l6,{items:a,value:void 0===e.value?"":String(e.value),onValueChange:n=>e.onChange(n??""),children:[(0,t.jsx)(k.bq,{className:"h-8 w-full",size:"sm",children:(0,t.jsx)(k.yv,{placeholder:n("Type")})}),(0,t.jsx)(k.gC,{children:a.map(e=>(0,t.jsx)(k.eb,{value:e.value,children:e.label},e.value))})]})}function e_(e){let{t:n}=(0,i.Bd)();return(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,t.jsx)(ez,{label:n("Cost"),value:ek(e.stats?.quota,N.qW),accent:"bg-emerald-500",hint:n("The cost of the entries in the selected time range.")}),(0,t.jsx)(ez,{label:"RPM",value:ek(e.stats?.rpm,e=>e.toLocaleString()),accent:"bg-sky-500",hint:n("Requests in the last 60 seconds, whatever the range above.")}),(0,t.jsx)(ez,{label:"TPM",value:ek(e.stats?.tpm,e=>
5e.toLocaleString()),accent:"bg-violet-500",hint:n("Tokens in the last 60 seconds, whatever the range above.")})]})}function ek(e,n){return void 0===e?"—":n(e)}function ez(e){return(0,t.jsx)(ed.Bc,{delay:150,children:(0,t.jsxs)(ed.m_,{children:[(0,t.jsxs)(ed.k$,{render:(0,t.jsx)("span",{className:"border-border/60 bg-muted/25 inline-flex h-7 cursor-help items-center gap-2 rounded-md border px-2.5 text-xs shadow-xs"}),children:[(0,t.jsx)("span",{className:`h-3.5 w-0.5 rounded-full ${e.accent}`}),(0,t.jsx)("span",{className:"text-muted-foreground",children:e.label}),(0,t.jsx)("span",{className:"font-mono tabular-nums",children:e.value})]}),(0,t.jsx)(ed.ZI,{children:e.hint})]})})}function ew(e){let{t:n}=(0,i.Bd)(),[a,s]=(0,v.useState)(!1);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{type:"button",className:"text-primary text-xs underline decoration-dotted underline-offset-2",onClick:()=>s(!0),children:n("View")}),a?(0,t.jsx)(eb,{row:e.row,showResponsible:e.showResponsible,onOpenChange:s}):null]})}var eN=a(80792),eC=a(65277),eI=a(6201),eS=a(36001),eR=a(28701);function eF(e){let{t:n}=(0,i.Bd)(),{search:a,navigate:c}=(0,g.Po)(),d=(0,g.mn)(),[u,h]=(0,v.useState)(!1),[p,j]=(0,v.useState)(!1),[b,z]=(0,v.useState)(null),[w,C]=(0,v.useState)(null),[I,S]=(0,v.useState)(null),{pagination:R,onPaginationChange:F,ensurePageInRange:A}=(0,r.c)({search:a,navigate:c,pagination:{defaultPage:1,defaultPageSize:10},globalFilter:{enabled:!1},columnFilters:[]}),T={p:R.pageIndex+1,page_size:R.pageSize},O=m({surface:d,organizationId:e.organizationId,resource:"members",params:T,query:()=>(0,l.rF)(d,e.organizationId,T),enabled:e.canView,onForbidden:e.onForbidden}),M=async(a,t)=>{if((0,o.tc)(a,t))return void C(a);let i=await (0,l.bR)(d,e.organizationId,a.user_id,(0,o.zk)(a,t));i.success?(y.oR.success(n("Member updated")),O.refetch()):y.oR.error(i.message||n("Failed to update the member"))},K=async(a,t)=>{let i=await (0,l.bR)(d,e.organizationId,a.user_id,{status:t});i.success?(y.oR.success(n("Member updated")),O.refetch()):y.oR.error(i.message||n("Failed to update the member"))},q=(0,v.useMemo)(()=>(function(e){let{t:n}=e,a=P.Up.map(e=>({value:e,label:n((0,P.Xk)(e))}));return[{accessorKey:"username",header:n("Username"),enableSorting:!1,size:200,cell:e=>{let{row:n}=e;return(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("div",{className:"truncate font-medium",children:n.original.display_name||n.original.username||"-"}),(0,t.jsx)("div",{className:"text-muted-foreground truncate text-xs",children:n.original.username||"-"})]})}},{accessorKey:"email",header:n("Email"),enableSorting:!1,size:240,cell:e=>{let{row:n}=e;return(0,t.jsx)("span",{className:"whitespace-nowrap",children:n.original.email||"-"})}},{accessorKey:"role",header:n("Role"),enableSorting:!1,size:150,cell:i=>{let{row:s}=i;return!eA(e,s.original).canChangeRole||e.isPlatformAdministrator?n((0,P.Xk)(s.original.role)):(0,t.jsxs)(k.l6,{items:a,value:s.original.role,onValueChange:n=>null!==n&&e.onChangeRole(s.original,n),children:[(0,t.jsx)(k.bq,{size:"sm",className:"w-[120px]",children:(0,t.jsx)(k.yv,{})}),(0,t.jsx)(k.gC,{children:a.map(e=>(0,t.jsx)(k.eb,{value:e.value,children:e.label},e.value))})]})}},{accessorKey:"status",header:n("Status"),enableSorting:!1,size:130,cell:e=>{let{row:a}=e,i=(0,P.XC)(a.original.status);return(0,t.jsx)(f.Wh,{label:n(i.labelKey),variant:i.variant,copyable:!1})}},{accessorKey:"created_at",header:n("Joined At"),enableSorting:!1,size:170,cell:e=>{let{row:n}=e;return(0,t.jsx)("span",{className:"text-muted-foreground text-sm whitespace-nowrap",children:n.original.created_at?(0,N.Ey)(n.original.created_at):"-"})}},{id:"actions",header:n("Actions"),enableSorting:!1,enableHiding:!1,size:80,cell:n=>{let{row:a}=n;return(0,t.jsx)(eT,{context:e,member:a.original})}}]})({t:n,canManageMembers:e.canManageMembers,readOnly:e.readOnly,actorRole:e.actorRole,currentUserId:e.currentUserId,isPlatformAdministrator:e.isPlatformAdministrator,onChangeRole:(e,n)=>void M(e,n),onChangeStatus:(e,n)=>void K(e,n),onEdit:e=>S(e),onRemove:e=>z(e)}),[n,e.canManageMembers,e.readOnly,e.actorRole,e.currentUserId,e.isPlatformAdministrator,e.organizationId,O.refetch]),{table:V}=(0,s.uI)({data:O.items,columns:q,pagination:R,onPaginationChange:F,manualPagination:!0,totalCount:O.total,ensurePageInRange:A,columnVisibilityStorageKey:"organization-members-column-visibility"});if(!e.canView)return(0,t.jsx)(x.Gx,{icon:"members",title:n("Members"),message:n("You do not have access to this organization.")});let L=e.canExitOrganization&&!e.readOnly;return(0,t.jsxs)(x.Zk,{icon:"members",title:n("Members"),description:n("Everyone who belongs to this organization, and their role."),count:O.total,actions:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(x.UD,{onClick:()=>void O.refetch(),isFetching:O.isFetching}),e.canAddMembersDirectly&&!e.readOnly?(0,t.jsxs)(_.$,{size:"sm",onClick:()=>
5h(!0),children:[(0,t.jsx)(eN.A,{"data-icon":"inline-start"}),n("Add member")]}):null,L?(0,t.jsx)(_.$,{size:"sm",variant:"outline",onClick:()=>j(!0),children:n("Leave organization")}):null]}),children:[(0,t.jsx)(s.cx,{table:V,columns:q,isLoading:O.isLoading,isFetching:O.isFetching,emptyTitle:n("No members yet"),skeletonKeyPrefix:"organization-members-skeleton",applyHeaderSize:!0,toolbarProps:null}),(0,t.jsx)(eR.dL,{organizationId:e.organizationId,open:u,onOpenChange:h,onAdded:()=>O.refetch()}),(0,t.jsx)(eR.KU,{organizationId:e.organizationId,member:b,onOpenChange:e=>!e&&z(null),onRemoved:()=>O.refetch()}),(0,t.jsx)(eR.jD,{organizationId:e.organizationId,member:w,onOpenChange:e=>!e&&C(null),onDemoted:()=>O.refetch()}),(0,t.jsx)(eR.gh,{organizationId:e.organizationId,member:I,onOpenChange:e=>!e&&S(null),onUpdated:()=>O.refetch()}),(0,t.jsx)(eR.AA,{organizationId:e.organizationId,open:p,onOpenChange:j,onExited:e.onLeftOrganization})]})}function eA(e,n){return(0,o.LA)({actorRole:e.actorRole,targetRole:n.role,canManageMembers:e.canManageMembers,readOnly:e.readOnly,isCurrentUser:n.user_id===e.currentUserId,platformAdministrator:e.isPlatformAdministrator})}function eT(e){let{t:n}=(0,i.Bd)(),a=eA(e.context,e.member),s=a.canChangeRole&&a.canChangeStatus;return e.context.isPlatformAdministrator?s||a.canRemove?(0,t.jsxs)(J.C,{ariaLabel:n("Open menu"),contentClassName:"w-40",children:[(0,t.jsxs)(G._2,{onSelect:()=>e.context.onEdit(e.member),disabled:!s,children:[n("Edit"),(0,t.jsx)(G.V0,{children:(0,t.jsx)(eC.A,{size:16})})]}),(0,t.jsx)(G.mB,{}),(0,t.jsxs)(G._2,{onSelect:()=>e.context.onRemove(e.member),className:"text-destructive focus:text-destructive",disabled:!a.canRemove,children:[n("Remove"),(0,t.jsx)(G.V0,{children:(0,t.jsx)(Z.A,{size:16})})]})]}):null:a.canChangeStatus||a.canRemove?(0,t.jsxs)(J.C,{ariaLabel:n("Open menu"),contentClassName:"w-40",children:["active"===e.member.status?(0,t.jsxs)(G._2,{onSelect:()=>e.context.onChangeStatus(e.member,"disabled"),disabled:!a.canChangeStatus,children:[n("Disable"),(0,t.jsx)(G.V0,{children:(0,t.jsx)(eI.A,{size:16})})]}):(0,t.jsxs)(G._2,{onSelect:()=>e.context.onChangeStatus(e.member,"active"),disabled:!a.canChangeStatus,children:[n("Enable"),(0,t.jsx)(G.V0,{children:(0,t.jsx)(eS.A,{size:16})})]}),(0,t.jsx)(G.mB,{}),(0,t.jsxs)(G._2,{onSelect:()=>e.context.onRemove(e.member),className:"text-destructive focus:text-destructive",disabled:!a.canRemove,children:[n("Remove"),(0,t.jsx)(G.V0,{children:(0,t.jsx)(Z.A,{size:16})})]})]}):null}var eO=a(30669),eM=a(98307),eK=a(94145),eq=a(12608),eV=a(61431),eL=a(48688),eD=a(10303),eP=a(5762),eB=a(506),eE=a(61946),e$=a(85468),eU=a(84935);function eW(e){let{t:n}=(0,i.Bd)(),a=(0,g.mn)(),[s,r]=(0,v.useState)(()=>({start:(0,eU.A)().subtract(7,"day").toDate(),end:new Date})),o=function(e){let n=e.end??new Date;if(!e.start)return{start:void 0,end:n};let a=(0,eU.A)(n).subtract(30,"day").toDate();return{start:e.start<a?a:e.start,end:n}}(s),c={start_timestamp:o.start?Math.floor(o.start.getTime()/1e3):void 0,end_timestamp:o.end?Math.floor(o.end.getTime()/1e3):void 0},d=u({surface:a,organizationId:e.organization.id,resource:"quota-data",params:c,query:()=>(0,l.sz)(a,e.organization.id,c),enabled:e.canViewUsage,onForbidden:e.onForbidden}),m=d.data??[];return e.canViewUsage?(0,t.jsx)(x.Zk,{icon:"overview",title:n("Overview"),description:n("Quota, traffic and model usage for the whole organization."),actions:(0,t.jsx)(eu.A,{start:s.start,end:s.end,onChange:r}
5),scroll:!0,children:(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-4",children:[(0,t.jsx)(q.h,{title:n("Remaining quota"),value:(0,N.eN)(e.organization.quota),description:n("Shared by every API key in this organization."),icon:eO.A,tone:"accent-1",loading:d.isLoading}),(0,t.jsx)(q.h,{title:n("Used Quota"),value:(0,N.eN)(e.organization.used_quota),description:n("Consumed since the organization was created."),icon:F.A,tone:"accent-2",loading:d.isLoading}),(0,t.jsx)(q.h,{title:n("Requests"),value:(0,N.ZV)(e.organization.request_count),description:n("Relay requests charged to this organization."),icon:T.A,tone:"accent-3",loading:d.isLoading}),(0,t.jsx)(q.h,{title:n("Created"),value:(0,N.Ey)(e.organization.created_at),description:n("When the organization was created."),icon:eM.A,tone:"accent-1",loading:d.isLoading})]}),(0,t.jsxs)("div",{className:"grid grid-cols-1 gap-3 xl:grid-cols-2",children:[(0,t.jsx)(eZ,{rows:m,isLoading:d.isLoading}),(0,t.jsx)(eQ,{rows:m,isLoading:d.isLoading})]})]})}):(0,t.jsx)(x.Gx,{icon:"overview",title:n("Overview"),message:n("Only an organization owner or administrator can see organization-wide usage.")})}function eH(e){let n=new Map;for(let a of e){let e=a.model_name||"-",t=n.get(e)??{model:e,count:0,quota:0};t.count+=a.count||0,t.quota+=a.quota||0,n.set(e,t)}return[...n.values()].sort((e,n)=>n.count-e.count)}function eZ(e){let{t:n}=(0,i.Bd)(),a=(0,v.useMemo)(()=>eH(e.rows).slice(0,10),[e.rows]),s=(0,v.useMemo)(()=>({count:{label:n("Requests"),color:e$.OK["0"]}}),[n]);return(0,t.jsxs)(M.Zp,{size:"sm",children:[(0,t.jsx)(M.aR,{className:"border-border/60 border-b",children:(0,t.jsx)(M.ZB,{children:n("Requests by Model")})}),(0,t.jsx)(M.Wu,{children:0===a.length?(0,t.jsx)(eJ,{isLoading:e.isLoading}):(0,t.jsx)(eE.at,{config:s,className:"aspect-auto h-64 w-full",children:(0,t.jsxs)(eK.E,{data:a,margin:{top:4,right:8,bottom:0,left:8},children:[(0,t.jsx)(eq.d,{vertical:!1}),(0,t.jsx)(eV.W,{dataKey:"model",tickLine:!1,axisLine:!1}),(0,t.jsx)(eL.h,{tickLine:!1,axisLine:!1,width:48}),(0,t.jsx)(eE.II,{content:(0,t.jsx)(eE.Nt,{})}),(0,t.jsx)(eD.yP,{dataKey:"count",fill:"var(--color-count)",radius:[4,4,0,0]})]})})})]})}function eQ(e){let{t:n}=(0,i.Bd)(),a=(0,v.useMemo)(()=>eH(e.rows).sort((e,n)=>n.quota-e.quota).slice(0,10).map(e=>({model:e.model,quota:e.quota})),[e.rows]),s=(0,v.useMemo)(()=>({quota:{label:n("Quota"),color:e$.OK["1"]}}),[n]);return(0,t.jsxs)(M.Zp,{size:"sm",children:[(0,t.jsx)(M.aR,{className:"border-border/60 border-b",children:(0,t.jsx)(M.ZB,{children:n("Quota by Model")})}),(0,t.jsx)(M.Wu,{children:0===a.length?(0,t.jsx)(eJ,{isLoading:e.isLoading}):(0,t.jsx)(eE.at,{config:s,className:"aspect-auto h-64 w-full",children:(0,t.jsxs)(eP.b,{data:a,margin:{top:4,right:8,bottom:0,left:8},children:[(0,t.jsx)(eq.d,{vertical:!1}),(0,t.jsx)(eV.W,{dataKey:"model",tickLine:!1,axisLine:!1}),(0,t.jsx)(eL.h,{tickLine:!1,axisLine:!1,width:64}),(0,t.jsx)(eE.II,{content:(0,t.jsx)(eE.Nt,{})}),(0,t.jsx)(eB.N1,{dataKey:"quota",type:"monotone",stroke:"var(--color-quota)",strokeWidth:2,dot:!1})]})})})]})}function eJ(e){let{t:n}=(0,i.Bd)();return(0,t.jsx)("div",{className:"text-muted-foreground flex h-64 items-center justify-center rounded-md border border-dashed text-xs",children:n(e.isLoading?"Loading...":"No usage in this period.")})}var eG=a(70954);function eX(e){let{t:n}=(0,i.Bd)(),a=(0,g.mn)(),[s,r]=(0,v.useState)(!1),c=(0,Y.mN)({resolver:(0,X.u)(o.zI),defaultValues:(0,o.HN)(e.organization)});if((0,v.useEffect)(()=>{c.reset((0,o.HN)(e.organization))},[c,e.organization]),!e.canUpdate)return(0,t.jsx)(x.Gx,{icon:"settings",title:n("Organization Settings"),message:n("Only an organization owner or administrator can change these settings.")});let d=async t=>{r(!0);try{if(!(await (0,l.L_)(a,e.organization.id,{name:t.name.trim(),description:t.description?.trim()??""})).success)return;y.oR.success(n("Organization updated")),await e.onUpdated()}finally{r(!1)}};return(0,t.jsx)(x.Zk,{icon:"settings",title:n("Organization Settings"),description:n("Rename the organization or change how it is described. The name must be unique."),scroll:!0,
5children:(0,t.jsxs)(M.Zp,{className:"max-w-2xl",children:[(0,t.jsxs)(M.aR,{children:[(0,t.jsx)(M.ZB,{children:n("Profile")}),(0,t.jsx)(M.BT,{children:e.readOnly?n("This organization is read-only, so the profile cannot be changed."):n("Changes are recorded in the organization audit log.")})]}),(0,t.jsx)(M.Wu,{children:(0,t.jsx)(ea.lV,{...c,children:(0,t.jsxs)("form",{onSubmit:c.handleSubmit(d),className:"flex flex-col gap-4",children:[(0,t.jsx)(ea.zB,{control:c.control,name:"name",render:a=>{let{field:i}=a;return(0,t.jsxs)(ea.eI,{children:[(0,t.jsx)(ea.lR,{children:n("Name")}),(0,t.jsx)(ea.MJ,{children:(0,t.jsx)(et.p,{...i,maxLength:o.AI,autoComplete:"off",disabled:e.readOnly||s})}),(0,t.jsx)(ea.Rr,{children:n("The name must be unique across all organizations.")}),(0,t.jsx)(ea.C5,{})]})}}),(0,t.jsx)(ea.zB,{control:c.control,name:"description",render:a=>{let{field:i}=a;return(0,t.jsxs)(ea.eI,{children:[(0,t.jsx)(ea.lR,{children:n("Description")}),(0,t.jsx)(ea.MJ,{children:(0,t.jsx)(eG.T,{...i,value:i.value??"",rows:3,disabled:e.readOnly||s})}),(0,t.jsx)(ea.C5,{})]})}}),(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.jsx)(_.$,{type:"submit",disabled:e.readOnly||s,children:s?n("Saving..."):n("Save")})})]})})})]})})}var eY=a(91704);function e0(e){let{translate:n}=e,a=[];return e.showMember&&a.push({id:"member",header:n("Member"),size:150,cell:e=>{let{row:n}=e;return(0,t.jsx)("span",{className:"text-sm whitespace-nowrap",children:(0,o.Ao)(n.original)})}}),a.push({id:"token_name",header:n("Key"),size:150,cell:e=>{let{row:n}=e;return(0,t.jsx)("span",{className:"font-mono text-xs",children:(0,o.jA)(n.original)})}},{id:"cost",header:n("Cost"),size:110,cell:e=>{let{row:n}=e;return(0,t.jsx)("span",{className:"tabular-nums",children:(0,N.eN)(n.original.quota??0)})}}),a}function e1(e){let{t:n}=(0,i.Bd)(),{search:a,navigate:c}=(0,g.Po)(),d=(0,g.mn)(),{columnFilters:u,onColumnFiltersChange:h,pagination:x,onPaginationChange:p,ensurePageInRange:j}=(0,r.c)({search:a,navigate:c,pagination:{defaultPage:1,defaultPageSize:10},globalFilter:{enabled:!1},columnFilters:[{columnId:"mj_id",searchKey:"mjId",type:"string"},{columnId:"channel_id",searchKey:"mjChannel",type:"string"}]}),b=(0,o.Ry)(a,(0,ep.E2)()),v=(0,o.XF)(b.start,b.end,"milliseconds"),y={mj_id:(0,o.jy)(u,"mj_id"),channel_id:e.canViewWideData?(0,o.jy)(u,"channel_id"):void 0},f={p:x.pageIndex+1,page_size:x.pageSize,...y,...v},_=m({surface:d,organizationId:e.organizationId,resource:"midjourney-tasks",params:f,query:()=>(0,l.Wn)(d,e.organizationId,f),onForbidden:e.onForbidden}),k=(0,eY.m)(!1),w=e0({showMember:e.canViewWideData,translate:n}),N=(0,o.dL)(k,"mj_id",w),I=_.items.map(o.yH),{table:S}=(0,s.uI)({data:I,columns:N,columnFilters:u,onColumnFiltersChange:h,pagination:x,onPaginationChange:p,manualPagination:!0,manualFiltering:!0,totalCount:_.total,ensurePageInRange:j,columnVisibilityStorageKey:"organization-midjourney-column-visibility"});return(0,t.jsx)(s.cx,{table:S,columns:N,isLoading:_.isLoading,isFetching:_.isFetching,emptyTitle:n("No Midjourney tasks in this range"),emptyDescription:n("Adjust the time range or the filters to find what the organization drew."),skeletonKeyPrefix:"organization-midjourney-skeleton",applyHeaderSize:!0,toolbar:(0,t.jsx)(z.by,{table:S,hasActiveFilters:u.length>0||b.fromUrl,searchLoading:_.isFetching,onReset:()=>{h([]),c({search:e=>({...e,startTime:void 0,endTime:void 0})}),p(e=>({...e,pageIndex:0}))},onSearch:_.refetch,primaryFilters:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(z.Oc,{className:"sm:col-span-2",children:(0,t.jsx)(eu.A,{start:b.start,end:b.end,onChange:e=>{let{start:n,end:a}=e;return c({search:e=>({...e,startTime:n?.getTime(),endTime:a?.getTime()})})}})}),(0,t.jsx)(C,{value:y.mj_id,placeholder:n("Task ID"),onChange:e=>(0,o.rH)(h,u,"mj_id",e)}),e.canViewWideData?(0,t.jsx)(C,{value:y.channel_id,placeholder:n("Channel"),onChange:e=>(0,o.rH)(h,u,"channel_id",e)}):null]})})})}var e2=a(35282);function e3(e){let{t:n}=(0,i.Bd)(),{search:a,navigate:c}=(0,g.Po)(),d=(0,g.mn)(),{columnFilters:u,onColumnFiltersChange:h,pagination:x,onPaginationChange:p,ensurePageInRange:j}=(0,r.c)({search:a,navigate:c,pagination:{defaultPage:1,defaultPageSize:10},globalFilter:{enabled:!1},columnFilters:[{columnId:"task_id",searchKey:"taskId",type:"string"},{columnId:"platform",searchKey:"taskPlatform",type:"string"},{columnId:"status",searchKey:"taskStatus",type:"string"},{columnId:"action",searchKey:"taskAction",type:"string"}]}),b=(0,o.Ry)(a,(0,ep.E2)()),v=(0,o.XF)(b.start,b.end,"seconds"),y={task_id:(0,o.jy)(u,"task_id"),platform:(0,o.jy)(u,"platform"),status:(0,o.jy)(u,"status"),action:(0,o.jy)(u,"action")},f={p:x.pageIndex+1,page_size:x.pageSize,...y,...v},_=m({surface:d,organizationId:e.organizationId,resource:"tasks",params:f,query:()=>(0,l.Mt)(d,e.organizationId,f),onForbidden:e.onForbidden}),k=(0,e2.b)(!1,!1),w=e0({showMember:e.canViewWideData,translate:n}),N=(0,o.dL)(k,"task_id",w),S=_.items.map(o.mI),{table:R}=(0,s.uI)({data:S,columns:N,columnFilters:u,onColumnFiltersChange:h,pagination:x,onPaginationChange:p,manualPagination:!0,manualFiltering:!0,totalCount:_.total,ensurePageInRange:j,columnVisibilityStorageKey:"organization-task-column-visibility"});return(0,t.jsx)(s.cx,{table:R,columns:N,isLoading:_.isLoading,isFetching:_.isFetching,emptyTitle:n("No tasks in this range"),emptyDescription:n("Adjust the time range or the filters to find what the organization submitted."),skeletonKeyPrefix:"organization-task-skeleton",applyHeaderSize:!0,toolbar:(0,t.jsx)(z.by,{table:R,hasActiveFilters:u.length>0||b.fromUrl,hasAdvancedActiveFilters:void 0!==y.status||void 0!==y.action,searchLoading:_.isFetching,onReset:()=>{h([]),c({search:e=>({...e,startTime:void 0,endTime:void 0})}),p(e=>({...e,pageIndex:0}))},onSearch:_.refetch,primaryFilters:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(z.Oc,{className:"sm:col-span-2",children:(0,t.jsx)(eu.A,{start:b.start,end:b.end,onChange:e=>{let{start:n,end:a}=e;return c({search:e=>({...e,startTime:n?.getTime(),endTime:a?.getTime()})})}})}),(0,t.jsx)(C,{value:y.task_id,placeholder:n("Task ID"),onChange:e=>(0,o.rH)(h,u,"task_id",e)}),(0,t.jsx)(C,{value:y.platform,placeholder:n("Platform"),onChange:e=>(0,o.rH)(h,u,"platform",e)})]}),advancedFilters:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(z.Oc,{children:(0,t.jsx)(I,{value:y.status,placeholder:n("Status"),allLabel:n("All statuses"),options:o.ii,onChange:e=>(0,o.rH)(h,u,"status",e)})}),(0,t.jsx)(z.Oc,{children:(0,t.jsx)(I,{value:y.action,placeholder:n("Type"),allLabel:n("All Types"),options:o.m0,onChange:e=>(0,o.rH)(h,u,"action",e)})})]})})})}let e5={tasks:"Async tasks",midjourney:"Midjourney"};function e6(e){let{t:n}=(0,i.Bd)(),{search:a,navigate:s}=(0,g.Po)(),r=(0,o.Ge)(a.taskTab);if(!e.canView)return(0,t.jsx)(x.Gx,{icon:"tasks",title:n("Tasks"),message:n("Only an organization owner or administrator can read its task records.")});let l={tasks:(0,t.jsx)(e3,{organizationId:e.organizationId,canViewWideData:e.canViewWideData,onForbidden:e.onForbidden}),midjourney:(0,t.jsx)(e1,{organizationId:e.organizationId,canViewWideData:e.canViewWideData,onForbidden:e.onForbidden})};return(0,t.jsx)(x.Zk,{icon:"tasks",title:n("Tasks"),description:n("What the organization submitted through its keys, and what each task cost."),actions:(0,t.jsx)(j.tU,{value:r,onValueChange:e=>void s({search:n=>({...n,taskTab:(0,o.Ge)(e)})}),children:(0,t.jsx)(j.j7,{children:o.G4.map(e=>(0,t.jsx)(j.Xi,{value:e,children:n(e5[e])},e))})}
5),scroll:!0,children:l[r]})}var e4=a(66002),e8=a(77472),e7=a(90879),e9=a(74784),ne=a(5333),nn=a(92429),na=a(67834),nt=a(99893),ni=a(56275);function ns(e){let{t:n}=(0,i.Bd)(),[a,s]=(0,v.useState)(!1),[r,l]=(0,v.useState)(!1),c=(0,o.bR)(e.token),d=a&&c?c:(0,o.gu)(e.token);if(!d)return(0,t.jsx)("span",{className:"text-muted-foreground",children:"-"});let u=async()=>{e.canCopy&&c&&(await (0,w.l)(c)?(l(!0),y.oR.success(n("Copied to clipboard!")),window.setTimeout(()=>l(!1),1500)):y.oR.error(n("Failed to copy to clipboard")))};return(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{className:(0,ni.cn)("max-w-[160px] truncate font-mono text-xs",a&&"max-w-[260px]"),title:d,children:d}),(0,t.jsx)(_.$,{type:"button",variant:"ghost",size:"icon-xs","aria-label":n("Show or hide key"),disabled:!c,onClick:()=>s(e=>!e),children:a?(0,t.jsx)(ne.A,{}):(0,t.jsx)(nn.A,{})}),(0,t.jsx)(_.$,{type:"button",variant:"ghost",size:"icon-xs","aria-label":n("Copy Key"),disabled:!e.canCopy,onClick:()=>void u(),children:r?(0,t.jsx)(na.A,{className:"text-success"}):(0,t.jsx)(nt.A,{})})]})}function nr(e){let{t:n}=(0,i.Bd)(),a=(0,g.mn)(),[s,r]=(0,v.useState)(!1),c=e.token,d=async()=>{if(c){r(!0);try{let t=await (0,l.gK)(a,e.organizationId,c.id);if(!t.success)return void y.oR.error(t.message||n("Failed to delete organization key"));y.oR.success(n("Organization key deleted")),e.onOpenChange(!1),await e.onDeleted()}catch(e){y.oR.error((0,o.Vk)(e,n("Failed to delete organization key")))}finally{r(!1)}}};return(0,t.jsx)(Q.T,{open:null!==c,onOpenChange:e.onOpenChange,title:n("Delete organization key"),desc:(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("p",{children:n("The key stops working immediately. Anything already using it will start failing.")}),c?(0,t.jsxs)("p",{className:"text-muted-foreground font-mono text-xs",children:[c.name," · #",c.id]}):null]}),destructive:!0,isLoading:s,handleConfirm:()=>void d(),confirmText:n("Delete")})}function nl(e){let{t:n}=(0,i.Bd)(),a=(0,g.mn)(),[s,r]=(0,v.useState)(!1),c=e.tokens.length>0,d=async()=>{if(c){r(!0);try{let t=await (0,l.t_)(a,e.organizationId,e.tokens.map(e=>e.id));if(!t.success)return void y.oR.error(t.message||n("Failed to delete organization keys"));let i=t.data??e.tokens.length;y.oR.success(n("Deleted {{count}} organization key(s)",{count:i})),e.onOpenChange(!1),await e.onDeleted()}catch(e){y.oR.error((0,o.Vk)(e,n("Failed to delete organization keys")))}finally{r(!1)}}};return(0,t.jsx)(Q.T,{open:c,onOpenChange:e.onOpenChange,title:n("Delete organization keys"),desc:n("The {{count}} selected keys stop working immediately. Anything already using them will start failing.",{count:e.tokens.length}),destructive:!0,isLoading:s,handleConfirm:()=>void d(),confirmText:n("Delete")})}function no(e){let{t:n}=(0,i.Bd)(),[a,r]=(0,v.useState)(!1),[l,c]=(0,v.useState)(""),[d,u]=(0,v.useState)(!1),m=e.table.getFilteredSelectedRowModel().rows.map(e=>e.original),h=m.filter(n=>e.canCopyToken(n)),g=async(e,a)=>{let t=await (0,w.l)(e);(r(!1),t)?y.oR.success(n("Copied {{count}} key(s)",{count:a})):c(e)};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(s.Of,{table:e.table,entityName:n("organization key"),children:[(0,t.jsxs)(ed.m_,{children:[(0,t.jsxs)(ed.k$,{render:(0,t.jsx)(_.$,{variant:"outline",size:"icon",className:"size-8","aria-label":n("Copy selected keys"),onClick:()=>{0===h.length?y.oR.error(n("Select at least one key first.")):r(!0)}}),children:[(0,t.jsx)(nt.A,{className:"size-4"}),(0,t.jsx)("span",{className:"sr-only",children:n("Copy selected keys")})]}),(0,t.jsx)(ed.ZI,{children:(0,t.jsx)("p",{children:n("Copy selected keys")})})]}),(0,t.jsxs)(ed.m_,{children:[(0,t.jsxs)(ed.k$,{render:(0,t.jsx)(_.$,{variant:"destructive",size:"icon",className:"size-8","aria-label":n("Delete selected keys"),onClick:()=>{let a=(0,o.gy)(m,e.canDeleteToken);0===a.selectedCount?y.oR.error(n("Select at least one key first.")):a.request?u(!0):y.oR.error(n("Cannot delete: {{unauthorized}} of the {{total}} selected keys are not yours to remove.",{unauthorized:a.unauthorizedCount,total:a.selectedCount}))}}),children:[(0,t.jsx)(Z.A,{className:"size-4"}),(0,t.jsx)("span",{className:"sr-only",children:n("Delete selected keys")})]}),(0,t.jsx)(ed.ZI,{children:(0,t.jsx)("p",{children:n("Delete selected keys")})})]})]}),(0,t.jsx)(en.l,{open:a,onOpenChange:r,title:n("Copy selected keys"),description:n("Choose what to put on the clipboard. {{count}} key(s) will be copied.",{count:h.length}
5),contentHeight:"auto",footer:(0,t.jsx)(_.$,{type:"button",variant:"outline",onClick:()=>r(!1),children:n("Cancel")}),children:(0,t.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row",children:[(0,t.jsx)(_.$,{type:"button",variant:"outline",className:"flex-1",onClick:()=>void g(h.map(e=>`${e.name}	${(0,o.bR)(e)}`).filter(e=>e.trim().length>1).join("\n"),h.length),children:n("Name and key")}),(0,t.jsx)(_.$,{type:"button",className:"flex-1",onClick:()=>void g(h.map(e=>(0,o.bR)(e)).filter(Boolean).join("\n"),h.length),children:n("Key only")})]})}),(0,t.jsx)(en.l,{open:""!==l,onOpenChange:e=>!e&&c(""),title:n("Copy these keys"),description:n("The clipboard is unavailable in this browser, so the keys are shown here to copy by hand."),contentHeight:"min(50vh, 360px)",footer:(0,t.jsx)(_.$,{type:"button",variant:"outline",onClick:()=>c(""),children:n("Close")}),children:(0,t.jsx)(eG.T,{readOnly:!0,value:l,className:"min-h-40 font-mono text-xs",onFocus:e=>e.currentTarget.select()})}),(0,t.jsx)(nl,{organizationId:e.organizationId,tokens:d?m:[],onOpenChange:u,onDeleted:async()=>{e.table.resetRowSelection(),await e.onDeleted()}})]})}var nc=a(8802),nd=a(18353),nu=a(87212),nm=a(4834);let nh="organization-token-form",ng="none";function nx(e){let{t:n}=(0,i.Bd)(),a=(0,g.mn)(),[s,r]=(0,v.useState)(!1),[d,u]=(0,v.useState)(null),m=e.editing,h=null!==m,x=(0,Y.mN)({resolver:(0,X.u)(o.S5),defaultValues:o.sT}),p=x.watch("unlimited_quota"),j=x.watch("group"),b=x.watch("visibility"),{options:f,isLoading:z}=(0,e9.m)(a,e.organizationId,b,e.open&&e.canManageAllTokens),{data:w}=(0,c.I)({queryKey:["user-models"],queryFn:nm.QK,enabled:e.open,staleTime:0});(0,v.useEffect)(()=>{e.open&&x.reset(m?(0,o.cf)(m):{...o.sT,responsible_user_id:e.canManageAllTokens&&e.isOrganizationMember?e.currentUserId:void 0,group:""})},[e.open,m,e.canManageAllTokens,e.isOrganizationMember,e.currentUserId,x]),(0,v.useEffect)(()=>{if(!e.open||!e.canManageAllTokens||z||0===f.length)return;let n=x.getValues("responsible_user_id");void 0===n||f.some(e=>e.value===n)||x.setValue("responsible_user_id",void 0)},[e.open,e.canManageAllTokens,z,f,x]);let N=async t=>{let i=(0,o.mi)(t,{canManageAllTokens:e.canManageAllTokens,editing:m??void 0});if(h&&m){let s=await (0,l.aq)(a,e.organizationId,m.id,i);return s.success?(e.canManageAllTokens&&(0,o.IZ)(m,t.responsible_user_id
5)&&await (0,l.gU)(a,e.organizationId,m.id,{responsible_user_id:Number(t.responsible_user_id)}),y.oR.success(n("Organization key updated")),e.onOpenChange(!1),void await e.onSaved()):void y.oR.error(s.message||n("Failed to save organization key"))}let s=t.token_count??1;if(s>1){let a=await (0,l.Sv)(e.organizationId,{...i,token_count:s});if(!a.success||!a.data)return void y.oR.error(a.message||n("Failed to create organization key"));u(a.data)}else{let a=await (0,l.Li)(e.organizationId,i);if(!a.success)return void y.oR.error(a.message||n("Failed to create organization key"));a.data&&u({tokens:[a.data],token_count:1,secret_available:!!a.data.key})}y.oR.success(n("Organization key created")),e.onOpenChange(!1),await e.onSaved()},C=async e=>{r(!0);try{await N(e)}catch(e){y.oR.error((0,o.Vk)(e,n("Failed to save organization key")))}finally{r(!1)}},I=o.$h,S=Object.entries(o.$3).map(e=>{let[a,t]=e;return{value:a,label:n(t.labelKey)}}),R=f.map(e=>({value:String(e.value),label:e.label})),F=[{value:ng,label:n("The organization's group")},...e.groupOptions.map(e=>({value:e.value,label:e.desc?`${e.label} \xb7 ${e.desc}`:e.label}))];return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(en.l,{open:e.open,onOpenChange:e.onOpenChange,title:h?n("Edit organization key"):n("Create organization key"),description:h?n("Change what this key may do. Its secret does not change."):n("The key belongs to the organization and is charged to it, not to your personal quota."),contentHeight:"min(80vh, 720px)",bodyClassName:"space-y-5",footer:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(_.$,{type:"button",variant:"outline",onClick:()=>e.onOpenChange(!1),disabled:s,children:n("Cancel")}),(0,t.jsxs)(_.$,{type:"submit",form:nh,disabled:s,children:[s?(0,t.jsx)(W.A,{className:"animate-spin"}):null,h?n("Save changes"):n("Create")]})]}),children:(0,t.jsx)(ea.lV,{...x,children:(0,t.jsxs)("form",{id:nh,onSubmit:x.handleSubmit(C),className:"space-y-5",children:[(0,t.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,t.jsx)(ea.zB,{control:x.control,name:"name",render:e=>{let{field:a}=e;return(0,t.jsxs)(ea.eI,{children:[(0,t.jsx)(ea.lR,{children:n("Name")}),(0,t.jsx)(ea.MJ,{children:(0,t.jsx)(et.p,{placeholder:n("ci key"),...a})}),(0,t.jsx)(ea.C5,{})]})}}),h?null:(0,t.jsx)(ea.zB,{control:x.control,name:"token_count",render:e=>{let{field:a}=e;return(0,t.jsxs)(ea.eI,{children:[(0,t.jsx)(ea.lR,{children:n("Create count")}),(0,t.jsx)(ea.MJ,{children:(0,t.jsx)(et.p,{...a,type:"number",min:"1",max:"100",onChange:e=>a.onChange(Number.parseInt(e.target.value,10)||1)})}),(0,t.jsx)(ea.Rr,{children:n("More than one creates a batch, and every key in it is returned once.")}),(0,t.jsx)(ea.C5,{})]})}})]}),e.canManageAllTokens?(0,t.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2",children:[(0,t.jsx)(ea.zB,{control:x.control,name:"visibility",render:e=>{let{field:a}=e;return(0,t.jsxs)(ea.eI,{children:[(0,t.jsx)(ea.lR,{children:n("Visibility")}),(0,t.jsxs)(k.l6,{items:S,value:a.value,onValueChange:a.onChange,children:[(0,t.jsx)(ea.MJ,{children:(0,t.jsx)(k.bq,{className:"w-full",children:(0,t.jsx)(k.yv,{})})}),(0,t.jsx)(k.gC,{children:S.map(e=>(0,t.jsx)(k.eb,{value:e.value,children:e.label},e.value))})]}),(0,t.jsx)(ea.Rr,{children:n((0,o.Qe)(a.value).descriptionKey)}),(0,t.jsx)(ea.C5,{})]})}}),(0,t.jsx)(ea.zB,{control:x.control,name:"responsible_user_id",render:e=>{let{field:a}=e;return(0,t.jsxs)(ea.eI,{children:[(0,t.jsx)(ea.lR,{children:n("Responsible user")}),(0,t.jsxs)(k.l6,{items:R,value:void 0===a.value?"":String(a.value),onValueChange:e=>a.onChange(""===e||null===e?void 0:Number(e)),disabled:z,children:[(0,t.jsx)(ea.MJ,{children:(0,t.jsx)(k.bq,{className:"w-full",children:(0,t.jsx)(k.yv,{placeholder:n("Select a member")})})}),(0,t.jsx)(k.gC,{children:R.map(e=>(0,t.jsx)(k.eb,{value:e.value,children:e.label},e.value))})]}),(0,t.jsx)(ea.Rr,{children:n("The member this key belongs to. Only they, and an administrator, may change it.")}),(0,t.jsx)(ea.C5,{})]})}})]}):null,(0,t.jsxs)("div",{className:"space-y-4 rounded-lg border p-4",children:[(0,t.jsx)(ea.zB,{control:x.control,name:"unlimited_quota",render:e=>{let{field:a}=e;return(0,t.jsxs)(ea.eI,{className:"flex flex-row items-start justify-between gap-4",children:[(0,t.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,t.jsx)(ea.lR,{className:"text-sm",children:n("Unlimited Quota")}),(0,t.jsx)(ea.Rr,{className:"text-xs",children:n("Usage is still limited by what the organization has left.")})]}),(0,t.jsx)(ea.MJ,{children:(0,t.jsx)(nu.d,{checked:a.value,onCheckedChange:a.onChange})})]})}}),p?null:(0,t.jsx)(ea.zB,{control:x.control,name:"remain_quota_dollars",render:e=>{let{field:a}=e;return(0,t.jsxs)(ea.eI,{children:[(0,t.jsx)(ea.lR,{children:n("Key quota limit")}),(0,t.jsx)(ea.MJ,{children:(0,t.jsx)(et.p,{...a,type:"number",min:"0",step:"0.01",placeholder:n("Enter key quota limit"),onChange:e=>a.onChange(Number.parseFloat(e.target.value)||0)})}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1 pt-1",children:I.map(e=>(0,t.jsx)(_.$,{type:"button",variant:"outline",size:"xs",onClick:()=>x.setValue("remain_quota_dollars",e,{shouldValidate:!0}),children:n("{{amount}} dollars",{amount:e})},e))}),(0,t.jsx)(ea.Rr,{children:n("Limits what this one key may spend. The organization pays for whatever it does use.")}),(0,t.jsx)(ea.C5,{})]})}})]}),(0,t.jsx)(ea.zB,{control:x.control,name:"expired_time",render:e=>{let{field:a}=e;return(0,t.jsxs)(ea.eI,{children:[(0,t.jsx)(ea.lR,{children:n("Expiration Time")}),(0,t.jsx)(ea.MJ,{children:(0,t.jsx)(nc.K,{value:a.value,onChange:a.onChange,placeholder:n("Select expiration time")})}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1 pt-1",children:o.uJ.map(e=>(0,t.jsx)(_.$,{type:"button",variant:"outline",size:"xs",onClick:()=>a.onChange(null===e.seconds?void 0:new Date(Date.now()+1e3*e.seconds)),children:n(e.labelKey)},e.labelKey))}),(0,t.jsx)(ea.Rr,{children:n("Left empty, the key never expires. It still stops working if the responsible member is disabled.")}),(0,t.jsx)(ea.C5,{})]})}}),(0,t.jsx)(ea.zB,{control:x.control,name:"group",render:e=>{let{field:a}=e;return(0,t.jsxs)(ea.eI,{children:[(0,t.jsx)(ea.lR,{children:n("Token group")}),(0,t.jsxs)(k.l6,{items:F,value:a.value||ng,onValueChange:e=>a.onChange(e===ng||null===e?"":e),children:[(0,t.jsx)(ea.MJ,{children:(0,t.jsx)(k.bq,{className:"w-full",children:(0,t.jsx)(k.yv,{})})}),(0,t.jsx)(k.gC,{children:F.map(e=>(0,t.jsx)(k.eb,{value:e.value,children:e.label},e.value))})]}),(0,t.jsx)(ea.Rr,{children:n("Token group, defaults to the organization base group")}),(0,t.jsx)(ea.C5,{})]})}}),"auto"===j?(0,t.jsx)(ea.zB,{control:x.control,name:"cross_group_retry",render:e=>{let{field:a}=e;return(0,t.jsxs)(ea.eI,{className:"flex flex-row items-start justify-between gap-4",children:[(0,t.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,t.jsx)(ea.lR,{className:"text-sm",children:n("Cross-group retry")}),(0,t.jsx)(ea.Rr,{className:"text-xs",children:n("Retry a failed request on another group in the Auto pool.")})]}),(0,t.jsx)(ea.MJ,{children:(0,t.jsx)(nu.d,{checked:a.value,onCheckedChange:a.onChange})})]})}}):null,(0,t.jsx)(ea.zB,{control:x.control,name:"model_limits",render:e=>{let{field:a}=e;return(0,t.jsxs)(ea.eI,{children:[(0,t.jsx)(ea.lR,{children:n("Model Limits")}),(0,t.jsx)(ea.MJ,{children:(0,t.jsx)(nd.K,{options:(w?.data??[]).map(e=>({label:e,value:e})),selected:a.value,onChange:a.onChange,placeholder:n("Select allowed models; leave empty for no limit")})}),(0,t.jsx)(ea.Rr,{children:n("Limit which models can be used with this key")}),(0,t.jsx)(ea.C5,{})]})}}),(0,t.jsx)(ea.zB,{control:x.control,name:"allow_ips",render:e=>{let{field:a}=e;return(0,t.jsxs)(ea.eI,{children:[(0,t.jsx)(ea.lR,{children:n("IP limits")}),(0,t.jsx)(ea.MJ,{children:(0,t.jsx)(eG.T,{...a,className:"min-h-20 resize-none",rows:3,placeholder:n("One IP per line; leave empty for no limit")})}),(0,t.jsx)(ea.C5,{})]})}})]})})}),(0,t.jsx)(np,{result:d,onClose:()=>u(null)})]})}function np(e){let{t:n}=(0,i.Bd)(),a=e.result,s=a?.tokens??[],r=!!a?.secret_available,l=a?.token_count??s.length;return(0,t.jsxs)(en.l,{open:null!==a,onOpenChange:n=>!n&&e.onClose(),title:n("Created organization keys"),description:r?n("These keys were created. You can copy them now, or view and copy authorized keys later from the list."):n("This batch request was safely replayed. Existing keys are shown as summaries here; authorized keys can be viewed and copied from the list."),contentHeight:"min(70vh, 560px)",bodyClassName:"space-y-2",footer:(0,t.jsxs)(t.Fragment,{children:[r?(0,t.jsx)(_.$,{type:"button",onClick:()=>void nj(s,n("Copied to clipboard!"),n("Failed to copy to clipboard")),children:n("Copy all created keys")}):null,(0,t.jsx)(_.$,{type:"button",variant:"outline",onClick:e.onClose,children:n("Close")})]}),children:[s.map((e,a)=>(0,t.jsxs)("div",{className:"rounded-lg border p-3",children:[(0,t.jsxs)("div",{className:"mb-2 flex items-center justify-between gap-2",children:[(0,t.jsx)("span",{className:"truncate text-sm font-medium",children:e.name||n("Created key {{index}}",{index:a+1})}),(0,t.jsxs)("span",{className:"text-muted-foreground font-mono text-xs",children:["#",e.id]})]}),(0,t.jsx)(ns,{token:e,canCopy:r})]},e.id)),(0,t.jsx)("p",{className:"text-muted-foreground pt-2 text-xs",children:n("{{count}} organization key(s) affected.",{count:l})})]})}async function nj(e,n,a){let t=e.map(e=>{let n=(0,o.bR)(e);
5return n?`${e.name||e.id}	${n}`:""}).filter(Boolean);0===t.length?y.oR.error(a):await (0,w.l)(t.join("\n"))?y.oR.success(n):y.oR.error(a)}function nb(e,n){let a=e.find(e=>e.id===n)?.value;return Array.isArray(a)?a[0]:"string"==typeof a&&a?a:void 0}function nv(e){let{t:n}=(0,i.Bd)(),{search:a,navigate:d}=(0,g.Po)(),u=(0,g.mn)(),[h,p]=(0,v.useState)(!1),[j,b]=(0,v.useState)(null),[k,z]=(0,v.useState)(null),{globalFilter:w,onGlobalFilterChange:C,pagination:I,onPaginationChange:S,columnFilters:R,onColumnFiltersChange:F,ensurePageInRange:A}=(0,r.c)({search:a,navigate:d,pagination:{defaultPage:1,defaultPageSize:10},globalFilter:{enabled:!0,key:"tokenFilter"},columnFilters:[{columnId:"status",searchKey:"tokenStatus",type:"array"},{columnId:"visibility",searchKey:"tokenVisibility",type:"array"},{columnId:"group",searchKey:"tokenGroup",type:"array"},{columnId:"responsible_user_id",searchKey:"tokenResponsible",type:"array"}]}),T={p:I.pageIndex+1,page_size:I.pageSize,keyword:w||void 0,status:Number.parseInt(nb(R,"status")??"",10)||void 0,visibility:nb(R,"visibility"),group:nb(R,"group"),responsible_user_id:Number.parseInt(nb(R,"responsible_user_id")??"",10)||void 0},O=m({surface:u,organizationId:e.organizationId,resource:"tokens",params:T,query:()=>(0,l.OK)(u,e.organizationId,T),enabled:e.canView,onForbidden:e.onForbidden}),{data:M}=(0,c.I)({queryKey:["organization-groups",u,e.organizationId],queryFn:()=>(0,l.sS)(u,e.organizationId),enabled:e.canView,staleTime:3e5}),K=(0,v.useMemo)(()=>(0,o.hR)(M?.data),[M]),{options:q}=(0,e9.m)(u,e.organizationId,"private",e.canManageAllTokens),V=n=>(0,o.qx)(n,{canManageAllTokens:e.canManageAllTokens,currentUserId:e.currentUserId,readOnly:e.readOnly}),L=async(a,t)=>{try{let i=await (0,l.aq)(u,e.organizationId,a.id,(0,o.RD)(a,t));if(!i.success)return void y.oR.error(i.message||n("Failed to update organization key"));y.oR.success(t===o.P.ENABLED?n("Organization key enabled"):n("Organization key disabled")),O.refetch()}catch(e){y.oR.error((0,o.Vk)(e,n("Failed to update organization key")))}},D=(0,v.useMemo)(()=>(function(e){let{t:n}=e;return[{accessorKey:"name",header:n("Name"),enableSorting:!1,size:160,cell:e=>{let{row:n}=e;return(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("div",{className:"truncate font-medium",children:n.original.name||"-"}),(0,t.jsxs)("div",{className:"text-muted-foreground text-xs",children:["#",n.original.id]})]})}},{accessorKey:"key",header:n("Key"),enableSorting:!1,size:240,cell:n=>{let{row:a}=n;return(0,t.jsx)(ns,{token:a.original,canCopy:e.flagsFor(a.original).canCopy})}},{accessorKey:"status",header:n("Status"),enableSorting:!1,size:110,cell:e=>{let{row:a}=e,i=(0,o.qc)(a.original.status);return(0,t.jsx)(f.Wh,{label:n(i.labelKey),variant:i.variant,copyable:!1})}},{accessorKey:"responsible_user_id",header:n("Responsible user"),enableSorting:!1,size:140,cell:e=>{let{row:n}=e;return(0,t.jsx)("span",{className:"truncate font-medium",children:n.original.responsible_username||n.original.responsible_display_name||"-"})}},{accessorKey:"visibility",header:n("Visibility"),enableSorting:!1,size:110,cell:e=>{let{row:a}=e;return(0,t.jsx)("span",{className:"text-sm",children:n((0,o.Qe)(a.original.visibility).labelKey)})}},{accessorKey:"group",header:n("Token group"),enableSorting:!1,size:140,cell:n=>{let{row:a}=n,i=a.original.group||e.organizationGroup||"default",s=e.groupOptions.find(e=>e.value===i);return(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("div",{className:"truncate",children:i}),s?.desc&&s.desc!==i?(0,t.jsx)("div",{className:"text-muted-foreground truncate text-xs",children:s.desc}):null]})}},{accessorKey:"remain_quota",header:n("Remaining quota"),enableSorting:!1,size:130,cell:e=>{let{row:a}=e;return a.original.unlimited_quota?(0,t.jsx)(e7.E,{variant:"secondary",children:n("Unlimited")}):(0,t.jsx)("span",{className:"whitespace-nowrap tabular-nums",children:(0,N.eN)(a.original.remain_quota??0)})}},{accessorKey:"used_quota",header:n("Used Quota"),enableSorting:!1,size:120,cell:e=>{let{row:n}=e;return(0,t.jsx)("span",{className:"whitespace-nowrap tabular-nums",children:(0,N.eN)(n.original.used_quota??0)})}},{accessorKey:"model_limits",header:n("Model Limits"),enableSorting:!1,size:160,cell:e=>{let{row:a}=e;if(!a.original.model_limits_enabled||!a.original.model_limits)return(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:n("No limit")});
5let i=a.original.model_limits.split(",").filter(Boolean);return(0,t.jsx)(e8.Y,{items:i.map(e=>(0,t.jsx)(e7.E,{variant:"outline",className:"font-mono text-xs",children:e},e))})}},{accessorKey:"allow_ips",header:n("IP limits"),enableSorting:!1,size:160,cell:e=>{let{row:a}=e,i=String(a.original.allow_ips??"").split("\n").map(e=>e.trim()).filter(Boolean);return 0===i.length?(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:n("No limit")}):(0,t.jsx)(e8.Y,{items:i.map(e=>(0,t.jsx)(e7.E,{variant:"outline",className:"font-mono text-xs",children:e},e))})}},{accessorKey:"created_time",header:n("Created At"),enableSorting:!1,size:170,cell:e=>{let{row:n}=e;return(0,t.jsx)("span",{className:"text-muted-foreground text-sm whitespace-nowrap",children:n.original.created_time?(0,N.Ey)(n.original.created_time):"-"})}},{accessorKey:"accessed_time",header:n("Last Used"),enableSorting:!1,size:170,cell:e=>{let{row:n}=e;return(0,t.jsx)("span",{className:"text-muted-foreground text-sm whitespace-nowrap",children:n.original.accessed_time?(0,N.Ey)(n.original.accessed_time):"-"})}},{accessorKey:"expired_time",header:n("Expires at"),enableSorting:!1,size:150,cell:e=>{let{row:a}=e;return(0,t.jsx)("span",{className:"text-muted-foreground text-sm whitespace-nowrap",children:a.original.expired_time&&-1!==a.original.expired_time?(0,N.Ey)(a.original.expired_time):n("Never expires")})}},{id:"actions",header:n("Actions"),enableSorting:!1,enableHiding:!1,size:80,cell:n=>{let{row:a}=n;return(0,t.jsx)(ny,{context:e,token:a.original})}}]})({t:n,organizationGroup:e.organizationGroup,groupOptions:K,flagsFor:V,onEdit:e=>b(e),onDelete:e=>z(e),onChangeStatus:(e,n)=>void L(e,n)}),[n,e.organizationGroup,e.organizationId,e.canManageAllTokens,e.currentUserId,e.readOnly,K,O.refetch]),{table:P}=(0,s.uI)({data:O.items,columns:D,pagination:I,onPaginationChange:S,manualPagination:!0,manualFiltering:!0,totalCount:O.total,enableRowSelection:!0,getRowId:e=>String(e.id),globalFilter:w,onGlobalFilterChange:C,columnFilters:R,onColumnFiltersChange:F,ensurePageInRange:A,columnVisibilityStorageKey:"organization-tokens-column-visibility"});return e.canView?(0,t.jsxs)(x.Zk,{icon:"tokens",title:n("API Keys"),description:n("Keys that spend the organization quota. A key belongs to the organization, not to the member holding it."),count:O.total,actions:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(x.UD,{onClick:()=>void O.refetch(),isFetching:O.isFetching}),!e.readOnly&&e.canCreate?(0,t.jsxs)(_.$,{size:"sm",onClick:()=>p(!0),children:[(0,t.jsx)(e4.A,{"data-icon":"inline-start"}),n("Create key")]}):null]}),children:[(0,t.jsx)(s.cx,{table:P,columns:D,isLoading:O.isLoading,isFetching:O.isFetching,emptyTitle:n("No keys yet"),emptyDescription:n("No organization keys match the current filters."),skeletonKeyPrefix:"organization-tokens-skeleton",applyHeaderSize:!0,toolbarProps:{searchPlaceholder:n("Search by key name..."),searchDebounceMs:500,filters:[{columnId:"status",title:n("Status"),singleSelect:!0,options:o.Nz.map(e=>({value:e.value,label:n(e.labelKey)}))},{columnId:"visibility",title:n("Visibility"),singleSelect:!0,options:Object.entries(o.$3).map(e=>{let[a,t]=e;return{value:a,label:n(t.labelKey)}})},{columnId:"group",title:n("Token group"),singleSelect:!0,options:K.map(e=>({value:e.value,label:e.label}))},...e.canManageAllTokens?[{columnId:"responsible_user_id",title:n("Responsible user"),singleSelect:!0,options:q.map(e=>({value:String(e.value),label:e.label}))}]:[]]},getRowClassName:(e,n)=>{let{isMobile:a}=n;if(e.original.status===o.P.DISABLED)return a?s.Z0:s.JM},bulkActions:(0,t.jsx)(no,{organizationId:e.organizationId,table:P,canDeleteToken:e=>V(e).canDelete,canCopyToken:e=>V(e).canCopy,onDeleted:()=>O.refetch()})}),e.canCreate&&(0,t.jsx)(nx,{organizationId:e.organizationId,open:h,onOpenChange:p,editing:null,canManageAllTokens:e.canManageAllTokens,currentUserId:e.currentUserId,isOrganizationMember:e.isOrganizationMember,groupOptions:K,onSaved:()=>O.refetch()}),(0,t.jsx)(nx,{organizationId:e.organizationId,open:null!==j,onOpenChange:e=>!e&&b(null),editing:j,canManageAllTokens:e.canManageAllTokens,currentUserId:e.currentUserId,isOrganizationMember:e.isOrganizationMember,groupOptions:K,onSaved:()=>O.refetch()}),(0,t.jsx)(nr,{organizationId:e.organizationId,token:k,onOpenChange:e=>!e&&z(null),onDeleted:()=>O.refetch()})]}):(0,t.jsx)(x.Gx,{icon:"tokens",title:n("API Keys"),message:n("You do not have access to this organization.")})}function ny(e){let{t:n}=(0,i.Bd)(),a=e.context.flagsFor(e.token);if(!a.canEdit&&!a.canDelete)return null;let s=e.token.status===o.P.ENABLED;return(0,t.jsxs)(J.C,{ariaLabel:n("Open menu"),contentClassName:"w-44",children:[(0,t.jsx)(G._2,{onSelect:()=>e.context.onChangeStatus(e.token,s?o.P.DISABLED:o.P.ENABLED),disabled:!a.canEdit,children:n(s?"Disable":"Enable")}),(0,t.jsx)(G._2,{onSelect:()=>e.context.onEdit(e.token),disabled:!a.canEdit,children:n("Edit")}),(0,t.jsx)(G.mB,{}),(0,t.jsxs)(G._2,{onSelect:()=>e.context.onDelete(e.token),className:"text-destructive focus:text-destructive",disabled:!a.canDelete,children:[n("Delete"),(0,t.jsx)(G.V0,{children:(0,t.jsx)(Z.A,{size:16})})]})]})}function nf(e){let n=(0,g.mn)(),{organization:a,actor:i}=e.detail,s=i.capabilities,r="admin"===n;switch(e.tab){case"overview":return(0,t.jsx)(eW,{organization:a,canViewUsage:s.can_view_organization_usage,onForbidden:e.onForbidden});
5case"settings":return(0,t.jsx)(eX,{organization:a,canUpdate:s.can_update_organization,readOnly:e.readOnly,onUpdated:e.onUpdated});case"members":return(0,t.jsx)(eF,{organizationId:a.id,actorRole:i.organization_role||i.role,currentUserId:i.user_id,canView:s.can_view_organization,canManageMembers:s.can_manage_members,canAddMembersDirectly:s.can_add_members_directly,canExitOrganization:s.can_exit_organization,isPlatformAdministrator:r&&i.is_platform_admin,readOnly:e.readOnly,onForbidden:e.onForbidden,onLeftOrganization:e.onLeftOrganization});case"invitations":return(0,t.jsx)(el,{organizationId:a.id,canViewInvites:s.can_view_invites,canCreateInvites:s.can_create_invites,canRevokeInvites:s.can_revoke_invites,readOnly:e.readOnly,onForbidden:e.onForbidden});case"tokens":return(0,t.jsx)(nv,{organizationId:a.id,organizationGroup:a.group??"",canView:s.can_view_organization_tokens,canManageAllTokens:s.can_manage_all_tokens,canCreate:!r,currentUserId:i.user_id,isOrganizationMember:i.is_organization_member,readOnly:e.readOnly,onForbidden:e.onForbidden});case"logs":return(0,t.jsx)(ey,{organizationId:a.id,canView:s.can_view_organization_logs,canViewWideData:s.can_view_organization_wide_data,onForbidden:e.onForbidden});case"usage":return(0,t.jsx)($,{organizationId:a.id,canView:s.can_view_organization_usage,canViewWideData:s.can_view_organization_wide_data,onForbidden:e.onForbidden});case"tasks":return(0,t.jsx)(e6,{organizationId:a.id,canView:s.can_view_organization_logs,canViewWideData:s.can_view_organization_wide_data,onForbidden:e.onForbidden});case"audit-logs":return(0,t.jsx)(p,{organizationId:a.id,canViewAudit:s.can_view_audit,onForbidden:e.onForbidden});default:return(0,t.jsx)(n_,{tab:e.tab})}}function n_(e){let{tab:n}=e,{t:a}=(0,i.Bd)();return(0,t.jsx)(x.Gx,{icon:n,title:a("Organization"),message:a("This section is not available yet.")})}},35612(e,n,a){var t=a(53540),i=a(36028),s=a(29310);function r(e,n){let a=Number(n),r=Number.isFinite(a)&&a>0,{data:l,refetch:o}=(0,t.I)({queryKey:["organization",e,a,(0,i.oD)()],queryFn:async()=>{let n=await (0,s.SA)(e,a);return n.success&&n.data?n.data:null},enabled:r});return{detail:r?l:null,refetch:o}}a.d(n,{Y:()=>r})},74784(e,n,a){var t=a(53540),i=a(36028),s=a(29310),r=a(92609);async function l(e,n){let a=[],t=1/0;for(let i=1;i<=20&&a.length<t;i+=1){let r=await (0,s.rF)(e,n,{p:i,page_size:100});if(!r.success)break;let l=r.data?.items??[];if(a.push(...l),t=r.data?.total??a.length,0===l.length)break}return a}function o(e,n,a){let{data:s,isLoading:r}=(0,t.I)({queryKey:["organization-member-options",e,n,(0,i.oD)()],queryFn:async()=>{try{return await l(e,n)}catch{return[]}},enabled:a});return{members:s??[],isLoading:r}}function c(e,n,a,t){let{members:i,isLoading:s}=o(e,n,t);return{options:(0,r.xc)(i,a),isLoading:s}}function d(e,n,a,t){let{members:i,isLoading:s}=o(e,n,t);return{options:(0,r.BR)(i,a),isLoading:s}}a.d(n,{T:()=>c,m:()=>d})}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.