@decocms/mesh 1.12.0 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/dist/client/assets/{AlertCircle-CRLweBkr.js → AlertCircle-DHCtv9wC.js} +1 -1
  2. package/dist/client/assets/{ArrowLeft-DfQz7YbP.js → ArrowLeft-DuzlVMpS.js} +1 -1
  3. package/dist/client/assets/{ChevronDown-ZO3Wlgkk.js → ChevronDown-DFL_ztkL.js} +1 -1
  4. package/dist/client/assets/{ChevronRight-BPIYvimG.js → ChevronRight-Cys1zrTj.js} +1 -1
  5. package/dist/client/assets/{Copy01-CQZAbEwU.js → Copy01-0LOMQTHB.js} +1 -1
  6. package/dist/client/assets/{DotsHorizontal-gKr61GPJ.js → DotsHorizontal-BEBpYaEz.js} +1 -1
  7. package/dist/client/assets/{DotsVertical-BRB99_wf.js → DotsVertical-CNQmKxkm.js} +1 -1
  8. package/dist/client/assets/{File06-AZUmgwwB.js → File06-c_emyfHw.js} +1 -1
  9. package/dist/client/assets/{FilterLines-BVJGM8Yy.js → FilterLines-CETFD3LG.js} +1 -1
  10. package/dist/client/assets/{FlipBackward-D2snIvVA.js → FlipBackward-7gT7dG1L.js} +1 -1
  11. package/dist/client/assets/{GitBranch01-BqxbNL1-.js → GitBranch01-C03cI4QK.js} +1 -1
  12. package/dist/client/assets/{Grid01-DvNuuuCQ.js → Grid01-CCmKx6B5.js} +1 -1
  13. package/dist/client/assets/{Inbox01-CpKg5AaJ.js → Inbox01-D0Xr5pJB.js} +1 -1
  14. package/dist/client/assets/{InfoCircle-Bn9chr5H.js → InfoCircle-CvJnwAvU.js} +1 -1
  15. package/dist/client/assets/{Key01-C7wPsHjA.js → Key01-KVYt5hIJ.js} +1 -1
  16. package/dist/client/assets/{LinkExternal01-DBWs13wu.js → LinkExternal01-Dk04u5a1.js} +1 -1
  17. package/dist/client/assets/{Loading01-ol6YE3uU.js → Loading01-DKaPtj3-.js} +1 -1
  18. package/dist/client/assets/{Lock01-CaL8sf5y.js → Lock01-CmhDm4Lj.js} +1 -1
  19. package/dist/client/assets/{Play-QpPR3uuS.js → Play-C5xISjoh.js} +1 -1
  20. package/dist/client/assets/{Plus-Dj_8zgGI.js → Plus-BOhWr_Yd.js} +1 -1
  21. package/dist/client/assets/{Terminal-BcZbtSfr.js → Terminal-BLJp9JlG.js} +1 -1
  22. package/dist/client/assets/{Trash01-dxE-iYht.js → Trash01-B7rtyZ6_.js} +1 -1
  23. package/dist/client/assets/{X-BvKeBLsh.js → X-EQV0BNWQ.js} +1 -1
  24. package/dist/client/assets/{XClose-BnA_V6wK.js → XClose-RGDSgm2c.js} +1 -1
  25. package/dist/client/assets/{alert-dialog-DRnTpMl_.js → alert-dialog-DRjbecrO.js} +1 -1
  26. package/dist/client/assets/{auth-kMcVrAGe.js → auth-C_fy8E36.js} +1 -1
  27. package/dist/client/assets/{auth-catchall-DEYgws1t.js → auth-catchall-CeKnYT3I.js} +1 -1
  28. package/dist/client/assets/{avatar-CSdVudJi.js → avatar-mRj3EYSY.js} +1 -1
  29. package/dist/client/assets/{badge-DgawqffN.js → badge-BB4ToOP0.js} +1 -1
  30. package/dist/client/assets/{button-DNDGU2TI.js → button-DfMRfE6U.js} +1 -1
  31. package/dist/client/assets/{card-Bm3Srv__.js → card-DtNOepPc.js} +1 -1
  32. package/dist/client/assets/{checkbox-khNtwUU2.js → checkbox-DyAJP3m7.js} +1 -1
  33. package/dist/client/assets/{collection-detail-BsVxb5vf.js → collection-detail-BoPy1AgN.js} +1 -1
  34. package/dist/client/assets/{collection-display-button-Bg2te3H-.js → collection-display-button-NCEXG76d.js} +1 -1
  35. package/dist/client/assets/{collection-header-Cg64mtbo.js → collection-header-CYfWhq42.js} +1 -1
  36. package/dist/client/assets/{collection-page-DgWl3hcu.js → collection-page-B--o_GqQ.js} +1 -1
  37. package/dist/client/assets/collection-search-CEIFKuWa.js +1 -0
  38. package/dist/client/assets/{collection-tab-CkvC0Ng5.js → collection-tab-GuOa5x6Z.js} +1 -1
  39. package/dist/client/assets/{collection-table-wrapper-BziKCd5v.js → collection-table-wrapper-Bkcq39C4.js} +1 -1
  40. package/dist/client/assets/{connection-card-zLdRh2-_.js → connection-card-CxBsRTZ8.js} +1 -1
  41. package/dist/client/assets/{connection-detail-DZjDWBtk.js → connection-detail-kOdx4UfG.js} +1 -1
  42. package/dist/client/assets/{connections-CtPrTwps.js → connections-S2JdypuK.js} +1 -1
  43. package/dist/client/assets/constants-CF9rgZdG.js +1 -0
  44. package/dist/client/assets/{create-organization-dialog-ChswR6No.js → create-organization-dialog-CW3a_met.js} +1 -1
  45. package/dist/client/assets/{dialog-BQAmZYkz.js → dialog-Degt7wMI.js} +1 -1
  46. package/dist/client/assets/{dropdown-menu-DrJ8JVyD.js → dropdown-menu-DhuyLWwf.js} +1 -1
  47. package/dist/client/assets/{empty-state-B4Ut902H.js → empty-state-x5wxMoGj.js} +1 -1
  48. package/dist/client/assets/{env-vars-editor-CENWD4Cw.js → env-vars-editor-CkUGE9dS.js} +1 -1
  49. package/dist/client/assets/{error-boundary-CdDh2rh4.js → error-boundary-xrmWNOPn.js} +1 -1
  50. package/dist/client/assets/{extract-connection-data-BbV8sTs8.js → extract-connection-data-BWCaylf6.js} +1 -1
  51. package/dist/client/assets/{form-CeAHJl1w.js → form-Dq2sl6Cm.js} +1 -1
  52. package/dist/client/assets/{formatDistanceToNow-DjIxnUs1.js → formatDistanceToNow-B81mYZyY.js} +1 -1
  53. package/dist/client/assets/{gateway-detail-8Dc836Ad.js → gateway-detail-CfpW5gPv.js} +1 -1
  54. package/dist/client/assets/{gateway-selector-BUzUwyXz.js → gateway-selector-MP0YklU9.js} +1 -1
  55. package/dist/client/assets/{gateways-B6IfFHkd.js → gateways-tQbC21bA.js} +1 -1
  56. package/dist/client/assets/{home-CRBWRUEj.js → home-CQP5bDUs.js} +1 -1
  57. package/dist/client/assets/{index-1K95O_Cd.js → index-CsUeJADK.js} +1 -1
  58. package/dist/client/assets/{index-DKhlCI_x.js → index-Cum2JwLw.js} +2 -2
  59. package/dist/client/assets/{index-DxooMZcP.js → index-DRktqaBU.js} +1 -1
  60. package/dist/client/assets/{input-DebjWxRP.js → input-BhavpdOt.js} +1 -1
  61. package/dist/client/assets/{layout-IbRPe8u0.js → layout-CdDgPBcy.js} +1 -1
  62. package/dist/client/assets/{lazy-highlighter-_VEiNIwF.js → lazy-highlighter-OELIkKsF.js} +1 -1
  63. package/dist/client/assets/{localstorage-keys--yzYYtLR.js → localstorage-keys-BKXJOX3Y.js} +1 -1
  64. package/dist/client/assets/{login-DJYtWwhL.js → login-BtwJxKzK.js} +1 -1
  65. package/dist/client/assets/{mcp-oauth-Di1GqXp6.js → mcp-oauth-Cz0S6MIP.js} +1 -1
  66. package/dist/client/assets/{mcp-server-detail-BkrHrvqf.js → mcp-server-detail-DN0Hql3Q.js} +1 -1
  67. package/dist/client/assets/{members-GgcoJjv3.js → members-BFIAKP8F.js} +1 -1
  68. package/dist/client/assets/{monaco-editor-BuCuW23d.js → monaco-editor-DpKdmnKA.js} +1 -1
  69. package/dist/client/assets/{monitoring-B6ODnzEG.js → monitoring-CKREIN1T.js} +5 -5
  70. package/dist/client/assets/{oauth-callback-tl2SaLew.js → oauth-callback-BYVQDobu.js} +1 -1
  71. package/dist/client/assets/page-BHC8n492.js +1 -0
  72. package/dist/client/assets/{page-DPTyuA_g.js → page-CMI8w1FF.js} +1 -1
  73. package/dist/client/assets/{pin-to-sidebar-button-CLRQf-ha.js → pin-to-sidebar-button-C-oxRlVk.js} +1 -1
  74. package/dist/client/assets/{popover-Cp6Pxses.js → popover-CwpGwJqe.js} +1 -1
  75. package/dist/client/assets/{project-context-provider-d0n4IqI8.js → project-context-provider-BYGGoCTs.js} +1 -1
  76. package/dist/client/assets/{resizable-BaqsD3z5.js → resizable-DRCfYS1c.js} +1 -1
  77. package/dist/client/assets/{resource-tabs-B7IS9MYq.js → resource-tabs-BVIqlO4B.js} +1 -1
  78. package/dist/client/assets/{select-CbMi2p4J.js → select-Cmw9Rvde.js} +1 -1
  79. package/dist/client/assets/{settings-B3v-qHnr.js → settings-ss7bwESF.js} +1 -1
  80. package/dist/client/assets/{shell-layout-VY8-JBMj.js → shell-layout-z2JyzVod.js} +1 -1
  81. package/dist/client/assets/{spinner-BNiD7mdl.js → spinner-7MBS50fZ.js} +1 -1
  82. package/dist/client/assets/{switch-0oisonmD.js → switch-Ww9aXtlU.js} +1 -1
  83. package/dist/client/assets/{textarea-CH1xmcup.js → textarea-woJVrhbJ.js} +1 -1
  84. package/dist/client/assets/{thread-history-popover-CRZLvWh-.js → thread-history-popover-B-3eSv1_.js} +3 -3
  85. package/dist/client/assets/{tools-list-B-vCEw-I.js → tools-list-CFumR28e.js} +1 -1
  86. package/dist/client/assets/{use-binding-DTexNl5P.js → use-binding-bczXt8eF.js} +1 -1
  87. package/dist/client/assets/{use-connection-BijkkxIc.js → use-connection-B2okCga5.js} +1 -1
  88. package/dist/client/assets/{use-connection-resources-0t3vJgjj.js → use-connection-resources-Cq0HZKp9.js} +1 -1
  89. package/dist/client/assets/{use-gateway-DgOBTOgO.js → use-gateway-D2qdAc1R.js} +1 -1
  90. package/dist/client/assets/{use-list-state-BdubfiP7.js → use-list-state-B4BSsLOv.js} +1 -1
  91. package/dist/client/assets/{use-mcp-CYeeos2J.js → use-mcp-5u2AwQ4e.js} +1 -1
  92. package/dist/client/assets/{use-members-Ooe4w4iC.js → use-members-BwVy6fr3.js} +1 -1
  93. package/dist/client/assets/{use-mobile-GFCY3ihJ.js → use-mobile-CSmulDRc.js} +1 -1
  94. package/dist/client/assets/{use-organization-settings-BpZsf9_f.js → use-organization-settings-Ct9LJ7XR.js} +1 -1
  95. package/dist/client/assets/{use-tool-call-C_ljOxo5.js → use-tool-call-Yp-s5M9H.js} +1 -1
  96. package/dist/client/assets/useQuery-DhRmRhz6.js +1 -0
  97. package/dist/client/assets/{value-DdxHI7TH.js → value-N7gQABmO.js} +1 -1
  98. package/dist/client/assets/{view-mode-toggle-DHIMDUvK.js → view-mode-toggle-UYulkxW-.js} +1 -1
  99. package/dist/client/assets/{workflow-DLx3xIl6.js → workflow-BrLXpIDZ.js} +1 -1
  100. package/dist/client/index.html +1 -1
  101. package/package.json +1 -1
  102. package/dist/client/assets/collection-search-D_WbnaGd.js +0 -1
  103. package/dist/client/assets/constants-DKCqnrVH.js +0 -1
  104. package/dist/client/assets/page-DNKosrcW.js +0 -1
  105. package/dist/client/assets/useQuery-BcmdVjIq.js +0 -1
@@ -1 +1 @@
1
- import{O as T,Q as V,V as P,H as $}from"./auth-kMcVrAGe.js";function A(n){let e=0;for(let t=0;t<n.length;t++){const o=n.charCodeAt(t);e=(e<<5)-e+o,e=e&e}return Math.abs(e).toString(16)}const U=new Map,I="mcp:oauth:callback:";class L{serverUrl;_clientMetadata;_redirectUrl;_state=null;_codeVerifier=null;_clientInfo=null;_tokens=null;constructor(e){this.serverUrl=e.serverUrl,this._redirectUrl=e.callbackUrl??`${window.location.origin}/oauth/callback`;const t=e.scope?Array.isArray(e.scope)?e.scope.join(" "):e.scope:void 0;this._clientMetadata={redirect_uris:[this._redirectUrl],token_endpoint_auth_method:"none",grant_types:["authorization_code","refresh_token"],response_types:["code"],client_name:e.clientName??"@decocms/mesh MCP client",...t&&{scope:t}},U.set(A(this.serverUrl),this)}get redirectUrl(){return this._redirectUrl}get clientMetadata(){return this._clientMetadata}state(){return this._state||(this._state=crypto.randomUUID()),this._state}getStoredState(){return this._state}clientInformation(){return this._clientInfo??void 0}saveClientInformation(e){this._clientInfo=e}tokens(){return this._tokens??void 0}saveTokens(e){this._tokens=e}redirectToAuthorization(e){const a=window.screenX+(window.outerWidth-600)/2,s=window.screenY+(window.outerHeight-700)/2;window.open(e.toString(),"mcp-oauth",`width=600,height=700,left=${a},top=${s},popup=yes`)}saveCodeVerifier(e){this._codeVerifier=e}codeVerifier(){if(!this._codeVerifier)throw new Error("Code verifier not found");return this._codeVerifier}invalidateCredentials(){this._clientInfo=null,this._tokens=null,this._codeVerifier=null,this._state=null}getServerUrl(){return this.serverUrl}cleanup(){U.delete(A(this.serverUrl))}}async function x(n){const e=new URL(`/mcp/${n.connectionId}`,window.location.origin),t=new L({serverUrl:e.href,clientName:n.clientName,clientUri:n.clientUri,callbackUrl:n.callbackUrl,scope:n.scope});try{const o=new Promise((r,c)=>{const E=n.timeout||12e4;let w,f=!1;const O=t.state(),_=`${I}${O}`,l=()=>{if(!f){f=!0,window.removeEventListener("message",m),window.removeEventListener("storage",g),clearTimeout(w);try{localStorage.removeItem(_)}catch{}}},k=async i=>{if(f)return;if(!i.success){l(),c(new Error(i.error||"OAuth authentication failed"));return}const{code:h,state:b}=i;if(!h){l(),c(new Error("Missing authorization code"));return}if(t.getStoredState()!==b){l(),c(new Error("OAuth state mismatch - possible CSRF attack"));return}try{const S=(await T(e))?.authorization_servers?.[0]||e,y=await V(S),d=t.clientInformation();if(!d){l(),c(new Error("Client information not found"));return}const C=t.codeVerifier(),M=await P(S,{metadata:y,clientInformation:d,authorizationCode:h,codeVerifier:C,redirectUri:t.redirectUrl,resource:new URL(e)});l(),r({tokens:M,clientId:d.client_id??null,clientSecret:"client_secret"in d?d.client_secret:null,tokenEndpoint:y?.token_endpoint??null})}catch(v){l(),c(v)}},m=async i=>{i.origin===window.location.origin&&i.data?.type==="mcp:oauth:callback"&&await k(i.data)},g=async i=>{if(!(i.key!==_||!i.newValue))try{const h=JSON.parse(i.newValue);await k(h)}catch{}};window.addEventListener("message",m),window.addEventListener("storage",g),w=setTimeout(()=>{l(),c(new Error("OAuth authentication timeout"))},E)});if(await $(t,{serverUrl:e})==="REDIRECT"){const r=await o;return{token:r.tokens.access_token,tokenInfo:{accessToken:r.tokens.access_token,refreshToken:r.tokens.refresh_token??null,expiresIn:r.tokens.expires_in??null,scope:r.tokens.scope??null,clientId:r.clientId,clientSecret:r.clientSecret,tokenEndpoint:r.tokenEndpoint},error:null}}const s=t.tokens(),u=t.clientInformation();return{token:s?.access_token||null,tokenInfo:s?{accessToken:s.access_token,refreshToken:s.refresh_token??null,expiresIn:s.expires_in??null,scope:s.scope??null,clientId:u?.client_id??null,clientSecret:u&&"client_secret"in u?u.client_secret:null,tokenEndpoint:null}:null,error:null}}catch(o){return{token:null,tokenInfo:null,error:o instanceof Error?o.message:String(o)}}finally{t.cleanup()}}function p(n,e){if(window.opener&&!window.opener.closed)return window.opener.postMessage(n,window.location.origin),!0;if(e)try{const t=`${I}${e}`;return localStorage.setItem(t,JSON.stringify(n)),!0}catch{}return!1}async function N(){const n=new URLSearchParams(window.location.search),e=n.get("code");let t=n.get("state");const o=n.get("error"),a=n.get("error_description");let s=t;if(t)try{const r=atob(t),c=JSON.parse(r);c.clientState&&(s=c.clientState)}catch{}if(o){const r=a||o;return p({type:"mcp:oauth:callback",success:!1,error:r},s),{success:!1,error:r}}if(!e||!t){const r="Missing code or state parameter";return p({type:"mcp:oauth:callback",success:!1,error:r},s),{success:!1,error:r}}return t=s||t,p({type:"mcp:oauth:callback",success:!0,code:e,state:t},t)?{success:!0}:{success:!1,error:"Parent window not available"}}async function H({url:n,token:e}){try{const t=new Headers;t.set("Content-Type","application/json"),t.set("Accept","application/json, text/event-stream");const o=await fetch(n,{method:"POST",headers:t,body:JSON.stringify({jsonrpc:"2.0",id:1,method:"initialize",params:{protocolVersion:"2025-06-18",capabilities:{},clientInfo:{name:"@decocms/mesh MCP client",version:"1.0.0"}}})});if(o.ok)return{isAuthenticated:!0,supportsOAuth:!0};let a;try{const r=await o.json();a=r.error||r.message}catch{}return o.status>=500?{isAuthenticated:!1,supportsOAuth:!1,error:a||`HTTP ${o.status}`,isServerError:!0}:{isAuthenticated:!1,supportsOAuth:!!o.headers.get("WWW-Authenticate"),error:a||`HTTP ${o.status}`}}catch(t){return console.error("[isConnectionAuthenticated] Error:",t),{isAuthenticated:!1,supportsOAuth:!1,error:t.message}}}export{x as a,N as h,H as i};
1
+ import{O as T,Q as V,V as P,H as $}from"./auth-C_fy8E36.js";function A(n){let e=0;for(let t=0;t<n.length;t++){const o=n.charCodeAt(t);e=(e<<5)-e+o,e=e&e}return Math.abs(e).toString(16)}const U=new Map,I="mcp:oauth:callback:";class L{serverUrl;_clientMetadata;_redirectUrl;_state=null;_codeVerifier=null;_clientInfo=null;_tokens=null;constructor(e){this.serverUrl=e.serverUrl,this._redirectUrl=e.callbackUrl??`${window.location.origin}/oauth/callback`;const t=e.scope?Array.isArray(e.scope)?e.scope.join(" "):e.scope:void 0;this._clientMetadata={redirect_uris:[this._redirectUrl],token_endpoint_auth_method:"none",grant_types:["authorization_code","refresh_token"],response_types:["code"],client_name:e.clientName??"@decocms/mesh MCP client",...t&&{scope:t}},U.set(A(this.serverUrl),this)}get redirectUrl(){return this._redirectUrl}get clientMetadata(){return this._clientMetadata}state(){return this._state||(this._state=crypto.randomUUID()),this._state}getStoredState(){return this._state}clientInformation(){return this._clientInfo??void 0}saveClientInformation(e){this._clientInfo=e}tokens(){return this._tokens??void 0}saveTokens(e){this._tokens=e}redirectToAuthorization(e){const a=window.screenX+(window.outerWidth-600)/2,s=window.screenY+(window.outerHeight-700)/2;window.open(e.toString(),"mcp-oauth",`width=600,height=700,left=${a},top=${s},popup=yes`)}saveCodeVerifier(e){this._codeVerifier=e}codeVerifier(){if(!this._codeVerifier)throw new Error("Code verifier not found");return this._codeVerifier}invalidateCredentials(){this._clientInfo=null,this._tokens=null,this._codeVerifier=null,this._state=null}getServerUrl(){return this.serverUrl}cleanup(){U.delete(A(this.serverUrl))}}async function x(n){const e=new URL(`/mcp/${n.connectionId}`,window.location.origin),t=new L({serverUrl:e.href,clientName:n.clientName,clientUri:n.clientUri,callbackUrl:n.callbackUrl,scope:n.scope});try{const o=new Promise((r,c)=>{const E=n.timeout||12e4;let w,f=!1;const O=t.state(),_=`${I}${O}`,l=()=>{if(!f){f=!0,window.removeEventListener("message",m),window.removeEventListener("storage",g),clearTimeout(w);try{localStorage.removeItem(_)}catch{}}},k=async i=>{if(f)return;if(!i.success){l(),c(new Error(i.error||"OAuth authentication failed"));return}const{code:h,state:b}=i;if(!h){l(),c(new Error("Missing authorization code"));return}if(t.getStoredState()!==b){l(),c(new Error("OAuth state mismatch - possible CSRF attack"));return}try{const S=(await T(e))?.authorization_servers?.[0]||e,y=await V(S),d=t.clientInformation();if(!d){l(),c(new Error("Client information not found"));return}const C=t.codeVerifier(),M=await P(S,{metadata:y,clientInformation:d,authorizationCode:h,codeVerifier:C,redirectUri:t.redirectUrl,resource:new URL(e)});l(),r({tokens:M,clientId:d.client_id??null,clientSecret:"client_secret"in d?d.client_secret:null,tokenEndpoint:y?.token_endpoint??null})}catch(v){l(),c(v)}},m=async i=>{i.origin===window.location.origin&&i.data?.type==="mcp:oauth:callback"&&await k(i.data)},g=async i=>{if(!(i.key!==_||!i.newValue))try{const h=JSON.parse(i.newValue);await k(h)}catch{}};window.addEventListener("message",m),window.addEventListener("storage",g),w=setTimeout(()=>{l(),c(new Error("OAuth authentication timeout"))},E)});if(await $(t,{serverUrl:e})==="REDIRECT"){const r=await o;return{token:r.tokens.access_token,tokenInfo:{accessToken:r.tokens.access_token,refreshToken:r.tokens.refresh_token??null,expiresIn:r.tokens.expires_in??null,scope:r.tokens.scope??null,clientId:r.clientId,clientSecret:r.clientSecret,tokenEndpoint:r.tokenEndpoint},error:null}}const s=t.tokens(),u=t.clientInformation();return{token:s?.access_token||null,tokenInfo:s?{accessToken:s.access_token,refreshToken:s.refresh_token??null,expiresIn:s.expires_in??null,scope:s.scope??null,clientId:u?.client_id??null,clientSecret:u&&"client_secret"in u?u.client_secret:null,tokenEndpoint:null}:null,error:null}}catch(o){return{token:null,tokenInfo:null,error:o instanceof Error?o.message:String(o)}}finally{t.cleanup()}}function p(n,e){if(window.opener&&!window.opener.closed)return window.opener.postMessage(n,window.location.origin),!0;if(e)try{const t=`${I}${e}`;return localStorage.setItem(t,JSON.stringify(n)),!0}catch{}return!1}async function N(){const n=new URLSearchParams(window.location.search),e=n.get("code");let t=n.get("state");const o=n.get("error"),a=n.get("error_description");let s=t;if(t)try{const r=atob(t),c=JSON.parse(r);c.clientState&&(s=c.clientState)}catch{}if(o){const r=a||o;return p({type:"mcp:oauth:callback",success:!1,error:r},s),{success:!1,error:r}}if(!e||!t){const r="Missing code or state parameter";return p({type:"mcp:oauth:callback",success:!1,error:r},s),{success:!1,error:r}}return t=s||t,p({type:"mcp:oauth:callback",success:!0,code:e,state:t},t)?{success:!0}:{success:!1,error:"Parent window not available"}}async function H({url:n,token:e}){try{const t=new Headers;t.set("Content-Type","application/json"),t.set("Accept","application/json, text/event-stream");const o=await fetch(n,{method:"POST",headers:t,body:JSON.stringify({jsonrpc:"2.0",id:1,method:"initialize",params:{protocolVersion:"2025-06-18",capabilities:{},clientInfo:{name:"@decocms/mesh MCP client",version:"1.0.0"}}})});if(o.ok)return{isAuthenticated:!0,supportsOAuth:!0};let a;try{const r=await o.json();a=r.error||r.message}catch{}return o.status>=500?{isAuthenticated:!1,supportsOAuth:!1,error:a||`HTTP ${o.status}`,isServerError:!0}:{isAuthenticated:!1,supportsOAuth:!!o.headers.get("WWW-Authenticate"),error:a||`HTTP ${o.status}`}}catch(t){return console.error("[isConnectionAuthenticated] Error:",t),{isAuthenticated:!1,supportsOAuth:!1,error:t.message}}}export{x as a,N as h,H as i};
@@ -1 +1 @@
1
- import{r as E,c as P,j as s,h as ve,d as Te,b as _e,a as Me,t as he}from"./index-DKhlCI_x.js";import{i as Ie}from"./AlertCircle-CRLweBkr.js";import{i as je}from"./Loading01-ol6YE3uU.js";import{B as ie}from"./button-DNDGU2TI.js";import{i as Pe}from"./ArrowLeft-DfQz7YbP.js";import{I as ye,E as Le,b as De,u as Ee,d as $e,c as Ue}from"./use-connection-BijkkxIc.js";import{t as Ve}from"./ChevronDown-ZO3Wlgkk.js";import{s as ge}from"./Plus-Dj_8zgGI.js";import{b as Re,D as ze,a as Ae,c as Be}from"./dropdown-menu-DrJ8JVyD.js";import{n as be}from"./LinkExternal01-DBWs13wu.js";import{T as Ge,R as Fe}from"./tools-list-B-vCEw-I.js";import{R as Oe}from"./resource-tabs-B7IS9MYq.js";import{a as We}from"./use-binding-DTexNl5P.js";import{u as He}from"./use-tool-call-C_ljOxo5.js";import{u as Ze}from"./use-mcp-CYeeos2J.js";import{u as Ne}from"./project-context-provider-d0n4IqI8.js";import{e as Ke}from"./extract-connection-data-BbV8sTs8.js";import{s as qe}from"./slugify-CEUa2lfQ.js";import{a as Je,e as Qe,c as Xe,d as Ye,g as et}from"./github-icon-BrF3LMLL.js";import{e as tt}from"./app-name-gTETL9So.js";import{i as st}from"./InfoCircle-Bn9chr5H.js";import"./ChevronRight-BPIYvimG.js";import"./useQuery-BcmdVjIq.js";import"./File06-AZUmgwwB.js";import"./collection-display-button-Bg2te3H-.js";import"./Grid01-DvNuuuCQ.js";import"./view-mode-toggle-DHIMDUvK.js";import"./collection-search-D_WbnaGd.js";import"./input-DebjWxRP.js";import"./collection-table-wrapper-BziKCd5v.js";import"./card-Bm3Srv__.js";import"./layout-IbRPe8u0.js";import"./badge-DgawqffN.js";import"./auth-kMcVrAGe.js";import"./constants-DKCqnrVH.js";import"./generate-id-Dyweu44Y.js";const Ce=({size:t=24,color:e="currentColor",...r})=>E.createElement("svg",{viewBox:"0 0 24 24",width:t,height:t,stroke:e,strokeWidth:"2",fill:"none",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",...r},E.createElement("path",{d:"m7.5 12 3 3 6-6m5.5 3c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2s10 4.477 10 10Z"}));Ce.displayName="CheckCircle";const we=({size:t=24,color:e="currentColor",...r})=>E.createElement("svg",{viewBox:"0 0 24 24",width:t,height:t,stroke:e,strokeWidth:"2",fill:"none",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",...r},E.createElement("path",{d:"m21 21-3.5-3.5m2.5-6a8.5 8.5 0 1 1-17 0 8.5 8.5 0 0 1 17 0Z"}));we.displayName="SearchLg";function rt(t){const e=P.c(3),{message:r}=t,n=r===void 0?"Loading MCP Server details...":r;let o;e[0]===Symbol.for("react.memo_cache_sentinel")?(o=s.jsx(je,{size:48,className:"animate-spin mb-4"}),e[0]=o):o=e[0];let i;return e[1]!==n?(i=s.jsxs("div",{className:"flex flex-col items-center justify-center h-full",children:[o,s.jsx("p",{className:"text-sm text-muted-foreground",children:n})]}),e[1]=n,e[2]=i):i=e[2],i}function ot(t){const e=P.c(9),{error:r,onBack:n}=t,o=r instanceof Error?r.message:r;let i,d;e[0]===Symbol.for("react.memo_cache_sentinel")?(i=s.jsx(Ie,{size:48,className:"text-destructive mb-4"}),d=s.jsx("h3",{className:"text-lg font-medium mb-2",children:"Error loading MCP Server"}),e[0]=i,e[1]=d):(i=e[0],d=e[1]);let a;e[2]!==o?(a=s.jsx("p",{className:"text-muted-foreground max-w-md text-center",children:o}),e[2]=o,e[3]=a):a=e[3];let l;e[4]!==n?(l=s.jsx("button",{onClick:n,className:"mt-4 px-4 py-2 bg-primary text-primary-foreground rounded-lg hover:bg-primary/90 transition-colors",children:"Go Back"}),e[4]=n,e[5]=l):l=e[5];let f;return e[6]!==a||e[7]!==l?(f=s.jsxs("div",{className:"flex flex-col items-center justify-center h-full",children:[i,d,a,l]}),e[6]=a,e[7]=l,e[8]=f):f=e[8],f}function nt(t){const e=P.c(5),{onBack:r}=t;let n,o,i;e[0]===Symbol.for("react.memo_cache_sentinel")?(n=s.jsx(we,{size:48,className:"text-muted-foreground mb-4"}),o=s.jsx("h3",{className:"text-lg font-medium mb-2",children:"MCP Server not found"}),i=s.jsx("p",{className:"text-muted-foreground max-w-md text-center",children:"The MCP Server you're looking for doesn't exist in this store."}),e[0]=n,e[1]=o,e[2]=i):(n=e[0],o=e[1],i=e[2]);let d;return e[3]!==r?(d=s.jsxs("div",{className:"flex flex-col items-center justify-center h-full",children:[n,o,i,s.jsx("button",{onClick:r,className:"mt-4 px-4 py-2 bg-primary text-primary-foreground rounded-lg hover:bg-primary/90 transition-colors",children:"Go Back to Store"})]}),e[3]=r,e[4]=d):d=e[4],d}function it(t){const e=P.c(3),{onBack:r}=t;let n;e[0]===Symbol.for("react.memo_cache_sentinel")?(n=s.jsx(Pe,{}),e[0]=n):n=e[0];let o;return e[1]!==r?(o=s.jsx("div",{className:"flex items-center h-12 border-b border-border shrink-0",children:s.jsx("div",{className:"flex h-full px-2 border-r items-center",children:s.jsx(ie,{variant:"ghost",size:"icon",className:"items-center size-8 text-muted-foreground",onClick:r,"aria-label":"Go back",children:n})})}),e[1]=r,e[2]=o):o=e[2],o}function lt(t){const e=P.c(30),{data:r,itemVersions:n,onInstall:o,canInstall:i,isInstalling:d}=t,a=i===void 0?!0:i,l=d===void 0?!1:d,[f,g]=E.useState(0);let h;e[0]!==o?(h=_=>{g(_),o(_)},e[0]=o,e[1]=h):h=e[1];const u=h;let x;e[2]!==r.icon||e[3]!==r.name?(x=s.jsx(ye,{icon:r.icon,name:r.name,size:"lg",className:"shrink-0 shadow-sm"}),e[2]=r.icon,e[3]=r.name,e[4]=x):x=e[4];let p;e[5]!==r.name?(p=s.jsx("h1",{className:"text-3xl font-medium",children:r.name}),e[5]=r.name,e[6]=p):p=e[6];let b;e[7]!==r.verified?(b=r.verified&&s.jsx("img",{src:"/verified-badge.svg",alt:"Verified",className:"w-5 h-5 shrink-0"}),e[7]=r.verified,e[8]=b):b=e[8];let j;e[9]!==p||e[10]!==b?(j=s.jsxs("div",{className:"flex items-center gap-2",children:[p,b]}),e[9]=p,e[10]=b,e[11]=j):j=e[11];let w;e[12]!==r.shortDescription?(w=r.shortDescription&&s.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:r.shortDescription}),e[12]=r.shortDescription,e[13]=w):w=e[13];let S;e[14]!==j||e[15]!==w?(S=s.jsxs("div",{className:"flex-1 min-w-0",children:[j,w]}),e[14]=j,e[15]=w,e[16]=S):S=e[16];let k;e[17]!==a||e[18]!==u||e[19]!==l||e[20]!==n||e[21]!==o||e[22]!==f?(k=a?s.jsx("div",{className:"shrink-0",children:n.length>1?s.jsxs("div",{className:"flex",children:[s.jsxs(ie,{variant:"brand",onClick:()=>u(0),disabled:l,className:"shrink-0 rounded-r-none cursor-pointer",children:[s.jsx(ge,{size:20}),l?"Connecting...":"Connect Connection"]}),s.jsxs(Re,{children:[s.jsx(ze,{asChild:!0,children:s.jsx(ie,{variant:"brand",disabled:l,className:"shrink-0 rounded-l-none px-2 border-l-2 border-l-white/50 cursor-pointer",children:s.jsx(Ve,{size:20})})}),s.jsx(Ae,{align:"end",className:"w-56 max-h-[300px] overflow-y-auto",children:n.map((_,m)=>{const N=_._meta?.["io.modelcontextprotocol.registry/official"];return s.jsx(Be,{onClick:()=>u(m),disabled:l,className:"cursor-pointer",children:s.jsxs("div",{className:"flex items-center justify-between gap-2 w-full",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsxs("div",{className:"font-medium text-sm",children:["v",_.server?.version||"unknown"]}),N?.isLatest&&s.jsx("div",{className:"text-xs text-muted-foreground/50 font-semibold",children:"LATEST"})]}),m===f&&s.jsx(Ce,{size:16,className:"text-muted-foreground shrink-0"})]})},m)})})]})]}):s.jsxs(ie,{variant:"brand",onClick:()=>o(),disabled:n.length===0||l,className:"shrink-0",children:[s.jsx(ge,{size:20}),l?"Connecting...":"Connect MCP Server"]})}):s.jsx("div",{className:"shrink-0 px-4 py-2 text-sm text-muted-foreground bg-muted rounded-lg",children:"Cannot be connected"}),e[17]=a,e[18]=u,e[19]=l,e[20]=n,e[21]=o,e[22]=f,e[23]=k):k=e[23];let T;e[24]!==k||e[25]!==S?(T=s.jsxs("div",{className:"flex-1 min-w-0 flex items-center justify-between",children:[S,k]}),e[24]=k,e[25]=S,e[26]=T):T=e[26];let y;return e[27]!==T||e[28]!==x?(y=s.jsxs("div",{className:"flex items-center gap-4 py-8 px-5 border-b border-border",children:[x,T]}),e[27]=T,e[28]=x,e[29]=y):y=e[29],y}function at(t){if(!t)return"—";try{const e=new Date(t);return isNaN(e.getTime())?"—":e.toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"})}catch{return"—"}}function ct(t){const e=P.c(51),{data:r,publisherInfo:n,selectedItem:o}=t;let i;e[0]!==r.description?(i=r.description&&s.jsxs("div",{className:"px-5 pb-5 border-b border-border",children:[s.jsx("h2",{className:"text-base font-medium mb-3",children:"Overview"}),s.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:r.description})]}),e[0]=r.description,e[1]=i):i=e[1];const d=r.publisher==="io.modelcontextprotocol.registry/official"?"Official Registry":r.publisher;let a;e[2]!==n.logo||e[3]!==d?(a=s.jsx(ye,{icon:n.logo,name:d,size:"sm",className:"shrink-0 shadow-sm"}),e[2]=n.logo,e[3]=d,e[4]=a):a=e[4];let l;e[5]!==r.publisher?(l=r.publisher==="io.modelcontextprotocol.registry/official"?"Official Registry":r.publisher.charAt(0).toUpperCase()+r.publisher.slice(1),e[5]=r.publisher,e[6]=l):l=e[6];let f;e[7]!==l?(f=s.jsx("div",{className:"font-medium",children:l}),e[7]=l,e[8]=f):f=e[8];let g;e[9]!==n.count?(g=n.count>0?s.jsxs(s.Fragment,{children:[s.jsx("img",{src:"/globe.svg",alt:"globe",className:"w-3 h-3"}),s.jsxs("span",{children:[n.count," ",n.count===1?"published server":"published servers"]})]}):"Publisher",e[9]=n.count,e[10]=g):g=e[10];let h;e[11]!==g?(h=s.jsx("div",{className:"text-xs text-muted-foreground flex items-center gap-1",children:g}),e[11]=g,e[12]=h):h=e[12];let u;e[13]!==f||e[14]!==h?(u=s.jsxs("div",{children:[f,h]}),e[13]=f,e[14]=h,e[15]=u):u=e[15];let x;e[16]!==a||e[17]!==u?(x=s.jsx("div",{className:"px-5 border-b border-border",children:s.jsxs("div",{className:"flex items-center gap-3 py-5",children:[a,u]})}),e[16]=a,e[17]=u,e[18]=x):x=e[18];let p;e[19]!==r.version?(p=r.version&&s.jsxs("div",{className:"flex justify-between items-center text-sm",children:[s.jsx("span",{className:"text-foreground text-sm",children:"Version"}),s.jsxs("span",{className:"text-muted-foreground uppercase text-xs",children:["v",r.version]})]}),e[19]=r.version,e[20]=p):p=e[20];let b;e[21]!==r.tags?(b=r.tags&&r.tags.length>0&&s.jsxs("div",{className:"flex justify-between items-start text-sm",children:[s.jsx("span",{className:"text-foreground text-sm",children:"Tags"}),s.jsx("div",{className:"flex flex-wrap gap-1 justify-end max-w-[60%]",children:r.tags.map(mt)})]}),e[21]=r.tags,e[22]=b):b=e[22];let j;e[23]!==r.categories?(j=r.categories&&r.categories.length>0&&s.jsxs("div",{className:"flex justify-between items-start text-sm",children:[s.jsx("span",{className:"text-foreground text-sm",children:"Categories"}),s.jsx("div",{className:"flex flex-wrap gap-1 justify-end max-w-[60%]",children:r.categories.map(dt)})]}),e[23]=r.categories,e[24]=j):j=e[24];let w;e[25]!==r.connectionType?(w=r.connectionType&&s.jsxs("div",{className:"flex justify-between items-center text-sm",children:[s.jsx("span",{className:"text-foreground text-sm",children:"Connection Type"}),s.jsx("span",{className:"text-muted-foreground uppercase text-xs",children:r.connectionType})]}),e[25]=r.connectionType,e[26]=w):w=e[26];let S;e[27]!==r.schemaVersion?(S=r.schemaVersion&&s.jsxs("div",{className:"flex justify-between items-center text-sm",children:[s.jsx("span",{className:"text-foreground text-sm",children:"Schema Version"}),s.jsx("span",{className:"text-muted-foreground text-xs",children:r.schemaVersion})]}),e[27]=r.schemaVersion,e[28]=S):S=e[28];let k;e[29]!==r.websiteUrl?(k=r.websiteUrl&&s.jsxs("div",{className:"flex justify-between items-center text-sm",children:[s.jsx("span",{className:"text-foreground text-sm",children:"Website"}),s.jsxs("a",{href:r.websiteUrl,target:"_blank",rel:"noopener noreferrer",className:"text-muted-foreground hover:underline flex items-center gap-1 text-xs",children:[s.jsx("span",{children:"Visit"}),s.jsx(be,{size:14})]})]}),e[29]=r.websiteUrl,e[30]=k):k=e[30];let T;e[31]!==r.repository?(T=r.repository?.url&&s.jsxs("div",{className:"flex justify-between items-center text-sm",children:[s.jsx("span",{className:"text-foreground text-sm",children:"Source"}),s.jsxs("a",{href:r.repository.url,target:"_blank",rel:"noopener noreferrer",className:"text-muted-foreground hover:underline flex items-center gap-1 text-xs",children:[s.jsx("span",{children:"GitHub"}),s.jsx(be,{size:14})]})]}),e[31]=r.repository,e[32]=T):T=e[32];let y;e[33]!==p||e[34]!==b||e[35]!==j||e[36]!==w||e[37]!==S||e[38]!==k||e[39]!==T?(y=s.jsxs("div",{className:"px-5 py-5 border-b border-border space-y-4",children:[p,b,j,w,S,k,T]}),e[33]=p,e[34]=b,e[35]=j,e[36]=w,e[37]=S,e[38]=k,e[39]=T,e[40]=y):y=e[40];let _;e[41]===Symbol.for("react.memo_cache_sentinel")?(_=s.jsx("span",{className:"text-foreground text-sm",children:"Last Updated"}),e[41]=_):_=e[41];let m;e[42]!==o.updated_at?(m=at(o.updated_at),e[42]=o.updated_at,e[43]=m):m=e[43];let N;e[44]!==m?(N=s.jsxs("div",{className:"px-5 py-5 text-sm flex justify-between items-center border-b border-border",children:[_,s.jsx("span",{className:"text-muted-foreground uppercase text-xs",children:m})]}),e[44]=m,e[45]=N):N=e[45];let I;return e[46]!==i||e[47]!==y||e[48]!==N||e[49]!==x?(I=s.jsxs("div",{className:"lg:col-span-1 flex flex-col pt-5",children:[i,x,y,N]}),e[46]=i,e[47]=y,e[48]=N,e[49]=x,e[50]=I):I=e[50],I}function dt(t){return s.jsx("span",{className:"text-xs bg-muted px-2 py-0.5 rounded",children:t},t)}function mt(t){return s.jsx("span",{className:"text-xs bg-muted px-2 py-0.5 rounded",children:t},t)}function ft(t){const e=P.c(18),{data:r,availableTabs:n,effectiveActiveTabId:o,effectiveTools:i,isLoadingTools:d,onTabChange:a}=t,l=d===void 0?!1:d;let f;e[0]!==i?(f=i.map(ut),e[0]=i,e[1]=f):f=e[1];const g=f;let h;e[2]!==n||e[3]!==o||e[4]!==a?(h=n.length>0&&s.jsx("div",{className:"px-4 py-2 border-b border-border bg-background",children:s.jsx(Oe,{tabs:n,activeTab:o,onTabChange:a})}),e[2]=n,e[3]=o,e[4]=a,e[5]=h):h=e[5];let u;e[6]!==o||e[7]!==i.length||e[8]!==l||e[9]!==g?(u=o==="tools"&&s.jsx("div",{className:"flex flex-col flex-1",children:l?s.jsxs("div",{className:"flex items-center justify-center p-8",children:[s.jsx(je,{size:24,className:"animate-spin"}),s.jsx("span",{className:"ml-2 text-sm text-muted-foreground",children:"Loading tools..."})]}):i.length>0?s.jsx(Ge,{tools:g,showToolbar:!1,emptyMessage:"This MCP Server doesn't have any tools."}):s.jsx(Le,{image:null,title:"No tools available",description:"This MCP Server doesn't have any tools."})}),e[6]=o,e[7]=i.length,e[8]=l,e[9]=g,e[10]=u):u=e[10];let x;e[11]!==r?.repository||e[12]!==o?(x=o==="readme"&&s.jsx("div",{className:"flex-1 overflow-y-auto bg-background",children:s.jsx(Fe,{repository:r?.repository})}),e[11]=r?.repository,e[12]=o,e[13]=x):x=e[13];let p;return e[14]!==h||e[15]!==u||e[16]!==x?(p=s.jsxs("div",{className:"lg:col-span-2 flex flex-col border-l border-border",children:[h,u,x]}),e[14]=h,e[15]=u,e[16]=x,e[17]=p):p=e[17],p}function ut(t){const e=t;return{name:e.name||"",description:e.description||void 0}}function xt(t,e){if(!t||!e)return;const r=e.toLowerCase();return t.find(n=>n.app_name?.toLowerCase()===r||n.app_id?.toLowerCase()===r||n.title.toLowerCase()===r)||t.find(n=>n.title.toLowerCase().includes(r))}function pt(t,e,r,n,o){if(!e||e==="Unknown")return{count:0};if(e==="io.modelcontextprotocol.registry/official")return{logo:n?.icon||void 0,count:o??t.length};const i=e.toLowerCase(),d=t.filter(l=>(l._meta?.["io.modelcontextprotocol.registry/official"]?"io.modelcontextprotocol.registry/official":l.publisher||l._meta?.["mcp.mesh"]?.scopeName||"Unknown").toLowerCase()===i);return{logo:r?.icon||d[0]?.publisher_logo||d[0]?.icon||void 0,count:d.length}}function ht(t){const e=t.server._meta?.["mcp.mesh/publisher-provided"],r=t._meta?.["mcp.mesh"],n=t._meta?.["io.modelcontextprotocol.registry/official"],o=t.server,i=Xe(o.remotes?.[0]?.type),d=Ye(o.$schema),a=n?"io.modelcontextprotocol.registry/official":t.publisher||r?.scopeName||"Unknown",l=et(o.repository),f=t.icon||t.image||t.logo||o.icons?.[0]?.src||l||null,g=t.name||t.title||t.server?.title||"Unnamed Item",h=tt(g),u=r?.friendly_name||h,x=r?.mesh_description||t.description||t.summary||o?.description||"",p=r?.short_description||null,b=r?.tags||[],j=r?.categories||[];return{name:u,description:x,shortDescription:p,icon:f,verified:t.verified||r?.verified,publisher:a,version:o.version||null,websiteUrl:o.websiteUrl||null,repository:o.repository||null,schemaVersion:d??null,connectionType:i,connectionUrl:null,remoteUrl:null,tags:b,categories:j,tools:t.tools||o.tools||e?.tools||[],models:t.models||o.models||e?.models||[],emails:t.emails||o.emails||e?.emails||[],analytics:t.analytics||o.analytics||e?.analytics,cdn:t.cdn||o.cdn||e?.cdn}}class gt extends E.Component{state={hasError:!1,error:null};static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,r){console.error("Store MCP server detail error:",e,r)}render(){return this.state.hasError?s.jsx(ot,{error:this.state.error||new Error("Unknown error"),onBack:this.props.onBack}):this.props.children}}function bt(){const t=P.c(70),{org:e}=Ne(),r=ve();let n;t[0]===Symbol.for("react.memo_cache_sentinel")?(n={strict:!1},t[0]=n):n=t[0];const{appName:o}=Te(n);let i;t[1]===Symbol.for("react.memo_cache_sentinel")?(i={strict:!1},t[1]=i):i=t[1];const{registryId:d,serverName:a}=_e(i),[l,f]=E.useState("readme"),g=De(),h=Ee(),{data:u}=Me.useSession(),x=We(h),p=d||x[0]?.id||"",b=$e(p),j=Je(b?.tools),w=b?.tools&&b.tools.find(Ct)?.name||"",S=b?.tools&&b.tools.find(Nt)?.name||"",k=Ue(p),T=!!a;let y,_;T?(y=w||S,_={name:a}):(y=j,_={});const{data:m}=He({toolCaller:k,toolName:y,toolInputParams:_,scope:p});let N=[],I=[],xe=null;if(m){if(Array.isArray(m))N=m;else if(typeof m=="object"&&m!==null)if("totalCount"in m&&typeof m.totalCount=="number"&&(xe=m.totalCount),"item"in m&&m.item){const c=m.item,M=c.id||"",$=c.server,U=c._meta;let D;t[2]!==c.title||t[3]!==M||t[4]!==$||t[5]!==U?(D=[{id:M,title:c.title,server:$,_meta:U}],t[2]=c.title,t[3]=M,t[4]=$,t[5]=U,t[6]=D):D=t[6],N=D}else{let c;"versions"in m&&Array.isArray(m.versions)?c="versions":"servers"in m&&Array.isArray(m.servers)?c="servers":c=Object.keys(m).find(M=>Array.isArray(m[M])),c&&(N=m[c],(c==="versions"||y?.includes("VERSIONS"))&&(I=N))}}let X;t[7]!==o?(X=c=>{const M=c.name||c.title||c.server.title||"";return qe(M)===o},t[7]=o,t[8]=X):X=t[8];let C=N.find(X);if(!C&&a){let c;t[9]!==a?(c=M=>M.server.name===a||M.name===a||M.title===a,t[9]=a,t[10]=c):c=t[10],C=N.find(c)}const v=C?ht(C):null,le=(v?.tools?.length||0)>0,ae=C?.server?.remotes?.[0]?.url||null,J=!le&&!!ae,Q=Ze({url:J?ae:""}),Y=J&&Q.state==="connecting";let ee;t[11]!==Q||t[12]!==J?(ee=J&&Q.state==="ready"?(Q.tools||[]).map(yt):[],t[11]=Q,t[12]=J,t[13]=ee):ee=t[13];const pe=ee,V=le?v?.tools||[]:pe,Se=xt(h,v?.publisher),ce=v?pt(N,v.publisher,Se,b??null,xe):{count:0},ke=v?.repository?Qe(v.repository):null,de=!!v?.repository&&!!ke;let R;t[14]!==de?(R={id:"readme",label:"README",visible:de},t[14]=de,t[15]=R):R=t[15];const me=le||pe.length>0||Y&&!!ae;let z;t[16]!==V.length||t[17]!==me?(z={id:"tools",label:"Tools",count:V.length,visible:me},t[16]=V.length,t[17]=me,t[18]=z):z=t[18];let te;t[19]!==R||t[20]!==z?(te=[R,z].filter(jt),t[19]=R,t[20]=z,t[21]=te):te=t[21];const L=te;let se;t[22]!==l||t[23]!==L?(se=L.find(c=>c.id===l)?l:L.find(vt)?.id||L[0]?.id||"overview",t[22]=l,t[23]=L,t[24]=se):se=t[24];const fe=se;let re;t[25]!==g||t[26]!==I||t[27]!==r||t[28]!==e||t[29]!==C||t[30]!==u?(re=async c=>{const M=I[c??0]||C;if(!M||!e||!u?.user?.id)return;const $=Ke(M,e.id,u.user.id);if(!$.connection_url){he.error("This MCP Server cannot be connected: no connection URL available");return}try{const{id:U}=await g.create.mutateAsync($);r({to:"/$org/mcps/$connectionId",params:{org:e.slug,connectionId:U}})}catch(U){const D=U;he.error(`Failed to connect MCP Server: ${D instanceof Error?D.message:String(D)}`)}},t[25]=g,t[26]=I,t[27]=r,t[28]=e,t[29]=C,t[30]=u,t[31]=re):re=t[31];const ue=re;let oe;t[32]!==r||t[33]!==e.slug?(oe=()=>{r({to:"/$org/store",params:{org:e.slug}})},t[32]=r,t[33]=e.slug,t[34]=oe):oe=t[34];const A=oe;if(!C){let c;return t[35]!==A?(c=s.jsx(nt,{onBack:A}),t[35]=A,t[36]=c):c=t[36],c}if(!v)return null;const B=(C?.server?.remotes?.length??0)>0;let G;t[37]!==A?(G=s.jsx(it,{onBack:A}),t[37]=A,t[38]=G):G=t[38];let F;t[39]!==B?(F=!B&&s.jsxs("div",{className:"mb-6 p-4 bg-amber-50 border border-amber-200 rounded-lg text-sm text-amber-900",children:[s.jsx(st,{size:16,className:"inline mr-2"}),"This MCP Server cannot be connected - no connection method available."]}),t[39]=B,t[40]=F):F=t[40];let O;t[41]!==I||t[42]!==C?(O=I.length>0?I:[C],t[41]=I,t[42]=C,t[43]=O):O=t[43];let W;t[44]!==g.create.isPending||t[45]!==B||t[46]!==v||t[47]!==ue||t[48]!==O?(W=s.jsx(lt,{data:v,itemVersions:O,onInstall:ue,canInstall:B,isInstalling:g.create.isPending}),t[44]=g.create.isPending,t[45]=B,t[46]=v,t[47]=ue,t[48]=O,t[49]=W):W=t[49];let H;t[50]!==v||t[51]!==ce||t[52]!==C?(H=s.jsx(ct,{data:v,publisherInfo:ce,selectedItem:C}),t[50]=v,t[51]=ce,t[52]=C,t[53]=H):H=t[53];let Z;t[54]!==L||t[55]!==v||t[56]!==fe||t[57]!==V||t[58]!==Y?(Z=s.jsx(ft,{data:v,availableTabs:L,effectiveActiveTabId:fe,effectiveTools:V,isLoadingTools:Y,onTabChange:f}),t[54]=L,t[55]=v,t[56]=fe,t[57]=V,t[58]=Y,t[59]=Z):Z=t[59];let K;t[60]!==H||t[61]!==Z?(K=s.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 min-h-[677px]",children:[H,Z]}),t[60]=H,t[61]=Z,t[62]=K):K=t[62];let q;t[63]!==F||t[64]!==W||t[65]!==K?(q=s.jsx("div",{className:"flex-1 overflow-y-auto h-full",children:s.jsx("div",{className:"h-full",children:s.jsxs("div",{className:"h-full",children:[F,W,K]})})}),t[63]=F,t[64]=W,t[65]=K,t[66]=q):q=t[66];let ne;return t[67]!==G||t[68]!==q?(ne=s.jsxs("div",{className:"flex flex-col h-full border-l border-border",children:[G,q]}),t[67]=G,t[68]=q,t[69]=ne):ne=t[69],ne}function vt(t){return t.id==="readme"}function jt(t){return t.visible}function yt(t){return{name:t.name,description:t.description}}function Nt(t){return t.name.endsWith("_GET")}function Ct(t){return t.name.endsWith("_VERSIONS")}function is(){const t=P.c(6),{org:e}=Ne(),r=ve();let n;t[0]!==r||t[1]!==e.slug?(n=()=>{r({to:"/$org/store",params:{org:e.slug}})},t[0]=r,t[1]=e.slug,t[2]=n):n=t[2];const o=n;let i;t[3]===Symbol.for("react.memo_cache_sentinel")?(i=s.jsx(E.Suspense,{fallback:s.jsx(rt,{}),children:s.jsx(bt,{})}),t[3]=i):i=t[3];let d;return t[4]!==o?(d=s.jsx(gt,{onBack:o,children:i}),t[4]=o,t[5]=d):d=t[5],d}export{is as default};
1
+ import{r as E,c as P,j as s,h as ve,d as Te,b as _e,a as Me,t as he}from"./index-Cum2JwLw.js";import{i as Ie}from"./AlertCircle-DHCtv9wC.js";import{i as je}from"./Loading01-DKaPtj3-.js";import{B as ie}from"./button-DfMRfE6U.js";import{i as Pe}from"./ArrowLeft-DuzlVMpS.js";import{I as ye,E as Le,b as De,u as Ee,d as $e,c as Ue}from"./use-connection-B2okCga5.js";import{t as Ve}from"./ChevronDown-DFL_ztkL.js";import{s as ge}from"./Plus-BOhWr_Yd.js";import{b as Re,D as ze,a as Ae,c as Be}from"./dropdown-menu-DhuyLWwf.js";import{n as be}from"./LinkExternal01-Dk04u5a1.js";import{T as Ge,R as Fe}from"./tools-list-CFumR28e.js";import{R as Oe}from"./resource-tabs-BVIqlO4B.js";import{a as We}from"./use-binding-bczXt8eF.js";import{u as He}from"./use-tool-call-Yp-s5M9H.js";import{u as Ze}from"./use-mcp-5u2AwQ4e.js";import{u as Ne}from"./project-context-provider-BYGGoCTs.js";import{e as Ke}from"./extract-connection-data-BWCaylf6.js";import{s as qe}from"./slugify-CEUa2lfQ.js";import{a as Je,e as Qe,c as Xe,d as Ye,g as et}from"./github-icon-BrF3LMLL.js";import{e as tt}from"./app-name-gTETL9So.js";import{i as st}from"./InfoCircle-CvJnwAvU.js";import"./ChevronRight-Cys1zrTj.js";import"./useQuery-DhRmRhz6.js";import"./File06-c_emyfHw.js";import"./collection-display-button-NCEXG76d.js";import"./Grid01-CCmKx6B5.js";import"./view-mode-toggle-UYulkxW-.js";import"./collection-search-CEIFKuWa.js";import"./input-BhavpdOt.js";import"./collection-table-wrapper-Bkcq39C4.js";import"./card-DtNOepPc.js";import"./layout-CdDgPBcy.js";import"./badge-BB4ToOP0.js";import"./auth-C_fy8E36.js";import"./constants-CF9rgZdG.js";import"./generate-id-Dyweu44Y.js";const Ce=({size:t=24,color:e="currentColor",...r})=>E.createElement("svg",{viewBox:"0 0 24 24",width:t,height:t,stroke:e,strokeWidth:"2",fill:"none",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",...r},E.createElement("path",{d:"m7.5 12 3 3 6-6m5.5 3c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2s10 4.477 10 10Z"}));Ce.displayName="CheckCircle";const we=({size:t=24,color:e="currentColor",...r})=>E.createElement("svg",{viewBox:"0 0 24 24",width:t,height:t,stroke:e,strokeWidth:"2",fill:"none",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",...r},E.createElement("path",{d:"m21 21-3.5-3.5m2.5-6a8.5 8.5 0 1 1-17 0 8.5 8.5 0 0 1 17 0Z"}));we.displayName="SearchLg";function rt(t){const e=P.c(3),{message:r}=t,n=r===void 0?"Loading MCP Server details...":r;let o;e[0]===Symbol.for("react.memo_cache_sentinel")?(o=s.jsx(je,{size:48,className:"animate-spin mb-4"}),e[0]=o):o=e[0];let i;return e[1]!==n?(i=s.jsxs("div",{className:"flex flex-col items-center justify-center h-full",children:[o,s.jsx("p",{className:"text-sm text-muted-foreground",children:n})]}),e[1]=n,e[2]=i):i=e[2],i}function ot(t){const e=P.c(9),{error:r,onBack:n}=t,o=r instanceof Error?r.message:r;let i,d;e[0]===Symbol.for("react.memo_cache_sentinel")?(i=s.jsx(Ie,{size:48,className:"text-destructive mb-4"}),d=s.jsx("h3",{className:"text-lg font-medium mb-2",children:"Error loading MCP Server"}),e[0]=i,e[1]=d):(i=e[0],d=e[1]);let a;e[2]!==o?(a=s.jsx("p",{className:"text-muted-foreground max-w-md text-center",children:o}),e[2]=o,e[3]=a):a=e[3];let l;e[4]!==n?(l=s.jsx("button",{onClick:n,className:"mt-4 px-4 py-2 bg-primary text-primary-foreground rounded-lg hover:bg-primary/90 transition-colors",children:"Go Back"}),e[4]=n,e[5]=l):l=e[5];let f;return e[6]!==a||e[7]!==l?(f=s.jsxs("div",{className:"flex flex-col items-center justify-center h-full",children:[i,d,a,l]}),e[6]=a,e[7]=l,e[8]=f):f=e[8],f}function nt(t){const e=P.c(5),{onBack:r}=t;let n,o,i;e[0]===Symbol.for("react.memo_cache_sentinel")?(n=s.jsx(we,{size:48,className:"text-muted-foreground mb-4"}),o=s.jsx("h3",{className:"text-lg font-medium mb-2",children:"MCP Server not found"}),i=s.jsx("p",{className:"text-muted-foreground max-w-md text-center",children:"The MCP Server you're looking for doesn't exist in this store."}),e[0]=n,e[1]=o,e[2]=i):(n=e[0],o=e[1],i=e[2]);let d;return e[3]!==r?(d=s.jsxs("div",{className:"flex flex-col items-center justify-center h-full",children:[n,o,i,s.jsx("button",{onClick:r,className:"mt-4 px-4 py-2 bg-primary text-primary-foreground rounded-lg hover:bg-primary/90 transition-colors",children:"Go Back to Store"})]}),e[3]=r,e[4]=d):d=e[4],d}function it(t){const e=P.c(3),{onBack:r}=t;let n;e[0]===Symbol.for("react.memo_cache_sentinel")?(n=s.jsx(Pe,{}),e[0]=n):n=e[0];let o;return e[1]!==r?(o=s.jsx("div",{className:"flex items-center h-12 border-b border-border shrink-0",children:s.jsx("div",{className:"flex h-full px-2 border-r items-center",children:s.jsx(ie,{variant:"ghost",size:"icon",className:"items-center size-8 text-muted-foreground",onClick:r,"aria-label":"Go back",children:n})})}),e[1]=r,e[2]=o):o=e[2],o}function lt(t){const e=P.c(30),{data:r,itemVersions:n,onInstall:o,canInstall:i,isInstalling:d}=t,a=i===void 0?!0:i,l=d===void 0?!1:d,[f,g]=E.useState(0);let h;e[0]!==o?(h=_=>{g(_),o(_)},e[0]=o,e[1]=h):h=e[1];const u=h;let x;e[2]!==r.icon||e[3]!==r.name?(x=s.jsx(ye,{icon:r.icon,name:r.name,size:"lg",className:"shrink-0 shadow-sm"}),e[2]=r.icon,e[3]=r.name,e[4]=x):x=e[4];let p;e[5]!==r.name?(p=s.jsx("h1",{className:"text-3xl font-medium",children:r.name}),e[5]=r.name,e[6]=p):p=e[6];let b;e[7]!==r.verified?(b=r.verified&&s.jsx("img",{src:"/verified-badge.svg",alt:"Verified",className:"w-5 h-5 shrink-0"}),e[7]=r.verified,e[8]=b):b=e[8];let j;e[9]!==p||e[10]!==b?(j=s.jsxs("div",{className:"flex items-center gap-2",children:[p,b]}),e[9]=p,e[10]=b,e[11]=j):j=e[11];let w;e[12]!==r.shortDescription?(w=r.shortDescription&&s.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:r.shortDescription}),e[12]=r.shortDescription,e[13]=w):w=e[13];let S;e[14]!==j||e[15]!==w?(S=s.jsxs("div",{className:"flex-1 min-w-0",children:[j,w]}),e[14]=j,e[15]=w,e[16]=S):S=e[16];let k;e[17]!==a||e[18]!==u||e[19]!==l||e[20]!==n||e[21]!==o||e[22]!==f?(k=a?s.jsx("div",{className:"shrink-0",children:n.length>1?s.jsxs("div",{className:"flex",children:[s.jsxs(ie,{variant:"brand",onClick:()=>u(0),disabled:l,className:"shrink-0 rounded-r-none cursor-pointer",children:[s.jsx(ge,{size:20}),l?"Connecting...":"Connect Connection"]}),s.jsxs(Re,{children:[s.jsx(ze,{asChild:!0,children:s.jsx(ie,{variant:"brand",disabled:l,className:"shrink-0 rounded-l-none px-2 border-l-2 border-l-white/50 cursor-pointer",children:s.jsx(Ve,{size:20})})}),s.jsx(Ae,{align:"end",className:"w-56 max-h-[300px] overflow-y-auto",children:n.map((_,m)=>{const N=_._meta?.["io.modelcontextprotocol.registry/official"];return s.jsx(Be,{onClick:()=>u(m),disabled:l,className:"cursor-pointer",children:s.jsxs("div",{className:"flex items-center justify-between gap-2 w-full",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsxs("div",{className:"font-medium text-sm",children:["v",_.server?.version||"unknown"]}),N?.isLatest&&s.jsx("div",{className:"text-xs text-muted-foreground/50 font-semibold",children:"LATEST"})]}),m===f&&s.jsx(Ce,{size:16,className:"text-muted-foreground shrink-0"})]})},m)})})]})]}):s.jsxs(ie,{variant:"brand",onClick:()=>o(),disabled:n.length===0||l,className:"shrink-0",children:[s.jsx(ge,{size:20}),l?"Connecting...":"Connect MCP Server"]})}):s.jsx("div",{className:"shrink-0 px-4 py-2 text-sm text-muted-foreground bg-muted rounded-lg",children:"Cannot be connected"}),e[17]=a,e[18]=u,e[19]=l,e[20]=n,e[21]=o,e[22]=f,e[23]=k):k=e[23];let T;e[24]!==k||e[25]!==S?(T=s.jsxs("div",{className:"flex-1 min-w-0 flex items-center justify-between",children:[S,k]}),e[24]=k,e[25]=S,e[26]=T):T=e[26];let y;return e[27]!==T||e[28]!==x?(y=s.jsxs("div",{className:"flex items-center gap-4 py-8 px-5 border-b border-border",children:[x,T]}),e[27]=T,e[28]=x,e[29]=y):y=e[29],y}function at(t){if(!t)return"—";try{const e=new Date(t);return isNaN(e.getTime())?"—":e.toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"})}catch{return"—"}}function ct(t){const e=P.c(51),{data:r,publisherInfo:n,selectedItem:o}=t;let i;e[0]!==r.description?(i=r.description&&s.jsxs("div",{className:"px-5 pb-5 border-b border-border",children:[s.jsx("h2",{className:"text-base font-medium mb-3",children:"Overview"}),s.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:r.description})]}),e[0]=r.description,e[1]=i):i=e[1];const d=r.publisher==="io.modelcontextprotocol.registry/official"?"Official Registry":r.publisher;let a;e[2]!==n.logo||e[3]!==d?(a=s.jsx(ye,{icon:n.logo,name:d,size:"sm",className:"shrink-0 shadow-sm"}),e[2]=n.logo,e[3]=d,e[4]=a):a=e[4];let l;e[5]!==r.publisher?(l=r.publisher==="io.modelcontextprotocol.registry/official"?"Official Registry":r.publisher.charAt(0).toUpperCase()+r.publisher.slice(1),e[5]=r.publisher,e[6]=l):l=e[6];let f;e[7]!==l?(f=s.jsx("div",{className:"font-medium",children:l}),e[7]=l,e[8]=f):f=e[8];let g;e[9]!==n.count?(g=n.count>0?s.jsxs(s.Fragment,{children:[s.jsx("img",{src:"/globe.svg",alt:"globe",className:"w-3 h-3"}),s.jsxs("span",{children:[n.count," ",n.count===1?"published server":"published servers"]})]}):"Publisher",e[9]=n.count,e[10]=g):g=e[10];let h;e[11]!==g?(h=s.jsx("div",{className:"text-xs text-muted-foreground flex items-center gap-1",children:g}),e[11]=g,e[12]=h):h=e[12];let u;e[13]!==f||e[14]!==h?(u=s.jsxs("div",{children:[f,h]}),e[13]=f,e[14]=h,e[15]=u):u=e[15];let x;e[16]!==a||e[17]!==u?(x=s.jsx("div",{className:"px-5 border-b border-border",children:s.jsxs("div",{className:"flex items-center gap-3 py-5",children:[a,u]})}),e[16]=a,e[17]=u,e[18]=x):x=e[18];let p;e[19]!==r.version?(p=r.version&&s.jsxs("div",{className:"flex justify-between items-center text-sm",children:[s.jsx("span",{className:"text-foreground text-sm",children:"Version"}),s.jsxs("span",{className:"text-muted-foreground uppercase text-xs",children:["v",r.version]})]}),e[19]=r.version,e[20]=p):p=e[20];let b;e[21]!==r.tags?(b=r.tags&&r.tags.length>0&&s.jsxs("div",{className:"flex justify-between items-start text-sm",children:[s.jsx("span",{className:"text-foreground text-sm",children:"Tags"}),s.jsx("div",{className:"flex flex-wrap gap-1 justify-end max-w-[60%]",children:r.tags.map(mt)})]}),e[21]=r.tags,e[22]=b):b=e[22];let j;e[23]!==r.categories?(j=r.categories&&r.categories.length>0&&s.jsxs("div",{className:"flex justify-between items-start text-sm",children:[s.jsx("span",{className:"text-foreground text-sm",children:"Categories"}),s.jsx("div",{className:"flex flex-wrap gap-1 justify-end max-w-[60%]",children:r.categories.map(dt)})]}),e[23]=r.categories,e[24]=j):j=e[24];let w;e[25]!==r.connectionType?(w=r.connectionType&&s.jsxs("div",{className:"flex justify-between items-center text-sm",children:[s.jsx("span",{className:"text-foreground text-sm",children:"Connection Type"}),s.jsx("span",{className:"text-muted-foreground uppercase text-xs",children:r.connectionType})]}),e[25]=r.connectionType,e[26]=w):w=e[26];let S;e[27]!==r.schemaVersion?(S=r.schemaVersion&&s.jsxs("div",{className:"flex justify-between items-center text-sm",children:[s.jsx("span",{className:"text-foreground text-sm",children:"Schema Version"}),s.jsx("span",{className:"text-muted-foreground text-xs",children:r.schemaVersion})]}),e[27]=r.schemaVersion,e[28]=S):S=e[28];let k;e[29]!==r.websiteUrl?(k=r.websiteUrl&&s.jsxs("div",{className:"flex justify-between items-center text-sm",children:[s.jsx("span",{className:"text-foreground text-sm",children:"Website"}),s.jsxs("a",{href:r.websiteUrl,target:"_blank",rel:"noopener noreferrer",className:"text-muted-foreground hover:underline flex items-center gap-1 text-xs",children:[s.jsx("span",{children:"Visit"}),s.jsx(be,{size:14})]})]}),e[29]=r.websiteUrl,e[30]=k):k=e[30];let T;e[31]!==r.repository?(T=r.repository?.url&&s.jsxs("div",{className:"flex justify-between items-center text-sm",children:[s.jsx("span",{className:"text-foreground text-sm",children:"Source"}),s.jsxs("a",{href:r.repository.url,target:"_blank",rel:"noopener noreferrer",className:"text-muted-foreground hover:underline flex items-center gap-1 text-xs",children:[s.jsx("span",{children:"GitHub"}),s.jsx(be,{size:14})]})]}),e[31]=r.repository,e[32]=T):T=e[32];let y;e[33]!==p||e[34]!==b||e[35]!==j||e[36]!==w||e[37]!==S||e[38]!==k||e[39]!==T?(y=s.jsxs("div",{className:"px-5 py-5 border-b border-border space-y-4",children:[p,b,j,w,S,k,T]}),e[33]=p,e[34]=b,e[35]=j,e[36]=w,e[37]=S,e[38]=k,e[39]=T,e[40]=y):y=e[40];let _;e[41]===Symbol.for("react.memo_cache_sentinel")?(_=s.jsx("span",{className:"text-foreground text-sm",children:"Last Updated"}),e[41]=_):_=e[41];let m;e[42]!==o.updated_at?(m=at(o.updated_at),e[42]=o.updated_at,e[43]=m):m=e[43];let N;e[44]!==m?(N=s.jsxs("div",{className:"px-5 py-5 text-sm flex justify-between items-center border-b border-border",children:[_,s.jsx("span",{className:"text-muted-foreground uppercase text-xs",children:m})]}),e[44]=m,e[45]=N):N=e[45];let I;return e[46]!==i||e[47]!==y||e[48]!==N||e[49]!==x?(I=s.jsxs("div",{className:"lg:col-span-1 flex flex-col pt-5",children:[i,x,y,N]}),e[46]=i,e[47]=y,e[48]=N,e[49]=x,e[50]=I):I=e[50],I}function dt(t){return s.jsx("span",{className:"text-xs bg-muted px-2 py-0.5 rounded",children:t},t)}function mt(t){return s.jsx("span",{className:"text-xs bg-muted px-2 py-0.5 rounded",children:t},t)}function ft(t){const e=P.c(18),{data:r,availableTabs:n,effectiveActiveTabId:o,effectiveTools:i,isLoadingTools:d,onTabChange:a}=t,l=d===void 0?!1:d;let f;e[0]!==i?(f=i.map(ut),e[0]=i,e[1]=f):f=e[1];const g=f;let h;e[2]!==n||e[3]!==o||e[4]!==a?(h=n.length>0&&s.jsx("div",{className:"px-4 py-2 border-b border-border bg-background",children:s.jsx(Oe,{tabs:n,activeTab:o,onTabChange:a})}),e[2]=n,e[3]=o,e[4]=a,e[5]=h):h=e[5];let u;e[6]!==o||e[7]!==i.length||e[8]!==l||e[9]!==g?(u=o==="tools"&&s.jsx("div",{className:"flex flex-col flex-1",children:l?s.jsxs("div",{className:"flex items-center justify-center p-8",children:[s.jsx(je,{size:24,className:"animate-spin"}),s.jsx("span",{className:"ml-2 text-sm text-muted-foreground",children:"Loading tools..."})]}):i.length>0?s.jsx(Ge,{tools:g,showToolbar:!1,emptyMessage:"This MCP Server doesn't have any tools."}):s.jsx(Le,{image:null,title:"No tools available",description:"This MCP Server doesn't have any tools."})}),e[6]=o,e[7]=i.length,e[8]=l,e[9]=g,e[10]=u):u=e[10];let x;e[11]!==r?.repository||e[12]!==o?(x=o==="readme"&&s.jsx("div",{className:"flex-1 overflow-y-auto bg-background",children:s.jsx(Fe,{repository:r?.repository})}),e[11]=r?.repository,e[12]=o,e[13]=x):x=e[13];let p;return e[14]!==h||e[15]!==u||e[16]!==x?(p=s.jsxs("div",{className:"lg:col-span-2 flex flex-col border-l border-border",children:[h,u,x]}),e[14]=h,e[15]=u,e[16]=x,e[17]=p):p=e[17],p}function ut(t){const e=t;return{name:e.name||"",description:e.description||void 0}}function xt(t,e){if(!t||!e)return;const r=e.toLowerCase();return t.find(n=>n.app_name?.toLowerCase()===r||n.app_id?.toLowerCase()===r||n.title.toLowerCase()===r)||t.find(n=>n.title.toLowerCase().includes(r))}function pt(t,e,r,n,o){if(!e||e==="Unknown")return{count:0};if(e==="io.modelcontextprotocol.registry/official")return{logo:n?.icon||void 0,count:o??t.length};const i=e.toLowerCase(),d=t.filter(l=>(l._meta?.["io.modelcontextprotocol.registry/official"]?"io.modelcontextprotocol.registry/official":l.publisher||l._meta?.["mcp.mesh"]?.scopeName||"Unknown").toLowerCase()===i);return{logo:r?.icon||d[0]?.publisher_logo||d[0]?.icon||void 0,count:d.length}}function ht(t){const e=t.server._meta?.["mcp.mesh/publisher-provided"],r=t._meta?.["mcp.mesh"],n=t._meta?.["io.modelcontextprotocol.registry/official"],o=t.server,i=Xe(o.remotes?.[0]?.type),d=Ye(o.$schema),a=n?"io.modelcontextprotocol.registry/official":t.publisher||r?.scopeName||"Unknown",l=et(o.repository),f=t.icon||t.image||t.logo||o.icons?.[0]?.src||l||null,g=t.name||t.title||t.server?.title||"Unnamed Item",h=tt(g),u=r?.friendly_name||h,x=r?.mesh_description||t.description||t.summary||o?.description||"",p=r?.short_description||null,b=r?.tags||[],j=r?.categories||[];return{name:u,description:x,shortDescription:p,icon:f,verified:t.verified||r?.verified,publisher:a,version:o.version||null,websiteUrl:o.websiteUrl||null,repository:o.repository||null,schemaVersion:d??null,connectionType:i,connectionUrl:null,remoteUrl:null,tags:b,categories:j,tools:t.tools||o.tools||e?.tools||[],models:t.models||o.models||e?.models||[],emails:t.emails||o.emails||e?.emails||[],analytics:t.analytics||o.analytics||e?.analytics,cdn:t.cdn||o.cdn||e?.cdn}}class gt extends E.Component{state={hasError:!1,error:null};static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,r){console.error("Store MCP server detail error:",e,r)}render(){return this.state.hasError?s.jsx(ot,{error:this.state.error||new Error("Unknown error"),onBack:this.props.onBack}):this.props.children}}function bt(){const t=P.c(70),{org:e}=Ne(),r=ve();let n;t[0]===Symbol.for("react.memo_cache_sentinel")?(n={strict:!1},t[0]=n):n=t[0];const{appName:o}=Te(n);let i;t[1]===Symbol.for("react.memo_cache_sentinel")?(i={strict:!1},t[1]=i):i=t[1];const{registryId:d,serverName:a}=_e(i),[l,f]=E.useState("readme"),g=De(),h=Ee(),{data:u}=Me.useSession(),x=We(h),p=d||x[0]?.id||"",b=$e(p),j=Je(b?.tools),w=b?.tools&&b.tools.find(Ct)?.name||"",S=b?.tools&&b.tools.find(Nt)?.name||"",k=Ue(p),T=!!a;let y,_;T?(y=w||S,_={name:a}):(y=j,_={});const{data:m}=He({toolCaller:k,toolName:y,toolInputParams:_,scope:p});let N=[],I=[],xe=null;if(m){if(Array.isArray(m))N=m;else if(typeof m=="object"&&m!==null)if("totalCount"in m&&typeof m.totalCount=="number"&&(xe=m.totalCount),"item"in m&&m.item){const c=m.item,M=c.id||"",$=c.server,U=c._meta;let D;t[2]!==c.title||t[3]!==M||t[4]!==$||t[5]!==U?(D=[{id:M,title:c.title,server:$,_meta:U}],t[2]=c.title,t[3]=M,t[4]=$,t[5]=U,t[6]=D):D=t[6],N=D}else{let c;"versions"in m&&Array.isArray(m.versions)?c="versions":"servers"in m&&Array.isArray(m.servers)?c="servers":c=Object.keys(m).find(M=>Array.isArray(m[M])),c&&(N=m[c],(c==="versions"||y?.includes("VERSIONS"))&&(I=N))}}let X;t[7]!==o?(X=c=>{const M=c.name||c.title||c.server.title||"";return qe(M)===o},t[7]=o,t[8]=X):X=t[8];let C=N.find(X);if(!C&&a){let c;t[9]!==a?(c=M=>M.server.name===a||M.name===a||M.title===a,t[9]=a,t[10]=c):c=t[10],C=N.find(c)}const v=C?ht(C):null,le=(v?.tools?.length||0)>0,ae=C?.server?.remotes?.[0]?.url||null,J=!le&&!!ae,Q=Ze({url:J?ae:""}),Y=J&&Q.state==="connecting";let ee;t[11]!==Q||t[12]!==J?(ee=J&&Q.state==="ready"?(Q.tools||[]).map(yt):[],t[11]=Q,t[12]=J,t[13]=ee):ee=t[13];const pe=ee,V=le?v?.tools||[]:pe,Se=xt(h,v?.publisher),ce=v?pt(N,v.publisher,Se,b??null,xe):{count:0},ke=v?.repository?Qe(v.repository):null,de=!!v?.repository&&!!ke;let R;t[14]!==de?(R={id:"readme",label:"README",visible:de},t[14]=de,t[15]=R):R=t[15];const me=le||pe.length>0||Y&&!!ae;let z;t[16]!==V.length||t[17]!==me?(z={id:"tools",label:"Tools",count:V.length,visible:me},t[16]=V.length,t[17]=me,t[18]=z):z=t[18];let te;t[19]!==R||t[20]!==z?(te=[R,z].filter(jt),t[19]=R,t[20]=z,t[21]=te):te=t[21];const L=te;let se;t[22]!==l||t[23]!==L?(se=L.find(c=>c.id===l)?l:L.find(vt)?.id||L[0]?.id||"overview",t[22]=l,t[23]=L,t[24]=se):se=t[24];const fe=se;let re;t[25]!==g||t[26]!==I||t[27]!==r||t[28]!==e||t[29]!==C||t[30]!==u?(re=async c=>{const M=I[c??0]||C;if(!M||!e||!u?.user?.id)return;const $=Ke(M,e.id,u.user.id);if(!$.connection_url){he.error("This MCP Server cannot be connected: no connection URL available");return}try{const{id:U}=await g.create.mutateAsync($);r({to:"/$org/mcps/$connectionId",params:{org:e.slug,connectionId:U}})}catch(U){const D=U;he.error(`Failed to connect MCP Server: ${D instanceof Error?D.message:String(D)}`)}},t[25]=g,t[26]=I,t[27]=r,t[28]=e,t[29]=C,t[30]=u,t[31]=re):re=t[31];const ue=re;let oe;t[32]!==r||t[33]!==e.slug?(oe=()=>{r({to:"/$org/store",params:{org:e.slug}})},t[32]=r,t[33]=e.slug,t[34]=oe):oe=t[34];const A=oe;if(!C){let c;return t[35]!==A?(c=s.jsx(nt,{onBack:A}),t[35]=A,t[36]=c):c=t[36],c}if(!v)return null;const B=(C?.server?.remotes?.length??0)>0;let G;t[37]!==A?(G=s.jsx(it,{onBack:A}),t[37]=A,t[38]=G):G=t[38];let F;t[39]!==B?(F=!B&&s.jsxs("div",{className:"mb-6 p-4 bg-amber-50 border border-amber-200 rounded-lg text-sm text-amber-900",children:[s.jsx(st,{size:16,className:"inline mr-2"}),"This MCP Server cannot be connected - no connection method available."]}),t[39]=B,t[40]=F):F=t[40];let O;t[41]!==I||t[42]!==C?(O=I.length>0?I:[C],t[41]=I,t[42]=C,t[43]=O):O=t[43];let W;t[44]!==g.create.isPending||t[45]!==B||t[46]!==v||t[47]!==ue||t[48]!==O?(W=s.jsx(lt,{data:v,itemVersions:O,onInstall:ue,canInstall:B,isInstalling:g.create.isPending}),t[44]=g.create.isPending,t[45]=B,t[46]=v,t[47]=ue,t[48]=O,t[49]=W):W=t[49];let H;t[50]!==v||t[51]!==ce||t[52]!==C?(H=s.jsx(ct,{data:v,publisherInfo:ce,selectedItem:C}),t[50]=v,t[51]=ce,t[52]=C,t[53]=H):H=t[53];let Z;t[54]!==L||t[55]!==v||t[56]!==fe||t[57]!==V||t[58]!==Y?(Z=s.jsx(ft,{data:v,availableTabs:L,effectiveActiveTabId:fe,effectiveTools:V,isLoadingTools:Y,onTabChange:f}),t[54]=L,t[55]=v,t[56]=fe,t[57]=V,t[58]=Y,t[59]=Z):Z=t[59];let K;t[60]!==H||t[61]!==Z?(K=s.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 min-h-[677px]",children:[H,Z]}),t[60]=H,t[61]=Z,t[62]=K):K=t[62];let q;t[63]!==F||t[64]!==W||t[65]!==K?(q=s.jsx("div",{className:"flex-1 overflow-y-auto h-full",children:s.jsx("div",{className:"h-full",children:s.jsxs("div",{className:"h-full",children:[F,W,K]})})}),t[63]=F,t[64]=W,t[65]=K,t[66]=q):q=t[66];let ne;return t[67]!==G||t[68]!==q?(ne=s.jsxs("div",{className:"flex flex-col h-full border-l border-border",children:[G,q]}),t[67]=G,t[68]=q,t[69]=ne):ne=t[69],ne}function vt(t){return t.id==="readme"}function jt(t){return t.visible}function yt(t){return{name:t.name,description:t.description}}function Nt(t){return t.name.endsWith("_GET")}function Ct(t){return t.name.endsWith("_VERSIONS")}function is(){const t=P.c(6),{org:e}=Ne(),r=ve();let n;t[0]!==r||t[1]!==e.slug?(n=()=>{r({to:"/$org/store",params:{org:e.slug}})},t[0]=r,t[1]=e.slug,t[2]=n):n=t[2];const o=n;let i;t[3]===Symbol.for("react.memo_cache_sentinel")?(i=s.jsx(E.Suspense,{fallback:s.jsx(rt,{}),children:s.jsx(bt,{})}),t[3]=i):i=t[3];let d;return t[4]!==o?(d=s.jsx(gt,{onBack:o,children:i}),t[4]=o,t[5]=d):d=t[5],d}export{is as default};
@@ -1,3 +1,3 @@
1
- import{r as U,K as oe,a as X,s as fs,W as He,V as Ms,Q as zs,v as ue,B as qe,x as Es,w as ks,t as J,j as t,c as de,p as Ds}from"./index-DKhlCI_x.js";import{C as Bs}from"./collection-header-Cg64mtbo.js";import{C as es}from"./collection-page-DgWl3hcu.js";import{C as Ze}from"./collection-search-D_WbnaGd.js";import{C as Gs}from"./collection-table-wrapper-BziKCd5v.js";import{T as Us,S as Ue}from"./switch-0oisonmD.js";import{u as Vs,c as $s,E as Je}from"./use-connection-BijkkxIc.js";import{u as os}from"./use-members-Ooe4w4iC.js";import{W as Fs}from"./well-known-mcp-D13f-8h2.js";import{u as Ce,a as Ne,c as ye,b as Ee,T as Se}from"./project-context-provider-d0n4IqI8.js";import{u as Ss}from"./useQuery-BcmdVjIq.js";import{A as je}from"./avatar-CSdVudJi.js";import{B as Ie}from"./badge-DgawqffN.js";import{u as fe,c as re,B as ee}from"./button-DNDGU2TI.js";import{C as Ks}from"./checkbox-khNtwUU2.js";import{f as we,a as Te,b as Ae,c as Oe,d as Re,e as _e,A as Pe,g as Le}from"./alert-dialog-DRnTpMl_.js";import{d as Is,e as ws,c as Ts,D as Qs,a as qs,f as Zs}from"./dialog-BQAmZYkz.js";import{b as as,D as cs,a as ds,c as Ke,e as Ys,f as Ws,g as Hs,d as Js}from"./dropdown-menu-DrJ8JVyD.js";import{i as Xs}from"./DotsHorizontal-gKr61GPJ.js";import{i as As}from"./Loading01-ol6YE3uU.js";import{i as et}from"./Lock01-CaL8sf5y.js";import{s as ss}from"./Plus-Dj_8zgGI.js";import{s as Os}from"./Trash01-dxE-iYht.js";import{i as hs}from"./X-BvKeBLsh.js";import{I as st}from"./input-DebjWxRP.js";import{E as tt}from"./error-boundary-CdDh2rh4.js";import{a as nt,F as gs,b as xs,c as rt,d as ps,f as bs}from"./form-CeAHJl1w.js";import{S as ts,a as ns,b as rs,c as is,d as ls}from"./select-CbMi2p4J.js";import{T as it}from"./textarea-CH1xmcup.js";import{C as js}from"./card-Bm3Srv__.js";import{i as Rs}from"./DotsVertical-BRB99_wf.js";import{i as lt}from"./Key01-C7wPsHjA.js";import{s as ot}from"./XClose-BnA_V6wK.js";import"./collection-display-button-Bg2te3H-.js";import"./Grid01-DvNuuuCQ.js";import"./view-mode-toggle-DHIMDUvK.js";import"./ArrowLeft-DfQz7YbP.js";import"./ChevronRight-BPIYvimG.js";import"./ChevronDown-ZO3Wlgkk.js";const ms=({size:s=24,color:e="currentColor",...n})=>U.createElement("svg",{viewBox:"0 0 24 24",width:s,height:s,stroke:e,strokeWidth:"2",fill:"none",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",...n},U.createElement("path",{d:"M11.302 21.615c.221.129.332.194.488.227.122.026.298.026.42 0 .156-.034.267-.098.488-.227C14.646 20.478 20 16.908 20 12V7.217c0-.799 0-1.199-.13-1.542a2 2 0 0 0-.548-.79c-.275-.243-.65-.383-1.398-.664l-5.362-2.01c-.208-.078-.312-.117-.419-.133a1 1 0 0 0-.286 0c-.107.016-.21.055-.419.133L6.076 4.22c-.748.28-1.122.421-1.398.664a2 2 0 0 0-.547.79C4 6.018 4 6.418 4 7.217V12c0 4.908 5.354 8.478 7.302 9.615Z"}));ms.displayName="Shield01";const _s=({size:s=24,color:e="currentColor",...n})=>U.createElement("svg",{viewBox:"0 0 24 24",width:s,height:s,stroke:e,strokeWidth:"2",fill:"none",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",...n},U.createElement("path",{d:"M20 17H4m0 0 4-4m-4 4 4 4M4 7h16m0 0-4-4m4 4-4 4"}));_s.displayName="SwitchHorizontal01";const Ps=[{name:"ORGANIZATION_CREATE",description:"Create a new organization",category:"Organizations"},{name:"ORGANIZATION_LIST",description:"List organizations",category:"Organizations"},{name:"ORGANIZATION_GET",description:"View organization details",category:"Organizations"},{name:"ORGANIZATION_UPDATE",description:"Update organization",category:"Organizations"},{name:"ORGANIZATION_DELETE",description:"Delete organization",category:"Organizations",dangerous:!0},{name:"ORGANIZATION_SETTINGS_GET",description:"View organization settings",category:"Organizations"},{name:"ORGANIZATION_SETTINGS_UPDATE",description:"Update organization settings",category:"Organizations"},{name:"ORGANIZATION_MEMBER_ADD",description:"Add members",category:"Organizations"},{name:"ORGANIZATION_MEMBER_REMOVE",description:"Remove members",category:"Organizations",dangerous:!0},{name:"ORGANIZATION_MEMBER_LIST",description:"List members",category:"Organizations"},{name:"ORGANIZATION_MEMBER_UPDATE_ROLE",description:"Update member roles",category:"Organizations"},{name:"COLLECTION_CONNECTIONS_CREATE",description:"Create connections",category:"Connections"},{name:"COLLECTION_CONNECTIONS_LIST",description:"List connections",category:"Connections"},{name:"COLLECTION_CONNECTIONS_GET",description:"View connection details",category:"Connections"},{name:"COLLECTION_CONNECTIONS_UPDATE",description:"Update connections",category:"Connections"},{name:"COLLECTION_CONNECTIONS_DELETE",description:"Delete connections",category:"Connections",dangerous:!0},{name:"CONNECTION_TEST",description:"Test connections",category:"Connections"},{name:"DATABASES_RUN_SQL",description:"Run SQL queries",category:"Connections",dangerous:!0},{name:"COLLECTION_GATEWAY_CREATE",description:"Create gateways",category:"Gateways"},{name:"COLLECTION_GATEWAY_LIST",description:"List gateways",category:"Gateways"},{name:"COLLECTION_GATEWAY_GET",description:"View gateway details",category:"Gateways"},{name:"COLLECTION_GATEWAY_UPDATE",description:"Update gateways",category:"Gateways"},{name:"COLLECTION_GATEWAY_DELETE",description:"Delete gateways",category:"Gateways",dangerous:!0},{name:"MONITORING_LOGS_LIST",description:"List monitoring logs",category:"Monitoring"},{name:"MONITORING_STATS",description:"View monitoring statistics",category:"Monitoring"},{name:"API_KEY_CREATE",description:"Create API key",category:"API Keys"},{name:"API_KEY_LIST",description:"List API keys",category:"API Keys"},{name:"API_KEY_UPDATE",description:"Update API key",category:"API Keys"},{name:"API_KEY_DELETE",description:"Delete API key",category:"API Keys",dangerous:!0},{name:"EVENT_PUBLISH",description:"Publish events",category:"Event Bus"},{name:"EVENT_SUBSCRIBE",description:"Subscribe to events",category:"Event Bus"},{name:"EVENT_UNSUBSCRIBE",description:"Unsubscribe from events",category:"Event Bus"},{name:"EVENT_CANCEL",description:"Cancel recurring events",category:"Event Bus"},{name:"EVENT_ACK",description:"Acknowledge event delivery",category:"Event Bus"},{name:"EVENT_SUBSCRIPTION_LIST",description:"List event subscriptions",category:"Event Bus"},{name:"EVENT_SYNC_SUBSCRIPTIONS",description:"Sync subscriptions to desired state",category:"Event Bus"},{name:"USER_GET",description:"Get a user by id",category:"Users"}],at={ORGANIZATION_CREATE:"Create organization",ORGANIZATION_LIST:"List organizations",ORGANIZATION_GET:"View organization details",ORGANIZATION_UPDATE:"Update organization",ORGANIZATION_DELETE:"Delete organization",ORGANIZATION_SETTINGS_GET:"View organization settings",ORGANIZATION_SETTINGS_UPDATE:"Update organization settings",ORGANIZATION_MEMBER_LIST:"List members",ORGANIZATION_MEMBER_ADD:"Add members",ORGANIZATION_MEMBER_REMOVE:"Remove members",ORGANIZATION_MEMBER_UPDATE_ROLE:"Update member roles",COLLECTION_CONNECTIONS_LIST:"List connections",COLLECTION_CONNECTIONS_GET:"View connection details",COLLECTION_CONNECTIONS_CREATE:"Create connections",COLLECTION_CONNECTIONS_UPDATE:"Update connections",COLLECTION_CONNECTIONS_DELETE:"Delete connections",CONNECTION_TEST:"Test connections",DATABASES_RUN_SQL:"Run SQL queries",COLLECTION_GATEWAY_CREATE:"Create gateways",COLLECTION_GATEWAY_LIST:"List gateways",COLLECTION_GATEWAY_GET:"View gateway details",COLLECTION_GATEWAY_UPDATE:"Update gateways",COLLECTION_GATEWAY_DELETE:"Delete gateways",MONITORING_LOGS_LIST:"List monitoring logs",MONITORING_STATS:"View monitoring statistics",API_KEY_CREATE:"Create API key",API_KEY_LIST:"List API keys",API_KEY_UPDATE:"Update API key",API_KEY_DELETE:"Delete API key",EVENT_PUBLISH:"Publish events",EVENT_SUBSCRIBE:"Subscribe to events",EVENT_UNSUBSCRIBE:"Unsubscribe from events",EVENT_CANCEL:"Cancel recurring events",EVENT_ACK:"Acknowledge event delivery",EVENT_SUBSCRIPTION_LIST:"List event subscriptions",EVENT_SYNC_SUBSCRIPTIONS:"Sync subscriptions to desired state",USER_GET:"Get user by id"};function ct(){const s={Organizations:[],Connections:[],Gateways:[],Monitoring:[],Users:[],"API Keys":[],"Event Bus":[]};for(const e of Ps)s[e.category]?.push(e);return s}function dt(){return Ps.map(s=>({value:s.name,label:at[s.name],dangerous:s.dangerous}))}const Cs=[{value:"owner",label:"Owner",isBuiltin:!0},{value:"admin",label:"Admin",isBuiltin:!0},{value:"user",label:"User",isBuiltin:!0}];function mt(s){return s.replace(/-/g," ")}function ut(s){if(!s)return{staticPermissions:[],allowsAllStaticPermissions:!1,connectionIds:[],allowsAllConnections:!1,toolNames:[],allowsAllTools:!1};const e=[];let n=!1;const l=[];let a=!1;const i=new Set;let h=!1;for(const[o,x]of Object.entries(s)){if(o===Fs.SELF){x.includes("*")?n=!0:e.push(...x);continue}if(o==="*"){if(a=!0,x.includes("*"))h=!0;else for(const y of x)i.add(y);continue}if(l.push(o),x.includes("*"))h=!0;else for(const y of x)i.add(y)}return{staticPermissions:e,allowsAllStaticPermissions:n,connectionIds:l,allowsAllConnections:a,toolNames:Array.from(i),allowsAllTools:h}}function us(){const{locator:s}=Ce(),{data:e,isLoading:n,error:l,refetch:a}=Ss({queryKey:oe.organizationRoles(s),queryFn:async()=>{try{const o=await X.organization.listRoles();return o?.error?(console.error("[useOrganizationRoles] API error:",o.error),[]):o?.data??[]}catch(o){return console.error("[useOrganizationRoles] Fetch error:",o),[]}},staleTime:3e4}),i=Cs.map(o=>({role:o.value,label:o.label,isBuiltin:o.isBuiltin}));if(e&&Array.isArray(e))for(const o of e){const x=o.role;if(!x||Cs.some(j=>j.value===x))continue;const{staticPermissions:y,allowsAllStaticPermissions:f,connectionIds:T,allowsAllConnections:d,toolNames:S,allowsAllTools:u}=ut(o.permission);i.push({id:o.id,role:x,label:mt(x),isBuiltin:!1,permission:o.permission??void 0,staticPermissionCount:f?-1:y.length,allowsAllStaticPermissions:f,connectionCount:d?-1:T.length,allowsAllConnections:d,toolCount:u?-1:S.length,allowsAllTools:u})}const h=i.filter(o=>!o.isBuiltin);return{roles:i,customRoles:h,builtinRoles:i.filter(o=>o.isBuiltin),isLoading:n,error:l,refetch:a}}const ft=fs({role:fs({id:ue().optional(),slug:ue().optional(),label:ue()}),allowAllStaticPermissions:zs(),staticPermissions:He(ue()),toolSet:Ms(ue(),He(ue())),memberIds:He(ue())});function Ls(s){return s?s.split(" ").map(e=>e[0]).join("").toUpperCase().slice(0,2):"?"}const ht=[{role:"owner",label:"Owner",color:"bg-red-500"},{role:"admin",label:"Admin",color:"bg-blue-500"},{role:"user",label:"User",color:"bg-green-500"}],Xe=["bg-red-500","bg-orange-500","bg-amber-500","bg-yellow-500","bg-lime-500","bg-green-500","bg-emerald-500","bg-teal-500","bg-cyan-500","bg-sky-500","bg-blue-500","bg-indigo-500","bg-violet-500","bg-purple-500","bg-fuchsia-500","bg-pink-500","bg-rose-500"];function gt(s){if(!s)return"bg-neutral-400";let e=0;for(let l=0;l<s.length;l++){const a=s.charCodeAt(l);e=(e<<5)-e+a,e=e&e}const n=Math.abs(e)%Xe.length;return Xe[n]??Xe[0]}function Ve(){return{role:{id:void 0,slug:void 0,label:""},allowAllStaticPermissions:!1,staticPermissions:[],toolSet:{},memberIds:[]}}function xt(s){const e=de.c(39),{allowAllStaticPermissions:n,staticPermissions:l,onAllowAllChange:a,onPermissionsChange:i,readOnly:h}=s,o=h===void 0?!1:h,[x,y]=U.useState(""),f=U.useDeferredValue(x);let T,d,S,u,j;if(e[0]!==n||e[1]!==f||e[2]!==a||e[3]!==i||e[4]!==o||e[5]!==x||e[6]!==l){const g=ct(),c=dt(),v=c.filter(E=>E.label.toLowerCase().includes(f.toLowerCase())),I=E=>{if(l.includes(E))i(l.filter(_=>_!==E));else{const _=[...l,E];_.length===c.length?(a(!0),i([])):i(_)}};S="flex flex-col h-full",e[12]!==x?(u=t.jsx("div",{className:"border-b border-border",children:t.jsx(Ze,{value:x,onChange:y,placeholder:"Search permissions...",className:"border-b-0"})}),e[12]=x,e[13]=u):u=e[13];const P=!o&&"hover:bg-muted/50 cursor-pointer";let w;e[14]!==P?(w=re("flex items-center justify-between px-4 py-3 rounded-lg",P),e[14]=P,e[15]=w):w=e[15];let O;e[16]!==n||e[17]!==a||e[18]!==i||e[19]!==o?(O=()=>{if(o)return;a(!n),i([])},e[16]=n,e[17]=a,e[18]=i,e[19]=o,e[20]=O):O=e[20];let A;e[21]===Symbol.for("react.memo_cache_sentinel")?(A=t.jsx("span",{className:"text-sm font-medium",children:"All organization permissions"}),e[21]=A):A=e[21];let L;e[22]!==n||e[23]!==a||e[24]!==i||e[25]!==o?(L=t.jsx("div",{onClick:vt,children:o?t.jsx(Ne,{children:t.jsxs(ye,{children:[t.jsx(Ee,{asChild:!0,children:t.jsx("div",{children:t.jsx(Ue,{checked:n,disabled:o,onCheckedChange:E=>{o||(a(E),i([]))}})})}),t.jsx(Se,{children:t.jsx("p",{children:"Built-in role permissions cannot be changed"})})]})}):t.jsx(Ue,{checked:n,disabled:o,onCheckedChange:E=>{o||(a(E),i([]))}})}),e[22]=n,e[23]=a,e[24]=i,e[25]=o,e[26]=L):L=e[26],e[27]!==L||e[28]!==w||e[29]!==O?(j=t.jsx("div",{className:"border-b border-border",children:t.jsxs("div",{className:w,onClick:O,children:[A,L]})}),e[27]=L,e[28]=w,e[29]=O,e[30]=j):j=e[30],T="flex-1 overflow-auto",d=Object.entries(g).map(E=>{const[_,z]=E,N=v.filter(m=>z.some(M=>M.name===m.value));return N.length===0?null:t.jsxs("div",{className:"mb-6 last:mb-0",children:[t.jsx("h4",{className:"text-sm font-medium p-3 pb-1.5 text-muted-foreground/75",children:_}),t.jsx("div",{className:"space-y-1",children:N.map(m=>t.jsxs("div",{className:re("flex items-center justify-between gap-3 px-4 py-3",!o&&"hover:bg-muted/50 cursor-pointer"),onClick:()=>{if(!o)if(n){a(!1);const M=c.map(Ct);i(M.filter(V=>V!==m.value))}else I(m.value)},children:[t.jsx("div",{className:"flex-1 min-w-0",children:t.jsx("span",{className:"text-sm",children:m.label})}),t.jsx("div",{onClick:jt,children:o?t.jsx(Ne,{children:t.jsxs(ye,{children:[t.jsx(Ee,{asChild:!0,children:t.jsx("div",{children:t.jsx(Ue,{checked:n||l.includes(m.value),disabled:o,onCheckedChange:()=>{if(!o)if(n){a(!1);const M=c.map(bt);i(M.filter(V=>V!==m.value))}else I(m.value)}})})}),t.jsx(Se,{children:t.jsx("p",{children:"Built-in role permissions cannot be changed"})})]})}):t.jsx(Ue,{checked:n||l.includes(m.value),disabled:o,onCheckedChange:()=>{if(!o)if(n){a(!1);const M=c.map(pt);i(M.filter(V=>V!==m.value))}else I(m.value)}})})]},m.value))})]},_)}),e[0]=n,e[1]=f,e[2]=a,e[3]=i,e[4]=o,e[5]=x,e[6]=l,e[7]=T,e[8]=d,e[9]=S,e[10]=u,e[11]=j}else T=e[7],d=e[8],S=e[9],u=e[10],j=e[11];let p;e[31]!==T||e[32]!==d?(p=t.jsx("div",{className:T,children:d}),e[31]=T,e[32]=d,e[33]=p):p=e[33];let C;return e[34]!==S||e[35]!==u||e[36]!==j||e[37]!==p?(C=t.jsxs("div",{className:S,children:[u,j,p]}),e[34]=S,e[35]=u,e[36]=j,e[37]=p,e[38]=C):C=e[38],C}function pt(s){return s.value}function bt(s){return s.value}function jt(s){return s.stopPropagation()}function Ct(s){return s.value}function vt(s){return s.stopPropagation()}function Nt(s){const e=de.c(56),{open:n,onOpenChange:l,selectedMemberIds:a,onAddMembers:i}=s,[h,o]=U.useState(""),x=U.useDeferredValue(h);let y;e[0]===Symbol.for("react.memo_cache_sentinel")?(y=[],e[0]=y):y=e[0];const[f,T]=U.useState(y),{data:d}=os();let S,u,j,p,C,g,c,v,I,P,w;if(e[1]!==d?.data?.members||e[2]!==x||e[3]!==i||e[4]!==l||e[5]!==n||e[6]!==f||e[7]!==h||e[8]!==a){const M=d?.data?.members??[];let V;e[20]!==x?(V=D=>{const r=x.toLowerCase();return D.user?.name?.toLowerCase().includes(r)||D.user?.email?.toLowerCase().includes(r)},e[20]=x,e[21]=V):V=e[21];const se=M.filter(V),F=yt;let K;e[22]!==a?(K=D=>a.includes(D),e[22]=a,e[23]=K):K=e[23];const Q=K;let Y;e[24]!==f?(Y=D=>{f.includes(D)?T(f.filter(r=>r!==D)):T([...f,D])},e[24]=f,e[25]=Y):Y=e[25];const ne=Y;let te;e[26]!==i||e[27]!==l||e[28]!==f?(te=()=>{i(f),T([]),l(!1)},e[26]=i,e[27]=l,e[28]=f,e[29]=te):te=e[29],j=te,u=we,P=n,w=l,S=Te,v="sm:max-w-md p-0 overflow-hidden",e[30]===Symbol.for("react.memo_cache_sentinel")?(I=t.jsxs(Ae,{className:"px-6 pt-6",children:[t.jsx(Oe,{children:"Add Members to Role"}),t.jsx(Re,{children:"Select members to add to this role."})]}),e[30]=I):I=e[30],g="flex flex-col h-80",e[31]!==h?(c=t.jsx(Ze,{value:h,onChange:o,placeholder:"Search members...",className:"border-b border-t-0 border-x-0 rounded-none"}),e[31]=h,e[32]=c):c=e[32],p="flex-1 overflow-auto",C=se.length===0?t.jsx("div",{className:"flex items-center justify-center h-full px-6",children:t.jsx("p",{className:"text-sm text-muted-foreground",children:h?"No members found":"No members available"})}):t.jsx("div",{className:"px-6 py-2 space-y-1",children:se.map(D=>{const r=F(D),b=Q(D.id),$=f.includes(D.id);return t.jsxs("label",{className:re("flex items-center gap-3 p-2 rounded-lg",!r||b?"opacity-50 cursor-not-allowed":"cursor-pointer hover:bg-muted/50"),children:[t.jsx(Ks,{checked:$||b,onCheckedChange:()=>{r&&!b&&ne(D.id)},disabled:!r||b}),t.jsx(je,{url:D.user?.image??void 0,fallback:Ls(D.user?.name),shape:"circle",size:"sm"}),t.jsxs("div",{className:"flex-1 min-w-0",children:[t.jsx("p",{className:"text-sm font-medium truncate",children:D.user?.name||"Unknown"}),t.jsx("p",{className:"text-xs text-muted-foreground truncate",children:D.user?.email})]}),!r&&t.jsx(Ie,{variant:"secondary",className:"shrink-0",children:"Owner"}),b&&r&&t.jsx(Ie,{variant:"outline",className:"shrink-0",children:"Added"})]},D.id)})}),e[1]=d?.data?.members,e[2]=x,e[3]=i,e[4]=l,e[5]=n,e[6]=f,e[7]=h,e[8]=a,e[9]=S,e[10]=u,e[11]=j,e[12]=p,e[13]=C,e[14]=g,e[15]=c,e[16]=v,e[17]=I,e[18]=P,e[19]=w}else S=e[9],u=e[10],j=e[11],p=e[12],C=e[13],g=e[14],c=e[15],v=e[16],I=e[17],P=e[18],w=e[19];let O;e[33]!==p||e[34]!==C?(O=t.jsx("div",{className:p,children:C}),e[33]=p,e[34]=C,e[35]=O):O=e[35];let A;e[36]!==O||e[37]!==g||e[38]!==c?(A=t.jsxs("div",{className:g,children:[c,O]}),e[36]=O,e[37]=g,e[38]=c,e[39]=A):A=e[39];let L;e[40]===Symbol.for("react.memo_cache_sentinel")?(L=t.jsx(Pe,{children:"Cancel"}),e[40]=L):L=e[40];const E=f.length===0,_=f.length>0&&`(${f.length})`;let z;e[41]!==j||e[42]!==E||e[43]!==_?(z=t.jsxs(_e,{className:"px-6 pb-6",children:[L,t.jsxs(Le,{onClick:j,disabled:E,children:["Add ",_]})]}),e[41]=j,e[42]=E,e[43]=_,e[44]=z):z=e[44];let N;e[45]!==S||e[46]!==A||e[47]!==z||e[48]!==v||e[49]!==I?(N=t.jsxs(S,{className:v,children:[I,A,z]}),e[45]=S,e[46]=A,e[47]=z,e[48]=v,e[49]=I,e[50]=N):N=e[50];let m;return e[51]!==u||e[52]!==N||e[53]!==P||e[54]!==w?(m=t.jsx(u,{open:P,onOpenChange:w,children:N}),e[51]=u,e[52]=N,e[53]=P,e[54]=w,e[55]=m):m=e[55],m}function yt(s){return s.role!=="owner"}function Et(s){const e=de.c(40),{memberIds:n,onMemberIdsChange:l,readOnly:a}=s,i=a===void 0?!1:a,[h,o]=U.useState(""),x=U.useDeferredValue(h),[y,f]=U.useState(!1),{data:T}=os();let d,S,u,j,p;if(e[0]!==T?.data?.members||e[1]!==x||e[2]!==n||e[3]!==l||e[4]!==i||e[5]!==h){const v=T?.data?.members??[];let I;e[11]!==n?(I=N=>n.includes(N.id),e[11]=n,e[12]=I):I=e[12];const P=v.filter(I);let w;e[13]!==x?(w=N=>{const m=x.toLowerCase();return N.user?.name?.toLowerCase().includes(m)||N.user?.email?.toLowerCase().includes(m)},e[13]=x,e[14]=w):w=e[14];const O=P.filter(w);let A;e[15]!==n||e[16]!==l?(A=N=>{l(n.filter(m=>m!==N))},e[15]=n,e[16]=l,e[17]=A):A=e[17];const L=A;let E;e[18]!==n||e[19]!==l?(E=N=>{l([...n,...N])},e[18]=n,e[19]=l,e[20]=E):E=e[20],d=E,j="flex flex-col h-full";let _;e[21]!==h?(_=t.jsx(Ze,{value:h,onChange:o,placeholder:"Search members...",className:"flex-1 border-b-0"}),e[21]=h,e[22]=_):_=e[22];let z;e[23]!==i?(z=i?t.jsx("div",{className:"pr-4",children:t.jsx(Ne,{children:t.jsxs(ye,{children:[t.jsx(Ee,{asChild:!0,children:t.jsx("div",{children:t.jsxs(ee,{variant:"outline",size:"sm",disabled:!0,children:[t.jsx(ss,{size:16}),"Add Member"]})})}),t.jsx(Se,{children:t.jsx("p",{children:"Owner membership cannot be changed"})})]})})}):t.jsx("div",{className:"pr-4",children:t.jsxs(ee,{variant:"outline",size:"sm",onClick:()=>f(!0),children:[t.jsx(ss,{size:16}),"Add Member"]})}),e[23]=i,e[24]=z):z=e[24],e[25]!==_||e[26]!==z?(p=t.jsxs("div",{className:"flex items-center border-b border-border",children:[_,z]}),e[25]=_,e[26]=z,e[27]=p):p=e[27],S="flex-1 overflow-auto",u=P.length===0?t.jsx("div",{className:"flex items-center justify-center h-full",children:t.jsxs("div",{className:"text-center",children:[t.jsx("h3",{className:"text-lg font-medium mb-2",children:"No members"}),t.jsx("p",{className:"text-sm text-muted-foreground",children:"Add members to this role to grant them the configured permissions."})]})}):O.length===0?t.jsx("div",{className:"flex items-center justify-center h-full",children:t.jsxs("p",{className:"text-sm text-muted-foreground",children:['No members match "',h,'"']})}):t.jsx("div",{className:"p-4 space-y-2",children:O.map(N=>t.jsxs("div",{className:"flex items-center gap-3 p-3 rounded-lg bg-muted/30",children:[t.jsx(je,{url:N.user?.image??void 0,fallback:Ls(N.user?.name),shape:"circle",size:"sm"}),t.jsxs("div",{className:"flex-1 min-w-0",children:[t.jsx("p",{className:"text-sm font-medium truncate",children:N.user?.name||"Unknown"}),t.jsx("p",{className:"text-xs text-muted-foreground truncate",children:N.user?.email})]}),i?t.jsx(Ne,{children:t.jsxs(ye,{children:[t.jsx(Ee,{asChild:!0,children:t.jsx("div",{children:t.jsx(ee,{variant:"ghost",size:"sm",disabled:!0,children:t.jsx(hs,{size:16})})})}),t.jsx(Se,{children:t.jsx("p",{children:"Owner membership cannot be changed"})})]})}):t.jsx(ee,{variant:"ghost",size:"sm",onClick:()=>L(N.id),children:t.jsx(hs,{size:16})})]},N.id))}),e[0]=T?.data?.members,e[1]=x,e[2]=n,e[3]=l,e[4]=i,e[5]=h,e[6]=d,e[7]=S,e[8]=u,e[9]=j,e[10]=p}else d=e[6],S=e[7],u=e[8],j=e[9],p=e[10];let C;e[28]!==S||e[29]!==u?(C=t.jsx("div",{className:S,children:u}),e[28]=S,e[29]=u,e[30]=C):C=e[30];let g;e[31]!==y||e[32]!==d||e[33]!==n?(g=t.jsx(Nt,{open:y,onOpenChange:f,selectedMemberIds:n,onAddMembers:d}),e[31]=y,e[32]=d,e[33]=n,e[34]=g):g=e[34];let c;return e[35]!==j||e[36]!==p||e[37]!==C||e[38]!==g?(c=t.jsxs("div",{className:j,children:[p,C,g]}),e[35]=j,e[36]=p,e[37]=C,e[38]=g,e[39]=c):c=e[39],c}function St(s){const e=de.c(3);let n;e[0]===Symbol.for("react.memo_cache_sentinel")?(n=t.jsx("div",{className:"flex items-center justify-center h-full",children:t.jsx(As,{size:24,className:"animate-spin text-muted-foreground"})}),e[0]=n):n=e[0];let l;return e[1]!==s?(l=t.jsx(U.Suspense,{fallback:n,children:t.jsx(Et,{...s})}),e[1]=s,e[2]=l):l=e[2],l}const It={owner:[],admin:[],user:[]};function $e(s,e){const n=s==="owner"||s==="admin",l=e.filter(a=>a.role===s);return{role:{slug:s,label:s.charAt(0).toUpperCase()+s.slice(1)},allowAllStaticPermissions:n,staticPermissions:It[s],toolSet:{},memberIds:l.map(a=>a.id)}}function wt({trigger:s,onSuccess:e}){const[n,l]=U.useState(!1),[a,i]=U.useState("mcp"),{locator:h}=Ce(),o=qe(),x=Vs()??[],{customRoles:y,refetch:f}=us(),{data:T}=Ss({queryKey:oe.members(h),queryFn:()=>X.organization.listMembers()}),d=Es({resolver:ks(ft),defaultValues:Ve()}),S=d.formState.isValid,u=d.formState.isDirty,[j,p]=U.useState(null),[C,g]=U.useState(null),c=!d.watch("role.id")&&!d.watch("role.slug")&&!C,[v,I]=U.useState(null),[P,w]=U.useState(!1),[O,A]=U.useState(null),L=r=>{const b=r.permission||{},$=b.self||[],le=$.includes("*"),ie=le?[]:$.filter(k=>k!=="*"),W={};for(const[k,B]of Object.entries(b))if(k!=="self")if(k==="*")for(const Z of x)B.includes("*")?W[Z.id]=Z.tools?.map(ae=>ae.name)??[]:W[Z.id]=B;else{const Z=x.find(ae=>ae.id===k);Z&&(B.includes("*")?W[k]=Z.tools?.map(ae=>ae.name)??[]:W[k]=B)}const me=(T?.data?.members??[]).filter(k=>k.role===r.role).map(k=>k.id);return{role:{id:r.id,slug:r.role,label:r.label},allowAllStaticPermissions:le,staticPermissions:ie,toolSet:W,memberIds:me}},E=r=>{const b=L(r);d.reset(b),p(r.id??null),g(null)},_=()=>{d.reset(Ve()),p(null),g(null),i("mcp")},z=r=>{u&&S?(A(()=>()=>E(r)),w(!0)):E(r)},N=async()=>{u&&S&&await Y(),_()},m=r=>{if(u&&S)A(()=>()=>{const b=$e(r,T?.data?.members??[]);d.reset(b),g(r),p(null),i("org")}),w(!0);else{const b=$e(r,T?.data?.members??[]);d.reset(b),g(r),p(null),i("org")}},M=r=>{if(!r&&d.formState.isDirty&&S){A(()=>()=>{l(!1),d.reset(Ve()),g(null)}),w(!0);return}if(l(r),!r)d.reset(Ve()),g(null),p(null);else{const b=y[0];if(b)E(b);else{const $=$e("user",T?.data?.members??[]);d.reset($),g("user"),p(null),i("org")}}},V=()=>{w(!1),O&&(O(),A(null))},se=r=>{const b={};r.allowAllStaticPermissions?b.self=["*"]:r.staticPermissions.length>0&&(b.self=r.staticPermissions);for(const[$,le]of Object.entries(r.toolSet))if(le.length>0){const W=x.find(q=>q.id===$)?.tools?.map(q=>q.name)??[];W.length>0&&W.every(q=>le.includes(q))?b[$]=["*"]:b[$]=le}return b},F=fe({mutationFn:async r=>{const b=se(r),$=r.role.slug||r.role.label.toLowerCase().replace(/\s+/g,"-");if(r.role.slug&&!r.role.id){const W=(T?.data?.members??[]).filter(k=>k.role===r.role.slug).map(k=>k.id),q=r.memberIds.filter(k=>!W.includes(k)),me=W.filter(k=>!r.memberIds.includes(k));for(const k of q){const B=await X.organization.updateMemberRole({memberId:k,role:[r.role.slug]});if(B?.error)throw new Error(B.error.message)}for(const k of me){const B=await X.organization.updateMemberRole({memberId:k,role:["user"]});if(B?.error)throw new Error(B.error.message)}return r}else if(r.role.id){const ie=await X.organization.updateRole({roleId:r.role.id,data:{permission:b}});if(ie?.error)throw new Error(ie.error.message);const q=(T?.data?.members??[]).filter(B=>B.role===r.role.slug).map(B=>B.id),me=r.memberIds.filter(B=>!q.includes(B)),k=q.filter(B=>!r.memberIds.includes(B));for(const B of me){const Z=await X.organization.updateMemberRole({memberId:B,role:[r.role.slug]});if(Z?.error)throw new Error(Z.error.message)}for(const B of k){const Z=await X.organization.updateMemberRole({memberId:B,role:["user"]});if(Z?.error)throw new Error(Z.error.message)}return r}else{const ie=await X.organization.createRole({role:$,permission:b});if(ie?.error)throw new Error(ie.error.message);for(const W of r.memberIds){const q=await X.organization.updateMemberRole({memberId:W,role:[$]});if(q?.error)throw new Error(q.error.message)}return{...r,role:{...r.role,id:ie.data?.roleData?.id,slug:$}}}},onSuccess:(r,b)=>{o.invalidateQueries({queryKey:oe.members(h)}),o.invalidateQueries({queryKey:oe.organizationRoles(h)});const $=!b.role.id&&!b.role.slug,le=b.role.slug&&!b.role.id;J.success(le?"Members updated successfully!":$?"Role created successfully!":"Role updated successfully!"),f(),d.reset(r),r.role.id&&p(r.role.id),e?.()},onError:r=>{J.error(r instanceof Error?r.message:"Failed to save role")}}),K=fe({mutationFn:async r=>{const b=await X.organization.deleteRole({roleId:r});if(b?.error)throw new Error(b.error.message);return b?.data},onSuccess:()=>{if(o.invalidateQueries({queryKey:oe.members(h)}),o.invalidateQueries({queryKey:oe.organizationRoles(h)}),J.success("Role deleted successfully!"),f(),v?.id===j){const r=y.filter(b=>b.id!==v?.id);if(r[0])E(r[0]);else{const b=$e("user",T?.data?.members??[]);d.reset(b),g("user"),p(null),i("org")}}},onError:r=>{J.error(r instanceof Error?r.message:"Failed to delete role")}}),Q=F.isPending||K.isPending,Y=async()=>{const r=d.getValues();if(!r.role.label.trim()){J.error("Role name is required"),d.setFocus("role.label");return}await F.mutateAsync(r)},ne=d.handleSubmit(r=>{if(!r.role.label.trim()){J.error("Role name is required"),d.setFocus("role.label");return}F.mutate(r)}),te=r=>{r.id&&I({id:r.id,label:r.label})},D=()=>{v?.id&&K.mutate(v.id),I(null)};return t.jsxs(Is,{open:n,onOpenChange:M,children:[t.jsx(ws,{asChild:!0,children:s}),t.jsx(Ts,{className:"sm:max-w-5xl h-[80vh] max-h-[80vh] flex flex-col p-0 overflow-hidden w-[95vw]",children:t.jsxs("div",{className:"flex-1 flex overflow-hidden min-h-0 flex-col sm:flex-row",children:[t.jsxs("div",{className:"w-full sm:w-64 sm:border-r border-b sm:border-b-0 border-border flex flex-col bg-background sm:h-full max-h-[40vh] sm:max-h-full",children:[t.jsx("div",{className:"flex-1 overflow-auto px-3.5 py-3.5 pt-3.5",children:t.jsxs("div",{className:"flex flex-col gap-1",children:[ht.map(r=>{const b=C===r.role;return t.jsxs("div",{className:re("flex items-center gap-2 px-2 py-1.5 rounded-lg overflow-hidden cursor-pointer transition-colors",b?"bg-accent":"hover:bg-muted/50"),onClick:()=>m(r.role),children:[t.jsx("div",{className:re("shrink-0 size-3 rounded-full",r.color)}),t.jsx("p",{className:"text-sm font-medium truncate flex-1",children:r.label}),t.jsx(et,{size:14,className:"text-muted-foreground shrink-0"})]},r.role)}),y.map(r=>{const b=j===r.id;return t.jsxs("div",{className:re("group flex items-center gap-2 px-2 py-1.5 rounded-lg overflow-hidden transition-colors cursor-pointer",b?"bg-accent":"hover:bg-muted/50"),onClick:()=>z(r),children:[t.jsx("div",{className:re("shrink-0 size-3 rounded-full",gt(r.label))}),t.jsx("p",{className:"text-sm font-medium truncate flex-1",children:r.label}),t.jsxs(as,{children:[t.jsx(cs,{asChild:!0,children:t.jsx(ee,{variant:"ghost",size:"icon",className:re("size-5 shrink-0 transition-opacity opacity-0 pointer-events-none","group-hover:opacity-100 group-hover:pointer-events-auto",b&&"opacity-100 pointer-events-auto"),onClick:$=>$.stopPropagation(),children:t.jsx(Xs,{size:14})})}),t.jsx(ds,{align:"end",children:t.jsxs(Ke,{className:"text-destructive",onClick:$=>{$.stopPropagation(),te(r)},children:[t.jsx(Os,{size:16}),"Delete"]})})]})]},r.id)}),c&&t.jsxs("div",{className:"flex items-center gap-2 px-2 py-1.5 rounded-lg overflow-hidden bg-accent",children:[t.jsx("div",{className:"shrink-0 size-3 rounded-full bg-neutral-400"}),t.jsx(st,{...d.register("role.label"),placeholder:"Enter role name",className:"flex-1 text-sm font-medium border-0 shadow-none h-auto px-0 py-0 focus-visible:ring-0 bg-transparent",autoFocus:!0}),t.jsx(Ie,{variant:"secondary",className:"shrink-0 text-xs px-1.5 py-0",children:"New"})]})]})}),t.jsx("div",{className:"px-3.5 pb-3.5",children:t.jsxs(ee,{variant:"outline",size:"default",onClick:N,disabled:Q||u,className:"w-full h-10",children:[t.jsx(ss,{size:16}),"Create new role"]})})]}),t.jsxs("div",{className:"flex-1 flex flex-col min-w-0",children:[t.jsxs("div",{className:"h-12 border-b border-border px-4 py-3.5 flex items-center gap-2 shrink-0",children:[!C&&t.jsx(ee,{variant:"outline",size:"sm",onClick:()=>i("mcp"),className:re("h-8 rounded-lg px-2 py-1",a==="mcp"?"bg-muted border-input text-foreground":"border-input text-muted-foreground bg-transparent"),children:"MCP Permissions"}),t.jsx(ee,{variant:"outline",size:"sm",onClick:()=>i("org"),className:re("h-8 rounded-lg px-2 py-1",a==="org"?"bg-muted border-input text-foreground":"border-input text-muted-foreground bg-transparent"),children:"Organization Permissions"}),t.jsx(ee,{variant:"outline",size:"sm",onClick:()=>i("members"),className:re("h-8 rounded-lg px-2 py-1",a==="members"?"bg-muted border-input text-foreground":"border-input text-muted-foreground bg-transparent"),children:"Members"})]}),t.jsxs("div",{className:"flex-1 overflow-hidden min-h-0",children:[a==="mcp"&&!C&&t.jsx(Us,{toolSet:d.watch("toolSet"),onToolSetChange:r=>d.setValue("toolSet",r,{shouldDirty:!0})}),a==="org"&&t.jsx(xt,{allowAllStaticPermissions:d.watch("allowAllStaticPermissions"),staticPermissions:d.watch("staticPermissions"),onAllowAllChange:r=>d.setValue("allowAllStaticPermissions",r,{shouldDirty:!0}),onPermissionsChange:r=>d.setValue("staticPermissions",r,{shouldDirty:!0}),readOnly:!!C}),a==="members"&&t.jsx(St,{memberIds:d.watch("memberIds"),onMemberIdsChange:r=>d.setValue("memberIds",r,{shouldDirty:!0}),readOnly:C==="owner"})]}),(!C||C!=="owner")&&t.jsxs("div",{className:"border-t border-border px-5 py-5 flex items-center justify-end gap-2.5 shrink-0",children:[t.jsx(ee,{variant:"outline",onClick:()=>M(!1),disabled:Q,className:"h-10",children:"Cancel"}),t.jsx(ee,{onClick:ne,disabled:Q||!S||!d.formState.isDirty,className:"h-10",children:F.isPending?"Saving...":c?"Create Role":"Save Changes"})]})]})]})}),t.jsx(we,{open:v!==null,onOpenChange:r=>!r&&I(null),children:t.jsxs(Te,{children:[t.jsxs(Ae,{children:[t.jsx(Oe,{children:"Delete Role"}),t.jsxs(Re,{children:['Are you sure you want to delete the "',v?.label,'" role? This action cannot be undone.']})]}),t.jsxs(_e,{children:[t.jsx(Pe,{children:"Cancel"}),t.jsx(Le,{onClick:D,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"Delete"})]})]})}),t.jsx(we,{open:P,onOpenChange:w,children:t.jsxs(Te,{children:[t.jsxs(Ae,{children:[t.jsx(Oe,{children:"Discard Changes"}),t.jsx(Re,{children:"You have unsaved changes. Are you sure you want to discard them?"})]}),t.jsxs(_e,{children:[t.jsx(Pe,{onClick:()=>A(null),children:"Keep Editing"}),t.jsx(Le,{onClick:V,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"Discard"})]})]})})]})}const Tt=ue().email("Invalid email address");function At(s){if(!s.trim())return[];const e=s.split(/[,;\n]/).map(n=>n.trim().toLowerCase()).filter(n=>n.length>0);return Array.from(new Set(e))}function Ot({trigger:s}){const[e,n]=U.useState(!1),{locator:l}=Ce(),a=qe(),{data:i}=X.useSession(),h=i?.user?.email,{roles:o,isLoading:x}=us(),y=o.filter(g=>g.role!=="owner"),f=Es({mode:"onChange",defaultValues:{emailsText:"",role:"user"}}),T=f.watch("emailsText"),d=f.watch("role"),u=At(T).filter(g=>{const c=Tt.safeParse(g).success,v=!h||g!==h.toLowerCase();return c&&v}),j=fe({mutationFn:async({emails:g,role:c})=>{if(!c)throw new Error("Please select a role");const v=await Promise.allSettled(g.map(async P=>{const w=await X.organization.inviteMember({email:P,role:c});if(w.error)throw new Error(w.error.message);return w.data})),I=v.filter(P=>P.status==="rejected");if(I.length>0)throw new Error(`Failed to invite ${I.length} member${I.length>1?"s":""}`);return v},onSuccess:(g,{emails:c})=>{a.invalidateQueries({queryKey:oe.members(l)}),a.invalidateQueries({queryKey:oe.invitations(l)}),J.success(c.length===1?"Member invited successfully!":`${c.length} members invited successfully!`),f.reset({emailsText:"",role:"user"}),n(!1)},onError:g=>{J.error(g instanceof Error?g.message:"Failed to invite members")}}),p=g=>{if(u.length===0){J.error("Please enter at least one valid email address");return}if(!g.role){J.error("Please select a role");return}j.mutate({emails:u,role:g.role})},C=u.length>0&&!!d;return t.jsxs(Is,{open:e,onOpenChange:n,children:[t.jsx(ws,{asChild:!0,children:s}),t.jsxs(Ts,{className:"sm:max-w-lg",children:[t.jsx(Qs,{children:t.jsx(qs,{children:"Invite members"})}),t.jsx(nt,{...f,children:t.jsxs("form",{onSubmit:f.handleSubmit(p),className:"space-y-4",children:[t.jsx(gs,{control:f.control,name:"emailsText",render:({field:g})=>t.jsxs(xs,{children:[t.jsx(rt,{children:"Email addresses"}),t.jsx(ps,{children:t.jsx(it,{...g,disabled:j.isPending,placeholder:`Enter email addresses separated by commas or new lines
1
+ import{r as U,K as oe,a as X,s as fs,W as He,V as Ms,Q as zs,v as ue,B as qe,x as Es,w as ks,t as J,j as t,c as de,p as Ds}from"./index-Cum2JwLw.js";import{C as Bs}from"./collection-header-CYfWhq42.js";import{C as es}from"./collection-page-B--o_GqQ.js";import{C as Ze}from"./collection-search-CEIFKuWa.js";import{C as Gs}from"./collection-table-wrapper-Bkcq39C4.js";import{T as Us,S as Ue}from"./switch-Ww9aXtlU.js";import{u as Vs,c as $s,E as Je}from"./use-connection-B2okCga5.js";import{u as os}from"./use-members-BwVy6fr3.js";import{W as Fs}from"./well-known-mcp-D13f-8h2.js";import{u as Ce,a as Ne,c as ye,b as Ee,T as Se}from"./project-context-provider-BYGGoCTs.js";import{u as Ss}from"./useQuery-DhRmRhz6.js";import{A as je}from"./avatar-mRj3EYSY.js";import{B as Ie}from"./badge-BB4ToOP0.js";import{u as fe,c as re,B as ee}from"./button-DfMRfE6U.js";import{C as Ks}from"./checkbox-DyAJP3m7.js";import{f as we,a as Te,b as Ae,c as Oe,d as Re,e as _e,A as Pe,g as Le}from"./alert-dialog-DRjbecrO.js";import{d as Is,e as ws,c as Ts,D as Qs,a as qs,f as Zs}from"./dialog-Degt7wMI.js";import{b as as,D as cs,a as ds,c as Ke,e as Ys,f as Ws,g as Hs,d as Js}from"./dropdown-menu-DhuyLWwf.js";import{i as Xs}from"./DotsHorizontal-BEBpYaEz.js";import{i as As}from"./Loading01-DKaPtj3-.js";import{i as et}from"./Lock01-CmhDm4Lj.js";import{s as ss}from"./Plus-BOhWr_Yd.js";import{s as Os}from"./Trash01-B7rtyZ6_.js";import{i as hs}from"./X-EQV0BNWQ.js";import{I as st}from"./input-BhavpdOt.js";import{E as tt}from"./error-boundary-xrmWNOPn.js";import{a as nt,F as gs,b as xs,c as rt,d as ps,f as bs}from"./form-Dq2sl6Cm.js";import{S as ts,a as ns,b as rs,c as is,d as ls}from"./select-Cmw9Rvde.js";import{T as it}from"./textarea-woJVrhbJ.js";import{C as js}from"./card-DtNOepPc.js";import{i as Rs}from"./DotsVertical-CNQmKxkm.js";import{i as lt}from"./Key01-KVYt5hIJ.js";import{s as ot}from"./XClose-RGDSgm2c.js";import"./collection-display-button-NCEXG76d.js";import"./Grid01-CCmKx6B5.js";import"./view-mode-toggle-UYulkxW-.js";import"./ArrowLeft-DuzlVMpS.js";import"./ChevronRight-Cys1zrTj.js";import"./ChevronDown-DFL_ztkL.js";const ms=({size:s=24,color:e="currentColor",...n})=>U.createElement("svg",{viewBox:"0 0 24 24",width:s,height:s,stroke:e,strokeWidth:"2",fill:"none",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",...n},U.createElement("path",{d:"M11.302 21.615c.221.129.332.194.488.227.122.026.298.026.42 0 .156-.034.267-.098.488-.227C14.646 20.478 20 16.908 20 12V7.217c0-.799 0-1.199-.13-1.542a2 2 0 0 0-.548-.79c-.275-.243-.65-.383-1.398-.664l-5.362-2.01c-.208-.078-.312-.117-.419-.133a1 1 0 0 0-.286 0c-.107.016-.21.055-.419.133L6.076 4.22c-.748.28-1.122.421-1.398.664a2 2 0 0 0-.547.79C4 6.018 4 6.418 4 7.217V12c0 4.908 5.354 8.478 7.302 9.615Z"}));ms.displayName="Shield01";const _s=({size:s=24,color:e="currentColor",...n})=>U.createElement("svg",{viewBox:"0 0 24 24",width:s,height:s,stroke:e,strokeWidth:"2",fill:"none",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",...n},U.createElement("path",{d:"M20 17H4m0 0 4-4m-4 4 4 4M4 7h16m0 0-4-4m4 4-4 4"}));_s.displayName="SwitchHorizontal01";const Ps=[{name:"ORGANIZATION_CREATE",description:"Create a new organization",category:"Organizations"},{name:"ORGANIZATION_LIST",description:"List organizations",category:"Organizations"},{name:"ORGANIZATION_GET",description:"View organization details",category:"Organizations"},{name:"ORGANIZATION_UPDATE",description:"Update organization",category:"Organizations"},{name:"ORGANIZATION_DELETE",description:"Delete organization",category:"Organizations",dangerous:!0},{name:"ORGANIZATION_SETTINGS_GET",description:"View organization settings",category:"Organizations"},{name:"ORGANIZATION_SETTINGS_UPDATE",description:"Update organization settings",category:"Organizations"},{name:"ORGANIZATION_MEMBER_ADD",description:"Add members",category:"Organizations"},{name:"ORGANIZATION_MEMBER_REMOVE",description:"Remove members",category:"Organizations",dangerous:!0},{name:"ORGANIZATION_MEMBER_LIST",description:"List members",category:"Organizations"},{name:"ORGANIZATION_MEMBER_UPDATE_ROLE",description:"Update member roles",category:"Organizations"},{name:"COLLECTION_CONNECTIONS_CREATE",description:"Create connections",category:"Connections"},{name:"COLLECTION_CONNECTIONS_LIST",description:"List connections",category:"Connections"},{name:"COLLECTION_CONNECTIONS_GET",description:"View connection details",category:"Connections"},{name:"COLLECTION_CONNECTIONS_UPDATE",description:"Update connections",category:"Connections"},{name:"COLLECTION_CONNECTIONS_DELETE",description:"Delete connections",category:"Connections",dangerous:!0},{name:"CONNECTION_TEST",description:"Test connections",category:"Connections"},{name:"DATABASES_RUN_SQL",description:"Run SQL queries",category:"Connections",dangerous:!0},{name:"COLLECTION_GATEWAY_CREATE",description:"Create gateways",category:"Gateways"},{name:"COLLECTION_GATEWAY_LIST",description:"List gateways",category:"Gateways"},{name:"COLLECTION_GATEWAY_GET",description:"View gateway details",category:"Gateways"},{name:"COLLECTION_GATEWAY_UPDATE",description:"Update gateways",category:"Gateways"},{name:"COLLECTION_GATEWAY_DELETE",description:"Delete gateways",category:"Gateways",dangerous:!0},{name:"MONITORING_LOGS_LIST",description:"List monitoring logs",category:"Monitoring"},{name:"MONITORING_STATS",description:"View monitoring statistics",category:"Monitoring"},{name:"API_KEY_CREATE",description:"Create API key",category:"API Keys"},{name:"API_KEY_LIST",description:"List API keys",category:"API Keys"},{name:"API_KEY_UPDATE",description:"Update API key",category:"API Keys"},{name:"API_KEY_DELETE",description:"Delete API key",category:"API Keys",dangerous:!0},{name:"EVENT_PUBLISH",description:"Publish events",category:"Event Bus"},{name:"EVENT_SUBSCRIBE",description:"Subscribe to events",category:"Event Bus"},{name:"EVENT_UNSUBSCRIBE",description:"Unsubscribe from events",category:"Event Bus"},{name:"EVENT_CANCEL",description:"Cancel recurring events",category:"Event Bus"},{name:"EVENT_ACK",description:"Acknowledge event delivery",category:"Event Bus"},{name:"EVENT_SUBSCRIPTION_LIST",description:"List event subscriptions",category:"Event Bus"},{name:"EVENT_SYNC_SUBSCRIPTIONS",description:"Sync subscriptions to desired state",category:"Event Bus"},{name:"USER_GET",description:"Get a user by id",category:"Users"}],at={ORGANIZATION_CREATE:"Create organization",ORGANIZATION_LIST:"List organizations",ORGANIZATION_GET:"View organization details",ORGANIZATION_UPDATE:"Update organization",ORGANIZATION_DELETE:"Delete organization",ORGANIZATION_SETTINGS_GET:"View organization settings",ORGANIZATION_SETTINGS_UPDATE:"Update organization settings",ORGANIZATION_MEMBER_LIST:"List members",ORGANIZATION_MEMBER_ADD:"Add members",ORGANIZATION_MEMBER_REMOVE:"Remove members",ORGANIZATION_MEMBER_UPDATE_ROLE:"Update member roles",COLLECTION_CONNECTIONS_LIST:"List connections",COLLECTION_CONNECTIONS_GET:"View connection details",COLLECTION_CONNECTIONS_CREATE:"Create connections",COLLECTION_CONNECTIONS_UPDATE:"Update connections",COLLECTION_CONNECTIONS_DELETE:"Delete connections",CONNECTION_TEST:"Test connections",DATABASES_RUN_SQL:"Run SQL queries",COLLECTION_GATEWAY_CREATE:"Create gateways",COLLECTION_GATEWAY_LIST:"List gateways",COLLECTION_GATEWAY_GET:"View gateway details",COLLECTION_GATEWAY_UPDATE:"Update gateways",COLLECTION_GATEWAY_DELETE:"Delete gateways",MONITORING_LOGS_LIST:"List monitoring logs",MONITORING_STATS:"View monitoring statistics",API_KEY_CREATE:"Create API key",API_KEY_LIST:"List API keys",API_KEY_UPDATE:"Update API key",API_KEY_DELETE:"Delete API key",EVENT_PUBLISH:"Publish events",EVENT_SUBSCRIBE:"Subscribe to events",EVENT_UNSUBSCRIBE:"Unsubscribe from events",EVENT_CANCEL:"Cancel recurring events",EVENT_ACK:"Acknowledge event delivery",EVENT_SUBSCRIPTION_LIST:"List event subscriptions",EVENT_SYNC_SUBSCRIPTIONS:"Sync subscriptions to desired state",USER_GET:"Get user by id"};function ct(){const s={Organizations:[],Connections:[],Gateways:[],Monitoring:[],Users:[],"API Keys":[],"Event Bus":[]};for(const e of Ps)s[e.category]?.push(e);return s}function dt(){return Ps.map(s=>({value:s.name,label:at[s.name],dangerous:s.dangerous}))}const Cs=[{value:"owner",label:"Owner",isBuiltin:!0},{value:"admin",label:"Admin",isBuiltin:!0},{value:"user",label:"User",isBuiltin:!0}];function mt(s){return s.replace(/-/g," ")}function ut(s){if(!s)return{staticPermissions:[],allowsAllStaticPermissions:!1,connectionIds:[],allowsAllConnections:!1,toolNames:[],allowsAllTools:!1};const e=[];let n=!1;const l=[];let a=!1;const i=new Set;let h=!1;for(const[o,x]of Object.entries(s)){if(o===Fs.SELF){x.includes("*")?n=!0:e.push(...x);continue}if(o==="*"){if(a=!0,x.includes("*"))h=!0;else for(const y of x)i.add(y);continue}if(l.push(o),x.includes("*"))h=!0;else for(const y of x)i.add(y)}return{staticPermissions:e,allowsAllStaticPermissions:n,connectionIds:l,allowsAllConnections:a,toolNames:Array.from(i),allowsAllTools:h}}function us(){const{locator:s}=Ce(),{data:e,isLoading:n,error:l,refetch:a}=Ss({queryKey:oe.organizationRoles(s),queryFn:async()=>{try{const o=await X.organization.listRoles();return o?.error?(console.error("[useOrganizationRoles] API error:",o.error),[]):o?.data??[]}catch(o){return console.error("[useOrganizationRoles] Fetch error:",o),[]}},staleTime:3e4}),i=Cs.map(o=>({role:o.value,label:o.label,isBuiltin:o.isBuiltin}));if(e&&Array.isArray(e))for(const o of e){const x=o.role;if(!x||Cs.some(j=>j.value===x))continue;const{staticPermissions:y,allowsAllStaticPermissions:f,connectionIds:T,allowsAllConnections:d,toolNames:S,allowsAllTools:u}=ut(o.permission);i.push({id:o.id,role:x,label:mt(x),isBuiltin:!1,permission:o.permission??void 0,staticPermissionCount:f?-1:y.length,allowsAllStaticPermissions:f,connectionCount:d?-1:T.length,allowsAllConnections:d,toolCount:u?-1:S.length,allowsAllTools:u})}const h=i.filter(o=>!o.isBuiltin);return{roles:i,customRoles:h,builtinRoles:i.filter(o=>o.isBuiltin),isLoading:n,error:l,refetch:a}}const ft=fs({role:fs({id:ue().optional(),slug:ue().optional(),label:ue()}),allowAllStaticPermissions:zs(),staticPermissions:He(ue()),toolSet:Ms(ue(),He(ue())),memberIds:He(ue())});function Ls(s){return s?s.split(" ").map(e=>e[0]).join("").toUpperCase().slice(0,2):"?"}const ht=[{role:"owner",label:"Owner",color:"bg-red-500"},{role:"admin",label:"Admin",color:"bg-blue-500"},{role:"user",label:"User",color:"bg-green-500"}],Xe=["bg-red-500","bg-orange-500","bg-amber-500","bg-yellow-500","bg-lime-500","bg-green-500","bg-emerald-500","bg-teal-500","bg-cyan-500","bg-sky-500","bg-blue-500","bg-indigo-500","bg-violet-500","bg-purple-500","bg-fuchsia-500","bg-pink-500","bg-rose-500"];function gt(s){if(!s)return"bg-neutral-400";let e=0;for(let l=0;l<s.length;l++){const a=s.charCodeAt(l);e=(e<<5)-e+a,e=e&e}const n=Math.abs(e)%Xe.length;return Xe[n]??Xe[0]}function Ve(){return{role:{id:void 0,slug:void 0,label:""},allowAllStaticPermissions:!1,staticPermissions:[],toolSet:{},memberIds:[]}}function xt(s){const e=de.c(39),{allowAllStaticPermissions:n,staticPermissions:l,onAllowAllChange:a,onPermissionsChange:i,readOnly:h}=s,o=h===void 0?!1:h,[x,y]=U.useState(""),f=U.useDeferredValue(x);let T,d,S,u,j;if(e[0]!==n||e[1]!==f||e[2]!==a||e[3]!==i||e[4]!==o||e[5]!==x||e[6]!==l){const g=ct(),c=dt(),v=c.filter(E=>E.label.toLowerCase().includes(f.toLowerCase())),I=E=>{if(l.includes(E))i(l.filter(_=>_!==E));else{const _=[...l,E];_.length===c.length?(a(!0),i([])):i(_)}};S="flex flex-col h-full",e[12]!==x?(u=t.jsx("div",{className:"border-b border-border",children:t.jsx(Ze,{value:x,onChange:y,placeholder:"Search permissions...",className:"border-b-0"})}),e[12]=x,e[13]=u):u=e[13];const P=!o&&"hover:bg-muted/50 cursor-pointer";let w;e[14]!==P?(w=re("flex items-center justify-between px-4 py-3 rounded-lg",P),e[14]=P,e[15]=w):w=e[15];let O;e[16]!==n||e[17]!==a||e[18]!==i||e[19]!==o?(O=()=>{if(o)return;a(!n),i([])},e[16]=n,e[17]=a,e[18]=i,e[19]=o,e[20]=O):O=e[20];let A;e[21]===Symbol.for("react.memo_cache_sentinel")?(A=t.jsx("span",{className:"text-sm font-medium",children:"All organization permissions"}),e[21]=A):A=e[21];let L;e[22]!==n||e[23]!==a||e[24]!==i||e[25]!==o?(L=t.jsx("div",{onClick:vt,children:o?t.jsx(Ne,{children:t.jsxs(ye,{children:[t.jsx(Ee,{asChild:!0,children:t.jsx("div",{children:t.jsx(Ue,{checked:n,disabled:o,onCheckedChange:E=>{o||(a(E),i([]))}})})}),t.jsx(Se,{children:t.jsx("p",{children:"Built-in role permissions cannot be changed"})})]})}):t.jsx(Ue,{checked:n,disabled:o,onCheckedChange:E=>{o||(a(E),i([]))}})}),e[22]=n,e[23]=a,e[24]=i,e[25]=o,e[26]=L):L=e[26],e[27]!==L||e[28]!==w||e[29]!==O?(j=t.jsx("div",{className:"border-b border-border",children:t.jsxs("div",{className:w,onClick:O,children:[A,L]})}),e[27]=L,e[28]=w,e[29]=O,e[30]=j):j=e[30],T="flex-1 overflow-auto",d=Object.entries(g).map(E=>{const[_,z]=E,N=v.filter(m=>z.some(M=>M.name===m.value));return N.length===0?null:t.jsxs("div",{className:"mb-6 last:mb-0",children:[t.jsx("h4",{className:"text-sm font-medium p-3 pb-1.5 text-muted-foreground/75",children:_}),t.jsx("div",{className:"space-y-1",children:N.map(m=>t.jsxs("div",{className:re("flex items-center justify-between gap-3 px-4 py-3",!o&&"hover:bg-muted/50 cursor-pointer"),onClick:()=>{if(!o)if(n){a(!1);const M=c.map(Ct);i(M.filter(V=>V!==m.value))}else I(m.value)},children:[t.jsx("div",{className:"flex-1 min-w-0",children:t.jsx("span",{className:"text-sm",children:m.label})}),t.jsx("div",{onClick:jt,children:o?t.jsx(Ne,{children:t.jsxs(ye,{children:[t.jsx(Ee,{asChild:!0,children:t.jsx("div",{children:t.jsx(Ue,{checked:n||l.includes(m.value),disabled:o,onCheckedChange:()=>{if(!o)if(n){a(!1);const M=c.map(bt);i(M.filter(V=>V!==m.value))}else I(m.value)}})})}),t.jsx(Se,{children:t.jsx("p",{children:"Built-in role permissions cannot be changed"})})]})}):t.jsx(Ue,{checked:n||l.includes(m.value),disabled:o,onCheckedChange:()=>{if(!o)if(n){a(!1);const M=c.map(pt);i(M.filter(V=>V!==m.value))}else I(m.value)}})})]},m.value))})]},_)}),e[0]=n,e[1]=f,e[2]=a,e[3]=i,e[4]=o,e[5]=x,e[6]=l,e[7]=T,e[8]=d,e[9]=S,e[10]=u,e[11]=j}else T=e[7],d=e[8],S=e[9],u=e[10],j=e[11];let p;e[31]!==T||e[32]!==d?(p=t.jsx("div",{className:T,children:d}),e[31]=T,e[32]=d,e[33]=p):p=e[33];let C;return e[34]!==S||e[35]!==u||e[36]!==j||e[37]!==p?(C=t.jsxs("div",{className:S,children:[u,j,p]}),e[34]=S,e[35]=u,e[36]=j,e[37]=p,e[38]=C):C=e[38],C}function pt(s){return s.value}function bt(s){return s.value}function jt(s){return s.stopPropagation()}function Ct(s){return s.value}function vt(s){return s.stopPropagation()}function Nt(s){const e=de.c(56),{open:n,onOpenChange:l,selectedMemberIds:a,onAddMembers:i}=s,[h,o]=U.useState(""),x=U.useDeferredValue(h);let y;e[0]===Symbol.for("react.memo_cache_sentinel")?(y=[],e[0]=y):y=e[0];const[f,T]=U.useState(y),{data:d}=os();let S,u,j,p,C,g,c,v,I,P,w;if(e[1]!==d?.data?.members||e[2]!==x||e[3]!==i||e[4]!==l||e[5]!==n||e[6]!==f||e[7]!==h||e[8]!==a){const M=d?.data?.members??[];let V;e[20]!==x?(V=D=>{const r=x.toLowerCase();return D.user?.name?.toLowerCase().includes(r)||D.user?.email?.toLowerCase().includes(r)},e[20]=x,e[21]=V):V=e[21];const se=M.filter(V),F=yt;let K;e[22]!==a?(K=D=>a.includes(D),e[22]=a,e[23]=K):K=e[23];const Q=K;let Y;e[24]!==f?(Y=D=>{f.includes(D)?T(f.filter(r=>r!==D)):T([...f,D])},e[24]=f,e[25]=Y):Y=e[25];const ne=Y;let te;e[26]!==i||e[27]!==l||e[28]!==f?(te=()=>{i(f),T([]),l(!1)},e[26]=i,e[27]=l,e[28]=f,e[29]=te):te=e[29],j=te,u=we,P=n,w=l,S=Te,v="sm:max-w-md p-0 overflow-hidden",e[30]===Symbol.for("react.memo_cache_sentinel")?(I=t.jsxs(Ae,{className:"px-6 pt-6",children:[t.jsx(Oe,{children:"Add Members to Role"}),t.jsx(Re,{children:"Select members to add to this role."})]}),e[30]=I):I=e[30],g="flex flex-col h-80",e[31]!==h?(c=t.jsx(Ze,{value:h,onChange:o,placeholder:"Search members...",className:"border-b border-t-0 border-x-0 rounded-none"}),e[31]=h,e[32]=c):c=e[32],p="flex-1 overflow-auto",C=se.length===0?t.jsx("div",{className:"flex items-center justify-center h-full px-6",children:t.jsx("p",{className:"text-sm text-muted-foreground",children:h?"No members found":"No members available"})}):t.jsx("div",{className:"px-6 py-2 space-y-1",children:se.map(D=>{const r=F(D),b=Q(D.id),$=f.includes(D.id);return t.jsxs("label",{className:re("flex items-center gap-3 p-2 rounded-lg",!r||b?"opacity-50 cursor-not-allowed":"cursor-pointer hover:bg-muted/50"),children:[t.jsx(Ks,{checked:$||b,onCheckedChange:()=>{r&&!b&&ne(D.id)},disabled:!r||b}),t.jsx(je,{url:D.user?.image??void 0,fallback:Ls(D.user?.name),shape:"circle",size:"sm"}),t.jsxs("div",{className:"flex-1 min-w-0",children:[t.jsx("p",{className:"text-sm font-medium truncate",children:D.user?.name||"Unknown"}),t.jsx("p",{className:"text-xs text-muted-foreground truncate",children:D.user?.email})]}),!r&&t.jsx(Ie,{variant:"secondary",className:"shrink-0",children:"Owner"}),b&&r&&t.jsx(Ie,{variant:"outline",className:"shrink-0",children:"Added"})]},D.id)})}),e[1]=d?.data?.members,e[2]=x,e[3]=i,e[4]=l,e[5]=n,e[6]=f,e[7]=h,e[8]=a,e[9]=S,e[10]=u,e[11]=j,e[12]=p,e[13]=C,e[14]=g,e[15]=c,e[16]=v,e[17]=I,e[18]=P,e[19]=w}else S=e[9],u=e[10],j=e[11],p=e[12],C=e[13],g=e[14],c=e[15],v=e[16],I=e[17],P=e[18],w=e[19];let O;e[33]!==p||e[34]!==C?(O=t.jsx("div",{className:p,children:C}),e[33]=p,e[34]=C,e[35]=O):O=e[35];let A;e[36]!==O||e[37]!==g||e[38]!==c?(A=t.jsxs("div",{className:g,children:[c,O]}),e[36]=O,e[37]=g,e[38]=c,e[39]=A):A=e[39];let L;e[40]===Symbol.for("react.memo_cache_sentinel")?(L=t.jsx(Pe,{children:"Cancel"}),e[40]=L):L=e[40];const E=f.length===0,_=f.length>0&&`(${f.length})`;let z;e[41]!==j||e[42]!==E||e[43]!==_?(z=t.jsxs(_e,{className:"px-6 pb-6",children:[L,t.jsxs(Le,{onClick:j,disabled:E,children:["Add ",_]})]}),e[41]=j,e[42]=E,e[43]=_,e[44]=z):z=e[44];let N;e[45]!==S||e[46]!==A||e[47]!==z||e[48]!==v||e[49]!==I?(N=t.jsxs(S,{className:v,children:[I,A,z]}),e[45]=S,e[46]=A,e[47]=z,e[48]=v,e[49]=I,e[50]=N):N=e[50];let m;return e[51]!==u||e[52]!==N||e[53]!==P||e[54]!==w?(m=t.jsx(u,{open:P,onOpenChange:w,children:N}),e[51]=u,e[52]=N,e[53]=P,e[54]=w,e[55]=m):m=e[55],m}function yt(s){return s.role!=="owner"}function Et(s){const e=de.c(40),{memberIds:n,onMemberIdsChange:l,readOnly:a}=s,i=a===void 0?!1:a,[h,o]=U.useState(""),x=U.useDeferredValue(h),[y,f]=U.useState(!1),{data:T}=os();let d,S,u,j,p;if(e[0]!==T?.data?.members||e[1]!==x||e[2]!==n||e[3]!==l||e[4]!==i||e[5]!==h){const v=T?.data?.members??[];let I;e[11]!==n?(I=N=>n.includes(N.id),e[11]=n,e[12]=I):I=e[12];const P=v.filter(I);let w;e[13]!==x?(w=N=>{const m=x.toLowerCase();return N.user?.name?.toLowerCase().includes(m)||N.user?.email?.toLowerCase().includes(m)},e[13]=x,e[14]=w):w=e[14];const O=P.filter(w);let A;e[15]!==n||e[16]!==l?(A=N=>{l(n.filter(m=>m!==N))},e[15]=n,e[16]=l,e[17]=A):A=e[17];const L=A;let E;e[18]!==n||e[19]!==l?(E=N=>{l([...n,...N])},e[18]=n,e[19]=l,e[20]=E):E=e[20],d=E,j="flex flex-col h-full";let _;e[21]!==h?(_=t.jsx(Ze,{value:h,onChange:o,placeholder:"Search members...",className:"flex-1 border-b-0"}),e[21]=h,e[22]=_):_=e[22];let z;e[23]!==i?(z=i?t.jsx("div",{className:"pr-4",children:t.jsx(Ne,{children:t.jsxs(ye,{children:[t.jsx(Ee,{asChild:!0,children:t.jsx("div",{children:t.jsxs(ee,{variant:"outline",size:"sm",disabled:!0,children:[t.jsx(ss,{size:16}),"Add Member"]})})}),t.jsx(Se,{children:t.jsx("p",{children:"Owner membership cannot be changed"})})]})})}):t.jsx("div",{className:"pr-4",children:t.jsxs(ee,{variant:"outline",size:"sm",onClick:()=>f(!0),children:[t.jsx(ss,{size:16}),"Add Member"]})}),e[23]=i,e[24]=z):z=e[24],e[25]!==_||e[26]!==z?(p=t.jsxs("div",{className:"flex items-center border-b border-border",children:[_,z]}),e[25]=_,e[26]=z,e[27]=p):p=e[27],S="flex-1 overflow-auto",u=P.length===0?t.jsx("div",{className:"flex items-center justify-center h-full",children:t.jsxs("div",{className:"text-center",children:[t.jsx("h3",{className:"text-lg font-medium mb-2",children:"No members"}),t.jsx("p",{className:"text-sm text-muted-foreground",children:"Add members to this role to grant them the configured permissions."})]})}):O.length===0?t.jsx("div",{className:"flex items-center justify-center h-full",children:t.jsxs("p",{className:"text-sm text-muted-foreground",children:['No members match "',h,'"']})}):t.jsx("div",{className:"p-4 space-y-2",children:O.map(N=>t.jsxs("div",{className:"flex items-center gap-3 p-3 rounded-lg bg-muted/30",children:[t.jsx(je,{url:N.user?.image??void 0,fallback:Ls(N.user?.name),shape:"circle",size:"sm"}),t.jsxs("div",{className:"flex-1 min-w-0",children:[t.jsx("p",{className:"text-sm font-medium truncate",children:N.user?.name||"Unknown"}),t.jsx("p",{className:"text-xs text-muted-foreground truncate",children:N.user?.email})]}),i?t.jsx(Ne,{children:t.jsxs(ye,{children:[t.jsx(Ee,{asChild:!0,children:t.jsx("div",{children:t.jsx(ee,{variant:"ghost",size:"sm",disabled:!0,children:t.jsx(hs,{size:16})})})}),t.jsx(Se,{children:t.jsx("p",{children:"Owner membership cannot be changed"})})]})}):t.jsx(ee,{variant:"ghost",size:"sm",onClick:()=>L(N.id),children:t.jsx(hs,{size:16})})]},N.id))}),e[0]=T?.data?.members,e[1]=x,e[2]=n,e[3]=l,e[4]=i,e[5]=h,e[6]=d,e[7]=S,e[8]=u,e[9]=j,e[10]=p}else d=e[6],S=e[7],u=e[8],j=e[9],p=e[10];let C;e[28]!==S||e[29]!==u?(C=t.jsx("div",{className:S,children:u}),e[28]=S,e[29]=u,e[30]=C):C=e[30];let g;e[31]!==y||e[32]!==d||e[33]!==n?(g=t.jsx(Nt,{open:y,onOpenChange:f,selectedMemberIds:n,onAddMembers:d}),e[31]=y,e[32]=d,e[33]=n,e[34]=g):g=e[34];let c;return e[35]!==j||e[36]!==p||e[37]!==C||e[38]!==g?(c=t.jsxs("div",{className:j,children:[p,C,g]}),e[35]=j,e[36]=p,e[37]=C,e[38]=g,e[39]=c):c=e[39],c}function St(s){const e=de.c(3);let n;e[0]===Symbol.for("react.memo_cache_sentinel")?(n=t.jsx("div",{className:"flex items-center justify-center h-full",children:t.jsx(As,{size:24,className:"animate-spin text-muted-foreground"})}),e[0]=n):n=e[0];let l;return e[1]!==s?(l=t.jsx(U.Suspense,{fallback:n,children:t.jsx(Et,{...s})}),e[1]=s,e[2]=l):l=e[2],l}const It={owner:[],admin:[],user:[]};function $e(s,e){const n=s==="owner"||s==="admin",l=e.filter(a=>a.role===s);return{role:{slug:s,label:s.charAt(0).toUpperCase()+s.slice(1)},allowAllStaticPermissions:n,staticPermissions:It[s],toolSet:{},memberIds:l.map(a=>a.id)}}function wt({trigger:s,onSuccess:e}){const[n,l]=U.useState(!1),[a,i]=U.useState("mcp"),{locator:h}=Ce(),o=qe(),x=Vs()??[],{customRoles:y,refetch:f}=us(),{data:T}=Ss({queryKey:oe.members(h),queryFn:()=>X.organization.listMembers()}),d=Es({resolver:ks(ft),defaultValues:Ve()}),S=d.formState.isValid,u=d.formState.isDirty,[j,p]=U.useState(null),[C,g]=U.useState(null),c=!d.watch("role.id")&&!d.watch("role.slug")&&!C,[v,I]=U.useState(null),[P,w]=U.useState(!1),[O,A]=U.useState(null),L=r=>{const b=r.permission||{},$=b.self||[],le=$.includes("*"),ie=le?[]:$.filter(k=>k!=="*"),W={};for(const[k,B]of Object.entries(b))if(k!=="self")if(k==="*")for(const Z of x)B.includes("*")?W[Z.id]=Z.tools?.map(ae=>ae.name)??[]:W[Z.id]=B;else{const Z=x.find(ae=>ae.id===k);Z&&(B.includes("*")?W[k]=Z.tools?.map(ae=>ae.name)??[]:W[k]=B)}const me=(T?.data?.members??[]).filter(k=>k.role===r.role).map(k=>k.id);return{role:{id:r.id,slug:r.role,label:r.label},allowAllStaticPermissions:le,staticPermissions:ie,toolSet:W,memberIds:me}},E=r=>{const b=L(r);d.reset(b),p(r.id??null),g(null)},_=()=>{d.reset(Ve()),p(null),g(null),i("mcp")},z=r=>{u&&S?(A(()=>()=>E(r)),w(!0)):E(r)},N=async()=>{u&&S&&await Y(),_()},m=r=>{if(u&&S)A(()=>()=>{const b=$e(r,T?.data?.members??[]);d.reset(b),g(r),p(null),i("org")}),w(!0);else{const b=$e(r,T?.data?.members??[]);d.reset(b),g(r),p(null),i("org")}},M=r=>{if(!r&&d.formState.isDirty&&S){A(()=>()=>{l(!1),d.reset(Ve()),g(null)}),w(!0);return}if(l(r),!r)d.reset(Ve()),g(null),p(null);else{const b=y[0];if(b)E(b);else{const $=$e("user",T?.data?.members??[]);d.reset($),g("user"),p(null),i("org")}}},V=()=>{w(!1),O&&(O(),A(null))},se=r=>{const b={};r.allowAllStaticPermissions?b.self=["*"]:r.staticPermissions.length>0&&(b.self=r.staticPermissions);for(const[$,le]of Object.entries(r.toolSet))if(le.length>0){const W=x.find(q=>q.id===$)?.tools?.map(q=>q.name)??[];W.length>0&&W.every(q=>le.includes(q))?b[$]=["*"]:b[$]=le}return b},F=fe({mutationFn:async r=>{const b=se(r),$=r.role.slug||r.role.label.toLowerCase().replace(/\s+/g,"-");if(r.role.slug&&!r.role.id){const W=(T?.data?.members??[]).filter(k=>k.role===r.role.slug).map(k=>k.id),q=r.memberIds.filter(k=>!W.includes(k)),me=W.filter(k=>!r.memberIds.includes(k));for(const k of q){const B=await X.organization.updateMemberRole({memberId:k,role:[r.role.slug]});if(B?.error)throw new Error(B.error.message)}for(const k of me){const B=await X.organization.updateMemberRole({memberId:k,role:["user"]});if(B?.error)throw new Error(B.error.message)}return r}else if(r.role.id){const ie=await X.organization.updateRole({roleId:r.role.id,data:{permission:b}});if(ie?.error)throw new Error(ie.error.message);const q=(T?.data?.members??[]).filter(B=>B.role===r.role.slug).map(B=>B.id),me=r.memberIds.filter(B=>!q.includes(B)),k=q.filter(B=>!r.memberIds.includes(B));for(const B of me){const Z=await X.organization.updateMemberRole({memberId:B,role:[r.role.slug]});if(Z?.error)throw new Error(Z.error.message)}for(const B of k){const Z=await X.organization.updateMemberRole({memberId:B,role:["user"]});if(Z?.error)throw new Error(Z.error.message)}return r}else{const ie=await X.organization.createRole({role:$,permission:b});if(ie?.error)throw new Error(ie.error.message);for(const W of r.memberIds){const q=await X.organization.updateMemberRole({memberId:W,role:[$]});if(q?.error)throw new Error(q.error.message)}return{...r,role:{...r.role,id:ie.data?.roleData?.id,slug:$}}}},onSuccess:(r,b)=>{o.invalidateQueries({queryKey:oe.members(h)}),o.invalidateQueries({queryKey:oe.organizationRoles(h)});const $=!b.role.id&&!b.role.slug,le=b.role.slug&&!b.role.id;J.success(le?"Members updated successfully!":$?"Role created successfully!":"Role updated successfully!"),f(),d.reset(r),r.role.id&&p(r.role.id),e?.()},onError:r=>{J.error(r instanceof Error?r.message:"Failed to save role")}}),K=fe({mutationFn:async r=>{const b=await X.organization.deleteRole({roleId:r});if(b?.error)throw new Error(b.error.message);return b?.data},onSuccess:()=>{if(o.invalidateQueries({queryKey:oe.members(h)}),o.invalidateQueries({queryKey:oe.organizationRoles(h)}),J.success("Role deleted successfully!"),f(),v?.id===j){const r=y.filter(b=>b.id!==v?.id);if(r[0])E(r[0]);else{const b=$e("user",T?.data?.members??[]);d.reset(b),g("user"),p(null),i("org")}}},onError:r=>{J.error(r instanceof Error?r.message:"Failed to delete role")}}),Q=F.isPending||K.isPending,Y=async()=>{const r=d.getValues();if(!r.role.label.trim()){J.error("Role name is required"),d.setFocus("role.label");return}await F.mutateAsync(r)},ne=d.handleSubmit(r=>{if(!r.role.label.trim()){J.error("Role name is required"),d.setFocus("role.label");return}F.mutate(r)}),te=r=>{r.id&&I({id:r.id,label:r.label})},D=()=>{v?.id&&K.mutate(v.id),I(null)};return t.jsxs(Is,{open:n,onOpenChange:M,children:[t.jsx(ws,{asChild:!0,children:s}),t.jsx(Ts,{className:"sm:max-w-5xl h-[80vh] max-h-[80vh] flex flex-col p-0 overflow-hidden w-[95vw]",children:t.jsxs("div",{className:"flex-1 flex overflow-hidden min-h-0 flex-col sm:flex-row",children:[t.jsxs("div",{className:"w-full sm:w-64 sm:border-r border-b sm:border-b-0 border-border flex flex-col bg-background sm:h-full max-h-[40vh] sm:max-h-full",children:[t.jsx("div",{className:"flex-1 overflow-auto px-3.5 py-3.5 pt-3.5",children:t.jsxs("div",{className:"flex flex-col gap-1",children:[ht.map(r=>{const b=C===r.role;return t.jsxs("div",{className:re("flex items-center gap-2 px-2 py-1.5 rounded-lg overflow-hidden cursor-pointer transition-colors",b?"bg-accent":"hover:bg-muted/50"),onClick:()=>m(r.role),children:[t.jsx("div",{className:re("shrink-0 size-3 rounded-full",r.color)}),t.jsx("p",{className:"text-sm font-medium truncate flex-1",children:r.label}),t.jsx(et,{size:14,className:"text-muted-foreground shrink-0"})]},r.role)}),y.map(r=>{const b=j===r.id;return t.jsxs("div",{className:re("group flex items-center gap-2 px-2 py-1.5 rounded-lg overflow-hidden transition-colors cursor-pointer",b?"bg-accent":"hover:bg-muted/50"),onClick:()=>z(r),children:[t.jsx("div",{className:re("shrink-0 size-3 rounded-full",gt(r.label))}),t.jsx("p",{className:"text-sm font-medium truncate flex-1",children:r.label}),t.jsxs(as,{children:[t.jsx(cs,{asChild:!0,children:t.jsx(ee,{variant:"ghost",size:"icon",className:re("size-5 shrink-0 transition-opacity opacity-0 pointer-events-none","group-hover:opacity-100 group-hover:pointer-events-auto",b&&"opacity-100 pointer-events-auto"),onClick:$=>$.stopPropagation(),children:t.jsx(Xs,{size:14})})}),t.jsx(ds,{align:"end",children:t.jsxs(Ke,{className:"text-destructive",onClick:$=>{$.stopPropagation(),te(r)},children:[t.jsx(Os,{size:16}),"Delete"]})})]})]},r.id)}),c&&t.jsxs("div",{className:"flex items-center gap-2 px-2 py-1.5 rounded-lg overflow-hidden bg-accent",children:[t.jsx("div",{className:"shrink-0 size-3 rounded-full bg-neutral-400"}),t.jsx(st,{...d.register("role.label"),placeholder:"Enter role name",className:"flex-1 text-sm font-medium border-0 shadow-none h-auto px-0 py-0 focus-visible:ring-0 bg-transparent",autoFocus:!0}),t.jsx(Ie,{variant:"secondary",className:"shrink-0 text-xs px-1.5 py-0",children:"New"})]})]})}),t.jsx("div",{className:"px-3.5 pb-3.5",children:t.jsxs(ee,{variant:"outline",size:"default",onClick:N,disabled:Q||u,className:"w-full h-10",children:[t.jsx(ss,{size:16}),"Create new role"]})})]}),t.jsxs("div",{className:"flex-1 flex flex-col min-w-0",children:[t.jsxs("div",{className:"h-12 border-b border-border px-4 py-3.5 flex items-center gap-2 shrink-0",children:[!C&&t.jsx(ee,{variant:"outline",size:"sm",onClick:()=>i("mcp"),className:re("h-8 rounded-lg px-2 py-1",a==="mcp"?"bg-muted border-input text-foreground":"border-input text-muted-foreground bg-transparent"),children:"MCP Permissions"}),t.jsx(ee,{variant:"outline",size:"sm",onClick:()=>i("org"),className:re("h-8 rounded-lg px-2 py-1",a==="org"?"bg-muted border-input text-foreground":"border-input text-muted-foreground bg-transparent"),children:"Organization Permissions"}),t.jsx(ee,{variant:"outline",size:"sm",onClick:()=>i("members"),className:re("h-8 rounded-lg px-2 py-1",a==="members"?"bg-muted border-input text-foreground":"border-input text-muted-foreground bg-transparent"),children:"Members"})]}),t.jsxs("div",{className:"flex-1 overflow-hidden min-h-0",children:[a==="mcp"&&!C&&t.jsx(Us,{toolSet:d.watch("toolSet"),onToolSetChange:r=>d.setValue("toolSet",r,{shouldDirty:!0})}),a==="org"&&t.jsx(xt,{allowAllStaticPermissions:d.watch("allowAllStaticPermissions"),staticPermissions:d.watch("staticPermissions"),onAllowAllChange:r=>d.setValue("allowAllStaticPermissions",r,{shouldDirty:!0}),onPermissionsChange:r=>d.setValue("staticPermissions",r,{shouldDirty:!0}),readOnly:!!C}),a==="members"&&t.jsx(St,{memberIds:d.watch("memberIds"),onMemberIdsChange:r=>d.setValue("memberIds",r,{shouldDirty:!0}),readOnly:C==="owner"})]}),(!C||C!=="owner")&&t.jsxs("div",{className:"border-t border-border px-5 py-5 flex items-center justify-end gap-2.5 shrink-0",children:[t.jsx(ee,{variant:"outline",onClick:()=>M(!1),disabled:Q,className:"h-10",children:"Cancel"}),t.jsx(ee,{onClick:ne,disabled:Q||!S||!d.formState.isDirty,className:"h-10",children:F.isPending?"Saving...":c?"Create Role":"Save Changes"})]})]})]})}),t.jsx(we,{open:v!==null,onOpenChange:r=>!r&&I(null),children:t.jsxs(Te,{children:[t.jsxs(Ae,{children:[t.jsx(Oe,{children:"Delete Role"}),t.jsxs(Re,{children:['Are you sure you want to delete the "',v?.label,'" role? This action cannot be undone.']})]}),t.jsxs(_e,{children:[t.jsx(Pe,{children:"Cancel"}),t.jsx(Le,{onClick:D,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"Delete"})]})]})}),t.jsx(we,{open:P,onOpenChange:w,children:t.jsxs(Te,{children:[t.jsxs(Ae,{children:[t.jsx(Oe,{children:"Discard Changes"}),t.jsx(Re,{children:"You have unsaved changes. Are you sure you want to discard them?"})]}),t.jsxs(_e,{children:[t.jsx(Pe,{onClick:()=>A(null),children:"Keep Editing"}),t.jsx(Le,{onClick:V,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"Discard"})]})]})})]})}const Tt=ue().email("Invalid email address");function At(s){if(!s.trim())return[];const e=s.split(/[,;\n]/).map(n=>n.trim().toLowerCase()).filter(n=>n.length>0);return Array.from(new Set(e))}function Ot({trigger:s}){const[e,n]=U.useState(!1),{locator:l}=Ce(),a=qe(),{data:i}=X.useSession(),h=i?.user?.email,{roles:o,isLoading:x}=us(),y=o.filter(g=>g.role!=="owner"),f=Es({mode:"onChange",defaultValues:{emailsText:"",role:"user"}}),T=f.watch("emailsText"),d=f.watch("role"),u=At(T).filter(g=>{const c=Tt.safeParse(g).success,v=!h||g!==h.toLowerCase();return c&&v}),j=fe({mutationFn:async({emails:g,role:c})=>{if(!c)throw new Error("Please select a role");const v=await Promise.allSettled(g.map(async P=>{const w=await X.organization.inviteMember({email:P,role:c});if(w.error)throw new Error(w.error.message);return w.data})),I=v.filter(P=>P.status==="rejected");if(I.length>0)throw new Error(`Failed to invite ${I.length} member${I.length>1?"s":""}`);return v},onSuccess:(g,{emails:c})=>{a.invalidateQueries({queryKey:oe.members(l)}),a.invalidateQueries({queryKey:oe.invitations(l)}),J.success(c.length===1?"Member invited successfully!":`${c.length} members invited successfully!`),f.reset({emailsText:"",role:"user"}),n(!1)},onError:g=>{J.error(g instanceof Error?g.message:"Failed to invite members")}}),p=g=>{if(u.length===0){J.error("Please enter at least one valid email address");return}if(!g.role){J.error("Please select a role");return}j.mutate({emails:u,role:g.role})},C=u.length>0&&!!d;return t.jsxs(Is,{open:e,onOpenChange:n,children:[t.jsx(ws,{asChild:!0,children:s}),t.jsxs(Ts,{className:"sm:max-w-lg",children:[t.jsx(Qs,{children:t.jsx(qs,{children:"Invite members"})}),t.jsx(nt,{...f,children:t.jsxs("form",{onSubmit:f.handleSubmit(p),className:"space-y-4",children:[t.jsx(gs,{control:f.control,name:"emailsText",render:({field:g})=>t.jsxs(xs,{children:[t.jsx(rt,{children:"Email addresses"}),t.jsx(ps,{children:t.jsx(it,{...g,disabled:j.isPending,placeholder:`Enter email addresses separated by commas or new lines
2
2
  e.g. user1@example.com, user2@example.com
3
3
  or one per line`,className:"min-h-[120px] resize-none"})}),t.jsx(bs,{})]})}),t.jsx(gs,{control:f.control,name:"role",render:({field:g})=>t.jsxs(xs,{children:[t.jsx(ps,{children:t.jsxs(ts,{value:g.value,onValueChange:g.onChange,disabled:j.isPending||x,children:[t.jsx(ns,{className:"w-full",children:t.jsx(rs,{placeholder:"Select a role"})}),t.jsx(is,{children:y.map(c=>{const v=[];return c.isBuiltin||(c.allowsAllStaticPermissions?v.push("Full org access"):c.staticPermissionCount&&c.staticPermissionCount>0&&v.push(`${c.staticPermissionCount} org perm${c.staticPermissionCount!==1?"s":""}`),c.allowsAllConnections?v.push("All connections"):c.connectionCount&&c.connectionCount>0&&v.push(`${c.connectionCount} connection${c.connectionCount!==1?"s":""}`),(c.connectionCount!==0||c.allowsAllConnections)&&(c.allowsAllTools?v.push("all tools"):c.toolCount&&c.toolCount>0&&v.push(`${c.toolCount} tool${c.toolCount!==1?"s":""}`))),t.jsx(ls,{value:c.role,children:t.jsxs("div",{className:"flex flex-col",children:[t.jsx("span",{children:c.label}),!c.isBuiltin&&v.length>0&&t.jsx("span",{className:"text-xs text-muted-foreground",children:v.join(", ")})]})},c.role)})})]})}),t.jsx(bs,{})]})}),t.jsxs(Zs,{children:[t.jsx(ee,{variant:"outline",onClick:()=>{f.reset({emailsText:"",role:"user"}),n(!1)},type:"button",disabled:j.isPending,children:"Cancel"}),t.jsx(ee,{type:"submit",disabled:j.isPending||!C,children:j.isPending?"Inviting...":`Invite ${u.length||0} Member${u.length!==1?"s":""}`})]})]})})]})]})}function Rt(){const s=de.c(6),{locator:e}=Ce();let n;s[0]===Symbol.for("react.memo_cache_sentinel")?(n=$s(),s[0]=n):n=s[0];const l=n;let a;s[1]!==e?(a=oe.invitations(e),s[1]=e,s[2]=a):a=s[2];let i;s[3]===Symbol.for("react.memo_cache_sentinel")?(i=async()=>(await l("ORGANIZATION_GET",{}))?.invitations??[],s[3]=i):i=s[3];let h;return s[4]!==a?(h={queryKey:a,queryFn:i},s[4]=a,s[5]=h):h=s[5],Ds(h)}function _t(){const s=de.c(5),{locator:e}=Ce(),n=qe();let l;s[0]!==e||s[1]!==n?(l={mutationFn:Lt,onSuccess:()=>{n.invalidateQueries({queryKey:oe.invitations(e)}),J.success("Invitation cancelled")},onError:Pt},s[0]=e,s[1]=n,s[2]=l):l=s[2];const a=fe(l);let i;return s[3]!==a?(i={cancel:a},s[3]=a,s[4]=i):i=s[4],i}function Pt(s){J.error(s instanceof Error?s.message:"Failed to cancel invitation")}async function Lt(s){const e=await X.organization.cancelInvitation({invitationId:s});if(e?.error)throw new Error(e.error.message);return e.data}const vs=["bg-neutral-400","bg-red-500","bg-orange-500","bg-amber-500","bg-yellow-500","bg-lime-500","bg-green-500","bg-emerald-500","bg-teal-500","bg-cyan-500","bg-sky-500","bg-blue-500","bg-indigo-500","bg-violet-500","bg-purple-500","bg-fuchsia-500","bg-pink-500","bg-rose-500","bg-slate-500"],Mt={owner:"bg-red-500",admin:"bg-blue-500",user:"bg-green-500"};function Qe(s){return s?s.split(" ").map(e=>e[0]).join("").toUpperCase().slice(0,2):"?"}function zt(s){const e=new Map;for(const[n,l]of Object.entries(Mt))e.set(n,l);for(let n=0;n<s.length;n++){const l=s[n];l&&!e.has(l.role)&&e.set(l.role,vs[n%vs.length]??"bg-neutral-400")}return e}function kt(s){return new Date(s).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"})}function Fe(s){const e=de.c(79),{role:n,memberId:l,isOwner:a,roleColorMap:i,selectableRoles:h,onRoleChange:o,size:x,className:y}=s,f=x===void 0?"xs":x;let T,d,S,u,j,p,C,g,c,v,I;if(e[0]!==y||e[1]!==a||e[2]!==l||e[3]!==o||e[4]!==n||e[5]!==i||e[6]!==h||e[7]!==f){I=Symbol.for("react.early_return_sentinel");e:{const N=i.get(n)??"bg-neutral-400";if(a){let m;e[19]!==l||e[20]!==o?(m=D=>o(l,D),e[19]=l,e[20]=o,e[21]=m):m=e[21];let M;e[22]!==n?(M=t.jsx("span",{className:"capitalize truncate",children:n}),e[22]=n,e[23]=M):M=e[23];const V=t.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[t.jsx("div",{className:re("size-2 rounded-full shrink-0",N)}),M]});let se;e[24]!==V?(se=t.jsx(rs,{children:V}),e[24]=V,e[25]=se):se=e[25];let F;e[26]!==y||e[27]!==f||e[28]!==se?(F=t.jsx(ns,{size:f,className:y,children:se}),e[26]=y,e[27]=f,e[28]=se,e[29]=F):F=e[29];let K;if(e[30]!==i||e[31]!==h){let D;e[33]!==i?(D=r=>{const b=i.get(r.role)??"bg-neutral-400";return t.jsx(ls,{value:r.role,children:t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx("div",{className:re("size-3 rounded-full",b)}),t.jsx("span",{className:"capitalize",children:r.label})]})},r.role)},e[33]=i,e[34]=D):D=e[34],K=h.map(D),e[30]=i,e[31]=h,e[32]=K}else K=e[32];let Q;e[35]!==K?(Q=t.jsx(is,{children:K}),e[35]=K,e[36]=Q):Q=e[36];let Y;e[37]!==a||e[38]!==n||e[39]!==m||e[40]!==F||e[41]!==Q?(Y=t.jsx(Ee,{asChild:!0,children:t.jsx("div",{className:"w-fit",children:t.jsxs(ts,{value:n,onValueChange:m,disabled:a,children:[F,Q]})})}),e[37]=a,e[38]=n,e[39]=m,e[40]=F,e[41]=Q,e[42]=Y):Y=e[42];let ne;e[43]===Symbol.for("react.memo_cache_sentinel")?(ne=t.jsx(Se,{children:t.jsx("p",{children:"The owner role cannot be changed"})}),e[43]=ne):ne=e[43];let te;e[44]!==Y?(te=t.jsx(Ne,{children:t.jsxs(ye,{children:[Y,ne]})}),e[44]=Y,e[45]=te):te=e[45],I=te;break e}S=ts,g=n,e[46]!==l||e[47]!==o?(c=m=>o(l,m),e[46]=l,e[47]=o,e[48]=c):c=e[48],v=a,d=ns,p=f,C=y,T=rs,j="flex items-center gap-2 min-w-0",u=re("size-2 rounded-full shrink-0",N)}e[0]=y,e[1]=a,e[2]=l,e[3]=o,e[4]=n,e[5]=i,e[6]=h,e[7]=f,e[8]=T,e[9]=d,e[10]=S,e[11]=u,e[12]=j,e[13]=p,e[14]=C,e[15]=g,e[16]=c,e[17]=v,e[18]=I}else T=e[8],d=e[9],S=e[10],u=e[11],j=e[12],p=e[13],C=e[14],g=e[15],c=e[16],v=e[17],I=e[18];if(I!==Symbol.for("react.early_return_sentinel"))return I;let P;e[49]!==u?(P=t.jsx("div",{className:u}),e[49]=u,e[50]=P):P=e[50];let w;e[51]!==n?(w=t.jsx("span",{className:"capitalize truncate",children:n}),e[51]=n,e[52]=w):w=e[52];let O;e[53]!==P||e[54]!==w||e[55]!==j?(O=t.jsxs("div",{className:j,children:[P,w]}),e[53]=P,e[54]=w,e[55]=j,e[56]=O):O=e[56];let A;e[57]!==T||e[58]!==O?(A=t.jsx(T,{children:O}),e[57]=T,e[58]=O,e[59]=A):A=e[59];let L;e[60]!==d||e[61]!==A||e[62]!==p||e[63]!==C?(L=t.jsx(d,{size:p,className:C,children:A}),e[60]=d,e[61]=A,e[62]=p,e[63]=C,e[64]=L):L=e[64];let E;if(e[65]!==i||e[66]!==h){let N;e[68]!==i?(N=m=>{const M=i.get(m.role)??"bg-neutral-400";return t.jsx(ls,{value:m.role,children:t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx("div",{className:re("size-3 rounded-full",M)}),t.jsx("span",{className:"capitalize",children:m.label})]})},m.role)},e[68]=i,e[69]=N):N=e[69],E=h.map(N),e[65]=i,e[66]=h,e[67]=E}else E=e[67];let _;e[70]!==E?(_=t.jsx(is,{children:E}),e[70]=E,e[71]=_):_=e[71];let z;return e[72]!==S||e[73]!==L||e[74]!==_||e[75]!==g||e[76]!==c||e[77]!==v?(z=t.jsxs(S,{value:g,onValueChange:c,disabled:v,children:[L,_]}),e[72]=S,e[73]=L,e[74]=_,e[75]=g,e[76]=c,e[77]=v,e[78]=z):z=e[78],z}function Ns(s){const e=de.c(51),{member:n,roles:l,onChangeRole:a,onRemove:i,isUpdating:h}=s,o=h===void 0?!1:h,x=n.role==="owner";let y,f,T,d,S,u,j,p,C;if(e[0]!==x||e[1]!==o||e[2]!==n.id||e[3]!==n.role||e[4]!==a||e[5]!==l){let L;e[15]!==n.role?(L=m=>m.role!==n.role&&m.role!=="owner",e[15]=n.role,e[16]=L):L=e[16];const E=l.filter(L);d=as;let _;e[17]===Symbol.for("react.memo_cache_sentinel")?(_=t.jsx(Rs,{size:20}),e[17]=_):_=e[17],e[18]!==x?(C=t.jsx(cs,{asChild:!0,children:t.jsx(ee,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",disabled:x,onClick:Bt,children:_})}),e[18]=x,e[19]=C):C=e[19],T=ds,j="end",p=Dt,f=Ys;let z;e[20]===Symbol.for("react.memo_cache_sentinel")?(z=t.jsx(_s,{size:16}),e[20]=z):z=e[20],e[21]!==o?(u=t.jsxs(Ws,{disabled:o,children:[z,"Change Role"]}),e[21]=o,e[22]=u):u=e[22],y=Hs;let N;e[23]!==o||e[24]!==n.id||e[25]!==a?(N=m=>{const M=[];return m.isBuiltin||(m.allowsAllStaticPermissions?M.push("Full org access"):m.staticPermissionCount&&m.staticPermissionCount>0&&M.push(`${m.staticPermissionCount} org perm${m.staticPermissionCount!==1?"s":""}`),m.allowsAllConnections?M.push("All connections"):m.connectionCount&&m.connectionCount>0&&M.push(`${m.connectionCount} connection${m.connectionCount!==1?"s":""}`),(m.connectionCount!==0||m.allowsAllConnections)&&(m.allowsAllTools?M.push("all tools"):m.toolCount&&m.toolCount>0&&M.push(`${m.toolCount} tool${m.toolCount!==1?"s":""}`))),t.jsxs(Ke,{onClick:V=>{V.stopPropagation(),a(n.id,m.role)},disabled:o,children:[m.isBuiltin?t.jsx(ms,{size:16}):t.jsx(lt,{size:16}),t.jsxs("span",{className:"flex flex-col",children:[t.jsx("span",{children:m.label}),!m.isBuiltin&&M.length>0&&t.jsx("span",{className:"text-xs text-muted-foreground",children:M.join(", ")})]})]},m.role)},e[23]=o,e[24]=n.id,e[25]=a,e[26]=N):N=e[26],S=E.map(N),e[0]=x,e[1]=o,e[2]=n.id,e[3]=n.role,e[4]=a,e[5]=l,e[6]=y,e[7]=f,e[8]=T,e[9]=d,e[10]=S,e[11]=u,e[12]=j,e[13]=p,e[14]=C}else y=e[6],f=e[7],T=e[8],d=e[9],S=e[10],u=e[11],j=e[12],p=e[13],C=e[14];let g;e[27]!==y||e[28]!==S?(g=t.jsx(y,{children:S}),e[27]=y,e[28]=S,e[29]=g):g=e[29];let c;e[30]!==f||e[31]!==u||e[32]!==g?(c=t.jsxs(f,{children:[u,g]}),e[30]=f,e[31]=u,e[32]=g,e[33]=c):c=e[33];let v;e[34]===Symbol.for("react.memo_cache_sentinel")?(v=t.jsx(Js,{}),e[34]=v):v=e[34];let I;e[35]!==n.id||e[36]!==i?(I=L=>{L.stopPropagation(),i(n.id)},e[35]=n.id,e[36]=i,e[37]=I):I=e[37];let P;e[38]===Symbol.for("react.memo_cache_sentinel")?(P=t.jsx(Os,{size:16}),e[38]=P):P=e[38];let w;e[39]!==I?(w=t.jsxs(Ke,{variant:"destructive",onClick:I,children:[P,"Remove Member"]}),e[39]=I,e[40]=w):w=e[40];let O;e[41]!==T||e[42]!==w||e[43]!==j||e[44]!==p||e[45]!==c?(O=t.jsxs(T,{align:j,onClick:p,children:[c,v,w]}),e[41]=T,e[42]=w,e[43]=j,e[44]=p,e[45]=c,e[46]=O):O=e[46];let A;return e[47]!==d||e[48]!==O||e[49]!==C?(A=t.jsxs(d,{children:[C,O]}),e[47]=d,e[48]=O,e[49]=C,e[50]=A):A=e[50],A}function Dt(s){return s.stopPropagation()}function Bt(s){return s.stopPropagation()}function ys(s){const e=de.c(8),{invitationId:n,onCancel:l,isCancelling:a}=s,i=a===void 0?!1:a;let h;e[0]===Symbol.for("react.memo_cache_sentinel")?(h=t.jsx(cs,{asChild:!0,children:t.jsx(ee,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0",onClick:Ut,children:t.jsx(Rs,{size:20})})}),e[0]=h):h=e[0];let o;e[1]!==n||e[2]!==l?(o=f=>{f.stopPropagation(),l(n)},e[1]=n,e[2]=l,e[3]=o):o=e[3];let x;e[4]===Symbol.for("react.memo_cache_sentinel")?(x=t.jsx(ot,{size:16}),e[4]=x):x=e[4];let y;return e[5]!==i||e[6]!==o?(y=t.jsxs(as,{children:[h,t.jsx(ds,{align:"end",onClick:Gt,children:t.jsxs(Ke,{variant:"destructive",onClick:o,disabled:i,children:[x,"Cancel Invitation"]})})]}),e[5]=i,e[6]=o,e[7]=y):y=e[7],y}function Gt(s){return s.stopPropagation()}function Ut(s){return s.stopPropagation()}function Vt(){const s=de.c(74),{data:e}=os(),{data:n}=Rt(),l=_t(),a=qe(),{locator:i}=Ce(),[h,o]=U.useState(null),[x,y]=U.useState(null),[f,T]=U.useState(""),[d,S]=U.useState("table"),[u,j]=U.useState("member"),[p,C]=U.useState("asc"),g=e?.data?.members;let c;s[0]!==u?(c=R=>{u===R?C(sn):(j(R),C("asc"))},s[0]=u,s[1]=c):c=s[1];const v=c;let I=g??[],P=n??[];if(f){const R=f.toLowerCase();I=I.filter(G=>G.user?.name?.toLowerCase().includes(R)||G.user?.email?.toLowerCase().includes(R)||G.role?.toLowerCase().includes(R)),P=P.filter(G=>G.email?.toLowerCase().includes(R)||G.role?.toLowerCase().includes(R))}if(u&&p){let R;s[2]!==p||s[3]!==u?(R=(G,H)=>{let ce,ve;e:switch(u){case"member":{ce=G.user?.name||"",ve=H.user?.name||"";break e}case"role":{ce=G.role||"",ve=H.role||"";break e}case"joined":{ce=G.createdAt?typeof G.createdAt=="string"?G.createdAt:G.createdAt.toISOString():"",ve=H.createdAt?typeof H.createdAt=="string"?H.createdAt:H.createdAt.toISOString():"";break e}default:return 0}return p==="asc"?ce.localeCompare(ve):ve.localeCompare(ce)},s[2]=p,s[3]=u,s[4]=R):R=s[4],I=[...I].sort(R)}const w=I;let O;s[5]!==i||s[6]!==a?(O={mutationFn:en,onSuccess:()=>{a.invalidateQueries({queryKey:oe.members(i)}),J.success("Member has been removed from the organization"),o(null)},onError:Xt},s[5]=i,s[6]=a,s[7]=O):O=s[7];const A=fe(O);let L;s[8]!==i||s[9]!==a?(L={mutationFn:Jt,onSuccess:()=>{a.invalidateQueries({queryKey:oe.members(i)}),J.success("Member's role has been updated")},onError:Ht},s[8]=i,s[9]=a,s[10]=L):L=s[10];const E=fe(L);let _;s[11]!==i||s[12]!==a?(_={mutationFn:Wt,onSuccess:()=>{a.invalidateQueries({queryKey:oe.invitations(i)}),J.success("Invitation role has been updated")},onError:Yt},s[11]=i,s[12]=a,s[13]=_):_=s[13];const z=fe(_),{roles:N,customRoles:m}=us();let M;s[14]!==m?(M=zt(m),s[14]=m,s[15]=M):M=s[15];const V=M;let se;s[16]!==N?(se=N.filter(Zt),s[16]=N,s[17]=se):se=s[17];const F=se;let K;s[18]===Symbol.for("react.memo_cache_sentinel")?(K={id:"member",header:"Member",render:qt,cellClassName:"flex-1 min-w-0",sortable:!0},s[18]=K):K=s[18];let Q;s[19]!==V||s[20]!==F||s[21]!==z||s[22]!==E?(Q={id:"role",header:"Role",render:R=>R.type==="member"?t.jsx(Fe,{role:R.data.role,memberId:R.data.id,isOwner:R.data.role==="owner",roleColorMap:V,selectableRoles:F,onRoleChange:(G,H)=>E.mutate({memberId:G,role:H}),className:"w-36"}):t.jsx(Fe,{role:R.data.role,memberId:R.data.id,isOwner:!1,roleColorMap:V,selectableRoles:F,onRoleChange:(G,H)=>z.mutate({invitationId:G,role:H,email:R.data.email}),className:"w-36"}),cellClassName:"w-36 shrink-0",sortable:!0},s[19]=V,s[20]=F,s[21]=z,s[22]=E,s[23]=Q):Q=s[23];let Y;s[24]===Symbol.for("react.memo_cache_sentinel")?(Y={id:"joined",header:"Joined",render:Qt,cellClassName:"w-48 shrink-0",sortable:!0},s[24]=Y):Y=s[24];let ne;s[25]!==l.cancel.isPending||s[26]!==N||s[27]!==E?(ne={id:"actions",header:"",render:R=>R.type==="member"?t.jsx(Ns,{member:R.data,roles:N,onChangeRole:(G,H)=>E.mutate({memberId:G,role:H}),onRemove:o,isUpdating:E.isPending}):t.jsx(ys,{invitationId:R.data.id,onCancel:y,isCancelling:l.cancel.isPending}),cellClassName:"w-12 shrink-0"},s[25]=l.cancel.isPending,s[26]=N,s[27]=E,s[28]=ne):ne=s[28];let te;s[29]!==Q||s[30]!==ne?(te=[K,Q,Y,ne],s[29]=Q,s[30]=ne,s[31]=te):te=s[31];const D=te;let r;s[32]===Symbol.for("react.memo_cache_sentinel")?(r=t.jsx(wt,{trigger:t.jsxs(ee,{variant:"outline",size:"sm",className:"h-7 px-3 rounded-lg text-sm font-medium",children:[t.jsx(ms,{size:16}),"Manage Roles"]})}),s[32]=r):r=s[32];let b;s[33]===Symbol.for("react.memo_cache_sentinel")?(b=t.jsxs("div",{className:"flex items-center gap-2",children:[r,t.jsx(Ot,{trigger:t.jsx(ee,{size:"sm",children:"Invite Member"})})]}),s[33]=b):b=s[33];const $=b,le=[...w.map(Kt),...P.filter(Ft).map($t)],ie=es,W=!!x;let q;s[34]===Symbol.for("react.memo_cache_sentinel")?(q=()=>y(null),s[34]=q):q=s[34];let me;s[35]===Symbol.for("react.memo_cache_sentinel")?(me=t.jsxs(Ae,{children:[t.jsx(Oe,{children:"Cancel Invitation"}),t.jsx(Re,{children:"Are you sure you want to cancel this invitation? The invitee will no longer be able to join the organization with this invitation."})]}),s[35]=me):me=s[35];let k;s[36]===Symbol.for("react.memo_cache_sentinel")?(k=t.jsx(Pe,{children:"Keep Invitation"}),s[36]=k):k=s[36];let B;s[37]!==l.cancel||s[38]!==x?(B=()=>{x&&(l.cancel.mutate(x),y(null))},s[37]=l.cancel,s[38]=x,s[39]=B):B=s[39];let Z;s[40]!==l.cancel.isPending||s[41]!==B?(Z=t.jsxs(Te,{children:[me,t.jsxs(_e,{children:[k,t.jsx(Le,{onClick:B,disabled:l.cancel.isPending,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"Cancel Invitation"})]})]}),s[40]=l.cancel.isPending,s[41]=B,s[42]=Z):Z=s[42];let ae;s[43]!==W||s[44]!==Z?(ae=t.jsx(we,{open:W,onOpenChange:q,children:Z}),s[43]=W,s[44]=Z,s[45]=ae):ae=s[45];const Ye=!!h;let Me;s[46]===Symbol.for("react.memo_cache_sentinel")?(Me=()=>o(null),s[46]=Me):Me=s[46];let ze;s[47]===Symbol.for("react.memo_cache_sentinel")?(ze=t.jsxs(Ae,{children:[t.jsx(Oe,{children:"Remove Member"}),t.jsx(Re,{children:"Are you sure you want to remove this member from the organization? This action cannot be undone."})]}),s[47]=ze):ze=s[47];let ke;s[48]===Symbol.for("react.memo_cache_sentinel")?(ke=t.jsx(Pe,{children:"Cancel"}),s[48]=ke):ke=s[48];let he;s[49]!==h||s[50]!==A?(he=()=>h&&A.mutate(h),s[49]=h,s[50]=A,s[51]=he):he=s[51];let ge;s[52]!==A.isPending||s[53]!==he?(ge=t.jsxs(Te,{children:[ze,t.jsxs(_e,{children:[ke,t.jsx(Le,{onClick:he,disabled:A.isPending,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"Remove"})]})]}),s[52]=A.isPending,s[53]=he,s[54]=ge):ge=s[54];let xe;s[55]!==Ye||s[56]!==ge?(xe=t.jsx(we,{open:Ye,onOpenChange:Me,children:ge}),s[55]=Ye,s[56]=ge,s[57]=xe):xe=s[57];let De;s[58]===Symbol.for("react.memo_cache_sentinel")?(De=[{id:"member",label:"Name"},{id:"role",label:"Role"},{id:"joined",label:"Joined"}],s[58]=De):De=s[58];let pe;s[59]!==v||s[60]!==p||s[61]!==u||s[62]!==d?(pe=t.jsx(Bs,{title:"Members",viewMode:d,onViewModeChange:S,sortKey:u,sortDirection:p,onSort:v,sortOptions:De,ctaButton:$}),s[59]=v,s[60]=p,s[61]=u,s[62]=d,s[63]=pe):pe=s[63];let Be;s[64]===Symbol.for("react.memo_cache_sentinel")?(Be=R=>{R.key==="Escape"&&(T(""),R.target.blur())},s[64]=Be):Be=s[64];let be;s[65]!==f?(be=t.jsx(Ze,{value:f,onChange:T,placeholder:"Search members...",onKeyDown:Be}),s[65]=f,s[66]=be):be=s[66];const We=d==="cards"?t.jsx("div",{className:"flex-1 overflow-auto p-5",children:le.length===0?t.jsx(Je,{title:"No members found",description:f?`No members match "${f}"`:"Invite members to get started."}):t.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 lg:grid-cols-4 gap-4",children:le.map(R=>{if(R.type==="invitation")return t.jsxs(js,{className:"transition-colors relative opacity-75",children:[t.jsx("div",{className:"absolute top-4 right-4 z-10",children:t.jsx(ys,{invitationId:R.data.id,onCancel:y,isCancelling:l.cancel.isPending})}),t.jsxs("div",{className:"flex flex-col gap-4 p-6",children:[t.jsx(je,{fallback:Qe(R.data.email),shape:"circle",size:"lg",className:"shrink-0"}),t.jsxs("div",{className:"flex flex-col gap-2",children:[t.jsx("h3",{className:"text-base font-medium text-foreground truncate",children:R.data.email}),t.jsx("div",{className:"flex items-center gap-2",children:t.jsx(Ie,{variant:"outline",className:"w-fit text-amber-600 border-amber-400",children:"Pending"})}),t.jsx(Fe,{role:R.data.role,memberId:R.data.id,isOwner:!1,roleColorMap:V,selectableRoles:F,onRoleChange:(H,ce)=>z.mutate({invitationId:H,role:ce,email:R.data.email}),className:"w-fit"})]})]})]},`inv-${R.data.id}`);const G=R.data;return t.jsxs(js,{className:"transition-colors relative",children:[t.jsx("div",{className:"absolute top-4 right-4 z-10",children:t.jsx(Ns,{member:G,roles:N,onChangeRole:(H,ce)=>E.mutate({memberId:H,role:ce}),onRemove:o,isUpdating:E.isPending})}),t.jsxs("div",{className:"flex flex-col gap-4 p-6",children:[t.jsx(je,{url:G.user?.image??void 0,fallback:Qe(G.user?.name),shape:"circle",size:"lg",className:"shrink-0"}),t.jsxs("div",{className:"flex flex-col gap-2",children:[t.jsx("h3",{className:"text-base font-medium text-foreground truncate",children:G.user?.name||"Unknown"}),t.jsx("p",{className:"text-sm text-muted-foreground truncate",children:G.user?.email}),t.jsx(Fe,{role:G.role,memberId:G.id,isOwner:G.role==="owner",roleColorMap:V,selectableRoles:F,onRoleChange:(H,ce)=>E.mutate({memberId:H,role:ce}),className:"w-fit"})]})]})]},G.id)})})}):t.jsx(Gs,{columns:D,data:le,isLoading:!1,sortKey:u,sortDirection:p,onSort:v,emptyState:f?t.jsx(Je,{title:"No members found",description:`No members match "${f}"`}):t.jsx(Je,{title:"No members found",description:"Invite members to get started."})});let Ge;return s[67]!==ie||s[68]!==ae||s[69]!==xe||s[70]!==pe||s[71]!==be||s[72]!==We?(Ge=t.jsxs(ie,{children:[ae,xe,pe,be,We]}),s[67]=ie,s[68]=ae,s[69]=xe,s[70]=pe,s[71]=be,s[72]=We,s[73]=Ge):Ge=s[73],Ge}function $t(s){return{type:"invitation",data:s}}function Ft(s){return s.status==="pending"}function Kt(s){return{type:"member",data:s}}function Qt(s){return s.type==="member"?t.jsx("span",{className:"text-sm text-foreground",children:s.data.createdAt?kt(s.data.createdAt):"N/A"}):t.jsx(Ie,{variant:"outline",children:"Pending"})}function qt(s){return s.type==="member"?t.jsxs("div",{className:"flex items-center gap-3",children:[t.jsx(je,{url:s.data.user?.image??void 0,fallback:Qe(s.data.user?.name),shape:"circle",size:"sm"}),t.jsxs("div",{className:"min-w-0",children:[t.jsx("div",{className:"text-sm font-medium text-foreground truncate",children:s.data.user?.name||"Unknown"}),t.jsx("div",{className:"text-sm text-muted-foreground truncate",children:s.data.user?.email})]})]}):t.jsxs("div",{className:"flex items-center gap-3",children:[t.jsx(je,{fallback:Qe(s.data.email),shape:"circle",size:"sm"}),t.jsxs("div",{className:"min-w-0",children:[t.jsx("div",{className:"text-sm font-medium text-foreground truncate",children:s.data.email}),t.jsx("div",{className:"text-sm text-muted-foreground truncate",children:"Invitation sent"})]})]})}function Zt(s){return s.role!=="owner"}function Yt(s){J.error(s instanceof Error?s.message:"Failed to update invitation role")}async function Wt(s){const{invitationId:e,role:n,email:l}=s,a=await X.organization.cancelInvitation({invitationId:e});if(a?.error)throw new Error(a.error.message);const i=await X.organization.inviteMember({email:l,role:n});if(i?.error)throw new Error(i.error.message)}function Ht(s){J.error(s instanceof Error?s.message:"Failed to update role")}async function Jt(s){const{memberId:e,role:n}=s,l=await X.organization.updateMemberRole({memberId:e,role:[n]});if(l?.error)throw new Error(l.error.message)}function Xt(s){J.error(s instanceof Error?s.message:"Failed to remove member")}async function en(s){const e=await X.organization.removeMember({memberIdOrEmail:s});if(e?.error)throw new Error(e.error.message)}function sn(s){return s==="asc"?"desc":s==="desc"?null:"asc"}function Vn(){const s=de.c(2);let e;s[0]===Symbol.for("react.memo_cache_sentinel")?(e=t.jsx(es,{children:t.jsx("div",{className:"flex items-center justify-center h-full",children:t.jsx("div",{className:"text-sm text-muted-foreground",children:"Failed to load members"})})}),s[0]=e):e=s[0];let n;return s[1]===Symbol.for("react.memo_cache_sentinel")?(n=t.jsx(tt,{fallback:e,children:t.jsx(U.Suspense,{fallback:t.jsx(es,{children:t.jsx("div",{className:"flex items-center justify-center h-full",children:t.jsx(As,{size:32,className:"animate-spin text-muted-foreground"})})}),children:t.jsx(Vt,{})})}),s[1]=n):n=s[1],n}export{Vn as default};
@@ -1,4 +1,4 @@
1
- import{r as a,z as N,j as _,c as Me,a2 as te}from"./index-DKhlCI_x.js";import{S as me}from"./spinner-BNiD7mdl.js";const Pe=({size:e=24,color:t="currentColor",...r})=>a.createElement("svg",{viewBox:"0 0 24 24",width:e,height:e,stroke:t,strokeWidth:"2",fill:"none",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",...r},a.createElement("path",{d:"M12 6v6l4 2m6-2c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2s10 4.477 10 10Z"}));Pe.displayName="Clock";function ue(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function Re(e){if(Array.isArray(e))return e}function Se(e,t,r){return(t=Ve(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function xe(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,o,i,u,l=[],c=!0,g=!1;try{if(i=(r=r.call(e)).next,t!==0)for(;!(c=(n=i.call(r)).done)&&(l.push(n.value),l.length!==t);c=!0);}catch(O){g=!0,o=O}finally{try{if(!c&&r.return!=null&&(u=r.return(),Object(u)!==u))return}finally{if(g)throw o}}return l}}function Te(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
1
+ import{r as a,z as N,j as _,c as Me,a2 as te}from"./index-Cum2JwLw.js";import{S as me}from"./spinner-7MBS50fZ.js";const Pe=({size:e=24,color:t="currentColor",...r})=>a.createElement("svg",{viewBox:"0 0 24 24",width:e,height:e,stroke:t,strokeWidth:"2",fill:"none",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",...r},a.createElement("path",{d:"M12 6v6l4 2m6-2c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2s10 4.477 10 10Z"}));Pe.displayName="Clock";function ue(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function Re(e){if(Array.isArray(e))return e}function Se(e,t,r){return(t=Ve(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function xe(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,o,i,u,l=[],c=!0,g=!1;try{if(i=(r=r.call(e)).next,t!==0)for(;!(c=(n=i.call(r)).done)&&(l.push(n.value),l.length!==t);c=!0);}catch(O){g=!0,o=O}finally{try{if(!c&&r.return!=null&&(u=r.return(),Object(u)!==u))return}finally{if(g)throw o}}return l}}function Te(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
2
2
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ce(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function se(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ce(Object(r),!0).forEach(function(n){Se(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ce(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function _e(e,t){if(e==null)return{};var r,n,o=Ce(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function Ce(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function Ie(e,t){return Re(e)||xe(e,t)||Ae(e,t)||Te()}function Le(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ve(e){var t=Le(e,"string");return typeof t=="symbol"?t:t+""}function Ae(e,t){if(e){if(typeof e=="string")return ue(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?ue(e,t):void 0}}function $e(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function le(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function fe(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?le(Object(r),!0).forEach(function(n){$e(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):le(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Ne(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return function(n){return t.reduceRight(function(o,i){return i(o)},n)}}function k(e){return function t(){for(var r=this,n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];return o.length>=e.length?e.apply(this,o):function(){for(var u=arguments.length,l=new Array(u),c=0;c<u;c++)l[c]=arguments[c];return t.apply(r,[].concat(o,l))}}}function Q(e){return{}.toString.call(e).includes("Object")}function De(e){return!Object.keys(e).length}function W(e){return typeof e=="function"}function ze(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function ke(e,t){return Q(t)||T("changeType"),Object.keys(t).some(function(r){return!ze(e,r)})&&T("changeField"),t}function Ke(e){W(e)||T("selectorType")}function We(e){W(e)||Q(e)||T("handlerType"),Q(e)&&Object.values(e).some(function(t){return!W(t)})&&T("handlersType")}function qe(e){e||T("initialIsRequired"),Q(e)||T("initialType"),De(e)&&T("initialContent")}function Fe(e,t){throw new Error(e[t]||e.default)}var Ue={initialIsRequired:"initial state is required",initialType:"initial state should be an object",initialContent:"initial state shouldn't be an empty object",handlerType:"handler should be an object or a function",handlersType:"all handlers should be a functions",selectorType:"selector should be a function",changeType:"provided value of changes should be an object",changeField:'it seams you want to change a field in the state which is not specified in the "initial" state',default:"an unknown error accured in `state-local` package"},T=k(Fe)(Ue),B={changes:ke,selector:Ke,handler:We,initial:qe};function Be(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};B.initial(e),B.handler(t);var r={current:e},n=k(Qe)(r,t),o=k(He)(r),i=k(B.changes)(e),u=k(Je)(r);function l(){var g=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(O){return O};return B.selector(g),g(r.current)}function c(g){Ne(n,o,i,u)(g)}return[l,c]}function Je(e,t){return W(t)?t(e.current):t}function He(e,t){return e.current=fe(fe({},e.current),t),t}function Qe(e,t,r){return W(t)?t(e.current):Object.keys(r).forEach(function(n){var o;return(o=t[n])===null||o===void 0?void 0:o.call(t,e.current[n])}),r}var Ge={create:Be},Ye={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.55.1/min/vs"}};function Ze(e){return function t(){for(var r=this,n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];return o.length>=e.length?e.apply(this,o):function(){for(var u=arguments.length,l=new Array(u),c=0;c<u;c++)l[c]=arguments[c];return t.apply(r,[].concat(o,l))}}}function Xe(e){return{}.toString.call(e).includes("Object")}function et(e){return e||de("configIsRequired"),Xe(e)||de("configType"),e.urls?(tt(),{paths:{vs:e.urls.monacoBase}}):e}function tt(){console.warn(he.deprecation)}function rt(e,t){throw new Error(e[t]||e.default)}var he={configIsRequired:"the configuration object is required",configType:"the configuration object should be an object",default:"an unknown error accured in `@monaco-editor/loader` package",deprecation:`Deprecation warning!
3
3
  You are using deprecated way of configuration.
4
4