@exulu/frontend 1.0.3 → 1.1.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 (239) hide show
  1. package/dist/.next/BUILD_ID +1 -1
  2. package/dist/.next/app-build-manifest.json +192 -192
  3. package/dist/.next/app-path-routes-manifest.json +1 -1
  4. package/dist/.next/build-manifest.json +3 -3
  5. package/dist/.next/prerender-manifest.json +1 -1
  6. package/dist/.next/required-server-files.json +1 -1
  7. package/dist/.next/server/app/(application)/agents/edit/[id]/page.js +1 -1
  8. package/dist/.next/server/app/(application)/agents/edit/[id]/page.js.nft.json +1 -1
  9. package/dist/.next/server/app/(application)/agents/edit/[id]/page_client-reference-manifest.js +1 -1
  10. package/dist/.next/server/app/(application)/agents/page.js +2 -2
  11. package/dist/.next/server/app/(application)/agents/page.js.nft.json +1 -1
  12. package/dist/.next/server/app/(application)/agents/page_client-reference-manifest.js +1 -1
  13. package/dist/.next/server/app/(application)/chat/[agent]/[session]/page.js +2 -2
  14. package/dist/.next/server/app/(application)/chat/[agent]/[session]/page.js.nft.json +1 -1
  15. package/dist/.next/server/app/(application)/chat/[agent]/[session]/page_client-reference-manifest.js +1 -1
  16. package/dist/.next/server/app/(application)/chat/[agent]/page.js +1 -1
  17. package/dist/.next/server/app/(application)/chat/[agent]/page.js.nft.json +1 -1
  18. package/dist/.next/server/app/(application)/chat/[agent]/page_client-reference-manifest.js +1 -1
  19. package/dist/.next/server/app/(application)/chat/page.js +1 -1
  20. package/dist/.next/server/app/(application)/chat/page.js.nft.json +1 -1
  21. package/dist/.next/server/app/(application)/chat/page_client-reference-manifest.js +1 -1
  22. package/dist/.next/server/app/(application)/configuration/page.js +1 -1
  23. package/dist/.next/server/app/(application)/configuration/page.js.nft.json +1 -1
  24. package/dist/.next/server/app/(application)/configuration/page_client-reference-manifest.js +1 -1
  25. package/dist/.next/server/app/(application)/dashboard/page.js +2 -2
  26. package/dist/.next/server/app/(application)/dashboard/page.js.nft.json +1 -1
  27. package/dist/.next/server/app/(application)/dashboard/page_client-reference-manifest.js +1 -1
  28. package/dist/.next/server/app/(application)/data/[[...query]]/page.js +2 -2
  29. package/dist/.next/server/app/(application)/data/[[...query]]/page.js.nft.json +1 -1
  30. package/dist/.next/server/app/(application)/data/[[...query]]/page_client-reference-manifest.js +1 -1
  31. package/dist/.next/server/app/(application)/evals/[id]/page.js +1 -1
  32. package/dist/.next/server/app/(application)/evals/[id]/page.js.nft.json +1 -1
  33. package/dist/.next/server/app/(application)/evals/[id]/page_client-reference-manifest.js +1 -1
  34. package/dist/.next/server/app/(application)/evals/[id]/runs/page.js +1 -1
  35. package/dist/.next/server/app/(application)/evals/[id]/runs/page.js.nft.json +1 -1
  36. package/dist/.next/server/app/(application)/evals/[id]/runs/page_client-reference-manifest.js +1 -1
  37. package/dist/.next/server/app/(application)/evals/cases/page.js +1 -1
  38. package/dist/.next/server/app/(application)/evals/cases/page.js.nft.json +1 -1
  39. package/dist/.next/server/app/(application)/evals/cases/page_client-reference-manifest.js +1 -1
  40. package/dist/.next/server/app/(application)/evals/page.js +1 -1
  41. package/dist/.next/server/app/(application)/evals/page.js.nft.json +1 -1
  42. package/dist/.next/server/app/(application)/evals/page_client-reference-manifest.js +1 -1
  43. package/dist/.next/server/app/(application)/explorer/page.js +9 -9
  44. package/dist/.next/server/app/(application)/explorer/page.js.nft.json +1 -1
  45. package/dist/.next/server/app/(application)/explorer/page_client-reference-manifest.js +1 -1
  46. package/dist/.next/server/app/(application)/jobs/page.js +1 -1
  47. package/dist/.next/server/app/(application)/jobs/page.js.nft.json +1 -1
  48. package/dist/.next/server/app/(application)/jobs/page_client-reference-manifest.js +1 -1
  49. package/dist/.next/server/app/(application)/keys/page.js +1 -1
  50. package/dist/.next/server/app/(application)/keys/page.js.nft.json +1 -1
  51. package/dist/.next/server/app/(application)/keys/page_client-reference-manifest.js +1 -1
  52. package/dist/.next/server/app/(application)/page.js +1 -1
  53. package/dist/.next/server/app/(application)/page.js.nft.json +1 -1
  54. package/dist/.next/server/app/(application)/page_client-reference-manifest.js +1 -1
  55. package/dist/.next/server/app/(application)/projects/[project]/page.js +1 -1
  56. package/dist/.next/server/app/(application)/projects/[project]/page.js.nft.json +1 -1
  57. package/dist/.next/server/app/(application)/projects/[project]/page_client-reference-manifest.js +1 -1
  58. package/dist/.next/server/app/(application)/projects/page.js +1 -1
  59. package/dist/.next/server/app/(application)/projects/page.js.nft.json +1 -1
  60. package/dist/.next/server/app/(application)/projects/page_client-reference-manifest.js +1 -1
  61. package/dist/.next/server/app/(application)/roles/page.js +1 -1
  62. package/dist/.next/server/app/(application)/roles/page.js.nft.json +1 -1
  63. package/dist/.next/server/app/(application)/roles/page_client-reference-manifest.js +1 -1
  64. package/dist/.next/server/app/(application)/token/page.js +1 -1
  65. package/dist/.next/server/app/(application)/token/page.js.nft.json +1 -1
  66. package/dist/.next/server/app/(application)/token/page_client-reference-manifest.js +1 -1
  67. package/dist/.next/server/app/(application)/users/page.js +1 -1
  68. package/dist/.next/server/app/(application)/users/page.js.nft.json +1 -1
  69. package/dist/.next/server/app/(application)/users/page_client-reference-manifest.js +1 -1
  70. package/dist/.next/server/app/(application)/variables/create/page.js +1 -1
  71. package/dist/.next/server/app/(application)/variables/create/page.js.nft.json +1 -1
  72. package/dist/.next/server/app/(application)/variables/create/page_client-reference-manifest.js +1 -1
  73. package/dist/.next/server/app/(application)/variables/edit/[variable_id]/page.js +1 -1
  74. package/dist/.next/server/app/(application)/variables/edit/[variable_id]/page.js.nft.json +1 -1
  75. package/dist/.next/server/app/(application)/variables/edit/[variable_id]/page_client-reference-manifest.js +1 -1
  76. package/dist/.next/server/app/(application)/variables/page.js +1 -1
  77. package/dist/.next/server/app/(application)/variables/page.js.nft.json +1 -1
  78. package/dist/.next/server/app/(application)/variables/page_client-reference-manifest.js +1 -1
  79. package/dist/.next/server/app/(application)/variables/usage/[variable_id]/page.js +1 -1
  80. package/dist/.next/server/app/(application)/variables/usage/[variable_id]/page.js.nft.json +1 -1
  81. package/dist/.next/server/app/(application)/variables/usage/[variable_id]/page_client-reference-manifest.js +1 -1
  82. package/dist/.next/server/app/(application)/workflows/page.js +1 -1
  83. package/dist/.next/server/app/(application)/workflows/page.js.nft.json +1 -1
  84. package/dist/.next/server/app/(application)/workflows/page_client-reference-manifest.js +1 -1
  85. package/dist/.next/server/app/(authentication)/login/page.js +3 -3
  86. package/dist/.next/server/app/(authentication)/login/page.js.nft.json +1 -1
  87. package/dist/.next/server/app/(authentication)/login/page_client-reference-manifest.js +1 -1
  88. package/dist/.next/server/app/_not-found/page.js +1 -1
  89. package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  90. package/dist/.next/server/app/_not-found.html +1 -1
  91. package/dist/.next/server/app/_not-found.rsc +1 -1
  92. package/dist/.next/server/app/api/auth/[...nextauth]/route.js +2 -2
  93. package/dist/.next/server/app/api/config/route.js +2 -2
  94. package/dist/.next/server/app-paths-manifest.json +9 -9
  95. package/dist/.next/server/chunks/{2711.js → 3575.js} +1 -1
  96. package/dist/.next/server/chunks/{1558.js → 5192.js} +1 -1
  97. package/dist/.next/server/chunks/{9762.js → 7223.js} +5 -5
  98. package/dist/.next/server/chunks/{4470.js → 7944.js} +2 -2
  99. package/dist/.next/server/chunks/9049.js +2 -2
  100. package/dist/.next/server/middleware-build-manifest.js +1 -1
  101. package/dist/.next/server/middleware-manifest.json +5 -5
  102. package/dist/.next/server/middleware.js +2 -2
  103. package/dist/.next/server/next-font-manifest.js +1 -1
  104. package/dist/.next/server/next-font-manifest.json +1 -1
  105. package/dist/.next/server/pages/404.html +1 -1
  106. package/dist/.next/server/pages/500.html +1 -1
  107. package/dist/.next/server/pages-manifest.json +1 -1
  108. package/dist/.next/server/server-reference-manifest.json +1 -1
  109. package/dist/.next/static/chunks/2117-7e0e97ffa5867cf9.js.map +1 -1
  110. package/dist/.next/static/chunks/6111-5ab0e72a466543ea.js.map +1 -1
  111. package/dist/.next/static/chunks/7648-be88d7a414ab6394.js.map +1 -1
  112. package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/{page-7737da0d7329baf0.js → page-e622860a59223955.js} +2 -2
  113. package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-e622860a59223955.js.map +1 -0
  114. package/dist/.next/static/chunks/app/(application)/agents/{page-58d7ecbf04b75ef3.js → page-fe256553444f6e6f.js} +2 -2
  115. package/dist/.next/static/chunks/app/(application)/agents/page-fe256553444f6e6f.js.map +1 -0
  116. package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-beaa99a35c9e9bfc.js +2 -0
  117. package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-beaa99a35c9e9bfc.js.map +1 -0
  118. package/dist/.next/static/chunks/app/(application)/chat/[agent]/{layout-a701083f64a86849.js → layout-1736d0931ae3f866.js} +2 -2
  119. package/dist/.next/static/chunks/app/(application)/chat/[agent]/layout-1736d0931ae3f866.js.map +1 -0
  120. package/dist/.next/static/chunks/app/(application)/chat/[agent]/{page-2f7e3126e0e76d70.js → page-1538a952e1e99f94.js} +2 -2
  121. package/dist/.next/static/chunks/app/(application)/chat/[agent]/page-1538a952e1e99f94.js.map +1 -0
  122. package/dist/.next/static/chunks/app/(application)/chat/{layout-b934ba4c0a125683.js → layout-3fbafd811d12ed10.js} +2 -2
  123. package/dist/.next/static/chunks/app/(application)/chat/layout-3fbafd811d12ed10.js.map +1 -0
  124. package/dist/.next/static/chunks/app/(application)/configuration/{page-3aa96486933ae5dd.js → page-876d1d43a9cc36e4.js} +2 -2
  125. package/dist/.next/static/chunks/app/(application)/configuration/page-876d1d43a9cc36e4.js.map +1 -0
  126. package/dist/.next/static/chunks/app/(application)/dashboard/{page-2436e355871758ba.js → page-ca746e824cb97052.js} +2 -2
  127. package/dist/.next/static/chunks/app/(application)/dashboard/page-ca746e824cb97052.js.map +1 -0
  128. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/{layout-e073c74bd194e8cc.js → layout-47ad558a66e699c7.js} +2 -2
  129. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-47ad558a66e699c7.js.map +1 -0
  130. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/{page-375a978d25ee3a65.js → page-edcdd8944daaaef8.js} +2 -2
  131. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-edcdd8944daaaef8.js.map +1 -0
  132. package/dist/.next/static/chunks/app/(application)/evals/[id]/{page-b668fca1ba6993e2.js → page-5d4b8e351ee3265f.js} +2 -2
  133. package/dist/.next/static/chunks/app/(application)/evals/[id]/page-5d4b8e351ee3265f.js.map +1 -0
  134. package/dist/.next/static/chunks/app/(application)/evals/[id]/runs/{page-07969d6e5fb01d7b.js → page-4f0d1524fc7936d1.js} +2 -2
  135. package/dist/.next/static/chunks/app/(application)/evals/[id]/runs/page-4f0d1524fc7936d1.js.map +1 -0
  136. package/dist/.next/static/chunks/app/(application)/evals/cases/{page-0f25ee5d9498cbc5.js → page-47274d92d3daf16b.js} +2 -2
  137. package/dist/.next/static/chunks/app/(application)/evals/cases/page-47274d92d3daf16b.js.map +1 -0
  138. package/dist/.next/static/chunks/app/(application)/evals/page-e25d76c28076b126.js +2 -0
  139. package/dist/.next/static/chunks/app/(application)/evals/page-e25d76c28076b126.js.map +1 -0
  140. package/dist/.next/static/chunks/app/(application)/explorer/{page-d1580ece2ff5ba64.js → page-9f8ab38b5cd68c45.js} +2 -2
  141. package/dist/.next/static/chunks/app/(application)/explorer/page-9f8ab38b5cd68c45.js.map +1 -0
  142. package/dist/.next/static/chunks/app/(application)/jobs/{page-1f32c5e7202301b2.js → page-2d9a06a9959e7977.js} +2 -2
  143. package/dist/.next/static/chunks/app/(application)/jobs/page-2d9a06a9959e7977.js.map +1 -0
  144. package/dist/.next/static/chunks/app/(application)/keys/page-6ecb8218f18773b9.js +2 -0
  145. package/dist/.next/static/chunks/app/(application)/keys/page-6ecb8218f18773b9.js.map +1 -0
  146. package/dist/.next/static/chunks/app/(application)/layout-73d93420d0c6661c.js +2 -0
  147. package/dist/.next/static/chunks/app/(application)/layout-73d93420d0c6661c.js.map +1 -0
  148. package/dist/.next/static/chunks/app/(application)/{page-661f24beb316dabf.js → page-16a518c5864e6963.js} +2 -2
  149. package/dist/.next/static/chunks/app/(application)/page-16a518c5864e6963.js.map +1 -0
  150. package/dist/.next/static/chunks/app/(application)/projects/[project]/{page-cc6f6786682fd877.js → page-870b48a3e7f64f7d.js} +2 -2
  151. package/dist/.next/static/chunks/app/(application)/projects/[project]/page-870b48a3e7f64f7d.js.map +1 -0
  152. package/dist/.next/static/chunks/app/(application)/projects/{layout-3ef4b8519966eee7.js → layout-aa5baaf5cc644e70.js} +2 -2
  153. package/dist/.next/static/chunks/app/(application)/projects/layout-aa5baaf5cc644e70.js.map +1 -0
  154. package/dist/.next/static/chunks/app/(application)/projects/{page-6a38fd92beb3b45a.js → page-055a048a107095ed.js} +2 -2
  155. package/dist/.next/static/chunks/app/(application)/projects/page-055a048a107095ed.js.map +1 -0
  156. package/dist/.next/static/chunks/app/(application)/roles/page-b30682514e63b3f8.js +2 -0
  157. package/dist/.next/static/chunks/app/(application)/roles/page-b30682514e63b3f8.js.map +1 -0
  158. package/dist/.next/static/chunks/app/(application)/token/{page-19921b235606b9f3.js → page-f86eaf8c51fdbe52.js} +2 -2
  159. package/dist/.next/static/chunks/app/(application)/token/page-f86eaf8c51fdbe52.js.map +1 -0
  160. package/dist/.next/static/chunks/app/(application)/users/page-1a686fd83f765d8e.js +2 -0
  161. package/dist/.next/static/chunks/app/(application)/users/page-1a686fd83f765d8e.js.map +1 -0
  162. package/dist/.next/static/chunks/app/(application)/variables/create/{page-3d0e1788a92cba52.js → page-16582f525a24dd45.js} +2 -2
  163. package/dist/.next/static/chunks/app/(application)/variables/create/page-16582f525a24dd45.js.map +1 -0
  164. package/dist/.next/static/chunks/app/(application)/variables/edit/[variable_id]/{page-ad12a1419856c280.js → page-b37d9320812bb8f6.js} +2 -2
  165. package/dist/.next/static/chunks/app/(application)/variables/edit/[variable_id]/page-b37d9320812bb8f6.js.map +1 -0
  166. package/dist/.next/static/chunks/app/(application)/variables/{page-530fff39006ba055.js → page-9b438ce239c07987.js} +2 -2
  167. package/dist/.next/static/chunks/app/(application)/variables/page-9b438ce239c07987.js.map +1 -0
  168. package/dist/.next/static/chunks/app/(application)/variables/usage/[variable_id]/{page-11fc31486ee7764e.js → page-b1fe1791701d361e.js} +2 -2
  169. package/dist/.next/static/chunks/app/(application)/variables/usage/[variable_id]/page-b1fe1791701d361e.js.map +1 -0
  170. package/dist/.next/static/chunks/app/(application)/workflows/{page-feb479eaa043e041.js → page-93969baedc6f38ff.js} +2 -2
  171. package/dist/.next/static/chunks/app/(application)/workflows/page-93969baedc6f38ff.js.map +1 -0
  172. package/dist/.next/static/chunks/app/(authentication)/{layout-ed3d63f0ade93b47.js → layout-2dfa18ea6e6dc5cd.js} +2 -2
  173. package/dist/.next/static/chunks/app/(authentication)/layout-2dfa18ea6e6dc5cd.js.map +1 -0
  174. package/dist/.next/static/chunks/app/(authentication)/login/{error-65d2315c483bed81.js → error-c5f516f76e374400.js} +2 -2
  175. package/dist/.next/static/chunks/app/(authentication)/login/error-c5f516f76e374400.js.map +1 -0
  176. package/dist/.next/static/chunks/app/(authentication)/login/{page-3233ca86dc3297c3.js → page-4de4d6f64507c919.js} +2 -2
  177. package/dist/.next/static/chunks/app/(authentication)/login/page-4de4d6f64507c919.js.map +1 -0
  178. package/dist/.next/static/chunks/app/_not-found/page-3832d1eb6511168a.js.map +1 -1
  179. package/dist/.next/static/chunks/main-83299e0cc175f2ed.js.map +1 -1
  180. package/dist/.next/static/chunks/{main-app-e4276b9c44f225cb.js → main-app-da1df2757744a2ea.js} +2 -2
  181. package/dist/.next/static/chunks/main-app-da1df2757744a2ea.js.map +1 -0
  182. package/dist/.next/static/css/e3f2a16ab7676b05.css.map +1 -1
  183. package/dist/node_modules/sharp/build/Release/sharp-linux-x64.node +0 -0
  184. package/dist/node_modules/sharp/vendor/8.14.5/{darwin-arm64v8/lib/libvips-cpp.42.dylib → linux-x64/lib/libvips-cpp.so.42} +0 -0
  185. package/dist/node_modules/sharp/vendor/8.14.5/linux-x64/platform.json +1 -0
  186. package/dist/node_modules/sharp/vendor/8.14.5/{darwin-arm64v8 → linux-x64}/versions.json +1 -1
  187. package/dist/package.json +3 -2
  188. package/dist/server.js +1 -1
  189. package/index.js +37 -0
  190. package/package.json +7 -6
  191. package/release.config.cjs +30 -0
  192. package/dist/.env +0 -32
  193. package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-7737da0d7329baf0.js.map +0 -1
  194. package/dist/.next/static/chunks/app/(application)/agents/page-58d7ecbf04b75ef3.js.map +0 -1
  195. package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-fb7ea4dc4cdb350b.js +0 -2
  196. package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-fb7ea4dc4cdb350b.js.map +0 -1
  197. package/dist/.next/static/chunks/app/(application)/chat/[agent]/layout-a701083f64a86849.js.map +0 -1
  198. package/dist/.next/static/chunks/app/(application)/chat/[agent]/page-2f7e3126e0e76d70.js.map +0 -1
  199. package/dist/.next/static/chunks/app/(application)/chat/layout-b934ba4c0a125683.js.map +0 -1
  200. package/dist/.next/static/chunks/app/(application)/configuration/page-3aa96486933ae5dd.js.map +0 -1
  201. package/dist/.next/static/chunks/app/(application)/dashboard/page-2436e355871758ba.js.map +0 -1
  202. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-e073c74bd194e8cc.js.map +0 -1
  203. package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-375a978d25ee3a65.js.map +0 -1
  204. package/dist/.next/static/chunks/app/(application)/evals/[id]/page-b668fca1ba6993e2.js.map +0 -1
  205. package/dist/.next/static/chunks/app/(application)/evals/[id]/runs/page-07969d6e5fb01d7b.js.map +0 -1
  206. package/dist/.next/static/chunks/app/(application)/evals/cases/page-0f25ee5d9498cbc5.js.map +0 -1
  207. package/dist/.next/static/chunks/app/(application)/evals/page-78bbdcf2c04a4ef9.js +0 -2
  208. package/dist/.next/static/chunks/app/(application)/evals/page-78bbdcf2c04a4ef9.js.map +0 -1
  209. package/dist/.next/static/chunks/app/(application)/explorer/page-d1580ece2ff5ba64.js.map +0 -1
  210. package/dist/.next/static/chunks/app/(application)/jobs/page-1f32c5e7202301b2.js.map +0 -1
  211. package/dist/.next/static/chunks/app/(application)/keys/page-9b13ab99042d606c.js +0 -2
  212. package/dist/.next/static/chunks/app/(application)/keys/page-9b13ab99042d606c.js.map +0 -1
  213. package/dist/.next/static/chunks/app/(application)/layout-cff96ce5805f0772.js +0 -2
  214. package/dist/.next/static/chunks/app/(application)/layout-cff96ce5805f0772.js.map +0 -1
  215. package/dist/.next/static/chunks/app/(application)/page-661f24beb316dabf.js.map +0 -1
  216. package/dist/.next/static/chunks/app/(application)/projects/[project]/page-cc6f6786682fd877.js.map +0 -1
  217. package/dist/.next/static/chunks/app/(application)/projects/layout-3ef4b8519966eee7.js.map +0 -1
  218. package/dist/.next/static/chunks/app/(application)/projects/page-6a38fd92beb3b45a.js.map +0 -1
  219. package/dist/.next/static/chunks/app/(application)/roles/page-d4a925d823a3c66c.js +0 -2
  220. package/dist/.next/static/chunks/app/(application)/roles/page-d4a925d823a3c66c.js.map +0 -1
  221. package/dist/.next/static/chunks/app/(application)/token/page-19921b235606b9f3.js.map +0 -1
  222. package/dist/.next/static/chunks/app/(application)/users/page-7cddc0528218c5c8.js +0 -2
  223. package/dist/.next/static/chunks/app/(application)/users/page-7cddc0528218c5c8.js.map +0 -1
  224. package/dist/.next/static/chunks/app/(application)/variables/create/page-3d0e1788a92cba52.js.map +0 -1
  225. package/dist/.next/static/chunks/app/(application)/variables/edit/[variable_id]/page-ad12a1419856c280.js.map +0 -1
  226. package/dist/.next/static/chunks/app/(application)/variables/page-530fff39006ba055.js.map +0 -1
  227. package/dist/.next/static/chunks/app/(application)/variables/usage/[variable_id]/page-11fc31486ee7764e.js.map +0 -1
  228. package/dist/.next/static/chunks/app/(application)/workflows/page-feb479eaa043e041.js.map +0 -1
  229. package/dist/.next/static/chunks/app/(authentication)/layout-ed3d63f0ade93b47.js.map +0 -1
  230. package/dist/.next/static/chunks/app/(authentication)/login/error-65d2315c483bed81.js.map +0 -1
  231. package/dist/.next/static/chunks/app/(authentication)/login/page-3233ca86dc3297c3.js.map +0 -1
  232. package/dist/.next/static/chunks/main-app-e4276b9c44f225cb.js.map +0 -1
  233. package/dist/node_modules/sharp/build/Release/sharp-darwin-arm64v8.node +0 -0
  234. package/dist/node_modules/sharp/vendor/8.14.5/darwin-arm64v8/include/harfbuzz/hb-cplusplus.hh +0 -223
  235. package/dist/node_modules/sharp/vendor/8.14.5/darwin-arm64v8/include/vips/vips8 +0 -60
  236. package/dist/node_modules/sharp/vendor/8.14.5/darwin-arm64v8/platform.json +0 -1
  237. /package/dist/.next/static/{5Vf-v5wyENpLUvLzma2J6 → Wt4IDtB-Xwfc0Z_CpMmtm}/_buildManifest.js +0 -0
  238. /package/dist/.next/static/{5Vf-v5wyENpLUvLzma2J6 → Wt4IDtB-Xwfc0Z_CpMmtm}/_ssgManifest.js +0 -0
  239. /package/dist/node_modules/sharp/vendor/8.14.5/{darwin-arm64v8 → linux-x64}/THIRD-PARTY-NOTICES.md +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/chunks/app/(application)/projects/[project]/page-870b48a3e7f64f7d.js","mappings":"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","sources":["webpack://_N_E/?ef07","webpack://_N_E/../../../src/icons/files.ts","webpack://_N_E/../../../src/icons/package-minus.ts","webpack://_N_E/../../../src/icons/plus-square.ts","webpack://_N_E/./components/items-selection-modal.tsx","webpack://_N_E/./components/project-details.tsx","webpack://_N_E/./app/(application)/projects/[project]/page.tsx","webpack://_N_E/./components/ui/alert.tsx","webpack://_N_E/./components/ui/checkbox.tsx","webpack://_N_E/./hooks/use-uppy.tsx","webpack://_N_E/./components/uppy-dashboard.tsx","webpack://_N_E/./hooks/contexts.tsx","webpack://_N_E/./lib/check-chat-session-write-access.ts","webpack://_N_E/../../../src/icons/alert-triangle.ts","webpack://_N_E/../../../src/icons/chevrons-up-down.ts","webpack://_N_E/../../../src/icons/folder.ts","webpack://_N_E/../../../src/icons/globe.ts","webpack://_N_E/../../../src/icons/loader-2.ts","webpack://_N_E/../../../src/icons/lock.ts","webpack://_N_E/../../../src/icons/message-square.ts","webpack://_N_E/../../../src/icons/pencil.ts","webpack://_N_E/../../../src/icons/settings-2.ts","webpack://_N_E/../../../src/icons/shield.ts","webpack://_N_E/../src/checkbox.tsx","webpack://_N_E/../src/label.tsx"],"sourcesContent":["import(/* webpackMode: \"eager\" */ \"/home/runner/work/exulu-frontend/exulu-frontend/app/(application)/projects/[project]/page.tsx\");\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Files\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUuNSAySDguNmMtLjQgMC0uOC4yLTEuMS41LS4zLjMtLjUuNy0uNSAxLjF2MTIuOGMwIC40LjIuOC41IDEuMS4zLjMuNy41IDEuMS41aDkuOGMuNCAwIC44LS4yIDEuMS0uNS4zLS4zLjUtLjcuNS0xLjFWNi41TDE1LjUgMnoiIC8+CiAgPHBhdGggZD0iTTMgNy42djEyLjhjMCAuNC4yLjguNSAxLjEuMy4zLjcuNSAxLjEuNWg5LjgiIC8+CiAgPHBhdGggZD0iTTE1IDJ2NWg1IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/files\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Files = createLucideIcon('Files', [\n [\n 'path',\n {\n d: 'M15.5 2H8.6c-.4 0-.8.2-1.1.5-.3.3-.5.7-.5 1.1v12.8c0 .4.2.8.5 1.1.3.3.7.5 1.1.5h9.8c.4 0 .8-.2 1.1-.5.3-.3.5-.7.5-1.1V6.5L15.5 2z',\n key: 'cennsq',\n },\n ],\n ['path', { d: 'M3 7.6v12.8c0 .4.2.8.5 1.1.3.3.7.5 1.1.5h9.8', key: 'ms809a' }],\n ['path', { d: 'M15 2v5h5', key: 'qq6kwv' }],\n]);\n\nexport default Files;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name PackageMinus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMTZoNiIgLz4KICA8cGF0aCBkPSJNMjEgMTBWOGEyIDIgMCAwIDAtMS0xLjczbC03LTRhMiAyIDAgMCAwLTIgMGwtNyA0QTIgMiAwIDAgMCAzIDh2OGEyIDIgMCAwIDAgMSAxLjczbDcgNGEyIDIgMCAwIDAgMiAwbDItMS4xNCIgLz4KICA8cGF0aCBkPSJtNy41IDQuMjcgOSA1LjE1IiAvPgogIDxwb2x5bGluZSBwb2ludHM9IjMuMjkgNyAxMiAxMiAyMC43MSA3IiAvPgogIDxsaW5lIHgxPSIxMiIgeDI9IjEyIiB5MT0iMjIiIHkyPSIxMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/package-minus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst PackageMinus = createLucideIcon('PackageMinus', [\n ['path', { d: 'M16 16h6', key: '100bgy' }],\n [\n 'path',\n {\n d: 'M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14',\n key: 'e7tb2h',\n },\n ],\n ['path', { d: 'm7.5 4.27 9 5.15', key: '1c824w' }],\n ['polyline', { points: '3.29 7 12 12 20.71 7', key: 'ousv84' }],\n ['line', { x1: '12', x2: '12', y1: '22', y2: '12', key: 'a4e8g8' }],\n]);\n\nexport default PackageMinus;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name PlusSquare\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik04IDEyaDgiIC8+CiAgPHBhdGggZD0iTTEyIDh2OCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/plus-square\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst PlusSquare = createLucideIcon('PlusSquare', [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', key: 'afitv7' }],\n ['path', { d: 'M8 12h8', key: '1wcyev' }],\n ['path', { d: 'M12 8v8', key: 'napkw2' }],\n]);\n\nexport default PlusSquare;\n","import { Context } from \"@/types/models/context\";\nimport { useContexts } from \"@/hooks/contexts\";\nimport { useState } from \"react\"\nimport { PlusSquareIcon } from \"lucide-react\"\nimport { Button } from \"@/components/ui/button\"\nimport { useQuery } from \"@apollo/client\";\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/components/ui/command\"\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from \"@/components/ui/dialog\"\nimport { Item } from \"@/types/models/item\";\nimport { GET_ITEMS, PAGINATION_POSTFIX } from \"@/queries/queries\";\nimport { Loading } from \"./ui/loading\";\n\nexport const ItemsSelectionModal = ({ onConfirm }: {\n onConfirm: (data: {\n item: Item,\n context: Context\n }[]) => void\n}) => {\n // Shows a modal that first shows a list of all contexts\n\n const { data, loading, error } = useContexts();\n const [context, setContext] = useState<Context | undefined>(undefined);\n const [open, setOpen] = useState(false);\n\n return (<Dialog open={open} onOpenChange={(value) => {\n setOpen(value)\n setContext(undefined)\n }}>\n <DialogTrigger asChild>\n <Button className=\"w-full\" variant=\"outline\">\n <PlusSquareIcon className=\"h-4 w-4 mr-2\" />\n Select items from knowledge sources\n to add to the project, or upload files.\n </Button>\n </DialogTrigger>\n <DialogContent className=\"sm:max-w-[900px]\">\n <DialogHeader>\n <DialogTitle>Item selection</DialogTitle>\n <DialogDescription>Browse through contexts and select items.</DialogDescription>\n </DialogHeader>\n {\n !context && (\n <Command className=\"rounded-lg border shadow-md md:min-w-[450px]\">\n <CommandInput placeholder=\"Type a command or search...\" />\n <CommandList>\n <CommandEmpty>No results found.</CommandEmpty>\n\n <CommandGroup heading=\"Contexts\">\n {\n data?.contexts?.items.map((context: Context) => (\n <CommandItem key={context.id} onSelect={() => {\n setContext(context)\n }}>\n {context.name}\n </CommandItem>\n ))\n }\n </CommandGroup>\n\n </CommandList>\n </Command>\n )\n }\n {\n context && (\n <ItemsList context={context} onConfirm={(item) => {\n console.log(\"item\", item)\n onConfirm([{\n item,\n context\n }])\n setOpen(false)\n }} />\n )\n }\n </DialogContent>\n </Dialog>)\n}\n\nconst ItemsList = ({ context, onConfirm }: { context: Context, onConfirm: (item: Item) => void }) => {\n const [search, setSearch] = useState<string | undefined>(undefined)\n let { loading, data, refetch, previousData: prev, error } = useQuery<{\n [key: string]: {\n pageInfo: {\n pageCount: number;\n itemCount: number;\n currentPage: number;\n hasPreviousPage: boolean;\n hasNextPage: boolean;\n };\n items: Item[];\n }\n }>(GET_ITEMS(context.id, []), {\n fetchPolicy: \"no-cache\",\n nextFetchPolicy: \"network-only\",\n skip: !context.id,\n variables: {\n context: context.id,\n page: 1,\n limit: 10,\n sort: {\n field: \"updatedAt\",\n direction: \"DESC\",\n },\n filters: {\n archived: {\n ne: true\n },\n ...(search ? { name: { contains: `${search}` } } : {}),\n },\n },\n });\n\n return (\n <Command className=\"rounded-lg border shadow-md md:min-w-[450px]\">\n <CommandInput onValueChange={(data) => setSearch(data)} placeholder=\"Type a command or search...\" />\n <CommandList>\n <CommandGroup heading=\"Items\">\n {\n !prev && loading && (\n <CommandItem key={\"loading\"}>\n <Loading />\n </CommandItem>\n )\n }\n {\n !loading && !data?.[context.id + PAGINATION_POSTFIX]?.items?.length && (\n <CommandEmpty>No items found.</CommandEmpty>\n )\n }\n {(data || prev)?.[context.id + PAGINATION_POSTFIX]?.items?.map((item: Item) => (\n <CommandItem key={item.id} onSelect={() => {\n onConfirm(item)\n }}>{item.name}</CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n )\n}","\"use client\";\n\nimport * as React from \"react\";\nimport { useState, useContext } from \"react\";\nimport { useQuery, useMutation, useApolloClient } from \"@apollo/client\";\nimport { UPDATE_PROJECT, DELETE_PROJECT, GET_AGENT_SESSIONS, GET_AGENTS, CREATE_AGENT_SESSION, GET_ITEM_BY_ID, UPDATE_AGENT_SESSION_PROJECT, REMOVE_AGENT_SESSION_BY_ID, DELETE_ITEM } from \"@/queries/queries\";\nimport { Button } from \"@/components/ui/button\";\nimport { Input } from \"@/components/ui/input\";\nimport { Label } from \"@/components/ui/label\";\nimport { Textarea } from \"@/components/ui/textarea\";\nimport { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from \"@/components/ui/card\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from \"@/components/ui/dialog\";\nimport { Checkbox } from \"@/components/ui/checkbox\";\nimport { Trash2, Plus, MessageSquare, Settings2, Files, AlertTriangle, Shield, Pencil, Search, Bot, PackageMinus } from \"lucide-react\";\nimport { RBACControl } from \"@/components/rbac\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\nimport { useToast } from \"@/components/ui/use-toast\";\nimport { Loading } from \"./ui/loading\";\nimport { Agent } from \"@/types/models/agent\";\nimport { useRouter } from \"next/navigation\";\nimport { AgentSession } from \"@/types/models/agent-session\";\nimport { Project } from \"@/types/models/project\";\nimport { checkChatSessionWriteAccess } from \"@/lib/check-chat-session-write-access\";\nimport { UserContext } from \"@/app/(application)/authenticated\";\nimport Link from \"next/link\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"@/components/ui/tooltip\";\nimport { Item } from \"@/types/models/item\";\nimport { FileItem } from \"./uppy-dashboard\";\nimport { ItemsSelectionModal } from \"./items-selection-modal\";\nimport { files } from \"@/util/api\";\n\ninterface ProjectDetailsProps {\n project: Project;\n}\n\nexport function ProjectDetails({ project }: ProjectDetailsProps) {\n const [isEditing, setIsEditing] = useState(false);\n const [isDeleteDialogOpen, setIsDeleteDialogOpen] = useState(false);\n const [isAgentSelectionOpen, setIsAgentSelectionOpen] = useState(false);\n const [agentSearch, setAgentSearch] = useState(\"\");\n const [activeView, setActiveView] = useState<'overview' | 'context' | 'sessions' | 'access' | 'settings'>('overview');\n const { user } = useContext(UserContext);\n const router = useRouter();\n const [deleteOptions, setDeleteOptions] = useState({\n deleteItems: false,\n deleteSessions: false,\n });\n const [formData, setFormData] = useState({\n name: project.name || \"\",\n description: project.description || \"\",\n custom_instructions: project.custom_instructions || \"\",\n });\n const { toast } = useToast();\n\n const [rbac, setRbac] = useState({\n rights_mode: project.rights_mode,\n users: project.RBAC?.users,\n roles: project.RBAC?.roles,\n projects: project.RBAC?.projects\n })\n\n const [projectItems, setProjectItems] = useState<string[]>(project.project_items || []);\n const [updateProject, { loading: isSaving }] = useMutation(UPDATE_PROJECT);\n const [deleteProject] = useMutation(DELETE_PROJECT);\n const [deletingProject, setDeletingProject] = useState(false);\n const { data: sessionsData, loading: sessionsLoading, refetch: refetchSessions } = useQuery(GET_AGENT_SESSIONS, {\n variables: {\n page: 1,\n limit: 50,\n filters: [\n { project: { eq: project.id } }\n ]\n }\n });\n\n const { data: agentsData, loading: agentsLoading } = useQuery(GET_AGENTS, {\n variables: {\n page: 1,\n limit: 100,\n filters: [],\n sort: { field: \"updatedAt\", direction: \"DESC\" }\n }\n });\n\n const apolloClient = useApolloClient()\n\n const [createAgentSession, { loading: isCreatingSession }] = useMutation(CREATE_AGENT_SESSION);\n\n const [updateAgentSession, { loading: isUpdatingSession }] = useMutation(UPDATE_AGENT_SESSION_PROJECT);\n\n const [deleteSession, { loading: isDeletingSession }] = useMutation(REMOVE_AGENT_SESSION_BY_ID);\n\n const chatSessions: AgentSession[] = sessionsData?.agent_sessionsPagination?.items || [];\n const agents: Agent[] = agentsData?.agentsPagination?.items || [];\n\n const filteredAgents = React.useMemo(() => {\n if (!agentSearch) return agents;\n return agents.filter(agent =>\n agent.name.toLowerCase().includes(agentSearch.toLowerCase())\n );\n }, [agents, agentSearch]);\n\n const handleSave = async () => {\n if (!formData.name.trim()) {\n toast({\n title: \"Validation Error\",\n description: \"Project name is required.\",\n variant: \"destructive\",\n });\n return;\n }\n\n try {\n await updateProject({\n variables: {\n id: project.id,\n input: {\n name: formData.name.trim(),\n description: formData.description.trim() || null,\n custom_instructions: formData.custom_instructions.trim() || null,\n },\n },\n });\n\n toast({\n title: \"Success\",\n description: \"Project updated successfully!\",\n });\n\n setIsEditing(false);\n } catch (error: any) {\n console.error(\"Error updating project:\", error);\n toast({\n title: \"Error\",\n description: error.message || \"Failed to update project. Please try again.\",\n variant: \"destructive\",\n });\n }\n };\n\n const handleCancel = () => {\n if (project) {\n setFormData({\n name: project.name || \"\",\n description: project.description || \"\",\n custom_instructions: project.custom_instructions || \"\",\n });\n }\n setIsEditing(false);\n };\n\n const handleNewChatSession = () => {\n setIsAgentSelectionOpen(true);\n };\n\n const handleAgentSelect = async (agent: Agent) => {\n try {\n const result = await createAgentSession({\n variables: {\n title: `New session with ${agent.name}`,\n agent: agent.id,\n project: project.id,\n rights_mode: \"projects\",\n RBAC: {\n projects: [{ id: project.id, rights: \"read\" }]\n }\n },\n });\n\n const sessionId = result.data?.agent_sessionsCreateOne?.item?.id;\n\n if (sessionId) {\n toast({\n title: \"Success\",\n description: \"Session created successfully! Sessions started in a project are accessible for viewing by project members.\",\n });\n\n setIsAgentSelectionOpen(false);\n setAgentSearch(\"\");\n\n router.push(`/chat/${agent.id}/${sessionId}`);\n }\n } catch (error: any) {\n console.error(\"Error creating session:\", error);\n toast({\n title: \"Error\",\n description: error.message || \"Failed to create session. Please try again.\",\n variant: \"destructive\",\n });\n }\n };\n\n const handleDeleteProject = async () => {\n try {\n setDeletingProject(true);\n if (deleteOptions.deleteItems) {\n await Promise.all(projectItems.map(async (item) => {\n const context = item.split(\"/\")[0];\n const id = item.split(\"/\")[1];\n if (!context || !id) return;\n const { data } = await apolloClient.mutate({\n mutation: DELETE_ITEM(context, context === \"files_default_context\" ? [\"s3key\"] : []),\n variables: { id },\n });\n\n if (data[`${context}_itemsRemoveOneById`]?.s3key) {\n try {\n await files.delete(data[`${context}_itemsRemoveOneById`]?.s3key)\n } catch (error: any) {\n console.error(\"[EXULU] Error deleting file from s3 storage:\", error);\n }\n }\n\n }));\n }\n\n await Promise.all(chatSessions.map(async (session) => {\n if (deleteOptions.deleteSessions) {\n await deleteSession({\n variables: { id: session.id },\n });\n } else {\n await updateAgentSession({\n variables: { id: session.id, project: null },\n });\n }\n }))\n\n await deleteProject({\n variables: { id: project.id },\n });\n\n toast({\n title: \"Success\",\n description: `Project \"${project.name}\" has been deleted successfully.`,\n });\n\n // Navigate back to projects list or close modal\n setIsDeleteDialogOpen(false);\n setDeletingProject(false);\n router.push('/projects');\n } catch (error: any) {\n setDeletingProject(false);\n console.error(\"Error deleting project:\", error);\n toast({\n title: \"Error\",\n description: error.message || \"Failed to delete project. Please try again.\",\n variant: \"destructive\",\n });\n }\n };\n\n return (\n <div className=\"flex-1 p-6 mt-20\">\n <div className=\"max-w-5xl mx-auto space-y-6\">\n <div className=\"flex gap-6 h-full\">\n <div className=\"w-80 space-y-4\">\n <Card>\n <CardContent className=\"p-4\">\n <div className=\"space-y-3\">\n <h3 className=\"font-semibold text-lg\">{project.name}</h3>\n <p className=\"text-muted-foreground text-sm leading-relaxed\">\n {project.description || \"No description provided.\"}\n </p>\n </div>\n </CardContent>\n </Card>\n\n {/* Navigation Buttons */}\n <div className=\"space-y-2\">\n <Button\n variant={activeView === 'overview' ? 'default' : 'ghost'}\n className=\"w-full justify-start\"\n onClick={() => setActiveView('overview')}\n >\n <Settings2 className=\"h-4 w-4 mr-2\" />\n Project information\n </Button>\n <Button\n variant={activeView === 'context' ? 'default' : 'ghost'}\n className=\"w-full justify-start\"\n onClick={() => setActiveView('context')}\n >\n <Files className=\"h-4 w-4 mr-2\" />\n Project files\n </Button>\n <Button\n variant={activeView === 'sessions' ? 'default' : 'ghost'}\n className=\"w-full justify-start\"\n onClick={() => setActiveView('sessions')}\n >\n <MessageSquare className=\"h-4 w-4 mr-2\" />\n Project sessions\n </Button>\n <Button\n variant={activeView === 'access' ? 'default' : 'ghost'}\n className=\"w-full justify-start\"\n onClick={() => setActiveView('access')}\n >\n <Shield className=\"h-4 w-4 mr-2\" />\n Access control\n </Button>\n <Button\n variant={activeView === 'settings' ? 'default' : 'ghost'}\n className=\"w-full justify-start\"\n onClick={() => setActiveView('settings')}\n >\n <Settings2 className=\"h-4 w-4 mr-2\" />\n Project settings\n </Button>\n </div>\n </div>\n\n {/* Main Content Area */}\n <div className=\"flex-1\">\n {activeView === 'overview' && (\n <div className=\"space-y-6\">\n <Card>\n <CardHeader>\n <CardTitle>Project Information</CardTitle>\n <CardDescription>\n Basic information about this project\n </CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"grid gap-4\">\n <div className=\"space-y-2\">\n <Label htmlFor=\"name\">Project Name</Label>\n {isEditing ? (\n <Input\n id=\"name\"\n value={formData.name}\n onChange={(e) => setFormData({ ...formData, name: e.target.value })}\n />\n ) : (\n <p className=\"text-sm\">{project.name}</p>\n )}\n </div>\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"description\">Description</Label>\n {isEditing ? (\n <Textarea\n id=\"description\"\n value={formData.description}\n onChange={(e) => setFormData({ ...formData, description: e.target.value })}\n rows={3}\n />\n ) : (\n <p className=\"text-sm\">{project.description || \"No description provided\"}</p>\n )}\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"instructions\">Custom Instructions</Label>\n {isEditing ? (\n <Textarea\n id=\"instructions\"\n value={formData.custom_instructions}\n onChange={(e) => setFormData({ ...formData, custom_instructions: e.target.value })}\n rows={4}\n placeholder=\"Enter custom instructions for sessions in this project...\"\n />\n ) : (\n <p className=\"text-sm\">{project.custom_instructions || \"No custom instructions set\"}</p>\n )}\n </div>\n </CardContent>\n\n <CardFooter>\n <div className=\"flex items-center justify-between\">\n <div className=\"flex gap-2\">\n {isEditing ? (\n <>\n <Button variant=\"outline\" onClick={handleCancel}>\n Cancel\n </Button>\n <Button onClick={handleSave}>\n <span>Save changes</span>\n {\n isSaving && (\n <Loading className=\"mr-2\" />\n )\n }\n </Button>\n </>\n ) : (\n <Button variant=\"outline\" onClick={() => setIsEditing(true)}>\n <Pencil className=\"h-4 w-4 mr-2\" />\n Edit\n </Button>\n )}\n </div>\n </div>\n </CardFooter>\n </Card>\n </div>\n )}\n\n {activeView === 'context' && (\n <div className=\"space-y-6 w-full\">\n <Card>\n <CardHeader>\n <CardTitle>Project context items</CardTitle>\n <CardDescription>\n Items that provide context for sessions in this project (max 15 items). Note that different\n agents may have different file types supported.\n </CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-4\">\n <ItemsSelectionModal onConfirm={(data) => {\n const update = [...projectItems, ...data.map((x) => `${x.context.id}/${x.item.id}`)];\n console.log(\"update\", update);\n setProjectItems(update);\n updateProject({\n variables: {\n id: project.id,\n input: {\n project_items: update\n }\n }\n })\n }} />\n\n {/* List of items */}\n <div className=\"space-y-2\">\n {\n <div className=\"space-y-2\">\n {\n projectItems?.length === 0 && (\n <div className=\"text-center py-8 text-muted-foreground\">\n <Files className=\"h-12 w-12 mx-auto mb-2 opacity-50\" />\n <p>No items added to the project context yet.</p>\n </div>\n )\n }\n <div className=\"grid grid-cols-3 sm:grid-cols-4 gap-3\">\n {projectItems?.map((gid) => (\n <ProjectItem key={gid} gid={gid} onRemove={(gid) => {\n const update = projectItems.filter((g) => g !== gid)\n setProjectItems(update)\n updateProject({\n variables: {\n id: project.id,\n input: {\n project_items: update\n }\n }\n })\n }} />\n ))}\n </div>\n </div>\n }\n </div>\n </div>\n </CardContent>\n </Card>\n </div>\n )}\n\n {activeView === 'sessions' && (\n <div className=\"space-y-6\">\n <Card>\n <CardHeader>\n <CardTitle>Project sessions</CardTitle>\n <CardDescription>\n Sessions associated with this project\n </CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-4\">\n <Button onClick={handleNewChatSession} className=\"w-full\" variant=\"outline\">\n <Plus className=\"h-4 w-4 mr-2\" />\n Start new session\n </Button>\n\n <div className=\"space-y-2\">\n {chatSessions.map((session) => {\n const writeAccess = checkChatSessionWriteAccess(session, user);\n return (\n <div key={session.id} className=\"flex items-center justify-between p-3 border rounded-lg\">\n <div className=\"flex items-center gap-3\">\n <MessageSquare className=\"h-4 w-4\" />\n <div>\n <Link href={`/chat/${session.agent}/${session.id}`}>\n <p className=\"font-medium max-w-[80%] truncate\">{session.title}</p>\n </Link>\n </div>\n </div>\n <div className=\"flex items-center gap-2\">\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n disabled={!writeAccess || isUpdatingSession}\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => {\n if (isUpdatingSession) return;\n updateAgentSession({\n variables: {\n id: session.id,\n project: null\n }\n })\n refetchSessions();\n }}>\n <PackageMinus className=\"h-4 w-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n <p>Remove session from project.</p>\n </TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n disabled={!writeAccess || isDeletingSession}\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => {\n if (isDeletingSession) return;\n deleteSession({\n variables: {\n id: session.id\n }\n })\n refetchSessions();\n }}\n >\n <Trash2 className=\"h-4 w-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n <p>Delete session completely.</p>\n </TooltipContent>\n </Tooltip>\n </div>\n </div>\n )\n }\n )}\n </div>\n\n {chatSessions.length === 0 && !sessionsLoading && (\n <div className=\"text-center py-8 text-muted-foreground\">\n <MessageSquare className=\"h-12 w-12 mx-auto mb-2 opacity-50\" />\n <p>No sessions found</p>\n </div>\n )}\n\n {sessionsLoading && (\n <div className=\"text-center py-8 text-muted-foreground\">\n <MessageSquare className=\"h-12 w-12 mx-auto mb-2 opacity-50\" />\n <p>Loading sessions...</p>\n </div>\n )}\n </div>\n </CardContent>\n </Card>\n </div>\n )}\n\n {activeView === 'access' && (\n <div className=\"space-y-6\">\n <Card>\n <CardHeader>\n <CardTitle>Access Control</CardTitle>\n <CardDescription>\n Control who can access this project\n </CardDescription>\n </CardHeader>\n <CardContent>\n <RBACControl\n allowedModes={['private', 'users', 'roles']}\n initialRightsMode={project.rights_mode || 'private'}\n initialUsers={project.RBAC?.users}\n initialRoles={project.RBAC?.roles}\n initialProjects={project.RBAC?.projects}\n onChange={(rights_mode, users, roles, projects) => {\n setRbac({\n rights_mode,\n users,\n roles,\n projects\n })\n }}\n />\n </CardContent>\n <CardFooter>\n <Button onClick={() => {\n updateProject({\n variables: {\n id: project.id,\n input: {\n rights_mode: rbac.rights_mode,\n RBAC: {\n users: rbac.users,\n roles: rbac.roles,\n projects: rbac.projects\n }\n }\n }\n })\n }}>\n <span>Save access rights</span>\n {isSaving && <Loading className=\"ml-2\" />}\n </Button>\n </CardFooter>\n </Card>\n </div>\n )}\n\n {activeView === 'settings' && (\n <div className=\"space-y-6\">\n <Card>\n <CardHeader>\n <CardTitle>Danger Zone</CardTitle>\n <CardDescription>\n Permanently delete this project and all associated data\n </CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-4\">\n <div className=\"flex items-start gap-3 p-4 border border-destructive/20 rounded-lg bg-destructive/5\">\n <AlertTriangle className=\"h-5 w-5 text-destructive mt-0.5\" />\n <div className=\"flex-1\">\n <h4 className=\"font-medium text-destructive\">Delete Project</h4>\n <p className=\"text-sm text-muted-foreground mt-1\">\n This action cannot be undone. This will permanently delete the project and optionally remove all associated context files and sessions.\n </p>\n </div>\n </div>\n\n <Dialog open={isDeleteDialogOpen} onOpenChange={setIsDeleteDialogOpen}>\n <DialogTrigger asChild>\n <Button variant=\"destructive\">\n <Trash2 className=\"h-4 w-4 mr-2\" />\n Delete Project\n </Button>\n </DialogTrigger>\n <DialogContent className=\"sm:max-w-md\">\n <DialogHeader>\n <DialogTitle>Delete Project</DialogTitle>\n <DialogDescription>\n Are you sure you want to delete \"{project.name}\"? This action cannot be undone.\n </DialogDescription>\n </DialogHeader>\n <div className=\"space-y-4\">\n <div className=\"flex items-center space-x-2\">\n <Checkbox\n id=\"delete-items\"\n checked={deleteOptions.deleteItems}\n onCheckedChange={(checked) =>\n setDeleteOptions(prev => ({ ...prev, deleteItems: checked as boolean }))\n }\n />\n <label htmlFor=\"delete-items\" className=\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\">\n Also delete all context items ({projectItems?.length} items)\n </label>\n </div>\n <div className=\"flex items-center space-x-2\">\n <Checkbox\n id=\"delete-sessions\"\n checked={deleteOptions.deleteSessions}\n onCheckedChange={(checked) =>\n setDeleteOptions(prev => ({ ...prev, deleteSessions: checked as boolean }))\n }\n />\n <label htmlFor=\"delete-sessions\" className=\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\">\n Also delete all sessions ({chatSessions.length} sessions)\n </label>\n </div>\n {(deleteOptions.deleteItems || deleteOptions.deleteSessions) && (\n <div className=\"flex items-start gap-2 p-3 border border-amber-200 rounded-lg bg-amber-50\">\n <AlertTriangle className=\"h-4 w-4 text-amber-600 mt-0.5\" />\n <p className=\"text-sm text-amber-800\">\n {deleteOptions.deleteItems && deleteOptions.deleteSessions\n ? \"All context items and sessions will be permanently deleted.\"\n : deleteOptions.deleteItems\n ? \"All context items will be permanently deleted.\"\n : \"All sessions will be permanently deleted.\"\n }\n </p>\n </div>\n )}\n </div>\n <DialogFooter className=\"sm:justify-start\">\n <Button variant=\"outline\" onClick={() => setIsDeleteDialogOpen(false)}>\n Cancel\n </Button>\n <Button disabled={deletingProject} variant=\"destructive\" onClick={handleDeleteProject}>\n {\n deletingProject ? (\n <Loading className=\"mr-2 w-4 h-4\" />\n ) : (\n <Trash2 className=\"h-4 w-4 mr-2\" />\n )\n }\n Delete Project\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n </div>\n </CardContent>\n </Card>\n </div>\n )}\n </div>\n </div>\n </div>\n\n {/* Agent Selection Modal */}\n <Dialog open={isAgentSelectionOpen} onOpenChange={setIsAgentSelectionOpen}>\n <DialogContent className=\"sm:max-w-4xl\">\n <DialogHeader>\n <DialogTitle>Select an Agent</DialogTitle>\n <DialogDescription>\n Choose an agent to start a new chat session. Sessions started in a project are accessible for viewing by project members.\n </DialogDescription>\n </DialogHeader>\n\n <div className=\"space-y-4\">\n {/* Search Input */}\n <div className=\"relative\">\n <Search className=\"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground\" />\n <Input\n placeholder=\"Search agents...\"\n value={agentSearch}\n onChange={(e) => setAgentSearch(e.target.value)}\n className=\"pl-10\"\n />\n </div>\n\n {/* Agents Grid */}\n <div className=\"max-h-96 overflow-y-auto\">\n {agentsLoading ? (\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n {[...Array(6)].map((_, i) => (\n <div key={i} className=\"p-4 border rounded-lg\">\n <div className=\"flex items-center gap-3\">\n <Skeleton className=\"h-12 w-12 rounded-full\" />\n <div className=\"space-y-2 flex-1\">\n <Skeleton className=\"h-4 w-3/4\" />\n <Skeleton className=\"h-3 w-1/2\" />\n </div>\n </div>\n </div>\n ))}\n </div>\n ) : filteredAgents.length > 0 ? (\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n {filteredAgents.map((agent) => (\n <div\n key={agent.id}\n className=\"p-4 border rounded-lg hover:border-primary cursor-pointer transition-colors\"\n onClick={() => handleAgentSelect(agent)}\n >\n <div className=\"flex items-center gap-3\">\n <div className=\"h-12 w-12 rounded-full bg-primary/10 flex items-center justify-center\">\n {agent.image ? (\n <img\n src={agent.image}\n alt={agent.name}\n className=\"h-12 w-12 rounded-full object-cover\"\n />\n ) : (\n <Bot className=\"h-6 w-6\" />\n )}\n </div>\n <div className=\"flex-1 min-w-0\">\n <p className=\"font-medium truncate\">{agent.name}</p>\n <p className=\"text-sm text-muted-foreground truncate\">\n {agent.description || `${agent.type} agent`}\n </p>\n <div className=\"flex items-center gap-2 mt-1\">\n <Badge variant={agent.active ? \"default\" : \"secondary\"} className=\"text-xs\">\n {agent.active ? \"Active\" : \"Inactive\"}\n </Badge>\n <Badge variant=\"outline\" className=\"text-xs\">\n {agent.type}\n </Badge>\n </div>\n </div>\n </div>\n </div>\n ))}\n </div>\n ) : (\n <div className=\"text-center py-8 text-muted-foreground\">\n <Bot className=\"h-12 w-12 mx-auto mb-2 opacity-50\" />\n <p>{agentSearch ? \"No agents found matching your search\" : \"No agents available\"}</p>\n </div>\n )}\n </div>\n </div>\n\n <DialogFooter>\n <Button variant=\"outline\" onClick={() => setIsAgentSelectionOpen(false)}>\n Cancel\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n </div>\n );\n}\n\nfunction ProjectItem({ gid, onRemove }: { gid: string, onRemove: (gid: string) => void }) {\n\n const context = gid.split(\"/\")[0];\n const id = gid.split(\"/\")[1];\n if (!context) return null;\n if (!id) return null;\n\n const { data, loading } = useQuery<\n {\n [key: string]: Item\n }>(GET_ITEM_BY_ID(context, context === \"files_default_context\" ? [\n \"s3key\"\n ] : []), {\n variables: {\n id\n }\n });\n\n console.log(\"data\", data);\n\n if (loading) return null;\n const item = data?.[context + \"_itemsById\"];\n if (!item) return null;\n const fields = Object.values(item || {})\n const files = fields.filter(x => x === \"_s3key\");\n\n if (!files.length) return null;\n\n return <>\n {files.map(file => (\n <FileItem s3Key={file} onRemove={() => {\n onRemove(gid)\n }} active={false} disabled={false} />\n ))}\n </>\n}","\"use client\";\n\nimport * as React from \"react\";\nimport { useParams } from \"next/navigation\";\nimport { ProjectDetails } from \"@/components/project-details\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\nimport { Alert, AlertDescription, AlertTitle } from \"@/components/ui/alert\";\nimport { useQuery } from \"@apollo/client\";\nimport { GET_PROJECT_BY_ID } from \"@/queries/queries\";\nimport { ExclamationTriangleIcon } from \"@radix-ui/react-icons\";\n\nexport default function ProjectPage() {\n const params = useParams();\n const projectId = params?.project as string;\n\n const { data, loading, error } = useQuery(GET_PROJECT_BY_ID, {\n variables: { id: projectId }\n });\n\n\n if (loading) {\n return <div>\n <Skeleton className=\"w-full h-full\" />\n </div>\n }\n\n if (error) {\n return <Alert variant=\"destructive\">\n <ExclamationTriangleIcon className=\"size-4\" />\n <AlertTitle>Error</AlertTitle>\n <AlertDescription>\n Error loading project.\n </AlertDescription>\n </Alert>\n }\n\n if (!data?.projectById) {\n return <Alert variant=\"destructive\">\n <ExclamationTriangleIcon className=\"size-4\" />\n <AlertTitle>Error</AlertTitle>\n <AlertDescription>\n Project not found.\n </AlertDescription>\n </Alert>\n }\n\n return <ProjectDetails project={data.projectById} />;\n}","import { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst alertVariants = cva(\n \"relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground\",\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground\",\n destructive:\n \"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive\",\n info: \"border-info/50 text-info dark:border-info [&>svg]:text-info\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nconst Alert = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\n>(({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n));\nAlert.displayName = \"Alert\";\n\nconst AlertTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn(\"mb-1 font-medium leading-none tracking-tight\", className)}\n {...props}\n />\n));\nAlertTitle.displayName = \"AlertTitle\";\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm [&_p]:leading-relaxed\", className)}\n {...props}\n />\n));\nAlertDescription.displayName = \"AlertDescription\";\n\nexport { Alert, AlertTitle, AlertDescription };\n","\"use client\";\n\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { Check } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\",\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\"flex items-center justify-center text-current\")}\n >\n <Check className=\"size-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n));\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\n\nexport { Checkbox };\n","import { useEffect, useState, useContext } from \"react\";\nimport Uppy from \"@uppy/core\";\nimport AwsS3 from \"@uppy/aws-s3\";\nimport \"@uppy/core/dist/style.min.css\";\nimport \"@uppy/dashboard/dist/style.min.css\";\nimport '@uppy/core/dist/style.min.css';\nimport '@uppy/dashboard/dist/style.min.css';\nimport { getToken } from \"@/util/api\";\nimport { ConfigContext } from \"@/components/config-context\";\n\ninterface InitializeOptions {\n backend: string;\n callbacks?: {\n uploadSuccess?: (response: {\n file: any | null;\n url: string\n key: string\n }) => void;\n };\n fileKey?: string;\n fileKeyPrefix?: string;\n maxNumberOfFiles?: number;\n uppyOptions?: {\n id?: string;\n allowedFileTypes: string[];\n };\n useName?: boolean;\n}\n\nexport const initializeUppy = async (options: InitializeOptions): Promise<Uppy> => {\n if (!options.backend) {\n throw new Error(\"No backend set.\")\n }\n const { callbacks, maxNumberOfFiles, uppyOptions } = options || {};\n const { uploadSuccess } = callbacks || {};\n const { allowedFileTypes, id } = uppyOptions || {};\n const token = await getToken()\n\n const uppy = new Uppy({\n autoProceed: true,\n debug: false,\n id: id || \"uppy\",\n restrictions: {\n maxNumberOfFiles: maxNumberOfFiles || 5,\n allowedFileTypes: allowedFileTypes || [\".heic\", \".jpg\", \".jpeg\", \".png\", \".webp\", \".svg\"],\n }\n })\n .use(AwsS3, {\n id: \"Exulu\",\n endpoint: options.backend,\n headers: { \n Authorization: `Bearer ${token}`,\n Session: localStorage.getItem(\"session\") ?? \"\",\n }\n })\n .on(\"file-added\", async (file) => {\n console.debug(\"added\", file);\n })\n .on(\"upload-error\", (file, error) => {\n if (!file?.id) {\n return;\n }\n uppy.removeFile(file?.id);\n console.error(\"error\", error);\n })\n .on(\"upload-success\", (file, response) => {\n if (!response.uploadURL) {\n return;\n }\n if (uploadSuccess) {\n console.log(\"response\", response)\n uploadSuccess({\n file: file,\n key: response.uploadURL.split(\"/\").pop() || \"\",\n url: response.uploadURL,\n });\n }\n });\n\n return uppy;\n};\n\nfunction useUppy(options: InitializeOptions, deps: any[] = []) {\n const configContext = useContext(ConfigContext);\n const [uppy, setUppy] = useState<Uppy | undefined>(undefined);\n useEffect(() => {\n const initUppy = async () => {\n const uppyInstance = await initializeUppy({\n ...options,\n backend: configContext?.backend || \"\",\n });\n setUppy(uppyInstance);\n };\n initUppy()\n return () => {\n if (uppy) {\n uppy.destroy();\n setUppy(undefined);\n }\n };\n }, [...deps]);\n\n return uppy;\n}\n\nexport default useUppy;\n","import useUppy from \"@/hooks/use-uppy\";\nimport { Dashboard } from '@uppy/react';\nimport { useContext, useEffect, useState } from \"react\"\nimport { X, File, ImageIcon, FileText, FilePlus, Download, LoaderIcon, FileWarning, Upload, PlusSquareIcon, EyeIcon, PlusIcon, ChevronRightIcon, ChevronLeftIcon } from \"lucide-react\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from \"@/components/ui/dialog\"\nimport { ScrollArea } from \"@/components/ui/scroll-area\"\nimport '@uppy/core/dist/style.min.css';\nimport '@uppy/dashboard/dist/style.min.css';\nimport { files, S3FileListOutput } from \"@/util/api\"\nimport { useTheme } from \"next-themes\";\nimport { ConfigContext } from \"./config-context\";\nimport { useQuery as useTanstackQuery, useMutation as useTanstackMutation } from \"@tanstack/react-query\";\nimport { Loading } from \"./ui/loading\";\nimport { allFileTypes } from \"@/types/models/agent\";\nimport { Input } from \"./ui/input\";\nimport { DoubleArrowLeftIcon } from \"@radix-ui/react-icons\";\nimport { Card, CardContent, CardHeader, CardTitle } from \"./ui/card\";\nimport { Skeleton } from \"./ui/skeleton\";\n\nexport function FileDataCard({ s3key, children }: { s3key: string, children?: React.ReactNode }) {\n const { data, isLoading, error, refetch } = useTanstackQuery({\n queryKey: ['fileObject', s3key],\n queryFn: async () => {\n if (!s3key) {\n return null;\n }\n const result = await files.object(s3key);\n return result;\n },\n enabled: s3key !== undefined && s3key !== null,\n })\n\n useEffect(() => {\n if (s3key) {\n refetch();\n }\n }, [s3key]);\n\n if (!s3key) {\n return <Card>\n <CardContent className=\"p-3 flex\">\n <p className=\"text-sm text-muted-foreground m-auto\">No file selected</p>\n {children}\n </CardContent>\n </Card>;\n }\n\n return <Card>\n <CardHeader className=\"pb-3\">\n <CardTitle className=\"text-sm truncate\">{s3key.split(\"_EXULU_\").pop()}</CardTitle>\n </CardHeader>\n <CardContent className=\"pt-0\">\n {\n isLoading && (\n <div className=\"space-y-2\">\n <Skeleton className=\"h-4 w-full\" />\n <Skeleton className=\"h-4 w-2/3\" />\n </div>\n )\n }\n {!isLoading && data && (\n <div className=\"space-y-2\">\n <div className=\"flex items-center justify-between text-xs text-muted-foreground\">\n <span className=\"capitalize\">{data?.ContentType.split(\"/\").pop()}</span>\n <span>{(data?.ContentLength / 1024 / 1024).toFixed(2)} MB</span>\n </div>\n <div className=\"flex items-center justify-between text-xs text-muted-foreground\">\n <span>Last modified: {new Date(data?.LastModified).toLocaleDateString(\"en-US\", { year: \"numeric\", month: \"long\", day: \"numeric\", hour: \"2-digit\", minute: \"2-digit\" })}</span>\n <Button\n variant=\"secondary\"\n size=\"sm\"\n type=\"button\"\n className=\"h-7 px-2\"\n onClick={() => {\n files.download(s3key).then(async res => {\n console.log(\"res\", res);\n const json = await res.json()\n console.log(\"res\", json);\n const downloadUrl = json.url;\n window.open(downloadUrl, '_blank');\n return;\n })\n }}>\n <span className=\"mr-1 text-xs\">View</span>\n <Download className=\"h-3 w-3\" />\n </Button>\n </div>\n </div>\n )}\n {\n !isLoading && error && (\n <p className=\"text-xs text-muted-foreground\">{error.message}</p>\n )\n }\n {children}\n </CardContent>\n </Card>\n}\n\nexport default function UppyDashboard({ id, allowedFileTypes, dependencies, onConfirm, selectionLimit, buttonText }: {\n id: string,\n buttonText?: string,\n allowedFileTypes?: allFileTypes[],\n selectionLimit: number,\n dependencies: any[],\n onConfirm: (keys: string[]) => void\n}) {\n const [open, setOpen] = useState(false)\n return <Dialog open={open} onOpenChange={setOpen}>\n <DialogTrigger asChild>\n <Button variant=\"outline\">\n {buttonText && (\n <span className=\"mr-2\">{buttonText}</span>\n )\n }\n <FilePlus className=\"h-4 w-4\" />\n </Button>\n </DialogTrigger>\n <DialogContent className=\"sm:max-w-[900px]\">\n <DialogHeader>\n <DialogTitle>File Gallery</DialogTitle>\n <DialogDescription>Browse your previously uploaded files or upload new ones.</DialogDescription>\n </DialogHeader>\n <FileGalleryAndUpload\n id={id}\n allowedFileTypes={allowedFileTypes}\n dependencies={dependencies}\n selectionLimit={selectionLimit}\n onConfirm={(data) => {\n onConfirm(data)\n setOpen(false)\n }}\n />\n </DialogContent>\n </Dialog>;\n}\n\nexport const FileGalleryAndUpload = ({ id, allowedFileTypes, dependencies, onConfirm, selectionLimit }: {\n id: string,\n allowedFileTypes?: allFileTypes[],\n dependencies: any[],\n selectionLimit: number,\n onConfirm: (keys: string[]) => void\n}) => {\n\n if (!allowedFileTypes) {\n allowedFileTypes = [\n '.png',\n '.jpg',\n '.jpeg',\n '.gif',\n '.webp',\n '.pdf',\n '.docx',\n '.xlsx',\n '.xls',\n '.csv',\n '.pptx',\n '.ppt',\n '.mp3',\n '.wav',\n '.m4a',\n '.mp4',\n '.mpeg',\n '.mp4',\n '.m4a',\n '.mp3',\n '.mpeg',\n '.wav'\n ]\n }\n\n const [search, setSearch] = useState<string | undefined>(undefined)\n const [previousContinuationToken, setPreviousContinuationToken] = useState<string | undefined>(undefined)\n const [currentContinuationToken, setCurrentContinuationToken] = useState<string | undefined>(undefined)\n const configContext = useContext(ConfigContext);\n const [selected, setSelected] = useState<string[]>([])\n\n const addSelected = (key: string) => {\n if (selected.includes(key)) {\n setSelected(selected.filter((s) => s !== key))\n return;\n }\n if (selectionLimit === 1) {\n setSelected([key])\n return;\n }\n if (selected.length >= selectionLimit) {\n return;\n }\n setSelected([...selected, key])\n }\n\n const deleteFile = useTanstackMutation({\n mutationFn: async ({ key }: { key: string }) => {\n await files.delete(key)\n refetch();\n return;\n }\n })\n\n const { data, isLoading: loading, error, refetch } = useTanstackQuery({\n queryKey: ['filesQuery', search, currentContinuationToken],\n staleTime: 30000,\n queryFn: async (): Promise<S3FileListOutput> => {\n return files.list({\n search,\n continuationToken: currentContinuationToken\n })\n },\n })\n\n console.log(\"!! data !!\", data)\n\n const { theme } = useTheme()\n const uppy = useUppy(\n {\n backend: configContext?.backend || \"\",\n uppyOptions: {\n id,\n allowedFileTypes\n },\n callbacks: {\n uploadSuccess: async (data) => {\n console.log(\"data\", data)\n /* \n We no longer create items automatically for files uploaded via uppy.\n const item = {\n name: data.file.name,\n type: data.file.type,\n rights_mode: \"private\",\n s3key: `${user?.id}/${data.key}`\n }\n await createItemMutation({ variables: { input: item } }) */\n },\n },\n maxNumberOfFiles: 10,\n },\n dependencies,\n );\n\n useEffect(() => {\n refetch();\n }, [search, currentContinuationToken]);\n\n // Loading state\n if (!uppy) {\n return null;\n }\n\n return <>\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4 mt-4\">\n {/* Left side - Gallery of previously uploaded files */}\n <div className=\"border rounded-lg p-4\">\n <h3 className=\"text-sm font-medium mb-3\">Previously Uploaded Files</h3>\n\n {/* search */}\n <Input\n placeholder=\"Search files...\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n className=\"mb-3\"\n />\n <div className=\"flex items-center justify-between text-xs text-muted-foreground pb-2\">\n <span>{selected.length} / {selectionLimit} files selected</span>\n <span>Allowed file types: {allowedFileTypes?.map((type) => type).join(\", \")}</span>\n </div>\n <ScrollArea>\n {loading && (\n <div className=\"flex items-center justify-center h-full w-full grid grid-cols-2 sm:grid-cols-3 gap-3\">\n <Skeleton className=\"h-[120px] w-full\" />\n <Skeleton className=\"h-[120px] w-full\" />\n <Skeleton className=\"h-[120px] w-full\" />\n <Skeleton className=\"h-[120px] w-full\" />\n <Skeleton className=\"h-[120px] w-full\" />\n <Skeleton className=\"h-[120px] w-full\" />\n <Skeleton className=\"h-[120px] w-full\" />\n <Skeleton className=\"h-[120px] w-full\" />\n <Skeleton className=\"h-[120px] w-full\" />\n </div>\n )}\n <div className=\"grid grid-cols-2 sm:grid-cols-3 gap-3\">\n {\n !loading && !data?.Contents?.length && (\n <div className=\"col-span-full flex flex-col items-center justify-center py-12 text-center\">\n <FileWarning className=\"h-12 w-12 text-muted-foreground/50 mb-3\" />\n <p className=\"text-sm font-medium text-muted-foreground\">Nothing to see here... yet!</p>\n <p className=\"text-xs text-muted-foreground/75 mt-1\">Upload some files to get started</p>\n </div>\n )\n }\n {data?.Contents?.map((item: S3FileListOutput[\"Contents\"][0]) => {\n return (\n <FileItem s3Key={item.Key} onSelect={addSelected} active={selected.some((s) => s === item.Key)} onRemove={() => {\n deleteFile.mutate({\n key: item.Key\n })\n }} disabled={!allowedFileTypes ? false : !allowedFileTypes?.some((type) => item.Key.endsWith(type))} />\n )\n })}\n </div>\n\n <div className=\"flex items-center space-x-6 lg:space-x-8 pt-3\">\n <div className=\"flex items-center space-x-2\">\n <Button\n variant=\"outline\"\n className=\"hidden size-8 p-0 lg:flex\"\n onClick={() => {\n setCurrentContinuationToken(undefined)\n }}\n disabled={\n !currentContinuationToken ||\n loading\n }\n >\n <span className=\"sr-only\">Go to first page</span>\n <DoubleArrowLeftIcon className=\"size-4\" />\n </Button>\n <Button\n variant=\"outline\"\n className=\"size-8 p-0\"\n onClick={() => {\n setCurrentContinuationToken(previousContinuationToken)\n }}\n disabled={\n !currentContinuationToken ||\n loading\n }\n >\n <span className=\"sr-only\">Go to previous page</span>\n <ChevronLeftIcon className=\"size-4\" />\n </Button>\n <Button\n variant=\"outline\"\n className=\"size-8 p-0\"\n onClick={() => {\n setPreviousContinuationToken(currentContinuationToken)\n setCurrentContinuationToken(data?.NextContinuationToken)\n }}\n disabled={\n !data?.NextContinuationToken ||\n loading\n }>\n <span className=\"sr-only\">Go to next page</span>\n <ChevronRightIcon className=\"size-4\" />\n </Button>\n </div>\n </div>\n </ScrollArea>\n </div>\n {/* Right side - Upload area */}\n <div className=\"border rounded-lg p-4\">\n <h3 className=\"text-sm font-medium mb-3\">Upload New Files</h3>\n <Dashboard uppy={uppy} theme={theme === \"dark\" ? \"dark\" : \"light\"} />\n </div>\n </div>\n <div className=\"flex justify-end\">\n <Button variant=\"outline\" onClick={() => {\n onConfirm(selected)\n setSelected([])\n }}>\n Confirm\n </Button>\n </div>\n </>\n}\n\nexport const FileItem = ({ s3Key, onSelect, onRemove, active, disabled, addToContext }: {\n s3Key: string,\n onSelect?: (key: string) => void,\n onRemove?: (key: string) => void,\n active: boolean,\n disabled: boolean,\n addToContext?: (key: string) => void\n}) => {\n const getFileIcon = (s3Key: string) => {\n if (!s3Key) {\n return <FileText className=\"h-6 w-6 text-gray-500\" />\n }\n if (\n s3Key.toLowerCase().endsWith(\"jpg\") ||\n s3Key.toLowerCase().endsWith(\"jpeg\") ||\n s3Key.toLowerCase().endsWith(\"png\") ||\n s3Key.toLowerCase().endsWith(\"svg\")\n ) {\n return <ImageIcon className=\"h-6 w-6 text-blue-500\" />\n } else if (s3Key.endsWith(\"pdf\")) {\n return <File className=\"h-6 w-6 text-red-500\" />\n } else if (s3Key.endsWith(\"xls\") || s3Key.endsWith(\"xlsx\") || s3Key.endsWith(\"csv\")) {\n return <FileText className=\"h-6 w-6 text-green-500\" />\n } else if (s3Key.endsWith(\"ppt\") || s3Key.endsWith(\"pptx\")) {\n return <FileText className=\"h-6 w-6 text-orange-500\" />\n } else {\n return <FileText className=\"h-6 w-6 text-gray-500\" />\n }\n }\n\n return (\n <div\n key={s3Key}\n className={`${disabled ? 'opacity-50' : ''} group relative rounded-lg p-2 hover:bg-muted transition-colors cursor-pointer ${active ? 'border border-purple-500' : 'border'}`}\n onClick={() => {\n if (!disabled && onSelect) {\n onSelect(s3Key)\n }\n }}>\n <div className=\"aspect-square relative mb-2 bg-muted/50 rounded-md overflow-hidden flex items-center justify-center\">\n {(\n s3Key && (\n s3Key.toLowerCase().endsWith(\"jpg\") ||\n s3Key.toLowerCase().endsWith(\"jpeg\") ||\n s3Key.toLowerCase().endsWith(\"png\") ||\n s3Key.toLowerCase().endsWith(\"svg\")\n )\n ) ? (\n <SecureImageRenderComponent fileKey={s3Key} />\n ) : (\n <div className=\"flex flex-col items-center justify-center h-full\">\n {getFileIcon(s3Key)}\n <span className=\"text-xs text-muted-foreground mt-1 text-center\">{s3Key ? s3Key.split(\"_EXULU_\").pop() : s3Key}</span>\n </div>\n )}\n </div>\n <p className=\"text-xs truncate\">{s3Key ? s3Key.split(\"_EXULU_\").pop() : s3Key}</p>\n <div className=\"opacity-0 group-hover:opacity-100 flex absolute top-1 right-1\">\n\n {addToContext && (\n <Button variant=\"ghost\" size=\"icon\" type=\"button\" className=\"h-6 w-6 bg-background/80 hover:bg-background\" onClick={() => {\n addToContext(s3Key)\n }}>\n <PlusIcon className=\"h-3 w-3\" />\n <span className=\"sr-only\">Add</span>\n </Button>\n )}\n\n <Button\n variant=\"ghost\"\n size=\"icon\"\n type=\"button\"\n className=\"h-6 w-6 bg-background/80 hover:bg-background\"\n onClick={() => {\n files.download(s3Key).then(async res => {\n console.log(\"res\", res);\n const json = await res.json()\n console.log(\"res\", json);\n const downloadUrl = json.url;\n window.open(downloadUrl, '_blank');\n return;\n })\n }}>\n <Download className=\"h-3 w-3\" />\n <span className=\"sr-only\">View</span>\n </Button>\n\n {onRemove && (\n <Button\n onClick={(e) => {\n e.stopPropagation()\n onRemove(s3Key)\n }}\n variant=\"ghost\"\n type=\"button\"\n size=\"icon\"\n className=\"h-6 w-6 opacity-0 group-hover:opacity-100 bg-background/80 hover:bg-background ml-1\">\n <X className=\"h-3 w-3\" />\n <span className=\"sr-only\">Remove</span>\n </Button>\n )}\n </div>\n </div>\n )\n}\n\nlet signedUrlCache: {\n [key: string]: {\n url: string;\n expiresAt: number;\n }\n} = {};\n\nexport const getPresignedUrl = async (fileKey: string) => {\n if (signedUrlCache[fileKey]) {\n if (signedUrlCache[fileKey].expiresAt < Date.now()) {\n delete signedUrlCache[fileKey];\n } else {\n return signedUrlCache[fileKey].url;\n }\n }\n const response = await files.download(fileKey)\n const json = await response.json();\n console.log(\"json\", json)\n signedUrlCache[fileKey] = {\n url: json.url,\n expiresAt: Date.now() + 60 * 1000, // 1 minute\n }\n return json.url;\n}\n\nconst SecureImageRenderComponent = ({ fileKey }: { fileKey: string }) => {\n // Gets a signed key to show the image\n console.log(\"key\", fileKey)\n const query = useTanstackQuery({\n queryKey: ['imageQuery', fileKey],\n staleTime: 30000,\n queryFn: async () => {\n return getPresignedUrl(fileKey)\n },\n })\n\n if (query.isLoading) {\n return <div><LoaderIcon /></div>\n }\n\n if (!query.isLoading && !query.data) {\n return <div><FileWarning /></div>\n }\n\n return (<img\n src={query.data}\n alt={fileKey}\n className=\"object-cover w-full h-full\"\n />)\n\n}","import { GET_CONTEXTS } from \"@/queries/queries\";\nimport { Context } from \"@/types/models/context\";\nimport { useQuery } from \"@apollo/client\";\n\nexport const useContexts = () => {\n return useQuery<{ contexts: { items: Context[] } }>(GET_CONTEXTS, {\n variables: {\n limit: 20\n }\n })\n};","import { AgentSession } from \"@/types/models/agent-session\";\nimport { UserWithRole } from \"@/types/models/user\";\n\nexport const checkChatSessionWriteAccess = (session: AgentSession, user: UserWithRole) => {\n const isPrivate = session.rights_mode === 'private';\n const isPublic = session.rights_mode === 'public';\n const byUsers = session.rights_mode === 'users';\n const byRoles = session.rights_mode === 'roles';\n const isAdmin = user.super_admin;\n const isCreator = session.created_by === user.id.toString();\n \n let writeAccess = false;\n if (isPrivate && isCreator) {\n writeAccess = true;\n }\n if (isPublic) {\n writeAccess = true;\n }\n if (byUsers) {\n writeAccess = session.RBAC?.users?.find(u => u.id === user.id)?.rights === 'write';\n }\n if (byRoles) {\n writeAccess = session.RBAC?.roles?.find(r => r.id === user.role?.id)?.rights === 'write';\n }\n if (isAdmin) {\n writeAccess = true;\n }\n return writeAccess;\n}","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name AlertTriangle\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEuNzMgMTgtOC0xNGEyIDIgMCAwIDAtMy40OCAwbC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTNaIiAvPgogIDxwYXRoIGQ9Ik0xMiA5djQiIC8+CiAgPHBhdGggZD0iTTEyIDE3aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/alert-triangle\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst AlertTriangle = createLucideIcon('AlertTriangle', [\n [\n 'path',\n {\n d: 'm21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z',\n key: 'c3ski4',\n },\n ],\n ['path', { d: 'M12 9v4', key: 'juzpu7' }],\n ['path', { d: 'M12 17h.01', key: 'p32p05' }],\n]);\n\nexport default AlertTriangle;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ChevronsUpDown\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNyAxNSA1IDUgNS01IiAvPgogIDxwYXRoIGQ9Im03IDkgNS01IDUgNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevrons-up-down\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronsUpDown = createLucideIcon('ChevronsUpDown', [\n ['path', { d: 'm7 15 5 5 5-5', key: '1hf1tw' }],\n ['path', { d: 'm7 9 5-5 5 5', key: 'sgt6xg' }],\n]);\n\nexport default ChevronsUpDown;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Folder\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgMjBhMiAyIDAgMCAwIDItMlY4YTIgMiAwIDAgMC0yLTJoLTcuOWEyIDIgMCAwIDEtMS42OS0uOUw5LjYgMy45QTIgMiAwIDAgMCA3LjkzIDNINGEyIDIgMCAwIDAtMiAydjEzYTIgMiAwIDAgMCAyIDJaIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/folder\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Folder = createLucideIcon('Folder', [\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',\n key: '1kt360',\n },\n ],\n]);\n\nexport default Folder;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Globe\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTIgMmExNC41IDE0LjUgMCAwIDAgMCAyMCAxNC41IDE0LjUgMCAwIDAgMC0yMCIgLz4KICA8cGF0aCBkPSJNMiAxMmgyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/globe\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Globe = createLucideIcon('Globe', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20', key: '13o1zl' }],\n ['path', { d: 'M2 12h20', key: '9i4pu4' }],\n]);\n\nexport default Globe;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Loader2\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTJhOSA5IDAgMSAxLTYuMjE5LTguNTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/loader-2\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Loader2 = createLucideIcon('Loader2', [\n ['path', { d: 'M21 12a9 9 0 1 1-6.219-8.56', key: '13zald' }],\n]);\n\nexport default Loader2;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Lock\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTEiIHg9IjMiIHk9IjExIiByeD0iMiIgcnk9IjIiIC8+CiAgPHBhdGggZD0iTTcgMTFWN2E1IDUgMCAwIDEgMTAgMHY0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/lock\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Lock = createLucideIcon('Lock', [\n ['rect', { width: '18', height: '11', x: '3', y: '11', rx: '2', ry: '2', key: '1w4ew1' }],\n ['path', { d: 'M7 11V7a5 5 0 0 1 10 0v4', key: 'fwvmzm' }],\n]);\n\nexport default Lock;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name MessageSquare\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTVhMiAyIDAgMCAxLTIgMkg3bC00IDRWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/message-square\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst MessageSquare = createLucideIcon('MessageSquare', [\n ['path', { d: 'M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z', key: '1lielz' }],\n]);\n\nexport default MessageSquare;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Pencil\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgM2EyLjg1IDIuODMgMCAxIDEgNCA0TDcuNSAyMC41IDIgMjJsMS41LTUuNVoiIC8+CiAgPHBhdGggZD0ibTE1IDUgNCA0IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/pencil\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Pencil = createLucideIcon('Pencil', [\n ['path', { d: 'M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z', key: '5qss01' }],\n ['path', { d: 'm15 5 4 4', key: '1mk7zo' }],\n]);\n\nexport default Pencil;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Settings2\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgN2gtOSIgLz4KICA8cGF0aCBkPSJNMTQgMTdINSIgLz4KICA8Y2lyY2xlIGN4PSIxNyIgY3k9IjE3IiByPSIzIiAvPgogIDxjaXJjbGUgY3g9IjciIGN5PSI3IiByPSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/settings-2\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Settings2 = createLucideIcon('Settings2', [\n ['path', { d: 'M20 7h-9', key: '3s1dr2' }],\n ['path', { d: 'M14 17H5', key: 'gfn3mx' }],\n ['circle', { cx: '17', cy: '17', r: '3', key: '18b49y' }],\n ['circle', { cx: '7', cy: '7', r: '3', key: 'dfmy0x' }],\n]);\n\nexport default Settings2;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Shield\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMjJzOC00IDgtMTBWNWwtOC0zLTggM3Y3YzAgNiA4IDEwIDggMTAiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/shield\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Shield = createLucideIcon('Shield', [\n ['path', { d: 'M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10', key: '1irkt0' }],\n]);\n\nexport default Shield;\n","import * as React from 'react';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { useSize } from '@radix-ui/react-use-size';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\n\nimport type { Scope } from '@radix-ui/react-context';\n\nconst CHECKBOX_NAME = 'Checkbox';\n\ntype ScopedProps<P> = P & { __scopeCheckbox?: Scope };\nconst [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\n\ntype CheckedState = boolean | 'indeterminate';\n\ntype CheckboxContextValue<State extends CheckedState | boolean = CheckedState> = {\n checked: State | boolean;\n setChecked: React.Dispatch<React.SetStateAction<State | boolean>>;\n disabled: boolean | undefined;\n control: HTMLButtonElement | null;\n setControl: React.Dispatch<React.SetStateAction<HTMLButtonElement | null>>;\n name: string | undefined;\n form: string | undefined;\n value: string | number | readonly string[];\n hasConsumerStoppedPropagationRef: React.RefObject<boolean>;\n required: boolean | undefined;\n defaultChecked: boolean | undefined;\n isFormControl: boolean;\n bubbleInput: HTMLInputElement | null;\n setBubbleInput: React.Dispatch<React.SetStateAction<HTMLInputElement | null>>;\n};\n\nconst [CheckboxProviderImpl, useCheckboxContext] =\n createCheckboxContext<CheckboxContextValue>(CHECKBOX_NAME);\n\n/* -------------------------------------------------------------------------------------------------\n * CheckboxProvider\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CheckboxProviderProps<State extends CheckedState = CheckedState> {\n checked?: State | boolean;\n defaultChecked?: State | boolean;\n required?: boolean;\n onCheckedChange?(checked: State | boolean): void;\n name?: string;\n form?: string;\n disabled?: boolean;\n value?: string | number | readonly string[];\n children?: React.ReactNode;\n}\n\nfunction CheckboxProvider<State extends CheckedState = CheckedState>(\n props: ScopedProps<CheckboxProviderProps<State>>\n) {\n const {\n __scopeCheckbox,\n checked: checkedProp,\n children,\n defaultChecked,\n disabled,\n form,\n name,\n onCheckedChange,\n required,\n value = 'on',\n // @ts-expect-error\n internal_do_not_use_render,\n } = props;\n\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: CHECKBOX_NAME,\n });\n const [control, setControl] = React.useState<HTMLButtonElement | null>(null);\n const [bubbleInput, setBubbleInput] = React.useState<HTMLInputElement | null>(null);\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = control\n ? !!form || !!control.closest('form')\n : // We set this to true by default so that events bubble to forms without JS (SSR)\n true;\n\n const context: CheckboxContextValue<State> = {\n checked: checked,\n disabled: disabled,\n setChecked: setChecked,\n control: control,\n setControl: setControl,\n name: name,\n form: form,\n value: value,\n hasConsumerStoppedPropagationRef: hasConsumerStoppedPropagationRef,\n required: required,\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked,\n isFormControl: isFormControl,\n bubbleInput,\n setBubbleInput,\n };\n\n return (\n <CheckboxProviderImpl\n scope={__scopeCheckbox}\n {...(context as unknown as CheckboxContextValue<CheckedState>)}\n >\n {isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children}\n </CheckboxProviderImpl>\n );\n}\n\n/* -------------------------------------------------------------------------------------------------\n * CheckboxTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'CheckboxTrigger';\n\ninterface CheckboxTriggerProps\n extends Omit<\n React.ComponentPropsWithoutRef<typeof Primitive.button>,\n keyof CheckboxProviderProps\n > {\n children?: React.ReactNode;\n}\n\nconst CheckboxTrigger = React.forwardRef<HTMLButtonElement, CheckboxTriggerProps>(\n (\n { __scopeCheckbox, onKeyDown, onClick, ...checkboxProps }: ScopedProps<CheckboxTriggerProps>,\n forwardedRef\n ) => {\n const {\n control,\n value,\n disabled,\n checked,\n required,\n setControl,\n setChecked,\n hasConsumerStoppedPropagationRef,\n isFormControl,\n bubbleInput,\n } = useCheckboxContext(TRIGGER_NAME, __scopeCheckbox);\n const composedRefs = useComposedRefs(forwardedRef, setControl);\n\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form = control?.form;\n if (form) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form.addEventListener('reset', reset);\n return () => form.removeEventListener('reset', reset);\n }\n }, [control, setChecked]);\n\n return (\n <Primitive.button\n type=\"button\"\n role=\"checkbox\"\n aria-checked={isIndeterminate(checked) ? 'mixed' : checked}\n aria-required={required}\n data-state={getState(checked)}\n data-disabled={disabled ? '' : undefined}\n disabled={disabled}\n value={value}\n {...checkboxProps}\n ref={composedRefs}\n onKeyDown={composeEventHandlers(onKeyDown, (event) => {\n // According to WAI ARIA, Checkboxes don't activate on enter keypress\n if (event.key === 'Enter') event.preventDefault();\n })}\n onClick={composeEventHandlers(onClick, (event) => {\n setChecked((prevChecked) => (isIndeterminate(prevChecked) ? true : !prevChecked));\n if (bubbleInput && isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n // if checkbox has a bubble input and is a form control, stop\n // propagation from the button so that we only propagate one click\n // event (from the input). We propagate changes from an input so\n // that native form validation works and form events reflect\n // checkbox updates.\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })}\n />\n );\n }\n);\n\nCheckboxTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * Checkbox\n * -----------------------------------------------------------------------------------------------*/\n\ntype CheckboxElement = React.ComponentRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface CheckboxProps extends Omit<PrimitiveButtonProps, 'checked' | 'defaultChecked'> {\n checked?: CheckedState;\n defaultChecked?: CheckedState;\n required?: boolean;\n onCheckedChange?(checked: CheckedState): void;\n}\n\nconst Checkbox = React.forwardRef<CheckboxElement, CheckboxProps>(\n (props: ScopedProps<CheckboxProps>, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked,\n defaultChecked,\n required,\n disabled,\n value,\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n\n return (\n <CheckboxProvider\n __scopeCheckbox={__scopeCheckbox}\n checked={checked}\n defaultChecked={defaultChecked}\n disabled={disabled}\n required={required}\n onCheckedChange={onCheckedChange}\n name={name}\n form={form}\n value={value}\n // @ts-expect-error\n internal_do_not_use_render={({ isFormControl }: CheckboxContextValue) => (\n <>\n <CheckboxTrigger\n {...checkboxProps}\n ref={forwardedRef}\n // @ts-expect-error\n __scopeCheckbox={__scopeCheckbox}\n />\n {isFormControl && (\n <CheckboxBubbleInput\n // @ts-expect-error\n __scopeCheckbox={__scopeCheckbox}\n />\n )}\n </>\n )}\n />\n );\n }\n);\n\nCheckbox.displayName = CHECKBOX_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * CheckboxIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'CheckboxIndicator';\n\ntype CheckboxIndicatorElement = React.ComponentRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = React.ComponentPropsWithoutRef<typeof Primitive.span>;\ninterface CheckboxIndicatorProps extends PrimitiveSpanProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst CheckboxIndicator = React.forwardRef<CheckboxIndicatorElement, CheckboxIndicatorProps>(\n (props: ScopedProps<CheckboxIndicatorProps>, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return (\n <Presence\n present={forceMount || isIndeterminate(context.checked) || context.checked === true}\n >\n <Primitive.span\n data-state={getState(context.checked)}\n data-disabled={context.disabled ? '' : undefined}\n {...indicatorProps}\n ref={forwardedRef}\n style={{ pointerEvents: 'none', ...props.style }}\n />\n </Presence>\n );\n }\n);\n\nCheckboxIndicator.displayName = INDICATOR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * CheckboxBubbleInput\n * -----------------------------------------------------------------------------------------------*/\n\nconst BUBBLE_INPUT_NAME = 'CheckboxBubbleInput';\n\ntype InputProps = React.ComponentPropsWithoutRef<typeof Primitive.input>;\ninterface CheckboxBubbleInputProps extends Omit<InputProps, 'checked'> {}\n\nconst CheckboxBubbleInput = React.forwardRef<HTMLInputElement, CheckboxBubbleInputProps>(\n ({ __scopeCheckbox, ...props }: ScopedProps<CheckboxBubbleInputProps>, forwardedRef) => {\n const {\n control,\n hasConsumerStoppedPropagationRef,\n checked,\n defaultChecked,\n required,\n disabled,\n name,\n value,\n form,\n bubbleInput,\n setBubbleInput,\n } = useCheckboxContext(BUBBLE_INPUT_NAME, __scopeCheckbox);\n\n const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n\n // Bubble checked change to parents (e.g form change event)\n React.useEffect(() => {\n const input = bubbleInput;\n if (!input) return;\n\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n 'checked'\n ) as PropertyDescriptor;\n const setChecked = descriptor.set;\n\n const bubbles = !hasConsumerStoppedPropagationRef.current;\n if (prevChecked !== checked && setChecked) {\n const event = new Event('click', { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [bubbleInput, prevChecked, checked, hasConsumerStoppedPropagationRef]);\n\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return (\n <Primitive.input\n type=\"checkbox\"\n aria-hidden\n defaultChecked={defaultChecked ?? defaultCheckedRef.current}\n required={required}\n disabled={disabled}\n name={name}\n value={value}\n form={form}\n {...props}\n tabIndex={-1}\n ref={composedRefs}\n style={{\n ...props.style,\n ...controlSize,\n position: 'absolute',\n pointerEvents: 'none',\n opacity: 0,\n margin: 0,\n // We transform because the input is absolutely positioned but we have\n // rendered it **after** the button. This pulls it back to sit on top\n // of the button.\n transform: 'translateX(-100%)',\n }}\n />\n );\n }\n);\n\nCheckboxBubbleInput.displayName = BUBBLE_INPUT_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\nfunction isFunction(value: unknown): value is (...args: any[]) => any {\n return typeof value === 'function';\n}\n\nfunction isIndeterminate(checked?: CheckedState): checked is 'indeterminate' {\n return checked === 'indeterminate';\n}\n\nfunction getState(checked: CheckedState) {\n return isIndeterminate(checked) ? 'indeterminate' : checked ? 'checked' : 'unchecked';\n}\n\nexport {\n createCheckboxScope,\n //\n Checkbox,\n CheckboxProvider,\n CheckboxTrigger,\n CheckboxIndicator,\n CheckboxBubbleInput,\n //\n Checkbox as Root,\n CheckboxProvider as Provider,\n CheckboxTrigger as Trigger,\n CheckboxIndicator as Indicator,\n CheckboxBubbleInput as BubbleInput,\n};\nexport type {\n CheckboxProps,\n CheckboxProviderProps,\n CheckboxTriggerProps,\n CheckboxIndicatorProps,\n CheckboxBubbleInputProps,\n CheckedState,\n};\n","import * as React from 'react';\nimport { Primitive } from '@radix-ui/react-primitive';\n\n/* -------------------------------------------------------------------------------------------------\n * Label\n * -----------------------------------------------------------------------------------------------*/\n\nconst NAME = 'Label';\n\ntype LabelElement = React.ComponentRef<typeof Primitive.label>;\ntype PrimitiveLabelProps = React.ComponentPropsWithoutRef<typeof Primitive.label>;\ninterface LabelProps extends PrimitiveLabelProps {}\n\nconst Label = React.forwardRef<LabelElement, LabelProps>((props, forwardedRef) => {\n return (\n <Primitive.label\n {...props}\n ref={forwardedRef}\n onMouseDown={(event) => {\n // only prevent text selection if clicking inside the label itself\n const target = event.target as HTMLElement;\n if (target.closest('button, input, select, textarea')) return;\n\n props.onMouseDown?.(event);\n // prevent text selection when double clicking label\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }}\n />\n );\n});\n\nLabel.displayName = NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Label;\n\nexport {\n Label,\n //\n Root,\n};\nexport type { LabelProps };\n"],"names":["Promise","resolve","then","__webpack_require__","bind","Files","createLucideIcon","d","key","PackageMinus","points","x1","x2","y1","y2","PlusSquare","width","height","x","y","rx","ItemsSelectionModal","data","onConfirm","param","loading","error","useContexts","context","setContext","useState","undefined","open","setOpen","jsx_runtime","jsxs","Dialog","onOpenChange","value","jsx","DialogTrigger","asChild","Button","className","variant","PlusSquareIcon","DialogContent","DialogHeader","DialogTitle","DialogDescription","Command","CommandInput","placeholder","CommandList","CommandEmpty","CommandGroup","heading","contexts","items","map","CommandItem","onSelect","name","id","ItemsList","console","log","item","__items","_","search","setSearch","refetch","previousData","prev","useQuery","GET_ITEMS","fetchPolicy","nextFetchPolicy","skip","variables","page","limit","sort","field","direction","filters","archived","ne","contains","concat","onValueChange","Loading","PAGINATION_POSTFIX","length","_this","ProjectDetails","project","sessionsData","agentsData","isEditing","setIsEditing","isDeleteDialogOpen","setIsDeleteDialogOpen","isAgentSelectionOpen","setIsAgentSelectionOpen","agentSearch","setAgentSearch","activeView","setActiveView","user","useContext","UserContext","router","useRouter","deleteOptions","setDeleteOptions","deleteItems","deleteSessions","formData","setFormData","description","custom_instructions","toast","useToast","rbac","setRbac","rights_mode","users","RBAC","roles","projects","projectItems","setProjectItems","project_items","updateProject","isSaving","useMutation","UPDATE_PROJECT","deleteProject","DELETE_PROJECT","deletingProject","setDeletingProject","sessionsLoading","refetchSessions","GET_AGENT_SESSIONS","eq","agentsLoading","GET_AGENTS","apolloClient","useApolloClient","createAgentSession","isCreatingSession","CREATE_AGENT_SESSION","updateAgentSession","isUpdatingSession","UPDATE_AGENT_SESSION_PROJECT","deleteSession","isDeletingSession","REMOVE_AGENT_SESSION_BY_ID","chatSessions","agent_sessionsPagination","agents","agentsPagination","filteredAgents","React","filter","agent","toLowerCase","includes","handleSave","trim","title","input","message","handleAgentSelect","result","rights","sessionId","agent_sessionsCreateOne","push","handleDeleteProject","all","split","mutate","mutation","DELETE_ITEM","s3key","files","delete","session","div","Card","CardContent","h3","p","onClick","Settings2","MessageSquare","Shield","CardHeader","CardTitle","CardDescription","Label","htmlFor","Input","onChange","e","target","Textarea","rows","CardFooter","Fragment","span","Pencil","update","ProjectItem","gid","onRemove","g","Plus","writeAccess","checkChatSessionWriteAccess","Link","href","Tooltip","TooltipTrigger","disabled","size","TooltipContent","Trash2","RBACControl","allowedModes","initialRightsMode","initialUsers","initialRoles","initialProjects","AlertTriangle","h4","Checkbox","checked","onCheckedChange","label","DialogFooter","Search","Array","i","Skeleton","image","img","src","alt","Bot","type","Badge","active","GET_ITEM_BY_ID","fields","values","file","FileItem","s3Key","ProjectPage","params","useParams","projectId","GET_PROJECT_BY_ID","Alert","ExclamationTriangleIcon","AlertTitle","AlertDescription","projectById","alertVariants","cva","variants","default","destructive","info","defaultVariants","ref","props","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","role","cn","displayName","h5","CheckboxPrimitive","Check","initializeUppy","options","localStorage","backend","callbacks","maxNumberOfFiles","uppyOptions","uploadSuccess","allowedFileTypes","token","getToken","uppy","Uppy","autoProceed","debug","restrictions","use","AwsS3","endpoint","headers","Authorization","Session","getItem","on","removeFile","response","uploadURL","pop","url","use_uppy","deps","configContext","ConfigContext","setUppy","useEffect","initUppy","destroy","FileDataCard","children","isLoading","useTanstackQuery","queryKey","queryFn","object","enabled","ContentType","ContentLength","toFixed","Date","LastModified","toLocaleDateString","year","month","day","hour","minute","download","res","json","downloadUrl","window","Download","UppyDashboard","dependencies","selectionLimit","buttonText","FilePlus","FileGalleryAndUpload","previousContinuationToken","setPreviousContinuationToken","currentContinuationToken","setCurrentContinuationToken","selected","setSelected","addSelected","s","deleteFile","useTanstackMutation","mutationFn","staleTime","list","continuationToken","theme","useTheme","useUppy","join","ScrollArea","Contents","FileWarning","Key","some","endsWith","DoubleArrowLeftIcon","ChevronLeftIcon","NextContinuationToken","ChevronRightIcon","Dashboard","addToContext","SecureImageRenderComponent","fileKey","ImageIcon","File","FileText","PlusIcon","stopPropagation","X","signedUrlCache","getPresignedUrl","expiresAt","now","query","LoaderIcon","GET_CONTEXTS","isPrivate","isPublic","byUsers","byRoles","isAdmin","super_admin","isCreator","created_by","toString","find","u","r","ChevronsUpDown","Folder","Globe","cx","cy","Loader2","Lock","ry","CHECKBOX_NAME","createCheckboxContext","createCheckboxScope","createContextScope","CheckboxProviderImpl","useCheckboxContext","CheckboxProvider","__scopeCheckbox","checkedProp","defaultChecked","form","required","internal_do_not_use_render","setChecked","useControllableState","prop","defaultProp","caller","control","setControl","bubbleInput","setBubbleInput","hasConsumerStoppedPropagationRef","isFormControl","closest","isIndeterminate","scope","isFunction","TRIGGER_NAME","CheckboxTrigger","forwardedRef","onKeyDown","checkboxProps","composedRefs","useComposedRefs","initialCheckedStateRef","reset","current","addEventListener","removeEventListener","Primitive","button","getState","composeEventHandlers","event","preventDefault","prevChecked","isPropagationStopped","CheckboxBubbleInput","INDICATOR_NAME","CheckboxIndicator","forceMount","indicatorProps","Presence","present","style","pointerEvents","BUBBLE_INPUT_NAME","usePrevious","controlSize","useSize","descriptor","getOwnPropertyDescriptor","HTMLInputElement","prototype","set","bubbles","Event","indeterminate","call","dispatchEvent","defaultCheckedRef","tabIndex","position","opacity","margin","transform","onMouseDown","defaultPrevented","detail","Root"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1007],{33954:function(e,t,n){Promise.resolve().then(n.bind(n,21654))},21654:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return S}});var s=n(57437),r=n(27648),a=n(73247),i=n(99397),o=n(86595),l=n(62869),c=n(95186),d=n(7211),u=n(12199),f=n(27689),m=n(2265),p=n(37091),x=n(99376),h=n(93022),v=n(13832),g=n(26815),j=n(76818),y=n(26110),N=n(15863),b=n(77992);function w(e){let{open:t,onOpenChange:n,refetchProjects:r}=e,[a,i]=(0,m.useState)({name:"",description:"",custom_instructions:""}),[o,d]=(0,m.useState)(!1),{toast:p}=(0,b.pm)(),h=(0,x.useRouter)(),[v]=(0,u.D)(f.kp,{refetchQueries:[{query:f.fM,variables:{page:1,limit:200}}]}),w=async e=>{if(e.preventDefault(),!a.name.trim()){p({title:"Validation Error",description:"Project name is required.",variant:"destructive"});return}d(!0);try{var t,s;let e=await v({variables:{input:{name:a.name.trim(),description:a.description.trim()||null,custom_instructions:a.custom_instructions.trim()||null,rights_mode:"private"}}});console.log(e);let o=null===(s=e.data)||void 0===s?void 0:null===(t=s.projectsCreateOne)||void 0===t?void 0:t.item;o&&(p({title:"Success",description:"Project created successfully!"}),i({name:"",description:"",custom_instructions:""}),n(!1),h.push("/projects/".concat(o.id)),r())}catch(e){console.error("Error creating project:",e),p({title:"Error",description:e.message||"Failed to create project. Please try again.",variant:"destructive"})}finally{d(!1)}};return(0,s.jsx)(y.Vq,{open:t,onOpenChange:n,children:(0,s.jsxs)(y.cZ,{className:"sm:max-w-[500px]",children:[(0,s.jsxs)(y.fK,{children:[(0,s.jsx)(y.$N,{children:"Create New Project"}),(0,s.jsx)(y.Be,{children:"Create a new project to organize your chat sessions and documents."})]}),(0,s.jsxs)("form",{onSubmit:w,className:"space-y-4",children:[(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)(g._,{htmlFor:"project-name",children:"Project Name *"}),(0,s.jsx)(c.I,{id:"project-name",value:a.name,onChange:e=>i({...a,name:e.target.value}),placeholder:"Enter project name",required:!0,disabled:o})]}),(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)(g._,{htmlFor:"project-description",children:"Description"}),(0,s.jsx)(j.g,{id:"project-description",value:a.description,onChange:e=>i({...a,description:e.target.value}),placeholder:"Describe what this project is about...",rows:3,disabled:o})]}),(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)(g._,{htmlFor:"custom-instructions",children:"Custom Instructions"}),(0,s.jsx)(j.g,{id:"custom-instructions",value:a.custom_instructions,onChange:e=>i({...a,custom_instructions:e.target.value}),placeholder:"Enter custom instructions for chat sessions in this project...",rows:3,disabled:o})]}),(0,s.jsxs)(y.cN,{children:[(0,s.jsx)(l.z,{type:"button",variant:"outline",onClick:()=>{i({name:"",description:"",custom_instructions:""}),n(!1)},disabled:o,children:"Cancel"}),(0,s.jsx)(l.z,{type:"submit",disabled:o,children:o?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(N.Z,{className:"mr-2 h-4 w-4 animate-spin"}),"Creating..."]}):"Create Project"})]})]})]})})}function _(){var e,t,n,g,j,y,N;let[b,_]=(0,m.useState)(""),[S,k]=(0,m.useState)(!1),E=(0,x.usePathname)(),{user:C}=(0,m.useContext)(v.S),[D,O]=(0,m.useState)(C),M=(0,d.aM)(f.Ak,{fetchPolicy:"no-cache",nextFetchPolicy:"network-only",variables:{ids:(null==D?void 0:D.favourite_projects)||[]},skip:!(null==D?void 0:null===(e=D.favourite_projects)||void 0===e?void 0:e.length)}),T=(0,d.aM)(f.fM,{fetchPolicy:"no-cache",nextFetchPolicy:"network-only",variables:{page:1,limit:200,filters:b?[{name:{contains:b}}]:void 0}});(0,m.useEffect)(()=>{T.refetch()},[E]);let[I]=(0,u.D)(f.d5),P=e=>{var t;return e.image?(0,s.jsx)("img",{src:e.image,alt:"".concat(e.name," thumbnail"),className:"h-4 w-4 rounded-full object-cover"}):(0,s.jsx)("div",{className:"h-4 w-4 rounded-full bg-gradient-to-br from-green-500 to-blue-600 flex items-center justify-center text-white text-xs font-medium",children:(null===(t=e.name)||void 0===t?void 0:t.charAt(0).toUpperCase())||"P"})},A=async(e,t)=>{t.preventDefault(),t.stopPropagation();try{let t;let n=(null==D?void 0:D.favourite_projects)||[];t=n.includes(e)?n.filter(t=>t!==e):[...n,e],await I({variables:{id:null==D?void 0:D.id,favourite_projects:t}}),O(e=>({...e,favourite_projects:t}))}catch(e){console.error("Error updating favourite projects:",e)}},z=(null==T?void 0:null===(n=T.data)||void 0===n?void 0:null===(t=n.projectsPagination)||void 0===t?void 0:t.items)||(null==T?void 0:null===(j=T.previousData)||void 0===j?void 0:null===(g=j.projectsPagination)||void 0===g?void 0:g.items)||[],F=(null==M?void 0:null===(y=M.data)||void 0===y?void 0:y.projectByIds)||(null==M?void 0:null===(N=M.previousData)||void 0===N?void 0:N.projectByIds)||[];return(0,s.jsxs)("div",{className:"h-full w-[250px] flex-col gap-2 p-2",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsxs)("div",{className:"relative flex-1",children:[(0,s.jsx)(a.Z,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),(0,s.jsx)(c.I,{type:"search",placeholder:"Search projects...",className:"pl-8",value:b,onChange:e=>_(e.target.value)})]}),(0,s.jsx)(l.z,{variant:"outline",size:"lg",className:"h-10 w-10 p-0",onClick:()=>{k(!0)},title:"Create new project",children:(0,s.jsx)(i.Z,{className:"h-3 w-3"})})]}),(0,s.jsx)("div",{className:"flex-1 overflow-auto space-y-1",children:(0,s.jsxs)(s.Fragment,{children:[(null==D?void 0:D.favourite_projects)&&F.length>0&&!b&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"text-xs font-medium text-muted-foreground px-2 py-1",children:"Favorites"}),M.loading&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(h.O,{className:"w-[100%] h-[32px] rounded-lg"}),(0,s.jsx)(h.O,{className:"w-[100%] h-[32px] rounded-lg"})]}),!M.loading&&(0,s.jsx)(s.Fragment,{children:F.map(e=>(0,s.jsxs)("div",{className:"flex items-center gap-1",children:[(0,s.jsx)(r.default,{href:"/projects/".concat(e.id),className:"flex-1",children:(0,s.jsxs)(l.z,{variant:E.includes(e.id)?"secondary":"ghost",className:"w-full justify-start gap-2 pr-1",children:[P(e),(0,s.jsx)("span",{className:"flex-1 text-left",children:(0,s.jsx)(p.L,{text:e.name,length:10})})]})}),(0,s.jsx)(l.z,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0 flex-shrink-0",onClick:t=>A(e.id,t),children:(0,s.jsx)(o.Z,{className:"h-3 w-3 fill-yellow-400 text-yellow-400"})})]},e.id))})]}),(0,s.jsx)("div",{className:"text-xs font-medium text-muted-foreground px-2 py-1 mt-2",children:"All projects:"}),T.loading&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(h.O,{className:"w-[100%] h-[32px] rounded-lg"}),(0,s.jsx)(h.O,{className:"w-[100%] h-[32px] rounded-lg"}),(0,s.jsx)(h.O,{className:"w-[100%] h-[32px] rounded-lg"})]}),!T.loading&&z.map(e=>{var t;return(0,s.jsxs)("div",{className:"flex items-center gap-1",children:[(0,s.jsx)(r.default,{href:"/projects/".concat(e.id),className:"flex-1",children:(0,s.jsxs)(l.z,{variant:E.includes(e.id)?"secondary":"ghost",className:"w-full justify-start gap-2 pr-1",children:[P(e),(0,s.jsx)("span",{className:"flex-1 text-left",children:(0,s.jsx)(p.L,{text:e.name,length:14})})]})}),(0,s.jsx)(l.z,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0 flex-shrink-0",onClick:t=>A(e.id,t),children:(0,s.jsx)(o.Z,{className:"h-3 w-3 ".concat((null==D?void 0:null===(t=D.favourite_projects)||void 0===t?void 0:t.includes(e.id))?"fill-yellow-400 text-yellow-400":"")})})]},e.id)})]})}),(0,s.jsx)(w,{open:S,onOpenChange:k,refetchProjects:T.refetch})]})}function S(e){let{children:t}=e;return(0,s.jsxs)("div",{className:"flex h-full",children:[(0,s.jsx)("div",{className:"border-r bg-muted/10",children:(0,s.jsx)(_,{})}),t]})}},37091:function(e,t,n){"use strict";n.d(t,{L:function(){return r}});var s=n(57437);function r(e){let{text:t,length:n}=e;return t.length>n?(0,s.jsxs)(s.Fragment,{children:[t.slice(0,n),"..."]}):(0,s.jsx)(s.Fragment,{children:t})}},26110:function(e,t,n){"use strict";n.d(t,{$N:function(){return x},Be:function(){return h},Vq:function(){return l},cN:function(){return p},cZ:function(){return f},fK:function(){return m},hg:function(){return c}});var s=n(57437),r=n(34567),a=n(32489),i=n(2265),o=n(94508);let l=r.fC,c=r.xz,d=r.h_;r.x8;let u=i.forwardRef((e,t)=>{let{className:n,...a}=e;return(0,s.jsx)(r.aV,{ref:t,className:(0,o.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",n),...a})});u.displayName=r.aV.displayName;let f=i.forwardRef((e,t)=>{let{className:n,children:i,...l}=e;return(0,s.jsxs)(d,{children:[(0,s.jsx)(u,{}),(0,s.jsxs)(r.VY,{ref:t,className:(0,o.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",n),...l,children:[i,(0,s.jsxs)(r.x8,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[(0,s.jsx)(a.Z,{className:"size-4"}),(0,s.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});f.displayName=r.VY.displayName;let m=e=>{let{className:t,...n}=e;return(0,s.jsx)("div",{className:(0,o.cn)("flex flex-col space-y-1.5 text-center sm:text-left",t),...n})};m.displayName="DialogHeader";let p=e=>{let{className:t,...n}=e;return(0,s.jsx)("div",{className:(0,o.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...n})};p.displayName="DialogFooter";let x=i.forwardRef((e,t)=>{let{className:n,...a}=e;return(0,s.jsx)(r.Dx,{ref:t,className:(0,o.cn)("text-lg font-semibold leading-none tracking-tight",n),...a})});x.displayName=r.Dx.displayName;let h=i.forwardRef((e,t)=>{let{className:n,...a}=e;return(0,s.jsx)(r.dk,{ref:t,className:(0,o.cn)("text-sm text-muted-foreground",n),...a})});h.displayName=r.dk.displayName},26815:function(e,t,n){"use strict";n.d(t,{_:function(){return c}});var s=n(57437),r=n(6394),a=n(90535),i=n(2265),o=n(94508);let l=(0,a.j)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),c=i.forwardRef((e,t)=>{let{className:n,...a}=e;return(0,s.jsx)(r.f,{ref:t,className:(0,o.cn)(l(),n),...a})});c.displayName=r.f.displayName},76818:function(e,t,n){"use strict";n.d(t,{g:function(){return i}});var s=n(57437),r=n(2265),a=n(94508);let i=r.forwardRef((e,t)=>{let{className:n,...r}=e;return(0,s.jsx)("textarea",{className:(0,a.cn)("flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",n),ref:t,...r})});i.displayName="Textarea"},77992:function(e,t,n){"use strict";n.d(t,{Am:function(){return u},pm:function(){return f}});var s=n(2265);let r=0,a=new Map,i=e=>{if(a.has(e))return;let t=setTimeout(()=>{a.delete(e),d({type:"REMOVE_TOAST",toastId:e})},1e6);a.set(e,t)},o=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case"DISMISS_TOAST":{let{toastId:n}=t;return n?i(n):e.toasts.forEach(e=>{i(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===n||void 0===n?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===t.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},l=[],c={toasts:[]};function d(e){c=o(c,e),l.forEach(e=>{e(c)})}function u(e){let{...t}=e,n=(r=(r+1)%Number.MAX_SAFE_INTEGER).toString(),s=()=>d({type:"DISMISS_TOAST",toastId:n});return d({type:"ADD_TOAST",toast:{...t,id:n,open:!0,onOpenChange:e=>{e||s()}}}),{id:n,dismiss:s,update:e=>d({type:"UPDATE_TOAST",toast:{...e,id:n}})}}function f(){let[e,t]=s.useState(c);return s.useEffect(()=>(l.push(t),()=>{let e=l.indexOf(t);e>-1&&l.splice(e,1)}),[e]),{...e,toast:u,dismiss:e=>d({type:"DISMISS_TOAST",toastId:e})}}},15863:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});let s=(0,n(39763).Z)("Loader2",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},99397:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});let s=(0,n(39763).Z)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},73247:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});let s=(0,n(39763).Z)("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]])},86595:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});let s=(0,n(39763).Z)("Star",[["polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2",key:"8f66p6"}]])},12199:function(e,t,n){"use strict";n.d(t,{D:function(){return u}});var s=n(5853),r=n(79285),a=n(49466),i=n(36628),o=n(59058),l=n(77828),c=n(63251),d=n(59394).Nq?r.useLayoutEffect:r.useEffect;function u(e,t){var n=(0,c.x)(null==t?void 0:t.client);(0,o.Vp)(e,o.n_.Mutation);var u=r.useState({called:!1,loading:!1,client:n}),f=u[0],m=u[1],p=r.useRef({result:f,mutationId:0,isMounted:!0,client:n,mutation:e,options:t});d(function(){Object.assign(p.current,{client:n,options:t,mutation:e})});var x=r.useCallback(function(e){void 0===e&&(e={});var t=p.current,n=t.options,r=t.mutation,o=(0,s.pi)((0,s.pi)({},n),{mutation:r}),c=e.client||p.current.client;p.current.result.loading||o.ignoreResults||!p.current.isMounted||m(p.current.result={loading:!0,error:void 0,data:void 0,called:!0,client:c});var d=++p.current.mutationId,u=(0,a.J)(o,e);return c.mutate(u).then(function(t){var n,s,r=t.data,a=t.errors,o=a&&a.length>0?new l.cA({graphQLErrors:a}):void 0,f=e.onError||(null===(n=p.current.options)||void 0===n?void 0:n.onError);if(o&&f&&f(o,u),d===p.current.mutationId&&!u.ignoreResults){var x={called:!0,loading:!1,data:r,error:o,client:c};p.current.isMounted&&!(0,i.D)(p.current.result,x)&&m(p.current.result=x)}var h=e.onCompleted||(null===(s=p.current.options)||void 0===s?void 0:s.onCompleted);return o||null==h||h(t.data,u),t},function(t){if(d===p.current.mutationId&&p.current.isMounted){var n,s={loading:!1,error:t,data:void 0,called:!0,client:c};(0,i.D)(p.current.result,s)||m(p.current.result=s)}var r=e.onError||(null===(n=p.current.options)||void 0===n?void 0:n.onError);if(r)return r(t,u),{data:void 0,errors:t};throw t})},[]),h=r.useCallback(function(){if(p.current.isMounted){var e={called:!1,loading:!1,client:p.current.client};Object.assign(p.current,{mutationId:0,result:e}),m(e)}},[]);return r.useEffect(function(){var e=p.current;return e.isMounted=!0,function(){e.isMounted=!1}},[]),[x,(0,s.pi)({reset:h},f)]}},6394:function(e,t,n){"use strict";n.d(t,{f:function(){return o}});var s=n(2265),r=n(66840),a=n(57437),i=s.forwardRef((e,t)=>(0,a.jsx)(r.WV.label,{...e,ref:t,onMouseDown:t=>{var n;t.target.closest("button, input, select, textarea")||(null===(n=e.onMouseDown)||void 0===n||n.call(e,t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));i.displayName="Label";var o=i}},function(e){e.O(0,[9851,7629,7093,6148,847,1942,7648,7823,8068,5799,4567,605,85,4957,7398,6373,3832,2971,2117,1744],function(){return e(e.s=33954)}),_N_E=e.O()}]);
2
- //# sourceMappingURL=layout-3ef4b8519966eee7.js.map
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1007],{66871:function(e,t,n){Promise.resolve().then(n.bind(n,21654))},21654:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return S}});var s=n(57437),r=n(27648),a=n(73247),i=n(99397),o=n(86595),l=n(62869),c=n(95186),d=n(7211),u=n(12199),f=n(27689),m=n(2265),p=n(37091),x=n(99376),h=n(93022),v=n(13832),g=n(26815),j=n(76818),y=n(26110),N=n(15863),b=n(77992);function w(e){let{open:t,onOpenChange:n,refetchProjects:r}=e,[a,i]=(0,m.useState)({name:"",description:"",custom_instructions:""}),[o,d]=(0,m.useState)(!1),{toast:p}=(0,b.pm)(),h=(0,x.useRouter)(),[v]=(0,u.D)(f.kp,{refetchQueries:[{query:f.fM,variables:{page:1,limit:200}}]}),w=async e=>{if(e.preventDefault(),!a.name.trim()){p({title:"Validation Error",description:"Project name is required.",variant:"destructive"});return}d(!0);try{var t,s;let e=await v({variables:{input:{name:a.name.trim(),description:a.description.trim()||null,custom_instructions:a.custom_instructions.trim()||null,rights_mode:"private"}}});console.log(e);let o=null===(s=e.data)||void 0===s?void 0:null===(t=s.projectsCreateOne)||void 0===t?void 0:t.item;o&&(p({title:"Success",description:"Project created successfully!"}),i({name:"",description:"",custom_instructions:""}),n(!1),h.push("/projects/".concat(o.id)),r())}catch(e){console.error("Error creating project:",e),p({title:"Error",description:e.message||"Failed to create project. Please try again.",variant:"destructive"})}finally{d(!1)}};return(0,s.jsx)(y.Vq,{open:t,onOpenChange:n,children:(0,s.jsxs)(y.cZ,{className:"sm:max-w-[500px]",children:[(0,s.jsxs)(y.fK,{children:[(0,s.jsx)(y.$N,{children:"Create New Project"}),(0,s.jsx)(y.Be,{children:"Create a new project to organize your chat sessions and documents."})]}),(0,s.jsxs)("form",{onSubmit:w,className:"space-y-4",children:[(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)(g._,{htmlFor:"project-name",children:"Project Name *"}),(0,s.jsx)(c.I,{id:"project-name",value:a.name,onChange:e=>i({...a,name:e.target.value}),placeholder:"Enter project name",required:!0,disabled:o})]}),(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)(g._,{htmlFor:"project-description",children:"Description"}),(0,s.jsx)(j.g,{id:"project-description",value:a.description,onChange:e=>i({...a,description:e.target.value}),placeholder:"Describe what this project is about...",rows:3,disabled:o})]}),(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsx)(g._,{htmlFor:"custom-instructions",children:"Custom Instructions"}),(0,s.jsx)(j.g,{id:"custom-instructions",value:a.custom_instructions,onChange:e=>i({...a,custom_instructions:e.target.value}),placeholder:"Enter custom instructions for chat sessions in this project...",rows:3,disabled:o})]}),(0,s.jsxs)(y.cN,{children:[(0,s.jsx)(l.z,{type:"button",variant:"outline",onClick:()=>{i({name:"",description:"",custom_instructions:""}),n(!1)},disabled:o,children:"Cancel"}),(0,s.jsx)(l.z,{type:"submit",disabled:o,children:o?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(N.Z,{className:"mr-2 h-4 w-4 animate-spin"}),"Creating..."]}):"Create Project"})]})]})]})})}function _(){var e,t,n,g,j,y,N;let[b,_]=(0,m.useState)(""),[S,k]=(0,m.useState)(!1),E=(0,x.usePathname)(),{user:C}=(0,m.useContext)(v.S),[D,O]=(0,m.useState)(C),M=(0,d.aM)(f.Ak,{fetchPolicy:"no-cache",nextFetchPolicy:"network-only",variables:{ids:(null==D?void 0:D.favourite_projects)||[]},skip:!(null==D?void 0:null===(e=D.favourite_projects)||void 0===e?void 0:e.length)}),T=(0,d.aM)(f.fM,{fetchPolicy:"no-cache",nextFetchPolicy:"network-only",variables:{page:1,limit:200,filters:b?[{name:{contains:b}}]:void 0}});(0,m.useEffect)(()=>{T.refetch()},[E]);let[I]=(0,u.D)(f.d5),P=e=>{var t;return e.image?(0,s.jsx)("img",{src:e.image,alt:"".concat(e.name," thumbnail"),className:"h-4 w-4 rounded-full object-cover"}):(0,s.jsx)("div",{className:"h-4 w-4 rounded-full bg-gradient-to-br from-green-500 to-blue-600 flex items-center justify-center text-white text-xs font-medium",children:(null===(t=e.name)||void 0===t?void 0:t.charAt(0).toUpperCase())||"P"})},A=async(e,t)=>{t.preventDefault(),t.stopPropagation();try{let t;let n=(null==D?void 0:D.favourite_projects)||[];t=n.includes(e)?n.filter(t=>t!==e):[...n,e],await I({variables:{id:null==D?void 0:D.id,favourite_projects:t}}),O(e=>({...e,favourite_projects:t}))}catch(e){console.error("Error updating favourite projects:",e)}},z=(null==T?void 0:null===(n=T.data)||void 0===n?void 0:null===(t=n.projectsPagination)||void 0===t?void 0:t.items)||(null==T?void 0:null===(j=T.previousData)||void 0===j?void 0:null===(g=j.projectsPagination)||void 0===g?void 0:g.items)||[],F=(null==M?void 0:null===(y=M.data)||void 0===y?void 0:y.projectByIds)||(null==M?void 0:null===(N=M.previousData)||void 0===N?void 0:N.projectByIds)||[];return(0,s.jsxs)("div",{className:"h-full w-[250px] flex-col gap-2 p-2",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsxs)("div",{className:"relative flex-1",children:[(0,s.jsx)(a.Z,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),(0,s.jsx)(c.I,{type:"search",placeholder:"Search projects...",className:"pl-8",value:b,onChange:e=>_(e.target.value)})]}),(0,s.jsx)(l.z,{variant:"outline",size:"lg",className:"h-10 w-10 p-0",onClick:()=>{k(!0)},title:"Create new project",children:(0,s.jsx)(i.Z,{className:"h-3 w-3"})})]}),(0,s.jsx)("div",{className:"flex-1 overflow-auto space-y-1",children:(0,s.jsxs)(s.Fragment,{children:[(null==D?void 0:D.favourite_projects)&&F.length>0&&!b&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"text-xs font-medium text-muted-foreground px-2 py-1",children:"Favorites"}),M.loading&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(h.O,{className:"w-[100%] h-[32px] rounded-lg"}),(0,s.jsx)(h.O,{className:"w-[100%] h-[32px] rounded-lg"})]}),!M.loading&&(0,s.jsx)(s.Fragment,{children:F.map(e=>(0,s.jsxs)("div",{className:"flex items-center gap-1",children:[(0,s.jsx)(r.default,{href:"/projects/".concat(e.id),className:"flex-1",children:(0,s.jsxs)(l.z,{variant:E.includes(e.id)?"secondary":"ghost",className:"w-full justify-start gap-2 pr-1",children:[P(e),(0,s.jsx)("span",{className:"flex-1 text-left",children:(0,s.jsx)(p.L,{text:e.name,length:10})})]})}),(0,s.jsx)(l.z,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0 flex-shrink-0",onClick:t=>A(e.id,t),children:(0,s.jsx)(o.Z,{className:"h-3 w-3 fill-yellow-400 text-yellow-400"})})]},e.id))})]}),(0,s.jsx)("div",{className:"text-xs font-medium text-muted-foreground px-2 py-1 mt-2",children:"All projects:"}),T.loading&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(h.O,{className:"w-[100%] h-[32px] rounded-lg"}),(0,s.jsx)(h.O,{className:"w-[100%] h-[32px] rounded-lg"}),(0,s.jsx)(h.O,{className:"w-[100%] h-[32px] rounded-lg"})]}),!T.loading&&z.map(e=>{var t;return(0,s.jsxs)("div",{className:"flex items-center gap-1",children:[(0,s.jsx)(r.default,{href:"/projects/".concat(e.id),className:"flex-1",children:(0,s.jsxs)(l.z,{variant:E.includes(e.id)?"secondary":"ghost",className:"w-full justify-start gap-2 pr-1",children:[P(e),(0,s.jsx)("span",{className:"flex-1 text-left",children:(0,s.jsx)(p.L,{text:e.name,length:14})})]})}),(0,s.jsx)(l.z,{variant:"ghost",size:"sm",className:"h-8 w-8 p-0 flex-shrink-0",onClick:t=>A(e.id,t),children:(0,s.jsx)(o.Z,{className:"h-3 w-3 ".concat((null==D?void 0:null===(t=D.favourite_projects)||void 0===t?void 0:t.includes(e.id))?"fill-yellow-400 text-yellow-400":"")})})]},e.id)})]})}),(0,s.jsx)(w,{open:S,onOpenChange:k,refetchProjects:T.refetch})]})}function S(e){let{children:t}=e;return(0,s.jsxs)("div",{className:"flex h-full",children:[(0,s.jsx)("div",{className:"border-r bg-muted/10",children:(0,s.jsx)(_,{})}),t]})}},37091:function(e,t,n){"use strict";n.d(t,{L:function(){return r}});var s=n(57437);function r(e){let{text:t,length:n}=e;return t.length>n?(0,s.jsxs)(s.Fragment,{children:[t.slice(0,n),"..."]}):(0,s.jsx)(s.Fragment,{children:t})}},26110:function(e,t,n){"use strict";n.d(t,{$N:function(){return x},Be:function(){return h},Vq:function(){return l},cN:function(){return p},cZ:function(){return f},fK:function(){return m},hg:function(){return c}});var s=n(57437),r=n(34567),a=n(32489),i=n(2265),o=n(94508);let l=r.fC,c=r.xz,d=r.h_;r.x8;let u=i.forwardRef((e,t)=>{let{className:n,...a}=e;return(0,s.jsx)(r.aV,{ref:t,className:(0,o.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",n),...a})});u.displayName=r.aV.displayName;let f=i.forwardRef((e,t)=>{let{className:n,children:i,...l}=e;return(0,s.jsxs)(d,{children:[(0,s.jsx)(u,{}),(0,s.jsxs)(r.VY,{ref:t,className:(0,o.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",n),...l,children:[i,(0,s.jsxs)(r.x8,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[(0,s.jsx)(a.Z,{className:"size-4"}),(0,s.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});f.displayName=r.VY.displayName;let m=e=>{let{className:t,...n}=e;return(0,s.jsx)("div",{className:(0,o.cn)("flex flex-col space-y-1.5 text-center sm:text-left",t),...n})};m.displayName="DialogHeader";let p=e=>{let{className:t,...n}=e;return(0,s.jsx)("div",{className:(0,o.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...n})};p.displayName="DialogFooter";let x=i.forwardRef((e,t)=>{let{className:n,...a}=e;return(0,s.jsx)(r.Dx,{ref:t,className:(0,o.cn)("text-lg font-semibold leading-none tracking-tight",n),...a})});x.displayName=r.Dx.displayName;let h=i.forwardRef((e,t)=>{let{className:n,...a}=e;return(0,s.jsx)(r.dk,{ref:t,className:(0,o.cn)("text-sm text-muted-foreground",n),...a})});h.displayName=r.dk.displayName},26815:function(e,t,n){"use strict";n.d(t,{_:function(){return c}});var s=n(57437),r=n(6394),a=n(90535),i=n(2265),o=n(94508);let l=(0,a.j)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),c=i.forwardRef((e,t)=>{let{className:n,...a}=e;return(0,s.jsx)(r.f,{ref:t,className:(0,o.cn)(l(),n),...a})});c.displayName=r.f.displayName},76818:function(e,t,n){"use strict";n.d(t,{g:function(){return i}});var s=n(57437),r=n(2265),a=n(94508);let i=r.forwardRef((e,t)=>{let{className:n,...r}=e;return(0,s.jsx)("textarea",{className:(0,a.cn)("flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",n),ref:t,...r})});i.displayName="Textarea"},77992:function(e,t,n){"use strict";n.d(t,{Am:function(){return u},pm:function(){return f}});var s=n(2265);let r=0,a=new Map,i=e=>{if(a.has(e))return;let t=setTimeout(()=>{a.delete(e),d({type:"REMOVE_TOAST",toastId:e})},1e6);a.set(e,t)},o=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case"DISMISS_TOAST":{let{toastId:n}=t;return n?i(n):e.toasts.forEach(e=>{i(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===n||void 0===n?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===t.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},l=[],c={toasts:[]};function d(e){c=o(c,e),l.forEach(e=>{e(c)})}function u(e){let{...t}=e,n=(r=(r+1)%Number.MAX_SAFE_INTEGER).toString(),s=()=>d({type:"DISMISS_TOAST",toastId:n});return d({type:"ADD_TOAST",toast:{...t,id:n,open:!0,onOpenChange:e=>{e||s()}}}),{id:n,dismiss:s,update:e=>d({type:"UPDATE_TOAST",toast:{...e,id:n}})}}function f(){let[e,t]=s.useState(c);return s.useEffect(()=>(l.push(t),()=>{let e=l.indexOf(t);e>-1&&l.splice(e,1)}),[e]),{...e,toast:u,dismiss:e=>d({type:"DISMISS_TOAST",toastId:e})}}},15863:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});let s=(0,n(39763).Z)("Loader2",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},99397:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});let s=(0,n(39763).Z)("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},73247:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});let s=(0,n(39763).Z)("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]])},86595:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});let s=(0,n(39763).Z)("Star",[["polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2",key:"8f66p6"}]])},12199:function(e,t,n){"use strict";n.d(t,{D:function(){return u}});var s=n(5853),r=n(79285),a=n(49466),i=n(36628),o=n(59058),l=n(77828),c=n(63251),d=n(59394).Nq?r.useLayoutEffect:r.useEffect;function u(e,t){var n=(0,c.x)(null==t?void 0:t.client);(0,o.Vp)(e,o.n_.Mutation);var u=r.useState({called:!1,loading:!1,client:n}),f=u[0],m=u[1],p=r.useRef({result:f,mutationId:0,isMounted:!0,client:n,mutation:e,options:t});d(function(){Object.assign(p.current,{client:n,options:t,mutation:e})});var x=r.useCallback(function(e){void 0===e&&(e={});var t=p.current,n=t.options,r=t.mutation,o=(0,s.pi)((0,s.pi)({},n),{mutation:r}),c=e.client||p.current.client;p.current.result.loading||o.ignoreResults||!p.current.isMounted||m(p.current.result={loading:!0,error:void 0,data:void 0,called:!0,client:c});var d=++p.current.mutationId,u=(0,a.J)(o,e);return c.mutate(u).then(function(t){var n,s,r=t.data,a=t.errors,o=a&&a.length>0?new l.cA({graphQLErrors:a}):void 0,f=e.onError||(null===(n=p.current.options)||void 0===n?void 0:n.onError);if(o&&f&&f(o,u),d===p.current.mutationId&&!u.ignoreResults){var x={called:!0,loading:!1,data:r,error:o,client:c};p.current.isMounted&&!(0,i.D)(p.current.result,x)&&m(p.current.result=x)}var h=e.onCompleted||(null===(s=p.current.options)||void 0===s?void 0:s.onCompleted);return o||null==h||h(t.data,u),t},function(t){if(d===p.current.mutationId&&p.current.isMounted){var n,s={loading:!1,error:t,data:void 0,called:!0,client:c};(0,i.D)(p.current.result,s)||m(p.current.result=s)}var r=e.onError||(null===(n=p.current.options)||void 0===n?void 0:n.onError);if(r)return r(t,u),{data:void 0,errors:t};throw t})},[]),h=r.useCallback(function(){if(p.current.isMounted){var e={called:!1,loading:!1,client:p.current.client};Object.assign(p.current,{mutationId:0,result:e}),m(e)}},[]);return r.useEffect(function(){var e=p.current;return e.isMounted=!0,function(){e.isMounted=!1}},[]),[x,(0,s.pi)({reset:h},f)]}},6394:function(e,t,n){"use strict";n.d(t,{f:function(){return o}});var s=n(2265),r=n(66840),a=n(57437),i=s.forwardRef((e,t)=>(0,a.jsx)(r.WV.label,{...e,ref:t,onMouseDown:t=>{var n;t.target.closest("button, input, select, textarea")||(null===(n=e.onMouseDown)||void 0===n||n.call(e,t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));i.displayName="Label";var o=i}},function(e){e.O(0,[9851,7629,7093,6148,847,1942,7648,7823,8068,5799,4567,605,85,4957,7398,6373,3832,2971,2117,1744],function(){return e(e.s=66871)}),_N_E=e.O()}]);
2
+ //# sourceMappingURL=layout-aa5baaf5cc644e70.js.map