decocms 2.281.4-alpha.1 → 2.282.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 (177) hide show
  1. package/dist/client/assets/{AlertCircle-7JjFgLc7.js → AlertCircle-BFBGzWbU.js} +1 -1
  2. package/dist/client/assets/{ArrowNarrowLeft-Dede_Ne2.js → ArrowNarrowLeft-Dxp25apt.js} +1 -1
  3. package/dist/client/assets/{CheckCircle-CTW72EON.js → CheckCircle-B3ma3JwC.js} +1 -1
  4. package/dist/client/assets/{ChevronDown-kxc5hHzL.js → ChevronDown-D9BYLhkI.js} +1 -1
  5. package/dist/client/assets/{ChevronRight-DDbSh6n1.js → ChevronRight-1PBbNJm4.js} +1 -1
  6. package/dist/client/assets/{ChevronUp-Dp8gBsiQ.js → ChevronUp-Cfr7nwaY.js} +1 -1
  7. package/dist/client/assets/{Container-DbPEBCPd.js → Container-DGdMzimP.js} +1 -1
  8. package/dist/client/assets/{LinkExternal01-DGpodMuQ.js → LinkExternal01-D1eXv7CP.js} +1 -1
  9. package/dist/client/assets/{Lock01-DWeyLAgC.js → Lock01-Cd-pjSnV.js} +1 -1
  10. package/dist/client/assets/{Palette-9DjyOnf4.js → Palette-CpczgKVU.js} +1 -1
  11. package/dist/client/assets/{Play-CGVWyYId.js → Play-B7_Vv1Kl.js} +1 -1
  12. package/dist/client/assets/{Plus-BZ8TfrO6.js → Plus-DCerBxVp.js} +1 -1
  13. package/dist/client/assets/{SearchMd-DiHiiShh.js → SearchMd-BBYvMMEY.js} +1 -1
  14. package/dist/client/assets/{Settings02-BrMLRmyq.js → Settings02-CTxpmjIL.js} +1 -1
  15. package/dist/client/assets/{Star01-DOZUyUGI.js → Star01-DtLRJZfG.js} +1 -1
  16. package/dist/client/assets/{Sun-D9NMWxb1.js → Sun-CjaKdP_w.js} +1 -1
  17. package/dist/client/assets/{Tool01-CPwXEQb5.js → Tool01-BZX3PrpA.js} +1 -1
  18. package/dist/client/assets/{Trash01-JJPVWHIh.js → Trash01-BpPWbnOV.js} +1 -1
  19. package/dist/client/assets/{Upload01-CAASdeK2.js → Upload01-AtFwS7_4.js} +1 -1
  20. package/dist/client/assets/{User01-DzewYYcp.js → User01-CbhU6vag.js} +1 -1
  21. package/dist/client/assets/{Users03-1bfUrVZT.js → Users03-C-T3UrlF.js} +1 -1
  22. package/dist/client/assets/{X-CyqBZIBt.js → X-BNbilc9H.js} +1 -1
  23. package/dist/client/assets/{XCircle-C0Pb9VbS.js → XCircle-DYNSiiUr.js} +1 -1
  24. package/dist/client/assets/{Zap-WS6KKy8N.js → Zap-B7kVcQ1u.js} +1 -1
  25. package/dist/client/assets/{ZapSquare-DBz9qdVm.js → ZapSquare-CdonE3dW.js} +1 -1
  26. package/dist/client/assets/{accordion-iHKIJir4.js → accordion-FpUQMiXV.js} +1 -1
  27. package/dist/client/assets/agent-icon-CxiN-PMV.js +1 -0
  28. package/dist/client/assets/{agents-list-EtMSypXC.js → agents-list-C7OZID3w.js} +1 -1
  29. package/dist/client/assets/ai-providers-BTFQDMp3.js +1 -0
  30. package/dist/client/assets/{alert-dialog-CvUq9c2l.js → alert-dialog-C9VS4Tm4.js} +1 -1
  31. package/dist/client/assets/{auth-catchall-C2AFIXKV.js → auth-catchall-Bns0gw3s.js} +1 -1
  32. package/dist/client/assets/{automation-list-row-srgvCKZh.js → automation-list-row-BcStn6T3.js} +1 -1
  33. package/dist/client/assets/{automations-Dp2hsJvG.js → automations-CgsrNnd6.js} +1 -1
  34. package/dist/client/assets/{avatar-BAGLgwIy.js → avatar-BtIUeZzk.js} +1 -1
  35. package/dist/client/assets/{badge-Csg5fgRc.js → badge-CiNJMavT.js} +1 -1
  36. package/dist/client/assets/{brand-context-D7GISA6v.js → brand-context-B9-s9Xpu.js} +1 -1
  37. package/dist/client/assets/{card-bx_QeXw_.js → card-BLvmImYq.js} +1 -1
  38. package/dist/client/assets/{chat-context-OvrSchhz.js → chat-context-Bx9m79lL.js} +1 -1
  39. package/dist/client/assets/{checkbox-C7KSBfZr.js → checkbox-CRVR_ot1.js} +1 -1
  40. package/dist/client/assets/{collection-detail-BcTctJfQ.js → collection-detail-D4nuXZXV.js} +1 -1
  41. package/dist/client/assets/{collection-display-button-B4SGVjCw.js → collection-display-button-BuSwjRsM.js} +1 -1
  42. package/dist/client/assets/{collection-search-DOj_zhXC.js → collection-search-DoAFbLqs.js} +1 -1
  43. package/dist/client/assets/{collection-table-wrapper-C7ZPBElG.js → collection-table-wrapper-DRpY-ndk.js} +1 -1
  44. package/dist/client/assets/{collection-tabs-DrO0tDqW.js → collection-tabs-0TZKhC7x.js} +1 -1
  45. package/dist/client/assets/{collections-DRefuj7X.js → collections-DAiJZOiv.js} +1 -1
  46. package/dist/client/assets/{command-CGYZopFY.js → command-BD_eOk-8.js} +1 -1
  47. package/dist/client/assets/{connection-card-x5-U4xYO.js → connection-card-C4AfupKS.js} +1 -1
  48. package/dist/client/assets/{connection-detail-DNT7n-qD.js → connection-detail-BOwwMlXo.js} +1 -1
  49. package/dist/client/assets/{connection-form-helpers-Cieg3At7.js → connection-form-helpers-QCTlKFgF.js} +1 -1
  50. package/dist/client/assets/{connections-CcMp0k3e.js → connections-BjoOQtn5.js} +1 -1
  51. package/dist/client/assets/{constants-DfNucTio.js → constants-CA_0oD0v.js} +4 -4
  52. package/dist/client/assets/{constants-BTGWOBGG.js → constants-DNupv1Il.js} +1 -1
  53. package/dist/client/assets/{dialog-CDZoEVTf.js → dialog-Do5tt2AM.js} +1 -1
  54. package/dist/client/assets/{drawer-BtA5XqsS.js → drawer-CBGNhyg_.js} +1 -1
  55. package/dist/client/assets/{dropdown-menu-DU8JG2pk.js → dropdown-menu-YCgfVPDE.js} +1 -1
  56. package/dist/client/assets/{dynamic-plugin-layout-DI-gMMKE.js → dynamic-plugin-layout-DyQRK4xn.js} +1 -1
  57. package/dist/client/assets/{empty-state-B2WkME-3.js → empty-state-CQYaNwoK.js} +1 -1
  58. package/dist/client/assets/{empty-state-BxCE5vnH.js → empty-state-v8eFhsr-.js} +1 -1
  59. package/dist/client/assets/{extract-connection-data-DBjTfzuX.js → extract-connection-data-BUe7uD61.js} +1 -1
  60. package/dist/client/assets/{features-BTMuaR90.js → features-DCMNUsWH.js} +1 -1
  61. package/dist/client/assets/{form-nehB0yqt.js → form-CxxwnlP0.js} +1 -1
  62. package/dist/client/assets/{general-aaZSKs7j.js → general-oBb9oBV3.js} +1 -1
  63. package/dist/client/assets/{index-FCEJcMKv.js → index-2HrmMP-L.js} +31 -31
  64. package/dist/client/assets/{index-BFKRaI9q.js → index-3qazylEt.js} +1 -1
  65. package/dist/client/assets/{index-DkLXfxeF.js → index-B66cimzy.js} +2 -2
  66. package/dist/client/assets/{index-DvGOE4TR.js → index-B_SuozHK.js} +1 -1
  67. package/dist/client/assets/{index-A1TjNoro.js → index-BzPv7Dhu.js} +1 -1
  68. package/dist/client/assets/{index-0Nuumosr.js → index-CSgeCYxL.js} +1 -1
  69. package/dist/client/assets/{index-BD-lTLoS.js → index-CT3_Tk81.js} +1 -1
  70. package/dist/client/assets/{index-C7LpArfe.js → index-DBUcZB2f.js} +1 -1
  71. package/dist/client/assets/{index-nsskrYaZ.js → index-DCHDqkUk.js} +1 -1
  72. package/dist/client/assets/index-DHRo5LVc.css +1 -0
  73. package/dist/client/assets/{index-CFqkoEQr.js → index-DRqrJul_.js} +1 -1
  74. package/dist/client/assets/{infiniteQueryObserver-VUPo5ONC.js → infiniteQueryObserver-BMqyJ-TR.js} +1 -1
  75. package/dist/client/assets/{input-Dxp3-aWz.js → input-n-tkcD47.js} +1 -1
  76. package/dist/client/assets/integration-icon-DMDIiedF.js +1 -0
  77. package/dist/client/assets/{label-BVoDYtUr.js → label-BtcNLrPM.js} +1 -1
  78. package/dist/client/assets/{layout-C9Y7P28P.js → layout-Db9ocR8l.js} +1 -1
  79. package/dist/client/assets/{lean-canvas-recruit-modal-N8EVMVv5.js → lean-canvas-recruit-modal-D_J2ca55.js} +2 -2
  80. package/dist/client/assets/{login-kx3MQEcu.js → login-44n9MoF6.js} +1 -1
  81. package/dist/client/assets/{members-BucBnRu5.js → members-DVv4q0sB.js} +1 -1
  82. package/dist/client/assets/{monaco-editor-WwGGEq4E.js → monaco-editor-BArWst-4.js} +1 -1
  83. package/dist/client/assets/{monitoring-stats-row-D5uhoKE2.js → monitoring-stats-row-DwT9f7ma.js} +1 -1
  84. package/dist/client/assets/{oauth-callback-BB1bfQ0C.js → oauth-callback-ZWFD-c9z.js} +1 -1
  85. package/dist/client/assets/{oauth-callback-ai-provider-Cx11JY4J.js → oauth-callback-ai-provider-DvgS7JVs.js} +1 -1
  86. package/dist/client/assets/{onboarding-CRDp-7ts.js → onboarding-Bx7D7eeN.js} +1 -1
  87. package/dist/client/assets/{org-layout-DWgxefUR.js → org-layout-C1WQZ86m.js} +1 -1
  88. package/dist/client/assets/{org-plugin-layout-B0IS-vI9.js → org-plugin-layout-aVinWGGP.js} +1 -1
  89. package/dist/client/assets/{plugin-empty-state-C9Il8L-B.js → plugin-empty-state-7geUhVaf.js} +1 -1
  90. package/dist/client/assets/{plugin-header-DF-027xA.js → plugin-header-C1Y6Yac2.js} +1 -1
  91. package/dist/client/assets/{plugin-layout-CQviDmLQ.js → plugin-layout-ClqwcLfX.js} +1 -1
  92. package/dist/client/assets/{popover-_s_tQK3Z.js → popover-XBsYrCQB.js} +1 -1
  93. package/dist/client/assets/{profile-BAAvq5PA.js → profile-DLXMWz7I.js} +1 -1
  94. package/dist/client/assets/{project-app-view-CWfRTdtF.js → project-app-view-BWaWLQ1-.js} +1 -1
  95. package/dist/client/assets/registry-fqaSl7FI.js +2 -0
  96. package/dist/client/assets/{registry-layout-DQKjQh-i.js → registry-layout-BOqFx2Hr.js} +1 -1
  97. package/dist/client/assets/{required-auth-layout-CXhuopzx.js → required-auth-layout-Q3YyHmAw.js} +1 -1
  98. package/dist/client/assets/{reset-password-DZzWPbSN.js → reset-password-Ben4hB-3.js} +1 -1
  99. package/dist/client/assets/{scroll-area-hAa33XcH.js → scroll-area-BdtE1vuO.js} +1 -1
  100. package/dist/client/assets/{search-input-C61ZvpPR.js → search-input-CmCwxjTX.js} +1 -1
  101. package/dist/client/assets/{select-DRB8tE_p.js → select-MIqG5BTZ.js} +1 -1
  102. package/dist/client/assets/{select-model-CP81c55I.js → select-model-Bg7ZIMS5.js} +1 -1
  103. package/dist/client/assets/settings-layout-DO-ULKWI.js +1 -0
  104. package/dist/client/assets/{shell-layout-DAhaxub0.js → shell-layout-xKLRos3t.js} +1 -1
  105. package/dist/client/assets/{skeleton-3sAmljB_.js → skeleton-BZTVNwC4.js} +1 -1
  106. package/dist/client/assets/{sso-BmmBRsro.js → sso-BT50WbJk.js} +1 -1
  107. package/dist/client/assets/{store-Dq5sv0Ed.js → store-CHDNsIdi.js} +1 -1
  108. package/dist/client/assets/store-registry-kH6JKRAv.js +2 -0
  109. package/dist/client/assets/{switch-DL640Ue6.js → switch-BI6s_uRk.js} +1 -1
  110. package/dist/client/assets/{table-Dbi2W1JY.js → table-WyfrKpOs.js} +1 -1
  111. package/dist/client/assets/{tabs-BByMWKiD.js → tabs-BK1mEgGf.js} +1 -1
  112. package/dist/client/assets/{task-status-CmmBYEnr.js → task-status-GcEPbgk8.js} +1 -1
  113. package/dist/client/assets/{textarea-DHlYLEvo.js → textarea-DVawcto0.js} +1 -1
  114. package/dist/client/assets/{toggle-group-CZBEspMS.js → toggle-group-wuBBOmnu.js} +1 -1
  115. package/dist/client/assets/{tools-list-DuX1kehi.js → tools-list-BgoIxxcE.js} +1 -1
  116. package/dist/client/assets/{types-DvTqSron.js → types-B9bcGYd-.js} +1 -1
  117. package/dist/client/assets/{use-ai-providers-ClS89y7X.js → use-ai-providers-CvVWYaQ8.js} +1 -1
  118. package/dist/client/assets/{use-collections-Dv9KwC2D.js → use-collections-daCmI1gf.js} +1 -1
  119. package/dist/client/assets/{use-connection-BmcG6E0P.js → use-connection-DX24Nzyd.js} +1 -1
  120. package/dist/client/assets/{use-copy-BkRNxEwn.js → use-copy-DnDrxF7p.js} +1 -1
  121. package/dist/client/assets/{use-create-virtual-mcp-CH8VJize.js → use-create-virtual-mcp-BXWOJHzA.js} +1 -1
  122. package/dist/client/assets/{use-decopilot-events-BwyevFSM.js → use-decopilot-events-CqJFbk0C.js} +1 -1
  123. package/dist/client/assets/{use-delete-connection-DfVzQzgY.js → use-delete-connection-BypWLqop.js} +1 -1
  124. package/dist/client/assets/{use-infinite-scroll-C0yn-Y6f.js → use-infinite-scroll-B2G1dNh-.js} +1 -1
  125. package/dist/client/assets/{use-list-state-D4yuEOh_.js → use-list-state-CUoBuePJ.js} +1 -1
  126. package/dist/client/assets/{use-mcp-tools-B1TR0GK5.js → use-mcp-tools-B7YQiceT.js} +1 -1
  127. package/dist/client/assets/{use-members-BSe-l5RV.js → use-members-CT_s4J5I.js} +1 -1
  128. package/dist/client/assets/{use-mobile-D7gj1mMa.js → use-mobile-CZZS48R8.js} +1 -1
  129. package/dist/client/assets/{use-navigate-to-agent-BOFYFzjJ.js → use-navigate-to-agent-DDSqcJhW.js} +1 -1
  130. package/dist/client/assets/{use-org-sso-BIx4Rk_Y.js → use-org-sso-CtXg6XR8.js} +1 -1
  131. package/dist/client/assets/{use-organization-settings-CcY3Vn-c.js → use-organization-settings-G7C4gwdM.js} +1 -1
  132. package/dist/client/assets/{use-registry-connections-G41Zams2.js → use-registry-connections-CpcHatqk.js} +1 -1
  133. package/dist/client/assets/{use-status-sounds-Cq0X5c0g.js → use-status-sounds-Bo8AWgrW.js} +1 -1
  134. package/dist/client/assets/{use-tasks-DqpLygvk.js → use-tasks-DBgVSqQb.js} +1 -1
  135. package/dist/client/assets/{use-view-mode-hEZSGIRN.js → use-view-mode-BtECwb27.js} +1 -1
  136. package/dist/client/assets/{use-virtual-mcp-B0nMlTA1.js → use-virtual-mcp-C6vsxMj0.js} +1 -1
  137. package/dist/client/assets/useInfiniteQuery-wZmQwXID.js +1 -0
  138. package/dist/client/assets/{user-B-lqJM9i.js → user-5NHpahbI.js} +1 -1
  139. package/dist/client/assets/{view-mode-toggle-DSiIUGAP.js → view-mode-toggle-DqCLjYVJ.js} +1 -1
  140. package/dist/client/assets/{workflow-C2B3R0BC.js → workflow-BXvm2wWf.js} +1 -1
  141. package/dist/client/assets/workflow-detail-C3H1TNiF.js +1 -0
  142. package/dist/client/index.html +2 -2
  143. package/dist/server/cli.js +54 -54
  144. package/dist/server/node_modules/onetime/index.d.ts +64 -0
  145. package/dist/server/node_modules/onetime/index.js +44 -0
  146. package/dist/server/node_modules/onetime/package.json +43 -0
  147. package/dist/server/node_modules/onetime/readme.md +94 -0
  148. package/dist/server/node_modules/postgres-array/index.d.ts +4 -0
  149. package/dist/server/node_modules/postgres-array/index.js +97 -0
  150. package/dist/server/node_modules/postgres-array/license +21 -0
  151. package/dist/server/node_modules/postgres-array/package.json +35 -0
  152. package/dist/server/node_modules/postgres-array/readme.md +43 -0
  153. package/dist/server/node_modules/postgres-bytea/index.js +33 -0
  154. package/dist/server/node_modules/postgres-bytea/license +21 -0
  155. package/dist/server/node_modules/postgres-bytea/package.json +34 -0
  156. package/dist/server/node_modules/postgres-bytea/readme.md +34 -0
  157. package/dist/server/server.js +1 -1
  158. package/package.json +1 -1
  159. package/dist/client/assets/agent-icon-OPgA0_xh.js +0 -1
  160. package/dist/client/assets/ai-providers-BkPyz71b.js +0 -1
  161. package/dist/client/assets/index-C_Ncklfg.css +0 -1
  162. package/dist/client/assets/integration-icon-DUduEF01.js +0 -1
  163. package/dist/client/assets/registry-BO9_rH5u.js +0 -2
  164. package/dist/client/assets/settings-layout-UJNERdUa.js +0 -1
  165. package/dist/client/assets/store-registry-BfCS4xd0.js +0 -2
  166. package/dist/client/assets/useInfiniteQuery-D-Fu49PN.js +0 -1
  167. package/dist/client/assets/workflow-detail-EmQ0YEuI.js +0 -1
  168. package/dist/server/node_modules/indent-string/index.d.ts +0 -38
  169. package/dist/server/node_modules/indent-string/index.js +0 -38
  170. package/dist/server/node_modules/indent-string/package.json +0 -40
  171. package/dist/server/node_modules/indent-string/readme.md +0 -73
  172. package/dist/server/node_modules/widest-line/index.d.ts +0 -12
  173. package/dist/server/node_modules/widest-line/index.js +0 -11
  174. package/dist/server/node_modules/widest-line/license +0 -9
  175. package/dist/server/node_modules/widest-line/package.json +0 -60
  176. package/dist/server/node_modules/widest-line/readme.md +0 -26
  177. /package/dist/server/node_modules/{indent-string → onetime}/license +0 -0
@@ -1 +1 @@
1
- import{e as S,s as w,o as E,bL as N,j as i,a6 as _,aH as K,K as C,z as R}from"./index-DkLXfxeF.js";import{P as y}from"./index-DvGOE4TR.js";import{b as T}from"./use-organization-settings-CcY3Vn-c.js";import{S as q}from"./switch-DL640Ue6.js";import{n as z}from"./Container-DbPEBCPd.js";import"./use-mobile-D7gj1mMa.js";import"./X-CyqBZIBt.js";import"./constants-DfNucTio.js";function Q(t){const e=S.c(33),{plugin:n,isEnabled:l,isSaving:c,description:d,label:f,icon:p,onToggle:g}=t;let u;e[0]!==l||e[1]!==c||e[2]!==g||e[3]!==n.id?(u=()=>!c&&g(n.id,!l),e[0]=l,e[1]=c,e[2]=g,e[3]=n.id,e[4]=u):u=e[4];const h=c?void 0:"pointer";let x;e[5]!==h?(x={cursor:h},e[5]=h,e[6]=x):x=e[6];let j;e[7]!==p?(j=p&&i.jsx("span",{className:"text-muted-foreground mt-0.5 shrink-0 [&>svg]:size-4",children:p}),e[7]=p,e[8]=j):j=e[8];let o;e[9]!==f?(o=i.jsx("p",{className:"text-sm font-medium text-foreground",children:f}),e[9]=f,e[10]=o):o=e[10];let m;e[11]!==d?(m=d&&i.jsx("p",{className:"text-xs text-muted-foreground mt-0.5 leading-relaxed",children:d}),e[11]=d,e[12]=m):m=e[12];let s;e[13]!==o||e[14]!==m?(s=i.jsxs("div",{className:"min-w-0",children:[o,m]}),e[13]=o,e[14]=m,e[15]=s):s=e[15];let r;e[16]!==j||e[17]!==s?(r=i.jsxs("div",{className:"flex items-start gap-3 min-w-0 flex-1",children:[j,s]}),e[16]=j,e[17]=s,e[18]=r):r=e[18];let a;e[19]!==g||e[20]!==n.id?(a=k=>g(n.id,k),e[19]=g,e[20]=n.id,e[21]=a):a=e[21];let b;e[22]!==l||e[23]!==c||e[24]!==a?(b=i.jsx("div",{onClick:$,className:"shrink-0",children:i.jsx(q,{checked:l,onCheckedChange:a,disabled:c})}),e[22]=l,e[23]=c,e[24]=a,e[25]=b):b=e[25];let P;e[26]!==b||e[27]!==r?(P=i.jsxs("div",{className:"flex items-center justify-between gap-6 py-4",children:[r,b]}),e[26]=b,e[27]=r,e[28]=P):P=e[28];let v;return e[29]!==u||e[30]!==P||e[31]!==x?(v=i.jsx("div",{className:"flex flex-col border-b border-border last:border-0",onClick:u,style:x,children:P}),e[29]=u,e[30]=P,e[31]=x,e[32]=v):v=e[32],v}function $(t){return t.stopPropagation()}function F(){const t=S.c(17),{org:e,project:n}=w(),l=E();let c;t[0]!==n.enabledPlugins?(c=n.enabledPlugins??[],t[0]=n.enabledPlugins,t[1]=c):c=t[1];const d=c,f=T();let p;t[2]!==e||t[3]!==n.slug||t[4]!==l?(p=()=>{l.invalidateQueries({queryKey:C.project(e.id,n.slug)}),l.invalidateQueries({queryKey:C.projects(e.id)}),l.invalidateQueries({predicate:s=>{const r=s.queryKey;return r[1]===e.id&&r[3]==="collection"&&r[4]==="VIRTUAL_MCP"}})},t[2]=e,t[3]=n.slug,t[4]=l,t[5]=p):p=t[5];const g=p;let u;t[6]!==g||t[7]!==f||t[8]!==d?(u=(s,r)=>{const a=new Set(d);r?a.add(s):a.delete(s),f.mutate({enabled_plugins:Array.from(a)},{onSuccess:g,onError:A})},t[6]=g,t[7]=f,t[8]=d,t[9]=u):u=t[9];const h=u,x=U,j=I;if(N.length===0){let s;return t[10]===Symbol.for("react.memo_cache_sentinel")?(s=i.jsx("p",{className:"text-sm text-muted-foreground",children:"No plugins available."}),t[10]=s):s=t[10],s}let o;t[11]!==h||t[12]!==f||t[13]!==d?(o=N.map(s=>{const r=x(s.id),a=j(s.id),b=d.includes(s.id);return i.jsx(Q,{plugin:s,isEnabled:b,isSaving:f.isPending,description:a,label:r?.label??s.id,icon:r?.icon??i.jsx(z,{size:14}),onToggle:h},s.id)}),t[11]=h,t[12]=f,t[13]=d,t[14]=o):o=t[14];let m;return t[15]!==o?(m=i.jsx("div",{className:"flex flex-col",children:o}),t[15]=o,t[16]=m):m=t[16],m}function I(t){return N.find(n=>n.id===t)?.description??null}function U(t){const e=_.find(l=>l.pluginId===t);if(e)return{label:e.label,icon:e.items[0]?.icon};const n=K.find(l=>l.pluginId===t);return n?{label:n.label,icon:n.icon}:null}function A(t){R.error("Failed to update plugin: "+(t instanceof Error?t.message:"Unknown error"))}function D(){const t=S.c(1);let e;return t[0]===Symbol.for("react.memo_cache_sentinel")?(e=i.jsx(y,{children:i.jsx(y.Content,{children:i.jsx(y.Body,{children:i.jsxs("div",{className:"flex flex-col gap-6",children:[i.jsx(y.Title,{children:"Plugins"}),i.jsx(F,{})]})})})}),t[0]=e):e=t[0],e}function J(){const t=S.c(1);let e;return t[0]===Symbol.for("react.memo_cache_sentinel")?(e=i.jsx(D,{}),t[0]=e):e=t[0],e}export{J as default};
1
+ import{e as S,s as w,o as E,bL as N,j as i,a6 as _,aH as K,K as C,z as R}from"./index-B66cimzy.js";import{P as y}from"./index-B_SuozHK.js";import{b as T}from"./use-organization-settings-G7C4gwdM.js";import{S as q}from"./switch-BI6s_uRk.js";import{n as z}from"./Container-DGdMzimP.js";import"./use-mobile-CZZS48R8.js";import"./X-BNbilc9H.js";import"./constants-CA_0oD0v.js";function Q(t){const e=S.c(33),{plugin:n,isEnabled:l,isSaving:c,description:d,label:f,icon:p,onToggle:g}=t;let u;e[0]!==l||e[1]!==c||e[2]!==g||e[3]!==n.id?(u=()=>!c&&g(n.id,!l),e[0]=l,e[1]=c,e[2]=g,e[3]=n.id,e[4]=u):u=e[4];const h=c?void 0:"pointer";let x;e[5]!==h?(x={cursor:h},e[5]=h,e[6]=x):x=e[6];let j;e[7]!==p?(j=p&&i.jsx("span",{className:"text-muted-foreground mt-0.5 shrink-0 [&>svg]:size-4",children:p}),e[7]=p,e[8]=j):j=e[8];let o;e[9]!==f?(o=i.jsx("p",{className:"text-sm font-medium text-foreground",children:f}),e[9]=f,e[10]=o):o=e[10];let m;e[11]!==d?(m=d&&i.jsx("p",{className:"text-xs text-muted-foreground mt-0.5 leading-relaxed",children:d}),e[11]=d,e[12]=m):m=e[12];let s;e[13]!==o||e[14]!==m?(s=i.jsxs("div",{className:"min-w-0",children:[o,m]}),e[13]=o,e[14]=m,e[15]=s):s=e[15];let r;e[16]!==j||e[17]!==s?(r=i.jsxs("div",{className:"flex items-start gap-3 min-w-0 flex-1",children:[j,s]}),e[16]=j,e[17]=s,e[18]=r):r=e[18];let a;e[19]!==g||e[20]!==n.id?(a=k=>g(n.id,k),e[19]=g,e[20]=n.id,e[21]=a):a=e[21];let b;e[22]!==l||e[23]!==c||e[24]!==a?(b=i.jsx("div",{onClick:$,className:"shrink-0",children:i.jsx(q,{checked:l,onCheckedChange:a,disabled:c})}),e[22]=l,e[23]=c,e[24]=a,e[25]=b):b=e[25];let P;e[26]!==b||e[27]!==r?(P=i.jsxs("div",{className:"flex items-center justify-between gap-6 py-4",children:[r,b]}),e[26]=b,e[27]=r,e[28]=P):P=e[28];let v;return e[29]!==u||e[30]!==P||e[31]!==x?(v=i.jsx("div",{className:"flex flex-col border-b border-border last:border-0",onClick:u,style:x,children:P}),e[29]=u,e[30]=P,e[31]=x,e[32]=v):v=e[32],v}function $(t){return t.stopPropagation()}function F(){const t=S.c(17),{org:e,project:n}=w(),l=E();let c;t[0]!==n.enabledPlugins?(c=n.enabledPlugins??[],t[0]=n.enabledPlugins,t[1]=c):c=t[1];const d=c,f=T();let p;t[2]!==e||t[3]!==n.slug||t[4]!==l?(p=()=>{l.invalidateQueries({queryKey:C.project(e.id,n.slug)}),l.invalidateQueries({queryKey:C.projects(e.id)}),l.invalidateQueries({predicate:s=>{const r=s.queryKey;return r[1]===e.id&&r[3]==="collection"&&r[4]==="VIRTUAL_MCP"}})},t[2]=e,t[3]=n.slug,t[4]=l,t[5]=p):p=t[5];const g=p;let u;t[6]!==g||t[7]!==f||t[8]!==d?(u=(s,r)=>{const a=new Set(d);r?a.add(s):a.delete(s),f.mutate({enabled_plugins:Array.from(a)},{onSuccess:g,onError:A})},t[6]=g,t[7]=f,t[8]=d,t[9]=u):u=t[9];const h=u,x=U,j=I;if(N.length===0){let s;return t[10]===Symbol.for("react.memo_cache_sentinel")?(s=i.jsx("p",{className:"text-sm text-muted-foreground",children:"No plugins available."}),t[10]=s):s=t[10],s}let o;t[11]!==h||t[12]!==f||t[13]!==d?(o=N.map(s=>{const r=x(s.id),a=j(s.id),b=d.includes(s.id);return i.jsx(Q,{plugin:s,isEnabled:b,isSaving:f.isPending,description:a,label:r?.label??s.id,icon:r?.icon??i.jsx(z,{size:14}),onToggle:h},s.id)}),t[11]=h,t[12]=f,t[13]=d,t[14]=o):o=t[14];let m;return t[15]!==o?(m=i.jsx("div",{className:"flex flex-col",children:o}),t[15]=o,t[16]=m):m=t[16],m}function I(t){return N.find(n=>n.id===t)?.description??null}function U(t){const e=_.find(l=>l.pluginId===t);if(e)return{label:e.label,icon:e.items[0]?.icon};const n=K.find(l=>l.pluginId===t);return n?{label:n.label,icon:n.icon}:null}function A(t){R.error("Failed to update plugin: "+(t instanceof Error?t.message:"Unknown error"))}function D(){const t=S.c(1);let e;return t[0]===Symbol.for("react.memo_cache_sentinel")?(e=i.jsx(y,{children:i.jsx(y.Content,{children:i.jsx(y.Body,{children:i.jsxs("div",{className:"flex flex-col gap-6",children:[i.jsx(y.Title,{children:"Plugins"}),i.jsx(F,{})]})})})}),t[0]=e):e=t[0],e}function J(){const t=S.c(1);let e;return t[0]===Symbol.for("react.memo_cache_sentinel")?(e=i.jsx(D,{}),t[0]=e):e=t[0],e}export{J as default};
@@ -1 +1 @@
1
- import{bV as C,e as f,j as c,aC as b,r as d,c as p,aZ as j,bW as v,bX as h}from"./index-DkLXfxeF.js";import{L as N}from"./label-BVoDYtUr.js";const E=C,g=d.createContext({}),M=t=>{const e=f.c(9);let s;e[0]!==t?({...s}=t,e[0]=t,e[1]=s):s=e[1];let o;e[2]!==s.name?(o={name:s.name},e[2]=s.name,e[3]=o):o=e[3];let n;e[4]!==s?(n=c.jsx(b,{...s}),e[4]=s,e[5]=n):n=e[5];let r;return e[6]!==o||e[7]!==n?(r=c.jsx(g.Provider,{value:o,children:n}),e[6]=o,e[7]=n,e[8]=r):r=e[8],r},x=()=>{const t=f.c(13),e=d.useContext(g),s=d.useContext($),{getFieldState:o}=v();let n;t[0]!==e.name?(n={name:e.name},t[0]=e.name,t[1]=n):n=t[1];const r=h(n);let a;t[2]!==e.name||t[3]!==r||t[4]!==o?(a=o(e.name,r),t[2]=e.name,t[3]=r,t[4]=o,t[5]=a):a=t[5];const l=a;if(!e)throw new Error("useFormField should be used within <FormField>");const{id:i}=s,m=`${i}-form-item`,F=`${i}-form-item-description`,I=`${i}-form-item-message`;let u;return t[6]!==e.name||t[7]!==l||t[8]!==i||t[9]!==m||t[10]!==F||t[11]!==I?(u={id:i,name:e.name,formItemId:m,formDescriptionId:F,formMessageId:I,...l},t[6]=e.name,t[7]=l,t[8]=i,t[9]=m,t[10]=F,t[11]=I,t[12]=u):u=t[12],u},$=d.createContext({});function w(t){const e=f.c(13);let s,o;e[0]!==t?({className:s,...o}=t,e[0]=t,e[1]=s,e[2]=o):(s=e[1],o=e[2]);const n=d.useId();let r;e[3]!==n?(r={id:n},e[3]=n,e[4]=r):r=e[4];let a;e[5]!==s?(a=p("grid gap-2",s),e[5]=s,e[6]=a):a=e[6];let l;e[7]!==o||e[8]!==a?(l=c.jsx("div",{"data-slot":"form-item",className:a,...o}),e[7]=o,e[8]=a,e[9]=l):l=e[9];let i;return e[10]!==r||e[11]!==l?(i=c.jsx($.Provider,{value:r,children:l}),e[10]=r,e[11]=l,e[12]=i):i=e[12],i}function L(t){const e=f.c(10);let s,o;e[0]!==t?({className:s,...o}=t,e[0]=t,e[1]=s,e[2]=o):(s=e[1],o=e[2]);const{error:n,formItemId:r}=x(),a=!!n;let l;e[3]!==s?(l=p("text-foreground data-[error=true]:text-destructive",s),e[3]=s,e[4]=l):l=e[4];let i;return e[5]!==r||e[6]!==o||e[7]!==a||e[8]!==l?(i=c.jsx(N,{"data-slot":"form-label","data-error":a,className:l,htmlFor:r,...o}),e[5]=r,e[6]=o,e[7]=a,e[8]=l,e[9]=i):i=e[9],i}function P(t){const e=f.c(7);let s;e[0]!==t?({...s}=t,e[0]=t,e[1]=s):s=e[1];const{error:o,formItemId:n,formDescriptionId:r,formMessageId:a}=x(),l=o?`${r} ${a}`:`${r}`,i=!!o;let m;return e[2]!==n||e[3]!==s||e[4]!==l||e[5]!==i?(m=c.jsx(j,{"data-slot":"form-control",id:n,"aria-describedby":l,"aria-invalid":i,...s}),e[2]=n,e[3]=s,e[4]=l,e[5]=i,e[6]=m):m=e[6],m}function y(t){const e=f.c(9);let s,o;e[0]!==t?({className:s,...o}=t,e[0]=t,e[1]=s,e[2]=o):(s=e[1],o=e[2]);const{formDescriptionId:n}=x();let r;e[3]!==s?(r=p("text-muted-foreground text-sm",s),e[3]=s,e[4]=r):r=e[4];let a;return e[5]!==n||e[6]!==o||e[7]!==r?(a=c.jsx("p",{"data-slot":"form-description",id:n,className:r,...o}),e[5]=n,e[6]=o,e[7]=r,e[8]=a):a=e[8],a}function R(t){const e=f.c(10);let s,o;e[0]!==t?({className:s,...o}=t,e[0]=t,e[1]=s,e[2]=o):(s=e[1],o=e[2]);const{error:n,formMessageId:r}=x(),a=n?String(n?.message??""):o.children;if(!a)return null;let l;e[3]!==s?(l=p("text-destructive text-sm",s),e[3]=s,e[4]=l):l=e[4];let i;return e[5]!==a||e[6]!==r||e[7]!==o||e[8]!==l?(i=c.jsx("p",{"data-slot":"form-message",id:r,className:l,...o,children:a}),e[5]=a,e[6]=r,e[7]=o,e[8]=l,e[9]=i):i=e[9],i}export{E as F,M as a,w as b,L as c,P as d,R as e,y as f};
1
+ import{bV as C,e as f,j as c,aC as b,r as d,c as p,aZ as j,bW as v,bX as h}from"./index-B66cimzy.js";import{L as N}from"./label-BtcNLrPM.js";const E=C,g=d.createContext({}),M=t=>{const e=f.c(9);let s;e[0]!==t?({...s}=t,e[0]=t,e[1]=s):s=e[1];let o;e[2]!==s.name?(o={name:s.name},e[2]=s.name,e[3]=o):o=e[3];let n;e[4]!==s?(n=c.jsx(b,{...s}),e[4]=s,e[5]=n):n=e[5];let r;return e[6]!==o||e[7]!==n?(r=c.jsx(g.Provider,{value:o,children:n}),e[6]=o,e[7]=n,e[8]=r):r=e[8],r},x=()=>{const t=f.c(13),e=d.useContext(g),s=d.useContext($),{getFieldState:o}=v();let n;t[0]!==e.name?(n={name:e.name},t[0]=e.name,t[1]=n):n=t[1];const r=h(n);let a;t[2]!==e.name||t[3]!==r||t[4]!==o?(a=o(e.name,r),t[2]=e.name,t[3]=r,t[4]=o,t[5]=a):a=t[5];const l=a;if(!e)throw new Error("useFormField should be used within <FormField>");const{id:i}=s,m=`${i}-form-item`,F=`${i}-form-item-description`,I=`${i}-form-item-message`;let u;return t[6]!==e.name||t[7]!==l||t[8]!==i||t[9]!==m||t[10]!==F||t[11]!==I?(u={id:i,name:e.name,formItemId:m,formDescriptionId:F,formMessageId:I,...l},t[6]=e.name,t[7]=l,t[8]=i,t[9]=m,t[10]=F,t[11]=I,t[12]=u):u=t[12],u},$=d.createContext({});function w(t){const e=f.c(13);let s,o;e[0]!==t?({className:s,...o}=t,e[0]=t,e[1]=s,e[2]=o):(s=e[1],o=e[2]);const n=d.useId();let r;e[3]!==n?(r={id:n},e[3]=n,e[4]=r):r=e[4];let a;e[5]!==s?(a=p("grid gap-2",s),e[5]=s,e[6]=a):a=e[6];let l;e[7]!==o||e[8]!==a?(l=c.jsx("div",{"data-slot":"form-item",className:a,...o}),e[7]=o,e[8]=a,e[9]=l):l=e[9];let i;return e[10]!==r||e[11]!==l?(i=c.jsx($.Provider,{value:r,children:l}),e[10]=r,e[11]=l,e[12]=i):i=e[12],i}function L(t){const e=f.c(10);let s,o;e[0]!==t?({className:s,...o}=t,e[0]=t,e[1]=s,e[2]=o):(s=e[1],o=e[2]);const{error:n,formItemId:r}=x(),a=!!n;let l;e[3]!==s?(l=p("text-foreground data-[error=true]:text-destructive",s),e[3]=s,e[4]=l):l=e[4];let i;return e[5]!==r||e[6]!==o||e[7]!==a||e[8]!==l?(i=c.jsx(N,{"data-slot":"form-label","data-error":a,className:l,htmlFor:r,...o}),e[5]=r,e[6]=o,e[7]=a,e[8]=l,e[9]=i):i=e[9],i}function P(t){const e=f.c(7);let s;e[0]!==t?({...s}=t,e[0]=t,e[1]=s):s=e[1];const{error:o,formItemId:n,formDescriptionId:r,formMessageId:a}=x(),l=o?`${r} ${a}`:`${r}`,i=!!o;let m;return e[2]!==n||e[3]!==s||e[4]!==l||e[5]!==i?(m=c.jsx(j,{"data-slot":"form-control",id:n,"aria-describedby":l,"aria-invalid":i,...s}),e[2]=n,e[3]=s,e[4]=l,e[5]=i,e[6]=m):m=e[6],m}function y(t){const e=f.c(9);let s,o;e[0]!==t?({className:s,...o}=t,e[0]=t,e[1]=s,e[2]=o):(s=e[1],o=e[2]);const{formDescriptionId:n}=x();let r;e[3]!==s?(r=p("text-muted-foreground text-sm",s),e[3]=s,e[4]=r):r=e[4];let a;return e[5]!==n||e[6]!==o||e[7]!==r?(a=c.jsx("p",{"data-slot":"form-description",id:n,className:r,...o}),e[5]=n,e[6]=o,e[7]=r,e[8]=a):a=e[8],a}function R(t){const e=f.c(10);let s,o;e[0]!==t?({className:s,...o}=t,e[0]=t,e[1]=s,e[2]=o):(s=e[1],o=e[2]);const{error:n,formMessageId:r}=x(),a=n?String(n?.message??""):o.children;if(!a)return null;let l;e[3]!==s?(l=p("text-destructive text-sm",s),e[3]=s,e[4]=l):l=e[4];let i;return e[5]!==a||e[6]!==r||e[7]!==o||e[8]!==l?(i=c.jsx("p",{"data-slot":"form-message",id:r,className:l,...o,children:a}),e[5]=a,e[6]=r,e[7]=o,e[8]=l,e[9]=i):i=e[9],i}export{E as F,M as a,w as b,L as c,P as d,R as e,y as f};
@@ -1 +1 @@
1
- import{e as J,r as V,z as C,j as s,B as T,f as ie,s as Y,o as H,x as ne,w as oe,a as U,t as w,K as B,b as W,v as le,y as Q,n as re}from"./index-DkLXfxeF.js";import{P as $}from"./index-DvGOE4TR.js";import{C as X,b as ee,c as te,a as se,d as ce,e as de}from"./card-bx_QeXw_.js";import{I as Z}from"./input-Dxp3-aWz.js";import{L as R}from"./label-BVoDYtUr.js";import{i as me}from"./Upload01-CAASdeK2.js";import{i as ue}from"./X-CyqBZIBt.js";import{u as K}from"./unwrap-tool-result-BYXdCQMg.js";import{S as ge,u as xe}from"./constants-DfNucTio.js";import{S as fe}from"./switch-DL640Ue6.js";import"./use-mobile-D7gj1mMa.js";function he(e){const t=J.c(28),{value:g,onChange:r,name:j,disabled:a}=e,c=V.useRef(null);let x;t[0]!==r?(x=_=>{const z=_.target.files?.[0];if(z){if(z.size>2097152){C.error("Image must be smaller than 2MB");return}const p=new FileReader;p.onerror=()=>{const S=p.error;console.error("FileReader error:",S),C.error(S?.message||"Failed to read image file. Please try again."),c.current&&(c.current.value="")},p.onloadend=()=>{p.readyState===FileReader.DONE&&p.result&&r(p.result),c.current&&(c.current.value="")},p.readAsDataURL(z)}},t[0]=r,t[1]=x):x=t[1];const y=x;let m;t[2]===Symbol.for("react.memo_cache_sentinel")?(m=()=>{c.current?.click()},t[2]=m):m=t[2];const n=m;let f;t[3]!==r?(f=_=>{_.stopPropagation(),r("")},t[3]=r,t[4]=f):f=t[4];const d=f;let l;t[5]!==a||t[6]!==y?(l=s.jsx("input",{type:"file",ref:c,className:"hidden",accept:"image/*",onChange:y,disabled:a}),t[5]=a,t[6]=y,t[7]=l):l=t[7];let o;t[8]!==a||t[9]!==d||t[10]!==j||t[11]!==g?(o=g?s.jsxs("div",{className:"relative group",children:[s.jsx("div",{className:"h-20 w-20 rounded-lg border border-border bg-muted/20 overflow-hidden",children:s.jsx("img",{src:g,alt:j||"Logo",className:"w-full h-full object-cover"})}),s.jsx("button",{type:"button",onClick:d,disabled:a,className:"absolute -top-2 -right-2 h-6 w-6 rounded-full bg-destructive text-destructive-foreground opacity-0 group-hover:opacity-100 transition-opacity flex items-center justify-center",children:s.jsx(ue,{className:"h-3 w-3"})})]}):s.jsxs("button",{type:"button",onClick:n,disabled:a,className:"h-20 w-20 rounded-lg border-2 border-dashed border-border hover:border-foreground/50 hover:bg-accent/50 transition-colors flex flex-col items-center justify-center gap-1 text-muted-foreground hover:text-foreground disabled:opacity-50 disabled:pointer-events-none",children:[s.jsx(me,{className:"h-5 w-5"}),s.jsx("span",{className:"text-xs",children:"Upload"})]}),t[8]=a,t[9]=d,t[10]=j,t[11]=g,t[12]=o):o=t[12];const E=g?"Change Logo":"Upload Logo";let b;t[13]!==a||t[14]!==E?(b=s.jsx(T,{type:"button",variant:"outline",size:"sm",onClick:n,disabled:a,className:"mb-2",children:E}),t[13]=a,t[14]=E,t[15]=b):b=t[15];let N;t[16]!==a||t[17]!==d||t[18]!==g?(N=g&&s.jsx(T,{type:"button",variant:"ghost",size:"sm",onClick:d,disabled:a,className:"ml-2",children:"Remove"}),t[16]=a,t[17]=d,t[18]=g,t[19]=N):N=t[19];let u;t[20]===Symbol.for("react.memo_cache_sentinel")?(u=s.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"Recommended: Square image, at least 200x200px. Max 2MB."}),t[20]=u):u=t[20];let h;t[21]!==b||t[22]!==N?(h=s.jsxs("div",{className:"flex-1",children:[b,N,u]}),t[21]=b,t[22]=N,t[23]=h):h=t[23];let v;return t[24]!==h||t[25]!==l||t[26]!==o?(v=s.jsxs("div",{className:"flex items-start gap-4",children:[l,o,h]}),t[24]=h,t[25]=l,t[26]=o,t[27]=v):v=t[27],v}const pe=le({name:Q().min(1,"Name is required").max(255,"Name is too long"),slug:Q().min(1,"Slug is required").max(50,"Slug is too long").regex(/^[a-z0-9-]+$/,"Slug must contain only lowercase letters, numbers, and hyphens"),logo:Q().optional()});function je(){const e=ie(),{org:t}=Y(),g=H(),[r,j]=V.useState(!1),a=ne({resolver:oe(pe),values:{name:t.name??"",slug:t.slug??"",logo:t.logo??""}}),c=U({mutationFn:async n=>{const f={name:n.name,slug:n.slug};n.logo&&(f.logo=n.logo);const d=await W.organization.update({organizationId:t.id,data:f});if(d?.error)throw new Error(d.error.message||"Failed to update organization");return d},onSuccess:n=>{w("organization_settings_updated",{organization_id:t.id,fields:Object.keys(a.formState.dirtyFields)}),g.invalidateQueries({queryKey:B.organizations()}),g.invalidateQueries({queryKey:B.activeOrganization(t.slug)}),C.success("Organization settings updated successfully"),n?.data?.slug&&n.data.slug!==t.slug&&e({to:"/$org/settings/general",params:{org:n.data.slug}})},onError:n=>{w("organization_settings_update_failed",{organization_id:t.id,fields:Object.keys(a.formState.dirtyFields),error:n instanceof Error?n.message:String(n)}),C.error(n instanceof Error?n.message:"Failed to update organization")},onSettled:()=>{j(!1)}}),x=n=>{j(!0),c.mutate(n)},y=a.formState.isDirty,m=a.formState.errors;return s.jsx("form",{onSubmit:a.handleSubmit(x),className:"flex flex-col gap-6",children:s.jsxs(X,{className:"p-6",children:[s.jsx(ee,{className:"p-0",children:s.jsx(te,{className:"text-sm",children:"Overview"})}),s.jsxs(se,{className:"flex flex-col gap-6 p-0",children:[s.jsxs("div",{className:"flex flex-col gap-1.5",children:[s.jsx(R,{className:"text-xs text-muted-foreground",children:"Logo"}),s.jsx(he,{value:a.watch("logo"),onChange:n=>a.setValue("logo",n??"",{shouldDirty:!0}),name:a.watch("name"),disabled:r}),m.logo&&s.jsx("p",{className:"text-xs text-destructive",children:m.logo.message})]}),s.jsxs("div",{className:"grid grid-cols-2 gap-5",children:[s.jsxs("div",{className:"flex flex-col gap-1.5",children:[s.jsx(R,{htmlFor:"org-name",className:"text-xs text-muted-foreground",children:"Organization name"}),s.jsx(Z,{id:"org-name",...a.register("name"),placeholder:"Organization name",disabled:r}),m.name&&s.jsx("p",{className:"text-xs text-destructive",children:m.name.message})]}),s.jsxs("div",{className:"flex flex-col gap-1.5",children:[s.jsx(R,{htmlFor:"org-slug",className:"text-xs text-muted-foreground",children:"Slug"}),s.jsx(Z,{id:"org-slug",...a.register("slug"),placeholder:"my-organization",disabled:r,onChange:n=>{const f=n.target.value.toLowerCase().replace(/[^a-z0-9-]/g,"");a.setValue("slug",f,{shouldDirty:!0,shouldTouch:!0,shouldValidate:!0})}}),s.jsx("p",{className:"text-xs text-muted-foreground",children:"Only lowercase letters, numbers, and hyphens."}),m.slug&&s.jsx("p",{className:"text-xs text-destructive",children:m.slug.message})]})]})]}),y&&s.jsxs(ce,{className:"p-0 pt-2 gap-2",children:[s.jsx(T,{type:"submit",disabled:r,children:r?"Saving…":"Save"}),s.jsx(T,{type:"button",variant:"outline",onClick:()=>a.reset(),disabled:r,children:"Cancel"})]})]})})}function Ne(){const e=J.c(62),{org:t}=Y(),{data:g}=W.useSession(),r=H();let j;e[0]!==t.id?(j={connectionId:ge,orgId:t.id},e[0]=t.id,e[1]=j):j=e[1];const a=xe(j);let c;e[2]!==t.id?(c=B.organizationDomain(t.id),e[2]=t.id,e[3]=c):c=e[3];let x;e[4]!==a?(x=async()=>{const i=await a.callTool({name:"ORGANIZATION_DOMAIN_GET",arguments:{}});return K(i)},e[4]=a,e[5]=x):x=e[5];let y;e[6]!==c||e[7]!==x?(y={queryKey:c,queryFn:x},e[6]=c,e[7]=x,e[8]=y):y=e[8];const{data:m,isPending:n}=re(y),f=g?.user?.email??"";let d;e[9]!==f?(d=f.split("@")[1]?.toLowerCase()??"",e[9]=f,e[10]=d):d=e[10];const l=d,o=m?.domain??null,E=m?.autoJoinEnabled??!1,b=l&&l!==o;let N;e[11]!==t.id||e[12]!==r?(N=()=>r.invalidateQueries({queryKey:B.organizationDomain(t.id)}),e[11]=t.id,e[12]=r,e[13]=N):N=e[13];const u=N;let h;e[14]!==a||e[15]!==l?(h=async()=>{const i=await a.callTool({name:"ORGANIZATION_DOMAIN_SET",arguments:{domain:l,autoJoinEnabled:!1}});return K(i)},e[14]=a,e[15]=l,e[16]=h):h=e[16];let v;e[17]!==u||e[18]!==t.id||e[19]!==l?(v=()=>{w("organization_domain_claimed",{organization_id:t.id,email_domain:l}),u(),C.success("Domain claimed")},e[17]=u,e[18]=t.id,e[19]=l,e[20]=v):v=e[20];let _;e[21]!==t.id||e[22]!==l?(_=i=>{w("organization_domain_claim_failed",{organization_id:t.id,email_domain:l,error:i instanceof Error?i.message:String(i)}),C.error(i instanceof Error?i.message:"Failed to claim domain")},e[21]=t.id,e[22]=l,e[23]=_):_=e[23];let z;e[24]!==h||e[25]!==v||e[26]!==_?(z={mutationFn:h,onSuccess:v,onError:_},e[24]=h,e[25]=v,e[26]=_,e[27]=z):z=e[27];const p=U(z);let S;e[28]!==a?(S=async()=>{const i=await a.callTool({name:"ORGANIZATION_DOMAIN_CLEAR",arguments:{}});return K(i)},e[28]=a,e[29]=S):S=e[29];let O;e[30]!==o||e[31]!==u||e[32]!==t.id?(O=()=>{w("organization_domain_cleared",{organization_id:t.id,email_domain:o}),u(),C.success("Domain removed")},e[30]=o,e[31]=u,e[32]=t.id,e[33]=O):O=e[33];let D;e[34]!==o||e[35]!==t.id?(D=i=>{w("organization_domain_clear_failed",{organization_id:t.id,email_domain:o,error:i instanceof Error?i.message:String(i)}),C.error(i instanceof Error?i.message:"Failed to remove domain")},e[34]=o,e[35]=t.id,e[36]=D):D=e[36];let k;e[37]!==S||e[38]!==O||e[39]!==D?(k={mutationFn:S,onSuccess:O,onError:D},e[37]=S,e[38]=O,e[39]=D,e[40]=k):k=e[40];const M=U(k);let F;e[41]!==a||e[42]!==o||e[43]!==t.id?(F=async i=>{if(!o)return;w("organization_auto_join_toggled",{organization_id:t.id,enabled:i});const ae=await a.callTool({name:"ORGANIZATION_DOMAIN_UPDATE",arguments:{autoJoinEnabled:i}});return K(ae)},e[41]=a,e[42]=o,e[43]=t.id,e[44]=F):F=e[44];let I;e[45]!==u?(I=()=>{u(),C.success("Auto-join setting updated")},e[45]=u,e[46]=I):I=e[46];let A;e[47]!==t.id?(A=i=>{w("organization_auto_join_toggle_failed",{organization_id:t.id,error:i instanceof Error?i.message:String(i)}),C.error(i instanceof Error?i.message:"Failed to update auto-join")},e[47]=t.id,e[48]=A):A=e[48];let P;e[49]!==F||e[50]!==I||e[51]!==A?(P={mutationFn:F,onSuccess:I,onError:A},e[49]=F,e[50]=I,e[51]=A,e[52]=P):P=e[52];const L=U(P);if(n)return null;let q;e[53]===Symbol.for("react.memo_cache_sentinel")?(q=s.jsxs(ee,{className:"p-0",children:[s.jsx(te,{className:"text-sm",children:"Email Domain"}),s.jsx(de,{className:"text-xs",children:"Claim your company's email domain so new users with matching emails can automatically join this organization."})]}),e[53]=q):q=e[53];let G;return e[54]!==E||e[55]!==b||e[56]!==M||e[57]!==o||e[58]!==p||e[59]!==L||e[60]!==l?(G=s.jsxs(X,{className:"p-6",children:[q,s.jsx(se,{className:"flex flex-col gap-4 p-0 pt-4",children:o?s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsxs("div",{className:"flex-1",children:[s.jsx(R,{className:"text-xs text-muted-foreground",children:"Claimed domain"}),s.jsx("p",{className:"text-sm font-medium",children:o})]}),s.jsx(T,{variant:"outline",size:"sm",onClick:()=>M.mutate(),disabled:M.isPending,children:"Remove"})]}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsxs("div",{children:[s.jsx(R,{className:"text-xs",children:"Auto-join"}),s.jsxs("p",{className:"text-xs text-muted-foreground",children:["Users with @",o," emails will automatically join this organization on signup."]})]}),s.jsx(fe,{checked:E,onCheckedChange:i=>L.mutate(i),disabled:L.isPending})]})]}):b?s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsxs("div",{className:"flex-1",children:[s.jsx(R,{className:"text-xs text-muted-foreground",children:"Your domain"}),s.jsx("p",{className:"text-sm font-medium",children:l})]}),s.jsx(T,{size:"sm",onClick:()=>p.mutate(),disabled:p.isPending,children:p.isPending?"Claiming...":"Claim Domain"})]}):s.jsx("p",{className:"text-xs text-muted-foreground",children:"No corporate email domain detected."})})]}),e[54]=E,e[55]=b,e[56]=M,e[57]=o,e[58]=p,e[59]=L,e[60]=l,e[61]=G):G=e[61],G}function ve(){const e=J.c(1);let t;return e[0]===Symbol.for("react.memo_cache_sentinel")?(t=s.jsx($,{children:s.jsx($.Content,{children:s.jsx($.Body,{children:s.jsxs("div",{className:"flex flex-col gap-6",children:[s.jsx($.Title,{children:"Organization"}),s.jsx(je,{}),s.jsx(Ne,{})]})})})}),e[0]=t):t=e[0],t}function Ie(){const e=J.c(1);let t;return e[0]===Symbol.for("react.memo_cache_sentinel")?(t=s.jsx(ve,{}),e[0]=t):t=e[0],t}export{Ie as default};
1
+ import{e as J,r as V,z as C,j as s,B as T,f as ie,s as Y,o as H,x as ne,w as oe,a as U,t as w,K as B,b as W,v as le,y as Q,n as re}from"./index-B66cimzy.js";import{P as $}from"./index-B_SuozHK.js";import{C as X,b as ee,c as te,a as se,d as ce,e as de}from"./card-BLvmImYq.js";import{I as Z}from"./input-n-tkcD47.js";import{L as R}from"./label-BtcNLrPM.js";import{i as me}from"./Upload01-AtFwS7_4.js";import{i as ue}from"./X-BNbilc9H.js";import{u as K}from"./unwrap-tool-result-BYXdCQMg.js";import{S as ge,u as xe}from"./constants-CA_0oD0v.js";import{S as fe}from"./switch-BI6s_uRk.js";import"./use-mobile-CZZS48R8.js";function he(e){const t=J.c(28),{value:g,onChange:r,name:j,disabled:a}=e,c=V.useRef(null);let x;t[0]!==r?(x=_=>{const z=_.target.files?.[0];if(z){if(z.size>2097152){C.error("Image must be smaller than 2MB");return}const p=new FileReader;p.onerror=()=>{const S=p.error;console.error("FileReader error:",S),C.error(S?.message||"Failed to read image file. Please try again."),c.current&&(c.current.value="")},p.onloadend=()=>{p.readyState===FileReader.DONE&&p.result&&r(p.result),c.current&&(c.current.value="")},p.readAsDataURL(z)}},t[0]=r,t[1]=x):x=t[1];const y=x;let m;t[2]===Symbol.for("react.memo_cache_sentinel")?(m=()=>{c.current?.click()},t[2]=m):m=t[2];const n=m;let f;t[3]!==r?(f=_=>{_.stopPropagation(),r("")},t[3]=r,t[4]=f):f=t[4];const d=f;let l;t[5]!==a||t[6]!==y?(l=s.jsx("input",{type:"file",ref:c,className:"hidden",accept:"image/*",onChange:y,disabled:a}),t[5]=a,t[6]=y,t[7]=l):l=t[7];let o;t[8]!==a||t[9]!==d||t[10]!==j||t[11]!==g?(o=g?s.jsxs("div",{className:"relative group",children:[s.jsx("div",{className:"h-20 w-20 rounded-lg border border-border bg-muted/20 overflow-hidden",children:s.jsx("img",{src:g,alt:j||"Logo",className:"w-full h-full object-cover"})}),s.jsx("button",{type:"button",onClick:d,disabled:a,className:"absolute -top-2 -right-2 h-6 w-6 rounded-full bg-destructive text-destructive-foreground opacity-0 group-hover:opacity-100 transition-opacity flex items-center justify-center",children:s.jsx(ue,{className:"h-3 w-3"})})]}):s.jsxs("button",{type:"button",onClick:n,disabled:a,className:"h-20 w-20 rounded-lg border-2 border-dashed border-border hover:border-foreground/50 hover:bg-accent/50 transition-colors flex flex-col items-center justify-center gap-1 text-muted-foreground hover:text-foreground disabled:opacity-50 disabled:pointer-events-none",children:[s.jsx(me,{className:"h-5 w-5"}),s.jsx("span",{className:"text-xs",children:"Upload"})]}),t[8]=a,t[9]=d,t[10]=j,t[11]=g,t[12]=o):o=t[12];const E=g?"Change Logo":"Upload Logo";let b;t[13]!==a||t[14]!==E?(b=s.jsx(T,{type:"button",variant:"outline",size:"sm",onClick:n,disabled:a,className:"mb-2",children:E}),t[13]=a,t[14]=E,t[15]=b):b=t[15];let N;t[16]!==a||t[17]!==d||t[18]!==g?(N=g&&s.jsx(T,{type:"button",variant:"ghost",size:"sm",onClick:d,disabled:a,className:"ml-2",children:"Remove"}),t[16]=a,t[17]=d,t[18]=g,t[19]=N):N=t[19];let u;t[20]===Symbol.for("react.memo_cache_sentinel")?(u=s.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"Recommended: Square image, at least 200x200px. Max 2MB."}),t[20]=u):u=t[20];let h;t[21]!==b||t[22]!==N?(h=s.jsxs("div",{className:"flex-1",children:[b,N,u]}),t[21]=b,t[22]=N,t[23]=h):h=t[23];let v;return t[24]!==h||t[25]!==l||t[26]!==o?(v=s.jsxs("div",{className:"flex items-start gap-4",children:[l,o,h]}),t[24]=h,t[25]=l,t[26]=o,t[27]=v):v=t[27],v}const pe=le({name:Q().min(1,"Name is required").max(255,"Name is too long"),slug:Q().min(1,"Slug is required").max(50,"Slug is too long").regex(/^[a-z0-9-]+$/,"Slug must contain only lowercase letters, numbers, and hyphens"),logo:Q().optional()});function je(){const e=ie(),{org:t}=Y(),g=H(),[r,j]=V.useState(!1),a=ne({resolver:oe(pe),values:{name:t.name??"",slug:t.slug??"",logo:t.logo??""}}),c=U({mutationFn:async n=>{const f={name:n.name,slug:n.slug};n.logo&&(f.logo=n.logo);const d=await W.organization.update({organizationId:t.id,data:f});if(d?.error)throw new Error(d.error.message||"Failed to update organization");return d},onSuccess:n=>{w("organization_settings_updated",{organization_id:t.id,fields:Object.keys(a.formState.dirtyFields)}),g.invalidateQueries({queryKey:B.organizations()}),g.invalidateQueries({queryKey:B.activeOrganization(t.slug)}),C.success("Organization settings updated successfully"),n?.data?.slug&&n.data.slug!==t.slug&&e({to:"/$org/settings/general",params:{org:n.data.slug}})},onError:n=>{w("organization_settings_update_failed",{organization_id:t.id,fields:Object.keys(a.formState.dirtyFields),error:n instanceof Error?n.message:String(n)}),C.error(n instanceof Error?n.message:"Failed to update organization")},onSettled:()=>{j(!1)}}),x=n=>{j(!0),c.mutate(n)},y=a.formState.isDirty,m=a.formState.errors;return s.jsx("form",{onSubmit:a.handleSubmit(x),className:"flex flex-col gap-6",children:s.jsxs(X,{className:"p-6",children:[s.jsx(ee,{className:"p-0",children:s.jsx(te,{className:"text-sm",children:"Overview"})}),s.jsxs(se,{className:"flex flex-col gap-6 p-0",children:[s.jsxs("div",{className:"flex flex-col gap-1.5",children:[s.jsx(R,{className:"text-xs text-muted-foreground",children:"Logo"}),s.jsx(he,{value:a.watch("logo"),onChange:n=>a.setValue("logo",n??"",{shouldDirty:!0}),name:a.watch("name"),disabled:r}),m.logo&&s.jsx("p",{className:"text-xs text-destructive",children:m.logo.message})]}),s.jsxs("div",{className:"grid grid-cols-2 gap-5",children:[s.jsxs("div",{className:"flex flex-col gap-1.5",children:[s.jsx(R,{htmlFor:"org-name",className:"text-xs text-muted-foreground",children:"Organization name"}),s.jsx(Z,{id:"org-name",...a.register("name"),placeholder:"Organization name",disabled:r}),m.name&&s.jsx("p",{className:"text-xs text-destructive",children:m.name.message})]}),s.jsxs("div",{className:"flex flex-col gap-1.5",children:[s.jsx(R,{htmlFor:"org-slug",className:"text-xs text-muted-foreground",children:"Slug"}),s.jsx(Z,{id:"org-slug",...a.register("slug"),placeholder:"my-organization",disabled:r,onChange:n=>{const f=n.target.value.toLowerCase().replace(/[^a-z0-9-]/g,"");a.setValue("slug",f,{shouldDirty:!0,shouldTouch:!0,shouldValidate:!0})}}),s.jsx("p",{className:"text-xs text-muted-foreground",children:"Only lowercase letters, numbers, and hyphens."}),m.slug&&s.jsx("p",{className:"text-xs text-destructive",children:m.slug.message})]})]})]}),y&&s.jsxs(ce,{className:"p-0 pt-2 gap-2",children:[s.jsx(T,{type:"submit",disabled:r,children:r?"Saving…":"Save"}),s.jsx(T,{type:"button",variant:"outline",onClick:()=>a.reset(),disabled:r,children:"Cancel"})]})]})})}function Ne(){const e=J.c(62),{org:t}=Y(),{data:g}=W.useSession(),r=H();let j;e[0]!==t.id?(j={connectionId:ge,orgId:t.id},e[0]=t.id,e[1]=j):j=e[1];const a=xe(j);let c;e[2]!==t.id?(c=B.organizationDomain(t.id),e[2]=t.id,e[3]=c):c=e[3];let x;e[4]!==a?(x=async()=>{const i=await a.callTool({name:"ORGANIZATION_DOMAIN_GET",arguments:{}});return K(i)},e[4]=a,e[5]=x):x=e[5];let y;e[6]!==c||e[7]!==x?(y={queryKey:c,queryFn:x},e[6]=c,e[7]=x,e[8]=y):y=e[8];const{data:m,isPending:n}=re(y),f=g?.user?.email??"";let d;e[9]!==f?(d=f.split("@")[1]?.toLowerCase()??"",e[9]=f,e[10]=d):d=e[10];const l=d,o=m?.domain??null,E=m?.autoJoinEnabled??!1,b=l&&l!==o;let N;e[11]!==t.id||e[12]!==r?(N=()=>r.invalidateQueries({queryKey:B.organizationDomain(t.id)}),e[11]=t.id,e[12]=r,e[13]=N):N=e[13];const u=N;let h;e[14]!==a||e[15]!==l?(h=async()=>{const i=await a.callTool({name:"ORGANIZATION_DOMAIN_SET",arguments:{domain:l,autoJoinEnabled:!1}});return K(i)},e[14]=a,e[15]=l,e[16]=h):h=e[16];let v;e[17]!==u||e[18]!==t.id||e[19]!==l?(v=()=>{w("organization_domain_claimed",{organization_id:t.id,email_domain:l}),u(),C.success("Domain claimed")},e[17]=u,e[18]=t.id,e[19]=l,e[20]=v):v=e[20];let _;e[21]!==t.id||e[22]!==l?(_=i=>{w("organization_domain_claim_failed",{organization_id:t.id,email_domain:l,error:i instanceof Error?i.message:String(i)}),C.error(i instanceof Error?i.message:"Failed to claim domain")},e[21]=t.id,e[22]=l,e[23]=_):_=e[23];let z;e[24]!==h||e[25]!==v||e[26]!==_?(z={mutationFn:h,onSuccess:v,onError:_},e[24]=h,e[25]=v,e[26]=_,e[27]=z):z=e[27];const p=U(z);let S;e[28]!==a?(S=async()=>{const i=await a.callTool({name:"ORGANIZATION_DOMAIN_CLEAR",arguments:{}});return K(i)},e[28]=a,e[29]=S):S=e[29];let O;e[30]!==o||e[31]!==u||e[32]!==t.id?(O=()=>{w("organization_domain_cleared",{organization_id:t.id,email_domain:o}),u(),C.success("Domain removed")},e[30]=o,e[31]=u,e[32]=t.id,e[33]=O):O=e[33];let D;e[34]!==o||e[35]!==t.id?(D=i=>{w("organization_domain_clear_failed",{organization_id:t.id,email_domain:o,error:i instanceof Error?i.message:String(i)}),C.error(i instanceof Error?i.message:"Failed to remove domain")},e[34]=o,e[35]=t.id,e[36]=D):D=e[36];let k;e[37]!==S||e[38]!==O||e[39]!==D?(k={mutationFn:S,onSuccess:O,onError:D},e[37]=S,e[38]=O,e[39]=D,e[40]=k):k=e[40];const M=U(k);let F;e[41]!==a||e[42]!==o||e[43]!==t.id?(F=async i=>{if(!o)return;w("organization_auto_join_toggled",{organization_id:t.id,enabled:i});const ae=await a.callTool({name:"ORGANIZATION_DOMAIN_UPDATE",arguments:{autoJoinEnabled:i}});return K(ae)},e[41]=a,e[42]=o,e[43]=t.id,e[44]=F):F=e[44];let I;e[45]!==u?(I=()=>{u(),C.success("Auto-join setting updated")},e[45]=u,e[46]=I):I=e[46];let A;e[47]!==t.id?(A=i=>{w("organization_auto_join_toggle_failed",{organization_id:t.id,error:i instanceof Error?i.message:String(i)}),C.error(i instanceof Error?i.message:"Failed to update auto-join")},e[47]=t.id,e[48]=A):A=e[48];let P;e[49]!==F||e[50]!==I||e[51]!==A?(P={mutationFn:F,onSuccess:I,onError:A},e[49]=F,e[50]=I,e[51]=A,e[52]=P):P=e[52];const L=U(P);if(n)return null;let q;e[53]===Symbol.for("react.memo_cache_sentinel")?(q=s.jsxs(ee,{className:"p-0",children:[s.jsx(te,{className:"text-sm",children:"Email Domain"}),s.jsx(de,{className:"text-xs",children:"Claim your company's email domain so new users with matching emails can automatically join this organization."})]}),e[53]=q):q=e[53];let G;return e[54]!==E||e[55]!==b||e[56]!==M||e[57]!==o||e[58]!==p||e[59]!==L||e[60]!==l?(G=s.jsxs(X,{className:"p-6",children:[q,s.jsx(se,{className:"flex flex-col gap-4 p-0 pt-4",children:o?s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsxs("div",{className:"flex-1",children:[s.jsx(R,{className:"text-xs text-muted-foreground",children:"Claimed domain"}),s.jsx("p",{className:"text-sm font-medium",children:o})]}),s.jsx(T,{variant:"outline",size:"sm",onClick:()=>M.mutate(),disabled:M.isPending,children:"Remove"})]}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsxs("div",{children:[s.jsx(R,{className:"text-xs",children:"Auto-join"}),s.jsxs("p",{className:"text-xs text-muted-foreground",children:["Users with @",o," emails will automatically join this organization on signup."]})]}),s.jsx(fe,{checked:E,onCheckedChange:i=>L.mutate(i),disabled:L.isPending})]})]}):b?s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsxs("div",{className:"flex-1",children:[s.jsx(R,{className:"text-xs text-muted-foreground",children:"Your domain"}),s.jsx("p",{className:"text-sm font-medium",children:l})]}),s.jsx(T,{size:"sm",onClick:()=>p.mutate(),disabled:p.isPending,children:p.isPending?"Claiming...":"Claim Domain"})]}):s.jsx("p",{className:"text-xs text-muted-foreground",children:"No corporate email domain detected."})})]}),e[54]=E,e[55]=b,e[56]=M,e[57]=o,e[58]=p,e[59]=L,e[60]=l,e[61]=G):G=e[61],G}function ve(){const e=J.c(1);let t;return e[0]===Symbol.for("react.memo_cache_sentinel")?(t=s.jsx($,{children:s.jsx($.Content,{children:s.jsx($.Body,{children:s.jsxs("div",{className:"flex flex-col gap-6",children:[s.jsx($.Title,{children:"Organization"}),s.jsx(je,{}),s.jsx(Ne,{})]})})})}),e[0]=t):t=e[0],t}function Ie(){const e=J.c(1);let t;return e[0]===Symbol.for("react.memo_cache_sentinel")?(t=s.jsx(ve,{}),e[0]=t):t=e[0],t}export{Ie as default};