1import{r as n,b as re,h as ie,u as ne,k as O,j as e,B as i,C as l,a as d,d as o,e as m,i as j,f as _}from"./index-CQB7axlb.js";import{H as ce}from"./HelpHint-3fNipqJi.js";import{u as Y}from"./useMutation-BaBHmoYR.js";import{B as P}from"./badge-B31s6Dd9.js";import{T as oe,a as me,b as I,c as D}from"./tabs-B8tsNFbc.js";import{S as xe}from"./scroll-area-DV8eOuve.js";import{D as he,f as ue,a as ge,b as pe,c as je,d as ve}from"./dialog-VP-3WE7B.js";import{I as w}from"./input-Eb95lEVt.js";import{L as h}from"./label-BLbO5QZJ.js";import{T as le}from"./textarea-S8kSCx3O.js";import{S as be}from"./switch-CUnqZOtA.js";import{S as fe,a as Ne,b as ye,c as we,d as se}from"./select-DjE7Gzrh.js";import{u as Se}from"./index.esm-YVubT__9.js";import{A as ke}from"./arrow-left-zrXqCYoE.js";import{P as U}from"./plus-8TC9bf-Q.js";import{U as V}from"./users-CtqKI9u9.js";import{S as Ce}from"./settings-BuWYdu1k.js";import{T as ze}from"./trash-2-BYM4lN8L.js";import{B as de}from"./building-2-DFEvTCze.js";import{U as Ee}from"./user-WTnYqB9m.js";import{C as Te}from"./clock-B6YOAUsz.js";import{M as Ie}from"./message-square-Co9_N8qB.js";import{C as De}from"./calendar-u6F9xvI0.js";import{A as te}from"./activity-BOMxSNus.js";import{S as Oe}from"./shield-DeYDnETN.js";import{S as Pe,P as Ae}from"./shield-check-0scKYo1F.js";import{S as ae}from"./sparkles-D-ieNZvl.js";import{L as Le}from"./lock-OHyhW9Ir.js";import{S as qe}from"./server-DTjVdSIP.js";import"./popover-B0llVnnR.js";import"./Combination-kJrX_oFv.js";import"./circle-help-C9xOo5VR.js";import"./arrow-right-B4iJfct2.js";import"./index-CQ5JTLmC.js";import"./index-DAnfDYfz.js";import"./index-BdQq_4o_.js";import"./index-DwZBC1b0.js";import"./check-CbmKP4KK.js";function ys(){const[r,v]=n.useState(null),[R,b]=n.useState(!1),{toast:g}=re(),t=ie(),[,K]=ne(),{register:f,handleSubmit:A,reset:L,setValue:q,formState:{errors:p}}=Se(),[M,S]=n.useState(!1),$=s=>s.toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,60),{data:k=[],isLoading:F}=O({queryKey:["/api/organizations"]}),{data:c}=O({queryKey:[`/api/organizations/${r}`],enabled:!!r}),{data:C=[]}=O({queryKey:[`/api/organizations/${r}/members`],enabled:!!r}),{data:z=[]}=O({queryKey:[`/api/organizations/${r}/activities`],enabled:!!r}),N=Y({mutationFn:async s=>await _("POST","/api/organizations",s),onSuccess:()=>{t.invalidateQueries({queryKey:["/api/organizations"]}),b(!1),L(),S(!1),g({title:"Success",description:"Organization created successfully!"})},onError:s=>{g({title:"Error",description:s.message,variant:"destructive"})}}),E=Y({mutationFn:async s=>await _("DELETE",`/api/organizations/${s}`),onSuccess:()=>{t.invalidateQueries({queryKey:["/api/organizations"]}),v(null),g({title:"Team deleted",description:"The organization and its memberships were removed."})},onError:s=>{g({title:"Couldn't delete team",description:s.message,variant:"destructive"})}}),T=s=>{N.mutate(s)},B=s=>{window.confirm(`Delete "${s.name}"? This removes the team and all its memberships. This cannot be undone.`)&&E.mutate(s.id)},u=s=>s?new Date(s).toLocaleString():"Never",H=s=>{switch(s){case"owner":return"bg-purple-100 text-purple-800 dark:bg-purple-900 dark:text-purple-300";case"admin":return"bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-300";case"member":return"bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-300";case"viewer":return"bg-gray-100 text-gray-800 dark:bg-gray-800 dark:text-gray-300";default:return"bg-gray-100 text-gray-800 dark:bg-gray-800 dark:text-gray-300"}},Q=s=>{switch(s){case"member_added":return e.jsx(V,{className:"h-4 w-4"});case"agent_created":return e.jsx(U,{className:"h-4 w-4"});case"dashboard_created":return e.jsx(te,{className:"h-4 w-4"});case"permission_granted":return e.jsx(Oe,{className:"h-4 w-4"});default:return e.jsx(te,{className:"h-4 w-4"})}};return F?e.jsx("div",{className:"min-h-screen bg-gray-50 dark:bg-gray-900 p-6",children:e.jsx("div",{className:"max-w-7xl mx-auto",children:e.jsxs("div",{className:"animate-pulse space-y-4",children:[e.jsx("div",{className:"h-8 bg-gray-200 dark:bg-gray-700 rounded w-1/3"}),e.jsx("div",{className:"h-4 bg-gray-200 dark:bg-gray-700 rounded w-2/3"}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:[1,2,3].map(s=>e.jsx("div",{className:"h-32 bg-gray-200 dark:bg-gray-700 rounded"},s))})]})})}):e.jsx("div",{className:"min-h-screen bg-gray-50 dark:bg-gray-900",children:e.jsxs("div",{className:"max-w-7xl mx-auto p-6",children:[e.jsxs("div",{className:"flex justify-between items-center mb-8",children:[e.jsxs("div",{className:"flex items-center space-x-4",children:[e.jsx(i,{variant:"ghost",size:"sm",onClick:()=>K("/"),className:"p-2 hover:bg-gray-100 dark:hover:bg-gray-800","data-testid":"button-back-to-dashboard",children:e.jsx(ke,{className:"w-5 h-5"})}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h1",{className:"text-3xl font-bold text-gray-900 dark:text-white",children:"Team Collaboration"}),e.jsx(ce,{title:"Team collaboration",children:"Invite members, assign roles and collaborate on agents and workflows together."})]}),e.jsx("p",{className:"text-gray-600 dark:text-gray-300 mt-2",children:"Manage organizations, teams, and shared resources"})]})]}),e.jsxs(he,{open:R,onOpenChange:b,children:[e.jsx(ue,{asChild:!0,children:e.jsxs(i,{"data-testid":"button-create-organization",children:[e.jsx(U,{className:"h-4 w-4 mr-2"}),"Create Organization"]})}),e.jsxs(ge,{children:[e.jsxs(pe,{children:[e.jsx(je,{children:"Create New Organization"}),e.jsx(ve,{children:"Set up a new team organization to collaborate on AI agents and workflows."})]}),e.jsxs("form",{onSubmit:A(T),className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx(h,{htmlFor:"name",children:"Organization Name"}),e.jsx(w,{"data-testid":"input-org-name",...f("name",{required:"Name is required",onChange:s=>{M||q("slug",$(s.target.value))}}),placeholder:"Acme Corp"}),p.name&&e.jsx("p",{className:"text-sm text-red-500 mt-1",children:p.name.message})]}),e.jsxs("div",{children:[e.jsxs(h,{htmlFor:"slug",children:["URL Slug ",e.jsx("span",{className:"text-muted-foreground font-normal",children:"(auto-filled from name)"})]}),e.jsx(w,{"data-testid":"input-org-slug",...f("slug",{pattern:{value:/^[a-z0-9-]*$/,message:"Only lowercase letters, numbers, and hyphens allowed"},onChange:()=>S(!0)}),placeholder:"acme-corp"}),p.slug&&e.jsx("p",{className:"text-sm text-red-500 mt-1",children:p.slug.message})]}),e.jsxs("div",{children:[e.jsx(h,{htmlFor:"description",children:"Description"}),e.jsx(le,{"data-testid":"input-org-description",...f("description"),placeholder:"Brief description of your organization..."})]}),e.jsxs("div",{className:"flex gap-3 pt-4",children:[e.jsx(i,{type:"submit",disabled:N.isPending,"data-testid":"button-submit-org",children:N.isPending?"Creating...":"Create Organization"}),e.jsx(i,{type:"button",variant:"outline",onClick:()=>b(!1),children:"Cancel"})]})]})]})]})]}),k.length===0?e.jsx(l,{className:"text-center py-12",children:e.jsxs(d,{children:[e.jsx(V,{className:"h-12 w-12 text-gray-400 mx-auto mb-4"}),e.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white mb-2",children:"No Organizations Yet"}),e.jsx("p",{className:"text-gray-600 dark:text-gray-300 mb-4",children:"Create your first organization to start collaborating with your team."}),e.jsxs(i,{onClick:()=>b(!0),"data-testid":"button-create-first-org",children:[e.jsx(U,{className:"h-4 w-4 mr-2"}),"Create Your First Organization"]})]})}):e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6 mb-8",children:k.map(s=>
1e.jsxs(l,{className:`cursor-pointer transition-all duration-200 hover:shadow-lg ${r===s.id?"ring-2 ring-blue-500 shadow-lg":""}`,onClick:()=>v(s.id),"data-testid":`card-organization-${s.id}`,children:[e.jsxs(o,{children:[e.jsxs(m,{className:"flex items-center justify-between",children:[e.jsx("span",{children:s.name}),e.jsx(P,{variant:"outline",className:"text-xs",children:s.plan||"free"})]}),e.jsx(j,{children:s.description})]}),e.jsx(d,{children:e.jsxs("div",{className:"flex items-center text-sm text-gray-600 dark:text-gray-300",children:[e.jsx(V,{className:"h-4 w-4 mr-1"}),e.jsxs("span",{children:[s.maxMembers," members max"]})]})})]},s.id))}),r&&c&&e.jsxs(l,{children:[e.jsxs(o,{children:[e.jsxs(m,{className:"flex items-center justify-between",children:[e.jsx("span",{children:c.name}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(i,{variant:"outline",size:"sm",children:[e.jsx(Ce,{className:"h-4 w-4 mr-2"}),"Settings"]}),e.jsxs(i,{variant:"outline",size:"sm",className:"text-red-600 hover:text-red-700 hover:bg-red-50 dark:hover:bg-red-950",onClick:()=>B(c),disabled:E.isPending,"data-testid":`button-delete-org-${c.id}`,children:[e.jsx(ze,{className:"h-4 w-4 mr-2"}),E.isPending?"Deleting...":"Delete Team"]})]})]}),e.jsx(j,{children:c.description})]}),e.jsx(d,{children:e.jsxs(oe,{defaultValue:"overview",children:[e.jsxs(me,{className:"grid w-full grid-cols-5",children:[e.jsx(I,{value:"overview","data-testid":"tab-overview",children:"Overview"}),e.jsx(I,{value:"members","data-testid":"tab-members",children:"Members"}),e.jsx(I,{value:"activities","data-testid":"tab-activities",children:"Activities"}),e.jsx(I,{value:"integrations","data-testid":"tab-integrations",children:"Integrations"}),e.jsxs(I,{value:"enterprise","data-testid":"tab-enterprise",children:[e.jsx(de,{className:"h-4 w-4 mr-2"}),"Enterprise"]})]}),e.jsx(D,{value:"overview",className:"space-y-6",children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:[e.jsxs(l,{children:[e.jsx(o,{className:"pb-3",children:e.jsx(m,{className:"text-sm font-medium",children:"Team Members"})}),e.jsxs(d,{children:[e.jsx("div",{className:"text-2xl font-bold","data-testid":"text-member-count",children:C.length}),e.jsxs("p",{className:"text-sm text-gray-600 dark:text-gray-300",children:["of ",c.maxMembers," maximum"]})]})]}),e.jsxs(l,{children:[e.jsx(o,{className:"pb-3",children:e.jsx(m,{className:"text-sm font-medium",children:"Active Agents"})}),e.jsxs(d,{children:[e.jsx("div",{className:"text-2xl font-bold","data-testid":"text-agent-count",children:"12"}),e.jsx("p",{className:"text-sm text-gray-600 dark:text-gray-300",children:"across all members"})]})]}),e.jsxs(l,{children:[e.jsx(o,{className:"pb-3",children:e.jsx(m,{className:"text-sm font-medium",children:"This Month"})}),e.jsxs(d,{children:[e.jsx("div",{className:"text-2xl font-bold","data-testid":"text-execution-count",children:"1,247"}),e.jsx("p",{className:"text-sm text-gray-600 dark:text-gray-300",children:"agent executions"})]})]})]})}),e.jsx(D,{value:"members",children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("h3",{className:"text-lg font-semibold",children:"Team Members"}),e.jsxs(i,{size:"sm","data-testid":"button-invite-member",children:[e.jsx(U,{className:"h-4 w-4 mr-2"}),"Invite Member"]})]}),e.jsx("div",{className:"space-y-3",children:C.map(s=>e.jsxs("div",{className:"flex items-center justify-between p-4 border rounded-lg","data-testid":`member-${s.id}`,children:[e.jsxs("div",{className:"flex items-center space-x-3",children:[e.jsx("div",{className:"h-10 w-10 bg-gray-200 dark:bg-gray-700 rounded-full flex items-center justify-center",children:e.jsx(Ee,{className:"h-5 w-5 text-gray-600 dark:text-gray-300"})}),e.jsxs("div",{children:[e.jsx("div",{className:"font-medium",children:s.userId}),e.jsxs("div",{className:"text-sm text-gray-600 dark:text-gray-300",children:["Joined ",u(s.createdAt)]})]})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(P,{className:H(s.role),"data-testid":`badge-role-${s.role}`,children:s.role}),e.jsx(P,{variant:"outline",className:s.status==="active"?"text-green-600":"text-gray-600",children:s.status})]})]},s.id))})]})}),e.jsx(D,{value:"activities",children:e.jsxs("div",{className:"space-y-4",children:[e.jsx("h3",{className:"text-lg font-semibold",children:"Recent Activities"}),e.jsx(xe,{className:"h-96",children:e.jsxs("div",{className:"space-y-3",children:[z.map(s=>e.jsxs("div",{className:"flex items-start space-x-3 p-3 border rounded-lg","data-testid":`activity-${s.id}
1`,children:[e.jsx("div",{className:"h-8 w-8 bg-blue-100 dark:bg-blue-900 rounded-full flex items-center justify-center",children:Q(s.activityType)}),e.jsxs("div",{className:"flex-1",children:[e.jsx("div",{className:"font-medium",children:s.description}),e.jsxs("div",{className:"flex items-center space-x-2 mt-1 text-sm text-gray-600 dark:text-gray-300",children:[e.jsx(Te,{className:"h-3 w-3"}),e.jsx("span",{children:u(s.createdAt)}),e.jsx(P,{variant:"outline",className:"text-xs",children:s.severity})]})]})]},s.id)),z.length===0&&e.jsx("div",{className:"text-center py-8 text-gray-500 dark:text-gray-400",children:"No activities yet"})]})})]})}),e.jsx(D,{value:"integrations",children:e.jsxs("div",{className:"space-y-4",children:[e.jsx("h3",{className:"text-lg font-semibold",children:"Team Integrations"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs(l,{children:[e.jsxs(o,{children:[e.jsxs(m,{className:"flex items-center",children:[e.jsx(Ie,{className:"h-5 w-5 mr-2"}),"Slack Integration"]}),e.jsx(j,{children:"Get real-time notifications in your Slack workspace"})]}),e.jsx(d,{children:e.jsx(i,{variant:"outline",size:"sm","data-testid":"button-setup-slack",children:"Setup Slack"})})]}),e.jsxs(l,{children:[e.jsxs(o,{children:[e.jsxs(m,{className:"flex items-center",children:[e.jsx(De,{className:"h-5 w-5 mr-2"}),"Discord Integration"]}),e.jsx(j,{children:"Connect with your Discord server for team updates"})]}),e.jsx(d,{children:e.jsx(i,{variant:"outline",size:"sm",disabled:!0,children:"Coming Soon"})})]})]})]})}),e.jsx(D,{value:"enterprise",children:e.jsx(Me,{orgId:r})})]})})]})]})})}function Me({orgId:r}){var G,J,W;const{toast:v}=re(),R=ie(),[,b]=ne(),g=["/api/organizations",r,"enterprise-settings"],{data:t,isLoading:K}=O({queryKey:g,enabled:!!r}),[f,A]=n.useState(""),[L,q]=n.useState(!1),[p,M]=n.useState("oidc"),[S,$]=n.useState(""),[k,F]=n.useState(""),[c,C]=n.useState(""),[z,N]=n.useState("");n.useEffect(()=>{var a,y,X,Z,ee;t&&(A(t.copilotInstructions??""),q(!!((a=t.sso)!=null&&a.enabled)),M(((y=t.sso)==null?void 0:y.provider)||"oidc"),$(((X=t.sso)==null?void 0:X.issuer)??""),F(((Z=t.sso)==null?void 0:Z.clientId)??""),N(((ee=t.sso)==null?void 0:ee.emailDomain)??""),C(""))},[t]);const E=!!(t!=null&&t.canEdit),T=!!(t!=null&&t.isEnterprise),B=!!((G=t==null?void 0:t.sso)!=null&&G.secretConfigured),u=Y({mutationFn:async a=>await _("PUT",`/api/organizations/${r}/enterprise-settings`,a),onSuccess:()=>{R.invalidateQueries({queryKey:g}),v({title:"Saved",description:"Enterprise settings updated."})},onError:a=>{const y=(a==null?void 0:a.message)||"Failed to save enterprise settings.";if(/enterprise/i.test(y)&&/(plan|upgrade|403)/i.test(y)){v({title:"Enterprise plan required",description:"Upgrade this organization to an Enterprise plan to use these features.",variant:"destructive"});return}v({title:"Error",description:y,variant:"destructive"})}}),H=()=>u.mutate({copilotInstructions:f}),Q=()=>u.mutate({sso:{enabled:L,provider:p,issuer:S,clientId:k,emailDomain:z,...c.trim()?{clientSecret:c}:{}}});if(K||!t)return e.jsxs("div",{className:"animate-pulse space-y-4 py-4",children:[e.jsx("div",{className:"h-32 bg-gray-200 dark:bg-gray-700 rounded"}),e.jsx("div",{className:"h-48 bg-gray-200 dark:bg-gray-700 rounded"})]});const s=()=>T?null:e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3 rounded-lg border border-purple-200 dark:border-purple-900 bg-gradient-to-r from-purple-50 to-blue-50 dark:from-purple-950/40 dark:to-blue-950/40 p-4",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(ae,{className:"h-5 w-5 text-purple-600 dark:text-purple-300 mt-0.5"}),e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-gray-900 dark:text-white",children:"Upgrade to Enterprise"}),e.jsxs("p",{className:"text-sm text-gray-600 dark:text-gray-300",children:["These controls are part of the Enterprise plan. This organization is on the"," ",e.jsx("span",{className:"font-medium capitalize",children:t.plan||"free"})," plan."]})]})]}),e.jsx(i,{onClick:()=>b("/pricing"),"data-testid":"button-upgrade-enterprise",className:"shrink-0",children:"View Enterprise plans"})]}),x=!E||u.isPending;return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"h-10 w-10 rounded-lg bg-gradient-to-br from-purple-500 to-blue-500 flex items-center justify-center text-white",children:e.jsx(Pe,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold text-gray-900 dark:text-white",children:"Enterprise Settings"}),e.jsx("p",{className:"text-sm text-gray-600 dark:text-gray-300",children:"Organization-wide AI Copilot, single sign-on, and private resources."})]}),e.jsx(P,{variant:"outline",className:`ml-auto ${T?"border-purple-300 text-purple-700 dark:text-purple-300":""}`,children:T?"Enterprise":`${t.plan||"free"} plan`})]}),e.jsx(s,{}),e.jsxs(l,{children:[e.jsxs(o,{children:[e.jsxs(m,{className:"flex items-center text-base",children:[e.jsx(ae,{className:"h-5 w-5 mr-2 text-purple-500"}),"AI Copilot Instructions"]}),e.jsx(j,{children:"These instructions are followed by the AI Copilot for everyone in this organization. Enterprise plan only."})]}),e.jsxs(d,{className:"space-y-3",children:[e.jsx(le,{"data-testid":"textarea-copilot-instructions",value:f,onChange:a=>A(a.target.value),disabled:x,rows:6,placeholder:"e.g. Always cite internal docs, prefer our brand voice, never reveal API keysâ¦"}),e.jsx("div",{className:"flex justify-end",children:e.jsx(i,{onClick:H,disabled:x,"data-testid":"button-save-copilot-instructions",children:u.isPending?"Saving...":"Save instructions"})})]})]}),e.jsxs(l,{children:[e.jsxs(o,{children:[e.jsxs(m,{className:"flex items-center text-base",children:[e.jsx(Le,{className:"h-5 w-5 mr-2 text-blue-500"}
1),"Single Sign-On (SSO)"]}),e.jsx(j,{children:"Connect your identity provider so members sign in with your organization's credentials."})]}),e.jsxs(d,{className:"space-y-5",children:[e.jsxs("div",{className:"flex items-center justify-between rounded-lg border p-4",children:[e.jsxs("div",{children:[e.jsx(h,{htmlFor:"sso-enabled",className:"font-medium",children:"Enable SSO"}),e.jsx("p",{className:"text-sm text-gray-600 dark:text-gray-300",children:"Require members to authenticate through your identity provider."})]}),e.jsx(be,{id:"sso-enabled","data-testid":"switch-sso-enabled",checked:L,onCheckedChange:q,disabled:x})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(h,{htmlFor:"sso-provider",children:"Provider"}),e.jsxs(fe,{value:p,onValueChange:M,disabled:x,children:[e.jsx(Ne,{id:"sso-provider","data-testid":"select-sso-provider",children:e.jsx(ye,{placeholder:"Select a provider"})}),e.jsxs(we,{children:[e.jsx(se,{value:"oidc",children:"OpenID Connect (OIDC)"}),e.jsx(se,{value:"saml",children:"SAML 2.0"})]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(h,{htmlFor:"sso-issuer",children:"Issuer URL"}),e.jsx(w,{id:"sso-issuer","data-testid":"input-sso-issuer",value:S,onChange:a=>$(a.target.value),disabled:x,placeholder:"https://your-idp.example.com"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Your IdP's OIDC issuer / discovery base URL"})]})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(h,{htmlFor:"sso-clientid",children:"Client ID"}),e.jsx(w,{id:"sso-clientid","data-testid":"input-sso-clientid",value:k,onChange:a=>F(a.target.value),disabled:x})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(h,{htmlFor:"sso-clientsecret",children:"Client Secret"}),e.jsx(w,{id:"sso-clientsecret",type:"password","data-testid":"input-sso-clientsecret",value:c,onChange:a=>C(a.target.value),disabled:x}),B&&e.jsx("p",{className:"text-xs text-muted-foreground",children:"Secret on file â leave blank to keep"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(h,{htmlFor:"sso-emaildomain",children:"Email Domain"}),e.jsx(w,{id:"sso-emaildomain","data-testid":"input-sso-emaildomain",value:z,onChange:a=>N(a.target.value),disabled:x,placeholder:"acme.com"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Users with this email domain sign in via this provider."})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Users sign in from the login page with their work email; we route them to this provider by email domain. Provide the issuer, client ID and secret from your IdP (e.g. Okta, Azure AD, Google)."}),e.jsx("div",{className:"flex justify-end",children:e.jsx(i,{onClick:Q,disabled:x,"data-testid":"button-save-sso",children:u.isPending?"Saving...":"Save SSO settings"})})]})]}),e.jsxs(l,{children:[e.jsxs(o,{children:[e.jsxs(m,{className:"flex items-center text-base",children:[e.jsx(de,{className:"h-5 w-5 mr-2 text-gray-500"}),"Private Resources"]}),e.jsx(j,{children:"Private resources are scoped to this organization (Enterprise)."})]}),e.jsx(d,{children:e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"rounded-lg border p-4 flex items-center gap-4",children:[e.jsx("div",{className:"h-10 w-10 rounded-lg bg-purple-100 dark:bg-purple-900/40 flex items-center justify-center",children:e.jsx(Ae,{className:"h-5 w-5 text-purple-600 dark:text-purple-300"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-2xl font-bold","data-testid":"text-private-plugins",children:((J=t.privateResources)==null?void 0:J.plugins)??0}),e.jsx("p",{className:"text-sm text-gray-600 dark:text-gray-300",children:"Private plugins"})]})]}),e.jsxs("div",{className:"rounded-lg border p-4 flex items-center gap-4",children:[e.jsx("div",{className:"h-10 w-10 rounded-lg bg-blue-100 dark:bg-blue-900/40 flex items-center justify-center",children:e.jsx(qe,{className:"h-5 w-5 text-blue-600 dark:text-blue-300"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-2xl font-bold","data-testid":"text-private-mcp-servers",children:((W=t.privateResources)==null?void 0:W.m
1cpServers)??0}),e.jsx("p",{className:"text-sm text-gray-600 dark:text-gray-300",children:"Private MCP servers"})]})]})]})})]})]})}export{ys as default};
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.