@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.
- package/dist/.next/BUILD_ID +1 -1
- package/dist/.next/app-build-manifest.json +192 -192
- package/dist/.next/app-path-routes-manifest.json +1 -1
- package/dist/.next/build-manifest.json +3 -3
- package/dist/.next/prerender-manifest.json +1 -1
- package/dist/.next/required-server-files.json +1 -1
- package/dist/.next/server/app/(application)/agents/edit/[id]/page.js +1 -1
- package/dist/.next/server/app/(application)/agents/edit/[id]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/agents/edit/[id]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/agents/page.js +2 -2
- package/dist/.next/server/app/(application)/agents/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/agents/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/chat/[agent]/[session]/page.js +2 -2
- package/dist/.next/server/app/(application)/chat/[agent]/[session]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/chat/[agent]/[session]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/chat/[agent]/page.js +1 -1
- package/dist/.next/server/app/(application)/chat/[agent]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/chat/[agent]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/chat/page.js +1 -1
- package/dist/.next/server/app/(application)/chat/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/chat/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/configuration/page.js +1 -1
- package/dist/.next/server/app/(application)/configuration/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/configuration/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/dashboard/page.js +2 -2
- package/dist/.next/server/app/(application)/dashboard/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/dashboard/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/data/[[...query]]/page.js +2 -2
- package/dist/.next/server/app/(application)/data/[[...query]]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/data/[[...query]]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/evals/[id]/page.js +1 -1
- package/dist/.next/server/app/(application)/evals/[id]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/evals/[id]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/evals/[id]/runs/page.js +1 -1
- package/dist/.next/server/app/(application)/evals/[id]/runs/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/evals/[id]/runs/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/evals/cases/page.js +1 -1
- package/dist/.next/server/app/(application)/evals/cases/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/evals/cases/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/evals/page.js +1 -1
- package/dist/.next/server/app/(application)/evals/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/evals/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/explorer/page.js +9 -9
- package/dist/.next/server/app/(application)/explorer/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/explorer/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/jobs/page.js +1 -1
- package/dist/.next/server/app/(application)/jobs/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/jobs/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/keys/page.js +1 -1
- package/dist/.next/server/app/(application)/keys/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/keys/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/page.js +1 -1
- package/dist/.next/server/app/(application)/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/projects/[project]/page.js +1 -1
- package/dist/.next/server/app/(application)/projects/[project]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/projects/[project]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/projects/page.js +1 -1
- package/dist/.next/server/app/(application)/projects/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/projects/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/roles/page.js +1 -1
- package/dist/.next/server/app/(application)/roles/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/roles/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/token/page.js +1 -1
- package/dist/.next/server/app/(application)/token/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/token/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/users/page.js +1 -1
- package/dist/.next/server/app/(application)/users/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/users/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/variables/create/page.js +1 -1
- package/dist/.next/server/app/(application)/variables/create/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/variables/create/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/variables/edit/[variable_id]/page.js +1 -1
- package/dist/.next/server/app/(application)/variables/edit/[variable_id]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/variables/edit/[variable_id]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/variables/page.js +1 -1
- package/dist/.next/server/app/(application)/variables/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/variables/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/variables/usage/[variable_id]/page.js +1 -1
- package/dist/.next/server/app/(application)/variables/usage/[variable_id]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/variables/usage/[variable_id]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/workflows/page.js +1 -1
- package/dist/.next/server/app/(application)/workflows/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/workflows/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(authentication)/login/page.js +3 -3
- package/dist/.next/server/app/(authentication)/login/page.js.nft.json +1 -1
- package/dist/.next/server/app/(authentication)/login/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/_not-found/page.js +1 -1
- package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/_not-found.html +1 -1
- package/dist/.next/server/app/_not-found.rsc +1 -1
- package/dist/.next/server/app/api/auth/[...nextauth]/route.js +2 -2
- package/dist/.next/server/app/api/config/route.js +2 -2
- package/dist/.next/server/app-paths-manifest.json +9 -9
- package/dist/.next/server/chunks/{2711.js → 3575.js} +1 -1
- package/dist/.next/server/chunks/{1558.js → 5192.js} +1 -1
- package/dist/.next/server/chunks/{9762.js → 7223.js} +5 -5
- package/dist/.next/server/chunks/{4470.js → 7944.js} +2 -2
- package/dist/.next/server/chunks/9049.js +2 -2
- package/dist/.next/server/middleware-build-manifest.js +1 -1
- package/dist/.next/server/middleware-manifest.json +5 -5
- package/dist/.next/server/middleware.js +2 -2
- package/dist/.next/server/next-font-manifest.js +1 -1
- package/dist/.next/server/next-font-manifest.json +1 -1
- package/dist/.next/server/pages/404.html +1 -1
- package/dist/.next/server/pages/500.html +1 -1
- package/dist/.next/server/pages-manifest.json +1 -1
- package/dist/.next/server/server-reference-manifest.json +1 -1
- package/dist/.next/static/chunks/2117-7e0e97ffa5867cf9.js.map +1 -1
- package/dist/.next/static/chunks/6111-5ab0e72a466543ea.js.map +1 -1
- package/dist/.next/static/chunks/7648-be88d7a414ab6394.js.map +1 -1
- package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/{page-7737da0d7329baf0.js → page-e622860a59223955.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-e622860a59223955.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/agents/{page-58d7ecbf04b75ef3.js → page-fe256553444f6e6f.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/agents/page-fe256553444f6e6f.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-beaa99a35c9e9bfc.js +2 -0
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-beaa99a35c9e9bfc.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/{layout-a701083f64a86849.js → layout-1736d0931ae3f866.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/layout-1736d0931ae3f866.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/{page-2f7e3126e0e76d70.js → page-1538a952e1e99f94.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/page-1538a952e1e99f94.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/chat/{layout-b934ba4c0a125683.js → layout-3fbafd811d12ed10.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/chat/layout-3fbafd811d12ed10.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/configuration/{page-3aa96486933ae5dd.js → page-876d1d43a9cc36e4.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/configuration/page-876d1d43a9cc36e4.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/dashboard/{page-2436e355871758ba.js → page-ca746e824cb97052.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/dashboard/page-ca746e824cb97052.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/{layout-e073c74bd194e8cc.js → layout-47ad558a66e699c7.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-47ad558a66e699c7.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/{page-375a978d25ee3a65.js → page-edcdd8944daaaef8.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-edcdd8944daaaef8.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/evals/[id]/{page-b668fca1ba6993e2.js → page-5d4b8e351ee3265f.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/evals/[id]/page-5d4b8e351ee3265f.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/evals/[id]/runs/{page-07969d6e5fb01d7b.js → page-4f0d1524fc7936d1.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/evals/[id]/runs/page-4f0d1524fc7936d1.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/evals/cases/{page-0f25ee5d9498cbc5.js → page-47274d92d3daf16b.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/evals/cases/page-47274d92d3daf16b.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/evals/page-e25d76c28076b126.js +2 -0
- package/dist/.next/static/chunks/app/(application)/evals/page-e25d76c28076b126.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/explorer/{page-d1580ece2ff5ba64.js → page-9f8ab38b5cd68c45.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/explorer/page-9f8ab38b5cd68c45.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/jobs/{page-1f32c5e7202301b2.js → page-2d9a06a9959e7977.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/jobs/page-2d9a06a9959e7977.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/keys/page-6ecb8218f18773b9.js +2 -0
- package/dist/.next/static/chunks/app/(application)/keys/page-6ecb8218f18773b9.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/layout-73d93420d0c6661c.js +2 -0
- package/dist/.next/static/chunks/app/(application)/layout-73d93420d0c6661c.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/{page-661f24beb316dabf.js → page-16a518c5864e6963.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/page-16a518c5864e6963.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/projects/[project]/{page-cc6f6786682fd877.js → page-870b48a3e7f64f7d.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/projects/[project]/page-870b48a3e7f64f7d.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/projects/{layout-3ef4b8519966eee7.js → layout-aa5baaf5cc644e70.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/projects/layout-aa5baaf5cc644e70.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/projects/{page-6a38fd92beb3b45a.js → page-055a048a107095ed.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/projects/page-055a048a107095ed.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/roles/page-b30682514e63b3f8.js +2 -0
- package/dist/.next/static/chunks/app/(application)/roles/page-b30682514e63b3f8.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/token/{page-19921b235606b9f3.js → page-f86eaf8c51fdbe52.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/token/page-f86eaf8c51fdbe52.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/users/page-1a686fd83f765d8e.js +2 -0
- package/dist/.next/static/chunks/app/(application)/users/page-1a686fd83f765d8e.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/variables/create/{page-3d0e1788a92cba52.js → page-16582f525a24dd45.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/variables/create/page-16582f525a24dd45.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/variables/edit/[variable_id]/{page-ad12a1419856c280.js → page-b37d9320812bb8f6.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/variables/edit/[variable_id]/page-b37d9320812bb8f6.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/variables/{page-530fff39006ba055.js → page-9b438ce239c07987.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/variables/page-9b438ce239c07987.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/variables/usage/[variable_id]/{page-11fc31486ee7764e.js → page-b1fe1791701d361e.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/variables/usage/[variable_id]/page-b1fe1791701d361e.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/workflows/{page-feb479eaa043e041.js → page-93969baedc6f38ff.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/workflows/page-93969baedc6f38ff.js.map +1 -0
- package/dist/.next/static/chunks/app/(authentication)/{layout-ed3d63f0ade93b47.js → layout-2dfa18ea6e6dc5cd.js} +2 -2
- package/dist/.next/static/chunks/app/(authentication)/layout-2dfa18ea6e6dc5cd.js.map +1 -0
- package/dist/.next/static/chunks/app/(authentication)/login/{error-65d2315c483bed81.js → error-c5f516f76e374400.js} +2 -2
- package/dist/.next/static/chunks/app/(authentication)/login/error-c5f516f76e374400.js.map +1 -0
- package/dist/.next/static/chunks/app/(authentication)/login/{page-3233ca86dc3297c3.js → page-4de4d6f64507c919.js} +2 -2
- package/dist/.next/static/chunks/app/(authentication)/login/page-4de4d6f64507c919.js.map +1 -0
- package/dist/.next/static/chunks/app/_not-found/page-3832d1eb6511168a.js.map +1 -1
- package/dist/.next/static/chunks/main-83299e0cc175f2ed.js.map +1 -1
- package/dist/.next/static/chunks/{main-app-e4276b9c44f225cb.js → main-app-da1df2757744a2ea.js} +2 -2
- package/dist/.next/static/chunks/main-app-da1df2757744a2ea.js.map +1 -0
- package/dist/.next/static/css/e3f2a16ab7676b05.css.map +1 -1
- package/dist/node_modules/sharp/build/Release/sharp-linux-x64.node +0 -0
- 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
- package/dist/node_modules/sharp/vendor/8.14.5/linux-x64/platform.json +1 -0
- package/dist/node_modules/sharp/vendor/8.14.5/{darwin-arm64v8 → linux-x64}/versions.json +1 -1
- package/dist/package.json +3 -2
- package/dist/server.js +1 -1
- package/index.js +37 -0
- package/package.json +7 -6
- package/release.config.cjs +30 -0
- package/dist/.env +0 -32
- package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-7737da0d7329baf0.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/agents/page-58d7ecbf04b75ef3.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-fb7ea4dc4cdb350b.js +0 -2
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-fb7ea4dc4cdb350b.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/layout-a701083f64a86849.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/page-2f7e3126e0e76d70.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/chat/layout-b934ba4c0a125683.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/configuration/page-3aa96486933ae5dd.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/dashboard/page-2436e355871758ba.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-e073c74bd194e8cc.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-375a978d25ee3a65.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/evals/[id]/page-b668fca1ba6993e2.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/evals/[id]/runs/page-07969d6e5fb01d7b.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/evals/cases/page-0f25ee5d9498cbc5.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/evals/page-78bbdcf2c04a4ef9.js +0 -2
- package/dist/.next/static/chunks/app/(application)/evals/page-78bbdcf2c04a4ef9.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/explorer/page-d1580ece2ff5ba64.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/jobs/page-1f32c5e7202301b2.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/keys/page-9b13ab99042d606c.js +0 -2
- package/dist/.next/static/chunks/app/(application)/keys/page-9b13ab99042d606c.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/layout-cff96ce5805f0772.js +0 -2
- package/dist/.next/static/chunks/app/(application)/layout-cff96ce5805f0772.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/page-661f24beb316dabf.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/projects/[project]/page-cc6f6786682fd877.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/projects/layout-3ef4b8519966eee7.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/projects/page-6a38fd92beb3b45a.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/roles/page-d4a925d823a3c66c.js +0 -2
- package/dist/.next/static/chunks/app/(application)/roles/page-d4a925d823a3c66c.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/token/page-19921b235606b9f3.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/users/page-7cddc0528218c5c8.js +0 -2
- package/dist/.next/static/chunks/app/(application)/users/page-7cddc0528218c5c8.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/variables/create/page-3d0e1788a92cba52.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/variables/edit/[variable_id]/page-ad12a1419856c280.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/variables/page-530fff39006ba055.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/variables/usage/[variable_id]/page-11fc31486ee7764e.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/workflows/page-feb479eaa043e041.js.map +0 -1
- package/dist/.next/static/chunks/app/(authentication)/layout-ed3d63f0ade93b47.js.map +0 -1
- package/dist/.next/static/chunks/app/(authentication)/login/error-65d2315c483bed81.js.map +0 -1
- package/dist/.next/static/chunks/app/(authentication)/login/page-3233ca86dc3297c3.js.map +0 -1
- package/dist/.next/static/chunks/main-app-e4276b9c44f225cb.js.map +0 -1
- package/dist/node_modules/sharp/build/Release/sharp-darwin-arm64v8.node +0 -0
- package/dist/node_modules/sharp/vendor/8.14.5/darwin-arm64v8/include/harfbuzz/hb-cplusplus.hh +0 -223
- package/dist/node_modules/sharp/vendor/8.14.5/darwin-arm64v8/include/vips/vips8 +0 -60
- package/dist/node_modules/sharp/vendor/8.14.5/darwin-arm64v8/platform.json +0 -1
- /package/dist/.next/static/{5Vf-v5wyENpLUvLzma2J6 → Wt4IDtB-Xwfc0Z_CpMmtm}/_buildManifest.js +0 -0
- /package/dist/.next/static/{5Vf-v5wyENpLUvLzma2J6 → Wt4IDtB-Xwfc0Z_CpMmtm}/_ssgManifest.js +0 -0
- /package/dist/node_modules/sharp/vendor/8.14.5/{darwin-arm64v8 → linux-x64}/THIRD-PARTY-NOTICES.md +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4360],{7442:function(e,s,t){Promise.resolve().then(t.bind(t,96126))},96126:function(e,s,t){"use strict";t.r(s),t.d(s,{default:function(){return U}});var a=t(57437),r=t(2265),l=t(32660),n=t(99397),i=t(15863),o=t(88906),d=t(15868),c=t(18930),u=t(62869),f=t(27648),m=t(95186),x=t(27107),p=t(66070),h=t(73578),v=t(26110),g=t(35974),j=t(77992),b=t(7211),N=t(12199),w=t(27689),y=t(82222),k=t(42042),R=t(32790),C=t(95805),S=t(98145),A=t(64972),T=t(26815),Z=t(42325),D=t(40519),E=t(94508);let _=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)(Z.fC,{className:(0,E.cn)("grid gap-2",t),...r,ref:s})});_.displayName=Z.fC.displayName;let O=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)(Z.ck,{ref:s,className:(0,E.cn)("aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",t),...r,children:(0,a.jsx)(Z.z$,{className:"flex items-center justify-center",children:(0,a.jsx)(D.Z,{className:"size-2.5 fill-current text-current"})})})});O.displayName=Z.ck.displayName;let I=[{value:"",label:"No Access",description:"Cannot access this resource"},{value:"read",label:"Read Only",description:"Can view but not modify"},{value:"write",label:"Read/Write",description:"Full access to create, read, update, and delete"}],z=[{key:"agents",label:"Agents",icon:y.Z,description:"AI agents and their configurations"},{key:"workflows",label:"Workflows",icon:k.Z,description:"Workflow templates and executions"},{key:"variables",label:"Variables",icon:R.Z,description:"Environment variables and secrets"},{key:"users",label:"Users",icon:C.Z,description:"User management and roles"},{key:"api",label:"API",icon:S.Z,description:"API access and management"},{key:"evals",label:"Evals",icon:A.Z,description:"Evaluation sets, test cases, and eval runs"}];function P(e){let{initialData:s,onSubmit:t,loading:l,onCancel:n}=e,[d,c]=(0,r.useState)((null==s?void 0:s.name)||""),[f,x]=(0,r.useState)({agents:(null==s?void 0:s.agents)||"",api:(null==s?void 0:s.api)||"",workflows:(null==s?void 0:s.workflows)||"",variables:(null==s?void 0:s.variables)||"",users:(null==s?void 0:s.users)||"",evals:(null==s?void 0:s.evals)||""});(0,r.useEffect)(()=>{s&&(c(s.name),x({agents:s.agents||"",api:s.api||"",workflows:s.workflows||"",variables:s.variables||"",users:s.users||"",evals:s.evals||""}))},[s]);let h=(e,s)=>{x(t=>({...t,[e]:s}))},v=async e=>{if(e.preventDefault(),!d.trim())return;let s={name:d.trim(),agents:f.agents||null,api:f.api||null,workflows:f.workflows||null,variables:f.variables||null,users:f.users||null,evals:f.evals||null};await t(s)};return(0,a.jsxs)("form",{onSubmit:v,className:"space-y-6",children:[(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(T._,{htmlFor:"roleName",children:"Role Name"}),(0,a.jsx)(m.I,{id:"roleName",placeholder:"e.g. Admin, Developer, Viewer",value:d,onChange:e=>c(e.target.value),disabled:l,required:!0})]}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"text-lg font-medium",children:"Permissions"}),(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:"Configure access levels for different areas of the system"})]}),z.map(e=>{let s=e.icon;return(0,a.jsxs)(p.Zb,{children:[(0,a.jsxs)(p.Ol,{className:"pb-3",children:[(0,a.jsxs)(p.ll,{className:"flex items-center gap-2 text-base",children:[(0,a.jsx)(s,{className:"h-4 w-4"}),e.label]}),(0,a.jsx)(p.SZ,{className:"text-sm",children:e.description})]}),(0,a.jsx)(p.aY,{children:(0,a.jsx)(_,{value:f[e.key],onValueChange:s=>h(e.key,s),disabled:l,children:I.map(s=>(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsx)(O,{value:s.value,id:"".concat(e.key,"-").concat(s.value)}),(0,a.jsx)(T._,{htmlFor:"".concat(e.key,"-").concat(s.value),className:"flex-1 cursor-pointer",children:(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("span",{className:"font-medium",children:s.label}),(0,a.jsx)("span",{className:"text-sm text-muted-foreground",children:s.description})]})})]},s.value))})})]},e.key)})]}),(0,a.jsxs)("div",{className:"flex items-center justify-end gap-3 pt-4 border-t",children:[(0,a.jsx)(u.z,{type:"button",variant:"outline",onClick:n,disabled:l,children:"Cancel"}),(0,a.jsx)(u.z,{type:"submit",disabled:l||!d.trim(),children:l?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.Z,{className:"mr-2 h-4 w-4 animate-spin"}),s?"Updating...":"Creating..."]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o.Z,{className:"mr-2 h-4 w-4"}),s?"Update Role":"Create Role"]})})]})]})}function U(){var e;let[s,t]=(0,r.useState)(""),[y,k]=(0,r.useState)(!1),[R,C]=(0,r.useState)(!1),[S,A]=(0,r.useState)(!1),[T,Z]=(0,r.useState)(null),{loading:D,error:E,data:_,refetch:O}=(0,b.aM)(w.l1,{variables:{page:1,limit:100},fetchPolicy:"cache-first",nextFetchPolicy:"network-only"}),[I,{loading:z}]=(0,N.D)(w.kH,{refetchQueries:[w.l1,"GetUserRoles"]}),[U,{loading:V}]=(0,N.D)(w.ZX,{refetchQueries:[w.l1,"GetUserRoles"]}),[F,{loading:M}]=(0,N.D)(w.JM,{refetchQueries:[w.l1,"GetUserRoles"]}),W=((null==_?void 0:null===(e=_.rolesPagination)||void 0===e?void 0:e.items)||[]).filter(e=>e.name.toLowerCase().includes(s.toLowerCase())),L=e=>{let s=[];if(e.agents){let t=e.agents.toLowerCase();t.includes("write")||t.includes("create")||t.includes("update")||t.includes("delete")?s.push({name:"Agents",level:"Read/Write"}):(t.includes("read")||t.includes("view"))&&s.push({name:"Agents",level:"Read"})}if(e.workflows){let t=e.workflows.toLowerCase();t.includes("write")||t.includes("create")||t.includes("update")||t.includes("delete")?s.push({name:"Workflows",level:"Read/Write"}):(t.includes("read")||t.includes("view"))&&s.push({name:"Workflows",level:"Read"})}if(e.variables){let t=e.variables.toLowerCase();t.includes("write")||t.includes("create")||t.includes("update")||t.includes("delete")?s.push({name:"Variables",level:"Read/Write"}):(t.includes("read")||t.includes("view"))&&s.push({name:"Variables",level:"Read"})}if(e.users){let t=e.users.toLowerCase();t.includes("write")||t.includes("create")||t.includes("update")||t.includes("delete")?s.push({name:"Users",level:"Read/Write"}):(t.includes("read")||t.includes("view"))&&s.push({name:"Users",level:"Read"})}if(e.api){let t=e.api.toLowerCase();t.includes("write")||t.includes("create")||t.includes("update")||t.includes("delete")?s.push({name:"API",level:"Read/Write"}):(t.includes("read")||t.includes("view"))&&s.push({name:"API",level:"Read"})}return s},q=async e=>{try{await I({variables:{name:e.name,agents:e.agents,api:e.api,workflows:e.workflows,variables:e.variables,users:e.users}}),k(!1),(0,j.Am)({title:"Success",description:"Role created successfully"})}catch(e){(0,j.Am)({title:"Error",description:"Failed to create role",variant:"destructive"})}},B=async e=>{if(T)try{await U({variables:{id:T.id,name:e.name,agents:e.agents,api:e.api,workflows:e.workflows,variables:e.variables,users:e.users}}),C(!1),Z(null),(0,j.Am)({title:"Success",description:"Role updated successfully"})}catch(e){(0,j.Am)({title:"Error",description:"Failed to update role",variant:"destructive"})}},Y=async()=>{if(T)try{await F({variables:{id:T.id}}),A(!1),Z(null),(0,j.Am)({title:"Success",description:"Role deleted successfully"})}catch(e){(0,j.Am)({title:"Error",description:"Failed to delete role",variant:"destructive"})}};return(0,a.jsxs)("div",{className:"container mx-auto py-6 space-y-8 max-w-7xl",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)(f.default,{href:"/users",children:(0,a.jsxs)(u.z,{variant:"ghost",size:"sm",className:"mb-2 w-fit",children:[(0,a.jsx)(l.Z,{className:"mr-2 h-4 w-4"}),"Back to Users"]})}),(0,a.jsx)("h1",{className:"text-3xl font-bold tracking-tight",children:"Role Management"}),(0,a.jsx)("p",{className:"text-muted-foreground",children:"Create and manage roles with specific permissions for agents, workflows, variables, the api and users."})]}),(0,a.jsxs)(p.Zb,{children:[(0,a.jsxs)(p.Ol,{children:[(0,a.jsx)(p.ll,{children:"Roles"}),(0,a.jsx)(p.SZ,{children:"Manage system roles and their permissions"})]}),(0,a.jsx)(p.aY,{children:(0,a.jsxs)("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",children:[(0,a.jsx)(m.I,{placeholder:"Search roles...",value:s,onChange:e=>t(e.target.value),className:"flex-1 max-w-md"}),(0,a.jsxs)(v.Vq,{open:y,onOpenChange:k,children:[(0,a.jsx)(v.hg,{asChild:!0,children:(0,a.jsxs)(u.z,{children:[(0,a.jsx)(n.Z,{className:"mr-2 h-4 w-4"}),"Create Role"]})}),(0,a.jsxs)(v.cZ,{className:"max-w-2xl max-h-[90vh] overflow-y-auto",children:[(0,a.jsxs)(v.fK,{children:[(0,a.jsx)(v.$N,{children:"Create New Role"}),(0,a.jsx)(v.Be,{children:"Define the role name and permissions for different system areas."})]}),(0,a.jsx)(P,{onSubmit:q,loading:z,onCancel:()=>k(!1)})]})]})]})})]}),(0,a.jsx)(p.Zb,{children:(0,a.jsx)(p.aY,{className:"p-0",children:D?(0,a.jsxs)("div",{className:"text-center py-8",children:[(0,a.jsx)(i.Z,{className:"h-8 w-8 animate-spin mx-auto mb-2"}),(0,a.jsx)("p",{className:"text-muted-foreground",children:"Loading roles..."})]}):0===W.length?(0,a.jsx)("div",{className:"text-center py-8 text-muted-foreground",children:s?"No roles found matching your search.":"No roles created yet. Create your first role above."}):(0,a.jsx)("div",{className:"overflow-x-auto",children:(0,a.jsxs)(h.iA,{children:[(0,a.jsx)(h.xD,{children:(0,a.jsxs)(h.SC,{children:[(0,a.jsx)(h.ss,{children:"Role Name"}),(0,a.jsx)(h.ss,{children:"Permissions"}),(0,a.jsx)(h.ss,{children:"Created"}),(0,a.jsx)(h.ss,{children:"Updated"}),(0,a.jsx)(h.ss,{className:"text-right",children:"Actions"})]})}),(0,a.jsx)(h.RM,{children:W.map(e=>(0,a.jsxs)(h.SC,{children:[(0,a.jsx)(h.pj,{children:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(o.Z,{className:"h-4 w-4 text-muted-foreground"}),(0,a.jsx)("span",{className:"font-medium",children:e.name})]})}),(0,a.jsx)(h.pj,{children:(0,a.jsxs)("div",{className:"flex flex-wrap gap-1",children:[L(e).map((e,s)=>(0,a.jsxs)(g.C,{variant:"secondary",className:"text-xs",children:[e.name,": ",e.level]},s)),0===L(e).length&&(0,a.jsx)(g.C,{variant:"outline",className:"text-xs",children:"No permissions"})]})}),(0,a.jsx)(h.pj,{children:(0,x.WU)(new Date(e.createdAt||""),"PP hh:mm")}),(0,a.jsx)(h.pj,{children:(0,x.WU)(new Date(e.updatedAt||""),"PP hh:mm")}),(0,a.jsx)(h.pj,{className:"text-right",children:(0,a.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[(0,a.jsxs)(v.Vq,{open:R&&(null==T?void 0:T.id)===e.id,onOpenChange:e=>{C(e),e||Z(null)},children:[(0,a.jsx)(v.hg,{asChild:!0,children:(0,a.jsx)(u.z,{variant:"ghost",size:"icon",onClick:()=>Z(e),className:"h-8 w-8",children:(0,a.jsx)(d.Z,{className:"h-4 w-4"})})}),(0,a.jsxs)(v.cZ,{className:"max-w-2xl max-h-[90vh] overflow-y-auto",children:[(0,a.jsxs)(v.fK,{children:[(0,a.jsx)(v.$N,{children:"Edit Role"}),(0,a.jsx)(v.Be,{children:"Update the role name and permissions."})]}),(0,a.jsx)(P,{initialData:T,onSubmit:B,loading:V,onCancel:()=>{C(!1),Z(null)}})]})]}),(0,a.jsxs)(v.Vq,{open:S&&(null==T?void 0:T.id)===e.id,onOpenChange:e=>{A(e),e||Z(null)},children:[(0,a.jsx)(v.hg,{asChild:!0,children:(0,a.jsx)(u.z,{variant:"ghost",size:"icon",onClick:()=>Z(e),className:"h-8 w-8 text-red-500 hover:text-red-600 hover:bg-red-50 dark:hover:bg-red-950",children:(0,a.jsx)(c.Z,{className:"h-4 w-4"})})}),(0,a.jsxs)(v.cZ,{children:[(0,a.jsxs)(v.fK,{children:[(0,a.jsx)(v.$N,{children:"Delete Role"}),(0,a.jsxs)(v.Be,{children:['Are you sure you want to delete the role "',null==T?void 0:T.name,'"? This action cannot be undone.']})]}),(0,a.jsxs)(v.cN,{children:[(0,a.jsx)(u.z,{variant:"outline",onClick:()=>{A(!1),Z(null)},children:"Cancel"}),(0,a.jsx)(u.z,{variant:"destructive",onClick:Y,disabled:M,children:M?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.Z,{className:"mr-2 h-4 w-4 animate-spin"}),"Deleting..."]}):"Delete Role"})]})]})]})]})})]},e.id))})]})})})})]})}},35974:function(e,s,t){"use strict";t.d(s,{C:function(){return i}});var a=t(57437),r=t(90535);t(2265);var l=t(94508);let n=(0,r.j)("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function i(e){let{className:s,variant:t,...r}=e;return(0,a.jsx)("div",{className:(0,l.cn)(n({variant:t}),s),...r})}},66070:function(e,s,t){"use strict";t.d(s,{Ol:function(){return i},SZ:function(){return d},Zb:function(){return n},aY:function(){return c},eW:function(){return u},ll:function(){return o}});var a=t(57437),r=t(2265),l=t(94508);let n=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("div",{ref:s,className:(0,l.cn)("rounded-lg border bg-card text-card-foreground shadow-sm",t),...r})});n.displayName="Card";let i=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("div",{ref:s,className:(0,l.cn)("flex flex-col space-y-1.5 p-6",t),...r})});i.displayName="CardHeader";let o=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("h3",{ref:s,className:(0,l.cn)("text-2xl font-semibold leading-none tracking-tight",t),...r})});o.displayName="CardTitle";let d=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("p",{ref:s,className:(0,l.cn)("text-sm text-muted-foreground",t),...r})});d.displayName="CardDescription";let c=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("div",{ref:s,className:(0,l.cn)("p-6 pt-0",t),...r})});c.displayName="CardContent";let u=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("div",{ref:s,className:(0,l.cn)("flex items-center p-6 pt-0",t),...r})});u.displayName="CardFooter"},26110:function(e,s,t){"use strict";t.d(s,{$N:function(){return p},Be:function(){return h},Vq:function(){return o},cN:function(){return x},cZ:function(){return f},fK:function(){return m},hg:function(){return d}});var a=t(57437),r=t(34567),l=t(32489),n=t(2265),i=t(94508);let o=r.fC,d=r.xz,c=r.h_;r.x8;let u=n.forwardRef((e,s)=>{let{className:t,...l}=e;return(0,a.jsx)(r.aV,{ref:s,className:(0,i.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",t),...l})});u.displayName=r.aV.displayName;let f=n.forwardRef((e,s)=>{let{className:t,children:n,...o}=e;return(0,a.jsxs)(c,{children:[(0,a.jsx)(u,{}),(0,a.jsxs)(r.VY,{ref:s,className:(0,i.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",t),...o,children:[n,(0,a.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,a.jsx)(l.Z,{className:"size-4"}),(0,a.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});f.displayName=r.VY.displayName;let m=e=>{let{className:s,...t}=e;return(0,a.jsx)("div",{className:(0,i.cn)("flex flex-col space-y-1.5 text-center sm:text-left",s),...t})};m.displayName="DialogHeader";let x=e=>{let{className:s,...t}=e;return(0,a.jsx)("div",{className:(0,i.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",s),...t})};x.displayName="DialogFooter";let p=n.forwardRef((e,s)=>{let{className:t,...l}=e;return(0,a.jsx)(r.Dx,{ref:s,className:(0,i.cn)("text-lg font-semibold leading-none tracking-tight",t),...l})});p.displayName=r.Dx.displayName;let h=n.forwardRef((e,s)=>{let{className:t,...l}=e;return(0,a.jsx)(r.dk,{ref:s,className:(0,i.cn)("text-sm text-muted-foreground",t),...l})});h.displayName=r.dk.displayName},95186:function(e,s,t){"use strict";t.d(s,{I:function(){return n}});var a=t(57437),r=t(2265),l=t(94508);let n=r.forwardRef((e,s)=>{let{className:t,type:r,...n}=e;return(0,a.jsx)("input",{type:r,className:(0,l.cn)("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium 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",t),ref:s,...n})});n.displayName="Input"},26815:function(e,s,t){"use strict";t.d(s,{_:function(){return d}});var a=t(57437),r=t(6394),l=t(90535),n=t(2265),i=t(94508);let o=(0,l.j)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),d=n.forwardRef((e,s)=>{let{className:t,...l}=e;return(0,a.jsx)(r.f,{ref:s,className:(0,i.cn)(o(),t),...l})});d.displayName=r.f.displayName},73578:function(e,s,t){"use strict";t.d(s,{RM:function(){return o},Rn:function(){return f},SC:function(){return d},iA:function(){return n},pj:function(){return u},ss:function(){return c},xD:function(){return i}});var a=t(57437),r=t(2265),l=t(94508);let n=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("div",{className:"relative w-full overflow-auto",children:(0,a.jsx)("table",{ref:s,className:(0,l.cn)("w-full caption-bottom text-sm",t),...r})})});n.displayName="Table";let i=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("thead",{ref:s,className:(0,l.cn)("[&_tr]:border-b",t),...r})});i.displayName="TableHeader";let o=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("tbody",{ref:s,className:(0,l.cn)("[&_tr:last-child]:border-0",t),...r})});o.displayName="TableBody",r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("tfoot",{ref:s,className:(0,l.cn)("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",t),...r})}).displayName="TableFooter";let d=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("tr",{ref:s,className:(0,l.cn)("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",t),...r})});d.displayName="TableRow";let c=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("th",{ref:s,className:(0,l.cn)("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&:has([role=checkbox])]:w-[40px]",t),...r})});c.displayName="TableHead";let u=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("td",{ref:s,className:(0,l.cn)("p-4 align-middle [&:has([role=checkbox])]:pr-0 [&:has([role=checkbox])]:w-[40px]",t),...r})});u.displayName="TableCell";let f=r.forwardRef((e,s)=>{let{className:t,...r}=e;return(0,a.jsx)("caption",{ref:s,className:(0,l.cn)("mt-4 text-sm text-muted-foreground",t),...r})});f.displayName="TableCaption"},77992:function(e,s,t){"use strict";t.d(s,{Am:function(){return u},pm:function(){return f}});var a=t(2265);let r=0,l=new Map,n=e=>{if(l.has(e))return;let s=setTimeout(()=>{l.delete(e),c({type:"REMOVE_TOAST",toastId:e})},1e6);l.set(e,s)},i=(e,s)=>{switch(s.type){case"ADD_TOAST":return{...e,toasts:[s.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===s.toast.id?{...e,...s.toast}:e)};case"DISMISS_TOAST":{let{toastId:t}=s;return t?n(t):e.toasts.forEach(e=>{n(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===t||void 0===t?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===s.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==s.toastId)}}},o=[],d={toasts:[]};function c(e){d=i(d,e),o.forEach(e=>{e(d)})}function u(e){let{...s}=e,t=(r=(r+1)%Number.MAX_SAFE_INTEGER).toString(),a=()=>c({type:"DISMISS_TOAST",toastId:t});return c({type:"ADD_TOAST",toast:{...s,id:t,open:!0,onOpenChange:e=>{e||a()}}}),{id:t,dismiss:a,update:e=>c({type:"UPDATE_TOAST",toast:{...e,id:t}})}}function f(){let[e,s]=a.useState(d);return a.useEffect(()=>(o.push(s),()=>{let e=o.indexOf(s);e>-1&&o.splice(e,1)}),[e]),{...e,toast:u,dismiss:e=>c({type:"DISMISS_TOAST",toastId:e})}}}},function(e){e.O(0,[9851,7629,7093,6148,847,1942,7648,7823,8068,4567,3825,7107,5436,6373,2971,2117,1744],function(){return e(e.s=7442)}),_N_E=e.O()}]);
|
|
2
|
-
//# sourceMappingURL=page-d4a925d823a3c66c.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static/chunks/app/(application)/roles/page-d4a925d823a3c66c.js","mappings":"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","sources":["webpack://_N_E/?ce9a","webpack://_N_E/./components/ui/radio-group.tsx","webpack://_N_E/./components/role-form.tsx","webpack://_N_E/./app/(application)/roles/page.tsx","webpack://_N_E/./components/ui/badge.tsx","webpack://_N_E/./components/ui/card.tsx","webpack://_N_E/./components/ui/dialog.tsx","webpack://_N_E/./components/ui/input.tsx","webpack://_N_E/./components/ui/label.tsx","webpack://_N_E/./components/ui/table.tsx","webpack://_N_E/./components/ui/use-toast.ts"],"sourcesContent":["import(/* webpackMode: \"eager\" */ \"/Users/daniel.claessen/Desktop/Projects/exulu/frontend/app/(application)/roles/page.tsx\");\n","\"use client\";\n\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\";\nimport { Circle } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst RadioGroup = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Root\n className={cn(\"grid gap-2\", className)}\n {...props}\n ref={ref}\n />\n );\n});\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName;\n\nconst RadioGroupItem = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(\n \"aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\n <Circle className=\"size-2.5 fill-current text-current\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n});\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;\n\nexport { RadioGroup, RadioGroupItem };\n","\"use client\"\n\nimport { useState, useEffect } from \"react\"\nimport { Loader2, Shield, Users, Workflow, Variable, Bot, CodeSquare, Brain } from \"lucide-react\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Label } from \"@/components/ui/label\"\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { RadioGroup, RadioGroupItem } from \"@/components/ui/radio-group\"\nimport { UserRole } from \"@/types/models/user-role\"\n\ninterface RoleFormProps {\n initialData?: UserRole | null\n onSubmit: (roleData: any) => Promise<void>\n loading: boolean\n onCancel: () => void\n}\n\nconst PERMISSION_OPTIONS = [\n { value: \"\", label: \"No Access\", description: \"Cannot access this resource\" },\n { value: \"read\", label: \"Read Only\", description: \"Can view but not modify\" },\n { value: \"write\", label: \"Read/Write\", description: \"Full access to create, read, update, and delete\" },\n]\n\nconst PERMISSION_AREAS = [\n {\n key: \"agents\" as const,\n label: \"Agents\",\n icon: Bot,\n description: \"AI agents and their configurations\"\n },\n {\n key: \"workflows\" as const,\n label: \"Workflows\",\n icon: Workflow,\n description: \"Workflow templates and executions\"\n },\n {\n key: \"variables\" as const,\n label: \"Variables\",\n icon: Variable,\n description: \"Environment variables and secrets\"\n },\n {\n key: \"users\" as const,\n label: \"Users\",\n icon: Users,\n description: \"User management and roles\"\n },\n {\n key: \"api\" as const,\n label: \"API\",\n icon: CodeSquare,\n description: \"API access and management\"\n },\n {\n key: \"evals\" as const,\n label: \"Evals\",\n icon: Brain,\n description: \"Evaluation sets, test cases, and eval runs\"\n }\n]\n\nexport function RoleForm({ initialData, onSubmit, loading, onCancel }: RoleFormProps) {\n const [name, setName] = useState(initialData?.name || \"\")\n const [permissions, setPermissions] = useState({\n agents: initialData?.agents || \"\",\n api: initialData?.api || \"\",\n workflows: initialData?.workflows || \"\",\n variables: initialData?.variables || \"\",\n users: initialData?.users || \"\",\n evals: initialData?.evals || \"\",\n })\n\n useEffect(() => {\n if (initialData) {\n setName(initialData.name)\n setPermissions({\n agents: initialData.agents || \"\",\n api: initialData.api || \"\",\n workflows: initialData.workflows || \"\",\n variables: initialData.variables || \"\",\n users: initialData.users || \"\",\n evals: initialData.evals || \"\"\n })\n }\n }, [initialData])\n\n const handlePermissionChange = (area: keyof typeof permissions, value: string) => {\n setPermissions(prev => ({\n ...prev,\n [area]: value\n }))\n }\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault()\n \n if (!name.trim()) {\n return\n }\n\n const roleData = {\n name: name.trim(),\n agents: permissions.agents || null,\n api: permissions.api || null,\n workflows: permissions.workflows || null,\n variables: permissions.variables || null,\n users: permissions.users || null,\n evals: permissions.evals || null\n }\n\n await onSubmit(roleData)\n }\n\n return (\n <form onSubmit={handleSubmit} className=\"space-y-6\">\n {/* Role Name */}\n <div className=\"space-y-2\">\n <Label htmlFor=\"roleName\">Role Name</Label>\n <Input\n id=\"roleName\"\n placeholder=\"e.g. Admin, Developer, Viewer\"\n value={name}\n onChange={(e) => setName(e.target.value)}\n disabled={loading}\n required\n />\n </div>\n\n {/* Permissions */}\n <div className=\"space-y-4\">\n <div>\n <h3 className=\"text-lg font-medium\">Permissions</h3>\n <p className=\"text-sm text-muted-foreground\">\n Configure access levels for different areas of the system\n </p>\n </div>\n\n {PERMISSION_AREAS.map((area) => {\n const Icon = area.icon\n return (\n <Card key={area.key}>\n <CardHeader className=\"pb-3\">\n <CardTitle className=\"flex items-center gap-2 text-base\">\n <Icon className=\"h-4 w-4\" />\n {area.label}\n </CardTitle>\n <CardDescription className=\"text-sm\">\n {area.description}\n </CardDescription>\n </CardHeader>\n <CardContent>\n <RadioGroup\n value={permissions[area.key]}\n onValueChange={(value) => handlePermissionChange(area.key, value)}\n disabled={loading}\n >\n {PERMISSION_OPTIONS.map((option) => (\n <div key={option.value} className=\"flex items-center space-x-2\">\n <RadioGroupItem value={option.value} id={`${area.key}-${option.value}`} />\n <Label \n htmlFor={`${area.key}-${option.value}`}\n className=\"flex-1 cursor-pointer\"\n >\n <div className=\"flex items-center justify-between\">\n <span className=\"font-medium\">{option.label}</span>\n <span className=\"text-sm text-muted-foreground\">\n {option.description}\n </span>\n </div>\n </Label>\n </div>\n ))}\n </RadioGroup>\n </CardContent>\n </Card>\n )\n })}\n </div>\n\n {/* Actions */}\n <div className=\"flex items-center justify-end gap-3 pt-4 border-t\">\n <Button type=\"button\" variant=\"outline\" onClick={onCancel} disabled={loading}>\n Cancel\n </Button>\n <Button type=\"submit\" disabled={loading || !name.trim()}>\n {loading ? (\n <>\n <Loader2 className=\"mr-2 h-4 w-4 animate-spin\" />\n {initialData ? \"Updating...\" : \"Creating...\"}\n </>\n ) : (\n <>\n <Shield className=\"mr-2 h-4 w-4\" />\n {initialData ? \"Update Role\" : \"Create Role\"}\n </>\n )}\n </Button>\n </div>\n </form>\n )\n}","\"use client\"\n\nimport { useState } from \"react\"\nimport { Plus, Trash2, Edit, Shield, Loader2, ArrowLeft } from \"lucide-react\"\nimport { Button } from \"@/components/ui/button\"\nimport Link from \"next/link\"\nimport { Input } from \"@/components/ui/input\"\nimport { format } from \"date-fns\"\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from \"@/components/ui/table\"\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from \"@/components/ui/dialog\"\nimport { Badge } from \"@/components/ui/badge\"\nimport { toast } from \"@/components/ui/use-toast\"\nimport { useMutation, useQuery } from \"@apollo/client\"\nimport { GET_USER_ROLES, CREATE_USER_ROLE, UPDATE_USER_ROLE_BY_ID, REMOVE_USER_ROLE_BY_ID } from \"@/queries/queries\"\nimport { RoleForm } from \"@/components/role-form\"\nimport { UserRole } from \"@/types/models/user-role\"\n\nexport default function RoleManagement() {\n const [searchTerm, setSearchTerm] = useState(\"\")\n const [createDialogOpen, setCreateDialogOpen] = useState(false)\n const [editDialogOpen, setEditDialogOpen] = useState(false)\n const [deleteDialogOpen, setDeleteDialogOpen] = useState(false)\n const [selectedRole, setSelectedRole] = useState<UserRole | null>(null)\n\n const { loading, error, data, refetch } = useQuery(GET_USER_ROLES, {\n variables: { page: 1, limit: 100 },\n fetchPolicy: \"cache-first\",\n nextFetchPolicy: \"network-only\",\n })\n\n const [createRole, { loading: createLoading }] = useMutation(CREATE_USER_ROLE, {\n refetchQueries: [GET_USER_ROLES, \"GetUserRoles\"],\n })\n\n const [updateRole, { loading: updateLoading }] = useMutation(UPDATE_USER_ROLE_BY_ID, {\n refetchQueries: [GET_USER_ROLES, \"GetUserRoles\"],\n })\n\n const [deleteRole, { loading: deleteLoading }] = useMutation(REMOVE_USER_ROLE_BY_ID, {\n refetchQueries: [GET_USER_ROLES, \"GetUserRoles\"],\n })\n\n const roles: UserRole[] = data?.rolesPagination?.items || []\n const filteredRoles = roles.filter(role =>\n role.name.toLowerCase().includes(searchTerm.toLowerCase())\n )\n\n const formatPermissions = (role: UserRole) => {\n const permissions: { name: string; level: string }[] = []\n \n if (role.agents) {\n const agentPerms = role.agents.toLowerCase()\n if (agentPerms.includes('write') || agentPerms.includes('create') || agentPerms.includes('update') || agentPerms.includes('delete')) {\n permissions.push({ name: \"Agents\", level: \"Read/Write\" })\n } else if (agentPerms.includes('read') || agentPerms.includes('view')) {\n permissions.push({ name: \"Agents\", level: \"Read\" })\n }\n }\n \n if (role.workflows) {\n const workflowPerms = role.workflows.toLowerCase()\n if (workflowPerms.includes('write') || workflowPerms.includes('create') || workflowPerms.includes('update') || workflowPerms.includes('delete')) {\n permissions.push({ name: \"Workflows\", level: \"Read/Write\" })\n } else if (workflowPerms.includes('read') || workflowPerms.includes('view')) {\n permissions.push({ name: \"Workflows\", level: \"Read\" })\n }\n }\n \n if (role.variables) {\n const variablePerms = role.variables.toLowerCase()\n if (variablePerms.includes('write') || variablePerms.includes('create') || variablePerms.includes('update') || variablePerms.includes('delete')) {\n permissions.push({ name: \"Variables\", level: \"Read/Write\" })\n } else if (variablePerms.includes('read') || variablePerms.includes('view')) {\n permissions.push({ name: \"Variables\", level: \"Read\" })\n }\n }\n \n if (role.users) {\n const userPerms = role.users.toLowerCase()\n if (userPerms.includes('write') || userPerms.includes('create') || userPerms.includes('update') || userPerms.includes('delete')) {\n permissions.push({ name: \"Users\", level: \"Read/Write\" })\n } else if (userPerms.includes('read') || userPerms.includes('view')) {\n permissions.push({ name: \"Users\", level: \"Read\" })\n }\n }\n\n if (role.api) {\n const apiPerms = role.api.toLowerCase()\n if (apiPerms.includes('write') || apiPerms.includes('create') || apiPerms.includes('update') || apiPerms.includes('delete')) {\n permissions.push({ name: \"API\", level: \"Read/Write\" })\n } else if (apiPerms.includes('read') || apiPerms.includes('view')) {\n permissions.push({ name: \"API\", level: \"Read\" })\n }\n }\n\n return permissions\n }\n\n const handleCreateRole = async (roleData: any) => {\n try {\n await createRole({\n variables: {\n name: roleData.name,\n agents: roleData.agents,\n api: roleData.api,\n workflows: roleData.workflows,\n variables: roleData.variables,\n users: roleData.users,\n }\n })\n setCreateDialogOpen(false)\n toast({\n title: \"Success\",\n description: \"Role created successfully\",\n })\n } catch (error) {\n toast({\n title: \"Error\",\n description: \"Failed to create role\",\n variant: \"destructive\",\n })\n }\n }\n\n const handleUpdateRole = async (roleData: any) => {\n if (!selectedRole) return\n \n try {\n await updateRole({\n variables: {\n id: selectedRole.id,\n name: roleData.name,\n agents: roleData.agents,\n api: roleData.api,\n workflows: roleData.workflows,\n variables: roleData.variables,\n users: roleData.users,\n }\n })\n setEditDialogOpen(false)\n setSelectedRole(null)\n toast({\n title: \"Success\",\n description: \"Role updated successfully\",\n })\n } catch (error) {\n toast({\n title: \"Error\",\n description: \"Failed to update role\",\n variant: \"destructive\",\n })\n }\n }\n\n const handleDeleteRole = async () => {\n if (!selectedRole) return\n \n try {\n await deleteRole({\n variables: { id: selectedRole.id }\n })\n setDeleteDialogOpen(false)\n setSelectedRole(null)\n toast({\n title: \"Success\",\n description: \"Role deleted successfully\",\n })\n } catch (error) {\n toast({\n title: \"Error\",\n description: \"Failed to delete role\",\n variant: \"destructive\",\n })\n }\n }\n\n return (\n <div className=\"container mx-auto py-6 space-y-8 max-w-7xl\">\n <div className=\"flex flex-col gap-2\">\n <Link href=\"/users\">\n <Button variant=\"ghost\" size=\"sm\" className=\"mb-2 w-fit\">\n <ArrowLeft className=\"mr-2 h-4 w-4\" />\n Back to Users\n </Button>\n </Link>\n <h1 className=\"text-3xl font-bold tracking-tight\">Role Management</h1>\n <p className=\"text-muted-foreground\">\n Create and manage roles with specific permissions for agents, workflows, variables, the api and users.\n </p>\n </div>\n\n {/* Search and Create */}\n <Card>\n <CardHeader>\n <CardTitle>Roles</CardTitle>\n <CardDescription>\n Manage system roles and their permissions\n </CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between\">\n <Input\n placeholder=\"Search roles...\"\n value={searchTerm}\n onChange={(e) => setSearchTerm(e.target.value)}\n className=\"flex-1 max-w-md\"\n />\n <Dialog open={createDialogOpen} onOpenChange={setCreateDialogOpen}>\n <DialogTrigger asChild>\n <Button>\n <Plus className=\"mr-2 h-4 w-4\" />\n Create Role\n </Button>\n </DialogTrigger>\n <DialogContent className=\"max-w-2xl max-h-[90vh] overflow-y-auto\">\n <DialogHeader>\n <DialogTitle>Create New Role</DialogTitle>\n <DialogDescription>\n Define the role name and permissions for different system areas.\n </DialogDescription>\n </DialogHeader>\n <RoleForm\n onSubmit={handleCreateRole}\n loading={createLoading}\n onCancel={() => setCreateDialogOpen(false)}\n />\n </DialogContent>\n </Dialog>\n </div>\n </CardContent>\n </Card>\n\n {/* Roles List */}\n <Card>\n <CardContent className=\"p-0\">\n {loading ? (\n <div className=\"text-center py-8\">\n <Loader2 className=\"h-8 w-8 animate-spin mx-auto mb-2\" />\n <p className=\"text-muted-foreground\">Loading roles...</p>\n </div>\n ) : filteredRoles.length === 0 ? (\n <div className=\"text-center py-8 text-muted-foreground\">\n {searchTerm ? \"No roles found matching your search.\" : \"No roles created yet. Create your first role above.\"}\n </div>\n ) : (\n <div className=\"overflow-x-auto\">\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead>Role Name</TableHead>\n <TableHead>Permissions</TableHead>\n <TableHead>Created</TableHead>\n <TableHead>Updated</TableHead>\n <TableHead className=\"text-right\">Actions</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {filteredRoles.map((role) => (\n <TableRow key={role.id}>\n <TableCell>\n <div className=\"flex items-center gap-2\">\n <Shield className=\"h-4 w-4 text-muted-foreground\" />\n <span className=\"font-medium\">{role.name}</span>\n </div>\n </TableCell>\n <TableCell>\n <div className=\"flex flex-wrap gap-1\">\n {formatPermissions(role).map((perm, index) => (\n <Badge \n key={index} \n variant={\"secondary\"}\n className=\"text-xs\"\n >\n {perm.name}: {perm.level}\n </Badge>\n ))}\n {formatPermissions(role).length === 0 && (\n <Badge variant=\"outline\" className=\"text-xs\">\n No permissions\n </Badge>\n )}\n </div>\n </TableCell>\n <TableCell>\n {format(new Date(role.createdAt || \"\"), \"PP hh:mm\")}\n </TableCell>\n <TableCell>\n {format(new Date(role.updatedAt || \"\"), \"PP hh:mm\")}\n </TableCell>\n <TableCell className=\"text-right\">\n <div className=\"flex items-center justify-end gap-2\">\n <Dialog open={editDialogOpen && selectedRole?.id === role.id} onOpenChange={(open) => {\n setEditDialogOpen(open)\n if (!open) setSelectedRole(null)\n }}>\n <DialogTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n onClick={() => setSelectedRole(role)}\n className=\"h-8 w-8\"\n >\n <Edit className=\"h-4 w-4\" />\n </Button>\n </DialogTrigger>\n <DialogContent className=\"max-w-2xl max-h-[90vh] overflow-y-auto\">\n <DialogHeader>\n <DialogTitle>Edit Role</DialogTitle>\n <DialogDescription>\n Update the role name and permissions.\n </DialogDescription>\n </DialogHeader>\n <RoleForm\n initialData={selectedRole}\n onSubmit={handleUpdateRole}\n loading={updateLoading}\n onCancel={() => {\n setEditDialogOpen(false)\n setSelectedRole(null)\n }}\n />\n </DialogContent>\n </Dialog>\n\n <Dialog open={deleteDialogOpen && selectedRole?.id === role.id} onOpenChange={(open) => {\n setDeleteDialogOpen(open)\n if (!open) setSelectedRole(null)\n }}>\n <DialogTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n onClick={() => setSelectedRole(role)}\n className=\"h-8 w-8 text-red-500 hover:text-red-600 hover:bg-red-50 dark:hover:bg-red-950\"\n >\n <Trash2 className=\"h-4 w-4\" />\n </Button>\n </DialogTrigger>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Delete Role</DialogTitle>\n <DialogDescription>\n Are you sure you want to delete the role \"{selectedRole?.name}\"? This action cannot be undone.\n </DialogDescription>\n </DialogHeader>\n <DialogFooter>\n <Button \n variant=\"outline\" \n onClick={() => {\n setDeleteDialogOpen(false)\n setSelectedRole(null)\n }}\n >\n Cancel\n </Button>\n <Button \n variant=\"destructive\" \n onClick={handleDeleteRole}\n disabled={deleteLoading}\n >\n {deleteLoading ? (\n <>\n <Loader2 className=\"mr-2 h-4 w-4 animate-spin\" />\n Deleting...\n </>\n ) : (\n \"Delete Role\"\n )}\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n </div>\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </div>\n )}\n </CardContent>\n </Card>\n </div>\n )\n}","import { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground hover:bg-primary/80\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80\",\n outline: \"text-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div className={cn(badgeVariants({ variant }), className)} {...props} />\n );\n}\n\nexport { Badge, badgeVariants };\n","import * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"rounded-lg border bg-card text-card-foreground shadow-sm\",\n className,\n )}\n {...props}\n />\n));\nCard.displayName = \"Card\";\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...props}\n />\n));\nCardHeader.displayName = \"CardHeader\";\n\nconst CardTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\n \"text-2xl font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nCardTitle.displayName = \"CardTitle\";\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nCardDescription.displayName = \"CardDescription\";\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n));\nCardContent.displayName = \"CardContent\";\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...props}\n />\n));\nCardFooter.displayName = \"CardFooter\";\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardDescription,\n CardContent,\n};\n","\"use client\";\n\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { X } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Dialog = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n \"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 className,\n )}\n {...props}\n />\n));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"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 className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close 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\">\n <X className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className,\n )}\n {...props}\n />\n);\nDialogHeader.displayName = \"DialogHeader\";\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className,\n )}\n {...props}\n />\n);\nDialogFooter.displayName = \"DialogFooter\";\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n","import * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement> {}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium 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 className,\n )}\n ref={ref}\n {...props}\n />\n );\n },\n);\nInput.displayName = \"Input\";\n\nexport { Input };\n","\"use client\";\n\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst labelVariants = cva(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n);\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","import * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n));\nTable.displayName = \"Table\";\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn(\"[&_tr]:border-b\", className)} {...props} />\n));\nTableHeader.displayName = \"TableHeader\";\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n));\nTableBody.displayName = \"TableBody\";\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n \"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n className,\n )}\n {...props}\n />\n));\nTableFooter.displayName = \"TableFooter\";\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className,\n )}\n {...props}\n />\n));\nTableRow.displayName = \"TableRow\";\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n \"h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&:has([role=checkbox])]:w-[40px]\",\n className,\n )}\n {...props}\n />\n));\nTableHead.displayName = \"TableHead\";\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n \"p-4 align-middle [&:has([role=checkbox])]:pr-0 [&:has([role=checkbox])]:w-[40px]\",\n className,\n )}\n {...props}\n />\n));\nTableCell.displayName = \"TableCell\";\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nTableCaption.displayName = \"TableCaption\";\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n};\n","\"use client\";\n\n// Inspired by react-hot-toast library\nimport * as React from \"react\";\n\nimport type { ToastActionElement, ToastProps } from \"@/components/ui/toast\";\n\nconst TOAST_LIMIT = 1;\nconst TOAST_REMOVE_DELAY = 1000000;\n\ntype ToasterToast = ToastProps & {\n id: string;\n title?: React.ReactNode;\n description?: React.ReactNode;\n action?: ToastActionElement;\n};\n\nconst actionTypes = {\n ADD_TOAST: \"ADD_TOAST\",\n UPDATE_TOAST: \"UPDATE_TOAST\",\n DISMISS_TOAST: \"DISMISS_TOAST\",\n REMOVE_TOAST: \"REMOVE_TOAST\",\n} as const;\n\nlet count = 0;\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\n\ntype ActionType = typeof actionTypes;\n\ntype Action =\n | {\n type: ActionType[\"ADD_TOAST\"];\n toast: ToasterToast;\n }\n | {\n type: ActionType[\"UPDATE_TOAST\"];\n toast: Partial<ToasterToast>;\n }\n | {\n type: ActionType[\"DISMISS_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n }\n | {\n type: ActionType[\"REMOVE_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n };\n\ninterface State {\n toasts: ToasterToast[];\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>();\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n type: \"REMOVE_TOAST\",\n toastId: toastId,\n });\n }, TOAST_REMOVE_DELAY);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case \"ADD_TOAST\":\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n\n case \"UPDATE_TOAST\":\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === action.toast.id ? { ...t, ...action.toast } : t,\n ),\n };\n\n case \"DISMISS_TOAST\": {\n const { toastId } = action;\n\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id);\n });\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n open: false,\n }\n : t,\n ),\n };\n }\n case \"REMOVE_TOAST\":\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n };\n }\n};\n\nconst listeners: Array<(state: State) => void> = [];\n\nlet memoryState: State = { toasts: [] };\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n}\n\ntype Toast = Omit<ToasterToast, \"id\">;\n\nfunction toast({ ...props }: Toast) {\n const id = genId();\n\n const update = (props: ToasterToast) =>\n dispatch({\n type: \"UPDATE_TOAST\",\n toast: { ...props, id },\n });\n const dismiss = () => dispatch({ type: \"DISMISS_TOAST\", toastId: id });\n\n dispatch({\n type: \"ADD_TOAST\",\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open) => {\n if (!open) dismiss();\n },\n },\n });\n\n return {\n id: id,\n dismiss,\n update,\n };\n}\n\nfunction useToast() {\n const [state, setState] = React.useState<State>(memoryState);\n\n React.useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) => dispatch({ type: \"DISMISS_TOAST\", toastId }),\n };\n}\n\nexport { useToast, toast };\n"],"names":["Promise","resolve","then","__webpack_require__","bind","RadioGroup","React","param","ref","className","props","jsx_runtime","jsx","RadioGroupPrimitive","cn","displayName","RadioGroupItem","Circle","PERMISSION_OPTIONS","value","label","description","PERMISSION_AREAS","key","icon","Bot","Workflow","Variable","Users","CodeSquare","Brain","RoleForm","initialData","onSubmit","loading","onCancel","name","setName","useState","permissions","setPermissions","agents","api","workflows","variables","users","evals","useEffect","handlePermissionChange","area","prev","handleSubmit","e","preventDefault","trim","roleData","jsxs","form","div","Label","htmlFor","Input","id","placeholder","onChange","target","disabled","required","h3","p","map","Icon","Card","CardHeader","CardTitle","CardDescription","CardContent","onValueChange","option","concat","span","Button","type","variant","onClick","Fragment","Loader2","Shield","RoleManagement","data","searchTerm","setSearchTerm","createDialogOpen","setCreateDialogOpen","editDialogOpen","setEditDialogOpen","deleteDialogOpen","setDeleteDialogOpen","selectedRole","setSelectedRole","error","refetch","useQuery","GET_USER_ROLES","page","limit","fetchPolicy","nextFetchPolicy","createRole","createLoading","useMutation","CREATE_USER_ROLE","refetchQueries","updateRole","updateLoading","UPDATE_USER_ROLE_BY_ID","deleteRole","deleteLoading","REMOVE_USER_ROLE_BY_ID","filteredRoles","roles","rolesPagination","items","filter","role","toLowerCase","includes","formatPermissions","agentPerms","push","level","workflowPerms","variablePerms","userPerms","apiPerms","handleCreateRole","toast","title","handleUpdateRole","handleDeleteRole","Link","href","size","ArrowLeft","h1","Dialog","open","onOpenChange","DialogTrigger","asChild","Plus","DialogContent","DialogHeader","DialogTitle","DialogDescription","length","Table","TableHeader","TableRow","TableHead","TableBody","TableCell","perm","index","Badge","format","Date","createdAt","updatedAt","Edit","Trash2","DialogFooter","badgeVariants","cva","variants","default","secondary","destructive","outline","defaultVariants","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","CardFooter","DialogPrimitive","DialogPortal","DialogOverlay","children","X","input","labelVariants","LabelPrimitive","table","thead","tbody","TableFooter","tfoot","tr","th","td","TableCaption","caption","count","toastTimeouts","Map","addToRemoveQueue","has","toastId","timeout","setTimeout","delete","dispatch","set","reducer","state","action","toasts","slice","t","forEach","undefined","listeners","memoryState","listener","Number","MAX_SAFE_INTEGER","toString","dismiss","update","useToast","setState","indexOf","splice"],"sourceRoot":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static/chunks/app/(application)/token/page-19921b235606b9f3.js","mappings":"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","sources":["webpack://_N_E/?239e","webpack://_N_E/./app/(application)/token/page.tsx","webpack://_N_E/./components/ui/badge.tsx","webpack://_N_E/./components/ui/button.tsx","webpack://_N_E/./components/ui/card.tsx","webpack://_N_E/./components/ui/input.tsx","webpack://_N_E/./components/ui/use-toast.ts","webpack://_N_E/./lib/utils.ts","webpack://_N_E/../../src/defaultAttributes.ts","webpack://_N_E/../../src/createLucideIcon.ts","webpack://_N_E/../../../src/icons/alert-circle.ts","webpack://_N_E/../../../src/icons/check-circle.ts","webpack://_N_E/../../../src/icons/copy.ts","webpack://_N_E/./util/api.ts","webpack://_N_E/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs","webpack://_N_E/./node_modules/@radix-ui/react-slot/dist/index.mjs"],"sourcesContent":["import(/* webpackMode: \"eager\" */ \"/Users/daniel.claessen/Desktop/Projects/exulu/frontend/app/(application)/token/page.tsx\");\n","'use client'\n\nimport { useSession } from \"next-auth/react\"\nimport { useEffect, useState } from \"react\"\nimport { getToken } from \"@/util/api\"\nimport { Button } from \"@/components/ui/button\"\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { Input } from \"@/components/ui/input\"\nimport { Badge } from \"@/components/ui/badge\"\nimport { Copy, CheckCircle, AlertCircle } from \"lucide-react\"\nimport { useToast } from \"@/components/ui/use-toast\"\n\nexport default function TokenPage() {\n const { data: session, status } = useSession()\n const [token, setToken] = useState<string | null>(null)\n const [loading, setLoading] = useState(true)\n const [copied, setCopied] = useState(false)\n const { toast } = useToast()\n\n useEffect(() => {\n const fetchToken = async () => {\n if (status === \"authenticated\") {\n try {\n const currentToken = await getToken()\n setToken(currentToken)\n } catch (error) {\n console.error(\"Failed to get token:\", error)\n setToken(null)\n }\n }\n setLoading(false)\n }\n\n fetchToken()\n }, [status])\n\n const copyToClipboard = async () => {\n if (!token) return\n\n try {\n await navigator.clipboard.writeText(token)\n setCopied(true)\n toast({\n title: \"Token copied!\",\n description: \"The token has been copied to your clipboard.\",\n })\n setTimeout(() => setCopied(false), 2000)\n } catch (error) {\n toast({\n title: \"Failed to copy\",\n description: \"Could not copy token to clipboard.\",\n variant: \"destructive\",\n })\n }\n }\n\n if (status === \"loading\" || loading) {\n return (\n <div className=\"container mx-auto p-6\">\n <div className=\"flex items-center justify-center min-h-[400px]\">\n <div className=\"animate-spin rounded-full h-32 w-32 border-b-2 border-gray-900\"></div>\n </div>\n </div>\n )\n }\n\n if (status === \"unauthenticated\") {\n return (\n <div className=\"container mx-auto my-auto p-6\">\n <Card className=\"max-w-md mx-auto\">\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <AlertCircle className=\"h-5 w-5 text-red-500\" />\n Authentication Required\n </CardTitle>\n <CardDescription>\n You must be logged in to access your token.\n </CardDescription>\n </CardHeader>\n <CardContent>\n <p className=\"text-sm text-muted-foreground\">\n Please log in to view and copy your authentication token.\n </p>\n </CardContent>\n </Card>\n </div>\n )\n }\n\n return (\n <div className=\"container mx-auto my-auto p-6\">\n <div className=\"max-w-2xl mx-auto\">\n <div className=\"mb-6\">\n <h1 className=\"text-3xl font-bold\">Authentication Token</h1>\n <p className=\"text-muted-foreground mt-2\">\n Your current authentication token for API access.\n </p>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center justify-between\">\n <span>Current Token</span>\n <Badge variant={token ? \"default\" : \"destructive\"}>\n {token ? \"Active\" : \"Unavailable\"}\n </Badge>\n </CardTitle>\n <CardDescription>\n Use this token to authenticate API requests. Keep it secure and do not share it.\n </CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n {token ? (\n <>\n <div className=\"space-y-2\">\n <label htmlFor=\"token\" className=\"text-sm font-medium\">\n Token Value\n </label>\n <div className=\"flex gap-2\">\n <Input\n id=\"token\"\n type=\"text\"\n value={token}\n readOnly\n className=\"font-mono text-sm\"\n />\n <Button\n onClick={copyToClipboard}\n variant=\"outline\"\n size=\"sm\"\n className=\"shrink-0\"\n >\n {copied ? (\n <CheckCircle className=\"h-4 w-4\" />\n ) : (\n <Copy className=\"h-4 w-4\" />\n )}\n </Button>\n </div>\n </div>\n \n <div className=\"text-sm text-muted-foreground space-y-2\">\n <p>\n <strong>Security:</strong> This token provides access to your account. Keep it private and secure.\n </p>\n </div>\n </>\n ) : (\n <div className=\"text-center py-8\">\n <AlertCircle className=\"h-12 w-12 text-muted-foreground mx-auto mb-4\" />\n <p className=\"text-muted-foreground\">\n No token available. Please try refreshing the page or logging in again.\n </p>\n </div>\n )}\n </CardContent>\n </Card>\n </div>\n </div>\n )\n}","import { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground hover:bg-primary/80\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80\",\n outline: \"text-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div className={cn(badgeVariants({ variant }), className)} {...props} />\n );\n}\n\nexport { Badge, badgeVariants };\n","import { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n outline:\n \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-10 px-4 py-2\",\n sm: \"h-9 rounded-md px-3\",\n lg: \"h-11 rounded-md px-8\",\n icon: \"size-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n );\n },\n);\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n","import * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"rounded-lg border bg-card text-card-foreground shadow-sm\",\n className,\n )}\n {...props}\n />\n));\nCard.displayName = \"Card\";\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...props}\n />\n));\nCardHeader.displayName = \"CardHeader\";\n\nconst CardTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\n \"text-2xl font-semibold leading-none tracking-tight\",\n className,\n )}\n {...props}\n />\n));\nCardTitle.displayName = \"CardTitle\";\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nCardDescription.displayName = \"CardDescription\";\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n));\nCardContent.displayName = \"CardContent\";\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...props}\n />\n));\nCardFooter.displayName = \"CardFooter\";\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardDescription,\n CardContent,\n};\n","import * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement> {}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium 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 className,\n )}\n ref={ref}\n {...props}\n />\n );\n },\n);\nInput.displayName = \"Input\";\n\nexport { Input };\n","\"use client\";\n\n// Inspired by react-hot-toast library\nimport * as React from \"react\";\n\nimport type { ToastActionElement, ToastProps } from \"@/components/ui/toast\";\n\nconst TOAST_LIMIT = 1;\nconst TOAST_REMOVE_DELAY = 1000000;\n\ntype ToasterToast = ToastProps & {\n id: string;\n title?: React.ReactNode;\n description?: React.ReactNode;\n action?: ToastActionElement;\n};\n\nconst actionTypes = {\n ADD_TOAST: \"ADD_TOAST\",\n UPDATE_TOAST: \"UPDATE_TOAST\",\n DISMISS_TOAST: \"DISMISS_TOAST\",\n REMOVE_TOAST: \"REMOVE_TOAST\",\n} as const;\n\nlet count = 0;\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\n\ntype ActionType = typeof actionTypes;\n\ntype Action =\n | {\n type: ActionType[\"ADD_TOAST\"];\n toast: ToasterToast;\n }\n | {\n type: ActionType[\"UPDATE_TOAST\"];\n toast: Partial<ToasterToast>;\n }\n | {\n type: ActionType[\"DISMISS_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n }\n | {\n type: ActionType[\"REMOVE_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n };\n\ninterface State {\n toasts: ToasterToast[];\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>();\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n type: \"REMOVE_TOAST\",\n toastId: toastId,\n });\n }, TOAST_REMOVE_DELAY);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case \"ADD_TOAST\":\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n\n case \"UPDATE_TOAST\":\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === action.toast.id ? { ...t, ...action.toast } : t,\n ),\n };\n\n case \"DISMISS_TOAST\": {\n const { toastId } = action;\n\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id);\n });\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n open: false,\n }\n : t,\n ),\n };\n }\n case \"REMOVE_TOAST\":\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n };\n }\n};\n\nconst listeners: Array<(state: State) => void> = [];\n\nlet memoryState: State = { toasts: [] };\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n}\n\ntype Toast = Omit<ToasterToast, \"id\">;\n\nfunction toast({ ...props }: Toast) {\n const id = genId();\n\n const update = (props: ToasterToast) =>\n dispatch({\n type: \"UPDATE_TOAST\",\n toast: { ...props, id },\n });\n const dismiss = () => dispatch({ type: \"DISMISS_TOAST\", toastId: id });\n\n dispatch({\n type: \"ADD_TOAST\",\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open) => {\n if (!open) dismiss();\n },\n },\n });\n\n return {\n id: id,\n dismiss,\n update,\n };\n}\n\nfunction useToast() {\n const [state, setState] = React.useState<State>(memoryState);\n\n React.useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) => dispatch({ type: \"DISMISS_TOAST\", toastId }),\n };\n}\n\nexport { useToast, toast };\n","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\nexport function formatDuration(seconds: number): string {\n if (!seconds) return '0s';\n \n const hours = Math.floor(seconds / 3600);\n const minutes = Math.floor((seconds % 3600) / 60);\n const remainingSeconds = Math.round(seconds % 60);\n\n if (hours > 0) {\n return `${hours}h ${minutes}m`;\n } else if (minutes > 0) {\n return `${minutes}m ${remainingSeconds}s`;\n } else {\n return `${remainingSeconds}s`;\n }\n}","export default {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n};\n","import {\n forwardRef,\n createElement,\n ReactSVG,\n SVGProps,\n ForwardRefExoticComponent,\n RefAttributes,\n} from 'react';\nimport defaultAttributes from './defaultAttributes';\n\nexport type IconNode = [elementName: keyof ReactSVG, attrs: Record<string, string>][];\n\nexport type SVGAttributes = Partial<SVGProps<SVGSVGElement>>;\ntype ComponentAttributes = RefAttributes<SVGSVGElement> & SVGAttributes;\n\nexport interface LucideProps extends ComponentAttributes {\n size?: string | number;\n absoluteStrokeWidth?: boolean;\n}\n\nexport type LucideIcon = ForwardRefExoticComponent<LucideProps>;\n/**\n * Converts string to KebabCase\n * Copied from scripts/helper. If anyone knows how to properly import it here\n * then please fix it.\n *\n * @param {string} string\n * @returns {string} A kebabized string\n */\nexport const toKebabCase = (string: string) =>\n string\n .replace(/([a-z0-9])([A-Z])/g, '$1-$2')\n .toLowerCase()\n .trim();\n\nconst createLucideIcon = (iconName: string, iconNode: IconNode): LucideIcon => {\n const Component = forwardRef<SVGSVGElement, LucideProps>(\n ({ color = 'currentColor', size = 24, strokeWidth = 2, absoluteStrokeWidth, className = '', children, ...rest }, ref) =>{\n\n return createElement(\n 'svg',\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: ['lucide', `lucide-${toKebabCase(iconName)}`, className].join(' '),\n ...rest,\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]),\n ]\n )\n }\n );\n\n Component.displayName = `${iconName}`;\n\n return Component;\n};\n\nexport default createLucideIcon;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name AlertCircle\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/alert-circle\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 AlertCircle = createLucideIcon('AlertCircle', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['line', { x1: '12', x2: '12', y1: '8', y2: '12', key: '1pkeuh' }],\n ['line', { x1: '12', x2: '12.01', y1: '16', y2: '16', key: '4dfq90' }],\n]);\n\nexport default AlertCircle;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name CheckCircle\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/check-circle\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 CheckCircle = createLucideIcon('CheckCircle', [\n ['path', { d: 'M22 11.08V12a10 10 0 1 1-5.93-9.14', key: 'g774vq' }],\n ['path', { d: 'm9 11 3 3L22 4', key: '1pflzl' }],\n]);\n\nexport default CheckCircle;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Copy\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/copy\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 Copy = createLucideIcon('Copy', [\n ['rect', { width: '14', height: '14', x: '8', y: '8', rx: '2', ry: '2', key: '17jyea' }],\n ['path', { d: 'M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2', key: 'zix9uf' }],\n]);\n\nexport default Copy;\n","import { getSession } from \"next-auth/react\";\n\nexport type ImageStyle = \"origami\" | \"anime\" | \"japanese_anime\" | \"vaporwave\" | \"lego\" | \"paper_cut\" | \"felt_puppet\" | \"3d\" | \"app_icon\" | \"pixel_art\" | \"isometric\";\n\nconst getUris = async () => {\n // Server-side: use environment variable directly\n if (typeof window === 'undefined') {\n const backend = process.env.BACKEND;\n if (!backend) {\n throw new Error(\"No backend set.\")\n }\n return {\n files: backend,\n base: backend\n }\n }\n\n // Client-side: fetch from API\n const context = await fetch(\"/api/config\").then(res => res.json());\n if (!context.backend) {\n throw new Error(\"No backend set.\")\n }\n return {\n files: context.backend,\n base: context.backend\n }\n}\n\nexport const getToken = async () => {\n const session = await getSession()\n // @ts-ignore\n return session?.user?.jwt;\n}\n\nexport type BackendConfigType = {\n fileUploads?: {\n s3endpoint: string;\n }\n workers?: {\n redisHost: string;\n enabled: boolean;\n }\n}\n\nexport type ThemeConfig = {\n light?: Record<string, string>;\n dark?: Record<string, string>;\n}\n\nexport const config = {\n backend: async (): Promise<Response> => {\n const uris = await getUris();\n const url = `${uris.base}/config`\n return fetch(url, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n })\n },\n theme: async (): Promise<ThemeConfig> => {\n try {\n const token = await getToken();\n const uris = await getUris();\n const res = await fetch(`${uris.base}/theme`, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ${token}`,\n },\n })\n const json = await res.json();\n return json.theme;\n } catch (error) {\n console.error(\"Error fetching theme config:\", error);\n return { light: {}, dark: {} };\n }\n }\n}\n\nexport const agents = {\n image: {\n generate: async (parameters: {\n name: string,\n description: string,\n style?: ImageStyle\n }): Promise<any> => {\n\n const uris = await getUris();\n const url = `${uris.base}/generate/agent/image`;\n const token = await getToken()\n\n if (!token) {\n throw new Error(\"No valid session token available.\")\n }\n\n return fetch(url, {\n method: \"POST\",\n body: JSON.stringify(parameters),\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${token}`,\n },\n });\n }\n }\n}\n\nexport type S3FileListOutput = {\n \"$metadata\": {\n \"httpStatusCode\": number,\n \"attempts\": number,\n \"totalRetryDelay\": number\n },\n \"Contents\": {\n \"Key\": string,\n \"LastModified\": string,\n \"ETag\": string,\n \"Size\": number\n }[]\n \"IsTruncated\": boolean,\n \"NextContinuationToken\": string,\n \"KeyCount\": number,\n \"MaxKeys\": number,\n \"Name\": string,\n \"Prefix\": string\n}\n\nexport type S3ObjectOutput = {\n \"$metadata\": {\n \"httpStatusCode\": number,\n \"attempts\": number,\n \"totalRetryDelay\": number\n },\n \"AcceptRanges\": \"bytes\",\n \"LastModified\": string,\n \"ContentLength\": number,\n \"ChecksumCRC32C\": string,\n \"ETag\": string,\n \"CacheControl\": string,\n \"ContentType\": string,\n \"Expires\": string,\n \"ExpiresString\": string\n}\n\nexport const files = {\n object: async (key: string): Promise<S3ObjectOutput> => {\n const uris = await getUris();\n let url = `${uris.files}/s3/object`;\n const token = await getToken()\n const response = await fetch(url, {\n method: \"POST\",\n body: JSON.stringify({ key }),\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${token}`,\n },\n });\n return response.json();\n },\n list: async ({ search, continuationToken }: { search?: string, continuationToken?: string }): Promise<S3FileListOutput> => {\n const uris = await getUris();\n let url = `${uris.files}/s3/list`;\n const token = await getToken()\n\n if (!token) {\n throw new Error(\"No valid session token available.\")\n }\n\n if (search) {\n url += `?search=${search}`;\n }\n\n if (continuationToken) {\n url += `?continuationToken=${continuationToken}`;\n }\n\n const response = await fetch(url, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${token}`,\n },\n });\n return response.json();\n },\n download: async (key: string) => {\n\n const uris = await getUris();\n let url = `${uris.files}/s3/download?key=${key}`;\n\n const token = await getToken()\n\n if (!token) {\n throw new Error(\"No valid session token available.\")\n }\n\n return fetch(url, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${token}`,\n },\n });\n },\n delete: async (key: string) => {\n\n const uris = await getUris();\n let url = `${uris.files}/s3/delete?key=${key}`;\n const token = await getToken()\n\n if (!token) {\n throw new Error(\"No valid session token available.\")\n }\n\n return fetch(url, {\n method: \"DELETE\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${token}`,\n },\n });\n }\n}\n","// packages/react/compose-refs/src/compose-refs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\n// @__NO_SIDE_EFFECTS__\nfunction createSlot(ownerName) {\n const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);\n const Slot2 = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n });\n Slot2.displayName = `${ownerName}.Slot`;\n return Slot2;\n}\nvar Slot = /* @__PURE__ */ createSlot(\"Slot\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlotClone(ownerName) {\n const SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n });\n SlotClone.displayName = `${ownerName}.SlotClone`;\n return SlotClone;\n}\nvar SLOTTABLE_IDENTIFIER = Symbol(\"radix.slottable\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlottable(ownerName) {\n const Slottable2 = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n };\n Slottable2.displayName = `${ownerName}.Slottable`;\n Slottable2.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable2;\n}\nvar Slottable = /* @__PURE__ */ createSlottable(\"Slottable\");\nfunction isSlottable(child) {\n return React.isValidElement(child) && typeof child.type === \"function\" && \"__radixId\" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Slot as Root,\n Slot,\n Slottable,\n createSlot,\n createSlottable\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["Promise","resolve","then","__webpack_require__","bind","TokenPage","data","session","status","useSession","token","setToken","useState","loading","setLoading","copied","setCopied","toast","useToast","useEffect","fetchToken","currentToken","getToken","error","console","copyToClipboard","navigator","clipboard","writeText","title","description","setTimeout","variant","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","div","className","jsxs","Card","CardHeader","CardTitle","AlertCircle","CardDescription","CardContent","p","h1","span","Badge","Fragment","label","htmlFor","Input","id","type","value","readOnly","Button","onClick","size","CheckCircle","Copy","strong","badgeVariants","cva","variants","default","secondary","destructive","outline","defaultVariants","param","props","cn","buttonVariants","ghost","link","sm","lg","icon","React","ref","asChild","Comp","Slot","displayName","h3","CardFooter","input","count","toastTimeouts","Map","addToRemoveQueue","has","toastId","timeout","delete","dispatch","set","reducer","state","action","toasts","slice","map","t","forEach","undefined","open","filter","listeners","memoryState","listener","Number","MAX_SAFE_INTEGER","toString","dismiss","onOpenChange","update","setState","push","index","indexOf","splice","_len","arguments","length","inputs","_key","twMerge","clsx","defaultAttributes","xmlns","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","toKebabCase","string","replace","toLowerCase","trim","createLucideIcon","iconName","iconNode","Component","forwardRef","color","absoluteStrokeWidth","children","rest","createElement","concat","join","tag","attrs","Array","isArray","cx","cy","r","key","x1","x2","y1","y2","d","x","y","rx","ry","getUris","context","fetch","res","json","backend","files","base","getSession","user","jwt","agents","image","generate","parameters","uris","url","method","body","JSON","stringify","headers","Authorization","object","response","list","search","continuationToken","download","setRef","current","composeRefs","refs","hasCleanup","cleanups","cleanup","node","i","useComposedRefs","react__WEBPACK_IMPORTED_MODULE_0__","useCallback","createSlot","ownerName","SlotClone","createSlotClone","forwardedRef","slotProps","isValidElement","getter","mayWarn","childrenRef","Object","getOwnPropertyDescriptor","element","get","isReactWarning","props2","mergeProps","childProps","overrideProps","propName","slotPropValue","childPropValue","test","args","result","Boolean","_radix_ui_react_compose_refs__WEBPACK_IMPORTED_MODULE_2__","F","cloneElement","Children","only","Slot2","childrenArray","toArray","slottable","find","isSlottable","newElement","newChildren","child","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__","SLOTTABLE_IDENTIFIER","Symbol","createSlottable","Slottable2","__radixId"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8441],{58913:function(e,s,a){Promise.resolve().then(a.bind(a,38165))},38165:function(e,s,a){"use strict";a.r(s),a.d(s,{default:function(){return X},dynamic:function(){return T}});var i=a(57437),t=a(2265),l=a(19060),n=a(20653),r=a(62869),o=a(84190),d=a(94508);function c(e){let{column:s,title:a,className:t}=e;return s.getCanSort()?(0,i.jsx)("div",{className:(0,d.cn)("flex items-center space-x-2",t),children:(0,i.jsxs)(o.h_,{children:[(0,i.jsx)(o.$F,{asChild:!0,children:(0,i.jsxs)(r.z,{variant:"ghost",size:"sm",className:"-ml-3 h-8 data-[state=open]:bg-accent",children:[(0,i.jsx)("span",{children:a}),"desc"===s.getIsSorted()?(0,i.jsx)(n.veu,{className:"ml-2 size-4"}):"asc"===s.getIsSorted()?(0,i.jsx)(n.Hf3,{className:"ml-2 size-4"}):(0,i.jsx)(n.jnn,{className:"ml-2 size-4"})]})}),(0,i.jsxs)(o.AW,{align:"start",children:[(0,i.jsxs)(o.Xi,{onClick:()=>s.toggleSorting(!1),children:[(0,i.jsx)(n.Hf3,{className:"mr-2 size-3.5 text-muted-foreground/70"}),"Asc"]}),(0,i.jsxs)(o.Xi,{onClick:()=>s.toggleSorting(!0),children:[(0,i.jsx)(n.veu,{className:"mr-2 size-3.5 text-muted-foreground/70"}),"Desc"]}),(0,i.jsx)(o.VD,{}),(0,i.jsxs)(o.Xi,{onClick:()=>s.toggleVisibility(!1),children:[(0,i.jsx)(n.L52,{className:"mr-2 size-3.5 text-muted-foreground/70"}),"Hide"]})]})]})}):(0,i.jsx)("div",{className:(0,d.cn)(t),children:a})}var u=a(12199),m=a(27689),h=a(26110),x=a(95186),p=a(26815),g=a(77992),v=a(67119);let f=v.Ry({id:v.Rx(),email:v.Z_(),emailVerified:v.Z_().nullable().optional(),roles:v.IX(v.Ry({id:v.Z_(),role:v.Z_()})).nullable().optional()});var j=a(13832),w=a(87769),N=a(42208),y=a(78867);function C(e){let{row:s}=e,{user:a}=(0,t.useContext)(j.S),l=f.parse(s.original),{toast:d}=(0,g.pm)(),[c,v]=(0,t.useState)(!1),[C,b]=(0,t.useState)(""),[S,k]=(0,t.useState)(!1),[P,z]=(0,t.useState)(!1),[R,A]=(0,u.D)(m.eY,{refetchQueries:[m.fo,"GetUsers"]}),[F]=(0,u.D)(m.ui,{refetchQueries:[m.fo,"GetUsers"]}),I=()=>{let e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*",s="";for(let a=0;a<12;a++)s+=e.charAt(Math.floor(Math.random()*e.length));return s},_=async()=>{z(!0);try{await F({variables:{id:l.id,password:C}}),d({title:"Password reset",description:"Password has been reset for ".concat(l.email,".")}),v(!1),b(""),k(!1)}catch(e){console.error("Error resetting password:",e),d({title:"Error",description:"Failed to reset password. Please try again.",variant:"destructive"})}finally{z(!1)}},M=async e=>{try{await navigator.clipboard.writeText(e),d({title:"Copied",description:"Password copied to clipboard"})}catch(e){d({title:"Error",description:"Failed to copy to clipboard",variant:"destructive"})}};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(o.h_,{children:[(0,i.jsx)(o.$F,{asChild:!0,children:(0,i.jsxs)(r.z,{variant:"ghost",className:"flex size-8 p-0 data-[state=open]:bg-muted",children:[(0,i.jsx)(n.nWS,{className:"size-4"}),(0,i.jsx)("span",{className:"sr-only",children:"Open menu"})]})}),(0,i.jsxs)(o.AW,{align:"end",className:"w-[160px]",children:[(0,i.jsx)(o.Xi,{onClick:()=>{b(I()),v(!0)},children:"Reset password"}),(0,i.jsx)(o.Xi,{onClick:()=>{if(a.id===l.id){d({title:"Cannot delete your own user",description:"You cannot delete your own user, that would be a bad idea."});return}window.confirm("Are you sure you want to delete this user?")&&(R({variables:{id:l.id}}),d({title:"Deleting user",description:"We deleted the user."}))},children:"Delete user"})]})]}),(0,i.jsx)(h.Vq,{open:c,onOpenChange:v,children:(0,i.jsxs)(h.cZ,{className:"max-w-md",children:[(0,i.jsxs)(h.fK,{children:[(0,i.jsx)(h.$N,{children:"Reset Password"}),(0,i.jsxs)(h.Be,{children:["A temporary password has been generated for ",l.email,". Copy and send it to the user manually."]})]}),(0,i.jsx)("div",{className:"space-y-4",children:(0,i.jsxs)("div",{children:[(0,i.jsx)(p._,{htmlFor:"password",children:"Temporary Password"}),(0,i.jsxs)("div",{className:"relative mt-1",children:[(0,i.jsx)(x.I,{id:"password",type:S?"text":"password",value:C,readOnly:!0,className:"pr-20"}),(0,i.jsxs)("div",{className:"absolute right-1 top-1/2 -translate-y-1/2 flex gap-1",children:[(0,i.jsx)(r.z,{type:"button",variant:"ghost",size:"sm",className:"h-8 w-8 p-0",onClick:()=>k(!S),children:S?(0,i.jsx)(w.Z,{className:"h-4 w-4"}):(0,i.jsx)(N.Z,{className:"h-4 w-4"})}),(0,i.jsx)(r.z,{type:"button",variant:"ghost",size:"sm",className:"h-8 w-8 p-0",onClick:()=>M(C),children:(0,i.jsx)(y.Z,{className:"h-4 w-4"})})]})]}),(0,i.jsxs)("p",{className:"text-sm text-muted-foreground mt-2",children:["Please copy this password and send it to ",l.email," manually. The user should change it on their first login."]})]})}),(0,i.jsxs)(h.cN,{children:[(0,i.jsx)(r.z,{variant:"outline",onClick:()=>{v(!1),b(""),k(!1)},children:"Cancel"}),(0,i.jsx)(r.z,{onClick:_,disabled:P,children:P?"Resetting...":"Reset Password"})]})]})})]})}var b=a(1828),S=a(63639);function k(e){let{user:s}=e,[a,l]=(0,t.useState)(!1),[n,o]=(0,t.useState)(!1),[d,c]=(0,t.useState)(null),{toast:x}=(0,g.pm)(),{user:p}=(0,t.useContext)(j.S),[v]=(0,u.D)(m.Pe,{refetchQueries:[m.fo,"GetUsers"]}),f=!!s.super_admin,w=(null==p?void 0:p.id)===s.id,N=async()=>{if(null!==d){o(!0);try{await v({variables:{id:s.id,super_admin:d}}),l(!1),c(null),x({title:d?"Super Admin Enabled":"Super Admin Disabled",description:"Super admin access has been ".concat(d?"granted to":"removed from"," ").concat(s.email,".")})}catch(e){x({title:"Error",description:e.message||"Failed to update super admin status.",variant:"destructive"})}finally{o(!1)}}};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,i.jsx)(b.r,{checked:f,onCheckedChange:e=>{if(w&&f&&!e){x({title:"Cannot Disable Own Super Admin Rights",description:"You cannot disable your own super admin privileges for security reasons.",variant:"destructive"});return}c(e),l(!0)},disabled:n,className:"data-[state=checked]:bg-red-500 data-[state=checked]:border-red-500"}),(0,i.jsx)("span",{className:"text-sm text-muted-foreground",children:f?"Yes":"No"})]}),(0,i.jsx)(h.Vq,{open:a,onOpenChange:l,children:(0,i.jsxs)(h.cZ,{className:"sm:max-w-[475px]",children:[(0,i.jsxs)(h.fK,{children:[(0,i.jsxs)(h.$N,{children:[d?"Grant":"Remove"," Super Admin Access"]}),(0,i.jsxs)(h.Be,{children:[d?"Are you sure you want to grant super admin access to ".concat(s.email,"? This will give them full administrative privileges."):"Are you sure you want to remove super admin access from ".concat(s.email,"? They will lose all administrative privileges."),!d&&(0,i.jsxs)("div",{className:"mt-3 p-3 bg-amber-50 border border-amber-200 rounded-md flex items-start gap-2",children:[(0,i.jsx)(S.Z,{className:"h-4 w-4 text-amber-600 mt-0.5 flex-shrink-0"}),(0,i.jsxs)("p",{className:"text-sm text-amber-800",children:[(0,i.jsx)("strong",{children:"Warning:"})," Ensure you are not removing super admin access from the last super administrator. This could prevent anyone from managing users and system settings and requiring a technical support intervention to set the super admin status again via the database."]})]})]})]}),(0,i.jsxs)(h.cN,{children:[(0,i.jsx)(r.z,{variant:"outline",onClick:()=>{l(!1),c(null)},children:"Cancel"}),(0,i.jsx)(r.z,{onClick:N,disabled:n,variant:d?"destructive":"default",className:d?"bg-red-500 hover:bg-red-600":"",children:n?"Updating...":"Confirm"})]})]})})]})}var P=a(84426);let z=(e,s)=>[{id:"select",header:e=>{let{table:s}=e;return(0,i.jsx)(l.X,{checked:s.getIsAllPageRowsSelected()||s.getIsSomePageRowsSelected()&&"indeterminate",onCheckedChange:e=>s.toggleAllPageRowsSelected(!!e),"aria-label":"Select all",className:"translate-y-[2px]"})},cell:e=>{let{row:s}=e;return(0,i.jsx)(l.X,{checked:s.getIsSelected(),onCheckedChange:e=>s.toggleSelected(!!e),"aria-label":"Select row",className:"translate-y-[2px]"})},enableSorting:!1,enableHiding:!1},{accessorKey:"email",header:e=>{let{column:s}=e;return(0,i.jsx)(c,{column:s,title:"Email"})},cell:e=>{let{row:s}=e;return(0,i.jsx)("div",{className:"flex space-x-2",children:(0,i.jsx)("span",{className:"max-w-[300px] truncate font-medium",children:s.original.email})})}},{accessorKey:"role",header:e=>{let{column:s}=e;return(0,i.jsx)(c,{column:s,title:"Role"})},cell:e=>{let{row:a}=e;return(0,i.jsx)("div",{className:"gap-x-2 flex",children:(0,i.jsx)(P.u,{value:a.original.role,onChange:e=>{window.confirm("Are you sure you want to update the role for this user?")&&s(a.original,e)}})})},filterFn:(e,s,a)=>a.includes(e.getValue(s))},{accessorKey:"status",header:e=>{let{column:s}=e;return(0,i.jsx)(c,{column:s,title:"Status"})},cell:e=>{let{row:s}=e;return(0,i.jsx)("div",{className:"flex w-[100px] items-center",children:s.original.emailVerified?(0,i.jsx)("p",{className:"text-primary",children:"verified"}):(0,i.jsx)("p",{className:"text-orange-400",children:"pending"})})},filterFn:(e,s,a)=>a.includes(e.getValue(s))},...(null==e?void 0:e.super_admin)?[{accessorKey:"super_admin",header:e=>{let{column:s}=e;return(0,i.jsx)(c,{column:s,title:"Super Admin"})},cell:e=>{let{row:s}=e;return(0,i.jsx)(k,{user:s.original})},enableSorting:!1}]:[],{id:"actions",cell:e=>{let{row:s}=e;return(0,i.jsx)(C,{row:s})}}];var R=a(7211),A=a(71594),F=a(24525),I=a(18930),_=a(99376),M=a(70085);function Z(e){let{table:s}=e;return(0,i.jsxs)(o.h_,{children:[(0,i.jsx)(M.$F,{asChild:!0,children:(0,i.jsxs)(r.z,{variant:"outline",size:"sm",className:"ml-auto hidden h-8 lg:flex",children:[(0,i.jsx)(n.hsZ,{className:"mr-2 size-4"}),"View"]})}),(0,i.jsxs)(o.AW,{align:"end",className:"w-[150px]",children:[(0,i.jsx)(o.Ju,{children:"Toggle columns"}),(0,i.jsx)(o.VD,{}),s.getAllColumns().filter(e=>void 0!==e.accessorFn&&e.getCanHide()).map(e=>(0,i.jsx)(o.bO,{className:"capitalize",checked:e.getIsVisible(),onCheckedChange:s=>e.toggleVisibility(!!s),children:e.id},e.id))]})]})}var E=a(10492),D=a(73578),U=a(44045);function V(e){let{isOpen:s,onClose:a}=e,{user:l}=(0,t.useContext)(j.S),n=(0,t.useContext)(U.E),{toast:o}=(0,g.pm)(),[d,c]=(0,t.useState)("email"),[v,f]=(0,t.useState)(""),[C,b]=(0,t.useState)(""),[S,k]=(0,t.useState)(!1),[P,z]=(0,t.useState)(!1),[R]=(0,u.D)(m.qK,{refetchQueries:[m.fo,"GetUsers"]}),A=()=>{let e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*",s="";for(let a=0;a<12;a++)s+=e.charAt(Math.floor(Math.random()*e.length));return s},F=async()=>{if(!v.trim()){o({title:"Error",description:"Please enter an email address",variant:"destructive"});return}if(!v.includes("@")){o({title:"Error",description:"Please enter a valid email address",variant:"destructive"});return}(null==n?void 0:n.auth_mode)==="password"?(b(A()),c("password")):(await R({variables:{email:v.trim(),password:C,type:"user",emailVerified:new Date}}),o({title:"User created",description:"User ".concat(v," has been created successfully.")}),_())},I=async()=>{z(!0);try{await R({variables:{email:v.trim(),password:C}}),o({title:"User created",description:"User ".concat(v," has been created with a temporary password.")}),_()}catch(e){console.error("Error creating user:",e),o({title:"Error",description:"Failed to create user. Please try again.",variant:"destructive"})}finally{z(!1)}},_=()=>{c("email"),f(""),b(""),k(!1),z(!1),a()},M=async e=>{try{await navigator.clipboard.writeText(e),o({title:"Copied",description:"Password copied to clipboard"})}catch(e){o({title:"Error",description:"Failed to copy to clipboard",variant:"destructive"})}};return(null==l?void 0:l.super_admin)?(0,i.jsx)(h.Vq,{open:s,onOpenChange:_,children:(0,i.jsxs)(h.cZ,{className:"max-w-md",children:[(0,i.jsxs)(h.fK,{children:[(0,i.jsx)(h.$N,{children:"email"===d?"Add New User":"Generated Password"}),(0,i.jsx)(h.Be,{children:"email"===d?"Enter the email address for the new user.":"A temporary password has been generated. Copy and send it to the user manually."})]}),"email"===d&&(0,i.jsx)("div",{className:"space-y-4",children:(0,i.jsxs)("div",{children:[(0,i.jsx)(p._,{htmlFor:"email",children:"Email Address"}),(0,i.jsx)(x.I,{id:"email",type:"email",value:v,onChange:e=>f(e.target.value),placeholder:"user@example.com",className:"mt-1",autoFocus:!0})]})}),"password"===d&&(0,i.jsx)("div",{className:"space-y-4",children:(0,i.jsxs)("div",{children:[(0,i.jsx)(p._,{htmlFor:"password",children:"Temporary Password"}),(0,i.jsxs)("div",{className:"relative mt-1",children:[(0,i.jsx)(x.I,{id:"password",type:S?"text":"password",value:C,readOnly:!0,className:"pr-20"}),(0,i.jsxs)("div",{className:"absolute right-1 top-1/2 -translate-y-1/2 flex gap-1",children:[(0,i.jsx)(r.z,{type:"button",variant:"ghost",size:"sm",className:"h-8 w-8 p-0",onClick:()=>k(!S),children:S?(0,i.jsx)(w.Z,{className:"h-4 w-4"}):(0,i.jsx)(N.Z,{className:"h-4 w-4"})}),(0,i.jsx)(r.z,{type:"button",variant:"ghost",size:"sm",className:"h-8 w-8 p-0",onClick:()=>M(C),children:(0,i.jsx)(y.Z,{className:"h-4 w-4"})})]})]}),(0,i.jsxs)("p",{className:"text-sm text-muted-foreground mt-2",children:["Please copy this password and send it to ",v," manually. The user should change it on their first login."]})]})}),(0,i.jsxs)(h.cN,{children:[(0,i.jsx)(r.z,{variant:"outline",onClick:_,children:"Cancel"}),"email"===d&&(0,i.jsx)(r.z,{onClick:F,disabled:P,children:(null==n?void 0:n.auth_mode)==="password"?"Continue":"Add User"}),"password"===d&&(0,i.jsx)(r.z,{onClick:I,disabled:P,children:P?"Creating...":"Create User"})]})]})}):null}var G=a(99397);function O(e){var s,a,l,o,d,c,h,p,v,f,w,N,y,C,b,S,k,P,z,M;let U,O,{columns:T}=e,{toast:X}=(0,g.pm)(),K=(0,_.useRouter)(),{user:H}=t.useContext(j.S),[W,$]=t.useState({}),[q,Q]=t.useState({}),[Y,B]=t.useState([]),[J,L]=t.useState(!1),[ee,es]=(0,t.useState)([]),[ea,ei]=(0,t.useState)(1),[et,el]=t.useState([]),{loading:en,error:er,data:eo,refetch:ed,previousData:ec}=(0,R.aM)(m.fo,{fetchPolicy:"no-cache",nextFetchPolicy:"network-only",variables:{page:ea,limit:10,sort:{field:"createdAt",direction:"DESC"},filters:[...ee,{type:{ne:"api"}}]},pollInterval:3e4}),eu=t.useMemo(()=>[],[]),{limit:em,onPaginationChange:eh,skip:ex,pagination:ep}=function(){let[e,s]=(0,t.useState)({pageSize:5,pageIndex:0}),{pageSize:a,pageIndex:i}=e;return{limit:a,onPaginationChange:s,pagination:e,skip:a*i}}(),[eg,ev]=(0,u.D)(m.eY,{refetchQueries:[m.fo,"GetUsers"]});en&&(null==ec?void 0:null===(s=ec.usersPagination)||void 0===s?void 0:s.items)?(U=null==ec?void 0:null===(w=ec.usersPagination)||void 0===w?void 0:w.items,O=null==ec?void 0:null===(y=ec.usersPagination)||void 0===y?void 0:null===(N=y.pageInfo)||void 0===N?void 0:N.pageCount):(null==eo?void 0:null===(a=eo.usersPagination)||void 0===a?void 0:a.items)?(U=null==eo?void 0:null===(C=eo.usersPagination)||void 0===C?void 0:C.items,O=null==eo?void 0:null===(S=eo.usersPagination)||void 0===S?void 0:null===(b=S.pageInfo)||void 0===b?void 0:b.pageCount):(null==ec?void 0:null===(l=ec.usersPagination)||void 0===l?void 0:l.items)&&(U=null==ec?void 0:null===(k=ec.usersPagination)||void 0===k?void 0:k.items,O=null==ec?void 0:null===(z=ec.usersPagination)||void 0===z?void 0:null===(P=z.pageInfo)||void 0===P?void 0:P.pageCount);let ef=(0,A.b7)({data:null!=U?U:eu,pageCount:null!=O?O:-1,columns:T,state:{sorting:et,columnVisibility:q,rowSelection:W,columnFilters:Y},enableRowSelection:!0,onRowSelectionChange:$,onSortingChange:el,onColumnFiltersChange:B,onColumnVisibilityChange:Q,getCoreRowModel:(0,F.sC)(),getFilteredRowModel:(0,F.vL)(),getPaginationRowModel:(0,F.G_)(),getSortedRowModel:(0,F.tj)(),getFacetedRowModel:(0,F.o6)(),getFacetedUniqueValues:(0,F.JG)(),manualPagination:!0,onPaginationChange:eh}),ej=e=>{let s=[...ee],a=s.find(e=>e.email);(null==a?void 0:a.email)?a.email.contains=e:s.push({email:{contains:e}}),es(s),ed()},ew=ee.length>0;return(0,i.jsxs)("div",{className:"space-y-4",children:[(0,i.jsxs)("div",{className:"flex items-center justify-between",children:[(0,i.jsxs)("div",{className:"flex flex-1 items-center space-x-2",children:[(0,i.jsx)(x.I,{placeholder:"Filter users...",value:null!==(M=null==ee?void 0:null===(d=ee.find(e=>e.email))||void 0===d?void 0:null===(o=d.email)||void 0===o?void 0:o.contains)&&void 0!==M?M:"",onChange:e=>{ej(e.target.value)},className:"w-[150px] lg:w-[250px]"}),(0,i.jsx)(r.z,{variant:"outline",onClick:()=>{K.push("/roles")},children:"Manage roles"}),(null==H?void 0:H.super_admin)&&(0,i.jsxs)(r.z,{onClick:()=>L(!0),className:"flex items-center gap-2",children:[(0,i.jsx)(G.Z,{className:"size-4"}),"Add User"]}),ef.getIsSomeRowsSelected()||ef.getIsAllRowsSelected()?(0,i.jsx)("div",{className:"flex gap-x-2",children:(0,i.jsxs)(r.z,{onClick:()=>{if(!window.confirm("Are you sure you want to remove the selected users?"))return;let e=[];ef.getSelectedRowModel().rows.forEach(s=>{e.push(eg({variables:{id:s.original.id}}))}),Promise.all(e).then(()=>{ef.resetRowSelection(),X({title:"Removed users",description:"We removed "+e.length+" users."})})},variant:"secondary",disabled:ev.loading,children:[ev.loading?(0,i.jsx)(E.g,{}):(0,i.jsx)(I.Z,{className:"size-4"}),(0,i.jsx)("span",{className:"ml-2",children:"Remove selected"})]})}):null,ew&&(0,i.jsxs)(r.z,{variant:"ghost",onClick:()=>{let e=[...ee],s=e.find(e=>e.email);s&&e.splice(e.indexOf(s),1),es(e),ed()},children:["Reset",(0,i.jsx)(n.Pxu,{className:"ml-2 size-4"})]})]}),(0,i.jsx)(Z,{table:ef})]}),(0,i.jsx)("div",{className:"rounded-md border",children:(0,i.jsxs)(D.iA,{children:[(0,i.jsx)(D.xD,{children:ef.getHeaderGroups().map(e=>(0,i.jsx)(D.SC,{children:e.headers.map(e=>(0,i.jsx)(D.ss,{colSpan:e.colSpan,children:e.isPlaceholder?null:(0,A.ie)(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,i.jsx)(D.RM,{children:(null===(c=ef.getRowModel().rows)||void 0===c?void 0:c.length)?ef.getRowModel().rows.map(e=>(0,i.jsx)(D.SC,{"data-state":e.getIsSelected()&&"selected",children:e.getVisibleCells().map(e=>(0,i.jsx)(D.pj,{children:(0,A.ie)(e.column.columnDef.cell,e.getContext())},e.id))},e.id)):(0,i.jsx)(D.SC,{children:(0,i.jsx)(D.pj,{colSpan:T.length,className:"h-24 text-center",children:"No results."})})})]})}),(0,i.jsxs)("div",{className:"flex items-center justify-between px-2",children:[(0,i.jsxs)("div",{className:"text-muted-foreground flex-1 text-sm",children:[ef.getFilteredSelectedRowModel().rows.length," of"," ",ef.getFilteredRowModel().rows.length," row(s) selected."]}),(0,i.jsxs)("div",{className:"flex items-center space-x-6 lg:space-x-8",children:[(0,i.jsxs)("div",{className:"flex w-[100px] items-center justify-center text-sm font-medium",children:["Page ",ea," of ",ef.getPageCount()]}),(0,i.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,i.jsxs)(r.z,{variant:"outline",className:"hidden size-8 p-0 lg:flex",onClick:()=>{ef.setPageIndex(0),ei(1),ed()},disabled:!(null==eo?void 0:null===(h=eo.usersPagination)||void 0===h?void 0:h.pageInfo.hasPreviousPage),children:[(0,i.jsx)("span",{className:"sr-only",children:"Go to first page"}),(0,i.jsx)(n.kRt,{className:"size-4"})]}),(0,i.jsxs)(r.z,{variant:"outline",className:"size-8 p-0",onClick:()=>{ef.previousPage(),ei(ea-1),ed()},disabled:!(null==eo?void 0:null===(p=eo.usersPagination)||void 0===p?void 0:p.pageInfo.hasPreviousPage),children:[(0,i.jsx)("span",{className:"sr-only",children:"Go to previous page"}),(0,i.jsx)(n.wyc,{className:"size-4"})]}),(0,i.jsxs)(r.z,{variant:"outline",className:"size-8 p-0",onClick:()=>{ef.nextPage(),ei(ea+1),ed()},disabled:!(null==eo?void 0:null===(v=eo.usersPagination)||void 0===v?void 0:v.pageInfo.hasNextPage),children:[(0,i.jsx)("span",{className:"sr-only",children:"Go to next page"}),(0,i.jsx)(n.XCv,{className:"size-4"})]}),(0,i.jsxs)(r.z,{variant:"outline",className:"hidden size-8 p-0 lg:flex",onClick:()=>{ei(ef.getPageCount()),ed()},disabled:!(null==eo?void 0:null===(f=eo.usersPagination)||void 0===f?void 0:f.pageInfo.hasNextPage),children:[(0,i.jsx)("span",{className:"sr-only",children:"Go to last page"}),(0,i.jsx)(n.yr4,{className:"size-4"})]})]})]})]}),(0,i.jsx)(V,{isOpen:J,onClose:()=>L(!1)})]})}let T="force-dynamic";function X(){let{user:e}=(0,t.useContext)(j.S),s=z(e,(e,s)=>{console.log("user",e),console.log("role",s),a({variables:{id:e.id,role:s}})}),[a,l]=(0,u.D)(m.Pe,{refetchQueries:[m.fo,"GetUsers"]});return(0,i.jsx)(i.Fragment,{children:(0,i.jsxs)("div",{className:"hidden h-full flex-1 flex-col space-y-8 p-8 md:flex",children:[(0,i.jsx)("div",{className:"flex items-center justify-between space-y-2",children:(0,i.jsxs)("div",{children:[(0,i.jsx)("h2",{className:"text-2xl font-bold tracking-tight",children:"Users"}),(0,i.jsx)("p",{className:"text-muted-foreground",children:"Here's a list of all the users."})]})}),(0,i.jsx)(O,{columns:s})]})})}},19060:function(e,s,a){"use strict";a.d(s,{X:function(){return o}});var i=a(57437),t=a(9270),l=a(30401),n=a(2265),r=a(94508);let o=n.forwardRef((e,s)=>{let{className:a,...n}=e;return(0,i.jsx)(t.fC,{ref:s,className:(0,r.cn)("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",a),...n,children:(0,i.jsx)(t.z$,{className:(0,r.cn)("flex items-center justify-center text-current"),children:(0,i.jsx)(l.Z,{className:"size-4"})})})});o.displayName=t.fC.displayName},26815:function(e,s,a){"use strict";a.d(s,{_:function(){return d}});var i=a(57437),t=a(6394),l=a(90535),n=a(2265),r=a(94508);let o=(0,l.j)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),d=n.forwardRef((e,s)=>{let{className:a,...l}=e;return(0,i.jsx)(t.f,{ref:s,className:(0,r.cn)(o(),a),...l})});d.displayName=t.f.displayName},10492:function(e,s,a){"use strict";a.d(s,{g:function(){return l}});var i=a(57437),t=a(94508);let l=e=>{let{className:s}=e;return(0,i.jsxs)("svg",{"aria-hidden":"true",role:"status",className:(0,t.cn)("inline w-4 h-4 text-white animate-spin fill-inherit",s),viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[(0,i.jsx)("path",{d:"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z",className:"fill-inherit opacity-20"}),(0,i.jsx)("path",{d:"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z",className:"fill-inherit"})]})}},1828:function(e,s,a){"use strict";a.d(s,{r:function(){return r}});var i=a(57437),t=a(50721),l=a(2265),n=a(94508);let r=l.forwardRef((e,s)=>{let{className:a,...l}=e;return(0,i.jsx)(t.fC,{className:(0,n.cn)("peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",a),...l,ref:s,children:(0,i.jsx)(t.bU,{className:(0,n.cn)("pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0")})})});r.displayName=t.fC.displayName}},function(e){e.O(0,[8310,9851,7629,7093,6148,847,1942,7648,7823,8068,5799,4567,605,85,4957,7398,3702,1594,7119,7565,6373,3832,4386,2971,2117,1744],function(){return e(e.s=58913)}),_N_E=e.O()}]);
|
|
2
|
-
//# sourceMappingURL=page-7cddc0528218c5c8.js.map
|